[{"id":"preferred_providers","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/preferred_providers","website":"","created":"2018-09-18T06:47:14.025921Z","lastModified":"2026-07-02T10:18:39.776179Z","releases":[{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/preferred_providers/releases/download/v2.0.0/preferred_providers-v2.0.0.tar.gz","created":"2026-07-02T10:18:39.743444Z","licenses":["agpl"],"lastModified":"2026-07-02T10:18:39.837798Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"uNEivnxaJJtW0Kod6hKv5ok9riDQQh2K3esbwXy59oAdjf6IYqfWPB2QTp9KnH9d6V71rIKsZemLdEEVLw1T3QeDB3OLi6AjOwBO4pJEO/1TBAgNj6npfcHOvxJpXg5u+PxImx1j8GnyfEGwL9iw7cKYu7yfvmO20Fkjo2bdnCqqH9dVHjZ6B15divz1aDF49TSXDEAMgeyV8RHIlA0MxE5GN/pnMTwTrorAfADpaG3aqotZXUX0yXTp4ZIzwlKggHi3X55LxfmtJbHgtRyMgIbSwVxxasfS71TR8wzb2yh2d5pmezydCNjZZZisIwLas8rtGCMPvNjlhWFd1LMYVpkd+v2OzgIBeWRQz32rmLzBUAFavQOrMGn6totw6Z6HAcvo+bcMzyp35R5I+Ftlz1nLA9/lU4pZ1Pt3oh42qUjUu1MVO/WDeNsk1dC5yrR0ykbfG6UGtfSYLsG57cn11Ju0dsNZ/aPIJTJtU+iq3LlYjN2GMq1ha4z4jLEEh5l+8zN6wxerdL++K+xiOBVVZdK5aM70INTr50rr878Irrs0+/jKghh1fz5oB504YUTEYboHe7ae1vZpKVyyikyNjqHXDe+QWTHOKf33TE+jeWGqw9zi2YCRNa36cKo4j4RSjYNTvLcUU5UVjS0OlAALtuSAZ8cfEMeT/yL5FxqLHQ8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Preferred Providers","summary":"Allow Nextcloud to request user accounts","description":"Registration handling app for Nextcloud partners only"}},"isFeatured":false,"authors":[{"name":"John Molakvoæ","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhC5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwOTE3MjExNzEyWhcNMjgxMjIzMjExNzEyWjAeMRwwGgYD\r\nVQQDDBNwcmVmZXJyZWRfcHJvdmlkZXJzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEA23vJDMdutiz5hFCdClsj1IJIxkt6jDi8IflXE+4gb+TCYm92DFpE\r\n+472gRgl6ICZNVHPELiMLMOnO1q0UXfSgXepc8sBRe/bX0K2NgZn8BJ2umWhh5dP\r\npXqthqoHz1jVHHVgz47a3hXfOa+gAjt57pSPlEWlPSRy61QMdn/cOpR/U+Pr/S2i\r\nqWIkeVlkVVj9mTdoWuRpL7ADin+e6+X4RXmCFRiw8UjpeW/sRC4jUIJ9KU39xJjX\r\ndm0ayz92rIygreY3Dajw1OAf5xu4ZYNnoZj7R1ZWTK9WSrEZJVlS2BjO5e8YqaYx\r\n5bF1pBy6xuydvBgH424f6i2DG7C21icG9brEOblDcR4JJmVMdAxuex04igesetWY\r\nyC7B/myfoexVIPG7Bs3Qc5qxIOjK4kmqgyDGWrfSK0TMUiiqeOCceI3qjsq6Vc5f\r\nrfP64apl4WxamxouTV2P0TRz1lBdzp/nFiThFn6uuA7WfZDGCVcQZJLj57TVF+d6\r\n4PALA4TQGbyoWdWLA1xBPryqKrR1cQzzt1L2jiXssTkhdSEwxI3/FgYcL/SezXXP\r\n/AUswwHCa0Todr9cPd3lU+hwRGaZaGS/vUI23XtDBqSY6vzNZ4TfFZvJGGQ7Trgv\r\nmf5t1uBd7TXYlcNwcsUMX4bHg4WUs0nQjclf/8vzaxtmcKKG6QFIb+ECAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEAKTZldttztjTQCjBR9jFAAM2T86KDsQ0bCF5h7zvZ\r\nyPQw2B5O/3J+EQRtiR2Loh2LT38M8cy+hKiDPtkSoxEQC8u6dX8t7sgTIyqknbx2\r\nTPdk0Ef0WWhdMO4fW+VY75Tm8UreJI/NGDNP8d3v99QuyTqAzXEPccz+nSJqQ0VC\r\nARsTtRO/jKNVSV9ZtGQlekfRUwn2KfQNhf9RKKTNXdjuaeTurvNZ9f6bvkRYTKEN\r\nZC6D+kY5PdQ1up3OwcBFRu+gviiw9GwVwzs+Be8WistVPedWtfmWuP7voP+19SX9\r\niTD5pJzt98f1OUHgkkwQHsGyDhp7k3wYV2/7fU9g2StSmA==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"bookmarks","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/bookmarks/issues","website":"https://github.com/nextcloud/bookmarks","created":"2016-12-07T11:33:36.086272Z","lastModified":"2026-09-18T09:26:48.457308Z","releases":[{"version":"17.0.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"},{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/bookmarks/releases/download/v17.0.0/bookmarks-17.0.0.tar.gz","created":"2026-09-18T09:16:35.767316Z","licenses":["agpl"],"lastModified":"2026-09-18T09:16:35.892342Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"pDCuwJGUlFl78F6GoziF9/Wx4OH9aQTrrdwMBWuXiYwzjRRbp+TMi2R2e/joq+E1\nVXyt/geXDzm0QlCBttZoEm3Yms80e2TXDpInYOuEvghgs8qS9ncLIsuyjICo+U8J\n5/ByLpBgkOwEZpqe05pIUgnCtmLbFCJgg0awytXFWwCca9ZN361YdWD0jytvnDrK\nYoInLozjiaHABNyLZkLTiAAyrUTTPUNUey0lwqBtOk4ipNW2Up6For/BnCXMQKGf\n1zpcFkqLZnefVdIqT/7MsopGDeVx/eqTvkxo9422bZ/acsRKz2WORrSDgS/Ei57L\ntrZTTarrcX5VzLq/Y3hAj8JCiFFbeUaGZPWIb42Gqs7VY+mJLAbAlyV+zmX0Ivwp\nPWbrQYgOWBHAPqXiZb3CAVKgPKsCiQgvwYMJhmHFfzfIA+lZW9tGrS75YivB5S3e\n2ZsAfYqkbx2LBgRN3BOETIp30iPyWmCZjL8atLeQOuB9q/H6SKiOrEtjqEvt0hGa\nyaeNDk9elTdiE/PevcCuq9yilEEh2pGKwEvpIsbDbi7z9S1vsuRDe0U37Bfvm1Zg\nmSqWp8bTH0+fuoMuRJEwXDBOOtQFXgQ3e0VOKL0XkLjiMY8hWRBnoTrRKpddSpPb\nzeJ6VowsEcO8i3lqpBABseSskWAv97rmbCoas0tgmdI=","translations":{"en":{"changelog":"### Breaking changes\n\n- Drop support for nc < 35\n\n### New\n\n- Support nc 35\n\n### Fixed\n\n- Build(deps): Update dependencies\n- fix(TreeCacheManager): Sort tags before hashing the bookmark\n- fix: Register EmptyTrashbinJob\n- fix: Preserve bookmark titles when creating new bookmarks for URls that have a bookmark already\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ib29rbWFya3MvbWFzdGVyL3NjcmVlbnNob3RzL0Jvb2ttYXJrcy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/bookmarks/master/screenshots/Bookmarks-small.png"}],"videos":[],"translations":{"en":{"name":"Bookmarks","summary":"Collect and manage bookmarks, synced with all your devices","description":"- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- ☠ Find broken links and duplicates\n- 📲 Synchronize with all your browsers and devices\n- 📔 Store archived versions of your links in case they are depublished\n- 🔍 Full-text search on site contents\n- 👪 Share bookmarks with other users, groups and teams or via public links\n- ⚛ Generate RSS feeds of your collections\n- 📈 Stats on how often you access which links\n- 🔒 Automatic backups of your bookmarks collection\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n   - intl: *\n   - mbstring: *"}},"isFeatured":false,"authors":[{"name":"Marcel Klehr","mail":"mklehr@gmx.net","homepage":"https://marcelklehr.de"},{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":"https://www.arthur-schiwon.de"},{"name":"Marvin Thomas Rabe","mail":"","homepage":""},{"name":"Stefan Klemm","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.75,"ratingNumRecent":0,"ratingNumOverall":32,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBDCCAuwCAhAGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE0MTMwNDMwWhcNMjYxMjIxMTMwNDMwWjAUMRIwEAYD\r\nVQQDDAlib29rbWFya3MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDb\r\nHsiLC2xnmyd4G3koHy21vC8PO5ke0kLzePOx2RG1j2NFLXBQTGiZuB3fZA5zuz2U\r\nVilON4pHR61CDzQbQ5mrzY7f1DfJTpG+F+ZMqe+zrCjIaryjnDkiVarNOmOL7D77\r\nIzbU7dWf34w663EW9oK63EJPrQ/9arYc/2hkua07rZiVFkc4mNKrtwmeruE+1Yvd\r\nKVW06NTLkQC5A6S7UjEyCWeRcYUjgzLJ56VLh+FJOZ1BVKeCfbRdQicZCl/0nmf3\r\nZQmxpNABbYpD4IPB8FsXF69Qhprlah9JUYenhKQbG7NzqU0euE9yrNI2PAIG2X+C\r\ns53hut98DToF5kBjnB+QDeZL0IOhi+Q9b0uc+EnF/s/f7k+1hoDxr45WqjLM0js6\r\nZ/aICvyp6W1EYkKhwAMwS2L+CJJpB/od2ZHngmz8D885aYsxisXbBRobrYwEogRD\r\nebtMy0kHAd3CNCTbdICUTzgxkr4B/WR8Xzirs3OqpIZVKwbl3Lh3oGje/eow1sdY\r\nBDPvn8SOdXGp6/aDIKMn7pJ7A+JmQd5t8TxyBD5///rPnjz2Xb0fnp/Tg884uSoF\r\nouRhLJtDGmnuYC0+6HV8AfxtV/QSG89pUKmanZKD9c6vIMXaM3Vlng98hS/5B8Jz\r\nLp5VZyP+bGYdq6a+n5SkqTUyXWV4DKcGB8FI4LoC+wIDAQABMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQABR8LC2ZLdRz+yrIfMsN+UAYtkvTZQimeCKLaIAGj/9sVYZ0LS1NB5\r\nJzphQSwUvqKr6EQeLFSWsGIwSXPzYYRHK2j2j1FM75F5XTKwmpK9aeHpihIRkrfd\r\nGi/5a/grXomBBVh06OdrVGLvtHXyJY7/NN2z1ytn3Bk6J0neeaDp2f7hgGXLYeCg\r\nasJPU5SzljLtP2i52a2oxOHDaxHYxKH85cP7VWCtuRU0aBTlzReMsKtrqj7iJpN4\r\nVI03I9XSPv4Svys+uMihnyh+0onRWUCVfu+mkPVhszYacxc0hMpeRqR4OI+1F+74\r\newte1PjVwLIsqXadWcaerTvqkKHo4oPN\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"x2mail","categories":["integration","office"],"userDocs":"","adminDocs":"https://github.com/NK-IT-CLOUD/x2mail#setup","developerDocs":"https://github.com/NK-IT-CLOUD/x2mail","issueTracker":"https://github.com/NK-IT-CLOUD/x2mail/issues","website":"https://github.com/NK-IT-CLOUD/x2mail","created":"2026-03-26T09:27:42.948300Z","lastModified":"2026-09-29T09:15:35.956481Z","releases":[{"version":"0.8.7","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.7/x2mail-0.8.7.tar.gz","created":"2026-09-29T09:15:35.948733Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T09:15:35.995285Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"QOdrNV0Wpe8vtbIsMo8FjonI29PTAJs2clIul+bXGsOmZSYaPJ3u8fdiRlgTq732KysEXOlBoyZos7ALsjmpxV4Cd1JdYDk0y7P37pjTRR2P84bFAkgwpO1mdo6Z+JebvgagvgOnS4irf+TUXraXljkGeXzE6mO58MrwcW/ZGyAoC+h5zhnz/zUv1pOaGKK4DxAQkovn6PMku+fiuI247+wnFyR7KKrNZCr71UGXBbT/SSqo6NLlfalG5i639r8n03//PC9Q6RHks9ZnXyVrBKEg8ZdYI+tdvDQTv2VCYFvDQHtU5qeXlEz8LKujawuCuxwFPnTcaJslNyffabNtC/N0lL3ETBZw3aY2sA6dSTYlnZyZvnof5ezyhYuvyBzNswKYNEgGEyfeAFTKHe0p7JKsGnb/VIVDjJve8Dzdxsxv+Xe9FSBTefk/cfD+ko0nQ7JT/zdiF021iLwHqq/6nnoP+z059fG5KKU61EhhZ901tD+T8A8CJ1cPDMNzUo0UUXvo7ZmJqhXOpo/VqOjTJsl5VGkA1BttmOl9Rhrlgsu3qwBFadEp2sP9woaF/O0swvFeEWZRSvxO3L1X5QJQRcuce6xzXvFrUrMOu5IKYkSlC3Ap8xblS9Y0T2Co1rCT3qV0JKmXv32bkK8PlwCbzsCm36ekXWNRe4kv+3oDMT0=","translations":{"en":{"changelog":"### Fixed\n- Single sign-on with `user_oidc` configured without auto-provisioning (users from another backend such as LDAP): the mail identity is now taken from the email claim of the ID token that `user_oidc` verified at login. Since 0.8.6 these users could not open their mailbox"}},"signatureDigest":"sha512"},{"version":"0.8.6","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.6/x2mail-0.8.6.tar.gz","created":"2026-09-29T00:46:13.223952Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T00:46:13.274507Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"KyqucLd3/2tJlQDgmQQ8rndoegNjNCDxjTPmAQ1WUFbbwVId0HDqUDF8BYZhqsQmfvGAoGQXfTQmHTGNNsHvtgHtXYBhJtWyKpaSV9BBngeoPiCk+Y2nzkeokag41rrufnOlIQn/8xT54bIlFv4EBXX4cSTVqc4dOhPB7iTlABm3l0RQbjWvIiiFkqbNJtO7a11bvuSPm2d8jFtWqIRyVYAoj8plUrUUjoIW6DveSDSNIdBwGA8zdDz6Zl8NK6lB6Cln288gYyf5ZhgdVrrCIqyZIeruKAQvaIeu7RpfNWeexqUbkKbkZmJEFMuBGB6vvNr0qrxAWn8sgpSayK50UScfzDiIyY7PLmOz3KcOp5exfDyzsNROeJpVOUYU+NkjLBkrgtfZZMNJ7LI2PQtxEbFE0BdnQjvBPkb4a4uGIFl7NhEGULWUHnJzEMSYYpKMsg3uJAqLo2UudOs7re4JHjaHGARqK2yspm5stNbhOFcgMm+a0c2GtpM3dIn6DaB+AAp/LP7c/GIZSxAI+5MjS7hl5+V1BJVjS25ObSlA4KF7zx+8cbakuQIcDyRBewjdMnL0PtFvGUQIjTdrLNDTerf9FU1e02Znl9svLyC/ylvdU1ehZB3QjEnd+5xTM0DmYMNxDhioRDKRmyAPP5uOI1VGqzAsdZjBa9zIQZZJyZQ=","translations":{"en":{"changelog":"### Security\n- Opening a message can no longer trigger actions in the webmail: every action requires the request token, and actions that change data can no longer be triggered by a link or image URL\n- Images in messages are no longer loaded through srcset or CSS properties such as border-image or mask-image before you allow external images\n- The mail account identity now comes from the email address verified at single sign-on instead of the editable Nextcloud profile email, and webmail logins are only accepted for the signed-in account. Sender identities and aliases are unchanged. After updating, users sign in via SSO once\n- S/MIME certificates from received signatures are no longer trusted or used for encryption automatically. Import a sender's certificate explicitly, or trust it from a validly signed message whose address matches the sender. Existing certificates count as not trusted until imported again\n- S/MIME key and certificate fields accept PEM data only\n- Attachment thumbnails check image size and dimensions before decoding; oversized images get no thumbnail. Thumbnails are made for GIF, JPEG, PNG and WebP only\n- The setup wizard's SSO login test never sends the sign-in token without TLS\n- With a token-exchange audience configured, a failed exchange stops the mail login instead of falling back to the Nextcloud login token\n- Deleting or exporting a GnuPG key requires a key id\n\n### Changed\n- S/MIME: a valid signature is shown as verified only when the signer's certificate is trusted and matches the sender; otherwise it reads \"valid signature, unknown sender\", with a button to trust the certificate. Certificates with the address only in the subjectAltName are recognized\n\n### Fixed\n- Sieve filters: when the mail server rejects an expired sign-in, the error now shows right away instead of after a long wait\n- Mail login and sending with an XOAUTH2 sign-in end cleanly when the mail server rejects the token"}},"signatureDigest":"sha512"},{"version":"0.8.5","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.5/x2mail-0.8.5.tar.gz","created":"2026-09-28T09:34:05.758948Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T09:34:05.818165Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"E9nH+0j96VFmiN/b/6ntoR22aaKCHGequ/rTvfJOH+zw8HyodGASoAtt20HN1UF2Hqi86ay0AjfHt7wGS4m/aP2T9tTa9TLvb4XWPBo1osJx5DM0b73ZgrWn62sIPH4e77zx2x1w9tr5k0Y+CgpucpUMwIC+HBx2vZD0naubL7TK4U9M2gfwCcSdsnfOrdmZvRay1U5hbi+nghKKTL85Z7YfTkQijO1Ys6Hp+2by2IJC/L8DxYmk7+IOj7hRh/TuqXGmJ+3Qq2wSvP41xoA/GMh+WRiakPUqTkiCQvmFvV5bidHAKxZ89sZ3Lu7qNt8yARwSVFt/6WNcLa4sX/ro0vfOoexu7TD62yw6DTaRdRawAcBa1OvE/bJrIagzyOlGC+Yw+HeEM5NRLm5eI+0VMFazF5E1aMG38L/utzwHph6CT7eBaZbILrQ8GmBCDcWxJ6m0YlODKav9M/53++AyiRK2GX7psPbZdfiZ3cOLWWwEqX1O4tXQ8Rc5GLjv1qNcFF5svp4hPyZQI8EC9jLzMWbM/HLke80m2T+k6b0F5TnGQVMvC4v5fZJfoLOpQF/nmjyfo5hhZf5kDOqA9SqqcFvUq4yP6Eksj7P6nFfuEmZxZLI8TS4CCzXbuRSBCA8XGFqatViWPZ+Pvg3WEkV2lHGgM9UB2EytoANlVyc7pPU=","translations":{"en":{"changelog":"### Added\n- Standalone webmail: X2Mail now also runs without Nextcloud (`standalone/`). Users sign in at your OIDC provider (authorization code with PKCE), and IMAP, SMTP and Sieve use their access token, just like in the Nextcloud app\n- Access rules on token claims (roles, client roles, groups; `any_of` / `all_of`) decide who may use the standalone webmail\n- Optional CardDAV address book for the standalone webmail: contacts, address suggestions while writing, adding and deleting contacts. The server URL can contain the tenant from the organization claim, and the user's token is sent as bearer. It is only offered to users whose access rules allow it\n- Container image for the standalone webmail with separate `php` and `web` roles and a read-only root filesystem. Deployment and configuration are described in `standalone/OPERATIONS.md`, all settings in `standalone/webmail.example.toml`\n- Light and dark theme in the standalone webmail following the browser setting, with a configurable primary colour\n\nThe Nextcloud app has no functional changes in this release."}},"signatureDigest":"sha512"},{"version":"0.8.4","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.4/x2mail-0.8.4.tar.gz","created":"2026-09-19T16:38:30.791123Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T16:38:30.864791Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"Pa0RoZdPPsLRrSVzhwNymanBetPeFchOY8t490oZmW1UpkoH6HX4l94BGFKGZ1TkXut0IoSZAa0RYmfhHlv8RtxiKoepDfDMvx556S78gPfZPUdnYQ6o/RU5aenHfun8j1I6pKG8Kic4v+56BAeXzMn+RfeawclW7cwVQrn4ZlykCfZs+1PIEJR9sq/DbenfkbojOO+Nt53IupcKhIcMrcPFTfa38R8Kxu0LP5f3pa64rHf0lJr5V2s+gwmTSjRqsikrd9rKR+rVQmXBltHiCuMM2LYmBOwuOezP3rtuOAV+DAntAFSvcTaWY15x/u15f/YIyCisdb8Q9xgAfwlXnXAS722gwjpDU4HmpV1adQOGCBE7wmeQd01yo/meX8j51+pbak+5m4LIJpeDrjuMsHk8jqZ1wPgSfh32v4OOfX/gi++0ORKIf44AZtP5Xi1smJ4SMPFvLwY0j065NGedIxBahjx6YB2nCJDToQa3+UrXF3E1+vWN9WckcbO42nTKC5TwSGYBL+KilulZkquC9RIcX0fvhrLKakI5Y7e7hWcau8RnQzyhquBrd8mnFHukY7P3HpWG+XDuh9wipJslMCETV21af6mp7uaNTduoL94Hc1NjWDJ5Pb+400qf/xpjdR3lJIW4YAabNIxx8gC14gNGb6Fg6Q0kHfVFxuPp3uA=","translations":{"en":{"changelog":"### Security\n- Signature check with OpenPGP.js no longer shows a signature as valid when the message was changed after signing or was signed with a different key. This also applies to signed messages shown after decryption\n- A valid GnuPG signature only counts when the signing key belongs to the sender. A signature by any other key in the keyring is reported as such instead of being shown as valid\n\n### Fixed\n- When a sender has several public keys, in the browser or on the server, the signature is checked against all of them, not only the first one found\n- PGP/MIME signed emails can now be checked with public keys stored in the browser, not only with keys on the server\n- A failed signature check now says why: the signature is bad, the public key is missing (with the ID of the key that signed the message), or the key has expired or been revoked. Before, the check could end without any message\n- Checking a signature again, for example after importing the sender's key, works without reopening the message\n- Key import reports errors instead of failing silently, and importing several keys at once imports each key once\n\n### Changed\n- OpenPGP.js 6.3.1"}},"signatureDigest":"sha512"},{"version":"0.8.3","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.3/x2mail-0.8.3.tar.gz","created":"2026-09-19T14:23:13.952116Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T14:23:14.032944Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"fOSqwYWg/Js2TiG3PBq6xm/sFN7mvrAb1GK5IfQV8xE6PlpOvbTmu83x/A7P4iDykojVH1n6me3gZ1RerwpLMSLNc0VySbqX7J125+ayM70yeHjTnuEwdoj4lDEtJfFGK7VM2p9bDYmD67Tq951yH8dEo2LY/9eHxi3fYrO2OZGFdQMt4RWZJVmsSxWNYoJiV4HxWsA4a6Ci2AiKx7DxAFffZUi7uTKE5OHdRx9xp0IlJyheQGhMdt4W/vgLrQMhHUvNDOO4fOEjTUFWPSe88iypVUTf73swXOyVwjnb/z/EVFQwjY6nQ25iBukpHtLqMs0L8jCFeYeIMGyn9rm9kUiXuroXwzWolrva9P1ToO+XcOnsJ7wkA8Xortv8HyCutstvPE0GbmY7BQtmTPq2Whv7ggZ69VEmmw0P3kStzrdZleN7U9d+6TrEsAQ8F5I3KGvqISaBhqb0XY1eJ+FWpWBl6YfZRCUR7GlXYIQm6KdKHTuLYN+hEG0nnGNSt5PfJJR0n3cgQJutJgHBoJM1KmpoMf/VtwSsbU/nQ/8Yya08TJ9/lqCr0Pjz6BLvzDLfv5HvFbzIxoxygp+u6nyZ4homRqjHgZ4krXRH+Ck9f/6O4XgV12azWBi+O6D8IOZGuVITLISjPuXMBkCVeOq8hRIihlLZ6jT0vzrNwpFawHA=","translations":{"en":{"changelog":"### Fixed\n- Saving an email to Nextcloud Files works again. The save failed with an error before the file was written\n- Updates now refresh X2Mail's built-in Nextcloud integration. Before, this only happened on the first installation, so fixes to the integration did not take effect after an update\n\n### Changed\n- Nextcloud 35 compatibility: X2Mail no longer uses Nextcloud interfaces that are deprecated or removed in Nextcloud 35"}},"signatureDigest":"sha512"},{"version":"0.8.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.2/x2mail-0.8.2.tar.gz","created":"2026-09-05T00:18:49.914116Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-05T00:18:50.006246Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"VGRGdKFt2w9zCXJbuDiwpJaeChbvQn5hjrartfvIulFxrRMVaNpr+wjZdJarJdynJ+ws3F21fuDMuwkENHe5/ixHGElnNy0t6SXr1QUbudsR5OctkLoXd8Euv/XGdzMkwoAtXV14HT0AGOlbd9JIYtHNloCQ6as7NHVZXDylau5qGMwuyaiAB3TX3pINojYkr6EYzzoJXABiaEQuE6lyqupY0wwZHLYZWYrVGyYLtaxFbA26GK8BuZKG7ElkUhIsmiVOCROX2PvwMfPDV/gBsBlwjSyJYzj1bc5LYF6upd8m+hkeyvYc+f1YYEeEqI15g3fUt9qdKOaj8vXD5WMzpAPObyaKFGaTs4LNK4VmFI7gcel1om3mAqUoqYWSLCxd011zqrrdDAoDr+EvXBH/M3H5RIMF1jdjqoCYNAtsisUy2gjMnSYqplyIO4AKyHqnivtgk/cDLAgogE8g9MLOgAOVJqjkXs4nlaKemio56NYX1p4NGNQAfT86Ov6H/70fyr9E8YR2Sfi1dN6xIDF24jqx5RjCrJAXRUZ7B0+mD78sPuuK4WQ3PKiktnpZA2Ggowh17jFGnaZncOKmqVGSractJEADWTSP/S7ekMmdKElwwfQt4TEtJDu2tQdYMmbcNHD9thGX0xgkxUdB2T8bZekw7ARwHGBm6Y4WKCyQQTc=","translations":{"en":{"changelog":"### Fixed\n- Users whose email address is on a domain without its own domain configuration can now open their mailbox. The mail server settings of the instance domain are used for them, while the login identity stays the full email address from the token — same server, own identity. Previously such a login failed with a generic error. The setup wizard keeps a single domain configuration, so no extra configuration per domain is needed\n- PHP 8.5 compatibility — removed use of the deprecated backtick operator, `imagedestroy()`, `curl_close()` and `ReflectionMethod::setAccessible()`. These emitted deprecation notices on PHP 8.5 and are slated for removal in PHP 9.0; the binary lookup in the GPG engine now also escapes its argument and uses the POSIX `command -v` builtin instead of the external `which`."}},"signatureDigest":"sha512"},{"version":"0.8.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.1/x2mail-0.8.1.tar.gz","created":"2026-06-25T14:35:28.310532Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-25T14:35:28.391294Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"VYEJpHjGF4H5NQTeD3UZ/vNRwzCT+SCbtYgL+WwnuOiC0Z/XHqRnnj5WOHinCWoodninE8JA85R/PWXLejPklYhdTAgj8C1ClZ/hvqOA07wClK1rxW/6Sw28oX3lGicC7iEI3mL3tGLKeA7E0J0zo1xxamtZrGlNKXRJ9WvvoACWnc7BM1y5p+UTpbBPgCB4JBqSvONoa4AR9bvZOYMMlBWJAc9viOlSbEd/J5uWo8GsF3AlyCOtQeb6d8y9HHajg8yvNP6n8G2rq6c8ltPbuTtegFX6xpCJzFug+lFycqiYRDZ1h4fyQ2yyW+kbTozdgvI9t19aXq6iAPfUWaqXT6Zj8+H888/r1T8BoZtqOpVLnkrHyII5weMvQJTY+V7BtGedAacrox6BFYpRO9GhtEcBpt2P8YeLOOuAHujQo8mQHzTXAURqFZZdJa0Jsw/u4MBIqj/h/skeApz/suQ1TbImatr7wj5WyYynINIe+XX0qWiG2YX9LOvOEbOZuBqrtGRpSNUnhLpLN7UNEg7kekcE3i3/xCAU0sWIACh7djHPahWS3Ker8VClxitYxAbpp3bHD8RPloC/MHqEgAu5/8uy+0brpxJLyL42vsvLYI1hm6Q66tsfQ3iuYsviwXLzyqbKAF2IjVobS3KSfbFZJqjLkgmbFARvUWMzY3oeeVc=","translations":{"en":{"changelog":"### Added\n- Filters can be created and edited directly on the Filters settings page — the filter list with add, edit and delete is shown inline, with no separate window to open first\n\n### Changed\n- Simple-mode filters are now written into the active Sieve script on the server instead of a separate script, preserving any existing rules in that script\n- The visual filter builder now reads plain Sieve directly: existing scripts (including a server-side default) show up as editable filters, and saved scripts contain clean, human-readable Sieve with no base64 blocks or metadata comments. Filter rules the builder does not recognise are preserved unchanged"}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.8.0/x2mail-0.8.0.tar.gz","created":"2026-06-10T22:08:27.485916Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-10T22:08:27.573397Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"QG/EGIUo+FkDlnfr+XSecs1Uw4Ni+9t/TC+4hkJ8s8ZZ2MU0Wf9zhrziiZzMkXe5RhkKHbrxQRNM1YiO9KtlpKBzO/aX15QGEBkWIyw/nXyHBGD0lCDu6+uqBtJtC58phSXA29iNent/HYdPwMzWQNvYTnWwFlJLSyTyYjSMJjBsrVGxJw4UaidhzJkaXaRKJRw0veWgGZtObk+rc7lM1/ijzgRIoZp0B2Y8UK0meHJSDkjt7/Z2m8DFMs9Nw7KCnPVZSffeFMV4x28sFvW1i2UywJCu77ZZE3CCqVW/y73mgmPAIo7OoLMz1KOF2d4i7r2d4KxfnTWVnLeFSPiiqUHEVWjyL0SgcBVHVpEsWCBnlJoQOifb/W6H/BaaBPqitFzvrdQ1HmSXRu+SgsqYLyQnqjk4s3tElNnYwms6X+JL8aX648hpB0Ciw6UppRrmKUdRfL6a5Uw2LnsNoK/Vn0BF3tLE1rmU3jcxkYF3duoO2g93HGVCE/yp2Zh3ikpjn5xnVpV1aCorN+MrmVR3D3sil8/V+tfO3IpSoszpmEqVCHOJlftIJt/U7eaPR2iklfehaau5e0zKtOYZCgEJclsrgQWEPb59S06jxXDJB7Dgs6uZCjkHksRKMeYQKfhXLDMV1R9EKjG36C+aW5t7LOYrfu8FTZEVV0ARzbP0tR4=","translations":{"en":{"changelog":"### Removed\n- Support for the unmaintained `oidc_login` app — `user_oidc` is the only supported SSO provider now (`oidc_login` does not support Nextcloud 34+). Existing `oidc_login` setups must migrate to `user_oidc`.\n\n### Added\n- Optional extra scopes for OIDC token exchange — configurable in the setup wizard next to the token audience, via `occ x2mail:setup --oidc-scopes \"scope1 scope2\"`, or directly: `occ config:app:set x2mail oidc-exchange-scopes --value \"scope1 scope2\"`. The wizard's Test Login uses the typed scopes.\n- Test Login diagnostics show which token was actually used: exchanged token (with audience, scopes and remaining lifetime), a warning when the token exchange fell back to the login token, or the plain login token\n\n### Security\n- Bearer tokens are never sent over unencrypted connections to remote mail servers (loopback connections are exempt)\n\n### Fixed\n- An expired or rejected token during SMTP authentication now terminates the SASL exchange cleanly (RFC 7628) and the mail server's error details are logged, instead of failing with a generic error\n- Token exchange/refresh failures now log the identity provider's error response and the remaining token lifetime, making SSO issues diagnosable from the log\n- The engine log no longer fills with `CRITICAL: Caught SIGCHLD` entries — these fired on every normal helper-process exit and were not errors\n- The webmail UI keeps loading even if a future Nextcloud release removes the internal CSP nonce API (the self-generated fallback nonce is now correctly referenced by the app's content security policy)"}},"signatureDigest":"sha512"},{"version":"0.7.3","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.7.3/x2mail-0.7.3.tar.gz","created":"2026-06-10T07:28:22.812191Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-10T07:28:22.861213Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"GsnBP8p4EqmOoys6054RmLUQytckPSgoJoiRE8enLyD7RUmjC+gC0/itlwXC+6EHM7XSwhLYSH3GnbJZkzvu5J4LxtuHRbqUME/btmVJ9eiqgd3aNvChgCMI/l4lwtgJkb0qSOLUw+Ba95r0DqJFKZ7Th4e7gta2YENCqsbRlDH42q128cJnCkvpeuWfSYj1yXZ+dKvYbwrsaqbg7mCtCI6usKQbjJORgat2sexqjTpJbf3JngyF8aSVabN4kbwfCyI3y+KOpAZXd9vE016n3IyN91m1+ZBdHDzr7XTX9sxV4MgGvzU9iypZhnclHtcXD91cYqdjnGRwSME4I5fwQM1ZAirS5iwDE3cj1jkXxR6STnb0c93TZn399od9mqwQ5oTBDJMyi9jsPXAehTuvIhjtotQDnT5BQ+vfSU72ktexXvpG7Xj6RkvzlhsWbe6VmKPmhBxcSB7Y9NU30pPIuZkdb8m/10qRvZ7/SSBpIAHuPTufAUr5Un2GnN0fizL7CfnHFTp1uV7m7BbM4lXHHI1aC/fQaHSWiPSc5VxhJCCqAyn7gxXbI85FILuKdZKrE+0+36dKzDg0Capuv5/C3x0mVpYm5LhaaItCBCLP2NQPFMGhbN+zflequHPhlhTAJYdr7ulRjOhmeeNKLGgmROZfvp3YixRSONhMs6uiOGg=","translations":{"en":{"changelog":"### Fixed\n- Nextcloud 34 compatibility: the content security policy no longer depends on the `allowEvalScript()` API removed in NC 34. A leftover `$evalScriptAllowed` subclass property additionally crashed NC 34's reflection-based policy merge with an HTTP 500 on every page load; the property is gone and `'unsafe-eval'` — required by the Knockout-based UI — is now added to `script-src` via the version-appropriate path (direct keyword on NC 34, `allowEvalScript()` on NC 33).\n\n### Changed\n- CSP nonce lookup now degrades to a self-generated nonce if the internal `ContentSecurityPolicyNonceManager` is removed in a future release, turning a potential fatal error into a soft failure (no public nonce API exists yet — see #181)."}},"signatureDigest":"sha512"},{"version":"0.7.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.7.2/x2mail-0.7.2.tar.gz","created":"2026-06-05T11:45:35.314897Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-05T11:45:35.400627Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"BeNqKd6NrEDPxBwGNphs2hAraGG7swYqYfaapcEC1fh9sTMtk1HqifZJJJbAsM5Vg7uvWvDZfx7bdWJ2uPQPfNZSl4hs4pdOQQOHw28Zm6xDpKoOFYhi3YeIGxA0UWfovot4ONhnr/qsQqxt2h3kQWrxheimBJRjsxSJVGSsKRYBnU/IqwuarmpxHHpLsNgB+SIBztFoN7qk0EJiObh0iGiz56XWKR2PUF7Z9/I4MsnWuu59m8Xu+8Bm8mxTb0PNs0tMl3fIVoacWkmGBYwv4sbV8NaUkWkAKGCfVUDN1gQHJ+u2MF4Kdo7/fkmFa9lWPED2UWkFpjGXzno0JSirkLgxwypyrTDLq05lTljRb3oqXg3dbKmuT5RtWWSjsucBUWsYICxNg5IjsFrgk4D80VQFoxWYDWVydwaIv8I7Nx/+gCOExq12CDrKcp29m2vZ10weqy/BRl9QlflTK8U/aDraThsA+e7oeg9gNEE4hp4mpl4728QYIGetwK7GEVMuNUPJUyvT2GVlIhFUoTc2exdV8CndUvR/JFOxT4WVrKrZ3CdMbVmgysTcUTrwEH8uYf7YiwQK84iLANyT82yc7SdXB7mgTD7UbPNvpkOE/iYnLvXD8N+yk5Fo8YnbesVUh0fyPgKhV0Uqm9xe+RMhbAUKBqvJuFF1nT6zkwzn77c=","translations":{"en":{"changelog":"### Changed\n- Authentication state now lives entirely in the Nextcloud session — X2Mail no longer stores its own authentication cookies"}},"signatureDigest":"sha512"},{"version":"0.7.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.7.1/x2mail-0.7.1.tar.gz","created":"2026-05-31T17:58:35.926343Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-05-31T17:58:35.990223Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"jmsi1UAFQZeDWrsLSRK5vayDE8f922PYBop+Y90o79JyS/tyTnI1tl4XINYVcsjEvOwqKO2up9gL+Ar/6m+c/8DZRixUZzWiHVB+AYojk1jnHIXuvgHSfnEfPRwnL0A8+rRyhICXNdqopndvAPYPlMW2n5IO7SZGuc/CrBlyIwhhkAsb9exo+ayBzddyyBvanQwNfr7HcrIwqYT3iPZ0Yn3uaz4r+8icrxrk06Wh9n5pEwbyjuKe+hqpYgqWadSr9FRgxbt/kb/odbErWvxNSdmfYKNMg968kIj/iR7RLnjBVM4dLFNwGQWGQdqp+Vj4YYc3TCQZ+yug1lxWpHClmjTOFJgUTfRPvgGHTNlJvmZ+jyFzjwTx1A8IQd8UfHXNoTwTCPrfCtpWKmqJOA8pmLfBX5J1qoCBMRufsegHmai/ZZhDjHqmsQ4y9dRM+UwaM3f4+kK/1TdV1GeOf6HyGStQARnxSUXsnH7BtdlP6Mai5jLlKlEAELXTs4yZ1WzMsEUdAZfFzmtCV+b/vS6T2aZXx/QLDWCtLiA786aym8lf+LQTHUHpwWo1U0kZ8DJYGy2xNEzSsKJwAp/oxBGFni4iDy8S94negMcjeXxtOcvXz+o/tiU0KCu1iUWViIpbvVKgoLVqiY/zynxWDKcCMa78tO/O6UoWx3reu/1cY+U=","translations":{"en":{"changelog":"### Security\n- S/MIME certificates are now generated as per-user self-signed end-entity certificates, signed with their own key (no shared signing key)\n- S/MIME signatures now report the signer identity and a trust state (trusted only for known signers) instead of marking every valid signature as verified\n- External image proxy rejects URLs resolving to private, loopback, link-local or reserved addresses (SSRF hardening) and caps proxied response size\n- Mail authentication offers only OAuth SASL mechanisms (OAUTHBEARER/XOAUTH2); password-based SASL fallbacks were removed so a malicious server cannot downgrade the connection\n\n### Fixed\n- S/MIME certificate creation now works for identities without a display name"}},"signatureDigest":"sha512"},{"version":"0.7.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.7.0/x2mail-0.7.0.tar.gz","created":"2026-05-29T00:20:12.361563Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-05-29T00:20:12.416568Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"PspvYRZ1bF4luhOnn/aaXCg5qPOjL3XxAoZIAjf7oQi62zLs4vUHB7zHUS2AI4gVqfGGYLlBB5MTpBJnLiErdRzfCGqn0ExfpnGPc9PUP4C7XED5hurfEq8XPzsxglxvaXbgTouQ3YdJT7Bclf1QK9u17n6ii1y8z1y0LT5Xi6Zxmp2pAMwKgP5M9GY9s2dlxQDmJC1uzkW9pcTPjcpokPUlnpeOiKGEWklYp0ymiF/dYtqU7+XktWUkn5pSMin/2i1xIMJ/ayCp+OYnWn3cixZjLkl7ZXulIX5L5jkizO4+ZVBxS4HuwfNKfBgRQWWzBPzgoG1FakDPs/8vRFBr3KQTA0v/8CeXe5l2S8E/Nf7j7vGRyXIKHj+S8xkZjvfvtJzVZxgngKCspHEsvWO+tXjcImILdzct7/wr5WXzieM9N7cCg3boQtbjyczrZpQzIhamfnwTP0xP2ypfmtuvOJASlIEVVPuProj4Gi0jnRjnNKxj8cAEmrvr4DQGjKtFp1+8Kf66nUIii/6bwupRSAUEFXlAauuYSXcjA2zfyi4Dijh0pYKUacF6Wt3iKtdW2r8jE1sPJTwdd5tbflCL4e/5JF6X+B9dwT+Bt+6DqN0r4TGtyx5/xz40lVlaPbf5I38V0otG/6CSCEPDH2JmC+JeEhxuynT6//J3WXvf/lI=","translations":{"en":{"changelog":"### Removed\n- Password/plain login — X2Mail is SSO/OIDC-only (`--auth plain`, `occ x2mail:settings`, and the manual password login form are no longer available)\n- Legacy engine admin panel (`/?admin`) — all administration moves to Nextcloud Settings → X2Mail\n- SnappyMail legacy domain blocklist seed (`app/domains/disabled`) — fresh installs no longer copy a public-provider deny list into engine data\n\n### Added\n- Setup wizard **Test Login** — verifies live `OAUTHBEARER` login to IMAP, SMTP submission, and ManageSieve with the current SSO token\n- Configurable ManageSieve in setup: `--sieve-host`, `--sieve-port`, `--sieve-ssl` (CLI) and matching fields in the setup wizard\n- **Allgemein** + **Info** sections in Nextcloud Settings → X2Mail (attachment limits, OpenPGP/GnuPG, version info)\n- Real OAUTHBEARER auth-test in the setup wizard (replaces the old engine connectivity test)\n\n### Changed\n- Mail authentication is OAuth SASL only (`OAUTHBEARER` / `XOAUTH2`) for IMAP, SMTP, and Sieve\n- Setup wizard is SSO-only (no password auth mode); SMTP authentication is enabled automatically in generated domain config\n- Setup wizard mail server section: **IMAP → SMTP → Sieve**\n- Updated bundled OpenPGP.js to **6.3.0** — modern WebCrypto/WebAssembly, smaller bundle (drops the legacy asm.js fallback)\n- IMAP client supports **IMAP4rev2** (RFC 9051) when the mail server advertises it — unread counts use ESEARCH instead of deprecated SELECT UNSEEN\n- Updated bundled Sabre VObject (**4.5.8**) and Sabre Xml (**4.0.6**) for vCard/iCal parsing\n\n### Fixed\n- ManageSieve setup and **Test Login** now use the configured Sieve host, port, and TLS mode (supports both STARTTLS and implicit TLS listeners)\n- Sieve filtering works with the same OAuth SSO flow as IMAP and SMTP\n\n### Verified\n- End-to-end **Stalwart 0.16.6** with Keycloak + LDAP directory (IMAP/SMTP/Sieve OAUTHBEARER via setup wizard). See [docs/configs/stalwart-oauthbearer.md](docs/configs/stalwart-oauthbearer.md)."}},"signatureDigest":"sha512"},{"version":"0.6.3","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.6.3/x2mail-0.6.3.tar.gz","created":"2026-04-13T11:15:01.343970Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-13T11:15:01.399462Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"k8GtOJHRKxhF+uUxvFpIuXtKEka3XZObN2lEkrNx1iqpcZQ47zlXbYmvWfbIggakAe66eTOD2JlOAOXr9bBcP27QsEilFIYUS2tmSOLnhECMy49p9qM3SPODmNw3vuNvorv6WTrM5h4LQimQP4HK1yG40a5sww/TF292IjMb1HfBuEyd0IG8kE63lVVyECvmFU6DDaX1EY6uWY/U8/BaMu2PgqZYkVcnDHlaClVxt4g9BbHOrn7wRBJIB/mM7iv+WjG+8m6quO1ZQU9yggrQLl82ECydvzgYwVE9zh4IUEq3EXqbQrklhVBvWkUYG0Hh4txgdbsT/D1QuHlz6oQ0xn207pmF+2+6DJqJ666fl3+R4lH0JKiFQBf9+JKnhu5uhsMigInru7LAlZMwpcpMp+hQtwA8dGAN1A/Tqy7nRSiXgizPH5BtFZosimGc0y6h+479jR25ZJsIbqBHGhdgcdO5loKN2pikArV664ZJQu1b+HUvfMHU5S+HIrPG4kk3nzK5Ii+sGLFYxuPYrrSEPvqzGxjLLFQxJVw7admtotMTpXAwE361zBDl7oajLCB9Kyzf1GEJe4w2Bw3vVpmGBaah7aHl/o7ehGeRVOwVPTw/C1yYQXf2qcn3gb5nNsFjOcdNjzWQ1XggRIyOS1mCmf3T3kY/4YGfBsd5lTwPx/M=","translations":{"en":{"changelog":"### Changed\n- JS/CSS minification in build pipeline (terser + clean-css)\n- Setup wizard and `occ x2mail:setup` now enforce one active domain profile and consolidate stale extra configs\n- OAuth domain configs now advertise only `OAUTHBEARER` and `XOAUTH2` SASL mechanisms by default\n\n### Fixed\n- SMTP OAUTHBEARER authentication now works in SSO mode — `useAuth` is enforced when `authType=oauth` so `SmtpClient::Login()` is no longer skipped\n- Preflight checks now perform real IMAP/SMTP `STARTTLS` negotiation instead of plain TCP reachability checks\n- Preflight TLS checks now inherit current X2Mail SSL defaults and fall back to relaxed diagnostics with a visible warning instead of hard-failing selfhosted certificate setups\n- SMTP OAuth capability is now validated when authenticated sending is enabled in SSO mode\n- Setup wizard now writes the new active domain before cleaning up stale profiles and reports cleanup warnings instead of risking config loss\n- Release defaults for `autologout`, `contacts_autosave`, `show_login_alert`, and identity handling are restored through targeted migration/default application\n- `occ x2mail:status` now reports the actual IMAP/SMTP security mode and the stored OIDC provider selection\n- `occ x2mail:settings` and password-login persistence now store secrets with sensitive/internal flags\n- Repair step no longer wipes legacy passphrases on every update and no longer resets broad engine config on every post-update"}},"signatureDigest":"sha512"},{"version":"0.6.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.6.2/x2mail-0.6.2.tar.gz","created":"2026-03-30T11:24:41.206065Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-30T11:24:41.266449Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"mItA3uylAtZOxTs0EeJbIZz2N2qhw4OQUrsi4/YcIyD4fTYqRhnHXc1kttK8I/7N2ijA9UnRhPVykw2aX59+G7vueheJhZ+YQYs+LuDBA1mQPDfx/Y+urR5HQEZvWWAwA4gP8UANrfiwmz/LCViEXLn53U3xiU9cxm+mVaiUTpefYlHsR3tX3x9KWCduBfqtoOoBsJw1GchQDSQGBS0XXEXoo2IBZM7pmmA1jjBvAtDxW256r44MMsvNIsFB3MdK5qu6x9CNKqj9vlNh8KhQ8KpSh2GZMa1xN/lZDHTRCmtz71c9NfySx1huu53kKkSFk/V//sntLRYmnVZpmivTJgVJDdxniAhvcIENfDQrBtPPD7I1YbC7vtwZnRJaMmBv1L6hTxOMC0D9v8IvVHdlnkIfXOraAHpil0NFnxgHzm4jupR4ZzjyPEbmAJvkZFDJ26eyh5k18SYlHiVyTOUT+T2tblLEey5+kqaDs3pfkoKxVTuPIRufmUlox5DhQfxMb/ln1AAvRVnBNQk3BWK3bSzD3mZ11gC3sn9g4IVMLiIva7VH9mjspbTSEI9yFUKyPNWkSi/0mGGeu0TnRbTcCOzHO9J6hfeyEn5FF0PIuVT2h2TTceF4Ou+UBmSwJPFee7zRTE4T6xd7OJf0FBnagrQ04dFLDqUyNps6NO/TL0w=","translations":{"en":{"changelog":"### Fixed\n- SSO login works reliably after App Store upgrades\n- Plugin updates no longer leave stale files that break the frontend"}},"signatureDigest":"sha512"},{"version":"0.6.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/NK-IT-CLOUD/x2mail/releases/download/v0.6.1/x2mail-0.6.1.tar.gz","created":"2026-03-29T23:11:06.875957Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-29T23:11:06.947927Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"dEdjRe1rcTmKEQRDnbcAfwSnQjPIBltjOBrLh7dCkdwrGevH3vUoth1XGQgmnoleskcO7Fd8t18Kdl/qHWP2h4kdONGWHga3PE7vXq2LmZ7hLgWeQPHoTmIjRtJFRMLR7oZ6pXEALsnMHWOMnjdkGBoLqQy+v6fvJY0pYBJm+g7MTnVBIsoj0d/CWQHhR13P0D3bm0kzV8fp9GAUZYLOhMcafoql0As5V80+1TJ9gmHpz1sIeckKQ0AJPE9CmDQgOyXYDu6VG0Hf3uZYMmkeDTlHGNx8JAuceeNiGDpKB2wA/LhqxRYE/r37iPpNNr92YWILVHvTX4bkvVmXvFKWsGnX2v3Tp6r0ooDoQuRA/hCRwcfgQ2qKRXPkxOXvGNQpO0wyHChAkqXKO0WN49wlEt/y5hs++U6pcq+3Lym1wz60ZZPJ64elGJWPSfndcOEuywWkoh8aieyd/FPJXBzLrngmOPnrE9ut7MY68HL9W2pi/nL+L4UyyrC89dm+BftlXJkzya9LC6s2+fjvrXONZJFOaR8Qu4S9EWyfncrc/01guEN2eizBeKcXqxZl7Fc5Bg1cokpvxfqZzf7xC6f2ChPoGLurqHMrtV0XixVaPHLri9VSq3Usw3xn74Z55FVLks6xPKAC/MoYHGZak57iNybDPNjCMqjqGqFXMIyum0Y=","translations":{"en":{"changelog":"### Added\n- Dashboard widget: unread mails stay visible after OIDC token expiry (auto-refresh)\n- Nextcloud search: mail search works reliably with OIDC token refresh\n- Calendar save: duplicate detection — warns when event already exists, option to update or cancel\n- Calendar save: visual feedback — shows Created/Updated/Error states on save button\n- Contacts: address book name shown in contact detail view\n- Setup Wizard: unified Mail-Server layout, domain tabs, OIDC provider visible by default\n- Password auth: credentials persist across sessions (automatic on Nextcloud login)\n\n### Changed\n- Auth type switch (SSO/Password) applies cleanly without re-login required\n- Password encryption uses Nextcloud-native cryptography\n- All 26 engine enumerations migrated to native PHP 8.1 enum types\n- Engine static analysis raised from PHPStan Level 1 to Level 2\n- Contacts detail font size reduced for cleaner layout\n\n### Fixed\n- File attachments from Nextcloud Files work again (NC33 API migration)\n- Save email/attachments to Nextcloud Files works again (NC33 API migration)\n- Email address shown correctly in login field (was showing username only)\n- Switching between SSO and password auth no longer causes authentication errors\n- Calendar save to Nextcloud works reliably\n- Setup wizard token diagnostics display correctly for all OIDC providers\n\n### Removed\n- Manual email/password settings page (SSO handles authentication automatically)\n- Admin panel: password/TOTP authentication removed (SSO-only)\n- Engine dead code: ~14,000 lines removed (unused libraries, standalone contacts system, admin auth)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL05LLUlULUNMT1VEL3gybWFpbC9tYWluL2ltZy9zY3JlZW5zaG90LWluYm94LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL05LLUlULUNMT1VEL3gybWFpbC9tYWluL2ltZy9zY3JlZW5zaG90LXdpemFyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL05LLUlULUNMT1VEL3gybWFpbC9tYWluL2ltZy9zY3JlZW5zaG90LWNhbGVuZGFyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"X2Mail","summary":"Webmail for Nextcloud that signs in to your mailbox with the SSO token, without a mail password","description":"X2Mail is webmail for Nextcloud with native SSO.\n\nLog in to Nextcloud through your OIDC provider and open Email. X2Mail passes your OIDC token to the mail server via OAuth2 (OAUTHBEARER/XOAUTH2), so users never enter a separate mail password or see a second login form.\n\nX2Mail uses Nextcloud's own APIs. It needs no external services and no database of its own.\n\n### Nextcloud integration\n- Contacts: read, create and edit contacts in all your Nextcloud address books\n- Files: attach files from Nextcloud Files, save emails and attachments there\n- Calendar: add ICS invitations to your calendar, with a warning if the event already exists\n- Dashboard: widget for unread mail, with automatic OIDC token refresh\n- Search: find emails through Nextcloud Unified Search\n- SSO: IMAP access with your OIDC login instead of stored credentials\n\n### Features\n- SSO without extra configuration in X2Mail: OAUTHBEARER and XOAUTH2 are detected automatically and the token is refreshed before it expires\n- Nextcloud admins manage X2Mail in the Nextcloud settings, without a separate admin password\n- Setup wizard with preflight checks for IMAP, SMTP and OIDC, plus token diagnostics\n- Nextcloud theme with light and dark mode\n- Server-side mail filters (Sieve)\n- Multiple sender identities\n- OpenPGP and S/MIME\n- Command line: `occ x2mail:setup`, `occ x2mail:status`\n\n### Setup\n```\nocc x2mail:setup --imap-host mail.example.com --domain example.com --sieve\n```\n\n### Requirements\n- Nextcloud 33 to 35, PHP 8.3+\n- Mail server with OAuth2 SASL (OAUTHBEARER) on IMAP and SMTP submission; tested with Dovecot 2.4+ with Postfix, and with Stalwart 0.16+\n- `user_oidc` with an OIDC provider; tested with Keycloak"}},"isFeatured":false,"authors":[{"name":"NK-IT Dev","mail":"","homepage":"https://github.com/NK-IT-CLOUD/x2mail"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhMgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzI2MDgzNTM3WhcNMzYwNzAxMDgzNTM3WjARMQ8wDQYD\nVQQDDAZ4Mm1haWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCeM++t\nI7MFCMzJUtywr9853OdepBQSY7RmjcXv1VL6CZR6lkp/wW0RE17umPz/4zSRcluA\nekjiXqRvQvbgqdmZ1RE8tvjNuRGgyWIsPbcnVdb5R/TogFPOKlshdpFvFCYso9Yd\neY1Zqll25pVTanCJAj8zmkmcjfwxfCuPLfRjM1et5fzEvlU7O7GUWsgBbDrqGTsS\nZ2JytEQGv7bCAwu3l76DePgNezQ2cTF/F1epKdzxDYFMT5rXn0/QJfJgKtyklw8l\nLQ8lhHgGfub3aoRlp6C9yBSNjr4fpK5tuy0Xgzblzat3xf6RqX0fU4Pw0LXlsa0Z\nMtLGltVNt9z7ho4OBsbrFiM/42y3zx1XzLuzmx/J90y/t9enwJbHU8519VlEXH3l\n+DGj3HHJoPeqyn2PaBPgn1n5lIIOAZWnK7Iku087Mc0YGO8E0LsyR/QFOaLOreBj\nsZbPUzCCyQKlh9VqgfXCGFEsbhQOp3PtEFkVSGchrwvbnnS+t/5ScKm1xvYY9Mro\nnjdhsqzvpcvUuwZ+NzRI8+TYkDN4aIEJjygVzKozWqPFAu7xCSgwGdAELYgLX9c9\nWUtPrJrYqLU5BtcRiv+lp2YJNe9zSW1IuQmapD082y6PZJKwN6VORJAQealV/qqI\nalZlnVUyJIW4s/NYiGHsghNy7Rdw/doW1EJ1hQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBLipnwYtyqe7C+XPdBKRbq/gOgTWWQ9Lq8wziApnodwimcLWSAkRWO6SlK\n+wsNgusILFjgTC6EgqMbehj4XkVANVLSfx/6Fu6YAN4pjtgs31zCLDlKsqNdEsae\njWlM/RN3ZAMvDocFzgwT5njC+oRAfG0DUOUDDm9a7Yk4NN+btX7HEVNMw4YSGDmP\n6+7jgVgCWw08o0JovhOPpM4gB9c6EfF2B1q3i6oLVp4JTg2vlKIoHpjA6pnkDY8G\nl6wvL/qiGsmyB+uTsWx9oUfhiXAVpVThNarAc+6QmuIDknmc8OjYdLz6+WXBX2Vq\nux3HgqjSQjjF5LO0Ip0/oWS7uGii\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"geoblocker","categories":["security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/HomeITAdmin/nextcloud_geoblocker/issues","website":"https://github.com/HomeITAdmin/nextcloud_geoblocker/","created":"2020-01-18T17:08:51.261209Z","lastModified":"2026-09-18T18:39:08.687839Z","releases":[{"version":"0.5.23","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/HomeITAdmin/nextcloud_geoblocker/releases/download/0.5.23/geoblocker.tar.gz","created":"2026-09-18T18:39:08.668777Z","licenses":["agpl"],"lastModified":"2026-09-18T18:39:08.734093Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"wVGZ+p/OTf7Aee6+1v5OZ7JmtBNCsTkPVA7tbFljaCdjCC+llO/58JIC6X6sXu8qdvx0P2bn2um/+PuaqUmgAedsWQYB5H1qUpSCHE+FrHUK5YVDgZclJRoPM1EicN+g2f8Akwz7VwJnrjojb4k/434H/kx/YeRkig6qMMRSWdMMOPdJP5Uw9HzALCIJEvL9zpeQGzK2kD/bm8VN6LCaZ09FFhZOn5XYZjZKJOorqCI2qncc4WfI33Q4kfNioDiiFrvfAPeelwGuE27ri9Y/qL4jeo1+syTM1VUG6svxwXljZWT40dN0ZMocof6X3WFUQKWFj+v7oMGJYRzBqBi4WrjmmNH6YkuhStb38JTvE07Mo3b7o+DkGXBZMbuVwr/OX9iVw8fZqLQbxTINgLF5sfjCDgu48b4zoLP3d7qoyQndvP5oJ/miH6Ad0P4gN/onYtLHyVr7ObZCWgEsJ69TyEIdMNQAeGvRBGHeyDio+nTHu/eRjR0292WWHEMelZBmtEyMEE4Yg0v0MyiqcIRTNGFFVNDEYWUJ+fVdlWKAnJorxKOy+D1YPVyXu8Z1bq4/e+rbXtfnE+Vdu5vJPTvetSmTe94urgMBaoWylUxQQO/D4jpjMUjnera9rUMpIUfnos5zIHL4o9bCxN0LwjJcun0HZ3lnj9th9llRDjxY5JY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0hvbWVJVEFkbWluL25leHRjbG91ZF9nZW9ibG9ja2VyL21hc3Rlci9pbWcvMS5QTkc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"GeoBlocker","summary":"Blocks user depending on the estimated country of their IP address.","description":"This is a front end to geo localization services, that allows blocking (beta), delaying (beta) and logging of login attempts from specified countries.\nLogin attempts from local network IP addresses are never blocked, delayed or logged.\nIn the current implementation the login page is normally shown to everybody independent of the country. Also login attempts with a non existing user are failing as usual independent of the country.\nWrong Nextcloud configuration (especially in container) can lead to all access seems to come from local network IP address.\nDetermination of the country from IP address is only as good as the chosen service.\n\nCountries can be specified using allowlisting or blocklisting.\n\nCurrently available localization services are:\n- Geoiplookup (local programm on the host)\n- MaxMind GeoLite2 (local database accessed via PHP API)\n- Data from Regional Internet Registries (Nextcloud SQL database build up with data downloaded from the RIRs FTP servers)\n\nFor help how to set up the localization services please have a look at the GitHub repository (homepage on the right side)."}},"isFeatured":false,"authors":[{"name":"HomeITAdmin","mail":"homeitadmin@seypro.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhEiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDYwNzEzWhcNMzAwODA0MDYwNzEzWjAVMRMwEQYD\nVQQDDApnZW9ibG9ja2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nxHq+x8OupSvpYA/qZjsfrJmBwuD2HYshL0+M8SfeNatD3ijN5u2QdRc58KcnsX7k\nKldjm3YiH2mMun2f+y3DXxUUo9Hcy3QQaPmIxDnD1lFeWpW6tTlrOJfHp/r6zFD7\nllPekrWcwt774vQHcsOEq/D6YJYrWs1mHEb440cfSmF8RE5hK1wN8tZt84cYqFYb\nvgcbd3zKu+RNuL2xwE1QTgQCwXuS3Rs0BR4ipfCzBfqluxZq/tSovuGaGsObd0Iq\nQxtrTV1nr3/Rb6DprvJiOMdVd9qghP6W4sUPtHFIrkeo8bFG7UGX3kuoY6WYOSgs\nN5Ed1oWHmhlqKW+vvrn93lQbuofNpmcQLvzv79K4iCmDvTsiIJP1oiKGcUf9nuLW\nIRrzGgIbGUCcLc3r5QrV3fA0gquFVKXMT7YAAPPmFi1AEd0EZO83ph9tppK5j4nM\n0nOtODZNuCU6T0COTqmRrNDNNdlyQ801kH9ISoxJIH/1g4tqN+rSP11ZZj8RaTln\nMBAjIUc7HitLygKR3VBtNH+YdTj8nW1StsvvjZnKWVpNJ4aXxcCVAi1KNOuPsbQg\nZbMNUP9LJpcIOJnB311geeQzv0rby0ii4N4oxPiFffc8EZA8dyAGBY38Yb6OAJ5B\nP7OkUFQ1go9woChAAj73EhOHzIM25GNxet0kPTfnNwMCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAZilNZALLI8AIyRAGfr64xZhVmm/q4AYkh5vYN6Fdfa/p8p1o2iZs\n3W47v3UKG1KIyPml+ggMwMtUE/AX7p4/2sxb4OlTNi5aDVx+8ArIpRsYb6h5YmWX\nyW9cuKyf1Y/Pl8F6dnqM7Ecn85m0Ivu7RD+w+qm6LbHyYeoPdLDSsHlXON35GPT3\nvGrZPpfV0H3ncR3pxUggwwEfHoUnkCP218vYHLQqoMdO3AaKBFfGJQtS8c4V6vbL\nQu5JiXWsuZEfD8YDwAmbMHz5Qw9mbxT7S6kU+9eC/c1a5NEcT4PZjxVEuXnOTK7B\nLBLrDQwsPgW1jV7J5ddSONeNyB0VGec3Jg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"data_request","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/data_request/issues","website":"https://github.com/nextcloud/data_request","created":"2018-05-22T21:29:27.457445Z","lastModified":"2026-08-20T10:22:43.093249Z","releases":[{"version":"5.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/data_request/releases/download/v5.2.0/data_request-v5.2.0.tar.gz","created":"2026-08-20T10:22:43.077084Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-20T10:22:43.165533Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"XvggBJVKsiBt2b5kjN7c0nmsHriOQ3YUv3CwqOoUDgzNVzzljw7xjUT/CAGuz2aVMw+x/oyS0vRM51OgHKNUtoFFA0/fPf1pR+Xu7eqdbffTaRwMF9UzuqrVAOueCw5d8hV/BV7usETdLANC073ruS1s3XhVKPmW3NHyauk2eqYndYCmibGXiSo6FSa8u6rA5+oA2l9aWg3zB9NpmNVTe5Ft6K5y4NuWfLYzKg4gg1FK0Tk4SyMVoI70tXz9EVUlK/tWazk80THO4a8KocQqcZVU1rhxQhbnGCywlTgLdVB0Md2Fc5jNlbq1KJAYjaON+JSEw6A7zwa4lxc04hRnkSbvRTsBgdLkqeBGo8qYi42KBADcpGION6nQRcayhyF+AxclkLpyLVBYiEKbi0DL/LFjgtPZBXpVu/csKLVNp59IOIBigANzY5RwkfmrcT2vrjvFV2QPRfC91qz2KiZZ24WaEjUPIji9W0AK9FVp/OV5ll80KfLrN4o01myfuv9sQJ+6f67MEsZH6/EAdO7nRfrGJOV/xZYk1+T7EB/8eK3ikHRsSoEb4JvMMJijw51NqsYILcWPVCUmgv4KaMB6j/G5RDVEOSsxqexQ5rX8nAD4TvGfGsoZaZfdyXns7JRzmV5UVkGoQjJbF36Nk17Uwo/dQmhwSPFCOIMnxiDQpZ8=","translations":{"en":{"changelog":"### Added\n\n- ✨ Support Nextcloud 35."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9kYXRhX3JlcXVlc3QvbWFzdGVyL3NjcmVlbnNob3RzL3BlcnNvbmFsLXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9kYXRhX3JlcXVlc3QvbWFzdGVyL3NjcmVlbnNob3RzL3NldHRpbmdzLWNsb3NlLXVwLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Data Request","summary":"Request your data from the admins","description":"Enable your users to request an export or deletion of their data. According options are added to the personal settings section. Administrators will be notified by email about the request."}},"isFeatured":false,"authors":[{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":"https://nextcloud.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBzCCAu8CAhCiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwNTIyMTQyODA2WhcNMjgwODI3MTQyODA2WjAXMRUwEwYD\r\nVQQDDAxkYXRhX3JlcXVlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\r\nAQCpTq9WtCs/JvcqYjFVNPD0lX7vjFhlTvpBw5WNHPCHFpgjB7lpFPoaw/evmR3a\r\nHhmYoknuRqsekxWJDS4JB/ZtLjlxKKKKJqDBWcDcR1RqQOzNRZSkRnzOtioSM6el\r\nEqeIN2sLwwSewMGf98eX4EFw0rZLIy/S5YA+57xG4tEXEakSCo0kfBZig/BCrD9T\r\nanClCLJir9Jhjz1GvAor/4CuofM6YXdbGk2BpOANeFlICDugW0eUsxc2hp6t+KMk\r\nJA17l1fvug7jWo+ZDtPD8MSMItr2RocAb7LoSZPejGxLrsV7/GzKhOQdu0Wods1S\r\nO9mwxGWuA3AEFYYFo1AuTDI15zUypcWagG9hRR2jB9ovEgwvAYlAEVbvMk30Td8L\r\n6zYEa3iLptdGrtZk7obpnjka+VQSAYwKubqHnvcERalbSGRefNtdvk2F5vmpjCN6\r\nabvYPWrXpswuvj0anf23CslIS4EFB2f6/zZu2wGq9XIvtx/uCpiMPc5Ok/qXj18x\r\nryRumrsc1DeoXqyJvVPXfQTUh16Wzn8lVAoWyW7tXcbniUsy+Za2A2a9QmhkhPjU\r\nw/PB4skC2FmT/B51IOhUd5vfV1lXYmRr/qPHMwLWC1NFezyAyJlzMGjsaNlEWHWM\r\nQAsRKA8LDeWyjVCYEQvOYWZIIM8nhtvAfO78E5GzqHslTwIDAQABMA0GCSqGSIb3\r\nDQEBCwUAA4IBAQCWWvvcxLcKwVpI8Q615PuhyqMB2VTLIo9yHBZKhqjX3eaiWH5U\r\nPykwkZVKV7BDxAplNqPSmSPXrAiWCD7gt+2wWq9uUGAD9yOPfIAk/ZLSizCKcsuj\r\nd5balf7x7BXIzh/HIpSPpzfsgi/iQiJTJLw9dEMkTJEZRz7GQf5Gm0C++Sy6duSE\r\nyr+AEL6atxnu9tR8fDuKMZeO0GHW/rFc5ot95LIV+MTHNSxOEDJRbkcgGP6W8Bnv\r\nKuFqqi6ZP3xTBEt5O351sZb9Pmmz1GunCRbbGV3IHC73aollhfauO+vPWOMexoFl\r\njdy6FtVPMtO3SbDu4yKaCJK6X5txqRsClXZx\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"approval","categories":["files","workflow"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/approval","issueTracker":"https://github.com/nextcloud/approval/issues","website":"https://github.com/nextcloud/approval","created":"2021-05-25T14:59:03.227314Z","lastModified":"2026-09-17T14:07:21.448870Z","releases":[{"version":"3.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/approval/releases/download/v3.3.2/approval-v3.3.2.tar.gz","created":"2026-09-17T14:07:21.326824Z","licenses":["agpl"],"lastModified":"2026-09-17T14:07:21.623131Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"PLOqcQwIXGPX5hm02T77mll5GSPfqjpOPTsgOMwhdZvttpXlGqRIRuWrxFmpz6pqKattWQi+LLUOEW1MLbWoutr2Hs6f9uAQLdIppOD/TbC2rVVc2zqHxuhOqCg13Xvzp3FOvy9RBueNlo7ILMx+zzdPvJ1MSOuBNb3ehu3UGv9ZBAMB5z5BbjermHwTo0wHRrzfHNxhxxDdh6R/cp9f4nO3sJiHbr46zICCrLyPwQjA+ed+xLVSB89MpR8lVVB9bS1nP+v7+vVfEuQ7qzOra0SsjUFoOeqsuXzPR+jObbfrxzSdKlVTfeZZlNpOX+hIj/EICEPFZsiMuSq/m+ZNjpagaOz3qfq9uXcpzrfgcfjSXYjkzuahF2wRcr+3blBiH5/Z0aVewP5DPMydSdDY3ldhlF7iuslBuGkL7yr3bVB9T2K+Ivfw82liK0a432v5LojpEcaK+i6BUsvpx55cXNE3ZChWnUTqYYSFIp6jmTjfJ/hjFJszNwGqEDluYnQqWeF9/Cx4U/8Qpq7qXs/a8aTDbl7lm10B7pG7O2br6foscsbisx5xjgp/t9JECSLTVlWOj/4vlnF68C+SnOqxa2DMTKw04g3AulmCw+mjLaa7bde/DuDf19SYbbB0uXqyO3tkcgYAF9EeQmfXE9nI8nY3nJDivLyf+yoMe7hlz7I=","translations":{"en":{"changelog":"### Changed\n\n- Use new preloadCollection event to fetch all data for a directory [#371](https://github.com/nextcloud/approval/pull/371) @lukasdotcom\n\n### Fixed\n\n- Fix string array keys being converted to int when numeric [#442](https://github.com/nextcloud/approval/pull/442) @lukasdotcom\n- Delete user from rules when user is deleted [#444](https://github.com/nextcloud/approval/pull/444) @lukasdotcom"}},"signatureDigest":"sha512"},{"version":"3.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/approval/releases/download/v3.3.1/approval-v3.3.1.tar.gz","created":"2026-07-24T13:45:51.669516Z","licenses":["agpl"],"lastModified":"2026-07-24T13:45:51.717083Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"rjGSXlDFQFQT5+1F4bJrXrocsKG9XVelUi+GB8JCfHJv7JEj87hTtUbod7huOtggcUj2NwuakE1sIwq1n/D5kod+ou9K3HeoMpeJWdqMHv9rZpjJp3GVEMehkjAWObvDmc3UL3LwzAGFpcU1n+2ph5qBPBshq8VbidOd6pP+28VWd5ECj++RJG+iU6E//MXPOn2YSGeijLLqIV07k30dZStHb7U37zmdhFA+t/EcK6uNLM3ZtCcWskXbCqBdldnDSov1sxj05YZoAsPw3CH+tlB0v4pPly7GOBUPvUA9C5LK181hzL93fEcQvlHQxqVyCFjc590ORTVeZ+hGoVyztTVmag72pCFs9yqsVIVmWbQBnk/S5rR1TOwcwOOpIO2xya3zCzkifkEM5fI79hveYBVd0q53rIwmKoxHGGnTJLY2nF1sEJ2YhVmnBQgegt67LMaCN9DF55aJwFf4vfWPTQIx6KJCEaeWda6AGe+25xv4gB/76ggAcQ6nPv88oVYt3BdYtqv8FNXiBnttWi2mp3MacgI2kPTI2q3S9YkCxWOGy0sp19/y39le9Fnn3ZPcDE0yQkWj43EwwKcGM11pIMn0i96R5zywVpWxE1i88H32gai9URKLHBOhYt53Vfg4jdAqafa83c9OuJWTWDPEujDCbq4rRBoSzURnz4Ar/wQ=","translations":{"en":{"changelog":"### Added\n\n- Add support for Nextcloud 35\n\n### Changed\n\n- Update dependencies and workflows [#440](https://github.com/nextcloud/approval/pull/440) @lukasdotcom\n\n### Fixed\n\n- Add warning when public tag used for rule and only load tags once for all rules [#437](https://github.com/nextcloud/approval/pull/437) @lukasdotcom"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8xLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8yLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8zLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Approval","summary":"Let users approve or reject files","description":"Approve/reject files based on workflows defined by admins.\n\n**Warning**: The DocuSign integration is no longer part of this app\nand can be installed with [this app](https://apps.nextcloud.com/apps/integration_docusign)."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhGEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwNTI1MTQ0NjE4WhcNMzEwODMxMTQ0NjE4WjATMREwDwYD\r\nVQQDDAhhcHByb3ZhbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7G\r\nFjHnrXIvM9nYBkubZH3ZA00z1y7OKwi6sXxzLUUJPL83neuJjakQqEFBCzm88b44\r\nnpqXbskjSubWRoDXlfWXpsYxd2WtyUmxj0yPAitlbZm1C2HANSYUaZYeEUf8xaWf\r\nF/NVAjlh/IAEf2cw2uFCiHzB4QkF3tB4cqwsIcdNv5IAoPfYtgnc/Fu1AbZ5Hioo\r\nrwheWfcdRqYpc/2tdEI/zLHP5svN+a45/bIFv1EFLA9gZyz8UE/Ou5RdquCEfT49\r\nkFwaDEZHKFAXv4gvhKHdxVPMlT4QFneiF7asw+F3qkevq4BU5ZrtW9gau+Gk14zS\r\nfamZvlLoO9yP3O9HlySGsbBqTdzWrBSzCoZZWEyxvCCvkdin/FRcxfeNquPq2xRB\r\n3iU/obiSWv5UAvAhV+fd8D9MVNYTYxUkmUEPN6sLOqwYgriFe24dLRprcCifEb6/\r\nQsS61UKPhQQux04/xmtyhQ09+GYdgTHz64EgqV5+wVlPBK+1XAgd8c0mIwXscbKw\r\nsb3+eZYhCkaunnRn57ymBYT5nZ7xih+uJyCQH1LRxODFr7Zg8igcmvKwcBXsSTg2\r\ndb/75gDqUFp1lMfUaEb33NTk/F98iyDmzGxrRKdSqrndVQ4PWYmM92/EJJPQcpZV\r\nJ/GmN0Pp80BSzAgmef8DIs5KJkzzomuAbHSqxzRVAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBADR+ehz64KNpJctgd0bdKDo0NKbgPcR3yZLZD2aB/6NL6bKeFS3vbQYz\r\nFnbT5d6feqZVlWIZe02BbOdTTZy2V/Mjm7jTR8rrNW6GlZGbC/GjECt0cvMvCNNx\r\ni8iE1YgjMu/Ac4Bo2fgpDUPYJsMzG6A+sUvrY4H3UxSvJ4HYR65/DnV+4xTctCWg\r\nOwePCEOOTbYiLUEyq62ClvQbdtBhWkoAXEopS9Xbh27kbJqzb67lvav+XB1QI6Yc\r\nNJ4VQw94ZgUHj2RaJLQuo2rxWAgII+wM6ESMpEf9Dn4MtMPEzBObshUMGP85n4lc\r\nj0fpoyjE8AUWow6z41IuXl3bpcESnBc=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"workflow_kitinerary","categories":["files","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/mcmic/workflow_kitinerary/issues","website":"https://github.com/mcmic/workflow_kitinerary","created":"2022-10-09T20:37:01.746123Z","lastModified":"2026-10-12T22:48:33.724851Z","releases":[{"version":"1.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/MCMic/workflow_kitinerary/releases/download/v1.9.1/workflow_kitinerary.tar.gz","created":"2026-10-12T22:48:33.709525Z","licenses":["agpl"],"lastModified":"2026-10-12T22:48:33.755514Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"inlHTFLPzMmnDBNTM1hs1RYD8UZ2pcIe/u8TkYkLwr88emV9AIQOrexivLM079blCZpykdkpxcFFHcmNQmMP6qwI46u9iYeV5K1cQm3civLXxoDRO/3gj076PGP3nWxtcJQQe/szFLNAxos6d4ZsigqiwlQM8xZBMQ7z1zeOqfS8UoPyKP9R7J38YkCYOx1Jo1ZOj6D9B2wijvnpqBOXzgsQAuGHPEcFP7sVr7wk9ieO2q4QEi/SCyDq+Yqn3IYCKUeWkb9qoIRnAWtgUPMI9ROCjz5sQnYbkPghEXiCkalQwg6KNhIaMpyUjifZ1iE+rUa9hdVAwQ6j7/KHTbGYwr0kNqQl/bTsmj6CB76pT43SAE35Z+Ty3sMhQyHGyjLYKTSuomE8Hyp+6r+R48trXgelBDbj+8bDsq2YXZ41tCI3KAfHQpAzRFwAAF1TT+5tPZ9BYSEVofmEs91Umf+kgYFrPcrtxwNa5eU/11AV/PqNiW+InkNfHI6ObYRqh+eB9UTX0QVKKGmr+m9NwFnTN0iOWPiG5e8fQK0an56r36qASRmnClvTwnr32ljysUovds1Fsrls83nQThgKXGARpjhxjFXSzYBbyMobnrW6pgB1nFkL1k4BRPdE+RiPK8c9CYb0VJFWWaKYqwRQz0rCZI8gWq08bJVviWaCdxTqrsw=","translations":{"en":{"changelog":"### Added\n\n* Support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21jbWljL3dvcmtmbG93X2tpdGluZXJhcnkvbWFzdGVyL3NjcmVlbnNob3RzL2Zsb3ctc2V0dGluZ3MtdWkucG5n","smallThumbnail":"https://raw.githubusercontent.com/mcmic/workflow_kitinerary/master/screenshots/flow-add.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21jbWljL3dvcmtmbG93X2tpdGluZXJhcnkvbWFzdGVyL3NjcmVlbnNob3RzL2ZpbGUtYWN0aXZpdHkucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21jbWljL3dvcmtmbG93X2tpdGluZXJhcnkvbWFzdGVyL3NjcmVlbnNob3RzL25vdGlmaWNhdGlvbnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21jbWljL3dvcmtmbG93X2tpdGluZXJhcnkvbWFzdGVyL3NjcmVlbnNob3RzL2NhbGVuZGFyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Automated kitinerary parsing","summary":"Use kitinerary to parse travel documents into the calendar","description":"An app to trigger automatic conversion of travel documents to calendar events. It uses kitinerary to extract the information and is compatible with the KDE itinerary mobile application."}},"isFeatured":false,"authors":[{"name":"Côme Chilliet","mail":"come.chilliet@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhHjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIxMDA3MjI1NjI4WhcNMzMwMTEyMjI1NjI4WjAeMRwwGgYD\nVQQDDBN3b3JrZmxvd19raXRpbmVyYXJ5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEAq1lLWk1RnsxEI9UEh/eV5wBZhWnNnOi4QLSd2hy0honXmz7/fiss\nYiM9KpXNOc3q4x4d0S1xaF0WDHPhsR6eevJZk6vGS3LVKwS8K4n+Cazc7yyaHcHG\ndPqXLAo7e3OtQtAT5xB0+Qwec/LxfImAheHwvVqozguVfrv4F7u1NuN6df5VWeOT\nqpSXXrppzibrh7jGXD1ewdsE0gtniMmGtazyK3mvuagu/maPSkbChsAfnm0ZW3E1\nmxyrucOKplxGAU/BZ/I/EF1s5H/LV50Xza6kW+YhhyrHN/XYUGfnK4OYvtMSUGXl\nR6pyWx+Fdj6CCNMZEqTKuOpGxIljda7OUnbh0jbyuFMDi1dhJsbuzvfWSGgBHjJ2\nPDDNRpiAzJUXW9PqkOIr3ecUW318bosd8PBn54UB/1qzi0aeBrLrrhKfEBP9XdGs\n9JQfFJCtOxWr8xPBuP9TBvGTH4AiFxaRO4Evi+5AwVsKbupWFrLY5X6TZw04+Zwi\n98S3GQBSKmQoUt6Hg9a/EU0U2qU73Ehe/VP4uEV6G5pduH13jaODBxUjGEG+93a/\nnIVw09ykPvN0zAFQuG6svVzS9C3afUKLJQSPMDOEq8oEjMK2irI1ea6KqRqJswn+\nT9hAXH2vqYnzl21JFiltRI6ePjD9xEvT3n1kE1kZ49yST9QYjQI5r38CAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEAOKPrauBmBhrKTMQicN9UT7rr9P/HjgZT7IAzcMRD\n2kx6cMqOTRrX0SJ+DvfHTGWvCR+OOKoGfLzTGowfUQzH36NiLI5Mhb6B5YhH+Kdo\nI4r94HdqLCQ6Bug1p1OXqzrdyY1gV9R9yHVa7C61JkROZJkOA29ZLqWor5cL4d0L\nM1VZ+s1Hd4r207Sy7PANhICN4nbImBksK+UjTvPdzhEgDOAZbOaxLAF+6uznWJ6B\nRHefJ96Fr3LZCoGfdEQ0VqEJv+lebor+0qjwWVLWp9Bi1Pv+RNCra5CONUsC2Gy8\nl5vUQ098XrCLatCBAz5qsN2g9q3GLRAFhzwRtJwQ2c7abg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_emailviewer","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_emailviewer/issues","website":"","created":"2024-11-06T16:39:04.679644Z","lastModified":"2026-09-04T14:10:03.004370Z","releases":[{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_emailviewer/releases/download/v0.2.0/files_emailviewer-v0.2.0.tar.gz","created":"2026-09-04T14:10:02.988517Z","licenses":["agpl"],"lastModified":"2026-09-04T14:10:03.057247Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"P4Z9gctiXv9O9WCH1BYw/PUlFC4J4CtQhXEgXXuPOqDaaKptxiGQge5q18XzvJklIxcitPNEwcdYojgC43GIYFzuVwEmfBW7AkMGiZPjjdjEY0XcBHjEiUc3EVaLpvwB5lYA8ApYa5YKZte183wAc/tY+DEFibVlJeka/vD7kaBEnYOQy48pw7V6CmpZukbJO5s1i/LcLAwNqwzN65Sc8X6vDT95dhI9/+qvk4kPPSbgoD44RLbEARMw03Odl8SAHIjRNOob31LWS3WoQzhtPxNhcvariaKJBhXES/7HjCOY+GVb6GMK9rqM6MV5uH4e6LmmtKct+WCxjOhcQ9YaapI6tK5OFkWv3HCIXkDIRg6g40Y/Pm+OzJxGZl6zR7dtiDQmgnaulk9pBhi2+E8K1xZ0ZxSvDEavBghb293Ld/e+FlyVScrfiPy/5wUrhIzwSJz0XzfohcxW9IRosbRo2I3fs9dCr2CINbJcJZWfx3l5cR3tBiHaKiHqJ09N47UNyBWyf/TPwgYI79Iz07YpjeFTnsnYNgSLN8C8R57dBztaXmodJyj+B0t5m6mOned8l3tU3HLPPLqmCE4qP+dRWqAGeeO5ke7lEYK2juZEe5FxYD6nNgREmeZao9RbUGQWgaEHRGr+UqJ7bYp4SARVkNwJQS8mpe4DkHTDKB0o5D4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Email Viewer","summary":"View .msg and .eml files","description":"### Email Viewer integrates the excellent Email to PDF Converter into Nextcloud, enabling you to view .msg and .eml files.\n\n#### Requirements\n\n- Nextcloud 34 or newer\n- Viewer and PDF Viewer for Nextcloud\n- PHP proc_open\n- [Email to PDF Converter](https://github.com/nickrussler/email-to-pdf-converter) (requires OpenJDK and [wkhtmltopdf](https://wkhtmltopdf.org/))\n\n#### Installation\n\n- Download and enable files_emailviewer\n- Store a copy of the Email to PDF Converter on the server, ensuring that Nextcloud has access to it\n- Set the path to Email to PDF Converter via `occ config:app:set --value /opt/emailconverter-3.0.0-all.jar files_emailviewer binary_path`\n- Upload a .msg or .eml file and view it directly in Nextcloud 🙌\n\n#### Outgoing connections\n\n- If the email contains images from external sources, the Email to PDF converter will download the images, requiring external connections\n- The current version does not consider Nextcloud's proxy configuration but should follow the system default"}},"isFeatured":false,"authors":[{"name":"Hamza Mahjoubi","mail":"hamza.mahjoubi221@proton.me","homepage":""},{"name":"Daniel Kesselberg","mail":"mail@danielkesselberg.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhKCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQxMDI4MDk0MDIzWhcNMzUwMjAzMDk0MDIzWjAcMRowGAYD\r\nVQQDDBFmaWxlc19lbWFpbHZpZXdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBAPa3pntP2Rer1nj1dFtd4YSYqc4RDwwTjK23z5CRQZcI8UKNCxUtcI/k\r\n7zCFMKF6Gp5EHXC6cwDAh5pyzJIEg6PN5v1Duf/WMt4jbeOCxAGt24y/1FgMy55T\r\nQ05srtdbNd7Viud5O2rR6/UNyGu/yxrMomwXmXPEp4mV1bFGzyPNzvriJLveIDqO\r\n5yFfxNWDnKr1dm8luu2UHcb9STnwO4sUaTznpub9n3YS2BSUfCwO+4CLjtXODGbE\r\n1VJ2DUX+254gLDuFmMDiKDpNHgPvoAFnaTD5kwDRkiMnUo+y+Z73v5RgK0Ec6BNV\r\nqWeyaG4k1iIpAhVbEvZdyQ2fEYtGZKt/sGyyEHnysEhwmJPa59rJMb9uyOlYmyrf\r\nYifEevBGVX6GmUgivo1btOKYiy3HfYMeWUPBDjrXSuvvGwzPa7VLrB/1DqvAM6Ap\r\nDpfdAGBHUwsr6l5YecBm9FhHqW1BUQIpaa2oFbL484WTr8M9NaVqTlhS8jLTU+Wl\r\nNAKQgbvUYTQDY8IGwI1iOLlYyhOtQXMTTvXwS3ArLv07JxCufnMtknYnP6voX3+U\r\nLo+shsgmP1PBktDXO9w3tr4DllcT+RRRoJgr8lWxXllIzarGpWtfE926adNg5HSw\r\nDJZBFNtHFp+N+Ss+pZaGHheebtS6WukQwIJZnX2zNgQc2dsoozQtAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBADXmmJqRJ55TF1kR+TL1AZHTwEom1zg14HON1w8g23m2\r\nFJ7ovSWnMAddKTn8GVmPPPeXgfe5XTqgltUk6JOXj8Q24DslFPMN5OtyPtJMU63Z\r\nPsCBMY7MWs+5bZVvTrGxP7ZRf2uUfIQ7oNr/vNQiQqHIH3q/lkk1et7Zwx2cS0CE\r\nbshQnsxwOPiIcYTQ2cbfXbNoi29zm4AIRHLgq1gG6RCMM9IKDrz/Dn1j5Ij+VR7D\r\nQmJly+N59l3LCwp33TKqjAsCxEqeptKsWz/0bKiaiD+rbpVC4FYP554ULQeOrKHw\r\nT3KjWdK7gIzoxE3OIW1E1UTCinz4eoVMlbhjNQrRedk=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_oidc","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/user_oidc/issues","website":"https://github.com/nextcloud/user_oidc","created":"2020-05-25T10:51:12.430005Z","lastModified":"2026-08-24T16:34:36.113352Z","releases":[{"version":"8.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_oidc/releases/download/v8.11.0/user_oidc-v8.11.0.tar.gz","created":"2026-08-24T16:34:36.088768Z","licenses":["agpl"],"lastModified":"2026-08-24T16:34:36.152250Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"TPQF0Y5J4joyMwmUXmFch0As2AnzLEMGem9F17Q2EuszSjZyyPfke8bhXuREG+E8Eu1NIS87wyB01WdcjEG3cyoH2RlTjhtQZsinRB/IYgYgRyp0nY3UUpcmR9AFvcNjwOmASV75umYnim1l0SNLf+maDM547uLTjBkhQaiJU/8B0cyYxRwKBXGa6gcZgDwQdbDcsT1crLNVJomV88G8e75Ctgu473MJBabJlMKlnwy4OJ+6fZ5SDmY0jfSAE6Qp/G4cp1EvlhRdgfy8BD/693q/R1If3DzsvYBb5WdoED35NSR85e7Qkhv+a2QZ23QrRGKnwDRiGwwwhkjnGsKjPU+9NhgO6by7DXDLjww94vA+SQs63+f4MPA0b+WuUDLWJUT4+B4XtLaEsqGlBKJzR/eGGxr3sTAEi7e3zbfVX04AQqwYsq+7ymcPQj1zSkMBwX/MAZCSFwM9ZIAY8rz54HpR2mSHXjGpOxtzaRzYKquUWJ0+dVO1miBoY9JohRC3h3mvPr4vjBbHKzAQVqXXZbTUzG3Dw4Gw1X0dJIVFLZcJpnT33RfAxZ78Id7FN1PH9AlD7+JDfhtrUiOpAIawkXcfYeIwDaF2FOQ56GNo8BIBM3mimiH94WsX50KuFN+mKibbMzxt31eq7F+kB5aKq6lrcsbKKOatbVapx+3GF2M=","translations":{"en":{"changelog":"- Support for Nextcloud 35\n- Correctly get the list of groups @ArtificialOwl [#1494](https://github.com/nextcloud/user_oidc/pull/1494)\n- Save sub of an user for faster lookup and more uid stability @CarlSchwan [#1498](https://github.com/nextcloud/user_oidc/pull/1498)"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"OpenID Connect user backend","summary":"Use an OpenID Connect backend to login to your Nextcloud","description":"Allows flexible configuration of an OIDC server as Nextcloud login user backend."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""},{"name":"Julius Härtl","mail":"","homepage":""},{"name":"Bernd Rederlechner","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBDCCAuwCAhEwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwNTI1MTA0NTA3WhcNMzAwODMxMTA0NTA3WjAUMRIwEAYD\r\nVQQDDAl1c2VyX29pZGMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCl\r\nKOjRb3F/12iLSgDJjXwNpPMubkfiYu11k83eAwTQcCW051A7cNOuqz/RE8LMIgiv\r\nembeOGuiS26CtglPG9hrWVq62NgCw3GWnRzdRbzm1vhNDhFDPj++jNQ/MH5VZR7u\r\nxZsq8BQ9bkDDI8Q+d4EsSPmrbprq2/g8vWghRi+aP1CexkiJ0Fo6ff4bkl4/sbzM\r\nJtECqO1xr3kDjIe7EdeAmcGl55c1DMVPq83ekHWtR/9YI6w7zQetzaWa+8D+lEFI\r\nRBIaxnKZo6RYZjTEvxA/QYK5NcflwSX0xH0AMKUAYPEVvMIw52OpHdQi7ZZaS8G+\r\nnOzpP9s5tMfQ5I3/e4pj1QC7tMMOnAPiMlTWqB24zG/ZJFWXCELhK/Zec8o43csF\r\nOgDqOY0g5UPVdMtY2P65G8aSOjkV1Mx5fFkZs4e+/5cIGChmdPnOcn4XWMUeOyvP\r\nd/TwEz5VTwKtqvqTo02fFLXDRlxaLTMvl2KlT5N+ELsnF30Ip20HS68RvoYmpIpQ\r\nytQ4168qu7Svs+SnI1WB2bqHHvG6N8FKw0YgAO9KF7L+lzJvwd2MQeHy9Kx1DfmW\r\nrWBddO47QJYnlCXjuH6xPxzzcf6Xt+mAN/yHy2/XqHwhvzfcJTjO1ZfecwoY+XFG\r\nWdWylrsjOemuh2OgPEjqmSOUxaiSdh360t+ce0JAlQIDAQABMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQA7Ssc8AngfrdJg2sf4zIVperxadVGlrdDcg4WTunSxfybC8kJgYThG\r\nKNaWykz6boraowK7MYN03/m24ivqdsSgiP8DP4HuD5774zKtXv623J6FTpYs9P1q\r\nOPZKRf5JS+NpzVsdKMZN2rko0oIi794hfj0YgTr/S8onMQPZDJHZK6BKoOY/nRaV\r\nwitO3Eaz5CCi08FPedRhHsvql5jf5AtggFFQx7yCwgMCOilcfs3WOQwDONI1sz9H\r\nriY+8+KsBY5D2YCctff7xcn8xGXR0ZqeVYR77s6S1l11RkL31oBwFcHONVQlBCAq\r\ndT88DTqQoIFk91caq9e0hvzmcS2l3j0Q\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_gitlab","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_gitlab","issueTracker":"https://github.com/nextcloud/integration_gitlab/issues","website":"https://github.com/nextcloud/integration_gitlab","created":"2020-09-02T09:25:12.796310Z","lastModified":"2026-08-05T13:10:06.936340Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_gitlab/releases/download/v6.0.0/integration_gitlab-v6.0.0.tar.gz","created":"2026-08-05T13:10:06.929701Z","licenses":["agpl"],"lastModified":"2026-08-05T13:10:06.975020Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"lqZtrP4HoSPYE1W4WSUPGqZeBZjIGlsWniQYxC0O76KlMElga5tIWB7AYUQYygeI7Fk7HQKJsuj15ZJfstsqQkNh1A8nh7/TeOidTYIEHiHNGPzjVj0+edQsKef4c22R8c8AynsPtJRFuWDNRPoy//6c97tsDK4zDqZSyvUr2QCC0HKrG3Ofr9RQG6K39xpO+N1iX+m3zCg0pBkjGRLGPpWJXzLHXylhTkYB9QVhTH1HvN4jbw+S2KXAKekWavxmmSFTXGtMlmNIsOR4GMChXKfT8kNK8A0ME0jWR7zNCLCUEdjZE1tW2ksLQPWv3a+6wyxjRB66p/WYEtIv3i9t7LewnhhF4W8w6shLUEo6+t1uspd+tiEMUHXzF4GSdfM2NlXB4HWxcZDvkdewbmd/lzkr0DvLqoGJe0sg3GL1uEOWhMtyqNy0UfxJGjBXL+Hc03eBiv4DkqSlT/NGc/9JaamclFx04ErQVqympdsagu1QIoQ/BVrKfpwLxYN7R6uUf7oZT9OfVRcMstwRz2ukcKNUw+oc5Cl/Q9QTswa6x6pR2R7qI/b/AOOY4QLmGFv8piQWL1fQoy5+mMCZ3gY0YPSy35pl+WHza+fBrLsKCEzeTyMP7uR4udrv8ntOQVz2K0iSD6o0HnBVCJ1cFa/L2wGowDl7VAdiITxs02WCWi0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9naXRsYWIvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"GitLab integration","summary":"Integration of GitLab software development management service","description":"GitLab integration provides a dashboard widget displaying your most important notifications\n    and a unified search provider for repositories, issues and merge requests."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhFvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyMjQ3WhcNMzEwNTI0MTkyMjQ3WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9naXRsYWIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQCaE0l5fy6lKO5Yr6ogKzBtkyGfPgNM2ORP33J72TCr4vm5NwX2AqDo\r\n8XhEuyrA3GB4ad2gmigaqav/x9XbkBLadwMka4Jd+N6cQbl3eS+w8cDWy56qIX2k\r\n96Nbn8hopqew7XqWBobau9mtTYmmQx7SOjqqdZ8i/43pJSgyRx1HNjbtut2SC5Z6\r\nbfDX5oeyK3sicB0XFJrZoF3V3ssOJQNjAnklbf7WldA1YLYpUP7FGdrxe8Fjc6Mj\r\n92EXAP72DBiWgM+PFV0cqrHJMCCUrJwbavqC7nwGuMgxZG380qD8Ae30s2OrrGyz\r\nTX53W/cBU2l3Tohh5JW0SsQ8OD3AP06SXO6tbqqky6IxghQsJMcGlh2gRI5nZnzU\r\nV8aG0mIYArHQP7n5r7QNH8l8idxdaR5WzAjUm0HHsnHrVtv6I6hk3I4mhwHZy+Kr\r\n/8Irf9JHRrx4I1HI23Is8FzBLOo1QYfjYrc1+PlhXxmXzgXIov47oQu8hAh3m4bG\r\nf6PpR7r7cXINefeCBpmKHW+9IBKtDafJd6ojbhm2v3wX97kz940TsgOT+eP6taSr\r\nWQVK/rfM9118isZFPEqQJ97YpXVjKN8VLI6kxlTKwOYaFbUDNAr0cghom5+2SVjG\r\n1MRMYGyW6Tip1Trf9QS/TbfDxy7m637oxFi/r+i9EV7yKxk3O30wrwIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQAcXwUYg7V3J3yOoK7tsWRFK8e7b6hVmhGAU5yePWlG\r\nk6WvCzFaa6A+i0hRlqMYy/gegzQSdspEjDWSR7ntEBGyX+qc+T5dFgv2kLsDJ/cu\r\nfrJ5wQf+cHfyMhQ66UK65uhUieSc1//n+zYSkXsoZsQeHANOpUropWD/kT1nV9i1\r\niX/9n5b6YQrcH3r2/cEMa/VrOulXDrn5Zq2i4v5DonleawUMESsuEhxUdHDUTbuB\r\nvAzu1vu9iqyI6Jgvf/XbC6UEH3ahwJVWLzUayQIXqWqhCoQLAW+VTwALfjLhbMi2\r\n9BhFM8aTTcITQzkAU2dlE/aaadAN1DsfgWA+Gj9dVSVN\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pdf_downloader","categories":["office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rotdrop/nextcloud-app-pdf-downloader.git","website":"","created":"2022-07-19T23:08:37.505426Z","lastModified":"2026-10-05T12:13:01.133223Z","releases":[{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-pdf-downloader/releases/download/v1.3.1/pdf_downloader-1.3.1.tar.gz","created":"2026-10-05T12:13:01.075233Z","licenses":["agpl"],"lastModified":"2026-10-05T12:13:01.176312Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"KTaFawJZ/9SjxrljskUXfUJNlCHBO6VA5hY+PaRC0tPKtatWeugR/I664Bo1qjN2\nYQoVWVpHoPd4ifG8plg+N5bmacsQn15kXO60qfV9I7mUvJkR4YLFTWX+encHdplw\nYjzyOnl+p1SAfLjXQDP5qscFmqOh0RDK8pO1tEJJibeXFK1Dm8ooFHdrQ9gn1QZh\nmKAT7LkIS1lDb5GJqd9UyeyYINYXj9Wi5ja35AC5b0s7owhlCNWiaI9W2Mi/Pcoi\n/qyIAR+5cw0Dr3owM3zKiRG/rIKL114ZijkZM+DzmxbxaS85I/lpZKX7NkfMuWv4\nC5lkz1Y7+QMnY4i/cBIv+fYKHvNDouz9LDRCQGLTgM+jQcCExTl5a2rpaFnNWAUx\nbfE4iRB2QY5LtmeZScEH1ZITWuaA+WTWsmsunCgt8UJIJslRBsyLOgtAlpkMShhs\nrbHlFD1GKOjM+PNEfoQt3O82VI916NWkTgDFsEfh3IT33kvolMB+tRxfZXnMndRs\nGSizRvPqJyXc9ZQfSZHTVKO9AlilBwPqlsqqzrAVpT6g8OOuIb88gBYByt70Gleo\necP/A0LS+74l3LBqWWhrKZSJEQPQn4MsSuDqJDxe/Ud30kc5u+YTKJ1nkNoyuNoE\nU0tx6kTTnkFWr6+WKRB5TtK2JvPHPQCGQuVitNmgkxc=","translations":{"en":{"changelog":"### Fixed\n\n- admin settings were broken (hotfix)"}},"signatureDigest":"sha512"},{"version":"1.3.0-rc3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-pdf-downloader/releases/download/v1.3.0-rc3/pdf_downloader-1.3.0-rc3.tar.gz","created":"2026-09-29T15:13:01.072463Z","licenses":["agpl"],"lastModified":"2026-09-29T15:13:01.081110Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"QkGEvkCSm/2w7AtMOw+zZqyoM+9yHYbXMc30JbAhuuQCY2KA75UjVjto66GATsLc\nQJWao4TaLehBJP65cmpKDz3a4ZV5LWYK7vLfNEHAz+I8cQ+cXkrxVkFVKWftAUz+\nokemX787DqrTKaE+LAfgH8dW1V97OqDuO1wJhQzsa55sos5u2Ao+683l7C3QpNzR\n2AAszJpMc9qBI0uw1FCxuyHX5Ftn4saSlmSP3UgH6D/mvysukxJZjwG2SSctcozJ\n4HZPUnbLL+cJQo6Oedz0+hp79EHrfKC4LiyIMMztVjoc8nJgZD2zQm9ieHUSw86e\nq5aV94x4KPhW+R1ZR0Ea1WVotqpq3hAx/f9xT7qiHmQwHjtZ76bZSBw2HUoXURzO\nMK+yGUz/nWnloD7/a+sEl6p8Zaxu1Zgf6yPhQx/eDJeHulawmKPTqN/gegO0M3G3\nRB86/OvDgtb30kLY6l3ooBmMs+bYw+tI6pqf5KPyYXrpDTZ02qsSuSimAceIsAcT\nGOB6eyifV/7+c7WU1heKnjQTL4oAq+29Q08nlH/WXOAlXicXhDnU5OWpHNmH/ArJ\nCBTGfNMHe79GbRgBqp8oIhTmjHXfT2G5QyAcsqV34Mhq/WKDT3K2UblVxj5C5fUe\nLBZZEmZ/fL+Opkj7pGf/5vtIgyKjXEPzi5QAavNMvtI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-pdf-downloader/releases/download/v1.3.0/pdf_downloader-1.3.0.tar.gz","created":"2026-09-29T22:42:39.328164Z","licenses":["agpl"],"lastModified":"2026-09-29T22:42:39.446344Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"FubNP6p54Z37c4lmidU0Mgz8fy7BDhpHvKaeHv8DqQM4jIMSM7MlkJB1KuiU6FZs\nep2dIL0jNqPfYm9EsK2MfNyuiGg/pRTANo/PU0BkDhJOAVMAQzN/Ucch5gOCrwn6\nemEgchygMm/CMtAcoGGWD6YN9O+l2tn+szqLvJ/q/+GFDnqok2INFgGftDvc9abi\n3wC3+yrE8aXhKJn4uc8RBbC13WqUFU3y21rFvAfKcN400Qgtpq022d6AYNfDk332\npf1BMfxqYFAU1xdryRGKEB1QNoGJV6IO6W2swADHXEASUdbw94gDdsFYHM5Q5dG5\nePqGnv4muTHBJInQdFS8F3EAk5W1iwXecBXbio5P5bFb1i8lFdkpigCl2B0mJ8ND\n/sruWqS8E6gaHfexek65KFMkqWqwSalOh6LfL2ssMYFSQxW71JdF1zLZYFp5fI7F\nKuamLrkahSEL5xi/HQHUwRcz/x82fbL78GXS1LObII1OQMHJq5eYrfls0FBaWcvW\nmVo4dqlFMeL98IlWEFLD+rQXEbx21b6MNhHBPxbA5uMIGVDRsNyk+8TnKXAuKlkh\n5z5x+oV0lIjwb/ljNxLip0Tue+gU9xw5NIk9YoT4/ySSmBLbX3a2jlifdMF0IFgQ\nV2P2tCtVo4BTBky73OeQ5x0mQ+UGTkEKoAO/pGJLQT8=","translations":{"en":{"changelog":"### Changed\n\n- support NC33 and up\n- drop support for NC32 and below\n- support PHP 8.4 and up\n- drop support for PHP 8.3 and below\n- switch to Vue3\n- change build-system to Vite."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1wZGYtZG93bmxvYWRlci9yYXcvbWFpbi9jb250cmliL3NjcmVlbnNob3RzL2NvbnZlcnQtZGlyZWN0b3J5LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1wZGYtZG93bmxvYWRlci9yYXcvbWFpbi9jb250cmliL3NjcmVlbnNob3RzL2NvbnZlcnQtYXJjaGl2ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1wZGYtZG93bmxvYWRlci9yYXcvbWFpbi9jb250cmliL3NjcmVlbnNob3RzL2RldGFpbHMtdmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1wZGYtZG93bmxvYWRlci9yYXcvbWFpbi9jb250cmliL3NjcmVlbnNob3RzL2FkbWluLXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1wZGYtZG93bmxvYWRlci9yYXcvbWFpbi9jb250cmliL3NjcmVlbnNob3RzL3BlcnNvbmFsLXNldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"PDF Downloader","summary":"Recursive PDF Downloader","description":"Recursively convert entire directory trees to PDF and provide the resulting document as download"}},"isFeatured":false,"authors":[{"name":"Claus-Justus Heine","mail":"himself@claus-justus-heine.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhHWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwNzE5MTI0MjAwWhcNMzIxMDI0MTI0MjAwWjAZMRcwFQYD\nVQQDDA5wZGZfZG93bmxvYWRlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAKzN4stXpu8dmhvsFmSQtbybp3m+3VneMCyCcNiIPO161ThXsKyUqVMvsb19\n89sys/qUfG4hnNt4pcYbw/KEj77V5JdKMhh2fnOOr+7MzPoHzj6tUM+Yq3rkRioE\nMBJOqmas7AR9UlUNN/ZAWhP2GBEmgu7nZOYbEOLtXFnWZZE6yFpWLvCpFgXDvSJe\nVrM7Sn16pXkV696qizVVPnIdYYj5Ynkj2bPJ9TofdGMAqM2btjsCRdtRkaEJw1wp\nGFevdDLKgn2Ejt56rb1e0IFf7kiWbLRU7vjU4uE6eHdqjQgXZbskzTl/Yebo6mjN\n26sJzUr3dI/4Ki0dNrCDFlKDrdhy4FTruxt6ugOISJQ8Kg0XxC+6RKR/2z5q/8zU\neu2u5Oce5whPMa837iqN3BAvRs0nK3g/P3e/Iq3GG+CNW4xTWtFsbjZL58SmoCX3\nZll2CcrxbHRtEEJfOcwNt9oppobvno5VK/tijRJ230MsbQCWJXRPwpC7UNN2EHmB\n/MBTq1/l49xc4+gAOe+JqU+Vg6zDdvAugxj6rIDyBBddqcCKwcNkDvRRtxNygvea\nTW/aoNnv/vsqchNt0fkSHL2MJfVsPbIcRHdcBoIOLXVuoUOvnWxfJT9sYQeTJFvF\nSGLlMdvm5lye4Qr60/xtBPNPLTrLrnMqoDssdWVpaJyxNPEVAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAH1K2zkHdQsIDzfS/0VlD8tsR66vFCT731s3t9xh63HVxWo2\nDGd1sKnOs7ZQq8tppigrJljFWW9JhQ7LONgUab+4OKq4n2qz7fSmAK50EBv7/Jg0\nsv2MUyacK2W4WTOBWikNk7ZocdIkiXnNPkORPlu8ld7QeIgYmulrOJOBuJKaAVGd\n1DBXIIY/WWT/AQQ43V3YN6HwB9khfq6ni19IflFwHAOnoxGsSSt+Zcd7Edg4DQZA\n23WsMxn6sEQBwA806+pUbb89jo4Wa1ry+Y7ntlIT5wXJUzHLRDWD7wObVmvXZLDB\n8ua6CdIFUNzpMhfhirE+igncMm/pl65XNQEbK7g=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"werkstattmanager","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/LtRock84/werkstattmanager/issues","website":"https://github.com/LtRock84/werkstattmanager","created":"2026-10-16T19:37:34.699652Z","lastModified":"2026-10-20T06:13:19.218576Z","releases":[{"version":"0.5.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LtRock84/werkstattmanager/releases/download/v0.5.2/werkstattmanager-0.5.2.tar.gz","created":"2026-10-20T06:13:19.212899Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T06:13:19.263347Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"sUhk8fZ0xrBiMb0yzAVpLrOHZl3R5RvbORh7Sq70DgPHdABUsJt5Bd5G5sDiPI4QBHPOYUNLAK7lEFqZJmMr8QvfBN7+0uIULiWNbdE0ljm7Ui843xIH2H2bJba8XJdzrYVE+fPvseVv+AWevQlOQviXrLEchsQwfk8Z3BMs1GyTqW4Czx9anJ2WIKFIoYlQJWrdzHycVoNP1HY3elPLTkzRbkXRPMoA1MHZ5MF+psvXc60LrmO5ow2x/LzOHxngrvi1yVVilUyysjRWDPcA4+BEHP9N1oc30MDCGt/xeAll8xuc9GSLpQXWAl/Frswdg0GXYHL5iDwBrgHjj09xr+TMbzUmMpJJA56RaCaEwBNp5P1wDnWzyyYjFArBrecEF+bMnIgDxTZoSpkYb9ezPJ/Fxd30qPQK3ZyWDfILR+EpN8kAo9bNQ0dygrUJDtReVmunFz3jKWHnKxMszOcPxr2Q+LHtpCzDfXF6OevHQuxHKHUpdq7zzrkxyd7pBVBVpmPxXRft0nSUL/UJE8xqlcrm7RmuG6/gTV8/RgO7HureAZsgn+9f77iJdMu9T2/dVZygJb50N8fK8w0J85+gLOF48gvSFcrn0hpcYBN/CC/xwsORySAkgERRhojO/ClEY2f/0CDKNb3HDPjbro13hSTIK+DbJkutTpBtMSUaBY8=","translations":{"en":{"changelog":"### Added\n\n- Bestätigte Werkstatttermine erscheinen für Meister und Administratoren automatisch im schreibgeschützten Nextcloud-Kalender „Werkstatt“. Ein zusätzliches Konto oder App-Passwort ist nicht erforderlich.\n- Annahme, zugesagte Abholung und Arbeitsplanung werden direkt aus den Terminen angezeigt. Änderungen und Absagen sind sofort sichtbar; bearbeitet wird weiterhin im Werkstattmanager.\n\n### Changed\n\n- Vorhandene externe CalDAV-Verbindungen bleiben beim Update erhalten. Administratoren können ausdrücklich auf den automatischen Kalender wechseln. Bereits extern kopierte Ereignisse müssen dort einmalig entfernt werden; ein verständlicher Hinweis erklärt dies vor dem Wechsel.\n- Drei zusätzliche Datenbankindizes unterstützen Kalenderabfragen. Bestehende Termine und Werkstattdaten bleiben erhalten.\n- Tablet- und Terminannahme-Konten erhalten keinen Kalender. Kundenadressen, interne Notizen, Checklisten, Mitarbeiterzeiten und Kalkulation bleiben intern.\n\n### Fixed\n\n- Ereignisse, die über Mitternacht laufen, bleiben im folgenden Zeitfenster sichtbar. Dies gilt für Annahme, Abholung und feste Arbeitsplanung."}},"signatureDigest":"sha512"},{"version":"0.5.1-beta.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LtRock84/werkstattmanager/releases/download/v0.5.1-beta.2/werkstattmanager-0.5.1-beta.2.tar.gz","created":"2026-10-17T05:59:57.512073Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T05:59:57.587871Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"YV7rIxR7VjT1C5fgh9TFy20NFHH872dzzo2hbA8L9ydvQldCReF1qJ0VfvQVrNHCBOld7eQOg/bNXugQN8/jFmf5cAMk3I8b60VhXrT523R8OXeOXXqdLhzFLS3vHjbOMHLyOwebBiDBm273MZdLi4WmFjyXjBS6U39XkNxh/7jfHploLNYxdT3MJiZwSBiq8x3ehIc2tLrYX+3lDNjzNxsZj0tGGL/8J+CQN5LDscLAcY+aZaRAGsmZXew83nj2TgI5AZlnsmTmHijUIGUi7bu1ytdHRmNy4iHYbohV2LHtF4m1xfYgLwbWD4tiuk2BfR6KgptrsnmDRe5JgmH+in7li+9EWF3G51qqWMr5XUxRWfedofsd+wUVkv70wSUN1F7V6xgEivJ/MEG704WrKcPlsyqDbeSG0b5sABJHZ8ivXSAOhYBSt9UuOpbtXp7VQaUd5VUhfi8euTcv7MQ942id4wlahXuinJKVAE0bQB9UWspgf5VMWxZW7B39ExzHQxlqXZTSz59Uk0+xT3Av/EaWFBBxMn6jzpcwvY0gqWeckPpkzlqOceSOQqehWSPuvNNdw7dFF5CuvLLvLtUil/uVoGei67u9VILsKTw3vkFXhG3wW6/OajwaV5dqAZYQwVPC+EKFapv60UWbZxsboUeh3IjXCMAsvX8bVxSThiM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.1-beta.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LtRock84/werkstattmanager/releases/download/v0.5.1-beta.1/werkstattmanager-0.5.1-beta.1.tar.gz","created":"2026-10-16T19:52:31.667761Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T19:52:31.736455Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"D39MK8XSFBQhq8edBlVIEN8Bnrkcd9YTcF2j1CEgjetXIKwqNLO6bb/ka9UQBqVYXJuOmDLlPs/s0jHUVRQBV41ZcNvGglFknhlvu3QHWh6fB1PSgK9XcOVAJFChsTvPFqpL6UU5ANdEtPloSK9LdvhEHABtwMoXdEVNOWEDdlts8R/OlDqfDewkvmrDrAkWgTviSR6X3gToEUaUsq8/V50MXe/pE9T4R3KK5itswhDLmQqR7vEFYVQISZlptGs5voPdMRNUTfLYFzQCRpJhjFTkaBnTIwplux2GQsAHXtJPQEKWLePvNXvjhmWs/bLHGJNtVoaAQXptQhGcUwep6wnbHHinHIQjjq1QGww5vyKMiicDWONI9kghCosyc/g8BhBRZnnGR/ocbcFM2Q/vFf5T17KlvGd2M9gWoNiQgzoJ22JfJZJWcul0JCIRJnkVmY+3olQw5BtvLJF35pA4CUMZLM8cOWhSAgckMmNGBBKRuo5l4SpinCFylWxjCizCNJwY8lspUXY2woMJYs7LIOSYKENLSDBeS+HNI5XPnmeWzARvE8753om38bQ/OotqwWPzs03mlQGDr77n8bsuQHm43OYkGRbiT3bD8YOM1UDRGHk1QbM7qEINiJkDvl4qRjo67JG2FdB4fXYDABjw2x3hGZkEJw3OS99HAoHuTns=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LtRock84/werkstattmanager/releases/download/v0.5.1/werkstattmanager-0.5.1.tar.gz","created":"2026-10-19T09:34:16.649449Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T09:34:16.721059Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"j5/tlcWz0rP1Wt3nqYfh9uIOtF2Z/v7BguJqLJbd0WVtPTG0EOsk962X1skOpSE58/pK/kDLhTIxZUtsVQiQb3LbkSmwhYJmBM8Qpf5U9Zym6hmfzJRCaloBSlEklngVrXBtZNODTFDJMcCutL5u8TURAdPrdKrz676+MpEGgI03FV1nVT8ZkXe+wYDpdJK05ywhmViSA9SSAgGElFpgNwuHG6k1QM5cIG4nMVvEZSesenEkBrAzIttQxBZf0kXuGIRDviTOzCq4I6hirICLIkUcxPOoDK+EqKLjVYiQlJCFZ11di/q49zrL/2w2dxq9PcUrWPFJAs6W0GRITGbieOw7DchVUCXPjIMs9Wlxoy6ic+HZWcqLg6tRYla01+mGDv7ia0zHp1qyh7SBURBpBO6g3mw84Bs74AtPPLvQLoOLG3gAdAEWFgCWj2EcYay5hJ1CuWdz2NMuwUch1ixdkptRpV1HIAyp3d4mrmaBz5IhFiw+tpcNzQQJ+mTKEwqeBMYbA0qGdqtShnTMCjUKBg23Q/Ct8JObyYH3pjrXhHcS8y/sCTvprFf2MkdKr0mkUhjWFIxehI2+p6FfO+filDOfJnuGKgh0TnT6jDjNMKS+cdi9CGBNmcpX5UAniEke2gpSorM3xD4t470o3h5y2eBSC+Yd96u9Bg8a4yzAE6w=","translations":{"en":{"changelog":"- Der auf Nextcloud 35, PostgreSQL und MariaDB geprüfte Stand der zweiten Beta wird ohne Vorabversionssuffix für den stabilen App-Store-Kanal veröffentlicht.\n- Fahrzeugakten, Terminbuch, Leistungskatalog, Kalkulation, Aufträge, Mitarbeiter-Vorplanung, Tablet-Zeiterfassung, Teileanforderungen, Fahrer-QR-Meldungen, Kundennachrichten und Auswertungen sind gemeinsam enthalten.\n- Gegenüber `0.5.1-beta.2` gibt es keine Änderung an Datenmodell oder Laufzeitlogik. Metadaten und öffentliche Dokumentation beschreiben den stabilen Store-Kanal und die weiterhin erforderliche betriebliche Pilotabnahme.\n- Physisches iPad, reale NAS-/Werkstattmailbox-Abnahme, vollständige Barrierefreiheitsprüfung und längerer Dauerbetrieb bleiben installationsabhängige Prüfungen vor dem produktiven Einsatz.\n\n\n- Optionale CalDAV-Integration erzeugt ohne Kalenderadresse keine Zustellungen. Fällige alte Warteschlangeneinträge werden ohne weitere Warnung abgebrochen; Kunden-E-Mails bleiben unabhängig. Entzogene Zugangsdaten bei bestehender Adresse und echte Kalenderausfälle bleiben sichtbare Fehler.\n\n- Regressionen für ausgeschalteten Kalender, Kundenmail, Altjobs und Wiederaktivierung ergänzt; Passwortentzug und echte CalDAV-Ausfälle bleiben geprüft.\n- Betriebsdokumentation zur PDF-Standardzuordnung bei Mail/EuroOffice ergänzt. Die App verändert keine fremden Office-Einstellungen.\n\n\n- Ausdrücklicher früher Teststatus in Deutsch/Englisch und Beta-Version für den Store.\n- Alle 334 Vergleichspreise bleiben erhalten; 32 unabhängige Preisgeber erscheinen neutral, ohne Unternehmensnamen oder Anbieterlinks. Die API berücksichtigt auch Altbestände, ohne diese umzuschreiben.\n- Berechnung, Anbieterzählung, bestehende Preis-IDs und eigene Werkstattpreise bleiben erhalten. Originalquellen sind getrennt intern dokumentiert; historische Git-Angaben bleiben bestehen.\n- Drei aktuelle fiktive UI-Bilder, ausgestelltes Nextcloud-Zertifikat und Signierungsvorbereitung. Geräte-/Betriebsabnahme und Preisquellenrechte bleiben getrennt offen."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0x0Um9jazg0L3dlcmtzdGF0dG1hbmFnZXIvdjAuNS4xLWJldGEuMS9kb2NzL3NjcmVlbnNob3RzLzAuNS4xLWJldGEuMS9tZWlzdGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0x0Um9jazg0L3dlcmtzdGF0dG1hbmFnZXIvdjAuNS4xLWJldGEuMS9kb2NzL3NjcmVlbnNob3RzLzAuNS4xLWJldGEuMS9hdWZ0cmFnLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0x0Um9jazg0L3dlcmtzdGF0dG1hbmFnZXIvdjAuNS4xLWJldGEuMS9kb2NzL3NjcmVlbnNob3RzLzAuNS4xLWJldGEuMS90YWJsZXQucG5n","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Werkstattmanager","summary":"Fahrzeuge, Termine und Werkstattaufträge in Nextcloud","description":"Werkstattmanager führt Fahrzeugakten, Termine, Arbeitsaufträge und Werkstattauswertungen in Nextcloud zusammen. Vor dem Produktivbetrieb Rollen, Hintergrundjobs, Sicherungen und optionale Integrationen für die eigene Installation einrichten und die eigenen Abläufe und Geräte in einem Pilotbetrieb prüfen.\n\nFahrzeugakten für Kunden und eigene Flotte, Terminbuch mit Tageskapazitäten, Leistungskatalog und Preisrechner. Schnelle Werkstattaufträge mit unverbindlicher Mitarbeiter-Vorplanung, Tablet-Zeiterfassung, Teileanforderungen und externe Mängelmeldungen per Fahrzeug-QR-Code. Auswertung eigener Plan- und Istumsätze sowie Arbeitszeiten. Bestätigte Termine erscheinen automatisch in einem schreibgeschützten Nextcloud-Kalender für Meister. Vergleichspreise bleiben ohne Unternehmensnamen und Anbieterlinks als datierte Orientierungswerte sichtbar. Anpassbare Kundennachrichten, optionale Abholbereit-Mails und automatische Fahrzeugfristen-Erinnerungen."},"en":{"name":"Werkstattmanager","summary":"Vehicles, appointments and workshop orders in Nextcloud","description":"Werkstattmanager brings vehicle files, appointments, work orders and workshop reporting together in Nextcloud. Before productive use, configure roles, background jobs, backups and optional integrations for your installation, then complete a pilot with your own workflows and devices.\n\nManage customer vehicles and your own fleet, appointments with daily capacity, a service catalogue and cost-based pricing. Create work orders with optional employee planning; colleagues may take over. The mechanic tablet records working time and parts requests. Drivers can report defects and mileage through revocable vehicle links. Supervisors review completed work and view internal revenue and time reports. Comparison prices retain their review dates and scope without naming companies or linking suppliers. Confirmed appointments appear automatically in a read-only Nextcloud calendar for supervisors. Optional customer email supports appointment notices, collection-ready messages and vehicle-deadline reminders."}},"isFeatured":false,"authors":[{"name":"Thomas Keilhaupt","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhR2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE2MTY1MDE5WhcNMzcwMTIxMTY1MDE5WjAbMRkwFwYD\nVQQDDBB3ZXJrc3RhdHRtYW5hZ2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAxDTR42afS4ZovEETFWxk8xum9xGOg6jVh8ZH+QCOP8ZnLRQ1K/FfILhM\nmece+QYWKmVXu5nEPt+cnKpEy8AQO+BPdM7lACZVzFA1MbTyD8786936CcG2lQC8\nxFlfr/mPtkGymaIn6m5ll7unV4PFEcXisTSyfhQNuxLQNJw9e6/0rd2DEblmX4SA\nXzhVAI0AcXab6Xd7qiUsxTE1Bet8n5hE0LIQvfwyChuUG7ZKg9PwkYiSOKeQrVfQ\nZY24+VM5Y1YqJbabJU62uy3a5+1a2/A6IOcAeuHo88wafhw++VWYjvUTMZeslD4c\nZBCIElU8CEtyHWCHQI16k/5Ux4WhUPoEkpjlEyGAtayFH/J/QLMAXIPS958chlH8\nO7Zq+Wxzl2OM/a0AwXxCQN6Sg7nKDo3h4OD4QmV30bmlBl4GgUcZSDL2lLwyBKvq\nOwVpuREOctIal4k2OVaGFd9VPo3qoSBUVAi6DhhqVwyIxor/HzcUcwncmcmiMIBP\nVVuzKt03ecISzLX1aplQt1bXhECMZRtIWYW9oa5LXsNMawM0pnExiRLFQnMIUH4S\njtVg3mQbIYXzXTALbqZh0k7rqn0hO+bSD0bWkPBZ1GataqDTyRyxX08/fFLyYb4U\nkPsk9Z2xlpG9rhNDjOd2/9ixmNM0KXCNb54CwXaOdgMCr7lLTt8CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAFhNkcuQEv7pxZcZ5Z/YHGNsJ/bvY4RZgXyye9mwCZVvI\n12UjkSHfpKEwPT5GfwQ1WC5kgCnWysez5URLyaYHGw+hoWihAuKHbC9XHvhYzv3G\n1lelSvI1i8pxQ6hP77ORJ5Ngq1NL3K15WlXTwjrj/se9/UZ727GyKV28B/rYncRq\nc2zQjwrNuyzJU7G3TTdplmg2s8MNiw88CXBkJCDDhbVL8mwvhI/epIwYSdm1Rq8E\nBJaI8/Ih/MjpjeKiIkmgvdqWplYSVfANqewklGiZzCjpk/3L9JgnQFNV2COvDWQe\nCaKUY6x2xiiKXq+w/Ejm7RreWolLxOaEhEvwtLVfZg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"workflow_script","categories":["files","organization","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/workflow_script/issues","website":"https://github.com/nextcloud/workflow_script","created":"2018-11-08T17:40:25.940548Z","lastModified":"2026-08-20T10:30:25.010135Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/workflow_script/releases/download/v6.0.0/workflow_script-v6.0.0.tar.gz","created":"2026-08-20T10:30:24.998554Z","licenses":["agpl"],"lastModified":"2026-08-20T10:30:25.058072Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"pMZRaff4lE5OVXkxtSbMKJC+aVQWR8lNf1q8reUxtF/MS3twHwRPN0t8NuLx8b+QeW53vaXaI+ecar+JtkseaCFdY8tDs1/y8pKmgtFLzDDPYz/k6tEx7xb43t/f+5eKkJ3f3uLOBZjRLBNS3Z7f8EKk8WU4na0V2+akTp4rqVCddPgO2jjrHWDpN1EawLgB5zgCPTozMHyNfkUsTtiZUScUdCkbCMrFos2SG9fFduWgCw+VClXIQ2MzfbwSZfDg9fQrzNmp+acZ6OqJTwGs0setvusvKSS5M0OMvg11A6s3hxFBFFEqq8dClKJ8cq15unem4yPcPKZdbRUC6IvO0/ob1GKuu9dyV8xfgbz3Dq/IFds8JlBJV6QWql/3QdG4pUVss16iMSSMXdUUu8pOVkCjW7NIlaij2e+mkIjJElEppZQmoPe1G2Aq26dSZg6C9Rrf0J6dYG5mJK2BvofvJoPEsFdUX6gDN7U8CnwZiv8WUsYWf2R5jTaz5GM9UpknDGt2t7frv2hF8LCAi+3SIuQkK8+wA3+HFPgt/5zarihpguLDBemx87f6KS/yK2sXSRZPHNSjosESi8LC6I+MiEqFjamnYVBu15EvM2EiawCRkssURUWjFRtJ2GqUhuLUAq4Y6aXDA7dFeHTrfObffvy/XRQ2XR/GFe9kHbN29fw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC93b3JrZmxvd19zY3JpcHQvbWFzdGVyL3NjcmVlbnNob3RzL2Zsb3ctdWkucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Workflow external scripts","summary":"Rule based processing of files through specified external scripts","description":"Pass files on to external scripts depending on a defined set of rules."}},"isFeatured":false,"authors":[{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECjCCAvICAhDHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgxMTAyMjI0MzUyWhcNMjkwMjA3MjI0MzUyWjAaMRgwFgYD\r\nVQQDDA93b3JrZmxvd19zY3JpcHQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\r\nAoICAQDS1cND3BaPljiQ2PJOcvMY86quI8qndUCu6b5S7HpR6OPxDFVTOLiXAbjH\r\nDb9R25U5HscE5hhDnT8z2tjvg89lec/KfIzXvfePz6QtuPB/c6Ttm87/rrBRrLSc\r\nyrTzDAyNLARsTZfM7y5fsdPkwdGCEkKIW4HX+ofEziPOcl/q4RyVstcZkCPFgBtK\r\nCXTxNS/s/8CNTXxtwQ51JfS4CRa7XnYNnaGVOQdw797MMCDoUhiLbPFchr4nXi1W\r\naDO5Nz3tp11TI8dmlPwYOGZJO8EhJ8cSZjVTU9taUgv/SpcEDFkhgppfQPFEss01\r\nD7ypoLAC27LVEouCouyx2hJjKZnUrzhfp0Vi4AmmV+33EPCUzzHHTjae2J3GZv2s\r\n+76F+3EISqC+WXUZYiFGixJGRqxqRUTgISu1Nyub6O64hIjcsaRnS/tOfXCsw3fj\r\n8PU7GqTs7zzXsn/Xr3ngdG1mH10KWh27b7VaoyB9i0bGlapwuSPK7iY7xuvm4RdD\r\ne8hiaeW3dyu7uov0aH6L4EedQ36v7eIZeKM7RC56o2JQVAGd7GLNLl7nA9mKrT8k\r\nt64iJmi2KQX0tSJk090yK9M2jzVoDt35fcbPu2ud70dG2knHtH0Nmofgr/ArOJKt\r\n9zrLB+boKjHeFcEjzc2zF1SiMG35cCmKbnopIbNCVITTop37BwIDAQABMA0GCSqG\r\nSIb3DQEBCwUAA4IBAQAXf3T2yRfP6OkmlVnma0a6gGFYJDkbNimNAZMAfeqbzUie\r\nZua8IvA8v8KjSmU3b+BOYvweqIZgLWIje4ENwI70YD2mM/QK7TKenlQ9g1xHC9c9\r\naEiFeMeLeiIypzL7A9gpbdx24Qz5vwX1LmaukyHXobNWYwVbjMyKbmwYChGgBcSO\r\n4/yYECI32+1baSugz0WlRBLPa75tjbJc83rodRJYAEgALEw4RZcw6r7yq2iGF3X+\r\nzlQmmu5o7qfH8xLuBt6JBwH8F0uB8ckHQkNWE79oCxPzvIEelIadwMpq46cg+eU0\r\npawyJmpF61SY03+/HAhJdMrncVa4vOMl/k0VbbJx\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"chores","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://todo.sr.ht/~cypheon/nextcloud-chores","website":"https://sr.ht/~cypheon/nextcloud-chores/","created":"2022-06-13T18:17:28.767017Z","lastModified":"2026-09-22T19:26:02.505466Z","releases":[{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://teo.sinyax.net/cdn/chores_0.2.0.tar.gz","created":"2026-09-22T19:26:02.470992Z","licenses":["agpl"],"lastModified":"2026-09-22T19:26:02.584043Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"Wve/suTOvP2wcySbhKm6OYV9big+KEjLSzl/eXLmpsxUJ9nnHU5xouBJl7ygHfr7\nN8I9R+HMSAoleERUqDBkYFXkxJ7i2Y5PYMz8Jk1Unnh+BOK+IgF2Q6F8O9aehdSn\n5JbuqK5o+AZTW75mKpEuPJ7pX5qbGRI9BdlUIHe7K5kq9lHx1LEVyR9i80Ed1VTR\nwU2J46Z8em1RCi7Mt9abNGok38UK3exfiBd2PnusKu8z2OND5xZNaPLIBXDdEGqs\nEYYzvurd19VTJQx/2+GpRl0JTztmp5L2rdUxSZOoq/ALHvuLbHo9KuC3ac4h1FOI\no8guCRg0V08WpTDakrzMfqbkaJw1vC5t9oNPQ/PG2fFAmQK/QWqxgZfzW3Qp0jFZ\nYBd41Tagpm+i8v1gv80QzibFKUBrziiz5tSycsmPzo614Y7TI31hVj4mJyxJ0wi0\noAWevKovQVgtn7fJYcu4FiuD2drDEWBNDm2Riq0mAHNRLorJV8D1048mMrXR5b01\n+n8OriJ3AsV172tJ1GbeLYhI47GtBrfUQ/7XXIRra62BAELdn1W9r3fETf4alU9O\nImRwEjIklQ9k1pHc3xbvylB9N4xYUxaui13yDEtTVgH6amzYIA74gYuTmKohQURX\n3GIM2ymO1MuWNPW7K1VHyN2ZkmM8OV6XE33Tx6YnW0A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://teo.sinyax.net/cdn/chores_0.1.1.tar.gz","created":"2026-09-20T08:47:48.695999Z","licenses":["agpl"],"lastModified":"2026-09-20T08:47:48.763156Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"HaiWzk+5DhNtHe53vDo0c5zxJYIdu8WM+l7WjbcKG+Ah6Sesqn5dE264mZuC1leo\n1cVq7V/mMemccHGbD01+jUixnH3opHv+QfXmatyZxrWLC9iufw99cVlrj3g7OjVe\ngxHBDCPmPwOdgjlRc3K+8KoLaEoMOWg6PfJmeCiYg17WngrL+FxQqEfrlDS9Q70b\nzs5/LcB4WfnxW2d+iyeBpeoDcX7p0KHxxFfVW47FYsJ2V8WX4cnkr4PM4s+aA3VW\nO8NLfizCaCDDLrbpHXh8LXOT8rOQCO2Wi5WCvfY6LtoFliGS1NLaMDSk0xUassvr\ni1X6BU7k4qQjS53VjvJas7iijrO8f5z6VTdyXpynUfGn6W5t++5Xe3+aSPIYPZqz\n9zyiqvI1kEg0aYTnLWoyGkU9sQS9Rvpi6Pboiwlc3xkBmQEvpmlhGQKgh+KUleEH\npxo2m5J+kBvJGa/bNiSp9uTT8yF6FlghA6/FzaXjttd91Ld/l5jBWG9w0knDaOHf\nYqIlYMK9W+98WZyz+KzwGUJ0r5Odgcde5ROIh95dQU7Bs3tciE9/WJMhxAuhm59A\nEptFp9BHmxEYedy015oiNby/ie5som4hBgV8QyvvjGaMBAP8eje3m4O3bnfFx98u\nrF0Yas2kqUzPXZftLDs7lefJZmSQ7YhEUanRGmoiNMk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://teo.sinyax.net/cdn/chores_0.1.1.tar.gz","created":"2026-03-23T18:36:20.304313Z","licenses":["agpl"],"lastModified":"2026-09-20T08:32:30.876599Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"fhSkyMSqsDKZTkBY0qdUuzgJmUT4QnuB6j5I3OjYz4ojOFN1crfGDTs6t8nSGgRT\nL8YWcC+5ZgD9GCKa1Hm022zSFGp4ChQllYnUlhUCYS1U7IhyDWqqPPmklCZd7wky\no6+AV4GBiVCCtQlLcafgQmwrjiXB+YqfNGx3NRK90JNrGPSGu2joqJKHylrMh6Sx\nRNFJUiDrDGUKLRgGB8JUhGhtbytEXFBkrlYqExNQ0A+TgZXrqCOxwncqT1bQbMh7\nDIkPNJmqgMlgB/NsjHBiylHTXM4MZ1FwhXkI/QlEqD8/8n4o4kTvCZgB2ehLrT54\nPxqD89M+AwodReZ8Hl3TdPh2mTVekc82bGAquipQ9hoCZNltx2IO1EnbReEz+iIG\nvKW8uHK/LWPJZ4HU66zxMl6LHlWRqhxTkV+ehZW2dowLaF0IECDBJguDqdY3AnRV\nYwjwb6JlaSiyL1FjCIvG7A4slfuuKh9ak7I7Rd8frl1kYlR0BQf6/xXrmeZci3PE\nOgi4Vv5IDk00E8zPR7OQzvAuvMOONfXQCY//ZsNt8BL2fIpvyGsISaIrZYY/vxAT\nhhqci0d32lJ9i/qYKONJ6OsjdMcWhWBz8KRsJ4Cbh6kinFgV2kEp3T6Ym8uN5t/J\nOjF+9EkRhQta6+hSUpPMcfctRAnzhmbBhDKTX4HLoGw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly90ZW8uc2lueWF4Lm5ldC9jZG4vY2hvcmVzX3NjcmVlbnNob3RfMS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Chores","summary":"Track chores and receive points for doing them!","description":"Track chores and receive points for doing them!\n\nCreate a team and invite other Nextcloud users from the same server, the total\npoints for each member are tracked.\n\nChores can be set to automatically repeat based on a schedule."}},"isFeatured":false,"authors":[{"name":"Johann Rudloff","mail":"johann+ncdev@sinyax.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhFpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMjE1MTg1NDE5WhcNMzEwNTI0MTg1NDE5WjARMQ8wDQYD\nVQQDDAZjaG9yZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDVzrX+\nPIe9rkOHMuh0zvFtX3EXly8tPwJ9GqQ5KNiW4fXYztOvBjiToeyGDXQ8BXq7dNfR\nIOqn+fRUrvHyBLeg+cIKlyi8TVQPt/zPttstV0kURggIx/hDU68O3DsmpH1oJWNh\n6uNuVDqvNydA5bLNL+9UIMwLgPhTF+a1a0yPObkXATdeI9BzcQ0U/rMIzphGp0jB\nyEWR/TzBtx7siGGjhBf/UnLgpveXCPH6bXv6NPMp/3cXTYqXiCQPJ08aN0z7Ek9V\na/bjFYsT/qGoxvi6Ix79KHfcpsF2+yQ9Pbk1EU8hO4h7fDV9XLwDDP3jJTmqgJh/\nYqZHLpVmvSinVazQRAdrI4wWWfFOJf0ScH78GEsNXqmvae3Oq1wSTs7kEXDtDT4r\nGcxxnBXKxMn1lTwQ0zVNHlrn3+TQZXwc1m3kJr8+bBoQVpAQ8WcFgtY+BwjJDG6T\nM7ZDRS6LYGWfmhQ3uJL629BspWYLsgRQs58wqb48sJy6IbO/ClpJHhNomCIlteVp\nzx0VySK/Adidst4ef9xA7oLy8MgiQ0P+YXGMikGFgCXduY7MfxTqZiGCdkrxQnia\nj6i/RffgPkuZK7q0KfWiecoP9bfGbz5PfAnFX5exgOh9JaLxwuEudRdV6t8cQKHU\nDPpvHyz1Hn0P+Yu3/oE6u4TYDmRgpDq5OAj3dQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBG6r3fDKmwxyNzw62QTAdOncrOqIAl+ydP8qUtAcV8ELJQdEZFCZSDdwrA\nzQ2TkFgwQ3/iaFiMsc05jtxHCLnjoJCA+jLhFJe7iZPFRhtF+cxl57gZjK7pJZTe\nfqsPTOgIp3bWOFHgmiFx1PKzGljAa14GIsB9eLODyGa+smwKC45nj+qWIBAefuy3\nuGOXXtM9TbXcyRpajrbGnDmhOWz4zs9EMkaZw7UE3/cgN+Q7n39cNBVqgvcPijL/\n4WT8KL5/6iidjgWd5Tty6rd8NoU4Q+s3ufz56xi6waz1MG4wiWKSJ4Ad6LGG6/dd\nUpzoks6alr908sDTlyYDWMCwxtpR\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"homescreen","categories":["customization"],"userDocs":"https://github.com/1Ale/homescreen#readme","adminDocs":"https://github.com/1Ale/homescreen#readme","developerDocs":"","issueTracker":"https://github.com/1Ale/homescreen/issues","website":"https://github.com/1Ale/homescreen","created":"2026-08-19T12:34:17.436571Z","lastModified":"2026-10-06T15:00:07.117981Z","releases":[{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/1Ale/homescreen/releases/download/v1.0.4/homescreen.tar.gz","created":"2026-10-06T15:00:07.108186Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T15:00:07.220569Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"PFm9Lnw5vsLM/CcfY3NxETbixYLojlTYp2i7luSpOAr2f5qjp4hGxQsVW22WYGZRPOsO9arjDMUXgJRBO2zZerv3z5u3prW5WkBCEgT7lnPcBF1uTR3Vj7Kcpdw6DQGLuoQzs1jc2e+rHQmath64BopL3/k5pCc0XTLXylUZ8Mfc1+Ypz2mUBOFAcOJZxcmWDmI/5WGeHZOJ7QGLWOaC8LOYvq40dTazKZDbwZTkrEtgoH5yT9VDRm13FRdIgtXy8R9B5Y4nWnXS3SunyOCJSgvQ3JVEXQFSxC6fZ3yZH24k+u1E2qMKu93k3C5j5Nv4MY5BeOYVaAqbEoG/hSHfBQM6gjBMJDJ6eRKbtQeUFEz134cxQhQFKOI50JoAUSPJYcBkXmIpAj2xWjEbxmO51pDilIa7e3a3OKh3XSKpgsGoTtElHpKFkIPRxwmmNnxCUp6F8h/XWKQluFExbCcL/F3kxWXCNwXvKb/u5Ns4a7TYqlZ+2ZrC7l8A+J6jh7iyKcqFR4HuUBZM9c0HU2gtcVcJ+E06duUkpWN7DC8NEsKCmIvntGalICALk6/D+BxLEi0ldEbFiCvwVUgP8sGzcw8052Jzx6t47aQ7TTEACmQJCVM8sXbgUKYMU/nf2iDThv/w+hZfsiPIzLgX83lCPresa9rHksFifxab8VEiY5I=","translations":{"en":{"changelog":"### Changed\n\n- Support Nextcloud 34 and 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzFBbGUvaG9tZXNjcmVlbi9tYXN0ZXIvc2NyZWVuc2hvdHMvaG9tZXNjcmVlbi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/1Ale/homescreen/master/screenshots/homescreen-small.png"}],"videos":[],"translations":{"en":{"name":"Home","summary":"A home screen with every app available to you","description":"Home shows the same apps as the Nextcloud app menu, as a full-page grid.\n\nUse it as a regular app, or set it as the default app so it becomes the first screen after login.\n\nThe list, order, icons and unread badges come from Nextcloud itself — including the user's app order and any extra navigation entries (for example External sites)."},"pt-br":{"name":"Início","summary":"Uma tela inicial com todos os apps disponíveis para você","description":"O Início mostra os mesmos apps do menu de aplicativos do Nextcloud, em uma grade de tela cheia.\n\nUse como um app comum, ou defina como app padrão para ser a primeira tela após o login.\n\nA lista, a ordem, os ícones e os avisos de não lidas vêm do próprio Nextcloud — inclusive a ordem de apps do usuário e entradas extras de navegação (por exemplo Sites externos)."}},"isFeatured":false,"authors":[{"name":"Alexandre Luvizotti Lopes","mail":"alexandre@lopes.eng.br","homepage":"https://lopes.eng.br"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhPZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE5MTIyMTMwWhcNMzYxMTI0MTIyMTMwWjAVMRMwEQYD\nVQQDDApob21lc2NyZWVuMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nzhT7zqyWAjxdnT8NSnLPHvGacivssB3mWDJEbhdzTAOwT4kH8FJqgnIiTY8XuM8e\nLKkOi+UPDVJ6ldMW8yVzSIu5heVn6IUJcnR+F0XzspCICUZUaa6xAYcIKk5kmovO\nOKqgtNHMoWlP4rShACXnb5CcQ0llWgObBH1iPxRQHtXHw5FlQbaLl0F2uc1qx4Cp\nbqDT1pAKFm7i+HMvdUu/D31AUXucSRRerwLfGKv7dRfUZSA82T/ZuEhjP6v+cz5o\n3+zlIOWC+vLA897QCoTCUH+PcP3KGMbrECwFLYXpnb/TKXSUEkdvop1SWqhynYdM\nGbaorEvr01jbtnpidjsHiAuWtjIQxiqbGyFps2e1/clk+aG+y2T4vpj0TwZWjuB4\nfDm8MToATIFAEurnP94UDktenHWT/Eb8V2V/as01qffrWbl8ZLvJ+/Qrk3LmP8/s\nyT9wmNJcyYMsC8eeTvGEbzKJVTsKHSKU0s8mmWpynT6JtWfm2YCiWVF5lksqEHAT\n95XG9+rhczqz78/ZkWPTeZu4qtRJQZFjyePpwu6wLMuX3RxF4Lcxhcb0yO9HfqRc\n9xcV+XEEWNHZvthjz5sNhsmHxjBRrJwHU0z/UMNrwq/wRGMHoZn6YdMKJW9AbKAH\nswDx4nnG6Mlb2G1Qxt7FR5cG8N5GWpTiJp8PYeHSu58CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAk7NmM+/exN4HjBbFWG0xUXDOyu72zqOdHJh6uWj1UiH6n01njJko\nUSQ9dQiOYlA4bocgBkw62ngFR9fu7SPwsUTE87tyZwt/q6V5oIBKBgN2dnTA7GtE\nDFjzjVAjSoYyY5sDHqb2DKvBm1aEeWDxVtVSmzOyZMFUNDgzN+zi2Iev9yZfDFcm\nLghetfHD7hJbaXxN2883Ye7feSlvpDRNBSgHhTocBpRhGtZ1C2HfwddxU31enb7l\ncw54SeLyVd5IcbVZGVvjit8fJVqHR+CX5CPaFKINPUSpXlr7KsDqvpHSqU9RpHhc\nTQAFxLLIsMLiSIjMB7nFcvZfb5teVqK4Cw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"assistant","categories":["ai","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/assistant","issueTracker":"https://github.com/nextcloud/assistant/issues","website":"https://github.com/nextcloud/assistant","created":"2023-08-21T11:46:53.737268Z","lastModified":"2026-08-05T09:43:56.465462Z","releases":[{"version":"4.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/assistant/releases/download/v4.0.0/assistant-v4.0.0.tar.gz","created":"2026-08-05T09:43:56.434827Z","licenses":["agpl"],"lastModified":"2026-08-05T09:43:56.502897Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"PJjPQ2/FdP/EtIr5G4IVHmAYrgm3NvM9Ien0ZUEjapNCeyB0d3BsCuvdd2cTsX6TK4uPYJfMOW9TAkMAdXTf0SI/HaqdN8GH1AFrBAr4tCs+n9/evP/V+nNFAie7enxOZ5xOIcKqm770yfVt3cSuA/2FvKf+F4Lc88cRBk0NxcSszO3Srh5tKqLaFbyEAHrvoDdeKWa5WJP61ySY4zJjKor8z0EtKB3tPBqPZrU1ftnFtEpYZuuhokGHcvHmE5QKYAhkfj+UCIR/gaWwP6fHh1oy6QRHEPgBsPLx8gC0z8BnSiW0OBD0mahlVq1lU8zxmmAIChy2l/isQGiKywrD/kORhk3XeB7lsqyRxi4PHjt3zjRjfxlK4R/gD4HBfPn5ol+1VdkqV0U42qBnFL7rR3vJuaNzAzI1JDeZZ49NHBqzoEPq3l8q1BubhSw/o0FMoNGRjhlNIvcjp1uhTpS/noFxZ7klJ1CfKXmqh4rWqcVuxAonnu12hUxnvRkV/Msm3h2KjIrlZvuFcK2MwM5aPDQ72Vx4AvXU4LaVbs7IWnS8gBRB6x+EycnmCi+KTMQXEcoxdpp5GuL0bQ7+M/gmxLC1TYRovtrFibJbTe9BrHv7zTb0B43nhPXgJ/T5XeuHzMtB+lC5Tq1KMXpgr70f7mlgAh4oQKJDXkM+D8c/Ypo=","translations":{"en":{"changelog":"### Breaking Changes \n- drops support for NC<35\n\n### Added\n- Assignments @marcelklehr [#522](https://github.com/nextcloud/assistant/pull/522), [#539](https://github.com/nextcloud/assistant/pull/539), [#558](https://github.com/nextcloud/assistant/pull/558), [#561](https://github.com/nextcloud/assistant/pull/561), [#567](https://github.com/nextcloud/assistant/pull/567), [#586](https://github.com/nextcloud/assistant/pull/586), [#587](https://github.com/nextcloud/assistant/pull/587), [#588](https://github.com/nextcloud/assistant/pull/588); @lukasdotcom [#550](https://github.com/nextcloud/assistant/pull/550)\n- Streaming responses @julien-nc [#545](https://github.com/nextcloud/assistant/pull/545)\n- Support for NC35 @janepie [#549](https://github.com/nextcloud/assistant/pull/549)\n- a nice label for mcp_ tools @marcelklehr [#581](https://github.com/nextcloud/assistant/pull/581)\n- Capture and display reasoning content @julien-nc [#595](https://github.com/nextcloud/assistant/pull/595)\n- expose the assistant folder's path in an api @kyteinsky [#582](https://github.com/nextcloud/assistant/pull/582)\n- Audio translation @julien-nc [#601](https://github.com/nextcloud/assistant/pull/601)\n- improve button for text outputs to allow for iteration @lukasdotcom [#596](https://github.com/nextcloud/assistant/pull/596)\n- Subtitles file action @edward-ly [#577](https://github.com/nextcloud/assistant/pull/577)\n- context agent skills endpoints and admin settings @kyteinsky [#594](https://github.com/nextcloud/assistant/pull/594)\n- multimodal chat @lukasdotcom [#602](https://github.com/nextcloud/assistant/pull/602) \n\n### Fixed\n- Repair malformed utf-8 obtained when parsing PDFs @julien-nc [#569](https://github.com/nextcloud/assistant/pull/569)\n\n### Changed\n- added find_person_in_users to tool list @janepie [#535](https://github.com/nextcloud/assistant/pull/535)\n- Improve empty content message @marcelklehr [#563](https://github.com/nextcloud/assistant/pull/563)\n- Use the current date by default for new messages and new sessions @julien-nc [#568](https://github.com/nextcloud/assistant/pull/568)\n- Give more feedback to user @marcelklehr [#576](https://github.com/nextcloud/assistant/pull/576)\n- Make the text input larger by default @lukasdotcom [#590](https://github.com/nextcloud/assistant/pull/590)\n- Delete chat messages and assignments when user is deleted @lukasdotcom [#604](https://github.com/nextcloud/assistant/pull/604) \n- show user facing exception for message generation in ChattyLLM @lukasdotcom [#608](https://github.com/nextcloud/assistant/pull/608) \n- render markdown in TextInput output @n-iv [#540](https://github.com/nextcloud/assistant/pull/540) \n- use extended markdown for all NcRichText [#613](https://github.com/nextcloud/assistant/pull/613) \n- some translated strings @rakekniven [#617](https://github.com/nextcloud/assistant/pull/617) \n- small UI changes @marcoambrosini [#559](https://github.com/nextcloud/assistant/pull/559) \n- avoid mime_content_type warning on wrapped streams @olddude2 [#592](https://github.com/nextcloud/assistant/pull/592) \n- updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QxLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3Q0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3Q1LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3Q2LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hc3Npc3RhbnQvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3Q3LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Nextcloud Assistant","summary":"Process and transform text","description":"This app brings a user interface to use the Nextcloud text processing feature.\n\nIt allows users to launch AI tasks, be notified when they finish and see the results.\nThe assistant also appears in others apps like Text to easily process parts of a document.\n\nMore details on the assistant OCS API and frontend integration possibilities in the\n[developer doc](https://github.com/nextcloud/assistant/raw/main/docs/developer)\n\n### How to use it\n\nA new right header menu entry appears. Once clicked, the assistant is displayed and you can select and task type and\nset the input you want to process.\n\nThe task might run immediately or be scheduled depending on the time estimation given by the AI provider.\nOnce a task is scheduled, it will run as a background job. When it is finished, you will receive a notification\nfrom which the results can be displayed.\n\nOther apps can integrate with the assistant. For example, Text will display an inline button besides every paragraph\nto directly select a task type to process this paragraph. Selecting a task this way will open the assistant with the task\nbeing pre-selected and the input text set.\n\nMore details and screenshots in the [user doc](https://github.com/nextcloud/assistant/raw/main/docs/user).\n\n## Features\n\nIn the assistant, the list of available tasks depends on the available providers installed via other apps.\nThis means you have complete freedom over which service/software will actually run your AI tasks.\n\n### Text processing providers\n\nSo far, the [Local Large language model](https://github.com/nextcloud/llm2#readme)\nand the [OpenAi/LocalAI integration](https://apps.nextcloud.com/apps/integration_openai) apps\ninclude text processing providers to:\n* Summarize\n* Extract topics\n* Generate a headline\n* Get an answer from a free prompt\n* Reformulate (OpenAi/LocalAi only)\n* Context writer: Generate text with a specified style. The style can be described or provided via an example text.\n\n### Text to image (Image generation)\n\nKnown providers:\n* [OpenAi/LocalAI integration](https://apps.nextcloud.com/apps/integration_openai)\n* [Text2Image Stable Diffusion](https://apps.nextcloud.com/apps/text2image_stablediffusion)\n\n### Speech to text (Audio transcription)\n\nKnown providers:\n* [OpenAi/LocalAI integration](https://apps.nextcloud.com/apps/integration_openai)\n* [Local Whisper Speech-To-Text](https://apps.nextcloud.com/apps/stt_whisper)\n\nMore details on how to set this up in the [admin docs](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html)"}},"isFeatured":true,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6875,"ratingNumRecent":0,"ratingNumOverall":8,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBDCCAuwCAhIoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwODE0MTEwMjI0WhcNMzMxMTE5MTEwMjI0WjAUMRIwEAYD\r\nVQQDDAlhc3Npc3RhbnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCu\r\ncEls+fSEfvpa7PK3GLGLUGiD1Ls8TeqppTo3tCb2xrCRwP744VdiSB4BsnjRF8Gk\r\nVtSrICsPB7dfVXnnorZdXzzFEa2WACAhqMCPykoym7Oyr5+o2uOTXXYDzt2mvqCz\r\n6YcSYWxRo3WcCkzl0Dn9Fyu5jDDBMF9yddonmyusbP4Keg8nvyl2FxIYFyiV9Nkn\r\nvM+o6P/JZpwfjzwtVJyevIM/95hUOvP1kMMhqd/dozauQT+lqaPvuMjYmjDFh82g\r\nJY8fKcHkyR+Bnldz2u7G6aQ7TK/ANE4jkxVN7TaNn5HruFIzlMP1uY3IeZWAZ68+\r\nXy6Kafasf76P01fkR/3NmVpPhCIBXRjCNWbltzj8QgSGK0/JXRsQKZnEzdYCg+eP\r\n6ZJQK74D6DZV7vLS7YeHUi4SgNoDlrj5vW1Sg5gZica+JaVvF9L0+Oql/BVO6js3\r\nFZnQ2GDds9NxkuZt84NonO/x5NHu8JMQJA+7FuAWoJ7+zCsccPRTGU+hLfLR9Cnr\r\n0uZhX4961IDrom0I5AyRiygmnv8T0kt+7gfvxsvKTZHz50FfHtitQk0j/4lpTQxg\r\n4FYwldg+BfaMm7wqQEIZzOmUHE75dM3eCW8AmPJ4ntbGBa91q4P/sfsPpKW3+7r0\r\nWz0PMKYth9BI23qX1zKMPVj7UXcVJNRKoGU4lZS5aQIDAQABMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQBae3tgu8nceZyPf3aPPYs7Sb1x0jdpikBOFuYGvxVY1CtEU3bR9Eou\r\nid8fX+WSzvok80Cfz+kqgYhWMCPYYz5rOOt+hEjlqOO5Ar2n59m5jZdmW4OD7wHh\r\nan+XhfR2Nu1DZL43KMc0EeQwhvO/RvpkdlGmCz+RAM3t2VhkjFZnre+pEGmQvcXh\r\nNwd9kMW2kbPEoMk7udO0qK6gbs8ZuOCTcGqWYu5/Pap354zSg+/5QnKsZ4mwwk3s\r\nhm2oG89/2qARyksjqmSSAGhOSCflvXVKAnPiXEbE4DKVGWx6j8lFb+7rHLqBKSHG\r\nQWDx36b7StfjMk/wRdDL7maI8o+kZCtN\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"formvox","categories":["office","organization"],"userDocs":"https://github.com/nextcloud/formvox#readme","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/formvox/issues","website":"https://voxcloud.nl","created":"2026-01-26T17:29:22.918212Z","lastModified":"2026-09-21T09:30:05.455012Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/formvox/releases/download/v1.5.0/formvox-1.5.0.tar.gz","created":"2026-09-21T09:30:05.431977Z","licenses":["agpl"],"lastModified":"2026-09-21T09:30:06.187031Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"GRkfuwlQXTjM4ZWzsev2WMID+SWfFBPlEeKDYrB9Z7PwNfAEEQre7lrOzoy2ZdGRt08165TToK+tXEpNmgl3LvfrylBXSQVsJUfiq4cfrc7ZBrvw2aSM0oho70aHi6w8aozYqcmpM/I0Yn/Cw3mC4+INxXuNUnrOwCuvZV5+Vw3TjT58gOCqKa+GbbFTL7feOnY778O78XY6hM9xwRXUxPTmaaf2hq5etNGzcoeij0EtmBkPbESM653odHrZc1t3Q0CocISqoDpnglSzwsRGOZfghxtiKP65a+47DfSEsHe1GYGLPTZPtokK2xc9O8SqGQC94v5sMuuohp4PNIcXvGZMKcaYylGb3mjBBX0Tb2zsTnZcu+fHIkJigcBuZ4xIzXHSQyA75AV7FmNPpXnOhFf02MOR9nPTk5+kdpoOvVbR5SdAIs8Pa7Z3Of+RjaSbYLDsK8ON8oj2po+ifFe6hX+XG2MFf6+ggGvvWupqGEwQEvCLKMQq0/Ky4iBIXCgyslMOTFb2ZSPxPV/bO9MTqQTpMwmWiOSmbj64ncHNHSM+txU0K55IkWEk22iq7ToXQh7eW99kuYIKricXQ3sBKsd6KPBOw7uj9o4bril/lWg2yVfXc32XYlD+NYX8YIYG3Ikv7OMzTRGqPY8tLonJVvtC/jCR5eo8wEUV7v6b6+Q=","translations":{"en":{"changelog":"> **Upgrading from 1.4.6?** Version 1.4.7 was tagged but never published to the App Store, so its three fixes are listed here: 1.5.0 is the first release to carry them — the captured email addresses ([#143](https://github.com/nextcloud/formvox/issues/143)), Team Folder links on folders with many groups ([#136](https://github.com/nextcloud/formvox/issues/136)) and branding on the public form page ([#142](https://github.com/nextcloud/formvox/issues/142)).\n\n### Fixed\n- **Captured email addresses disappeared from the results.** Turning on \"Send confirmation email\" adds a hidden email question to the form, and respondents' addresses are stored against it. Turning the setting back off deleted that question, so the collected email answers no longer had a column to show in — every other answer stayed, only the emails vanished from the results and exports. Disabling the setting now keeps the question (it is simply no longer used for sending) once responses exist, so the addresses stay visible. If you already hit this, the addresses were never lost — they are still in the form and come through in a JSON export. ([#143](https://github.com/nextcloud/formvox/issues/143))\n- **Public links to forms in a Team Folder with many groups returned 404.** A form stored in a Team Folder that was shared through a large number of groups — one had 27 on a single folder — could become unreachable: its public link answered 404 for everyone, while the same form opened fine for logged-in members. Those links open again now, whatever the number of groups on the folder, and opening a public form is a little quicker too. This follows on from the Team Folder fixes shipped in 1.4.5. ([#136](https://github.com/nextcloud/formvox/issues/136))\n- **Branding colours were saved but not fully applied on the public form page.** A chosen accent colour and background colour would save, yet much of the public page stayed Nextcloud-default blue. The whole page now follows the branding you set — the header, the buttons (including the Next and Previous buttons), input outlines and accents — not just a few elements, and the page background takes your chosen background colour instead of staying blue behind the form. Whatever background colour you pick stays readable in both light and dark mode. Branding set on a single form keeps working over the global house style, so a form with its own colours is not changed when an admin later adjusts the default. (One part is still outstanding: the date-picker popup does not yet follow branding.) ([#142](https://github.com/nextcloud/formvox/issues/142))\n\n### Changed\n- **Nextcloud 35 is now supported, and Nextcloud 30 and 31 are not.** The supported range is now Nextcloud 32 to 35, matching the rest of the Vox app family. Verified on a 35.0.0 instance: enabling the app, the migration, creating and editing a form, minting a public link, and an anonymous submission through the proof-of-work challenge all work, with no errors or deprecation warnings in the server log. If you run Nextcloud 30 or 31, stay on 1.4.6 until you have upgraded the server. Nextcloud 35 itself requires PHP 8.3; FormVox keeps a PHP 8.2 floor so it still installs on Nextcloud 32–34 instances that run 8.2."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtdm94L21haW4vc2NyZWVuc2hvdHMvU3RhcnQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtdm94L21haW4vc2NyZWVuc2hvdHMvTmV3LWZvcm0ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtdm94L21haW4vc2NyZWVuc2hvdHMvRWRpdC1mb3JtLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtdm94L21haW4vc2NyZWVuc2hvdHMvUmVzdWx0LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"FormVox","summary":"File-based forms and polls for Nextcloud","description":"FormVox is a file-based forms and polls app for Nextcloud. Unlike traditional form apps, FormVox stores everything in .fvform files — no database tables needed.\n\n**Features:**\n* 100% file-based storage (.fvform files)\n* Question types: text, textarea, single/multiple choice, dropdown, date, time, number, scale, rating, file upload, matrix, table\n* Conditional logic and page routing\n* Quiz mode with scoring\n* Export to CSV, JSON, and ODT (with custom template support)\n* Import from Microsoft Forms\n* Per-form branding with visual page builder\n* Answer piping (use previous answers in later questions)\n* Charts and visualizations in Results view\n* Webhooks and REST API for integrations\n* Collaborative editing with real-time presence indicators\n* Notifications on new responses\n* Password protection and expiration for public links\n* Multi-language: English, Dutch, German, French\n\n**Unique Benefits:**\n* One file contains everything (definition + responses)\n* Works with Nextcloud's versioning and sharing\n* End-to-end encryption compatible\n* No database migrations needed\n\n**Perfect for:**\n* Surveys and feedback forms\n* Quizzes and assessments\n* Event registrations\n* Expense declarations\n* Data collection with privacy requirements"}},"isFeatured":false,"authors":[{"name":"Rik Dekker","mail":"info@voxcloud.nl","homepage":""},{"name":"Sam Ditmeijer","mail":"info@voxcloud.nl","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhLqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwMTI4MTUxMTIwWhcNMzYwNTA1MTUxMTIwWjASMRAwDgYD\r\nVQQDDAdmb3Jtdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAz38a\r\nfGo+6yAbPUewT2Fl8wr8+Fc5zkPdvlq8d8zt2l/iF+G3Xxgz6DvSP1TgQ9WhATUh\r\nVabx+7YyPMcWu28+q0DjXGHn/kT9CLYK2IyI9CG+6Bq7Ew0ZJNJTKj6P0gXEpdko\r\nt2LBJUD8uA5f6bt0IMpkSz2mUy4/a5ppdOpX8DbPJ+PQdqwX3iH4xRW8xkJBgwrC\r\ngp539WX2X3gH3QuAbJppJ8utvDKAk22GgmAELXy7KIJ8U6RQG17bxxWi35bXL3Dc\r\np/cEGhPnxz8LnjeqdHXyFKushbI7lw1X7qWaYmjSfOlyGOaviuWJqi/z0eb666/x\r\nDhsbt8INrAp+bisPLcYPcj68mO4vgS6iiyQ0cdtqDzS6vWp3ONVz9LC6pacTzfhm\r\nqfVHGXHUbPKH/7K4MdbqTlq9EOPraYSKt+gYKFkbmtLx4jkr/YF65a2+i6AFag+I\r\ne9a/qow6LotIV1JyeM1ZuXz0h1rJ9MF37RtJ036EG1hu3U/ZRRumql/q9qmuIXzO\r\nNRZZbRduzQdmMKvEmLRAa4vzWvfbNeypRCfJEjb0axNGD0KQPqKiF3mbcKtDID0L\r\nqjuSSDY0jHDZJUYpx0w/CpYx9GSVOCNtKiSOx2j98AZPt5C+++5577XS65Zu5a9m\r\nLEOYNqlHn2eUOUWgYzf+bHKi6b3Ax5n7I6aWQykCAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAEfT1S9+x03FdzV0enwSaycCW9WgoRM6wPleUp9CghEde7ozKcTdGFiBo\r\nP6xD0IPPwYZekVBUSQdRX377VR1CsjjHgtsiWYCrpGS7K2hXLXP/ixBjmde9cG8F\r\n/yOpIVK/GoMqIwQ/Ou3+qojmuOPGjOCkwBHOaVtm5yRkuHAEgyBPMzgh+E/ZhLn/\r\n6emCfV3bXcGwZvu9GsVl9k+SMyur1BFyV9h7r7/8mXsP+5n0NzTeaUjlMdTJO1pN\r\nxKPsUuEOpjnBiLvCu+MHqczgpStFjdbMOaqsGzLpGL7N97/1/0sJdSW8VvMrkteR\r\nJZ2/aCfE8hjPURVMJaAya4zY/+L3qw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_antivirus","categories":["security","tools"],"userDocs":"","adminDocs":"https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/antivirus_configuration.html","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_antivirus/issues","website":"","created":"2018-03-08T10:32:09.024737Z","lastModified":"2026-10-16T13:11:15.135417Z","releases":[{"version":"6.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_antivirus/releases/download/v6.5.0/files_antivirus-v6.5.0.tar.gz","created":"2026-10-16T13:11:15.129837Z","licenses":["agpl"],"lastModified":"2026-10-16T13:11:15.170246Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"WVop/K5Co5fHMseic+Z7ICLQ/V7Vwyywa7H7jS25io7OSynpvDyDnlX68mxxoN8Qvm6yeY5syHZVt4V2l416wCBsAVL7l4+LNaakWACkNsjS/NaDmqxwEdvn76UQlgj4PtupPLxyOFF0xBh4Zo3u9txa0d5Ck4cUgSL5u1+a4bAqfiHv+nQWO+0Dav6MJ5WHJbrYJ51PkJHgzyF6h1nyXWr40dUoyb5eg4NsBmP8fCLnj5Blj3oqqRC5WmsbkF4tc+OJGquoP63rUGJMoxvREYNrZUphbNEvg/TxxgvK+mOK0H7E6kVuyuSI0nPgbm3IakmfnNjPIDJGFeKW8J2pmdaUEGUlX3aJgiEBbVomwO21aFSUvUAnjbuJbjnVTA1xEeyf3Phb+2mTO8y4G+g2ECHN6Z4hrwWPFFlg1yTMbudoKHYVtmAHNqzMIV0nvhhSey3mdCxJPpgMKRX3xVYwSZV4yyR0G7q6i3nFjOcu0Qt7IZVuBJJTwAk6Wf6u/ERlyYN8pMhWz7huttBncIL4pjeqNZea5xkHVoB5EHPfG5+m5irr8XnU38icF+CG8RIbg2qmIDYM25y3L4GbpniLpke88hbv5VZ3GQzL260B4jQoNJpGzJCh1HF40HhD2Qap4eRBf5aBfs/Ii7WbrREzWS86H1F1McR1gfY63H0X6do=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_antivirus/releases/download/v6.4.1/files_antivirus-v6.4.1.tar.gz","created":"2026-09-10T16:01:31.177609Z","licenses":["agpl"],"lastModified":"2026-09-10T16:01:31.257653Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"mPRps7Zbj8bMYZA/ZtErCku0KDABaxLXDfDgwo2mIQe65/izImxGC/dC/jRAztLpvt85eLVcBf8XrIIbpSfKtBDAlIoLEjo28tBgjI/XSiPwMQY24NIT8sBJarsS6p88XG7aF5DFwqQrdJlgcctgBX+AgUUrkdwDqv+QoBzziHNA/eA2DfJ+aEOlwpx8XKXHCJFr8J2JzjMPOeQZ5efYswK79qMKiod5rde9TzRT04qQkDFnJbVBqkZyo15PbEjRrjkUZu2sW38jiPlpTvBmEKDWYUd5ELRuM4PPeKcpoZ45YHv1ogtALKNK1XmiMgWXIkLgMOsSRoL1ESwmkqw8m4iqUlkwbB3Yp1SF0wOyCM3fBfVsYVJboODQ9OYIEz4yOinV0oM2P1jrn+6KW+HWpgAdQ6drcf48nnmoF9wRyHf2iCBa9CLv47SSSD/BsXWENuTzX9PEPAiVN5FTJc3Eq/r8NMj9cAkl7OgOQoPtit6nAUQ69AlDqJvdaqUrN8Ej5p1/qCButKSu3otRvDfdhzk6yEeVE9aM3XJdVBMUp7KsDTsZiJuotpCH94NhoqHdjqNUFc8OrPUqMAUj1gq5sG1hHk7gCk/wT4TFPrWDNGdAZjwDo/+qyNrRnXTs+CoYk+sVD3+ket9vygQ8r6o3uhkdoRiXpqCfIoq94y7z+3M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_antivirus/releases/download/v6.4.0/files_antivirus-v6.4.0.tar.gz","created":"2026-08-12T14:39:23.205728Z","licenses":["agpl"],"lastModified":"2026-08-12T14:39:23.269509Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jWM47kpGbxrht4rr3GCMaDMWYFPMMhzN0fXDS8g6y/yagqSFlB2m+aPSF/DmaEKt8Hxw4c+8awPEAorOIhcDvixaVGBP4lGWiJYh/ZTJuhioEZFyXDlbcbDTZ+n8BxjZ6KgewIGM6LJALSHfm3/yyFZO+TNb7TqYys3dNlkv4lyFemQjc2duApq+O/a/VKGwWtqZlyyl2SdC5oTrlHQsMPvyIfFt+2yCuK0mZn1nE2s4ouezrvrBQU5mKI5Do0ezMH1nBePJNOCSXdwAg0ygJlJTovSXKzmJ3wXMCrKr2T2uPHoocNabp0NMmLNXx8yWO7ngEkRBy3PZ6mQToUewBq1rk5zruLLkGo4kY/wSWDDbuypCEUPvaLPfXYWl3kqFtzfFsCKtuzwetXe3KD7P36WiHJsaASrdas6YdhEtNGGsUrg5Z9dljX16i0LzvWqKWcLSIQHMtwJiA85CFTugwn8073ISuRQiG4QO0ae+Qmsl7sOBMv2Vn9SGhI5iFnu1jq0nTqAGwG3maexfIDZsOehhSvGwZSlHWK1EqDfPPwgeZvZzTAP564FdjiTuJhExVuMHcKlax88Je+sFA4eH3YcbnlqfnWNsKt691QpW/3k1sjBirPT9DBGBcs3iokLgKDP3B4nu1h/5Mt6lX5NW9k85rQ7e2mVRCsD/RJQda+A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19hbnRpdmlydXMvbWFzdGVyL3NjcmVlbnNob3RzLzEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Antivirus for files","summary":"An antivirus app for Nextcloud","description":"Antivirus for files is an antivirus app for Nextcloud.\n\n* 🕵️‍♂️ When the user uploads a file, it's checked\n* ☢️ Uploaded and infected files will be deleted and a notification will be shown and/or sent via email\n* 🔎 Background Job to scan all files\n* ❓ Use ClamAV (open source), Kaspersky Scan Engine or an ICAP compatible scanner\n\nThis application inspects files that are uploaded to Nextcloud for viruses before they are written to the Nextcloud storage. If a file is identified as a virus, it is either logged or not uploaded to the server. The application relies on the underlying ClamAV virus scanning engine, which the admin points Nextcloud to when configuring the application. Alternatively, a Kaspersky Scan Engine can be configured, which has to run on a separate server.\nFor this app to be effective, the ClamAV virus definitions should be kept up to date. Also note that enabling this app will impact system performance as additional processing is required for every upload. More information is available in the Antivirus documentation."}},"isFeatured":false,"authors":[{"name":"Manuel Delgado","mail":"","homepage":""},{"name":"Bart Visscher","mail":"","homepage":""},{"name":"thinksilicon.de","mail":"","homepage":""},{"name":"Victor Dubiniuk","mail":"","homepage":""},{"name":"Roeland Jago Douma","mail":"","homepage":""},{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECjCCAvICAhCTMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwMzA4MTAxNzIxWhcNMjgwNjEzMTAxNzIxWjAaMRgwFgYD\r\nVQQDDA9maWxlc19hbnRpdmlydXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\r\nAoICAQChxjebsgwKYS0Zo0oV6YGeomb1CuHhFyHKLm3WJJTzSzIu5iHBFMCvm0Sq\r\ni86fK6tUVfokFObpUvtSFixQXqwNnvP390h5kMAO6xDeJpZRZkca1Lvw1e1NSVdV\r\ngwow46b4R0z1r5XsW2ZsuVxnYHLay+bP0sKIBaGk/Vu/09UvZtb78p/BAqhF9zz/\r\nk+FC5VyEm1KoTFfRBd8FzRrrJvTjmSOuAza6SZwyY9olorDIfeygtFHtgQxVY+ky\r\ndBW2TT4uiEL7CV2ov3GGlsJWfrL4FfLCFe96EnO0OneeXkUUDOkzuJLM/GxriefI\r\nDRz7y1KzsVtZCy2cnChkHFbteju1juy66Uf7D2ZLh8pviEAomzMgmK6JhAmj2qzq\r\nIxXake1jmt9BHnWfEeVIcYKV58BQrAfU9mv3AsEbL0cPGqvQ1drok1p6W3xUxKOE\r\nOOS6jQS2K4AOMvbY52YhaWjWx6FfMj6kxKx12s7FMcdpxsmvZvfZMR4dNIkXvsss\r\nTimJKcmD8YH3LmxxIiEf9Yn8tRwsmncQN48Axy7VS7IjgRoKqw7kFW/ca9GeOyEb\r\ndwsJlQOTQxpqZSceVdGABKkriZbMy7aXtkp60RGn096WOnArMieO2WrJOr5uV1PY\r\nucJsHj7PveYs47Qr8/l55s5S4H2o+OPSc/mj8u+H3Xy0iK+/FQIDAQABMA0GCSqG\r\nSIb3DQEBCwUAA4IBAQCS8r208SeDU+ATjA1ELDvpoVQEvxwUIW7w2SoPyZgvAWX8\r\n6T2Q5ibhgtUUdYRE3tXR7ySCyGy2Oj7ODV4uA0STYSKAZm534IDe/Jezobhq/8ME\r\nVdAVoW+Jg7DtTEWS+XxsotqBIJyVyHtARCtVHmN6yc2uOvsil82ykGWchKMLXH6+\r\nBgpEssVPuwcOVz3PNetQ0p4CtkDGcQ7HHKN6H3AXe4F8kSdxSgSv27AY9j7jMpoR\r\n9wFmOcwQaRWIQLinS8Cf92EkFHH9xV2MQIJz9+QQGEeqXxwl+eX7rXh5Gg6Ofrae\r\nwHAz2OmR+rA1t2kANKZ0gloslqwiT3YnE9s7SsO3\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_sharing_raw","categories":["files"],"userDocs":"","adminDocs":"https://github.com/ernolf/files_sharing_raw/wiki","developerDocs":"","issueTracker":"https://github.com/ernolf/files_sharing_raw/issues","website":"https://github.com/ernolf/files_sharing_raw","created":"2026-03-03T10:41:26.778654Z","lastModified":"2026-10-10T22:25:05.733706Z","releases":[{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.9.0/files_sharing_raw-0.9.0.tar.gz","created":"2026-10-10T22:09:41.036787Z","licenses":["agpl"],"lastModified":"2026-10-10T22:09:41.072401Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"M95sW8j4pw/XDfiITV/tMYscQn6+/sM+l5JLHTyueUbm1URgJMiHcL7XyMP4nultv+qTEw2/uUzrpeQHdg/R7WeujTLN+Ld8GUBuMCmuHQXgbDpMsHPvonIMVYTPwRCUrC8dhv2YTQ6oTKtD/mkPnTqYIoydoNBL8ituQ0u7AmyUU2AKbYy/4gDGdoPbXjU0pKTW8Rq6JxzHrv05G3EKe1e2m31NtF0IXvQxgQuXSSbhzwnCxSNHO8Ez4gEgYu7IdhtOVg/ZgG+Ytri65u6jESupEajLEQcFnCe/IZoS/sN+3sLPgbg8F22owlkHm4gesgbnqka5Q91QaliBizrifmkgrcW0L89YTu9g2Z2hAAhgGpWOTE0f1A5wT1Pp2KBrsEbo35np+NtEGvekwZW1zGJthyW75ftVyVWF42siNSOA32NYJTlXnJFiIy0vOjF5J0z+yHu2C2wHAKkl/7vb2UoaOzmzW9ORDSX0rYwPdnMDzI13I41Ounu3D+mpZqQ+VEc/PCaREZXKBuqwt7+hx2RQNFtvdwUshbseiJbHqLXolzfQP8wBLQrQUvNFhKfQSQuRfG5OGLh/uravb7nyU9GzLk27Tl4O8yI2OSDlEOmSI0rd4leiDnnSvlWJFBKuk04x2U/Pzs0KzUhpb01j80d4hEyNnKPTmMlJ+1sNuB0=","translations":{"en":{"changelog":"### Added\n\n- Add app icon (#110)\n- Confirm saved raw link settings with a toast (#119)\n- Refuse raw access on password-protected shares (#124)\n- Accept /raw and /rss as absolute path_prefix in raw_csp (#125)\n\n### Fixed\n\n- Move app icon bottom edge closer to the chain link (#111)\n- Load dialogs styles in the sidebar bundle (#118)\n\n[0.9.0]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.9.0"}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.8.0/files_sharing_raw-0.8.0.tar.gz","created":"2026-10-06T23:20:43.502421Z","licenses":["agpl"],"lastModified":"2026-10-06T23:20:43.549734Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"jlevQKCOwI30KUQyEWqQUQKJwHTzFXYWMIqeL80GYnrCtcKissQzKzpe0qHhYhiXQ5iMW6j5gdek6E4c5m4QE4kgtyNPcoDho2Eue6FozeBDpsGDZNUma751kB1aGDw4tSN9Z76UOK6TxPEYjz+LjTrNVTy6f/k7aGFUrH6cJgix/d0nd7i6hKNzUJOVnWbl4EAxeVSLS8s5585oHh01oEZRqz0ZLetUL+kj/cLjx+eXESz/tQ+7oqgvlT4h9uXAdv1nSGLJukTeKzBe0vgDq1SVEDud6xZuAvHSXz+TyUkk6qs1+LLJl/bG7FBuQuVAb35JJ8Ei5TbqWelvgnqSyLxctnD/K7EM3/UX/XMPcHJ+bL2r+ADtl0gcz4kfOtH6/PCyTomcpk7YBBhKAGGfmnO3iLZ3CjfbfW4yDB4+IUOiRxtR0gUUIgwlKzuFK9YBvf6L8TxL4kv0hZfdBuXvSO9oyh6b/DOmtWl0GwMtx+2f8rxXp1hzxcOkR0vFsAwFk76aw7xrMS55gThr+3mH5rWWJnPOH6P9WnWcHLSAu6xBDIWYtpAIRh7rsZ8ftsc4HIFZtIqE4Fc1MoOEJH79zukRG2xPEGi3N/p7GF/NVitE1YnKfPjJ+wkf3RPayayikLQkJoO1am55TZJxaYjC/WUYv282qvnqXHjP87SQfqE=","translations":{"en":{"changelog":"### Added\n\n- Choose the CSP editor group in the admin settings (#89)\n\n### Changed\n\n- Require Nextcloud 34 and PHP 8.2 (#92)\n- Legacy URLs under /apps/files_sharing_raw/ always redirect to /raw/ with 307, and the setup check for cores without root routes is gone (#96)\n\n### Fixed\n\n- Register services through IRegistrationContext for Nextcloud 36 (#87)\n- Point the raw-public-url route at PublicUrlController (#97)\n\n[0.8.0]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.8.0"}},"signatureDigest":"sha512"},{"version":"0.7.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.7.3/files_sharing_raw-0.7.3.tar.gz","created":"2026-09-19T23:37:53.118438Z","licenses":["agpl"],"lastModified":"2026-09-19T23:37:53.196778Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"GF37AEeH+9Q6r5qGrVYVzD59mUNAArvNzRjleGTizngIFVcE5VVm3qtV0NZQ5Mx5epbYU5MlssZxpC1c2Y031lDmFv/jXs2ZKqYZOuSPvwA3Yqoudm5ED6iskq/zgI8rarpcC+bAx3a9bhFZQ4jx8YM3jyRVpEtobWiwM4FweTn261FwXYnViiufKU1K68N4Ti2ZJwZyw0EFIhcFWCqKSU3AJ7czjViJZIqXgG9Fs9AIuvDBeKgMRHyzc1iYXgEG1S3lZ7ed0ZunrliYDQhv4XQy0T8MmUqJP5kHlpmYlpZU/My7Vj3TkVwGbTrr73N1OSdNWFEmtGd30C0RCklqva/kb5jo2QXE856Mi5NQ8LhD1roO437JuopzcaFfpy/QEmkwPVh1+2xpfn8jjYrPSgkM1NwWcFIbJfdAnEU4znxCN5L7JyMlKbitfKrMuAEcOCXRob3of1uI2tRAfwZZl3oUXmtiHeXODnUa1VIQvOUYjOPeREG07hq9KvY+dT+uaiI/Yg30c1HhO/evP4PfmRLISxm55HeAKo164ZzCrF0Kgj0Tu5lc0lurgDwvTIAMGsy1ClHiBh0v3S6WnlavfdSuJQHUPivfysqu/o8CU9l9q+jrlP46iTmslTrHYq0UUG3jbCr50tX/wDDMk4JnhO5zMcb28UXH+ieeWKKzoeo=","translations":{"en":{"changelog":"### Fixed\n\n- Read the per-share CSP even when raw_csp is unset (#71)\n\n[0.7.3]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.7.3"}},"signatureDigest":"sha512"},{"version":"0.7.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.7.2/files_sharing_raw-0.7.2.tar.gz","created":"2026-08-18T23:19:37.097434Z","licenses":["agpl"],"lastModified":"2026-08-18T23:19:37.144824Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"ca/mU5Rckmbp4jtXmE/VeKqfMgLNkI5s0H7UJ6A2S/Ez+j+jzGlk9b2QZAo4arxrIuLEwFoBtGeZ+WQRouz1PsOynjXNZQ6+hLDyeuPEpd1GTGkctdXVb4QhlmOx2IMzsHQrE74N2zhAto0iiXdXMZKIzxgP4w5q5gSuokkfkCV7K12lYHijMEC0kckPyuPTJtDz5M6OUAVct0Ttqc8MR7D0w1ojMfR6engy7alP34nFFD18DHN0YFmqBAYNjG7/DDzco0yC8D488Pjz/VaOWcV6u9DFMCC7XOwOTpLpihQfO16ImfHH71Kya5/LX9XotncBhAou2KDBinT3ZVbKYDRJktyjZsDIkhtEAChVSPFMXc6O1csUm1zD5IsnKbkjkJPMesMlQlnYbl6oQ1FI4lZ4En96j6ZIH7zzieltu5sJRz7N4J4TFN9c0uHYW4w4wjL9gZxV6TOJa2QzF2Q27I3TS1TSABJl8tu51+xNAds/dYxOgNbKhYDDbuObIFR6w6s+/W0h1OQtVNg8Btd0XciY2a9Gr+576wLYQg/Tpj+rqpdpS7vD+67hn05KrWMlfWp/vUmqaBL9fmooX5lQ75tmlRAWlL4KYFR+yjJ15UmkX/ttJJxnuaniSYImcpyyOovl6bv6/6M9sjQgmAYCHRH9N09DFeaQ5+Gl1D4lAkE=","translations":{"en":{"changelog":"### Fixed\n\n- Keep the stored CSP when a share is updated (#54)\n\n[0.7.2]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.7.2"}},"signatureDigest":"sha512"},{"version":"0.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.7.1/files_sharing_raw-0.7.1.tar.gz","created":"2026-07-25T01:57:09.899247Z","licenses":["agpl"],"lastModified":"2026-07-25T01:57:09.972047Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"VgBFCKSrr73LmPsotlN/HPU8VI7ulJq6zBGas8XQ2EwNitEYQe8FXL6zI7wmW1DdB2XhI1O9e2DZ5jVmcRooXc+DCFt0NjJDGcxJYMLpSUPOPWryOX3rq2R+m2nn/xj87KhtPs5IjbP6MZlucJYz/MxRCPlYRAYYg+l40QJVo4weC+DkQKpUfASHEg+gEJlEjTfRxpU3Hm82uAPU8dxO4J/2T15/vzlLhcsDUecWSs44DHAGSG+NWG+DmHt2OSuRgBeFKGUrmqjlpKJmlzq4sgVGs5g5xwtgSOB5doJNx7378xHpIZU5/1PrciUwkUvEvNHaO3tRBIl5++PtJlmoClA12MwjAiGSX+5sGdpFldd7sYM8AKlWCEgk16CmpC16fupwlwShY6mlEv7wb4FpDAblTDMAij/Yames1FIuftF2gLDgmc55CIRh1CQjziF8IR975QSAbUrdSrIPz2rBPqIyXWwAHrq6DlrPcFzbv01bc3oh8840mPPBOUYy68UFWKWIsbi0W3splZqOzrqKdKi/yoDlQoSbMgVGZF7/G8hcj7s2FDHOdPV6AcM9QKKevkMoD+LDjrHtyIZiOQFIWolLKpzVwegLkhNZDf/MbOKwxnpr1jROZpO7TQOHRZNzEwTlqNxDClcf8K4GhE8qyo+C0CxzG7jbkXyZr3HMtKo=","translations":{"en":{"changelog":"### Fixed\n\n- Align the raw-link sidebar entries\n\n[0.7.1]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.7.1"}},"signatureDigest":"sha512"},{"version":"0.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.7.0/files_sharing_raw-0.7.0.tar.gz","created":"2026-07-24T23:06:40.162979Z","licenses":["agpl"],"lastModified":"2026-07-24T23:06:40.221029Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DGZuopTScHQLU/CD4usQ0/xF5dy+C3qhaAKKAjIhhmJMdxICZuvCUjSns2wE/lbxIOqeoT6yAIcPc7OM59YvuQ0AXd7MDQYxqCGjWwrKntj04xubKineRFL+IG5qjTPvD4Bg8EeXuiSAokkNAW/zv8vdh+yJPG4vF9nNJ+W2HwQCvSMuZNm9vvvELrLuo9t+E7hkfpLHL/8oFUK+9tdTFBi/uxSFsAWllE7tO9LoX/kzgbwlyR4zVCfmeN1TYquKT9+Z8DNPo+k1qQSuwKbJ39GaRB2Bx2H3+/BB8Ae2f5w6LWv7dUMtR1ITdQJXjD9WKg1uvx5ZIxs5+aeyftoUqRyUep2NEj5WUsER9TG5ij8l1z9o8Bp/V4X/vRCLxK7lBAwtFIwpZsGOdpqFi50Qa5CAbraUKv+JrRQfEO9SUJTc/v2qcTPz1hiNbGrtUJyCAYTtPYwqBfxIPFI8uc3CXBS9dltRB9CMJbUGAcwJVaOBNBrzcFbqzfiyHR4z3DX1+5ne09oQtZTSi6HPhmO3Q6+q3fGXEuAzj3cSvBgWSHBxGqOS6I3mveNq9QU2TKcqHR/BwLoYUwuHc0n/sBG4vGYqKY0vjo/+2PZSdOjeUZQf5Gzo02ppA56DQOTGfMtQfdu+8+kalv4FIOY7vL0omJWvUXKfzowxJcLAL1zGUU4=","translations":{"en":{"changelog":"### Added\n\n- Show raw-link option wherever sharing sidebar is used\n\n### Fixed\n\n- Prevent the app from being limited to groups\n- Adapt source strings for translation\n\n[0.7.0]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.7.0"}},"signatureDigest":"sha512"},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/files_sharing_raw/releases/download/v0.6.0/files_sharing_raw-0.6.0.tar.gz","created":"2026-07-10T17:33:11.334580Z","licenses":["agpl"],"lastModified":"2026-07-10T17:33:11.392516Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"INSd3TnKzz9FCS6BBEUrO89m8DX2BlSIslWfCDXPbNdfW5xCDGD1KF0rOYUi0zaCP6o/byODbUw9CBGzJFoESiWLzat/ek9/3933vw1UNJ4tBGQoJdD1bWsgruCCA7QIRCPqD9sL9/3z8KhxcFhXo502vj/cVzECrzCWh1TOiyHMEz8dUtFVjndKU0gk1bca+kN8p0AKsa5QFYgcjFNpg0T9w+43b91ay9Pxx7/dNxH+PnlJ01Q7urpy9PCKQNyTC+KwqQYokNu2cbzCu0UGGaaH403/opZUeOixBNtmldIOCURa3+ZaWXGfFpgkhb4cVW/bfsOfWSvilChrZ6W4zHLR6SXthZRk0lFGsmgzN4aG8SwNtc1a9YIHPxGLHz3SQ3/osqiB9EKNWQe6qTTCnbcwpqDiyYL1bHgzXL7ZHGHgW2alKcoBvE0vVL94XrLrro0JE85exv8okc83NEjliOPOuac54cIlfHXp+XDxU0vHLoNy76OGMa6ikReTq6jCp/Y5rUFYnFE7YjDzGCEyqsemaNuyBkwfrGgsaSMQQ0o+rwXifDF8nsqaYGGUd6gthAwA0SWyhHNU0ppzHqDL3kQTNId7MklMlNS6eJmtRR9V90Ml2+xExsDw2GpMGyaOyuC2ePx9W8mKE3oZuI6hbplmdufqD3WMr0OXqoAP988=","translations":{"en":{"changelog":"### Changed\n\n- **BREAKING** The patch era is over: Nextcloud core grants `files_sharing_raw` its root routes since **32.0.7 / 33.0.1**, so the manual `RouteParser.php` patch is no longer needed nor supported. On older cores the app keeps working with the longer `/apps/files_sharing_raw/…` fallback URLs, and a setup check reports when the root aliases are inactive.\n- The supported range is now Nextcloud 32–35 on PHP 8.1–8.5.\n- Internal modernization: the build moved to [ncmake](https://github.com/ernolf/ncmake), the licensing is REUSE compliant, and every change now passes CI gates (php-lint, coding standard, psalm, eslint, stylelint, phpunit, vitest) backed by first unit test suites.\n\n### Fixed\n\n- The CSP save button in the Files sidebar is no longer squeezed to an unreadable width.\n- The \"Enable raw link\" toggle icon now matches the size of the native share toggles.\n- The share-update listener was registered for an event that does not exist in OCP and never fired; the dead code was removed.\n\n### Removed\n\n- `patch-route-parser.sh` and the AIO patch guide (`Readme-aio.md`) — obsolete since the core ships the root route grant.\n\n[0.6.0]: https://github.com/ernolf/files_sharing_raw/releases/tag/v0.6.0"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Raw Fileserver","summary":"Serves files \"raw\" on the World Wide Web","description":"Raw Fileserver (**`files_sharing_raw`**) serves files **as-is** so you can link directly to the file itself (i.e. without any of Nextcloud's UI). This makes it easy to host static web pages, RSS feeds, images, or other assets and embed/link them elsewhere.\n\n## Design goals\n\n* **Minimal**: deliver bytes, not UI.\n* **Fast**: keep server work low (good for assets).\n* **Quiet failures**: plain 404 Not found (text/plain) for invalid/missing public shares (no Nextcloud HTML error pages), ideal for asset fetches.\n* **Privacy-friendly**: **cookie-free responses** (best effort).\n* **Allowlist-gated:** public raw access is opt-in — only explicitly enabled public share tokens are served.\n* **Secure by default**: strict CSP with optional per-scope overrides. *)\n* **Streaming by default**: for normal `GET` (`200`) responses, the body is streamed whenever possible instead of loading the entire file into memory.\n\n*) For security and privacy, the content is served with a configurable [Content-Security-Policy][] (CSP) header, allowing different policies per share token, path, file extension, or MIME type (with a safe hardcoded fallback).\n\n[Content-Security-Policy]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy\n\n## Usage\n\nThe common usage is to first share a file and enable public access through a link. In the Advanced settings of this share (in the right sidebar), the Raw link must be enabled. If the share link is `https://my-nextcloud/s/aBc123DeF456xyZ`, then this app will provide access to the raw file at `https://my-nextcloud/raw/aBc123DeF456xyZ`. If the share is a folder, the files within it are accessible as e.g. `https://my-nextcloud/raw/aBc123DeF456xyZ/path/to/file`.\n\nA user can also access their own private files. For example, a file named `test.html` in anansi's Documents folder would be available at `https://my-nextcloud/raw/u/anansi/Documents/test.html`."}},"isFeatured":false,"authors":[{"name":"[ernolf] - Raphael Gradenwitz","mail":"raphael.gradenwitz@googlemail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhMAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzAzMDgxMDM5WhcNMzYwNjA4MDgxMDM5WjAcMRowGAYD\nVQQDDBFmaWxlc19zaGFyaW5nX3JhdzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAJ9xzncYWefoqk4VmoKM8oiyr6ILqMizV8HwShbm73f5n1xGiTtFMkYb\nU+vyqKA7Ckyt9PcbHphVWWFpZEwJuK/l7KqYeoFV5KiMomyXbkA5tkoOyz1MZveZ\nt+YzgcL7+oEFAkjcUf+L+jU0DVVnkI7VDxwJfPgZmBIkCByyOfOCLJ1r8sBgOCI6\nRTqajwnSOIh3UgDdC1bt8tQAYbJzOmxKpIFXJdyXH6ol1OXGdjbbUPHd0krESUAd\nW3jlhKDrMNLu4YBzsuNN/FT4mKCEsiNd2qXfRRxNIFgITq5eWqqqfE5tM8FL7WNT\nxy1gtlmZsaV2SXIddRKeWc09Ly6E9KhDOEPuUfkvRt61XbHuGDgonfZfUn/AuvT9\nT/2B9Wujv/vlbH79tLV3K7f8Opcb5CmzbTPpOAG3TmfyFTcyhnPTqrb3Y3sWAl1o\nHm/iCvI9wTFeO0D/a7fTluEhcC3fFprnYWFN+XMqqV5EfxTTloEhAWIhbqDEFcPo\n/RbExB6uCcCCX8bWKp4n6012WTSawSAVwBi6hy8+wQlSIbtw3gWRbvMeCQxoePCt\nNp9GKkb5UKaEFGTIMMNrnTqlFAEk33HymTeIzvERPrzwr2KHkKjNG8hOAFptYadz\nD/N6E3mt402EFe4buBwXHjjSQxig787hfdffwYE7OUHYSVzuI78hAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBADH8JwKxF3DcmzF6BwNxS9/jJJrV3X8CfePPH/qxIRhl\nLtIimc0/tTAqGEYH86iPP022HDTeZCUC7p5hrU2N9QN6sabPSEiU6w48BVv+XC0i\nh39K66gelm9HS7e+gOEVLM1YNVAKwxhKgiYoEkafe+FOPb87FIshOZiirunkuyoL\nhnZmtTsEPP6yaQ2XCB9c/Ipmb3x5HkZuco0ONBo8eqZm/QBjYszLUY0Notx1zzUA\nD/U0qO5svzPwneZVKYshte0l4Fc+gNGUiBynfJ5AUvCKeS0UCqiyheSRs9kG+/+6\nKnBAhKP1yXLE7Fr+f5TXtC4KjjMj7GYbtL+Bl9wwC4o=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tutamail","categories":["office","organization","security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/tutao/tutanota/issues","website":"","created":"2026-09-29T16:31:46.198460Z","lastModified":"2026-10-06T15:18:17.101318Z","releases":[{"version":"1.2.3612610060","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/tutao/tutanota/releases/download/tutamail-nextcloud-release-1.2.3612610060/tutamail.tar.gz","created":"2026-10-06T15:18:17.060794Z","licenses":["GPL-3.0-or-later"],"lastModified":"2026-10-06T15:18:17.134966Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"ARXrMh1JctFloKlvj19OKzWvFaIQNRoE91P5nUXo0ElKezZvRCzG48Vxd9XtJBNVJJyp35PFKOZjHwYOAY9tyBTz+K0xfj6qukUgxmjCTBTtZn6IG02xxalRYBG4LoerN0GH+1SFI9W4n1fw/xTonluIVXLWarX9J0FGKwd2OI96nRHDH9hX/0VXJyyEE/dLrsfbiJTPkA2j1Meii5zuRVWJ+yZr5To6wfpz6ZxqD4oZ4YYCzJc/EjnMI4oqA4Ptc9TN6rBbCNbeFMhCjxNjrdh/vKMjhOxYRYVR49j1tXrSNFhKyJ5sRz6AEHdlZHX0FHroRVqQx/AaTzNHOSqAq/L7WGAJPmOZLozEePquUvlOCbulysgU9plYTK4k5cWpVvCkAgVVDGN7xAOwZKDpO9jRXW/iRUWfQkykbFSw3Y3eC7NNdmb1I/pcs2FJH5CxeeUHGoimkpyGyPyzM2WfVIpCSHxNzfh9GLy5UIwEUjYJiyXzgXIR6YUTW7nzipY9SDvwushlxCYXZKGnhVwz3HPA5wbJohu6zFtXwCk6w/8sp2m7BifgNBh2v6rb5ZY6z+bhXbiAb2qXSyBkZKouXmD6pwDTlYuOuudXrs5v3KRpIJsTEehbQDDI0hZk7SlhHOSXlhEblG6lVYPk9qDkRNPjm+6ev9GEyZC0ct7sUEM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.3612609290","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/tutao/tutanota/releases/download/tutamail-nextcloud-release-1.1.3612609290/tutamail.tar.gz","created":"2026-09-30T16:11:56.843519Z","licenses":["GPL-3.0-or-later"],"lastModified":"2026-09-30T16:11:56.905745Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"VUn1xz6/mwYLgFItQA6RSiEWpBDObcHywg7lOU3L5acMOEALnYmoIV1D7vRsH5cZ\n/oAUToWkcYmxYT5B+dilY0CuDCUp7p2F/LFrc/kUyNuIctzaXYMntAnwyrcBtFEy\nhd4TnYCgp3typhrkokeBhBua4/m5CqucocDsZWyHn30F1YXEeLZISJdkfhZ2Ds/7\n7DeaANDiEKYARQTZfEWnskPBXlvH73Ypojj1Q0zTN8tHJZumtmwyBCFC/4R3qi6j\nTs+1DiCC7k3c+g50dmQCTyUyUoOoFsJUGOuCEDnOjmoG/dOZTZvszrH0ROabg+f1\nTGgY4Ge0jWLAmo/zEZmh8IPA1oTcfnPMIMzsCJQHqZufGM4MVmdQedXblxol+w/8\nZoYIp/3QdFkbmS74pwBBIEivRl3DSPu+gAznNb+JMft3WJjAP7GAPrEjDTXV5n3/\nlwXe5xHuPT9xeSs7pjrweKHWgmudVRSQ2Jo0okwQEJjJR3NZezWOaPIcXv2dMh00\nLSWAenHw0botXKDDrb5kGIsgeQrEEOzIzmXBcpEquASx6jj4VT9kAAep1zyUEXY0\nCudCqj7GDDdK2VoBECGFf7au2VT5KKvMvxhGoxHgN4iAcNg7aOAHJBRfp9F30vJp\n041hhOoijFRXhkBsaphOF4Cyo/vvvQLmFmPFeKz6GpI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.3612609290","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/tutao/tutanota/releases/download/tutamail-nextcloud-release-1.0.3612609290/tutamail.tar.gz","created":"2026-09-30T09:43:53.733322Z","licenses":["GPL-3.0-or-later"],"lastModified":"2026-09-30T09:43:53.815149Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"VeNXYQRg1TarC/cquICKqAiQdskPobW4KNL85UEXju+c7fCJEg/35Our5oybesFYyeQuqcKaLMwFOC9ZNhn//6KPb57dQ/pWnYGl3iipfHMoCZktsNEaw0pGOdvRmnOALZXK87I+/8d9A59yOXnYqTwuyNpuYXeqd107h9JZZCSaH3PU5d9X4FAVBAoOVGs4fBbnDZVP7Cpl+LU+/VHtz5QloRxOtGCAIxwYheNko/RYFBrpLb5WVEJDNyKaDfTLJL9mH5kBbBURQGvZFWY2FJPoTEbvg0Kc4q0BvGhvGXYibzgB2P0Qt7g8aeDklQ8yIr5e8yugdy0ezEaywDvNbr0XepcOFOtyyvRvO+TVYUMpCjaLLFwN4kzNSoTkA3eZD2fK0Sp9j+oEX8ZZPwtKX+mrU/Uxb89TyGjfZi8RZgQ2idI3vd4xCJJ4BRAxES8adh0ULz7w0iZM+RSVtZ4dgb8Ap/okx8/6xsU5Pujn86e6iSUtfDS7NeLEQ4YMcGi6XlTpM+9sDlZWNHmqNFiv1C619KHJ8uM7O8XFN2cdqJnTz2Y5oPuCEcw7gwGnDB0PQGqyiL31vFnjfLhj5MjGSVlyP3LM3ZbwFGwSrowscrjr9xqXh4ofEgB8u7hsJR5p+p8xpd5ELDlEhyoJXHe8Tzye5aO1siqjxYlqNMu9lVE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0-tuta.361.260929.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/tutao/tutanota/releases/download/tutamail-nextcloud-release-1.0.0-tuta.361.260929.0/tutamail.tar.gz","created":"2026-09-29T16:34:13.982204Z","licenses":["GPL-3.0-or-later"],"lastModified":"2026-09-30T07:38:12.484396Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"PrfFBj5nELL6EnQh6ffZUZAac5hpJRzohUc/Ks4NZKg/U99daCFXFlo154apFPjp\n1sIphT53bJXCxpE+egeFpD+RUeu9s9JmmPUXT64Lp12YNLgQqJBt5aLgKr3Ld4yW\ndUAmbK2A/ZrlyQs0ZYqZYgvT5vOXWxjKZ9czmib34U9du5td4G9B89dNmqalCmrV\nqWOpIbHO9zsJJ4s6EqYLwLT7bGGxThIUMA335veT4qC47MCn3qFVX8KkPoRQ0dkW\nkafc+dHo5yjsJjdYSE3SJq9h1f9WzTJWsFm0VQYbj2WFLZqU4a9v2bxtK8026tjG\n61soIOtbegZTnr536eqvrfEIC0L5IXemoBR48JiI95wc1evHoOJRFtPJD+4YQdVS\ncDyq3fh24nBzcsTZpUswxf9LZ+tI8PHVNEGtfurnBq6n//wwnuStWeXfjnCWgXHV\nwJt+n+fK+3G9EBTo8eLSfFAyGDiWzubOOzo037LTrWxD+7cE/NheLGeNoe9YkRCO\nWVfnq09KZzL9zTQh9QZmMfjlm1f9DxJ1v+pHkIiVqvxW0AmPHWRy0O/LLlaSv/oW\nx3ExPdE22+JNmqPNGb/GTVlF3Yei0li4meO6TH3YlR3s286AHETqtGaEDhKv0Ta1\nL3hrX6vlxKbRx++RmLyZLjuZ4G4PhDHzR+c4qX4/Duo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3R1dGFvL3R1dGFub3RhL3JlZnMvaGVhZHMvbWFzdGVyL2ludGVncmF0aW9ucy9uZXh0Y2xvdWQvdHV0YW1haWwvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC0xLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3R1dGFvL3R1dGFub3RhL3JlZnMvaGVhZHMvbWFzdGVyL2ludGVncmF0aW9ucy9uZXh0Y2xvdWQvdHV0YW1haWwvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC0yLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly90dXRhLmNvbS9hc3NldHMvZGVza3RvcC1jYWxlbmRhci1pbnRlZ3JhdGVkLXNjcmVlbi54eXFtOFJfZl9aMWhFa1FHLndlYnA=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Tuta Mail","summary":"Tuta Mail for Nextcloud","description":"Seamless integration of Tuta Mail into Nextcloud."}},"isFeatured":false,"authors":[{"name":"Tutao GmbH","mail":"nextcloud@tutao.de","homepage":"https://tuta.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhMRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzE2MTUyODEzWhcNMzYwNjIxMTUyODEzWjATMREwDwYD\nVQQDDAh0dXRhbWFpbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMkp\nX6NgIkfm3qWJzkL0OT0XaFLzuEtr/LGgn5P320eoYwMf9fhth8sNnF/D+Mf8uh12\nQ3WNQ25bBioqpHOzzZ5aT7ERUkNIwAok3Ru38v2wY48fUuD2CfNelszK+kqM0ewW\nk62gncLZkQvd/R/lT6KUfLB2BCe6TYczU4CPBvaWhfhRu2mFBfGCMku4txFWTD3q\nSBIhsgQllo6DfyOM7MwGDFXZRdgsazsqpaaNxe/W1Vmnu4UltirtEcoeIH8tqTWO\nAcwa2HNOM+xrliZZzrVAv8vIG1lviBxED7ntWdtHOAysF91x4U8LlfI6d1wJ5bFA\nPliVR06eqy3P5ugy/D3ievaB/4gxVv7eN2tGQ97EItiEKwJvZ5yadlS8gxsnbUjE\n0k+7i9AET1L9p66+uW/e78osxbaWAFUqES7HRlkKYSjaRHqN/t0bDmhAecClvvwq\ndCV4U5zKk58tsFICXP2+FJe/rvgVvj+arvoq/KCEVwK6RmqfOwexDqp/3ZLBMaoC\nj+sq1T0zLcTScGY03f7OxDLAPRFZoKpATBsApS1VDZ+RqpUPFymn53ITzyqT5NAY\n/h6/aLZxeTiwT786cKIPae05EEHmolWhyCRZH7BQ4Pc7FdNPk6ER+fejSnVyGBBZ\nOF+WG3ArWS3ymbqEGBhq+EBsPdIjA5Oa09DW5YEtAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEFmUxwmQ+wN8yZ9+Gx7Ct4Jq9B6I/5GEW+NQiPGl8irgEcmHh8zohrl\nT6SHo8exUlsJ36Fu5EzucaXcA/CupVS7a5SYmiz7jPAQNkjgD+KXJo2Ndt10ALfN\nTks9JY8kr6bB1uX/U99lFiozHJrN8DiL8jqKchSfGsHKQwn+DKfTDpDPey1jpsXN\nXKqL+ybXP7XBqrRbAsI1Jrnjn7b7ZAQmdxRBUNSaHT/0uFO006AVpiExwsdxbDOn\nQtRAHVw3s/xYJynxo7nyrElYDcNDTM/AbhML+vjJ3u6KDqwm/4rmcqP2P+u5s1+X\n9FqVig2q53x2hg6vq1GLUOFVkE7P+8k=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_openai","categories":["ai","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_openai","issueTracker":"https://github.com/nextcloud/integration_openai/issues","website":"https://github.com/nextcloud/integration_openai","created":"2023-02-07T00:02:04.311790Z","lastModified":"2026-07-27T17:00:32.375629Z","releases":[{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_openai/releases/download/v5.0.0/integration_openai-v5.0.0.tar.gz","created":"2026-07-27T17:00:32.363572Z","licenses":["agpl"],"lastModified":"2026-07-27T17:00:32.408548Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"hxMww/08FtQSAwaJT7k0J1fStC4hq7zmXaAXrX/f1PT7ybXu3Utl4zGqcjo4S90LMLgXEwn7Yas6MyjNy8fmOoIPm6STKj3K0ORVJ8RE1zGkVT+ZtqL67adHelnCEUtxkYBFfuODIkvdwWiRRKPAqMCq11jIACe83gTtsk0QRppJZ1LMS6blFEH9G8eW4qOn4Vzbf3Nnq4lK5/7uGRZYuwrcf6dFRXEx85vfR6SeAqRrQ5BGvjmr3GzvTWsaSySHjM7HVDXf82FEHhcoHAe2za0qfvYB/PGxiSKi2HoOqBKZePdbhzQ43tFTy+pSEmOo6w9318YV4v6o87RpDear9YjlpJ0Qrsyw5kymR0U+ZAP/c9+0H8nqe36413siiiu8ssJYgKMErvjfgGGBoNvLNF2mjbB/F5jmgc/2XfpOlYbOPNRRWLDlWjJWdPAZ95UeMyWWNYACPuym4aKNpizpys4jpOZwW/OKxEgh33hQJDoYAR52dmk+XpqUhLjgHmdZvqpLWvWmezpGECkgDKg7f/672SNo2iN5xovAiHSqfFjdpz/OJZ0m/gzGI0cEY4tx7klHtFx/V4witxqo573G4MQ5aRnoUkcRboY11dE/2dhTNjsJa3bnkqGm7yan+MaVGc6LCbc6Cy39TF7pLZXSVHoa0o7q9TYr7+gmDHfRnOU=","translations":{"en":{"changelog":"### Breaking changes\n\n- Bump Nextcloud min and max version to 35 (drops support for Nextcloud 33 and 34) @lukasdotcom [#412](https://github.com/nextcloud/integration_openai/pull/412)\n\n### Added\n\n- Add streaming support @julien-nc [#366](https://github.com/nextcloud/integration_openai/pull/366)\n- Add audio translation task type and provider @julien-nc [#335](https://github.com/nextcloud/integration_openai/pull/335)\n- Stream reasoning content in all providers that support streaming @julien-nc [#385](https://github.com/nextcloud/integration_openai/pull/385)\n- Implement generate subtitles provider @edward-ly [#381](https://github.com/nextcloud/integration_openai/pull/381)\n- Add complexity and length as optional input for summary @lukasdotcom [#387](https://github.com/nextcloud/integration_openai/pull/387)\n- Improve change tone task type with more options @lukasdotcom [#388](https://github.com/nextcloud/integration_openai/pull/388)\n- Add strictness levels to proofread @lukasdotcom [#389](https://github.com/nextcloud/integration_openai/pull/389)\n- Implement TextToTextImprove task type @lukasdotcom [#392](https://github.com/nextcloud/integration_openai/pull/392)\n- Add MultimodalChatWithToolsProvider @lukasdotcom [#400](https://github.com/nextcloud/integration_openai/pull/400)\n- Support OCR for images using LLM @lukasdotcom [#374](https://github.com/nextcloud/integration_openai/pull/374)\n\n### Changed\n\n- Update dependencies and workflows @lukasdotcom [#412](https://github.com/nextcloud/integration_openai/pull/412)\n- Remove redundant fallback task types @lukasdotcom [#375](https://github.com/nextcloud/integration_openai/pull/375)\n- Improve context for i18n for AudioToAudioTranslateTaskType @lukasdotcom [#384](https://github.com/nextcloud/integration_openai/pull/384)\n- Stop processing when a task is cancelled @julien-nc [#386](https://github.com/nextcloud/integration_openai/pull/386)\n- Use the AudioToAudioTranslate server task type @julien-nc [#390](https://github.com/nextcloud/integration_openai/pull/390)\n- Clamp audio duration for quota @lukasdotcom [#395](https://github.com/nextcloud/integration_openai/pull/395)\n\n### Fixed\n\n- Throw UserFacingProcessingException if service is not responding properly @marcelklehr [#380](https://github.com/nextcloud/integration_openai/pull/380)\n- Bubble up more errors to the users @marcelklehr [#383](https://github.com/nextcloud/integration_openai/pull/383)\n- Fix on some instances EntityType not being found @lukasdotcom [#393](https://github.com/nextcloud/integration_openai/pull/393)\n- Allow compatible video MIME types for AudioToTextSubtitlesProvider when using OpenAI @edward-ly [#402](https://github.com/nextcloud/integration_openai/pull/402)\n- Fix OpenRouter filtering out non-LLM models by default @lukasdotcom [#404](https://github.com/nextcloud/integration_openai/pull/404)\n- Fix Mistral passing references when tool calls are used @lukasdotcom [#409](https://github.com/nextcloud/integration_openai/pull/409)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuYWkvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuYWkvcmF3L21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuYWkvcmF3L21haW4vaW1nL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuYWkvcmF3L21haW4vaW1nL3NjcmVlbnNob3Q0LmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenAI and LocalAI integration","summary":"Integration of OpenAI and LocalAI services","description":"⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\nThis app implements:\n\n* Text generation providers: Free prompt, Summarize, Headline, Context Write, Chat, and Reformulate (using any available large language model)\n* A Translation provider (using any available language model)\n* A SpeechToText provider (using Whisper)\n* An image generation provider\n\n⚠️ Context Write, Summarize, Headline and Reformulate have mainly been tested with OpenAI.\nThey might work when connecting to other services, without any guarantee.\n\nInstead of connecting to the OpenAI API for these, you can also connect to a self-hosted [LocalAI](https://localai.io) instance or [Ollama](https://ollama.com/) instance\nor to any service that implements an API similar to the OpenAI one, for example:\n[IONOS AI Model Hub](https://docs.ionos.com/cloud/ai/ai-model-hub), [Plusserver](https://www.plusserver.com/en/ai-platform/) or [MistralAI](https://mistral.ai).\n\n⚠️ This app is mainly tested with OpenAI. We do not guarantee it works perfectly\nwith other services that implement OpenAI-compatible APIs with slight differences.\n\n## Improve AI task pickup speed\n\nTo avoid task processing execution delay, setup at 4 background job workers in the main server (where Nextcloud is installed). The setup process is documented here: https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed\n\n## Ethical AI Rating\n### Rating for Text generation using ChatGPT via the OpenAI API: 🔴\n\nNegative:\n* The software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* The trained model is not freely available, so the model can not be run on-premises\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n\n### Rating for Translation using ChatGPT via the OpenAI API: 🔴\n\nNegative:\n* The software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* The trained model is not freely available, so the model can not be run on-premises\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\n### Rating for Image generation using DALL·E via the OpenAI API: 🔴\n\nNegative:\n* The software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* The trained model is not freely available, so the model can not be ran on-premises\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via the OpenAI API: 🟡\n\nPositive:\n* The software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can run on-premise\n\nNegative:\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text-To-Speech via the OpenAI API: 🔴\n\nNegative:\n* The software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* The trained model is not freely available, so the model can not be ran on-premises\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Rating for Text generation via LocalAI: 🟢\n\nPositive:\n* The software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can be ran on-premises\n* The training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n\n### Rating for Image generation using Stable Diffusion via LocalAI : 🟡\n\nPositive:\n* The software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n\n### Rating for Speech-To-Text using Whisper via LocalAI: 🟡\n\nPositive:\n* The software for training and inferencing of this model is open source\n* The trained model is freely available, and thus can be ran on-premises\n\nNegative:\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhH9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMjA0MDM0NDU2WhcNMzMwNTEyMDM0NDU2WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9vcGVuYWkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDHs69Af83IFjhFL5x2cDkmUVaqBbTT8ERVCkbpNNgjgiEUwkqnzzeQ\r\nMXi9P34qUQ3R95zRK4IclrD0AJqKhv89jEC2FjX/oVt2pjVkzttoUlGTW0xnUyIa\r\noiRpArww1xqaeNAHQZB2uGjKYxkr44MYs/ieh8uZG6uvvGZcCTnGUNKzqU1Xn0lx\r\n0g/teeiXiAnBLMJxHMEyFv9w2hymbUfu+Q8xgEHBjX5ATtQgYhdaJ6Lv7KJ10MAs\r\nWw7CsDac4kSYdQq+rlrO+qnk6NAumix5zNzV/MzYBBjARwelIP89zqdI+uNSk3HM\r\n5LKG5mgEzrcCEGIz+fkGkfO9yK6VgNP96hm8BXG8a40QnSQ+Z5m+xnjraLeWDM7q\r\nDkH/T2XXlMZc5WfcvifPjc5YX8it7UCa9jBHYuuXRhKuwF4akJn1bdfXKzqcbz6R\r\nWSPIBk9Aq06YGC6R96zTt8fBG2i3SybMdPHPQCzpnOOna044L65aGHerlvcwlQVa\r\nPsQHnsCftbtOT+5zmouvU3rQk4OhayyVVFJO+y3xu6QYMjwRuwBaY4lDhUFW4njo\r\nJtlJwOOxFku03E2HDtnJaVYEgSO2dOT8calszL7U4GarU/lrozANZs1Ge4D2eQDZ\r\nULr3zP5xWX5GAd9UhU5hL7RutGYyCUeymFiaB3Nb5DXaThwsKR06kQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBLGr8rtLnSmmvUojNDQCgen8XeF+jm30HNqkn9v5er\r\n1BhobKVgFzKzNvOarin6fqIxQiLH7M5iDW0uh5SOoSTJYMSg2XJB54ALCvs1SdxR\r\nrY7ZCVuwIzl57JzncuCRdaDKQM+OTnBhKGD0idsNCbE2E9ep6sOaplPSzsfVqS8Z\r\nUY/Ke2s6/8aQzFulfMT/qrbmhogyq+PoOmX9OAFaSlj5NN2UZQ//0PZ+AlbsLlPH\r\nmAqAaDb9gFnByGB0Skbuj5RaheN+aP9RmzxlVFbq1y636/RE5MK/bU2VOaVuPyWI\r\n3ID8q8yoJY4zSk06qvrPmeoGnJoCaxmlni0j3QC7KqPv\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"verein","categories":["organization","tools"],"userDocs":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung#readme","adminDocs":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung/blob/master/docs/INSTALLATION.md","developerDocs":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung/blob/master/CONTRIBUTING.md","issueTracker":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung/issues","website":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung","created":"2026-10-13T11:46:15.305083Z","lastModified":"2026-10-13T12:02:46.785015Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ghostsailorgit/nextcloud-vereinsverwaltung/releases/download/v1.0.0/verein-v1.0.0.tar.gz","created":"2026-10-13T12:02:46.779119Z","licenses":["agpl"],"lastModified":"2026-10-13T12:02:46.826819Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"cYCfLmC2RL/JjcSj1EebYk0liY0+SLmzfXqA7/8vaxvcIbETetwT4VlNFpB4K6xV\n8RVqqK5mBUZiCb14EWpgtOzAtUI2Ps1kjTudljefXkZWr5vs87mpf1pljsPxrnoOg3FE9FVR+wnmSMovgUNzksYiXoSo1MugkPPSMwYzYN3fnqJOC76TLV9x6okETnQf+IlyyZucv0Q88Yg5wWJMxTj3abct2GSPu+cucdkrjA0wYkeQa3KWW8/0ruA7kwUWxZ6PooptWhJbvVVeVjx0D/bOhZKC/G6TaaBW2Uux8nYLXwTY3FX6vfq6mavdprSxhQYgb9nUbO78pfQ3FxRx+cQuCbJvcnoPfpQCbRB4Frt1ob/MKRVFeWpF13NHYBrOAoJur5DqdnKcwRLBTY3H6KFHK+A9ClrqxFrtTcXSMjEd0NR8ZqN5lAZ4SxFBoOjEP8THS/BIuiJQtT2yEE2IeSD/EvBv4quu5jcmo/wgdNYBDHt5/jAJEf5sMykb4wiYDc39PSpcsu/jZtkxKXcXC2eDpOxiFxLIvTwgE6mcyLl6Ypi9aeFO0Ts4ENpSDUKAwOk4+fj6grFY90udY1ckNQnM3lFG+pfQ2MbPvINKysJ++cVn/W2c4p+BpghMb+zzzP9c4K5Tr2XSnGHLOBhnpLoidBbzIWy+IbDM+9R4B9w=","translations":{"en":{"changelog":"Erste Version für den Nextcloud App Store, funktional wie 0.22.0-beta.\n\n### 🔧 Technik\n- Versionsnummer ohne Beta-Zusatz, damit die App auch Instanzen auf dem stabilen Update-Kanal angeboten wird.\n- Abhängigkeiten im Frontend aktualisiert (`dompurify` 3.4.16, `source-map-js` 1.2.2) nach Hinweisen von `npm audit`.\n\n---"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dob3N0c2FpbG9yZ2l0L25leHRjbG91ZC12ZXJlaW5zdmVyd2FsdHVuZy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy8xLWRhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dob3N0c2FpbG9yZ2l0L25leHRjbG91ZC12ZXJlaW5zdmVyd2FsdHVuZy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy8yLW1lbWJlcnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dob3N0c2FpbG9yZ2l0L25leHRjbG91ZC12ZXJlaW5zdmVyd2FsdHVuZy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy8zLW1lbWJlci1mb3JtLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dob3N0c2FpbG9yZ2l0L25leHRjbG91ZC12ZXJlaW5zdmVyd2FsdHVuZy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy80LWZpbmFuY2VzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dob3N0c2FpbG9yZ2l0L25leHRjbG91ZC12ZXJlaW5zdmVyd2FsdHVuZy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy81LXNlcGEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Club Management","summary":"Members, membership fees and SEPA direct debit for one or several clubs","description":"Manage the members, membership fees and SEPA direct debits of one or several clubs – inside your own Nextcloud, with the data staying on your server.\n\n- **Several clubs in one installation.** A person can belong to several clubs, each with its own date joined, position and SEPA mandate. Each club has its own bank accounts and creditor identifier.\n- **Members:** personal details, position (member, treasurer, board), joined/left, founding member, deceased; CSV import with preview and duplicate check; deactivate instead of delete.\n- **Fees:** fee categories per club (including fee-exempt), an annual fee run with preview (optionally pro rata for new members), unpaid/paid/overdue status and payment reminder letters by email (through the Nextcloud mail server) or as PDF.\n- **SEPA direct debit** (pain.008.001.02) per club and bank account, validated against the official schema; fees are never collected before they are due, and anything that cannot be collected is listed with the reason. Optionally, members get an advance notice of the collection by email.\n- **Permissions per club**, assigned as roles or derived automatically from a member's position via their linked Nextcloud account.\n- **My data:** linked members see (and download) what the club has stored about them.\n- **Club calendar** with birthdays and membership anniversaries, visible only to the Nextcloud groups you choose.\n- **Data protection:** audit log without personal data in plain text, personal data export, anonymization, daily backups with restore.\n\nNo extra PHP extensions, tools or system cron are needed. **Please** check the first SEPA file with your bank's validation tool before the first real collection."},"de":{"name":"Vereinsverwaltung","summary":"Mitglieder, Beiträge und SEPA-Lastschrift für einen oder mehrere Vereine","description":"Mitglieder, Beiträge und SEPA-Lastschriften eines oder mehrerer Vereine verwalten – in der eigenen Nextcloud, die Daten bleiben auf dem eigenen Server.\n\n- **Mehrere Vereine in einer Installation.** Eine Person kann in mehreren Vereinen Mitglied sein, jeweils mit eigenem Eintrittsdatum, eigener Funktion und eigenem SEPA-Mandat. Jeder Verein hat eigene Bankkonten und eine eigene Gläubiger-ID.\n- **Mitglieder:** Stammdaten, Funktion (Mitglied, Kassierer, Vorstand), Ein- und Austritt, Gründungsmitglied, verstorben; CSV-Import mit Vorschau und Dubletten-Prüfung; Deaktivieren statt Löschen.\n- **Beiträge:** Beitragskategorien je Verein (auch beitragsfrei), Beitragslauf mit Vorschau (wahlweise anteilig für neue Mitglieder), Status offen/bezahlt/überfällig und Mahnschreiben per E-Mail (über den Nextcloud-Mailserver) oder als PDF.\n- **SEPA-Lastschrift** (pain.008.001.02) je Verein und Bankkonto, gegen das offizielle Schema geprüft; eingezogen wird nie vor der Fälligkeit, und was sich nicht einziehen lässt, wird mit Grund gemeldet. Auf Wunsch bekommen die Mitglieder eine Vorabankündigung per E-Mail.\n- **Rechte je Verein**, als Rollen vergeben oder automatisch aus der Funktion eines Mitglieds über sein verknüpftes Nextcloud-Konto.\n- **Meine Daten:** Verknüpfte Mitglieder sehen (und laden herunter), was der Verein über sie gespeichert hat.\n- **Vereinskalender** mit Geburtstagen und Vereinsjubiläen, nur für die ausgewählten Nextcloud-Gruppen sichtbar.\n- **Datenschutz:** Änderungsprotokoll ohne personenbezogene Daten im Klartext, Datenauskunft, Anonymisieren, tägliche Sicherung mit Wiederherstellung.\n\nEs werden keine zusätzlichen PHP-Erweiterungen, Programme oder System-Cron benötigt. **Bitte** die erste SEPA-Datei vor dem ersten echten Einzug mit dem Prüfwerkzeug der eigenen Bank kontrollieren."}},"isFeatured":false,"authors":[{"name":"Vereinsverwaltung","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhRkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJIMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBBdXRob3JpdHkwHhcNMjYxMDEyMTI1NDQwWhcNMzcwMTE3MTI1NDQwWjARMQ8wDQYDVQQDDAZ2ZXJlaW4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDpCPK7naOVqf5UUHjU6rm5P6zk2CjuTa63JcdLeJj3UN4OUaJjfaUMx/uzZhGaDIrqxYAM9479yOIIltWVH2fY248QASWrwvE30wom9822ztHtHq42ywcAIS1xthS72tiuyxGrbzog81wcKzA7/DCTUYaAzC6HE8b1U5qYbTQVldJcD5OfKI1uI0FMZyULZin1Ygons83U1r8OTdeN5rz6CG0tAMAp9Upwc3LZbRN0jlmoVnEMikbxZKl6DTO6TJ37OW2UkUq1Rc5uttFelFpEtMEP6XGSL0tKaLBELhJoJpm0gfe65Zwp5xOFg76dXErM38O2DzNujaWLbSUOslxp9krRCc/WKDyKETTEnZnQV9FUAtNC7AnSycy9OzhJa+QE5bBSN+5JbR/C0rj4232Y2lRTCg9Uyh4zADCgSL5G/EV0X5NOvRp1sF+pI2orjrupk4lfnDAP1CG3TyJBmZxl067LV/98KBfXfaXUaYxhY/j8zsdZ+PjFTPlLfiVG9BrNVCKEu1Usg6Tukl2jOsoXV2TFBO9Hs9TU+Fww8CwbwuDML9apfv8XtOF0xH8vLkAllqaYZc4Rkb6dniAB9zpLwi7wigQB1t1aOdAo2ssEjGhw3Mm6KhEBeC4zda39xBKBQHdH8+HrPmYHiOztnR2CThFuOmIfb0m3QiVfWVlO2QIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBB/itlGYvqKhLk/tO8I/4qvnRvBuMNZSQ0mNTpOWPmFYeklTIiDANi/yOuzKaN/qBHhYe57htPe/FmMfKHmCACFlO42Gwf5K+OJOyfHgkfji4uQytvEVEOiVSIduj4+vaWK0x3xFl4THhWK3pQ8fDAwgCooBDOOx3AEt1kwhq6bqpxGnmJfGpT1HL7alvPixZO1Xg3VJ4Yj2udqJ7FfqZlqtEto9thhA6+ZAPDNSznAdM49fjRn4zY7ywWUN6XfogstPjvTv+wc0wNhnobOp6CcT2z5V5NMhoN+i4irqDEkglVkcWRJTKDpZpEQ5vOQXLgCYhBCnZQ2NccOE6hKPkO\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_reddit","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_reddit/wikis","issueTracker":"https://github.com/nextcloud/integration_reddit/issues","website":"https://github.com/nextcloud/integration_reddit","created":"2020-09-02T09:40:14.030796Z","lastModified":"2026-09-29T19:12:20.900659Z","releases":[{"version":"2.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_reddit/releases/download/v2.4.0/integration_reddit-v2.4.0.tar.gz","created":"2026-09-29T19:12:20.892158Z","licenses":["agpl"],"lastModified":"2026-09-29T19:12:20.930445Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=36","signature":"rtLtlaH2nSE2LYSZjNuo0qN+mHK/dxIcB1eniZRNEjV8qvN5iMbNYGx4bpGAUI4pVw1Q/D47m0Ev7nir4Qs/p0G5SEdrYDphPqjRMzvBpGVLuidFfc4W85uAp1ocnbvApSLcwDt1gJ7tl9TBi8+A3/x5Kg+BpTOpgZs7HlPv/TR54pTEyCkNVAzwRvVaO5k4BmAxF9C8w/7uFYwW1ShGEFInlNmOv8cEDnz+DXC+Z41/PnK+oRKRSrk7APdL5x4/ua3n3ZEHHuvB+8EGsw/CmPlFOt7xJyeqNStb/zxeB2WjmfNeCwSp6hEZCIa6tp+6c4fquAOUW1w9aFJcf9xNWGWlVNbuyV2rsm07YnxD3GPlD6BsCSS39zO4TitGbC/Z55Kwpr5xbUcCEJYQrjYxvF9vmU66MkOrpnE0N+xDlww9S8aOieAQXSofW8PgGEXsFrWO1MsqXSJ6bOFsLxe3/ebDD6MD2seBxtN6XTp93nMg7qZE9b1UedULPeKSg61/tP+eogMAzAmjdQncQ0v6fdljnhBMWHcLPTXUov+/NumhANSuwGJ95/DaUaD+cBfznjzgTBJGbv68fAgv3hKuLwzyloMeEg53HnTKyVhpmJ784JOxKa5Wpb3XUHhoGwomBDZqxlefGIVeVG7SosTttsn5V1iXeuYptSW+rQQMbFI=","translations":{"en":{"changelog":"### Changed\n- added support of NC36\n- update Psalm and @nextcloud/eslint-config, and sync the lint workflows\n- bump dependencies\n\n### Fixed\n- show the content of the dashboard widget again, it stayed empty because of an error when loading\n- name the link under a full dashboard widget after the widget again, it read \"More items …\""}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_reddit/releases/download/v2.3.0/integration_reddit-v2.3.0.tar.gz","created":"2026-07-27T08:40:02.966285Z","licenses":["agpl"],"lastModified":"2026-07-27T08:40:03.062213Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"B6Z6Ze6beOoVwjd3rrazYYWiP22rx3bBpFnd0OJoBbMiTeTlTIIxnuwOUaACBwpeDlJwijECbVZh9UUjOFYBFZ/QPDqR377vWGaF/2ko4+wPjbaQJAFDB5DTwjED/uLu8wXlmep43kFHZmACN3RO905f3CFfc/9kSspPI1IXb2DEi1fAY0JDe/wZK0QkbymGyJbjCEJ9OVrZNrY+oB3rFfmtZRLFulu61m2ose/8w9kon6OD4k3edk4CDBhKIaC4cqTPIghF0ERCj4aaeIOxzAzKO51euMiTyKi40oJwa/Q4Qxlip09ko5HoaAEBm3ItCg1eYGAWH5t6HrUKEFYtEBID9TomSA7wLFdDCdEXCt4Ea4NnX2P8gjRLX6d9Xptth0WweA7ccgb6KtpFyQUfelj+b6U2/u22cpNB8YrgxtlDKa65udZ0jEz+/A/toJ6497Pyk5Fkb7Xh9dilFUS6cY2IkFaMnTvqsL/JabUVI28wUjqXV+/yA27gyfZCmYpXYESj11+YjgxkaJhtoWG7onOLWdxNuW4KSMTkOkumWDofgEoW/VuY1ZxjtpJTlDhbz/9aG2y0MlXHVQn2HoY/J6t/HaOoUprkF50s91VNQQTgrM+g7XVBoKqW+gd+wfCcg+A7nlG1ST+nnO9em/uzOaR47uwMy/8+mFp2X70R5gg=","translations":{"en":{"changelog":"### Changed\n- added support of NC35\n- bump dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9yZWRkaXQvcmF3L21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Reddit integration","summary":"Integration of Reddit social news aggregation service","description":"Reddit integration provides a dashboard widget displaying your recent subscribed news."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhF0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyODQwWhcNMzEwNTI0MTkyODQwWjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9yZWRkaXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQC2qIUvLnepl6HHD0yB2v738k7onWnC/TWrcBxoKwE6VL057BK4GtK5\r\nKLBsNPlYHyrqh/t3y/uPkKi38uqvNwIKAgnqup9MgEo2J1YVmcSLb78Nj1jpwl3n\r\nQR97GeaqAfjHDvhnd3G3uGl/U1wxaKtRBJtblACaRflSU7Xg9qTGyR8LUo0QNl8+\r\njkGewzk/CIOV7CcYjTRgkxyU8dx9aZiJX7N7Tbr8DGVYvIr0CUTd/LQlNtVbHlLz\r\nNg7biKri/61YSVo11ya16q9zqSDC1/hZzMBBJZ/sFilKXHHNX2bTcjl7ZSwnhlJ/\r\nHrX5AvkEd9lFdXNN0X1R6SDCnYt1+IKzLwjuhCJ8J4anp77Udqn59mICV95DI9wh\r\napZfMPfmpdHCDTuHm30G8cfV5fj2RuSLiLnvEI/jS84Uv9rOYu3dUX1mxJf01OhM\r\ngjVQtWmTw4V3oLUywfQaUUJHgl8pRacNflhntbYT34BhCJbjhvucJAI1qAVTpOS1\r\nLzTyu6WnAoobWuS4XELvmny+CuwK0GH4FIcb6WXV9ZVcar7QfafWIwM5rrwycYev\r\nHmz8I+reU4Go32SW3gF3Z4yv2krTQaq9YuoFac3SEuUWEWYrFyYH0ICwFfGkMewk\r\ngAwI/TuKmr+7654dSiBw8nTwueTDwUD7D5VpxpcKyIOYTeCNmj54owIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBWPp1uMLsThZZQcs+kh1BWg5jU5uxVb/GTE/mH5C7C\r\nob20/PDSLRdXE9ffzT9dsa/JyZx728WNzIlLQ+q6mO9jwhhowGgPtDZ5YNMYXULZ\r\n9Ul6TN17LYybFFdlnapSLMGCmsHU8JWecvHmbygpFuMsqUESDHlmKNuwSUa24RCu\r\nQxlwBdSkrZQoKUk67TzEhUiv1t56TPE75B8bbIbFR1xbXcNp30hodC+GeP9AIV3A\r\nxRmcfJeTA977UojgxuOh6T2cakk0bZeiQoZyBqZ7xpRe3NUtG7qLXVToq9ikHCzH\r\ncsrZE/LSKUMcylaqUjWuB7TQvGrnwmfkUHVbTmFSxA6Q\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"analytics_sourcepack","categories":["office"],"userDocs":"https://github.com/Rello/analytics_sourcepack","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Rello/analytics_sourcepack/issues","website":"https://github.com/Rello/analytics_sourcepack","created":"2023-09-22T12:28:30.445527Z","lastModified":"2026-06-12T11:52:19.333337Z","releases":[{"version":"0.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics_sourcepack/releases/download/0.0.5/analytics_sourcepack.tar.gz","created":"2026-06-12T11:52:19.321826Z","licenses":["agpl"],"lastModified":"2026-06-12T11:52:19.385747Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"N+PaDQCOGxWbi72prc0hmIyIShIV/g8xs2KNa9d2LPJecB9SLdF+mbz2Ocm2sIOUHwUsxEDqFv6uNTyjvxxcX/ad5AZiJOI4/Dx6Gu5q4pvx3/HuK1IoLlo8GracuP3dvjYHtOOuHbWEC1NeUjfttblgfO5VcDYAS/DvRHr6gSQXdFwcJJctPFseG1lDE0V9pTTi2WodubSAR8cS3/xukrqFha2XbrzYzlbP5uR/jStbRcf21spPF/yw9zAkIsbqGG79gSkzumIZQ5o0bdDdRMx3Iq80bsYnXC7FlF7FY1aQ3Vg7i5k8iFD4V1HUpr4l9QPLUrOkxqgbaTsZmdCA8DQ4XaYXFSZ1VpIVL5+g66btHVTuTjb6kBOepnlBQAHxMVekUegRUWedZep7llrOAfMMoFUGe6YpjNlXDjGKIlE0zDJBz7nFCDAdlJ6O6zO28nVQl8DbomwnR+BWT0xpxAwugm/FNAUVlcRsi0xgjPonZSlvDetHzdTonVYS0JA82TINr0mxlQwRvmabxF7ppZBfWQtzphDWZVRSe2l2M6QfQwky6HRvFpJ94gJrqRn+CU4Pp5mebS6tdQ3glM8vWhjVvJXOJnSya/UBedOgFqCVJR2guHqdMrFqsxhJuptEH4KNM0yUVIrVp9Tcvj8HfvyWF7/ltV/tKx/Z2wJdO2U=","translations":{"en":{"changelog":"### Fixed\n- Odoo API change"}},"signatureDigest":"sha512"},{"version":"0.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics_sourcepack/releases/download/0.0.3/analytics_sourcepack-0.0.3.tar.gz","created":"2024-04-14T20:34:02.421797Z","licenses":["agpl"],"lastModified":"2024-04-14T20:34:03.157336Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"OQNQIu38to3mPbbBIML3csFFBVN0JMlQ2PIwHIqGvHQZaiW3ORuIzx+GmAPw4O9f5pLoVUv4c9ktf9b9x/TB9v/pMVoIxMlqXHIlQg3a4nc/ALiypn5fgUWe414vB9TEon4MELh9y7gfCzcgpH4M/z/FhlEzMUZSsfDkOAT8rKOIcpdjH/57szquAMebUYR2odp9s+qD3j2ZOcr7yA5ZtbpGziNrqw4klFEItKjK5fyd9F2/GkuIyJTQfoareJux+9cUzQVT8NTuHUoUQMx5nw7y3S3TGD/Wc6pmsQRMrEH7odzLYSdzo2ZKyUJEXE8PV9gWnwrGdl7v8RlqXN583bjUcUOiJT2paw9jVaiNIFsHiXXXB9tg5fMsp3NpN0fh5UQYSCwzljQWmcSW6/L+sNcDMrf47pKKNsMnkCvzzWlU0+ooEsx+OETPbyfL2ychgBt4qRvW+kKmbTQBy9oy6mjRqOabJa0yKQ3HyjM5+xibJDHG2OzbKF8sf9K2uklbGCd6iBgyvh//U0Ju2RDVfpK2X26m7XxhM5nogZopFMTB+ac+Vkr4Zmh+ClIQEvdvn4dZ4dpIeXeT5Rb1EFHz/6XZtk8IryhmQogPRX4dvb/9xYB3nSmdgPAQoSm9drupmmdmWi71rT7dOW1uwe5trQMJwjHxj7AM20u8tsDsckg=","translations":{"en":{"changelog":"### Added\n- Nextcloud user quota (beta)\n\n### Changed\n- Odoo enhancements"}},"signatureDigest":"sha512"},{"version":"0.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics_sourcepack/releases/download/0.0.2/analytics_sourcepack-0.0.2.tar.gz","created":"2023-09-22T12:32:11.252597Z","licenses":["agpl"],"lastModified":"2023-09-22T12:32:11.415393Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"lXhO2ZNtjkYbUDYLzfgwVheX3OP00WipJ4b38BdzxhyGU/mlF9Kl0r2tCoNBOQwHf13V4hfmSV5zFMIxQdPDiAdkN6VoNXX0XriVh2GQspDn5ryEyvAIq+Scu4vgD2E9bi+eshJpLDce/Pr7pprOKjxF5GibiGae6/JYwHjWNa73+xFE3+AazFJ5iGTV6FcNQylC7ERfmZI5hgCNFlARUcbp9JDWpCbP8+IZM3HAatUGHZMCIqdMm6t4JtsMg9BzziHcrRTmGVEi6kKQYMcJ4eDNZsVlCc5G9iSbEZc9cjEXwVoHDW5jFK2/+KtzQKklATIBfppeEKK+zv/O4clX5uUXM3fWZBRFdShq5OhXtbOgE8BtJmI9sbhvU+iH8tmr0wLkNDzgBE/3mHT0MWkgbhQTzbH8RifxqSeNkI1Rys15VNlteKoGRToDryliC8u7h77684KvXGwL+bpd2Kv5M9CTkL581v8vvT3d/yUfimZ8ok1M0VkFEELP5+Z8NPvGnaWvXR8frk02+DF+oGOj0ydXmmhAYtsFWqEi07UZKOPCvWc1q0ruX7nKZiT7kLP4tjuSqp7rqxsM6bV1GZjjyqeiBFCt/U6luLy/Gz7QA9TTfwTgCW2V4msXj+0AtKiLe6CT7sUTLttQoYxY3h8cqfaORslIci0QE2Ony9doFxo=","translations":{"en":{"changelog":"### Added\n- Odoo CRM data source #6\n\n### Fixed\n- Salesforce optimization"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2FuYWx5dGljc19zb3VyY2VwYWNrL21hc3Rlci9zY3JlZW5zaG90cy9sb2dvLnBuZwogICAg","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Analytics - data source collection","summary":"Collection of additional data sources","description":"Additional data sources for the Analytics app\n\n- Salesforce Sales Cloud\n- Odoo CRM\n- Nextcloud user quota (beta)"}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhHEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMzEwMjA0MDI5WhcNMzIwNjE1MjA0MDI5WjAfMR0wGwYD\nVQQDDBRhbmFseXRpY3Nfc291cmNlcGFjazCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAKLzaCTL1OkRKZ8t/KhWLk4hRjDDlzdmj4wwKmvyW8scwZ5AgVw9\nCOITIhXKpHxo1va0bE6+BXvUyLO+fDTwRFstxO1BOIL/8/8V4QDoNWY/8O8V6CcU\nFCRyP0frlhBsjh2E0/TML/oY/e2sfq/D5kUkYNC+JXW/FlCGe/sh52+nhAq/A69c\n1w4cblSS4BKjliw3/YYz2QjO6fydrRUYexfgvZCf0sU6TLAVMWyv8v5zjxYBhG1+\nnDMRQjsCUtXvNua809oLq7FjijAt0NwYWjk1X2CM+HtzBQWaU65MydrqfDs803ZL\nyXu/6q5N4ZH+yCX8gLWaGumzKSTNwNmvqR+X+yUwxQsHPY61Ynm383ZAOWK18ZwZ\ntnYR8hflNQGffAb7zF18yqMQdjoP85OEbV5u7h8jhC+slV4ERvwCxmx9i1EdAI/J\nVMX/6sCQ2aCICJFuhOW8yTtkH+IZbjjxhpXk43mo8t3WyW+9PBtE7OdcIWQ5ZNCl\nXAY7jCnStWRu9hSxExB4RQal3n1Q/PvMmyYqK/58ffK0tTCNXouirlBIvV43oWqJ\nsPmHaCiBf48wQGDMFa+HIxU+lqcdbIAhDNck9N1H86ca8Nsf/XdlIquyPOx8UWun\ndJtQGxDJ7f6X/wmZx9LRKt3MSAXTofRXROscwikXr5to/ffAAFTVFumBAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAJPr7EZ4J1Qfho+uUgyemZ51fzla4LDAoNQiXbQ/\nyN52dk1X80YbPdxtFDv+XHqDejvqoPflmTUI2QT8AkgUcI+24oAzMgnM7Q3OMELs\ngR8iUmksphiaKcrZD/I1g8us8hUOvV2CopxzrCoIrQk9dqwxdnwVc77K0Ja3g/iH\nuurOo6HxCRPw4HNJgOdC0cLmW64S4OQ6x3eHT7QfdzQnpHdeSIv/OK6H6zeuYMzA\nmXzi6Z40qRzDgt2SaFu+9ZpIzyVa8qUfCBwCh8XHoyrULulAh+kyi763kHVLUguP\nWnOLogP/c/1F+IJwTU+eijcT6A8Pt13yg9tdMEPIAeRBNGc=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"olvid","categories":["integration","social"],"userDocs":"https://github.com/olvid-io/Nextcloud-App","adminDocs":"","developerDocs":"https://github.com/olvid-io/Nextcloud-App","issueTracker":"https://github.com/olvid-io/Nextcloud-App/issues","website":"https://olvid.io","created":"2026-06-22T16:05:57.353990Z","lastModified":"2026-08-27T16:31:54.544277Z","releases":[{"version":"0.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.4/olvid-0.0.4.tar.gz","created":"2026-08-27T16:31:54.512312Z","licenses":["agpl"],"lastModified":"2026-08-27T16:31:54.586870Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"J6Exlw+SPDj9vriq6trmRwjSw6QPG81T5FB1EAlVgoanOoG8cdkHJL8qw6Gsw40QdQSdNu47i7WhYRq8VYmJ6V1PAahLz+mh7yAp9ZOqgm9mV4WmvvBM92bLyDbHeTOdcFWRu0NnUcQB4Eb5jMUbXzCl6de//lOzRn/vmutHLUh+BGFFR56KBXuvxPx0cBKSZ/IUO2QhNp9Eyh3kgU+fWqnvyL73uSV2LFiNjfLxNkTWl/IiZkk5nx6xsVnOCba8896VnJ4KC7t5R0Uv1ZQAZSKzaX+CalQQCxu+/8ZqewAeq3pRbySICpZvlMxrvOJDXLfia8lLc8DraK//X9dl0XyulSIh1k6YbsNBraZ8PhlB3YwxHhJ8o5R4HZxWzHehlv1nisv/saVCxctlpoTmGLurr0dY/KnvE+VaiXCN8Gmtz0VZmU2VgjjWc7R8orvB2h5zw+k3UFwM6Bugfc+DSNgxbN0oVV+0PmT8s83c8VtwV+KjqBypFDY36gd6jraQYNFHNBkBoLIQLyqLr/be9pO9RCUHLjqqdKaGZYwkLP/fRW4L263+zR1/0y5OZTtGXdBsxUaI1lexuOmUDULUmDzTeHf03a50DFqVrz6RlaM89xs70l3+GfnU03suAulLE/82j3nMxRYigUywZMVWwJwCynqnRdYeK2VWCOS8F/8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.3-post.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.3-post.1/olvid-0.0.3-post.1.tar.gz","created":"2026-08-27T16:27:28.177331Z","licenses":["agpl"],"lastModified":"2026-08-27T16:27:28.227977Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"npQrlN+snoVByMMHZvAOi8EIyDb20HfkjsJ5nEgMwxWBDQRj8GThErloNwi4qlcwl6KAoYKaKGjj2blK4vGfO+ECzTr9rjwlg4AWecZcEwhYUR0yWB29r2vSoIR+F8zOSwrMusxJqB4AGbQwnsOCbGdBT8PMMpgXBw51q2IsdgderIdlZwVyJq67PeApfXcIhw5mIGUNFQGc4ySJUp/C2l0prwvDAWcaDiDpmWIhbkEIuZ2VPlJmbJAyVTfbeK10dpUrCHQ6oEZNPxQBL3Hnjt9to3fHKR1mhuZ4OwXexYuACdOJlnWxtri0PfusQYbziTKCR3cW6kFdWXrWNfMDnOWF1gIf16gP8wYkaHPM1MkTb0W5vK8uevTgofcCMl9ETpdPwk8H8/oh3XD1UsL6Ngw7BHkE4QdLtRFdvqtVZpBtJXaktpIFfj9LdgNG81Odz7+VUA9DVBwgKALyCZHqrRm9cB5qGnjbPELs2SjT1WXEQCZ226hAV09C9ty/TrlJOpjqPNbokbi4dyyFTY4kkjKTO58cyvr+UvLS0TMEuuIBJhlLDsTfrPq12UlmXamKWu4Mapo18zZ1oL00KhQvj4dCM0WBeL96wi3qNOmhX6DfVjsuzPwdMICpzUrwC14gbG1G9BF8p/pdUg0iZhE8QSp5GpeIo8s9HNvlqfSvjX8=","translations":{"en":{"changelog":"**WIP: development in progress, not ready to use**"}},"signatureDigest":"sha512"},{"version":"0.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.3/olvid-0.0.3.tar.gz","created":"2026-08-27T13:29:24.718691Z","licenses":["agpl"],"lastModified":"2026-08-27T13:29:24.843435Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"kQ1YzN4+lUF2wTzL1mBy8xmVJji7N8aM6aOSDlzx/6Ak16XuSVLcP4oDTsEystuEPK73AZ6Sue+y08fpkvsfLCOyGscDNCH7bsBMHEQHvsbvglTI+y9QzpHb9FZqKdraFLnnlTruNGD3MMtlkGE0eOGE9lWc0bX8hqgcXawUjnmYrImS/CIDAwON4xS3BpfMZbDBebY/9tLLkuKRB2qSBsHCfmLHvF1paKm9jkjatl63XtMtIjorgGbw9Yj3/4rQyu5b7qDxNErFogdR5dYndS4y2jjjkHGypXIfQP7UqZGeVPeoTD+X0cxkrsKEiCkm0s833rHprE1BY0OZw5pkQ2SPjeM91USgLgJZiCTZr9QK36AildBJ1fLMeXfFzSD9kABhGqFWRUFgMt4VcDBpF811eAbjKlC2nrACjclIH88dmhESB3LPJs+Ikj256Inyh3SYxDbB3nF9nqVp1loB4ZEeHb5/vSx039WcjUAmFysbRzpNbiK8Cl2smcT0IXs9+MPw2V8QR7rY21x1PPqKzxY01gQrp1fXs1vVE1dX5z+qDYvKENqE2sW+TBIL5Y0Hjrs1Ll2ORQdgDfLDMEdfpHogPUUki3NEn7YYY6e7zhyZ9sxK30lg8tznS1c+fH/BKynhd5dmHngv/cyHN0UlxSY7WHyYYm6SLa8oWPH0ZRs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.2/olvid-0.0.2.tar.gz","created":"2026-08-19T15:58:26.870516Z","licenses":["agpl"],"lastModified":"2026-08-19T15:58:27.001221Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"m5e+RqWSxTNggf48YwF+PNP3DcHHMNQ3nmi/5TgPwhom6PvOJL4fB2a94rKAN92zY5H2RJa9HCf5NZNarvEg6Ryd3xaCDbtpj1hMFC6v9rGhapZ7jaoXWbZlXOJJSAJ00d3conucBYeLAGGvUaEGLwVQoysZfJ+pONRvQEMhp85121WbHlnwzoYG541RT/erSgKJaAENFYmxabDVp7jRcVDAGyU2BPhyb/+RFzDuihI3o4JzgiXwlLrXKA8SVi8jM1+qSOEO5pphl/7PZe+6PdddEhGfKv+FKyj49i1Nxg52iYoCivgkXiC62BKg9yKAg0McjtnlJHsbR1ExiFv0t6fei/CoZkh2o0FXailY5dUosKOw5P078M8O7ljWt3mvtXJFxCBIh+j5tTmoWpc2hxlnwddcydOpYv6YMvvjCUKzO8iY+TkVHHjFA8v0om7WMGajRvg6Xwzoaa2u3QvlgpS83kBoveIBhTUywqBsMbMcZWSPd+2jmU+cYE0ZyTyBQZ5wjTTLPV0QlL4dIJEAmcdJiaoavTdSLYfj5l5D/tkjHxPUpRn7qMgbH89p4cbq/BBJA4XLOLUis2lHREk/kCBQ5N9cR7i3XBvMcIQJ/iwBVt97S/d+6t7KRwWWnoY3hKaVrpD2T3HtfZivcJJ+rlZ1VlqZeVwYFEEcWkkYdVs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.1/olvid-0.0.1.tar.gz","created":"2026-08-19T15:11:17.974838Z","licenses":["agpl"],"lastModified":"2026-08-19T15:11:18.099666Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"fSevJZCNQdWOliPhbJEXeq+9pvJ/TqPZdzh9svI6Ng44yPSIH+p29BFxdzmGKw55kPXTdDtiscOMKQM7RXExFFPlP8/9uaf3qdISeozzGmFWAAAxOjR1KXVOMWwVobbBUiYseHLCenLZhoTCa8eRYwKQNWUtImgCR5HSpPQey042xi2rd1ECJtzlTL88HJo3e03ZP3IsmFfmM1/br6632vfAl4ONl9ZvWdRyqMS022nPzF10BJ0gHslfIy5SPv2H8Q3g5OKpEbdHqoznjhxUJ0wy0f9wIgXJEno2hog8VBTwtFFMvGajGaRXmbRnGimU8Jl/hjxWPjbmIb3InyRdEKvwi9Gb9GFCEaKBHJ7RN3ask7so5AM31Bwv5d4dmt9mmnyCEaHdJtI6WVQrf0UdG5k3NTwzV2kVA4Fdr0TW62/Oj26uEug9DzWr4FXaswHf2AO02eYEiX0c4Fcu/bwmyVnPtaAby+NBvfOWYtPeUiIHCIPQSwwKLXPWDVH5bIFc8CZ6dliJ4ejmu3NH5YJOJVTbgwpfWbCtLEApFEIggaEl3CM1aPCcT5mxpgXE0IpphFSpRKuH987Dn+EeF2+7tbb4ciW2MwIJvMoet6Cr5pkbO/kO8KftjT4I2WdnBILhrfa+yDcXrxSuMesnEPxeGbLeamAlCsSFtceS2zV6CoQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/olvid-io/Nextcloud-App/releases/download/v0.0.0/olvid-0.0.0.tar.gz","created":"2026-08-19T13:31:53.405900Z","licenses":["agpl"],"lastModified":"2026-08-19T14:46:18.629639Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"kBu8JSBLg92cem9mENr2JIDxVsb/FQ/GCv271F+WLoAajtf0DfxVmea/WNsn2pwOpmmVv9dJ++Jo6ApYvOmi0EVtUV05bx0x95QkPBI9y/PTZcTNsYc2LdiRGadAOJnKQ12RfvBk4krsp7vm03YdvhGNEzWJ8WE3RIXPEfHNrlMyyyhBv2112R1zwZIyO7POy7xNybQvzY+iVnzcHLXIBlH/hIdI1YlA3COqaGAp9nrG/nxgEogyZG6pRSbt0pMHwQMEqDOffxkJVTFtcuZmI96ljrMRN3itc7NchSp4TWXAG+o0HcsYdh9vCCucrjSS6Qv6Nsq+kohn3P74/qpr8RkM3EmfVfeAIDDLrojtcfFiPeqZovOSEJ9wpE8fews6oqjg3+rOes0JsGONEDLf7l8Ryd7Km1aJdJOkhxevbPt9YEPgrsKFWl9tezN9AztKQ8VMT2kR8J3HUIKoYnmrjUVLOYlRrhc5ZMCWbcDsmKI9ITl5eTOw25NwGw7Yd1VvoATbjCywkc9+kqopuNKI4d5J63RiEaJAkzAXBSN40GNFBs6koBpLNtOcj8nuSLiumjl5jFY8Wpdk8wwnyYbo6MoMgsQcXW+TpSa4oNP9eUD4GU9noD2+XrxQgWdEyv7tIZbGAm242kFYoSvENVKS5SFasr0RGr7dybyomP02wJ4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtcHJvZmlsZS0xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtcHJvZmlsZS0yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtdXNlcnMtMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtdXNlcnMtMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtZ3JvdXBzLTEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL29sdmlkLWlvL05leHRjbG91ZC1BcHAvcmF3L21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3Qtb2x2aWQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Olvid","summary":"Use Nextcloud as an Olvid directory.","description":"Use your Nextcloud instance as an Olvid directory.\n\n- 🪄 Magic Links: easily bind you Olvid identity to your Nextcloud account\n- 📑 Directory: Start an Olvid discussion whith any other Nextcloud user in one click\n- 👥 Groups: associate an Olvid discussion with a Nextcloud group\n- ✉️ Security: your messages are steal exchanged using Olvid cryptographic protocols, your Nextcloud server do not store it."}},"isFeatured":false,"authors":[{"name":"Olvid","mail":"bot@olvid.io","homepage":"https://olvid.io"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhN0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIyMTE1MTU4WhcNMzYwOTI3MTE1MTU4WjAQMQ4wDAYD\nVQQDDAVvbHZpZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMQntbB3\neghYyczfVlH559bfeZk9wCKFVfevq8rOy1BYoH2mJFnQjQDYHqDft8rFQ01bLbJM\ntKXN6+IqYQPN9Be5Skr/d0Aspq488YpLaCfwS2q1t41O7D6a6VW89ZqhW+NBYFkS\n6aTX1vhtn5SIEk218QWRikHirwDNZGPqxT+TzeMOyFTHq3NSwZAMHpJZe9bgcIW9\nM8v95+h+WW9qK7jpvw0QuFjMeece8GerhLpdvJTNI3mzyRSz6nSxRZFVux+gQ0jW\nQTHygV0eO+kAaB/AxdRii1ISYa4zuhMvfn3nu0n8CJLGEBpgQLGD1Lp5nCacOagk\nsAPYb4Z3h8mWKGufG6NJPr4+XxYOgCdMsrig/UT1LkKBDW0QfwK+VLPQ7/Xs5ShA\ntNsqGxHcibD8w9IEON7EdcR+ruxuBx3PpZjRkRD6jCCDEgj7MFaEoFFTiLrx/HTY\nLR1mbAOt7eCHwwFpl6vFdRmqiqkZ2T1W1BW9EZUP8MZpOAxsxueCjzEnTr1lYoVj\nSSg6zwd0e+QnnLgTb1qacHeflNCZiUCRtfSvpNYV4HdYR4W31iNi41L4KxdRH74A\n8Bm6Pi1dgAZGEaUcuOhipEDCLcCjkUjtYx1gAWzaJCry+vt/hGgV/tK0pJFh2emA\neD2/kRm8jvbCy3W+WKuF75r4lzu6+GctD5KVAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAI8E7F9w3k5iPS4Jq/7jtH9+BlJ0n/xR6bawZXfsWFnOvF2o9xYLJ6mW/pU6\nrLNoyfbpFTqinWAp/Hz/IVuJ4ULiO6vj059QL/JzLimNCXI8VOK3sA4VOR+qvmSJ\nMTkcNbiCmho2L8dUN+G6yQNZOqMI/20oZ7HNaTJTg8eBik6mKGXr9He5uoYI7zcT\n2tneC+ijKXSGbBcmPLnloFFarflKkuhOkhnm5MQ/5UCy5BVyJTsCLbCCtlkjjvEF\nTNN1ToeLyR0mNC/YaMhZmT52zQXJPpVWh6bDRZg9idigRIEiPficZtqaa0luOUf3\nw58IebUw5s7MkmFZhiY7lW/w2o8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_windmill","categories":["organization","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_windmill/issues","website":"https://github.com/nextcloud/integration_windmill","created":"2026-02-10T11:25:37.934274Z","lastModified":"2026-08-05T14:30:32.790330Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_windmill/releases/download/v1.1.0/integration_windmill-v1.1.0.tar.gz","created":"2026-08-05T14:30:32.762520Z","licenses":["agpl"],"lastModified":"2026-08-05T14:30:32.839286Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"RMK4qQqWwHXaKLrsetN+QKjFs+Z9/5ctjMPpVDt7Qma8Pj3GD7UOQaqQoebR8Z5RwBM98c+MMGuMzGLLVtDSdVT3SInAJUy/rWcBS2wZZtU38oVqUD3Nx+ui8LIkKmVleeRvTbeXTKIi+9D1xPhO4eAJqPgXYw1LF3rtqzmhA2W4NSvlfdTzzEQapTkbuxHFcmbVjNPa4AU1pt4Qz9Y/0lqe+TwaVSLmtXP2dgpcfIFYMhpEUJlF1CP1TqczRCHALyQdzgxapNROEcAKuo6qVG98SxB8f4elXXoshRS/pLft41GMVKduwCriOabJNsWJjL0RvWvXGVM2hx4OBhSgZOyE8DN8S4RnZfZpVGPHBY4WC2qVjJSR5wHQNnCNZ8I5WJqZVh88wSFakeUdkvLEWCuyLdGeI0Yl8HibGsxd1VtducbEQdRbjV3gPop8VyEQYsAVAN2vwHxBuitP9qzALuX2Zr02ntQUKwYw45oD8zMyGi8cOUOq5TPdxJpd1Qtg0KF2lvRmbeJb5rOoeWz/Uuyg8VwiJGnVuy9Mdp1HKa7egiTnJwtj/ZLIqrmnSDng2ciqs5W7/89mv9OiMlWpp+8/WSaq+eCZtBkOFqBCmfG1ZanqZis+ikPFpuaRxgdL+Jf1Ud6aWBKHvrDJ4SLXdsub796vM3lmEmCVu1eUfR8=","translations":{"en":{"changelog":"### Added\n- NC35 support"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl93aW5kbWlsbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Windmill integration","summary":"Windmill integration","description":"A seamless integration between Nextcloud and Windmill that allows you to automate workflows, sync data, and orchestrate processes with your standalone [Windmill](https://windmill.dev) instance.\n\nThis project bridges Nextcloud’s collaboration and file platform with Windmill’s powerful automation engine — enabling low-code workflows, background jobs, and event-driven automation.\n\n## Features\n\n- Automated workflows triggered by Nextcloud events\n\n- Execution of various workflow actions directly in your Nexcloud  \n\n- Secure authentication via temporary tokens or app passwords\n\n- Configurable triggers and actions\n\n- Low-code workflow creation using Windmill UI\n\nMore details on how to set this up in the [admin docs](https://docs.nextcloud.com/server/stable/admin_manual/windmill_workflows/index.html)"}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"jana.peper@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhLUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUxMTI2MTA0MDM4WhcNMzYwMzAzMTA0MDM4WjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl93aW5kbWlsbDCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBALlwe4TE7dZSdQ1FZpFlT3Zkf7o2Yh8eXeVqoZdEAC8rkrRdyvpN\r\n66gVLi3rhMT+N+oAmg6rXFzF7u/wQAyf2eaq+8lbMy/bL+wE2JE07CLtsLP9wKYO\r\nEiJ1n/sUuQ5GrBSOlvad+yKuMK8FyG7DADGyRe8nVPUjJkrTP36dpqK3rHB5Qapf\r\n/phGTxFdqgCP8z0s00IzK2JotHgVJjAFQui1OA10a+PybYpZFTNvlBuDYPpUW9Ue\r\nE4sTd36Lj8sY73v6lgJfuPbVj8tVQUrbcYVORQQs2XjEmgkgYfwhuLJ+6lQ0deEp\r\ncAr5/jfaSKpSNdD+B69V5PB5yKJc7A/0eMLdbP1GUWLuQI1R4ZJrYXWywam4g/E3\r\nO6wwZ7ZPDDLyenWezgHD6Ot04Gk4fJDofKNe4Iks0vd4X4rTTIkuM3bl0bxLxiR1\r\n+0HjjcCMghuDZfsyb95uqiVL+MMopcOZ0dMcWdp77Nt0PUTnlYvhTP2OQ8lR8BZh\r\nVHsuf6b4+S3vgYjfku2giv4mX1FVOrnE8TawciXhWAxfNlIwdG8XtouDkFPsGi+B\r\nv1DXBwr473dAQSINSDSx/zuW5XdD/v+qEOk6Pfm5/XMPQ8/R0UJ1hD5oI+gQ0UAr\r\nhXoXUQ7vfbuM6+XYGIpstAkwUSLnwC4Zlmk4c8u1dXnHFft61ErTTxhJAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBABXM3dU4scFqIjP7DGlvsfFkedNauBxDxVtSa246\r\n3lt+VQKWpjYhwrjdy5vooqBUhV31Uh75Za57vitXPli/QSd1tdN1qmQ72cFeBmD8\r\ne6Q7r+REKwckZj9OVHbDeHSPxNoayRzrc0bUb7+gtaOiGuopttxGuJ3cDCVdc+A6\r\nM8p3dFwjbGsriAS8HvYUBMf4TSj4X3DphZdKlu7iviYT/zPWTX66W2TBjQ5hB/3Q\r\nZaiPmJh+LaJk+USsenobbxCz+POcYhMsrdzdg7zwkk/ZsZSh9DQPwFebI89BO+Mr\r\nSk0bPdDlAnst0u+/vu4QV3dqNDTjC4LK1il2cLRrqQHf3Cw=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"forms_deck","categories":["organization","tools"],"userDocs":"https://gitlab.com/mrmvn/forms_deck#readme","adminDocs":"https://gitlab.com/mrmvn/forms_deck#readme","developerDocs":"","issueTracker":"https://gitlab.com/mrmvn/forms_deck/-/issues","website":"https://gitlab.com/mrmvn/forms_deck","created":"2026-10-12T17:11:02.615831Z","lastModified":"2026-10-16T13:32:13.685690Z","releases":[{"version":"0.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://gitlab.com/mrmvn/forms_deck/-/releases/v0.7.0/downloads/forms_deck-0.7.0.tar.gz","created":"2026-10-16T13:32:13.673436Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T13:32:13.743216Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Va5CVzl7Q3xj3XfcjyCj7fx1PkQ1tTXBcCWcliDCztw+mYYjrrNCwwvMH2jSJfWX\nOz6d1KUEj6KSKa+r0Ud2UjnzLugkC09IGn9MEO2his+YJrg3iBO6Arjy8cnrcklf\n9yNPNFGQU/2lLqc8zzMzd95W3vCzZXKJ8/ksxqH5QZv6KO7uLtvvdHkyrOt+IszD\nX+QiS05TTiaIkORnLI8WSPtfTyyGlOYMBnL/+xpFY5UFWwj+HzlcMsN66fK9Fan0\ncyiIaW55cUdLWkYMNUpFAYzfMRL3b+mAdML6ynYLTLKuZ4drV+SUybPU5QdSmsq8\njGNzNDZE57+MKWFdMiBvFw4MHWwDRhEoMDbX23g+sIrnEirsvVrhyWQcJ4N+1BhL\n0ghsHysrBn72aeba3MApQlu2/G/C3OakBnVjrOcH2GP65WvibPXPUqHbsi4P3dS0\neuzOimZDrmJRnNTvanUo9AAYjbVlxE8ch4N1Lc3lm8yFsr5XuXwDrYuflKPFDbNI\noFaDriomJ745rqpvSncTKzn5+J0aQk5Hepg0xtuaNo2E3KkdGqFWVScehPSjcILa\n8D0GUQCALgXkvBohctkH5cqb4UgYsqQIqes6ny8QzjKQV1SU5f6rnIkgiuStspu3\nESpPh78KJLqYQwrYcNPX/XlJV2p/78AFWh79WEbdJ3A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://gitlab.com/mrmvn/forms_deck/-/releases/v0.6.0/downloads/forms_deck-0.6.0.tar.gz","created":"2026-10-12T17:57:34.299391Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T17:57:34.366697Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"sL18rX/fAdh/pbnMcSu3Xsk6W78KUoO1Amwm6Bd7O1WPiFhAQFbsFLfvHYjQ7Ldo\n5lRQTQXNCA3iW0+ERNIgX3BZhbgWPQJ3qYODTn662TgOFA0uaxBgyAQ0k0nyxnrb\noDhbdK/jjz0JwgLZJj4WJqQT2YrHTKYxtbtFNQVbCFn+RwWjw38BkOXPeCU7036w\niZx2phKiQrU4as0dAwcQGkd7iGHrNa4T+F6fW1OPWd7WwUtGcG1JCx/4r4e/Zp7v\nPM0iwcxnFKIZPDRL1yG9ZnQxI6dte+3xJMgziszjlgUNd8/DzAvvtB74LVCjcJMV\n+1Jk+t4KOFq+8m2QnRLb3KxNLOVydcGdHgT9ma3CJAGTIoFgdTBgkKuMMtGvg40t\nr27J1tis1Yu6OgsPjAP+uC3rZeQDWOPa05AYSiB5gWO1ErNNNjlUyedPoYvixKaO\nOA3/Q2McGaPH3XGi4qwX+GW5sUX68Aw4bFgL3BzMlMdgQamcrh2+z1jZBk6vi7ng\nzUv5ckHjA72oqPzMf6xTGnC/OoHSVNqF2bzrDG42gI0zo/4lrltrmu6hl1v3o8VI\ndnmtW/kpffyvL6DdNT5FJMRw0JVdh+R90+8ftNS3bU/a84Io1rUlnz9ueCIDUQ6z\nSVig3lnvYLslcMSBIANrhVOXDRk5pkX0w2n717Y3MTE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ybXZuL2Zvcm1zX2RlY2svLS9yYXcvbWFpbi9zY3JlZW5zaG90cy9tYXBwaW5nLWVkaXRvci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ybXZuL2Zvcm1zX2RlY2svLS9yYXcvbWFpbi9zY3JlZW5zaG90cy9wZXJzb25hbC1zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ybXZuL2Zvcm1zX2RlY2svLS9yYXcvbWFpbi9zY3JlZW5zaG90cy9jYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ybXZuL2Zvcm1zX2RlY2svLS9yYXcvbWFpbi9zY3JlZW5zaG90cy9hZG1pbi1zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Forms → Deck","summary":"Create a Deck card for every Forms submission","description":"**Turn form submissions into Deck cards.**\n\nWhen someone submits a Nextcloud Form, this app creates a card in a Deck board/list you choose, with\nthe answers in the card description. Each user configures their own mappings in\n**Settings → Personal → Forms → Deck**, so the card is created as *that* user and the normal Deck\nand Forms permissions apply.\n\n- One mapping = one form → one board + list. Compose the card title from the submission date and\n  any question answers (e.g. `28/9/26 - Laptop - Printer not working`).\n- **Route a single form to different boards**: add one mapping per board and set each mapping to run\n  only when a choice question has a chosen answer (e.g. \"Issue type\" is *Hardware* → the Hardware\n  board, *Software* → the Software board). A mapping without a condition always runs.\n- Add the form answers as the board's existing Deck tags.\n- Optionally attach the files uploaded through a file question to the card.\n- Works for logged-in submissions and for public (anonymous) form links.\n- Editing or re-submitting a submission does not create a second card.\n- If the configured user loses access to the form or the board, the mapping disables itself and\n  records the reason, and the submission still succeeds.\n\n**Requirements:** the **Forms** and **Deck** apps must be installed and enabled. If either is\nmissing, this app stays inert (the pickers show empty lists).\n\n**Privacy note:** the answers are copied onto the Deck board, so everybody with access to that\nboard can read the form answers."}},"isFeatured":false,"authors":[{"name":"mrmvn","mail":"contact@mariomorvan.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhRiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEyMTI0OTM3WhcNMzcwMTE3MTI0OTM3WjAVMRMwEQYD\nVQQDDApmb3Jtc19kZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nxyr3uQuhl0z3433LrIcuh3MmmIVf0mkWAZ9WDS/ZJdQT035h+ECRSsETY3EVnuX/\n9pyK6bVqODgMHvTeZWsutS2dtxzWs8Ps27jEAiG8+l25GTVHjPsFBEjvNBdhifln\ntfyOJItqM1thBlu4iNMw2u/2Z/kBUGD5SJLlSppM/1oJNmDaf8VceEHv/uOzNPup\necqxuivpRX/fKGIUv5FWzNFDWHydkX2nFaWk57ZoYNWOnAq5v0ybeGCI5X5pDWBY\nGiZQF7VkNCuFxUHAoPeOJGMiyvnn1YzEc45HrCWnxUMZ05wFHYzEs3v+FPaFoNUf\nCsshNQ0ajkmkPuYXgU4fHQmyR9yysUpRArl6z1PZfRgthiodHSv5+MYo17/szvwx\n8M4GZ4gWn6E2Ie2oExxavXhZRODV/EA824hDhiPp+yV8yB0LabW2JjHP4Ti+5MWD\nphGaBNRWduwNc62rwyaKxIJWMaZIvyWrpYYAgs6rBNouZM5FWGGweoN+r/F6PZDq\nHerydbBLxCvlaaHg7zIXnTMIuFyKfHxcxd6/aijdquXUxv7LW3v00aBSI0aPEoRt\nm/dlUkbVTHesKvdJK3YvIGXbW/6AL2EHIksdifah9w4N2j0tax+weOVWjyB5/qg5\nVJC8zkdD1vJD8iBZlHViybOkIAO186Prhcq92glKeI0CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAZbDonY0sNPuwkpYVaxbCXKnuKiWBK21fTIEq77UEapIB+wa1Sym3\n7VxCpa7g2xzA/T4aMaT16LAOa6GNZJglxKN10dj9+nKJV3Lbms8Uxr+0QCzUMk9O\ndNN9NJtXNDLy2Wla9RlUfYMun4bwfM2/5GyDEU1bV3ZWYfNVBlr+7s0BAtXWYMw3\nG8gnmQW2bdasgFprqMuKksmbdtLr8J4GXxbVMI+f37/YVfG4GBHPTFwA5RcUf5c6\n5A826fTw2sK+JyVqNqj9acSmuj1ROCgt8Ygvp8WVqSlrfx9YeFy/yEfhhdKxiDWe\nlSn4p7zSKjp9w/3n3qH4DUUBKEAs2HjKcw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"teamhub","categories":["dashboard","integration","organization","social","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/JustinDoek/nextcloud-teamhub/issues","website":"https://teamhub.doekworks.eu","created":"2026-04-20T12:25:18.742306Z","lastModified":"2026-10-13T12:12:54.283996Z","releases":[{"version":"4.13.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/JustinDoek/Nextcloud-Teamhub/releases/download/v4.13.0/teamhub.tar.gz","created":"2026-10-13T12:12:54.267131Z","licenses":["agpl"],"lastModified":"2026-10-13T12:12:54.323329Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"K0E/HDUBpl7SF/ZpMcaSloXmi9i/XS8aFrrrTHcStB806HYE/bLQ/mja8WeFlWJepEirRYyTMjtd8xv6fdXH78+wdWs93y1Z2EftYFEteGqHQ+ESSVFikThvBut0Ypu8QlHWipTYuotxvteDAG67HL/+/NyyhZi2xy4EGew+QAbCL8hOZwJpHHH7IifZjOB4yxaRsgZ6BYqrtpzqREvHjKKl1mmLK5dj1fL3I4ZXRk/xvuzm6/lsu/zxOv7s6Lm7b1Lc7N+XpPiTXP5fVhdc0nosJpBf9NYS76Qt48GsQq1iAoyO/ugLbli/6cWWh0jtsY3PHuMtKaWX1ssWu0qa9pAWcSStMq+/qeQh3n8qXW4mTa2UlX7ex3IP9KreRR+w50DMVcWi+QIW7kF2PODXsQcghshU8jO7RIZtYrzQx7+xvDPWs9ks+HPsRLEprEXqJXWGmDsqEKYBAPZj0Pz/YkOqMq7xjbw9ghJHh/x3k2Znizh+v6mAob1bJ/EZNP8pNkgYFA+Sqaeoi4zpAj+lhpa6nCz7/sjPU3fJHSQBWZhhymCn0NX+kzc82xaCvnIz/bQixkWaTW46YSNu6OcCfydfToJT1xN6LfHluqFuPQNEJO9g7+b8Wgr8PqSF5CAIDbLO/BHt8GACzUFpeZZ/wO5LtdqnpvogF4+LiDjTNoY=","translations":{"en":{"changelog":"### Sub-teams\n- A team administrator can now create sub-teams inside their team — a smaller room for a workstream, a client or a project phase, without starting a whole new team.\n- Each sub-team has its own name, description, members and files, and appears in the sidebar underneath its parent.\n- You choose who can see it: only its own members, or everyone in the main team (who see the name and a padlock, and cannot open it).\n- Members come from the main team in one click, and you can invite somebody from outside as a guest.\n- A sub-team can have its own template, its own policy and its own expiration date, all set from the Sub-teams tab.\n- Every administrator of the main team administers its sub-teams — not only the person who created them.\n- Deleting a team deletes its sub-teams with it, and tells you if one cannot go rather than leaving an orphan behind.\n- A sub-team stays a sub-team: it cannot be handed to another owner, added to another team, or turned into a service desk.\n- Your Nextcloud administrator can switch sub-teams off for the whole instance. When they do, the tab explains why instead of disappearing.\n\n### Team folders on Nextcloud 35\n- On Nextcloud 35, a team's folder is no longer converted into a Nextcloud team space. The conversion changed who manages a folder's advanced permissions, so it is paused while that is worked out.\n- Teams that already have a team space keep it, with their quota, their files and a working disconnect.\n- A new team on Nextcloud 35 now gets an ordinary team folder."}},"signatureDigest":"sha512"},{"version":"4.12.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/JustinDoek/Nextcloud-Teamhub/releases/download/4.12.1/teamhub.tar.gz","created":"2026-10-11T09:25:26.654796Z","licenses":["agpl"],"lastModified":"2026-10-11T09:25:26.711530Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Rqx7yCJaW0oH/3IyjpuwSRbTv5HfDEkO8fBbZEpMD7lMbAlUhpBokJzpqDIIEuzS4Ui77tpyIsrmdCQRcmLLp91njjVGxmUlYf1B1dmtIWPLwHxnuh4qXuIiJd7T+xksw1e1L7WGiVwYI0bTzH97uiyBGPXBi01SxZ5Sf3K8NDznIz17idipqxjvoc16ebDABNnS1jcGTSLgWgfUS85JOhfe9HCPo/HHGC4+mReU1aL5WZeJKR6CuJ1MK2nYPeDrg0SWjY9DekshTq6ajh7fL8K2OXlswoupu735UmOnU7nKWP8X/xIe1ZlTww/KXEgxLlLbDd5Z+enk2+Z98ACap1CizuIMbCBhpij0e5mDSlnHl5C20VvZLM9Gfv+T1urEYFVe+yAEP637q3Wob/g6fbRLQKhpQsAOUKT7y2k3MOFkWG+8JYd/uM0t2BguJuDuSMFJRYORqXHZGci8IJ8fVisOAAQTeaO/OnXnnk6SARmbLL07r6nDKysJl8osE1fNPBMlOmGt6RVwsowmASjqjpG2vRqluQwsJKL/ZfBTwNddCPAR8BLgI6QED0VXDywgpFkH4PT779zkpo+2nl805T6I5q6LvcVl26K2e48Yqyi/q3rfuso6swc9tpLx83xhhsfqiYKfFDYJM5C3uVd32mexGiiTcZ1S5KMyxIvLuKw=","translations":{"en":{"changelog":"### Introduced many changes to the decisions module\n- Show the approver of a category on the category overview.\n- Fixed supersede decisions.\n- Merged all actions on a decision page in an action menu.\n- Added an action to archive a decision.\n- Added an action to move a decision to another category.\n- Added an option to review a decision.\n- Added an option to create a proposal from the file actions menu.\n- Added an option to make decisions public so you can link them to users outside the team.\n\n### Fixed creating a task from the upcoming tasks widget and added the option to assign it to others.\n- Fixed tasks not reaching My Work on PostgreSQL.\n\n### Revised the team creation tab in the admin settings.\n- Fixed the Create team dialog text not showing.\n- You can now select if you want to (automatic/manual or don't) accept teams created outside of TeamHub and apply a template/policy.\n- You can now select if you want to (automatic/manual or don't) create a team for new groups and apply a template/policy.\n- Every decision about what joins TeamHub is recorded in the Compliance audit log, and a group waiting for one appears in the administrators' My Work.\n\n### Security\n- The app ships with the latest patched versions of the libraries it bundles, closing every high-severity advisory reported against 4.12.0.\n- Updated Vue, DOMPurify and Axios, and the build toolchain behind them. Nothing changes in how the app works."}},"signatureDigest":"sha512"},{"version":"4.11.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/JustinDoek/Nextcloud-Teamhub/releases/download/v4.11.3/teamhub.tar.gz","created":"2026-09-29T16:19:16.305867Z","licenses":["agpl"],"lastModified":"2026-09-29T16:19:16.360881Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"LytV7dEs4Xb1IOu+uurAmUykOXQ6W2U0aJCXfDJt2Mx1IS5D2xhs/FjKGCB7TMW88FtEc6NMFCwrkp0AK4ISQmWYmHnAi/Vc55erMkSt/pjM05GHglxboAUUCwVrU30Y/qhj1jZnhPto+iImGkPL2GlO1jET2/2BRw5NnRbYuq+2vQgohmDTUdCA/TG5+2YZrsft5WOTkfM5iGD47vsZMH9bbBImDbRW8XLzTKlo0KWk5n51CnAjU/AlE6hQbyla3Igyo1gTXvHrku2dD4kR3hbzi2G8JtZlL7JGa4WKnc20+JMEwqxXY8PfldD08tWnc5tH4jcSRqCfUcRSmvJ50pcOMrqm1Vkh6hOGA4xVGkt+tepalyBKkbMRatqZ4kaW7Pux21PJO4+yXdcZeaIT7UXSn9kM5R4Z2HIR2GmdqVFaqlHHg52qwsFtF4ku7C27Zv/3RITGjKvl9UAxOQMT7ghNROaEkYm6gLLb/IdkQOAJmQOyZty21gGyOSUUKhplI/Sk1WMikEoFxf0OH+33Gaf9Xi6EjOkS1g5GBwg8vHbNVIXulqGM6sgMJBluXBAcpHsh/LSC34HotcqYvQZ20uUBSR5pqFnmaS2HFrK+4Q/yH/FH4VDMHQDl1rodFmI2aV2r84eT67D33nJvKE/126wli4h4Cih9Cci/oEFrL9E=","translations":{"en":{"changelog":"**The 4.11.2 release could not be published; line endings were the reason.** The publish workflow failed its integrity gate on seven files with *hash mismatch (file changed after the manifest was built)* — nothing had changed. No functional change to the app: the shipped payload is byte-for-byte what 4.11.2 already carried.\n\n### Fixed\n\n- **Seven shipped files carried CRLF line endings** (`lib/Service/TeamService.php`, `lib/Service/ActivityService.php`, `lib/Service/ServiceTeam/ServiceTeamService.php`, `lib/Service/ServiceTeam/ServiceDeskStatisticsService.php`, `lib/Workflow/WorkflowStatus.php`, `lib/Workflow/WorkflowStepStatus.php`, `announcements/The_journey_v2.md`), while the rest of the tree was LF. `appinfo/integrity.json` hashes the bytes on disk, so it recorded the CRLF hashes; the release repo's `.gitattributes` (`* text=auto eol=lf`) normalises them to LF on commit, so the blob GitHub stores is not the blob that was hashed and `.github/verify-package.js` rejects the release. The normalisation is silent — `git status` in the release repo shows such a file clean, because git compares the normalised form. All seven converted to LF.\n\n### Changed\n\n- **Pre-flight refuses CRLF in any file the integrity manifest covers**, before a single file is copied by `publish:release` or `deploy:aio`. \"Is this text?\" is decided the way git decides it for `text=auto` (a NUL byte in the first 8 kB means binary), not by an extension list that could miss a shipped file type. `scripts/generate-integrity.js` now exports the covered-path set so the check runs over exactly what gets hashed rather than a second list that would drift.\n- **`.editorconfig` added** (`end_of_line = lf`) — the pre-flight check catches CRLF, this stops editors writing it.\n- **`tests/` is no longer mirrored into the release repo.** It joined `REPO_ONLY` in 4.10.0 alongside `src/`, on the reasoning that the public repo should carry the source of what it ships; the test suite is not that source, never runs in CI and never reaches an install. `src/` and `vite.config.mjs` stay."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0p1c3RpbkRvZWsvTmV4dGNsb3VkLVRlYW1odWIvbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS90ZWFtLWRhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0p1c3RpbkRvZWsvTmV4dGNsb3VkLVRlYW1odWIvbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS9zZXJ2aWNlLWNhdGFsb2cucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0p1c3RpbkRvZWsvTmV4dGNsb3VkLVRlYW1odWIvbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS9teS13b3JrLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0p1c3RpbkRvZWsvTmV4dGNsb3VkLVRlYW1odWIvbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS9kZWNpc2lvbi1hcHByb3ZlZC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"TeamHub","summary":"Team workspace for Nextcloud: messages, decisions, presence, projects, services. A self-hosted Microsoft Teams alternative.","description":"**Your users are asking for Microsoft Teams. Your auditor is asking who approved what, and where it is stored. TeamHub answers both from the Nextcloud you already run.**\n\nA Nextcloud Team on its own is a membership list. TeamHub turns that list into a governed workspace: messages, decisions, presence, a timeline and projects on one page per team, beside the Talk conversation, team space, Calendar, Collective and Deck board that team already uses. Deck stays the source of truth for cards, Talk for conversations, Files for documents Ã¢â‚¬â€ TeamHub reads across them, writes your actions back to them, and records what happened.\n\n**Control**\n- Teams are created from templates and carry policy profiles Ã¢â‚¬â€ apps, modules and settings decided before anyone joins\n- Gates are server-side, not interface-side: every controller method checks membership and role\n- No side doors Ã¢â‚¬â€ a team made in Contacts, Collectives or `occ` is not a TeamHub team, and a TeamHub team cannot be deleted from Nextcloud's Teams page\n- Bulk rollout from CSV, with a dry run that creates nothing until you confirm\n- Restricted means hidden: an action a role may not perform is not rendered at all\n\n**Evidence**\n- Append-only per-team audit log Ã¢â‚¬â€ membership, files, shares, resources and configuration, with actor and before/after. Retention 7Ã¢â‚¬â€œ3650 days. Exports as JSON\n- Changes made outside TeamHub are pulled in hourly from Nextcloud's own activity and share tables\n- ISO/IEC 27001:2022 control report Ã¢â‚¬â€ this instance's live state against the Annex A controls TeamHub can evidence, and the ones it cannot\n- Decisions with no delete button; service requests sealed with a re-verifiable SHA-256 chain\n- Code integrity checked against a SHA-256 manifest generated at build time\n\n**Residency**\n- Runs entirely inside your Nextcloud Ã¢â‚¬â€ no hosted version, no external service, no sub-processor to add to your register\n- An instance with an active licence transmits nothing at all"}},"isFeatured":false,"authors":[{"name":"Doek Works","mail":"info@doekworks.eu","homepage":"https://doekworks.eu"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhM1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE2MTY0NDUyWhcNMzYwNzIyMTY0NDUyWjASMRAwDgYD\nVQQDDAd0ZWFtaHViMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtxex\nF/UgRRSrha+3N7Foppb7DNqmBGJtJDBiENbaIubb8Po77IS10+KWsD8nCPkIMYUH\nVNUTWC4MSB/gxhpvzI0mqakrRKSpJKoHpWjng+sLwmzCWU+3t2Z4tGlMmSIeacf0\nnNI+OaHc8a8j1oxuTBL3lVZoVoSuzVodsjwhZnJbOyQQw5yd65RNFlWyRfQRuVuW\njr1els7IS/3qQSdXXCt35w/hxjjoPev3nP9hFjWKWkP/BNiACXbRK85HuCcjSs+C\nPr/G3q1sFLL5C0sPeheO8ncv89zrwHwnfSIrHQKMN468yryt1Veyc30HDoIBW0ss\n7h8ewN7h+nJH4sqS4PaGAHg9+L1VRBNBTHxMSBtOFbCNSAIDYGcae19onAcQxrRE\nfCs1rzDiraNG1m+keJddPF59XS7X4VFzRbZG5/EsTkDp1/ZKzXgdOo1aRdH4az5N\nBgvztML2OQiJJ1Z+1R29QKVTotbtUEVp5BCC6fPNYF+uLEduiEGeKoN16YNPN1Ra\nGwnXhv49WyE2FQpoCI6ZpdZMXjg4spyVJZdVpPyLCRmRaboJi7iq5lO1D9svsAVf\nJQpaNZKrfrOUNtlm6UNPhObRxoRk7b7Fj0gCU+Dx+gsDrkTgoPEdUPqohvXTx/Vw\nOSu507jOFPYSgI2xolVb+sswsbZk34G8kSMGICUCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAFwdX/tji8chWCh3yVRgMWJsi05Y13PNL/faqmoiVcGK8H+43cYCZTJSI\nPaiW/GhDQ6FqblF5nJjgM/UYwvKDXuwuPHMrXUHS+h+l2IN4drJuqO6MwOtVw2Ev\n5TqxA0PHlGBbhpPc6hflVmuWrgsvuf617+5vZRpBsPrgg+Zl66GCbOfobhRgPKfu\nJXs4bUZsq2RIZ3yfqdjvm232QS4/CdQPItPcbdwnw7LLyHHX8O/90Re4/Jwfv+f4\n5JnkTx7ganD0aA/3akES5rmQ45DOTTSFhvSv0r1GBdhpqcTV9jEZ/9tUdDWX/PK3\nJ+WLOE7bxReGnw1M1P60YKriBrCs1w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_giphy","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_giphy","issueTracker":"https://github.com/nextcloud/integration_giphy/issues","website":"https://github.com/nextcloud/integration_giphy","created":"2023-02-06T23:48:11.562756Z","lastModified":"2026-10-02T09:53:43.431162Z","releases":[{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_giphy/releases/download/v2.3.0/integration_giphy-v2.3.0.tar.gz","created":"2026-10-02T09:53:43.422371Z","licenses":["agpl"],"lastModified":"2026-10-02T09:53:43.469564Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=36","signature":"NQJPeFw8d97L+ThnHBHM+NKmAdUT9BxsmNU8riRE/Hl04xmacQ8dQTPoyVCq4U3uEIFuiyMMZ3arazhgPQKsn3YaIvfhOMiv4kwUUVGg0AA/W3HmPV7r377slC59zk3LrFXiXuXdau7bgOoBCIAbyGYsSBKCwWq0fIMw2HZJJ727pNv1jWvhXYuTU5AynJmj40S9eoSbhUBn2RyQDFaG+yqzH8YHe/1cuLB0v1IfWdJhUd4ppQT593JMXtKt7ckGk/ieXI5bFI+gkjnoJkiGyLdh0Wb4BhxHtQE5Mbl5e/YFgYpKGVxXFlaLP9W3hTFEeMljm2TdR7yq5KVeYgH2ZkwTV/g4HgnIR7YMxszxddvg92D95bEz6n9jco048cOE991DbvE2vESIdaRIQ1FPN73q6Pno0FeZTNgdN0F8RFSjxtOWxsVsF16KGq36doArrDdAhqFLjq0IZi5bdo1o6UuQ6QGE9yh/g0AuExbafWIRVYEKjmL+R5kLRb+ZSDPzJIpuZjGSrF7EhCmVGBT4G2PZkaegf1hWV3k5RlvbHEsDqNn8mGBOkbJ+EdPbbDtqqGvNoeGN2q5RnWRgxDIxEqr4EYhHoL1EKpjfjRuORArWQRL77NojgfUvwrUGYF5jS11GcC6cc0bg3ld5ar5lIQvSasAeF0j625LmTOnzkYM=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 36\n- Start GIF previews paused when the browser asks for reduced motion\n\n### Fixed\n\n- Show the text of the GIF picker again while it searches\n\n### Changed\n\n- Update @nextcloud/eslint-config to 9 and sync the lint workflows\n- Update dependencies & translations"}},"signatureDigest":"sha512"},{"version":"2.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_giphy/releases/download/v2.2.2/integration_giphy-v2.2.2.tar.gz","created":"2026-07-31T08:08:38.343435Z","licenses":["agpl"],"lastModified":"2026-07-31T08:08:38.388615Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"kR0cP6Rzp9H3EuRru0RlXba/AzGZ1wUkavZXlMw0sjoVxmLHs7tKBVCaSYKDWVxN0LDFDr04QZpJ9Khgsn9pP/SbhSdQVoj7/04Nolrv9gUARH62Z8eg6OMJoflpVHowpJLDMVNzQaaB//vNxo8quq5po/NP9OGWnx7rbfO8ZHMzNOK4Dkih0vGtzu1RY6nrB35NjfLnCFAFQ0tYFs/gUdEE12P1cLuBFVEqhj+BEmod7y90s5ua6CuKjItrERPLvbDkQpIhPA4LwHfyh4jpLaVAordLEuR+2v+4ERnsIKYQP6NETieObprjKQ2JIkh1ztsGjAXxiZM91p47beeXLRinSPa3N+TqaFBRMLPiwHN3fr52aDQrZ/zNWgkuyvSzcrg5+sOnJRv1zGOQ+1ynqOXvuVspXA+y/Hy4UDb/p8Mpl8RMvlv0vV5KtC5H3saBedqzdOggUtgn83keDpdJdvj+il8r5MYVxVQcgxNT0eIz1AOaOl0eT4GQh6Fz6Yq2zbYxsDYlpID9UqVBYSarXLlDYj7QfCCg6yqA7lk7MS4vC+9I7CxLXtMbwZl6/1vSlev4mzKGpSOvem/ktuAaqp4lSNEo/HSu5fp5oHqcy2raRXicrw5MImXlorRM+mOdj+YJZJFmnKAuXzrhoPlvBe2+YPUZDY6OGVVvGUMomxc=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 35\n\n### Fixed\n\n- Keep the admin settings page working when the stored API key cannot be decrypted\n\n### Changed\n\n- Update dependencies & translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9naXBoeS9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9naXBoeS9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9naXBoeS9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Giphy integration","summary":"Integration of Giphy","description":"Giphy integration provides a unified search provider for GIFs.\n\nIt also provides a link reference provider to render links to GIFs and make it possible to search for GIFs in Talk, Text and potentially anywhere in Nextcloud.\n\nTo use SmartPicker, start typing with `/giphy`."}},"isFeatured":true,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhH1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIxMjI3MDEzMjU3WhcNMzMwNDAzMDEzMjU3WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl9naXBoeTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBAPO462NMpDIZPpdsvUYaAEPa73t8eFIHtZVVkE0c+ztaf3bMpCofWXVi\r\nWNxHfadKAGoXhfyqAngxK1yr97REUxsmnirMTRTuNzbXpxqYpbsgD51i+CPvnKKS\r\nbODdMxzUrwQIYhlXvrmierDbdTh3OC2WNNUScDUc0+46mzXsF6QatJg5fyrfjWtF\r\nlLJG66XNssumqLJ1mNIExjTlhWBWDwOzrEXPXwv2HUrYXRzbshXZgLbkjyYgdZSw\r\ngy143yzdYOSaS89bF/wvYgoHUD4Zqd4UPNuVo0Bf1tDbusSwJqcZDWhlmrY8HtQi\r\nlfud0+Z1p7UhE1aCpffU3tpKnPBxdd6E1aaHixQjIb7sZ3fse97W2DXsUKUd4ihX\r\nbyb5ne9YtJXSH0M5ac4FUFDDIR5bCW6XNfwO5F9VKLMgtm1Dz8qMbs34QFVoAE7C\r\nd2BGMjfPM8acvLWN0irdYRqtozJG/Uoa66TDmOM+gIXYX7Qvm9ODkdJgHQVurUfz\r\nTSsCF4K9XJdEuviNQEFcVpxaN58+WlJZOTGrdMy+MkPOGQbo1/II2tY4X7s4Ykus\r\n52M5hD/c7gtP1LKzDp0NHhr8GYoXWca4oj111JYVr8g0USOSzdCzEaxjIt48XDqc\r\n6RllrpI9kDUo1WV0vHhLTNEAI8dPjqNijjtIkMztpG81+yj8gNSlAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBABdcMu4DS22vUhAsq9YZexG06qaT9F/BP78+SoLlpOzH\r\nw6g22i5wew31Rx9Q1ofn9PcqfgonSxJO7ZWL3IP/AvILqA6YjTG+0UQzW9nxYMq7\r\nJ8gJVc05LVoxtI8NnqwviTqkHyZoLKLg1hSAutLMqkdUaleuE06y7yG6QZ4BDt+h\r\nB3rD/CXy5FOlFXE6YfXHU/sZyCKI3llpMw5z/wJbDsmV6mk2mTqygsxmwz0mWvjk\r\nM2EB4g+RkYwUPpUUXAAKop2R3HyDso8/Du4ZMYelM4rxRXLgGdx5bhqsAc8OMAlg\r\ncu02NC85s6Zw9ao5+1LDDyh8snfCynIZR/q83ArBQ2s=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sharereview","categories":["security"],"userDocs":"https://github.com/nextcloud/sharereview","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/sharereview/issues","website":"https://github.com/nextcloud/sharereview","created":"2024-07-22T18:40:09.653856Z","lastModified":"2026-06-17T20:36:52.619667Z","releases":[{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/nextcloud/sharereview/releases/download/2.3.0/sharereview.tar.gz","created":"2026-06-17T20:36:52.593138Z","licenses":["agpl"],"lastModified":"2026-06-17T20:36:52.667863Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"kMUwTlO2KoheurUN4nWJAmw5WDMCQ4K+QQmfi52cE9Eu7egVLJU5+sL00aUQ908tF5KY7MYENmaye8+UgbpbKGN2NwgkGmpLqHIAxFwvNd8Np7CeZibr3u4GhfpjwtqDdnMj7thkhfouFZme5ZLgpzNCgO3uaGZ60/iwXcrp6IdKXG89wZRhbgTJVbObiI6HxIOGMmU29F+y3m63jCnlOq3L/NuhjD46AqwtVYHVb1rERsY1TbKfBYUnTuo8/VUNKJGcDzxNwgjSXDp5z8R8Sthgy5rhmWCusDr6SWqKfc/lVzSXiLB6ANflvx4cIr3+BPIQOaUiCdod+SENIGEO9ZHuu6Vd6SQHsR9jfUsPwGOdy5xHpSdAlwZSLu7tcXKbrfRGsOyADN0/VWhl9uKYJzTz5tba4RuRvr08O4Et3b/6GYJv9aQjTRRENoHBM1OTCk6idQKsornWm6Qw3D5pG6aXUtAnTRlacwNHQW8v9EKdTc+bn4ZBmKRkey19wCi587hNSYujJitgD+67keXOC7vjhycvxQ6Fw/3HxQDC/BKo7oxcL3ERGVgyl61EI4MQFXR0+JcD0LXMZiWqWLhQz8r8P+lnjyWo2hdiniD6hiBrReMY+TkupqqphRo8/V9RBOYsYirb9pMeffnqcBEuBAQ42bPvodlwaFLBkIgRCd8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/nextcloud/sharereview/releases/download/2.2.0/sharereview.tar.gz","created":"2026-05-11T20:09:04.124024Z","licenses":["agpl"],"lastModified":"2026-05-11T20:09:04.182993Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"t1j7QIWJdE9bYSqr8DCaST6g/P74wgXTBFF0u7EpCpop6TjVOEq0DwQ0uTS7KyTiglTCGYPYUFUhMdxjMQsTsQ5kvCTIRvwt9ImHD2DIS5VOkkfIXcJ4WPAeiYAq6Pc6xFg850H+XD0g9Hsdp8akzuZE31UsSM55GsdwFRBiChVP6PZRGx9h2ijsmzSZ7U/yxKFZcQO/jHqyUVSfxtSH5k3L+vYpleofiU71nQZPjMViryIJOF33KHJzxrWhEK/buHPZRjnxz7X49Zs6lvDs/R7jna6qHuKbnLWeOetZgB/gGn2VT3hB/yvRRBSQ062ZUW0070LQV60TdzjyoDz4YmfOETe77IOuI1ORxgimYnkOdS0lq4B1+mvR863WCPo0SQbK1D3SnTt/IdSYuoHxYMyMPktCksu03dxLZIjUlVoZ2eKDVkIgnM8OnMuI9HYAde3L6Y/FeXhOrVeoB44u9+ZNb26w3/hs+t9jqgG/iwi5R1Uz3qZnuGwmolTwZwx4NcAaOirLirpIHWZ18xDVRsk7Xn+R7dEYlwn8C0wZ5SxjBMyR/awnlv47QpVtI/MVn4OFLP+LluNWPdXAK1pUwpqmldPwkppbVKn8xs/BqX+OY2UPYx1D/jplryGkR+8c+U8wEqWQ+0xv4K56+/Cp/Db+UEUlpsK7R03rcbN4+kk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/nextcloud/sharereview/releases/download/2.1.0/sharereview-2.1.0.tar.gz","created":"2025-12-08T06:31:10.931811Z","licenses":["agpl"],"lastModified":"2025-12-08T06:31:10.995896Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"pvmv4k2aoJWQdgaSm1ZCKspX65WjkkeyUAtrb2Y5CbeIuc8/cSkHjgKxRTBZBuGw7C9jU6kLgoO+D4OixOr1E5TDZylTL+Og3hsgXTAfboeXl0Sge4HjLFrcr6c6mekJTuMzqbTuApyxNHl/HIj8ksepUCoKV7Uux8YVFz2RL9Wgy0o2qmzMQ5X6rzEHgGDPIGxznHLt1HmGS4Aver68epVObMSB5URRujD8HQUH49yzru2ZC2Qe8n86e7rfyeaDax6/HL9ZeeYuFBirqsguQxssFYeV/Xe+6TwBRwuzPQzkfXOLeiym3yo406ETznihLfs9F3T19qG+UUJ4qBbo9DCc5EGzfBkHUEvvNuAqPm+cO1hy/xOdINi/EEukf3uQ6Hl14WPWzIkcxYfAAIt31rNHiLlahXs1dba9m+MSPqv9LHIbDz3TZkcnrRKg3GyT6R5pmfp6iAasGdB6E83/T6TYx4gXq+TUU9q6uh/V5DQ8c1edYmBfX7gD/mgCxYNY8rEe7widpMuvIhW4XV+vUkYp88wOhz7bxKYvWs1jx8DTCprhmYkhGjdx4VM2AyVBt3x2ej62ru2DJkHTGGAwK8K9D/wczahdDeR6+xoQvHoxFAx93FN7KioxFqh28TWi90Z9yRDgKT3jq4+rE0jlKVuXPmYNr+trpJfFNOg19FU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/nextcloud/sharereview/releases/download/2.0.1/sharereview-2.0.1.tar.gz","created":"2025-12-05T05:19:58.710651Z","licenses":["agpl"],"lastModified":"2025-12-05T05:19:58.773004Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"SHmykSET9Yin0THBwN262mYOSobkfH+SCcCuWJsCySROaoahGZSHOQHUQBS3nzi2zxXVl89copJo8MnCCBu0hmrn5fad/2ye2BO3pKwc8KBXZX1LJyI9sHDsro6hZ9aULRqqxNLf2XnSCCMbA84lrNWf+fs2qWMHiTIuMVmaXl4HckeS+9FwoKygYtCfVCzsmKuZ/bC+nvTyL+ZQO19F10A6Rkr7KZcb90lQ5m0eF5FGpM+l4cGjxXV5ulMCw8pGhY4j05F0PCK+taMpfKOBu2ejMTD7P+SBnvUGjEvwMPOJmnUn4Ugx87b8qK95iHckvyO2HK9gCrhtRap5HfMa9YuAb82hb9mAzaum+oGfhUhX0Ouv2TFlkO+LNIisPMMggD0reSIDNL+muXoLYXvTqWib7aBEE7Zbujw3r4Hi4T2tbYDfn7RJ97ej0dANwsHKmvJJQkpQN99YQ1zFW2KLlAzWDM363LQAKKv/hVH8pxNdgtjweNLty43EKQ9jLaYEYLuD/NF19i6JN8l/ijjJCNYtpb0Uv3xlPtstRHgTkhZu/H/N2pJcN3LdPzqljRMChTiMRnQPVocbNYxxeXbXPBMWITdrA2Wlz8GeKOYyP4aSMiZuTviYhzLVvWtVKALclTOu113e3HmIjw8k6kMWe/3pdxeXZ87n4X+FqXmQiEE=","translations":{"en":{"changelog":"### Fixed\n- Refactor permissions assignment in ShareService #43\n- Sorting of time column #42\n- UI fixes\n- Improve reviewTimestamp condition check #45\n- Normalize app name and update action format #44"}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/nextcloud/sharereview/releases/download/2.0.0/sharereview-2.0.0.tar.gz","created":"2025-11-24T13:33:58.615374Z","licenses":["agpl"],"lastModified":"2025-11-24T13:33:58.676296Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"XYxNZBvmIM/v60VVq5j0hhjMFRp59I3HdzR0xWlLxi2dwbDMdzZIH9Nisy0uLrfknOTP+Vogyig02D0lzZ4FdMLs5TDtE/ssxdvQgb04Z/Du34j18OmbemHpvhqqQMx5c/o/RnD+AZdOlrphw+jeikr799whUuoNjZ5cLRQTkGby+uRMwk+FmMyfsepPvDJzSe3N/vOmjm0RuHdjxquhzhM/Mkq5neVZ+XHZFOdxSNzWGmdFDugfeKCHqn7e4S7aFFo4lva1PeV2ebIijpSvqcs1Y4iZB4sOunKOiz0EMrJwu3MqvO3Q7ClB/Q7FXp0k/xE10BSGC4IFSES4vEyoeNAfb6la2QVxru7aNTKY82owwSYvx0t2agtYXg77QbBw/4yh2D5rSFDxqiJoOiPY8sAETq0Gzt5/ff93LfL+atPUooZppyqoCnY7qIbfATxKj3kuPaZj+NVGjJbkumeB63uToUFe8VcEoetEJmBHxd+N78Of5Oskydf2LyShDQlD95RQtn75fk8pRMpbc27K4i9nbHDulosetpXJKlyUp5MXLtnEuyznp6fMdbOp8DdGletxIu8YwZR+nnBbEXMYcLg82rondZUaPNao6/IbQ47tUJjkg4TSSQyril08RBqxvxEK93OSiL+pdlmbuCcY4x5jZdAp+xroFOu8XWka9qQ=","translations":{"en":{"changelog":"### Added\n- indicate password protection and expiration date #20\n\n### Changed\n- the app is now provided via /nextcloud\n- sort type column by type and not text\n- released under the Nextcloud organization"}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.6.0/sharereview-1.6.0.tar.gz","created":"2025-11-09T13:07:17.887003Z","licenses":["agpl"],"lastModified":"2025-11-09T13:07:17.946008Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"dTBWqhjF7h8LB2f3WA+eW+cmVsA2SXh9xmMFOXA/5zzxOoAzKFLgS0wsX9JskHdyX5YTPiTzhDgYp5ClgVf9G9/NsYVxUY7myISadEDQImvgqChVODcHUVwif3UI3w8Wr3I5QWegcX3GoyXTOu5lN49yg68fQWo1xKtNq+i+iju7YFibpYB7IMk47cyOYCbhG3t4lVmWQijorGIwgi+uOG8raJbny+nc5zguX0OHYCnzK4KkEE9nsTwrHCSdj1cPTlWqGacdOb8QlUl8ts88e4lbX05TnvBrKtg39yTGLo3uSxACgcdB3NreVkMRaSq88xqu0apd7EHdyBc/KFDNrMsYC2bq/JB0Yk8vTy34fbYzWepq7Vx8TiOnIQrp8BrKeg1fdi8TSlZOYA4Zn8RRpx9Y/97HSj/s+eGgSkM744rUCHBkot8F4Vzy0u3EIByv9WUbYCB5TBryFn91SFaQhIPooHtNKmCxVSmsnfih5DSbCMbP15xjH6Mt8qga7MH196nlIOK/irBn6VGlEad1+i2q4AOSyBRQwk+okh1StKiJI1A8bP/eMf+VXRnPXYxj2ln0t4SXtATZz9sWKyCsS4saDdp6WPd31D7F8C0CZfZI+c9AqfLD8hxh5XewQY6mQ3f6J0ZPVzLoMToY9Z479NYnYdTeS8pxgTSgONEqUCM=","translations":{"en":{"changelog":"### Added\n- Scheduling of report creation via daily/weekly/monthly background job\n\n### Fixed\n- Make permissions' tooltips translatable #31\n- Center trash icon #32\n- Item of shares from other users not visible in v1.5.0 #29\n- selecting only valid team share"}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.5.0/sharereview-1.5.0.tar.gz","created":"2025-11-04T16:02:31.478596Z","licenses":["agpl"],"lastModified":"2025-11-04T16:02:31.531528Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"mZM08BLBVz4xgfgznpna4DTuohE8J1TKtQDqlALkyeqpTg34gQrRJGbnSTA/7U8XqL3SGn14v9uqVP3d2k/+Q1OGZzwrA3xDHR4YF1UoTnXNCSMyzhbje3owHPKC+OT/BlhCz89179v3EWrKhnsop9xcIh1YklJM9ENB524oxKPh+wy2FaLrOmJF1LiHpUSeC+u0r3sh55jVeIDtrvqSIDNPdqwYcx/u+Xg1gONToDg9tc2uYdWOewkApMNhleOOR7P9/kWHO4jXSoQ6wrm8hRLkFOQmEsvhMkXVPyYkbU9/a1wdWSZCN8q0WHXcKy3HZi9pIqK5HlZ0BrXpvMhDL8M8atKKNK1ROi/Z1qoUihhzYJhnLU7cH6OfkUF/iDk9YRsYTdZbO9Z4lEhfHNOupJajD0kM7ACvO+PmKxH4NTdb5Emz4mvuE+Eve8J1Sl35FItRVcC5jAkaODbHK9NwZ/Cv3EYXxjj2v+n2LDzR4EWlTtZx0FwpozeMOBfTjs/ZdxOsiwYDcLxyf1rNTs2mP0J0ny5qUBjHDyGpvKuxfy48D18SiRbWoYTxOFUQtJ4L135awMGQ/5jg2J3usIcbooM/Zkhxwh6ZCOH71LV1CQpxc4i7ljhSfuZOiYjILbmZkQSLQPT5xkZcb/leHYbTXtqEGkXhOnmyAW6ISjTKkdk=","translations":{"en":{"changelog":"### Added\n- Export report as csv or pdf #25\n- Show the full directory path for each share #26\n\n### Fixed\n- missing translations #27"}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.4.0/sharereview-1.4.0.tar.gz","created":"2025-05-19T20:08:39.690067Z","licenses":["agpl"],"lastModified":"2025-05-19T20:08:39.749123Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"aaGZTlxnM1dpgdcaQ5nvaYKJw6U1+ULa6jo41fb3y82/lDoMDUWe9BvHz6KYTLD05IG4Zna3o1zdJ3K3BIiMdFL/eS6eJxJtDH4eMVYnm6E1KbC81JCcxJh7GSfbYGsTZf/NjIrQi0VTqG8QZx9srNJzBJ9EVcSMd/wB08LqczMPJDUvycwnQnUmOwMPO3vJolV30W97le39An2e8Fc+Jl5yORaTnisAZoUe7QWy4YVJjs6IFvJ8VD+RiaLq+ZWzoNcvZH0MV7Dp15UXqnNKifw7Vvd7KwDAmX563RAuivaBqhE24NErqt0mE/82czHBdfFMwMHjh2SHrBoCEgDM5YZAhlZiNDjIoeAu5kCO+JsmQiRTXwmgxarYe2f7BCBlmZVWYPrAbBshgqaeEiXO55nA5aFwp1CaOxSpA2idxNybv6SJLdpFAhvM9DvNcjUhj3rz0/NxUgKIw4b9JPJYvtcnIujxw5QT00TYhEJa8bKIbkLZlhaKyNVeM1yY+2no7y9Zzbi/fEbm1PD+YwR3n+JTWIwwQv15I6Ta+BBOk5UM4fG7FZF420AgQfM8mRJ+Ej5IHHN2ID4WMKD4golLp+xjclChVo1A0BrAs7/C407kyVvdzCeH6L6lyF+fi8nW+d48i5NYw1i9Fwai06ciVc//IL2kcU7QNDGpn/7TjHQ=","translations":{"en":{"changelog":"### Added\n- Add bulk share deletion #15\n- Add talk share filter and navigation option #19\n- Add loading indicator during backend data fetch #17\n\n### Fixed\n- Error when no file shares are available #12\n- UI improvements #14"}},"signatureDigest":"sha512"},{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.3.3/sharereview-1.3.3.tar.gz","created":"2025-01-03T15:12:09.965597Z","licenses":["agpl"],"lastModified":"2025-01-03T15:12:10.013815Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"wElDd6/JvhD6/9NZM1G2CYfTdcKUOl1t3aeGHqJ24CXiNmRlfJJ9gwlRYgKT9l/e5Jwftm4T5P/xa6n3+/p5ImzED4ldN1DeAFrOX8S1IrTzl160c+uWrFfk1gDZtpqE3RVLQRalAO5W5+6VbmbmP4WDdCPb5uuFpG8YNoC61Ga7oKWehNDecNQYDBqPV18Kd0yWsPrH1seyYubG7S77DXBhM9LMnVL79fqN60n1WYPc507UUyqtUjhTGGDzQc0yokqlx2w0zou7IhJxSLqRZUl3AO0mB+S0R+M74xzyBV3d1MZucOaVUH2j6J1MAdPPcPNB6BfODW9MGAlwPdN1yjZqmH6kADnbZsXNOv0KYLAw+IC+bt9Ipjmi4YuTTLJd8Ifl1sJK3V9BWqxpRGv9M6eEQrIZfWZA/TUcC2WUTTxUOb2lJmZdmygTt+9fx+njeRWbMvJQ8Q/ixHvAJCnJhoy86niMjMYDIBy7VDBeI+1+nOzlSoLM/RtbWqQjrHeKSPBBAXW33m0pEYlLX26m8TwN4bsjRnWTQyMyfVa5pOzCLBMRUoW6KkL5NFyzuRCvChqNFsK3ttGmpwa8yXH0Y+GFAvQnWdGwUQAnKw0Qt4/KFch1WrIjuW3P3m93o13uNIelQflTHH4ruiM6MS5I8vMVhtj/KmvKKPCtRgTgvn4=","translations":{"en":{"changelog":"### Added\n- Federation shares"}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.3.2/sharereview-1.3.2.tar.gz","created":"2024-12-03T16:03:38.978415Z","licenses":["agpl"],"lastModified":"2024-12-03T16:03:39.023145Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"odnTqqTIXrfG7vymk51jYrKpL2EqHwO9FTsl58aI1UctqKwpN8X4cVW5G5GV4C1fwrbhpgQ+FY5yYQ8GcIBQD29WIQiVXvUGGNbpzvgzVl9wbSMcoKQYKRvhhtWBCKv1vUlsEaM9mJHgOumlJFI5dCkDC4fk+1l2+dyJ6kTogd9rw2cZzrjmO5tZCwiiyJxVh2PaxGjeFpi8PhRJSS7XcakjNJ+qqNhR49P7dstmDcNPxuk0dLW633fIDCovtNX3mN7K42zeKbeEB9JBqlpiSIEL+GdBOg4dT14i693GQiHom4Ddx68BB5engEDzBKcqAdN7pa0U154fqGW6MWNvhu6xmOxgcJ5/tCTZyPnzMT+dVBRPhLMcxC6Hz1g3lc3ipGTXHexAEe/DLmWlSj3lF+dL+vumWL6i2YLUG4agGZDb0PUtpSrbRXk6GbPOauCG/BKtvXGu0lwWYVpi5YZDLND/5NLfzIOhBOs5ylKkuEFbGdfzo9D0146D1E8WO9LjGWajecBIs2gaSn2MIloQbzwVPCwoBGhdA5n7lxfyY6HkXIvf45KNumTAkIkNw1WHyKcd4JvuevStJ9j0b15B4mihgPXFG+0J8/Nomrd5Gcmv+V0DvXSTiNNK1YYn+7toLZIpm1cPWWo6QBJiEVc/I1ajlcxBMCrcJY5KcZE48FI=","translations":{"en":{"changelog":"### Fixed\n- Error when Talk is not installed #8"}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.3.1/sharereview-1.3.1.tar.gz","created":"2024-11-28T09:48:27.513452Z","licenses":["agpl"],"lastModified":"2024-11-28T09:48:27.563934Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"T3eum03/lgXAIU/HNKVbGZoXoYKs4LIZHRnnwS568a3jNnotMQ6tFutrI6PtWNbW+H5gL0tm5zkeqKJiQM34vMEqxfU6Z4OXu4DoeE1Ks/Dzbux/9AsfyM52wS7oLe99OybU7/tEh8EFDRY/2cew+pXnbEtDdgPf2xlzC3MilTQi1E/+2CzM4M4wP1WtzNbSzzY3ddWAG0IxZtvIYoiBj/ZCgJyExqnKEL6MQqMePl58l/oVGXEueFNwZZFUt9yC9/KLiL4u81z2vi+y3+HakgzD/PzxMniFLyoutsaanNybFaaP01EJh8xXzzyBurPWC343JxKWC+uYzqfBfdH/f7rLxLULlLt2t8NblBCuVuWcd94vLgMT9jwOff08cT77FufRtdRPjSLCgTNSK7jBqbDJ50wwXzVndj00JgfzikIgjoIgAlqEDnTHCGdOJNvQANDCyspZyONOrbXSxYeiu20Suglw4ZEilvuJiT9loWQMal0ly0XK8VnF9DEz6oFoDvxV60C9xfEMd+FKhvqdn5gRuAKYJu/8yq4El3YYVXIeauVr81YDpx9EiC0csnQ4nIs+Lvgli6AprkT6/G6NO4WDVaq6BoQgp64y6iem0jsao6SWzp18OjUPMhCUpQ9Krc88W1s7vY+HRrmfqlrGkzFCL91jT0eqFdYPJ2rqkRs=","translations":{"en":{"changelog":"### Fixed\n- Event to register further sharing apps #8"}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.3.0/sharereview-1.3.0.tar.gz","created":"2024-11-27T20:29:23.372880Z","licenses":["agpl"],"lastModified":"2024-11-27T20:29:23.426471Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"aj6ZXuiWoeCsaFEcpX728lNbVTGVTdIAqybGzqgnKBkFUhqgc54ZJwURm4AwwTPI a/LGTEP/UKC7fjSJuJEM6dA+wG/HtVGIiHz2Z15CWsGt1XinBe63fajpjb1AUds2 m2MjQzXGL8ahiPlBtS4dp3f7JBwsErV0YOY08LUp/uKTCE6xrQAnjFBZaHgoN+QT KEMKk02eKux5+30koQJas6BdxWNQP+YDqz8sSIGYEu61c0cZ1sVrQl8rvHNKVkz9 QE6iGxT9/e68YdAkfpYzcpZykmx0PiHlqDsOd2bpQSw4RidfYkd7e4YRICx9MrHl nuDLcD0FECrpylF7+qeguRZBslQ8P8GhrubayyD+FRKXz/pRqyo6PUzP2rjR4q69 qJG7v7jJJi11pfedWw4zKyMO/8EEUfLe3FER4v77bALhCfLwudyK1mSsmVnYZ2Ue NRi+YLuQmuQU1qXwP7oLQLneJo+rgSIkejX+0iau8ml6PK/XHuaQdS0I9Mnyscrl IHyrfOXHfWafpgnMtX1fufIVp+XBYZKrrKyzb44TDLNMMwv+qPD8TTtymrmkv0Uq iW7RfLj0gyQMcp4gIjbCFEWO/ZSDczO7GTE2p9KnsMZc/O2r3LMkRAwKrkPZzSey XMGXiYm2hcnp5wm2LZLivnPqjLX3IdlWYdZ5JupVtGE=","translations":{"en":{"changelog":"### Added\n- Event to register further sharing apps #8\n- Show any file share (talk, deck, team, ...) #9\n- Show confirmation timestamp\n\n### Changed\n- Optimize table layout"}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.2.0/sharereview-1.2.0.tar.gz","created":"2024-09-22T19:38:29.322179Z","licenses":["agpl"],"lastModified":"2024-09-22T19:38:29.376320Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"ZJGM+wGUiC/TvgirMqobYmi0XH7WVb3mrA/5B2yd3h6AYAeXhO5Rz88ZsPhe3jPPrleotpy/W5tLI9iEPq110gvHNjAZdVLze0QBbOFfdjJVqF2qSyQ16L4pgZqDKSSBLb/9OGe9DwDeaGBVykP7szEjMhdX11tWG+l42Ld0/JIIfLSsPvsYZU8E+KQQMFHzNKvVHcyfgWJCFEp/fxQ/KNwj+9j8NM5avqdQNYlYzbvBYR49MOq2Kcscj/j6GaUtBwtLCPJap4s+y8YPOdJlMsRxB4xkAMmoASwbG1IqNleb8E8PBEO139hQg4WX+1Acj0t/3f9hAx/8FdtKOqXUvzYxbOUND7lGrx/2IYLNwLLR36IfLq2K0V4SLw+MOqD+uIyrzQdrKZg7OaBf0h1+n0sKCMoYv3vGPemYdJFuRWIRJRSwRqWLEqICyVm8jJE8kd6AWKiWFpdmuyMTy56eac1EUIKgSI0NbzM+gmJpKd6PsRNnhQpFxjzf1UyCGxKXwQHKszYzE3pSE6iMiBLopNvIClcS1FZ7cLzM79NDRA9pbiQLHLsKLpNKc8/A6c+tUYNiNLzT9ZcGI1V0F0wxZA03/tZPkMekK140vS1vfGTtY80HwOTZwm0BEXFyUidjTDBrEpOk1K/qOGdcuEKRz6No/fELAe7Vq96dLX/NCBc=","translations":{"en":{"changelog":"### Added\n- stop table refresh on demand #4\n\n### Fixed\n- Helper\\Exception error #6\n- dark theme issue #7"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.1.0/sharereview-1.1.0.tar.gz","created":"2024-08-21T18:58:05.128423Z","licenses":["agpl"],"lastModified":"2024-08-21T18:58:05.901315Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"vzl3zEsK04dQskS1kRwikuK16E+I+k6VFQsaxEgIImzqqBmNuzMc0kv3rjamBystunG/7AZ5lw9Z4mTsqj4vnvreuEhBBAP/PeSF1pJi42xUZsDfXljEM/YyHxLCt4RSvOZcR9J6FXkvpCRAwsibDkBVg1bwAvkDno4YAlLTQZNhPUCFe9fSRg9AYbA5o59S0cT3Hs3jD/5Wvjyd24wvE1MGcHo3hqh6w11OQX+4JY+cfNcNKRYROuyvD8uUKPv00X5oOq2kB+WeWS7QYFaHB3yeG84pQeHZ8sxbOsqJ3DuQ9F/wqO/JrOZaSx8W+VZXB6ioB1Z0umC/AoVU46BgEWjKGrIzxkClwDDG0egdq1u5IXsUsZ709MFOa+suAzPVwWp+xQJUCrtmnmYj2l5hhuyzkR4GHJl6d+VDbGbT5aD6bulXcMiPYHpPeTjj/TShSXpv7AZGpnV5YJyu4oJBWegzuFCcz8/taLPJqAxSAtETNZDP+7Fyuw0XKQ+B/SQbFV9Z/cMtbvuWBdlvUj++KCh+RXd19o8XldvDSfcSvw/uSeuU5onTJHxDLqLTntax1ZbnHra8gLXGhGh3eTYVfKdLr96HEjN8Tyw6ACSLVuQLetAIb6MrcglvaySYEhScMTNx66K6ar5Cb6aHeA3he6tJRsa70agKpgm/jdNCRJg=","translations":{"en":{"changelog":"### Added\n- show user names instead of ids\n\n### Fixed\n- Internal Server Error #5"}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.0.2/sharereview-1.0.2.tar.gz","created":"2024-07-24T06:51:57.545239Z","licenses":["agpl"],"lastModified":"2024-07-24T06:51:57.646544Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"S76rsXxwOcSgrEDlEqwgVGzoN2/LVU0M/fCgu0ndCxPHtb86WVFsS32tFrmwWZFtQN4VZAIU+yriWkhNMiDVetNwo/x6Qhyxurx/G+KhrCauQrGJTPRhNw6JhVdcPMAK8xS6DwDUwYj04234Nr9pBEJJi9ltMZ0k9AIj3JFHiq32wjvvnlz9ZnGN+R71Yu6tKuQw+4rRKDR33Zk+Lkx6EXH/mV3S/cZ6NW/HvfrX2dRjPsQ6FHwYwWFCwWLP3OfvLc/pf4L8Kpe4mbqBYYv+sRBxjOUS4qIRKNXcyhgY8KEgDmqD0bJinhXv1L6L2QOoMB7RCXjT04ZUGlaZjxj1vsDPOOOoyOvYLFdj2a+7wWAWVkL6M2vfblK93iEkwWKErtW2qOhEy59mwF1U6ip9160y7GgwU9+n75ejHxdqC5Tj2/el9YYdfKiLhyqpgg+Gznd2tFCYiNgA1SDGT3YZenZ6wXEmld7nCmmhRclA0WazkF9AcY2BHbyDjEoD6WhUacgf/Cd39F3KtM53plqon0WQZmEIMn7IBOQP7bWOMKZBBZZj/v08uNyXVNyx5fKaRKgrWaiw7qBeyiTXbfZcdQp/xaFf2r+qJqVP3rlWifqw7AS4Nu2MEJAlc7UUnSm6dLzbYqB+rj9SByeKX81U+Cn2HVAOuUvsNwgA5dngAdg=","translations":{"en":{"changelog":"### Fixed\n- handle obsolete shares"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.0.1/sharereview-1.0.1.tar.gz","created":"2024-07-22T20:42:39.983858Z","licenses":["agpl"],"lastModified":"2024-07-22T20:42:40.076187Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"hBHWTI8YiGaSeqvimLPel7aYGKGcS0wgVcj+FB2S4TV7dSKWoJwYZQK0DN9KNT4ssT48zBVyPxey6TvnR0cPmMQG8WS4wHvMMIHnIh9bZAbNXohpdmjveaUGDEmQqKsutsA2d31yoq6rpol9DdXdx5I9puYH49vcMah69wGfkGULFpqejo3rgov3HmrapyNcS/lsen66GzF5+wrwkwmhSZf1pHootNRFyQayWkFko1h1RpHQzMQqzNwHQukcBxHFnl8AMWHG4LDtDfvV8tOsMYjDJMqTXnoFUo58b4cFQA1kVOLhmXaU+1wC3cQ8FrX4LWhfS86QhRLQ/OcDyM0tkV6pHLs3u6S8ZHFv54BrkKTdsJ9f3hqSnYifpuvZlPCCr93XWkAbxdU9TBx3j5GV9oXWHAXCHAdfmB4DLPPZK5X3gpcoOSIOUR+zEvPFTEaSsRxWJ5pMa5pwuGzz1sy66rIrCIzPmld3UWagD/VIjkq+wkFS/TjeapbppGjx+xyyCzggoHQh3Usl6+0CmNI2pKQmjPkx6S8QA/XUnFQIC8Csc38EHpmutZKZZDGKMdkRS2m52o54ZuIvgzYdhi1AkL291/6/pQ4GT1TUEnck1BAFuhbsHVgMBWwAtP9yYNEfScdRHZ4Xb8kLsd8hQy+02Rtt2Euz32jxF888t0eZup8=","translations":{"en":{"changelog":"### Fixed\n- App description"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sharereview/releases/download/1.0.0/sharereview-1.0.0.tar.gz","created":"2024-07-22T18:53:13.395173Z","licenses":["agpl"],"lastModified":"2024-07-22T18:53:13.824213Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Hgut9ZC6uR3jLQsinR83/JnF1+Lq1B61nX2AOChcnK2xOCvJtdh2T7LWFtmNo6UKPQsTKjwUTkwzhhIza0BjQZAjzIYfixHF0DE1dWcBIfqjnb+fXjeWVQao69KBQqPat5534cqUANa/zCfFiun8kcAjeWZezie3nWb+NNBCJl+U6RkIg+IUxjDeCY/96lX6K2vqQhssXxhsRBmRFa63gE3Y2ZrimIAEml1d79NE3tl4zD4lgHKnGPi8KtefyozoyhKgHheKseHFPeuNuxQBjE4EnwzA1nOx5UdtauyEsf2s16xemz8H6eBHRRvwm2WYjRgNIazWwmRNIPSCujNX3qQDysuhFFlf79RG6f70YhxDDMl00l3tGoCmBoQ3V+QcK46oBFqUjcImNlVXfMnkiK2Z4ZP+pqeP5A9VkEKB3O028PebjvSX1o52z14Cnk9SFAJaeBdyDm4z44Ug6Z1SCMvvidQ7rxakELrhidgrpc18H9k1vzL94c0vgZtFJBIlRvjrm8Cy4czKBHcb+baRJORbuDgSZi3tY/ixytoC5qHimL9KXiqphd3S69lBRr3xN4tvn0Ztzjfv4FgwJ2Y0qJWqtfjyWO//SWJCn1JmsfFPQnlz3lJ00uon0jFf3CP+b8hZygig+zttROL2TcCKUozQbvq/b/vbl2B8EiUdP8o=","translations":{"en":{"changelog":"### Added\n- Initial version"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zaGFyZXJldmlldy9tYWluL3NjcmVlbnNob3RzL2xvZ28ucG5nCiAgICA=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zaGFyZXJldmlldy9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QucG5nCiAgICA=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zaGFyZXJldmlldy9tYWluL3NjcmVlbnNob3RzL3JlcG9ydC5wbmcKICAgIA==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Share Review","summary":"Review and audit all shares","description":"This app can be used for auditing shares within a Nextcloud instance e.g. for data loss prevention.\nShare status can be exported for documentation.\n\n- Review any file share\n  - files, talk, deck, teams, federation\n  - app specific shares (if implemented by other apps)\n- Remove shares\n- Confirm current review\n  - show only new shares next time\n- Audit compliance\n- Assign review to user groups (e.g. audit or risk mgmt)\n- Export as CSV or PDF (manual or regular background job)\n\nNote:\nThe app must be restricted to at least one specific user group in the app store.\nThis prevents accidental exposure of the shared content to all users."}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhJrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwNzIyMTYyNjA3WhcNMzQxMDI4MTYyNjA3WjAWMRQwEgYD\nVQQDDAtzaGFyZXJldmlldzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMKIZOo+wBfcoxyb19UNh7J5dYu5Km92CF13ZfShqEurqIi3BPyIzUv+/ToUuVIB\n6MFCp8pIPaks9hNddk5YZ5rXHYWjutdIjkAVq1J7IIcW88CCw7lUbOXRKoO0ecac\nBV61egT4Bsx2ELh90EwePIbEsKJa2BYtyyis/R/Wvqwjll+kYtrgi12jh2pCChLc\nGVMzXZjMXOATl37LMfZqFYUe820MPcXOm1KhK84/2fLc5eWMRF6DQ9ocoU6+DSkt\n3Rlhi0oQlXoYPoI6HLxZT+GYgZ/ecAr6shifd0tMg21ll3Ap+DnRK4YZ0cIOoRr+\n9cjM3wK0/f/LyoW9MTs6DeUBS3cfWq24wHJ0L6X1Jp4Nh1bOkMyx77x1ya258N0e\ngR7asNCtSiadhj1ZKKa9DsSUNUXi/ftOz2eaz9JDpCA6YwOBYyWz8y6bPj9WDIAR\nhuENYs3tScxDtfCWrNbarpWDtcjfZl3g324705LenniqswKld+boUOLFLq4y6IkJ\nKIAvvJmdRIS5/nJE65zjZAWkDDZz5WOiR4Bvl5dkvLnfB5P8/i8IaRKsIZa6ht7I\nL3WQCInLedqbuefwe80JDK8e17ruvo2et77liDxca20EF8yYc4ZvxTuF8CBBt6lQ\nkGs7C2bc9mzmZyWvAliQMCQcRSGWxcr2iFWpH72ig+xXAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAE+x8EG7cbW2nW5K8UPStib/tOgMh1p/h9bypFRqVRLrpo1346pR\nmydo8FExuwOc0kuTKPnWi9UenYOZPytt8VufHfA3hHQsK12HnWubGWK7E4dt9VHd\nK7K3UGCVCp2aVkhhA9oYR4lrdOdShzNP993PPldwsZCURdzghVzplwkyf3mYrYBs\ntE8Hpc221N8z4tfyA5VKUjYghpkPjRtM+5E33pa0a8cG+2fq9moym3S5SJfCCvoh\n31BjOjHBXP7sWGZ5OdSDJOb1yHbdJkuWxjocT7EVJiD/l4RfVHtcYDJTC1Tn4hpW\nqL36UpsBnKF9ZYdk4g0mU0J39ofxXTNLrFg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"xfiles","categories":["multimedia","security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/luisfacarmo/xfiles/issues","website":"","created":"2026-08-25T19:19:19.702948Z","lastModified":"2026-08-25T19:19:34.164115Z","releases":[{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/luisfacarmo/xfiles/releases/download/v0.1.0/xfiles-0.1.0.tar.gz","created":"2026-08-25T19:19:34.144678Z","licenses":["agpl"],"lastModified":"2026-08-25T19:19:34.219150Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=28 <=35","signature":"E2uooI4PEWoKMSV+xyKv/ee7NcQ87TwyaJYK8CDk9xpWGuP41LvtuK7OmpSqO5zho9gzomuvP9LdYDnOTJ0ghGGZudCTZfWQUUjuSUTNdxHyhgN6KaF5GoHAO6/BqumrRxpulylI9ICju8YZRgLRKoOUM4UIvb3b7/GmM2tjhtcUG2CYARvQHXfVZXvI5tW6yRI42PbKsmgPRw0QmZV2OrcuCc3mOdcJQ2v1iBZDw4pBO0Z6dXG7hFY1QLH9izs6evWvBg0HQmHKmsn33oZKZGsRZPQWvICY/Rf8PzkEi2kikEEZ7d3hchQ94wCGij62vKa96+YhbGpJblVgWsz6SVSL1zqwDYm4iHfh1fTKTVJdDoRLcBip4Pf8T/o4syZFrsgo7eKapDUR/oYlxI5wxGShx+nXgKsMXRWFwAaB1kKIcPy9MJ7n56ZyVgzDI9KeDoc8jOndz3Axex9pixv4JfPMJvERDpdkxlqNfnCUbfamU4Hgv5qA3SkHmNoGEkYfFVNaXQi2mIJvA3+rdFIOtPS9y5ftYIjYoiWLvxHwG1dHfcEEd8iTDu8UD9XIG8UUCuPy4dRXoxdl3nV/3NwCjnPFcnN265SMfAkdzJwEG3hdcU2+Aypi+VA1Rooht40sj9X5YNqcvMZIBrmpkMzJIsZM6WRxCUUZTEw2A4snHWw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1aXNmYWNhcm1vL3hmaWxlcy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy9sb2NrZWQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1aXNmYWNhcm1vL3hmaWxlcy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy9nYWxsZXJ5LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2x1aXNmYWNhcm1vL3hmaWxlcy9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90cy92aWV3ZXIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"X-Files","summary":"Trust no one — a photo vault for your most sensitive images.","description":"X-Files is a photo vault that protects your most sensitive images with an\nindependent password, completely isolated from Files, Photos, Memories,\nWebDAV, and Search.\n\n**Features:**\n- Password-protected vault (independent from Nextcloud login)\n- Real file isolation via AppData (invisible to other apps)\n- Auto-lock after configurable timeout\n- Brute-force protection on unlock attempts\n- Thumbnail gallery when unlocked\n- Recovery key for password reset\n- Download recovery key as formatted text file\n- Change password and settings from within the vault\n- Auto-lock when browser tab is closed\n\n**Security:**\n- Images stored in AppData (not in user filesystem)\n- Other apps (Files, Photos, Memories) cannot see vault content\n- WebDAV and desktop/mobile clients cannot access vault images\n- Vault password hashed with Argon2id\n- Session-based unlock with configurable timeout\n- Brute-force and rate-limit protection\n\nLock your secrets. Trust no one."}},"isFeatured":false,"authors":[{"name":"Luis Carmo","mail":"luis@example.com","homepage":"https://github.com/luisfacarmo"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhPkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI1MTcwOTE0WhcNMzYxMTMwMTcwOTE0WjARMQ8wDQYD\nVQQDDAZ4ZmlsZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC4irSq\nlwY7ne67HkxbA8Tw++M/P2MgUtDgpffJg/kBWjLRe6pcbZ+8o6nDoMdl7JCHtUbY\nClIrxTRMm2i2ZMqh4VOj167IMg8TV82n/liO4CfaYfQOZlERKJcDgoP/r8ao6YD0\n+AtxX52x6hxqBujryvpH9HbuIKmiTiEauiXjEWgbHzBe9W1HaG7oUbgDbg038ka9\nAiuSfpIfFF8Go0y5IyExlX7zLJDbs4/r59IPWztpDT6DY0jE3MRV9fzja61lWPhr\nkwROo2M4oG7Vhijn+uRrsydrk+V7n3sUwZ01l12so4dhe3CTwflLIfftSRgKxZAm\noVgNgKUZP/rMKoHyN1ywHJYSL+vgWb9Tkf7oe6p4qY+OQIWzY8qySCUNFiwOeMdo\nLzRGjmCIvGOVEQEKzvQCgvh+NF0fT7v4g+197rsxZqqT403V9PPT1+PhfwviMscU\nz0GmbDp3H4HW7apK6dNIHbIjH4zMEWUH5yxEyb8MySu72Dixo7p9m16JhMV0hj96\n8QE7c+mf4Biss4tCWyKB/RUGoiWJS7sPQQMdUSx92eB/9k3ySXumOJ4fhCBqhFJA\nnsH3GtgM2ZD0vgUGmqTFcXHuaZtAnj/36OBazSL3AqavDsJPZgfsb0RrL/3oxwzw\nRH9Bqkpd/hG/bXCUhUPw0ProXzWndP34c3RmgQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBgRROzpc+ySGkwfJLOosoR3aKf7FEg8ZjaHw3azJo3ySeXwHmWWC+ArOCi\nqh1t/Ra2kFkIvEUv6f9RnEJBV2g/dFrxugyoJ1C8dNHlJBXtnESZKnKbyoTBV8DS\nIZFGBtqyyNscOgAjExnztELVkgOIi3Wxzyi1WxRzRqKqOLBwXdT5/ChXSaEnST2K\nfM/iID7PftPbApFrCVzwH7DB0ZMR8AXCZW9nRZgc56LGx0Xnn0sXr+9P0ajXJVMq\nU436k4+yqKE9nDpVVLRNwFeN/cQzfstCE5v94XIcCxqouwzZxFxmWBwTC0AgFbmb\nRh3alkJocYcN7xhgMBgi7NLOhNDh\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"iframewidget","categories":["dashboard"],"userDocs":"https://github.com/IT-BAER/nc-iframewidget#readme","adminDocs":"https://github.com/IT-BAER/nc-iframewidget#-configuration","developerDocs":"","issueTracker":"https://github.com/IT-BAER/nc-iframewidget/issues","website":"https://github.com/IT-BAER/nc-iframewidget","created":"2025-03-12T18:38:26.572600Z","lastModified":"2026-10-20T16:46:51.945157Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/IT-BAER/nc-iframewidget/releases/download/v1.0.5/iframewidget.tar.gz","created":"2026-10-20T16:46:51.936112Z","licenses":["agpl"],"lastModified":"2026-10-20T16:46:51.983185Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"IFRz34BcfVT/Jon1dhK1zrg4En773Bm6Ds4FVmqeNVb1Gr1lty+y55GC6Fo9zGIBDRTY5pAXsJ1XPQ2Th/IPmMNIxvpQmQaPCnykYCtldUTSR9vVGJaGefpJ0BRh5QiWPDaS4isDNPh0ne3lEMKrqt5BVtIbTG1ZDznSSVEhx5Fqal4o47S3k1fN6+TypYQWI9A1G3rcl5t+pYy5FS1QqqcIAg+kaFn+WlOBZBVOtdcTIOQ1U4ECzyQQsWAmyiY/pNCJo7CRc1tnANusNE4SOqpC4qeOaEzfEEqouKoDY43hfZY4nrJO5KJD3BmswBOGyCnfcV87jmpap/gIIEKNoyfJWcwPqPrWAZzgJbtVHyDZ5smKmZhmh9+F8Im3yRRRPKOjv7x5yEJ2uzAGbiamitYeWZZnFuAUGmNMb/YVdWKpIkKR42i2sCUcEy0j07RtPzpTZz2432qgngKzRs3I5vedO2/Cj3SsyDHoXYXmqTTZExL2BtVnIm6hqsucVUDW3/RMYS1nfg9vJg/htG80S/mImTI4P14ez1H/OUdmMJQEzBU8V6Nkhs2xPb77OCXqa80d6Lk0Ve3XXkFb5v1u/y+rL8dMluTsu/GKWbri+jhTLwONTSDvn36GWOM/n39KaZrx6krLX8VVjl34L4j8/DCRTexdxQNHmedV4sKHMS0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/IT-BAER/nc-iframewidget/releases/download/v1.0.4/iframewidget.tar.gz","created":"2026-09-30T18:33:22.500477Z","licenses":["agpl"],"lastModified":"2026-09-30T18:33:22.549174Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"GuKltNWduzpZ+TfmAszn7e0Ww9IPutttdzcTXZCugaaOWSk6cQWnA6N85Cr7I0BH1cqih1+I0viik39xF4DbAvyaoGa3k1zTjdIIRq8pT5HTNG4IMQx/WwR8LvVqtCa+Lc27aoVglmIx71JGCnnVOx/Av67gt2/iy93upZfq4p4TGuOackxc/vPj3D+g1LEYrdiOcVKtPDoFyofn/F/Q2U8mSyBiqH75WbtEU7D+XzdsryJrwhyEQwG5r9OI6p76JSptuRW8WsQW8wBBS/E0FQM6B54a51VpeVQnNLD/kSq1m/RtxRyui+sWKrTpDkmNb82Wiy+UczpjlOcnLeH/b794y/xeGk9L+7uBMzQQtOH6kAx5UzrZ8ctMNHg99a9X1DpctfwIbt/NviS+6ERF0w8zJKYmKsaPxkEePVqyDruLDczmxA14fKEE2bV4h0t7LWW7tkMu/6O/nR0T4n+ltz/7jrXDET4P53a6T+yVtfhGGmRX4ySz9Owc2SoCeRDHiUhis9AOTRHnBgg6So60/jeSfLuIBCpTI7Quh1fmjm1tXrG0wo8wUoaxogcDzxiBKGi21NbZVH+p71NvL8lDymvRwm4dPA5w1JLtjutPhrzFUKlXjUVyvMV1W6wFmDZVBS+kn7JUzmnSg0W9ziIflbWcPTcjJ6ZSIEWZ85szDYA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0lULUJBRVIvbmMtaWZyYW1ld2lkZ2V0L3JlZnMvaGVhZHMvbWFpbi9uYy1pZnJhbWV3aWRnZXQtZGFzaGJvYXJkLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"iFrame Widget","summary":"Display external Websites in a Dashboard Widget","description":"**🔲 iFrame Widget for Nextcloud Dashboard**\n\nThis app adds customizable iFrame widgets to your Nextcloud dashboard, allowing you to embed external websites directly within Nextcloud.\n\n## ✨ Features\n\n- **Embed any website** directly in your Nextcloud dashboard\n- **Customize appearance** with custom titles and icons\n- **SimpleIcons integration** using the `si:` prefix for thousands of brand icons\n- **Colorize icons** with a built-in color picker\n- **Adjustable height** for perfect layout integration\n- **Responsive design** with extra-wide display option (2 columns)\n- **Personal widgets** for individual user customization\n- **Group-based widgets** for targeted content delivery\n- **Admin controls** for global and group-specific configurations\n- **Multiple widget slots** up to 5 public and 5 group widgets\n- **Iframe security controls** with sandbox and allow attribute customization\n\n## 🛠️ Configuration\n\nThe widget supports three types of configurations:\n\n### 🌍 Global/Public Widgets (5 slots)\nSet up widgets that appear on all users' dashboards.\n\n### 👤 Personal Widgets (1 per user)\nAllow each user to create their own personalized widgets.\n\n### 👥 Group Widgets (5 slots per group)\nCreate widgets that are only visible to specific user groups.\n\n## 🔒 CSP Configuration\n\nIf you encounter Content Security Policy errors, this app now adjusts CSP via the Nextcloud PHP CSP API based on the configured widget URLs. Avoid adding a second CSP header at the web server level, as browsers apply the strictest policy. See the full documentation on GitHub for details.\n\n## 💻 Compatibility\n- Nextcloud 33–35"}},"isFeatured":false,"authors":[{"name":"Bruno Miglar","mail":"admin@it-baer.net","homepage":"https://it-baer.net"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhKWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMzEyMTU0MDI2WhcNMzUwNjE4MTU0MDI2WjAXMRUwEwYD\nVQQDDAxpZnJhbWV3aWRnZXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDwCwNF2hAJk7xHYKmckS3cHJetsNsmAIlbnO19z6E2ipb/8FaG8ZC+ZzGxrVfo\n8hXWfQtQyfXTc31YF7fZ/Y+fTWfhhDqhHsVJPXhAGEwVJ5SaMpwh+bH6QOFdNhUc\nMoa49NBC/jKcJnW+XG/vph3Va1v3oACo/DmEseQzPSBxZotMA4qX4dajxmYIQr5L\nShdtg0LDY+539B9RyifBFmwO1PkGp+cnr+kXW+fxiIyi6jnl1IfwxSLtVBaCHjF+\nsDknkokdBR55HZJOFc3dUVDHVYKSDCg50mThNZS/A01JGk2nu17nOF2OWiKL+qlK\nwdAiOEaqfRKwrv9ieChyfUy2xIUO5FwHWU7EhwYKGWR2lG4p8WhsDc4IttICrmkI\npANRBFUkH8lXo9dYbOHKjf8HeguE5+n4agYek50SXSRF/kx+FakP2BquHn9xS9pd\nUprHhME5jltXr5VMv6/DMYtqJVINwp3hdKPs1z9IMFgp+t/FzsmtyAx8iSKij8PT\nE730fzkD3bU9an29lyHlmGhFe587zrRZAORbAE8998JceJlfP+ENvunw9rdNBRfC\nxKES0t6Wf+qaGHhKEKQXk8gjwH1xZTd/OYZxYvt9yLgOT7irfuzC9RBVwshOpuvg\n7yK/MbkyNJtGpjk7etBLaEUsEC637r1EzrrbPIZtHvCfTQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAplwpon81XXKKHm+9uMqPSXSrlmmVlxwTVoJPVWjPZ3lDDU7Dl\nXMOL1q+0OMWDZFEK+5tD+bvrZ3urY3iDbZF2Zf4JYxIxdIC73jSU2TVDLYiYvx/X\n1VSJ40qEz8Nux58jYtBS+A3C6kOWUnAK0CFZe95MI/WhgSd5ErSERHS+gFQjHJzB\nzE/afZDSPMJz3Dn6u7ecRjY1CxkWbXesuXc6NXM5Z9IfaFQYaUvPnwqcEjqzPYHz\nt2ftodrC4AH13M+fAH2TkqpzYsqLPkItEN8fJXZktWIqBYLW+d62/KKty1lLGIrs\nDU6NZkSn4V/41YNRaz09PLDOp/riK4VICp0m\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_m365","categories":["integration","office"],"userDocs":"https://github.com/mzilinski/nextcloud-integration-m365/blob/main/docs/user.md","adminDocs":"https://github.com/mzilinski/nextcloud-integration-m365/blob/main/docs/admin.md","developerDocs":"https://github.com/mzilinski/nextcloud-integration-m365/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/mzilinski/nextcloud-integration-m365/issues","website":"https://github.com/mzilinski/nextcloud-integration-m365","created":"2026-10-16T07:36:16.210460Z","lastModified":"2026-10-16T13:56:29.086816Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mzilinski/nextcloud-integration-m365/releases/download/v1.0.1/integration_m365-v1.0.1.tar.gz","created":"2026-10-16T13:56:29.080515Z","licenses":["agpl"],"lastModified":"2026-10-16T13:56:29.126510Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"inv2Ikv2Cm00nt4BqLa8KwDqMxMjXoZJ8oiLh/a/3K5ZMwTQjjjbUqew+9LDRb+Rf/+Nkk++8vkQ0jNZ1CRM6IIfG3TCyQ9XGZ1xPJd+Lw69YMDyQxqW3Ybprc+g2xgub0Yl4bp4Heu26eJLFNKRqgZx0BTh4tFeN02iC8rmpWif4zSXQuQdGWeaFI+6dhs4Cuh8kj+ab2nrE1V51gLTFFv29R0P1FKLmgeRKt7WXqXyQ8hDW3yw3S1sh0T5G+qLDhS3IcHRqOOU7eXKBb20WgNRMWOv3je+UUgRe+73fiJ0kZUCW4ZYNT2l7lrjijATAuCyK1BEQSVU/UUMJVg4oZscW/kafdPTX9VscSo7WrGe1C9H6oYQYzFUkzEGVP4fSMCvEXhiVSCLtKSly2TxUIh6c4/au7mYu3G9Yq6LsJVz+NStdcbp7oOddjJFjcOiu3RakNNOpV2kHlWSwooTykJXyfKZNWzgGqmIyHKfJe0DuYmko+ntc5Sc00FooBkJO4zx1ngfVWIUl5rsEhqungtecNX2E8T0NlgL/am5WAEkkoDAk8cMiAuL31BFAW+GyMH2CMxBfVdPulyDYXHoG0sJZO/McaVbbXc36cAO7pYSy8KoMHHHREXWSPQNlbKzIezU10edhaGdFOWsGKxldJ8Xe1LvVghKWKbgDLKe4n8=","translations":{"en":{"changelog":"### Added\n- Admin setting **Sync interval** (60–3600 s, default 300) for the background job; Nextcloud's cron must run at least that often (documented in the admin guide)."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mzilinski/nextcloud-integration-m365/releases/download/v1.0.0/integration_m365-v1.0.0.tar.gz","created":"2026-10-16T13:10:18.836697Z","licenses":["agpl"],"lastModified":"2026-10-16T13:10:18.875362Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"nkGATOR6zcwDPXIvxgSfpdybK+oT2n3+F0/jxi4368Z42KOn0MUz/hStMW3pdKQBxDW66OuSI9ehV16vNjnHZtd1+243aW1dyPpl/f5xGQq6aMBWjEtWD+uzInX38vQMebW2KOlExA8oPeW62God33LgI/f/mcej5PFUq8ieZuKC8QtuX/KpQ0fVDML9I7IFD3J28E95r87+SNPpbx4IOOdE38/YRmhM5BgEWMYG2gMDWUUpgQK46NgdE2GCq9zW3C4DzaMnclflgozETWR/sKERZePp4TnEDcacZ/Kz82lgtvr6f1FnEOQNxnXLJwInp/IS+z+paexuNVOYmkKX2ZKFFUx0wyFgIOyu4xIUHLT2IELlE7iyUuOnH+tTbwEfw7axdLJpAWvWF439pr2vUQec9XJyOfvfj1fnJm2O04VOJuSMezGdSNb96a7G8CWefW93SYfAaacV58d4HGO0u2WYXMdryXkStK5M+kmaRhrq+IDyFhm5t5DKKtAuN+thtTeimqrWV4qryoPyF1mWNc1lYGfLPhdP3x9MhbQFomIwgjs6xwEY/FALZNGKTkBRRXK5WhtkkDLN4S4UHyQTsofJwUfpAHJLlznco52nQyp/mwcULWaOF9D8gDOryMI2RQ4DhZhw5WRcGKZ4K1dOnhaPbvjvteGyfHALbWuVdok=","translations":{"en":{"changelog":"### Documentation\n- README split into a short overview plus `docs/admin.md` (Entra ID registration step by step, permissions and why, account types, secret rotation, `occ` commands, troubleshooting by AADSTS code, scaling, uninstall), `docs/user.md` and `docs/privacy.md` (data flow, storage, retention, logging and deletion for data protection officers). Wrong menu paths fixed: the settings live under *Connected accounts*.\n- `SECURITY.md` (private reporting, scope, design notes) and `CONTRIBUTING.md` (setup, checks, conventions, fixture rules, release steps).\n- Known limitations extended (own mailbox only, 1 MB cap, failed objects retried on change, write-cap rounds).\n- Changelog switched to the Keep a Changelog format.\n\n### Lifecycle and data hygiene\n- Deleting a Nextcloud user now removes their tokens, pairs, correlations, queued jobs and notifications (`UserDeletedEvent`). Before, the background job kept recreating an orphaned calendar for the deleted principal every 5 minutes.\n- Disconnecting removes the queued sync job and, with purge, the correlations as well (they were left behind). Without purge the pairs are only disabled and resume on reconnect.\n- Connecting a different Microsoft account resets the pairs: remote ids and delta links of the old mailbox are meaningless for the new one.\n- Changing client id or tenant in the admin settings invalidates every user's tokens and notifies them to connect again; changing only the secret keeps them valid.\n- A bad secret, unknown client id or wrong tenant (`invalid_client`, `unauthorized_client`) is now reported as an admin configuration error (`config_error`) instead of asking every user to reconnect.\n- If a user deletes (or trashes) the local calendar or address book of a pair, the pair is disabled with `local_missing` instead of silently recreating the collection and replaying old cursors against it, which would have deleted everything on the Microsoft side. Re-enabling the pair starts fresh and re-pairs existing objects by UID.\n- Users flagged for reconnect are skipped by the background job without touching Graph.\n- `app:disable` / `app:remove` run an uninstall step that removes the background jobs and open notifications; tables, tokens and pairs stay so that re-enabling resumes.\n- New `occ integration_m365:reset --pair ID | --user UID | --all`: forget cursors and correlations of one pair (next run re-pairs by UID), purge one user, or wipe everything before `app:remove`. Local calendars and address books are never touched.\n- `last_error` now holds machine-readable codes (`reauth_required`, `config_error`, `local_missing`, `items_failed:N`) so the UI can translate them.\n\n### App Store listing\n- App icon (neutral two-way sync glyph, `img/app.svg` / `img/app-dark.svg`), used for the settings sections and the notification instead of the generic core icon.\n- `info.xml`: screenshots (placeholders in `screenshots/`, to be replaced by real captures), user and admin documentation links, repository, requirements (cron, Entra ID registration) in the description.\n\n### Admin and user experience\n- Admin settings: \"Test connection\" verifies client ID, secret and tenant against Entra ID without a user (client-credentials grant; multi-tenant settings can only be verified by a user login), copy button for the redirect URI, optional client-secret expiry date with a warning 30 days ahead, link to the admin guide, and a notice when a registration change asked users to reconnect.\n- Entra ID errors during login and in the connection test are mapped to actionable messages (redirect URI mismatch, missing consent, wrong client ID or tenant, wrong or expired secret, account type not allowed, Conditional Access, revoked login) with the AADSTS number kept for reference; the error no longer stays in the address bar.\n- Personal settings: disconnect asks whether to keep the collection settings or forget the synchronisation state; \"Sync now\" reports failures (reconnect needed, admin configuration, server error) instead of pretending the job was queued; error codes in the tables are shown as translated text; dates follow the Nextcloud locale.\n- Fixed: buttons used the nextcloud/vue 8 `type` prop and therefore all rendered as secondary buttons; `variant` is the nextcloud/vue 9 prop.\n- Fixed: the redirect after connecting pointed at a non-existent anchor.\n- Accessibility: checkboxes, name fields and conflict selects carry labels naming the collection, tables are labelled by their heading, column headers have a scope, decorative icons are hidden from screen readers.\n\n### Translations\n- German translation (`de` informal, `de_DE` formal) for every string in the settings pages, notifications and server-side messages; maintained in `tools/l10n-de.py` until the app is on Transifex (`.tx/config` and `.l10nignore` are in place). A unit test checks that every source string is translated and that placeholders survive.\n- Server-side messages that reach the user (login errors, \"not configured\", \"not connected\", the default \"Contacts\" folder name) now go through the Nextcloud translation system.\n\n### Tests\n- Unit tests for OAuthService (PKCE/state, refresh, invalid_grant → one notification, invalid_client → admin error, redirect, registration test), GraphClient (paging, host allow-list, delta expiry, throttling and back-off, retry rules per method, 401 refresh, error mapping, `$batch` sub-request retries), LifecycleService, UserDeletedListener, Notifier, EntraErrors, UserSyncService (locking, reauth skip, missing local collection, `--full`), background jobs and both controllers; SyncEngine now also covers both-deleted, delete-versus-change in both directions and policies, identical concurrent edits, the write cap, per-item failures, deferred photos and To Do lists. 133 tests.\n- `time()` and `sleep()` go through `ITimeFactory` / an overridable pause so that tests do not wait.\n\n### Compatibility and CI\n- Test matrix now covers what `info.xml` claims: PHP 8.1 with OCP stable32, 8.2 with stable33, 8.3 and 8.4 with stable35 (lint, psalm, PHPUnit on every entry).\n- New install job: the packaged app is installed into a real Nextcloud 32 (PHP 8.1) and 35 (PHP 8.4) server, enabled (migrations), its commands, settings pages, background job and uninstall step are exercised and the server log must stay clean.\n- Conformance fixtures are diffed against the vdirsyncer-graph repository on every run.\n- ESLint (`@nextcloud/eslint-config`) and stylelint (`@nextcloud/stylelint-config`) for the frontend; sources reformatted accordingly. `.nvmrc` pins Node 22.\n- Release workflow: runs the full test workflow first, checks tag, `info.xml`, `package.json` and CHANGELOG against each other, installs the signed build into a server and runs `integrity:check-app`, fails loudly when signing secrets are missing and warns when the App Store token is absent. Server checkout pinned to a tag.\n- Code made acceptable to the older psalm that resolves on PHP 8.1; `psr/http-message` declared as the dev dependency it is.\n\n### Robustness\n- Fixed: a throttled or failed photo fetch inside a `$batch` was taken as \"contact has no photo\"; the content hash changed and the local contact was rewritten without its picture. Photos that could not be fetched now defer the contact to the next run; throttled sub-requests are retried with their `Retry-After`.\n- Graph client: retries 429/503/504 for every request and 500/502 plus network errors for idempotent ones, honours `Retry-After` in seconds and HTTP-date form, backs off exponentially with full jitter, and gives up immediately when Graph asks for more than 20 s (the next run tries again). Connect timeout of 10 s.\n- The pair lock is taken with one conditional `UPDATE`: cron and \"Sync now\" can no longer both pass a read-then-write check. `--full` resets the cursors under the lock.\n- Background job is now time sensitive (instances with a maintenance window only synced during that window), spends at most 240 s per run and visits users least recently synced first, so nobody starves when a run is cut short. One failing user no longer aborts the others.\n- A pair skipped because another run holds its lock no longer makes the \"Sync now\" job re-queue itself every tick.\n- Deferred (documented limitation): a run cut short by the write cap re-lists the whole remote collection next time; initial imports of very large collections therefore cost more Graph pages than strictly necessary.\n\n### Security\n- `nextLink`/`deltaLink` (stored and replayed) and every other absolute URL are only followed on `https://graph.microsoft.com`; anything else is refused before a bearer token is attached.\n- Authorization code, token responses, token request parameters and raw upload bodies carry `#[\\SensitiveParameter]` so they never appear in logged stack traces.\n- Collection updates validate the lengths of remote id and names (HTTP 400 instead of a database error) and report Graph/token failures of the read-only probe as 502/400 instead of 500.\n- Calendars and address books are only used when they belong to the user's principal and are not in the trash bin."}},"signatureDigest":"sha512"},{"version":"0.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mzilinski/nextcloud-integration-m365/releases/download/v0.2.2/integration_m365-v0.2.2.tar.gz","created":"2026-10-16T08:48:58.491191Z","licenses":["agpl"],"lastModified":"2026-10-16T08:48:58.535733Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"ZKwv0BMmPcHzxa0jZ39sRv7Gohm0iuJUHogNehq3dnWl9PxQJl64qIQHh3zCIl8hlGZuK5ERvbLFNs/DLGg8aqpbotVGO17lAzy136m4nAxYuscv2MKijcE8pBiaJSuPa0TwEIrR32JvHQwXMNMpk/qA2hc8JqIuB7gyNmp0nB+8Ltuq41v9TkntDeslFVJLuI/1/I+IZ/0TQqdyZEuV3Vlq/gt8kNgjvhw0p/vdONHPoq3uXSSnqIKxJMv6/KoYZvSvD3NLLYuJLhHUGpewP9x8jDvWeZoiOFEZvyRCqUMqtpUb4VPvba2zizF1gVID4RZ4G0jXbMrlpzyymCpac63oYJzmXmSWvaSoQl8qLAPfYaHYL4jJHBiHPr2fFNXNAOXkYxrHqEjYJwIQXy37vBlPIC+DYpcpMsZFRn7BW/qaPw9FNxJlaRtTRjZto2fhhz7onM8uzyA3tFNjVxL9yPHnqeWVQETk8E9zZuAI49+fJ4+35uVqb2v2n+2HRpHExswEu5tNCBeqQJRtuD1KIixhQqa4gRmYryRhEd/vS2WBjXJr6Gv2T2OK0prynolY0y9LH+WjAFoK811qy5idZCeZHZfFHam3qrEOZaru+dxSAdkCQFU/w5zJWdgCybm6dBaSp0CM1a5/FBNK/BvsnsChE+FhJAQ0HkLxM04dkbA=","translations":{"en":{"changelog":"- Fixed: the reconnect notification linked to a non-existent settings section (blank page); it now opens *Connected accounts*."}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mzilinski/nextcloud-integration-m365/releases/download/v0.2.1/integration_m365-v0.2.1.tar.gz","created":"2026-10-16T07:43:17.343321Z","licenses":["agpl"],"lastModified":"2026-10-16T07:43:17.376261Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"LznrfOO+tCgKsPCmgkRIDbziD6G/tORiyX5Nsc+UMVBDxz0aJ8IPQp/fYDQzKgvIqLMtmez9Qhzkf1JXUgsZ4w8vLJCv3QWggSnn7jVHXfiLwGH1MFlry91PK+PitVe8EcCjO76wSvYDajq4DgkIogkdMIEgbULhDHRA+/3QQO0b1sfd2HUJGVG3Vz58DV5bspvzG4enxNMgz142vNFQNmFDe3zxKHQtrmNagkWMYFg2n5r1nKW55IZD2RnwLmRqfmnWHRV7loYpl8BlZITCiV5p5H7teK/1h06rDxMwnWTamsPk5x7mSO9sfUTJyctivRZZYNqonw8S63EDSWlJlmXZ1GL8+hArDkoMXL13164GkCn1jggbSm8hQJTLMu34oz1T47Iuhh+mfRunw9ex8hCqLr6cnQzI9Da3Bt9DtAjf+s0euilY1YwQaWKVSrNICgnCZ0NQIfwZv1D3qEegs12T0axy6c2htTnm+k2kC1UA/5MBoXWF2loBACmZlqSnGfPlLhM4xnmNqEw7Wqk0kgnlV2Sq41TJAEO2DE3AOKqAQAeNbHBN4em06rft5xaveP6F9+qsowzm0uWBTl9AZ4voma4fmPghCbO9qFAqWfQiC0L2oGdNIoiOjF3vO2RH4DwhCYG5Jm2Jj45EPFfjSHYs1eDb7gRZPAKMM86f724=","translations":{"en":{"changelog":"- When Microsoft rejects the refresh token (password change, revoked sessions, consent withdrawn) the user now gets a Nextcloud notification linking to the personal settings; it is cleared on reconnect. The Microsoft error (e.g. AADSTS50173) is written to the log.\n- README: setup guide for any tenant (Entra ID app registration, scopes, consent)."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mzilinski/nextcloud-integration-m365/releases/download/v0.2.0/integration_m365-v0.2.0.tar.gz","created":"2026-10-16T07:36:17.022903Z","licenses":["agpl"],"lastModified":"2026-10-16T07:36:17.071277Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"QWxuiMN2+CUAW40ir1J/1BCwWvWxYyzwR8uFrtCr82a4ate8vrpf9D3RFrVe/EM3QaS40eE0mtEGJmfiCw5+G1TGm8hP/lHay+Ze21saaEswpZnR6NGxJutZfiWZYfNBPZQXArx5HNdfJLMFCGDCRmfswCXHS2AVDJnqct/zuz1X7QLaEbA4mEYMu7AY5LzMF2kh5YD702v/g+ra+jswvqcPbLXa0ClhMqYH4e8Jh0XQVN5cRwTUygVBXoLQGA/3+Vj0MSK5hmJ11GOPV8P6eiol8bFQSuoFWnAe93rHkPAS0wjRtlzggYUGA9038BoM/XYhIlv965lTjo91n/msA4SI77HSlEVMF3+yLQWCTRSisGxBlAuNJzOuG7rEjY2wDiyd977PAl3Ja913rWzFSAzRSKCS1mqxLT5Vb+6lv72gNJA5hQMkhhtxAq/oyoxqWhvKvJkOhK0+aejZi+J8yehoOoFf3mIRxUufwXyZAfaLDYr+2pvYygnP1qQn5WyjVKczY7mt6mfscKpHOzYpAAzI/AfcQcI7aedS3BRSfLHchHb4mx6H8FnvoB4V/taN5m+cH2jt4HuYwKqpCWRnehAvn4iOS/URHH8c5E9pLUvvN9kMLxDDQ2PlVpIWAFnKPDC+YtMcRzfdScErTt5PXwrd6J7E+UxBUKJ1IpWrTZo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWxpbnNraS9uZXh0Y2xvdWQtaW50ZWdyYXRpb24tbTM2NS9tYWluL3NjcmVlbnNob3RzL3BlcnNvbmFsLXNldHRpbmdzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/mzilinski/nextcloud-integration-m365/main/screenshots/personal-settings.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWxpbnNraS9uZXh0Y2xvdWQtaW50ZWdyYXRpb24tbTM2NS9tYWluL3NjcmVlbnNob3RzL2FkbWluLXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWxpbnNraS9uZXh0Y2xvdWQtaW50ZWdyYXRpb24tbTM2NS9tYWluL3NjcmVlbnNob3RzL2NhbGVuZGFyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Microsoft 365 integration","summary":"Two-way sync of Microsoft 365 calendars, contacts and To Do tasks","description":"Keeps Microsoft 365 (Exchange Online) calendars, contacts and Microsoft To Do lists in sync with Nextcloud Calendar, Contacts and Tasks — in both directions, through the Microsoft Graph API.\n\nAn administrator registers one application in Microsoft Entra ID (any tenant, or personal Microsoft accounts); each user connects their own Microsoft account and chooses which calendars, contact folders and task lists to synchronise. Changes made in Outlook appear in Nextcloud within minutes and vice versa. Read-only calendars (holidays, birthdays, subscriptions) can be imported.\n\n**Requirements:** a working Nextcloud background job (cron) and an Entra ID app registration with the delegated Graph permissions Calendars.ReadWrite, Contacts.ReadWrite, Tasks.ReadWrite, User.Read and offline_access. The admin documentation walks through the registration.\n\n**Data sent to Microsoft:** the calendar, contact and task data you choose to synchronise is read from and written to Microsoft Graph (graph.microsoft.com) on your behalf. Nothing else leaves your server."}},"isFeatured":false,"authors":[{"name":"Malte Zilinski","mail":"malte@zilinski.eu","homepage":"https://github.com/mzilinski"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhRuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE1MTk1ODQ0WhcNMzcwMTIwMTk1ODQ0WjAbMRkwFwYD\nVQQDDBBpbnRlZ3JhdGlvbl9tMzY1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEApWBRPJ2upm8vSw86u9SfuJ8ts5Eof79s71iRrxWV/YQ4M1oc5ZIwQy+P\n38QNAayun4ZnVBJZghI7oEeu9BEfTdPDfbdXg7VyZr7qfnP9VDGiN50Cqx/FEmK4\nNzejcyJLVOHJdoESx+owQbnsmMV89L9RdzP2u/qbZm4hMpzbj+/JDaM1BTW0iucY\nvId2Aw6bSD6wUn1mA+y6NVCqS8PQcO54BQNAzvy4t1liN1EtntKxIvnh6RvtAN+6\nFh8YyNAMxEFn0pIxGveQLNvcjux5lpJqqypAvoHCiI9uP3j/F/qR9HeVTLbDhZod\nxf0c6Vj4foU8J6hWnsp21s3tpFAjFEJlVHwbmo42Dl+78O4tQCbvoX7FfZmy4iAK\nP7mmPqTEMHJEVhROyVd9lt2q977azqDEzGqFORDCeMHQW6k2HQ7ab9A5uon316fP\nzfzs1ObibScihSBFQ4p2LV3SiPhH/xZfo9pm/1lsbAn7+J6VG4+S050X91tUmP5t\nAo1CFp5/qBoKb2wNPUMUkqnvG705CtWAAa22RR+T/C3drgRQYJ5O1aZ8cVP0KWdH\naTXXYdMbGEPXoFPikNSwhxuJ3EDTUG0nRVD5Df7dlYnCNwHIShaQgP7AyiqDPoSw\n9P4NU/uJqcst2X79hufywPQqMNHfy9Tv0pvGs0Lv8kFT8mhjjTsCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAjeoLWgiZcu4FzAv6hRhx4TQnGpmFC3cz+NscaJZP4iUr\nxrhHBJ7HgSjYmqLf+Y+A5NVPKAUf7XJ6LovJQzeN2t8gmcTuhnPVQLrSAdX9lbUi\nuX3zR/aoZH5PEQCwzOpHICnKVFsS0t6f31mGP3OCOlNh5SolMKSfGefpBCtkqHDP\nsIVl8DrC5QL5RjbpJJb1Fk6FyUdXKeOZ8R6doXTfekxzFqkeECENw48k0TQwp4wP\nXHczcaum+uy1/nOCrUWV0mE/g3CJIyWWrkHoNvKOD9q7Apn174qkknGEXEAmZaQK\nDlyaa48a0ekpnxDWJTzSx4PfjCtiayqEcy0d/0bskg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_notion","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_notion","issueTracker":"https://github.com/nextcloud/integration_notion/issues","website":"https://github.com/nextcloud/integration_notion","created":"2023-04-06T10:56:58.016424Z","lastModified":"2026-09-29T20:23:17.251707Z","releases":[{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_notion/releases/download/v2.1.0/integration_notion-v2.1.0.tar.gz","created":"2026-09-29T20:23:17.242515Z","licenses":["agpl"],"lastModified":"2026-09-29T20:23:17.306322Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=36","signature":"cfzzs7tt1BKVMg0LO/kPdGuzhyc5Rz5kHaJ+MxPwi0OfQtFZiZgnL93Wz8KwBqJFY7bpHrn+bDNnlycwLH0Cs42sxwJ/mrGxZqT3x9PO925OamWWzMyGors9zIpkx2P1p5iC9J1HIotNHGHnpUKK1lOKTZTmk0MtgqOHX5e/5K99wDhib6qwdEUe9JZ7865YCUGRkMD5vfb207zXL638iNvzAw9YOQDHbdeDG25NQiJkq1WTarm9cLS5MB4lFGryZ1tygl9BYK8aT9fpfTkqREhEM+LBZqI1KhDzlx3JOubdiqD9sb1rsJ9CpE9bJXyUw8L3ZjG3aMA9T2Jmi4W7HDR7Sumghet9XIMZ/pmB86DK9xsOuf1O/8zd9im4ow55ffmnG8YsyZaDDtdiuvpwou2XnuB51GFFdcX4Hy6ZADMFagk0zPV9dm3L/KS7H011zljdcz2/yUEr/0aRXiboeusmWoqsfF+6JsevBF90S7/LXlBJTOlgsZfk7/guiENWsA0jD1gdb0OxjJ9RL9fgiVAJXEhzEnh/+ZZ3c9Gy/5kvN+3aNGXL8VxQFDhEZFn2p5uBLehzubI24yOPBWSetflB81Ik0DZhC7HisOgkW2tgvr6r/ghLWx5xHLQjSJgKH25+pzyELghFGGgf/m7Dl3CGK5WUfl6/dE4Tipx4WxY=","translations":{"en":{"changelog":"### Changed\n\n- Added Nextcloud 36 support\n- Updated nextcloud/coding-standard and @nextcloud/eslint-config, and synced the lint workflows\n- Updated dependencies & translations."}},"signatureDigest":"sha512"},{"version":"2.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_notion/releases/download/v2.0.3/integration_notion-v2.0.3.tar.gz","created":"2026-07-29T14:00:55.602236Z","licenses":["agpl"],"lastModified":"2026-07-29T14:00:55.662328Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"bXUoKQFE4u/CbYrlJKHS/znDwzeFkiPYFjTTnyr/QF4wSYjThFBPR8VGjSDlPCqBn/KzcyWAdTdkH4L0WNtLDOzuFJqbb/n9SDqSLmh72n4/oSYvo5dZ5ImnBCQHTS1SK3LzUsMtNFcdQIKoZsbNLzikpok/yomBtc1XpDomDqEgfuVxfn8RVCcBRW5GcBbTzzpOEH+bVJXmZxgAyOKnu6A/erywiK4jT0VukqdlC73b8Hmn31SJduM0z6ododKgNPBxg9ZfWc2cyQcwwm2F3n3NtzzZTfiW0ETDgSWFjBi3/e2Uq73eQChQbpEbFmunaMjgDNiD3O9pGENAVqjxV/Er70Ucgg6aZ9yybRhXYMslZSpVnDmNtWuF53Tgf3RCjOr+DRP4kTSiybEZIsNTvuW4PdmhXZAESe8quPXU0OtQNNUHjywJvuyFXXNzzJUdmIXnEI7KboieA1QEa871WL4cQrFtFs6gY4epmkWP3/IvV3/Yf0XeB/+DYa5FF4H39cFFsgxtTsm3tvggp59nIWT8OhNbC0unu4i7caUZ0SsnQu3gE8/RtOn9moBQao8csuxkz8NLvh1x6j8M1RYvMMRWw9mPw1V+nQEvVDQRH7+Jhwv0vdftbeKAFkX53N4M6NJNi5Ae+APYlrviHLEs6QHADhY74XRVYe4xi++iehw=","translations":{"en":{"changelog":"### Changed\n\n- Added Nextcloud 35 support\n- Updated the Nextcloud frontend libraries from release candidates to stable releases\n- Updated dependencies & translations."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ub3Rpb24vbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ub3Rpb24vbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ub3Rpb24vbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ub3Rpb24vbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90NC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Notion integration","summary":"Integration of Notion","description":"Notion integration adds ability to search in Notion and render its links."}},"isFeatured":false,"authors":[{"name":"Andrey Borysenko","mail":"andrey18106x@gmail.com","homepage":"https://github.com/andrey18106"},{"name":"Alexander Piskun","mail":"bigcat88@icloud.com","homepage":"https://github.com/bigcat88"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhIPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNDA1MTg1NzA0WhcNMzMwNzExMTg1NzA0WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9ub3Rpb24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQCpPSOr/Tx739okF3acLexB7CV1Qr0ZqUHkGC8EKjyQJvUxCbVYV9+P\r\nofEwaI4aZHY1wsoWjpuMrXd58tqf8mdfO/0V8Dvlrx0W0zShUz8LpjHmsWYJEBOb\r\nEbi7BRjxtvCB05xh9VXvGwDbQuLYlWdMw5/GVeN7tL3Lnrfe//PH9ZLWrML5BWvR\r\nP5MAMHpQTY0knLlKilQG95z7CVddlJsjT20FDfqCQIhnjzvZmw3JcQuheVjtizWd\r\nffaYePN7qDUK8W85E+vDYt11wCbc6V3EXYiZZDZnh23ioNcMGMZEp2NpoeRaZkOf\r\nSu0RWcRSfjO6akIPYIOC9lR2slW4PlchGwBrpBjUsg00zREmUTZRWZB5f3Hb4diA\r\nwIzb1RiQuioM7MDcgBALdDWa2sr+/myWk3og5ZQU+1fYJmUW7wc4eynzfxnGiez4\r\nljtW9HZW4rvV7PUV7bg+KMW+6lKecicp5nY9Npid10I/qopc+MqfcCd/zdF6WxVK\r\niaKu5YFubiZxaavekQtdOgAGpLofb7lcbZK0se7c3qBM5nLiIYrTLoIXcYMNp1dp\r\nCtrbduVGyDoVw0BYDLQTUNN9LdyET0/dIOvH1Ti0ozr3YYpa0AzXWS5bvfIrlAX6\r\nJTQSq3okJV5H5TribzYZJJEm11eFhlBTYZLUgvlPhckJ/w1UCGx2KwIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBedwQGCJyIzgTd+Rf7rxTPd3qsZOrs1lTlkodKqdmA\r\nGcXKAU7QPticCIFZlW4jgdurkWcv/uXF/cZp63nwJO0NKHen4KHryC3z9RKH93uo\r\nlcpTYI6b7r0+zd9NCdnVlaS2l6ODfiuxWMfAZ/4wR+uaTy/VqwgDSq0FMmxgzgZx\r\nM7FsjFrAivi9mfdaWdC+j4HoDoms8RBbijx/HrgDguXrMMtkeIjz+N7XOH+aJ4/u\r\nz99vAkrnCpAfhBuubcpD2iRveJ5nDd34aqVxekYKPvA4gOMKrxYzVpy3QwjVZx0e\r\nvkj/1R3YV5bKUwFz1oCml4OrHFz/l+CeIY/zi5dxi7UU\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"calcbase","categories":["office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/CalcBase/issues","website":"https://github.com/ktec-nc-apps/CalcBase","created":"2026-10-09T12:24:12.235045Z","lastModified":"2026-10-11T03:15:12.488995Z","releases":[{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/CalcBase/releases/download/v0.1.1/calcbase-0.1.1.tar.gz","created":"2026-10-11T03:15:12.472865Z","licenses":["agpl"],"lastModified":"2026-10-11T03:15:12.607330Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"f0yF6ALK22Hsjt2LDbwIn4vvKHpTRXxszA2In0xH6eP3rF9FrrD+UNKN5eSJcBkP2fexEWO2d+iCzgJIG6Tyoga9l6MIsesd3SnC6gisfFGlCMkB8hbHo5ekyKyEfAInNMPbFpBMGqm58iEORX8R90R09zMu6/kwwhKo7Tq9ApQGKrvzGWoTp4sGXFF/oD53bh7IO5DWUgvHVXpo95fPEYUm7DZ1VwxTsBWRjSBbXsjpTItOIDPwACSfR3lKw56CC4QlC4KoQT6I+Rsa1lHXfirgLh8KP416XXDHFYr6FCMv7eWmX/P+BoTuZmdTCOHAcym6Izhpoos+RsRLpE50DnwBu5fjjqZR9IJZA2LvpJRo5hN0m8t6/V0FaibelHhtHDzwlI7qCs4SfdBQE6Aw1J5mFv7L82FmO9ZSgY+RUMNWTHXjkYvY4xo6Xn/8Zrq65DrCJlrCQe03CjUmN7uj8LJvCnf8MH3MDwxr31AEyUgAemhALR3IZyI7BJemeyVWbx2FVVva+vA7+SwvpvYHXWbQ7dcv+u6mFekzMPGF0rc9IMgSi43zRKmsWFZI0QmDrvisr/2rXZaxk/ukQAWcCmusb2cefaCNQeqFOzxv12ZYh9bkuVXzH7uWrUx/lRp5RLFlNcf4xb9ybBimRu6JLy0em/kYH8MTMdWuhLxtFK0=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/CalcBase/releases/download/v0.1.0/calcbase-0.1.0.tar.gz","created":"2026-10-09T12:24:16.836317Z","licenses":["agpl"],"lastModified":"2026-10-09T12:24:17.058612Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"fFGUe6jei65b5720RDT2R0iymNrkjOzCQt3RHFDup4WQ5CQydUMZdXrwYw8KQsMfeFRgVFOXdxd2DutxPgKv4FmWbR+jan756F8h82tXDvTiBHuYbQeB/oxoGpR9EnuxfsHz+4HXE1kHbRObDAOR1/zd7B0qUj6Y59KAaCBOuAFbmMFZmTWybPMI1POofwROA4dRGcZ8jbFld1g23csB7gEqCbJw8WQvmE7ZDwxCYGuib9nLrntq9VCVISU22ZsPyalGkgz9kH/txoAmxDLCY0pG8HqlyFYa0uF2gTYHzPJ3mjBGv/FuOW97eznOkfp5V4TM9Nw6mIPc1+DduGW5NQkCMCKPU5NH0vXKz3dBO3BpWowG2piYZ3cbCfE9ZaFjH437Qgbs38bUbKjEE45luJQSRMD5you1fBw/levCRCo1VAaj+aFJEGbxtyH79ians9lAUGl6RVrveIOcrzcsHigNvsPPaFTGziPpBwmrg0ARQ6mjfOHkBsLo4Hq3U/YC7Xs4UuhM9ER1oFzwK9AdPBH8aqDkiWjNYU2GlN7vNLu5kbznoR4Cdu+3rzd+8t0Mh8BDdxqsgKk8d9/+wuaMIdt7XsxN2SfaD8w2zviK5FeG55qgmpUx7kWMm+kklWH5XZlmS84GOHsJFIOIYKzpiipKliqkPS0lTuRiLSvQOzM=","translations":{"en":{"changelog":"The first public release.\n\n### Added\n- Workbooks saved as self-contained `.html` files in the user's Files (folder `CalcBase` by default): one HTML table per sheet, each cell carrying what it shows with its formula, exact value and number format beside it; versions kept beside the file; autosave; a conflict with a newer copy on the server is caught.\n- A calculation engine compatible with LibreOffice Calc: 494 functions, references across sheets, dependency-ordered recalculation, Calc's error values, number formats including Japanese era dates, input recognised as numbers, percentages, currency, dates and times. Its test suite (3,563 checks, many of them LibreOffice 24.2's own answers) passes.\n- A grid with Calc's keyboard and mouse handling, the formula bar with function hints, copy and paste with other spreadsheet programs, the fill handle, insert and delete rows and columns, merged cells, freeze panes, sort, an autofilter, find and replace, cell properties (number format, alignment, font, borders, fill), images with cropping, alternative text and compression, and printing with a page setup.\n- The screen of EditBase: categories and books in the sidebar, the tool rows, the rail for insert, import and data, the sheet bar at the right (its width can be dragged, and the pictures grow with it), tooltips, a status bar. Sheet tabs under the sheet are off by default and can be switched on in the settings.\n- Fonts: the fonts of the book, with Google Fonts to choose from; paper and page settings kept in the book.\n- Import of CSV/TSV (UTF-8, Shift_JIS), ODS and XLSX; export to CSV, ODS and XLSX. Import also from the other apps of the series and from Nextcloud: RegiBase, FormulaBase, EditBase, NetBase, Tables, Contacts, Calendar, a web page and a Markdown file.\n- An AI assistant through the AI-Hub app, off until the administrator turns it on; the width of its panel can be dragged.\n- Settings in the look shared by the Base-series apps; light and dark themes; Japanese and English; a layout for phones.\n\n### Limits\n- CalcBase is for tables kept by hand, not for bulk data. A book holds 100,000 cells by default, a sheet 30,000 rows and a file 24 MB. The limit can be raised in the settings, or removed, at the user's own risk. A book over the limit opens read-only; nothing in it is lost.\n\n### Not yet\n- Charts, pivot tables, conditional formatting, data validation, array formulas (Ctrl+Shift+Enter), macros, and several people editing one workbook at once."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9DYWxjQmFzZS9tYWluL3NjcmVlbnNob3RzLzAxLXNoZWV0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9DYWxjQmFzZS9tYWluL3NjcmVlbnNob3RzLzAyLWNlbGwtcHJvcGVydGllcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9DYWxjQmFzZS9tYWluL3NjcmVlbnNob3RzLzAzLWZ1bmN0aW9ucy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9DYWxjQmFzZS9tYWluL3NjcmVlbnNob3RzLzA0LXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9DYWxjQmFzZS9tYWluL3NjcmVlbnNob3RzLzA1LWJyaW5nLWluLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"CalcBase","summary":"Spreadsheet that writes plain HTML — Calc-compatible formulas, ODS and XLSX import and export, no proprietary format","description":"CalcBase is a spreadsheet whose workbooks are ordinary web pages. Every workbook is saved to your Nextcloud Files as a single self-contained .html file with its stylesheet inside it, so it opens in any browser, on any device, for as long as browsers exist — the sheets are shown as tables, with their values, formulas, formats and styles written into the page itself.\n\nFormulas are written as in LibreOffice Calc and Excel: =SUM(B2:B5), Sheet2.A1 or Sheet2!A1, absolute references with $, whole columns and rows. Where Calc and Excel differ, CalcBase follows LibreOffice Calc. Workbooks are calculated in the browser; nothing is sent anywhere.\n\nCalcBase is derived from EditBase, the word processor whose documents are plain HTML. With the free AI-Hub app it can also use a large language model (LLM) as an assistant, set up once for every app on the server. It is a young program, so bugs may remain.\n\nFeatures:\n- Workbooks are plain HTML files in your own Files, editable and shareable like any other file; versions are kept beside the workbook\n- Sheets, merged cells, frozen panes, column widths and row heights, number formats (numbers, currency, percent, dates, times, Japanese era dates), fonts, colours, borders and alignment\n- About 500 functions as in LibreOffice Calc: mathematics, statistics, text, lookup, date and time, logic, information and finance\n- Import of CSV and TSV (UTF-8 and Shift_JIS), ODS and XLSX — values, formulas, number formats, styles, column widths and merged cells, several sheets\n- Export to CSV, ODS and XLSX with formulas, values, formats and styles kept\n- Import also from RegiBase, FormulaBase, EditBase, NetBase, Tables, Contacts and Calendar, from a web page and from a Markdown file\n- For tables kept by hand, not bulk data: 100,000 cells a book by default, 30,000 rows a sheet, 24 MB a file — raised in the settings at your own risk\n- An AI assistant, through the AI-Hub app: a chat beside the sheet that knows spreadsheets and Calc formulas, and proposes changes to cells that are applied as one undoable step\n- Japanese and English interface; light and dark themes\n- HTML5 and CSS first: a workbook is readable without any program but a browser; JavaScript is used only for what HTML and CSS cannot do"},"ja":{"name":"CalcBase","summary":"標準の HTML でブックを保存する表計算アプリ ― Calc 互換の数式、ODS/XLSX の取り込みと書き出し、独自フォーマットなし","description":"CalcBase は、作ったブックがそのまま Web ページになる表計算アプリです。ブックはすべて、スタイルシートを含む1つの .html ファイルとして Nextcloud の Files に保存されるため、ブラウザーがある限り、どの端末でも開けます。シートは表として表示され、値・数式・表示形式・書式はページの中に書き込まれています。\n\n数式は LibreOffice Calc や Excel と同じ書き方です（=SUM(B2:B5)、Sheet2.A1 または Sheet2!A1、$ による絶対参照、列全体・行全体の指定）。Calc と Excel で動作が異なる場合は LibreOffice Calc に合わせています。計算はブラウザーの中で行われ、データが外部に送信されることはありません。\n\nCalcBase は、文書を標準の HTML で保存するワープロ EditBase から派生したアプリです。無料の AI-Hub アプリを入れると、大規模言語モデル（LLM）をアシスタントとして使えます（AI-Hub で一度設定すれば、サーバー上のすべてのアプリで使えます）。開発を始めて間もないプログラムのため、不具合が残っている可能性があります。\n\n主な機能:\n- ブックは Files に保存される標準の HTML ファイルで、ほかのファイルと同じように編集・共有できます。バージョンはブックと同じ場所に保存されます\n- 複数のシート、セルの結合、ウィンドウ枠の固定、列の幅と行の高さ、表示形式（数値・通貨・パーセント・日付・時刻・和暦）、フォント、色、罫線、配置\n- LibreOffice Calc と同じ約500種類の関数（数学、統計、文字列、検索、日付と時刻、論理、情報、財務）\n- CSV・TSV（UTF-8 と Shift_JIS）、ODS、XLSX の取り込み。値、数式、表示形式、書式、列の幅、セルの結合、複数のシートに対応\n- CSV、ODS、XLSX への書き出し。数式、値、表示形式、書式を保持します\n- RegiBase、FormulaBase、EditBase、NetBase、Tables、連絡先、カレンダー、Web ページ、Markdown ファイルからの取り込み\n- 手入力で管理する表のためのアプリで、大量のデータの処理には向きません。既定の上限は 1ブック 10万セル、1シート 3万行、1ファイル 24 MB で、設定で引き上げられます（自己責任）\n- AI-Hub アプリを使った AI アシスタント。表計算と Calc の数式に詳しいチャットがシートの横に表示され、セルの変更を提案します。提案された変更は、1回の操作で元に戻せる形で適用されます\n- 日本語・英語の画面、ライト／ダークテーマ\n- HTML5 と CSS が基本です。ブックはブラウザーさえあれば読めます。JavaScript は HTML と CSS ではできないことにだけ使います"}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhRYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTIxOTQ4WhcNMzcwMTE0MTIxOTQ4WjATMREwDwYD\nVQQDDAhjYWxjYmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKax\nOQ+5puXgCub/Owltz3zUc+F+50Am+kepAoYO0C5xrUs+HBZwJjt+o9ODJ21U7bMB\nb+5/9wz7hqB8YyURD6gkut4mw9DNFzcpMNUN01vsAw4iwCmbaoFG1RYnrGAYc1HD\nboLAsyonED3IMeoUQrNRgrbT0nJGBNH3yX5NZ9bySbRQ8BszTTHFmP5KX4ZCwlE/\nvlDiyJfsvC7oVDhR4ZtamkiAkQEWqfrNhOFR7HsS8v5nOqUekEOV/QsAvfSsjXst\nAwvrd5ftrmIB7RuL4EQ2jW6nz7/IGu5neBMXer4Svo+SBhoOMHqgoRiDP/Ecb3M6\nvtkfNagNG0+ovyu99lIH4A0rjCqb/1Vq4z+40ksIdojOhh4r1lrMvR11QYUsf/Z9\n9fK3FaTABKYcaT7BEZygguYnlCsuGWezlAxqCLV0eeofY+26Jhr7VPhD68cE3nmU\nLQszywR/rLPvVuiIev7PIMCf83WlIphFW42BLxY5lnSnWe6ChDmWIrqgR8roiXpo\nuDg2X+YBUKaPx0bgOGNu3VFP0iUbWRrPDwMhCgSuaZ0zWR/XrANJ3h0BMc82Fda0\nF8S7329dsmTsQSYMONCMR6nFTQlB/x69GDeFpEokXq0P5y1NFpv05dYPk3NsB6+g\nxFdOjnOeQTDgfwQwm68ofgwTLvhDfAyujONiheMJAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAE8qSU0J6Uwf6HzbBaYe4VE1vX+5pGKOvyWmxI8QeRNz01VMx6LBcT4A\nl10yMd8t5JeedKLMZBVmXV803ZAbi37LycdIxWJjjiNKrVwr2Dqo3kfICQ6UVlXR\n7s8UZaX70XRnHCI6ekXQ85usxYWVB9VxTSDIuYv8brD7dbHjLW3xl3j8Xp1pK28d\nn3lmQi2DZdnKaJXbm+liReYzpwsBM1ZicOnKKH+xMyELbnBWoBJLXJlpC0bWdfpH\nuLz8Uf6K7itLKYne4T14cPjl1tiKmHxRY9LNtJN8cqEvtMxB7e6faFVf6N4FIdpJ\nYL8SlhbYxbP/Iej4p71PgfqB/i1rQkU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"secrets","categories":["security","social","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/theCalcaholic/nextcloud-secrets","website":"","created":"2022-11-18T14:51:07.714638Z","lastModified":"2026-08-16T17:11:23.747508Z","releases":[{"version":"3.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/theCalcaholic/nextcloud-secrets/releases/download/v3.0.6/secrets.tar.gz","created":"2026-08-16T17:11:23.734582Z","licenses":["agpl"],"lastModified":"2026-08-16T17:11:23.794348Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"gm3Wjb+pJx347c0YV28Z1VRMWbOqTxwzPhD0hm+nI1oGLaPYTg6bQX15QeMKvoFC\nAJo6bsiSTNQHXhnUx5T4rbpLGGUKanU5DNuFmS0GYkxDKTDBmER4G9dREYf44UJx\n1dadm4iAC/IKbOZ43f/CfXuMLFRnaxYNKpT+vpYOkG/Eg6yUyOThkPkqNYo8judu\n9C3hG6wxvf34kj6uEIvl/DArlV0x3nKQssp0784Cxk75Vgdyg4H69clRcDQ0aDRU\nMbW16KoYlFvpBLxqDgjQ9dOWmGjrgrKvlb4eWCte/c7k+ddgDBQ5qUpZ0GdoUQF8\n5KNjibeaqtldetj42f6XfbAso7tcW22JTldLcYRh4hve92kuzMvE4OjrzRnEpOsV\njXszlRITGbKwJ+SuUjTYgUV367t5Iy9LbTJ3Gwlfg5jXys1/sHMWVOD9w/Jh1MlL\ngbOhvzrit8/+1RX/V14u4rpcf86r/H9k7EFmIOoRp+NG/LmlHo2EPxRzv7m6i1Z+\nHURH3wPkLVrodC1QqAsjkEin7p8xm+VtVZot5J+BBtoMFW02sYl59/jGbX99fzs1\nTVyuRJ7iet/vlbbmMaYleo25w72KnRO78bSly5dhaOOELXJHZd9bn8AKx0V7O4Lu\nMKueaIbKZV+5qDbU4+z/5NHKv79iR7iBPWn5k0NSrMA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9zaGFyZV9saW5rLnBuZwogICAg","smallThumbnail":"https://raw.githubusercontent.com/theCalcaholic/nextcloud-secrets/main/screenshots/share_link_small.png"},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9wdWJsaWNfc2hhcmVfMV9waG9uZS5wbmcKICAgIA==","smallThumbnail":"https://raw.githubusercontent.com/theCalcaholic/nextcloud-secrets/main/screenshots/public_share_1_phone_small.png"},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9wdWJsaWNfc2hhcmVfMl9waG9uZS5wbmcKICAgIA==","smallThumbnail":"https://raw.githubusercontent.com/theCalcaholic/nextcloud-secrets/main/screenshots/public_share_2_phone_small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9uZXdfc2VjcmV0X3Bob25lLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9zaGFyZV9saW5rX3Bob25lLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9wdWJsaWNfc2hhcmVfMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9uZXdfc2VjcmV0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9wdWJsaWNfc2hhcmVfMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZUNhbGNhaG9saWMvbmV4dGNsb3VkLXNlY3JldHMvbWFpbi9zY3JlZW5zaG90cy9wdWJsaWNfc2hhcmVfMi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Secrets","summary":"Securely share data via link","description":"Secrets allows users to generate share links for text based data (e.g. passwords, CSV lists, bank accounts...) that can be sent to anyone (including receivers without a Nextcloud account) for retrieval. The data itself will be end-to-end encrypted (so not even Nextcloud can access it) and the encryption key will be part of the share link (the anchor part) - but never be actually sent to the server. Once retrieved, the secret will be deleted from the server, ensuring, that if it arrived at the correct receiver it has been seen by nobody else.\n\nSecrets now comes with a cli that can be used to automate the provisioning of secret shares: https://github.com/theCalcaholic/nextcloud-secrets/releases"}},"isFeatured":false,"authors":[{"name":"Tobias Knöppler","mail":"tobias@knoeppler.org","homepage":"https://tobias.knoeppler.org"}],"ratingRecent":0.5,"ratingOverall":0.95,"ratingNumRecent":0,"ratingNumOverall":10,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhHxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIxMTE4MTMwOTIzWhcNMzMwMjIzMTMwOTIzWjASMRAwDgYD\nVQQDDAdzZWNyZXRzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Bbh\naE2XfNDhUdTfXl2WSBTRCStFltKRPEMoWu6h9+BlKrmHmQbqU1J++Sj0e1/NQ21I\nyGZxHhM6jKUFMltDlqWutsgPmCFWBj6F5cYHNok2oiX3OvWz5k1bW4Z4fKI/w92h\n5kVJnzLf/hLXLY08DZsQbdoEOFAEPf2se3gNyxRqP3pS4cZSH/ImNdlBJxWkjy1m\nmRKjEuYGW8fuZ5x7/9yIafQoDM+aVBwgGuIdCln0BugfqOuaetglorAnNO3PJYEj\n02hajO1qBg7mrmmz1YL2/sHj5kp2fSK97p6Oid4+WvIQFT7qTXMur0wK29kOF+qA\nLqN6cVl6awLZd3bDq/wnZgrgiPXZB+ptlf8ChFjieqyIK3p3LvkwxxmxjrMUNegQ\nZfdDIER9K/YYOWMZGB3VpNNem9GhZhvRMXOQkSDRp69kNUa2i9P1/nkTbU7/5AqO\nRPOaDtnO+3sUgYF1DqO1J+59v4uJgSN8pxwBZPSY1uxAXQkVhG3MMoRC1mrqsgC+\n2AY0bkCiOgzlTVwchohZe2X8V5+dhEfp1baKEBThkb0y0ylzV5K4aD9m6H4ch5PJ\nuSTZ494LNo0l0n7zhgMl2LPUmPZfGIq0xk2PayyoufhUfG8rFrsBvregeDO1E54N\n5s5jq4eMNy6wQCTTWBA6K4Cww5zKN4nmsPyXfQECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAXe0JxeLiiPtS24c1TqkUe0uyKAtb8ErbrBoY8rl0K3HciKRe/epgtG2q\nlbJw7fZ2OtIx8Vae7s8Bp6vKkxxThgFMwbkctAu0MqODr25mNGME7BN4sri4Uhhm\nVud1jQiUm6uuVm24JBT1XQnFPHd6coXl5miYtOIZuiz2431v/bA38DfOppUsS8de\nIAPJ5gwZ7a1sDa7GUh99+JXIHC5GkiYt8P8tdA3b8GmXlDKE4zRVRLDPMvZxh3GU\n70INtn3uAKLSSx8k6HSkGW64Puh9ShoqW3F4Nm204uv8JfVnVtWaOPq6O8W68RbT\nMPAGcLoDaSeXTah1lLV1u+2wCKoPZA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integriq","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ConductionNL/integriq/issues","website":"https://github.com/ConductionNL/integriq","created":"2026-09-06T10:09:00.036864Z","lastModified":"2026-10-16T15:11:59.420040Z","releases":[{"version":"0.4.12-beta.20261016150933","phpExtensions":[{"id":"curl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/ConductionNL/integriq/releases/download/v0.4.12-beta.20261016150933/integriq-0.4.12-beta.20261016150933.tar.gz","created":"2026-10-16T15:11:59.432399Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-16T15:11:59.449168Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"Mk8kWFuMyrozgS73WIh69c4WI1GmikG6j2PDcXqqx+A1714n3EkVqDZ6+UYOAG/2/F6wQPTDb4gx8ifYWBKVuZkmiCxmWhxLsuRZOmTJ+32eubxUZoDQQaBA5wsadLnzHS2aL2VZ/A+Xhl8t/QZe2qRXc54ivj204hP2H6ndBZTithQBvImdVkhhqOBj7Ty0U01yAdWqP3MvraK8JQNbtYQmIqh8Xt2GLeVf2uxLDyanAE84QtrDRlEZqcmrEyDisDtSiF1LUmVa/2RPNitlH0bCM7s9LMK8ORI2IVDAqosiktipUXi3EGnUExY8JqF3uUE5tPhlbUkkFCj5kmbtcK4bZIUGu67VWqOzS3C6+rNLAf3TCwF3gf6u6rZdOb+XmZkHof7mb5hFrwj3vn8S4HFdbK2AgxZHmRgRrMls4xkvfEEXyfYIt/2FRi70FEKB7oADhI6xsy8Rhh0M14Zb5OSlgMK0uk9DJMJ7WmHpXoRLE9eM47q4CWLIUFldscPHp+9xEzXRZXKFnGgiJa0Ob3lNDBhyqUz8K/2OodIDoVDjfwRkenxSPvTVI9F0CVq0c3+QsSGtKvPQGs+t41Gurhw3Z7PdI6uQMn65leh3EH6Vb/QTIb0JZulGmGp7pMjMgnQ6gSGcpya7wilmTbgP/NaEEarTVBBrMMxz8QB0i+8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9pbnRlZ3JpcS9tYWluL2ltZy9zY3JlZW5zaG90LWRhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9pbnRlZ3JpcS9tYWluL2ltZy9zY3JlZW5zaG90LXNvdXJjZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9pbnRlZ3JpcS9tYWluL2ltZy9zY3JlZW5zaG90LW1hcHBpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Integriq","summary":"API gateway and data-synchronization layer for Nextcloud","description":"Integriq is the integration layer for Nextcloud. It connects REST and SOAP sources — including Dutch government standards such as PDOK, StUF-ZKN/BG, DSO/Omgevingsloket, and Berichtenbox — to typed OpenRegister stores.\n\n- 🔌 Configure sources, endpoints and consumers with shared authentication (API key, OAuth, JWT)\n- 🗺️ Map and transform payloads with the built-in mapping engine\n- ⏱️ Schedule synchronization jobs with webhook, cron, or manual triggers\n- ☁️ Dispatch and receive CloudEvents with dead-letter capture and one-click replay\n- 📋 Apply business rules to endpoint traffic and keep a per-object audit trail"},"nl":{"name":"Integriq","summary":"API-gateway en data-synchronisatielaag voor Nextcloud","description":"Integriq is de integratielaag voor Nextcloud. De app koppelt REST- en SOAP-bronnen — waaronder Nederlandse overheidsstandaarden zoals PDOK, StUF-ZKN/BG, DSO/Omgevingsloket en Berichtenbox — aan getypeerde OpenRegister-registers.\n\n- 🔌 Configureer bronnen, endpoints en consumenten met gedeelde authenticatie (API-key, OAuth, JWT)\n- 🗺️ Transformeer gegevens met de ingebouwde mapping-engine\n- ⏱️ Plan synchronisatietaken met webhook-, cron- of handmatige triggers\n- ☁️ Verstuur en ontvang CloudEvents met dead-letter-opvang en replay met één klik\n- 📋 Pas bedrijfsregels toe op endpoint-verkeer en houd een audit trail per object bij"}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhP7MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTQ1MDA5WhcNMzYxMjEwMTQ1MDA5WjATMREwDwYD\nVQQDDAhpbnRlZ3JpcTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKjS\nVB65Tjbb1OKMEreNfzY2l8Q4gwaEq93Rb+o81iYMstLucqyeuQnMW1gZrytNmyM6\nTxcaWk5eIfGzqAh1k8hw4I7q9id1GJ0MnZAcHXqAhZVW+evD9OsAGQx2VFlIz/j1\n3JXTzpzrK92KO6bNEV44CJ3HncyKVxN0gK8V5Lww3a4kTILiipDxcJvzCb6pHgjl\ncptdUO6MDvL+ESYxbp7XTbNzEogQko7X93dQktoKbbjrPOw7de4XVKIhfV0GMeht\nszzrG2FuxFvAAzef1i4++PBnB8yhcsdqNc2319PR7bbEhPuaWCv9v2OxpwUGModn\na3olLhzI/Ink/s1V11PFsj/9jRGG5YTW2/pc4e22lmyLLHqdYSGpvvn9GCq6BGOM\nbc+4I9oFrsRwCTONLrJ4xkL7QjAV9iMFoe4dPpsTNNtf5adTE7X4X6gIQ1AgLgbx\np3t4ChdCrDdMpWaK7fDxqXjPKsDGkzq7SRYiNbQPvwcQQoVW2Aox72Wpr9YJjVzL\nzMI6UoWLoz/Q0yALeD6U5q4B8eEqKZTBNfSHpRJ9BdT9V7QkxHfdxRizycQH7DLk\nKk3prawbr4IEyfy9vvEGdtKZmPi5pWbqDln/hX9hKDZKlFfogBITUrycJQ4BwMDN\nsYZOyDBP2tNUCk28cGBMUjzzfeGWfxtsCbX1xUT7AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBACeR2z6MRLqNKZ4m+tfPYpavkbv7GaX5ov5hQYGnTjAu+0rJgRZoVajW\n90wcQStYscpoWTUIA/YYG9eo6eoDChNyY4uFvWAsshfUPLvfIOIQMe8LTgX/QHQn\n6QSYW5MSlM3LwNSSmh0i8TUJozUl2ZLzcnZtb41XQ3aL1A8GRs0psq2eNF7ZNQfP\n6zQnVzKxGZ8XpMxsc+Q/ci1EmVjb2CVyujsD10nbjualcBd/nQdYhbEDkU1aAy00\n/JLN58p85roD4oRvUJn3fCXb4ovhJn+drwSWKmyMRpN8ODoeqwYmfG1afzWrWOwE\noJLGyX1CZSxqF36GhQJeMDx5aawpxLw=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"uppush","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://codeberg.org/NextPush/uppush/issues","website":"","created":"2022-01-04T22:06:16.099051Z","lastModified":"2026-09-26T09:11:46.452162Z","releases":[{"version":"2.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/NextPush/uppush/archive/2.6.1.tar.gz","created":"2026-09-26T09:11:46.444746Z","licenses":["agpl"],"lastModified":"2026-09-26T09:11:46.498364Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=35","signature":"WMTd317mZgUCEwXDietkF+CnMA9xPJ0TjCQY6vWTsBqUFOgKE+uvunbbCwFm1/Xm\nkHJWTpOEnh4qrHoKLvbmPF51sIs1kshCGN1783mRMjES4fCP0GDyXt2AD5r4qycJ\nVDNLq9CJLkFYehwHPGvQFKdMnHvIUwzY3EnZ2DIOVKyy0ePnh6gHtJ1bODpOYMEI\nqKmRtepByGLD3iaGMwnzU2idy48UTlaj20nAj+CsJzyVbX4CRg9MOmq3nk7P/goW\nPDS240GCsQDv414QywLoEgH+7mkzwYexA+0nUAYwXwnquo3oh30U0NL64xMh6zY7\n8+rZ34s1lW5XtWkllvCN9pek6Z3Jss4MgjLAHSgnBf/ZhtwADSEcTzWU9cagpXxz\n9Ss6totrAPEZNeQA6NOUfq07cV7HkQ4toV4Vp8CyANvOF1H+3dXkNURHa/OLngPR\ni2Pn/aZaZYIO9oN2+6jSsMkbCw1Y6U3rlYW7slNNRitGC9Q54OIVFKr2sqjPssjf\nWpP1ycO5dne3oyNHN1lza0Trg5wTiPkXigY30h4a9tFp4myBqn9e0/uhRnGfKAlX\nSILHWVIqv+IdZhoRtYxcMjJgBRk2C0TZEVbrFJc0nnEdl2waixRYHP00EbUmTAKY\nrQ0hK17QrAUBQ+NctsMFk48EJKsGDe9K3DWa6Xpymrg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/NextPush/uppush/archive/2.6.0.tar.gz","created":"2026-09-21T09:29:22.490614Z","licenses":["agpl"],"lastModified":"2026-09-21T09:29:22.551914Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=35","signature":"re2lZH5FLMkkr4LG4QZc2eb/5tPOff88ryGGnLum2EhUkNttb92eXPnUUFeoyVdO\nQkNS/dKK6oQUEYkIv9biibJWFFxdYPAGsOz4Z+TsZ8wu62zjA9Dtiuqmhr+I+Y5J\nquskmOkKCNjm/eSIo7IK7S/MjTfHCLSugQjJYeqZAHF7iOGOBF9rezfLZ5DzPuUV\nfZawHR/NB4/+gU1sCvC0n3r2FXnAD+thIUigKRL9c00Kfn2HaFBCXLndeKx/TG3d\ni5TRcnGW/tZHfaAk7GF+262zShteN097HrJwqnE6ePWfUBI9K8pXch/jZfwpzgzb\n0OxZsn7aDk/2NfVXmZJ+csT92uyQKNxCPL4c2cdjPIffBWmsK7rF33+lIEeElohD\nWrxlCX92TiayR+AEIIRLoLjLrlnmcqMAzmQAuzIUdjSMaZ7UYrz4D8BJVA55Pqxc\nlpFayaKbLz6EvUWxkjwhf8lKxGxcEfb76ONBd4cJhW5z9VIbHh8mbNbZZ2YA22rs\n3Quqc35lpJAQVU3NNCrjM1NJ4l3r6mcZkXWkHLPucCuLJTTRGvn79t3ffb5sWAbl\nuc0Kk1lkoRfste/dGHpIYjMgs6vNHeWzYpPnTefAXBYLmJf7RQhpxiyP2vV88UGb\nqY8U0BScgBarrX2z2sxCfhWZtTl05Q8CSjrVopzVka0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"UnifiedPush Provider","summary":"Use Nextcloud as a push provider for mobile phones' notifications","description":"Once the mobile phone is connected with NextPush, push notifications can be forwarded to applications implementing UnifiedPush.\n\nMore information about UnifiedPush at https://unifiedpush.org"}},"isFeatured":false,"authors":[{"name":"S1m","mail":"c+nextpush-dev@sgougeon.fr","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhGtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMTA0MDgzNzM2WhcNMzIwNDExMDgzNzM2WjARMQ8wDQYD\nVQQDDAZ1cHB1c2gwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDPONSm\nSLGxBY9lOyJbFR5O5FUZ0ZdYMjoY+e9GllPI2WH7O8HMuJaGg5PNGco+hD9W3I15\nBGAXU+CzSvp1tD1y6k+t3zUABzjGkSRiQ4+DnZtrRBFpHpAqQ1evcpBcklRx9/VW\nRFH80jhh25b0wxYNabBsdALeNYoQkbdUh1K15NOX2hsbQjvnTocoO2HQJIq+ytir\njQCkpJdWJuV6aoNgQzVtPCFLtII9pgvX3CRgVuZ3FI/0AmgTq2EJh70ipnCLOju8\nItGTkgC5PIu62ZK/VnAlM1YMlZ+AFYxW/gB5QJRJBCQulgeai2jebQdNhuCDN7vh\nPfaTVJ0cZnX6Rj1pw71b4iok1eUCVgU5EDqg5OpaD7WwmRk3Kv25Cvk7n6k6zxju\nDnsrXfi48hWg0+wx030SspraAi/i/uFh0XNpXHKSgc16XvySWjI5OIAeqeBTksa5\nK19IYTdQY/FonZfahYCYwOGNxfxSseEehhxkzqyKsU/upqbQ2J+3Su5jZQt50ZJ5\nasjFev7k7RBICNY/m1SIYeT+ku1QTE5A5fBfja86NpXoXCxtFcMO02XVX6IFLPbg\nPG+Xv27nwQek9HfZSXSaJuGzNisuuYadNPURQQ/364AQJmVX0+sMaj/RRiaYQnRM\n0t/ddZUv95CtzUMJoul/1VqbJoefg7/tV/YLzQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCbDFrTC3wv5Vp1KllV0iGX0d8chZywY6cJD7VOEwwHimLdX2Ru+caxD4nD\nq9bVIeeLGF83o0bQxnGT60zvlsTPG+UlGDw80ekGDfcDqyuY2sVgl5UnIUPCWWMD\ngu1Pe0TYh2mHl/9Tpib+Q8+RuQcJ4crUQ42W0l4ltRJNiSbNZrwH562CI6U23BWI\nYB4sfssoSpQzQVjQOTMtBpBdR/Y42zy99tfgN/Fukyxzto0F7c+pFt/J2X9Wz/cP\ncUWr9qodY0I16CouZM0DdFAEQ0kTbmQa/R4zQiX8rkpcCf18v1APFpN4jeKz/vDQ\n4pIA8WURsMQ40+/0wM5zHGYUV2Wd\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"folder_protection","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/kreotropic/folder_protection/issues","website":"https://github.com/kreotropic/folder_protection","created":"2026-03-03T23:25:01.017060Z","lastModified":"2026-10-15T11:34:27.536896Z","releases":[{"version":"2.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/folder_protection/releases/download/v2.5.2/folder_protection-v2.5.2-signed.tar.gz","created":"2026-10-15T11:34:27.531179Z","licenses":["agpl"],"lastModified":"2026-10-15T11:34:27.579961Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"dsWxLbunpTaqz4asfbX1fhG5YNIvkk8do8HDn/nYQb3kXjrZaQUgONCGfu2lc5nG\nGd1DM5/1/NtapHs50v6Ja56W3v13PJz9EvrwV7wyzQ89sQUqjUpJRwBfqF4jqccT\nRZ77x/EBtrPsj+wDGjsiHvZq0C2Dbv3arjKtjHnzIAcCEyW5evAS87xxxFybZL2n\nt59A4QzsHK9DYysrcs+0rvNCEjpgec6MpxU4urT76EzBiB0yYPm9jqiVQijH5Xm9\nOlGBSNPppt5e4EOntO0usu7gi4mgL01py7m59ReB3Vjq/3ESFUE56I8OYFmEe9Wf\nIDlbqoBTOWpiHVNzfw7xexNTyf9PPBTm1XO+pnd2D8WPYnbAGuc3Pkm1OuacbUXX\nVce3717DhA38JhH0SaV681O5LK2/wWK006FxmXKWSH1W2fRvMYWS9c8cvJ+CHir0\nmzB07cAE8J5btnxLdPsWonElyWURv5Id+XJ9KK4pA4l43NnZEcC4A8zPLK2DgOSv\n+HjE6dcI29kNx1xhBmNeaT6xwlpnBkSkVhrntPHMgbSOYZ9WfQhjJkUVjZoQTaG0\nbe0xl3g44HK1CjCBFV/9Ccgc1scSPfkD0xDL73qvfUJRpYB2S5Y2REObnIcR2yzZ\nBUEdarQcKcslSborQKq16qQwBrQ+FRaIB5QmvPK79BI=","translations":{"en":{"changelog":"### Changed\n- **Fuller App Store description.** The store page only showed the one-line\n  `<description>` from `info.xml` (the store never reads the README). It now describes\n  what protection does, how to manage it and the supported languages, in Markdown.\n- README: the translations list now includes German, Spanish and French, and a stale\n  note claiming `js/folder-protection-ui.js` is not built by webpack was removed.\n\n### Fixed\n- **No lock icon in the Files grid view, and \"Move or copy\" offered for protected\n  folders there.** The Files app renders no inline file actions in grid view, so the\n  lock badge introduced in 2.5.0 (drawn through `renderInline()`) only appeared in the\n  list view. The context-menu hiding keys off that badge, so in grid view \"Move or copy\"\n  was offered again for protected folders (the server still refused it). Grid cards now\n  get the lock overlaid on the folder icon, and the menu is cleaned up as in the list\n  view."}},"signatureDigest":"sha512"},{"version":"2.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/folder_protection/releases/download/v2.5.1/folder_protection-v2.5.1-signed.tar.gz","created":"2026-10-15T10:42:50.706058Z","licenses":["agpl"],"lastModified":"2026-10-15T10:42:50.756333Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"QH2hdf56GnaJqY0bmUqSjPnbRd/Ie90pqxTkabYotTQ2v7fOuPz9IrpKTOcs82Gl\nHgvWRTlf1NcuLZiwCeTgcG9d1Ew/k16Z617D62ZmoeSW/rbgIjNjxIuQ3zaLddFD\nW2wE+yWmXuIoUM3rFom1NPvDFYSKBebSLlMjzjCTbsBKSapBW1PH4BlJkIOdzluZ\nAhWXvZP4RQmTqFMQaWW+syNzbg18lDBcScE37bIrp7MjmlTGoYPkRTwlhwBzDk8o\nZIrjRTVA+HhlIhE+tL6PHF4KSm6KF8BaJ+JHqbRsLepOF87QMivFm2k4RXbAlbEx\nGO6BYy+v1eI80yGpY0b61TanVM5ulMFNBXUz0tCfyjUwVb1GxQxdlbUCWVfMtFKd\nywSuel9D3eQRXnmmlOW7bK+ew9dDZqe8gsNvDG2vYnO3Q/Iie+rkbyt1uF7Nkz5N\nPyl6e912uSq/HOIVBVmDYQlDaFWyLqWKnL8z+gtcayrj6K7kR3TX6FvpLpZLOEEE\nxR2e4XNGqaX5NAAU5sEQjqNUZPrFP90V3k5J0h7xmx6mByBpaS+oo9NADq3mcHYq\nzUgnR6AFx7ATbrfoq/LpsAIQiED7Fdzr2dquLl1MmPMK29e+E/vOL6vYmF8VnYia\nhARygmJONO8UvJv1isIzi8+HHTKix6Y4UbIJreJqFyI=","translations":{"en":{"changelog":"### Changed\n- **The App Store now shows the current screenshots.** The store serves screenshots\n  through an image proxy that keeps the first copy of each URL forever, so the\n  screenshots retaken for 2.5.0 (and an earlier refresh in 2.2.1) never replaced the\n  originals there: they had been updated under the same file names. Screenshot files\n  now carry the version they were taken for (`Widget-2.5.1.png`), so every retake gets\n  a new URL. No change to the app itself."}},"signatureDigest":"sha512"},{"version":"2.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/folder_protection/releases/download/v2.5.0/folder_protection-v2.5.0-signed.tar.gz","created":"2026-10-15T09:46:17.700340Z","licenses":["agpl"],"lastModified":"2026-10-15T09:46:17.770018Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"bbNmv/BW0TaKLWjhCeVQiAsi93OPK4VyXJseZQO40SysCob0nfKWZma1dr4JACyH\nBaEnLQxBOiJP1ZikPIrQlVUBtw8bcvA1MKlLSTS2UnV4M3mYNbHqHaK3cuvcqBJD\nNvR70m//a/nVMWemKvySaQnFyalCwIBVuWraLtwZIyGIQbg7i7HRHFAGiypNweQq\nz/oeVhx3xmDlkEL2v+YloT9NSYLx2ItV5QGJzoQzbfxe5eKMZSJ3aTuH5mh8IkXG\nP3va5CnUeXkG2FREK1J1ouDhdvE5f6jitEKb6s5eYbEp4y5ysQtYsey5ezv60bqe\nt9q+iXRh2Tuj8Kv4S3NF9qzpi9zD9ntQQa4gZ69LPPIOir8pvNPcpq68VPyoD+bA\nrFrSykkS0bX9m0xG1ZnxYJuMsDEclPrlce/liFiflZGb3LvEuq8I8Py84VlKE4eq\n8iqW9OmtchEJyTLPU4gkmcMFoB+LdtfvK79MmpX78tKnfWdOyLGsO+RDG59EpONX\nl7WTnlOCZ47I9izlDuOfddshFcnun/8fvXdaiA5N/JbROiagcwTkqjWvraGuVp5I\nDmOQUhJaEqXSEdCyBIx83KjFbrnUChWuknMrMRnNnlYMJtv3jrU4LznV8eciEo2p\nyqnbUqxAprzn9hFQYUaX2uo0TqPqFfbG/Z6oFZCxPXs=","translations":{"en":{"changelog":"### Added\n- **Nextcloud 35 support.** Declared compatibility widens from Nextcloud 33–34 to 33–35\n  (`info.xml` now reads `min-version=\"33\" max-version=\"35\"`). Nothing in the app used\n  an API removed in 35. Checked against a disposable instance of each version, each\n  with the `groupfolders` release built for it: the unit suite (25 tests) and the\n  integration suite (15 tests) pass, and in a real browser the lock badge, the hidden\n  row and selection-bar actions, the admin page and the dashboard widget work on 33,\n  34 and 35. Every instance ran PHP 8.3 or newer, so the PHP requirement stays at 8.3.\n  Contributed by Maxime Guerin (Netsyst) in #19.\n- **German, Spanish and French translations** (79 strings each). Previously only\n  English and Portuguese existed.\n\n### Fixed\n- **The dashboard widget could stay on its loading spinner forever.** The dashboard\n  mounts registered widgets in one pass, right after its first API call returns, and\n  on Nextcloud 35 never mounts a widget that registers after that. The widget waited\n  for `OCA.Dashboard` by polling every 300 ms, which on a responsive server lost that\n  race nearly every time (0 of 15 page loads on a local 35 instance). It now registers\n  the moment `OCA.Dashboard` is assigned (15 of 15), with a short poll kept as a fallback.\n- **The dashboard widget showed Team folders by their internal path**\n  (`/__groupfolders/3`) instead of their name. It now shows the Team folder's name, as\n  the admin page already did.\n\n### Changed\n- **The lock badge in the Files list no longer appears late.** It used to be added by\n  a `MutationObserver` after a separate REST request, so it showed up a beat after the\n  row (and after the favorite star). It is now rendered through `@nextcloud/files`'\n  public `registerDavProperty()` / `registerFileAction()` API, the same one core uses\n  for the favorite star, from the `nc:is-protected` property already present in the\n  listing's own PROPFIND. Hiding \"Move or copy\" and \"Delete\" in the row menu and the\n  selection bar now keys off the rendered badge.\n- The admin settings page showed the badge as a 🔒 emoji; it now uses the same SVG\n  icon as the Files list.\n- `occ folder-protection:clear-notifications` declares `configure(): void` like the\n  other commands, so it keeps working if Symfony Console ever types that method.\n- The README still said \"Nextcloud 28–33, PHP 8.1 or later\", out of date since 2.4.0\n  narrowed `info.xml`. It now matches `info.xml`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZm9sZGVyX3Byb3RlY3Rpb24vbWFpbi9zY3JlZW5zaG90cy9BZG1pbl9JbnRlcmZhY2UtMi41LjEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZm9sZGVyX3Byb3RlY3Rpb24vbWFpbi9zY3JlZW5zaG90cy9BZGRfUHJvdGVjdGlvbl9JbnRlcmZhY2UtMi41LjEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZm9sZGVyX3Byb3RlY3Rpb24vbWFpbi9zY3JlZW5zaG90cy9Gb2xkZXJfUGlja2VyLTIuNS4xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZm9sZGVyX3Byb3RlY3Rpb24vbWFpbi9zY3JlZW5zaG90cy9Qcm90ZWN0ZWRfRm9sZGVyLTIuNS4xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZm9sZGVyX3Byb3RlY3Rpb24vbWFpbi9zY3JlZW5zaG90cy9XaWRnZXQtMi41LjEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Folder Protection","summary":"Protect folders from being moved, copied, or deleted","description":"Stop the folders that matter from being moved, copied or deleted by accident.\n\nMoving or deleting a folder with hundreds of gigabytes can keep a Nextcloud server busy for hours, and one wrong drag in the desktop client is enough to start it. Folder Protection lets administrators mark the folders that must stay where they are.\n\n## What protection does\n\n- **A protected folder can't be deleted, moved or copied**, whether from the web interface, the desktop and mobile clients or plain WebDAV. Its parent folders can't be deleted either, since that would take it along.\n- **Work inside it carries on as usual.** Users can still create folders, add and edit files, and rename things inside a protected folder.\n- **The desktop client plays along.** Protected folders are reported without the delete permission, so the client never tries to delete them, and a blocked move shows up as a clear error in its sync activity.\n- **Users can see it.** Protected folders get a lock icon in the Files list, the actions that would fail are hidden, and a blocked attempt sends the user a notification explaining why.\n\n## Managing protections\n\n- **Admin page** (Administration settings → Folder Protection) with a folder tree picker: protect several folders at once and record why each one is protected.\n- **Team folders**: protect any Team folder (Group Folders app) from the admin page, without being a member of it.\n- **External storage**: folders on SMB, S3, WebDAV or local mounts are supported.\n- **Dashboard widget** listing every protected folder with its size and reason.\n- **occ commands** to protect, unprotect, list and check folders from scripts.\n\nProtection is checked at two layers (WebDAV and storage). A distributed cache (Redis or Memcached) is recommended: without it, protections added with occ can take up to five minutes to apply.\n\nAvailable in English, Portuguese, German, Spanish and French."}},"isFeatured":false,"authors":[{"name":"Ricardo Ferreira","mail":"rsfneg@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhMBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzAzMDgyMzQ0WhcNMzYwNjA4MDgyMzQ0WjAcMRowGAYD\nVQQDDBFmb2xkZXJfcHJvdGVjdGlvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAJUdCdjxoMEL5WHoNag/igEUX46qUXwMc5MjvYVlM+KZEyogIujfVtoW\nSAfpOm3TMUuVrvUWbwsL5u8kHIt+wf5h2E0/yWVmK/RUZ3o4Z+8aoyW1oXd4Zq+n\nuLpY7a4Nt5B3/+4fz9ZPGroZ85d65KAaI1QPoykFi4shGKqgSSLLZHTRwMKtTfN0\nsmVLTq3PoAKip3O0E+bJtz8nO1lUxEP85ylhwgyrSueonSWRIzqhzOigOgQZT7bv\naXW+24tEcASNluHr0cGgJXaG1EPYizNa/I6U/0JNQf1j9/6JGCh82xwHByT+Bqky\nOExQ4zRVTTUTbYQpQAZlUjsArREWwtRIAWtmiTdIoZV67DnrqsuOqU6oLD7kJ8Uz\nMdnwA+/GQi4B47CObA5TUyab+gWeIequmb8aWSK2fueLxc9zOu1o9W2I3uzi77MP\ne8xGOa/1ITUm/B5X5CjeeP3yqGiS5ktaiNVYiPK1lEL+8PC6MVJ683pNJOKPkVoy\no3BzlOUF0NPAJpcOLnK72l39zsMIskVf4/U/gGyrjBx+bFjFfPn0oPk5l6rIgKhq\nWeTJNKRSfG00mVRm3RKVAw76YqDR8foPy2spWQvpjeLBDfDsbLpI5BTKqQ9E5hsF\nKcCNRPANhk4ca6nDrVAvFoM96h/Akj7tp4wkBRF1oAcMk70TPpc1AgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBADhN49GehzotzNbZPWXpDjcKZXpsg0wdmg8z1wzlxSI8\nvtJZy78rmfKtdUxIIKbbdsDxVlZSxoocUettiatZec+/kA0BezRxsUyEnT0pkvnt\nx9yLNryy1VSdPFQnk47n+m4c/dN9kk6wQAP34uPJ0plqOEEPs5XWjTdZnHXj9fUV\n6+wYEgti/5/5B2oLkkQ+OtBOnkh56HjX6TrkMJWl1CmyVCByV/dqQxHdy67D5cjU\nc3uP0NSign6Uxl9M2gGubVcAsMmVX65KSS+D9ky6XlDJ1o5UCxJNE++WMVAXqT8/\nECr8/iCgT/lcU6rr38hU86eTIbfatm5ajRPfBpmGZCQ=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dkmunicipalorganisation","categories":["organization","security"],"userDocs":"https://lamotech.dk/nextcloud/dkmunicipalorganisation","adminDocs":"https://lamotech.dk/nextcloud/dkmunicipalorganisation","developerDocs":"https://github.com/lamotech/dkmunicipalorganisation","issueTracker":"https://lamotech.dk/contact","website":"","created":"2026-02-19T15:49:04.959466Z","lastModified":"2026-09-16T10:13:46.860053Z","releases":[{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lamotech/dkmunicipalorganisation/releases/download/v1.2.2/dkmunicipalorganisation-1.2.2.tar.gz","created":"2026-09-16T10:13:46.841964Z","licenses":["agpl"],"lastModified":"2026-09-16T10:13:46.899096Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"AEBlQNr2ZL8rZjMLvwgyBDAZ5osoS51NHGqK7p6W2CrBUEu/pKRK5rgVG/whuuec\nx7TY6jQOQgyicQ16MnXvFyjcPwgr/2DhB97W2WwPc/YT4cTGAJEguDN/FOrAxTFH\npNvj1bZUd82Dp9y+g3ZdTGwuTHvr/fw0pBy6MoEl49GUuoYukHH47k/8HUoYxLxM\nvdPjgRe/UUxTm+KLAvMZ1huLwpsPKBe9xQrXwM7xGJ62OxtEBHpm0638BCfdIXdS\nRcfqiyczTk0O/k0Nap4QT+p9EAsUun2yW3ihXGsMMvR5oTTM+1l1Rk0BLUQ//bx4\nVFGUq0hTswNzJTKDWUHsA3bACnZiLwO385gUozJX/O3QTPyH3YyHkg0m5WgRKpn1\nn058BxPHKRrIUEC4OQ7RosYUgCQETAfWgYLgXae2TrFGpkUBwero+L6ygyvimTSx\n+sxQRnIDfm5W+zLA85RrhqKtJPHcyk1zNqMZ3bT1mRvba1AbWnu+kO999iPnCqow\n4Xij0rwzgDhWxb33O6rTfWgQXNdvA/3mSna7M+XZJIA+zoGmGFERnT4KKIwXaDU7\nbIopzw2AmG58fWmX4ZqlrE/ncu/kcZgUsCM3phOSZDjnzhaR62f1IClMRBg3FSU1\nigiTglX+ZR5gpXnjHRW4eVyfi+cmVrzgE3eOoE0GAi4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL2RrbXVuaWNpcGFsb3JnYW5pc2F0aW9uL21haW4vcmVhZG1lL2RrbXVuaWNpcGFsb3JnYW5pc2F0aW9uLXNtYWxsLmpwZw==","smallThumbnail":"https://raw.githubusercontent.com/lamotech/dkmunicipalorganisation/main/readme/dkmunicipalorganisation-small.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL2RrbXVuaWNpcGFsb3JnYW5pc2F0aW9uL21haW4vcmVhZG1lL2RrbXVuaWNpcGFsb3JnYW5pc2F0aW9uLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DK Municipal Organisation and Access Control","summary":"Danish Municipal Organisation and Access Control Integration","description":"Our app integrates Nextcloud with the municipal access management and organizational service, providing access to shared municipal systems.\n\nThe app supports integration with the two central services in the municipal infrastructure:\n- Access Management\n- Organization\n\nThe organizational structure is synchronized once every 24 hours. For each department, the app automatically creates a team folder and a corresponding user group in Nextcloud.\n\nWhen users log in to Nextcloud via the municipal access management system, they are automatically created as users in Nextcloud if they have one of the two defined system roles: User or System Administrator.\n\nUsers with the System Administrator role are automatically assigned to Nextcloud&apos;s admin group and are thereby granted permissions to perform administrative tasks.\n\nUsers with the User role are assigned the User role with the organization as their data scope restriction. They are granted access to the team folders associated with the organizations included in their data scope.\n\nThe team folders are available in the Files app, where documents can be created, edited, and shared."}},"isFeatured":false,"authors":[{"name":"Lamotech Solutions ApS","mail":"dev@lamotech.dk","homepage":"https://lamotech.dk"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEjCCAvoCAhL5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjE5MTIxMDAwWhcNMzYwNTI3MTIxMDAwWjAiMSAwHgYD\nVQQDDBdka211bmljaXBhbG9yZ2FuaXNhdGlvbjCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBAKYGW8RFGdY35o5gn4SccCdSuM2Bamp+2gmqSdRGuo88Zy3B\nC7FZMDxDfrIC9h6E5OhyfAhPRy9LiHkMCggt2HuvX5blBYyshR6ndTztjhJVRLBA\nHHKpnG42Rc4V6rYI9/HTOE+9yS6/acddzt4fgMr/h0/VqdpXgy8LyuVOaXm60ayz\nZWr2QgoXlJWBfpudwxnFHA273SqaJHD7CP5h4xHQbdumEUFNGFW+m7/4dEPEkk2b\nrArOSrESDO1rchZDryHRmevkSgBnTYUYInEl7M7F8WnosJPn3OidVyxd9kqP7/ri\nErIWi+VJ6DWLakQal0CSlwhL+pcNQgILWZpe0TUI40FcJAMflcEi4hS+FF0/RApx\n6CxsZ10/+ucAP0/q/LPpdszSP4gIu0ZdIPalacTFb9svtcM137U6biE0TXIhbpun\nxA+kk/iv6FdXDyU8qlIqfm3kx6yw1XiItWcluGWgngl5kZ0GI0Gl8h2VENC9fkYv\nYlflJVlJ7GTRdftrKXmcpwjiqnWhfbJyuo5snegTGKmITHkzU6uouf/T3mCzf61y\nQrIqWlLSjXgt4GMs8Ac3eEtGKN3Oc1RsXoyX0hsRxZjpl1IO3Rzj1VkypPFFIYHI\n9/oKMl9eon4wvfja2L11CKA/ZluiePis+zW6THsOC0wT32U6Slonmj1PKzepAgMB\nAAEwDQYJKoZIhvcNAQELBQADggEBAGiktIdNC2kxhf7E9AEXiRbswtAkG/QYbX4e\njXyx+guO0nDZ0qNIBm1rO7o6AeIbW1V2xqDIL7J1ALtjKjRjVN+uMlDYAr/WPBWr\n64bn1FZO2VtywxfOMUMTEobyWUMlixjLU6fLTryq273JTYfaLphlkAYEzMRR4jmy\nOA97KOSOlqEq3gvUkFW3T0IIBY52Zx/ieOHZmjvjf/Y0q+oLhjD93JMfT2fB+Vl0\nWHHNee8wRzgUeSfrgMVNxndUwUkLU8hRkH7wkzBledWv876z0nwrLgjxmJuccxTU\nEyQD1+IbAm24QBWrQZUK9PmltXgfW8wi72El/+dflmRJbcreB/o=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_trackmania","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/julien-nc/integration_trackmania","issueTracker":"https://github.com/julien-nc/integration_trackmania/issues","website":"https://github.com/julien-nc/integration_trackmania","created":"2024-04-07T17:14:03.230265Z","lastModified":"2026-08-23T11:02:21.704369Z","releases":[{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/integration_trackmania/releases/download/v2.2.0/integration_trackmania-2.2.0.tar.gz","created":"2026-08-23T11:02:21.670161Z","licenses":["agpl"],"lastModified":"2026-08-23T11:02:21.749453Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"FKLsQBHFkT3dQTwBJSuS8VpNnXe2FDXhvsZTOxvVaYnFfb6MMa54rZqbsqECpVaRvDMvfFNfJjfPKt8w6hGPHZ1//osBO7qTzbJqKbu1959p+b5HVfPYCyzEEv7cIKJeOyq2CeUSwccHGC+hlsCQKHh6FI+lbvt9JG1Rup+uF0KXt1U41E3rzoJ2QR/rTzImc7G7/PhAg2oOkcS6bIKZ2ic074vcTTvj+vyKNVKFRZw9O6XM1q6Y3lszYhQYzStcPHZW72a1T077LkHi8F+Zgp5kvvcQBQFZ9EscoDmyupWbxQEo/+YATC3oJY3zgJC5hhuwy7bQp6tUX5M2qzLB0KhWzqCziptta1WmpZ8r9omawJFW8RBeQWdzUjrndo8PRNmfkayoz0tRY7f/0lQH8wVAPoh6qqLFJ9gVf3Yg/1YhbOOc3tgnytq4J8S6TaE7+z9Al5tmBkBlNtbP3+Zd0uA1krPwxCEUdnjSHFcpWkal/41m9LU17FnIcX1nWGwu7tgzU+vl2JBXJ5O5WAbUp1izxipLaRcoTtnybnfXYRjSCJ1wm37kK3vvej8ZmRti+f0dGAPfp90V47wlh+6i7gDYrIu9H4Z4xAlTLuvOKOGgZA6mGn9OYZP5E/cSiwjExQAOdlPZb/+6EUJMgIEeafCTIq5dwIgFWV4tdQxdMiQ=","translations":{"en":{"changelog":"### Changed\n\n- Update npm and composer dependencies\n- Fix psalm issues"}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/integration_trackmania/releases/download/v2.1.0/integration_trackmania-2.1.0.tar.gz","created":"2026-07-18T13:42:50.539866Z","licenses":["agpl"],"lastModified":"2026-07-18T13:42:50.626672Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"NKoHoiexYdYQYu6MPCu9DDKxuXMsFupRE4RTYfzJEoZ+j8MwlyGbhMYugauDQE43Cll7VIUEmeALwfRCFzv4I1wfRTLJPflAChs03osjWW/aavjuTrMeQhYOJ75Y2PmWWwRBvgQxlxFf1ldgLXkRAvLUracML/irgL9VUrEjGzjLOMgjKJ1OPnU9JaKfdsPdpGD5CjfG/fHtdpkWrLZFMtIWTtm586QJ1t4aAvpFQt3zL2z6GNvW2mlgFiIT8I4Re/7pAHsXvAx2qXY/zSeJ0PLR4VYuNOYorz3/0BrrkM41LPpd0ny1iEytkInu606kYpYNRxONkYaofWmrylrURO6hH/eOwf530Ow4wwe+w6wT9NNmvV1NsQ+BVxVv3OUFW353raD85K8PxWMaca61x8Wp9kOWLA8ACdwdwLpbFNNA2SMARpu3244nDpk9hB9Rfw7qbeGk/9GuHLg2HxA0kHjSdL7SakPItn4gaTOHGqo7NjJH6kaVrMXr9lpqpQaker79EyciZfRkhdnXctmG+9CdF/VgIFF2NeySyNe9kpb7EyiRtKGrtmDfwLm8+gs1AM6yGiOWZaz6rcEs+BWLtEYEnFTMR7kwtYlQyr2bx9XY4sKckpNEJDMsXTvjC39+bEAxxusju1lwQG0sx36WLMFZQf1xi3BjhdsdoxRG4ns=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35 @julien-nc\n- Display last load date and last loading time @julien-nc\n\n### Changed\n\n- Support for Nextcloud 34, drop support for NC < 34 @julien-nc\n- Bump min PHP version to 8.3 @julien-nc\n\n### Fixed\n\n- Fix login logic, old one is not working anymore @julien-nc\n- Fix map details modal when there is no mapper name @julien-nc\n- Fix title margin @julien-nc"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90cmFja21hbmlhL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90cmFja21hbmlhL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90cmFja21hbmlhL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Trackmania integration","summary":"Integration of Trackmania","description":"Show all your PBs in a dynamic table and optionally compare yourself to another player."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEETCCAvkCAhJdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwMzA0MDc0ODQ5WhcNMzQwNjEwMDc0ODQ5WjAhMR8wHQYD\nVQQDDBZpbnRlZ3JhdGlvbl90cmFja21hbmlhMIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEAo6zuUVVCUgjjbrcKppQw/4b8ZoNVbZtXfzI/DyJM8Ixhco7m\nan/MFGDUQAePwIm8tlc9/zJccEKSCFRL+rzgSqWZVYWfkVrAPPUHZ3WXMUMvSb5U\nwHpiKYlZ2smCK+9jxPOprOI32u9r7fkM4Tmy1E1/OzhmQriIQ2CdJ1+ENI8spoqM\nxCnhZmbwD2KJ+KhZ1t0ykxHeV51q3uFuwuLqLvQXjbOA1pS0CNVZhMCM7pW5GMKu\nUdG5uYasymjn4SngGhoQlJlm6QW88bvGeEePwfmbNl+GKVY/r3ZpYcCa0TigsY+T\n2pDun41WRJSyxG8/68OSoAR0VU/Igfl61UOWUCAPqQEjjlyDx+CUakVHFE6pSjP7\nX+QlLoWqrq+yV4YNYEoLjSuMm2Xi8uRfX+pbbd9ou4G8EogZtqDBOZcGc63p2T3j\nUE47L65kjiUwR+ozwQWobvZuESI4ZRWtoPZzQEjeA0BuQHuPH5K8A69hkhh/wGcP\nzCBLQwb9FW1Nld8d3zd2NyXzt2MLxD3zuUrO8PE2aXm+i8AYr4W3IC0odkAftICc\nr4w+VVgS+++HwFho5sgxzvYcqoPPSgJJlBfHJ/oXDLVsr87IThYvICGmXsPDDqX6\nWWsoLFPjLZa0EzUp6b7cQz3FSUhL8GM4SZarJczGSa51rFFp2LVCTQE2K2MCAwEA\nATANBgkqhkiG9w0BAQsFAAOCAQEAYkZRhvFztD1lRMt8yaJ8U/NR0uqP9dAz5VyK\n8fLlai0Kp0+3xxUrb9vnsGjwPhZDQ7erE5lgP+emo9U4Kf2cFDA7IOCkMFsXtevD\n0pxMpEDjOF7Q1DG/4V7uzxiytsfgAByJrmsBXmMKP6iq/twxByJqhrsmR3iHXRdx\nJ5GPgcaEjQGUlrTwHoobsdJdCjMIj0Rc2hCzmBDRPasEJDhNHox0KzyYC69wGvzW\nUnCQCecZDpNGr9xoGcZhVzZ45hHCPCVGXwOX8qgRzSwZWChwO3Ju5VLMEcFaAKEv\nVNrKM2Hf5Cldg8MfM8xYOYHFTcN1NrEL2Gk+iy3gf5zRENjJtg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"smartcook","categories":["multimedia","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/gabryk91/smartcook/issues","website":"https://github.com/gabryk91/smartcook","created":"2026-08-03T08:27:07.396010Z","lastModified":"2026-10-21T10:39:56.915794Z","releases":[{"version":"1.0.196","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.196/smartcook-1.0.196.tar.gz","created":"2026-10-21T10:39:56.907798Z","licenses":["MIT"],"lastModified":"2026-10-21T10:39:56.964473Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"ld25lViwrRihXYIg2T3vbUHwRcuidPbPw2UZJfhpyK151YYXtwAvGGLvwvktoLYqlt5XK3rFkhmpdYBrUuK+QagUfPGMzRqk1Qg28BjNhuqZFMbfASyPrO19o/YLSzw4PVbA+Nqusqu9e417PUZKqKHt456pVdWpCMxueIywnvY7j3iMJyfckhKNzYwh5Rlac8n726CXwMBb0VUcWIJXunrAWuhVQu+nk7bcunKoprMvZMFJYfIdjHPKEF0Hg7tyPMy8N1K70dL0IvC4KIMro+yoyRiZM3m9kb6eUIjVhBk2onEsAp8Rxw5BE2zCyhc0Ff2OA6W8ri1xRGmnLWHAIeWQsjkgIeMF4sMYgJrlDZqG+Zcyau6lgDY7Wx1xQY/5n/CAho2IDx8DlmqAImxc4lZOFlaBjy+r3m3g6Z/Dj+y0/WQ9Rnop55GGG14wcfrSyrk1U43XhRDTX/U+WHpfz0BNK+IZRCOPlxPgD74g1LX/gP1L0+oaq6IWoWdxuMsYKV7s6/crnHt0dnj6BGdj5btUnvpn3Y3ztODKOHGCuv/Eyp7DAcU3jwVzdGvSx6GTgYXTeco39M7acDHwrH9lbdazgAJUYx7OJMsbB6tM0J1lBUkDWaB+Aus1+UfCFLFMcRtTOI4J2+1rbmFRKOrcXSOeZjWKEW17b+op6vq18pI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.194","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.194/smartcook-1.0.194.tar.gz","created":"2026-10-21T07:18:22.473293Z","licenses":["MIT"],"lastModified":"2026-10-21T07:18:22.538996Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"KeujSSCso72PMaqwa6t3OcrIgO6EiEB+vU/0+9qTNOlsNXeeVaPfpyJK9TOPB5jEcj7BP45rg4CLLHQTs9TXBEalrQZ+6kKEYmxg7ASZbcO0mYyzZQIGjJKX3GaF2QwuwHK5NxnG8p919tmX6k6GSTcw/ReggNn7cYVRJrhV8J77iedSTHCSyDaJafZUQ9GRMqEXP4WIl+sJzz7Ee964RDP0Ic1tnVP4vJZ6k+Wo7MHCQZgaP5jC3tkj3AYHzfRRnEdYck9p1b029dtAFwuJb8vBvKRbOMqfK6Qi4AmgkC5aXgjPYBhlpYpfbZSMl/XLYan1goPm4K6iMuWNIhkGs6jfrg8Sj9z74yaNKsfrUrDov3WfZ5FMgnN2lu+ZnGANKmAu8nCyWF2RZ7tiVF+ZhOO3k7UP3ajTXYAgygjAIpQsWXBGv8DdKHbaYhEo8urYoB+s5BLx4F74t9Ncpw/MPLx2ynn9FjVzGomcUaDe70KKFwfwVUOpB8ty9gaWWs90CFJ8YyZXdp2ZFhcYpU6+9ET6MGpumoh43CXQ4Wyt3o1VPFBOi45XzuJRkRmlnNQjF7xXkq78hqFxGuoA8xFY+ady2LZXCrnHcz7QxTTF+/T0gL5ksQjRTeC4HQgTFZUfDQqZ6o6SPjjaatdZea08+5/3kA7q56XNg1TU4ALwVaA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.190","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.190/smartcook-1.0.190.tar.gz","created":"2026-09-29T13:52:11.731018Z","licenses":["MIT"],"lastModified":"2026-09-29T13:52:11.785548Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"iFN0dj24if2ELONO/MRDROCrAC6CCus98rBRxJeJyLKapgrWi96SQrxP35FSzjFfwq7C5t2PGzEB2E7SKY7/ftrrtiE2NwLT885OYp8f6TpqJcLa3QUKhEy9XloE+vJ4kDTJbytan3cWOY5mpY3S0OkCFNbGY/pslQ4b2V6T5PnmijpLfjfh6zVqKKaHG9oYl9JZx0vmWqzkHI0zijpse87CO8ZhiJ9W/SscyEHMMrRCCw7M8sU3iBJPqhWtjeyhg5B/PR1YO62plYLD98/zYIiMpuaAKoEPblQgt3+IJCtpjQE9MgnIvbUAfHKNJQxsYYDkNtJK1txLtg3N7dGzIf+slWSafY4qltXWZxPfTOQz66+nP2K1wj2pV28f729y+unJGtGHR8iwkmnWi/k1BtXZHBCpYMzeltwx7Eg1z8P/aNFvBIKARcPEsLHyA6F1QBZO7W9+atvmJaWVsC8ysT/HBeHxjhHoMJa7yR2n+h0NnDQphHzdLX4M9ReMXYW803+R2P2Sjjz/Z8/ihsglSG4/pDqqoePDO7VwK5qotwSzgVgSpA8BGoIAjXkKL5IPSPBsF7rxZbcS8DiUICcE16pJHDLWp6Htw7szq2GD8Qhe9EMtWgkp5UHJrRgUmQh3eDN361/23mxD83cgKdNBWG5ISqDgcfAScQYubbkyRMM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.188","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.188/smartcook-1.0.188.tar.gz","created":"2026-09-28T15:58:28.841234Z","licenses":["MIT"],"lastModified":"2026-09-28T15:58:28.886343Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"IMaWVaS0nNyiSOPd7qmax4zyt9PskeyW6qZQPacuX7D+nRIJLe82phkEPT1lTdBqU02MwqRTkYGicgLUkuQN24k+KiiulWY9f+KgrQJBN/6VnmN6wVY9VNsUqC718oYMCZTtE8BW7NafhmC9GnbUqyiWdV3Nr4T6BMUN8eHiFHiqmL9NYM70veFKt2mONJbqXZoGZRAFLMiIoUDIuNwF9GI8zelEE376AqZdip+994FRSyRXISobbwXHhXg3LoClll+i7LZsjtxzI3d32m6K9XIt8vy1SSQgTAh5LWMoo5Zh+8uXv5NRX0xYjmATgSSJH8DoP7lwjlxbBdIhGyL8iwqlsvTYZiB7YhOxTAylH6CqOZUKF+WdOfY6zrhDAuX3z/nikhu+XJA3l6uuAWasPKJE0IaDOdztDAWTg6QxDcKLJTJLidj9G7MRW3hfe1XQBhm8D5Wyzgcz9gqvGn+kO7uXiE7UApgnDfwEj2/vBDy2kz8k2SY5c4j9XbFTm0Fqla/vpGsjx0FjWWJD9JP/S48ZzbQ5fmXfUviGtG6OwPsK04GROsGbxTEx3zQHFVPF/tZ8ykhrFvoKCuzyMyvLf2YGS9mfUAvqbe39D1hz6mWfSJAIePBqEsuLwwsuVyqn+TtVywO93SKQDA7f3bo6B4mCRxMPxLEAFGmGuGTdBCk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.186","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.186/smartcook-1.0.186.tar.gz","created":"2026-09-28T15:53:55.829059Z","licenses":["MIT"],"lastModified":"2026-09-28T15:53:55.880693Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"yuXpoF0Rpupj6/cMdFfq0tWhzgrapdn6Dd+inCUHAoYlxaSEjgCeLA1iSMychUqEXqORM24rWmiOfAZqa4G1Z/tbTE/FRcqJB2Og2jJ+ZafPtpyY3uT5omEbSwvrBffFqv1SZviWr5kyfTDhFTAabpy3vAKAb62JgtWnC2l1QY9mR7A5/aG+JznhOEyZP1zKPBHcTmDGntmsqkh3Tt/ZA0xVS2CViYx3VO5ieIcm///v1j+ScGc2BMYaZdHKLkfg6i3aqFaJ0COuJ+ndT3TywLZQfWZY8vRk9MTKMGidX8ToSALxOE4UzrKOYDMuPMpRN5mVB1rH87XjTVvxgAnkWcMBqNMczL6KgP+cq3LN6+jVcGIOqCF2VZ9moc1DSvVQcoHTFwJ/4LuU1ZxrgW951h9am9IMU/t7H1x7DMv6pxOJNlQLtOWzPPgpT73d4CzaATkLEkO695y1ivYE9YLqvf5PDWwL6oXjv7z8e7G0GUEvIECkuNN1OjV/0UOFgPXerJghCniH4rt6I9/BGHNxa2jZKcd1wMnVFfxWcU8qccQeIXwhSYxmHMtgFcAXRQVdzI5s7QM7inXgafNf4v5HY2C1M8gUE41el47TQ0lCymJiBxI7r1golTTfEpMZYiH+F2bzNqbLTqUXY15xYzL5feHLkjbp8EG0h1Bubet7TmQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.184","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.184/smartcook-1.0.184.tar.gz","created":"2026-09-28T15:49:30.053211Z","licenses":["MIT"],"lastModified":"2026-09-28T15:49:30.089685Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"53mTqC5aeXNViYLBkkKbRI2/mPj391ZLbcPh0Zqqrjy+oxoP2oKgSM++KJurJPr4NkxLstWXFO5am4EuCeMxMNDuV5ktONzT4yoJIe1HiDdfcxJeAyToTUPLDqU8IhN2GqU4RmjcFR+gcYtAo4RW1sBVALL06F+syIb4Nip7/juUv/QtKYEvsbzGBvNQ77Eh78tNCM8aHvrC2ZpZttldU8Aichilasn00ss6gVD/O7uYks7CkJCeuQoT7SMQreu02xZBINWO4CobAcPvOfKqRnVi++oQFPSbT/TsX4lQrmOYer4dvlRqIx8CN+NkaLEDq4cOftw2A6zxLYI3hVbfrB495wxwoSb+Xj/aqD0IGe805xAXd+80UdAG45dp2VGfeEkjTaD9YQX83plHZASksYP6gRPi1N45FfgdP0AGGJpECveTTfQvPfWvcyDDUzi8q2v/KrRPNxSEIuLs2WO41cEuyZ6rh8Q3GRpk5pDVx0BWC2q+SJj6Q26Qyf5uWvw6ZubS30ugW4E8UrKF5k85LhUm9Hz2X8c6a4YJ9Yfhxso//qf9fhAMRHjg4V9PDr2KNxRw3Yr1cH7PKpQmcG5jUyZyLbPgi5Na3TpIJWvawetbnAiuR5jbUWyYTwOLw5NjKa0r9p14os3EvD0Z2dwNZ+KZhjva3sCNZpGIomMHRAo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.182","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.182/smartcook-1.0.182.tar.gz","created":"2026-09-28T15:40:21.692072Z","licenses":["MIT"],"lastModified":"2026-09-28T15:40:21.731306Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"PXa3B3UD70D8tieCi86LOp0fBY4Gh4CdxF6N5oFNGHi4wRm6tiFrKZ8b3yqrDjX3wadMm52xEyPp33eTs8rHBccTGnld3i90AaXqgXxKFGs/DCdpYfeGZ6QRWoYqF+UFbIcAIK+TSr0VYf7aZ418CA4WmxjCX/iNA5Qb9yh+rrOxcQZnkVrGGqbjL7VngWC0S5xMsZ703y6Pd0JgTgpQslZQCWIPN2D/VSJGXqcnYOZreZVwhxVLmwH9nOY/lS6M89pnzguRBsGQJiCodMOVqPkNKktMW8Rj9gkwo/acoK6peB7EK+26wyF0Hwm8QtRO+Hd+QUwj+rc7wPg1vJgbqzjpdjot9L8LLsxI2qrJJuqPdfZNPRXeI06eOvAs0eKJP37r30Tj48uPVsckJHTNEksYEKnYjeg1ohfH09FYhfjksbggX5TRyoN8KQ8beByRDNqRjRBr4XwAZByV2lVZa4LIe/lbfGMql/uU9U1J3cCvP4Q6sH0qfFpN8bRsI6apKUDEQT639CTG8BtFrG4e6XBBT5+SlkiV9991gEbtHntylqjRXlaTYHZh2QJkKk0puPbS/iL1p7RS77iDn0a4PBQAXIC/zopLWU+fLKHi62ZCi9wDLUG+0n4Hcxr/bHzkvir3D12Fk34G4ME1V+VYqViHzIKDlwF/VA+Y6Nas+xM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.179","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.179/smartcook-1.0.179.tar.gz","created":"2026-09-28T14:52:27.124670Z","licenses":["MIT"],"lastModified":"2026-09-28T14:52:27.168704Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"LL8HMnU/kLGWZPpwHVgTasNbBscAmBNmJCyyysPhsGAreWNrUOas2J2CvTyO7Z/arU142UR+YMDcN7WyheoewZJO32JtAWUDAoc/DaRMwNX/U536LnpwoNad2uWQ4347M1W2biMpineKv5XnU4t0fwUbBhg9UjfREc3cUsmQQvIU/T4N8z3DdXZHMRCv1SOmoKlcU5I2vwRoTRBtm4QdSMP/4kuIsjqNHsYdWg+gkjYkho6LcSfxxNvTYb1n3Zz1tN1rjx1xp2HBiuQYCoqBxnZBfoswYteQRRtel8jcnnpyUpQG39iEh6qYslbk8s4kG2PnZiSQG4EIdySZPyleTlPagSBgKHwBaRnzPvL8FWDrhQFCFW26V1danvUamihBaIhTIj07KJL6hwfwU9oMIUBw0hZ+I0B7dZr6yqHvpJL3UQCQy/l2LOOYyJagMqRnLmfHkVFfuaTQQgAVe+w8DIT/rZtkqqN7w+J+kVvGlRQzrBH9AIbtaLh/6eiDqxFoQyYIB/tveKL19IbTlU0oCPTFDMtb3VX1IJ01b2lquyPqEKMF6b//JuQzjlh/RpNqp5yDj4dOPZhTOHVuOgofAcwWxxN4RIKENLrBKq3AFZWTsKx3HUOC4l+qDhEfX0D8yjQQKwD71ExGG0qSQS/hklfOdqnpnUycFxtG8dnUBGk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.177","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.177/smartcook-1.0.177.tar.gz","created":"2026-09-28T13:01:07.061517Z","licenses":["MIT"],"lastModified":"2026-09-28T13:01:07.122559Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"yOivujOexLkbJYLLZAJvk16ikVGwLKU3NgaMFybxOJhdbSafxc3ExGknUZts4jOEfcLsWX4kgLkZv5saR6ohQIxDlITMSVm7pzY/z7i/TXFsK4u9Hzl4FxaGjkgdnXHehfHCjC+20fR8q+UNtRCTwoM024tNToU/aelAj2YbUB/PUmSRin6gE7L46Ao2AcsN7agHSwY9ZomtdgiSBosCX6rRNGS8SAWeb832qrdvc0kb5zgTJEOzMocwiqTQCGjwuQ05qZonR+cv5c2ecvNbGk0DzIjhCkJj7HEyrNxpkFO04ShzV1K2HQXNPnaF/uOkwpXGKNw4imnLVgk3YBeMQ2bjjpOMJawbsZ5F4LpY5miO299kBltCpby+RDvgDBOmhBTYV1PKmd39vDCj4eGCUFe+kNqhZm1p8bt6nDud6LsI2Y0gyzk6ztT40YdWPoPiQlk2NRJa4Nz/qAxd4k158X0r+kMkW94BHjaUrt+/j3/tkdFkZRf/O//EDwjKOYNTz9pOogN0b4Jy86jn0EsJCHQax+gdiSUVP5HqCjFZiYXR3Va6KiO3DO/taZ0d78TyCnlgPAjKUYXG4O3SdQVRDfnc/7EGzPJCxu6W2YDaEDRSsFXjsqLnMF91Rx2D+WACHe98nuWI2vJphmQXIs+implsP9D3Xg0LNF3PLchQR1c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.175","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.175/smartcook-1.0.175.tar.gz","created":"2026-09-28T11:07:53.700961Z","licenses":["MIT"],"lastModified":"2026-09-28T11:07:53.751277Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"xWAIgpXzA9n/q3Nw8DbnQLcKdU/MGvRPXJwEH5Nnb5yDoc4Btjd3YqHVfvq1qtk+VG/MC+2xdMnlXtBWtx/GtfVlw1y50Px6HH7vWMFVfdSezoPO+lLJUbFQf2w68bPeteRj17nv0NAs8InVKlHQjaLZCi1xkD8wgan1q7z0NNCpo6IP0ChpexoH2likVg4L3DSvTDFPf3nT4K2mxcabBUsZI/WecmBUYn9bvc6z3HXxchZy8hXKTMb6vWCdQuQ6WH9uYcEMm1IjfRRDCW18wF8EYV5iCcmMWWyCCZppuLeXvhY/0/3/fvv3Asr5Y5STAJ3fv12BYrq6k4jjWjljr2nwoQhdJiC/R+gprXVGVv/ON1rG6wfIBUbkfxoIPYZUJF6zMffP98LBVkLhvIsy5ZyCc/UZtZ1xkWWbqb9zVRlwVQyLzRSnBGxY23TsEN7T8UlGLh7BYuw4RuCLLXE9P+moVuHAoYmszLfy1fFssKJFnl8tCEGzclIijk5LevCr7nFL0npClaIIcAyL4dOnsNp+BZeYdlclpimaLprhi51T/l/Ep2gYiED5gRSdueWgQ1mk6NwL0ItZ9AVx4HovZ2cvAtYF2Xt43nokZWrFmnJpvn27HnZxBoTCYqXwMU6bFY64djfR4Ye68NxVb1N3EetMng6x3Th1RnExZ9q1IkE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.173","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.173/smartcook-1.0.173.tar.gz","created":"2026-09-28T11:03:13.951830Z","licenses":["MIT"],"lastModified":"2026-09-28T11:03:14.040708Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"OjJCGDLmub4FkGH5dskgyf9W3pSCe8k/ft9Zljss5czMmjzR5JwYRS0LXq9ZNRFsAqeCRm+i7e6goFrbHE0dQmlvULqt/I+B6psOGrSdQXwYjwd1Vtfipw5Xv7X0acrDLWA76avu0KgpOA5kZTpBkCE7+8VAWgVQu7/mB7Zt3oilaMwMx2Rxx/da2UABYvFljQ5xJeclo+6v3tgQWkFRFFBjriJGWMM09Exuvlrs+q8vTrdZrx5Q+190SHxVRO/ShEzdWxYmwro0KNgK3rQn0r3rU/CZVm8UqO1l8NVZYAQa62g3BYuEx+/vLynbIFc6ZAaL08hPp5fJ8rIAK7Y/+CNvjOq8pGr62shraT8LP63IwAml1TXud1VBnPmJrOjC2bh7Ra0LERPigq43gDqK5PovbjhuPKSZPLLgE8g9rGsDPgETWwOEzk0VocbWMpf7DapwNBk/BEBwsnHt/3WDiWPCgpo2A6Mb8v6xTJfZDRI3sxyWyt8QMAeoCbruGOX+4sD4RioowD1vv/rFuxNg0DSb2G+aSP6pXXHatkx/6XDPWGi/VPssCz0uXDKz31Fnc0EtVWzF7TJNZaGC7gWSFHC5bn3ce+cIBiIRQ9mDUfnrn1ROLEx56QFRn8veCmUqqS+pphe+LIdau1xw50r9Pgq6OG0XTJNCiSxTzXNX/oQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.171","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.171/smartcook-1.0.171.tar.gz","created":"2026-09-28T10:58:35.559902Z","licenses":["MIT"],"lastModified":"2026-09-28T10:58:35.611025Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"il1LMLbfWiDL6AxXZMCfIbcuoHD6phgxv2hfhkgLByJF2ND/ewuiT/0cPt5qJzXl/IFOZsuHt+fmm4Lsz8w8qBZQ9pN53hehr4PZLUUdKWVKgH6BGrJqfXYelOwm4kclMzcKkRQHg86zIV1IUlUNoCa5PX24TgfE5fbPmPwd/W4rBMwwdN9kdkK73xfcHPtg6ACkgR9FhLKN3R90yF4R+biooi/8txXPug/Wy23jv6rswV7uEnmBzvvnPDICrn+UI5n63+ag//UEkqD+cqp3dP55saNoY6WcDbw3uUVUJNPJ8EbMs23lbn13xfEO2FdDkMAHoUJYoqnLTqF5tsIaadU4Xr3MtwYWMkxXqcryBe+ZIe6TX0ZDMiR9vdPIcDcUi5nnyKLJU15MxKXo9EdFUeq51l+Zjm6w4iX41h8pe+IgmCgBtDEdYWphhgcjT7vkEpT/jBD7inEtq6Fc283WnmmN1y4TBIYJ+H+H6H1nLRhy085Z0jnZq0NFZ/rQfwMPVymZAAUTBg7UijgcPRxYAQFHyjJJb8iaL0zwlGgJmA9DpcExncDSeft1AHMerxUjkm9jOD9wjcYbfcCtA6nu58g3QjgPWbb32SbUoFiWWnizm77bAOCEs66Swch0xzxJeHkpCBKssb2Na0Q6piJUMx+/e5fmHDDfH2VhSVUfqes=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.169","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.169/smartcook-1.0.169.tar.gz","created":"2026-09-28T10:53:12.432833Z","licenses":["MIT"],"lastModified":"2026-09-28T10:53:12.496707Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"GU4/hIgVe2s06rbEHyw7pG2x/lhyPAJnoHxwtW+ikvD82MfZ58CFFP1eA9I0t2FghnuLZ8fo1tX7ESwFK02iIK0gvqZ38WfDTQrRCDuqjU/vR0ETlqaBmC4Jscg/kd/+loxz6eSNCaVaRlBsWAKtmEZw24WoQkYUEn5pBTOhtJakdbd/k0klQaRZzoz1zB/mysq9gfCAqPwmkFLs8woNKcZPu6BhEWQlXm3cabJCMjO2id1uqwH3qMk5ZvEkMOYvGCZyvgY0b+ssz5JgzmjTmZEG8N6GYV250jqzXCpcYeKTqnjeM4V44+Gw+gbCYI659TFfB93PeDAoCPNwVg8UaGnyDFmjE9E0PH/+XR9hF1E+PDIR98psEUiw59fNQDUtEPohI5A08Q34V5sJ0UC6R56TkWPbzD53zj5M9wFd24u5lSwgHORxvpJtXgPDvuZeDzYqjQtJVUvR1c9cZSjnh4sQRyboZUzymU2tLhVavcNYCQyd8IvpQFmR+wRHD9rzX97hmXSi/QGXrV7dpYVICGkSybFNAuKt6PGIRdhpmLInfx2tcupBlRi2U7kGgj8dcZ4IH9hqmDqNLcvXp/9EDl5AeBmKIkwULyODBRvK4kjweIdOp0uPkTkvRGI/6bezBV1019nPC1UzPBt5yyUhnEP9GdWh4XGh6/NjLkJCyws=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.167","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.167/smartcook-1.0.167.tar.gz","created":"2026-09-28T09:45:59.480039Z","licenses":["MIT"],"lastModified":"2026-09-28T09:45:59.535210Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"lzJW2C0LqLv/C3XKasUlQVqc00wNHeTIkkWh7PVwyN0HWKgBVJsyEPk+XXzmm0yHY1Ha4ou4RNQBTRzYQUynjzjFgjgweAFq3VPAKoWDkEgqMo1f6Yk5Rgci7scVvArOG8AuOze4l0qjaGJ5ek7mKnwL9munaxft/9T6+9UzaW/K2UWq569aaQ89Jasmj42BU5MVbwkmUayg1E1OK6o6Y7YBgPmm2EQth3M4vQ3Qf9lS4AVQq48ww6+0E1xNs0JMpnEtRQmoNaB1OMtbA3ITCDit2jVTFF6/9QkK/SVC8kAEw5r/YrRm9RGldBBMQEkZPZCFgI4Bvkme+Gik8gRocxizzHS1zb7/aZF/AVG5dZg6ARtTzcJyzino4DhsGcBWKRz1eFjT3roxpgQtCZalHllv4swfVsu2MTNMGvpxCFaAh3fkQnKHJ1jWsa8ItMUZ1PL0b1ZJzlThYlqVZct3u4o5y1WJPEbD1wyDwzVKouqLs5DTPi233eFwPiCtIjFVic6JMhELa7awiHmkjE8XFdKjlb/ZpBM1qEPdKR5a12G/9Mbj9LEQLlK5lBOAcEzQSB0/klHAz3m8WA6hp3xxcTDYvh1ba87kM8/6AM0alkpiBDU7xcYnsTp/XvocHFDqZtXVDh5Lt01gUqeKUz6FB6Z5J6gVn/YeuqR2yTaIPSs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.165","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.165/smartcook-1.0.165.tar.gz","created":"2026-09-28T08:14:09.651696Z","licenses":["MIT"],"lastModified":"2026-09-28T08:14:09.724925Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"3mfqTzFNjH6/XVdY6Fqt2hb5UDucHKrEimiuR8k43UASHzJWgvK/sDGEB+ErOkJdc5hC255iYvDaozeQk4azArq7UrLY3pBv9XCaFk63uUamiOHBLsD8+w4wn0BG5bO4ddHs1VSzvFZqbTGZB3qnG+jdYrLnCyn+hYE+i9fWn/qCh3QH/qyRqdtdUAyUPfy5/DOyt16KXxlsefGDQSdtSlv6MXduYQZjNQG2UmPIimSOHMbgu51mtFdGLuC4p+mabw2yOxOYvg0P3DxZvuPYUK3+hN8tfrY1WH4LKcL4lgx8SGAtv66bWcr46LNJcuuMlbOQgFO8mJPcQK26j8LiYfQczT5qJpCdYal3/FkqpUZfG8T5+7K/a4A6Y4gG7U4hnepeK06tkMyZ4yRN0AclNxCdFH+I3coQCWPz6yqHkyrPt+FVvwz7l97cS3fMRypJSzIHf/xMmQIV5C+/jIDpil+dYq4SKQaokJyCnKSQIwNL3dpaJTAdLE2UyhSYVaeGlIgQfjwIZ79oxbFtEg17DE3HPs80aLOC0s1pDupAcjSVPWXQJHiMHGdl+sA5Y70xgNOK84YAObTm3SsodO4tQTxdl/OdTGX1eVX/3rcD9wwgRNk+0pIRXlSj3X3pUBM7uMKWlMkxcXvTJCisI4XvjP1sstb+HknYJJoIuJxWjo0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.163","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.163/smartcook-1.0.163.tar.gz","created":"2026-09-28T07:26:04.172053Z","licenses":["MIT"],"lastModified":"2026-09-28T07:26:04.243937Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"rliWTDidrBcduWfRSfn14b3DJTdHtR/twl35YUHgtWzmbDwUtYBa+6GFjeXTOLJ/m7U8P+ztY/R/8FNnF1qSq/BNE9YF5fkerKdkVhuFQSmh7vXLTMbWU0x5lTNYJGhwq+w+ETxhJm9ZspPq/VTh0f9HcncLuzD49MxApWAWnQCP0EJ+GKAZ3qyfDUrtx7AOs2FVobkSiXA7McTPICNOzJ7n7DZdgDwg6zpppROTr+qZA1elIsUPjS3+tVMoKORFrfIQ32Qze5W4ix5sAYnr3bbKYJwhGqRczQi1xFPYyWRiWekwAT6tJ5yz0dTlnhrb/y2Wjc0jKrBF6jXIO1ZIKPOFdZx/hbZ4aAYC6QGTQgTSkMpO67IuOpIA9BVRCz2b8g+qDpbmqzaI2+fksNCowi1+ETH6Axe40hoE81whbQUVWNAfxXQuE92kuHMCAnbPoDWE+b/sIqCfOgCvkDRtAlJD+Fx/fNJhGTRjcsIG0sS/fR4IkLGkZO9aU/wtU/083kza7q0pct0LaaCvZSswmTA/TvPdt5/PtCZefehI+RWT9w2QgjvRCZ8Wqv5ISSESwfAH239tS1QNVmJK78fFxjcGja/pNghu4AXXEQBatvWghT85KdQSUmy579nlKIfvUOzcCClNp/0zghGmE+Mf+NCvE+JhpVYft2EB1nbDfhQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.159","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.159/smartcook-1.0.159.tar.gz","created":"2026-09-23T10:20:21.984337Z","licenses":["MIT"],"lastModified":"2026-09-23T10:20:22.077731Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"zMSCfAqIYst8j+N+5l+2eneJKKyjK3cOkTu/nMwrSZW9glTlxKYg4QhRooM5zwrEiE9JMSGJaJj0Ad5C3C7ow4cxhyufYqLPKwYLsX96vYDJn3hNVTjr1007NYQD2SCebC7B8IoDZOPpXiRvZqE3vWrIYxzhEFlxAuieqyR1KrOHHGQksMDs6ZeBaamyCi3LZXhXi+BGZ8/U0fTQezGF655ZyzSIvUXNKhjJADkkzWp/6zo9n+T7LKG6k6MlGfWlDSdHVf1q+9HQppu3ILo1oIuUpqdv3lTUKhGYA/l7YvAD39Rs9rMVWiR4HHRr+lFIa9+71bBVU5WQWLsjzM9Seet4Y2wuHsomdJclhFdzAkUaSvx3r2MgpcnAVG+GhiINt02mGdLoDHKm38AEpczjDo//J1EDYViVbF0bFv4L5dNlg7fsIPlkkSAF08BY4d6UgUbTmOsWoS8XLuxJeyNJYnWOQL5IAtqA5qfRtn9vk6XB5+ni4xy70rT02zwSsV3dfSUOUgeSmjjJkIb7v3GKQHp49TV6yPiUfhQ8OVGE1tf536KY2ncclDD+GkzUoYRFEELeec0kA2TqOamp2s6C2kg1pYQ8xY0F9YaHwdTQUInNMgNuNdSav+nAfe0QVvY1hLlGomL5xySTrUygzBLwJRyEpxEy6BmYVEP29UvEawY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.157","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.157/smartcook-1.0.157.tar.gz","created":"2026-09-23T10:14:56.953295Z","licenses":["MIT"],"lastModified":"2026-09-23T10:14:57.232698Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"dWxgYsKX+/WqZhtZgrYRRa/3z3OHx1sIBrWhZZn9PNQ+OTVCnly3yFgxQZrinQrv9KeuwIm00ml9kVOpeNdkqhz6QJjiDRgEgh4lmobjF8neV/GcD69PJrPnczcAaJbO7FAwXlVT+Yai5y6azzaTbGEhV51YooBd2PNgZyceSfZoViZ+HB4UF+gxb5svIn/C4Cmi4dyTXIFKTWVM7ivbqFXNg5Ax8xoOw+FVeLQfTSFPqfr2DrUDPgD9y9od7yN7HBsDBDyd8i02+cYMZLns+lUIR2rb1iH8mrCuZNlvsOj6/Xn+mv1IziN/ssLL6JTw8mRoX0XJxoD9zy0Rd4m9Fyxep7kwdi49ymA2amcy1Zm5zrKJekFlb/kZKawG4lXmGK/f/FhRYRdYAOYZ66TolVW7HKIq3ujoFJjKoG9v8AXqaN32z6qlu86bxEo0p/Q+btDkIkjn5LNVMEMJhtOP74PY2aDADecPtKoT6yHuG7kg1P5YvYYuoamya8JgwTiW9cS3sMl8KkZX4+iuEuuVpA433bC89WK3U2fUt0FI/dvVsGoGkjVTJf0x7uHxJ9PPL8ul4prmbp0/eWSLFB6Wh4fDNXaB2OghSZ+VDT2AaxoR1Kd6NGVSWSNKiVc4bkx4B/z0tOF6enwkzlCc/9PxsqBj4zZvkCtgpb4V9asH8mk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.155","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.155/smartcook-1.0.155.tar.gz","created":"2026-09-22T15:47:21.010680Z","licenses":["MIT"],"lastModified":"2026-09-22T15:47:21.103647Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"2hTU0rr+fdY98mBQ0+7T1+RDkIQSl1h3PZCRywrZOn7Fwv77AV/x55iqDIeofE/yMI5GqkaJpTrdc3x0OlJ1f+X8DqAnHvhWa1Jlir6EphBVyV1EoMAj5TsvAEfDa41wEhNDb1kD3RmankHQat1XLzDzSh8pOEAyS6emfTz6sLwYnb1MyUFMq5tdxHvX3WwBjbE4s4kI0GObxQfUykdWsoSNZvaYbfuznG/4m9n5QMnusRqLg2N8VP3BgGqR7O+SetO2IlsPGKu5UoY7ZibNMc+53zwPS+yUiV0SZSZsaQ96dA6Utm9BALR8wd7xHr6O7TTkVkIWEp09e5ZlsXZKbDKK7Yo0A457lSnOtdPCJEgJn+5qlAcplmsc3i20fY6jCrvVE16Iw9iSR3obOa3mybHMTVMStPX1/Zw30jbXJEXuckC5XZ9s6m9OjkMxPGyD7k30cyBaicqLHzA7fRQ52H5YMyrUqiiM9z84+JzagvGNd8Q7TCcTSvSyo9Kl8qpzuEyNRhodxn3OgzlxD7ol3nhl1KDPzg7OftwAj0lEtbNahwveVwX6HHKuL6NK4+4X/hr5u6VQ4JKSXdNbX4aJoRqsqtkwDagMM3P4Bmdk3t23r5JTj4x7zIk/NKHKPRtV9HdZ4eqdwA2AznyML2oVJeFRSPjp00KU5S8ycWHbncE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.153","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.153/smartcook-1.0.153.tar.gz","created":"2026-09-22T15:42:41.734150Z","licenses":["MIT"],"lastModified":"2026-09-22T15:42:41.792028Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"1V5XKHe0BaztNLV6Jzvnm8RxdwTdmUCrHXcTI2hj0fXOHf2Yh9s/fgr1vzB/5V/gq36uvZi3lHuIlqChzD084jJemTSV0YG2U6IslftxTyA6RveI7+ekx5IOjtc8+K+dEh6O0jLE2UUEG8FjR9vM8znfAGwSAHgCn3NL3M9lRTu8bDkF4OWanNcv+fyC2JjxJXMBUIIylqd1hJaECRANeZ01gavJvTMG6Em+wGGYtt10TOHj+7++cdO8+RNU92eO7Vb0v4HjtKc4pl4Y+QGHSdMwAitYLwY0YmHCnxeS3J5rrXr/UOVt4q8zuCNhnTu0RN5xKLzvEGXSPjBBfvrWqmNN3Tc6dfpIUQVLdVa95pyuIrj3xJxW22+oFGDQ06ONb19HHPZH32SBvDAHD/nYCIjPlqeMGdOs1oeYsBKMnKRzGuN49z8tsROtarYVo+oot/N+Qx9n0XKUnQIKxC+EiSaM2knt8hZS32qF8ZQGAIDOraMuwkjHg06DcfsPoHJ/lrtK8RETAOTv955eB5YRjpkS6LQDuYz7EUASwsuAwALTyf+RElHEIfKZReINuVnGQAy480gzJb79voJIa++DDFsxvpIESujjk9iXKgdF1qTtKUxKK/gFP44YlD1PtvVMJWw39pDXml5NReRMNJk0JJGD5KeHpb7/iEhvh2DUZdM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.151","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.151/smartcook-1.0.151.tar.gz","created":"2026-09-22T13:22:43.526527Z","licenses":["MIT"],"lastModified":"2026-09-22T13:22:43.610901Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"EPcYGj6bPfGKhHjayt3Gf/umK7cUu77WYNqCJndURxIuW+em/z0xpUkaQZZXFJ78ecLLAqQjw4dTBBzhuSDtvOipuSttMsDHB7MdzZhFvyXj4eaLU4L97TWQ1KfCpowL4pGm3P4y07F8/cK0C5l1u+cwGzZz7aFER9lFhl0PrRtlnmHq2pWn/aKxqjwPZ1UpHRPXBRmlN7KWsHfAM9YEYXPNOZEzo+xL+chcsdcsuDnXfDbfMFHGmBus/97qRYI49wXDJE7nzkeVUaU/Zy4HolUU3KLW/m+IPcYz6NGaCgzJQn2JlYh18a9pezKkxTIJwwKOsrVRE1kQWTzWUODxsoipNmZQjckMvsxkz4FmJkIddCa5qtUuMQt1dNytczpQAbeu3R04ymmVx0YDwvaaKb08+jOOgJpRy7TLmSc+4zv+Ud1PvkW5rMCW/ynMWppyPpk5K3RMQLBNeJp3J+uxazXkiGSWsbB44lriwfmaW8kubZed/2TW+efkaGJRxFMRkMkgEkUYVFzrgHJN7Y5ulwBpW5I/V9GcmjvUZ0ufUORw4nx6Jvwso95TTdBUSdp/4RpA5K/xHabxcAd/ufn0qIfVzQlVv5ozElMXhGhhKXIz9vzKh+N7jzguQ53y8Fq5EQT09ZNOW9OPeh3rJHmstzV/73SDH9KHWcPneSat5mQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.149","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.149/smartcook-1.0.149.tar.gz","created":"2026-09-22T12:37:15.313513Z","licenses":["MIT"],"lastModified":"2026-09-22T12:37:15.404998Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"A3JZH7wVWK/p8Ls9Nhl52JjF/9Xwh32W48fqWWvZeHDOcXM3qSrgkbbMk2GZUBr7sAAKdIsmlAHX5owE6gTutNj4UazvpeR7Icw424AAUvkahj1P4k3qSTq6Jui5Unbgp494/gH5eysV2nO83bwug35R5WvSuVorIABtXcoq/JK7qTUh0t8rnBjcuaEHIFs8lpKF0WYHCEeJtxifN2w6uF9lTH01Oo0jqhHtfJr7SZUpF8nWICxp9dCS0pqTsX46HwMeFTqcaSllDn95TA0Q8MjYZ25s76No7Vn71SYWMXTHVHocThXolNM4cTFv7AqGugXHUt+y94Ip0q8QyeozOFeGuKrtAtMtsgxuXg9sWUwidQjErz42W33iZfpmpVfaE+8qmZ6IHU7V3HCIx9z/DVlVK/Z0vF2o9MV3zX1n3KTA0No0/b7T8fRzH8XPtOnnJqDg+wPT8O+wDjXGHdAlwCVDREgo6XJm5xnuQVcdF84QQWP8enWWC1+8DeSeLtRpj304xnwToQPWmhaK9KQlPbpyJr2lKGgLQamcrbEViCFD2HDUC41GOBfjh5LtJuuc4fvtRyO5GEm4IElBzIzYuGvT3XaHvxsFcsY7gIfuX8eDz5otwtzFZ+lPEOP1VDGNYbW5LBbJiPS3YHvXgDahlzUX4jZorPfoD4Cjkb1GAZw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.147","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.147/smartcook-1.0.147.tar.gz","created":"2026-09-21T06:53:40.664719Z","licenses":["MIT"],"lastModified":"2026-09-21T06:53:40.723419Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"LXBA4V5ocGYBV/r085wA9c9ZJIfANsMJES/8bph6eMa+3J+jcpL+LvIVTcdhbA5cgPgXd+8cfTbFEiH1hZ8vTEZpojDAsosxvXQ+KzF71a4/fovbXbJ4LjIVG8x1xZY33QGW5EHS70vEEbUh7F4xA61p019PwgChq3qtYhQBdIl/OmIpoUrZM5E797vPATMrHMwNOWXavBzSTkURsf1sxOJJENQlWlsO5FCKPnY0IqYzS0GFBZGOjFDDTTBJ72RfWKX94tT1+QSPOphRMl+3EmvnDXDx+VdV48RfwSU1ocNGK4fgo4vwPE7AqYSDRWAl8uYSe31u7jaISJCxOuc5Dp0sGo331+qAcpPYZkdkgp8uqWE8jeIPdgB8EjtmJ7tmkvLDCsV0ZdNxPndjo0OF7l094X+pN5agKxBfeiiIhbvUKI/+Pbo/LFOCH0xKH/HTTCnrDfuvNBh/kg8d2VJbjGU8DA3YWMkAJ5MAcFecNdyE8BCJrpuHcj0t8VsO2EutxuMFVcD3/H/yuSHCqR+rU8O6y88YQxSwv0FvvJ1JjTJmzfJu3fQ8Za/VYQ8P5zCOA3GqBbKsmnVsP5ND9JEWlr/4NmYsYIJ8xKYw2IUvmmGHUYTq+N13ApqCn2U2XfH0OpBoOswZBFyvA0zU6hgQRHtKwbrq4mqDqqHauEjtnLM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.145","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.145/smartcook-1.0.145.tar.gz","created":"2026-09-18T15:20:11.974303Z","licenses":["MIT"],"lastModified":"2026-09-18T15:20:12.061413Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"gtE8ETquASAZzcqqYGwgK7P7vODF/qkaqsIfKsxoaU6+UphYjSMfHYOSldAq0cZzw5tHOshcBv//6wkbBaWZ2+IZ1nsW8H/n4iaiyw9jwr5U4hTizwdq1BJ7Y++k+oEMOvzQOr5XXk7H0d3iUGDRbC+0kSEuzjQUSWCBozQRvs31kjRpaLDiGpxKi4dzKavzgLtHorM4LLwLAmqPGFyEZJNI/TTYh8HFnnvPpMQYKRctzjbKvDNEr7slcbHeZcjEglUybfXjO/e2CYm8+fKHpmExB7PdLdF6zdLBm6STuygezHm2MFRlIOlI4wg+zV/0S4dQjQMNfejxCynSaQHS1apn7/CMidAMXfgzsjRMNZE9A4KkmeYAlGyIt4XaTV5TSgpFiRiaZ16VmRcy9o5351Q2urStHGNPC08MgUL8YIovPAzEplytwCokU4wkJJX+INlgcmM+oj1mUDsta3xITpUN6gaO4jABl+xXKHPW3hfWW1luoq02L8ZD6R9oUFXRT+ethdJEr6B2VUUZtWNJcRif7x0cAHHPEkUYoz9Z5/6IoUXsFW/zST9aWOuBlFJUaor4W4FwCtutI6u7ymHdm21alZLfPfmTwVz9yshsA4y6s49TeEhyfLJoER+j34ZqNUwLN3kHhjcc+OkmLGLVndgyhtGzm+ntGTWDOHuLl24=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.144","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.144/smartcook-1.0.144.tar.gz","created":"2026-09-18T15:10:22.064471Z","licenses":["MIT"],"lastModified":"2026-09-18T15:10:22.128505Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"PNO3valxPzDHWHzKqUU7WzyyXi5xjwPdJRk8ScHO2UBSeIuYYmKOkbMhfIfskXqw6TQPICnrEVL2C7t4FfHpcGN4t3lz9RGXLTMJAOyz0oAkB60C7oEBh5JZb45QQgMWQYnLwjT5qQu3waC68FOhFyulI+iEGtqsTLz8Wl6my9+GGnmeha9U5YO5YEaTqTxXvf5Ia8pDA/ea1QjrlPZw9W6Ik6/nurTEHBCnOI59FZTjnWX7Peh3a0f5QxDJZ5/qnBg9J9v2h8bzRGeyk+ssT54/emERoKVmOVLGrKi+MXjQ0ORJehvOS2cRy4+dYLdByL+jxnc/K64K9UJFjvmbIBmJ12W1xJ2qBc7gz2G5IzgG/CvcqSuwfAFLARYNu49WuWkhvBQ8PuwpfaLmkTnTqroi+RFPS9O5TEuiRUFxxABlXtWvN/OfuAk6xY8fL3CzskFfauOiHwAyORCbcIz2qp9Iob0IR/OodSLkXV4KoY7DzrtnQomY0sh5OVvcmFEfMgqVJdzuYIXOaA/SttI9Z9J+GBTLq+zhdhYJV1ICbzp5k+VVND8SUF7ppJSFXwRMCnr74fAH6XFqTvwI90MsemcWk8ChpVonqugDfTKWzNsSYsGqfPSrN35ereSGt2TyILKVgWRiNTXLGkCwqfo+Y+m0ZQFBkj7Q3iL5IcjIJQU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.143","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.143/smartcook-1.0.143.tar.gz","created":"2026-09-18T15:01:57.965887Z","licenses":["MIT"],"lastModified":"2026-09-18T15:01:58.024867Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"W0GLbGtZidUhAi3yCbGbiG5dFOxnDaf0eGob7D7d5ESyPtm+uek28wafT0yYe7DepJMdUD4dk2OS8KOvFgOCkV91rAv0p9YuHhm22nkF2AoRfFuKfVo64+yqPW5b7OJgs/LCf4gyXuXgCoQS8Mhb934n9bSEHLdfDbfPVVRjQdiySyZ97yldmClHCB4Mzix5JdzkRTPAeDSZ/zATe34N90ovwhH7nf4iZJWinaFS8ZS9TXDxiLXIGyXR9dQR8EhBAjuRXEKdklfmV1Mo7EWRvG59+8GFGGUe86156ch4kw+tZPxmOjjspS/RS+s/D88S9MNEMoRocP8m3uSoe5gdNNFlZnSsn4sCtfFNPa2+PVW9/FI/X4hhQUnj0kz8mlb7wCoLOpm2m6RTkTx3sJmDkPYI0WxdCAiPmZ/h3pwkITY9i4w7t0W851c7S6FMaxGefcgqSe7M0o11TdC98tX1yUdCbQBiH+GZ0+s6IycyXwbPpv5SewE4ORRw279A+UYnEAlIPTzNF55wYXvo90emZj4nNGOBJ3jCqWxspHE3jyYoqtO/44DyzN66Y+zkfJv3Oj4l+EGs6urNkpyhTQTTKZctK+LxU9ZYbXvRbHMSMhEO98pwyfMnv6yhcyn3YmFHb+2UsZWdeUjYdQ4qxJUIJARorCiHQm5ruqxxZ5TiXVQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.142","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.142/smartcook-1.0.142.tar.gz","created":"2026-09-18T14:52:25.618670Z","licenses":["MIT"],"lastModified":"2026-09-18T14:52:25.712173Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"iaE0u1UOng8bKLs4knymRUhJieh2tF5hUMdawoNF85LwPTd+cA6uGdSTKuvz3J3E6iFQj7m319EAXc86gSH/Bab3Y+DeKBYrW1JwkCLu9YA2KJt8IZYMfbkMGrmHojlCLmMZK7kL9EBVkMxm1Xa3VyrFytyAhDuCY8gh00S6/RGzFk0AMwKiQ1tcVsuhsq/hP1QGJ03AtdSj4XkPXBcu7fKHXApdmgd/eRXZM1p0VVlti/lhNzlgu439V3RegfGGWLnZyZv78MZ+ZEeGHMjEqhURoUCZLjrg2CyEqkTdV9CWwr6mVuEKWJ4KeiAwYjCTYt0Oq/Z+gw2fGEhcaKlSHZSf6ZKPZ6rwYEIuJRFHROEPNAxNSSrfeJ2a6R6E8jQVG5+LSBAPjXoPoEvqvqZeSyMIsC/fhXkbF2FyuKys5h/dS0XuSERK8pXRIlHeRQX1i+oMzTVpNXPreSstM83eZBZYhLfCxElw9zSYWNhSS8gCmVO/9il41tIYVadEeh/WLHp90u1ivjSphfK9Ux2jgdbFDZGHhFQpwcxIjD28151ys90F6UwFRVDVUnURseN2+fk1o8HkbJdRVHdwyuat1D3sHghw19Bww/cPY3jhYFNEHeJFgWvAwmZXTrnLrdyKPMih+DBcyc0zkl0i/MSXnO/uVvzXHFKpWC5h+9pmWjw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.141","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.141/smartcook-1.0.141.tar.gz","created":"2026-09-18T14:35:05.629886Z","licenses":["MIT"],"lastModified":"2026-09-18T14:35:05.718325Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"fhxeUBrCP7NH21zFAlTBJuK1LZGWSLqi0L8wdCh2sUffiRvCH1oBqygaJW2DWo6hAdxAw0H/n2Xqvh5ivn1ztgL5ZB2v8L5tV592PO3nMkYKuvNAY649orahBPhFiTcCSMtq9yxg/j/sGjc8AThzXqGc6b9GkRdC8a91OCc7OZ4WQo7Wpvi62Cq6pu5YeSP6VqF0hnpprhODYA3L+F+b4TBoyVmFcRntCf/y3gmmhJvloPONPrNV3NfOaJ92jXNYyBJMz92mVL5/2XbjM7JCb4b5AjXvee+zc2QYeGmerta52fiYQHJ6uhXYDdfQdt23drOR3BU1+2UV3yTJ4dJw9ESF0d/HbbnE8OX/0eXEC+YV9GXqO3ln6e1FwglqA+VMkSncEZwDZYQ3jA+4V6yF0baiHBa0Eg/4TbJmktr4LUypDu+DhgXqaPbGhlGpALGeoeacrj+os6hwWIVJMj8/nviUblTQrc/KljbwMM9nFSO68Bei2pGie9eBhQU6zeJiC7t9+oh7mZRtKzvuaz3xAqUBDqRNXEdp6o0VH4FqlNFn2GRwTt5KDzPB1gMRgA3teNnl9cIO5j8vJu++XCBIp2ml6jfdSXtYPf53GTq0GT56SxelSL9n7rIphav976vvfh2AbMCVrxHDOQ65eYtWT7r2vn644lQjDcNe14P66s8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.140","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.140/smartcook-1.0.140.tar.gz","created":"2026-09-18T14:25:15.402414Z","licenses":["MIT"],"lastModified":"2026-09-18T14:25:15.467046Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"r9FbH4l0SXN7Ai7CLkSL58i+PIOaYNzTCjUTtVQ4ZOng9n6uTL9vg7bE1tWNmVvMaGeorIS33e3djym/gh6I/pQcmSsPgkMh0XmgTylJj/jpQBPXLepTyVQYeIyRPrvwa4Qzkyudl3oC4u9dQ+zZw4YN6EznbvNjD41UMp/xGoSVRmpmLbY6T1Fvz86KaDwxxf/sU0Njp7pbjeoiSUGDYJVVw1VEPP65zxcXOCZIWhLi8uK+Mt+L3WH5WvkQRJBsDtDgcrPA/GGGNRNWjKGBc109rd26CE/kpkKNW/9W2OMKLhNi63MMp6yEdpNehJWjAm001d7Tpy9N0jt57D0Fh7yRFy8YR5bVz5ApVTpuVeU8LZpheSgu/iYnaDC3tG9rf3QmrsnJP40ZtL4RtmYcG0ym2nG67mmqdVb07ut19tJBgZJqC9XFMTnsSBA7VOtdmV2u1JEr0yG7wl+NXf0ARejmiyxrYjt/XxyAD5cAD5d9r9D//48J9L8cLPxR0VN/lD6AWXXwElbnI6YJxnWNIuXIkgWpesiEaEMcB4LFwCxu54o21LcEc3InbXFjTKYMcW+v9SMGSRqOU+XqZ7rfEVVG+tdqynA0z42nJ/zOf1vVnGlfljOatyj+wtZjMGb5hxPkLXCnTI3DrRbx/iCWJsw0mNT72yUhGNdnkzS22L0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.139","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.139/smartcook-1.0.139.tar.gz","created":"2026-09-18T14:15:29.648080Z","licenses":["MIT"],"lastModified":"2026-09-18T14:15:29.779747Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"5f3x0yX1g6TZ4NyjqRnwqOIMnGXfsokusRUSqknH/kWUfU+pHj71WQ3iD4FjCnakW7Jebifjju7taikYBe81IXOOKQj0hcZsH4fzqBtGE9n1+9rUU6FA9SbX0UzdlO1RGmpIa7DCVf6REVY69gY22jUyAVKyHcRnnXPh0DGGYfWDk8no4WaplhsXCeL+5JNJ6aRTvjkgU3RmK31XfrAiM2qcD9tbX9O4fMJS5t9LLeJV0ga2LBMiflN8iYicvtV6jrVx7UZqenEDfgsq8Utd9Zdr7NdyZ5butCn1O8Lzkkc/16ykYhCMfDKMHd/C6H8/EojJ4b6n1Ers4QuI531h5zBnvKXFAbyi3QbYK6pumlwkPFI3gPsOKVW1HSbBC9ksCdP127IIIzco3u6I9NA9K/CxOxs1FyHWKJnIALQJPg0Ytno4yCZUdA+CkSP9QUYhWD327bd1ShD1oLa4A7EwPvKiu8dYiXnTJTG6rPEKGRycFmkSVjT9yDY7v8bwE7cY3VamFPxmwdN8+n/hlIzbQ2f0rz0RIMPZOMKmxkAPlB5qc13eB4b9VaKUGmFf8ToU1NqxJHHrDipY2Usv7gWQp2CvHBrQOwOwPY/OXIhIyj1H0kA7JW+KXARsDq1t5s6rKW3kqvpBabdazYdcA8P/1O0Kqefdq9793vTPEybPFVA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.138","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.138/smartcook-1.0.138.tar.gz","created":"2026-09-18T14:12:43.528782Z","licenses":["MIT"],"lastModified":"2026-09-18T14:12:43.605691Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"Gd3qOMNS0bb10Qkl5uhufGn7nig2gmKpu8Fvk4luqYOjJiQlpcK1Hbw3QnZAyzp8++otdnI2JZH0MusgqjBAH/RnHj+E8Z/D3pqPcjc2fWxjVgBD6yABMtb4tl8m7QVVQ7L1YSV6lKm3t2P69m8HFxmH3NBr/BHeJbUEClPOHDqEXft9VocEqfcZoo7b+FHRbCUy7kUycMb4O14u27xLlPHRVT/cJxsJ6lx4Se/CHXeCWrH4QE8yBlT0pxDohiRdoYe4adocXCP85y18bU86vxADlsh2BmHRTVPHxp08gVuqjArE2tGWTjyQIyo1vh4tV6HX8hq4c/SNBU75IHJzYav+U4Xz8QDGN2XFRe9fppLxB81agsoz4HEtfVmv6OAGwE5VCYNWL45lmk3rWq/GFHcG97LlFI4Jh+4cEceoCXmlWn+IjOoCjpHQtG0XBdgyYYChk581OMTQWaY5GYjSeb1lFblNL5zvi//DKKCgDifD9F+CI6J64DpxuwJscXkw+z9jw+RsQ80eErzDZSktgd6fcUxPUsO22zRDqkn/6dGF9S3vJsnBgPsgk+9OTFZ8YIBTjrhWhYr/5rnqgMi/lSPjcE6CK7THCDnJ2Md1oY0ZCGH+rFcxdqPt74DoEEIOd5ImCpViPMBoVEpv4qQtpYVnKVRXlU//EyIlqxgBYxM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.137","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.137/smartcook-1.0.137.tar.gz","created":"2026-09-18T14:09:07.440089Z","licenses":["MIT"],"lastModified":"2026-09-18T14:09:07.529905Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"KZo99NB1ix+IjjaFpv/tApO3jtQSnREJH6frEDtaQ62EPfsGA2MGVDy7YGaV2tgj/E2NKXH2Xp7iUWWIptu8SVKryW9KNlZG1+0yOdj9qvOr6v+My730q6rNY9GCz3xTcmcpFcE04VFjAsULQalzoPDq3wE9tqJCNTylqI9CtS7EeHW78B/AbuwQS0/cH9sor9t+8l4Ptiz2SXPvVpkrIneGlVxuBPV1/F7dDLrBXlhQRu88NaMTZabz+RKduIiWR6CL2LAmIwMUD++heXBt4G0xvLQAVkcZzsQi9C6S+etRzm3P0tGEwvnX/7GZBYaeCxtEaPYBmru4BKPkFrcInD507FAAC4jyUhg1z5Rv364fdPHFTBcONd6HoM8ebDzjVMmi/72rzKTfP5yc9n/+mFo/tuoBXeOYg6LAc2jN0tuQ6qhM6S8VDmYz5kXRIAIX3yHQNgXBLdVTdRZkfrRDtI2A2SL8kF/YxTC3n0FZhM+4IqmhTAUyVA2PSzuHM6Pq2cX2gf8GVH5udmk9XufkKb3otvQxftcgTiZFxgd/d4y/YVjQpKbFJCHPzebsW0LMSGnZ33KJB6NIqNW3+2hHkMuZDLWtZeNblRIhmO89TY7+oHVavFiBeG6yyUHFOYtia9O0YcXX0m79J9iJwN12Yk7m7rtlT5PKy3X7loEtPcc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.136","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.136/smartcook-1.0.136.tar.gz","created":"2026-09-18T13:47:12.646240Z","licenses":["MIT"],"lastModified":"2026-09-18T13:47:12.740575Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"QrGO4KN07mjlaIWeeE2W2xZndYzPrWg90LOtJhA3Y//bf4Piwic/kDBZaoNSdTiePx7lvK2AcBgsrXIzWurjjn+qr8+Xg76TtpS70ZYdZ7474R7r/XTvV538UehmBG1bQMIs9IuQhcceL24kj1vMcRwlJ6IW17FsbviYuzF+4uKdiW+sSlEXA9Ajqiwgn02viWUQWQXRU/+h1tjj37LWgjYwtGYJVAqqU9tUMUabs1UZbStqOUdwQW11xtnECskU6TbNEsR/1HPt7Dc2C0+JigcriTAgynHr2ojuaKjp0Pt/Bd8OYVFDADVF17UAsy1oJBvA7ynZRJprzCZAU0MxNFJ85U2qqO1l/3XIVW95zdezfv85qQ3lam8d0a52faAMrbaRxpxorpM/5StPIYFjmTsrMRB1T0oZDF/yhAchk+1AwnwiplYJvTammIS9o8OWEd1orz6ox578VQbdW3zqZWd5r+VKo/5WhqfgYctDxh9lYjfGONIJCZbYzPXgBNmmUCS4LwsGUEn3YjU5TxQUO8N5TyI+ZvvX4ibw76Ccgyv2zWdMpF4dW/YAtcYhwL+IC2vNrQjhM0NKDzwthPefLPMy9OcBTkJ2uq1qT0NEMJmxCj2j1huuyoEinjI+VWPKD8iu9ULavK0CYAphSStzVfiEjNafDJEnQotjoZ34XUM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.135","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.135/smartcook-1.0.135.tar.gz","created":"2026-09-18T13:27:15.852221Z","licenses":["MIT"],"lastModified":"2026-09-18T13:27:15.935589Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"r5ZOAxma0NPghM9/4jsKCkYvDPUzLwR86zlWXsaae5eocHP2+RYV+bPX+cGR/3sjm+yffQ/BpcD3PoKsPWxbh+iL98x6oMNg7I6fjeiwbrenfA3ovvTRMwP5DJaN5pHZ1kOo1AYUkXmtBz4Ja/8rjge99O/WvdFt1+wEyOpu/Lk6/uuuOVuN6BsH+tDnZZYOe/lMaWFFO5fhQBagGK+4M8Mu1W1EPuixknT3tusBtb+DZyDqDJb1GE/CQvHwBcfW/rtrWvYryfw19cApr28TQNYwsiPx2SoyEF3zk+KSAkekIoY3a1TN8wnVx2aTcIlPe8vZQFE1bh7ayxzJAh7gH+YDC/cxmAFz+uHmkvyog9r4CQ7z132f13Zf5oEQ+KeNjLlh6YWfEFmOuX0bfB+1GrUiPXnaEYSssZH/M3ferlFzUq7Nvno4nIGHLzbU/u2d1FVGn+sAKRPj6BXSsFCFFJZghxhNYOKll7LfKZmJMRc32JdDHxxdtyE4OSmYZfy1B8vngunEoSngnzN95ncEaR+vr4fZj0eMz8M3t0cuLQgt7RD+7ImoDxiZrwBIz0Y6ArjcgZ8iTDYAw5YCh7HZGz+CUYBZySwmD8MSi7+3qLbT3gMPGdmmHZEdE5jsjwZ8rPfnR1CsoQm2inYZ8fszFVBq1sdvy2GNjDICUJ17bj4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.133","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.133/smartcook-1.0.133.tar.gz","created":"2026-09-18T12:28:22.666142Z","licenses":["MIT"],"lastModified":"2026-09-18T12:28:22.741922Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"H6PZkKmyZgBYYgO2HXRI052WtxgfBu/noh5w8mrl7mzqQQmFf/F9vxT3zfCHPRBq0Pnyl0jxs7rgTYhMPymDOWEeMCoJfMGs/cSRUQx0A6TcTig4GFZ00eh9Q/IQjnP77drn0TRFAAteyZ5waaON5FOBHbgbTVBi9AWbprKZSLRp2x0a67rc4xo54A5Nw4k87rmwNLqQVy5Cr9t2n7IuBp5xiwChm3qk6kkn6FTK6cJq3LiOIsAnz97GVFUIAjbI9OaD37BcKDpgVOfCJN3rqQkAObJ6mt9voLMwemswroA7L8hJ3JcoRQ1RwwSMq4b6tK8tWeu3p4vDmXBEmawiFYj8eWL7EICdo4RBKTXiS8M2Z+N3SOXFMt+sDbMSSINXZ1TMgMH/qQFEx2lhzJr6z/Yv0+glw0/EUiiuvSR3nZWa16iW3VOm6kgwiXmqxRWn7dLGfpSzM9OyOoVyHCNB/k3xsVnab4BCz/nSxg0h4gujKKOb/6uM3DXWJJliTbs9bFr2uO6R9yJjONIV0ROeFi3l08gKJEaYb5QWvcUORHpjnDvfT5Umxc8uH8H0fIrYQpB9rodzdS0cu/ptU+RlieM1xy2EjjD3pMyO2c6V1M6gqrwirB5beIjPgh8nHUivHWxVjsx+hWDbwNG83d36CuycaWFvjHkAG04KR9b59eE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.132","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.132/smartcook-1.0.132.tar.gz","created":"2026-09-18T12:14:22.294231Z","licenses":["MIT"],"lastModified":"2026-09-18T12:14:22.353861Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"DFa3az4K7tELuxscgwc3JRisrcYSAldD5bc0WKc+LGPBE4SCpZsaDmXAgicPb98LZInNEebaJcTSSnC0OPocKPu0ZYGxwnYOuhoPdHD90yMF5F+b0/DMgXmcS6YAvq/GX6iBZ2WienV/ohAVLKj3Kp/51aOybAusoJxJA8y/Drmrk7iBsyxTxEPJlu0/g/JB4OLUGSe7G0wFIBaGubdnBrEV1eNx2h/fSyTtdsw3jwIdLU79/WljDt0dKCvlYs3I7fcxQwoO5deMPrSyiSN5tluh+FkxsDwJODEfT2GJBrQu3PI8gqb/XjuPXShHamW/n8UQOa03rQRWo4fLQZJ24s3tfazuDBVQ4hYiom4lWVQp84IBP2l9nRhcQXDhy20Q/HT3lizQjvA3nYbzv0fvO5TEvqq7zNHAmKurJ3W05AmVIbDFzfx+kH8lRJX9Gvn0Js9PO0RAvuPRhn2YHz1Au6rRxfmKi3n+Bvqv878knH7NvHtMNxb3z6r/NyNNmsxnZjlkObgxUQHqMtHmwUcT+m3a71dIQpbBF9+QNAH9xVJ6tdlifvMc8qUzOCkIegJV0Lm5pJyRmfNPRMFOIV0oKZsrVqT9dgv3Pw+zvxsn7h2K65W8GXNXVbdHh7z4Fu044FgGTP4n/JbgMIhufOCseiR8bj8K43U74Y6LYyAmbHw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.130","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.130/smartcook-1.0.130.tar.gz","created":"2026-09-18T10:20:28.400299Z","licenses":["MIT"],"lastModified":"2026-09-18T10:20:28.471454Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"cJG89LbmXecTDYFbx0RMYyrmfez5rLUxyBJ6C/E3V8z8DmJawk+XIPwezmF+oQJbAWklCuu93MbBME1UcH7YaR0DcUBU4MwvcFgNjdVhPrjJz63pwKSwvq5zDpjNWTs+O+ADd5ucjxn228HejnNjbVJ6j1QZ9bsH4MCO8WOeZ/I/EEE5lLPvUSer+iq08aQl9uOav0j1xKkKsBsSHV/ctHNHey/4rrt9huR01ynOBlCCQxVSDzIcSqt3u6LgBQxYGAueGHBQQ/905tAxDwRXG7ybdT95Y/2IWg9kDcfeTkiUjziMgy3XaIVc532LkN3YABlWNgJVBs0x8IWWewHkBjkGtQ7ch/cP2aMMLlhistiL2bJNhLG8pHORB5Xwr4QafL4uvt7LGk6k1S2hm8O1OYAY0N1U4+twcBaP7A5PLuVF4saLYaXJKnLofCJepilLCGDVVg1goyWzZLVnX6yixRtiHGhC4WLNEq8SN/V0qX0Y2XTV+BZDIFC49BiI6BdubPn2Y98MVJ/jGZaAIu6hoQHpEntrCc+racMK217xY1X5XFbkAyghqFve7DK2Zulc1zgbD0bCDKe+3rvB08kYagnWn0CSZtonf2j31CIdCo0M6mcojrjoPVaIu664tkTV+YiReZvIX+rmeds8BxlZuJw/wUDbtWXetqw4S5f1aC8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.126","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.126/smartcook-1.0.126.tar.gz","created":"2026-09-18T10:03:05.037822Z","licenses":["MIT"],"lastModified":"2026-09-18T10:03:05.119786Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"rfXBP53ECgz464FYw63RoFpbi/0HksOYwlG+0teMp984SWXPrJfAcAQN9Lq73aaRgGM+brHdyAaXs+sJzXw04mjzfoqbup3KIq1TihoWL/YBh/jyjV0wjJ4tvDF7hN+97b9LF4uA9XECp4jW0tegqH83LNei5dGHwm3L3l4J+WJD34p7gZxR0xNWHXoEEtC6ThM/H67nbAM4TggnJm5ZEjpCgnx7Vdvj1dW63QciSTVGQijTIAtYZq5pTsiDQubeRPbordNnMptFD24L3dQO8Zb+zAfm/OPu8fGzjfRbyYx1Ul+TUUYWm8TVNv5QYmIJZUEGE0uEuLQLSCXP+tjD1wytn0pUKu+nwWH5t2l5JR5O60nEWZ92d6GrjTRQzOB36qLZWG7ZYcSiMlETvWsGJkI/jkZ8eln1OCrPY19umLKO2hLBIj4BZVYMClfFaTG5ufoX1k/ptZBeiy3Fggf/TdH6HNrD5drm6EE6ulHfupQ/k3I2qv+3znhHhYIfPYCcOZ6UZhkMbyK0CefyzDIOFDsDqNueO+IWGBDI3A4S/sMqe1qJ4oMOb49IGM8bPcb0Am1Lv+g7k51VusqlwGJEGbl5M4JxgJCv8H7L7itsm/a7ySo54yDDQ5uW0jZWV8+fQO9UiZEcgpKYmfaGUDMvCXvV8el3pTNOYjSXppz7zJk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.123","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.123/smartcook-1.0.123.tar.gz","created":"2026-09-18T09:47:19.908769Z","licenses":["MIT"],"lastModified":"2026-09-18T09:47:19.979432Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"niX+PYXPiPFDbof15i03IDRPBAVr5bTeYJSjWb+xe9mI3i82vqt/XbFMxnS6B3+0rCkzbAXBP+huPpZmRjOvIvGNasOSzyznWVpddk/Bw68UAwpsiLg2PQ2VnFQmBLPtLQ8cC19g+rtlC5bm4WjADnIKhRYG4fEfZqXrOLtYAsCllNdteekwik+t/jWCCc87bac4VWG6qWOKYxzsItlUH1ckaZobJvsDeFZBAnC0ycBoty83zqN63gzNsciiDaeZHWKnMAvPVEyyN/W7xBzEPVAwAOQ8+izCsfS4Iy8WDj3htfbLokLqyQlvdtH7VbRLIlszpWRQEG2Z9jV6uH4aEGUm+K4gXJBFCtHH7FvQe9NsqIOJ3j7n2pybQGygmGEOUxHL6eFJSm9T20K7Wyja4HT9XznvdKKTE3LCDf5VJowbCHD4k3RY9F23E+kXRhl185ijkigFf+/1NoKu5ZZ4lYfCA86rQMLTHTAstLaChAOkjb3vmVZMtgj33sWnsZWLWvoBtZ6iega+CydtmcXz1GpmYyg3P4D/kaFeEH+JW/l1odVAPhKSZ8OGPuHmGP3FBhe6nqWx2Vg/9ajBaJjcb9/WvT5cX912D1zyfHzJhIDRHfyGIEAmJukBcssD4W8rEtQ5v+b/hH1fnAh6q/3kiDBPE8acF+b36QWMNXdP4LE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.121","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/gabryk91/smartcook/releases/download/v1.0.121/smartcook-1.0.121.tar.gz","created":"2026-09-18T09:34:44.150845Z","licenses":["MIT"],"lastModified":"2026-09-18T09:34:44.205132Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"Xh+Qi/00JcV7U+5KKbnYb/f3MJzsZw1JIHduyMp2fsPvCF4asnzOmLOkZtHR2KuvWepL8AcNVqklKzTAHxDZkdlEDAeIa+JbWo6PwS+S/rcjWCdCqOIhU4VrGsRtHiXuX5fde8jgGDFmHPFY83szxi0GYWqWAPNefuBZS2Zw9GXb8LaKQGzI3ktqmNPd/g9RJYOyN4LhQuoKS+ma4Qpj4QAooGqdgB2DjYiwPmEJonhg4hnJY6j8LipGB9hWRG2h5A8Cx6vQKeIo1ZQEycp10jy7dn/e2FA61tvnRraNb2fIZvIzAr6/LambMZjlDTy+KlMefgAtzSxkSVq+0VYMkwQYPi3I9PzOGR5Wc1zQ8uRe3qmn1W/aP3tyEZgdUEd9FNoz0krm/ej9jyyVp6+35Vuey4Z5gy7tSCmA2f3cHWn5JxqPjNz//v4TXpJmwXQ/ScPR7EyzbrSUa2/NSWm8BeDnpsOHloGqg/2BT9ook2exNY7ibNeUjIOFpqfEcjZ9IXigl3gd4w8QLmTXkT0/08EPzQNiphkN3Dp9mBHlwxsWjwGVVCdMU1dJpUfWkMp1pY+DQeOFpi8CgQDk3aQGjaWM9krdgXVikxkBd2SEF//URKDlCWkItrHWuNa6Qjjx0e/vmRkOm34PlyF8/39v+AF/HHtLfYJaB0o9iFYi5j4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJ5azkxL3NtYXJ0Y29vay9tYWluL2ltZy9yZWFkbWUvc21hcnRjb29rLWRhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJ5azkxL3NtYXJ0Y29vay9tYWluL2ltZy9yZWFkbWUvc21hcnRjb29rLWltcG9ydC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJ5azkxL3NtYXJ0Y29vay9tYWluL2ltZy9yZWFkbWUvc21hcnRjb29rLWJ1bGstZWRpdGluZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2dhYnJ5azkxL3NtYXJ0Y29vay9tYWluL2ltZy9yZWFkbWUvc21hcnRjb29rLWFpLXJlZmluZW1lbnQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"SmartCook","summary":"Intelligent, multilingual recipe management for Nextcloud","description":"SmartCook is a self-hosted, multilingual recipe manager for Nextcloud. Organize recipes with structured ingredients, substitutions, steps, timings, nutrition, tags, categories and tools; plan meals, generate shopping lists, share recipes and export your collection.\n\nImport recipes from ordinary webpages, YouTube videos, public Facebook posts and Reels, and public Instagram posts and Reels, as well as pasted text, Markdown, JSON and supported files. SmartCook extracts the publicly exposed title, description or caption and cover image when available, then always presents an editable preview before saving. Private, restricted or login-required social content cannot be imported.\n\nSmartCook checks Schema.org recipe data first and then uses deterministic local parsing. AI refinement and OCR are optional: choose and configure only the providers you trust. Your source is never saved until you review and confirm the extracted recipe."}},"isFeatured":false,"authors":[{"name":"SmartCook contributors","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhO4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODAzMDY0ODQ0WhcNMzYxMTA4MDY0ODQ0WjAUMRIwEAYD\nVQQDDAlzbWFydGNvb2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDo\naylufOzxn1LslZBzF7IOiFT79fdaYftTQlXWGK7nCOa1hFm9qL+fIrulAZ7ZyTxs\ntmuxlhfsQS9CXxIeCLGyR4j7NJVmm1AP3M8V6rcy3GcIjMmpdmq+JT5WkJb/q2lj\n3abJaNOSOI5SX2uSRklgNm42j5/YqaD8Sh9LC3ocslXBoaqJjyPqHcHqbkjRCEHA\nnpfMc5N/hFyys8HC+eni3RGOqv/Pm7uUqPn5+3W2OnzIFS5TAZc4iKvBYWdFwUr8\nCNRCJLw3J0Cmo0r7rMq6G/xsWdkpWP56hvTR09Mu+yC7zmJmWhgr2IJWNLKVYzBq\nCmtKL4oL/hsQ+ngt03Fo7KhnQ3CIiTsLMBzJT3k3itHZBzSQtSHWPCt85l4CLyQ4\n5/JkY9xU+fb9B2733OcY890zjczmZSynlqSF319pcs4RC81sHquApWB382cGpwyE\nKKgsHAHsmKhpgumXEQMh5LCPDmTQEOsI/3wFJcqJiXvxN2KYxR0loLRI+0CZhE1V\nBUIhO7MuKHk045k5kntl9bsY6cCQXrvea5gYk4uX9GIv7dw3MWgxD8UirF27sqHC\nbBUfCIa1e0XE0vGdWPJXIPU7B+A/XbCCwiFR7MhK79K+6CWeC5u1BPhVbBtuXuhq\nsGieXWl3OXBykBTYOC79iWPqIyN7RSzn0vC89mt5DwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBMa6hBB7aDu3RaWBhsww0YSt+P/zquD8tP/H8o0D99WMG7k3y0n9Mv\nIV5Lh8ZCinZjLqn5z+acwOh2oiBVpFjWu4RiE6eGX9hzJy0R7WqsOIAysCI7BAZd\n5bE7bWhvnQ2/CwVihbkBVBtYMElm5xtWSMRg+BztRAeO0L4pbG4oMm5mNHcG/fWv\nHIIZzFf6Xiz55+QMtMWqnXB7FUh2iXFNOdn21Ku119FRWTNyiNGEP50NLHwlaW+l\n4UtVxNtgfCwaBZdzVszF0UXHSDN7FJ+i7q5xIDBEt18/NF8t55fek4OC+vIq/WZC\nR6dQ6ey7lwn8JE4g1cw/ZfeRsRBCAMz1\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"metavox","categories":["files","organization"],"userDocs":"https://github.com/nextcloud/metavox/blob/main/docs/index.md","adminDocs":"https://github.com/nextcloud/metavox/tree/main/docs/admin","developerDocs":"https://github.com/nextcloud/metavox/blob/main/docs/architecture/api-reference.md","issueTracker":"https://github.com/nextcloud/metavox/issues","website":"https://voxcloud.nl","created":"2025-09-03T10:40:10.916353Z","lastModified":"2026-10-20T17:08:18.123021Z","releases":[{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/metavox/releases/download/v3.1.0/metavox-3.1.0.tar.gz","created":"2026-10-20T17:08:18.114440Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T17:08:18.229293Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"XYLpXndxBIm5cZslfap7p9CU0ee3WMQJGFY8BP4BsSvxz/5hsDbrs3U0L+b7bqK0DaQNvI1U0dwpkBlnEZmNyOSH3GUdtXr9FavORoU0iaqZyRq5wmDpuoxZvKnC03D24RT7Lau8oU15eQzNDvHI4XufeNClyM4vHJ0KArQpwJX6hlkPK9PJZy3/lqDYCJjfV2ifV2+M/u+IqcjvXfgE0BNeSTvAGe3iAT1rDzvcpWI1qCZSknTuT6V+W6Z0UknAnfrra56ZVHfHt6FIU0xm08ZbcJejjA3T590mMUru53VjqZHrpgVep39O2g4GXt9Yt9ZddCyBP22Icijdsw13JIgAEdee3+okJMRY/uIwulUGZxRk/ERdg7HTX+dwkKqP421o6lDab0zjfKEvWBUXvXLRr4YL2BLo6R9/Wsh1FOzYeawTqGE4fJaHk5r0K1kz9mihFrI5r9NgRCVm6YdhlZ2F1CK8kcisVtZWznXyKflTmkeOzJXBtLXlJo+Ff9q/zShkeRD9wWpXRqUClnTrE2pWiZV4f1v4UvHFnalN29TiHxPxjTh2HQFRTr6XSD5nliQkzE14KMpDkF/JyD7oVJa29m+ZVf/goE+teii4/WfcJaKE/KabgpGaWaARdDpYSduXaOuJwLO6pMVq3qF9Soz3jBeEXu4+ecRC8do0vAg=","translations":{"en":{"changelog":"**Coming from 2.x?** Read the [3.0.0 upgrade notes](https://github.com/nextcloud/metavox/blob/main/CHANGELOG.md#300---2026-10-18) first: 3.0 is stricter in a few places.\n\n### Upgrade notes\nFor scripts and integrations; nothing changes for a field until an administrator changes it.\n- **A People field can hold several items.** Its value is then a list separated by `;#`, like a multi-select, and a group or team carries a prefix: `alice;#group:sales;#team:{id}`. A field keeps taking one account until an administrator allows more, and existing values stay as they are.\n- **Browser route renamed.** The picker's `GET /api/users` is now `GET /api/accounts`, with `search` and `kinds` (`user`, `group`, `team`); each result has an `id`, a `kind` and a `name`. The OCS API (`/ocs/v2.php/apps/metavox/api/v1/…`) is unchanged.\n\n### New: people, groups and teams\n- **Several people and groups in one field.** Choose as many accounts, groups and teams as you need, such as everyone involved in a document. An administrator turns this on per field ([#110](https://github.com/nextcloud/metavox/issues/110)).\n- **Groups and teams, not just accounts.** The Account field is now called People and groups. An administrator ticks what each field can hold; existing fields keep taking one account.\n- **By name, everywhere.** The grid, sidebar, filters and search results show names, never ids, with an avatar, or an icon for a group or team.\n- **Assigned to you, also through your groups and teams.** The highlight rule counts the groups and teams you are in.\n- **In English for now.** The new texts of the People field are not translated yet.\n\n### Fixed\n- **An Account field shows the person again.** The Files sidebar showed the account id (`admin`) instead of the display name: for a file's metadata since 3.0, for the team folder's metadata also before. It now shows the person with their avatar, and the edit dialog shows the name right away ([#109](https://github.com/nextcloud/metavox/issues/109)).\n\n---"}},"signatureDigest":"sha512"},{"version":"3.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/metavox/releases/download/v3.0.0/metavox-3.0.0.tar.gz","created":"2026-10-18T14:02:12.935118Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T14:02:12.980628Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"cNUs7aERuEjdYLxko4lWbFjeCxyf98YjKbvVpFUzjWePEUwigyXLH0mFmwCJOejIa2cThtueCa+fL2Gl+/hmEDFnKzXN5JMwOn5JPSCBIFashtop4Dd2LHvOaETQhFvZBAzSDX4UPQZCgO0uV1JVN2QFMilLEx3I5bV9BpyZaQeRj3I5KET/UzNMJRbGTRmLt+PHEwyyoioGart9EbarVPt/Pe4W/WTchpq8oMeM0xmxcgu09t8SfHpTKxVpp3O3o5AlyoK9nGQmZKU5o7r/AX6A81bZl2TUJFbiv8aL2l9oWh/9b+jGBaW2vG3nI4vPzksMrIUKNOdnJySCd/U111lHcDeSnXo6pX7ECPQU7DBkdAofAnDvjgnRlkudrGmdc6zL0vKmxcbR+IDugFeogHBm5qELjRAluBF1du8bDqIcOwW2Ck33ZBMRUUsRWJxrR/IxrqlXaLeqcANc/SQAFBy3F8IK2izmoC5TT7Emu+IR6QdG9zxyX8DMYYZJ+Ln5+E29MSa/sqGEHEqLyEALRy2PlukhedSLAmSZb4F3JmQLCqWqOS/26YkLCgqkNbBteF+YtpzUhFTmiEvXQat4fM6t3afNmBVkQ+L4rIRuT2kKERISXG4BzthtiUJozJMwJRicJbkiYbo3SmjoWGO2Du7q8vhNdquYdT16uIloT78=","translations":{"en":{"changelog":"**MetaVox 3.0 is here.** Notably faster at any size, a permission system that follows Nextcloud's own, and a new design with a new icon. Plus saved searches right in Files, highlighted cells and values you can trust.\n\n### Upgrade notes\nRead these before you update: 3.0 is stricter than 2.x in a few places.\n- **Required fields are enforced.** The edit dialog saves once every required field has a value, and the API refuses to empty one (400). Files that still miss a value are marked in the grid and get one at their next save. A checkbox is never required (see below).\n- **The API is strict and says why.** A wrong or unknown parameter is refused with a 400 that names it, instead of being ignored, and changing a field sends only what changes. Check scripts and integrations that write fields or metadata.\n- **Field names carry the prefix of their kind.** A file field's name starts with `file_gf_`, a team folder field's with `gf_`, then lowercase letters, numbers and underscores. Other names are refused (400) on the admin page and the API alike; existing fields keep their names.\n- **Permissions follow Nextcloud's.** Seeing and changing a file's metadata follows what Nextcloud allows for that file, ACL included. Views and a team folder's own metadata take write access to the team folder; assigning fields and default values also takes the MetaVox manage permission; field definitions are for Nextcloud administrators.\n- **Browser routes removed.** For integrations that called them instead of the OCS API: `GET /admin`, `GET /user`, `GET /api/permissions/check`, `GET /api/permissions/me`, `GET` and `POST /api/groupfolders/{groupfolderId}/files/{fileId}/metadata` (use `/api/files/{fileId}/metadata`), `POST /api/groupfolders/{groupfolderId}/filter-values` and `POST /api/user/groupfolders/{groupfolderId}/metadata`. The OCS API (`/ocs/v2.php/apps/metavox/api/v1/…`) keeps every route.\n\n### New: saved searches, right in Files\n- **Keep a filter as a folder.** Save any metadata filter from the search bar and find it under Metadata searches in Files, always up to date. *(Nextcloud 33 and newer)*\n- **Off until you turn it on.** Switch on \"Save a filter as a folder in Files\" under Search in the MetaVox admin settings. The search filter itself is on.\n- **Search all your team folders at once.** Pick \"All my Team folders\" in the filter.\n- **Yours alone.** Each person keeps their own saved searches.\n- **Only what you may see.** A saved search shows the files you can open, ACL included.\n- **Lighter than a normal folder.\\*** Up to 500 files in about a tenth of a second.\n\n\\* *On the same 1.4 million files, opening a folder of 500 found files took 73–125 ms and 37–346 database queries; a normal folder of 1,000 files took 182 ms and 1,060 queries.*\n\n### Faster, at any size\n- **Search filters up to 60× faster.\\*\\*** Filtering by a field value takes about 20 milliseconds, even in a team folder with half a million files.\n- **Dramatically reduced impact on your database.\\*\\*** Up to 3,000× less work per search, so MetaVox stays snappy all the time.\n- **Folders open up to 4× faster.\\*\\*** Request load reduced 6×.\n- **No more jumping grid.** The metadata comes with the folder listing, so the columns fill in as the files appear.\n- **3× less to download in Files.\\*\\*\\*** The sidebar, the view editor and bulk edit load when you first open them.\n- **Filters open up to 25× faster.\\*\\*\\*\\*** Even with 10,000 values: the list shows the first 100, and a search finds the rest.\n- **Much smoother scrolling.\\*\\*\\*\\*** By redrawing each row in a single step and watching only what changes, scrolling through large folders is much smoother.\n- **Sorting by date, 40% faster.\\*\\*\\*\\***\n- **Smart loading.** Using smart loading, we were able to keep MetaVox out of the way: the sidebar loads once, nothing polls in the background, and the login page and public links load nothing of MetaVox at all.\n\n\\*\\* *Version 2.2.3 against this version, on the same 5,000 team folders, 1.4 million files and 11 million metadata values, MariaDB with a 256 MB cache; warm cache, the median of 5. Under load this version answers over 300 searches a second at about 0.1 s each: enough for 10,000 people who each search once a minute.*\n\n\\*\\*\\* *What a Files page downloads from MetaVox: about 2.7 MB in 2.2.3, under 0.9 MB in this version.*\n\n\\*\\*\\*\\* *A folder of 10,000 files, in Chrome. Opening the filter froze the page for 1.8 s, now under 0.1 s; sorting by date for 0.23 s, now 0.14 s; while scrolling, the page was blocked for 26 ms, now 8 ms.*\n\n### Highlight what needs attention\n- **Color cells by their value.** Overdue in red, due soon in orange, approved in green: rules per column in a view.\n- **Presets for the usual cases.** Overdue, due today, due soon (the next 7 days), missing, checked, not checked, assigned to you.\n- **See it while you build it.** A live preview in the view editor.\n- **Say why.** A short text on the highlight says what to do, and screen readers read it with the cell.\n\n### Values you can trust\n- **Every value is checked, however it arrives.** In the grid, the sidebar, bulk edit and the API alike. Values saved before stay as they are.\n- **Required means required.** The edit dialog saves once every required field is filled in, and the grid marks files that still miss one.\n- **A checkbox is never required.** A checkbox always has an answer, ticked or not, so \"required\" would only forbid \"No\". Checkbox fields no longer offer the Required switch. A checkbox you marked required in an earlier version, such as \"Contains personal data\" from the compliance templates, saves either way and shows no Required badge, and the API reports it as not required. Nothing to do after updating.\n- **Safe links.** Links that run code are refused. In the new General tab you can allow only web addresses, and block or allow domains.\n- **You see why.** A refused value says what is wrong, under the field it is about.\n- **Option labels everywhere.** A dropdown option shows its label in the grid and the filters too.\n\n### Permissions, the Nextcloud way\n- **MetaVox follows Nextcloud's permissions, ACL included.** You see and change the metadata of exactly the files you can see and change.\n- **Nothing shows of files you can't see.** Not in search, filter values, file-link names or live updates, and a file link only points to files you may open.\n- **Views and a team folder's own metadata** take write access to the team folder. Assigning fields and setting default values also takes the MetaVox manage permission.\n\n### In your language\n- **Dutch, French, German and Swedish,** the new screens included.\n\n### Changed\n- **A new MetaVox icon.**\n- **Editing goes through a dialog.** The sidebar shows a file's metadata; **Edit file metadata** opens it for editing, with the AI suggestions there too.\n- **One view picker above the grid,** instead of a row of view tabs.\n- **Delete several fields at once** on the admin page: tick them, or **Select all deletable**, then **Delete selected**.\n- **After an update, MetaVox asks you to reload the page,** instead of failing quietly.\n- **Flow rules on multi-select fields work now.** A rule with \"contains\" or \"contains all\" never matched a file with two or more options. Check your rules: they now apply.\n- **The Flow editor offers the conditions of the highlight rules,** such as \"is checked\" and \"is not\". Existing rules keep working.\n- **A field in use can be made required.** Its name and type stay fixed.\n- **Metadata in any WebDAV folder listing.** Add `<nc:metavox/>` to a PROPFIND and every file comes back with its metadata, in the same request.\n- **Other apps can show MetaVox's metadata panel.** `<metavox-metadata-form>` is the panel from the Files sidebar as a custom element: a host app loads it through `MetadataFormEmbed`, sets a file id, and gets the same fields, edit dialog and permissions as Files. See [Embedding the metadata panel](https://github.com/nextcloud/metavox/blob/main/docs/architecture/integration.md#embedding-the-metadata-panel).\n- **MetaVox shows up in Nextcloud's setup checks.**\n- **The English texts use American spelling** (\"organization\", not \"organisation\"), as Nextcloud's own do.\n\n### Removed\n- **The Statistics tab** in the admin settings.\n\n### Fixed\n- **On Nextcloud 31, people who are not an administrator saw no team folders.**\n- **On Nextcloud 34, removing a folder could delete the metadata of unrelated files.** Nextcloud reported numbers that are not file ids; MetaVox now removes metadata only when the file is really gone.\n- **Team folders in the older storage layout were not found.**\n- **Long values could not be saved on PostgreSQL.**\n- **Dropdown choices in team folder metadata were not saved.**\n- **The edit dialog closed when saving failed.**\n- **Importing the compliance templates lost their dropdown options.**\n- **Starting a second backup marked the running one as failed.**\n- **Default values were lost when a team folder's fields were assigned again.**\n- **Sorting failed on PostgreSQL.**\n- **Live updates could be missed right after the connection came back.**\n- **A lock badge stayed on screen after leaving a folder.**\n- **The column headers slid under the view tabs when the tabs bar grew.**\n- **A restore lost the last row of every table:** the newest field definition, team folder value and file value, while its report counted one short. Backups made by earlier versions now restore completely too.\n- **Values written without a team folder no longer end up under team folder 0** ([#98](https://github.com/nextcloud/metavox/issues/98)). The old writer that stored them there is gone.\n\n### Security\n- **Changing metadata takes the right to change it, on every route.** Web and OCS endpoints check write access on the file or team folder; before, some answered 200 without changing or being allowed to change anything ([#98](https://github.com/nextcloud/metavox/issues/98)).\n- **Metadata follows file access everywhere.** Search, filter values, value suggestions, saved searches and live updates include only files the user can open, ACL included. Live updates no longer carry the values themselves.\n- **Locks, AI suggestions and the start data check access too.**\n- **File links no longer reveal names.** A file link stores the file's id; each person sees the name of a file they can open, and nothing of one they can't. Names stored by earlier versions are removed on update.\n- **What you may not see answers 404,** not 403, so a refusal does not confirm that a file or team folder exists.\n- **Links that run code are refused** in URL fields, such as `javascript:`.\n- **Dependency updates** with security fixes for `dompurify` and `source-map-js`."}},"signatureDigest":"sha512"},{"version":"2.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/metavox/releases/download/v2.2.3/metavox-2.2.3.tar.gz","created":"2026-09-23T15:18:29.637183Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-23T15:18:29.722363Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"FnEEn5Tk8X+wPd8pDw9H+vLGnjSUV73NMqrfEv29lxzmeVElo4D9jGZi5u81pP50NotG7YJr4LCLCpTxQG5k+casevbQVQhUKci1dnAzp2qcBxbiIA1KvfS98LQYZq81RrDeNZpiGcxsl7DXnJTxt+I2iC+LMve/+1M96tHr9ZyKZPpNilgE+cwbjGVw6xZWY+4GGPLlj9MGSmAE6uEuNPtmpAVJK8bsjSmADNwQzS1GhHQ/7MiPY6qZ2G+QfmBOp2DoKZ3rTKCC0fgIn1dfkdeXDeoHSwCj8eLW36hDwxCkGdTZf6qr3Zna1yUrEtRx67fIXF4LRaIhS2ccv59Qywo6EBf/YJjs4mh9vzwszXDT151R44vuFlyTsESWLrDtZazmWrcT8k9dWo3EXUfoAyfx4CtajaH/dKfBcFCPezJAPOMPlqxMb8YqN8qGaCOBzDCDhM5qclR0yOlQPmOH0rY1RlFslEksbI69d/Bo7uhNzc3/c1XVxeAO8UW4Fm1pmHSgs3AFNz3ge1xa8xLLC0n64+8vuu8hiLHjr6I4yruaRe2r7Bk2JEghLqkh1pO9ZZY8hxzCZRV11yhGFFiktaUsfMVUjUEAIv7ogXPhhFlRdu/P7Eu5Ryua4SVn1QNlwtT0joLuHEgAO4zrbX4XvkNJ1e8Dv9mxhAoa9Y6WVxw=","translations":{"en":{"changelog":"### Changed\n- **Nextcloud 35 support.** Nextcloud 31–34 remain supported.\n- **Deprecated Nextcloud APIs replaced** (`IAppConfig`, `getDatabaseProvider()`, `getLastInsertId()`, `\\OCP\\Server::get()`). No migration needed.\n- **User picker results are sorted by display name.**\n- **Settings page shows a single subscription notice**, only above 100 users.\n- **Dependency updates**, including security fixes for `postcss`, `nanoid` and `brace-expansion`. Unused script files removed, so the app is about half the size.\n\n### Fixed\n- **App icon was invisible in the app list.**"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tZXRhdm94L21haW4vc2NyZWVuc2hvdHMvZ3JpZC1oaWdobGlnaHRzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tZXRhdm94L21haW4vc2NyZWVuc2hvdHMvdmlldy1lZGl0b3IucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tZXRhdm94L21haW4vc2NyZWVuc2hvdHMvbWV0YWRhdGEtc2VhcmNoZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tZXRhdm94L21haW4vc2NyZWVuc2hvdHMvaW5saW5lLWVkaXRpbmcuZ2lm","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tZXRhdm94L21haW4vc2NyZWVuc2hvdHMvYWRtaW4tZmllbGRzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"MetaVox","summary":"Metadata for team folders: columns, views, highlights and search, right in Files","description":"MetaVox brings structured metadata to Nextcloud team folders. Define the fields your team needs, fill them in right in the file list, and filter, sort, highlight and search on them, even in folders with hundreds of thousands of files. Your files stay untouched: the metadata is stored separately.\n\n**Work in the file list**\n- **Metadata columns.** Your fields appear as columns in Files. Double-click a cell to edit it, or edit many files at once.\n- **Ten field types.** Text, long text, number, date and time, checkbox, dropdown, multi-select, web address, person and file link.\n- **Values you can trust.** Required fields stay filled, and every value is checked, however it arrives.\n\n**See what matters**\n- **Views.** Save columns, filters and sorting per team folder, and switch between them in one click.\n- **Highlights.** Color cells by their value: overdue in red, due soon in orange, approved in green.\n- **Instant filter and sort.** Search a filter's values and narrow down thousands of files at once.\n\n**Find it again**\n- **Search by field.** Filter Nextcloud's search bar on a field value, in one team folder or all of them.\n- **Saved searches as folders.** Keep a search as a folder in Files, always up to date. *(Nextcloud 33 and newer)*\n\n**Work together**\n- **Live updates.** Changes appear for everyone at once, and a cell someone is editing is locked.\n- **Nextcloud's permissions.** You see and change the metadata of exactly the files you can, ACL included.\n\n**Automate and connect**\n- **Default values.** New files get their team folder's defaults.\n- **AI suggestions.** Let AI read a file and suggest its metadata.\n- **Flow.** Act on metadata: notifications, access control, retention.\n- **WebDAV and REST API.** Ask for `<nc:metavox/>` in a PROPFIND to get every file's metadata with the folder listing, or use the OCS API.\n- **Backup and restore.** Daily backups, restored with one click.\n\n**Built for** document classification, case and project files, contracts, policy management, curriculum tagging and research data. Used by universities, government organizations and enterprises.\n\nSupports **Nextcloud 31 to 35** on **MySQL, MariaDB or PostgreSQL**, in English, Dutch, French, German and Swedish. SQLite is for trying MetaVox out."}},"isFeatured":false,"authors":[{"name":"Sam Ditmeijer","mail":"info@voxcloud.nl","homepage":""},{"name":"Rik Dekker","mail":"info@voxcloud.nl","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhK3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwOTAzMDk1NTA0WhcNMzUxMjEwMDk1NTA0WjASMRAwDgYD\r\nVQQDDAdtZXRhdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAogzY\r\nLL3AYIDWWEIHqFAgwQQSurSNoZT2EkHWQp1uLZdwlCYRZC+Z2CzsOq24vWyjIjLz\r\ngRFx8EopuDR7JgTtskVJxCkoc9J5QgzD296hKMwUYcwZ9Dtg7KIeyKZ9ZSPm1OiI\r\na7W5BMNGrduW7lq0uk4E9JKRB6EkGBQ9vJRdkIkvE/uAWkr/GTA0LB1XHfJuiuiQ\r\nvVkIjKOizmVXON4iVx+8h1iKovHpKGki0q9TpkNCmA+LlOExqqGtz2/u95VPkOpL\r\nUayzQQiC0U5m8AtNjs8DxeQjAepd4R9u3EfaK3GoSfzBXnQEwl3bJxmiRYhY6xvU\r\nkwgeu6/X8/pSbI8MYJYpIuMvkmuIgnpcOPY5L4qpt3SjNzt2PXA+9PHUBZDXdooq\r\n35YglEIkuz1GV+8ZPQnIfMcYb0EnGszu35vge30+Chvggt00pslkVCL2qUVkiRwd\r\n4/InV1Vkd82ef+pyPgpqjUSQ7qu8v315e3DsB4gdw8L6AOKPUX1Ks1ztUGB9z95N\r\nRJ5J5aWIV+eCU7ssTD1U28XCIxlbkWlEBWy2CbwFcRMemBZ5TU10A3R83LM3A9oT\r\nPdnhu6X0O6lSRbkbHmvVTa9ZcTVcADMi+CTaQcyMjSGiAZtWqtlnBuNr/H79QyzS\r\nzmvGWGRRM47wDLPbmiaIyJneNfdcxAta2dr/KSECAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAY3CQ5BkV4u3TF+vN9Zpf8ThEug+QlKrfGo4Prvn3uuahVpZRk28DkWbp\r\nhTamCuysOPo+jmfimVH9MVXyuyMj5Fa50moWKfC6YjD2Cldjz7fT2ihN8ww8dYrc\r\n/hpnnfIG72nPHiyZi1EAvKFlrtBgP+fq2E42EHR3R14ej649C1QqBPC4zxsabAox\r\neTbuiRXEDGKD7f16A44Hwtk28A9XVDEpwGsjmaJctmSHxC8qLzYI2MqaJV52vX+o\r\nYSGok2xLVJy2uQLb3Q7k/LyG+v/erRnIMTQNXJKPdl+BIoZtLiQJwWCi/vPzqJMh\r\nkwUTL4s9FOlwT4NQpQX9ptUGzuDRbg==\r\n-----END CERTIFICATE-----","discussion":"https://github.com/nextcloud/metavox/discussions"},{"id":"integration_watsonx","categories":["ai","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_watsonx","issueTracker":"https://github.com/nextcloud/integration_watsonx/issues","website":"https://github.com/nextcloud/integration_watsonx","created":"2025-04-11T17:11:18.068279Z","lastModified":"2026-07-15T16:18:16.108315Z","releases":[{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_watsonx/releases/download/v1.3.0/integration_watsonx-v1.3.0.tar.gz","created":"2026-07-15T16:18:16.093039Z","licenses":["agpl"],"lastModified":"2026-07-15T16:18:16.149515Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"oacpnFAatZlOfmQgtJr/bKFmkmuq5utwY2X/V5/Z0tA7zrIO6t9nRiMz/bGAgeit+W9NQEAutjVvhKLm0ml5mITAzafeF+iEswWWGZsy1T5KcmTFcNx/6Tcf0JWN/3hGH8GX3+Jb8BqDmScGgR1yv7jcd52/kuALGPbGdqx8NOHvdLA/e6BDniIfUPMtexwHxFqgjwshb6dLO7hs/oB8QYnEh+6t/WqBhTbYByEcu9fOxEw5VydEQIXahAQbLxJyR6s6PLIXR8hQVulVLggDMMM1rGAKrmRVcctIZ9wMOh0HvAB2MkATUJElgP4KjfEcwE40GTwiSsO8clgu9WjvcG83pu6uCBa72buSQUbva/OM5SalKPk6r5RUzxI0i1zUwEJTo/0bll/sTLreY5XPokG/MHmvyR+43AKqk/Taoo//gPyJm10Hgmv/68XgyxMlIQiLGdUkit79S0Qd10o4fEFSyabOUm76Dm3lC89i+xzIFfQRVR3xou3lHVLAuG6FfB13DkeYBhcdWsnSbCGbEV4IbZNLOw4UJZqgtxUuL091uX/kSP8Bc+zqjJ+KEXZk2lwEqmDdnVnaB0YOiH9RQBreWH4b+dfbcA4e6sp3TLkorHM6QskI1ltpvwGsQ6qDyi6sATn1ApxqjAb9oeC9aCreQ3Xs7jUW3KAHCr66yPY=","translations":{"en":{"changelog":"### Changed\n\n- Bump max supported Nextcloud version to 35. #63"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"IBM watsonx.ai integration","summary":"Integration of IBM watsonx AI services","description":"⚠ This app is still in early development\nand has only been tested with IBM watsonx.ai as a Service.\n\nThis app implements the following text generation providers\nusing any freely-available large language model:\nFree prompt, Summarize, Headline, Context Write, Chat, and Reformulate.\n\nYou can connect to the watsonx.ai service provided by IBM Cloud,\nor to a self-hosted cluster running IBM Software Hub and related services\n([IBM Cloud Pak for Data](https://www.ibm.com/docs/en/cloud-paks/cp-data/5.0.x) is also required in this case).\n\n## Improve AI task pickup speed\n\nTo avoid task processing execution delay, setup at 4 background job workers in the main server (where Nextcloud is installed).\nRefer to the [admin documentation](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed) for the setup process.\n\n## Ethical AI Rating\n\n### Rating for Text generation via IBM watsonx.ai: 🟠\n\nPositive:\n* The provided foundation models are freely available, and thus can be ran on-premises\n\nNegative:\n* The software for training and inference of models is proprietary, limiting modifications to the API or other functionality\n* Some foundation models are trained on data that is not freely available, limiting the ability to fine tune them\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"Edward Ly","mail":"contact@edward.ly","homepage":"https://edward.ly/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhKgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwNDA5MTExODE2WhcNMzUwNzE2MTExODE2WjAeMRwwGgYD\r\nVQQDDBNpbnRlZ3JhdGlvbl93YXRzb254MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEA3n3NQjByCTBgPmckjGjM6ZYfy2OZPyfDgR+1fqAc3k4jY5aR3onM\r\n5/eBoq3/QE5XxBYlWL5c+ewgOLcJBmXFMnF6f4zXaCa1uo32dfHsjSJh6xzNJ5Bq\r\nissXJy1w7ZFWxB5e9nV1yC6NftRheLXOGOZZWDEga3ABAqAi2FqrsNp9AamUmWkS\r\nePVPlIOb6tIcvlfDxYkwdCf4CJxhMxMwFMWrzvA1THrKjDclr6kmgMbecovTWsjN\r\n1JshMI/2Sq5BaToPHxp8RIl9491nYtDGm+AZuttyoncW6deKTfuYBc0FcvqDBfB3\r\niLDcFB4gO2PKSlx+DAMbjxteOFgy6dnXoJL6dpAEKy04knm3Dd9qKIX/TLhD3dpU\r\ncf0zqtcJgtRBwbIjNZarVhTLlPsFXOpBawmIwesoRFLKE1b17Ank5X47m1joy+HC\r\nb/bVjNTtAWvz62k31ueYf9hO1xbdHXbHdhuabCBLTcLKMM+DjyAzOkBRRFILcTLq\r\nCwl8jBBh7gkehHwZT5abfaSANej/llDPqU8utL6djFfUmpbuM5PJbX9arC89ur7W\r\nDor60hAQ7pDuCWJzcMLvF1uDgZJCtvdKCYDoZkNDu4EV5SPZRAm9vAJxOFP6uaEB\r\n8mi3awAIL6kOvbHCMNdrk6dDCtQRnlRPDGCcjHwSCL9m6onfhXyXurcCAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEAHRSqgkoXnqV6Y+wlhxj295n9dWIgAKTFBhHEllSC\r\nZnOdN2pAKJ6FX3B+/o/KhZTV3189NQShcnf8B/9D+9ME1S9EEvFrSoYUbRS8eCAI\r\nAXH27QvXI+cSPqEgQcmlzHl4ew0nXIgxmLsScr9cDUbmlB3psydPu7pn1t2vIKJc\r\nEC8x/4AuQRGwiKbfMsyYQ6jFIveba9Popb+0Fw3VsVJof8vLbkd59ToWswmlUlIA\r\ne2jILhv31MGiRMERQFzkp93GVRCzMJF0HjbXGKacLZbsSaZal0+PxV8R98WlRdHm\r\ns/K/WypOzihjt0HwSUpzgcFLXnI/4140JiQiJk/FvqEgEg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_openproject","categories":["dashboard","integration"],"userDocs":"https://openproject.org/docs/user-guide/nextcloud-integration/","adminDocs":"https://openproject.org/docs/system-admin-guide/integrations/nextcloud/","developerDocs":"https://github.com/nextcloud/integration_openproject","issueTracker":"https://community.openproject.org/projects/nextcloud-integration/work_packages","website":"https://github.com/nextcloud/integration_openproject","created":"2021-03-19T16:28:07.130510Z","lastModified":"2026-10-15T14:42:45.109600Z","releases":[{"version":"3.3.0-20261015-nightly","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/integration_openproject/releases/download/v3.3.0-20261015-nightly/integration_openproject-3.3.0-20261015-nightly.tar.gz","created":"2026-10-15T14:42:45.125974Z","licenses":["agpl"],"lastModified":"2026-10-15T14:42:45.138728Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"dxQdC5pQXX6eEy6Cyxwy+AHh7b8xTSEFeqwzxBFtW5wBguIgFJ8+DFKHf0QEaKFGN5U4uut29FyQSTH+msyeNBUTaIdki+5NKga4eZthA0LBSZ2PBpt20MuAqN2lVl+Kx03F2iVUsqsYHn9kUBNfEisRe7rA0xSEwo7k9YY6tVHiAJwsVdgln1EwJyD4ow67orsC9ObOZ10U/y1hLb7Lwp62Y1xpL9Z7+3Cm07yjvThL5oe1ixFSRucxLv8G8W1Tzgez48pI16Idt76nYm/RScLWEa/+qUU3t+7n6J7i/wo2lfJjmIZOgVB1ZGTziVE4zjqCZR8D65JUEWfNuK8KE76gbx45LvEbtU+1ciziXous9NlHsN3Wl7trP12n3jNNeZZBxyf1qa7t+RNqhbCO8Ou46ZyIwFW27FevKdW3klwQjDLELa9KJq1JZwnvkhBdRkIxuSwqI4zLUGuPcsLU8numX04dK8qRAxTkV5rVKu2sQd0JhKZL5xUl56Pjkr+7OgmgzADDjyZVR33qCfH1RuW1XAzDUyI0xcrb5WK1K9CnS1cUNe6g4LWn3W6++pW7LK4sxKcsrLU/nZo9upI5E4Vq5L0ySBZ/Dij3I3u1LltaAiFtWtsm251tsqc/42ECAIbshfxPLt+liHaF/G9BVCQTbOLH7d1xoxhXHUiZTzc=","translations":{"en":{"changelog":"### Added\n\n### Fixed\n\n### Changed\n\n### Removed"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVucHJvamVjdC9yYXcvbWFzdGVyL2ltZy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVucHJvamVjdC9yYXcvbWFzdGVyL2ltZy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenProject Integration","summary":"Link Nextcloud files to OpenProject work packages","description":"This application enables seamless integration with open source project management and collaboration software OpenProject.\n\nOn the Nextcloud end, it allows users to:\n\n* Link files and folders with work packages in OpenProject\n* Find all work packages linked to a file or a folder\n* Create work packages directly in Nextcloud\n* View OpenProject notifications via the dashboard\n* Search for work packages using Nextcloud's search bar\n* Link work packages in rich text fields via Smart Picker\n* Preview links to work packages in text fields\n* Link multiple files and folder to a work package at once\n\nOn the OpenProject end, users are able to:\n\n* Link work packages with files and folders in Nextcloud\n* Upload and download files directly to Nextcloud from within a work package\n* Open linked files in Nextcloud to edit them\n* Let OpenProject create shared folders per project\n\nFor more information on how to set up and use the OpenProject application, please refer to [integration setup guide](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/) for administrators and [the user guide](https://www.openproject.org/docs/user-guide/nextcloud-integration/)."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEjCCAvoCAhF6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMzE4MTMwMTExWhcNMzEwNjI0MTMwMTExWjAiMSAwHgYD\nVQQDDBdpbnRlZ3JhdGlvbl9vcGVucHJvamVjdDCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBALn0ohZShOzR6UJAuN4IErLD5jenUWr83XnKCouC0qeXH6FI\nTNGTyOy/KbDDRIoL1L20xYRl5UKwTbDye10ItUBhNcv72pJ2rDOSJrL84fqMxf00\nWdd/APXJfNNqtgh1QTq9vvim9YCEu7JdeIhZK9ea89RPn47iSj7YijY78mGBfyfm\nqpHRYX/QZAQcwjO2lE9soWUaZlrqu3mxTI218zmaqqcma4x3QakfsZeXZhQSU7D1\n6iYG8wy8IaYueJM5OoRRziBXoIfPpwYpEj4RhV1WME9jGhutyrHYg3jAdfvzsFVG\ngSVUP2ey1sq3HGZGbzWMBFLDGqfet0lGBIB0HTna1Zvu3ZnuK2uV3MObCmBBbBSs\n/s8hyQTqWEbY2aqVoTBN5lyogwfL6pgZJFvhmtg21oHxBBqqAeQ+TZmWD62WorsX\n4F6Ahh1VKkmr5LkVvr2CfME0M1mj9s9gSc7ekXk1oHabH+wwgJV2ZhyezhXgWKgL\nUahjSRzkKqp5mbh27sg1kLCx9QNyXxaz8rnAcazGB00JzQlUmXg76cJ0v/M3qihz\nQR5oju/iMiUYKtqec9LU6wfvmGOOvtl2OFOD3ff69FPS2Km8He4pFWkSqw4DGivE\nIJLlgqLGIkWm+uNyocANtYqib52AYwJ/nFMF6nzOvM1LoxHyJlFmudZRju2jAgMB\nAAEwDQYJKoZIhvcNAQELBQADggEBAD8mQtw0p3oh9fyOuyTmalHxoG9rLiV0Q2mz\n1T0jonVYN7YqSxS/yWIQnZQ98x2nU93Be4G9VaLT0NZvRjnem2zemSVvuwp11GeK\ne80gJTaJjh8n1Z+gD6GU4C+LjWeiR75sd6Jcqfp3bqL6FGvSzIk3QQOfWuC03aXa\nFRleNH6rkMV30sWnXyocatculf7ThHZQMN1c0KuQFrd/alQh/+EyjBleLozkeC6G\n9IlE9DGRK0NUSvy7W68I7cVhR2ToE8oApdOJ1Cd6TpTYMRtvI2lQ4F7vF++ym0Lw\nMIxSI44hNeixh8Yn9rcy/LqOUgl0niB5hfAiauRwHcOY5wf1hKE=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"documentserver_community","categories":["office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/documentserver_community/issues","website":"https://github.com/nextcloud/documentserver_community","created":"2020-01-17T10:27:15.068079Z","lastModified":"2026-10-17T19:49:50.135911Z","releases":[{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chadek/documentserver_community/releases/download/v0.4.1/documentserver_community.tar.gz","created":"2026-10-17T19:49:49.571223Z","licenses":["agpl"],"lastModified":"2026-10-17T19:49:50.166661Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=35","signature":"clqWzSvYnBaZ4iGYR132+J2DSzWk4ome8vz9Kfldl2NGa0xzfqtEIu9bztYvnx5I0FR5Ur8eg8BiRJuNA2Dx/Vpn3Kut6gs405otXsLOm4DCL9h6JzbXtSsf8kLsgk9t91S2b9sx/pQIM8GbG3I1orG7UoAuLn3a9b+AHhoySvR6E7g48wPD1pojXfql6L+fUmWrnHPR4SSWAj9o6OMgHri5xB8zFtTfD1kvlSYkQE2Irm554LwuWqb5fdZ4558ItFSlve3ayso864GSNpbHR81GFUijVke10g9UpwQN4uY1CjCE8Gza1yPTFCxwMLXWd7ML2Bsm+ebxIg5Lh3nTkvUE4BJnpCTRjV2FmXe2DaDJ83Si6QdHd1yc3WwfagfTb+v6g2MXE5sy2KYHdhMB5eRt1riYiUZwa93ssqGxVBX4M3ATDVkItnLCCJETRtYnkNyoCF83Pa4y979mcPKWTW1QsSBuIEfmGQKQaQh8s/2VduU1K8rhqR8e1EN1rvMT4Dh8GoTV2bEyB9o3JRwikaiGbliLvQXu0ViB4YyHy3/aV0vQzFZKvwViGLBoLDUMr5nkoeY0bm4sWWqOKgNtpAJ3sRYjBoP7pved4yf90m9X8WNNECEqf4RdRN/0z2iZJAnfA//PPtCC2+c2JaRcVa+VkgEQTcbKPhyVfc7ilLU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9kb2N1bWVudHNlcnZlcl9jb21tdW5pdHkvbWFzdGVyL3NjcmVlbnNob3RzL21haW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9kb2N1bWVudHNlcnZlcl9jb21tdW5pdHkvbWFzdGVyL3NjcmVlbnNob3RzL25ldy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Community Document Server","summary":"Document server for OnlyOffice, community edition, running Euro-Office","description":"Document server for OnlyOffice, community edition.\n\nThe community document server is designed to make it easy to get OnlyOffice running in a Nextcloud instance without the need to setup an external document server,\nthe community document server does not support all features of the official OnlyOffice document server and does not provide the same performance and scalability.\n\nIt bundles Euro-Office (https://github.com/Euro-Office/DocumentServer), a fork of ONLYOFFICE DocumentServer, and plugs into the OnlyOffice connector app as before.\n\nIf you are setting up a larger instance or require the additional performance, please see https://onlyoffice.com for options for getting the official document server.\n\nThe community document server will automatically be configured if no other document server is configured for OnlyOffice.\n\nAdditionally, the community document server only supports running on x86-64 Linux servers."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.42857142857142855,"ratingNumRecent":0,"ratingNumOverall":35,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEzCCAvsCAhJWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwMjA1MTUyMzU4WhcNMzQwNTEzMTUyMzU4WjAjMSEwHwYD\nVQQDDBhkb2N1bWVudHNlcnZlcl9jb21tdW5pdHkwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQCqgMNTn4aq/RDBV68Sg2qtcv3pTafeZyqOrVrBSRavv8OS\n9LnkIlNUwJY5TGn5dffDuJHkg8mlfUP6Sge5Z8HASOBb5pv4STc8Bz7fj+LdWOxq\nnjtj5Jb/K6D9Hm0LDxxBb81tpfMr+9Vom5X5aDqCJVhkEN+IPDZrAoNEC5W+wQYs\nztuKpmX71IhwgIke9BfbZhlkOAnhsK9GTMIB450A2RKlgybcpDoFwd/aY43JbaG1\nkTqdtQqbI4x3QU12kfmWPn0lxkLlZl4nLhTetpYWqk3f1Ymn3aMK6Dxym8DyLWa6\n/sKOaUbUqF3DOvFw6Gt8nivPI8Tjz8gfQN9eosDKth67ZrVnYXiSeh+FJ016+znj\n9CdjjkWXKCCetWu2oRb+1yBgxCSaTHzP+gjs6sqeS6f1Y+vxfv6QC64E7i+LNVL3\n3bO/YEdnI5M4WaUv3t7INm/wLY7tBxNjMs3D+kFmxd3t3CBY3YJDcqJF4jnncM2O\nQv/6fD4QaIr10Sk0KioEDGHaoPxXkl0YWCT/P3HOFXV4qcMcZDA4rJNvV2tGcJs6\nK5ctEFeJ1jrVLAKpMVL2neGMh/leNPSuTBLNdGwDs2oXGd6xmbzHUJ5xRl91DaX/\nvdl1Y/J+LwtCNLdO0Qf4So0iK3YUbyZZPmDZzHPNSyueWgLRQ4SPKCngGH6yVwID\nAQABMA0GCSqGSIb3DQEBCwUAA4IBAQADbnXhT90hCR3w3TvelYZji8I+YGATTZB1\nCSfRMY6rGANov2GsxlcQxa3T7lgYU2PJhXWUUUD3WBYJoLT8hAP8agjY4djj5eP3\nmQ0sHGX0acrEv74qkU+rAmJ1QwxyhEg7/fgS2wqEzXnFbfFDatavvAjVTdm1AAri\nYp/avz/8RLFeAZtrWFdANFyd8Ptenfs4mrTZHG5NtSKOAiCxwn1+mR4wIFSxAj1c\ncGbTDIiVWpc2inN8nKp/L5l7fgISX+QaHXPOfdY7L30PSopk2GvCB/nZDCKgYDPW\nPOojmg69Z0DQl5np9QZ8SfLnpo1+RIAzCvSgnkBXIwHTmpMpOK6C\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"hidden_groups","categories":["security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sara-nl/nextcloud-hidden-groups/issues","website":"","created":"2026-10-14T09:02:51.113694Z","lastModified":"2026-10-14T09:11:51.661076Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.2 <36.0.0","minIntSize":32,"download":"https://github.com/sara-nl/nextcloud-hidden-groups/releases/download/v1.0.1/hidden_groups-v1.0.1.tar.gz","created":"2026-10-14T09:11:51.651322Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T09:11:51.714412Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34.0.2 <=35","signature":"crO7t2g+7eZH0NJhJIi++IB8gucCnBfE7veqMki3Ku0LwnmitYe4v3kzgn1M+ETTf5oW2Gu5dkh9RB7aja/c5z5co0MRyjN3JF5UniK4gezFvPGTXkO3Z7Q70NrktRyjvTjAwnr39Y2O7GrK6TUXi691SL3c/xL3QN9ift7pmONaMAcRI8fJO2ss9YE5L7nTCTLBcdyoXe/wbr0kYQKji5hwWLDJCtleOYcnBpVd6e8uxP0DYPsLA1WQa+L9vEpvVWkHQJd7IJDEqSn/DRpiuMrcCWcuBbS7aPD2TGqOmtcGChMNfks8erahiFIALUEGIF0XisYIWW+hpcha/JCGFvCEMqsZAzxhM/16uj7kcoRW0RUmPlHbPSwbYgEeONN/Qo0zsqqKwCK6CrSvEXVWcxFXBAoWbkqOU90SltsaVWJqmvpi0YoTtnxbYBofntS0PODjPama3wT4vIGu0Dr/vmePnGKE8nslo2AXxHaOjZmJF7mjpsrDSfdQxA8W63QbG3Ub78sda13pEHhAck5QwBjadFTF6esIiIwgHJ7+hwNIszpSYiKkqAJVzWtgyXPCjuYzMdryb7etAyO/xVfr3OaDe/FHf631daTiIC/muF3DVoh/UqREVtcT9EEpu4i3A9dE0B95fdNOwKDzsOkkH3fYNhRHiOqNAP3Ludcabkc=","translations":{"en":{"changelog":"First release on the Nextcloud App Store.\n\n### Added\n\n- Screenshots for the App Store.\n\n### Changed\n\n- Licence and copyright information in the REUSE format. The licence texts are in `LICENSES/`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NhcmEtbmwvbmV4dGNsb3VkLWhpZGRlbi1ncm91cHMvbWFpbi9zY3JlZW5zaG90cy9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NhcmEtbmwvbmV4dGNsb3VkLWhpZGRlbi1ncm91cHMvbWFpbi9zY3JlZW5zaG90cy9zaGFyZS1kaWFsb2cucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Hidden groups","summary":"Keep groups that are only meant for configuration out of sharing","description":"Some groups are only meant for configuration, such as enabling an app for everyone, and are far too large to share with.\n\nAdmins can hide such groups in the sharing settings. Nobody can share files or folders with a hidden group, and hidden groups do not show up in sharing suggestions. Existing shares with a hidden group keep working, but cannot get more permissions."}},"isFeatured":false,"authors":[{"name":"tosa","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhRpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE0MDczNDQwWhcNMzcwMTE5MDczNDQwWjAYMRYwFAYD\nVQQDDA1oaWRkZW5fZ3JvdXBzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAngSxCCaAjCEip4fmLLKmFnYPkvMOwBz1ugZNdEqdv4Hx5cuVHXpTCkxEL27s\nwz+MPU9qOVvABF6PnTDIDL3USvt3pRf52xL5gG2l+2GNDEBid3XjtYWe1vbq1d3V\n6/VxP8+NWs8MyGQBGs+RlUBjKK0++JLlI/LUIll8JjF9cQjhWcrgjR9wKj3MQ9wF\n7TjrfkxC2rl8mXTbmEDfQpTIURmHNWM3/bgGYrq4nqbzZzfQ6L3XdoZ2++R1PlWG\nAdnC4iyqD+6PQc6mNbYwJDXzwmnQSIpS4SqVt7P7cvqydyShWxyxd5tQwbPFXxyq\nLCsMgXqYAcw4yu7aCNkfeviHcEkuK2H1VAFV/Dhlg0eJbHu5COfM34rxJuGnahL2\n3pUIrb5iUpFYec8lwsait18uN1OCDA2SbBNIAMiDMRCNX4aBz+2h/LNblM//ZJwJ\n3jnAtiyFsLEoFJ4EDbXhe4EIoHNuyUmZditmp4vUIfOqrfT1DnFPJIPEOBXGmh0F\n9lIVHTIwkbtQdncHKfxncj78EOZjh/oaIOXVhCv+7bzP7IIfQCzZax38cd90gydT\nEtAxYlFQLvsjorz94eKmNzzEqvggEK4qNOm/Z607W35IRaMcwQus0YyfnTJmbKeQ\nyjLazmZx+XDvseUnUrYr6L25ZNKyRiFkFIFPY6RSa87f3DcCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAB8omx6Yse1S97GSp9yvP/Ck9X/o2m+oDAR66xofV8iRjUvcX\nDTBjvD0U+nicC8j82XLi0xYLXZYdqyahOdKtmyExLlpBpBLxh+eImwFHoF1azaCB\n5y3lgQxJHEl/mMTkPw20SmmPaWCvq8Y/oYfdg5ZSONqVbta3q8yYzVcgv5Rn8Qo4\nyoA/J2MpqQirdMEJJg+cMhEKXAaGmjIHZ7SfVcZh9QozUlaojB0MWl8+dEKnuhmF\npUH21uax5Z2U01QhShdYF+hGpvkLQFgu4pDZTfiM0GXO1Md/XNUPa4tEFqIr879H\nkNaZfU7n8aKEVKO7yE+eTsDDEOihbc9CX0o1DQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ncgrisbi","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/medismail/ncgrisbi/issues","website":"https://github.com/medismail/ncgrisbi","created":"2025-06-12T08:23:23.457878Z","lastModified":"2026-10-02T10:01:28.230624Z","releases":[{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/medismail/ncgrisbi/releases/download/v0.5.0/ncgrisbi_0.5.0.tar.gz","created":"2026-10-02T10:01:28.206102Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-10-02T10:01:28.335644Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"bNC6jCdMfUOI0oZuHMKJxMXdMwYsWe+OvD0AhcbO9KVQx1OG78QMeVP09YLbgtdL/KpZGD203gamN67VCeJGa8NG9lPrNUaHG8SKrskYB2jMRSY/5gJe2TRCEVO4LAwXXwiiqIHwZIaD7DnEs17XlWzj/4jyYudH9/zLXY/7bPZMmSAHj8QP3V4k5vo5rNUsGq86hGP0lvlAcwJwAz7OFBe+2uLg6pzz1bDQ8aMLrEU9D6Dm3366SEZmxIIB8IAunuOTtsJseGqohC4VGQ0TOQ6orbcgHHHnCY2Rkk5b/MtSWKiC2qrdt133eAbMHnlIek0TNjiWWQCSBRbMZtxkKzn3Z/uOfPsGqAzz9p2iUliB+tXd+SBv/hCsBijLsxq7jUIY/unN0RaBTs1LSSQN5bM6g03jZgObMY6wt02chJyjZMdCDZ9t+NArC0uiR45gYs+GshzI43yxPR6aaq8UkX1C8tmP/n+79cYsxCdWS5POGyB94n6V4jiDgBbfq4bKAbb5eCFAcZiahx4t4aVFDcLJ6NkYJqualsl42ud6ciApZ0Qwb7qCXKfJqaWyYpC/frS/OrpFQ3+LtblgRYVZvkhrfeCyBZP7l2OnslAnl80gACuVSFKoBBWBI7LDX+hYJJ6VSrFF9cDg1wdkac3r3/3CXqwhro9OprlirRAVi5k=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"NCGrisbi","summary":"Nextcloud Grisbi Account Manager.","description":"# Nextcloud Grisbi Account Manager:\n- * Open gsb file\n- * Accounts Overview\n- * Show Transactions\n- * Add Transactions\n- * Support Encryption\n- * and many others useful views."}},"isFeatured":false,"authors":[{"name":"Moahmed-Ismail MEJRI","mail":"imejri@hotmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhKsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwNjExMTIxMTA1WhcNMzUwOTE3MTIxMTA1WjATMREwDwYD\r\nVQQDDAhuY2dyaXNiaTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOE4\r\nxl1JhL4NTBuJaxdOHsfCNUSxasLRuCnknhu8ztAi6ioQcI3vTmVsAUIX+kSyBmAw\r\n5ZdvIKs2pUkrCQSl1TuIRoITru08BurYyC+LB/BXgZNBWXMyIURkzp4ske9DdPo4\r\nm1eo4FGJhFE1s7wTI6yAqDyycX70Z10l/dQT1knl9lbyz5FUBF7aFSYwHkfH1BJV\r\n7uyOWxXPi6n6JMPMPe0ahg1ca1gNnfpIL3JC8Pe7/04kQoV08XzSJTM6kz0Faux7\r\nUBe+R/5/ThmA8nZZkkXcJJYUaGgJfJTPwL+5uxMVzyISN8egv3inXMxJILt+xHIC\r\nerL4/H09PcdQ5HJKHpA/ZGln2K48PC+hmRXvawkimcJdtMOjw72PPZZeP7KGVpyV\r\niNhAi9ip7GLPT2cTQYQprcO/Pv42TYGd3hGQ71GSrnP0u5pFanbag5K64JCVAtJx\r\npCTVvDgS0o6xnF1GOqKQUe/92aU8V2INT2lMXMDoNKOcnlHUA91bmrfxl3LZJUg3\r\nOON5tlpwGzcDNGMUxPJezRgXN86K7QktClcNSyExElcO9bA6ubofHpNesGJuBgp2\r\n/HtgcP6P2xi+AYNCJq06OQqh3oL0OF3o1lPAuffbSO2P6FMQtk3SDyem2RBOfXr0\r\nD3rZAktO1QvGGpebseMJZWjtoBMGrUC67WFDBpD5AgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAFUjrx8IWfyy2YZyRpDU5xNpONBz36akBEKUPnUDVPDGUI+dRg5OTKen\r\nWwxSw41Ry1/GZ8LtZnQATJ8+JWlkZJF4HtG6vg2xqcMR6yr3Nkwmbf72RYg9ODp8\r\nX/KgpdiskFBaphw5zA2kAtXycXf04sSTx1wxuQcQY9u10Fg1fpFNsgt3u0b2fJWX\r\nb03lcZfelqZ1HUFA6fbvAH825ChS0APy1mRfC32clNgRYKKLLsTZvFqjGwvxkmUc\r\nM6Q7+o13tqN9gcTMOY2gdRfWlTXR0X4ERjmjX7uT8SsAz/ML6Es3lYn4cnr8q7zt\r\nJdkk+TnTMT60R3qn6j49rr0wpjX5v74=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_scripts","categories":["customization","files","workflow"],"userDocs":"","adminDocs":"https://github.com/Raudius/files_scripts/blob/master/docs/README.md","developerDocs":"","issueTracker":"https://github.com/raudius/files_scripts/issues","website":"","created":"2022-07-21T14:32:16.752737Z","lastModified":"2026-10-18T17:05:35.108498Z","releases":[{"version":"5.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.4/files_scripts-5.0.4.tar.gz","created":"2026-10-18T17:05:35.086000Z","licenses":["agpl"],"lastModified":"2026-10-18T17:05:35.153117Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"dy/jfQ1SezzauHVwzZ5XSRaNISkcQrkbtjoBs12NBbRr5hSkkNJBf0frsFYF8DRc\n2xSOYBA+fCWL5pl305ZGTFP4qyQlF5V86a9aAZKmyJpnFF2zDUNrd3UuJVv5+BYR\nMU/gzZ2Sddbpfre61PvqqBoFVAqVj0vyeAwZwGXmkMYCRFUY54xqSWNBM1uBEQjC\nFGUbNa2AVRN/6vCbXsn8j0dgQmU0xf1xzmHbz+UozSKp+Ap/rG3u/YRz9WzumKpX\n7SInQKtVizuFTBVmmENSHtkzWla4Oyh/fLJJtJ4+SexLEbm962BKBxUSY7gyFpRV\nk+A5H64e4ip/Q5EUyP6UMJk6PoSdcXB/Y7DJNzwWLOVDKpdEMT/k/77oIsiyTlHW\nbu5YOPHzasG5F4YKnE+B53ZWiBkHR+zIrCIoTQznzrRr7jIhqH2Y9BQIUXwr4ESA\nTgk5yiB43veOks1KGPcviOJPmqLCLeoWyNv4gsx3AZwlEJc6HwO4ls++mSelZoWd\nMS6x9E2D7FRZHAmF8G7bK81HGe6aXbnYiy1kr3pBn6se3ncIQbcBuLeJtZlLwNdh\nI+h0+tqXDK0pOcrV+qIcEreZ6Hhw1sdBfOhLFpq5HE4z7hgPs/62y5+tqmlA2+hE\n6mpabv3t14cm7MQpNZyjttOblQZ1mhbD6iqMF3MByfo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.3/files_scripts-5.0.3.tar.gz","created":"2026-10-18T16:50:57.085969Z","licenses":["agpl"],"lastModified":"2026-10-18T16:50:57.143217Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"nqd9NNcsAzvsXBoutCc89zi+nD8pOEJY4mo5lrajcJ5akJc6p1euNFz/CCz+JIJT\nAVy0gDbNxRpn+ZpPYznsLqAjtH8r4VLVi9ljvr9dFb7hMZV8N06z160vPeElFNDm\nANraFO7a+5+6VKuP+oXjJFLsCFhALLrQA8N4R1RTiqsaV8CKhEmuH3fBc4B/VeDP\n23LXUTcrUpfpDtj6US/OH4AO8hol1v3lKMFTchXPhQWpO+SM7q+JmxoCPau3MGk8\nBpuDXg744EBjygOYW1RW/tzWc7KEHh8Kd9acYicVXq0PmSiUhbLVf66HeLDlxPzp\n0mCiPP7wOiu7xr9g24oHcfHuFbIK4JRlBXye1uVa1GgKbRK9Lanron/vQcXhgxTn\n3yk7/l575mG4pS+BdmZfHROmyMyt1D2hE+k5ucZXyhGbx7Mm0Tc9zIxMKib+7Rjp\nAV9oNj2c5WMSyonE0JV+LJxfv7tzI6o1We5CEQpsJ16lHZySV1T0NJhduU8Gihs5\nOUOR0W39yVEU4ti3rvhYl5ynEXvZjQd2hWnd/wgyy4dH8izJnblTc3eQyXwGDKIi\n7+5VBZnKGjfwOHpXk8n4BWG3/0S8+WYO8N1XTvDlt0lIbzrYRSv7SHffNcAPf/7G\n9SybU0QAFHhe8ndH7GQQpSpZrU+PIK4iRlkqhFJKDG0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.2/files_scripts-5.0.2.tar.gz","created":"2026-10-18T15:19:25.005239Z","licenses":["agpl"],"lastModified":"2026-10-18T15:19:25.050620Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"aDJqTPwkxA1EmagtsbXgAKircbvzsJKw40ZPZraieEAgn27nOh6QX3Iz9bZO5XfD\nyDUvsQmFafjedWOyFbAyxrn4UgyzEVXR88Dp3mX/wfprDSxhJWexMzkkqP3SiewV\nZ19qhenZQaPUjjo8EPSpTUNQ2ljXaPWYyl8BU5Lq3wIo+dMFjyK4yBAC8Hawzanm\nNNkOVBTy2cTkv9o4L4yor+I3XocfbInzln+NufiTIMAYXAqD+AXOW52JAD5N5nmE\n8R9Fo6R5NPi7/0BqYdBt8e8LAqjCiIzr375zOZKOwR8K+PbPaJU2DY0T5LVTFKV8\n1i1a/e92g/cdMcJn2a9uL7eLt6OGfXENwlV3PhvINdo8rYYlQQR8Ag0BK4nLQY08\nVEYJjGXLkauu3ztzTsdMtvAiM4VyZKeuaE0LRqusm2R/gZQGYiujfslwxaHA8OLr\nzAtv56S2OR5TNMqiqjah3dKO+Y25J0QwJUXylUpr7OLY1oNz4TytdT+XBhaQND4F\nOGaUvWZTtqNCLvc/ovevYbP9X/cBtWv8lzq35QC09ElhHnTCFyLIOP8H9qg5WAZd\nJQC+Mk4PJNlEtbF5wlYkGiBvz6EbXGZZJbqntmXXd7G4/d2zDRQ+rAvNzVydA85z\nmJVROLiDdnPPT6nlT6B9ATp05E83SmCru9i5j/kHxe0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.1/files_scripts-5.0.1.tar.gz","created":"2026-06-11T16:15:37.765917Z","licenses":["agpl"],"lastModified":"2026-06-11T16:15:37.826531Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"j2uwqAN28pvyWKAEI3Ccm8+yMW6e/HJJJY4Vqe0MyBbrpWuIYrYCs73eI/BGdMMv\nVAVXVL1j7p/vLq87cGHHHjtUt2FxlP9hrJgf37QAz4w0DB3a6C06T5/7/kdSAFJc\nWK/U/0PL9ej+TOrio0tfSatx9srAVrwta3oG0MC1AW0ZGpMn0IDT+383n9i/Krlx\ncHMWm4oPybc04FG0t0uSpSMpW08T5JI0Y4VA5mnkrYNU2AOhEyJOgKaHPD6Z9s6E\nbO5kyf7hVjV2DI8kckVAg3CvHg+627VaFDlfSc3YUjUMujeeJ6OIClPPg+CTS+io\n6z9fgFTjKKOCDJFyHZCF10Z76a8HYeW83thBwrWnJIWRO+RUCCRtnBNpX3wiXV8Z\nhgz+XKysSMFPlGyWZe/t1ove9O4xf5SKFPJ4IbAVZwgpJG34TGay4+X4/XmBTx7D\nM72sgB19XvIIBlBruKN1p/+uWEkzmGLrFt//KAx+N4npe7BxCysjZGuqjuNOJZmk\n3Var3KAkPVylytvQQTls9ElwKgS6+Ddjnk93yf1uCs/zHTLJyy/SN5WoeklJ0BUj\nixpUPexbZj3pfC6zEQTJghKuSmpUzsT/sNw1bTRajuQil7AxIRUjYdJUeIiZUTNl\nuMrKMp+ZUiDjlAi4ECs8arJAu41YO4itMu30TtyK6v4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.0.0-rc1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.0-rc1/files_scripts-5.0.0-rc1.tar.gz","created":"2026-06-10T20:41:08.970208Z","licenses":["agpl"],"lastModified":"2026-06-10T20:41:08.983322Z","isNightly":true,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"pj2xTsbpc4qhqFGWLOMqObgcHWCTBl6Yg3KdU8hulSNy2UKUjBvOtVam3vX2zcSJ\nPIMT43d9iFOcwWeAQoVIz3KPqjzuH+C5ez8kUrF3b28hhNRVtb+XRvExVRY2PR26\nn9cjuB62hnoBofckR4dPoyMWu6kpxRia76pwKjRk20TzwMHhTmcEdSu+OeegKvZK\n1idSZFMjXAC77cVbrEpY4lYGzEo/fKe7KN5/VBvpYm2fJMJPL80D1Xodllt800Es\nSuFc4+soz7i+0TRZKLBIGRhXvijCVr/lTp17uaTD9E9Ea//xRUVa6WO2ugBNGSmq\n0EXQ4q37srkz8hCXQoIOvZpJDvLiHT7mK+ndWdArXwxbX7eBo3IC8vbBU9Sj0jDa\nXHMSSzUVxWptjOY2sYzAcKMgtoeSEcRtK58UH0V7Tk6iPa+HrjBFEnyXl9BQUNeU\nATRd4fUh/netTnQaCiaCj9F/KHmZnHSJ+ttGo9qO8MRXNe15doR5nmqZv5J15pje\nrDz55C2fb5CfbXaYH53NSces0eBDrWZPUivIC0RceSJGsnAz4xHKc33ulVWi4raS\nkBmfGfiD4Qb6hNhRN5/CggdwABozyYv+I4hz8UyK6YlEpeywo3uVrZh/l17ti6Ym\nIiJ6DOLr3hyNBsP96L8t5FlXSQ6ObmIEveOfPpEC78Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Raudius/files_scripts/releases/download/v5.0.0/files_scripts-5.0.0.tar.gz","created":"2026-06-11T15:09:02.540946Z","licenses":["agpl"],"lastModified":"2026-06-11T15:09:02.614032Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"Bgu8oMi1IWk09AKz1/u4EHGhbYUT0HDIr2zJ2C/+MoCmdyZgpy9gxBSRrerAx0Nw\nUOSI5h8wblUv2yR29acsOhHLQ4qvovA8OsUWZLxEFGfxumwqs7hJoOzJvoWY1Z52\nUisTsIi+j/OZItne5l0e1dsWh76JINp6Nvjje7VFNdsh8evcpW5A0H7Ps6dO6vbP\nDwBrxE1RUoUEnyEdUDmiQWlP0yI2mCBSsrKGI36a4kgV3STNYQDjNNzCthsT2s95\nlY0iAqLv2DspZnSLZmxifkeqWujUK0xjyDj7QcztZy4M1TvuRV2UaXpVN7Vaqer4\nQoIpsHMUAZrbNyr5PJkGlssexfzhbLG3zt06MsJz7HPlfW10bfifIoC04vx6D5FE\nexWdN7yp2/ZpzDhMiWzHJLLglbPG3qvQa0E9o2rpKM5UnrNYRYu6qWZgEZAQ11Tr\nCXgO4u1q7AiaJLCtF+rALWB9lgSstgtDvYEEwQGnPJrjK2sfMhm+s1AmqGZd7g2X\n1yl6XNUe2G1fYzkQqebOA+mmTmdLtwPH8ekk9w+7g6z/rfZBON45I0dtj7KOlVcP\n5ngLLag9boEvwoCqL1jJiRohronCtk/DT7aIijNm/EL6rNGV5+l5qkTP6sAmfvf3\nEpHZaJTqhpscZu0H2jPUL2TLq2V8WOQUmVvMpOdvtuE=","translations":{"en":{"changelog":"- Adds compatibility for Nextcloud versions 33 to 35\n- Fixes registration of file action in frontend \n  - Additional fixes for getting the file action to appear on public shares\n- Fixes some deprecated PHP behaviour\n- Fixes integration tests not working due to authentication issues\n- Dependency updates"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JhdWRpdXMvZmlsZXNfc2NyaXB0cy9tYXN0ZXIvc2NyZWVuc2hvdHMvMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JhdWRpdXMvZmlsZXNfc2NyaXB0cy9tYXN0ZXIvc2NyZWVuc2hvdHMvMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JhdWRpdXMvZmlsZXNfc2NyaXB0cy9tYXN0ZXIvc2NyZWVuc2hvdHMvMy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JhdWRpdXMvZmlsZXNfc2NyaXB0cy9tYXN0ZXIvc2NyZWVuc2hvdHMvNC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"File actions","summary":"Scripting tool which allows administrators to expand the file options menu.","description":"Allows administrators to write small scripts which users can run through the file actions menu in the Files app!\n\n- **🌕 Lua:** Script in Lua, it's simple and has plenty of online resources.\n- **⚡️ Empower users:** Make hard tasks easy, straight from the Files app.\n- **🙋 Open to suggestions:** Are you missing a function in the scripting API? Open an issue on Github!\n- **🤖 Integration with Nextcloud Flow:** allows you to fully automate workflows.\n\n⚠️ **Attention** Scripts may modify and delete files permanently. Take care and make sure to read the documentation thoroughly before scripting."}},"isFeatured":false,"authors":[{"name":"Raul Ferreira Fuentes","mail":"r.ferreira.fuentes@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhHRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwNjI4MTI1MjQzWhcNMzIxMDAzMTI1MjQzWjAYMRYwFAYD\nVQQDDA1maWxlc19zY3JpcHRzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEArzQCM3puZyYR7dQNyLaPpVG+L2odJflaMv+77mLEQYlV4Xo2Fo8LSZvcdz9N\nuAjpsJlmSYk0/+vwqASmydiqHSFf6FgMel4dOAqzLmRX5E9eyFYSME1lDB3WJs5X\nIJO6/GQ8miXZxiqmcErzgxrZQfUu/iIRhIIf3UJ5Zk7a6Ag4IEOnnSyV7HweTx4X\nPQCuNNj8dAR06UVPAJaVVkYIPfnHyFjIaRmhcf+8VA6yPb+ZlT+3B7Rk1St8ClvR\nEDDH/uyGfzYCiaVlDaKYXU+fnGE7aOTcvb11Z7gdjz7axp3HvCT9tcUlTI6ODFGC\nNlS2lO7fzB1GfMp+3tZrhpaWKhxgY/s1NjQNEosA8PgmLlCczfMPEPeRnQ+6HGFP\nrvAgVZrW+QNPEbFXR1J+a9rqqqv9ymQGGxdKZcjzbik2OIK7/d72OAMg8CGw0pae\nBMlgjnZ95CPnJDri+hIZ5vKJ+7XutVAzIiP0csYeGRSx5S/06cQ2SFZ07bCZgznF\ndsZ+i5pixXf/ibpzxUT8E4ZzErqFBno/RAILTR/gUE564pDVC+gTkebLp6c6t08C\ngcvyGhnQyMZ0OWvlHUMhX8NFwSZcrffFwpIu5p+50FXg1pRhknB4cAChFAosQvo5\nmRrvythafFAcj+GmVAFfPZdqbQ624MlAstWyhWouaC2PfNUCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAUXZtoKcT6J+P588XYTyGdjb/29Bbi5PQSY8QYvI6F6+++S8k\n4u+vjxAdEoa072OHEaflM5IFiV4d9JKRaEOfy1YXnnPk9tV01DJC5ezopKBY+yS/\nuA2CtcjibZcVQJezt2mE/WW3Ps3tLjAqUes/7h6r0tel6s3rg+6WY+X0DRX7G51W\nKrzPtjCdkbUcgQvNL1WqtpPDDZGsZ2foA2iqKiidR3hjeUOuT7dPcXw4KSM2K3ts\nvW4C8rIjnENAFLCKDjevuXy7M0OJbfleqd+wC615vnX828wSDXaNJmR3uW4JasQA\nii+rDEjhgGbhBmvzMvBRjjcifstt0sHDpuOEJg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cpanelmailsync","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/issues","website":"","created":"2020-07-05T21:53:38.675638Z","lastModified":"2026-08-14T09:06:34.633255Z","releases":[{"version":"0.1.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/13970118206/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2026-04-17T10:40:32.442983Z","licenses":["MPL-2.0"],"lastModified":"2026-04-17T10:40:32.826929Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"BH2N+cJlUpznLIWXOv4aoeuei+1pRrHV1EdMUgCxWyxm9fn4HAUyL7hdHdMosN2JedXvaP2yxkap90yBgTXo7u2jwIRWYvCegbhRvXjYFVEihA8posTndkNhk02ZGyTok6cPGie0d8afQcj7/YgTuHtpWkfQArD/11LhbnWLY4yCjbM2NB9B9OVFKUWWz09Jg1GtoI1Y/6H4soFAP3vzMC2em4dzHp5Pj/6M3MVzkq8wWGrf1bAIsoerpn+vTzRLuxhcrCjdmhv1Kn2KY07PHBVnxSwlPP49cYcOrhEE04CNV4dL3lMbIn+bsUgmBcZyE5Ft7UQbZTWo3NjgYoLBs+pKUE4RvsfOIWynLW3QhprQi5p4I5WvPUUT/CL+XblIf8TvRoRRXT2xGDGmIOHGwv0jaMYx1rMSz8p8Gey/znP6IoimyzRAB8o2LqjiRHTikhR2X6JEVmuHBoWyhJfoLf/9C5eiLBNY8Ef54z9FG0gDGkFSl0T/ixk8eTgpvKYLovDpTC6ptVaACYVbUV6BSNKqU4sQSogSbJ4XttxrEA0IR9Q8vK94aAT4J1b2I61K2JFC29vO5zL8hYvfAffs+sIM9au8+Cpiom4GX6gQL487zm+VPJnJJ1cXfpio76tV6woLVklPtLBMxXFs11fMfrbYLaN4WCaiKRugMz1E8Ug=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/13969824487/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2022-02-23T19:25:14.232829Z","licenses":["MPL-2.0"],"lastModified":"2026-04-17T10:22:05.088882Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"k/Cv6pE/SR2ZWN91Y+DwJWgSx7JizFm1mAcjE6OzZPUlGjIC3xkvQhn0pbrUVFDVhn4NcwbXBUeTBP94aWk8E5kvwidyft+67SFkhHi38Fn2NXlC2jnAm2l3Xquf4UcMUe6EYyZ1VkB1p/0TCURXmIT7uK/UjHHy8HO/EabCnCckzVItobG0MvCF2uYoK+QCiwwKPDzJ86e9DVeua/h/vwZMu2Vr0U25DH8Jq73JA8EDw3UysvpIE1z4Fr5HfhpPMlapHITHR7mWkCMpK3x4DkiZHq3ZOgV+TTIEdzWT6Zw8jW2f3C4qcn7Zby1WVXg5a2dbJu/YCOeJ6mPTy/5tNDTu5frkP2grgYskPkkWBS3xZ/bpsjInq/o3UQT4R/VLkR+I68VnbDvZ5XH7tQSXCjMzc+3/hTKw1tyx8QhcLQF0Y+d5lZ8u/nsbz2rztRJ5vZvnmEg9hGt9nCQzOfIX2reRuIH+/WX7DU30V1R243+G7L+WeSDXh3uU8oR8zyedQSRWpychIADPKGGNOnr7xJz8I2YB7cSPaL0T2MpEWJBb+9MhSYVWZiioGLFHuY2eTo0DffDzkOGIdOBaI/JDGgXiqHNXrcVbTiiL7h6wXIZ15Da4vWyH4njnw2QzUgZiMuo7DOpCKg6GevfZCVLAcuvIhxgU6rH5sIevf29jxq4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1960099398/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2022-01-10T22:17:15.524900Z","licenses":["mpl"],"lastModified":"2022-01-10T22:17:16.592305Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"FL1Ne0o1yKzXeLgfkVFKSDyvG3NJ4K6pYd8VsqDoj3N9q3dnZdkKeX6GPiXyS8XoOMf7x2vN4koY7Wjeg0rYDP87WlTdC+uVL9Xml3obmpfDGkqChPUrXVJvDn5/DYiQULsfdm/fbMjMlBituTZvofX5it8BREjY8HyIND4ZPV18OawsTxueZzywNZUFkE+R3Ped485ps07RrwNgCxzJGKnAd++rkzxNXtK41Jdlofrspzo0wJId+Ahlg0awO2f81RpcDi8WUL60rpVx+uUKGQLCRdoWYl+SwsyxwUojsXmfXEHdtW9uhsGfCU0uOaJ9UH/zJiKxR2/n0Ta7wq1RXtU8AEfZM599leuTXLxWU6E+L9jynNL2oODNOYlyKPTPuJ7HQhlM+hdV8Cdjm8dbPgBK0nNRJVK5VvxPtukUGkG2voX+hcTE4ej54/LH1T14aHN9nfk0CpFZn/aijLuxLJ8IDlgifSTkxYYo8k/bkc1BhupOTuUkGhjV8bjSijI1zkOIj3HwOEJu+P3/WTiSeOsPsspcW+hrNT9M2Wjc7JH4Uhw1DJtjcYm7e0kyUvK0i0dvfcjZsH9Ds9S+hMchlznf2dXTDP68e9nqVF0vQFQtMzVlxkXPHm8DSgHgUcocBwTJHK8y/Mr4L++STUVbmUC+t956+tJ2efG6HDfP5mE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1684895978/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2021-10-15T19:40:44.656719Z","licenses":["mpl"],"lastModified":"2021-10-15T19:40:45.400180Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"Ns+ihVPMotJyLK9/tyb1vnOSwW1y0CAcLnUNQHcXrgPvrZaNvDeD0enoC9mOHfg1ZWw6jpN42dNsVwJ/A85q+Uy1gQIRI+mY1Xg44Ax4GuQMYuVZghuL8tXkGZtR6ChiQut53bYwNTnYdQIw6r0ks7v9orjoNR3l7h2jtgImIaS5WQPchGCXunVq3v7DLs84LGIZnktVO1ndtOVTu+LdXHNJJD0sTOkp8raKuUQHBPh6vEt4wE6V5wmJ1pS5LLngEzvUgprohRr09EWyMEyOFOhPlxRmazTIra77rG8XsfTaVYgmRHbKqaU92A3PspBxMZ4tcv5I2MlF4a/U+lKZKe+2CMGk8QRRh2KaGlsPpPXt7Ew/VMU+aL4l5+b4VDczAS26K+L7FEJ/K6PUR1MsIE7Uorg3f4OsVof5S1DePP+ufOJbhbeIWp/4suPXpPsRY+ZAyzfSxpw2NkFwq5pMsfuGpvl1Hm0I5kU5ZkXEsqfWLqXV2A2KcBJoL6SYk6DS7EAlOoJrUyKGV81AJTbmehLzMtJJiC7EAaU+xe9qltyNy4TFErB/PjKSOnAmLlroFtNpBS+h3a24JLmOeb/k0ZP4W69RMtEhLCn2Rd4IMSOI1u23nA2aFUodVHuzxMyM3jgeoc9ORW/HhA34Y52UcMl2vpIREq6XUfB2TunhUy4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1684796630/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2021-10-15T18:56:19.251831Z","licenses":["mpl"],"lastModified":"2021-10-15T18:56:19.370254Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"WSo8PVNxfJ6iIanUr3aF64JlhFabjzcBddpE2ukV5jXZtZ4xlodRW9Xdr3TvaKKseugfWIVuXfsA+ZfhmOJBg5mI+gHX6YlZ/1jB9z5h8/ICXa6m6lbcuubDk7FVQzaSs+T2HhQOz9SoRfT95igFGxi4AMyBHIdjeeufCsrAjWoB7dFz61PfLZFOuMLZLeKN+WokDFkCMa3Oo85IQQuqN9vKH9XhGw/b39S+D9p1gPsYdzbbfq6ncGWFS53E2aHA08+YdjPSZ2haM3hfq/1zovunHFnBH1DuC5SUhM9XT2z9QEnsr7AUl95Uw0eVmDyk61uD9Y137/7juRy64/vK6sTv15PUkw91kfXDS2FHE6CsGCwllih4DOenrkllUzfJnnX8clsckSxtM+Xkun0eDKFeT79hgfNaJ+a/3ZzVYrCzWLpa1cPXfYLQ6o5tYJA7HaRHRTolt2mUIePguLUFhRiyK9RGHp85l686tInvAncjbLQ5kjsqMeGOwyy9Un3MOvZ9KMiAhgvNJMGx3O4JVdR7oOgkKYrHZ/Tv+TWfiP5LXzkJ5RuqHzuFnOSqisLRZCQF2k60iStQmhuROZ/sctqnFCRyTS+rXgZKpv+69Tirp6hQv/C87528/Wz77Mj9EsM+fw2b3yS07ttrUPDfZdWh1/FWVl3hk26rLLmEcqo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1684726898/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2021-10-15T16:02:26.331264Z","licenses":["mpl"],"lastModified":"2021-10-15T18:19:42.076212Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"slkHC0Y87g/BK/MMCrLdJTLtKprD+41826ES9RrbJ4D2sjXhKuAZrm6Eg3ww2gnLUPExgZLVfdUTOgdTbErXSNpSrqXZhpdeR7ovJSRc9xaXe2gXm2eiiCA19zz+z1lyJXPMwVmKt4kTp/mlPrPMu+NQK1i8W4DluxqiI7bjx46a5QDVKAliOZWbk33I4+NuogOxgM3ClSzPsBEzLghtDcWIzT0M9wnv1O2J22OOfOlTQZgnl/L0TwGNk+cbYB1D9ALdCKqR9AIe8NKIFZuDhv6zu1Q3rGqusaDgB4xigiwvT0klE+cDoJQhMPjCmoJCMIMAi7IqL+iXyBaHyqsLIwh923yJSoc6zZahDv44LD6S2CFkMOXyTVaziX3eNiIMBiPe6bu8OITtL3vLmN/UIyx1bAdGQttHHQ5IyKiYzj8sMcKKer9u6SA7fEeOVhZqTcSQHpubvVwJYAOWCoMmbJacxBuZGwwMUpJezVrPXcV8zfOizGPLQv4wil96Gf6kWlw+VXp/nNgitp9xtfCBQ+hmo9gZ59fqjFYrDkR8PQJ+JxA1BJHY2wV/TC72OVvfmgvt/VWS298eR1xG/GNmuXS9BYcVvcmpb1+n5iXsg4iL2XUJ0sGOD7nsPM1T0kF4nnxlcODbfNS8BgG4zyreF+CYgpr+wN7PpXQgDWWV4hw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <36.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/15898358875/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2026-08-14T09:06:34.661631Z","licenses":["MPL-2.0"],"lastModified":"2026-08-14T09:06:34.679526Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=35","signature":"Shl0kCvgbFGH3pOfzCNDQaX0Qg8WEhZTtZYnXefafVHRdKFbj3hjBhEUo2AzeVvhcKYhHaasur9ru0K7I0ttPz2XjeNlJpzfARwgl/Cq/zc5pqKva3qtD3sbP5MPuk6vRr6T67hWXpdqBXCgy2q3l1EUmh1TPvjBS4/jSTedHcVqdKvWDP9ppGiNVfhJltzWcj+eurVCE6AI1SfEF3HbLexwLn8wVnO7KsjliKOWUnkZqIn6F/5Jr/zFPMqKM8xuMEb2C+DMszfJaP9YzEUAHN5f1ezabE4Cp/8ScQggWPMiYw+AmEd7OnQEzNJTW8sdXnyCdQV+VKLxmRompSxRuc4eengRlepI19ag9xTgnEdjZHB3CDOFE/aC98JNobJYgUXpouXXMllaWHX6pLwVyJeKq/hk7Ag5MjbBFRODxbffcAL7YsyZzXdODDwSfX2mCqYIIM9BPRMNa87pmCqOWdN3JoTn3sea1Ej+H3O0QphpBFoWKvP0TM1M60sAhLfQ0NIP6MezdAxL1TT8uWzyLPYMsj7UcFGSIZ1YIbj1sB1XDbgUdzYFp4S+M7KccN9G2rjSB92J9OP3PqdM5wmqZste67w+2P7bSCd9mbJxbGk9hc6EzT3oFhLFEBvPB4AfPs8dGTnvvFCwTp8fD9bCAiB59bfUryJp2FV1Hq/4w2s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1684021909/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2021-10-15T14:24:17.147225Z","licenses":["mpl"],"lastModified":"2021-10-15T14:24:18.081745Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"QKWSRGmp2frfywOgEIoLkTQl2zaXJ9Hy+OtafqNTAx9/pM1c7ZMp2ctPaPZ8fNF92Jl4kAeoC4AFukJV5mnLy7bR1Y1rvBS8RHUuDnI8jk+6VIjW08hdbhXHiDba2RHlkrPgnp3KfSN2afjOKak7EHjsB0UJGL8jB+8NASpLaaLRpQpSc1JRQgsRiIAL37FU2lO+mkDgGOzaoWeZZ6tzqWKwmLbhvgueLtZAfC2Pj/5x+V+KsnfY4miZzQlaBbYgR/j/V3kAo7fDnkrSgJttOA9KGA9JV5VuWiBRwJsz/23M6ogirgJ444O4OwatsXFvbTs0w4NBTf9r1TdLffbT/FiDmhMXjtdpVea1DmdaLuBNrNcSrXszhLpZmNDeQ456MvzNpoesWRQwjUB3WGj2n6ADU5hjmV8p7HZcoN3UacY4TGcOXuG0RAORI7PIY6pf4/mgh0WvlmnbNiq40e49kCxmOB71/JqnryA8LR74YeA4QdnVct19p0jvZARoUkvm3nvg1WGW/OtW2YZKGqZ+I6dw06KH72vZCOvtJjFaLJqQXtrd+rS5lRKWHzHfGzafl63tyvuY/iR3Mso/tExDkAeHMnBadSjr00Udsb1OCSfypeM0ytDjkfmtjH5rJgWv+UEBy8l1mBHiJYwPRfVFshvcdz/tPfsngxpjeFuzcg0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/uploads/5751c3d13c109183d7f9c36c9e672f66/cpanelmailsync.tar.gz","created":"2021-10-14T17:12:51.571378Z","licenses":["mpl"],"lastModified":"2021-10-14T17:12:52.598268Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"uX2w423jPGU6kPqu7uMN5WOuSc0ciAnGLXjM1Nu3TrlLl9BdXQLvTt7l+Hfy9A0i\nN7AIfhWNMdWjR3ASim1kbXWoh6rrsB47tQVkdA8/zomfwC2oQvU2rUc80GpeIPZc\n8hhOB1CUktobucQ1dAzRzqwz3HY+0E/+rjYc9/Jp6Fj7ObEubt67M1leIufdnsMx\nOYMKFocE6QgDwXKWUJq5ZZ4J0D3JZE3XE5T02SJaatVfIYBsCIAFeU6e9z/MT0g0\nL4fsBURaG+slfv7c1PbFgYaJ0GuGyL4tOHiP+F6ax+1tjDUPHOEKuqeI4edcBB/y\n9pD42xv04sxaYfeCMyXVtCD2Z74OBrkUUeB1jlTKRTtpYbLfK9VWE0SX+IVLWF2A\nU7nPOmDPTMMxUjCnfor7VbsqxlR7lhteKpV6gcErtCCWu09ThH0EQlnUWRJv6wIu\nxak7DN52e9sZDvENEFbDBpIvf7dEk9sBzS280wOm+XMc8B+pfxzstLU2MA1kdfwp\n1VMuZJbkvcbMymGO6IzEENkjCy3/ti7dhN19+KB7lGVQpzgPRjncJw69KNNNXuuC\nASRSb+Wf336EB+Us015ZNMkcntYhGOuzokMQ9LBr+dEabmIv/DxSyb3WWy2LKXHB\nMAW/oVMrzdI/r/H+TsGJHmm6Q8y4AHATlTgfIsfV8AU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=18.0.0 <100.0.0","minIntSize":32,"download":"https://gitlab.com/ethernet.zero/nextcloud-cpanelmailsync/-/jobs/1683327804/artifacts/raw/build/artifacts/appstore/cpanelmailsync.tar.gz","created":"2021-10-15T11:42:04.692423Z","licenses":["mpl"],"lastModified":"2021-10-15T11:42:06.119156Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=18 <=99","signature":"XV0Ck5WRVd2EigBTv56v68Qn9QjfjvOq7qo3gmXFu3lqlMQOoK7BjL8/Ajw9sA1ZfryI+a0wtlB21pavPDHzWgkh9JqOzisI9urWSfEAg4I45PaD87NtN2UBlzM6J/GmWwh0bpTniIRCNOed6E6QwucLbU24H7+7pMvOpSKfhD2x0e01aB8EYYumB7jmCjY2cIezhWa9Ocm+nY5cTtNIxyl6UpQB7QBJAK8isDellK28lc/vWP+IzxtTXSUKVRRxmOcFCNHziLVmrVhGrNNwzUN+C2NIgSbPBMdLyok8gSf8SkWz2oufH4wUTnSFRMUghiLIK5Bmx5xgqZ0JtSPUdWwW+nvCOOTBN1hwbK/5i5phnCaRp+TOGAV9LXjVL5xyZMM8hsWtFi2TFvrJknwTADQykrD5rFx/+6ZM25HW2/7tfKZWTJNWb64PrEdwGZ9AW5oahNRVHDIC3HCtx1aH7s//fVUt3g78x5zLhzGUSulk/w7sSqK1ZxahhXotuhJpFQ/R68HcBL39R+iCnCNnouHi3OYI5DIN7Gm6XvFOG8DqWGb0N9AA2sxCVOIB+AHkwfbpjy8hURGH1vCgV/uGU10Sgp+FvZ3JChmYVJWXb3I8MoKg+vbAKzevS5FSpZqjvCM3WR6QkWWtTk6nPa1qvOzU7uVyRx+mkWPcKOAcapc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"CPanel Mail Sync","summary":"Manages CPanel mail accounts from Nextcloud user creations, deletions and updates.","description":"Manages CPanel mail accounts from Nextcloud user creations, deletions and updates, using the CPanel UAPI."}},"isFeatured":false,"authors":[{"name":"Rafael de la Torre","mail":"ethernet.zero@gmail.com","homepage":"https://eth0.es"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhE9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNzA1MjEwNDE5WhcNMzAxMDExMjEwNDE5WjAZMRcwFQYD\nVQQDDA5jcGFuZWxtYWlsc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBANsZII6/CTKwDzZuxMkuRz94zwb84SPUVEOpAQNedUfuzjxbTZeaxW5Mfmiy\nuoysjf2jkCSB59GB1iUpKiV+IFlOSkvzHlERoSneIMKejkIHPv1FPd9L2BW9BLNK\nr47Q9EjKzB10HnN1+aMmkRNS2EcXug9u7YboP4Xz33Tt1pPpHt9sB85kaz4zxTY+\nID1NvtXzLNi8AiSWNsEsswHF9yO7M/zd7oB5irD+Y4UL/f8jl4sj2v1LH3AWSM93\n+h4aFrMn09SeHTPIp9ExXZx458F1uWD4vu/fSzss20slHVX9qPKgJPRBJVI6+0A8\ncUyOxgKtS9XEZpmVm98+XsdMIO3mx+y61CQom09rAVCdL9ponQ+PS4UzemJ+NcsK\nvUzEe6C1D7SVVrfvjYt0nN12N28ZvDuqqC4J4EaRwAp3O5qQiNX47bzRdFqqyWSM\nk9VPPTL9MrhsnFxqSrShaY2hUa0x5VvXE14TzkAbztx7uUiYasy8KMC+4qMUcgvx\nzZuF3vnQfqi6olRY2mClQ0fhINfoyuavupPBlncyt+zjGE2zgO5iYoym6txnCb2q\ncfqIcPorfj/LCkpUTtR0Q3PFCgBmRwLiiOwjzmh8p8I7FmIfDXtt5ehbr55JDOgT\nnypP9pCOdt3z8rEm5zbVVzXmp0p/WIoNzEoNFxGxFxJfnqCTAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAAO6eMZ1qwDevbTNbmccJh/XtjcxonYbiCM2KrNEDkp9VRiJ\nokfMp8B5E9WB/+Zm2rdxAfq5p5uxZVV8YVXOUdkSEYfKUhrx25CmXE6+frKU4+TV\nhWZAy9u9fd+UqY5oWtmxih+P6xgyYaQRfDMQD0fQngTK+jLvVlbH//cLwukljd6T\nw3feB4541Ts3S4D8U4qQQLJlCRMscVk/PhQwCY4yro1NstdW2VrOerUzjkAbr2ah\nUE+AIPCqSmllChK70dlpzXA5kEFkYDLIOGKNflCY4InYtsQT5wYQI8yTaRxlfk1u\nu+AdN6DyWxsWTEL0+NRxwolIunxonHW9C8pQKlY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"audioarchive","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/minichhenoch-sir/Audio-Archive/issues","website":"https://github.com/minichhenoch-sir/Audio-Archive","created":"2026-10-09T21:15:13.110880Z","lastModified":"2026-10-15T12:16:55.001765Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/minichhenoch-sir/Audio-Archive/releases/download/v1.0.3/audioarchive-1.0.3.tar.gz","created":"2026-10-15T12:16:54.986835Z","licenses":["agpl"],"lastModified":"2026-10-15T12:16:55.067058Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=29 <=36","signature":"aAcOun3bQH+03Ofvmzr0CgaF6WfgUKDwi9Z0XlSvRxNN2ANVl8au4S4U9VLTAMzm\nNQAIswirg824YDAtLe+j/e3epMGmaMnbnrNmJhFJeBeP5xiH6QbD0ZYI4vwmbo5E\nAInj8nIU4X3+/4B9P60TQ3uVr6zlrEUszODG6gpnMVijRXbHAhgNcqOIykiac2oY\nXEf5/CjGTKEkPjf6AKF+4M44Q0pQxqrkkwXeIubZ060EOcNC8G/HwXuPmFKf1KVB\nPGZdyk5yTusu7N1ZjEmd3c/e0Px8ckO61OmwDEO8d9hvtILl5IEfVxdj0Mcqjimz\njqxqhp6JmQO2yZikeRsf0+nFAb/6gFboss61h+IfSgejFetRYytqgvfRtyeC+MnZ\nF+vK1/jMJ/Op02ikcjwMOwEHNr7Cg0Kbn5qpmrsHOdZIe5qYP1+2rXwAeFWCFpmi\ngfon5kl8HsOab+cYrcCKS4wZbCmIWqmjYgh4l/xcc4c23Msy27F4CIn3D6h4ItZf\nOGAqdwTQ2BNtksMRWtYkiIKqhL9A4EgKGD6AhtT/eeFWmaja6NGf22zj9c85WR/Q\no9S9qDOoh+7s6RqBrRXJSw+FezDwt88PjtgzHv+hKZg/WcboFazAveDe4QAOhFnI\noJ+0wlzk+J1148LgDadMWMeju+U2EmKRJRyFnE6CpMU=","translations":{"en":{"changelog":"### Changed\n- The manual keeps itself up to date: the administrator manual's settings\n  reference is read directly from the settings page and from the design\n  editor, so new or changed settings appear without editing the manual\n- The listener manual shows which functions are switched on or off on this\n  Nextcloud, and follows settings such as search scope and offline access\n- \"Als PDF\" only offers the bundled PDF while it matches the pages;\n  otherwise it opens the print view (\"Save as PDF\") instead\n- Browser install instructions come from one place for the app and the\n  manual"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/minichhenoch-sir/Audio-Archive/releases/download/v1.0.1/audioarchive-1.0.1.tar.gz","created":"2026-10-09T21:39:16.639708Z","licenses":["agpl"],"lastModified":"2026-10-09T21:39:16.699657Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=29 <=36","signature":"OzYdNUDTtR8tUZthayZXz1zOENuSL+pdm/WQYC62NAWZ5f4pEWq44vFbaQKMnRVM\n26byhaVhCwhM2JXi8NlwKfIEdUpTF5db4aAywgzBc+DNcDKVpB6fZw0UaQXTs7Bn\n9e7LOgyL+XPCdsYSIUWdjDAQ1XCRCji3T4DXfQuHFc+hBXhPJrT8ElCgrs5LEtLK\n9RBtW/1ylEAFRsML9oCe4Rt2OzRJxIvclfK1495iSN5H451jg/R05a21ACiZYyct\nnfES2ag9T7GgPxdr/9HB8hnfuoM34O6RDwl7PfALdXxL97mgbikQLu+kF8/MJjqC\nkFmjXdHQ1y1KGRlYZVL8+u80RV6Cwh25MDxM9/ScxzLh8krBghLv0DBItrN2skHJ\nHfxXPrTA4GeBIunrNMMbui3qAuLjpiBGKtTIR+zkfG3hGFJzo8btb6FXan8j5mQL\nLPfEoBUTHLqkkGSTg1jkiwuAIJuDu5VHGWZ50UhZHMl1WkGeRIVY6JC6xzVZP6zx\nYFaMq2XUqwhtg+I6Pq1HyCyQVJwxx2hF6gKp58hJWNsWzgpSabfFgAuU49m1gz3i\nABIt9ZZDb6vifpLKqOxYdb3haeH7w7J3Ie7tlgF2fnSWyb++IZUoLRohPdyzn9BV\nRae6i36aGyvxOrBvTUIKzvK55xjrwLo2k6Jg097G9bM=","translations":{"en":{"changelog":"### Changed\n- Supports Nextcloud 29 to 36 (tested on 29, 31, 33 and 35)\n\n### Fixed\n- Player did not start on Nextcloud 29 (script nonce is computed differently there)"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/minichhenoch-sir/Audio-Archive/releases/download/v1.0.0/audioarchive-1.0.0.tar.gz","created":"2026-10-09T21:16:33.052082Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T21:16:33.119857Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=36","signature":"QcZSoS/l3Q60EqnG/UjC00PatiyoQQcbhmko7vvwh4O4DW6Z3Xi9iGpOFj41I/qY\n   YoSwipv4mhJLn22XojJJdv4ruHoZ3l7cmMHaWyxuZyUrXb3gEo4+nNVS8STkVOxK\n   zW88j0TRVT7o3lns7fvzchAgVTi0ChGcSEHR2l3v1qVlVi1qvYJ2LlJU4o4YbbkI\n   D+MgKkEYgPvo7QPcCH4Z1lYzdM02c31oGGz4/p07iYSS2DJqwlgmsL99T4Md1y7o\n   Pxndfr26emY+bDExfhtn2Utg6MY3q6RIZ4saAnRFxCpfVdO7oTph9bT1gnkYTHwz\n   3gyLZugxIcPi5mDe2t8EMwCP8MKffykoVBT/1JEEpX09mcNK/zbdZWmtAmz5TGvX\n   u0iqlwPWeGCM77XhecZX5Gyl+5a5rItujKFK5009YKpxNi1lhUMNrKcbxGuHQ5lo\n   0bEV9qSaPJWQGmTbLoL4WKkmL8Ld72455ois/e5pw1SyGyrUzBNm2KyuP7TYkLrW\n   2yMB3/vppTQh7QmlGlhtZZbQE8U70Oyxu+HhIjsL79Mi+aM5DACq/924kHIRoFVC\n   w6R141pe09Me+B3+d4khWB1KKJEuP7FqHeDr4DVxch62+Q7lyt4Bcww4TuW42X5r\n   GHXKWlfZ1Gp9lGTnaMgNIVK38yFtjf9FdwBCWApDFqc=","translations":{"en":{"changelog":"First release in the Nextcloud App Store.\n\n### Added\n- Space bar toggles play/pause\n- Sorting by name, newest or shuffle, with a direction arrow\n- Reload button in the header (useful in the installed app)\n- Option \"Open offline without password\": saved recordings open offline\n  without password or PIN; logging out locks them again\n- \"Install app\" opens the browser's install dialog directly where supported\n- `occ audioarchive:remove-data` to delete all app data before removing it\n\n### Changed\n- Automatic advance and previous/next always start the next recording at\n  the beginning\n- Search shows progress while titles are still being read and no longer\n  flickers\n- Logging out stops playback\n- Store metadata: English description, SPDX licence, supported Nextcloud 33–36\n\n### Fixed\n- Text editor for the notice above the list used only a narrow column"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21pbmljaGhlbm9jaC1zaXIvQXVkaW8tQXJjaGl2ZS9tYWluL3NjcmVlbnNob3RzLzEtbGlicmFyeS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/minichhenoch-sir/Audio-Archive/main/screenshots/1-library-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21pbmljaGhlbm9jaC1zaXIvQXVkaW8tQXJjaGl2ZS9tYWluL3NjcmVlbnNob3RzLzItcGxheWVyLXBob25lLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21pbmljaGhlbm9jaC1zaXIvQXVkaW8tQXJjaGl2ZS9tYWluL3NjcmVlbnNob3RzLzMtc2hhcmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21pbmljaGhlbm9jaC1zaXIvQXVkaW8tQXJjaGl2ZS9tYWluL3NjcmVlbnNob3RzLzQtYWRtaW4ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Audio Archive","summary":"Listen to audio recordings from a Nextcloud folder – installable as an app, works offline, shareable via link","description":"**Audio Archive** turns a folder of recordings in your Nextcloud – sermons, talks, lectures, concerts, podcasts, rehearsals – into a simple audio player for everyone.\n\n* **Browse the real folder structure**, however deeply nested, with search, sorting (name, newest, shuffle) and favourites\n* **Plays in the background** with lock-screen and headset controls, remembers where you stopped, continues with the next folder\n* **Many formats:** MP3, M4A/AAC, Ogg Vorbis, Opus, FLAC, WAV, WebM, AIFF – optionally converted to MP3 on the fly (needs ffmpeg on the server)\n* **Installable as an app** (PWA) on phones and desktops, with **offline** listening of saved folders\n* **Share without an account:** a public link with password, plus links that users create for single folders (expiry date, own design, offline/download allowed or not)\n* **Comments and ratings** per recording, overview and Excel export for admins\n* **Designs:** own colours, background image, cover images, or Nextcloud's look\n* **Help and contact** button that notifies a group in Nextcloud\n\nThe user interface is currently in **German** only; an English translation is planned.\n\nOptional: ffmpeg in the Nextcloud container for MP3 conversion; a working background job (cron) speeds up reading title/artist of large archives."},"de":{"name":"Audio Archive","summary":"Audio-Aufnahmen aus einem Nextcloud-Ordner hören – als App installierbar, offline nutzbar, per Link teilbar","description":"**Audio Archive** macht aus einem Ordner mit Aufnahmen in Nextcloud – Predigten, Vorträge, Vorlesungen, Konzerte, Podcasts, Proben – einen einfachen Audio-Player für alle.\n\n* **Echte Ordnerstruktur**, beliebig tief, mit Suche, Sortierung (Name, Neueste, Zufällig) und Favoriten\n* **Spielt im Hintergrund** mit Steuerung auf dem Sperrbildschirm, merkt sich die Stelle, macht mit dem nächsten Ordner weiter\n* **Viele Formate:** MP3, M4A/AAC, Ogg Vorbis, Opus, FLAC, WAV, WebM, AIFF – auf Wunsch unterwegs in MP3 umgewandelt (ffmpeg auf dem Server nötig)\n* **Als App installierbar** (PWA) auf Telefon und Rechner, gespeicherte Ordner auch **offline**\n* **Teilen ohne Konto:** öffentlicher Link mit Passwort sowie Links, die Nutzer für einzelne Ordner anlegen (Ablaufdatum, eigene Gestaltung, Offline/Herunterladen erlaubt oder nicht)\n* **Kommentare und Bewertungen** je Aufnahme, Übersicht und Excel-Export für Administratoren\n* **Gestaltung:** eigene Farben, Hintergrundbild, Cover-Bilder oder Nextcloud-Optik\n* **Hilfe und Kontakt:** Knopf, der eine Gruppe in Nextcloud benachrichtigt\n\nDie Oberfläche ist derzeit nur auf **Deutsch**; Englisch ist geplant."}},"isFeatured":false,"authors":[{"name":"Henoch Minich","mail":"","homepage":"https://github.com/minichhenoch-sir"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhRZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTIyMTM0WhcNMzcwMTE0MTIyMTM0WjAXMRUwEwYD\nVQQDDAxhdWRpb2FyY2hpdmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCz3UcQBl8gC39nK/0vH7mL57KI1fHE5QXJ9L7adwJe6vdEdZvlu+qwmScdHF5r\nmGaeSTV7C1x/WTBBckZvffjRYd1Bqx6rukLqt+5gvq5mHawiIoSF2ixGWxEmWNVT\nq0BpK+vG8uF7SElg018nTpnxUAQKOEzTq2F35KYEpFH0Vp8QbzK+KUYx/KA69gA4\nd/Wc6JaoE6TWH0khbm8Wp93YXrz6RbAeFqBJ0u/vcuypA0emFpjCPqFd/Mj1qCZV\nXsoyWCRfvCsZfuRcFhxr528AN0SUGlXfrn6PMsP5LCNS6gymI0dx383HgcmKZkE0\nfMxaCzEOWnGzmw4GRAD7lAUApbWd0cgUsAUqgMJPgLu1TS4l6fntRw8FBOM6Ds0W\nTVhd+e934q5KEq2Wot5Da3XQHg32lgAqKjy46HoUAwe6n4gLAuQnlOc2BcZzRqMO\nCfhc3dgz6X6tVfIvgjD4PhzNQMn9KbshChukW+ggopOThcCo/UlHvjF+XKMWOgh0\nMT1OjhRg/w3D/snlc8d2GnQ16n3remBQ5Dq3Gdx8966eqS2R3VntDggm97HlwCGU\ny14DjKmbWQSVI82OxZhVsXbr72ZTWrIOr8X28JqC5uNVLGil82RKoi1wNZzH+j/T\nVh5WRrHXvZ/5A3i7thsqlODazrJHF2BR6eH58mA1l5up6wIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAE1HiAMkq3CU+ob9sr06ioD+6jB537fOiSyO6fP6QmanEPosOT\nHFmxxKd2KfgT2ieODIl5kxfiHI8EFtiLyiiOC9xjVjPdz5rnLvZoKX+FpDMERWK3\nWtj6/UDFjZUsHHDL+7iAEmEMTPCUnb1mvAJGspAVH/fEUaV/Iadp5maRV0DaWqF+\nt6xU5dyj3akPJDgMHPke/+Caj86iUxKLaluYsO1GowouSgfW9c/xJqhBSCmYH/zI\nquMbOtiSD6iXJ4jwn7MTvTgxcXlAiueCYFAd/gk8GgjoAB58XnNSAHqDSIcaTs0c\n3qAdocr8a+jmSJW0a0ZotJkWOQTH+dbXq5EL\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"mail_roundcube","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rotdrop/nextcloud-roundcube/issues","website":"https://github.com/rotdrop/nextcloud-roundcube/","created":"2023-01-18T23:31:41.987884Z","lastModified":"2026-10-16T07:14:56.097386Z","releases":[{"version":"1.3.3-rc2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-roundcube/releases/download/v1.3.3-rc2/mail_roundcube-1.3.3-rc2.tar.gz","created":"2026-10-16T07:14:56.084031Z","licenses":["agpl"],"lastModified":"2026-10-16T07:14:56.117324Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"gwInm7ayxclF9IOyAQUefScfJuWGW9MVMKRmX8odMVgv6iyzzRe1FJKUpEnr6/Vq\nfXb6smAlh8DAYq5GMYQCxMQAthvaNR7qB089DnmWqWAaG07AXky6TqFQq7XpxAMP\nmDK+USja2ve24ft8MRozjohwSlAUOfaGTFgHtt5d54PXPNVm4pz+AyGA9yZwkJrC\nir0DityvHEyiaLFjO2HC92htE1ifBEYpPUGW5P2DD/ENI0C/fj37yoiTEuskbTQZ\n4wwQgMGlRQpYxRKPACVx+2CR9mYj9HR5FY2tv1Afp9c7VLeGVEowOzgcfnK7S/qD\n18jNzijEi79b0tzToAc6V3MbcJu2Kk1ZJOYOZExN5wkmGgR9clBFIqsk9AfVAV1V\nigeFZtOa32xMnVcdNVj96RmOl0hp8SWq1SEnL7Z1xAkogOOIqZlPKgKH2q8DskVI\nmi0847lgixHTLeqPsiTarDWEwbs0meCbmSg4GULK4WIn6wGvloJokbtVVvU5eThD\nSB7tEdUNYyl8wNya7asBVzh8LBTNTyYTSAdn7ZV+LAvqe3a/OzJtY5DLHQi195qN\nryQB6BcE+6yDV0JuC/QbuRU0h/Nen3I0lrQsUIx4EearXiNkdkYiT9p0VEtD18Vo\nvQgnjiWnP7YDx8WW0KIqCUQ9Nkr8f/Y5yMmwd7ptVhQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.3-rc1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-roundcube/releases/download/v1.3.3-rc1/mail_roundcube-1.3.3-rc1.tar.gz","created":"2026-10-15T12:45:23.780917Z","licenses":["agpl"],"lastModified":"2026-10-15T12:45:23.790615Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"nsVtQ971DZ/PgWLdhcGkOE6aTXrkkULc1UkZidb016F/emuWyfZtNaUrWDy3sOGK\nHv/ZnH3vqlg5peUCb30M24ly8hoK4Bi/uArBwXan+tfKmuhq2le3dnmUURA8C3Lx\nhOKk9OoMF8f7pdS1n58oBd2V/csIeKVFF1XOO6t21sVws/p6xx/VxcrySJDxLcvZ\nbC6s/xnE8pD8ZqGQ4fLBzdiWlnmg/RBs5s0h2kMsh2AhL5u9eyDTrr88S5nDZjpK\nB46Rfil+rfD3dQTYfHzVdOLaH5y5bVeDXimwmw8DgKf1Xx30MUuZfpaeTb0kYAQZ\nqrDgZMByXfEjQf1DO9xdYLWaeJXcJ0T1Hhueu675Twt0BNQuyiYpVo11rj4F6bQV\n/81Ep5uJeHHrG1H8HrBzYbqDx1rMPehZQPElG5arbf9+fckOCgsF90HEI63PLv/A\ntYa6TMEqBWeCuY8IUvdMw14UXWQ6egu8qpijsanCtZ5XyduKWx4dybbYf3aWt92s\nVhiALcgp/NXKNaUp7B8SrTCJcAbbBxTkoY9x87EbV5kNfsDW9VhHMxYdLorERjBq\n6yVFw0kKy0KVutRpU2hV3OOrHM5VF0MdtJ1HD9f3iYbKToTqktb4QR2HrlYGz0Rt\n2zALd4ZedBL/JDTln3dFIJAEwF1Rtg3w2ee31P/1ymI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-roundcube/releases/download/v1.3.2/mail_roundcube-1.3.2.tar.gz","created":"2026-10-05T13:03:42.263340Z","licenses":["agpl"],"lastModified":"2026-10-05T13:03:42.303673Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"qykIohQ5tqKtfmzZsf7MaEmGHecAYXd9RpErD9DOwPZV7PhSAyxKhCWuGMUTvVlK\ngy4Ym474pOT76RT7RXp5l5edHNojCzq4Jwn1bIzx+o9mRQcW6Oc4rbzbU5CN5SWM\nYJS1MmWo8dD2BJgWCwoKFY91/8hZHrJx559a9pqN8oPHVhluwnMIk9vmKTMH423H\nFEKXHFyGMkBvqr8NYvfMLlJFEKSt8kFN9b+uPb4C9cgUkBjpKi4J8YMufdSrop7i\nMMksPIwf4NcdUXIbmqmwXKCR+kJVglihWbVvPVMgvQs7UtLtYajYACOq6uYGDdDD\nGIRU/NsYKpFdLMBMxhLuybpBl31X2LLv/oCga3mlj6BLhT4UXtRNOhRFy9a1DlRy\nTLxKzovRCRaO1CRMU9DFuf4g6mYo7H0EGR6XSNuktr8xbQePFH/UmCo8CGyr/5sO\nwNQYelxQUt9A5HlbGpSem+AJhxyqbjsb2gd1gbwOFYVvdAHBi5IcoskjeRBqLrZX\nnQqb9O8SdlDiZgZWvuyRWHRSsH0IuV1SrPLvTyHmBo0IQEujh+SogdCyqaEBsMjN\n4sO7++eo+0qFYazQ4hnAaQpWPS8PApp32m5JzInYgmZH6Y3W+PKX1BE9uZ1p4sqS\n3T83QIsVoACjd69KaooVwy5Ee7y74Nkr2LWLV76D+As=","translations":{"en":{"changelog":"### Added\n\n- CI courtesy @mintsoft (Rob Emery)\n\n### Fixed\n\n- typo from \"hotfix\" v1.3.1 release which left the personal passwort\n  input still in unusable state."}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-roundcube/releases/download/v1.3.1/mail_roundcube-1.3.1.tar.gz","created":"2026-10-05T12:05:26.363998Z","licenses":["agpl"],"lastModified":"2026-10-05T12:05:27.993249Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"Km35nTu/MWnbd7wlYb86LRlko32Rcc68yf3Ir+y89VTU081kUzBXQyTuGkk1mrHf\n49s8OJe85r3cR9Y1jEHA//r6hpJzGwu7BCxMwBemFutsSKrzGdF3hl3A0PR3jTW2\ndTIbGL1BL/vz5F5HMRMdoy1GWSOSMFFAkXep3kH0MYowHwAYt5bKmY6S0IzBE1VM\nozYaBjcVAHzbDFtmxV6kDv45aQy1D44j8P/DcQK7TP00ABCI4PTdSjrWOzeZCpaO\nIV7Y28mAJAA/Hd9+p832/RGpw38vz5eQqyARieBqLWUgmJbYbOWXydMlDpsBccey\n9E9o74z2NZX0JlsihBBRzwQfyVBOPPhwdcWF6orE3ZYXGoFPiqnKMoNULIUjt/64\nZq2rKNLvscPgG2wK2j/raHNnXLgNVjt3L5wLXRJXbAR/S8+qeOk+qEiaxcu6UQ9/\nVk/wCzP/98StQBOv/Hnb8A+cbdkCHckeTVDkblHgwuQbCuXNwLKjecfmTpwxfM/K\nlSXPKIxcUjCgeJAV3bmiJCGOO8gJUf0Ikl84uigknkwLD5H6VvH06vaHWgGOaM16\nCjRjl8PVBsl7qZBKTXB0AAJAgUtZClNPBUcDIsv/zIH2GmhPpmV5yfTpbGHHPCA/\nG5/+g0HvdBNhti5MntJwiIPjuQO0PrU63dywai7iK00=","translations":{"en":{"changelog":"### Fixed\n\n- personal settings were broken (hotfix, just this)"}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-roundcube/releases/download/v1.3.0/mail_roundcube-1.3.0.tar.gz","created":"2026-09-29T16:50:40.889957Z","licenses":["agpl"],"lastModified":"2026-09-29T16:50:40.938885Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"frL33RVPkttLCWz4psTQGwM9qK6rNG1G5t9VUSwvJ2brL7rsgSvVmGP3/f4jsiVX\nh9oARJJ1BBix1FoHUSHpjEiAUxwRxAIUjCf0+tz3eoOyT9VNdbvsxNabKdThvDO3\n0ASYHUYvfLPYW2E4DLSwLAM9OigcrOKb9dRW98BCCNeqRMJkiqQ7XOhi9h0P7ucd\nM3YnLXUCMkIeUDt2vE0dY3AD3Qw9S4iMkctvX/oSHfbuR/5ZoDtlX4h4lTUSQFm9\nh5ftqb8FPmoiUcL9aQp5R3wXFzsv/06JEr6zz8zItgnqCrtI76TNjorL03fOify4\nA+LqxA1XiAJEJpzjJk+A5Po93TLTGUw0XMVT7K3MIGADcst2uAEmpYKXgtVYGpRF\nZNhVU7j2PSSRBwjobaX3FW1I4giOyABrYQmkgF08QXjTAJT+KARilXYXL/oVjRoY\nOIrc/84HEx5hiUA4McdCKpmsiPP5B/zxHfaczLJ+/UDymr9cBUEjon3X7d9nHbh6\neIyZCD7vzMJkKY66DQg11fLYJ4BMoVDAmq+DOZ186u9XPbHUWX+zZ8k/PoavFjSX\nvhz6EuJhl9ttZJK4zseYC9WtQvTuyFctl7IZMaTmEKa/hPIoVKs9nSEK/3Stz9Uh\neKyvcIDML8dzMuN32XaaD6PKe8HA72iMvrXJZfJsKko=","translations":{"en":{"changelog":"### Added\n\n- support NC v33 and up\n- support PHP 8.5 and up\n\n### Changed\n\n- use Vue3\n\n### Dropped\n\n- support for NC v32 and below\n- support for PHP 8.3 and below"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLXJvdW5kY3ViZS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvbWFpbi13aW5kb3cucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLXJvdW5kY3ViZS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLXJvdW5kY3ViZS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvcGVyc29uYWwtc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Roundcube Mail","summary":"Embed an installation of Roundcube into Nextcloud","description":"Integrates an existing Roundcube standalone email-webapp into Nextcloud, with optional SSO."}},"isFeatured":false,"authors":[{"name":"Claus-Justus Heine","mail":"himself@claus-justus-heine.de","homepage":""},{"name":"Martin Reinhardt","mail":"","homepage":""},{"name":"Leonardo R. Morelli","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhH5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMTE4MjIzMjU2WhcNMzMwNDI1MjIzMjU2WjAZMRcwFQYD\nVQQDDA5tYWlsX3JvdW5kY3ViZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBALrt+6Oqp016eAjUI0CzMvx21MJVbYt7vHTlIbn9p0MWwn44ueCQ3SmyuC67\ndWH/7Gct2bV9ZQcUUpgJE+sq3ROjxH5fuwirJmlKNAeD8ec7964wMYQVQ2BD01jP\nT0ZSiuN1zPnVRRF00fiEveahNYUcQRWfUsBM/trJA2Rti3V2VLVurisw/6wb/rTO\n41HKD6dSl4Fo8KZq+Dmf5aJsYZaxQiJI7DoW+dRZeDE63iAH3NFI/hXMRCLM6XCX\nSo4rY+vDSo1Xmk5QmRuFQcEb+PjLxPmGLKfQOKB1idAdTmDWvVbslI5bBbRS9JvF\nsmRi2IJwRVpSfn/zYV7i9WrKDQU36HzRSf3uPqxEebhc/VmRIc4yaeU/l8hlpjBy\nG7LNsR1gjFREVyU7lDEX14BuIrULoGVawF5KccyTnRNMTntAzQ3XbFFVG93lQRHv\nr2q/1eB6U5Zs7mWIWu9J7utSkYyApwrhb9aD5Fa1xcJdqpFV8EENA7/rj6+gTlqd\nl8GeRJslnV+6V1jsQYPRCc/Q66pjOMQKVqiS3w4rLpJsEcNR5+R98VRLvdsmsOv1\n2eg5nydxLzeFDRSVE23hp8K7xhHaXe+nfWqhnCTZ/DGJogPh0yFmbTx1rYVCTyOT\ngl6VUAObW3eozCBNkePS8i1Q5JcfRGPPS3MIHhdcfOcMOWljAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAE7Tsg2AR9n9ohlnodRTAQq24eKDDbkXVI18AyVvLlQ6ltbA\nQQpolXpYbeEehqaRRNnhrrcSEVPgbXhFCwT5HKntycrfHUOGOFLvCB4UZchQoRty\n92maZT+simr7him7xcQc2SpJI2Nkab0BD0UL97CEMmSHNikG7mQBsMQtlbvdg/zS\nzm5VKmPflGv8dQLOHUKZxbANO8TSj8blmu3ZYEsaAgO7QaFj/yT+HReQs++swo7/\nXHUoWsIibNJ4g2A4Ra32AxF+J/dOjE0qrDPXyRoI9mFnKbnb463sAQdqAq82snMT\nmAWq7odr4YncEi6/uun2PJa+XUwx5wAF7S8NQJM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_mindmap","categories":["files","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_mindmap/issues","website":"https://github.com/nextcloud/files_mindmap","created":"2018-10-10T14:45:16.040431Z","lastModified":"2026-10-21T08:56:01.982049Z","releases":[{"version":"0.1.4-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.4-beta.2/files_mindmap-v0.1.4-beta.2.tar.gz","created":"2026-10-20T18:34:50.722543Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T18:34:50.744443Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"VC0At9wMlTO6Dnd3Hb2FmuBhSJc7X1nEkKYpTgEE+6yYKpLGwsy44RV7le8gfOO5eglh7oAwiKoQXBGLcCNd9WsOg6PzsVchkr8fK3ArEUSx/R2CHnN7RjZfh1aDMKo6cotzf+tdevtDpxNUhxETjGkTtEuf/8lvf07fDxa+9X0mIrhaNAahGn3k2GyVME6koRYPVnEayaa3HryUTm5Qy1O9A0Rhex2Ct900wIwdVrVW4oeYDkRNLTJ7LW+KHNBWSDaAmKvT9BYcewpsQ0wL5TRl5bwijT2tBKdomEjOFWsBFXljm8fBcgwPucLnkwCsNwbqemcVHA2Q4VUvezVKeyFZKckpJBVED+YX8DAqXDFJDtrzx1hQQh8jtCCdk8PJDFqhFpTt1lYqTRnP/HEGM4FB4xV3adkR88/7sR/SkzX0q9A0cJQpxifDdYShk8TplAVQ+06Eu5K7+cAVzUesKf6iCTqYpAk0ZJ3xHEuQsuoI5FEQfVbwCQnVCPf0SWTioAruer0cOSCCF0uw4h9WHjK33S2+M6AbbBmwsfABTJ11nCHpKj9HPiwDOJqX1XCALYZsMZ53wnVTHFgjCNybe9B3LxXp761aW+qWTTO50lq9b0kVabzQAXJsDK/NMSIdxZl0ocXPkAvLegQB+aE0lNaxlOjYkNSYcsZk1hFb9bk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.4-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.4-beta.1/files_mindmap-v0.1.4-beta.1.tar.gz","created":"2026-10-19T17:59:04.487624Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T17:59:04.519025Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jAIQfSDtb3ejF/XaXdfNO0MQLbkxYUVjBufMfF7LUE9zBOI5Ajo2Tf0oQTMACYR6c+xmRXP94yhgoftz1myTU8HCQFJIytNLhDo/1zHvxd1n3eVlqT4wcrjI47md5t0G5XiNqLVfYrWA6y8cKYn/t9B5SZdRCiyWzj2pl40jPFuPd+Sq+tHOhRwmgTPk7Sia/OdO2Ee6nsZd274MB2+E8AVgyDRyk2BdERY9laMb0LRiRG6z+SmYnb9E4RrYR6NOebgyaLTcGLzfV+exKJFmHqQmEdgRKqgqh3H0QxXymOv8a6EsPTcK6dfyd1sQhr4ra5sUlDJgXus5oy0AYihUXD7KDRW0eGgLbwG/KTxJQRBndF/G5fFuaKJHei4BLFQhFmoBcmfXAAqkVOX+mH8z8ZDCjr2AyxknD7PsWifeR7be7SKO9Cxvrwkq9b8c3WhMdhOsfubNm+Wb6nKagUHvniE9OAgiKQCYGyd8qw+sQ1zUtav2TdcGQeLAjGsLPuF81hUsdB+h90ogJ/LPwYkte5acEKg6T2zSG6cYMjz2w1vTYFCGnBtrJwV2qC+NZAcf+CR9IhdAVdpgFHruMaP4KBG1dREUncnCsB8shM2OmBPuwBDvg1yYaYCP+SDM7KKwJCM6vlKRv1133+cwaC59XmUBLqp2svELHt+Vxf6Pdiw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.4/files_mindmap-v0.1.4.tar.gz","created":"2026-10-21T08:56:01.970217Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:56:01.997377Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"W5C/Hr61vYIFGT3gJSIKQTGGBqBKrTJnVdQk0GQxXvUgGKE0m2F7fFsS/PysDfDdh7af384I54YlcxavVZOuDyVe7ux7CI1xOD9kzei2nM5kYV2auTOZ8rVZdYQhUjKHgWbyDehSa1w4TfvQVUqy+Rc9gvbui1LCbrDxGxdIujIp0dtBBNiPhSxTWZ4Hl1GpBDZn2MJY/3EJugZh6PT3yop/awq5+uaU5VkGsxBX5xZv4q5S+VyFzj91lhcJJyodMTJPQz77hx17vyuiq/9++/ok4ebmy7ULxHOOgLpNX4/zIgmwDWA62MFt9L1Bc3UkppwSiADfewiPaWQ+gUjNv2s1xAQKpKmETUtiX7TXtPoztRS+r2VQXrOE6PHRP5isF1kq+Y/Vno+sUnqRmnRZNWnihQzEALP8xmOcHRYWfw42H0C3DPSrSHWvooe0I+vyI78NQvp0WtZItIvzYsx5M55RO3LiRbs0zf4MI7K0fPG0g/SdC/y4yljU5BWJhLE/Hi4XCFUy95e5bIUUx54rww9qUNw71SEnR/OkrKSSodX7/mhsCh62unZ4hxEbznawLccYy4S8UezG+SwgA3Py1l+CwqyWC5kesdnpX1eX94+JK7RSW29ciVG21umcnMUw96Xcyw1VimrZJ6iO2tR3iDJNUbUs3ZKZa04FBksgxcY=","translations":{"en":{"changelog":"### Added\n- FreeMind import: notes, folded branches, text style and colours, icons as emoji, and names and links for image-only nodes [#408](https://github.com/nextcloud/files_mindmap/pull/408)\n- feat(editor): name exported files after the mind map [#398](https://github.com/nextcloud/files_mindmap/pull/398)\n- Scroll the mind map horizontally with Shift+wheel [#403](https://github.com/nextcloud/files_mindmap/pull/403)\n\n### Fixed\n- fix(freemind): load FreeMind files again, including formatted text of FreeMind 0.8 and later, and explain when a file is not a FreeMind map [#408](https://github.com/nextcloud/files_mindmap/pull/408)\n- fix(editor): size nodes correctly after expanding a collapsed branch [#410](https://github.com/nextcloud/files_mindmap/pull/410)\n- fix(editor): wheel scrolling and Ctrl+wheel zoom in Firefox, and zoom on touchpad pinches and small steps [#403](https://github.com/nextcloud/files_mindmap/pull/403)\n- fix(sharing): load mind maps from subfolders of public shares [#401](https://github.com/nextcloud/files_mindmap/pull/401)\n- fix(editor): show the editor in regional and formal language variants [#396](https://github.com/nextcloud/files_mindmap/pull/396)\n- Load the editor logic from a hashed chunk, so updates don't run stale cached code [#393](https://github.com/nextcloud/files_mindmap/pull/393)\n- Lift vue to 3.5.44 [#393](https://github.com/nextcloud/files_mindmap/pull/393)\n- Show the message when opening a mind map fails, and resolve chunk URLs through window.OC [#393](https://github.com/nextcloud/files_mindmap/pull/393)\n\n### Other\n- Drop vite-plugin-static-copy [#393](https://github.com/nextcloud/files_mindmap/pull/393)"}},"signatureDigest":"sha512"},{"version":"0.1.3-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.3-beta.2/files_mindmap-v0.1.3-beta.2.tar.gz","created":"2026-09-22T21:36:14.557867Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-22T21:36:14.608342Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ET6pEDgrEFzdY3EwmSaX3VUFiWXjFuKVMXcFB2VY+wEA/WtPoftG7gZZ2BkOCpboBnny4G/uC0sPTZoEnKGRxjdk9ZfU0bSWLYUaDdT/5lKNeldzz/D+QXH0r/o56Cs8HQecMg6/J0bk/n75yjp3+/qb6UWAVRx70wB7gNtFCpibb/2loRtoKrb0N/rVYRIB1fh7TcWCNjDs5ijs3Gdpw5Ha4NPieKzi+DnG3ZRx0QjX0Bsu4WlXxRf+3eO+tS3kQsMckTFMGcbx06YenX18zeJWn1gWgkOGKTzM2cK5fAphnJGsqzuLRbWRhvvOzUTcxQFXHW6OwQ/Lh0nDszbnIDqzfb+74GyZPmN9R61A5u2vw7GyhzunnDbqUYJ+i/vHK+9Eb5dWuW5Gw0Xh857kk0mNjqCaE36Een4Ra+VRcOFETQ8WpuW8+qXq7lAuqCAGPgPLGVsFF+Td9v9Xg8S/GXf13jETUmtcxMqaxfQK4g4IEArSynquABpOIKvpyPei7jOWsqaQ7GxkEGP14vRbtN4GcAtf1pHDUft5rpt4VMGZufTHNZWd2ta3iJTP1ccN4CZtiff2ZlaYpDiKDaYRQCedv5rmKSYjx1b0HsSeKKsrIng+TwFo8bJGay/odvjBqp+82Fuuq5NAkjbOYNBMkMhFpyvxO5s11mFh9ET3oTE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.3/files_mindmap-v0.1.3.tar.gz","created":"2026-09-28T10:01:40.277356Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T10:01:40.341037Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"KFLgkysuwL/u/BEowuodKsguyKWelBEbGvNoq1IZJKxU7BRg1oycM2DgGxEUGXPQSivVEenZ9JYTxKbebD2OR59RurCnp4yns893px2GFejBh/yE6yqATIQi1Yd2MLTN3r13hBeXOqEFMGxsJWusmXUooWrpgxNaDddBkm/FNj5FBomjltmxErENA5wafWLRnNZdGrMZPtbyJb/3wF1k0qud5jCUr75TdxPNchYzqiaxqgAJQeKhbW+UoIBM16TuwnamHhRDIr1yFd/uaq/6LWk1V2XPieX+8Lix5a0e6B6jFZGb04MyNm2d7az/R4xltGwOXzLtvVdx8Wo/ZYbWWbDi+3ID+XNm3l/q0YThsQR+m3NhZVErVRPcQWqcJ3z/3wjiAHpvrnzJv9V7SNUNUWYT2t5cqwVpON5+rllMzZGcKiG5bVNT13kJlychX7cGSnfWIndQqcGISABw2nYxmCv8KbtX/KO+bL6XwWzc1ljrsX/AJ73YPJF14r+DvghlezFSnQ4ZvFD5a7BMti93P5iM2ZOz1It+ICCC1l+8Anih5VDd8zvVV+Eesnv00hG1Ux/tKwDR+/UdlUwMujBcvO5OjuuJOGNWIOw7l8rm3xCVYElQXxHvQAtpSFdcJKQpr+aXmAZQ0Myvja9gYZHXHl59vTZIu36DKrPErtZ/eSU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.2/files_mindmap-v0.1.2.tar.gz","created":"2026-09-18T07:56:14.167647Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-18T07:56:14.228019Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"qQw0iqaY4Z0RkI4gfoTS4M9G/olrsIC0slk3+mE7/4WBREv82bi2NrVXI0Rht/R36/Uqr1Fki9LTvR3aV7puNRUMGlDDRCFo/7m2DLMRNwe4Jf36pswvbRalzUffoZoZ/W87//hX3uQWdLbNDlcwQz9fMD1MMGoB0FN7gLj1GyHS7xkTofu5qvBgnDRqyvJR1AgkIOVzjtpu4UbnSatMuLw/pg0Uaj+HAUrwEFi7unj8KEAagLQLyyn1PsjKhSOajxEpL6+pGsn8g9lX4QGCqUaT8ga7e2PY7/6SOgnVrSVxnQgu2NcbzEOaC1fo13fF2/2r+OQ6jVt0043xrAcB0OCv1rY9BflQwf7rZBv+JIrntxOrumKuNKWDh+r2ZJvJDXTE3UxCeG/TniTE+BxO9KhUc9NmbDKq08qpzL4WSPEyctkdLznW1Ex64B5DXp1sBzf/S7iPlAHleyWUJHoKkKYs193opiikRw8UXnYc5/mxOAzefUMB+cjJWLVP8aJfD1JvPXymekrSsJ71XpBa6b1pepU3VH5NuRfKYG8JRShUFpsyvjYeHdh6JohZ8HOKN+U9hE6HIMFMgOwoFDkL1TXCpniTT21uDTD2GvhaAkJaw6zQWxttkRAmEleRe1MeT5zp2aZiwxADd+WyWuB2wOI6T3fi0l7uSDn7u3VlziM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.1-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.1-beta.1/files_mindmap-v0.1.1-beta.1.tar.gz","created":"2026-08-10T20:21:01.826913Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-10T20:21:01.879848Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"uVTa2JYgSgIxyJDt+8QFLLMo8kg2ee8B+krxerPBhLRNBS/vmZVJAIF2RTZ98ua3JlBApBZbQ7Wx6PjOl94vhOH6mspeM0WHiAFFgoqy1KezKKhkG8oe3IecZk/EQ0u/UfHPzoWJkohcU5LXtRv5Wj8ITBE632WpLykMdgLRg5lGgTrFWbxVHP8II2AGSmxGYFS6+a3N7b4DDZDk9rCG4I/rlvElMeOfdN99QsD7/UtwHng4Fs4hXBccxH9qjpNfxnUy9ujFp3dEvptoaEKKIXVM+M6lK9DKjK2rqPCnfHufF67nIaOG1i3D+YihytYFhnnvKSzSyFHsgZRI6FFZm10qhQRk4Hy1PQANXDmbrfDOBYiLUXk1x9zIc2j5Q3+63T/AQfQP92xygPS+OlV8OMsUwLY3wCeOz4LkyrFHbdS4FN5DqLGr8bTqAXEiu+9mu6xHVwVPUoHqZJJd64iVGPwDQXaJB+McCtfHHEqD4OhWWPwYR67tR6cQaYoS/4D3LQZdXA9FQP7u7MCpmMbckDukEZ3DHDpMz0WntVFwfCC2Rxgh1n1lV9rcxQMkity8yYSivfOgTXvI4xzcBo55KL5fQiYT1XW87mYD0zJWcERcfhKropEkcCAuCJVVNrUwFDi03r05DbhnXaw0l3LtNIXhXkgnNoThH3mFwNsGN+U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.1/files_mindmap-v0.1.1.tar.gz","created":"2026-08-18T23:06:45.014918Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-18T23:06:45.096018Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"SeEagskUruxSAH21/+A+LfBRK33/gqBQMEu4zwZVy/cM2xi/HLD9PUy5umUooaei8owwwg5TA0ZM6rmhikKKuLt59+bxj7KxFUzokq/iNVVhBP/CcdDcEs995JkLTRB9mJrC5fBKZX2hQVXDtPJ6Cse9XKVv6EAvAlkxa6sAdLY0m4hKtg7AH9rQDg+qSWsLgu76qcMIG3XUlY4+nheJjr/77capiZZyhUhdBlTqI36LXS+gi2vCSGiqzeaVvZw9/CsP2EAhwn95zIUeY3Rm1MXXIAozsNTlQZxIwAPxR91YUqXCN03sfhukSqroeSw3olwO/v10QtUecLzOugEtdKxyI/mTHxcahinv6BQbnMqtERP3YY9BOVxmh5u7hRRS0IC6tlZXYFCJAHESC1bDPr21R9pXVj7gpUnpwjjMmYZbUtVtzx3xP5rQK9iwdvCaqOz1JGOWcw4KL4YIyPN8wB/QerlIsWFamfY3R14PnhyJd8HXTYFb5VcVGQ0VmGjtuj9iXOU9ewmxDUCzUSSS/oVmwZM+c0WMvgbySGpe9WmXFTHAsUtM82gQ3fhSIL+JAnOhp1DcBYm9RAvyTflcAt1Vwi1lxNwKlkwr3V8ytgWnjy4RSDZkcVoJcg3Cs4DhLqvOM65qpweeuE99qWnZXzClGZU6rN1nIGDATjE3pjM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0-beta.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.0-beta.5/files_mindmap-v0.1.0-beta.5.tar.gz","created":"2026-08-01T20:44:39.684889Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-01T20:44:39.724227Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"IoI8dI1orPuyEQbsTFqP/y3rtLBxpz/mhKFglsHRFM+tK3HmkOvnAA7KOBHxUMo8gNZqThtz+LAqEJyxm51gfQr9FhrcY9pSowwtO6eGVLygScwuBAcRCt1WNXtOsXwDsFfE4wa+AjIocMTYSh8VwuSZjCFRVvaglNoXixcTCJy81EgJiv3N/bbHginiHwpcGN+ljGNUUmwRlU1moIX3j0MYAoJqdJKxHJPoiPfud227GROJ/WnyfokXQfGlELr4HxhRb2bBlHcTGxHdaUbImayd6bggX3Hn7SujWN265crsXeRK1n0wWYd+74W+dKr/EEiGCR/hUGF65zJv7coM07DI/O/+UKpmGkAigglv4eKKHT/ER7YUsss++H+2vC90Y8zLHXZB9kpuNhibZqmkPvHVPLljVMnJGyZBEKm/n4Kt+yNkPtkAeYCZb52CuJL1cCcyoDVqAcGqms1tq/9SIy5777VMEC0cERnRaoxgu4mOp3cLQxCRT2EiggD9zAamtu1b5M7vSc+v1bZ71uE463RKRctaB9ZetQOiqo9yz5AFBVkyeTX6tgNJzNdvOQZoD4sJkxjbkXWqJjtSeVE5gwMpGI+2cM72POCpJyMHlWiByiNkuPj1H1rzPCsWNCX+OcU7lXOkex8vnuZLDuEfP0UCcTMEgNXQjGzwuWto5Zs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0-beta.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.0-beta.4/files_mindmap-v0.1.0-beta.4.tar.gz","created":"2026-06-29T14:38:35.875407Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-29T14:38:35.902889Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"D85sRTmGpekB5l7UoRnD0S0GOqpceDOpFWAilEZxXeVYpBAlaoTZduYsLCtrCg5huGY+jSRZuoeT7syJi2B88kDYD6ced52AecL4n3JbJFOAzAIvFn2XkRlOU06de+tncWDdZyberyqmhV+83/mYJ1WFKG3jUOqsPojhk99LZtXrr3AXDdg1I81sGV3ZAWPRsWM/bFZsU33ao9niujdwJ4jRJi1KaMw5EJD6Jtt6V3RgCiWv0WVVb1h4KfgnMMBKeJSM6SXdbINJh11Ede+E0N1H51Ygy8kC7tdT8u87i2ypf3axH7b+WMrZkGZwGM+toNHPQXu69KFPAqVOTerhWF9QBVhgEpMXF2Wmq9XKbSl/J4LFQbfWJwItffkE/fC7xZiQsaYqetuaV1txLC2FoHzTbcHDBEwNUmrLrq+TNhXQWKNXq7b1VSH1ABcV13d7sdQGnGn2BU+9Iltb1sLTypp+FOAWLEFbyGEefvQDCPFAdcQi6iz7LBxzpfkVw+7OaKeJ1+5GCHrKK65vURhh6mZqN3qxWksWSwnZ99C28Z1NsqYl4zRF+6t2bxmprZF0B0ff7vsXsIDvVxeew70I8NArGNVVVolrw3akLHaIQFIqcGPQBpNV07lMcm0yrmCfgFi9biXVxSo2lFKafGWaiKQAOSBtZiVAAI6dnvE4L+I=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0-beta.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.0-beta.3/files_mindmap-v0.1.0-beta.3.tar.gz","created":"2026-06-23T08:41:16.867267Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-23T08:41:16.919097Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"C/GQ4GqISfsx3Fi64DWyPqNSTMDEQ6DlO/pcOTWdyngAbA9kSSUtsT8oIEPhNh0/3iHcxgoXjVPr8PjZoZM8sgg8mwNhPQYsOnc0OvaENMSOOCPzc+Iy2EbgaEXMSlziV6lHUHaEmqs6fXQcrFiDA2kfIHsq2NPO0FlZEVmhJa4FtbLxSFu7IBidJY/bDUdKWzJw435o99yZo0Q9zb6gTiQw1vnjO8OqyuyAd9FLZPQgwDxA+5MgxldJwbtOrpmUQ+NIjMRF8HncCFK4svYIrBv8IlfD5f2qXhwsXkfpUdS7v7dlWPLS5a3+5hCmEMxFaKJlQ0cpv67kxlcUwT+kcbgxXMQlx3UVEjdf2KrU5D6iMlRcw8ymLRHCDY8zZFRvKBg7OcVNufG8mKYyq8rxz2SEte0X7yPESA/NPPdgcMIxR0W3Ij8/6GdRo++5Ve/Iz6Hre3yvHVtW31J17ELQGmh7dtWx1TZb//eVak9nNd+brhEOQY3tTloUtsXosd22eteDPRDOARkPTiiYEYH21nOoyax8GpGDqID8vmwMRMSXKp4hrpsfcGH4U6A8X9awLFzjDIjnVsE0Wcq2CVBs/XMGgWx5MgPRqeQ+Rnl4CfsWadwe14eYEtalQP8uY7BpnWbznB+FcJsIUFYinGCJrv/I80C5ehg79rWa7yJfTSY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_mindmap/releases/download/v0.1.0/files_mindmap-v0.1.0.tar.gz","created":"2026-08-10T17:42:36.336961Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-10T17:42:36.409713Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"vArhKs4+00JstWRqrAAauM4ZOhvDA5XEoMSOjXkAFZYDUMkGfYJKr6D/EtpHUPMHntaGPGEDLO2u/eXqsiAuVk84x/Zuu+S3U1bF+lNbtWQahAqPi7pQN8+41Zxc4bYbFoKsOnHpGhdM7Z594CrihQgK2j0+di8HSeQpaq2Uc4xs1QKN8xxNWTxV1YxQKAbqEt1nBtvsgcDpLpuEt/QtP8kQmkYIy+smL9GTKF7bsVjvZckLaRGkFLC0W9UNjbsO/csmIppL5wl2ARz4nAO/pl7w489Ioei5f6pFOClqNLsc59NfrjCePtO/hw8VWGI+2GHmXs8qHeXh+8nzJjCVE7f21XjVCGfhIgYxvp/hQnJyEO7h3Z/zyWndHhTrTRdfwIWALaHrYS8mDlRxqQT8eFKqIPgBq2ACAI/cevY0CYQfiLijzb6D3rqA0XPzz/9jCZYH/giH6quTnxdqyrQ2gwdjfKFirfXqxUSbRAzmpV9e1A8E4mD+IiPY2uFbow+zCmRlAZoLgv7xgcolrQYKgAEp86FsPS48glZ53Rz1rCCtzFsErAPHDVbwYlf3Yvp+ymJoZVZOa407N2KdWBYSvD/f9LsSy1utqAeDkbHdp4+bncB+vT46yb7YF1o26MXKWZ2McRV8pBFHvVkhK9Q00QIcM3Py9UySQH37HHMPGzI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19taW5kbWFwL21hc3Rlci9zY3JlZW5zaG90cy8xLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/files_mindmap/master/screenshots/1-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19taW5kbWFwL21hc3Rlci9zY3JlZW5zaG90cy8yLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/files_mindmap/master/screenshots/2-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19taW5kbWFwL21hc3Rlci9zY3JlZW5zaG90cy8zLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/files_mindmap/master/screenshots/3-small.png"}],"videos":[],"translations":{"en":{"name":"Mind Map","summary":"A mind map editor","description":"This application enables Nextcloud users to open, save and edit mind map files in the web browser. If enabled, an entry in the \"New\" button at the top of the web browser the mind map file entry appears. When clicked, a new mind map file opens in the browser and the file can be saved into the current Nextcloud folder."}},"isFeatured":false,"authors":[{"name":"Jingtao Yan, Nextcloud community","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8333333333333334,"ratingNumRecent":0,"ratingNumOverall":21,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhM6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE3MjAzOTI3WhcNMzYwNzIzMjAzOTI3WjAYMRYwFAYD\nVQQDDA1maWxlc19taW5kbWFwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAwxrn6SR9oJRGHtarQ0JbBUIDSYI2Lqwyy2hoaTIbgy6Y0kIRvZBHNO1nFnS6\n78P9+qfO3tHXHCibxHHb1DKO1Io4DxvYGmnXTJ/LjnjO+vcS/Tn0m4fBsT0QXjkn\ne/+d75PsMTwgFRHFOYOSRXxtgMgyQJpBMjubWVDghLeoirZw4LpPV5Yw6PcLhCuR\nXb55yhRN1J6rejRX2V2fyRXksPHm41YxScQlx1pN+7pSrmP0eDqn7LVzV4jb3sAl\nK6SXyzSAu90xCltWw60CI8LWIGS2rWtj0zyLlJbtzd5ieZDlotkwN6fDGyu8Iy8d\nQP/IvTK4J5Nu9c7VSiGVQwid6Yz0QVD55ySXroUiQQ2nJJ8XbLEQGSmc24ny+Z6q\nU/7+I9fG21FWMNAEsqFnjNHvpDPbEn6Obk6AVbHNA2vi/0unannZTL7EVX1wKn8i\nYKmyVvDu31yI8SqV4EmGrm17pjIIgK/YVzY6E32/37NltK/J7y5acS7DumDZT3Ps\nBnoWRTNsMQH+k4ZxCp6N9ca1kxw/iI/qSiCZ00Ygga1hBKRSTqjn0XbEkCQxgKaM\nskrVnxS7w+tLzFbASLL3fDv3X8OF8LAM7F0uYRrYU2T/Kw34nZ2LX267b5NQ8REW\nbLkq7afQIRjU5hXA3LQaRmly9hw7FVSJ6yc7pRz/y//H5okCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAA2H3Ar5k4lcl1ByvULMk8lpPBepRvsasWcbNJwsQZuO9szoB\nipq3FxhMf0+X9XmTsjB3r3zNwjASONzvQKr1ZTC4PtddRR/LIK65VrZzGzJrlZpm\nUPA+jIqtmQF9e9LIU18TwLjr8gqKQU2KKbgegIIwoJqPDq9xl0gbABKGoKyaa6Jz\nBb2U/ZFbqwCjTX9qaAfMsq0YthAA44Xn6f69CdbHyITCrmbHiEwLTw8dgeSD8jTP\nGvcfkqoxJM7hnWwj70yJAlV3Zz4K0ttYTAY9bAPsnC326a1SphX/SwBocPOzYqs3\nIrb18s87O+YjVuzRePw6ZPWZLPp0iA67rKu4ng==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"openhab","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/kenda/nextcloud-openhab/issues","website":"","created":"2020-01-06T20:27:33.309151Z","lastModified":"2026-10-18T17:53:12.694110Z","releases":[{"version":"0.17.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.3.0 <8.6.0","platformVersionSpec":">=12.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/kenda/nextcloud-openhab/releases/download/v0.17.0/openhab.tar.gz","created":"2026-10-18T17:53:12.677935Z","licenses":["agpl"],"lastModified":"2026-10-18T17:53:12.733149Z","isNightly":false,"rawPhpVersionSpec":">=7.3 <=8.5","rawPlatformVersionSpec":">=12 <=36","signature":"Y7x5zwj1SylYdIPhZshnlsd8s0QOSLyWHfJQu1+QzdO1SsdjbBVwYf6FOsmGSEpYcxwIVRp5a+VMh9Ly4IdR4dMY6COiRryf2tA0OoBQkCUrbaaL3v6KD8oDZww3m5woJMHv0FQAy2NpQ67I/V0MlFDx7B54HiSnVuERsDIv9dRk+0QodKV81SO1AEWpV3qmcEjWWs/mTBW/R3ZU/ZgepmQ6/5MLVQRxYtCgMoOj4usvRKrMqa2uvj4PiH/xUrR4QdMO1668K0kNAiHsIqoN/45CzLQV6jCQZAtiJA5HcIWtZA6BGTjCdC8fH0s47vO2/xVf2Hjw5KEYy5Rt0I6pFnYCwiBHuPD+sVDfwEE3ZfkhhJosJlLh79H6sx45VjZnZuAWOBjJtJtAgU/r+fOH7xlj6fGFM8jxIVWYtFPhZpYUkoIe/1UZDTUwCigUr9lGcsZyjFSzPxb3kYU208UsJ3KuYicU2XndRG6CLaL/9Ej8YoBerrxklhJ8bYTuWi97kI63zdJT0QPa4FsP85n/KI7wQTModYYgq8i4QHGxFWvbOryFEvzJYM5TnoNzMmTbp+rexl0d5asrdJydaP3cDfim17aZoH1DTb9laAYVIW8rEg3sdKeJKs+EOwD4TMvAFH+0pCAgJ6Lu3A/2MD/oIeTZtgGdfo1l7lUFDm7wnY0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tlbmRhL25leHRjbG91ZC1vcGVuaGFiL21hc3Rlci9zY3JlZW5zaG90cy9vdmVydmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tlbmRhL25leHRjbG91ZC1vcGVuaGFiL21hc3Rlci9zY3JlZW5zaG90cy9kYXNoYm9hcmQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Openhab Viewer","summary":"Renders sitemaps of an Openhab instance.","description":"This app renders the available sitemaps of an Openhab server instance. This allows you to display values from your smart home in Nextcloud."}},"isFeatured":false,"authors":[{"name":"Marcus Nitzschke","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhEhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDYwNzA2WhcNMzAwODA0MDYwNzA2WjASMRAwDgYD\nVQQDDAdvcGVuaGFiMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvv8+\n3KJkFUSgnERc7/FeUbqjH6m8wkcuPM0k2oDxeHPNjOw7X2P07IgXybWvU9Gk15Sg\nukMOzMjUEGhfa1LjsoYrg2aPRfB53zqRw9jJPjljJ6hvRA2elyOYDKjahk7jVePO\nkejk5QN/ZW212qBjfQo5lJdokD97oKnlH4mLo5hX5mh3EbFOAXl8JgRyCmvU1aeA\nTzTGdxADeFSdCH24zH1uPbIvud+v62lPXmjMCuxoJP4xpNl5SI7laZuFGUNxQdxH\nW+W+HiUqi2p07OMNpmIp/q8JPhG6gEDTR3KRIkiQRicy1J1n3d+YYn5OTiOnWkfb\nclQ3oo2cLn7dYWrCkjKO16QOO6Vm29Y10KX9aMuANUo6Ow4Hs+c/UFbEYxCtbS6w\n0rduQGh3nipgRWI9/SafLzEcRJyD5nQSLa2hgNMxumUVK0K8lKI9j17QE0yVsAao\nwkFIPQxbo3mMaw8yK0n3+0VHxNVl9fBRoU1iIF0CISl5+HETNpfjIP78ip+wTLBw\nZ19G/KzWiE7WTAYnVb4qbwqIsRKrpqz3JOd/2PsYiY5dSf8YeQo9bxKXICCXzqAn\noUsvdFD/X6YpbVmYMJfhNTTZD+E7r9QGJUbQzkeKQPQruKMUDYtrAMjI2FhlvspU\nKM3Repc2KWxPKUgaXzNDJFE6dDMpZP+GgLGFT8UCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAnEV6oc2Bg/xGvKB+PcacS6GxuzImLwYBjFITaptNgX48lfMc844jJRk2\nAiFJdbBBFSvfHvPxzZX2hltVkWRH8yoFH2JBiigvtHrT6GdZ3AqgewXiW7LCxOgA\nwaItea5FRNl1PlULDYfYvp5ws7zxGfHhoNCQLCog/ZYqWVkOH7EhTLFa7E+JK3fN\n+uiqYdDzWd8ey7LeLFDB1F2CU+xNMVLpMJqlNjP6n+cngmPizjytvW7ZMurDRuT5\nIfcRQTupNCSIAGmfSQdj/ICYMI6nDDBX1SbuSGAuitlxNxECxP0w8AuJRB58Kx/L\n9nZ7UcyYeONAIzNwrEXM+4yBpHdK+g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_slack","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_slack","issueTracker":"https://github.com/nextcloud/integration_slack/issues","website":"https://github.com/nextcloud/integration_slack","created":"2023-07-17T14:47:19.374329Z","lastModified":"2026-08-18T20:22:27.307143Z","releases":[{"version":"3.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_slack/releases/download/v3.1.2/integration_slack-v3.1.2.tar.gz","created":"2026-08-18T20:22:27.290318Z","licenses":["agpl"],"lastModified":"2026-08-18T20:22:27.348315Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"cvSy8XNIsQ4+x0hVq5oyQ92PKydTG9LmWGSwViOgsrk5ZPPD0jc3o5O/rF9/1FaJOEIgPRV0QOY4Uo0GTCDI0jKTcBpdmEdD9ikh7TU5dk7hxQMTN4TYeyWVywD6tUrsiqRUuXLLYJdUUGSassy2UacTMnjV1GqnMIw+dKVQCcg60maxe1Nv1JFyfvIOUidkk4iqHsKb51fMUsSjHszkhbhp902Vru0XirXqvYcbNmctlijVaOFQziKQGFdk78tTHub7JFENauHLRZ531DHsXmc9XZksbhgXUr1jgANyCZ+3VTt9PW3X6l4BakpU3mj7LJswh4Qmdhhs4kr6YZiKeteTTSwQrPDmZxg6xhMVXU/M8VdY6QpvKymxIl80BhBEceplzIRBk8zqbAySEBrMknON96lt2DItWGRRbodZJ8GxVAXknBKq1zJS4ZiOOrs6s+/tETsFMtLrOn359w6saR5qKrUDsKf7RqVJ9LxQXTNPSfUW1PM3wJ5uGXDu67u1HxiYy8EWseLONRgnHQwBjfZsj77CmWXlQqhIYJcbI22oKBesj/+qd7ppfs4cvGhxCOBg7e7Jmt+3FDlSlkUSLV0RNWoEjJVLzgVJYCPQsErIbu6HsZpTzyFUwGjHiE+RP4N1Qzkn3Iwp7kbD2m0L+Y+PdJe2EajOFNuh/1R9bVM=","translations":{"en":{"changelog":"### Changed\n- add NC 35 support ([#55](https://github.com/nextcloud/integration_slack/pull/55)) @kyteinsky\n- maintenance updates ([#56](https://github.com/nextcloud/integration_slack/pull/56)) @kyteinsky"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9zbGFjay9tYWluL2ltZy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9zbGFjay9tYWluL2ltZy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Slack Integration","summary":"Integration of Slack","description":"Slack integration lets you send files to Slack from Nextcloud Files."}},"isFeatured":false,"authors":[{"name":"Anupam Kumar","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhIfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNzE3MTQxNjE1WhcNMzMxMDIyMTQxNjE1WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl9zbGFjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBAMHpfqem47zYwINWZbdVRDFAHMsd+uKGdpLGqZdVtjwV4tU5Lq6YbmwM\r\niwR3VSk6tdmPpC89vJNEV0bAzcZ2jxUcPLDLppNG2AnpI1ZEUJ7aNTEG+ylrPbC/\r\nCxij6OLjitvpc1dkHWlpa3zg5wANbEM/UBNqD0tE5VKfOtsIGrTZweFdS1hC+7fG\r\nUxXcnCdEwO+IrvseAXcX/UlOsj17hmBMv2ivRSJl35/mo5/luCRJVLM6z9OTYx2G\r\n2OsHAcEQBkk2uJ2FE7UQdmkJfbZpYj9YemGWl6v/D2UI0ObKYbr4MnVPPK48WVZA\r\nFkOOhW7wPaWP32M79l5pg/eHcW7KMvFjdqSjjWfsBJXEsfnBmECrpleu+mTNbv/M\r\nWl17qrbXxcWtph2dUldqv77KSmRJWemW62H8XDLaNE1iBvVz7ZaSi/ryUpt+XJyn\r\n0qZnW7L5sGvcT6G7ZCH9JCQyaBdVrdjpT40cvzc1L4tTieF1JM8KkaoLFO1npdm9\r\nhqInd6Qqs/MdD7rOCxChCc1SZtOBG3c9/pKDBo8xNhybbgCnmouPMPjU8VHrWIW1\r\nDJmgBPmAGEtvOJEi7MhUiSyl+SFNpkWlhPlvUgYpEs9B3bXQ5VFKA+nmNEiR8moT\r\niTHYt0JHt8aRt/DA2bWL8ceIKcsoK0On9cb/83SNqCTHF1e0hbsBAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAG2ZBxotzz3MNrC/XFi03bGUxTyzUx3vBmAEN8jXrzmG\r\nupIAZk9MwG/EXqEh7RiIRgMlWHPDQl8jIrRmlkIe0Saxti2GhpGzNOC8aii7Q0SG\r\nK7iLCcfyVoyXRsSuGn0WUkupZL14xIjKjpNXLOzx9lAFIxOml1Ddktfa54XnqQBf\r\n+0s582DXw23e96aGJeIDJFpENCmMpXnSkCjRY1IXjb4A90/aIQTJXs6pMsJMg6Sj\r\nIWFEql6nVug0hXy6W6L6u3jskZ9dkLH3Lct7Pzq5eut+g2loJOpnRg5ik1BqTQky\r\nqEgprpLt2Yi1ACl8StTc4TtTwAdBcgsJJKT+9fUsS6Y=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"autocomplete_settings","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sara-nl/nextcloud-optout-sharing-autocomplete/issues","website":"","created":"2026-10-14T09:56:31.435817Z","lastModified":"2026-10-14T10:02:36.799799Z","releases":[{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sara-nl/nextcloud-optout-sharing-autocomplete/releases/download/v2.0.1/autocomplete_settings-v2.0.1.tar.gz","created":"2026-10-14T10:02:36.794404Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T10:02:36.837069Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Y0U7R8FNsotHtM3fzDk1LLTHnMJl/T1Kfnhuooa9z+z4687rfyNX4lZRgEvHQGA03/wJ6CvYh28Lp392WtbhwV8cC9xzi/bNcxF0B6t85I7wR/1mXGSIIYy5tcdY649x7+0IuN0UxuGO/NPJx9ggo0UbJT/Q3XJpOcUzoD+SMF6vMSf9d3j/rAFRi0N/ZvXYinAM2dqSB98BrDPB3cK/R5LR9oupIye6a3BJ23h2F8FUCCPc4WbAeYchCnOAVG29Ko00wx39/h3xHk/moYfIELFmoGKpAiU+vJ1a9ljVGxKzxM2Q+HNPmGSAYNBMBdBmC9QLmXzZUPk5JOCtJ76g85uv7UpLk4dS+xIuxKn05wTvh38KQy1Tg3n0OnxijXvw1wNyUCT3+/m9UGlHMD75GiKII+LjvQCAElvpZ85YTvKM04YHe8Wy1luOfEzg2Ex0UMMPitduK9l2VRkpGjI6UQpq0mYhMAfiSu6gwOXs4Vaa/wFGpQeLKfNHx3jTxWAGrGMUcATXxs6i9/TwrHkMogLp3z0nO/z2mQF6yTBaAT6IzYqE15TmpBM4eLEUXPa3UnyB0v/NI2CNTJRCU/TFVOdOBSyG0U9AhQGL1FLHEA6rDvxbE8c88ceOMleI1theOZEyZDjV6cUBCoRjfQWezqq0W+R9ZxxUX3UZAhphWWg=","translations":{"en":{"changelog":"First release on the Nextcloud App Store.\n\n### Added\n\n- Translations for Dutch, German (informal and formal), French and Spanish.\n- Screenshots for the App Store.\n\n### Changed\n\n- Licence and copyright information in the REUSE format. The licence texts are in `LICENSES/`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NhcmEtbmwvbmV4dGNsb3VkLW9wdG91dC1zaGFyaW5nLWF1dG9jb21wbGV0ZS9tYWluL3NjcmVlbnNob3RzL3NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NhcmEtbmwvbmV4dGNsb3VkLW9wdG91dC1zaGFyaW5nLWF1dG9jb21wbGV0ZS9tYWluL3NjcmVlbnNob3RzL3NoYXJlLWRpYWxvZy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Autocomplete Settings","summary":"Allow users to opt-out from autocomplete suggestions","description":"This app allows users to hide themselves from autocomplete suggestions, for example when other users share files or folders or mention someone in a comment. Users can still be found by typing their exact username."}},"isFeatured":false,"authors":[{"name":"AntoonYmous","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEDCCAvgCAhRqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE0MDczNTQzWhcNMzcwMTE5MDczNTQzWjAgMR4wHAYD\nVQQDDBVhdXRvY29tcGxldGVfc2V0dGluZ3MwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQCukG3Sucwk3lmcY+gM8vCDILBo4JEWWxny0+6zKqQRiI/AWW+9\ninNqWWkCXqbZRWuaTcjRNdTDJmMWO+/Zd0PqqMXa6OaE/adQuuGV6qJpE39KFrro\nUgSxrdQ6rWRzauvGraEq6SSbmcpTyYZaE8rjht70ceGp9eL/km5yaMGZskLhdg2c\nntmWbz9BgZni1cNKEjHNG8451PEIrTVQD1IrTbl00LJu3eCbjuRCM2+hm+i3BuiE\nkxbMfldS9TiY6JZBHlw5+D9q1tMyWx4b+sRMO5RLVQNf97EjGkBYlexcFrmWG6Ao\nn9yGqrE7J2JvgQYTPOZ/PlVgr6x2v+HXQGJxx6QirCjt2rT0mwQmx3Pplo6Q0iwV\nGa8xyI/KWPM1cxZ0XDidhUBUcj79huUXLD3RJHZf8+PUCXV+LDdIFwljMn1bZC73\naGPED3Lurc9r5uOAvqF5w2LI0f4Q3PO/IDkkxzuoPI13niRoE7fTCvkOS8H5Y36a\nOfcJlCa7MDwKs4tsL167UjyOyfvxRidG5l/IVpzooKiy7xAZb24SdfJaGvKSCghj\nP+PWgEdnEXB0GolLOfiKUfClW1gG2dQvVVL33uERjM/zLS/LYELYeQpmkjGBQjRF\nY3yg+ET2afcnQOhJzNb/v/prOvYVqOQtB8+ff56C7XOJ2iP0EYCR3IiuFQIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4IBAQA33C1RiQg5RbN+ExIptxARLjiuZIYZG5X5m6cx\n+ljEg6BI4KfMpm6uWCKZmK1YcuewaRHl9zQTBbHUnOV4DCW79vknU0wGzbl76Qzp\n9EiYllMh0qn33EJAyXqyV+dk+H71/4EJ8dZhrgR9PyGR6x31KnSl1wOGVMSQHdO6\nnvo8bYDpgVOfYWoKA5NGAr0YW8kIPgfKPe/UjdfhyO+o6Ygmg/tjCKmGgmRs44Br\nG1Bd95DFY7JT44bZwkMkEWjEAYcG9tM+WrIlLdMmslS7QkZjcNt8xJKeUSDCGUM8\nvVirZJZN4gh5zi8jWva8zviefG2JtO8lZRiG4bIngzUzFapL\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"formulabase","categories":["office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/FormulaBase/issues","website":"https://github.com/ktec-nc-apps/FormulaBase","created":"2026-07-20T10:17:37.502237Z","lastModified":"2026-10-11T03:17:02.613803Z","releases":[{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/FormulaBase/releases/download/v0.9.1/formulabase-0.9.1.tar.gz","created":"2026-10-11T03:17:02.551172Z","licenses":["agpl"],"lastModified":"2026-10-11T03:17:02.675534Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"cNo7uuDo6F5I99jxYcusd8TVJoqffdgES3LHncBUH65MC5gYe+Jo00+TpBPMjMX48KyegVH/Rj6ighVWlGPdqV/kOn/YNKzJcrb6uxnbueWDyzIdgPW4lUVlJ1A+m9MtbdRNO10DIfRWCXnPjctxez3pYqOELcGIeLVT5smN+XkNu8agZfn5puTSjDsbIay72kXZgpm8nlWkpW01Fm2ZxAka7efPZecbKj0iNpB+S8TRfgUmso9P/pPiJ7r94KHh89vH9Gf4vbZWgO8EagHoqMAqsl98NwYo4x0esTkcR3TvY+G9LsECmH+Eyc1dkKR4RkDb5eB0KlvdNNTMV7ci9pVL70Lvnc60qSLoSCP+rU0G91RG7C+Zw42IcoAkPHeDZOmYS9Y23Yqr0cen80XSEirPEXwlS7MsYHsJ9H5ZqyJ1bOMu5K8dTFjMGdI843K7S6MC2a8Qju81vKYpQMxKuZcBeFdfMPKEVeoU7vwPZBIwxbXpx5WuqxjwxF/ZlsbvXxDRCchLr4bQSb8JS3QNOGpL0ItYvDIjVlFJG2hEv0MA+kgOWWd7TifsszI5ZvfHlj7XlMICKcTAQfR/iJQP08bALCNZ8cUa908crb1yNTIpB0rWUX6NZlVqnekBiAEU4krLvkkesAFl+cN0NAKUkUc03Lr6vM08ouTRQApWuuM=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/FormulaBase/releases/download/v0.9.0/formulabase-0.9.0.tar.gz","created":"2026-10-07T23:19:49.836352Z","licenses":["agpl"],"lastModified":"2026-10-07T23:19:49.956236Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"jOZwa1LjKQ08yWnXCQYqRxSpWaWK1PQ4OEgXSMlQL78hRexUAuWrbJBsJVA9N/+Y9VvZL14tTyZPaPLmFAPIfkZVhCKglVw3FmbpW1di5jhY4hYeB2CKiJM17WXrqTEnyj5fYTXVVJ1NZfpbF3V9Z8xSjjoPulupA8gDPsfW/+r+0dq5dHjUUWKr7yEBzqrH/ciegA3tHajAEKLadUgDnJHNAQIvmXkKLUyJ3i8KNgrPC17Rvd9chv2q35Zh73lWoMrJo5cqZSdNW59LfA5bnBYePK4fQ5k2ibCAdgBYMRtC32RiIO59nP6eKSReSCbiJfrrk/s3qJtrVyQr5ZYWiFIeK4/SLOssDPxswPMNL04cL/zSYR9G7rdMgAVOCFct1K9B6swZoqwQ5mcwMiPkuMt7474FkHA32NckzXOmO7IkFBKDqyIls0NN9A++r/ySvNLR8koN0oOkbci6EKlN+NeoHb345PEb2wBL/giCfZbWamiTm1Is2UCwO9gJBJr0rSRXAag6PaFzuEmPKoMxwjeNLNZ3uZzBQQN0RtwoiDFxbX+z5U7aL7xME3AbLwPAAsTbI58NTt2DCvQpF0dz7dQSLJeln+rmbcLqBEKbdwBQe6ud5OeCkMLRpVntZK13DUiDFxOIvmCWFif7ChLZrzG5uT9SYpO/kbz0hSea+ao=","translations":{"en":{"changelog":"An AI assistant, through the new AI-Hub app, and the fixes from a review of the whole app.\n（新しいアプリ AI-Hub を通した AI アシスタントと、アプリ全体の点検で見つかったものの修正。）\n\n### Added\n\n- **An AI assistant, through the AI-Hub app.** A chat beside the formulas that knows FormulaBase and how its expressions are written. It answers in words and writes a formula out as text you can type in; it changes nothing, and it reads the open collection only as the administrator allows. Administration settings → FormulaBase → AI assistant: on or off, who may use it, what it may read. Shown only when AI-Hub is installed.\n  （**AI-Hub アプリを通した AI アシスタント。** FormulaBase と式の書き方を知っているチャットが横に出る。答えを言葉で返し、式は打ち込める文字として書き出す。何も変更せず、開いているコレクションは管理者が許した範囲でだけ読む。管理者設定 → FormulaBase → AI アシスタントで、使うかどうか・使える人・読める範囲を決める。AI-Hub が入っているときだけ表示される。）\n\n### Fixed\n\n- **A formula that takes too long now stops.** Expressions such as `primepi(1e11)` or `partitions(100000)` could hold a server process for minutes; the calculation now stops after 15 seconds with \"The calculation is too large to finish.\"\n  （**時間のかかりすぎる式は止まる。** `primepi(1e11)` などがサーバーを数分占有できた。15 秒で「計算が大きすぎる」と止める。）\n- **Huge matrices no longer use up the server's memory.** A product that would have a hundred million cells now gives NaN; a backup file or its data that is too large is refused.\n  （**巨大な行列でサーバーのメモリを使い切らない。** 1 億セルになる積は NaN に。大きすぎるバックアップは受け付けない。）\n- **Dividing by zero and the like no longer breaks an export.** `csc(0)`, `logb(5,1)`, `root(8,0)` and similar gave an ODS export an error, or dropped the result row of an ODT; they now give ∞ or NaN, as on the screen.\n  （**0 での割り算などで書き出しが壊れない。** ODS が失敗し、ODT は結果の行が消えていた。画面と同じ ∞・NaN になる。）\n- **Restoring a backup over a collection is checked first and done in one step**, so a broken backup no longer leaves the collection empty.\n  （**バックアップでの置き換え復元は、先に中身を確かめ、一括で行う。** 壊れたバックアップでコレクションが空になることがない。）\n- **Choosing whom to share with follows Nextcloud's sharing settings.** Everybody could be listed, outside the groups the administrator allows.\n  （**共有相手の検索が Nextcloud の共有設定に従う。** 許されていないグループの人まで検索で出ていた。）\n- **Names, icons and colours that are too long** are cut or refused instead of causing an error.\n  （長すぎる名前・アイコン・色は、エラーにせず切るか断る。）\n- **Deleting a formula, or an account, deletes the history kept for it**; it used to be left behind.\n  （数式やアカウントを消すと、その履歴も消える。これまでは残っていた。）"}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/FormulaBase/releases/download/v0.8.0/formulabase-0.8.0.tar.gz","created":"2026-09-25T05:31:02.943364Z","licenses":["agpl"],"lastModified":"2026-09-25T05:31:03.049524Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"BVga5O65xE11oQXSKUMKe0uJEjh2W/WgaHb8Jbxk/Y/09T7sefGV/P34fsD5BLgxMaQjtn3/keqKuaDAX4l70M+6PiruhubHDjeeUQnsXX7OMdKzYQEWW3Q3ae1LnxGPKLdlOUl0yIHklQRwAkhu7XBp2+N0+n8DT34t3DoH0fInZppDwMlbFazsejOfn5Jq7bdteo3wcLwU3gs94SHstafjks0uIQCCwAJ2uG2D7Z6H1hsWvDxyjeX/vlotb7cRzWaKGYETZtfFDlq/joFzot7GLCmMrlQMcdnGmldSB1iv2y+U8N3iDdAFzo3V6Y9YAQ7BK+i0Cd2YN76MmJd0nBXZG4QaNfEFHEMPEi09XzGrhCm1o0QDtx1Xpz4jcmJ/XfZUDDRX951Wephgd0/UxB0AWQaF2uKJdpg/gzGvR/h9TfpbKPATvgt44yvXnwf8gro3pD0lnxiweEQ1nKzeSU/LL/q3et4A3Fgg1xk4HJykAWIVnfCgGTwd7GkZ91ky3O395a6MEyt0juku1B0UpwHICwD2FVi00B96ztRS1pOeF5A9o4OLxp57VoMNqI7K7ANTiCo78d7nvJn6krzI3iuBGWMSAZ0LX9WWZgjxHGNwsI6lc36AYT+P63Fh9sp/V0+yLuLbB7N54cnuSB0YKA1xg7swWyL6L/zWkipBm/I=","translations":{"en":{"changelog":"The 2,400 templates added in 0.7.0 now speak every language, and a set of fixes found by a review\nof the whole app is included.\n（0.7.0 で追加した 2,400 件のテンプレートが、すべての言語で使えるようになった。あわせて、アプリ\n全体の点検で見つかったものを直した。）\n\n### Languages\n\n- **Every template and every screen is now translated into all 13 languages** — the 2,400\n  templates added in 0.7.0 and the newer screens (Template settings, the function list) were in\n  English and Japanese only.\n  （**すべてのテンプレートと画面が 13 言語に対応した**。0.7.0 で追加した 2,400 件と新しい画面\n  （テンプレート設定・関数の一覧）は、これまで英語と日本語だけだった。）\n- **Brazilian Portuguese** is new. The Portuguese shipped so far is European Portuguese and is\n  now named **Português (Portugal)**; if you had chosen it, it stays selected.\n  （**ブラジルのポルトガル語**を加えた。これまでのポルトガル語は本国版で、名前を\n  **Português (Portugal)** とした。選んでいた人はそのまま。）\n- **The earlier translations were reviewed in every language**, and many terms that had been\n  translated in their everyday sense were corrected (for example \"stroke\" of an engine,\n  \"charge\" in physics, \"discharge\" of a river). The English and Japanese texts were reviewed as\n  well, and variable labels that were in Japanese in the English templates are now in English.\n  （**これまでの訳を全言語で見直した**。専門語を日常の意味で訳していたもの（エンジンの\n  「行程」、物理の「電荷」、川の「流量」など）を多数直した。英語と日本語の文も見直し、英語の\n  テンプレートで日本語になっていた変数名を英語にした。）\n\n### Fixed\n\n- **`sum` and `prod` with four plain values** (for example `sum(1, 2, 3, 4)`) are the total or\n  product of those values; they were taken as Σ / Π and gave a wrong result, on the screen and\n  in the spreadsheet export alike.\n  （**値を 4 つ並べた `sum`・`prod`**（例 `sum(1, 2, 3, 4)`）を、その値の合計・積として計算する。\n  これまでは Σ・Π として扱われ、画面でも表計算の書き出しでも誤った結果になった。）\n- **A formula that is too long, too deeply nested or too heavy to calculate** now shows a\n  message instead of freezing the page or keeping the server busy.\n  （**長すぎる・入れ子が深すぎる・重すぎる式**は、画面を止めたりサーバーを使い続けたりせず、\n  知らせを出す。）\n- In a shared collection, how many versions a formula keeps follows the owner's setting, so an\n  editor can no longer remove the owner's versions; a formula saved without changing its name\n  or labels keeps the wording it was written in.\n  （共有されたコレクションでは、式の版をいくつ残すかはオーナーの設定に従う。編集者がオーナーの\n  版を消せない。名前やラベルを変えずに保存した式は、元の言葉のまま残る。）\n- Saving one formula no longer resets the numbers typed into the others; switching collections\n  quickly no longer shows another collection's formulas; Restore waits until the chosen backup\n  has been read.\n  （一つの式を保存しても、ほかの式に入力した数値が消えない。コレクションをすばやく切り替えても、\n  別のコレクションの式が出ない。復元は、選んだバックアップを読み終えるまで押せない。）"}},"signatureDigest":"sha512"},{"version":"0.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/FormulaBase/releases/download/v0.7.0/formulabase-0.7.0.tar.gz","created":"2026-09-22T13:48:07.799306Z","licenses":["agpl"],"lastModified":"2026-09-22T13:48:07.929349Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Wc3KgJFRWaK+VL/lYcAtZJmpoGnwdev3wt7fripR2S6bAWwqyPgo0IK0/McsX81Dx4hSIoVvUbsXNXKYhIEQgR3/ST6GHEAE/Dy4RMw4D4qgZaguWHms/KdllJHcGH6mISQq5SfW1sN95G364Fuk2fSWmxQT2TcmnM92TJmA5b3WVlScezevfhAp2Pgu/iQfnp7XNcQGaVPfsAupqn7+OT3dP5myoKmAMT5cawwJ3Qqprd1LPm5i6rTZSh9hzpJ+mWlvc4L8HPHcKIpBPfY/umSHfA3GVJBGDN7Qs0fTfRnr7seQreTVjmtarm2yTc3SrTWsVC+tnE+naVi3YDnql4YkQcf0+EfznuWdTuFlnt88YPCdxqG7TlhOrEb+gcSPNKWt0GXQNLXUUBo0N49nAXkYklCdxP73zCsEkr85IOl/STSs/ZnugOJn2oSl/CNDpTfSq2BPfR2nZqDUiR06ceTc6tglA2O0YyyYzoBCbNUKGNQkT3A1/fTRbcfKnEKhFe/zCYNMIBKZCW9IpfwCz9rezUcQ6l0r2y17c+fnXX5baTgAoZoWR9bwjBDMZDlERrKSzj5VHa3YqoEsyLc07j+Aq7EeKDEgrsNWODgUy+9OgnyhMV7sTFQcIcSqVtbtua1rMMPLMahhbSLl3Cp0CRzDjM0lov168oZikfhaa2A=","translations":{"en":{"changelog":"Thank you for the downloads, and for the comments on apps.nextcloud.com saying FormulaBase is\nuseful. No problems were reported against the template library up to 0.6.2, so this release adds\nmuch more content — new formulas and new functions — while the way you use the app stays the same.\n（多くのダウンロードと、apps.nextcloud.com での「役に立っている」というコメントをありがとうございます。\n0.6.2 までテンプレートについて問題の報告が無かったため、この版ではこれまでの使い方は変えずに、\n公式と関数を大きく追加した。）\n\nWith 5,522 formulas there are now far too many for us to debug on our own — if you find a wrong\nformula, a bad default, a mistranslation or a missing unit, please tell us in the community thread\non help.nextcloud.com: https://help.nextcloud.com/t/three-apps-i-built-for-my-own-nextcloud-instance-regibase-formulabase-talk-bot-feedback-welcome/247817 (a GitHub issue is fine too).\n（公式が 5,522 件になり、私たちだけではデバッグしきれない。誤った公式・不適切な初期値・誤訳・\n単位の誤りなどを見つけたら、help.nextcloud.com のコミュニティのスレッドで知らせてもらえると助かる\n（GitHub の Issue でもよい）。）\n\n### New: 2,400 more templates (5,522 in all)\n\n- **2,400 new formula templates** in five areas:\n  number theory (500); finance, accounting, insurance and pensions (500); AI and machine\n  learning (400); physics, chemistry and engineering (600); medicine, statistics and biology\n  (400). Each one was checked against an independent calculation, and against a published value\n  where one exists. The whole library was checked for duplicates, and any found were removed.\n  （**2,400 件のテンプレートを追加した**。数論 500・金融／会計／保険／年金 500・\n  AI と機械学習 400・物理／化学／工学 600・医療／統計／生物 400。すべて別の方法で計算した\n  値と照合し、公表値があるものはそれとも照合した。ライブラリ全体で重複を調べ、見つかったものは取り除いた。）\n- The new templates are in English and Japanese. Other languages show them in English.\n  （新しいテンプレートは英語と日本語。ほかの言語では英語で表示される。）\n\n### New: templates grouped into 13 fields\n\n- The template list is now arranged in two levels: 13 fields (Mathematics, Statistics\n  and probability, AI and computing, Physics, …) and subcategories under each. Each field\n  has its own heading, and related fields sit next to each other. This replaces the\n  63 flat categories, whose names overlapped (for example \"Money\", \"Finance\" and\n  \"Accounting\").\n  （テンプレート一覧を 2 段にした。13 の大分類（数学・統計・確率・AI・コンピュータ・\n  物理 など）の下に小分類がある。大分類ごとに見出しで区切り、近い分野を隣に並べた。\n  名前が紛らわしかった従来の 63 分類（「お金」「金融」「会計」など）に代わる。）\n\n### New: Template settings — hide templates you do not need\n\n- **Settings → Template settings** shows every field, subcategory and template with a\n  checkbox. Untick a whole field, a subcategory or a single template to hide it; \"Show\n  all\" brings everything back. The choice is saved per user on the server.\n  （**設定 → テンプレート設定**で、大分類・小分類・テンプレートをチェックの木で表示する。\n  チェックを外すと大分類ごと・小分類ごと・1 件ずつ非表示にできる。「すべて表示」で元に戻る。\n  利用者ごとにサーバーへ保存される。）\n- Hidden templates never appear in the list, in search results (by name, description,\n  formula, variable or category) or in the counts.\n  （非表示のテンプレートは、一覧・検索結果（名前・説明・式・変数・分類のどれで探しても）・\n  件数のどこにも出ない。）\n\n### New: a much more capable formula engine\n\n- **Lists, matrices and complex numbers** as variable types.\n- **Conditions**: comparisons (`<`, `>=`, `==` …), `if()` and `piecewise()`.\n- **Calculus**: Σ `sum()`, Π `prod()`, definite integrals, derivatives and `solve()`.\n- **More than 200 functions** in all, including statistics, cash flows (npv, irr),\n  vectors and matrices, number theory, special functions, probability distributions,\n  and physical constants. A function list with short descriptions is available in the\n  formula editor.\n  （**数式エンジンを大幅に強化した**。リスト・行列・複素数の変数、比較と `if()`・`piecewise()`、\n  Σ・Π・定積分・微分・`solve()`、統計・キャッシュフロー・ベクトルと行列・数論・特殊関数・\n  確率分布・物理定数など **200 を超える関数**。数式編集画面から関数の一覧と説明を開ける。）\n- All 3,122 existing templates give the same results as before.\n  （既存の 3,122 件のテンプレートの計算結果は以前と変わらない。）\n\n### Fixed: spreadsheet export\n\n- 8 templates were exported with a wrong spreadsheet formula (a missing pair of\n  parentheses around hypot, cbrt and root); this is fixed.\n- Rounding (round, floor, ceil) of negative numbers now gives the same result in the\n  exported spreadsheet as in the app.\n- The normal distribution is written as `LEGACY.NORMSDIST` / `LEGACY.NORMSINV`, which\n  LibreOffice accepts (it rejected `NORMSDIST` with Err:525).\n- Parts a spreadsheet cannot compute (for example Σ or complex numbers) are written as\n  their value. Every template was re-computed in LibreOffice after export and matched\n  the app.\n  （**表計算への書き出しを修正した**。8 件で式の括弧が欠けていた（hypot・cbrt・root）のを\n  直した。負の数の丸め（round・floor・ceil）がアプリと一致するようにした。正規分布は\n  LibreOffice が受け付ける `LEGACY.NORMSDIST`／`LEGACY.NORMSINV` で書く（`NORMSDIST` は\n  Err:525 になっていた）。表計算で計算できない部分（Σ や複素数など）は値で書く。全テンプレートを\n  書き出して LibreOffice で計算し直し、アプリと一致することを確かめた。）\n\n### Changed\n\n- \"Modular Exponentiation (Small Values)\" now computes exactly for large inputs. Its\n  inputs and its default answer are unchanged.\n  （「モジュラー指数演算（小規模値）」が大きな入力でも正確に計算するようにした。入力と初期値での答えは\n  変わらない。）"}},"signatureDigest":"sha512"},{"version":"0.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/FormulaBase/releases/download/v0.6.2/formulabase-0.6.2.tar.gz","created":"2026-09-17T10:46:46.811083Z","licenses":["agpl"],"lastModified":"2026-09-17T10:46:46.918091Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"YG1p1PvHULK5/ueL50qwi7dh5PNtPbojuqLVT2c8EhFil47Rbec5i4LuwmF6UL5eOwfH5aoiM6wVhVuwqCDe8rbAcrohyb2NOCmn0cfyPYf3GxTCFje7Tf174gRh+9uG80TDup5mbD1GO5jVH6fXHEuNfQYRMlonIYxVQSGYz7Vv3k1+23cFbl/W+FZ106juOq8Y61N16KbZCw45CnbWL4b1diMothbs3dszFlhsAveA06vlWwbUF5SYmfkJgjDGMeOlr4S8lHguWZInjfyUbsF4JfYQ7ewg4+LGcagLaiWwmHgzkyBTWxoTVBzMJlgjgZ/Oq42XHf/oHLcMW6wj1ayBZZzlkaT+jP+ScO801TpnJya0c007flAQR446ipAHRYhUKKJm7VvUBqeYJoM5QtIMhtOSOdnw9S8CivqBrSXaldwx/P/2G/mYZZZ7nSEak7OnZfPDbz8a2TAHHyO54U6Zco/j+lWN0o6SsxoKB8Xkv2+ZJY9n7Omas9cOhqNeBZllRQSPOzr8OnyU6tEiYnfzTURBGYkJoV9GVRUalUqFpm+zZ3xLW45vBz691smokuun8/oBvLksuKXD6FuWo1k+23eru2H8UkDpun1nRp4t+E6TcTH4vJeurUTWcRCRLmJwyE7T8b0WKa+tV9xiJGTb9RsIo/qU6BoGvRdRMV0=","translations":{"en":{"changelog":"### Changed\n\n- **Nextcloud 35 is now supported. There are no other changes.** The supported range\n  is widened from 30–34 to 30–35. The app itself is unchanged from 0.6.1: it was tested\n  on Nextcloud 35 against the changes that release makes for apps, and ran without\n  modification.\n  （**Nextcloud 35 に対応した。それ以外の変更はない。** 対応範囲を 30〜34 から 30〜35 に\n  広げた。アプリ本体は 0.6.1 から変わっていない。Nextcloud 35 でアプリ向けに変わった点に\n  照らして試験し、修正なしで動くことを確かめた。）"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzAxLWZvcm11bGEtbGlzdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzAyLWNhbGN1bGF0aW9uLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzAzLW1vbmV5LXJlc3VsdHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzA0LXJldmVyc2Utc29sdmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzA1LXRlbXBsYXRlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzA2LWZvcm11bGEtZWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzA3LXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9Gb3JtdWxhQmFzZS9tYWluL3NjcmVlbnNob3RzLzA4LWNvbGxlY3Rpb24tc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"FormulaBase","summary":"Save your own formulas — plus 5,522 built-in templates — and calculate instantly by typing in numbers","description":"FormulaBase is a lightweight personal calculator for the formulas you use again and again — markups, unit conversions, loan payments, mixing ratios, engineering constants, anything.\n\nOrganise your formulas into collections, define each formula's variables once, then open it any time, type in numbers, and read the result live. The math runs entirely in your browser (no eval, no server round-trip).\n\nFeatures:\n- 5,522 built-in formula templates in 13 fields (mathematics, statistics and probability, AI and computing, physics, chemistry and materials, engineering, personal money, investing, business and accounting, health and life sciences, everyday life, and more) — searchable, and ready to drop into your own collections\n- Template settings: hide whole fields, subcategories or single templates you do not need\n- Collections of reusable formulas\n- Named variables with labels, units and default values — numbers, lists, matrices or complex numbers\n- Safe expression engine with more than 200 functions: arithmetic, conditions (if, piecewise), sums, products, integrals, derivatives and equation solving, statistics, cash flows, matrices, number theory, special functions, probability distributions and physical constants\n- Live result as you type, with unit and decimal-place control\n- Version history per formula — the version before each edit is kept beside it, numbered and restorable, separate from the calculation history\n- Share a collection with other Nextcloud users at three levels (view / edit / delete)\n- An AI assistant, through the AI-Hub app: a chat beside the formulas that knows FormulaBase and how its expressions are written, answers in words and writes a formula out as text you can type in, and reads the open collection only as the administrator allows. Without AI-Hub it is simply not shown\n- Same clean, themable design as RegiBase (light / dark)\n\nThe 2,400 templates added in 0.7.0 were each checked against an independent calculation. Since 0.8.0 the whole library and every screen are translated into 13 languages — English, Japanese, Chinese, Spanish, French, German, Italian, Portuguese (Brazil and Portugal), Russian, Arabic, Hindi and Korean. The older part of the library (3,122 formulas) has not all been hand-verified. If you spot a wrong formula, bad default, mistranslation, or missing unit, please open an issue on GitHub — reports are welcome."},"ja":{"name":"FormulaBase","summary":"自分の計算式を保存して、数値を入力するだけですぐに計算。組み込みテンプレート 5,522 件付き","description":"FormulaBase は、利益率の計算、単位換算、ローンの返済額、配合比、工学の定数など、何度も使う計算式をすぐに呼び出して使える、軽量な個人向け計算アプリです。\n\n計算式をコレクションにまとめ、それぞれの変数を一度定義しておけば、いつでも式を開いて数値を入力するだけで、その場で結果が表示されます。計算はすべてブラウザー内で行われます（eval は使わず、サーバーとの通信もありません）。\n\n主な機能:\n- 13 分野・5,522 件の組み込み計算式テンプレート（数学、統計と確率、AI とコンピューター、物理、化学と材料、工学、暮らしのお金、投資、会社の会計と経営、医療と生命科学、暮らしなど）。検索して、そのまま自分のコレクションに追加できます\n- テンプレート設定：不要な分野、小分類、テンプレートを個別に非表示にできます\n- 繰り返し使える計算式をコレクションで管理\n- ラベル、単位、初期値を設定できる名前付きの変数 ― 数値、リスト、行列、複素数に対応\n- 200 を超える関数を備えた安全な数式エンジン：四則演算、条件分岐（if・piecewise）、総和、総乗、積分、微分、方程式の求解、統計、キャッシュフロー、行列、数論、特殊関数、確率分布、物理定数\n- 入力に合わせて結果をリアルタイムに表示。単位と小数点以下の桁数も指定できます\n- 計算式ごとのバージョン履歴 ― 編集するたびに直前の内容を番号付きで保存し、復元できます（計算履歴とは別の機能です）\n- コレクションを他の Nextcloud ユーザーと 3 段階の権限（閲覧／編集／削除）で共有\n- AI-Hub アプリを通じた AI アシスタント：計算式の横にチャットを表示します。FormulaBase と計算式の書き方を理解しており、質問に文章で答え、計算式はそのまま入力できるテキストとして示します。開いているコレクションは管理者が許可した範囲でのみ読み取ります。AI-Hub がない場合は表示されません\n- RegiBase と共通の、すっきりとしたデザイン。テーマ（ライト／ダーク）に対応\n\n0.7.0 で追加した 2,400 件のテンプレートは、すべて別の方法で計算した結果と照合しています。0.8.0 からは、すべてのテンプレートと画面が 13 言語（英語、日本語、中国語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語〔ブラジル・ポルトガル〕、ロシア語、アラビア語、ヒンディー語、韓国語）に対応しています。それ以前からある 3,122 件は、すべてを人の手で検証できているわけではありません。計算式の誤り、不適切な初期値、誤訳、単位の抜けなどを見つけた場合は、GitHub で Issue を作成していただけると助かります。"}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhOiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzIwMDg0MzUzWhcNMzYxMDI1MDg0MzUzWjAWMRQwEgYD\nVQQDDAtmb3JtdWxhYmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALhcroTzBFL/LOJ1mhDf1jrBR15pTohIt2K2XRBJWa2XIUEdXtNeA+GYvCSCqw3q\nq+1OB3FW9TtunuE/3rBAbcEJOOCdrJl65qPQS8Y4A/3OMvuqAZDimwbxOBtYxQkN\nhEfeQDbTuHV6DQ6FC06UtkTy4VCeZdW21nXC5fXeZIHVfC4mvzOMe8PD8akt2sz0\nZDlCIMqKgvZp1/V6E7BgC6Swb44Ty0PvqdXu/MjSksYMZe4ZUAM7znYyeB4ktchd\nxmEnbMYv8mGOY0mGSpntKiB6CTkAtCdET2M7F+mHAAqN9l9vctuAlPb+KLdDA1lB\nyPQAyxBVyNc6pK1Hiaghq6z5Ztx7tbvjE6PqpREjFP/V5MPjDkWtZILa76407v8o\n9S4wq+q8iUlU2jq0xpuk5mzusQEJTlnzdINVYy11kODAK+fBrc9zVVYLBpqQ35fM\nxxgVQ1DZluf7gg9NKaH9lo/Og4rcCxsWR1hRFX26JZcBQtysM5D/LV1AiCJkWFsn\n0NfnsMrBJrdsYT4ty9DmrPgRDp57GyiRBZHHYZYNCM9CqU6ITsHmQVYnnVToTdkU\nvr9q7v7mzNVTpXvX2liBBjojotcsoXXzET+7UkgPti7sRRdLC/hu33YpxeXWqkIs\n47zEjt49lmnT+TPfSAI6kp7Y8l/JB/m/NcsHfyHWYPCtAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAEtnV2hGJ6sZ6GvU3Q7Wny9T4v2Ef0oKh77WL+bHH+dITCxq1eax\nSFk6N5dhW3YrkTIa+6pq3g0Hm8sIpLZi5pFcvoG5uhiJBucB3pOUKG/2Wn1CeXsZ\nXpgaWLdikyEQjB6SVyCdvpdNxZKvhGPMZyfFtA1rvOgLnkh6yGBoxe1OyZCPWDmD\n3sdgrg6euEjaMN3qnHsT2kpk3VdU7n95uQimm0PiSjM2uuir4UHYbahw0jBs2R+B\n97dwztnFnhDM6uuAJaoD7ZlHnpocLxLUiMRXvSdDuiWuYkwtDpNN2fuYZCH7c8MP\nccVwdsvSjRkh9/Y8t6rTNE3FZK82UQN8o/s=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_openstreetmap","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_openstreetmap","issueTracker":"https://github.com/nextcloud/integration_openstreetmap/issues","website":"https://github.com/nextcloud/integration_openstreetmap","created":"2023-02-06T19:12:55.177207Z","lastModified":"2026-10-15T13:29:19.654498Z","releases":[{"version":"4.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_openstreetmap/releases/download/v4.3.1/integration_openstreetmap-v4.3.1.tar.gz","created":"2026-10-15T13:29:19.644152Z","licenses":["agpl"],"lastModified":"2026-10-15T13:29:19.703402Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"nNp9RVjb8oSZbUTzMZVEBMNhknFcP6YA99lPURZSytto+/+MCI1m1oY3JKss0OjWMz5f2li8+M7/0XvxkXI4QSnICeznPioeuaRuZTVWQG0yJycG4TWM/Nyvn4eEiuZLlG6GkoGv/7/SzOZt9qfXfccbXuvC1lMki6J3xdvRrPMl2qi2xFFCST1tAqLOOJzKJnd18EudB5IWz+tTW/dSjGqGu0NlpcSz0nc+4AXVga3gUAC80NS9tTtcZEuLXZjYm2RHXODFAfZ+3OtKxJDakmXy0QI4aEJlQBFxtW6IAWBevYQ1Mhspqjkj8/a0d4J3sNnTU4g/H5GA1eoL9NPg1lkBhDaC5rZWS52+0kVp3HP3oQb0Ab9K5DObuDi7j0jm4mnhlvbLXOrzb5QMjGA+7ZNjZcTpg5kV8lbt85lChzlzeFkojTcGUhh/RCJ+XWxapGlHKVR97m03QFrBDP7jXy5tLRX+1Fta9/oWSISRm1kurbH3H/RG9fvOQKR2NfB2V7qEhrz040xXpP/2uMVrDaqhvfNT7Xw3uNUteurPPYXPfn8K2T+I9hVHpvUjKqQdShmUbSnn88e8VdKN4TBGW3Nw/rnHyA+o8ds4W259aOXO14fQP/TbA79hAkrwI907nKEHsTgzr0nAIvuBHIge8dFMki25ZGEkS9UzWXfVRGk=","translations":{"en":{"changelog":"### Changed\n\n- Support NC 36 @julien-nc\n- Migrate to MapLibre 6 and make maplibre-gl-directions compatible with MapLibre 6 @julien-nc [#84](https://github.com/nextcloud/integration_openstreetmap/pull/84)\n- Update eslint config to non-flat, fix all eslint issues @julien-nc\n\n### Fixed\n\n- More robust parsing of https://www.openstreetmap.org and https://osmand.net/map URLs in the reference widget @julien-nc"}},"signatureDigest":"sha512"},{"version":"4.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_openstreetmap/releases/download/v4.2.0/integration_openstreetmap-v4.2.0.tar.gz","created":"2026-07-21T09:10:42.813600Z","licenses":["agpl"],"lastModified":"2026-07-21T09:10:42.874811Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"AbYWu2HeCpkk7eqd9ZP6r1xwhq4uJ032yH6DkVUdkM40BaxgXxk+baurRG6gDkhWiKH+fRD7x/NVph7zpC5dbaGKafgoMsrtLlr74VlznJaNiXSt8yBNK4H2v4FWwT+6wM2EvbYszGgHNY0gbCcj/UNoSkBbNKAQKgwe5r+4LxijIF22DKdF4caNdRSyCNC0uHIvI8PXU1Mp7BW3zbWx7VX9UypRA+DuEYPblU/axcUxR6dAFRo45tTTvjnrJTrG8dh0GCdz9779iUbjsDUQuQwOJKoVr+GVp2zgcam0dnikTDfvAKguxruSMqeboyfK0CvER9ODVOdNwJWMdA0Fb5wJvkPVquP/GM9v9zqxvt6dhKIHRjy/qXCuphxLhSnzMICl1+n7yHix2sb/ybOrh8e2yaoXapnRMgH0KZOsJmQMBFjp7boh4fiZU2MyOOKj7zMIGP6z/AdmmnrUA8Mp2soOsqVd8jhlQp3r9lDNnSZeywH7Qac6JsqmVwVrGZn4qJMuwDyMFnDkK2OYeAPUrUJzZkSZy5g1nXJZvxx5Io7rC9uEO0XGEjc505qhx7t2eJNGx9kHtzL8usSkp9AzsX2tkfmKoAW626RG7mYIe93QXC/7/9FgQY3UhhZb2dLcg8NcFSnaKMi67yTago7MnnAyh0T4QFydQEcTatqQvYk=","translations":{"en":{"changelog":"### Changed\n\n- Bump max NC version to 35 @julien-nc\n- Polish UI, smaller button icons, make NcSelect non-clearable @julien-nc\n- Update dependencies @julien-nc [#80](https://github.com/nextcloud/integration_openstreetmap/pull/80)\n- Update npm and composer dependencies @julien-nc"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuc3RyZWV0bWFwL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuc3RyZWV0bWFwL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuc3RyZWV0bWFwL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vcGVuc3RyZWV0bWFwL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90NC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenStreetMap integration","summary":"Integration of OpenStreetMap","description":"OpenStreetMap integration provides a search provider for locations, a reference\nprovider to render location links from various map services (OpenStreetMap, Google maps...) and a custom link picker\ncomponent to quickly insert a location link by searching or selecting a point on an (awesome) interactive map."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEFDCCAvwCAhH+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMjA2MTM1MjEwWhcNMzMwNTE0MTM1MjEwWjAkMSIwIAYD\r\nVQQDDBlpbnRlZ3JhdGlvbl9vcGVuc3RyZWV0bWFwMIICIjANBgkqhkiG9w0BAQEF\r\nAAOCAg8AMIICCgKCAgEAuoxvNimLRe6te86PI03acpmFcElOMvW6Fzk5miKR1v6C\r\npmg4eNwTuQlfKw4DeDfeIi3WdE8+2igErVwBSQ6WDqkaZtGUnO8sR8a0wCq4ofGq\r\n0fzqJyvt0un/3kFy7U1bbsLTYGWP0vrKg8pE23TcBq65Mkox8tyntqR7cBQ/seq1\r\nWye/pEb/PGtG4ik6I/ihqS/K7eQi0PPd73+ZsIwgW1un9P2tVYD2SJNykQAUtqo6\r\n06sg9OcRbnWx49oEB+urIeb6ht3nPnKEZWV0iCwh0XCV+Jt6MxjwIyU34vTLHIJp\r\n/a+K1Ycx2WuBSbAoz2jSCiz1KgsrYIdqa6NRNxtyzR6jwx2GGXEu4Pk+9ZSFvDPS\r\nZTu/bGzaypm25y1GZfy1ElAMtu2bn2Y9NkTw2S7kb1HknvMz7Owo1N+D2+DnZc2J\r\nDfYaqqRuyG6eJVKFLqgntJYWJF7pxdikWj78kQM2gc+3X7Tm9ynf4d++103mgQ7E\r\nNOap5ltqCRbeSO+ivx6JWj3IqO8zbWmGrrI9Q1IpjhPaf1eZ21Fsh4RGXNPazDLR\r\nqMsgiFKg8yoxPRO1e6hBHczhlBg+Dx3P5zJ1zIHWE/FuSYGt1Mc8qIiGKsXKIs0H\r\nwpU0AjHcguXGMlATU/MX4jCUphlw2fe92Z5ZXQGYsDI2OywgwBimjzX6qjTvnXcC\r\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAhhPAL5sAkf9oqvIJjzLoh6UFZLoKPD+V\r\nfdITM7HdMSUXsP/FbdatLgavU9HlETKRSp7Brgn4zXL0Khzu20xGfmq98MVDNo5h\r\ndgNErVTVv6i82HR79bnGVY0iIr/MrM9TZNRm5wG5XKF0DXKO24AneA0/KdoSo/8J\r\nfZ3vc+tvFK1F3D2jvof6nyJ7JqIt9cumFop/lUqhxOnsVlzAcZLB+s1bv+9G4BhB\r\nirv7vuDuc9GkLeoXcQyL1HKAb7ji4iNSOSsdQdOIBit/uOwS7R80wcqVgxnW3fo8\r\nbn9GOtPD76V5KfM478F/JP0JFWBfLonXsdNpvMtx0lueCYNHeL60LQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"majordomo","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/mziech/nextcloud-majordomo/issues","website":"https://github.com/mziech/nextcloud-majordomo","created":"2021-08-04T18:58:58.651959Z","lastModified":"2026-10-09T23:05:55.464998Z","releases":[{"version":"2.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mziech/nextcloud-majordomo/releases/download/v2.3.1/majordomo.tar.gz","created":"2026-10-09T23:05:55.455091Z","licenses":["agpl"],"lastModified":"2026-10-09T23:05:55.496722Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"M8lboO73gaUBaJSD6hIH36AtzHZjQFg0ugcsMuQne7OmBXo0S8JKsS9DORa6ou/fq/YKlLGCMSk1NxaKdusg+LJ+TmGbUYO51cVM2cl8djov8TLpZDUCcyliEbHYA9HrdYAqBXqW2QRcZtfbSO2rJ06kk3M05AsnB9b6e+/PyqKRtbUiDoEAQ8xn5cx7R6Xmz+AdAn2LHBIyw/jUrQeHfZ2SJa6iBU3zCpvfMAONKrCahrz9J/PQtSSdYO4K8m4szQmHf2Grm4guwmGJ2JGmGHiysU/ABjES+uGWSe9KUOpTxnSrH1KxBGl2Mixz0o7yQUzHi7/gp1HotVUrdBmGn2EyzJzhOUBspEqzQ6WgIT/nzeetz0JJz1WTvisCoEUBEpJVEN/A5LCNI0srbEJa0A9yllnY0D3sI5WzT4d4oxPUkvcyT4iliep5sgr8v4YD7gzjt41bss8QNWJK9yjrfGkuM1/J6e36fAYRuU4ZH0k4rahQEQLCGp+9OgeFlC77AtrrDGp22RM1Rc/l7xOTPhIhs8k3myI06ftjJb4vdK7y1S9kjwRXE9ENq0mg97FagPpzxQIlEzbuQCJeSoW0NXXWDwEIiGfL9hKRwAO+bp2PU8ueDsbE9oE+QsUNJyrCHrFTt044EcdZCB0Exmfv9TOoV+OfpQOqx77AFDgksmo=","translations":{"en":{"changelog":"### Fixed\n- Removed Composer dependencies overlapping with Nextcloud's 3rdparty folder. This should fix spurious GuzzleHTTP errors with recent Nextcloud versions.\n- Overall dependency upgrades\n- Verified Nextcloud 33-35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWVjaC9uZXh0Y2xvdWQtbWFqb3Jkb21vL21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWVjaC9uZXh0Y2xvdWQtbWFqb3Jkb21vL21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Majordomo","summary":"Synchronize users and groups with the Majordomo mailing list manager","description":"Using this app you can automatically synchronize your user's to a\n[Majordomo mailing list manager](https://en.wikipedia.org/wiki/Majordomo_(software)).\nIt is possible to configure multiple mailing lists at any list server to include or exclude selected groups, users and other email addresses.\n\nImport of existing mailing list memberships is supported, as well as reviewing changes before you apply them.\nAt your option, this app will keep your mailing list memberships up-to-date on a daily basis.\n\nThis app requires a dedicated IMAP mailbox to function!"}},"isFeatured":false,"authors":[{"name":"Marco Ziech","mail":"marco+nc@ziech.net","homepage":"https://github.com/mziech"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhGMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNzA1MjE0NTI5WhcNMzExMDExMjE0NTI5WjAUMRIwEAYD\nVQQDDAltYWpvcmRvbW8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy\njJbHYdFlu4fEakfW6b6s80y05drDLqPEdH5e+E5PujHnC7m9+J6lYzSSmHyNpm//\nN+lqy5BzarhTReikX2snMv4ZHGoMUQbbZKJ6bO/hCqlbtf7bXA+IpEOUlUYrxzIp\nSyUe29pdmm3f9UmKINGSV2GdnBXOX7qhOrJvQ3a/EaC0p02SHWs97+7GET3FOS4/\ntk96qys8ukqcLmHYGpunBarHFsIUkSUDRQO3i/j3tGLQTRyXOKJ29Ivg/CF4twVj\nfcK8kC9fRZAo2oHreeMkDG7j4cJ5fWlL0i8Q1RgO9H0G/ndQc1nPzxkAYgJBZArx\nX4rhHDxLUm88xCuMZo4p2Iwk28+3+lOhSUDsTlvo14NOayiTVEAOH5onP4F7by0X\nCsT0BluKtkmuYFf1CaPAacNT1pmRq2wy56we1yWTjViQKuuNXBwkf6N4tqtQMD/J\nFOebMFO7dz41EebjSo8AQ7Ik8SR3NzGVV+WwNqH4XlVliWjX+GP4L7AJNppwQYUg\noCx2KDZoFsbN7HJ4YuU9971UMJIgu5XfB9HiPtGQl9dWy/x5SPiwFURBnwiHd902\nMw2DH81Df9XZjuEdr0+miFKRb0WBv6SIlDx3+wKWul24nHKFA+KNffCIq0GCdeaA\nXyw7E2DM5OOHiLrzR103BEyqdG87ZJXRBRk0NKotwwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBBH1edV1HLCvEiWS9qqnd0quMrJjQDQXLKo+2p6Q6FJdrNr2uXnvnE\nYzal3zsSBN+fukeo0eJkZSiA+M/CduuFSKCj9lA+F/byO3lsCKr3q7feprNBkQdy\npTMobEbrI0z7iAKgOxt8n9ntiEkts7bvo903Gf1T2scqemb/1z6pHdrq9pmU9E6N\ntNoM1izu8v3iy2lvMQJ58h7Mspk8RV9X8sSRVZ4MhoqNY5ayw/YMiDvPXvWRNg+7\nuEaLFDSFH0kHygJuLGj6au3mjg07fMY2gTRyYoW28SL5F5O6M+L53WNUyMCPjo85\neNRWH2Wymabhay6g3eV9OExmBhzs7hjT\n-----END CERTIFICATE-----","discussion":"https://github.com/mziech/nextcloud-majordomo/pulls"},{"id":"integration_forgejo_gitea","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/njordium/integration_forgejo_gitea","issueTracker":"https://github.com/njordium/integration_forgejo_gitea/issues","website":"https://github.com/njordium/integration_forgejo_gitea","created":"2026-08-19T14:28:42.882291Z","lastModified":"2026-08-21T19:25:36.276586Z","releases":[{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_forgejo_gitea/releases/download/v1.3.3/integration_forgejo_gitea-v1.3.3.tar.gz","created":"2026-08-21T19:25:36.244500Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T19:25:36.353046Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"C06h2eew+64iKzIE5Mn51A8T2kdxxxxHxvotslPaJNx3qzTKp79XYBwETLvH46u2SbMSv/hTYg79yHEt9C3wy72PGkR/MDD4knJKibCaAS9q+lqVRJtOe6FB5LikXlX/OameR119hS2UPhRZutauTtsM6fYVZQtDWyFCE9eT/Fsnolm++mYPpoFkykkEAfbLCkABdK3Is+HRGkCAncFpoHp8xLEs53XMVJYvUbBQ9tpJUUfZR2kvVPzRpqIGhFT25hXWfs9HvGcdaZ9rqiDl6iXWiL3hAM+j70DmFXq1D9UzorfSEv2ovIalCKgjuRFfCoA03/YOXPfWt/PB+hhZKfpKqtzPJquXsjVda9fljEDCMOTcb44TlK68now7eR2AltN3Ca2cL+Q+lB7jPdwIe+TkE8uHSRoj4+LhZdz5+mLEAHL8lB2QVTADe61tLwo8MDXgf5I+eKjCqxm5SDeGdaXHTcgRB5Jzo/JQvRanBQWm3If/yzffEobDOJsXNqp/Bq/Qe9O3sb53pgacy9jbwQBHzKpXKxr+iENHzjCEinloYApIlDC1c1hANN3IovXpFVYdyxTNi3gfl9Omq6OR3LMXr1vgie68S8gsvYN+rD9fYSnkkg36oFGu04bSA6JOBZZQKn3lLTuDC6d2MDKJrn3TnfhW6OEEIYHfEO1PmDQ=","translations":{"en":{"changelog":"### Fixed\n- Widget repo pickers now list every repo the token can read, not just owned ones — switched `getUserRepos()` from `/user/repos` to `/repos/search`."}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_forgejo_gitea/releases/download/v1.3.2/integration_forgejo_gitea.tar.gz","created":"2026-08-21T12:14:26.673322Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T12:14:26.728505Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"KdzMRJn817XGHF4RNkAdOVRHTcFzvFD3xyhbjze7E7FJCRL0pzdoiuT2aI1OxnXJjHdufDIpb2pxXz1zdgcD5ro4lXDNeGhh+d2WaRrHNmP24sQCyZXfNNgYk/bnvLmh7i7T0rPcEICrmlM3dVjI+SSYr7S1H/ZmW5nTvg2IaPhqsGPVH/oC4eOqwkTlfTI/A30ctv2NKRgbCa4Ne9yq92Myw5sxOAnwUK6EeGpHoveGcP3Tbciqv0kvLvEKJgGAes/S72J5HRuCthVrGsgrMoI5s0K9sPxPbQrb5r5fpBciX/0nm8VBRx7PjpUyHyADyhcbo5xUMvErYOZFIZ+klV8MOdbJRNpymStoLM+er8hUD2ByTYytZqOOVWtYK1Et1LFzsf583LwkLG/maLW7H4HS8lAK/ihGrszBSlwWiLvpoO5mNgx+74uanoFgMkl7pzWsTIO5yAbYN9uDNju0swLxZA5gQ2hMlrdB34Tqt0VxN4zRIEY7V6uGJpMPfykNbVUCqEm+F6YCycYSdIzLWMIoyeY5+XGfI55iCJTjlDjQ2cR+eLbSkYjs3ACIrL9uyoY/xiJMqKgl5VabAZUFevRv4dbPtwjj7W4mO5VoN43BMK7oTjhKnGDz+gym7uhsG7VsIvJEPWF6iavwm1mbpIQVDLuRxzxjEhWDfRea9as=","translations":{"en":{"changelog":"### Fixed\n- **Release tarball no longer includes a `pax_global_header` entry that PEAR's `Archive_Tar` mishandles.** The v1.3.1 tarball built via `git archive --format=tar` had a `pax_global_header` as its first entry (git stores the commit id there). PEAR's tar reader (used by Nextcloud's `\\OC\\Installer`) silently produced a partial extract, and the client-side install failed with `Extracted app integration_forgejo_gitea has more than 1 folder`. Release tarballs are now built by extracting `git archive` output into a staging dir and re-packing with plain BSD `tar` (no pax extensions), matching the shape `integration_suitecrm` uses."}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_forgejo_gitea/releases/download/v1.3.1/integration_forgejo_gitea.tar.gz","created":"2026-08-21T08:19:54.930090Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T08:19:55.084623Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"KWIwFhDMVXXmgic+02IhHB8nPApPf4gps9IQwkAGVS2Dg0pHmf8gJMtKJ35MY0e+xCL0jfJ08AGpRWsMFZdZpLhjx0CXVsq78Hz0MjSeZu5hRZuQzumoicv05jTNIwxb+hF+jCLV+aM/gqKr8/dW8fE51URAS/RrlEKV5SPjzAOfUWUNhY1QzHAS4Oa2OKqgRy68fmLzXfYOpiBgHA5tvzgjwp9U9oj4055evTU5UtzEyjoPv+fKtwGOoRROVTOMrYQ2r0VUV9UvQ0buWRTDWcob+rD2iq6PFP3flhsSdsjq/dv7CA002SuP+OaDwHeGU9opgGY6ulKQMuT8tNQKUoj8hbURVgOqGTLdlBvQzAB7PZBGAJ7uKeN5zwdqXwuUDHfGpLqOmg37zIqRtE4zplJmRDyXLaUL8s3mMpoIIw18LvJe+Qaqy1o2axlBTUA0898iJCDJ01xC7n4JCON7sbnXdKWSRWAWrQz+vTOcw30uxf4ZoUZ5SrfHwO8uWNBsVuxvxrRXYHjtTulhzJ4T19GuHuxBydQ4a68I8VgaEB0fbO5VpM7uhP7NZkd4+CUIzK2Dl6WepkSQTuB1EyGe2IIeEHxYB5/1n1H8cz7K48YP1L+PnDYPGV1oS8CljprOB1YqUPSSCbZuXxzR4EILJovC7VnxGhpNgui4w79VNqs=","translations":{"en":{"changelog":"### Fixed\n- `appinfo/info.xml` `<summary>` shortened from 154 to 126 characters. The App Store validator caps `<summary>` at 128 chars via `apps/info.xsd`; the v1.3.0 upload was rejected with `Element 'summary': [facet 'maxLength'] The value has a length of '154'; this exceeds the allowed maximum length of '128'.`. New form drops the \"pull requests\" long-form for `PRs` and merges the trailing `and a contribution heatmap` into the enumerated list. No functional change; App Store metadata only."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25qb3JkaXVtL2ludGVncmF0aW9uX2Zvcmdlam9fZ2l0ZWEvbWFpbi9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/njordium/integration_forgejo_gitea/main/img/screenshot.png"}],"videos":[],"translations":{"en":{"name":"Forgejo / Gitea integration","summary":"Eleven dashboard widgets for Forgejo and Gitea: issues, PRs, reviews, commits, milestones, repo stats, notifications, heatmap.","description":"Bring the parts of Forgejo or Gitea that people actually check ten times a day into the Nextcloud dashboard. Signs in once with OAuth 2.0 authorization-code grant against your Forgejo or Gitea instance and then keeps the two systems talking in the background.\n\n## Dashboard widgets\n\nEleven widgets, grouped by intent so the dashboard reads like your day rather than a list of API endpoints.\n\n**Overview.** Six KPI tiles in a compact grid — open issues assigned, open issues you opened, open PRs where your review is requested, open PRs you opened, open issues mentioning you, contributions in the last 7 days. Each tile links to the equivalent Forgejo dashboard filter.\n\n**Work queue.** Open Issues, Closed Issues, Open PRs, Closed PRs and Reviews. Each carries a per-widget repository picker (searchable multi-select), a filter (assigned / created / mentioning / all), and a refresh-frequency setting. Rows show number, title, assignee avatar, up to three colour-matched label chips, repo full-name and relative timestamp. A \"Show all\" link at the bottom of each widget lands on the equivalent Forgejo filter page.\n\n**Activity.** Commits (latest commits across your selected repos, with an optional \"only mine\" toggle) and a GitHub-style contribution Heatmap (last 3 or 6 months, user-selectable) plus a stats grid showing total, this week, this month, current streak, longest streak, best day.\n\n**Repositories.** Milestones (open milestones with progress bars across selected repos) and Repo stats (compact per-repo card showing stars, forks, open issues, open PRs, latest release tag).\n\n**Notifications.** Unread Forgejo/Gitea notifications inbox with type icons (issue / PR / commit / repository) and a per-row mark-as-read action.\n\n## Auto-refresh\n\nAll eleven widgets poll in the background at a user-selected cadence (Never / 30s / 1m / 5m default / 15m / 30m / 1h), pause while the browser tab is hidden, and re-fetch once when the tab regains focus. An idle dashboard tab left open in the background does not hammer your Forgejo.\n\n## Brand-aware UX\n\nAdmin picks the instance type (Forgejo or Gitea). Every widget's icon and title switch to match — Forgejo orange horn (CC-BY-SA-4.0, Caesar Schinas), Gitea green tea-cup (CC-BY-4.0) — so a Nextcloud instance connected to Forgejo reads as *Forgejo: Open Issues*, a Gitea one reads *Gitea: Open Issues*.\n\n## Security\n\nOAuth 2.0 authorization-code flow (RFC 6749) is the only connect path. 32-byte session-bound `state` parameter, verified with `hash_equals()`. Access and refresh tokens encrypted at rest via Nextcloud's `ICrypto`. Bearer tokens redacted from log messages. Generic error responses to the browser; upstream detail stays in the server log. Instance URL validated on admin write. Full OWASP Top 10 mapping in `SECURITY.md` in the repository.\n\n## Requirements\n\nAny recent Forgejo (v1.x, all v7+) or Gitea (v1.19+) instance with an OAuth application registered. PHP 8.1+, Nextcloud 30-34."}},"isFeatured":false,"authors":[{"name":"Kim Haverblad","mail":"","homepage":"https://njordium.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFDCCAvwCAhPWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE5MTA0NzE2WhcNMzYxMTI0MTA0NzE2WjAkMSIwIAYD\nVQQDDBlpbnRlZ3JhdGlvbl9mb3JnZWpvX2dpdGVhMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEAtCiJyyyhb73Xy2Q6R1FBIheBYt/5dg5shq7xfwYJSgMZ\nT/WPbwFZOLgMRy4GwpM1T7CXnGAk1WWVwX+pkCBMzw9uI1ak269yAjbJu/YEG7kR\nqezNtBJKVSwUNWSZfeNVOTVksVwFr5unReXhENtpmgL1Dhgh+yNDF2+27QMrYq3/\nHc4nZdD8aCP7fldwVqmjte1+5w3AfiULiTA5zU+ZJvI2dGt2Y6vhsXFOczJb3QER\nzMMuHw7HTgDFNq5MTI+tqeie5XJchAXN7CY81+8U5ABMMPlBsTUKDONpd0o44Va1\n317C42h0GNz5oKMKA3QF63b0fU8dzxPCK6c0UZmsdyBZ32CO+36xC8pUP+OgZhwy\nmA129IdPCEORNB8qRinEfo1NDs+CCaTyeSk5T+5Plh+gv1s8QtZ07hqYQ2xhRBal\nMRbXrRDv7JrrQ+pyBpRpknNzUpd4Had2c3+gAeZdH0EITTuuU+T04h7BsY1wtbAn\nwN2cAWtYLg/csYwFirI7ZRT5E/bYsb/VK9x3vpHnH6kQxc6chhLj2z8VM7j9XPCJ\nclhrYqm6F5WhpxGvuoxdp7sfdJhBIzMqY+eZWG7qfXxiECwoKwDkCsd5Uf/twv/t\nOgvPCFerUtkCCBochO0ABm2hx44EPaDzM2+tryun0EUaqH7FZMOeD7aTEZ5w+xkC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAHOwACVT82ftl6PSEpoogG1auRr5UANu8\npkdDslt99c1v8p6F/dMD0YsI9n6xtBeldrbfqYMxmCP4rFXiW/vT53MWS8F3YjIv\nxtAS/RsEbGmpMLbtNl6Sw5OGgDk311FRhrAelRrmrWgaBZ6Xy20JtRVVDer7gLd/\nunRo+fAjvXTIuwmqJo0f1NxGz23hQicxTclrKRh8qy6o9GcUa8m9kWNRakFYCb5i\niiSadFL/t2WFBz0DYvoaxFcgPePppoQhzOLpDadd/L0u3tzL+tuiJXJ0+LfkOIi2\nl04nVx5ME75K7xymm5M5R3LmSi388jxHxX0HJL2fnjYEuG7rJ9tFdg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"collaborativephotocleanup","categories":["multimedia","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/37-b-j/collaborativephotocleanup/issues","website":"https://github.com/37-b-j/collaborativephotocleanup","created":"2026-08-24T18:54:45.420583Z","lastModified":"2026-09-26T10:00:53.081652Z","releases":[{"version":"1.0.32","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/37-b-j/collaborativephotocleanup/releases/download/v1.0.32/collaborativephotocleanup-v1.0.32.tar.gz","created":"2026-09-26T10:00:53.073491Z","licenses":["agpl"],"lastModified":"2026-09-26T10:00:53.118531Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=28 <=35","signature":"fV78D9YvK1yp7WFyXuB5WIiGdFw/S7ph8nHMiJfikrPfBJhhMenPpcjXjXxNJtndMOkE2QWnTyodp9lAfuB9VoiDIfh4S/QcNkbR9YUCvEnc3zvOx9NwaDSlKamfmcP5y3XZ6jW/BZTHvqzumBSq0JCnlpCDmHm7QdqafrDcT67GA5IIhQ3+v74MjOGE5EjiE8GIR/hYw2vppilnjYKS/ERqV+smytMsftsLyC49V2RpbCP9QILVM23nkywDlY9vEheRql77SSaDUjR43ejH/TlIcv7tG5LLV1wNXkJgrGPPJ4mM3fK6YnmhXG59eEh7OIwjOA5y26LG8eVE/iz6imCLo9atIL66OMsR7FOzg3bcQAE6dfAZszcCPp/lh8Kjlj9JWIr0nlInJ8D4d66gWcxu0Fb5XssW91rNLQNp4pe+W1wHc/GGAB3fUNkOt5dQ/fpL3bKUxrIe8/fSrEc8AHKlvzVCTSMj+W8Qq7d+V44sOVMLHCmAvq+kIUQQq9OpXMhWckbljYbLQQikwc1WdjJRCzrAjMyNiFTMIZHFhkUlpu7TTmIr36riiAxsn9hmGSR+iK8pnHFD+qY5Ipgtla+ls0b0y45VsoCSci4jmvFFxQ/6vEZOaVyfzrmCJm8UwI9Nw1mdieznyybGuhm+BDiCpIDkYsCRd5SyLUsVFPQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3LWItai9jb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMS1jbHVzdGVyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3LWItai9jb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMi1jbHVzdGVyLW92ZXJ2aWV3LmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3LWItai9jb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMy1kZWxldGUtc3dpcGUuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3LWItai9jb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtNC1rZWVwLXN3aXBlLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzM3LWItai9jb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtNS1leGVjdXRlLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"PhotoCleanup","summary":"Collaborative photo review, voting, and cleanup","description":"Collaborative photo review, voting, and cleanup for Nextcloud. Teams can collectively decide which photos to keep and which to delete. Features include perceptual hash (pHash) duplicate detection, cluster-based review with swipe gestures, a quarantine system for safe deletion, PWA support for mobile, and configurable voting thresholds. Exclusively vibe coded."}},"isFeatured":false,"authors":[{"name":"37-b-j","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFDCCAvwCAhPdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI0MDgyNjEwWhcNMzYxMTI5MDgyNjEwWjAkMSIwIAYD\nVQQDDBljb2xsYWJvcmF0aXZlcGhvdG9jbGVhbnVwMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEApu5dcQIwWS+jQkxSqgDoKeram05lb4rnH1mbhLb9xHUT\nNJ795C82kps4Az8SWddkFhc0rEAaJOAbnQJScRso+BiOvuQ1x7Qk662DodSKetcK\nSsU+RTPTkN6DDi0EtZ/EvZlzvBchX3UGJvH6A7OS1McBTi5iIcpl/olM7T5gmEsh\naURnjkeUnzEiP3dSEhbJxTIKIBMs/GQiGYEToz5b90BHkfb9h77xf8480MCEeJoE\nlYtsomzg3gzEtvtNv/oqpaZQ1KrSxpL4xjICzQs7xLH2y+y8owDyFGB9gdW5Ik2O\nqYqMiWpCrOYv6IKsPqWliezfe5PhDKh6T0qPOj75sIYPlik/m6NX94OFQ4gw3HY3\nIk3Z+KUvC/2CjxBpmZl/xu9uoklbHqbIBGI8H4rqkZcvkFfeBxFb4UEkQHcNdGej\nt5o8ymdj+si4rTDY0gIbJTDo/JUVMYJ5HFgb1lx2ZyxJ5fKruaE5C11JqTsNP28h\naOEbiqv+PEXxzL6sxV0odhCv9FSYIprWlhaqP6BNi7rhw3Z6X0EpMkG4gYbdFs86\nwxnpJFMx5GX+lGEh1ALZIIURohczJMAqtxJE/5pCDn89GC551AACRCa2gQOcJc2j\nh0MihrxVmsUk8eO8ZU/PhvJwREwKuJH8B8nvcNVe2uqlcrZ1HRw7FSUNlJ9D6aEC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAZdAHTtXRhYFNP8Bqx3p6UR90TBkRYEKe\nO0oCXxWzrJuXBTPAWppvVyo9ddtdtJYLF3Ad9q5yJ9+1dehQS9LYDdh1z2GxbqcC\nTZu4DpGrodXc2wdsgCFCGncvHjXe2hF+UP/VFcCm0BxyXiZ3zX+s1J5ypwZ1gINw\ngENWSGwsnt8ZP+XHBHHYorlfj6Pp53KOCmwSmZqtKK/uxJwyI3cnyOvy9YXmQYJz\nAKUtqTLMDUYAcmX+atv/QSfy97cDWEV/omJh6SAFVttRO63TH2+3hlEhu6gmpfUh\nyihdyvar8OU1mOLyQDyrMnW1IcCQN1mkYeUduTrUSZknozN9weT5Xw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_confidential","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_confidential/issues","website":"https://github.com/nextcloud/files_confidential","created":"2023-03-08T15:26:20.936303Z","lastModified":"2026-06-24T16:20:39.262001Z","releases":[{"version":"5.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_confidential/releases/download/v5.1.0/files_confidential-v5.1.0.tar.gz","created":"2026-06-24T16:20:39.250569Z","licenses":["agpl"],"lastModified":"2026-06-24T16:20:39.302428Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=33 <=35","signature":"cUC+gHzWzhBpZ3tJGf6QXZg8nuJcMh32YCzrQYxWklgiFKkfacdRI9eh6gLQKqRCWoWFgH1nrmI4Vxnv8oZw/XkDW/9/kHZm5ZC5emamnIRTwG4PADkg9Xx12DM6QnpVd1ZQnC2EY6rEtXX+FW/XZT5aFMghz7/FSVntj1lfKHJ7EU3kKKuFAq+vwN7upzlqUgBt6LfysrJ+YqR4jsUdhOHmJ1L/OEcU1aqhNDhwjwm5bZB972D7m2s6DHVH9CoS+voq1pzn9FTHhdXl1FirXyhn/4zdxayoOE5w1IjHAkvbz8YPCfPaIRwhY99MxbMPQG/3LY3Da9MbocXhQ4b367xUvXXzT5FgJYma90ZJ+dmk7bmELWBXnEZ1x96GBO3bAW2anRiK0YjK6qffjtj88e8ikh7Lyew6wMZr8TVkm5EuLrogXTReZlbGJD/mm7XQhnY1OJ66o1SPRJLk9ou8xfbVu0OCBPTICiZuavVVOBvLRcPBt9Ij08RV+k6dz9q+rKAv15SKe1qRW+az6kfm6/LyEY+feZc6xepCrYva1CnDPr1WSlpmQIHJkqd9DkTShiQoaOXCPzUaAcdqgQ/GD7WOYdBtEeAiPZRRK7wwaIK75iq26S5Xy5lp+y1QykqSq37u1Afw8n+zEyzLuFa/IdFVmfeP5DOb4gcWvtqpzFI=","translations":{"en":{"changelog":"### Changed\n\n- Support Nextcloud 35 [#247](https://github.com/nextcloud/files_confidential/pull/247) @nickvergessen\n- Port away from OC_App [#241](https://github.com/nextcloud/files_confidential/pull/241) @CarlSchwan\n- Update composer and node dependencies [#261](https://github.com/nextcloud/files_confidential/pull/261) @lukasdotcom\n\n### Fixed\n\n- Create temp file copy without `#` when needed [#262](https://github.com/nextcloud/files_confidential/pull/262) @lukasdotcom"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Confidential files","summary":"Workflows for handling confidential files in Nextcloud","description":"This app allows you to define a set of classification rules that will assign tags files.\nFor each classification rule you can define when the tag will be assigned to a file, based on text\ncontent, BAILS classification metadata or Microsoft Information Purview metadata."}},"isFeatured":false,"authors":[{"name":"Marcel Klehr","mail":"mklehr@gmx.net","homepage":"https://marcelklehr.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhIHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMzAyMTMyNjM0WhcNMzMwNjA3MTMyNjM0WjAdMRswGQYD\r\nVQQDDBJmaWxlc19jb25maWRlbnRpYWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDfIq8ouZxJcvRdE0RLeGyuw5Hu+lhSLkp3NITBtFIQ66NYcOlWwYRs\r\nYWoGRogqBwBEEdPLlzT7NjF66DptxeeB4hgzC3/xlngwsXa7OrSAmboVspTPA0y2\r\nI96cvpPT/QHfy0z4QKBU0oZ9GageujknMR6joXdopPqzxxTM5cU/xL45bUE0hh/0\r\n8KQFyzBrDVIS382SeVdssyIfSD45jLOyEk46YjWHEay/+xE85K9fxF9JqrHf/1rA\r\n+9wu/RWJO1SpA6Xkmhtn806mE0dWwUhi7zS7YsFay+LlMKbzYgdio6CyDjXrFO6w\r\nr7B/PzrrecFPtre8LjAOR073bAd81m4fHwz9veWdQEPlVDRuYXUQUs0X9N3eGLVA\r\nnxieQfb2+9iFSo6u8Vy8qvZkVe94iCUG5M8hIzwwFcCUTTALRbu3K9ayVBZgftvf\r\nsJ3XQwekOQHFjTr+Ell3J9AoJxHebuviTKLQ8MEgn1sfeYvcejT66S5ReKQb+ONb\r\niyIqg4YTN6OPb5eyc/X/pf8mbuYrPIZUie9VhvJfX4W04ty7DHEY0LMmRxKAMVGo\r\nY0HZ4mKOON6Q73jKfz/GhRRSvafm7KHSv2eL4h6cWMji1bOGdOEIjS9TS5WYjI+L\r\nksTqeDyZO8jWMfmaS96nBRF8C3kNSEQ2fyNKonbXcWQJTKjFSGZmlQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBq9V8b/l7oGd6ghPPjXZcSO8wzwXxUcmtdH/pQGDHR\r\nbKRH9fu5pBkl3QYXZbNaaaZN8YiUBW5jZje9kNt2tE9W7pUnNiWxlyZBURPL8Gf0\r\njIz/QT4wUz1blVylK+ZU4pvO0dn6bRpfSozD7HGSXFBBgAdWLZFM1G3IZlRYuW2Q\r\n1PresQRdFTJr+YO5wTVJpVlgLJmP8m/HiidJX+15E7NWWfRwC9Z4s9aicCvLKBfX\r\nZzXZrFbdLiQFU1k8aHruyei23h4hkduxsRAXK1O5DA1Fqj6LdZmcrhU8oinscnMJ\r\nc3Q9ihEwo3JUS0e3pzq0sT1LksRboC161578DyR+FSHV\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"memegen","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/memegen/issues","website":"https://github.com/nextcloud/memegen","created":"2023-09-21T12:48:42.483203Z","lastModified":"2026-08-18T20:59:12.748868Z","releases":[{"version":"2.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/memegen/releases/download/v2.0.2/memegen-v2.0.2.tar.gz","created":"2026-08-18T20:59:12.708900Z","licenses":["agpl"],"lastModified":"2026-08-18T20:59:12.808091Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"B5bjPgbnbSZWrzPcbFPkCj5lwaeHcXeAmGeuM52EuSTo1JBJvk7egPLFsKVl4aDT3yxO/I8WYs5HFd4qEvaejr8vC0TCNqgQ5GL2YWjANQn+IUqX1pzXALFoHF48kWKyZg/nQQV1MEfhFtCQB0xhyL2goXSwYCVhlNNnbxL+sAJHwfGTbEu74qyskFuvkar50/vSuAP21ybqYLKPoHfRmeWGkxRGczsdJ1F7DrbjbfzwUAcxlb8/KCg5LJp4/yg91Kn4fDBBWKSs+88KUqrt3sT45H6PFt2ndbcGeYCwJQOIN6wu3JJJHxA2sO1430I5Xoo2IXVwoGkP81AlQApXS9PzoUK+KsNy5oaw9B77Y2YzGrnDXR91Gnmj14HlMUt1OBwfotYpzNQPBmKVZJIMPSDCKsMx5sufr4OfRDdWhOz1h0GsNRIc3de1TI+y8T3uBYb+3Vd5PR9u8meXFf6ITymmd5EXQ2CVsZ084M0NYUXJy/uxJqmN9y1qesbq1kfHYhXTREaT0TQhmvq2B3W0lfBbzFaAuWXO7EPy4EN9vf8AKi8bFPEBcwEjOdpfp6cJyMVJhIv+aO6l2CbxkaSyYcyKXdN0WG6AMqa22taBA8jylqz9p5zIOwxLYRg25hseuH6UzLAuFXt+ouJ8DPd22NY8wuxE1x0HQhDWDb0Jevk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL01CLUZpbnNraS9tZW1lZ2VuL2Fzc2V0cy82NDQ2NjE3Ni9lYjRlODI0NC1kNWY2LTQ0MDgtOWQ4NS02YTA0NDBjNWIzYjM=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"MemeGen","summary":"A meme Smart Picker","description":"A tool for picking a meme template and filling in custom text captions using the Smart Picker functionality."}},"isFeatured":false,"authors":[{"name":"Sami Finnilä","mail":"sami.finnila@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhIvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwOTIxMDkwNzQxWhcNMzMxMjI3MDkwNzQxWjASMRAwDgYD\r\nVQQDDAdtZW1lZ2VuMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvag/\r\nc55JexVqKJ22qtnbOBF7tRjmTgMqpfEKsPG+TQ0Jep4KJIP3QQRxOTH8BAkUuyKR\r\naT1Gu4BOlpZ0otUgL36Mu9b1IbpB/GIugkWQvQ1zVL/mGBNRYWKUMnSyxdVse0KG\r\nnw/MsrGJbQysZzO4mxyr41VRNNy+Swk+x1pjkW8wjUQNmzxZcHb9uWf1iVvou5br\r\nYu2nAmIawIQDXud6Q1ukiHm75ZTKBTiOVu0KcqbEFxT4qf28N1vysm2CL2CztNtw\r\naUOHsXQWCoKAr5/No4zDkNRFef6hi964h1gpTLrQHRrsz6NXRAM3ymhRYd0wP/Rk\r\nWRFWC5JiaPMb4nhaYd3Q428/1hgDfhvxVBGMSdQdL+308CjShMfmQXlWQtP3iX0s\r\nvWqmRiPM3nklE5V1Z5Fden+scH9Mu+2H40KZluNqbz3Jo902jVrfNVP7f3Fo9+x5\r\njXh1KnQSMzXNC81ufn78J/Gb3+LTVVQc0uhl6LWh6iIDXslLUCYyCWXl27dx2IYy\r\n0OjLCsrFDhurrYmynlxiqqlwVcj5aOBsOczMGwLfoVOHXwaGP9v5LmTVhiGA2KA4\r\n+qpU9XFO57ha2E5uRHtoklxnAh/DM6JVnmceQrwkmx9t7DDxNgeqHj3+zbPbAKiY\r\nj0sZS+oxcaZFNheGBpFYTDzVyfXByksbpPT9IC0CAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAB3C5Ux8El1Q8FgyMFEWe5wohm+pjDWe1LRSmsegHfoemZJSK+Vs+omCV\r\n8E4H6CfDFqWlGCVc1lgSJ20noYYTfrYw+p/snEoWNwrS+IhakC/vkKa/51za2Lkn\r\n9ynDB8uO9Wd4bSACvbrlGUcoKICvRGESPuK/EyeUI0cUQHCpZ8CpQqfB3NFkfyhK\r\n+rSrYneEYD7fAQDydiP2S7vNhbANowk2oKi5Trp9HXXL889slZLQxXYGye2f/o0H\r\nymkpaDP+eJY7Bumf9pJ1X0YP5gq7BfU4eoxA5rZ6UPOe0/TYl+oVAOlndXl6roU2\r\nkhSt3ukCj1x0Q6Wlh1ZFAoA6p/vUSw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pomodoro","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/duketjs/nextcloud-pomodoro/issues","website":"https://github.com/duketjs/nextcloud-pomodoro","created":"2026-10-13T11:02:59.560465Z","lastModified":"2026-10-13T12:48:42.336849Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/duketjs/nextcloud-pomodoro/releases/download/v1.0.3/pomodoro-1.0.3.tar.gz","created":"2026-10-13T12:48:42.331885Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T12:48:42.381131Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"oegb/q+LK4vw9Tf5KEMAqolT3veg+yMHqGWXbtXEUOSbufzWzUodxIZCe3sjKaRf\n/cO3zujmMbuoPC3gm6J3COEVeJGp4b7WB3r8gkOf6dvXNE7usaEWOiojkVh+IfBj\n17J7f1eDc90qeQi6BEeGUoS2ErHvEdzVU2tJs9TpUyDmtwk/0mdLsvumV2Qm2UmA\nQyczWSQitQav8YxKB43JQJx14JFo2/DfvDAGRbW/6GOaMbAhgixpqeoyc9BpF0jr\nLc7r2Hk/mYJ45T0cnHLej0VT4dSBPqNA6X59NVjYNT9NKNMFY4lYhVZq6yWCg3Kp\n/jjxGGFwfpcAdxoVmEbj3yy7nj2eiTFbWwjoewntHIZL92aa2kOheCxQwICn+0ds\nOqoZKyt7tIgAWNKE3FeAfoOcdVoLwBM9GAo7BXOv4L2NSjmAvHzUwXaXZaESQMrj\nCEpP326sPWFAbJPdl9JzpAmPfrw9uYf9RIUn85sPMbJ0SkAUWwDvd/QaXTeLzxyI\nc6AjHazOarBcFVUEzvkd7p/OFqv5HoCxXxnOeliy92DVyM2/gqy2ZdRTBYjoG0Pr\nMUmHzDZBpS7t9mH+343z9hUWYmnRqeyQYr+q/f1tnOyk1q9aPrxxB4SDLcK3U4SG\n/ZKulgenL4905Deei9rrJ/4QdeSWWpw2nDD0e133fT4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Pomodoro","summary":"Pomodoro focus timer: pick an outstanding Deck card, run customizable focus/break cycles.","description":"A Pomodoro focus timer integrated into Nextcloud.\n\nFeatures:\n* Import outstanding cards from Deck boards\n* Choose which card to focus on\n* Customizable focus and break durations per cycle\n* Set how many Pomodoro cycles complete the selected task\n* Notification when a focus or break period ends"}},"isFeatured":false,"authors":[{"name":"Jokersmile","mail":"duketjs@gmail.com","homepage":"https://github.com/duketjs"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhRfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEyMTI0NTM4WhcNMzcwMTE3MTI0NTM4WjATMREwDwYD\nVQQDDAhwb21vZG9ybzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKhk\nCZXcK8NYsjKgayDEKzCRoOlg4Q5QCMUcJ0363UBqHDmK66czd7ueNvUQB9ZVvoMW\ngaY+g1ElH1JgazEJyL8MQ5E22IV0rDP1X3mq/BxW9YfsIrLuXHCdlzB79KABqYyr\nkBScT78WdSNzeH57WyZvhyrWvEZ9eHWFFmCmzGXsvSP6kA7uymoNMp96vv9ZJlAd\nzQgiD0bJzK2J/RC0REExYOTEh8SA2IUTMbbTSS8UQBlPaPKw8yzvqkfTTjU/ZBWr\n7OhT56xVd1NW3z6GAS4t/Tm8P9kUJt1T+ZUfdoI0I/a2KKQ6Qh+Wq/Lwyzm+cn76\nqhyCn4FAz1UZ8yqQZqAohtBpFDkgkAVHUpAaBQ7gyBZ3gf3t84lBY5ncu6oCEi/n\nXXRh7kBvjH1EontU9dJQE/rApG5SAHR4CpH9W6tw2QzWt34dCbiDbttiLp6vH6Qb\nTue6I5NOJWyGVbFs/SOVOUm+CXA83fu5z6PFfdRjzj8/CQFYgifses7U/A1M1fZE\nmr3k5lzrAcJW6P/sOMOIGztnaeZHNvcxSwbbJVhSl8+lFQ5UjEKe9+p7/FGTMnML\nA/38EBUvt7JHvJM7neVlimDzvSCy9aVpsLdwhD/qYEPgYz+o37bRHirKTP6kjIkH\ncGh7hADwaEvmys39/LEzE1sFDs7ziYqvJBNP/RNNAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAG2VWnAudp1dwGFb6LPJpgS9/dAsmK0QPt1ptxO/t2XQXD3xiKYfkThu\nC2zW9iVRN4dSI+huFR0oHzUq7MBsVVGcqn2l/vpPPkYXOljF3zb7ujYcXkJ8aEzg\nH83TsD1SbSOtcGBF52vBdBrM0OQrKulA7ceDlzOChU4fBxqq2Elg0btpgbu8r8cU\n3ksatxlDVrK2jOa+aeyPTg2Nl/MZNIZfs22u8cbyHtstPzYeeAlSLYzKibqcAr5F\nKGdZAWHjRlJKFiUj7qTMNX3Oob964hbXCZKotI7zvmAci/6rGu/iGcnpIJmZgQNs\nipBB0P039wMyv5CVAYMYyOikB8uLqEg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"vulndexbeacon","categories":["security"],"userDocs":"","adminDocs":"https://vulndex.at/docs/10-vulndex-docs/137-beacon-fur-nextcloud","developerDocs":"","issueTracker":"https://github.com/vulndex/beacon-for-nextcloud/issues","website":"https://vulndex.at/?ref=ncapp","created":"2026-04-18T10:56:16.154586Z","lastModified":"2026-10-02T10:03:03.537629Z","releases":[{"version":"1.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vulndex/beacon-for-nextcloud/releases/download/1.0.7/vulndexbeacon-v1.0.7.tar.gz","created":"2026-10-02T10:03:03.531387Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T10:03:03.597466Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jKQ6ewGNGch80uOPO+Kz3tjbNMX6IbV1FCg29m8Mn2KsWoSoQW9U65iNvBCOslmF\nDXuRANgGT6GaNcgjS1vL6Wl5VQF/CUGEJukA8TtnquQcmbAPGjeL1/GWiBW3I2yA\n89ESwnuHZqu0rSAJ/CwaWnXLpixBXzHHI8vAsf/c8mq5avnIqqJzjuE7zZbAmrR4\ndo6iUZlJ32ww3VeXlLp6MVeTqFSMozcKnPoTfXy73zQBooPRyWHkqwC6YBLieFqR\nv8pv/HhZPPSzfInoCyjYdWeo1eUcLhJgtQRj2MQP0V6Un03v7ASNrqUIXXnJEoYt\nzx+tGqOLyU7IE+4HsKqqGJ+9oWkwFZJl7NpIyxHACuLQ7bC3oY5Xp+6KXYNV6bxz\ne+Jxcp5ndbTivUPHkVgMfYeYZtz/5k5vI8F71K6Sn52Me48VR6MQNx9krE7no4ec\nJH1S6hyVTWtECX/6erkxjgLNR+V4XaCDFbDZWZYM5yW070ZFqNuMHY/B7V9kQyXQ\nBYUy/qhSTkzL0ZXzYwwlQfZUFCPXFKfE5omhqvQHH9bIgqu3GmhvXc3YwYiyjNCH\nA4Vc/3cgVZWGMk4/qWKwqJ+Z2ZDYOY1TJUz/XQYAlvrZvKz/RZ+PJ7rtu6NSEM/Y\nXKrLU7C25IxPm2EszDoQKi1AsmtDiJ2Vy43JfJfT5rA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9zdGF0aWMudnVsbmRleC5hdC9pbWcvYmVhY29uL2JlYWNvbi1mb3ItbmV4dGNsb3VkLXNjcmVlbnNob3QuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"VulnDex Beacon","summary":"Automatic detection of Nextcloud versions for vulnerability monitoring in VulnDex.","description":"The VulnDex Beacon for Nextcloud collects version information directly from the instance and transmits it to VulnDex.\n\nThere, the data is cross-referenced against known vulnerabilities (CVEs), which are automatically assigned to the relevant teams and assessed in the context of systems and dependencies.\n\nThis provides a continuous overview of connected Nextcloud instances and their security status.\n\nAn active VulnDex account is required."},"de":{"name":"VulnDex Beacon","summary":"Automatische Erfassung von Nextcloud-Versionen für Schwachstellenüberwachung in VulnDex.","description":"Der VulnDex Beacon für Nextcloud erfasst Versionsinformationen direkt aus der Instanz und übermittelt diese an VulnDex.\n\nDort erfolgt der Abgleich mit bekannten Schwachstellen (CVE), die automatisiert den zuständigen Teams zugeordnet und im Kontext von Systemen und Abhängigkeiten bewertet werden.\n\nSo entsteht ein kontinuierlicher Überblick über integrierte Nextcloud-Instanzen und deren Sicherheitsstatus.\n\nEin aktiver VulnDex-Zugang wird benötigt."}},"isFeatured":false,"authors":[{"name":"Oliver Kerzinger","mail":"oliver@kerzinger.at","homepage":"https://vulndex.at"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhM3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE3MTQyMTA3WhcNMzYwNzIzMTQyMTA3WjAYMRYwFAYD\nVQQDDA12dWxuZGV4YmVhY29uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAxlDOxnRMR5S4OOpO3zWw5EstmSDoNMQmfpCAW9P4WJJKyzPNB32u7KTPX9Hi\nWtVJQ/HIJAz0J2ypZ2CRgNPslQmraHUsOGR9gmQyrRz7jQANV/lmHCYa62fwBh6Q\nFkOUx0emfvRekCVLVhwf0V+59uCovd5F/KzwMmR/KNUqKH4JHAzcDjXy77oCTWlc\nkAt9K0aOf7H/qIsyXA5z8nZtC5GbXDnZwwQdaZRH2oI4gGhaD+7V6q+1SgLWsnVe\nTJqrKSQ2uD8WGtv+cR6NqlN05mzMy+EPL2KgdQ6T/uUBp4GSzj9dk7oe1IgvQAVo\nPH8xyrnbX+6Sws+xaBO7dkWEVaqY2XeuqeB9Ch+w2jhwT7p9zWoqyqmJ1YuwKkOP\naY4TxKsGDtZk3WE5+FCNDUkPvVZVq+vyhrLDtuSbpHicNNm1HshipcHBma0XvaJ+\nE22HCyrc0h6a1sqCgumoFZPhgv84rrFmoGy8m2Cw84R00tWDFUF1UDgxEKhkejkX\njca2KSAPVgd3XJxIvFhFQxKS8WWaU/mzFIJPT2h6DOflOq/kzgGMiSoljHbw0+3G\n/FGZrxlNi+uQyv/uOz4KvzPck3A488VM7lzn7eo+kIChgaNSZRqaBbcSpf5GjDIz\nMZVIGIvpl93vi4qdiqiE89wHNUTd8N4k+alGzhVLai4yJU8CAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAJwhCJZqiiyihmAdjnQRgXAeAe+aALb4skaN8VKwpdrFS6mYK\nKqAQPJPUvSzXiHEaPgqf4vN+LjdXS6ZdNq3NURoLwMwM11h0fcfnSBZDo4FuXOTP\n9KRkn5dX2ZVcbkP6KrQBFbKeezOlQYSbHebLOk9GkTZlEtd7+V8WMlCGclBH9Fj6\nw7Zm5q79c0pi90lsb1BWSzePY4q/I4tJ3xSwbi/5yAfheuiU8re95AosIMOnhBji\nPhrHBLjRGN8cS2L7HtFfnmxMO49K1CvX1QAZKvE3jf12v4I4oyEStUhfdT/spArD\nTAT0Qrd6f4tzZX/vkzqXqiPxSQyx8e4+KHBuWg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"talk_matterbridge","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/talk_matterbridge/issues","website":"https://github.com/nextcloud/talk_matterbridge","created":"2020-08-24T11:48:46.895908Z","lastModified":"2026-08-29T09:57:50.259313Z","releases":[{"version":"1.35.1026000","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/talk_matterbridge/releases/download/v1.35.1026000/talk_matterbridge-1.35.1026000.tar.gz","created":"2026-08-29T09:57:50.205067Z","licenses":["agpl"],"lastModified":"2026-08-29T09:57:50.297980Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"LL81UJZ8SqeL34FTww+dSTsKHHOADgP19wsOB2Q9hS2bjPUdczgPO+brBsaoRaGt\nI88NH0/ZLza7zq8208d8n6ckVs2Hh7PlIQWZFNDc5fAFPjylnBsNFzxS0O9OCos1\nQiMLJ7f0dU8wUMoLIpOxjiKrBbIE418JhxZLIizz4PCysvYzuKaWmn0Lut7gh84t\nAKoi4gRi+Xs633LmyvqGEAgvjIEBOAw5I22tah+Kwls2zOLOl6UxoEty5ANx0a5i\nzaxu7h8Dj0U5jbW7+0h9XqX3/CMV4LEiBsm8g1unRn6/zPwCc2q6XE7RS5M6mLUs\nrlYsIJguvScFmys3EOBF1LcLvEDHNbQHbiy7SKvokM9/ElAAwOfa1CnncPVu6If9\nrUOTFmZIEL0fmnC/mVEYO41mmIpxuC7BEexyYyoyX4qAYpG/dJYmZjBre7E1o8yC\nb/w1H0ROYdZsSsXI6RtsFFCLmerPoWY3TyLPz3FZ4gMOdtNFSiF9O2116GdP+6ZN\nggt24ctr5cwwgEjTP65htTtjWI0gyJTjrn/bDGGOAtRkDFqLjkCo5gu789wjXhNI\n+t9AYzsKlV0PcUBM9pOXLg6Q/X1RHYewMpMzvGte653cU8LaCvo8fN3/W5Y2u1jV\nyst9FHsryEY/ZpjBTU9QDgV4xLNce9WRk07OhTrSQBY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Talk Matterbridge","summary":"This app brings the Matterbridge binary to your server to connect Nextcloud Talk with other chat services.","description":"This app brings the Matterbridge binary to your server to connect Nextcloud Talk with other chat services.\nThis allows admins to easily install and keep updated the Matterbridge binaries through a familiar interface.\n\nThe last number of the version is the shipped Matterbridge binary version.\nBinary is licensed under Apache-2.0 License."}},"isFeatured":false,"authors":[{"name":"Gary Kim","mail":"","homepage":""},{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhFEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwODI0MTA0MTU5WhcNMzAxMTMwMTA0MTU5WjAcMRowGAYD\r\nVQQDDBF0YWxrX21hdHRlcmJyaWRnZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBALbdO8Kq19kkzas/AG2Ss1hryCkxeDT/BDMt7eYcLUOe4VkqBHfcy+uH\r\nSNaHyiLu2PI+/QIr+pn7sNfRLPV66LFGt0Uk2zdKB6ilLabX1CBhST+rBKnbw6/E\r\n7NYkq80F/u7ddfDWNwBwfrs2xpO4AyY6hDxn51+CCxQbTyb7007ZCMTjKlR671Cv\r\nGrdhBpUWqvCdVF33l/ZhuqKfacw6iHjIC4Lm1iJH8pleGELfhOitwYn0Juh1XYg9\r\nAKyRHLemR7s1yhjfZ//BY0CEJfNebHQZ3aQeQ1KawmHsHjUiLBeHncsYhHJru8OL\r\nBpRKBW3sQaOFhwmDy2dYubp8YLm6y2Dmko4MVLCs/yCHVwiWKzY0BuCKd6LOYKew\r\nbZghygXx4yjL5IxycCzhUtfOrvuRjoTIcBJm+qXEVafqYv1vsyHUxU+Uu0B+xXIc\r\nrLIIi281eWOaZeUByzLyrT+5F+1EvZUL5iqxyYmMEWJk0C4AZ68hDOpFPk3jPFel\r\nf/WBvu8/bGUS8PFBzIKlLDMZ+6jMDfmfE9SnwOsOBYYxpG+YBqcYuypA2oWn7Q/A\r\ny2ew6dv6dfoLSbBY7U9cmpc7UUr4jL2zer690v/hlr5YA/dq280WeQ9Y0dXxj0el\r\ncvlfVEJ9Z4SgFQBGbONphkmP79fwpzGzcltrGqgotA/GvJTjrvwnAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBADW+gA3K4puhDSMcuYYjDpBIOG9a6id3ZdG/4hoc/9AS\r\nICdehV9VdrNSbebxMt7ep9QFU6spmuoIbZH2gBCHqAILh7jIG2Y9TaH2G2A709bm\r\nQbW3SndygiIXmI4XTcH7l/1f5eDNqa1Fa6EpfWuDS0jVrqSHViQOXxcDjF24ecm3\r\nbe5+2csQly/KFA9A+zS6uFJhL9/QQZDGTKCJ3cediPhq6gDZ6he1MyQbjDFnvIqL\r\n54oe5JmF0l9pxhUZXyqSFiMQeTNOgZC3FLBDtQaxyFnFxbau0uzKPun71clZs3yI\r\nydONJfcAvHHJ8YJ7BNipGGYO4BLGWITR2/GlJ5J4lnI=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"desktop_workspace","categories":["customization"],"userDocs":"https://github.com/canisdata/desktop_workspace#readme","adminDocs":"https://github.com/canisdata/desktop_workspace#readme","developerDocs":"","issueTracker":"https://github.com/canisdata/desktop_workspace/issues","website":"https://github.com/canisdata/desktop_workspace","created":"2026-06-22T11:30:29.352345Z","lastModified":"2026-09-21T12:57:45.725031Z","releases":[{"version":"0.18.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/canisdata/desktop_workspace/releases/download/v0.18.4/desktop_workspace.tar.gz","created":"2026-09-21T12:57:45.714775Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T12:57:45.773921Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"XPy2lvmMFAbU2khilkyT4sJG4z6RHQMiLCezzmxvbKcBbKZVsr1NaEiPrT5nwOYhikgQmwCDBEiwbUnNb+D3n+Dd/UmYMekNFpp1fRQCS9L1JXUkVKrSQMpX1OvdrVhLx/5DPdMltw2Aek0dj0BPknwwT3dsagSk3kefQqfqw1r0bQdJ1LMfTVqVi+6XIyCDncHJc7JvOeyQDUHugIqUnKJtOGPy1zRQFbKBKOpShw67q/ozlCMTrhOZdg2ZUrP5UibWyEauvp/HQ9vJdnblBqxtjQXXM3Z3Wgkv3L0p6kxOQsd3lcGQB0tZyLaZ3yYjZIkl1lqpBpsoQ9WfbNAYguOQIEhG3NhzADdGsBWn32tblG2CO27PXN0EtvJWox9dYgkk69hkFQMhq3Bv2evm2TLwkLB82yNN09+Td/HJdxpCuHi9YO/SyCnETk9EeQmuV5u2V3/HF1R82MvCQvBjIdFH7pY/N/mCS53buDDgWjivSFQCsA275+Z76beTU4CDQWcwXAqAPpTgCs39/vu82QUJurG0cJ+nbsj0+sLFzF+xBv/Z1ykYTRVTNxtnLOeJ8cy0tMJJ6WcUxRQFi4aL6roGmR2MJKBlCXwf+3ZUXU405tJi6yE3D9iDlfWjrG7Ox1ipWr2doYGQ1OlchvXeUzZkq3DtCYpA8ckKnTFeCvA=","translations":{"en":{"changelog":"### Fixed\n- Kept the native notifications flyout attached to its Nextcloud component so the taskbar and dock bell remains reusable on Nextcloud 34 and 35.\n- Horizontally centered the Nextcloud Assistant control in the moved header-end controls.\n- Removed interrupted desktop selection rectangles on pointer cancellation, lost capture, tab hiding, window blur, and before a new selection starts."}},"signatureDigest":"sha512"},{"version":"0.18.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/canisdata/desktop_workspace/releases/download/v0.18.3/desktop_workspace.tar.gz","created":"2026-09-21T00:07:45.564613Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T00:07:45.653159Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"VqW2OAnOm7VtoJLdQL6S5QwGSmDbnGLzdKyIRI5vWyOM2vtpwbH3mTzJDOWa7WpOXM3Bi8j4L3l6+zw26B/XcycdWrOXffd+yqwcT9yNsKnutJdDOLfBFoDrMsA1CPThyctyeReyd1/gt6bpHLrYzPi4p2i3zIY09X6oXYqu48lAiRoM0cuemdsq46be2ejM7ERzNdrPw2VVgEcZE07sKSyVbNsnqgn6GjgUdn0+b8DQ3/muEEP0VZn4qeImBY+ieye0nQ96JoeZ7qqNuf7tDqkyXV1vx8XksNR6YynMOjAdeD/B9gjhmWeU/HNNopATpN8rd3LPs4eVhsrHivn89LcDbgMfpBo0ORsALNy6EVcAMjFv0HIL5p93KYouBE08wFOqIDemZ0gY8oO17UvQSZWJfk/q1ZfWphmqqehLYW5u5H3h0XaDW/ESgaYQ93yXc4pyE7cGk543qPghsij76ySIsZ39FGGPB2MxODz/mEb1T2sv5xwYvhiD0Hhrlm3O3s2YwXjvJyryFFqrXBQzt6FOy3cQI9AJJoHPoEMCGCnjQ/8snC//690Mvm3I0f3vxKZHs4+jgLxLrFwB8T71Z1n+eIYYX6tur0Hjm3VSpqHvm1uqNFNzAkbWp2F4EMxpDQR9d7szBjRxhsF3WAl74dhgitkSssaeXS8THmuAAww=","translations":{"en":{"changelog":"### Fixed\n- Delegated same-origin camera and microphone access through the Desktop page and app iframe boundaries so Nextcloud Talk can enumerate devices in Chromium-based browsers, while keeping cross-origin frames blocked from those devices.\n- Kept window-specific titles independent from launcher metadata refreshes, preventing file, folder, editor, and other dynamic window titles from intermittently reverting to the app name.\n- Kept iframe accessible titles synchronized with visible window titles.\n- Normalized app glyphs to dark foregrounds on light surfaces and light foregrounds on dark surfaces across window title bars, taskbar and dock entries, desktop and Apps-menu launchers, and embedded Nextcloud app/settings pages.\n- Kept folder windows opened from the desktop on the Files app glyph instead of the white Nextcloud infinity mark, while restoring the administrator-configured Nextcloud logo on the separate new-tab shortcut.\n- Upgraded restored same-host app-window URLs from HTTP to the active HTTPS origin so saved windows remain usable when the development instance moves to TLS."}},"signatureDigest":"sha512"},{"version":"0.18.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/canisdata/desktop_workspace/releases/download/v0.18.2/desktop_workspace.tar.gz","created":"2026-09-12T16:11:03.536461Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T16:11:03.611511Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"hZGU06uIEaRp1j8sg5UAKNPbYOY2UnxUVwAHGY4iwbAnBqiE2Re9AB2C0Zgp7LsGj0zDgfdNbtiQ0zkZUGJYw6avbRYPk/PLNkM7fp0O0wicGUWQ1S8l5Kme7QZWCvFxtMUGAjFknGTH1vxUtXSPbUt2iwS6APbjZxMozXMrhxS+MSgPsIRgvLSZPPLyIcYS7MTEMn4BbLq45ie+CJaI96xq2FbpRF9FIaO7M99GY1kgxfCocoXXf4LjzDjwuU7SSboZpiieM4I1cVg+ojVQ9viPXT/q5FJtnjpFxG7Pm7cOR/ytN2gt5Dcabvyp8u1y5TNbzp12Pn31d09wiRpTn1c8/TLKQMTRuQQ1sunILjPXBgOr/mTo9xfn0FYydh20CY81MH8jZbq4Qq/3ALneK2s+seXzUuaqGriUwE3g4fPoItGxelZmnLjRWHGj+SsIvG06X78C1nTQ/fyZ6Ck7M1Aa1lEcQYwC+wOt4Ma6wJXi5wSfEhWeA1wr2/dSx4++EpeddPhXbBsc1VHHFpj4UEwMHUVLGOhl40pHfn6n2/Prb9HyqO9vwkXxMj6H6PDi+Nk7JKefw/OQTAG2ty5wluqTy/KOsGJbcsrmgUKuqAlYAZFSuQDbdPrKD1c7auFQLM757DS+Ca7Mjn7/fzFxabyt11fyrfJ2OkJWwTG4HBM=","translations":{"en":{"changelog":"### Added\n- Added a localized, theme-aware development-support callout to the personal and administrator settings, with a Ko-fi link that always opens in a separate browser tab.\n- Added file and folder transfers between the Desktop and embedded native Nextcloud Files or experimental Desktop Files windows, and between Files windows, with Move by default, Ctrl to Copy, valid-target highlighting, and live arrow/plus feedback.\n- Added Rename, Overwrite, and Cancel choices for drag-transfer name conflicts; overwrite requires explicit confirmation, folder overwrite replaces rather than merges the destination, and Cancel stops remaining items without rolling back completed transfers.\n- Added compact, theme-aware indeterminate progress bars during drag-triggered Move/Copy operations, with cleanup and view refresh after success or failure.\n\n### Changed\n- Allowed accessible External Storage folders as the configured Desktop folder through Nextcloud's normal filesystem, while retaining the restrictions on incoming shares and Group/Team folders.\n- Kept Desktop filesystem drag sources limited to genuine direct children of the configured Desktop folder, while allowing Favorites to provide real folder destinations without making special icons or application shortcuts transfer sources.\n\n### Fixed\n- Reworked the light and dark app icons as fill-based SVGs to improve rendering in the in-instance Nextcloud App Store.\n- Corrected App Store screenshot metadata so Standard Light provides the small thumbnail while all four entries retain their full-resolution images without unnecessary CDATA wrappers.\n- Fixed Desktop-to-native Files pointer drops independently of the experimental Desktop Files setting, including folder-row and current-folder background targets.\n- Rejected invalid paths, same-parent no-ops, self/descendant targets, and conflict renames that would replace a source's ancestor; cleared stale cross-window drag state without using persistent drag payloads.\n- Applied consistent shadows to filesystem icons, including Favorite files and folders.\n- Corrected diagonal iframe-window resize cursors in Chromium while preserving the correct directions in Firefox.\n- Completed Move-label translations across the locale set, corrected transfer-action wording, and localized rejected-transfer error messages."}},"signatureDigest":"sha512"},{"version":"0.18.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/canisdata/desktop_workspace/releases/download/v0.18.1/desktop_workspace.tar.gz","created":"2026-09-03T08:36:33.365031Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T08:36:33.436034Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"w/wee/vY8Au/yVxf7qGYZbBuWn98M/CGIrkUqW/pf8ZisICsDmduJSSNAi8TpmS0nQxB4ZzDgPvEzYJXCWtit5NprbSXSqyEMZpuqA234RV3SgEzDEb18tPryTh1CRp6hNm68F5zKSAxis4GAxXwWKEWNpp5regsraNiq39kV2EKW3Foruw3lOKNXVG1z6l4iAUkl6Wy082nLvTM8VzirBsu8RyczwlFa4GBaDxu5My6oBD53+dqv6LYijyGGPpB5NJ0k0x/gXQ/JO1ct1oARyMHz58gdfMy2aMl+jAjMNDa02tWHkzlcczk4vNeLGZl3CLZR6SfV9urJ6VEGYh4LF7v6ckcPLCouSWdeSz0lU+/nzrGo3z2X+Ca3WWqpWo2strGCtqwyJL0xH7JXOQkmqSPq1vv0I+/KVQgS76UeqVM+FALVQdiPKYFywTQJ74AoLZepuMYv9fwRTbCIQhiPbUImQznV/I0UqyKJpfmdMocqglRcoUizMr+3t2IEZ383Y1pucwYuPbjUs4a479cWmDXgfuz2/EapmKGlkOUZ3vgy/pwWyrfGwfCBomh4CHC3BoaAOPbW7zb+V7VtW/LgFESa5T+zdhddzghgmVybhoE9Q6sD4whMxgBw1pJDeic9cJ2dFXFyHxM05EEYM3G43E5hjLZVQ5V6ok8UNJ4xgI=","translations":{"en":{"changelog":"### Added\n- Added a per-user 24-hour or 12-hour time-format preference that applies immediately.\n\n### Changed\n- Restored the digital clock, with the region-formatted date displayed beneath the time."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbmlzZGF0YS9kZXNrdG9wX3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzLzAxLXN0YW5kYXJkLWxpZ2h0LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/canisdata/desktop_workspace/main/screenshots/01-standard-light_thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbmlzZGF0YS9kZXNrdG9wX3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzLzAyLXN0YW5kYXJkLWRhcmsucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbmlzZGF0YS9kZXNrdG9wX3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzLzAzLXJlZG1vbmQtbGlnaHQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbmlzZGF0YS9kZXNrdG9wX3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzLzA0LXJlZG1vbmQtZGFyay5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Desktop Workspace","summary":"Open Nextcloud apps in a desktop-style workspace.","description":"Desktop Workspace adds a browser-contained workspace to Nextcloud with app windows, a taskbar, app pinning, desktop icons, saved window/app-menu/icon state, and optional desktop-folder/file-manager features.\n\nAdmins can enable the app like any other Nextcloud app and configure decorations, the experimental file manager, multiple-window behavior, and per-user resets from the Desktop Workspace admin settings. Users can adjust their own desktop icons, desktop folder, decoration, experimental opt-ins, window state, and reset options from the Desktop personal settings."}},"isFeatured":false,"authors":[{"name":"canisdata","mail":"","homepage":"https://canisdata.de/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhNxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIyMDY1OTA0WhcNMzYwOTI3MDY1OTA0WjAcMRowGAYD\nVQQDDBFkZXNrdG9wX3dvcmtzcGFjZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAM+R9yf4NMXSdDBHxJK/zOup+O/vyMo6/+RsTUs3NtxwSbjFD2XOEnag\nBdfkZW6AUvwDA80wNDlZ3mKt/S4RsfxlZ8ctVP3pLoNzacTlRPY/8yMcHh0PCyXX\npawLFFriGHhq5VaXBmKWUAoe4gexzSk+jAnPChuJ7q/I0tSCHvOQZjbVQrPUFZeP\nnOb8ErgF0RdZHfzmbr7D7itdPxk1VsoX4UmgvA+BmpD73MNbhkgOj5JvoIjHPMDF\nZvBzXWRSissJ09kTidD8gpMphP3qODPSdjMcpPSqHoRR8wdkGz0OU0MS2yUGYAnD\nMahG42s5iZ1poRvzpGcjp9XbSmCQpjCNgGwURjPOpLvWbaTf5jCNkmrZGaB9cpP5\nF83nRCCrOWzdFyHIVtW07OBmHe4kLY1PX+I55ziZGdOGWq7Fa3nKg5od0u83xMla\n8g9e2MDpID0ULq815zn4neXo+1czZibJfPGBxwFWK8ircntTSIfEDkHPNS1faCkT\nJZXAh/OGNSjWlVwxeVq5aJFaQJa6TTKvgaPP7y6gQdTMjbrQYv3rp/B8wdjJ2Uzo\n81RrUJQgORhGl20LvqZwAeAeusiCvDI8d+OX4PeHAvhBvplO02Xz3sNC/E0/YoUp\nx3B+pGa26p3RJQ8nSYVhMDgPijA8NLt9+rYJ+TCXiQ+rxnavQkdzAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAFI07EY4YfonETQvGZBX+/NbTd6wbWZONrNjH33XCFzU\ninYOdOHeMoTEoXCH0xilUmemUqYR3seRbptcw9NmP+Mzmjdh4wuP1E3jcrZzvoKB\nalog9PWP5+dMCRXkjNCmjpQRuePqo68/0wcjFhJGZ1D8gzSBitCQYmZi8p7p6kr3\nxZCrpO7U4Fr8BmCOP69PP+81k+zjNoXFovYtgZgDiZnLg5RfhirpLYEYg3lENsXW\nFxHCYstx6p/MwjbDm9T7OPtukvVEUqTlRXlP0Tmv858msPCn/d2WoXyUpsiFQLRp\nBDA6nuUOkBMg/b8JIYxKZ8dRgWi4ol6bspGnAomzko4=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"rotatingwallpapers","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ole-am/RotatingWallpapers/issues","website":"https://github.com/ole-am/RotatingWallpapers","created":"2026-04-17T15:06:11.700620Z","lastModified":"2026-10-06T19:36:36.928690Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ole-am/RotatingWallpapers/releases/download/v2/rotatingwallpapers.tar.gz","created":"2026-10-06T19:36:36.920310Z","licenses":["agpl"],"lastModified":"2026-10-06T19:36:36.967784Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"iDc/MoQKo4hlYpehbOoTzz0js+hUeMQTK0C51tTJIgF1xzGxRfVxVuwi5HZHlGvC\nuhNldHwMrewMLkZj7iZaYTLaxHCRtpUbxGiQwqTM2YAMtPoUzqOsi4Z/4UGnAedl\nQHkDkg3nWQWkSlhgcjlSOoE8PAY0lLyJ1BZ8+ZhFs3eV4jUYDoOSY2EnKYyKhcOv\nrkeZcmpZWnx0pVnvCfC8Qk/ImZvQ4A2QwYanonfL3KFKjuCPnwid2dMn9rIVmfmW\nK9MeZ2cLG8LC6bcDP+ygCOAy0Fv70BhE/00+n/E6XnBt7ZhYprMdEhD54A8isBEJ\n3tGmUrgfn5gFdndPNFeQ6giCqIXmIGZ691qywBiZcHMzAqeDP+FFadEyqiQN1xZr\nGGdi6IBRC0E/rfjbuxJplbvE0lMilg+hIKcxlhNIOzlEB17zVsov6NxUaRBEqTP7\nHFWG39OiJ69iCjC8OCTwdsp9RcN43LVVNRyfNwRgDb9+5vDrK2TxmqakfHfejWB0\nQDcr3wAJLAqkQxLQ9EbQJDGlxL3L3oRKRsa47esAgTCKmPa0JOqy4yAub3B5XQCm\nF4D5y2HqjXWAEIOVlbnskBnIDrPr2WoS0WlSYHBHiPecSudafX989sF9PxSH1mP+\nGsq2QlLD9maCxSrfoY6LO0FXtHk28alR2j99ig4akVM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29sZS1hbS9Sb3RhdGluZ1dhbGxwYXBlcnMvcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3QtYWRtaW4tMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/ole-am/RotatingWallpapers/refs/heads/main/screenshot-admin-thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL29sZS1hbS9Sb3RhdGluZ1dhbGxwYXBlcnMvcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3QtYWRtaW4tMi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Rotating Wallpapers","summary":"An easy-to-use Nextcloud customization app that adds rotating background wallpapers.","description":"🖼️ Create a more dynamic and visually engaging user experience with rotating background wallpapers. Upload and manage multiple images through the admin settings, define a custom rotation interval, and optionally set a dedicated wallpaper for guests and the login page.\n\n> Please note that uploaded images may be publicly accessible via the web."}},"isFeatured":false,"authors":[{"name":"Ole Am","mail":"development@oa-web.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhM2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE2MjAyOTQ0WhcNMzYwNzIyMjAyOTQ0WjAdMRswGQYD\nVQQDDBJyb3RhdGluZ3dhbGxwYXBlcnMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQC+59FxynJ3uimCX2ACIsdtTrGFI7A1O6SY41vvcFvcxJr8CQoX2pej\nY2b7VWP4U8f8LPfmArTpWD++Usp0bLKKLge8OTQ+nx00MEFG07iJIad1Bi3/ycpx\nKnVdBbO39CCABcdYC7NfXGoQldJ/FLnOKdAYYQ0MRShKoqkhUcJ9GyFsdQ1qiPGc\n0IwAXTkT/bf/pp2Legf5Xi0BfMdm0D4nhnMkudhiivl7iX9a095FZDnesYd/nOVT\nh856rH1cuSttdb7rplqACn+J6gzRMztRJwdNhTbaHLHbuvNxdh2D1mUo+phBJV5x\nDdA/xNls6yLyNgNRuAD99e9aF8/bjtzj4UpbEgc6EDudWS5TsKJINR5O/9dTSkaN\nd/QaIuT+K5HbQIJOsIkpiD6i/6k3MfAs2hslbNnTSzfxgXLu22DS9+QdrM1bpht9\nylBkZqdmaAc/SQAg0dkLCTw5emRh17Vq5ZKETMSeH9Vlopsn2nu4uG/BYOeqM+Cd\nXHYxAsFkMgXRG1UUFdY+jd6jSf6etXyZ+NDxVqPD+vRfiw1HH/PuuaVMes4p1Ose\nOWzTrxbhrm30Sbkss/gv+T2ujn8XH4DzMF+pxFVVMWHc145YPTTLc5Y09W1kKoqW\nNTKyD4VbSbPQVt/jv4hEKDESiP3nw+g96W7uyykaT6aYG32wQ7cUVwIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQBHFg7jy7V1ue4I5LAfbl8Jx22U543Qv0i87d9Qovym\n3IoQMikPDBSpVRBzttOG4zU4uTEHe/CIGqzL6A26gDLvjKu9PywoRnwLVqCxYrvv\n8aRpLKE48OKSjTLO5C6emqsPM4Kj0Gnj+5oIMBysZrnO/Et7l0jswbwayWI8KI/9\nXcpG+mjTZPALXY7Q+LjXCoN/ki0aiWkSlIQClSB+/f5Y5bI2vjKCAvwaFsY+OlyZ\naXTidQRIna1eahOJJNVEVMMLUpHGFdUdBHdD0GvIIUj6+JVMPWMmhySzwD9rDsbn\nqwiPpG5WXuzSSj557P/BSrQ8FUr1feff98jVMOaIoovA\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_inspect360","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/njordium/integration_inspect360","issueTracker":"https://github.com/njordium/integration_inspect360/issues","website":"https://github.com/njordium/integration_inspect360","created":"2026-08-21T16:21:14.618934Z","lastModified":"2026-08-21T21:02:50.684849Z","releases":[{"version":"0.4.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_inspect360/releases/download/v0.4.8/integration_inspect360.tar.gz","created":"2026-08-21T21:02:50.665769Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T21:02:50.728797Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"s0lHpxjtE+VDG/qTxYHLu+BnbkJ/3MFLdhkImg6Yjllx9NN58EuSCyYn/fsmBhhmXPKCP1xP+9yrABLpuAhrRV2f70AGWVj3jiMW31JJdrnFyySkgXL4dfcZaOmSlgWjFI4qRbcD4dy6NX7AiwkFlsHGEdUyuO2tiAUk5odV9VFZoeL0JY8FGEG9vovfDIQ4LxTrrLvXvaazFMxlP+KITuL+t66UZog0TM7C5DaWoSr4KfEvPJsR3LIERCJuV9HUhffsuj88tXFf1tBw/+4+3v2ZjyM17sbZhfrU0Z+L6kjc0tIJu1I+1hQVI/IUSEbz2a2xuSZehFbQZb3Whcy0DDWvUKFqFguoTvD7IkAfwrEN/pDOI96hMQvBRnZlITAQtjEocVDNpOgCfSoGirSwUuYlvwBCHJpaXmiEgdy2uBYzIxGiXttu6Ubkazq8JGJgpIt/pPe+fj6+pxvEPH/g2s6bPjpQt8ChMP4hxD0tY+srCSepFn9jDTP0iwJBQnuabd/DEeKmpVwzvj6WXxWEImq2jTYuQyn+Yqgl3YFeE41jQ4D7YGmwocRPdDGbuiGN8y0wrLTjQkQ8lm5QjhfEFP0JLRUurMD2zSe9Fqojcm70oZE6YrV37FaG9TLOJEHtA7zVNczJPNzQ1DVxdB3mjd74dM7MycAsJyhHiR7wiRM=","translations":{"en":{"changelog":"### Fixed\n\n- Error-state icon on the four widgets was styled via CSS `color: var(--color-error)`. Vue material-design-icons wrappers honour their `fillColor` prop for the SVG fill, not the parent's CSS `color`, so the icon rendered as the theme default (pale). Switched to `fillColor=\"#dc2626\"` (a solid red that reads clearly on both light and dark themes) so the icon actually signals the error."}},"signatureDigest":"sha512"},{"version":"0.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_inspect360/releases/download/v0.4.6/integration_inspect360.tar.gz","created":"2026-08-21T16:36:50.559771Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T16:36:50.636062Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"vPF1mbUWDEtTMem45B9cGen+HYQtI0cdsyUMinMGXQymUEvOqPx1ebez7qidkJCemYBFmsdW1oDhfI2AEGnoRjYaV4zYJluYAY6hSWelnwr+u6uj+wQ5JpEfK0TIzaE+cLEt8f8gv0j5RhwSHG1HpyyJHGq0vZczYNC+yGn4DPX7i650/ekdgHeR+c9gB4r+PvUttI/Taq48IT3ttcpExd6LuuahKrjTdm5BkqsZ0stq9Wke5ooPBRNPXZQvFV/9S+5SMBvXiTibyEXhw/wZ3P7qbYe0sr+uUQzSWz4KYL5O+3zhaomNlusdSFUlfBKx8/3fS1bQR129F9FLrSjalLmdFHo9ywqF6BgDiCM1+KJLmB9p8PFPRtUobq6eg9QKU2xk4zTcA48uAKRZAv2CfTkrYUOwwwxFeI9Ch0g1moh0pPuydkMW+NEu1t4CWv+0YgufG4r6YimhhbHv/Izy8NUHq7/YlGsrIbgkaCMw4zM3ViZpPL6iFa+sKd3KUS3O2LjCWy6vO9cCYa29QoSVYO5HbbdbUzTX3iZAEnh4u+nnlxFfiyalyQQyq5le9mK3kWUvq79Ayy+acehqWh8X+gT+nQUCtQ1uOoTZPmMQ/Rez1esAAFVYNlNU+4pvXH+nOqXGTosBEvZtLgVlQ4iraPEVvdJq1GmaB5NkYNxevlU=","translations":{"en":{"changelog":"### Fixed\n\n- Trimmed `appinfo/info.xml` `<summary>` from 147 to 107 chars. The App Store validator rejects any summary over 128 chars (per the `apps/info.xsd` `maxLength` facet). New summary: *\"Njordium Inspect360 integration for Nextcloud. Vendor pipeline, assessments and KPIs on your dashboard.\"*"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25qb3JkaXVtL2ludGVncmF0aW9uX2luc3BlY3QzNjAvbWFpbi9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/njordium/integration_inspect360/main/img/screenshot.png"}],"videos":[],"translations":{"en":{"name":"Inspect360 integration","summary":"Njordium Inspect360 integration for Nextcloud. Vendor pipeline, assessments and KPIs on your dashboard.","description":"Nextcloud integration app for Njordium Inspect360.\n\n## Dashboard widgets\n\n- **Overview** — four KPI tiles: Approved Vendors, Total Vendors, Pending Review, Total Services. Powered by a single call to /api/v1/suppliers/stats plus a lightweight products count.\n- **Approved Vendors** — list of suppliers with status \"approved\", with country, org number, and regulatory flag chips (Critical, ICT, Data Processor, AML) at a glance.\n- **Added Vendors** — recently added suppliers, sorted by created-at descending.\n- **Assessed** — recent vendor assessments with status, current stage, and colour-coded risk level (low/medium/high/critical).\n\nEach widget carries a per-user refresh cadence (Never / 30s / 1m / 5m default / 15m / 30m / 1h), pauses polling while the browser tab is hidden, and re-fetches on wake so an idle dashboard tab doesn't hammer the API.\n\n## Authentication\n\nSign in with your Inspect360 account from Personal Settings → Connected accounts. The app stores only the returned refresh token (encrypted via Nextcloud's ICrypto) and mints short-lived access tokens on demand for every API call.\n\nOnly Inspect360 accounts without multi-factor authentication are supported in this release — accounts with MFA enforced or MFA-enrolment-required will see a targeted \"not supported yet\" message. Fuller MFA support arrives in a subsequent release."}},"isFeatured":false,"authors":[{"name":"Kim Haverblad","mail":"","homepage":"https://njordium.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEETCCAvkCAhPVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE5MTA0MTAzWhcNMzYxMTI0MTA0MTAzWjAhMR8wHQYD\nVQQDDBZpbnRlZ3JhdGlvbl9pbnNwZWN0MzYwMIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEA26qJvoZAGCTVc9KJ7W62+ld12pN/8KaNAwzl6fCsHgOMbOnI\ncAYGo/2MA06XmVCq393dnrW8jU2D6G4181x1uqhFLNK+wGGHl26M17pOyTEtHWSs\nLLsR/T8YsJ+SuT5x3EXLzWLTgxwLvi/oY3OOgJTXUraseA+gchq5uVpTx3zzh3WC\nCOGTV26HW2fjdHXBB/pchbhbjAcSVGdWpYCXr92dPFteuNqgdGvptzBLul8fJc7m\nSGcCBGwg1w3XMzahKvUSl/eLekjmlEO14mDuGxT6AnH2mzHwtlBRo2bZXzifAekP\nn94wY9AkI1M05/9faoDBdgpRD42L6O81K/2n6QixASDaMn+AUZxshSoJdymUNDrP\nZQL0jku68XdWjikhzawd1VNG6DFUYHzhhUq8/YXq4CJieGHviM33AmBU7J3HHCTf\nGk54/2KuRBanJplTb5xGlnjgC5cUduh30J+rjkez4Dj7/fn5hR249TAS+xvGKIoJ\nZPBD/7a6yFW1MIMUwXcWYTY6qOb6853MFDyvN5UhY9jo4hYuc4SZ2Si9i3k8k01z\nAFPkbRHghoSocCvrqTh2ZSz4qeC4slR+3LNdPP7lNWBvJkWQT13iemsS1zgq7tHN\n7udKKcW8S8Nc/qQm7klcgw5cnnmXeIi0D5mlIIPjcZ9bNK6SYTD91qHQ/XsCAwEA\nATANBgkqhkiG9w0BAQsFAAOCAQEAawwldxwlTDbSe8rL7beBNLUkneGIhGd5rXQj\nibW4EoTr2unSFqS/TuF2MSEtcTrm7U8tgsoHUHXZrP/FC+KT8Gxa9Ir09UOvZ8ng\nPbqVPNlMBCs7aQuThZoZL0gXevzQm9dlFPncukU9KYSgwZiTusesxlyEMdJkFjUv\n08MYEMZBEHIbAgkMI5f3Awz7lFStRMvbHJPgbevuzk5y31mBqY+JXKwg9ar5zlRC\nhvmNI8qthCM8Ib+DKUhxFx7bkEG1XmEhtdv8e+5Om/7WYJFESUMA8yqOpQ2fJQnv\nF059Dyk1zcnON/4cJCRdY226wgYNIv0L00I1HfGnWZ9uNfeX/A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"unroundedcorners","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/issues","website":"https://github.com/OliverParoczai/nextcloud-unroundedcorners","created":"2021-09-13T09:44:25.383942Z","lastModified":"2026-06-15T23:32:05.621302Z","releases":[{"version":"1.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <45.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.6/unroundedcorners-v1.1.6.tar.gz","created":"2026-06-15T23:32:05.418870Z","licenses":["agpl"],"lastModified":"2026-06-15T23:32:06.270579Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=44","signature":"psjFFeCYd4Pn4L1lSVB6uZKRSkYjZ/p5WPwOJmH/KAm0HgxdL8NgxREbTvApBTHs\nut5MkxQ7zHLlLDw9afk1fkZ15VNIFORp896vzerLhI5JOePvvcrWSgA1NPyuj8jl\nYbK8SWUs6TG2o9C4CaSAALhpFWMcgQBtW6j9ZiTAiwjrVYt6AcRfmHExV8kPm2Ed\nJWA8DDcDxlp8nrgGASJab8vZZEgHZzpSomPKfNUKMXFk13hMuv07+Z/3vj1exAON\nfFelRkQHfh4sXSr1H2aS0ZQf4EHeJcyElHltzv7EO+j+tjKBqubJfj+TiUn30P9h\nra3iQPYQVnIAKeFQPSbpsKIt6hEn+Ep9vAdusYaZtuu7zmZlh4fQYqp+fjLqEF8H\nReGAgxFr3V1t5AQQmAv5wbAKD/8KPMZsUX83F8X97F8nZpksQpcfXbCV2RadO87X\n5WVYmYOJfncg4IsX1X37PF9MdCfYEayWUoRpm2y9Lr/6kjWrN13kiWSYeh8+OAWq\nKIYfmMbqxz2bn5AHTOgIxFOesUnt7J5dqjBaDn+pmQE9RzC6t1SIXs2BTuCNtWDZ\n1O25RAbfruiXQsCrweyLNBVxHclHV61DfovhTGb0S0/4NxFNojeYaNkmbsDVR6Up\nR3nMpbqMGulVKrN3dn1mFOXMkb8j27xrijqA8M3qplc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <42.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.5/unroundedcorners-v1.1.5.tar.gz","created":"2025-06-17T14:17:19.172133Z","licenses":["agpl"],"lastModified":"2025-06-17T14:17:19.256366Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=41","signature":"SF1FjMGwmUHmYk87zJcxKA0xqQoK4vBrkm/5znBwH4e+dJUBbgW2Lhd/DuLaP2Gb\n/4vBpiwldHt3sz4BLw+mPRj+TAy3EvVTBN7N3NxfNOQqaBIG2RdSm5gjv7HNfqs6\n5iyW+J9uZ0DxW/djOra8IJrYHtSxjqCcM4zQ2JbJqDMVRrDisL1rnone0PytFkjl\nX091w8kRJCqWG1HIHXsLOYrjnzwDayz2oUFW82O+gHCS/Ea39NoK8wOlcJ83kSdK\nkg7q8CIubi4Xr+IJ4Xa8/i2P+rlY9pyEgB5aUVX/7a5It8oSIfXzQ22jzWqPNXvk\n+dxuiCoMyzJr3T9enApXEarjYWETd1uDDXAA5J3ckU3ZnWmcjrxWFr7iWuOtlOgc\nIzzfRU4/k7cG0oJuS9GE6QZdoeT24Gy5aYzNYxykzdM5VjdRlAnEy9ZLyqzNjH3m\nIJ/kOKnQ7cwxS1ZVPlNVylkD8m69BF8K0My30eG8cfj01KA/ebcbQtchiRaFLxFx\nC/ZjyDjMeuTpxeh/7uR0qzkxYmOT4lqBqMWJNf9oozUKqOYw+Y6dI7n0fe9cYFHv\n7w6cE6zPT2x6lmxjHlThfWO0VeVJTUwNZHUfnIof/1mwBPrDWdH65Lb33oj55vYk\ndASnsqDSfEXueTGL5SIOiq4tjWIHdeuhZqsw044gUDI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <41.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.4/unroundedcorners-v1.1.4.tar.gz","created":"2024-09-16T07:43:53.763575Z","licenses":["agpl"],"lastModified":"2024-09-16T07:43:53.815050Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=40","signature":"lDrch67KoXir5gTIMiiKHKjDlXelPz3AI+jR7FLE7tqwPfClewR88BLBHGAsn4dG\nlqHwtr9f6O6y95n714WitGp4u7xl4CY8PKJD7x6HBfMAaSs0lP+Kly5SVBFCP2Ax\nKPR278RHtPWjyFXfWKsknf3WDTxfZTFeM4bMmyJmFdKYwQQ02YmxjYgBOo919j+y\nctmlN2+ezK/xDInWk3hNspx7YZFg3eqHfz2CXqWsX2Zl6rL88zYRdB2DvN/AWciQ\n/Rr3qYhYH6F2Rh3wahxOB5AQzuThCCeQzdAsyLkPAqziltFPIxU/iEPsUIYU6aqe\nopAYTBGBBEj94P2cqjTEpewCOGlxwZ+aFrktgPP1YCZhFNqousryOnH5dmRVjsT3\ne3rYNUFKxcRHCYjD0RwbM5lb3/Wzl2bx9HP+v/MrheJDgrmINI8FB+oK/4hlcbuT\n663im5gXJoGp8Hj1pg/MDImEaX4X+s9IjIfIgNrAtmRcbie2dzWJ/fJ6gWtww+Sn\nqe0JbMD4l83+7w4e/MTZ8QYiQ3/lQu05o3ilNHcjqq02YNf4jsj6IZfl9uHGwrjj\n6AcnO1MztK1F66ShS3203yCDndU5iVkJrCfhUcfqWMDzUo3CVz/hzS3oUEBzv2BG\nHqkG/sJme624e9TwZaQ9z5H6bjgQ8yRLfDHwQ2t9O6o=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.3/unroundedcorners-v1.1.3.tar.gz","created":"2024-04-20T02:12:54.669897Z","licenses":["agpl"],"lastModified":"2024-04-20T02:12:54.965408Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=37","signature":"BrMENlXN2fuVHCjESK/B6CDbFCo9ATcAuXmOoJu+t8vxIAmtHOMlXv6lJkzifo2W\nPcxB6/e9dxFAp4rXtqP4POTmmpFjac8MJME7IrhtfpeesYdM+dB+cYTlkXRmw2v7\nvIhp9MbX71gtBFYuovGxn3X38+477DEFefQDdLryuZxqL4PZJVfiMxF9Wu1wZite\nonmLWDNQxx17KAuWjg0PRWXbNIxoSrZPhacylte1aDDB6zKW7TSHgj5IUwo+Fkcm\nkyJpcWy9yD3kXH8LdJ8WbeLKEqFeg2/bmjCmFJsML13HszEgid7gckXaU7csmTxP\nJn/SsLuE+OZhMvpKlvBbSQ1s7U4fkJ2AHU1pwFIt4iNbje+vlwVm4RY8v8JFw0Af\np/evmxpfmDfTmLgRRw5bYM2wj7E21bY1uw8uhfo9h8OBqh9E2SFvrhw+oubZ2S48\n+Pc6SGXgDSufSVrAwvRu3Rh4acc1HcoBRTgOXDy6CwQMzgoAOrbnjc5kASYllr9/\nsXriVtKtc47GSSQ8zvkbEPVi87s6YmVx3c6f1U9YVfRKL5FyLxnvtobd69GhL0H8\nAqw/Qp81jmJ/8gXlS4FG1FXvz5MYDv+QzDtyOnZjAMMTVfys98JNw47Ifi8z2xtb\nDi4fOLvvt7OGr5926yJeUgtbQZGIWvuZEV+JrDNfHLg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.2/unroundedcorners-v1.1.2.tar.gz","created":"2023-10-14T11:47:56.557199Z","licenses":["agpl"],"lastModified":"2023-10-14T11:47:56.716607Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=37","signature":"FgS2juO+6wpSxS0CAg0RxHrgCao+XxYgIBW3zkcbe5QxGvaN2dm+4GI/BPiDDs3B\nmg/q1cizGrtzsHSlnHS57ELB8VBhCI/NL2PO/5E33oZJ9mB35LbtLveh3NYQQ/Am\nM1PYBKZQ07KzgNz8UoVDzZCGJkD2o+cvhheJgLyU+V/YBqlMJDHJd8+XCslO25M7\n8Vguf1Ou/ZHqE2blNQSlLOsW6/RAovC4XjVl0ulA+wLEf5ZL3+QfRGYnpnrf0gzP\nja7Mcn+6WaGVw1Be+APhImUBo6Lx7PeWgoq9RXbqjHmljseuCmOFmBA4M58coBEg\nwVGrNq8cf62AneKjWOlrSril+/sN0iPjdtf8XeZYSJsNLla8izk/TdtM3OvpENCw\nFwRY3XEn87RzEI21rEAK7VaCkHH6zUe7lYPO+Y9XHZ6yZTQiJE4MxH0iz+YoH9Pl\ndoBllNjT2yONUiOKz5BMwR428ln9ROKu+6sZc0LgWf5IvwekjJ4bh67ONU86nDm7\nGJ3St8z7gRzmWEOYq0b/+tN3sP2QC7m0whR7VhNwaK43M7l78wgJEBs+2LYyZMWI\nA46g7Pc1rDJswJJzgHUTbljd8E4HKB8vsZTrc2wmangXknHCln/JvaWVAdpsjoLd\nBP9s4oRgv+RO5sdh8IvB/Jllm1FJRI0qA0XufNtwwBU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.1/unroundedcorners-v1.1.1.tar.gz","created":"2023-08-23T19:31:04.194220Z","licenses":["agpl"],"lastModified":"2023-08-23T19:31:04.346605Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=37","signature":"jhqPYBoE369d4rt3U1wOAMKaf0DXb2cVqLdzFoLuAnNtOdzUmSGyQTXd3c6W3IRU\nC8Bca+6G/RHj5Z/kITz+whtRxwHYtSIx4tKSDH8IXBcKW7/sNn7HXvSMYkhaHped\n0OFQU2kUpbtmrApnKY9avusJvgFXk5kG8X99HKHlc4vHIApCXV4cEZ1u1IE41OID\nTweVlipADr+PFxUpG10sR0Jk+xTLfV5dY8tPe0X/xAfkF9b/jqha8kG56yKMoeCj\ndTWKTxkXaIZIcWwAAgcDdI8fBYehd3viQITv8EPaHexUum3NlGqVZTGcSFuHiAxm\n2uB1/uTlDDQBFyIJSa6U+LZIq6jGXprlIEDi4hEPkyUAL/U+6Kr8AY+uckVpWk/x\nskcZ+UC6MCmY+rTn8J0/G4HskSun5peJJDw9dKPDTgWvPTdtkyS/G+3/rZmOdd3f\nLURMlBu6qySlzyQmAkYTdC86kD/LWCvurq6ukc7iVR0waSv/WMdOo5NV0ADajjQ6\nWFpEoJ7jX9/+r9ZJA62QOaDsAASL0PbbYwWURYDuApowczaM4KTK+rU7mn87FnSt\nSwQo0Y/leBViA68A8E+ElFtzKUuGRrga9SeE4nNdyhHBjeRxsusxjpGuh7tufPKf\nDaeQm5qEYnkgZG9pjrQJLYY5qEAyVT2JPK6wKGJQ87Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/OliverParoczai/nextcloud-unroundedcorners/releases/download/v1.1.0/unroundedcorners-v1.1.0.tar.gz","created":"2023-08-21T13:18:02.259737Z","licenses":["agpl"],"lastModified":"2023-08-21T13:18:02.662617Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=37","signature":"jWJvEJi3ANaVOfdzAWF2usqXcWMqEdV4pydTOFjCTcDP5Ycw7ajg9S8bpJx4JYI4\nzga7gEpz+/tK7Y0aircoH8fgxH1yuqnvQdf2LzVV4ZwXz/Gdf/hsb4ptFDVfGaas\nfzI+mtfJw2O9+2xc/30NjeILZFfc06/44U6iKm4EAkz92BlIfn880cLFgKRXsiqq\nwtOYWqaq9vr4OGNb9QFzi0rcqN4oYzStASd64Omjn/c42/1ldELUp1dXercTriL0\nO+J2pwjPrlYfqVnRaa52mh+X70MaJz9ocr7CTRx8BKBCTX2Fmquh8iMBbAhojaTN\n6iM8RynMconvDMBGF4uIzjm8duRIlN7jBlr3oJWYeZpZnCSbAq28xgmN33JaZCV9\nCoK1PZm8QmasYeCvx+pq1wNjW7uKU9gUc9NWMjbu6BhK/AsDJTm9LucfPENbtTvr\nELykpSy1VRE9EB4A3AY4hNlVmEi2Dq1i8j0P9rs31Em6Ll0j0C2L29x6bpFuhHml\nfKmKDdb89piTbF5FEge+jH+rowPm0speOvz7QJxDTSshCvFdYtkaFYIypOsDzmbD\nZjM8hmFdJVuwPiBLNOd3ybJ145Ndh+t4xuIN2rKS+2gn01kuxuXUzHP0CtSWe0Qq\n0xt+gOMyQBvxBBNAUtYwVDFrHzKU7ii75plTHnwAdhk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09saXZlclBhcm9jemFpL25leHRjbG91ZC11bnJvdW5kZWRjb3JuZXJzL21hc3Rlci9kaWZmZXJlbmNlcy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Unrounded Corners","summary":"An extension for making the corners of buttons and widgets unrounded","description":"# Unrounded Corners\nA Nextcloud app that restores the corners of buttons and widgets to their original looks by unrounding them."}},"isFeatured":false,"authors":[{"name":"Oliver Paroczai","mail":"me@oliverparoczai.org","homepage":"https://oliverparoczai.dev"}],"ratingRecent":0.5,"ratingOverall":0.9411764705882353,"ratingNumRecent":0,"ratingNumOverall":17,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhGYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwOTEzMDcyNjMyWhcNMzExMjIwMDcyNjMyWjAbMRkwFwYD\nVQQDDBB1bnJvdW5kZWRjb3JuZXJzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAsWUTCdmPJUQ4ZaAepPC9zkySytVNIM32A3IyuyygxelL9SJFV0e2X3bH\nWUoYEbWbvZ3wAjw/h5+uVqVVxKq4gt3I5OAULruAq3IGyBko+r8VQvKAQReprAWy\nTphH62V+nQHrOpHwipEA9w0DaWC9kb3SWXevYO5FVqfSkhKYE4nj6QG83LREfEbx\ntnVIwEbU7zUek9uUEsHCmoUlY2libyMr1teffa0hwRGQ0ZRTZuyOgC17/YE6QFVc\nBx9xYO6Jxv5YXsaVWIlaMIThNskYYGsglrSyYkr3fac3dJTQPNZf6Bq4Sc7Dr9N+\nqtu9dbSeIClRtBKw40x4UWVnmpu5M2txbheAEAmQmR+RS65vDkdHS2kj9wGITGz6\nPcr2Ig+UspKDzAxwbgOhu794cx45uWUxZKmXksmFCmkgHKc93dn7VBcYWjJ7TUlj\nH9qLrVNwme8fwrZoybvjTDaNKlvhgYVnhEX9bCzeCQRqqlWub4Rir1pWbJEEM8SF\nEUPArotmYznV2iJrBVPC+9OCGR7tvZadqYnWVgrXGX/9SOGEErMB4jinYdbJQMlw\n9Ru5anRZXMUlB/XoA/gt7DEfUol5xPipQ7u1QhCR+wtrqORAhdLF4KVZmmJY86OK\ncVPX96AOg6uifC3OY8+04D/tibJjnj/qNceEEDN1UM/9M2AbA1MCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAOlq/ZIP9jH1EgKzg0FHsN9X8RqKaJ36uS2FHAHPSXRmj\nQ8gL9sH5znXgfLTSZjcpqbhVHGmCwcnHheTeKcsEJVRpLHkLRK/YuEDZC+WZIvRR\nvvXMOETjE7jEO5GsFcMDWKMvCjGU30544hH8DhQQLLAYAtHg0iKAV5HPGbDjn9Jh\nGqKUhhd1E5LtyElslJs9gCAdcKB6yseWNkx7BBQLN443S7nnrNBBrstJbFe3lZg1\nuM8cuXVu19Uo+aWL+NChVfA3BP+xjGrbZ+eLxX1ly/W4Nw88TOIR2hJ7DSmUJ6RG\naWKgPi+3ZbP8+aLIiNlz8oJLWjz9WyHSy/Yy7MsPZA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"eva_ai","categories":["ai","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SchBenedikt/nextcloud-ai/issues","website":"","created":"2026-09-09T15:07:25.623231Z","lastModified":"2026-09-17T15:13:21.544046Z","releases":[{"version":"1.4.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchBenedikt/nextcloud-ai/releases/download/v1.4.8/eva_ai-1.4.8.tar.gz","created":"2026-09-09T15:12:27.110506Z","licenses":["agpl"],"lastModified":"2026-09-09T16:17:17.888924Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"FtoW17PN07DQn7ENjB8EhVKJELpurvDI0I6A3yar3tc8q6uOI03OG3OBOiKszNkr\nQxpeQF9JJ66PFoWsahL95guXBWBC17V0/8Mj8jIoGZ9LG7SPF6Gipa4a/dP11Hw1\nYb9O22kYPCR2QsGfZ0wQ3YRQofSiSAYZpMZw5QzfYS/WnCcVFO9ecHv8Oo/CKtHp\nMc3IsVn5wmeIVHF4CIEmcFQ8GBJJj1JCCBzs9wqA0rvjZ/5sLzsOipZmZtsFHTvv\n+7e0zN9S0ejAu/YD+G7cMNqtSn3WjYFTcnL84E62yoNQgsjRyqUcCK2/V/vKeRCt\nVWdXowj5Agtl9eftI6glhfAghwPFSoQx5BMefV/ocJdxz7TL2Fgp3gRsfhsJSVkK\nBARo3z9tkldDwbXxErPPJvHjR+e+2iMkTPpG8CRu70GRlZWJfBExLvffJNrBR//y\nm4zE57MNUNvIDxTmAQPxNM3X+AxYmXPFxwMe+MURdWgB1/j0AAthAX1EnqeO5x8y\nsy8iCEQ/0eMArlNcMCQ1260Sr82eqkV7i6BiiPbrNUshQvRQ4YsXIGjRQcXQY6/n\nvUIKuftvFTn8+vJCkcuVrrW5Vi4Sr4btX0TwRDMt+jMHNzmVHy+nqUkCfXdsL1M/\neb/+rtpznpY+ge6I4rAPY3SgphgnX3GP8cr2miTqJ9k=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.16.96","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchBenedikt/nextcloud-ai/releases/download/v1.16.96/eva_ai-v1.16.96.tar.gz","created":"2026-09-17T15:13:21.521940Z","licenses":["agpl"],"lastModified":"2026-09-17T15:13:21.579163Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"Q95Srn5WWPD1QiQ2ulcG/rzhjXtxEVAQt+h9u+LHFORHYxJcWnIP6O+5penZCCah\nhMOvtC5Q6zsAtjFxg0sMwUdCTHg5YNCCdVAeDg2sGmtSuVag6iw7Zc+JoJ1nYhRU\nLxBL6TpaLDGy35zNvsJcQPkCYHrfb9wbsA3nHlhLRErzMSGxCS1ivXq8ogQvad5d\nU+ph6+ztIV7MXbzPyqP+1SaGgj/LxTJXxeUnBJcoeN2a2htU5bUNckP9vcdnojGI\n0IA89y53uSj9xosS7Svel/RfcFm2DAyLRZm2oOhnyiK4jFtmUH6HLmEh/2W/BtYx\na1ndE0J+2KMX7i72tklA89kBX+DUBDwZNCxFWm5FipxaU0EM4BywA+kqjCu/aQk6\n9Y1svaeGzU0Qkwkf/hMweE4GQIh2qX15dQQtj1sQxBwZg4z42h7QS39z6iFEW8XW\ncl+hquLv0ob62/RjksgiRFBMdH4WmN2FKAKJ4HG+xtkHbTCld4DE1BYGISO9tDd/\nqlzjoG0jZRPAF2SDEqvTxb9Boc9ntmJIZP3poU3WkFhntM4W2pHZlps09r9DyUBB\nYJSSfmyz/SPAttzgYXNtOlVa0RJZ+mnDjldKu7kaBO3LyYk8p9EeRHreYKF08jjB\nxRwhfr7cDTf/wa2736Mbxl3f2lZ9zpaMt215vs92Th8=","translations":{"en":{"changelog":"### Hotfix: Restore native Nextcloud Assistant integration\n\n- Fix `AgentInteractionProvider` using wrong tool surface (`SURFACE_WEB`\n  instead of `SURFACE_TASKPROCESSING`), which caused the LLM to receive tools\n  not allowed in the TaskProcessing context on NC35.\n- Add missing `output_attachments` key to `MultimodalChatWithToolsProvider`\n  required by the NC35 multimodal chat task type.\n- Add missing `output_attachments` and `sources` keys to\n  `MultimodalContextAgentProvider` required by the NC35 multimodal agent\n  task type.\n\nThese three issues collectively broke the native Nextcloud Assistant\nintegration with EVA AI on Nextcloud 35."}},"signatureDigest":"sha512"},{"version":"1.16.95","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchBenedikt/nextcloud-ai/releases/download/v1.16.95/eva_ai-v1.16.95.tar.gz","created":"2026-09-17T14:08:05.627726Z","licenses":["agpl"],"lastModified":"2026-09-17T14:08:05.707827Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"GcwytAHeRF/FXHlXgZiz4WEULgrjaathd/peS/aV1fYv0mCwNEY5xjI7F8wXA1wc\nLV0S19oFv13r75Skd2Bxh+1m4muKHQX2CzQ3XuVNssgkUyehHpAo3vcGQbE/aRO+\n1zaS6TQLNkTwfsdnMcWXf3IMLhzswwrC1wwrLPJfU3Ib1hM0SMYCruHkWzpychgi\n++lwn/upHUCVLp9kw4Vo7mrau0HmLF/fxUsWwHUcB5JFTr1UzFsbVHitPVoSDhAn\n4aSegWHF6YGILBN03POF73qJ+YgtZgJH/v8oQ2WuQ76M1McnsfK21EjXJQkr7n5q\n4P8eKL9c2AjTjQHUPKAC7jPL8k9sjWbJTKgyQPFQaAtWWxkkjiSscVbBxO5catcC\nC0ycC3cdHG2FtCBeIByExWsO4WWJW5ZU0DR6RhhURbzqxUluZVN3NLxjCqCEP8kn\nkHkBjkRfktSJgErMph4b3MRlLSCIU3tm54g+1AIbrGeG27YD8eT898yNgpPvnmBz\nxfXNka/6RS3eNWI6nyhT8fHSFmkeTp+8mDoO/gwOAlfd5nZgjrXG+Jp6z/Fnqy2f\nn6Cxfq31J+LNA0cHkta5yiY8G/yAUPW9zQXirqyjqiUiLZs53731v4vkpRo5+et8\nrjgBBREQDFp2PJSWhThW67XA2XQgsKjA+tQx/yhPIIg=","translations":{"en":{"changelog":"A major release that transforms EVA from a RAG chat tool into a full multimodal\nAI assistant with vision, speech, audio, image generation, a plugin system, and\ndeep Nextcloud integration.\n\n### Multimodal & Vision\n\n- **Image analysis in Assistant tasks.** A new bounded `core:analyze-images`\n  provider reads Nextcloud image files and sends them to the configured Ollama\n  vision or OpenAI-compatible model. Native Ollama image messages are preserved\n  and translated to OpenAI-compatible format for remote providers.\n- **Image generation.** A bounded `core:text2image` provider for configured\n  OpenAI-compatible image APIs. Generated images are stored in the user's `EVA`\n  folder with returned Nextcloud file IDs.\n- **Sticker tool.** A confirmation-gated `create_sticker` chat tool generates\n  PNG stickers from text prompts and saves them to the user's `EVA` folder.\n- **OCR.** A local OCR provider for image/PDF TaskProcessing inputs, reusing\n  EVA's Tesseract safeguards and per-user file permissions.\n- **Multimodal chat.** `core:text2text:multimodal-chatwithtools` supports\n  bounded image attachments (up to 4 files, 12 MB total) with the central EVA\n  tool policy.\n- **Multimodal ContextAgent.** `core:contextagent:multimodal-interaction` with\n  bounded, permission-checked image attachments while preserving EVA's\n  confirmation workflow.\n\n### Audio & Speech\n\n- **Audio transcription and subtitles.** `core:audio2text` and\n  `core:audio2text:subtitles` providers using configurable OpenAI-compatible\n  audio endpoints, with a 25 MB input limit and per-user file permissions.\n- **Text-to-Speech.** Configurable OpenAI-compatible TTS output stored as a\n  Nextcloud audio file.\n- **Audio-to-audio translation.** Transcribe, translate, and synthesize with\n  bounded provider calls.\n- **Audio chat.** `core:audio2audio:chat` transcribes a voice message, answers\n  with the configured chat model, and saves the spoken response.\n- **ContextAgent audio.** `core:contextagent:audio-interaction` routes bounded\n  voice input through the confirmation-aware EVA agent.\n\n### Provider Configuration\n\n- Modality-specific profile fields (`image_model`, `audio_model`,\n  `tts_model`, `tts_voice`) are now surfaced in Settings so image/audio\n  providers can be configured without guessing JSON keys.\n- Guard native TaskProcessing provider registration by the availability of the\n  corresponding Nextcloud core task type, preventing Nextcloud 34 dashboard\n  failures on newer optional task types.\n\n### Terminal & Tool System\n\n- **Native confirmation forms** for terminal commands and command sequences with\n  bounded interactive `stdin` input and per-command prompt support.\n- **Terminal command sequences** can run up to five bounded commands in order,\n  with redacted per-command results and timings in Agent runs.\n- **Terminal traces** expand automatically in live chat so confirmed commands\n  are easier to audit, with exposed execution timeouts.\n\n### Connector & Plugin System\n\n- **Generic connector discovery** probes common OpenAPI and Swagger YAML paths\n  in addition to JSON descriptions, without requiring PHP `ext-yaml`.\n- **Schema-free GraphQL connectors** are discovered through safe GET probes and\n  learned as confirmation-gated POST operations.\n- **OpenAPI YAML discovery** works without the optional PHP `ext-yaml`\n  extension through the bundled Symfony YAML parser.\n- **Plugin safety hardening.** Mutating or destructive plugins are always\n  confirmation-gated. Duplicate plugin tool names can no longer silently\n  replace earlier implementations. All five execution surfaces are now\n  supported, including RAG and task-processing proposal runs.\n- **Plugin metadata** is exposed in Settings: risk level, execution surfaces,\n  and confirmation requirements.\n- **Connector presets** for Immich (X-API-Key) and Vaultwarden (Bearer) with\n  security-focused documentation and recipes.\n- **Connector route learning** with automatic refresh of stale discovery,\n  validated path variables, and authenticated endpoint probing.\n- **Custom OpenAPI schema URLs** for connectors with safe path parameter\n  resolution.\n\n### Talk Integration\n\n- **Read and write Talk conversations** via `list_talk_rooms`,\n  `read_talk_chat`, and `send_talk_message` tools. Messages are posted as the\n  signed-in user with no bot label.\n- **Focused Talk bots** for research, calendar, mail, and files, preventing\n  duplicate responses.\n- **Email summarization** through the Nextcloud Mail app.\n\n### Search & Indexing\n\n- **Nextcloud Unified Search integration.** EVA's indexed file knowledge is\n  searchable from the Nextcloud search bar with live VFS permission checks and\n  direct links back to Files.\n- **Direct file search** now searches unindexed Office documents and reports\n  bounded diagnostics (nodes visited, documents extracted).\n- **Index lock recovery** prevents stale worker locks from blocking indexing.\n- **Partial results** on folder errors: accessible folders are returned even\n  when a nested remote folder cannot be listed.\n\n### Dashboard\n\n- **EVA starters** on the Nextcloud Dashboard with focused entry points for\n  common tasks.\n\n### Performance & Security\n\n- Memory bounds on index traversal, connector batches, and background queue\n  scans.\n- CPU spike prevention for local embeddings on cloud chat requests.\n- Session lock release during long chat requests.\n- Bearer token and credential handling hardened: secrets are encrypted and\n  never returned in settings or exports.\n- CSP-compatible native Nextcloud controls throughout Settings.\n- Third-party plugin output centrally bounded with credential redaction.\n\n### Bug Fixes\n\n- Talk chat histories are now properly indexed (previously threw silently on\n  every room).\n- Long Talk messages no longer break room indexing.\n- Google News redirect links are filtered to prevent consent interstitials.\n- Browser renderer now correctly reports availability and searches the right\n  directory.\n- Connector credentials are preserved on blank edits and properly\n  re-discovered on reconfiguration.\n- Shared calendars are included through canonical CalDAV ACLs.\n- Stale chat locks are recovered reliably.\n- Settings controls remain visible after rebuild.\n\n### Documentation\n\n- Complete external service plugin recipes for Immich and Vaultwarden with\n  ACL, secret-handling, and test guidance.\n- Terminal prompt guidance and connector quick-setup labels in both modern\n  JSON and legacy JavaScript translation catalogs.\n- App store screenshots and polished listing."}},"signatureDigest":"sha512"},{"version":"1.16.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchBenedikt/nextcloud-ai/releases/download/v1.16.0/eva_ai-1.16.0-fixed.tar.gz","created":"2026-09-13T08:39:56.033761Z","licenses":["agpl"],"lastModified":"2026-09-13T08:39:56.098782Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"pPMLmECSx1rGV9ySF+KlYC0kSxVQX0gSIDXiusrwd1tKrbsnTPvyY5ZJa9JZ/A1L\npE9RNff0ugR+Iu/mH6pbjKYA5XbRtg2Y7QbRXHvCcfddSRQBIu/klo54fMUZdNIc\nrBjlD0uJaOUhubyssmNyoTSie56ndOQC28wMAAAjyO7aiIvPmNt/2gcnKcLEsizg\n+WXUWDUDS9H8n00X99VAqA+8IdYts3vRD+vYc3NXAdJDXcUr02YpcmqRzcOe7NXG\ncB8qzhICy2RhAQmcyanzoltucScHK+bQ1zvpAYpqeepijtvMjn1it3KqW7aCDKfH\nVHzyAjS+N0N5xxpcoKFJanN1cRXuy7UU11BT5Vgoz5i4mfrBPIoSqLgYeoxl3I+q\nYNFoo28F2DDMfVS9MEG0HNmbNgm8diqrVD8ndQF8oGyn0XSknOEawcxHBRPGzEsv\nB0DoE4KtQIooYGCsAqioapAabA9EpEcEtFcffoZoY+EI4JrHjcpaxnDdDHuJE8jC\nTLT/pZaOiiUhnTHL5qmjd54dsi9OEvcc+fm1npk2TNNkFzvTRsVoTacKy2RmgQsz\n+S9SX21/huUxhkNbS9jBFPAztfbS1tmMzeT8KHGckgWgdxq1XXx+dJ+/5xLMGSqO\nD0wk3kltGtLFUPVnEpivHoQ0fXnwcfPAcnyWpWmYJvU=","translations":{"en":{"changelog":"### Added\n\n- **Multiple AI provider profiles:** configure up to 20 OpenAI-compatible\n  endpoints with independent IDs, names and models, then select them directly\n  in EVA Settings. API keys remain encrypted per user and are never returned\n  in settings or exports.\n- Provider profile validation, documentation and localized settings labels.\n\n### Fixed\n\n- Background agent runs now reschedule themselves while work remains, and the\n  status poll wakes a missed worker tick so queued messages continue promptly."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Eva","summary":"Private AI assistant — RAG chat over your Nextcloud files with Ollama or Groq","description":"Eva AI turns your Nextcloud into a private, searchable knowledge base powered by Large Language Models. Ask questions in natural language and get instant, cited answers drawn from your own files — fully local with Ollama, or optionally via Groq for cloud-hosted inference.\n\n## Why Eva AI?\n\nYour data stays yours. No third-party indexing, no external databases, no cloud required. Eva runs entirely within your Nextcloud instance, giving you full control over your files and conversations.\n\n## Key Features\n\n**Intelligent File Indexing**\nEva automatically reads, chunks, and embeds your files for semantic search. Supports a wide range of formats: plain text (txt, md, csv, json, xml, yaml, sql, ...), PDF, Microsoft Office (docx/xlsx/pptx with macros and templates), OpenDocument (odt/ods/odp), EPUB, saved mail (eml, mbox), web archives (mht/mhtml), Jupyter notebooks (ipynb), and many more. A file that cannot be read is skipped instead of stopping the run.\n\n**Hybrid Retrieval Engine**\nCombines vector-based semantic search with lexical search (BM25) using Reciprocal Rank Fusion (RRF) to deliver the most relevant results — even for exact-match queries.\n\n**Cited Sources**\nEvery answer includes the exact file path where the information was found, so you can always verify the source. Answers that used the web list the pages they actually retrieved, with their site and an excerpt, marked as web sources.\n\n**Nextcloud Integration**\nEva can perform actions directly within Nextcloud: search for files, create documents, rename items, and work with templates across your entire home space — including Notes and Contacts.\n\n**Ollama and Groq Support**\nStart fully local with Ollama (no configuration required) or optionally connect to Groq for cloud-hosted inference. Embeddings always run locally via Ollama.\n\n**Zero Configuration**\nJust install and go. Eva automatically detects your local Ollama instance and selects appropriate models.\n\n**Talk Integration**\nOptionally integrate with Nextcloud Talk for conversational AI within your chat rooms.\n\n## Requirements\n\n- Nextcloud 30–35\n- PHP 8.2+\n- [Ollama](https://ollama.com) running locally (default: http://localhost:11434)\n- Optional: Groq API key for cloud-hosted inference\n\n## Get Started\n\n1. Install the app\n2. Ensure Ollama is running on your server\n3. Open Eva from the left sidebar\n4. Start chatting with your files\n\n## Privacy\n\nWith Ollama, all processing happens on your server. Your files never leave your infrastructure. No analytics, no telemetry, no external calls.\n\n## Support\n\n- GitHub: https://github.com/SchBenedikt/nextcloud-ai\n- Issues: https://github.com/SchBenedikt/nextcloud-ai/issues\n\nLicensed under AGPL-3.0-or-later."}},"isFeatured":false,"authors":[{"name":"Benedikt Schächner","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhQNMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA5MTQzNzEyWhcNMzYxMjE1MTQzNzEyWjARMQ8wDQYD\nVQQDDAZldmFfYWkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzRglF\nDPuPEmJfL1tyVQrBjgIsK4NxrboZpenPOHtcTy7zhmNuJPziM8EJSm+Spi/VR3se\n1ReHbH4PgVme+QSZRBZXkbPnj+1HWh9IdVPiUBBXbpyVzyv8sa030BpCR6/wxeo0\nQkYw5jkMrRtCq9Qw0jIrV6T1lgBCvn9dv8KW0sVz6GJLbC66WwJ39oQ4Mtzd4d6x\nsHc5xmQ85mdX3r0mzgi55hVmH1zsrUmXKpNxyTgJlGBbfUK+kcoVLUMcyALL2Lj/\njbbcM7owRX2V4h7u5LKuyxSa+NyzE81l4NF5dabYKcE33YVHbeJYMiAHgWo+wVTZ\nyY+aZi9XSzhdrPfXDGek+8k0QLnLVcgaWEG2JtKA86N5ZDccz4tNUmiem6fOA2Tn\n2ZnD9FNLiIGYMLP/uHlv5JfR0Y46bil/Wl4gLkm/fC+b2WhqHrmtnT3e/Dy8GGBd\nnABSipSYSJpRO58gR6nmLOCyD3A/THAsjVzF8ds67cyFzJkACNqk8G14QAwlQoeu\n90Qny5XYvPqckFxv62VRlVGzoY/6fINgZ/XmXk/+NSi5SvTcEEtFI7eXYAdbQFmp\nod4IZ8SMwFRgnLbpPqk20h6kRlI8ObaQV1JqMrIWRA87mpOakmKoD/9yTUTNEzFm\nk9bW3dzoXFk39nVLfm/mCT5gxY6acVW6q1moZQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBcMISl2Vwb70urSnuXHw+xPsPuHbNSnbpMBZ0sjuqzSN2co/ZqJmJF+xun\nYXBI5fXg/sVOS6wCKXEEWDfw+XHZa4voIGfiH7oRKs7lNJqpayVNGqroQZ0Ky7BD\nLI1fTgLhsXCnzkDwFOctweUDSmt7SpDGtyEXSUs5omstaPF4cdT/KxfLcIVC9Z/U\nbNAEtVeXujYFmXLjhbmGk2Sldnw88TerxeFK8cWPYdVjJA/FiMnJTdJ7VVaWAdsL\nPEE5LReGp00PMdwVPug+79rA+kIBT4XPIEAYWL9E6f2PKm2fmdNw4F9VWtsnreQ4\nvQSC/lGolZz19K19pL45hIq5qx0w\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"admin_audit_http_client","categories":["monitoring"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ernolf/admin_audit_http_client/issues","website":"https://github.com/ernolf/admin_audit_http_client","created":"2026-07-20T09:03:57.476819Z","lastModified":"2026-07-20T09:10:28.627098Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/admin_audit_http_client/releases/download/v1.0.0/admin_audit_http_client-1.0.0.tar.gz","created":"2026-07-20T09:10:28.600517Z","licenses":["agpl"],"lastModified":"2026-07-20T09:10:28.689505Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"HgT6/uRoDV4lGkJptPOviO9RZGFbjH8/sszd0hz7t3URm6mykaXJRC9Mboo6Ivo09fAgpR2HWHFmMT24BrOI6VBTRnGInCDH3HhogbDlxOEGxqRToMNM4TdYgoCNjzSCYb7S2m2HHS9tvE1vqcvnnrRAvCIYbdNAQ5/boAAKPa++cJMTVcpGX+grYfShuXBqBNCaGAPrIxxE9jQUFbry0njQpqqShBf2z0NZHJ2Y2l1PfJFbC6tT6uA74mNelm2rpeDP6Tpkp5dZHRQi2PEjUsdDiW13SWRgOESdn6PhRLwQFOmS2IYN4ZSKHs2mtbomxO5K4SNTvhBuN+Cb+MwLcgB2mVfaAGe1fvfmXtNdJ7irctW+TY1LfTaxwDYyQDNLN3zyXYqZkq6eXEt3h+Qcg9qSGOkImGbYWRSyHIWFBvlVV8xhR8rVRi2eSRtQVXMs9Vdh94CEhGnju4E44qoSzWL0RZ8oXRT4UvTrCT7OHJrdbQ8xMAh0nTJEqZrREUkH6tCzDjLA6QqMiag6KixN5rkiQ9opibHuvXaVsy0RW3CrgvlFc1kc7fM9w11hwEhCgh6xVSBlHAfuhM7BGaORGSbP0B87iZrgYrSYHYkEar+Lifnu+425SRDzB1ipteFl2kxnjjAymIEoRzvC4ZH2ouxLwwqIm+tmXjR5n+B/8gA=","translations":{"en":{"changelog":"### Breaking\n\n- All config keys were renamed to the `audit_http_client_*` scheme (`audit_http_client_logdir`, `…_loglevel`, `…_format`, `…_exclude_domains`); the old 0.2.0 key names are no longer read, there is no fallback — rename them in config.php when upgrading.\n\n### Added\n\n- Redact sensitive request and response headers by default\n- Redact credentials from logged URIs (query parameters and path secrets)\n\n### Fixed\n\n- Declare supported PHP versions\n- Adopt the optional handler parameter added to IClientService in NC 35\n- Replace the memcache stats store with a process-local array\n- Report immediate-path compression stats honestly and injection failures louder\n- Make middleware injection idempotent and header lookups case-insensitive\n- Clamp the log level and count rewound stream reads once\n- Substitute broken UTF-8 in log entries instead of dropping them; rethrow non-throwable rejection reasons cleanly\n- Derive stream consumption from the read position and report detached bodies as unknown\n\n[1.0.0]: https://github.com/ernolf/admin_audit_http_client/releases/tag/v1.0.0"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Auditing / HTTP Client Logging","summary":"Logs all outgoing HTTP requests made by Nextcloud's internal HTTP client.","description":"Extends admin_audit with logging of all outgoing HTTP requests made by Nextcloud's internal Guzzle-based HTTP client. Logs include method, URI, status code, HTTP version, request and response headers, cURL transfer statistics, and compression metrics. Credential-bearing headers such as Authorization and Cookie are always redacted.\nNo UI, no routes — pure audit logging into per-host JSON and plain-text files below a configurable log directory."}},"isFeatured":false,"authors":[{"name":"[ernolf] - Raphael Gradenwitz","mail":"raphael.gradenwitz@googlemail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEjCCAvoCAhOhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNzIwMDg0MDMwWhcNMzYxMDI1MDg0MDMwWjAiMSAwHgYD\r\nVQQDDBdhZG1pbl9hdWRpdF9odHRwX2NsaWVudDCCAiIwDQYJKoZIhvcNAQEBBQAD\r\nggIPADCCAgoCggIBAI9Dd9hNx/lUi3RTZJop4tYRmUQp86fNX4X2DS2RnAGIbUUT\r\nrH23P5o/8cau+0+WnMwNQWAa4J/EhL8c5m7fWXCzQHleFpun45ubUaUxnf5Prf2u\r\n7eROIgL8hGksJ345e0HHP/ShgmmvHtti34RV/kxNgN2r4XJGE3rQso72jHDt6czW\r\nfOp2co9cB4NQPVzaIE3qa3J+gvP00cyR5j9RnRPKOI5lC+hC9SuaMNZ0bCAcj6YN\r\nLndPqCpH5Y+uKy9ZEgZlptD8o9ojgXtQodwE8celK8Nc4mmvKK5NehQAyKb2GjIV\r\nMPbsvNcatxu7mCMw9zRMnLxXZgX5q578XezeTymOll9kOkIO59yCU3E85RAOVIQb\r\nIoHKOp1TUInTQ0TOhVdpxaRAc62fH4ClmTbvY3ay2BzeukzGBdLAgX5g/+2Tazq3\r\ndQQPC9qTdBu20xQMvXHpFW9X0z+xSg1IwEGaHpi68eHCUTIvRaRbc9yBggANCGMQ\r\nTEGYjflBwmzAOblExu7ZapZ3gPcgZjM8wZqXHfTc4flWdl7cYY/ifId3xw6Nr+rW\r\nk6apAbfqZQgxWnnT8ShrJjyi+a/bS2FN+5siaAdTm2LFFEVS3sIF7mpMvDIpfIW0\r\nU2A3TjWaaIq/TyO/eWghcLxafe65inNj9mJVSE90KlTQVdAmTwMcFkkXT4YxAgMB\r\nAAEwDQYJKoZIhvcNAQELBQADggEBAHToriLANPBXIbiTdK1JvIqWXdQbF4UL92w3\r\nbCx2rZYQvET6BmP72eyXQB45v49ZHax6BGyBcW+RkvvRRiz0iabIcP0QfWF6wo5l\r\nKaunDRjMQWZ3OS28xyruosbTj/eDom800bpwTlqZUaVb4JDXjd+41U9KQAr/BJga\r\ndbF70EoBPH1JJvcLhQ+f2u5bwjWmKMqO6f/4q3MhEcftdEFzcxBWmPuip3xKagbP\r\nfnV6sq7eSNYc2A4UTg7SE4auHP2iVIWtEw0zHkUXpP3XHGnt82qtSEziW0rct4XA\r\nYVEyvrG4CiSeZrnDNYsU/Z6Qg8b6VqfiHMBx2D7++ZP1DiiSy+4=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_migration","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"https://docs.nextcloud.com/server/latest/developer_manual/digging_deeper/user_migration.html","issueTracker":"https://github.com/nextcloud/user_migration/issues","website":"","created":"2022-04-08T17:59:21.768034Z","lastModified":"2026-08-13T11:37:10.270585Z","releases":[{"version":"10.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_migration/releases/download/v10.5.0/user_migration-v10.5.0.tar.gz","created":"2026-08-13T11:37:10.255499Z","licenses":["agpl"],"lastModified":"2026-08-13T11:37:10.308680Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"bGKHpcpTbFFEWONtJ1NpO6iLPlgseUIXZU6n/hvx6R4On7G80tDe6wiKEuiZUWv8Ij9zDNMpwu2WPnYEjE8W1Zp1+jXSUJWd4g5xA4gklPIQoopmkr8QhQnkDyBYAwnNHfK8bSkXulp4qQcySm/BuOM3Lgik6+ch5ifuroVjms002R5BqR1eV2C9/cMVlFTCik/BMw7IX7p3DOGQyqG4my+Yxe6WZID6Qye8cG+9bfYKCsuYut0h2d0pXdaOaqAIMThj6f1hz1TaJh0oHuSgI3nuoEhq7+SjUjB/Fqq8RXcPfZUfL3NuixOA5UxYlLkhB3dvwGh1SKFGAoe2cIbnoqwjr3yiBhPIweUDCtoI/2faNHPEv+WtufjVDNfM7GXPXrYZRcUQKBQuPQSgIGBpT1OsAjGIj48911XHFfovGG2Z7p8lFEMqoxC6vmF0Zo0bdOkRUS+m+DC9Uv/rvc6bEbGOEBxxUUcVwG/QyfvVFVl+6KwmCRCh+Lw28QnmAONqIfY9aZMx2hMaI9GX1Pds/94FUQLarYkAy4kFp5oiWllGjXmCooSRkKtovbxqWpEOQyZR5t+vgjRWKaydK10+clvxLvlmjkx79Xaj+tuQOZ/VOUq9lx0oBovVS1LvEnPwKuyxAVGaBk7V+QELKDdpsiFUjeowNlfk+Nqdd1Uq2xQ=","translations":{"en":{"changelog":"### Changes\n\n* Add Nextcloud 35 support\n* Fix deprecated InvalidArgumentException\n* Dependency bumps"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX21pZ3JhdGlvbi9tYWluL3NjcmVlbnNob3RzL2V4cG9ydC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX21pZ3JhdGlvbi9tYWluL3NjcmVlbnNob3RzL2V4cG9ydGluZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX21pZ3JhdGlvbi9tYWluL3NjcmVlbnNob3RzL2ltcG9ydC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"User migration","summary":"Migrate user data","description":"**👤➡ User migration app for Nextcloud**\n\nThis app allows users to easily migrate from one instance to another using an export of their account.\n\n- **🐱 Log in to cat.example.com/nextcloud**\n- **⚙ Go into `Personal settings` > `Data migration`**\n- **☑ Select what you want to export** (settings, files, profile information, profile picture, calendars, contacts…)\n- **⚙ Start the export** and wait for the server to process it\n- **📁 Download the resulting file called `user.nextcloud_export`**\n- **🐶 Open an account on dog.example.com/nextcloud**\n- **🡅 Upload `user.nextcloud_export` into your files**\n- **⚙ Go into `Personal settings` > `Data migration` and start the import**\n- **🎉 Enjoy your stay on your new instance** and close you old account"}},"isFeatured":false,"authors":[{"name":"Côme Chilliet","mail":"","homepage":""},{"name":"Christopher Ng","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6428571428571429,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhHIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNDA4MTEzNTI2WhcNMzIwNzE0MTEzNTI2WjAZMRcwFQYD\r\nVQQDDA51c2VyX21pZ3JhdGlvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBAOtLl9LthZcKaxwNsduNGYOfRBygWtzjm8eURIja2kCTa/ntBrOD3Aq284H6\r\n/W4HINa+Yt3TyYTmFFksdNGtsrPPTzrtP86wQz+8X6MRwAKvPa1ExqVHHErbKloE\r\nowUmPb7qN7PzrnuucYrLvdlSUv0klKmCH4JNu82lgZeav2LTwIcpZidMygrCHH5F\r\nMt2pAd7xEyIdP3+w+aUD8S7X8AKsFKVp1icciKNuziIVWEZ1GnXYdnLmIE/ikFY8\r\n1HcTXGyg8NqSCjVPU+tMAKaJ2mHjuiDNJXGGdbe1oG1oXaLT3JYqU4KdCuhXGKCf\r\nId+qQMq1MPRFSIhE+T6rz+beuTbmNrigkAAcKpu5Wf1SF++LAjbXTkhWXMQgQQ3k\r\n4kqypWPV7iXhmHTM/6KedfgrbCRhs+mqRVvo8Lw5l1CKo5EAj6U6IqacyMsMSwDM\r\nc1A8AC2VEtfAZdywQWlzJvkGZVrwhjThhldd0UjMfZ2TnoE+Vr9vXBtOQEUW5N09\r\nbofQO5vFQd7hXwsu7Y/psTx+YHd4vdqXqofY+5/aU00i8vEtFCmtIm0rRg3NEkTs\r\niFbeyLS9aynx94bpwlxXEYlpwql2w4apeVzvogNTwtTyO7xe+he572UapGjM1J/1\r\nwc/eN4pBM1e6CitYEPeDQxGiwBhadWlLGmia0kgROsgou8ubAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAHAnyKPgOWCYdzVVWRlWoEfTS41MngoPLliQWQUkYEHv4whP\r\nQJWWYAJDQeOnwRxfOUCkW8zNGlyjJyOfhtyBo523sjp7spQ7ZoOuTH1Z5agcM/ui\r\nobFEKJOWWXE3lmTEROdjSddmlmICgc8oXXiJwY8RYYdvX6Oj90eVq5lB1R5QLtyH\r\nBtlwW+9RoKyO57/+/HMc4y04QJ3EViHouQdYTS2i2hfZQo6/cv0cGDqrN2GBd3rm\r\nze3xWvk1NQ2/VkNnQ8YaGDT1T6/aTKFRJPZn+rMHC679psewQhbbswKe9ZAXgwK3\r\ns+W76Z3TpcwsiVhE9SLpvvLs4JMEfN2oUizVJ3Y=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tasks","categories":["office","organization"],"userDocs":"","adminDocs":"https://github.com/nextcloud/tasks#installation","developerDocs":"https://github.com/nextcloud/tasks#developer-setup-info","issueTracker":"https://github.com/nextcloud/tasks/issues","website":"https://github.com/nextcloud/tasks/","created":"2016-12-14T20:53:18.062164Z","lastModified":"2026-06-29T20:49:18.070644Z","releases":[{"version":"0.18.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.7.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/tasks/releases/download/v0.18.1/tasks.tar.gz","created":"2026-06-29T20:49:18.043594Z","licenses":["agpl"],"lastModified":"2026-06-29T20:49:18.124577Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.6","rawPlatformVersionSpec":">=31 <=35","signature":"juuG7RnH9F5x9dg5jh9b2XGjjCBY2MtFyxHNS0vg+ce+GVIlLg1jwxV4qNdSik6s\nL8UfGq0Ppv3MwoDwRoYvuEeE5nlJPThhtM6yvt5wnJxy6ix98PjK/pBy/23d4ElS\nmmIKdhaC7Zod+dqMhE5Ws9PfOAgY+YVOuZs4dlM+Z6gBQh9c4hq1a2KiOUMbZfRo\nxpW5lSzlhmKmJnfw+UBqtNG6YhJRgAp9QDcW/odrGDf0txK2kMIzvqyS645vWXLw\nhFEayBjzZBiiG7skYgLf0I0/k8GwzLmfLH/fpmAUCGTx1k+hI+HpkRoaZeMimvrz\noZb800Y9suahFC2Y0zh4PzFE1PzTKOuQf92mW0KhEdxNc02ApeH6JapqnMfrgByy\n9g9CIstqFAyjLceuXo+/IUYfO57K/Guv7tkkY3l16jfVxRjDSJlUmYwTSMHdQ9hv\nJfOFEoOkzEiZjopbwyRgd7HnBLDMQpgwVyON1OHJTIgMI8SC7+w/5IMLEwWS0Wz5\nMGb2y7plAYf0SUnfSqjwtNvpbfD/oKO+yvbm8/K7FTvhgj4ChMPKLYYAxNt1mMdS\nUpRGKOC1shMU4TUO5H/5LxwNe76Jx2rlrqTSHw1F936CDCLjOkj5cjfim0+KQcqA\nfwrlWX1tBMyhHmNvbWSWchglham6MEDnxIqIvqlxznA=","translations":{"en":{"changelog":"### Fixed\n- fix(TaskBody): show due date instead of start date in task list #3190\n- fix: handle special keys only when IME is not compositing #3189"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YXNrcy9tYXN0ZXIvc2NyZWVuc2hvdHMvdGFza3MtMS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Tasks","summary":"The Tasks app for Nextcloud","description":"Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar."}},"isFeatured":true,"authors":[{"name":"Raimund Schlüßler","mail":"raimund.schluessler@mailbox.org","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8205128205128205,"ratingNumRecent":0,"ratingNumOverall":39,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEADCCAugCAhAnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMjE0MjAzMDA0WhcNMjcwMzIyMjAzMDA0WjAQMQ4wDAYD\r\nVQQDDAV0YXNrczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOq30ZT9\r\nfD3Z/PXkwj1QNV+LUP3wJpImqpMK9Mbgd0FwnDTMzw1vocL5eCg/Ep6nIechoD+Z\r\nICOChTUOxImtJQ4Vv5XsR+yvQls/XXY2yY1nywQDTzJheJD6uFngmOnvnqU1hUl9\r\nB2rTHrnWWAhqEpfa5FzFrlKfYHNEcb7aapd//zSu5YaVuGKsNSHUR5rP2AgO2a+G\r\n61dmQG0xTgj9rWt5xkTtFbuFTMhtDf23bTEktgibYPI86jk8+P8UZ3sonmVdF0O0\r\nWXnp4SPTQSpyEYZifRMsXI7uMkYKqOEF5pFpzz5MTgw0v3qJRpUUvWynKIe3wlj0\r\nqYSDTHuT+Zr2rKJ88q9Zlc251gUoVYigIJnfwkMDWy532QbP9cri9qP9NM2eQCpR\r\nraWIiNCwFuMsgKOFYIDhb9P7XiC58Ap1uMfuDfSJDk7WO5T/76tv0GqFWWqe3YuT\r\nylDmU7bICYW6vSywIqij5Zem7joRSamkxYRwvnuvIsr2RPlueN90BEV/5CkpJ0gm\r\nGtsB6d4jpYmLE/o8A4gaHVlxdzrs1EYzbDfHFvAyWUBTiujL9Fr5EQ/Z9Sy8ME43\r\nK8bgHmM5HZw7vZKhXXSb4WpZekIey1/Myw89wE0nYE8NM2Niajwo2CVtW6YNEWk5\r\nCEato8bBaANUWXsFCJCJt+Ou3hvx+A3yC3ZXAgMBAAEwDQYJKoZIhvcNAQELBQAD\r\nggEBAJSumUPZZ57odGdYB8h9fmgsO3WaYyryuchvA8asyjiLhl/oPF5FvWLF32az\r\nBxhHb1vDh2CFFjY9mnCLeHLurjYVf+ejGLm/iiyXOJ/khfM/rOTdO5ulB3v3Wwmb\r\n7PLGXNvA4wiETVo3WDMn4JXbDh42loXNvHxJpE/0B/UF7vXcRMMUUtPx1XdsehIl\r\n2lwSL85nOEsk8N/AyFt0tE0SF9lkRGPusQrT/zZISLnE4ejS4fhJu05l+WPegpLD\r\nThkSeD4WuidsVOXrsQeHTDSV4OmwmVCn+cPhUbdxezZ0qnZUoLw9tJIiRK5OCJOU\r\nUOjbBtvpqu43c5EM0CyWGKoV3wk=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"notify_push","categories":["tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/notify_push","developerDocs":"","issueTracker":"https://github.com/nextcloud/notify_push/issues","website":"","created":"2021-02-15T19:47:01.854918Z","lastModified":"2026-10-20T18:37:11.488144Z","releases":[{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notify_push/releases/download/v1.4.2/notify_push-v1.4.2.tar.gz","created":"2026-10-20T18:37:11.449063Z","licenses":["agpl"],"lastModified":"2026-10-20T18:37:11.526325Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"UTJUv3qukDAPpCqh4/EOE4H8+ZVZR1XfWDmST/LMehInwLpqw+ZyiBI0ZsIwpe5qHB/SgscFug/TsuO5WmfM4DcDZHdxQyt4drLGTEst1zmPzYc9f9cRRp5UmR/t1o2wjCfj8WcKgM6Zp1lc+fNSDHZ8MxRr1jj3bE729xvLpUKNl/biYVi3/uD8E/G+15iST8iD1Nd1WWAfuQ54Ori92zHqc5+ale32PqSr28MWV4tU/8/Za4Se71l1Kl3J4QOXqsSbBGcOP7clrm3q6sericmelJfV1xy9fOUszP4PLLlEtgS03HQK72yedksouwcaq7k+V8FOjNU2t9JUDBWN4V+UWsvku9OWspvPss/opLsjoB3RixAcNBYDncacsAF2+hAftdaZmhKMgBUyUM+uyNtGV8Y2xAjYYaBwqntVAaFnJXCEnScPieB7VypW/TxfvdE1e4tMBeVG3Sx9f59GoNhIx+6vTLA5BFykMSSZNtExTDL7TET8ewg1uqSnw9YlSp5pRrOeG6kSfCYxDuzRWPaminzoknryjSnRqbWCMhOreVxpdulJfWMdHsJqxclSpSM/zKHfvzlKL177xhKffxQX1nXoQ6vVbk5visfG3xNalwnpNUSbv0owskn5fFA/nrj7hs4yao4fWMrCye0BOR4OR5nrSZ2XVE4qCkdYShc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notify_push/releases/download/v1.4.1/notify_push-v1.4.1.tar.gz","created":"2026-09-14T22:21:38.707506Z","licenses":["agpl"],"lastModified":"2026-09-14T22:21:38.802904Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"O83PA/rKfbm142oYsBu14iM4YHzAGZ62UUpTKJE3K3cI5HFs1xzGYXlAzFLb0g7Mc+w4cTTlRyHBd942K7WA2ETHAg8cvWDOSnLkPaZghgQ2uLcrMksf2eAm/a8iR1S/9TqZ5bEaqDQdMs6kuL6+Wjqtd5Dut6tDsKieY2R/TWfuineYeTxxDpFK1AUzFSyimAH36EXlZlfYP2e7sOH8eSKwVJaizxXADpDu8zMldKs77TY+rho7THi3I2NNCiNv+pTKfqjI16y0HVxPkyouMCopdOsal5/KlwHx6sDiVls0Z5tuEARM7g8d54GX8lcvU4kp2N7H/J13Wc5kbYOE+9XgOeNgDCBdB2GR792MgS+eOkk1y7pDnf0TeIQHqgDXIbca6tRCD/F9rCcwxxBLHNI7nhSs4ZPRkLuxOMoh06fSxUdMRUtw5FdnCTEy1dYSOPuiHgLX2SNgXHIrXgYVLSqsygpuhgOAOOabjsizBqmaF6OIV19Kmw00sBPvFryWkD+ip99z6p2Z5C3NMH6dzq6meRRDFzBa7J7N+anqo4k7RoRn0bN511m5i2t8Is/TL+ktxz8e8z+rp7nHSa6AReOSZX7+zdIWLzPiZzRpim/y7tWCVnBb8/IpLti8Y9wSbKFWBBezG2MVpdl7ZiornPv3aQF9fou9KmvZlrfyFfE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notify_push/releases/download/v1.4.0/notify_push-v1.4.0.tar.gz","created":"2026-08-12T16:24:22.609429Z","licenses":["agpl"],"lastModified":"2026-08-12T16:24:22.713341Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"KJzyolvDNprrIswZWNk3wZ1ggu9TYimRG5OAyoOXZWqNUqTm47YKV0cGuqyPNQYZy6eke6khHYLxaxeyWapqF7R1RUDzlmvOeRy1rwXZWwyQ/+8ButU7B8dOrOWos2PHly0zK4X3pN6QE7FKiYh5e1MFkvzttp0StpIQoWg646RuGIrP7CCoAkfzgwCsJ2K7bXh6vBVygBcwmI4eH1/d9Ed92KoXQbHHz/HfU1z9o6e40ZUs/W40q4DX+RwnFUO/eZnvjd94oDnf/t3L5tnY9s7c+Ohs8lXLla9jDIDlcR0BL8Y0C8Xri1PFDalExSmYKNytxjg19atGyJhpBOEe5jEF3oknb9qJ2XRmLUe7XqoFi2Dwu1/5aDlLrwyXfZc8kFVmyhyh6s9GOn9Yd5oN5HvWl2yb7c1e5kh75stvMkPPOHFkQ9cIkh6kWpZifwSLQuf2lRDKcYa4+y8xA/4WlXkTSQZtc/aN/dXZgOpn0N4s+I8kZh7CPd0e81bBahtd6TsGGpOYAJfmzt2dS/jYVyvfHvyQo5u3NLu6pe5ju63bq7aXhW7U2CrqVvhmgMKeoFKu4NJqFtvv5qR8238irJC56qQEwj2aaKdA4lfud23LK1xirTLHe7Lvvb9K2nsfuRiN3lcr6DW76qceiC3aB+QwcEhdcY9aEh6D2LsmZc8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Client Push","summary":"Push update support for clients","description":"Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhFsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMjE1MTg1OTE1WhcNMzEwNTI0MTg1OTE1WjAWMRQwEgYD\nVQQDDAtub3RpZnlfcHVzaDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMV7kXIwi/iDJMtb0g67ax6zLN1yVL1KBNMtWCFze5+HVIU365Cpy/Lx53oIVahA\nDAcEGGi2W9BTtOndYuuZKS8a81ulOEfv/d+fmNTn+ikhJmLj6q+WMLkGHjJmljgs\ntDAeH9httqZlHbUYTl8JBPm6IBBTohhwb9q3CM77LDCAymwetX5HURYkwslsbnBx\ngeYRVcnt0LHd9pSmjXR5pcy6mpL5OQbD9KBcc1/r4tDqASHTXDGP44VlrkP6QVeF\nnkUYI/c9bt3eCLZ0Sjjcp7klqiYb7KTP4zYInkAf/5RbDnJ7vQxk/UR25pQD4MxT\nXi/IR+sGFeAzuaQHABf4un9QOtkyKKjQjBfg/lXwvbuWCzqWEczqaly6VP+wltPx\nDHEtK5HY1ukDRlJ7O460jSEwpCgmRQVxEGsxSsx04f2Qb4k4POZzx75IQHdB9j6m\npCnum7KNP9C4uyNCBLfmyAokD2wz32/2Cm/0ti+xjHShxyip20Bjm2Zh/SGXd488\n3fSY9DrCJqV9ehpsSjQR6WML/iXhqhPElCherUl3MQhaAFBgiT10QX6BAoeNZY1B\ndJj9s6oSmFJVPmN4keVdE0a8ZVfz6v1eHA3fTwPYtpw71DyZOd9HXbZ0Sv+y0mKg\nafcJPJfXG/iJdD7HUBO6yjm8mUDi013B1EcvNU4oLYQXAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAGyp8NnjJpgSepYTr/948msQHc+ppa49qjqdgdo2FCidgZmNzHxR\nuS8cSS1bdi8WRVQtHESkt2b+C7xm/wojMNNfylKa4A6g6RLm0kKIasknL6XqgP8U\nP0iq7o9tN4Yp8mnKhunraD96o8NAWtWIEv5DMER8XnVoRdrfMFoE4AX9vw7il/IP\n5u0/QjGchpqCmVA9AlhSLtEy0Vi0Ta2Onmj1vl71/eolS2f0zLZbsVojH07zjy3D\nF1OfPNoX9+TUOcZFO2RuMMW/fvktWYayW+8blDk4WqEnWRSxTz079+uL4xOyvpb2\nSZBck/l6shHeygRKvEKPFLZRjiv1sDRtnLc=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"kursumstufung","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Edukonline/IGS_umstufung_app/issues","website":"","created":"2026-06-05T12:23:42.150999Z","lastModified":"2026-06-12T09:49:35.269958Z","releases":[{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Edukonline/IGS_umstufung_app/releases/download/v1.0.4/kursumstufung.tar.gz","created":"2026-06-12T09:49:35.258250Z","licenses":["agpl"],"lastModified":"2026-06-12T09:49:35.317261Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"Zu/upGXdTxUeRq8Fn3inFMbHLA9kmtNhWdyEwKAaHE6fhuAv4kRB9w3uut+KVvdafQzcHaJn///pmU0O2khzH1aLIrRbFbZA1RwCwNhI2Ph46HNzuO9KE7wJy5PgGyEXfn60+JXxOULGXGJ73FYdNN2JzdZcwOAlN0MRwMvq80nyWDW/ksFtRmDo7X5STgZkRgJZ6QkSoT3gO67WlIUK9XK8VTcCehGa+SuO1vVuwMe1XocK8b7Bju/hL+M4hbIMnXudLHn2Jf1tVQYJf3yF++hmr54NqOxkw7D/hvF/DsL7Jrjn63q+IqZgvq8lf8rZJBn4PrcRlGFKB/TasxHfh2ItSwXMGrsRNORhH2n73lnnG9TUvnoc8fBxXOt4xzUDdLADyV9X8iojsZlspqS2C5LeK2Q2s4IJnhzqD3JNZR2pe9UrbxxI29mdx+0hHXUqcBx2DMxHzQvbBAqCz6Ewt+vE51yuwMgxLJQu96UDwd5lV8suXMGl+BfC8zpZBTIuunN/i5qxtRYLok48BY7h2cCV+m6GzbUT+epg0AWiisBCynC3G/2yvw0pf5ktHHlQ+MBDDlB2pG8WfcwJEVWm4SE9LrW0pGGCYABK1TOLI+Iupn+Wd1xsr2EJCHJjMG2/jQpg75xwX1y2/2ycm9I0aTKXGv2v9QApwnG2OsCejj8=","translations":{"en":{"changelog":"### Added\n- **Genehmigungs-Workflow**: Die Schulleitung kann eingereichte Anträge genehmigen oder mit Begründung ablehnen (Status `approved`/`rejected`).\n- **Nextcloud-Benachrichtigungen**: Die einreichende Lehrkraft wird über die Entscheidung informiert; die Schulleitung über neu eingereichte Anträge.\n- **Konfigurierbare Fächer und Klassen** über die Admin-Einstellungen (nicht mehr im Frontend einbetoniert).\n- **Schuljahres-Filter** und Archivierung; Anträge werden automatisch dem Schuljahr (Aug–Jul) zugeordnet.\n- **Tests & CI**: PHPUnit-Tests für Service-/Autorisierungslogik, GitHub-Actions-Pipeline (PHP-Lint, Unit-Tests, Frontend-Build, Secret-Scan).\n\n### Changed\n- **Sicherheit**: CSRF-Schutz auf dem Settings-Endpunkt aktiviert, serverseitige Eingabe-Validierung an allen API-Grenzen, generische Fehlermeldungen statt Leak interner Details (strukturiertes Logging).\n- **Architektur**: Controller auf Dependency Injection umgestellt (kein `\\OC::$server`), Geschäftslogik in dedizierte Services ausgelagert, Frontend-Monolith in Komponenten zerlegt.\n- **Robustheit**: Lade-Fehler werden sichtbar gemeldet, CSV-Export gegen Formel-Injection abgesichert, N+1-Abfrage entschärft, UI nutzt Nextcloud-Theme-Variablen (Light/Dark).\n\n### Removed\n- Ungenutzte Abhängigkeit `@nextcloud/vue` und Debug-Endpunkte/Logs entfernt."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VkdWtvbmxpbmUvSUdTX3Vtc3R1ZnVuZ19hcHAvbWFpbi9pbWcvYXBwLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"KursUmstufung","summary":"Verwaltung von Kurs-Umstufungen (G-Kurs/E-Kurs)","description":"Eine Erweiterung zur effizienten Verwaltung von Umstufungsanträgen zwischen verschiedenen Kurs-Niveaus.\n\t\tLehrkräfte können Anträge (Entwürfe) erstellen und an die Schulleitung einreichen."}},"isFeatured":false,"authors":[{"name":"Edukonline","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhNoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjEyMDY1ODU1WhcNMzYwOTE3MDY1ODU1WjAYMRYwFAYD\nVQQDDA1rdXJzdW1zdHVmdW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAlmt93gom8oSpIcsFgqOoW4tTNgiGruC+D5Dz5wXozSskMcQeIJM9/zyhRWN0\nSBKuViCDe0cg1vYOaHS/zCJFP5Lw//1+TDIMYs0CKs1IjSPZLJparK7MYGAdH53r\np1vQj348uhH5/35uAJGYgD9UiOUWZqlSMHrKRm6QkZscB3M8tIuO79dDIt2D4WLp\nE6lOub54YEJDVr4amVeoKs11UmGzeDH8fCqZslMSkOXzh3+0ugVYw+rZCSSC+vRY\nuHWalrKTtLg4rBTSEyBUptZuONt5ciy6b8miTTod6x81/obHK/Y0KRkzVq0FuwCI\nj4LWHnR/PujAACtdiJGAJGimGwASsxrtfXugVdgI6L6Gj0pNuLNQ59+vMsALzJfz\nckWGtphQSHKCAcMSWTovyOfiQm35HifuIhu6B2j/aMkRZ4655XC+y1bXI0C5jJX3\njUAPK0dtu+iByw37jCxTZPv0mpUl0qnt6ixlDUp32tD5Z2CdLG8OoROtIRtl9h0e\nysCzPsHdYpW2A0MU3oOYuEbasBLHyYFKno3RKv3qIqU7GrTseiwdTEaJDIXqUkX6\n+IMlVSi1E2BPBs1MoPHqoLm+XuRrjhmxUWQ/5W4eQreH30j6bHZ/iXCCX32qv1mt\n283JT/+EOaN/nbsJ8LanQ7gPihmj8t6Ixd+wOWI1jjcaBQUCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAhLrV8f5wXdf1xt2l5d5UEiDA/wYIFLQAoxMiZacUTChBz4kx\n6+Mk21YXDnsLXcv1RUyCepExNfOdL2Vklz5uVS+hHWOQIUrbS4tqiI/wo0EUZLMq\nejnnyqABET3NIRKgdSpHr2Pf3yyCS5mwA4gnrXXXIcvKAihGr3SNqbhefCEJF9lA\nfsalvVmiOxTAiF4Tq7WveJvRsbXJGzEB/jhG8PA5Fx9n7yXlU7IURL5W+z61+XeD\nt7L5ds0N+9POcvwpvOY/P2RgpSNL3nUWp76FS2mlO42LAY1fOJc65Af4JY+l6m3n\nngm40OA367LwvT9/fCGwSwByBLyeeE/Y0ANRjw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"theming_customcss","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/juliushaertl/theming_customcss/issues","website":"","created":"2017-08-25T16:48:12.705727Z","lastModified":"2026-09-09T11:16:24.647926Z","releases":[{"version":"1.22.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/theming_customcss/releases/download/v1.22.0/theming_customcss-v1.22.0.tar.gz","created":"2026-09-09T11:16:24.612603Z","licenses":["agpl"],"lastModified":"2026-09-09T11:16:24.699175Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=35","signature":"DRU2fFTa+iIl8lMhZ3Xc3O3reeC0WESVqjEgIrlfJLlEHIDFNt1gDlHkoapNq0BA1WvJcbR0oqNwx1Z2L1PN6VFgnoxg7as51EqD3q/PWdc2ynTwNErafuUDCe3WjbPi8k5Nimxv4fB/SHIdTLT3HPtiOujQrPW9UzK9cp0xuIIulgrCFXj748XGlWXPnFUI7eZ65hpJcqTpaYeifbp0r4zZVWciw6DnIQcxDZxthPz1zZN06/9kOvL0UNZ6x8Q/5wNsg6/VKZIer/SS5tX+1Tn1SSyy0rJrb6B+65ZMxjqe5EKCExnLsKLuf2CsYwFzgLCtt6JVEldPSalvyyGGqq0rYTfIRyhHSUvfG0qgw348vbSWFa2l5IhoG1hbfUBEJJfiZLK2b4SrqClk+Hiy9tADrUO9iw4tocbsBgwWexXj9VjoNWSn8jObrJZ1euCHELJhs015227UNUqndoXvWHXhXoDN+6pM5AGfdoXjPlgNBKLOSPQJi5HOnnO6LTYdwrBI5eaUNqCqrCMWaN+9N4WZ5hF+Gcuclzo+3ok1Bq41j+HAv43/cCY5CXnXWbqHWs0pRjPFpPiedHBzNYUItPAAHCdrP2kLeIASx/C3B2IMrZ0EKdkI01XbYhwYkAJtXdqd7+IdlEPta5kLPCVsDbo4thOsxdx/EgZ7yzEpruI=","translations":{"en":{"changelog":"### Added\n\n- Compatibility with Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Custom CSS","summary":"Adjust the Nextcloud theme with custom CSS","description":"This app allows admins to customize the appearance of their Nextcloud instance by adding their own CSS rules.\n\nThe rules can be added in the admin settings in the \"Theming\" section. This allows you to easily adjust the look and feel of your Nextcloud instance without having to modify any files on the server."}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":1.0,"ratingNumRecent":0,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhBiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwODE3MDgzMjUyWhcNMjcxMTIzMDgzMjUyWjAcMRowGAYD\r\nVQQDDBF0aGVtaW5nX2N1c3RvbWNzczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBANHMN6XaFZwPmwtfqC9iDxiyNGqg27toNEyR6Q3qnMBMcN9NJyfuyxIf\r\nvgz4Xo9EiubeeoSE9ITd6NCx54pihgMV1O0c/YJkg1teGVoTNvhq+p05ylSJcNxV\r\nIIunZfVJRaA55SAS1GC+Rs6Nk5Ulj4yfvFpxxNL6RBiZDV6QB4qhuTNVwE60bsd+\r\nWGPgiZ7tD0AwIN1+2PSsxbxiszVsq82K6hmNip4L5hs7vyFzaHJCyvs3C3+NqM+k\r\nRQsUyFWZ55GMVrBmNZrKcj8huqBy2514+mvx5KxCWr3h10OlvhW8vT0pJiRk4tAl\r\nkmNJKQeo8Qozs/wD6vfzHf4+RedL84dyYLc+fIjgcC5cYlsBFbQk1H6ghL7u120A\r\n2uwOAX6mlcwny49c55pTdTUKA5hZjuDJcQc+K1UP6MPy4FnHtbp8J+VRjArlCrai\r\n/NXRTLMtaARm2iACnJ3ZKJt+1tvhjQVwHl9R8RJ8BY9WFM4tcxlyK32sOxER2GBi\r\nUcAnqKcTunRernmEr4Q5sIazZeYvZvTHAza6ETmDl3uQc4ccJK0lDYgtSrIpc55Z\r\nfys8s+vXge6uoKhezbukWMftJ8aITijUzortX1O5+yspRxaE+rbViPeZ3tOFcGWV\r\nh6weNs/5nkmTqoY1Ho2aByNlR5Nlwd70UTeccT5NF0sPhWQBe9QbAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAJg7PoUeq3Mdbt/gqOjIF0ndq6pdP+pQ2PEB4Ck3w91T\r\nEXrEO3+sBWSpQpE2wOYFOjY7IYtjNFm2clJyfnoLqYspkAZvZAgZUFx2n8E2WKgo\r\nf/f7gNKHcW77i3KJgm4gmAa1Xno/nMMRDewSCSP7KukDGLH3NltEtjYahzOTp7pN\r\nC6Mc28hOXkP8g1CJP3IQA1xKKjpL9bvwf/kUOvh+FRJ1ih6YFlp1eKZRrQQiV9oZ\r\n2dxqzjHlEDUphBw3ZG37mByvmg6ROb1oC8KUJyKhwrLgClO6WKaFrsaSV8+05AZD\r\n9nV6RnDVjux7Exxa1a/ueoTkwTXsuC9X1LDDzY1HmyA=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"approval_signature","categories":["files","workflow"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/approval","issueTracker":"https://github.com/nextcloud/approval/issues","website":"https://github.com/nextcloud/approval","created":"2026-10-16T09:29:18.422961Z","lastModified":"2026-10-21T10:41:15.089469Z","releases":[{"version":"4.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.6-nc30/approval_signature-4.4.6.tar.gz","created":"2026-10-21T10:41:15.080958Z","licenses":["agpl"],"lastModified":"2026-10-21T10:41:15.140547Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"H8a29UoCDK6V6Px63NIBfA+a77RO2D8Z4qKIOx+WJcAcCDj/12clLap+nWGO54pLq6jP6UQAoKnRS67bOrjGU6n8u89FF7M3Ixn6ntOqEDQ3t88mIzvZ/o/Y3f9lBh7AymvOoxidamPQDhpOimeLrFjwqqndf6io+WLX03/0wWfnsj715F6wnQCxWz3ZqIPGJPR+zYJTXv4ifrozjjYYGF2hKadVfK2h3aSWm++h1TlfEfS63FN0Q/0tRmsyUlm+sDe3RyjvnWhxt9Rc6nfktzpK8PTLlmzis6vcx4uJTEojsKVEKIwADcWWujTjVSZTdIyfTiU7ZqB0n+kVRMMCfoRYhgyzspa5AzVqBfUq5LkZVfT8HbL94EEpY897SDXIK74GHBVEcZJDEJcfjyoG3+GunkyqO8ghAKnvNuDp4nySH8gWpQgXidsyq49pV7DGaNNx/HIz3kYUaYgRrQULcPCOkALlguxdd4jox2dI7qbjUc7iusXnxPtMrVNESVaE4fnE0+ZWfbqY/yPAz+z7nMf8LksilRUJJ06KGDi+24Y2XPgi1+N1YFhk4zNu2AJv2hoJ4IanVtWvLjfkDStlsgOgztXMzvG5+iejg7NoGnPbGz7WDk1Rr/vrRyGnKcRXumSdLfHV5lF8q8zdfMmarijQhQUk094WM8r22Bpqw7w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.5-nc30/approval_signature-4.4.5.tar.gz","created":"2026-10-21T10:01:42.277295Z","licenses":["agpl"],"lastModified":"2026-10-21T10:01:42.356006Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"QxdAWOeE1omzyAus6kZORAtCUC6fta4jJwzS4BgJQNvhBUqrYZSGuyIjCKZgqPF/p/4MswUW+tJdiAViudEqK4Hl0eQuj2ByyOe0wg4cEClZWYJImHZ7sJpijiQnth6HgFOFfbtzi01YzSeCW7lddiM+nBnRq7p04EqSWmR+AgJXRKTP1wtPHu/iqLl8wvynpUfqBx/nk5sS7sYIOkH00gRQhXPJ07HpHk66FoNkDDLs44F4K6kLMXcp8fv8KVVhm/vVKnDE3/HS1QNgUGyq4SW2p6Jsmwljb0wr8DGF0o0j8aaI7jjhPXH61orHhkn5mWkVWkV1pgZ0jSnXkEI7eiLzZl6JesDlJTHC6cWB8841u6q87xkI1dXO7gPMy/186oqMjGfqe0ahOzTmOuom6Y2keaSHrjWVm28c5aEy/TkQcbt0lDRMga9CYbu7rHekYfk3qpPB7kbeLCXIjeE8XnVdBq8JtVP3hhvqqsJq7/wMPE/6Ywn35ocnCxC3p5an82qtzp3Cq1vSMbxLKl+THt1B4VacYJQcY6x3u2k/UpUpyQgr2FV985S4CtWxezf3foCJH5ARcozUMQNzDwBUg4W19FJCvyXbUfaXwyT0pQhWLtw6EltB7D5CGvHXjN5utEz2oo+tP4OOMuhRJCVOakUUg05E2Hhn80YMLk5QunU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.4-nc30-fixed/approval_signature-4.4.4.tar.gz","created":"2026-10-18T12:27:38.441388Z","licenses":["agpl"],"lastModified":"2026-10-18T12:27:38.479942Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"TmTPC3j9W/q/Z8t2y34Re8nP10REDP/YOEAeFCoUKPVaNOWfIRSuesCnaiKxD5u0kg4Jbvvc8I4P48PrdYOGfCBgAvdeKDM2u3VGUEjvZV8hePCvCICzrMzBI0/KmuJjpBwcBt3oFFeERMH3rj8nZdZzAk3fzTee6LEeh44X1jrg9RN0gah6uSWnHjXZBOEGnFa2M/Lm7eUA/+cfQtX0JFAo1y0PmrNzrXayHTSp/PoWwRWagAYtJfWWpdSMAnwo1tH5O2eAitFbviA6EkRA+QyQCffrq5dSgLP2KvFFcFQAi/xAb5F3imKsgPJB9wjWcCqcJXxiVZPHeFyoB6lytu+obdO6oTOPkLL26AA8FCnr0SOarGWRHvtZMMVlVSAIBiNJCAi2dnDDx1sBPPlqEwZ9FrnE98NvXVzWcYubtuUzZoOznC7sbzxMc0M8gE7jGA7+kQKLAK8gfp7H1GBlYfBVS9boLGA6PW5/v1TnVvkhtyiF05oMMVqc4GOI6GzQHnXzYYRDogAIHMuopt0bJWO21lIywm96xquoeUoFQJs4s8nQ3EkwJHFbnZQu85W+JBknyMZVD5i/kvpbOzc/OVB4bU6s3X8dX0cj/jq4YEANJFSPl+wUUHCvoLGiYpQlxSVLthu9H8p05psc4F8N9WwuREq5Gp/0pNckUkge0GU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.3-nc30/approval_signature-4.4.3.tar.gz","created":"2026-10-18T11:13:55.882315Z","licenses":["agpl"],"lastModified":"2026-10-18T11:13:55.919121Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"dnYYp2wf1BhksTNFtyceWXJqBTi59j4rRlav7bXa0kty9HOQMI+m8oNNcfEVGfomfZ3rcSoZpCgeT/LGNuW98SseAntc0+7lsONM+AAyiPR/De3O+rKWKhwGIe+h9S8/k4u11MBwsicQhYLj3uVPl94Iw1+z8rhjj+hc32mGjJ40pHzAwdb60O7AhjgF/pVWVdkO/ddqX/TA0JtS6Rfjebt0FoVrEIa71JaoDOOTjMFBVPLbghryvT177Gehmup0wPLT/1qTuA3xGL8o3QVTYLS0FiJ4KGPmRO+tt8NDrzpT3sZZ7WpfBbzj/RCfNjZ4/Vj+P8R7KbjpeaLwZLFyHjU073oU1Nyxf3tvAmIgGEagSBRjmhBvyyNHYmjbHvdxHDg+dgAbf765sooIDmUakGFujJIdiUMSefiWSBUcjN2puIsigvMvLosiXGkIyM7bl/kvU3j+gCVsmv49F3SJPfZ2QuMAs3AHAodF1ieMq092AZCbHERdZuni1lf8fSebXskx277QzRLtlmhwVtU7qdHMVLcM41wOKTBBTBUjmFz2b0cX5lbXf/tUxusXsB/bZasrkyqX2R52ctD6b2o85bR9NfeiKqmZkq3mK7cPJulOW5q3Zv2ARGc80/sgJ5OBnEN/5fqqJhx5fHq6yxgyQUj92y5XJDOLNVYBz0vZghA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.2-nc30/approval_signature-4.4.2.tar.gz","created":"2026-10-18T10:24:27.883119Z","licenses":["agpl"],"lastModified":"2026-10-18T10:24:27.914849Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"QJ6uVGqEJyjOH7n3oFfQy6WVG9R40usM1j3GB7rtRS/WVPAgxfEiggam0OQFkP3t8V2dVO5Ns53vaNxAwTDbusVJvZtFLAzTc67Wj9fnMITFhHixOgU1RZzGfBLW5QhPng0iyUlD7mUmH84HJzWVeXwMWMLT5Yila9gDC+RbTO3GGYrdG1Ae3Sbe1dUqOIZ7CVpBZn6L0jPlkP3BEEKOuLKRaBPrc8YCXI8AvGcE4pGz2blQrH+FXvosi3L0IL68M+Bi9thEDwWLFMHSpzPD86ZEQZcgPaBmJxPaPDlRrRywWOTBb1ye+sppkgo8TuTwZW7EfSYtKWVK0bfPjTXEfTE5tLiKOu2lSXSWzSD8PiEsw9ZViiXR5+f2C67wYTZ31cX4PKU/9inxpI9fLc5IdPy76vihBAbZLIQanzTYQkB9GOccKr4QxHKmg4n+GrAisWOyAigVkAI9V0/rPa50c+2Vl+w2s1WBsmKM+UVNIcEbCGEs6NyJph3buxqithS0IAf0v1gTBJKJbkoVyaocJ6JGJWy6KCAskTLrd0P0G2QhL9UWlbYK7dsVfW0msgnrMu+Xvr0TXw605XbYAKlV/LWGfreNaL4UyJdCqEQdufhegmvQR2btfR/4m43/bkvRClFEPjmSJkdJXlfuNt67jGtYKDJRH3n5CDrGGxtCf3Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.4.0-nc30/approval_signature-4.4.0.tar.gz","created":"2026-10-18T09:48:32.761147Z","licenses":["agpl"],"lastModified":"2026-10-18T09:48:32.800436Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"UtR1sleHTZqSvcMey4uNV2Y8KTFYBWmg5FtOx90h2hRB0dSwDuO5Z5fAzNKIN9n2H0uaVFfuGIizG1WZwxtvgpvFezlWPauC7huFhPe8ws2W3Fs559egQvR0Wa38mWJq3EagI6lvpFnD1olxW49zUQPQDJgMzDc281N4+cxCsAU16JZL2hHYQP08WVMAys285Xq5hfFFUIQPGio28Vn8qND1uM1I7kO/mwYJ4ojN7iVLO4FnbW8DDqEB4R6kg1UPc0mtwFjm09GmuR9vF5SZggduTo5Z9XBFCR28zUx9GbtQRlkxZ0F4I/nWFjkNM3s8ViLpt9+RXJk/KXo4riWZaVLAqooIXCuAyJ84xzQR/lpZjDcZ+dQOhmuFrYA8vXYNz7+Zi6dN+b4vNIQoo5QpfHvdgXwS7tYEX4Eq/nvBzes9KM2aixeO08tGqhWmTlfRb0CjXkMUFja5deAHYApZhTcel+nQJBWwJUdCnsTcwI8Xp5RCfCWfUIYh1wfW8xiL4634e3xRM4KH4qmvIeffPmtgDYdXZQERmA4iuI9/7pIOKcjfYV72N1pPEX2V0OaicpKGqy2MAPLY3pRiDf1be5Z4WgWIvGcl+HLRswdQyck6rVR53QhdjhsUn0lVtqHLp7YuyY9jX9T4HCjNf6Umxo/TxoSXLj0tMG6Q3612F5U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.3.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.9-nc30/approval_signature-4.3.9.tar.gz","created":"2026-10-18T08:32:30.579352Z","licenses":["agpl"],"lastModified":"2026-10-18T08:32:30.624139Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"dqyEH4cvKZBo5xYu5Pb2O6SfypXjZKXe1Z+LySyBEUi+immM/rNFkAMY8J5OWD7P6AD3LObsV0Kc3MXQtQdu7GGz8bujypr3dA+frkCjZu35FaueQV7MvHyI1QfgYr+b1l+unREvkvdtvmprEOiynPv0kWTXfNzNerwNtxfOck1qUzJxrhi86u097dhK1rC54Qk8YeJWBHQNXd4XM7nXa0vuxR+o6H8SLh4pcb+EZgRVqt8efeTYhXGDsKbRALReOYh8HKGF/AoocXHV9Qd34AlIz7YU/5cLq23D+g8MuJFtHL13wh/SObN5AM9oBuINdcduFl3edRqZOc6mcrkPS/OWIghI4ylit2+8H0HMcPOM+Z/tPU4+EBr7pzL1QwoliNyjU2hQEprLc3iltVGGReeA3DyyFV1JEIzmLJlSGM5KLOkSBDEOfyjjgKCyz2zOqnIsSzb5JMGkdJGEpZURrh44FUtmP116Rgo2AtxBDtj8XjYgpDT1aYqKI0Q5h6jvP37k/DC+vyYkShWUVAzGl0sdaq5tl9kEY3jMRQrWCjzELEvE1088cMxebC8hwUefPTy2EXU7OXn/ipV7J2RuA64CFvWsdXRp5uYitd4XhIRLmqdPED1t3oZi+sz6JfnPuj00KbnkOGADmFjuoPIecdWp7WJqGDv34r4xu7qn2yw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.3.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.8-nc30/approval_signature-4.3.8.tar.gz","created":"2026-10-18T07:59:15.466979Z","licenses":["agpl"],"lastModified":"2026-10-18T07:59:15.522747Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"aetHrXSmT/QtrqVy72AlMIq5ruuWjgR5rP8CBHtOXdUJkTussZxugPTyUEdrvI/ZMGsG1rtZJamKC/7vtBpFILIOy362nPC32OuSOUlJnpZIGZb9Im+O03iEV+gG74h8Gmjuy6jojhY5LHPJKAceWq4vkDBhxsqXD92U/AdJPx+gQpwGdTDUvwOzFTVWl52/DY+JmEwT1h0Cx9mVfM62RJZIudV9VjUAWzUNrm9/NODAjbcETOx2aTFrN6/U5TWGIeZCZyie5jEfphH/XKULUEdn4X1xoJvnmL0g8d3Ze5kLLU+/zftZ4SwE781Is3QYOZH9tV9EzWCkKMFC+x5JsdX7Wj3M58jJROTSeFO5J4oKBvyFteMKaRwSDLlHixCbDVEpr3vCa1+yrzeBJ/0zhCmRLMe+5eHdqAWEEvJ6mq3gWW+6H+h2QQLzOGEJENqJAN3gNPLxUMgSuM0Kdx3OD2VqGhlHanzRjxzWgGUwt4xqVli8kRTi1JQUgmaXtVurfLupofpQ28Tk/Ek95buOL0uJqv6YiMiTyEXNN8FoEqSgy+vHk4MqGF4XhtDJQqJimr3MGQY0Xw+kzYPNpGLzBK6nYAbLbbtAtNQnVM3/K/sTcAIcsmxLoVpdTGh4uRMxVDIBO7kk1A+OsnbcrxpuGpdgMiAycIpEefmbRgcL2Pw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.3.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.7-nc30/approval_signature-4.3.7.tar.gz","created":"2026-10-17T15:26:05.045295Z","licenses":["agpl"],"lastModified":"2026-10-17T15:26:05.082822Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"DefK+s8cveC88nxxPdpvRVOwWO/K2owmf60l87du2v+yjOe8VzMcdvtzZWXkEU20x3rJ69ndoo9o/33Gc59ggsozDiuQR5w2Ir+TkkC5+cN6saKhCwspHXCfE7BrLfL504RsFpjRA4tJ3Wnbs1YiLL35eqNZgsVAmfMzRyN1vc2Rf8MZMC6iV1hhK/UUduBco9HOPuLNhiw+Ov8DdWZCjxJrPmfW7HCUTuvvDdozpAKQZ3hu6d2twMDmoAaHS5MG9xlUG7ozigI8NFdSDXCcs32PxR4spzmNt7+LN4JD2bHbnNtBN/olimjVws2Qv5ycfsdX0XjL7FxW4uidZj0JxN4Q0CRSugFujCcm1XfLq00+TgJ/9wMyVGy1j1OzmCWFa7ZbVctetqnT1Xsy0fKQEcQ5/zeQAOmDwVr3tbtUjlsr3mq4nT0uggVKTnXnNi0VvPuvsJZiRrVnuTdKGitYV/GyvfXevVp6ST/4Tki0b9O1a9eBn1zotgL3Z4N0R/TAnjjCTHqVNwrD8l1QNDvUjDljSw+PGPYWE5cNju05TI5Df2C8BLSQrBnNgJF0WP/0PyGe1YotvN4YFelnZGOFFPXJ1Y8B4Uv5gP2SohahXMj5A6/KV3DfrF7NyQswRabUbpT3rZ/maoFQLTBG22rbASsF6k3vrIULLTvQ6/cCSqA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.3.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.6-nc30/approval_signature-4.3.6.tar.gz","created":"2026-10-17T13:49:14.351861Z","licenses":["agpl"],"lastModified":"2026-10-17T13:49:15.546900Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"jI+Le4fFg2/t8jj17h0PDrZGXAaCO5PDyeTZJm4aPGZLz5Avo9ASUvbN8hs4TqlpcaUdXhDne0WhJg7QDItKhRGLAnXzo6LenMWDGsBBFCzhpnXkWcTlkw/1XbSvLCi9x5ebtDyNgm8bkQI1J3/fKWbku5SkfVCKXOmuexD7zkyceC/5UyqECdFyl7+sjB0C69bw9d7nbtOtj1kmj0m5iai6c4ZGaRfMZsm3soyQeELXYqOQJrJm99LGSdzRP5aDkbB3Yka0ZTkN6b16MV5JqM4wyD+zbfBxmONeSOhLq2mplf9Dn+AhiPKhcALjjkSG+iidcIFLgC+G6AIIiTg3IDO1Kqy35LpM4HhVyEIdPACLzt0t68MRMsInrPjXJnlbUEn9FsAnfFFuiFlMtt8z+fj/jSrYmAbIXe0HPlPwATmqNOheIFlT6nKWCMUZrLR1CS0cBNl+X0S3D1V9ly4RMPxwTnLRLKSj/ep+wgE8zA1D/wicFTQkHRU2l5SNuSLnA7G9Ri712x9jsb/XFQqGmqrTCXaBe3FCeVZJu4pqXw80ptFYkLpimp0SQLKBUBCPl48GhECLId+hRoBoawj6zvesba/gtCmmyXuGYmla/ZofvpTlu8MU7z43WQCFw1hDQ9yeEBJuqk9la7kREIWjMhuYtT6EMb9euKmcSjt9dRI=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed too-long primary index names in migrations for MySQL."}},"signatureDigest":"sha512"},{"version":"4.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.4-nc30/approval_signature-4.3.4.tar.gz","created":"2026-10-17T11:49:55.680004Z","licenses":["agpl"],"lastModified":"2026-10-17T11:49:55.718640Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"qI0uoArfp84UQ0V7HqOZOAVU0dFzUfDlJ44rT5MdhbVmn1yDkRRT1bb2ZiLxM7qL8kyLKUN6CqSqf2WOJ1/D8SE7JkCXDf1ZRvj/w33JRxxHKL5R2EFSIvzFhnG1TGqO9rzIOwLh8Kaes+GWpYuC2bUgNdpCHHIkF1GIA5dDOE6j+pE1LeEui2oR7yuDisRuHzPdTtk2oaIpqTPCfi1HjpeQJ+1ZmgZhIIiqzEzIxAS0OGwjjSRSeDOTBeIit6gU9ALfcFpEyfQPXJ3Z/8Lu4cDi3t6GuFb/0xoQRCLcxZ0KvllzR28RHSY+u3O6qgymeiPcLIS9vymdfLl5OfrKR4ZNJQrX7mFsA3s08SLcyZLTXr2LKoeCPrhh0Y83HECpPK8O4dFjiHNDBc3oBZcdmUm9IpX8pxhvhYgN6EBixLkue3H6btvINukvzd5DRaRFPZ2kF+81XWhtkHdipv1KrsU8hJD3G01b4y3dGJebTT4OqoWR5kO3eYKRcrQyKVpvfmHTKwa2TNCjO48dfqRVzsJjaVOwyEkwm2vk7KPeAFJewVjYweBjeww0AJ6TB5AoMfV/hrWjvAEj4/XrzaLoUbw9gS4uiwFFVvNuPdB9ttLPLj+Gvmb57z5WI7zjA8Iy4iCOhAq+cGkz/jcPxcQQcVp1IZJqlKI/VwuQIgkNgXU=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed app namespace (was Approval, now ApprovalSignature) which caused PHP class-already-declared errors and the app not enabling."}},"signatureDigest":"sha512"},{"version":"4.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.3-nc30/approval_signature-4.3.3.tar.gz","created":"2026-10-17T05:18:12.329279Z","licenses":["agpl"],"lastModified":"2026-10-17T05:18:12.369640Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"YuC1yfEZSc6Bpu50+kEZra4QUp+SzT46uP5PhZUyMs1FSzO8rygybcCXxVuDUBetTdhR4N1VDCot8+kDC3KT7s6TdXeV4W9bBDsSq1jm65VN3wrgz32Zm2nRgzgu25/ZMsb8e86Gkt4Q9Ms2guvfzuknnAAacKqcliYmpJ3VIAqYKWmfX8e7LxMnqof4Qiwfj6NrJMLztyqrTdABizR13Q1OTK2hbEDw4uOSjdN0bC77D0z6zGiXN0q3zURENV2udJCwdN+XKQ7Z0yuGphfOjIrGbHncyxkHOc6UprWYsLVCf1NvA9BjDgDquF1q4TVHg71q8jlIH+fq2P64iZ7x/xfzcoNQF/b0Df61GboudUMJXxUdeHAVsLQ3EAO4uYW2rt9IzBmBU5f6xPaks/F/vTuQ+01cwlgne3NLVqgkhzq3fE/Viv0ovVaHNbpNlfxoy5pnQ4dreqMQXv83DOvv9rKnIQmnCn/Tt/hMIMGMW5Shx1yC72bcpB7m/ki7+f8UWN2OJEw1cYau2Dn2T6H+a2Ic363u2/L+M85gWuiVvIaYkoxrBgM857A5DhALSDA4svyTS9dWP1s81nYZ8TJpJfHxABNxZEphscgRHAw+3vkivF6dy20V17TRZ3e2EdiayX5OFEo+54zs176togfUMQXeHQHniiOvaewFzayRiBk=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed dashboard widget loading the wrong JS bundle name (approval-dashboardPending -> approval_signature-dashboardPending)."}},"signatureDigest":"sha512"},{"version":"4.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.2-nc30/approval_signature-4.3.2.tar.gz","created":"2026-10-16T11:24:38.375762Z","licenses":["agpl"],"lastModified":"2026-10-16T11:24:38.410226Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"lOhBA7E5+wNurKHHr9PXkNQz5567ZA27AvdKyBVrGZaVrxoyoJ0JtmULfFtPICxmXkW+qcKmAX34UlNJWCz2v7s/LsERVUqUGCEsjKzdDG6Ik9RKun6fmnsLVx96CIX6OSg9GrS9d2ntu8VluOi1UUkgoYRMTOUOkgH2IRYEo8mi15LzNs44NXKo5zS/2RNWARkUw2IJqV22XRcaGYBkWQhwdaQ7U78RDZXLv3M6r8Tjd1rz6OVS1bUyqYr5AspG1tgAeCsh9XNnv/CMJF5gImx6aa3vDsG60tpevAomSoeZYNhIJQwCM6HNNkzPCXasvwY58HltanmcZC4inngv3Yt631D0AGEfXizuEXLOnyjE2KDB1ngF4L9ebwlvzF4MC/8ldDNMmfEUKKeK/x0C7dxiqPULyfRSbMOEIgQ5U81rsWFtOlb9cbpg3du3OxC+4Fs+SQmQYKVR8Ndhy+UvAUg5wra4QGVpjtiPSNTtzBkHo2ScwGUeU4Rp+c/xSk9BOUCv/HG+WxOXKWpBK+LUmjIY3Xtb7bBHh6m6+OjyOTC2yu4RrUYvTpC/bF6Z47d2Tz0ns0amG4acreoxYSfDvdYz/b8wX1RLP0vlHZk7iDTbRXHEDXDwPRgB2fFoMo/l3M9R6SMbul3J+LNIw1syn922vxmwNxoSgJmwvqrTbd4=","translations":{"en":{"changelog":"### Changed\n\n- Database tables renamed to `approval_signature_*` so the app can run in parallel with the original `approval` app on the same server. Unique DAV property."}},"signatureDigest":"sha512"},{"version":"4.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.1-nc30/approval_signature-4.3.1.tar.gz","created":"2026-10-16T10:28:17.028331Z","licenses":["agpl"],"lastModified":"2026-10-16T10:28:17.065959Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"pxhGhf20wCEVeqA7WI7Q7ULkboM/W+lHj4V+sQA7doLBzM0I5bs46wQDylba+ouulv4f0siwCvUPLg+Jt0wkS/3cGbmkTXC5JZPIg7+XvUGiMRinAHmvLwjT5nwzWN5Zy18xpfyXxqQolgkJQQV7GL2sJdKJLyAOYt1N64jM2gWnTdUw8ywPBgQ5WvG2ROqxPEo74DyF/jjHn9pXVx8ghEcsBZ7hvQR2hMQrqpNWN/0IFDUfJ+kz5BaXIge+SZsrUlxppKOJp8zRYYa6hmvfWLAVcav9UKwcum80lHM0V2DbsOHNhPQZeSIRFsfq/y689XPeTph/EU9yv38OLiEx3jV7PnuIxcSWlJOMLWt8XOQtV4lx453rLVyuHDTWXDykCSFa1GEIqLheTRbKQRkOlFqQcEnR5HWW8H3DhpK9v/yp0qC4bJtT8PBBjUP81eV5d847EjIGsTCpwOaxDBESU0pGX7smz5S/6mWeiTTzNdXupT24GP65XAJ2mWJeR938k1DR1rJhTl2JvkMu5dilR1JoG8qIS7vWggeakZYSy3o2e7Lu7jwCRaLP0BAUndRG9egopWWJCKRMgCNGQM9LjHFvSW8hEPCpdOcYf4aeavIfoE8B7SPt6KsJm1X1ZzV7IeA2LtY42zQam4jL478ae0BwcCY6ENIpJmLk7eE3ugw=","translations":{"en":{"changelog":"### Changed\n\n- App name changed to \"Approval Signature\" and author updated for the App Store listing."}},"signatureDigest":"sha512"},{"version":"4.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baron48anton/app-certificate-requests/releases/download/v4.3.0-nc30/approval_signature-4.3.0.tar.gz","created":"2026-10-16T10:04:15.907216Z","licenses":["agpl"],"lastModified":"2026-10-16T10:04:15.945497Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ZasFpFajWsbDlc78PUfpBnUBKP5C24wBkMMvkzOKryElMKH9c0PjZNNJxEAWvO9w2EwLdJqFkYpE1xBcVgel51XEg89SR38aXYAdKyEjBVryiy9/FCm+WQ+U6JExiii7T4FozkN4YVt2fBJLXcZBZGY0mloJfUs2YhnCdPl7zmt/ZXpPzxQj/7YnMDxU3BLnawhnlpJI86bfPVwnxZiwcQ4YNywRzN4LAAn0XPSYYnk+47VhC0Dl+H80NYaZ6dDOqUV5YY6BcfKLmlgFltyZBAjPAeGhgN6sr47yfXEQ6pZxC0sI4KkPLdR9HA3jL2hggo0lP+CvCZ39krKjZnJOtHMIReIChn4PDRpMX8h347Ade/6/d0USjKV9zqnm8gLgFeHY4O8agcPAZflz4x1GG8qAicw9Nse2KbJFMCI/cNK/eReAhOpIDmjPc7xS2KSZCkbAdpfNIHc/6AewoarWW6+4bJ0g7oEJmJSqhrrieDaUNVC7nSCC53y/J8pvTw1QOndU2lGE9av2Z0qgdmXLEBD7GMgLVttlqI1zvSJVvhODFEj8Gwk8OX1MkV3M80Z9Amb1K5Hj88m/d1OMtE9EHwYHuh4x65wG3mGq0SEO0+iQYXK5AaqcQmdU6IkwfrwLXgSq0JF/NdI6ZkfWn/IsMFZlcFcuBqWShvv5epvRvAY=","translations":{"en":{"changelog":"### Added\n\n- **Group folder processing**: admin sets inbox and signed paths (inside a group folder). Files placed in the inbox are automatically sent for approval; after approval/rejection they are moved to the signed folder. Background job `ApprovalFolderJob` (every 5 minutes).\n- **Notification channels**: users choose in personal settings how to be notified about new files, the voting process and the final result — Nextcloud notifications, Email, Activity, Talk (when available). Table `approval_notif_prefs`, app config table `approval_app_config`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8xLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8yLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hcHByb3ZhbC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdF8zLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Approval Signature","summary":"Let users approve or reject files","description":"# Approval Signature\n\nOrganize **controlled document approval** right inside Nextcloud Files. Admins define workflow rules, and users approve or reject documents with a single click — all in the file list, the details/sidebar view, and the activity feed.\n\n## What it does\n\n- **Workflow-based control** — admins create `Approval workflows` in the administration settings, choosing who can request approval and who approves or rejects (users, groups, circles).\n- **One-click approve/reject** — approve or reject buttons appear right on a file that is pending review; the result is applied instantly.\n- **Automatic tags** — files get a *pending* tag when approval is requested and an *approved / rejected* tag once a decision is made.\n- **Activity feed** — every request, approval and rejection is logged in the Activity app so the whole history stays traceable.\n- **Full visibility for admins** — overview of pending requests and their status across the instance.\n\n## Typical use cases\n\n- **ОТ (Occupational Safety) / HR departments** — approvals of instructions, programs and local normative acts.\n- **Contracts & legal** — review-and-sign workflows for agreements and invoices.\n- **Production / project documents** — sign-off on plans, drawings and technical documentation.\n- **Internal regulation** — approval of orders, policies and quality-system documents.\n\n## Getting started\n\n1. Install the app and open **Administration settings → Approval workflows**.\n2. Create a workflow: name, who can request, who can approve/reject, and which tags mark pending / approved / rejected states.\n3. Users select a file → **Request approval** → the approver sees **Approve / Reject** buttons and acts.\n\n## Notes\n\n- The **DocuSign integration** is no longer part of this app. To sign documents with DocuSign install [this app](https://apps.nextcloud.com/apps/integration_docusign).\n- Compatible with Nextcloud 30 — 35."},"ru":{"name":"Approval Signature","summary":"Let users approve or reject files","description":"# Approval Signature (Согласование документов)\n\nОрганизуйте **контролируемое согласование документов** прямо в разделе «Файлы» Nextcloud. Администратор задаёт правила workflow, а пользователи согласовывают или отклоняют документы в один клик — из списка файлов, панели свойств и ленты активности.\n\n## Возможности\n\n- **Управление по правилам (workflow)** — администратор создаёт «Процессы согласования» в настройках: кто может запросить согласование и кто утверждает/отклоняет (пользователи, группы, круги).\n- **Согласование в один клик** — кнопки «Согласовать» и «Отклонить» появляются прямо на файле, ожидающем проверки; результат применяется мгновенно.\n- **Автоматические теги** — при запросе согласования файл получает тег «На согласовании», а после решения — тег «Согласовано» или «Отклонено».\n- **Лента активности** — каждый запрос, утверждение и отклонение логируется в приложении Activity, поэтому вся история остаётся прослеживаемой.\n- **Полная видимость для администратора** — сводка текущих запросов и их статусов по всей инсталляции.\n\n## Типовые сценарии использования\n\n- **Отдел охраны труда / HR** — согласование инструкций, программ и локальных нормативных актов.\n- **Договоры и юристы** — процесс «согласование и подписание» соглашений и счетов.\n- **Производственные / проектные документы** — утверждение планов, чертежей и технической документации.\n- **Внутренний регламент** — согласование приказов, политик и документов системы менеджмента качества.\n\n## Начало работы\n\n1. Установите приложение и откройте **Настройки администрирования → Процессы согласования**.\n2. Создайте workflow: название, кто может запрашивать, кто утверждает/отклоняет, и какие теги означают «на согласовании» / «согласовано» / «отклонено».\n3. Пользователь выбирает файл → **Запросить согласование** → согласующий видит кнопки **Согласовать / Отклонить** и принимает решение.\n\n## Примечания\n\n- **Интеграция с DocuSign** больше не входит в это приложение. Для подписания документов через DocuSign установите [это приложение](https://apps.nextcloud.com/apps/integration_docusign).\n- Совместимо с Nextcloud 30 — 35."}},"isFeatured":false,"authors":[{"name":"Мокрушин Антон","mail":"baron48@bk.ru","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhRlMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEyMTMxMjEzWhcNMzcwMTE3MTMxMjEzWjAdMRswGQYD\nVQQDDBJhcHByb3ZhbF9zaWduYXR1cmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQCrEfGWoSOjGBU8r6stB8sBbhixPqJ4Zy82XFKlb0kjdkuVnK1Aiif/\ngswdRqe7n7exDR5kzi4cvB75oU7g7C/hEFNm7oRRhBe2eC6L/uiPecd6QTOKXwN6\npQ/DClezDPtQEISMUi3vmPcz4Se5EoDRJGOcXSwFN9TZKLUydNq/FHxNXzD68+go\nzf9AALIl9VHjbNe5RdzJ2wu6Ttw42YNeIfAdKkG6iMgUm575nmMiokZioXUU6FSN\nkm/B56eN39vmFufsO/CikYdqT8p6VlvL4K/aMif3fDGBPe8BqoYm2D8kNiRo6cZi\nNtsQjeI4Sito9N8nxeSJUztyZMrzrgedFpaIRo3iw3SKaczCeP0w1xKPaHHtq8sr\n9608T6dj+qfqAp1ZYHAu8UxcUXMKrrZI+tOv+oNJSCZY7d1vpD7VeS7crBJ5GBcE\nEnPsIyGM9DTbU5K1899er2pxD9mc0YPY3QVHZsHQ5S0fGpett5NcQQeCnSgsgCF8\nOG5urRYQ/B4JZj1xECNu/z9noUeaK96nCVOncEvfoJ3gU3lchiUKYuQQZ9VFhdT9\nVfIlByuE3/xVjEWXjH4qoYOs+q8aiw3YJrnj2zxBcJtzkuuDMWKjuGI9cnMk6eaM\n9vnlNShHpSzmlxDXhKAv+x+ASmTHSxJ9LRrQDo0n3TDtRYO5Yas6RQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQB0viks9k3DvdK3Iu/4UbQQPO+u5JIXBD9s2BsnRnuj\nog9PWixzd/IIL+ywxPQW9Ui6IghUeNac7I02i7285nfzwJk1HY77x1fK3XmwodFB\nUvocVLp92BPOz6j35cd4OYAQFEyht3vsTbhOwyXHhaYsVDHKWtfSrmDiqmp05Bja\nY8WIZPcdfQFreht7xvhv6Z+EwD4i/jd+V8IlWIkaQlAlTesXpp3RMXPLr05rNJSx\noljqIvAroZKn7TXzLMF3YQxhUht9Jzse02kWYtDrA1Xflv8IDFYHXHO6S1uXeAeV\nT4s4uYBZKp+gps//zY1VfH7FZ9SedexjWwIuyDK27T00\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"notes","categories":["office","organization","tools"],"userDocs":"https://github.com/nextcloud/notes/wiki","adminDocs":"","developerDocs":"https://github.com/nextcloud/notes/wiki","issueTracker":"https://github.com/nextcloud/notes/issues","website":"https://github.com/nextcloud/notes","created":"2016-12-13T14:20:20.033758Z","lastModified":"2026-09-15T11:33:47.651438Z","releases":[{"version":"6.1.0-beta.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.1.0-beta.3/notes-v6.1.0-beta.3.tar.gz","created":"2026-08-31T21:09:34.088377Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T21:09:34.132500Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"ebQpYL3n+P4CHtY21hGrhfhD1BnBkWglW4P1dEpqIn4M9FLPCskbkRbQG8KL1D5J1vflfbXMpAbSzg5x3oWZOyYNTJTMZcd18J6piKmqONUmjQd54GHuF+UbmZki3PtThpKCSfBh9nUDon714NrZ9iQIskjNMWffS3YduuVEa9tjdWJlXc1hWxM6tCcJhV2eZ5ZZLCqudcSxbSQ3ZUOG89Rk7KhpnYenNcC6+tt2qIB36iAlDlzdosbTpDVUC77aMTc2E4zJJhsjOykUHBDJfd2/OinF4RsqcBLIOrNeKqZEYPdAB7RVKijglQbuc1UCGgRtPR/Ei9d8TSQs3k7g1Pl1IcKgG5lMxd7KJOijZ8t1V1OYkwRKDZDECIae3I3xoR6300w3XiSBKE0nBT67f6U4/Atm4VMAN9DbmJeA0PIHNTyza4hzqDQYG0E0P5+cPhxJjp6WSoyU9b06EuEZrLNTRQ1X6dNAHKiH22QVuHHInviDBTlSKy10vu9jj6XGudDQambpAISVIEnMoIyAmdRCcmlRM3kVJZWd4bC99dL96PgcjuFO8SbF43RrAOgWZGn7xbyLcHJJhKicO1cPyUQVqf+HHrZwnJLE/BgBEa8VcKLpE2H6oE+MnCeYEjCuvcRo7NJJ98nQH2C+W8oHIWotKL3TiaV9IcdFbEFKYQc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.1.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.1.0-beta.2/notes-v6.1.0-beta.2.tar.gz","created":"2026-08-31T07:33:47.871342Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T07:33:47.929621Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"e2QcJbPNvilSWAKIYyXowCLWdLPdp2k3hbE2cmXQ+n29JoUi+wHITUzscg5jok7yUqYA0S7Gw/nwgeLBU5JeEuQ/B0Q061Jedsgi4j14SJhUTj6JJcqbBuqnPPyolB29W2xnxdJvOo9OAgpPTVR667qeMnEzaPhXT7mjFbH76CE80OoiOmnFFQS4fHH88tzV/9HBde2C/JvuKzmW3b9ryWqxr3Dx3bwk3xNsMSaJ6pNS06d4NgyXLS3YWZEERudjHumzYgYQhgGxH2FHhKpdka8VYpIQsRiFBwIWOtrezlQsgfumC+wfUFPj00N0P22xgUrZ4uHOqKb1RUBdipat/yIuh+wSgvPS1HlivXOIEyHczwVvf0HwfMpKnYJwmuqZkFTb4uWCTk0bR5ezvldGKnfIwqZGPyan750eZSkXU84tWija/6qzzG+yuAYTU/Hgi+5bodiiGnWMPGXXpU0lRm6ltbyJqbOoOrBsE+3gwvTu7b79Wv6XclFa5gVYcGkYhktCyzqnlpEb96Z4bymyYtP3ZurSzLBgKalYBOb2LqacBCIDIHFNhFsQg35x76G1FJWu1kfFSz7wC/wqXpwvoFCRzWS2JObFr6A/ctpqgQNn1DeioShOc/15f9KimgFQCfnUvOCP4O2Lko4C1knHFdRmjqkRpNrmEWUAPx12Evs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.1.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.1.0-beta.1/notes-v6.1.0-beta.1.tar.gz","created":"2026-08-25T09:35:51.856587Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-25T09:35:51.920944Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"RBsVtdFKQqDzV5i3hiCCQ1lJvuqiMXpnCPqR+NTMB3cXN3OSissnmU58KLMZJVYYU0QB4ekMwXuDE48CUTmpS8hzVeLlTbPOtiAvYqefdNN1Zb19LuMaakq+4ugBD1+FMvi9VrrNnEjzWHcU4V+YRkHj+VsIpVbz3PffdsmYNfBnXKG+wgOyBkXqLMFk8Ndc/6NJg6cO4AQ7gE341mrXjRlzi4SzHo04GEw1xQ1zjLkLD675nja/orB7CND5HygyMaAx7l7ZvkYj6MeDOZ3EAM1wwwZDskqK5t0nUzNfbaGYTB0mBo5PV+dsHWtK9XIf4uDC9Xc4qzJjxkQ9Zqyj+MLPbuQT6It8RjKxibgvvPBM86mmkbCiL2+GH90BcbX/qZ069DkxqKzhhWyeh5458kOb6ZjUA/TG4cQBEEx2Fhi9fVh2wbu5iNsLSrhlrTJUQIOaTyrnWGsu9WeFfVN91/41ZaGZMwdUcFfoJBUK2OkLbNw7/sIIYH7g37Oadd2JiFOFrS64aEZFEr9lGp0fU3ZMXi7cnaf1f5uUeLgbHzP6wYQsLcg914STa2mQLabY544AE27cXuwmb3Itolf6ewb1vqOi34nU8kIJOOgBvRYRXO9nar4DBH4uE9ghjN0temDI6snLIT+ojHT/495pqKUJpFuqLAZRYNz2dZdwEug=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.1.0/notes-v6.1.0.tar.gz","created":"2026-09-15T11:33:47.627731Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-15T11:33:47.698316Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"jldHX+QC41hJfsGi3cLMwMUIwwfE+jGS4gUsegalSEI+gFCWRM0DCFrZeyMRtrFoAWxOEr7tOw/40kLRuNjQUmoBHsVLVby3pIWONr/Wj0HAk6fOlYr3xLGFtJ+2UZNN7o2DYejX+4BJ2HWpidXZI0W/lNRKY6D9XFGt5bBMgmOx/cgHZgYqENyU6FkWUclYTRZoIKJgNPhRX9MEQjfCpi1YFbdK8HEj5r7hnWi5nLFbS+r94IUdLQoV9d0tJujfSEtL4R0MUbwybl7bvfTl47TryLDH/COLKexBlZolsuhV2zyld+qYyzwPt2o3mzT1amidrvbf0UCyIUAyEvhS79kyzs999YihmsmtSBEuvGmaVjgKhJwmiiVd3jdbzwxU/NRb78b0+k4Watv0gNaKE1vIFkzuXuA84tb163CdJOFd+VPhpUE+I8OfcONDyd9c8nHh7D5t22I3yfyKADA05rhpoH/CxImMENU3GJicVIQkzxYZ34wdDg7lAog0q7FAO4GLY1L9ErbWhvOxk08pRyXmqUR9XHlnyhC+eeAuzlzo2oqgCXrhFMqq2nd1FyGvv4ZkEnVFOEkRw4KtQPUpUW8FQCFLXRoGVHDDOzIHslXqKElNA8K8Yt1eBjgwSGz6UIeSZ2D8weRGZZl5njNhXY8EIoTlZUYElr1Zt27mjqI=","translations":{"en":{"changelog":"### Added\n\n* 📚 Note template support [notes#1971](https://github.com/nextcloud/notes/pull/1971)\n* 📊 Note details tab in the sidebar [notes#1974](https://github.com/nextcloud/notes/pull/1974)\n* 🔢 Expose file versions in the sidebar [notes#1972](https://github.com/nextcloud/notes/pull/1972)\n* Setting to show last viewed note or welcome screen on start up [notes#1578](https://github.com/nextcloud/notes/pull/1578)\n* Add highlights for notes and categories [notes#1839](https://github.com/nextcloud/notes/pull/1839)\n* Setting to show/hide hidden files [notes#1541](https://github.com/nextcloud/notes/pull/1541)\n* Improve attachment storage, add attachment deletion endpoint [notes#1998](https://github.com/nextcloud/notes/pull/1998)\n* Add Nextcloud 36 support [notes#1997](https://github.com/nextcloud/notes/pull/1997)\n* 🧪 Add JS unit test setup, covering Util.js [notes#1989](https://github.com/nextcloud/notes/pull/1989)\n\n### Changed\n\n* ➕ Move \"New category\" next to the categories caption [notes#1968](https://github.com/nextcloud/notes/pull/1968)\n* Declare AGPL-3.0-or-later as SPDX identifier [notes#1992](https://github.com/nextcloud/notes/pull/1992)\n* Add playwright to .nextcloudignore [notes#1991](https://github.com/nextcloud/notes/pull/1991)\n* Add release relay job [notes#1993](https://github.com/nextcloud/notes/pull/1993)\n* Wait for the Notes API before running the Playwright tests [notes#2027](https://github.com/nextcloud/notes/pull/2027)\n* Bump version to 6.1.0-beta.3 [notes#2010](https://github.com/nextcloud/notes/pull/2010)\n* Add changelog draft for 6.1.0 (beta2 state) [notes#2002](https://github.com/nextcloud/notes/pull/2002)\n* Bump version to 6.1.0-beta.2 and generalize author info [notes#2001](https://github.com/nextcloud/notes/pull/2001)\n\n### Fixed\n\n* 🎨 Notes list design feedback: hide category label for uncategorized notes, remove divider line, right-align category names [notes#2004](https://github.com/nextcloud/notes/pull/2004)\n\n### Dependencies\n\n* Bump vue-router from 5.2.0 to 5.3.0 [notes#2009](https://github.com/nextcloud/notes/pull/2009)\n* Bump markdown-it from 15.0.0 to 15.0.1 [notes#2008](https://github.com/nextcloud/notes/pull/2008)\n* Bump vitest from 4.1.10 to 4.1.11 [notes#2005](https://github.com/nextcloud/notes/pull/2005)\n* Bump vue from 3.5.41 to 3.5.42 [notes#2006](https://github.com/nextcloud/notes/pull/2006)\n* Update nextcloud/ocp dependency [notes#2000](https://github.com/nextcloud/notes/pull/2000)\n* Update nextcloud/ocp dependency [notes#2017](https://github.com/nextcloud/notes/pull/2017)\n* Upgrade vitest and vitest coverage together [notes#2029](https://github.com/nextcloud/notes/pull/2029)\n* Fix npm audit [notes#2018](https://github.com/nextcloud/notes/pull/2018)\n* Fix npm audit [notes#2028](https://github.com/nextcloud/notes/pull/2028)"}},"signatureDigest":"sha512"},{"version":"6.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.0.2/notes-v6.0.2.tar.gz","created":"2026-08-17T13:06:28.354323Z","licenses":["agpl"],"lastModified":"2026-08-17T13:06:28.419125Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Ete7X489fHuGHA3CSBMCkevuiS4YVyvq8g6Xs1GQlJfv+Etj0heFs2cMyOuyqGyhRG8q74PzeHmN/rHZPcOmEYJ504KwZsDZtDZZZXWQbr+7BSgMSyva0m90iIJvxienE5iKdLb6pW84Jjm+yBX3swHKIuSIFyOMAmYjhT5Uf5Hu2xnE4MmtgRvoHFV7LIO2QW2p7b8n909D+2UgYOCN8PUbx8h4+XgJNatdgb3yUc9ArIwMRiqohdWsTi6p3hMa9xwbBXO7PhIwRijaxCXi4DM9yaPj+bwO6ESpTWPFT18jKivbp7G64e7E1vRSgUXU71miyhNplElKcLW72JdGU7Sx99gszX2c3yq/P7pCe7VZHwioELdZLVuXpmsMA1wxEGTqozoBAMfkn7H3eO4SFuYOZ3IrsA47I8rR12n1tInYIEdYyceana8yrHK/LMmK702LvhU5AZD73lK21TPm3VdRSh/ZU9K0d4PDrX8pDrdaLpOwQKMpUtl87BsrVk9fqtQeE5BMlK9Ihti3/XLiXn0uiE+h4V0zxi603gzXw5vWRCfrJycSDPFyxYkE3kC7Phb/SI4/KYNYoY75ZTGhPdUQnmwuu/inRQM4mh1R6O5Xlo962g+XaMLOht89yiRGMnKY0qZ/lruRiJUT0Gtn8ztJe2JDbj6SX6qzSb0wQbw=","translations":{"en":{"changelog":"### Added\n\n* Zen mode [notes#1970](https://github.com/nextcloud/notes/pull/1970)\n* Add code comment conventions for AI agents to AGENTS.md [notes#1982](https://github.com/nextcloud/notes/pull/1982)\n* ai docs and helpers [notes#1981](https://github.com/nextcloud/notes/pull/1981)\n* from Vue 2 to Vue 3 [notes#1953](https://github.com/nextcloud/notes/pull/1953)\n* Pinia 2 [notes#1942](https://github.com/nextcloud/notes/pull/1942)\n\n### Changed\n\n* return 404 when attachment path resolves to a folder [notes#1923](https://github.com/nextcloud/notes/pull/1923)\n* hide dot-prefixed folders from category list [notes#1984](https://github.com/nextcloud/notes/pull/1984)\n* eslint config file and reach green CI [notes#1943](https://github.com/nextcloud/notes/pull/1943)\n* do not expose internal exception [notes#1935](https://github.com/nextcloud/notes/pull/1935)\n* pass onLoaded as option in createEditor [notes#1934](https://github.com/nextcloud/notes/pull/1934)\n\n ### Dependencies\n\n* Update nextcloud/ocp dependency [notes#1979](https://github.com/nextcloud/notes/pull/1979)\n* Fix npm audit [notes#1980](https://github.com/nextcloud/notes/pull/1980)\n* Update nextcloud/ocp dependency [notes#1957](https://github.com/nextcloud/notes/pull/1957)\n* Fix npm audit [notes#1926](https://github.com/nextcloud/notes/pull/1926)\n* Update nextcloud/ocp dependency [notes#1941](https://github.com/nextcloud/notes/pull/1941)\n* Update nextcloud/ocp dependency [notes#1915](https://github.com/nextcloud/notes/pull/1915)"}},"signatureDigest":"sha512"},{"version":"6.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.0.1/notes-v6.0.1.tar.gz","created":"2026-06-25T22:53:29.431295Z","licenses":["agpl"],"lastModified":"2026-06-25T22:53:29.566787Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"lqpf4JvIY6x8pn0RkVnbQhkd+CbnSlhJCH2UZgJk5Rnilfyyd4F0jENT8hOzv/vEJPvaAqae0KjZwTlfuvsrznSI/fUzDZvGSHRG/YyKVCdrLLLvOSupcDcwOpQwUXmjpm8a81RZ+kiA6lZbme6VBvq5nOxJ7vTKWQTnE9NQLDp8tHaKUwC3mBHSYt20vTGRUD7Khwr/RmbASC/vtimVzBCJwihEzDYO8P+8El75/2+hTXawURjdAUU6471g2OubAxL3PlZ9Y0WpaGyZJGbNyv6Uo4uC606Z8+ouRfBrVwRwSI4pMdnGyMI+rv1e2QkoNioV1ZnSOFpRdSTPdkQmAN8owm+hYsQW0DMZSvEnpGFgGYd3UGvl6jNg2HZIPPRAh3ThioSn7Pvq2p6PgniBcp8xTauJdIqHZMo2monIEhxR5KOR74Lun5zK4X/zVjP4dsJuOv/H1kwy+HHtvuSxY07+2xnxPAZkgnWIMtQTQhmdKNJuNGJ3wllc13sqSSabIs0kcUjvj+AGL2LCfigYiRg2frjAQ2qibSmzG0xxHIxektpLjfW6bMwicl+ZuySX22q9X9/Pr3DVCL4K/57csMxk4bobQ7da0iFPl2JUqHNE3qwdcng7/cfCMQl0eby+MiNolSaahSCTy2UskhO8R4j08hqIRs3VJOl0Ni9ty18=","translations":{"en":{"changelog":"### Changed\n\n* [chore: escape inline markdown content (notes#1907)](https://github.com/nextcloud/notes/pull/1907)\n* [chore(frontend): Use OC.appswebroots instead of oc_appswebroots (notes#1891)](https://github.com/nextcloud/notes/pull/1891)\n* [chore: Apply php-cs-fixer changes and constructor property promotion (notes#1905)](https://github.com/nextcloud/notes/pull/1905)\n\n### Dependencies\n\n* [[main] Fix npm audit (notes#1876)](https://github.com/nextcloud/notes/pull/1876)\n* [[main] Update nextcloud/ocp dependency (notes#1875)](https://github.com/nextcloud/notes/pull/1875)"}},"signatureDigest":"sha512"},{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/notes/releases/download/v6.0.0/notes-v6.0.0.tar.gz","created":"2026-06-02T08:39:03.665705Z","licenses":["agpl"],"lastModified":"2026-06-02T08:39:03.741459Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"e7QgxEdC/4LVLkNwA4XoOXAejGkxAoASwGmnJ7EIf3c6uVyPfP6LGeulcbIWv2qgBMbwMHJ5gW5Ey2hwQzYNMkNM+CJIBQ6ARKDf4438sX0cG+K+NSs4KyVlfJpj7Z4skBmu+3iqIwezlGurwI+fFtkA4Bq898/OnfKpLx5U4PzSqwRQvvte+ki+rLdQErE4CEGrfNl8WO8vXYQpEIA8X6dKxOZbv5rWfvCJoEzrUxpgU9HQnwxANWQJQZcWzhZQ68iNXT4+sfN0gWpp969FSvRK7mR9ihoR8eS40Nh62szHgCjG5RWXAiQ4zi1SZ5fwCxivSkI+EPUe/+8rH/6iu/2IdKf852m9JUsPUvLjckDqBJHjU1C1RhfWg01hBruWU4a9QsLqcpRL9kKv0sJheNtkk9ZdleiMQiB8RSXwhVDJyJ60RnHDPw60wlxtlzlVRf0o0Orne147y9rDlKwlicb0676gp3RPzZE4DPqTSHP7xCKCbagz1KyVRddeWLAOeGClKDrAHXSHYoi4IMkgdihMjZTUXbJ8ObW2+eNIL6k0ggeArKZA8zSnheP3CXqyf0N3POJ3pX3ehh11Jor4tOXv6h3ivCmP8nDhRhMy5n10CGPby2jLrCrpv0UjDUt7ScIUX3wczbNcdTGT3F24ywYb50ZltXyja36q240xfwo=","translations":{"en":{"changelog":"### Added\n\n* [Feat(ui): indicate category in \"All notes\" view (notes#1840)](https://github.com/nextcloud/notes/pull/1840)\n\n### Changed\n\n* [Fix(perf): replace legacy NotesHooks boot registration with typed file event listeners (notes#1836)](https://github.com/nextcloud/notes/pull/1836)\n* [Fix: Update min server version to 33 (notes#1852)](https://github.com/nextcloud/notes/pull/1852)\n* [Style: Update sidebar and general icons to latest design (notes#1863)](https://github.com/nextcloud/notes/pull/1863)\n\n### Fixed\n\n* [Fix dead zones in clickable note area (notes#1841)](https://github.com/nextcloud/notes/pull/1841)\n* [Fix: Update composer command to include all dependencies for nextclou… (notes#1859)](https://github.com/nextcloud/notes/pull/1859)\n\n### Dependencies\n\n* [[main] Fix npm audit (notes#1834)](https://github.com/nextcloud/notes/pull/1834)\n* [Chore(deps-dev): Bump php-cs-fixer/shim from 3.94.2 to 3.95.1 (notes#1838)](https://github.com/nextcloud/notes/pull/1838)\n* [[main] Fix npm audit (notes#1844)](https://github.com/nextcloud/notes/pull/1844)\n* [Chore(deps): Bump easymde from 2.20.0 to 2.21.0 (notes#1845)](https://github.com/nextcloud/notes/pull/1845)\n* [Chore(deps-dev): Bump @nextcloud/stylelint-config from 3.2.1 to 3.2.2 (notes#1847)](https://github.com/nextcloud/notes/pull/1847)\n* [Chore(deps): Bump axios from 1.15.0 to 1.16.0 (notes#1848)](https://github.com/nextcloud/notes/pull/1848)\n* [Chore(deps): Bump fast-xml-builder from 1.1.5 to 1.2.0 (notes#1849)](https://github.com/nextcloud/notes/pull/1849)\n* [Chore(deps-dev): Bump fast-uri from 3.1.0 to 3.1.2 (notes#1850)](https://github.com/nextcloud/notes/pull/1850)\n* [Chore(deps-dev): Bump @babel/plugin-transform-modules-systemjs from 7.28.5 to 7.29.4 (notes#1851)](https://github.com/nextcloud/notes/pull/1851)\n* [Chore(deps-dev): Bump @playwright/test from 1.59.1 to 1.60.0 (notes#1855)](https://github.com/nextcloud/notes/pull/1855)\n* [Chore(deps-dev): Bump @protobufjs/utf8 from 1.1.0 to 1.1.1 (notes#1856)](https://github.com/nextcloud/notes/pull/1856)\n* [Chore(deps-dev): Bump protobufjs from 7.5.5 to 7.5.8 (notes#1857)](https://github.com/nextcloud/notes/pull/1857)\n* [Chore(deps): Bump shivammathur/setup-php from 2.37.0 to 2.37.1 (notes#1860)](https://github.com/nextcloud/notes/pull/1860)\n* [[main] Fix npm audit (notes#1862)](https://github.com/nextcloud/notes/pull/1862)\n* [Chore(deps): Bump brace-expansion from 5.0.5 to 5.0.6 (notes#1865)](https://github.com/nextcloud/notes/pull/1865)\n* [Chore(deps-dev): Bump webpack-dev-server from 5.2.3 to 5.2.4 (notes#1867)](https://github.com/nextcloud/notes/pull/1867)\n* [Chore(deps): Bump qs and express (notes#1868)](https://github.com/nextcloud/notes/pull/1868)\n* [Chore(deps): Bump markdown-it from 14.1.1 to 14.2.0 (notes#1869)](https://github.com/nextcloud/notes/pull/1869)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zY3JlZW5zaG90cy9tYXN0ZXIvYXBwcy9Ob3Rlcy9ub3Rlcy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/screenshots/master/apps/Notes/notes-thumbnail.jpg"}],"videos":[],"translations":{"en":{"name":"Notes","summary":"Distraction-free notes and writing","description":"The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into apps ([Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios), as well as [3rd-party apps](https://github.com/nextcloud/notes/wiki#3rd-party-clients) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites."}},"isFeatured":true,"authors":[{"name":"Nextcloud GmbH and Nextcloud contributors","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.7972972972972973,"ratingNumRecent":0,"ratingNumOverall":37,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhAUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDEyMjAzODI5WhcNMjcwMTE4MjAzODI5WjAQMQ4wDAYD\nVQQDDAVub3RlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJpuVxoH\n9J3nVUHKh+kdSafPuTwkvhLre215pHi0hJm492M084BZYgkV0N9qGTxcyipCTHEa\nTjt+MpaXjuiO0yXe/sVm3E0Mu/tNKTSQ6i3aaS5x2F5sB2rCWVDD+h48/rQ2mRWe\n4+Tl9uXR4LdEbBV0sUlQP6e2yeKOieAuh33gnAaadklftW9zvt8XSt2rhlF7Qino\nkUImEbStGLyM7ThZz48MDQ6Hs7SLYumtBhi0iMcBraagZdJrWOQfhHH1K0kQGeey\nvO4iqlCvGfsHM01BzyvDKqitJJ7pgXsozRC1ysLQ8SHJFOEZgzKMqPQVfBuM0rqf\nGQj0pUNBHZjZ/EI3JLYPGoqK6AEGfOVN7XJeFjBw2ayFu210JP/YQ4O9UhG8noel\nHQ8csUAV/AV9HlU0FwUGpMPLqZhiApSPjYdqofhlRbOxru/LxP4v4iWsZHDneDdN\n5NwYMBivkhNe+gNESh8AL3eF5OQAD9Idylnj53R3/WZZ7cDL0AOsbKXM3jmkyI5K\npnP+Bo8xAOqxhyYDIS4pv6iH0wtOhWLcbzqPCU4QrfW34yR7qFS6zgXM6OVcDn4C\nbVbEA3Z3Mr1er8kpGHVOzzYaxbasIknwMu3kDUK6rmmNUZT2UenR6ellxaiSDJTc\nYqb9cEyUV++9h/y7+2MYnROoJHsDaJ4vOfw3AgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAJHfqbq6gTnRSGUnS96VIB17i7I3NBybXu4ZaSEmVjYQbB/ew09KUbpBxPLV\nUBrxhGjEwHPvDcr9Q1KJ0O6RTu+7K7ECueDe5FVQSQ3g9HpO3BKZhCAs/vZLXFRr\nSloaPqv0fXOH3yZ+geJV7UXhurO4etqmwKxwucLdu6WJjo6N7GKfRPXmU8DIT3dc\nhUczSpWNCKa32hA22SgskEHWDXvrwrEae23ljbRFWgxQ7jdHhZqBZVrP0Q1dDEYW\nbhQe3aVhuRaTT8Kzbnl03S4ZuA21v+2COb2/3sajdEdz/4co1E723aAGBbz/T2TC\nl6sMWnWB2VKecPOpnKOHfES4gj0=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tvshownamer","categories":["files","multimedia","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/j4ym0/nextcloud-tv-namer/issues","website":"","created":"2021-07-28T21:04:30.090672Z","lastModified":"2026-10-18T18:07:31.856786Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/j4ym0/nextcloud-tv-show-namer/releases/download/v1.1.0/tvshownamer.tar.gz","created":"2026-10-18T18:07:31.851133Z","licenses":["agpl"],"lastModified":"2026-10-18T18:07:31.898668Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"JrgnRBAs5c/YDJu+5TfwxIStJhF/GOVDVlD8L5BVNz8o+rp8EIFQXApWzjTbFLVy\nqnaIWbL5PuGGUqMKQoiWdLKFzrw2WVQDJnkulKq08PEyGh4sXzfArfbhm3QT+mcJ\ns7bB6lCTmK1a2oWVOXuZ9no2u4X2pvL8RYxx17E7yGcBB5hjD1cwcRiIjGera8yT\nw1K5GGKPuQ5fXgmQ0nwDP6k4Cc1aC+DC0b9Llhghz/QU5RjZhzxS4Q9NmcNKiYCK\nsmMEo/4YtCO+BkQL2uip815uFAljUkH4LRPxKkgSzSVU3RaByrw4AETxOKLXaeCy\nOhX0IiESDzHWeAUkiQbqEMGxguLUZWnie9t3aqztaj5Z6X0ECaYZsOdETUtXNpDr\nIn+255yMGcNA/wuNplxNy3c/Q3ORcCeUbv40mfQsnvx4SEOwulxAUW/YstR0MbB9\nWUuPSxCLm5BCCONt1EwODsfOF69iDi3etWMg6Yba0hOX44eAMJEF5i8dhI9E4kax\nk+uinPBF6dpbLO+H5Sxorv5UFlO9XghtKXvPSLd5IMl1JgykvGV8yKwxH9Pu2CN8\nrOQEIv66VSXKhV+ZFwiRpNd8L4W6VGnTEJK4hIxYtMM9WHvY4jZ2v1JyKxQLlV0X\nJA/pjBAr8McwMniELDvyX57JGDaQM2HxPHWceuS95Pk=","translations":{"en":{"changelog":"translation updates\n  tested on nextcloud 30-35\n  fix double bounce on first menu open\n  upgrade notification messages to toast\n  add message type warning or sucsess\n  fix error 500 when no folder selected\n  drop unused database table"}},"signatureDigest":"sha512"},{"version":"1.0.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=16.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/j4ym0/nextcloud-tv-show-namer/releases/download/v1.0.10/tvshownamer.tar.gz","created":"2026-09-25T12:49:06.822125Z","licenses":["agpl"],"lastModified":"2026-09-25T12:49:06.868977Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=16 <=35","signature":"ICR7Lx7tZg8nrRH4wbaWdu09Nhl+cZR+TwGDbbjJEwvceZjr/lkfHmiAHVEtujFL\n34pL9YPQWzpceEByxKrSPyPf7LYzz6fZu7/0uWfqyycI/SZdkV20Hs5XxSbEUvCM\nztZWR+RLQchI8J/Hb+Xqkv/3mzAfL1LSnwbpr9P+FK40PletrsozIdQx2bWvd3Y5\noLNiruEWTEWXf/qbncb7xrzcagsCVa8J40igazC43eFWvD+pKs3PrLxaHbhWJjZK\nTD3iX+qxpJJYhE8oYS3Bs2ePHo1CmVZexGPBJPdsRE571ZKZ7/cj7p5I7MwAOiOR\nxixbA/C2OGGth4gUk2g8XZ1HGDHJRN79EhVMnYSUA6mJOxV1F+kxcj7vhSf2hF2e\nzuK8NhXLmmb+iuOD0J5HVhkmTVnSNAEi/L4ASAE10hUKDHppLnWzw7x3rg0QsD0y\num4OfslQD5BZDZ/ByAA9aZF6xoZe8jzfFBSpwutL0ea7BvdMwzlX2QXJWMALKScm\nABwEpIgdmkUaXkggL87VYfq/fM0ih4Qjj/LODwFnZ+mlR5hqA1Hv9U0G54jd47bN\nvyZpRqQVDP9URTC9+qD8CBJKee5X2RQRrK1cUd2aji7LGdP6wMOFjyuTINIPPOB1\nyNrHG1Gyt4+ZJyQzZdJ+RoZCVrilPdVgMmpo5Sf7J6g=","translations":{"en":{"changelog":"translation updates\n  Nextcloud 35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2o0eW0wL25leHRjbG91ZC10di1zaG93LW5hbWVyL21haW4vc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"TV Show Namer","summary":"Organise your TV shows","description":"TV show namer organises your TV shows, series and seasons into a standard format. It uses themoviedb.org and thetvdb.com to scrape TV information to organise your files.\n\nRename files from “some.show.s01e03.avi” To “Some Show - S01E01 - Episode Name.avi” easily"}},"isFeatured":false,"authors":[{"name":"J4yM0","mail":"isntit000@gmail.com","homepage":"https://github.com/j4ym0/nextcloud-tv-namer"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhGSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNzI3MDkxOTMyWhcNMzExMTAyMDkxOTMyWjAWMRQwEgYD\nVQQDDAt0dnNob3duYW1lcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKQnRVzWCp1McDJznocLzoGNex8rSkeKJF3FFi5/dU6vedUYknZjgBex6tDuU1Dd\neCKNlf2Tc5Adh7UzeXYZOiv7UYMM0CJq/jICrFEMq0URDBVm183wIhpihrb1//3v\nU1se0CuNiO5KJapVAlJLkqlvTx7Q5B26MH+oKwR2TlTTN6qm/QB+O3E5hYCmb5oe\nxzEiKanweJTAtfV0xaQwBTfcL6vgqdB/ogMkySMMfvgJddABZWQuQ4ZjFgKEqq/8\nE6D+zrZnfBt68VTKQnhwZj0HAq0TM7DMz9wxTT5XTPedBn2zivEF7IsXE0vJ6OEZ\nH8EyTz+43GGX3XubcLwjRHgqXuhmAr4EwtO8dhpgZaG6AEL9hCsl0/5ctXu+ZFBX\nBSiRmltfLE1Vj4XIGIOHHGzgvVaCvMHSajxtCMevy2tmbTNZcNeqgDfVIXNTlyge\n64GkFdKpB9HErmHndq2z0bOBH6fzPQcvxmb6kHqmiBgf+7v9k8JAUtbSSavqn8xa\noewuLSsrkeXI7R/UupVVMoQq2GKK+DWUkGB/DVFeOed/SJrafWTd9XsT9/y6ZRzX\n4/6ZlsLeK6lO7Myb/vyEhLTettlzP3Tq3nyYWJKvMd+t5+08Mlj5g5O5ltSYuNJ6\nxEXJLfT7cWJmBHH1Am+0ftP0Jt4KsJvQnMh0J+IjAmtBAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBABxEmq++LwgvbKCQ/kc229tDEOe99K3bbRXGYHq/mLMcftX3nrWY\nl6mP535L24rxkreECP2wsTmR/ijkhTQKkitoix3Rx0LmQuEIw6kj7TgLPSAsPMty\nDAzKPobH5LDRPF/rO2k2gloJqL8Dw4jgbHfBS3k3/wtClhPezvL8Mg4JYpruIxAN\nEx8SgVmsH3LZzQEFHK9lpTzoQsbX1zxcPdFZkB4Oytuw/pYYqXpDtdjK6TcRWNeN\nLDQyP6mIiHqoBEpmSqxrBvSGjy5LdOISFAf+WUwOoANePo1adRmZSTKp5CrVnqn4\nDRlDKLCah8PUbusrRj/IUQhJkhpQPInd+JM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_deepl","categories":["ai","integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_deepl/issues","website":"https://github.com/nextcloud/integration_deepl","created":"2023-03-20T16:48:56.934068Z","lastModified":"2026-07-31T10:16:14.162917Z","releases":[{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_deepl/releases/download/v2.3.0/integration_deepl-v2.3.0.tar.gz","created":"2026-07-31T10:16:14.132667Z","licenses":["agpl"],"lastModified":"2026-07-31T10:16:14.201733Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"FpVfRObdDLZGw2CqwPhETx1wDesNL9oMwWsb5BK13S8OB5K2K3mOetaJ1w5ktzH4TdHB4yWo0dPbg06m2SdbSFsWhRy6aJvFKJ7JtAI7kjFfAdf15nr657f9XGwz+zFw9tHnaVETP16kVBI9Iz/9+ndr/ZwX+56l+LBVbRXS920oJlZqGNQBaojkZSdh54CUnTXmpx7lbE7BbfmPrnyWUeQlaKF9+aOj15sZ4L9W/3NzAWl8zXvIllb9w98a6yYSWfH7ck4fXgomt6Y2rf28X6EAbbCPUdaLTwGxjJNCoLDh/KwccdvwDuJNm1JEn3E+O+M6FudcYsBbT1qGhd6YqSexDgCZZy/yJtKjGEUkPrmyguJeVqivRu0HyqJNCkbA59oahfCTJu1dt6EC2cN/2oKZZph9P7ONbXE6lTmzoWHmgonB3VOQqkvLvFVvbDAaph9j/PcG0Je+ZsCtwjPErJxTRXB5C+cZIsnNp/5wQuSj7yuUy+KT1PWSoKQ9UvKyf1BFBNjWXec2esygklTF+KV5veXo98AVfMhvwI/6YpDqObIcbSZd3ku1qBthrGeRsCPIcyCpa9ysszOw+zhVYkfAX+OfrLdsjxaDolp7WR+3LSHA5KJopw19zTXteOW6odIYU9UiCL23A+RGGd5kasTgYeF+RyHcUcEeSCTOF2w=","translations":{"en":{"changelog":"### Added\n- @janepie Support for NC35\n\n### Changed\n- @janepie updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kZWVwbC9tYWluL2ltZy9zY3JlZW5zaG90X2Fzc2lzdGFudC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kZWVwbC9tYWluL2ltZy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kZWVwbC9tYWluL2ltZy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Deepl integration","summary":"Deepl integration providing translations through deepl.com","description":"Deepl integration providing an translations through deepl.com with Nextcloud\n\nThis app integrates with [Nextcloud Assistant](https://apps.nextcloud.com/apps/assistant) to offer translation services We recommend to install Assistant additionally and activate Deepl as translation provider in the Artifical Intelligence admin settings.\n\nThis app also integrates with the translation API of Nextcloud server to offer translation services without Assistant. Currently this is available in Text and Talk.\n\nTo run translations and any other Task Processing tasks synchronously, run the following command in a background process (10 is the interval in seconds when the process should relaunch to use the latest php changes):\n\n```sh\nset -e; while true; do occ background-job:worker -v -t 10 \"OC\\TaskProcessing\\SynchronousBackgroundJob\"; done\n```\n\n## Ethical AI Rating\n### Rating: 🔴\n\nNegative:\n* the software for training and inferencing of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be ran on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhIEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMjI3MjMwMjA4WhcNMzMwNjA0MjMwMjA4WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl9kZWVwbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBANFuHVGHYL164bmp/2wN8XMqSPUVC0Kuo5/mNUcWMP3YNLiB9FyqcJmK\r\na7OnUCadcxCHtAeafli9FQ78OCswiDbq6xCbb9qYBmk2ElKc07iFR91DshCd19Dc\r\nOiYPguC80e173Vb39nSh0fBMn+05C+cbGGjMrAaW6T5V6BSeyCtNB0bXlwG832bn\r\nbI30Uk5qdoPzQ2aCGVToPvULhEqc88ghnh4+SGI8nxiXfwtr0mwxbqxBruSKQi4C\r\neDUbDqVCS4t3VEzPPH2exihBJfjFatEBXN1VltYXuxniwC4pA2pkzjtqhObFUUHT\r\nlQI/qZJ1iwfs8Qq7DM9ToadY46I7XGA1t2vJWQuEBCZ+u27dvBTVBE5hOrzE6VvN\r\nez/VOdx433rpROSBLMSp8fY9N6gmxdTdjhJ/Z+e1RKldVbypQvxqoJW6KQFFmTch\r\nBmPTgzLM51cm/MT283oudzc1fTo6VCOGxK6nhWjIGdCfE/b9Ex9oPgZ9yRavNkHM\r\nEWL7bo2LDOL+SuId4929HuSBNvP2YwRJuD2I+d/KY5/bEk/Z3rrA3hGBLtk03/9Q\r\nF7KNKeWcCR08j0oFxcHtHBv2khrDoAhwsWcnh6ivvXpx+k90+c/hBWwgh5tVwqpY\r\nnbmJt2jysjda6gYeUX6oFbLWNFhMmDf3g6+urAprPjwRbOHuogwJAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAC1tbh4HX5kUFOE09SntcR13Q0Ptv2DaE5yWBCKOAGOH\r\nc8Js1O0IROGZymoSf5nRprmxQclRyn1239H9aNAKVutaeJUInNHUhVyCdCTBRhsv\r\nHrDg1t+oqQLxF/tktJAOXoO1oLp203Ag3EAUS/pxv1YwEfN3q8VBMS2o7H0TtxIy\r\nNg5JGHZvKUsSehE+WexOw1G0SxHef8KkcBrvN/hDRQhR9W2hHrTsWPmtp5QqUzg8\r\n4pkjIbtVfj105HSOJ26fAM07UTQ60Aw7MrJRhk+PAqR/kr/nSQrK+Flyt6hjI0cW\r\nDB1A6mMKnb0Ux3n0RaBUBPoPSmJZQ3Q/gwpupf5xWyM=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"budgetcheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-05-22T18:18:10.456859Z","lastModified":"2026-10-12T07:56:59.561898Z","releases":[{"version":"1.4.8","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.4.8/budgetcheck-1.4.8.tar.gz","created":"2026-10-12T07:56:59.553255Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T07:56:59.651272Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"TQMru9+Wp6/V0JioRdxKdHLr/cVdKaa4zmdHX0qlqzJVvaY6VNHk4cccPbYpc/ishO9+rRiu7pGV8MKCwvnrRg98QT5wdt0IBbwb8i3mwOKE6PewWc2XfixktcRjDpwNV53CfaZA//RwxsQnb4Sgj26lHQCT9LF6Rwj3L8TT3LkAyFuGnSIDjCYRLomwI8xzZ4/aEG2pZBLUEAiLF+tpBhpudE8aGuQxRsjX/RzkaEXt5DCp7pvm2nxsCsZhkUddbVV2bsXCihSS7G+sEh+0KClLRGoYea92WCtbawrouBzFK0eQFa2tXMcmAean2JBQMLr8KJeI88LlAPAlPEYwHVeIjLZ5N7lptkc25uCdD3qKN/PpmEYeN0IahLOiGMv0WDdR2BrTBThFlrkh1hCO0rUuIGL2o57z4teL8XtY0ytxuTEYSHIHvQujsdzAVxMtUCC5j8ztT66qcmZ8LO7l4/dxIy2au5MRvZfkCuLQZcCJN4tm0hgkdS4T7mnJzaeAcveq6HKYO3OaE8mbBNWQyEuUhfCGGkKVf38SPWlH/CyEMKmGIUJ9a8NAYvak+PQcE7VcfOkClz6OTwi+0OGMFPTyS5yI8++Z3cETVBso6W3niS2ysgS2KKPXVLZWzzcD2zGoWMUorLCUJksdD4EI6qvhec/K0eyTSWApb8sNRqo=","translations":{"en":{"changelog":"### Added\n\n- **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.\n- **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.\n\n### Fixed\n\n- **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.\n- Corrected untranslated and case-only-differing values across the existing catalogs.\n\n### Changed\n\n- The translation checker now validates plural message sets and percent escaping per renderer, so both defect classes above are caught before release.\n- Maintenance: dropped deprecated `clip: rect()` styles and cleaned the shared app-feedback regex (fleet-wide sync)."}},"signatureDigest":"sha512"},{"version":"1.4.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.4.7/budgetcheck-1.4.7.tar.gz","created":"2026-10-10T15:27:18.609958Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:27:18.743196Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"gl/QFzQnXTF0uXgNMdnMFQqUsSs0Z16Qr2MIWOEj1jr0rRKGXngngVS7PptEQVtpEi/vZgrNvofYOLXnZaioGvXt4b3KfxvYqcoDQjU9cs+qNMcxvPOHOB31YxB/kJZybDYAibcYlimx6gMdRTeFsegEkTMinFft3u7CDokgcxTxTOu//9ugxoDDslfZxga+T/+B0m6pHxlZ0dvzuujA1ifbIhJbNTGrYEhTd8NH2tNA7HBpYS2YSui8Hmu3tAjP549ZHdoYEJhDT5gvWQD1CDMbiexwO6Rfq+Qv2F9sOAHyQEOkum/ywjtNq3VQrd3Nr6JbEttuLhUpt2y0wB7O1tcnVg6BkzjfDy1ba7dRlK8ZklFxy5EAWWq7Bpq8UBBtakAxyZplVj+Oitbw6E3Mz1haSBYsgv+1Qs1bTWGtT3+eXP32+VLtXnooMMnyyXxpaxjsztOKBzD8znKTMUgAsvnmOPa0K4rI/OycJNwpsaabiU0YQ9a0E8WfvsIg5Qht487XnRTFDl/arNUjWI0loMQzaU7gVMBg8s66imRI+V79DlUmIghU4zgbm5xoCxLzUtb4WIe3xsu8WC2FFQCrmqQV3WDLrQ4FMfYHMwFJzJc4NT7ZfLpNcuVCK1M9bQQcxfv+48t42sovdH/f80BXwUkHJrHgfNo/AH99EUzqycg=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.15: strict-id route reqs + contrast suite + l10n generator fix + test-harness cascade\n\n## Unreleased\n\n### Added\n\n- **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."}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.4.2/budgetcheck-1.4.2.tar.gz","created":"2026-10-04T19:10:21.468235Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:21.601226Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"A2P/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=","translations":{"en":{"changelog":"### Fixed\n\n- API hardening: stricter request validation and error paths.\n- Theme rendering now uses real OCS theming values; field-level error rendering synced from the shared component.\n- Localization parity and catalog corpus fixes.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected."}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.4.1/budgetcheck-1.4.1.tar.gz","created":"2026-09-17T15:11:42.653290Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:34:47.269684Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"mERz63QfNXCX2l4kVJdDFobFQiXRNKFOiB/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=","translations":{"en":{"changelog":"### Fixed\n\n- **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.\n- **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."}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.4.0/budgetcheck-1.4.0.tar.gz","created":"2026-09-10T07:50:23.470062Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T20:24:46.689737Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"RZyzSvfPcIbXGp7KlK5Sa3Nih4lLR3zWGGEQzKtnT5UL2UD9i4roX5jCRMf+mXIjd9Hgi5DjeEy5DCB0FqVNNvwnBrtAMaJenYJ+pZ/70TeJAhqTdKIzkXyeiX41BNgqhCxcWAdV0JjLGQhDvZNumygKpJJVjtj2V07aBJT1wVjA577CIovyhMATUG3w+uFE9yeWEupzQFjsypx4rpcqbFO+aGaXdO0QJky5g/X9QmUJGNDxyJhDMWwzkq6kgXBDdl9UQIuneN+TeH0IRkFtyDFdCh75Ft++4w43R3WeAGzsCjpe1BQxLxgHGRe6SorzStCNs42hM0CHTTQeKX5Vw7wmIEJO8RksElf+HPuiv7JvhjAGDVl7DVVRDDDL72niw9SQwejCODmlXRyZrMkWa3tuqYqoD1KOpG5nXkOqLMyJbOzcXbUp3G4si/gZVG6erZjGK7OqUvikmrIbyu4Sg3smxV5CC6nw/SzLTivVq6FrF50luGW//pNG15UboXIVjQ1kRdlMcYSmV7uY0kFC1a68z2D7VAF/l4Zmfex2zquHYD2uiJQKj+aZQqktceMwMhfTDT8DSqmc5KIblDrnCSP2yRMtaniuzcQNESBveKDHPO5u7k3+k0cb+7LpIBxFwZGIYxeuIWcRaD+7hsGp9agmO1o6F4H0rAtLZJdYyJE=","translations":{"en":{"changelog":"### Added\n\n- **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.\n- **Mobile companion API 7:** `DELETE /api/mobile/v1/workspaces/{id}` with the same confirmName gate and rate limit (5/hour).\n\n### Security\n\n- Workspace delete is manager-only (private workspaces: individual manager only; no app-admin bypass). Exact workspace-name confirmation required."}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/releases/download/v1.3.0/budgetcheck-1.3.0.tar.gz","created":"2026-09-07T17:55:33.232333Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T17:55:33.366734Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"RBhia8rvbpf4HytBK1LGXHoKUKf8F5/XUOc5pqgIlWyx2vhnxj3lACL4skjqP/jQ3HrI6jxFISuTbNy3ou+JZ0SqzsScdJM4I2nA83puVfYnBqmc3f8tZTH3KstviBoEzF+OZkSU8qZpkLH95wbnfVoPlX96PxHyTRg99+IqTmv+RpmRdvmy5yD3zW9Fsc8eaEA7IQGBJQ+FmxpXkOz1lQvfNMVAhTQVYXpqOUuz+5UbgqJCtTdvSWqYFJ9rQWf4sLVuKmz45Ih6xkUNULSl4Ifk0AxmAmokJKtaWPwdFf44OlxzE1+7EXJ075juDAimhIW9qA7gxXODyHgFiwhVOEyCPxmNRcyGDC0aFT/Lly3Qb23kZu9S2NfXpGWxOJ5usJK0zkpAQWMeWy3o6CjwrItCIpjaEc8cby21ymewQ9L1IhaTAegIAKFJkRcXa15rmPV27zYTq1aWKdjn47r/ukUhYDNiHjV1KSjEbhkmVdQYLyOlYRjkd3xu30oTLu/+HQnaapyvl1dQLDLFTC8wsQMvUERc2gmi+dxGmhqsaR1pLqjnZxDOMY/6Hyy4OQzseY9MuGPWlIBrz2juPJrZPwzgMXGkLTfzWqG8lhPJPZh/+2T9fvzDmOSbX2ZBcpyTDhH9iGq0zIEpvtpsRh97duFuZzRYPwiR7HZXM3BTwN0=","translations":{"en":{"changelog":"### Added\n- **Recurring posting modes (#18):** each rule chooses how dues land on the ledger.\n  - **Book automatically** (default for new rules): writes real transactions on Generate / when due.\n  - **Plan for bank import** (legacy behaviour, kept for existing rules): writes planned reminders that a matching import removes.\n- **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.\n- **Catch-up actions:** per-rule “Book now / Add plan now” for overdue dues, plus workspace “Add everything due”.\n- Generate can **promote** an existing planned twin to a real booking when switching to book mode (idempotent per rule+date).\n\n### Changed\n- Recurring settings UX rewritten for clarity (two modes, due badges, simpler verbs). WCAG 2.1 AA focus/labels retained.\n- **Contributors** see Settings → Recurring for catch-up only (Book / Add plan / Add everything due); create/edit/delete stay managers-only. Viewers stay redirected.\n- Inactive rules no longer offer Book/Add plan (plain “Paused” hint); Due badges expose an accessible name.\n- Real ledger rows may keep `recurring_rule_id` for provenance; uniqueness is one live row per (rule, date).\n- Closed months are skipped during generate/auto-due so the cursor never stalls forever.\n- Mobile recurring suggestions read `amount.minor` from the hydrated envelope (fixes always-zero amounts).\n- **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).\n\n### Fixed\n- **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).\n- **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.\n- **Mobile recurring UI:** Start → “Add what is due” screen with Book now (wired to generate-due API).\n\n### Security\n- 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.\n- **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)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDEucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDIucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDQucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDUucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYnVkZ2V0Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2J1ZGdldGNoZWNrLXNjcmVlbnNob3QtMDYucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/refs/heads/main/screenshots/budgetcheck-screenshot-06.png"}],"videos":[],"translations":{"en":{"name":"BudgetCheck","summary":"Scoped household and project finance with auditable monthly close, budgets, and savings targets","description":"# BudgetCheck\n\nScoped finance for Nextcloud. Each **workspace** is either a **household** (recurring monthly rhythm with budgets, savings targets, and yearly overview) or a **bounded project** (project window, period overview, optional cap warning).\n\nEvery workspace has its own ledger, categories, members, and tax settings. The **server is the source of truth** for all calculations; amounts are stored in **minor units**, never as floating-point. **Monthly close** produces an immutable snapshot with a verifiable calculation hash; controlled reopen restores editing. Optional **tax-aware** mode supports net or gross entry with deterministic VAT conversion.\n\nThe UI is **workspace-scoped** (household and project totals never mix), targets **WCAG 2.1 AA**, full keyboard use, and responsive layouts from **320px** width.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL or PostgreSQL"},"es":{"name":"BudgetCheck","summary":"Finanzas domésticas y de proyecto con cierre mensual verificable, presupuestos y metas de ahorro","description":"# BudgetCheck\n\nFinanzas acotadas para Nextcloud. Cada **espacio de trabajo** es un **hogar** (ritmo mensual recurrente con presupuestos, metas de ahorro y vista anual) o un **proyecto acotado** (ventana de proyecto, vista por periodo, aviso de tope opcional).\n\nCada espacio tiene su propio libro mayor, categorías, miembros y ajustes fiscales. El **servidor es la fuente de verdad** de todos los cálculos; los importes se guardan en **unidades menores**, nunca en coma flotante. El **cierre mensual** produce una instantánea inmutable con hash de cálculo verificable; la reapertura controlada restaura la edición. El modo **fiscal opcional** admite entrada neta o bruta con conversión de IVA determinista.\n\nLa interfaz está **acotada por espacio** (los totales de hogar y proyecto no se mezclan), apunta a **WCAG 2.1 AA**, uso completo por teclado y diseños responsivos desde **320 px** de ancho.\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL o PostgreSQL"},"nl":{"name":"BudgetCheck","summary":"Huishoud- en projectfinanciën met controleerbare maandafsluiting, budgetten en spaardoelen","description":"# BudgetCheck\n\nGerichte financiën voor Nextcloud. Elke **workspace** is óf een **huishouden** (terugkerend maandelijks ritme met budgetten, spaardoelen en een jaaroverzicht) óf een **afgebakend project** (projectvenster, overzicht per periode, optionele waarschuwing bij een maximum).\n\nElke workspace heeft zijn eigen grootboek, categorieën, leden en fiscale instellingen. De **server is de bron van waarheid** voor alle berekeningen; bedragen worden opgeslagen in **kleine eenheden**, nooit als zwevendekommagetallen. **Maandafsluiting** produceert een onveranderlijke snapshot met een controleerbare berekenings-hash; een gecontroleerde heropening herstelt de bewerking. De optionele modus **fiscaal bewust** ondersteunt invoer netto of brutto met deterministische btw-omzetting.\n\nDe gebruikersinterface is **workspace-gebonden** (totalen voor huishouden en project worden nooit gemengd), richt zich op **WCAG 2.1 AA**, volledig toetsenbordgebruik en responsieve layouts vanaf **320px** breedte.\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL of PostgreSQL"},"it":{"name":"BudgetCheck","summary":"Finanze domestiche e di progetto con chiusura mensile verificabile, budget e obiettivi di risparmio","description":"# BudgetCheck\n\nFinanza mirata per Nextcloud. Ogni **workspace** è uno dei due: un **nucleo domestico** (ritmo mensile ricorrente con budget, obiettivi di risparmio e panoramica annuale) oppure un **progetto delimitato** (finestra di progetto, panoramica per periodo, avviso di limite opzionale).\n\nOgni workspace ha il proprio libro contabile, categorie, membri e impostazioni fiscali. Il **server è la fonte di verità** per tutti i calcoli; gli importi vengono salvati in **unità minori**, mai come numeri a virgola mobile. La **chiusura mensile** produce uno snapshot immutabile con una hash di calcolo verificabile; la riapertura controllata ripristina l’editing. La modalità opzionale **fiscal-aware** supporta l’inserimento al netto o al lordo con conversione IVA deterministica.\n\nL’interfaccia è **scopata per workspace** (i totali di nucleo domestico e progetto non si mescolano), mira a **WCAG 2.1 AA**, uso completo da tastiera e layout responsive da **320px** di larghezza.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL o PostgreSQL"},"de":{"name":"BudgetCheck","summary":"Haushalts- und Projektfinanzen mit nachvollziehbarem Monatsabschluss, Budgets und Sparzielen","description":"# BudgetCheck\n\nFinanzverwaltung in Nextcloud im **Workspace-Modell**: Jeder Workspace ist entweder ein **Haushalt** (monatlicher Rhythmus mit Budgets, Sparzielen und Jahresüberblick) oder ein **abgegrenztes Projekt** (Projektfenster, Periodenüberblick, optionale Obergrenzen-Hinweise).\n\nJeder Workspace besitzt eigenes Ledger, Kategorien, Mitglieder und Steuereinstellungen. Der **Server ist die alleinige Recheninstanz**; Beträge liegen in **kleinsten Währungseinheiten**, nie als Fließkomma. Der **Monatsabschluss** erzeugt einen unveränderlichen Snapshot mit prüfbarem Rechen-Hash; ein kontrolliertes **Wiederöffnen** ermöglicht erneute Bearbeitung. Optionaler **Steuer-Modus** für Netto- oder Bruttoerfassung mit deterministischer USt-Umrechnung.\n\nDie Oberfläche ist **workspace-getrennt** (Haushalt und Projekt vermischen sich nicht), orientiert sich an **WCAG 2.1 AA**, vollständiger Tastaturbedienung und responsiven Layouts ab **320px** Breite.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL oder PostgreSQL"},"da":{"name":"BudgetCheck","summary":"Husholdnings- og projektøkonomi med verificerbar månedlig afslutning, budgetter og sparemål","description":"# BudgetCheck\n\nØkonomistyring i Nextcloud. Hvert **arbejdsområde** er enten en **husholdning** (tilbagevendende månedlig rytme med budgetter, sparemål og årsoversigt) eller et **afgrænset projekt** (projektvindue, periodeoversigt, valgfri advarsel ved loft).\n\nHvert arbejdsområde har eget hovedbog, kategorier, medlemmer og skatteindstillinger. **Serveren er den eneste beregningsinstans**; beløb gemmes i **mindste valutaenheder**, aldrig som flydende tal. **Månedlig afslutning** skaber et uforanderligt øjebliksbillede med verificerbar beregnings-hash; kontrolleret genåbning gør redigering mulig igen. Valgfri **skattetilstand** understøtter netto- eller bruttoindtastning med deterministisk momsomregning.\n\nBrugerfladen er **adskilt pr. arbejdsområde** (husholdning og projekt blandes ikke), sigter mod **WCAG 2.1 AA**, fuld tastaturnavigation og responsive layouts fra **320 px** bredde.\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"pl":{"name":"BudgetCheck","summary":"Finanse domowe i projektowe z weryfikowalnym zamknięciem miesiąca, budżetami i celami oszczędnościowymi","description":"# BudgetCheck\n\nFinanse w dopasowanym zakresie dla Nextcloud. Każdy **workspace** to albo **gospodarstwo domowe** (cykliczny, comiesięczny rytm z budżetami, celami oszczędności i rocznym podsumowaniem), albo **ograniczony projekt** (okno projektu, podsumowanie okresu, opcjonalne ostrzeżenie o limicie).\n\nKażdy workspace ma własną księgę, kategorie, członków i ustawienia podatkowe. **To serwer jest źródłem prawdy** dla wszystkich obliczeń; kwoty są przechowywane w **jednostkach drobnych**, nigdy jako liczby zmiennoprzecinkowe. **Zamknięcie miesiąca** tworzy niezmienną migawkę z możliwością weryfikacji hasha obliczeń; kontrolowane ponowne otwarcie przywraca możliwość edycji. Opcjonalny tryb **uwzględniający podatki** obsługuje zapis netto lub brutto z deterministyczną konwersją VAT.\n\nInterfejs jest **ograniczony do workspace** (sumy dla gospodarstwa domowego i projektu nigdy się nie mieszają), celuje w **WCAG 2.1 AA**, pełne korzystanie z klawiatury i responsywne układy od szerokości **320px**.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL lub PostgreSQL"},"sv":{"name":"BudgetCheck","summary":"Hushålls- och projektekonomi med verifierbar månadsavslutning, budgetar och sparmål","description":"# BudgetCheck\n\nRiktad ekonomi för Nextcloud. Varje **workspace** är antingen ett **hushåll** (återkommande månadsrytm med budgetar, sparmål och årlig översikt) eller ett **avgränsat projekt** (projektfönster, periodöversikt, valfri varning vid tak).\n\nVarje workspace har sin egen huvudbok, kategorier, medlemmar och skatteinställningar. **Servern är sanningskällan** för alla beräkningar; belopp sparas i **mindre enheter**, aldrig som flyttal. **Månadsslut** skapar en oföränderlig snapshot med en verifierbar beräknings-hash; kontrollerad återöppning återställer redigeringen. Valfritt **skatteanpassat** läge stödjer införing av netto eller brutto med deterministisk momsomvandling.\n\nGränssnittet är **avgränsat per workspace** (totalsummor för hushåll och projekt blandas aldrig), siktar på **WCAG 2.1 AA**, full användning med tangentbord och responsiva layouter från **320px** bredd.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"nb":{"name":"BudgetCheck","summary":"Husholdnings- og prosjektøkonomi med verifiserbar månedlig avslutning, budsjetter og sparemål","description":"# BudgetCheck\n\nMålrettet økonomi for Nextcloud. Hver **workspace** er enten et **husholdningsbudsjett** (tilbakevendende månedlig rytme med budsjetter, mål for sparing og årlig oversikt) eller et **avgrenset prosjekt** (prosjektvindu, oversikt per periode, valgfri advarsel ved tak).\n\nHver workspace har sin egen hovedbok, kategorier, medlemmer og skatteinnstillinger. **Serveren er kilde til sannhet** for alle beregninger; beløp lagres i **mindre enheter**, aldri som flyttall. **Månedlig avslutning** lager en uforanderlig snapshot med en verifiserbar beregnings-hash; kontrollert gjenåpning gjenoppretter redigeringen. Valgfri **skattebevisst** modus støtter innføring av netto eller brutto med deterministisk mva-omregning.\n\nBrukergrensesnittet er **avgrenset til workspace** (totalene for husholdning og prosjekt blandes aldri), målretter **WCAG 2.1 AA**, full tastaturbruk og responsive oppsett fra **320px** bredde.\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"fr":{"name":"BudgetCheck","summary":"Finances domestiques et de projet avec clôture mensuelle vérifiable, budgets et objectifs d'épargne","description":"# BudgetCheck\n\nFinances ciblées pour Nextcloud. Chaque **espace de travail** est soit un **foyer** (rythme mensuel récurrent avec budgets, objectifs d'épargne et vue annuelle), soit un **projet borné** (fenêtre projet, vue par période, alerte de plafond optionnelle).\n\nChaque espace possède son propre registre, catégories, membres et paramètres fiscaux. Le **serveur est la source de vérité** pour tous les calculs ; les montants sont stockés en **unités mineures**, jamais en virgule flottante. La **clôture mensuelle** produit un instantané immuable avec hash de calcul vérifiable ; une réouverture contrôlée restaure l'édition. Le mode **fiscal optionnel** prend en charge la saisie nette ou brute avec conversion TVA déterministe.\n\nL'interface est **scopée par espace** (totaux foyer et projet ne se mélangent pas), vise **WCAG 2.1 AA**, navigation clavier complète et mises en page responsives dès **320 px** de largeur.\n\n## Prérequis\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL ou PostgreSQL\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-budgetcheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite."}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhNIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTIxMTczNzI3WhcNMzYwODI2MTczNzI3WjAWMRQwEgYD\nVQQDDAtidWRnZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAJnRN7KmwnqPPQ6xo7tHfSeDWh73itHQWiGw6DXy2ker+VtD/gyHKHhzjqMsjDDr\nM1+r1HHDyynCXuum6twZTSTpcw6SqI0JtLxj8RU3DmQ13jpoYYWpNbkvgmbemhJo\npLH5fuDjtw59GHewVYOvxNVOo2enZZnK/SFMEjQMpFln5K2i/fhkGdIreNRqMXlL\n1zqN2s3Gy3cUyBPELMlssJVkKWPUwfEcHAqtNV2wLpmrm/csxubQc3A93nc74QEh\nd0jt5S8cRGivY0zhviGVOW2RQPvksw5V0fuO/El5SacH4mbmLPWi+wFGM2wVhuMB\nXxSyl51w5wbkt85L142GsMwXTq08eHArgE3n6sCBYMhGCEeVdP6V3ZF8wwRIk2E4\n84gF99WuuUpc9l6n9rccN2fk76MftI4/BpqZUJwx3WGrZ42oeixgAbp3J+Xp7ysF\nBh62xU62ufXw//k5SHzB9kJ9MhjRAj5kgL0LniKeNnp4YnkWVoPnXxBAyFgnKkPj\nTnMx6A7z53EWoJboFdhoeJOG2JMr+PqUla7CugzqfkOSRUzuJVo1SFdnGfdP5qjI\nSa3AMjaC3HIPe9SBrmyp3eiF2dFpgqw+pmbpLOFRdD8i8SdI5X17TTrIUdG9x3Xl\nhUrXjbg+AXassgC5cBpHwKzY9/m/QwzRTC8lrC5IAqOVAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAFuMPph/gdyj2Sr410peleF0tPLCM1DWFnW7fu9UNf7HIcaTUD3l\n7y3f8Db32Hl+oNQLv2Md+ay4u8WURYL1nPJ2ha4jGNJQBbLmlTkO+KkF/KZIWIsd\nTpqj0JvT+k4sjbUpOhEMCzGoQTD/YtH687uDWUkVMb/wzTwhZf7U3IFLwlDcDNnI\nCIyjWE1Cqus166RZe15YcGT3miy3C5d42qtvAKJ86wk7QMlLi7ph2ZoB94/qFbag\nXaX4JPWJdwIlsqFYVqLgJ9eQ7j6bz3J1mZSWtxGGViY9uW7kDI1jCOSfDDx6dN80\n/Qk8vK9nxqhaKWB+OJ3eILUExN7/gTUQbuQ=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"contacts","categories":["office","organization","social"],"userDocs":"https://docs.nextcloud.com/server/stable/user_manual/en/groupware/contacts.html","adminDocs":"https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/occ_command.html?highlight=occ%20commands#dav-label","developerDocs":"https://github.com/nextcloud/contacts#build-the-app","issueTracker":"https://github.com/nextcloud/contacts/issues","website":"https://github.com/nextcloud/contacts#readme","created":"2016-10-30T14:00:58.922766Z","lastModified":"2026-10-21T10:41:58.622101Z","releases":[{"version":"8.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.9.2/contacts-v8.9.2.tar.gz","created":"2026-10-21T10:41:14.842376Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T10:41:14.897426Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"CY96nsB38iU2Wf0hG5s6rcTclJH6TLQO42xbdV8pvKtVQoJoui3qTDCZ0g3GwnGmfOzPG6T8NnGR4Az/3uC0x7T0C/qCT6iGSDq9Ty0x52JIHg5suobnjelb7/YgZviC2LQXA8h9AF/E1MRD+8oTPB0pkOuD0ZaqfFjyGO55oBsvIvOUy8Q4AiEzrQxdp/1dJIXNE+C8Aso4V18LpP99UCK+Q2/VFjtSfosZrPP46xWq3AwJBQA1p/vPurdDhM01zUak2NeWyE8Zvzv0I4zCkBGX2gL/pAx2DpGv/DwsTtVcAF5Jf4U0UExAqTmYBaoAwEgxBm58+6u9BwMNPHT3zn+b93VS7NV9QltOjCP9KpB9Vk3VTC+nkYCYq3FX6i1F1kr6FqYMF+PbfVXzb6FpAeepRh9Es8SGwEoDptyXHVo7QoGYAtGAFmm/4IXC1hawAyJFddoIt7in8J7qp49fTMXpcV470kn/XoH3P4sQ5zCLxdz9RPq6shu8qOHcux8rlKWIyBZyZLiMU7oV0KLV89B1Obt87qGS/jg02HqkxsYnSpsiMMXNO3jUmz7g8DTZcA5B3lw7wkeKeNmJyrGzoU6IFZ27ZAHL7CM1Q5ew0f+ZjKAVbbB4U70v3gr7Cof3zYGzeWPwOpej/2HqjY8RPAcno6YVVX1MQZHnUGI+XXA=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** Fix npm audit ([42a8f39](https://github.com/nextcloud/contacts/commit/42a8f39f041e563588192d3caa06c9e7fda62c60))\n* **deps:** Fix npm audit ([78a02ab](https://github.com/nextcloud/contacts/commit/78a02ab327b8a9f1acbde38cc8d2b9d958b02f62))\n* dont allow clearing addressbook selection ([58df19f](https://github.com/nextcloud/contacts/commit/58df19f8673bfe13a4c1147fe78eb9ef7a5df8ca))\n* **l10n:** Update translations from Transifex ([07b3768](https://github.com/nextcloud/contacts/commit/07b37684365f9e05b633693afbaf2a3b2f2ae790))\n* **l10n:** Update translations from Transifex ([d8612d3](https://github.com/nextcloud/contacts/commit/d8612d37d3e323604b96bb4f2398bab2f32bbebe))\n* **l10n:** Update translations from Transifex ([5e15694](https://github.com/nextcloud/contacts/commit/5e15694f7f3d418a6a76986ffffce632c6c8273c))\n* **l10n:** Update translations from Transifex ([84b46ed](https://github.com/nextcloud/contacts/commit/84b46ed41eb954b20e208dda5c107f647826ae6e))\n* **l10n:** Update translations from Transifex ([af6c6fd](https://github.com/nextcloud/contacts/commit/af6c6fddf7c85bb1de8a3e221c2ba07d17f75520))\n* **l10n:** Update translations from Transifex ([4e3aa91](https://github.com/nextcloud/contacts/commit/4e3aa9137aeddfe840c2fbcc0a171c1ae1d33e4e))\n* **l10n:** Update translations from Transifex ([e7e3956](https://github.com/nextcloud/contacts/commit/e7e3956e095f160cdb8566045fac7c7f968f4487))\n* **l10n:** Update translations from Transifex ([8822056](https://github.com/nextcloud/contacts/commit/882205688fcc19435eebdac7228a84d511036971))\n* **l10n:** Update translations from Transifex ([42ec530](https://github.com/nextcloud/contacts/commit/42ec530b546c5c4bd52dcb0378bb1935f12f5526))\n* **l10n:** Update translations from Transifex ([3ecc422](https://github.com/nextcloud/contacts/commit/3ecc4222cee1e669d3daf4e045fc43a61e1f01f5))\n* **l10n:** Update translations from Transifex ([fb93f14](https://github.com/nextcloud/contacts/commit/fb93f14316ab2c1e11467fb5c0e76aa2bb00a12b))\n* **l10n:** Update translations from Transifex ([a6a0b04](https://github.com/nextcloud/contacts/commit/a6a0b04cf203de28a40bfaf3c120098a1154fac2))\n* **l10n:** Update translations from Transifex ([5a72029](https://github.com/nextcloud/contacts/commit/5a720298fe1cb11091c2e898c79b715ecdeb9664))\n* **l10n:** Update translations from Transifex ([6ba9f20](https://github.com/nextcloud/contacts/commit/6ba9f20d7c19e7c0b9a48671bf631542873e292d))\n* normalized behavior of contact groups creation with address book creation ([328b904](https://github.com/nextcloud/contacts/commit/328b9047eca3d61dc246b6e54ff122909658367a))\n* recovering from invalid \"rev\" in imported vcard ([b3f38f9](https://github.com/nextcloud/contacts/commit/b3f38f9eb64ec2983a9833b0c1501e40df2a9c7f))\n* **teams:** open member picker instead of creating a contact in team view ([c82a44e](https://github.com/nextcloud/contacts/commit/c82a44edea042fba9be12168e7e7fb718cb477e2))\n* wrapping contact group in editing ([c65f9a6](https://github.com/nextcloud/contacts/commit/c65f9a6806064f86c6d50a6672d333f8feca981f))"}},"signatureDigest":"sha512"},{"version":"8.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.9.1/contacts-v8.9.1.tar.gz","created":"2026-09-30T13:50:09.558270Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T13:50:09.637106Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"JaXhNGBqhX1+aknQ18zn7xWoZWSiT9ehda7PImJg1Tz9YT0QwDB3zBa0MTcJUnOwtLLN3h0ziDOdJBTY1vGChP7TaqwenmI3p9KKP5RX70Gu1PzpErwP4Kdfe3GO1CF6RofnCX/6E2yBthVrNcpgCVw86d2tKUgksjViYlOsR/31cucQilTAir4SfzJi74uq3BBNEpGExIpDZ9QhBcAT4CqQg4dpj9Q8sD86VwhnQ/IsHr9WIMU8Taa6VVZXoOn3p7Bl4neHsja153qCT9JSsCxFykofUNKYjqqp4imrbilT+al9cEaiT27rrd3x907XUORwlA3vs8r0V1v096RQvP11eRsqwNSZCLPZ5c1YO+H/tUAE6H05jJI8ia533hdnLqtyIRrXbWP6MEODOmHEcWEqjNu+Ey9kxyRreegVuQjIhrYreK8J6CjSo4CUA14nJMr1IQVusd/hvZZ6J2yP+n5ZyS19vn5wKxGYGFyhWBt3wHYXz4w0n9xHQAnU0tw29c+INzCf3zPn1ucQD4VgtMUkmQxj416vziqkQuHJU/YRHnauNf8UorT7iEKagWajHwqPbZXEemge1Nig6Y+FqknNbxSH2kI11MtHgxyOgF3yqroaYkS2fUzfyyEOMpAEfoXGxZWZgiGy4MhMdbERoqMYPfTTWkgbsDzQ6L6ZkJ0=","translations":{"en":{"changelog":"### Bug Fixes\n\n* autofocus name field on new contact ([d1d01a8](https://github.com/nextcloud/contacts/commit/d1d01a885c2495c6bd50683dbc82cdfc306aa692))\n* enforcing urls format ([7bd4250](https://github.com/nextcloud/contacts/commit/7bd4250d4e87d0badacbb0456a34f7d1c588ddcb))\n* **l10n:** Update translations from Transifex ([1c91877](https://github.com/nextcloud/contacts/commit/1c91877f1f8a36e386b064f8e7f6c9d7c33718d1))\n* **l10n:** Update translations from Transifex ([7b95532](https://github.com/nextcloud/contacts/commit/7b95532aab747fa281254016672d0459e4f10bb0))\n* switches in admin settings panel ([466a1ce](https://github.com/nextcloud/contacts/commit/466a1ced12e0f98ea12f1ba664ad8e89829e9269))\n\n\n\n# [8.9.0](https://github.com/nextcloud/contacts/compare/v6.0.0-rc1...v8.9.0) (2026-09-15)\n\n\n### Bug Fixes\n\n* **deps:** Fix npm audit ([5992e93](https://github.com/nextcloud/contacts/commit/5992e93cf3df2ad0577998532cb5829a96202d94))\n* **l10n:** Update translations from Transifex ([f5feff9](https://github.com/nextcloud/contacts/commit/f5feff9fd6b2ac2ef9371a286b378db3bb89f67f))\n* **l10n:** Update translations from Transifex ([6cbc705](https://github.com/nextcloud/contacts/commit/6cbc70552af868f38e91a3f71d33823a123bbd3f))\n\n\n\n# 8.9.0-rc.2 (2026-09-10)\n\n\n### Bug Fixes\n\n* **a11y:** add alt to img ([b340339](https://github.com/nextcloud/contacts/commit/b3403390360912f2614bd7c774e1d8a8c7d8295f))\n* **a11y:** add missing input lables ([fadd6a6](https://github.com/nextcloud/contacts/commit/fadd6a6c5e4ee3900471bef01d0d06f6f796c6e3))\n* **a11y:** add missing link text ([09a2a6e](https://github.com/nextcloud/contacts/commit/09a2a6ec0dc71783acbfe74d70037e9626f227d5))\n* **a11y:** switch contacts settings to a button and preserve styling ([2749128](https://github.com/nextcloud/contacts/commit/27491286f57f75820c2f17e452576213dd3a9529))\n* **a11y:** turn teams description into a list item ([6489048](https://github.com/nextcloud/contacts/commit/648904840c5aadd70217537d6e312a44e1614230))\n* **a11y:** wrap list items in ul ([e8cf793](https://github.com/nextcloud/contacts/commit/e8cf793693bff5be5e79e63b731d8edd6a19fead))\n* add member in circles view instead of trying to add contacts ([0c86b28](https://github.com/nextcloud/contacts/commit/0c86b28fcc5748f88aec841d58e49bcd2e1297b1))\n* add missing await ([23d98bb](https://github.com/nextcloud/contacts/commit/23d98bb62deecf760ada12d98d72621e411bfc85))\n* add missing translations ([ec4c6f9](https://github.com/nextcloud/contacts/commit/ec4c6f969b71415e0600a17cdb0aae0cf0c7268d))\n* addressbook checkbox ([bde7194](https://github.com/nextcloud/contacts/commit/bde7194c694600940f615e948b96fed151bfda59))\n* adjust import files action to vue 3 ([6c9275f](https://github.com/nextcloud/contacts/commit/6c9275f231e6c1d134fc13bc21620c37a6d2f25b))\n* adjust spacing and alignment in the contact details view ([75ee842](https://github.com/nextcloud/contacts/commit/75ee842cd90db8c6436c18855090b4319c442f75))\n* Adjust styling of team resource images ([8b65d58](https://github.com/nextcloud/contacts/commit/8b65d581e5ce6ddffa75695f141abda824dd12ce))\n* adjust supported php versions ([3b037ed](https://github.com/nextcloud/contacts/commit/3b037ed8268c9ede778ce0e9d378fcc9882fcbdc))\n* Allow dynamic autoloading for classes added during upgrade ([08e5f9e](https://github.com/nextcloud/contacts/commit/08e5f9e9241c1162b277764d6711823f3b0e7182))\n* allow team owners to transfer ownership ([1e74d78](https://github.com/nextcloud/contacts/commit/1e74d78865c252c2136739b961823f5b161a7d34))\n* always convert vcard photo urls to string ([12bdf42](https://github.com/nextcloud/contacts/commit/12bdf42772b0c7f7dfad1e0815e5179ca4a42925))\n* async return ([137b021](https://github.com/nextcloud/contacts/commit/137b0210d1249da5e3bfd3732d827a3738d38626))\n* **Batch:** incorrect translations import ([547ac22](https://github.com/nextcloud/contacts/commit/547ac228355b60b15fe4eab7f0565e20142a14f9))\n* bundle moment.js locale data ([9fb1d09](https://github.com/nextcloud/contacts/commit/9fb1d09b20a6b702da000431b44ededce9a1f35a))\n* center align rows ([f7a43ba](https://github.com/nextcloud/contacts/commit/f7a43bad43bbc526deacf8f40c8c3c08e688b461))\n* centering notice about empty contact ([9055c4e](https://github.com/nextcloud/contacts/commit/9055c4e608051c250af955049c961f0e35b5e027))\n* change wording for creating teams to reduce word overloading ([e3f88e2](https://github.com/nextcloud/contacts/commit/e3f88e2dca5731c6ae96d09f50a8a1bc32803977))\n* change wording from disabled to hidden for addressBooks ([9334525](https://github.com/nextcloud/contacts/commit/93345254e774aef157e7903ce08a31ece58076c6))\n* changing addressbook of contact ([1f94d47](https://github.com/nextcloud/contacts/commit/1f94d472b5c661ca364a7d268f30756fa029af11))\n* **chart:** remove empty content ([6aa3dfc](https://github.com/nextcloud/contacts/commit/6aa3dfc8d9388ab0f013796e1bb4b66686cd6884))\n* check addressbook permissions before importing contacts ([5b2b17a](https://github.com/nextcloud/contacts/commit/5b2b17af165da2a042d2904c295285147fbba8da))\n* check if photo property is set before downloading ([f33c353](https://github.com/nextcloud/contacts/commit/f33c353ce92096a5c715a75a1c4fd8629eed932b))\n* **circle-details:** adjust action buttons on edit mode and cropper dialog ([a5009ed](https://github.com/nextcloud/contacts/commit/a5009ed76d9f2aaf31b6737b0007cc3c36f183cc))\n* **circle-details:** handle avatar only on supported nc versions ([76b825c](https://github.com/nextcloud/contacts/commit/76b825c14fd77d567ffa09f4e4a984bb698be4ef))\n* **circle-details:** implement pringelmann's suggestions and add loading when saving/deleting avatar ([d9c44f1](https://github.com/nextcloud/contacts/commit/d9c44f1e4ce9aed225979fb466b39423c429e75e))\n* **circle-details:** move avatar cropper inside dialog ([c8be982](https://github.com/nextcloud/contacts/commit/c8be982fd2ee530e01cda592beacf8dde25c4b53))\n* **CircleDetails:** Improve calculation of member list ([05be5e3](https://github.com/nextcloud/contacts/commit/05be5e320697d45371c7a91ae07e31196e931830))\n* **CircleDetails:** Use CheckboxRadioSwitch from @nextcloud/vue 9.x.x ([4cff865](https://github.com/nextcloud/contacts/commit/4cff865e744cefd80d4eb56bcb058a3924c31cf1))\n* **CircleNavigationItem:** Rename 'add member' to 'manage team' ([eda53a5](https://github.com/nextcloud/contacts/commit/eda53a564d23bc87d9c5bfd614e5ddc8f7fe4777))\n* **circles:** avoid attempting to fetch protected resources when user is not a member ([d55e6c4](https://github.com/nextcloud/contacts/commit/d55e6c4f5e6de2e5385e54ee40310d22873b469d))\n* **circles:** misaligned member modal headings ([a5ec367](https://github.com/nextcloud/contacts/commit/a5ec3675565a450b5b2da09b5b97714df059d483))\n* **circles:** sort fallback if not member of circle ([05f04df](https://github.com/nextcloud/contacts/commit/05f04df69e9c09d9f4443e11d53601f9d2381d50))\n* clarify addressbook sharing permissions ([0ef19f5](https://github.com/nextcloud/contacts/commit/0ef19f595b284fac90a51699df79f3bd12cfabbc))\n* client integration: correct tooltip format ([8e1f68c](https://github.com/nextcloud/contacts/commit/8e1f68c1dfb0370f1c1eb48e3616cdd671892de5))\n* close menu after selecting an option ([4b18d13](https://github.com/nextcloud/contacts/commit/4b18d132acdfe642c040d80fae95caf841cd6422))\n* **collaborationAutocompletion:** replace legacy SHARE_TYPE_USER with ShareType.User ([00aa4e4](https://github.com/nextcloud/contacts/commit/00aa4e471cbd54935ba3db682be117e302bfb215))\n* **contact-details:** keep the type select inside the label column ([15c7ca0](https://github.com/nextcloud/contacts/commit/15c7ca023768476a97b2ba66dc1f0630595b4a8e))\n* **contact:** Add normalized phone numbers to searchData ([af289b6](https://github.com/nextcloud/contacts/commit/af289b667ddac7d28112bab9ff5fe1b70345a397))\n* **ContactDetailsAvatar:** border radius cropping too much ([93d850e](https://github.com/nextcloud/contacts/commit/93d850e89a0e121916f071dfc41970cd13c985b0))\n* **ContactDetailsAvatar:** tabbing ([7c149c2](https://github.com/nextcloud/contacts/commit/7c149c26f4f0979639650a0999ead0e93951c594))\n* **ContactDetailsProperty:** query selector causing errors ([74d468c](https://github.com/nextcloud/contacts/commit/74d468ce8a63683d95998fbf40b24f53dd4277ba))\n* **ContactDetails:** wrong box shadow on inputs ([1643248](https://github.com/nextcloud/contacts/commit/1643248b2158f695de0723115a9c99eb2907dd01))\n* **contact:** don't add metadata properties and property names to searchData ([4cb4b50](https://github.com/nextcloud/contacts/commit/4cb4b50e6a76997d2b49fc752697b48e617ab753)), closes [#1176](https://github.com/nextcloud/contacts/issues/1176)\n* **contact:** include phone numbers when getting contacts for address book ([00139b6](https://github.com/nextcloud/contacts/commit/00139b6c9a122a6eac4eea21386a0715d68a761b)), closes [#3112](https://github.com/nextcloud/contacts/issues/3112)\n* **contacts:** add confirmation dialog when leaving a team ([0e8fd86](https://github.com/nextcloud/contacts/commit/0e8fd868ad2d740089fb6599b121bc662bfd5d49)), closes [#4458](https://github.com/nextcloud/contacts/issues/4458)\n* **contacts:** add instant messaging field with default type ([8f79c34](https://github.com/nextcloud/contacts/commit/8f79c34f99e8ed9a92aabece3aa0329b5185f9e0))\n* **contactsDetails:** remove inaccessible code ([7375f02](https://github.com/nextcloud/contacts/commit/7375f023622dc3e44ed4f578095c3d303704c193))\n* **Contacts:** dom serialization ([96fa23c](https://github.com/nextcloud/contacts/commit/96fa23c649491c0c032a087c93d8acf200973b81))\n* **contacts:** handle line manager property creation ([a149336](https://github.com/nextcloud/contacts/commit/a14933683d02699ee0e1c9c931b69a8ce8d7a206)), closes [nextcloud/contacts#4454](https://github.com/nextcloud/contacts/issues/4454)\n* **contacts:** label app content regions ([edaed5b](https://github.com/nextcloud/contacts/commit/edaed5ba4391ac760fe1166ca552cc58e1579ad5)), closes [nextcloud/contacts#5046](https://github.com/nextcloud/contacts/issues/5046)\n* **ContactsList:** don't choke when filtering for `+` ([5cb0d6d](https://github.com/nextcloud/contacts/commit/5cb0d6d4c8fe56f107195906f0bee8982f6d2f3e))\n* **ContactsList:** make scrolling on mobile work again ([9ef361b](https://github.com/nextcloud/contacts/commit/9ef361be9ad6d146d3ea9517c3175993b90ad2aa))\n* **ContactsList:** not being visible on small screens ([5d0341e](https://github.com/nextcloud/contacts/commit/5d0341eda87150c69655db892b2c76a859505ff4))\n* **contacts:** split up detailed-name again to fix vCard ([501b990](https://github.com/nextcloud/contacts/commit/501b9905abdf55f45f3d67b72680c2cf6918b13c))\n* convert pre-commit to common js ([afd5a5a](https://github.com/nextcloud/contacts/commit/afd5a5a0600e0bfb9836e137105e3ede8cd7d749))\n* convert pre-commit.js to ES module ([6f06719](https://github.com/nextcloud/contacts/commit/6f06719e8b7740ca16b901b8fc0d9af8d993b462))\n* **copy:** Hide not copyable addressbooks in copy select ([b588aac](https://github.com/nextcloud/contacts/commit/b588aac99118e649c02abb3ac0cd1dc5e7ac3468))\n* **declarative-ui:** rename to client_integration ([70f9712](https://github.com/nextcloud/contacts/commit/70f97120bea241e80c92873c2dea1d71884537ee))\n* Decode HTML entities in team display names ([c16083a](https://github.com/nextcloud/contacts/commit/c16083a636ae13438963d9501206d51e12746605))\n* **deletion:** leave the route of a deleted contact ([f87f55f](https://github.com/nextcloud/contacts/commit/f87f55fc149f88c3be03eab048d86324c05f7f78))\n* **deps:** add missing picomatch@4.0.3 to lock file ([1d598e2](https://github.com/nextcloud/contacts/commit/1d598e29ba320527c7d9e12f213a61db4db11117))\n* **deps:** add missing picomatch@4.0.3 to lock file again ([216aa4d](https://github.com/nextcloud/contacts/commit/216aa4dd41af367311c68ad3feb541c7a337de1b))\n* **deps:** bump @mattkrick/sanitize-svg from 0.4.0 to ^0.4.1 ([deaa81b](https://github.com/nextcloud/contacts/commit/deaa81bf7bf4af95b129f8d2513c9456642cbaa4))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([ef072de](https://github.com/nextcloud/contacts/commit/ef072deebc3b057a9dd43466ec88c90df96a5b89))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 ([a8a5745](https://github.com/nextcloud/contacts/commit/a8a5745466fe08af7abe7412fb1eaf97ca5aa746))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 ([7f02252](https://github.com/nextcloud/contacts/commit/7f022525ae2acdbd83f732f9842dcb8172e8714c))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([7406cb7](https://github.com/nextcloud/contacts/commit/7406cb709edbd702b16e264417bfc4813cb889ae))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 ([85f127a](https://github.com/nextcloud/contacts/commit/85f127af7627e2e6714f6ed6632bb84f79bee73a))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([cb77d56](https://github.com/nextcloud/contacts/commit/cb77d569f73de7597d582efcc8ead10dd2a5e68c))\n* **deps:** bump @nextcloud/browser-storage from 0.4.0 to ^0.5.0 ([c894ba5](https://github.com/nextcloud/contacts/commit/c894ba570ec984111888d7aa211aa5e1016838f5))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 ([a02a4b5](https://github.com/nextcloud/contacts/commit/a02a4b5d5f60e62abcf5b39cf12474a6a5d47afa))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.1 ([ff451d0](https://github.com/nextcloud/contacts/commit/ff451d02c0749cbe85688f6a17b49e2568efe399))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 ([0277f19](https://github.com/nextcloud/contacts/commit/0277f19a63f2080ee9270892b27e1c032c11c88e))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 ([84042a8](https://github.com/nextcloud/contacts/commit/84042a86cc84a98abc92e7d2c10fb164715a819b))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([d465acf](https://github.com/nextcloud/contacts/commit/d465acfbca74696d1fc95044bfdb2ff72f09a223))\n* **deps:** bump @nextcloud/cdav-library from 2.0.0 to ^2.1.0 ([a769432](https://github.com/nextcloud/contacts/commit/a769432056150b5be320d91a036354f8c9d39099))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 ([62f6585](https://github.com/nextcloud/contacts/commit/62f658597f4e84815502f61a35c309d1379cdda1))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.2 ([c89c5e1](https://github.com/nextcloud/contacts/commit/c89c5e1e18a73699c16779b019359fbaf3742927))\n* **deps:** bump @nextcloud/dialogs from 5.3.2 to ^5.3.3 ([f2941f8](https://github.com/nextcloud/contacts/commit/f2941f876fcc67c0b1d09a287462a430194e0f7c))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 ([63bdf07](https://github.com/nextcloud/contacts/commit/63bdf07c90e807cf95bd7f1c2a2e26c7a68e02b8))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 ([fd6bb23](https://github.com/nextcloud/contacts/commit/fd6bb234d140157a72e495df884d6cc9cd5e99a8))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.7 ([2e6b7cf](https://github.com/nextcloud/contacts/commit/2e6b7cf8aee60612a66cefaf8c3415c6068f75d3))\n* **deps:** bump @nextcloud/dialogs from 5.3.7 to ^5.3.8 ([a7abab3](https://github.com/nextcloud/contacts/commit/a7abab3de1b26f4f89ee3140d16dc41657297fd4))\n* **deps:** bump @nextcloud/dialogs from 7.0.0 to ^7.0.1 ([5f078c9](https://github.com/nextcloud/contacts/commit/5f078c991702b59377780827f9e4a9f06b476d1b))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.1 to ^7.0.0-rc.2 ([db9c47b](https://github.com/nextcloud/contacts/commit/db9c47bb979016e83369a9162147287f270f23fd))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.2 to ^7.0.0-rc.3 ([ba7c516](https://github.com/nextcloud/contacts/commit/ba7c516ab25e19eea6ac0eb0ee38160f8f5757e8))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.3 to ^7.0.0 ([caf1b41](https://github.com/nextcloud/contacts/commit/caf1b4100d35b51d94aa987b5e9a3cf7141a7141))\n* **deps:** bump @nextcloud/event-bus from 3.3.1 to ^3.3.1 ([b1af001](https://github.com/nextcloud/contacts/commit/b1af00165ed4ec0292ef87a29a18c8aff8b5f1e8))\n* **deps:** bump @nextcloud/event-bus from 3.3.1 to ^3.3.2 ([6a0b638](https://github.com/nextcloud/contacts/commit/6a0b638f0ad1482c1d85a05b7801a89ff84291cd))\n* **deps:** bump @nextcloud/files from 3.10.0 to ^3.10.1 ([01bfdae](https://github.com/nextcloud/contacts/commit/01bfdae1a5df9e3c89b76bd3228f14278cba107a))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 ([1a3a6a5](https://github.com/nextcloud/contacts/commit/1a3a6a59c4d5a35c723248b8adad763921bdeb2d))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.11.0 ([70253f6](https://github.com/nextcloud/contacts/commit/70253f6f84832c366726d093cab093f6fbdad2f6))\n* **deps:** bump @nextcloud/files from 3.11.0 to ^3.12.0 ([3ded977](https://github.com/nextcloud/contacts/commit/3ded9770d858896afdd27feabfa360575102e68d))\n* **deps:** bump @nextcloud/files from 3.4.1 to ^3.4.1 ([cb81009](https://github.com/nextcloud/contacts/commit/cb810095c4d3ba91e4ca1a1f568a14b3210f2e56))\n* **deps:** bump @nextcloud/files from 3.4.1 to ^3.5.0 ([718a090](https://github.com/nextcloud/contacts/commit/718a0900392d77f081fad22838d39e7d6950a710))\n* **deps:** bump @nextcloud/files from 3.5.0 to ^3.5.1 ([ef312d3](https://github.com/nextcloud/contacts/commit/ef312d362319eb78152886487f0428d0301b7687))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 ([770b27c](https://github.com/nextcloud/contacts/commit/770b27c738763358faf3c6ecb6bcb8568ad01895))\n* **deps:** bump @nextcloud/files from 3.8.0 to ^3.8.0 ([769a947](https://github.com/nextcloud/contacts/commit/769a94783446ea64d9e94b23e4896eca2e3718ef))\n* **deps:** bump @nextcloud/files from 3.8.0 to ^3.9.0 ([3a016b2](https://github.com/nextcloud/contacts/commit/3a016b2655b04df0f916ecc5b4a18182e18e52d8))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 ([498fb12](https://github.com/nextcloud/contacts/commit/498fb127eb9690d96c0c8bb51f8c243a09a7a166))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 ([1e086f9](https://github.com/nextcloud/contacts/commit/1e086f91bb0763e9e618f302108d7334ab2433bb))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([b2ea05d](https://github.com/nextcloud/contacts/commit/b2ea05db7cf49168fbf94a77de7fa0ca0568b64f))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([df25646](https://github.com/nextcloud/contacts/commit/df25646a5392d66b648bd83b3265160bf417ea6e))\n* **deps:** bump @nextcloud/l10n from 3.1.0 to v3.4.0 ([529c5f1](https://github.com/nextcloud/contacts/commit/529c5f1f6ab35aeb0187167af3582e3b4ae15911))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([73eecbc](https://github.com/nextcloud/contacts/commit/73eecbcde459436095a23bb7b2c9773b8d18bc96))\n* **deps:** bump @nextcloud/moment from 1.3.1 to ^1.3.2 ([41c601c](https://github.com/nextcloud/contacts/commit/41c601cf58ac7b61db7ac42b1b64380e37dc4531))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 ([3f2029b](https://github.com/nextcloud/contacts/commit/3f2029b6abb6e1d3b05b3c479cb8a28258ec78f8))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 ([abf1a49](https://github.com/nextcloud/contacts/commit/abf1a49ddf3debe5d91b64bc050239beecbb4f48))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.2.1 ([9b6c6d3](https://github.com/nextcloud/contacts/commit/9b6c6d38ba88f2dd69b65a5a0587db98adc02ca5))\n* **deps:** bump @nextcloud/router from 2.2.0 to v3 ([96af3c5](https://github.com/nextcloud/contacts/commit/96af3c573aa4300ca258961046e8b149f58de3c6))\n* **deps:** bump @nextcloud/sharing from 0.1.0 to ^0.2.2 ([29c3f76](https://github.com/nextcloud/contacts/commit/29c3f7603722548160a994262f5df616534686ca))\n* **deps:** bump @nextcloud/sharing from 0.2.3 to ^0.2.3 ([03d3efc](https://github.com/nextcloud/contacts/commit/03d3efc0a1b85117cf0609c8a1d9cad7b8c025d4))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.4 ([c47b8e7](https://github.com/nextcloud/contacts/commit/c47b8e7ffc71e7641d55a8a65835f6a6f7c8a1fa))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([1c748b4](https://github.com/nextcloud/contacts/commit/1c748b419fcb611007399a02287f9310328ad8a9))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([1e36a5e](https://github.com/nextcloud/contacts/commit/1e36a5efcc52eb3a44ae6e50ce48ff297ccafb87))\n* **deps:** bump @nextcloud/vue from 8.11.3 to ^8.12.0 ([21dbcf5](https://github.com/nextcloud/contacts/commit/21dbcf5653b9fdd11da99f5cc88ddb8a7636ba88))\n* **deps:** bump @nextcloud/vue from 8.12.0 to ^8.13.0 ([56fc63c](https://github.com/nextcloud/contacts/commit/56fc63c07b1f2c69c25433c1f896f9fecd18f6d4))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([5d85e20](https://github.com/nextcloud/contacts/commit/5d85e2098ca802b7998535618e4c76009197f0f9))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([5dc3c14](https://github.com/nextcloud/contacts/commit/5dc3c1419c38b05f9eac5f7c8f9d63a540a40724))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([0919189](https://github.com/nextcloud/contacts/commit/0919189714270b519fe2fd7cedd695ca230bf99a))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.18.0 ([096dd07](https://github.com/nextcloud/contacts/commit/096dd0713df368cc86ce7dc36aa55e4740ec6750))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([f59b0f2](https://github.com/nextcloud/contacts/commit/f59b0f2dd13292262a474d12e9e0eb2bdd85891c))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.22.0 ([a7d4203](https://github.com/nextcloud/contacts/commit/a7d4203a843e846d1d8f2b3a21823d432f71f33c))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([3d343ad](https://github.com/nextcloud/contacts/commit/3d343ada3c097536cedde0f9978e8cf8553c1cea))\n* **deps:** bump @nextcloud/vue from 8.24.0 to ^8.25.0 ([0e5cf05](https://github.com/nextcloud/contacts/commit/0e5cf057475475e50dd846e26c89d5689e6cc1e5))\n* **deps:** bump @nextcloud/vue from 8.25.0 to ^8.25.1 ([3e35686](https://github.com/nextcloud/contacts/commit/3e356860bdc9e1f508c644729930782a085a1aa7))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([e071c4a](https://github.com/nextcloud/contacts/commit/e071c4ac38f39f9146f5045ad06cd5c1d969553e))\n* **deps:** bump @nextcloud/vue from 8.26.1 to ^8.27.0 ([2b1c724](https://github.com/nextcloud/contacts/commit/2b1c724f21916e55b1a56551d0a23cb3ab92c16d))\n* **deps:** bump @nextcloud/vue from 9.0.0 to ^9.0.1 ([e073817](https://github.com/nextcloud/contacts/commit/e0738172d52a3057509aeb3782253cff3eb7acc0))\n* **deps:** bump @nextcloud/vue from 9.0.0-rc.6 to ^9.0.0-rc.8 ([1d14d9e](https://github.com/nextcloud/contacts/commit/1d14d9e2fb18f86e3ed9340b78e4ede735af6310))\n* **deps:** bump @nextcloud/vue from 9.0.0-rc.8 to ^9.0.0 ([8e97dfc](https://github.com/nextcloud/contacts/commit/8e97dfcf1b0e82d7a85365dc79c3a60c984e0487))\n* **deps:** bump @vueuse/core from 10.11.1 to ^10.11.1 ([17b1ac7](https://github.com/nextcloud/contacts/commit/17b1ac7ab4dd0248d52cd80c44dca61fff48d6f2))\n* **deps:** bump @vueuse/core from 10.11.1 to v11 ([5545596](https://github.com/nextcloud/contacts/commit/5545596592dd0b51ab3bb9e026dc8bdc97732a92))\n* **deps:** bump @vueuse/core from 10.9.0 to ^10.11.0 ([09b06c9](https://github.com/nextcloud/contacts/commit/09b06c9a933974e1b8e6b6d02e1a929a9ea3f249))\n* **deps:** bump @vueuse/core from 11.0.3 to ^11.1.0 ([e66804d](https://github.com/nextcloud/contacts/commit/e66804d331598e14b8499f026f3d306384f12f84))\n* **deps:** bump @vueuse/core from 11.1.0 to ^11.2.0 ([8d5dad1](https://github.com/nextcloud/contacts/commit/8d5dad1683fd3ae083673e5765fa630806dc5077))\n* **deps:** bump @vueuse/core from 11.2.0 to ^11.3.0 ([38470f6](https://github.com/nextcloud/contacts/commit/38470f6797641ac783ad171bf72b67eb4ed734a5))\n* **deps:** bump debounce from 2.0.0 to ^2.1.0 ([1834ff5](https://github.com/nextcloud/contacts/commit/1834ff551a615545bf8d9f6adf1514093201110e))\n* **deps:** bump debounce from 2.1.0 to ^2.1.1 ([81ddf6e](https://github.com/nextcloud/contacts/commit/81ddf6e59612642edbcbb73bb6765fad8ca4fb31))\n* **deps:** bump debounce from 2.1.1 to ^2.2.0 ([5d2d79c](https://github.com/nextcloud/contacts/commit/5d2d79c963ac5d7d86d799ebdd6c2dc0e988d80b))\n* **deps:** bump form-data to 4.0.4 ([10c4691](https://github.com/nextcloud/contacts/commit/10c46912cd928b41605e298116adbbf4071678d0))\n* **deps:** bump ical.js from 1.5.0 to v2 ([ef70705](https://github.com/nextcloud/contacts/commit/ef70705cb84b033e33dab46f68f94c947deed73b))\n* **deps:** bump ical.js from 2.0.1 to ^2.1.0 ([5ae2289](https://github.com/nextcloud/contacts/commit/5ae2289795d5cddacc89373f7c330cb642ed742a))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 ([597506e](https://github.com/nextcloud/contacts/commit/597506e069483cfed949a3f578a350fc1d8efb48))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([3a1f686](https://github.com/nextcloud/contacts/commit/3a1f686db9d7f278f049deaff5d661864db64351))\n* **deps:** bump p-limit from 5.0.0 to v6 ([f8996aa](https://github.com/nextcloud/contacts/commit/f8996aa6de495ac632542bcf71b77ac185811151))\n* **deps:** bump p-limit from 6.1.0 to ^6.2.0 ([37a29a4](https://github.com/nextcloud/contacts/commit/37a29a4d82f89c1c29d6f1ce69275f025594b6dd))\n* **deps:** bump p-limit from 6.2.0 to v7 ([2c34ad0](https://github.com/nextcloud/contacts/commit/2c34ad0f5affbafb6207521fbf59f349fcffe9bd))\n* **deps:** bump p-limit from 7.0.0 to ^7.1.0 ([e81f587](https://github.com/nextcloud/contacts/commit/e81f587013dc70298596a41f9e14fd25423faa61))\n* **deps:** bump p-limit from 7.1.0 to ^7.1.1 ([6a016ce](https://github.com/nextcloud/contacts/commit/6a016ce0571982d1df38911d9edde15921e91722))\n* **deps:** bump pinia from 2.1.7 to ^2.2.2 ([5e0ec67](https://github.com/nextcloud/contacts/commit/5e0ec67c3321c5e9f412f8c79e4aaaadc40953f0))\n* **deps:** bump pinia from 2.2.2 to ^2.2.4 ([92bcb60](https://github.com/nextcloud/contacts/commit/92bcb60ade7c742a25aad66f3906787ee3e74cde))\n* **deps:** bump pinia from 2.2.4 to ^2.2.6 ([81d78eb](https://github.com/nextcloud/contacts/commit/81d78eb0fc9127e3b745082f2ab4341a92dc4eb7))\n* **deps:** bump pinia from 2.2.6 to ^2.2.8 ([1fe78fe](https://github.com/nextcloud/contacts/commit/1fe78fe1d9fb0616c9b94c7c4e3a37c55b0e8a1f))\n* **deps:** bump pinia from 2.2.8 to ^2.3.0 ([04a1d6f](https://github.com/nextcloud/contacts/commit/04a1d6fc2019d7d5c6f09cfc6ae1e7e8d1dbe3de))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 ([1940948](https://github.com/nextcloud/contacts/commit/1940948208165075defd04a44d9462b167279262))\n* **deps:** bump qreator from 9.7.1 to ^9.7.2 ([eee9866](https://github.com/nextcloud/contacts/commit/eee9866979cf3cfbe4983aa89e350fa5e283bcb3))\n* **deps:** bump uuid from 10.0.0 to v11 ([35dbc90](https://github.com/nextcloud/contacts/commit/35dbc9005f7c35228c9bc19f432bda4bc7e6708d))\n* **deps:** bump uuid from 11.0.2 to ^11.0.3 ([a854c30](https://github.com/nextcloud/contacts/commit/a854c305e3f1f75477c7a771297546e1476c3b1a))\n* **deps:** bump uuid from 11.0.3 to ^11.0.5 ([546148d](https://github.com/nextcloud/contacts/commit/546148d1974c521c78c0b1fd3a68c7068a37c077))\n* **deps:** bump uuid from 11.0.5 to ^11.1.0 ([29f006c](https://github.com/nextcloud/contacts/commit/29f006c9afdfbf03d1eca7566d5508a8549cc68a))\n* **deps:** bump uuid from 11.1.0 to v13 ([c859a96](https://github.com/nextcloud/contacts/commit/c859a96dea8a1264e7716d761b95681eb1fdf720))\n* **deps:** bump uuid from 9.0.1 to v10 ([b350b27](https://github.com/nextcloud/contacts/commit/b350b2781f3b4e394e0ea80926c127b401defb8d))\n* **deps:** bump validator from 13.12.0 to ^13.15.0 ([5f48b34](https://github.com/nextcloud/contacts/commit/5f48b3403ba6a45a5c946ee9961a559ca087e6be))\n* **deps:** bump validator from 13.15.0 to ^13.15.15 ([cf3db85](https://github.com/nextcloud/contacts/commit/cf3db8577db81c44c9272794228b2af76c43ec9c))\n* **deps:** bump virtua from 0.41.5 to ^0.42.3 ([5025d98](https://github.com/nextcloud/contacts/commit/5025d98e9179f0ff7db17cfc849cafe33652c7b0))\n* **deps:** bump virtua from 0.42.3 to ^0.44.2 ([db9b88d](https://github.com/nextcloud/contacts/commit/db9b88d8cb1a9022095018c8462803954758e331))\n* **deps:** bump virtua from 0.44.2 to ^0.44.3 ([aec0b43](https://github.com/nextcloud/contacts/commit/aec0b431de2a136b8b0cc2b1de909c96ffa46910))\n* **deps:** bump virtua from 0.44.3 to ^0.45.3 ([2190da1](https://github.com/nextcloud/contacts/commit/2190da152c2b40017dee6c825b6c4230e2d6b45f))\n* **deps:** bump vite from 5.4.14 to v5.4.15 ([8b5092f](https://github.com/nextcloud/contacts/commit/8b5092fcd570c2488dcbda07535d7c7b57bf9358))\n* **deps:** bump vite from 5.4.17 to v5.4.18 ([6b7ffdf](https://github.com/nextcloud/contacts/commit/6b7ffdf1fdd12afc2cb14b13daa703d2dbacd069))\n* **deps:** bump vite from 5.4.19 to v5.4.20 ([b75e07e](https://github.com/nextcloud/contacts/commit/b75e07eef87f512852350b445c4086fa3da8156d))\n* **deps:** bump vue monorepo from 2.7.16 to ~2.7.16 ([bda5244](https://github.com/nextcloud/contacts/commit/bda5244373d44f82e6eb2f5ed1fc302bf5968b0e))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([b94efd8](https://github.com/nextcloud/contacts/commit/b94efd8c389c3508de9113269e9cf1687517d243))\n* **deps:** fix npm audit ([7d53f6c](https://github.com/nextcloud/contacts/commit/7d53f6c45b90be54dcb09016682531c7c3794991))\n* **deps:** fix npm audit ([85197a0](https://github.com/nextcloud/contacts/commit/85197a0eb40ab9d16233ce2989dc3862047e17da))\n* **deps:** Fix npm audit ([7c8436f](https://github.com/nextcloud/contacts/commit/7c8436f86c8b5e4b9b686723ed029067c4307a8d))\n* **deps:** Fix npm audit ([a16fd61](https://github.com/nextcloud/contacts/commit/a16fd614f32c687c232df9267979096658623dec))\n* **deps:** Fix npm audit ([97a5d38](https://github.com/nextcloud/contacts/commit/97a5d38a3bf542695576fe68430f1d71a06d594c))\n* **deps:** Fix npm audit ([c3db83d](https://github.com/nextcloud/contacts/commit/c3db83dbf4911750b9a438b2da6ac145c745996a))\n* **deps:** Fix npm audit ([a17ca9c](https://github.com/nextcloud/contacts/commit/a17ca9c758e8a59f7eb2f25950d0aee04b9f9f4e))\n* **deps:** Fix npm audit ([43fe10d](https://github.com/nextcloud/contacts/commit/43fe10d493a4b98b5c3675fd3ee316fbd75c9064))\n* **deps:** Fix npm audit ([adac4ee](https://github.com/nextcloud/contacts/commit/adac4ee7db9755dbb595b2e070afe84b38e5374e))\n* **deps:** Fix npm audit ([6afef67](https://github.com/nextcloud/contacts/commit/6afef67b4972b7b989c3a5cc278a2b1e2e19fa82))\n* **deps:** Fix npm audit ([cdbbf1b](https://github.com/nextcloud/contacts/commit/cdbbf1b2a01badffb14b3ba378d645f2a67df1fe))\n* **deps:** Fix npm audit ([2442d01](https://github.com/nextcloud/contacts/commit/2442d01949f1181c0f208cec4c0482cf1f83eeb9))\n* **deps:** Fix npm audit ([5609257](https://github.com/nextcloud/contacts/commit/5609257868c5ea23dab4a1619bbdb92051756dc8))\n* **deps:** Fix npm audit ([fa7832b](https://github.com/nextcloud/contacts/commit/fa7832b3f59863a3da60c7423659be9391d3ce42))\n* **deps:** Fix npm audit ([67735b2](https://github.com/nextcloud/contacts/commit/67735b229bbe9c82ca40514f9c8a905a34447607))\n* **deps:** Fix npm audit ([dbbc244](https://github.com/nextcloud/contacts/commit/dbbc244e644023f58f5db5bc4699f58a69f78115))\n* **deps:** Fix npm audit ([0595efb](https://github.com/nextcloud/contacts/commit/0595efb1967374836befe0e47d23fe87f577f68d))\n* **deps:** Fix npm audit ([da2366f](https://github.com/nextcloud/contacts/commit/da2366f3e50c4197f70ba95ce9d7b7a408c55ce3))\n* **deps:** Fix npm audit ([a6a1367](https://github.com/nextcloud/contacts/commit/a6a136717520d91137f6f76efdf979b7aaa60a5a))\n* **deps:** Fix npm audit ([637a3c1](https://github.com/nextcloud/contacts/commit/637a3c1c59d4b8143bebc7c7416769b6aa6a8824))\n* **deps:** Fix npm audit ([e4ddb5c](https://github.com/nextcloud/contacts/commit/e4ddb5cdab23e1d7df2825f619beaac36ede8267))\n* **deps:** Fix npm audit ([9da1e4e](https://github.com/nextcloud/contacts/commit/9da1e4e64902a3129c645f29cb83bd2058ff3b44))\n* **deps:** Fix npm audit ([3ae1e7a](https://github.com/nextcloud/contacts/commit/3ae1e7ab6ce465c5ae2c0281de1648efe44460f1))\n* **deps:** Fix npm audit ([4eaf4ce](https://github.com/nextcloud/contacts/commit/4eaf4ce3d0333203976e26a1c546653be38e647b))\n* **deps:** Fix npm audit ([da63d3f](https://github.com/nextcloud/contacts/commit/da63d3f61e87a9cbc902d9fa700c6825fa3e8b3b))\n* **deps:** Fix npm audit ([a70a5d7](https://github.com/nextcloud/contacts/commit/a70a5d76cff7d8d83c54d83b416afe3878ab7d0a))\n* **deps:** Fix npm audit ([f3087bc](https://github.com/nextcloud/contacts/commit/f3087bc5e5df5bccaa614fa51ce7bc20d63ddf1d))\n* **deps:** Fix npm audit ([c46b418](https://github.com/nextcloud/contacts/commit/c46b418658c1bc1d35403dd3f4641e8e4c45e493))\n* **deps:** update dependency @nextcloud/auth to ^2.6.0 ([74b532f](https://github.com/nextcloud/contacts/commit/74b532f17e0bb062936cdb75cb855c1092254c69))\n* **deps:** update dependency @nextcloud/axios to ^2.6.0 ([54fd81e](https://github.com/nextcloud/contacts/commit/54fd81e2c8cb6d75af7a235c7ebe40b80368faa9))\n* **deps:** update dependency @nextcloud/capabilities to ^1.2.1 ([040c14b](https://github.com/nextcloud/contacts/commit/040c14b63a8fa954dfb9737cd5ed730d9e363cd8))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.2.0 ([4781ca3](https://github.com/nextcloud/contacts/commit/4781ca3c42d2ed3934e2422e442ed9411a24e3c9))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.5.0 ([de76da4](https://github.com/nextcloud/contacts/commit/de76da480c186b9f72d5ad86c22a94be4c7e693e))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.5.1 ([7ccec33](https://github.com/nextcloud/contacts/commit/7ccec33c2cb2dfae2a8a9b141695e0e517198791))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.6.2 ([81532d1](https://github.com/nextcloud/contacts/commit/81532d11dbd62bf59fbd6cc72a94e7bd0035f321))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.7.0 ([c33a806](https://github.com/nextcloud/contacts/commit/c33a8065c17c7ed5e60aa3c314888f6680b1b4de))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.8.0 ([19bc599](https://github.com/nextcloud/contacts/commit/19bc5991860b72c9a3a19f4f701f992026311759))\n* **deps:** update dependency @nextcloud/dialogs to ^7.1.0 ([c61b824](https://github.com/nextcloud/contacts/commit/c61b8242543238e7a1b31495b3d2d3b5042f98e8))\n* **deps:** update dependency @nextcloud/dialogs to ^7.2.0 ([3811c05](https://github.com/nextcloud/contacts/commit/3811c05f8d84a54a46b6a99f8e840e1367fa08d2))\n* **deps:** update dependency @nextcloud/dialogs to ^7.3.0 ([c05869e](https://github.com/nextcloud/contacts/commit/c05869ef3379948da393fed6966d2c92c31e12d9))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.0 ([a579ee2](https://github.com/nextcloud/contacts/commit/a579ee2fa20c67e562f27862a618ece4a364ee3a))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.1 ([7a3d3f1](https://github.com/nextcloud/contacts/commit/7a3d3f11e0c5ce18adc55ae8ae99b01107a2d0b4))\n* **deps:** update dependency @nextcloud/dialogs to ^7.5.0 ([50eae3c](https://github.com/nextcloud/contacts/commit/50eae3c1a27d9eae50ad79634d6f4aa1d5e83fd2))\n* **deps:** update dependency @nextcloud/event-bus to ^3.3.3 ([57eda56](https://github.com/nextcloud/contacts/commit/57eda562373019dc4af21cbf3b69518600deabf4))\n* **deps:** update dependency @nextcloud/files to ^3.12.1 ([4ea7749](https://github.com/nextcloud/contacts/commit/4ea7749b5aa67500c3290076bc5ed4defb7bd3da))\n* **deps:** update dependency @nextcloud/files to ^3.12.2 ([19f0f58](https://github.com/nextcloud/contacts/commit/19f0f58a39078625e93ddcb2f19c247264eb7ba4))\n* **deps:** update dependency @nextcloud/files to v4 ([24cfea4](https://github.com/nextcloud/contacts/commit/24cfea4ba716555da712e92403c43aba91502a83))\n* **deps:** update dependency @nextcloud/l10n to v3.4.1 ([b02273a](https://github.com/nextcloud/contacts/commit/b02273a928027dd1b08b46f798cf36187fe60e09))\n* **deps:** update dependency @nextcloud/logger to ^3.0.3 ([e93d41d](https://github.com/nextcloud/contacts/commit/e93d41d541cf6eac85cf801d062a1627d3930554))\n* **deps:** update dependency @nextcloud/paths to ^2.3.0 ([c87970c](https://github.com/nextcloud/contacts/commit/c87970c1695f3d88cde646aa6d65a6461cab50bd))\n* **deps:** update dependency @nextcloud/paths to ^3.1.0 ([439e7ab](https://github.com/nextcloud/contacts/commit/439e7aba9f86de2161caa37ef2a4d896a34c1662))\n* **deps:** update dependency @nextcloud/paths to v3 ([b8298c2](https://github.com/nextcloud/contacts/commit/b8298c27f3957df91b1b486d65b68ca557576468))\n* **deps:** update dependency @nextcloud/router to ^3.1.0 ([a623f57](https://github.com/nextcloud/contacts/commit/a623f571f8039761443761432c3f1416396c644c))\n* **deps:** update dependency @nextcloud/sharing to ^0.4.0 ([ac1432f](https://github.com/nextcloud/contacts/commit/ac1432f7bb9dc53390b5d07188d184ab7c00db8a))\n* **deps:** update dependency @nextcloud/vue to ^9.1.0 ([3c1344d](https://github.com/nextcloud/contacts/commit/3c1344d3b36bbdd09855473625467c277de30520))\n* **deps:** update dependency @nextcloud/vue to ^9.10.0 ([c4f6304](https://github.com/nextcloud/contacts/commit/c4f6304ade8a48073b2b3c2835a95dee4fafb489))\n* **deps:** update dependency @nextcloud/vue to ^9.3.0 ([9f89f0e](https://github.com/nextcloud/contacts/commit/9f89f0eca4dab9c916480b7692e56315969d02ad))\n* **deps:** update dependency @nextcloud/vue to ^9.3.1 ([fa67fab](https://github.com/nextcloud/contacts/commit/fa67fab111f4da989168db560a672f78d47e59f7))\n* **deps:** update dependency @nextcloud/vue to ^9.3.3 ([7f76d92](https://github.com/nextcloud/contacts/commit/7f76d92c4e971f9b99765c6dd05f3b1077155216))\n* **deps:** update dependency @nextcloud/vue to ^9.5.0 ([161b7d1](https://github.com/nextcloud/contacts/commit/161b7d168cdb1019009981e03cd6ec24ae7ae5e3))\n* **deps:** update dependency @nextcloud/vue to ^9.8.2 ([a7411d5](https://github.com/nextcloud/contacts/commit/a7411d5ab904639e795457ddd0da3a2b0b4cd2a7))\n* **deps:** update dependency @vueuse/core to ^14.2.1 ([ba41211](https://github.com/nextcloud/contacts/commit/ba4121194b01c54c3744d0077f5c14d15d2c6228))\n* **deps:** update dependency @vueuse/core to ^14.3.0 ([170310e](https://github.com/nextcloud/contacts/commit/170310ef7e937058a145d7eeee0b44a3e7c85f93))\n* **deps:** update dependency @vueuse/core to ^14.4.0 ([c427025](https://github.com/nextcloud/contacts/commit/c4270252753de9081c536139673cd610eec7e64f))\n* **deps:** update dependency @vueuse/core to v14 ([15ec7d6](https://github.com/nextcloud/contacts/commit/15ec7d6296ae94f6375e1527ce495c76ad33acfc))\n* **deps:** update dependency camelcase to v9 ([5c2f0c5](https://github.com/nextcloud/contacts/commit/5c2f0c5f1036d5100652f711232d050d2e9c6907))\n* **deps:** update dependency debounce to v3 ([becd1f0](https://github.com/nextcloud/contacts/commit/becd1f00216ced98f9c2dd757e594611edfde509))\n* **deps:** update dependency lodash to ^4.17.23 ([f2ebdce](https://github.com/nextcloud/contacts/commit/f2ebdce20b1e5e97fa7e813d88e64b8404bd8deb))\n* **deps:** update dependency lodash to v4.17.23 ([81e827d](https://github.com/nextcloud/contacts/commit/81e827d25ac6f23041b2417aac22a19226419132))\n* **deps:** update dependency p-limit to ^7.2.0 ([3de9552](https://github.com/nextcloud/contacts/commit/3de9552ef3b6e7f3b9769fd99432a1d364af5676))\n* **deps:** update dependency p-limit to ^7.3.0 ([fc05234](https://github.com/nextcloud/contacts/commit/fc0523455950a9cc61105aac030f7ac387b06a64))\n* **deps:** update dependency p-limit to ^7.3.1 ([1c12e7e](https://github.com/nextcloud/contacts/commit/1c12e7ec03242d12a6ac4b7babce214fa94f6be2))\n* **deps:** update dependency p-limit to ^7.3.2 ([0d3c943](https://github.com/nextcloud/contacts/commit/0d3c9438e3d094038aaa50270d1ceda84db641ee))\n* **deps:** update dependency phpunit/phpunit to v9.6.33 ([c1a986c](https://github.com/nextcloud/contacts/commit/c1a986c00145786c6d607420b5a1ba1260a0e58e))\n* **deps:** update dependency pinia to ^3.0.4 ([eb9f010](https://github.com/nextcloud/contacts/commit/eb9f010b2591e86f9f3387b7af4043913963217d))\n* **deps:** update dependency pinia to v4 ([0aa7714](https://github.com/nextcloud/contacts/commit/0aa771473d0c4cd16769ad835dc7fdf256880178))\n* **deps:** update dependency qreator to ^9.9.0 ([6ff01fb](https://github.com/nextcloud/contacts/commit/6ff01fbb4a1cf10b3186dd7c983d594b74512379))\n* **deps:** update dependency qreator to v10 ([4417e97](https://github.com/nextcloud/contacts/commit/4417e97ae2e9503fb6be3b96dc78e8dbad35bb42))\n* **deps:** update dependency uuid to ^14.0.1 ([be742ea](https://github.com/nextcloud/contacts/commit/be742ea9c47540761d0291b07efb1b153160959b))\n* **deps:** update dependency uuid to ^14.0.2 ([2775dbc](https://github.com/nextcloud/contacts/commit/2775dbcffd25b1f2fffddc7eed233f55006dbb9f))\n* **deps:** update dependency uuid to v14 ([0f7765c](https://github.com/nextcloud/contacts/commit/0f7765c5e13563a305a18066a105760cf6527aca))\n* **deps:** update dependency validator to ^13.15.20 ([a5cc099](https://github.com/nextcloud/contacts/commit/a5cc099aab534e5f222c4465f4a6d41289a9a8a2))\n* **deps:** update dependency validator to ^13.15.23 ([0df4bb7](https://github.com/nextcloud/contacts/commit/0df4bb732776d44d4c7faaf88bd230f37e075a70))\n* **deps:** update dependency validator to ^13.15.26 ([ad84b1f](https://github.com/nextcloud/contacts/commit/ad84b1f8e3d1c105a31826c81c37eed6f93205fc))\n* **deps:** update dependency validator to ^13.15.35 ([6381103](https://github.com/nextcloud/contacts/commit/6381103c77d0cf6a17ed0a84a6cd1c5bab31da04))\n* **deps:** update dependency validator to v13.15.20 ([b4510a3](https://github.com/nextcloud/contacts/commit/b4510a3a4c01c882cfbbb52a7051b178e1242181))\n* **deps:** update dependency virtua to ^0.46.2 ([7b1e5e7](https://github.com/nextcloud/contacts/commit/7b1e5e7870123a8f1805f0933a3f01be722a97ce))\n* **deps:** update dependency virtua to ^0.46.3 ([050dc11](https://github.com/nextcloud/contacts/commit/050dc1100d87e27c3a32d052d1839853147ad2ae))\n* **deps:** update dependency virtua to ^0.46.6 ([be2096b](https://github.com/nextcloud/contacts/commit/be2096bcb3d2acec31383453c02b9c6875885156))\n* **deps:** update dependency virtua to ^0.48.2 ([621fcf0](https://github.com/nextcloud/contacts/commit/621fcf0f5323ae326ff18ff69cf86b4d7bceb37e))\n* **deps:** update dependency virtua to ^0.48.3 ([9b8d07d](https://github.com/nextcloud/contacts/commit/9b8d07da0da5d04caa45fe49dcc695d511344c80))\n* **deps:** update dependency virtua to ^0.48.5 ([42f4813](https://github.com/nextcloud/contacts/commit/42f481373434bac6e7af0900fdb81800504fba4a))\n* **deps:** update dependency virtua to ^0.48.6 ([16240f6](https://github.com/nextcloud/contacts/commit/16240f65780e33ff76f11fe3226100ef6939e3cb))\n* **deps:** update dependency virtua to ^0.49.1 ([f31d2ee](https://github.com/nextcloud/contacts/commit/f31d2eeb38caae74c2d14bc97516b865691ca5e7))\n* **deps:** update dependency virtua to ^0.50.0 ([303c034](https://github.com/nextcloud/contacts/commit/303c0349f137bcd8a620825cc1659492db0e780e))\n* **deps:** update dependency virtua to ^0.50.5 ([fab2c2d](https://github.com/nextcloud/contacts/commit/fab2c2d75d2d1723221a68c8d454b7aa1622b37f))\n* **deps:** update dependency vite to v7.1.11 ([8b3d4de](https://github.com/nextcloud/contacts/commit/8b3d4de06042aebc2be8162cc8479d1cdf93fcf8))\n* **deps:** update dependency vite to v7.3.2 ([250bd88](https://github.com/nextcloud/contacts/commit/250bd88349d5fa34278a1ad0f930f3482407c1ae))\n* **deps:** update dependency vite to v7.3.5 ([6ae9f92](https://github.com/nextcloud/contacts/commit/6ae9f92c0e4f8f297525dfc15fb5fb05941ea3e5))\n* **deps:** update dependency vue to ^3.5.28 ([29ce486](https://github.com/nextcloud/contacts/commit/29ce486bd89c13930aca57e88c5dd3436e4fa1c9))\n* **deps:** update dependency vue to ^3.5.29 ([ff34996](https://github.com/nextcloud/contacts/commit/ff349960ffc385f396379759c89ba9a01cc30ce2))\n* **deps:** update dependency vue to ^3.5.30 ([c3843da](https://github.com/nextcloud/contacts/commit/c3843daf7be7c424a2e00fe7ab03ecadc51b5e85))\n* **deps:** update dependency vue to ^3.5.31 ([4b82e60](https://github.com/nextcloud/contacts/commit/4b82e60565aa2d95578f5a706875575de7992981))\n* **deps:** update dependency vue to ^3.5.32 ([d5fdb9d](https://github.com/nextcloud/contacts/commit/d5fdb9d14b2e247072cd42b96c8961fdefe2e256))\n* **deps:** update dependency vue to ^3.5.33 ([3ca005f](https://github.com/nextcloud/contacts/commit/3ca005f82025a8ec23c4b9a6f7de3f7c1bc6e52c))\n* **deps:** update dependency vue to ^3.5.34 ([415735f](https://github.com/nextcloud/contacts/commit/415735f13386f016b61084be587ff1e96090fa74))\n* **deps:** update dependency vue to ^3.5.39 ([6a6e3a7](https://github.com/nextcloud/contacts/commit/6a6e3a77c7439b90cb67dcfb68dff8123534e321))\n* **deps:** update dependency vue to ^3.5.41 ([a56f4ef](https://github.com/nextcloud/contacts/commit/a56f4ef53b69075fa489e4db9562688f0afd1136))\n* **deps:** update dependency vue to ^3.5.42 ([2f2e491](https://github.com/nextcloud/contacts/commit/2f2e49126d03a563cf08d3b367399c6e6517ccef))\n* **deps:** update dependency vue-router to ^4.6.4 ([ca89263](https://github.com/nextcloud/contacts/commit/ca89263f3c684b6c099849b5e9cf2f3532ea25f6))\n* **deps:** update dependency vue-router to ^5.2.0 ([254c9ed](https://github.com/nextcloud/contacts/commit/254c9edc7d0956317267da337d84dc296bb34fe8))\n* **deps:** update dependency vue-router to v5 ([b5ba570](https://github.com/nextcloud/contacts/commit/b5ba570dbd41afcb6df1aa19726895da7c77e638))\n* description for empty content ([f4364b5](https://github.com/nextcloud/contacts/commit/f4364b59833af45d132b5d42ef193cc01f8d2dbd))\n* **DetailsHeader:** make accessible ([d06006e](https://github.com/nextcloud/contacts/commit/d06006ea7a313e0a8bb0ed73573fcd927c3642a3))\n* detect addressbook ACL's properly ([a4a0a2f](https://github.com/nextcloud/contacts/commit/a4a0a2f30bf473831dfad69423ce8ce919aff5de))\n* do not allow to exclude system accounts from the bday calendar ([77432d4](https://github.com/nextcloud/contacts/commit/77432d48e463a1dc5af19226ee6f51ae914c8361))\n* do not load disabled address books ([1c0ec32](https://github.com/nextcloud/contacts/commit/1c0ec320d375643c0bdedbe673fab150e0e3eab7))\n* don't immediately update a vCard when changing the avatar ([60f2f84](https://github.com/nextcloud/contacts/commit/60f2f8497fe3a1302750332412989401cde58710))\n* dont allow javascript uri as website ([25ccb32](https://github.com/nextcloud/contacts/commit/25ccb329687d6e49826ec910601d851c2430f437))\n* drop google+ ([6b1cb9c](https://github.com/nextcloud/contacts/commit/6b1cb9cbe00f808852679f000fde1980a13194ae))\n* duplication of address books requests ([60cf2bc](https://github.com/nextcloud/contacts/commit/60cf2bc236039693789f7ce70795b11307f55423))\n* error message \"Unable to delete team\" ([5f0ae25](https://github.com/nextcloud/contacts/commit/5f0ae257295fdc3a08879413a9af22720c8623cc)), closes [#4680](https://github.com/nextcloud/contacts/issues/4680)\n* fetch addressbook contacts when enabled ([db911d5](https://github.com/nextcloud/contacts/commit/db911d5892573bc9f9ddaee3789746565139d19b))\n* **files-action:** adapt to @nextcloud/files v4 file action API ([be3cee9](https://github.com/nextcloud/contacts/commit/be3cee995905714d4173404622496065f8cb12ee))\n* fix team members colum layout in chromium based browsers ([f3c2cea](https://github.com/nextcloud/contacts/commit/f3c2cea9265fcad5101e72be62530adb880c1836))\n* Fix Teams description in nav. Shorten text, fix alignment, improve text color ([4d449f8](https://github.com/nextcloud/contacts/commit/4d449f844952d3f485119816c761b18b3a984ab1))\n* generate rev depending on card version ([422ad78](https://github.com/nextcloud/contacts/commit/422ad788f64651366037d8c0a712a5d2f54e47c5))\n* group multiple emails or phone numbers ([7f7aebc](https://github.com/nextcloud/contacts/commit/7f7aebc33b2df7bda9ead1897137a5a5f4fdfb93))\n* **GroupNavigationItem:** encode exported contact groups as UTF-8 ([7e54582](https://github.com/nextcloud/contacts/commit/7e5458245f7206e1ae91c876fe9cfbeaa8a88990))\n* **GroupNavigationItem:** incorrect group dropping handling ([de368fa](https://github.com/nextcloud/contacts/commit/de368fa566df99a3d1a0d41ad8491bcec2873eab))\n* **groups:** show hint about adding read-only contacts to contact groups ([b5fb959](https://github.com/nextcloud/contacts/commit/b5fb959d62fbbb03e9d53a9b6102eef647f7b440))\n* **groups:** show read-only contacts hint only for contact groups ([e71d652](https://github.com/nextcloud/contacts/commit/e71d652a6c6250e169875779e20a4dc84f32b168))\n* **i18n:** Escaping of character broke strings at Transifex ([aaa608a](https://github.com/nextcloud/contacts/commit/aaa608a94691366f4a77e55a57cbc7a95abe4188))\n* Icon button alignment ([2218eed](https://github.com/nextcloud/contacts/commit/2218eed261c38c5311d744517d3724cd15e3e9bd))\n* **icons:** Use outline icons for teams and user groups ([9744791](https://github.com/nextcloud/contacts/commit/97447916ecce6314fcddec0b02478304ce8d325d))\n* import controller should return a translated status message ([a49f592](https://github.com/nextcloud/contacts/commit/a49f592b432dbcc8e8b6e24682d9874009e5a68b))\n* **ImportController:** fix translation string for imported messages ([3f8e7b6](https://github.com/nextcloud/contacts/commit/3f8e7b69cf16b8ac92fbeb1bb24919c419c37513))\n* improve expand button visibility in OrgChart dark mode ([99ad89e](https://github.com/nextcloud/contacts/commit/99ad89eab504a30e30629ad889998e33d648d28d))\n* improve matching for tel type parameter ([503ae11](https://github.com/nextcloud/contacts/commit/503ae11e1f23c5d77c7e704cb65f813b43327066))\n* Instantiation of ContactsManager ([800f4bd](https://github.com/nextcloud/contacts/commit/800f4bdfd91296d5455ac686b19401bd708de281))\n* jest config to work with pinia v4 ([0419bdd](https://github.com/nextcloud/contacts/commit/0419bddcfb552bd2278f79da4c344643f3f8fcbb))\n* keyboard navigation ([a89c448](https://github.com/nextcloud/contacts/commit/a89c448b3501384a381c595127095e6eba8705ee))\n* **l10n:** Fix plural form ([d6acab1](https://github.com/nextcloud/contacts/commit/d6acab1696ace15e840dd73cc903da97469dd0d1))\n* **l10n:** Update translations from Transifex ([d3a7f49](https://github.com/nextcloud/contacts/commit/d3a7f4997e1ad3dc6cbbbfdd49f23b83da0026f3))\n* **l10n:** Update translations from Transifex ([54a55c4](https://github.com/nextcloud/contacts/commit/54a55c426a0b72233ba4f10d08331c285457fcfb))\n* **l10n:** Update translations from Transifex ([1e6fba6](https://github.com/nextcloud/contacts/commit/1e6fba6a57c4d77f02e2c50bf7d50dcebf9b6d56))\n* **l10n:** Update translations from Transifex ([68cab7b](https://github.com/nextcloud/contacts/commit/68cab7bd7897cce8c65d82ad6618786c880ee868))\n* **l10n:** Update translations from Transifex ([4b23b51](https://github.com/nextcloud/contacts/commit/4b23b5157595329d652ac633b1813bb25eb11258))\n* **l10n:** Update translations from Transifex ([f16791f](https://github.com/nextcloud/contacts/commit/f16791faafef5f927e6e3aa1faa2a83fc746f690))\n* **l10n:** Update translations from Transifex ([7d98902](https://github.com/nextcloud/contacts/commit/7d98902cf2e42240cfd87417186db7b14f005b0c))\n* **l10n:** Update translations from Transifex ([d30ac50](https://github.com/nextcloud/contacts/commit/d30ac5039bc9d69d889c86d176909c7a307e2256))\n* **l10n:** Update translations from Transifex ([7c8d8b3](https://github.com/nextcloud/contacts/commit/7c8d8b3671d71b08ef385b8b3b8847a95a36500a))\n* **l10n:** Update translations from Transifex ([9fb1c37](https://github.com/nextcloud/contacts/commit/9fb1c37f774851ab7279b7d4523dbe1d780960f1))\n* **l10n:** Update translations from Transifex ([57c811d](https://github.com/nextcloud/contacts/commit/57c811de283301b112b4806d1b60087290a4bccb))\n* **l10n:** Update translations from Transifex ([bf10ff5](https://github.com/nextcloud/contacts/commit/bf10ff51a4ab0fc99e68e77b07203276349e783f))\n* **l10n:** Update translations from Transifex ([4da19a1](https://github.com/nextcloud/contacts/commit/4da19a1a6aa54353584d8e7eee20e991e0889417))\n* **l10n:** Update translations from Transifex ([1ce0cdd](https://github.com/nextcloud/contacts/commit/1ce0cdda8111f2f552c2a043d89d3d269e22685f))\n* **l10n:** Update translations from Transifex ([e15eb37](https://github.com/nextcloud/contacts/commit/e15eb37862e87c940ace96f74e3e96b43483b7d1))\n* **l10n:** Update translations from Transifex ([7f91db7](https://github.com/nextcloud/contacts/commit/7f91db7401903f670c51e18e5a364b8b6b0e8259))\n* **l10n:** Update translations from Transifex ([deff873](https://github.com/nextcloud/contacts/commit/deff87308cae84db124d2415585b9ee007cd4932))\n* **l10n:** Update translations from Transifex ([0d905ab](https://github.com/nextcloud/contacts/commit/0d905aba1bb8c2912d94e273d330cdb109c653cf))\n* **l10n:** Update translations from Transifex ([61c225e](https://github.com/nextcloud/contacts/commit/61c225e54b65c7118bc2b47c3ea5efcc8d3948da))\n* **l10n:** Update translations from Transifex ([049900c](https://github.com/nextcloud/contacts/commit/049900c151b1a249e68da871d2c1fb39923a9105))\n* **l10n:** Update translations from Transifex ([49c8622](https://github.com/nextcloud/contacts/commit/49c862229503a8c42cad82ea585a3b9f887d8af2))\n* **l10n:** Update translations from Transifex ([e7e8074](https://github.com/nextcloud/contacts/commit/e7e80749832aaaea287c9fda4ffc77d531132169))\n* **l10n:** Update translations from Transifex ([c2c627a](https://github.com/nextcloud/contacts/commit/c2c627ab16fbcd8aed0ff7873c75582e57e51606))\n* **l10n:** Update translations from Transifex ([83a75a5](https://github.com/nextcloud/contacts/commit/83a75a5a9ebc5895facb3c10b42d84ace530af34))\n* **l10n:** Update translations from Transifex ([044dfcf](https://github.com/nextcloud/contacts/commit/044dfcf70e37c3f3621670b0c2df64143f8e4c8d))\n* **l10n:** Update translations from Transifex ([0d4de2a](https://github.com/nextcloud/contacts/commit/0d4de2a654fc6a0f72a1b851458693ac9140ff99))\n* **l10n:** Update translations from Transifex ([156c608](https://github.com/nextcloud/contacts/commit/156c608f04a2c8a76778e40ebf1c3d431336eba1))\n* **l10n:** Update translations from Transifex ([982665b](https://github.com/nextcloud/contacts/commit/982665b9c15a971aade4d2ea348f2fdf537ca142))\n* **l10n:** Update translations from Transifex ([7f7f2a4](https://github.com/nextcloud/contacts/commit/7f7f2a46344a4e012a1b68d19dab8cc4347c42dd))\n* **l10n:** Update translations from Transifex ([559a7fb](https://github.com/nextcloud/contacts/commit/559a7fb320dad3a1539e22119d264244e319ec00))\n* **l10n:** Update translations from Transifex ([d2ef3cd](https://github.com/nextcloud/contacts/commit/d2ef3cda7c9502776ec78c8dcb82c20fb00acc09))\n* **l10n:** Update translations from Transifex ([2ab3925](https://github.com/nextcloud/contacts/commit/2ab3925ee956c9b1a58fe3a31a708282a48dbc39))\n* **l10n:** Update translations from Transifex ([c600eed](https://github.com/nextcloud/contacts/commit/c600eed613cd74fbf9978d0be684fb1b56550ecf))\n* **l10n:** Update translations from Transifex ([b781954](https://github.com/nextcloud/contacts/commit/b781954535d1aaba841e1328cbc1b3a4f1ee689a))\n* **l10n:** Update translations from Transifex ([f50947a](https://github.com/nextcloud/contacts/commit/f50947afebb6f347caf600975d145b60b545853c))\n* **l10n:** Update translations from Transifex ([4021ade](https://github.com/nextcloud/contacts/commit/4021ade46010e85266cef209064a22c2c37c26be))\n* **l10n:** Update translations from Transifex ([3d291e9](https://github.com/nextcloud/contacts/commit/3d291e95924e3d0bf8b8229c8e5a43936760350f))\n* **l10n:** Update translations from Transifex ([961dceb](https://github.com/nextcloud/contacts/commit/961dceb58204837b2bca3f28dd62819ad616ea01))\n* **l10n:** Update translations from Transifex ([77224ed](https://github.com/nextcloud/contacts/commit/77224ede1c3906e395a183dcd0196ebfb7e870ab))\n* **l10n:** Update translations from Transifex ([2a7bbfc](https://github.com/nextcloud/contacts/commit/2a7bbfc50e4c4a9c58dd48cb2713dc982f4937b9))\n* **l10n:** Update translations from Transifex ([8c24376](https://github.com/nextcloud/contacts/commit/8c2437673a4f540fffecfa9e306e5ed53201381b))\n* **l10n:** Update translations from Transifex ([54c07eb](https://github.com/nextcloud/contacts/commit/54c07eb486d7ebf204a8c19f300f37cc7b7d8b9f))\n* **l10n:** Update translations from Transifex ([e449194](https://github.com/nextcloud/contacts/commit/e449194d0afb2a74f9de5f5018643c02ff7a9bbe))\n* **l10n:** Update translations from Transifex ([12f4495](https://github.com/nextcloud/contacts/commit/12f4495241307620c85c2285588367450883f527))\n* **l10n:** Update translations from Transifex ([d66c247](https://github.com/nextcloud/contacts/commit/d66c2470ca0d09f79bbb6212e20a1a279fccc04f))\n* **l10n:** Update translations from Transifex ([1741e1a](https://github.com/nextcloud/contacts/commit/1741e1a101dd9f91067f7f71008a617b9b16d3d6))\n* **l10n:** Update translations from Transifex ([8bd3417](https://github.com/nextcloud/contacts/commit/8bd3417593301707fa5ddc683809f7b85f6a6aff))\n* **l10n:** Update translations from Transifex ([f9d9edd](https://github.com/nextcloud/contacts/commit/f9d9edd9a88acb00070a9e9d6cb87e2647ac5871))\n* **l10n:** Update translations from Transifex ([d7d5181](https://github.com/nextcloud/contacts/commit/d7d5181addae1fcbadbd1f72b757f75662ca6882))\n* **l10n:** Update translations from Transifex ([7737091](https://github.com/nextcloud/contacts/commit/77370917ce93c0271678f6b032b0fbd67594651d))\n* **l10n:** Update translations from Transifex ([826e634](https://github.com/nextcloud/contacts/commit/826e634d8e2947403ff19135048130c7222914c8))\n* **l10n:** Update translations from Transifex ([264dec8](https://github.com/nextcloud/contacts/commit/264dec8c63cbeced0d6113bf15c26b3f806b5a43))\n* **l10n:** Update translations from Transifex ([6d6d24c](https://github.com/nextcloud/contacts/commit/6d6d24cac88bbaa2a3be94d4e16adb7d3302a890))\n* **l10n:** Update translations from Transifex ([3b2fb4e](https://github.com/nextcloud/contacts/commit/3b2fb4ef9e528ab214ee1d4f2de5680b75a57de4))\n* **l10n:** Update translations from Transifex ([c916856](https://github.com/nextcloud/contacts/commit/c916856a0a959b576dd9b9f2752ddc610adb35ca))\n* **l10n:** Update translations from Transifex ([bca2ce9](https://github.com/nextcloud/contacts/commit/bca2ce91be10f4951202032936b49e75a5230e68))\n* **l10n:** Update translations from Transifex ([a1c3640](https://github.com/nextcloud/contacts/commit/a1c3640535caab941b32dc065b5c25922c47cbb5))\n* **l10n:** Update translations from Transifex ([81a9b75](https://github.com/nextcloud/contacts/commit/81a9b752161a4a1fff398f12b6e83ea35fdc2689))\n* **l10n:** Update translations from Transifex ([0fd9aee](https://github.com/nextcloud/contacts/commit/0fd9aee5709b2c1f33fbd7f62c1309668e348873))\n* **l10n:** Update translations from Transifex ([d489ead](https://github.com/nextcloud/contacts/commit/d489ead7dc78e267698f697ccd1c55fbc0c4f9eb))\n* **l10n:** Update translations from Transifex ([734f64a](https://github.com/nextcloud/contacts/commit/734f64a333d64f646355a78d964e4b4e8128b60b))\n* **l10n:** Update translations from Transifex ([b5d29fb](https://github.com/nextcloud/contacts/commit/b5d29fbb2a8033850b3ecf587836eac17f9eb995))\n* **l10n:** Update translations from Transifex ([093c82b](https://github.com/nextcloud/contacts/commit/093c82be4096f07fa0a2230fd93faec25cebdcd2))\n* **l10n:** Update translations from Transifex ([faa32a3](https://github.com/nextcloud/contacts/commit/faa32a347b4aa9249d64b57cffc573d73e77343c))\n* **l10n:** Update translations from Transifex ([4d467d1](https://github.com/nextcloud/contacts/commit/4d467d1ba02f1787afedaff807b10676bb3eb678))\n* **l10n:** Update translations from Transifex ([0e19648](https://github.com/nextcloud/contacts/commit/0e19648f87f888327c10ed66fefb26d4736ef245))\n* **l10n:** Update translations from Transifex ([7078831](https://github.com/nextcloud/contacts/commit/7078831ffd86883a04eab84b25d343e9ad2983e8))\n* **l10n:** Update translations from Transifex ([d6bd88f](https://github.com/nextcloud/contacts/commit/d6bd88f9c42de4c98ed04d36d513189479c57b30))\n* **l10n:** Update translations from Transifex ([a83a1b1](https://github.com/nextcloud/contacts/commit/a83a1b1d10de57c162d1b2b7432fe1c79f24feeb))\n* **l10n:** Update translations from Transifex ([805f41c](https://github.com/nextcloud/contacts/commit/805f41cfba8e17e630e8eb58258460fe91d46a60))\n* **l10n:** Update translations from Transifex ([c349f08](https://github.com/nextcloud/contacts/commit/c349f087a072fd1e60f3cf09eec6afd6000a568f))\n* **l10n:** Update translations from Transifex ([61d40ea](https://github.com/nextcloud/contacts/commit/61d40eaa0fa1dcb0b73a499596c6de14cc285e70))\n* **l10n:** Update translations from Transifex ([6f9a69a](https://github.com/nextcloud/contacts/commit/6f9a69a7a8903d30b1bf0afc553f94a71ca37535))\n* **l10n:** Update translations from Transifex ([643bfed](https://github.com/nextcloud/contacts/commit/643bfedf784cb9a5c121583971c06d5c03a668d9))\n* **l10n:** Update translations from Transifex ([f941d0b](https://github.com/nextcloud/contacts/commit/f941d0b32d2ec5c4bb791a3cc592789638f5ef07))\n* **l10n:** Update translations from Transifex ([5aeece3](https://github.com/nextcloud/contacts/commit/5aeece3cbb48d90df22f6a0890feaa74b6e22d74))\n* **l10n:** Update translations from Transifex ([e2bdf12](https://github.com/nextcloud/contacts/commit/e2bdf126b50e0f4fa0110369c4781a7a630002a4))\n* **l10n:** Update translations from Transifex ([cda94e3](https://github.com/nextcloud/contacts/commit/cda94e31e3313346b0f4d04059e368d6c03a5197))\n* **l10n:** Update translations from Transifex ([7b07829](https://github.com/nextcloud/contacts/commit/7b078292edbc316dbbaab9816b2c44578f182bba))\n* **l10n:** Update translations from Transifex ([35c9aa3](https://github.com/nextcloud/contacts/commit/35c9aa3d3ddf7778d0c753889d21fa8a6faec3ac))\n* **l10n:** Update translations from Transifex ([854ec25](https://github.com/nextcloud/contacts/commit/854ec25e1896975a62e2eaecc433642f0ea68277))\n* **l10n:** Update translations from Transifex ([f0e66a1](https://github.com/nextcloud/contacts/commit/f0e66a1b316334718b822641bde04ed953d7713f))\n* **l10n:** Update translations from Transifex ([4128b7d](https://github.com/nextcloud/contacts/commit/4128b7dcc1e27ff4b71a89fb58d1430f8208c4f6))\n* **l10n:** Update translations from Transifex ([e3faac2](https://github.com/nextcloud/contacts/commit/e3faac2d8049bccf0b8cf05bf7ab1512c6c9e905))\n* **l10n:** Update translations from Transifex ([602b61f](https://github.com/nextcloud/contacts/commit/602b61f24204da68acc894dfcbe76593cdf9575c))\n* **l10n:** Update translations from Transifex ([a4ce368](https://github.com/nextcloud/contacts/commit/a4ce368c25b7a7e4b157a028c651602887fedd81))\n* **l10n:** Update translations from Transifex ([2d2f282](https://github.com/nextcloud/contacts/commit/2d2f282ebb1710e3b14d7457d1fecf8e5b559bf3))\n* **l10n:** Update translations from Transifex ([0b8c343](https://github.com/nextcloud/contacts/commit/0b8c343f99ef99f6a13e5462b4d51c5bed9546e0))\n* **l10n:** Update translations from Transifex ([cc09fa8](https://github.com/nextcloud/contacts/commit/cc09fa81ae375a2a5b60b906bf3f8a48b09d0c69))\n* **l10n:** Update translations from Transifex ([f08e921](https://github.com/nextcloud/contacts/commit/f08e9210dd482358945e5da33561e45798b6f6f9))\n* **l10n:** Update translations from Transifex ([89024cb](https://github.com/nextcloud/contacts/commit/89024cb8cc548e2a9a5df75bbd59a5b42011537c))\n* **l10n:** Update translations from Transifex ([3915797](https://github.com/nextcloud/contacts/commit/3915797ae0aa9c6d997ba2b5982a8f00b171fbf3))\n* **l10n:** Update translations from Transifex ([c3ccc57](https://github.com/nextcloud/contacts/commit/c3ccc571f2f415b80bf1aa151881d69064254304))\n* **l10n:** Update translations from Transifex ([2453a6e](https://github.com/nextcloud/contacts/commit/2453a6e931c116bfe885c46571a4a99f455a59df))\n* **l10n:** Update translations from Transifex ([a7b089c](https://github.com/nextcloud/contacts/commit/a7b089c6f3203d4a31441cf943c05043043c403d))\n* **l10n:** Update translations from Transifex ([d609f04](https://github.com/nextcloud/contacts/commit/d609f04e1a375408900618b164ad2f78ce0e3cfe))\n* **l10n:** Update translations from Transifex ([45853a4](https://github.com/nextcloud/contacts/commit/45853a41296491a9d08a0d9e131d9b9c4f9ec542))\n* **l10n:** Update translations from Transifex ([6f2e11f](https://github.com/nextcloud/contacts/commit/6f2e11f257d51f698bd0da34f9446ca331e6f1b5))\n* **l10n:** Update translations from Transifex ([5df39cf](https://github.com/nextcloud/contacts/commit/5df39cf6da081a5fcb722c13abd1834728899ab3))\n* **l10n:** Update translations from Transifex ([2dc6d92](https://github.com/nextcloud/contacts/commit/2dc6d929cbd0ae23fac388070392ac736d26bb8c))\n* **l10n:** Update translations from Transifex ([cf2455f](https://github.com/nextcloud/contacts/commit/cf2455f5f85c3d91648d1f5bedde33553c1d41be))\n* **l10n:** Update translations from Transifex ([02880c3](https://github.com/nextcloud/contacts/commit/02880c3ce2c0f9738aaafe3b31937216fdb51413))\n* **l10n:** Update translations from Transifex ([1200774](https://github.com/nextcloud/contacts/commit/1200774b383b11216018bdb71d22bd0363164311))\n* **l10n:** Update translations from Transifex ([24501a9](https://github.com/nextcloud/contacts/commit/24501a9a84d9efdfc5806c53d239bff7190ade98))\n* **l10n:** Update translations from Transifex ([38f83b6](https://github.com/nextcloud/contacts/commit/38f83b6b53d1d05f1bc671b0190da1c382de7f8c))\n* **l10n:** Update translations from Transifex ([2385185](https://github.com/nextcloud/contacts/commit/2385185c77104ba69eee5b8cfe99c3ce84ff9049))\n* **l10n:** Update translations from Transifex ([19dcf96](https://github.com/nextcloud/contacts/commit/19dcf96c534286a84ebc4a96a00091cfe68b8734))\n* **l10n:** Update translations from Transifex ([7b64a96](https://github.com/nextcloud/contacts/commit/7b64a968e63e25d4e43238cc6af3eed1973d0159))\n* **l10n:** Update translations from Transifex ([743fcd1](https://github.com/nextcloud/contacts/commit/743fcd1325ca50d067a11fe6f5119a0c65ad1fce))\n* **l10n:** Update translations from Transifex ([4735485](https://github.com/nextcloud/contacts/commit/4735485fa82eadb51d199510f303927257f76f9d))\n* **l10n:** Update translations from Transifex ([fdfc75d](https://github.com/nextcloud/contacts/commit/fdfc75d294f093c1bc1301c49db648eb9d892585))\n* **l10n:** Update translations from Transifex ([cb3f871](https://github.com/nextcloud/contacts/commit/cb3f87103b1928285db8f07a6df4468fb63cd056))\n* **l10n:** Update translations from Transifex ([f12b773](https://github.com/nextcloud/contacts/commit/f12b7732eeef7345720685e6390fcd0b747039d4))\n* **l10n:** Update translations from Transifex ([35d1d2d](https://github.com/nextcloud/contacts/commit/35d1d2d8881c1c677936c1a393d994efa90dba4e))\n* **l10n:** Update translations from Transifex ([5ab5629](https://github.com/nextcloud/contacts/commit/5ab5629740c39823955410ab7aebf720b0bac856))\n* **l10n:** Update translations from Transifex ([6dd7469](https://github.com/nextcloud/contacts/commit/6dd746949ab355a496c0bb4c87c6fd20da505d4c))\n* **l10n:** Update translations from Transifex ([1a7aee2](https://github.com/nextcloud/contacts/commit/1a7aee2583256184a0a9285f1b39b6173b5136aa))\n* **l10n:** Update translations from Transifex ([cb22948](https://github.com/nextcloud/contacts/commit/cb229480073afe45d1ea9fa6237711a056661072))\n* **l10n:** Update translations from Transifex ([a5f10c1](https://github.com/nextcloud/contacts/commit/a5f10c115a27745c81e7fd1bce6b7c0fc953a8ee))\n* **l10n:** Update translations from Transifex ([f46c703](https://github.com/nextcloud/contacts/commit/f46c703c8527936ed18ba8a34077d1fe1962b7f6))\n* **l10n:** Update translations from Transifex ([1bd40eb](https://github.com/nextcloud/contacts/commit/1bd40ebc0a196a957c604653fb5648f0b0903653))\n* **l10n:** Update translations from Transifex ([071bd72](https://github.com/nextcloud/contacts/commit/071bd72aab5957a3e72ae687f1fca52d07584cf3))\n* **l10n:** Update translations from Transifex ([a6b517c](https://github.com/nextcloud/contacts/commit/a6b517c5ca3f41e972b10346adae07b413802a89))\n* **l10n:** Update translations from Transifex ([00dd7f0](https://github.com/nextcloud/contacts/commit/00dd7f09c74b5325d673151a0b3fae55362759f9))\n* **l10n:** Update translations from Transifex ([a086ba8](https://github.com/nextcloud/contacts/commit/a086ba88fe54b34dc2d7d8b38e6627122ba60e24))\n* **l10n:** Update translations from Transifex ([8b7f2d8](https://github.com/nextcloud/contacts/commit/8b7f2d81cdd60ae4ad41b4e6d0102e3321cd5305))\n* **l10n:** Update translations from Transifex ([aa8b8a4](https://github.com/nextcloud/contacts/commit/aa8b8a4970c6fbb5a2652992c149be154f6227f9))\n* **l10n:** Update translations from Transifex ([4bf7b49](https://github.com/nextcloud/contacts/commit/4bf7b49a1d025eae1ca983b10d1ee94400b6aab1))\n* **l10n:** Update translations from Transifex ([142abf1](https://github.com/nextcloud/contacts/commit/142abf1268bfe71b5cedbb286f2536e7f1c04beb))\n* **l10n:** Update translations from Transifex ([20605be](https://github.com/nextcloud/contacts/commit/20605beaad0374d8bd3ce6d0a96cae5344d5636e))\n* **l10n:** Update translations from Transifex ([9b66ad3](https://github.com/nextcloud/contacts/commit/9b66ad32d7f0d89deb3e78ea3d375359773633f6))\n* **l10n:** Update translations from Transifex ([6d8101d](https://github.com/nextcloud/contacts/commit/6d8101d1e41d36ac893686e479b50107b301ebe6))\n* **l10n:** Update translations from Transifex ([8fdf9a9](https://github.com/nextcloud/contacts/commit/8fdf9a9072f8197323e1582c5be4e5525897fdcb))\n* **l10n:** Update translations from Transifex ([866bdb0](https://github.com/nextcloud/contacts/commit/866bdb01136fd42da63fad180221023deca209f2))\n* **l10n:** Update translations from Transifex ([8028a7d](https://github.com/nextcloud/contacts/commit/8028a7d19e02636768c9f3d124c6a64978b6c124))\n* **l10n:** Update translations from Transifex ([c21fbbc](https://github.com/nextcloud/contacts/commit/c21fbbc5678837b526c4eaeac09832e095860871))\n* **l10n:** Update translations from Transifex ([7eaff84](https://github.com/nextcloud/contacts/commit/7eaff8466aa9a9d9e53a64c678a158777d7bb4c2))\n* **l10n:** Update translations from Transifex ([9b9a85b](https://github.com/nextcloud/contacts/commit/9b9a85bddaf2b7d83fd5de24cfac342034a130db))\n* **l10n:** Update translations from Transifex ([d0d2007](https://github.com/nextcloud/contacts/commit/d0d2007aa64751c3d48d028546565247eb355c24))\n* **l10n:** Update translations from Transifex ([e70b955](https://github.com/nextcloud/contacts/commit/e70b95536c17856d8ccc10bac7917d5f8d7224e3))\n* **l10n:** Update translations from Transifex ([81df9af](https://github.com/nextcloud/contacts/commit/81df9af02eee63fe1b99a7843c1c76bd82440ab9))\n* **l10n:** Update translations from Transifex ([e4e5426](https://github.com/nextcloud/contacts/commit/e4e5426c0be51e4b56e0f9fb0eea9e83809bf960))\n* **l10n:** Update translations from Transifex ([b352fcb](https://github.com/nextcloud/contacts/commit/b352fcbf0da6e3caddba6d79a9edd60a79a3cfbe))\n* **l10n:** Update translations from Transifex ([a6a1fbc](https://github.com/nextcloud/contacts/commit/a6a1fbcf53d082eebe14d964e299105970818fe7))\n* **l10n:** Update translations from Transifex ([1d7f6f0](https://github.com/nextcloud/contacts/commit/1d7f6f0180bc7ea75ac0c9c7b7dea47f5114f6b1))\n* **l10n:** Update translations from Transifex ([d7b7ccd](https://github.com/nextcloud/contacts/commit/d7b7ccd3a3af381b0d8983983d2d18f5dbfdd6fb))\n* **l10n:** Update translations from Transifex ([9e10bb8](https://github.com/nextcloud/contacts/commit/9e10bb8791cf7fd750cda26e4b63100e9b1bce3b))\n* **l10n:** Update translations from Transifex ([20a040c](https://github.com/nextcloud/contacts/commit/20a040ce4fe69ecc952ec4d92ac4ffc92928ba67))\n* **l10n:** Update translations from Transifex ([e149550](https://github.com/nextcloud/contacts/commit/e1495501cf46834e5432144eb94035397c00eba5))\n* **l10n:** Update translations from Transifex ([b103581](https://github.com/nextcloud/contacts/commit/b103581ca82a50048e91dc1144c95a8f11b931a0))\n* **l10n:** Update translations from Transifex ([7c54c65](https://github.com/nextcloud/contacts/commit/7c54c65cd5b60641ec0e259d401974825a4b4375))\n* **l10n:** Update translations from Transifex ([96cfca2](https://github.com/nextcloud/contacts/commit/96cfca26ac34e9603dd873bee9d11aea110345a6))\n* **l10n:** Update translations from Transifex ([ee78102](https://github.com/nextcloud/contacts/commit/ee781026553179aadd5678e09b9cb94867dd2436))\n* **l10n:** Update translations from Transifex ([8312597](https://github.com/nextcloud/contacts/commit/8312597f78fc3fc4e7da1bbad007bcf39bbbe6bb))\n* **l10n:** Update translations from Transifex ([a1e23cb](https://github.com/nextcloud/contacts/commit/a1e23cb927b56890cdd37337017be5c5a2ab4813))\n* **l10n:** Update translations from Transifex ([b625357](https://github.com/nextcloud/contacts/commit/b625357ac6a1dc58e590506726e16d40c535a18e))\n* **l10n:** Update translations from Transifex ([6fa3d59](https://github.com/nextcloud/contacts/commit/6fa3d59cd7985141c9b42281d2a1ea4c3f6ca640))\n* **l10n:** Update translations from Transifex ([f08c1af](https://github.com/nextcloud/contacts/commit/f08c1af336b69a179255a3f37af31b5a3acf8837))\n* **l10n:** Update translations from Transifex ([9e028b4](https://github.com/nextcloud/contacts/commit/9e028b43e5fba00d0b3e9b61aac55062ef5bead5))\n* **l10n:** Update translations from Transifex ([09c766a](https://github.com/nextcloud/contacts/commit/09c766a25de01418e01a159c57c3b838d7ca68c3))\n* **l10n:** Update translations from Transifex ([29a7c43](https://github.com/nextcloud/contacts/commit/29a7c432f3e53c062f96bdf5597cf678a6aac183))\n* **l10n:** Update translations from Transifex ([2016bf3](https://github.com/nextcloud/contacts/commit/2016bf3ee605f9953bbf5839e319cbd25362fea7))\n* **l10n:** Update translations from Transifex ([bf2fa16](https://github.com/nextcloud/contacts/commit/bf2fa169252094d05d473f8d777c49d2a69bab3f))\n* **l10n:** Update translations from Transifex ([4405fe8](https://github.com/nextcloud/contacts/commit/4405fe8662021bd55111ab84d1bb25edde1e830b))\n* **l10n:** Update translations from Transifex ([5064ca7](https://github.com/nextcloud/contacts/commit/5064ca7473eae832cd86fa74a3d1866c61605d3c))\n* **l10n:** Update translations from Transifex ([fd48b03](https://github.com/nextcloud/contacts/commit/fd48b03c5d1f850fc2657fbd9522c1576dbeb4bc))\n* **l10n:** Update translations from Transifex ([083489a](https://github.com/nextcloud/contacts/commit/083489af0590e128dc0580a6db9b6db442fbee8e))\n* **l10n:** Update translations from Transifex ([8b34248](https://github.com/nextcloud/contacts/commit/8b34248ccee696d06e0a510738a78a5ab1da0caa))\n* **l10n:** Update translations from Transifex ([68df40c](https://github.com/nextcloud/contacts/commit/68df40c00ca5d537d503fb02456720f899a73752))\n* **l10n:** Update translations from Transifex ([ae49d56](https://github.com/nextcloud/contacts/commit/ae49d5649c8d67e2ec9dedadfadd2e7220cddaca))\n* **l10n:** Update translations from Transifex ([26a4ebf](https://github.com/nextcloud/contacts/commit/26a4ebf3aaa49ac077972bbaae16b19d9aa43753))\n* **l10n:** Update translations from Transifex ([cde151f](https://github.com/nextcloud/contacts/commit/cde151ff7812ca6efb6b83376252152e71b24ea1))\n* **l10n:** Update translations from Transifex ([4bdd7dd](https://github.com/nextcloud/contacts/commit/4bdd7ddfe6163cda6206c9cb3d51b3df45446fc4))\n* **l10n:** Update translations from Transifex ([b0aa7bc](https://github.com/nextcloud/contacts/commit/b0aa7bcf580cd9e403820327fe572bd2cd518cf1))\n* **l10n:** Update translations from Transifex ([0c1dd9f](https://github.com/nextcloud/contacts/commit/0c1dd9f2878baeb834aaa04609b328b277f9faba))\n* **l10n:** Update translations from Transifex ([4ed7bd8](https://github.com/nextcloud/contacts/commit/4ed7bd8a5bfa64cf7912cd098c757a65f7bc04a5))\n* **l10n:** Update translations from Transifex ([22f2a13](https://github.com/nextcloud/contacts/commit/22f2a133dffef59abccb1c179672225b33756046))\n* **l10n:** Update translations from Transifex ([8c0510c](https://github.com/nextcloud/contacts/commit/8c0510c792080fc4c815f0d670615003f44dcf84))\n* **l10n:** Update translations from Transifex ([8f1925a](https://github.com/nextcloud/contacts/commit/8f1925aff792e156e726860e8f81208647441eea))\n* **l10n:** Update translations from Transifex ([1c367cb](https://github.com/nextcloud/contacts/commit/1c367cb3c4ca6ee64a6fdc27ce3283525f34af32))\n* **l10n:** Update translations from Transifex ([e7389b7](https://github.com/nextcloud/contacts/commit/e7389b7f286eb6946ab892e0e4e6bfb706208af8))\n* **l10n:** Update translations from Transifex ([579315b](https://github.com/nextcloud/contacts/commit/579315be043e9ab4c196e95d80a2617a3c81d286))\n* **l10n:** Update translations from Transifex ([9c57b90](https://github.com/nextcloud/contacts/commit/9c57b90aa23311e01e29a8e6561bd478911e8965))\n* **l10n:** Update translations from Transifex ([73af31e](https://github.com/nextcloud/contacts/commit/73af31ec7f611b94f1c545c74eed353d37d5fa4b))\n* **l10n:** Update translations from Transifex ([cf7cbec](https://github.com/nextcloud/contacts/commit/cf7cbece3a35ebbec1ffc254db23d67e08b3baec))\n* **l10n:** Update translations from Transifex ([7987cf6](https://github.com/nextcloud/contacts/commit/7987cf65f077baa0c33cd5a0b5d02679b8269782))\n* **l10n:** Update translations from Transifex ([aacf691](https://github.com/nextcloud/contacts/commit/aacf69113a58a508e1eb3bfb4f7407821a05b833))\n* **l10n:** Update translations from Transifex ([91b36f8](https://github.com/nextcloud/contacts/commit/91b36f88a5168cdbf80677d4aa620463ac894418))\n* **l10n:** Update translations from Transifex ([7a6a33c](https://github.com/nextcloud/contacts/commit/7a6a33cf8e8dfd210713f56f796fe5b79ef09850))\n* **l10n:** Update translations from Transifex ([a505a09](https://github.com/nextcloud/contacts/commit/a505a09c67809d3d5b5a2ef955ce6de0629563c9))\n* **l10n:** Update translations from Transifex ([dcb6160](https://github.com/nextcloud/contacts/commit/dcb61604a0eafc3d314d3d3d3733884a66acb4a7))\n* **l10n:** Update translations from Transifex ([50ffced](https://github.com/nextcloud/contacts/commit/50ffced5a5657f22004fcd9a246e9fc6fa9b2f46))\n* **l10n:** Update translations from Transifex ([aef743b](https://github.com/nextcloud/contacts/commit/aef743b75d53b68bf504b8422195055a5d39eeae))\n* **l10n:** Update translations from Transifex ([3f8ba46](https://github.com/nextcloud/contacts/commit/3f8ba46570eed2c864be96b7c1ea925c86ef080c))\n* **l10n:** Update translations from Transifex ([dfc1ca9](https://github.com/nextcloud/contacts/commit/dfc1ca9345472c73036b19ce6ea414a41ccfa4bf))\n* **l10n:** Update translations from Transifex ([c67a2d1](https://github.com/nextcloud/contacts/commit/c67a2d15d7264e173c61208a487e2a173d4a644c))\n* **l10n:** Update translations from Transifex ([b5ee336](https://github.com/nextcloud/contacts/commit/b5ee3369ca46ad69803973be8a8c1a72abbe39d7))\n* **l10n:** Update translations from Transifex ([141929f](https://github.com/nextcloud/contacts/commit/141929fa11f397dc32c0b5afd4e241dd8644385d))\n* **l10n:** Update translations from Transifex ([a3f85ea](https://github.com/nextcloud/contacts/commit/a3f85ea8e95676badf633a9170c8c8bef2f1f203))\n* **l10n:** Update translations from Transifex ([e93f9a6](https://github.com/nextcloud/contacts/commit/e93f9a64db21d88a8a40522daad972ae9a5df765))\n* **l10n:** Update translations from Transifex ([b977fd8](https://github.com/nextcloud/contacts/commit/b977fd88d5e7c51f3da31c0403d1db7d02aff9e8))\n* **l10n:** Update translations from Transifex ([1681df1](https://github.com/nextcloud/contacts/commit/1681df11f8c41b85d35a3a9852cb5762b19d8ea8))\n* **l10n:** Update translations from Transifex ([efa65ac](https://github.com/nextcloud/contacts/commit/efa65ac2ca896b606ca0850b5d1920fb9310b20b))\n* **l10n:** Update translations from Transifex ([6972fe9](https://github.com/nextcloud/contacts/commit/6972fe9849bc5c2eafaa1a2c4849c2bc438140c1))\n* **l10n:** Update translations from Transifex ([e4d0c82](https://github.com/nextcloud/contacts/commit/e4d0c823c760821d563b7ed3aa101d9bbb573ee8))\n* **l10n:** Update translations from Transifex ([8478d48](https://github.com/nextcloud/contacts/commit/8478d4860396184a3083f94f9daf6b8b49a9f366))\n* **l10n:** Update translations from Transifex ([6219c9d](https://github.com/nextcloud/contacts/commit/6219c9db36f0b7b4a8b71e8d6f54f0a348aca4c7))\n* **l10n:** Update translations from Transifex ([1ff5b6c](https://github.com/nextcloud/contacts/commit/1ff5b6c2f87c2aaef9cf64c948e9ce76097480cd))\n* **l10n:** Update translations from Transifex ([b6db3e5](https://github.com/nextcloud/contacts/commit/b6db3e56f5652479f7dfd63c9a11576a4ae1e9bc))\n* **l10n:** Update translations from Transifex ([a7ceafb](https://github.com/nextcloud/contacts/commit/a7ceafb7a44c60282bf1d29c9f562d21421d6ae7))\n* **l10n:** Update translations from Transifex ([5451e5a](https://github.com/nextcloud/contacts/commit/5451e5ae3c795f15e9a88df4a0e15308c0805945))\n* **l10n:** Update translations from Transifex ([45675a6](https://github.com/nextcloud/contacts/commit/45675a696182ae82a330c3f73ecb2aaa96a0f806))\n* **l10n:** Update translations from Transifex ([af1237e](https://github.com/nextcloud/contacts/commit/af1237edf1c3163216850254d5489cc1403f9b3b))\n* **l10n:** Update translations from Transifex ([91359e8](https://github.com/nextcloud/contacts/commit/91359e8ab091eba05a9989b06b1189aeaa5c5579))\n* **l10n:** Update translations from Transifex ([428d973](https://github.com/nextcloud/contacts/commit/428d973a9a896b768cb8294da9f2a2dff7de5e73))\n* **l10n:** Update translations from Transifex ([e1c667c](https://github.com/nextcloud/contacts/commit/e1c667c2dd30885e76512a847db50883a75b1687))\n* **l10n:** Update translations from Transifex ([2e24f29](https://github.com/nextcloud/contacts/commit/2e24f294e7446398931b9b36641d0fb91f925ac3))\n* **l10n:** Update translations from Transifex ([8544627](https://github.com/nextcloud/contacts/commit/854462722d37f3525333f09572070b0cbc2d441c))\n* **l10n:** Update translations from Transifex ([fa2214c](https://github.com/nextcloud/contacts/commit/fa2214c17dc93b38f774364a0b4cc421df480864))\n* **l10n:** Update translations from Transifex ([d666eb2](https://github.com/nextcloud/contacts/commit/d666eb2122bad174019cb83363f13f35c8b75cab))\n* **l10n:** Update translations from Transifex ([d274d7f](https://github.com/nextcloud/contacts/commit/d274d7f1818b5d9bbe87b3b746b218cff033b7c9))\n* **l10n:** Update translations from Transifex ([a3cd2c5](https://github.com/nextcloud/contacts/commit/a3cd2c55a4b2471e1dbe3fa48d8b982717e1ef96))\n* **l10n:** Update translations from Transifex ([ecc4b33](https://github.com/nextcloud/contacts/commit/ecc4b336da59f1799a09436f1940373173767bc6))\n* **l10n:** Update translations from Transifex ([fac8d2f](https://github.com/nextcloud/contacts/commit/fac8d2f1e8c0fbe446cc8b9f5a2512b029e76bf9))\n* **l10n:** Update translations from Transifex ([c98a2da](https://github.com/nextcloud/contacts/commit/c98a2dabe0511830c17a77830783e03b5dc12b04))\n* **l10n:** Update translations from Transifex ([72e3606](https://github.com/nextcloud/contacts/commit/72e36063e84d850217d6d97ddda3e7d32fae94f7))\n* **l10n:** Update translations from Transifex ([1bdcd79](https://github.com/nextcloud/contacts/commit/1bdcd79c672cd04b2313d77845d60780887ffe88))\n* **l10n:** Update translations from Transifex ([7f5da02](https://github.com/nextcloud/contacts/commit/7f5da02c9125669b78c9a98c5864a3af14446c77))\n* **l10n:** Update translations from Transifex ([1c31107](https://github.com/nextcloud/contacts/commit/1c31107542351d65ce6799b25a59d0ca52f41318))\n* **l10n:** Update translations from Transifex ([9c9b007](https://github.com/nextcloud/contacts/commit/9c9b007ec3602b63f85e691676e43d1cf3a22ee6))\n* **l10n:** Update translations from Transifex ([4841f20](https://github.com/nextcloud/contacts/commit/4841f202e14ff3a032daeea25118877b2fdaa15c))\n* **l10n:** Update translations from Transifex ([6967ae4](https://github.com/nextcloud/contacts/commit/6967ae45ee03aa3b1e8ee2f1c21476450b34a968))\n* **l10n:** Update translations from Transifex ([ca7e374](https://github.com/nextcloud/contacts/commit/ca7e374e5e8b385c62bc59b77e48a305018219c4))\n* **l10n:** Update translations from Transifex ([b3318c3](https://github.com/nextcloud/contacts/commit/b3318c3c1d82a52ceb8fb5aaab98865a1ee08a31))\n* **l10n:** Update translations from Transifex ([ef2dbd7](https://github.com/nextcloud/contacts/commit/ef2dbd7d712a27683ca40615dc6b70a2778087d3))\n* **l10n:** Update translations from Transifex ([2491e2b](https://github.com/nextcloud/contacts/commit/2491e2bf1c11bf3f536dbc20aed206faa3d2431f))\n* **l10n:** Update translations from Transifex ([fcec8cc](https://github.com/nextcloud/contacts/commit/fcec8cce4b3ce1dda5bf06417e3f7fb0ed5e56cf))\n* **l10n:** Update translations from Transifex ([77d5497](https://github.com/nextcloud/contacts/commit/77d5497d46905aeb9c67e5af188aeb4ad9520c30))\n* **l10n:** Update translations from Transifex ([487b023](https://github.com/nextcloud/contacts/commit/487b023c65feb81716b056ed91ca192bf66b8320))\n* **l10n:** Update translations from Transifex ([66f0ea1](https://github.com/nextcloud/contacts/commit/66f0ea1fa0c4a66a5cd74e25763ba04e578d6b39))\n* **l10n:** Update translations from Transifex ([f48891e](https://github.com/nextcloud/contacts/commit/f48891e3052f474e57bd568ac5d8fe53a0a65788))\n* **l10n:** Update translations from Transifex ([39d578e](https://github.com/nextcloud/contacts/commit/39d578e2d5b58f4944c5b69beedcae1916606bcd))\n* **l10n:** Update translations from Transifex ([5d7285c](https://github.com/nextcloud/contacts/commit/5d7285c746f58ded5e018ab34b66d29c117548a5))\n* **l10n:** Update translations from Transifex ([4334ec7](https://github.com/nextcloud/contacts/commit/4334ec7f1db9f256fdd6fbbf5181833af7d483da))\n* **l10n:** Update translations from Transifex ([7a9c18c](https://github.com/nextcloud/contacts/commit/7a9c18c4d657c2126c6390d9836f6d38d97243b7))\n* **l10n:** Update translations from Transifex ([ad363d5](https://github.com/nextcloud/contacts/commit/ad363d5d77407a1b934e9dab7e1beba488cd73d3))\n* **l10n:** Update translations from Transifex ([f67a9b5](https://github.com/nextcloud/contacts/commit/f67a9b56f4feed3bf11793a73c05ad05a399910b))\n* **l10n:** Update translations from Transifex ([bf94c7c](https://github.com/nextcloud/contacts/commit/bf94c7c095b1efa4c3c9c769adf8e4f079cf4ddc))\n* **l10n:** Update translations from Transifex ([bf5136b](https://github.com/nextcloud/contacts/commit/bf5136b4721bf4bb40d570ac355e6117abfeea6b))\n* **l10n:** Update translations from Transifex ([38aef0c](https://github.com/nextcloud/contacts/commit/38aef0caaa6f78a13aef04336efd8ab1983e5712))\n* **l10n:** Update translations from Transifex ([2f43d75](https://github.com/nextcloud/contacts/commit/2f43d75c9e80e762681d7b0ec5abbb091ded49e9))\n* **l10n:** Update translations from Transifex ([69b5030](https://github.com/nextcloud/contacts/commit/69b5030302fea6d5913f8ef06070b2f0bdca4d3e))\n* **l10n:** Update translations from Transifex ([7bd3309](https://github.com/nextcloud/contacts/commit/7bd330948d91c470da852f2a7090ed0eb5f5be7f))\n* **l10n:** Update translations from Transifex ([45bd927](https://github.com/nextcloud/contacts/commit/45bd92789c310e2e6f691551b8b5bb7fb4524bcd))\n* **l10n:** Update translations from Transifex ([c12b745](https://github.com/nextcloud/contacts/commit/c12b74530449ef11d6402df9789ac99538b3a9b1))\n* **l10n:** Update translations from Transifex ([15e9313](https://github.com/nextcloud/contacts/commit/15e9313d6dec1dd53cbd535e6f2ecd0c4ec6ceaf))\n* **l10n:** Update translations from Transifex ([ad1890b](https://github.com/nextcloud/contacts/commit/ad1890bc8fc0747a68b71c03bb235cde7f689ff0))\n* **l10n:** Update translations from Transifex ([b83a356](https://github.com/nextcloud/contacts/commit/b83a356a106f44ed959d332fbb9ed43185f5131d))\n* **l10n:** Update translations from Transifex ([b46db45](https://github.com/nextcloud/contacts/commit/b46db45d690da3a4d2c2a8945870e1b5367038fb))\n* **l10n:** Update translations from Transifex ([9d34e54](https://github.com/nextcloud/contacts/commit/9d34e549b804c374d5499c7c28d75268a3601a2d))\n* **l10n:** Update translations from Transifex ([3cf84c8](https://github.com/nextcloud/contacts/commit/3cf84c839fb5940a5b2dff302194dd0ba059fea2))\n* **l10n:** Update translations from Transifex ([d07b1d7](https://github.com/nextcloud/contacts/commit/d07b1d75541925bccb9afc9109a42013d3d4a1be))\n* **l10n:** Update translations from Transifex ([27d4b89](https://github.com/nextcloud/contacts/commit/27d4b896cde01a140164c2422d91355b9bae14e4))\n* **l10n:** Update translations from Transifex ([fc4496b](https://github.com/nextcloud/contacts/commit/fc4496b8c60958c05d7864ec149ca02d4f80c364))\n* **l10n:** Update translations from Transifex ([8dfe46a](https://github.com/nextcloud/contacts/commit/8dfe46a9a6fbd5d3fdf0c2258600f60f786ca662))\n* **l10n:** Update translations from Transifex ([ee1aeec](https://github.com/nextcloud/contacts/commit/ee1aeecc939466b0dd220478dcc3cb8d261a0370))\n* **l10n:** Update translations from Transifex ([96671b8](https://github.com/nextcloud/contacts/commit/96671b806471452c6b027ab63581e0baea613187))\n* **l10n:** Update translations from Transifex ([b66788d](https://github.com/nextcloud/contacts/commit/b66788d6fbf72e8ed03345c403f4dd641bc31d6b))\n* **l10n:** Update translations from Transifex ([2012c28](https://github.com/nextcloud/contacts/commit/2012c28591f201c9af68e06ac2328c79a4808b4f))\n* **l10n:** Update translations from Transifex ([713c7cf](https://github.com/nextcloud/contacts/commit/713c7cfbe7b91833c14d3e761b3d93d31f29abf2))\n* **l10n:** Update translations from Transifex ([1a818fb](https://github.com/nextcloud/contacts/commit/1a818fb75cbcea8104465b6db80af95f79f6610c))\n* **l10n:** Update translations from Transifex ([5370c2e](https://github.com/nextcloud/contacts/commit/5370c2e0aedd9ee878f9d3fca1962d3c4971a324))\n* **l10n:** Update translations from Transifex ([e9b4fbd](https://github.com/nextcloud/contacts/commit/e9b4fbd6b14dd97e3807980cdaa94d145eb5244d))\n* **l10n:** Update translations from Transifex ([a85efeb](https://github.com/nextcloud/contacts/commit/a85efeba20acc58b19e68f7fd6b3b52a5a320c15))\n* **l10n:** Update translations from Transifex ([19fb787](https://github.com/nextcloud/contacts/commit/19fb787dd14ccbf58b8c6f72df315abe6bcbf58a))\n* **l10n:** Update translations from Transifex ([4f47f6c](https://github.com/nextcloud/contacts/commit/4f47f6c75bb03a3add5b44d2d990844de8667b2f))\n* **l10n:** Update translations from Transifex ([ddf4a49](https://github.com/nextcloud/contacts/commit/ddf4a49d450e636c699feaec711585dfd3b473a5))\n* **l10n:** Update translations from Transifex ([d22489b](https://github.com/nextcloud/contacts/commit/d22489ba3f5c2c75a240a127cf2e0839bd6ab21f))\n* **l10n:** Update translations from Transifex ([e8fce52](https://github.com/nextcloud/contacts/commit/e8fce529bb07a164fcc0aac44d59ecd86a6d06ea))\n* **l10n:** Update translations from Transifex ([f011570](https://github.com/nextcloud/contacts/commit/f011570c84202ace2d59b56b24bcf66d369f026c))\n* **l10n:** Update translations from Transifex ([63b3872](https://github.com/nextcloud/contacts/commit/63b38724039d53fa756775d8510d05e8a02e34dd))\n* **l10n:** Update translations from Transifex ([a54c58a](https://github.com/nextcloud/contacts/commit/a54c58a47fd731b9be7029412eba159b392e70af))\n* **l10n:** Update translations from Transifex ([7eb5d0f](https://github.com/nextcloud/contacts/commit/7eb5d0fecbe50b842d3865a7e106c4edf1d9ca02))\n* **l10n:** Update translations from Transifex ([7ac5bf6](https://github.com/nextcloud/contacts/commit/7ac5bf60a30126b8fc3d7a6c506a8f6f5ae776ef))\n* **l10n:** Update translations from Transifex ([ddba290](https://github.com/nextcloud/contacts/commit/ddba290f786e1ee6f5ba05e1640640e6eb9a6788))\n* **l10n:** Update translations from Transifex ([c7c67da](https://github.com/nextcloud/contacts/commit/c7c67da0066e575762e080f52770bcaacac5b1f0))\n* **l10n:** Update translations from Transifex ([0d4f95e](https://github.com/nextcloud/contacts/commit/0d4f95eee3fc442337ca20e58ed510a00857044e))\n* **l10n:** Update translations from Transifex ([10d4cfe](https://github.com/nextcloud/contacts/commit/10d4cfedbcc506b481dc8abc95ac7567cfc33bb4))\n* **l10n:** Update translations from Transifex ([aec6949](https://github.com/nextcloud/contacts/commit/aec69496d7b18e9420a717c8838d61c72266f963))\n* **l10n:** Update translations from Transifex ([a0a2fb8](https://github.com/nextcloud/contacts/commit/a0a2fb88503df7bfa9c66ee32a4a0300986fd4b6))\n* **l10n:** Update translations from Transifex ([5bb2d43](https://github.com/nextcloud/contacts/commit/5bb2d4365720b62318f0c6d5c56fcdf226f7ce36))\n* **l10n:** Update translations from Transifex ([081a6b0](https://github.com/nextcloud/contacts/commit/081a6b0f491c717f1fa7c63aa4aeb6718ce639fa))\n* **l10n:** Update translations from Transifex ([a113351](https://github.com/nextcloud/contacts/commit/a11335125599bb17eba8ed97eb02454907b4e5ac))\n* **l10n:** Update translations from Transifex ([fa6b898](https://github.com/nextcloud/contacts/commit/fa6b898bd904c0a8450fb9543ebba0eeb90cd6a3))\n* **l10n:** Update translations from Transifex ([4ad2703](https://github.com/nextcloud/contacts/commit/4ad2703ad9e61176590c35e3fb707d5fe537e9d4))\n* **l10n:** Update translations from Transifex ([0e9ae91](https://github.com/nextcloud/contacts/commit/0e9ae915bc5909b0b8b5fb9926861472115c8bb9))\n* **l10n:** Update translations from Transifex ([543b6bf](https://github.com/nextcloud/contacts/commit/543b6bf76d9ccdeafd7a53a41aff386f89403b5e))\n* **l10n:** Update translations from Transifex ([48e50db](https://github.com/nextcloud/contacts/commit/48e50dbe528232192d500c4495f8dceb8a63bbcf))\n* **l10n:** Update translations from Transifex ([33a5d99](https://github.com/nextcloud/contacts/commit/33a5d99441b6743a04ca82da8fd4fc4c856d7685))\n* **l10n:** Update translations from Transifex ([3ead8eb](https://github.com/nextcloud/contacts/commit/3ead8eb8b5cb2d696f83bd9ed9e918d3ab83f343))\n* **l10n:** Update translations from Transifex ([43115c2](https://github.com/nextcloud/contacts/commit/43115c268be30e3d6d6af268988e49d4814f3a35))\n* **l10n:** Update translations from Transifex ([76b2e72](https://github.com/nextcloud/contacts/commit/76b2e720c68bca2879c0b795b36bb53141c098a5))\n* **l10n:** Update translations from Transifex ([caab18e](https://github.com/nextcloud/contacts/commit/caab18ee063ba3534b78f0f08b460a0966f59376))\n* **l10n:** Update translations from Transifex ([13b69e7](https://github.com/nextcloud/contacts/commit/13b69e7b3c2c3d3becd3f6f6209c642ef73f7be1))\n* **l10n:** Update translations from Transifex ([a7b347e](https://github.com/nextcloud/contacts/commit/a7b347eb9b30581e387ec3740d74b1b1e21575d1))\n* **l10n:** Update translations from Transifex ([852739b](https://github.com/nextcloud/contacts/commit/852739bb389e44d1a369f37e7950878eba658733))\n* **l10n:** Update translations from Transifex ([cf5ae3e](https://github.com/nextcloud/contacts/commit/cf5ae3e476dad72bdab8bfdb87f8452e198c6d21))\n* **l10n:** Update translations from Transifex ([0714ac0](https://github.com/nextcloud/contacts/commit/0714ac049c8e272c33c2544451fa1569d20a7e54))\n* **l10n:** Update translations from Transifex ([1d4ae6e](https://github.com/nextcloud/contacts/commit/1d4ae6edca44802e43d148548765c89ffd32b1ec))\n* **l10n:** Update translations from Transifex ([9456773](https://github.com/nextcloud/contacts/commit/9456773f28636b6dc22680c89dcabd76755ed490))\n* **l10n:** Update translations from Transifex ([7260513](https://github.com/nextcloud/contacts/commit/7260513c8b72cf0e76cc162e3a8360bcad27008a))\n* **l10n:** Update translations from Transifex ([5dbac3d](https://github.com/nextcloud/contacts/commit/5dbac3d0778f1fb1fc56f9a5f1a90cef4af812fb))\n* lint error ([90fcf1c](https://github.com/nextcloud/contacts/commit/90fcf1cf3f87f9dc4a896d0339b7ed9324519a61))\n* **lint-php-cs:** use minimum available php version ([650eebf](https://github.com/nextcloud/contacts/commit/650eebf91854dc8b671120b176023bb4b81cf500))\n* log error while saving contact ([d3ac0ed](https://github.com/nextcloud/contacts/commit/d3ac0ed9f6f633a6857bfc261a7c283673004d09))\n* long contact name overlapping with other content ([1db37fb](https://github.com/nextcloud/contacts/commit/1db37fb0e3a51d9dd046be576723f2ed9891659e))\n* Make circle members visible again by moving them out of the modal ([f25e5d1](https://github.com/nextcloud/contacts/commit/f25e5d13271346d13b76a40c4418b095d6e2eab2))\n* make property labels accessible ([f5a66f7](https://github.com/nextcloud/contacts/commit/f5a66f78a26c7d7bd9e9e2c6dd4cb2f62c22569d))\n* **MemberList:** Don't use VirtualList for listing members ([3bf8e6c](https://github.com/nextcloud/contacts/commit/3bf8e6c797fddcc836ef5a8dbfb81373185d7ddb)), closes [#3996](https://github.com/nextcloud/contacts/issues/3996)\n* **MembersListItem:** Adjustments to ListItemIcon properties ([5bb226f](https://github.com/nextcloud/contacts/commit/5bb226f36aa538f98424341b7b5fa8129d277c20))\n* **Members:** Rename 'Contact groups' to 'groups' ([2d98c29](https://github.com/nextcloud/contacts/commit/2d98c296f8da282f340b4afaed157ae25f6fde49)), closes [#3607](https://github.com/nextcloud/contacts/issues/3607)\n* **Merging:** bdays weren't working and misalignments ([fc2895f](https://github.com/nextcloud/contacts/commit/fc2895fb155a79c6a9b7c09fffd7d3dff252c82b))\n* missing getLocale import ([968cc6c](https://github.com/nextcloud/contacts/commit/968cc6c1caf1a23b496d4f583b235e6c9710724c))\n* **navigation:** derive OCM invites active state from the route ([3948583](https://github.com/nextcloud/contacts/commit/3948583b568251203e1eabbfb939152e0bc7eb12))\n* omit year for birthdays ([3b9cf5f](https://github.com/nextcloud/contacts/commit/3b9cf5f1f06034c46294cf30d8ea4b69284171ba))\n* **org-charts:** add missing logger import ([be7b2cf](https://github.com/nextcloud/contacts/commit/be7b2cf8b40640b675a80a0cedf394c4a770af66))\n* **orgchart:** revive node highlighting ([5f2f6d7](https://github.com/nextcloud/contacts/commit/5f2f6d7132db865035e5779786b44f83b88e0fab))\n* pre fetch note field to enable searching ([fea656e](https://github.com/nextcloud/contacts/commit/fea656eb7eaec827645457737750323f820138e4))\n* **PropertyDateTime:** date formatting ([25ba4c8](https://github.com/nextcloud/contacts/commit/25ba4c8f35c1ec99e52c8c27d20b201bd1a46027))\n* **PropertyRev:** make text have accessible contrast ([c219f8e](https://github.com/nextcloud/contacts/commit/c219f8ef2e567b7e786bb83332a3230e0b61a4f0))\n* **PropertyText,PropertyMultipleText:** make readonly inputs p for proper wrapping and a11y ([9a1ae13](https://github.com/nextcloud/contacts/commit/9a1ae13f6f7087a78016085e75b2e245195e1774))\n* **PropertyText:** textarea auto resizing ([5c6a510](https://github.com/nextcloud/contacts/commit/5c6a510181010a46df3e708c900992ab1369804e))\n* **PropertyTitle:** fix property undefined ([06d43e5](https://github.com/nextcloud/contacts/commit/06d43e5c70e15f80ae514d7b027c3175f00d756d))\n* **proprety-text:** only resize text area when the ref is defined ([6a067eb](https://github.com/nextcloud/contacts/commit/6a067ebf3660a2d00ae63d1b4f8e87229f541d57))\n* **ReadOnlyContactDetails:** match by all email addresses for a contact ([c3c09b5](https://github.com/nextcloud/contacts/commit/c3c09b5ea98608b2263a9c3767a03858423595f3))\n* **ReadOnlyContactDetails:** remove box shadow ([87be2f4](https://github.com/nextcloud/contacts/commit/87be2f4e772d9008fd77a872ec8ae7b588f8f435))\n* redesign seetings toggle to Nextcloud 30 style ([3e2e7e3](https://github.com/nextcloud/contacts/commit/3e2e7e37639c5a6a13dd40d2b794a917a387ef9c))\n* reference error in property text ([d0b5100](https://github.com/nextcloud/contacts/commit/d0b5100d4c8b057b815ff1dedd13bb37a0e5325d))\n* **release:** Fix wget output option ([75c3b5b](https://github.com/nextcloud/contacts/commit/75c3b5b94038ebd87d9cb583a2f94a93d01a3b17))\n* remove app-content-details from global styling ([12707c4](https://github.com/nextcloud/contacts/commit/12707c44de901e44950cb37df6cc3fd1f1f17303))\n* remove console log ([4f17fdc](https://github.com/nextcloud/contacts/commit/4f17fdcd68c47074d3327e8dfaf1c23c52fc1c07))\n* remove create deck board button ([7dcd480](https://github.com/nextcloud/contacts/commit/7dcd480edfb821b4d3d57656588c08ea5b33da75))\n* remove loading contacts-index style ([eca822f](https://github.com/nextcloud/contacts/commit/eca822f6850254d7122b7588c572c101d6e11fd8))\n* remove prop mutation ([cec394e](https://github.com/nextcloud/contacts/commit/cec394e8e6b9d4fab324d0a63b94ba768928af3f))\n* remove redundant check ([561922f](https://github.com/nextcloud/contacts/commit/561922f3fd6d02a00135367d317c732fcdfa7ee6))\n* remove skype and add whatsapp and discord ([e8d4765](https://github.com/nextcloud/contacts/commit/e8d4765a04b83d94b819dd563ec554336c9c4290))\n* remove unused style ([2f0282a](https://github.com/nextcloud/contacts/commit/2f0282a354dad9b49165eb635337f9b9cd7960e3))\n* removed references to v-tooltip directive ([ca28803](https://github.com/nextcloud/contacts/commit/ca2880357588c294b047d5f857009a971f04f1a3))\n* rename circle to team for clarity ([5e2f8b7](https://github.com/nextcloud/contacts/commit/5e2f8b76ba4a901ce8186dccddc8634752d13eee))\n* rename feature circles to feature teams ([ebfe7fe](https://github.com/nextcloud/contacts/commit/ebfe7fe5fbb339fa8887fd18de2c66c3e2c4bb6b))\n* rendering of phone numbers ([fba5432](https://github.com/nextcloud/contacts/commit/fba54325dff0a6d7ebc235de14d67de55eefe930)), closes [/github.com/nextcloud/contacts/pull/1393#issuecomment-570945735](https://github.com//github.com/nextcloud/contacts/pull/1393/issues/issuecomment-570945735)\n* resource url ([35ea754](https://github.com/nextcloud/contacts/commit/35ea754c9a23549c0218b8716404873173d46e64))\n* respect advanced group sharing settings in frontend ([5450606](https://github.com/nextcloud/contacts/commit/5450606f4832da9e0c60168f827d287423832dfd))\n* responsivness for contacts details ([71d3bc9](https://github.com/nextcloud/contacts/commit/71d3bc972b102e43fde5495420928eaf68d04e11))\n* restore breaking changes of OCA.Contacts.mountContactDetails ([84233f8](https://github.com/nextcloud/contacts/commit/84233f85a1cea696eca05fcc55b6bc184505337c))\n* rev timestamp on contact update ([6a0bb38](https://github.com/nextcloud/contacts/commit/6a0bb38a05be95c8f4ecfd317bf1b92711015f6b))\n* Revert \"feat: add cancel button for contact editing\" ([1e7c21a](https://github.com/nextcloud/contacts/commit/1e7c21a51beecd2e63215864343d7eaf109425e7))\n* **router:** redirect profile details view to internal contacts list ([059c1b4](https://github.com/nextcloud/contacts/commit/059c1b4a5a8b1ca92410b335cec0bbdaac3d7ff3))\n* **router:** refactor the generating of a contact key ([812eeb7](https://github.com/nextcloud/contacts/commit/812eeb75160c523eba9cd254c52a314d3e51c5bc))\n* **routes:** navigation and not founnd ([1dc4d62](https://github.com/nextcloud/contacts/commit/1dc4d62769f5a83ca20757cc7a75801e649374d0))\n* routing based on base64 encoding ([37f4b12](https://github.com/nextcloud/contacts/commit/37f4b1256d65cdd4234f8d4041e36d00700db1f6))\n* **Routing:** add proper routing for circles ([a0a80c9](https://github.com/nextcloud/contacts/commit/a0a80c9f11cd8fb934699ffd92ac9d822e115eaf))\n* scrobbale button in navigation ([195a58e](https://github.com/nextcloud/contacts/commit/195a58e74f8f7ba03888ef15abc12f6630d45c5b))\n* search should have a way to clear contents ([54e8f32](https://github.com/nextcloud/contacts/commit/54e8f32744a9574290bbd5f6510166daa0987d10))\n* **SettingsAddressbook:** prevent sharing an addressbook that has been shared with you ([0baba7a](https://github.com/nextcloud/contacts/commit/0baba7ab6b1ae502df5e41c5ed1d8a674cbf0320))\n* **settings:** clarify settings option for open circle ([0aba545](https://github.com/nextcloud/contacts/commit/0aba5455be6362c1e5e5306a4c71cab34097ec28))\n* **settings:** read social sync initial state as boolean ([2fc4abb](https://github.com/nextcloud/contacts/commit/2fc4abb052f4a58a51fe39d96a51d640a1b7fe13)), closes [#5561](https://github.com/nextcloud/contacts/issues/5561)\n* **SettingsSortContacts:** update it to latest NcSelect ([994ceaf](https://github.com/nextcloud/contacts/commit/994ceafe69752bb0b9a5b29eea50b941408ea5dc))\n* share address books with user groups ([6e87aca](https://github.com/nextcloud/contacts/commit/6e87aca3c4406cebc4b0699a489bd247355c91b3))\n* **sharing:** fix ShareAPI disabled for group list JSON deserialization to array ([97ce69d](https://github.com/nextcloud/contacts/commit/97ce69decfa9aec30c5cc910ccfa258a54d5fc68))\n* show address book in read only mode ([249654f](https://github.com/nextcloud/contacts/commit/249654f2336f6fe723508ba3483b2c8208c978b7))\n* show error on empty group name ([92aa49c](https://github.com/nextcloud/contacts/commit/92aa49c551658384cfd59fece2d3b1635bd0bead))\n* Slot name from title to name for UserBubble ([e4e4939](https://github.com/nextcloud/contacts/commit/e4e4939ee7335f538e500a07a3275cf229580ef3))\n* **socialApi:** add a key-allowlist for setting user config ([14a1c50](https://github.com/nextcloud/contacts/commit/14a1c506c8f849c02927e02b875e377be7d0b1a0))\n* **socialApi:** check avatar mimetype againt allow list ([9ac2684](https://github.com/nextcloud/contacts/commit/9ac26847eff549cae7153a97b7b906538bc25388))\n* **SocialApi:** Ensure the address book permissions are sufficent before doing update ([be156c8](https://github.com/nextcloud/contacts/commit/be156c84cd6c20a8afe67c260733de5ff200968a))\n* **SocialApi:** Respect global social media settings ([c6e6662](https://github.com/nextcloud/contacts/commit/c6e6662659db4f0051f4908ff8ca0d2c70a8e70c))\n* **socialavatar:** Match base class argument name ([b0abe36](https://github.com/nextcloud/contacts/commit/b0abe36e461da17a550f119b4a11c18e7a6c290e))\n* **socialavatars:** Fix HTTP client usage ([687ab6b](https://github.com/nextcloud/contacts/commit/687ab6b81d61d6a8cfa278d01f491df21ed6eb03))\n* specify origin of request when search for users ([aaa9fc5](https://github.com/nextcloud/contacts/commit/aaa9fc586804fa461447599e3a2af229647f251a))\n* **store:** keep new contacts in the sorted index ([04544fd](https://github.com/nextcloud/contacts/commit/04544fd5168c3c138078fb8164505f573720568e))\n* **styleint:** apply rtl fixes ([8590f5a](https://github.com/nextcloud/contacts/commit/8590f5ae40b1fbc47e09d818c05d0a8c48d7b183))\n* support for RFC 6474 ([b4e205d](https://github.com/nextcloud/contacts/commit/b4e205d946cec2c88eb4d1541c4295c82223a463))\n* **teams:** allow hiding the shared folder button via app config ([0a0e84f](https://github.com/nextcloud/contacts/commit/0a0e84f6a691f83736f7d92603856fc553f3aed7))\n* **teams:** always use populationInherited for population count and update count on population change ([b59a6f0](https://github.com/nextcloud/contacts/commit/b59a6f010211042d1588ca0be99b900a461dab7e))\n* **teams:** circular Talk previews, border-radius-small for Files previews ([194f057](https://github.com/nextcloud/contacts/commit/194f0579e90dc1e635184e77f980a8de8378023c))\n* **teams:** Make team resources scrollable ([b43c524](https://github.com/nextcloud/contacts/commit/b43c52456390724f7975d3a702c2571dfc9b61f2))\n* **teams:** remove results from remote servers when federation is not enabled for the team ([e15dfc8](https://github.com/nextcloud/contacts/commit/e15dfc83d10e0130afad90a6e96dc4ac34875c33))\n* **teams:** remove results from untrusted remote servers when searching for members to add ([e8f3acb](https://github.com/nextcloud/contacts/commit/e8f3acbe50583488c291449d1762f6313789735f))\n* **teams:** replace 'Team folder' create button with 'Folder' and add notice text ([b37eb3e](https://github.com/nextcloud/contacts/commit/b37eb3e0d90a48e25e7153e4df75107ed6ba5cb5))\n* **teams:** Restore accept/reject requests in new ui ([19fc210](https://github.com/nextcloud/contacts/commit/19fc210198c3303b10a055bad2ba57e7fe43b30c))\n* **teams:** Restore member management in new ui ([4d0bb51](https://github.com/nextcloud/contacts/commit/4d0bb51eb5fc1380a034fd1136c7b0b1ee7cb46a))\n* **teams:** Save team name and description on Save button click ([2e6aa13](https://github.com/nextcloud/contacts/commit/2e6aa13812b5761faa62acbf490a4199be8bf093))\n* **teams:** support federated users search when adding team members ([e2b382f](https://github.com/nextcloud/contacts/commit/e2b382f680cac30067a0b5756ddf3c1e1edd517c))\n* **test:** wrong addressbook key return type ([9886f2e](https://github.com/nextcloud/contacts/commit/9886f2e0b0203b197c651cab5ce4f1b4374825ec))\n* **transifex:** use correct app name ([b0e1bbb](https://github.com/nextcloud/contacts/commit/b0e1bbb8fec3c7865c0ca98ea69d7c7d063a3788))\n* translation for recently contacted not working ([890d97d](https://github.com/nextcloud/contacts/commit/890d97d82aee445f94b8857cabfc30b36b58f29a))\n* **ui:** escape organization/title properties ([3644ed4](https://github.com/nextcloud/contacts/commit/3644ed45c51d4b12a30b74a25b30e62be880f3d1))\n* unify `allowSocialSync` frontend type ([a4fff13](https://github.com/nextcloud/contacts/commit/a4fff138129bb4a5643a15abd19dd814920a6b55))\n* update icon work ([b224e5e](https://github.com/nextcloud/contacts/commit/b224e5eebaf0a3abf9c40f386d18b8b258267237))\n* update store state after addressbook change ([d353697](https://github.com/nextcloud/contacts/commit/d353697331c879dd5551305cc590c21b1e0669ec))\n* use @nextcloud/momentjs for automatic locale detection/import ([044d46f](https://github.com/nextcloud/contacts/commit/044d46f0f4810cfd8ed29870a272b4e7f7d78e11))\n* use built now function instead of manually creating date ([d255c26](https://github.com/nextcloud/contacts/commit/d255c26f0e9ce4e8a2c34d9eb8fe695cd6c8dd16))\n* use correct user avatars ([6c161ca](https://github.com/nextcloud/contacts/commit/6c161ca103b3cac64d0e148b37a3da9aa1598dbd))\n* use untranslated category for grouping contacts ([f7c0c7d](https://github.com/nextcloud/contacts/commit/f7c0c7da2361b0b20d8bce1fda20fde6cffcd350))\n* validate group name ([eb4ea50](https://github.com/nextcloud/contacts/commit/eb4ea50c8dfb49fb7e444427776ae244f24e2510))\n* virtual contacts list scroller logic ([54a3b4e](https://github.com/nextcloud/contacts/commit/54a3b4ea2fce78e4cac7c78eb7bf01850ae30769))\n* wrong address book displayed on details view ([ed71e14](https://github.com/nextcloud/contacts/commit/ed71e149268400e9a2f346c665940fd1c38066e0))\n\n\n### Features\n\n* add agents.md ([6d3b4d8](https://github.com/nextcloud/contacts/commit/6d3b4d81e11cee60b134a3320313c5d56715ef45))\n* add anniversary, change title ([ca8dfca](https://github.com/nextcloud/contacts/commit/ca8dfca03063db9ec5cd03395fb5cfbbee3bca8e))\n* add cancel button for contact editing ([a2d4b5e](https://github.com/nextcloud/contacts/commit/a2d4b5e36a565ebc51e60f715569950f1bd4953b))\n* add support for avif contact avatars ([62f3060](https://github.com/nextcloud/contacts/commit/62f30602961bd8178cff9247fce2792b7629df56))\n* add support for nextcloud 32 ([a67d356](https://github.com/nextcloud/contacts/commit/a67d35685c10202c2da56a8fa9e9ed5ff1a84136))\n* add support for webp contact avatars ([e41a2e1](https://github.com/nextcloud/contacts/commit/e41a2e1cd347eb6e417ae508aafd7021f1b56920))\n* adds button to copy values ([8a6360b](https://github.com/nextcloud/contacts/commit/8a6360be51e1fb88b69ffe766120c52afbfbfd31))\n* adds edit profile button on own contact ([d3e8baa](https://github.com/nextcloud/contacts/commit/d3e8baae0ca2123674f308d5e41d851467d6f26c))\n* Centralize avatar with header ([1f030be](https://github.com/nextcloud/contacts/commit/1f030be850b59de2b1286c21afc4c7bfbb41c8f2))\n* **circle-details:** allow setting avatar image for circle ([6b7dea6](https://github.com/nextcloud/contacts/commit/6b7dea6dacd3c428bb11402252be4122d486f777))\n* **circles:** sort by initiator level and change icons ([143edd6](https://github.com/nextcloud/contacts/commit/143edd6c00b644706574ede20b669f613de62910))\n* **ContactsList:** add contact merging action ([025472c](https://github.com/nextcloud/contacts/commit/025472cafe72605d5a511e6a06370dffaf0181ac))\n* **ContactsList:** add multiaction for batch adding to group and changing addressbook ([6884678](https://github.com/nextcloud/contacts/commit/6884678784c537ce16a9861a5185df6019ef4a76))\n* **ContactsList:** add multiselect action and batch deleting ([d1215ad](https://github.com/nextcloud/contacts/commit/d1215ad7e61d39d52a9a64338bbb7f35cd622ff2))\n* **ContactsList:** add multiselect action and batch deleting ([e1639fd](https://github.com/nextcloud/contacts/commit/e1639fdbc258edc12371442e99b6ca5572d8b994))\n* **contacts:** Show address book description if provided ([69d14aa](https://github.com/nextcloud/contacts/commit/69d14aa496563295886b0ab5b828dc9a24dd3106))\n* create a readonly contactdetails ([b5458b1](https://github.com/nextcloud/contacts/commit/b5458b1caa4c7e18df8a5a359e72fafe359092df))\n* create and add guests to teams ([0d9d1e1](https://github.com/nextcloud/contacts/commit/0d9d1e14ddaaf980ae0bfc27a1c577016bd8d15b))\n* **deps:** Add Nextcloud 29 support ([cd6b367](https://github.com/nextcloud/contacts/commit/cd6b367783e6b98539420139e1fb8272eddd1ecb))\n* **deps:** Add nextcloud 30 support ([425a906](https://github.com/nextcloud/contacts/commit/425a906c101027f489af607b78b4ed35fb86ac5e))\n* **deps:** Add Nextcloud 31 support ([166c6ff](https://github.com/nextcloud/contacts/commit/166c6fffff1b33029506d9f61130fd6847a82752))\n* **deps:** Add Nextcloud 32 support ([2605739](https://github.com/nextcloud/contacts/commit/2605739e39b836ceca6fcad0dce947232c6325fe))\n* **deps:** Add Nextcloud 33 support ([012be7c](https://github.com/nextcloud/contacts/commit/012be7ce30756565bb30bd5f4fad59cddf4129e6))\n* **deps:** Add Nextcloud 34 support ([cafae75](https://github.com/nextcloud/contacts/commit/cafae7533fc79dddedb2729afa63196312c10864))\n* **deps:** Add Nextcloud 35 support ([28b14cd](https://github.com/nextcloud/contacts/commit/28b14cdc74bcdac4abaeb6e589848cb4328a3b31))\n* disable save button on unvalid email address ([896f3a6](https://github.com/nextcloud/contacts/commit/896f3a6b472d093c190437089115b6bdbf2a681f))\n* Implement team overview page updates ([e947bcc](https://github.com/nextcloud/contacts/commit/e947bccda653851ca999ba980143c1290e162f43))\n* import contacts from files via ocs ([8bb3129](https://github.com/nextcloud/contacts/commit/8bb31298a5fc092ff7202a1d48bf8f987687fd6e))\n* improve group adding ([ed0e80e](https://github.com/nextcloud/contacts/commit/ed0e80e91fc16c5d8133c4474d10a33e31d7089b))\n* Improve team details ([870efdb](https://github.com/nextcloud/contacts/commit/870efdb68befa9dd11f3c397c8493d8fe1efa9e6))\n* **MemberList:** implement lazy loading ([4255092](https://github.com/nextcloud/contacts/commit/4255092f982abfa32076b32c18f1d47df86467be))\n* migrate app to Vue 3 ([6f3deff](https://github.com/nextcloud/contacts/commit/6f3deff747a307745d620646683724d6a1ee1389))\n* **navigation:** restore address book navigation in sidebar ([11e6a7b](https://github.com/nextcloud/contacts/commit/11e6a7bf1dcc8ad9c4c74a2e81b94dff161a8e12)), closes [#3647](https://github.com/nextcloud/contacts/issues/3647)\n* **OCM-Invites:** Implement exchanging cloud IDs through OCM invitation workflow ([88f0747](https://github.com/nextcloud/contacts/commit/88f07475288437ebcbdc392a7c2e112cc295d8c3))\n* **PropertyGroups:** sort groups alphabetically ([0ab7fea](https://github.com/nextcloud/contacts/commit/0ab7feab20ba46a8af2cc257ee0054d164edf396))\n* Rebrand circles to teams in the frontend ([45b7dca](https://github.com/nextcloud/contacts/commit/45b7dcadcf61d28f52c8252164f6f7b991eeb8d7))\n* removed teams UI ([d91b271](https://github.com/nextcloud/contacts/commit/d91b271e3b8b6adad7f24b5003def205a163ade4))\n* rename and delete groups ([88d9e72](https://github.com/nextcloud/contacts/commit/88d9e72ed1b7664cdc7965abcb4a4209a34f62e6))\n* **rfcProps:** make notes a default prop ([280dd19](https://github.com/nextcloud/contacts/commit/280dd19168c5d80891c92cac855fe9884c356604))\n* **RootNavigation:** fill active icons ([dde3215](https://github.com/nextcloud/contacts/commit/dde321589e9fb2488bdaa9cbce13f9326d686539))\n* show a user's groups as teams ([16b6be5](https://github.com/nextcloud/contacts/commit/16b6be57269a206cb3fdeaa90cea83cd2f131934))\n* show loading icon when deleting or renaming groups ([0f43086](https://github.com/nextcloud/contacts/commit/0f43086c251a3a0986e50146d7398745bc999d7e))\n* sort addressbooks ([3330dff](https://github.com/nextcloud/contacts/commit/3330dffc63dc467c93399c887570c2d2a8597a89))\n* sort favorite contact first in list ([bf76118](https://github.com/nextcloud/contacts/commit/bf7611805aa8082eaf1300dfd6e8ecf4d95bec54))\n* **TeamMemberList:** Merge indivual and team members into grid ([7e6109e](https://github.com/nextcloud/contacts/commit/7e6109e1628a8aca09804ebffb5faf8653473080))\n* **teams:** add confirmation popup when enabling federation for a team ([ae073ee](https://github.com/nextcloud/contacts/commit/ae073ee2da5bfaa2cca5119b421da66a7b9d806d))\n* **teams:** add swtich to enable/disable federation on team settings ([3fa979c](https://github.com/nextcloud/contacts/commit/3fa979cfb2aae36bdd4e91d55619ac374627500a))\n* **teams:** gate the team management UI on the server version ([9ff433f](https://github.com/nextcloud/contacts/commit/9ff433fa555466eec2ff6d30a56345d6be903c52))\n* **teams:** Implement quick create for team resources ([81ef1b4](https://github.com/nextcloud/contacts/commit/81ef1b426bfa94b9dc69189be272930272d93762))\n* **teams:** Member roles in list & responsive ui ([a83142e](https://github.com/nextcloud/contacts/commit/a83142ed5c3a514bf727ba665a63ab8265eb5c09))\n* using the company name in the subtitle of the main contacts list ([a4807b0](https://github.com/nextcloud/contacts/commit/a4807b0cda02261ab8f4a6815dc880e84ffab17a))\n* validate contact email ([c19fac5](https://github.com/nextcloud/contacts/commit/c19fac5277bf444ce127b70fbad80f7f255dc3eb))\n\n\n### Performance Improvements\n\n* **chart:** lazy load the org chart view ([b444ee3](https://github.com/nextcloud/contacts/commit/b444ee3cfab7f3b0e97da3df5f6892e4a5c69d35))\n* **contacts:** avoid pulling all of lodash and qreator into the main bundle ([b9fdb6f](https://github.com/nextcloud/contacts/commit/b9fdb6f77bbe0d54bfc2bdc3569ecc160d571606))\n* Don't fetch full group information ([31ea945](https://github.com/nextcloud/contacts/commit/31ea945799d41aecfb23a529040ee454d092e99a))\n* migrate to vite ([5a2d57d](https://github.com/nextcloud/contacts/commit/5a2d57de2c265d29d1178e9aa828c5ed0d21e6d6))\n\n\n### Reverts\n\n* Revert \"chore(deps-dev): bump vite from 5.4.19 to 6.3.4\" ([05557dd](https://github.com/nextcloud/contacts/commit/05557ddc7927c2cfec69b189f1e50232cdb3e6cd))\n* Revert \"style(ContactsListItem): fix subtitle\" ([1c1b865](https://github.com/nextcloud/contacts/commit/1c1b865272d27c0db23aed779a778b3c70ebba73))\n* bring back the team management UI ([1889729](https://github.com/nextcloud/contacts/commit/18897295b5210a259ccdd91d296747524627c48c))\n\n\n\n# [5.3.0-beta2](https://github.com/nextcloud/contacts/compare/v5.3.0-beta1...v5.3.0-beta2) (2023-05-12)\n\n\n### Bug Fixes\n\n* **contacts:** display the new avatar on change ([de726e1](https://github.com/nextcloud/contacts/commit/de726e10d6a68907397060627fe1bcd53dca5cb8))\n\n\n\n# [5.3.0-beta1](https://github.com/nextcloud/contacts/compare/v5.3.0-alpha1...v5.3.0-beta1) (2023-05-05)\n\n\n### Bug Fixes\n\n* **contacts:** defer birthday exclusion until contact was loaded ([2e1e139](https://github.com/nextcloud/contacts/commit/2e1e13980542bf53d6178d54ce9d9d23dda7fba2))\n* **contacts:** display name not uri for recent-contacted address book ([6421bd4](https://github.com/nextcloud/contacts/commit/6421bd4499a90bf35ce777641a411f3ee64e43af))\n* **contacts:** remove obsolete warning and fix header alignment ([8ef7e85](https://github.com/nextcloud/contacts/commit/8ef7e854a5f47dc4312e46c1f6446f74a2050866))\n* defer rendering contact import button ([8435aa7](https://github.com/nextcloud/contacts/commit/8435aa7a9efaeec1312fe156eabbcca533c92cbf))\n* disable select component if single option ([836bb9a](https://github.com/nextcloud/contacts/commit/836bb9af1733368baecaf21e42a7e28e40a06301))\n* double scrollbar in details pane ([1f2f0fe](https://github.com/nextcloud/contacts/commit/1f2f0fef17c6312c03eb1da74496b0c8d26302a3))\n* ellipsized \"other social media\" dropdown ([85fde3a](https://github.com/nextcloud/contacts/commit/85fde3a480e7356a84ec819d5a03d74267bf3361))\n* improve design add new Property and change behaviour ([16b93f8](https://github.com/nextcloud/contacts/commit/16b93f8cee1ca48aa8301e70662de9d5587682f3))\n* mime case matching ([fdbd984](https://github.com/nextcloud/contacts/commit/fdbd9849d42aa4441f1374dabff75c143c68dfe4))\n\n\n### Features\n\n* **2464:** exclude contact from birthday calendar ([e9730d6](https://github.com/nextcloud/contacts/commit/e9730d6b425cf30a6345685af9f987b166d4a16c))\n* **contacts:** add add-prop button direct in prop ([9fa3e81](https://github.com/nextcloud/contacts/commit/9fa3e817cd7690b9c7e84a4c5ec61ba17fc7e9cd))\n* **contacts:** adjust header to single column layout ([f348b2e](https://github.com/nextcloud/contacts/commit/f348b2e19c949a916e7b8974ea32e5d5c4add435))\n* **contacts:** implement final design enhancements from mockups ([923d14b](https://github.com/nextcloud/contacts/commit/923d14b652e121b260ebad5cf1dfb9094ea257ba))\n* **contacts:** implement read-only and edit modes ([0972b74](https://github.com/nextcloud/contacts/commit/0972b744116bfa7bd8fcb4ee9dd29c0eda23b872))\n* **contacts:** implement single column layout ([7a7a95e](https://github.com/nextcloud/contacts/commit/7a7a95e4e428f33a7cd4969961832b786806ee42))\n* **deps:** Add Nextcloud 27 support ([dc5ae56](https://github.com/nextcloud/contacts/commit/dc5ae56ce9977c54267788bbf32961f54a4d1ce2))\n* **deps:** Revive PHP7.4 support ([508c5a1](https://github.com/nextcloud/contacts/commit/508c5a151d6b8f8c4443c38c151aa5dc566d2e72))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([3ed7e01](https://github.com/nextcloud/contacts/commit/3ed7e017dbd72ebf6f3171fecfb489043945ff78))\n* **bundles:** migrate nc-vue imports ([69a29d9](https://github.com/nextcloud/contacts/commit/69a29d9203382d0d86cd13e4ec03fc5cf79b205c))\n\n\n### Reverts\n\n* Revert \"Bump vue and vue-template-compiler\" ([75518ea](https://github.com/nextcloud/contacts/commit/75518ea21314884c4d8088f5f46f93410b36d8ba))\n* Revert \"Add manually-triggered branch-off workflow\" ([d1f2ea1](https://github.com/nextcloud/contacts/commit/d1f2ea1925678f8629dc0476139ca92c977f214c))\n\n\n\n# [5.0.0-alpha4](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha3...v5.0.0-alpha4) (2022-09-27)\n\n\n\n# [5.0.0-alpha3](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha2...v5.0.0-alpha3) (2022-09-22)\n\n\n\n# [5.0.0-alpha2](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha1...v5.0.0-alpha2) (2022-09-19)\n\n\n\n# [5.0.0-alpha1](https://github.com/nextcloud/contacts/compare/v4.1.0...v5.0.0-alpha1) (2022-09-16)\n\n\n\n# [4.1.0](https://github.com/nextcloud/contacts/compare/v4.0.1...v4.1.0) (2022-03-22)"}},"signatureDigest":"sha512"},{"version":"8.9.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.9.0-rc.2/contacts-v8.9.0-rc.2.tar.gz","created":"2026-09-10T11:26:32.921316Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-10T11:26:32.980859Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"21bT6DLjwzVCbobY89+4dK1eUDU5p75vt0Hxu+o7WsZk8oGq8o05pmhpqeKOFDykx/7DQRH70mSEfYmBnMEu/ugdpOgiavYwMjthKrhzHNXM4L6MOtaKT3gAwC9GKWzw1o0fHGQbO+PobpFevdhSVgYW55slcC8r6KdY8fP7CLCdaBrIOBfLsAWuFzI0jApy6Wnb+TFR6kT7V0m+dw/ln84YJAaZAeIrhzcnTVRqu02zf7FoZE1lby1olLtbcoMWqOj855MIaO7UaRy5Kz2Ie/ieEQHzVg025eCvDSMVxwTE8v59eN9GNOuAvPufUiPmYJwwGlG7P+eX+PJ9BjBL+fbf2VS0VCnMrrArmCxe6nzdb9vcv8x8oZV7fZVFlmy7Tm3wo0Bxb4jt94IK+m5UtW4KB7FluqKXVfsfcn2Rtt2rd8avA4J396udiiZ7KANxyvoq4XmsCIleueeuwWsnssSN+06bcb9/Tme6KyyzCooOnuftkLTq18SM76QPFbS++0V9FVUQOQST4QUu21Qot4qAthmZ+HcO5IgiAjA8QYIZU21Q+Q00C4Pr/XMkFPNOKFBSdCCocVIip8YB3D6+POc4L3V8KgLviGB7yRat3QwmYsCBAVWXGNDD5Aqxa2/FwSCXLgN85LIpcGo78HfEWfKy3fsHKcMkDnH4kx8Jmk0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.9.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.9.0-rc.1/contacts-v8.9.0-rc.1.tar.gz","created":"2026-09-01T16:04:23.984917Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-01T16:04:24.295653Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"Ld7xiNe0p1UdyJahpieK3GCZCEH4JAf49APkSrZBbw/QnS5kxCBIjE/7CbBT2gIYw6PHDIc8cVTxNDoE/pH9NFKU6YRt0nyvDaJBZXi0v0hcdCgCY0Nrx3532W1kEHTAyFUcAmdmbRrqrlMEYBvdOj3j9G0BVN+wPrxTQG0jT9Fv7so1ZJUJr/tlCsxnKPQ++qUVXuMB1PeDVlLXW68J5YHD9BRd8PyY8PfUx0UX2bJYCYHvNk8hX/JgwY7ZfL5s3UC5JuuQpjZwYehOy8VlvmffTLH+REXTMpeDzVatpm82IoOTEml4+ZI0KaeKP5w46YrEPzDDDPmI4qb9J5+XRqZ+zC9+hNXAmQKCCPJ1cYJrgZw8xqwTJjJ3uExL25gsdveSiXvQLXhC3gVOjwLeWeMbrWl2GVb7QGhK2hhvjmkM/lHDtDQmB6CQDdLmWyB339fFH76dLUNWBFyc/jJlkBWAKyt+ER92aQl41bQh1NfcumguETSi5ZMX2B7BLIJARlO92LMnRl7PPO4mWfnVay4uh6KZJmPjpjWG377xYvV41z9nh9js6EreHPu6IKcqYQituuUgX7ICV5ZF860bKjg2AOL+jk3v1h6vy28KQNRa0mHvk7YNEskpWOjiXMaIO2/IJO/b3SkSJdJ8XV1Qpo7e9Nz+nVZou0NrJGdk2Uw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.9.0/contacts-v8.9.0.tar.gz","created":"2026-09-15T15:01:08.369849Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-15T15:01:08.467797Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=36","signature":"hpOWZmmeA4ZpAWaR3IcTBh9ISzJbjtMllwtgazk2m+cNDPYn+O57u/SqHM7Od2ByBFIH608Yth9y2ZC9gL/hauzU5wFXl7NugCKf/lLKvefkv/bxwN/QnnLkSkZ+nI0Ohez7wzoiDkUaIwC4EI8vba4FBxPjOaRjoGMGVI4INDIcxltQGBvt1E3A1XTGtKDL3Gy6eBMHvAuG7xn4Hwf9u+mNOqWNG16ylWhMYOx8VU8ENViwybMzHHvc0vMy4kQW7zGmnjvytC7D6lVcwiWgBm2s1t9rQT936fo2xL4G4xq3joaVNRRQAs339bvhltWd0t5bussOQgPoH+ycsQ9ptSiyTLV/giM3YZfhJ9ylskRI+dpZaySYoGh4j7+8m2855Fatxy+bF0MLuAnSH0aCAVysNqcsiMN3Oyen+8jWi5X/xLh/rtOg8X4e+jzGhLWUE5vLfiuDo0tsbc5mBpvAw+0x2YzO1WH4BhjZpouoRhT1Gp2XFiHnA4AcDeOIfDoc0+mTGEjoYXNDR8Xn/WIutng3ngOCRedkJRSW6etuTaAXHwL9kAeNB4da+EGWGO+41qF3diI6wRI2HKh7W0+SPqHNth0j87woiE0avJCYqKa4c6egDowHadztkMpoaQDOE567rfcwHKYhdLHkcXTr4/Iqb4uakN5e4WjOre4ftSo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.8.1/contacts-v8.8.1.tar.gz","created":"2026-09-09T14:22:11.714961Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-09T14:22:11.774569Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"vTNLD3LImJPX0n1U9D0/DnBs2bsmOObFqbOv4W5yUU+qkUzXd6YSx5FzTpBBaO8Mq3H+YIif9KaPQsQHsQNE07rQLmtCvmrY9pKmcTfe5d0hpIYk+eWUcbZ/b4wPs7eUm5/g2pgGcQjRU87vJgxJpke/mn91M9rwZltQ4I4ocyc7A58edE6/M/I8UV+nMGmjPNKd58Z/SrrFvaqOmrs/LKmkQ2YaP4i+1NnnGCxGSYX/68eB2alGEeQMTUPIRasrZ6IlFA5JMLYZ1VBpG4yFKwLMHp34g61kaBu33ey1ttLrwQDRoWWkGA9L+2hyofI6Bq8heINFBF5ictda7QwB0UMZJv2DVMNl593mGnZ7/TPq58FIBR6Amgb/tHZ4DIDZPzJL34JcJkv4sdF4l0eWdrZztqpYw6e+l6Rxqv15yLFIpNFcmsB26O7VqTzf0yCstnRe5yNR8VlZRkR611dql8jvYNekbvyKY5qmFF849AQX3J7cBAZOQM09t1eiurUyGmiEqw+gSWz5QQwbB+hKqHMw/xLsFdMtN0OWAUVT+tViIfCiZffwcZi7RGWNG5D7diiq6FmQmZpuWmDj0aZDG1IpvSyarM/7NXT5YFsiIp7r665cMmM0g7JcdUmQhJjJvIM2rPPo2mdFhuNaoGmZ1fiah54Fz/YA75Avdezu63E=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **a11y:** add alt to img ([b340339](https://github.com/nextcloud/contacts/commit/b3403390360912f2614bd7c774e1d8a8c7d8295f))\n* **a11y:** add missing input lables ([fadd6a6](https://github.com/nextcloud/contacts/commit/fadd6a6c5e4ee3900471bef01d0d06f6f796c6e3))\n* **a11y:** add missing link text ([09a2a6e](https://github.com/nextcloud/contacts/commit/09a2a6ec0dc71783acbfe74d70037e9626f227d5))\n* **a11y:** switch contacts settings to a button and preserve styling ([2749128](https://github.com/nextcloud/contacts/commit/27491286f57f75820c2f17e452576213dd3a9529))\n* **a11y:** turn teams description into a list item ([6489048](https://github.com/nextcloud/contacts/commit/648904840c5aadd70217537d6e312a44e1614230))\n* **a11y:** wrap list items in ul ([e8cf793](https://github.com/nextcloud/contacts/commit/e8cf793693bff5be5e79e63b731d8edd6a19fead))\n* add member in circles view instead of trying to add contacts ([0c86b28](https://github.com/nextcloud/contacts/commit/0c86b28fcc5748f88aec841d58e49bcd2e1297b1))\n* add missing await ([23d98bb](https://github.com/nextcloud/contacts/commit/23d98bb62deecf760ada12d98d72621e411bfc85))\n* add missing translations ([ec4c6f9](https://github.com/nextcloud/contacts/commit/ec4c6f969b71415e0600a17cdb0aae0cf0c7268d))\n* addressbook checkbox ([a03ed6f](https://github.com/nextcloud/contacts/commit/a03ed6fa00f7419907eaa1d67ed5487909bf0337))\n* adjust import files action to vue 3 ([6c9275f](https://github.com/nextcloud/contacts/commit/6c9275f231e6c1d134fc13bc21620c37a6d2f25b))\n* adjust spacing and alignment in the contact details view ([75ee842](https://github.com/nextcloud/contacts/commit/75ee842cd90db8c6436c18855090b4319c442f75))\n* Adjust styling of team resource images ([8b65d58](https://github.com/nextcloud/contacts/commit/8b65d581e5ce6ddffa75695f141abda824dd12ce))\n* adjust supported php versions ([3b037ed](https://github.com/nextcloud/contacts/commit/3b037ed8268c9ede778ce0e9d378fcc9882fcbdc))\n* Allow dynamic autoloading for classes added during upgrade ([08e5f9e](https://github.com/nextcloud/contacts/commit/08e5f9e9241c1162b277764d6711823f3b0e7182))\n* allow team owners to transfer ownership ([1e74d78](https://github.com/nextcloud/contacts/commit/1e74d78865c252c2136739b961823f5b161a7d34))\n* always convert vcard photo urls to string ([12bdf42](https://github.com/nextcloud/contacts/commit/12bdf42772b0c7f7dfad1e0815e5179ca4a42925))\n* async return ([137b021](https://github.com/nextcloud/contacts/commit/137b0210d1249da5e3bfd3732d827a3738d38626))\n* **Batch:** incorrect translations import ([547ac22](https://github.com/nextcloud/contacts/commit/547ac228355b60b15fe4eab7f0565e20142a14f9))\n* bring back the team management UI and gate it ([81d6276](https://github.com/nextcloud/contacts/commit/81d627699f205c36d25bb3fad5d4fcc7986185f4))\n* bundle moment.js locale data ([9fb1d09](https://github.com/nextcloud/contacts/commit/9fb1d09b20a6b702da000431b44ededce9a1f35a))\n* center align rows ([f7a43ba](https://github.com/nextcloud/contacts/commit/f7a43bad43bbc526deacf8f40c8c3c08e688b461))\n* centering notice about empty contact ([9055c4e](https://github.com/nextcloud/contacts/commit/9055c4e608051c250af955049c961f0e35b5e027))\n* change wording for creating teams to reduce word overloading ([e3f88e2](https://github.com/nextcloud/contacts/commit/e3f88e2dca5731c6ae96d09f50a8a1bc32803977))\n* change wording from disabled to hidden for addressBooks ([9334525](https://github.com/nextcloud/contacts/commit/93345254e774aef157e7903ce08a31ece58076c6))\n* changing addressbook of contact ([1f94d47](https://github.com/nextcloud/contacts/commit/1f94d472b5c661ca364a7d268f30756fa029af11))\n* check addressbook permissions before importing contacts ([5b2b17a](https://github.com/nextcloud/contacts/commit/5b2b17af165da2a042d2904c295285147fbba8da))\n* check if photo property is set before downloading ([f33c353](https://github.com/nextcloud/contacts/commit/f33c353ce92096a5c715a75a1c4fd8629eed932b))\n* **circle-details:** adjust action buttons on edit mode and cropper dialog ([a5009ed](https://github.com/nextcloud/contacts/commit/a5009ed76d9f2aaf31b6737b0007cc3c36f183cc))\n* **circle-details:** handle avatar only on supported nc versions ([76b825c](https://github.com/nextcloud/contacts/commit/76b825c14fd77d567ffa09f4e4a984bb698be4ef))\n* **circle-details:** implement pringelmann's suggestions and add loading when saving/deleting avatar ([d9c44f1](https://github.com/nextcloud/contacts/commit/d9c44f1e4ce9aed225979fb466b39423c429e75e))\n* **circle-details:** move avatar cropper inside dialog ([c8be982](https://github.com/nextcloud/contacts/commit/c8be982fd2ee530e01cda592beacf8dde25c4b53))\n* **CircleDetails:** Improve calculation of member list ([05be5e3](https://github.com/nextcloud/contacts/commit/05be5e320697d45371c7a91ae07e31196e931830))\n* **CircleDetails:** Use CheckboxRadioSwitch from @nextcloud/vue 9.x.x ([4cff865](https://github.com/nextcloud/contacts/commit/4cff865e744cefd80d4eb56bcb058a3924c31cf1))\n* **CircleNavigationItem:** Rename 'add member' to 'manage team' ([eda53a5](https://github.com/nextcloud/contacts/commit/eda53a564d23bc87d9c5bfd614e5ddc8f7fe4777))\n* **circles:** avoid attempting to fetch protected resources when user is not a member ([d55e6c4](https://github.com/nextcloud/contacts/commit/d55e6c4f5e6de2e5385e54ee40310d22873b469d))\n* **circles:** misaligned member modal headings ([a5ec367](https://github.com/nextcloud/contacts/commit/a5ec3675565a450b5b2da09b5b97714df059d483))\n* **circles:** sort fallback if not member of circle ([05f04df](https://github.com/nextcloud/contacts/commit/05f04df69e9c09d9f4443e11d53601f9d2381d50))\n* clarify addressbook sharing permissions ([0ef19f5](https://github.com/nextcloud/contacts/commit/0ef19f595b284fac90a51699df79f3bd12cfabbc))\n* client integration: correct tooltip format ([8e1f68c](https://github.com/nextcloud/contacts/commit/8e1f68c1dfb0370f1c1eb48e3616cdd671892de5))\n* close menu after selecting an option ([4b18d13](https://github.com/nextcloud/contacts/commit/4b18d132acdfe642c040d80fae95caf841cd6422))\n* **collaborationAutocompletion:** replace legacy SHARE_TYPE_USER with ShareType.User ([00aa4e4](https://github.com/nextcloud/contacts/commit/00aa4e471cbd54935ba3db682be117e302bfb215))\n* **contact:** Add normalized phone numbers to searchData ([af289b6](https://github.com/nextcloud/contacts/commit/af289b667ddac7d28112bab9ff5fe1b70345a397))\n* **ContactDetailsAvatar:** border radius cropping too much ([93d850e](https://github.com/nextcloud/contacts/commit/93d850e89a0e121916f071dfc41970cd13c985b0))\n* **ContactDetailsProperty:** query selector causing errors ([74d468c](https://github.com/nextcloud/contacts/commit/74d468ce8a63683d95998fbf40b24f53dd4277ba))\n* **ContactDetails:** wrong box shadow on inputs ([1643248](https://github.com/nextcloud/contacts/commit/1643248b2158f695de0723115a9c99eb2907dd01))\n* **contact:** don't add metadata properties and property names to searchData ([4cb4b50](https://github.com/nextcloud/contacts/commit/4cb4b50e6a76997d2b49fc752697b48e617ab753)), closes [#1176](https://github.com/nextcloud/contacts/issues/1176)\n* **contact:** include phone numbers when getting contacts for address book ([00139b6](https://github.com/nextcloud/contacts/commit/00139b6c9a122a6eac4eea21386a0715d68a761b)), closes [#3112](https://github.com/nextcloud/contacts/issues/3112)\n* **contacts:** add confirmation dialog when leaving a team ([0e8fd86](https://github.com/nextcloud/contacts/commit/0e8fd868ad2d740089fb6599b121bc662bfd5d49)), closes [#4458](https://github.com/nextcloud/contacts/issues/4458)\n* **contacts:** add instant messaging field with default type ([8f79c34](https://github.com/nextcloud/contacts/commit/8f79c34f99e8ed9a92aabece3aa0329b5185f9e0))\n* **contactsDetails:** remove inaccessible code ([7375f02](https://github.com/nextcloud/contacts/commit/7375f023622dc3e44ed4f578095c3d303704c193))\n* **Contacts:** dom serialization ([96fa23c](https://github.com/nextcloud/contacts/commit/96fa23c649491c0c032a087c93d8acf200973b81))\n* **contacts:** handle line manager property creation ([7328c5c](https://github.com/nextcloud/contacts/commit/7328c5c6910ad6709cb4cdaf28ef7423196e788a)), closes [nextcloud/contacts#4454](https://github.com/nextcloud/contacts/issues/4454)\n* **contacts:** label app content regions ([edaed5b](https://github.com/nextcloud/contacts/commit/edaed5ba4391ac760fe1166ca552cc58e1579ad5)), closes [nextcloud/contacts#5046](https://github.com/nextcloud/contacts/issues/5046)\n* **ContactsList:** don't choke when filtering for `+` ([5cb0d6d](https://github.com/nextcloud/contacts/commit/5cb0d6d4c8fe56f107195906f0bee8982f6d2f3e))\n* **ContactsList:** make scrolling on mobile work again ([9ef361b](https://github.com/nextcloud/contacts/commit/9ef361be9ad6d146d3ea9517c3175993b90ad2aa))\n* **ContactsList:** not being visible on small screens ([5d0341e](https://github.com/nextcloud/contacts/commit/5d0341eda87150c69655db892b2c76a859505ff4))\n* **contacts:** split up detailed-name again to fix vCard ([501b990](https://github.com/nextcloud/contacts/commit/501b9905abdf55f45f3d67b72680c2cf6918b13c))\n* convert pre-commit to common js ([afd5a5a](https://github.com/nextcloud/contacts/commit/afd5a5a0600e0bfb9836e137105e3ede8cd7d749))\n* convert pre-commit.js to ES module ([6f06719](https://github.com/nextcloud/contacts/commit/6f06719e8b7740ca16b901b8fc0d9af8d993b462))\n* **copy:** Hide not copyable addressbooks in copy select ([b588aac](https://github.com/nextcloud/contacts/commit/b588aac99118e649c02abb3ac0cd1dc5e7ac3468))\n* **declarative-ui:** rename to client_integration ([70f9712](https://github.com/nextcloud/contacts/commit/70f97120bea241e80c92873c2dea1d71884537ee))\n* Decode HTML entities in team display names ([c16083a](https://github.com/nextcloud/contacts/commit/c16083a636ae13438963d9501206d51e12746605))\n* **deletion:** leave the route of a deleted contact ([dec88ee](https://github.com/nextcloud/contacts/commit/dec88ee03da91af642739321a67b166bb7d7b6b2))\n* **deps:** add missing picomatch@4.0.3 to lock file ([1d598e2](https://github.com/nextcloud/contacts/commit/1d598e29ba320527c7d9e12f213a61db4db11117))\n* **deps:** add missing picomatch@4.0.3 to lock file again ([216aa4d](https://github.com/nextcloud/contacts/commit/216aa4dd41af367311c68ad3feb541c7a337de1b))\n* **deps:** bump @mattkrick/sanitize-svg from 0.4.0 to ^0.4.1 ([deaa81b](https://github.com/nextcloud/contacts/commit/deaa81bf7bf4af95b129f8d2513c9456642cbaa4))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([ef072de](https://github.com/nextcloud/contacts/commit/ef072deebc3b057a9dd43466ec88c90df96a5b89))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 ([a8a5745](https://github.com/nextcloud/contacts/commit/a8a5745466fe08af7abe7412fb1eaf97ca5aa746))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 ([7f02252](https://github.com/nextcloud/contacts/commit/7f022525ae2acdbd83f732f9842dcb8172e8714c))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([7406cb7](https://github.com/nextcloud/contacts/commit/7406cb709edbd702b16e264417bfc4813cb889ae))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 ([85f127a](https://github.com/nextcloud/contacts/commit/85f127af7627e2e6714f6ed6632bb84f79bee73a))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([cb77d56](https://github.com/nextcloud/contacts/commit/cb77d569f73de7597d582efcc8ead10dd2a5e68c))\n* **deps:** bump @nextcloud/browser-storage from 0.4.0 to ^0.5.0 ([c894ba5](https://github.com/nextcloud/contacts/commit/c894ba570ec984111888d7aa211aa5e1016838f5))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 ([a02a4b5](https://github.com/nextcloud/contacts/commit/a02a4b5d5f60e62abcf5b39cf12474a6a5d47afa))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.1 ([ff451d0](https://github.com/nextcloud/contacts/commit/ff451d02c0749cbe85688f6a17b49e2568efe399))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 ([0277f19](https://github.com/nextcloud/contacts/commit/0277f19a63f2080ee9270892b27e1c032c11c88e))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 ([84042a8](https://github.com/nextcloud/contacts/commit/84042a86cc84a98abc92e7d2c10fb164715a819b))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([d465acf](https://github.com/nextcloud/contacts/commit/d465acfbca74696d1fc95044bfdb2ff72f09a223))\n* **deps:** bump @nextcloud/cdav-library from 2.0.0 to ^2.1.0 ([a769432](https://github.com/nextcloud/contacts/commit/a769432056150b5be320d91a036354f8c9d39099))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 ([62f6585](https://github.com/nextcloud/contacts/commit/62f658597f4e84815502f61a35c309d1379cdda1))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.2 ([c89c5e1](https://github.com/nextcloud/contacts/commit/c89c5e1e18a73699c16779b019359fbaf3742927))\n* **deps:** bump @nextcloud/dialogs from 5.3.2 to ^5.3.3 ([f2941f8](https://github.com/nextcloud/contacts/commit/f2941f876fcc67c0b1d09a287462a430194e0f7c))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 ([63bdf07](https://github.com/nextcloud/contacts/commit/63bdf07c90e807cf95bd7f1c2a2e26c7a68e02b8))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 ([fd6bb23](https://github.com/nextcloud/contacts/commit/fd6bb234d140157a72e495df884d6cc9cd5e99a8))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.7 ([2e6b7cf](https://github.com/nextcloud/contacts/commit/2e6b7cf8aee60612a66cefaf8c3415c6068f75d3))\n* **deps:** bump @nextcloud/dialogs from 5.3.7 to ^5.3.8 ([a7abab3](https://github.com/nextcloud/contacts/commit/a7abab3de1b26f4f89ee3140d16dc41657297fd4))\n* **deps:** bump @nextcloud/dialogs from 7.0.0 to ^7.0.1 ([5f078c9](https://github.com/nextcloud/contacts/commit/5f078c991702b59377780827f9e4a9f06b476d1b))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.1 to ^7.0.0-rc.2 ([db9c47b](https://github.com/nextcloud/contacts/commit/db9c47bb979016e83369a9162147287f270f23fd))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.2 to ^7.0.0-rc.3 ([ba7c516](https://github.com/nextcloud/contacts/commit/ba7c516ab25e19eea6ac0eb0ee38160f8f5757e8))\n* **deps:** bump @nextcloud/dialogs from 7.0.0-rc.3 to ^7.0.0 ([caf1b41](https://github.com/nextcloud/contacts/commit/caf1b4100d35b51d94aa987b5e9a3cf7141a7141))\n* **deps:** bump @nextcloud/event-bus from 3.3.1 to ^3.3.1 ([b1af001](https://github.com/nextcloud/contacts/commit/b1af00165ed4ec0292ef87a29a18c8aff8b5f1e8))\n* **deps:** bump @nextcloud/event-bus from 3.3.1 to ^3.3.2 ([6a0b638](https://github.com/nextcloud/contacts/commit/6a0b638f0ad1482c1d85a05b7801a89ff84291cd))\n* **deps:** bump @nextcloud/files from 3.10.0 to ^3.10.1 ([01bfdae](https://github.com/nextcloud/contacts/commit/01bfdae1a5df9e3c89b76bd3228f14278cba107a))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 ([1a3a6a5](https://github.com/nextcloud/contacts/commit/1a3a6a59c4d5a35c723248b8adad763921bdeb2d))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.11.0 ([70253f6](https://github.com/nextcloud/contacts/commit/70253f6f84832c366726d093cab093f6fbdad2f6))\n* **deps:** bump @nextcloud/files from 3.11.0 to ^3.12.0 ([3ded977](https://github.com/nextcloud/contacts/commit/3ded9770d858896afdd27feabfa360575102e68d))\n* **deps:** bump @nextcloud/files from 3.4.1 to ^3.4.1 ([cb81009](https://github.com/nextcloud/contacts/commit/cb810095c4d3ba91e4ca1a1f568a14b3210f2e56))\n* **deps:** bump @nextcloud/files from 3.4.1 to ^3.5.0 ([718a090](https://github.com/nextcloud/contacts/commit/718a0900392d77f081fad22838d39e7d6950a710))\n* **deps:** bump @nextcloud/files from 3.5.0 to ^3.5.1 ([ef312d3](https://github.com/nextcloud/contacts/commit/ef312d362319eb78152886487f0428d0301b7687))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 ([770b27c](https://github.com/nextcloud/contacts/commit/770b27c738763358faf3c6ecb6bcb8568ad01895))\n* **deps:** bump @nextcloud/files from 3.8.0 to ^3.8.0 ([769a947](https://github.com/nextcloud/contacts/commit/769a94783446ea64d9e94b23e4896eca2e3718ef))\n* **deps:** bump @nextcloud/files from 3.8.0 to ^3.9.0 ([3a016b2](https://github.com/nextcloud/contacts/commit/3a016b2655b04df0f916ecc5b4a18182e18e52d8))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 ([498fb12](https://github.com/nextcloud/contacts/commit/498fb127eb9690d96c0c8bb51f8c243a09a7a166))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 ([1e086f9](https://github.com/nextcloud/contacts/commit/1e086f91bb0763e9e618f302108d7334ab2433bb))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([b2ea05d](https://github.com/nextcloud/contacts/commit/b2ea05db7cf49168fbf94a77de7fa0ca0568b64f))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([df25646](https://github.com/nextcloud/contacts/commit/df25646a5392d66b648bd83b3265160bf417ea6e))\n* **deps:** bump @nextcloud/l10n from 3.1.0 to v3.4.0 ([529c5f1](https://github.com/nextcloud/contacts/commit/529c5f1f6ab35aeb0187167af3582e3b4ae15911))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([73eecbc](https://github.com/nextcloud/contacts/commit/73eecbcde459436095a23bb7b2c9773b8d18bc96))\n* **deps:** bump @nextcloud/moment from 1.3.1 to ^1.3.2 ([41c601c](https://github.com/nextcloud/contacts/commit/41c601cf58ac7b61db7ac42b1b64380e37dc4531))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 ([3f2029b](https://github.com/nextcloud/contacts/commit/3f2029b6abb6e1d3b05b3c479cb8a28258ec78f8))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 ([abf1a49](https://github.com/nextcloud/contacts/commit/abf1a49ddf3debe5d91b64bc050239beecbb4f48))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.2.1 ([9b6c6d3](https://github.com/nextcloud/contacts/commit/9b6c6d38ba88f2dd69b65a5a0587db98adc02ca5))\n* **deps:** bump @nextcloud/router from 2.2.0 to v3 ([96af3c5](https://github.com/nextcloud/contacts/commit/96af3c573aa4300ca258961046e8b149f58de3c6))\n* **deps:** bump @nextcloud/sharing from 0.1.0 to ^0.2.2 ([29c3f76](https://github.com/nextcloud/contacts/commit/29c3f7603722548160a994262f5df616534686ca))\n* **deps:** bump @nextcloud/sharing from 0.2.3 to ^0.2.3 ([03d3efc](https://github.com/nextcloud/contacts/commit/03d3efc0a1b85117cf0609c8a1d9cad7b8c025d4))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.4 ([c47b8e7](https://github.com/nextcloud/contacts/commit/c47b8e7ffc71e7641d55a8a65835f6a6f7c8a1fa))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([1c748b4](https://github.com/nextcloud/contacts/commit/1c748b419fcb611007399a02287f9310328ad8a9))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([1e36a5e](https://github.com/nextcloud/contacts/commit/1e36a5efcc52eb3a44ae6e50ce48ff297ccafb87))\n* **deps:** bump @nextcloud/vue from 8.11.3 to ^8.12.0 ([21dbcf5](https://github.com/nextcloud/contacts/commit/21dbcf5653b9fdd11da99f5cc88ddb8a7636ba88))\n* **deps:** bump @nextcloud/vue from 8.12.0 to ^8.13.0 ([56fc63c](https://github.com/nextcloud/contacts/commit/56fc63c07b1f2c69c25433c1f896f9fecd18f6d4))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([5d85e20](https://github.com/nextcloud/contacts/commit/5d85e2098ca802b7998535618e4c76009197f0f9))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([5dc3c14](https://github.com/nextcloud/contacts/commit/5dc3c1419c38b05f9eac5f7c8f9d63a540a40724))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([0919189](https://github.com/nextcloud/contacts/commit/0919189714270b519fe2fd7cedd695ca230bf99a))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.18.0 ([096dd07](https://github.com/nextcloud/contacts/commit/096dd0713df368cc86ce7dc36aa55e4740ec6750))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([f59b0f2](https://github.com/nextcloud/contacts/commit/f59b0f2dd13292262a474d12e9e0eb2bdd85891c))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.22.0 ([a7d4203](https://github.com/nextcloud/contacts/commit/a7d4203a843e846d1d8f2b3a21823d432f71f33c))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([3d343ad](https://github.com/nextcloud/contacts/commit/3d343ada3c097536cedde0f9978e8cf8553c1cea))\n* **deps:** bump @nextcloud/vue from 8.24.0 to ^8.25.0 ([0e5cf05](https://github.com/nextcloud/contacts/commit/0e5cf057475475e50dd846e26c89d5689e6cc1e5))\n* **deps:** bump @nextcloud/vue from 8.25.0 to ^8.25.1 ([3e35686](https://github.com/nextcloud/contacts/commit/3e356860bdc9e1f508c644729930782a085a1aa7))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([e071c4a](https://github.com/nextcloud/contacts/commit/e071c4ac38f39f9146f5045ad06cd5c1d969553e))\n* **deps:** bump @nextcloud/vue from 8.26.1 to ^8.27.0 ([2b1c724](https://github.com/nextcloud/contacts/commit/2b1c724f21916e55b1a56551d0a23cb3ab92c16d))\n* **deps:** bump @nextcloud/vue from 9.0.0 to ^9.0.1 ([e073817](https://github.com/nextcloud/contacts/commit/e0738172d52a3057509aeb3782253cff3eb7acc0))\n* **deps:** bump @nextcloud/vue from 9.0.0-rc.6 to ^9.0.0-rc.8 ([1d14d9e](https://github.com/nextcloud/contacts/commit/1d14d9e2fb18f86e3ed9340b78e4ede735af6310))\n* **deps:** bump @nextcloud/vue from 9.0.0-rc.8 to ^9.0.0 ([8e97dfc](https://github.com/nextcloud/contacts/commit/8e97dfcf1b0e82d7a85365dc79c3a60c984e0487))\n* **deps:** bump @vueuse/core from 10.11.1 to ^10.11.1 ([17b1ac7](https://github.com/nextcloud/contacts/commit/17b1ac7ab4dd0248d52cd80c44dca61fff48d6f2))\n* **deps:** bump @vueuse/core from 10.11.1 to v11 ([5545596](https://github.com/nextcloud/contacts/commit/5545596592dd0b51ab3bb9e026dc8bdc97732a92))\n* **deps:** bump @vueuse/core from 10.9.0 to ^10.11.0 ([09b06c9](https://github.com/nextcloud/contacts/commit/09b06c9a933974e1b8e6b6d02e1a929a9ea3f249))\n* **deps:** bump @vueuse/core from 11.0.3 to ^11.1.0 ([e66804d](https://github.com/nextcloud/contacts/commit/e66804d331598e14b8499f026f3d306384f12f84))\n* **deps:** bump @vueuse/core from 11.1.0 to ^11.2.0 ([8d5dad1](https://github.com/nextcloud/contacts/commit/8d5dad1683fd3ae083673e5765fa630806dc5077))\n* **deps:** bump @vueuse/core from 11.2.0 to ^11.3.0 ([38470f6](https://github.com/nextcloud/contacts/commit/38470f6797641ac783ad171bf72b67eb4ed734a5))\n* **deps:** bump debounce from 2.0.0 to ^2.1.0 ([1834ff5](https://github.com/nextcloud/contacts/commit/1834ff551a615545bf8d9f6adf1514093201110e))\n* **deps:** bump debounce from 2.1.0 to ^2.1.1 ([81ddf6e](https://github.com/nextcloud/contacts/commit/81ddf6e59612642edbcbb73bb6765fad8ca4fb31))\n* **deps:** bump debounce from 2.1.1 to ^2.2.0 ([5d2d79c](https://github.com/nextcloud/contacts/commit/5d2d79c963ac5d7d86d799ebdd6c2dc0e988d80b))\n* **deps:** bump form-data to 4.0.4 ([10c4691](https://github.com/nextcloud/contacts/commit/10c46912cd928b41605e298116adbbf4071678d0))\n* **deps:** bump ical.js from 1.5.0 to v2 ([ef70705](https://github.com/nextcloud/contacts/commit/ef70705cb84b033e33dab46f68f94c947deed73b))\n* **deps:** bump ical.js from 2.0.1 to ^2.1.0 ([5ae2289](https://github.com/nextcloud/contacts/commit/5ae2289795d5cddacc89373f7c330cb642ed742a))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 ([597506e](https://github.com/nextcloud/contacts/commit/597506e069483cfed949a3f578a350fc1d8efb48))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([3a1f686](https://github.com/nextcloud/contacts/commit/3a1f686db9d7f278f049deaff5d661864db64351))\n* **deps:** bump p-limit from 5.0.0 to v6 ([f8996aa](https://github.com/nextcloud/contacts/commit/f8996aa6de495ac632542bcf71b77ac185811151))\n* **deps:** bump p-limit from 6.1.0 to ^6.2.0 ([37a29a4](https://github.com/nextcloud/contacts/commit/37a29a4d82f89c1c29d6f1ce69275f025594b6dd))\n* **deps:** bump p-limit from 6.2.0 to v7 ([2c34ad0](https://github.com/nextcloud/contacts/commit/2c34ad0f5affbafb6207521fbf59f349fcffe9bd))\n* **deps:** bump p-limit from 7.0.0 to ^7.1.0 ([e81f587](https://github.com/nextcloud/contacts/commit/e81f587013dc70298596a41f9e14fd25423faa61))\n* **deps:** bump p-limit from 7.1.0 to ^7.1.1 ([6a016ce](https://github.com/nextcloud/contacts/commit/6a016ce0571982d1df38911d9edde15921e91722))\n* **deps:** bump pinia from 2.1.7 to ^2.2.2 ([5e0ec67](https://github.com/nextcloud/contacts/commit/5e0ec67c3321c5e9f412f8c79e4aaaadc40953f0))\n* **deps:** bump pinia from 2.2.2 to ^2.2.4 ([92bcb60](https://github.com/nextcloud/contacts/commit/92bcb60ade7c742a25aad66f3906787ee3e74cde))\n* **deps:** bump pinia from 2.2.4 to ^2.2.6 ([81d78eb](https://github.com/nextcloud/contacts/commit/81d78eb0fc9127e3b745082f2ab4341a92dc4eb7))\n* **deps:** bump pinia from 2.2.6 to ^2.2.8 ([1fe78fe](https://github.com/nextcloud/contacts/commit/1fe78fe1d9fb0616c9b94c7c4e3a37c55b0e8a1f))\n* **deps:** bump pinia from 2.2.8 to ^2.3.0 ([04a1d6f](https://github.com/nextcloud/contacts/commit/04a1d6fc2019d7d5c6f09cfc6ae1e7e8d1dbe3de))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 ([1940948](https://github.com/nextcloud/contacts/commit/1940948208165075defd04a44d9462b167279262))\n* **deps:** bump qreator from 9.7.1 to ^9.7.2 ([eee9866](https://github.com/nextcloud/contacts/commit/eee9866979cf3cfbe4983aa89e350fa5e283bcb3))\n* **deps:** bump uuid from 10.0.0 to v11 ([35dbc90](https://github.com/nextcloud/contacts/commit/35dbc9005f7c35228c9bc19f432bda4bc7e6708d))\n* **deps:** bump uuid from 11.0.2 to ^11.0.3 ([a854c30](https://github.com/nextcloud/contacts/commit/a854c305e3f1f75477c7a771297546e1476c3b1a))\n* **deps:** bump uuid from 11.0.3 to ^11.0.5 ([546148d](https://github.com/nextcloud/contacts/commit/546148d1974c521c78c0b1fd3a68c7068a37c077))\n* **deps:** bump uuid from 11.0.5 to ^11.1.0 ([29f006c](https://github.com/nextcloud/contacts/commit/29f006c9afdfbf03d1eca7566d5508a8549cc68a))\n* **deps:** bump uuid from 11.1.0 to v13 ([c859a96](https://github.com/nextcloud/contacts/commit/c859a96dea8a1264e7716d761b95681eb1fdf720))\n* **deps:** bump uuid from 9.0.1 to v10 ([b350b27](https://github.com/nextcloud/contacts/commit/b350b2781f3b4e394e0ea80926c127b401defb8d))\n* **deps:** bump validator from 13.12.0 to ^13.15.0 ([5f48b34](https://github.com/nextcloud/contacts/commit/5f48b3403ba6a45a5c946ee9961a559ca087e6be))\n* **deps:** bump validator from 13.15.0 to ^13.15.15 ([cf3db85](https://github.com/nextcloud/contacts/commit/cf3db8577db81c44c9272794228b2af76c43ec9c))\n* **deps:** bump virtua from 0.41.5 to ^0.42.3 ([5025d98](https://github.com/nextcloud/contacts/commit/5025d98e9179f0ff7db17cfc849cafe33652c7b0))\n* **deps:** bump virtua from 0.42.3 to ^0.44.2 ([db9b88d](https://github.com/nextcloud/contacts/commit/db9b88d8cb1a9022095018c8462803954758e331))\n* **deps:** bump virtua from 0.44.2 to ^0.44.3 ([aec0b43](https://github.com/nextcloud/contacts/commit/aec0b431de2a136b8b0cc2b1de909c96ffa46910))\n* **deps:** bump virtua from 0.44.3 to ^0.45.3 ([2190da1](https://github.com/nextcloud/contacts/commit/2190da152c2b40017dee6c825b6c4230e2d6b45f))\n* **deps:** bump vite from 5.4.14 to v5.4.15 ([8b5092f](https://github.com/nextcloud/contacts/commit/8b5092fcd570c2488dcbda07535d7c7b57bf9358))\n* **deps:** bump vite from 5.4.17 to v5.4.18 ([6b7ffdf](https://github.com/nextcloud/contacts/commit/6b7ffdf1fdd12afc2cb14b13daa703d2dbacd069))\n* **deps:** bump vite from 5.4.19 to v5.4.20 ([b75e07e](https://github.com/nextcloud/contacts/commit/b75e07eef87f512852350b445c4086fa3da8156d))\n* **deps:** bump vue monorepo from 2.7.16 to ~2.7.16 ([bda5244](https://github.com/nextcloud/contacts/commit/bda5244373d44f82e6eb2f5ed1fc302bf5968b0e))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([b94efd8](https://github.com/nextcloud/contacts/commit/b94efd8c389c3508de9113269e9cf1687517d243))\n* **deps:** fix npm audit ([7d53f6c](https://github.com/nextcloud/contacts/commit/7d53f6c45b90be54dcb09016682531c7c3794991))\n* **deps:** fix npm audit ([85197a0](https://github.com/nextcloud/contacts/commit/85197a0eb40ab9d16233ce2989dc3862047e17da))\n* **deps:** Fix npm audit ([dd2082f](https://github.com/nextcloud/contacts/commit/dd2082f9baa8b3c14231d048a3a305c60e9b03ec))\n* **deps:** Fix npm audit ([a16fd61](https://github.com/nextcloud/contacts/commit/a16fd614f32c687c232df9267979096658623dec))\n* **deps:** Fix npm audit ([97a5d38](https://github.com/nextcloud/contacts/commit/97a5d38a3bf542695576fe68430f1d71a06d594c))\n* **deps:** Fix npm audit ([c3db83d](https://github.com/nextcloud/contacts/commit/c3db83dbf4911750b9a438b2da6ac145c745996a))\n* **deps:** Fix npm audit ([a17ca9c](https://github.com/nextcloud/contacts/commit/a17ca9c758e8a59f7eb2f25950d0aee04b9f9f4e))\n* **deps:** Fix npm audit ([43fe10d](https://github.com/nextcloud/contacts/commit/43fe10d493a4b98b5c3675fd3ee316fbd75c9064))\n* **deps:** Fix npm audit ([adac4ee](https://github.com/nextcloud/contacts/commit/adac4ee7db9755dbb595b2e070afe84b38e5374e))\n* **deps:** Fix npm audit ([6afef67](https://github.com/nextcloud/contacts/commit/6afef67b4972b7b989c3a5cc278a2b1e2e19fa82))\n* **deps:** Fix npm audit ([cdbbf1b](https://github.com/nextcloud/contacts/commit/cdbbf1b2a01badffb14b3ba378d645f2a67df1fe))\n* **deps:** Fix npm audit ([2442d01](https://github.com/nextcloud/contacts/commit/2442d01949f1181c0f208cec4c0482cf1f83eeb9))\n* **deps:** Fix npm audit ([5609257](https://github.com/nextcloud/contacts/commit/5609257868c5ea23dab4a1619bbdb92051756dc8))\n* **deps:** Fix npm audit ([fa7832b](https://github.com/nextcloud/contacts/commit/fa7832b3f59863a3da60c7423659be9391d3ce42))\n* **deps:** Fix npm audit ([67735b2](https://github.com/nextcloud/contacts/commit/67735b229bbe9c82ca40514f9c8a905a34447607))\n* **deps:** Fix npm audit ([dbbc244](https://github.com/nextcloud/contacts/commit/dbbc244e644023f58f5db5bc4699f58a69f78115))\n* **deps:** Fix npm audit ([0595efb](https://github.com/nextcloud/contacts/commit/0595efb1967374836befe0e47d23fe87f577f68d))\n* **deps:** Fix npm audit ([da2366f](https://github.com/nextcloud/contacts/commit/da2366f3e50c4197f70ba95ce9d7b7a408c55ce3))\n* **deps:** Fix npm audit ([a6a1367](https://github.com/nextcloud/contacts/commit/a6a136717520d91137f6f76efdf979b7aaa60a5a))\n* **deps:** Fix npm audit ([637a3c1](https://github.com/nextcloud/contacts/commit/637a3c1c59d4b8143bebc7c7416769b6aa6a8824))\n* **deps:** Fix npm audit ([e4ddb5c](https://github.com/nextcloud/contacts/commit/e4ddb5cdab23e1d7df2825f619beaac36ede8267))\n* **deps:** Fix npm audit ([9da1e4e](https://github.com/nextcloud/contacts/commit/9da1e4e64902a3129c645f29cb83bd2058ff3b44))\n* **deps:** Fix npm audit ([3ae1e7a](https://github.com/nextcloud/contacts/commit/3ae1e7ab6ce465c5ae2c0281de1648efe44460f1))\n* **deps:** Fix npm audit ([4eaf4ce](https://github.com/nextcloud/contacts/commit/4eaf4ce3d0333203976e26a1c546653be38e647b))\n* **deps:** Fix npm audit ([da63d3f](https://github.com/nextcloud/contacts/commit/da63d3f61e87a9cbc902d9fa700c6825fa3e8b3b))\n* **deps:** Fix npm audit ([a70a5d7](https://github.com/nextcloud/contacts/commit/a70a5d76cff7d8d83c54d83b416afe3878ab7d0a))\n* **deps:** Fix npm audit ([f3087bc](https://github.com/nextcloud/contacts/commit/f3087bc5e5df5bccaa614fa51ce7bc20d63ddf1d))\n* **deps:** Fix npm audit ([c46b418](https://github.com/nextcloud/contacts/commit/c46b418658c1bc1d35403dd3f4641e8e4c45e493))\n* **deps:** update dependency @nextcloud/auth to ^2.6.0 ([74b532f](https://github.com/nextcloud/contacts/commit/74b532f17e0bb062936cdb75cb855c1092254c69))\n* **deps:** update dependency @nextcloud/axios to ^2.6.0 ([54fd81e](https://github.com/nextcloud/contacts/commit/54fd81e2c8cb6d75af7a235c7ebe40b80368faa9))\n* **deps:** update dependency @nextcloud/capabilities to ^1.2.1 ([040c14b](https://github.com/nextcloud/contacts/commit/040c14b63a8fa954dfb9737cd5ed730d9e363cd8))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.2.0 ([4781ca3](https://github.com/nextcloud/contacts/commit/4781ca3c42d2ed3934e2422e442ed9411a24e3c9))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.5.0 ([de76da4](https://github.com/nextcloud/contacts/commit/de76da480c186b9f72d5ad86c22a94be4c7e693e))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.5.1 ([7ccec33](https://github.com/nextcloud/contacts/commit/7ccec33c2cb2dfae2a8a9b141695e0e517198791))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.6.2 ([81532d1](https://github.com/nextcloud/contacts/commit/81532d11dbd62bf59fbd6cc72a94e7bd0035f321))\n* **deps:** update dependency @nextcloud/dialogs to ^7.1.0 ([c61b824](https://github.com/nextcloud/contacts/commit/c61b8242543238e7a1b31495b3d2d3b5042f98e8))\n* **deps:** update dependency @nextcloud/dialogs to ^7.2.0 ([3811c05](https://github.com/nextcloud/contacts/commit/3811c05f8d84a54a46b6a99f8e840e1367fa08d2))\n* **deps:** update dependency @nextcloud/dialogs to ^7.3.0 ([c05869e](https://github.com/nextcloud/contacts/commit/c05869ef3379948da393fed6966d2c92c31e12d9))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.0 ([a579ee2](https://github.com/nextcloud/contacts/commit/a579ee2fa20c67e562f27862a618ece4a364ee3a))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.1 ([7a3d3f1](https://github.com/nextcloud/contacts/commit/7a3d3f11e0c5ce18adc55ae8ae99b01107a2d0b4))\n* **deps:** update dependency @nextcloud/event-bus to ^3.3.3 ([57eda56](https://github.com/nextcloud/contacts/commit/57eda562373019dc4af21cbf3b69518600deabf4))\n* **deps:** update dependency @nextcloud/files to ^3.12.1 ([4ea7749](https://github.com/nextcloud/contacts/commit/4ea7749b5aa67500c3290076bc5ed4defb7bd3da))\n* **deps:** update dependency @nextcloud/files to ^3.12.2 ([19f0f58](https://github.com/nextcloud/contacts/commit/19f0f58a39078625e93ddcb2f19c247264eb7ba4))\n* **deps:** update dependency @nextcloud/files to v4 ([24cfea4](https://github.com/nextcloud/contacts/commit/24cfea4ba716555da712e92403c43aba91502a83))\n* **deps:** update dependency @nextcloud/l10n to v3.4.1 ([b02273a](https://github.com/nextcloud/contacts/commit/b02273a928027dd1b08b46f798cf36187fe60e09))\n* **deps:** update dependency @nextcloud/logger to ^3.0.3 ([e93d41d](https://github.com/nextcloud/contacts/commit/e93d41d541cf6eac85cf801d062a1627d3930554))\n* **deps:** update dependency @nextcloud/paths to ^2.3.0 ([c87970c](https://github.com/nextcloud/contacts/commit/c87970c1695f3d88cde646aa6d65a6461cab50bd))\n* **deps:** update dependency @nextcloud/paths to ^3.1.0 ([439e7ab](https://github.com/nextcloud/contacts/commit/439e7aba9f86de2161caa37ef2a4d896a34c1662))\n* **deps:** update dependency @nextcloud/paths to v3 ([b8298c2](https://github.com/nextcloud/contacts/commit/b8298c27f3957df91b1b486d65b68ca557576468))\n* **deps:** update dependency @nextcloud/router to ^3.1.0 ([a623f57](https://github.com/nextcloud/contacts/commit/a623f571f8039761443761432c3f1416396c644c))\n* **deps:** update dependency @nextcloud/sharing to ^0.4.0 ([ac1432f](https://github.com/nextcloud/contacts/commit/ac1432f7bb9dc53390b5d07188d184ab7c00db8a))\n* **deps:** update dependency @nextcloud/vue to ^9.1.0 ([3c1344d](https://github.com/nextcloud/contacts/commit/3c1344d3b36bbdd09855473625467c277de30520))\n* **deps:** update dependency @nextcloud/vue to ^9.3.0 ([9f89f0e](https://github.com/nextcloud/contacts/commit/9f89f0eca4dab9c916480b7692e56315969d02ad))\n* **deps:** update dependency @nextcloud/vue to ^9.3.1 ([fa67fab](https://github.com/nextcloud/contacts/commit/fa67fab111f4da989168db560a672f78d47e59f7))\n* **deps:** update dependency @nextcloud/vue to ^9.3.3 ([7f76d92](https://github.com/nextcloud/contacts/commit/7f76d92c4e971f9b99765c6dd05f3b1077155216))\n* **deps:** update dependency @nextcloud/vue to ^9.5.0 ([161b7d1](https://github.com/nextcloud/contacts/commit/161b7d168cdb1019009981e03cd6ec24ae7ae5e3))\n* **deps:** update dependency @nextcloud/vue to ^9.8.2 ([a7411d5](https://github.com/nextcloud/contacts/commit/a7411d5ab904639e795457ddd0da3a2b0b4cd2a7))\n* **deps:** update dependency @vueuse/core to ^14.2.1 ([ba41211](https://github.com/nextcloud/contacts/commit/ba4121194b01c54c3744d0077f5c14d15d2c6228))\n* **deps:** update dependency @vueuse/core to ^14.3.0 ([170310e](https://github.com/nextcloud/contacts/commit/170310ef7e937058a145d7eeee0b44a3e7c85f93))\n* **deps:** update dependency @vueuse/core to v14 ([15ec7d6](https://github.com/nextcloud/contacts/commit/15ec7d6296ae94f6375e1527ce495c76ad33acfc))\n* **deps:** update dependency camelcase to v9 ([5c2f0c5](https://github.com/nextcloud/contacts/commit/5c2f0c5f1036d5100652f711232d050d2e9c6907))\n* **deps:** update dependency debounce to v3 ([becd1f0](https://github.com/nextcloud/contacts/commit/becd1f00216ced98f9c2dd757e594611edfde509))\n* **deps:** update dependency lodash to ^4.17.23 ([f2ebdce](https://github.com/nextcloud/contacts/commit/f2ebdce20b1e5e97fa7e813d88e64b8404bd8deb))\n* **deps:** update dependency lodash to v4.17.23 ([81e827d](https://github.com/nextcloud/contacts/commit/81e827d25ac6f23041b2417aac22a19226419132))\n* **deps:** update dependency p-limit to ^7.2.0 ([3de9552](https://github.com/nextcloud/contacts/commit/3de9552ef3b6e7f3b9769fd99432a1d364af5676))\n* **deps:** update dependency p-limit to ^7.3.0 ([fc05234](https://github.com/nextcloud/contacts/commit/fc0523455950a9cc61105aac030f7ac387b06a64))\n* **deps:** update dependency p-limit to ^7.3.1 ([1c12e7e](https://github.com/nextcloud/contacts/commit/1c12e7ec03242d12a6ac4b7babce214fa94f6be2))\n* **deps:** update dependency phpunit/phpunit to v9.6.33 ([c1a986c](https://github.com/nextcloud/contacts/commit/c1a986c00145786c6d607420b5a1ba1260a0e58e))\n* **deps:** update dependency pinia to ^3.0.4 ([eb9f010](https://github.com/nextcloud/contacts/commit/eb9f010b2591e86f9f3387b7af4043913963217d))\n* **deps:** update dependency qreator to ^9.9.0 ([6ff01fb](https://github.com/nextcloud/contacts/commit/6ff01fbb4a1cf10b3186dd7c983d594b74512379))\n* **deps:** update dependency qreator to v10 ([4417e97](https://github.com/nextcloud/contacts/commit/4417e97ae2e9503fb6be3b96dc78e8dbad35bb42))\n* **deps:** update dependency uuid to ^14.0.1 ([be742ea](https://github.com/nextcloud/contacts/commit/be742ea9c47540761d0291b07efb1b153160959b))\n* **deps:** update dependency uuid to v14 ([0f7765c](https://github.com/nextcloud/contacts/commit/0f7765c5e13563a305a18066a105760cf6527aca))\n* **deps:** update dependency validator to ^13.15.20 ([a5cc099](https://github.com/nextcloud/contacts/commit/a5cc099aab534e5f222c4465f4a6d41289a9a8a2))\n* **deps:** update dependency validator to ^13.15.23 ([0df4bb7](https://github.com/nextcloud/contacts/commit/0df4bb732776d44d4c7faaf88bd230f37e075a70))\n* **deps:** update dependency validator to ^13.15.26 ([ad84b1f](https://github.com/nextcloud/contacts/commit/ad84b1f8e3d1c105a31826c81c37eed6f93205fc))\n* **deps:** update dependency validator to ^13.15.35 ([6381103](https://github.com/nextcloud/contacts/commit/6381103c77d0cf6a17ed0a84a6cd1c5bab31da04))\n* **deps:** update dependency validator to v13.15.20 ([b4510a3](https://github.com/nextcloud/contacts/commit/b4510a3a4c01c882cfbbb52a7051b178e1242181))\n* **deps:** update dependency virtua to ^0.46.2 ([7b1e5e7](https://github.com/nextcloud/contacts/commit/7b1e5e7870123a8f1805f0933a3f01be722a97ce))\n* **deps:** update dependency virtua to ^0.46.3 ([050dc11](https://github.com/nextcloud/contacts/commit/050dc1100d87e27c3a32d052d1839853147ad2ae))\n* **deps:** update dependency virtua to ^0.46.6 ([be2096b](https://github.com/nextcloud/contacts/commit/be2096bcb3d2acec31383453c02b9c6875885156))\n* **deps:** update dependency virtua to ^0.48.2 ([621fcf0](https://github.com/nextcloud/contacts/commit/621fcf0f5323ae326ff18ff69cf86b4d7bceb37e))\n* **deps:** update dependency virtua to ^0.48.3 ([9b8d07d](https://github.com/nextcloud/contacts/commit/9b8d07da0da5d04caa45fe49dcc695d511344c80))\n* **deps:** update dependency virtua to ^0.48.5 ([42f4813](https://github.com/nextcloud/contacts/commit/42f481373434bac6e7af0900fdb81800504fba4a))\n* **deps:** update dependency virtua to ^0.48.6 ([16240f6](https://github.com/nextcloud/contacts/commit/16240f65780e33ff76f11fe3226100ef6939e3cb))\n* **deps:** update dependency virtua to ^0.49.1 ([f31d2ee](https://github.com/nextcloud/contacts/commit/f31d2eeb38caae74c2d14bc97516b865691ca5e7))\n* **deps:** update dependency virtua to ^0.50.0 ([303c034](https://github.com/nextcloud/contacts/commit/303c0349f137bcd8a620825cc1659492db0e780e))\n* **deps:** update dependency vite to v7.1.11 ([8b3d4de](https://github.com/nextcloud/contacts/commit/8b3d4de06042aebc2be8162cc8479d1cdf93fcf8))\n* **deps:** update dependency vite to v7.3.2 ([250bd88](https://github.com/nextcloud/contacts/commit/250bd88349d5fa34278a1ad0f930f3482407c1ae))\n* **deps:** update dependency vite to v7.3.5 ([6ae9f92](https://github.com/nextcloud/contacts/commit/6ae9f92c0e4f8f297525dfc15fb5fb05941ea3e5))\n* **deps:** update dependency vue to ^3.5.28 ([29ce486](https://github.com/nextcloud/contacts/commit/29ce486bd89c13930aca57e88c5dd3436e4fa1c9))\n* **deps:** update dependency vue to ^3.5.29 ([ff34996](https://github.com/nextcloud/contacts/commit/ff349960ffc385f396379759c89ba9a01cc30ce2))\n* **deps:** update dependency vue to ^3.5.30 ([c3843da](https://github.com/nextcloud/contacts/commit/c3843daf7be7c424a2e00fe7ab03ecadc51b5e85))\n* **deps:** update dependency vue to ^3.5.31 ([4b82e60](https://github.com/nextcloud/contacts/commit/4b82e60565aa2d95578f5a706875575de7992981))\n* **deps:** update dependency vue to ^3.5.32 ([d5fdb9d](https://github.com/nextcloud/contacts/commit/d5fdb9d14b2e247072cd42b96c8961fdefe2e256))\n* **deps:** update dependency vue to ^3.5.33 ([3ca005f](https://github.com/nextcloud/contacts/commit/3ca005f82025a8ec23c4b9a6f7de3f7c1bc6e52c))\n* **deps:** update dependency vue to ^3.5.34 ([415735f](https://github.com/nextcloud/contacts/commit/415735f13386f016b61084be587ff1e96090fa74))\n* **deps:** update dependency vue to ^3.5.39 ([6a6e3a7](https://github.com/nextcloud/contacts/commit/6a6e3a77c7439b90cb67dcfb68dff8123534e321))\n* **deps:** update dependency vue-router to ^4.6.4 ([ca89263](https://github.com/nextcloud/contacts/commit/ca89263f3c684b6c099849b5e9cf2f3532ea25f6))\n* **deps:** update dependency vue-router to v5 ([b5ba570](https://github.com/nextcloud/contacts/commit/b5ba570dbd41afcb6df1aa19726895da7c77e638))\n* description for empty content ([f4364b5](https://github.com/nextcloud/contacts/commit/f4364b59833af45d132b5d42ef193cc01f8d2dbd))\n* **DetailsHeader:** make accessible ([d06006e](https://github.com/nextcloud/contacts/commit/d06006ea7a313e0a8bb0ed73573fcd927c3642a3))\n* detect addressbook ACL's properly ([a4a0a2f](https://github.com/nextcloud/contacts/commit/a4a0a2f30bf473831dfad69423ce8ce919aff5de))\n* do not allow to exclude system accounts from the bday calendar ([77432d4](https://github.com/nextcloud/contacts/commit/77432d48e463a1dc5af19226ee6f51ae914c8361))\n* do not load disabled address books ([1c0ec32](https://github.com/nextcloud/contacts/commit/1c0ec320d375643c0bdedbe673fab150e0e3eab7))\n* don't immediately update a vCard when changing the avatar ([60f2f84](https://github.com/nextcloud/contacts/commit/60f2f8497fe3a1302750332412989401cde58710))\n* dont allow javascript uri as website ([25ccb32](https://github.com/nextcloud/contacts/commit/25ccb329687d6e49826ec910601d851c2430f437))\n* drop google+ ([6b1cb9c](https://github.com/nextcloud/contacts/commit/6b1cb9cbe00f808852679f000fde1980a13194ae))\n* duplication of address books requests ([60cf2bc](https://github.com/nextcloud/contacts/commit/60cf2bc236039693789f7ce70795b11307f55423))\n* error message \"Unable to delete team\" ([5f0ae25](https://github.com/nextcloud/contacts/commit/5f0ae257295fdc3a08879413a9af22720c8623cc)), closes [#4680](https://github.com/nextcloud/contacts/issues/4680)\n* fetch addressbook contacts when enabled ([db911d5](https://github.com/nextcloud/contacts/commit/db911d5892573bc9f9ddaee3789746565139d19b))\n* **files-action:** adapt to @nextcloud/files v4 file action API ([be3cee9](https://github.com/nextcloud/contacts/commit/be3cee995905714d4173404622496065f8cb12ee))\n* fix team members colum layout in chromium based browsers ([f3c2cea](https://github.com/nextcloud/contacts/commit/f3c2cea9265fcad5101e72be62530adb880c1836))\n* Fix Teams description in nav. Shorten text, fix alignment, improve text color ([4d449f8](https://github.com/nextcloud/contacts/commit/4d449f844952d3f485119816c761b18b3a984ab1))\n* generate rev depending on card version ([422ad78](https://github.com/nextcloud/contacts/commit/422ad788f64651366037d8c0a712a5d2f54e47c5))\n* group multiple emails or phone numbers ([7f7aebc](https://github.com/nextcloud/contacts/commit/7f7aebc33b2df7bda9ead1897137a5a5f4fdfb93))\n* **GroupNavigationItem:** encode exported contact groups as UTF-8 ([7e54582](https://github.com/nextcloud/contacts/commit/7e5458245f7206e1ae91c876fe9cfbeaa8a88990))\n* **GroupNavigationItem:** incorrect group dropping handling ([de368fa](https://github.com/nextcloud/contacts/commit/de368fa566df99a3d1a0d41ad8491bcec2873eab))\n* **groups:** show hint about adding read-only contacts to contact groups ([b5fb959](https://github.com/nextcloud/contacts/commit/b5fb959d62fbbb03e9d53a9b6102eef647f7b440))\n* **groups:** show read-only contacts hint only for contact groups ([e71d652](https://github.com/nextcloud/contacts/commit/e71d652a6c6250e169875779e20a4dc84f32b168))\n* **i18n:** Escaping of character broke strings at Transifex ([aaa608a](https://github.com/nextcloud/contacts/commit/aaa608a94691366f4a77e55a57cbc7a95abe4188))\n* Icon button alignment ([2218eed](https://github.com/nextcloud/contacts/commit/2218eed261c38c5311d744517d3724cd15e3e9bd))\n* **icons:** Use outline icons for teams and user groups ([9744791](https://github.com/nextcloud/contacts/commit/97447916ecce6314fcddec0b02478304ce8d325d))\n* import controller should return a translated status message ([a49f592](https://github.com/nextcloud/contacts/commit/a49f592b432dbcc8e8b6e24682d9874009e5a68b))\n* **ImportController:** fix translation string for imported messages ([3f8e7b6](https://github.com/nextcloud/contacts/commit/3f8e7b69cf16b8ac92fbeb1bb24919c419c37513))\n* improve expand button visibility in OrgChart dark mode ([99ad89e](https://github.com/nextcloud/contacts/commit/99ad89eab504a30e30629ad889998e33d648d28d))\n* improve matching for tel type parameter ([503ae11](https://github.com/nextcloud/contacts/commit/503ae11e1f23c5d77c7e704cb65f813b43327066))\n* Instantiation of ContactsManager ([800f4bd](https://github.com/nextcloud/contacts/commit/800f4bdfd91296d5455ac686b19401bd708de281))\n* keyboard navigation ([a89c448](https://github.com/nextcloud/contacts/commit/a89c448b3501384a381c595127095e6eba8705ee))\n* **l10n:** Fix plural form ([d6acab1](https://github.com/nextcloud/contacts/commit/d6acab1696ace15e840dd73cc903da97469dd0d1))\n* **l10n:** Update translations from Transifex ([37c54cd](https://github.com/nextcloud/contacts/commit/37c54cdedca775829848b9b9c8d8f15d25357558))\n* **l10n:** Update translations from Transifex ([b9b5a83](https://github.com/nextcloud/contacts/commit/b9b5a83649472b62897da8ba2f44052c0ac1af40))\n* **l10n:** Update translations from Transifex ([3172f2d](https://github.com/nextcloud/contacts/commit/3172f2d6329ab9e9700adad3c6ed1c6e37bc3e7b))\n* **l10n:** Update translations from Transifex ([3572e85](https://github.com/nextcloud/contacts/commit/3572e85bdaed35e38bd874ef4abe8dba5cdd187d))\n* **l10n:** Update translations from Transifex ([f132da5](https://github.com/nextcloud/contacts/commit/f132da54b8a6915080aa7d03ee84e0cea6110482))\n* **l10n:** Update translations from Transifex ([b762af0](https://github.com/nextcloud/contacts/commit/b762af0496d0dad82ffd1a3c059991f982b2d875))\n* **l10n:** Update translations from Transifex ([b487b13](https://github.com/nextcloud/contacts/commit/b487b135ef28a5f03843c67d6bd24668ed3b6aad))\n* **l10n:** Update translations from Transifex ([fe3aa25](https://github.com/nextcloud/contacts/commit/fe3aa25050a35dca8e346c68084cd17b7a6a37a0))\n* **l10n:** Update translations from Transifex ([69828da](https://github.com/nextcloud/contacts/commit/69828da6b176dafb91588052529f1c26a2a04be2))\n* **l10n:** Update translations from Transifex ([7390dbe](https://github.com/nextcloud/contacts/commit/7390dbe04ce76a784123c994918af3eeff308067))\n* **l10n:** Update translations from Transifex ([66b64ac](https://github.com/nextcloud/contacts/commit/66b64ac21bd0246ab5cf657666510cdc80e92af3))\n* **l10n:** Update translations from Transifex ([d8fa573](https://github.com/nextcloud/contacts/commit/d8fa5736ba071f63a13e3aff1c17256fc61b4e10))\n* **l10n:** Update translations from Transifex ([1281c6c](https://github.com/nextcloud/contacts/commit/1281c6cd51cd5816d0a3d16688b5309d2ee61137))\n* **l10n:** Update translations from Transifex ([da642ab](https://github.com/nextcloud/contacts/commit/da642abe3b22f804facd94b4c5496a7cee46c4a6))\n* **l10n:** Update translations from Transifex ([b3c32b9](https://github.com/nextcloud/contacts/commit/b3c32b98a5c2944efc86712ae5cbc2222edb084a))\n* **l10n:** Update translations from Transifex ([815dd22](https://github.com/nextcloud/contacts/commit/815dd2283e7a33a124f33e45a1fd37f38e6bc7f2))\n* **l10n:** Update translations from Transifex ([0d905ab](https://github.com/nextcloud/contacts/commit/0d905aba1bb8c2912d94e273d330cdb109c653cf))\n* **l10n:** Update translations from Transifex ([61c225e](https://github.com/nextcloud/contacts/commit/61c225e54b65c7118bc2b47c3ea5efcc8d3948da))\n* **l10n:** Update translations from Transifex ([049900c](https://github.com/nextcloud/contacts/commit/049900c151b1a249e68da871d2c1fb39923a9105))\n* **l10n:** Update translations from Transifex ([49c8622](https://github.com/nextcloud/contacts/commit/49c862229503a8c42cad82ea585a3b9f887d8af2))\n* **l10n:** Update translations from Transifex ([e7e8074](https://github.com/nextcloud/contacts/commit/e7e80749832aaaea287c9fda4ffc77d531132169))\n* **l10n:** Update translations from Transifex ([c2c627a](https://github.com/nextcloud/contacts/commit/c2c627ab16fbcd8aed0ff7873c75582e57e51606))\n* **l10n:** Update translations from Transifex ([83a75a5](https://github.com/nextcloud/contacts/commit/83a75a5a9ebc5895facb3c10b42d84ace530af34))\n* **l10n:** Update translations from Transifex ([044dfcf](https://github.com/nextcloud/contacts/commit/044dfcf70e37c3f3621670b0c2df64143f8e4c8d))\n* **l10n:** Update translations from Transifex ([0d4de2a](https://github.com/nextcloud/contacts/commit/0d4de2a654fc6a0f72a1b851458693ac9140ff99))\n* **l10n:** Update translations from Transifex ([156c608](https://github.com/nextcloud/contacts/commit/156c608f04a2c8a76778e40ebf1c3d431336eba1))\n* **l10n:** Update translations from Transifex ([982665b](https://github.com/nextcloud/contacts/commit/982665b9c15a971aade4d2ea348f2fdf537ca142))\n* **l10n:** Update translations from Transifex ([7f7f2a4](https://github.com/nextcloud/contacts/commit/7f7f2a46344a4e012a1b68d19dab8cc4347c42dd))\n* **l10n:** Update translations from Transifex ([559a7fb](https://github.com/nextcloud/contacts/commit/559a7fb320dad3a1539e22119d264244e319ec00))\n* **l10n:** Update translations from Transifex ([d2ef3cd](https://github.com/nextcloud/contacts/commit/d2ef3cda7c9502776ec78c8dcb82c20fb00acc09))\n* **l10n:** Update translations from Transifex ([2ab3925](https://github.com/nextcloud/contacts/commit/2ab3925ee956c9b1a58fe3a31a708282a48dbc39))\n* **l10n:** Update translations from Transifex ([c600eed](https://github.com/nextcloud/contacts/commit/c600eed613cd74fbf9978d0be684fb1b56550ecf))\n* **l10n:** Update translations from Transifex ([b781954](https://github.com/nextcloud/contacts/commit/b781954535d1aaba841e1328cbc1b3a4f1ee689a))\n* **l10n:** Update translations from Transifex ([f50947a](https://github.com/nextcloud/contacts/commit/f50947afebb6f347caf600975d145b60b545853c))\n* **l10n:** Update translations from Transifex ([4021ade](https://github.com/nextcloud/contacts/commit/4021ade46010e85266cef209064a22c2c37c26be))\n* **l10n:** Update translations from Transifex ([3d291e9](https://github.com/nextcloud/contacts/commit/3d291e95924e3d0bf8b8229c8e5a43936760350f))\n* **l10n:** Update translations from Transifex ([961dceb](https://github.com/nextcloud/contacts/commit/961dceb58204837b2bca3f28dd62819ad616ea01))\n* **l10n:** Update translations from Transifex ([77224ed](https://github.com/nextcloud/contacts/commit/77224ede1c3906e395a183dcd0196ebfb7e870ab))\n* **l10n:** Update translations from Transifex ([2a7bbfc](https://github.com/nextcloud/contacts/commit/2a7bbfc50e4c4a9c58dd48cb2713dc982f4937b9))\n* **l10n:** Update translations from Transifex ([8c24376](https://github.com/nextcloud/contacts/commit/8c2437673a4f540fffecfa9e306e5ed53201381b))\n* **l10n:** Update translations from Transifex ([54c07eb](https://github.com/nextcloud/contacts/commit/54c07eb486d7ebf204a8c19f300f37cc7b7d8b9f))\n* **l10n:** Update translations from Transifex ([e449194](https://github.com/nextcloud/contacts/commit/e449194d0afb2a74f9de5f5018643c02ff7a9bbe))\n* **l10n:** Update translations from Transifex ([12f4495](https://github.com/nextcloud/contacts/commit/12f4495241307620c85c2285588367450883f527))\n* **l10n:** Update translations from Transifex ([d66c247](https://github.com/nextcloud/contacts/commit/d66c2470ca0d09f79bbb6212e20a1a279fccc04f))\n* **l10n:** Update translations from Transifex ([1741e1a](https://github.com/nextcloud/contacts/commit/1741e1a101dd9f91067f7f71008a617b9b16d3d6))\n* **l10n:** Update translations from Transifex ([8bd3417](https://github.com/nextcloud/contacts/commit/8bd3417593301707fa5ddc683809f7b85f6a6aff))\n* **l10n:** Update translations from Transifex ([f9d9edd](https://github.com/nextcloud/contacts/commit/f9d9edd9a88acb00070a9e9d6cb87e2647ac5871))\n* **l10n:** Update translations from Transifex ([d7d5181](https://github.com/nextcloud/contacts/commit/d7d5181addae1fcbadbd1f72b757f75662ca6882))\n* **l10n:** Update translations from Transifex ([7737091](https://github.com/nextcloud/contacts/commit/77370917ce93c0271678f6b032b0fbd67594651d))\n* **l10n:** Update translations from Transifex ([826e634](https://github.com/nextcloud/contacts/commit/826e634d8e2947403ff19135048130c7222914c8))\n* **l10n:** Update translations from Transifex ([264dec8](https://github.com/nextcloud/contacts/commit/264dec8c63cbeced0d6113bf15c26b3f806b5a43))\n* **l10n:** Update translations from Transifex ([6d6d24c](https://github.com/nextcloud/contacts/commit/6d6d24cac88bbaa2a3be94d4e16adb7d3302a890))\n* **l10n:** Update translations from Transifex ([3b2fb4e](https://github.com/nextcloud/contacts/commit/3b2fb4ef9e528ab214ee1d4f2de5680b75a57de4))\n* **l10n:** Update translations from Transifex ([c916856](https://github.com/nextcloud/contacts/commit/c916856a0a959b576dd9b9f2752ddc610adb35ca))\n* **l10n:** Update translations from Transifex ([bca2ce9](https://github.com/nextcloud/contacts/commit/bca2ce91be10f4951202032936b49e75a5230e68))\n* **l10n:** Update translations from Transifex ([a1c3640](https://github.com/nextcloud/contacts/commit/a1c3640535caab941b32dc065b5c25922c47cbb5))\n* **l10n:** Update translations from Transifex ([81a9b75](https://github.com/nextcloud/contacts/commit/81a9b752161a4a1fff398f12b6e83ea35fdc2689))\n* **l10n:** Update translations from Transifex ([0fd9aee](https://github.com/nextcloud/contacts/commit/0fd9aee5709b2c1f33fbd7f62c1309668e348873))\n* **l10n:** Update translations from Transifex ([d489ead](https://github.com/nextcloud/contacts/commit/d489ead7dc78e267698f697ccd1c55fbc0c4f9eb))\n* **l10n:** Update translations from Transifex ([734f64a](https://github.com/nextcloud/contacts/commit/734f64a333d64f646355a78d964e4b4e8128b60b))\n* **l10n:** Update translations from Transifex ([b5d29fb](https://github.com/nextcloud/contacts/commit/b5d29fbb2a8033850b3ecf587836eac17f9eb995))\n* **l10n:** Update translations from Transifex ([093c82b](https://github.com/nextcloud/contacts/commit/093c82be4096f07fa0a2230fd93faec25cebdcd2))\n* **l10n:** Update translations from Transifex ([faa32a3](https://github.com/nextcloud/contacts/commit/faa32a347b4aa9249d64b57cffc573d73e77343c))\n* **l10n:** Update translations from Transifex ([4d467d1](https://github.com/nextcloud/contacts/commit/4d467d1ba02f1787afedaff807b10676bb3eb678))\n* **l10n:** Update translations from Transifex ([0e19648](https://github.com/nextcloud/contacts/commit/0e19648f87f888327c10ed66fefb26d4736ef245))\n* **l10n:** Update translations from Transifex ([7078831](https://github.com/nextcloud/contacts/commit/7078831ffd86883a04eab84b25d343e9ad2983e8))\n* **l10n:** Update translations from Transifex ([d6bd88f](https://github.com/nextcloud/contacts/commit/d6bd88f9c42de4c98ed04d36d513189479c57b30))\n* **l10n:** Update translations from Transifex ([a83a1b1](https://github.com/nextcloud/contacts/commit/a83a1b1d10de57c162d1b2b7432fe1c79f24feeb))\n* **l10n:** Update translations from Transifex ([805f41c](https://github.com/nextcloud/contacts/commit/805f41cfba8e17e630e8eb58258460fe91d46a60))\n* **l10n:** Update translations from Transifex ([c349f08](https://github.com/nextcloud/contacts/commit/c349f087a072fd1e60f3cf09eec6afd6000a568f))\n* **l10n:** Update translations from Transifex ([61d40ea](https://github.com/nextcloud/contacts/commit/61d40eaa0fa1dcb0b73a499596c6de14cc285e70))\n* **l10n:** Update translations from Transifex ([6f9a69a](https://github.com/nextcloud/contacts/commit/6f9a69a7a8903d30b1bf0afc553f94a71ca37535))\n* **l10n:** Update translations from Transifex ([643bfed](https://github.com/nextcloud/contacts/commit/643bfedf784cb9a5c121583971c06d5c03a668d9))\n* **l10n:** Update translations from Transifex ([f941d0b](https://github.com/nextcloud/contacts/commit/f941d0b32d2ec5c4bb791a3cc592789638f5ef07))\n* **l10n:** Update translations from Transifex ([5aeece3](https://github.com/nextcloud/contacts/commit/5aeece3cbb48d90df22f6a0890feaa74b6e22d74))\n* **l10n:** Update translations from Transifex ([e2bdf12](https://github.com/nextcloud/contacts/commit/e2bdf126b50e0f4fa0110369c4781a7a630002a4))\n* **l10n:** Update translations from Transifex ([cda94e3](https://github.com/nextcloud/contacts/commit/cda94e31e3313346b0f4d04059e368d6c03a5197))\n* **l10n:** Update translations from Transifex ([7b07829](https://github.com/nextcloud/contacts/commit/7b078292edbc316dbbaab9816b2c44578f182bba))\n* **l10n:** Update translations from Transifex ([35c9aa3](https://github.com/nextcloud/contacts/commit/35c9aa3d3ddf7778d0c753889d21fa8a6faec3ac))\n* **l10n:** Update translations from Transifex ([854ec25](https://github.com/nextcloud/contacts/commit/854ec25e1896975a62e2eaecc433642f0ea68277))\n* **l10n:** Update translations from Transifex ([f0e66a1](https://github.com/nextcloud/contacts/commit/f0e66a1b316334718b822641bde04ed953d7713f))\n* **l10n:** Update translations from Transifex ([4128b7d](https://github.com/nextcloud/contacts/commit/4128b7dcc1e27ff4b71a89fb58d1430f8208c4f6))\n* **l10n:** Update translations from Transifex ([e3faac2](https://github.com/nextcloud/contacts/commit/e3faac2d8049bccf0b8cf05bf7ab1512c6c9e905))\n* **l10n:** Update translations from Transifex ([602b61f](https://github.com/nextcloud/contacts/commit/602b61f24204da68acc894dfcbe76593cdf9575c))\n* **l10n:** Update translations from Transifex ([a4ce368](https://github.com/nextcloud/contacts/commit/a4ce368c25b7a7e4b157a028c651602887fedd81))\n* **l10n:** Update translations from Transifex ([2d2f282](https://github.com/nextcloud/contacts/commit/2d2f282ebb1710e3b14d7457d1fecf8e5b559bf3))\n* **l10n:** Update translations from Transifex ([0b8c343](https://github.com/nextcloud/contacts/commit/0b8c343f99ef99f6a13e5462b4d51c5bed9546e0))\n* **l10n:** Update translations from Transifex ([cc09fa8](https://github.com/nextcloud/contacts/commit/cc09fa81ae375a2a5b60b906bf3f8a48b09d0c69))\n* **l10n:** Update translations from Transifex ([f08e921](https://github.com/nextcloud/contacts/commit/f08e9210dd482358945e5da33561e45798b6f6f9))\n* **l10n:** Update translations from Transifex ([89024cb](https://github.com/nextcloud/contacts/commit/89024cb8cc548e2a9a5df75bbd59a5b42011537c))\n* **l10n:** Update translations from Transifex ([3915797](https://github.com/nextcloud/contacts/commit/3915797ae0aa9c6d997ba2b5982a8f00b171fbf3))\n* **l10n:** Update translations from Transifex ([c3ccc57](https://github.com/nextcloud/contacts/commit/c3ccc571f2f415b80bf1aa151881d69064254304))\n* **l10n:** Update translations from Transifex ([2453a6e](https://github.com/nextcloud/contacts/commit/2453a6e931c116bfe885c46571a4a99f455a59df))\n* **l10n:** Update translations from Transifex ([a7b089c](https://github.com/nextcloud/contacts/commit/a7b089c6f3203d4a31441cf943c05043043c403d))\n* **l10n:** Update translations from Transifex ([d609f04](https://github.com/nextcloud/contacts/commit/d609f04e1a375408900618b164ad2f78ce0e3cfe))\n* **l10n:** Update translations from Transifex ([45853a4](https://github.com/nextcloud/contacts/commit/45853a41296491a9d08a0d9e131d9b9c4f9ec542))\n* **l10n:** Update translations from Transifex ([6f2e11f](https://github.com/nextcloud/contacts/commit/6f2e11f257d51f698bd0da34f9446ca331e6f1b5))\n* **l10n:** Update translations from Transifex ([5df39cf](https://github.com/nextcloud/contacts/commit/5df39cf6da081a5fcb722c13abd1834728899ab3))\n* **l10n:** Update translations from Transifex ([2dc6d92](https://github.com/nextcloud/contacts/commit/2dc6d929cbd0ae23fac388070392ac736d26bb8c))\n* **l10n:** Update translations from Transifex ([cf2455f](https://github.com/nextcloud/contacts/commit/cf2455f5f85c3d91648d1f5bedde33553c1d41be))\n* **l10n:** Update translations from Transifex ([02880c3](https://github.com/nextcloud/contacts/commit/02880c3ce2c0f9738aaafe3b31937216fdb51413))\n* **l10n:** Update translations from Transifex ([1200774](https://github.com/nextcloud/contacts/commit/1200774b383b11216018bdb71d22bd0363164311))\n* **l10n:** Update translations from Transifex ([24501a9](https://github.com/nextcloud/contacts/commit/24501a9a84d9efdfc5806c53d239bff7190ade98))\n* **l10n:** Update translations from Transifex ([38f83b6](https://github.com/nextcloud/contacts/commit/38f83b6b53d1d05f1bc671b0190da1c382de7f8c))\n* **l10n:** Update translations from Transifex ([2385185](https://github.com/nextcloud/contacts/commit/2385185c77104ba69eee5b8cfe99c3ce84ff9049))\n* **l10n:** Update translations from Transifex ([19dcf96](https://github.com/nextcloud/contacts/commit/19dcf96c534286a84ebc4a96a00091cfe68b8734))\n* **l10n:** Update translations from Transifex ([7b64a96](https://github.com/nextcloud/contacts/commit/7b64a968e63e25d4e43238cc6af3eed1973d0159))\n* **l10n:** Update translations from Transifex ([743fcd1](https://github.com/nextcloud/contacts/commit/743fcd1325ca50d067a11fe6f5119a0c65ad1fce))\n* **l10n:** Update translations from Transifex ([4735485](https://github.com/nextcloud/contacts/commit/4735485fa82eadb51d199510f303927257f76f9d))\n* **l10n:** Update translations from Transifex ([fdfc75d](https://github.com/nextcloud/contacts/commit/fdfc75d294f093c1bc1301c49db648eb9d892585))\n* **l10n:** Update translations from Transifex ([cb3f871](https://github.com/nextcloud/contacts/commit/cb3f87103b1928285db8f07a6df4468fb63cd056))\n* **l10n:** Update translations from Transifex ([f12b773](https://github.com/nextcloud/contacts/commit/f12b7732eeef7345720685e6390fcd0b747039d4))\n* **l10n:** Update translations from Transifex ([35d1d2d](https://github.com/nextcloud/contacts/commit/35d1d2d8881c1c677936c1a393d994efa90dba4e))\n* **l10n:** Update translations from Transifex ([5ab5629](https://github.com/nextcloud/contacts/commit/5ab5629740c39823955410ab7aebf720b0bac856))\n* **l10n:** Update translations from Transifex ([6dd7469](https://github.com/nextcloud/contacts/commit/6dd746949ab355a496c0bb4c87c6fd20da505d4c))\n* **l10n:** Update translations from Transifex ([1a7aee2](https://github.com/nextcloud/contacts/commit/1a7aee2583256184a0a9285f1b39b6173b5136aa))\n* **l10n:** Update translations from Transifex ([cb22948](https://github.com/nextcloud/contacts/commit/cb229480073afe45d1ea9fa6237711a056661072))\n* **l10n:** Update translations from Transifex ([a5f10c1](https://github.com/nextcloud/contacts/commit/a5f10c115a27745c81e7fd1bce6b7c0fc953a8ee))\n* **l10n:** Update translations from Transifex ([f46c703](https://github.com/nextcloud/contacts/commit/f46c703c8527936ed18ba8a34077d1fe1962b7f6))\n* **l10n:** Update translations from Transifex ([1bd40eb](https://github.com/nextcloud/contacts/commit/1bd40ebc0a196a957c604653fb5648f0b0903653))\n* **l10n:** Update translations from Transifex ([071bd72](https://github.com/nextcloud/contacts/commit/071bd72aab5957a3e72ae687f1fca52d07584cf3))\n* **l10n:** Update translations from Transifex ([a6b517c](https://github.com/nextcloud/contacts/commit/a6b517c5ca3f41e972b10346adae07b413802a89))\n* **l10n:** Update translations from Transifex ([00dd7f0](https://github.com/nextcloud/contacts/commit/00dd7f09c74b5325d673151a0b3fae55362759f9))\n* **l10n:** Update translations from Transifex ([a086ba8](https://github.com/nextcloud/contacts/commit/a086ba88fe54b34dc2d7d8b38e6627122ba60e24))\n* **l10n:** Update translations from Transifex ([8b7f2d8](https://github.com/nextcloud/contacts/commit/8b7f2d81cdd60ae4ad41b4e6d0102e3321cd5305))\n* **l10n:** Update translations from Transifex ([aa8b8a4](https://github.com/nextcloud/contacts/commit/aa8b8a4970c6fbb5a2652992c149be154f6227f9))\n* **l10n:** Update translations from Transifex ([4bf7b49](https://github.com/nextcloud/contacts/commit/4bf7b49a1d025eae1ca983b10d1ee94400b6aab1))\n* **l10n:** Update translations from Transifex ([142abf1](https://github.com/nextcloud/contacts/commit/142abf1268bfe71b5cedbb286f2536e7f1c04beb))\n* **l10n:** Update translations from Transifex ([20605be](https://github.com/nextcloud/contacts/commit/20605beaad0374d8bd3ce6d0a96cae5344d5636e))\n* **l10n:** Update translations from Transifex ([9b66ad3](https://github.com/nextcloud/contacts/commit/9b66ad32d7f0d89deb3e78ea3d375359773633f6))\n* **l10n:** Update translations from Transifex ([6d8101d](https://github.com/nextcloud/contacts/commit/6d8101d1e41d36ac893686e479b50107b301ebe6))\n* **l10n:** Update translations from Transifex ([8fdf9a9](https://github.com/nextcloud/contacts/commit/8fdf9a9072f8197323e1582c5be4e5525897fdcb))\n* **l10n:** Update translations from Transifex ([866bdb0](https://github.com/nextcloud/contacts/commit/866bdb01136fd42da63fad180221023deca209f2))\n* **l10n:** Update translations from Transifex ([8028a7d](https://github.com/nextcloud/contacts/commit/8028a7d19e02636768c9f3d124c6a64978b6c124))\n* **l10n:** Update translations from Transifex ([c21fbbc](https://github.com/nextcloud/contacts/commit/c21fbbc5678837b526c4eaeac09832e095860871))\n* **l10n:** Update translations from Transifex ([7eaff84](https://github.com/nextcloud/contacts/commit/7eaff8466aa9a9d9e53a64c678a158777d7bb4c2))\n* **l10n:** Update translations from Transifex ([9b9a85b](https://github.com/nextcloud/contacts/commit/9b9a85bddaf2b7d83fd5de24cfac342034a130db))\n* **l10n:** Update translations from Transifex ([d0d2007](https://github.com/nextcloud/contacts/commit/d0d2007aa64751c3d48d028546565247eb355c24))\n* **l10n:** Update translations from Transifex ([e70b955](https://github.com/nextcloud/contacts/commit/e70b95536c17856d8ccc10bac7917d5f8d7224e3))\n* **l10n:** Update translations from Transifex ([81df9af](https://github.com/nextcloud/contacts/commit/81df9af02eee63fe1b99a7843c1c76bd82440ab9))\n* **l10n:** Update translations from Transifex ([e4e5426](https://github.com/nextcloud/contacts/commit/e4e5426c0be51e4b56e0f9fb0eea9e83809bf960))\n* **l10n:** Update translations from Transifex ([b352fcb](https://github.com/nextcloud/contacts/commit/b352fcbf0da6e3caddba6d79a9edd60a79a3cfbe))\n* **l10n:** Update translations from Transifex ([a6a1fbc](https://github.com/nextcloud/contacts/commit/a6a1fbcf53d082eebe14d964e299105970818fe7))\n* **l10n:** Update translations from Transifex ([1d7f6f0](https://github.com/nextcloud/contacts/commit/1d7f6f0180bc7ea75ac0c9c7b7dea47f5114f6b1))\n* **l10n:** Update translations from Transifex ([d7b7ccd](https://github.com/nextcloud/contacts/commit/d7b7ccd3a3af381b0d8983983d2d18f5dbfdd6fb))\n* **l10n:** Update translations from Transifex ([9e10bb8](https://github.com/nextcloud/contacts/commit/9e10bb8791cf7fd750cda26e4b63100e9b1bce3b))\n* **l10n:** Update translations from Transifex ([20a040c](https://github.com/nextcloud/contacts/commit/20a040ce4fe69ecc952ec4d92ac4ffc92928ba67))\n* **l10n:** Update translations from Transifex ([e149550](https://github.com/nextcloud/contacts/commit/e1495501cf46834e5432144eb94035397c00eba5))\n* **l10n:** Update translations from Transifex ([b103581](https://github.com/nextcloud/contacts/commit/b103581ca82a50048e91dc1144c95a8f11b931a0))\n* **l10n:** Update translations from Transifex ([7c54c65](https://github.com/nextcloud/contacts/commit/7c54c65cd5b60641ec0e259d401974825a4b4375))\n* **l10n:** Update translations from Transifex ([96cfca2](https://github.com/nextcloud/contacts/commit/96cfca26ac34e9603dd873bee9d11aea110345a6))\n* **l10n:** Update translations from Transifex ([ee78102](https://github.com/nextcloud/contacts/commit/ee781026553179aadd5678e09b9cb94867dd2436))\n* **l10n:** Update translations from Transifex ([8312597](https://github.com/nextcloud/contacts/commit/8312597f78fc3fc4e7da1bbad007bcf39bbbe6bb))\n* **l10n:** Update translations from Transifex ([a1e23cb](https://github.com/nextcloud/contacts/commit/a1e23cb927b56890cdd37337017be5c5a2ab4813))\n* **l10n:** Update translations from Transifex ([b625357](https://github.com/nextcloud/contacts/commit/b625357ac6a1dc58e590506726e16d40c535a18e))\n* **l10n:** Update translations from Transifex ([6fa3d59](https://github.com/nextcloud/contacts/commit/6fa3d59cd7985141c9b42281d2a1ea4c3f6ca640))\n* **l10n:** Update translations from Transifex ([f08c1af](https://github.com/nextcloud/contacts/commit/f08c1af336b69a179255a3f37af31b5a3acf8837))\n* **l10n:** Update translations from Transifex ([9e028b4](https://github.com/nextcloud/contacts/commit/9e028b43e5fba00d0b3e9b61aac55062ef5bead5))\n* **l10n:** Update translations from Transifex ([09c766a](https://github.com/nextcloud/contacts/commit/09c766a25de01418e01a159c57c3b838d7ca68c3))\n* **l10n:** Update translations from Transifex ([29a7c43](https://github.com/nextcloud/contacts/commit/29a7c432f3e53c062f96bdf5597cf678a6aac183))\n* **l10n:** Update translations from Transifex ([2016bf3](https://github.com/nextcloud/contacts/commit/2016bf3ee605f9953bbf5839e319cbd25362fea7))\n* **l10n:** Update translations from Transifex ([bf2fa16](https://github.com/nextcloud/contacts/commit/bf2fa169252094d05d473f8d777c49d2a69bab3f))\n* **l10n:** Update translations from Transifex ([4405fe8](https://github.com/nextcloud/contacts/commit/4405fe8662021bd55111ab84d1bb25edde1e830b))\n* **l10n:** Update translations from Transifex ([5064ca7](https://github.com/nextcloud/contacts/commit/5064ca7473eae832cd86fa74a3d1866c61605d3c))\n* **l10n:** Update translations from Transifex ([fd48b03](https://github.com/nextcloud/contacts/commit/fd48b03c5d1f850fc2657fbd9522c1576dbeb4bc))\n* **l10n:** Update translations from Transifex ([083489a](https://github.com/nextcloud/contacts/commit/083489af0590e128dc0580a6db9b6db442fbee8e))\n* **l10n:** Update translations from Transifex ([8b34248](https://github.com/nextcloud/contacts/commit/8b34248ccee696d06e0a510738a78a5ab1da0caa))\n* **l10n:** Update translations from Transifex ([68df40c](https://github.com/nextcloud/contacts/commit/68df40c00ca5d537d503fb02456720f899a73752))\n* **l10n:** Update translations from Transifex ([ae49d56](https://github.com/nextcloud/contacts/commit/ae49d5649c8d67e2ec9dedadfadd2e7220cddaca))\n* **l10n:** Update translations from Transifex ([26a4ebf](https://github.com/nextcloud/contacts/commit/26a4ebf3aaa49ac077972bbaae16b19d9aa43753))\n* **l10n:** Update translations from Transifex ([cde151f](https://github.com/nextcloud/contacts/commit/cde151ff7812ca6efb6b83376252152e71b24ea1))\n* **l10n:** Update translations from Transifex ([4bdd7dd](https://github.com/nextcloud/contacts/commit/4bdd7ddfe6163cda6206c9cb3d51b3df45446fc4))\n* **l10n:** Update translations from Transifex ([b0aa7bc](https://github.com/nextcloud/contacts/commit/b0aa7bcf580cd9e403820327fe572bd2cd518cf1))\n* **l10n:** Update translations from Transifex ([0c1dd9f](https://github.com/nextcloud/contacts/commit/0c1dd9f2878baeb834aaa04609b328b277f9faba))\n* **l10n:** Update translations from Transifex ([4ed7bd8](https://github.com/nextcloud/contacts/commit/4ed7bd8a5bfa64cf7912cd098c757a65f7bc04a5))\n* **l10n:** Update translations from Transifex ([22f2a13](https://github.com/nextcloud/contacts/commit/22f2a133dffef59abccb1c179672225b33756046))\n* **l10n:** Update translations from Transifex ([8c0510c](https://github.com/nextcloud/contacts/commit/8c0510c792080fc4c815f0d670615003f44dcf84))\n* **l10n:** Update translations from Transifex ([8f1925a](https://github.com/nextcloud/contacts/commit/8f1925aff792e156e726860e8f81208647441eea))\n* **l10n:** Update translations from Transifex ([1c367cb](https://github.com/nextcloud/contacts/commit/1c367cb3c4ca6ee64a6fdc27ce3283525f34af32))\n* **l10n:** Update translations from Transifex ([e7389b7](https://github.com/nextcloud/contacts/commit/e7389b7f286eb6946ab892e0e4e6bfb706208af8))\n* **l10n:** Update translations from Transifex ([579315b](https://github.com/nextcloud/contacts/commit/579315be043e9ab4c196e95d80a2617a3c81d286))\n* **l10n:** Update translations from Transifex ([9c57b90](https://github.com/nextcloud/contacts/commit/9c57b90aa23311e01e29a8e6561bd478911e8965))\n* **l10n:** Update translations from Transifex ([73af31e](https://github.com/nextcloud/contacts/commit/73af31ec7f611b94f1c545c74eed353d37d5fa4b))\n* **l10n:** Update translations from Transifex ([cf7cbec](https://github.com/nextcloud/contacts/commit/cf7cbece3a35ebbec1ffc254db23d67e08b3baec))\n* **l10n:** Update translations from Transifex ([7987cf6](https://github.com/nextcloud/contacts/commit/7987cf65f077baa0c33cd5a0b5d02679b8269782))\n* **l10n:** Update translations from Transifex ([aacf691](https://github.com/nextcloud/contacts/commit/aacf69113a58a508e1eb3bfb4f7407821a05b833))\n* **l10n:** Update translations from Transifex ([91b36f8](https://github.com/nextcloud/contacts/commit/91b36f88a5168cdbf80677d4aa620463ac894418))\n* **l10n:** Update translations from Transifex ([7a6a33c](https://github.com/nextcloud/contacts/commit/7a6a33cf8e8dfd210713f56f796fe5b79ef09850))\n* **l10n:** Update translations from Transifex ([a505a09](https://github.com/nextcloud/contacts/commit/a505a09c67809d3d5b5a2ef955ce6de0629563c9))\n* **l10n:** Update translations from Transifex ([dcb6160](https://github.com/nextcloud/contacts/commit/dcb61604a0eafc3d314d3d3d3733884a66acb4a7))\n* **l10n:** Update translations from Transifex ([50ffced](https://github.com/nextcloud/contacts/commit/50ffced5a5657f22004fcd9a246e9fc6fa9b2f46))\n* **l10n:** Update translations from Transifex ([aef743b](https://github.com/nextcloud/contacts/commit/aef743b75d53b68bf504b8422195055a5d39eeae))\n* **l10n:** Update translations from Transifex ([3f8ba46](https://github.com/nextcloud/contacts/commit/3f8ba46570eed2c864be96b7c1ea925c86ef080c))\n* **l10n:** Update translations from Transifex ([dfc1ca9](https://github.com/nextcloud/contacts/commit/dfc1ca9345472c73036b19ce6ea414a41ccfa4bf))\n* **l10n:** Update translations from Transifex ([c67a2d1](https://github.com/nextcloud/contacts/commit/c67a2d15d7264e173c61208a487e2a173d4a644c))\n* **l10n:** Update translations from Transifex ([b5ee336](https://github.com/nextcloud/contacts/commit/b5ee3369ca46ad69803973be8a8c1a72abbe39d7))\n* **l10n:** Update translations from Transifex ([141929f](https://github.com/nextcloud/contacts/commit/141929fa11f397dc32c0b5afd4e241dd8644385d))\n* **l10n:** Update translations from Transifex ([a3f85ea](https://github.com/nextcloud/contacts/commit/a3f85ea8e95676badf633a9170c8c8bef2f1f203))\n* **l10n:** Update translations from Transifex ([e93f9a6](https://github.com/nextcloud/contacts/commit/e93f9a64db21d88a8a40522daad972ae9a5df765))\n* **l10n:** Update translations from Transifex ([b977fd8](https://github.com/nextcloud/contacts/commit/b977fd88d5e7c51f3da31c0403d1db7d02aff9e8))\n* **l10n:** Update translations from Transifex ([1681df1](https://github.com/nextcloud/contacts/commit/1681df11f8c41b85d35a3a9852cb5762b19d8ea8))\n* **l10n:** Update translations from Transifex ([efa65ac](https://github.com/nextcloud/contacts/commit/efa65ac2ca896b606ca0850b5d1920fb9310b20b))\n* **l10n:** Update translations from Transifex ([6972fe9](https://github.com/nextcloud/contacts/commit/6972fe9849bc5c2eafaa1a2c4849c2bc438140c1))\n* **l10n:** Update translations from Transifex ([e4d0c82](https://github.com/nextcloud/contacts/commit/e4d0c823c760821d563b7ed3aa101d9bbb573ee8))\n* **l10n:** Update translations from Transifex ([8478d48](https://github.com/nextcloud/contacts/commit/8478d4860396184a3083f94f9daf6b8b49a9f366))\n* **l10n:** Update translations from Transifex ([6219c9d](https://github.com/nextcloud/contacts/commit/6219c9db36f0b7b4a8b71e8d6f54f0a348aca4c7))\n* **l10n:** Update translations from Transifex ([1ff5b6c](https://github.com/nextcloud/contacts/commit/1ff5b6c2f87c2aaef9cf64c948e9ce76097480cd))\n* **l10n:** Update translations from Transifex ([b6db3e5](https://github.com/nextcloud/contacts/commit/b6db3e56f5652479f7dfd63c9a11576a4ae1e9bc))\n* **l10n:** Update translations from Transifex ([a7ceafb](https://github.com/nextcloud/contacts/commit/a7ceafb7a44c60282bf1d29c9f562d21421d6ae7))\n* **l10n:** Update translations from Transifex ([5451e5a](https://github.com/nextcloud/contacts/commit/5451e5ae3c795f15e9a88df4a0e15308c0805945))\n* **l10n:** Update translations from Transifex ([45675a6](https://github.com/nextcloud/contacts/commit/45675a696182ae82a330c3f73ecb2aaa96a0f806))\n* **l10n:** Update translations from Transifex ([af1237e](https://github.com/nextcloud/contacts/commit/af1237edf1c3163216850254d5489cc1403f9b3b))\n* **l10n:** Update translations from Transifex ([91359e8](https://github.com/nextcloud/contacts/commit/91359e8ab091eba05a9989b06b1189aeaa5c5579))\n* **l10n:** Update translations from Transifex ([428d973](https://github.com/nextcloud/contacts/commit/428d973a9a896b768cb8294da9f2a2dff7de5e73))\n* **l10n:** Update translations from Transifex ([e1c667c](https://github.com/nextcloud/contacts/commit/e1c667c2dd30885e76512a847db50883a75b1687))\n* **l10n:** Update translations from Transifex ([2e24f29](https://github.com/nextcloud/contacts/commit/2e24f294e7446398931b9b36641d0fb91f925ac3))\n* **l10n:** Update translations from Transifex ([8544627](https://github.com/nextcloud/contacts/commit/854462722d37f3525333f09572070b0cbc2d441c))\n* **l10n:** Update translations from Transifex ([fa2214c](https://github.com/nextcloud/contacts/commit/fa2214c17dc93b38f774364a0b4cc421df480864))\n* **l10n:** Update translations from Transifex ([d666eb2](https://github.com/nextcloud/contacts/commit/d666eb2122bad174019cb83363f13f35c8b75cab))\n* **l10n:** Update translations from Transifex ([d274d7f](https://github.com/nextcloud/contacts/commit/d274d7f1818b5d9bbe87b3b746b218cff033b7c9))\n* **l10n:** Update translations from Transifex ([a3cd2c5](https://github.com/nextcloud/contacts/commit/a3cd2c55a4b2471e1dbe3fa48d8b982717e1ef96))\n* **l10n:** Update translations from Transifex ([ecc4b33](https://github.com/nextcloud/contacts/commit/ecc4b336da59f1799a09436f1940373173767bc6))\n* **l10n:** Update translations from Transifex ([fac8d2f](https://github.com/nextcloud/contacts/commit/fac8d2f1e8c0fbe446cc8b9f5a2512b029e76bf9))\n* **l10n:** Update translations from Transifex ([c98a2da](https://github.com/nextcloud/contacts/commit/c98a2dabe0511830c17a77830783e03b5dc12b04))\n* **l10n:** Update translations from Transifex ([72e3606](https://github.com/nextcloud/contacts/commit/72e36063e84d850217d6d97ddda3e7d32fae94f7))\n* **l10n:** Update translations from Transifex ([1bdcd79](https://github.com/nextcloud/contacts/commit/1bdcd79c672cd04b2313d77845d60780887ffe88))\n* **l10n:** Update translations from Transifex ([7f5da02](https://github.com/nextcloud/contacts/commit/7f5da02c9125669b78c9a98c5864a3af14446c77))\n* **l10n:** Update translations from Transifex ([1c31107](https://github.com/nextcloud/contacts/commit/1c31107542351d65ce6799b25a59d0ca52f41318))\n* **l10n:** Update translations from Transifex ([9c9b007](https://github.com/nextcloud/contacts/commit/9c9b007ec3602b63f85e691676e43d1cf3a22ee6))\n* **l10n:** Update translations from Transifex ([4841f20](https://github.com/nextcloud/contacts/commit/4841f202e14ff3a032daeea25118877b2fdaa15c))\n* **l10n:** Update translations from Transifex ([6967ae4](https://github.com/nextcloud/contacts/commit/6967ae45ee03aa3b1e8ee2f1c21476450b34a968))\n* **l10n:** Update translations from Transifex ([ca7e374](https://github.com/nextcloud/contacts/commit/ca7e374e5e8b385c62bc59b77e48a305018219c4))\n* **l10n:** Update translations from Transifex ([b3318c3](https://github.com/nextcloud/contacts/commit/b3318c3c1d82a52ceb8fb5aaab98865a1ee08a31))\n* **l10n:** Update translations from Transifex ([ef2dbd7](https://github.com/nextcloud/contacts/commit/ef2dbd7d712a27683ca40615dc6b70a2778087d3))\n* **l10n:** Update translations from Transifex ([2491e2b](https://github.com/nextcloud/contacts/commit/2491e2bf1c11bf3f536dbc20aed206faa3d2431f))\n* **l10n:** Update translations from Transifex ([fcec8cc](https://github.com/nextcloud/contacts/commit/fcec8cce4b3ce1dda5bf06417e3f7fb0ed5e56cf))\n* **l10n:** Update translations from Transifex ([77d5497](https://github.com/nextcloud/contacts/commit/77d5497d46905aeb9c67e5af188aeb4ad9520c30))\n* **l10n:** Update translations from Transifex ([487b023](https://github.com/nextcloud/contacts/commit/487b023c65feb81716b056ed91ca192bf66b8320))\n* **l10n:** Update translations from Transifex ([66f0ea1](https://github.com/nextcloud/contacts/commit/66f0ea1fa0c4a66a5cd74e25763ba04e578d6b39))\n* **l10n:** Update translations from Transifex ([f48891e](https://github.com/nextcloud/contacts/commit/f48891e3052f474e57bd568ac5d8fe53a0a65788))\n* **l10n:** Update translations from Transifex ([39d578e](https://github.com/nextcloud/contacts/commit/39d578e2d5b58f4944c5b69beedcae1916606bcd))\n* **l10n:** Update translations from Transifex ([5d7285c](https://github.com/nextcloud/contacts/commit/5d7285c746f58ded5e018ab34b66d29c117548a5))\n* **l10n:** Update translations from Transifex ([4334ec7](https://github.com/nextcloud/contacts/commit/4334ec7f1db9f256fdd6fbbf5181833af7d483da))\n* **l10n:** Update translations from Transifex ([7a9c18c](https://github.com/nextcloud/contacts/commit/7a9c18c4d657c2126c6390d9836f6d38d97243b7))\n* **l10n:** Update translations from Transifex ([ad363d5](https://github.com/nextcloud/contacts/commit/ad363d5d77407a1b934e9dab7e1beba488cd73d3))\n* **l10n:** Update translations from Transifex ([f67a9b5](https://github.com/nextcloud/contacts/commit/f67a9b56f4feed3bf11793a73c05ad05a399910b))\n* **l10n:** Update translations from Transifex ([bf94c7c](https://github.com/nextcloud/contacts/commit/bf94c7c095b1efa4c3c9c769adf8e4f079cf4ddc))\n* **l10n:** Update translations from Transifex ([bf5136b](https://github.com/nextcloud/contacts/commit/bf5136b4721bf4bb40d570ac355e6117abfeea6b))\n* **l10n:** Update translations from Transifex ([38aef0c](https://github.com/nextcloud/contacts/commit/38aef0caaa6f78a13aef04336efd8ab1983e5712))\n* **l10n:** Update translations from Transifex ([2f43d75](https://github.com/nextcloud/contacts/commit/2f43d75c9e80e762681d7b0ec5abbb091ded49e9))\n* **l10n:** Update translations from Transifex ([69b5030](https://github.com/nextcloud/contacts/commit/69b5030302fea6d5913f8ef06070b2f0bdca4d3e))\n* **l10n:** Update translations from Transifex ([7bd3309](https://github.com/nextcloud/contacts/commit/7bd330948d91c470da852f2a7090ed0eb5f5be7f))\n* **l10n:** Update translations from Transifex ([45bd927](https://github.com/nextcloud/contacts/commit/45bd92789c310e2e6f691551b8b5bb7fb4524bcd))\n* **l10n:** Update translations from Transifex ([c12b745](https://github.com/nextcloud/contacts/commit/c12b74530449ef11d6402df9789ac99538b3a9b1))\n* **l10n:** Update translations from Transifex ([15e9313](https://github.com/nextcloud/contacts/commit/15e9313d6dec1dd53cbd535e6f2ecd0c4ec6ceaf))\n* **l10n:** Update translations from Transifex ([ad1890b](https://github.com/nextcloud/contacts/commit/ad1890bc8fc0747a68b71c03bb235cde7f689ff0))\n* **l10n:** Update translations from Transifex ([b83a356](https://github.com/nextcloud/contacts/commit/b83a356a106f44ed959d332fbb9ed43185f5131d))\n* **l10n:** Update translations from Transifex ([b46db45](https://github.com/nextcloud/contacts/commit/b46db45d690da3a4d2c2a8945870e1b5367038fb))\n* **l10n:** Update translations from Transifex ([9d34e54](https://github.com/nextcloud/contacts/commit/9d34e549b804c374d5499c7c28d75268a3601a2d))\n* **l10n:** Update translations from Transifex ([3cf84c8](https://github.com/nextcloud/contacts/commit/3cf84c839fb5940a5b2dff302194dd0ba059fea2))\n* **l10n:** Update translations from Transifex ([d07b1d7](https://github.com/nextcloud/contacts/commit/d07b1d75541925bccb9afc9109a42013d3d4a1be))\n* **l10n:** Update translations from Transifex ([27d4b89](https://github.com/nextcloud/contacts/commit/27d4b896cde01a140164c2422d91355b9bae14e4))\n* **l10n:** Update translations from Transifex ([fc4496b](https://github.com/nextcloud/contacts/commit/fc4496b8c60958c05d7864ec149ca02d4f80c364))\n* **l10n:** Update translations from Transifex ([8dfe46a](https://github.com/nextcloud/contacts/commit/8dfe46a9a6fbd5d3fdf0c2258600f60f786ca662))\n* **l10n:** Update translations from Transifex ([ee1aeec](https://github.com/nextcloud/contacts/commit/ee1aeecc939466b0dd220478dcc3cb8d261a0370))\n* **l10n:** Update translations from Transifex ([96671b8](https://github.com/nextcloud/contacts/commit/96671b806471452c6b027ab63581e0baea613187))\n* **l10n:** Update translations from Transifex ([b66788d](https://github.com/nextcloud/contacts/commit/b66788d6fbf72e8ed03345c403f4dd641bc31d6b))\n* **l10n:** Update translations from Transifex ([2012c28](https://github.com/nextcloud/contacts/commit/2012c28591f201c9af68e06ac2328c79a4808b4f))\n* **l10n:** Update translations from Transifex ([713c7cf](https://github.com/nextcloud/contacts/commit/713c7cfbe7b91833c14d3e761b3d93d31f29abf2))\n* **l10n:** Update translations from Transifex ([1a818fb](https://github.com/nextcloud/contacts/commit/1a818fb75cbcea8104465b6db80af95f79f6610c))\n* **l10n:** Update translations from Transifex ([5370c2e](https://github.com/nextcloud/contacts/commit/5370c2e0aedd9ee878f9d3fca1962d3c4971a324))\n* **l10n:** Update translations from Transifex ([e9b4fbd](https://github.com/nextcloud/contacts/commit/e9b4fbd6b14dd97e3807980cdaa94d145eb5244d))\n* **l10n:** Update translations from Transifex ([a85efeb](https://github.com/nextcloud/contacts/commit/a85efeba20acc58b19e68f7fd6b3b52a5a320c15))\n* **l10n:** Update translations from Transifex ([19fb787](https://github.com/nextcloud/contacts/commit/19fb787dd14ccbf58b8c6f72df315abe6bcbf58a))\n* **l10n:** Update translations from Transifex ([4f47f6c](https://github.com/nextcloud/contacts/commit/4f47f6c75bb03a3add5b44d2d990844de8667b2f))\n* **l10n:** Update translations from Transifex ([ddf4a49](https://github.com/nextcloud/contacts/commit/ddf4a49d450e636c699feaec711585dfd3b473a5))\n* **l10n:** Update translations from Transifex ([d22489b](https://github.com/nextcloud/contacts/commit/d22489ba3f5c2c75a240a127cf2e0839bd6ab21f))\n* **l10n:** Update translations from Transifex ([e8fce52](https://github.com/nextcloud/contacts/commit/e8fce529bb07a164fcc0aac44d59ecd86a6d06ea))\n* **l10n:** Update translations from Transifex ([f011570](https://github.com/nextcloud/contacts/commit/f011570c84202ace2d59b56b24bcf66d369f026c))\n* **l10n:** Update translations from Transifex ([63b3872](https://github.com/nextcloud/contacts/commit/63b38724039d53fa756775d8510d05e8a02e34dd))\n* **l10n:** Update translations from Transifex ([a54c58a](https://github.com/nextcloud/contacts/commit/a54c58a47fd731b9be7029412eba159b392e70af))\n* **l10n:** Update translations from Transifex ([7eb5d0f](https://github.com/nextcloud/contacts/commit/7eb5d0fecbe50b842d3865a7e106c4edf1d9ca02))\n* **l10n:** Update translations from Transifex ([7ac5bf6](https://github.com/nextcloud/contacts/commit/7ac5bf60a30126b8fc3d7a6c506a8f6f5ae776ef))\n* **l10n:** Update translations from Transifex ([ddba290](https://github.com/nextcloud/contacts/commit/ddba290f786e1ee6f5ba05e1640640e6eb9a6788))\n* **l10n:** Update translations from Transifex ([c7c67da](https://github.com/nextcloud/contacts/commit/c7c67da0066e575762e080f52770bcaacac5b1f0))\n* **l10n:** Update translations from Transifex ([0d4f95e](https://github.com/nextcloud/contacts/commit/0d4f95eee3fc442337ca20e58ed510a00857044e))\n* **l10n:** Update translations from Transifex ([10d4cfe](https://github.com/nextcloud/contacts/commit/10d4cfedbcc506b481dc8abc95ac7567cfc33bb4))\n* **l10n:** Update translations from Transifex ([aec6949](https://github.com/nextcloud/contacts/commit/aec69496d7b18e9420a717c8838d61c72266f963))\n* **l10n:** Update translations from Transifex ([a0a2fb8](https://github.com/nextcloud/contacts/commit/a0a2fb88503df7bfa9c66ee32a4a0300986fd4b6))\n* **l10n:** Update translations from Transifex ([5bb2d43](https://github.com/nextcloud/contacts/commit/5bb2d4365720b62318f0c6d5c56fcdf226f7ce36))\n* **l10n:** Update translations from Transifex ([081a6b0](https://github.com/nextcloud/contacts/commit/081a6b0f491c717f1fa7c63aa4aeb6718ce639fa))\n* **l10n:** Update translations from Transifex ([a113351](https://github.com/nextcloud/contacts/commit/a11335125599bb17eba8ed97eb02454907b4e5ac))\n* **l10n:** Update translations from Transifex ([fa6b898](https://github.com/nextcloud/contacts/commit/fa6b898bd904c0a8450fb9543ebba0eeb90cd6a3))\n* **l10n:** Update translations from Transifex ([4ad2703](https://github.com/nextcloud/contacts/commit/4ad2703ad9e61176590c35e3fb707d5fe537e9d4))\n* **l10n:** Update translations from Transifex ([0e9ae91](https://github.com/nextcloud/contacts/commit/0e9ae915bc5909b0b8b5fb9926861472115c8bb9))\n* **l10n:** Update translations from Transifex ([543b6bf](https://github.com/nextcloud/contacts/commit/543b6bf76d9ccdeafd7a53a41aff386f89403b5e))\n* **l10n:** Update translations from Transifex ([48e50db](https://github.com/nextcloud/contacts/commit/48e50dbe528232192d500c4495f8dceb8a63bbcf))\n* **l10n:** Update translations from Transifex ([33a5d99](https://github.com/nextcloud/contacts/commit/33a5d99441b6743a04ca82da8fd4fc4c856d7685))\n* **l10n:** Update translations from Transifex ([3ead8eb](https://github.com/nextcloud/contacts/commit/3ead8eb8b5cb2d696f83bd9ed9e918d3ab83f343))\n* **l10n:** Update translations from Transifex ([43115c2](https://github.com/nextcloud/contacts/commit/43115c268be30e3d6d6af268988e49d4814f3a35))\n* **l10n:** Update translations from Transifex ([76b2e72](https://github.com/nextcloud/contacts/commit/76b2e720c68bca2879c0b795b36bb53141c098a5))\n* **l10n:** Update translations from Transifex ([caab18e](https://github.com/nextcloud/contacts/commit/caab18ee063ba3534b78f0f08b460a0966f59376))\n* **l10n:** Update translations from Transifex ([13b69e7](https://github.com/nextcloud/contacts/commit/13b69e7b3c2c3d3becd3f6f6209c642ef73f7be1))\n* **l10n:** Update translations from Transifex ([a7b347e](https://github.com/nextcloud/contacts/commit/a7b347eb9b30581e387ec3740d74b1b1e21575d1))\n* **l10n:** Update translations from Transifex ([852739b](https://github.com/nextcloud/contacts/commit/852739bb389e44d1a369f37e7950878eba658733))\n* **l10n:** Update translations from Transifex ([cf5ae3e](https://github.com/nextcloud/contacts/commit/cf5ae3e476dad72bdab8bfdb87f8452e198c6d21))\n* **l10n:** Update translations from Transifex ([0714ac0](https://github.com/nextcloud/contacts/commit/0714ac049c8e272c33c2544451fa1569d20a7e54))\n* **l10n:** Update translations from Transifex ([1d4ae6e](https://github.com/nextcloud/contacts/commit/1d4ae6edca44802e43d148548765c89ffd32b1ec))\n* **l10n:** Update translations from Transifex ([9456773](https://github.com/nextcloud/contacts/commit/9456773f28636b6dc22680c89dcabd76755ed490))\n* **l10n:** Update translations from Transifex ([7260513](https://github.com/nextcloud/contacts/commit/7260513c8b72cf0e76cc162e3a8360bcad27008a))\n* **l10n:** Update translations from Transifex ([5dbac3d](https://github.com/nextcloud/contacts/commit/5dbac3d0778f1fb1fc56f9a5f1a90cef4af812fb))\n* lint error ([90fcf1c](https://github.com/nextcloud/contacts/commit/90fcf1cf3f87f9dc4a896d0339b7ed9324519a61))\n* **lint-php-cs:** use minimum available php version ([650eebf](https://github.com/nextcloud/contacts/commit/650eebf91854dc8b671120b176023bb4b81cf500))\n* log error while saving contact ([d3ac0ed](https://github.com/nextcloud/contacts/commit/d3ac0ed9f6f633a6857bfc261a7c283673004d09))\n* long contact name overlapping with other content ([1db37fb](https://github.com/nextcloud/contacts/commit/1db37fb0e3a51d9dd046be576723f2ed9891659e))\n* Make circle members visible again by moving them out of the modal ([f25e5d1](https://github.com/nextcloud/contacts/commit/f25e5d13271346d13b76a40c4418b095d6e2eab2))\n* make property labels accessible ([f5a66f7](https://github.com/nextcloud/contacts/commit/f5a66f78a26c7d7bd9e9e2c6dd4cb2f62c22569d))\n* **MemberList:** Don't use VirtualList for listing members ([3bf8e6c](https://github.com/nextcloud/contacts/commit/3bf8e6c797fddcc836ef5a8dbfb81373185d7ddb)), closes [#3996](https://github.com/nextcloud/contacts/issues/3996)\n* **MembersListItem:** Adjustments to ListItemIcon properties ([5bb226f](https://github.com/nextcloud/contacts/commit/5bb226f36aa538f98424341b7b5fa8129d277c20))\n* **Members:** Rename 'Contact groups' to 'groups' ([2d98c29](https://github.com/nextcloud/contacts/commit/2d98c296f8da282f340b4afaed157ae25f6fde49)), closes [#3607](https://github.com/nextcloud/contacts/issues/3607)\n* **Merging:** bdays weren't working and misalignments ([fc2895f](https://github.com/nextcloud/contacts/commit/fc2895fb155a79c6a9b7c09fffd7d3dff252c82b))\n* missing getLocale import ([968cc6c](https://github.com/nextcloud/contacts/commit/968cc6c1caf1a23b496d4f583b235e6c9710724c))\n* **navigation:** derive OCM invites active state from the route ([5122940](https://github.com/nextcloud/contacts/commit/5122940874b373241ea9841659175a12183120a9))\n* omit year for birthdays ([3b9cf5f](https://github.com/nextcloud/contacts/commit/3b9cf5f1f06034c46294cf30d8ea4b69284171ba))\n* **org-charts:** add missing logger import ([81d4aa6](https://github.com/nextcloud/contacts/commit/81d4aa6f5c92d1c0a3ea6fdea6c712a854d5b5f9))\n* **orgchart:** revive node highlighting ([5f2f6d7](https://github.com/nextcloud/contacts/commit/5f2f6d7132db865035e5779786b44f83b88e0fab))\n* pre fetch note field to enable searching ([fea656e](https://github.com/nextcloud/contacts/commit/fea656eb7eaec827645457737750323f820138e4))\n* **PropertyDateTime:** date formatting ([25ba4c8](https://github.com/nextcloud/contacts/commit/25ba4c8f35c1ec99e52c8c27d20b201bd1a46027))\n* **PropertyRev:** make text have accessible contrast ([c219f8e](https://github.com/nextcloud/contacts/commit/c219f8ef2e567b7e786bb83332a3230e0b61a4f0))\n* **PropertyText,PropertyMultipleText:** make readonly inputs p for proper wrapping and a11y ([9a1ae13](https://github.com/nextcloud/contacts/commit/9a1ae13f6f7087a78016085e75b2e245195e1774))\n* **PropertyText:** textarea auto resizing ([5c6a510](https://github.com/nextcloud/contacts/commit/5c6a510181010a46df3e708c900992ab1369804e))\n* **PropertyTitle:** fix property undefined ([06d43e5](https://github.com/nextcloud/contacts/commit/06d43e5c70e15f80ae514d7b027c3175f00d756d))\n* **proprety-text:** only resize text area when the ref is defined ([6a067eb](https://github.com/nextcloud/contacts/commit/6a067ebf3660a2d00ae63d1b4f8e87229f541d57))\n* **ReadOnlyContactDetails:** match by all email addresses for a contact ([c3c09b5](https://github.com/nextcloud/contacts/commit/c3c09b5ea98608b2263a9c3767a03858423595f3))\n* **ReadOnlyContactDetails:** remove box shadow ([87be2f4](https://github.com/nextcloud/contacts/commit/87be2f4e772d9008fd77a872ec8ae7b588f8f435))\n* redesign seetings toggle to Nextcloud 30 style ([3e2e7e3](https://github.com/nextcloud/contacts/commit/3e2e7e37639c5a6a13dd40d2b794a917a387ef9c))\n* reference error in property text ([d0b5100](https://github.com/nextcloud/contacts/commit/d0b5100d4c8b057b815ff1dedd13bb37a0e5325d))\n* **release:** Fix wget output option ([75c3b5b](https://github.com/nextcloud/contacts/commit/75c3b5b94038ebd87d9cb583a2f94a93d01a3b17))\n* remove app-content-details from global styling ([12707c4](https://github.com/nextcloud/contacts/commit/12707c44de901e44950cb37df6cc3fd1f1f17303))\n* remove console log ([4f17fdc](https://github.com/nextcloud/contacts/commit/4f17fdcd68c47074d3327e8dfaf1c23c52fc1c07))\n* remove create deck board button ([7dcd480](https://github.com/nextcloud/contacts/commit/7dcd480edfb821b4d3d57656588c08ea5b33da75))\n* remove loading contacts-index style ([eca822f](https://github.com/nextcloud/contacts/commit/eca822f6850254d7122b7588c572c101d6e11fd8))\n* remove prop mutation ([cec394e](https://github.com/nextcloud/contacts/commit/cec394e8e6b9d4fab324d0a63b94ba768928af3f))\n* remove redundant check ([561922f](https://github.com/nextcloud/contacts/commit/561922f3fd6d02a00135367d317c732fcdfa7ee6))\n* remove skype and add whatsapp and discord ([e8d4765](https://github.com/nextcloud/contacts/commit/e8d4765a04b83d94b819dd563ec554336c9c4290))\n* remove unused style ([2f0282a](https://github.com/nextcloud/contacts/commit/2f0282a354dad9b49165eb635337f9b9cd7960e3))\n* removed references to v-tooltip directive ([ca28803](https://github.com/nextcloud/contacts/commit/ca2880357588c294b047d5f857009a971f04f1a3))\n* rename circle to team for clarity ([5e2f8b7](https://github.com/nextcloud/contacts/commit/5e2f8b76ba4a901ce8186dccddc8634752d13eee))\n* rename feature circles to feature teams ([ebfe7fe](https://github.com/nextcloud/contacts/commit/ebfe7fe5fbb339fa8887fd18de2c66c3e2c4bb6b))\n* rendering of phone numbers ([fba5432](https://github.com/nextcloud/contacts/commit/fba54325dff0a6d7ebc235de14d67de55eefe930)), closes [/github.com/nextcloud/contacts/pull/1393#issuecomment-570945735](https://github.com//github.com/nextcloud/contacts/pull/1393/issues/issuecomment-570945735)\n* resource url ([35ea754](https://github.com/nextcloud/contacts/commit/35ea754c9a23549c0218b8716404873173d46e64))\n* respect advanced group sharing settings in frontend ([5450606](https://github.com/nextcloud/contacts/commit/5450606f4832da9e0c60168f827d287423832dfd))\n* responsivness for contacts details ([71d3bc9](https://github.com/nextcloud/contacts/commit/71d3bc972b102e43fde5495420928eaf68d04e11))\n* restore breaking changes of OCA.Contacts.mountContactDetails ([84233f8](https://github.com/nextcloud/contacts/commit/84233f85a1cea696eca05fcc55b6bc184505337c))\n* rev timestamp on contact update ([6a0bb38](https://github.com/nextcloud/contacts/commit/6a0bb38a05be95c8f4ecfd317bf1b92711015f6b))\n* Revert \"feat: add cancel button for contact editing\" ([1e7c21a](https://github.com/nextcloud/contacts/commit/1e7c21a51beecd2e63215864343d7eaf109425e7))\n* **router:** redirect profile details view to internal contacts list ([059c1b4](https://github.com/nextcloud/contacts/commit/059c1b4a5a8b1ca92410b335cec0bbdaac3d7ff3))\n* **router:** refactor the generating of a contact key ([812eeb7](https://github.com/nextcloud/contacts/commit/812eeb75160c523eba9cd254c52a314d3e51c5bc))\n* **routes:** navigation and not founnd ([6837bbf](https://github.com/nextcloud/contacts/commit/6837bbf5fab52f456c748780f031008a1dd90d97))\n* routing based on base64 encoding ([37f4b12](https://github.com/nextcloud/contacts/commit/37f4b1256d65cdd4234f8d4041e36d00700db1f6))\n* **Routing:** add proper routing for circles ([a0a80c9](https://github.com/nextcloud/contacts/commit/a0a80c9f11cd8fb934699ffd92ac9d822e115eaf))\n* scrobbale button in navigation ([195a58e](https://github.com/nextcloud/contacts/commit/195a58e74f8f7ba03888ef15abc12f6630d45c5b))\n* search should have a way to clear contents ([54e8f32](https://github.com/nextcloud/contacts/commit/54e8f32744a9574290bbd5f6510166daa0987d10))\n* **SettingsAddressbook:** prevent sharing an addressbook that has been shared with you ([0baba7a](https://github.com/nextcloud/contacts/commit/0baba7ab6b1ae502df5e41c5ed1d8a674cbf0320))\n* **settings:** clarify settings option for open circle ([0aba545](https://github.com/nextcloud/contacts/commit/0aba5455be6362c1e5e5306a4c71cab34097ec28))\n* **settings:** read social sync initial state as boolean ([2fc4abb](https://github.com/nextcloud/contacts/commit/2fc4abb052f4a58a51fe39d96a51d640a1b7fe13)), closes [#5561](https://github.com/nextcloud/contacts/issues/5561)\n* **SettingsSortContacts:** update it to latest NcSelect ([994ceaf](https://github.com/nextcloud/contacts/commit/994ceafe69752bb0b9a5b29eea50b941408ea5dc))\n* share address books with user groups ([6e87aca](https://github.com/nextcloud/contacts/commit/6e87aca3c4406cebc4b0699a489bd247355c91b3))\n* **sharing:** fix ShareAPI disabled for group list JSON deserialization to array ([97ce69d](https://github.com/nextcloud/contacts/commit/97ce69decfa9aec30c5cc910ccfa258a54d5fc68))\n* show address book in read only mode ([249654f](https://github.com/nextcloud/contacts/commit/249654f2336f6fe723508ba3483b2c8208c978b7))\n* show error on empty group name ([92aa49c](https://github.com/nextcloud/contacts/commit/92aa49c551658384cfd59fece2d3b1635bd0bead))\n* Slot name from title to name for UserBubble ([e4e4939](https://github.com/nextcloud/contacts/commit/e4e4939ee7335f538e500a07a3275cf229580ef3))\n* **socialApi:** add a key-allowlist for setting user config ([14a1c50](https://github.com/nextcloud/contacts/commit/14a1c506c8f849c02927e02b875e377be7d0b1a0))\n* **socialApi:** check avatar mimetype againt allow list ([9ac2684](https://github.com/nextcloud/contacts/commit/9ac26847eff549cae7153a97b7b906538bc25388))\n* **SocialApi:** Ensure the address book permissions are sufficent before doing update ([be156c8](https://github.com/nextcloud/contacts/commit/be156c84cd6c20a8afe67c260733de5ff200968a))\n* **SocialApi:** Respect global social media settings ([c6e6662](https://github.com/nextcloud/contacts/commit/c6e6662659db4f0051f4908ff8ca0d2c70a8e70c))\n* **socialavatar:** Match base class argument name ([b0abe36](https://github.com/nextcloud/contacts/commit/b0abe36e461da17a550f119b4a11c18e7a6c290e))\n* **socialavatars:** Fix HTTP client usage ([687ab6b](https://github.com/nextcloud/contacts/commit/687ab6b81d61d6a8cfa278d01f491df21ed6eb03))\n* specify origin of request when search for users ([aaa9fc5](https://github.com/nextcloud/contacts/commit/aaa9fc586804fa461447599e3a2af229647f251a))\n* **store:** keep new contacts in the sorted index ([4ff61da](https://github.com/nextcloud/contacts/commit/4ff61da50ccf44e1d416deff4eb8750f8bc8c61f))\n* **styleint:** apply rtl fixes ([8590f5a](https://github.com/nextcloud/contacts/commit/8590f5ae40b1fbc47e09d818c05d0a8c48d7b183))\n* support for RFC 6474 ([b4e205d](https://github.com/nextcloud/contacts/commit/b4e205d946cec2c88eb4d1541c4295c82223a463))\n* **teams:** always use populationInherited for population count and update count on population change ([b59a6f0](https://github.com/nextcloud/contacts/commit/b59a6f010211042d1588ca0be99b900a461dab7e))\n* **teams:** circular Talk previews, border-radius-small for Files previews ([194f057](https://github.com/nextcloud/contacts/commit/194f0579e90dc1e635184e77f980a8de8378023c))\n* **teams:** Make team resources scrollable ([b43c524](https://github.com/nextcloud/contacts/commit/b43c52456390724f7975d3a702c2571dfc9b61f2))\n* **teams:** remove results from remote servers when federation is not enabled for the team ([e15dfc8](https://github.com/nextcloud/contacts/commit/e15dfc83d10e0130afad90a6e96dc4ac34875c33))\n* **teams:** remove results from untrusted remote servers when searching for members to add ([e8f3acb](https://github.com/nextcloud/contacts/commit/e8f3acbe50583488c291449d1762f6313789735f))\n* **teams:** replace 'Team folder' create button with 'Folder' and add notice text ([b37eb3e](https://github.com/nextcloud/contacts/commit/b37eb3e0d90a48e25e7153e4df75107ed6ba5cb5))\n* **teams:** Restore accept/reject requests in new ui ([19fc210](https://github.com/nextcloud/contacts/commit/19fc210198c3303b10a055bad2ba57e7fe43b30c))\n* **teams:** Restore member management in new ui ([4d0bb51](https://github.com/nextcloud/contacts/commit/4d0bb51eb5fc1380a034fd1136c7b0b1ee7cb46a))\n* **teams:** Save team name and description on Save button click ([2e6aa13](https://github.com/nextcloud/contacts/commit/2e6aa13812b5761faa62acbf490a4199be8bf093))\n* **teams:** support federated users search when adding team members ([e2b382f](https://github.com/nextcloud/contacts/commit/e2b382f680cac30067a0b5756ddf3c1e1edd517c))\n* **test:** wrong addressbook key return type ([9886f2e](https://github.com/nextcloud/contacts/commit/9886f2e0b0203b197c651cab5ce4f1b4374825ec))\n* **transifex:** use correct app name ([b0e1bbb](https://github.com/nextcloud/contacts/commit/b0e1bbb8fec3c7865c0ca98ea69d7c7d063a3788))\n* translation for recently contacted not working ([890d97d](https://github.com/nextcloud/contacts/commit/890d97d82aee445f94b8857cabfc30b36b58f29a))\n* **ui:** escape organization/title properties ([3644ed4](https://github.com/nextcloud/contacts/commit/3644ed45c51d4b12a30b74a25b30e62be880f3d1))\n* unify `allowSocialSync` frontend type ([a4fff13](https://github.com/nextcloud/contacts/commit/a4fff138129bb4a5643a15abd19dd814920a6b55))\n* update icon work ([b224e5e](https://github.com/nextcloud/contacts/commit/b224e5eebaf0a3abf9c40f386d18b8b258267237))\n* update store state after addressbook change ([d353697](https://github.com/nextcloud/contacts/commit/d353697331c879dd5551305cc590c21b1e0669ec))\n* use @nextcloud/momentjs for automatic locale detection/import ([044d46f](https://github.com/nextcloud/contacts/commit/044d46f0f4810cfd8ed29870a272b4e7f7d78e11))\n* use built now function instead of manually creating date ([d255c26](https://github.com/nextcloud/contacts/commit/d255c26f0e9ce4e8a2c34d9eb8fe695cd6c8dd16))\n* use correct user avatars ([6c161ca](https://github.com/nextcloud/contacts/commit/6c161ca103b3cac64d0e148b37a3da9aa1598dbd))\n* use untranslated category for grouping contacts ([f7c0c7d](https://github.com/nextcloud/contacts/commit/f7c0c7da2361b0b20d8bce1fda20fde6cffcd350))\n* validate group name ([eb4ea50](https://github.com/nextcloud/contacts/commit/eb4ea50c8dfb49fb7e444427776ae244f24e2510))\n* virtual contacts list scroller logic ([54a3b4e](https://github.com/nextcloud/contacts/commit/54a3b4ea2fce78e4cac7c78eb7bf01850ae30769))\n* wrong address book displayed on details view ([ed71e14](https://github.com/nextcloud/contacts/commit/ed71e149268400e9a2f346c665940fd1c38066e0))\n\n\n### Features\n\n* add agents.md ([6d3b4d8](https://github.com/nextcloud/contacts/commit/6d3b4d81e11cee60b134a3320313c5d56715ef45))\n* add anniversary, change title ([ca8dfca](https://github.com/nextcloud/contacts/commit/ca8dfca03063db9ec5cd03395fb5cfbbee3bca8e))\n* add cancel button for contact editing ([a2d4b5e](https://github.com/nextcloud/contacts/commit/a2d4b5e36a565ebc51e60f715569950f1bd4953b))\n* add support for avif contact avatars ([62f3060](https://github.com/nextcloud/contacts/commit/62f30602961bd8178cff9247fce2792b7629df56))\n* add support for nextcloud 32 ([a67d356](https://github.com/nextcloud/contacts/commit/a67d35685c10202c2da56a8fa9e9ed5ff1a84136))\n* add support for webp contact avatars ([e41a2e1](https://github.com/nextcloud/contacts/commit/e41a2e1cd347eb6e417ae508aafd7021f1b56920))\n* adds button to copy values ([8a6360b](https://github.com/nextcloud/contacts/commit/8a6360be51e1fb88b69ffe766120c52afbfbfd31))\n* adds edit profile button on own contact ([d3e8baa](https://github.com/nextcloud/contacts/commit/d3e8baae0ca2123674f308d5e41d851467d6f26c))\n* Centralize avatar with header ([1f030be](https://github.com/nextcloud/contacts/commit/1f030be850b59de2b1286c21afc4c7bfbb41c8f2))\n* **circle-details:** allow setting avatar image for circle ([6b7dea6](https://github.com/nextcloud/contacts/commit/6b7dea6dacd3c428bb11402252be4122d486f777))\n* **circles:** sort by initiator level and change icons ([143edd6](https://github.com/nextcloud/contacts/commit/143edd6c00b644706574ede20b669f613de62910))\n* **ContactsList:** add contact merging action ([025472c](https://github.com/nextcloud/contacts/commit/025472cafe72605d5a511e6a06370dffaf0181ac))\n* **ContactsList:** add multiaction for batch adding to group and changing addressbook ([6884678](https://github.com/nextcloud/contacts/commit/6884678784c537ce16a9861a5185df6019ef4a76))\n* **ContactsList:** add multiselect action and batch deleting ([d1215ad](https://github.com/nextcloud/contacts/commit/d1215ad7e61d39d52a9a64338bbb7f35cd622ff2))\n* **ContactsList:** add multiselect action and batch deleting ([e1639fd](https://github.com/nextcloud/contacts/commit/e1639fdbc258edc12371442e99b6ca5572d8b994))\n* **contacts:** Show address book description if provided ([69d14aa](https://github.com/nextcloud/contacts/commit/69d14aa496563295886b0ab5b828dc9a24dd3106))\n* create a readonly contactdetails ([b5458b1](https://github.com/nextcloud/contacts/commit/b5458b1caa4c7e18df8a5a359e72fafe359092df))\n* create and add guests to teams ([0d9d1e1](https://github.com/nextcloud/contacts/commit/0d9d1e14ddaaf980ae0bfc27a1c577016bd8d15b))\n* **deps:** Add Nextcloud 29 support ([cd6b367](https://github.com/nextcloud/contacts/commit/cd6b367783e6b98539420139e1fb8272eddd1ecb))\n* **deps:** Add nextcloud 30 support ([425a906](https://github.com/nextcloud/contacts/commit/425a906c101027f489af607b78b4ed35fb86ac5e))\n* **deps:** Add Nextcloud 31 support ([166c6ff](https://github.com/nextcloud/contacts/commit/166c6fffff1b33029506d9f61130fd6847a82752))\n* **deps:** Add Nextcloud 32 support ([2605739](https://github.com/nextcloud/contacts/commit/2605739e39b836ceca6fcad0dce947232c6325fe))\n* **deps:** Add Nextcloud 33 support ([012be7c](https://github.com/nextcloud/contacts/commit/012be7ce30756565bb30bd5f4fad59cddf4129e6))\n* **deps:** Add Nextcloud 34 support ([cafae75](https://github.com/nextcloud/contacts/commit/cafae7533fc79dddedb2729afa63196312c10864))\n* **deps:** Add Nextcloud 35 support ([28b14cd](https://github.com/nextcloud/contacts/commit/28b14cdc74bcdac4abaeb6e589848cb4328a3b31))\n* disable save button on unvalid email address ([896f3a6](https://github.com/nextcloud/contacts/commit/896f3a6b472d093c190437089115b6bdbf2a681f))\n* Implement team overview page updates ([e947bcc](https://github.com/nextcloud/contacts/commit/e947bccda653851ca999ba980143c1290e162f43))\n* import contacts from files via ocs ([8bb3129](https://github.com/nextcloud/contacts/commit/8bb31298a5fc092ff7202a1d48bf8f987687fd6e))\n* improve group adding ([ed0e80e](https://github.com/nextcloud/contacts/commit/ed0e80e91fc16c5d8133c4474d10a33e31d7089b))\n* Improve team details ([870efdb](https://github.com/nextcloud/contacts/commit/870efdb68befa9dd11f3c397c8493d8fe1efa9e6))\n* **MemberList:** implement lazy loading ([4255092](https://github.com/nextcloud/contacts/commit/4255092f982abfa32076b32c18f1d47df86467be))\n* migrate app to Vue 3 ([6f3deff](https://github.com/nextcloud/contacts/commit/6f3deff747a307745d620646683724d6a1ee1389))\n* **navigation:** restore address book navigation in sidebar ([11e6a7b](https://github.com/nextcloud/contacts/commit/11e6a7bf1dcc8ad9c4c74a2e81b94dff161a8e12)), closes [#3647](https://github.com/nextcloud/contacts/issues/3647)\n* **PropertyGroups:** sort groups alphabetically ([0ab7fea](https://github.com/nextcloud/contacts/commit/0ab7feab20ba46a8af2cc257ee0054d164edf396))\n* Rebrand circles to teams in the frontend ([45b7dca](https://github.com/nextcloud/contacts/commit/45b7dcadcf61d28f52c8252164f6f7b991eeb8d7))\n* removed teams UI ([d91b271](https://github.com/nextcloud/contacts/commit/d91b271e3b8b6adad7f24b5003def205a163ade4))\n* rename and delete groups ([88d9e72](https://github.com/nextcloud/contacts/commit/88d9e72ed1b7664cdc7965abcb4a4209a34f62e6))\n* **rfcProps:** make notes a default prop ([280dd19](https://github.com/nextcloud/contacts/commit/280dd19168c5d80891c92cac855fe9884c356604))\n* **RootNavigation:** fill active icons ([dde3215](https://github.com/nextcloud/contacts/commit/dde321589e9fb2488bdaa9cbce13f9326d686539))\n* show a user's groups as teams ([16b6be5](https://github.com/nextcloud/contacts/commit/16b6be57269a206cb3fdeaa90cea83cd2f131934))\n* show loading icon when deleting or renaming groups ([0f43086](https://github.com/nextcloud/contacts/commit/0f43086c251a3a0986e50146d7398745bc999d7e))\n* sort addressbooks ([3330dff](https://github.com/nextcloud/contacts/commit/3330dffc63dc467c93399c887570c2d2a8597a89))\n* sort favorite contact first in list ([bf76118](https://github.com/nextcloud/contacts/commit/bf7611805aa8082eaf1300dfd6e8ecf4d95bec54))\n* **TeamMemberList:** Merge indivual and team members into grid ([7e6109e](https://github.com/nextcloud/contacts/commit/7e6109e1628a8aca09804ebffb5faf8653473080))\n* **teams:** add confirmation popup when enabling federation for a team ([ae073ee](https://github.com/nextcloud/contacts/commit/ae073ee2da5bfaa2cca5119b421da66a7b9d806d))\n* **teams:** add swtich to enable/disable federation on team settings ([3fa979c](https://github.com/nextcloud/contacts/commit/3fa979cfb2aae36bdd4e91d55619ac374627500a))\n* **teams:** Implement quick create for team resources ([81ef1b4](https://github.com/nextcloud/contacts/commit/81ef1b426bfa94b9dc69189be272930272d93762))\n* **teams:** Member roles in list & responsive ui ([a83142e](https://github.com/nextcloud/contacts/commit/a83142ed5c3a514bf727ba665a63ab8265eb5c09))\n* using the company name in the subtitle of the main contacts list ([a4807b0](https://github.com/nextcloud/contacts/commit/a4807b0cda02261ab8f4a6815dc880e84ffab17a))\n* validate contact email ([c19fac5](https://github.com/nextcloud/contacts/commit/c19fac5277bf444ce127b70fbad80f7f255dc3eb))\n\n\n### Performance Improvements\n\n* **chart:** lazy load the org chart view ([b444ee3](https://github.com/nextcloud/contacts/commit/b444ee3cfab7f3b0e97da3df5f6892e4a5c69d35))\n* **contacts:** avoid pulling all of lodash and qreator into the main bundle ([b9fdb6f](https://github.com/nextcloud/contacts/commit/b9fdb6f77bbe0d54bfc2bdc3569ecc160d571606))\n* Don't fetch full group information ([31ea945](https://github.com/nextcloud/contacts/commit/31ea945799d41aecfb23a529040ee454d092e99a))\n* migrate to vite ([5a2d57d](https://github.com/nextcloud/contacts/commit/5a2d57de2c265d29d1178e9aa828c5ed0d21e6d6))\n\n\n### Reverts\n\n* Revert \"chore(deps-dev): bump vite from 5.4.19 to 6.3.4\" ([05557dd](https://github.com/nextcloud/contacts/commit/05557ddc7927c2cfec69b189f1e50232cdb3e6cd))\n* Revert \"style(ContactsListItem): fix subtitle\" ([1c1b865](https://github.com/nextcloud/contacts/commit/1c1b865272d27c0db23aed779a778b3c70ebba73))\n\n\n\n# [5.3.0-beta2](https://github.com/nextcloud/contacts/compare/v5.3.0-beta1...v5.3.0-beta2) (2023-05-12)\n\n\n### Bug Fixes\n\n* **contacts:** display the new avatar on change ([de726e1](https://github.com/nextcloud/contacts/commit/de726e10d6a68907397060627fe1bcd53dca5cb8))\n\n\n\n# [5.3.0-beta1](https://github.com/nextcloud/contacts/compare/v5.3.0-alpha1...v5.3.0-beta1) (2023-05-05)\n\n\n### Bug Fixes\n\n* **contacts:** defer birthday exclusion until contact was loaded ([2e1e139](https://github.com/nextcloud/contacts/commit/2e1e13980542bf53d6178d54ce9d9d23dda7fba2))\n* **contacts:** display name not uri for recent-contacted address book ([6421bd4](https://github.com/nextcloud/contacts/commit/6421bd4499a90bf35ce777641a411f3ee64e43af))\n* **contacts:** remove obsolete warning and fix header alignment ([8ef7e85](https://github.com/nextcloud/contacts/commit/8ef7e854a5f47dc4312e46c1f6446f74a2050866))\n* defer rendering contact import button ([8435aa7](https://github.com/nextcloud/contacts/commit/8435aa7a9efaeec1312fe156eabbcca533c92cbf))\n* disable select component if single option ([836bb9a](https://github.com/nextcloud/contacts/commit/836bb9af1733368baecaf21e42a7e28e40a06301))\n* double scrollbar in details pane ([1f2f0fe](https://github.com/nextcloud/contacts/commit/1f2f0fef17c6312c03eb1da74496b0c8d26302a3))\n* ellipsized \"other social media\" dropdown ([85fde3a](https://github.com/nextcloud/contacts/commit/85fde3a480e7356a84ec819d5a03d74267bf3361))\n* improve design add new Property and change behaviour ([16b93f8](https://github.com/nextcloud/contacts/commit/16b93f8cee1ca48aa8301e70662de9d5587682f3))\n* mime case matching ([fdbd984](https://github.com/nextcloud/contacts/commit/fdbd9849d42aa4441f1374dabff75c143c68dfe4))\n\n\n### Features\n\n* **2464:** exclude contact from birthday calendar ([e9730d6](https://github.com/nextcloud/contacts/commit/e9730d6b425cf30a6345685af9f987b166d4a16c))\n* **contacts:** add add-prop button direct in prop ([9fa3e81](https://github.com/nextcloud/contacts/commit/9fa3e817cd7690b9c7e84a4c5ec61ba17fc7e9cd))\n* **contacts:** adjust header to single column layout ([f348b2e](https://github.com/nextcloud/contacts/commit/f348b2e19c949a916e7b8974ea32e5d5c4add435))\n* **contacts:** implement final design enhancements from mockups ([923d14b](https://github.com/nextcloud/contacts/commit/923d14b652e121b260ebad5cf1dfb9094ea257ba))\n* **contacts:** implement read-only and edit modes ([0972b74](https://github.com/nextcloud/contacts/commit/0972b744116bfa7bd8fcb4ee9dd29c0eda23b872))\n* **contacts:** implement single column layout ([7a7a95e](https://github.com/nextcloud/contacts/commit/7a7a95e4e428f33a7cd4969961832b786806ee42))\n* **deps:** Add Nextcloud 27 support ([dc5ae56](https://github.com/nextcloud/contacts/commit/dc5ae56ce9977c54267788bbf32961f54a4d1ce2))\n* **deps:** Revive PHP7.4 support ([508c5a1](https://github.com/nextcloud/contacts/commit/508c5a151d6b8f8c4443c38c151aa5dc566d2e72))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([3ed7e01](https://github.com/nextcloud/contacts/commit/3ed7e017dbd72ebf6f3171fecfb489043945ff78))\n* **bundles:** migrate nc-vue imports ([69a29d9](https://github.com/nextcloud/contacts/commit/69a29d9203382d0d86cd13e4ec03fc5cf79b205c))\n\n\n### Reverts\n\n* Revert \"Bump vue and vue-template-compiler\" ([75518ea](https://github.com/nextcloud/contacts/commit/75518ea21314884c4d8088f5f46f93410b36d8ba))\n* Revert \"Add manually-triggered branch-off workflow\" ([d1f2ea1](https://github.com/nextcloud/contacts/commit/d1f2ea1925678f8629dc0476139ca92c977f214c))\n\n\n\n# [5.0.0-alpha4](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha3...v5.0.0-alpha4) (2022-09-27)\n\n\n\n# [5.0.0-alpha3](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha2...v5.0.0-alpha3) (2022-09-22)\n\n\n\n# [5.0.0-alpha2](https://github.com/nextcloud/contacts/compare/v5.0.0-alpha1...v5.0.0-alpha2) (2022-09-19)\n\n\n\n# [5.0.0-alpha1](https://github.com/nextcloud/contacts/compare/v4.1.0...v5.0.0-alpha1) (2022-09-16)\n\n\n\n# [4.1.0](https://github.com/nextcloud/contacts/compare/v4.0.1...v4.1.0) (2022-03-22)"}},"signatureDigest":"sha512"},{"version":"8.8.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.8.0-rc.2/contacts-v8.8.0-rc.2.tar.gz","created":"2026-08-20T14:53:39.198655Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-20T14:53:39.243405Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"x89iJg18kPp9H+YVS1fixYDOn5WKtTsU4abNJn/TfIp5N/mWM+EkwMffkoawC3lnBAbQ642G+i755pM1856ujru7cttjQHrmy+Wvi+slpYoW8yzrH0Wt5bNjSYRGFuNqbZ3kTPkluC/Z58si6SSLKNt9ulcaeb8Kfl/P7VIMPUjfw7DWKAMMGDSTAe2HmY9HTA6P4Rh2c48XeHcUg+jpfjQRwBmTJdwMe+pKsz2NZaIcBnfrxlwKeLte+KnTCkF/g+HF/ydTQpR+AtlmYMXdJbpMlr1DQSPtWlK8iYEo6nJdnnfVQbviv4VpsTtjtd2pFj/lsMc77/Gta3GXf3y77RAmUus9/RgagR/FWq8JCJNCucAWcLkvYBek9ZkiTMDljuhP7PRv4Yg1XBdKoZ6K+jGh6cv0/Rc4R3g9qijRgmbQU1Qx3KdKA6h679QDXmRK/1UBEZkulzesPxkngEGdQpN2bKn9GqxMbu0WCZ+11SQVl3fMIo5glWGCgHYt8/O3gLTLknXXZmegLEXJeH2ZZ+aiodNp00Znwil54ufsPtEK8k3DJkT/I/Kxk01A7TUlPsy3RHek3GneePw0i6Adq+9lAB22IfP3XMmRD/n/Y8tab8Jk6uZ9JNobQmEVvXzrmWRufTnmEiI8x6Obm2HJd2PoF8+RELrsZVjBxINbeso=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.8.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.8.0-rc.1/contacts-v8.8.0-rc.1.tar.gz","created":"2026-08-17T12:33:22.353103Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-17T12:33:22.406155Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"HdQrB41T+7ULDmltMiw/YLqY2k0kqOWN6hqd4nxKghDWP13+xiUI74U6ArvzYKqgwQvuctZISvrkhNSP13vCSOWnTURxIjECL66WDgSByr1VX/ncJngnpRIXufPML4DOc/weoLi95Mln0SVyEOg1xfeqMmikNTHA/+RLdyAx6HMD6oDYeMwa0JG5ZMYmYtSE6EfI+m9GzikmIyBhIPLCUYxGqxQD4T/aU6HGMO7HMQ+Am3aP2Sep2iXePZv8WDVOGeXBjsn1i6448ucHN/A37zWpkym8jZw12vFJn5gkVMwiUYdP/WIowKSxrNAkZC4v/I2hxybFkdhZL0pMTak94epi0sEQdhlZkm03B5Ui00rC3Vg0pv7irnbYodeMKDoJxBJ4yw3b+lSFOO7i9ytH1dhexXxd87HLDSpxgA7NbMhg0jjo4AfgIBQjZZLbfZssMFxWeyOpF/Aes155qsF3xaCxZ64IABr688Sa9BVnThXK5i508rqODHtxRPUNkNT2iDn3OEwZ5PsGshh+gIG5J7J8uWANq4Zmd6QfeNftjIm9G3eUB2kiJO4NY1y3NxlkDbgzcHCrDN9p7Gyq8S0K9I4u/epsDmsgRYfxEnYWp+KGtQBtSDGv1chLtrIz7Wz4ihe60+RDGw9T7QMfyrk6a7wca33gTGToxv8JVkc80zg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/contacts/releases/download/v8.8.0/contacts-v8.8.0.tar.gz","created":"2026-09-01T16:07:04.318766Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-01T16:07:04.505024Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"N3IKB7K3it8WaFOyzOVLcIuzoYsN7QOdAxnZpKkF9nBQ3LnzLFenFD5Ms9fTk0wKu8uYgIM9RIzA/w8xbSQkArhGhboqSCwUOR+EQpHAt9QCGiS0vnH6ZqDjI2jCD/PQCJvbKAutAPzaCBEWmxS3sy0HTfHkZ1JTF+T1bVDA3+Rf4UoZpY66x4caagxGYjwp95VHq83amf1Zm0FZPgaFG3adYrBzDJRfTAhuDtqtnW/3j1XwoVvfTn9rj712Ya4b3Jbs1rVxLA2J253bpUsCjMNjy4nq1hp8IUK6JjhgbWZsomo9JVTpWx0W808WXFvQb6NRwDdLct6//BwBb1sHRV5KtWWcwv8C8cshPhsXR7RL0O0Jje27wXdTH4FU3ttN8Tvx0kGuxcJ6/SnDSom04UXyqQ480XOm7AqADbKVfScPyECjOF+ipsld7OVifebMP9Rf3qTf6WHjwDLgfMm4ySTozOAMbLJIKVDhGzWUYQZxxwjM2z4/hbITKULSN7qvEkk4tGm+drU2ZrzTzTRHKltsW7xP6yb3fHmiDjmUJowJe5g3Oe22hmqfuTgvKAds9gCyCmlozqjuEFdHZ7Qnp4mNAMjrBKExovh3uscZUK6PKX7btmIbvt1mxRftjq4kA3tmFiMXD/elG6e7vhl2RDeRKpVSZ803ks1R9ts0044=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zY3JlZW5zaG90cy9tYXN0ZXIvYXBwcy9Db250YWN0cy9jb250YWN0cy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Contacts","summary":"A contacts app for Nextcloud","description":"The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library."}},"isFeatured":true,"authors":[{"name":"Hamza Mahjoubi","mail":"hamza221@users.noreply.github.com","homepage":""},{"name":"Nextcloud Groupware Team","mail":"","homepage":"https://github.com/nextcloud/groupware"}],"ratingRecent":0.5,"ratingOverall":0.6224489795918368,"ratingNumRecent":0,"ratingNumOverall":49,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhATMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDEyMjAzNzIyWhcNMjcwMTE4MjAzNzIyWjATMREwDwYD\r\nVQQDDAhjb250YWN0czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANzx\r\n/zJF+5/s4lOJLWIlfKQgTy+UpvIpiUXCgrsHsDZTx+hjQAhIWukH88a+7NVAL7Ys\r\nkQNC0Tlm755FJi/T6EdR7edOwIRdo2ZwakOWLZXd209+6cCd2UloHL0bgnbWepTl\r\nR/4YgbLg/G+FVKCfkEiYc3PuDZ3EVrcwQFcg7h74X9ne6CHH0Z1WQLydxJuVEb2n\r\nX9I+nIRpPHcVostkSiUmzHR7C5TjTIo2PzzgnCU6GC0iBa6z6dDYfz24QEp/b8UA\r\nZaLhjkyKghVGMnoF/s9KPgH4NM8pvvtadQN8pxlOPju4wbmKPUrsXo4ujurDXbbc\r\nYkzNt8ojobGwdTXoyDogAsGZLQd2FQksWpRvY+I3zVPokBfPMdUPLllG5VcV0VA5\r\nDRK+h2ms+XmspdBvGonjF+XdbFm9hEmDoFmoi9aU6C6AdofjmG/e9+pw/20dXUWk\r\nmMorWwXQ5yLmIn5LnpRXrOuK7CS28VRhBYuVNMlsyKhzU0rophbsD9OFXxYLjr6s\r\n7UPNwZ5h+kjXZDBKD89QctBSViT8RhLe8nulRIm0iJn1sb9hca/CF63KmsFzENfK\r\nQeM6MO0H34PB84iNyz5AX1OIy+1wHD4Wrzt9O/i2LkWK6tBhL69aZiBqdLXWKffj\r\nARDCxxIfews51EZFyHzwsw65I97y46aBKxY382q7AgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBACLypX0spxAVAwQIS9dlC9bh1X/XdW2nAvSju2taUTBzbp074SnW6niI\r\nbnY4ihYs4yOuGvzXxnp/OlvWH7qhOIchJUq/XPcEFMa7P03XjVpcNnD3k0zQWlZb\r\ntGonX9EUOeLZKdqI4fkrCkMLScfjgJzoHGYQrm8vlIg0IVuRLCKd5+x4bS7KagbG\r\niuPit2pjkw3nWz0JRHneRXz/BNoAWBnJiV7JMF2xwBAHN4ghTM8NSJzrGTurmpMI\r\nGld7yCP47xNPaAZEC66odcClvNtJ2Clgp8739jD6uJJCqcKDejeef0VU1PG7AXId\r\n52bVrGMxJwOuL1393vKxGH0PHDzcB1M=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fileslibreofficeedit","categories":["files","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/issues","website":"https://github.com/allotropia/nextcloud_files_libreoffice_edit","created":"2021-06-30T13:55:22.825073Z","lastModified":"2024-09-05T09:24:04.956938Z","releases":[{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v2.0.1/fileslibreofficeedit.tar.gz","created":"2024-09-05T09:24:04.899233Z","licenses":["agpl"],"lastModified":"2024-09-05T09:24:05.012209Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=99","signature":"33AjbXl1c6gECPqg2iQsgn1rNO8oQ5X3bF9YYEate3RGd9F6kBB3KWlTxaAtV5Kr\npSP5N46A1DcVfSILfn+599HwU18coVPkljgd5ZRfthqVNAww3Mx34hxg/pffRZBO\nZ4knZNLWXtmKkA9TR0SU5IaZwrzZ2JbbjfSB54kMLexUX0epQlWGe9+AW8TB159T\nGm5EX5LBdhUGGbH12rcusImN1/rrrvWuagpdItGghXcjdKtiy4DpZwooVU/HsPUb\njAtcpdsklUC2efWtL+SPmIlTdWIKpnGA9yTaRbdqQjqnBQj16eZAoHdOaHjfCLOs\nBPOh8wEKaI2RXpYX4+n5gEHAOAwaKZWKuZofuufWeUUFQjTukqLMjxLDpQ+gZf1s\nmBi2MVv3f4F1NbYCOimgRa++NluyOfctPaXWXmbmoE2i/zbzLNpaOR+uMfNgogmH\n3KKMFKCW9OKkDmIMVM/rZhlR/VhT4nqObJFZ+iBn03p/FnO31IGfLSzIXNDasJ0p\nVT01M+ZeYFWbL4AQOTwkXvac+l5plCI5Vphlye6JYC6uElIJSMDPEzKauZaG03BJ\nZSaVFAv5JnHkkDcqMaX7LXciUsCakMuRy5HjeuorzVv1x9nNzLvAo1uc3pu1XejV\nILamhQtSkoIxYzGDfX8E0wSUxS8Zgj7dufRdR4NWQ6Y=","translations":{"en":{"changelog":"* Don't register default action for files (fixes #33)"}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v2.0.0/fileslibreofficeedit.tar.gz","created":"2024-08-29T10:49:14.125009Z","licenses":["agpl"],"lastModified":"2024-08-29T10:49:14.340031Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=99","signature":"R7TItmNgdxWsmHKryPv1E2E4VXxNK9uqrYF5PA7f/8lBW4JLH+BkTUdXDlTu3QFR\n3SZW1DyIntqgwZeNaOcVxB8ip8Z3ziSkW8ammBgL+9OJnoydG3zZevEgYiEGJyZs\nFTNtAehw7/QMITRDykdIJmsfRDNVSCimE5YBYbSAJBqhPezCScH0mShg/ka9x69K\nrGv3Mohd502OXGYVT0eOkSp0Cu9AwuwH/dTgMqUvJPkkJQ9Zgghr/ZJrQfyF8phG\niDeQuyGe9LQaa2iu1VhHyB01UO+KEPNlIb3P1/1W88Kxf7X0MR59Zdcke0mHXOJ1\nQMBpWA7PvJQmeSO/oXAH1rdl7iXS3lKfxJP5UIvf8Gc0nBkzH4wec0iWiQn2uUK9\nYW1CmlJyRDA8EDG0k2pF3vG2F3w3Cci/8TaBTd70BmHRM0Ipe26myOeoC8SQzcY6\nCLxmq+hzyFdH196lCvx/Qg9xmI31BFpCfPo7s40mCeZuS2yhk0y7tIT7nJfxrKJm\npsagCfPGCTtWHl/ePITaZOX5o2+hSIZqz3Ogqk+ZhEcOINGj1I+S/oHwU/62adeR\nZH3GyfrcKIyXo8LWbTGL0ZpLwvc+zAd0dQP2a5/ndIWQO9QVE9ZXiavFRQz6qsbu\nsmdFa9YY6Agrwg9/SPsQgb1wEiigxOOIfUWqqKW0N+o=","translations":{"en":{"changelog":"* Rewrite to support Nextcloud >= 28 (fixes #29)"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v1.1.0/fileslibreofficeedit.tar.gz","created":"2022-09-19T07:25:39.924389Z","licenses":["agpl"],"lastModified":"2022-09-19T07:25:45.434931Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"hYNEBr7Pzg8TiVCXapZgrAewakHEJgN9DJ6kPURxlTDIZuWH3EmjRVghkZE3wpPc\nNuVKS9u47zPl7vZ2uHa8MBy7msculmiXvHDKsu8gVggIp/A0nnUuM0Pwq7odXwhY\nNZeAaHqVbOFVVu7B+5jiXCeN0wRV7Rst0K7PdVs/dqoptxrHs6xFXB1MgHcyy8Le\not1y/Rdk1COcJNLWCcQa2CFcd0vWRkwgsSoN3J8zhkhSJx/cE7nrLFdEinGnwz6/\nZtm0ftmpo0qcraYNHbqf2cnfEjINlFXR5nctDsiPAeHrRLwvbGAmP/2pwKn82icy\nlPbGIWfrwPSQLmu0oyHRDQEMaxpziwfv9R8YKmDmFSuZ+W1JS21SdP9aWEGfO7Ir\nhE60UhQbZLPu8sn3FsIgH5K6WDhUYqerpUHhn+VaPQuFbZ/ZZZK3Tj+cU0uypGvb\nIGtWujwL77H8Kejs+Gx7XHYOVXptmICO/iNXy6fOt4CXQkjSHpPzgXxdJ9i+U1IN\npa5pdbN4f4ynNFaPpK3E5hDHQ8C6Yg08G4Loeo8Ik+pVLinf5TGpAQjTebfrkS1C\nmSafuYnIPesqSypHIV0WTxt2XBkYUpybWmj60GJP9V91D1BAMFMUr9BFZzBZVTTV\ntIJmotntykDaLh9sPm5sZOXpMPuL7n3tbzi/XAbwvyo=","translations":{"en":{"changelog":"* Add translations for many languages"}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v1.0.4/fileslibreofficeedit.tar.gz","created":"2022-01-10T12:13:58.625419Z","licenses":["agpl"],"lastModified":"2022-01-10T12:14:06.051258Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"OfZDUCWtjXewrKRE+tu0fsTbFP5Xk3qmECi/cyv3pxB9yQA0/eitT/PBYJLGAWtL\n85iKTKS2CjTrbZmhuyVaU1dsHSu3w48kMDADFlbQsXEAoIwopJxAlyliZMQ0T+aD\nLwZHZQgH+iwnSPB6PiFHa5BrBjQSN4O/Ln9L4ROYa9zk8ndDd2etNWXpZUkZLZxq\nl8JdftGpf8dVScSUqoY2jta9TtnBoNYm6whCioqmQM+gXvjK/dwCyGHz44XB0YmZ\n77lSpwzPFkqoX2lB/rfPWb3cYfN4RxZQmiZ1OMNmlwmRek1zGtir2wfZHCw8VvJy\nbqs1Hkm8z7SQ6oWsMXaMuo4riUgqKMhI/17cgbvQL+pu2JaDeDi4SqaXJkJPbA0c\nXGwgO4WGEvMQb5/3GA54oPQn9QIAR8pTjVAS3S17CYpDYa1L5rjAv0mNoJARF2kj\nu/At3LJI8IKGINyOnzSNK1DtePGsSUht9YN0ETXNJNQlyhdwHY9S1ew58lTaunZv\nMGoriBBO1Flsyt3iamWKvNqJHKzn5WfnUIm+w9sukFsbES/Z/9wmZ1xea8mZS9oe\njJDnrHymajApHX2Zbs53ghPXscUF0cG2enSurwOAAsr1mU4PDaR+RuLywtshy1w7\nQntyCPpydlsPQQTJKZsgHdkWu7kOigbKvR+g7iysnZk=","translations":{"en":{"changelog":"* #10 Previous release had wrong version number in app info"}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/allotropia/nextcloud_files_libreoffice_edit/releases/download/v1.0.3/fileslibreofficeedit.tar.gz","created":"2021-07-05T13:29:51.770179Z","licenses":["agpl"],"lastModified":"2021-11-09T09:47:21.913177Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"nKWSZBDRJtEJGUuo4uTCFvpiUGatvfOygHfVVw+19ujXCeETYQ24DtXMC/ETCoGU\ngHm6LkWIm+CT2760AUllE6ubKln/Vcizv5xtyPhEYZnOeOgFGmFSKTnt4SZi8WLw\n1rDmMOQwrNtKqrKugijLu4qq+mNMaupOJ1RSvov4KGjfvb6R9xOlco/p8rCrlRoS\n9yP35qyvIEW9g2ECJxZ0wki9kdIU7Uq6RXbD4TULj7dqgeVE4D+Y/kgl0FC+URCD\naZ5Mo9LTGBi5Fvw1NPaUs9gcIHVU+CiyDs7OHiM4ykT8+khN2MVBcemgyDS57vrn\n5wSjA4JDpr+larYYV/YiEMrKp2S05HkgYi16MN1/1IPmmB5fR/Y4mgZdSVjU2cBR\n8Fw5qTXubLmgU+uVkC0GIAFm9rZ3OXIgAtY3ADpMBdprTH65WqKCFi7rbskJffDi\nMCV56mCCmlleiX/z4ljCd7DQf2WPFUKSqCpablx0Pm2YmvIkOmqNuerSEFW8VbXY\n5xNRpApLSjfO01FtvXUHQhumCbhex+h6fuIosHUYW8ZIza+uwzacAcZuq/KQ7Owr\nZPKnMZU7ANOT++6H8yz7OXyQ0biz/BW/NxuESz4IKePbBPiKweME7jKgyuujUrjA\ngTsWSL3zEi2XRXqFU78RK9zksgs/682N3mPj9Uz04do=","translations":{"en":{"changelog":"* Only show context menu on supported file types"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Edit files with LibreOffice","summary":"Open files with LibreOffice for editing (via WebDAV)","description":"This adds a new context menu item to the Files dropdown menu \"Edit with LibreOffice\".\nClicking that item will open the file in LibreOffice via WebDAV (the file can then be edited and saved back directly in LibreOffice).\n\nThis greatly improves the user experience when working with Office files in the browser. No need to download, edit, reupload. Instead use the \"Edit with LibreOffice\" item.\n\nThis app requires at least LibreOffice 7.2 on Linux and macOS. On Windows it also works with older LibreOffice versions (since LibreOffice 5.3)."}},"isFeatured":false,"authors":[{"name":"allotropia software GmbH","mail":"samuel.mehrbrodt@allotropia.de","homepage":"https://www.allotropia.de/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhGIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNjI5MjEyNjA2WhcNMzExMDA1MjEyNjA2WjAfMR0wGwYD\nVQQDDBRmaWxlc2xpYnJlb2ZmaWNlZWRpdDCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAOB9Gmn8TA5P+d18V6aIchRUDHC3Gp7jW3ToXq4fHiCgfhxdlUas\nPymtAqPl96t0FjzsCrTEKA8ExqKfEw4MAWOcI2RikYfryaQMDWLazZh+u+7uDzo+\naFQ9fGVKOfa4K/gh5UZi1wX0Bhj6Y8sY/ONQzoTLsQdLZ+QT0cOt2F3SvgRPI2Q7\nSkJB6RYmueWkHhUxbBEIpmVxg3HnoNZSqbqRlfIqnR8wlPf1QYavHYcLeaux/X6T\nbX5cZMMP5CBfJeWPZJCHSGMqXUNk26TwSq6cgRai+ycqMdwaxpQT1lxsttGUOOEa\nvCub4kikIXFR0qnNwYQng1oJQPkbJKR0UmH1pNT5II9bPEAAUS1+D6q3//QAByvl\nLuGqlNnpQsCAWrktay66iBxYKP3lOmGO7MR6CsWHgIRNq2XY4LFaf3SbxLxsHbfd\njNqSAfG+bktb5kOtebUjqU4JzJiWv9WWxNFCurp2PRwGSP1wTYkVyxNpD5qWYogI\nYxMTPm8My+yZHQdo9bp0natfiNhrYUUfyUvtKNl6t+ax8zJkKwrDzti6PLNJGT/L\nbUeGX6L89TqWRzfjErWl/XuUpCuGGiVJ7Pv3xj1cXAZVXBr+cSs8EZ0vq2c0/wKa\npd4rr2H+1FuGXU24HZfhhMIAKlX2rCB415wUpxsJC9IYW9pAtvk8zOGFAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAGsLULSs20nK9x6OjAjqPg61tV7Rzhd7FDBl2sfz\n9i/MI7fw7FS0PyElshmstv94pMLU73TeemJlBg2irP/4i6oxVzwVlkoKv6+/5ity\ni0UWprBPmyKqiI9ykUKugnpv2yw8/CkiC46QcwqsSeZcWGZpJGS7vhtyk3yGzfHA\n7Joa7dA14WzNv1yDMGuERSJkQQm9Ao7CuHI4nXp1UTkETOJgDJciVbI2GrL9LZSq\n4JNeHtM77B2Wsmao/o0wdycc/QIU6rvVFVnH8IlSB8X9t5JKITtB4fsQwsApaHgg\nfvUtO1BXI4n2H/USFiSMSj25HCK3/6kbF1AcBKUfssQ9Vno=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"moviedb","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/shellmann/nextcloud-moviedb/issues","website":"https://github.com/shellmann/nextcloud-moviedb","created":"2026-07-31T09:57:28.425007Z","lastModified":"2026-10-20T18:39:41.388737Z","releases":[{"version":"1.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.9.2/moviedb-1.9.2.tar.gz","created":"2026-10-20T18:39:41.376975Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T18:39:41.420977Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"RBf21RUPwVDZxLSJEDv1n2gdu18AY9kZLtpmdxITXHjD+RgWZVrHphPdJgFg7mNp\ngU5ITU4Y+gCwMX8iOWYGpT/2RVH3tg+U4F9Jn9E/bi2OrQJQC9zCuurSToDySSMv\nHghFaiCgm3O/rwVgqInA/jbp6J0Pm1D+2wYLZNSJOqWkG+Z+/8rYKr8h+SdBBZFd\nual3gA4UYeY13G8pH2iCXr73YHG3Yd7VJ0NyAiYZBqGeuJtmCFat6xEpn7faL2hw\nttnjxPJkEWtfI0T6yH3FVBLl/Q/Xujrt0ic4exkHeqK9MDsGCkTx4V7cp+Hg+8yB\nU4J2flxQaVwYLi4T7V1QDxsFukV2YeWgkjqRXCbdY7NV6aRNhuZ/VXW9X6J5XL7J\ndDFrv+duoK9seDT8xC+6VDKw38BjU6Zxgi93zIJ8fP8KOjk6UzdRwHA6azvp/rxE\nUbs/a5AvgEcZLsg/lrgopesOgEK31+2NpHS2zz1BCe7KqQ85T6m+GnWJ1rql7cqj\nVkc2TSi3M45ZjQhCaRRe5CXGZCeQn3anZ8a23VB58RU31Yc0UhYu6hJB2C8WYFsu\nKm6FvP9lyny6HvNQd6YeHl02EufJTF1/do+qoWSD/7X5NQVUldVlaGzcCddspAra\nYcCcAyqRAGi8xVE0/genVtDKSzBAGuVEjOjcIlww2Gk=","translations":{"en":{"changelog":"### Added\n- TV shows stay up to date: a background job compares the episodes of every\n  show with TMDB once a day and adds new seasons and episodes and updates air\n  dates and names. Watched episodes are never touched, and episodes TMDB no\n  longer lists are kept. Ongoing shows are checked daily; ended or canceled\n  shows monthly, in Nextcloud's maintenance window if the admin set one. It uses the TMDB key of the library owner (or the\n  instance-wide key) and slows down when TMDB asks it to. Until now episodes\n  were only loaded once, when a show was added, so a new season never showed up.\n- \"Update from TMDB\" button on the TV show page (for editors, rate-limited to\n  10 updates a minute; an editor without a TMDB key of their own uses the\n  library owner's key, like the background job). It says what changed (\"A new season was added.\") and\n  when the episodes were last updated.\n- \"Coming up\" on the dashboard: TV shows you are up to date on whose next\n  episode airs in the next 30 days, soonest first, with a relative date (\"Tomorrow\"),\n  \"New season\" or \"Premiere\", and a range for a whole season released at once.\n  It can be switched off in the settings, like \"Continue watching\".\n- Show details are updated in the database (new column `tmdb_refreshed_at`).\n\n### Changed\n- The \"What's new\" dialog also covers patch releases that fix something you\n  notice, starting with the language flag from 1.9.1.\n- The \"Continue watching\" and \"Coming up\" rows are lists for screen readers\n  (\"list, 3 items\"), and the show titles in the cards are level 4 headings\n  under the section heading.\n\n### Fixed\n- A finished show comes back into \"Continue watching\" when a new season airs\n  (this needed the episodes of the new season, which were never loaded).\n- Season headers on the TV show page are real buttons: reachable by keyboard\n  and they announce whether the season is expanded. The checkbox of an episode\n  is named after it (\"S01E02 Pilot watched\") instead of just \"Watched\"."}},"signatureDigest":"sha512"},{"version":"1.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.9.1/moviedb-1.9.1.tar.gz","created":"2026-10-18T14:23:57.155491Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T14:23:57.197638Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"v4YpapkR7ukAapOaKaJoQ5xmrBn4whD6JEC3opltvGhk5gV1ZuY/DjQK3KwCFd28\nRYDNybRQ1+/5YNgCyM9ncyyQxaycnymScyuZphRJofgrsvkxnt7dZpoQHPKfZMEB\nl1r/kNjLXfhsZTdTGamkUyt1ujsxmYnOBxvleLVBhZucTv9Vn5JDlKYiZfJ9kIC1\neO1OQj6JFS4sudnyH217CffpiWmM3cfbBNtWqIPs9/21SWQvaeiQpW/6Ia+8cVaq\nINK9yk3hudilv+xo0sBORDyQq1qLUWcY+pNp9kke+PVrMKKtRuZv9LRErDb+3w05\n6XyToSH40mPz7uatuMeYWY/ZkyScj4MclvmWW0+myhxPeorLVREtEmZy6Ql4BYB2\n3ML+H8EW8hBJ3fNUmFra6RcIvsrmTkZC4a7TknKVUPay3o/oXJFtT9W7jXnd2qAF\nO3RYVkyyR7uMugI+7qy04XMpdm19THW0YsFPtdGnv1oJOw5sig1RvkiMDxvrHoFm\nZ9VybZkyfLUkGMDIfum+PAnQFt/ZSQ2Y5ZNxiM5XYzLyxSVfWFjiH9kZvqpTK83N\nMCJtBftTcuBK5CXnqlNmM8tB+OSmsNKMG/42yX3I77eGdUiRhMzvLZdNKcrWk0wi\n6MddWEnDiqaWuMtFExtMl7++i9WfsmWhcToTX9fE0bo=","translations":{"en":{"changelog":"### Fixed\n- The language you watched in is shown again: as a flag on movie cards\n  (lost in 1.2.0, when rewatches moved the language to each watch) and,\n  new, on TV show cards; with flag and name for each entry in a movie's\n  watch history and next to the language of a TV show. Screen readers get\n  the language name instead of the flag."}},"signatureDigest":"sha512"},{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.9.0/moviedb-1.9.0.tar.gz","created":"2026-10-16T12:05:56.775689Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T12:05:56.823903Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"1BPVc1Q4UVVTMIg/FlG7n7cyA2EatBwUQdLFiiL8pVKorqS64vQ1lvDDzT1sCQzj\ncXzVlce/pZO4bLTafeDvGStg+9myl6j5FB0sI1vO5WwWtDxwN2H/hj5HqF6fLXqK\nXIcL6JIchZTZTBwp7bColMeOwTuBAHNEsUNfGAGdyaVVi+tqMXsUUVftaaPxgcwi\n7tffnCd3r6NMqYIAzro7La7hzTA1vaa0bSPUyLytAofwTKSbirLEpB89X7qWYJMw\ncZmUCMS1iR7mllIEX+oHLaiDFqUiGrVmoseEjP+E/2dBXEidiyuM/DZz7myzrllV\ntsuw/5rrdb95NThE1V/hhJVllk4ebAX8cnHQjzeNEqBibKI4UmkurvLlaimAB6WC\nlVlfcD9re5IpBMPspZm748iIkVkBt0FT6UMCw0GRv1L0pchZ1mrLeZzjpRXiuKPW\n65zMkC4HETX/S5toTldfAuceE8ixYuEMsHHlJTM3mu11ZZVA+IrFJOfX3JCeNEaB\nwk2aMIYAm3lliCIMPbEPgVUcREW6lxtVVnE3CIabQPFVo1yP6LgIOG9OsTxevoF6\n03jjS7ntLfhr48jiRL5q8RHLdrCPN/AtwEH6IvxPCbtrJzaTqGt/1Kid0dlHy+7I\nTwpFNFXgZvWkfKFcQ4XdT0GflE+n6PcchXH1zBD+NmM=","translations":{"en":{"changelog":"### Added\n- \"Continue watching\" on the dashboard: the TV shows you are in the middle\n  of, with their progress and the next episode, which you can mark as\n  watched right there. Shows you have not started yet follow after the\n  others. A finished show comes back on its own when a new season airs.\n  The row can be switched off in the settings (#74).\n- \"Stop watching\" for TV shows you gave up on: they leave \"Continue\n  watching\" but keep their episodes, ratings and history, and you can\n  resume them at any time. In a shared library this applies to all\n  members, like the watched episodes (#74).\n- TV show cards show the episode progress, and the TV show list can be\n  filtered by in progress, finished and stopped. The filter is remembered\n  (#74).\n- \"What's new in MovieDB\": after an update, users see the highlights of\n  the new version once, when they first open the app. New users are not\n  shown it.\n\n### Changed\n- A TV show without aired episodes says so on its page, instead of showing\n  \"0 / 0\" and buttons that have nothing to mark.\n\n### Fixed\n- Marking a whole season or show as watched now counts as recent activity,\n  like marking a single episode."}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.8.0/moviedb-1.8.0.tar.gz","created":"2026-10-12T11:57:06.032436Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T11:57:06.097187Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"z2C8QHLg2nFWqJwzqwepXzxXApRquN8jMX/QF3Y0rvKiYRTca41S/7I3uJdyTz+YHamI6/pd2Cf1hLxo4EBQXLhV1U5Uaf0hjOOxrTIvvgMjLFhXQVbkwX6NxhTMFMwv7di1HqvyykhrCID7L1LK6y5Su29b8EMEyJOAn23AFMSfZVXr2ecm0uEDx6h3D1sphdLBQz4aDuxdC0OD9mAHA9Foo8n3oNdzZfRKUNa3QK8j+KLkFdkwdcwZ1CoRMgfEtiJ1qQALxtiHOSZxiFx4oLktpxr+Sy367s11ettY280Pxa3LhHLFYID17sW3hqY+CsRRUrzOtbCJuI3XC35uL2a32y8uBXeN3eRNFoFVfAc4pnotDlX2W0E6Q9azKr+vCeJGOFQ3nPaidVSr1MFwlcXY/VgRTYson5lUWeQ8vSN1w6gRIX1wllUo46p1fqVAFN/lN5bw8fVWMdeOJxk7aivgEshi4Xuk//7X5QW2q7Aptxl2aGFBKErLQFlEjAgFCqsNIVZJA8fllf14UzvUfgK6Q8K9tOtue9dUJta7USnag5ZHqFNPNSjeWKfLaxV3DXwpnd/GoZ1e3IeSco7HDDKLfmdiEqeWNyyz1K9u/sBgl+C5250yL8kyT+1ZMXe8BAK74cei5yqglDAdkWePCD7CyHVJdKtjXSpkEoTl8Rs=","translations":{"en":{"changelog":"### Added\n- Quiz: test your memory with questions about your own library, for example\n  when you first watched a title, when it was released or first aired, who\n  directed it or which actor is in it, and which of two titles you watched\n  first. You choose how many questions to answer, up to the number of\n  titles in the library. Your finished rounds are saved, with a chart of\n  your scores, accuracy per question type and a personal best. The history\n  can be reset at any time.\n- The watchlist's random picker now chooses from the whole watchlist, not\n  just the page on screen. Filter by movie or TV show, genre and high\n  priority, and spin again for another suggestion.\n\n### Changed\n- New App Store screenshots of the quiz, its results and history, and the watchlist prize wheel.\n\n### Fixed\n- When a Nextcloud user is deleted, their MovieDB data is now removed as\n  well. A shared library of the deleted user passes to one of its members\n  (editors first); a library without members is deleted."}},"signatureDigest":"sha512"},{"version":"1.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.7.0/moviedb-1.7.0.tar.gz","created":"2026-10-09T11:25:57.861147Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T11:25:57.906186Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"v3Jt9K0VipfxocQhfgKoyCQjLISd2dVMs+ZNuXy286HADFdIcsjR30BiOY6fn1CUKOS+heudhJUD+yEUqWjfUAkJxd5sDA3iao0fjnvzBagpXkdymorV7cbET49aRAQv1/jNSaaNf9Gbw6ILIxN5Qb0mxZfgm/YCDgE+FSQvQnssHT3ffW1tBtuJrPsq4Vmj+ZK++H21KM51pxHhpRS6QJYGnCG+VIY7ADlTC5Fbo2oOgXJxheGRieVSabpMoQozTvPhG+YGz034kmy/qt5nHUPmeVG22hFWaGhSDoUx/u/r7mBbl+ldgbYkGpz2MrEvGZTOTi6/fMQgUVQX7RPGDBpC05jZcz8Wdx4Gjj534/oxAb6dAV0/kJlXzVAtoJ83LeFR+LniHvRJGvq5CF/csJY2f1cQNZl9uExJdUNQWVNgjFj6S5j7SE87a26F5D3/IcU2QZTfd1raok0/mM+m1BcPbRW+LwjAzL/0jvhfdadgmKiFcSKEFe+rueuTBdFu/09U5svAqicT09XTi6IB+bqv9sYUKyoOyLP6klEm4itVFi2fMrzBRtq3i9ffCJhq5fLaPgcCCUuaXzcY8IbjTav/rgXZyZhNneOPSwSA0xfLPOHdFs33VpN2px8uUUAD6Lwfd8RxOIvlc8B9RzlOY/QGwxnoAb06M8b6LVjzyF0=","translations":{"en":{"changelog":"### Added\n- Administrators can set one TMDB API key for all users under\n  Administration settings → MovieDB. A personal key still takes\n  precedence (#24).\n- MovieDB checks a new TMDB API key with TMDB before saving it, and\n  explains when TMDB rejects it, for example when the short API key was\n  entered instead of the API Read Access Token.\n- When no TMDB API key is set, the message now mentions that an\n  administrator can set one up for everyone; administrators get a link\n  to the setting. In the settings, administrators see their own wording\n  and a link to manage the key for all users.\n\n### Changed\n- New App Store screenshots with real TMDB covers, now including\n  sharing a library, import / export and the key for all users.\n- Requires Nextcloud 33 or later and PHP 8.2 or later. Nextcloud 32\n  reached end of life in September 2026; servers still on it keep\n  MovieDB 1.6.1.\n\n### Fixed\n- Saving settings no longer stores the TMDB API key when another\n  setting in the same request is invalid.\n- The \"TMDB API Key Required\" message no longer flashes briefly while\n  the app loads.\n- An API key with a trailing line break is no longer accepted.\n- The API key status label in the settings is readable in dark theme.\n- Movie cards and sorting by rating use the rating of the latest watch,\n  like the movie's page. Before, a rewatched movie showed its best\n  rating on the card.\n- The \"Mark as Favorite\" checkbox in the add and edit forms is now\n  Nextcloud's own checkbox; hovering it no longer shows a tall outline\n  around the box."}},"signatureDigest":"sha512"},{"version":"1.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.6.1/moviedb-1.6.1.tar.gz","created":"2026-10-07T19:46:05.691345Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T19:46:05.754163Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"4NmLpgSqpBcuvJFv+Fa8/Rm3cZNLYo/1EJK3SQ6CB8EPuKxVbelPt+oImJ39cmEb\n6lLoRV1ATjMe8BCtWTZHij272U7TUDL62dqnR6fhk95NoRG3+xWvZ4O/TQ3wbk7b\nW+5r4sr0HGqiD5w9h8Fj387v0rvpBTTCVZrdeanbGsfycGO4/0ox/rCarC41y/W1\nTR5UxF04WhsqdsPSQh2n+FVlCldKWB3gDojMCEJR3pBf0zZq3OEAtWBLk24Nr2pa\nU/rPVdk8tI7RYDEGQCDlnlBv7hpDy3fkdeWSfKIK6VZmMx6wnJozIXYa3jitlILc\nbZ9uWpeSG/gP7bItmONDQ+q6kuBCPwCr7yHLrvdJ+MN1jSqEdZbMLaViwLQVxYVw\nn70rQdgkskgD+J51aumhYA5F2hStkgaDkkeEFf/1/zLjz9xFjUOteopM+qf3p1gk\nIZ6NKxBZnI3A7XxxLTk3fGPMsFblt0BAwMtJC7oZF57aKW4uQbz/i4aMERKp6CtT\nW/KV5B2CqL12jkXLPALEPxKks7q3O7n/eZxAFCJQ1BWT9t7VxSKHwt0FOrUlfJEj\n66cI6PNKfSGw4W62zW66QhDey4K6hG80SQ89+/gFOPyEvzCksfhhYIuhtoMKJoBx\nwXz20NfVyI1Ejw3LEwuxEZbKQdKPFcqPVA6boyaTPps=","translations":{"en":{"changelog":"### Changed\n- The App Store description now lists the library import / export\n  feature from 1.6.0.\n\n### Fixed\n- On wide screens, the backdrop of a movie or TV show page no longer\n  covers the navigation (#69).\n- In the add and edit forms, selects now line up with the date field\n  next to them, and the \"Mark as Favorite\" checkbox lines up with its\n  label (#70)."}},"signatureDigest":"sha512"},{"version":"1.6.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.6.0-beta.1/moviedb-1.6.0-beta.1.tar.gz","created":"2026-09-29T18:16:53.030954Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T18:16:53.051928Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"IVU+tpVoMJZkMAJEFNoTD1LzoPZH09lhaZ5hWZg2Z5XnvRvDLg2wcWwovsKTCKd5fkf7RjzjFYQhYl6MvRZvxeESq/xQzS8P9TBKtcyJX5rSipoAZOS30n4s5XcD/NbkHAnnf3nwrrtQroFgiKAZZfv1s83M8b3B1QFKfkQQmFclbZHTEkdf197ZGi1O1AGD52YuPmymPc4Bz/CbMaxqjllZw0elt04tdJzY1Ti1fiT5ukqB+3hVNoxwEj7NotYrntQoaOBwFLun4+1JD+lMkZH+x2kwqPienRwH5Uyf5RHdBIAG6kejtK6PIF4SdYhBLc9Ytjc2yBA9mdFIhIO70Y1i7PXynagRXG0haqFWXMYCRWhgh26XUkci/GFwZpsPtyqVdxN4UY7FxlvgQcqPVRKDKhba6DGVepoex5RS25A7YvJbUw4mEfdO2WFAOhJDXYEMkxy4N79u+1V9c3b2EhZ7zeMEbGfWxAnH7okaNOSqQHdu57OGr9ZwThQBFkWP+kEkAz1HZ5VMjguOM6oKMYYaMC2enhFsVIvKaR0gBEWP/eyHBdkU1YRCFI/WaV/5iv1fjAjQjOCUWJsCnew/ruuVbDqFkwfMPUNWZeVXDerxXYJjNCqIxIXZUw+RIuxkuGxq/x9WBfFtLIW6yTli8cmTjUf/1mIF4n+ak89tsBY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.6.0/moviedb-1.6.0.tar.gz","created":"2026-10-06T18:22:41.985606Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T18:22:42.058921Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"g1tV4oIWUHNEku7x9Z7favhaUd8KtidITA6rPee8nOB6LrUeZXNWOuMCHAPh9yxoRtlmUHPQhM02//J39TeUWTOKuOPl2GvfIofEbNZPLO2j2LpSI4ucSeQIYcb9RkhC4IknVDENJ8EBNHKiJ96Kh3kI12hZrrHer4kjK29UOb0IiCZoCY0L1fpuQ7/YmwwGy1W33MS6k3X/Rt/jOKxaxNGDci5n709adR+FDEpsw6xWXx2P2hcDIot7eBN6Orc5ZRWcilkYnZux9CXdUapP4ZdB7eeJTefNjU5IMxvlTbrLG8ulkcJ/OWHuJ0BgjVKD0TesIr+kyt/4kMJo5DBLkGTtVqgGZtkdGc43CtnIOSVI/A11prrvB7Auawy3w9gFD+0ndDfg9LnS+tMPlMStjG3IF9RMXgeuDAsV2GGOu7QDjMWO71KWpFyNN8Xo10eqCL/zXNjQaDXsGwuYiuruNwQdvZYJ8vC+6w0S8FXewwosAq7GZgVA/D2wpIxpBhl76GlGcweZUJB2fV7zPjT2Kawi8moRh6oDUVuxBJT1fp3PN6W3UKpd93SMzIsXNE1C25wQe9DPqfCGKcZWYaPkwwWfsmygUowt796VRXpld8ee+klurhHxcg7bE/HxpYhaSMxaae+W7SFXHVjyrPbmZa4nry9/C/Zei593Yveb6S8=","translations":{"en":{"changelog":"### Added\n- Export and import of a library as a single JSON file (Settings →\n  Import / Export), for backups and for moving a collection to another\n  Nextcloud instance (#62). It covers movies, TV shows with episode\n  progress, rewatches, ratings, reviews, the watchlist and custom\n  platforms, but not the TMDB API key. Import needs edit permission,\n  skips titles that are already in the library, runs in one transaction\n  and needs no TMDB requests. The uploaded file is validated field by\n  field, and a confirmation dialog shows what will be imported, including\n  the library and time the file was exported from. Export files are named\n  `moviedb-<library>-<YYYY-MM-DD_HH-mm>.json`.\n- Settings \"About\" section now shows the app version and links to the source\n  code, issue tracker, App Store page and license. `info.xml` gained a\n  `<website>` entry.\n\n### Fixed\n- Saving settings showed the \"Settings saved\" message twice, and removing\n  the API key showed both \"Settings saved\" and \"API key removed\". A failed\n  save could also show an error followed by a success message. Each action\n  now shows exactly one message matching the outcome.\n- Importing a file made of a huge number of tiny entries could exhaust the\n  server's memory while the file was being read, even though it was below\n  the 25 MB size limit. Such files are now rejected up front.\n- Control characters (such as a NUL byte) in an imported file are removed\n  from text fields. PostgreSQL silently cut the text at a NUL byte, so a\n  title could end up shortened.\n\n### Maintenance\n- Tests for the export (including an export → import round trip) and for the\n  remaining import limits. The import and export were also tested on\n  PostgreSQL.\n\n\nPre-release of 1.6.0 for testing the new export/import; its changes are listed\nunder 1.6.0. It was only offered to servers that allow pre-releases."}},"signatureDigest":"sha512"},{"version":"1.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.5/moviedb-1.5.5.tar.gz","created":"2026-09-28T18:49:19.517240Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T18:49:19.559904Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"yCWt1i5hurMVmbsvYoEIcAWrz8j37SE1hATcmGXhK7I1sX7LisRP8Y1AgicgzVVa\np2X59Iy/J3Gj020tPkB6QKsaRngdg6+lW50Hn5gZ08Fl9h8ODhl5H5JKjnSzbEkM\n2GQizK+VyH+6tenpU5+UkjM0AuzFspqQlSP4eCLW4sVE8rev/q7F1hjo1Yt7lqpq\nobpKvImzyoPlbVCThMFw4DW3mwrhmqAdD87yqlJ34g43ddErfM3vKmDRQWewtENA\nAAVKkuC15hPqc3Z+Zs6LJLGq/DKFSu1rvW7MUqc6wNq8kt1HL887Kleem5+jHSEG\nwpmF2gWX3rV4In+gHUVgM4INqfxPj8APAlcvrtLYs/DtXX9EW0btgrCDEhlJkEJA\nFjvNAKHcci6av10CNg7UCNzmbnt2ok8ojOg3nrg8OnpHUHqRS3qBH+dZAhj9sAEl\n1WCJLT3vUUXapYwREFpvNKDELIRxmg8D6OWh6NF9VLpXY6xyICUwS/dk4tiriItE\nQtnlqyDagRjif2aItJZULRDOPC737oL2KzZvRmImm/8UFR9QFtbe/yU21x9ebl3n\n160RufMVndfA1jGM/ss+SxvrpnO1gNkl/fSVFIuflx0gINHo6kcg2BsqB0jDwy8H\nY9W7g072frrtpVgVznCOZIDlG+SDZbFCsfTwaALgs3U=","translations":{"en":{"changelog":"### Added\n- An \"About\" section in Settings with the TMDB logo and the attribution\n  notice required by TMDB's API terms, translated into all five locales.\n  The same notice is now in the App Store description and the README.\n\n### Maintenance\n- Upgraded `vitest` and `@vitest/coverage-v8` 4 → 5 together, plus patch\n  and minor bumps of `webpack`, `eslint`, `jsdom` and `@typescript-eslint/*`.\n  No functional changes."}},"signatureDigest":"sha512"},{"version":"1.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.4/moviedb-1.5.4.tar.gz","created":"2026-09-21T07:59:58.857320Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T07:59:58.922794Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"KoU6GVlNgvtWAC9hWlSkVvK1e4m0Y/0Hm54qQTDgucO86ZdlP3OkJu0TehQ5O0K5\nxtVq3jNUvkeoU/rewdLnREnVclfkBsmjeE2WGBgEIp1oM9xivg1jun3kXdXp/FWy\nH5vL5MZZkUOLLGztrUJ/wli+DNicZbeEYK636MSpG+WO9gFGMrJRgNFu/34/p+OA\nCyTpmSRW/1o5JwamYxGW1eCXwrJcDng3nzvyaq9HcYanMLU4LJi5XF43ZZXyJEJS\niywTogu3BDPfS0cfZly9SG3n5aSROV3FGjYjgOi1abjXZthovKHBps/HCnqmeBB7\nvvjsNT15+QgbHgMKJmBLa/2NSb2iRbHxWj7RemBnW5t0LYpaTM+GiubOoPEACDkR\nU8ty8UhynqAK6SHT1mmYlc1tk6JCaNy+Dxr8EiqY7hBwt/FkgIh6d4a3ySxljpR9\nef3QFu1PKn/2gGoAxLJYqo29L8i/u1QMBSlnC4/+vFoIqJjZU+t8J7Xto50uGV5e\n0UUdOlmfYRH2PfzRO0y/C/nLMIVNsdgthndN0E5qogcT5f7hYVnne1BN/tllc93C\n2ypAmgn8NEaksRJPw+2CZF9HADe5s6hijyXScWZz90KDWdUu0eCC8KLSp/bTQuaz\nhCfgEJ1r+VdIuKxcDvfRExeCcby8RelgGPIlHxA37Go=","translations":{"en":{"changelog":"### Fixed\n- Several UI strings (search placeholders, \"Enter movie/TV show title...\",\n  \"Importing episodes...\", \"Write your thoughts...\") had their trailing\n  `...` normalized to a proper ellipsis character (`…`) in an earlier\n  change, but the translation files still keyed on the old three-dot\n  strings. Non-English users were seeing raw English fallbacks for these.\n  All five locales (`de`, `es`, `fr`, `it`, `nl`) are now back in sync.\n- Added the missing translation for \"Failed to leave library. Please try\n  again.\" across all locales.\n- Fixed a typo in the Spanish translation of that message\n  (\"abandonador\" → \"abandonar\").\n\nThanks to @ba3r for reporting and fixing the translation drift (#47)."}},"signatureDigest":"sha512"},{"version":"1.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.3/moviedb-1.5.3.tar.gz","created":"2026-09-20T20:51:52.098600Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T20:51:52.159305Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"SM91S8OUY7ERDhmFmiIJXRNo6AZzurMLVq7lFZy0GYfMwT5arI2CYJa1XlO1tUxk\n0hDrvIY570YgZ1z6wWak3fd+855YYvMEjvUjT4TEBmsa76ZWKogg3TLFSUuFlqaB\nKtw9gKw4VsGqce4jinvAiSi66ZmRcTFJZd6nltqUrFQmzhcSDlshJkYs2UCqmIQL\n7j56ylMMxhLWx2/zfMn14InRqNyXZuHzamrgGLKY+65BW+y/mlHZvGS/Pf/ivOD7\n8JOR9NbLhtk3rO/g/ymTJW6smRkl1XcXKzutRxjQMzwZBFc4GQhwmAHFDGWx8B3O\nyTiyZGKhvO//UKIEDk/JPcYU8lNOLN7MAN9QJgPGStblMasS0Hvlj1AfryTQS+Uj\nSWTLlfWd3FjPB8sPc7i+V3i/CohnKKCiEJ2XX+tviVErn5z2l3hVw1RzQHyHCKea\nfOyfL6CpCZQOWgmJuRpFkdoeRiw2PeH03cMN+4FeBTnV5cktpL+qcMA3uDyfpxAD\nijRxYDvmSj81Ylb83Aa7HdO5W4NJPaimu+rzX2wagomBpLeab7VT3Z2lT76E/h7Q\n89r/KbnnsjEZBzasOmTYZ8cSx8di785gJcdqoh7tlronUTRm1TJJDgPX1P3gBCkm\nGUsmBDZmrZ75Ubl3Wz3LSKWz7DMNkncZaPMZNRAtH7k=","translations":{"en":{"changelog":"### Fixed\n- Fresh installs on Nextcloud 32 no longer fail during `occ app:enable`.\n  Three boolean columns (`episodes.watched`, `libraries.is_personal`,\n  `library_members.permission_edit`) were declared `NOT NULL` in a way NC\n  32's migration validator rejects, and the `moviedb_library_members` table\n  name hit NC's identifier-length limit for an auto-generated primary key\n  name. Existing installs (including upgrades) are unaffected."}},"signatureDigest":"sha512"},{"version":"1.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.2/moviedb-1.5.2.tar.gz","created":"2026-09-20T19:22:31.834213Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T19:22:31.902454Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"kai3DGfd2M037yLLMLcYqZWHi6lneYfEykTrNFtz+M4LA4eh0LS7NhfOCnOcf+Hn\notpQkbSb1+VtwlQba40wUBtoQn0CHrgZ+TfUsCX09I5NGSBDZiq+mtlCexIL8tWN\ni9xD5jkfxocBn63s5Iw9tG6IXqBCEspaR9GIdJsRp+3tNV62uCederi+LWpfaErn\nYYbNGMXMhlXyObkamiA0Y02bIGOg9r7iHURklVUdObG5NKMUnldG+b3iqfpU7Gz6\n7otcc3I00Cq3KxSB+ZAypTml6DjrYpf54zp8JL0lMi63QfXBNjSY+dkwR00+ufqC\nRGIwZN5v1azDVMOD0zHUQyS4Hk5425tpX2gzq4QneEQXc8pCKLPq4Nedf0ghEf9q\nsnHNMvJB3vgW5dsUlRMtvPEK2FzA9oQR7SASx6+DoO72/tba3adeAtpFfMKLjh97\nWPkuR7JfKENrDSzONzZou13ylsWVmc6Qx/1WA2Y3mlxOZOndIbGZYVqXomKOgXGR\nCf1ECEBvQQrdNLaRVSl6/yma4UNVNOOHp8OoszZNV49NkIuprLbbDQruB5I6e+fN\nlmzmIWOQOeaU8hcw6422L1E2e7/oPtwNVr1BDFWHIb5AhDvEgDijh//MgHXtyhtf\nSk0OYyQYmbrw5Nj8jqGrhV4Q3FXtLmvj5otumk0QDPM=","translations":{"en":{"changelog":"### Fixed\n- \"Watches by Year\" on the Dashboard now groups by the year you actually\n  watched a movie/show, not its release/air year. Matches the \"year in\n  review\" convention used by Trakt/Letterboxd.\n- The \"Watches by Year\" chart no longer stretches to fill most of the screen\n  when there are only a few bars (e.g. a small watch history)."}},"signatureDigest":"sha512"},{"version":"1.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.1/moviedb-1.5.1.tar.gz","created":"2026-09-20T18:30:39.888434Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T18:30:39.965811Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"MNWzJHDY5k2lApRRKmevWNUpqhtY7kORwD4FBvXTTscE2boide8e2JzJMSw7qbW/\nOddgepINDy5AHgUw6hLbSmREvG5r44+VAoj6GJFtcJiTL/k4RHfSEECbEzBUNIsE\n+Qray3p5h2sZH5Cqykq96pcGL230tEj8+tz4G6XQNMoOeghb5SZrdVeUcwpQGeoj\n5ojYPd5TkUY3B+biuJxe4LwolWJRrxhNrW4E5WIgoibzO5VDggwyHK5GUDsLIiTb\nuot1f546sL0WxbcW07K8kXJ5nnKbA25eRDvEqtgHBxNs667wb2ArMCAcEdLwR822\noFungmHhkXN5qTouDg95dbdoCBddYOE7lrK/viiIsD5xYwJ45/pWGHd0NeMJiDcN\n+2NHrLC4pPo1k3PQ3snp6SG0DSOF5Sc/90ygd0CdWR2QDEDvYLnxIaooB17VUzeZ\n3CtIlNJLoPmgMNTu7/H9o6YpaL1Z4CHerTbsd1VdlXGMzmm4kZk5N4v7LQFrpb1K\neRh6/kNjomkns7u4yJErdTsYICC6mgrnbRKIAqEIn9bagmjyQl5nMH9Jpa7Jl+5O\nhL7ZekiXjEzvWL4YvrRyupxUVKBZklGmxhNMGpoelHpT1/wm1GSXKCnkUA8TTjMe\nNXTKWJrwNHe03RlOCEhPYtNcik/xF04KICtAMi74iII=","translations":{"en":{"changelog":"### Fixed\n- The v1.5.0 release tarball contained stray macOS AppleDouble (`._*`) files\n  and extended-attribute metadata (from `com.apple.provenance`, newly applied\n  to files by macOS 26/27), which broke the Nextcloud App Store installer's\n  \"exactly one top-level folder\" check on some upgrades\n  (`Extracted app moviedb has more than 1 folder`). This release is\n  content-identical to 1.5.0, repackaged with `COPYFILE_DISABLE=1` and\n  explicit xattr/AppleDouble stripping."}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.5.0/moviedb-1.5.0.tar.gz","created":"2026-09-20T15:19:09.615756Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T15:19:09.686234Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"xlyj+iMssN5+P1t+mfcYmQON/vtzerlnfPfb8QSxeAxwBvZCluFiIJ0MO6YY2R1K\n4mwFvG4Kd1wjQULGd4g4fN+VN7UwsS4Jdp4jolx+qKIc5Hm5YGtTjO0DgOe3AfmX\n5NuQzUgbV2f8SEhb7mVKsMIC51HCez2r+AEq0AQOaNOVv6SETZ8FzsYofWHZwxUU\n5YzsBD1fOGilOLQEx3oEwqxHLQaknCOnmrKR++jF7v0Qtz85zp8oC9cophzJD7ei\nBayPpbB1q8oX73mt4t+yCfWbzgBZRGWrsxPuAuP4YUYAMm8v4ii8RSuE+zeGDwv1\nyFwxbmvCqw3SvIvLo4XP/ep0RQcOjt1SKMS6lfilIKZKfx+2oA+JcC5tR9fUC9w7\n8SfAxBcm8uunMGl3SCKMlFig9CRJU80q1S//vtTWi5zJOh8Jdvc5fLg4T2weamsE\nMeqD0OYlniLRWuhVR05FNxUeFKLMnDtdYU2hHhgAn420sfpPxIIaax9rS+DgBMqu\nm6l2oOxXe74Rj6BjyvoPquYEXg30DBGl3isNgxD7j+93CKrXFUgltL7wqE/mXFVb\npw2/ZzaRbnY2qwBpfYXmYRi0n1CYpKdKSJtMNCQw2rG7MGhAeeO4/UJvGhg/DRdb\nO2URYsUTmQmu5gOP81hXZ0hsLYIunFdLqn8nSnTnO6M=","translations":{"en":{"changelog":"### Added\n- Dashboard now includes \"Watches by Year\" and \"Watches by Platform\" charts,\n  including TV show watches (previously excluded from these stats). Both\n  charts share a new \"Show\" filter to view All / Movies / TV Shows only.\n- Watchlist pagination (`page`/`limit` params, matching Movie/Series), fixing\n  the previously unbounded `/api/watchlist` response.\n\n### Changed\n- Visual polish pass: consistent card hover/shadow treatment across\n  MovieCard/SeriesCard/Dashboard stat cards (shared radius/shadow/transition\n  values), a subtle poster gradient scrim for badge legibility, per-stat\n  accent colors on the Dashboard, and richer chart styling — gradient-filled\n  bars with a grow-in animation on Watches by Year, gradient fills and a\n  smoother track on Watches by Platform.\n\n### Fixed\n- Recently Watched and Top Rated cards on the Dashboard no longer collapse\n  into unreadable narrow strips on mobile viewports.\n- The Dashboard chart filter control no longer overflows the screen on narrow\n  viewports.\n- `/api/watchlist`, `/api/movies`, and `/api/series` no longer throw a\n  division-by-zero error on `limit=0`, or accept a negative `page`/`limit`\n  that produced a negative offset — all three now clamp to sane minimums.\n  `totalPages` is now consistently returned as an integer.\n- The watchlist's media-type filter no longer silently returns zero results\n  on an unrecognized `mediaType` value — invalid values are now treated as\n  \"no filter\", matching the stats endpoints' existing behavior.\n- Changing sort order on the watchlist while on a later page no longer leaves\n  the user on a now out-of-range page; sorting resets to page 1.\n- The Dashboard's media-type \"Show\" filter is now visibly grouped with both\n  charts it affects (under one \"Watch Statistics\" section) instead of\n  appearing to apply only to \"Watches by Year\".\n- Switching the active shared library no longer leaves stale watchlist\n  pagination/filter state behind — a page number or type filter left over\n  from a previous library (which may have far more or fewer items) could\n  point past the end of the new library's results and show a false empty\n  state. Movies/TV filters are reset the same way.\n- The sidebar's watchlist counter badge now always reflects the library's\n  true total, not a search/media-type-filtered count — previously applying a\n  filter on the Watchlist page made the badge appear to shrink until the\n  filter was cleared.\n- Opening the Watchlist page no longer fires two competing API requests (one\n  before the active library was known, one after) — the first could return\n  data for the wrong library depending on response timing.\n- Rapidly switching the Dashboard's \"Show\" chart filter no longer risks\n  displaying stale data if an earlier request resolves after a later one.\n\n### Changed\n- Extracted the duplicated `mediaType` query-param validation from\n  `StatsController`/`WatchlistController` into a shared helper on\n  `AuthenticatedController`.\n- Added a `resetFilters()` action to the watchlist store (mirroring\n  Movies/Series) so sort/type-filter/pagination resets follow one consistent\n  pattern across `Watchlist.vue` and the shared-library switcher."}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.4.1/moviedb-1.4.1.tar.gz","created":"2026-09-13T14:22:24.832280Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-13T14:22:24.897828Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"fW/4adHB/dpgcR8RMr/F6/964k5AHNAz9qD1DjFFnAh/tVFcjQpUrd7ZBR8+Sc1uSe9NE8oogHa/WZ6bGr81mR1tdzUPq2jAzS91oCz6EM5o0eH3zkx21JjMLdZWJGQ2aSlqa14s/EtjgYWtWUS1HOHRfIyCmPvbvJciWQIZPXyD0GUnr5EENxgzvOm2n4duZ510ATiozQ2g3+IvlY/Mnm7rdwzza44Uokre3SSnnwi5aCA/GBjZdq3Eyu7EWtPNqUCyiW3+8l32GF1IqInQC5X00eKrEKfao8A8Zyvt6+3omx92rw4MObORIZnr7VSvu5yd7S8mz5bR72dSbNVFz1omC2DkhZquLvTE1ETLE3sxHuqEAjD0DC7CmqMIUy+mnRcNBSDdkgnuae2TOklbJK14m2tXNovCBL6BtGqIt4kPHBNloxr+zeanzhjwR/8Qz/xPbGudy7P6rGGPrdVk8GzRm+tCbh6TvhtMmYSo+GDsaJN9zQ8Tocsul7Ja960NN1jVJjIQhtyWQtd5Ym+TlPZ5UjmIqEmWrbWyzRdwzXgfAT6J1IE6hXZvujWfxFZV3u0seVej2gowsJDGD69/iWjtC5WVliAAoGTNBcjgBewO11+TeIb4HMa2cQsg9VdDeYMF/Uegawce68Tc39qWFl7YFDnG/iYnT/61T8r4QtQ=","translations":{"en":{"changelog":"### Fixed\n- Translation placeholders now render correctly in paginated movie lists.\n\n### Tests\n- Added regression coverage for translated placeholders and plural arguments."}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.4.0/moviedb-1.4.0.tar.gz","created":"2026-09-01T18:57:27.475158Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-01T18:57:27.547787Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"W/fG+iP7aiQ4JEqCs4ZaUYIW5HEfc+0t5YrUipKM8MEUvnJZh0N48oTjVhHI17TU\nBcpmMBoE9/0TsaLEsK/F2sPUij5qhbEbnHIebiDI579YJxlSfNqj4ITcVFfMYiHh\n6q2uSLsxyb7fQgL66RHbzaqq3PFRfRhdc5OmoJtB3Hq+xpvBDrkz516zKjD8hy01\nCrI2kLhzYvqf4V8uqBCvfEh+SP0vlCuIGyzjYpqwIAw3YX6Y/2/3Ll7WCoAGAOEA\nh6jCiGRhPFXP4tgD+Hj2hqGyRA9LjgkZWLbEGDSw/TclEee43pCAcT/b3p/Pv2wH\nPokcYxn+cAAeOxqWG/v/JOk0SoDItx4gH1z4dKAVbnXz3emvAO6GjX/O5M80NZAv\nZWTzNjDHi0ErKAMb+WRRR3/aEvFt1UqIUsNGq4lFYPUX/lYePMEF/bY/aw3joHse\nXgwhP4y2qVERPW48FX7GphVFgy7FdAmYXuCz6TapWJGx24bQyn6R7laNNAubGazE\n0kvBi8day7u5iGib80rm0IBoCP6c9FEXFJKa1jlrCqfWdb3z7z0zn5Os2bx/sQ6X\nrj0e+c/c75NtU48RBx61oCDGZM2RW9VoMfnf8IYVEpn391aNLFKxedFG6sdJvto2\ntx+j5B8B7BH2wSLBeGPV9BnIw6ZCeMgB5r2mxq9YIBM=","translations":{"en":{"changelog":"### Added\n- **Shared Libraries**: create named libraries and share your movie/TV collection\n  with other Nextcloud users — assign viewer or editor roles, manage members,\n  and switch between libraries from a single account. Everything about a title\n  (catalog, watchlist, episode progress, ratings, platform, review) is shared\n  across all library members; `user_id` on catalog rows becomes legacy attribution\n  only — library membership is the sole access gate\n- New DB tables `moviedb_libraries` and `moviedb_library_members`; all catalog\n  tables gain a `library_id NOT NULL` column (Migrations V5 → V7)\n- V5 backfills every user's existing data into an auto-created personal library;\n  V6 enforces the NOT NULL constraint; V7 heals any duplicate-membership edge cases\n  left by a check-then-insert race in V5\n- **Self-leave**: members added to a shared library can leave it without needing\n  the owner to remove them (Leave button + confirmation dialog in the Libraries view)\n- `GET /api/libraries/sharees?search=...` — user-search endpoint backed by\n  `OCP\\Collaboration\\Collaborators\\ISearch`, respecting Nextcloud's\n  `shareapi_restrict_user_enumeration` and group-restriction admin settings\n- Viewer notice banners on Add Movie, Add TV Show, and Add to Watchlist pages\n  when the active library is view-only\n\n### Changed\n- All catalog endpoints (`/api/movies`, `/api/series`, `/api/watchlist`, watches,\n  stats) now accept an optional `libraryId` query/body param and scope reads/writes\n  to that library; omitting it falls back to the user's personal library\n- `LibraryService.resolveLibraryId` (writes) throws on a denied explicit ID\n  instead of silently falling back to personal, preventing cross-library write\n  confusion\n- Member management restricted to owner only (editors can no longer add/remove\n  members); viewers see the members list read-only\n- Library delete cascade wrapped in a DB transaction (episodes → watches →\n  watchlist → series → movies → members → library)\n- Rename preserves the caller's owner role in the response (annotate() helper\n  centralises role annotation for all library-returning endpoints)\n- `GET /api/libraries/sharees` requires at least 1 character to prevent\n  zero-query full user enumeration\n- Dashboard \"Recently Watched\" now interleaves movies and TV shows sorted by\n  watch date instead of showing movies-only followed by TV-only\n\n### Fixed\n- Library rename bug: editing the name field immediately after saving no longer\n  reverts to the pre-save name due to a stale local binding\n\n### Tests\n- 121 PHP tests, 136 JS tests, 0 lint errors\n- New: `LibraryServiceTest` (21 PHP tests covering create, rename, member CRUD,\n  self-leave, canAccess/canEdit, annotate)\n- New: `libraries.spec.js` (28 JS tests covering store state, getters, fetch,\n  create/rename/remove, leaveLibrary, member actions)\n- All pre-existing tests updated for v1.4 API signatures (`libraryId` param added\n  to MovieService, WatchlistService, SeriesService, MovieWatchService, StatsService)"}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.3.1/moviedb-1.3.1.tar.gz","created":"2026-08-29T07:33:49.850247Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T07:33:49.955928Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"MBqLzKCQipMCqtf0gq6QFUqrK631nyx3olhG568t71yV/TOlV8kNQkntE1dQqNay\nt6HB0DDREGQqfvGa8cg5MBmfg1aq3+8i/DWxVOAmavSD5vU9of2XnwjZivDfvJNu\n/yOvUz6DnmK/GMCQ/FufzVZKanTCLPQ6d365qdnyHSpJcjXVp4hir8d7YbwGxqWo\nDNSq6+g13CvCxMLo+tCaQK6AO3YZYKscYlSoo7YTO5vOfMErupZdv8TRHz0zj8YN\n+kndD8NarfyOIEid0k8KTcA7rXdAIN13V8CjtQnwbjV4uk831MEfA6weKQkdaxt3\nmnUBWi4lvCLcd2pqDlriHe0c/jqFLll2GQJNoXchfGH7nYwE5Lfn3+5lq6gha7Ke\nKU6rsN8DlhEdKXl80ZIWfHwOGgewUhrVx5spgvaQ90Sjsq4J+ilX1osXQW+4YMyH\nw6uKZfDFbR9t/NI55iBjDuAQNGkE6pIIVDcwOu48y5KSqC0bKiO65jwrA2dr5WSn\n7Z8IsFbWR6rszgI47bbuhbV8Vfk+BteeC91LfyBvWljDuxgFNeOXQBhTeedsyx6B\ny45vDccx0I5KaHm6lTlZ8eMeEGmADQ3qVaB1Vv/zmgt2cGJljO1EpbIBBJQsqn2S\neRw1V0S8qgctZTtCIdXc9jyIusM/cK+dHdR/hYKpvCU=","translations":{"en":{"changelog":"### Fixed\n- `PlatformService::findAllForUser` now checks `hasDefaults()` before calling\n  `createDefaults()`, avoiding an unnecessary DB write on every PHP process start\n- `SeriesServiceTest`: test mocks corrected from non-existent `findByTmdbId` to\n  `findByTmdbIdAndSeries`; static `$defaultsSeeded` flag reset between test cases\n  so platform-seeding tests run in isolation\n\n### Changed\n- App Store description updated to reflect TV show tracking and rewatch support\n  added in 1.2.0 and 1.3.0"}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/shellmann/nextcloud-moviedb/releases/download/v1.3.0/moviedb-1.3.0.tar.gz","created":"2026-08-29T06:50:03.652006Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T06:50:03.743897Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"o53wujykdigXdIMMC7OwGc4U1s5G5LWDUGFrsnyTbMe4zh9zLM/pb4KwuGJNbSWZ\nlNAnrJg86s3Uj+tNdHMnEVzYkeAAqZ92TSdVN6UCbL+LMU+LbdJJOijXhEQho0xF\nNF0x1U2+AzuW6fVDOC7eYmtIuCBAB/4xiGra/bqGVPGTpttmdYpkg6TEmF4NkhKs\nTH0sNeoqbOKH0bvWU6q4d27Icqc8klNA+Eo61AGq4OOg4zY5I2CTdZHrGQW1uarV\nesawGTxZpEf0B0+eg3dvMOXRq4f7ULLDGxvgbSZ8ulevAem0zHuO0ldeov1YJScb\n5ko5nINoVV/AKJLqSgqkMX2XSduc12llo4uYD2aiSS4GqoIX60JwO2fFR59YfphM\n1i4E5hVxGYWfXEOX9h38sOt2ea9yUS8/CUYLaXppP5Xr7gC1/gShFennJ4HEms8+\nLAJXGgYaUwVR1OZzQ1IoydswGSeeHV++5Qs2cjD0no/Hy5FG1EFUPBJUuKmcwQSG\nQ8YmI8/gxs+5M1O4vxCXWl4NaOnWbEkDoKKotQA5aOJVZfk0zIFUSjb0ZW87Q5NU\ntBDZNi6ccg2DWNOxWdYgvpBwGDoLySpS5Z3csCKLkEmET6YGocEVTk3QdDW/XsYV\nAXyD3J/SF1omJfWKZMJhLGxmdkDEdWg0/XSlbKgaUS4=","translations":{"en":{"changelog":"### Added\n- **Episode-level TV show support** (#15): track series, seasons, and\n  individual episodes. Series get their own `/tv` section, list view,\n  and detail page separate from movies\n- New `moviedb_series` and `moviedb_episodes` tables; series metadata and\n  every episode (including specials) are imported from TMDB on add, one\n  API call per season\n- **Derived progress**: season and series completion are computed from each\n  episode's watched flag — never stored as a season/series-level percentage.\n  Unaired episodes (air date in the future or unknown) are excluded from the\n  denominator; specials (season 0) are stored and shown but excluded from progress\n- **\"Up next\"** card surfaces the first aired, unwatched episode\n- **Mark whole season / whole series watched** fan-out — idempotent, so\n  re-clicking never re-flips; only aired, non-special episodes are affected\n- **Series-owned watch metadata**: a TV show carries its own rating, platform,\n  language watched, and watch date — set on the Add TV Show and Edit TV Show\n  forms, exactly like a movie — stored as a single series-level row in\n  `moviedb_movie_watches` (nullable `series_id`/`episode_id`). Individual\n  episodes are a plain watched/unwatched checkbox with no per-episode metadata\n- TMDB Movies/TV toggle in the search UI; localized TV genre list\n- **Watchlist now supports TV shows** as well as movies: a unified\n  watchlist with a Movies/TV type toggle when adding, a Movie/TV badge on\n  each entry, and an All/Movies/TV Shows type filter. Marking a show as\n  watched imports the whole series (all seasons/episodes) and routes to\n  its `/tv` detail page; marking a movie behaves as before\n- Dashboard tiles for TV shows watched and episodes watched; total\n  runtime now includes episode runtime\n- Translations for all new strings (de, es, fr, it, nl)\n\n### Changed\n- Migration `Version000003Date20260828` adds the series/episode tables\n  (including a `watched` boolean on `moviedb_episodes`), relaxes\n  `moviedb_movie_watches.movie_id` to nullable, and adds a\n  `media_type` column to `moviedb_watchlist` (default `movie`; existing\n  rows backfill to `movie`) — all add-only or NOT-NULL relaxation, safe\n  for the SQLite fresh-install batch; no columns dropped\n- `media_type` is now populated on movies (default `movie`) for\n  forward-compatibility\n- Year and platform charts remain movies-only in this release\n- Dashboard **Avg Rating** and **Top Rated** now include TV shows alongside\n  movies — a show's rating lives on its single series-level watch row, so it\n  counts toward the average and can appear in the Top Rated row. Movie and\n  series cards now carry a small Movie/TV type badge\n\n### Fixed\n- Default streaming platforms are now seeded lazily on first read\n  (`PlatformService::findAllForUser`) instead of relying solely on the\n  migration's `postSchemaChange` hook, which Nextcloud does not reliably fire\n  during `occ app:enable`. Fresh installs no longer show an empty platform\n  picker; the seed is idempotent so it never duplicates existing defaults\n- **Recently watched TV shows** now appear on the dashboard alongside movies\n  (the `recent` stats endpoint returns series with at least one watched\n  episode, most-recently-watched first)\n- **Episode watched state** is stored as a boolean `watched` column on\n  `moviedb_episodes` (toggled by the per-episode checkbox and the season/series\n  \"mark all watched\" actions), and total runtime counts each watched episode's\n  runtime. This replaces the earlier per-episode \"log watch\" dialog: episodes no\n  longer carry their own date/platform/language/rating — that metadata belongs to\n  the show as a whole (see Added)\n- Series import no longer fails when a show has a specials season:\n  `moviedb_episodes.season_number`/`episode_number` now carry a DB default of\n  `0` so episodes in season 0 (which match the entity's default and are thus\n  omitted from the QBMapper INSERT) persist instead of hitting a NOT NULL\n  constraint. Affected both direct series add and \"mark watched\" on a series\n  watchlist item"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL2Rhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL215LW1vdmllcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL21vdmllLWRldGFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL215LXR2LXNob3dzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL3dhdGNobGlzdC13aGVlbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL3F1aXoucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL3F1aXotcmVzdWx0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL3F1aXotaGlzdG9yeS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL2xpYnJhcmllcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NoZWxsbWFubi9uZXh0Y2xvdWQtbW92aWVkYi9tYWluL3NjcmVlbnNob3RzL2ltcG9ydC1leHBvcnQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"MovieDB","summary":"Personal movie and TV show database to track what you've watched","description":"# MovieDB - Personal Movie & TV Database\n\nTrack all the movies and TV shows you've watched with rich metadata from TMDB.\n\n## Features\n\n- **Movie Tracking**: Log movies with where you watched them (Netflix, Disney+, cinema, etc.)\n- **TV Show Tracking**: Track series at the episode level — see progress per season, an \"up next\" card, and bulk-mark whole seasons or series as watched\n- **Continue Watching**: The dashboard lists the shows you are in the middle of with the next episode; stop watching a show you gave up on, and filter the TV list by in progress, finished and stopped\n- **Always Up to Date**: A background job keeps the episodes of your TV shows in sync with TMDB, so new seasons and episodes show up by themselves, and the dashboard lists what airs soon under \"Coming up\"\n- **Rewatch Support**: Log multiple viewings of the same movie with separate ratings and dates\n- **TMDB Integration**: Automatically fetch posters, cast, plot, and episode data\n- **Personal Ratings**: Rate movies and shows 1–10 and write your own reviews\n- **Watch History**: Full watch history per title, including per-viewing platform, language, and date\n- **Watchlist**: Maintain a mixed movie + TV watchlist with priorities and a random picker that chooses from the whole list (filter by type, genre, high priority)\n- **Quiz**: Play a quiz about your own library — when you watched a title, when it was released, who directed it — with a question count of your choice, a score history chart and a personal best\n- **Filtering & Sorting**: Filter by genre, platform, and favorites, and sort in either direction\n- **Statistics**: Dashboard with viewing stats by genre, platform, episodes watched, and total runtime, plus year- and platform-breakdown charts (including TV shows) with a movies/TV filter\n- **Shared Libraries**: Create named libraries and share your collection with other Nextcloud users — assign viewer or editor roles, manage members, and switch between libraries from one account\n- **Import / Export**: Back up a library or move it to another Nextcloud instance as a single JSON file — ratings, reviews, rewatches, episode progress and watchlist included\n\n## Getting Started\n\n1. Get a free API key from [TMDB](https://www.themoviedb.org/settings/api)\n2. Enter your API key in the app settings, or as an administrator set one key for all users under Administration settings → MovieDB\n3. Start adding movies and TV shows to your collection!\n\n## Data source\n\nMovie and TV show data is provided by [The Movie Database (TMDB)](https://www.themoviedb.org/). This product uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB."}},"isFeatured":false,"authors":[{"name":"shellmann","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhMUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzE3MTMyMTI5WhcNMzYwNjIyMTMyMTI5WjASMRAwDgYD\nVQQDDAdtb3ZpZWRiMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA6t01\n0BBouRw8rCA2eTQU1HdZfNE4scCAg9UwsujvnjDJwMslqUV+Lue3+g8/pZOubxNA\nGDDiaKku3iYbRSnVzQsmsSUa6oUZ7d49+RTJpWl0IkpJEz8i+J+aPkNj3eB7lXR8\ndb1Ke/b59ATZIUAhkq8skx4kMUqjfHnH6e3IkWxbvYbmqFGV+cnReiwODgPSA0Sf\nY+L3S2XnPg/O8xtPmvEpA6gvhYZnYsytlrqh/vkt1TaeSLrroOeXKtG6hEtffVXT\nUNklss/84vbjOKwkQtQA4LpaT827y5MyrCi8nIcT6kcYeaNMlOMM/587WYg3HU75\nsuTKz7DGoOeIWrHuaz1ic8f0O5qZGNCNOku2vz4/GU0ZzQsefIXnrix+4jcj8EX3\n3hRb3xsIV/bpP2yPobMGu2MRYHccMNqfnT11O6LNvSXzjOITh39WJdf43pb/mddj\n8an3cS+wNmcYU09RzB6dGyk++fVwnZvZ7rFCaRiIRYNOZ69J1BtcAxhb6UenuK7b\nbFcknbRQEZOxr0qy4IdRBPr2h27COv2vROEDbSMZF9YtO8KL1k/JleCyJgj7uFoY\njo+mgfyJsr/ytco0TZrEskgoZvUffRnzedqbbTyzTDLiX7CYMKT6Ks9aCDgHUb8k\niSe6+Uqr1rLqJlPg5cgiPY1+sd7WeQNom47qUhkCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEANsVS7rTvACg3I3Ncfo9d9VMGHnRsgXlEmGYg+KiAQ2OMoVxmpG/0rftp\nwNDZV5Gyq8d6E5BO6YgmR+nCWnY7qwXt9t2r2wV0MZ3hVc1s6Hhrk/ZcXuCM3QE0\nSGYSi4Th/IyNXN2JvY668aVigglsoD2Mq+cp/XZdMG/6UOyDZKdo/GEQYTv9+eHi\nj/Ol1ayXhIK9JruEy2Y6NyB5qs3Y5CRzKne343UiSd8rPWX1GrRuBQ59diRTCL/v\nF40EqVxaT7j/BFHmLr86J2+ycXNOPyd9tqzjn3ZSoSK/46zAethu31e2B95BcHCe\nd9kofYWAJaLP98he/XqKJvQMGa4g9A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"diskmap","categories":["monitoring","tools"],"userDocs":"","adminDocs":"https://github.com/kreotropic/diskmap#usage","developerDocs":"","issueTracker":"https://github.com/kreotropic/diskmap/issues","website":"https://github.com/kreotropic/diskmap","created":"2026-08-03T10:09:57.250063Z","lastModified":"2026-10-14T11:01:35.556475Z","releases":[{"version":"0.5.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/diskmap/releases/download/v0.5.0/diskmap-v0.5.0-signed.tar.gz","created":"2026-10-14T11:01:35.551154Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T11:01:35.614635Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"D+PaeOLIAXjMVSBEEIvIB0zLmIT1LKl4SpeqDZvmagDoOtENtPn7VvRrUSpumuvn\nHGKcygrcSJKzHrOoVVbaKFVUF/abHHct6SnCBZh0dwsu7Gs4af8pxPxhy6ld9m44\nfcKur/7yFn42zJXV7ZKMuFZdd0Von3fTJgAJ+6pHj267U/6hCbvYjD+dBfTyN7yE\nrEuFNrtthFW1KPN7a+EiVrB1p7+MESjl4OjZiZGRZwvIruOWpRrICDN3aYFPUmSg\nYa2ZB+HbP9U1oVQ4eelwVSqrBrdgS/jV6jiszYKz3M8hMJNhfGitGMrRBUbmxv7C\nQJ4eSPBrcZ8yVfcq0AV1hFG58Wq0EyBesceP0hNJQ7UVoizQ7+gRJH38/Ago9fg3\ngwS+I4OqOSQEYem2Q7N4LqOTCv9HnG0uyIceZehkjsrOePaZ61KXyKhyagcGhtdt\nBP/4gOuOiSNZPA3WWd7KxJI8LyA5bZ2yAT6hCzgnbLzbWopGf9l/aCdLPonp03Ic\nqxUxrqQMBihR0fZtQ/F/3UNKVPIJQkAaY34FVJsPgYiNyQPxQ5683X2jszIeRdtz\nDxhss3Q7386jg2gtjtrqxRVAsZqwlntW+vJRiNr5dXrGzY0ltWD438AOMWg5Npwr\n8pKp1zceYwfZP0hgjoolCOzISrmfYWcvesATsetmGiA=","translations":{"en":{"changelog":"### Added\n- **File age view** (community contribution by @DidierSardine): a\n  *Map | File age* switch in the header of every view (My storage, Whole\n  server, team folders and external storages) swaps the lower pane between\n  the treemap and a breakdown of files by last-modified date, in five\n  buckets: up to 1 year, 1-3, 3-6, 6-10 and over 10 years. Bars show either\n  file count or total size, with a share donut beside them when the pane is\n  wide enough. The panel follows the folder selected in the tree and the\n  category filter, so \"how old are the videos in this folder?\" is two\n  clicks. The chosen view is remembered per browser, like the tree/map\n  split.\n- The histogram is one grouped query per scope, using the same portable SQL\n  and index hint as the composition queries, and is cached for 5 minutes per\n  scope, folder and category.\n- **French** translation of the whole interface (community contribution by\n  @DidierSardine)."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/diskmap/releases/download/v0.4.0/diskmap-signed.tar.gz","created":"2026-09-03T16:13:46.327043Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T16:13:46.408898Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"AjyACuhJcysO25kdQUKcBapA0vf13nq38SUGrW/nNMc8Y1VlfuMxfPDzsQpc2ro2pR+WIoqO20Ropt3t67rh+pGjxPAOlNMhkFPhrPpRPVjJ6TlPG5CDTnduaMkEC8cUxDjAqj7zQSpYd7o3OVCSO3b/Y6kuC42v9KbgemZsPyagdF5i0mKlOjbY3SMJ48RLsglIh4JxF38xgf+DTPpVX6hUeRdLo4yYkEMwGJXkWi5Kh2PJjLt508YUUCMIsxARapgz3p8hYpNB9QoPPWRtF9gYfJbl38tX98uAbuOh7MFv8sONsmEsDZAIUFpjqwVbwlSLppaBYlXqxQBEbgo1i+CV1Cb4nlRFpQ231C8etSd3eBTfNqJ4sGSLv4ndZdw7BOJkf+YLCUYhq2yD5kTofWp7JUDIudM4Zm5tzkiTsZfuEPTHVmz7Kxdh+aHxBZiraNHG5B3BMtqzV0b9F/LuIA0kDWFzEFy8Z49nwh17x4qDMIwm3fObyxRwxOlZX9sijnFyfAwk7ORZNdINfdSjStttjEUspvsYsR6YH2OmOfH/v/smbB+Wuoj5dBC3OYk+j0dgcjeg3+E9GyKkTNPlKLKz6T5p86cpEazHEUZbCm0i807SNetLd9aNfDydfFx049jpkZF/3ZVbFWDNw3fHDO7/xRfSNRBKUvlC1hDNp1E=","translations":{"en":{"changelog":"### Added\n- **Nextcloud 35 support** (`max-version` raised from 34). Verified against\n  `v35.0.0rc3`: PHPUnit and PHPStan pass on the PHP 8.5 base NC35 ships,\n  `info.xml` validates against NC35's `app-info.xsd`, and the four OCP calls\n  this app leans on for permissions and dialect detection\n  (`IAppManager::isEnabledForAnyone`, `IUserManager::getDisplayName`,\n  `IDBConnection::getDatabaseProvider`, `IConfig::getSystemValueString`) are\n  unchanged. A full run against a disposable NC35 instance produced output\n  byte-identical to the same fixture on NC34, aside from the expected\n  per-instance scan timestamp.\n- **\"Open in Files\" link** next to the title on \"My storage\" and every team\n  folder: jumps straight to the selected file or folder in the real Files\n  app (falls back to the scope's own root when nothing is selected). For a\n  team folder you are not a member of, the link gets a dashed border and a\n  warning tooltip instead of quietly pointing somewhere it can't actually\n  open — being a server admin does not, by itself, mount a team folder into\n  your own Files.\n- External storages now get their own sidebar entry, rather than being\n  reachable only as a row inside the whole-server tree, backed by a new\n  `adminApi#externalStorages` endpoint.\n- A Nextcloud Playground preview (community contribution by @erseco): a\n  `blueprint.json` that boots DiskMap with seeded demo data directly in the\n  browser, linked from the README.\n- **German and Spanish** translations of the whole interface.\n\n### Fixed\n- An external storage whose size the file cache had not yet computed (`-1`,\n  \"not calculated yet\") was read as a literal size. As the smallest number\n  there is, it sorted last, was cut from the map's top tiles, drew a\n  zero-area tile, offered no expand arrow, and its own map came back empty.\n  Sizes now fall back to the sum of what the cache does hold, flagged\n  inexact (\"at least X\"), and only ever rise as you explore further. The\n  same wrong assumption made a folder's file count and composition bar read\n  as empty for folders whose contents were visibly listed on the same\n  screen.\n- An external storage's display name showed a raw internal identifier (an\n  S3 mount's `amazon::external::<md5>`, say) instead of its real mount point.\n- A storage root with a recorded mtime of 0 rendered as \"1 January 1970\"\n  instead of \"unknown\"."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzEtd2hvbGUtc2VydmVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzItbXktc3RvcmFnZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzMtdGVhbS1mb2xkZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzQtdHJlZS1tYXAtc3luYy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzUtZmlsZS1hZ2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZGlza21hcC9tYWluL3NjcmVlbnNob3RzLzYtZmlsZS1hZ2UtZm9sZGVyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DiskMap","summary":"See where your storage is going — treemap and top consumers, instance-wide","description":"DiskMap shows where storage is going across your Nextcloud instance — per user and per team\nfolder — without scanning anything.\n\nNextcloud already tracks aggregated folder sizes in its file cache, updated on every operation.\nDiskMap is a visualizer over data that already exists: it never triggers a filesystem scan.\n\nEach view pairs a WinDirStat-style treemap with an expandable folder tree, kept in sync both\nways: click a tile on the map and the tree opens to that file, click a row in the tree and the\nmap highlights its region. A File age view swaps the map for a breakdown of files by\nlast-modified date, following the selected folder and category filter.\n\n**For administrators:**\n- Whole-server view: every account, team folder and external storage as a top-level entry,\n  browsable down to individual files.\n- Team folders overview: used space, quota and occupancy, with a files / trash / versions\n  breakdown for each folder.\n\n**For every user:**\n- The same treemap and folder tree over your own storage, with quota occupancy and a\n  files / trash / versions breakdown.\n\nAll figures show the timestamp of the underlying file cache entry, so it's always clear this\nreflects what Nextcloud's cache knows, not a live disk read."}},"isFeatured":false,"authors":[{"name":"Ricardo Ferreira","mail":"rsfneg@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhO2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODAzMDU1NzAzWhcNMzYxMTA4MDU1NzAzWjASMRAwDgYD\nVQQDDAdkaXNrbWFwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvV8J\nzManuiobYozX/Kt4NufQaaKUWsUGIsdz/t/krS0VwxaAGwYizuOWL3lk1PEre6Kj\n2M7ZIt1+QrC3Geknj2a0IIXr4Kv6EMACj5uVv7dA3p/p7/sAavVNUFATm8oI8UIL\nCNRD/wSm552t6cX/suRrKzKSShtESm8IRVUWLiBW+ueFOu9IkJvpqrYP0J8KAVWV\nkXDaXq6WYs7IcIyTu181FCWl+9JTHyok1BPrq9ykU32a7zRfd3DJ6764A7maU9wC\nCOgwe1sUSzN4ggO+QHSgVmolMOsUx1t9Hb2Xb4V7PYydEVjB13tE/1H06VxrWMuh\nsMa+M2Y/DdeGzOIomi9fSbd8sB0kpRVuEssJU6/F8vopuv8H6+c5qxPosbwekssQ\nuXQJhMBzC2X9D7wUXlMRHwQnBYGTA4oYss0PV6dW1g3Cnf9yIOkf1abZJbAzBtNU\nFefOOf12eih0ZOSkkznm3ME+CqwaNM1CbmXmqdMdZ1tir5ZoLsEWucMv+qLTxLLJ\nEWTa8ajz+VCkVu/FuUihUzn2Yx8IRZBeVJGFSdlIp3YENx/COjrV8nq/qgjbqbvI\nua/UjE1IezeOJbCKV6scFacJ2UIt2cMk5CEZojV+Tbdmme0JD8srZIJG/vPLKhq/\nq29Za7WNDKfoco57a8FDPCm7TutYr0qxUzCzSUUCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAOpYxW8o8UgQZj5BcBzc2/yAmtdtJLEL9GjL3mCCKUa54f1GX/zSShIDj\nz94GbCpzIHSj1WKag552fft1qEOFs8+gnOt9InhuzuwgzH+wmJkUxviAxocWJOPV\nd14LjAEScJlV/XyvZGhGFZ6QiRyJJ8BG5MzjSdpkN9zCvLIjXakDZppwZPy/usbe\nhRJbsklo/jvg3XK2bVxguqYurR2m9u5evX3QN9ObXMGAldRr1Xxz2e1c9RbpTP+Q\nBkNVZBLEDofbwMtDDu8kCdbxEL9sdZpMF/h65bWQcdXj2emsoFGsLz3Awj9COtyc\nzIJ/d1gaMFVvm/hIZmdWphnJJyy7uA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"vapor","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/wolfravenous/vapor/issues","website":"https://github.com/wolfravenous/vapor","created":"2026-06-22T20:17:11.473089Z","lastModified":"2026-09-17T15:26:40.504935Z","releases":[{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/wolfravenous/vapor/releases/download/v1.0.4/vapor.tar.gz","created":"2026-09-17T15:26:40.470468Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T15:26:40.541690Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"YhYgMJlEBFTBdLmkn8fKUTJNq2DjbPEje50opryVt4z3pqaK3q1qvEZWLJechpIZ\nJe1CjjxoZVCjKpFhiUHKphEnfqhUhDf5sXJRujuAgiZksDcPp/XN2u2J8XpVP1Ul\nTs3vcbV8KyKvWrlCS3MdUNWJXw/3izVMpBP8B1InOooX+jUXoqKfH+2hUTMKeyQv\nzP8qG+YSRbTHaOHuUnX/qupfp5hIxTO+dhEzuhbxUPgu8YkTYKauXOHbWQbOGg0s\nqCt3T/YMsgsfuUHkukDQB9NoE4Mt+d08jzpnrVZO+MGXo7lAn3ykPv62WmRbch2b\nU+I0iiHwbcysjOUnMretsN8aWeGYwiLeJHPPahaBqCRhxh2KGaMxmRyEcOEkEhnb\n/AZ5C0+Xs+ROM6vCnyEAMEfFlkbnlM7KywwcW110YuQKtc3DvRymq0+uqP1i6cmG\nyNQfODYZzJPyFGas+4R+nxqrYcbMMpP9vKUejv71gq581w28q8qjTjaIYt503Akt\n5V51PgBT0Wd29hZ4Ouw5pAGdby/29Kv4m/apEb93TcQbaVu715vr4qjM9bXyD6A0\nZuBIVpLppPM9i/6AMyhJXNbZAgAIIUL66x+t3lwpXNtPrWs8M2GizQcXLipZVzlu\nAb+ex1xB0GE+QE16cyr5ArZkIDArfWknOAAY1N/k9HQ=","translations":{"en":{"changelog":"### Changed\n- Updated info.xml file to allow Nextcloud compatibility to support versions 32-36\n\n[1.0.4]: https://github.com/wolfravenous/vapor/releases/tag/v1.0.4"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMzkxMTk3NS8xNDI0NDQ5OTgtNTRkZDU0YTYtMGM4ZS00ZDQ5LTgxODgtMjcwOTY0YTk5YzUwLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMzkxMTk3NS8xNDI0NDUwMjAtMjdlYzM4OWEtNTQzNy00ZDI4LWFjYzAtNWU3NTdmZDY4OTdkLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Vapor","summary":"Vapor – condensing the web into your cloud","description":"Search for torrents within the app from multiple BT sites;\nControl Aria2 and manage download tasks from the web;\nDownload videos from 700+ video sites (youtube,youku,vimo,dailymotion,twitter,facebook and the likes)."}},"isFeatured":false,"authors":[{"name":"jiaxinhuang","mail":"freefallbenson@gmail.com","homepage":"https://github.com/shiningw"},{"name":"wolfravenous","mail":"wolfravenous@gmail.com","homepage":"https://github.com/wolfravenous"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhNzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIyMDczNDQ2WhcNMzYwOTI3MDczNDQ2WjAQMQ4wDAYD\nVQQDDAV2YXBvcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALviJUrS\nodhEBlWG/4+Ecu3BdA9F+dt6Y4tdlQd/RHZoZ6SO9xohHR7/cJ26xMqOuq7nD39Y\nSmjkgovdvttsUeI44zoR9Z9Z806PoMcSQxwNhprmim360nINqFbSP94sxQNLzw2Q\nFSS5XwhP85Kkxl3K5nhEy+VNzNIGSUn1K5KlI3ayPi6JhfpLzQC/t3cEHe5h8HpA\nEiGMpYm4/qJR447QHielSHzgclQY3by6LESfvUoOty0L6rQIYn9zutSjFM9DbQLH\nNMCjyzQWpxASiyktw1E5unY2I/7B+21dx1W1GrDE553H/jN9qx91sxvvXrm1bjVi\nBVBiwsRAF8kXCnTqa49bziifIO323m67i0tcyYj0CFTDJcKGTaaOA4sYXpWTvb2+\nuP80CfyQ/AAiKttvN7VEL4D4+ylZ8zBIMSEJM+QhBqK0owG3sHXtCS+HzFlx75a7\n8uIg+PwAo3yZcGvWtE/eO8W0vB+PmFRt3m9MD10NPCWiuVId0XpZirEuiMQL/KXZ\nxFiEXFCh44YOnpYkLpAs6iNgHD39xpxG5VORV8kkftFi2+rdfF8Yyg8MtPLbkdtU\nCk9ADQafboSmAX5gJX/lEERgOdowqSiitp4EKSoN9bJmLRrpX+zh/k9+kBtEM4M0\nzVU02vYPFcNby4LtwCoKwtEuHGMneA+dv9ihAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAD3dX687tt1l1umI2QImbdmHmeAu/TYH91UkDOIDeZ8d4ZQ6Fg3Zve2Nomq0\nIYZtETa2TQqnRbU2Ecl1WrypcS/ws7vAQj3JLmOdS0MsnE5T1OxllHjZzKptzi3C\nL358NLrjuUMLh0MQL0ADns5z6Wh24ILeivpwMOooehFS5F0c4J+ZeHGiaHK5zwiH\nJ9J1AhulpT5GSi+c/sSIC8kn2qjnm57XhYvuncqIw9Zd0Ki0chlg34BZFKbmOH5L\noN8WkzyqiXzinwBPTnLP2Cm1GUyTgAP48dl34/dCrx2UaLOK2ySni8w7tf27SpB1\nwDqXRcX9IgFhGBa0dfh+4oz5gLs=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"samewindow","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/IT-BAER/nc-samewindow/issues","website":"","created":"2025-07-09T19:28:10.844502Z","lastModified":"2026-09-30T19:09:37.127848Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/IT-BAER/nc-samewindow/releases/download/v1.0.5/samewindow.tar.gz","created":"2026-09-30T19:09:37.121606Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T19:09:37.180772Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"Zf3RTNaBm+h4un4ClZ33lLeCgg9xkKxLP7D7+Wu356jt8LoUpcTRX9RXVfmj3NjYbVG9b7K3w5fjOFuIBngrtyjZCw0M5/P+AVX+ZyVp5NdLNIP6OYibVXNFECGQCx6ws4DldDgDfi9UYLm219OqqZ9aE3K98x2HV/bC7Kgfr9tfmSow3Okr5RAK1J+nckMY36E9t7M5NV5PWJH0y/zCayL1cdL0SYFWrQXj0aqujsCInFnAOy8iEvz1w/cexT8VlxYom0HFUM8UHOJYavYTpzPBaF5qRs5GvEU42QeU6QEveNOUHJj9BGAscS3P9ybl+ZX+hS9Zg9i2YMxF+X3SNJ7+oQr/APS3HTpgz/Qx9YMMFjkMAWHIs6jErAC8G4vCJQla6APbKQGsXNwVPSa660uDbHEAr9ZultftGwYBCo8zLd6yw98MAM1tc9Sg2Uhfq7YSCQTuG73hXghsmFdGmo+zb+ncxeHh9EPazlWv4pR7WBPHUQaOhM0XMvrptMpxC8JOjAdbTctRoBEdIvBb+qxA2SHlqtWOxGQhNlM5vJov2LwV5lh8GuGlurYX90DhD9TEd+1k4mmGDiM56De8M4iEU6RME+xy7gs0Ose+cfAolRJCwTvYBWbh9blo9j2NZTGpom3Uwy+Lamg1uTC7gddz9KGmj/pyiBUv12HTJT8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0lULUJBRVIvbmMtc2FtZXdpbmRvdy9yZWZzL2hlYWRzL21haW4vbmMtc2FtZXdpbmRvdy1pY29uLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Same Window","summary":"Prevent links on frontend widgets from opening in new windows/tabs","description":"**🔗 Same Window for Nextcloud**\n\nThis app ensures that all links on frontend widgets open in the same window/tab instead of opening new windows or tabs in the browser. This provides a more seamless user experience by keeping users within the current Nextcloud interface.\n\n## ✨ Features\n\n- **🔗 Automatic link modification** - Converts all widget links to open in the same window\n- **⌨️ Modifier key support** - Ctrl/Cmd/Shift+click and middle-click still open new tabs/windows\n- **🎯 Widget-only targeting** - Only affects links within widgets, not navigation elements\n- **⚡ Dynamic content support** - Works with content loaded via AJAX through mutation observers\n- **🚫 No configuration required** - Works out of the box with no admin settings needed\n\n## 🛠️ How it Works\n\nThe app automatically detects links with `target=\"_blank\"` or `target=\"_new\"` attributes within widget areas and modifies their behavior to open in the same window. Users can still override this behavior using:\n- **Middle-click** - Opens in new tab\n\n## 💻 Compatibility\n- Nextcloud 28, 29, 30, 31, 32, 33, 34 & 35"}},"isFeatured":false,"authors":[{"name":"Bruno Miglar","mail":"admin@it-baer.net","homepage":"https://it-baer.net"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhKvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNzA4MDkyNDE1WhcNMzUxMDE0MDkyNDE1WjAVMRMwEQYD\nVQQDDApzYW1ld2luZG93MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\njJX62TRgGUY205P3jFwI+idSS0nTFFk9CsQ4BdTQcLKQNxusN+DF9IAKPeLzUF8y\n75YmO1Ul26NdpQt1jo7+RgCAjYXNyk/mHYkmsI89Mo9kPpfpd9CTpdK2+/qGb9sM\n41H3BrugQqsjp269ofpH3m4b4Yra9VujOu7FuySLJQ3xTuxFXgOhDw5v/A0y1Wvm\nI2EWnXNXp9SV0E5JmYu3XhRNDVYjav8AE1fOZBub+BcjYWeYEwBRqe0OiNfueUXC\nLcEhSDyjT7DsnqDbm8FVGqjE3NtfRxLMoIfzDNSYrmuwFvdWWagn4zTZWt7jUQ1C\n1R4SZ8t+1eyoeyoDqomsVbPFjFfZV/isHRi9IzCr57QVc7AHjnLfZrxFOHPMo5cl\nYiejEm/QcqPIoqqkReSKGVFt7Ndh/MtlSwuwU+Foes4uFgfFlJEANiynN5Amh8eV\nefNQcT9993tlzSxH44RaIufL8i12rRJoqejPSKdfCV+j3zc9TiQQfc3kBOXndgHD\n2zy5OM+MlUF3Nr9Th3s42lqpQ/qy2PU4EU5njTIWxTnr8xjV3gCZ0qd0MJ772w+1\nendHWC5oGSIcyv4+4aMXQxYwD9PvvTk/vZIjqbFidRtybevTmjDVHS37vtmAXtnX\nNQJkMygGOdCgUzcoD6MGsfPJBQQBcMjwuZZCycpYZMMCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAP7Etch809jBsIKAeQ6vtjOv5ByYSrTZYnYWhcp+cS+MW0MgDBIrr\nIv2Vs69WusO6ED+KjmIkrIl4DU3AVG7dAgyulMg8A3NTEmPCCqPbqeKvaagJEkO6\nhHpXf/BiH/rrXfun31IiSUF6nKGdGltQ6APtRi9smBaZ77VybrjcmZDpXAR2GNeT\nQ2RtacpnndMNt9obv9Bxr0YiXcy8W1FlUj4sb/+s4tYF6MACp/y+CE9EBPindA4M\nhva9jlyAJRGs0pFAMQ0+6kPvNYONkKSMxifccHmkgOSiag/4F0A/cYK876mgB0FP\ntRCB52WPYZvrE7k0RGqOzy4KwcLMwb/Ilw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"starrate","categories":["files","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/merlin1de/starrate/issues","website":"https://github.com/merlin1de/starrate","created":"2026-03-30T09:21:13.817160Z","lastModified":"2026-10-21T10:42:13.232968Z","releases":[{"version":"1.3.13","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/merlin1de/StarRate/releases/download/v1.3.13/starrate.tar.gz","created":"2026-10-21T10:42:13.248223Z","licenses":["agpl"],"lastModified":"2026-10-21T10:42:13.265213Z","isNightly":true,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=29 <=35","signature":"AW2GXxKRgOvmHs08aG7DkiH1KnGaefi26wYBSo3R4SDuENMrVIpNy5HXhb0sh9mbRMQWKRnfMpzlaMzvDNv4gHXbVWubx1FFsVKTEk0aRc0fxfmWyAXweIKR/8TBH0yCvrEOBrP6MlG5St5zZDboBEdFiljC8D5llBF9QTJRtc2YowF72T8+GSLhu81fRhQ1xQIL/54tswC+8IY+HTimVg/Gox1Ag7AwH3Md14wC1sXXtGQYNm9znGle/qc7eEis/IcoHWztll4/RFGOyzMHNuxgDEPpmC28/sD2iKi9lSnXOiqi/AKB6jcmXKEmnDaVJTTPhzyovuytgqy12e/GVgYUlGuA6kHOq6523GRANoe1+WacdtX7q6GOnD3XR5HWPTAHYa7M91bfBAFS9V3OtkXcDX7lZw3McBNA8tVL1QcCvsApE2B4h8HbGisiQ5FeSVtgtwjgIe1r4enqBGryruVjd7FTNPXT0yUgCJC0sSheuTbuMpeidDignkTZHMsfmOG0Wo65iTktJLeAZCz7YF84qhXlzPLVJMIfLVCNa8aHJbgrTzR1HOruXuZ7jOXM0TPMOUJmQq3K2VeY0/1oJfJpM7Pp16CgVhXkwPjSQV1b2cQVwfPSLN9mcItGfGA2ZvlfqQFli+o7lmOutzPKTfqnGHeE/aliHVznMtGwWYA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtZ3JpZC5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtbG91cGUuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtc2hhcmUuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtbmV3c2hhcmUuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtZ3Vlc3QuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtbW9iaWxlLWdyaWQuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtbW9iaWxlLWd1ZXN0LmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lcmxpbjFkZS9zdGFycmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvc3RhcnJhdGUtbW9iaWxlLWd1ZXN0LWxvdXBlLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"StarRate","summary":"Lightroom-style photo rating for Nextcloud — stars, color labels, XMP metadata, guest links","description":"StarRate is a professional photo rating and culling tool for photographers, seamlessly integrated into Nextcloud.\n\nRate photos with 1–5 stars and color labels, flag picks and rejects with keyboard shortcuts, and share a guest gallery link with your client or model. They pick their favorites in the browser — no Nextcloud account required. Leave comments on individual images for feedback rounds, and export the final rating list as CSV when you're done.\n\n**Ratings are written as XMP metadata directly into the JPEG file.** Open it in Lightroom Classic, digiKam, F-Stop or Darktable — the stars are already there. No re-export, no sidecar files. **Coming from Lightroom?** Import your existing XMP ratings with one `occ` command — your years of curation travel with you.\n\n**Browse a whole folder tree at once.** Recursive folder view flattens nested directories into a single sortable, filterable grid — perfect for working through an entire shoot week or a multi-event archive without clicking into every subfolder.\n\n**Built for client presentations.** Slideshow mode in the loupe auto-advances through filtered images at a configurable interval — pre-filter to your three-star picks, hand over the keyboard, and let it run.\n\n**Read the workflow guide:** [Nextcloud as a photo home — what works today (and what is still missing)](https://whitespace.de/en/artikel/nextcloud-foto-workflow/)\n\n**Features:**\n- Star ratings (0–5) + color labels (Red/Yellow/Green/Blue/Purple) + Pick/Reject flags\n- **Recursive folder view** — browse an entire folder tree as a flat stream or grouped by folder depth\n- **Loupe slideshow mode** — auto-advance with configurable interval, ideal for client presentations\n- XMP metadata written into JPEG — Lightroom / Bridge / digiKam compatible\n- Configurable XMP label language: Lightroom (German localization) or Bridge / digiKam / English tools\n- Self-healing XMP read on loupe open — externally-edited files (Lightroom, digiKam) sync their new ratings the next time you click into them, no manual `occ` run needed\n- Import existing XMP ratings from Lightroom/digiKam via `occ starrate:import-xmp` (with `--recursive` for whole folder trees)\n- Comments on individual images — for client feedback rounds or personal notes, optional in guest galleries\n- Export the rating list as CSV (filename, stars, color, pick/reject) — download or copy to clipboard\n- Download original images — a single image from the loupe, or the whole selection as a ZIP; available to logged-in users and, per share, to guests\n- Guest share links for clients and models (no Nextcloud login required), with optional password, expiry, and per-share permissions (rate / pick / download / export / comments / recursive)\n- Keyboard shortcuts like Lightroom: 0–5 stars, 6–9 colors, P/X pick/reject, S slideshow\n- Batch rating and batch pick/reject with Shift+click / Ctrl+click / Ctrl+A\n- Combinable filters: stars, color, Pick/Reject, unrated\n- Full-screen loupe view with zoom up to 400%, pan, pinch-to-zoom\n- Dark professional UI theme optimized for photo work\n- English and German"},"de":{"name":"StarRate","summary":"Lightroom-style photo rating for Nextcloud — stars, color labels, XMP metadata, guest links","description":"StarRate ist ein professionelles Foto-Bewertungs- und Auswahlwerkzeug für Fotografen, nahtlos in Nextcloud integriert.\n\nBilder mit 1–5 Sternen und Farb-Labels bewerten, Picks und Rejects per Tastaturkürzel markieren, und einen Gast-Link an Kunden oder Models schicken. Die wählen ihre Favoriten im Browser — ohne Nextcloud-Account. Kommentare zu einzelnen Bildern für Feedback-Runden hinterlassen, und die fertige Bewertungsliste am Ende als CSV exportieren.\n\n**Bewertungen werden als XMP-Metadaten direkt in die JPEG-Datei geschrieben.** In Lightroom Classic, digiKam, F-Stop oder Darktable öffnen — die Sterne sind schon da. Kein Re-Export, keine Sidecar-Dateien. **Umstieg von Lightroom?** Bestehende XMP-Bewertungen mit einem `occ`-Befehl importieren — deine Jahre an Kuratierung wandern mit.\n\n**Ganze Ordnerbäume in einer Ansicht.** Die rekursive Ordneransicht flacht verschachtelte Verzeichnisse zu einem sortier- und filterbaren Grid ab — perfekt, um eine komplette Shoot-Woche oder ein Multi-Event-Archiv durchzuarbeiten, ohne in jeden Unterordner zu klicken.\n\n**Gemacht für Kundenpräsentationen.** Diashow-Modus in der Loupe läuft mit einstellbarem Intervall automatisch durch die gefilterten Bilder — auf Drei-Sterne-Picks vorfiltern, Tastatur übergeben, laufen lassen.\n\n**Zum Workflow-Guide:** [Nextcloud als Foto-Heimat — was geht heute (und was noch fehlt)](https://whitespace.de/de/artikel/nextcloud-foto-workflow/)\n\n**Features:**\n- Sternbewertungen (0–5) + Farb-Labels (Rot/Gelb/Grün/Blau/Lila) + Pick/Reject-Flags\n- **Rekursive Ordneransicht** — kompletten Ordnerbaum als flachen Stream oder nach Ordnertiefe gruppiert durchblättern\n- **Diashow-Modus in der Loupe** — automatisches Durchlaufen mit einstellbarem Intervall, ideal für Kundenpräsentationen\n- XMP-Metadaten ins JPEG geschrieben — Lightroom / Bridge / digiKam kompatibel\n- Konfigurierbare XMP-Label-Sprache: Lightroom (deutsche Lokalisierung) oder Bridge / digiKam / englische Tools\n- Selbstheilender XMP-Read beim Loupe-Open — extern bearbeitete Dateien (Lightroom, digiKam) synchronisieren ihre neuen Bewertungen beim nächsten Klick darauf, ohne manuellen `occ`-Lauf\n- Import bestehender XMP-Bewertungen aus Lightroom/digiKam via `occ starrate:import-xmp` (mit `--recursive` für ganze Ordnerbäume)\n- Kommentare zu einzelnen Bildern — für Kundenfeedback oder persönliche Notizen, optional in Gast-Galerien\n- Bewertungsliste als CSV exportieren (Dateiname, Sterne, Farbe, Pick/Reject) — herunterladen oder in die Zwischenablage\n- Original-Bilder herunterladen — Einzelbild aus der Loupe oder die ganze Auswahl als ZIP; für eingeloggte User und, pro Share, für Gäste\n- Gast-Links für Kunden und Models (kein Nextcloud-Login nötig), mit optionalem Passwort, Ablaufdatum und pro-Share-Berechtigungen (Bewerten / Pick / Download / Export / Kommentare / Rekursiv)\n- Tastaturkürzel wie Lightroom: 0–5 Sterne, 6–9 Farben, P/X Pick/Reject, S Diashow\n- Batch-Bewertung und Batch Pick/Reject mit Shift+Klick / Strg+Klick / Strg+A\n- Kombinierbare Filter: Sterne, Farbe, Pick/Reject, unbewertet\n- Loupe-Ansicht mit Zoom bis 400 %, Pan, Pinch-to-Zoom\n- Dunkles, professionelles UI-Theme optimiert für Fotoarbeit\n- Englisch und Deutsch"}},"isFeatured":false,"authors":[{"name":"\n        Mathias Mischler\n    ","mail":"starrate@merlin1.de","homepage":"https://github.com/merlin1de/starrate"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhMkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzI3MTQxMTI2WhcNMzYwNzAyMTQxMTI2WjATMREwDwYD\nVQQDDAhzdGFycmF0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMeo\nDoFQERopNOCHqmP7l8vVHnP7AUg+gi+NKZUTRqUE0503vwcVnMT9sPQ71iNbIk2y\n7kS29IvYT0X6eylOv+iyP1R7MBT099625uVq6S4VvDvjqyISvA7DqQToiar1vQRL\nTCPk5O5EM9CiOupWG8qlnLcKNoPZZMYBg6W/br5Es1nTtD1fSg/zEWOmzaCffn7N\nOkWidv53gaCptW4jjRn5SGNHvrF7qHD4icxasB456JX5WA/WHlm3hxHx7DpgVQOm\nG6nMB/QeDqhQ0aIP+ynitSnT7A42G9d2PQb4wqQC0i57RAuttqJc/n5jN61CW84i\nt9Na+h+uGcAvdiwSbVonryTUWXMyqBV94EVgI/F0p12pjqISpcx6XhwaWh/+xXR8\nYPmJf4xHEUv11pg8+Rl/8ExoBjjh+bNdQRTL+5fuczNKTrc87tRJZsLXKNOODtCJ\ndDAJn0usQZckgGTs2qnn6PsR5p9gS7qHsNHfeuxVbJx8teuQYH+pkGxovyJxVA/a\nlOsUuOJwQFNbYsBsAefZ9bDgcD8tEpXTMpz1QIsRVBwjThnnpMagSeBf4eiuvI+G\nbv57tK7oiNG7EBTGkmDCStk9mLODGza/kgP3k9u+dUWPP3hrI0q4FSYh6DvgUR8U\nbqMH6SFT/RWukwVS2v3OhsRwJPkyImuxeFClE4F/AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAHIaexBYiGPKwynRCK3PCEyf9QmJOtqUc2CyOIFkqpvlq7JnqnAPl82G\nMhnc2VOF7JksIuX/9uFSA/d9u2+6jBD5jXwoA83a2MVyf/FDq2yDFE+Gewf2laBH\n2UcJ8vSPabJjbS+sC4/i09MCC7GGM9Ixknp8V9L7JfI3MTyBTcox4bj04UWsQ3sW\n6WExV3thMFJ0Eud1BXcu43tgKobbavtzK96wdSuaWndjj5UjGGuoDfd+gQfCqn4B\nqE9UeQmHU0z43XClDCGxpmZioAs3nFVhU9aF/iPLvCzolhp91OcHRfqdVmIFDOpY\nc4/ExFdSC0xaosvlQmo1a5GVWasQ5LA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"inventorycheck","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-08-19T14:20:47.936243Z","lastModified":"2026-10-19T09:45:55.891666Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/releases/download/v1.5.0/inventorycheck-1.5.0.tar.gz","created":"2026-10-19T09:45:55.876590Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T09:45:55.977007Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"LwG9h7cq9mIT/OwvALu9q5X6opfz/qEwaVatoKYn5ZxFe43KfOqMaFLNxvAmRhjxLDyRwhkUXQAbpjR6mp7CPc/1MvVHv3XNE05j5kRRnTF4jyv2kHoJQKVsutC54oJpd0dQOArM+/HdJlGwDDYiiaE1305gYLEgC+LhH/3CaAcGBz5uQCVTn+v6/lHyTqgEh9kNK6EWMpAFisbCzE5Mx3v1rtgcMSiDSzowXxYdF8fDAwcqwnj/D5iTxfBZvevWzsC2FweghhwjrNb595V5uRc5zo8KXOHQyjksU94aTYdA81YffWulIwMiRx13yzGoVWCdsuwKwqwzZJboOSVPkI2ch6UxVRQxEGkYA+yZQ4ublfnnYwOTAPy9IzIXjMCdCa/+dJ8rR6ZZpWV1IOA92B3c7k2ufNCAG7MQfIM/dzGYMZg/MLEGtXTzLEJH0S2CLqvTUGXgR9NE/n7kFU8iWsuoDvcnetuMRDUuFasDoA/0x6Z193Hqe4KK2wAt+MtekuQE0fR4bgUy0943SBZ0wT3ji26Wr+VEB0z8A7sUg2Q3Qx0To0ie1g9FOGRkKk3WBuefZoS1tsE4QxvkJQ83gwEm2TLbl8Ff0ufruSxErQ+vGVH2whsDg2NeUdJ5K24XmlrZykesTJvYVTtLGwGTT7ICChXbE6SP0BrCt7KTc10=","translations":{"en":{"changelog":"### Added\n\n- **Product lookup (GTIN/barcode):** look up product names and details by barcode while creating or booking items — a provider cascade (OpenFacts, UpcItemDb) resolves codes server-side, configurable under Settings → Product lookup, exposed on both the web API and the mobile endpoint.\n- **Invoice push to InvoiceCheck (suite F8):** stock movements can be pushed to the InvoiceCheck companion app via a durable `InvoicePush` queue (entity + mapper + service + migration) with a retry background job and a manual retry endpoint.\n\n### Fixed\n\n- **Uninstall no longer wipes user photos:** removing the app previously purged the entire appdata directory; item photos (user content) are now preserved and only pre-upgrade backup snapshots are removed.\n- **Stocktake names use the local day:** new stocktakes were named after the UTC date — yesterday in the evening for UTC-negative timezones; the name now follows the local calendar day.\n- Correction-path truthfulness on mutating journeys and security pin-list consistency (contract hardening).\n\n### Changed\n\n- App-feedback parity across surfaces, NavGate extraction, upgrade-backup hardening, l10n catalog resync."}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/releases/download/v1.4.2/inventorycheck-1.4.2.tar.gz","created":"2026-10-10T15:28:36.359648Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:28:36.453413Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"CQu6BKOoNlJLn3ncRBz89+ER582K+u6nEWTsYqKHB9ZKJqstOiZkVLlhSC+lPG224mCN268OsVTL1MIZWEh7XZ7IffLNrZO4huwxiAui5ZR4dUJmScf+LX720oSK3bxkynWERkDGcLXXgJwoPm08Fpg0R9DXPqhGROYg7agr+pqDTey+ldDQY+CAwkNhO1HbtfA9vEcXEJyiynH/hpWndEJbcOFQDKOavl4BX4o+KlQ7hvJMSmNflO3PfMjgELFRHzlsDKAGYpz05lT28V/6t4vt2SWEv5hZU2QTAgN2SX1HoVBkTdZGUA3gJod3SIvl2U1BBxINXZ4u7hdcJNdS41v3+E+eROU6AqliZ1jilHIXvKzWN/k79SuMUB23fnSn/V/ZbVULRQdB61VJ4hLcALm+D6kCD2zKVUnvRE7OcKL62tR+gIBH/eJjeJqrczr3fx6stEbG08/mdyQmJZqCEy0FdH2W7OFgyc/TGQ6FjQOcFGNUJzIpTmAB9AZs8SDr/6keSZUEKyhM5S9f2RnRnGaGTjHEKdPhgC15dxqYyApoKtRozKv+EQw706BTj1YGaI6FGGmwwdt2nXyBMyF+wV46uBOBAgrRIBduWvSGU3Jt/FIV3ijFU1mqJAunWiPnYOh4m8HiXmfnddMZxia2NFyvqEw7GWKH2iQDEu9Lc0Q=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.15: inventorycheck exit_met seal"}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/releases/download/v1.4.1/inventorycheck-1.4.1.tar.gz","created":"2026-10-04T19:10:43.271793Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:43.373226Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"0VNagn/cD+wRawEN66RszjaFu7mCS6BnV7OhkDAXjGW+HPDF8cBIuZzRn02kRFrKGmykhxEKIBizcrqAOFh67lms/OH6X3NWlnFQQOsX4SDkvZdoLEogYrV4IdBmBAreDE1hce8P418hP/Pl5qK4syy2V/YPGW+Mp5AE1Bsuc+D9yxWwTEU3svtFJcH7AxY351smZNX6cdkcvBy0Mr7KcVpSwVQui8DF+N/y2RUfkFRXwgKQ4p7plID++QqLHRPmEWTcqrdPg08AjWoJJwF7QtQODf0xvd34PWP6DSBSye2igmJxYHnCap8imsVFQyZ5BGnHvT+TQJIBVYF70jJ3p2vkp08uMk5vaBQVybbW4PcgiaX8ovBt2jAtvcFUulR5ckhxMDjkiYis5DvgV2tQsbfG7I/qJlQXnN6JESON20eqjFuK4u2W9iedAL5m9Aep9z7Qe1jPpZSTPExz3klJgLVt7iY+0ttGiSz8iNjK9AtCTlY9/K5856lfz20Fxje5b0o/fVLYSRRnfBXSER3LXLhBjzRAi+wpEyVe5ozK5N3qREOhs+etBOPGMt2nUe97dEfGRWhskgyND36zuHXBSZjrmnuMfDf2BFOEiVj8sxjb9IlLD2VsBCwOow75c0oALK04KS7MFcBGQea6h93bfEgY0pAGK8gBd8AsZc5931A=","translations":{"en":{"changelog":"### Fixed\n\n- API hardening: stricter request validation and error paths.\n- Localization: fixed stock-domain mistranslations across 9 locales.\n- Location ACL favourites hardened.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected."}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/releases/download/v1.4.0/inventorycheck-1.4.0.tar.gz","created":"2026-09-10T20:26:46.049815Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:35:12.779616Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"ihUsgWZG/9bPQaHwoDB8lmPhcK6CghnS5ufChPaOS6eCPAB/fYGxS36zBIXYbKCKKcYDwe9fH8au+7TTNuTCq0bqfSiHD0lyQL9556zfPuUEw0vyk0JpL0V9i+Y8rhhVz2YaOVC/ZNCUVEX66ZaMYjena/XkcWWgEpqY32tQlOYRRsYHXDfEe2QJ7oG2jt0n+kPZ5f58VIzedJFuSTBl8PfLuF+OeZsD7sXmzY5Y+J1JRoJ8GvglVBHofemWzzvrus6HmE0Jq69tSIGq5KmCIhFQUrWbcWbUf97UkCCnHrrMdoVI/y5IiVxOxm+QpipYX1eJ8V3VQhPwXTZX7rUUaNf+cOAtQ/A4u85U3fo48ecgBjLCjBCfRLfxtQ9pgPmc1HIZPL38luFAjkxwx5W9bQBexSdJyghI6EuvU2M9q/3clyCA57d4OmbvAfJdjnI0bc8PYEP1ohDfnPCTE5Q89F0TgR9fkCqlaen4roESxivZWBIMkx5HgRwtZbYnAfYi5Bx0enXn3xH8a9BnuavE0mXjOMSFQD+zswmETpTSebYs4ZQfFK3cUAOhZB+5nj0cnyfUbCPBLoRJSBVX91sC7alSfroGN4c0ZKLcoXChazOxil84WytggYnGYIYLI6WLVvggaXc2czp/9//xu4MrqMqmA9ChPuooXhpODTT+vZw=","translations":{"en":{"changelog":"### Changed\n- Nextcloud **35** support (`max-version` 35). Symfony Console 7–ready command signatures verified."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDEucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDIucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDQucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDUucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaW52ZW50b3J5Y2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2ludmVudG9yeWNoZWNrLXNjcmVlbnNob3QtMDYucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/refs/heads/main/screenshots/inventorycheck-screenshot-06.png"}],"videos":[],"translations":{"pl":{"name":"InventoryCheck","summary":"Stany magazynowe, lokalizacje i jasne ruchy w Twoim Nextcloud — gotowe do skanu QR / kodów kreskowych","description":"# Zapasy. Lokalizacje. Jasne rezerwacje.\n\nInventoryCheck przechowuje części i materiały eksploatacyjne w Nextcloud, którą już Państwo hostują: magazyny, samochody dostawcze i skrzynki na miejscu, ilości oraz historię rezerwacji w trybie append-only. Reagujcie wcześnie na niski stan zapasów, drukujcie etykiety, uruchamiajcie inwentaryzacje — a następnie opcjonalnie InventoryCheck Mobile korzysta z tego samego dziennika do skanowania na półce i w samochodzie dostawczym.\n\n**Darmowa aplikacja webowa** (AGPL-3.0-or-later). Aplikacje towarzyszące: https://nextcloud.software-by-design.de/\n\n## Dlaczego zespoły ją instalują\n\n- **Wiedzieć, co gdzie leży** — lokalizacje (magazyn, półka, samochód, skrzynka na miejscu) i artykuły z SKU, kodem skanowania, jednostką miary oraz poziomem ponownego zamówienia\n- **Rezerwować bez przepisywania historii** — przyjęcie, wydanie, transfer i korekty jako ruchy append-only; poprawki używają rezerwacji kompensujących\n- **Działać przy niskich zapasach** — sygnały z panelu, historia ruchów i drukowalne etykiety\n- **Policzyć półkę** — kampanie spisowe od utworzenia → zliczenia → zamknięcia z opublikowanymi korektami\n- **Zachować zakres** — role biuro / teren i opcjonalne ograniczenie dostępu\n- **Opcjonalny mobile** — licencje na miejsca mobilne i sparowane urządzenia do skanowania\n\n## Jasne ograniczenia\n\n- Ruchy są append-only — korekty wykonuje się przez rezerwacje kompensujące.\n- Deklarowane bazy danych: MySQL i PostgreSQL.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL lub PostgreSQL"},"en":{"name":"InventoryCheck","summary":"Stock, locations, and clear bookings on your Nextcloud — ready for QR / barcode scan","description":"# Stock. Locations. Clear bookings.\n\nInventoryCheck keeps parts and supplies on the Nextcloud you already host: warehouses, vans and site boxes, quantities, and an append-only booking history. See low stock early, print labels, run stocktakes — then optional InventoryCheck Mobile uses the same ledger for shelf and van scanning.\n\n**Free web app** (AGPL-3.0-or-later). Companion apps: https://nextcloud.software-by-design.de/\n\n## Why teams install it\n\n- **Know what is where** — locations (warehouse, shelf, van, site box) and items with SKU, scan code, unit of measure and reorder level\n- **Book without rewriting history** — receive, issue, transfer and adjust as append-only movements; corrections use compensating bookings\n- **Act on low stock** — dashboard signals, movement history and printable labels\n- **Count the shelf** — stocktake campaigns from create → count → close with posted adjustments\n- **Stay scoped** — office / field roles and optional access restriction\n- **Optional mobile** — license surface for mobile seats and paired scan devices\n\n## Clear limits\n\n- Movements are append-only — corrections use compensating bookings.\n- Declared databases: MySQL and PostgreSQL.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL or PostgreSQL"},"de":{"name":"InventoryCheck","summary":"Bestände, Lagerorte und klare Buchungen in Ihrer Nextcloud — bereit für QR- / Barcode-Scan","description":"# Bestände. Lagerorte. Klare Buchungen.\n\nInventoryCheck verwaltet Teile und Verbrauchsmaterial in der Nextcloud, die Sie schon betreiben: Lager, Transporter und Baustellenboxen, Mengen und eine append-only Buchungshistorie. Mindestbestand früh sehen, Etiketten drucken, Inventuren fahren — optional nutzt InventoryCheck Mobile dasselbe Journal für Scan im Regal oder Transporter.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later). Companion-Apps: https://nextcloud.software-by-design.de/\n\n## Warum Teams es einsetzen\n\n- **Wissen, was wo liegt** — Lagerorte (Lager, Regal, Transporter, Baustellenbox) und Artikel mit SKU, Scan-Code, Einheit und Mindestbestand\n- **Buchen ohne Historie zu überschreiben** — Zugang, Abgang, Umbuchung und Korrektur als append-only Buchungen; Korrekturen über Gegenbuchungen\n- **Auf Mindestbestand reagieren** — Dashboard-Signale, Buchungshistorie und druckbare Etiketten\n- **Regal zählen** — Inventur-Kampagnen von Anlegen → Zählen → Abschließen mit gebuchten Korrekturen\n- **Zugriff steuern** — Büro-/Außendienst-Rollen und optionale Zugriffsbeschränkung\n- **Optional Mobile** — Lizenzfläche für Mobile-Sitze und gekoppelte Scan-Geräte\n\n## Klare Grenzen\n\n- Buchungen sind append-only — Korrekturen laufen über Gegenbuchungen.\n- Deklarierte Datenbanken: MySQL und PostgreSQL.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL oder PostgreSQL"},"fr":{"name":"InventoryCheck","summary":"Stocks, emplacements et mouvements clairs sur votre Nextcloud — prêts pour scan QR / code-barres","description":"# Stock. Emplacements. Réservations claires.\n\nInventoryCheck conserve vos pièces et consommables dans la Nextcloud que vous hébergez déjà : entrepôts, fourgons et boîtes de site, quantités et historique de réservations en mode append-only. Voyez le faible niveau de stock tôt, imprimez des étiquettes, lancez des inventaires — puis l’application optionnelle InventoryCheck Mobile utilise le même journal pour scanner en rayon et dans le fourgon.\n\n**Application web gratuite** (AGPL-3.0-or-later). Applications associées : https://nextcloud.software-by-design.de/\n\n## Pourquoi les équipes l’installent\n\n- **Savoir ce qui est où** — emplacements (entrepôt, étagère, fourgon, boîte de site) et articles avec SKU, code de scan, unité de mesure et niveau de réapprovisionnement\n- **Réserver sans réécrire l’historique** — réception, mise en issue, transfert et ajustement sous forme de mouvements append-only ; les corrections utilisent des réservations compensatoires\n- **Agir en cas de stock faible** — signaux du tableau de bord, historique des mouvements et étiquettes imprimables\n- **Compter l’étagère** — campagnes d’inventaire de créer → compter → clôturer avec les ajustements publiés\n- **Rester dans le périmètre** — rôles bureau / terrain et restriction d’accès optionnelle\n- **Mobile optionnel** — surface de licences pour sièges mobiles et appareils de scan couplés\n\n## Limites claires\n\n- Les mouvements sont append-only — les corrections utilisent des réservations compensatoires.\n- Bases de données déclarées : MySQL et PostgreSQL.\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite.\n\n## Exigences\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL ou PostgreSQL"},"es":{"name":"InventoryCheck","summary":"Existencias, ubicaciones y movimientos claros en tu Nextcloud — listo para escaneo QR / código de barras","description":"# Existencias. Ubicaciones. Movimientos claros.\n\nInventoryCheck mantiene piezas y suministros en la Nextcloud que ya tiene: almacenes, furgonetas y cajas de obra, cantidades e historial de reservas en modo append-only. Detecte pronto las existencias bajas, imprima etiquetas y realice inventarios. Luego, si lo desea, InventoryCheck Mobile usa el mismo libro para escanear en la estantería y en la furgoneta.\n\n**Aplicación web gratuita** (AGPL-3.0-or-later). Aplicaciones asociadas: https://nextcloud.software-by-design.de/\n\n## Por qué los equipos lo instalan\n\n- **Saber qué hay dónde** — ubicaciones (almacén, estantería, furgoneta, caja de obra) y artículos con SKU, código de escaneo, unidad de medida y nivel de reorden\n- **Reservar sin reescribir el historial** — recibir, emitir, transferir y ajustar como movimientos append-only; las correcciones usan reservas compensatorias\n- **Actuar cuando hay pocas existencias** — señales del panel, historial de movimientos y etiquetas imprimibles\n- **Contar la estantería** — campañas de inventario de crear → contar → cerrar con ajustes publicados\n- **Mantener el alcance** — roles de oficina / campo y restricción de acceso opcional\n- **Móvil opcional** — superficie de licencias para asientos móviles y dispositivos de escaneo emparejados\n\n## Límites claros\n\n- Los movimientos son append-only — las correcciones usan reservas compensatorias.\n- Bases de datos declaradas: MySQL y PostgreSQL.\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL o PostgreSQL"},"da":{"name":"InventoryCheck","summary":"Lagerbeholdning, lokationer og klare bevægelser på din Nextcloud — klar til QR- / stregkodescan","description":"# Lager. Lokationer. Klare bookinger.\n\nInventoryCheck holder dele og forbrugsvarer i den Nextcloud, I allerede hoster: lagre, varevogne og bokse på lokationer, mængder og en bogføringshistorik med append-only. Se lavt lager tidligt, print etiketter, og kør lageroptællinger — og brug derefter den valgfrie InventoryCheck Mobile, som anvender den samme lagerbog til scanning på hylden og i varevognen.\n\n**Gratis webapp** (AGPL-3.0-or-later). Companion-apps: https://nextcloud.software-by-design.de/\n\n## Hvorfor teams installerer den\n\n- **Viden om hvad der er hvor** — lokationer (lager, hylde, varevogn, boks på lokation) og artikler med SKU, scanningskode, enhed og genbestillingsniveau\n- **Book uden at omskrive historikken** — modtagelse, udlevering, overførsel og justering som append-only-bevægelser; korrektioner bruger modgående bogføringer\n- **Håndtér lavt lager** — signaler på dashboardet, bevægelseshistorik og printbare etiketter\n- **Optæl hylden** — lageroptællingskampagner fra oprettelse → optælling → lukning med bogførte justeringer\n- **Hold det afgrænset** — kontor-/markroller og valgfri adgangsbegrænsning\n- **Valgfri mobil** — licensflade til mobile pladser og parrede scannere\n\n## Klare grænser\n\n- Bevægelser er append-only — korrektioner bruger modgående bogføringer.\n- Deklarerede databaser: MySQL og PostgreSQL.\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"nl":{"name":"InventoryCheck","summary":"Voorraad, locaties en duidelijke boekingen op uw Nextcloud — klaar voor QR- / barcodescan","description":"# Voorraad. Locaties. Duidelijke boekingen.\n\nInventoryCheck beheert onderdelen en verbruiksartikelen in de Nextcloud die u al gebruikt: magazijnen, bestelwagens en locaties-boxen, hoeveelheden en een boekingsgeschiedenis die append-only is. Ontdek tekorten vroeg, print labels, voer voorraadmetingen uit — en de optionele InventoryCheck Mobile gebruikt daarna dezelfde administratie voor scans in het schap en in de bestelwagen.\n\n**Gratis webapp** (AGPL-3.0-or-later). Companion-apps: https://nextcloud.software-by-design.de/\n\n## Waarom teams het installeren\n\n- **Weten wat waar ligt** — locaties (magazijn, schap, bestelwagen, locatie-box) en artikelen met SKU, scancode, meeteenheid en re-order niveau\n- **Boeken zonder de geschiedenis te herschrijven** — ontvangen, uitgeven, overboeken en aanpassen als append-only bewegingen; correcties gebruiken compenserende boekingen\n- **Reageren op lage voorraad** — signalen op het dashboard, bewegingsgeschiedenis en printbare labels\n- **Het schap tellen** — voorraadmeetcampagnes van aanmaken → tellen → afsluiten met geposte correcties\n- **Binnen de scope blijven** — rollen kantoor / veld en optionele toegangsbescherming\n- **Optionele mobiel** — licentielaag voor mobiele seats en gekoppelde scanapparaten\n\n## Duidelijke grenzen\n\n- Bewegingen zijn append-only — correcties gebruiken compenserende boekingen.\n- Gedeclareerde databases: MySQL en PostgreSQL.\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL of PostgreSQL"},"it":{"name":"InventoryCheck","summary":"Scorte, ubicazioni e movimenti chiari sulla tua Nextcloud — pronti per scansione QR / codice a barre","description":"# Scorte. Località. Prenotazioni chiare.\n\nInventoryCheck tiene parti e materiali di consumo nella Nextcloud che gestite già: magazzini, furgoni e box di cantiere, quantità e una cronologia di prenotazioni in modalità append-only. Individuate presto le scorte basse, stampate le etichette e fate i controlli di stock — poi, se lo desiderate, InventoryCheck Mobile usa lo stesso registro per la scansione su scaffale e nel furgone.\n\n**Web app gratuita** (AGPL-3.0-or-later). App associate: https://nextcloud.software-by-design.de/\n\n## Perché le squadre la installano\n\n- **Sapere cosa c’è dove** — località (magazzino, scaffale, furgone, box di cantiere) e articoli con SKU, codice di scansione, unità di misura e livello di riordino\n- **Prenotare senza riscrivere la cronologia** — ricevimento, emissione, trasferimento e rettifica come movimenti append-only; le correzioni usano prenotazioni compensative\n- **Agire sulle scorte basse** — segnali della dashboard, cronologia dei movimenti ed etichette stampabili\n- **Contare lo scaffale** — campagne di inventario da crea → conta → chiudi con aggiustamenti pubblicati\n- **Rimanere nel perimetro** — ruoli ufficio / campo e restrizione di accesso opzionale\n- **Mobile opzionale** — superficie licenze per posti mobili e dispositivi di scansione abbinati\n\n## Limiti chiari\n\n- I movimenti sono append-only — le correzioni usano prenotazioni compensative.\n- Database dichiarati: MySQL e PostgreSQL.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL o PostgreSQL"},"sv":{"name":"InventoryCheck","summary":"Lager, platser och tydliga rörelser i din Nextcloud — redo för QR- / streckkodsskanning","description":"# Lager. Platser. Tydliga bokningar.\n\nInventoryCheck håller delar och förnödenheter i den Nextcloud ni redan hostar: lager, skåpbilar och boxar på plats, kvantiteter samt en bokningshistorik som är append-only. Se lågt lager tidigt, skriv ut etiketter och genomför lagerräkningar — och använd sedan, om ni vill, InventoryCheck Mobile som använder samma register för skanning i hyllan och i skåpbilen.\n\n**Gratis webbapp** (AGPL-3.0-or-later). Companion-appar: https://nextcloud.software-by-design.de/\n\n## Varför team installerar den\n\n- **Veta vad som finns var** — platser (lager, hylla, skåpbil, box på plats) samt artiklar med SKU, skanningskod, måttenhet och påfyllningsnivå\n- **Boka utan att skriva om historiken** — ta emot, lämna ut, överföra och justera som append-only-rörelser; korrigeringar använder kompenserande bokningar\n- **Agera på lågt lager** — signaler i dashboarden, rörelsehistorik och utskrivbara etiketter\n- **Räkna hyllan** — lagerräkningskampanjer från skapa → räkna → avsluta med publicerade justeringar\n- **Håll dig inom scope** — kontors-/fältroller och valfri åtkomstbegränsning\n- **Valfri mobil** — licensyta för mobila seats och matchade skanningsenheter\n\n## Tydliga gränser\n\n- Rörelser är append-only — korrigeringar använder kompenserande bokningar.\n- Deklarerade databaser: MySQL och PostgreSQL.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"nb":{"name":"InventoryCheck","summary":"Lagerbeholdning, lokasjoner og tydelige bevegelser i din Nextcloud — klar for QR- / strekkodeskanning","description":"# Lager. Lokasjoner. Tydelige bookinger.\n\nInventoryCheck holder deler og forbruksmateriell i Nextclouden dere allerede hoster: lagre, varebiler og bokser på lokasjon, kvanta og en bookinghistorikk som er append-only. Se lav beholdning tidlig, skriv ut etiketter og kjør lageropptelling — og valgfritt bruker InventoryCheck Mobile det samme registeret for skanning i hylla og i varebilen.\n\n**Gratis nettapp** (AGPL-3.0-or-later). Følgeapper: https://nextcloud.software-by-design.de/\n\n## Hvorfor team installerer den\n\n- **Vite hva som er hvor** — lokasjoner (lager, hylle, varebil, boks på lokasjon) og artikler med SKU, skannekode, måleenhet og gjenbestillingsnivå\n- **Book uten å omskrive historikken** — motta, utstede, overføre og justere som append-only-bevegelser; korreksjoner bruker kompenserende bookinger\n- **Handle ved lav beholdning** — signaler i dashbordet, historikk over bevegelser og utskrivbare etiketter\n- **Telle hylla** — kampanjer for lageropptelling fra opprett → tell → lukk med bokførte justeringer\n- **Hold deg innenfor scope** — kontor-/feltroller og valgfri tilgangsbegrensning\n- **Valgfri mobil** — lisensflate for mobile seats og tilknyttede skanneenheter\n\n## Klare grenser\n\n- Bevegelser er append-only — korreksjoner bruker kompenserende bookinger.\n- Deklarerte databaser: MySQL og PostgreSQL.\n\n## Tidlig utgivelse — tilbakemelding velkommen\n\nDette er den første App Store-utgivelsen. Appen er fullt funksjonell og testet, men har ennå ikke sett bred bruk i virkelige scenarier. Feilrapporter og forslag til funksjoner er veldig velkomne: https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-inventorycheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhPLMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE4MDc0ODI4WhcNMzYxMTIzMDc0ODI4WjAZMRcwFQYD\nVQQDDA5pbnZlbnRvcnljaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAO9+Njn+OCSVqrRhQjZ9lpadRpkQL2P6VF28smsEHuhwAmt8U7bO0yCGYUm6\nHtPkPzxkqCfSb9wdWZ5GDfA3timTnH/TGAVK1gEvINqG3bUbETxm9WjLlzGTFitE\nse8sFhIsBxUOXZysZO2SVgDVd4Kx8CaVj2Ng8EvJLgT9rsuhEBONG+NEq/SAy7d4\nmaAbndq7FxW3R+ViJuUZIOjZGAcrJNWsRd407lqUIEjDSxhEY/B2v1wdJpoHvCbU\nPLra/X0snM3pzoTlnAMZ9M4re208Q7BHTf+44FJRdv7/CvtJNnt8zeA9uLh0tPVS\nGyeD7LDme9KlrZfkToZz2a86TO1K/dMXpsxItIshh7DrL2QBdxTB6UFXHKb045WQ\nOIi4XPBG7TC0jxR3xEJddhH8Y1jeGPmoB3/fx7MRI69sKaRqtgNSiXdu+kSNOkrh\nPG2iTBGbxv9Hkc6bHpGTF49fyGgSB5gO7mSr1UHyKPtiKY0+TknCRybvuI1CW9gd\nigx+FaMAHu2kTztFB01OimD35MfYtt0GFnEP++zOUrBLBqEtCFxVbpds9DExDXze\nZKmYTdijs4Oo9EFFcGuEO9zVqLa4/A01OP69z47HySXuc2vCiS5nachBf0y3QbPy\nCyz4VWqbxt8qitsnXeqCORUbqT1ANc7axREKzU7qVLjIzo71AgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAI6Ff7s48Sz5KR4UblIKy/m7NOiAH7KOqKLo4VkklbvIlrl4\nldHFUhqm1ZV/SSELN7/65gnzoi1xilmQzRQ7NYFTVbjlnU9m8/g2YzXKcPLIxVJ7\ndfYMnMgczq4LMysCrBaUd/0E9WyQexQZO2VAuQtvS2GRuBVh0rxLF0fOx3nqz57Q\nXN17aduqyoobKhhCri9QTaiaPoOXkPJxcXe4PN5sBlwP+eUlohLfaU31HjZ8i/Zv\nkI5JgXxK6oyXYUOYx3AXcRG98O1akeW5pgfE5oZhMw4ZPb76DzSUN6FTzAmFoMCD\nK6P1/FGg3Pm6BccN8RNGgk8HbuHBD82mrtLVCvA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"group_manager","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/kreotropic/group_manager/issues","website":"https://github.com/kreotropic/group_manager","created":"2026-10-03T17:56:14.545893Z","lastModified":"2026-10-15T14:54:14.520511Z","releases":[{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/group_manager/releases/download/v0.5.0/group_manager-v0.5.0-signed.tar.gz","created":"2026-10-15T14:54:14.514959Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T14:54:14.559766Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"dG/0NSHcgyMWnQ737wG4KuJMtQorv8rz8d1AH/ifObHHDqs9uomWJQzu/1lfQkbR\n5uJxiv8JQ3z6gJ8l13EqjonRNIpzUShHBakPYLllkZsPG7MxE+CPZZQtyC6kuFOK\nmxYFyJ2c7o/UX01m2B4ma+ooPAFp23x6sPfLgKbu5HCEeKYi25VRkhfSvTa3DCXN\nnzuBEr3tZhufZkFpEZaYDm1yJFXyqVBqDFad5kQWTlCdnLcbgty0ey+YXfs/Vap7\nA4Cu4BfYoSlALjQgtmbJNsXOta29fCYuPTFb5631Jx0xHpertoW1HenHbRbNc+RF\ndFqaIMaROZz/ho74Qtto+wFLyRF8mz/kzjZltAPAYFiVUVZlbvImtC1XvY8qSAHI\nTBytwVRPXLz4Q6OvdcqctrK6+Dne8Lm2QLyDlgxz1mnITKr2lnI86RExwR5aROU9\nX9PvGKbJiqStJU3ZO9B/VxzLgZkwcCJ40k6cTeqTaNeQCcipKvfanCAKFdj5rugK\n933/xvLuHjJmuJd30keHSZDpvMu8NAN1Hn2jl5UEvomZuXxRuoBSV+XazwuCefbs\n8XS77Uas4i7H0sx+YicNpmRqaPc87DCPAz2VTF08cukBQLd+eO1LVG+GeUUHWlyS\ngL+r7S0G6EOCoanjiRzldgHO+QYiuJybn7OK5MOSK2Y=","translations":{"en":{"changelog":"### Added\n- **Quota tab** (when the Group Quota app is enabled): view, set and remove\n  a group's shared storage limit from the group's detail view, with presets,\n  a custom size, \"Unlimited\" and a usage bar. Setting a quota asks for a\n  password confirmation like the other write actions.\n- A warning on that tab for members who also belong to another group with a\n  quota. Group Quota applies only one of them to a user in several (its\n  README calls the case undefined): the first in the order Nextcloud lists\n  the user's groups, which depends on the database (alphabetical by group ID\n  on MySQL/MariaDB, usually the order the user joined on SQLite and\n  PostgreSQL). The warning asks Nextcloud for that same order, so it names\n  the group that actually wins.\n- **Folder path picker when creating a group folder.** The create dialog takes\n  a full path (`a/b/c`) with a browsable tree of the levels that already\n  exist, a live preview of how the folder will appear in Files, and warnings\n  when the path already exists or nests inside another group folder.\n\n### Fixed\n- In Portuguese, the Write / Share / Delete column headers of the Folders tab\n  ran into each other; the columns are now wide enough for the translated\n  labels.\n\n### Known issue\n- Deleting a group does not remove its Group Quota limit, so a group created\n  later with the same ID inherits it. Group Quota itself behaves the same way;\n  remove the limit from the Quota tab before deleting the group."}},"signatureDigest":"sha512"},{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/group_manager/releases/download/v0.4.1/group_manager-v0.4.1.tar.gz","created":"2026-10-04T13:28:10.535542Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T13:28:10.606792Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"WF2ootnp64z1VTO9WeyRho9ldOctFbO6wDDcXRBHGMBic6hJfIomcfSfYtj8fvm5IUxe/JWzwIlB0DYgwTaM/aqZ30ZUh57IT4AOYDQQ8hoU7UHZCLl5W/hlFOr6Ok0rrnCHegpGlQ8T7LJ4MaPvc87uugf9PH/rSin3GTPhWn5ZVFGwy0A9Fwa1SlPnND58JcNMtGyZFsfBpMniJG1b8YlV33EYgtkWWXpuFCJJAlv05arqHkLx5Er9VAtDWXvEE77g3BM2U4Fc0x9VLYbtZMx9/9AfagawTcC68crt9q3b2Rh3g53w1GBOOVVfJUaRRGzfijAKAgeDIcX+cLak0afRMxZ+e8aeWeLI7WG7eSiDKern+6I+MWd7fymCcoVy7kAAGQgnrVNNmuVMcdsGeZshqPuVbG3sQlNTt67IYJdwzqs7NLtha4ahE40hVBsTLgvEtkUMh3k5VJSWOLVhSllX4TwaJvDlP8vPsCdrm6ZIu98oadAo0TQyggMwP0/oD3oIajLc0q/7dr2n0B5W9pw4ei/ziCcJ6Y0m5UY35A5Ic3Tnyb1oh+irghi2Q1x5Cj3gG4UFoJjPSq134hAzukYpIKRo6K4yCa5KkbsvRIGnRHd58xCH1THlGQB4uMjyWGY+rVRNJQzAJJI4aNU6PRmjl2qHnSmqJNKZdB07jQA=","translations":{"en":{"changelog":"### Fixed\n- **The App Store listing showed no screenshots.** The App Store downloads\n  screenshots once, when a release is uploaded, and 0.4.0 was uploaded before\n  the new screenshots reached GitHub, so it stored empty images and never\n  fetched them again. Screenshot URLs now point at the release's own tag\n  instead of `master`, so every release gets fresh URLs (and the images always\n  match that version). No code changes."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/group_manager/releases/download/v0.4.0/group_manager-v0.4.0.tar.gz","created":"2026-10-03T17:57:15.995326Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T11:46:30.465627Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"RP4WQaITkAQ5TvSMUSV+zRiAiLbFlomTCbps7cMWh0HTnawO53NQuP+HCJSlaOe39ZiDIPn/8LFzb7Yg4yvrMcV3KGRu7GVNNeIZWEzYEkiqoQ4lelMmOilUsgG6h+QQBb4I99ELRJQ6Nl5sKZjC/eLOZhRT/tCjObBL5kVHtGZ42P80JIQ/SOZhNoVMfhckqSH0cCQyAMtG8tBRtk7A5C0JNGrEfILUcNClhLRcfzLFVZcPt/KHMkws9JdS7UjlS4nhKdfO/kn9hcv3hoL/z6GPTSRqSprfpIqq3n6zhFEizuD55Z0KsRbXZN9c6y+oprDpbnNwlZ6On5H5/4wWTZhJgUPYx8/cRx9COSUphsEB+Y3mAXT8f8s4Dx1p6aD7y6g9DoEduT9+4mq4LPAa7Iou+dvm7ZYigjjHHHjszBEQX+UAb69D776hZ2OpIuI+no4ASheGzunbooivhT1a8amz42lCNooZreV0obpwMrZguvtShv/H1jIHTTl7Bsc9jVRzYCU45Nj1lYIswisPeiLHkwyzbuk0HMq1iFvCgAQzYfw2a7KJLViXO18x3UdH+SvLDPSlGPgH0UlWGezWcDMbaYnJh+sDg5MLOh0k3ot4MPD8yz76aNzFNsYWyNJ6gV30/tJH/lGyQ+JJ23LYa9PPyaHXWvqJqIaRkFy3Ntk=","translations":{"en":{"changelog":"### Fixed\n- **Opening any group's detail view (local or LDAP) returned HTTP 500 on\n  Nextcloud 31** as soon as the Team Folders app (`groupfolders` 19.x) was\n  installed, because `GroupService::detail()` counts a group's folders on\n  every load. `FolderAssignmentService` called groupfolders' internal\n  `FolderManager` the way its 20+ releases expect (a required storage-id\n  argument dropped, folders read as `FolderWithMappingsAndCache` objects),\n  which groupfolders 19.x doesn't provide (it takes that argument and returns\n  plain arrays with different keys). Every result now goes through one\n  normalization step, and the one groupfolders method this app used that\n  doesn't exist before 20 (`mountPointExists()`) is replaced with a direct\n  query against its own table, mirroring how `folder_protection` already\n  reads groupfolders' schema instead of its unstable internal API.\n- **Two admins removing each other from the `admin` group at the same\n  moment could both succeed, leaving the instance with no administrators.**\n  `removeMember()` now serializes removals from `admin` through an\n  `OCP\\Lock\\ILockingProvider` exclusive lock, re-reading membership and the\n  admin count only after acquiring it; a backend that can't answer the count\n  at all is now treated as unsafe rather than let through. This closes the\n  race for removals made through this app; it can't coordinate an admin\n  removed some other way (`occ`, the core Users page, another app).\n- **A group folder could be assigned, created, or have its permissions/quota\n  changed for a group ID that doesn't exist** (a typo, or a group deleted\n  between being picked and the request landing), leaving an association that\n  silently grants full access the moment a group with that ID exists again\n  (LDAP re-sync, or an admin recreating it). `FolderAssignmentService` now\n  requires the group to exist before every such write. Unassigning is\n  deliberately exempt, so an association left over from before this fix (or\n  from this exact race, which a lookup-then-write can narrow but not close)\n  can still be removed.\n- **Pasting a list of users into \"add members\" showed a wrong count of new\n  members** when the account belonged to the group but was outside the\n  currently loaded/filtered page: the frontend decided membership from\n  whatever page it had, not the group's real membership. `resolvePastedList`\n  now reports each entry's real membership from the server. The \"N members\n  after applying\" prediction also no longer uses the search-filtered member\n  count as if it were the group's real size.\n- Going back or forward in the browser past a group with unapplied member or\n  folder changes used to discard them without asking; only switching groups\n  from the list itself was guarded. Back/Forward now asks the same question,\n  and reverts the jump if declined; while a batch is actually being applied,\n  navigating away (either way) is refused outright, not just guarded by a\n  prompt.\n- A search whose response arrived out of order (members, add-field\n  candidates, or assignable folders) could overwrite the current results\n  with a stale answer to an earlier, already-superseded search. Every such\n  search now discards an answer that's no longer for the latest query.\n- A failed member/folder list load, or a failed refresh right after\n  successfully applying changes, showed an empty or stale list with no\n  indication anything had gone wrong. These now show an explicit error with\n  a way to retry, and a successful write's own result is no longer hidden by\n  a follow-up refresh failing.\n- Group member pages could not be paged past the first one whenever the\n  backend could enumerate members but couldn't answer a plain count\n  (`count()` returning `false`, seen with some LDAP setups): the frontend\n  required a known total to show \"Load more\". Paging now uses a `hasMore`\n  flag the API derives from an extra fetched row, independent of the total.\n- Creating a group whose ID contains `/` succeeded but left it permanently\n  unreachable through this app's own API (every route needs `/`-free IDs);\n  rejected at creation now. A group with `/` in its ID created some other\n  way (occ, LDAP) is unaffected and still manageable everywhere else.\n- Malformed input reached internal errors (HTTP 500) instead of a clean\n  `400`: non-string entries pasted into the add-members list, and\n  out-of-range `limit`/`offset` values for a group's member list. Both are\n  now validated up front with a stable error code.\n- **The add-members search for whole groups used to enumerate every member\n  of the destination group, and every candidate group's own full\n  membership, on every keystroke**: a large directory made this measurably\n  slow. Membership is now checked one candidate at a time, up to\n  a fixed page budget; a candidate group's entry shows its own size, not an\n  exact \"how many would be new\" count (computed once, cheaply, only for the\n  group actually picked). Opening a group's Folders tab, or counting its\n  folders for the sidebar, no longer reads every group folder in the\n  instance to find the ones assigned to it; both now query the assignment\n  table directly for that group.\n- The add field and the \"Filter members\" field are the same height again: a\n  global Nextcloud input rule made the add field 2px taller, and its outline\n  was clipped at the top.\n- The Folders tab's Write / Share / Delete headers no longer run into each\n  other in Portuguese, Spanish and French: the columns were narrower than the\n  translated words.\n\n### Known limitations\n- The lock preventing the last-admin race, and the existence checks\n  preventing orphaned folder associations, only coordinate operations made\n  through this app. `occ`, the core Users settings page, or another app can\n  still race with, or bypass, either.\n- A folder-association row left over from before this release, or from a\n  group deleted through some other route while this app was mid-request,\n  isn't found or cleaned up automatically; only `unassignFolder()` can\n  remove it, and only once someone notices it.\n- A group ID containing `/` created before this release (or through `occ`,\n  LDAP, another app) remains unreachable through this app's own group\n  routes; only creating a *new* one that way is now rejected.\n- Group folders NOT yet assigned to a group (the assignment field's search)\n  are still found by reading every group folder in the instance; there's no\n  per-group index for \"absent from this group's assignment list\" the way\n  there is for \"assigned to it\".\n- The groups list itself (left-hand panel) still loads every group and its\n  member count up front; it isn't paged.\n- On Nextcloud 34+, a request for a group's member list with a `pageSize`\n  outside `[1, 500]` and no other malformed input gets this app's own clean\n  `400` (worked around: the parameter isn't named `limit`, which the\n  AppFramework's own request dispatcher special-cases as of that version).\n  The add-field's candidate search and the folder-assignment search still\n  use a parameter literally named `limit` and are not worked around the same\n  way: an extreme, out-of-range value there can still surface as that\n  framework's own raw 500 on 34/35.\n\n### Added\n- **Group admins.** A shield on each member's row makes them an admin of the\n  group (a Nextcloud \"subadmin\"), queued and applied with the other changes;\n  current admins show a badge, and the group's summary counts them. Works on\n  LDAP groups too, whose membership stays read-only: the assignment is\n  stored by Nextcloud, not in the directory, so LDAP groups now use the same\n  member list as local ones, minus adding and removing. Removing a member\n  also ends their group admin role (Nextcloud itself keeps it until the user\n  or group is deleted). Group admins who aren't members, which the core\n  Users page allows, are listed above the members and can be revoked. The\n  `admin` group can't be given group admins, matching Nextcloud's own\n  provisioning API: a group admin of `admin` could add themselves to it.\n- **Nextcloud 35 support**, verified against a disposable instance the same\n  way as 31–34.\n- **Optional top bar shortcut** to the Group Manager page, switched on per\n  admin from the groups list's menu (off by default).\n- **The add field pages through every candidate** as the dropdown scrolls,\n  instead of stopping at the first 10; without a search term, candidates\n  are listed by display name.\n- LDAP groups show a read-only badge and their DN, with a copy button.\n- Groups whose names differ only by case are flagged in the list.\n- Members show their profile picture when they have one.\n\n### Changed\n- Reworked layout: no outer frame, theme-safe colours (light, dark and high\n  contrast), a fixed header over scrolling group and member lists, sticky\n  section headers in the groups list, and one shared header height so the\n  rule under the tabs runs straight across both columns.\n- Tighter header: less padding above the app, the All / Local / LDAP filters\n  on the groups list's title line, a shorter header for every group but an\n  LDAP one (whose DN needs a line of its own), and the group's summary\n  (members, admins, folders, disabled accounts) on the same line as its name.\n- The \"N after applying\" count moved into that summary, so queuing the first\n  change no longer shifts the add field sideways.\n- Member rows fit on one line (name, then username or email), stacking only\n  in narrow panels; UUID-style usernames are shown as a tooltip instead.\n- Deleting a group moved to an actions menu beside the group's name; the\n  apply/discard footer appears only while changes are pending.\n- Keyboard focus rings show only for keyboard navigation, and Chrome on\n  Windows no longer draws arrow buttons on the app's scrollbars."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZ3JvdXBfbWFuYWdlci9tYXN0ZXIvc2NyZWVuc2hvdHMvMS1tZW1iZXJzLTAuNS4wLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZ3JvdXBfbWFuYWdlci9tYXN0ZXIvc2NyZWVuc2hvdHMvMi1mb2xkZXJzLTAuNS4wLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZ3JvdXBfbWFuYWdlci9tYXN0ZXIvc2NyZWVuc2hvdHMvMy1sZGFwLTAuNS4wLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZ3JvdXBfbWFuYWdlci9tYXN0ZXIvc2NyZWVuc2hvdHMvNC1xdW90YS0wLjUuMC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvZ3JvdXBfbWFuYWdlci9tYXN0ZXIvc2NyZWVuc2hvdHMvNS1mb2xkZXItcGF0aC0wLjUuMC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Group Manager","summary":"Manage local and LDAP groups, their members, group admins and group folders from one screen","description":"Group Manager gives administrators a single screen to browse groups (local and LDAP), manage\nlocal group membership in bulk, and — when Team Folders is installed — create or assign group\nfolders and their per-group permissions and quota, without leaving Settings.\n\n- Browse local and LDAP/AD groups side by side, searchable, with LDAP groups grouped separately.\n- Add people, a whole group at once, or a pasted list to a local group; queue several changes as\n  colored chips and apply them in one batch that never aborts over a single failed row.\n- Make members group admins (Nextcloud subadmins) right from the member list, in the same\n  queued batch.\n- Create a new group folder or assign an existing one to a group, edit Write/Share/Delete\n  permissions and the folder's quota, and see a badge when a folder has advanced permissions\n  (ACL) enabled — works for LDAP groups too.\n- When the Group Quota app is installed, view and set a group's shared storage limit, with a\n  warning for members who belong to several groups that have a quota.\n- LDAP group membership stays read-only, as the directory is the source of truth; everything else,\n  group admins included, works the same as for a local group."}},"isFeatured":false,"authors":[{"name":"Ricardo Ferreira","mail":"rsfneg@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhQ6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTIyOTE2WhcNMzcwMTA3MTIyOTE2WjAYMRYwFAYD\nVQQDDA1ncm91cF9tYW5hZ2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAudBh4Zj6rKuYhgQkv9i6EG6n3Ad2ZHoOSyKmvB4nYwKARa96nDxCNp5brT3o\nx40rnrthERcAbHywf/vRc4UhAhjpWKNb3m4FMHKFN2jrB3C8vAxWaI17TljamrVX\n01MIcGyeTU9OZid9NA3JhGajU+ZB6pvsdTtwTUFchEoZZ7NiEJ82MvpoqlsswREK\ndW90usbs5mnPfLbTmKftLILySnkazkho5Fqw0D5jeSmFeEepY5SfJwiwoXDYIqK9\nPQkDqZvPph+wm2IgIwwof/lvN2pMJeVqniKbwzVTtdpDQF0uFgEVY8j7huC3tNnB\nZdsaAOnJQpiVlPNwuSAguBSliQvRBevG884IpGviPff9Pm3Td4n4XV0kDFAflAZX\nfKQo9uNjPx6KERAbMXthPwKOsreQw+qYpZqhYZZU8IyFgXkzb6+hmqO0Qdg4qQ5q\nzd89wP8nUIvgJ0Mi+S41hmr77zUc+kFJEYy7QcKXVs38ewaGGJkXo15hSlEZxqH2\nS5nq0zgAyHQUtx50XEyMhm6mpx2IIWg+lBEm8IILZz1boQ8wuXBl0EBEgkzXPpuw\nergRgiXO2gpd6wPBJvfhWI68LsiGgIURSD4yOPJux/+7+9Q0BLHUbAMWRWgIuBRv\nVJmO3qFtPE0MpSmoY6LwPer3p7qufpXWpjXvqQ8nKyJmUdcCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAmaJ9I9gxobROMQZTzJZ7kEpi4GsN0v3L20GoWqpbOc4uR7nu\nuw1byP4ouHisRlJhthYDrnjzV0HDJs6Ic8ceqL6D84bkPpbYYGtvmxP601LX5fv7\nEr5GgDuTEjDMTFjI0jHjL0ZiJzwpAeylIIE6vtlj5hNyHo2ZyETNzENMr0BgOnfo\nr/+U9pJs+dvUEfZxyecG1IjmWobp3kQzbzLu5BmHng8YFPDoyPvu5OnSdS1iH4F7\nn1vPpFDxRxKV5y6tcQQJ/9nzSxUwUrtshT41fcqijhmdnweWYdFqbN06OfI7hNnO\nYOj82ntC5BuZULxJeFtb7YKFQnzdRa0570Dw3A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_automatedtagging","categories":["files","organization","workflow"],"userDocs":"","adminDocs":"https://docs.nextcloud.com/server/stable/go.php?to=admin-files-automated-tagging","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_automatedtagging/issues","website":"https://github.com/nextcloud/files_automatedtagging","created":"2017-04-25T15:39:24.697932Z","lastModified":"2026-10-13T13:25:50.819704Z","releases":[{"version":"6.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_automatedtagging/releases/download/v6.0.1/files_automatedtagging-v6.0.1.tar.gz","created":"2026-10-13T13:25:50.815277Z","licenses":["agpl"],"lastModified":"2026-10-13T13:25:50.859992Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"V9hfwtQMsett4PmUEVwBtGyhVW5rwKjMapEW7raMHY/DkVvJVYBXeW7lcB/YwUV6BUhGfZbhnaZlzYBi+8pYFrftqENPIYyrdxNfZPVg4+F9q6+IczIU8KFp5HBqv02+gCAqxgEqvNfazt0UhYzpoy5B5+ah/6SYlR+/x3elhtKpGaH8E9zuNTHlGKYnt8dkIVZVqVulhhavs+bRyeYDKhVxMSGSp2Lpj23sYc0wJRtPkjS7T7B3hh9Mwx8ud5DnKrpFN9HbAXjNBrEPqQHt2aFAtntQp+NUxYMxhql/vkBeXxG6nvnpHj3n4v2YaMYFyD5UZ70Efj1HZTvaaCiN8c1d2vJJFYvoa1LQqCeHoVm2VHgQQ7NNgVcrnXor8/Oim+L7+bBFBzoGRyLoKr1zytnHHSPEkpbreFpx/Ajs38eQD1m2/XihfA1HnYt3AYt5dhm4iuHswSsy5Dmp822Ck4UqGlEpih2ilHfZ+P9w3EfEH+T95/RgvOSdLNYbDgeKLFTjKCm6H80+ZVIUeTlM4yKo8gGOfWvJJdA0uuiAUduccw+cVz7eeJ/sl2xUEoYW/l8QFVsQg5Xu/JI5DpQlok93sS3oT/WAspGmRjmDc8QgAi/yBPqybxW2FKfRSrnNOOc51sLWGQC6FK2pRONJr7o7aMMX4Rs6Ubfi/gV9KXY=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Update dependencies\n\n### Fixed\n- build: Fix release shipped files [#1740](https://github.com/nextcloud/files_automatedtagging/pull/1740)"}},"signatureDigest":"sha512"},{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_automatedtagging/releases/download/v6.0.0/files_automatedtagging-v6.0.0.tar.gz","created":"2026-08-07T09:36:32.609453Z","licenses":["agpl"],"lastModified":"2026-08-07T09:36:32.689116Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"N0V9Eq+mGVm+llvAj91ygUMkAoKnXL5hJ7605hXHu0mP3Yqc+eAEDa8JRaX3l8AOkj2Mahbb/1l1CdZMirNdsoBkJGU/MghbXYGsv2xcZStOdn9Bg6qXjAS9b19tp53pQhbwCIx5EgyLsAUMYGWUhdk1P55JzwbWsod5eSJeTw9aUUskVIPqlUd2LtlzdxlTuYLzksKyommMTPUHYxc4Rv0vsM4AYVKCJ13a3LsTYeBmdKxDHJU7urb3iC3tozBAa+NKsst+hs47WKRIHdrpE1SKUhrvKZLbNqn8Ce95u+jOOxkXXM6lWe3365pcD8UB4r15stTGtLBy7/aKNrLYMuxPT3iCLxhcRPyt2Ps3mJ4Iiooenrofh2mAu2L5z7Vs8wXxH3+ToRo7oQ63bvvO5gIPno5ZuxkrsDgLMCcc47BrsixUB3KH8mTa9AkkpuMuMhSIisZfmDZKLauAG6YhYbymKTu+z0yduJgF1/u74eBASGVI0W2fN/TLZbERXBQ6WNVXsbUcmv406bL8g4W5Zzg8m94O9yFYcXf0jhJxxOvvtS0wDdPyZ2L/9YAl3OdwmAI+oc3vuQX9b77VUbyoYxpciqmx6yKo6mmjmOWphUAteX43wP7/2O3WJDvJoPyFN9FWQJMcu3k547R30Hq2rCmokxk7GpvGY5DJWhi8VP8=","translations":{"en":{"changelog":"### Changed\n- Require Nextcloud 35\n- Update translations\n- Update dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19hdXRvbWF0ZWR0YWdnaW5nL21haW4vZG9jcy9zY3JlZW5zaG90LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Files automated tagging","summary":"Automatically assign collaborative tags to files based on conditions","description":"An app for Nextcloud that automatically assigns tags to newly uploaded files based on some conditions.\n\nThe tags can later be used to control retention, file access, automatic script execution and more.\n\n## How it works\nTo define tags, administrators can create and manage a set of rule groups. Each rule group consists of one or more rules combined through operators. Rules can include criteria like file type, size, time and more. A request matches a group if all rules evaluate to true. On uploading a file all defined groups are evaluated and when matching, the given tags are assigned to the file."}},"isFeatured":true,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhBBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI1MTUzNzAzWhcNMjcwODAxMTUzNzAzWjAhMR8wHQYD\r\nVQQDFBZmaWxlc19hdXRvbWF0ZWR0YWdnaW5nMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAtdlW2k/GqOoVW0By/W/mERsObLpngra/9IqV3vd3rgGVmie2\r\nLmGLb+UnGiJrYbmP+JD37oK/sIwdzQuCY7r4TJBNOIfs/rMZ9BHI3kneQCgxrDFP\r\nZ/WYMdV1jZxZVtG3vv99EVYLXt45gmfe/I/mGRgmWN8hG8YUK9KVl2J1Ay4tcHMI\r\nw9zPIZrALcA/lXhhrTGBnTzswaCKQ6/qwAEDRyzKX2bGfrRXiyK3lvV+ps12/HQ+\r\ngcLXpRNJ+0vLv1Kgq5Ws9ToPcaiNweDfo4NSAdddkVWyWENPLlg9NsN4EkcF3f6F\r\n641GXQGGfSudJzWuJjzqG3hIp19RcfXI7FiS+gDJenegfsNIQvPczPSQK6fHHKpN\r\nLay+b5ImpkANF/xDXFsQNliOrEEPmoFzCx4oIQ45tWd7+Uryu/+JuHNnzmpqiIFs\r\nSkebIKpLrmc4F5ujsOkXLSkJ3+VJQM52tE09R3bOWnAUfXAz5uzPSSn/0wqP1/k0\r\n+Vv4LudjCFhiNqWv0eGeDjNBimfsS2+Kc+YWbUS51BLBP6VQ5ZgUKGvasDtLXQS7\r\nmJz1zndHbOV9vHlcp4908bWObpv4//T6Ijr/o/B/WHUT74KQLBF7nargWUAXw2KB\r\nyH3SX033slT5mq4BjnTQjSsUQ9XxssccSWuANgtpC+BbgmZAE8fbrUijgbkCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAVpCDKmZ3cPpo0GyJf8/ZyHNfBRpzcd6bjh7/\r\nLgH4ReOzRVf8XXjONyhhj0ZYasjpUcuQLQcakc9AftL12v5ebtJ1pqmqoeMjY5Mx\r\nhwEU2j9bgJGEuh7aHYU74nW+/kG0bd6l6uSNHZqVixqe9k95cOH5SXP/mzsZb80h\r\n8kz92ZAQNXA2E/HfhuAFTVGIsof9kj+cBgzdhRdy1yQWZg27dfyqvZy6vDqM8NyK\r\nxg7caEzTxMbhSwldt38vfaX1BN4IlJggYPhyRTex7U2cGqbggNzsBHqFLf9ydg7B\r\nUH7vFWnYZZeOStMs2bgOLzn1vR5+PQiS5g4G2p0+9MNbhe/5Lw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ldap_contacts_backend","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/ldap_contacts_backend/issues","website":"","created":"2020-08-13T13:57:52.520750Z","lastModified":"2026-08-13T11:39:41.791842Z","releases":[{"version":"1.15.0","phpExtensions":[{"id":"ldap","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/ldap_contacts_backend/releases/download/v1.15.0/ldap_contacts_backend-v1.15.0.tar.gz","created":"2026-08-13T11:39:41.778153Z","licenses":["agpl"],"lastModified":"2026-08-13T11:39:41.844008Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"IECzrIx3N5PzHko9qH1k7XRbbVpsPk1G4yt9JYSYO0qKJsD1rsqr8U85thU48csuaSY69OM8+TxjwfZ1QiYKuZPqh7bZv7RvLyeMksfyERNhZ9wPlfwntmpx8VKPa9fD/55wrDrmmEx70Hohr/QIoVBdIaP1aExZR1Q8oWyHW00Fr6498tMa3tbzpB8uf0tBL8RM5IIfISmnknK7qT9rYZqg253unj0cyEg843G7nFzlv9Vv5FkbKrFsxuJBmkCp1TQwmuKKbLzhTIHdyy6+oY7ranQoUtVp3wAxd9x8f8Hjt/IcRNfm3rZXFMXSLYQHQXME6Jy9jWTdmuyAc8UAB65kuFPtNCjl1u5QlNyfrvq/tVNYp3XnUS9Z7LGbsc691jeeyN3dW7EfyK+Gfw1/D+C9JoNU7z5VPSmYZwtOKf/RmnNtUYENLsZAHQ5WgW0M8YHOegMALvX9xo+Y+vpVP1oMHKr82nZvagXTYEpVK/ePEKYaa+ia2fC63dgpTKYQJnkfx1AjAGPRiKpsVX89A8BnZhJ+gutzg93YwvUqwrUFDbYsaDfz2pV8vk5XW+okGyvyKPtFqe6cMUjTw8pyijMOcws4iMjWGTpsWqxpc3+OXvq1GibLIxD6VKHIyJHfwnHokW7wluS6KD+BHKsvSLXhvcY5xE8aD7hQmpgJdxE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9sZGFwX2NvbnRhY3RzX2JhY2tlbmQvbWFzdGVyL3NjcmVlbnNob3RzL2NvbnRhY3RzbWVudS13aXRoLWFjdGlvbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"LDAP Contacts Backend","summary":"LDAP backend for Nextcloud Contacts","description":"Adds a virtual address book and lets import contacts to user&#39;s individual one.\n\n![Copy found LDAP contact to address book](https://raw.githubusercontent.com/nextcloud/ldap_contacts_backend/master/screenshots/contactsmenu-with-action.png)\n\nIn order to configure an LDAP backend, run\n\n``php\nphp occ ldap_contacts:add --interactive $ADDRESSBOOKNAME\n``\n\nWhere $ADDRESSBOOKNAME is a name you like to identify the virtual addressbook with. The interactive mode leads you through the configuration, but you can also use the `--help` flag to see all the options.\n\nGiven that the configuration is correct, you and your users will be able to search through the LDAP contacts via the global contacts menu. An import action allows to copy the contact over to the best fitting existing addressbook. A redirect takes you the contacts app with the newly created card open."}},"isFeatured":false,"authors":[{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEDCCAvgCAhFAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwODEzMTM1NDA5WhcNMzAxMTE5MTM1NDA5WjAgMR4wHAYD\nVQQDDBVsZGFwX2NvbnRhY3RzX2JhY2tlbmQwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQClcf1jqkiduxgwkf5qzGXr1kKji2B08BndH2keSv6tUCsaznIZ\nGKk8EgU8pX+7xiysTNG8JwKJiEjSuORbJXCorWr3jOpdbjXVEhm8RqDOmL7NBhv+\nHNoa0dMIbEmqgjgXyE70FYM3HE1vmPryzgEvpiKzlXZ6BQmVKMh/OLcYW1Pn0ILk\nxPtVqoBe2knEONGiAAVG9ru4+t1VlaSLvqSgazrs/bmd4wYUYMEdCHLEhAxyXy2c\nWK7JXgIL5toVxliZTL7kIMmn20mb9Tx9yD63p3bEJuuFrUMwwo9SF+1P8qESIS2N\nbjoT66oGUpyvfBaYYYIqZwsBBREZTzrGcYTOKYuUuwwEjKgZ2l1zDG5lwzXPZIdH\nq6wxgcmbwVGcTx7xTvzV3hOl00X9gh0Xbjq69RqafRhHnEIcZqBEzQ/zjRqMVp7g\ngegLScvD4g2E5fQAGHPrmWu9D0yzFXQnl6l5bSpUsdDHvQClIOzDA6jjaG6Ya8Bn\nBweV4fYfDu+QGbmIepiby6loFkWGiIa/9wlcxKj6igRO9CH//TCFlf1ELM2Jjy39\n8WnkxK/mIwYzKp25C/f4Uohz8sHEV2qDHbuKejHSvFrsosSP1/HAq1X2onFZumWj\n35eeTDf+fY8AYW1fwvPf3wsRzOEoYf8iEgrG2uvKXpO1Iqn/UbC5EMUKKQIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4IBAQCX5/1IDHv8jRfyA/BinNc0EBTsXoOssVEqkVxa\nF+wED+Z0mMUXJDOlCNeC0fR1grNxabJukcU6SlNPvnq/F+2/yC63nf2Mj9zhuBVx\nutCr7Emd4ija0yKkWK1GRn0LoXtGK6ec/L0E7fDrw37VICei+L8DhMpEnzxPW7lo\n8+EZAWVtVXLHzSwIoqeRZ5+EyIA2lVUPeSh6lW2q3Q+jbM77eKghAtEA8DtyH7z4\nZpoIn+irJW0uJrFPb+NalEDKTIKIfK2tjcxXQTxe3/b2nnEtojM1+5geszZgr76U\nigU6FvItfo7H6QOsmBm84Thc4NetNc97JIaiutAJVBrWr4wI\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"picker","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/julien-nc/picker","issueTracker":"https://github.com/julien-nc/picker/issues","website":"https://github.com/julien-nc/picker","created":"2022-07-13T08:20:21.211361Z","lastModified":"2026-08-14T09:57:03.118227Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/picker/releases/download/v1.1.0/picker-v1.1.0.tar.gz","created":"2026-08-14T09:57:03.084282Z","licenses":["agpl"],"lastModified":"2026-08-14T09:57:03.168083Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"pqUw44zpVJu+wLHRBEVqZxvHA9UB9whgRKRn5VMACxKEOZvR7ov+y8MOZT8COl5XfxCm5a8Q8F2mD7pSgO5XmX8kiwI9gr24AzmEUGsgVESQeIvbyyj5Zg0UUjwHZ4tW/WqTFTOxnPu9sSASGWlKZeqbRUEubkIX7j7RLOLUZZReldnVdLb6ygIny2L/DjWoEbE31o82EM+0O4GqFnVTxK0Xwvmx9vIbrVqtE4Hq+23UBLJbNQSkgTZnveptlBZpawik6F6GcC5LCA0FD3zZCrgeZ5otoAnILyU8aLxNfucoURKYH2wfsu7wzCnPnHS47u31Muj9arWIdWloOyajBPwjWFdW6O+dN9sFxUs74zGgcgDm+cQlBz6SmU5Pf/H69ltwJpYWaJJXsRsiXSbG/fdbJJBN12OfaBfOFe4765gzvHBwmDtDrpvHYr17m7GZezZKskhSvB072y/Mu9IMVNontmxLsAAGN/7hP+9cM0EvgMB9ZGeJb9HrD3+2uUpNdsrb+RK6WDqIlqmohv2VX9lYGdGl/g9+GCYWk8jiYohUGMH26/e6E8u2xX6hW2pDcNBS1fAU9APiE6JNWyRZi9AxLeSxTpC9YsdEdAb9PjgldLr56ZllUDpvdBaqkrK9WiXCfpjZv2ymstDQXZN/IB49GYJg1zaNtN8uerjhxE0=","translations":{"en":{"changelog":"### Added\n- support Nextcloud 35\n\n### Removed\n- remove support for Nextcloud 32 and below"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waWNrZXIvcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waWNrZXIvcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waWNrZXIvcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Picker","summary":"Pick a file and share it","description":"This app provides a page to pick a file, generate a public link and directly browse it.\nIt can be used to integrate Nextcloud in other apps such as a video call software."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEATCCAukCAhHTMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzA3MTQzNDIxWhcNMzIxMDEyMTQzNDIxWjARMQ8wDQYD\r\nVQQDDAZwaWNrZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDQrEWI\r\nsNEyvZLC4vuM3lQ89OB/DsQOrmU+gbCYzMJdW2dGB1mn/7vpVI3eDcs0VXAA5/WC\r\nHkN01RD9oVgZ8VoB7yJ8zkx3eyQ+L05AZf6czydZ9cRHo17t6hMtiqcVZ92EH6KE\r\nDncHYQVBmYsNBvVNkwG24ItBG7zL4Qpc2W8BbEpzk7yPlH8WH6Ao7+t+6rYDhCUm\r\n9AkHzw1yWaQYZAroxPWE4G0qSIC0nGKOJp+xbjn1Zo/rGWOviWbH/0GVDX0ia6+9\r\n/PVqBmDmEduvzE6KKgzEqoQ/G2rtNrRu7dMGyfFpAcPJrVLG/y85lqYxhn4qLjYy\r\nMIHWGREqTftXSJj1dhMpE3EIVRt7mbNJi3XWchbuVzQihnmzrADHc9mnnr+cL/8q\r\njeXAqvwRZWEJNuoSr9YJhBDfz+pcFMCIgq1lwk+Re1iCqNvVkMmrLe18NtKGB9xh\r\nEXVJjzflrwqCHxHSC+VTOCYxLHZ/AuGXNCenzrTMtP3vX5yx1yCQX2uNP24rHh8H\r\niG19eVR8skzJZqnKUMrN1Wl8zwu44ttouD4Hksy8ZizofQ8ivAOkbYib93mWA59I\r\nW0QvLzZTHip211GQc+3E8MSYaKMD3O2YM07o+xNf84spCCZFSirDsfpWNtmnm1lT\r\nxY7c6Ghuq+Yctrp0ceLNTQOC9RpA0JmOTA3mawIDAQABMA0GCSqGSIb3DQEBCwUA\r\nA4IBAQAn+pMeuQdLIOsslejhHY8gI27pYLs00FwVePQ23u1PMk2hbxX6+YYD+iCq\r\nPOLnHYwTQbswVmRWmUOORX/MaoOaD+Zcuh7yBygI2SvRm1kouZMR3WMv48wX+ic+\r\nv7kozauAZbAgKleWfF2+Bxtgar0u9j++kP1eh5OYnbgQI3pt8s6jd+pJtSX1R+uH\r\ngRmFS9570aoCTwVgHQEt/Etq+BbefwDEk7n77wvancaDJeSB4H9+xu2l7IXYVqh7\r\n0zbXK4nlpsH0+spK/k6JpIbRzxkHmzYhEpAfPq1auLtzHBODaLUw9SEU3cn0CMYd\r\nHLotMlpr4CpJoD0TSjyfzZGzFmtB\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_immich","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/xXRoxXeRXx/integration_immich/issues","website":"https://github.com/xXRoxXeRXx/integration_immich","created":"2026-03-03T20:13:54.169886Z","lastModified":"2026-09-17T15:46:34.649551Z","releases":[{"version":"1.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/xXRoxXeRXx/integration_immich/releases/download/v1.5.1/integration_immich.tar.gz","created":"2026-09-17T15:46:34.626535Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T15:46:34.694266Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=27 <=35","signature":"FHXVR/1mTf9nKDJV5v/mWQ26l39CoVhb3nGy3iG6RTBa88860Ts3oNfJfsv1k/KfCTciJZHC39R3pc5Bh3RW0LRWBc1HoQf88XrsYdNauCYlzbXqzH4aKtNPdQgf/jkLtt1ZHnJ6HYRN4mzrC9gxuT16K/X45GUgFCbbeffYhZPCeyG7kgbj2rWj1atoEQvWmehWgfPCFRYhmnYHJzVQsZhf2oib4+vLK6SUNHzngCdMwXrRcqWn0nG4TB00mJvsrAzgGcHmCHijyR6U5dhtnDxQG9gVSZfCrfUFyOq41tT+BmUdIUJp1zvtBqz2hVNuNR5mnrGpzz7sw0pWzJFt5K6SOjWRymyNSkSP8EjD3dDPOfwTrtWFxNrwLCqD1QYRCu021dhl8RKtpQsLvKY+3oWBba0nuAPsonlX5VPuFpUV5qo6ZGTyzd2UOOTJP3Jz6vSmYrC24rmC+UqPAqfimSSmIzpuOqD6KhKUhaujaBHyBOgUeA/tOqO1ZUFROlwxQWvcNtYBWCntlsxpusQIPzpY3YHI11t0rC1IdmumNspM43C/o+Ot/zSzpssLk3C/eURe+vC7HAPkpo4cU/ppmIBsNCPRZGXPwU4yxSvQ5tqqz6O0Md1jukQXKZZwE5Tfs/elrkrof3c/+hf8TMtLZ9sqSDBsgu2ljrGznwm7qVA=","translations":{"en":{"changelog":"### Fixed\n\n- Add support for Nextcloud 35\n\n### Security / Dependencies\n\n- `vue-router` 5.3.0 → 5.3.1\n- `@babel/core` 8.0.1 → 8.0.5\n- `css-loader` 7.1.1 → 7.1.5\n- `sass` 1.103.1 → 1.104.1\n- `sass-loader` 17.0.0 → 17.0.1\n- `webpack` 5.110.2 → 5.110.3\n\n---"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hYUm94WGVSWHgvaW50ZWdyYXRpb25faW1taWNoL21hc3Rlci9zY3JlZW5zaG90cy9hbGxtZWRpYS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hYUm94WGVSWHgvaW50ZWdyYXRpb25faW1taWNoL21hc3Rlci9zY3JlZW5zaG90cy9hbGJ1bS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3hYUm94WGVSWHgvaW50ZWdyYXRpb25faW1taWNoL21hc3Rlci9zY3JlZW5zaG90cy9wZW9wbGUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Immich Integration","summary":"Browse your Immich photo library directly in Nextcloud","description":"Seamlessly integrates your [Immich](https://immich.app) photo library into Nextcloud.\n\n**Features:**\n- 🖼️ **Timeline** — lazy-loaded photo & video timeline grouped by date\n- 📁 **Albums** — browse, create, rename and delete Immich albums\n- 👤 **People** — explore your library by recognized person (face recognition)\n- 🗺️ **Map** — interactive map of all geotagged photos\n- 🔍 **Explore** — browse by city, country, state, object or tag\n- 🔎 **Lightbox** — full-screen viewer with keyboard navigation, pinch-to-zoom and EXIF metadata\n- ⭐ **Favorites** — mark and unmark photos as favorites\n- 💾 **Save to Nextcloud** — save Immich originals directly to your Nextcloud Files\n- ⬆️ **Upload to Immich** — send photos and videos from Nextcloud Files to Immich\n- ☑️ **Multi-select** — batch operations across any view"}},"isFeatured":false,"authors":[{"name":"Marcel Meyer","mail":"gh@grenzallee.eu","homepage":""}],"ratingRecent":1.0,"ratingOverall":1.0,"ratingNumRecent":5,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhL/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzAzMDgwNjU3WhcNMzYwNjA4MDgwNjU3WjAdMRswGQYD\nVQQDDBJpbnRlZ3JhdGlvbl9pbW1pY2gwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDuzv/eJfxXpudAswh65T+3nNwMV0RsV99cpC38On1k0W95vEyR1G0f\nPRgy8ezXp73efLBiCggQFc3VqswoiBjCOPRHPZz1DVVNjUTXAQ9zGkBpaCYKrsc8\nVNiuS+riXopifaiQZe494x8vig8omm90Ezw16kmkFAeein/OdoqmPBVwGNIlOmVY\n0Au/TwOAcdPcUj7aB9RluDkHUuPOt0tbYI2SQwYnpK6tGCEr67lunCVTt/LONqWc\n5DF0XLxdCp0pDGvBcoqGF4nVv+IUMwD9DfjBall2G/VAugGW2Et5p6/ruxa1bTBf\nr3aQY15M13O+a4WX2E+i1xISuXRGI/seN6TMAczb45BHt/mUjzzbNiHnB2Yuk5tF\nkUewKJhrxIbcwysPprpvtDbfQUAxbADc0rp5S3Btjq2B5b7Qi/kvx+Drixz2gTyW\n+lsLrso6QPV3FDylzAdr+ZKKlTZpqZyQ9KKXhXhZ/yazcsKq8ntpFiN/QKtshcE3\n1vVbzos7ipHzqDV3Io0LP9d6HXW/bK7HrkT5RQjokGiED9+o+T7uC+j+vklozzIe\nG0LDBrtR5CaTXDvrSFnMUJbGgwZch2W00pAubBcq9rvLb1Di/E7tnm23cgOTgOyr\niH3vRsNqjrEqqkR25XD3ee7GcOkWowWs5nJ2nSslelDyw9bhLgWh/QIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQAjZwan2CUOCsXlpcJ1SKRYiyvJ1dxV8QntzFmR6RyO\n5SQqnorEI0LffrHEpZ+KcIqh2qdjdNBCsyRxKAD6pTwijnC8lbP/6KK6RWXEnNpz\neqO5cZMRDr64VA2kPCjrgwUXueu4KqD+yGETI0BZc9oz3DpscfBpnHt5a3Bt3Wc/\n/0dxEYnurmzDQ37LEpCg/whx/ecU026I/he9XbfMfJGqQ+xYbt5DQ1H6bIK2HmCl\nyH3shTrI/rxL0263ZlHQd4FT9RydK+bq3SIcMihjTlkj/LjdEFejBgnMZqrTXP0x\nPvOhihvpkrcB4A7uON1KhksYRW/vce8J/5pWSMHWn/8a\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"announcementbanner","categories":["customization","integration","organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/mohamedsakhri/nextcloud-announcementbanner/issues","website":"https://github.com/mohamedsakhri/nextcloud-announcementbanner","created":"2025-11-24T08:46:01.060244Z","lastModified":"2026-09-30T19:23:57.643660Z","releases":[{"version":"2.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mohamedsakhri/nextcloud-announcementbanner/releases/download/v2.8.1/announcementbanner-2.8.1.tar.gz","created":"2026-09-30T19:23:57.638777Z","licenses":["gpl3"],"lastModified":"2026-09-30T19:23:57.686906Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"ZgJ2A1YjWr/UdR15sQQadFc3uSMng4WdnW2CD4ePIcW3WVHCytY3l2YXbZZrsaQK\nSFB7xi5HHiuOSZQsfM66CO+Tav/zBovwXrkUkwbUm42raUOCReH+/eIcfeZ/LlUd\ne2Sq1iORRTNg69EPKEj2aaIHjyYvJWRtCWEvjwGmR/fX4Z9piCuGswLAvBJ54jtx\n3me8+wrlMxmcmwlpgALFTkW5DnVCU71m0NUApGUSJBG35ZL84++U+CBVgs7ckk60\nEMROMnqKDRGOar4ISbuki9HeqQGc4//91UDfLvo7XZDfE9L4GZ3eyuf+PLf76zVW\nMERgUX2fjwOuP/jE9UZYidH8nArqP2dWLEqblLwUnoztGUbJp7YwF2cb8ntPde+n\n950F/0yzBvSgsD2IetQgt2Bz67bWvs23zjjD8mJ2Vdx1gnC7372CIZiY+rJL5Moh\nMMZTCHOxeKYPb1m9CH5NNsV2Tao7RvC/JU6GPu51w7nPjPA3TUOP73NzB8Rxd6eC\ncx4NCgvCuUdZiS4yIWyhBLPgDv8cZmlrpmRQeDpime0uxLcO/ilZQ8mNUae0WZHz\nz5qlS3INqRcpIIFOCMcqqloGyYotD81vSLjhYO/xYXpaImqc6JJRq9LriM0bwT52\nr6t/ASeOFqAwNeWu9hKrNat+PIwyjKPxeMJI6jFq15c=","translations":{"en":{"changelog":"- Security: fix a stored cross-site scripting (XSS) issue in the banner's \"read more\" link. A link URL containing a quote could break out of the link's `href` attribute and add attributes to it, such as event handlers or inline styles. Read-more links must now be an `http://`, `https://`, `mailto:` or `tel:` URL or a path starting with `/`; other values are rejected when saving, in the admin settings as well as with the occ commands. The banner and the live preview now build the link with DOM methods instead of HTML strings. Previously saved links that don't meet these rules are no longer shown.\n- Fix upgrading from the old single-banner settings (1.x): the migration to the multi-banner format failed with a type error, so banners could not be loaded after such an upgrade."}},"signatureDigest":"sha512"},{"version":"2.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mohamedsakhri/nextcloud-announcementbanner/releases/download/v2.8.0/announcementbanner-2.8.0.tar.gz","created":"2026-09-30T18:49:52.390516Z","licenses":["gpl3"],"lastModified":"2026-09-30T18:49:52.443047Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"SXSivn+gXaeEn2jzqj61GbtFyS6OZ14PlQ0V8+w6dBgcW0ldV9fDog4tSif9eCVx\n9VZLlqhL+s+LvoUk2m/i17E7wc0rDoOJDsmAOYNhDYgiu0TGd2KMktT+F/pJnATW\nHYVLHQG6r+5dRb9H25hvpb/zed9Cn/QwES28GzZl0zwmsj27LgfPQ0XYT72qfY5R\n4Ce53FXxm9eemejt9PdiUV5aBPsbJRO7P712xCTEmIhLENvxmY/CSc4hqXmnw/Uu\nzgaz6RkNHWZRqd6962QY+9JSb3eKQoUcKQC4Yb8/4em8xiTPCgBJWZ2RFfyj8VFJ\nDwt+v+0ScH56cbrz2oBJAKQbpJzrCHOvCKqbJV43NTviIe9HDHTQfJODluml1Wii\nkrd7FZPcHq4hxeYSDDvvOf79l7VK/kISqNxl4Mehxd16Xjn/h2EP3Wx+alvA2cPN\nk5OYL6rq5bNjSBaf8jEJPWHVXknAKdA6rcWo1PamTwRSHMOH7p0FDv8rFbUN1y9J\nBfHtaLn16nQPhPFppzJ3L0G3zIxKJWC65XF8ulIBrCX3Yx8I5eMy7bil6DO/Zks+\n0aI51uLeDca1f/o6TgF2sgrplFftX8lWkTWl2g1/kDlBa5ri0LyAxWlCXOy+W7PC\nSB6mLvk30Kak1AT97nzfE3l1gNTB7A0gcRHdosfpdnw=","translations":{"en":{"changelog":"- Add support for Nextcloud 35.\n- Fix the admin settings confirmation and error messages on Nextcloud 35, where `OC.Notification` was removed: they now fall back to the app's own toast, while older versions keep using the native notifications.\n- Refresh the live banner in place after saving, deleting, or reordering banners, using Nextcloud's event bus, instead of reloading the whole settings page. The \"Banner saved\" message now stays visible.\n- Remove the live banner from the page when no banner is visible any more after a change, and restore the page layout.\n- Fix a race where quick successive changes (e.g. reordering twice) could leave an outdated banner shown."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1hZG1pbi1vdmVydmlldy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/mohamedsakhri/nextcloud-announcementbanner/main/screenshots/banner-admin-overview.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1hZG1pbi1zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1zdWNjZXNzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1zdWNjZXNzLWRhcmsucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1kYW5nZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vaGFtZWRzYWtocmkvbmV4dGNsb3VkLWFubm91bmNlbWVudGJhbm5lci9tYWluL3NjcmVlbnNob3RzL2Jhbm5lci1hZG1pbi1jdXN0b20ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Announcement Banner","summary":"Display, target, and schedule customizable notification bars across Nextcloud apps and settings pages.","description":"Post an announcement banner across your Nextcloud instance to keep everyone informed, or target it to admins, specific groups, and selected apps or settings pages.\n\n\n**Features**\n * Multiple banners with overview, status, inline actions, and manual ordering controls.\n * Audience targeting for everyone, admins only, or specific groups.\n * Page targeting for selected apps and settings areas, including personal settings and administration settings.\n * Banners visible on the targeted pages for the selected audience with themed variants (info, success, warning, danger, custom).\n * Choose an icon shown at the start of the banner message, from a curated set including Material Design Icons.\n * Change the order of active banners from the admin overview when several banners are shown at the same time.\n * Optional schedule with start/end times to control when banners are visible.\n * Optional dismiss button so users can hide the banner when allowed.\n * Optional \"read more\" link with custom label and URL.\n * Optional translations for banner message and read-more label (fallback to default).\n * Live preview in admin settings before publishing to everyone.\n * Changes take effect immediately after saving.\n * Delegate banner management to specific admin groups via Nextcloud's settings delegation, without granting full server admin rights."}},"isFeatured":false,"authors":[{"name":"Mohamed Sakhri","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhLSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTI0MDc1NzEyWhcNMzYwMzAxMDc1NzEyWjAdMRswGQYD\nVQQDDBJhbm5vdW5jZW1lbnRiYW5uZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDZiPPwGEZ53JVpq1VYhDBgr7IlnQJKlmAvEldfGMJv8UDEf0fqQwaa\nBJv3sbR+4eZthp2Z78Qjjg8aiB1lPkJqVk75IBFyGBCNIsswFhzqr6aE8YkU+ZvG\nkUmmZq3e9rn3Kh53P7vhKbZZf3z3MaDYxGsMFAFLSjbduiZdbuCzIJ9FmkKXjHOm\nk6VvOh10oo/7KUX3bmY2wqDReCslnBKSFjQgtZ3t90If99Xf2jV9A/3ovKI2rMvz\nq5vlhPOYy7tXSxVlAbWwsHuzKiWI87qb3n2MKyONBPurxoHEmvfbX2azLdQlM3j5\nTwquZ15JKVSCtb+icI1MitvALN+BcwYPaGXjwX04zCoU15IEpxXI9W6mXOXOa0xI\nMN1j2uaxE3FFqPC0KptVX7bWtGtGWdXq9TRDTw3Zl10MvOelvRKfowvspiGgqS7A\n9t7fhAnuxON5nuFlE437oE/A0ZxbNaJtlrph0Po/8WxJb5zez2TmpgWD73s3mAsr\n9yJo/z91Q4xp49ADiLkuVyRKsEabHWPA3fd6MGv0nRAWCgN03queT45kvz+aLDoD\nGXnd+S04DdCPF6LwNL+9NTafh57hfKTrfGOUHgNKhy62edzy1W3Sz3/e9Zg6Smaz\n9kMIas8sSWI7xedsObJa/++wY/MktvtFm7qyOUyySHECbDPhPObs7wIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQAOgpeKcWizWs2XbQrI+W0PpPNlZ9xvFYKahqxwKqJ8\nRYK4UxgVyt2kLjFLTsnTKW823uN+dG+2c9wLEmMaal+m9XrUvVRJFV6yf+068ylV\n/tDMo7E0jX0VcPYig1DBUt/qa5fabnLOwdT8i6+42hPRoVaosh1xi6F5m0dXfjLW\nV1BK4UkFq3dAVdAeb6Jy8WVyGQ7kZSotTy2bx3Rndi2+55Mudv2oVxhGKuRhWhnI\ntNy4FydLIUfWUDHfS19qQR27Yhcsnph2wY3UJVygxFH2lWklwqW4yYwQ34yALe2B\nhPXNmeVtC1G4S+spsbl36tjyuddU94LUAHgxVpOf+YgH\n-----END CERTIFICATE-----","discussion":"https://github.com/mohamedsakhri/nextcloud-announcementbanner/discussions"},{"id":"twothousandandfortyeight","categories":["games"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/relisiuol/nextcloud-2048/issues","website":"https://github.com/relisiuol/nextcloud-2048","created":"2025-02-10T17:16:10.324967Z","lastModified":"2026-07-06T22:43:19.042397Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/relisiuol/nextcloud-2048/releases/download/v1.0.3/twothousandandfortyeight-v1.0.3.tar.gz","created":"2026-07-06T22:43:19.012834Z","licenses":["GPL-3.0-or-later"],"lastModified":"2026-07-06T22:43:19.115071Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Dv6qMQnfAT2sFjczlWXMmXZaAx5WENtbQ40egdpuJUWgI9bwEOLLpNU9SLErc5AaWL81ydxAyDKbZN0UVlr3h9jEBxkW55gOmmcGRkuDLV1OZM9f9GFfBqxyUoTx5qbP22oaXRd/i2CH3ra2TX6aWb5CHMpuKZCMt9iecoS+y6UOXKrf3Znf+9Ych3LI5FLbMt6v9K6vMpAGUog2+Qe3lPQhTG6LIRbaNj9f2HE6ScmAqXyW5opKhungDJCkucBV3Efx3cplvjzx1/jIOiJ09WEz9Wi+pJaq6FArikR9I5HoIHO9lIpLwaUQRx+NgVSu1G4noQrnIdMJUVUcM2Fr4r1Tuw+pkqvqhmDVBpnsCPSRZO9qFOVFhWI5uHYXRAT6hJDKcIwTGnrsuadraP4VlTijfVU1mGS4hQhcuKTFC8YAKEe5JxnUvbZooFMJCca9j4LgwDx0ae4EditHu1jZKEW1TCWYCRf7An37r8uFOQqLFaAbgS6uxBCQnyL+K2ExdBgzR4mXpW9JZvRg/GVivWfUWgU/OM4fPnIxgsPc5nq330wyhzyrZmgNYQu/IQYNKNYHVjyzoTu1pvUvjMBEJa/Av0DQqFPGRWlxYQQOM53pkrbV4yhqb6K2kAyaN2YwXrcFKZOtrpAeBtfSKA/Xdy+RaZ/YtQNyOkdHk1Fn8Yg=","translations":{"en":{"changelog":"### Changed\n\n- Prefixed localStorage keys with the app id and hardened saved state loading\n- Updated keyboard and touch input handling for modern browsers\n- Replaced link-like game controls with native buttons\n- Removed obsolete JavaScript polyfills\n- Switched the navigation icon to a theme-friendly SVG\n\n### Fixed\n\n- Nextcloud 35 supported\n- Updated the page controller to use modern Nextcloud attributes"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JlbGlzaXVvbC9uZXh0Y2xvdWQtMjA0OC9tYWluLzIwNDgucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"2048","summary":"A Nextcloud app that lets you play 2048.","description":"# 2048\nA Nextcloud app that lets you play 2048."},"fr":{"name":"2048","summary":"Une application Nextcloud qui vous permet de jouer à 2048.","description":"# 2048\nUne application Nextcloud qui vous permet de jouer à 2048."}},"isFeatured":false,"authors":[{"name":"relisiuol","mail":"contact@relisiuol.fr","homepage":"https://relisiuol.fr"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEzCCAvsCAhKTMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMjEwMTAzNTQxWhcNMzUwNTE5MTAzNTQxWjAjMSEwHwYD\nVQQDDBh0d290aG91c2FuZGFuZGZvcnR5ZWlnaHQwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQDHAO3UjgIAz2v5+Lz+nPmhWhL8VlFNOqx4qlcu9ChIV9+r\nNCi6Ld0m9lXU3YG3IuinDxn1THVbOsLGF3wk17hn523omfNdNxo/xzNeJEUjIep5\nRl154wOMEyHCw2qfi99l8ZJRkOc/dk+21/r+OGI3zTO9ackJ/rgSmofr9YI0zLJx\nc04b3gtLmPh5wAhbS2BfUmG6T7wd96zgGW/SpuFN6/R6hBi/sTOwVWO40wk84+wR\nc4ffZaKSzgQ2QdmdzFzM/M/slyQBJWFCjClbiXoValQwC3ONDMlVU1LNGkzOgrFV\nBG/jmQDriywIF05Satxl+FHG7FeUl79ZWd8ZjnKOLGO/vK3dPwWN9q6RrNBuPnL1\ncOEOQirkh1am0F/P1q4kb6hp6nAByx51F4YlYiMiMGhzLBQ75ZObRonpr2BQlOg6\nITUpbkDcQGCiy5keRlJxgByGKfDXGzi8zMakkeEl8KA76p6K6OENG0922klUxcb4\nt1/SOgJJtEkt8RgsZvKgifNfMULrFapsy1IbFNQbZHwk1xoIq/DbKLRggXvc+fP3\nynY7Are7MSutQRtpoigMVo4QAO7Jm0e6e/mUPYTarbfVU/OlHFy3oVRm1V/dEu6k\nhLcnDZpb2hPuwYUJN889KBLrEKQ4xbZhukmoqtUpllDVBpw1ofBY7z/Nt9YCVQID\nAQABMA0GCSqGSIb3DQEBCwUAA4IBAQA/Idt5LNy4S8OC7x+JB8TcMeUtBUf5vtcS\nfanHUUdJIl3ZWATwilmIb/TLdWZIcwQOffgwkTpC0I4XZ5eOV8UoJ/pX/JdEgozj\nEvyNUpZscorr3CBlgowbyP1gtH4pQwn4ydCeD3nGHNP5yIs1Di6cwI/kIIzvWtxN\nMvuA0MgIHd80/yP7XZvSVmV/YWR0s30l2IkwxwKrOclsbA+98C1vP6Asll/wk5yZ\nW/Hg9niSZLDlKkRhYufuF3OM0IhF3Xn2CaXwNriL//QfGZ4JNF1iqVyDS05uLjBm\nsSMyFgdXfEC6teTWsHeauGGTV05dBf4dEy6HohltcLwjXlk9zMhO\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"epubviewer","categories":["files","multimedia","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/devnoname120/epubviewer","website":"https://github.com/devnoname120/epubviewer","created":"2023-08-17T20:09:56.141227Z","lastModified":"2026-10-20T18:51:39.228210Z","releases":[{"version":"1.9.9","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.9/epubviewer-1.9.9.tar.gz","created":"2026-10-13T21:40:26.804685Z","licenses":["agpl"],"lastModified":"2026-10-13T21:40:26.846383Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"l2fWr7SaNHgZ5NVJYXRTBVzWodrFkOClYxhQS0dicIbTniZyy/wivrC2zkK6YicheFraJziaQepGmVei/sGzi7NzbZYOlJ7ODRWb6cTy9ZuE9vLaAiDpk+wo+/d1grY/SQ+z5RHFtErbf+wt1bN0VkHic+zMU6RwlB5BMEkaUh0lFrIOdQJUnY8MTAFhxLZ9WMDF+b5dvaIQPZUJ0DRT0r2SlyzHYDPLKSojV0lz7OTLEvog57omzNdRgcg7UngiNuxdyw8VK84oKG+GukrPE4XPN1E5lXpxAZWZHwk8CF46q1dqTl6CCgFHS6g6cavJcwttyQupCnOZurj3mVOq+j2meDHx/zeKbIOGFdMzzQXqKMakOuPgPNsTXTd2X1+IL4vIkywEAC4RQ9T/1NczDSCexNdVmSvGQuVISbq2+uhoVEhQVvnfGklMQXtyV4Uu1XfaA58FeDPgfU8oshLlrGrxabY19YgWzHe9SPE4H3NTTNfhNhOf87hLTppxD+OnqwUk2mQRtxsLW3y2/KsS4dW1/+qIK40yTRYwGs5UpmpIaF37YzvfnJLRwIAJC/EO5sBNVWI3AWdewUvKORdA28G1/cl0kpbzfd+nP1BoyzD39fanKeyrCxb/fAYYxE0xMI+ezPhx4M/wRnahHbT7dN8JtdeEC/Kl27ZhqGVj5k4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.8","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.8/epubviewer-1.9.8.tar.gz","created":"2026-10-08T18:49:25.906925Z","licenses":["agpl"],"lastModified":"2026-10-08T18:49:25.961257Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"NLO5LUeKGKiQGRdskAfhwCQ2JrGM+NF3vaExT9J0MOq2xC0nb9/gEjpRKWkDhEE0wIkvqOJewO853M3GhNW4h5BarfONsvViZqEHP6djc1oVUL9sQVjtdWk1K5EIfBgZsh53VUxt9Z0z84yl85rEsOWtqoJFzE7zqWuodN9N1KvbwBtPQxGRfh/k1mi+Nj2Fm0jSgdESh9/2diLFO2j7iNzB9KFgwKlzNP28QZoEgYug3HwbUwLTChtdtZ4THbJuJ6oqD+i+MhgWAEhVVhVgbmRZ9FZX0UelZt6Rb8udEt3Q1vcvlGZx9YnVKZr+kPVUpYDxCZH/3cV6Jkqo6nnsVVvB4jRUZ6F8WqsEz9oEVNw24qVRTvnxnaOWiTTNE2/AV4bdaGxk9ylTnSCJ6CKD5R/+ebr1HYByhLWpFQkQPTn1uDmBvh4ShP9kFr6e++vwFC9cf+MsjOM9FMqgJHL+4d3lITM0Bmh/NMcN/BpfoT6uGwyAyu0acJ/E8NQFVovyUgCCfw3lFS5TBXZsPDZr2iO6R8N3z8ZTL1H+zSKxoTKD7j2JLlrYSRUgn5DscNSGKeog3sUIYo3/TXKTTXts0HF0uqOGGCMaSXhUwhOVcmvQIsv1TsPy92rb3pQ9qRKe5HZocQYHhornWnZIAtsjJwv128L7cx33HeJ9I8r/FPQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.7","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.7/epubviewer-1.9.7.tar.gz","created":"2026-07-11T19:31:30.774771Z","licenses":["agpl"],"lastModified":"2026-07-11T19:31:30.859084Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"baLFSrO11ff/QTgxj+h//Lez78OLFT2kof7ytH1ZutOSnwcellrjiqm2Iq9HPuHL6V+00MlH5UGanHDK/+xLt9L2huXGVAXhfF6Qwv+w6wea9xFSwB8tazmBOxjy4LelQxI1ufhRXIe27qX1TYMEYH8KZu/HQnhjxHJazG5Qhr2eN/tvluUBdWHx+L68tbAqEPLAQ0EwU4JvPIr19fDKuhzUAWroS/WN56Qb9jFwN0xkg3N4bi6GJGpJqm5Xn1HzcFBEBTXvrHQXExsuxSeVDj3QOSTfSd6Y5bOelg/8Qay04o5o0tjktsX5VaJtVnHoqCHSQ4xjyElm8ujkoxIC9oeEpDTARkqf6/zSPxBpHJ7fEX8YG18O6aEhi8hBdbhUsfWb4r8224OR3e4FH95nldfqK9FDZgoEkRFIwwN71rDdwGcu976KsWu/PjXrDypQ6Sqlkm4vihRN6lPSYTcZofaCiePKAZdrEXL3RuZ23c56WsF4wYiv29spWDz/mMjYoOUmo9v/RdzenmdF8crFjFXzVngAL7jx+ahBOm8aShsZNiRQ7S459LMrDTJdH2zbNW4zm0L5uF+FVDOxQwtAICYQ7WSw7J3IdnEar5G2W9H0c3IsLhkW2wrIoZU5AaAhqMbW0G9l6zoOZraoVvIB9Y+zT3PqOXHT1teCqib0X0g=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.6","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.6/epubviewer-1.9.6.tar.gz","created":"2026-07-11T11:16:58.846372Z","licenses":["agpl"],"lastModified":"2026-07-11T11:16:58.914582Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Uz1Q2yA8yrIWy/Kh0CHl1UF2GK6A+ZEDkHrFC0BKpFSmSERB1gPHPZwsXz+3TDZDwuKx5vzueLBVsHO+FbK3aNIBCuAfvmf4RtEJBXpyKxReSHX103kM6UZSldNhuQyZF/3ZKLC6ocjkfvaRAjqLD/gNSeEIT4pPvpW/hZ0k90Vz3QmFN1cbLO9ObUErAVDD5CfgnIWIKG8dslGvgd+2GIH+q+fGNB9NxHyeG7ZPwASadZweNLbe48IAMVbs/l3zJ7bz6G/rlhvQ9jnNxex1KI6xqWjCyV1EaTommzmlYOO8ZDP/lVityMWepzaapp/+R0NZy6KPj7VhSRSfegyOGSKuErznbcO8PeWi1lbIc5ZMpXhIUs5u2n4hrAVY11RkKq3aY7u3sYIB5R1wSrCxWVDERBEXCAjN9i3sRUAlIsMFChl6jy8cfoTjIPUaTKcPtPN3IiwUVxCXdHcyuOt7EUzab7I19P+I0R8u928rbTKtvqkINRmWW8DUoGOV0FTHW2+dqXiYy8ZQC90AjgwFa0NhZzvksLg2/Fx0zikf3cy5oFgjdwidWyL9x8twGVsQDpJmarRs/AtcILeVELdw0rhouhN3bI0qkWYU5sj9O7xKIfa1Axoir4XTZFu6kxs+u53LdPKZuirt+pIzlK2yQ3bvxUUnAuuxpinLvPitASA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.5","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.5/epubviewer-1.9.5.tar.gz","created":"2026-07-11T00:09:57.593902Z","licenses":["agpl"],"lastModified":"2026-07-11T00:09:57.664240Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"I/YZxOV/GyfIiLkKidIel6XsHPFdUDTp2dMqXffxh54FqEm6oLUiPKLwIPpgGm6NRnrc6PRrpPh6V4yIvwoDWoWKrb2fPYfPPaDyIqkywcwiLU3pIcCwOkCNvEV6kUR3qhcb1Uk0zeHxIHAKJidebCiIP7r32+ZChGiLyMyPkvGLECB35nGwsMEIT8IeeiirKLD/QEoMSKIPetp0WNQdBsBSfw8KGo5aTZunRbQbQJwzMBb3TVHKJfOFqdEB/7p2Ttln34uhFxpaDlLS/gsSH0WupXe9OxmfJgGEJy9yQU2Cypktvg1Q6p0aDNJeMTxYK90twOhZYacEZ1io8VHpiuYcnmNQL38kzWeEldb9oj972YszI0XI8KSUF0LM25P9GeNWuMkgnKpJhr66FXhN02QsuExAOseud6+ILgfoIG3VtibgZrZF++BY4N87MvUL4XNJFVNq26t8mqSYyCDAOuO4kazL/9uFJW3ztjFa/olIr4cuoaEWMXY6QPonbTqsAbA2eafAkg1xfpLOceUG3SObIgVUUcy53kewbkpoExgOVC8dmlgJY1w5FQWEyf5Zyv0k3j0jLze9t3LkcqqXsbrRvcaOV39IW2k5UevbZi8TVkFiywUcdobVnZcDD+X8yWf2QgbjTbMLgPTtNbqNL9ZIpgix/eKG9eaOXbHucdo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.4","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.4/epubviewer-1.9.4.tar.gz","created":"2026-07-10T22:41:21.144489Z","licenses":["agpl"],"lastModified":"2026-07-10T22:41:21.209415Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"TWKWalWw1nJtt0wGEGF1QI/CLyjAAOruHVrs4cWQmR9bZZrQJCdCGOFGpu/vY5Xiuuz+dYKRWudSYJAU4ThDIbPNQQtS4QbP8rGfyqFol3Tow1KcZcRp65UxCsSawszDRRO/4j3wbjajslsTYkF8L9piBIqanQwzxdZcY5aAADWOja4FsbnHLSCDLkM290qRhjQA/mPItZwJ0XAVeXuhkC+c2g48ycQty4aOE/edIn3HXu83ZgUTrOPtdA9b41LxKzbB2pAXAf1DYbXIjP0OCGXsyA0myYOI0CsvFf7j0ZwzsyBdplwFZmUK8lhlWN4xkCqbwRCSscI8cqfZvMz58ljVkNbUdmVFgBQ61orYitXnLa4jhBtkl0P+nMNNx8hJgemZEhbIe2kpCeeUKZ/D2YO1S/i14+7jDnSbGSUtv//6gwaHMlffTkUdoNOSQN2MinQmYEnkMqmXiqZmXV11N88fYxrMVe0wt5SrZ+gNj27+TCe0OKLZd4vFIdYhL5n2D1mQ5f62Tk4TW7Tl0yuLVOMiD0kdfZsV2t22mszd9FLXLtEumpJZ8likjBnjwPVKTHFARA7oUkMckTpQg9UUvDTFU7qvmpxpEddsl8NoX8uq+ODs2qJELLyH94dPTY686w/j0pP9mgpP5As53LlTB1Z2jQSucmqGUy8ac7r66z8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.3/epubviewer-1.9.3.tar.gz","created":"2026-07-03T23:09:33.637672Z","licenses":["agpl"],"lastModified":"2026-07-03T23:09:33.722071Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"ZZ3Zz2HjzQZL8yOVOad+qrOapSJKh9s8nsqEFvV5QM3fEWVXxrZ9jQMK3VsduHZ9M2WNlcbOSvYbXKiVmvhGE/Tl87ozGIWB7nTU6b0Z0W7YTmvmCf7lkdypmDRA7d68E8r5AF3Txii1UCxb7/XTNaCRXC5SWd++ZUzQemM/GaV/0mAyJXWIkyDzEL3FnS7PDtEyb7Yw8TfiBeF+bv//zChRiGS9G8MoZUEzWTI3JNyNqrBIgWVrVyak0KEmYDXTshZMtkre6V+sY98Bw0NpToZXxEI9IErgqlxTt2rTzG6WD5SNZ8SzWjYv4GY1PE/Wiv/sAaJkBfJBKuLFxbQRDC9xAd5MZ08UdXdv9Cob+nrXy2mPZpJzNvIJQzTrhuIeYMnaRa6DwqLtDL/rvZTkES1b9iFA01xOLwFgdKFujnETE+X89VzDPG85gB9LkSHTwAEB8WH0NfQSFQsTXCsLMunWCm7mPZjCU3Z0qHpD3I6vCuYm0asi4shGD7IyTzerKa37w24Z+c/1NcoZ6cj6Blr/SR0NJ+nlMufxnehsOKaex65MguygDwPUf/H/TLIH5B0Pp7S99E9V7iKHd6hjmn9U0ywW7Rb4OX62g/Wkp3wofFgmupqU+nbROCtLDjdKgC5yCuCYtJC6G1sks6TU/gSx+yAz7OkcetayToGYlWM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.16","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.16/epubviewer-1.9.16.tar.gz","created":"2026-10-20T18:51:39.218491Z","licenses":["agpl"],"lastModified":"2026-10-20T18:51:39.262233Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"IDIz8cWW08GVdcLwhmw/x89zfG0Dr5TBMBGsYALxDakM6wt4+lUx4pQgHuGiK7cEN+AikSQ7um780nk4Ueam/tiyiv6ZigO7vOdx1z3jIUDRtHA0wbJDCb1fIuVITWqbv0ubkGLZBoSS710YGcXHsJegC4i5eKjA8FPGvssjiKopG+vVwe5TyvOtl3YoB56U9+b8VWhjsapnxvpI6phrZhk7FWHBHxBzGYN9AdSm5W533u3vH8bNwxiDYQ11cTyVsuOqp2If2/Jv8KwhLCSUBzx6mvh69zK5f0bGjDq8Jweau4dz+NieOrp/N4E4AmqB2cdj9okXQa25pv7kGVkBgw9WNYg+zQkhcGpuWwbQDE/C7rP3E/0lZjiUY46sZt5K0g/mto+3Msto8qe8+Zsj1c8nohoQddGSFKfyHcU9VJFioyDIbCutUxXGlKH0+3B9B9Db3Ye4aOPYeE3j/JtsX4weTq/h6XuTN0TBd+x99xqMp3RBt0Qpgw11IsUWHIYLsMiOTNR/HHy+xiKygnONwH29gxoSISGun/BzzmNjLLZYbi3uxCqWo9B6FtgQZfmxWoILo5IoQSDeSkukU3PLifeQtliBIl7g2bcFqd/j3zKUQme8k3pZasdLF2VRjTsZ7au0TdmGMSAFjj7PanowCujGMU7T4YWkmyGGcGEs7yI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.15","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.15/epubviewer-1.9.15.tar.gz","created":"2026-10-17T08:44:57.534803Z","licenses":["agpl"],"lastModified":"2026-10-17T08:44:57.593700Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"XTotKHtbgzWNU13nNREj2Q2T7PJv3aBVCp9GrY6q+jjhEE9dA6a9VQ15Ce6evOc0CrnLvjjrY5IOeXOHVLHz5N/Wlrm5FhRbiqCOZbxdUJKS1bx28Ofhx2LJYUdkKghBeZcXyF3Yzm24KJO1lKNd/KbI3Ma4/sTAsvBz/llfsFzZwiAwkKLaSoZkzCRINy8r+MBqr0+BcBJ9eRFoVsdZnqvZoFy88zJi/OUD+X7n01LqzIn6sGR8FzgOM4O16XKo3nP5IMspEWBH1E8BlFcRFuSdlGNaBUojKhjvzv3S21N4YeYTjYk75YPo4sH+01M+e9jVFX/Vq06f+cgIQ3Rw9vB8WdDhp+iVYCTMYuXrR3kykNNk5Aix1lMRK13qchlqj+GFNn87+kkLtuL0D9UZr+FbbXhorceX97iP34e2ADA0La8ZfKDojggbhWzcl5hmw6vRrh8k5njHhWxY5+w165gSSHil2djp4HpdDiZdhXOO8j8HGKy+T5EF8esKbzriNVD6kaqSvvvlf1Z5CyZJvQHak9t4zsOK1mnHleiYFl99l5ULHFrPDktzfZFAXNeC6VASJ6qFYlPSi7A72p0nWcRrXFogYDRB166eMx1ewq4w/02GiSLzeFIksHI3lHts1L4JhhwY6pAUtHgtvZVKvSyu4Lx9br5xPeRtXCchg+0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.14","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.14/epubviewer-1.9.14.tar.gz","created":"2026-10-17T00:12:16.864292Z","licenses":["agpl"],"lastModified":"2026-10-17T00:12:16.905829Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"he3qUhxCu/M0JiSzUqHbdbJAy4/nhHfJLgALtxfAx6BVD2NPdeSHnhfEKQTJo9+B0oD21/iydFJY9jRQ/7glIdw6lmr3Zx5TFJ3qA9FjrbdKaTmBfqhzLt9FEE6YigV7j/91cc9ybeRRhzZPSpCrjyK+JLWkQV6rUJyIs5MnZcHketDegfEdfqU6WgTIlmKn/75h/qQISQWeyNSBWWWPJ1/EtHyyGu9stHnzVaKN6g3fkh828gixMZJMwBbTKEf56wYq4F5kgL/FKe0MRx9tLnod+t/yfw3HaKBzlPvu6iNYK0c8GmQhb+eeYNcfitc3/KpPUoAE2QMsbJ+0yr5m1wHUcfvhLSRBG/iUaqOfoeaHHihEQNwktilHLo/BCcviEaipTv/fYINJpOf/0sIddDm/wVZlQOm6G1VNCqifsAQuTQLzBjgpiyCZmHiP9Wnsh1zjrhwia8rtObZEg062gQfdOB+yO+Sn0NHZVtvMNPqGFZTVVJYFpMiev9TTsVZCA8pOj1z+iU7ZnDhuEqTaxa97wGnL3vIc4Gc5f07WlIW3VPHQeTZOaKYJdCYBRnAbxZNAyT24N+mQWW6dwl4rLoUXrbuSP56h9XPSGqX7sv81DO1cvzEk+aKL1jp7gzhAHzTK5G2HSDoqvFrgIxf9xivMkwte7VflOttyMbtv0sc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.13","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.13/epubviewer-1.9.13.tar.gz","created":"2026-10-16T19:36:36.115354Z","licenses":["agpl"],"lastModified":"2026-10-16T19:36:36.174669Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"ScXbqq1NUM3YU0sXFVsBBJG7Aqpzjiedd7JRnU8ajxkXHNao2FFMUhyhN52mD94YnJXiHP5zYuSKqoaDZU7eEl4CzM4s4ACULlX7FCWQJ5SEnz2NIRdfwIMVnP9Wr+f1NnS7VKTkYRGOEXQejxMAQbVeqa9j+8ATCT6A/MGaLH25vkG5bxOXtbZ5GSMxtUBu0HNh2f74um+LaSrR6KCZbyVQiRAej3RvY/YdgOE00r+MiITPDctobKN9pNnrSDgcsBAUpbe5elyoIQdk0cS4G6KRMfDWrPlK3BVYOimWEUfTJpVkFjpPLJVD/Qj//ugFwQZnRcnpoKwYw1Kmb2uhyJgM8r4MgQce9DBPfSn2DPVVaoH+65KuSXmUVjvvN/nxwrsz5mHMm5D1CrCOhcNmcMJlB4NN28Aun6d4aJ7VbY8cE4n/Hatd/coWJUd1CKqYetkWthy5MqlwISbu4xHc17GLSSfIIHiy6NOGTOrs4afl0reyG1cMWSarmZp7vg8fhHcqdxa7UwvnMa+tDo6b0gzLnhOs1K//Xc+Oc6Q99LyTNYbzeKXHvKwXFEi8EQRu6MqlcfLaUu2FXXYrn0EHw37Y2iIHCfqvkHRNAuWZjBamTJQ6RbX2am4JIC/PMjfs9D7pu1dyG2dRnXMDVkGnv7Aa6ofDRqIYWM85KdTJMjI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.12","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.12/epubviewer-1.9.12.tar.gz","created":"2026-10-16T00:08:25.444779Z","licenses":["agpl"],"lastModified":"2026-10-16T00:08:25.489842Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"j0aRsgSeMl+R7IGp62RKzEDEuO7e6prP8ozwcA8P4qZAH4cTsLD+EFPnyFrTQZgEIGrtOiyhOVaP2GfNZVP4hYzb4q3VqLE0A8SmprHXyUx9yhydpKYTt/gxIyNCZTzzGJRXBw+xDLcaeIJz2l/s5bujHqLzcTCTwOswmv71NyC0AvXaD8rDPgLByQIFKRIfB+6mYsT/PXWo8p9K3UO2Px1UPE7Pl4EKNw8j31PGgu22Tea5w5bUWD9D5vYK9j3y8UEd2h3QQ5/Vih23ZiEOXZRXnPcg5GUMZCQsK4aq7qAWd9K0DJE5d0ZM8RlyO9OKURe8yJE6ky7FLEQPIHymxVS5w04qxLek5kPWw+tyk2GKPanJZ+RNMKUKqS5AQV3FlxPkI+hBfzZTIGt221eSMK2r6E5akAKrOBqfWxc3HR0b9oLc1Y3HeDdezFHcFvX6aXNuZytwT3t6/l+dMmI1HOk4PlVhau5SFu2brn+g8WJFl1Y5QQecaEZjKqHYR8B2ITTlsG+T7unokGsPNAcw4vEkfVbu9n73TGdz/fSk1qpbdxsRzffdLmSFepZvqSuOVmFaKjSL/E/2cDsYmLo7/8XfHzhXPeBdHzVprYCimOfV0wzXfFgdvHSTINY1FXD5zHW7/MOBtZ7g699U9LEY9UVW6iUimnTHbG/GwUBlf5U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.11","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.11/epubviewer-1.9.11.tar.gz","created":"2026-10-15T08:52:56.828554Z","licenses":["agpl"],"lastModified":"2026-10-15T08:52:56.876126Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"JxdthpQR6gQzZqfwUqtDBD6haiN++M4i4aJI1eMcUKWqD4hBRo7wKmPh/nmaKQ7itjwqpd8Ja5mhlg5KzcwwMvADhxK4lp2RAd1MtfhmMpaQh09VztrGTVOEz0zeSoh4RrBEfL2TsKXzVoh5SvJGyf2CNrAGtg0Voo/Po/d2CB/DzhliJqQbx45HMuvRo9zttXlJ3HOjFNRiF+hXHRtArv68m+OkC4ftztqgpTug4O7Eky+ALU00Btc23anSzx3sTkJk5b9n6Q/g9Hi8rwpJDqm8wiYe/MPwxeZA7GrtlFqU8T3ef16S9h9627NByJ3QG+OK6uf+g8ImCDtsGU0PVf8cUzWmhN3FOkjboIe2qJhxVr6I1OWJ5HIlyHgXR6m+c/IuqddOp6GXF41n4D9BOLdKS1YYluLErtwXWMme7tyy6HjZ/8ZZ7t+0ffykSPyr9vXGMhHS8RMT5qLf6PW9iu62dt9ARoBF3ADS2uChHIFrG4E03zTFqb3HENlmWBKxeTRg/o2k0z867uyfYeVtoSFLTJUpLzFkgVL7GGSgbMevXSdt80pA/cqoGgwVkABNBnu0B62tZUxGWzhdY1UCm4hOSkZ9z+jlKznnVF6dB5EjvTkuauAtaqgOhppDNoA+8LZvU45VIw2FzUW5sC4TtHqJ/obigjt+wOwzNrbFSN0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.10","phpExtensions":[{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/epubviewer/releases/download/1.9.10/epubviewer-1.9.10.tar.gz","created":"2026-10-13T23:58:18.177578Z","licenses":["agpl"],"lastModified":"2026-10-13T23:58:18.216619Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"kYMgkaNj2v+9A+hDl0ohd5g4hx5jlRNDhXrKaiqBkglRUmnkUu3E/HbRuqSiV0NmCvkQx3MrI4SeLmjOsKClziA9QOD3RppEjlTd9VwEB8fudyeZ0CQP1IKDQkftza6i2/2a0eC1YNC157/jJigu5rOR/7TnYhx4rirH3MLUrAs5SGj3WjKB59usvyr7VS61KAdMdZKUvrTaLScGJwIZ5J43P2rfFxwFl4949pOHyuLe9x1A/1hGf/LoCqiquIo8B01k9XBJtVsVLCLjz6JaVvbZvYMvsE2909JOTO5/5vhDsk3ZMl6VaHLAlr9/KNX7S4MErmE/BCRPezDSUf6vIJrhEWMULstYVNfUKdWz0/BtkB/Eyi30/YPLGlzJVt0LhZVQX9AdMIQy8oFSZ34KEoSoAG9536xTgboVb23a4cgufa4yEOB3CCvA1ubjXdB7N/skMJtzHYJnnsfKJFf6LhHXYX49p6V0B/9VjoGpZ0mj0G6m8shWa3DQgiZoW0A5XSn9G3ftGm2rRGbyuqGaUQn1wnZHl6LLRQfSe//eQIkq6OWmGs6WrwTDAFsDFxyogF+t5SPgPmWnCXLhBsUBh96Zao7gEoeCWex1KaAkr+S8tnydyXJObU1o52WOhPPUsXlvjRNjvoCT2OtrGx1lpoXMpp/dBA8ZkObtGdiL3HY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2VwdWJ2aWV3ZXItMS5wbmc_cmF3PXRydWUKICAgIA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2VwdWJ2aWV3ZXItMy5wbmc_cmF3PXRydWUKICAgIA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2VwdWJ2aWV3ZXJfUERGXzAwNS5wbmc_cmF3PXRydWUKICAgIA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL2VwdWJ2aWV3ZXJfUERGXzAwNi5wbmc_cmF3PXRydWUKICAgIA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL3Bob3RvXzIwMTctMDMtMTVfMTctMjItMDAuanBnP3Jhdz10cnVlCiAgICA=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2Rldm5vbmFtZTEyMC9lcHVidmlld2VyL2Jsb2IvbWFzdGVyL3NjcmVlbnNob3RzL3Bob3RvXzIwMTctMDMtMTVfMTctMjItMDIuanBnP3Jhdz10cnVlCiAgICA=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"EPUB Viewer","summary":"Ebook viewer that supports EPUB/CBZ/PDF","description":"# EPUB Viewer\nEPUB Viewer is an ebook reader based on pure javascript renderers. It works for publications formatted according to the following standards:\n\n - [EPUB]\n - [PDF]\n - [CBR and CBZ] ('comics')\n\nEPUB files are displayed using the futurepress [epub.js] renderer to provide near-native looks, especially when used full-screen. Turn pages by pressing the left/right hand side of the screen/window or using the cursor keys (if you have those), use the sidebar to browse through chapters or bookmarks and add annotations.\n\nPDF is handled by Mozilla's [pdf.js] renderer in combination with a custom reader app to enable side-by-side display, batch search and more. Controls are like those used in the Epub renderer with a few exceptions, e.g. night mode has not been implemented yet.\n\nCBR and CBZ are supported using a custom renderer inspired by [balaclark]'s work. As with Epub, books can be navigated using the keyboard as well as mouse or touch navigation. Reader generates a visual index of all pages, show in the sidebar (thumbnail generation can be disabled for low-memory and/or -speed devices). As CBx files are often of varying quality, a set of image enhancement filters are provided.\n\nComic pages may use static JPEG, PNG, GIF, or WebP images. PDF and comic documents are limited to 1,000 pages. Animated images and TIFF pages are not supported.\n\nNextcloud file thumbnails use the first naturally ordered supported image in CBZ archives. CBR thumbnails are enabled when the optional PHP `rar` extension is installed. Unsupported, encrypted, multi-volume, malformed, or over-limit archives retain Nextcloud's generic file icon.\n\nSee [README] for more exhaustive information on features and potential misfeatures of this app.\n\n   [epub.js]: https://github.com/futurepress/epub.js\n   [EPUB]: http://idpf.org/epub\n   [CBR and CBZ]: https://wiki.mobileread.com/wiki/CBR_and_CBZ\n   [balaclark]: https://github.com/balaclark/HTML5-Comic-Book-Reader\n   [PDF]: https://en.wikipedia.org/wiki/Portable_Document_Format\n   [pdf.js]: https://github.com/mozilla/pdf.js\n   [README]: https://github.com/devnoname120/epubviewer#readme"}},"isFeatured":false,"authors":[{"name":"devnoname120","mail":"devnoname120@gmail.com","homepage":"https://github.com/devnoname120"}],"ratingRecent":0.5,"ratingOverall":0.8571428571428571,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhImMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwODE0MTA1OTQ2WhcNMzMxMTE5MTA1OTQ2WjAVMRMwEQYD\nVQQDDAplcHVidmlld2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nnP3ds4dSRwkSzrK16qtE1f9egfX14jXclELN4UGN5q5G7xTAqx5EAACHhn7ce9sB\nMZpxrV10ht8E56s43UWewahHAnwAk+lI8amDyhBwFo+gytNjNMlMNh3tA0h0FCQz\nDDfi+6SBeHjqDBfaJnYZJlAW5JKHQH0Rq4CyHrfF1V/6VUCwiFcbY+sNqvgYfaj9\nMIt1AHX/M/xORyfPvlH3ZSCls716u/DFFEGq5grqk9vkmYAa6DLzBJzbWYCCeRSD\n8pDDQtrqkbCeM/m7sww6soJK72N5jpZ3nceS9Zd6aUwLhcFxVfIDBV1bx3oUK+hh\nl5P+gJhPcYB/BAmBKKHRgCPCJPW8UfI76K0c8ZCiJWHAKyZGistLDhlOW5RLKpAy\nPuEJysTcGvY6khbn8AKFkLxiBJllT6rM+Kb01zaCdHyyGFfzn6SYc8NPvo69tl0E\nemTNn62+GO/LLIYwGfoHRUTQzYkR7qcuztowkEa2UWpJsqCCLTeuv37dVB13ZC3i\nSyQeiF5i7jKINqHq62QJ+7axvpdHP5V3i6l9hTnzni3sVyR2IE/zKxu8xOm2EmFr\nM2bMCI6NdXikdgntc0mSzeMR3MBctGQOUG8IzPmG5o1U5H5dir50RhiGQi0irYlY\nmVljl4shve1F20wjHtePqN8op/eUFQQZVPHfN44nH9sCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAg77Bx+eN+mbHUw2jah4izxEF9E6hQ/IBcV1duxgo2BAfEVrOULPT\nxFCt3WfDGvWMKgEACgtHCtqYPQa5WGBdP7x6EtVs9B0kxjEIgznlCGBcvtNHZJct\nlvC87kHtwi4wjnuEHVehDxSpcz/chMrTaFPvRz90tiPllnGGPAfP6DlmAXewJK7B\nR0HgN8VRKhGUPLCPkYwXjgTSLQMOAq17jshkVYJhHbuSXg2jlnDQaE+HMjCOa6R4\n0qV5+O/KV3g2JGNzMeP+AFQzL3m6gFxmkhtytuTZLciCdkj+C9fBMOa8Hvjsq4/d\nBC0a9RkcH0a5W7TZB2DE0rgAjmAPM//NzQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"worktime","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cpcMomentum/worktime/issues","website":"","created":"2026-02-23T20:48:12.071784Z","lastModified":"2026-09-30T21:46:34.188975Z","releases":[{"version":"0.24.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/worktime/releases/download/v0.24.1/worktime-v0.24.1.tar.gz","created":"2026-09-30T21:46:34.181924Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T21:46:34.230983Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Ox92mZpo/h7W7LQRuMvJf9mD/RxAMJ4dSJ5gjuzpR5CFinTVMc+iujww+jyVejl1epLU+GOvZXE+pAPLerJ5dYzA/RJ01WQnNXqMs0WQkyT7ls4MDCSeZPp76meJ3E78xpdz6OxVNC1T5rC95byFmmlJle3k/MWRMjHyHmxJWRCGAy8pAAX/DpeIbAsTjnIiAl2J29bpiLwYNaDp8kWv6ghP4p8AUAKtcmrU67FkSlnXnDsx1Z2eL/GwUblBvG0WbSVxmd+apr4u9VV6ZLlIRNqML8iUfINq+sVNwNgUxnhLMnSCGiw5VR/EmDSw8nOpWNtXGNNb7A+ciwpGS788xw==","translations":{"en":{"changelog":"### Added\n- **Zeiterfassung springt zu „Heute\" (#754)**: Beim Öffnen des aktuellen Monats scrollt die Listenansicht automatisch zum heutigen Tag, mit zwei Vortagen darüber. Ein neuer Knopf „Heute\" neben der Monatsnavigation bringt aus jedem Monat zurück zum heutigen Tag.\n\n### Fixed\n- **Stempeluhr bucht nicht mehr 1 bis 2 Stunden zu früh (#757)**: Ohne in Nextcloud gespeicherte Zeitzone (z. B. nach Anmeldung per SSO oder nur über die App) rechnete WorkTime Stempelzeiten und den Tag „heute“ in UTC. Die Zeitzone wird jetzt an einer zentralen Stelle bestimmt: Nutzer-Einstellung, sonst Zeitzone des Browsers (wird einmalig gespeichert), sonst die neue Einstellung **Zeitzone** unter Einstellungen › Firmendaten, sonst die Server-Standardzeitzone, sonst Europe/Berlin. Bereits falsch gebuchte Einträge werden nicht automatisch korrigiert.\n- **Liste bleibt nach dem Speichern an ihrer Position (#754)**: Nach dem Anlegen, Bearbeiten oder Löschen eines Eintrags, nach dem Stempeln und nach dem Einreichen sprang die Liste bisher an den Monatsanfang zurück. Die Scrollposition bleibt jetzt erhalten.\n- **Mitarbeiter-Dialog nicht mehr rechts abgeschnitten (#765)**: Bundesland, Vorgesetzter und Abteilung standen in einer Zeile und liefen über den rechten Rand des Dialogs. Bundesland steht jetzt allein, Vorgesetzter und Abteilung teilen sich eine Zeile.\n- **Gäste und deaktivierte Konten nicht mehr zur Auswahl (#766)**: Beim Anlegen eines Mitarbeiters bietet die Liste „Nextcloud-Benutzer“ keine Gastkonten (Gäste-App) und keine deaktivierten Konten mehr an. Bestehende Mitarbeiter sind nicht betroffen.\n- **Abwesenheiten im nächsten Jahr ansehen (#762)**: Der Jahreswähler unter „Abwesenheiten“ lässt sich jetzt bis ins Folgejahr blättern, wie in der Zeiterfassung. Bisher ließen sich Abwesenheiten für das nächste Jahr zwar anlegen, aber nicht ansehen.\n- **Abwesenheit auf einen Tag kürzen (#761)**: Wurde eine mehrtägige Abwesenheit beim Bearbeiten auf einen Tag gekürzt, zeigte die Vorschau „0 Tage“ und Speichern war gesperrt. Ursache: Das gespeicherte Datum wurde als UTC-Mitternacht gelesen, das neu gewählte Ende als lokale Mitternacht.\n- **Vorbelegung „Eintrag hinzufügen“ ohne Ende vor dem Beginn (#763)**: Reicht ein Eintrag von heute über die aktuelle Uhrzeit hinaus, bleibt das vorgeschlagene Ende jetzt leer. Bisher wurde die aktuelle Uhrzeit vorgeschlagen, die vor dem Beginn lag, und das Formular hätte daraus einen fast 24-stündigen Eintrag über Mitternacht gemacht."}},"signatureDigest":"sha512"},{"version":"0.24.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/worktime/releases/download/v0.24.0/worktime-v0.24.0.tar.gz","created":"2026-09-28T14:24:32.935005Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:24:32.982977Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"B1y/ot+5IK11KE251Mpw6j9W7T+TPLZqsOkVlDeh7fPk9LpP8eBguxzw/CCslBoNBvsoH4Y+wqcMom5BaF4/ySp76CLSWwz3jehGQGATa5NYhO38+R7RC1/YVUBGdlbqOlMkBzYVpE7Clji6rKBYvIrZrTFR57WaGa1fULyJDoDsC7W5VnT3hU4Al8MrcfT7mwCi8RyZLLZ6PgrS1pk8y5ettDYfqPQ0WVvR/T44VErTSkOd6OOhk82ZE1TwC8dNrcUSVox818fK4qsV5XTuqfGSZzQxvsY4iTEjj5e18oHv+s7s2fk5VgEA/wCkrb5URBuiDDUXgMQcHTCI6CIzcw==","translations":{"en":{"changelog":"### Added\n- **Menüeintrag „Neuerungen\" (#747)**: Unten in der Navigation öffnet „Neuerungen\" jederzeit das „Was ist neu?\"-Fenster mit allen bisherigen Punkten, nach Version gruppiert (neueste zuerst). Wer das Fenster nach einem Update verpasst oder weggeklickt hat, kann so nachlesen. Nachlesen quittiert nichts; das automatische Fenster nach einem Update bleibt unverändert.\n- **Tagessoll für heute über die API (#739)**: `/employees/me` liefert zusätzlich `todayTargetMinutes`, das Soll des heutigen Tages nach dem tatsächlichen Wochentagsmuster des Arbeitszeitprofils (an einem freien Tag 0). Der Mobile-Client rechnet damit nicht mehr selbst mit dem Wochendurchschnitt, der bei ungleich verteilten Wochen falsch war.\n\n### Changed\n- **Kompatibilität mit Nextcloud 35 (#727)**: `max-version` von 34 auf 35 gehoben. Die Unit-Suite läuft gegen die `nextcloud/ocp`-Stubs von NC 35 (PHP 8.4/8.5) durch und die App wurde auf einer echten `nextcloud:35`-Instanz gegengeprüft (Aktivierung, Tabellen, Oberfläche).\n- **Mindestversion auf Nextcloud 33 gehoben (nc-app-tooling#15)**: `min-version` von 32 auf 33 angehoben (`max-version` bleibt 35). Ohne `<database>`-Deklaration legte NC bei min-version 32 die scharfen Oracle-11-Namensgrenzen (30/27/22 Zeichen) an; seit NC 33 gilt stattdessen eine einheitliche Grenze von 63 Zeichen. Oracle bleibt installierbar. Nutzerinnen und Nutzer auf NC 32 erhalten kein Update mehr.\n- **Abhängigkeiten aktualisiert**: PDF-Bibliothek TCPDF 6.11.4 (Monatsberichte), `@nextcloud/vue` 8.41.0, `@nextcloud/router` 3.2.0, webpack 5.111.1 sowie Entwicklungswerkzeuge (nc-app-tooling 1.17.0 mit zentraler Prüfung der Was-ist-neu-Datei, gemeinsame CI-Action für die getesteten Nextcloud-Versionen).\n\n### Fixed\n- **Gespeicherte Pause beim Bearbeiten nicht mehr überschrieben (#729)**: Beim Öffnen eines bestehenden Eintrags zum Bearbeiten wurde die gespeicherte Pause bisher sofort durch den automatischen Vorschlag (gesetzliche Mindestpause bzw. persönliche Standard-Pause) ersetzt. Der Vorschlag wird jetzt nur noch beim Neuanlegen eines Eintrags berechnet; beim Bearbeiten bleibt der gespeicherte Wert erhalten, bis Beginn oder Ende manuell geändert werden."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC10aW1lLXRyYWNraW5nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC10aW1lLXRyYWNraW5nLXllYXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC1wcm9qZWN0LWV2YWx1YXRpb24ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC1hYnNlbmNlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC1hcHByb3ZhbC13b3JrZmxvdy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC10ZWFtLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC1hdWRpdC1sb2cucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3dvcmt0aW1lL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC1zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"WorkTime","summary":"Arbeitszeiterfassung für Nextcloud","description":"# WorkTime - Arbeitszeiterfassung für Nextcloud\n\nGesetzeskonforme Arbeitszeiterfassung für kleine Unternehmen in Deutschland.\n\n## Erfassung & Berechnung\n\n- **Zeiterfassung** mit Start, Ende und Pause\n- **Automatische Pausenberechnung** nach §4 ArbZG\n- **Überstundenkonto** mit Soll/Ist-Vergleich und Eintrittsdatum-Berücksichtigung\n- **Projektbezogene Erfassung** für bessere Auswertung\n- **Deutsche Feiertage** automatisch nach Bundesland\n\n## Urlaub & Abwesenheiten\n\n- **Urlaubsverwaltung** mit Quoten-Validierung und Resturlaub-Anzeige\n- **Abwesenheiten**: Urlaub, Krankheit, Sonderurlaub, Freizeitausgleich\n- **Jahresübertrag** für Überstunden und Resturlaub vom Vorjahr — automatisch und manuell korrigierbar\n\n## Reporting & Team\n\n- **Monatsübersicht** mit PDF-Export\n- **Team-Übersicht** für Vorgesetzte und HR-Manager\n- **Jahresübersicht** mit allen Mitarbeitern und Übertragswerten\n- **Audit-Log** für vollständiges Änderungsprotokoll (Admin/HR)\n\n## Workflow & Genehmigung\n\n- **Rollenbasierte Berechtigungen** (Admin, HR-Manager, Supervisor, Employee)\n- **Genehmigungsworkflow** für Abwesenheiten mit eingebetteter Zeitanzeige\n- **Kontextuelle Hilfe** mit Info-Icons an allen relevanten Stellen\n\n## Internationalisierung\n\n- **Mehrsprachig**: Deutsch und Englisch\n\nBehalten Sie den Überblick über Arbeitszeiten, Überstunden und Urlaub."}},"isFeatured":false,"authors":[{"name":"Axel Deffner","mail":"axel.deffner@cpcmomentum.com","homepage":"https://github.com/cpcMomentum"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDAzCCAesCAhLvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjA2MTgwNzAyWhcNMzYwNTE0MTgwNzAyWjATMREwDwYD\nVQQDDAh3b3JrdGltZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL/b\n9iUR/hnnlbkchImfamKpEfnMyIiM6Ewe58W3JrJGA6pycVkamLyeUEcaRMbaZmbK\n5oosZ8g/mVjLSZcAbM8F2rV4pOsSD6ToJ7S419gCHYBMVsm9HDdYbej65DXXqOJn\nVV4xfdj8KSaxsgH/1aVWvKBil8sjLiBUEIHdOCytY3EEzISn8p+Ma5cUC+1Bf9kh\nffY5i0YvZ38R8cdI0SeraLmHBpUy4m91P7Kg03uZspiWwYZBupTZxhlBAawKU/Za\nxcViP7+JY8p4lll0io1Q1ViXPnFcj8C9uvnU43k13wRbAWqYV8pUEQcKKbA60Gk/\nZB+Z4b1l+5V0Sp1a0NUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAgOYI54EXGsPe\n3aXvprtL4CvR33fEBJguelgz4pqrxSQRgnxJySB6Fo+ocj7wxQt0//sw4bds60cH\n82rC6uF23lA7GE0/sdHQPrc9UW/C93oU5pgC54CKWUMqUBgWiBjTe4tStf5gE0C1\n5Jad2eMKpEnNO8x7v+OnxOzJYhUZvbN0E3UM5NVjzcZV/lsVQxnmhtXkd4dJ6twy\n+QAQlmifHcw4beyvF1A4e1Hwcc4/b9O64RdI/oZ/ehU41uP5zdF61B6A6cF+IbS+\nUdTPcyqRqEsFQRw52JpSdkKnFtG76Dg8rD0o5PyrmKOtHMnssPdJicehEoFe144e\nOdhkeyiR8w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"agora","categories":["organization","social","tools"],"userDocs":"","adminDocs":"https://github.com/vinimoz/agora/blob/master/README.md","developerDocs":"","issueTracker":"https://github.com/vinimoz/agora/issues","website":"https://github.com/vinimoz/agora","created":"2025-09-19T01:52:43.347874Z","lastModified":"2026-10-13T06:34:22.649345Z","releases":[{"version":"1.7.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.9/agora.tar.gz","created":"2026-09-16T05:34:49.546787Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T05:34:49.635324Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"avmNEbmuRRjrhAKTzkOtUw1RX8PR998fp+Mp6F28GmZhYDhSDzj1slmmwxUiJRcb\nZjpKhksXOqk9dWlQuC+r9MH3TI60pyAUhn0qi7CSTGxYSYteeckbaJh1ugDNGRK9\nweBCLCtnSLPvMDDOq2zTmlZj68iLfN9n/Gna7Q7Gjw/E4VQ9CdkKv+i1KfnbVSsw\nLUFhiGfq3eF5T9jzU8WtBb/9ctfw4KMfCSO8D/V+nomqCGWF3cB5sOTYfHjsBMOV\nQVBp9gLWJcDV+5wml25YaB/S34e7TZcwyA0BKf9lSQ38Nr2XNiw5XQpVF0Jquzs+\nL6XAqNM+LYKJX1Z5Ca5MFulcfNeslo2HShafyw+xfDP+QOu9uDEgmH9FESo90Lq3\nyGwzH6MM75nbIy5oMFDnvnm5w8IKWBn3acLQIiIxomXukn66CTHycJjiHUjmhXYE\ndJA+V6VGLWVXVYwpZbQHAI354rSktaWAISTm2wlBNf312bfM9yTuxaG2S5KFxGJl\nF5E/dYzdYNQzD6Ev9L0UUFxMRQeOgbL2UM5CO3+Y1pB085RQjNBTtb0yskFs9wTN\nqnuxHbl1VwkAfR7VZ2kXm7cEW7j//Q6R5o7L6VmXWI/y+c3LGLtDzZ8cQyoHrRsj\niLw63hgWdCcVatBQouMTie8+DccaUSOI8biT26I0Jkc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.14/agora.tar.gz","created":"2026-10-13T06:34:22.628847Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T06:34:22.681548Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"ohCnw7Z+YPQ9GFvjjZV/4ccRclfCNSP72YW2vslUopufvzqOHJv/40d1tkzj1azM\n7XvlkZHJ5fC73rBubZvpklpVOqjyh+NIAqIqoTJzDKfxy0vW9SQH0fELRow7ynwV\nuSsmEcph+RtoJPWsNu4mo6PGQUtCmIKd/fTDhLVRiawmdRmmZGp5Kb6iFZYmswjB\nwcI+3R78c+3vH5S/lK1OI79RabCXrjhuOaIhTUX1FLUprilrz+OwF/q0AaW1n3wQ\nEymASrMpWxvKs9h4pM//txFz3kyYaXyC5TGU6opDytMC8az5THodzkIw3KQGUgJW\npCMM/Dkfpm4ggYPePqKOUs4rjtEO6aCqr9zxdYYyFIE0HdMZzI+AOr20cEltqpwc\n1iJR0l1uuKvtQJaOsgLP+8Z8bf1oAUSaj9A7hk8SlNi1RQn1smQxHHsw38mG7f9a\nVIHRx9Karaii2iB9zoBjo6uC6iY0RX6Z2H1PXgMWpDs+eRsD8aBSWbtgYBY2g0o5\nd2NyvEC8rc3cTAqCvbGrfXyfr4IwNJW/Ac1N7GRfk/BqSzsyJsiHexScCAdo+K1R\nbaDjQUBkXS1Xduoy8kIu6uOm4iWuf0wr8qOBlu0+LhDGTLVu68dzYjoGDzYQ1uZE\n06O/OA0fOsTrjMckjTaQlUe3/eEoGXVu+gQY4xdSyXI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.13/agora.tar.gz","created":"2026-10-05T18:04:29.223731Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T18:04:29.278862Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"fuUQgIencxI05/7svviE8X4vWjgs53S5x8jiPWOahhpxDcxD0MYTzlbTRORsjj1q\nkK9WT1SPNDSrfqDKPX4IjOkS2Fq/ky46p/Nfv5WYT6ABygdqOmyg77UP9KF87J6y\nRQvNy0r7bxe9/bCi4G8xmDaE5MwUFVGV7t0KwocHgDpOhLXlfYN7ZjgATlO5Vu+v\n42eADXeOpfesB5bGvdFBzEUMvGA+M0Frdp8GXHD4YToCGX006V++9H6160OCG85E\n03sQH9LwSt+yRbYz62ueHIJtx01NGXIoq2NhSTEnu293NySlRlNIYHKDh0p/VsLJ\nPnHpIPzWTA38vEKI8C5z1m/scpHiLttr9wB6ggilcydUtY9fzDAlLzT+73NYj/zK\ndBU3DkGSND4Omsqmy4oInrxhNgpxyzoRW7HE6a3NP0x1XPwryo5DhbTHVh9ohFmT\nc7AtwS+WMX4rdaWnQ72rvtaGrVtf6Qf+vDe1fvxq+JS09gFhVVVy2w0ZgV7RwCLh\nZoWCPjsEH/iKCMqUgyAIAXmqDnNpnpLgUXvxAeJoezVM844rO4paO1IQH3k8N5OY\n0ty/Pbd45SFJBrekj1XtXJAw8C+R+35dDmFhGd6klb0rGTflnET4pKOvqRYkSbMb\nr16VHd3UhmyoKGFPmRSLn7g98jqYbcSHdSRtW2RGL3c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.12/agora.tar.gz","created":"2026-09-21T05:24:21.674533Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T05:24:21.745562Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"YLMJfEL/XyZjAz9Djrsh/8Ffp8Ej9o+x4sHgBmzUy5bPrnv5kBCRvuAO0N0nr2F7\nhjf1P2KTbRc6lA8Jn9EtOHnDmLv0q52eDDKDh746S0N4waxHW3zdFfF9Bae97kgS\nxyC4ko4pHEfJBUFG0Qpkek0sLjzhYfTdUN+DFYdU+mavPAQyU9hRFwwg1nOWXPWF\nt4mLfiRRTI0rr7I/VdagzNCzupzDwf+TXLN9LwaD4wlr9enoF9dq3ZIvVduG9Ozb\nfwcGZlC4GTv9AhlVvwEgdrKifcEUtkLjGhtieM5KrfAnGdSMY1Oavq8xo71tVvCI\nG/Nu93fZZSqYqb4jQvcEgTKtN9yj57RW3TNP7HwjQn5gxzJALkG1FYYX/pyLDFsZ\nzOAO/8M1KN6XMyBxcfTnhfQzHr9ov8LWWS7psRRXE4jAyYl/yXrThsKnCYi2xhSh\nUb0rKd/Gocj8P18rL3Us3qax2KW7Acm5eZZse75oh/w4yhjZp21XUd5ik+a7HkGF\nAH6AHeRELyHEc7S7PlsaMPVmVAa1uwn8LYNZ7sxtQE/YbsTUOQImqNrFgqMgdf4R\nWmPErTgckX1u0qlJ5J3xq+4bLh1jcjwFxiMciOhyc7MtX6cYPwzQCEtopikur6xv\nkYys3e+0helgvzEmCBjLn+/Hg25lUT7T5xb4TrJE2dU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.11/agora.tar.gz","created":"2026-09-19T03:17:40.778347Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T03:17:40.872096Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"C0UOIVjI8zEbypv5FMbXRVTsudBrq80j9xqp+xmyCbyt96KRXo3E5bOL4awehUuw\nkdKl8UitPQyk0kSZVTfvGmoFR2QsNKx7mQUW3qsHybqfi7C51i54+pnRYBEJlVyy\n9afQmGCHS4Mmk7bz+28v7VoK84HyL3ACf+QZpx0NczIMgpfiY8i7mUwVSHdCaJAY\nyRbDe3nWitklhUhsN18HEPQ6T4p9jFwtGaJ+4/Dei+faLvScykZcB/o1GhjuLaE2\noqS+oFUwtl3fy3E0fFXQkP75eFB3/Hp88q+cbWsfzojelveLJUtjCVB9VsxB/6Mb\n4k2T0NgOXggqhxSMVyjJZMj/HKpZyZp1uR8zI5L2opJJ2TtkMzT8ipVlh98b5ZHC\n+6LBdQoDYp2JHWU/b3OCuEHR0uIHDfcm0QLD4kDEcHLjQhMn5ZL9RdPry2ybUY4e\nKvRKuVq2IcZvnDbHp1z7kKxl1CExX6wQ5JgTC/HImJ2iRj5h4LivHj33QZdtUrNs\nQKKfjGeFmcbaYOE+7pnEpJTNo3JdCIdMJszVdvYTEXr5Dzo2OYLMxKVkSzHfNzPK\nM+n4BTIKE2sHBAAFGUWM7dPO2UtwFfg0f4bk1DPPA1uINyryCAoiIEIrV5ZbK3AL\nqOFDKzFLKfoCEBfqV5i+o7maAtahh0zoZveiwnZaydw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/vinimoz/agora/releases/download/v1.7.10/agora.tar.gz","created":"2026-09-17T17:48:43.325806Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T17:48:43.412487Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"APeopH5EDgaaD6j2QMZ1bh9fBQLrtjtmZOKyzWQVHqY1bqe5m55sX2v6/wNDCRXt\n5fcypT989tKLmm32Q0Q77ElZ6uxdRaxM153HCTEdNgUYP01lBANUURDM5R7Wu+ue\ngarjB+zQdgwY9qNtctZ1VXXGzdb9zeoafcB62/kep1Mm49EtCl5RC+kUSmDnEEoJ\nXmgaG1K1s7KXWtgg24SiWHAg9y1G6ZzoKlh1/qBUF8nOHddn2iZaS+IqtEYL6eBV\nQW4JVH79DcGsyhyYzdbshWesvKeQitNHJUClbWZY6JEAk4aAIU2UbRaJOKpkWHlB\nPOjMoPYF5H8BpC2BMguFcIIwYyV8s3e9rr5spsl0PAFDnNAQjRdWMdXdkk6DEffB\nOKqLDIQROyjmWhlbHZytp5CcyQptZmSuG5W4RDNEPxQIkmtI1mu8G6Ee6+6F0v1q\npgedbYJTU+elFMNS4I3a22+scgaDHy2N1KlnsfOHuqrkL5Cb8oW1RE3jpgFAskal\nldl7ydoY++pgrxEscyfF0dQ2qr2n5IIqiw9ci6UuqYP2UWcs52L0z406H95MvDh2\nFnYRiPTYHl19TUyi/uNZRrwrmNPxGe7yrbknWMvG5ihb+1c2Lt11qbJuK/Efrz8b\nTyIp3tTCz4A30oyC1FBdX0SFKg90CwPcRbhMTSfXhUY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9GYW1pbHkucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9Hcm91cFZpZXcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9Hcm91cFZpZXcyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9FZGl0SW5xdWlyeS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9FZGl0R3JvdXAucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9DcmVhdGVJbnF1aXJ5Vmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9HcmlkMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Zpbmltb3ovYWdvcmEvbWFpbi9zY3JlZW5zaG90cy9MaXN0Vmlldy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Agora","summary":"Participatory democracy platform for proposals, debates, petitions, and surveys.","description":"**Agora** is a **Nextcloud app for participatory democracy**, inspired by [Decidim](https://decidim.org) and built on [Nextcloud Polls](https://github.com/nextcloud/polls).\n\t\tIt enables communities and organizations to collaborate on **proposals, debates, petitions, and projects** in a transparent and structured way.\n\n\t\t### ✨ Key Features\n\t\t- 💬 Comments and discussions\n\t\t- 👍 Deliberative mode : Binary, Ternary, Star, Score, Reactions, Majority\n        - 👍 Voting tool : 🗳️ Condorcet, 📊 Borda, ⭐ Majority Judgment, ✅ Approval, Quadratic, Weighted…\n        - 🧩 Custom inquiry families and types\n        - 🧾 Multiple inquiry formats (proposals, debates, petitions, projects…)\n        - 📂 Categorization and filtering by family or location\n        - 🧱 Scalable architecture and modern UX\n        - 🔒 Secure and private — all data stays on your Nextcloud server\n        - 🔗 Integration with Forms, Polls, Deck, Collectives,...\n        - 🏛 Collectives desgin UX\n        - 🗣 Real debate features (structured replies, multi-thread discussions)  \n        - 📜 Project law reading with article-level comments and supports  \n        - 🧰 Template for different goal, democraty, university, company, custom \n\n        ### 🧭 Coming Next\n        - 🏛 Lottery.\n        - 🧮 Quorums and workflow automation  \n        - 🧰 Better permission control and moderation tools"}},"isFeatured":false,"authors":[{"name":"Vincent TRAPPE","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhK+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwOTE4MDYyOTEzWhcNMzUxMjI1MDYyOTEzWjAQMQ4wDAYD\nVQQDDAVhZ29yYTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKn2FkOB\nemGVD+iaSl2Vryx3RJB2oXeo3GWsS8NzjbY8R94G9mm3Xl+sJ2fSSJtDs/7yWI2j\nJGZieCUpgDgq7JDid1D9FoYCoiWZw2Qc2lGuaWLi1ftA1qSj4Eh57LffyZHozlN5\nv66MzdU2ol2mFWpLliJKTCPGVa1wfrubmx/B+U3YUJugZiibkkeGMuyJUJi5fvZF\nzfzU4/ZvjgttI5wzYWRN86R/K5dur3T2fC4ReHongZucX0bWawuqcvAdQxACrdgq\nibdvEBMkOKKFIlqj1xnvY/lZt2NrWvn/EoeBsavF10QkqRlVOkyDg6BFwBWHFckR\nxTUKHanzoutGiiT1b/rVaXhkhUcvyYOBkIztaQeO+eVgUcNabKCJ8eqgBJrjr0U6\n2AEltaPbc00wHrhUcDi7J4qo9LW6rjxBtk2kDpfWrDldYnoiaHdF2SemjBp4Tgcw\nsJbbaR7PCELdcVRizxy980e7zKOqM4JFzrg1yEFvVfX3O/qiHCsdvItQu8Tc0ydS\nhU5evkakJB61agE3y2Qsbn4g1BvE8UHObtTaE1Ci1a54O7CwbgWiJe+uOJNhOl/K\nMgVSB2IaKdUBENMdo5eK5MZgqmD2FHKofn83WfNG+rfOzOMqOpMFoeq/OpeW2nG8\nD6zD0H20zZXkfDIEH3vw7l2V16V2UE+nq7A7AgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAICBd609jZDCAQ/7TRrxjhdt6Ykt+fN3He4nZUC3qxmY2CF9wtjKkCU6He3D\nA7Spv4AxBSXjSl8qxNRrf3Hdh8RNhg2ee3mqU4IKJu2W3+napY+1aKDrH31r+46f\n+53cdeHDgE7DGL6NNcVwIfTG3JAVu+JJQGWfkjic6XRVflKPyxFGW6keCp5QCQ7+\nrdfoZLL8vmnKPZCdIP2FQDI7yu1UkJ39Ce3dhuB/R8cNF0Tn73dDobHQfMJyQAbj\nYJW/qV54Fbp4bSaadSCeOCDeshuMOqzC5BBW3G+0G4bG6iOprvFtiAF0gFHs0Vw6\n4SMgfUSUz66cFm1g92IzC1iyzw8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ldap_write_support","categories":["integration","organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/ldap_write_support/issues","website":"","created":"2019-06-27T21:18:13.612933Z","lastModified":"2026-08-13T11:47:21.497052Z","releases":[{"version":"1.17.0","phpExtensions":[{"id":"ldap","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/ldap_write_support/releases/download/v1.17.0/ldap_write_support-v1.17.0.tar.gz","created":"2026-08-13T11:47:21.484155Z","licenses":["agpl"],"lastModified":"2026-08-13T11:47:21.545955Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"RnAYv3bhtB2AvTJuMHf9x+0SEgUE4pRyPbgBxt2DWNPs8oTWdcVxOooBa01xw7lfMbJLv5SROE9+BbDlX3BUYPzR++YlIqBEoGWNxv1imyKTdjiHeSZ4MSB4Ds5wSrDX0hV9M+OEkVBAfuzYEGjW1/FLJxO7EdGP1Q3JURpzLfvmyzsE2RQm6i0J2nzQ7GKs9MFR6Q1Xqazpi5Z2BMjrsNiX9p3sa+RkX2DyYsC2smRvuR46wxnC7VIMSfZ+QcsH7+LfB1vJ8uLfm9e7T8PMRGAqlpVNH0KKP7RaLMeuTMOkk6Z0E7xqDyRzqFgVXFDDhsoY1saCkXr+Hb8mKwjxXEuuTjlnp7BhsvZm+srWsJrrAn5YqTBR9og+kH22K1F60yttVneA5vbDXcVHD8WuExZUTeFIblGzCaLkDfXQWmyyvpj5L9EC1GrqrhhQqM5/s9/z0LcaWf2oqmg+V5T7bK5degniuMGscASqB7ur4rNCjS52DXC9m+4i58VzDaj1+K649An5fYA1Y/t/eh6j9VHX/iXPnis21PAv8wN61HGtTxqueM6e0i5CHXpiHmMSJ6CKvlqXB2gyZ41BKVpL9o2595R0MEifjGCsyGZ0LjxlUdovXCvcqDF2HWt6O7QfG/EUMIh2bV7LbWpj1S/BXY5jRk5FAXzHHRgUNoc/EOc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9sZGFwX3dyaXRlX3N1cHBvcnQvbWFzdGVyL2ltZy9zY3JlZW5zaG90cy9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9sZGFwX3dyaXRlX3N1cHBvcnQvbWFzdGVyL2ltZy9zY3JlZW5zaG90cy91c2Vycy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Write support for LDAP","summary":"Adds support for creating, manipulating and deleting users and groups on LDAP via Nextcloud","description":"The write support for LDAP enriches the LDAP backend with capabilities to manage the directory from Nextcloud.\n* create, edit and delete users\n* create, modify memberships and delete groups\n* prevent fallback to the local database backend (optional)\n* auto generate a user ID (optional)\n* and more behavioral switches"}},"isFeatured":false,"authors":[{"name":"Alan Freihof Tygel","mail":"alan@eita.org.br","homepage":"http://eita.org.br"},{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":"https://arthur-schiwon.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhDvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTkwNjIwMTU1MjQ5WhcNMjkwOTI1MTU1MjQ5WjAdMRswGQYD\nVQQDDBJsZGFwX3dyaXRlX3N1cHBvcnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQC03q2fi/UfSKJbwCQPQljYzEbR3iyzfw+zWzpZsQF44bEmNCubdArK\nKfH43szZbxGFloSoo/h/0AUX72FoYcO8nGqRacp10IPR+T+raaJ8ZDe4A34qAvrG\nCGrSV723EUt8goB2ekV8MOJXgwE3u+u0Q7+IiCcwQL5ibohTJEQqEO7v1Xy9ecdf\ncI914jw3JmYaUzEZ4jt/dbjXZ5lUMPMHpxr6/r+R7RQVS+duTIrdUBbslQ7HvfH6\nppBJ0kajyB1vsvAN06D7Nrqz93b5iLeAhOc9QHue3DbfrNOtWiXkiUqdcH5pqXrU\nbz1KCtchpEEta4fTifJdTuzvufmtumxOhFBq5Lwblf/Uzx3UIBzibJA+cuR3S/gB\nXxyYHO08ioJwP9OxkPwPpCn4ccYESLzQnpoTur7L2MPxPAa1xsg6hlYpNh7rWAjJ\nUJedZSCBvCVOgxQ3lEWqOaIlXwza3X25rMDQW4X3KOPYYU/tKJ1CNA0aEGv9OYIV\ncZpuklFA/45SiP3rnMDVF0fKrhSe/WCFyVynlt1c1/B7fQaaIkITepeGXmB9pvIy\nkh9MexXo0/kAJkGm9jiGxeUhp3ahbbE4+Vp1cUPOk49JpAOHPv6pdInyvNg6QqNc\nf92Ol7GVLecwfy2Q5/PCyBCZQRA3/399XYWomrTdVuzY3Upp8JuQGQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQA29UXozbnon//uO7N/TbftZKJc8zoOwTT5RmxVMGa6\nD4F/XC+AQpRwXMR4dRJ9D+u75a5rDvvFe5niH6Mzqmy3aTBxQryDQ+aN+MrEa7Kt\nV0iKMTBiWbhnzTgYKW02FXb6QfqUJB8GpHutaNcgCLgC3FlJjvW6Zvdvkxreq5Hb\nQg7U1gg7bBVaUiHvED1t1xa3D3EvVKXY6qZob7QcqFVSh5iULW+PlkHXJ3q20v+Z\ncxMWutXFuy50UrhgrzFgeh15LQNAyju5dErgv4tZM97c/HnN1GChKD9k1yUKuEnX\nDCJ5ODUiLlkymqXIpt7xAi/uZvBtccxeXXjELBTwcjES\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"hc_shared_app_core","categories":["tools"],"userDocs":"https://github.com/hacesoft/core/blob/main/docs/en/INSTALLATION.md","adminDocs":"https://github.com/hacesoft/core/blob/main/docs/en/INSTALLATION.md","developerDocs":"https://github.com/hacesoft/core/blob/main/docs/en/DEVELOPMENT.md","issueTracker":"https://github.com/hacesoft/core/issues","website":"https://github.com/hacesoft/core","created":"2026-10-14T19:00:50.557249Z","lastModified":"2026-10-18T18:14:36.933540Z","releases":[{"version":"0.18.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hacesoft/core/releases/download/v0.18.8/hc_shared_app_core-0.18.8.tar.gz","created":"2026-10-18T18:14:36.928178Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T18:14:36.998760Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=35 <=35","signature":"TAWAxF0OOI7AwLSKhKXL3iripL4dPkoS748aIE7lycDXG0HCw5XNnSRcQ+u58ZLpz3VyHCE6HPz6ztcAX5rK2jlN9fK4mAdX63PE5Ga748bRMoaocHJPxgzQA3cSMgdipG0hkaXaBY2PXOIWS09IIN6h9s/zITJGXBfXW6T8J/VT6eOwdbjZzcBEYb1mVpI9VFsF+BPdb+muL6HmFO3DuyAkf8W3JGgUkPRvQd3DHK9/CMjdNBoSwfNl2/gFLVqQsWQ6DOQ55u7ZQXdvFC2+w1Q7whQlID+1d20iaaDfQe+G6ld5TmxN2t3Xc6c7+Js9hAEaAxZqz3QYTJV8YBS+NE7vcYvYqKC74KxCacbu74cgtX62ARmE0DZp5mdRQxjQSe5Nn7n13YyxzUlrGb/La427i1pbaHuSRmF7kE+7eSpBDm5iDcbWBapG1XnvHbWbSEdZH1ERR66oZQMzhJnZVqKfV43UJER2IaDRowpRXnELlOebI+rYf6yhQpg0IO8ZRZ6vW0g88UyPyH7bOIXmgUY8DX6AW6yEfn4pl+aD1lMoaw0VIBRQ+2jr8KWd1qOemsv8TTSzIO9JnPmZYos5jbE9iKMZSQG5cKz85gfkAQ116zni/vHdn9BcdMx7elVCM18KMHznkAR21gM4r0Ogg2sUcQJEKtVvuqBTNuF9Oog=","translations":{"en":{"changelog":"### Changed\n- Added a bilingual list of existing Hacesoft applications using Core, with GitHub links for GridSight and Sticky Notes and a separate Playground reference.\n- Clarified that these applications are not yet published in the Nextcloud App Store and will be added gradually.\n- Reused the already public card preview image for the large catalog preview to avoid an unverified secondary image source.\n- Updated version metadata and developer documentation.\n- No changes to Core public API, database schema, or application behavior."},"cs":{"changelog":"### Změněno\n- Doplněn dvojjazyčný seznam existujících aplikací Hacesoft využívajících Core, s odkazy na GitHub GridSight a Žlutých lístečků a samostatným odkazem na Playground.\n- Upřesněno, že tyto aplikace zatím nejsou v Nextcloud App Store a budou přibývat postupně.\n- U velkého náhledu katalogu použit již zveřejněný obrázek funkční na kartě aplikace.\n- Aktualizována verze a vývojářská dokumentace.\n- Bez změny veřejného API, databáze nebo chování aplikace."}},"signatureDigest":"sha512"},{"version":"0.18.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hacesoft/core/releases/download/v0.18.7/hc_shared_app_core-0.18.7.tar.gz","created":"2026-10-18T16:16:47.958105Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T16:16:48.020400Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=35 <=35","signature":"Fkbhu41ZAC+k6Ft00BhyOcCk1XNW5cDDMJiZ6wfDZFYFmGW4Kh4HyGL3WoUq0FFQ7vFWDpqA1URcikMG8gjX5Hzqtb2zGkXls5E0Bzp+IvsyA1R6sSHnt+U3epkKbyuS/GnVhF7mWySrc4qxPgG2r61bITw6OXzWufIUWtPuWWSwRyaiD/2RfRZWvObffV8oEHe3gDwJuLb+0ys9rZIDn18UYVH7Wgha+vsL+Jryta6hu2ynBEepc6wPXNXT05v091KhOzYrzUv2OdYkml69gQhAaEisMIPloAtONIKo9VUF0w5OW3gMRiZ1Q5I3GJoJjQm+I4LhgLhUYkRohKjteAEjznD/8uI98X1GGMnqR/jWsyqVOBGVTrVVQUhwtF2XBM3yWlNF4KlcHKs3NfJiz/NvmbOFcuClBr0kEZ+Clxdzo4GAf75mYnWwN6wOPP7hDZODJ93uVdlQKERa4XXICvQI0cUJAXLrjUMOkMuTTSKFxndKHVlmKjok+vXhOb/elBoRCFdeZH8htYPsiiwyqgOA4P+GlQgyUEK1+vkrhl3yJTsKOLJM64sF6XNhMi9mFbNUJ98I669iMEz5S5RZ1n29rM7z7xPb5jvfPHrINP1Rhx3Hq0ommbCGrQTWxoOmBOLN0b5fTs/ZM5SttyFjnYAReJUdJEgwHM3vbCpUh78=","translations":{"en":{"changelog":"### Added\n- App Store catalog cover image and a smaller thumbnail, hosted as public source assets.\n- Screenshot metadata for the catalog card and application detail page.\n\n### Changed\n- No changes to the public API, database schema, data storage or runtime behavior.\n- The existing installed-application SVG icon remains unchanged."},"cs":{"changelog":"### Přidáno\n- Veřejný náhledový obrázek a menší náhled pro kartu v Nextcloud App Store.\n- Metadata obrázku (`screenshot` a `small-thumbnail`).\n\n### Změněno\n- Žádné změny veřejného API, databáze, ukládání dat ani běhového chování.\n- Původní ikona nainstalované aplikace zůstává beze změny."}},"signatureDigest":"sha512"},{"version":"0.18.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hacesoft/core/releases/download/v0.18.6/hc_shared_app_core-0.18.6.tar.gz","created":"2026-10-18T14:16:57.394265Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T14:16:57.461341Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=35 <=35","signature":"eCpgFTewlsNRuAqFX3kPgU3rthGan8PiS9vO00uc5ajW30mAl7rqaYKBMNTNUWxgnC60gSNJUTcNPe1inc6P06AU5EjNlvKaK28iQIYluOmL6D28Sc7MZ3oXM1vMFpCaq3WaDjruMKHKcgYhbqWmNulQxbBWzr82TE1lz6vwOWczM+Zsp9kMUdOO/uS4HEAk/xXz+/+qlSBAFmdpXoiyEziAVtHWDvGp5U8xdavMZPwPizREHr64gaPVLg9gItzt/vWEh6As78pk/nQPXZNz32J9fX0lFtwi7aeKhWMFUvgMzyi6m6cGuxjXZYF5yle6oDeNUwdcsUZpmcEPnyvpEFZjxa1dmZHOFrv3PKF6FqSIs/D5mixJIsceixzTnkQFSy964ZFF+zZ8bLZ3Cli2USfGQQjKg2Koa+3LpLd6PjnImAy5Hfr0fM5Yu0vjavZAIu45dsJ7cPg4O5KThKo/AJ2tBQxEkvTwl8Kzsu0zW78j/xD8z2HV5lsueLalJTfoumEwfIXLI4DtrBrNKYeI8rMDuzQ3sHmhpRnwY2pE2laBhiE0vnirK2icCoJYThDvfFkyCZNfYZlVnfFTzRhr+/qT60Eehj7Hjxw8kIb//05L7cALk9L6GP+zmPfeBSv9UZQ71qPnxPmpunIUlVagehj/zXQ6avRNaqc/LCulLwM=","translations":{"en":{"changelog":"### Added\n- Dedicated HC Shared App Core SVG application icon.\n- English and Czech App Store descriptions, documentation links and project metadata.\n- Public release notes in the runtime archive.\n\n### Changed\n- Aligned public documentation and release packaging with the new presentation.\n- No changes to public API contracts, data schema, or user data."},"cs":{"changelog":"### Přidáno\n- Vlastní ikona aplikace HC Shared App Core ve formátu SVG.\n- Český a anglický popis pro App Store, odkazy na dokumentaci a metadata projektu.\n- Veřejné poznámky k vydání v instalačním archivu.\n\n### Změněno\n- Sjednocena veřejná dokumentace a balení nové prezentace.\n- Bez změny veřejného API, databázového schématu a uživatelských dat."}},"signatureDigest":"sha512"},{"version":"0.18.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hacesoft/core/releases/download/v0.18.5/hc_shared_app_core-0.18.5.tar.gz","created":"2026-10-18T13:14:03.794928Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T13:14:03.847956Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=35 <=35","signature":"H3VNOLAg+eFCpkfGwyseFqHh5OMwXDjLk3WQFBcmjPqOqBzpRT1Abo4rl3wp1ioYdp/UBqLWUiSaRyS//vKagd3Htt9uYmwG0uBRRmLqpu78FMXXCvks50N6c1ieYgplOVwL9Pf0PjwC2osy+eYI6bJwzA6gc/LSJnLd9vCgeTJZMFXk1X8jEyQ0nOtuEmh78gNNtRmM7BQST2L4lVR/nwU1HtOsNtjevdm+CVo60jAQLVfOP9PGHhbO/ypp3mjw1QZYXuBjgn7ncjlN80jmRBrxjMpIQ2SdwEW5DLvSF9AK6+bP3l9BdGW+zhvY5JEV2JRrZ/np1vc+z4zNMfeqMFDSkCNXqSw7tgSzfb8LjMbEuQiUeHFUvYywdwOtYVg833g9y2qhWLtXbzmUuUB8IVNXYIlRkk/ES2NSOZ/s+XHXV+WIyUc41nZVgROUSa6ed/6d6T6NKCvVq8sXh+fQTy//ZkhqwUJJtL2NJohRkp9qseSu00zj6ZrgcHoSoD+6RjF3qK8TuhBlFONqtucqrMk/jVFOfB/6dNdEqfUZIcESo0n8IxoY8lHPk1feprSkdGrSrWLrC3jgRq4mVbBXK93N/LPdxw+B/cujZRvWVL0xXIFNxAKGbNOl+nIN82p3OnpGZGma01b8sYQXvspeHklfd2QLbtEBYarHMZagOCc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hhY2Vzb2Z0L2NvcmUvdjAuMTguNy9hc3NldHMvYXBwc3RvcmUvY29yZS1jb3Zlci1zbWFsbC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/hacesoft/core/v0.18.7/assets/appstore/core-cover-small.png"}],"videos":[],"translations":{"cs":{"name":"HC Shared App Core","summary":"Sdílené komponenty a služby pro aplikace Nextcloudu","description":"# HC Shared App Core\n\n**Společný základ pro vývoj aplikací Nextcloudu.**\n\nHC Shared App Core poskytuje opakovaně použitelné komponenty uživatelského rozhraní a služby pro vývoj aplikací nad Nextcloudem 35. Další aplikace tak mohou využívat společnou knihovnu namísto opakovaného vytváření stejných funkcí.\n\n## Co obsahuje\n\n- **Uživatelské rozhraní:** rozložení, pracovní plochy, dialogy, formuláře, nástrojové lišty, výběrová okna, oznámení a nastavení.\n- **Editace obsahu:** opakovaně použitelné komponenty editoru Markdown.\n- **Mapy a seznamy:** mapové služby, místa, hierarchické seznamy a pomocné funkce sdílení.\n- **Společná infrastruktura:** události, pozadí aplikací, kontrola kompatibility verzí a pomocné funkce pro řešení souběžných změn.\n- **Podklady pro vývojáře:** dokumentované veřejné API a referenční aplikace.\n\n## Pro koho je určena?\n\nJde o **podpůrnou aplikaci pro jiné aplikace Nextcloudu**, nikoli o samostatnou aplikaci s vlastním pracovním prostředím. Instalujte či povolujte ji tehdy, pokud ji vyžaduje kompatibilní aplikace.\n\nAplikace využívající Core si nadále samy zajišťují vlastní logiku, ukládání dat, řízení přístupu i serverovou autorizaci.\n\n## Aplikace využívající Core\n\nNásledující aplikace Hacesoft již existují a využívají HC Shared App Core. **Zatím nejsou zveřejněné v Nextcloud App Store**; jejich vydání budou do katalogu postupně přibývat po dokončení příprav a testování.\n\n- **[GridSight](https://github.com/hacesoft/GridSight)** — zdrojový repozitář na GitHubu, zatím bez vydání v App Store.\n- **[Žluté lístečky](https://github.com/hacesoft/nextcloud-stickynotes)** — zdrojový repozitář na GitHubu, zatím bez vydání v App Store.\n- **Počasí** — vývojová verze existuje; zveřejnění aktuálního repozitáře se připravuje.\n- **Navigace** — vývojová verze existuje; zveřejnění aktuálního repozitáře se připravuje.\n- **Wiki** — zatím pouze lokální projekt bez veřejného repozitáře.\n- **Rodokmen** — existující projekt, veřejný odkaz zatím není potvrzený.\n\n**Ukázková aplikace pro vývojáře:** [HC Shared App Core Playground](https://github.com/hacesoft/Playground) je samostatný demonstrační/referenční projekt zveřejňovaný na GitHubu, **nikoli v Nextcloud App Store**. Přímo ve zdrojích Core je navíc minimální příklad v `build/examples/empty-app/`.\n\n## Kompatibilita\n\n- **Nextcloud:** verze 35.\n- **PHP:** 8.2 nebo novější, v mezích kompatibility Nextcloudu.\n\nPodporu dalších hlavních verzí Nextcloudu je nutné nejprve otestovat a samostatně deklarovat.\n\n## Dokumentace\n\n- [Instalace a aktualizace](https://github.com/hacesoft/core/blob/main/docs/cz/INSTALLATION.md)\n- [Příručka pro vývojáře](https://github.com/hacesoft/core/blob/main/docs/cz/DEVELOPMENT.md)\n- [Veřejné služby a API](https://github.com/hacesoft/core/blob/main/docs/cz/SERVICES.md)\n- [Anglická dokumentace](https://github.com/hacesoft/core/blob/main/docs/en/README.md)\n\n**Zdrojový kód:** https://github.com/hacesoft/core\n\n**Hlášení problémů:** https://github.com/hacesoft/core/issues"},"en":{"name":"HC Shared App Core","summary":"Reusable components and services for Nextcloud applications","description":"# HC Shared App Core\n\n**A shared runtime foundation for Nextcloud applications.**\n\nHC Shared App Core provides reusable user interface components and services for developers building applications on Nextcloud 35. It helps dependent apps share a consistent foundation instead of implementing the same features separately.\n\n## Included services\n\n- **User interface:** layouts, workspaces, dialogs, forms, toolbars, pickers, notifications and settings.\n- **Content editing:** reusable Markdown editor components.\n- **Maps and lists:** map services, places, hierarchical lists and sharing helpers.\n- **App infrastructure:** events, application backgrounds, version compatibility checks and optimistic-concurrency helpers.\n- **Developer resources:** public API documentation and a reference application.\n\n## Who should install it?\n\nThis is a **dependency for other Nextcloud apps**, not a standalone app with its own workspace. Install or enable it when a compatible application requires HC Shared App Core.\n\nEach consuming application remains responsible for its own business logic, access control, data storage and server-side authorization.\n\n## Applications built on Core\n\nThe following Hacesoft applications already exist and use HC Shared App Core. They are **not yet published in the Nextcloud App Store**; public releases will be added gradually after preparation and testing.\n\n- **[GridSight](https://github.com/hacesoft/GridSight)** — source repository on GitHub; not yet in the App Store.\n- **[Sticky Notes (Žluté lístečky)](https://github.com/hacesoft/nextcloud-stickynotes)** — source repository on GitHub; not yet in the App Store.\n- **Weather (Počasí)** — development version exists; public repository updates are being prepared.\n- **Places and Navigation (Navigace)** — development version exists; public repository updates are being prepared.\n- **Wiki** — currently developed locally, without a public repository.\n- **Family Tree (Rodokmen)** — existing project; no public repository link confirmed yet.\n\n**Developer example:** [HC Shared App Core Playground](https://github.com/hacesoft/Playground) is a separate demonstration/reference project, intended for GitHub, **not for publication in the Nextcloud App Store**. The source package also includes a minimal example under `build/examples/empty-app/`.\n\n## Compatibility\n\n- **Nextcloud:** version 35.\n- **PHP:** version 8.2 or later (subject to Nextcloud compatibility).\n\nSupport for other Nextcloud major versions must be tested and declared separately.\n\n## Documentation\n\n- [Installation and updates](https://github.com/hacesoft/core/blob/main/docs/en/INSTALLATION.md)\n- [Developer guide](https://github.com/hacesoft/core/blob/main/docs/en/DEVELOPMENT.md)\n- [Public API and services](https://github.com/hacesoft/core/blob/main/docs/en/SERVICES.md)\n- [Czech documentation](https://github.com/hacesoft/core/blob/main/docs/cz/README.md)\n\n**Source code:** https://github.com/hacesoft/core\n\n**Issues:** https://github.com/hacesoft/core/issues"}},"isFeatured":false,"authors":[{"name":"Pavel Procházka","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhReMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEyMTI0MjM1WhcNMzcwMTE3MTI0MjM1WjAdMRswGQYD\nVQQDDBJoY19zaGFyZWRfYXBwX2NvcmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQCaVtYpXsyoM8EupUVe2zCAF4GcJDG9NtfJNYFlcpOpp+XMzAslHO5E\nIRgKbBJlVHmL/lyKkN5P0nRqwhcbkA6IkEQqDsKHFhKuh0Vfl/ihtEAQlXi8bzJz\nrre+IXFtQVf5Oj9nyS6EdoTYp+rGSal0I87O9Y2jc1PocKfG2F8Wxf4vAcD3oh3f\nKzRtpCYW77aMWkoiHYp/vkeVKBIHdmxHKrBhI2a9ZI770J7OOlNA7qN6yumTPa3U\nIR+KMDPCOWiDf8AHrwW6OvdDCWeCLOWjWOvNr2CB+/Hw1D0bzy+nzsTtRDi4JUdq\n0EQenTO3sue5DNU+iCwlUbMvJeDTjR6wb5XcuaN/j27ODw/+DG3oUVF0IBtuPOYs\n2wRt9N9DC34DVFuHtBVqg5PVqrULdd1JJ/ZpyPPCNXXtK34Sc43MszqhktyUxRiP\nmXaHv1ixJsNDRmXaP8RLrtLD04JvpvQ13JxLyi/TItS39z9D29U54LTRUqRFB0ym\n8k5HbxU5eLqBZNtoRN5HUzjf5e369K6HG3DdR6bEeBN5kLTlXddNkrT0L/N0l4/I\nFFthyzVpsibToHDQ02h9gz/gdbJsA7l6HOe+GyKTYMN7WmqQ/CHp2Lbc/1IXxJGq\nBn461NLpL4JMm853+aCbr7021M0/GNekzn/Zz4i/lFKNGC0rEz+ZAQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQB8t7puAFKpqwlcK//fJtv6fhg22rUTJBJQabQxrjFE\n6FdWvsXESvfrowUlX2r6ejgH+noJNKjwsG2GGfcwgV0zNKIAZSZ4dg8Dtii04z3l\nCZWT/cVcwdbJUFIOkf047K8Di605Zf0aTBx8VBchjqFb6rcygPE0mp0nonA+Lx1I\nLbHDkSw3hAZsXpP0Hn2DYAKEzRfgT3lYAbGDU3uAalFh4LWDgDl8XpdTA0WoyerK\now68Lf9YBVioHaZLtarG60YT4Qjdhw+ZN2nRHbbLEP4mhT5Se3rICN8DsgQvcfiH\nQPTe8dn+eQTnzcRjtgmv7HZ/T7zz8kQcF1bkyVSN1ZS0\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"workflow_ocr","categories":["files","organization","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/R0Wi/workflow_ocr/issues","website":"https://github.com/R0Wi/workflow_ocr","created":"2020-09-12T10:09:12.063705Z","lastModified":"2026-09-20T09:57:43.984800Z","releases":[{"version":"1.35.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/R0Wi-DEV/workflow_ocr/releases/download/v1.35.0/workflow_ocr.tar.gz","created":"2026-09-20T09:57:43.961093Z","licenses":["agpl"],"lastModified":"2026-09-20T09:57:44.029234Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"ry6YM2LnMBnFL+Y/oxme61qZN1OKZg9/Hv9R4bA3HVl96KpIj5K6Rovvbsf1TQH7wXFLWY43cFqZNEmIOhzvUZqjFvUtL83x0JB4abnBtPvyebd43gG2LFEo4xT6YG5WzcVHp3uMdatcvO+O23zlOpThTeh8rvX9fuG2MQcJ9hvABGWRecWVMI1YFA0QsHG8RFUylEgmDmNYekOwSS5H1BeZ0PwBQftgQC/DJqM/M2PfoxPag0j9T1FIHSOEXVm/0WTsKeXWBbsmJZthYqN6DLhfy+yMGNE551iBXnybvCHlfTYQ2Dktpm/ZAvmwz2WYGg8at7VzyNkwa93VMDKjp6LDQymTSam8rkeI78I8n0mitoufWzB7yzXXN1QJ0rKzQSBDnhdoodYc3KEe9bwUG+lfOo2m6OcxuJEjUWaFz+HY+UHEtGlT0U3iIH1+abiF5lsYoeXLqaVRY4Tg3i6LIbDjMf2oJ09wUCQT+ddF7Sp7C624i/C6qnNxa9OFeyfcDmUNO8sarlml3QLesXpbIggBR3E7HyFcMC97zMUOku/0iGHtHQ2jnKvnCSk8J6zXp1+/XV6Z49TrXYdM0b/4p/jmh9P6065eU8wjrtS+mcTHha8kg3ITQZUvE4TVU7ykzmhPnpXFmbKg0Qz3s41VUE8cy/3FDUUnk9RW5yqSFss=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL1IwV2kvd29ya2Zsb3dfb2NyL2Jsb2IvZWIyZDY1ZTk2MTA0MDZiYmFiMjJjNGM4ZGRhMWNlYTAxNWI1Yzc5MS9kb2MvaW1nL3VzYWdlXzEuanBnP3Jhdz10cnVl","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Workflow OCR","summary":"Server side OCR processing via workflow engine","description":"This app makes it possible to process various files via OCR algorithms.\n\tThe processing is done via workflow-engine and can therefore easily be customized.\n\tPlease note that you'll have to install the OcrMyPDF CLI on your Nextcloud server to\n\tprocess PDF files. More installation instructions can be found in the docs https://github.com/R0Wi/workflow_ocr/blob/master/README.md."}},"isFeatured":false,"authors":[{"name":"Robin Windey","mail":"ro.windey@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhFGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwODMxMDY1MjE1WhcNMzAxMjA3MDY1MjE1WjAXMRUwEwYD\nVQQDDAx3b3JrZmxvd19vY3IwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDCNDQLR7pHgVfjOqxILAg2V3fUBcNSPZ5VomTci9pP8F/jM44tce5gztLyy8ZN\nWnKThfBjc9ArsPKZQQMdZSO13kKFCV26LKUKgGi2pMvcSKSvnHJ6KOBxaux1iu4y\noFe1jxZBoF2nzeNMRRb045xXoZy2DK71ATVGepIRcMtIFCDLvByNsNQNY2kZ737j\n5VIpjJ+rXq5CgfICwrQNd/A7+PYBKUwghyttaEcKcrZPf2K0j3ji5ijjvyzXiEsz\nEIcWI/ppiypm/dO5V0QIiT5e4/amle396ByV+YG13QDdm5GXheDCc5a92cRLYYTY\nWSG/RaY1x4EW0MWfm0SpfqvefN9++uRIVu4JYQ36ZC1xp/PNoekw6/02cwzG3Ez5\nI7BaDFmqlHstDUGkPBW6GDnaZvveNwu7sECUTNKTrZmhfyGgkM7OtW8grq4rgsOX\n/EkSN9UneLzd1B5jtPbVbHU6g3FhUGAGooNJeJXo8qLDFqn8mbsu3Hin5Xfwjy4N\n0jYW/P+M31iNq7s3Tg+o2vlQOzLfs7YbSXT6Mncp13PqE3Kn2fSWp+hilkpyk5Lc\nUKyev23FFsf2odwpARojswkT+I7W0D+4Md9eS6fH8KLSQ1GB7S+fn0say3Lmyvvl\ngl+KaDHyTCWXcj7IH3sHOiK9WczWOX5z/j0NnM8SocUc1QIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBJRqHFTv4+gWC2EUSPVuooT59u0zHcJWRrt1mc/5XIsrMm9ot+\nhlCmBhe7ixmxMp81oB7UIY3E/K+KQnx1RHzUE6+PRGrE6gDyh50MJgkp2isiquTy\nInfT88nJGGCTdipXBua6hTWBbT9mu50BtZoKI+mOfSqOYRgP8BiP9UbtygEU7LUv\nCZM1ub0Ja3Z1iCxhxbUqplvQAYm/MLb0f4kgzaFxOIEIZA8vXSSYkypo8ES/oobW\namU3RBYxKFfXoNCyRTvACEmwUgJehMoW9xH+khoaLfulRdCY0FThiI5xczfEupvm\nt8kL49zm9BSqBpIj3A12ggptc1H+HA6uwyu5\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"shareimporter","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/shareimporter/issues","website":"https://github.com/nextcloud/shareimporter","created":"2022-01-17T21:07:13.984113Z","lastModified":"2026-08-14T10:01:04.567874Z","releases":[{"version":"4.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/shareimporter/releases/download/v4.1.0/shareimporter-v4.1.0.tar.gz","created":"2026-08-14T10:01:04.529350Z","licenses":["agpl"],"lastModified":"2026-08-14T10:01:04.614312Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"qgi+QvN698VE6m1gHBfKcx3Up0bpn6l4fODdpuk0HWfe0dedi0gRACzmGKp6mN4rqCqkYb3E7Htmfvj++nqs4Bqgy3NoFfWaQk0EdjdnoXtXJSiDqQk6U4HaLtFIeEAYa3XtgUztrHKwaRFN/y0zxEa6+HjxrAmG8II41JrOZ+cdIe3X1jyCQtIKLM4UiBiL3e6cECUeYWoaCUSae8XRPCe12RpECQkJ0a1Hn1jtZlUrrzMlpCzpG4EwsWVViQGqaYbU2BVS/5jwaYR3riiVFUnpvw4zRtrB2HRCk1p20x9OIXXr7wfFt04K3VxckrEGuvAo1wJ+Il675XYSRI70r3fJJChwEf8PaIwZgE11fqKlpvy9dx/vDUyFyqsgOJDR7tYGfvzHiPCtwWe34WQXgrr01Is7m5ULt28r3841VIf+QQzBuQKf8NTPgAMaWVgVPB2cU8P1aJQxlIsonvVrWsyBPylFDPS1pV5QDFjbqSytZo5yAhvU1CkHNV5YYMyurTnAiLNgl6IrKWuGr7bfq3saL5qYuuaZFeKAx9Q40/CoDIELMhKE/0MYBjohs5Kv7zT0oWa0jdX6+X2XU7FH5X+NNPMMlhbpgTHF+/osQvkMiehyHVRIsdDwgX7IOldhR6IRfgGH3kFb7+sJY6EYYeX7nFeL/ykIvNbw77IoeKM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"ShareImporter","summary":"Import Shares in Nextcloud app","description":"Import Shares in Nextcloud app"}},"isFeatured":false,"authors":[{"name":"(undisclosed)","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECDCCAvACAhGyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwMTE3MjEwNDI4WhcNMzIwNDI0MjEwNDI4WjAYMRYwFAYD\r\nVQQDDA1zaGFyZWltcG9ydGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\r\nAgEA0JH9RCbyj2qtVhzo0vcSaMkGlhlTV+TsLQs/WCQms6Asvf69s5ho46vNPivA\r\np/EM/TjCcgsdcHYnspAMt4RhPBkudWn6+azG6e8T1sfDVopoifNyBtiYdTfn0BSh\r\nZ6x+6kC2u7XT48um/Ek423LZcMUPXNc6Gvk8Y0FqF6YXUFcin2Hc5vMqxePgcPSd\r\n5QRh+2CUd19kiICXX4yofmmCuaqxrAACgTYO0DN41SPWOoe9ktY2Ti0G22VifQVN\r\nDl2fIm7GEGGSsn2damkzJepKs9Oqx0ynO3wPFZX3ViscehIukbvF4RS+AZvNZNKQ\r\nFXCwC1Rof2EhEepQxSuOe2cnDegIKZrgi2KTZh+XIJ5ZbGcYIFmDMM+VaCU6/gON\r\nvgbFlXenDvaZhgC85CkKBdMqifiqj0MFUBSo2+wIcS1PT1/hxORpAT40i6BSMw9f\r\n1u6UC14ykEz7SVpUvIcPIjzg8GKh7uzp2iOJP6DBqjPM5AaIu+cQ5GaCyidU0WjM\r\nuyk2pRI623Lz2FDqTgkBZni1gkxR41aQpT1BGgxVd7BhqINpkjkezoByX+ZO8GZx\r\nxnBTkf+eVa0sJYJrXXLGgYY1a25mvtC/X7t93OZD2SynrYz/EvIoDdAPTo43VbDS\r\nx8hrnr5Yu60fIw3AVMs+ys4IuC1O30yC3yryneHAgf1auZsCAwEAATANBgkqhkiG\r\n9w0BAQsFAAOCAQEAFfSmpk3nsdR8KI8C7x3/vnHBMx/RP0kh15Wze9bVR7SAC9YY\r\nF9soObPOd9mjAQZdgJXqN3VaU6M5bTHlqpORC+VZaUSvDOiAwCaFwVvJRIwQqjpj\r\n5nuNNa2vHeGvcaTeiK0z9Jl6Wy1tpqCZLgEcfoFc3infBRSBPlb+BQvWeSFYIn3T\r\nCCLFpGxImBOkKbbk/C11m+t6Ygiz1qejfje8iPJ6y+XbhSZ0xmpHDb8N7Pm0wyDu\r\nyLEccn6knC2BvoVpFDaKqTLUFQhI3Dw5PDj4VIvW4NsT1adX8BXZP8hzlqGCN2/J\r\neXGday8foxwDFrJoBjapJARFyplX+/yHnJEvRg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"google_synchronization","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization","issueTracker":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization/issues","website":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization","created":"2023-01-30T23:14:09.794733Z","lastModified":"2026-09-30T22:37:23.027501Z","releases":[{"version":"4.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization/releases/download/v4.3.2/google_synchronization.tar.gz","created":"2026-09-30T22:37:23.013682Z","licenses":["agpl"],"lastModified":"2026-09-30T22:37:23.066295Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"EifVFS5OHH1JA9ofwGctoYblbxG60gM1Fmr9h6aQFE+pqRojNnSjrkfokGcXjNRH\n/ZH8zHDNIxL17BKhWGpq9eWKC78Xq2Pww6lEIVmau2c4yXgu1swksEwsNdEubVqg\nLgJwyFIO3UI8+2iFM97WUvujv/cbKwLItNoiYIvcZbR9loU9oz6janzmPiErYhJd\nsjaGdMXFKCubbThPuwINi1N+K7oSTVwZR17gor2hq4cVLx5IrVAusZyCaUAIs3zX\n4zP0XP/islk8Oxbn5NYeEibCyEgZ5mP1DrZ4Rk/J9KVkqN3fCN4LvudQ9KYK8BHE\nE0oJ47OynWaS+mYOP39HeVx4O1gHZAL6AePDgKsusi2bEtty/EzRih2JlOCapXKe\nHoiEvggwBraR9yysHbrN5R+3Hf6nyvZDEp0tLPJAaRd2gPrxTFdIK31wuNbNOXJY\nwtI1gJjZdaL+vz3rhuIPFqEuLFrxsDBwXgGnhQM6pn9G7FaVP+sE+ZGQ8KSGP48s\njka/YOqpXZGD+odvO5FRJrjtL+xe+tK65avh2McuMHMrWJInteHS+GC+YG5B2ZRf\ndJIDD8vUlzmH7VDjidlNKdJzDigvBCN9dJE+7S71b1evoS47T9z+KaXGqFRyWAps\nj1YXQ7DnqByX5iN2RykYA+jiDgVZSjn5UyGi5+rJiyU=","translations":{"en":{"changelog":"### Fixed\n\n- Fix invalid UTF-8 when truncating long event fields #17 @Gobidev.\n- Fix \"Import all events including Birthdays\" being saved inverted #46 @MarcelRobitaille.\n- Fix duplicate calendars with different languages #46 @MarcelRobitaille."}},"signatureDigest":"sha512"},{"version":"4.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization/releases/download/v4.3.1/google_synchronization.tar.gz","created":"2026-09-21T21:14:42.786598Z","licenses":["agpl"],"lastModified":"2026-09-21T21:14:42.878748Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"pMNJ8g5v4j7l17JzSKCWZtSeznUJjWPIqlc6Fx1Rdy6fokM91J+45rnIj6ZMkm7O\nAEasWrJS2x8MgMvvBYe77cNAzWy6ErwChh6vWDIliAijh7xhzyNgyngoD33huN3f\nqWFwV/KJ4WaQmd68+1nfS48f4I4iUVqmbLXvboEN70aoB3sIR++rzsF7UXw75fxK\n+ww3gAVdZtuMnHMH2419cGdiES+bKwcjSMXAL2n4Sfm02oc9PV+89uECYCmo3Lpq\n5y8ASKsIYQKxk/dJwjnQCgft+PEXChexp55Xnv03/Zj2DKlHtz/Jzhb2aKgiBB6g\nFS+gtz4XPNU5ykw1oSZ/m5m/yMLSO23ukrltSw6vBlfuXoLJIIkJ4Vsq/MgRFPZ8\nXxhvsXKyLoV8koK8xLpNTQ1+9/tIzw6aNhW14ARxD2v+S3BLHcNwkfcXCHolnB96\nEpTBrFaMPISx8+diy7+eewJ1+F0aeCFGLUE+5hR9HLy3kvhHCxlr//NCMvqUOh/J\n/ccS/CvhYm60VzIj7C78qhrVd6KbE2TPpAbltkhFIfxtdqDWSx3CRrKhsHERLJ50\nVfDP/mjphEuu6KxzYEqZZzlueZR3IVtLKStruUs/yp8xp27D3tgy61BLe5XLVyOL\nSA76j0GoKo2bqWR48o/iEcZCKrpHQwusaXVddiqvhBs=","translations":{"en":{"changelog":"### Fixed\n\n- Fix photos picker URLs #56 @MarcelRobitaille.\n- Fix race condition in photos picker @MarcelRobitaille."}},"signatureDigest":"sha512"},{"version":"4.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/MarcelRobitaille/nextcloud_google_synchronization/releases/download/v4.3.0/google_synchronization.tar.gz","created":"2026-09-20T16:15:23.167092Z","licenses":["agpl"],"lastModified":"2026-09-20T16:15:23.226017Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Il7ga5QgRsC940OfLak5Z90r3x6wEpBINgDwsvfR69l1WS9dK7hPdlC20hqWpdjn\ndmp7Z2fcij5BdHA2vmBdr3TyuCbCoNpn18tx5RqwvXnP4eQ1bCSLsOT1Y6pNltQ4\nrItwVKnXXpydaARG/PfdxP5jvdaHyfmD9pQe0BqCj0vGzTwvkgHl24khgiLJ6gn1\nfj5k64HFubqg6tRhZ2d9YPYMJ45Gzh1nPgd2Z01zoZdjX4oAI3jOKYJEOlsBrp6c\nAl5FA6dSwUGMbzaGD1JP4eGZrczcu8QD2qOT4xIeQ5RcHsiXvtP3c87/ZxnyaonC\nzVNw3ILV1a2OiRrV20Km4Xc2BX3JBVGY5pQ6EkspAKbcxkk6r6tQH70drZ6hGB8G\n5a0mRHpc8rN4NWG7vaZwyntE4/VpmkQUIPAPRFWTExOAWIxc1X1ZtJEN7U4DWnVG\nzqxcmWAjMqKTBADLypeQvbjTLndpFIQWM69Bt5BfdFTRvaSdyHuLRZ+I4QeY8msC\nxjemc1BFFyAcpPLpOu55eWvtxODFxgFeEmbBx/ld8KNgfdR0uwBfhxVaPbqqUfCT\n/tHg0v5UuBXdqi7zUULmqnSsyY5+BR7uMR549Dw4hEfRpTCg7KX/7f65VcCdhE4U\nN9YdtbDLURPWUn8x577eQTSvVC+fD30CMjyw+e1Dclo=","translations":{"en":{"changelog":"### Added\n\n- feat(photos): Add Google Photos import via Picker API #356 @AhsanIsEpic\n- feat(contacts): Add support for continuous synchronization of contacts (as well as calendars) #5 @MarcelRobitaille\n\n### Changed\n\n- Update dependencies #359 @lukasdotcom\n\n### Fixed\n\n- Fix: throw UnknownActivityException on Notifier #358 @lukasdotcom\n- Fix: don't wipe calendar on Google API error and improve error messages #51 @MarcelRobitaille"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL01hcmNlbFJvYml0YWlsbGUvbmV4dGNsb3VkX2dvb2dsZV9zeW5jaHJvbml6YXRpb24vcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Google Synchronization","summary":"Import Google data into Nextcloud","description":"Google Synchronization automatically keeps your Nextcloud calendar and contacts up to date with your Google Calendar. Incompatible with Google Integration!"}},"isFeatured":false,"authors":[{"name":"Marcel Robitaille","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEETCCAvkCAhH7MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMTMwMjIwMjAyWhcNMzMwNTA3MjIwMjAyWjAhMR8wHQYD\nVQQDDBZnb29nbGVfc3luY2hyb25pemF0aW9uMIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEAty1Nhb7ix3kg/lQtNnan8AUiNkzB2vICoQkKvVS2MX/NEDhp\n6wvqEm8U2u8EUgVL5UZ9pWJYHElKsMsCqXSloStGYKzw0lI/yiMJc8RkB52tINMr\nx1doLLFe1djLEreCivQ/jMYh6bZwoclkYBLE2Ptq3mATP+VdPusHNF+hU52JreyM\nBMo6Z+pMobdc7hlSSg9AhGdFObLoUWsz+n8qepAmfiOFJXfMEo7Tue0e/Vazy8j7\ntywiNjo1QnPZPrWvwTpMagC1o3DS1rkXLG4s53cnfzV6ToewVsJzXqBLF5FWJVUH\nV7mYxWJCDU4/daOIQQapooZhI+P5RXcW6GC8eVRThXqIYfExM1Q7jrUiMjTj67nS\nfBVL3V+YPSDGEMaScDQToULBzMX6gy9XDunMrqpZVZgzvVOfFIvZfozmNCGTcXrg\nxXMgQikRAIMc2eZJY2sA4DvPfqY8xdM5OYFuTt/Q3iiONGJq6Ctf/NrK7+zKNKTv\nX+U2z/19KX48aDtwafD1uFuxGYoaKpBfpEzaiF9rd1hyVPyEykQCJas/bkPBVsrn\nv03uESisf5A6ON3OwnlhY1wWDFt8WSfVJOIn6EO0g4myuEgNpHpbwSzS/sjHa11N\ncHDiF4ONqNsfMA+0WzUHPsvSmipW7TXME4+d/97vq+hp5rE6VwuMcGU+fRUCAwEA\nATANBgkqhkiG9w0BAQsFAAOCAQEATvn7HP3cAY8A5CcaiVVqaNtuyRZHa1DLj61I\nen2jFVC1zD15LfJORtICQz0fqKZEJ3xW7cI0gF+iUoOh6mRO0bowPceC92D/Zzg6\nscWNsYLxps2y8PV3qaWwR8HxgSJjkM8su/Pgn16blT+WF+Ha1K7PsTcYHqOENbuP\nKGTURzxMgjuSjOo6pG5IozBDbJ+X02ZVNyYzLiKapz3g893aFbdYSaqahzxel4wQ\no59sGXyh5LLv4Nk8AnVG5slspFSjUNvRqYe+0HLo2zM2IVjMMZA9y7MOijwle8Tb\n8o8Tu8ndbE3+hb4LS/rTQxCCctavCUPgKJ+eOVRizPjxTETiJw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fileviewer","categories":["files","multimedia","office"],"userDocs":"https://github.com/devnoname120/nextcloud-file-viewer#supported-formats","adminDocs":"https://github.com/devnoname120/nextcloud-file-viewer#sandbox","developerDocs":"https://github.com/devnoname120/nextcloud-file-viewer#build","issueTracker":"https://github.com/devnoname120/nextcloud-file-viewer/issues","website":"https://github.com/devnoname120/nextcloud-file-viewer","created":"2026-07-09T23:46:06.781617Z","lastModified":"2026-10-20T19:14:12.007923Z","releases":[{"version":"0.5.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.9/fileviewer-0.5.9.tar.gz","created":"2026-10-20T19:14:11.883130Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T19:14:12.043186Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"cc9nIy64iyCk7tAUeCepqzrR7+mQ1tWxKXMaBU/a5xOfYR69t2BvAVYoLZHtyFd26Xj1CCskIvzXTUC8DwbwCE7g77sBJ5WjVGuFyZn9nAhZ4BIw05TpAzhme/pTbB+nt6zskOrhTkXfleHzn8TdHFHWqUcHq+x1o7isOYAoMKRH6LP2Q7U7jMIq6GkjgNs6UM8KuvQP8T0MWYPWpduzalzVA0eeNKbhwwRXZTLrndzxqD/QW6Klj3VAovFVLQKgkabxBtKC9eIQd4drDOlEm1hC6SL9w50SZn8AVfLAG89uNNOrOulEVLcQhQu2/gZgF733ts9nzRZhuXjO5fftPiRNQ0yrQp4kx19Oe7ZrUEUCWyNPjzEePeevZvx4lDk0n7wrK5+YG2CQ8v1pyQBIBdhjgrAvj2beQxw2ej7pfcf2b+kLOMKdloZ74adhHAKTjB44KKCZUZQUgpkOArS63xxWb9dzA98vrSJ41abDCav8tNN9xld9PyUGmyGE//VzVOBhCH/8YHcA0gEy5un5bRUo6viOu43XdDAmmmV2XCrmSJ3P8YXBAhxj3/V5lZzbkcOGRTfca+JVHn4DyVy16Aff1AffKf1zXYUZSzsutPK2WGH5pVwglFZ6sT03qhlUVV5wEaYzk5OYzv7KBSUaEznYrZm9uA4UawFlynkila0=","translations":{"en":{"changelog":"### Changed\n\n- Updated Flyfish core, web-full, RTF capability, and specialist renderers from 3.1.2 to 3.2.2, with refreshed compatible transitive dependencies.\n- Updated Playwright from 1.64.0 to 1.64.1 and the Playground samples to Flyfish 3.2.2.\n- Integrated LRC lyrics preview into the generated format settings and MIME inventory, bringing the enabled extension count to 274.\n\n### Fixed\n\n- Fixed legacy binary Word files named `.docx`, including archive members, by picking up Flyfish's content-based Word parser dispatch (issue #5).\n- Added regressions using identical binary Word bytes with `.doc` and `.docx` filenames, directly and inside ZIPs, plus live Nextcloud coverage.\n- Copy and validate Flyfish's separate CAD/drawing asset packs, use the bundled CAD 0.8.3 runtime, and retain a stable sandbox-local DICOM decode-worker URL.\n- Added packaging checks for required CAD and DICOM worker resources."}},"signatureDigest":"sha512"},{"version":"0.5.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.8/fileviewer-0.5.8.tar.gz","created":"2026-10-13T23:21:52.255370Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T23:21:52.406731Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"NLwyqrl/wuXM3TTBoAbnnrLXa+pT2TkBkq85vvxKi2/JDu6bvpsKIXp/C7LUzyDCStlQXGXOZsQLjrG17d5e5W5cGwLro2w9LARBYa+zw4oIQHyk/l8mecvnOsBXfaeuiaZWdmrIDjh4sQaiKy3h2WajeUhKbDgeej3LdEi2tzzTc5YFpkNERWig0BcNTJCW9ld9RZjMX30IAAQLjBOoitUq5xMkR6gCmKMojLCrhfEvLBvdhG3vPKkMHEQ+spkGAYDo2PkpDXoAY5OUgayX7r7fU5VRfBTH/bWXMi121uD2q91A2yDMDDCY7qP2X7M6mjjEbtEkrISn7WMvUBfUT8gS7U9ftRurIny5b6Ru+9dvs2KmE2Gr0MWA3Ra5o4TF/31lIdxQKIkBpy1XPHu1icq2aZNfXhA3J0HSUOK1MTilM1IZFSyXGf2eBfDYuvAesu/tT7tZSCRl9JTkyQPlJAia15G0aVXnIAcFD5mfEJjxLWDOkklhDMYGS4aF4yvmKAk/U/cLLEDxEA1uUair6dBmrBdSZwxRxI2H10l/5GMZyWfP3YYKahMAtOyXvc87mAKT/pj/GrBjd4sy9skfJ/LgQbutn/EAypxBkcetg5sS1eFA4zQn267cY//X2/SBZLTY9uVdvw5WwSc3hnkdP3CsNzPIPUBsAMFAVWg6gTY=","translations":{"en":{"changelog":"### Changed\n\n- Updated Vue to 3.5.44, Playwright to 1.64.0, and Vite to 8.3.4, with refreshed compatible transitive dependencies.\n- Updated the DOMPurify and KaTeX overrides to 3.4.17 and 0.19.0.\n- Verified the current Flyfish 3.1.2 format inventory: all 273 enabled extensions retain generated settings and MIME mappings; the unshipped experimental BPMN capability remains excluded.\n- Reviewed Nextcloud 33–35 API changes and documented the supported server/PHP ranges; no Nextcloud 35-only API migration is required, so the minimum remains Nextcloud 33.\n\n### Fixed\n\n- Integrated sandbox-local workers for Apple Pages, Numbers, Keynote, Hangul HWP/HWPX, and WordPerfect, including previews opened inside archives.\n- Resolve WordPerfect's structured libwpd parser assets against the hosted worker source instead of its sandbox-local blob URL.\n- Include Excel XLA/XLAM add-ins in large-spreadsheet worker routing and guard office format aliases against upstream inventory changes.\n- Correct Composer's PHP upper bound to allow all PHP 8.5 patch releases while excluding PHP 8.6."}},"signatureDigest":"sha512"},{"version":"0.5.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.7/fileviewer-0.5.7.tar.gz","created":"2026-10-13T21:30:30.862387Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T21:30:31.017432Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"b+KyAQSx35IZyHDhpX/JrIZIbdQno3OcpvCEnAsd9WZYWbUWrdgNMhr9D952e1FeMU4EExQ93hjjoZQBApqtpQmYfz32oiuq27hStHiGXsqCNXhf/GoGVFopemXZkztuKEXTiC2WNPa4ubkg6s8nTBq9bgHGUyASfZPM/m6mpud891Fmq1tZlcKzEdk8YsuXsZeOAOKUWImmALN/H8lBwivaJSUroE38gPxSPpMmDhpMomHeXdCxG73TMa7pSbjTeQ79tyLRemrspni8p/lHy8TtcVzxjGtHcYceXEq3Oz/HZE0Eud1BqKeP1e6TQKhhzD0eiHFAFRZH+G8ST3jHYiGa9w7cbjSrNrC2qjg59n0mXK//kZ5ehQ7ySS2qBf+K9PwR9qp/Pq0orHlJoXh6/lTJi2Ldz6y82lQl9eS9p0oeqvIAe560U6l4ND9CZ9HuU80rCepThozRg8FUFDMl+X+OlFliv/9MPXax4+thsp9xPmzhP4lkC66m+oVrE6xDRXacfSZLzL5X2IY3CXYI3Ui4DfQpgWuDzAZWW9T9vGlxMCp+R7TBdF5RpPHdfHwT4ns6xK7DMUYIe6Jtzw4bIAAcI4od6tDhVyW0+Z3psOhlsQDh79oz7uF1kq+Y13OsGUhfnCR4VF61cFdTwPgmIWQyT2RQ0If6GJ3NkJiNIgk=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed intermittent startup failures by distinguishing the initial iframe load from subsequent navigation, including the EPUB bootstrap's two document loads.\n- Wait for the authenticated document handshake and matching iframe load before transferring file bytes, and ignore stale load events from replaced frames.\n- Prepare the fixed parser-worker inventory before opening archives so nested document, presentation, CAD, model, and spreadsheet previews can start sandbox-local workers.\n- Added deterministic event-order tests and browser regressions exercising the shipped parent component, EPUB startup, nested PowerPoint rendering, and opaque CAD/OCCT workers."}},"signatureDigest":"sha512"},{"version":"0.5.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.6/fileviewer-0.5.6.tar.gz","created":"2026-10-08T18:38:40.495442Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T18:38:40.686362Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"csimSy5Vr+xJNLpcQK51tHOZYPwK5/C+NgzZw7CihM8ooee37AzxmwBoOXiMo0pTYfwz7nNnA3TtchK58dW9Xhq+56Q6lOJlCUuU2VL8vPe8zSGIAL3gEy/fcHcpxavyeq8GO1SQ06tt5rNrr9kRH4OkjE9OlgdNuisiMqw3DmzqlPWXHgtEYNBcnBA2/zpkkybbdBOSXcaQO/HdIgg+p9QbIiPBstkxEirBHmURJ0bUqKspxnIccjiwvAz23jyW784RsLXxw2Jdq2C2imWuna/nWbxE5mG20me2GCjARxEoFZIAe4QSX49VW2P2hqQ0D6s27dxhYCXSjO+3KVXQHmNEfg7c4aFx1olzAupFVjdUmkkS1d5Z5P9zB86/OxcfSObkWAGV1gfqF7hzz6P9hmEcocfm/caxplzbzTFJXqR+7UWeNQlFv05FbB6JJ7Eubm7sewu0HxvokKnU5l3D+rTvBX58VM2c7WwROmob/2+/VxI1wuvZBzAqEn7fsbRaawkAgXzn4S4+cL0A0wu5vqVsNIMrRe4Z4dey3MTL515B5GfgKwyhJOLPiyrE5waYB9+btsi+PA0HACFU2QhNUA3qjF8MYsQLsrxH4VcaHCd4jikDvr3xZhJ9ZUoSVJVkgZTfsN/LlgEPI5WK8apUQ7dgW2MH+BYaUD97pjCYBF8=","translations":{"en":{"changelog":"### Changed\n\n- Updated Flyfish File Viewer and the specialist renderer packages from 3.1.1 to 3.1.2.\n- Updated Nextcloud Router to 3.2.0, Nextcloud Vue to 9.13.1, Vue to 3.5.43, Playwright to 1.63.0, and Vite to 8.3.2, with refreshed compatible transitive dependencies.\n- Enforced patched DOMPurify 3.4.16 and KaTeX 0.18.10 versions throughout the dependency graph.\n- Kept unshipped opt-in renderers out of the generated supported-format inventory.\n- Updated the Nextcloud Playground demo to install version 0.5.6 and use Flyfish 3.1.2 samples.\n\n### Security\n\n- Require confirmation that custom basemap URLs and keys are public browser configuration, withhold legacy unconfirmed credentials, load geo options only for geospatial files, and remove credential-bearing console output.\n- Authorize releases using trusted signed annotated tags on protected main, build without publication credentials, and verify the approved artifact digest in a separate publication job.\n- Serialize MIME mapping, ownership, and filecache updates; detect conflicting edits and atomically replace the mapping file while preserving its permissions and ownership.\n- Confine the browser-test asset server to canonical viewer/runtime roots and limit CORS to opaque sandbox origins."}},"signatureDigest":"sha512"},{"version":"0.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.5/fileviewer-0.5.5.tar.gz","created":"2026-09-14T21:27:39.653728Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-14T21:27:39.818859Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"FTCkozNiVJTYsBlSN0HIbaYQXsihtQ+chy3MFYM7penh27d36Y62Izvm+6lLkR1X9f4UXHsyH/VVtxTjN4XF3BOMXgZaoaomhiccQcakSzHVXsYXQGDbvFSrT+b8KyCwmMKxFd/BDRpwl5FO8M0GrW1GosymkCqh7jF5s5SFsBwdK2kjaaIgii4+VJe9TbrIt75lyhC6yIQGyc+zhiQKOOQGH1JpktyTn33CxsFacX8f+jDSL9YpC12CXFME6jKwPnLTcgaDMHg67LjRWzdWXKVG2DYei99DGm+lvRSFOgLDUy1/vy2bYUpiteKYyF8pIuYLaaozPQ3sY3TmKqpPnfGFsvE32nqDL9LDJrxZhjMn65a034Cq6en+mV5qWNE3wJO9nqziA9jQRXfIoKhY93aDuofiNNGSHJe/9TzbuomzN8XsjGJetDdSvK1NsLMwFodARI9QHabU8Q/CLh2dIKwBsaQ9Y6AXkDJqJF51Lnv6sVG1KO2nGjZ0iqrHV+xeQOKJKk5IV3u3eoWUKrUNiygbN2H1O5o4zLsBOQqsS7XwsqLWgfyCPkKSJkTyt31qN8wIW1L2n/TzxUcRgE2GoAy/r76wg+sAaTU3+UqY5KeaFMf69BJdvn+TVqzOb5q4HlIV5fuw0rScbC3QFQj2Tb52doy44MH2ikBnsOipsvc=","translations":{"en":{"changelog":"### Added\n\n- Added lazy, self-hosted previews for CHM help files, binary/executable inspection, Adobe and design formats, DICOM medical images, and cryptographic signature/evidence containers.\n\n### Changed\n\n- Updated Flyfish File Viewer from core 2.3.0/web-full 2.3.7 to 3.1.1 and refreshed the full transitive dependency lockfile.\n- Kept specialist parser workers inside the existing opaque iframe boundary by preparing their self-hosted worker sources as frame-owned `blob:` workers on demand.\n- Added an RTF compatibility bundle so RTF remains available with Flyfish 3.1.1's split optional capability loading.\n- Pinned patched transitive versions of `adm-zip`, `fflate`, and `uuid` used by the DICOM dependency stack.\n- Updated the Nextcloud Playground demo to install version 0.5.5 and use Flyfish 3.1.1 samples, including representative CHM, binary, design, DICOM, and signature files."}},"signatureDigest":"sha512"},{"version":"0.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.4/fileviewer-0.5.4.tar.gz","created":"2026-09-01T17:36:41.531021Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-01T17:36:42.224488Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"J2zkaoel7mbWbmeDIlKdlnLhg+DYk8k1mpgGiXTwl5yNpD2niz93wA92biGzVueqtqleSQgRD8Hc3tA0C3qALNxDpM1L5hikS1iEuqrJkbTnm6r+gOf1v9Axv+sRMbcLF/cv2R9EakVcDR28+YSoj7fgYdCo7fx0SMXSgQNP/S8FE9B9TtGrGCWb9PaMhC9MKlriLKDzNNlWGK1AuJI3/gLGPhckwM03A565FXFUQbG6D7KZtZiP2MT7qpNFGjxCMcGznCsyvD0zbrHw+mCdGXe9p0rMW1D6fRM0/lS9JgIr2DUI6SQfxv6jHMDd8aQJ1MN8u8x6XpAzFzW1cxMxdrtDutLhriUIXyg2SaYeXXX62S7HGCnU4kKeOfRoTElPx8FtL2pTWt+CysH7jBgfK7NlX5sAuO2ycVXs/F4/jLO7MZVH49+eSDdoHQDMoP4owxuNx4ujUZwFRyWiwsaD9QBe9NbmUAhVVItSG3MLAlOBXbCC8dSkiU9/5Xp28PbBC6dtmOCmrxGcVCGPORnqG9TOF2y56OA+7oh6bi3+wMNnVdIQk3qfo+LJ55X1PKZsSFeVEcMUoSQ11b7HAaJoRxS279W85PxT5xlsIk2b38rO7DnFRDqk24QfG0Xs1rIFkKUsvOEWVKPUkwbj4hU6sHZCsW+wVpbhwaH4WY4OOrA=","translations":{"en":{"changelog":"### Fixed\n\n- Added canonical MIME mappings for Flyfish 2.3.7's new FB2, HWP/HWPX, and WordPerfect extensions so supported-format generation succeeds.\n- Added regression coverage against Flyfish's live supported-extension inventory so future dependency updates fail in unit tests before generated format files become stale."}},"signatureDigest":"sha512"},{"version":"0.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.2/fileviewer-0.5.2.tar.gz","created":"2026-08-25T06:51:39.341390Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-25T06:51:39.485200Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"rnqVNxMGsDuu1YWoqhjFdX/glam0k60uESPQvIQMzz60hWKimH1hvqItdJEYdE2LKzcBaxCdairLqRamNk2K2QTeERtdT3OnpjUjm5ZN8paU77sw+b5CcKg1SvTgRcO/21iDmdy27uuGKWLo0ia5DoguhaUX9DkE1ZGnEtD0r7Gk4zwTC3b02irl9PPP92S/aBUtu3yLnHhxIA3J9hGph50bmfyZNamKDCUky3vnxOcG5pGmpgiJVhwerSJ82NmkmN79ehWh4222Poa7+A3zb8uUDgHXts8I59ge5xtkh3u3j5lsMaOaRHNnyQEyr0Fl0NtPPDA1XzTPv9VgnAhedM+1aBL+Aw6VEIHRonVZgQrEzzRwS9q3IgsPmTOvl5OLrWJUm7CnKMtcCN3MiHMqzUZNZY83BipWQTTDPVDKBrs2ffXICFbqQ5XqqD2AR9+1+dcLtV4HuH+Uz3w9f0nUncHrXL3t6i2BD8zC5x/JJHhfBYy/R4zhqtFg1eHqXiKjjM2m6QNaUIWTYKOcWJucnZxqIHdcOErMJ7RIowVQ5TteTw9f4zMOSCTWjbAPKkvT/0EiAX3M47tfHGtREaVK15Jpii526PLLl0MPxtLRtNYimxCOYSZo4UM48G0MuN8vq0ggQlELVGCc8cEy+Y+/ILSzT3x00F25WJGN9rkCVT8=","translations":{"en":{"changelog":"### Changed\n\n- Updated the Nextcloud Vue integration from 9.8.2 to 9.9.0 and Vue from 3.5.39 to 3.5.41.\n- Updated the development toolchain to Playwright 1.62.1, TypeScript 7.0.2, and Vite 8.2.1.\n- Updated the Nextcloud Playground demo to install version 0.5.2."}},"signatureDigest":"sha512"},{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.1/fileviewer-0.5.1.tar.gz","created":"2026-08-18T19:22:41.805309Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-18T19:22:41.973490Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"fE81/oHgF8HRy446S8PdBK5e6+me2jsmExHRV1jGdxu1sUP9Z6k8U7r3hEZ3/LXLSshBrZaKicCaIC/xhlNqB/4sg/npy+dY59zCoZWiWCR3RKHd8eEh7Qj/BvdELgEx3EQkVNKIGTo+b31EZAsUsNDSgZH8TElxnmRHoXeCLc051WlfZjmKQirkKhwWEuFyMi3FTUtkzw6qzyuM+5lQ/akXQ71U/X0/jnvUPLcd0Rpuon7xXOG8mcfLzXFv+HegX457HpFQcfdRRmSOJyYQ3bvdzb2mMgGvQBE/xd/kJ3h4vPt80wSnbyqrFnHLSLrSculY7MVS7ze7QnNh5qwn2CUEQUwH2II8csII+iE7TmLcX4Wo43GKclmDNOq/JHYSV29th5MkZHgV3KjgE7GVTpGFMmsbs4MYROi03c4iTSQYTTRZxFDsEEiQykIxfaHKyMLpbtf3Ct8pnUnRGBQy6jx3nPwmc2FCoTed3NbY0JxiVted+F54v3jU6hdXfOTt2hjhqX7KOfwQGkQq4DaM8IitZF+Aph37wbJMJHpzQngdQ1CIxECRd2i37AoatHskBx1DnW3r5ZkGsEzILYZ5ZubOUs3iHYIpd1LH2smkvoBPn4KYY1mWnNK8tm7h+dNs7ouqgqMRJgvXRqfFfUshu0nSsG3CBp8Op8+sEW5pB/I=","translations":{"en":{"changelog":"### Changed\n\n- Updated the bundled Flyfish File Viewer packages from 2.2.3 to 2.2.9.\n- Use Flyfish CAD 0.8.0's versioned DWG and DWF runtime paths and resolve Flyfish's CAD/DOCX version queries to the already-prepared opaque worker assets.\n- Updated the Nextcloud Playground demo to install version 0.5.1 and use Flyfish 2.2.9 samples."}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.5.0/fileviewer-0.5.0.tar.gz","created":"2026-07-23T22:59:20.949404Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-23T22:59:21.234654Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"PPSSOLp5/VviE5kOfSobY+Kdfnlfyit325QQGxI2ZNjaKtMn2p6lbYRfF24nACN9n0C6CjzvnWwTD/liCP1VQdAjdQ3fE0pnY4FON5WMijdiHoDsBt9RAPe1HFRYqrq2z5z5gxVmeSXA6ZtNzmE79/KO9ds5RaPGyItCLOHgBG56G/MAqcs7yICctohvzTM9HDsmWBNwKMyyw6HYwzIGlFQNqNdiCDAoYGbslRI6H1vID2p70z7L+mupVA224ljHrY2HZWiqwjHL15wm82/0/aI7zUpo8L8hOz7lSbs7JlYa0RxzsCI0H41UThu0Q6EYy/wwZHHaoFZGqSa84yYNeQtTSyoArgpNFBflrn/Ao80N6pTyBl6UisfVfpCCyMVknM7a9R0ldwpJhqbSxKDuCv4kuCLxk+DB1HIm7kD1aCCiWzl41cB2zxqeCs/37FOc14f9OQJTd9aq5Q0SXRLpD9VBzEPAWb/VDKD6RFRktQaCn2bVs8RuSyVHEUItd6jKzxOAYQPIYUCjZduJyVK8atDQxxjndJL3ZJsM1bHvxph4C8xK7ylOEvGsr3gf+4Af6RoSHiYGKgwy5UKibb5eGWHhOhNzZpchG8idgT2tcoOgvBaRrTL9ajJeeWH+grcZCBhMMUMijiUPgMs/sGSGImELQn+HQS6QMeZvBsETDIw=","translations":{"en":{"changelog":"### Added\n\n- Added legacy PowerPoint (`.ppt`) and tab-separated value (`.tsv`) previews to the generated format settings and Nextcloud MIME mappings.\n\n### Changed\n\n- Updated the bundled Flyfish File Viewer packages from 2.1.23 to 2.2.3, including the self-hosted PPT, OCCT model, PDF font, CAD, and EPUB runtime updates.\n- Run the new STEP/IGES/BREP parser worker inside the existing opaque sandbox worker boundary.\n- Use the legacy PPT renderer's asynchronous direct path inside the opaque iframe because its integrity-verifying Worker requires Web Crypto, which is unavailable to opaque Chromium workers."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.4.0/fileviewer-0.4.0.tar.gz","created":"2026-07-12T17:33:14.295482Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-12T17:33:14.442133Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"FjC2ezjhDSk6R1+K/QqW6aREpIgkaMYp+IEh9T+lvAsZ6xGwHiERrxrL9LeEA1DzRbHlhrd9mhbBP8ZmlvUokVD2JW8LmDge5bn290nwm3FtSWF1J7cirjZVe346w2kbwxOKe89LB6l6pDLzeNmPAMw/IBBeTvZQPQvGOKAKjvCyKpGXxte8G1jI0rGWC47W11zONiwfvKgyKUIKH3RJ0nFJhBdVE2xq1i4H/1c8dvLlMnVHM183SqbYJLG40yBR7bAAIksJUS6cyYIwsEocGKRgKT88oNtsBM3cYqxcYLdfeG2Kus6YIfOuWqjFkngQ9B19dDJ35MC8c2VKfRuMX/k/X4A8WWeUczxXo4GN7saFcBqGb7w4tNqk/x7suJKSqiO1XYRazq2FQMT/fm6VwO+98pu0zFEO4y1wQO3ZVnAjnFSQ1Bvux2iJujaGyfYENIdu8Bk/ezbnCS6L5umFN1PHIpDhyaZSk0PkYzAvBkbsre8A/uh9lajdO3eshb1jfqAqKhkggtBMVEqudD/7jPsxWzCCfX8ikejmRmP73KiTf2QRZpmetdfSQNrYOv6x98L/thM1Z/BzyxW7LnPiW/4yKEmsSjWhFIAHWuhAk/05Mno6SucO+BjaFYycpPhN5o9WL3nT6eYt7hbhsrajrrVXIIhE0ENvfyC2lYtyM/E=","translations":{"en":{"changelog":"### Changed\n\n- Replaced raw MIME controls with human-readable extension groups backed by stable app format identifiers.\n- Resolve Viewer registrations from Nextcloud's effective extension-to-MIME mapping, including administrator overrides, and migrate existing disabled-MIME preferences.\n- Register fallback extension-to-MIME mappings for every Flyfish-supported format while preserving administrator and future Nextcloud core mappings.\n- Label MIME-colliding format groups with explicit extensions such as `DOC/DOT` and `C/CC` instead of generic MIME descriptions.\n- Show Markdown alongside source and text formats in the `Code and text` section.\n- Sort format names alphabetically within each settings section.\n- Remove MIME-registration bookkeeping when the app is disabled or uninstalled while preserving administrator mappings and user format preferences.\n- Avoid racing Nextcloud's queued Viewer registration when promoting Universal File Viewer ahead of built-in handlers."}},"signatureDigest":"sha512"},{"version":"0.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.3.1/fileviewer-0.3.1.tar.gz","created":"2026-07-12T10:33:38.699231Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-12T10:33:38.808663Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"7Yc80KNZKMNPDNR+NQhPhAdg07Li0vfNItxaxatsEFWEE3K+5hBOL/yLkP21fY9zrevDbk9VEJ22nEzS9izJO+I3yvUTWNeli0hcww96Ly9nThR4EXi9nGCgls+Bd/VIebSEqwRaq4vP9/wgEkhuIdlAYF1hq/9OTBzZ8JM4WFCILgn9xuxzLVb92nUmyhKR/q8Mq2JrP8zHxdIvhBJfZ6OZDa40qs1GnSa43oL25IKNp/oMpWrJ4GwX6TO024vPa86Q7iiliJmlEHXFXK300bKTB9jP9YUN98ynh/vt/h0Boa6u7ftJS0r5zEyeVVuQ6eNR2yY/CtgZdSiZLPFJ31at5T+jrCtv5k8v6b9b5Ivw1UiS13vVXAIRkZTZtOaP+k/mo9N1I07WnuX8i2DVQwpFC52LeGhLqO3LFHmnQvjP8TVmOitgUfK+J7oQ6HGdxdC9IJbjBvbr/XO8sv9i2Q7gRb6GhL8G0i8guPxHcmIOuMfQRSyWfTXIUhyNodq62BqWkG+Op2hoUnu04FL2WC+nZETmyoxaUbM3xcNbSoCDqE6+YOLTAowt4vL3wKdEaZkRgK0jsZhYQsOKJZntUbKk68X+/7L9s21SZ/nVbrl80CRttSabgRp17IT0Ri3LZq7nv7HmVc96QydSzHJLq0u3Bj3xLfbSiWNjSaCHXOA=","translations":{"en":{"changelog":"### Added\n\n- Added source repository, user, administrator, developer, and discussion metadata.\n- Added a complete AGPL-3.0-or-later licence file to the source and release archive.\n- Added App Store and user-facing release changelogs from one canonical source file.\n- Added an optimized App Store banner thumbnail.\n- Added Composer homepage, documentation, issue tracker, and source support metadata.\n\n### Changed\n\n- Replaced the deprecated `agpl` licence alias with the exact `AGPL-3.0-or-later` SPDX identifier.\n- Removed the obsolete raster app icon so Nextcloud consistently uses the maintained SVG glyphs."}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.3.0/fileviewer-0.3.0.tar.gz","created":"2026-07-11T00:03:19.110697Z","licenses":["agpl"],"lastModified":"2026-07-11T00:03:19.221275Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"DNi36rNxbzMZFlH/J+fpIhqxvm8m6WbtgLHKvdTAHs7MbCvKSVAIz9UVrms7ybQamzCLhC9W00qmi9/L6j3kNguOUSyfMD29qgykx3dmnrSJVY0gi8Q4TVe+GuaKsyr4nELAuO5c882F/zf1T1sQyJXfKJy0zo7djd7jzSjx1ybgYgewOmrgSzAQl2k+0KXMF8T13YPT/+1Z+DjnS1QS2LmIadGMNiajX2HqokQrj05bveKMz2867XBgw8JG7V07v+2yhZJ7nIgngypEZT2n7sSWrOGY6H+8qe73obz1iTe6NKZeD4it7RHkuY2Ia1fBSV7cHgGGBdYhZ3OjU6ByNCPExQlfNwNuWp3u9aldNWnrM2vOergPJOKfegNt49+dGNttTZZExhtdzKlLzkImnVvUk2yuu8N3VaN2yaSMpKkCIEMLTwutV2G63crk58rDqyWstPsejJPdWEzxqjVvTvo+nyNmmHozLItZOmTxIsjijoRo3buikAdAqlJ4htBZn9SNhUAU04V++7oIMyvZmjD4gNcOUqLhfORZ5fD4M+DrGBRoMqvaCsejFluVVZ2tDf7AYOVg1+Fro7DFoJm7yl1C02udfL+REC+2uFF7NiRpJM0KWsnHKxytrqy3b520pVRjdyEWXPMxkWYBclsrz+uS3B9iqJ3HddDowaBICvU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.2.0/fileviewer-0.2.0.tar.gz","created":"2026-07-10T01:38:25.984049Z","licenses":["agpl"],"lastModified":"2026-07-10T01:38:26.079332Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"erwFefft+iNpnIJG+edr9RXyEmTIripdFcVSouFxt2Z/XROk9+aCaiVmkD2FMtZn0kslFtHXN8nONwtnK977aaA6FHlAqbGmANUrMfioOUSeOK7WIRVH8U56Y8AY5PKJImeBey++boZ7Egr1W/DvvboQG/zkBavvzrrWv9Q8o1L58KpjRnWy/h0yMj0iOD0IJcJhGR4C9Z0F1ZQr6wkM2u0nPPjQO0roM1ADPl+BqQgn0NJQN2yboYt4oqJ4D4il1B5TIuqhcWxB2vfqQ0QHmBuVkpVLcbOoyWZXOzJx9RJmqeTROQDwDzg/ckcxyazefe9km8u1uvNxIJmdYEHgnFVNHosIYFth6AD1myLe3oIweecVfpV3qJkt98t42R71DabiR9olLoBotta8UoZ8omhPbbYcpjEpyFRdO5gHXHabyLqkpfFUjhyLTlZhNzoc/05UR8ZA3QgR+Jx5KqcVy6lkg0VxCRCSwQYu+fPiJIVGUouGsW6cUNS9xoOYHvd/j0orAn58pIqayRxrJ4R8uj6hdiz93IL2kkJcR9jD3Q6NyUjf/ep0GhgaIsSCbzzIuekpLpfO6SnEAY9NKp/Dk4BeqD5b5IODpOQ7KHibqerhvq05IqF1AkC8hvmFRZrhDUmk56ViiIzuDSRRDpk6tuqiBFr0yCpCN5Ocn7vcVSs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/devnoname120/nextcloud-file-viewer/releases/download/v0.1.0/fileviewer-0.1.0.tar.gz","created":"2026-07-09T23:52:36.994041Z","licenses":["agpl"],"lastModified":"2026-07-09T23:52:37.098929Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"0FxbvbQBBQD7XlYgh+HsGABklsqQBl4B5/MFFalnR3q33lrwlAcKJNu9RMt3WVNRaTy8BMjry8Y+0jWHWTqS2mlPwrugFcGgzy0FMnkfydkBztetqQyuODqGPvlNjYvVLzDCDHPnCurnmWVifGNy4OXH2BuGp1l+gOWsjzkD7KkQ6arXWXsWyBZVNF1Lud5uGxAPyScDxwPdoBtGL4fAhsMiI/ajRZev7Q9dVIIf+ahpFODGxuvVAEn0+g4nZ+ml9poNZC7JQaavPVxlUWTNXQ5N9y+CUF2gpn0OFK2iCAHiyy3PXLZpzJJAkRLGgPsktVcc/6x5SlsSUXqtGLSBzyugTVR8o2YEaxzYZhFqc1ZWoVvg3wDoHhXbrSkjJYOxmjtApimP3ljXYlBCNnkAKd1VlDXVW7DLzfiJuPW+qxg7w/FV/57exaEo3uki2QHbKy0B+hNqSLjMIeSZANovUvtFfpw5cruqQfVoCOBtQ18xYp6muv+RvSOxPMZ+HU14R81WADj+gngDJ557kswT8Ya6MTBZQwRcPHy0BI5YXtQiJwd7o7p4/OpjlfP8jgEpXl0ed5rb2UT9fQdnN0VTQBtA2ic+cyW6VMi9FCp6Xo+f6l4ikv2azMDqtQwA3c3Snuz7JzToYXYS1ctDOflbDk8LzpxSb6mLf2TgTJqEwok=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Rldm5vbmFtZTEyMC9uZXh0Y2xvdWQtZmlsZS12aWV3ZXIvcmVmcy90YWdzL3YwLjUuOS9hcHBpbmZvL3NjcmVlbnNob3QuanBn","smallThumbnail":"https://raw.githubusercontent.com/devnoname120/nextcloud-file-viewer/refs/tags/v0.5.9/appinfo/screenshot-small.jpg"}],"videos":[],"translations":{"en":{"name":"Universal File Viewer","summary":"Preview 200+ file formats, including documents, archives, videos, 3D models, design assets, and more","description":"# Universal File Viewer\n\nUniversal File Viewer is a Nextcloud app that registers [Flyfish File Viewer](https://github.com/flyfish-dev/file-viewer) as a handler for\nthe 200+ file types supported by Flyfish.\n\nThe app renders files in a sandboxed iframe. The parent Nextcloud Viewer component\nfetches the selected file with the authenticated Viewer URL and transfers the file\nBlob over a document-bound `MessageChannel`. The default sandbox intentionally does\nnot include `allow-same-origin`. EPUB files use a two-stage bootstrap that commits\nthe renderer to an opaque `blob:null` document before any file bytes are transferred.\nThe renderer cannot read the parent Nextcloud document, while EPUB chapter content\nstays in a nested iframe that allows its own origin but deliberately does not allow\nscripts.\n\n## Compatibility\n\nThe app supports Nextcloud **33, 34, and 35** with PHP **8.2 through 8.5**.\nNextcloud 35 itself requires PHP **8.3 or later**, so its effective supported PHP\nrange is 8.3 through 8.5. Nextcloud 36 is not included in the supported range.\n\nThe integration has been checked against the\n[Nextcloud 35 release notes](https://docs.nextcloud.com/server/stable/developer_manual/release_notes/index.html).\nIt uses the typed app-config API available since Nextcloud 29 and the complete MIME\nmapping API available since Nextcloud 32; it does not require a Nextcloud 35-only\nAPI. When adopting an API introduced after the declared minimum, raise the\nNextcloud minimum in `appinfo/info.xml` in the same change.\n\n## Supported Formats\n\nUniversal File Viewer uses [Flyfish Viewer](https://github.com/flyfish-dev/file-viewer) and thus supports 200+ formats:\n[supported formats](https://github.com/flyfish-dev/file-viewer/blob/main/README.en.md#supported-formats)\nmatrix.\n\n| Category | Extensions |\n| --- | --- |\n| Word | `docx`, `docm`, `dotx`, `dotm` |\n| Legacy Word | `doc`, `dot` |\n| Compatible documents | `rtf`, `odt` |\n| Excel | `xlsx`, `xltx` |\n| Excel-compatible | `xlsm`, `xlsb`, `xls`, `xlt`, `xltm`, `csv`, `tsv`, `ods`, `fods`, `numbers` |\n| PowerPoint | `ppt`, `pptx`, `pptm`, `potx`, `potm`, `ppsx`, `ppsm`, `odp` |\n| PDF | `pdf` |\n| OFD | `ofd` |\n| Typst | `typ`, `typst` |\n| Archives | `zip`, `zipx`, `7z`, `rar`, `tar`, `gz`, `tgz`, `bz2`, `xz`, `zst`, `cab`, `iso`, `jar`, `apk`, `cbz`, `cbr`, and more |\n| Compiled HTML Help | `chm` |\n| Binary inspection | `bin`, `hex`, `elf`, `exe`, `dll`, `class`, `macho` |\n| Email | `eml`, `msg`, `mbox` |\n| EDA | `olb`, `dra`, `gds`, `oas`, `oasis` |\n| CAD | `dwg`, `dxf`, `dwf`, `dwfx`, `xps` |\n| Geospatial data | `geojson`, `kml`, `gpx`, `shp` |\n| 3D models | `glb`, `gltf`, `obj`, `stl`, `ply`, `fbx`, `dae`, `3ds`, `3mf`, `amf`, `usd`, `usda`, `usdc`, `usdz`, `kmz`, `pcd`, `wrl`, `vrml`, `xyz`, `vtk`, `vtp`, `step`, `stp`, `iges`, `igs`, `ifc`, `3dm` |\n| XMind mind maps | `xmind` |\n| Excalidraw | `excalidraw` |\n| draw.io | `drawio`, `dio` |\n| Mermaid | `mermaid`, `mmd` |\n| PlantUML | `plantuml`, `puml` |\n| EPUB | `epub` |\n| UMD ebook | `umd` |\n| LRC lyrics | `lrc` |\n| Markdown | `md`, `markdown` |\n| Images | `gif`, `jpg`, `jpeg`, `bmp`, `tiff`, `tif`, `png`, `svg`, `webp`, `avif`, `ico`, `heic`, `heif`, `jxl` |\n| Source and text | `txt`, `json`, `jsonc`, `json5`, `ipynb`, `js`, `mjs`, `cjs`, `css`, `java`, `py`, `html`, `htm`, `jsx`, `ts`, `tsx`, `xml`, `log`, `vue`, `yaml`, `yml`, `toml`, `ini`, `proto`, `hcl`, `tex`, `gv`, `http`, `sh`, `bash`, `sql`, `go`, `rs`, `rb`, `swift`, `kt`, `react`, `php`, `c`, `cpp`, `cc`, `h`, `hpp`, `cs`, `diff`, `patch`, `bundle`, `bdl` |\n| Audio | `mp3`, `mpeg`, `wav`, `ogg`, `oga`, `opus`, `m4a`, `aac`, `flac`, `weba`, `midi`, `mid` |\n| Video | `mp4`, `webm`, `m3u8` |\n| Adobe and design assets | `psd`, `psb`, `pdd`, `psdt`, `ai`, `ait`, `eps`, `ps`, `idml`, `icml`, `idms`, `inx`, `fla`, `xfl`, `xd`, `indd`, `indt`, `ase`, `aco`, `abr`, `csh`, `pat`, `grd`, `asl` |\n| Medical images | `dcm`, `dicom` |\n| Signatures and evidence containers | `p7m`, `p7s`, `p7c`, `p7b`, `pkcs7`, `cms`, `cmsc`, `tsd`, `tst`, `tsq`, `tsr`, `asics`, `scs`, `asice`, `sce`, `ers`, `asc`, `sig`, `pgp`, `gpg`, `jws` |\n| Fonts and data assets | `ttf`, `otf`, `woff`, `woff2`, `sqlite`, `wasm`, `parquet`, `avro`, `webarchive` |\n\n## File format settings\n\nThe administration page exposes human-readable format groups such as JPEG (`.jpg`,\n`.jpeg`), Markdown (`.md`, `.markdown`), and EPUB (`.epub`). It does not expose raw\nMIME type strings.\n\nUniversal File Viewer keeps Flyfish's supported-extension inventory, then resolves\nthose extensions through Nextcloud's effective extension-to-MIME mapping using\n`OCP\\Files\\IMimeTypeDetector::getAllMappings()`. During installation, upgrades, and\nre-enabling, the app adds fallback mappings for supported extensions that are absent\nfrom both Nextcloud core and the administrator's `mimetypemapping.json`.\nAdministrator entries always win. The app tracks its exact additions, yields when\nNextcloud later gains a core mapping, and removes only unchanged app-owned entries during uninstall. The\nresulting deduplicated MIME types are used internally when registering the Viewer\nhandler.\n\nWhen several supported extensions resolve to the same MIME type, Nextcloud Viewer\ncannot dispatch them independently. The settings page therefore combines them into\none option and lists every affected extension. Shared aliases keep their format name,\nsuch as JPEG, while distinct formats use an explicit label such as `DOC/DOT`. Saved\npreferences use stable app-specific format identifiers; existing `disabled_mimes`\npreferences are migrated against the current Nextcloud mapping.\n\nMIME lifecycle operations hold `config/mimetypemapping.json.lock` across the\nmapping, ownership, and filecache updates. Administrator automation that edits the\nmapping file must take the same exclusive lock for its complete read/modify/write\noperation. Updates use an atomic replacement that preserves file permissions and\nownership, and abort when an uncoordinated edit changes the loaded snapshot.\n\n## Geospatial basemap settings\n\nCustom basemap URLs and API keys are public browser configuration, visible to\ngeospatial viewers and public-share visitors. Only use provider keys restricted to\nthis Nextcloud instance, map access, and appropriate quotas; secret server tokens\nare unsupported. The administrator must explicitly confirm this contract before a\ncustom basemap is enabled. Existing custom configurations use an offline basemap\nuntil that confirmation is saved. Configuration is fetched only when opening a\ngeospatial file and is excluded from general Viewer initial state and console logs.\n\n## Sandbox\n\nThe default sandbox is:\n\n```text\nallow-scripts allow-downloads allow-forms allow-modals allow-popups allow-presentation\n```\n\nFor `.epub` files, an HTTP bootstrap starts with the stricter `allow-scripts`\nsandbox and creates the final renderer Blob from a fixed application template. The\nparent briefly grants `allow-same-origin` only while that already-opaque bootstrap\nnavigates to its `blob:null` URL. A small renderer gate establishes a\ndocument-bound `MessageChannel`; the parent then restores the strict sandbox before\nloading Flyfish or transferring the EPUB. The gate probes whether the browser can\nstill create the readable nested chapter iframe EPUB.js requires. Chromium and\nFirefox pass this probe. Current WebKit/Safari fails closed with an explanatory\nerror instead of retaining an outer sandbox configuration that could become\nsame-origin after a later navigation.\n\nFlyfish and EPUB.js render untrusted chapter content in a nested iframe whose\nsandbox contains `allow-same-origin` but not `allow-scripts`, so chapter scripts and\nevent handlers cannot run. The outer renderer remains opaque and cannot read the\nparent Nextcloud document. Once its final load is confirmed over the bound channel,\nany later outer-frame navigation disconnects and removes the viewer. The browser\ntest suite checks the origin boundary, publisher styling, script isolation,\nfail-closed behavior, and unexpected-navigation handling; Flyfish and EPUB.js\nupgrades should be treated as security-sensitive changes.\n\nOther file types keep the configured outer sandbox unchanged. Switching across the\nEPUB boundary closes the old channel, rotates its token, and replaces the iframe so\nthe browser applies the new origin policy to a fresh document.\n\nParser workers do not run in the parent Nextcloud page. For PDF, DOCX-family,\nPPTX-family, DWG, STEP/IGES/BREP, specialist binary/design/DICOM/signature formats,\nand spreadsheet files of at least 1 MiB, the frame fetches the\nexact configured bundled worker without credentials, creates a frame-owned `blob:`\nURL, and starts the worker from inside the sandbox. Under the default sandbox these\nworkers have the opaque `null` origin. Libarchive formats use the same frame-owned\n`blob:` isolation model. Legacy PPT uses Flyfish's asynchronous direct path because\nits integrity-verifying Worker requires Web Crypto, which Chromium does not expose\nto an opaque `blob:null` Worker. Smaller spreadsheet files and legacy PPT parse on\nthe iframe's main thread, which is also sandboxed.\n\nThe only default-page CSP additions are `frame-src 'self' blob:`, and they are added\nonly to responses that dispatch Nextcloud's Viewer-loading event. The app does not\nadd instance-wide worker, connection, WebAssembly-eval, style, image, font, or media\nallowances. The direct iframe response has its own scoped CSP for local assets,\nframe-owned `blob:` workers, renderer-required evaluation and WebAssembly, and the\nconfigured geospatial tile origin. The EPUB bootstrap uses a separate, narrower CSP\nwithout geospatial origins.\n\nIf a deployment needs to trade isolation for non-EPUB compatibility with specific\nbrowser worker or WASM behavior, administrators can override the general sandbox.\nEPUB always uses the hardened bootstrap and does not fall back to a same-origin\nNextcloud document:\n\n```bash\nocc config:app:set fileviewer sandbox --value=\"allow-scripts allow-same-origin allow-downloads allow-forms allow-modals allow-popups allow-presentation\"\n```"}},"isFeatured":false,"authors":[{"name":"devnoname120","mail":"","homepage":"https://github.com/devnoname120"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhOSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzA5MTk0ODIzWhcNMzYxMDE0MTk0ODIzWjAVMRMwEQYD\nVQQDDApmaWxldmlld2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n8F5hWy3MScFfH0NdVm5PSsQNsyIqM5C90N/eMTJSrNRFldfS5LUXBsgLqVzEehnk\n+Sm8WrkT1nQCseXGY5yfAR/jC72wgjTIV2AVXgCIHYTe7r8sgrQXFT1ISo5t+BQz\n0kuQTaJjYJntqO0kvdLqo8GhFJ3gnsH81l+aIqjMyMeLW71K+mP5xrHww2SS6mya\n+hYPw7jHXwUqODod0/zF9qNVQ2TygD+eLadmUuo+60O2cHsHoIwWd2ojADfDNqYB\n8MrGYjkF2rURal2wZcCfeAjOEmU4CfZb4t3OrAQV9uXPXRTo1Rw8JLuLOHkCiDIj\noqFJ+3vGUKGJ4Yj2wfVbxKfJz9gbAN9/xhx5086OOTz4T+yi1/tHBbx7gohTAXOS\nEHQKZ1OV+H6hPxD0nT62uLT0fJm92vjEytTdEmPu9Qv5YZ229ruT85C8Uu7wGkYc\nq9Qw+EAhAsR81LUIhBDyTN75+D19nyDbzr8djo3cQK0HW+Zej37d6P2KtS3cx4zG\nAuf/tTXjDM4WP65pnO+zmG8WTHaM3vhUsNkWAnVpIok0RdCP6fNxFcZDc+GvZ8iu\n1JoA8ZdJH7t8ziLW9sHTN+uOwudwXPLNB/DfCr9C+hJMm7hlZwQkxgrZbbI2CGma\n0RFt4SAkxek/f2UXSJ7/Sw6X02aJ3HZcn5ZwHgeS3PsCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAmaVt2tqwC5E+KNgNWEaXLkwG+FcWePHYRKWVL8FvoYZl6XONWjni\n4CShN5uKQtCS+p1sx3kC11qCW+oOf7zP6xKkKdFyciOUnEiKLdl1z7SA+c6/c9j4\nJsCdDCd9uBhoNTC4onP8cSW8d4GrHVJbv8ZiBI9QaEr3yHU3AkUgxOPoZfO6m+cM\nr+TQMYeo2X0WwJCwo2BJcgYItNMO08Bn7zNfwSDgktj8lDn27vi/sUCwKbdd2AqH\nb0eSymfvkloTlR7MBJcnNLAqtxLFw9e7xntpBbKMDbwTvVBqdYFp8p8kFLldT+Wt\nFCTR2kXVB2Jbmjo1lUOVSlsVsIwYf3N2Fg==\n-----END CERTIFICATE-----","discussion":"https://github.com/devnoname120/nextcloud-file-viewer/discussions"},{"id":"openotp_auth","categories":["security"],"userDocs":"https://github.com/rcdevs/nextcloud_openotp_auth/blob/master/README.md","adminDocs":"https://docs.rcdevs.com/howtos/webadm_install/webadm_install/","developerDocs":"","issueTracker":"https://github.com/rcdevs/nextcloud_openotp_auth/issues","website":"https://github.com/rcdevs/nextcloud_openotp_auth","created":"2022-01-04T14:45:53.105996Z","lastModified":"2026-10-21T10:51:52.046296Z","releases":[{"version":"1.35.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/RCDevs-Security-Organization/nextcloud_openotp_auth/releases/download/1.35.0/openotp_auth-1.35.0.tar.gz","created":"2026-10-21T10:51:52.039592Z","licenses":["agpl"],"lastModified":"2026-10-21T10:51:52.094160Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"hu8QONK5s+4EKM7g4itqu+6LlDEgYfzQCO/y4tNxGEeLP0G5rx0mexex1CFCMzTy xJKb+mzGTPau175TurLZAS8/6XoBiv7RbSQ2QNOwEIWpQ9t88gt8Rgb/r/hiRUZE h9fqgpr2O6t/ywmHGP7ykLpZCoNbUCTuWSnIBOSej+cBHdiONCwuE+AL1Npelq2l Lq8d3rF+2QG2jgyYt83dILoI95GWJb04TDCuNvK5eB9lTC0xJkuu2Z9QKkV6JK60 cMuIYSB15pMTT8RptF+gMuPicugRHAizuw6oMAg9PuDBUn1nQH+bh+1PTUw6529G VOK5k51UQ5mZTz0rVpBsSCXgexrYfCDfgKIBkYJMXWiGpJCmzqtf5rHRS47UiCB8 EbY3ISS4L5vnoHpddeLkrjzwne7zonBuZZ2A4aV08IqRnhJEQYnST3JcYNk3At/n 69hPa/Wpy/zCmZO/k4TH/+j4161HZWceDTP+riTPjeZsLXQ12Aj4e4lbBVirgfmm eE7vHRpqsAMfN/dvsi7ZNOrvD202Y7Cm+eR8TIM8mmsHLttfQZ5P4s+D/+k2UZn0 b0IUAPLkejh7/reEwDp06aT7t3OZXhYmxqa/cvzDBH/eNJ3IA3Xf5VRz8R51k8j1 6XI2O+lUet0ykjdKCdMknuAvGh0V2MwcaTXOr8bcjrA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JjZGV2cy9uZXh0Y2xvdWRfb3Blbm90cF9hdXRoL04zNS9zY3JlZW5zaG90cy9vcGVub3RwX2F1dGhfYWRtaW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JjZGV2cy9uZXh0Y2xvdWRfb3Blbm90cF9hdXRoL04zNS9zY3JlZW5zaG90cy9vcGVub3RwX2F1dGhfZmlkbzIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenOTP Auth","summary":"OpenOTP two-factor provider","description":"**RCDevs OpenOTP Application enables two-factor authentication for your users using your personal Cloud.**\n\nIt is versatile, device-independent and based on opened security standards.\n\nOpenOTP provides fine-grained user identity and access management (IAM), one-time passwords authentication technologies (OTP) and Universal Second Factor Authentification (U2F) including among others extensive authentication policies for your AD / LDAP users.\n\nIt is enterprise-ready with strong support for:\n\n* high-availability\n* load-balancing\n* multi-tenancy\n* geolocation\n* delegated administration\n* contextual authentication with IP address and device fingerprint\n* push Login technology with Mobile Phone\n* voice biometrics technology\n* easy installation, update and configuration in RCDevs WebADM\n* ... and much more."}},"isFeatured":false,"authors":[{"name":"RCDevs","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhGsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMTA0MDgzMTAzWhcNMzIwNDExMDgzMTAzWjAXMRUwEwYD\nVQQDDAxvcGVub3RwX2F1dGgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCsa+hlogjhMVcV+tqYfBDngX67l3DvRA38BO29FBQxl4w+tv0wp7vKkcZDYjqP\nc4ctIEHzXgJSZwDpfB/bTL2VyEFq+Nnq+Kq2/aJSBmAJYhnm9mN9857vz3v9HlHg\nZTIQcSm2m+NScGIJWAHNk/q3WAtSY+Nllpr1+nIbUrbR+8OYZnga8MldBlmEjpT6\nxlTgOP8jhs0E/aBGAWW76OUVlZjAXcVexyX4/5siLQsVd1Kdr2MmUOG1hnuX5aDl\nG5F39P6RyF2d/MZUw/Vnhapv743gkXXxJSlHCbdDRxiiLUi0L9fr5tkJD1T+RAIj\n01EQ60mg1k5uxNf1iIPP0PjEkOq93F8pb1dPrjGC0KFIjWfqumYCAWIPlWHrsvBJ\nCr93vgaUeLTiFCxKzbEi2TzvNtTDxoHvK1HW9/Gblb7DcuKaU6hWHUHBXXaLk7Nj\n6eHou81rZolnxmrREAj7ptbZC3OOF140D5Hrsvf6wAIBGm8BqwlrpPILcm/GznaY\n++/U/lCuUnNMytXpe6RSi6gVOz9iWVqi9pNWq5H2qVoxvrdenH8HPzyWGs95dtpw\nJrbZYybnup2vlgmK5b/iWbhGs19oRnn7zWngG6eLTdE1XPg8fWaT3jqVzgsvReaK\nkMyK+NTxIQxAbXtv/Cq6B3ZR4awvYfFvEbKAVKdcZtLr8wIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAl71o5H9IytlaTYARtlnqCEPK1Tn3rko5/5SeZc8QKt3Z/B6dT\nspC5nHdUm85PuM65tCl2Vj+NUk8AMuToMzsrmhZzGJ3kpt0THXUS7IB1g0l1Ymy0\nobkre0lQwlx32Jf6+bnxGDBob16poAFp75WLZ3EQBnanh5sWnjj9OYmgQpRPWRoT\n5B2BGxmlP+7KQLo6QFJOjvcqHver7xAZywNq9ef9MMIB1/alPcHWijknO2QtuGc0\nqJw8Hvg2GfOK38R6Glt8c+izQbYruHtlnbqsXY1pzmTE2ZzHyTY8RrI+Q8NvpwEa\nAfnwMx28FnxTB5qKNJmllQJyLZTWD6oupmx9\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"apple_photos_connector","categories":["multimedia"],"userDocs":"https://github.com/frake65/photos-connector-server/blob/main/README.md","adminDocs":"https://github.com/frake65/photos-connector-server/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/frake65/photos-connector-server/issues","website":"https://github.com/frake65/photos-connector-server","created":"2026-09-24T13:32:34.829202Z","lastModified":"2026-10-14T11:14:22.584432Z","releases":[{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/frake65/photos-connector-server/releases/download/v0.9.1/apple_photos_connector-0.9.1.tar.gz","created":"2026-10-14T11:14:22.578633Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T11:14:22.644567Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=35 <=35","signature":"H6Tya8l2Om8avtpZtlm/eOuKCPHBF/t49q4a+1w7EWv5x+QwGj35b/GI4niAsZ1F9gjhCJK2WtV10l65hSsuLWGe31IrfrwC9y0frMLx5nfpmubJodvVKd/JH5zZj4dkss1dvPJIZAuWUuFSl11qB+0GESk4DYq+SfeFBf2qDphAPJ5fzsEYWzIxoX6EXf3AI+LHn7TnVai1IobLFgFw4d+XwaJWvLwLBlj7Zc1SFt6sTCPXQ5UxJU86tZubwrUB0dzZTOxI1xnW4y/f9DNlBiFn3WaR+ij0tXgp7uUVeZRQr7PbcL4oJFbKVrv1DGThoHBJr9xMtYMiykveXPCQ34fdh/fRF58h/93OggLYnRrigEmvYUH3+3EOBRcxzXreJU+b59srGxSf6nVXHf8RdJgUKBLf54hONdnt4qDbFnJLSPU7QJuMjNSwlZ5qoVwqOQqRvGB6Xp0Zzb3YNxybdQ+KqrSBwXQMqfn9kSNoxgs5YpbQIpWiVKH3EuqJUuPpeopMaPswGpXnRtFCS52m3hm5p2+yXOlJxmpXWGfh/MXbW5IMwRwLhYCwcchXd1jneu6UOWM8SxCdoKPxZTPO8afdnwiPTyPPJ7xkkxpcz1eVjwdZnY/NGWeD/SZKVfYEwk4q+2NLLeaVQSkaJDXmVMHUgwyyW8qeXRMkr0Sz91E=","translations":{"en":{"changelog":"### Fixed\n- Reject malformed album sync identifiers and selection lists instead of\n  accepting incomplete input as a successful sync.\n- Validate album inventory membership arrays before writing and return a\n  generic server error for unexpected inventory failures.\n- Return generic album sync operation messages rather than underlying\n  exception text.\n\n### Added\n- Report unknown album membership identities in the inventory response.\n- Cover malformed album requests, rollback and sanitized error responses with\n  controller scenarios.\n\n### Compatibility\n- Limit the declared Nextcloud version to 35 because a Nextcloud 34 test\n  instance is no longer available."}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/frake65/photos-connector-server/releases/download/v0.9.0/apple_photos_connector-0.9.0-signed.tar.gz","created":"2026-10-05T12:18:14.418040Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T12:18:14.468022Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"HGUNwcMr0Nij8mHspcxAMIJOiXiHSG5XAjMEzozjkHjYGzT7ZFlIbcaaocs0W6k4h2cy8dWemlKOsXaFhUkn8j4A1YCDweYKZKjZbphTNb1MSKVRMrTRGnnDdRHLXEvIvtjt4pxZ7UjLpbUfWFj3kWqaHkmEmTfNK8gaOKSh5nm+o54z7KGvFqs12WQzX+ayM9+BWDawOY1HIjMonaLFZjJmO2Jh40gndpnR0pcYzQFxkV5K+6GmX0YEUC+42JDhSdhC/Qp+lAX0KJogLpltclb2DRsZXjhSOm7SsPlY3V4CrR+HF7m0qAT7nS5lZGxtBaDX8eHgFQY4ygmtg62YFeVgcsBUm08fXKikd99BrIG8oOfYvs1GAnNImkRYzApyVj2WOsKtFURd72ow68LWAeQ4c0osucSXSyhNswzhAJBYWLaN8EFnT9e2S5OqqHFAHykNDe2edQT90kYaNTd3e8yOGgIR4gfN36FWvuSn8+qbiIXEpZQ46p/W0S+bji4PkwldWn+cMb8b64TCmj1nfqVHwI5fXOVRgm699CbEbfwGlnLDjxDGCN3tUxpreuekuFO3UwwD6cJn8MsT8gTaSh/n1e99JiBykHW6p48ZroLL80iuhcee6fmN3p3yPzDP7olAo4XrqxUboWKMLBx4+tKecaKFnConAbxqaqlreyk=","translations":{"en":{"changelog":"### Changed\n- Continue the Inventory-v2 and user-scoped idempotency behavior introduced in\n  0.8.8, with server-side replay protection and non-destructive imports.\n- Keep the current companion-client behavior: selected assets are processed in\n  bounded 100-asset tranches; known files are skipped by inventory and\n  incomplete uploads are retried by a later import.\n\n### Compatibility and limitations\n- Requires Nextcloud 34–35, PHP 8.2 or newer, Nextcloud Photos and the\n  compatible Photos Connector companion app. Inventory protocol v2 is required.\n- No new end-to-end or performance success is claimed. The controlled 100-asset\n  client test remains open after `InventoryCore.UploadError code=8` before a\n  verifiable inventory transport event. The previous 1,218-asset server run\n  remains unchanged and is not a valid client-resume test."}},"signatureDigest":"sha512"},{"version":"0.8.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/frake65/photos-connector-server/releases/download/v0.8.8/apple_photos_connector-0.8.8-signed.tar.gz","created":"2026-09-28T23:42:54.357075Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T23:42:54.418407Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"WBtYavLe7HN4FVA4wc11X1wi6Hw/SWHJhoK8VryfGFLASGydTluP9eEU9TBgCvEqkcp4TbL2bDR5nyrmHr27XiQqSI51yxyyhC00in7wPnsdgbGc8lastKMsOrp/BCnCpLlGPT5wafGlD67jlmUjkXrEun/XI/P9L3Vg6e1ruZmWgS/QqVR+X8sAZJqj/Lh2EwmDP1+N0xUvUmnwbZ4fCKT2pGvpyrd5Yo6VYqj9HBdEOemQvmMq9qGWkE0aFzhtG5b/R1W2jezhLZQ3pJ8IabX49zaYJJBztKK9MI2Dco+i8SFRegPTA1lHiJrjZ/kGIzoNj/GcaY4M+MdSx0Uw9SBwzYYWizfsAeDoxag7a9hSMvL/4C8b/fGl+ckeZmN86ns62AFN1/2I+Oo1jgFE894x2qPXpw9BthOELVNL5NJCXmIl77PP47QCG9+NAljCNsCc7Pbc/TcRHTaZgWLqesW7qyyMIbiWUCBczRvJCDvguQdvXHISQxnp0+kLQW01S3uQoo0l8C7GG8KVMCTpvOlUnUGsRrDtNCWfes7FH6bkrpBKICjwduo3CMan+5RgTHTYVx+nJmWBTQPqJd90Vie6K87cd1pBs3b1HrEaCaT8fDtHPcTHQrG4DOT1aDBih5aWZR4i7y/+YjvF1Bz0KExxDEthgNvPdL0I4czeCE0=","translations":{"en":{"changelog":"### Added\n- Add Inventory protocol v2 capability negotiation and transactional,\n  user-scoped idempotency-key replay for inventory requests. Inventory v1,\n  upload endpoints, and album endpoints remain unchanged.\n\n### Verified\n- Prepare the 0.8.8 package with the repository-local lint, runtime and\n  archive checks before signing.\n- Keep the unsigned release archive free of `appinfo/signature.json`; add the\n  official signature only during the controlled Nextcloud signing step.\n- Move release, documentation, website and issue links to the dedicated server\n  repository."}},"signatureDigest":"sha512"},{"version":"0.8.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/frake65/nextcloud-apple-photos-connector/releases/download/v0.8.7/apple_photos_connector-0.8.7-signed.tar.gz","created":"2026-09-24T13:32:47.071072Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T13:32:47.150355Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"UO2LW1b/Hzsh8XUWdT5J6aVlaw5nSRyyz454b35H/v6sfXqT0xvtyt1hYheyir9uwM+LVpvM5uVdbeeUJFoLkBiFLCSEHtxAdXESZj7Vb8zyYSTB+xgtvwNhhfFznwjfrNdE3ORWl3z0SaBcI40k4+GZqgtMPrwBqey28x1R8btLzjWwdTXXcw/SEJEp2bq/HUu4sh7NEWKq+HvDosZZUyAT9ypz2jdrQpgrK54G0q5ncBBaOUEdfsFFVrlbENTDJGbKpV8pmaob++FdpD9KN5AVnJ3c8fX/hnyPfGhY4aHI6m5cvK5QPzMuet18mVr9p31LaRqalejE4MtxoXV9e6aWVtK41cyig7Rel4a77U97BG3qWxPR9POON58/7FUjDsqv6lQvMzVXmSVOgpZkbRizp4mC3znhHW/QqwBvvvmJ2MfYO8mLi1JtslSKE5dEP7OIFyvUpyKQ49JLNCNMeQvugCYF94wMBNlZx799KpDW02XvWNYfbUc/rnLNUH92N+b5Jz3y5DJJr+FH6ncoPH2Vl4W4tzldDD2Xwopq8uyPmtu7AhhGbib85wMx4dkVxDzR0dEDHCNVfINmJr9SFAhUiy0KTm+lW5WpfiAxuQdhPznwmoSZ4R4aZ1yFexDQzCiujrj44SXm8n/RzSccy8Pw3k400jDzglc6596OXGg=","translations":{"en":{"changelog":"### Changed\n- Refresh the app metadata and store description for the Photos Connector product name.\n- Clarify incremental, non-destructive photo, video and album import behavior and supported versions."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Photos Connector","summary":"Import photos, videos and albums from Apple Photos","description":"Photos Connector imports photos and videos from Apple Photos into Nextcloud Photos and can transfer their album memberships. The separate macOS companion app is required and is not included in this server app.\n\nRepeated imports are incremental: only new or missing files are transferred, while already confirmed files are recognized and not uploaded again. Existing files are protected from unintended overwrites, and the configured destination structure is preserved.\n\nImports are non-destructive. Files already stored in Nextcloud are not deleted or overwritten, and items missing from Apple Photos do not remove existing files or album memberships. Requirements: Nextcloud 35, Nextcloud Photos, and the separate Photos Connector companion app. The current release supports Nextcloud 35 and Photos 7.0.0–8.0.0."},"de":{"name":"Photos Connector","summary":"Fotos, Videos und Alben aus Apple Fotos importieren","description":"Photos Connector importiert Fotos und Videos aus Apple Fotos in Nextcloud Photos und kann die zugehörigen Albumzuordnungen übernehmen. Die separate macOS-Begleit-App ist erforderlich und nicht Bestandteil dieser Server-App.\n\nWiederholte Importe sind inkrementell: Nur neue oder fehlende Dateien werden übertragen; bereits bestätigte Dateien werden erkannt und nicht erneut hochgeladen. Vorhandene Dateien werden vor unbeabsichtigtem Überschreiben geschützt, und die konfigurierte Zielstruktur bleibt erhalten.\n\nDer Import ist nicht destruktiv. Bereits in Nextcloud gespeicherte Dateien werden weder gelöscht noch überschrieben. Elemente, die in Apple Fotos fehlen, entfernen keine vorhandenen Dateien oder Albumzuordnungen. Voraussetzungen: Nextcloud 35, Nextcloud Photos und die separate Photos-Connector-Begleit-App. Diese Version unterstützt Nextcloud 35 und Photos 7.0.0–8.0.0."}},"isFeatured":false,"authors":[{"name":"Frank Kettenbeil","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEETCCAvkCAhQnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTExNzQ4WhcNMzYxMjMwMTExNzQ4WjAhMR8wHQYD\nVQQDDBZhcHBsZV9waG90b3NfY29ubmVjdG9yMIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEAwJOTj2O4TG+KnJ6mtX65PjwjLrARfp+x5/8HOloNe7uITzbe\n1ba23ucUJkayW6nEvMCQl6Dq5bChocprwDakffWE6ebYqbHjcRxKr/9Dyu2QwxHy\nITTrb+lMH37RETfIubpOh/mDfxCJHDs9RPXAnBTNeudqpdkl04XYDaEl7h93Kfbr\nEar+2dhc/Z5duMAzXhP0O0gZMYA85IqAsF5BodyU4O8lhWlcL3TCHXcNwcjs7zE2\nuMJHktICWeZdkSonZqilNj5AEBZjRbPsE00ZgHTVmdYVJV409R34yXwZeImbuR6G\n0ECSt5gvKJH6BDzNNT8jdbycitqiYmxrXdZ+jAMkj91taZsZIwok6vb6NFlOyy5M\nK46u4m81+yRDFM+Vo+Jm2CGznS1bs432GvPeMHGlsaYahctLtUo6nSfc17IBZqR6\no7n/m6YcwAqN4M3ViS7JObJZHMr9AuD6r9yIZ7+Xw6p4tKoJFzeKZ88muLKvjgT3\nEkEEwVMFzDYDu74lz0AfbJubOFCGsajsdeV/6ra9itKRj0gm4Qgp7qktaH3oB70J\naAWEb6K07TCEBpFmuUj4bj/PvCDmt4/frexIqe4pEGg0118cZpjehEQ+8UWRKYdA\nsW5YALVsxzpezrtK3p0zLF7eV6yI1uc277WTF2VZffT4sFv/T2SZGil0K6cCAwEA\nATANBgkqhkiG9w0BAQsFAAOCAQEAS8DLpcuO7djW91p3AQkUafCraLSSXrB19BF0\n9+lzys5K23Tmr6t57lHlLsVgs1cFcHfsneSJyC25prEEcmUb6xmL/I2cvMn9vqyq\n4eev2jhjU6yQIBDRsyGQNuytyoUoddaDnoldQwOEFx+oDa4w3EmQOGdzUfDkH2TW\nBXh0awTQcDPwwPTFKUkNk3KauOlJQL6456ALSSpsDe2wouVFn3o/3uLWToIew09z\nZ+5UmA2ZKZhVhbrh5mzzikz40sJtKThUagZaHj54TwQFvgIvIE7pOCG2bY3StyDc\nfgyBZkldwQwvh1XaLft4OwUOdGLvmzuEruD9qwGqC/G94TW9lQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_retention","categories":["tools"],"userDocs":"","adminDocs":"https://docs.nextcloud.com/server/stable/go.php?to=admin-files-retention","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_retention/issues","website":"https://github.com/nextcloud/files_retention","created":"2017-04-25T15:43:23.848958Z","lastModified":"2026-08-13T13:16:12.080248Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_retention/releases/download/v6.0.0/files_retention-v6.0.0.tar.gz","created":"2026-08-13T13:16:12.042143Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-13T13:16:12.133289Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"fjh3mAVW8cXcFbJ0fo4JzZsKSRYGJjrkyPVlTiIkxjw8aXv/Zu1jmX7pNaXXYKwlZV3Eg254HT3gYRRh9TOhG8tafWllkXozRVBUIIjhS6TUNoLlpUkxeaPRhX2MV+RqKSj5RWZ3A52yMBz//YiUBCiHJ8aAjQNPwL/wIeNeZJv53vMPw6/Db4sTUkjRV2ApYG6axUZKRW7/2O6niyz/4YYFD0W+e8qV8RnFy/EhfIZYU0vvJAoE9v2kpo7UwbBwIPmh8MMQ5MZYQ0wYOfPnD0AIA4Yjttp3mc9Evns2upexgX3fd6PHe+cwdRkU+zqC8MNrdf+puqpVBPL/ohReRdrjJeIqU7IcyYPfz1TThfw2/eADghFVWAjpAUWQZ7V5wNITrxGhAFumJoVE/ZNl+2BmLHDoacd11J04wygJbzhn4Wey9PlQJh4siOOqA7ymI2ZGqqC5e42yjlsg7GfXarRBMeaj2DDWkxKdUYLLWpXqd3Bx2DHfaDDzsmIQER803Ml9boX6HQro+GNNJqYS+3WgOoDB0qe88jwRAMjPX7ReS2a9VEj0q2tLSTi/5ClIsrDgZYM9vUTCy9bzw5ZAd6QsZxHGX65tKV41stl2EXKCfeWwcdueKP+OhH0Wjj0GsD66vDbscbgX6fpNxB2ZM6Ic5L46BI96QWaRK9JWmhc=","translations":{"en":{"changelog":"### Changed\n- Add Nextcloud 35 support on master\n- Add OpenAPI\n- Feat/add retention api events\n\n### Fixed\n- Consider upload when using modification time"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19yZXRlbnRpb24vbWFzdGVyL3NjcmVlbnNob3RzLzEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Retention","summary":"This application allows for automatic deletion of files after a given time.","description":"An app for Nextcloud to control automatic deletion of files after a given time.\nOptionally the users can be informed the day before."}},"isFeatured":true,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECjCCAvICAhBCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI1MTU0MjI4WhcNMjcwODAxMTU0MjI4WjAaMRgwFgYD\r\nVQQDFA9maWxlc19yZXRlbnRpb24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\r\nAoICAQCnewAFNtWJwud+Tu/Rtk/Vl69owIos97fmlesKPOYy8bniim7NKHWYOjO0\r\na4LOx8Xp1Ot5JqY0qeqbjp7fJVsFbD8BEw2ZwTgikHCVV6YRf7RiX83Jg8Vy2T3H\r\nxESCT3FUqwi+iH5cMmQ/hUrIxpAesHElC+f9wxnSGu/vntKZWXtZx8acGUROBZCj\r\niSVFfPd8LhH1tqU/QVCCYKuHZT+7WKych4NCkMxApHTHa3IJ0NFhAKB9ir9yFfnK\r\nyBBGm5QSjXvpk9tD+i1XXBHsZYn8YW+Hh/StFQ8YpMC76thzA8/9r6sepAvEtV9V\r\nSUbJTXAtnZ0EKD41j4KqE1MmnUMCQc7NEvysf69DwJVNUxyKXXpd0E26H6NWPIFN\r\n4X/iWf5IS6nQ6ull+iRwhgi0xuW6TRTqSF/BuC8sMJDbtpCS4u7Q0ii3UU39RDWh\r\ndzSHzjDRM36zI9gzFi5hYE2TLY4tjuRABTAf9Yii752Gbxpkd/TvOVsLrLsL//+Y\r\n+4GkuVxbhJBFsdL77i5hkyyEc+se0gQFsoRisr3f0UCbWRbgFZRvbAx8py2pLoUf\r\nQYyriLvRLZiz1b6C39V5E9WWFB/LGelKEQATQlnIzdkSjLKq6x8K83gwmbxvksJf\r\nw9UGIbZGo1S0OCQ5WApmq9wmB0kUHnw6eXl8U3VyCmaPx4PFCQIDAQABMA0GCSqG\r\nSIb3DQEBCwUAA4IBAQCFYL7FaYu4B4nPr0MHLI3rIaoT6UNkIjEThTjiUWU/PBvK\r\nOQuBt3uAHvxckvWaB7EVfVhQzqGxQfe/KsssBOwFP0SL5V5o24S3U8EUubJ7uY7b\r\nRp2ErnAGKvNfy6VUA72jrnEeCD5Rt54ZwralVwdfcu/rqvHuQqB69vW2seu+RYJD\r\nXbvn/b7TD8ViULKY/SnczAL6kwDMJXqq5xe99TFC6hK6ytAcjwkOx2X9WInVIqxx\r\na8qVA23j9tykWV9ctIMdd9hu7Yeappin8v3Fe6tAkM5zi5DE1ruSvqNoKcwXCGjg\r\n4ksmQ5XDeD/YtwslRMvYDa/SKvpxAIU3A2IzL4ca\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sfbridge","categories":["office"],"userDocs":"https://github.com/Rello/sfbridge","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Rello/sfbridge/issues","website":"https://github.com/Rello/sfbridge","created":"2022-12-30T19:33:32.562803Z","lastModified":"2025-12-05T05:53:53.704689Z","releases":[{"version":"0.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.6.1/sfbridge-0.6.1.tar.gz","created":"2025-12-05T05:53:53.696346Z","licenses":["agpl"],"lastModified":"2025-12-05T05:53:53.758643Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"EJLdlQU2TPMn7eJXxEYL3PdGfZ39gWXirgBKPCjfRXP0cShu4Z0Z+zwS1Kvc2J0tg/awopXmOMXNdnFpd9ZG4hPK3KgLimlKymVSZo9t5HzzSR2dDk8ybAZgeJR7okclTefmkWU8XyqgYXZma3Yt1EmkHUSzoHGm20CzUVJV+9l7Q3dkvyR0w6mbhBzT76yBUCDK3ARX07td1wtJzi7fnhLkj/ZYlN7e3rB9kvHMQQ//4pTGVOEfcCenvMDoNF+scEa2bHRExTS38SQv8HjXWWnQ77DdUcZrDiL9CEpeX2e9/Ljnhb5aqDFwCQUiNExHjKIlXd7KD3pttrpNkT45e3v1IEn8OT/ao11VcUVntR5fBNfcoHTKnOe19wNyph2iiUd2npHb9joRXoIcHypW5bpkKBsBfLkhXkf9SYNOs4V4p86HLJUu9eAJi1AbYziUe/pD+hEizNpuG0PL45f7TBjz6cnlmSlckRUvUQOxedC0eSwtaYrapDz8RbtgXnGbzVhToEDkDBfN/qnQ42ZK+9/tNlTpnJyWtdElt8SCgKqW++JqLKmmLx6s9YGqM6pBIgZmzhAMStZC22wGBqWHfkXA8L8zB1pUS/9L3+DxcbafGoQZIaT612A5y7uN0VBJAdufc7YrPEoBGJg0HFm7YzEZ5YmCa0uMUmHFSVNMYPE=","translations":{"en":{"changelog":"### Fixed \n- missing paypal shipping_info"}},"signatureDigest":"sha512"},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.6.0/sfbridge-0.6.0.tar.gz","created":"2025-12-05T03:53:09.886409Z","licenses":["agpl"],"lastModified":"2025-12-05T03:53:09.987037Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"p49jMmokpkwrmvx80TKEFR0lW6TVhCN+Ab2zMkkfJel1hwlho/5DBRCfyYWAfjUMCkYj84pBxs3WGwhg7e561Y1DCDOr806FZAOumfKFwrf3qTgeOq3DrGNin9Ya/cYqeHvbxlDSnYmL2Rd9jusMwUNWGoxtram+cnBloLD9YwV37fpsCjsu3aaqx0cT+kVGMJdIc1pJ9/whm1x2u/tJAuUW4GS7dFAKXVYSfTAFzUzHDutBDORttOuND7F1mIrYCGyORexcSqE962ARcGPiYRHZ/EkJEDLUonCArQfP1Vj0Kb8hurVFVruMULoLPTYlVkY4tDCAEGOJ+cfJoqa6evAstuQMo1pHa3aptKpx8oi4m9ZnfRiSKhBmGyJEWgJah/o/wgkooBJMs1QMW1as4fvgtMsv8elBh6QakUI0eJhYy9lBOxN/ynG5j8ZTQNtvRoci77zyJFQLSlrgLVUyIeQHfsJS3JBl1nrPSMQ5ULmrna+2A9sK6L1RntHKGnLcS5kVNQD0nM2ZTRHjSn61bB/Pccn7aYz31caN4LW5Q2gWXCqnnB6xT+rwXAvGRaEmKFi0yHrB88qlWD9l+mxManDRO2srVgiEbDMEeik8AbkDUichKMmAf4oJaWwwNjroFaOfLM6+0CY3EJ28kq/CukrTIGO4XRg5mNbCaYzl9Wk=","translations":{"en":{"changelog":"### Changed\n- store bank account name in contact->Bankaccountholder__c\n- use Bankaccountholder__c for additional contact search"}},"signatureDigest":"sha512"},{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.5.1/sfbridge-0.5.1.tar.gz","created":"2025-01-06T18:15:32.077525Z","licenses":["agpl"],"lastModified":"2025-01-06T18:15:32.132969Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"kLZOV0nS2r4drOtiVAu9Uie022smxFgl4PGswg2YPJYpw2l19HoR8XfpJGWKuCd+wRwEQxZi5MaKl78uW9/Ho5kMTptVuMJR/YFBCjtlPKTnsz+H2x43COa9I5IzHwZp6DszQu8ZPVd1LuAUBSHmE2jMoZB8dwog5dzuuuY4xC/kJeLIyGlhmmaLo00wN3XYmQmzWx6AJXQP3sNxzoidLoKUI1hMcIGJBlU5cldlLRae2zqzI6Isin0BpklzcVF7MnBv0Gi25MYM9YjlXSB/vNqyzS+vc71PHbqyvaUemF919yYkdPxgd2WPaJLKRB8bi3Eo/1+6bDF6E7LAo8L+SD881SoAYpKeqHBIitVuxiBLkXJFlY7HI79OBgMjVux1yKWIlSDtwP8INekPvpkVpYCuk7e65YqNMN0f1kCVjeV3Dfw6LKv4+YZamzc5a+DoPcURZsZHMlOATBMc+wcrjmaBu/5/ZOwWLgpBTY/1DxjLO7hwalDBlke34M4L0OzV75CGWw6tcacpH6x8Gmq7HIY8i61KVWy3iRLq7JIRabKhB9g01mZgP6y0QtQoXYLchG+L0k+BCFZ6hT1t0cenXgbJoo/Uh/V/x2K7pEpYVEQ7XbJsgNimh2zE72JuUV9tZn7R1prnfuIq6hoLZyx5iLZIxCQcldsqQuPQu5x0MWI=","translations":{"en":{"changelog":"### Changed\n- bank: use valuta and not booking date"}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.5.0/sfbridge-0.5.0.tar.gz","created":"2024-10-24T15:28:07.954224Z","licenses":["agpl"],"lastModified":"2024-10-24T15:28:08.014805Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"sc8UOJh6Rg78wz/kuJsht9u+NrBfvjhgzRrcwBsPw5A4GUKLSvT4PP1OV/cUWRcy0sV/8s0nzffla5Xr5FdWcPdI91xSJ/VlKO/982JLMvS1uxP7vh2vpZN73WZfpNAIgs1C58A4ih4Osoo7MfbXbEXc/3aATZxgNApsuhk4aXeIFp7aPApZE9D/03vNeSvO6XQ3ZlMGsk+1u4pw6yFdlhpySh6gf27B+ZgVcrk6Qmbi+ZpvHq3MSoDOtZ40fmrXB82xfWXz+fS0aQuAZlzkM4jOBu10tGruljckzZXX7AAXF0oUk53JUUYcwYy+O5RHtT215cK/WxzxWdpxEvTHrXjy4ibQwIkgZ5HkMswI7rPEjzf4i6CL+79C69ROHkbkPy2H5vJyynONST75kGpkg1pza22eh7akITyO29E775GXGHlh68gqhJy40aR54W9IoMKVQP9NT+3x5PFwuZ0UPIBygwHxNFotSZR4pr5INbVil6oYR7XU6u1j/wG7187cWcts7ZnqsQbSH0bii5bVTC+FsZ5Zg7aKkyV6cOtXxW40vhGN41Zdj3oxiEkM9VKLPeBF5ViiWCGGw1bJKR/oHMZcJiIGfl0enCwLyKbrjPwz+X9xPwBZ2rVs62W3NJiizAkarIQq0hYgovvD0GO9G61AXC8x8By+nVF2R0IY1uo=","translations":{"en":{"changelog":"### Added\n- Post compare results to a Talk room #1\n\n### Changed\n- SPDX Header"}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.4.0/sfbridge-0.4.0.tar.gz","created":"2024-03-14T20:37:38.077977Z","licenses":["agpl"],"lastModified":"2024-03-14T20:37:38.180829Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"q/NJhtN9VIWFfW4CdK1iBSpUsJMe+cD8XhAL6x/r33bdnnc1VQrCWsmC6WQN9ww0H3GfzjX9LBL/NC1g9YvRl3LvsKgkca58Q4oqGdS2aSJSYKA9/4K8fxssWz753cVwyQSlZ3F096phhQOTFP5gp8MpFECpYjQbvvckwJSeWZQF/pOleuG17q7QPTcVK9NeuQkyP+QOnHnT6cERy7Hq9+dSlfmQiNk8g0CgfWR5AWpI9PDqGWUOr+jBW/8s6mkKOdaD/uYbQb8AzxlZXUAWJsONUW5MQV+jfdRPm729Ux5vZWVcRbF5OkAb7IVS5UtaBNamJdxL+io0ZA/JxwAzNMz/7IZXJhV43zwaEOIHvdV1m5J2CIfwqKZ5asqM7fLU6PD/V7NZ8ekRt8ZwmJFk+ByuF5T6mCtVKjy4F3eGblyQfUlYgtMpJsT8FyHAkMm5TgzmJluVuoEhYn5cvczzZNlti3KcGSNXgJsoq39dHTDsWCk+Gdd6md2h4xorqXTx+KKXr3avd8ZDxt7ogzaRwfHMUaou0AA62hEcDOzYfw/oGv1V3kGs+egesTft0/6sy5tC6+HPFoOxCj/NM7BQYg9jTaGPWqlgkP3LjE7gS6Q2EkSGaUNk1df/m/KPc1oY5YAfVuzQZp6B3mmzdrdC0an8S7uX3CcCHvfifvjAfik=","translations":{"en":{"changelog":"### Changed\n- admin setting for excluded paypal transaction types"}},"signatureDigest":"sha512"},{"version":"0.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.3.1/sfbridge-0.3.1.tar.gz","created":"2023-11-03T13:03:16.039562Z","licenses":["agpl"],"lastModified":"2023-11-03T13:03:16.227867Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"C3qPLCwDUmLDEJEzCoLZBLU63h1RiEJ7yxZnGvS9XlKTjFDw8XLQzQ/7OBPk/DC+EPOpSfnTVHlmdCHJKRsN3gppH+me+BdcC3RhYJ5OdqPgTS+8tqqdx0FDh//YM7LCKvQtvVz8sTa2vamtc9JqyQ2azT8ONmUECHpt+GmPFbvNWO22/iSq0UBHyWaccPWb2g/UmnH3NY5Vxa4I4EoqsNq1Wbbgm9FrLGK0Bfq7lReY4JqvF7JfGoARRWsrkUhpHkxxWYQxjosPPa4Haal3zk4G/waUQBBWqRjtt/+HTdpmqUqZOF6hZ39YMnfz2xWhwBJj8l6QworJ3gQuJVU5fgQyVUlKKKdl48v0PvNPditN2+iya4X9wd1F3YnSFr4r1Hxqv/YSCXgLUc7ZjTJS5JkuamEo0Yf7r23WJYRa5D77cPb0O/B8awj54D4nXYX8ljgnC38Y62GCEmZTvE+oqkLXP0D9jZDYrMbGIzp+FrTmcIepFc34kl7ndqhkh5aczAZaeemJkO/Q4kCxKOovG/Mecfr3wzB6ArdRJue7pgV/gXVMNTlWKygePPEwex1TSs7Z19gRtH8sQKSwgKEDil4EKifHF0+e76k9gw9Njn7hbZBRqY9Wjl7Roa7UbjjBGpFmzH3zcFP+iETnSYiNabDIwlPNFKq8KMH/dIPpzm0=","translations":{"en":{"changelog":"### Changed\n- include amount in notification\n- copyright"}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.3.0/sfbridge-0.3.0.tar.gz","created":"2023-10-22T11:04:55.300217Z","licenses":["agpl"],"lastModified":"2023-10-22T11:04:55.429181Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"n4YNOEVdSxf1OHSJD1GGzCTLg+YbZpoThsw5jxtdEMfQ5pVR2FgxSs9sp7LfZ4kk yNlMaylrh1V5G4Kt5wOvAa2wrr1zn5hiBRKoggKC4cjN1XtjnxJTNsO3IqopkUvo X6XC3wvFtrxrY2hEHlWm0J4IbxvxX18UprpD83gkdrKLeW4IvXmQGgS4u1MRqgiK j7EReCJRMbobSl6uf95awMCIp9s/0LShsl+HlzjQwmzS1cRBgKvtddJUGCxyu0CY amt3tbbRg3x2wdKPDOI9TJz7Hv09HuIsg5l5TGIjaInbpd9JqNxgvdqd3/IwZJrS Y9D8OKrZnaIiq3L7KRQOZiq0D558qhGYV50jW+TEinz+BBw6JvBWK5xXkgPIyTLb LM/9TIvQWb3Z17rfkEfYmpt0/+/KCTfUbObFYLjaGy3AGyxgfLbdAD9bVvz4dthH HXA+DjaaWaLz3Ht+2zbrD+I6eRdm63rk+l9+9P/XeV+9ZE5qE/eh6T4kjCq96tb3 LpdHaOMfhacIB/dGmKSX2kfR8xE9D6aPLU6PY3hFLK0gvNoSMaP520l0o9Dhh1SN +AX6Os8R/6AhKDMwJ/N0eHCgBixJqhKwO48/OMVef7iyuBkwBzKS+v//dQal0LXa UXX7Zyqf+wEh6v4/iU+d7jINIlSi2s3CqqY+1fqPQ6s=","translations":{"en":{"changelog":"### Changed\n- send notifications to users - when the app is enabled for a dedicated group\n\n### Fixed\n- hourly background check job"}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/sfbridge/releases/download/0.2.1/sfbridge-0.2.1.tar.gz","created":"2023-10-21T18:48:58.264386Z","licenses":["agpl"],"lastModified":"2023-10-21T18:48:58.309179Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"l/C9Hm4VJcogkh/zXvvSMFPzaYgUUgIsrHTW5hnR/dfI03rdyxa9O0pYhMnn90N6a3N+MGbVl4uYMu3xWylZ9gEtdEI5UEaeLUCN1/HN1XhdmPy9EudGWeq+/RYz74s3wCOGJMWMe8J7wMCYIAcDsDfeYeD10+aqshAJIfHRUGCNYMT1xfxFL9RhlmqyXwzb5KKlPBYv0I5UKTfJztg9VpN1W5ez+Ct3H980iFAmP3d5phWMRcT2UaOji+hCOa1ld57k53J+2t+PaE6GCu6Mkry4KoBPk0ikhkcqUDj3As8rWq0xz4cZ64713Sro6mO/4oBK1D6n8PVudmWdbQFTHLiZesFT99Ln60MwPLS8nqhmNk1O1othCAONU8pCfEXx7ylSNcAZAsc37yA0/GKp5Vx422p3oXPdERoBiA9jC3i/t3T14UjNMijRutL1RrrrLHUmBnUeTpuIUwHb46VlT3EroEM7huQOJ1Vg889QRRDp/XSlV1cTLOQ+vwszPnwGmi3AVkRQayzjkah8srkOq13DUopplKJvZOyxAYKMDP3XLgWPQPg4CcKgocGwqzA2G1uePHloX7JgT0I0rB6c3JN5ePRDc3B33WOGrewCX3hkO8UyclrA1cjXKoyJw3b0dk909I1mQQhvd7hCgWTVUImDtxLJ0ulvyDNk1+jyxkI=","translations":{"en":{"changelog":"### Fixed\n- handle empty token"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL3NmYnJpZGdlL21hc3Rlci9zY3JlZW5zaG90cy9sb2dvLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL3NmYnJpZGdlL21hc3Rlci9zY3JlZW5zaG90cy9hcHAyLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL3NmYnJpZGdlL21hc3Rlci9zY3JlZW5zaG90cy9zZXR0aW5nczIucG5nCiAgICA=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Salesforce Bridge","summary":"Sync Paypal or Bank payments to Salesforce","description":"This automation in Nextcloud bridges the gap between financial transactions and Salesforce.\nPaypal or bank transactions like donations or payments can be synchronized with the Salesforce Nonprofit Success Pack (NPSP).\n\n##### Features\n- Paypal: Read transaction history\n- Bank (via API): Read transaction history\n- Salesforce: Create Household/Organization accounts and contact on demand\n- Salesforce: Create/update Opportunities/Payments/Allocations\n- Salesforce: Link Opportunities to Campaigns\n- Nextcloud: Automation via background job\n- Nextcloud: Notifications for new transactions\n- Nextcloud: Using Talk room for update history\n\n##### Please check GitHub for details first!"}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhHDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMzEwMjAzNjMyWhcNMzIwNjE1MjAzNjMyWjATMREwDwYD\nVQQDDAhzZmJyaWRnZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9V\nJLirvoSb/7jz1Yr/HTm1l/7EKoNQMrwjXK4prdpLGB7Jpq8dtaQqbTtRNQ1DFRAA\ncoE5VThwuBYZrZY4nHPdiUA+niOC6WgePF1jUmM5yd80sTzlgvj+MG3UMPqo3Qo3\n9H22PPAfZ9qWHBLnAFQvL7u/UnxSP0DPzids3fjZ9HONlEHDaVKs/07uKYaHejD1\nXnEBCIXJVe2RpLApeYaz8doJzhEammlJGuZseHvsM4ZPVWvF6Z7CvC//JAlE9zYR\nXhFQxIOPhOrAlPWs8rbTBBHesZB37Akb746aYDQ2YJmGuDel+rXYo/U5Ygg1pOBM\nVmpKKrYcGx4bt/PUCMAxIF3QGHyZDMCfb3YYLhEt3dyuDO634vIhVtRg6GNXvcy9\n1ICP5Or63LmzP1kipba665gsoDgkzyVinPTQOlaq8nYDHXiezQLNIiZ0RQKk/u2w\n2d2bOL3a/Ui+vTM8dmAYHN+OvRGlOusXww5XtS6viGY+92RZ24oFeOfR9nezM9W6\nw9U7pwNptKGDOJ2JaVJVkSB2bcW4HmrudvSNttc0T12QDovY/1nu9hY2/5SslRGl\nIJBdj56qso9c/tOLX5iGVO/m+F0m0HqZzRO4CCd0OYxTBadC68cLWDiXfZtS8Nk6\nHvUejw9G2pIYO6/AjtR5m9rB3VcSfXPI/qc6R6C3AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEgU5OzQoXDQYfCDn/r4Y7UvXZmZF83TX1Vt7UVsnhboo5ZVvv45pkb6\nvxU82Rh+44Sxi5E5Yj7ImLdPONPbllfcxSwFWAq1Eyoi0Zca0uqj/Hb4fxl+I6BV\nCHf6VmpUNoa0/e8olaiRffbM1xCB0S5sBfrPRU//om+rFKMC7rbU1gwj9UAcK26v\niLcHQBF3yKIof0KfKmIQzbPnDgonlXgY8a/qB0v4TxG+9EZs/K1gBou7l9cooJFi\n4tIKCM9WxdIKFQdd2lgZw7swrfDIOiD6BJKyAwDcJio+0/32UWpq0V4znWhaaSfM\no7ghG6ETg11PRRZ6CWTtzCF0mLXR6xk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_excalidraw","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_excalidraw/issues","website":"https://github.com/nextcloud/integration_excalidraw","created":"2022-09-20T10:14:40.939073Z","lastModified":"2026-08-04T12:51:13.794298Z","releases":[{"version":"4.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_excalidraw/releases/download/v4.0.1/integration_excalidraw-v4.0.1.tar.gz","created":"2026-08-04T12:51:13.782522Z","licenses":["agpl"],"lastModified":"2026-08-04T12:51:13.825375Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"SO97IXm5xBVFkiOGpP4Zp6+Q9cYdLRKORsxIUTiT+br0V6xGGTF2R6SU7u4RQAuPF/EmEXT6+mDEY72CJAVFbhBGi4TxjXdbU8i/lybzQD2w44lvly8N9sGeBokSe2cw9Hj2LlENqNkfHvh7fwYYbA++H90yynpylC4xPjdARFjrGXGX9aiFY7dP2DiyPtzhSPiDYNVvUwmse+jMXzY5HSdy2K3zMomJhc+5wDqIb0SIJDGhBT7NXL24+6vVhpEyIIRwzgplAs6MyDo+TPJwso95a6m09/+8ITO22p23hbS1bvkVTAZ09an+EF7lzx7UHxxI3yXiTCxzFlwjXkwCqCf+LpSLY06xi/jg6lFma8M0ISAKt74akuslT64S8GwHQZJtbg4vOGXqNcaEfUMAfOdQswov4VeXO2BYXa2b7PolPg8fEF6FIyffpirqOqB+MHGn01buVRmPv7Yyd1+hs6dEKb7ZERVZajPNx7/n59M9B+9UMU8mzCsHQW0lLFRWnvU/mMuIZIjwKevXJ+OUuJ/+id6yNz1Jmkf3GWit7XZdZ8OxglO1KsOmtEscwdcavYyfqLNFDoyrS9PIhXyIMJ+2QTGTUxcERntTYUn4VTZ5axfZiz+ShwQ5tu1an4/MnrYFVwHSgle4a7ciF1SiHsBC/tcQmHdjC4UzCbnp5q4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9leGNhbGlkcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9leGNhbGlkcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9leGNhbGlkcmF3L21hc3Rlci9pbWcvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Excalidraw integration","summary":"Collaborative whiteboard integration","description":"Modern collaborative whiteboard in Nextcloud.\nThis integration app lets users create Excalidraw boards, share board links and open boards directly in Nextcloud."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhHXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzI3MDA0NjQ0WhcNMzIxMTAxMDA0NjQ0WjAhMR8wHQYD\r\nVQQDDBZpbnRlZ3JhdGlvbl9leGNhbGlkcmF3MIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAkmzavsxyWSzE/1d2S0Nyp4KHHAcBxWOoSPd4esiTPml/1ZCb\r\nIwezep52xxHeLT54xdVpIk1Rzap0yNUIAWmB9EnhDLBiL1xh6oz/PrYV4PfiGmMG\r\nZOy1hYxdSCYGrJ+1d8sctm+2uiuOZ9NDZ6h3Wrys1dbCkI1wbGRuORBN/9xeq8vk\r\nRgBrEwyu44f7tLGxe/rNnFn7IgpbQTSzmeRsOBwVUCql1mQG/3eE+269gyApf+4l\r\nMklmdNlOsNdgm8eCsluC8juvkFqHZ9DKAtM72mu7vszl/onIrT/egP4pLt9JuAq7\r\nXeBxFGxLVPAcDSvt5rWMtzwK9918w3jZ6YegT68cyXT8OidtwQJWkjCJkuJst7FB\r\nZW17iEkt3RLxkXkyD5TtmegRNrME/9DRjColf6Nsgt8984vB5JaUeybWWcrg2wwV\r\nr54u9SoVI9AeyaJ3TOpw/WJQhR4NVSrgZ/5RJot4aTap+gsFqxEwtIQERLyRt8+H\r\nnpG1sjUAGIGapZrhHtMoUpGYCTQqhxGGHuUBbKzr6/DPeSKhcaQjOyNDWJQPRpkD\r\nAcMjq6SyR+/ggQm9b5gVXDo7S+1QpvbTD/SELoqIqCVlvEYKMAA+gqVrLsj6us6r\r\ns4+zyi1OVTTqqajlcLKuuBwPue0v2Y5+CGJqGVY5HWISNocohozxiiO7CnUCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEACvrvpwe3Dv8gmOr65dA1qXP/BF98IZ//YAIo\r\ns7SkQ5ycg1dFyLj6mG6RPlR3v2qO4Zlsie6znIaaX75XlMgg/Mj7TYJweCI93oE9\r\nKDKS+SzulxFk5qyoXF1NFhl6XJRljwao5KYPsQrKYXjLHKmYCb2VwQqJXJ081htv\r\nxMjEveFUNDY0HKI1ElbdyzfUPUH/sguvduUQFwDnR3nio1d24fp2HCJKHrxeZU17\r\nk4kf6FjeAITQQF3tWovYV0bCyfO4o5FP3QZ1qFC3HRWpOfhsr0ZYbqKzOXEJd0ts\r\n9VpMQ/VOE4yGwmq8oGON2YU8oqyyY1fTrPJwX0A9kRRLepqqjQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pulse","categories":["tools"],"userDocs":"","adminDocs":"https://github.com/hotochan123/nextcloud-pulse#readme","developerDocs":"","issueTracker":"https://github.com/hotochan123/nextcloud-pulse/issues","website":"https://github.com/hotochan123/nextcloud-pulse","created":"2026-10-02T18:04:33.805656Z","lastModified":"2026-10-03T01:58:27.572284Z","releases":[{"version":"0.19.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hotochan123/nextcloud-pulse/releases/download/v0.19.1/pulse-0.19.1.tar.gz","created":"2026-10-03T01:58:27.566097Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T01:58:27.613367Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"gaIzYS6SxmZWUgQOM2e0b47fZgLCkTT7rmEnr8r8uWzoMri3tcrFnHQiY2LIr2ff\nNDGyaWl1Tyv3MsUiLZjujjUWpDrhI1UAAjxYZVY5mH4VcHfNTJOW9BnNgzii0jwk\ntUAAZuuFuzBiOOJ9CMfrUFx8dhDVjS8snX/7AYsCt7VEueTSZPODsDnSW77tH9WR\nKYUCqGa+1dYJ5NH3P+AICat4ay4+O6O9HrgO3F9mb01mt4RAnmSTv+wWfgEb4T1C\nvHS06ysgOo2Ha0PsBeOSX+FglTSwpqBiyuYISNbOJ0g2ahF+TOGaHFCKIK7NTEFt\nPrNd0bDoVy469BSp4gH977GbNNlYVIxQ4dUbGCc63JbieAAEUfuyCEk9nnWgtaeq\nus41a+r2Nr4Xsf+KwiT7zefWkt3NqrUxhthvcWyJR4gqEQMD0Ig5key0+Ks6gKV/\n6XLNKyadA2ld4iqG9hOUH7bv6pDXYJQe34I7BQmnt5Wpq8LxNME032Qi8xIJn5+P\nj+ekmfkNgecP4Vfjxv8Y06hMuWD7OO5h8HYR+jZ3eiejII/JEa3gZ3siaguZ9zBP\nlznJnqcQjTjUtOBJad5WtERUrVPT3QbgH+nEgVsMAc7jgIf4grrem/th3OOzRpM1\nkk07BVoKnEdCBYEb6qjcrkZ8bMeR47fv9Xe9dWDYxj0=","translations":{"en":{"changelog":"### Changed\n- The App Store description is easier to read: a short introduction, then\n  polls, quizzes, presenting and notes under their own headings, with the\n  features as lists. It now also mentions the self-paced quiz and that rooms\n  nobody has used for 30 days are deleted automatically."}},"signatureDigest":"sha512"},{"version":"0.19.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hotochan123/nextcloud-pulse/releases/download/v0.19.0/pulse-0.19.0.tar.gz","created":"2026-10-03T00:35:11.581335Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T00:35:11.653478Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"Dvfhl1F1oCgY6hgKnhuwPFf9EmDtuocaCs8n+wUHyz7VIiNT69IpxRkuGcl7uy7ykiwHuDV98rFqysRODMR/QEC4WMAjqGUK/tHKcv8SJCiQruDhqNgd2D1WP3T/bXszvcr4UGpFLpHS9GzEFXtSrV6TeO8JYPvHOGw7sBi5n23v16vVqBAI+3s8DBHpmrfBPZCgKF59cW0XNNdK00BYN0VW+9CKQEJ1wa7buBJIeI1nRZLsM+sMeF49b/Fe1DB3KUM8tU/domRf0EvzBrMQ3iFF5/x0RLe0VdeLS/sOZ777vh6j0mPdXOddA2I2E7ZlQ35wWkGMrDYniBdRqrq06xtAOm7ppoACRYtb827ONxVDC4m23AbzcH4grmIA5Kuo2XTN/UOyCyiV69GBOQAKLBA4NMJcKP6bV4vMgYjfL/oI89t8voQklh+3ZW0LcxpBEUUZ7jWFXcv+3N6LX32QZxeZDkZkrqSfmuhv3tlj+CFMmK0i2xWAcR2LpbwOwAtT3ExtaPYs9oFIjj6byyU1YHe19+cJTMERRF2b591AKlKMxfmKD3IkI1vyOQjVEwjrjztC5UgqmvQCkesWHTnY3JnxrjzZTlyGId4V7KePJyykWIj5JsrsRS7e82TyWMmcFDxoVfdP59vzoIYo9xeP2u147oMVLGceQE3rFMtDKp0=","translations":{"en":{"changelog":"### Security\nFound in a security review of the code by AI agents in September 2026 (see\nthe README's AI disclosure), most important first. What is still open is\ndescribed under \"Security notes\" and \"Known limits\" in the README.\n\n- Wrong room codes no longer lock a school or a venue out of Pulse. After ten\n  wrong codes from one address within 30 minutes, Nextcloud's brute-force\n  protection answered every participant and projector request from that\n  address with \"Too many requests\" for 30 minutes — valid codes included, on\n  every phone and the projector behind the same school or conference network;\n  only an admin could lift it earlier. Typos in the join form were enough, so\n  was a room deleted while a dozen phones still polled it, and so was any web\n  page with an image pointing at a made-up code; the join form then said\n  \"That code does not exist.\" Now only unknown codes count, and only unknown\n  codes are refused: an existing room always opens. Requests from an address\n  that is already blocked are not counted, so phones still polling a deleted\n  room no longer keep the block alive for as long as they are open.\n- Scripted ballot stuffing can no longer slow down the whole Nextcloud. A\n  script that votes or joins without a cookie could add thousands of votes,\n  players or presence entries per minute, and every one of them made each\n  phone and the projector download the complete results again — at 60,000\n  votes 2.4 MB and half a second of server time per poll, on the web server\n  all of Nextcloud shares. Now:\n    - phones and the projector get capped results: the top 100 words or\n      free-text groups, at most 500 compass points (a fair sample; the total and\n      the centre stay exact) and the first ten rows of the leaderboard plus your\n      own place and the people around you, each with the full count — the\n      projector says how many more there are. A word cloud with 60,000 words\n      now costs under 4 KB instead of 2.2 MB. The moderator's results, the\n      summary and the CSV export stay complete;\n    - \"nothing has changed\" is answered without reading any votes (a change\n      marker in Nextcloud's memory cache);\n    - new identities without a cookie are limited to 300 per address and room\n      in ten minutes, and a phone counts as present from its second poll, when\n      its cookie comes back; made-up cookies add at most 600 presence entries\n      per address and room in ten minutes;\n    - a moderated quiz takes at most 600 players (`max_players_per_room` in the\n      app config changes that).\n\n    Voting again under new identities stays possible; the README's security\n    notes explain what remains.\n\n- A word-cloud vote carrying a huge list of words no longer ties up the\n  server. A 16 MB request kept a PHP worker busy for more than eleven seconds,\n  because every entry was cleaned up before the list was cut to the allowed\n  number. A list longer than twice the allowed number of words (at least 20)\n  is now refused with \"Invalid words.\", each word is cut to 200 characters\n  first, and free-text answers and nicknames are shortened before they are\n  checked.\n- One account can no longer fill the server's disk. Question images are\n  stored in Nextcloud's app data, outside every user quota, and Pulse\n  re-encodes them — a 1.4 MB image could become an 8.6 MB PNG — so three\n  copies of a room with images wrote 821 MB in a second and a half. Rooms,\n  questions and question texts had no limits either. Now each account has an\n  image budget of 200 MB, at most 200 rooms, 100 questions per room and 1000\n  characters per question; creating and copying rooms, adding questions,\n  uploading images and demo votes are limited per minute; answer options are\n  cut to 200 characters, and a free-text question keeps at most 50 accepted\n  answers. A copy is checked against the caps before anything is written and\n  removed again if it still fails halfway (such a failure used to be an\n  internal server error). Requests sent at the same moment count again after\n  writing and take their own write back when the account ended up over a cap,\n  so a burst of copies can no longer store more than the budget. All values\n  can be changed per instance in the app config — keys and defaults in the\n  README under \"Limits\". Creating or\n  copying a room shows the server's reason when it fails.\n- Rooms of deleted accounts no longer pass to a new account with the same user\n  ID. An account deleted while Pulse was disabled — as earlier versions were\n  after an update to Nextcloud 35 — left its rooms behind, and whoever later\n  got the same user ID, for example through a login provider, owned them with\n  all answers, nicknames and exports. The daily job now deletes the rooms of\n  every owner that no user backend knows any more and that left no login\n  record behind; the second condition keeps the rooms of real people while\n  their LDAP or OIDC backend is merely switched off. And participants' polling\n  keeps a room alive only until 180 days after its owner last used it, so a\n  phone left open no longer defeats the 30-day retention.\n- The voter cookie can no longer be planted from a sibling subdomain. Another\n  service under the same domain could set a `pulse_vt` cookie with a token it\n  knew; browsers sent it along to Pulse, and with it that service could read a\n  participant's own answers, free text included, and vote or rename in their\n  name — in every room, for a year. On https with Nextcloud at the root of its\n  domain the cookie is now called `__Host-pulse_vt`, which browsers accept\n  only from Nextcloud's own origin, and a request that sends a cookie name\n  twice counts as having none — except a name such as `_.Host-pulse_vt`,\n  which PHP itself drops and which therefore cannot cost anyone their cookie. An existing `pulse_vt` is taken over during the\n  first 60 days after the update, so a homework that is running keeps its\n  players; after that it is ignored. Under http or a sub-path the name stays\n  `pulse_vt`.\n- Votes are accepted only from Pulse's own page. Joining, voting and \"Next\n  question\" need no request token — participants have no Nextcloud session —\n  so any web site a participant opened could post to them: a hidden form\n  could replace the participant's cookie, leaving their quiz points under an\n  orphaned name and restarting a self-paced quiz, and a sibling subdomain\n  could vote or rename in their name. These requests now need the header the\n  page's own script sends (`X-Requested-With: XMLHttpRequest`, or\n  `Sec-Fetch-Site: same-origin`); anything else gets 403 and no cookie.\n- The development tree is no longer public when Pulse runs from a git\n  checkout inside the web root. A shipped `.htaccess` makes Apache answer 404\n  for `node_modules/` — whose demo pages include one that can be made to run\n  script on Nextcloud's origin —, the screenshot harness, sources, tests,\n  build files, `.git/` and local `_*.php` scripts. The README no longer tells\n  people to clone into `apps/`: it installs the release archive, or the\n  runtime folders, built outside the web root.\n- Hosts of a moderated quiz can remove players and lock joining. Anyone with\n  the code could put a name on the podium, and a player could rename\n  themselves after answering — even after the final standings — into\n  something abusive or into somebody else's name; the only remedy was\n  resetting the whole room. Now the \"Only for you\" panel and the standings\n  have a \"Participants\" list with \"Remove from the quiz\" (the player's answers\n  go too; they can join again from zero points), the menus have \"Lock\n  joining\" (the header then shows \"Joining locked\"), a name is frozen once its\n  player has answered or a question has ended, and two phones that join at the\n  same moment under the same name no longer both get it.\n- Lookalike names are refused. A fullwidth \"Ａｎｎａ\", a Greek \"Αnna\" or a\n  Cyrillic \"Аnna\" was accepted next to \"Anna\", so somebody could pass as\n  another player on the projector, in the progress view and in the CSV a\n  teacher grades by. Names are now compared with lookalike letters folded,\n  and with PHP's `intl` extension also against pairs such as \"PauI\" and\n  \"Paul\"; characters that browsers draw as nothing are ignored, including\n  the ones Unicode has reserved but not assigned yet, and another spelling of\n  one's own name is checked like a new name. Now and then a genuine name close\n  to a taken one is refused; adding a letter helps.\n- The moderator API no longer tells other accounts which room codes exist.\n  Someone else's room answered \"403 No access to this room.\" and an unknown\n  code \"404\", without any rate limit, so any account could search for live\n  rooms at hundreds of guesses per second. Both now answer \"404 Room not\n  found.\".\n- A self-paced quiz can no longer be filled up by a script. Joining without\n  ever starting took one of the 300 places, and the limit of 120 join\n  requests per address and room let one person behind a school's NAT use up\n  the whole class's budget. Now only players who have started count towards\n  the 300; up to 600 can join, and at that ceiling people who joined more than\n  ten minutes ago and never started make room while the quiz is open. What is\n  limited per address is new names — 120 per room in ten minutes, as many as\n  the old request limit let in — and not requests: a taken name, a retry or a\n  player coming back costs nothing. The request limit stays as a mere flood\n  guard of 2,400 per address and room in ten minutes, now in moderated quizzes\n  too. An instance that runs larger events raises the ceiling and the count per\n  address in the app config (`max_players_per_room`,\n  `max_new_players_per_address`).\n- Images uploaded to the same question at the same moment no longer leave\n  files behind that nothing deletes — not deleting the room, not the daily\n  job, not deleting the account. The upload that loses now gets \"The image\n  was changed at the same time elsewhere. Please try again.\" and its file is\n  removed, removing an image no longer undoes an upload that arrives at the\n  same moment, and the daily job sweeps image files no question refers to\n  (once they are an hour old). A room that cannot be deleted no longer stops\n  the clean-up of all the others.\n- The PowerPoint add-in asks only for the lowest permission level,\n  \"Restricted\", instead of \"ReadWriteDocument\": it just keeps the room code in\n  the document settings. Script that got into the embedded page could\n  otherwise have read or rewritten the whole presentation. Download the\n  manifest again (`office-addin/README.md`).\n- The add-in shell frames a saved room code only if it is six letters and\n  digits. A code of `..` from a shared `.pptx` or a link framed Pulse's\n  moderator page or the Nextcloud login inside the slide; anything that is not\n  a room code now opens the code form.\n- Voter tokens, nicknames and answers no longer appear in exception traces in\n  `nextcloud.log`: the parameters that carry them are marked\n  `#[\\SensitiveParameter]`.\n- Release signing (`build/package.sh`, for developers) no longer puts the\n  private key into the production container. It signs in a disposable\n  container without network, created from a Nextcloud image and removed with\n  the key right afterwards; `CONTAINER=<name>` is the explicit opt-in to sign\n  inside a running container.\n- CI checks that the committed bundles in `js/` are exactly what the sources\n  build to (Node.js 22.18.0, `npm ci`), so a change hidden in minified code\n  cannot pass review unnoticed, and the GitHub Actions it uses are pinned to\n  commits.\n- The README and the App Store description no longer claim that the voter\n  cookie \"prevents\" double voting: it discourages it, and whoever clears their\n  cookies can vote again. The README's security notes now say what is\n  protected and what is not — ballot stuffing, names on the podium, scouting a\n  self-paced quiz (for anything graded: feedback \"At the end\"), the framing\n  exemption of the projector view and the add-in shell, and `office.js` in the\n  Nextcloud origin (test the add-in address in a private window). A new\n  `SECURITY.md` says how to report a vulnerability.\n\n### Added\n- Every instance hands out its own PowerPoint add-in manifest, at\n  `/apps/pulse/addin/manifest.xml` and from the deck's overflow menu. An Office\n  manifest cannot hold variables — `<AppDomain>` and `<SourceLocation>` have to\n  be absolute URLs — so a shipped file needed a hand edit in two places on every\n  installation, and forgetting it pointed the add-in at somebody else's\n  Nextcloud with no error message anywhere.\n- Setup check \"Pulse: embedding in PowerPoint\" under Administration → Overview.\n  It fetches the embed page under every address the server can reach itself on\n  and reports whether `X-Frame-Options` still blocks framing, listing blocked\n  and working addresses separately — a proxy rule that covers the internal host\n  but not the public one now shows up instead of quietly breaking the add-in on\n  the road. The header cannot be dropped from inside the app on Apache, so the\n  check points at the web server rather than pretending to fix it.\n- Self-paced quiz. A quiz room can now run at its own pace instead of\n  following the presenter: tick \"Self-paced\" in the deck's menu, and everybody\n  works through the questions alone on their own phone, with a clock for each\n  question that starts only when they open it. Switching clears the players\n  and answers collected so far and asks first if there are any; the questions\n  stay. Instead of presenting, the presenter opens the quiz with\n  \"Open quiz …\" and closes it later. Without a deadline it is a race: by\n  default with a timer and a verdict after every question, and closing it\n  releases the results. With a deadline one minute to 30 days ahead it is\n  homework: by default without a timer and with the verdict only after the\n  release, and the deadline closes the quiz with nobody around. Both defaults\n  can be changed when opening; a practice run always gives the verdict at once\n  and never shows a leaderboard. Moderated quizzes work as before, apart from\n  the fixes listed below.\n    - While the quiz is open, the presenter follows everyone on a progress page:\n      how far each person got, their answers, points and last activity, the\n      join code with its QR code, a preview of the projector, and one main\n      button that names the next step — close the quiz, check free-text answers,\n      release the results. Free-text answers are marked right or wrong there\n      without the list of accepted answers on screen, and a slip can be undone\n      under \"Checked just now\". A race can also be stopped without releasing the\n      results, to check answers first. The end can be moved, a closed quiz\n      reopened, joining locked and single players removed; participants and\n      answers download as CSV. With the verdict at the end, points stay hidden on\n      this page until the presenter shows them.\n    - Phones go from name to start card to question to verdict. \"Next question\"\n      appears once the answer is final — a few seconds, which cost no points —\n      so the verdict is never skipped by accident. Questions without a timer can\n      be skipped, the position and the deadline stay in view, and a phone that\n      is reloaded carries on where it was.\n    - The projector never shows a question. While the quiz is open it shows the\n      race — how many people are on each question and how many have finished —\n      with a large join code for the first two minutes and afterwards, when\n      verdicts come after every question, the top eight of the leaderboard. A\n      closed quiz shows only the count, a released one the final standings.\n    - The question order is frozen when the quiz opens, and the deck stays\n      locked until the room is reset. An answer counts once its correction\n      window is over or it can no longer be changed, and phone, projector,\n      progress page, leaderboard and CSV all count the same answers. Before the\n      release, phones show no solution, distribution or leaderboard. Joining\n      ends when the quiz closes; a room takes at most 300 players who have\n      started and 600 who have joined, and at most 120 new names per address in\n      ten minutes (see Security).\n    - All of it works through the API as well:\n      `POST /api/1.0/rooms/{code}/pace` switches the pace and opens, closes\n      (with `release: false` without releasing the results, whatever the\n      deadline), extends or releases the quiz,\n      `GET /api/1.0/rooms/{code}/progress` follows everyone,\n      `POST /s/{code}/next` moves a phone on, and the CSV export takes\n      `?view=players` and `?view=answers`.\n- An AI disclosure. Pulse is vibe-coded: its code, tests, development tools,\n  documentation and German translation were written by AI coding agents\n  (Anthropic's Claude Code), and there has been no independent human code\n  review and no security audit. The README now says so in a notice right under\n  the title and in a section \"How this app was built (AI disclosure)\" with the\n  models, the commit counts and what the tests can and cannot vouch for; the\n  App Store description carries a short version in English and German.\n\n### Changed\n- Pulse now supports Nextcloud 35 as well as 34 (`max-version` 35). It was\n  tested on Nextcloud 35.0.1 with SQLite, MariaDB, PostgreSQL and MySQL, and\n  through a server update from 34.0.4 to 35.0.1 with existing rooms and votes\n  (PostgreSQL). Earlier versions supported Nextcloud 34 at most, so a server\n  update to 35 switched them off.\n- Documentation and code comments are in English now. The READMEs, the App\n  Store guide and the comments in PHP, JavaScript, Vue, CSS, shell and\n  configuration files used to be mostly German, and so were the messages of\n  the release scripts, the CI step names and the `package.json` description.\n  The German translation of the interface (`l10n/`) and the German store\n  description stay German on purpose, and so does the test data that checks\n  Unicode, case folding and the CSV export. Still German, for a later round:\n  German inside the code itself — other test data, the JavaScript unit test,\n  the messages of the test runner and of the translation and development\n  scripts, the seed words of the demo mode, the comments inside the add-in\n  manifest template and inside the browser scripts of the screenshot harness.\n- The README was brought up to date for a public audience: installation from\n  the repository, a section on security notes, the adaptive polling intervals\n  instead of a fixed 2.5 s, the databases Pulse was tested on, and the App\n  Store status. It no longer says that `info.xml` advertises Nextcloud 29\n  and later.\n- The add-in manifest is no longer German-only: source locale `en-US` with a\n  German override, like the rest of the app. Its `<Version>` now comes from\n  `info.xml`, so PowerPoint recognises an updated add-in.\n- The Traefik snippet next to it carries `nextcloud.example.com` instead of one\n  specific server.\n- \"Show final standings\" at the end of a quiz, and the automatic advance after\n  the last question, now end the quiz for the whole room: projector and phones\n  switch to the final standings together with the moderator. With reveal per\n  question they used to appear on the moderator's screen only. If ending the\n  quiz fails, the moderator stays on the question and sees an error instead of\n  standings nobody else has.\n- Standings opened from the menu in the middle of a quiz are called\n  \"Leaderboard\"; \"Final standings\" is reserved for the end. From there, Next\n  and Back take the moderator back to presenting along with the room, and on\n  the final standings Back is disabled. Opened with no question running, the\n  standings offer \"Back to the deck\" instead of \"Finish quiz\".\n- A practice run with \"Reveal at the end\" can now reveal its last question: the\n  main button reads \"Reveal\" (still without a leaderboard, as always in\n  practice), then \"Finish\" sends the room back to the lobby. It used to go\n  straight to the lobby, so nothing was ever revealed. A practice run revealed\n  per question no longer drops the moderator back to the deck on its own after\n  the last question.\n- Nicknames are unique within a room. A name already taken — also in different\n  case, or with invisible characters or extra spaces — is refused with \"This\n  name is already taken. Please choose another one.\", so the leaderboard no\n  longer shows two identical rows. Players can keep their own name and change\n  it until they start answering (lookalike letters and the rename freeze: see\n  Security). Invisible characters are stripped from names, and a name made\n  only of them is refused.\n- `info.xml` gives the licence as `AGPL-3.0-or-later` instead of `agpl`. The\n  store schema still accepts the short form but lists it as deprecated, and\n  for apps targeting Nextcloud 31 and later the store's guide asks for an SPDX\n  identifier. `package.json` names the licence now as well.\n- The repository moved from `hotochan123/hotochan123-nextcloud-pulse` to\n  `hotochan123/nextcloud-pulse`. `info.xml` (website, issue tracker,\n  screenshots), the add-in manifest's support link, the setup check's link to\n  the add-in guide and the documentation point to the new address; GitHub\n  redirects the old one.\n- The store description and the README describe Pulse as a self-hosted\n  alternative to services such as Kahoot!, Mentimeter or Slido and state that\n  Pulse is not affiliated with their providers. Code comments no longer name\n  other products, and the README credits the four icons taken from or adapted\n  from Feather Icons and includes their MIT licence text.\n\n### Fixed\n- On SQLite, a class joining a quiz at the same moment no longer gets\n  \"Joining failed.\" on up to half of the phones. The room lock began there as a\n  plain read, and a transaction that a parallel one had overtaken could not\n  write any more (\"database is locked\") — the database's busy timeout does not\n  wait in that case. The lock now takes the write lock first, so the joins\n  queue up. The same lock guards correcting a free-text answer in a\n  self-paced quiz and the host's actions on it (opening, closing, locking\n  joining, removing a player, grading).\n- The join panel no longer reopens by itself while presenting. It used to open\n  whenever nobody was connected yet, and that decision was taken again on every\n  results poll — every 1.2 s in a quiz — so closing it with ×, a click beside it\n  or Escape had no effect for longer than one tick. In a room nobody had joined\n  yet it could not be closed at all. The panel is now only ever opened by the\n  \"Join\" button; the room code stays visible in the header and on the projector\n  either way.\n- The framing rules now also cover `/index.php/apps/pulse/embed` and\n  `/index.php/apps/pulse/screen/…`. Without `htaccess.IgnoreFrontController`\n  Nextcloud builds its URLs with `/index.php` in front, so a rule that only knew\n  the short form never applied — the same page came back without the header\n  under one address and with it under the other. Affects the shipped Traefik\n  file and the Apache/nginx snippets in the add-in README.\n- The setup check asked the router for the embed path and got an empty string\n  when the app routes were not loaded, then dutifully measured `/` instead —\n  which carries `X-Frame-Options` quite rightly, so the check reported \"blocked\"\n  for every instance. It now uses the fixed path, which also keeps the result\n  identical between `occ setupchecks` and the admin overview.\n- Quiz answers no longer leak before the reveal:\n    - The change marker phones and the projector poll with contained checksums of\n      the answer key and of all votes, which could be tested against candidate\n      answers. It is now a keyed hash that says nothing about the content.\n    - Ranking and matching questions went out in their stored order, which is\n      the solution — on the projector and through the API. Until the reveal they\n      are now shuffled, the same way for everyone and independent of the\n      solution.\n    - \"See all results\" on the phone listed the whole deck, including questions\n      not shown yet — in a quiz with their answer options. It now lists only\n      questions that have been shown.\n    - Public leaderboards counted questions that were not revealed yet, such as\n      one the moderator skipped without revealing, so a jump in points told a\n      player whether the answer was right. Hidden questions now stay out until\n      the quiz is finished; the final standings count everything and match on\n      phone, projector and moderator screen.\n    - A \"Reveal at the end\" quiz run a second time without a reset still carried\n      the first run's end, and \"See all results\" gave away every solution from\n      the first question on. Showing a question now clears the old run's end.\n    - An edited question that had already been revealed stayed revealed, so its\n      new solution showed up in \"See all results\" at once. A question edited\n      while it is not on screen now counts as not shown yet, unless a finished\n      quiz ended on it.\n- An answer sent just as the moderator moved on is refused with \"This question\n  is closed.\" instead of being counted for the next question, where a number, a\n  word or a scale value often fits just as well.\n- Open phones and the projector now pick up changes they used to miss: switching\n  \"Reveal at the end\" after a reveal, editing a running poll question nobody had\n  answered yet (every vote on it failed afterwards), renaming the room, and\n  resetting it or toggling the practice run while everyone waits in the lobby\n  (phones kept greeting players whose names had just been deleted). A question\n  that is closed but not revealed yet shows as \"Answers closed\" on the projector\n  instead of a result view without results.\n- The projector now fits the first quiz question to the screen. Its size was\n  only recalculated when results arrived, and a quiz sends none before the\n  reveal. An edited running question with a longer text is refitted as well.\n- Word clouds count each word once per person. \"Coffee\" and \"COFFEE\" from one\n  person counted twice and used up two of the allowed words; invisible\n  characters, non-breaking spaces, double spaces and emoji variants no longer\n  make a second word either. The cloud shows the first spelling, in lower case\n  as before, and votes given before this change are counted the same way.\n- Phones: in a poll, \"Your answer\" now appears for every question type once\n  results are up — word clouds, rankings, matchings and spectrum or compass\n  scales used to read \"Did not answer this round.\" After a reload,\n  multiple-choice, number and free-text questions show the answer given instead\n  of an empty, locked field. A status update that overtook a vote no longer\n  resets the selection and the correction window. When the running question is\n  edited, phones drop the old selection, and once their answer has been\n  cleared they get a fresh correction window.\n- Open phone and projector pages now reload themselves after an app update\n  that changes how page and server talk to each other. A tab kept running the\n  script it was opened with, even after the server behind it had moved on,\n  until somebody reloaded it by hand. `/state` now carries a protocol number\n  that goes up whenever server and page no longer fit together; a page that\n  sees a different number than the one it was built with reloads once — at\n  most once per tab and protocol, so a stubborn cache cannot turn it into a\n  reload loop. Where the browser refuses session storage, as some do inside\n  the PowerPoint add-in's frame, the page carries on without reloading rather\n  than risk that loop. The number is also part of every state version, so an\n  outdated page gets one full state instead of an endless run of \"unchanged\"\n  replies. Pages opened before this version do not know the number yet and\n  pick up the new scripts on their next reload, as before.\n- Word clouds and grouped free-text answers show the first spelling that came\n  in. Votes were read without a defined order, and PostgreSQL returns rows in\n  storage order, which differs from the order of arrival once new votes fill\n  the space of deleted ones.\n- \"Export CSV\" on the summary page delivers the file again. The link carried\n  no request token, so Nextcloud answered with \"412 Precondition Failed\"\n  instead of the CSV.\n- German phones labelled the button that changes an answer \"Wandel\" instead\n  of \"Ändern\": the English \"Change\" was also a word in the word-cloud demo,\n  and that translation won. The demo word is now \"Transformation\" in English\n  and still \"Wandel\" in German. The practice-run banner in the deck said\n  \"Übungslauf\", while everything else in German says \"Probelauf\"; now it\n  says \"Probelauf\" as well.\n- When resetting the room, switching \"Reveal at the end\" or the practice run,\n  saving the question order or deleting a question fails, the error message\n  now gives the server's reason instead of a general \"Could not …\".\n- Joining a quiz no longer throws the phone back to the name screen for a\n  moment. A status update that had set off before the name was sent could\n  arrive after the join and still report no name; it is now discarded.\n- Requests that send a value as a list or an object where text or a number is\n  expected (for example `action[]=close`), a number the server cannot hold\n  (`1e999`), text that is not valid UTF-8, or a participant cookie the server\n  never issued no longer write \"Array to string conversion\" or similar\n  warnings to the Nextcloud log, and no longer fail with an internal server\n  error. Such values count as missing: the request gets the usual message with\n  status 400, or the default applies. A deadline, a question pointer or a\n  switch of the self-paced quiz that cannot be read is refused instead of\n  being taken as \"none\".\n- The results export (CSV) of a quiz with a free-text question no longer fails\n  with an internal server error. Free-text answers get one row per group of\n  equal answers, as on the grading screen, and number guesses show the number\n  instead of an empty answer column. Free-text answers and words from the\n  audience that start like a spreadsheet formula get an apostrophe in front, as\n  in the self-paced export, and quotation marks inside a cell are doubled the\n  way spreadsheets expect.\n- Two votes sent at the same moment from the same phone in a poll — a double\n  tap, or a retry after a network hiccup — no longer end in an internal server\n  error. The later one counts, as when a vote is changed.\n- The daily clean-up no longer deletes decks their owner is still working on.\n  A moderated room created more than 30 days ago that no audience had joined\n  in those 30 days was deleted, even if the owner had edited it the day\n  before: only participants kept such a room alive. Now whatever the owner\n  does with a room counts as well, in every room mode — opening it, editing\n  the deck or its settings, presenting, looking at the results or the\n  progress — so a room goes only after 30 days in which neither the owner nor\n  a participant used it. The owner's activity is recorded at most once an hour\n  and changes nothing anyone sees. It is recorded from this version on: on an\n  installation where the clean-up already ran, a room its owner has not\n  opened since the update is still judged by its participants alone, as\n  before.\n- Rooms of a deleted Nextcloud account no longer stay behind. They were left\n  with nobody to manage them, still reachable under their public codes, and a\n  room the audience kept using was never cleaned up at all. Deleting an\n  account now deletes its rooms together with their questions, votes,\n  players, progress and images, and their codes stop working.\n- New installations now register the clean-up job. It was only added by a\n  migration step, and Nextcloud skips those steps when it installs an app for\n  the first time, so rooms there were never deleted. The job is now declared\n  in `info.xml`, which Nextcloud reads on every install and update. An\n  installation that started out on an earlier version without the job gets\n  it with this update. Its existing rooms count as used on the day of the\n  update, so the job deletes none of them in the first 30 days — not even a\n  deck its owner edited just before the update, which the job has no record\n  of.\n- Deleting a room — with the delete button, by the daily clean-up or with its\n  owner's account — no longer leaves its questions, votes, players or\n  progress behind when the database fails halfway, for example on a deadlock\n  with a vote arriving at the same moment. The rows now go in one\n  transaction, which is retried after a deadlock; a deletion that still fails\n  leaves the room complete instead of half deleted.\n- On MySQL, adding a word cloud, a number question or a free-text question no\n  longer fails with an internal server error, and neither does duplicating a\n  room that contains one. MySQL cannot keep the default value of a text\n  column, so a new question has to write its empty option list itself, and\n  these three types left it out. A duplicate that failed this way left an\n  incomplete \"(copy)\" room behind, which can simply be deleted. MariaDB,\n  PostgreSQL and SQLite were not affected. No migration is needed: existing\n  MySQL installations work as soon as they run this version.\n- Release packaging (`build/package.sh`, for developers): signing works. It\n  failed every time and then left the private key in the Nextcloud\n  container's `/tmp`; it now signs in a disposable container that is removed,\n  key included, on every exit (see Security). Archive entries are 755/644\n  and owned by 0:0 instead of world-writable, `info.xml` is checked against\n  the store's\n  current schema, and packing stops when `info.xml`, `package.json` and\n  `CHANGELOG.md` disagree about the version (`ALLOW_UNRELEASED=1` packs a\n  test archive, as CI does). A pre-release such as `0.19.0-beta.1` needs its\n  notes under `[Unreleased]`, where the store looks for them.\n- Moving a question with the keyboard (\"Move up\" / \"Move down\" in its row menu)\n  keeps the focus on that question. The focus landed on the neighbour it had\n  just swapped places with, so pressing again moved the neighbour back instead.\n- The question editor stops labels at 40 characters, answer options at 200 and\n  match pairs and accepted answers at 100 — the lengths the server keeps.\n  Longer text used to be cut on saving without a word. The compass field for\n  the heat-map threshold now also goes up to 9999 with its arrows, the value\n  saving always accepted.\n- On the projector, the four corner labels of a compass question sat upside\n  down: the two top labels were drawn at the bottom and the other way round,\n  each next to answers it did not describe. They now sit in the corners the\n  editor and the phone show them in.\n- Word clouds take words of up to 40 characters from the phone, as the server\n  always kept them. The phone stopped at 24, which cut long compounds such as\n  \"Verantwortungsbewusstsein\". On the projector a word too wide for the cloud\n  is now shrunk until it fits instead of being clipped on both sides, and on\n  phones and in the moderator view long words wrap inside their box.\n- On the phone, moving an item of a ranking question down with its arrow button\n  keeps the keyboard focus on that item. The focus fell back to the top of the\n  page, so a keyboard user had to find the list again after every step.\n- API: editing a question, uploading its image and reordering the deck answer\n  404 \"Question not found.\" (or \"This question does not belong to this room.\")\n  when the question no longer exists or belongs to another room, like every\n  other question action, instead of 400. Grading a free-text answer stays at\n  400, which the run view relies on.\n- When a new order of the deck cannot be saved, the deck goes back to the order\n  the server kept (as soon as Pulse reaches the server again), and the keyboard\n  focus stays on the question that was moved. The unsaved order used to stay on\n  screen next to the error message, and the next move that did save took it\n  along. If a question had been deleted in another tab, every later move failed\n  until the page was reloaded.\n- Self-paced quiz: the dialog for opening the quiz, reopening it or changing\n  its end accepts a deadline just over a minute away, as its message says. A\n  deadline 90 seconds ahead used to be refused with that very message, and the\n  date picker could offer such a refused minute.\n- Long compass corner labels no longer run across the axis into the opposite\n  corner. On the projector and in the phone and moderator results each label\n  stays in its quadrant and wraps onto at most two lines, ending in \"…\" only\n  when it is longer still (the moderator sees the full label on hover). Short\n  labels look as before.\n- Self-paced quiz embedded in PowerPoint: after the first two minutes, when the\n  leaderboard appears next to the race, the slide shows as many leaders as fit\n  — at least three — instead of cutting off the last two rows in the middle.\n  The embed frame is lower than a projector at 1280 × 720, and the race with\n  eight leaders did not fit even at the smallest text size. The projector\n  itself looks as before.\n- Self-paced quiz embedded in PowerPoint: when the race has more rows than the\n  embed frame holds — more than six questions while some people have not\n  started, or a long quiz in two columns or groups — the questions move into\n  two columns or larger groups (\"Questions 1–4\") instead of losing their bottom\n  rows, \"Finished\" among them. On the projector itself nothing changes. A last\n  group of a single question now reads \"Question 22\" instead of \"Questions\n  22–22\".\n- On the phone, \"See all results\" and \"See your answers\" scroll again. The\n  overall summary stopped at the bottom of the screen: with more than two or\n  three questions the rest of the list, the leaderboard and the \"Back\" button\n  below it could not be reached, because Nextcloud keeps its page frame at\n  screen height and Pulse relied on the page scrolling.\n\n### Removed\n- `office-addin/manifest.xml`. It is generated now, and a second editable copy\n  next to the generated one is exactly the trap this change removes.\n- Internal design notes — design briefs, handoffs and HTML mockups from the\n  design rounds under `docs/` — are no longer part of the public repository.\n  They were working material of those rounds, not documentation of the app.\n  Code comments still cite their section numbers, and those of the self-paced\n  quiz specification, which was never in the repository; every file that does\n  so says in a note that these documents are not public, and the README\n  explains such references under \"References in code comments\"."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzAxLXByb2plY3Rvci1saXZlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzAyLWpvaW4tY29kZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzAzLXByb2plY3Rvci1yZXN1bHQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzA0LXBob25lLXZvdGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzA1LW1vZGVyYXRvci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1wdWxzZS9tYWluL3NjcmVlbnNob3RzLzA2LXF1aXotc3RhbmRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Pulse","summary":"Live polls for presentations — the audience votes with a code","description":"**Live polls, word clouds and quizzes for presentations — in your own Nextcloud.**\nPulse is a self-hosted alternative to services such as Kahoot!, Mentimeter or\nSlido. The presenter opens a room and shows its six-character code on the\nprojector; the audience joins through a public link, without a Nextcloud\naccount, and votes from their own phone. Results appear live.\n\n### Polls\nAnonymous, with multiple choice, word cloud, scale (single slider, spectrum\nradar or compass), ranking and matching.\n\n### Quizzes\nWith nicknames, points and a leaderboard: multiple choice, true/false,\nmultiple answers, number guess, free text graded afterwards, ranking and\nmatching.\n- **Moderated:** the presenter shows one question after another and everybody\n  answers at the same time — with a countdown and points for speed.\n- **Self-paced:** everybody works through the quiz alone on their own phone —\n  as a race in the room or as homework with a deadline.\n\n### For presenting\n- Decks of several questions, an image per question\n- Projector view, QR code and join link\n- Practice runs; reveal after each question or at the end\n- Summary with CSV export\n- Add-in to embed Pulse in PowerPoint slides\n\n### Good to know\n- An anonymous token in a cookie discourages voting twice without identifying\n  anyone; whoever clears their cookies can vote again.\n- Rooms that nobody has used for 30 days are deleted automatically.\n- Pulse is vibe-coded: its code, tests, documentation and German translation\n  were written by AI coding agents (Anthropic's Claude Code); the maintainer\n  set the goals, made the product decisions and tried the app out in the\n  browser. There has been no independent human code review and no security\n  audit, so please evaluate it yourself before relying on it. Details in the\n  [README](https://github.com/hotochan123/nextcloud-pulse#how-this-app-was-built-ai-disclosure).\n\nPulse is an independent project and is not affiliated with or endorsed by the\nproviders of Kahoot!, Mentimeter or Slido; these names are trademarks of their\nrespective owners."},"de":{"name":"Pulse","summary":"Live-Umfragen für Präsentationen — Publikum stimmt per Code ab","description":"**Live-Umfragen, Wortwolken und Quizrunden für Präsentationen — in der eigenen Nextcloud.**\nPulse ist eine selbst gehostete Alternative zu Diensten wie Kahoot!, Mentimeter\noder Slido. Die vortragende Person öffnet einen Raum und zeigt den 6-stelligen\nCode am Beamer; das Publikum tritt ohne Nextcloud-Konto über einen öffentlichen\nLink bei und stimmt vom eigenen Handy ab. Die Ergebnisse erscheinen live.\n\n### Umfragen\nAnonym, mit Multiple Choice, Wortwolke, Skala (Einzel-Slider, Spektrum-Radar\noder Kompass), Reihenfolge und Zuordnung.\n\n### Quiz\nMit Nicknames, Punkten und Rangliste: Multiple Choice, Wahr/Falsch,\nMehrfachauswahl, Schätzfrage, Freitext mit nachträglicher Bewertung,\nReihenfolge und Zuordnung.\n- **Moderiert:** Die vortragende Person zeigt eine Frage nach der anderen, alle\n  antworten gleichzeitig — mit Countdown und Punkten fürs Tempo.\n- **Im eigenen Tempo:** Alle spielen das Quiz allein am eigenen Handy durch —\n  als Wettrennen im Raum oder als Hausaufgabe mit Frist.\n\n### Zum Präsentieren\n- Decks aus mehreren Fragen, ein Bild je Frage\n- Beamer-Ansicht, QR-Code und Beitritts-Link\n- Probelauf; Auflösung nach jeder Frage oder am Ende\n- Zusammenfassung mit CSV-Export\n- Add-in zum Einbetten in PowerPoint-Folien\n\n### Gut zu wissen\n- Ein anonymes Token im Cookie erschwert mehrfaches Abstimmen, ohne jemanden zu\n  identifizieren; wer die Cookies löscht, kann erneut abstimmen.\n- Räume, die 30 Tage lang niemand genutzt hat, werden automatisch gelöscht.\n- Pulse ist „vibe-coded“: Code, Tests, Dokumentation und deutsche Übersetzung\n  haben KI-Coding-Agenten geschrieben (Claude Code von Anthropic); hotochan123\n  hat die Ziele gesetzt, die Produktentscheidungen getroffen und die App im\n  Browser ausprobiert. Es gab keine unabhängige menschliche Code-Prüfung und\n  kein Sicherheitsaudit — bitte vor dem Einsatz selbst prüfen. Details in der\n  [README](https://github.com/hotochan123/nextcloud-pulse#how-this-app-was-built-ai-disclosure)\n  (englisch).\n\nPulse ist ein unabhängiges Projekt; es steht in keiner Verbindung zu den\nAnbietern von Kahoot!, Mentimeter oder Slido und wird von ihnen weder\nunterstützt noch empfohlen. Die genannten Namen sind Marken ihrer jeweiligen\nInhaber."}},"isFeatured":false,"authors":[{"name":"hotochan123","mail":"","homepage":"https://github.com/hotochan123"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhRCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTY1NjQ4WhcNMzcwMTA3MTY1NjQ4WjAQMQ4wDAYD\nVQQDDAVwdWxzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ5l1XaC\nd/PVhLzw8c/PihtpkhXOwqxeCqUa6TjWt5cfnT1o48S/2gTOb72VV+4FygVem9nw\naugLTcdjyLVGq9KcA1rxZSYEChXWU7J3DkciwgsHW9MSvvXkpVPdUvIs9nRkko03\nfJH2pjYKplppz7r4l2ysaMU3EcvBCapYEQhhdoX/PE+u03xpSz3b+pxx4zI8PgcT\nt6qZrWoyJrjven7hZsNpJPruROGFU6DqIaMf8/6PYEozmGtyKgyMI7OkNrfSqyyi\n5q5KJ6eli9HTouZcLJ2o0fGTSzNWbuBkeTb0BcZ/z7DriQ+FZq+XQbXoRPNNw5rS\nS+E3qJGUjZMrFiMEbBIkhhM0IktzrI1jV7qJEOpGkDjGO4FgGQq6LkCxelxrmzIe\ni5PG6raUs1rYfdp5rMOIwwuwK/w0jvJJlw5k0uMU6L4ZmISxd4WQC7a9VVEa6xq1\nvM5iUsAyU2vFgTlymJjlibnv+JOIb5B3cxL3w3GBf3nvbD085gWq78LqoQP6XptZ\nbFr13eUJnxtsQJVnISk0tlZZN1bFzMTcWuIcEjizKi0SjyL3INM3p/yDRK/T2dND\nbLJSAnXWFljjjVff+SA50BeyNW63Cq/XO3Sh9QVca2OuI72wgFHy0q2iOk2PDrQF\nkX4e7wygmj77Qv0g1GX9L7BYQaq/FjhmVbEXAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBABlaqxeemLw+NHFW1NiBcjTwK2DMm+9Ib3xemp3Ig8MSFFl0xVLgFKEq6U6j\nzAz6pkQ1b2Vb3OhWe/Ea6MTtK2pou56RBNXNtX+rIMlp/zHAYrc42Pr/rUwWiRER\n+plP+80WJt4BAZ/VJvBvMaFgPaIhYAcnsyeCUtZXrSR/o5T0J+1ndfSiROmrTijf\nTO7JGnD48aWYjs7DZG04Fl+YgUDnE5qXC0gyTQH3Y3Y4Vp6ukpMX4uOqDgQaeJmI\n+8PJEROynqa5gIwQbjEvBWoPWX2dOonlHpUtGYqyD+56wqWuk64r7vmsbw5aUHlI\nudu2qH/h5dinttwIChQfxGcwgyU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_suitecrm","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/njordium/integration_suitecrm","issueTracker":"https://github.com/njordium/integration_suitecrm/issues","website":"https://github.com/njordium/integration_suitecrm","created":"2020-10-22T19:56:50.726748Z","lastModified":"2026-08-23T08:33:12.172637Z","releases":[{"version":"3.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_suitecrm/releases/download/v3.2.4/integration_suitecrm-v3.2.4.tar.gz","created":"2026-08-23T08:33:12.138166Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-23T08:33:12.207164Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"g0H49K2pxy0oLASZymk71eZc/SqJV/l4y3hxSShrXRSFql30MsfhwCsKajn1AhPWcbu2y/hnFHf/SToF3IqVyiRLitcd80FgetIzgfyMGrzIyvzvNCngZKf6IHATuMu45deRGUp760yX51KsL9EGFDlbtiZpc1OeazbDpWfpBvqISRXhd0KEo6jhpLZCT9N3kPUOo4DbGzrq6PA3JbJA0zUuYXKoFAMGKvxyhm2TgYP7Q+ET7pkYpV4EVytSbNwBcfV5PPjAG55MdHM2Mg4Y22ppJraR2s7vGec3wl/iX6Oyf2jsjVj4F6In4wI6A+QWllyD4rVzvQ6YOvwTtaHJYckoKcTIs7RpfJiAgjHkzYnVVXnPdXLlBCt7rlCqxSBkqhkQngdobjAAuyYSr1bV+JySSXAH2n6vskEzSC+FNkz5TgzAqMcc8I0VOVpGpDhSpgUb4bbbX8gviMEEWQQu1tUuYFFUVqQcy9Zpt1jF/HcOBEL1k5sg1hHsk6r1DqB75fPqGOugxiNsEMa73iYiaV0HDUrMOybGtLkzDxTxRShJk/zN6D03oUSBAE1gaebu4mjvlz/KWvyh++nJH6AnIhiUbxgPfwTGXFN64qQ1zeKSuSUXrijLjaZ0BE2RQtXUvPjgJlq5V+txa/rNCL5ThHkn0yMiLcqhJB4QEq3P0Ig=","translations":{"en":{"changelog":"Deprecation cleanup.\n\n- `Notifier::prepare()` now throws `\\OCP\\Notification\\UnknownNotificationException` instead of `\\InvalidArgumentException` when a notification isn't ours (or is a reminder for an unknown SuiteCRM module). Since Nextcloud 30, `\\InvalidArgumentException` is the deprecated contract and every `/ocs/v2.php/apps/notifications` poll emitted a level-2 warning naming this notifier; the new class is the NC-30+ replacement. Behaviour is identical (row still suppressed on unknown subject); the warning line stops."}},"signatureDigest":"sha512"},{"version":"3.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_suitecrm/releases/download/v3.2.3/integration_suitecrm-v3.2.3.tar.gz","created":"2026-08-15T16:27:26.080904Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-15T16:27:26.178932Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"D/6aAuPWTF4VDuLA6GAOcjkW5AQK964/Pp8pVssyhws6pCt4Lpm4KHiN8djxiWA/VRCvLGtN70XmSYkJHBMZi1c6f4J2hawz/QmI+5GV03Y28c3oEt7rVSzNxOk7Q6mugRvyodjc0ar+eoiMPOXLuQoMQhjlUpNyIwILBL5hRVftviknUoP2FwbQeKIecc6biii7QqYtiOy+/s8o1PQRBQSE9/UiHvVEQeKHOWGVWX6ny3bHkzvEASQcWMStsfPR7eaEGZP8zOOeCrchinzdztxxogh0i0NCb/5D/4wao0gn8KNfTo7rtI1/TzjxN/eqgLHm2vd9uXYNk+cT0R51wqESAJrS2xPdYLsBWi6MJUyjXTLTP3ZAhvhYrO3XUqTL6QLDSt0wFGaqXx+xw7OYU3ryl8Ox3hMnhOKs5VuiMc9KSEcGPJ+GY18RyIJFvOLV02rYPdmboeSCiD2/n4beIrdMmfhiyErDmAaO0lo2hoA371UP6ghSorgH/aax4LdSYzJ37Ua8Ssm+nvq2NK9KqZXcPoupmBlAojq3o22oVfQcYr49p57af3pFBd6/MPl2 5sI5is0nhBuVMo6jLghs9ShMWMg2QAYsrTxLNoPiRmfqDNCPl0Z+x+9Rg5dgq2g2YRaEC1cfQEi4p0938FrE+LI02zlBeLokZ8l0/fTysRA=","translations":{"en":{"changelog":"Admin-panel copy polish.\n\n- **\"OAuth authorize endpoint path\"** label shortened to **\"Authorize path\"** so it lines up visually with the other short-form labels (\"Instance address\", \"OAuth client ID / secret\", \"Redirect URI\") in the harmonised grid layout.\n- The trailing helper text (\"SuiteCRM 8.10.x default: /Api/authorize. Older installs may use /legacy/oauth2/authorize.\") is removed. The field still pre-fills with `/Api/authorize` on a fresh install via `Admin.php`'s `getValueString(..., '/Api/authorize')` default, so an admin who never had to touch this row still sees the correct value."}},"signatureDigest":"sha512"},{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/njordium/integration_suitecrm/releases/download/v3.1.0/integration_suitecrm-v3.1.0.tar.gz","created":"2026-08-14T19:50:50.971755Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-14T19:50:51.079635Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=30 <=35","signature":"pXX3njPlrc5StGaxF2bb6qjBDTWnAuMA/SV2M86Wv2linGxlX0aXL8plrixqrBIq\nEQwOIaYFeXQM3k7kiIoYQhYcndlKXFRKoN6v1vo63zao/Zi2xlM6V7UoRGzsmBv7\nACiQo70Ia2ETG8ZF8dVUUlwFZ5Pq5ipccgjQe6EgOVu9fwmJQ+NDdhK4LUo4STRZ\nQGsuApeNo7G2QyhsPfj+BkgZ1saicpqT8i0eG7OUBPfiyaB3YvkqV2nl6U3ocDcZ\nNgbtkRPQCaIa2JymEzQTchZX/HbEqYrPJgaPd/VvMXTrd59fMz0serAevOZROdNJ\nzGz+cx846ow83NdyOK931XIgINi6RWY9f2vtfdJCaxKen4mxtOHDXg0PmII1qJCl\ngKDgMu3bOKs3RwtSeqPG3TOSN49PCmB4Wj6nM6QihA/dTpgHOSQ2JmpxKE/Zae/j\n8Hmh23juWe4diixVnK4+oxzqfSBS4bqHTMtEsS6L5VDpnBYc75CK2w6vafj4xZ+/\nCwlZbhX9T7tVYT9pqrazuBn1FzTm3xeHonKxRGt3OzfIPkM/ehA15ESGvldV57NG\nG34UMXHhiijPT6fH0U5cARByHDcwWZSam1Iv+SwfZ8ysKZtQzb2NDrDwEpIfchZu\n83qX8vpXhVD3KqFj4PS+MwI/rQ66Fh0hHoD+rBpheNA=","translations":{"en":{"changelog":"Three cross-cutting changes go out in one tag: the Nextcloud 35 compatibility bump, color-brand widget icons across every dashboard surface, and the fixes surfaced by a full OWASP-Top-10 secure-coding review. Nothing changes for the end user's day-to-day interaction with the widgets, but the App Store now offers the update to Nextcloud 35 installs, admins see the SuiteCRM brand mark instead of a mono glyph on the dashboard and settings pages, and the security posture picks up rate limits on the four write endpoints, mime-pinning on the avatar proxy, an admin-config whitelist, plaintext-leak fixes on the OAuth log, and a hardening pass on the 2.x → 3.x config migration so `client_secret` no longer downgrades to admin-inspectable plaintext on upgrade.\n\nExisting installs on 30–34 continue to work unchanged. Admins on PHP 8.2 need to upgrade PHP before installing this release.\n\n### Nextcloud 35 compatibility\n\n- **`appinfo/info.xml` `<nextcloud max-version>`** bumped from 34 to 35 so the App Store lists this release as compatible with the Nextcloud 35 line. Minimum stays at 30 — the widget code, dashboard API, notification and search integrations all use surface that has been stable across 30–35, so there is no reason to raise the floor.\n- **`appinfo/info.xml` `<php min-version>`** bumped from 8.2 to 8.3 to match Nextcloud 35's own PHP baseline. Nextcloud 35 will not boot on PHP 8.2, so advertising 8.2 support would let admins install the app onto a host that cannot actually run the server hosting it.\n- **`composer.json`** PHP constraint lifted to `^8.3` in both `require` and the `config.platform` block so `composer install` resolves against the same platform Nextcloud 35 runs on. The `config.platform` pin matters for anyone building the release tarball on a workstation that still has PHP 8.2 available — without it, composer would happily select older dependency versions than the ones the server actually loads.\n- **`appinfo/info.xml` `<author>` order** reordered so Kim Haverblad (current maintainer, `homepage=\"https://njordium.com\"`) appears above Julien Veyssier (original 1.x author). The App Store renders `<author>` elements in document order in the sidebar of `apps.nextcloud.com/apps/integration_suitecrm`; leading with the maintainer who ships the releases matches what users see in the App Store listing for the release they are actually installing. Julien's contribution is still credited — this is an ordering change, not a removal.\n\n### Color widget brand icon\n\nMirrors the pattern shipped in the sibling `integration_forgejo_gitea` app, which uses a single brand-color SVG across every dashboard widget header and the admin/personal settings anchor. The `img/app-color.svg` asset was already in the repository from earlier work but not wired anywhere.\n\n- **`css/dashboard.css` `.icon-suitecrm`** collapsed from the two-rule mono theme-swap (`app-dark.svg` on light theme, `app.svg` on dark theme) to a single rule pointing at `img/app-color.svg`. The color logo reads well against both themes, so no `body.theme--dark` override is needed. All nine dashboard widget classes (`SuiteCRMWidget`, `SuiteCRMCalendarWidget`, `SuiteCRMTasksWidget`, `SuiteCRMCasesWidget`, `SuiteCRMPipelineWidget`, `SuiteCRMActivitiesWidget`, `SuiteCRMContactsWidget`, `SuiteCRMAccountsWidget`, `SuiteCRMLeadsWidget`) pick this up through their existing `getIconClass(): return 'icon-suitecrm'` return, so no per-widget PHP change was needed for the CSS layer.\n- **Each widget's `getIconUrl()`** now returns the color asset instead of the mono `app.svg`. The Nextcloud 30+ dashboard app prefers `getIconUrl()` over `getIconClass()` because it renders the icon outside the app's own stylesheet context (mail digests, dashboard permalinks); the two paths now agree.\n- **`SuiteCRMWidget::iconForModule()` and `SuiteCRMCalendarWidget::iconForModule()`** per-item icon fallback (the icon shown next to a row when the module is not `Calls`/`Meetings`) is now `app-color.svg` so a Task or Note row carries the brand mark rather than the mono glyph.\n- **Vue settings anchors** — `src/components/PersonalSettings.vue` and `src/components/AdminSettings.vue` inline the same collapsed rule so the little icon next to the \"Connected accounts\" / admin settings heading matches the dashboard widgets.\n- **Vue view avatar fallback** — the seven views that hand SuiteCRM rows to `NcListItem` (`Activities.vue`, `Cases.vue`, `Tasks.vue`, `Pipeline.vue`, `RecentContacts.vue`, `RecentAccounts.vue`, `RecentLeads.vue`) now fall back to `app-color.svg` instead of `app.svg` when a row has no per-record avatar, so the visual grammar is consistent across the whole app surface.\n- **App-menu icons** (`img/app.svg`, `img/app-dark.svg`) are unchanged. Nextcloud picks those up by file convention for the top navigation bar, where the mono contract still applies — same split the Forgejo/Gitea app uses.\n\n### Secure-coding review fixes (OWASP Top-10 pass)\n\nRan a full static analysis over `lib/`, `src/`, `templates/`, and `appinfo/` against the OWASP Top-10 (2021) taxonomy. Zero High findings. Three Medium and four Low findings are fixed in this release; the JWT-signature note (A02) is documented as accepted-risk in the source and needs no code change.\n\n- **A02 Medium — `Migration\\CopyLegacyAppConfig`** copied `oc_appconfig` rows via a raw QueryBuilder `INSERT` of `(appid, configkey, configvalue)`, which left the `sensitive` column at its table default of `false`. Any 2.x install upgrading to 3.x therefore had its `client_secret` land under the new app id as admin-inspectable plaintext — visible in `occ config:app:get integration_suitecrm client_secret` and in Nextcloud support-bundle dumps. Fix routes the write through `IAppConfig::setValueString` with an explicit `sensitive:` argument, derived from a new `SENSITIVE_APPCONFIG_KEYS` class-const whitelist. A structural regression test (`CopyLegacyAppConfigTest::testAppConfigCopyPreservesSensitiveFlag`) locks the guarantee. The migration only selects `configkey` + `configvalue`; the `sensitive` column was added to `oc_appconfig` in Nextcloud 31, and selecting it on Nextcloud 30 aborts the entire repair step with `SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sensitive'`. The whitelist alone gives the same practical protection because `client_secret` is the only sensitive key this app persists.\n- **A04 Medium — write endpoints unbounded.** The four `#[NoAdminRequired]` `POST` endpoints `createFollowupTask`, `logNote`, `linkDeckCard`, and `emailToCase` all previously accepted requests one-per-round-trip with no rate ceiling. A compromised NC user session — or a cross-app XSS finding a hole elsewhere in the install — could flood the connected SuiteCRM with thousands of Notes / Tasks / Cases per second, up to the SuiteCRM ACL boundary. Each endpoint now carries `#[UserRateThrottle(limit: 30, period: 60)]` — 30 writes per minute per user, more than enough for a real human workflow, several orders of magnitude below any abuse curve.\n- **A05 Low — avatar Content-Type/cache.** `getSuiteCRMAvatar()` is `#[NoCSRFRequired]` (so it can be embedded in an `<img>` src) and cached for 24 hours. The `DataDisplayResponse` default Content-Type of `application/octet-stream` combined with a compromised or misconfigured SuiteCRM upstream returning an HTML/SVG blob would let an attacker land a cached blob at the Nextcloud origin. Fix magic-byte-sniffs the payload against a whitelist of JPEG/PNG/GIF/WebP (SVG is deliberately excluded because it can carry `<script>`) and pins the response Content-Type to the sniffed mime; anything that does not sniff as a real image is served as an empty `image/png` body. `nosniff` is already set globally by Nextcloud; this closes the hole for browsers that ignore it.\n- **A01 Low — `setAdminConfig()` accepted arbitrary keys.** Mirrored the existing `USER_ALLOWED_KEYS` pattern with an `ADMIN_ALLOWED_KEYS` whitelist covering the four keys the admin form actually writes (`oauth_instance_url`, `client_id`, `client_secret`, `oauth_authorize_path`). Silently drops unknown keys, same permissive-drop model as the user-side endpoint.\n- **A09 Low — OAuth error log leaked raw guzzle message.** The `SuiteCRM OAuth exchange failed` log line included `'raw' => $result['error']`, which on Guzzle client-error paths can embed the request URL and therefore the one-time authorization `code=` query parameter. The code is already consumed by the time it hits the log, but log hygiene principle is to redact. Removed the field; the structured `http_status` / `error_code` / `error_description` / `error_kind` context already carries the actionable diagnostic.\n- **Non-OWASP hygiene — URL-encoding consistency.** `SuiteCRMAPIService.php` line 110 built the reminder notification click-through as a raw concat of `$suitecrmUrl . '/index.php?module=' . $module . '&action=DetailView&record=' . $elemId`. Two sibling call sites (`SuiteCRMWidget::buildEventLink()` and `SuiteCRMCalendarWidget::buildEventLink()`) already `rawurlencode` both parts; the inconsistency was a maintenance trap even though the values are TLS-fetched from the admin-configured SuiteCRM. Third call site now matches.\n\n### Widget UX overhaul — 3-dot per-widget settings\n\nAligns the SuiteCRM widget UX with the sibling `integration_forgejo_gitea` app: every widget now carries a 3-dot toolbar menu with a **Refresh** action and a **Widget settings** modal. Per-user refresh cadence, records-to-show count, and (for eight of the nine widgets) \"Only records assigned to me\" toggle are stored per widget so users can tune each widget independently.\n\nSettings modal exposes three (four for Calendar / Pipeline) sections per widget:\n- **Refresh frequency** — Never / 30s / 1m / 5m / 15m / 30m / 1h (default 5 minutes)\n- **Records to show** — 5 / 10 / 15 / 20 / 25 / 50 (default 20). Doubles as the fetch `limit` sent to the SuiteCRM API so we don't ask for rows we'd drop client-side; server clamps to `max(1, min(100, N))` as defence against a tampered client.\n- **Show → Only records assigned to me** — checkbox on eight of nine widgets. Defaults ON for Calendar / Cases / Tasks / Pipeline (matches the existing single-user behavior; toggle OFF widens to team-visible records within your SuiteCRM ACL). Defaults OFF for Activities / Contacts / Accounts / Leads (they've always shown any recently-added record; toggle ON filters to your own). Events (reminders) is per-user by SuiteCRM design and has no toggle.\n- **Widget-specific extras** — Calendar carries \"Include Tasks alongside Meetings and Calls\"; Pipeline carries the \"Closing this quarter / Top value / Weighted value\" framing radio (moved out of PersonalSettings.vue's global block).\n\n- **Widget titles** are now `SuiteCRM: <Module>` (colon-separated), matching the Forgejo widget naming convention. All nine widgets: `SuiteCRM: Events`, `SuiteCRM: Calendar`, `SuiteCRM: Tasks`, `SuiteCRM: Cases`, `SuiteCRM: Pipeline`, `SuiteCRM: Activities`, `SuiteCRM: Contacts`, `SuiteCRM: Accounts`, `SuiteCRM: Leads`.\n- **Shared `SuiteCRMWidgetShell.vue` component** replaces the per-widget `NcDashboardWidget` wrapping. The shell renders the toolbar, the loading / not-connected / error / empty states, the slot for the widget's item list, and the settings modal. The Forgejo sibling inlines this shape per widget; we chose to abstract it here because SuiteCRM has nine widgets that share the same shell — duplicating the toolbar and modal nine times would have been 200+ lines of copy-paste with no functional payoff. The visible UX matches Forgejo exactly: same `NcActions` layout, same modal structure, same `RefreshIntervalPicker` behaviour.\n- **Ported `useAutoRefresh.js` composable and `RefreshIntervalPicker.vue` component** verbatim from the Forgejo app (with the app id string swapped) so both apps share the same polling semantics — timer plus wake-signal refetches on tab focus, visibility change, and bfcache restore. `setIntervalMs(0)` disables the timer, wake-signal refetches still run. Cadence options: never / 30s / 60s / 5min / 15min / 30min / 1h.\n- **New per-user pref keys** (whitelisted in `ConfigController::USER_ALLOWED_KEYS`): `events_refresh_seconds`, `calendar_refresh_seconds`, `tasks_refresh_seconds`, `cases_refresh_seconds`, `pipeline_refresh_seconds`, `activities_refresh_seconds`, `contacts_refresh_seconds`, `accounts_refresh_seconds`, `leads_refresh_seconds`. All default to 300s.\n- **New `GET /widget-config` endpoint** returns the current value of every widget refresh key plus `calendar_show_tasks` and `pipeline_mode` in one round-trip; each widget calls it on mount and passes the seed into `useAutoRefresh.setIntervalMs()`. Save flow reuses the existing `PUT /config` endpoint, so the AuthZ gate for widget settings is the same `USER_ALLOWED_KEYS` whitelist the personal-settings page has always used.\n- **Per-widget settings moved out of `PersonalSettings.vue` and into the widget's own 3-dot menu** where they belong:\n  - Calendar widget: `calendar_show_tasks` toggle (include SuiteCRM Tasks alongside Meetings/Calls)\n  - Pipeline widget: `pipeline_mode` radio selector (closing this quarter / top value / weighted)\n  The keys themselves are unchanged, so a 3.0.x install upgrading to 3.1.0 keeps whatever value the user had picked.\n- **Shared `.scw-*` CSS classes** (SuiteCRM Widget prefix) added to `css/dashboard.css` for the item list styling — one place instead of nine scoped `<style>` blocks with the same declarations. `css/dashboard.css` was already loaded on every widget page via `Util::addStyle()` in each widget's `load()` hook, so no additional PHP registration was needed.\n- **Semantic per-widget row icons** (via `vue-material-design-icons`): `AccountOutline` for Contacts, `Handshake` for Leads, `OfficeBuilding` for Accounts, `Briefcase` for Cases, `FormatListChecks` for Tasks, `TrendingUp` for Pipeline. Activities / Calendar / Events dispatch per row type (`CalendarClock` for Meetings, `PhoneOutline` for Calls, `FormatListChecks` for Tasks, `Note` for Notes, `BellRing` fallback). Rendered inside a small circular container tinted with `--color-primary-element` so icons flow with the user's Nextcloud accent. Considered SuiteCRM's own SuitePicons font pack for brand consistency but rejected it (icon font, ~100KB with no CDN, glyph-map not published) — MDI is already installed and gives the same semantic clarity at ~200 bytes per icon.\n- **`CheckCircleOutline` empty-state icon** on every widget so a widget with zero results still reads as \"you're all caught up\" rather than a blank card.\n- **List behaviour**: capped at `max-height: 320px` with `overflow-y: auto`. When the user's picked records count fits, the widget is naturally that height; when it doesn't, the list scrolls internally with a subtle scrollbar and the trailing \"Show all →\" link stays anchored below.\n- **Widget titles renamed to `SuiteCRM: <Module>`** (colon-separated) matching Forgejo's naming convention — `SuiteCRM: Cases`, `SuiteCRM: Pipeline`, etc.\n- **Dropped `IAPIWidget` / `IAPIWidgetV2` from all nine widget classes** so the Vue shell renders instead of NC's server-side WidgetItem card. The Vue shell is what carries the 3-dot toolbar and settings modal; NC's own WidgetItem card doesn't have a slot for those. The `getItems* / getItemsV2*` methods are kept as inert dead code so re-declaring the interface is a one-line change if a future NC version's dashboard app changes its precedence logic.\n- **Built `js/` bundles are now committed to git** so a `git checkout v<tag>` on a deploy host lands a runnable app without needing node/npm on the host. Matches integration_forgejo_gitea's convention. Regenerate with `npm run build` before any release commit.\n\n### Notes for maintainers\n\n- Nextcloud release cadence: whenever a new Nextcloud major ships, bump `<nextcloud max-version>` in `appinfo/info.xml`, cross-check the PHP `min-version` against the new server's `system-requirements` page, and mirror any PHP floor change into `composer.json` (`require` **and** `config.platform`). A mismatch between the two is silent until someone tries to build on a workstation with an older PHP.\n- Verify the version-bearing files stay in lock-step before commit: `appinfo/info.xml`, `package.json`, `package-lock.json`, `CHANGELOG.md`, and the git tag. The `npm run verify:version` hook covers `package.json` vs `appinfo/info.xml`; the rest is manual review at commit time.\n- Icon file convention: `img/app.svg` + `img/app-dark.svg` are for the Nextcloud app-menu (picked up by NC by filename, mono contract). `img/app-color.svg` is the brand mark used inside the app's own widgets and settings pages. Do not repoint `img/app.svg` to the color asset — the app-menu contract expects mono ink that flows with the theme.\n- OWASP review baseline: 3.1.0 clears 0 High + 0 Medium findings on a post-iteration re-review. Every previously-fixed Medium/Low from the first pass is still applied. Four remaining Low advisories are documented tradeoffs (SuiteCRM ACL delegation on `onlyMine=false`, `sensitive` column NC-30 whitelist, committed `js/` supply-chain note, reference-provider fan-out on paste). Any future write endpoint added to `SuiteCRMAPIController` needs its own `#[UserRateLimit]` attribute or an explicit reason in the class doc why it does not. Any future admin-writable config key needs a line in `ADMIN_ALLOWED_KEYS` and, if it holds a secret, an entry in the migration's `SENSITIVE_APPCONFIG_KEYS`. Any future widget-list endpoint needs `$limit = $this->clampLimit($limit)` before hitting the service.\n- New per-widget pref keys must be added to `USER_ALLOWED_KEYS` in `ConfigController` AND to the `getWidgetConfig()` return object AND to the widget's own Vue `loadWidgetConfig()` reader. Missing any one of the three silently drops the value from the read path or the save path.\n- Widget shell contract: `SuiteCRMWidgetShell.vue` emits `refresh` (user hit the refresh action) and `save({ refreshSeconds, onlyMine, maxItems, extras, close })` (user hit Save in the modal). Callers must invoke `close()` inside their save flow — the shell does not auto-close so the caller can leave the modal open if the save failed and it wants the user to retry without re-typing.\n- Regression call-out: the previous \"Follow-up Task from a calendar item\" action (README line 55) is not currently reachable in the dashboard UI after the Vue widget rewrite; the modal component `TaskFollowupModal.vue` and the PHP `createFollowupTask` endpoint are still live but not wired. Re-adding this as a per-row action in the shell is a 3.2.0 scope item."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25qb3JkaXVtL2ludGVncmF0aW9uX3N1aXRlY3JtL21hc3Rlci9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/njordium/integration_suitecrm/master/img/screenshot.png"}],"videos":[],"translations":{"en":{"name":"SuiteCRM integration","summary":"Nine dashboard widgets, unified search and notifications for SuiteCRM 8.x. Calendar, tasks, cases, pipeline and more.","description":"Bring SuiteCRM into your Nextcloud dashboard, search bar and notifications area. Signs in once with OAuth2 against a SuiteCRM 8.x instance and then keeps the two systems talking in the background.\n\n## Dashboard widgets\n\nNine widgets, grouped by intent so the dashboard reads like your day rather than a list of modules.\n\n**Schedule.** SuiteCRM Calendar (upcoming Calls and Meetings, with an optional per-user toggle for open Tasks) and SuiteCRM Tasks (open Tasks assigned to you, sorted by due date).\n\n**Workload.** SuiteCRM Cases (open Cases, filtered by SuiteCRM role ACL) and SuiteCRM Pipeline (open Opportunities grouped by sales stage with weighted amounts).\n\n**Activity.** SuiteCRM Activities (recent Calls, Meetings, Tasks and Notes across modules, sorted by date_modified so \"recent\" means \"recently touched\").\n\n**Discovery.** SuiteCRM Contacts, SuiteCRM Accounts and SuiteCRM Leads (recently added records within your ACL, sorted date_entered DESC).\n\n**Quick Actions.** A floating action button on any Nextcloud page for creating a Call, Meeting, Task, Note or Contact without leaving the current view. Toggleable per user.\n\n## Search and notifications\n\nFull-text search across Accounts, Contacts, Opportunities, Cases, Leads, Calls, Meetings, Tasks and Notes, surfaced through Nextcloud's unified search. Background job polls SuiteCRM alerts and pushes them into your Nextcloud notifications area.\n\n## Requirements\n\nSuiteCRM 8.10.x or later with the v8 REST/JSON:API enabled. SuiteCRM 7.x is no longer supported.\n\n## Upgrading from 2.x\n\nThe 3.0.0 release restored the original `integration_suitecrm` app id after the App Store record transfer. A repair step copies admin config and per-user OAuth tokens forward from the 2.x `njordium_suitecrm` install automatically on `occ upgrade`. See `docs/upgrade-2.x-to-3.0.md` in the repository for the manual rollback path if needed."}},"isFeatured":false,"authors":[{"name":"Kim Haverblad","mail":"","homepage":"https://njordium.com"},{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhOvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI4MTIwMjUxWhcNMzYxMTAyMTIwMjUxWjAfMR0wGwYD\nVQQDDBRpbnRlZ3JhdGlvbl9zdWl0ZWNybTCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAK0Ns160Hj+trG84ndnLXeskq5GS2HZe/v1g1gS/jhZPi9fshEwm\neDP0YmbbY58HhN3f2TKy1UqsYLezEZ8lDv7V/4nLoeHso8JgQhvGdYqJ9juRu0C+\nEf6y4EhOGempbZxANBPRNYnGDSq/8azygm+bLaPOGp64cCx7Ly1uWeGt91gl3RVy\nLeBF+9SFfpiGPDy7bFE8ryM0coA0SPu6i5O2vkLCEDT1jlvpZ1C7xo57hIQW8z9O\nO5QTuQQR+JcaZcMZMfevhmcclnQ6mn2rUHgxksz1oyHQC12FbJelDEsuHvW+kowi\nWtV4SBEKq2kEOuNn1NoR0bzw8Qn8uaAZ78hpahxwahL5SHrTSBZtzDZECZ3E+0A2\ndc5sfhi2RPEgvhcVgp7YLw2YuC+jcbUp1C427Q/L12b+of0aFCUKDLP7sPRgsUVy\nm9rVgFw+i2SXu56GMYsSf0RGRDiiUljeHvLZZKyD9gofGQZlrQ9QLncMKZG819cS\ndbzwR+hOD+GUt7o5C2xCCuq3OFAyXy36vnE3NimUlmFLgXl3v1K8RDm1db/o7E1H\nzadrr4hWEEvd0pDamSQCnTWksHskB2YsERqg11hnEVjVzD6JZ++SUx8glcdiUhNI\nLwjFJaqPgS3sK2krz36kyEOOMUQ6GutNszqcoIB8cm5PpVcMVKsRZq9LAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAGEElf1vz20eScuu3ko3VBG+60Rw8UWnRPLIyfXf\n69O604BePbo0fAeEvHl3tRc9LGzVmoNoJT107nLBDtFwF6uoiec6SXrO6x4gswQE\noCNYebUrwbFokjBzUASTLigldBiliNIPGFpe9s6bm6Q6Wp0bYnXRNYId2zO4TlCf\nnLyB1KHL+FgMqIHnDdRnnmkLuKsEWgzElDLsxvE1y/JnQ6FlpRuX25GU/vqRW1Yq\nGVcPd6VsAd8fKGCgexgBTHamCQCUcw+F/S4VGqwyq3QunCUaYeOW/rwXcS7IZHRE\nXy+bqlzii+RL9HBexZC8JyTX5oMUWWDaL8Jv5VcvoM2FtQM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"intros","categories":["customization","tools"],"userDocs":"https://framagit.org/framasoft/framaspace/custom-apps/intros#user","adminDocs":"https://framagit.org/framasoft/framaspace/custom-apps/intros/-/blob/master/DOCS.md","developerDocs":"https://framagit.org/framasoft/framaspace/custom-apps/intros#intros","issueTracker":"https://framagit.org/framasoft/framaspace/custom-apps/intros/-/issues","website":"https://framagit.org/framasoft/framaspace/custom-apps/intros","created":"2024-07-29T09:41:19.562147Z","lastModified":"2026-09-17T16:17:46.277371Z","releases":[{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://packages.framasoft.org/projects/nextcloud-apps/intros/intros-1.4.1.tar.gz","created":"2026-09-17T16:17:46.229692Z","licenses":["agpl"],"lastModified":"2026-09-17T16:17:46.419527Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"t31Y+YRibkvEIyunlUus2O1qj+bXBmoRmGff5lor4ZGbcPAKAA2OZ8cUavoO6/Fd\n0u5TZhIJNUJX9q4zME18C6iWIQKx7+Z5/NhEvjnJLCRO4OL6kHuHxv02x7JraPcj\nSyEqxtQ0osMFdknJAbj7lHagNPqvUJ6fA4OacjRtdrdI5uqe2IOQzsa1giUxGVEF\ntPQIHsi+X1MEfoiRO1OfSf5VmArv+vx6vRnAek0JGdQ8a1tKHxmf1UQuWvESBhpt\nfOTvWS3SQJ3han7dYSwBpbXG0A35P/v6mk/CYTU2NfbLUj5OgMgzkTrrOs8hVl4E\nvABdnINXZiqMe84ZKNisRHskwkKy0YC7dNV4qZz66Ounmm4lq3VxpLmlOqwEifiV\nD2CmFv13S11xnbeLeAQ2HnsgP4PJBBnNXJ6vKWoenHYEvLKAypmmyPxSm1zTd5Wa\n9iW0QCTQtORBtAqJM2OgFfRrvm81LMvvBFJOd8V5F5RGrhLCS1nULuNDvJCgZJar\nIRVVHeogq8nIGJHbjEQrY042fceRpsET/Ky1VuE04B+sLvFdxQAvijN/DdK1K5EE\n3uhU05crwUut530VJ/fJfpGUFBQNbNjv13W2lZvTozxRisBkG6G0kevXGCdeMbwZ\nL0l5BCguOhpMMPhWDU0JdR7qZlz++kAchRDV6u8gQco=","translations":{"en":{"changelog":"### Fixed\n\n- Small fixes with fallback language"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L2ZyYW1hc3BhY2UvY3VzdG9tLWFwcHMvaW50cm9zLy0vcmF3L21hc3Rlci9zY3JlZW5zaG90cy9mdWxsc2l6ZV9leGFtcGxlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L2ZyYW1hc3BhY2UvY3VzdG9tLWFwcHMvaW50cm9zLy0vcmF3L21hc3Rlci9zY3JlZW5zaG90cy9tZW51LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L2ZyYW1hc3BhY2UvY3VzdG9tLWFwcHMvaW50cm9zLy0vcmF3L21hc3Rlci9zY3JlZW5zaG90cy9jaG9pY2VzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L2ZyYW1hc3BhY2UvY3VzdG9tLWFwcHMvaW50cm9zLy0vcmF3L21hc3Rlci9zY3JlZW5zaG90cy9zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Intros","summary":"Tutorials of Nextcloud apps","description":"The Intros app helps new users to understand the main Nextcloud apps.\n\n* **Highlights user interface elements** to explain them\n* **Plays tutorials automatically** on the user's first visit to an app\n* **Easy to disable/enable** for each app\n* **Comes with pre-installed tutorials** for Files, Dashboard, Calendar, Talk, Contacts, and the User settings menu.\n* **Admins can define custom tutorials** with JSON files"},"fr":{"name":"Visites guidées","summary":"Visites guidées des applications Nextcloud","description":"L'application Intros aide les nouveaux utilisateurs à utiliser les principales applications de Nextcloud.\n\n* **Survole et explique** les élements de l'interface\n* **Lance les tutoriels automatiquement** lors de la première visite\n* **Désactivez ou réactivez** les tutoriels à votre guise\n* **Tutoriels prédéfinis** pour les applications Fichier, Dashboard, Agenda, Talk, Contacts, et les paramètres utilisateurs.\n* **Les admins peuvent personnaliser les tutoriels** avec des fichiers JSON"}},"isFeatured":false,"authors":[{"name":"Boris Valero","mail":"bvalero@framasoft.org","homepage":"https://www.linkedin.com/in/boris-valero-0153982b6/"},{"name":"Val Jossic","mail":"val@framasoft.org","homepage":"https://vqlion.fr"},{"name":"Thomas Citharel","mail":"thomas.citharel@framasoft.org","homepage":"https://tcit.fr"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhJqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwNzA5MTU1MjAzWhcNMzQxMDE1MTU1MjAzWjARMQ8wDQYD\nVQQDDAZpbnRyb3MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDUAH7h\nobP/RUlAt2tFemz33TsAAVIE2gvFUCtgkXuB3Wa/QkYTLEJ7kQWDOKfZ8EF7zl34\nVzM8jUgfLArju2PYomEpT2oRULLzC1hwAwWLHsChsl1pmF9A/RvfmtoBk4ui5QMT\n1koubHytTqZ3YRmJfCG5hsqLL0Eu1TtN+dBAjMNWWSXBx9NJYAk8hpYMyZIwFEYa\nFrR64Hc6ATLEt2UTWwuCkdOYjwaB9FePvVncyc1xVoKXx8T90dCBBSvW8q1+a0UW\nxP/yZ2N0gUhZJ4HilJM+C+f0gGGuOoshZbIl5fEuyxpgngYO2HOxXrtzQwypHAKD\nApamLljO6lgbbrR0UL8pGyacPE6RSmA2kfP/B3/0h3E9DQW7/trqjoF1RBrSXSrE\nbKBGZsU6H22x3TjfWNsZB/WUt5IJGk9g9flrtLKl/p9HmtXLIu/fLlDG7TnlLWcJ\nhSI29KUvAIXWZO2cr6s/l6OtojAI89egy0r03zjQV8vJa8zCo7qRSuR2bxHlAypH\nbjqwiHfgbqZ2m5q8k0QnqpghjPSPCZptWC9vn2x8t+miXKTSJBcrDAzsjguR1Fh5\nA+KkeCJPtgjR2/N5Ay92Q038EQiiIgl9Y6+lw7k3tlZZAFhbOxSiYHaplFL0ubIm\n4KxYfdkg0tFMhuwXCJRXJcHjM+qIHE7A93lgsQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCchi8iT5sHbbz0ErefvcYOa6ojyr4uNO0ksmInTDX6ehegChfdb1FN3jqG\nqfVxvOZmumx5mLcZnNdmUTBDKB3XhAW8ywYAdtU+PIjgwgsr1LL3yF4DPFzSFaO3\nowJy8KBSwDiJaF7mOdeQBLm0uL+j8odZ6FrnhC42wwsI4Pcj9354AXfZRS8RJamn\n+9KG93o2V6pA42T9OUWGU8pH1Bwhtccacd5dSWqlSo1XDqz/x7p+7ndi3ukpWkb1\nzBqkMGUlFSrmR0k0lOoSmszxIBKk8qSGRjzZr8BN77e/QV3Dk4YUTcJ71LXB3nY0\nU5kQrtqzlW8b7o4S27ReQ90yqg7J\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"spreed","categories":["multimedia","social","workflow"],"userDocs":"https://docs.nextcloud.com/server/latest/user_manual/en/talk/index.html","adminDocs":"https://nextcloud-talk.readthedocs.io/en/latest/#administration-documentation","developerDocs":"https://nextcloud-talk.readthedocs.io/en/latest/#developer-documentation","issueTracker":"https://github.com/nextcloud/spreed/issues","website":"https://github.com/nextcloud/spreed","created":"2016-11-23T09:49:36.743591Z","lastModified":"2026-10-15T16:19:08.860305Z","releases":[{"version":"25.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.6/spreed-v25.0.6.tar.gz","created":"2026-10-15T16:19:08.788842Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T16:19:08.924212Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"hn3q7YLjiNpNYTH3+QM0Vv8YLJ3LlrkFNejJhYWhDzpvRSmLC5FLTiLckZ4kaUZ7rCVXHJ7K8vw3L+Ub2YPpBNZQ58dIlqyUz7SwkMosGXuSwjZC+n0tTmBrv8U0BISA2GYvGkMJhTZzhPWwYfUuz+E+wOjjv/2uE+7WbQSsb+Od8XSiOElfRcACAkDArdDq44ot82rtDdr8a3107/uaZmYriakGQlyHkpgIUltDHkX/VA4GBWNC8YHHJBAWFCeokdttOyzbvHz3ChyEHJB5lLKaFXClEOJ+1Zc1ULJe/6F/P1ByWiSZj+KoHKo3n8NIlo/xEfNZxmjS/X/0JmUCUs+q23dAlqkaUNQF/QxJxbGH6+DXreQ136bHL58yH0XRGVwq2wjiQoY6kd2B+noowfedCVLFjUZsGpu1G+mKuNDc3h1CFJxQgAk1ao/3+73US7b2MM99/sTAcqChj9aVX4Q47SV5D116Hl4YXe8g5nRqkj6rr5UvRlIDwLviHgcy9Yhsk+bXgd3gTUYqAvxeXUZoCTx7BxRgBlqYdDPEnceb9jZWhBOfKlTnvKNlmHsqdZmkTtAhIvBI6HdZz61gYLGPRvdCc+PcPLd+3B+rEtlstiZRSiJHXjZuWfJx280EQ/PPYBT7gSBZS8Zp50DUYv/c3v2VnWtwX/rnRqfnqoM=","translations":{"en":{"changelog":"### Added\n- feat: user option to show unread conversations in collapsed tags\n  [#19745](https://github.com/nextcloud/spreed/pull/19745)\n\n### Changed\n- Update translations\n- Unarchive a conversation automatically on new messages or mentions\n  [#19736](https://github.com/nextcloud/spreed/pull/19736)\n- perf(unread-cache): Improve caching of conversations list\n  [#19729](https://github.com/nextcloud/spreed/pull/19729)\n\n### Fixed\n- fix(sip): Handle direct incoming calls as phone participants\n  [#19849](https://github.com/nextcloud/spreed/pull/19849)\n- fix(ConfirmDialog): do not submit input value on cancel\n  [#19841](https://github.com/nextcloud/spreed/pull/19841)\n- fix(admin): split virtual background checks\n  [#19827](https://github.com/nextcloud/spreed/pull/19827)\n- fix(matterbridge): validate the server domain for Matterbridge\n- fix: Do not show {TALK_PLACEHOLDER} in Files\n  [#19808](https://github.com/nextcloud/spreed/pull/19808)\n- fix(chat): Send delete for all combined files shares\n  [#19735](https://github.com/nextcloud/spreed/pull/19735)\n- fix: Find all room shares for a single path\n  [#19728](https://github.com/nextcloud/spreed/pull/19728)\n- fix(signaling): bound the connect time of backend notifications\n  [#19715](https://github.com/nextcloud/spreed/pull/19715)"}},"signatureDigest":"sha512"},{"version":"25.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.5/spreed-v25.0.5.tar.gz","created":"2026-10-01T22:48:38.717482Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T22:48:38.835359Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"t5SRTMoFnVYsnBo2pajMtOYb/mzGHluaDA3wQxAou/NbHwdF2PY7BlOBySI4khIRGKFaMS1spaGcJjA9y7sNqlZ4YItL1Qx3xaphE9ZxYl12bltIVFkdlVWvhP4Gm6RpxqpfARo89rwK44TdfFgwT6HGWimImv2dQVr3oBrlXUPtCr0mQNI7Zfo7byEOusBK+dj5dqoHMbgHAae437kqXnoFizkFulgEZ06x+k7MKclhlHreuG4SlC46XjebBccUCKgsIXdv74fGAoU0KzwSQWRq8zsKxDu9toecrKPqFywq1nydxPT3cnrLX7Ddo4Ke/+dNwEHyU3PSPfqZK5BiIkCI57zETvi+kczBuJ4v5uar5wYmNPADD+oJ8WIXU/83i9imqyqOnwlaX1kkyzUg7SSwczkaDt3e0DdpqpgUkkzHhjr9VuDTOnxRsI2Mxnz2aG0tmctn0zKWHBWbU/+qfr7kd2JQhLlDge/oTTz3W/jI7kpzKtZ640C+0l/Xo2dPTPQSu5oq1gRiFXPqTAKZIOg+uMudG8KCdp7bLUqWDEnp6+OROXcyVUUlc7tzrpxXcB5LVOf3yotGtv4gjtbooCsManbuu8gpNgDAkCO8aG+oKNhNtwJN2bpD7Egoaab4ZRUe3nmasE/n4sED/XnHOoqDbqBoPBwiTGxsxQIuPdM=","translations":{"en":{"changelog":"### Fixed\n- fix: web application does not load due to a regression in the build config\n  [#19670](https://github.com/nextcloud/spreed/pull/19670)"}},"signatureDigest":"sha512"},{"version":"25.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.4/spreed-v25.0.4.tar.gz","created":"2026-10-01T20:20:32.416805Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T20:20:32.563479Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"wlytkfv3Yxo066P6u8LTiAJpCKMxgLHEFyO7yctlF9og55v0ayzD/MTxgBjtL5V6nFCh70qP+Sj41TTtiJwq7qFWEcNWQ78NHEc8oYHadwuiGJTU1lnfGUp5AGzdGLpeLrPoVFhnecmiiTKw8Gl+5tB1K+W4LscyaRjMfb4ZDin6OvNgWk2bzITVYv1GENXbAPVICpIekZ0Lz9U3TTUOm8P3qEJq4YuY+HrUoca/Hq1SuqfoEKQbdhfvnRjxaHdVcmjjxX9t0HdizX8w140cu79fJVRN5/rUqaMmtd6PH7W4fqvDs8gV5jZimU/dyHaObSQjdwE+wvpJUHqYKvjjhLNr62GnvxRwA37Bl5W/PfftWZ4uJEB1PJEw6si2Bq9iF2Hon6cXNDDmUCpplj8VFSbK+sYK9SqLLP2l6rgd2/4ezQuYz2J2meDKutL9I+NWx+i/QeoGCp5oAo5nOxyZ5ByRFtU6Nhc2oRhH3cmQI1sCuR2kJV1TZhseUYCK6rVFDWZjCsRPHo7kujzc6W2EcVCEhIcS54cnZUTmIO+V09qEeSd+zSG8BIsrfWX21ymiCcHltSdYqM77jq6fvkl0opQJgJzHX3jIswkmIIZIMH2oGWsG6A65P5BcVw5muUajq6Y6SAbA72QZTvJ5r84UERQrpadDUDftlSuRv6l+kMA=","translations":{"en":{"changelog":"### Fixed\n- fix(sharing): Fix undefined method setPasswordHash which is only added in Nextcloud 35.0.2\n  [#19665](https://github.com/nextcloud/spreed/pull/19665)"}},"signatureDigest":"sha512"},{"version":"25.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.3/spreed-v25.0.3.tar.gz","created":"2026-10-01T15:35:43.451060Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T15:35:43.577551Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Mh5gbcLU+h5psj9sSODYLgwKopJwx/G82pLC7sUfDHZZTmfcJp4CYH8KYwMjk/TGnSAu3FZj31fZd8qsO7aeRg9t6VkUGA808Qe6Xsd7bgV0ajBOwt/HX8vdu6t+cs56jbFhVByAnC2M9yXzjAb1zBnKyOt1DXCoO6i0uTJFQOcJJqEZuExdeZpF/hK7GWDuc4ITmfiZHfyZnH2pfA2BeQJ5/qhk9f75QPuTVRTVwLHD8eGUb/xyIvkSMrHmaJkUKoy9t1OrvowIvHqP4dfO0/oMPksuYs2oOG0uwWByCG1hJAtt4LK3nHROXdpo/zC3m6KvhGWMwilYUcW9wigDmx6jZn5FgRIT+QMSHFWrAFsIID3QYiMOvpe90x7aOjiQKxHopTDpzOhfE+00Ibo8C+AlBNMThTedM4ORxYt0bqr9KAXg5EwOy8aTgy8k1qU2NqCvmDmSzwbDkokWvIDcuPriQFJonWVkUtp5e7Y1I4z4RpAvhHCSf9OxBCvN1ufoZFOXSHT1h71d4Vu52ESwtBGyeAh/MUAkgpid+iI+R6ZKDNOQcWqgUjTLDTm0Nzbef4ndz2CVdvstxaTaZxPHfRbr+nprT63ya9SjmFoGxCFjz0dV/prHak9y/3pW/blIaTekFjwhPnJXSurb8H5u55rPjMITQfk6WvkNqYxFKis=","translations":{"en":{"changelog":"### Added\n- feat(CallButton): add a split-menu with 'silent call' action\n  [#19655](https://github.com/nextcloud/spreed/pull/19655)\n\n### Changed\n- Update translations\n\n### Fixed\n- fix(dashboard): Display actual last mention for user in Dashboard widget\n  [#19656](https://github.com/nextcloud/spreed/pull/19656)\n- fix(media-settings): Allow keyboard shortcuts on device checker\n  [#19644](https://github.com/nextcloud/spreed/pull/19644)\n- fix(sharing): Automatically set room password for file shares in protected conversations\n  [#19641](https://github.com/nextcloud/spreed/pull/19641)\n- fix(publicshareauth): rate-limit and expire password verification rooms\n  [#19632](https://github.com/nextcloud/spreed/pull/19632)\n  [#19617](https://github.com/nextcloud/spreed/pull/19617)\n- fix(recording): Support long room tokens in upload config key\n  [#19612](https://github.com/nextcloud/spreed/pull/19612)\n- fix(chat): Allow search all messages in chat from selected user\n  [#19590](https://github.com/nextcloud/spreed/pull/19590)"}},"signatureDigest":"sha512"},{"version":"25.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.2/spreed-v25.0.2.tar.gz","created":"2026-09-25T10:29:46.882291Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T10:29:47.014025Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"UWhht/6Re7Vzm0j/l8QJxjh7bgbwybh++2ohBw9OuULzrdFV0XhlaRE0884OGUKuo2eFMyWwOyzSnWhoYYFcRp7Lb8z+2D2d27zDKTAOIHMmqY1/+sZqYVMtnw53Vd4YTVL2IRlWV7P9/fo4lS+Y1XN4i/QF3v74KPwKDdiRau/hDaYcxZHwgNO42tI9EfYaRCbFcIhwGMucHMRBrvNd/A0c9V940XyENnNQcblho23khJ4i0jo+ZYXlo2zDkJGmU/x+avrNegKktyncGdRFwobzaxlq2Qh/g3VltPMiKVMywDJa6dT4z62rwI4lx0AWKYgDGwSWMW90OtEqczpqX9OP59Veyio5if0A3p1NRhU6ToagjNmeIEFQb5s5rCG69yQy6HS3oaPxKWd2RWZRFARLcNEWhmw+MxiQgGXFiyFqdiHyFzyLJnawbOxgqhSy65duTlQKdh+X1clTc/RMTr8kB+5jyQP6kSBoi03SzoRTytEHxT1j/fDCgokF+g+dPwkg78rvKjpz1EV1ebiftFYzAl6M0VQ1Pn4zcRKzpjnvKCID7GbvqxiKZvQwmbz9ySSWLOQerMkfemJXlxspE0vXy4Q6JhXfK1uy7etHyfI0ZhmEdT1dL/1IOYpHZqCuzMGQCiop7yhi+PqfKhScftZ12TC67hD6lRg6EOy5/lk=","translations":{"en":{"changelog":"### Fixed\n- fix(migration): Correctly check for Index rather than Constraint\n  [#19540](https://github.com/nextcloud/spreed/pull/19540)"}},"signatureDigest":"sha512"},{"version":"25.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.1/spreed-v25.0.1.tar.gz","created":"2026-09-24T21:41:22.024135Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T21:41:22.155813Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"iGYiVvUGcfVkhdIcUFosEax4cpqkfyA9dRD70lw213Dee6g3y1DRwoBYjwmAK0IVpXkVv0ggQ8nn6upQHRIOLyrvq2a0QFMMwMLVUqu2NGVv5+wIN33/uMzn6qL2wc2eHqVOnpuEyNyVPq9oBv8Nu7nVd1ugzvhXK5HG26UWYjz8KdL5ORyYLkg6O5urF9mhQ3ORRcHltxVRMqmN4zo1VZ8MJfI1GMWB0Ig2f81fSROeOMoiTNTQr7/hqo9k6iz5ZAPTiCegdsDzFSHFzwMbGhFk7Kmfg10yK5L2JMxbGocND2KD6XTX5+tTfV7/1dMBbkRw3wxs3AG3zg3yNGZq9JYgs+p7X+QgPXZ6+qNSXNEIrAYqy4WZE0dfYo6iuPE0zauuECzC7hXuboFLIttoww3sfvPr3itlfZOm1RKm6+8eZOy3arpQPP/fLqM5fg5dSNzu4aLEqUmhc4Ddv9M7VEGrV9Z2mOC4GeWc6Dw6geH1+DRchpx6ho40/CXWkYPlqyJXYmf5GuK351j6fWoDfWywQ4jU+KmYU5MOqQ75hslP4D/B/3fyKhBR0nzs8Vruq/G9jCoIfFrtZJRoKloIcqY061tFdrh0qH63EKeUgGBFBpBy9F0PTyD2U2rIhpEJ5h88tG4gHjL3h1Muqs2xxSAAzTuqAIL1OSpIb88zPMg=","translations":{"en":{"changelog":"### Changed\n- Update dependencies\n- Update translations\n\n### Fixed\n- fix(polls): improve wording for 'anonymous' polls\n  [#19527](https://github.com/nextcloud/spreed/pull/19527)\n- fix(notification): fix notification links when fully subscribed\n  [#19520](https://github.com/nextcloud/spreed/pull/19520)\n- fix(integrations): show conversation avatars in Files Sharing tab\n  [#19515](https://github.com/nextcloud/spreed/pull/19515)\n- fix(upload): save compressed images as JPEG\n  [#19493](https://github.com/nextcloud/spreed/pull/19493)\n- fix(chat): show preview for single-share documents\n  [#19434](https://github.com/nextcloud/spreed/pull/19434)\n- fix(recording): log activity to recording owner\n  [#19424](https://github.com/nextcloud/spreed/pull/19424)"}},"signatureDigest":"sha512"},{"version":"25.0.0-rc.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.0-rc.3/spreed-v25.0.0-rc.3.tar.gz","created":"2026-09-10T15:50:24.840510Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-10T15:50:25.762147Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"gzpcG4Nws99b6H2DucjR3gD+RZALnYWKPvShEx9MGclCSflGc5461M8S7I80mPRVdlmfgi6hMUdbVj3YfQLEZQ3G+BOlXfzJTxtuBXWDNXDeKzyDYv8C6IFRopdXZnG5XrY7XqoloqR0pxzmBNX7y5tkeeqZeaGf5RMglsPS4i8fHccafdIPIHCWzA1M+4C/qVwvfn6Z5w9B8+ipUq5l5eTqMcprmQ6/SxGoCQHhxOq+Nhx+6AyFndHTI5s9GwJZrFt+5N+mCc5cg8PLc00RanxeyzX7jfNFpHJkE5Tlj1RcKD98MA/k99tDwtXq9SvrQXAs86aR684pOmEet89SZXleTGDKT/q7ifrTaAZJl3lGmCshhjjYYZp232m5RebXlXxY9QHbxzB2q+oZNEPTUsN9C0mfDgwjF602p7NkgpfWeHCp3XSDrIS/+MiF+/EQn7/ZtKkGK8VRCnTmmNYQNbeXN+emQGrq8Fz25T8t9s5yNy4TKOoLDKCOTfLMhAQK9qcTDjvLgAxPU4DIuPYh2bgbi6bu41Pd9UIxJ+EqcR+ZXyY2ZZqk2y9pWQcfFB19r+703GE756VIoKMQqreaV8yfwWng+mYu/hmgjVmbLnIYmLjlZSZ1W1n1EuNws+4LWNnEHDE4hG2chOw40YeKv3ac9NlNzf/bCRuv2MOB1yI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"25.0.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.0-rc.2/spreed-v25.0.0-rc.2.tar.gz","created":"2026-09-03T15:50:56.274760Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T15:50:56.389083Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"W6UUl5jySQG7Q/z06W4WL4okq7bwPgDAZ5Z81gzpKbWXUdFfoFbcZY8JeIkmZeKirv1gFWU19wGbOvgrzVZ1moW6GwliKzk5y4Aai9es2/2VygGwwxyZZ0PP+/NHBUd1ZTo5i5TSedgjypEZ1JwLjRYKI+uNOfCSRy4PJCP0IzlHB7vu93SNi35DTQaPw9km7AbzQIDw9W2pLa5uyo3P02rsEPq7RoMQa2LYgXMfVEp7wM4Gdmdp7ruTpW8vI36GdgDODwCx+n2VxLTz6eRBs/QDoutxMpLijTsmvERO/eLeNBmu5i+mNqDmAybAR328J/F5dkLa5rhmt5qHujet2ZSDV/6RHc2GAC+GvAnEB6gJTVRKQ/Ev5EOepMqTYXTqydCx/b5YjEHCw98FOjOV1eFzfH5OlIfb8WI0ppA4XaSGYZVDHDaahXL42JjtI/hfeUNYcTZUul+dNQTOyJs3fm67MWDHFOJ0tU/RKugAV3/gbx/xtQXz5dq9jcMPkbgqFp9ldObASo/7cbTEsZxmDecKXPXqFIeI95xKDkh2iXOnHwK2+2tp/fpZerjv7gfq8UHf43mmL3NPeHjm1VC2cOX7bLqjbpTIW2BZ2qoj5TdSJiYlbxa9sKZgU8IGxQ97mrkedyR0vVXc+H4sYeAkdaqE039ulIBS8771e4tFfe4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"25.0.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.0-rc.1/spreed-v25.0.0-rc.1.tar.gz","created":"2026-08-26T16:22:43.793375Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T16:22:43.904687Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"pEZZtLbbAB3IxrePOdm3lbpENkhsV8T7dw43QvsizuZkjk6iooNtvIT6i0Ix3ut+zw8/U/ddw6UFt8gEZ+/+kWSYHZ1ESFu+RCYBPimKIUl8szLpXGW04HT1zYsHkk/PpKasnY8HBLfeVNj+e69znsjsZJfj4DsP+wp4norAUtfgZda5vr+6E+hXCuChIms+iKvJtmQeYIU0YKC3osMt791DI/KQDaYi3MrQPY1YePMnhiTFNkk/MRV3y9YuPh6mDeBqVBW/paZXqGbPwcJZiwcMTar42CkKNFOiYo6tD+VEvRj310Iedliwa573uSD6L68r/s0Paoo0jXphhmKmTrW56+7Kit8tMgONFIMN/Qa5pMcE8NBiJ6n1tT5yHyg7bYf8wOstChGPQWhxy2LX1NAJLEEK3BOrJUOFrUiCdpYpnm8Ya/2JKL+Uyxhxz9zFeIfEITkc3PLN1UE5h4DxfxATHFfbzR4VBQTU+cecAaNMTobggx8nTSCnOxTBWRDHKOXMrhIblVFAOIsCf1n7FuAV+3PSLip26hYAkeGolGY0i0KyGeXvHXiZBSQgwh6XrFOUIbzOxt234tLps5yWJyo0Gwvp5DubnaTzildeH2j4MHVnJjerSA6swOia85N+RzkOSocRDeLiu0+jTTgzio2kxlgubUVj5iSPPwqVz/Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"25.0.0-alpha.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.0-alpha.1/spreed-v25.0.0-alpha.1.tar.gz","created":"2026-08-13T17:07:58.070504Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-13T17:07:58.194993Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"BtjDsLQ4v+EsCRvyMmylj9BALSc8QO3aOyGlm+IhdSNDmczmZHxmu40EuE+FNQAPMonrD9I/r9K3Fp4/E4wJs2hfYoYAiJoQWfEa3rdwKrkrEUBsdGUHUxLpZdrE2kwj/kIvqjINdlOLjyKqIwBph4+ujhaffiRLA/04w931E+as9nSi1PO01qbSHzGUViQKs/I/IZ1RinbzYBmYnFxSJB4z6RbekC+a8iLQsC6uHzTUf7ysmcy4a+5iJUzIn0Fpk/Td3Jt9egp9BQWkcm8aiA5vYRH5cuMNfPEWHhPisuhSeAO2tOopl/A0aqfI1n4TynK+oB+wYv027/LPgX3ski2Qdax+x7ib/3cp0LXpbOsBEzBIpQudhsNtEFzWgIeBE4mwrfQs/+6gk7uLZKxNDkN46wJNuglFZBI0urWF+FLlKAXhQ2ILlC7f9Ed/SnlRbme/HMycOdVgW+9oge5YjYlMR/WSsZiklDGDBGWP+O8hEyD9iDVg4sz34nTzprgit77bWbmOCeBiwJ/qN81t3/EDoRYWO3SAhvR4T32ISPjDj74UhHwJF187VgM1oEzmj0bWbzZ0d/DTklHIlWKdWwuN6JDrwJgPWeYRuMXGKJoaaKmwxqGh+VWsE3Y49E0X+yqffiOclaiDyLreICLoladWfFu4VT5UV/15JydVzzI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"25.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/spreed/releases/download/v25.0.0/spreed-v25.0.0.tar.gz","created":"2026-09-16T07:45:46.548714Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T07:45:46.683982Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"CI0goCSDhLrNh/oKLmtVRJu9UesxozYWCRoHKbGjXUvBgrR7YIFdhlLh/9GkoAIoUg+NRRLMsfXNgv9Bcxe8TocywHQZVIRsSPkwmykiCraIklSDEJqm51PC5ipEZndmT22XEcU1GH+97VeZ31J5M+/5hcTIWPisDeyt77SgUOm8HdNYAe7mAc19eum58N4e5pl9zBabo0tAqPsIbCH8qCdyfUcsf/2xxYFq0bzNqfNa8Wt7bbA/ibV0AEmTFT/lMjjTIAiUJuZ1nPPZrG9UbJYdfLX6nH53YRIHynygSz5oTihNFLAcg3SJnI8aS73Y34Ncbb3lrmL/SoGVOMoqW9wrPaIpdmZMSlKhfijH3HbRIMlaZvIA3TbeQvwbTz6DL5BoPeXF6sjgePsHfWJ1G25aLwK0O+qvQJhdj+Vg1WfZpl/15Rpaz9oLA+IA99XaGcL5pYspyIDHko6ykeU8Crc+Q7eqLv7hodW3hKoIVTEDN6aXgUoq2SR9MqBrwcg7LEyKP6uespcnYgz0chVWUv6GZuE7l3zTfQUwTGXePme804Me/ADf8Hp0WpCETXkoWa7iMA0ZbqNbRob1/L+cwzt/Y4fVeNNO5cIJZbQxXxmopNv9c15oSmmvAW3G8BN9H770OzmAlPlz2W2D/uNErtGIObbifkenlwMRSRdwWS8=","translations":{"en":{"changelog":"### Added\n- Classified conversations, announcements and channels\n- Owner role: promote and demote users to and from owners\n- Global message search in the conversation list\n- Preserve conversations to restrict deletion, purging and visibility changes\n- Setting to limit the start of calls to specific groups\n- Upload editor in the message composer with image compression\n- Combine file shares into a single message in the chat\n- Introduce multi-speaker view in calls\n- Show the time of the last message in the conversation list\n- Support configurable call summary prompts\n- New design of the Talk dashboard panel\n\n### Changed\n- Update dependencies\n- Update translations\n- Require Nextcloud 35 / Hub 26 Summer\n\n### Changed\n- Update translations\n- design: rearrange file previews in combined messages\n  [#19269](https://github.com/nextcloud/spreed/pull/19269)\n\n### Fixed\n- fix(chat): fallback to real image in case of a preview failure\n  [#19361](https://github.com/nextcloud/spreed/pull/19361)\n- fix(chat): start threads with the file upload\n  [#19351](https://github.com/nextcloud/spreed/pull/19351)\n\n### Changed\n- Update dependencies\n- Update translations\n- feat(recording): support configurable call summary prompts\n  [#19252](https://github.com/nextcloud/spreed/pull/19252)\n- feat(search): promote \"search messages in current chat\" feature better\n  [#19185](https://github.com/nextcloud/spreed/pull/19185)\n\n### Fixed\n- fix(attachments): Fix missing previews for guests\n  [#19254](https://github.com/nextcloud/spreed/pull/19254)\n  [#19168](https://github.com/nextcloud/spreed/pull/19168)\n- fix(chat): lock scrolling in inactive session\n  [#19226](https://github.com/nextcloud/spreed/pull/19226)\n- fix(chat): Send read marker only when session is active\n  [#19219](https://github.com/nextcloud/spreed/pull/19219)\n- fix(chat): Sanitise file name\n  [#19230](https://github.com/nextcloud/spreed/pull/19230)\n- fix(presets): apply default presets that are set by admins\n  [#19184](https://github.com/nextcloud/spreed/pull/19184)\n- fix(sharing): Add a repair step to remove orphan entries\n  [#19246](https://github.com/nextcloud/spreed/pull/19246)\n- fix(sip): Correct restrict SIP creation\n  [#19243](https://github.com/nextcloud/spreed/pull/19243)\n\n### Changed\n- Update dependencies\n- Update translations\n\n### Fixed\n- fix(call): Improve speaker view layout\n  [#19035](https://github.com/nextcloud/spreed/pull/19035)\n  [#19003](https://github.com/nextcloud/spreed/pull/19003)\n- fix(chat): Make scroll to bottom work for very long messages\n  [#19018](https://github.com/nextcloud/spreed/pull/19018)\n- fix(chat): Don't break message grouping on edited messages\n  [#19006](https://github.com/nextcloud/spreed/pull/19006)\n- fix(conversations): Hide unread counter from tag headers\n  [#19104](https://github.com/nextcloud/spreed/pull/19104)\n- fix(conversations): Correctly scroll to unread mentions in conversation list\n  [#19102 ](https://github.com/nextcloud/spreed/pull/19102)\n- fix(unified-search): Correctly register app as search result\n  [#19085](https://github.com/nextcloud/spreed/pull/19085)\n- fix(upload): Combine temporary messages during upload\n  [#19106](https://github.com/nextcloud/spreed/pull/19106)\n- fix(upload): Show file size on upload\n  [#19045](https://github.com/nextcloud/spreed/pull/19045)\n\n### Added\n- Classified conversations, announcements and channels\n  [#18680](https://github.com/nextcloud/spreed/pull/18680)\n  [#18685](https://github.com/nextcloud/spreed/pull/18685)\n- Owner role: promote and demote users to and from owners\n  [#18924](https://github.com/nextcloud/spreed/pull/18924)\n- Global message search in the conversation list\n  [#16344](https://github.com/nextcloud/spreed/pull/16344)\n- Preserve conversations to restrict deletion, purging and visibility changes\n  [#18351](https://github.com/nextcloud/spreed/pull/18351)\n- Setting to limit the start of calls to specific groups\n  [#18647](https://github.com/nextcloud/spreed/pull/18647)\n- Upload editor in the message composer with image compression\n  [#18984](https://github.com/nextcloud/spreed/pull/18984)\n  [#18906](https://github.com/nextcloud/spreed/pull/18906)\n- Combine file shares into a single message in the chat\n  [#18989](https://github.com/nextcloud/spreed/pull/18989)\n- Introduce multi-speaker view in calls\n  [#18966](https://github.com/nextcloud/spreed/pull/18966)\n- Show the time of the last message in the conversation list\n  [#18987](https://github.com/nextcloud/spreed/pull/18987)\n\n### Changed\n- Update dependencies\n- Update translations\n- Require Nextcloud 35 / Hub 26 Summer\n- New design of the Talk dashboard panel\n  [#18980](https://github.com/nextcloud/spreed/pull/18980)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zcHJlZWQvbWFpbi9kb2NzL2NhbGwtaW4tYWN0aW9uLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zcHJlZWQvbWFpbi9kb2NzL2NoYXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zcHJlZWQvbWFpbi9kb2NzL2ZpbGUtZGFyZy1hbmQtZHJvcC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zcHJlZWQvbWFpbi9kb2NzL3NjcmVlbnNoYXJpbmcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zcHJlZWQvbWFpbi9kb2NzL3ZpZGVvLXZlcmZpY2F0aW9uLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Talk","summary":"Chat, video & audio-conferencing using WebRTC","description":"Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat** Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.\n* 👥 **Private, group, public and password protected calls!** Invite someone, a whole group or send a public link to invite to a call.\n* 🌐 **Federated chats** Chat with other Nextcloud users on their servers\n* 💻 **Screen sharing!** Share your screen with the participants of your call.\n* 🚀 **Integration with other Nextcloud apps** like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.\n* 🌉 **Sync with other chat solutions** With [Matterbridge](https://github.com/42wim/matterbridge/) being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa."}},"isFeatured":true,"authors":[{"name":"Ivan Sein","mail":"","homepage":""},{"name":"Joas Schilling","mail":"","homepage":""},{"name":"Julius Linus","mail":"","homepage":""},{"name":"Maksim Sukharev","mail":"","homepage":""},{"name":"Marcel Hibbe","mail":"","homepage":""},{"name":"Marcel Müller","mail":"","homepage":""},{"name":"Christian Lorang","mail":"","homepage":""},{"name":"Daniel Calviño Sánchez","mail":"","homepage":""},{"name":"Dorra Jaouad","mail":"","homepage":""},{"name":"Grigorii Shartsev","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8055555555555556,"ratingNumRecent":0,"ratingNumOverall":36,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEATCCAukCAhDVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTkwMTMwMTMwMzQ3WhcNMjkwNTA3MTMwMzQ3WjARMQ8wDQYD\r\nVQQDDAZzcHJlZWQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDNr3Ro\r\nQ/2XUulBvVYYXEYaJ8SLuJFuUXVAh8iNWabPTmELbmmZdRVD5veAH+AYB/ra696O\r\noVharkmaeg5VvNY1Cud4ipmZTwOMypve2dh00KnBUKfxNWxXozKLzYtYZVsHGimZ\r\nNRvjsPs8x7CiR62AD1WbyH2kbEYOaqv5XJcvpuh2gJoTezSbiA9I1ll/iKBOQIMO\r\nfc4sj5pz2nyWpRMcBuMo1IiwLFHMjiEAVXz0ml66Oh7JrPZoQxUirgD7SvnQnOCM\r\nz6hrpkD8UDVvnXOoLLOCguHuhDOG1khroXDcSfx8NY/zvXPhpGrvp/tE/vmIXDdI\r\nclYQEFODCrn7qeKgrCCny4LCQiEE9jgDiYs5UkoOEiPOggNgTx15UJqjq+gdx/98\r\n7h4UukeGqC3hFSdBj5xvlcdPaEP2cJXkD71OPCm53G0ofI31+MB20sde+BYKrEDo\r\nmqF2GLJkunaBJK/bwKNsYyl73um21s2W9X6522+9N0eCIm4OXsYs7EbrCcCUMPYN\r\nx0MuFtJ5aHPyxnyDTUOh4fuO8JY6ID+U1TAd+hZ3pNr+Gm2DyJMMcg+oE0TFQ9t4\r\n4mq5y4d2BBBlzO9Tp8RMdbpIp0lijBZb1pmnefLe3GYpsqxmGe88JRtg24WL1sCQ\r\nW6fouiEkS1UhPgQlUDnLuQ5auUgJL73qUfd5ZQIDAQABMA0GCSqGSIb3DQEBCwUA\r\nA4IBAQBZ2WpZ4RVvYmQkqjQ3DF4o1PxiorTs0scwg8eJsxzt8E+xFqL6rvTEArol\r\nz4DwRv4aPf5h8RtABdtyWK0iECpL1C9Pn/GmimMrblvtEcoGkjG8VTb9YTgR4AjX\r\nM8WoD9h+vqBUqX75xotRaePY6V/JLoYXaG+BQim7DQlSDyRtc2k8ogSgViQ1FjeL\r\n9/CypbOX1bvyikKEuhF37Mno1JLvC0xcVyCWsjKYv/Bl1sFi5pPqOLiY4OjYiRjb\r\nejDRe38qxxSWuunnwetMA6tPE6WP8yal9inmX2/At7oaVBeFd+ZRrvT6800e1qOd\r\noIMdCWc6wfQ7Vf+vWlMePKVZn9/v\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/c/support/talk/52"},{"id":"qownnotes","categories":["office","organization","tools"],"userDocs":"https://github.com/qownnotes/qownnotes-nextcloud/blob/main/docs/migration.md","adminDocs":"https://github.com/qownnotes/qownnotes-nextcloud#readme","developerDocs":"https://github.com/qownnotes/qownnotes-nextcloud/blob/main/docs/api/README.md","issueTracker":"https://github.com/qownnotes/qownnotes-nextcloud/issues","website":"https://www.qownnotes.org","created":"2020-04-30T20:30:50.280634Z","lastModified":"2026-10-20T19:23:16.391198Z","releases":[{"version":"26.10.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/qownnotes/qownnotes-nextcloud/releases/download/v26.10.3/qownnotes-26.10.3.tar.gz","created":"2026-10-20T19:23:16.381021Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T19:23:16.426595Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"oQKSSxVKQVnCXQsICPGD2dS8+5gSGYvlOT9KGttMMNj2Ejuf+SSylyko+e1Jh6NE4jnIOPkmsZeh0fnxPVWTMJlbWBKEM/OZGXp7T4OifIKHLW2mjqhn5Ls/mg0P2kZKXAAAio2Dy008s5H39rHwTRmwnGtv/nGs7vahoc41Em75LkrcIAv7P3SgTf2yiq0an6xoYOMTO/FqzcRfDaULEWTpscdCiAhObVTm/H50t+gTHuk9VKuGDWaxAwBiGg+0qTFtU2k38hS5vC8EBI/HKrKq5VcgUQuKpX5R8mB0qJEewHhgXVoGHRvmEtmlLdTpmQ+CnzENWwSt7BjqI2ZXr7nJCodBDPn75g0BdM3WzbJMTd3tfs+/56WyZU9h5hT4ZcKzKUY0igZ9OMNnBHEQSxbk0FEUkJHrMKXGUpM+652XUHRTfMXHYQUNy6HIuulpVJBNzSzZ0soeM87Nx4gCHyV9la6TxpwOnRXegTAvGuaYE5qGsF0yhIVw1G6ng94JMAXDD64PjZTjFCmZ/G4NpzEwSN5nE1SeynOOhtOpHjNSlQM6pMBQLrhWUmvctOsbknVqirNHabvC/LYAhg9fTpuXW6p/Bk9uX7JatU5lNC/zPQi6Ze6QYNtxNV++ibQVcYd4Q6lSR040+9K4JN80iEmE0mtmvjk1HAgLZGXQmcY=","translations":{"en":{"changelog":"- Ctrl+L (Cmd+L on macOS) opens a link dialog with web page title fetching and a searchable **Link to note** tab,\n  inserting relative file links compatible with QOwnNotes Desktop\n- Ctrl+Shift+L (Cmd+Shift+L on macOS) opens the **Link to note** tab directly\n- The link dialog prefills an empty URL from the clipboard when permitted by the browser; Escape closes it immediately\n- The note's \"…\" menu has a **Link to note** action with the same behavior as Ctrl+Shift+L\n- Ctrl+Shift+C (Cmd+Shift+C on macOS) inserts inline code within a line or a fenced code block at the start of a line,\n  placing the cursor inside; selected text is wrapped in inline code, or a fenced block for multi-line selections\n- The note's \"…\" menu has an **Insert code** action with the same behavior as Ctrl+Shift+C\n- Alt+L toggles checkbox list formatting on the current line or selected lines, preserving list markers and indentation\n- The note's \"…\" menu has a translated **Toggle checkbox list item** action with the same behavior as Alt+L"}},"signatureDigest":"sha512"},{"version":"26.10.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/qownnotes/qownnotes-nextcloud/releases/download/v26.10.2/qownnotes-26.10.2.tar.gz","created":"2026-10-17T13:21:43.185961Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T13:21:43.756090Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"pvffbOvZjDmQN+pykugM9uIk+jvPsN4aEti/OvZgiYK6dszBPWPbX1vQ3Eny6jpc/msI5FOOTSDIjDS/lifwO4O5kLI+0fb/pczA40id7j1qxGRlspWUa2Yx6glrObdEeXoFYc8j4p4tDkoafzQRTx9jQVBsU4fR0DXru319FaAH7glMJ/M6+HfqLxNMg06r2AFMjsbK49wiLevt3GK7uDWw+S7taPNCb7HVGiDuIXj4Nr+BCqQRrfh2hUcRtNGlzGx2JSRUkHyYYcFap8YxBdc3U3dHtgk5Dtbx17ZaaeeaD7w+1eUO5cb6A4tbjUHBPb9sLa+xSY/aeo0IqyZSHuEq618cXPpOMmoWD1VYZlxc5nVapX8U8cTOvn6WvRjmq6ptH27UVHTf65n2CJRWH2FfodS/N0pTBk57E4sZTBM9TR+HeP+ZkARRAn6JMHeAfUYvFo83aqqolsFfZ1pbD/XquCj4CGWGAAaJaSb47zVZBZ0x3r3ac80X5M12TPSoFllfuZO6pvrq0CIhjZ8zqMaeB8vRO2zkzkMjCzKCeE6PJ5Hlt2xbCpQWxKAksJjtp8Jvf7MCmVYU321ZORub8StNCNUN8eXl+EJIsY/Nshko96FI1JNuxwWInAW/Ko9iekG/20Qm+2Jsuvj30UOKOmDQNOzqlXxOZcKWvbIq3xM=","translations":{"en":{"changelog":"- The web interface, admin settings and Nextcloud integrations are translated into German, Simplified Chinese,\n  Russian, Italian, Brazilian Portuguese, Polish, French and Spanish, following the user's Nextcloud language\n- Notes whose title starts with an emoji, like `# 🛒 Shopping`, show the emoji as icon in the note list instead of\n  the note icon, like in QOwnNotes Desktop; the emoji is taken from the headline of the note, so it also works if\n  QOwnNotes Desktop removed it from the file name. Sync conflict copies like `TODO (conflicted copy 2026-07-10 070952)`\n  are marked with ⚠️. The emoji icons can be turned off in the menu of the note list\n- The editor cursor is clearly visible in dark mode"}},"signatureDigest":"sha512"},{"version":"26.10.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/qownnotes/qownnotes-nextcloud/releases/download/v26.10.1/qownnotes-26.10.1.tar.gz","created":"2026-10-15T20:12:40.618889Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T20:12:40.710590Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"pGxKYoBA1WHcshrjI5IWaN8/HA8R7bfGllDmirpCLNHfq5i9b2nfMjfJJ3AMVV9jkKFuAQLAybUwYglSI6XApIArJ1X9YxV4bBdO5G39MimUJosPLRA1E3L/5yWFLb8k/bEkHbcsFRkCSljV//3qFkqOJyyXl5mBcI0FTFOpArhJnC4ooYTzDVoFQB+PoJ7IugIvmywKyMVFPo5ydEo7wJdlN4GgoHQvBRcsXSZcPf4eu13Z1zb6gMCNBFcMY9veVmmax7HZBLZG6/Q3cMwODEgUV+kHDWhCkGzH4CesRJfxTLplGDh/GSgGBGPsygxfibHAq/uNp6/kPfvMaVcXcN+y8ZY3EmqjwerBGJXmhr5g9zEMKYvgNW8l20+1dIqRO0ZE30CsDbxhpQRCstNlNNLzMYx0VsmzA7EVrfxjh8o50QABzxKMcZxcyYO6/uITrnkb96Xpm02bfRMGBHGBPU/p7bVPrIwaR7BJ+4YmRNQPL10f0OKMZYGtIAHNJyjlzjfEy4F4NVQVk5DHvnaHWXA6BiwADqTSnIhK5gAkB4H8xku0ow0qdfiQkJczjbZbLU3lXuDt9Uf534siiijevag5TWVAG6eg1Tk6ZO4Cj2wdDaT/eeo6V+3daQf7rcE7vBoYRCUGP/iuYSVybKtU6fzpmG/nzzhEzTFpwULfckQ=","translations":{"en":{"changelog":"- Code blocks are syntax highlighted in the editor and the preview, with colors for light and dark themes;\n  in the editor, code blocks are shown in a monospace font on a background like in the preview\n- Links to attachments like `[Audio recording](attachments/audio.m4a)` or `[prompt.md](attachments/prompt.md)`\n  open in a new browser tab instead of being downloaded, so audio, video, PDF and text files can be viewed right away\n  (`GET attachment/{noteId}?path=…&inline=1` of the Notes API)\n- The editor and the preview scroll together when they are shown side by side, like in QOwnNotes Desktop;\n  the source lines of the rendered blocks keep headings, code blocks and images aligned, and switching between\n  the editor and the preview keeps the scroll position\n- Polished search panel of the editor in the Nextcloud style: one compact row with icon buttons, toggles for\n  case, whole words and regular expressions, the number of matches (\"2 of 60\", \"No results\"), and a collapsible\n  replace row that is hidden for read-only notes\n- Links to other notes like `[TODO](TODO.md#todo)` can be clicked in the preview and Ctrl+clicked (Cmd+click on macOS)\n  in the editor, like in QOwnNotes Desktop; Ctrl+Space follows the link at the cursor. The linked note opens relative\n  to the subfolder of the current note, and the fragment jumps to its heading (URL-encoded heading text or\n  `#heading-anchor`), also for headings of the same note. Other files and web pages open in a new browser tab\n- Note links in angle brackets like `<Journal.md>` or `<Work/My note.md>` are rendered as links in the preview and\n  highlighted as links in the editor, like in QOwnNotes Desktop, so they can be followed like other note links;\n  `<Journal.md#Heading>` also jumps to the heading\n- The selected text in the editor is clearly visible again, also in the current line, in code blocks and in inline\n  code, because the selection is shown in a stronger color and the line backgrounds no longer cover it\n- Trash listings can skip the contents of the deleted notes with `content=0` (`GET note/trashed` and `GET trash`\n  of the QOwnNotes API), so large trash folders are listed quickly\n- Users who only sync with QOwnNotes Desktop or Android can hide QOwnNotes from their app navigation in the settings\n  of the web interface (setting `hideNavigation`); the web interface stays available at `/apps/qownnotes/`\n- The endpoints of QOwnNotes API 1.0 (`note/app_info`, `note/versions`, `note/trashed`, `note/restore_trashed`) also\n  send the headers `X-Notes-API-Versions` and `X-QOwnNotes-API-Versions`, like all other API responses"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Fvd25ub3Rlcy9xb3dubm90ZXMtbmV4dGNsb3VkL21haW4vZG9jcy9zY3JlZW5zaG90cy9lZGl0b3IucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Fvd25ub3Rlcy9xb3dubm90ZXMtbmV4dGNsb3VkL21haW4vZG9jcy9zY3JlZW5zaG90cy9wcmV2aWV3LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"QOwnNotes","summary":"Edit your QOwnNotes notes on the web and sync them with QOwnNotes Desktop and Android","description":"QOwnNotes for Nextcloud lets you view and edit the notes of your [QOwnNotes](https://www.qownnotes.org) note folder in the Nextcloud web interface, including note subfolders and the tags stored in the note folder's `notes.sqlite`.\n\nIt also provides the server APIs for the [QOwnNotes desktop app](https://www.qownnotes.org) (note versions and trash) and the [QOwnNotes Android app](https://github.com/qownnotes/qownnotes-android) (a Nextcloud Notes API compatible note API), and replaces the QOwnNotesAPI app.\n\n- **Plain files:** notes stay Markdown files in your Nextcloud, organized in note subfolders like in QOwnNotes Desktop\n- **Tags:** hierarchical tags with colors, shared with QOwnNotes Desktop and Android through the note folder's `notes.sqlite`\n- **Web interface:** note list, subfolder and tag trees, Markdown editor with preview, conflict handling, versions and deleted notes\n- **Integrations:** dashboard widget, unified search (also by tags), link previews and \"Open in QOwnNotes\" in Files\n- **API-only mode:** administrators can disable the web interface and only provide the APIs\n\nTags need the PHP extension `pdo_sqlite`. If you switch from the QOwnNotesAPI or Notes app, see the [migration guide](https://github.com/qownnotes/qownnotes-nextcloud/blob/main/docs/migration.md)."}},"isFeatured":false,"authors":[{"name":"Patrizio Bekerle","mail":"patrizio@bekerle.com","homepage":"https://www.bekerle.com/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhRrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE0MDczOTQxWhcNMzcwMTE5MDczOTQxWjAUMRIwEAYD\nVQQDDAlxb3dubm90ZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2\nzPLzBDguqKG3JW5WkuwnXPtAtWNEt3AyjfMUMWLJXThJGW98/8E9wXlFIWvg29Ma\nKQUi9+QKT7B+N6Xl03jelE2z30K4/YcFVyQ2eme9N8+e1rgwdhoYaQup7aGL6C4I\n5JOW2Kg2qW7Yux0qWJaFPdV4FSOOTfrTxOTyOJGsQl//pvmcsbZ+0gBoSj/KvsSs\nrviCmpzz1CFKxt3TZVEebF6gqLiFWp+4UYVcpwM63FQ08Z1F1er+atHMtORAyKnc\nfa7mIJZyxDTM1akkU799Z8MnvPKKnu4+Tjkde1ScQg8nXpLX57tkynFYH16DZxOE\nPXomDWdrlZ/L7pTW3Uv4uvsdVWm0tszCeb7WqZ4KowvfAMQ82gvTc3aiEHSZNzNF\nCaEJTiUaeb9eARaecsvEs6JZ18o5i7BsleqHNXGc4nYHU7+rLTWznU/dJaC+PKTO\nda+qNNCMyTWu2rE0q9AmOueCcrTfNR1G3A9RxyPz7fhTHz6j/fZD0OQr/Td6r3sv\nAzwct9RIxR8hHf92TgRrYq56agK6byLVF/+kCld+NtmURhtth4DzI39zSKsUrQFn\nqOyH/Vw7MEhBRGgT2XTxvk7Z7sq2e2fSlIOdd3B72H0guWEx/DSQU4U7FXsdPDPN\nbvEZH7KFoNh0oJDA7Ld4AkQGb+izwwoyTQsRVAXa2wIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAicG7GQUajSapjecZrqrP/p7zBQK+bVm9vJV7ptlmE2bwGv2PbvqaN\nwPA5mZYWShfaxNY21Lh/L+jagG9CwVqglhfdAw2LHCOSLKNE3M6CP2qFx+QyM22d\nf0rc8tsykflLYL2uG2nmyI8CXZoE0384Zev7JCrs9yGnkEPmM7TbYnDpxUrdKhNw\n15OzG89YYEEKyo/6PE7sWDgfGRIN3GkzL+/KEf6Qnrlso8MtLrj5ibAq0RwAgxMF\n46zg+ztDRsKTkrb1Nbs4K8jYOZpS/rkxDU0nj1HH7q9m+saB5POLc8uLD43z/YLP\nccZlBsO2QrwFid3PWc2wu27OlSH0AIAm\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_homeassistant","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/poulou0/nextcloud-homeassistant-integration/issues","website":"https://github.com/poulou0/nextcloud-homeassistant-integration","created":"2023-04-19T13:26:46.464891Z","lastModified":"2026-05-17T15:29:54.295938Z","releases":[{"version":"0.0.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=24.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/poulou0/nextcloud-homeassistant-integration/releases/download/v0.0.8/integration_homeassistant.tar.gz","created":"2026-05-17T15:29:54.250049Z","licenses":["agpl"],"lastModified":"2026-05-17T15:29:54.420924Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=24 <=35","signature":"kZv2ebthXiR/u4KVPtlinpVwSdUbcDqoDPOEc1Md2/RB11aRfp/23bky6MmDQPDv\nu8AIqaBsq4ydiw6aoqv7hj1RBAYF16LuTM3kxDOakhNdbsSwpIBLuGeevy8iJRl4\nRDnujirbNEIMEdlnes4cbD8Q4fCfbl5HZ/+BgJg2BFS7OSxJOCs/Ggqmyp2/DwWf\nAsl9qzRzFKI0HS/WRGL9/m+8LhTPU2z8KaW56XNpra9pxGfxbAkYesv7ldzp+pFK\nh/sOEH+rY417n+JLnflhQ1oToDzvMlDvsnJUekTYJgrQe0JBQVGKhihaJR+Zhi4t\n+tz0d59ITda+o7ufJ5tmwy59CA58wNm03TJCRmp9sronl6YXu7yN4bK6Ofrlivmt\nc/8RzPM/USv3fnmujFpLqnm8VPd9/FaQkwq/iwApsct1th2D5LtZghbumd8xs6hQ\nDdxvWC8ngGgpPukE+WhWzQTs6y0Uu2nkLiFV5RcQqw6Ses9CDkWhXnFn2P0UQWkZ\n7PsX1lXT+CH0ijKz7RNqU6qWCj/GyMkt+A3DO2CaWScNkmyMOYDY6qSJNwrpVxAD\n6095dTU5DximRR83mj3C5IVapk1r73lBbuEW/A5c25CUpCo3MS3+Yg2Ax8vDTVDu\n1cyfHEm93o/CUbhkNg1ZjeLBonYF0Jxg7rszUmygHnI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3BvdWxvdTAvbmV4dGNsb3VkLWhvbWVhc3Npc3RhbnQtaW50ZWdyYXRpb24vcmF3L21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Home Assistant integration","summary":"A jinja2 template and a YAML widget for a home-assistant instance","description":"A jinja2 template and a YAML widget for a home-assistant instance.\n\nVideo examples can be found here:\n* [Jinja2 template widget](https://youtu.be/XE_LRTAfVjA)\n* [YAML widget](https://youtu.be/PjWH53rqYe8)"}},"isFeatured":false,"authors":[{"name":"Poulou","mail":"poulou.0@gmail.com","homepage":"https://poulou.gr"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFDCCAvwCAhJfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwMzI3MTcwMzQ2WhcNMzQwNzAzMTcwMzQ2WjAkMSIwIAYD\nVQQDDBlpbnRlZ3JhdGlvbl9ob21lYXNzaXN0YW50MIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEAkmRm6SYaEi3KYG+gilQlQEKJzbQWapmYei5U7MOSyAFm\nmmrxIwqsQKpaOAmYppk4JhOQp2sBa0akfa4ErQTUqk1egZSVHcqDrp15dVvAj99M\nJxA7rCnF6AieLog37rEFeKhwE9nH9CXUoOh61SeooP3a/Denjk0VeyiiOs2rIT35\nNwYN/1HaE6AJGBkmZ8do16nIGmZUAeam92Ifn5FIADyJX/sd++/+PqG+VdbxyXoZ\ntHxpaABGH6hBYHYPecDoT7kl2tTuImErah6+kZbhLfVxO6vcJUlOmJjxIosyVNJU\ncNG/6E8Nepmiqd0daPpbcgkLVVFrdkZHnEBzW1pKQCNommeMapOX5FZV3FA2jWZp\n4FR1FGXNsmXI+FWVBAM8pGKQyAZbRG45zEkXLdEzP/qYoUUIRy0SkobmKDe2Y0N9\nhpdrNWOo3Bet1uGwHcJI9PZLAdjI8G+2K5GwjFotzu/Vc3Kq5H7vCLip1bx8q2Tf\nyvKy3auw0nAvCSx8JfblMH5NrkqPkg0HeYWxvnQTl3NKDHy8UyvOGWWmdIvUjeve\nfldtiK8lZVt/PZJQGNgq2l1oWGh6qxo8uRM/jOb2P0YbYZYNcTR14gB+MSQyJ/xg\nl4PRDDKlrbua5iE/QNEADDJoZ7fD7sCzP1wf/MTUy1z1IUeIRutpywSjIS09gHcC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAFpqOYd5FmohhTaaLvVvtURuyMXbBUWh+\nWRZXjOnhI4Jvh/gZfIBz3iCkfBczGFokGOh+Tpc7KUc3h9sqnnEBT/FW08Dq2LDg\nbBGAe3+5mBpxWG/N+G7z8845JNdZW1gJgZklYV0QM7gH+M1rWEAqDfXJKoTFvxwP\n0oYfLkW4kuRgnSbFc+Wev4d6BuNc+EUuv89yyS8BV3gZ/306rwvVM8svTYI81R0j\ng2Nh7Gc9CJ94ft4jyRiiyaqAoemKdkU4kM0BWxWMYG2yn5UudrBHJhqq5LMHFRGg\nVgMMaNOIroz6VvYsa7z+1Y0WSgWY7flkFkUS0Es7f519TWEZXmaqaQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sociallogin","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/zorn-v/nextcloud-social-login/issues","website":"https://github.com/zorn-v/nextcloud-social-login","created":"2018-04-12T08:32:26.985997Z","lastModified":"2026-10-03T03:53:11.331891Z","releases":[{"version":"6.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.6.0/release.tar.gz","created":"2026-10-03T03:53:11.326351Z","licenses":["agpl"],"lastModified":"2026-10-03T03:53:11.375059Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"AH0G0vdFuTGMMTXM8ckhIhUsRWanOC/4ZAuTNSzqneQp+90+RHax5cj9Q1ym7sU5f4JvEw44TjiIJtZ7UjAJ27VgEB6ParAmJAjEM6erDAghNFTXONXii2fDOHke55mUPwh5SHc+BUBj6bcQkUNXOAJFg2qnjF1pc28QIuMmOI/hZzg7YPrHjshOpMYzPpNFdC+eazybIAbbMTGKN+SUbLL4HpZZcteYSCRGYx9Hh3Bz8MKAKaAWXT2W/yDLNWP8mVlN7tlUbcMJu3no61M1cFOZbybBCWB/uSCrCZeof00P1DEoZ8Vpga7Rkw0TvhFdaBAxJhHA0OqV64mhKQRbbTNt0aS0NbD29AUF6loEgeWXP9NkTRovf0li3qgOXBvSy1ebUSQYVDi6TRfwvNboyT+xPZEdmzsHSwnGyccFMU2liqNaiN3gTLHsIJ0JyPg4BZKrsbEo0Fgk1+TTSARYm5hRNq0H+bWmCzvHFoAKY09qWpzQihgO93vyncBMx/V0KQNQjZ/KQNdQWmRhqz00NjfkjOfk602DI7Pvy8P+XJn33A32jGXr+N+JcTjv9gtbV4BpD/szVc12u8q6MG95prpRgPL0jo2RHUfUY1eAbFjK0F4BzoJCsra2r0sbrbXxlT9CV525a/pPQgKBw2lSYa+pn6qyWe0ninsXVDfX0SU=","translations":{"en":{"changelog":"- Bump v6.6.0\n- Remove create_disabled_users global option\n- CreateDisabledUserPerProvider repair step\n- Split create disabled users option per provider"}},"signatureDigest":"sha512"},{"version":"6.5.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.6/release.tar.gz","created":"2026-10-02T02:58:16.100486Z","licenses":["agpl"],"lastModified":"2026-10-02T02:58:16.160336Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"Q7eqcJEr9YsmAeVrU3j6CZvrSSurnt6oq+AgM2S57cbCsJb+yGIiEYSFGqBRrrt19pDwo4xURMzEVIjSEkTXhnT3AviNuyAWr2TiPqNrPXrc9rbyUBAs5Yg9ARjo0JdIMdIiOLF8d2r3gJ5jisRQVBWXSnJK+bWoa91MHQMedmPujyXAlz3YLwdjFJPTOPO8ZrU7EoMF7UXJnLDbeOLtwYfArizYLC08m4pagI+b7L0A2lm+Vd20oUJksbxwGiGkSPRD49mXP67zNmfm4dMi5RdpQVjtTbOn86JX1SJWfRiWDl6VMmEcH4WXPP9TEBXUAgDi1wcMQjVoR8g/hgXG81TutmkiHXDCT1wfCL66WiINeAE2pAEKcJ/Y6lu1tlS6/iWBQmZs1SKIJ6AxhUc/BU1XZsrQU2paVRDEk2ZkcIiD5zeUzWefWNrO2BP4G0Er5S34uSm+ADqmSmSHq31i42tizAscczuoy4D783SidmW4BIre+Ctr4etm+a6Z12vIUaktKKxMNOMr4+l6klO/GCm2FVUmUKqObok3p2mKq1zOqlzWUuBw5tYMAejt2dOwGn0d5JBObtbvMb650CVidSBIdkFEfwGfi3CwtIS21hFfa3t32sMSzXpsxpN/yjDprPCIbhU4EW3ImizoDWVT57jqwu6+7QuOIG7BUu8Pl/I=","translations":{"en":{"changelog":"- Bump v6.5.6\n- Use IToken::REMEMBER for createSessionToken\n- fix: enable TLS certificate verification in bundled hybridauth Curl client (#550)\n- fix: multi_agent.cwe-287 security vulnerability (#552)\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"6.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.5/release.tar.gz","created":"2026-09-09T14:40:37.223603Z","licenses":["agpl"],"lastModified":"2026-09-09T14:40:37.289272Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"U8oTo1TqmDJWoX+a7bo/xf2TNubPbcYW+8ffcBHXFwArGOh0HuFmTjDxKCaVRg4YGNzO7PieO/IGYfL7DZ/mKvtZJ5Zui+PdRZo/6FpCqqTOuRQG7AZqrfyjzOZB8daRjh1//rfIV84mybUlsYYRfC9jZk1bePVq/vLt4lK4UtdEmAM7xNdwS9wBag4T8ent8rO5sWYe7SED8IQvVqfLkCJnRdV4OZlT6/asPHOGQysnIJh83niBfSIUjuKByJVPjFY7pyozYs1uX4nIyv8B5yWhW8l+ZeWatlN9LVh3rvFcVf7eNyc6zdrEEemxUPKsrSqFChOHDIdy58Ia0Vn8UMvQDeqqjHAyuc1mLlxFAYSOI2NYR88/Eg2ad0c1trpsX7bOGUVDxDR1AKGDGajJmqn4DOCywvb/UzMBsWip85SDWO8Y3zEo/ONkLkYMRGq/lU9k3umXlN3FyNu0eSZlwP684Yd+4W8fdjVQrhwfUWp35T/WpC2kxEcJQOhG4Lg1uSaJhFUMQGe9x6iQSM+cmoQIk8EwZtEvxR7z5mV4/FxtTlihCLRow006Uc3+EDwtsTX54HdqmLBkRLqJGagCmWW+Eu3q04y+DyhXZyIx4mLyGsvF7dXWdq/3elJo29ZUZQ3UFfbQr9zxcN1w4CPTRvMkhsDaLGgng+ok/CO99bQ=","translations":{"en":{"changelog":"- Update npm deps\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"6.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.4/release.tar.gz","created":"2026-07-23T01:32:48.184333Z","licenses":["agpl"],"lastModified":"2026-07-23T01:32:49.224597Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"S3pjoj/sWS+sLqjW/ArDpzkoDPJ8c7Lq4Gtw3lUWWeOO/+Tmyk3b4UCebz1qsvKkB7zTdWUZADO1TzOCN/+sjdDcvYoi/lPw18J8vZsyoGG5IICDo957K9z27VmzRABnkC0dzBLwBHBAGJJrEBc/dJ1rgMRNWF2s1Wm2i022eB4j/sZifOA+RTaoX9tF4cv7fb76n3J1Iz5j/jGaCOnV4olVLp5jlyI3e56ZdUT1otV0bQdjZ0+wIAcufTN9KsLlbnqEXulpY/H6jETiXX3dDNkg6lGHjzjccNfNEYIF4OufVqVTYQQyBnx3hRpKp38of51jYC21WOqs4c5BKdbllO36DG/evTx8SUROtzmwOa8gKFR5LPZ9+PhVHsMSe94PSDbKRTyyLj33KqixN+6o+gg3JYP4He23zHL6vuzZm1ltI+RucXeLI9C2Jzw3dfqhQlfICRnC4yYpZi7jHc/8deSiJpRHwqBGQUw0HY0wcHRU1SfiYhKBzPvoEIoWNFqoZzMccWpp6ViWHMKh+wOb5iNq5sXrB141e6jDeRxSL7aXVlE/KfuEmQ1SNU7PXmLMn7kkM8Yz/PdzN1vue1fb6jt6kaw3sInGodPXvn635iT0RY+epyQqTk75as/R06WsIsy7YWa0BqXyA28C4Z7ocuAG7Njg/+m5mKrv9zg6tqc=","translations":{"en":{"changelog":"- Bump v6.5.4\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"6.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.3/release.tar.gz","created":"2026-07-17T23:20:58.522834Z","licenses":["agpl"],"lastModified":"2026-07-17T23:20:58.617845Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"Mw5zHar7WPtUbZxWwCZF1279fB+13ARThNcYKPghRdv96cG0AqZgPvruSbBgP3OdlNmHealFgcnU6QeoURuMeouj7R6c37E9atHFpD6jCOHZrHD/+6U8HyheFyfd3e8pcsoImg7+rZ5g5ejvz+vf7KOpzlAkPnzC1kzI/0aJ+8AhJOZS0X8D2XY7x4lioi/6Z7R2TIbvwmOSTMBYTU+nxx0H1NE818pspC0yXVuaMIFMi1IJ7bQxYIMjNa6G+kw7y/ReJvxCyl58Lrxjwa3omUn2hUVhXgVWLrfLfcZp5d+xiHEfSxvFq7q9Vo9E4Te+Bb5ovXI2EzUK+zVooaLSMd+MosqwpG4ajzMXj8CL1VO6qGzh75cTUkdYda87v45zn52oqZn4U/VVkNsyB4gCBWQMdN+0y+72t+lp/8jFlvRQfHP5XTunsvHvhre1gTsnRDg/VQI3hlDfgUECAHPHbyZuW5ZVScjRqLF2mNIGu+m4AHnJ3B4UEVLQzeLy2WT0Rb7+9e83CZTgb02xT9Bg8rt2788rWloid3pZhd+mo47EmuBrLf4BqticLD+0t/0+0lcW/sA5+KdG0cJ2JS7mE7D8s3ZCU27hYS3ozz/4bBiHrcEJjOfJiy4xmZrAcUfPzBtYojmkT+MQB280U7/WoSnflkf6/2lRZvhIB6CoBPg=","translations":{"en":{"changelog":"- Bump v6.5.3\n- fix(ProviderService): prevent open redirect via login_redirect_url (#543)"}},"signatureDigest":"sha512"},{"version":"6.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.2/release.tar.gz","created":"2026-06-01T16:34:56.420161Z","licenses":["agpl"],"lastModified":"2026-06-01T16:34:56.471582Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rAZ7ChCfkiw/1cY/UCYJfghs6VY96WWVNSByksvBYGmdLv/7FvZl3iNoj9D208nGTrC0IPUqj9w5mKv/vDPOM6jJQUfu7ayHpW8edskTukBsn6YrdvWzEwHXkIPCiSoyaUmeiYeQ27Oh85OdD5iD3iDKD8VTFEAqh6ymBrzImQRwF3sfPvewdQMqtE1owO4F549NOzBSKnvjP7yfv6zBDyujodIbGRSwo9435EzXoZfAs1mK9qC+dlZs3ftDb34riPu8BkIxTVwOsAJOO6jN54c/D8FN+lizZ2NX34ItaMOFxB/BX7owJOrY0pfzbRvylW+gdD4P3bdIV9JF9WKF9AjVwu4Au1eXsnBe73thsaH8WagT0S3ck3RmZ27uYt088QdJWnRb4x5VwLP08gI22VYFHBAYV2lQ/uoQXpZaoyJ0XUyAFK4MkdtZIVY3Hely7KJK4JzZVPt7dMDIp3+Bj/4AGUJtCoMqsj7zH+o3SW7ZK/KCzGIYzpgrxFWBUx0YHqsdNP+d6teIr9LDyiNxX/nWekKXI93vVM3CKHoyDHEy8FEntOkPPvd/hD/oVNheHLX4V/zRg2zCYQT3ffP8dJsUv3OWjuSjr+bIzywFuom3MQ2EFOU/1dzjy5YP359xj8hTNfwnK1nu+dOESvF9hdHH9iNX152c8FxA6V8M8FM=","translations":{"en":{"changelog":"- Bump v6.5.2\n- Update npm deps\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"6.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.1/release.tar.gz","created":"2026-05-29T06:23:12.265972Z","licenses":["agpl"],"lastModified":"2026-05-29T06:23:12.337435Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"Tuu2lJphqyYn6UeqjztiFsxOBmVwhHMJDjXjOkZ5FxOrVDJXkClCLGet3vwKfxxd5KoanYe5ijHFCB2UlheKV0kTL1mvEwTXiFNMeaF2M3ioZpsYmAkdrMgeoxiJIgQS3ZMTFCzCPx78CFz8DSOOcD85f5ZrRH9EeMEABKf9KG6Z/wnjNm7QJ/RApsa1ddlfo9tFc0viGLXTv7yNwXdgZBE2xNjuTpeUhSdNSJQ+FvhT18WNjpAEvOdJGQAgT1S/HcuQcDHkQKPyS8t47rzckVmFo3IJOZU3uhXi1qEvfg8oRB+iLi6MzJXo9QTrLdy3OQfeDhuh4yyaCucEzvxEcUXSk7Wh7Vc8dH4RwBnY6hAcSRzqZaN0nYCsp/GdVQKnv70JjnUA60wzeuCuhtBhlC5TpH4EUny2J2NDHt4TgzrBaJehoLP/kICSR6Zn81JhE69gM//0ic1DKbrqOaW5c1o2tmc0rHdjt2YXwwwq+K112ERlen0VsJdiUQLsXbsYg+0rB/Pcc8pw+hp1E90qXwzHpuRN+14o3l9c5NJEkMwEj4XrneZebwsNl8VabQWrtCUi5Lvwanw7AQj1H8xfJ8Z5cUoyJt8K9r6HCJoM3vrWOQz++qdL30XF0kWg+AJ9oEJUIgXAHdJyL0AGjzbNeQ3ZYHakOEtDQ+rHImWAsKo=","translations":{"en":{"changelog":"- Fix apple login\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"6.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.5.0/release.tar.gz","created":"2026-05-24T10:40:33.089534Z","licenses":["agpl"],"lastModified":"2026-05-24T10:40:33.183512Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rgAc7UFm+5JyE/gJumU6kz020m3rk5ysUi8gorSY9cOCcSwni/0U3piSKPlbUVtLhsPc9cX7B7CuOzOtWzPs/UsM1Pzy6yhGV7k4yAYHqQtXPrXupwT5/DpvVYKBBPeC58DIN0ndAUjbAiuvRSbb2XcSTpazBP5Kk/LaOjOgdT3B43bIemxV8CEycQbO+6DAm7XkiCdAZSXr120o9xMw+/Ho44NclrUDaAY241KVRZulnur7kLXufqbTxzA5YrekclvS7cMT22/oiMWW87/F+py8tfnJSTaqpp/AaT1sIxqPEtiWc0bVlFPslb0As84ye12lAA68k59hKDwadr9lhkSW/+gFq0lGGUMocYmOYNw/oFL+K58DsUZ4XSyXYURJhvUP9otZ/anuWpmVXIM5QEHWZ7m3VwqnOEK7ulmdIEC6u1RPRPDhVrtjq+XrQnmRFYBV6+vqHwDjSqz71O5IdXAAKo+iusPVPt3X02EGs/NOGyXVGIhUD8/L2aGuvlbZ9EA4MYZOcgDUwzEbTiw7V43hN2e/soL5mPTsnPYZRBn7tmRslymbJVGL0DFjZRsFBSGhFTlR8rApEQniX2CbY8s2zfCZYuqPArSa0QFtKq4GggN915ra8jIZ6WBwCDenfShtFq1J5Zna29UqVw+oxFDyM+gr9lnznNhzTkeUR1Y=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Bump v6.5.0\n- Support multiple claims for group mapping for custom oauth2\n- Copy data subkey to root level for custom oauth2 response"}},"signatureDigest":"sha512"},{"version":"6.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.4.3/release.tar.gz","created":"2026-04-27T06:29:07.214120Z","licenses":["agpl"],"lastModified":"2026-04-27T06:29:07.280098Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"Ue73WCVAhXxSv0f+4dryHDRasunPNGB0+yHCW2i0qcWTleTQWTtd4qxVxfA8voYdyzEJe624o2x1L0bKIW1Rjgk0kaXVl5THlu510DSPtWInni0fQkBd3p8egMWYFuFEIXn6Gn8qLTY2jLE46bGUN0Zud0siiX7uzJ+55Z5yrUfsyGLO13Ni5MHT7FfHuHH2qev3qFQDa7wHcaFqddzqDummKW6xocp+YioBbW3NyDhP65u3GjPEkzKnwFS2Q08uOcZAQ6ydcYap7lfuGuw6bKIK6JyVszcP2GAdAp8xDY+dvkOZ0ScvFvfyaJ04bQftOlcGCFYwYGFfvu5V8h5jbYZmRnddCVo0OFOyH/qweGge/r+l14SO1xObT2LA3BquXXu7uZMxgj/rZzIu3VspMK6on/T9juHduVPOHXEOHUp7K//uRnLYMCGiy2HMrbEPEqXDBweoeqSRfLQKwqY5iMsU1J/6mQ8INonvWR/nEeXBMmMHRMjvPjwUMOyee94j56BYvcm1xcByNy3OohHgqLKbdBhmr4MF/c4gtvMeyCetQUK/215xHZ5G9GPQLgx4sNtX2VOM3UPQt/YhFxVqlnex5dkidHVLtGje4DSdGLVLWbA1BdBJ2RAshqWdej7m9INjUpYLMe3t2Y4LOkYIlwKdjLZ91GUZnMX4fdauB9E=","translations":{"en":{"changelog":"- Bump v6.4.3\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"6.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.4.2/release.tar.gz","created":"2026-04-09T06:18:15.108162Z","licenses":["agpl"],"lastModified":"2026-04-09T06:18:15.162912Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"W4t00EOQ3ST+tWhtvu9ZeOjV3f8AVkjUA1JEMFLOOXRdMNz+48g0CUz+QEU8s0sKZ0c1PVXZPmICP0THIbKdJ0wm3ttnkzyiqonEYcPp2s0M9gdMLhOyOd9O0nfclnGSWXUZi+kgemM6orQjXcq/VD1KH+DjljFeprTYyJp48rosP+5QVI/PJIxqYCDb3dAz0yzeLWqZPg55THQX0x40DAHMhZ7pO2J7aYgRg1ZUXaXcio8rL5yKiOi8t4KV/Cc9O3/p82nC5KVILkYYpOyQ5Jv5dCzQskgMha9H02T16Nh05OnbwC0O0VxMnn5iOUGw2dmgfHp8CFmdvyGwyS6Fx6wIw0Mgh5L8sIuiRaFUD7Vl76XOD06uSH4SVI5Fs7SbzH1pqfS8rc/qdGGvhR8DxiK8SIh1Cch+mfqXoTInhhbTjByxOl9ISg6s/PumHmeOgp/5yFG7yh8zpRnULDGwDoicBEseejUu1nPqPf9ygIyn57f2sts7t4Xlx60kcGAP20kGnJnsoNnBqmy3iLia4uFsK2RMVP6TalJ2FY8UgQc/WeJjNRYriLSO5iWf1Xn2Pk83d02ONK3YH5dQat5J/FylRdem5gKNYzU235dHgMYSJYZ5xqwBx7XZq0ju419Q+unApzIeb6O1OP8+iJQwBc0jB6fW8mPPA5BUOpQ2xmc=","translations":{"en":{"changelog":"- Bump v6.4.2\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"6.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.4.1/release.tar.gz","created":"2026-03-22T14:23:01.383678Z","licenses":["agpl"],"lastModified":"2026-03-22T14:23:01.838242Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"j/2BPLSO27xk4tqZwyJhv9xlsmTXf27km4DQ8UBJt57oJKG8GqCeZQFiGXoQlgtl5lh2CXsNn1JGQ/s1vsQWdvrQ91pEyVXr8kT2rj/sS1rfVBP7m+h4JLLkkvFI+kAqnyxp0E2OGyinHDynD1owu8HaMFWLscEA8h4K7EKux/nPHEInMql8zMJ94iuUXhL+sOa6JWSlLlXvD5J/6/GmX1vveChdPZ0a4PY2BL0+zGwneLMRHTHYDioJiwa9LsKWlS9V8q+IEWIzwOSoeQ1rwMOvD/HAeOb3+rCSmFrxQeGrstnF4+vpQRljMqt+le0qhcpA1JXzn4gtyl02ombl8GEC8ey/cC3EXsX3XnGk1nZ8rsU7KGHXw9VVuPYUM7id5Wd4W0AGLg6A5diBuqTmhnqP3KavlSzNjmyLEDnk3oiiuNcE1W8pEz2vACGTXrmbq7k5mwbAGuDV6sy/+gOi2bl5gCM0zaIxRNPgekcvYxwsMt6sZOtezbJdhgHD4nR/msxwhXnINuU4HILl+a/zhhfr99Svjyt+chwp3TPJ4KHPEr0v0cS6g+UaUvrNAO+7CYoVhpZfZnNeNxpKTYS1No69hzE6Zb4EDulf4LUtZMHOuot19Y+5d1rCe6Iaw8NfM2NadDjntxgID+Xgb9bV0cnqYgSZVe87ERJxvGScucc=","translations":{"en":{"changelog":"- Fix ErrorCall to undefined method OC\\AllConfig::get()"}},"signatureDigest":"sha512"},{"version":"6.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.4.0/release.tar.gz","created":"2026-03-21T14:58:17.024911Z","licenses":["agpl"],"lastModified":"2026-03-21T14:58:17.085767Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"hrYPVOEXqzG66eTCQYeitNJW3QBIdfikD11EtNuibXt0YObz+Je/f/IPBR4BmJvhs15KzfD9elLz13lK4a4D07PpuPq1fmENOYv+NYkpJJ9j1LmaNSpWl+01PtN19FnVZ9vh6YbGx8f44C871zWy9XXMiFpsTCIyXZP1R3E3Ry4S6JMdFWSLpGI2z5sZGAr0aboxDcH2iBY1U0Qpx7xOoMvYR/vb1ev+T0CWJu9KpLwG2CxCu/W/gI1yBMvSY3iOe0hHtbwAOUw1VPwrd5KAm/GdTsi1Qm2ZfVUACqG4GWRayCNcWz9vsUdd2k8GsF+j7jinrjUa8NRoQwnDS+xs+t1R/7isSW5CuzYAhBvoMnaFrK/r11tfoU43DllmIVFu8f9FgdUiJ/Hkf4SrS/xAgMOu8Gn7IwHzqxhd0XEz/tdw7zPR08TourM9L5KTghmwisx6EJf74Bs8YrWn0rmCY82cNxQU9VuLg8YuE0wjYyV0WmeLaW4OKmyPEHG44zZCSmKJEnGvro5pRm2NwJettMuWJH/tbRv/Dl9e/UalxtZh+w2KogEJXmNyByCzUAWSo6vVzcnfYDXr6riXsGsmbBOZAWyT2u7bBLDbJtFczgizdCCZfD3TP0RwLCs95zV/HkbnPFTDFQx66E+1rhYCt28NhZigoglsbiqm6J1W1DY=","translations":{"en":{"changelog":"- hide_social_login option\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"6.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.3.1/release.tar.gz","created":"2026-02-11T12:09:41.881819Z","licenses":["agpl"],"lastModified":"2026-02-11T12:09:41.943595Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"EWoRJefInT9FzKPgTFcGQD8WdKIjbjTT85wxQnjk2RIrte8OOl2pUU+ku77TGNpTqFCeXZap9vX1zbQ/JZb3splBunvzcKZMbylvyNCSyfSsyUbPSyqlmOgEOsDLd0fZ1SKMtcBiWFPxGykQb4tEAFhpjYq+X4YQ9JG3ad8JD1gW+6Vv2D56msOw4jd/CFaKB5lkTVYuypeCtEBcwp05qxzBIVJbomMY5ozAY8Q608H1jyKGWAuqVttQHnp9qtdR3S3jUg/pasIsQEq6czasDdxenXOHMp5uC5Y7cHdbe9iH0P32zY3z7AsoTsAlEOXJfJatJGJzg6YgCpjf4LjhKj0CtD6yOWXBzr3iboLXy8g9MYLMglY30LiW/J3VcYyXUbBsfhawWRjTgt6T3oZ37YKgXwt87lfIVEeAmMgJhZz2j+hpLlmv9P32jf0/JaFZef19dr71yghq4dR/GgYd+SET9N9AKN0wcAka+Mbb9UhaFmhXpD1mD8N6A879Z12GbNUAANAw2hEzoaFB88dWAfaTZjSHpdjXE/8BYAAqizTAUSwi1g08ErUtXwStsM429twV5fgmTg/e8lzcJaSh2uZJtMhoKmn9ntmxOzcPhSf09jcTIv4kcoKBg8Ghlj27Dc5jig6GmtV0rVy6TXxJKOTITp2X9FiTKdSlrZ4NtVM=","translations":{"en":{"changelog":"- Bump v6.3.1\n- uid as user id fo OAuth"}},"signatureDigest":"sha512"},{"version":"6.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.3.0/release.tar.gz","created":"2025-11-12T07:02:53.767643Z","licenses":["agpl"],"lastModified":"2025-11-12T07:02:53.842024Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rOq5uY2P2PMC0fGpJvGpT1ANBUENPcwRawRS+cYKjCWwpp3zDLR/d6gaUm0pe7SIKaZGFgJ8n1dwa7hgu4R+faj7u/6yabsanqJ0jj0CWX+IQu+8BhR1UXGzkdodPlCorLE9ORxUuxnkGfcRhmWxNwwIVZfL7vvAmsE4EbDLgr9zZjgkm/hcUvd7zzrOJXizlD9UwjvtMSZw1Zm+xmK/HWWBpCQLVnULhj/dgNt2m9epZcbg+OCUg8yzmJcW4OwHXFPjOY4WW16ExAIVZSkBkMV43x4bb7oWM4lcBb1oK28nx87QDA+SMh0aCqkHQjSdJBBVYIZsKrjgZmcVgAgSdRKLObbZAzuyeixUA/9TGFvkmBLXPXvITqJNma+eL+mAE0hnb26jh7/CfPmOv07Y46KG9o/s843cbGPqaWKczHu8ngl1yqW2B2ZOqTvC+Vdw+wVaujrdtE3m4a2nCLk7FWLjP+9PakNPelff3s4me0j93HKAUtof1pbHULWCiiGQIJz7ursi9PILqJGfiXHLps5n0OjgJ4cC1NHvG9abv245YMvXiENhLcPa2I3b82Ihbi3pDRD78qd0jbxT61CijIsSq5zoE0mnA7JlNwOp19zR+18aDh205+Q5e9HFjaUgR01JZ4ZCGwGlyYEoptFuhrTqBtDeccNxHrR5en15CU0=","translations":{"en":{"changelog":"- Bump v6.3.0\n- chore: update php deps"}},"signatureDigest":"sha512"},{"version":"6.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.2.3/release.tar.gz","created":"2025-10-28T18:08:14.493723Z","licenses":["agpl"],"lastModified":"2025-10-28T18:08:14.570682Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"NQqWlW3Kh1uDcjRIFFD8HY11JnZZeF7al2l3Te7JeztRNNNm9PU57NNM7m+hJks+YK7KUaQJWq9Fwz7VNt3OBZMsQAJ2LDak9Am0496fXaXBqXVkWRyPeXIKTPTy0YiltxtMRWaPTWQE1v9/UYsEtVSD8hi1EsEVQUZZv/3xtG35fnfQPJ24N7rFyyI3r1pk7pBHDrjmeHczYiJN1ikuXcq5jvnpdl/tal/+bt5ziNcFJq6pN6AyasR+mRsbCyIlYUNSHcxLiiPocsUbSpVnZk+JEbQBXLkFyaKnzTGuYg0KQiTjQk8dwhkeFf5czAal6SsEx2Z+BGHtq+694h+17195afKkf9TJBLXPxGtb6vwPCWw79cOO7H1wFsHUyL4ldb4XPvbTugGxf4yh0/g0BS8rh94Xg0p8QvsDhL8v5xkF8c6zKgQbjwzfDOYy2hMjcpDAEPknX0YghFjdfGsJH5JzkpeysznJii3gvGA7fl/anoIaRzeYifKuMWtUpabfbTAYJrDbEPEVJrUud7xxgg95Yo0qz35qaXoVJZFz/bnchDr/Oe16ZUIqzpyNxHcxmyChxinMwYm75bqXWFp4a0IWwQWur/GTipPb6M/lj4029GTnDFzHnKc2L4F7qD8Ub5Q2n56BQlIxo1dABxF5W6La9qu8iP0CP7jxGNeq2R4=","translations":{"en":{"changelog":"- chore: update npm deps"}},"signatureDigest":"sha512"},{"version":"6.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.2.2/release.tar.gz","created":"2025-09-08T04:28:39.075089Z","licenses":["agpl"],"lastModified":"2025-09-08T04:28:39.124914Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"AX5igO0Xhru89pW+cW9d7ZzE9tb+Tb4aCBbWy3ykEwLiavBGxSf1g3yi6EB2CEoRzMtFLHbiNifQzpNhdSnifRH6ChRLvgbSyPpWkufxbMSR5F+EG6AQhvB52xrePj09rXL3wgx7Ej5XXK+hzBoRNJHyqFZIwqlRUXnFJHcxo1rP73oG1tRtQCx3UTcuQzdq5qMBASPcO+CulGjdS5Onr/y+qfQeDwa/mpxRQ4ZT9ljRYRL0NiXEdIGJIqfmSsHRSIJ/qL4+M3VuN7GsxLbL1MVIahNSUPJLbHeysazNdeUIczeSpriHAWljQStAZMmvwWCDNIFF6iylS/d62M4DvweVp6zOTSEnEXsdhl3CLrnRVbvbspSqqzqYg9Ee1LW8cnw4h6++/Znnevq6JgUOkwdU/pNRSXQCmsGqwhEiTb/GmrMESEcsjR8XSX5jXJcPPAhAFdAGWc/8Yj7sIMWZWsO8rzz+vDvc4VFc4NaYwnSOtQ9jdWXv+I6Rjti5d7erILBI9vufNVNLxiGG/zRVXxtts7vWNK53h+AQii7uapyVfNoUlBXTi96RmkFSfX2hMFMqlqpPx8ur1rwipcV/I7TYM4P352L4DJvX/UhNQBwGrv+b/NQgysMUGSANPkE+G7GH6qHvfB6scnnpPXwomzsAgTlDT+pBEwEWJjNJ8xg=","translations":{"en":{"changelog":"- Bump v6.2.2\n- fix checkbox not getting the value from config (#519)"}},"signatureDigest":"sha512"},{"version":"6.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.2.1/release.tar.gz","created":"2025-09-04T03:13:05.665310Z","licenses":["agpl"],"lastModified":"2025-09-04T03:13:05.725838Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"GAM4BGvDOQb6hPenXMDufTHi360hBNotQEUf9kufCHaLDNAVLKETPS8EmOba6pgv1msYxQCzlOk5YTFC7WXxdVxMg353GQyO9g8xYpinOgEko+QsBu3WE4mmmymhoiZ5qUy+DycPgVW7AaE2TYPXBsL075eCioSN3/IGgoTrbBUbzvuyMDpuB3DS3L9YDHC8JtrWjZ4XGlpGo7vCyPSkq/1eS4gcqxaG59a9wZ+6dTqJwI0/etMd2ehKUSqe7iHf5/CvIxNw1o5QAQWg4/pB/KDHi4rI9lbLsORB6fBLbUcs3co19XNXNuCMQyEnlCrD5q49sN4zQKYbaw0Oku3dTERsuyUYIwV2axUim1cACJHTuHfpr0027CMYvdJ6l95hgx5Ilnui75Ljy94o30SsXd2haoQx2Q8l6VT32zJ00bJV9vzE3AfV9MeQjmAdDjJ8p2MgyXg4BEwcD2oksgRxZd6Xz0szue8tK63pnWaCQbL3WggIOMc8vMp/zb7Q7ahfAJj/WijKTAUTma8iACvXI90au8BH2340/9pAxpICaOZKWHw7ya71+yrIm/y92NLUJNOH+pbYPmro32t94QLUp6ixSt+Mfx9WupvzbpTf0it3SDDakPjA1SdqUZaTAX/wzHDKOE5FOrVbUnWSz4Fn07ZdjG7SQ9YuHZhj1CLRnHU=","translations":{"en":{"changelog":"- Build js"}},"signatureDigest":"sha512"},{"version":"6.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.2.0/release.tar.gz","created":"2025-09-04T03:07:31.301366Z","licenses":["agpl"],"lastModified":"2025-09-04T03:07:31.375897Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"omZha0o2dXEbaLR+aSEyLoQfLqTNcRU0nonxf606tkCg4YT985YNFT0ZE3BfHylN3cHPBub9bUGSRq8ykO/qB1cbwHmcNsbgcDA84zeiCV/EyfoNK6dF4mM9lBHmtOw2qm6yhLzhUDz7B8nwN1UCD4bwFugTgP7JhDuKuFh3ACJIBT0l6ALNYYrZhVPaCoFM2RjIRVGck12dxFssfH8XtJbplluVcUurbEKtc9FsoPYiLvGmBkfl1XqLhCNYX0z2e5+4z3RuXHEu3Ayvv1tzYFkJb4ldfBXwxNDiT8G7vUPC+2xQqVJbgUdZ4bA1zGnLXj3R7n5cWM0/qHRX0MT93QkKmmQ/rcYJl0AhUbzIh5e7zQgvvNyUryLLzRLMsJAM4ApPAwLnuffYNe85AzhGR+81HCaT0OUyQpXNI3pculpngxKzok6qPEHmMtO2A9/4quE8GkMTtUZJ8qwNbzqR+RtBpyacjH6Pje5V58KQ4FYova3TqFdv5t2XS4oJW7HhqlfwNR8i7OEiOorLvI3ws1VsKlYt2K7Jry+3ZCZySWbalJsfCOdZKlJdR+ri90ZRFs/Y4u0bOzhAcjm63fwd4S3zKGI38C6XavJkNjzRPt0Wn1RevM6w/hLtNwgF+fbNsDXlmoDrVgsbR/l7LCAecKQtPy+MU4zZPoK/aMHEFNo=","translations":{"en":{"changelog":"- Bump v6.2.0\n- Cleanup and fix\n- Add GitHub support for hidden organization members registration (#518)"}},"signatureDigest":"sha512"},{"version":"6.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.1.0/release.tar.gz","created":"2025-08-23T02:49:51.460542Z","licenses":["agpl"],"lastModified":"2025-08-23T02:49:51.511780Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"pmMZ36QQ/ZmcYZB+yB/rap1d29Y1n9PrZccyl7DmF1E2qgDvn4Z2xRgyImrwY+4LbZ/XlTc13GLFaaUPylD1bx2hOmk3QwHgGxEYMCJew8R6TaWnwasvClJSQX7Mgy9bc6/IccLyGv8X2YA7HmA08A0lL49+SSGCSFjbkptE/tj/Fhah+wS8wzO7iuobn9M8dlxxVcfm3ipckfIMLq48DNsStZLw3Uol8sfYKZAeRQ6mqgm92B0uBwoajxQtbZlUrESFTJv6fVpLCmnWpSd97is55EXE5DFVmL/+lRvQaurjsDctkUGETrYXDbCrZbBj3xEJrszy+hkH/Svk/EaP2vYm2zLgGAIGtdkY5UOZgcYPkhOmiy8l1QgR18P+OcadWdkh7oxcH8GW2I1xUvB0Xs/w+ZndZf0q7ZDXBI/0syCVJ2LLEdgScMVoV1bpt9l0IAKDC/Eh6YajBp3GW1tU6yoYQ6gNSIkzv+W6BwSbPGjaHhRT9lmJD2nTUn6CS9bxZKu7go2oMj3zCN3eChffKLLBN7XMaSg3wCv+sUlOYhhA1ojE9HpyKNQf4altsVNqFfDi/Qnqh8KfLsdaqTFwi2Q7NHgsDpRVZnIEn/YsRenFdwmZfgAUEBtEwf4rIBzcBkj0dleJwTRQaLQ2rS56Q8WFDC5hzgY+AehkGRQJ9Ws=","translations":{"en":{"changelog":"- Allow get config via api"}},"signatureDigest":"sha512"},{"version":"6.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.0.2/release.tar.gz","created":"2025-05-23T10:00:56.041170Z","licenses":["agpl"],"lastModified":"2025-05-23T10:00:56.092188Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"j7Sz74TPPd7EVZm5u7iWMnahcdSgKOvWh+5YXAEq5pyP3yg9EKURvY45JBKqmmD32QkJCJIKRWxxA0HZ4HqnbEeX8fG+5OBJxSG5G56qjT/GQduTuiG+1TrMXO+jXCZw2VsLNx4MuDr3ewCg6u32NLapFiHKT8c45Ng6T8V1AKSw6ng5RfD6cWXfhAAnjs0ARFIEtYyGXkQguBbaTU8skwWn3iC3GoCiR21qesxBfMDoAhA9ehFJC23DXePK5GqE6UlGKSRok16Xy4zYybkFBIWS2tATn8UR3xLiO/clJ/z5ArR1raOIj0p3N0BXvbnw31s6gOTvEtUqhrLtfmcmDScaP+OUuaXCGNgPw88dtxT6bylFJl8sW9v0AmZRGrYTqM2aohm6P5HBTfEMQtxZttYvG3uRPTe+wLlm7PtHHl0312w70n1p3lxH/MNJsu1e0SjEKcGc0aTZy1u9HM4OY6IQxx10VVhNmMASRp8Zci2fBk0wkc5MtNZBP3pXh1bIVgs7hIJS+Hfv+ktcISdHCSxVCbLEb+EA32m3u80O+/r1cMVSm6BrkrspuvC8XfQXfxYrNPNKajHDqbsKMa3fUag1J3JI2KypU29/mw2uoqRXEj8n32YtKyksAiX/0zQk0OiBb9W861uxry0GQqPah/391ahg7TOns8CWJg9plac=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Update readme\n- Just typos corrected, content preserved (#508)\n- fix(l10n): Update translations from Transifex\n- docs: fix typos, add new providers, simplify login list (#505)"}},"signatureDigest":"sha512"},{"version":"6.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.0.1/release.tar.gz","created":"2025-04-14T00:57:47.169431Z","licenses":["agpl"],"lastModified":"2025-04-14T00:57:47.234138Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"D7rnlNX3/Qa4OoBAIAUUwmzyQhRv0kE/HcvU+SIhm83nDl4b4hgrIUO0M5i5Rf4hGnrSaPhkPAEvF2MqHWrJ5dVBCGnt8vt4qUVDM+OnsKC/akJZhVJCuSzR66FcmxLuEuk0wB8RZNK4xsSxkf+z6rknuU35VoaHMIC0BpitcSVImxxiHdXXZP+C8i+6OHemMcBlm6jSKQftzCZEPBAghd3hyYgZOY0vbrFMsbc71gruOp2XDxqN+G0L9CdFdngkRgouTafjG/9wx8wxlUuqTBTsS99Wyu4XFRs0a7p/W6D0zb91CmbHPBMz/JcfDiV9P2kRU8H1h4fa38AlHcMD+kdT+jC6YEWBgl3eXn+5iLGkHl9+gnjIMQWBKgnx5xDYMsJs/Av7/EBbXOmfjdNjPvlSo2UpYZZHKpJWSagWZiymszyDBcP0nI00HoJXy3xno+H3AduZikHBW7H8AFgwhooMB8hImNX5p6g6PzY4wY6wUDOfa22Gxl9QPesGlCChV75O+7W4XD7gGC/rNBMsBv+EmjxxLgyP3eVB+6APZujveqc/gw2lU2nW/w/q4D8tFyvWx5y5eZYUbGe+MHopGSNU/UyLV5NOtyAKcNS4AomdlVrNjcVvAZj8FT5xF51qFoCpw2IN1dlFWMcGDzgdTtEbo87bfsVlXtOnpbsqvwc=","translations":{"en":{"changelog":"- Fix save admin settings"}},"signatureDigest":"sha512"},{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v6.0.0/release.tar.gz","created":"2025-04-13T04:38:23.421302Z","licenses":["agpl"],"lastModified":"2025-04-13T04:38:23.482235Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"ScSrUWEzk10wPhfr7hh+ZpDOsI5HFArvIoT8kkQkcr2dqxnkpIaoH1IydotSNlua5bU3bKQZFYlUXp0CQsOYPzlVnLPHr/u3EejfQfC8we/8kDBanIFP7S+9k+U38z7JURnjH/t38dGV0OiiW/E5FqZkeIpv0TV0Oq16WpVpL/z93We7r6ILtCunuouk0AU0IuYToPU2bN87FCMEGuk8A9UQEaCq2/2zlwUp8pCd2DiSJmJh4fXTTSupUz5XFUHGEF4JM4xLt/UsidbJ1NwLG0RoGGwFiKz5/r2AoZdW+hS0BKezYcu2epwKNLZBTr/y7vwzSVmlPOZL6DNhh6lAftWgrg9BUwieKhSIkFLtnUCgyWObdMBoL1NE5OmANMbOzP6CuUij4/+OBRHzWLNiS8Yyc4HRW8wLFJ52n839jehJLb+PK8ZMWfwYCqQKNKIhQBVAscaTk1zlKEu2oEhXZAq2+32njUNdySahWWyuN/ZUlh+r9iUL7HQrLQO+OKXZe2C+FtmLPxCdWJ64amb4RBOc1xNSpv/7kV+c5xXyerCi8i0to1VDHEoyqsbL4IOAmsWgpBCggFcEiS7TcLmYjD/C+1GTcT5IrlLHnutwQfz9KGXvN9XzwXdck/AsfIzAZDZ0Pa8bNkm2AMoHdRYdLbXD8wzX9WBgkz+XwuoP6SU=","translations":{"en":{"changelog":"- Bump v6.0.0\n- Fix settings layout in NC 31\n- Stop using deprecated config methods\n- Add docs/sso/apple.md"}},"signatureDigest":"sha512"},{"version":"5.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.9.2/release.tar.gz","created":"2025-02-19T03:35:41.366468Z","licenses":["agpl"],"lastModified":"2025-02-19T04:31:22.787376Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"hF4kNQW+RyaIAk06qf1qcMQPM4QE53EgQqu0a3nb8SkF1ed7a26iE206fU3kQlneMYsf5AC5oSNwIW7mu5e+g11+4eHtljBN+j425EeJYfkBahJpHFLzTm1YoXGSvRoNQYkieNyySJOr5sB8aekwyfjnR5KLifL0oANbNurolXOucFcpnVMh2LO9cqLbPEHixKeoJXgatY96JlKfzaRH2DAOlPlyulTdn7HV4KsbFnrgkk/MvM7Ui9Y6HY0iHgEQldP0g03RpUyd90mWHcvT1ymQjvaHCEGWeWhTzx1zU+S/T386SjRQGWxw3wMZM9x+SP4Nr0/6uat51F+9xLEB+F3JQYySvLVOuxctOv2Uto93aGdihnipilb8wUs4DUmdk33Q8OM0MkjwZd6i3zpSxqFdcJe/cSeEBNBYkBW3S4OjZpBWbhE2bf6rfJu+NWfWzsY64FbhHx1PGBLCLLjUE1YWFHfdUU4/9+776VSI/S9iVXTppbtwXTTzE8m/LeXX+7gEH2aA2rmON3QJDn3XUnE5MwWTdLqhVh4Ia3zCQ6Rtme9EMzJ+4/KfiMcNj609jXskbLchd23C0bMq6HKXxhZSVajcfxYAVyYJpzHwFTAbf+e21rqblTlvTPuARQVTxNznedqZU6L0Jp44AbYxZTVZ+lXp+wy0WVpuYTx65Rc=","translations":{"en":{"changelog":"- Code sign fix\n- Revert \"occ app:update before code sign\"\n- occ app:update before code sign\n- Fix typo\n- Add code signing\n- Fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"5.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.9.1/release.tar.gz","created":"2025-02-12T22:57:59.760064Z","licenses":["agpl"],"lastModified":"2025-02-12T22:57:59.817948Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"DyTq/qawI8boYGsEqAE6TBKgBcYttnjC82H+QmWWek5h8usbT+A526CcYtVDRniH9ILgydpeCmpN2v9a53FlWURVA8mIuypCPynNvxSGQlPg7d13tNDC/A/KwBgs5Qh+Uqu3/hRINIZsXurNx34jQ77X3tzLNlO2bZvhYW2oohKfk++sz+QWhTtDTP1mqX4MzDCeSePbEqNjB/L5fag23gQX2pwb730CayqCDq1x+zUdRAcIyisrp0YF0OxP2kPvf/DoZSrthuU1fYJwqgQmDy/0rO0RsBZa+7Jz87kl7gAg/HKLbiycfNSi7ifOj1uEoWTJ3jlitXURDB49tGjqDpe8mnvRoel6g7WdfY0Y/hxZxtLlIjwa+nkhNrKyChix4m/0X8A/ZPe1PDg5cul87RlH8Qu15iTRw6vIbkzoO5TQPll2T0ZxK1WYoxqe1vTikIewmkuaiGzsdyJzh2Gjl8Of4Cwf67K2KLF/88Hs/AZmk60LU8QKNZSixLCoKcwgKhIz51PCeOlQ/Z748VXmpLVPbv8HyTfydDm96QLzvfVF9tD/BfJSQcU116/apSBmWJzliMEYR9LDGTk/FY0KVQbokX5z9jVvC/lOdHB38cz9+EZF1yQ5YbLmgIH2M3j0kAW9xC7q9qS8m1EjJ0hfvZKXu2EOkqQopRBdGd1IIJg=","translations":{"en":{"changelog":"- Revert state support for apple provider"}},"signatureDigest":"sha512"},{"version":"5.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.9.0/release.tar.gz","created":"2025-02-12T10:15:15.922523Z","licenses":["agpl"],"lastModified":"2025-02-12T10:15:15.994534Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"onDNySwfuVZvccJZDhtW6MM/uLn4XQkaNDK5kKWuyarGp+fmC3WdDlTKis64RePDf4mf/sYsVEK3ZNExsTdnJoBAfny5XBORGUHftOSINYxqv0bmTExwEb9o3u6o2brr+yjbPmlxKE+Q3wNgSrc3Mn2ht3Te6gv94fujh3Wf/z9jF0ECZQqL0js+Id57dmKQ0gntJSTFAhoaxfBvCn+luXvtrCSorBx3GAdigns/Zsxk6GZ4c10QnRodh2rDMg9u3swDl7gHpkZkC7tkn+41ZXNCLWZXqAmKob2Es4NDtcCAqAE83iYW1pvaPd9WRwFODdpEhDG3D90+t9EmJYvrEgcIsoDpNl/55WSjc1LRivM4RY034vV9/sGCAME5hABACqK/ysdMfuFpq8mdWWLwCgRlTvZnsI5utu8TNpfghIZqIc5Vah6ZJRAsn9KyhCXTiWmyUIBTQUT7v/nPksy6S9EKYq3CEqqq+vccbVUpkj1jSDSMrndPLCKpzdQBqQQ10BvG77p4W64Uu8zdTecfBFxHjIdTuDgslys2/8p7rdo+eOVTo9aw1vZhUy7fbCVBnvN6/+Y/6IKzRKGoXwwOpSXmoTjtHWFSD8yehBz7qvDJMz0BlS7zHeo/MmEefpcJATfBciRE8SM4YNhEAs+9Wo2GbCUMiuFS1zvNrj2TBR8=","translations":{"en":{"changelog":"- Redirect provider POST requests"}},"signatureDigest":"sha512"},{"version":"5.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.5/release.tar.gz","created":"2025-02-10T23:02:01.195582Z","licenses":["agpl"],"lastModified":"2025-02-10T23:02:01.240663Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"qLFkiI+WLZ+qKV6txCaoLF0juYO1+CKkPy8Hab9qSFWvEqD1ybMTtOHwpNJw2NKTz4glCP2lpXrJMcoTEnHIvTXdO1ZxiZoF24dSwT2PAhhGu1boOeRiAl5IGGVfe3npSMAOTmGPXm6Rr1/oE7599zV5HTOeaDvbGlp8W/7M+UxMQ7kYfvRqJGER+cLtXgR1KZrKmBRrJDj3kCvqYuI8XGzonxJkFtcn1voTtsqFTR3tp82IMGDn17F6ujQQD2fYU+vXjBrilejrQYaT1Asg4tMwmMq6XNHwvtXHcGMWXdUj+8xy4ZVzpa5H2Uu3SUXBr6q2sJbER2vC1rNzSuNUUfdsN5tOFbAjJGtz4JOKlvgPAgiUmZiQbqkKAZnYDqq+bkOFIOF/RdeO4x4mJs3bz4MZRsXc0t80XJr41XBwaF3JmE0OFQKRXw/w3P/aHjXI9Ud98mgoycr9P4mESVsJGM21ca+lm3uiFsV6lYQ/QynwHj42pkpgzNSHPQP5uO3cQxJg63jp5A/8IHmmJt+LRFJMNC88s2+qZa1D/QfVZXKUH1HHeJiFz/hoa0FhLTNw/u1w1aCND16+raibV5Qdd+LvFitlOy3KaHhuWnDiq2briUHX5iCXAAr325zC0LlPE5mt20J0Hzkl9WJ6ybeGslYhZGITEnjM99Mv9CTLC74=","translations":{"en":{"changelog":"- Fix apple provider\n- Fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"5.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.4/release.tar.gz","created":"2025-01-27T15:43:19.091591Z","licenses":["agpl"],"lastModified":"2025-01-27T15:43:19.164337Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"NM6g9vcO4mdg6yK2XrYWiZ+Si5DlN5GGQZBAJfMQ9oFR3YLCskcMCfkahRrx3aVV7twIUJTZ2b0aUCN3dGc9PUA8iN5yGVUlkXooviWEDxfBMPx4972UljF2Zuh/3cX1h2rHfP4nD6D5mVc0whm0LDM8NL+a373RApY/xqrD6MYvSbMYFuJ+ZkeN7yoGtv6AS+n3Nn1KnB+Sb4S2LUU9mAXMir/0kY2THY5cBbQymxohZFWhRvhbRF4aNK1K9cw6UE6Sa0dhcCn1fCI7o3p1Epom3UvHp5DYqqxa0Z1p3aLTwoYdYZ/zIYl4KE306fI3MO10B0k/cBY94s5bepKAq8D2e15p9dN0WUfhw+/g7lVF4EF5rAgDJb3fnVGANcC0Yn7LykKzn0KEdMIEOR3JFAkTeOZ8H3jVKuvx+wgjO5MonnsgQLLMN0wGutGOYyu2JBzO5IA4DgA2o3tKuonTn06gcR1V6PAwCgKk87roIGjDML/JyF7Uev5hsEOtwx9cPixtEQqEvgQqmRgaAkVmPn/4eUkvWeLIx52kzeqdbnxzr9Oqs/gJenVNUBxDvZUrW1yevXaSmz5/KAOsJrZtEg81LNXFUJGLpksHL23qKWj6fBTJ3zLpmeAYjlxZ6NU73HT633PLQciOL+B5sAftntOYxW1L5UWTnO7nmc0cY8Y=","translations":{"en":{"changelog":"- Update token on personal settings change"}},"signatureDigest":"sha512"},{"version":"5.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.3/release.tar.gz","created":"2025-01-27T12:24:53.571645Z","licenses":["agpl"],"lastModified":"2025-01-27T12:24:53.635147Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bBCufGd+zvCqiz04WKK5yG1eqLr95TG7BWuk+l14tX52MVhhHACZTG9Fs++xw/7sI3TQxRncdLTMDfb9100hS8KnxbOcGUBPjTLk4kS0L3w15KF7VxkJiEebh/VydMdQ4dHiyljtspzlkU7UFiEfkyRcGO1K9Ij8S9f7Y/C3GKcbuRXub58VEwCfo1nuN51qi0j8Mi/06vlbitdrOQyODEsvn+0EqIlo7f9L73AX1QmgJnzS8SOG/UbMLwwlTa19tJuzVG5vjs17JTlbHz4uVNTxDoh+age8hgD8KYfZmJWZlFsEzNkXrPWg0bWrJQ+ndtUhtHGRGP3h1Ab6QhOb00drUW5sbdzN95WYcU+2rwQX3jt6ct/7hkokHrUsxAe4eycPoVUlIKNgd/UvZP1DRaonTlx7vw1R2rotUlHHmYt/mdLRGTb5bDBAjN24Lull+FwDakFKO+8sjtXFy0xUEURD1TVQhxoBzVFOQ1Z3pFlgx00fTd8VnC/kmw7/oPdgR6yNt9ww2STIRx2Arv80YUy29NxUc8ZRYaoiORsqb/U6RXlamMJnf5cKHL/XAcXH86m5lxrsiJx72Gd7jWePSSFbfEoJyKuOgp4KpVwYwFpMngDLSwlRs4RMLYDs/nw68e4xopDRFkWXksw+DCCFngWWqQLXhYAIEL7qiYVrkO8=","translations":{"en":{"changelog":"- Fix disable_password_confirmation for connected accounts"}},"signatureDigest":"sha512"},{"version":"5.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.2/release.tar.gz","created":"2025-01-23T05:13:59.664729Z","licenses":["agpl"],"lastModified":"2025-01-23T05:13:59.714674Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"pXu4jGCdr5kOaPd/PgUA4xdNtUlBpRP15gr0zpxdDOi7wZkjWVgpC6fhO6gxCgkswoNS8GICcnVGhUBXNWMKnwAQVHHuNhDi39tGtfwRPLGhFuy2pVtox/tYDRPDnVIej1PAFs+tpLDEOXGJ8xSadoGZAmyR7uNgVHuwSqZZE05Dja2f/H/PdmeaPJe9caOuD8g2rx44DC5i04Sbta229AI45ubeAAsBaH6joJUwae3Ypfyz70iCV3Ob0URyxF8Gds47JNDu3IwR0298ix9XIb66spMngE1NcZ+LzoRVSn+ay84jo3v7H2MhVGLCdZCjHo0Vc4Ftc4DFHvFe1EJPldPoQU9erzqhg4JPOwzrBKEPIJ0lE8hFLEYQHiR6ojhbQjm5Bc2pgGcwpnBMaZqv0y4iTayvcxt1+KY+Oj2N1jyM7ymuhedeghkCN+K9usuTSQHN9S1IC0O6v1WiLfTgXNO6ZkeFXrCzSmGJbkPK1A0SJrZfX2g+9Qqw3Yc5GEgdxut/idnJwnh6DGZU8gJ7hQ3xUNTdVw4gIV/oAhT0+Hd5AJuu0lz4/QqXBRQbbxpChgwjiLTt/pczo5wHbG5xzPKfdOm9ETYjQLvqdsKFH0ABLCtNVmhe8Lf5tPrHnWUP4MOP7+hQVbT+tfY2RM8JVE2kmg5yBjB2ooTOaww9QkI=","translations":{"en":{"changelog":"- Add attributes to controllers"}},"signatureDigest":"sha512"},{"version":"5.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.1/release.tar.gz","created":"2025-01-23T00:34:40.938151Z","licenses":["agpl"],"lastModified":"2025-01-23T00:34:40.989470Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bt5xIEmScYau/VgI5IoTNB7GtoeraFXKoFUYRvG6SEdM/4zMBcC5uNsMOcb1nLFVRXEHHg3sxPetLtjG3lVi1S+HCXutgYXxhH2TFYMN2bU9gFSP8Ph2qUySSWqJFCIGlyx7GmnMRWrreJga16Fmv57PwzdShBi8T54qrCYgQS2qpQlLxhidZbeozSp4ADsd/fXseCnganShBNNDaqyH3rgj4oa16XyWMb1LqM5Ai4GGFPvvJ6sjqq4Y4O9oR+GQZUrs06sVJTjJgcrD6+UheNNKeL/0G/e48gaYmRtNMbw+2NMrlpNOVIVfudBsiUDJ2Fwx2skPkJRwxPHg7ltxXVTC2ev6v6AtImLV5E9udvuNTp9rv26/8ONkdunv/s92eZckoBBDVtr5kHEmsnJQp+NgR8V7/X/T0DVzXz03fCTR7ovqEHrwNL9qYc2D5f+Q8BGUDTURp89C4wOOiP1/cRko2CqPNQC4Dqj1qRsC2ullgmEIIFlibqrmYdm8JkDkRdkAf9pmBn44iRlovRjI0ZGePk+umrWtjAEevLFeUkkEo+2OpQW9DB34gwC2Gs7cMd5YEeQlGmLIQIca14M0Tvg9vlTSqlD5VzpQE9m8jlWvQXn+qz+k0QQSwNtpw8+75QK56ScxngXAP3t03Di+9z5fUD+xZ4N5VoJi6cdJTAQ=","translations":{"en":{"changelog":"- Fix disable_password_confirmation"}},"signatureDigest":"sha512"},{"version":"5.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.8.0/release.tar.gz","created":"2025-01-22T00:52:54.733929Z","licenses":["agpl"],"lastModified":"2025-01-22T00:52:54.781755Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"WfBHXIMh6p5SbdP47Hk6Yu+9IifNAtWEZmy2jNuRrYXNCSt3hAB8o107Oe1P9tVhF9a9AYRXVGM6sTc2eqHh4V4+MuK9Pdf3iUaxlDgSTiCL1L49+7j7KEmu15dLwHmlwq9+D+ggMEM2AjS7rJPj9cjj61mwhJAQ+IhYmbVc/yl/6hviOlzd2sniWHtcmpBCLCZBxI6XOP3H+CmOdVAMUkjM32RICctDwB+PcIMx8fW1kxSU2Z9/+LmWUN6y9Cgb90hysfCqgaclIBCWist6O7vfVEbYy6oVg5MNjOj32fSALtYeQMre0KP7DZHvgOsnYcwlqPbUJ2Sdy9qwuPqIB60NFoGhQsSxmCIwGptPKqJgVdMTe51flKgk09+u3phfzVVFw5YIAu+nZ73/2oA4bsVdsFKTShWt3mYKWceJX3z7tJLXfhWdygjpeZCdIBsGLsWLSjoC3eFkUKG6gfdFgmhYNtZkr2kKV7CDU0NK6RlB0QY812VwlGN0A9EiZLzCenuD7KSxYYJ3FIR/pXc96GyQw2SBWbJMsMui2LMqhrRjpKTphYpT4iTKEUq0GAqZMQMzNhAsAtm0r9FiDouv+Yh9UOFArsbv9xwY4c5nMlEGtCxJPCBfrYFlwKd+Y1ZEmI44a4KknwhUA0fWZ6HBF0ApPTRmxdKCqMKQy20B9wo=","translations":{"en":{"changelog":"- Bump v5.8.0\n- Fix disable_password_confirmation for NC >= 30.0.3"}},"signatureDigest":"sha512"},{"version":"5.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.7.0/release.tar.gz","created":"2024-11-09T02:45:19.551829Z","licenses":["agpl"],"lastModified":"2024-11-09T02:45:19.606314Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"HANLAyWdzdECYDbJ6EZdc7Qw63eqwVDFbKzl6ZZ7SvtjnQd/bL5GvIPRKfVM363Zh53po2YQ6SVfTCoxV4fplBayUPOdnOF+01F4yCCeyiRvtdXa1jYRwN+3mAZ1lVYIU1QHFvwQndaA4f3ZIk9TxTIcr2rcQFxTxHRPC8xzPhoTEh4cNRIQtjFso1LEgdItmYuv3siEejfJdNFQ2InsHy3Y83Y2jMMUecD4T8qNmIqDN5wEM6Vq7TQ+yxcSAjM3I+dp6T7wGfRtkN1R1WluI+KQdDSvoii0t4p/b10L60c5bYht07Ix3DoFQoiKnSYJF7/HGzjso32CAg9rj10Pnt5ScSFq7K4o4/LsV6oWzBcy0M3OQIoOuOuTflZavJd+RljyCMUrH6wpA34oojjv+b/rCpAeet/zH6bZJlSbt2KpDzVGo2RN4i80+svEZQ9/i4Ib2xKVG5axUJXOny4lRuzYj2iiMOF21Ty2/cWLjpnogttECNZ91ICI/x/mzFdzarwP6gbu3NvG8JrC+pR89Kjs1DQ9yhTT8fK+CaizOfWp9pc823cOZCKygZUvS7FavsRN1DdaZ/dAmyBuWdS0p6gkNcEMjfNwB+wz0zVm/20CiUSLEemSLjusAcOTtSRWfggNAfnALkSYvPthDO8phy461Mirt5PQo7ZlhhBAvcs=","translations":{"en":{"changelog":"- Bump v5.7.0\n- feat: support namespace based claims (#485)\n- Fix(l10n): Update translations from Transifex\n- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Bump v 5.6.7"}},"signatureDigest":"sha512"},{"version":"5.6.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.7/release.tar.gz","created":"2024-10-27T12:24:58.873873Z","licenses":["agpl"],"lastModified":"2024-10-27T12:24:58.932173Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"CDQpiH0O5XSC7LakVSPJFABAb9eHaHpLS9b14h3TbqG8lJMwpr0ZLj2FWDze1UFeFMGLqevo99flDnyiPg9h9qTHblwMRgha53kv2bdfrqiPnW9+EC44Q8eSRVTdWTGoGgUT51onVupgXjZX7GqVappWEP0V4RU+RC+JyxzvKie8HagViEXjhnty7At/hupz5xgcapZNwCPeXn+Ag/99uw/zwboEy6VA/rt5fmbv8r/awK8s9Qx4mRzU5DsWTr1d7E7Tqs91tLkCQwq52z9altgHVraP3TaWSQnlwfs6eKZcmvAf0OVn68NM0DYXa06n8fbEII5V094GwkTTL3pedSxlSzv41FhEn/FRsA9GtzR+2CUcFI0SPFje8mxYB1hLs13LH9EGx0hTDhqDfv7BRkRu1e1pRZXvMVyX2ErPgUutBGtgFxAvt54QUmkWfw9ii0FnKHUUwLYw2ZXj13qikpqPU2ZSrEEpy0JuW1uCgJN7g871pUbOASFRsSYVPUME0sS58TAVOAeXudH57/ylVmfSlpu+vkscRtF441cEAauwyhK+i30Hc3RuMkyWevY5Wq+XrsTB2CaCdHDRYQQWdokiRr0+LVyQ8SQ3l+ajs8QA96Yzd7rDOfJjHDebBnotTMKALxArFsC9i7AQk7ppWcr6s50RGcSHNJnuYGv49tM=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Bump v 5.6.7\n- Add scope header in OAuth2 (#481)\n- Add keycloak doc (#478)"}},"signatureDigest":"sha512"},{"version":"5.6.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.6/release.tar.gz","created":"2024-07-18T01:42:45.739060Z","licenses":["agpl"],"lastModified":"2024-07-18T01:42:45.879895Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"qmd8amYVNJ9RN0uA9SthSkB3cNigyFqJ3FNYcmpVk+J9gO1/R+/oOu2rBhvqAhS4JibIk+rNtpWSLPzwIvdDIQDB8TcOOgGQNsOnSlpKZG+qYVVspk1qxIGYsgWMgwWP32mCofsGkcabsooyvM/AIypaVII3AKajDhbglR2UrSjYITetmk/zKrVqWvPERmsKV9sO2IYAMA7a9UlF75MhDeu/0JBuL8m+wO6AoArbRgTa1vE08H2RcNBPJCKyMBgmA5YyNzgQ+/9AAduKxd5uMqRvVcp8icJSvXmnGdMqqYyUpeh+9fHHBEBQ3GCGL3QExl5tc/Yfkm8CPfNOVb1ZTkz1wzAGj4NWr5+aE9Kg9QGO4bkFw/O2j5sF5YLwZbqPWJK6cf0hnQiLZ6/KBETgj0bvXuYVtseAYN5w/cfKngnxlqQi0tRRbFP5UR1YhUrszAZRP70YSW/7bEsdYTV5HbAbQkQT8oWFrFNhzuzFoFAheEJmiFbNdKnt8rEiV9D0QXN52PWcctiztEXj/kfLcgWNZ31VugGizmWKK7kmuPjZERLrjqF1+o+VKOV94jyHXz1spnC9FB5GEUBeX2K3ylbcjileFtOHEiq8MBd4pM7+9ulMm5u0TkqdQfv4gPVrU04XHSsrmKRVrF0j34jtw3/mEtYeLL8DJHVnYPS+Ca4=","translations":{"en":{"changelog":"- Bump v5.6.6\n- Check if user not in group before adding to default group\n- Fix deprecation"}},"signatureDigest":"sha512"},{"version":"5.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.5/release.tar.gz","created":"2024-06-15T08:31:18.841484Z","licenses":["agpl"],"lastModified":"2024-06-15T08:31:18.966082Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"j0zsHI7fb1P3GoZQy0R3uirlaApwXW3cbaL4HDFJZjhJ7be7nLSo02AcYOQZOJ+QhkXWl99IkKt21SAd7F8UOkoGs52dWJi84ALTBunbgbvFvVjF5d6kXojVCHPAOVG5HapJ1f294JEC60bxrZQBX/JwGDm2GZUXnx9TliCyRGfMXi0DRy8n8eO39O0yBbL/om9JoK+fiSoA1KGS8nl4Jqnt06phNBZMk8mwHb+i6rI88jl7del85hvAH16WAKM9kbkjhWjTAwAO4Ybp/7dHGTGoJcNfyMVYjuFAwsTeljA4ivX5sYcTAbIqXHQ1qvc8dd6nXpIYziElCMeIVm5iTjOYh17+cx3/od8Pww/R8vCKhjDzQkDS6qHabfevb8ajDeCJCEL1RW6997xFNDBrDP6CuWDt4LNv7QiBJqK4mLoIGzKsWyIwfRqol1x/yGPRuJ+SA8hCN5N8JkNg7Okrd7Q4Yu45H4ppavx3jb6e0S80P5a7yMgwkxUvyBLtQJq8bU+o1Ggby5jzz2jPjfn1fVjxgP2O+sRk2fC5aysVvDBmqbmANicg4cmCzPGhUhebxG/15nrJBV/XGAdpadeYX1MtsXXvEAnLATjy2/v7BH/unu3pKSyGHBUuQ/gDrW2/r4QPmeEYgcFO+Uck0naUkPR94w2lzFKMdPHzoDZjn4Y=","translations":{"en":{"changelog":"- Allow remove default providers\n- Fix(l10n): Update translations from Transifex\n- Default provider remove draft\n- Add remove button for default providers (#466)"}},"signatureDigest":"sha512"},{"version":"5.6.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.4/release.tar.gz","created":"2024-03-18T07:40:59.412306Z","licenses":["agpl"],"lastModified":"2024-03-18T07:40:59.540985Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"GNEKJUiHfFgxKWDKnTwt0d8Su0OzVvNvph+AeE4cJfhGPaCHdNtBWX/mgJAIpclqKEzn9qMOus2gNOxnPKKMFB22Xt7qXkqZ15r5MzjbRY1Wnz3Iigut60RTSnPe3xvyBPveUgXto8sWgBezCYGn/wRgjRFrP3hFV0b2muAl5q/rR1CuYMywFhmhUaXNaXhNR7HUQ87QQy4TJnJByxhMmSQIFSZWp8q9eZFqmGeqOsTY4eUgioKn6KLc1mtnODqZKH+PumaYv2ek2nyCk/SCRpIprZ3jKQ2mzWniNjjN8svHT1TLkvNG0mDv4Fru3NHrqhuxbZW5jTWgcphPoBi4956zHT9dYTp2cB0OR047a3J+z4N/iikvGI4ZLZ4Wo2CSrnqIKErlzjXm1ujshUH7W6jjnGKbLxWUJb0lzoDIAGzpD9Q49VOScALdg0RqMaCC4fs8AhtNeaIufqWhx9gSvQ+qNsWOrkncN1yOMLYFdl4zEJicTgdF3F8Kwvz2DI/LkjjPOdudIzDbkxJgkEXUo7x89riyP4NcMM90enYD1n+FWv8ySg05IcNhq/tYSw7RpCnEQfnUh+LD15uXdIzJbKJO/SsPOc5GjCHav7ywlQIMKy27tmKkTuNKUkQsusnWq2nKbbJIH7tnCOVNua88Bxjv/DlRNVi/EsqMR/C7C9w=","translations":{"en":{"changelog":"- Bump v5.6.4\n- Change group string split (#458)"}},"signatureDigest":"sha512"},{"version":"5.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.3/release.tar.gz","created":"2024-01-12T02:55:41.014605Z","licenses":["agpl"],"lastModified":"2024-01-12T02:55:41.171829Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"GBTb85VOBvRI+zPnXmMTVgWiYTBEMrr9O/tKHhwWZ+WG8/Gst+HsNnMWdvIHSSPOjwLaT/JXQ0DZ7mZFdbGcYSzukJ27axt8RxOAWUR5Jo/jGPuRpxsh36tImHwkT+PcNr1L8vmxqBVGvsbL0xwQHHMkvNeMDOwZSmfzMVKdPLvIjhZpdvDIi5B3PPIMO3+YyS+Ehs/7SDLNLLWONDzPNDaJ31yAR/yIZRmF62lBEC3d8VjyCwjez+PpruLlopGrbukEkuLNKgNeTnYRwjJXJWT47CLrBOWLoyovDXoCCYig80NRIDzPmnjwLylIp+IsGiOu0SpCJI0hHKYrz6VLW/ZQmZNq85OaJ5gseARZTX2QBOTpqrcC73j4lKmTyblsOPim2XcJjmwWH917XqODjvYngkBDA1g84IFAHJb/a3bmA0cSiifSN0qe95AUM7b08m+uSjLZbq5ejC0ICLA2gUgEe6SK6kKLGqJGxGv5HRccXYDudGP+4NHsKF1oD9ugmsjQv1SNMoJ8gPCgKAk7T0qewCk4evZe2t3SznBZpysbncxYSDxMfpfFaPylFFR0kPIOU7/JJyo3UOu3OepwRnXjN+V9UHF04G8/f1EClYvjKwyxLxEjNczWkEERk2Ckq93aeSkv6KUHVprv6VPNd6a5AeSZNs83bGRO3cltEbk=","translations":{"en":{"changelog":"- Prevent password policy error on create user\n- Fix(l10n): Update translations from Transifex\n- Add Codeberg connecting instructions (#449)"}},"signatureDigest":"sha512"},{"version":"5.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.2/release.tar.gz","created":"2024-01-04T19:14:51.201462Z","licenses":["agpl"],"lastModified":"2024-01-04T19:14:51.251830Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"TdmE/iDc8Oj5SvxlKyQ2jyA/nUeCtC9wx4GhzaA4AMly/6mIMKSydxBjVWFChXuTeHnBkkP1PzffPOoHOCjUt0JWt0Cry91BTlhgSDbwku6KUeqNOv0kWy4x0c1Qd/rR0XFzNvapWT4YtL8xWya52nShEPk8fJrDV+3+BaiVfcWcgMIabmq4B07POeP36pBCsw8FCd6jHTbN411252IyisutiapkAEq/KpbyRsSCuiu/P8plCpTMGTfL8odQ9WsAzvLgr20HLMak92uOxTlZUqnm7YFJ5W3s6oF4G5pLiG/7rw8s37kO35fOSafQHYK1LOgrWVg/1MUHLbiwc2OD30cNoZ4XGwne2C/hxVklIrNyoT+URaR2x4OaLfb+sD+KSUnrIFrialtoHsv0Dk23T9Jcm9UsA1O04rsHZBssSqOIdIvK1cmKW5zm7K6QVnhnRBJdAXJ08ZL++1MjnBcawgQwxqU1CoSHiYdKPZEZfhOOSjXwk5AM6pMxKwwmxs0EqugSmCmIjqnBORHUgPOg/frjNR1ZaL8mfB6QEydFECBMyXSz5UnEJ1t/tXLxu15JkYUkm6/fXsiMcbN9LTQliFc9MSRtGVXfdKKs/2gRJZeHe0ojEYN6l6UoOo0mkq3E8S6BVy1sPH6LFpERfLNodbcoU42EuO06PkM5O4+c6cQ=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Fix discord useGuildNames option"}},"signatureDigest":"sha512"},{"version":"5.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.1/release.tar.gz","created":"2023-12-20T04:24:31.571396Z","licenses":["agpl"],"lastModified":"2023-12-20T04:24:31.677512Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"KjJP2rfb3GIOkz9n2ifEQjy+ZVQIGEttnn9GFE5W2B8EEBc78E8JFYXDQgn+IRCmIaDZBEESJVcncllskC+WzDVZS+UuCvvqtLKqBlXmpJsgJbL1K4eSlylyhJ0dDqeElalb84w8f8/+6aj/EbBmou5J042+JuZKxmkIzNPUC4mO1q44abHv4wTHqPv9Z1ZxnugH4SC+twiBnC3jwjCOKQup07f7zU+VPRnP9TYBHL0Vv+NGRFxvET3T0t83fo5VS8tNHbDWqjFmznXMHq1N6eHgCSgkX+7hJQkHzBBPDj80LQMULTiUN3rso7pN7rOVZZA7oXg3i2g+pKgvUBK3UC9x/SnkhH2dFb7HhgAN/wgWVgteGMSdUOtq8Cqo3PcH43JbcPsy4eh4XWO+nabcCVUC/vaQdlY29w8E5TtUfB0O051yfKkY0U7VSr3+GZTUGjV5lSwCZwyYGBUFbJKrlog1WN8Z6gsrlWnqfvXo8iFn89sbAE749rK0k67XFafU/h9wKGRs0ity/SbnzSuxCaavQqwQMOxDniopAl3YsujTiLSpxr4gqEUTTNH1oYrXX0s++GQpKoL2j/99tpoDmcm4umM67+BnHU48a/A+uwbNTMHXrI5qy8/tacq8T2c7bLSJgnf+hxnr3AixIiq4elV9M21j8TnsZIlxu/iaNzo=","translations":{"en":{"changelog":"- Bump v5.6.1\n- Fix discord \"use guild nick\" checkbox style"}},"signatureDigest":"sha512"},{"version":"5.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.6.0/release.tar.gz","created":"2023-12-06T14:29:36.815075Z","licenses":["agpl"],"lastModified":"2023-12-06T14:29:37.865557Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"aOzYKusPnOMHDy/M1RYQZDIpoUS1brCgkuY+YPIHOENCPPs5K+Dr1qfpPMRCvGq2DBd8rPqNtTNIZoOCWrX5DIAMeYgNu15DUXePXXqzQcke2Nz185fv002BRL58/zY2jQJ9qKodTU0F9/QV0WJOq1ljPBUuSXSQU2KpfV0QHLZgoDGyTu2QW+xWeEWWrrLe3agEAaJRkjL/ab1TO/QbmuOZayrD6RIp89UR35OOTB2dveOzFbeg7/M8WhcT8Ef25num142jGP85CrPhTwfC5FzCt5USiqfin9bMMM72iaqICAivaw+R/xFciZpoes2eSzduVBNofdgjKFyhVL/TqFiqQ7tJiwj8tXdc9xDhL6WcIA1wH4XVTfYRlx2GBEINsfWLKJPpwfInkND0DtoEh5XdlnIeIVd2wA/itKuLcKMf0lpMVvCUySDt5QXgJuyE23sdODCCyk8RXcPU+rlXqBwfuDC95VDY7AEjt7v+xNevj/n2ecI3NVrpNpkD00SQlZbp/zDuJiF4O1n74TBzI+8oVkjAykguaGulOqEUqP/SWFj5NdwxzgUZsOLq5JyS29u3rZKV8geB5HAHcuLsj2nOZmkH0/eWZPWOggiYXcmL8h1EGhc1+3ILIacHX/N5n8+yWzJTPL66OV93HnLle9xhsyH+MjC4gH/ElmMLasI=","translations":{"en":{"changelog":"- Bump v5.6.0\n- Build settings\n- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Add apple provider\n- Discord guild nicknames (#437)"}},"signatureDigest":"sha512"},{"version":"5.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.4/release.tar.gz","created":"2023-10-17T06:03:44.670499Z","licenses":["agpl"],"lastModified":"2023-10-17T06:03:45.159477Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"LPo/d+2P6C+HfnHuYhH+WyKzHZYuWHnhWmDjSLT05n65/G56TEI7U+gWdI1x0r2IP6EX/n66oQ3fkiU4TAqQ6mNwySHd5DJkE6vhzpNHTpcGcPQ6NM7Te/m2mDmtmgC1R+Y4K7smy9y1/4iIxHJWQ4X+vRXAk2GLFYa182rahhBz2xoG8Tl53qemHygIHZysfn/MZ7XR8FZC6FisC9HfwTdfijD9/VXC+yOwR8BBCOHKkY6mmbWBY/K0LTJ4PTC7qHEfE8onl2sAA26kcKL+0fQk6IMDvWHbngCfw+sA+yNIZp1QT846Qrb2ZD/qbjsiGcp1sLIz51U88WjopJ4gyVn4FTB8ekX6YujAXuriuPj5iQkWMy4mvTU14W6ML6vd5lWIQeU/yFgAeetUVyR46b/1NbaEYqNnwHml/lK9O9iGYNtwPIA3KwSCGa1WS1cVuglVxnNMSRWqg8/3y8rJDjzThFsrg1UAG5Xo2BWv1KKr+6WByehqbPRObncAIwziRbM9oyYj0ctq41N8Oqgv/7HK3tiyLK6iCydkuaD2qYSxFgvnl8xbqbaUC+9uZwzKP1EEoGSBU+GuZewZZHsgDi/OXurF2TSlD3nuS7fLutXw8bMhsF/eW5TYNnOPx6+r1dfzJyKBbmz/LillMk0YYCQDGv1cv+CJaW2j9QMud2E=","translations":{"en":{"changelog":"- Bump v5.5.4\n- CustomOauth2 add more identifier and displayName variants (#432)"}},"signatureDigest":"sha512"},{"version":"5.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.3/release.tar.gz","created":"2023-09-08T05:33:13.070022Z","licenses":["agpl"],"lastModified":"2023-09-08T05:33:13.443907Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"ktO3CdS/QRWjJ3fIfSPYoQzmxo2Yw/9m94xSJOhbAMBsZz0ml5+CooL4pk5J7/tfIq+e/Jdjrw2DVUSeXOrxJGksuqyO3WLcBwG11ridFATCHCLAAsOKpxLKQ25vgI4hmQDWP24a5mEq1+0BGDiEK1FHSRtzu4NxM0HbDGz7znWbWvBt/x10zYViMENe6F8WZ9oWhjN7u6oK9ri2dTiuQ/iWrQPRZesDY5mc1GCqYKVxEi/PL/5zzgYF94FplZtOBmgBwKFp0F19E365NiQy1awk7ikHPrHKuE129oHmLPlBiKW6MODvU7Ar+KHTXz+W/JoJXVp6CMStq17AJ+ufwxjfwLQqPPzvV1lplQRag3QC+5vpCjYLlKCbEZGPvQnjn3HL2QKZ4btSlGnwh6Y2v1UyP1OM+mKE5cyEzNzJcpD3p8/i3sD1LNkq6RwcGNnz+CTygMG0UoZnHkvwJwQYM1H5Ullq/z2YJEyO14AqdwILjMXo9q1fSGYv8VC7FLRoBWHUWAYpo2kqRF9B2HxTJAUcfwOD4DnJo3AXXCNKOSvWM3d2wP1lUtCC3D86jCXVGlQvfzCOhmDepjTuw7TYOWaJESktrJ7VbSP9Y6InYq83cK/2r0MXz52JEhWJo9d42o5fEwyMPyBKM3AG2FHAQjsOiCPXyIZ4O7scXH5kWi0=","translations":{"en":{"changelog":"- Bump v5.5.3\n- fix malformed redirectUrl with query param (#427)"}},"signatureDigest":"sha512"},{"version":"5.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.2/release.tar.gz","created":"2023-09-01T06:07:13.021412Z","licenses":["agpl"],"lastModified":"2023-09-01T06:07:13.216235Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Rvk/OyoDv4gikU6Lyv06kPRuuUIkjZtwUNtRcSQO0R+lNKmadshT+hC13q7Ee2zEtGrtpDMJSj+mv7C4IQEHkv3QihDWkoKNf5K18YRcpoPVZp1MmdGEINxweZl4HU3RrUkVpwwpqbl+wKSaDVZRqUgBKebUptiyHhCKhEv0rN0cdFJ4CtMZjfJTknS56qVJwd1dthYX5FavHLTyUgyPr4+3BL8s4fmrr+kNtyDrzYrPipZQYmdfofGyvS+hUgN3RMgDeaxZrzwtBkmG1CIL3PjHZo9iv6zl9mu36fRjDszBomNKR0i32M4EQtYHy/bxL2YVJ/f2GbfQzB4NZY9ElzFq/Ogvs9ksA39wAS5UusYVpsHz9XEJWkFWM5sOIbPWbP73m6itG8zktI7d1jPQuGl3lAq2NeuSl9HcLJTm5pYPG5opkN0ZCfa2MKWT9lNO5FVCE4g5uaBApD4vJKNAHnOGcJrM0f0COCL2hSLv5BMTu3Xe/e5n5ioPs8HOxcTmofYQ0VB2c7STdGIRY4/jyuTUyfycYsXrB8wDobvRaMNBrhckSgPBSkDgCSQll3MUV+gTrQeNtqi9wQ4Ds1+zJcwta9S7KU03DHSGkSLBd9bBoIhsXpJyiau5unHGxeJsLTIo5e9953e/HwBK2CBdA3CL9DLeb9Y8pxUVErcR8zo=","translations":{"en":{"changelog":"- Update phone and website account props\n- Fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"5.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.1/release.tar.gz","created":"2023-08-31T11:47:42.921013Z","licenses":["agpl"],"lastModified":"2023-08-31T11:47:43.708736Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Pu2n/YoEWB0UH3v7RLbwUJgZTGkWkSxV3GmlDQyACqQfj/Sx7Saoo/kxHLWBaMFNfp8EN6vgdY+qrK1MOY7ijK4w8k+2+lo4k/aNJkmJIFz4xei/YKW9WDR7d13oMoPH3ZPKAz41IDnVIE542S5/rW4LMQmRcxz60tOaLc2vxGy6af6LwooRNuVwpAU/snB4doRTvMQthrq6xXaLacYYKTonvGIsdweP66z2DO1CdHYQsodpCsfbxvarpCnCbdu7aMKL0+GfPxT8jucOyS2dlX4yfNzzixg1+Nwzhxn6+nesAc0RGdzUKEUvCyC2CnxYcAtgxlK/pdrPHGAOzUySVPpBKPqyaeA6xokJ4l3RdXFZTuWmiVkFKDqr2PHiDdPwB5A2TFHY3cc5DsPsSaRiEFM6B8DfXFe8k9nDL+gifC3ShAxuwMp6nS7jwcAx08khOWddm7qI3kdP//3yg2fA5U4GunnFG9phszVGXACNDAQTUlsxr55wEylFAvwQnPV7lWXD+gra8oqgbU0FcAWG+w/gdgT4OJuj/4wj52QH2aFQ5Wg+kVLIYYLJRE6T7Fc0R64SXnxNO2T+osn8Zkxdd72FjGz6EOL8UCS6JD7tRRXsFm2soJj5lSopwIrHITvdUu6C0fQoU2/zXhkKUo0BtHblxWkX5tPGWBXbVF9QtbE=","translations":{"en":{"changelog":"- Bump v5.5.1\n- Fix save settings without default providers\n- Fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"},{"version":"5.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.5.0/release.tar.gz","created":"2023-08-30T02:51:10.671896Z","licenses":["agpl"],"lastModified":"2023-08-30T02:51:10.785968Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bZflFJEmNxBbHDy8vHthBKvjAwIKMKreFEPbq7imPaP2/iejM+i3pjVNaeALcOLqk01ah0+qbBeyISlTXsSYxlHntc2OH1bwZ3tpRmRXk6ES59ymPnAR9Ijm4b9hxZrDkS3dxMEfODjoZqwmU98vzm3qsOu6WN9bGubGHHY/ABEUsSiW8UTC+8EJVh9TDTVvjae2ejHO+lP2UYx9yL07XFPuSscw+WYUKlmZtesDnVuNsIoU5Qe9K3+qp3Kwv76L+Y1PWqqt4ZpQvuC28oI8cJ1CeL8S9u+iitWUckbo/zfDtLQn9n+MdNfVcrNmOJbp11JKk6mN+8/QYAYDIwBIqg1A3VKYTukYdLh082yM7ZUYLDAXOs9Rvd+0DW2Fz1SLO8W8Sra/wyb92PFtmFTCZ2LN5gIwWfz5bi1NTj3459dT91Ap8aP3PJ/DPnIxtJXpGpLMCCb/XI9EZupL9iTK3y6yXUoX2kxEDzRBKRT6YfNo6moUXH/+zbOnoshdzCUid9ELe8qYy0ETd9Xfz8oq9hxunf7hbhlEmgAlf44M6cOmhTM5FZKPXQt7Mc5/z/2SE1Q8W3L9fs6qn9NLnVfBzXbs7vG4yEhU9yI5QneyPzetgH7+bgdsQDwZdpZnE5TPk+sE8FcS+Mwdq4zClk674YVR6zcYiDXkjaFR06DqAhU=","translations":{"en":{"changelog":"- Bump v5.5.0\n- Discord group mapping\n- Default provider fixes\n- Hide unused default providers in settings\n- GroupMapping.vue component"}},"signatureDigest":"sha512"},{"version":"5.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.4.3/release.tar.gz","created":"2023-04-26T04:55:28.963452Z","licenses":["agpl"],"lastModified":"2023-04-26T04:55:29.099094Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bIvfpXs+bMZKWhbW7WQLWehJPGOXirYQboU1pW8a5D6GUrY5WtprM6MhsbXJhKKKqoNPh4FjC7hOmUx6bRVCT9DK1nttu8uD66biKbqmAtTeRKw1mCJbR5ai928yTsq96h6rflrFcW7MhU3Z/6X6WLaB6kyUB/ynYJefBuIgD4VMBu8iefdhDlHcLQvdMoIW1ZxgkdaGWGkjrjH9sC82mU0CFZ3maYW6ZuMbipAewxm09S8OHw3Cin84/K8qC7Y5HZPFR0jvKmiHQ4iLwPCRTjKFzLt/jl7b8S42mW87Il4gVFIqKwk+Rt3f7iW01xXSlvMSyieusZXbrrmd1cl+xE+J3d8ojEtb9U8E/MR7UZEEq/fPfbhlHhWBChcaOnak3KMmWMcJPMAsPU1Zp4Ypb+guZtWLPnkbQcubsjrcFunP1e5FrpSZSKjLLlX7CfW28X6TQVndW6Ab92P/EduA02g4lgkUx9/p/woGcCtFg8WiyYchYxkOCOOmnO/12N0y6UkWE3Jb0g2QIw6UwHqfmIuuqHD/ZCSy9uPHHEtTXCiWrgBVnO0KsKJrhlQ9k+sSWZ4r25pvRFan1XZu4GjwokfsPgBNOl3hfRXdxH0RgTACWkzPYiX/IUFUIw4xOwzpjVb4M4IOPfpRP5TaX3P6IAf5E6pZAMdQUQCVSuB5XQI=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Add userid for oauth2 provider"}},"signatureDigest":"sha512"},{"version":"5.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.4.2/release.tar.gz","created":"2023-03-15T08:51:41.786962Z","licenses":["agpl"],"lastModified":"2023-03-15T08:51:41.884992Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"ZWNJlDML+1WTjP58fjzWH2kpBoCMUkLKaGYo3zPltrYqEPrLsnBTe2wiX/BKVVmqA2QSkSwRH4hc3erwBfBQWT6mkT0jXIOKNXs8u2QlCsZA33wTU5M5kCn6RkhcZe8m4o0ycgBBTH9oTry5zAQxq0Ab2l3lbN7Fn8JGMGMyIXRrZn4YuvRJWLbb8vpWnN9s2kQrIN4WF8wWGtmSeJKPULcMXPT4Uob3hM8DQJaZGMEamHdc5uJKVL6xFdxHdB3ykl1E8hONfZU/jZhNQ+QyijVSd3CIyYiLA5Mm17gB6pZ6eS43RbntTCg+PyP0+5TyHhO49D83sxld365LEanRVlbzNeOXH1FXr/CaAjganAmZSLqeXETnLgP64yW33fZgpUdHzRwxOf4zRmTLQFVd7ApTzKVjCs/CV3/wvt/g8aygo4s8AA69W6IMZLUP8xrRP75iRZd8Dlq8c/vlffGoLmXf2cdEPT/ogysh+1ee04kkb+1E5e3thj8jMnPvD5OtLCOjjB7EJE7LuI2bfXv9wbljZ2muHp1Tt0S6TjgrldrcXPBWKkauAt9gYqfG6q6d58m0LF/NFSaVABDTGx6Xab1B5mXNiSWroUGMIqEP7yADqxBTKzIy3jrdJOLI8fD3Qny9KcPmUf8XnQXcVIbhXfetUkCFj1YO3CcAl1GTbKA=","translations":{"en":{"changelog":"- Update npm deps"}},"signatureDigest":"sha512"},{"version":"5.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.4.1/release.tar.gz","created":"2023-02-07T02:26:30.851592Z","licenses":["agpl"],"lastModified":"2023-02-07T02:26:30.895911Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"RzVkXFaUE3rMUWLPl+C8N+HBI3ozuY7bKM6yP12GHu4kE0iOXDE125IA8lXyOmHZwyZYQLPHXL8S8cVoemfmI+14BgXxgaO1D0Wq8+TYTcIulQzrI4Wy9WrRoGhQ14sy699OzPhXz4yiXWIKGNK3haU4UpYbJ+BG2RfAW9riZIeWh5jEFbe9iMWuoEsY8DDacPVTaihthDnVzd9gYbG6Gkl6pNQswZCiJEiuWG7XRyQq6cYjM2NAsRD0A5axxFsAdhC4zKHTgnKbTUlNGShj2SfW1XpQj1gT5g6q+I2iv+26so4HqLaAH8GA3GzekLbX+vy1UBjixytFfj784NEH+Ee861XsHN1/6ZBW32RUFVPw0Nc3qrow3ungBHIjKF2zBJ2fV37DWLZsk2NFTmYfcCjiHxY1/8in4kLZxR6veis52sZWgxBwJTVBMsj6nXB7DHgqdtQ7o5pXhqBmKFc6oAAFwlhCmxz9ZpqgGdz90239/0mZmqkk5mXLL73kTr6ezxxgOf6064xzhwx6qWpPIRO1WXVfaUYjyKlUIga4PTYJMxiYe5GlGYWynJwqZ+SqtOZTHPLLdIYm7S5+QKwayA3maLmg9Va3w8/Wt7qprR7VSaBR4/wbViwQKiiEeNvaUF74z6T/FpzrW94cxEIuJR+UFeQac3QUKbMjlgMWXRA=","translations":{"en":{"changelog":"- Create primary key in first migration"}},"signatureDigest":"sha512"},{"version":"5.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.4.0/release.tar.gz","created":"2023-02-07T02:12:45.209638Z","licenses":["agpl"],"lastModified":"2023-02-07T02:12:45.261806Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Xke3RhixZ+hnLagshfDEhMnO2g3JW5LbE78PmJjCY0lvwfXuvMqlP793Gad1WubG8aB4tQ8PToJfQG99QMXLDLumrKfvl0STtpM+PYukwgQIiTqCuZdzjooBgNB6vvMBkiRV0LxNckAx001klX2uGQ4pf1dRiAIQOOPpnHYwnCWB8gTbjY/NzD6FtBWCd/yukZ2JzT0rdSy+qsMr9xf3AEuUDK5JxToJU9sQbMLEllixM9G2smGvYvRXIwPQOGhBljnT7D4mIsstYFpKZ4LbL9kl/qisr2F04kDGpBomlctuLnUkNF2VjsfTctFNtCrVq1szCHAvOfPSajEjd9sdz7DGYiATGrQg9hElOygJwiECZmJp1aH+6sSZHlqoZUKu3rBZgzuPxeCyFdhcs1N3FUIYcgtyGGNVr3RXlUlOKseRHwpt7P2Khckbm8JW9tc/q0RUDrgvNTbneph8kS5ODwLFSULj36Avn6eM2MMFs2WKM/+Wqau51/hpmsUwJQtPfaZNVvwOhVSCQ2cxCtKIFE06kdlYREOzLLH5NIUuWUE75ZmhUvrBm5E9HPJMIbT2xTD+yOmHZxQYyY2qI+uNulHx8gzZZqcduQWyjH+V52ktMsKCJwF4498gXP4LKQciPNna1IeT03kOPgKTZUwL4fS8k3cR/LI8IUxjVDfCHJU=","translations":{"en":{"changelog":"- Primary key for sociallogin_connect table\n- Merge pull request #389 from pktiuk/master\n- docs: Describe configuration for discord"}},"signatureDigest":"sha512"},{"version":"5.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.3.0/release.tar.gz","created":"2023-01-23T12:29:13.918429Z","licenses":["agpl"],"lastModified":"2023-01-23T12:29:13.971876Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bdbF/jj1BeSd6dCOehHVjYZ/wPkdN8MKD9WwimIGPNC2MKG7lt/TkNVXtCk0LZzVWhn4tKsFY+9IhkDDDGpSc2MQlC02k6lkZ9PZM4gM6ZQOya/XSUBaCct76oYsLY3XLSzAJ6NQFltZ8f7Aa2DXXF5XuRZf2EzIY48gKF7U6DCivXoXoKXymvNhvYYklZnGKlB6xPvb1gcdgPBE8pAaVQ80tSMuSjzJBdpqhoZfNgdY5FPUdXjmvz5dtRQRjJKNvWooqwbxAOmFnB09WByvb0iGT0YuxWqRx+m3h9qph27JFhXCddxTTy0ZKNtXrtCiocUrKSBt7NdZVMskswmxSwXo1k1K+9GKi+OqkYpAaSJ/Xw0WzsdWF6gio7mRRWZX/HSmGXPV/MU1IWbKyzqjGpS8M+W1wb5yDyQ6Nd4EKmOi+An7D4cPEIygRPdkkMJYuuYOqOd3QwMcMgbIdYKEGt1CN7eFllHDLj3bqgq/exbfeIs/FwOKdA7UuxuYavUTXiQw+eV+JZPM0VjS6qeEdFxJNG/tOdu/wQTh4RkXbVLHt8qeRS6FZGhm6fHUSZvhDFmPoDDcuH41C6FS18Dbh7Cv+ZMj1oYgO1BjDJycBwUU148zGihaDwO1hAwgI+M7SNvPA5WGz95sdXbSUfJNjp7dcAaTuboFaH3pF4AdZzc=","translations":{"en":{"changelog":"- Added `sub` field as oauth2 user identifier"}},"signatureDigest":"sha512"},{"version":"5.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.2.0/release.tar.gz","created":"2023-01-11T00:02:56.149052Z","licenses":["agpl"],"lastModified":"2023-01-11T00:02:56.205883Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"QaSu7cacv7asNOPQ+zHPa09JVfGE4maczU1qluFkwu2HE0lH0WvP1vmbxyI6A3reZSXjDtXPLWKfD0qYURlBQ0Ixoc00YU2nm5vP2wHnmA/88+wdAlXyjcPHqU3PcTb6cgcPPFURmCOlgUOhyPljIL0xVLEkanQFsR4qOsC5ni5CzVOVJCeSDGpMg6pXfllU7w5KswXfWqSEnH6V+8AjcAeP8afN9nBFgk3HLMzdw7l7IRBDOpeMM3m6DLQJr2SWBGGCfOKHFj406MDs/gUE2hY9btJ50hPvkEHe5VHdyLSdzqyQkrhAg2XyY3L7Gfyuptm7LU9rGKO1ZtewXuvoqvCIiGUTaOPB0G9DAACIGmwPj2BMCC6YYbA0R0A7VOLfsuL5nkmZdSDQNw/GWdAYjsfReKJSKIIZ7Bhq0K+ytpMsowz2IkUgyfsWJruN4BLxNFIzuwRfDRamA57L1a0DH42e++XDxkqE0RAl7a02+bL+zYkBoUvt/jqOFHKsWqUywqxp3cjt00HAhJY23WjUBbjej6yVkl7+DVJGHD6L5UXlBBEUaOuPB/T0J+0ozjptwoOS9NnENgnXRvwZhm9rdrbYkvObIRCZVkSsk/otEJTaH/kKxAR0fCcf92IbFY9QxfnMrzQrqDWD6Bplu2+ukoG6aGmUNO1/JbQBCrVbMmg=","translations":{"en":{"changelog":"- Update last login timestamp"}},"signatureDigest":"sha512"},{"version":"5.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.6/release.tar.gz","created":"2023-01-10T00:20:55.463099Z","licenses":["agpl"],"lastModified":"2023-01-10T00:20:55.518063Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"EEt0hHJhhV9Sze099PDKPX5MA61y0/weAQX54wTHppQMxzhkUkB/b6Wrr0GgPyrYOOGWE1glKJcr4W+ZV0qov8muElSHt7skEnHpOZoSqe7ZM4WzSIQsRHLjO4P3lPcobh6nQhrBkLPm4kCl6JWJ2+SFYwD6OkBV79eV+CBqTsWBExBL9UguedjiLKHV6w+1uCxRhxWiIqd0yDNYPVGpuIGD4yVNPy/4LbEE4rOYZlxoIMFaqmIwxnra/6I0C3xOGdlLs7TLCYU5uryAHCmHjgZbPlsllgnouyYb+r+QgaLebdbTjHopeyiMUnAoPK+ANvVQKdh6673Lvcj/msRSmvtBCL1ODbOuDn8EHwt08rkrNSws8ox0G5CsP5qBlS47RwqVnQszrBqsIqC8120265zD05DiSt3DK14LNTA1TLMx3SeU3J5061+vER9DixsAf+/QXaIUkGAAuXTpMqU44gz5sGV678bWGR34K0WjH6oZnmcYsSrYyZSEl5ZFzvfzAEOsvD5534awQ5RrHLq2JWVFyf67MK9twTVIMztlEtMnrvYDD1gOAjdmKT9CoMFw80IKe1xysif73PA0gFIDX2hgelg9DUXfXUmcvJFeHhrH0fwWmmsikJ2IF48Ga0QWsoWy4MJpEdE/RYcfH8JyRInUj0QDQRNYsFUMaWaS/QU=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Update deps\n- Fix(l10n): 🔠 Update translations from Transifex\n- [tx-robot] updated from transifex"}},"signatureDigest":"sha512"},{"version":"5.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.5/release.tar.gz","created":"2022-12-14T19:52:12.402369Z","licenses":["agpl"],"lastModified":"2022-12-14T19:52:12.512710Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Ib5cFWlrhd47BYW1t7vvMs5UunclB8qUNsDH41wVyYPKP8u1nsG7YkDsDGJNBOTiLQf7+i7Dz35YMedUZB9+sDAbYNLvtGeGJrtPFcxYoKkPSiyNwEAHtu6d3SiDQICsXYxXvmh3ud2Yp3eFO0szCQzWyxi19AmNzlWPiz5s5O3WFrYqCDP7rgxu0g+q4gmTvzjoYOwc9bE3AP86bLq0ybVwh+QOokFhCN6yGK+rDXR7S9atulzpdHX/uy/KL1+bNwDOryxq6ULZksWLEeWpqIVAJvRNmA99/2FcBCG5bOBReM/G8fiFvR/KPModwS2TIA0dRYen0Ii0RxcWz7dkq20vBC8TWCfEKG/yPKQ2bLMwX66QBEPAjAPWI+YGSLfmn9l+wP5jTsW4yE6BskK4JTaj2ZJa5TxaLu01EHfUhGq1w9+hPiWO8Py1NT+gTVrgxJGaout/bDSYxOPemb6ON4CbDqYzayO0wMhzTl8e++RfkHwX55pi1A2p2zsvyeeE2U4DVZXKhaTjL8QUxXKHbjUb1wLZUCQETyiIyODEU9nfDsdmpeXjhoWv3wTa/j5eHtawAH5WbHFCbaPG2+pbZOSzV6106CDIb3Qmcif6pF6TPVQY3un7AOqesoOw9b66w0FQWXRlKDq6eon5xomWIY9J9D+oRSWq3FV+QoBDun4=","translations":{"en":{"changelog":"- Translations\n- Update deps"}},"signatureDigest":"sha512"},{"version":"5.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.4/release.tar.gz","created":"2022-11-19T15:57:36.161189Z","licenses":["agpl"],"lastModified":"2022-11-19T15:57:36.218346Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"LCuXitiJYukfd1FO9YeX930sC2CDPnvlpIj4BsTBf+MqrhDBeKLh+Cg/c1DvrEPNdupb9OBjRVHeqLcCzk5hCzwmjIQNCyCV1sAEKRuBzyxArD6ArSswmZA0k4cUbjF8SByRqgdvR+ICzUiMhsGKgCch87+7Jhj+4W945chOvWWQW7afii5rReWkx33HVJW7cxRf+XGrpmU8ajJ514+EpsnJolJgztVHgZW4qtReZ3eNBgiN9Dtaf+/EVb0bmO0Td/zZY1D1no2WXFdALgWtPKvBpniGofoEKMThu/UpCso/0y7pEJgD6mUIPGZhIrC3EEpzQgjbj7OKwelZT86qMRCZ178gHuNY3NFVrsmRs/SnZJkYaWV4q1IgdjrudhCSRzNvEa2wDREA76rCJOlNnpvWlozM61fS/U6XN71bsMsBqR/NPENUVvGTBFfPeQF1KTWsoOjppZtU8tQqGP0pARXZQVNm511FEwLP8E965rwSj9aNm5BBnJsSRAijotdWmG1If6+8zZrs0xD4bfScmJ40M1lDTrXQmYYkof2jeUSz8trbf4rbkpQLDge3VfoJN7n8vAJ9Fol2552YUIPYwSmFe/zTxCP33yudhIalUpr/b9VIqrR/ko15yh7L90rpuvuKaqjCnAyZxHFB1oxhcJykOpAefzZGbxCNPdKvueQ=","translations":{"en":{"changelog":"- Bump v5.1.4\n- Revert \"l10n: Remove blank before questionmark.\"\n- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Do not reset forms data after save settings\n- Merge pull request #382 from rakekniven/patch-1\n- l10n: Remove blank before questionmark."}},"signatureDigest":"sha512"},{"version":"5.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.3/release.tar.gz","created":"2022-11-15T12:33:51.230749Z","licenses":["agpl"],"lastModified":"2022-11-15T12:33:51.288975Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"WWJlQWrr8WPqAS/uPlWAWZPEdIN0bUgvWyF0HVIx9nRMBwOXiD08mPRsRqyVOTLw15JTk+jX5ft7hLEQksSe4kCY4qUBW6i5I8gen7YGHWHyHp5oWwSGeQ3H1UpVh9sVGTZEj8VHUF7u5sK29x+P8jklSqFPx9ympb+VWvsA5zhfgrIVDHMNtpLoZ9nl1H4Hvz4GWl9vsVU+0vcIRw0h/pI5GfWu5SVOSDNNwOCBjp7k3D1EI0HvHs2fkWTfmDQNj+R7hM8bAWH24gw7vwuN9jDoKjgKYbnolBWL/3woT2RErG4dHIGSzYYquo7ckxH/VtZtpdLGVSQ990wHin6aXW/H/0blVLMvXu1JqeZwIpVFaqGt7EUf8XiSEppb7F1Wkr6waFMSsOL7TVFBJZmPcd1vjAdvP1YbRspLO0FSjDMZCXk9HpQGlwD1r9lQ1vKGEGePT7jgQcFjX9A8May8iy7DiubGj5cpljROwdnj9OS6xjOpgewhvD44beOBhh+BPBJR3is4x6f3fudU/6NO/WKXzpRxgXQsZERuTbtz00f0P06cBAhqvtBICIrhxQDSFhCTQbE/kCaot8i8lxiht9hERfeKeq0LAEynmoSynIHPzVYvLYyo587aG/rDZ9JdmDVtVnbv172K8/ysgYLMjSQJKu40bdOlTIrCiLaHV5c=","translations":{"en":{"changelog":"- Use callback url as client id for PlexTv\n- [tx-robot] updated from transifex"}},"signatureDigest":"sha512"},{"version":"5.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.2/release.tar.gz","created":"2022-11-11T17:38:43.647401Z","licenses":["agpl"],"lastModified":"2022-11-11T17:38:43.719787Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"oKERLITue7kE8TusuVWdYnTMhO721P+cUR0J+1o/Dv/70QBX7HYlXzCVRgyi1lZUQqGitSyJ2U7/wsExswz1bbkayviAvVblje+ALZrgOEEYG2y97JO+Ji5ZU7DzoKXxGgAKMYMnMqpW8aNDtQcowlw/9m1S86mdfKqtAyRrfsMwIucyMCmBg48e5QNJg0/xYPeU8/e0wgy5NEPOTELzKJQ0/na6wLQ/b/l0k4UItEOv+qwoQFlKPmvqf+Az+gZc0R6JTXzr9k4T2UOJozUpwoHHRrO4ZgCKAUoRnxYKp5F5y051nmmLR1TiFIODRQNCGWBDJ3OYON0u17f+/fCzkFXnDPhlEUlW2jEQm/qeJKpKX2L0FCQjA88gWmteTD4sP6HnvXgF1nwL1Xk03HSnSLc9YU5CNgqmeLB++01MA6Xb80dmfrWjGbZhmvlunqCAqyPqKm3QX783worTeUY1+7GkMdyPdACKQ/UwEw2bZOlKwcDk6Ui37B9Y1ulboCVZcHdhKwenKjnUQIJlYMrCbXcd+Nux08kHB2LLx0P/Ddl3iYsU7s+qryQhMiW6f46zsJYeAU9eh6OQdPGQXCTt7dVnopBh90Jltzs60lAteD9Fp1K42tiRMMz7lVQ3e9C8L3Yy4gIo+zki3pv17B28vbslpJgQw+0sS/oU+7iEhBc=","translations":{"en":{"changelog":"- Do not store pin id for PlexTv"}},"signatureDigest":"sha512"},{"version":"5.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.1/release.tar.gz","created":"2022-11-11T17:32:06.857313Z","licenses":["agpl"],"lastModified":"2022-11-11T17:32:06.932514Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"iVCFVy9YVv4dBfhMbWQRWH6vDxREZZTTI/BZiXlirB5G9OEov/y9T4seLQpkkTv8tDgXdS0b79kX9kgJW0ENUhq3yw8tvyjDdjwD6TC3uTns4CeM1LZMekwyN8vmJ2qFOnxL2oDTS75IZADLnkhql3+ClkG8DuCLzuzOY0EWMn/bEDm/Wv4KSPfebKm97NgAsQOYVOm7F+DWL3mFEItxO/TcfbVuPTIktB+YTaEAqgoEi6JYUj2UvDJ0O3j1N9KnBgtdpUBWt1OBeO45x3qKl3oVYjaAOQkP9uCIxTIVxZSHGe1oobsIF3waLyRdarPa9EvLfWagBFaSREN4/MAwPd+DWk8s3p8t8P6Uxu3ueJaQZsMdmspB5q8Zzx8XOCaylf0ThWFf91xeGi/O8IcwfSNDfpv4O6Tyj8dN+QTgqxgKMVB0ex9FAGyaiR+Qu125cSmO5gOdot4NXBQovBZ73EW70Rpt8C/jF1+SwDq0yulzE2Ej1LI8bv+iEOCJbmi043Ga8+SDEWWAmnhF+pbSYzX+NoNXopAHpL82+Z9MrsA12AInJVxXSsxXeQMi0Wc5HthvSkMp11XfnG6TMp/sV9a+NQ07VSK1DpO8zixNvmn0y52VQoc5aoLHVDMfmeh1E/ImseUYVgrvxA54F6LCM7qnmG70mkqhIWPWl6IscUc=","translations":{"en":{"changelog":"- Do not store pin id for PlexTV\n- Fix readme"}},"signatureDigest":"sha512"},{"version":"5.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.1.0/release.tar.gz","created":"2022-11-11T17:03:13.849656Z","licenses":["agpl"],"lastModified":"2022-11-11T17:03:13.900754Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Scmew5XsGMqmcvJZm0/PZBby1er7aU7W1qM8Qa1VGwzfjQ4jO9OIAwFVXs1qnJsLenVuDZ18iXIE92uzqHfmeoBpTQzcLOY4AWmHJih0ejLsHapsH5VJ36lo5HicCIae1auWk7CIFKnpnedVytdUub0TM4vjUIYEwyVuBCmMAfm0DcAbvazwsIHRWHigzSgEZpqnnmh+EwbXynmri5CodxSXde8OFp4fvuFE9O+hqoyUOEKTzdGaNgHHwSqj05g6Uzcy9lsa77dn+TxLpgkryn+bJ1XnJI84H0aOt+RWO8Nq6voTgujHaRzRLYjkjL++K7/04Q97AAu9qpbHzzZPORshLWh484exSZFnMWtj6VWMZPNM7TMQ7/kVcFcNNUV0I0TF4QZ3qf9WAuclHs3T0R9eqrSkloqhJ4lEBf9/XUiyPUk1l3swir7eZgAPRj4EKcE2uPnt51s1xhDjbG3DRJmftmQDsobJ13vNwiIGKD832qDY1idgMnJvZDmW1WOGnxI7at04l++ff34PW1+x9HB6AfobBIUTHspR8DCOsDDCoXiodlEtbPdkpqKuiLxEclG/TLlmk1rVkluEQx6dJ2al1IiJqK7KsBRQG/mNEj4NLUyUrM8spueQlyt8b6KwH7KSzrwYTZcJuU/N+4Cl6Cmsp5KotuJ6X1cbeMFSsac=","translations":{"en":{"changelog":"- Add PlexTv provider"}},"signatureDigest":"sha512"},{"version":"5.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.5/release.tar.gz","created":"2022-11-08T03:37:08.016320Z","licenses":["agpl"],"lastModified":"2022-11-08T03:37:08.074088Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"PTo0xE51OaJJZJDHJeOXrVisl+cvkLzNaU3xHT7a+WDLg5XAhiEW8kmGfCsyNFFSbEyKMai8QkMIMb6ULKviY1+Eok2X99l8YD9ZWnNOTG555HtPIAuzai9obFKxJhNipUjdAP75EKDFJ1oYMBEtALvjv2oW1k6T4ryEICWcxZeoobms3eSrG0+iD57eWoJ/WPcUwoJdphPlXZqIe/PN6h0gqfRey/PeYlYKPe8ZCt8wlzHBiYaZXW4KVJXYbwQ7qS7CU585n8JqPLbFSa/3wOHmW7OHdxuLMXNZueEUJtKXui1acg5/JpZdKktnTQZY8oA4CYEzRxsxSB5nXsAueHN+eicxuW1ml3sjRnXEZ/eeN9mgNm1toCZDfunffYzuZhnMzVWG1OMEWqVm/wdm6n2NVY0fVzE5zl5D+djtD4zO5rSlRLAMDGzh3YrYuT8Toa+XkegQuh+S+We9LezN7hX0Uq5uLXtZs+qS2K93d7n75ejkI4VR2vtNjmIjVxqc0BJVfGOzWXaXJRqdj7UYIU9v73uyA3XqU8+3sWDc0oQq1N8+iZOo3huMXI1mM0eMHgNLrXYVNxFAC7b014yBZAmSkqqU0FFhPmrFWvK1zK4297MuLCvaCSdOtmShjQOkT2kFBKYft0QaXuOidg/xsvJ2g4erHy0Tyyk0oGWiJz4=","translations":{"en":{"changelog":"- Bump v5.0.5\n- [tx-robot] updated from transifex\n- Downgrade @nextcloud/dialogs to 1.4.0\n- Fixed settings checkboxes\n- Update deps"}},"signatureDigest":"sha512"},{"version":"5.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.4/release.tar.gz","created":"2022-11-07T13:50:55.262592Z","licenses":["agpl"],"lastModified":"2022-11-07T13:50:55.354039Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"VUSA2TaeCypVKveVxueyZXPQ8DBFXHvcjbAmJhWkK7NWagR3fKTnRoLS1ZAUdq7v5q3E3KMTu1st9ypD8vk4jpGYmVeq6WA0XyVYjP8JfMf/vjhv/fKK2ttqAqisA8451ZSypJZrLuoSURYbKAyz7wcCrhs/SiV0M3HvKnT6ZtD/lkbM+Rjd9wba4gz6hD0WPtQ6VQI97h35VG5YBpZ9gN52N+/8ngQEMIM4TJKOaa5WQXp1xlU2jiqg7QDG6KA8MhNL+eILnTXvmlzxbj0R8ZPasS2Bj1Nn6SWzzR8PjjF7W0zMhCr7ffU4TbcC95NOTxi3EdGfYApuQlcC+WPWzy2kZBlCffmoj+hFE2NQcqpf1SUnw4VWt91uVqWYQw9ThDET0LWNpQGSlY6L3ana8BZEVXeR/O8D6aHnZJtQk7iIaS7OXoXdz9iwA8CPIuBcgiQzHAfQNk+C1C8NZWIZwbVtZoYfpnV2jsvvDhTe4Ix4PoiXSbwmo942fQ762E/SL/wCsq+46mjEh/LBuMBb+yna+ALCSwt5M+4GVLaxLrpZBr2ZVenIaMAfZA2q9eiJ87+ibHti67X9Se2XmJg/n26g2JhHffK+iNEOY254WM8iJGW0SuXjeDIuVutapHmECk61o3WQYuF4nqfco8uG3+aaxoswwPZPTGKeeYpNeBQ=","translations":{"en":{"changelog":"- Fix social_login_auto_redirect"}},"signatureDigest":"sha512"},{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.3/release.tar.gz","created":"2022-11-07T13:40:12.794063Z","licenses":["agpl"],"lastModified":"2022-11-07T13:40:12.977558Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"FxfPk4uCcslaahZLCYkIcX4WWYKfbDSiNmVg5XA2gyoRstUexaXJRRraEPCSS/ol9+CZ9e5iAw5iu1Nv17vLk6RWtsxC5Brw7xURdcFmifoFiAgVZiyAwvEAa4ShHRi8zKGdv5GW8CHA4AbQ69usUKDCjjLDn/sWKlAD16SarGRDr+88p0ag9coJVBBUyCC+NO1Yxx5IcbH86DhQDN/0/abNtiaYDbi3Pkr9tLVO4Zckfb8qiPUEj4nti0jDArmtql+Z6OqyHvJoMm3VUenijD2G2dygsQslvbJVM1/S1lgGbj2U2rpHyjUTgFjeifK7L82zdEM1uRHt0tB4lWb0nVkceWBnNOBlH0ws3hO/q37+AX5jkcZHKCrl+gECY8etftlzypcz86F3rUp6lvGHqgjdWuObHbIrvqYZngyerI/17iF9O1ZFBsF6BJYfGVC5jEuheFgP3FBu2HklbH/gi9h+w+Z8vMSq8gPFDFcX2OMLpKRaO5VCXie6bTdyNXplyFfyluc+UQ/XaXpGV+EzOBAIOwzXsGT31tgfKP2B4vJTyWkRheExL3pWNOitMheVyeEZWGidflBN1b98oPUDSztfq8uV7Tzy+dlnMnaUaF5NRIRppt73cQsxkondUX692v+H0DWi5zYSSXkUB2rUoZdDauWbuQAes+C2tVEWlX0=","translations":{"en":{"changelog":"- Fix social_login_auto_redirect\n- Cleanup"}},"signatureDigest":"sha512"},{"version":"5.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.2/release.tar.gz","created":"2022-11-07T10:32:30.920642Z","licenses":["agpl"],"lastModified":"2022-11-07T10:32:30.976598Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"m5oIp0kRFjcG04GORUrtaiMJp5p4Yqgcbm4EXNeWhXRmuus/5NZzr7dLhVuz9nAHhBe0vH9ftTXdFWGH6x8SRCVagb0Z8TQlLM0V5oz8aLJZk/9krXVO5dMswwtUUzLakikVvxGW2p+rQmjgJJxVZ3XiIksz82ZMX/fGesB2m1zh1QZX4grvzzhPtv67M1rdmUkknnpYZCaQgMOUy8RLzxsZrF9gtClawzwM9yBG7/VHoe/C1D1zjWbtGCXyxm/k0p6Sq77QjdbwoDrV9H8GJFPKQExySgDYFm/b3qyYV6GuOMU9j0EwdN0rIzQWlm8El1gOo1nXItlaIxpnOxjBvbR3/59gI1Gtcr+Clj7JFG9aCN/v1NAdXWQmzlOZ/7B8KCPtRLPJxlX9bILwJgsvIfj8LPmDaW6Txr5iy02BWmaZQUCR6b6Si4ovLL/E0Z1GpW+RNeVuCtLe7XuMlKIEA0eNT1nVf35NufOa7ZT4eUwo5YR7beSHSeGnGBQMYTjZD3SQqGmkA/OPWJVjTGX5u6/qZqBhy/opdNBRbQqYIzQs9Qiam5Y7lKyegllV/X7yo0YoqGCeAU7s0bSKt5b/oxCKJ2wHwqltSfVieSilEDMm0ydjQAj9cL1ICwrydaLmXvIad2+wo2qDlEYvXqffJkurYDnJXHhYcYbDbED2VKk=","translations":{"en":{"changelog":"- Fixed custom login urls"}},"signatureDigest":"sha512"},{"version":"5.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.1/release.tar.gz","created":"2022-11-07T08:51:51.968410Z","licenses":["agpl"],"lastModified":"2022-11-07T08:51:52.025179Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"SyXNfyqOGU4HfDb5VIy5SGW6wqXLXRSzyRO7i41asrkEbT/+mVwrglQjxnGcik4iyY0SoYv9AJswK6Qsr1/Vtn8bdZPgfFZWOoyTIN8N+3hSqq+7zzcxR0BNSKh8N3hH9IFcLEhtWepUegDBUrLa+TjhCel32IWydlnmmFzuLIkCPsDHJHesR8Ue0YqZS5/DGxN1JL1z/uHzdgg276SIkEA+v4fGePkzSXPf5oHyYPgAhkzmyUkSoFk03PsHeuXcfMNMnnTY6m+cPQJVRTAuvwTfuct45ty/r5Jjy5sA84Gvyu013BM6Xnh9a/Mj7/lu6d07sPGCfHA23hra8jtMjW0hwjo8/HTOg1PoYb/E1ngWkQZmgBT+xJ/+LiZLP0eo66G5cB0CTyjMpbLYaVb7aDfeQBOgemQecmQyuukMLuBjGEZpdS8KrlhBs/wjJ3Hnf0fXE7j7ZbhyW/JxU0LeofWTnGiC2gPmYP0gaHuER5XbY94XRVZ3KXHO6UdQuI5wRl1m8bnTZS9NsZAFZ61qDnIeU9EUMGGBE2Y3Q6VAxXmEwcozr2IwuWyYzBsLg36xIOH8Sgr26CflueCfTRLpag/y10KfIZSNF8xnlGgGzqTCrPt8nm7GDa9ha1YYxHXQVSDYFpptwjHyKGYDP9e/XWyribKEDM90Hy9G75JHf18=","translations":{"en":{"changelog":"- Hide body on telegram login"}},"signatureDigest":"sha512"},{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v5.0.0/release.tar.gz","created":"2022-11-07T07:01:14.457242Z","licenses":["agpl"],"lastModified":"2022-11-07T07:01:14.516185Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"FfNLAAZxEM29AtfbLxadEtVMjqxIU99yzw41EGIloMNifn2mAHttGN+P0zv5Y5YE84F4iaf7uw8gbNPMmwc6PDG5uR6YtvwgiOsULdh16Te3R2fwp5xqsIA6KZnQZEhzCiIrd3KFIezseewzzMMYpXQ2EEf1jF+HUqnC9M6XukYa4GZpucr37U/6K/hCOrlh9u+c4K3emFYnElSgWttoGaU+Z7eP+0Bms5nDqxbs3mdAGJm300nt+ah2hw4/Zgn3QVnEc9sMv5oc6mc0VIDXV9EVCVS43hOLece4O9KzmYKgTsXwchRz2cNu6aWHdf97k7rCNijX8s6dYrbcRd0zWAs8kRwITAvtvJ60NOg7CTa7J+tVhxXmkwRWf33Iaqj5NWVQ6QPZ5DHRuqXOqwJ5B9mCG6frNTOnxqz2MHB+5789BMpuCoE/2xJxznulmcGS/NdVyHlSEZUNl+gdwSFTp+VV9xefAQwWmUTnzT06yUKBt3wEIHpoXXwyO7/FGCecvmm+bZiA23QWtcrj4wZhXoI7M8ZLZFVOOEy8O40nODU6OrnRq6bdoOjvLCx6OpltNDnkvxdNIpXz0P5qmr+5TQhtqQai/njIDnOmUdnSm7rUuVNvy5DYodiuECGkcgHvqgvD7KkW5UJZ4jJCinq763r6cyhvuYS4y9B2hYsY5q4=","translations":{"en":{"changelog":"- Bump v5.0.0\n- [tx-robot] updated from transifex\n- Default telegram button style\n- Remove import dialog styles\n- [tx-robot] updated from transifex\n- Build js\n- Fix \"None\" translation\n- Adapt for transifex\n- [tx-robot] updated from transifex\n- Adapt settings for transifex\n- Use static strings for \"t\" function"}},"signatureDigest":"sha512"},{"version":"4.9.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.7/release.tar.gz","created":"2021-12-27T20:01:01.662138Z","licenses":["agpl"],"lastModified":"2021-12-27T20:01:03.273108Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"h3yq7AuHpvBxgnfB+yh2UV7MPMKowcwyTkDJEVntnmwIDHfybWTNWgbni6Wf4/wKrEHlGdwFbI6hCfoxyjynHRQb3TSNlO6E/DxIuY0NEn+HsWuxMomxxzyU/sGCNMNaIvHx5v0a2EHWtavsXm4LNHz8QHvmeQpdcvhyjsVLviz67WcGCD6DSEEnIYpASDnKPx90L779PKx+ZzoosTQ9V55DBlVNC78rcBDXxzmPx8hzUEGuILGCc82SFzF+7nORqi1mE60suvsmNDmRDjqo2/VszAlj2AtNjJiOcOf9VFWWmZyeoJbh4uIzkWD3G+dF0laSRcnThWBSY30/ekp/LtC35MvnVaoYEeUydaPxzkhh+XDzasKYSKD3CrkxbgX1u4EwIDqKTZZuzLzJNKcdX6W47Cck4pYNfyW7Ifp8+ESmSrwzy+ArCTKH3gPly3ZaW7AYZYIsYYVAiutyPcddPSEqwiRRPIsG7hKGt1DNPK1nvvkH1+EaXEQq3gXHWfbkMJMl5rJP17vSERbg/Q3IFTkd7+HrCmCx5vZuC6eDPvcjZqFiIqU1I0wRcYr0GTz0qIyD3H2rY1iEZX646H/5uVWXQCUh7hDZzMGzjoCweFGuyGvuXt3/YGWZLtbob2fONyL0CiVKJfT4OjWTWXLOLOazgPgu5t9AWMb/YBGFcug=","translations":{"en":{"changelog":"- Preffer displayname_claim in oauth2"}},"signatureDigest":"sha512"},{"version":"4.9.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.6/release.tar.gz","created":"2021-12-27T19:46:49.193936Z","licenses":["agpl"],"lastModified":"2021-12-27T19:46:49.958607Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"IPSGhtmmNH+T4o5HoB3iWWPgpqpq44bmJlF5gb7OxsB8rYG9GMnuloQDGATW7jFUPAyy2tzVd7Wxnz26oysoR+p6YMgyWK1PBSdK8RIrFHGzYYZO/YG8b4o1CV7kZHMfHoOt6/LCa8a8IeIJ5b6g0Zx6Ci0OfsS6E4dRiXbbqLVygQFN//Z8QYqEw2PLa/X/MqKtzAiZMZxIQfzlaFr3ejdAQh/wlJikPYcfaePk8MOuTNPQT5cS//vnMoJavEC+ca0MloQqnExauA2cARoieaCGCy6n3HJ3p2CRgpjh0M3/lFdcgXFzJRlVx4XWLJeca3BBWfj3/11j7D85gINnZC2bg0Ed5XgfvSOy2HJ78mtpV2j5XSbMJuF8Zn8pezTxJmm0rvdn15OjHJdAcrOxPHEz0BWDEQ2ZdZ4q2RxLeHDPkoiYvEddDEPTVvAT2YU1AD8pYk6WBimt9mhHl7Ch3KoOS9tHJONi2ulhdVZd77kqSfsRPFI/lvIdEehj6CWL+Jy1xzrsEpexNAL40jH7HuzYdRjx4wEBUpN0RwlR9mwQpE+RzkL+tqsWhKJwLg0Ip8GL/sKuWpHtD08jXEjF4b0OWiMafu5mqP9kLO8I7jXxI7WHACKTa62s0U2YIeGKgGXQGjTDmfS/xjRMglAxrG6NDABrX5epllvcIne3KyY=","translations":{"en":{"changelog":"- Display name claim for OAuth2"}},"signatureDigest":"sha512"},{"version":"4.9.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.5/release.tar.gz","created":"2021-11-24T12:57:54.423577Z","licenses":["agpl"],"lastModified":"2021-11-24T12:57:55.317577Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"OZmEZGDgPL2i0wZSS0fFvCpTg9VgSQRLNCGOPB9yT28+D284FlJFCAq5n2YqUTccpMghy4WqRmAlxm10L/VrXww0BxH66GOq0pNe7fVj476nO+2/144fWDQRph5Nuh93np7OMgTwolxEmG+ro017gvEupWm0s3Ww84gj2Vrvv90zr9r2ty9XZPvwDDOUQR1RdVPpNGnF9woX72HJcsmYw7pb+g6N0s3Ev9iELfhJoetLN0/s52WYKK+hamhXRLZBS/NRdC1p5g+O5IV0OzdUv8STka9qlB7kiaIZkiAlaZKu9hKr8lRmfUjhYJY3MMyfwp5wLd0gyC5/K7tlsD65R2JqxnBBESxy0Z48VN/I+wbrRE8h7s+X4QNOpXwEysLCRZAZDcc1RvwwMA6Zn8rJOosd2qnuGxHLNb4JqIZ1RKcRaxKTa6R2z3jL1wXEKskWKogXmuS5LakKQjMw8w66nkiEm/tIEEA8VTHvkZBsBpnHC3xy6V1CtKW2ljQhDuFzYG8NnTaBBTaKayC8zupijSKv5KHGeJlIUmJE5Q28UwUeTkiFLTeYTut7Geo/Ir5oh1yirtLdyCjKxixHQrYdcInIjmHiH3M1FeA+MrvlU9wB35ZifR2/vkbx2MLAuq97pOM8mCcprNQnC0pRkY0ZsEnbyN+ckcNuQBwMh65IG00=","translations":{"en":{"changelog":"- Fix custom OIDC photoURL"}},"signatureDigest":"sha512"},{"version":"4.9.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.4/release.tar.gz","created":"2021-11-24T12:44:27.415160Z","licenses":["agpl"],"lastModified":"2021-11-24T12:44:28.806515Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"II/qrFnA/XcgcFuHb5xr+Ty9AXWzf8N6cW8XBdRQXLwxliENmr6P1hqUD0FCEPm3E7IjEs6nIx3qgQvMuNW/uKO1/a8hk1V7qMbGQFrGyshAjdwdVrQ9VR4m8CcEXz991t+Thg4m6D/z0Yvq572HIFsGHHuRxDRNItbNahJ8VczzD/cz7tKXl/1QelPXzLKxAVEDbq+bcEOCyitS9lnzjB6eHtq/bqB5ON627VPmAtiwygLPhB79nXZNluvGwbmO2VxtWaCNFEFj5hStGnrb75Iddxkg2g0NsUQ2y33HPYSKDIgHziopcLyIUSPP+FuwGC/+50/qmCLJeH1LP7v7mr+r/jUA8HeB08qb4KumvEvXb7/M9wi/7/i+SMAqBpLOFfzE0wKikeLDGn0ArHjCJfVSC1rdhlkSdT+W3h076oTeJ2mgmaAurVt6Wu1nEBZpmYgNvga64oqnFG59vcsTC8x8QakxyiTJnI9Lga+Mbae7FPZBota7BMuSPnjc23hr0CpKLvHUR0lwM+yW7q1tztmwIqEVI7+PRIHGL1eD+Js6qFR5+CR4/KLHyh1xKM2vJdBXEvLECZ3IKGLoJ7szcZz3o4EP74S2iOdzXrawDZBu4LoO90c5oP2nXFwU1OQ3o9wE3NOtUkSxc7hCBTSD1L6XvOmR7bTHt2fGCwzCsb4=","translations":{"en":{"changelog":"- Fix incoming photoURL as array"}},"signatureDigest":"sha512"},{"version":"4.9.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.3/release.tar.gz","created":"2021-11-06T23:18:29.861353Z","licenses":["agpl"],"lastModified":"2021-11-06T23:18:30.131638Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"QgBD/GOhYL2j6Ypg+bKSaLFvXrTddd4Y5Z3fZ5VGZXBtN42ZckVPhZEju13Mvk6dvRdZRm48QqBYZo5nK6E21/6Vcbk4VouDb1OxaOpfXCdXxbfBLldjeda2BoladRDR9hUu5mlnLPmiKrcX1KllNTaBqRXnUc2Boddd/viG9qtUIj2JZAfom6e50MvcyhznFMGvBWdy6cF7sEh26l4rAghV55DpQKHXlSjYQi2OpkjAXOEAYdhox9FhiXEEmrJJDI9Q//IFBNuTG+dl29pcn50SgRxTGE+H6LeTTF1/D/upExYaWkUW4WB9Yke7PBO5kKIER3lA/F+hRUuU5XexWGVJ2+0WzI5ghyPomJTOxYi9s3iO43IZU6D5wqx5ZnPydkmvGx1OalTCoip3JLo2mPgjr0OX1/NYTecvTo44I+ijsdx/q+/URJU1wtoq9T0xB6gpVZBP/Pd7OJ5nUZ4TXtFHxTJFnvpuBelT2+URECiqdwf2Tn5Gt9KtVU2BJ0lER5vTAN6iGNwJtCjZJshM+vg/Xt0viTp+gc3SiuSFtB28lBWaHehvcB51hIFnQ4BEmiDgGPoMWZ4oU0Talbq9EkixthZRBsBb7rWKq16sOF57PZzU2KKksz6XtSbdLCpXb0SPrEDo9rmFqrNA7OXnScv/f6Y7ZBe64uDb/cvD6Bo=","translations":{"en":{"changelog":"- Fix deprecation"}},"signatureDigest":"sha512"},{"version":"4.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.2/release.tar.gz","created":"2021-11-06T23:15:36.592733Z","licenses":["agpl"],"lastModified":"2021-11-06T23:15:40.054735Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Z0hqWrCt3K2pL3TREWWYAZAozIXTlwILJJULmKYfrrklaiG3S+6kan7wDcqXn3R42hgAzlOIKG2rp/OaFbqzufezgwBNDYa55yqqeNSe+EVCEKl+Ubi10896eTfZynnP3vSONA9MdvrzxvMhXXFzLS7CN1SsuFInW16S6yYCp8nS2M6EUbWXsSklEk8DZk3CopHU3mefaav97SiinhghzAP43zsJYlDiYFA1QWerFxJY4E8LtrCPJzhi+JhGMbbhbv5i8KxCup9a7cVaFd9JBdGM7L/eQVwkW1pntQ0ftdNr2YjGKU2NZHB530VsNaauDSBp25xMu/S0o2BI7wy5y5DYw7msUYCD6NX2E7DWOg9+yY2OHJ9I4pBXAqYh1NOdATrbws8v4CJmYWwwnnxHaBnMbzFAahZeTk7Kc0QXL1Fq7/iiAOADWnLo1qc28OyjvOjoIZGamxQ58aWJQSraEAHME/FBI5HSCDN3a2ze4gK174tM6fp91//BWhWKxE3Hx22aNvWpz+UyUkm9+8oSrGcoqm+yo2h/+ejPqCwi4YXeVrwjgskMQoRfTeGTlHh7dbz3o95SSxIAMZnCPIvXWrFDi/VFnH52RXmnFpBjXsFky9AEb3VgIJsf0VWJfIE+PaEY5Ocyevk2jSZfFwP+QYjLYKRswCI9GJyIMX3XkhY=","translations":{"en":{"changelog":"- Bump v4.9.2\n- Cleanup deprecations\n- Fix social ligin connect in postgre"}},"signatureDigest":"sha512"},{"version":"4.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.9.0/release.tar.gz","created":"2021-11-01T15:52:58.230763Z","licenses":["agpl"],"lastModified":"2021-11-01T15:52:59.797128Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"aHah/Ez+/dxQwXzhx39cfXacbZhWj1gMvKDE9qMmqovRh/8TlHijwI/l2O433YA9mGHnLz+IGzAxMAIYA8MxjIzkiRcRr43uvpsuCLD/2i19N7NP/2zVOncFvB6/TUBRwvBzrTbZXRWMH5Ra82f0O7obZ6FC/Ou/vn0C2P7FeXRKAKhmU5zXbnFrOGjO01x77FksiaQTOw4GDrFxQww/JX7wSS3fQEY8R1SOpQgMJOXYGvcXWqvbyrLiIjf13J8bIcikA6Hvue+FmoqnXj6fO86deZMf5HkNFZhtE7JQ/F0+9wwWPLuplTBs+fcueU5hqtE1Bd+w4yeCYqbPRF0SmeZs6VMLPOyxAhHCXphPMpvbV4X73lHMyCL06LUX3AXBJe6U0hUAUvo2OiKWx3uw/6dSZUOlaSp3dt5GZFK6Tj9/SMx3JeWY2R/91ZFW9Vr9DdiumQZmC6SDgAmZ3uz0y8H5v3UNFiXTPSsefRlgVjvn3vofZY2Dss/D5o1O5WvC4GGRFle0+PINEnK3TEWa//hDISek+760KTqSph7skph5cPdbk1QEBKPhj68jiKG/gmyHNZAzj9A9JsGt9+uqR2BLqoJNsvsS5mvLpmSVTRF5KGrVoUkoNNKonRs0uEf3DXuoes6eATsJQmkj09C2ONJarIROooslXDG8Phx+9Bc=","translations":{"en":{"changelog":"- Allow proxy for http client\n- README add\n- README add"}},"signatureDigest":"sha512"},{"version":"4.8.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.9/release.tar.gz","created":"2021-10-23T13:25:25.166234Z","licenses":["agpl"],"lastModified":"2021-10-23T13:25:27.106342Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"pZEKFlHHm4fSUANozY1xiz2vek/hRTwYGl+gyUC4/eNyuxZuVygWEM34Kg9dZGOlTtNpewEcIuYJhchQntEc+1qN8Hq43Z4KDuy0av3oyj/7mBH9SkoqOwP3SeRROp5N+Ocn0iKFPUuDQDMeYKLrYqXTZLnq0kO/lp+K35201NM4iZz8DN1/B+XVr6pPJd+ZVUu6rh7XAxYrNwhtvQiDFWZ86Y7gZFeZ+80j5U5iU5s6mYGvnZ0hJaTNYvrbdzgvhn/y72AA6cLo5JOx1d+LZSHaR/Zpie3QAj50b4DMAi9d1ncwHbqKY0tHtPDfvjDi7OTuS/VTSTWm3JTvF1En0jB7HVGycbcHzA1OQoQCIcBvML/cZznhL+VrvbSbjqKPOQu+yanPMuiY50JpdKNDi/KcUUYhlrmGfIzejygxzP7nzILg7ckWB+FUlng+ojMftgv7mNYPk61AwG1ngF1t2kPoie5BNIfRRcTKSVcBf4Eq5n386oBnzkfi1/Sb/b7HGQXKDaaEC8c2kASoBZgVFKfG5ApMOG64a8cLxCFaGijpQp/95nzgpUkEIrofRhriU5chRrJ1E1rWs8cg2siNVhjLGDdpr87jB8GZC6Y47iyn2StSy3SKwp4TVHLLI94Z9Uq16bNZb8a+c68FUTp/lr0mvxrv8vuxTE9h2L2XHJw=","translations":{"en":{"changelog":"- Bump v4.8.9\n- Downgrade htbridauth to 3.3.0"}},"signatureDigest":"sha512"},{"version":"4.8.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.8/release.tar.gz","created":"2021-10-15T17:43:45.997898Z","licenses":["agpl"],"lastModified":"2021-10-15T17:43:48.309889Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Jxh3FZl5nDjTM+LYNtgoqBvsSpmVyDdPIuiQLe/ZYG79lRyuzpgcyhr2sp8rRlaIWxK78iEI/1XfzMyYp1D9xQamjk1OUCflOYiJ2CussJez5EYVDjnktquYWGrINDsxk+kpPsL8A1PgV4Bo4f0NQkPtlv1IZufwIS8t/IAnAH5ai0qxwo1QVY51JX2EqooJCzUWgUQoJybD7Bxo/j8R4qJFQFS9LDgLzxnGyma8/DTYXkDA/YaCT5Q9MFcreeHkAqQxmTZnCusN+2es+LOU5Tn1rIIoWiZGWcBu1m1o170hoIbhJ/o2ww0zFhAcNxF87Jx7Mz0XUWKV972PkMd3+GVjdud5Ax5/fldJtdLj7TKFpnaEXof6ObxBJ10/VFFoQwwSvPW3zawBU7UMPg3ipDOaaJ8rOQd5h6DOnQjuPRJ1I0fC6iel7GyXq+t/EaIHKTA6MaOntzI2Cb26+/B0CV2Rd2zOXAvhxQcLsD8rOxZ9YXFe2MoX78NMCssP9Nc1BZCMiRAVJIOlt2BJLt5/tLt0rFkGEZQ4Riu5eUQaGSeZPjRkHpk1CiTpLzkntrRWz0eXUVen5mrvASBZcnq5nThgaiJJhJrWRb1cg+Ay+xqMAvgmAwE6dtzb2rsG80jKCAhsmOFCp1o4egQi4NKOjyR1wQZ7/x7u0GlDqMfKaK4=","translations":{"en":{"changelog":"- Bump v4.8.8\n- Merge pull request #305 from pka23/yandex\n- Add yandex provider\n- Update hybridauth lib"}},"signatureDigest":"sha512"},{"version":"4.8.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.7/release.tar.gz","created":"2021-09-14T18:30:45.362706Z","licenses":["agpl"],"lastModified":"2021-09-14T18:30:46.725576Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"TfMiGRe+QPsFhYVFpREPfGeZarjUTMcLIGEbM1cPuuGVbnK8sc8iaH/caAMFEoPQ9I363nMfmdcvNje1C1wY8Fk0z7Qq21hM+waSsBCrGOVIQDgTDX1kQMi+xQe0CcXdVNVuLtzUOnbtBB79v0HtPSF1bMgawfJZ2qimiUX2sD82C0XvcteElUT/nWx67FbyrDaTGp4d7Gww89D85vOfP+wqU4JuSE27wZsbURpALXLYiHMi18avd9a5Z/fzakYQfD47CcLHNSAwEQ2+fpr2BhXDTLQNDEygxK0tPazJa07hHRk9z6DNG0cqOYlQw2F/6hVAplbTC2DlLYOlct+bzAv3pGWuzqwnJDZxxlf2/7QdVaGaVB6PhLTGkRCnYVamcVu2a4hxymsFeqIYIzLbAHXgqnTO6bsfiW8hfxcPdmJmtkt+R/oQC0PGSm/gxscLJuYLC0fSSD9HhLlnIxjcu7394tmXICisYngdLx6fRT2Q0XWiVxKI79zqUkUQXrZWMrbaUaVXVNZac8DDEiEophNeLqdSdyucpw1oliMbwYQxfPOMEs6E71SuMrjgkIdAD2E95NwcMpdAmuDa7xGbL/RRDDsmmfR2Q8NQa5cLIykWf3XlXcF1h+grKB5dneWu1+oz3ZcjbgGeGoh6mIH7Ep7jqUBQd/pvJAXex6qNSiw=","translations":{"en":{"changelog":"- Fix translate"}},"signatureDigest":"sha512"},{"version":"4.8.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.6/release.tar.gz","created":"2021-09-14T16:10:42.011810Z","licenses":["agpl"],"lastModified":"2021-09-14T16:10:45.203936Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"NXRON175cvpporCxRL/geffaEnMlCDkozpEPSAgj1ZVsitEuaw/o9Yilz6Zy8MDp49w9f231xiRU26AhGszlbZkfIb4ZLSr89qL0QJr0/NjlFHIkzEmTLQH60lLxt08kd9MdlQv299nY/tKFLYq3+TkzWGxplnA8Qe3klFHXnHzakPVGAM0yk9MRasjBcS2SnpvB9ykH7ddOX6mXm0K7hST38sEHh67yX/OIU+liPoEyJSQ1+oCNI91ohpFDg1c2DUGLQbjHjYm4rQpH5hsRI4PMtQ4fmOm+bzp6tbCdCf9TmDZxMu3cv9CR4AuBQs0qoAclfzschZFCEmGqoxfC3yaDzCQC3dsCE3p1+eXFp/ZZ8iXSOLBiOG6jBBdJRt6/Urpl/Gqfy+sxEU/buw/mwo0byaLdqP8wnsgum2mDUqSO0eg5Iq7XvWoGzCUAhs5Xjo9a0l2sxj5K7b0ekrKQOwLlUOvc4togPSaBTBxpzoTYAXAJhNk9v0nQD/9PMTVwtaPgSnFNlUQwe1eNRck3/5PmBkRBFq506F0TZb5jojN45oOql2EFQIINz/7GqYfYEdlNk5p9wbfe3HZnxP84pdT0UrI/9Xt0Lu/4VPjHwD+LItwGp5gvz4o2Nh+yxVKD4OTv4kkJg8MH+lLvT7pc1GgrlR3APpzivBFQGr3l+Es=","translations":{"en":{"changelog":"- Update npm deps"}},"signatureDigest":"sha512"},{"version":"4.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.5/release.tar.gz","created":"2021-09-14T15:23:28.143980Z","licenses":["agpl"],"lastModified":"2021-09-14T15:23:29.107767Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"fZ9e1BVCuu7bPvgx1ZpRc1riPbnTIJEYX2/kW8cklbgGc/wALMj9Vuqp8v5tCc5SajuoJa7/wyzLgCmfEU7M6PaciAx8/O4t6OxQwRGE6+TGguK0Pk+XCghRBasEUo7LkFqjBAQp5bWSZfYZ1QMiz9OtakhOR12gPs08QiGMzKW2sVUfCR+lfxlmvxvyPUtCyQQyyDM8Gj6w4yOaUb4ozw0870GRqEoE8jRr6ow+m8CCAsDEG2Ucx+lyHEDRAzeuWrjGzC5R/oDUZGy7n24yP+XvoUBwWlatub89jimiOPj+9NacfnxSN+hOQigQFDbJaglna4/1JscqhEN4qbKep+b0v5WKeZejUGr/3VOEW6ZjPOQh7TahpQhmafCs/ejd7xXCMsZI9NXrn4UP7nnZuxGkZ8eMX0EMngCeT6WZwFzjMEvmP2K7iNb61iyoV5yuphOD7aM63vajuc3eeV498bscbQ6nGK879JIqTvnjNPmYWcomCcHAEdwU9EHLdur/ZOhTamQmTo5qp/78xabBHPY/eZIbsMJZGZ+tCZHXb71gW6QgTZQsWo9GloOWhIAbSUBdd7vhOYVDpWo9vFLWBzuBrd0hO88njvDfYn5DHUEhgWKuW/cBDMHaofvaUVYZzGFx9iM8eHgCmNriWj7k1ae5mVaoYnyIRy38zDIswNM=","translations":{"en":{"changelog":"- Fix cron fail"}},"signatureDigest":"sha512"},{"version":"4.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.4/release.tar.gz","created":"2021-09-02T16:51:47.390914Z","licenses":["agpl"],"lastModified":"2021-09-02T16:51:48.957655Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"VBk/t1IPfcKkPvJhnSTxpCAwIC2xDgyrBbo6jsIzidneIbzyuWCDPIY2hyfxgXUHJS3HVjYhT7Gpfd9AKefTaeVzeCt4Slyfp/xAXkJmeOlhjX2hDrmT8pBZcvZHJhpkSOYyVGITCyQ6DGVVT4LS3e26FjYKleJn2m4ElAkLy7/NNhX+dRWHo1fhRlN9S0i8Y9T+vsaaPoxD06ode9N8NzXQ1/IfNWWC7Zz7TzOcpXIjQWtLNHKdpes59L9wenA3wKOLqfwNeoSU3YWIjhlDn15BVueKWTIxxwbyI1tVibw4RTYYJvpmTuWj1OfCqHh1mGtZtdE41aSEdgsmy5F2TnIqQQJ0zCInGwtiJ55P3jyTs+c0A2Sw7xWg/b8V3Hd3zpc9pDuM+7r4p7izv1x6Gd0ZppN1iTjhVmbeZs2bEF2K3BUyxUgv2QqRQiOC+UhKp4XbLbAs/j4bQl/4XxCRIIsgzPq5Y24G/2KNCHfLElpgoyKdU0q4+1qPZo+4jel2NdQWaS6e0g3CQng3sbYwiY9q8re30eQR4lgAL+c0t5W+ILRAJM/INJmCfU/7lKfgrKtqJt7jz8Kbvwe+frP3OV0rmnVaECHD8QUT3Dsgz7NGO9Y8SduRDZ1kGimSDCD3pNahV0bSc7PmWMdLAM9KqOGFiQio5ciPppNpOXwcvmI=","translations":{"en":{"changelog":"- Bump v4.8.4\n- Merge pull request #295 from Ollienator/patch-1\n- Update CustomOpenIDConnect.php"}},"signatureDigest":"sha512"},{"version":"4.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.3/release.tar.gz","created":"2021-08-16T09:14:07.659305Z","licenses":["agpl"],"lastModified":"2021-08-16T09:14:08.504490Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"fWs3LWqZpnmukdS+U+GskSetUUSuZ7ZqyikhtSt/p2VFCpFDcHh9svBRIMlEQEKFAyACq4pmN7L85Lysk4UNz84Jeauz3op3W/6ZKs9b5QhzkOkgtkY94S7cx1SZaWcryogNsGHsA9jo7zoxFd9JYCzCuSxDAcMb/wqBQfIqUayR+p6vQzz7huKCpnyvxhMAbPabbPiGqa3CMNkeKCVHxvmOUXm4dY3Vk4Pscg04gyOOqWu5Fjw2ZWNCD52Tr0dsrggp51PJeSRTzb7fwhs9yoXudUWCQfplFKVD6taiztl+tZK3GkRHVhp61aFzJLludS5RgCHB23tf+TYBd4OdTdILzMaa3qlI33hhoS0uxdL3UOXS/VWiPumdKYp5GOde3xukGP1sTtudoTTr/SINsH27J6XxHcgwk3sfhHoHNzEM7qpNo5GDmYFHetGu6A7BcLuVQ5nrTV4700ghrEBdIHTzHyEKzFwFsaQ33drAO82+4M2VSh6+pYeuvoPTpuQ8EWcP2F6g3btCFXoW0YIXm2uDuPdjvBzRxVIv4UExtaMTbSDy3TLUw1wL1BMyxmMZxunatgWYiBoE8/zloa2CLrZd16PqKBX/h0F/wC7M6dmPLk9JuyebOkj58sFA8qatfm0yOW75h2H4Apd5317JuT55hlpIP0tpFfAlNcYWSXs=","translations":{"en":{"changelog":"- Take userId for OAuth2 identifier"}},"signatureDigest":"sha512"},{"version":"4.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.2/release.tar.gz","created":"2021-08-15T17:27:02.269457Z","licenses":["agpl"],"lastModified":"2021-08-15T17:27:02.470648Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"JeImXznIkSQfhndY9sPS64Nmi4ZHDKXdRjFA1YkZZHjSb0tnUYUpzR+w1Sg9V3L9Iew1em+emYOHaEJfKth1GTgU47UHe0UX8pF1qK7sJ44cOEy+8Zb1A+9L8wbRJvNr+n6uE2IlxmupcuNCR2IQnBrL8YCbmTQvBcfpYd2fsuhVSAnytlusYrG7iQis1oNeJ5nWjFb40o12hNI+56ejmR5ASPslJfh0P3R1fttFrYCi1Bb2SvnMIcxN1Jcqd4YLSbzRZQw/afynp49hhiH+V6nQNBKbSjLp94ECMXgbNSk53+6G40msNHQfC8SyyDZiEQHA261rsZANAsmcgJlF42TO8HRgjJkSvvul+G+hV8LaAkFsJimU2Fho4l+DtCz0cgB0hyYpUH1DkEf75PMmD+oZqXx1oH1H6+oxfLKN1IRUb8s9DM5Nc/VI5mAHOFeWFwS6ULxskTUuXfFx7YxpDd0htYCCUz21oEsFvQ/JFmPMAuA8d+VsFS5C6Ev5CJVshhZwCnOPj1pTV1DeZbnJJ9ZZGXCTf1N4sr/9M+XwL5dvQP6usR9yBMempko0+xudA7PH9Pzv2E66L450laTGXg1hrzjyMAncfyViwGqqrRp05PsToALKpDiHNSU3PBaKeUXaFO1pYV6THuMXZ7lxH9xSGeBoBERrIc2JvI4AOEY=","translations":{"en":{"changelog":"- Photo url fix"}},"signatureDigest":"sha512"},{"version":"4.8.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.10/release.tar.gz","created":"2021-10-23T14:52:38.980142Z","licenses":["agpl"],"lastModified":"2021-10-23T14:52:39.392036Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"jsfJ7nhBAn7ihPgTuYVaSwxuH47wztkit98iE2hL1ewOCK68MDdA/CqTPi+3Wegdd7ACzH1EIDtUiAmCvmKJeuHQuImlfxkRJdpSd/nEavcrxG/3xTdev2k90Ehl0kA1zeefopOD4EutpUZOMwgYtWDMi/Puc5G1c21NGQYJ8q39Qv2B46cQvmXCl+HFbklXIIr4Mb4Q6+G5mRp97CW1xU+ixZpaXekqOoP74DOLOtHx4mBoMTyy6mFL05KlAmRLjOa5fgqdX7gYzVgrqL7klp5xuXHvNCPugj6mYe7cRC8VoZJBK8PgrmNuIbzXPtt/rJaPJeJl7awg0VfiHUEwRYNazIY5ZzYeXt5K0/VZKkWtIAz4ATFd5Cm9u3Zp2clphsOYpt9tpJvDgYPTexQvnybkJ432XoSGvyyVpuzkrlPA9u/QbbDlf3+6tc8UZstCQEWJQo98Twgzjz722TNB1dcPlH/8c4XZ37QizkrrUnfKEJm05aTSDyQFCCl9nbkJT6qS6CZh/JIz2TmhSx1e6Tn4ddL9EoRQMyoQ8SVHLW1800Zb//pd+WnQYjHI1RRDg1Sepp+Kzml0Y7SlKD+VZqKMdNOGXvSt+YWOdGkbcJ/iaog7WOjYTiqFgx4Paiv+Wh8FZM14D8LNBq9jYPjMvDNBStVDQ9D/Sh/5Jbw2vug=","translations":{"en":{"changelog":"- Revert hybridauth downgrade"}},"signatureDigest":"sha512"},{"version":"4.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.1/release.tar.gz","created":"2021-08-15T17:24:04.711741Z","licenses":["agpl"],"lastModified":"2021-08-15T17:24:05.295822Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"rYZ9OJocR0gkvrEp94VE5zZcBMr/08R4Z9bcJm74cbE8Bki+X243aoxqzo7AzzXu5K2yii9PFPFoMYLFIDxwzFMUCeP/gF0zwm7UakB6c9U/loeeUEHM9ro/Uny0Sq7fzFL/V6PzTzhygz4p8j+23eDOtsSDr7QPsnUH86mp+fLpzBAQ4HMSeC/epZ0WPbQDNQR+XN9RBFaZHhsNURjNNn44e5oSYPcRdpeQ1XdWEfh5mORbdptVnQI/DR4LKkxHJTJbOTKIhGxhFf7mYuXeDdPDv1g7xjlFGTF/ATLCQd1c96TO1HlRxUIFWLt6xPEHhGwt+pGh6qg31LKKoP0Oj/rG5UgBw5r4WVSKWd6ddKOzpzdvjOa27E599DbAm0sFbQmM0iMFXQknvGKaTGDFCvRL53rO54WAn0osZBawO0kbUTa/J4L5YZorDPJMnOAEfCGpDd8ouP3JU6JGtjYVsHCMDe1r8p9wyscKO9/noxFzlWY+tJV7wZQqGJCms3z1EcMq5FRcaiNHrOQWHDGMN1Dnb7h6Gk6mXrnWriMsDTkdSBUTinsReOVX/S5h698ayPOLYBM/C5rQ0UVvwtK/r7TVDrseCiH8Sb6rS8FcUTfe9krYNSUG1k/X3T1FdKYlAI2wY6IcK5N/b+XNTVwysHNk3+ppfykMLZ8AWN7h9oo=","translations":{"en":{"changelog":"- Fill email from user info url only if not filled before"}},"signatureDigest":"sha512"},{"version":"4.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.8.0/release.tar.gz","created":"2021-08-15T16:20:40.789462Z","licenses":["agpl"],"lastModified":"2021-08-15T16:20:42.651565Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"aUokodPC92Hg0VgCdxVyE6W7SGOWBGUWqOor0wyWcGtMFwl+CFroY1Ulafb+POY9opeO7/ZfvAi5JGAVGYboT7GweDAjGARlixzi+DVrBAhHmPvXssttC/jlOtpBRN0d50IYk9U0LDiZnTndHpCagdNZLcpfOSPjqI6G6cI57loA7uDRSgbGiSlAkZcVR1/LeqtXkHxtwqIm19M3mXjqMNcBJ2qmrt3xRJGB91WUBL1r6825fCzz3kBXHY8nY2LSe/Tj+/PHagA1tqDSjyKOvzQ1uhU6gvAWxnoqMU0Z2WUaizSy5cVWWgZrKeNqv+HALm0nYVykbVa5Gk+GX5RQ8jDhISCsxNyqFORLBoxrf3hREWw2f3N86AVzV0x6CCK15FuUSooy1CSMQ76/Pczk71WIHhjiD6EDC+KnurDU9enywIaGQOhLOEf7QlJ5CrrDRGLppWwpMyuB0f9CcjHnc07gpPKHsqPwG2FSHgIwpHArmDLtB5b4Wb/cyINKGrmApqyOKv0ENSuT78QNwrMZzxy5YOCGZ5S8RDX/2cyqc0S+LXgTINfV+kOx/sYhNxNo+p30iPhqY+CMStw0arUDOYThzqd/Xxc7Ej4zlX8VWJLj+dglvm7PS2MVC/NpZuj/VgYZwS8DHNDMTi0ik/tDslTtveSGNbrQBg9tMaIFIT0=","translations":{"en":{"changelog":"- Bump v4.8.0\n- displayname_claim option\n- Fix inconsitencies in CustomOpenIDConnect\n- Tabs to spaces\n- Upgrade to webpack 5\n- CS fixes"}},"signatureDigest":"sha512"},{"version":"4.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.7.0/release.tar.gz","created":"2021-08-14T12:55:48.261981Z","licenses":["agpl"],"lastModified":"2021-08-14T12:55:49.549046Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"oawPjWR1UX6AuuT7uQv2tKIlVg5lHr7O3fseiarFh0v3gmiR4fcN4NJfnVYvn76CNOrrpaK+07w8QSvKJEC1wLudsAAc67Gwu2zcjj3vo1O0QDFDhgn2ZgMk0U6n+DzUUvs9SCjNLaZ8C8qAaDNhh/r3c3Rf2gNwKObQ1+bt+d44YFyYgH8VuUge+SUKUqnAsVftaxyrDqoa4v4DTaEsc7/FechdnICUNnO7WQFkuM8ULwcwvYdouhG08IDrIoOHxppY8R7uTpjIyh8lb/sNNSk7Su8SS2NUMdU2OS4qMYBnI59Uf1UR8nf0O42wgcKjghJWEsLfnZwM82nmyjStg1AZh1GHRz4Kua8mkFWpe13UDbqM/aOSE2G9TiCI1ZcQLFVS3XO3ibrwtFovNKW7eQGIdVHXEOXfkqWD2z6RZHxv3W7LJb1MvW42zNZHHN9f7586qWPi6K+ljRHQBnRS4+oYWOm0ELP5pkXr6Us6er3lFGTMenDduEqv164ZLF9tlg8yrUc7L6IAzq8scYHpIBeOXgo0p1QcCfYzXupiUxCMFjRrekQgSUmlV4p1LIiCKA+a6mlHl7XJl/bVYZ6N2xU7i5JnOl3MCDvpVo3+UtDLimRieYzjk/Galq+7PN3/PgUBN36vWtH5GAyAmN0zW+ISzA9NYH6mBg0Sa8XTiIQ=","translations":{"en":{"changelog":"- Stop using \\OC_App::registerLogIn"}},"signatureDigest":"sha512"},{"version":"4.6.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.9/release.tar.gz","created":"2021-06-21T13:22:18.821014Z","licenses":["agpl"],"lastModified":"2021-06-21T13:22:19.709197Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Qs/ugZ1bYQ/25WUsDNNOxUr72exPmWISj6lHUwpUoBgDKXIvGk8a8e9IlfZATYa/sw+vo16GZjDZbsD5qqH9RUVeqgZIitqpPhy/n7NbIYpdY9FbeeoCi3UQ4Qtae2e5kcssRMCAbWulQzeJwGJc0Whh1nG8cXAYRtj2LhanKN4VBIGzKVNSRNbqAd+l1OqiQAWOZw7BZoQv6n8DjPTFCnPyZO5R1Zsm2hidgAUIjHoZIASJWATVg/xnutMO1rSRLCAjM96T+od4X6S4oChlpDVNhLPmzGRDtXHmcdsAzy12buOmLHeocnRNxrYavsJnZC5erL6Ur28Nm3FYY+a+AFstQdsLGl8UbwHSUZ5SN9vaq+N4Epu0w0YmB5H7fZQWh2ipiIYW4U+aQn6Z/vTs/l/V6BE/HMIES+B6q8sdlTQKdWhdSncufZwPPUL0aP8ONVGODF01Pgs1iaU2Plla00DGIhi2BJODR0Ims29GtvvuSMYMUmBDqWPgKrPTpjkeiUAZQcSLKVcXcMgyyb4S3RAmf1WX/WFF+w/3FzsjwktfslgXFGTn3h+CamFhlX2NQFLzgInJ3X16wwzFpUhx5MIGDPYWRBmzikkhm91wi5SVTW1qF7/X8LcGbNq6zQ7mhsrFDngXfIsBeDr9PA8eu4uktNNOeTvSQRTQ2nUHeCo=","translations":{"en":{"changelog":"- Bump v4.6.9\norigin/master, origin/HEAD- Fill identifier on get user profile if needed in oidc"}},"signatureDigest":"sha512"},{"version":"4.6.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.8/release.tar.gz","created":"2021-05-31T17:17:02.611754Z","licenses":["agpl"],"lastModified":"2021-05-31T17:17:03.771429Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"rdg+07RPzRnO46GpFmLV9iVt8O8E0Wr8cwJHkStrIwuYFd168qQ/DgEqeupEWUMmDDUPEIphRYTVGXY6zP4rqu3KB29enGmjZ+/dEesFNxlsuS3Ds9qC2DntR0rRjpOsGN7yi5qMGnbrGeuBDCUYlnTgv5bREofTQJHH7Ze749wyyXoLhO41mUL5QyWL33ibuWccJrRYVP9a5I0iQ5QkXTfquUU3JmzMap5VnAWBbiLlPc/+51set/b83hARleMc4E+QCGjgKs6nvj8RuP257IR78YxEfMeXnnrlJUZPTKX0wVG4TuD2dXm4xNd+/pQRwpn0LkYs5AjWL/yxOL3zgwu8qp5E6s2CClnbVYXnsRg3S1LC0hvn3K2F2nZJhU2PSfjVHQSe/twNh/LibWIa5KukFzprDU3tY6cXBG+PSjSbG64RKXqPHdO9s34IoAjpK/+AnEJKGyoRdmVaZRc9SZT0CP5z2Tu6pXJzGzeOzpaAd+IuAz42JrUFQga0O32g3ZRQq6eyQbtevuY+LI5WLW8cO/jru5PAXiy0kftqew2/RJPwgM1ArfwviTzJQ4SxlzksrzgyBh78mYXoRpF8AvThkf7QB2P0ivpDiC4JMSvafh6xMg/3Q6wDA4jROvXwU29xlz4A6tsJ91Ft9BnCko60JJd3++hl4Vd5VZZFFcg=","translations":{"en":{"changelog":"- Bump v4.6.8\n- Revert preferred_username priority for OIDC\n- Fuck dependabot\n- Merge pull request #271 from zorn-v/dependabot/npm_and_yarn/browserslist-4.16.6\n- Bump browserslist from 4.16.0 to 4.16.6"}},"signatureDigest":"sha512"},{"version":"4.6.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.7/release.tar.gz","created":"2021-05-26T12:15:18.284138Z","licenses":["agpl"],"lastModified":"2021-05-26T12:15:26.089614Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"XyOkKTMEoQ+9ok9/XdP+hHCV2DerXGJBmB3IYNX+bB+9z8rUsN3vaa1HL1xDD00T8GSctrvYmXZuCRSy1s9QWBezQX4T8MKQGgs2ziR6kxakeHHySK1PYfzW+0QFEehOtMP0HZvHZWvWY8UpenNr2eT/yxjkR4iZqtHGa7x07QmygbV1ldb6pHb25gR3HzFuJsRLHHbm/Xip9fOx/GrO2DgP334EObWbUSlGSdozer9LJNqTq+o7aVNHziuNUI4JCL5k5SW5vOOKupJMcp4lqG/8MgzaotuxQoQRz58kUj0AoCo/i3ThvZuHXNkZEZ/PZES5u5tpCeh8SABUhpxbgaJHhCZXm4Eai+TRVwVos7UU+EvfD3fvC2GwNS904CKRiolkp1++H6ZMbSezzCD25lYY6futb8gV2mYlHIEV4Aodz61L9VUJAQWBFd8qEURVzFJg3O41hCAHbullPNjRExgmaYcEI0EDjsCvUcsv6+q5IgFZ/ZQU7qIG7hvnF5gDcvlhFyzB1sky8CIXZQ9TL+n3fuBOgGGtM6Fn2lIqWdbPG8IPf80Ji+7Cu3NSNJ6WzEr4sJwoYa+B7UMDHoCzmuaFCbTz5iyi0k2NTQrNVIWV9U6sRL5Km/C+a9W/I5SxxUII/roYP9HABfRRyCMBVQebhfLrr4c+towZBq2bFkk=","translations":{"en":{"changelog":"- Fixed typo"}},"signatureDigest":"sha512"},{"version":"4.6.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.6/release.tar.gz","created":"2021-05-25T14:31:26.177962Z","licenses":["agpl"],"lastModified":"2021-05-25T14:31:26.968596Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"BoK7Ty48D3FdjrjCXXtnxhglv6n9ZP8INEuwm5OkUbPxSSiLpBR+5znlyZ28rQCku9mVXqvhU9ynWa5oe+NHgThsZ9QDi47LmDbil8xD5UpbKNnLhjajtNf4tMDMLY6T/esRsoYx+stf6OWpDweDUHWWrsfFBF6KcfD7nw4iY+H9ypf1I2QOj/krn1JvmtCSm9k5qVcV1SIdQeCpknSpt6IBfwOGG8ulEYfhKKI/0DOKxatbaDPyxEFXG5UOF1u9D2hQpYKPDH9wXEkiaORCC/9YIjGQvkHhb7fh9yFHGr4PYqs6YvFM+0pHTIQlgFObSf1tRhBHL2Js9Ofh+w8TPLNp0dZo/DXbFgKeOGYmyid1VcmpH7qEtoV6lA6xR5SkT2fSjfExbCBoC4j7Kr5kH5U1k0TCDrmImEMXUWd5sA5PFafYaSN6QfKC6qJwb23gK0lg3jk41wVZpigVYCaBjScFKBJEB7OO8E2XeHqfZsR/ovoTdNdl1D+u1MZ4oS6gWqC9ytaZ6miAHHRG5Tre3hZgF6JuBSTz4uIrAgX/Apuhq8CaZQ6+qI11L3SL97h54PhB+CPuaUNm9tCniiFbHcJqzkq+ddNeHrq69lNtkdm7MuKEaL43/jClzW2AR2o9kVUCJn0bNLN+DE9T8yLBidnAIH2fp8nGjt53EKqS8qs=","translations":{"en":{"changelog":"- Return getting displayName from name in oidc token"}},"signatureDigest":"sha512"},{"version":"4.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.5/release.tar.gz","created":"2021-05-24T18:52:16.855004Z","licenses":["agpl"],"lastModified":"2021-05-24T18:52:17.066932Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"AsBc/qzwV19vurQra+B0ETsLeNnqlsb0LzkvJDjlDVExIma38ePw8XRSpOEKZHaxm6+B3m8l6k9KM87kL81FN+0ow4tuhA7rg7lr8xJxYjH9fej8s7vjGKZdRIsGPpEIKIIZhfYsZ+SJ+IXqA1m9yHnup7GjVAsO2yLpG+fNZ4U37Yq2M5EDigzYt59f3eQJeBsvBOd/JBM3+Fje1EDdGlaGQ5JPmaq278N9EJxk9EdYIKLC0yU3k1kCPLBlV7n6dviSk5jNejQDpj7YwZJAmiQnFzf3dZpjlfBXsyTB9G1V1IcwNOzmSvIWjKFPa8EUP99/yyanu2WwZMcSdJW6PInWvyWo4iBpPSMAzOkuFc7leAzGcmT1WjyrUqEUEdw/5uLIdSSOaOBK0xwxvZJS7yTURfTww7ytHHxJ4ntKin64p/oG8zV9A23Fas5iOnNeX98GKXEkd7T2LEpO+xSa8MT5Bdyhmap23GUnoKFYYBU46lh8U7VymcCYds4jXGOWY3R4DM66f04V7MhWvMlN4onhq76n3KsB7uJIMZ5EinEm4d0uuOcHVL/uZallUrDhx3vghC3kswc4CeUh5Kdyom3YEvIGaYUts7J5czMs1WkNxiCiJv/u+gU1rz2CMwWll/Lq/z4Qb8rXEhGdZHmkJo0MxxqjMrJQOSZp//xGAXk=","translations":{"en":{"changelog":"- Display name fix for OIDC"}},"signatureDigest":"sha512"},{"version":"4.6.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.4/release.tar.gz","created":"2021-05-24T18:50:10.406484Z","licenses":["agpl"],"lastModified":"2021-05-24T18:50:11.534088Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"DqPMETgvk+5UyCo55cFn6p0GhgPLMOQSWVxxSSub5rm7ml0bou1D+Lm/ZWy9TcRDeYCcWFm4laglrUlgXysh3LBync3gyurnxzAkMBV0yIRHhuNhZyxCA2FlpRuU6NxzzvT0eyanI/KJ+b3mzhLZGVXF6iYYxdoOns/ZqNL4Uus1ofA2RtalaNVUnug4LdH2FNum8ODIVc3ffapi+WNbsFklVAmVcJTrQb3uWuxnfhwufltw2TnYNa6nItj3afl5UkEFLgCA43oQZbuiy4lp8xoMVGomAtsK52au0XaqehVaKj7AFJUeckFUk+1oLoovQTjef20MGH52ncxpuxM4EEXsnlZ69gDQcN4XxVIEPiIwe6jCvgIiIs535+2oSrCnQVa8u2AqjgUPVCKuqeJ36VFN3Bt/YuwGGK1P5WvwFsg9bgCY7C34qsdwl0C4hnnhN4AfXNXTm/5283fZgnkTxQbdn4FtVi2hnb8r/MZoWwVexHZXysJaeRLVGJVR1O9R/uzSNnspJW0n6wYb5XMOC21f66Q/uHw0B7wF5fDa+lPt0vsrgc5v5X6bu33irCGAgiyriz3j8t4RZTscCMBVcHAVZdDKcpe6MZ58KgXVowSFXwSj/C7S6urNNuMkK7kgWTMErlE01f/XUMVQRI9T87i6JqWkHsOYgNcFxyjCF24=","translations":{"en":{"changelog":"- Get preferred_username by user info in OIDC"}},"signatureDigest":"sha512"},{"version":"4.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.3/release.tar.gz","created":"2021-05-24T14:16:10.339438Z","licenses":["agpl"],"lastModified":"2021-05-24T14:16:10.664801Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"HjGeCVtjh5r7kySUMdB4x99yjWj04/OocTr3cRnxAuBTl3L9Ii0B8K66ujbpOSsII3FlUep28iZ0RMUlQD/bQWuhV111yI/uiiL5sdMHIk3bKTdO1Z9XlUVskDZbcuD/5LIuTeLQovsvHfZO2h/BLbbJ7iYBoJNGKwea8mKQDPcGs0sJhiFYlE3RDIwesyOiP0UerIufZNv74J4e0JKS3EbKhlNxkxHG8UgeHg7nvrUkr49qGKNXKjIXhUqtxJ86lIDdjyXBA9SsGuUOpYt9rwvqdVNVuTzVeguSrcnUt4WXRh+X7B++oWPT1a17QXl70LVRhepeao7XI1UmRx18ZwvVmhLhmTX/8iwM3V1M2dlVzDRYfUwiej+7yeRYUdpxNbkIlVjeSjCnT3/27xutMA+3oapxoqIaIp6Z5qlR0B9rzTa95q1Y0WmGtBVN9BCxrvZ1wb6FdC9r/xW3vGBG+jZ/2ziN7cxoO+cvjfW7tlRy+c8TjtTwDA/okXXXuDYBST5aWJro/GxBaWIZzyKX2CV758bAGTqxgMtzqzS5OrXbUkj1rOnpp1zYqk2pPPk7jvR46Re9AojsYa/fWnw0WO02fVinGSbug5aQ0snZay8CbKgO65s7VCzoJkaJlBm6ZmdCwT1kkncxTOsCndfNs+NTblWynNVAVu7lRark7io=","translations":{"en":{"changelog":"- Change priority for preferred_username in OIDC"}},"signatureDigest":"sha512"},{"version":"4.6.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.20/release.tar.gz","created":"2021-08-14T10:51:06.345449Z","licenses":["agpl"],"lastModified":"2021-08-14T10:51:07.047250Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"AaYAR9YMiOqfqzPVIbU3adRl6wm5O5OjtOSjV7q5iJRGr+WFNlpuPqbY4+FjPgRxMRTmnNwP4xTODtXfuErD6Y8ppbMZ0BAkPtnOb9Z9EMB/xBy7Po8Ez0MMwwsxt9qckjelhMiYQG7w0k5c+uMkcThCRWs+l/qqSWwRYnjG37wB0aIhT0L2nCqi1VLQxkXDahZssoJqErFpkYe0VhtlkaLGIW0Skq8xizeYBq/7lTrWYdeB8FAx5aPOY6JoveqScnmw5RLfzdw1e6wMYzfoFcbTg9pBKgDT5kURJgn0NvRrM9HWMYhOzAOl0bq/PjXQVoslYouTa8ddVZmuDO/sA6wEH6T8MLsnPHMCPrSqI2vfdg/2oJbAtyvJJ19/rr2S15IRm2zuJD2G9pGmDoWitY/19mqGf1AoAxhHQtvyumKktNyzTRWy8j3YrQki3zAcdiyCVxWhIYzSv7rbS3vPoFz3SeE8c5eP1m7IDlsJ/mo9zTak6KaseJGrDXsChe4nJH6x4pJmRZySzHc3FrHjQxaYeoH1LAKvrHZX97h5H6Wt85zWN3a4oespOHAo03YWhuCdYHBXxmi7V6arC12UHkb8pbZqbvykcP9n+aUzVh9QBzb0bdlCp+a+ipXJHZwBF3LjOnIRYYF2DfgkhQlFq0S76eQLsJNKvtXmikMZjdo=","translations":{"en":{"changelog":"- Fix some deprecations"}},"signatureDigest":"sha512"},{"version":"4.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.2/release.tar.gz","created":"2021-05-24T13:29:47.726570Z","licenses":["agpl"],"lastModified":"2021-05-24T13:29:48.534495Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"f6L/9j7Y/X8D6VgdKjrwjJhh8KPFIe27Sdlu/E94aEf5hNNREv29oPJ3tuNDkgeXylXltKM9MFm1LqY4YnUlVUVf5bLhkUM0fwOMY+NLg3iyzb3p5wNcAMQzsSD5NOJJmSjfM3Z9GjQBuRSMNgjOBK9ufmnHCusmHUwSmnCeDDDk/Y3p02tK7t+ya3BiFpUGFXT/fbZUFOm9AyKtGheLNb5JbPhBtPk2JDbhkjsQS7sn+wc7UxYtjW7q9a3RCOw1hZXrWELF0g6LOe/tePC8xf3IB4aiy5YltSHOz7nSv+0s2ux/FrD2A49G/pV7n2xoLvKgOwbx0mdmMRzPcH3bFs/98h66WPXK1y4P2N+tedCqz8FKQFkitBxSv7UPsocW65Nx5dqYPN8oVqR3xkgtLGx+imt6ZIYZx3HyjRJ80w6ME+X+j4KpvdvuSU3z50SR+ypjp0JJGmmZKPQYIZqmi1GQMOIn+rAIQVGWwHtvzVWxpy1/999YN1CpzryoWyvoFNLyLWsl8DXbkkuIoWno3HzupCrIr36t/ZF/2bn0GieNuFwYzIdgxGoT2MBI22uym0bjHqGNuDRt7ndL6apTmkF+2Cz0zzCCoVj4s9E9t9qBfJS2mpdcVa5rW8/MP2W+EQ0FXkW+SOKKxSEl+0B7bigg6RBW8C2FV6Q2K9k06ao=","translations":{"en":{"changelog":"- Improved custom oauth"}},"signatureDigest":"sha512"},{"version":"4.6.19","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.19/release.tar.gz","created":"2021-07-26T20:36:54.587133Z","licenses":["agpl"],"lastModified":"2021-07-26T20:36:57.382203Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"B5NzhX6V9qnkUixfgUK9lBaviKc0XM1wZUJKwPbEJIPzpkapyv94gl2rATySIz/r2nWACP7Ig5bygUJPNwVLoW4vbPd2e5PO+JRmVa0F60v2bkG4bb4koEpBD9uJ02Kju4Ne//DOSNtg5hGDrrBjo4ulbvC9jP2wcrJe73vsosptk2C0/RevItDb98jJ7o0YW5cKF2ytSMtAbLyQvDT4UToRQK0Ke6SOrrKZ0RgN+OWYeEE9tEs6eySQMnLkcGfFXRR860J+XBjPpQ0z9kyHQQljvlKdaBcX7DcU4ZxW4GBdeyeV2JNlBWSBv/aAKEHbw3HAHk6bhSbF9azLa/W3tBgru4Ny+jr9TBv1mDYBRV5C/idw+Xms/Y5pBphBv4TtVba3eYwx1qgPJ8Xnf6N2Cyjf8GaiG4xyDS5uitC35Q/Ycw7LhT+i7PBNVtPEr/OZ9I8tqQP1R2mFCsQCzGUmtF5SvXv0gAw78BZjukvdEHuHHOq97unQ6xuUvu+fDt4og6Q9jqfHDfUIpPA9bYZ+ypmhy76bz+qPbjGRwpAgdWqUT1sj52S/NJ5hq65eH66wkS79DtsJ2bkPXoYEZX+X6NMEuxN9xJCa9xy9NFQmQddRgQlFLn45/5QQ+//DTC5lvy7PffcUg0f3dVVArX8K6Xe10iJK58Oni79jrZ08KM0=","translations":{"en":{"changelog":"- Merge branch 'master' of github.com:zorn-v/nextcloud-social-login\n- Bump v4.6.19\n- Merge pull request #289 from MBcom/MBcom-avatar-update-patch\n- fix profile image update for connected accounts"}},"signatureDigest":"sha512"},{"version":"4.6.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.18/release.tar.gz","created":"2021-07-14T08:18:27.403165Z","licenses":["agpl"],"lastModified":"2021-07-14T08:18:28.978538Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"RBFhVvWFGaQwneUwh+FL13VSA2gkaUq8pX/rQUlqMRLbFTTfa6dOVshWy28CrOwxICP4IL1WPAySyZwqKBXfjZHMG46IScgK7EyHlG98KdOWaC2NrduhHmIa42yDS079d9z8M6jiFw+VmJYmly+/6WVwvsbuSrZva3g54yB38SmH+noWagVdwW9XWhVCggXlw7FHD5rY4/AdgjotshyLc7svm7xlQqhTha/xhY9fuXWwhr32qTus8xlFk9Tbh2aehenAi5oZ1vABmNz8ylzKxWvGekLTAJJT5f5E0AnqW78MYv1ffNohXrqLQi9YkQ8AfYMnjq66L64h16PMSfJfSm+yOAw5PAgBKSP9wlCpzEK3jr1J/F5lwjjpgwQNO4uYURWbUeCWEbYd5YJnuFDmbOANlhnPODAWtjOC/CyoMWx1cauef6/7kUkq3SR8k98VnhlN66MzSkIuLJh1n7l1trIGlpQKNDRNnl32iWma8SpzAmGJ2bvms7ukynkx9NLM6GPP1zN0MYHaJDPgE1lqDb8iC1tcPyjKMjJ7zeCHDNpmUZpsuZHAC6qA3QaT/Mz5GGW5LrN45KC634NIs4w/JVW5ftUTCx0r5aw+CP7RkNBjuHa3/KJq/WugBGoq/SgH9u66BjGBH/8SjTBB4pPIRKxTkIduYzQMM07jELHyodc=","translations":{"en":{"changelog":"- Fix link telegram account"}},"signatureDigest":"sha512"},{"version":"4.6.17","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.17/release.tar.gz","created":"2021-07-06T16:20:13.601635Z","licenses":["agpl"],"lastModified":"2021-07-06T16:20:14.763961Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"qOpuYBu4MGQtjcNtPemLUwWwedYnZGzz5tdKh8TX2rhm1pc+xZO6uNtH1x6hqRg330vmFgVz/k2WZQDP7QNuCTIv+xw6kOhQVmDFF3qd8lKETNMLvEuhlMPPGfUIfuRNETGYwXfun9afrDbzMtib3pmpseYfaf26PnoVSxGrAdTgliGLc2I2ZI1shHITkfEP6qV7RiIdtbkzmNNyeITBvqQIJ2bhsqOQd0iScdGSVGA/6NEWB8NAgWLT2ciCkP+2vCkC61NcJsfm1/wXanikwkrkx5jRvspc6A8MIGgBLgenZ04wrcqdXovwUdC/eA69lHmmElDEoFbuGAv74Rf4/gGT3y8cb5C67lvXmF2sCRfn1359kuv/X06yb0eRyeryVWrLFnTxD0Xkt28SL6cWx4oE6diJEhtlAViTX9Zr4oiFymzV0lvJuT5PE78ZfA81HEdmBHT8KZWpM1h1idkZRbMEvLrLA6JDhb8UnXfsC1PvYUEo2BJQ/VO+hJSHptMLOteaN9V/BqO8y+ei0DOITME/py7wDDqbOiLuqqqJXsUEhIuuXx3mcCFAzTcZ7XnALGSZryhnOXXMd1TFV4sO2QLh+wJ0M36gr6vomS/pU//hZccBQwadscGk3zb0by25B5K86wyEXPjb+HP66XIsWGuY0v5cevoW1naqbHP7sNY=","translations":{"en":{"changelog":"- Add telegramm button only with login form\n- git push on release\n- Update ru translation"}},"signatureDigest":"sha512"},{"version":"4.6.16","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.16/release.tar.gz","created":"2021-07-03T21:01:30.798821Z","licenses":["agpl"],"lastModified":"2021-07-03T21:01:34.033873Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"VjNB7kYuHf4/9bb/tEHPHIbzEGu8PhIs0bf7mLBSz+LMgp4dV+n3w0O0+lvESjNhlFYsd6nINy8eKYtugwICKBQm5V3uVVbc0plDGwts8OOi5Zcb2pWwFQjkOQEZyYMTOr3iOnP5RS+lMD7PuFdMfir1gP03y3zRNnmfA+POVPVWo+Xo4kBCSlz1EPRij2HewXzktGDdBEJQD5krcBTw1xkqXbBd3xmUmz4eC5/Xcc/YboO7w7K3JirxYXR+6cdvfe1nQrefAKqE4mprvAqdrJHMbdl8AV4J1VBvupk3s8M03ZiCiWq20ABk94HQJIRTLWHxUBhOxhN0GjRf+plju9Bt7WNDPvg1+i91IcnJuCTtdIuuN/Awo5aZCjAIqqANNseqDGFeLks1XIwY4ELgJw0g8eYOEUXq+wYDj/74jLhbA4rhKcC5RWWojQZDKotMlcZm2xqGtcwU7O2yLOx9yc3rxDJ7B2V4yyIBhOGeFAgs6EpVWW57gdEfDiprO+XjhY8puW18ZbofmwLDK7f/nQ8FAnIsrp/EZiKpsf3mjhm5NhtPKIxUmWc6Dv341OtUjXNa/Do3CXa7A0kulM/NG3aS4aE4go54sQEt2uvHMAi69nhoxzOo9cW5I9csGLFZlQebxeq7NOx9pXkKx/+zncYRQrJM/swHvoF4oKdRtiM=","translations":{"en":{"changelog":"- Update ru translation"}},"signatureDigest":"sha512"},{"version":"4.6.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.15/release.tar.gz","created":"2021-07-03T20:41:11.075197Z","licenses":["agpl"],"lastModified":"2021-07-03T20:41:14.013502Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"bcvh9FIs2cJVklUbmk0/d2Qemamw3xOg9Hv+pTMIIOZC8ecS2YOQ/mg2V/XXdOypZsg589A/cDjY+w5iwYOcihL82cQttgoQKHswQNgTkViAcKqPV/UsAXGD/EQxGyPNrp0dPlWvF11AW6XpadxEZpgIssa0h6JttDdtlQsXzWo9EYOxaFidINQzZeC1fxihu7hmw+Mlm0UJ6tAKJqeSRJ67TPbUtOvEk6ABX86fYwJ4mAV3aYfzH7AugY3uUJpwKuuXdFzW6W8J7y/1Ak44QUIOEXejXk4M59evRBPrzxbwaBf2uVOpQHP1+Z92pgYMEUux4MIYG2u2TAZAFJz/v+NlQBn8NVMZmQB8tLHNR29ISrWRJlE2BpHKnKfBTx9oj919uJnKkqfaY/NrlWhnM5LJeglBRn6T39iq9ebcMO8Uyn525nfTG0TrwIVleMNUie/F/0UMUYdjHmiu1E4ib4ODx2mMzu0omPUnnj9p3qLVj6UJBtIZeA/LKn8vI26us9w/tbKGf51ho+Z/Yeka+uEB9/vu45mmb0q88IMEDFchSrYcsqAluARalHrCarK1AK+7QzGgKDWWdFJxcEnsxhVazt/6Hj2xMUTbXHHKDXfk1ui8h0iI1OssVJh1F7UAAhHf5zLBitYM06afPaPoTGXRBBTcLTOuGaKNl4Ma8Hc=","translations":{"en":{"changelog":"- Fix hide_default_login with only telegram configured"}},"signatureDigest":"sha512"},{"version":"4.6.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.14/release.tar.gz","created":"2021-07-03T13:36:26.622715Z","licenses":["agpl"],"lastModified":"2021-07-03T13:36:27.755175Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"TGVzoVfcX50ALPsg4ETblmsnzcFGjpCQVCaL1rVp26nyVRn/LjJ+CwWmG+/oC+pCZsedK7a6P5gAVZeb7+izLUkCyuhg86zbP15giSbY4HqMy/uDrJH243NA2D0AjXukSXzJ7saXFi6ys4AItynQ4tqyoqx38RHK8y+txTOwJJgxa+uFT6+5VILOPakKifISDLoYEYv7o/9Lye1ePxWyhk5XRLoK7hJxs2eg6fTBg/V424TjuujQ+vPuvHj941FRKV28Il+e5ajIOitOx36am18xc2DHXoWjlDXXI8xPRysJhk6UCzp/iyTgDHAMM+PNIOtUUATxhm5yooHTL7mkeChatzBmqTvd41X7VLKMMO1M/fv2E3o00Vcjm3fct5ipuvLvCbIIB6y8EG6os3PsFwmtYLdZCuKLchMlHQKG4wsgF9XjhLdVvgkBPY86LGeXWzn47PfNfW0PQNn5R2y5eUY7FOQ9TVBtSlerZm9iVGqgP9kkbJ1EWTu+57YajrbWZvukJxV9+evPXoATwGPDkNUaMApynEDjBVdWLGOLTgreGmPMOC9Sq+g2Uvy3J9DRK/hluyt0ZZHIsHMogWTO9ZC9hd+j5jMk4Gz8BhLxelOvZ/6NBPzXhrxpZLLq4lAh1VeIG5pmI9SA42gl+3BisTcr7ZjwBXg06N2T+QMQJcI=","translations":{"en":{"changelog":"- Fix telegram include without any other alt logins"}},"signatureDigest":"sha512"},{"version":"4.6.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.13/release.tar.gz","created":"2021-07-03T12:59:12.022983Z","licenses":["agpl"],"lastModified":"2021-07-03T12:59:15.166272Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"ZaHSPSTH/7vEkYLEbcloyLzzPbUPUx6igsXQmEm+/0QWnPyXj0+glnji9RfOAwYQkEQ93a3mN5sDFhvolYIfyH/Igc9IWvVvJEnb9ZdPEoFKqLSQ/xSio+ucZN7TN0ehChuZBJJpYVkSK2fN93WVP06cVhU6ZMJfBZYYmGHbd56g6qyJxiTv5evL9wXALxpxvS0uRb3GzUucl9lG5gnKFdz5jj0bO114DSojrP/FNuNmDdM/EhwAWbUKoVgQ+Q2BUuzZc5H7GpUCPsXyqUqoS1aSXM5wOzS6rPjDtDKAal1fq75pwmMqfIWl171p5JCXMgfRS1YPfw8uraR78fzAfSnT3RrZ63XVUZBP/WjlR5bqzuGNW3U+h3OiAASUmE9mJ+jg2sUin/cMn3GhLWmUbj5p74mptiybsfHQcEhp7NM8MWGqd/NjIER/TPg/VhzNlQlr+sXBhW0uib6us+KPusnKUJT6pF5Uj+YylW6PWf0mlnkOBg548fPJOF1VqwABqszJGBaZHtvavmBkNKeAuqVVkOQrlPSx8DYgC2DvbToWIydxCuKagV7/vIFfVVf9GS2TVRO70CLBRTNBNeOuXCC3FhYX3kLG874sI8T40T1ZYRgDX4NfcnAC6UFYtg6ju4Ew+ci3jrGCKpRLz3Nd89ypsRw+T0iJD0M1K9kCHVY=","translations":{"en":{"changelog":"- Bump v4.6.13\n- Merge pull request #286 from Geonov/master\n- Update fr.json\n- Update fr.json"}},"signatureDigest":"sha512"},{"version":"4.6.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.12/release.tar.gz","created":"2021-07-01T05:01:43.063973Z","licenses":["agpl"],"lastModified":"2021-07-01T05:01:44.580514Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Z19JGqgCexZ0bV9x4sqlkCSm1vLF2V66s8k0tdd+cvq/GTMiy0UosyfNpu0/I4jD4y3tg80Dkfw5LsB3oDPJusn+vkm1cXxb/xHRYETsTyQoNNnOWm/fz/VaIbz1o6NaCul/VOebDJVd19K6uzRx4Uggz5aq5Jslkjy9Qlkiz26Yq5vs1IfFj2Wz3y1QiWTGv7mnpJmDxfjKknBBBQg+sF7Tlgj27yojY5TPNiRrmBhfMTgxCHGY46ctyKtrn9Hc929xcdbYMaW3r2iM6+Ljjv5ZIweYnQejlxSLnGdLN20oNWEtHOSuXkzw6akJdds+fk85x/USxBWWi3pGwtDMWESwDwL+r3qOskplMuW49cDymKEDvDzZmihqIyYMmBPch53cwWwfgaP7MirfyEyR5x0YrnKpffOzhsdU2W3t7lg2YpAnm8bNh+/w9FnN1lHQ6KtgZyFqNiA65527NkMbTk3IxADVvi40ELFJ7lKUbaUGlIX6215f+TPE/zDjInGMAjTRICHzFf9Z65TSpX5R4OdbxLPXWZr4mSBoxUTfQ3grytacm2Hp2N42A/7Sx68XtN55EFII+tQE3GIcC4o6ThfIs1lkDF69T3Qe+sx+0eVueXKydevbRWgcAsoGonOocNFLEyKxr3XO+SLaGwAkKcrDxlA1fsfYbX5/O/Gg/+4=","translations":{"en":{"changelog":"- Fixed fill user groups with userinfo url specified"}},"signatureDigest":"sha512"},{"version":"4.6.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.11/release.tar.gz","created":"2021-06-21T13:40:22.320084Z","licenses":["agpl"],"lastModified":"2021-06-21T13:40:22.827989Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"AK1/kmI3ArfpJlQp8NsoPYFod9tOEgF82B9/kjMVN1JMgp9okuUOAxM32kV9Oe5PFQKZD/kVrWMu/BuuGB8uCqINDBrEwppN3uenjPOf71WWWtUUTtZTIfmADKwabTKZa5JTqw/rjT2WubE621ggPGTs5RALGWeogJk+/lqbwAnXd/OS0KKHXh1qm6hwYVAzBRHdf6CXUNSHJIqTs2SnFq/fI1pbtCwknSkRX0AylW9M4QsyRXArsiJJ2jID4YajO6ZSHq//zRPhXx1NXFQWPiC2ogd3OXXtcJfhC3REolf9GvKl2vPKSZipkaXHu2XGdraesq8aU5WHEL2vk4rA+qbCVWj8ovJKeCYHBbbHnUb5Cv2smzyTTqrNk5iInwyCv9VcmD8qyi8QcvgdjqAgYxGyUTgZO8LbKxdzQE9FWrCP8kGyeOQAz0HV46kBA9R1fC2CFJd4iPE/G76k29rlm0/7AQ/4AYM9uJHsjcgPbKilnG0xcQdVVOmS+9KCLzX9/2yYuzsj+uD380RVNRuTdcfqFmbZFS74uzV+kcXK1Tff3hx/2WeZRmL6osEX+K0Bj+f6WjhBZZlhR/rehK0hhamzkfmW399f4T8gr+QhbT1fk6QLCDxKWEotl4+IWHKnf15Wh69q7kSjC3H1pODyy+hNe4BB0lK7YH/H16d4ZL0=","translations":{"en":{"changelog":"- Update groups from user info for oidc"}},"signatureDigest":"sha512"},{"version":"4.6.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.10/release.tar.gz","created":"2021-06-21T13:35:00.778430Z","licenses":["agpl"],"lastModified":"2021-06-21T13:35:01.134721Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"d0nsjN4E6MTyIeVMdrM/h6uhGfcofI99b7cwg794cSDbwrCu1DdW0puP54qyanV+PGix9t/ZmTm0kw6F0oCOJimQ+533SBYiUO9J8bS/VspoKtHobvOLqInBmGLk0wQUoP6oAwXxuA+32U4HTv5JBW5MqOkVZgA6Fd5pznlmuADOUhUPzzfkSVXpGHxqzuzkL8NO8HlEew+DYXuh8cQCsP3xVRB1pnU/QLvECY/SsDuOIAtbine2p2/7xWNa19TpFzSYCXTQSMnv9j8q2yUzaRDQ3D4BwvCE5CLzkQ5RqAa4LIuwh/f8VDZEG5iXt65a4XEgTv0bcohuLU7l28MjwipiahMVtcyoKy0Q/C/ChcfcYlMUKMrp1GtBzuNcZyMC3HttVdrhCHDpGq7JlP6pIwPgnwq5/h6vgffUHhcQ4DbHHaJoYp8BEyEiXPN2VSFjq3TofC0jYvj+JFqm7Ja4Oj81HDapL/eJA6zuupfjz4SqM0vCM5lz+A9QbhKaDnS9v0WWw71OLVV7ZAFRswCOok3qT8sFExHhhrUMz5X1NIujNHsg37PTHV5RMbhxANNdEd6YN5NuX+Ez5E3l0mGYAK6NjkQRM4/ocWUxnZ1xIFDdyVm3EKcZSTa0eZDyIVrzKo47O9yfRK2mXtkvIw2rhVQrzTPgBiDA6Q/T93n5E+g=","translations":{"en":{"changelog":"- Prefer profile from user info in oidc"}},"signatureDigest":"sha512"},{"version":"4.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.1/release.tar.gz","created":"2021-05-23T23:21:51.352962Z","licenses":["agpl"],"lastModified":"2021-05-23T23:21:52.091972Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Yxd/OVK9mcK8Z0t67t0M9oJGmgK8nGlcVtJ2iU6YV4xUCikl6G7V/L2U7fXIJm+mDbNNZYDcsMLIFJA8Y2HDp+5ucrvRWt2Kfkdeej6CmYyPh3bXAaIFB25D7sOpBodCEiCZfvN03bmsihibr8BwV2RRtCyG4kWHZPsHDLFiLz8KelU4zJAUy0iDVkhuz/RyCAAN46r9vAHdOK3U9GRmTldDCNbKqWFckbN/w+HcRpgb+gV4R7rTf7KSyUlafMkJEb5xT3KW6zpTGpA3LxjLxQu3myApaAnjVseAVGfnKKB87S7anCt6dQ2koiasU+c+VI8FljDiiu4LHFmdyVdEYX0yJx0/mNM+kXJNpcWGfrEzNevMKNtlAC3qo6p8OR/al/zwS4cubQmzJDlj/6KbDKuuAfCv0p5pq2R+FiRvzs5OocPkmFQy5Tp+leExWfVfiFfCBmhi89SQ/Bkr82qqM0okbF7PbQBWWlfj3AauYGhFieHivoYlw0v897r6XxTjnecAUhNX7WXVvoaIzWy1m76AESP7jfH8f2J1WzlpkLkV0fYA7Yjm63GxbBF1wG+dxvHDsWap2mx/O3l43P3JKb7T5kK7CxTcW8oTVjfZQjPlYC8AOzRePAMFnkhiqvqlZFOD797Sjl1b8eju47G6i1tbvnf/yfV8WR4bu82dYmc=","translations":{"en":{"changelog":"- Fix \"Invalid argument supplied for foreach\""}},"signatureDigest":"sha512"},{"version":"4.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.6.0/release.tar.gz","created":"2021-05-18T11:28:48.502668Z","licenses":["agpl"],"lastModified":"2021-05-18T11:28:49.422869Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"o8orWOkgiDTQWIGbhD3iqE0tTpiDPv0MV4yiy5JPJMHfiEeu2fEpKVU3kSvukl95w06t99IihVOSIoqktQGxiCwRzIu9DLseYaSSjeYrll2Io4fQR2mWR74sDLxeXDxfN9vYEqHwDCU9dC9J7T7vwJn4Q5SeCOZeSe+wYcQ9DsqN0D2kBtDU5uvaNWX42lsWdKikvmOpWDO4fHnHmxgRhS9W45N3v+7vQf8t2EZEgLniYTgrEGHPF6rXwlWG2D36oCQSFYJGj8yVgaln9mU2IY3+/eIWWvmIrOy55J68nVez4STNOy6E86wq8ZJxwdaJwdfcWZclB31bTtVkRnbGHnWB0ags+z2gvsZHRshWJdYbXBez7YNTAQ7Xnvrm41Qst+SeRdQUcKa/utuAxjZJORIBpgSFKx2z5FM938EEZPtEGhWi+YYEabO6RmU6rgn7L3LB650LAnTIgaSvMv8fjzfXQhpfiePrOCxYwuMSQeneMCof92V6HVk/deXq7xDBQ39IsfGRKUoZUS3AMWakjH72UKNCJLLPdHsZ6HcjalzE1gc2w2OIjvzhK8tR2isvgsSMSAi6F2oM4m5wiv6VCnSMFawi8BYlQmSvHwy5/ZZa1/ov3lYIw6giRtyD/3sZh2S5QnerfQA4BQs9ag9WzWroAHtQu5jcTij6HaG37S4=","translations":{"en":{"changelog":"- Bump v4.6.0\n- Update npm deps\n- restrict_users_wo_assigned_groups option\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"4.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.5.3/release.tar.gz","created":"2021-05-12T01:14:36.790392Z","licenses":["agpl"],"lastModified":"2021-05-12T01:14:37.448986Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"pGiq7tjA3ilLKDXpZ05fHWy/kJY+J0gINDW31HC0HLwE3lbFuxBYV/FTqeIvdJIJj3LTYuN8zRLeH+2VJkZFw0sszIdawJDnb7dMoRW1G/nRJCFgDYaE7N4pg45YrVUfWPl66VHXCPTGfwmkdw27UyBsfCQw6P6QvvOQGWpu/xbgacYbcgLZTxhV+YekOQW6t2li5qn3xAfcUXXrtmqBfhMTwk6p5yTxKp0n6HcrA6Bk4RsPGYwB2lix5AgqR4ybpvYC+aEWYmTfvJd3YfV0GcFsmWqCTs9vUOywCDE14gFzyoSgb2tHi2OaWOtvX987abNvLQe8/BKGmTjYng44ywgJFyX7vxoFUme4v9eiYQJz3ee+Co9ASzWUBMcaUTZmSN4SONA3FIkfrQVBid+ioKckFS5fJstYNnS72aLqajH+5d/8N7/LlOf2aH7yhnB8gW7hzcf+KrB9P4rgDud6Y1Mb3ZO+qyULlgOPqCTlqSOfcOSa+tUXToZk6w3eM7ReUcoC+HI8FjuUA2wXUsy/DYhOSI4zfeKQlovWOuOeoo7TQlNUgm9Go2Ou6iujGfh2gjSdx5Q5eDMwL+6fZ0CdnRGtuIxt9t002LDPRA3SaLNz278m2i8W8u5BZKAYc5HOt/dMf/TeTtRDvUDDHN8XLU+4PRYUNs7jM4JtLr5PjXU=","translations":{"en":{"changelog":"- Fix first time login"}},"signatureDigest":"sha512"},{"version":"4.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.5.2/release.tar.gz","created":"2021-05-07T01:28:12.558398Z","licenses":["agpl"],"lastModified":"2021-05-07T01:28:14.493873Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"UAtHPBdCfUN/rmanMAaJcPBXzRIJn1tJApsnXQwSXuXlhpr3iujz5TI6BgC4ebA2gsg271uIq6KPFxAA9igh+O9nivDo9wLbkNvyNqAoQFXiU7jTAa67BQjR6rm94UtK+CyzK58pjeIG2lkfk5N2JPKfJrXReQGIHaE7/FoqWsFI0VxF2YLV70D6U7zp3i9jI0HJdkHTDQu+NBKRv+eFK7MBRtVRfeB/jYjqrQOK/7X9u1U23CaFDRBSFMlYy2mXogjTT0CMzqGByuCcUPGlM1kTgqcn1E9YtVvRAXOfdIq1PsgphGldln2/+hFp114cR9hn3TuPS8ooDDT9JZRFHFwIRprrwHalN/7Gv1WSxBOCKiYrPwd4NrrTIONQc94fXUQSGkMF0LHqDNmt5gkv88Smf0fbVuQpybPxXheZ/9GVNK8y+CpxG+9YScJ+GlHQ7I8Q0yu3GR0xnr5n3aXeH2kjrVXvHfA7CUoYEWS92n0Utjw29F8oJpFrPvWwe5NhA/hGHeS777cLB9pcEzQ/LIHrOT+DRfAcPssMFipKaEWS3hAyykHwYecJIk7JUayqoUX5qZc/71PdGnvaZlipol/mzaaBFXfG9DzGDwdLHxdVlkb0fTe3sVk8jYibC0ALZCcJ/89cTrtigF5sfPJsAUNwwwjygxbasHQsoNTHADA=","translations":{"en":{"changelog":"- Fix typo\n- Try to fix NC 20.0.1 issue"}},"signatureDigest":"sha512"},{"version":"4.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.5.1/release.tar.gz","created":"2021-05-06T10:43:29.327220Z","licenses":["agpl"],"lastModified":"2021-05-06T10:43:30.435098Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"INrlYqSgi29XnfqtlRHtzMZb0MslrMp0JO9zPTJ96Z3qZ+IZG5v2Vtws7hBcMcFMSRNjMjvl6O2GKk/8mDQnqRZYZcbembs+ASD7GV2FUduBdPYQJBlvC1fU1GyUxj/5cUZNmLv5GuGjEhtT8gumNj90A5+P7q/ROYy7vaNAGZkKgnG7zUauL1nCDbpGxwcRjySOywGPdPiINhEkc06RDOHGxaa0XLYocV8/YxWoBdL6LsDJpnFd8iHUsH0cgww15IHpWjUKoD57za6O6YSLp7BnHELodt81+6+93kH7GeUi1OxdLEAwspmraxzNbKEdd+d1r0kL/g7PpmnUjt8gRoM34C3RzMbGY2NCAg+S52Lx1W8HTNxv+1VGYNUuaPX2SOXi48vnXmvqb2zKyURleGhi8VteL/W9THLMIBLgwzuc8WmR5FOCu9PcespgT4FRXpTcJgcHEguJfb5w5F0ukQTQEVkUfqfyV3FrR99aYraDlE/l0UZjZsbmMOG6zuyp0b7S63VpOXXsRQLd00s0s1NfuZGBZY62yPbNLN/gnrSzCmTcm2KqhrdppgyCkPFMyeSQRNLSsBNkB0dIGVTMExQ6bOo5AOMEyPqAmPk6w1uQ3wYfBwxgowe44JXK2ZN4BqZUKlrwmni6OpFnuakJxD/rTUezcTnBhjPw69PufVE=","translations":{"en":{"changelog":"- Set default login provider for user session\n- Tabs to spaces"}},"signatureDigest":"sha512"},{"version":"4.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.5.0/release.tar.gz","created":"2021-04-21T14:57:11.992276Z","licenses":["agpl"],"lastModified":"2021-04-21T14:57:15.902026Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"pmdF4lE3LyijMC7jJt225HB1aT+OwYY3hDtMqU4N7bRGGKeI4JFuyvfZyebwFcbtqVUiE82+UfekBqrNGw6q3HegdvroG91CTslNFVpBYa3qEPT8qmlvYniIlIrIVucv0hji0LbSUyUf90Lj/u5Xczk4bZlyJY7R16hUad8yU3O6hjlWE06r9cdgp0581YXM9xc8gvqsbmOpVR8wRTzrlEdHouqHFG3lRS6kw6YQTDugz24PkDxaP68jXVG5qCtjtwXNJUtpO+XbQM1RLISpgZ+jDy5PpMkIKAUa/CsrH9OZaddaQ7WDKC36Y1SH3KV1j5y/izR48l6aT+40t9pu8UNCR2R7bxabqBI0qNTyBV/f7iFCGsPNR1IMksi7xqIqxtKkaUXwXmx8xAG996EV2PyRsm2WyG3tsMuIaePa7l0RrhcypfD1x8uySQtbDGIWACTi7DMoMWNHP0akM+75gBv8n6velu3YBDqAwHOgITqS8fKkPXyMOGkOTq8cI9od8Q5EVb4GVOs/27ytRhz7LeKzKir7i9J1ZSibhz2abIb8D/2wUoFyHO0kV5qZFQynssEczAAWY7J0Tsm/DZYYHlwGsFmdfkxi02xFNTR95ntZerk5TQCbM8lOAhjH5Qfg+40oL0kEfQSGH+IB0Dv2Y8I/BoQS+qWEm3rtoXv2MqY=","translations":{"en":{"changelog":"- Bump v4.5.0\n- Merge pull request #250 from giz-berlin/feature/database-migrations\n- npm audit fix\n- Split SocialConnectDAO into mapper and entity\n- Migrate database to using database migrations"}},"signatureDigest":"sha512"},{"version":"4.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.4.1/release.tar.gz","created":"2021-04-07T20:59:54.367771Z","licenses":["agpl"],"lastModified":"2021-04-07T20:59:54.992668Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"U2ZXTC020/gMqNCD7Wv7WIgqDrj8mZfL8+ehXbYCC/OWVBElU/PxfDjAkQkc76Y7zwUOq3PTGMH1UFgRwAnDEegFiKt3469DuZmPa7UhUHv5IoGHaDWeekbWEyH5f8N6OdOFdnO+Aox2SSjl+idZ8CV6yRlEGN05iTprA5D7+8YZ4y4UZV6ZN8B2UaiiCr9BKV1o5ld/jc4dRZvbyTYAbiuOTsR9qI+PXS7wIRvaQx/4p+tQ+2+uzZcwQVcPZOtgbqpWc1RA2B9hsXEhUIBPq5aazh8M/Z5nkIlXAwZbav5HhRdDaS2HBM8tkE03QC+J/OkFXoFqcNUG8Ri0DI/tY5lYGD2qNuwVQanQNXTep90Gu7auXUteckU7fP4RjXn26N4X6sIlCakdN/x+EKb+0ZsqInnczgmUC+dq9mhBcZtSle9/2jLWrxeC7s62YeUcmLftG2/TUi1OU9Co2uVDO3LUHq3NiPnYwkbNAEIy4uFoi9B/Eum8Z+RV/Mlv/y7sPnHZyEnG2CE9xF9gseoJ5JY1uO3cCIZjE7Bsnjie76eoH6KIRbsPYw/guUNHpykPN/XwWkwKsOVMsJ2kG1nT6eRHZGYXHMuxQDa4YnFUamQbKL9BQDT5fwtinHLYWSk5XcimWwc1pg/bT1eN9VMzvN3P0Oesl+goHnHkMZJvjBE=","translations":{"en":{"changelog":"- Fix cron with hide_default_login"}},"signatureDigest":"sha512"},{"version":"4.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.4.0/release.tar.gz","created":"2021-04-02T07:27:00.673807Z","licenses":["agpl"],"lastModified":"2021-04-02T07:27:01.306270Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"NOYguuIqEKlpDwVBa/ygxp6EIAFuo59WWw8E3Cm7MvqWsZN3sd3U/sZVYD/CDq58u0SAWi6gCVHtPqZBbQpdRBHgS/wADWLb1uvcjsDKBlcO4nwASG3GiTledqTyr3/Om08yzVmIVa+6bVLCf1DZ2DP2LirgIMG1ymqBb1MDvWwX/0DL3mPMNVurUqtNcdY+9WiOkRiuUuRUYQBKptHReaGd+fiWiQQLoeYZW01TLxBCuxtC5EEDDC4up5FgpFvr+fip9JRE89bsklF4UzwHGP0CESHgNJspi5sNYICGN7PMfcoNadF/dPsDAvs9ZsZXnk5/CrufwX0Hmh7kzkh56FPU/tj31q4rUv0aS7EeMKAvEvzuQepE/8aa/Up/6mDqoaW9g7WR0oH0DzwICPxdCvvPoFnaRHZvTa/l/iOGOji86Me8sVFtjoPh2Lah8TwELQ265SruIcKLl7FfhHmZNKPe8zoB7SDwFFQ5u0szCE7e3LnieECTGvxwBjOVUvWFw1LDOuR9rzzdIa2t1sXsldCNPibAWQnsAUICtxnWocUCbgeGANhNOBIehFyyS4WID/pZFjPEuSiYBngfVB/Npwd7QK/LiSzeJdhqQxVxRUu5K5QhKquQTMr6+ysF9+xetPwCQ3Xs9GczQ4SpLXFDA1nZJKqMAg1bHIwk9+YQ8wY=","translations":{"en":{"changelog":"- Bump v4.4.0\n- Add Mailru provider\n- Readme fix\n- Readme fix\n- Added CLI Configuration Example\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"4.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.3.2/release.tar.gz","created":"2021-03-09T11:21:52.280339Z","licenses":["agpl"],"lastModified":"2021-03-09T11:21:52.538469Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"OD6gc1P7EOm1XZu0E7QfLNftq5VTBJBXG1Ujayfd3IHD/xsJgwNeXJIWNJhnyZHeRx9s5hPvL12emkLQXSaM6UrZ+oz6TgjLNKKNAvwPUnKsI+3r541TuVB3dBIDXL+OaJgY/zgKotdd3reRHH62r7lM2bBGfIVclvBlem+VePGJc/EWIY65Jcx6oe2Jcy6naRzV5i06wQn7XvORnrb/FKQgCN8/coc8VW6d7GWFB5op5PW+K9hOx3aw/8Zb3l7AikxU6vYZsn5Ijpy/aUAKeFwO8xLTiY4OUsTCkpiiVuQE0CU1UfZkaTc67ahl+bEMoLRZBrPAq4tDa4+QISl5ZoGdV39RQK3J6SnSiASUYANPxU1ZGWYbEpjOFzttWT1tm02RLW42ssADWuXtTvoaXjd28nC7Yq3+BRJFvDQVUUftbENdufjuWLTWb4hKWY6g8O8BOpfbALTWT9ACCklf7QlbGhPG/uWA3yFJ+WdDXE4y8dEBp59v2fHluAK5XyGUCYrok2H7qoNqxcqKLI1+SkaYCc6J6Oo/uMGYnvc9qUSaeTDtHhCIqMA39daE9VhiMmTruymctrDqsvjyZ5v2w+4XhPcRe5+3+WxzixcYPBwjIfPZ6gBa4ZTCwoetaf776G1LNj1Y6/tPLiQgWF6aWitgZaKLgLN6wsiD9Is2778=","translations":{"en":{"changelog":"- Bump v4.3.2\n- fix: button styling color not applying"}},"signatureDigest":"sha512"},{"version":"4.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.3.1/release.tar.gz","created":"2021-03-06T07:16:04.403771Z","licenses":["agpl"],"lastModified":"2021-03-06T07:16:06.770037Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"NDEvZudufO4hYu8uzvLNFY1fMBrJICiFLFNb36tGybJJ23XgQ2R9e6/wSitMYIquKq+4cHga1VRmCAYiQ+kjigGMAvmzMCF+0Hp6znGTJrSSZ0dl51lxYwVeTBbACmwAEeXYqa0lRigTvJK9zZ+MF0n+OKVqWwvQ0RPtj0por3tlDMRnVb8FZ/QU9kQDVoBW75BhJI0xhlkebnV8wARvcpni16g9F+6xRtVd9+eFBfKGlJni+3fSmFMskjPQv0fuP2wkuglaDO1lLzuHX/5aKmGjwtdhIw3K5ocjrO0Jt8+4KLeVP0mJlU54r5k9WC7KQyluA0mIH0+sqAsJeTri6oLNVDlltGxUJ10kXAun4NyiVD6ZMUaG9VqrVEyRs4zmKz5yDH6MExBhx0Q5rVC5o7KnWwSOYLpVmsarEn9x3kcnwApQ/LWiNd4umkOGh0IFzNXPM+F92rYfpE9SDX1USc8CH5Tq875rDhxglLOijOFdK2UDj18zut0sMuk+Rydk+clHm+cw2/ntPQl2nkZLUEwpvydH173FDi2k1/DzB+wfc6mMCA9SGoAeIWVxJDmzzeoE3Z3WEU3MhAOPjv4H+K7zegVOueDYE6xaNrrHyc/S1iJLhyn35ttDtPP4JAotvivm5nGEiEDgMtapI2ua7uxoY9II0DQqDq6pmtrkz7M=","translations":{"en":{"changelog":"- Bump v4.3.1\n- show default login via button"}},"signatureDigest":"sha512"},{"version":"4.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.3.0/release.tar.gz","created":"2021-03-04T19:29:53.268903Z","licenses":["agpl"],"lastModified":"2021-03-04T19:29:54.495895Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"NTIIN2UvL7DDQ7JH5EZnSwe+/ELB5FlPyXJ+y4CrFfholZNzKE24xKtb38STkj1w5Xd9QAhNlrXdt8PMp4uFL0J2zDZcYDOGlYc+12ZHZ7uAYSipPvVawWApJGqR2+IKY3uZVIpvdq1dn7RBOuKb7K0z/l+bbj1pe6nLBSXKXtm2MDIq85z/GFtLwQe25u6w63gBEmWZmPbO2D9UU9h2W2F6xgBXIXIpE8yFM1scmWQn7TUrFbU+t5tIecUz0BBcYBNYVBkOTDnXMTlwhQLYQnuhF9V8uP1vD8B6Mk4fXfB935F4gx2E+XCEBwgmepCwO+kJ+4Rro07oYj0iVlmZclwaygntp64k3kXnT6XUHut6ww38lge52mGHth2oYF7qJQ8WcxhSUQR8xq50eeUN+V7+49Zi1nHPxPhF4+d1pM8THk8/xykuggP3KppuHrKoTTZuv8pq/KlZKJisOw4raBWtqcuvme8gosfiiOeABVcrbZatDEz7NIybG/pYeSgW4H+MfE375DEBi6qtEQdNhIWBTPeSS28pQ8iZdv/rPDGUvVbRKpYUa9fHLyWUXfRsyMAXb+mRjyQ9FP7y5y4Jv93w0oaAnimkDe5RVPl/n1DPUKOsV40jH7IfZ+tnhyQQtYZzyBDz+al2s4CcaNnbtsGGdvdy47vaokEMeJCc2Ro=","translations":{"en":{"changelog":"- Bump v4.3.0\n- German localization\n- setting to \"Hide default login\" (can be made visible again with /login?showDefault=1)\n- Fix CS"}},"signatureDigest":"sha512"},{"version":"4.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.2.1/release.tar.gz","created":"2021-02-28T16:52:20.731987Z","licenses":["agpl"],"lastModified":"2021-02-28T16:52:21.984872Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"nPGjXbXymlUbKoz6BmpUnauXAilPQhiAOsdcabMIA7DNff28IOUlMs9t4BINdOKgzsU+O/NM0VNrrFyK6NxmroMsC/UOzm3RIiO1Mo/to0uLRcn5X4rot8gChAT8he2680kOY7EZzaF11JPBawGIfq3taT4/vD+jhnVx5wYaGIP7PyeDyD1DwEphv41cq9oyt8deqSsKWXsJRTudLCsPPhRo7GODiMafxe9rISrHm/iwYFn9X6jSd+Rs8018SZCbRZ43eXPXqrIS2iU4XdVubnWimZAKbb2gR0yNji82jMN0kgQEA1QxDvizji6UxHuDE45gqtftwI0PRTR1Xom1XT4DAQ+APq1QefqAtvJjqf+6+PkOYfrAhuFA4SO4IF8Kbmm5ufsqi2mdyhH1/6ruVXe8PaA+HGjhOxLw4XFMGMHx0lpbSOqDOihhfb5ouqDbxIjhEEtkwm2v7UeQWsTnNZEVa/bXfN9y6uAzDL1+S3yuBkIIG8nP4HA43QWU0kmAyOFe5OWGNdA+dodsX9kbWC3kh6C/xOJkeFsc/WY00uk0+P7eq5aJ83cWiUVKuo8cEUg3Ez++AiHj/szzc1BPl/oGGyFbVvMRfW+GCqHUgnS1tnvJ15Efl6t/U4P6qDqmWg0FEto4S4doj0HHoWv1eUT0nWI8KVYAX7RgfydfRXc=","translations":{"en":{"changelog":"- Fix extended groups check"}},"signatureDigest":"sha512"},{"version":"4.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.2.0/release.tar.gz","created":"2021-02-28T00:51:59.900395Z","licenses":["agpl"],"lastModified":"2021-02-28T00:52:01.121122Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"YhlBlbbkNZfhn53HYUPAR9wUjwoUt068dkP5KTkkTdo3vmK3HMihxgXp+3rqRoHg+lgug5SBpdUZIE3Zg8X89zyTT7ias2guNzcjBk3lhCSkhPdNazdLo6m0I963l06EkjmYYiBDudv+RKp1fNp1h8a3cM7CHNxnJt1wX/Ys+h2/LPIMxe/0Jxgve6qxqmR0ma/4nPvIMFDSN/ayMguYZSPlZ8ug33297i0v9cD+UX5URf4OQ3F/nGCRj4Z4mZQB/BE5K2/ZfDPEIpxtChYlHL2B4g79uriSlfSpTCEEpSAZSELEdL2Y7fmc+mZ8jHePKIGgC6DnWfzAW1TNqB5B85fiQ3E7BZz2Kba97UsLX7uoEw2Qsgm6+vE+4ho35TLzgMMF0tf6O1hlXgBDPOrcus/2Nqm9AzHIfqgQYXRJNs62DAn44+CQpDYBPhW84Tr1Qxd2KsHbTNJ2b8fj3/UBK7zc37e1u9uAp+r80iFWaNCnlv6pGjMXixMvAOKn+VSKPxZltho0owxOIsjwGT6On33p+iYcNgetDKP0btXjOEjKmTydHqn4SteRQEt3adTjAkSFp6izOUrMjZ+KwuJ5/LV0y6vS0d1he2uSJzbQ60aouZCnhNJG1j2uJIk3ni+ceJ3nPcATNxpJhasYXXFeE7yDxTxmh3Mw4NtEqfzeEEo=","translations":{"en":{"changelog":"- Bump v4.2.0\n- GitHub orgs fixes\n-  Login only for specified GitHub organizations\n- Readme org\n- Add GitLab OIDC example to Readme.md"}},"signatureDigest":"sha512"},{"version":"4.18.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.18.2/release.tar.gz","created":"2022-10-22T06:02:44.866043Z","licenses":["agpl"],"lastModified":"2022-10-22T06:02:44.941037Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"Vvc/+HX7AKqZeEWzdyvJuO5lLHJTLMmJGppQ9pL3NwICzOgDT/0PhvI6uKftWrnHRQ/g3zNaEgrLyeqvvAvxJXN5A0mcWeTwx0HAovnNlr5RxhQ8zUd1eOHOSUwCZ9H3Exsbbn3nrrQEiGv2rzGFNcpn+Vw7q8qlUeFDKEotCWDHb96a5tlzH8frXCtdGteW7oy0+LY+gdrwEl8hsKz/7ccVEFllC+SBOPfsJYCqhOmuDvT7FvkFLoXJZ1AkFuSDgOnVJNLUYlVuj33DJO2iAKPABWjIxd4QniYujcke9qMwLmMIF+uQqW1oRTdD4fY2iz5dxBWMdBjQCgy16oyjfC4o/YN/iJ+uBbbwWyZFjvomX7Thq+6eFFFkcabHT60GtUeaWwBlVtcs6o2uABCiQoJL3JPzDFfFZ883yZF1wUBRZ3FfEUmVzh5O9RVwnuU8UnONTyrJjE/rou88g/5iOs2w1GMWgPwV2R1M2fGIGjoO253D1OXbnWlDBicOZaAz9FkqeHx3rREQu99VimXWbtqv0sgMUiQk8atisWRJmL23sNSv4+GMZkr7CHzoliVMRBE1z2gaitXdbMgJmZnFGvUref1d5GLr/puo44UwlWQwcAU/1v7dimgzEjkO/QcTmvtK9Gfb2wuRiGPBPVJsyKYWS8L2fPIGsw6gg6nwjSA=","translations":{"en":{"changelog":"- Cleanup\n- .l10nignore 3rdparty\n- l10n/.gitkeep\n- Transifex config\n- Button text without prefix option"}},"signatureDigest":"sha512"},{"version":"4.18.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.18.1/release.tar.gz","created":"2022-10-20T05:34:41.858450Z","licenses":["agpl"],"lastModified":"2022-10-20T05:34:41.904693Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"K6rV58XnrBIlL06jtioXe8BGwxYrEtp1SaratQeHqQ2WoCmCh4yP67T8y7jGOncIqoQoutLg9UTppQELYZdOOX+gaagjgjMGRqFvEkfiTyyU1risXJ+7B0NRyFcbGHQheUD/F1OogGdV3upLM8f2pcLJMsh3xoJriaFSGcthI+xuBsdYBUdMccbR9leRYW8yvyhl3CADX0ieqcjc3rphr/biBo/AKeJeenW9tUvPLT8EcjTBhVA/Tpaz+sa9OLZbE56QBzBLholurdKxVQ7y/quO1pfBx0y073QGWB2Cvscd3uxsuXrXNaCtlEJEXxEc8Ix3Nq5/DkKSrdqaqcCCwlA0NechOKHiYF6ekhAQb+IinB/YoaAnb44Tg9NMV8VqIJg9WYvhoWnoqgDrXErF5FpddWaSOZWrlfTpBBPt0aPpb1Kc/RdLELpm16DpLcwaBdYBuTQiAjO/L8wjQjkPjZ6awmhucJ3YdGKdG+j7v04t9Q8+N+bMTcOs388aHV4eKD+bhExf+7kY+q4u/mjwjLEYq78Xb/akgbau1F6o3TsR8AMuGD6t4dhw+s99yimCZj/RqkcSLs2ykMuHihqoyT8mw+D6+Gwd4xN/RvA3VKZ1H/IDn6JMInbBLDUJKjvps2MufqmbXh71Zvi9qfdhMKMGHdGjBc4N6XBkg48DQdg=","translations":{"en":{"changelog":"- Bump v4.18.1\n- Fix telegram button\n- BitBucket button icon"}},"signatureDigest":"sha512"},{"version":"4.18.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.18.0/release.tar.gz","created":"2022-10-20T04:13:34.346681Z","licenses":["agpl"],"lastModified":"2022-10-20T04:13:34.393816Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"gXfdy4XDOj6NjwK+QNyWgBVAWRCLnF6dnLdCba+paXMTeKY58Z/6p6Ijg3perOas/GAbKBI/wT8TEjYq4FdgQnanaUyVwYCX7pwj35jJcX9k3S4xyrV17QM8Vxy8dHmJ9bIe43LtAFAmxSRLnSthUYDb5sz8AnCvyNJfPZe3yaE2hv3ByT0+y8z7INn2xo3kTMU18AMrG73tiTaN1SwxokHXa4xMBIPBLTU0yTxbQ2X22X0ACU3znYXsJj0W6S2bLdK56qe0UC/yX6IbKCUk+m3a/Pjdr2jx3OgSDcYcJg4kJxblPWfXPmX48jvSeCc66JOc8e+9JRApglU1BduUUwpP4exyHkqQfVZIcivl+InCRDq9Y078tjhVQPOuuxBBkpd3wOoN6hFBDxokGGpfmlLzk3SLgLGkulFdJkYSWBfnUdd36dQb3OwM3aV7sD31hyLnlZOX6RHzTLmln1Gmz/NGi97tePZfZe32PwuqtcfLv3uog/ao0xJafVh5O2HPjWBwc2RTHrs+19C9XClopsv01nLqZtKr9qVGiYj4yTOEGrZzbOaP1uoJBg3JEGbXX+Y1VuXQj/kvnygs5X6DLR42hl/tt02/3EzqPrM20JxlaRF3afOKhrYBRvB1KXjEB67pWLLA3m244IWUP8vtdpsM7PZal3bG6NdDZOWv60s=","translations":{"en":{"changelog":"- NC 25 compat"}},"signatureDigest":"sha512"},{"version":"4.17.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.17.1/release.tar.gz","created":"2022-09-18T19:26:14.805578Z","licenses":["agpl"],"lastModified":"2022-09-18T19:26:15.134197Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"DJPNzfcxk5Gvj9/YYSedkcrAbVD+S32XsOpk0pf7Kv1u5//L5lpwZKvROGNsv7bQtN0+cRX8nX3dXtV+h3gDW2q9wgPsQWYyk8RAy26RlmoEzdJO5I7Yu29+khTHa7hGmsPCtfgodbrWqRQGpXKV0UuRyt+nYxPqz5fV2/dEQ4T9zKEsZjFnk/i9KO+t5gZMuqzyk/g3E9T/rkz3lofZP6rZ0ruUH6cIKHgUzdTiZruna2/q6j/bF03gZeUYocPVXEjmRewcLu46f62uI42kyR6n20Wv7XM0ETtd52irH+2gPZT/G84AUTfVZkCqiZ77kfuzcTNNeJzZPgamrvzuBukQVbeqq/iBImm4P7LsVbpWSyh8fjfYP+cYXlVp9z8R+z9LxhwdDI5QPRyHr6q9YBjDJ3gkVlc4XRDT1jkUifWuYISW9Bax5DA6XxwAQmIg7smtEGH2sqJoNcbLMcrdBLlk8CJDHhMhB1HQaGk1XiFXWIH6pk2JQe25EhZ9akgrMcrK+i+3cDy4ahv9UDOlYIjXwdXKy6FQeI0bzOvn+iRab2Ko6/9UDHbOzqChG8Z+6vN6ocPBDLOhMJrePq+5eQJDuHhGR0hsgKh32a/dUWwF0EuLLa8C7V8LhAmnAL9Opz4PamukIxeO7h1Fp2rx3vmS35V3C1hFw6C3/WcqEnk=","translations":{"en":{"changelog":"- Return empty response instead of \"null\" in api"}},"signatureDigest":"sha512"},{"version":"4.17.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.17.0/release.tar.gz","created":"2022-09-18T17:38:08.497798Z","licenses":["agpl"],"lastModified":"2022-09-18T17:38:10.721927Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"RgIQcvRjAbdm+ZCMbYqdiF8owUf3ohcBnEHP9dKwM3iaEnQqviHwklRXNJofyqo3NG5gII89tdTodJoWXNoyL2MR5DRK0O+kvGhq3SJSIDN4VZSFa1yuVmb1WNsrn1ClOJGNhLRxGmPHjm6Mk4M9SeNHTsMkgDPSPkgdeZ9Z/PFJtuy3mRsW5+T3kru3ugqbB2VY8p1QCemhZKBxiUdhZPebPXmu2TCtSAsj/h8XtH6bT9RmwuSa8k8HD2Qb3YIvx+/QK/yd6do29xHEFCeYtMPxoxG9zvXihJDP/PqgqjdvNWHJ+MMqXlp/l78ogvZ36+OlMueE2hbWW72RxW+h09fcxW1lNPZTVaBWAm2tPCvNGBkvH9mJ14BNNk1xMRaSOgCMeeneUkRp483AERP6kvxP790OQtsQXDoKT4SgslMKo8R+2YkW3631miWZYOol7nkFfVgPAUihRY1yO21eQSsE2YFA8t+LrRJG3MquaF/4n8fwGcX5/obcrnpIiwY7GubxHbHOSmqSTczZllE7GmNljEW9vaM73k8KVnVmg1H4gmtxW8TnS4Wf2eeAqZu7g+5F1t/MGINzNzTQVQ4sNTZLqeWXR5mvimAM6bGVlm7JVJNBWMztXn3JRw9RNWhxNbPo0WimhDj2At6JotKkeUKSKIJIe4WJSkZwS5SrUgU=","translations":{"en":{"changelog":"- Allow set config via api"}},"signatureDigest":"sha512"},{"version":"4.16.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.16.2/release.tar.gz","created":"2022-08-10T04:15:30.328386Z","licenses":["agpl"],"lastModified":"2022-08-10T04:15:32.359668Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"EN4AoH24EXXfvgUtCneqqJvgOdQnJuTj5m59y3VYYhHdj95uBZIvCPdyhZccTo4JsGy5BrqWUYZ2pPWkqcJGIWRKxXzhBmowCoofiH9wUnZeWl01+4M1Dkv9oL1dQSBoFsTi4Dl/+o87GePPoHNWTDzlN+RtgHd9A8fNBsndLPQjSSs+j55xmGMurPN8uwgDOxXXrH3EghnVxqZxnQBMq1dronQUBIc/UnjIEzQJHpPLAJL7ASN2JeOaz9oHGRensP4kv8gGKf7wQYd1O/IY38PasZ91qPzSUEmpOnztldGqy6ztv9OYMZG6da1K0RcdO1eX98fTJ8lKYSaYQI3RIos30j+uGAdEpd/arJbsSwKL4AmzvUdKA8DFjUomRoQ4puRaemfk0RZzJSfeD5gt386lX14B/f9V7mb+zzU4gMjI56Wy7otG/r2jvRJqDdX8scy1s6FjmIJ05aotPAtgh/nASuZKbgTnRtjOyRF5u7i5Bn/a0VYYsQXtHeqOuRwPQr+vrWYSOJWlLwBdDep1YIzxJBGS7SIK4Z1DaKM8GgfaabMFlCppbVSz+EvgE+IvPFPQfJtm1uuAnR2npFGUe3x/tYojOHiI3Sly17TeDvwz6zlgZ2QbGS9SXKEVlRu+wMKZpUPBkTddJyKsO7jkdQw6ZvALsq2B95j/oA/scjQ=","translations":{"en":{"changelog":"- Ignore all errors on set avatar"}},"signatureDigest":"sha512"},{"version":"4.16.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.16.1/release.tar.gz","created":"2022-08-03T12:49:41.265087Z","licenses":["agpl"],"lastModified":"2022-08-03T12:49:42.752855Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"bomV3TlaoJeFWN/ZraJeZyn5dR411ulPmwNkHgUkeD4DSle26Y8cYi8wVl8HwgkNIpBfgVYBk3DSqQG6w337WQHv9eCupPC1DkdtKRZbYa0qeaSTnGgZNh3yvWPA2wjaFtg8SQdPVHyp49NZXligr14yUmlCHFGHQkvXRMPstLNic0KjMEcJT9jNmu4UcIh3IEer2p2yemefc+VMRYXOnMQCkvA0LjdkVEvD7O8clkPvuZ0y++y/HLFwCRAgdG94FnZA2lJrWQe/GuB2dzhNbessf7LOcZHGO/UMlcut60bEWuidyVqNOa3OOl7kwQux4SuOffXUz4GFcPQNjPYCQXFWst3yeP4cHC/FGeUcOu2Up8d7STam37KELO2rP3PD9qF5UyfV7KZfAQb3J0hSiGX5meguULs1N3WILWbLJoDCKlnkKYku+08E6QNF2jLl7ddsp3K+fcPsfmhcjy+/e9g8xTgv+agnehr20/SiCeSR4Yk6pyTgqhLjSzw7IPO0/SlPwrUTyG9FDyPknWyCQP7UIKlUUu0IHPyIYO7AJncOdm4pzxjZ/7lEe4JNbKkbJzCJzi4FlcL4BFSm16BKsi8mZuCHLBecSN/q3D4tbLHpQv2ukOcZSoPHENIIySTLL8eiDzYH+iU8z31UNSiDnhUH5NS2sMZ27DCmLhjMAns=","translations":{"en":{"changelog":"- Js builded"}},"signatureDigest":"sha512"},{"version":"4.16.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.16.0/release.tar.gz","created":"2022-08-03T12:47:55.636885Z","licenses":["agpl"],"lastModified":"2022-08-03T12:48:00.450332Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"H2HS+lpY6sARAKny1m100IpSZMfoAMhrJJ4JKsJUgyrAWmACA/VWvov8ohnPVhnuXtGEciU4f5TU2mWLLf8ZboeG5zkHXzS8rTr4sDVnXYjhrpsQu44BuZ0OowVACIrA7drzbRP5E0FRys0cEWQFS+pQ1ZrOe6p5wQqzLYFWibOkIAJb0gciiPwfmNUDj6lW7tEmjukYUcdfbTfI2mnL1txpPP1nzximExxR/LMSEqSmMRB6R0zfRf0Y2d3VnM+F8QVfuZCf1/N52vSqS2yTea2aHAh99DG5TIRHS88Rb7ICIVyuISokhd0YMJEx7K0Dg/YhEyigR5rMCzAFUmZz+xHUMG/DpLJ2yDTuwdJFtv9Y6U49lgyVIKV24VXNgIRR0NXmWZeAMrkaxqozI1xETnCXrV4RlH+zy05kmIPYjLLxNiFLxgU47CcGI6GKLK7Skh4/p9cwwBcofSC2ySCsEW8ncD+fXxK7DqFzIWOJQZQTG4hYplK1URrKPzbTL+f5+RYYj7XU1aVRpfBmf54FHOGLItUY+TBTXNSHT7MOkB63iYctzKwALNCNqotdFVVMUBe874iAKy25gzSrUz4QfrEFYtFv3/vxzTPlRkT4N+i7EUMYqjuEbT9YjPavUoPL2n3LNRw9DuRz944PoW7HyLamyYSfU3dSHG7u4CT9Bpg=","translations":{"en":{"changelog":"- Added \"hd\" auth param config to mailru\n- Merge pull request #366 from zorn-v/dependabot/npm_and_yarn/terser-5.14.2\n- Bump terser from 5.11.0 to 5.14.2"}},"signatureDigest":"sha512"},{"version":"4.15.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.15.3/release.tar.gz","created":"2022-06-01T00:35:46.484113Z","licenses":["agpl"],"lastModified":"2022-06-01T00:35:48.708949Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"YXGDJOj1bxSn+T2EaF7iRktn20BnR9ILvAiCuCyrp6BEuufoxG2vw3i4+wHtQTg/Nqjjf+S4fQQ7+nGXGTMJVFMy4F1Cld4ZkAaCyarzHjKB4GDaFd0SAYtwlOymUeWCFlCf7P38fV8/bkKTrMksw5i/p7JoXAdSwTA1RZsLmtbK4R/l/TO1tUq63Uqiqz93Eo9aQZkcy6VM0U1SBCrCCZ94hP5LPkhdJBDB+ougf3cv3ZmEgY6CawYmXbtxV7VfP5xjoQgp+IobdocWI3//luuKPUPCOYY+S/hPydTPOp8k9sH6+rOMEytxXrVGhFqmpeeB0GQRYSHbR28tJ3G7MbpB+P5P/HVyWX9Mad1wFQ8yoaXUeWzfbzh7h2H1N3P7s91RdGb8pvIoMzOj/yYN4N4hNnIm354Uh4wn1mOYnSXlUTwHFUgrHpetUDLimVwmJf33rERHhBr8IZC/Vq7aIMG8Xf3zpMzdSAbDHv//BJhQVZ8+ASyCxm2fqFd/ZQL99feDC/Uccmq+elJfVm52rnGdFgoxOxKnRN6PlMijhXTQ/b9qKVExQtRYaJA536yXzbwg80k9W0FgYusWGeozWfPVLxhVwSQUh9bcp+KKRjarrWTP02bwxqRRqQrP4BCW3OOd7UBzHU/nE6D8dysQJF4LzyLXmzFHJcDq/JhV+gw=","translations":{"en":{"changelog":"- Bump v4.15.3\n- Merge pull request #355 from WhoAmI0501/patch-1\n- reformatted all l10n files\n- improved german translation + fix for some typos\n- add createRememberMeToken call at login"}},"signatureDigest":"sha512"},{"version":"4.15.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.15.2/release.tar.gz","created":"2022-05-06T09:07:03.537302Z","licenses":["agpl"],"lastModified":"2022-05-06T09:07:06.524902Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"mN6yEDoyv0Ym2tSHef5zEU1diMs71dcdSfUmb3E8yd6/AOshrfNWjbqIbuF5rdvFJ3+VUVwCUyHT0X3HUnoisJbkcqxpNPu5vef+4oC0U70xBz5FiamuqgwtLu2qXwE8oCUjq6QsEvLrHe2J3XCCVT5+Svh88Gxx435MiEyZ/9n3uaKkd2Zc8ewwieyv1k/b+P/TOi0HxdnMQQjUoy42gt8BIMaA0oOT09+HJTLL5zSJc8wTFYhLhNpQFU3C56m1adhVjabL0kanU6V1/3JBTYkP1U+nqxSjHXpYPNC4Obc1Myjx9cDyAth82AxMgY8fW3ApsTxhvX3HGtKv3nitrxkQwn6EA07haGYEnf8P2tKDEy1/otTzAQk+SHbOvbW3MaDquZKcZ1h16vD6Bf3gpDqrp1BokHUz8OOFN8bM8O7yqtsjrDfkhDpddetNtzDzk/nc1WRNfZfcL/FFRR/052mo3rd5jlCAagxTTOctbrP8U7RAZWMcFoK6+6Kb5qMISxtdUxOKHvYmJgM5NKxdeM39SgCczixnh8yNmKPSRrGT42UyQ1iIKidXAxRHByZ5ISCRaZeWUnbzPO1ERmha7I4IFu+BC93TEy5OCUqQjZDyC9dUKi9CXmYkDzLwg7cHE5+h4CJqt25uJqtehoC+Vd1Z9JK0vn823aypOHNPYL0=","translations":{"en":{"changelog":"- Bump v4.15.2\n- Merge pull request #350 from vtavernier/fix/login-redirect-oc-webroot\n- fix(login): take custom webroot into account when redirecting"}},"signatureDigest":"sha512"},{"version":"4.15.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.15.1/release.tar.gz","created":"2022-04-29T02:18:21.830053Z","licenses":["agpl"],"lastModified":"2022-04-29T02:18:22.396237Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"hQXrN9RW/a4KEPLqhicrU5yZK6Nwo/JeNWx51/beyFQpawqPj0Wmassa7pFpEngt/r/e9Zkp/dGYn294/cUDcITItLuJj2GSH4BrTtQ6WBdsG9LhNAfa73MF8SDWWaX7ZSVhVSCeUU2n72ZjWIbXrVLXEoQO/X2QWNx+yJdDsD+EabsIPGYg9ugEGrzCBRrv7ZobzC8p5MAnUsGjsrKfgwpntQqvi+DqlsD8eteUqRbXjPcx7w5bZ37soehFCcmIq43MFZylj3vn5W1mDwAV40iShBNjwKxN5TO82L/0dgLWZFVeQIxtuOkuFEDaxmZQ5aRrdrbZjDV/aePb/jNpJzvGihbpxwoX20bGls2I5nCeA4INRuUV683v1X0YF36UJvRiEeZ25kh/ZeIjRJYMFhtOaikDTyCj7deG7OQSWIrtVCWtXl6vz2frIDKuSwhhkBiUQU8Q5I9RFDPi+nPNFNCJx7BXG0nOiHlK3IWd6IU3630csS9JMOkyqJazFjVi3EajWZaPn9BkwvBN9woXC8FEoE975onMubI+oZo3GA7pX1g7ONWSz12vOqJgysQDQeGPYuDn60/+4HmfFemUpdPvYg+OON06Yt8oimrp+zyJNOUltvZ8EFBiWv0UwDfBDknFCK4PpWDxuR0fYnSHAqf5m6Hk3op0bD4DDH+0uFg=","translations":{"en":{"changelog":"- Do not require php 7.4"}},"signatureDigest":"sha512"},{"version":"4.15.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.15.0/release.tar.gz","created":"2022-04-26T18:33:34.398847Z","licenses":["agpl"],"lastModified":"2022-04-26T18:33:35.349680Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"e74e3WAwnTa4RfkC14OiP7SOJOYKGgGX8zioMp2HnBLOPjw55xnz1NHimzH0ec3WPbP445raa3OVFNBYGZaGOcD55cROfvdIwIQzgvlq1+GeZ3YnKRZam3GIxycLzs5YoPND6uQBbT+/dkBiLzj87G7CwVeyi0XIFDRQt4KbroYqM+9oUhZNXgWVg6W7QUcipD/0JOSu9/pKNRH8p8rWSpYz2YuneRmpEyPVzQ6MS2/lM+p72+AcuI1/qxhq72tVxZrPfgQWGaXcRZ2oVgc8rj43uWX1qwUMEbusQtW/XupyglkUs/auKJ/Cn78hXREhdwzSfRDpnq24NSbHuex1X0NB1bNUZx3zGEOoN/l6PLrloxXClLqkCz4UCxHBTjsgi6TujKy4JVRv0RH0QaVpQWEgqcqrA+wDViynIki/NrFa1LmmoxRp9Q93O/EYhDXzwOO10b8qwFK4aKRfagJW4h1wn7aFUC/o4DTUCjYtuSFmIc6h4CD/VL0hGuO3JSTjuFqBLIVZqNgsAgReNivR23RxM7mJgej6yEGqmApJhpIh9argONXun0A1Grp1eJKUU7RrbXRhf0iKS6sLdC3CbCSTSxnn/88cDVVzhdQj4UmTJ2XN1Z2gNtnb+GBJyNjr1QURrNX5/qf06u01yrBZ1oXAJcb8O9jpHoYfd9zvb8A=","translations":{"en":{"changelog":"- BitBucket support\n- Merge pull request #346 from lavaux/bitbucket_pr\n- Add support for Bitbucket\n- Merge pull request #345 from zorn-v/dependabot/npm_and_yarn/minimist-1.2.6\n- Bump minimist from 1.2.5 to 1.2.6"}},"signatureDigest":"sha512"},{"version":"4.14.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=23.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.14.0/release.tar.gz","created":"2022-03-11T06:38:50.370994Z","licenses":["agpl"],"lastModified":"2022-03-11T06:39:22.241039Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=23 <=99","signature":"KSgkiE1Qj3U+KbyuJe3iEEFx9eovbuL7wyhV8dzDlV4ZvOEcFFcRML5Vo58IyGGDVV5QoWSavUZ/yUTmi79E3/PhZGkz7HFdXOC9ZH+1IcKTi8bAIHSmgSgPnaUeAExl8FLstra/xp+5USsT03WcCH7cB+87FE9JRcodo+0hd6l9A/dKhvYnhVtxrYrE73TCrcGRb6B1QO7XZyAz6YNEfrUNVEXVn81rfY8XaGzBU1HUYDSE/bCF7LfmGX9eFh/9h4zI+UvBie3C2w0aDVdwkDowmZP2rcXT/zpi79Iv7joGQ/kpKFLrknaadcYQ14NTdzIrBIUNN4gan5ZJnf3HdpxNZa3wm82d4DQlut657D38qPfgsxPrru++PEI7+RlQ9zvVOI0kDlqYvUhpecbUmnBoIcz/YP05ZbWbVK62RguRMtI7AYnOVbaUnyPkPoCqVAldJH8rtrSQhCgfsM6vEkqY/CdOGaRG47JaNrKFK5QRUJyimBAtY+tC2xghiVUn7+H+VPpa9Zr1r3Iteihi7ixwTnoteMq35TGj+oZTvPr64RbFS+PqXvv6OvzPDJpvI6rvFG9PaBSXayxhrC52LMJx6ye6OvvWdCNPaFGW3ES72If5E66bfGGiPQNV8w1MYh6IyyzxcReNn2aFcQf81ZLiqV8dTAnfUSFsxj4IISQ=","translations":{"en":{"changelog":"- NC 23+ fixes"}},"signatureDigest":"sha512"},{"version":"4.13.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.13.1/release.tar.gz","created":"2022-03-08T00:11:57.460861Z","licenses":["agpl"],"lastModified":"2022-03-08T00:12:02.820451Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"Rz2d08dDQj0rlzMKobS88x3osJFgbB7BLCwBX4yImm6p9T4l+uemVD8W2sEjGD5iZExuLa4OpkX2NkKBsnhETCaeZNNW+7TG5vN/UinRN6JCi+9IhdvCzo3TwudnfH+LsAB9j7b9vKkdZL0yrcltAXBNMzLg72EVZ13dK1EKjBdRLtXAzsVmO0q14xcyq9oVRoFENYV0ixwp6RUcL8wJtHugDFVyS9gxanLa+5AvOjfdQ4zctqleMqXAc/ONMuVpr3dxj0ceuTsEBD7T/Jpfs/7G1xSIFjtn/j+urXPkueopriiNsZysRGYRLRgLNzoOjl14428TSLd0XJwKTqSl4zGNEfiYR2O+SQcTa4tHA3ywhPWi0EDnUNXKlW8hUuvoGut916lrpe6HQzJGTU1dne96sTjYlsSjumA6ycIpCNY3wjFgbD4qYj3P2cOpXejGS4cx5eCoskFKU7avoUZRW5/esAuZ0KAxmHeu+UU7hxOiRk/Pe9CaH1Ew0cCtvUy0CQdPYITMe+a1K0Wnpsd2dHF5+ForH7jn3F1iv5IEn4B6qvsdAVZ1C0M7+m2/YqlwGTDvMj1bWkwgEikC9iaJrC0eX4LDDdx9WGTAZPPOLmWAFueCsFxtHO16xYeJJVdnYkN27utSqzO7YOjzhL2I8Q8dKq6uSt88rdE2IIAsnW0=","translations":{"en":{"changelog":"- Fix zh_CN/zh_TW l10n"}},"signatureDigest":"sha512"},{"version":"4.13.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.13.0/release.tar.gz","created":"2022-02-28T00:48:31.012641Z","licenses":["agpl"],"lastModified":"2022-02-28T00:48:32.166130Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"IHUHWSTTGCCdVFLIbXDHgfpRjQ/ES1jEOWNjmGUeZnh2ccXcGFx3bXIsjVUksFNnusxrhSNWg5/l4J9frF9Itx12Kc5kpC5JG0FEz3mKZOqFTGM3FHhzis+HD+leTrzkXz+6nFDAZFxWqv8izuEm32cx9dNhReHDPpBflUYz6J+mq8Z7xQeOtHxfBQgt5sV4PJZGsNkg97Lb81e4hYEOyuh59FGP8zeOyl6H4PR/ChU+0NB2cBAg8CjaoMHVHixqg6hLAa93hJas8WMBIRbOBxgcNVHushj+BZbbPDXQ9hdSUUBn1Wts6geT+SGA53stqorjMV+Fafj1cjb0PuhbaaYx+wxYQU7Um3kx242PYdVx103tXMQPJHMKvnZtrmYVnMedGzx3SQFuyCqqO6bLbqbzwlPElA7wCK47bxtnT7E4UNBiGgftDpR0KWadIVndWjK+8vvrSyI8z+pIkv1j4JMRUHOvVMOQrvtHK6DKlKC6fvX0DskGhdPicFKsyNUlaRgvJgCWTgtljRVGx31OIyZHOi1dAMXo1U05CrThZejf8/ak/07IqckyAA071TbSGliBDIxnwumWvP8Zo7oOQddGDII9zXxj5Gc14WCjfOIm0NaT0OZIoxmTKCWASP9S5x2NMyH3Noi2xgCO6BlQMFL1M5ok/x/WojjngsTenx8=","translations":{"en":{"changelog":"- Auth params for yandex"}},"signatureDigest":"sha512"},{"version":"4.12.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.12.3/release.tar.gz","created":"2022-02-27T11:24:23.324602Z","licenses":["agpl"],"lastModified":"2022-02-27T11:24:23.842950Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"chDWXh9cT0Lx34qcy+/QQHR8fbDuyGwUxL5YYbqllw68FoEJGp//YtuAOFgnAVJ0IKZ6ZtjCwCKeZPA0yd8ZKWJXz2n+fB6XhBe9vRlU09H4bau4A3XgTUxXZd5n1iYAUp5aGpg+r40khxAQg6jFcrErTXNdoOnqb4eFR5P+0jsZxsH60kqUr4CTIJrrVPDEki3oXtsEEz2ew2cLdShoIaq6XuH5UfCFAtzpMFqKlu3rCt9t2j8yUtm3c+ZhqUK4cjiIIUmXYCNgULrDeujhzEuCnvYsQfAJV+9Zo1FAFwUxzR+D0nV6EBJaDLaCp6Y+AFTKfjmJ/PH8uYqsuA59yd+SZtYCG4yA8fmCOsVdfYOk3X0v27B/HP8zq2QUuyFsVEEiKz5db5YYnrmgzXhrwd3h9vyW4xW9Xeu6oSf6UphQdEC4QWZItZwpQxfogeadg6V4p+hccHgQ10UqK3ojjzBkgc9cRB4v+yuqzJI9EU+nBiUnVFREgYT1PhDX/jZFMN/MFfblbeT/wTakJcc1/cGEJNQGRDU3r86aemPQkoVGiVghW6xiXZJyRBL32y5KSZCmoOL87Hzj586ICj/ObpQqrY3A7DiWS60uLNQl/rTScIMBnJZ7xDYYjRY/8mO7wouqjtYenVcJr0EkF2Ib6GEwKmyEp50kqaKvrZ5e3/o=","translations":{"en":{"changelog":"- Change update user address check"}},"signatureDigest":"sha512"},{"version":"4.12.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.12.2/release.tar.gz","created":"2022-02-27T11:15:24.270808Z","licenses":["agpl"],"lastModified":"2022-02-27T11:15:25.582495Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"VhIxy/sulrtk6PJ0cQEt/0VE+RgajykAhiGiaSc/lDeviz7PAPdXC9b5MCVOkqfDQREWGXh25Q3LiMaMy0P39ZF2AuvmU6tASnJhpe8URXqXBGPDW2EBbtAM2A371F3tAiV5/k7KoI9wadULq5lTRvi3AUvU0vwFkUU1y6MbTuV9ZJVXMYtHrP6mc4C20zZ62gkxl8VrjDMEZJh6PvBZbDCvJK5bBSEbJhpYlH+rvuRzsnZNpCJNnpfS9tvRJhX7+wp5sCXpyIGAZZlt1PzdxNhuckLOILvCv1EKp6SLLiuiM4w/yriu46dZEmSoNCD2RMGx/BZF/i+ioeEHQ/CnuG3Llf0B428s7X26MnrIC8hz8/RWzWNbHFnMWpX/pmsnqrd7AkPA6B5glPjIoSvLkwztPi7T8l4jZGAymjNcxGPyLO+XPFVEHFjD1XCG7UO9sOjwu76h0VpJ2TgTr4JWwsTx5hP5Nx2nuv/0KmcpMFg4J9uAgaCWMnIT0KujTjCh/2dAKADPg0aj1eQbO/SJnRk13hpqa3gfAYwVP4dc+GiCO3IB4xecnDAsWywCV020meSK5TsswX/5Pv+2Xj/cjGaqMyrC4Kna/nXJ8YC3DC/ws7bBlp9GsHSzxexcvtlR5lQtLXNZacgiNofOOAMDu1sgpkXPZYg76hHqQ7l1G+o=","translations":{"en":{"changelog":"- Fix set user address\n- Cleanup"}},"signatureDigest":"sha512"},{"version":"4.12.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.12.1/release.tar.gz","created":"2022-02-27T02:06:50.585537Z","licenses":["agpl"],"lastModified":"2022-02-27T02:06:52.243271Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"ncdXor91HtTvzjDBNSrfDHwHLadjcTho9eKVP/1FPzucLlrlciaQRNbI34Qeis5fBXZS8eZZadSWl4kI8sGEXWp3N2qBk4l1T3kmLz23O4cPvjbpznyxUfBLTz56X24MKOzaOCuRnNN2MWLIak4FqxGK7M7Swn6C0FS3Wku6AfNQXZiLmwuV6hIoLBn1kAgthGKfch49w/I16vy+8QnObftCSDlto8kKSbSHpQS+clxMBwBDMwsqVpugBbG9sp6UmZvj4qTMuRH8CtXYKweKsnl9uLhaec3oiGPCjFztHSQ5QGd/Sd521zeq+hV56bXI+q7KMQl2X61reZuke+XlQ3FbQLdamT9sxeoQ/Jk4Ymp3Xz9PvfnhCM1bjLT/Qen8/WjPt2tBp9kXcxpX2J4yQhTvxwmvlWckeQvfILif1P8tpluUWx2QUPO6MZXkAYW1y8i6/7QvaxjTDv/N676hLcDcY/q/Vqq6pXRIg68QBwEHuXUFtMYP9EHpSk/YfbVQvGi0m9A5tRgiWvKOzfGm1O5o49mZ5M2s0rtQUTMCQwtPapyLgW78ORFMM+malHBhMD2zjVrpHrmLc1t2D20ocgBQNi7gKXvRyF6YonXm+bNMf4lRyUfZm8bV0H7zO82Q7dV43y/R+sQra2VdPFpIfpblE7EfpIBLP4HDVxlRRK0=","translations":{"en":{"changelog":"- Allow use nextcloud as oauth2 provider"}},"signatureDigest":"sha512"},{"version":"4.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.12.0/release.tar.gz","created":"2022-02-25T00:21:15.740642Z","licenses":["agpl"],"lastModified":"2022-02-25T00:21:17.028067Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"F8b0IwMDEpST45sdi5h71wStaDlyrrhVqClpjufilhdzcFLpTVpiQO1oAzoI28BJJoWCykA1lWkt7XRlVUAhb6m09em+tjJPmTsnLgvwE44yb7s66GqVJnzqf+qfykT/lk+TQ3m7t8YGpv8I/yXCMBcQJWsdek40LJqoD4tvpYuNdpTlFkq84s6TRzWu5zejrL8SehxKKVFpgQnqcTXyTPvWBKp85Ekpnw6SpRhZoJTLzH4sls4wqXLsLXofR+OjpNlmlXl9IhP5Eadw2EcajHmjQZVHWSCSMNRV3cClU8sbbmukPg6HG3ddffdXqZ4tZW8BPbkmV62eBRvK3NgONtasuUPxcim5TZ1XDSTC+ySLdDbwWKBjv72vfSAu9UJXvLolElgLOV9UyGUsmn2Dr7IDqoamg2GO72PneXJRico54Sn6zTa95BG5NRnv2D9YXtMOqDDzuss5cB6BgTt7ZDIrBCrQnYkcIMzUM7Gg8CigRHYtZ9s6roixiiEL2xh28QtegTQqwGK3rbbyG8+Z/vay3WTfewfZZxFu2hknfzcgotURvf6IBmgZcYf+abbwy48opW6mMkSfc+e4mgFddqUILx3HwSXV7AoDESp3/n0kbTcgrmWgMbrz0b/TBO83oKYRW346FNstRapnrzbgSiFageTNFWpE6LiXk1ugWdo=","translations":{"en":{"changelog":"- [Discord] Allow login only for specified guilds\n- Call setSystemEMailAddress if exists\n- Merge pull request #336 from zorn-v/dependabot/npm_and_yarn/follow-redirects-1.14.8\norigin/dependabot/npm_and_yarn/follow-redirects-1.14.8- Bump follow-redirects from 1.14.7 to 1.14.8"}},"signatureDigest":"sha512"},{"version":"4.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.11.0/release.tar.gz","created":"2022-01-27T16:27:37.314053Z","licenses":["agpl"],"lastModified":"2022-01-27T16:27:38.767299Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"S2kOJl9htwbjJbS7g2acZPnolqNAG8RMsR5QO1p/5zsYO63aqBLk/chiMcvoI5LLtminp14PqPPBNcJyZbeSJ9EkPAZg6nsKJ7ippb1QJ7wTT64X1GEfW5NFemYXpGmLf0vrhrwRYjUH0PfhVqVBqcKrQi/rxnECI0wv+X7HjDgc7xYs6eh3fp/tFBtQa5HCDzvMr36W0zs8kc1KeUdwW4UFFSpclTiKOAsZPlCbea3lw5OrDBiMBm1llmZXXR8leXXJnjC18zaXl5Jfmf9WaPrpYe2wypl3jUj2pchowj9acJpl2ptZz+bRLHSBBCiYa0idWoXbpVXvi32/7UCoQgeaErO8+XaQJ4Ja4M0twMTFH9UOnxZL5x0/K6QpLba2Fd/bSIdz7x0Jtn8ThCovJK6aQd+F6MEjjJc20aBkn1nntXWtOJ4W0+Ve+cCeEwDuo0yPe+O1TxdJRdIoShfLaBGcvqc92/g0OJQjz0AWRbOfvFAV8hEbMxxra1WQb86COJlvtS2ge/Hk+wOme0CY4SGn7gunFd0ksFGVFE1Z4nPVsijEprhQW+SgcTwf4lyQZuEDpCL87mQENnvVQRsdbYh07PjfKDCv7nSYp9WXGRGDNlXZVrrK3h0QlJT+cAgih52MZdYWKSRiOvW3SWaKF+2p8swaJesWtEVWk7Sn6rw=","translations":{"en":{"changelog":"- Bump v4.11.0\n- Merge pull request #332 from qwertzdenek/oauth2-identity-user-id\n- Seznam.cz login use oauth_user_id"}},"signatureDigest":"sha512"},{"version":"4.10.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.10.1/release.tar.gz","created":"2022-01-26T13:16:05.500940Z","licenses":["agpl"],"lastModified":"2022-01-26T13:16:07.368746Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"QXFVZTMnrBzKwrauktHr1mOUCTSAoTxUdwEZKZRs6vU6q5/wckRWw/9itTqhA5e87hcFmS3DRAE/Hlr1yZjLXV+CNGkgNY2lcM/NXgw8LWb1GvDh3wPSMtc4/LtciXIe4UQaTUrUt2aztqJQQSttFTbJbIyIHUkh5lx5Dwt8ofkrzv4GOuRr1M/q+giB4No5JJk9QZ65cO1F0eqmk2atmf9s4GqCplZeoMX2L4/ckDziGN2rDX8d0rY5/J/Mk10JP8O7LYb/cXHipkOlhPsF6Hb4z5qKmjj31p/zxNNotBIgTMYvksHqd6xouq1v/rk/NDHMkfPmBs1IwuFDwdyqhNEKpnJRzNVYmSFXfKSzDJ7rQf+ye0IsNHJut5fXy9GmAOlnEaM6tWs35lPnBrxEix1noveU70wzWWjJe+ZZRz8jtXk9/Liq1I3MwN2eIJCl/PiQsYEAQjhSUBg2sGF22jg3G1PhxwuhUTeZnrlmGJ9/NiFh/4IFuCdclqqwC4vndyBttRAOX39YEJ0X8r6iT1aztvd8GCWXj1m5gwzOUhCGSc6zzfhLjUlGsVWZgwXiTRG8dPn3TcAexcuZYU5yyJfIrQ3wb+KArir8xZlZXqnGceu7FRNNbQXSZbGe57PR0gQUsBEo5catu8mY0KSVY7IUVYk0RqYuROrNg4CeV7c=","translations":{"en":{"changelog":"- Fix connect account with several custom providers\n- Merge pull request #330 from zorn-v/dependabot/npm_and_yarn/nanoid-3.2.0\n- Bump nanoid from 3.1.25 to 3.2.0\n- Merge pull request #329 from zorn-v/dependabot/npm_and_yarn/follow-redirects-1.14.7\n- Bump follow-redirects from 1.14.4 to 1.14.7"}},"signatureDigest":"sha512"},{"version":"4.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.10.0/release.tar.gz","created":"2022-01-08T12:59:09.917580Z","licenses":["agpl"],"lastModified":"2022-01-08T12:59:11.229536Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"e/cid3AlC8LA3XSa1AbavC6AUxES3XWuffZtD3N1bdI9iPKGZeiiRdsPT/0AHqI9LaavtZ/KE8ZlfbwKZp1oWdoBqF9IIH9xZj0C0Ow7Sbp/LkqXJ01/cquUEwT6jPQHUBOZ4FYOgKy5rqOT6h0nHK0mH1bfgXqeAQk6RlKzeYyDY8hUi8iPeCJEjvrufcQ2DaReQCECXvxx1O+tasvFH0i9dUOy0ZWKLedDpkq7VSFyrHS5vmNMjnCYEYc43evHFwIo1G3H9B/OjDVtGmcnIXmj8OPUmMDNQrUv+/8gQoTFvzZF8u0KyDq9+LhEP6Uq7+oVEb2C/YeSfWbDAJEQtliKOOeOu6VemGTwENHEIoB8LVYdf3y6XJ/LUaMGITMOdEwmZvTDhPTG8+GAqOtvUdIMrObr0X7z7B8AN3DVM548A4ZdE4EznfEalzqRtgLvPNpsN8wiFm/jQvQTLPWoThNBhNrzwR9tQ0/JccP2FFTHUNQf/iI2CrExmIvK4gEWL49FgBtedR7C6fTcUYmb56xGIjXXPi+Ibsg5clZxU+VmYDXgjhvWrR/Tj3QLOy/nPbI9nRJhuhoXlWjURbok15P+yJWXpKzHUSQTMRw2Xr30X3dh5qAm1Awf0CcBomE2COv+bPk5L9kO9iyvYU3HlI+7GZ1UWPEVzohdvIKKwSs=","translations":{"en":{"changelog":"- Bump version\n- Add discourse provider type\n- Merge pull request #323 from paroga/discourse\n- Add support for Discourse"}},"signatureDigest":"sha512"},{"version":"4.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.1.0/release.tar.gz","created":"2021-02-26T10:50:57.126911Z","licenses":["agpl"],"lastModified":"2021-02-26T10:50:58.663282Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"jOZu/ANcvbXf7YT6Q9QZCxCG4wGCMpvcnWieyNQR2FEdag6rWbwqQ3/eDy0odcHbS2VVbgqNmQ3yy/UAU3NjHHppNxHSVO0ukrGAP/qj2TAR/CLZXYneZt1EF+pPg4s5ESXy7ZSbrIghWb/7jsorBN/j6spqgzGpPJoCZyrLlyme2Cn9hG/4VoY05iqBx/gWFoG5LcRwGRgu0U8+CIBT4qYD2dvbwi73j4a7JK3/ESdio8Ln/IusKK3TjXmgtsq+GuJYNyBuFAJjPDwx3GWuHs/3Ld9JwLLcOk5NP47YG1x3JR1M9c/efe2JyuSOHM3yprsG1fHG45A8v9lIYRfVHWDKOINCgxAlKrciQtUockg48xEhs/uAqP/CI+eia9rFzFbUrRLFFLF1+8j8gcRU+WJenT6daNA0y2TQSJee2hfsYF4LbXTzIi1WQ9hL/ulrDsGfRs+pP/kkUsxHXpZn1VYeoiybOp7WseeNxxYtNhiAc+NPe43DE1C9b5xMYWf3Pkyr7upw/Wm7jIxT0IGK3bivfp+HGMDsL67P95smHju35fedAqhXACczBvcyANUFzahZRzS4MGfoPCVNMES8EKAmnRaWjb18fJ1rzFSSqX4pmnDCrHmspmdcwZ/icqnCGBP41E9nlBI9IevRq9jjFOQKxU4YWrDb6CFnOir9iIs=","translations":{"en":{"changelog":"- Bump v4.1.0\n- Replace `!isset` for `empty`\n- Add check on gid is set\n- group mapping bugfix\n- Update documentation\n- Add sync of group displayName"}},"signatureDigest":"sha512"},{"version":"4.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.0.3/release.tar.gz","created":"2021-01-13T05:05:56.881366Z","licenses":["agpl"],"lastModified":"2021-01-13T05:05:57.322210Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"PqEygki6Zf0OGkHESU4a00uz+2u71K8xD/leKzrZLSiSY6k8QzAck2CLeDLxyEcnIEuPAGG7ZL2ZNSQdeONxPXmcmZ5uBeJCKdgMSNADly7HLxmySnJfl4ptfPbrWOWWccGKuMd5/ypdC7Wu9sDs97XqK5A+9CioaoE/NPJMc4wpCB15eiI+Z9tNrX3rPFcgWL/2j+keOAqZU9cKyqQk/gAFukBMtYwQ6AALMH8nKgIw1Ko79X9xeB1JW84cTfPpW/wHm4KpR5BdkCibCacaoiYEJkfQf9quqHoSgkQinaOk//xqyAPbMp3rwciyzTx+Rlbdp/YYhRPFH3EVZLyHa6SH2fHaTvQwe5E7ZhPF5vVui2icFdHHL4Pv7Cnk5iUI3BDjSmznDV2Grq0qPY7W4KW5jNzxBaDJK9OQedPb4/sqEGZG4ByQcqJ89rcOgNAW4Mgb59b2RC6ZXJgcdM3N533e3PyvTJbcGrI0ACOZB3DG9uqlv1al1vb98NIJI80QGhsiCFMH3FGsIiTiDED0vv9u5mW7GmiP0Bc1Sbyu6nUBvknBaanRj1qKqGiuMQVpr7OErIa9UcOV63ubmJu0CKWizO8cWkMDxXIEgqQGwSp8CMNm4SN93zSQr4OuY4Q2gb22g1VJ5Sb6P6xd8ewhtHLZUW/6tt4lBksn/MlxV3s=","translations":{"en":{"changelog":"- Fix LightOpenID deprecation"}},"signatureDigest":"sha512"},{"version":"4.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.0.2/release.tar.gz","created":"2021-01-13T04:49:40.133364Z","licenses":["agpl"],"lastModified":"2021-01-13T04:49:41.112479Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"aiD3b9dqwi38RwE6yQKtyCQ+embIKCTn/zBoT3ZvaSIbAnrPJJfjLgz/lfNycIm2sJ/y/eDUH+ShrfQ2jn4LCxLjdb+KwC1h8RANGEU6bGwDKwseMvteN+rEkmykjDvvoQ4TE3q+GMrjHA0fbsCeeR8BcbJD4k384xRUK6Sk77r42PDgzldp8DIdJhP8Zqm99P6rIllKGMnlsCwpWT+zS8SXSogFWwCOCNXcpIGspEiwE9kzQzjNmoWUj0Fd6OemU7qgzi0Y2B1EyoSFWyjyJAxaVQqODt/HhbQGN0pDcCNtOtFZ95rM4jk23sritCWpuuHDW+X2A7EMmQK4jm5C6I6hc3hBGjUR30x2zIIfaNc8+qGW5Yu4lcq8deVX4TJXQZlD96Ru3kdJwwLq+Bo+aVHtiggjShJpqAejdRd28wQWDw5CtubUmwbXxho5kWdVttCuLO+chNQwWBuA520lhZ1or0mZXi8RLlRbYDcVF1pORnsh5d5C/U3QPANXhf9w2VI091xRwfQ0HsaGtNyPqM/SLeoyji3BSU0OOesxKcjmgvyaGfjkTyROo0YOWSh7QnHbwhkytDjeMTEl3i8JjYZfxL4AmuHH4BDfzLmMeYAHQlHfi/j9bsX0hVWyj/+U6bm7TPAGpZ7IQfnaUlG8bcHWjdIXEaIt/FXwaZmB2CY=","translations":{"en":{"changelog":"- Downgrade hybridauth to 3.3.0 cause phpseclib conflict"}},"signatureDigest":"sha512"},{"version":"4.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.0.1/release.tar.gz","created":"2021-01-10T20:46:49.088820Z","licenses":["agpl"],"lastModified":"2021-01-10T20:46:49.638417Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"HrMuESbdUECOIqAxB/zu0Ui7Hu4EZv/XBB/PQjW9L1bMcM6EnB9WvackQUTFhmDtCFNkegYaSBUJmHJWtu3fa3PBgazozdKRfRo/60d/iKkdCVRuY7ApyZQawYCiWd8JIKOCg321/Wm4lVDA70gMVwgmcVQ660Z4RDhB4InFCBdC58kDCmpRPzI3/Lcr6GZwFt+fTrmYJT05oCQiE5uioRNnhG2wAOFMAjJ6tm1wD/i8ek+adlKPN+rWKfdGWJAiZQD2RuH9ehJebf6iekDiPMBY5GUSlbYm3oroCLVqwVpu44O0qHT8ll8AqU8bMQHjyAHjJVXHBWVIo5pqbXttiTLBFWFA1+C27xzBVq20vXYnsEyfymuV/uJ5Avt/tdf7D4k1TOK54xvn+sxosowduo1csyzKSRleIo2FjcrLx0x0mR93MDjrJNF8B+GQqERnSiJPeHBfZ7DQipyN8V26oYvWETZiz6QxjdMgIjcj0Y2h1nSr6Va+2/b6890kCTBUn/vBH4ii3+Fk1uKS+ev02v6L7PdbjqOShk6j2TLd5eMwdBMcQpH/LBH61qu0I+8YpxqtsqXrIhqml5dtonvTOV+MTht458/u38v3ZsgaWoN3m0Kdrc6O/gunXKaMUInMDfGmefM+kYle8HYIPf7YOY5bXv80KWjdozD00owXXSM=","translations":{"en":{"changelog":"- Use IEventDispatcher"}},"signatureDigest":"sha512"},{"version":"4.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v4.0.0/release.tar.gz","created":"2021-01-10T18:55:21.647126Z","licenses":["agpl"],"lastModified":"2021-01-10T18:55:22.978277Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"l/tPz9VdW4Nq8MslP3bLHjKmI1dsueIIZY2zvmzPvlzFZJqLktY6bACu4F6QN3NbZ4yrG+Jydfil2jWOoUmETWg/ArnclvB73RSKmDO+RPy2eflEHQdtouQxYiurOhgP6G0OI4JreMnBwtzE/J5YUAD3POnCc6Er0EaP9PGG1ndeiRGVPk+Ys5c62bbKeKxS6OWwJD27JlIwFiB0KPlxI0ch8oVpK9XleGQjjaPdCLvcfQMsHXsyPSTqhSi4tHujiL8UKl2kYTDtW261HilkpRZnTe0p0nRvVIXIIc/8f7WMVUX/lA2tf7QbpHatML7wsqK2uweUNrGNk7YQLub0oB6KhlJnwdg4GwcU3SEzSdkCmVb/JMVunrA04+MS/OmHhYWDRanFbc0cWeizTfmzyBPQKAPianHc7EdbnhopAwTeurUeFQ3Nc+WDuqFB1ZHmOhWOMLZi0q+VjEdwHIrJwNUjd1foMkX+d41Upji0lWEL8kuOvpjAI0ER7Du1schCMSoeShZY/4OyrkNOqxuK9Evk1PVBj85LWB/yEV0U/cGj84BzmRCgwWncjA9NJYdJfFtw+MTH5uHSTCSKJN8sfxGTQ81yG6zyLiaFeRlE4TjJ07jZ8Cfq9HDxCK5ApGBK82INXqo2kEEI6ynMerPfJUzrr0w5C5ZVWy9ba7gfwiE=","translations":{"en":{"changelog":"- Settings page tweaks\n- Use NC 20 bootstrapping\n- Update npm deps\n- Update hybridauth"}},"signatureDigest":"sha512"},{"version":"3.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.6.0/release.tar.gz","created":"2021-01-10T03:50:31.348964Z","licenses":["agpl"],"lastModified":"2021-01-10T03:50:31.788902Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"H4RZGnpz4KHoIHvAg50Ctf14lBYAmq1G6a0BXt9Ep0X0LMyoykXb11LfvPGHDQ/7L28NaNrvlE0z2+hC8uVFwL162DPqqxxLKzT4LNnf/OlhNBrkDNuV7vYeDpzyGKn5+D7sxXF0OAVQ/DTyjVO6Nt0CspaqhowQmCGkXBuxh42BhXztmTXuiMHGA8Hwg5/lzi14W3vZU/l5lXTDcgW3x5vxRzgUGRt3rt56z0/iAP4eYMfhsGM/Y7h/zmmWM3IBY0G480gUc5nbEo2qoUi+OhOa6G7Scu60V6fR6V1ceA6GBtC3hqpHyZrdN5cd5z/0HWAN+TVHMdRvX8GgghS7w70TQpVO0fEF28DBskI+u8N8xIscIOYe5IwvHs0f7kbO/W4rR37yTdiNFdUgn1gd33g+fxlGDQSTsd/QLLyV30zr8BmN5UAsE9G6jh0wala/oe4l5xh/zpsouZ0Obi+fkcHjOga2z8sn3Y/ATdowFzhD5kOtS3gONEW8cBIWuxtsiKKvCW93lpq0biaca8/q7zf1719XMgyDlngeTo/IfLVToj3QUtLWAe/EwLw9v9OZXSsjam3OUF4CmfGSM1YxYbt8rmzEs2x5Ii0uZv13+ZE+VuuRIP5RqqQAPxrmEABJjjYd8ILcdrNlfk+viuCtewrtasPr8AW7cHDg1xd9rWc=","translations":{"en":{"changelog":"- Remeber me while login"}},"signatureDigest":"sha512"},{"version":"3.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.5.3/release.tar.gz","created":"2021-01-07T07:48:51.357997Z","licenses":["agpl"],"lastModified":"2021-01-07T07:48:53.087344Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"iSs5CU/eyc5UATvn1QT+efqpUHcqMNnD/Nz3tg+sVW7lv0OfsqA5MDpx2pKD5fK+vXbeAMb6ZWi4cI+G9fkvCKKA4O6kgThRcdl4ZD0kyvI0w1fz0ZXJS0f6VKp3qK59jpVEHGh7W0PDV5HuoZ6SM6HoH95GJI+WQi3kY4txdwL7BJOrJyVlzKnOs1xTl//+yQ8N/6/7yVaipzs8yHaQL0W1yJNwp70u4Jnfbc8dYAdch6A7CrqJzfn9nr1rTkp+Wv188d0AiSqmHOh8bCt5CvEAlBWjLf815yNLyCV6uXxiR9MJMt7Xhjl8cHgxD0wae3vzqd8Um/uvAvKqw5Sshnb9oePfXGuDmOkRMkxst7AiylQOSaL7KJtGa3QBDxzaTJ6JxQPbK4WvKsAUF0puW8s3YTPqAFg3ujmGfqkODaaZWWuPVErveCRRSEDaoQ09ca96B/OqNQzSrzZcFnVRcnOT3enX0/IOMOXhaxJ16byDJ4hQyvxiDCVLqYkMj170DXGMbxHdhCFI3rsh7+tTixCt0Vh6PodgNH1CtEBCQGQvFXQkOryHreGkSbWcmP3sWM6MAD4fy/gP9CYBw2mdLDgcLTHhsx+I3wmddk6I0H8pZR6pKAZaVHh9SEBelfJu47Q0pxcvbgTyr1UL9s/h0QeMeUur1ry/0pmnHE69DK8=","translations":{"en":{"changelog":"- Bump v3.5.3\n- Correction orthographe/grammaire"}},"signatureDigest":"sha512"},{"version":"3.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.5.2/release.tar.gz","created":"2021-01-06T01:14:50.253779Z","licenses":["agpl"],"lastModified":"2021-01-06T01:14:51.359954Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"KKRSto61PyL9I0XB7bDOH8t7iQ/nP3m/NBlVN7Rj+G49W3YUDLDm15sFOsxelQaH3DjiYdWG2shMvn27dcnGqs/iITGXXFQ9N1qcb0DbTgV/iMKO0x/usVeYOJUX0MYZJCRYolSlazJmFrR2MaQJpr41DgiqU5XqlMGdj5ot+A2b7bKTMnedlPnzVpHp4gOScjMn8pkYlxjdOhmquexAvmyBo2TFV12z5vkxPe9Ok6pvf65K1Nm1LZJxVBb9hexMinrKklH6jRnMZXT1sjRVI0Z0d7OKfuUd4Ryv+9+tGHxpD3s13OTxLG1PZ9z4UFSx6xO+xDyXQ9NJsoVd2BTYVNBCG9WhUZaXUgP+LfPKnhjm++olutGDDbAoyjSh8sUGACQBUIVMAHi7nqZ/9MxZOQCtFKEx2GZTYvGFbzJrM5nkTxfaNGsEcN68SYpK0mhdrSCvsHCNQ92SL2H3tkUJHz5R6tgpTFxFW3CaPF9nJ6CzBSEUck6eruhrlNZfVCaGkYomd7xPKY6a4qthYepTY710tvhQCE/bNnJv4P+r53/BJYZhU7I+XoqLqawD/VrSNKcxiV5/8dFJaHkwaMjbo0ifyqMgA01PipZIEKRTiS6V1zhpHKS5YM8SLxaru9k/4FRPlGIkP/3hddw5cfhSoB566h8wz9wL3gP7fRfEQvo=","translations":{"en":{"changelog":"- Update npm deps"}},"signatureDigest":"sha512"},{"version":"3.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.5.1/release.tar.gz","created":"2020-12-18T06:45:55.951977Z","licenses":["agpl"],"lastModified":"2020-12-18T06:45:58.741801Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"FRQ/yXFlvVY/L/VvFspaBkY/p0XrQ0A3c2RMDfxHIKjLg6mGSuX8ejvB9PV0pLSdPq3DkPXA8WXmtswMUmwmBdTVjSOp2CL3H/VSJ5xjFzmejNcTW4+nRpMAGqhTxQCTr4AbrLaZJis2It9Zditr5sH7d6yNrn7E1N5m1MyjQpg/zmaC78PwEu3pVGgMKcywLb+IdMwt0ui/fAR3LOVCCiZEc+9M1us66zn1WI08+9mKQpGBTkiULRv2cANxr2UgeFAzui0vG34rj49M/74oAy0mt/7AS4TfB6KJuKgMsJ0wNTgXAaPDv4ihLdHVdaDMkgBrz5NpTFDSDUr6/H61krFhzlFxmqYhobtUJUteSikjH+48bI3tyu5JGelhAf132rB1YV15y3vMjic9QVWQN+mRZBi48P82hrEbjV8hsRyp3TUl/O5vj7hew+EH3iTBAsInQ3GxLAvvJrtxk+YYDHgh+ujBlK2KP3v9dLoWqf+yDmaAWdCJ3G0EN6L2GosaNRw2rhmqNPCapeeYsSXSKf9fNOoxJY55QlEaCODArwR93Qtpu6RPDg2bLrHwH1SwOZnKtiZ1DkYbeZxQlCU0DSJJgnKK0D48cK7CHFyppNoxQ6h/09La7PGXRsKCg3o6rVVXZXe1Iv8GZZ7S/sLixrtyEt05Af+zmWb1FzenYcs=","translations":{"en":{"changelog":"- Auto map ext group if it exists\n- Update dep"}},"signatureDigest":"sha512"},{"version":"3.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.5.0/release.tar.gz","created":"2020-12-13T12:40:04.129724Z","licenses":["agpl"],"lastModified":"2020-12-13T12:40:07.781170Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"h7Mxv3S54WFh4Oydl9rhvtysLlbrG4TlYeKcQ67bILynNvpL1AqpBMtyH9QD8DOhALwcvNEq2xkj7/8d0NxFyCQzvzKTmeDsmVmz9mGlXnkqylNdLqs5lMVomyDMMst+PwAyg47lcjQgtQcsGmzb75UdcrfhScYJjwiCo8SyrdEY/mJ/i41zWmbbizoPBatYJz2RfdkhP381s54mM9/ml7tLWerxDpp4s0M9x3qp7jHBcx4cY/ezgJLcbX37epIMYCWLW4YYyNgral6M718NESfRCDn0KWu6uKkjDzWxu1InrGhwsIZwF0PYa5xbSwqhwddFxMU/LyPmUdmYvsibFr80RbOBVCRw0mhVrbg4Je2NUw0M3A4zmUGm6e8IfsncrGA4L1LhGPusMqp6Hq2hzv22KrXHT7KqwgnBs98J/F6Xci3a1N3k/HYA0iCaOmwRhrK+efCNzN2wV0iW3oD9+o8GSrgCXaPNQlrLV3XMZ+yqYmZJwAnDnbiFiQ3QnRN8QDvG1MS4joCDsiQPfoczVVqDiiYLUY5Xdu0yjqwsar6G1zkt3+SWVl5bJl3S6A0bKXKk9uzICgJIJ9Rfzr9CGhgrdo/FqZ3TyN1xQRFXyinVbjRkmqljrxgdYa5t0HRyrlZYe3o1JnCqLMwJap2nKLZHRXmkm8vwW8O9ug5uMXA=","translations":{"en":{"changelog":"- Doc social_login_http_client config\n- social_login_http_client => timeout config\n- Update npm deps"}},"signatureDigest":"sha512"},{"version":"3.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.4.2/release.tar.gz","created":"2020-11-05T13:34:26.633289Z","licenses":["agpl"],"lastModified":"2020-11-05T13:34:26.956188Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"q1UMF3+O8BdDWsRD2k3J+J/FjIo1AFIaAngADrcIUWTGJkZ/C7d3uCTq3GCenqVCjlt1X2Aiv3Pe0ERinaehLVo6gc1MVnndeX9YgepHo32DMgmpRXbtUR9Ho5xbYmclTEyqrbq6NQmVE1PSGt5GGTDwpUI2yrWL4uHwLWMBFZWpKIpsccP6OwG9zApll0OGNSgCeGdfzAOYTpP2q9QnPJwzmAKxIkqXV7dR7A9SzdwYwMKLyeHjQB2F7jRWbTV7xXXhCgiZGok0Hqq12AjGfmmZQSCGS4Zn/q3JvkspOl96JlaFE+eSjS/5tApOmez8JDs+nFkQEgCuNKnbhCZu8FRwME05XLi+8Op+OztutRiTN5AFWT+V63Wx4a/jWWmdHvAaHPw9iDOlheVkyBiUb9pxZ1pMBtxYJg+Djdan6kaqqoudnzEzt6K236EHnC3fAdVbbMkzuO1xWqihXNJzSPuSvhfHP8W+BKhevOXBQJN2vSxwZ+wMBpgyNZT7io5vZLxjB5d7uhpRwQf7gn9o7HA+FwjsNiMy5ygZWJ4JbKfk20azgnCuIO3YiacTiFPnSAzPr+bavDDoCkFB84JPtE0wQhJQLBOgBS7AQ1MGiGxaP3MSU6QRnTDm8L3PdLHV9JCHO47yYdmM+sywLUp85AM07WlyzvXDNx5WE/O3RVM=","translations":{"en":{"changelog":"- Bump v3.4.2\n- Fix ja_JP.json pluralForm\n- Add Japanese translation"}},"signatureDigest":"sha512"},{"version":"3.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.4.1/release.tar.gz","created":"2020-10-07T01:42:44.292482Z","licenses":["agpl"],"lastModified":"2020-10-07T01:42:44.834030Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"cWh2mRIZwvIVL9s/5WY1PInGJ3AoQ5UXCctzXeC+jBmuVKstz7biV17Y3oOB5oBF9wmvn39+Sk87hKIxhv5A38yLjR+v5V886jS7GYUZifgxohKf2Xr4YcgZ882Ru0Zjrlb6RGHWRrEDUgdmjI3gsFoxWSks5estCmTUaOmPdJ/w87CHuoVEXaZopxlRBiXYFvnQ+7Nz+vNjkokRBsT7KP4Ppkvjkx6i7OJc0PZyDwuejFiiVuDbHfZt/dWyzG3y5/tmCSnmmZdSHdFmuaAmZw+PiEKKpZCakMM4viBRrVZb+ctuuNBl9HPVM3iV/VU/QQlGZoMKAihQujHt7oL0kfTSq5494yFRXdmrQvJTCG27EBi6gnfWe2sAy9e+N3RyJqY8w/EolitoKJ87uscUuCH7vtlNrSa56eZR4FbTG5DRCfa7FQyHQ116A+eTqoC2SXxg5ofExIa92waxjegUyPZkIFCaD+mcAphXGqhg8A5Z8TKqoGA8kXjq8jrZhbn7bGRwCmnBWN6o/8BAKj1LCi/XZ3XohRClfCTTvmdJot5kaZVVJCymzMxc94lNcxxgNOv3LYt4k9z1IJyWA8E5QTY+r0npnJH4zhwPlSJTajjaAI7yPE2AseCaolByXorWOt2232S9gxBtvXa2aHeVB39AcnyG2uBPSHsAmgvwpD8=","translations":{"en":{"changelog":"- Bump v3.4.1\n- fix stupid typo"}},"signatureDigest":"sha512"},{"version":"3.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.4.0/release.tar.gz","created":"2020-10-06T09:14:55.761589Z","licenses":["agpl"],"lastModified":"2020-10-06T09:14:56.909732Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"kJRRXP7mLTOoxlIskjEBYkd3Hwfqezu4E3Z2orwCs7/MKb+ZZJvfIXkwgEzcNp06eJkF6PYB1iCJQUCo2sg5V4NveW6J2ETEGRfO3/6FMVz1kHot/uj1KMqZspjK3jn/myPuHfZ05jGNarNu4TSvoBIkIgflAKQQeQrcvqVOVdRxrp39gceWCDqEXzbC2SeSiqLD8ku1FTKc/ElNjz1ueXPz9OdiENlosauA0Lx3rnB6qG7ADCU1ZavLVX1RBHf+Ra4lrve/LKvaMbu+lEtIQXOc6dR10PS5wN5AViN34tmD2XqChu4f6kdiadFnW+qycozkxHUOjPa4UzaN2dXBrgTqYE1+p3BeHg9NXqUzkJAwH7r+g0SEygmQ7XhJQkWMWnXdsz+4z1uFAcQb9FG98Xn+o1ilHDvkhkmh9jDR8MeIyEWCRlaTLiI3KaZx3yPoC0ULfSv0h1T0j+YTdjm2bblHYihiBuK60RzMnr/h47xxvendtbTw6XiB6Ez3QlnqTqB2ut14R5vtM/hq06Shx9MhdVI+6mFLk5eQYB/CNb1CnmLN5iwrjyFf9SDYgle1BGOjb9NC13aej+OXxc5+muHX6+b4/AftY/oEIHSt0lpdTsCY5ULi1yi4BvHmCiLPZJcWj6hvmJhNXVovxv+82mVZ345tqHAR/yUU53e/WtE=","translations":{"en":{"changelog":"- Bump v3.4.0\n- Fix CS\n- Cleanup and fix routes\n- add ocs-api Route to unlink user-ids to logins\n- add ocs-api Route to link user-ids to logins\n- Update README.md"}},"signatureDigest":"sha512"},{"version":"3.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=15.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.3.0/release.tar.gz","created":"2020-09-15T23:02:43.023930Z","licenses":["agpl"],"lastModified":"2020-09-15T23:02:43.514684Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=15 <=99","signature":"Y2aErPfGBJ/B4bsWohblFj/Y79a9gwHmXp6gzldyqSaLECKCuYIy4mRR2nDIrb8i5Jze2E4G6vAcn4HNM4PIVb0V2P8704g8KWrntUOGOk4wZxHgdt6qG9m9QF2ux5ZKdSKc6KVTz58fyTX2uWBX4M6aWmhZ4pR9ZbGXskMNGTwHjVBqz3eSYOLWw5kTf2N0kEuMvceGiLGQ9zAD8AkwfPrssR9if2/+xOiYaDIaSir8MykKe2zXMxkb0k8bq5tSQ7I6rMQdgajMhiY3obAkd59KWH0Kd9NeuQLHrQN0hS4Cugb6drPhMjSgPvVtjgd8NHSO67nqEnf/jP54Q0/ZgeyfzhKKnefLX2zOlPTwGR4gNNSAvdBhcQI0Elyer6DUWcXFTtF64EcmmAI+QvzdoqRMHRmKnx1Rmz4Mjvj1SomV24betOIXpOdvtfilHJlTPn7j8qvvEqp6LOm1D+V8QAX32Fo4YOhPoPKv5koAFYXgv3btlO1U9xAwKWBrmFLNukgHmchJUjm75Y1VIyPaYUlHFiMVIC0MwgsWOlKYs+nymb6VzAdHKsPui7OWDo04k+uC2415k9CZEs7Dv4Fv7URzNmEOM6Xtnh6nL8Fn5RKuq5Il32NbGqr+afB9JiLbYvJ5b8RNJ+1SntgDoVZkdMl7aaX8oIzTodpZ8FyrBxU=","translations":{"en":{"changelog":"- Bump v3.3.0\n- Fix CS\n- Now update user street address if exists (#197)"}},"signatureDigest":"sha512"},{"version":"3.2.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.8/release.tar.gz","created":"2020-08-19T06:35:12.562736Z","licenses":["agpl"],"lastModified":"2020-08-19T06:35:15.639077Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"YI7UQeiUK1FMM3oj/DV2zH1qh6zyIZ/cSUkAf7nYY2N/aFXDN1by6hp0zlsI8UnKuH1hAzLTEw/3suM4bW8JpRq80oqqtwTvR5/9GvB9FfE4wH54PsP9ZEK/ccMnyjyfB6oPZEKNE+lBCi4vuhLpNkdd53XjjEFF1UfAiGrMKyM32pb/WU8dsLPDhOQWIPUevts2nQLbgf+aFlgTTtJS6blY67Y4R63HEey1eiSOmpq34ud43+d/cH663PLDFpJ9C3EnLvClQZzclnP2nJZNR82vtpmYfSg/TF2TalX5xGI7oudOLJGBYFSj5mYE5P237Mxof5tSx29wNwyCfTbJRISAZhZ227RfD1FmbwZqVTlIqDgTMiJLpmvdJgRG19pkW5zTbBb1iQR93mhNbRbbhhou1zjkbnWRISdCy5f4CwgNv+Nuvk/c6FwHOGXQ+dSV8r54hYfcDk2WCk/DrDHy989ed6VLYkHi94ZWsm41NiA76SapPMgiDVN1kd1f69IrLnDLkLAV6EvnHd19pohX90NK+S1fU4aNkjgjIFai/XYquor5VfiyOWx+zKCM4YT4a2E83jMN/BSyg3Fzj4w1Can1Ffjns2IZdtpLreX3xekxnqTDB1r/4KP2u/MDy8r4nOPj9Rsb2snxSymzi8Xzom1h8CWHfz08i38GPpuy+fQ=","translations":{"en":{"changelog":"- Update front deps\n- Translate Log in with in french"}},"signatureDigest":"sha512"},{"version":"3.2.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.7/release.tar.gz","created":"2020-08-11T06:00:00.620404Z","licenses":["agpl"],"lastModified":"2020-08-11T06:00:00.899295Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"O5AiWArs5NL8mJRHqRIBCcvZBJjvA/p1JWvt6eQYHaV6HybV4W8Y/PXnZQRXYHIFLREVhhvj8+k0h18ODM2emWmQ+rV2QZupIDr02pcz/Jwji/bf6ynAormfhrm698ARqge+1zP7qFzKkNYINkiwEZ05sLh990G6rPnHOzoc/vCWP6h0hA2x/PbB6ckTCpCatnai0Yxh9ZIx/VyyI+RpgyzLrJQJNbMD+x0y98yCdw29RodM76nZLz9PDU5VYGFqB6X5uoi/5kJZp/pM+B1AQKIbTY+ejbzn8lqsyYm57QXNvKZFtOudyngTGxCq9kMjmLH86qpcnYo+GBV9Gr9V+IRHTSSjKxFCk1wwTLSMK233EPE0NbKEulP9N9Ubo0aysLmfuB/ApJbt3hqO6z+O9IHclQdqR/UaqD7ndPMW1RzeaVMwp8uBQWPpP/yE9II5Sm3akzhLZ8cz2KzYDjRwEtpJdVStahGhpqtk2ROWv89qaPAZEuy39O59VVUEuczNvwv0J0VbHrKGl8JnlCi0MmDzjfmXiWkUEpe8VHCen0tRFrCuT8gKc2Fky+TduM2QjHD/jVjKvxbmnUhNZC9R6QmFNtQvQ9jiyESK90OofRXTBANRsk/mr/V9zGL6S/B4KaTznFnDNpAd9nVjOl2ZORPi7bcSQIXL56/IendQhBI=","translations":{"en":{"changelog":"- Revert setting on completeLogin"}},"signatureDigest":"sha512"},{"version":"3.2.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.6/release.tar.gz","created":"2020-08-09T10:25:27.718788Z","licenses":["agpl"],"lastModified":"2020-08-09T10:25:28.155775Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"SjMrTMoIgHkWOfNrffGWLG5qLGP0T5q4SzEpvSDgfrGV3L155dni/QmRYmzDpRV3VYit6DoZuRpjO5fPSJbVUYi5W4vRdIu3QIwuvq7ngsX3ujOhCG4ujnrOo9jkir+tE2wftoDM9aqVXpFqzJoydRlIB2b85lCY1VO/x8K8zbVDqbeZEQxBAhAlUvGXAS0AasS3TQABXpall/Ou7nI3tWKrPyy/OWl04rM750dhZdHoL4jDp8TEtMArUA3piGBs2FgYA14qU3brEvm+82W2wZW9tgeD5/zv/bAY/VYbd4rBDgTFJrfEI5fX2LDS6y7INeOlEtno7OLilLeGQxo9Q12XLbL9ZnHNq9ZmbpokRT4s31Cy7FnXm30t5lHqGKoG557mc5Oj45orLiGvl0XPdyDsLNltu+lRJp50uBRibc3ebmEYGSsAGtVeBH936dzztB0LZirP8WhrdlkyNAJNfqUrPewW4CHIti6tkmbwaz6hu8insr2q1wn9igF6t2QTI4w3H65hJUVuYRfHKdml6NzJbSSkaxgotig9WxiMQDa19Q6gJPrMJj7WsDVoCw+5WgbGSjAbPwzL6aDLx6gt5iK1DU8AqEEemWowMb1klTRJuxQFqFBmSxUCGlwnj8h1JcK4D/SV+bOTq2ZqFGDtjNC0LuYPgD8Cp0OPkj13XtA=","translations":{"en":{"changelog":"- Bump v3.2.6\n- Set password as uid on completeLogin\n- Bump lodash from 4.17.15 to 4.17.19"}},"signatureDigest":"sha512"},{"version":"3.2.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.5/release.tar.gz","created":"2020-07-08T12:22:11.539796Z","licenses":["agpl"],"lastModified":"2020-07-08T12:22:11.727847Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"p+7ZTXTFGLnG76NbGaHil+Ydezb5HIw8FzH/6WGaby+vwCtfORKjus9noRbUsgZmCnAsPXodUWdSpPF0RydJbTc59gm1CC6+tc2QYEZrtx4CB9H45UdUVsloGYrbopxk8ySUVOC8khrb5eI3ZffCbJgUSi20AWuzkqZI3ndCdpsZ18YxnjeYMyWurQidiCF+sS1vVjGq5TYFpSIyLflYu7Gbbb2u8DcoCAO0kA1MnbA88k2rnim8aNH2Sxn+6BBUETAXodhGOtUV65OUk5wDTF+1knNX3MjfZc8yqGBAO8qOkM9Mg3CRJoezhrAyG3+KTDL4D5dtCnqEeAFmL+Tso+PT5gylxABofLvzj/ZpTXF91J+W3Y9tnzsN4zu1gIGtnxjaxGNf6WBuzpqKqTvUwXQUGCuJ04O52I2LygYIrY9iZtpvbjter/WgcnnzkZJpJN8eUXdlgFwnTeQgOKNZGg2Bs+njuAFOjSS5rfLahJU1eCksKl5XPK6jgf6kdFjdbGcVRmycQQmjJAQLElR2uFnvxb8ZJ/8SZv0jiQ55A36YmcPm0w7QrE1mfvDX3uAkXZ49/0EdytilaYIsD4Z4SwTTNk+tFcGpJHb+WhP+4cLMKt2/4TdV8nNgGchtQV0wso/JsGLZ+OPfmctzVt24Nmu0KDL6H10dpHJ4+uJaGR0=","translations":{"en":{"changelog":"- Bump v3.2.5\n- Import missing CustomOAuth1 class"}},"signatureDigest":"sha512"},{"version":"3.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.4/release.tar.gz","created":"2020-07-07T11:12:51.779643Z","licenses":["agpl"],"lastModified":"2020-07-07T11:12:52.174517Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"n1+35hqCiYWX0LebU2A5tzYO6px6uuejq0foAkWkUKd/jMQ588dj4br0Up7jVSkYt6R58lfDbRciDtmVJ9AsnREsotoV82F7QblVnYRa4Bk3DIMyoaDRVU090gX6pbKIHUF+6tYdkUkgJHd1fVd1r7yWI8tm6rGGzhKwIJcssYt8eju448LhlbeFwrmjeQ3I/9ktdzljPIl1U+ODxEqrOVM9iLjh6m0nCAv3asGjg/EycXcAuLhLJUnfesCVfgqRRbRAiOTij/06pfEvDzIuPcyngnVgGxUs6H8TwRALmmjRv88sPVj189fD2hvk49AoBnHmzUY8gCqaOlU9uaginLf06LnXhTkmJymXr7Z37CjfvAHSBlaKrByW52607mfQH+6rtvziptveQw/8N+0OBilauRkbiuRYT3UVLHHd/YIU83PYdeggP0B/Yv8SEpDSJepiEGHM5Ed3nFXSNIrwKE71tM0YD5HOysuBgdUIS3PO4M0kC0QNtjxjQCTo9SABuQHIhNW03rV1BVO1fxfyocUzMUILl0oU+J9TV7Auv9dHhSUUDdlZ5je1swRXyzXFsytkImCpVV4HRg1qRyMXopuacPvQAx3vqIauTEvFI+xwrSw7KnnmTRfu0Ty7/vYpf28csAyLyLkm8Bbo/eaqcSu1oMNPzoqoeM/0+Ec/3To=","translations":{"en":{"changelog":"- Fix adding custom provider if it was empty"}},"signatureDigest":"sha512"},{"version":"3.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.3/release.tar.gz","created":"2020-07-04T19:59:40.802751Z","licenses":["agpl"],"lastModified":"2020-07-04T19:59:40.916370Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"Dr+trCi7SEXm8iiYv1MQBwMkNF/7VW0cItp7YfYknCGWj2jlzNSLxGwMDBpwVcC8sD17ncFZee/f7RqIRA5LC/SGg00DThI3FB3JMB6xETjxxkpQh64tEmB/zVFyb5L6YPEgekefwHiQJNf7JX1ToFujPXcerg/BXVJdDGDUe7TqjKAVLw5RiJ+5nAcagRa2FAxnd3s+NFmUODnTMjxMylZUMvhqGTnDSvaC4IFdXZGzgVZ4liB4/jgg9lf0Ri1l+BkVRT8yOvwu3i8Qq26S1R0TtUCs2VTIZl7ITTvdJbMpd46ggqFxoD8IilGMD7i47c2ROeKRY0X0BL7CRvBs08VIAl2k578qhaX6VRLRb1Ki0MWnDztvHeOy3/wRjMxvHsgEpu74yaLZu6RPFxrzrtuSOb6mXdphkPF9zVB7ynhwy/4GSr4feQuIk41Ak2iefRN65Q6fSXiB1/2HKms7IHrEuDGgCRsQpGYg1wDpx8LnvQ8fnYZdVdodP2Yjas6YIWEyP8Uwhrj7cKI5lSjke0T2jizlR24HO0gFlpvsmxg3FBbDOqXy14oJfbaNPC2ThURlbZT99AnvPTGHKE1wTdhaI7827xmm4+62IIB3jU/crOP+rRtRz21qtb+WFYmBzDV5w/7e05K1KnZeskivCyHO/AqKurSHHTcFfIpYCAQ=","translations":{"en":{"changelog":"- Changed keycloak button color\n- Exclude node_modules in app scss webpack rule\n- Optimize keycloak icon"}},"signatureDigest":"sha512"},{"version":"3.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.2/release.tar.gz","created":"2020-07-04T14:21:29.994969Z","licenses":["agpl"],"lastModified":"2020-07-04T14:21:30.108809Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"WrmxicI/o6D8Uq4FdjFLtuR5qsWz1EVmf77IG62Fo2zxMdL4IgCSD7z4SSMbeZB7kX5MSNqfm5SXBdm3Ss06ckVvCznPunxIxB6On8A9SlWc36StiOaFrUlP9Q2gvwMGqo1tuXZxQBd/YmBl5tqIMWDjEWXcsYqM7sJzMZrl50rdtTe8Ya6cjVXF6PX0YfOQFtEg4QIqj1rTjb7upkPQBRrU0mLJP9BeteMOxO/2q5bZU68qhQTfDJow/B3tKZyouxY+X6yDRQlb9c/yU+VUoT0ixvrlu/B2Q3OtKEl9zmoGboIT0X/b4b6Jh1j0cMr3Ou144F3wWTI+gS+Gq54daM0RG1RzRK8HBX2PDJP+qReVmy3D7fJDyYQOLJXU0cZArsJUbfYQ2tDLzlBQ5QFHJWOKhDfgz7ewnlZMFDDR5WPGVrxF1We99r/YBqC34rcXrBs8SHlsgPj5plKGpSq1wHSA351d7FFo8ECtuJ0HI+5DlbPVkVRjui+venyVkk5Tg/jlsV6NRViZ81qoMgZSlKZ+ktYWoABfdgRWsyy2FoqTI17yWG9WRJZJ/Kxv9SeNFJKNIO8K7Z6SGgIRDys51/4d/72txprbiutu8L2BxDC4p4ICtwmHm0LkDzPtyE75e7mZd6d1P+ev55t8iqIqiakL7eGtLIon/Ktl1UBYmUk=","translations":{"en":{"changelog":"- Added keycloak button style"}},"signatureDigest":"sha512"},{"version":"3.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.1/release.tar.gz","created":"2020-07-04T13:01:15.733220Z","licenses":["agpl"],"lastModified":"2020-07-04T13:01:15.851660Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"LpmZFfNOsfFPvWVTHkn5seE/JxbYfgLylDLza6ZUMJEPgVQzxr9wbCSL8fevweMSj3yEU0+GBQabYA9dGvLWniZPqVMTwRhFJfWb7axVgdPffgNFrG7dBPuocDYZcJP36iOiKsdV3sQ2I6LWiMihUisTyP6Nq9IGY4NT37Ujnt8IfEi+BGI8yAbUEDqbo4DYgbV/wOnScEIoQoGZy4+JmAupz7Mz1/z1sQdJ5i1iO38DvCr6z3ZFNDRzNG4MvLnybMYBDVt3QLSY2AKeKzIUyIiTOhLBx2QrC3lGNw7M0uf+6AGbhJHLoDjIKa8Ry7milv9/EWhh3Yjmtxtq5ZT8Kw+uPeBSrWKvJ5Yk1z+F0EaRQZCn6WEoNT1ncVx+qYHLpuQLr+rr8rvQpD9CYhYqQctZFUodj28/BH/44x5wBILixc7wncc5jLCGr79mdm26xpOWbtHYVnZAuG1a4nwrv06ur7jrcKsA4bozbk2rcbW/lJXtzIIdRxip6dFhawvXd8HL1i9+HnBQt+4FYe+MG08wJYkeF8G2QDMWILksyYXaXD2A6GwHYSPECY8PIprqt2uvfc7FJpztWG+kjAYavlL8Ix6eA+JGysbrAeyWggkzEIVU9AdxAG5Asyu8VQqewPrVAO3SsqLGxXV65iIe6Axl0p4kOY7ZQ/cctDdPNBI=","translations":{"en":{"changelog":"- export-ignore webpack.js\n- Build styles from scss\n- Remove api_base_url for oauth1"}},"signatureDigest":"sha512"},{"version":"3.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.2.0/release.tar.gz","created":"2020-07-04T09:38:32.141632Z","licenses":["agpl"],"lastModified":"2020-07-04T09:38:32.262008Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"BN6kYKQgHHe4Te0WgdKrw0QO2se2Jkd4TVd2clS/+Gd2hIjW4+6u/XcvNVQmANe7leiIHxJgPf6xGj0Fw36P24nXa8f3umfWmMkLU/nJiH7y07YdAciBwE6hhJfUaf3GeyZHKEYTco8UnxL+dAcSacHoicXjFRWpoXuVPJWJj1j1T+pWtk5O+2hn5L/oFJW6zW24HovgZ99Vz7C3n5mac6zxlKzVz4w/GQ9PyNy0c7SWk3tQHogx95eppuKTeHh39ZLp+9K7PnsNYlKlIlK7n8Iz6Pvcmk5JhNfD+3fnNM1H5VM0J9qr7JvKoX1W5bYgFOJQVR49mwaqencyYh6zedCH91pbWb1Vxk4QvUhjVxGTEIevR0KhJpQ+O5rLUS3ibAdYTSYySsHGyjUOBw9EN++zCybLwjGJlz2eEmkr03t3JR8RZxCFq5/A5TxTxlpPqZyhgr5rUQXHXsxlKDAn6ywUGQIL5g2fRGdK6SUb1XYOgxOLH/+IgQtqfNs7uxRBDVmOx3W9DgiwMStktLPU5lDIdEw8xF+F3CsgfkzsZ9qZYbnowAcMwuYPZEpu2qBo8/n1e+fyq9tfTQaDAx5+089eWGtZwhfj4v8pU9JYLCeB17d6U5gRBQWGyyXfcwRaeolc6HW/4SvB2HwZlTqLyJyVt5Hn6ew12GvIzYFcRgA=","translations":{"en":{"changelog":"- Bump v3.2.0\n- ProviderService::getAuthUrl\n- Add custom oauth1 providers type\n- Custom login cia single controller method\n- Custom login via single method\n- Login loginc moved to provider service"}},"signatureDigest":"sha512"},{"version":"3.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.1.3/release.tar.gz","created":"2020-07-04T03:26:22.345592Z","licenses":["agpl"],"lastModified":"2020-07-04T03:26:22.454500Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"StPhS9R5WCzRG2M4734joU5YKd04NzdLh0gFazPlRbkTUGWuxDHPqyp8tCFf6HDvknO6VKyzwJ+/Y4UyWkxEgfs+gS6P+bxAla5s6sCTcPtP49APtQoi+Wv+ZzAzoMo9mwwy3vg77G8AYt1bYucia3HzNuToMqbPC9T3HV8tepEV/vqO7m8XbVfus6yNrjyxyJLFiN4lW7SbvonMJEVc6va79+X47etfw3Y419Gi7CDrH0fCuFI2+4lirda7jeaTKhFJskZ/rSicdQL27lwNrGtSKu/0FT38xky7Pv9zVwFIy3VSUNBW5ru2jMhntSlO/8iK6jpwW6RXg4IFtiSnVC+SPtit19lk6G7kklzHOgt3MWYRB2sqrCLVfN+VvCRngCeemTPjixkMb4yT4HZBU3jQuNnV8kaXfssybX/ATuyliZC/9LB1MQUuVCiSprIR4fpN1kGdqhLa/NZHz9Bj6Qs8eSGuZkIu4pwdY17f9l39SpT/66B2hkSwwZAsZOQdQo8UzDM2PKZxmCVLUogIWcTPtYRirKtFWqEDrf4KimgB90MyYhhSbcTPu2ge5MHpVjX8wxjr6s3mvhsQfwLh7QYt8FhR68Qku1fHkR/xmTmhJQDihC7K3HecTACBIzVyAfcD57UZpjY6ziUJnbrGfHxmYq02e0YSsKf0ICsAdF8=","translations":{"en":{"changelog":"- Bump v3.1.3\n- Fix empty settings page\n- Add telegram link to docs"}},"signatureDigest":"sha512"},{"version":"3.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.1.2/release.tar.gz","created":"2020-07-03T09:54:10.748137Z","licenses":["agpl"],"lastModified":"2020-07-03T09:54:10.830798Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"F+7UfdYv38cvOvZ1/zWBs5mdDJH4OeGpvhqfrVUBuF2c0iDyweKwC6pKXzqZ5OzxST+NBduodpr6LIqaunTyzVu4bqwXqlzbIz+jFDjSm55hU/tjb3sYQjTbGAdDZVC67e/xGIDi8eFP9lqS6v83ym5XAhwLxLQIwTOIoEyu7/5uyxYAjiM0pWSmwFVi9cgTDfyYyLdLp5C6qndb3X+90ooHt4P3Ie2TeZK5EEhTeY7DasY3982XMXdmIL9Ff9A4dIsLRnbSk7dwNqer6Xdg/JKfYUZb3m1ygG1vv8QZIMceF3lmnJaOz80u4lq8pP3H8q+QaEMTGPWfMgbfneDbFWg42U90J7Tmzf2l8QZNKwTgnYyNh9uCFwqjYT5+i5yun15fyk9a+BPB1sKVZL2y3V7yu8xjWdziGrv3xYBz2awahDLB8d45w6PwT8EEfV0+djW0YNrXUD+an2JngOjI2k54SKrVzkp3EywI78rbIajCBpEAQk2wK9PCeqPz0QLHjD8X5bPpa2ihfo57rXH9iq2nKjx3Ve0nodzaIt0oQwkbhqrHnTNURcNUXVQ+tTRnqZfdQU4MVB17EKFeHGyTYJ26t4gUnl9T9VuXvmAMISTya76eMU6EdWj1fbynsyPAxATSNBhJZTPK7HI8CCoOJ9GgVJMyp25kR5j4rGcQii0=","translations":{"en":{"changelog":"- Telegram refactoring"}},"signatureDigest":"sha512"},{"version":"3.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.1.1/release.tar.gz","created":"2020-07-03T07:24:47.165051Z","licenses":["agpl"],"lastModified":"2020-07-03T07:24:47.270176Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"C4YyaOdfjAU5RAadSR+TWYH28xUgp0SJjjerdPDlTHASxj6mSrVVHib9D2n9YoT1M/33A4ckiJmBylxj5zolAVxEJvhevBgjQkYCt2y6fXfbdCreOZZinCvXkqhqzUOlSco5eZ+W+jm358L1O6pfe9aQmoO/QctaaUeFWlBztbfOvP58S6mp+dXmvMBuOSzhIF267pksELLuMOHzWOu6WdmiskOm9Uxha9Y3hUAC5olPCrhltpJCgICj9e9sYdKvq3vhIwwW90IfU3qGQ2IBeOfDdfq816jluWRcQxWq2WmFQ3QSYdi6o6AgDbGtMvqFX9Mkw2u6/N2ikoTPAKcpjGNODqDN3JZKH/xUwvXlQfiMNQp5MOkp7nqXrrp3XWJO46kIrlrr3z3Mh7j5qCPzkBc/FxL+HL1CwOOZ3hfJeK8CnuN1A+qLosgGSdFrvFu9Mui86dLXeq0jXfw3HDDyTbbDgCyz1fCkvOTU5OlW1M3YZJ+yVLyWEpRbP/XN2urJ6X9Fl1bmwGmennCEA0mnliqx5gZwryw5WYEI5u8C6oKYnVg78LEMTZozsHLDwPsINpNplML/e8VxgtXl1Yv3WvAQAfhibbkYBExiuf7Hg6ZvOgWroMff9F9STU535xt69K+vYEdNMv1uJV7gQNhjRgLv9vy3jAWFCtk1xI144nc=","translations":{"en":{"changelog":"- Custom providers refactored"}},"signatureDigest":"sha512"},{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.1.0/release.tar.gz","created":"2020-07-03T01:58:20.652679Z","licenses":["agpl"],"lastModified":"2020-07-03T01:58:20.965486Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"Te4KWGK2nFGa9+ypP+/Zy7bLPU8PnLB32TSTkfgiagveSSx4ZcM9k3D65jhtEZ6JSnmvAh8HKEPguS9ZW91ZznhpF1VVmpQl38dUy47IlgHiOO0OtTOiB3zReMc3yW57RneRotNaT9f2p/OqCkd6PcB7uY8NlG4mUK779ZbMLnqhgK2zfD6dCtCnxf5merz1UFMhgOvqcx5maPzhl9AOstWZQCWnPRG4Y3YToGdaoZ3raL6VrLgIoBwvoV3BqYKHWYlvT8qXZ/Z5RGwRi1UNw+y7/FU1SkEtwQVpQEO3LnZ8+eTGgPpUCTvJBIxb6aJCZKLdRKQ0aOX0A4KelzE1PSYOodCoAZ7t2JIX6bBMVdqRazhdtnaWwL0F6euXWSXa/xij2xruGOV3s/NwGMzV4u3g06vV5kZ+BlxGDzG2EBUWADBi7Qsy8yVX2Fv7fRnx1WhD+Broda1/xjKaA7AuZQs/lwAYfYsRyw+6sVkpv2MbJsRLhJpmgdvw/HfXx2RysMKRiIfpQKncZwmeAlg37ABdiJS2Kvr/1Ms9m/MGUhk4x143rzfe0EXNTq3BJT9R9j4NmZ/8STedfcpk7p1qhmcL33kOVeVyMZLIsNzklqDGiPEXswibrvjOCwYUIifphJRZKQ6nLtED7/um3WOWCCjaxA6daLwWns14mhgHxPk=","translations":{"en":{"changelog":"- Bump v3.1.0\n- Vue app for settings page\n- Include notification styles in bundle\n- Remove vue"}},"signatureDigest":"sha512"},{"version":"3.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=13.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/zorn-v/nextcloud-social-login/releases/download/v3.0.1/release.tar.gz","created":"2020-07-02T16:56:26.476713Z","licenses":["agpl"],"lastModified":"2020-07-02T16:56:26.621600Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=13 <=99","signature":"FAleOS6XjwqdBcNiGhDUM7odzC5KBOkd//ZOGPRBG0dXo6tABuhSybnbnZqoBUKHA+iBMt07cuXZ/Tn4o/I+dm2hpqynjLMN2g/mpuX9c2MZ1730E0d7rZrHVijl7nA+Djxifd6JsxkRld1tz4UMUQee6m7Pl5EuaIjbzVIz3LwD/jWVu7dRbekfGic1usL3BGgB2L7B6jYs8Q5OAgu2V244HkYNl3dFtCU4CbUnj0IwsuoTyNFmXzw3Bfm/3k5HpExma754KldBl0Sc03a5AucVLgz5K+WrMDHcJ+GTRWoceMMjXVMPUBAmdpv0UOeAygUevDGc/EgeuB2AHSWLnKH6ag/nbPv3BJS0TC6tJVRHuChpaJLG8o/KTnTw2xLWkbzKepIWkmw2rVM9VAD4gQvFca4nBLgHeNiPU00F2r6TUOcf4ee3CtKu8pyQYpqmB5BugBl2krFX+2VcLz+C3IaGrxo6oguSfIFQ/cpqpes3BLBeATJxK0g5qzq+ogwAD32gmJZPRJVCzQGWdGhZBTtxTykmpykoIe7CQuK+WoJukSQQZWkeBYRgHnDmq1bskrQAYafx0ZGqJ9svNSON9PRGoVfowG+MMZkroF31x8xPcIvKPjwUAFMEcaNrlRJzcaVsD53j/vkYl+Mt/AEoo46/3Pi2rPGq94PXtQnyQdo=","translations":{"en":{"changelog":"- Fix info.xml"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvcm4tdi9uZXh0Y2xvdWQtc29jaWFsLWxvZ2luL21hc3Rlci9hcHBpbmZvL3NjcmVlbnNob3QucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social Login","summary":"Social login via OAuth or OpenID","description":"# Social Login\n\nMake it possible to create users and log in via Telegram, OAuth, or OpenID.\n\nFor OAuth, you must create an app with certain providers. Login buttons will appear on the login page if an app ID is specified. Settings are located in the \"Social login\" section of the settings page.\n\n## Installation\n\nLog in to your Nextcloud installation as an administrator. Under \"Apps\", click \"Download and enable\" next to the \"Social Login\" app.\n\nSee below for setup and configuration instructions.\n\n## Custom OAuth2/OIDC Groups\n\nYou can use groups from your custom provider. For this, specify the \"Groups claim\" in the custom OAuth2/OIDC provider settings. This claim should be returned from the provider in the `id_token` or at the user info endpoint. Multiple claims (comma separated) also supported - groups will be merged.\nThe format should be an `array` or a comma-separated string. E.g., (with a claim named `roles`):\n\n```json\n{\"roles\": [\"admin\", \"user\"]}\n```\nor\n```json\n{\"roles\": \"admin,user\"}\n```\n\nNested claims are also supported. For example, `resource_access.client-id.roles` for:\n\n```json\n\"resource_access\": {\n   \"client-id\": {\n     \"roles\": [\n       \"client-role-1\",\n       \"client-role-2\"\n     ]\n   }\n}\n```\n\n**DisplayName** support is also available:\n```json\n{\"roles\": [{\"gid\": 1, \"displayName\": \"admin\"}, {\"gid\": 2, \"displayName\": \"user\"}]}\n```\n\nYou can use provider groups in two ways:\n\n1. Map provider groups to existing Nextcloud groups.\n2. Create provider groups in Nextcloud and associate them with users (if the appropriate option is enabled).\n\nTo sync groups on every login, ensure the \"Update user profile every login\" setting is checked.\n\n## Examples for Groups\n\n* Configure WSO2IS to return a roles claim with OIDC [here](https://medium.com/@dewni.matheesha/claim-mapping-and-retrieving-end-user-information-in-wso2is-cffd5f3937ff).\n* [GitLab OIDC configuration to allow specific GitLab groups](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/gitlab.md).\n\n## Built-in OAuth Providers\n\nCopy the link from a specific login button to get the correct \"redirect URL\" for OAuth app settings.\n\n* [Amazon](https://developer.amazon.com/loginwithamazon/console/site/lwa/overview.html)\n* [Apple](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/apple.md)\n* [Codeberg](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/codeberg.md)\n* [Discord](#configure-discord)\n* [Facebook](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/facebook.md)\n* [GitHub](https://github.com/settings/developers)\n* [GitLab](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/gitlab.md)\n* [Google](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/google.md)\n* [Keycloak](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/keycloak.md)\n* [Mail.ru](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/mailru.md)\n* **PlexTv**: Use any title as the app ID.\n* [Telegram](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/telegram.md)\n* [Twitter](https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/twitter.md)\n\nFor details about Google's \"Allow login only from specified domain\" setting, see [#44](https://github.com/zorn-v/nextcloud-social-login/issues/44). Use a comma-separated list for multiple domains.\n\n## Configuration\n\nAdd `'social_login_auto_redirect' => true` to `config.php` to automatically redirect unauthorized users to social login if only one provider is configured. To temporarily disable this (e.g., for local admin login), add `noredir=1` to the login URL: `https://cloud.domain.com/login?noredir=1`.\n\nConfigure HTTP client options using:\n```php\n  'social_login_http_client' => [\n    'timeout' => 45,\n    'proxy' => 'socks4://127.0.0.1:9050', // See <https://curl.se/libcurl/c/CURLOPT_PROXY.html> for allowed formats\n  ],\n```\nin `config.php`.\n\n### Configure a Provider via CLI\n\nUse the `occ` utility to configure providers via the command line. Replace variables and URLs with your deployment values:\n```bash\nphp occ config:app:set sociallogin custom_providers --value='{\"custom_oidc\": [{\"name\": \"gitlab_oidc\", \"title\": \"Gitlab\", \"authorizeUrl\": \"https://gitlab.my-domain.org/oauth/authorize\", \"tokenUrl\": \"https://gitlab.my-domain.org/oauth/token\", \"userInfoUrl\": \"https://gitlab.my-domain.org/oauth/userinfo\", \"logoutUrl\": \"\", \"clientId\": \"$my_application_id\", \"clientSecret\": \"$my_super_secret_secret\", \"scope\": \"openid\", \"groupsClaim\": \"groups\", \"style\": \"gitlab\", \"defaultGroup\": \"\"}]}'\n```\nFor Docker, prepend `docker exec -t -uwww-data CONTAINER_NAME` to the command or run interactively via `docker exec -it -uwww-data CONTAINER_NAME sh`.\n\nTo inspect configurations:\n```sql\nmysql -u nextcloud -p nextcloud\nPassword: <yourpassword>\n\n> SELECT * FROM oc_appconfig WHERE appid='sociallogin';\n```\nOr run:\n```bash\ndocker exec -t -uwww-data CONTAINER_NAME php occ config:app:get sociallogin custom_providers\n```\n\n### Configure Discord\n\n1. Create a Discord application at [Discord Developer Portal](https://discord.com/developers/applications).\n2. Navigate to `Settings > OAuth2 > General`. Add a redirect URL: `https://nextcloud.mydomain.com/apps/sociallogin/oauth/discord`.\n3. Copy the `CLIENT ID` and generate a `CLIENT SECRET`.\n4. In Nextcloud, go to `Settings > Social Login`. Paste the `CLIENT ID` into \"App id\" and `CLIENT SECRET` into \"Secret\".\n5. Select a default group for new users.\n6. For group mapping, see [#395](https://github.com/zorn-v/nextcloud-social-login/pull/395).\n\n## Hint\n\n### Callback (Reply) URL\nCopy the link from a login button on the Nextcloud login page and use it as the callback URL on your provider's site. To make the button visible temporarily, fill provider settings with placeholder data and update later.\n\nIf you encounter callback URL errors despite correct settings, ensure your Nextcloud server generates HTTPS URLs by adding `'overwriteprotocol' => 'https'` to `config.php`."}},"isFeatured":false,"authors":[{"name":"zorn-v","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6923076923076923,"ratingNumRecent":0,"ratingNumOverall":13,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhCaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwNDEyMDgyMTMxWhcNMjgwNzE4MDgyMTMxWjAWMRQwEgYD\nVQQDDAtzb2NpYWxsb2dpbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAK8UEQ8PimboyKJK03F3yxXvN9vd3jkG/GyGNLbWnR3VGayIXPWHPcby1XYdYwDn\ndL2PLv3YaUuPe96pRv9X9akZXXORjqzcoPm9HVLM818/GjwtuwwllfP3UUjqnNqG\nNJo7jRFK3iAU3elRBwUu7Osmzw2pEPFjuuZ8i8HrIeKekWmWr41OP88ZS0CqiUxA\nCNC9PRXunW2kWSCDRSQ1mA8Oqw/U7mfLQi+bbn+r/K9Wbe1BfSQnqQtWf9zUF39r\nh21zaxKJJIXjzqJ1bayQohg4o2Eu+GEmZe+gHYThZVeM0RGCSLbFYA/+rRKVFyUY\nWhZrUJbxBp3AOF+NNSI4LlVMu5Kbf/J/oaYoYPd0l2S07abhMO4bDflDDFdALym8\nhIplg5s7tz8KdRsb1NriQH4OaNeICm4ULv1uNSZ1AFG/JC3lEd6mRFpqIaO7WLp8\n6Nr5+fp8PQFrunfCdGwlvTSb43hXXHVnhUwsvfAmd49KVxPIqPUQ7tP/hGAYKWei\nqoO+9L2wdG7jrdkmR6ujU3lpRCKx6pCC26MyZWfe5sPM4+2elAdVDvoF0iuNPeq8\nSShVWF0cgVxKRi0KPq3e3TYqpfdqQCISudvtKgdsfsZY3xQEVlNAmizRlNT4XCZM\nAlz55zKXKEGwGpFA6pqAfYmTgFnJxwkpK3i0pKkh9pxTAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAJGkC52aQEECvV4FhS1gKFmAoLTL31L0f18jpJxmBZjZkjPLfpkL\nd7kPFYbUboAIP/gwEsSLC/W8esHDfDkr3NQquilKrhW41ChP452ncChJRW8/mrdb\nQMRdPhmlApPrdKxO/KbsZEnA527X1t/34wpTO18q5PYM7wnCMQaSF2mt0uiPnePG\nB3MRArq+R4AHNInJbqIeTXVoZSrqnHAW6kEIXPGIIkBJKmKT7QKBZHlW46jJQIFd\nLZnMNPbLhBpyVr7vHOu8LA69bHOnvr7XHYF8jcqBbX+FOcwD6eZykzmOm4QlWEJ7\nLcrx3B0asvRW9tKxFUhfNp5wvUp10/Du0+c=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"musicstats","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://codeberg.org/badscooter/music-stat/issues","website":"https://codeberg.org/badscooter/music-stat","created":"2026-10-13T13:36:00.552986Z","lastModified":"2026-10-13T13:40:42.487130Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/music-stat/releases/download/v1.0.0/musicstats-1.0.0.tar.gz","created":"2026-10-13T13:40:42.475499Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T13:40:42.664181Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"kaqGlZ9D2m2ZnRk2edAGyZMFmO0pBXpzMG727gji0rUj12+Ewzwtj5DVSpupj+kg\nPufHtnGwTgq29wUwAR7fOj1t+L4L4DjyL7dZMdQlIOPqRo+UYR9WXwjb4kz4bZht\ncJdN+QIHlAeD5IZTC7ZJlW/LMF0r9J7CI2oeImu5pX3NEUJ0PFK+HOmRSNv85Nsy\nxzK6OK6i7NtFA4kLCXlGq+lJATWveTVKE0ix47FYUQD2tdIovkn59kD6njod7UYe\nD+MKgZGHX9nSerwusaKdUxts3ZVjBDlo1sd89pDJUM9140GVFWx8+IbGFGovt+Db\nfbG9gpFNC14arQiPvUPaWUEHV+uz8WxRst98DlC9+3vqcuVFJcoYXCeP/971YTVl\nwwGnOW17AZXvw/WHB1GNzlgA3ddxkJG5P9sNPyW3ToAp8qygxKajgUgsKTug06vU\nIgxbTQVovOx+3gICCEYjcVUFNJaD5Hfcs6UW/y6ZgOiNy22lxywSmJku2Dwhq4z/\nFdG9dDrmDK1B9n74YxTS3E4OaBGRsGqGdJruw5TD4jLkdB5yXn+xbUeZi2L/QzeN\nOXZhlz+7f70GVcxxOf7E7FRLZUdPpt80Y2WHGHDxdyPe1E+/z5852Yr3U7D090ww\n3YRRUZ8wft8o6ZbFmPJJVshIytOsoJJQaAAJJNnkekI=","translations":{"en":{"changelog":"First public release.\n\n### Tracking\n- Opt-in tracking per user. The first snapshot saves Music's current play counts as the starting point; they count in \"All time\" (without date).\n- Daily snapshot of Music's play counters (background job, `occ musicstats:snapshot`), with a stable track identity across a Music library reset and no negative counts.\n- With a Music version that sends `TrackPlayedEvent`, each play is recorded with its exact time and its app (web interface, Subsonic or Ampache client), and reconciled with the snapshots without double counting.\n\n### Dashboard\n- Period selector: 7 days, 30 days, this month, this year, all time, custom range.\n- Key figures compared with the previous period; \"All time\" includes Music's play counts from before tracking, explained by a help bubble.\n- Listening time per day, week or month; top albums with covers, top artists with pictures, top tracks, top 50; discoveries; genres, decades and apps; CSV export.\n\n### Library\n- Contents: tracks, albums, artists, genres, total length, genres and decades, tracks added per month, most present artists.\n- Tags to complete: tracks without genre, year or artist, albums without cover, with links to the files.\n- Ratings: the stars given to tracks (for example in PowerAmpache2), average, distribution, plays by rating, 5-star tracks, loved but rarely played tracks, best rated artists and albums.\n- Listening: share of the library played, most played artists of all time, forgotten albums (with an explanation while Music's history is shorter than the threshold), never played tracks by album, by artist or as a list, with a ▶ button to play them in Music.\n\n### Yearly recap\n- Key figures, album and artist of the year, month by month, top tracks, discovery of the year, compared with the previous year (changes, last year's ranks, rank moves, genre shares).\n- Each recap is saved for good 7 days after the end of the year.\n\n### Sharing\n- Read-only public web pages for the dashboard, the yearly recap and each part of the library (contents, ratings, listening), valid 24 hours or 7 days, revocable, with an editable accompanying message.\n- Only the pictures shown on the page are served; no link to Music or to files; nothing is served when the administrator disables public links.\n\n### Other\n- Music Stats only reads Music's data and never changes it.\n- Settings: stop tracking, forgotten threshold, delete history; `occ musicstats:reset`.\n- English, French and Finnish.\n- Nextcloud 34 and 35."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wMS1kYXNoYm9hcmQuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wMi1kYXNoYm9hcmQtdG9wcy5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wMy1saWJyYXJ5LWNvbnRlbnRzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wNC1saWJyYXJ5LWxpc3RlbmluZy5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wNS1uZXZlci1wbGF5ZWQuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wNi15ZWFybHktcmVjYXAuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wNy15ZWFybHktcmVjYXAtbW9udGhzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wOC1zaGFyZS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9tdXNpYy1zdGF0L3Jhdy9icmFuY2gvbWFpbi9kb2Mvdml0cmluZS9hcHBzdG9yZS8wOS1saWJyYXJ5LXJhdGluZ3MuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Music Stats","summary":"Listening statistics for the Music app","description":"Music Stats shows what you listen to in the Nextcloud **Music** app: top tracks, artists, albums and genres over any period, listening time, the music you never play, and a yearly recap compared with the year before.\n\nThe Music app only keeps a total play count per track. Music Stats reads these counters every day and keeps their history, so you get statistics for any period.\n\n## Dashboard\n- Period selector: 7 days, 30 days, this month, this year, all time, custom range.\n- Plays and estimated listening time compared with the previous period; listening time per day, week or month.\n- Top albums with their covers, top artists, top tracks, discoveries.\n- Genres, decades and the apps you listen with; CSV export.\n\n## Library\n- Contents: tracks, albums, artists, genres, total length, additions month by month, most present artists.\n- Tags to complete: tracks without genre, year or artist, albums without cover, with links to the files.\n- Ratings: the stars you give to tracks (for example in PowerAmpache2), average, distribution, plays by rating, 5-star tracks, loved but rarely played tracks, best rated artists and albums.\n- Share of the library you play, most played artists of all time, forgotten albums, never played tracks.\n\n## Yearly recap\nKey figures, album and artist of the year, month by month, top tracks and discovery of the year, compared with the previous year. Each recap is saved for good once the year is over.\n\n## Sharing\nA read-only web page for friends without Nextcloud, valid 24 hours or 7 days, revocable, with a ready-made message.\n\n## Good to know\n- Requires the **Music** app. Music Stats only reads its data and never changes it.\n- Tracking is opt-in, per user. Plays from before you turn it on count in \"all time\" only.\n- Each user only sees their own statistics; nothing leaves your Nextcloud unless you share it.\n- Available in English, French and Finnish.\n\nThis app was developed with the help of Claude, an AI assistant by Anthropic. Screenshots use fictional listening data; album covers in them are generated pictures, not the real covers."},"fi":{"name":"Music Stats","summary":"Kuuntelutilastot Music-sovellukselle","description":"Music Stats näyttää, mitä kuuntelet Nextcloudin **Music**-sovelluksessa: suosituimmat kappaleet, esittäjät, albumit ja tyylilajit millä tahansa ajanjaksolla, kuunteluajan, musiikin jota et koskaan kuuntele, sekä vuosikoosteen verrattuna edelliseen vuoteen.\n\nMusic-sovellus tallentaa vain kunkin kappaleen kuuntelukertojen kokonaismäärän. Music Stats lukee nämä laskurit päivittäin ja säilyttää niiden historian, joten saat tilastot mille tahansa ajanjaksolle.\n\n## Kojelauta\n- Ajanjakson valinta: 7 päivää, 30 päivää, tämä kuukausi, tämä vuosi, kaikki ajat, vapaa aikaväli.\n- Kuuntelukerrat ja arvioitu kuunteluaika verrattuna edelliseen ajanjaksoon; kuunteluaika päivittäin, viikoittain tai kuukausittain.\n- Suosituimmat albumit kansikuvineen, esittäjät ja kappaleet, löydöt.\n- Tyylilajit, vuosikymmenet ja kuunteluun käytetyt sovellukset; CSV-vienti.\n\n## Kirjasto\n- Sisältö: kappaleet, albumit, esittäjät, tyylilajit, kokonaiskesto, lisäykset kuukausittain, yleisimmät esittäjät.\n- Täydennettävät tunnisteet: kappaleet ilman tyylilajia, vuotta tai esittäjää, albumit ilman kansikuvaa, linkit tiedostoihin.\n- Arviot: kappaleille antamasi tähdet (esimerkiksi PowerAmpache2-sovelluksessa), keskiarvo, jakauma, kuuntelut arvion mukaan, 5 tähden kappaleet, rakastetut mutta harvoin kuunnellut kappaleet, parhaiten arvioidut esittäjät ja albumit.\n- Kuunneltu osuus kirjastosta, kaikkien aikojen kuunnelluimmat esittäjät, unohdetut albumit, koskaan kuuntelemattomat kappaleet.\n\n## Vuosikooste\nTärkeimmät luvut, vuoden albumi ja esittäjä, kuukausittainen kehitys, vuoden suosituimmat kappaleet ja vuoden löytö, verrattuna edelliseen vuoteen. Jokainen kooste tallennetaan pysyvästi vuoden päätyttyä.\n\n## Jakaminen\nVain luku -verkkosivu ystäville, joilla ei ole Nextcloudia, voimassa 24 tuntia tai 7 päivää, peruttavissa, valmiin saateviestin kanssa.\n\n## Hyvä tietää\n- Vaatii **Music**-sovelluksen. Music Stats vain lukee sen tietoja eikä koskaan muuta niitä.\n- Seuranta otetaan käyttöön käyttäjäkohtaisesti. Ennen käyttöönottoa tehdyt kuuntelut lasketaan vain kohtaan ”kaikki ajat”.\n- Jokainen käyttäjä näkee vain omat tilastonsa; mitään ei lähde Nextcloudistasi, ellet jaa sitä.\n- Saatavilla englanniksi, ranskaksi ja suomeksi.\n\nTämä sovellus on kehitetty Anthropicin tekoälyavustajan Clauden avulla. Kuvakaappauksissa käytetään kuvitteellisia kuuntelutietoja; niiden kansikuvat ovat luotuja kuvia, eivät oikeita kansikuvia."},"fr":{"name":"Music Stats","summary":"Statistiques d'écoute pour l'application Music","description":"Music Stats montre ce que vous écoutez dans l'application **Music** de Nextcloud : morceaux, artistes, albums et genres préférés sur n'importe quelle période, temps d'écoute, musique jamais écoutée, et un récap annuel comparé à l'année précédente.\n\nL'application Music ne garde qu'un compteur d'écoutes total par morceau. Music Stats relève ces compteurs chaque jour et en garde l'historique : vous obtenez des statistiques sur n'importe quelle période.\n\n## Tableau de bord\n- Choix de la période : 7 jours, 30 jours, ce mois, cette année, depuis toujours, plage libre.\n- Écoutes et temps d'écoute estimé comparés à la période précédente ; temps d'écoute par jour, semaine ou mois.\n- Top albums avec leurs pochettes, top artistes, top morceaux, découvertes.\n- Genres, décennies et applications utilisées pour écouter ; export CSV.\n\n## Bibliothèque\n- Contenu : morceaux, albums, artistes, genres, durée totale, ajouts mois par mois, artistes les plus présents.\n- Étiquettes à compléter : morceaux sans genre, sans année ou sans artiste, albums sans pochette, avec les liens vers les fichiers.\n- Notes : les étoiles que vous donnez aux morceaux (par exemple dans PowerAmpache2), moyenne, répartition, écoutes selon la note, morceaux à 5 étoiles, morceaux adorés mais peu écoutés, artistes et albums les mieux notés.\n- Part de la bibliothèque écoutée, artistes les plus écoutés depuis toujours, albums oubliés, morceaux jamais écoutés.\n\n## Récap annuel\nChiffres clés, album et artiste de l'année, mois par mois, top morceaux et découverte de l'année, comparés à l'année précédente. Chaque récap est figé une fois l'année terminée.\n\n## Partage\nUne page web en lecture seule pour vos amis qui n'ont pas Nextcloud, valable 24 h ou 7 jours, révocable, avec un message tout prêt.\n\n## Bon à savoir\n- Nécessite l'application **Music**. Music Stats lit seulement ses données et ne les modifie jamais.\n- Le suivi est activé par chaque utilisateur. Les écoutes antérieures à l'activation ne comptent que dans « depuis toujours ».\n- Chaque utilisateur ne voit que ses propres statistiques ; rien ne sort de votre Nextcloud sauf ce que vous partagez.\n- Disponible en français, anglais et finnois.\n\nCette application a été développée avec l'aide de Claude, l'assistant d'intelligence artificielle d'Anthropic. Les copies d'écran utilisent des données d'écoute fictives ; les pochettes y sont des visuels générés, pas les vraies pochettes."}},"isFeatured":false,"authors":[{"name":"badscooter","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhRmMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEzMDg1NzM2WhcNMzcwMTE4MDg1NzM2WjAVMRMwEQYD\nVQQDDAptdXNpY3N0YXRzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nvarkQjriRxPkWvYaNUIJozTSlBO0gml31LtQ/1OkReimiSesj34oS04v/ancyuqs\ngHNN8RXqTD7M72oMgEbv/V/gsT5LcwmM5Qt4D2grtw5gm+kWjWC7jZqkdO3twXNY\nGYlss56QMnJcDI4r32Ud6Gp0os/jIy5QeeMvSEVXc1IGvLH+M+0yaOyPNf6pJArN\n6xRuL9ov6gUpJJBvai1HTstpe5vlCM/27vCHSEldlEhFhQrRS/dp1n+B2LpEMvRr\n/Dximl1swnFlrfyVpZhi78Mv1Ab6PEBTlawRC52MLmtYMpqjOjLP9alGHbeX1TZW\n5kPnuMRxVM2miEDSTonNp5mP0KAu3PF8N81NpDWFVnwxd6m8TzbCyAGM5aa8huo+\nK6ROse7qHAePprf36yJpJJMBLTS9T+eQCJd66CMVxJtTYY+acoqSH/M2f2N4EptX\nrN/eihZs46duU26swVCI/JrBSnAig7BwVlbCDKDm0GMjDgbKzApFn3ZFBqhQpr56\nlfTvC2X+Bt7SF3BP0kdeeQFPshiZbocEnUaHcTbWev3iCHERH5sK7FDvtYRV6Yf4\nUCUGLZpb3ZPQA0GY34ItoGgCkRdQQom3i23SHyocVgomXi8HEqYDGLg1T235Ra4g\n93FNwFAzDHB4cPcd2YhGcxbyN2orsbJmmMa7YojwDl0CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAOwA9lv5BtmBA92MP8k1SUdc5yZlC/CmfWJ6TwXh9GAg6XDnX2oXo\nsjWGAq8S/rCHgXeYmUpp2fBejLva5khUP/Xo/FAiyU7+rGXKCWpevIaMtw7R6i4z\nrkJfo5wcDiKLZ/ASn+P2k0Zx8v6lTbjaw0Ckq9BZxBVE9+EX2o55RloLlEu4aT1w\nmQYjTWCuXxAF6/TL2lG64w0BdliaFPSRmaSFsANNfaWGlwHIOoBAVc9BvD6fi7eg\ns+/5qCiOpEh/BAn+RXLdy4IV1sr2HL/VD675eoVTNsnJqqQe9IbogTJnL9hElFNN\nqd2LQit2X48N/MNt8E5KvVI0qlkjpeJUbA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_fulltextsearch","categories":["search"],"userDocs":"","adminDocs":"https://github.com/nextcloud/files_fulltextsearch/wiki","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_fulltextsearch/issues","website":"https://github.com/nextcloud/files_fulltextsearch","created":"2018-01-08T13:45:46.826389Z","lastModified":"2026-09-18T23:07:21.541522Z","releases":[{"version":"35.0.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_fulltextsearch/releases/download/35.0.0beta1/files_fulltextsearch-35.0.0beta1.tar.gz","created":"2026-08-12T13:15:26.974136Z","licenses":["agpl"],"lastModified":"2026-08-12T13:15:27.048935Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"nmdgwyWE3l5RmNZXhjktUhB/n5W8/icTL6lP9a71eTiY8jJmnZAAutVtvgogeWK87jdvAXMmJTXbvTfYr51aR+D87zNQp1vkdAtdSOyaFfqg4DWgreApakyG6JQaBTozpJQHS7Ygxon9R4JHm2gnOj3h1xmXzrh7z+UUT66i8NFSA+1J6mq0019dPMwqNmWxIhb9RTxf1RKPsVNPc7UWtOKMdPUfAyFiPfgHTUufnkv9uNRxw3pKeNbFP2aehFsleSLfrT05GEHLrZVg6HsxVwlMCB4iOjH5M6jka/+2WEOEjnfgk7S/ZQPmqBz9peFCOLPX2jLmgr7tcdUY6y2YPpEVjG67BeOzBkl00Xxx0nzi7BBPmYLVGFE/35vZqR/mO19I/j1P3X8iof+BGBzykx3xYCifqxHRkz0qnUpeF58XjupsjYEv11N6EMDxJLua5YImvWrHoT/OsihNKOI+TLGP4igZ7kbA4mCKqrKh+93JGYCeksOiaPmKO6OkMz2NG52EMLzjcsRXxsjGXnSTMja4vg8nOiA8xFTqcm4mNQvrYmEK+uM6aO1KHStwkvTpbxUEvT6BqVaM3HOV4cSFru8hUkGjtQHxcNuZyvnNayAupHwINe6/FyVpOcsetHLJCOlbkcphqtLcsn5PgUW37Ul4epGSBB/uIqqRBeVbx4c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"35.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_fulltextsearch/releases/download/v35.0.0/files_fulltextsearch-v35.0.0.tar.gz","created":"2026-09-18T23:07:21.518624Z","licenses":["agpl"],"lastModified":"2026-09-18T23:07:21.590072Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"e9NhsIRHQLAZcTP1TBHKCRYPlV2S/TlJ21ekreELAYO5BDC//AdM9nvyM4wcaPc3nGIIC8Yie0ak8hHtf4nMd8vyfPTzhjlVIHyCCECu5Qs8UjVFpYuv7eM1W/ZBeDIqA3KqQEMpwPEWJIeHD/3tF4PfZdApXPqpbpzB2uk6e4roByxh+4ZH+Yo/1nb+sl5/BpDxTgOgd8yf1kXYYBVoiyPTXnjThnBTPfcJfLz9fe6afxviwM7M5AkXxVQSSlG56n/38DkNWGmg55r2xk+wLH6WUHE6SXT/ztDOorSxKyoIG5HRmacwvp49IAZW3fTQZCt3BF/X17iKi4XDsFlFdXiMKPBOmhiRGv8KMbClOHKmPwoFWHTRlKeDzzMlL8sihqZ3TsvnKhSWyk+Y6ewkTQCxJZJizUYlx959R7PPqggogPTdbILoIvBjxbOOfxVX8bLwEIcQDNM/2+pYviGA38l/yHnINBuSHUb4lk1opmgcN+C+1h+2LHUKxa9QYim3QKOhOebxYTj3cfYlVoBhSAN+CMxev5lRWR/9pPyXu7DEdszcn6QJscJXk8h1WuUwX+XjB3Vy4SXBQ/bWkuWUvw20Dyi6LTmyoD8/9Yl6khGZo4K1HZ+dH4X5XNHRyYBXaOUBrfjEQ3QgA+HwjF6RA6+pxayVBHSPICRY7rdY4bA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mdWxsdGV4dHNlYXJjaC9tYXN0ZXIvc2NyZWVuc2hvdHMvMC4zLjAucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Full text search - Files","summary":"Index the content of your files","description":"Extension to the _Full text search_ app to index your users' files."}},"isFeatured":false,"authors":[{"name":"Maxence Lange","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhCDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwMTA3MjEyNjU5WhcNMjgwNDE0MjEyNjU5WjAfMR0wGwYD\r\nVQQDDBRmaWxlc19mdWxsdGV4dHNlYXJjaDCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBAKBVoEAD1v1w2OQExZd1G6zV050aQxNi9dgu+oQ5DYZw+3n4eH0P\r\nJy4ECz6zmKGw6kPMUi/o7xcFRwZHxzyMHWg+Ovn8Tb4YaisirauUDv9hGOmJi9UV\r\neQyymW9XXSdXTfOthm+nXKM0+I6IQW8QgI/SQpBpmHyzet/2I5IQxK7AdeoTFa+k\r\n9cMcG4drUlAsOVNQf/s95JRBJLGpBbV0sLkTS8keA8vtpf413dKrWon3ZczSUHih\r\n+lUa8h7UYxAWiGYt2zCdnhr6aO6ik1YRbZzYPSaHUYzie6UrL+YqUx5Xt7dRyDuG\r\nglymuKoMXp9Ct7XhGjbScaaitm/YwOFDjZS/q3J+9lrQzS0z6hOmuxpcG/dXy9ZI\r\nGEOjoqA1AzndI3dfT3TYbhp3TYM2kKGQNwJ/LXrGnwVGBa9p7BeDnqcA1GF/tvyQ\r\niNf6CFrscAmqfAZ5zK+Gf3ZA8J4iuSJpab+LHvRCpi9q/cgWALpppn71Y5laoMjs\r\npEQEVUzy1P3wjmvmPrBQ9hwtPJJZ4MjPyM1dqG2WmaYQg1vd7JvOwpNXHS2CoPbr\r\nz364KuFAtBtDJcUnSeEmNncKDCpLGZZL7nHa/YLdpKge/7IbdL0/4zJkrqYkwpod\r\nDeEtpBctTFvnuOGz8ZnXcGdzTRTzZ1JjC/cjQtbaZY2KrHVRB3G3fGw3AgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBACOrUqibfnnQNOZCF1sepvfwbyhLpa2BCiwhYaxR\r\noNfFQz6/ZEtPeKm+ZGXfkDPSOo3Y/hwNNuilT126+BLRmDFqkNSIFNvWO8nhf59M\r\nehwkAXs9bAY8axKc7cHlltIMXC1YR/2ZDZeXAOJBOc2ISHelOVAPI2kHACeQ+0wW\r\noXM94cDDby0hAyJyssDpjLO2l/1sppjTnt3CCYKkjYM0kndKrJ7/wL8JwxaORO03\r\nqKjjIp+XR2T+zZq+LyCKJtccQGt85q1zCS3qTOmZ//ddtz8DSDC67la08QCEZYqo\r\naGBVKM+xGsqVFlcx41HMTLNPCEJxmYcPe75tM11rkbyAqaI=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"shopping_list","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/otherworld-dev/Shopping-List/issues","website":"https://shoppinglist.otherworld.dev/","created":"2026-04-07T16:14:46.763952Z","lastModified":"2026-10-20T19:43:32.247404Z","releases":[{"version":"1.9.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.9.0/shopping_list.tar.gz","created":"2026-09-23T01:44:10.215027Z","licenses":["agpl"],"lastModified":"2026-09-23T01:44:10.272439Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"AqsqBqv4owDaOtTdY7zS00m0NYD9J7bCnLkrvUBnLb94eMPzXbzairn+FKcHntpjCtKhDOh1D3O/tc0gI/EryopYcYr20XWvYL9xne/o4qvjEPVddwOmt9Z77DTUWujYuxOYsxFWkOsDwTp6jv7NrskRDRS66H+yOMzgRHm6Y7eVu70VSMjnOhtZQRtgl7dv1O+oMMJEvCvUW0V7h5fg50eZuASrNZnW3oYNieXgtgSjx9zVIa001BJhtPDBtX1QEmpHZ9FOSjSOSgS45z1WsF1VEsG7g9p1MRG9r6b2qiJ1WWC7MJtbFzrHsru5spAZUROi/w1uW4WuDkvmHZq4Cw==","translations":{"en":{"changelog":"### Added\n- Items can carry a photo. Turn on \"Show item images\" in Settings at\n  the bottom of the list sidebar, then choose \"Add image\" from an item's\n  menu to take or pick one, or paste or drop an image onto the item. A\n  small thumbnail sits next to the checkbox; tap it to see the whole\n  photo. The switch is off to begin with, and while it is off nothing\n  changes: no thumbnails, no menu entries. It is saved on the server, so it\n  is the same in every browser you use. A photo belongs to the item's\n  name rather than the one item, so a photo of cheese shows on every\n  cheese in the lists you can edit, and comes back when cheese is added\n  again, even after the list has been emptied. Removing it forgets it for\n  that name. Everyone with access to a list sees its photos, on public\n  share links too, though a link cannot add or remove them. Uploads are\n  shrunk to 1280 px and saved as\n  JPEG, which also strips the location a phone writes into a photo. Adding\n  or removing a photo needs a connection. Thanks to rostmodern for the\n  request (#49)\n- A \"Get the Android app\" link above Settings at the bottom of the list\n  sidebar, which opens the companion app's Google Play listing in a new\n  tab. If you don't need it, choose \"Hide this link\" from its menu and it\n  stays hidden in that browser\n- Czech, translated on Crowdin. 149 of the 170 strings are done, the\n  newest ones show in English for now\n\n### Changed\n- Deleting an item from a public share link now removes its tags and\n  tells the others on the list straight away, as deleting in the app\n  already did\n- The gear entry under the lists is now called List settings and opens a\n  page of that name, headed by the list it belongs to, with the shop areas\n  as its first section. Settings that are yours rather than a list's,\n  starting with Show item images, live in the Settings drawer at the\n  bottom of the list sidebar, where Nextcloud apps keep them\n- German, Finnish, French, Dutch and Slovak are fully translated again\n  (170/170 strings each), including photos, the settings split and the\n  Android link. The new strings were filled in on Crowdin, where the\n  translators can still review them\n- The app's capabilities now carry its version, a feature list starting\n  with item-images, and the photo size limits, so the Android app can\n  tell what a server supports without trying\n\n### Fixed\n- Deleting a Nextcloud account now clears up after it. Their own lists are\n  deleted as if they had deleted them, so anyone they were shared with is\n  told, and their shares, pins, tags and photos go too. Before this it all\n  stayed in the database\n- The layout now mirrors properly in right-to-left languages such as\n  Arabic and Hebrew. The shop area colour bar, the spacing around item\n  names and the offline notice all used fixed left and right sides\n\n### Upgrade\n- Database migration: one column is added to the items table for the\n  photo key, and a new table holds the photo remembered for each item\n  name. Photos themselves are kept in the app's own data folder, not in\n  anyone's Files, so they take no space from a user's quota"}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.8.0/shopping_list.tar.gz","created":"2026-09-11T23:57:34.013841Z","licenses":["agpl"],"lastModified":"2026-09-11T23:57:34.113937Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"vEt5eFAE9wz9/mFq4ZKa6JdtS0IPpJw5VpomcYnNNwBLoXlNWy5ftYAkcZ4FgR98dRzkuEyvJXEvKTGmXwAuhC/+RIU4ObNzpYF0qN/aLIi2gDUSQ1n4JCFhEb/LKRsC1xpzb2FOylmIW4wdV6t5X7i+IcfHLUJpSer+lKpfOpu1RoU00rQsFe1I+a98bFglXEGoACYhtxCzmJddSkTYwEWa2gqjB35zVowDWL0rALVJS/oltvr4DJU5oLaGXo2qvOu1xWQ+iuNyUI5BuxGfQdR0VIgF3yo7UT9e+W+TVnSTg9rBjoZGQLNgYwSUOdS67lwPs4JiyvpqLm4SB+CS1w==","translations":{"en":{"changelog":"### Added\n- Shop areas can be collapsed. Click an area's header, or tab to it and\n  press Enter, to fold its items away. The arrow on the left shows whether\n  it is open, and the item count stays in the header, so a folded area\n  still shows how much is left in it. Your browser remembers the folded\n  areas for each list, so they stay folded after a reload. Folding is your\n  own view: it changes nothing for the others sharing the list. Public share\n  links can fold areas too. Thanks to rubo77 for the idea (#42)\n- Items can be sorted from the list's menu (the three dots). \"Sort items\"\n  orders the open items: By area (grouped by shop area in your own drag\n  order, as before), By area, A to Z (grouped, and by name inside each area),\n  or A to Z (one list by name, each item still showing its area). Dragging\n  works in By area only, since the other two decide the order themselves.\n  \"Sort checked-off items\" orders the checked-off section: By area, A to Z,\n  or Most recent first, so the item you just ticked is on top. By area is\n  new there: before, that section kept an order that looked random. Names\n  sort in your language. Your browser remembers both choices for all your\n  lists, and they change nothing for the others sharing a list. Thanks to\n  rubo77 for the ideas (#43, #44)\n- Lists can be pinned, your own and those shared with you. Choose \"Pin\n  list\" from a list's menu in the sidebar and it moves up into a Pinned\n  section, above your other lists. The pin is yours alone: the others on a\n  shared list keep their own order. It is saved on the server, so it is\n  the same in every browser you use. Thanks to Shiva (shining-cat) for the\n  feature (#45)\n\n### Changed\n- German, Finnish, French, Dutch and Slovak are fully translated again\n  (151/151 strings each), including the new pinning, sorting and input\n  help. The new strings were filled in on Crowdin, where the translators\n  can still review them\n- The input help's example lines are translated, with a unit each\n  language's parser recognises, so the help shows what a paste in that\n  language really does"}},"signatureDigest":"sha512"},{"version":"1.7.1","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.7.1/shopping_list.tar.gz","created":"2026-09-02T23:03:15.292524Z","licenses":["agpl"],"lastModified":"2026-09-02T23:03:15.418758Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"rZnTkbq57mZhQodupxay4QJSQvlhngiN9AzZHnR4sb50O9wZIE7XZJ+izJY3m6VBi1Ia80S9NKfKg80IgyY/H/53o8IynmjB758tS7MMyuw3yaM+5jM2+IrztFXB1+il2+IU/8YHxhJAJA8a3AKtenbudXmmJ3wL+tR0IsdaSDwD0L+8/VTjvbwxhpaztm3TyZJM2351r+V0tMrhvlAiUTUctKZCdtNZh/PCdwad4EtyfsUfVgmgd1+2iBxn85qUkTeFxdpNA45nEioztvhPWaANdROExggpkuS8iWYsSlTBPik2TiV9VtHEx0ILFZQSAbv7VjyTAabBSEDcW/HyOw==","translations":{"en":{"changelog":"### Added\n- A pasted line with a ticked checkbox (`[x] Milk`, or Markdown's `- [x] Milk`\n  as written by Nextcloud Text) now imports as an item that is already checked\n  off, so a checklist brought in from another app keeps which items were\n  already bought. The add box help shows a ticked line among its examples.\n  Thanks to rubo77 for the follow-up (#35)\n- The add box explains what it understands: its placeholder now invites you\n  to paste a list, and a question-mark button opens a short help panel with\n  example lines shown next to the item each one produces. The examples run\n  through the live parser in your language, so the help never promises\n  something a paste would not do. Thanks to rubo77 for the idea and the first\n  version (#39)\n\n### Changed\n- The frontend source is now linted with Nextcloud's shared ESLint rules, and\n  `npm run lint` works again. Templates follow the shared layout, the two\n  Nextcloud packages the app imports directly are declared as dependencies,\n  and the push composable no longer logs at info level\n\n### Upgrade\nNo database migration. Drop-in replacement for any 1.6.x or 1.7.0."}},"signatureDigest":"sha512"},{"version":"1.7.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.7.0/shopping_list.tar.gz","created":"2026-08-29T23:13:37.347450Z","licenses":["agpl"],"lastModified":"2026-08-29T23:13:37.424672Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"h87TON6WRzhtsHY94rtCH05niTP48HbtOVrhX7iji8loI0KGBz+/YHreuBqmvUBc3CWUMLBZPlduT76OPrDQNDTW4yS71kq7Hy3WQmcBg0khkOch5TvwMLEl/k+h/0A7De4RZ287sfQ51PTJVdqbTLAvJp13QoQEIRaqpbPKMTMLb481kFVMhvv8dkCp3BYx+ytFMlFm4n15Pa5qUW8Vx9hKYgz+CShwYp4QDZjfugHwvVXsL4SjO+9W80zDWElYwgZtMYVAT/n36u+7djy7NMWXAn/fDLRZmwQC7Ac6LovKDvC3GIG3m7Nw4IRYiZ/x1/6yJmrPTn+bS32iITUesQ==","translations":{"en":{"changelog":"### Added\n- Pasted lists with markup now import cleanly: checkbox lines (`[ ]` / `[x]`),\n  bracketed amounts (`[ 10 ]`), bullets (`-` `*`), and numbered lines\n  (`1.` / `2)`) all parse into proper items with quantities. Thanks to rubo77\n  for the format examples and for pointing out that export was missing (#35)\n- \"Copy list as text\" in the new list actions menu: copies the outstanding\n  items in the same format the add box accepts, so a list round trips through\n  a chat message and back (#35)\n- First automated test suite (vitest), covering the ingredient parser in\n  English and German and the copy-as-text round trip\n\n### Changed\n- The Share button moved into the list actions menu in the list header\n- French is now fully translated (124/124 strings), with reworked wording.\n  Thanks to Enreg40 for the careful review that improved several of them\n- Item names with brand capitalisation (iPhone, eBay) keep it instead of\n  being force-capitalised\n\n### Fixed\n- Names with a leading digit glued to a word (7up, 3M tape, 7-Eleven) no\n  longer lose the digit to the quantity field\n- `2x Milk` now reads as a count of 2, instead of creating an item named\n  \"X Milk\"; `2 x Milk` and the multiplication sign also work\n- Replaced a private-API `\\OC::$server` call in the push service with proper\n  dependency injection, ahead of it breaking on a future Nextcloud major\n\n### Upgrade\nNo database migration. Drop-in replacement for any 1.6.x."}},"signatureDigest":"sha512"},{"version":"1.6.2","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.6.2/shopping_list-1.6.2.tar.gz","created":"2026-07-05T22:49:06.090268Z","licenses":["agpl"],"lastModified":"2026-07-05T22:49:06.165801Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Kr3HlwfwIVimzqvV5bcIYJL9lBNhZuPPPhldgWpcLCsJHS0v3NFF8SUHw0GzVvHtvBAEWz6f/nYvDoYSkZxK5LRN3c41nkSO8FP4QJImERR96BWeLCqMr0vQS3/l/bpNp3EZiYXvN4CzqQ2q0GAVDP+LRfv6/UCnjwzgL4gb35QuVfoFMCNlhvSShfFzbN/aAos43P0lD3lZa8czYQTY80meRBsbXbHyYYDPd2bR5kbeDkJTnbcmYdx7vlc6rKYAqnmsIWUEnEhyVaNvugEJw6vS40haLR3sqvmbD21NrPgnZBKxdKqKecKTrZDQvmPkaHczzJwsJr1XY+7sC63yIQ==","translations":{"en":{"changelog":"### Fixed\n- The app name is now translatable, so the app menu entry follows your\n  language. Finnish (\"Ostoslista\") included, other languages open on\n  Crowdin (#30)\n\n### Changed\n- The Android app announcement notification strings are now translatable\n  on Crowdin\n\n### Upgrade\nNo database migration. Drop-in replacement for v1.6.1."}},"signatureDigest":"sha512"},{"version":"1.6.1","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.6.1/shopping_list-1.6.1.tar.gz","created":"2026-07-03T00:23:29.052468Z","licenses":["agpl"],"lastModified":"2026-07-03T00:23:29.130070Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"mvJM54Kr/tT+qv4vduxxPiRN/Dj3awJLP6Y3rSGOSy62YdYxpJZQlYNgAxg8kT38EAJXxzBY+QPgkW/6XG8oIOBPzbcI64v2r43k6o3iAa/SwGYRVZ/BiTnFgqC3BCW5g+UnrM+lXeLU1XF86oiQC154V3NQqUflkOAoYDEZNlPKtwZAMfvtm2wNTHRN72nl/B7IcNUHH34sjR5YwnRXjRdY2low07hatyd2VUt50gX58ZqApsVLzWWCDmASRyI3OXXqCysWddW9k/N0vj3QVAgVSo8cXiK4sADGHRztsNHItdvLcQru1t/+ZQFi/a36nStwM7aTIgwej8kJKJJE/A==","translations":{"en":{"changelog":"### Fixed\n- Slovak: default area names (Produce, Dairy, Bakery) and the \"Area\" picker\n  label now display in Slovak — the translations were missing on Crowdin and\n  have been added (#24)\n\n### Changed\n- App store listing now links the official website\n  ([shoppinglist.otherworld.dev](https://shoppinglist.otherworld.dev/)) and the\n  official Android companion app\n\n### Upgrade\nNo database migration. Drop-in replacement for v1.6.0."}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.6.0/shopping_list-1.6.0.tar.gz","created":"2026-07-01T13:19:41.066307Z","licenses":["agpl"],"lastModified":"2026-07-01T13:19:41.187015Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"2UPGiyxC8YA0ZFj8Bah7ZKdiHbGIJBAUmXlTExgWchgOYuoLdb+P+M71rcWd2LGVRb1cGnW8qeXS1JrDdsUWjfx9XbB8R2/UfG5mEJkRfe8gDx9UwZrXEhW/W2gKMUYR2IXdxCEArWiReSRpN5MeEammzWAzlCAdOFi3Go5Dq78d25IlNDQdCoTuzIAhzZZs3HKadhwfrcDgJzZ3OH37YtrfIRXomF1WLoWNWmnz1Qsf2m4ZRkNWRnBPH4u/VTw1P6RNPwkvDOM6+LFrSEpraaeCWDWgXu/G1qlA5pipUY2D02fAUiulYnEaLQaYNlmdpSmgIf7qP/b8TgwX7xGfKw==","translations":{"en":{"changelog":"### Added\n- Companion Android app, available on [Google Play](https://play.google.com/store/apps/details?id=dev.otherworld.shoppinglist)\n- One-time in-app notification announcing the Android app. On upgrade, existing\n  users (list owners and people lists are shared with) get a dismissable\n  notification linking to the Play Store. Fresh installs are not notified.\n\n### Upgrade\nNo database schema change. The upgrade runs a one-off step that sends the\nannouncement notification; it is best-effort and never blocks the upgrade."}},"signatureDigest":"sha512"},{"version":"1.5.3","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.5.3/shopping_list-1.5.3.tar.gz","created":"2026-06-28T21:04:45.931654Z","licenses":["agpl"],"lastModified":"2026-06-28T21:04:46.008426Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"gB8BQdeeqnuw+carxWTV2nveyTw2EQunI7H/zOetNVh5WeJgfdk+AcxkJ4pew1gmn+S9UX45nRNLb9zOT4BxzJYObkUOhGJ1qeW3oqY3X+7wGF5wKzCCcYvFouW6xGoFlDir6nVDkkOFoVlutkTWTk9TFVZBKabJsgD95Nl2RrUv8vfSPbxO+++KRwiv/mCzUkFswEEoUEkh2uUVm+n6knWD2HmClsZihOcNw0Ddg9ZYXYdGb8L9hkcDSkFI8DqeF1kicvr7xU5/8Srf8jkiUhgP3DfvsXqZD+oYfiTFTjiLYX1C4W+o6H/8oEJ9D2UkkpDk2w81+i8sfaccSExZ3g==","translations":{"en":{"changelog":"### Added\n- Finnish translation (interface) — thanks to ikke-t (#17)\n\n### Upgrade\nNo database migration. Drop-in replacement for v1.5.2."}},"signatureDigest":"sha512"},{"version":"1.5.2","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.5.2/shopping_list-1.5.2.tar.gz","created":"2026-06-27T13:15:41.880055Z","licenses":["agpl"],"lastModified":"2026-06-27T13:15:41.930993Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"bJSqpHh1KDlsE1bRZ3ge/kCKuo5Y4ysbdis+3G4QynTDsMNTo5oHHqTGKWqEkwW6nigWjgzMne1plsNvGTmyQw78FaMkhMo9vHG/legJsf2nSWy4pkcXS5NA5ul7P4imP6lXlSGW49DOyjRPGrySYx5y4FioDTa7pB1p/d73itBBurXiLK8CRrX7oYL6DirqjxqRcfI8O4RX/+T4Ac8BFsHddwprEQc/cW5jRHfXToAoG5KzkCfL8jo56R5a25F0hbTWFPJmdF5wutODyz8SNSIwgXdwOZZQckH7iG43S1qZw+eam+2W5XZfsUdt5hvOhL1RCy5nyk2WEegSGI4vqA==","translations":{"en":{"changelog":"### Fixed\n- Default shop-area names (Produce, Dairy, …) now follow each viewer's language\n  live, including on existing and shared lists. They were previously frozen in\n  whatever language the list was created in, so already-translated names kept\n  showing in English (#24)\n\n### Added\n- \"Load keywords for my language\" button in Manage Areas — adds your language's\n  grocery keywords to an existing list's default areas, so items auto-sort\n  correctly. Existing keywords are kept (#24)\n\n### Upgrade\nAdds a `name_key` column to shop areas (auto-migrated). Existing English-seeded\nlists are matched to the built-in defaults so their names start translating;\nareas you've renamed keep your custom names."}},"signatureDigest":"sha512"},{"version":"1.5.1","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.5.1/shopping_list-1.5.1.tar.gz","created":"2026-06-26T01:56:09.498450Z","licenses":["agpl"],"lastModified":"2026-06-26T01:56:09.554062Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"W4V6Yh9phMIJWT5647ExEQev2Z3Yvz8v7eQKXg2OCg4V3M/HG5uqeCb1D1m5iNj3sbYd+vzXOwjv9Fu6OZvoNCTI87ZwOoQTpKVf/9bPA9R/V/+ZDNd/3d4HDyodyI6vrtoUvJeEyYu3my8AhAbxS4/H6oVTWZD2ZXLKRZTuiX23W2aLB1DN5wlb5z2Es1txn8LugyPainXQIBAzsQdyAIc8O3Fxg/RamEFKSt8jUC0BNtmKfRjYznGs18BVjBY7+pEevER0PpbKZ4Zyzj6tm+0tU2E/YOnkNQtKQkv5frxwWQUtJbayRdzsSTC7F/HnP87iDMCBUBuVPDG0zZZ5RA==","translations":{"en":{"changelog":"### Added\n- Slovak translation — interface, category keywords, and measurement units\n- Croatian translation — category keywords and measurement units\n\n### Fixed\n- Measurement-unit packs can now be fully translated on Crowdin: the internal\n  unit aliases (duplicate English words that couldn't be translated) moved into\n  code, so translators see only real, translatable strings and the file reaches\n  100% (#3)\n- Restored the German measurement-unit pack\n\n### Upgrade\nNo database migration. Drop-in replacement for v1.5.0."}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.5.0/shopping_list-1.5.0.tar.gz","created":"2026-06-17T15:19:19.286052Z","licenses":["agpl"],"lastModified":"2026-06-17T15:19:19.347374Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ZPMHV1OAhYENCkLOtwoyUOJz6wYtGQAavoeVnC1WlC/ZXQWLDXqyYolCieHm/MYLl8383KDQAh1CBsVL7H4OfKazJrQADv1kO36bFd+XeCcNDhEtUY0WMKg45Y7tgn7vmRQniICumbPojTy/j/Bca2yD6N0IEDN9P68GhZfKkuhNM0hcUMF8HFFKcz8tlouJzm28anQ1Olx6GNH6b46Hson2eq00Trl87UBZ+jMuGogVuRMY7+b2OO8WT2SKyy8XHcfP4nSGMX73HVyAFqSvlwQjbJoAz+kh/Lq+Tq0JAr2rz5PuKcGkKS+pjBNbEGc6Kh592F7nrUZczvqUzivGbg==","translations":{"en":{"changelog":"### Added\n- Copy shop-area categories from another list — a \"Copy categories from…\" picker\n  in Manage Areas merges keywords into same-name areas or creates them, so you\n  don't have to set up categories on every list (#22)"}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.4.2/shopping_list-1.4.2.tar.gz","created":"2026-06-15T20:12:59.820216Z","licenses":["agpl"],"lastModified":"2026-06-15T20:12:59.878753Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ApWsV2lnt+GmgKG2RgWMhiS7dkQi58dchR+/JHYpeuBfaQp5MWZJa/v5IeaOjLeGyl9hq7yItFAy+ESdwv1JcZsozBIiwqBkyiTZRtjXQ6gTsSlcYBSnPV6/whA/0quZG3NTNf9ma2GcAzarzX9hd3Le+RmvbhsPF0SMFxijCexIGCwXr3OBaaFFCSyWiqYb2NkUYS+FuU76lhQsN3JjzqI9qnKm0b+vkIRhiBzu0soZjv3QEIBN9ozL8tiBqu6DTFdbs1B0oFDv+IYX2e79CHQyqQpQio/jRBeTaMtWe+D3hmXreyzWtWLB/5AfQ4CBLIk5RvcNDARjOEsdU0U/Yg==","translations":{"en":{"changelog":"### Fixed\n- Long item names with no spaces no longer overflow the row or squash sibling\n  rows to one character per line — rows shrink correctly and long names wrap (#20)\n- A long shop-area name on a row can no longer starve the item name to zero width\n  (the area chip is capped); long area names in headers now wrap\n- Same wrapping fixes applied to the public shared-list view"}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.4.0/shopping_list-1.4.0.tar.gz","created":"2026-06-14T23:22:30.723558Z","licenses":["agpl"],"lastModified":"2026-06-14T23:22:30.788462Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"2saZKFuv0cY0UI9Cr6aKRbbyeZxxPOq7q0aZkAGEhC9A223qIVPKstWueq63URtn9G5Et/4P7bp56bKN2tcsqD09uY5zPaeKWHI4mESznOYGtS4wVEs47GyCZM4jDqT7VJ0qz91p/LdKvD9t83B2T4bqk9XjcbK8VAn/GdE/SBZgVzpilUTBI7FVn24qONj2XdlSjMsEE9331BtUFRzdQB9EhyOiTMPxTA0HMjoMsRRoIkgYEJR66EhOnVNnPFOdTvy9qsLJu+orZ/mrKsMzcjT9WdfrLthpaYMlGakQe3RA2baU4NszyHP6JUeaSpd5UxVhl2c7qgyP3nN2nKCBcA==","translations":{"en":{"changelog":"### Added\n- Translatable shop-area keywords — keyword sets moved into per-language packs\n  (`resources/keywords/<lang>.json`), editable by translators on Crowdin and\n  seeded per list in the creator's language (German included)\n- Localized quantity parsing — per-language units, connector words, and decimal\n  mark (`resources/parsing/<lang>.json`); German units and `0,5` decimals\n- Accent- and case-insensitive item matching (Latin diacritics; preserves\n  Japanese/Arabic/Hebrew scripts)\n- Keyword pack validator (`npm run keywords:validate`)\n- TRANSLATING.md contributor guide\n\n### Changed\n- Area auto-detection now picks the most specific (longest) matching keyword,\n  so short words can't shadow specific ones\n- English singular/plural niceties are gated to English; other languages keep\n  their item names intact (no more wrong plurals or cross-merges)"}},"signatureDigest":"sha512"},{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.3.3/shopping_list-1.3.3.tar.gz","created":"2026-06-01T23:52:37.759665Z","licenses":["agpl"],"lastModified":"2026-06-01T23:52:37.848318Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"iB49Wg4Lbrh3+mYyWZHO4kwmv9lk2njt7+SokdVk4MYUWzsR3y9z/bv95WCMKENB2451r0nQoUH42pKJ7EYpA9hAbBj9/Z8WuNojfTwiJRurb2iaZUFwwoIQd61OQ8jADFBHzoywlWoDMZ8FshTUSTATsM9fglPJONRz5Jq3CQj2OE2lyjdrPWPz9WUeK0ZMstchImeQjG06NVoAhIAnQcVNPTRq6Rh9IvrmqNawmrSHp18evqmcT+qGKcONIRjY8ddTX2Hnc9KX86JBqm16COjjypxQFCM0P2/6Ynq9soLkRVWu8TQ/nJ7Htd4ayrN+7FR5C/7nZqRWzx053m6GVQ==","translations":{"en":{"changelog":"### Added\n- Delete confirmation prompt before removing items\n- Trash icon now visible on touch/mobile devices\n\n### Fixed\n- Trash icon was invisible on touch devices due to hover-only opacity"}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.3.2/shopping_list-1.3.2.tar.gz","created":"2026-05-31T21:44:13.557279Z","licenses":["agpl"],"lastModified":"2026-05-31T21:44:13.606936Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Mk1oPpDEtYzFtS8Ul5sSwg8x58WlIdjPZnmwq/ixGIcubTJLZExbRe1Q80WlE82VcuMowmbM/5tw7hEldhVikOjdw4kboowvifzXuKH/O40aQFuLCjUKXNzry9FTIyrx5B8F7Y1EK4XySmzN/zknJkOMqnoBJTIr/soS1bfZV92UH+/ATkDIZcwywVgIIBCHudgR1fi9JryChmnAi2VSUrZTQNi03L17nEEkLcJaac3qvYa6aSBWdpQTLkqqrRLeP+3rqQFftawcsLtTRMJnS9Ws3c121kjKJdSNp85RVV7pg19Hr8S5Wx2pzHaMDBpHt7Gtz0TbYEvMrAsrGw/IDg==","translations":{"en":{"changelog":"### Added\n- German translation (thanks @FadeFx!)\n- French translation\n- Default shop area names are now translatable (Produce, Dairy, Bakery, etc.)\n- PO to Nextcloud l10n conversion script (`npm run l10n`)"}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.3.1/shopping_list-1.3.1.tar.gz","created":"2026-05-24T18:40:57.630918Z","licenses":["agpl"],"lastModified":"2026-05-24T18:40:57.701696Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"2Xt5VLl0nW34JCdYE/2JsUDcGMMLzP4GYuhwDj7y4IbBH9Dd7SDXoGuraNRPkDo0BCicFzp7LOvDCFlTKYmpIMBD8S6VmX6PvPPctoO1mTRfcf9qg7zJOr/Z12E/aSLaeNqKgCzYmR/1ixTCK0UMbrUHwDPyAN30pmVJMBBEGdd5h7qTvkNM9KUh4ULeENYQg8qTpydXIFeV1jCXGDzHNShUuqeTXe8RuRjfPGrG748QiHaWg2temFLMZdFR2g3hCIjory7+H5eUCKwwnuBmOn4pWyFk9KanAxsYq280p6LKPXFSrZr/ZTnW0oKH7WrmnEO2CQ+TKBHfc0+kU5d70w==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.3.0/shopping_list-1.3.0.tar.gz","created":"2026-05-14T21:39:47.517757Z","licenses":["agpl"],"lastModified":"2026-05-14T21:43:44.188022Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Mef1PpC5uhe+KrbN+PuhTuVi0SteHFHbq3WZu72qKEqoqx6yGrTe7g9aGzTHOwG1T8pQwkaWuV3y36nBzi/n0nXq0lPRLo9LIhyzXs2/0QVpCOLiqrXAvwa5Ko6L3zIKiNBPL+McGzG1WPdtgXGTVBllfyUV+wryi4yCCPb7v5e2c4iypLKEfRoApIKDSARXrXhji4Thw9+F8GKUgLRXovKyTzFl91tMb4PFyPJFlZ1EvW8kZL8nAUOeIo1X6Y+frB78Jp0f9brqqiRMpmRsIxqtibp0clxazmLaeI8Ndo+Q4TGvEiSLmgvTQzN3PQDf2Gue6OdndSeGp4NIAJcHfw==","translations":{"en":{"changelog":"### Added\n- Offline mode — data persists locally via IndexedDB so lists survive page refresh\n- Offline mutation queue — check, add, edit, and delete items without network\n- Automatic sync when connectivity returns with conflict handling\n- Online/offline status indicator with pending change count\n- Network failures during online use now queue instead of losing changes\n\n### Changed\n- Polling pauses while offline or syncing to prevent state conflicts"}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.2.0/shopping_list-1.2.0.tar.gz","created":"2026-05-14T10:56:28.941070Z","licenses":["agpl"],"lastModified":"2026-05-14T10:56:29.026853Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"VNcOLd4It+0C8PgPbcMgfu9Q6hNcxXYvCGiUT5jEusq4p34N/kp6rJi2e84kAn5CAWlAKT9TPBzALA+WxEJa2MrUd/IRD0FSu5f7+U51nfE2eCG5qKQthoLHj4q2e1BejNemb/2JHT5GtegWTUza9Y4pCqUTlzpk7hKUV8Mrz3ZVm1ng3eelps4pJ5WeOfoHDmf72KoTwH9Txiqf0ueNWxyw8XNwWK/ANdW4I4yo/4lG2LMLwbtUmmlrJZt8btDFEJPI5+IV4x1rOk2tgLIJxSzLsBhW1awoMSrkZa4dBZurbCKooz5NJ2ddN0JoXGdF1+E4Lj3PE2y8vshaAV00/g==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.13.1","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.13.1/shopping_list.tar.gz","created":"2026-10-20T19:43:32.243278Z","licenses":["agpl"],"lastModified":"2026-10-20T19:43:32.291279Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"v4V1JkyesRPi5LtUYcXVo2w+Mn2wzyRNMSXARJ2Ng5HSCxE58N8E0Q4aGxxOqBKOYcsHzyCO87dHRX8NOaDrzKz5HJgYo0M+Gx/bkdVYwDY0RIg0dJAZkfq5SlW2Sk23te1yq4VeYL4qtyj+G1ruDkV1i0/FEr6C+dg5FX30MrA5Zh7BMA06+QAt+HlrOKidmiyRaOLrWP9NWgPbWSfyQhSgnKdrVh2SbfPhv7taQB+4+nBo1Uh9VEK8rqrba2hpaNpVfjSpmRexjLZBg8+1M7UcTAabDSkKPPfSjsMB8vdMNtVkThPP4wlxF2gD8fjfwM2suKViIWEKrPBa0Odc5w==","translations":{"en":{"changelog":"### Fixed\n- Live updates work on servers with notify_push. The app looked for\n  notify_push in a way that never found it, so no update was ever pushed,\n  and the web app, which stops checking for changes when notify_push is\n  installed, only showed other people's changes after a reload. Changes\n  made through an app such as Home Assistant now also reach your own open\n  browser, as that browser didn't make them"}},"signatureDigest":"sha512"},{"version":"1.13.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.13.0/shopping_list.tar.gz","created":"2026-10-20T16:09:20.055723Z","licenses":["agpl"],"lastModified":"2026-10-20T16:09:20.114111Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"nVrWSoHf2Zih7GHF3dnz2xIfLkWk/v1qE+jd9gHc8Y0GVc0DitrFz93YWcTnkck26QuVYOBMUL3WSOFps7wluqTymqELsV+oDhOdCKz0UovqH1rfwanVt7FN6MgeDLNovBYr5qHikIg28HpLzJ9djv4unXZlhd0x+2TDB6SFcMo5a7ihXXQujgRV9FAvqBriiEqyhk5GxcA+O7k20K1TsUfaaBYrgYodC+jbnbdMiNtg/R3JjN7BlV222N49CCw7kR7yHa3KBhWvgwKJixUDvHf/0FOdfdGolPXdLNR6U9dgKhpQcmUCuKd/3Iz++WdRuiX4eE0OkIC+oNOkxaUUiA==","translations":{"en":{"changelog":"### Added\n- Apps that talk to the server, such as the new\n  [Home Assistant integration](https://github.com/otherworld-dev/Shopping-List-HomeAssistant)\n  (#52), can add an item by sending one line of text as it was\n  said or typed, for example \"two pints of milk\". The server reads the\n  amount, puts the item in its shop area and tops up or brings back an item\n  of the same name, the same as typing it in the web app. The same works for\n  changing an item, or only its amount\n- An item added or ticked through an app shows the app's name, for example\n  \"Home Assistant\", with an \"app\" mark next to it, so it can't be mistaken\n  for a person. Hovering over it shows whose account the app used\n\n### Changed\n- The strings added since 1.10.0 are translated in Czech, Dutch, Finnish,\n  French, German, Italian and Slovak. Invite codes, names on items, list\n  sorting, What's new, backups and the default area were showing in English.\n  The translations have not been checked by a native speaker, so corrections\n  on Crowdin are welcome\n\n### Fixed\n- If an update ever leaves one of the app's database columns missing, as\n  happened to the default area on one server, `occ db:add-missing-columns`\n  now adds it back and Nextcloud's admin overview warns about it (#56)\n- Pints, litres, loaves, tins, boxes and cartons are read as amounts.\n  Typing \"2 pints of milk\" used to add an item called \"Pints of milk\"\n- The \"Restored 3 lists\" message after restoring a backup is translated.\n  Plural strings were left out when the translations were compiled, so it\n  always showed in English\n- Moving a shop area up or down in a list's settings moves it one place and\n  leaves the others where they are. Every new area was given the same\n  position, so the arrows could shuffle other areas and the order could\n  change after a reload. New areas now go to the end of the list, and the\n  first move tidies up any areas that were sharing a position (#55)"}},"signatureDigest":"sha512"},{"version":"1.12.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.12.0/shopping_list.tar.gz","created":"2026-10-13T00:08:54.204090Z","licenses":["agpl"],"lastModified":"2026-10-13T00:08:54.255224Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Joy5j1SKG9U+Ld9spaz+X/pKeLvyAK4H4vsOWwow6odayPI2HVgGDF6/udmTSCFwrk7Wo0R7Fgo00R6a/JIZPob5eI2KSfUh6jPaxWQomAOp9vYMjFBHEw1SbbIQMRDJBgW9Vp45PTOODAjfxkoFD51j2Q227WphRo3iEOqSO85qwVB8h8/k7EuyomG2PdAdtyau8yR0BoC5ywcybvNg8t8BJ1MNmBlQEBLhcBA9UXs7o36CI5J1DsE+xNr3kgBI8vFZWe28Gpch7WtDSF+HRX9JoI2cUK9EXU7ubBGeMCl9G/Hsdjru7AlNDKMb525dknG8MqhmA2kS94uXIOwR8A==","translations":{"en":{"changelog":"### Added\n- A list can have a default area. Open the list's settings and pick one\n  under \"Default area\", and an item that matches no keyword goes there\n  rather than being left uncategorised. It is a setting of the list itself,\n  so everyone sharing it gets the same, and it applies to items added from a\n  public link and from the Android app as well. A backup carries it too.\n  Thanks to Bloodboy1986 for the idea (otherworld-dev/Shopping-List-Android#16)"}},"signatureDigest":"sha512"},{"version":"1.11.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.11.0/shopping_list.tar.gz","created":"2026-10-12T21:13:39.343047Z","licenses":["agpl"],"lastModified":"2026-10-12T21:13:39.388480Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"0wlSX1+gXpdSOs++x1RQY0yLj22iCjJS0LIrBWoORnpA11ccE7zhJVXgD324qc6Ei47CK87fgxIL29uMLEiuTjA1WdXXb7wyfyd4botMhD9+Skf8+hwT35E+zRQgz2lWPrjT5YGtKKwGixxcP29lnmoIYx+Wj7t3VLrR6yFBZq7vreJTU4mK56jz/fajP3uoAuf899ZLUP8+P+guWxqJaSbqyoZsMpfL/JzXyqg+xoW3+kolidDEJJYn6CbnIKnpGjRYrVsFpTYsQY9yeELg9DH3xXFYoQEa+85R7TeyVWpGr/RNF7TsSxAEMVG5DhujDxSKptQjwMmxiX01G3QJcg==","translations":{"en":{"changelog":"### Added\n- Lists can be named as you create them. \"New list\" in the sidebar opens a\n  name field instead of making a list called \"New shopping list\" straight\n  away. Type a name and press Enter, or confirm an empty field if you want\n  the old default name. Cancelling creates nothing, where before every\n  click left a list behind. Thanks to rostmodern for the idea (#48)\n- \"Share list\" is in a list's menu in the sidebar as well, next to Rename,\n  Pin and Delete, so you no longer have to open a list before you can share\n  it. It shows on the lists you own, and it shares the list whose menu you\n  used rather than the one you are looking at (#48)\n- Your lists can be backed up and restored. Open Settings at the bottom of\n  the sidebar and choose \"Download backup\" under Backup to get a JSON file\n  holding your own lists, with their items, areas, tags and pins. \"Restore\n  from backup\" reads that file back. A restore always adds lists rather than\n  replacing the ones you have, so nothing you already had can be lost, and\n  restoring the same file twice gives you two copies. Shares are not\n  included, so a restored list starts private and you share it again\n  yourself. The same data is carried by Nextcloud's user migration if your\n  administrator has the User Migration app installed. Thanks to rostmodern\n  for the idea (#47)\n- Italian, translated on Crowdin. 171 of the 204 strings are done, the\n  newest ones show in English for now\n- Items remember their amount. Type \"500 g Rice\" once and next time \"Rice\"\n  on its own comes back as 500 g Rice, even after the first one was cleared\n  away. The amount belongs to the list, so everyone sharing it gets the same\n  one, guests on the public link included. Changing an item's amount updates\n  what is remembered, and clearing it goes back to the plain default of 1.\n  Typing an item that is already on the list still adds to it as before,\n  without changing the remembered amount (#15)\n- More units are recognised when typed with an amount: pc, pcs, pkg, dag\n  and dkg, jar, tub, pot and leaf, and in German Stk and Stk. as well.\n  Before, \"25 dag Schinken\" came out as 25 of an item called\n  \"Dag Schinken\" (#15)\n- A What's new window that shows once after an update, with the main\n  changes since the version you last used. What's new at the bottom of\n  Settings opens it again. Someone who has only just started isn't shown\n  it, and the notes are in English only\n\n### Changed\n- Adding something that is already ticked off brings that item back to the\n  list instead of adding a second one beside it, so the ticked items don't\n  fill up with copies of the same thing. It keeps its shop area and photo,\n  and the amount it had unless you type a new one\n- The settings carry `whatsNewSeen`, the version whose release notes were\n  last shown, so the What's new window shows once per person rather than\n  once per browser\n- Setting a link's password answers 400 with the password policy's own\n  message when the policy refuses it, and adding or changing an item\n  through a public link answers 400 for a shop area that isn't the list's\n  own\n- Adding or changing an item takes `quantityExplicit`, which says the\n  amount was typed and should be remembered, and an item added with no\n  quantity gets the one its list remembers\n\n### Upgrade\n- Database migration: one table is added for the amounts each list\n  remembers\n\n### Fixed\n- Items added on the public link page now read the amount the same way as\n  in the app, so \"2 l Milk\" is 2 l of Milk rather than 1 of \"2 l Milk\"\n- A list link's password now has to pass the server's password policy, the\n  same as Nextcloud's own share links, so where the admin has the Password\n  policy app set up a link can no longer be protected by something like\n  1234. The Share dialog shows the policy's reason when it refuses one, and\n  an empty password is refused as well\n- Changing or removing a link's password now locks the list again for\n  anyone who had it open with the old one, where before they kept access\n  until their browser session ended. Anyone with a protected link open is\n  asked for the password once more after this update\n- Renaming an item through a public link is held to the same rules as\n  adding one, so a name over 255 characters or with nothing in it is\n  refused rather than giving a server error. An item added or moved\n  through a link can also only go in one of that list's own shop areas"}},"signatureDigest":"sha512"},{"version":"1.10.0","phpExtensions":[{"id":"intl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.10.0/shopping_list.tar.gz","created":"2026-10-05T18:15:27.343085Z","licenses":["agpl"],"lastModified":"2026-10-05T18:15:27.382003Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"hBMtK/CrNhcdyATsGLaVbo6LRZXACuFsd9JzbOFI/xm1FlNMNqfiZ73b2wBnlqiFlpukqCGMXKvXT/xpcXcEElMO4ju/Vp7jsBSeJM5/pLGNTc17hD8UVAiGedWunQWEZVwrq61DxPNO9/rw70+id+9xTsrMxdkwdXVHpWJpY35ZStfFbWDz6LhtfQnRH/WSXUqIu7SBLrtahuGc0Flmg6aNwnXegC6m/FVJHx1J5dLbxfQplFIYQAUaOYjvvqHaBJpb6AiqoCTKyy4EtdC+kS3m8TfQ/JSYqNTA0AAdNjIYHzVLJ9AWJXN4rV8iA681u1GpZLkjBlsuO0AOWeyuHg==","translations":{"en":{"changelog":"### Added\n- Lists can be sorted your own way. Choose Sort lists in Settings at the\n  bottom of the list sidebar: Recently updated (as before, and still the\n  default), A to Z, or Custom, where you drag lists into the order you\n  want. Dragging a list while on another sort switches to Custom and keeps\n  the order you were looking at. Pinned lists, your own lists and the ones\n  shared with you each keep their own order, and a list you pin or unpin\n  goes to the top of its new section. The order is yours alone and is the\n  same in every browser and in the Android app. Thanks to Shiva\n  (shining-cat) for the idea\n- An \"Open in the app\" button on a shared list's public page, on Android\n  phones. It opens the list in the Shopping List Android app, which can now\n  use a shared list without a Nextcloud account, or goes to the app's website\n  when it isn't installed.\n- A QR code of a list's public link in the Share dialog. Choose Show QR code\n  under the link and scan it with a phone camera to open the list there,\n  where the Open in the app button takes it into the Android app\n- Invite codes for shared lists. A list's public link now has a short code\n  like K7QM-3XPD, shown in the Share dialog with the server's address, and\n  Copy invite gives both as one line (for example cloud.example.com/K7QM-3XPD).\n  Someone without a Nextcloud account can type or paste it into the Shopping\n  List Android app to join the list. The code opens nothing the link\n  wouldn't: a list with a password still asks for it, and the code stops\n  working when the link is deleted or expires\n- Each item now shows who added it, and once it's ticked, who ticked it.\n  People on a public link can type their name above the list, which shows\n  as \"Anna (guest)\" so a guest can't pass as one of the household. On a\n  phone the name goes on its own line under the item. The list owner can\n  hide members' names from the public page with Show members' names on\n  the link in the Share dialog, and guests' names still show. Your own\n  name is left off what you see unless you turn on Show my name on items\n  under Names in Settings. Items added before this have no name. Thanks\n  to natrius for the idea\n\n### Changed\n- The app's capabilities now list `list-order` among its features, each\n  list from the lists API carries its `position`, `listSort` joins the\n  settings, and `POST /api/v1/lists/reorder` is a new endpoint, so the\n  Android app can offer list ordering too\n- Link shares from the shares API carry their invite `code`,\n  `GET /api/v1/public/code/{code}` turns a code into the link's token, and\n  the capabilities list `invite-codes` among the features. The feature list\n  is now shown to visitors who aren't signed in too, so the Android app can\n  check it before a guest joins, while the version and image limits still\n  need a login. Wrong codes are throttled by Nextcloud's brute-force protection and\n  limited to ten tries a minute\n- Items carry `addedBy`, `addedByName`, `addedByGuest`, `checkedByName`\n  and `checkedByGuest`, and public responses leave the user ids out, as a\n  login can be an email address. Public add and tick take an optional\n  `guestName`,\n  link shares carry `showNames`, the settings carry `showOwnName`, and the\n  capabilities list `guest-names` among the features\n\n### Upgrade\n- Database migration: one column is added to the list preferences table\n  for your own position of each list\n- Database migration: an invite code column is added to the shares table.\n  Links made before this get their code the first time the Share dialog is\n  opened\n- Database migration: three columns are added to the items table for who\n  added and ticked each item, and one to the shares table for the Show\n  members' names choice\n\n### Fixed\n- Changing, ticking or deleting an item through a public link after the\n  owner had deleted it gave a server error rather than \"Not found\", so the\n  Android app couldn't tell the item was gone and kept retrying the change\n- Wrong passwords on a public link are now throttled by Nextcloud's\n  brute-force protection, so each failed attempt slows down the next ones\n  from the same address. The limit of five tries a minute was the only\n  guard before, which still let a script keep guessing all day\n- Copy link in the Share dialog did nothing on a server reached over plain\n  http, as browsers only offer the clipboard to https pages. It now falls\n  back to the older way of copying, and so does the new Copy invite\n- Ticking an item through a public link left whoever ticked it last as the\n  one who ticked it\n- Pressing and dragging across an item's name while editing it picked the\n  whole row up to move it rather than highlighting the text. The row being\n  edited now stays put, so the text can be selected as normal, and rows\n  that aren't being edited can still be dragged into order\n- Merging a duplicate item with a quantity above one renamed it to its\n  plural, and as only a few words such as rice and cheese were known not\n  to take one, \"Milk\" became \"Milks\" and \"Bread\" became \"Breads\". Common\n  groceries such as milk, bread, butter, flour, coffee, pasta, fish and oil\n  are now left alone, and so are names ending in them, like \"Oat milk\" and\n  \"Olive oil\""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.1.0/shopping_list.tar.gz","created":"2026-04-29T19:37:11.809700Z","licenses":["agpl"],"lastModified":"2026-04-29T19:37:11.864716Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"xGTI7yDo0MdYF8hRG0iLXDwsV6iyHaaPO4pXFBeLzlDF/nQGQOrxL8tad0CrgxdKEip53Lihr7hXu0ps4dfev2Re8U9uchCitsuo6YIABBtlwwqk8GpCnCniPqzfD8bz52nLOORzV1rPFpmKA6ZTpqnL9RiC5z7HRwx182ac1p+GeteNrtKrI0OzrUxVJE+cLmIVBPaB4h1Q9dmezyhSXqu5g1GbxMHFdFkMZfHZlXYkLWeomn5C9NtS6pvfSaagoLo9isafvZQ6qCajgbomK+wiuMBi8mbnHKf0Vsdwd9ZCDln91pdu1P8IBW7tlJoHlZFbpeQI+X2Lfq7N0mv1wA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.8/shopping_list.tar.gz","created":"2026-04-26T09:14:09.477291Z","licenses":["agpl"],"lastModified":"2026-04-26T09:14:09.553151Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"szj9yn03cC0fJHxK9bLV95yXku630n3SovmhrkNUWwxX61fyMdvqNl0wQKpZXda6qMMy93A+ItPR9cPxcNEavQ9QDgCb4S1LwB0BzfbEpRtBGZu9qGgst7VBM+/HuRi6GWr853wzFWbnL7GqLcV0h+8uBiO2HWDlLKepnCXDYF0edpseLhgcrUY37mnwrCv45RPkbBvqvNuH8P4VCgqrXfAi9iSN+l+y/vVV1ygDxvVQRowpV71WDdUNfwNVMnSRSvRGfDTMNIQUufO2QQ2n0GeidBHkBl3Xk9wDGf8/9IlceJfw4Om61z2RkecVp3g3Mus7TM655KsbLR5LJD07MQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.7/shopping_list.tar.gz","created":"2026-04-19T20:12:53.520959Z","licenses":["agpl"],"lastModified":"2026-04-19T20:12:53.588966Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"RMvli6g8T0c/DDnEmvoAM/pCu7d4CnU3dhhrmv1DFkLzC9oY20n3S2Wq2HIXHsN9R7WvC6DDcnJWcnR68NfcytO2gpRMkiX4ySQJH61qiHSqYMr3qbSlFJg+B6JuqxFcfKlSUT8frJ8oshbTAKBwKolqoLXnZSRaos3LBvqJshYcSV0J0j8/alIVM/eFnsz7TwAZF9iqElQbk5hVnQlQ3Z/grXWF4MEdjTYj8MS/lDq7Ml4v6TtDrHzrrH0exwXvezo8q80PXOP9pHDGONxts+6uCWbw9J80XgFlNecM2tT8tH6BTokhSKLEzWGApE7ktxDYonsrfHDSUlV6J7ifVQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.6/shopping_list.tar.gz","created":"2026-04-12T20:56:43.370478Z","licenses":["agpl"],"lastModified":"2026-04-12T20:56:43.418988Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"e4qnX96IQiBLYz4p9Pe9Evea3ZHSljuaIqhPnep8wY1kQcEwPGHaDQczKIdi6Rfr3gZq9vOWoypI0krR1+ty8HhrjuvHD01Ly09m4tQWxh//boNmuUyDkN+Zx1kRjUXtS1RTrQNGaK23hJ1m9jLBpfS1ONLWwRrEKXiY/vnXpiurAUJ/WWD+P6xsjWfKV5Yhy7jC7bySbgg+p3IZTag4kk4j5GmS75YUPGY2U6Xo1nnFmHc8ECFi00sbEc3nVpTmLbmuMD0kZZgMoSqVqvdxCFTaQJ8cSjYZ3ogKnyf8E7MurKXQUCLNgjG687LWeDMgWaQRfaAljNKTs1YZbFsipA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.5/shopping_list.tar.gz","created":"2026-04-12T17:58:13.704017Z","licenses":["agpl"],"lastModified":"2026-04-12T17:58:13.757608Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"UgpD+UwvPL55MW2bpsYCYbbCkL4Boa3UU3/lf10KHqzA9PgepAwiCWdOpBBrDYREMKdunXZfKK8GS/xaA2AYNENk4W/tIwZigeXVXOgWKvgHGoOUSnXnU/WAJYO39gUoY+koVjxrfnIaKUfClkE82vqBR9uxJA/PmXvHkRpglJf8fWGDmE9J7theNtwl6sX3BqlGbPuYdUNAmrvdb9iYuZXwMVupvlcfl0Gh78bwG1TMEmvUiERq3RRRcYEAV6IJzpXDA+3DlWCpzXFNVvDRIJvmIlY/qPGZ79Mc/eAVX3o/RrWwtCKXVO6CWTCPJ1kay/cwzmkB7SFECJ/iVdAUsw==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.4/shopping_list-v1.0.4.tar.gz","created":"2026-04-11T21:46:46.527921Z","licenses":["agpl"],"lastModified":"2026-04-11T21:46:46.592912Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Rx41oZJrkZluDSPPbwZjp7nFsuLz0AaMJQ6ZXHoarLtq5tP+kHD0hHHqSliyBYLGkPibrM8q6nniploItcA2Cb9K4oUA7kJIvJpyW9Bv1XHtRX8RSFRYHuMwqHU4Y9yhRDwAPitqFpxF/F5h1xB/sxG/4W2ZJCjoBoN7QSBUFhobutrZUX7JSc9A5M8tb7shIjP1yjmmlMhLEuhxVhoCj/6DJHgHZCcBIPJnh3aRDhzMQoPOFDxBJDrFwiGI+B+F5GxN8zueXilLBpU7ARsiWIOk7QX+vC3lvj4LESSWB+kJHv3DCfD67uYPw1ZJNmDZXYH5ONFW2CvqOIEIDsG/rQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.3/shopping_list.tar.gz","created":"2026-04-08T19:17:12.500453Z","licenses":["agpl"],"lastModified":"2026-04-08T20:05:21.660991Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"4XVb7W4it/t+BbUmQKmktdaQKBSfNlpOBP5HCuoEjfgMYDC6H40U4Py9B/1MFSc2\njiYR1/cn3b03RYsvOEYelVH4Jg419CR2N9dsUg3BM17MPFdByIUMPC8CStlxOfE5\nkuFQhrOfX3jcVffkohUg6dYHVORm3Dlq6+KA2sJBgLcJ18ZzrPdMORqsaoEObjJm\navYB1LtbIqYj+iqV1xWGEFPz8s9hV7bTCtoa2CKduTm8GOV6lJmY849z3qSnU+Zz\nYHdeXC2/kW9v+9VeD7ghRr7xbI6h6q47LdHf6CXTZ+d7e9tyz2sK8rk7vPAq9ap7\nCFZksF1rg0Ds2ijsZhx8Rw==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.2/shopping_list-v1.0.2.tar.gz","created":"2026-04-07T19:59:46.546588Z","licenses":["agpl"],"lastModified":"2026-04-07T21:38:52.184401Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"bLDbU0chQHhUcKxJBz6xQhsvwSrxh/T6BFbuVr7CaJZIeIk1YLpo7oLa6J4a5CFvbziwFwKR7NofFMu2pCX3OtDJaP0lI0WvwYBrFbGUalhjhw16aWg5w/Q9Oe+zmNuHX2Nxgc0rNUN7hvbDjb7paakPItdYwY2v7U+zRY3Dr7I5T7P2MvFB3H4arzOGgYE1cFiXy3bH3GIgqyFb3VFVwxFM3ug4e22Wg1kkfxrFWVOBtaevuNu+pfQJkKxkdkyK8s77t9HmsgZz8muA6YJrSGNGINezI/QU+1mnKOlDUWo5oyo8bMsN9OKb9QO/8RICVN27fnTDt1yqa0fRn3uqXA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Shopping-List/releases/download/v1.0.1/shopping_list-v1.0.1.tar.gz","created":"2026-04-07T16:15:08.948430Z","licenses":["agpl"],"lastModified":"2026-04-07T19:20:19.321354Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"bDeltyQuNvZOZIrQ2M3i/MbSzTOu00eu3cemapdcQsqRaZsR4oUOjv3uTD34tVUDtVC+I2WX3/noTTEl/XcJxhRYOPEMZJq9lWEOB4xDQ1PYEs11jfMDXRoTcLeVqitHRSrKWHrQ7XJFvg55Mfv9s0wPK3IE4CBBv94ZRAqa7FWjMlzUmD9LC+ybF6f6S2/zVRHqTFgUQ3dZ9vZTtz8KWMt+r25W/HrhDfqfDBbNXDYq8jcV6JkVXkNr7Z45xhoKJbXaCLVZo6TrDHFTnPKCN3fasXUbWjMHbyXn6g6HRglaPLWeOTGVGgyV4GeCMJ+uZ3MQQK0+bjvKW5drVlVhrA==","translations":{"en":{"changelog":"### Added\n- Create and manage multiple shopping lists\n- Share lists with Nextcloud users and groups (read/write permissions)\n- Custom share dialog with user/group search and permission management\n- Items grouped by color-coded shop areas (Produce, Dairy, Bakery, etc.)\n- 10 default shop areas seeded on first use\n- Inline editing of item name and quantity\n- Ingredient parsing from pasted recipe text (e.g. \"2 cups flour\")\n- Auto-detection of shop area from item name using configurable keyword mappings\n- Duplicate item merging with quantity combination\n- Check off items while shopping with collapsible checked section\n- Bulk restore and bulk delete for checked items\n- Configurable area keyword mappings via settings panel\n- Real-time sync via Nextcloud notify_push with polling fallback\n- Nextcloud 30-35 support"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL290aGVyd29ybGQtZGV2L1Nob3BwaW5nLUxpc3QvbWFpbi9zY3JlZW5zaG90cy9OZXh0Y2xvdWQlMjBTaG9wcGluZyUyMExpc3QlMjBFeGFtcGxlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Shopping List","summary":"Shared shopping lists for your household","description":"Manage shared shopping lists between household members. Create multiple lists, categorize items by shop area, tag items, and collaborate in real-time.\n\nOfficial website: [shoppinglist.otherworld.dev](https://shoppinglist.otherworld.dev/)\n\nOfficial companion Android app: [Google Play](https://play.google.com/store/apps/details?id=dev.otherworld.shoppinglist)"}},"isFeatured":false,"authors":[{"name":"Adam Morgan","mail":"adam@otherworld.dev","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDCDCCAfACAhMtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDA3MTA1NTQ0WhcNMzYwNzEzMTA1NTQ0WjAYMRYwFAYD\nVQQDDA1zaG9wcGluZ19saXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEA5CTDrgQkQY+3nc0SBqWX/6AepPDV7mqds4NhJ/NrmrFGh4ktGYwhIM4Jsiu9\nt5PA9DZtVIf0G/Ez8GF7JwMN0hcJ+cqxOmRVFlD03G2188uNN+iIyWXl7hL0pRv8\nycKQ/2r1w9UE8kGqpiR3KQ1Qm2zKGrd1rt89fQoQ0UxNla7k2hpJ8kC1Y3WQvRSA\nN4KNGrPlzSKwQ6PxvlYE39hgnJXtMK+QT81a3WWeem+/QLWfccKidt34KJJDut0h\nHGSwanQbSOek9TqY/oSZf18fGIhxIM/JWJfcFXTewVwoTcf7dqoI/LgYtr/N9wuQ\n70z6Z8ci9cO6lLM9EhYpd/1b/wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCL3vzT\nGe4VoBGXdmneluj/i5tEXCQVOV3LTueAfmY03q+fvxtV+IW3bweI50LGaFV7uUHD\nIkKEHFpaPOLVBTzvrmqim0oYZ3ah3pj2Sz2F+aTkC70awn5gJTjYqI8QMmVV8v7J\nVNPr9CkSAzOloogL8O0xmYiR+/vVk4WX/IxPTbzMMsLMFJslnZV3f5uIcbEHqpZj\n/TXXCu6nCNE4nA/oHEe1M0txiBBc8NAhZ5JTSbOr9rY0ONT+ja4yOTCBQTSVC8W3\nchh95ux9RYFD3rbr9oQXksoAUMbS7/Ma2kTC1o6fBsn5sQfuRy36GAh9UKPTrgM4\nZI7TnxQpR28yuseL\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"extended_occweb","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/dillardblom/occweb/issues","website":"https://github.com/dillardblom/occweb","created":"2026-09-30T13:57:18.455229Z","lastModified":"2026-10-01T01:11:47.098170Z","releases":[{"version":"0.4.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/occweb/releases/download/v0.4.7/extended_occweb-0.4.7.tar.gz","created":"2026-10-01T01:11:47.090192Z","licenses":["agpl"],"lastModified":"2026-10-01T01:11:47.150825Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"c9gCFjtzm0VKqSJqQMz4Gm2HktieZyQLv2955UCnWdJBLLj5sUHrSvAwXWfmX2tT\no0evUcJjqG/MGJRQEK/uprygFZFusJM3099BMxPshxEmhps1LRV0fnM5oGcwUe9i\ngkdO8zoiNN0R7lxq89cPNgDdhCOSWB2vdNaa8dxk+gN6hIf43AxbsXE+jrT7yLc8\nKjsOoTagt9BieuraETMLGgDBxu6IPR7cSjhP4MDYnaegWwTTO1rBuy9DlWnTBx2W\ngDWSWds1newiBaOJp7zc6XjewC8duvJX400I5pQz5ExwBL9Qnjkar3HQrTECnkJW\naTeXd0R/w5MwLbJjyvGnbJoNChPsW1UHHSF/7Ac7OdQDsi3I4iwZQgIlDi8XH2PS\nsuPFRU2pErjsfYgrs3wfxDv4ND3MsznzpZV1/mXcdEmqMDC8Urap/e16Pt+U7RzF\ncePheVECubHyEKOTjgavk+2sGzJoazbfvoXVChFntJWkTZWUdg40/2dAO4x16q9a\nvnHjul9CY8nqdnaP9eGFQKBrg+fytmDOaV/F1amwA3hwKGhLuGBW+T8q1kQAywwW\nzUJFpCNzOYk2yTqWAEpVoahBqie95hL+OGcsIkZQ9KmMGdrwnHn73jsyw+2XbCcK\n/ByuaALLoGVaM0VCSHKlFngda1UTu7jlINpdUd5sYeI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/occweb/releases/download/v0.4.6/extended_occweb-0.4.6.tar.gz","created":"2026-09-30T15:50:42.339320Z","licenses":["agpl"],"lastModified":"2026-09-30T15:50:42.398763Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"rr/0KmtgXX9Zhm6mbCWCVhcNNmrGjodJ6PHeTYmZi8cMCRIWCk4kV9auYsoShxjZ\njIZ+0AbbebdtpW1RHB+/158wTJQ/fe1xYlzLiwjidYZTzUOf+qDQYHYZlGuIXzpS\nPZTFARoUYjYI9Pjvkr2qJf5VQCeP6bOTLtdzq0z56xxhlT2LZMccYMFBMpvh8hXn\n3CfiorrBtuCwpx4PsKaxnk/+TstygUM0aLlchB3YSqNrMvYpgADdByEcccqmGpWh\nn8XGhJkV4PKmQqcxqdYZrkNJvnixJ4p5r8TYd2LcVkreGtWfnk+pFrQcyGcM+8ca\n47CptanEVKubjZ7VC9Geh1mPxGjT12ca5f5u6jQ8LimRLT2I17JsamT0ZzmcXlp9\nd/d7wLdh2fyfOQJD2OyZc3pe1KdZr8VHljKoYmYO/NjOSlH6jpKXkXlslwuztGz5\n+iCCmeqUFNncoRXWZeerrL/WL80ZlIbWjqgTQHx5bm+P4GOFuDj/wR0zwFvVmwIS\nfJUPlobk/6ROSQJzo8B8LAxSVZaUngLe5Mlbe5PsOwpeyGrGnpsZLWIfOk5mrR+m\noTmfzMV731SqR5N4zv0COUaHPgy+lZlIbjqgCshqb/knK9iNT4osuC/m49drGlcl\nKMsbKKBzwexqFjtJyRknnTR6tkMPFmLulvWfyRlSMBs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/occweb/releases/download/v0.4.5/extended_occweb-0.4.5.tar.gz","created":"2026-09-30T14:02:07.647318Z","licenses":["agpl"],"lastModified":"2026-09-30T14:02:07.703244Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"RUFlbYxjPAuHZJAcYX97rUy5GRWrk0r70IWz8BoSVqHxwmTa/adoL0Xh+UkXGoWU\nCtWb8kyqxTEVTuDobaNqtCrIKOsdeKaebQIBukyqdtLuvXvrBEbLw4aEcf30bnxZ\nmhtuXzkxadw9DiNOsIfY0cU1J+HdsLvA69aoSYqW6vqSxvVDVtwwgFbNKXyhWBa+\nHa/lw5e8UztZDkYAN6U0+aRJYYdFwGmleGDLIWqzlUzo3IyY+KJqte6nsZhGSFXF\nyI+5N+vqXsCU8RysqPxBw0dghljL855U+c1V3YurJeaev/fj7gUBoyBt/wRXaG9t\nXRZKmM9oZXn68sy11fJdqGp+O4ITkyaAZ/M+9F7DIjDP9mPGeFUEm0H5jN2ttBRZ\n7S+eEE+rE8tvO1eduk3Or0+GwPhJKSZZxYO01Meipl8QF+0t4vRoEt9kd1RZxt4F\nPMJL79MTOTDhPYsa27ASyeFnMYKoC+NcmU/m0eGMSWXMQQyiaQefwFV5ORdlzJDK\nvd/ea/t+TlWHopdgd3Ejk5M+4qhuKYDvOzhcWH/cjodb85147PY3TVSq9gXzXFm9\nAei6jk67dnkKb8Mtge2jHV5285GmoNeInoqZgSjPjh7rXsqnh11ie2u7MpB0q504\nLZB0zSy8Xl0SjbJblsC/SWa1iqTrw7Y3EVGkOqNpWYM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2RpbGxhcmRibG9tL29jY3dlYi9yYXcvbWFpbi9hcHBpbmZvL3NjcmVlbnNob3QucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2RpbGxhcmRibG9tL29jY3dlYi9yYXcvbWFpbi9hcHBpbmZvL3NjcmVlbnNob3Qtc3RhdHVzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2RpbGxhcmRibG9tL29jY3dlYi9yYXcvbWFpbi9hcHBpbmZvL3NjcmVlbnNob3Qtc3FsLXN3aXRjaC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2RpbGxhcmRibG9tL29jY3dlYi9yYXcvbWFpbi9hcHBpbmZvL3NjcmVlbnNob3Qtc3FsLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Extended OCC Web","summary":"Run occ commands and SQL queries from a web terminal (admins only)","description":"A terminal in the browser for Nextcloud administrators: run occ commands and query the database without shell access to the server. Handy on Nextcloud All-in-One (AIO) and other container setups, where occ otherwise needs `docker exec`.\n\n**occ mode**\n\n- Run any occ command, with tab completion of command names and colored output.\n- Every command is logged with the user who ran it, in the Nextcloud log and, when enabled, in the admin_audit log.\n\n**SQL mode** (type `sql`)\n\n- Run SQL against the Nextcloud database. Statements separated by `;` run as one batch on one connection, and the batch is rolled back if a statement fails.\n- Results are shown as tables (up to 1000 rows per query).\n- Statements that change data or the schema ask for confirmation before the batch runs. Reading or writing files on the database server and starting programs through SQL are blocked.\n- Ready-made scripts: type `templates`, for example to look up or completely delete a local user. A template only fills the command line; nothing runs until you review it and press Enter.\n\n**Security**\n\n- Only members of the Nextcloud admin group can use the app; every request is checked and CSRF-protected.\n- Treat access to it like shell access to the server, and run the database as a user without superuser or server file/program rights. See the Security section in the README.\n\n**Limitations**\n\n- Not an interactive terminal: long-running commands (like `files:scan` on a large instance) time out, and commands that ask questions cannot be answered (use `-n`)."}},"isFeatured":false,"authors":[{"name":"Dillard Blom","mail":"dillard.blom@ensembia.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhQ2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTMwMTEzNzAzWhcNMzcwMTA1MTEzNzAzWjAaMRgwFgYD\nVQQDDA9leHRlbmRlZF9vY2N3ZWIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCykZ3rgwI9Xy+d+3mntXrPOoqNyuHUIALy/6jx96fxVPgllCnbRycc0JgD\nwzPtSWan9+G/oA82SQbi/NXICxlJzmo79WnqRsiQI7lRxlveQ8KQtwH+OfcEjAWs\nv4kQPzNadDQOlqO4Xx2VzYkR78IxHnijcfYdNgimeRX9ehVgBPOq4J3EwKSKCX4p\nL9X8nakZTFw4fX3tNmsqfplL4c1zC+G3yHpkV4IMikjimwKL7sVgstfFffZzZOYa\nwtgHAvwAcmz+dw2tcBfsG3vsRlnKyLWo9/BFEPBNDJJKKBKIXLYiJy8pXQFmxmTI\nGh6nA5OfEitnit7Avk4xydLbzgo51FrLj/Jj+G9n3QNjqdOVpDCq6EkFAIyDZFFf\nqLVrHj7sAq8OaLNxvstILCa/1UVB0QumTDzlrrvrYouZX0i92wxu8umrNwJZXjwN\nWONpox/IRHV0kQF2pZoPKn4mrZX1+bU99c38bNxrHBtU7nNn17ujV2rGD2NCeEJz\ngrSNbFjvlZ1W68g3qTEOa+XNJRATZCDjjIf/Ld8OrKgYBtWUFss8fLgryQerczD1\n2KD3G9Qn9iKiSRdl1eG3kMOZOQTWfzzDWOcwnMNfmy42VGi0pvs0wCOqUDj5Vbe8\ns/WHTrOtlNj4ZR3/2bI/tndobyqFRiyWl0ZRTljD+ajTMiPIDwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBtzVIYgE5pC5UdwklipEehyKJnr0qTdXf3nezLZ4jvtyeY\nIF0JpOBUIF5AqlezDk6+JEfInsP4T5tZC4TTgLDfLV+opBZ06dAM3XsUFY/ARHn7\nNBzP1PGx7AgIZd64xYUttdWqSbD2I7q+XEsZbzmR6KQWbQC4wqmVrY2dBhu1joYG\nEeA5MHw3RADKl3YEwk3wW3v/p91niJY2uvS1hMM9hGNCyADVNETIkJwNtlWdnRGb\nGUf8gctKzi+3rzWILY6sAEMf7fhCCZkOJt64xBrvOhIl3TAYOS0mPmZD5YtI4+Iw\nhYLhK9yM6SaJVeDrABfQaFAQ+Jl2qmK5dkcVdFr5\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"llmchat","categories":["ai","tools"],"userDocs":"","adminDocs":"https://github.com/markuman/llmchat#readme","developerDocs":"","issueTracker":"https://github.com/markuman/llmchat/issues","website":"https://github.com/markuman/llmchat","created":"2026-09-05T06:42:53.123802Z","lastModified":"2026-09-28T09:01:28.901870Z","releases":[{"version":"2.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/llmchat/releases/download/2.8.0/llmchat-2.8.0.tar.gz","created":"2026-09-28T09:01:28.891454Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T09:01:28.961162Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"Tp4b1N8podOrRbmjttQrug53jHbA/UIYFZUKk8uqRmh6jnyLouGTm+FfUFtMSkMJnRUtcHwdAGzC+NOIAvvJ3wBuPf9TTgVetmw249X+tyfs+Z+CP8iIJqLp6bFyOf7Htt16gUNFrabJi26sZZccsSCI9kutH/RwosLrxDtyq0Bc5x2v+W5FI67YU7BlJ8YMWGiNASGJ28fOKhFdRyOfxXA5+WTIX15Y9XFl9WgDq1iaQ8FG6oKnki7GxNfzp9Ny3BPqFENsjrUvZilfjc8LpxHqqjH+RexNK/z3vgN3fSzlOzwHadssgw2S4wd/eHZmMRaQLYxyTu8Xptd2uqwsWbyjsvxsypbhhDMWnazxbf4TfNu6oPn6lHddNU668xWZTVsvAZcVcx2WX+Tpz2p16H2AVylOii93KWCcUupdWs12WxwqiRlqBlOpLeTp85I3r8TchfQsHgxNpUwOc2gzBmyE48riuVJ+nQ6gn7muru27mGFVAPCn084p03j15UXxzKg8sdeNG5dTBxNENf8mKE5RsW+JXFHRFMVvlqJH+0AuNR2B/wVHJeALZ/JZhgh04SZQkPqVt97j8O5GyIGv0HBcdS2g8+agJWx/7bQ0WpEzB5ekwYNQD9wYSjKkZPnPU0LGBusXnFHEPRCv7VYxDhp8I5+JERbOW+rQ+TFkJfA=","translations":{"en":{"changelog":"### Changed\n- **Archived chats read like a conversation.** Your messages stand as plain text, the model's\n  answers are quoted twice (`> > …`), and every change of speaker — in either direction — gets a\n  `---`. In Nextcloud Text that is a double bar down the side of every answer: a single one reads\n  as a faint citation and gets lost next to the answer's own headings and lists, two are\n  unmistakable. It replaces a `## user` / `## assistant` heading above every turn, which buried the\n  answers' own headings in a flat list of equal-looking sections. Headings, lists and code blocks\n  keep working inside the quote, and every line is quoted, blank ones included, so an answer with\n  paragraphs stays one quote instead of falling out of it at the first break. Two messages of the\n  same speaker in a row, such as a question sent again after a failed answer, stay on one side of\n  the rule.\n- **No front matter any more**, and no profile, model or system prompt. Nextcloud Text renders the\n  YAML block as a grey box of configuration above the first question, which is not what an\n  archived chat is opened for; title and date are in the file name and the year folder anyway.\n  The archive endpoint no longer reads the dropped fields, and an older frontend that still sends\n  them is not rejected."}},"signatureDigest":"sha512"},{"version":"2.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/llmchat/releases/download/2.7.0/llmchat-2.7.0.tar.gz","created":"2026-09-28T08:00:57.587572Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T08:00:57.684255Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"Jip4EH4fdobxYyNPGZ/VVU4gHcZkmx6ZBh47+1hlpgDk7/yWA0Wd5ddGx6uBllE5i+ieUwsihdj852w1xSoTDsHR2x4umb+Gq+mgnDZ8iiXrLXc1gM2eFtX7HLlQvjXCg7wQn25OK6hm8/FeL7kgHSkMTWssVMfBu4FZVZ261iYxBCIbuw//2iXSZFQx5Sef8TGh6Pmot+B13X8HyY5hzzsw3YkpOZ6x2QkYJn/21Y0NueZ2k6gh4+JkSp2Qxjv7FWBZraBPfjNfMhlsAzcpjkX5aiws+gUkNfhp6gn9K+Kg6SzTU2LNC0s8gEchsBOwQ++o2k/CEVf2AXhKmhVDzOlW/JRFaAOWQUDQ8Lgh/Ncksv/2RAl03xTvlXy3h36sdusRALYn9YpFrIJCk0InFM/h4+iR8sfd0GcZt2m8vf3QsASVb420ofqO4iRqIEYPIHKXqgWJS/Hd+si2VlR4IylF07ACbCTzJyy1MDpoEa92Fuj9ZRxpD3Pxvbt5vl8WNDZY55umuxixta4V/xSqrtupfdBAsMuHt3zhHZsHpXr7gYU5HEUyFS+XULbksuPc0WJeDfl8OHna64+nVjo9g0jHa4uHNYfjbiucl6TxE9WRXFPD+V+4NsAfveM5VY4ZwoQ8bHCwuLP0/dB8Q0rlcrVT0YKrGpLOuaqN4TDFTGA=","translations":{"en":{"changelog":"### Added\n- **External MCP servers** (issue #11), under a new **Settings → MCP servers** tab and a new `mcp`\n  tool per profile. For services that already speak the Model Context Protocol — GitLab, a maps\n  server — so each one does not have to be rebuilt as a native tool. Nextcloud itself stays with\n  `nc_read`; batteries included means not needing an MCP server for your own files.\n\n  Streamable HTTP only, since stdio does not exist in a browser and the old SSE transport is\n  deprecated. Tools only: `initialize`, `tools/list` and `tools/call`, text results; resources,\n  prompts, sampling and elicitation are out of scope, and the proxy refuses them. What a server\n  says in its `instructions` goes into the system prompt, labelled as that server's, because that\n  is where servers put the caveats a tool description has no room for.\n\n  The one feature in this app where the browser does *not* talk to the service itself: MCP\n  servers, their `.well-known` documents and their token endpoints send no CORS headers, so every\n  message goes through `POST /api/v1/mcp/{id}/rpc`. Given that, the tokens never leave the server\n  either — encrypted with `ICrypto`, never serialised, only `has_token` and an `auth_state` for the\n  badge. That is a deliberate departure from the LLM keys, which have to reach the browser because\n  the LLM request is made there. The message travels through the proxy as the JSON string the\n  browser built, not re-encoded from a PHP array: that would turn every `{}` in the tool arguments\n  into `[]`, and a strict server rightly refuses an array where its schema says object.\n\n  Authentication is none, a static bearer token (a GitLab PAT, say), or OAuth 2.1 the way the MCP\n  spec describes it: 401 → `WWW-Authenticate` → protected resource metadata (RFC 9728) →\n  authorization server metadata (RFC 8414) → dynamic client registration (RFC 7591) → PKCE with\n  S256 and the resource indicator (RFC 8707). Checked against the discovery documents of GitLab\n  and Linear. A server without dynamic registration takes a manually registered client id, and the\n  settings show the redirect URI to register. Access tokens are refreshed shortly before they run\n  out and once more on a 401; with refresh-token rotation, two requests racing into the same\n  refresh no longer cost the sign-in, because the loser re-reads what the winner stored.\n\n  The sign-in popup reports back over a `BroadcastChannel` rather than `window.opener`, and the\n  opener link is cut before the popup leaves for the provider — a hostile authorization page cannot\n  reach back into the tab it came from. The callback itself is guarded by a single-use `state`\n  bound to the signed-in user's server, and an `iss` that names a different authorization server\n  is refused as a mix-up.\n\n  Every MCP call asks for approval, even with approval switched off in the profile: an external\n  server is somebody else's code with somebody else's side effects. The dialog names the server\n  and its URL, since the function name is `mcp_{slug}_{tool}` and a slug is not something to trust.\n  A server that is down, slow or signed out costs its own tools for that turn and nothing else; the\n  tool log says why. One that asks for a sign-in in the middle of an answer is dropped for the rest\n  of it instead of being retried by the model, and the user gets a note pointing at the settings.\n\n### Changed\n- The SSRF pre-check of `web_fetch` moved into `OutboundUrlGuard`, shared with the MCP proxy, so\n  the two cannot drift apart on where the server refuses to go. The proxy skips only the\n  standard-ports rule: the user picked the URL, not a model, and `:8000` is simply where MCP\n  servers tend to run."}},"signatureDigest":"sha512"},{"version":"2.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/llmchat/releases/download/2.6.0/llmchat-2.6.0.tar.gz","created":"2026-09-07T13:06:10.258267Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T13:06:10.334630Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"pnJ++Eu59i529AKxkzd2tO2dpTjv3Fo7Xbb7+Dvro4ABDBzRJooeHH8t7/90T3UVLojwiKbPAdBlzftVowWP0JLDIjoa/5u9NyFiH0OfIgRBPeg9n4EFbnvm84m1onW79hs5VLK7NFj7SVtix6DAYb120mu4E8Nw5iWCHC7ok13dOcEihOuhNqVTb5ubnkiBiaTYHMn8ai8GLcfrqyitsj1AHv51rWe6CxDAJXqJdzeVGA9Z8/q3YnPrZChColNe5HbDkmM7Op7tOJy8AOvnBVlvaRFc2f3aBSKBi/u6BkgY3o6F899zMj1MYkfu+CHf3AGYo06RL0LLax3o8AU6lQ0hs/Vq3meeyXKJ/dh6G3UGZIApTAxc5gQ5C2e+Y+WkhAJtLBF8OTvTWKXUCGhmVrDnSbaUk1bFAOW3US/7OdZgHWfZ6QomhR2JNfteCtkpD5hISJspmf2z5z0H/9wLDR1wxAsNSGoCbHphFd56csfDpd16h7z6td1Map66XJeweNtcZJfMj1YjhhrbR0uMUyDRpMdfBKHxTcAouMZf91q5hAmenVQjSEqvtC9vlX5Gm7AEUdYzRP20DsndWgRl2ZOEIwfNF8F4RzGHGfYRUWP/bKTHAFORR1PPc77Qvg5GfL5VA5QhvhIX2d8aNPwHbtDNUAhP3MkaiEfVS1QUcr0=","translations":{"en":{"changelog":"### Added\n- **Skills** (issue #17), off by default. A skill is a Markdown file with YAML front matter, living\n  in a `Skills` folder next to the archived chats — the user writes down how a particular kind of\n  question should be answered, and the model follows it instead of improvising. Switching the\n  setting on creates the folder together with an example skill for weather forecasts, which is the\n  case that shows why this exists: asked for a forecast without it, a model runs a web search and\n  summarises whatever a content farm published this morning; with it, the answer comes from one\n  request to `wttr.in`'s JSON API, laid out as a horizontal table because weather reads as a\n  progression and one row per hour makes the reader scan vertically for a trend that runs sideways.\n  Wind comes with a direction arrow — `↑ 12` — pointing where the air is heading, so a northerly\n  is `↓`. Same convention as wttr.in's own terminal output, and it reads like an arrow on a map.\n  Note the half-turn it implies: `winddir16Point` names the direction the wind blows *from*, which\n  is the opposite of the arrow, so the skill carries a lookup table rather than asking the model to\n  flip a compass point in its head every time. Switching the setting off deletes nothing — the\n  files are the user's, and a toggle is not consent to remove something they spent an evening\n  writing.\n\n  Two halves, deliberately. Only the front matter — name and description, one line per skill — goes\n  into the system prompt, so the model knows what exists; the body is fetched by `skill_read` when\n  it decides a skill applies. Loading every body into every request would work for three skills and\n  quietly cost a few thousand tokens per message at thirty. A skill without a description is not\n  offered at all rather than listed by name, because the description is the thing the model chooses\n  on.\n\n  A skill may declare `allowed-domains`, and `skill_fetch` will reach exactly those hosts, over\n  https, straight from the browser — the same architecture as web search, and for the same reason:\n  a weather question should not leave a line in the server's access log naming the town. Those\n  hosts go into the page's CSP, which is what makes the request possible at all and means a newly\n  added skill needs a reload before its host can be reached, as with connections. Subdomains do not\n  inherit and wildcards are rejected: `wttr.in` does not grant `evil.wttr.in`. Neither tool asks\n  for approval — writing `allowed-domains` in a file you own *is* the approval, given once instead\n  of on every weather question, and that is a far narrower thing than `web_fetch`, which takes any\n  URL a model can invent and therefore always asks.\n\n  It also sidesteps a limit that would have made the example skill quietly wrong: `wttr.in`'s\n  three-day JSON is about 27 000 characters once whitespace is normalised, and `web_fetch` caps\n  text at 24 000. Routed through the server, the third day would simply have been missing, with\n  nothing in the answer to say so.\n- **\"LLM Chat\" in the Files app menu** (issue #20). The entry opens a new chat in a new tab with\n  the file's path already quoted in the prompt, ready for a question to be typed after it — the\n  same treatment the composer's own file picker gives a path, since it has to survive being read\n  back by a model and turned into a tool argument. It does not send anything: a path without a\n  question is not a request, and guessing \"summarise this\" would be wrong about half the time.\n  Shown for folders as well as files, because the path only goes into the prompt and a folder is a\n  perfectly good argument for `nc_list_files`. It ships as its own 1 kB bundle rather than being\n  folded into the app's: this code loads on every page of the Files app, and the main bundle is a\n  chat client that brings Vue, pinia and pdf.js with it.\n\n### Changed\n- `quotePath` moved out of the composer into `services/paths.js`, since the Files action needs\n  exactly the same quoting and a second copy would drift from the first.\n- The reload notice no longer claims a connection changed. It fires for a connection, for the\n  SearXNG URL and now for a skill's `allowed-domains` alike, so saying \"a connection was added\"\n  after switching skills on was simply untrue. The remedy is identical in every case, so the\n  message names the remedy and not a cause it cannot know.\n\n### Fixed\n- `package-lock.json` said `2.4.0` — it was missed in the 2.5.0 release and is now regenerated\n  along with the version bump. It also gains `@nextcloud/files`, which the Files action imports\n  directly; it was previously only present transitively via `@nextcloud/dialogs`, so `npm ci`\n  happened to work while the lock file did not actually guarantee it.\n- Listing the skills checks each file's size before reading it. The size check existed only on the\n  read path, so a large file that happened to sit in the skills folder was pulled into memory in\n  full on **every page load** just to have its front matter looked at — the listing runs while the\n  page is being rendered. Oversized files are now skipped on both paths rather than refused on one\n  of them, so the catalogue and a later read cannot disagree about which file answers for an id.\n- Two files whose names differ only in case no longer produce two entries for one skill. Ids are\n  compared case-insensitively, so `Weather.md` and `weather.md` are the same skill to the model\n  while `skill_read` answers with whichever the directory listing yields first; offering both was\n  offering a coin flip.\n- `skill_fetch` rejects a URL with an explicit port instead of letting it fail as a network error.\n  The CSP entry is `https://host`, which covers the default port and nothing else, so\n  `https://example.com:8443/…` passed the host check and was then blocked by the browser — and\n  reported as the generic \"reload the page, or the host does not send CORS headers\", which is\n  neither the cause nor a hint at the fix.\n- Switching skills on now switches back off when the folder cannot be created. The setting and the\n  provisioning are two calls, and if the second failed the switch stayed on next to an empty list\n  with nothing saying why.\n- The front matter terminator has to be a line of its own. Scanning for `\\n---` also stopped at\n  `----` or `--- something` and left the remainder of that line at the top of the body. Extra\n  dashes and trailing whitespace are tolerated, since an editor produces those by accident.\n- A `?path=` longer than the 4000-character cap is truncated before being quoted rather than after,\n  which used to cut off the closing quote and leave the path running into whatever was typed next.\n\n### Removed\n- `SkillService::domains()`, which had no callers: `PageController` derives the CSP hosts from the\n  same listing it puts into the initial state, deliberately, so the method was a second\n  implementation waiting to disagree with the first."}},"signatureDigest":"sha512"},{"version":"2.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/llmchat/releases/download/2.5.0/llmchat-2.5.0.tar.gz","created":"2026-09-07T06:33:27.324965Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T06:33:27.407522Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"5Ub1MIaWfiN8Lq8zIfJC3K0wORQFHjDjVWloXNgWyh9hEAyhNEyGxQJTzB/anptAnkS215vnCohtdrG7gU04PdDsbKHmUXZIgJAoId2wOsy3dMtc/M1DURafzoimtd41VQHr5V5qtl+oiGwBP/eycP9d88TjtUxU2rrwSKZ0D2PaTEqIX2xUKl1MeUtFA8g3DhVPA+xuZ2Cg6UH6Ho6Ak+Lbl+MoYFfkD+5ajYvpkoyzthZ5ZfUGVGoBgni3s1s0tUKcpagOInwMOLj3/GFbUcXbegcjZMeBimfsX41PRzMMvQ4n9a9je4i4gXiTQ1g0uDhxy0wsyVdF8Oqhqa0VdP2NV0xSZtdEhPw6ryxISuGqLlyZ9jYC5AMTkU3kFJcvcEw/t7l6U1NXjq5laadpqTI5r3pXkfbyAuRb+8COfkvCQy8tb/Cn7C1J+2ASFOt6+NDb8yVEAvkjgFTGno2bRAdkvqNtCNQhC+K4BWpMRtjyZTETrCxrXE1azt5dTbU5nKQb6Gp9zQ7Q4xhvY9uGbkrzJLejvlmonDF+yoUVq2nHB8Mfzaza3Zn2P5FIxKV6JY/yQgGooLP8Yr/IXJZkCiWeWE/QU2ocjvWfCVX5Po5n5/LRXFqi1KU2tTcd5iuV8FydcYblgrNNgkyAHnAsQfZ8QJ0MmO7Uko43ONFLoZs=","translations":{"en":{"changelog":"### Added\n- The settings modal has a footer with the installed version and a link to the repository\n  (issue #19). The version is read from the app manager rather than compiled into the bundle: a\n  constant next to `info.xml` is a second place to forget on release day, and it would report what\n  the assets were built from instead of what is actually installed — which is exactly the wrong\n  number on a report from someone who deployed by rsync. It sits below the tab strip rather than\n  inside the general tab, because it identifies the app and not the chat settings, and a report\n  written while looking at the connections tab needs it just as much.\n\n### Changed\n- Nextcloud 35 is supported (issue #21): `max-version` moves to 35 while 34 stays in. Nothing in\n  the app had to change for it — every OCP interface it touches still exists, `IUserConfig` is the\n  current API rather than the `IConfig` methods deprecated in 33, and no removal in 35 affects it.\n- **PHP 8.3 is now the minimum, up from 8.2.** Nextcloud 35 requires it regardless, so keeping 8.2\n  in the manifest would promise something half the supported range cannot deliver. Running 34 on\n  8.3 is an ordinary combination, so this drops no installation that could otherwise have had 2.5.0\n  — the app store resolves `<php min-version>` against the server, not against Nextcloud's own\n  floor.\n- The `@NoAdminRequired` and `@NoCSRFRequired` docblock annotations are gone; the matching `#[…]`\n  attributes were already there and are what actually grants access since Nextcloud 27. Keeping\n  both meant every request logged a deprecation notice on the annotation path — harmless, and\n  noise in the debug log for no benefit, since the attributes short-circuit the check before the\n  annotation is ever read.\n- The `<screenshot>` URLs in `info.xml` point at `latest` instead of `main`, following the rename\n  of this repository's default branch. The old URLs 404, which the store does not report — it just\n  renders empty tiles in the gallery."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcmt1bWFuL2xsbWNoYXQvbGF0ZXN0L2ltZy8xLWNoYXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcmt1bWFuL2xsbWNoYXQvbGF0ZXN0L2ltZy8yLWFnZW50LWxvb3AucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcmt1bWFuL2xsbWNoYXQvbGF0ZXN0L2ltZy8zLWFwcHJvdmFsLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcmt1bWFuL2xsbWNoYXQvbGF0ZXN0L2ltZy80LW5leHRjbG91ZC10b29scy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"LLM Chat","summary":"Chat with LLMs directly from your browser — the server never sees your prompts","description":"**Privacy-first by architecture. Batteries included. Bring your own LLM.**\n\nA chat interface for large language models where **your browser talks directly to the LLM backend**.\nNextcloud acts only as configuration storage and archive target — it is never a proxy and never sees\nprompts or responses. Not \"we promise not to look\": it structurally cannot.\n\nBecause the requests originate in the browser, `localhost` resolves from the *user's* machine. Your\nNextcloud can live in a datacenter and still talk to an Ollama instance running on your laptop —\nno tunnel, no VPN, no exposed port. No server-side LLM app can do that.\n\nFeatures:\n\n* Bring your own backend: Ollama, llama.cpp, LiteLLM, OpenRouter, vLLM — anything OpenAI-compatible\n* Multiple connections with encrypted API key storage, multiple profiles per connection\n* Profiles carry model, system prompt, temperature, token budget, streaming and reasoning switches\n* Streaming responses with a stop button, edit-and-retry, regenerate — including regenerating the\n  same question with a different profile or model\n* Full-text search across your local chat history\n* Optional agent tools: web search via your own SearXNG, page fetching, clock, and read-only\n  access to your own Nextcloud (Unified Search, Collectives, files, PDF text) — no MCP server,\n  no extra container, no app password needed\n* External MCP servers (Streamable HTTP, tools only) with token or OAuth 2.1 sign-in — proxied by\n  the server, so their tokens never reach the browser, and every call asks first\n* Skills: Markdown files in your own Files where you write down how a kind of question should be\n  answered, which source to use and how the reply should look. Ships with a weather example that\n  replaces a web search with one API call, fetched by your browser from a host you allowlisted\n* Models can ask you a question in a dialog instead of guessing at an ambiguous requirement\n* File picker in the composer, so a path goes into the prompt without being typed\n* \"LLM Chat\" in the Files menu opens a new chat with that file's path already in the prompt\n* Vision-capable models can be shown an image or a rendered PDF page from your files, behind a\n  per-profile switch that is off by default\n* Approval dialog before any tool call that leaves the browser, on by default\n* Chat history in IndexedDB — local to the browser, by design\n* Archive chats as Markdown files into your Nextcloud files\n* Profile export/import as JSON (never contains secrets)\n\n**Note:** API keys are stored encrypted on the server but are necessarily delivered to the browser,\nsince that is where the request is made. Each user only ever sees their own key."}},"isFeatured":false,"authors":[{"name":"Markus Bergholz","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhP6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTMxNTExWhcNMzYxMjEwMTMxNTExWjASMRAwDgYD\nVQQDDAdsbG1jaGF0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7HDs\njKp7FsGKcuel3l3CTv8nfsIZXOMCyn2/kR0cZ18lnjrsxstIV/kB+t/lHD/V63Sp\nweVFyxdOR5suH1ZYyc2iAGNtghJOq/hijKwSCNeJfSijyaHPOThIQaNDF30hDrSe\nzThc3KidVfRfLz+FDJl18KzUJvYYRBDrBpd70UuDuiVoDu2mNPsUMx/ubQzLCCA+\nlGOcWMAV8wcBi3SE/CNciqDvzU1WAIxl0KcUzCdF924IyG7XcRktuSdDXxMEPiV4\nr3FYkUVZLTMkjT6gOzWNGt0i5pjJNFV0WYo3+OnaT3Ra2tCxSFYPGUhptxsY6xTu\ngLOkSc5SOT8CSsFS7fjERutvt8C0oHEbu5N7TDoywBIcgu+oSe6pGuI12D8WAt+C\nEuLs1OM4i7yUETtYoeURPWXDyhhu58Lfl89EFOfKjwhuySDhX6ALV8d559hPD9VY\nOU/zv6j6De0m89lYgWXyoF0ClT0iu5OXqFO5NQuW8ZnXN2rZVvVNapMuYXSWdeL/\nqi/xzivNsS++fZrRAO8kfGViN8wrcPcw4laKw/82iTsI9rldsimXkMQx2rXDw+4/\ndCor1rdv3pAKv0xODI6bvLO3/df5DjlDHqAl9H++E2SiXciII+4abLQ+1lP8Ebsi\n4e9lVt6ypI8Q3AeQunGWIiFmCtmKmM22jvgMTEsCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAffSGNpUST/kNZvVzcELBSu7RY77qo2MmkJ+zgo+4raXq66G3EITIIHyA\nvbx2Mrok18l+xLNhd+m37+1W31/HRdKIsldma2qfb1eVw9bDH927LdHjFPKcZuIu\nd6o3y6DS+jcYC01ghT9eDo4ammi5xUDJrriDkA1FAQl8VDhofCe76U40GSZTlg8f\nuON0WiFfRuA7IG8Trw2DcQFEHEi7ufVEV/OUFdQoDAtIljunOm4iXV9pRLdj1Um6\nUYKKERhs3/oIUjuFSbuBQgUBo7LCt5q69K64hfwexNax/pEkIR8kjzdtnUdqcAhX\n3nq8ZcjtzKgN3LRYfYUEgRYAyEqthQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"twofactor_webauthn","categories":["security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/twofactor_webauthn/issues","website":"https://github.com/nextcloud/twofactor_webauthn#readme","created":"2019-05-20T16:37:31.306259Z","lastModified":"2026-09-08T10:42:01.399881Z","releases":[{"version":"2.7.1","phpExtensions":[{"id":"gmp","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.7.1/twofactor_webauthn-v2.7.1.tar.gz","created":"2026-09-07T20:30:34.663613Z","licenses":["agpl"],"lastModified":"2026-09-07T20:30:34.844752Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"CUDS+ksF97Do8fSC9HK0hlS4bcJGrbOVNE4Shvrfr5KE50EWQHaZ8BIcby+LMPdVwoKcpia6ibtuYO59I6YFuowtfL8U+SJ/L2BC9P0mU/unLM8SLV9XEIHLZsCipkfeAU7aiG1XVSk1EVIRejxLNi8bo5m9/PDUdtId0+DcppJUnIlbDFdCNF6rE/0gipzB9ZQm5bLVUtZ2hvmLzQXGQkPA08VkmRkPM7tkFNQ2YdaylZ79wBKjqwy0+FhN7DHccSqbRxh9n5yKAvigXP5cJP6w6DWD0S3ub75TNEECbQkz3admwzQngL6uUenLfnfrz1yWvzBlTcL29Cvp4wfAezL/RU+bTPbxy9gGXBYCnm15a3YowVCc6oS/Z1iyvukjZFHgQZpvAPn84AAmFoBIP2W8RZlYZgbKzwfCOYpQfV29YrzyBrQpnqe/B3vw62/XfQFk2VAUxa7MS6PCYt1BMD9ZeEeGMifWmi7iqyLKvLJIXSna3cW9rewCoyQrkhK1WHmiKt2q71GaD5iikP52fthlxpbCEGingqW4bwjCCdRbbtkPeN4PVWsEAsvmZkXcGcYZik7KUZay73ewGrLNTllb1koKH/iE9WgqM33iGllyJGhJV1iXI7Is9uYMze3wZNaZ7OvfTNIP87sWJvaaOtrhrCK5KA3scklqx7AYdn8=","translations":{"en":{"changelog":"### Fixed\n- DataCloneError (e.g. when using Bitwarden)"}},"signatureDigest":"sha512"},{"version":"2.7.0","phpExtensions":[{"id":"gmp","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.7.0/twofactor_webauthn-v2.7.0.tar.gz","created":"2026-06-08T11:51:07.578422Z","licenses":["agpl"],"lastModified":"2026-06-08T11:51:07.661261Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Xexzew73OSNpLkekmfKm0YGpAVN3X5xNV1yZuPxS5UMvzMskUiA+627an5FJ704k28hTZMUHEpAVYaocd4lxI7899I3knnWx06Nw+jQU3z3K4s0nT5lflad+PvUCEVPd6ufTIN1MO9djDeoK5ghD2SGQxzVBiY3tMlypRnon++g+UOP4dSq1+9ikfRDqnKZHqUoTnJxxwT4eBdSVT3E1qlrrDydQe0X+nAWqaTqbrbr09eYZJdmsxCuqHkFyeugjl1O+gcJh5k2GX5ycCr0NgXl1YLpwHfle1243vQWxizH81/Bw2UosW1nRu7SfX5RFyoNK58gevsojATUoz/kMHu8BF9RuTQPHymOUE0aCkv77DqHIWTWsN7XRbxQvLx16VU8Who0pOJ/oq1QeWmqTB2jJaeX4m/fXOkoltSrYX/bfvgsxfTuSvp+nLzjDqMpgALBlMDq31J/epiA85SI3iKfyI4hNPGxII8bTQLpO5IUcf8/q4ddKtKY6HyiMotGXV+crCxqsbRrntTwKqUcdUB4QiRkVMLbuQrFNvOBLIL5ZM3jISgWDVxkDCSjCznFcNRHiXU5lQW/qN2kuRzV7ypGMR0gTvvez7cxfJdrzZpUxAZUVz1TDCLeCzIDh5E0BLrBQcWYfMb5KVwoNlm4jKWTMc162uUgDvhy5ObpngpU=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 support\n### Fixed\n- Fix activity exception type"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90d29mYWN0b3Jfd2ViYXV0aG4vbWFpbi9zY3JlZW5zaG90cy9jaGFsbGVuZ2UucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Two-Factor WebAuthn","summary":"WebAuthn two-factor provider","description":"A two-factor provider for WebAuthn devices"}},"isFeatured":true,"authors":[{"name":"Michael Blumenstein","mail":"","homepage":""},{"name":"Richard Steinmetz","mail":"","homepage":""},{"name":"Christoph Wurst","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8,"ratingNumRecent":0,"ratingNumOverall":10,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhG1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwMjI0MDkwNjU2WhcNMzIwNjAxMDkwNjU2WjAdMRswGQYD\r\nVQQDDBJ0d29mYWN0b3Jfd2ViYXV0aG4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQChEq8sjeDHET2w6KLfVSLrGibdx8E4UYyQlKUoCt+XRlIYgGu36udP\r\nnVmfylakVX9MViGcqw5SbM+jLCoKGPfzXZrqQVnxoDCWixv4tsZEGIKB8zpfREsP\r\n6WBsZZEvMtLKAbQ7BV0NhkHP+1zrNQQu1+Un9uK4JwBpJrzROWFHDNawkElq2AEs\r\nDbOcXqFF1Ocyrv7il7e09NT58mB2GZQqKvB6g7ZzpPZNi/NUyhN2g2KLOELy/m4z\r\nmJ+6JZOSaVLVFUcVzoFUCVrQerb6MzZiMvxFu7+AwQNlCtJ2wiFfA+wYk8HmpOdi\r\nXU8n/GdmzxOLKWxwm5pk3rK6vfoxbQIKMXhlRgX86amZUniO7ifyhC8E93RKz5kJ\r\n9RAcs60ByXmsA0IKshzq/CoMhaCSfgiqXyEFRSodVNZI/D93vHeaviMu7D5ZjkZ9\r\n6zkXaWVarjQoae3mJcNAaVmdDKxdEQADMQ89Ctn0+295r2w97/BBQiWi6bfCyIhu\r\nSvL35AU3U1WbB0PH25Nog/WJnKN7fJhA8ITB2HvRpOemY8lbJfJh0XdlzdU8aoa3\r\ndcg7i0rnthFEy5eF00W/fCO9Mb9QcGP2WXW++nzzIEmlWdc3WxEl3K8TgQnGuegz\r\nfRsvdN0PTmpkM9yfK17kEVBqiedz078yIOLAPPWT2+8mfD3p81E4HQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBLT2qnB9yq/U8Yn51b+MoZWS9G01xkmbnh6/U3j0aw\r\n1rNkv98NKlMw9QFaKt4CjZMckmhsx/3qdWNZd+Vggx/mAhmb9JhKL0fOAN9oNxwu\r\n2XXa9VdfAbSmHyYm7xOUWD+geJ2k8hG8VNNo0GJt05UpyzSxWaZYeMSHzT/kfuKX\r\n/m5r8p8RCLcTqzh4rHPUBy6hkTb2IBsM1b56buu/9ojRCviHzigqzLI9JJIBtExj\r\nWEgIQp1SJiODRjbq4O7+M231w+Uu6VpsN6OamX5csc0MKbW4FV1f/JC/coxXgp3G\r\nJstHwG1dzi+qcBh1oCkbI3PjVpy0f+87pit5Tu2kUVvU\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"santacloud","categories":["games"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/zomtec2311/santacloud/issues","website":"https://github.com/zomtec2311/santacloud","created":"2025-04-02T14:10:47.982999Z","lastModified":"2026-10-10T05:56:57.461547Z","releases":[{"version":"1.1.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/santacloud/releases/download/1.1.9/santacloud_1.1.9.tar.gz","created":"2026-10-10T05:56:57.452961Z","licenses":["agpl"],"lastModified":"2026-10-10T05:56:57.501306Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"MGeu17D2smiVJJHLdLl0C2J4Z6XLRMG9dFWfMEDSkKFmB7CTAAFAZ7TjcrkQaF9j0i43XvoBi1o1cwaJHN1jLwUC8NXwioRy7Cm+ltFZwEa0wKGOXf37+AMY/rczNvdQvnUOJLGc2yXF2YKZm2MjLfJhwekut8pUgQwmfenOUFjJ1mGZ/E6qwC/cWqXjcxKf2YjNtxsIMX5eie48RSAJvo4BQkSBGE4XIRsTeCaheE6casXwHQje2D36l2IOkkk2c1wpD/jCajTMf7RFspAe1Qbau1SIq7cVJ+6DQa/YKrSj853mlqu6ryxKtfqlULDz84Bir5m4wKXtlVS9XFjNCvxxEtXgKSdl91rgJud2AYd9VLs+F4n+t7H0GtHKdmp8h++wrXGj5adzInPpjcLAkB8l7yECXFqCA+/YA2csrNWLkpFvwTX4Id7kvNuRusr2cFQL0HHuMhiONprqttFPzt7wY7AuYmYs1OyJSLO3MlX9EyW772AIBR8ASP5P1SgpOmvTttCfoRcu9rffqm5W0K46Pyi5C6tRGn0TIb2AKPzafov/1DS1Bb1fOU7fU1b+cz/D7EOeKqkr/CBrMquZiC91dQV50jaErCEndCiDmG+dQuVX+wauTzJZpuDta9LOXn7hcCPRHFGk/ngwbh1VwaUbWu0gu0FK9HZzLLgXPVM=","translations":{"en":{"changelog":"### Fixed\n- **l10n:** Language files ar, ga and mk added missing comma"}},"signatureDigest":"sha512"},{"version":"1.1.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/santacloud/releases/download/1.1.8/santacloud_1.1.8.tar.gz","created":"2026-09-19T16:16:22.747629Z","licenses":["agpl"],"lastModified":"2026-09-19T16:16:22.840710Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"AAjFKFNPzFA+HQL9KZYcBYmFbS92ohEcWOIqv+CWswkMCq4eYNXC9m5MLv0k6n0hjvFNxM1VgAooxOm8NtMVQmn6aJI5xkta1IuK05EaELSps51EaMNgqzP3ixRmwRrw53MaQKjc7OMOEUrOaf1SeIbjLQTbSh0eJrsQ+2qyp2b4+xp/fU7Fvy4I6QwXbFgL4/cq87IgSwE6wFLiL5ivmzXJ37KilRJLIz6LEGpIjHiCB9R7fkfc6eTN1TM5BfZe4kOUpZLRXcw+TkK2rkiRV78tumErxUMvRV2y6kg7Yc0/qEeUv2hLMXXyM2GEI6UylK30m3kJ9eg1S5jTFqcCMUvmxkGTnBFcJiwjrRbotBNNrOw4KxPqHeT7vR7ukJnPfs3ZXkbahcrBTk1VJqMFMiZWp0srt1jT4P5ZD7L6+eH0sv1cW/VY+6K2vIUk5ri1o4ZUXQFsArGOSDj8XW46NVGOWMIGepiAYfRZ8M8/55PFNhR8Te20JbFU05TSQp+Eo9Ke7y09kblkC11UXkln+wqnU9Ycp3JOtctOMvg0tXHaJ0VrVTwFGX+Umvg8zfOPbJMK84aIF08f43S+2fsH6KcSsszlCyygcmxLomD6erA27zZ/ga/N1MkO2dXyp1jOUVQVWR3z0V4aFWStUXjWrf7H0i4elkpI7WYn9zk9LVI=","translations":{"en":{"changelog":"### Changed\n- **l10n:** Language files extended by additional phrases\n\n### Fixed\n- Dashboard-Widget did not display background image"}},"signatureDigest":"sha512"},{"version":"1.1.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/santacloud/releases/download/1.1.7/santacloud_1.1.7.tar.gz","created":"2026-09-14T18:05:50.130430Z","licenses":["agpl"],"lastModified":"2026-09-14T18:05:50.195759Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"DbIJxu5Eg4mEi16Qg1eLDqP3hYIf2nrOzAkYAxNj5vMO90xbn+hS5Vpq/WWYS2AlxDQ3Mv7dphYY1FlMCEp7ndGMvyq2mpFouUEY2ENZ3Phz5a29MHhDqwFn8A96PDMkucP7D7y8poBCZfysd2/P2EI3H7jwLtFhutCJ6NRnjDneAYYNtZHzfkutuIMDsBTCRGqBiSk/SlWMUV18NElRXebAbuyRP70EomQNE2RveKcluxZyxl/7dAIWCN4lbSJQAiFmvyT1FLXWC8HaZozpZxXZ+ed7ExD3cDG1mN4l8WP7R3+oPJna/hazKmBBL26N5l137ebpng3R1jte6ujStQ6yAhH8JP6jB3PubodgWXv7zJnzmAPR5Wxsi+lTxIVNgK497/CfSMI00eftbxS+wFKrFZEbq3Dix524KJ5zi8FpPyuufU3NQPnm48Wqh4u3Ipdnvqe8rD7+hnAmXfMO6IFNx0iU11K5DHqqGU/OhkyeIbZxjQqI+XeJfxSzAsx2qMKOHeA/GFQmjc4tvDS7vNda3W9A7bkfBHl/hYaGoj9IpaG2R6h3s8UJJhmWjlWGHzj1tzE1kwCRXqtHts39k37AF3kxd5dGwz/l5K/BijtSN4vt4PdhNw0GNu4q8LmJeIPC0BouLxUm1hMtNXrWsJF0+FRVTvrnvOE6oVa09+k=","translations":{"en":{"changelog":"### Changed\n- removed debug information from console log caused by widget"}},"signatureDigest":"sha512"},{"version":"1.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/santacloud/releases/download/1.1.6/santacloud-1.1.6.tar.gz","created":"2026-08-16T16:49:59.930233Z","licenses":["agpl"],"lastModified":"2026-08-16T16:49:59.989578Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"Zfq9OZ39EAeQK932XhB/rgEM67wR487xwGQzh2/qeDP13HgPgl2cipaqCLZVV/KX\nS3y5Zs8bmDEe551GXnKVcyezzdbCKgIMaJk2OBFaR1dIc2B36YszIIsi9aiJ+Rex\nH57sVUDjRcnkJsBH+ndhjfJKyTqZCt3LPwcy84PaPb5Z5Kg7clGsJP+JuIyhRDfJ\nJUOnefG7xFwt6kcnBZLMzxvGmuMkF7RBlFiXT1//0tsrwCJ1qWsUSbDCG20GRPnW\nR2ZT2l7zD+9I7aqCzivGQZ5kRFrOYlM2E7RulA3Eoz50/Xpg2w/ZABXUjorvgNI9\nxaqeOvCysCzhXqYCE+oTIc0jxPps41f4G/SlchiejoqIeqeGDmTO06bHzI2guRwh\npN7ltfiexHZMBnyRfqLtxtSakff4Mv2oi4Erlow8yx0XtA8blicdYwuZR++wEGS3\nTFxD4vmLKZqpPJyxAjXcIyzcuSvnDrY6JJZ6Y4OnfrMRbKloqgK67sjAEsDBKWpQ\nQWGJF4qVeYG/rFrvfDCTiFhHDcbVsvN5Mk5YGbPO8HVcO8z64cYNrV8XA8fhi/45\nnr4WrRMFaMe7O9lopnlBT5oY17WPGM90TFOuII8NLtls1kQjQklP8wu/tje/Wc7F\nDLjdUnmKzno5XQaZsPooxUc34wLa9XvFAfZ162Z123E=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 compatibility\n\n### Fixed\n- missing comma in fr.json fixed\n- some code cleanups"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvc2FudGFjbG91ZC9yZWZzL2hlYWRzL21haW4vU2FudGFDbG91ZC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Santa Cloud","summary":"SantaCloud is an advent calendar for Nextcloud","description":"**SantaCloud is an advent calendar for Nextcloud**\n- ✅ Create your own content for the doors - e.g. competitions, reciepts, poems...\n- ✅ Offer your customers entertainment during the Advent season.\n- ✅ With built-in test mode.\n- ✅ Easy setup via Backend."},"de":{"name":"Santa Cloud","summary":"SantaCloud is an advent calendar for Nextcloud","description":"**SantaCloud ist ein Adventskalender für Nextcloud**\n\n- ✅ Eigene Inhalte für die Türchen erstellen – z. B. Gewinnspiele, Rezepte, Gedichte …\n- ✅ Bieten Sie Ihren Kunden während der Adventszeit Unterhaltung.\n- ✅ Mit integriertem Testmodus.\n- ✅ Einfache Einrichtung über das Backend."}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/santacloud"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhKcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNDAyMTMwMTA4WhcNMzUwNzA5MTMwMTA4WjAVMRMwEQYD\nVQQDDApzYW50YWNsb3VkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n1oopdNI1o87iDYEJv7vD388NWSvD0hgxbOJ9D9q5kocI69wOr+l56UHvl7rpb3wj\nk+iMm3zA9fOW16ygZ2RGlXdqfKCNa7tAJVTWjk8SQUog6rPeabAt5dkk3bTaiMSw\nnLVfTvN2AkDvPdpoJ4JbJRkT8Y7zU6Ge+j9doFmGZwoSVu92F6yGUsMN6qj8Xze3\nsbrFsKqXv39kI9vKERjJcJx0p7EMER4YMSUnDSWNV5gHZcbULEV+p5FTAWDkgd58\nuAksTuj1cydHsrkf6q8vomxsXvYHc475ehoT7m9jJeJpO4dbCQIyTdAcwN/GuYix\nQIS9r0xpVQFmD2uZoD1JGO0eCwoKuZqsyTeJq7FiS4crisl79DyDAA0JVbNQ8c0f\nTMnJCtKyOH16Pq2pJ2YYo1pOvjNaoK1nNdjIl6QmpUI2lMZkQH5Y9yXGsEbXzYwG\nKXKd6JX0H5+gWnJNGwJzDH7qXY8DtbHyJvaUfCP7rSLcWi2FjIjFdntILC7ZmeLq\nkOF8WqfgNEXyUM7/850xuRU6InERYPNo8BHEUyKfy24jjk7/mYFbsQ4NTY3QLic9\nq2KBRm79mgHE8BS5Ni0IqSca4cZoOIRK6TnKRDesDF01KzrSbRx3S14hY14bT6xx\nj2AdIf0WwMzVx0pNKmF2VbDNRS0xlncC9LDx8ShK9lsCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAHfNS1Gr7GSax/dWdL53nwdrLhEJXCrYN+8v/HsuD4wdqCNTzQnti\nUck84h+XE1aEVlbxmcGYCegq9adwVYglp/rCNknW1I26bQrhxyRtNVKgwRxLQ441\nExZMg9MPexlSae0ySxj/4XjKGDl1jXby76FjyT7Gxfkb3u4XiVezXR2rw6zfShX/\nIb006yzcoREKkc02EbwHZJX8SN4TefWgF/qEw9SY1fHYNodMhzY3BmMi0A4n0TWd\nbn+8FyvFM37hehTWtBHKe4wiO8b6NKRzShX9F0KfdBm5oOFWfuPrP7DOh4fhxJ0r\nfcYtygzhmVfbYKrus882Sp7R+rna9XIhKw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sms_relentless","categories":["office","organization"],"userDocs":"","adminDocs":"https://www.doublebastion.com/install-nextcloud/#install-sms-relentless","developerDocs":"","issueTracker":"https://git.doublebastion.com/sms-relentless/issues/develop","website":"https://www.doublebastion.com/sms-relentless/","created":"2022-02-26T20:05:28.196544Z","lastModified":"2026-09-29T21:49:52.456230Z","releases":[{"version":"1.4.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://git.doublebastion.com/releases/sms-relentless/1.4.7/sms_relentless.tar.gz","created":"2026-09-29T21:49:52.426894Z","licenses":["agpl"],"lastModified":"2026-09-29T21:49:52.529495Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"UxWPQFyHd/2KHAa9m1ZLcAlIe6ZoXZkAjTnUiHBxmELkvsA8w+Y3SLo6I56M850d\nqxJCdPQX04xDSsMF50nVqNGSwbxnxZdTvENSMKir9U/8voou5KeBFg0fBmwA8nJr\nWGyFii3DYgdzowd6RBBoYiXJiXUv47Igp2cSShG9Y2IvjgSFe7GcZQn8mD5cxEF9\nQVzfTb9q6jzFf6sND+ipsd81Yf8IX9wrxlKOIS72sXB7LnJ1YIZIYnQvwFU+VBso\nUHjw+caTWF4redDeMpMEXv7/T09YTYefwV3X8hZx7yMWOJU9EZmu5hqoKHPbDRrY\n063Yaz0SVikWCslTC5MHXsn7uhUDkAo5JeGjlqy0kybj+HlHHDdd/Fdguab9FcDo\nyTV6/lIGgvk3b55GHsl1L4icEkO5LoSfJd9hnp26dyGay6UrIKTYkhfC6d1rVoP6\n74oGr00lPDP/qZXF/MNHF7hKi+Hr49ojg/QdeE5a5o2IzBS++HSsdldyV1vIsL4w\nfKU3kKa7mc3qls7JrUcM99WTM4xpmbuO8RQAG9mDFYmM9HdKhmlJDk9o0WdnSmdl\nGzO+S0FTdxlDJna40okY/Px8z2IXz1F6qyRVYpd3iaifnli9NCWdmc2SYCxHBrDv\nNNJakRJ8Edtrf+xohOAJbkRWOAt8PjCR63RpRGFLdmg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX3NlbnRfbWVzc2FnZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX3JlY2VpdmVkX21lc3NhZ2VzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL2FjdGl2ZV9hcmNoaXZlZF9jb252ZXJzYXRpb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX2dyb3VwZWRfYnlfbnVtYmVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX2V4Y2hhbmdlZF9tZXNzYWdlc19wb3B1cC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX3NlbmRfbW1zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3Ntc19yZWxlbnRsZXNzX29uX21vYmlsZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3JlY2VpdmVkX21lc3NhZ2VzX29uX21vYmlsZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuZG91YmxlYmFzdGlvbi5jb20vc21zLXJlbGVudGxlc3MvcmF3L2RldmVsb3AvaW1nL3JlcGx5X3RvX21lc3NhZ2Vfb25fbW9iaWxlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"SMS Relentless","summary":"Send and receive SMS in Nextcloud","description":"This application allows sending and receiving SMS and MMS messages in Nextcloud. An SMS/MMS enabled phone number acquired from \nTelnyx, Plivo, Twilio or Flowroute is needed. Detailed instructions on how to configure and use this application can be found on the 'Admin documentation' page.\n\n### Features:\n\n* 🚀 Use one or multiple local phone numbers in countries of your choice, to send and receive SMS/MMS messages with your browser, on any device connected to the Internet.\n\n* 📑 Sent and received SMS/MMS messages are stored in the database per sending/receiving user and can be viewed in paginated tables with filters for every column.\n\n* 🖼️  Up to 10 files of various formats, including jpeg, png and gif, can be sent as MMS messages from MMS enabled phone numbers. Files included in incoming MMS messages are not downloaded automatically. They are stored as URL links to the actual files, so that the receivers can download them only if they trust the senders.\n\n* 📔 SMS/MMS messages older than a specified number of days can be deleted in bulk with one click and they are automatically archived in csv files stored in Nextcloud, before being removed from the database. This makes them available for future analysis.\n\n* 💻 Sending SMS/MMS messages to thousands of recipients can be achieved by uploading a txt/csv file containing the recipients' phone numbers and the same SMS/MMS is sent automatically to all. The time interval between two consecutive messages is configurable.\n\n* 👤 The Display Name of Nextcloud users can be prepended to their messages, to make the origin of messages clearer.\n\n* ⚠️  Admins can restrict the use of specific phone numbers to specific groups or users.\n\n* ✉️  Auto-replies in 'daily mode' and 'vacation mode' can be configured for any controlled phone number.\n\n* 🔏 SMS/MMS messages coming from Telnyx, Plivo and Twilio are checked for authenticity by verifying the SMS provider's signature.\n\n* 📧 Users receive notifications in Nextcloud and (optionally) emails when new SMS/MMS messages arrive.\n\n* 📄 Each sent message receives a delivery receipt displayed in the Sent SMS Messages table.\n\n* 🎎 Messages exchanged between pairs of numbers are organized into conversations on a separate page where each conversation can be viewed, tagged and archived.\n\n* 📞 It can be used with regular 'long code' (10-digit) phone numbers, but also with 'toll-free' numbers and 'short codes'. Users see a list with their current phone numbers and can set them as Sender IDs. Setting alphanumeric Sender IDs is also possible.\n\n* 📱 If Nextcloud is accessed in Firefox for mobile (version 123.0 or newer), it can be used directly on mobile devices.\n\n* 💵 It allows checking the current Telnyx/Plivo/Twilio balance by selecting the provider on the left panel.\n\n* 💰 The only ongoing cost is about $1 per month (depending on the country) for an SMS/MMS enabled phone number located in a country chosen by the user. No contracts.\n\n* 💸 Low prices per SMS: starting from $0.0040 per sent message and $0.0040 per received message (Telnyx), or $0.0085 per sent message and $0.0085 per received message (Plivo), or $0.0109 per sent message and 0.0079 per received message (Twilio), or $0.0055 per sent message and 0.0040 per received message (Flowroute) in the USA.\n\nWe have no affiliation with Telnyx, Plivo, Twilio or Flowroute.\n\n### Documentation\n\n* [Admin documentation](https://www.doublebastion.com/install-nextcloud/#install-sms-relentless)\n\n### Donations\n\n* 🎁 [Donate](https://www.doublebastion.com/donations/)"}},"isFeatured":false,"authors":[{"name":"Double Bastion LLC","mail":"","homepage":"https://www.doublebastion.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhG8MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMjI1MTYwMjIyWhcNMzIwNjAyMTYwMjIyWjAZMRcwFQYD\nVQQDDA5zbXNfcmVsZW50bGVzczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBALbJJdLJIooOqb46AyOdNlWR9LXm3hWzjNBkH0o8wtMFEnotUOLcbaXbmTun\niG0Q0eunZGLSF6in+kY5M420Jh9bbDP6bYI8iDG6CSDkmKgnfcdJRlB6i7g0qBG8\noMzOB1x7ZVTef8Ho2ylTMWCxCfTlcQ15okAUpLU1G37I5rg0DZH2fPdGs9PMg11a\n64Tofl2GJSf9aHsgLi0AXXVzSN/96wmK2fJYBqTVsPo5qIqKtMVWduhDXsb9yT4q\nDMYzyHrr8ydrMSGPwfs940R00hG2qHJcuKKGjYCCtu7djMfpKA9fqsGZBE6IWlVH\nCZxYIHPaEfHOybPR5d2GIKzncUQjtO2/9rsju31GwzrVswG7w0tQUIIaj5AFLIL3\njnagjo2LH11ta9mB+DikaZDfd4VYEEfkTJA4BjnNCDa9pYOaFBGGwJMBSH3eWJCZ\nURBtk2NBnIheFRaGWRAzUpKAc+ZYdnmuAqe3Eh1en9GNlKTMCO+mAHkFJp3z8Nai\n1ijEVK+PIgtrzqc48ft0r6L43Zd184JnSIscBm/9GUb0sCf+Uv4WFBKm4c7nrWtM\nC1LMKqmj2OYD1fZJ65M1VrkAqh8VXNtqQI1caBGMkcs4//1eo/XomL6sEkvfa9Y2\n1OywnVt52ZeLHyUS2P1mvPyWZgL8AxIie82Mtp7ZWX9Q8ubbAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAI6OdKpKpevWVprPZ1TzUpq5ATj2JyCZySYC71Ud8l3lAEmn\nuh9ok5P7ccY/c/9/ePWuvGxNSHmk1+nEEWC8XNXY5OoU9+i+g7vXd6EKOsowallw\nvWZB2rjl6+eNC/AVa0NE2d9C6AWZtLxiV6rVsmkNUbBS6orHq8JJ2PSJKPT0/nfM\nWL+ZORuFguWazEsy9oZBlplaWNxyAgq/L66SKXynQPe74kZeVdZ5aQluHnBKZAoh\n6v0c2YiaoG5Mg6tDWcx4zM8HXv39Nbg2hcAtP2j3F9EkHZaytW9nM7nTIOxZJtR/\nuGJtkj5+e1NQaMYn2NDiYSZALGUQ3YkHv4OIzDY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_photospheres","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_photospheres/issues","website":"","created":"2019-04-28T09:42:04.105033Z","lastModified":"2026-09-20T11:37:04.571299Z","releases":[{"version":"1.35.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/files_photospheres/releases/download/v1.35.0/files_photospheres.tar.gz","created":"2026-09-20T11:37:04.538500Z","licenses":["agpl"],"lastModified":"2026-09-20T11:37:04.621899Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"hP0ziMvQqmfUbhuPyUV4MKrDgIAhezBPa+Y8WzDcqh6HrKteeD4uD1O1N4+s2YP0/9ozeJKmClE7ScFE2YEfAxKONVceTueTEbTllflnl5kcgwR4Q0tP0ofFymVgNX7jgeKsUNNI7Ao1a3vOxAKhf2cSBTZd8IgjI8FoPabnh3Dku7MgEy1HcrO5xFYTMwLCh44ttX07cSLra8+yR8OUe0eb9/WE4Hp8Dlpa3bfKGI1DZTKRPYsKVg8yEOjeJSLOUS5qwuqgv1E8mxkhYaXYfPEG7f77ks4S29pxW0DluU3CgIKYSnaeJcctMt1aFhqeuXfRPwf9ha7Ibq9VL1Ed1Xon1839JF2cVG0jywNQTrnb4AteGoxPVyu8bLf1GcIAdhx9vteNIARC9domyqRbACbeqgYzp/tseCAX8r0C5nkIbgPxooU9bfsmiO4WbmYOVU+xI/vw5pLNXXY5UMGkykaqlx12e3QFH23rIPAUABMoTzRTa31EGCkNa7sstntAattq74f6L2fCxTGT/65qGitZUb2xUTGvekz533mzrZknqZcnxwbD9BAmguxTUNNwX31JY7fOUW2W0lZ21kfR98WTUySPRO4CLexZAgd683lJtA+2qlkFtxe8T137mcxyhzxvSEJSrwF42BKisSnUeyS0mqFrt7fC9lL+9qgYyTA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTk3MzA5NTcvNTM2OTQ4MzUtNjJhNjhhODAtM2RiNC0xMWU5LThjNjAtNGViZGMwMjU2NmQ2LmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Photo Sphere Viewer","summary":"Enables viewing of google photosphere images","description":"Enables viewing of google photosphere images by\n        integrating the photo-sphere-viewer.js component\n        into your nextcloud instance."}},"isFeatured":false,"authors":[{"name":"Robin Windey","mail":"ro.windey@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhDfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTkwMzE4MTMyMjE1WhcNMjkwNjIzMTMyMjE1WjAdMRswGQYD\r\nVQQDDBJmaWxlc19waG90b3NwaGVyZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQC0Bra09wI5zTG/pZfAX2MJ/ZYWl3VgKF9eZxWiOw85I0fPHeQ/+DY6\r\nidgJUNYthJYIkXk6UunPJT3F8ls1RMbktX48xu2b1nQZdfnEaNaMXY2kZPIS1a3a\r\n4zFOs51AWMuMGClbtxGwQXB/VAXn9IvU3zAWlbZD5VhRHXAhNpgdRzpvswOqjM4e\r\nhRRR6lS0WLEFpiTFrGvetN7Ql/4rKlCt230hv17jaB/qNiwuEl5Q2H6ejhvl56NX\r\nhahpzk/ppweFkmFXffNlX482u6N5KA+ezilDceEfuFjam8DY/fowvFwwM1LSnFUd\r\nrGEk/I2cqTAnB4RAsps2PoTdYD1AUUkgG5WHpn3fWxIa8pbqMo1BsskxDHjlHeGY\r\nNlMmNqCoe4F/GJKByiWrsfXNUjyif5hiehxP0sOZwuKngtaM7DzFcyb4qZuusAX5\r\nBWKSW7f4omQkdUMxUGWANo0I+srqp0L2MftFAAGhmixmlKxxXyTSuOhXtrP4VTCR\r\nLVXQsFo1eNIlaEB2o7lwch5G0mFekSpZB7b5/Ve0EzGXUgP8n34xrmwtwUDQHLxM\r\nqV8fKUCR3Ue4wD699ocYVM46othw5FXUen0BmJW08WsWvw7/hcAlV61wS2p7IeSP\r\npPBRk0vKDa/dAoY9NRkipcRKLkChpVvRI4v05k09ZQBFkwU9IknNGQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQCSgmVfKYdrOgJenGMA9bRtuLjQLSHICEZ8kUUqAdvN\r\nxevRlMlIofvsKUzeRvycle4IYH62aq5GwTJHU8Ia5SSGv+1rioYEP2w9lmUbBKxA\r\nh6G0uqc6iQWUrd/Zfmtll1d8R5ibwQCmMbWe4HzAuB1MmX8I6TbCI7J0AcPymD1N\r\n5OywwVqKPyy9h7ogCXEu51dbRGFDxnqz6gyItmyKobmQL6fF4VcTAt2Rk4MkRiH8\r\n4/C5KgAinA75ZA3deCiNRbBrgzf8dsbc8M+glMgLZSHI4p8vNUn15ucHNY3fyLu2\r\nPWotpYxo8fVBrwYwDa20BjPuJLuUxC0mw5AstjaOA4q3\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_mastodon","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_mastodon","issueTracker":"https://github.com/nextcloud/integration_mastodon/issues","website":"https://github.com/nextcloud/integration_mastodon","created":"2020-09-02T09:39:36.139697Z","lastModified":"2026-07-31T11:28:08.292082Z","releases":[{"version":"5.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_mastodon/releases/download/v5.2.0/integration_mastodon-v5.2.0.tar.gz","created":"2026-07-31T11:28:08.276830Z","licenses":["agpl"],"lastModified":"2026-07-31T11:28:08.330058Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Q97AAKJIaCBL/mJGnvSixMI8t2m9jvFH1R2KtRRP/EBo3HYwyIKYT3H9duvUsBhlAud9DNZE2gW8in+i1yDwm29hXdBzD5g7KJ/YmWVR/4QMKPZyVqqEMZyZVcEV/p5ZXB/yaK9PVKxpHpOTe4CQBUSUhxMCZuNKV3KqIcnrDVdFU+sW84cRA691CP3WkuNBz2pHr8JfAOcH8fCBNl9L2avKbpNrJJmCX26gl2Jy3ik23OCdtHPhc6OiLvPsoERd3w2DW5zhRX5r93L3ylrhH9oOSDtviVELkcMW1eKy8uzfb/X9VzVlTxj72nX9kz2c1xKm4tAsk1JsUUo2grJPC5u9imcefFUJjn0mjYzkazmeeYvggzvOXyWLgjFk9w78egWZoRGmXb//CccEUGgyabhE99/+tgvDDr7V4flqVQMMBmDObbhdzn84lTtGPjykaIpY00CguWWaSl6gjX7AVNQUu/Ist9PFQdsnFfonXeC+Rucp74kQlMTTMGaseICK7gdDM4tCjFoVb++Wd0pJiUGTWgtMdIzlKZOAUDp9KiDcOcwr5ZEk0FqxJfHERnfoEP/o0ziF8Q6lOZxILPAWh2geVSnVsko5tgS0i3Suhdzk/gWrwDu1B96BhsPwmj+D/0QvvwT8TdcN2Gq4jic0EKHqrmDTRtAtq0E+Dju/J8w=","translations":{"en":{"changelog":"### Added\n- Support for NC35 [#188](https://github.com/nextcloud/integration_mastodon/pull/188) @janepie\n\n### Changed\n- updated dependencies [#188](https://github.com/nextcloud/integration_mastodon/pull/188) @janepie\n- excluded venodr-bin from builds [#188](https://github.com/nextcloud/integration_mastodon/pull/188) @janepie"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXN0b2Rvbi9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Mastodon integration","summary":"Integration of Mastodon self-hosted social networking service","description":"Mastodon integration provides dashboard widgets displaying your important notifications and your home timeline. You can also post a public sharing link on your Mastodon profile."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhFyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyNjM1WhcNMzEwNTI0MTkyNjM1WjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl9tYXN0b2RvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBAN6zMGrb+n+g2bdHM1VEfkAB5GGW9ihLU3+EaMbXjXg373zIIJKM\r\nfSQxlbrLWrpi0mnYwPp7vnr6G5UdIbnRA38T1DPx8j2YpvJvMVQdkdGwbd8BGiGx\r\ncfTSxsPM0jgA1ZS9+RT4nlr43hGpuxLgRXPMNeEyU/dmAmSsDhv2bcoDny73PzXK\r\nrLU4KPHzHnbWAmu0vujlmFM4kX30bRi/6KKNX+dKgDbnyfvaEe0mnmElL+ySCTqM\r\ngKStXKCOhd69aHzvi2bZKDwVHpNrpWsdISeViaoJfhbUoeBF26ve6vhz5ZxVp2My\r\n81pqJbixoXrBP1DJGrvRTWU/68pXFqoLlJjbNNObdrtc11pV6LxkAaAOboUwb9QN\r\n55/OoWUN2pXkgjIAP6kc8tIVU7JoI+pJR1uGG9JLUeBKzcahJ3int3+ZexoD7Zq1\r\nTYCtDbA0NWEGCfZgcUNFVowVs40d3fKvBNiT6Nl63JiVmQOYG97NQoSaHG2Ie8Eg\r\nDh7ZXU+OpmWq+jzupPAUTAA0Ymz08xxkLN3iZC7BbH/AKzIpGu/eqkNPBQWtc6if\r\nunFBqxmn3shoA+Z18LL1NBK22afF62hXYpLlD5IqqutrQo3Qfx6YUOPKXMTyApMC\r\n39S1siE/uku3l6QAQIjw/5/6NuVs9e8evVqs9NdC8xu/nc1kvRu6718FAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBAJsZogGDjA4TOb15nMiQfvgPkujuCnOyWRAOMkqs\r\nKgEwz5c8u3Q3q9eJ7XLP97Po9ASk9/edjwProEqdE/j38Bl+L/8cLz6eX8hUQSbj\r\n2ET/T1QfxDCJm58TSKJQjEIi2hAbMcQj1/lXG9dxic1zeuza3tqC/IBDsTSEXDJM\r\nJ0p6ZgALOCcLd7mSFV0nvYlXmcyh6iOBVBojXqu5ow0u1Y5P+ricUzBuUaOsB/rj\r\nFpZW7Md6OVGcNvvX0n+kUvmgcKtNMnKzhYXyWxq55dQcvdsOhDB8hWdzzXJxhye9\r\nKCULDDws7XNJj2eo2UEyXV4wF0y6ivTd8sFtoRYTa5zOh3o=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"whiteboard","categories":["files","office","tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/whiteboard/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/nextcloud/whiteboard/issues","website":"https://github.com/nextcloud/whiteboard","created":"2020-05-29T13:57:44.065598Z","lastModified":"2026-10-20T19:44:05.227066Z","releases":[{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/whiteboard/releases/download/v2.1.0/whiteboard-v2.1.0.tar.gz","created":"2026-10-20T19:44:05.161153Z","licenses":["agpl"],"lastModified":"2026-10-20T19:44:05.265834Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"aFNnEI67pk1jEbC8eOOfoo8OR2ttxt2DycIMAUx7cxsfTH5YfVCeMvP72LnJqNW8iEssOK9iHvldueyUMlS8GgONjK9NEcG80SI4iStGLKSIw8lJUNH8KwMlE8qbbbtgqegyn0Aan/YtURIxSZ7iszFPEnUt5HxWKp1ovyuH3QAYCerOHp3N5FGXeqlwqb/e/g574kEWHwBZAUAtI1nfXmQ9RIH4dVXYOYj6mHhwKhFymfWFNhcsrwjLZ89C607dR0J4Zkx1heMYW81q1P3QRcxcN7cr0/AyJAq8ICLwfBV1THqepIIojtbRja8OHOjDls2VQMUXHdlRXsn2iWEi9eVsc6cxOOqPEGsBo9vdksue3OEoEWtEFZtEi9/OmRRuD9Bft40LPcgqiVGcC/pJadFrZCJ5n1v4eoXI/2TuxewnsZ86owQ1fcqKvFC0nSyGiIgD6FcpIwPj4ukWR4yQ4C1AsyrmxRCE6qR1Iu8MHLyB56bDkw8TZjmd1bPyXj9kd50UpHxLu7iMcxRsb+r86kGqWKpXJhvgctVh45M1g3VUPPsl4k6hBU08fGwP9N+u83m5C33H/lk0Uorz323tuvzcN9lMq8sINlDGZQxktu3XQZML9IH8Z8BOxulZtso5KScfv130eJ2n4GTtgwE7H3fm531qbvVv1zrswOUEZSM=","translations":{"en":{"changelog":"### Added\n- Support Nextcloud 36 and open whiteboards in its viewer by @skjnldsv and @hweihwang [#1374](https://github.com/nextcloud/whiteboard/pull/1374)\n\n### Changed\n- Keep the viewer out of the websocket server image and the build output by @hweihwang [#1409](https://github.com/nextcloud/whiteboard/pull/1409)\n\n### Fixed\n- Stop blocking the UI with the final whiteboard save by @hweihwang [#1402](https://github.com/nextcloud/whiteboard/pull/1402)\n- Save comment changes and keep saves in order by @hweihwang [#1408](https://github.com/nextcloud/whiteboard/pull/1408)\n- Keep a newer local draft when an upload of the board finishes by @hweihwang [#1413](https://github.com/nextcloud/whiteboard/pull/1413)\n- Hand saving over to another user when the saving user leaves (needs the new websocket server) by @hweihwang [#1412](https://github.com/nextcloud/whiteboard/pull/1412)\n- Leave the room only after the board's last save by @hweihwang [#1416](https://github.com/nextcloud/whiteboard/pull/1416)\n- Keep the table content and lock of the element that wins a merge by @hweihwang [#1414](https://github.com/nextcloud/whiteboard/pull/1414)\n- Save where an emoji is dropped by @hweihwang [#1417](https://github.com/nextcloud/whiteboard/pull/1417)\n- Show organization libraries in the editor by @hweihwang [#1401](https://github.com/nextcloud/whiteboard/pull/1401)\n- Restore the library menu hooks of the Excalidraw fork by @hweihwang [#1386](https://github.com/nextcloud/whiteboard/pull/1386)\n- Allow the collaboration backend on the admin settings page by @steevenraw [#1384](https://github.com/nextcloud/whiteboard/pull/1384)\n- Do not log the Redis password by @bakiburakogun [#1316](https://github.com/nextcloud/whiteboard/pull/1316)\n\n### Other\n- Update dependencies and translations"}},"signatureDigest":"sha512"},{"version":"2.0.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/whiteboard/releases/download/v2.0.0-beta.2/whiteboard-v2.0.0-beta.2.tar.gz","created":"2026-08-25T09:40:45.796832Z","licenses":["agpl"],"lastModified":"2026-08-25T09:40:45.991947Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"WBeIeJLKgCw9O/hYjv9iyE6g+mz2EB/GdVzNJNf8UvjQuRs8rFVTKPDVzzzeCaJ/aq1YH1BhGrZ2Fx+EUVmecZUjOPMMwMXRqTEkfk4ws9LuzK1bqT4AQ6lSko69xNH02+uXpP36aFz8ltuPQ6wO/x03YCKBlqRK8RACrciSHeC3UtNcZdVxSPyhks76xu6wxPRH/74bQuUAwQMDMfYOjP94ZRudMMNFVb8Ax1zijYaGiDRyqrSxnX+soxvBTGtqDx3YBD+oFoDjPc1oAmwSKS2FBu77lhmshZezXm8uDAcKd7uBGw6BQl15WLzPcZko7Fwz7RRgdmGsY8To3J7Hp/ecpUmgmOuYr0gUiNJUg7SUXLX+4bLiUrq5nGFpet69v2M6htjsnxCxUkFxs5MhmPYErKu8ZYGkM9zOEhTL4Iae3piB9FCh3gkSdzkwWRFlld8SVqhnp7i0LCui3fp2GNJn4blKLCkWg+kw8M79X83Is1SHAqrohmfBE7NUnR7/zyyRB+LwefnH9qhSDvSp9DB2J4H03g+HdBQ5xbMPSKY8eMIcbUIP1RMJISQ5Y8n/tcdGuJV5o3gR2gCZXk9MTtpc/lZNc7Q2oMZBZ82OIubNesQFdNEc5AZ9rDD2lEnMYdc51x1s8yhLIKRVz3uUMvr9hNUQXvAJ8y+jpC9zZAI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/whiteboard/releases/download/v2.0.0/whiteboard-v2.0.0.tar.gz","created":"2026-09-16T09:45:53.004940Z","licenses":["agpl"],"lastModified":"2026-09-16T09:45:53.146263Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"bEjyI7erVUteIjpPvSvIvFCl7qhWoybhKiHMuxK+OGbH13kUw9NxH10dIoRGtI0F3Lc86i31tVnmr9yLLKQ6z86Y3mxQ5wZapmhZJrei/EccTAZLeYg5eJp/nAjvr0jtkB8Ierja3VEoz6ZzA6HIOCpP8CeptY615ZHDelerxcugYTAoIMiPjriEWsFEuOcGbQd5D86KQHNb/8t3q9lTGbnL98dK9jhlnToyyHW5J+v+ZBqsbNeETwjN1sPhphjwy7U2K2T2QlvX3QJbj38HN5yDc1cneb361a3fukCbaT9vPVm62xIKJNDKJAQ3s0eQqBSwTmQAtB53i27dwby0+akZRbms2nOiXgswtjdUEld0CRU8N09h3jcSwV/vkfrY03FQCfL4a11yF0dgeDvK9ofTnOhDAfql5DT+p1KSWru/Kf0+GuXUCxAFw0GyelaGKhhywcTbIHf2ta+wumQOW+X4IJ2k9jtXY+5KAuqcTfLcLPZQNHHH8Vaz3WXKIJb/RkTDdEbRn+743DceKqhoCA3D7MA9Ppq7VuCRedxuFRiLcNaQ1hlCKqL/7vgkIvr3EbRkylgOb4jbX9rKp94YkI6wgjXs1r+MdffydORGCklbvIFr+9f3iRg5fr86AfHgvpRZA7fTrIKDiKAtgdUvwswv6uxe/8ei5I02jSxUfYA=","translations":{"en":{"changelog":"### Added\n- Add whiteboard library templates by @hweihwang [#1176](https://github.com/nextcloud/whiteboard/pull/1176)\n\n### Changed\n- Support Nextcloud 35 by @hweihwang [#1314](https://github.com/nextcloud/whiteboard/pull/1314)\n- Migrate to Vue 3 and require Nextcloud 31 or later by @hweihwang [#1265](https://github.com/nextcloud/whiteboard/pull/1265)\n- Mark the JWT secret as sensitive on Nextcloud 32 and later by @CarlSchwan and @hweihwang [#1322](https://github.com/nextcloud/whiteboard/pull/1322) [#1340](https://github.com/nextcloud/whiteboard/pull/1340)\n- Use localized relative timestamps by @benjaminfrueh [#1252](https://github.com/nextcloud/whiteboard/pull/1252)\n- Add OCI standard labels to the Docker image by @Erwan-loot [#1205](https://github.com/nextcloud/whiteboard/pull/1205)\n\n### Fixed\n- Hide image export and screenshot downloads during DirectEditing by @benjaminfrueh [#1224](https://github.com/nextcloud/whiteboard/pull/1224)\n- Tighten whiteboard collaboration CSP by @hweihwang [#1263](https://github.com/nextcloud/whiteboard/pull/1263)\n- Wait for WebSocket initialization by @hweihwang [#1275](https://github.com/nextcloud/whiteboard/pull/1275)\n- Protect creator attribution by @hweihwang [#1289](https://github.com/nextcloud/whiteboard/pull/1289)\n\n### Other\n- Update dependencies and translations\n\n\n### Changed\n- Support Nextcloud 35 by @hweihwang [#1314](https://github.com/nextcloud/whiteboard/pull/1314)\n\n### Other\n- Update dependencies and translations\n\n\n### Added\n- Add whiteboard library templates by @hweihwang [#1176](https://github.com/nextcloud/whiteboard/pull/1176)\n\n### Changed\n- Migrate whiteboard to Vue 3 and require Nextcloud 31 or later by @hweihwang [#1265](https://github.com/nextcloud/whiteboard/pull/1265)\n- Use localized relative timestamps by @benjaminfrueh [#1252](https://github.com/nextcloud/whiteboard/pull/1252)\n- Add OCI standard labels to the Docker image by @Erwan-loot [#1205](https://github.com/nextcloud/whiteboard/pull/1205)\n\n### Fixed\n- Hide export image and screenshot download actions during DirectEditing by @benjaminfrueh [#1224](https://github.com/nextcloud/whiteboard/pull/1224)\n- Tighten whiteboard collaboration CSP by @hweihwang [#1263](https://github.com/nextcloud/whiteboard/pull/1263)\n- Await WebSocket initialization by @hweihwang [#1275](https://github.com/nextcloud/whiteboard/pull/1275)\n- Protect creator attribution by @hweihwang [#1289](https://github.com/nextcloud/whiteboard/pull/1289)\n\n### Other\n- Update dependencies and translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC93aGl0ZWJvYXJkL21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Whiteboard","summary":"Whiteboard app","description":"The official whiteboard app for Nextcloud. It allows users to create and share whiteboards with other users and collaborate in real-time.\n\n**Whiteboard requires a separate collaboration server to work.** Please see the [documentation](https://github.com/nextcloud/whiteboard?tab=readme-ov-file#backend) on how to install it.\n\n- 🎨 Drawing shapes, writing text, connecting elements\n- 📝 Real-time collaboration\n- 🖼️ Add images with drag and drop\n- 📊 Easily add mermaid diagrams\n- ✨ Use the Smart Picker to embed other elements from Nextcloud\n- 📦 Image export\n- 💪 Strong foundation: We use Excalidraw as our base library"}},"isFeatured":true,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBTCCAu0CAhJpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQwNjI2MTYyNDUwWhcNMzQxMDAyMTYyNDUwWjAVMRMwEQYD\r\nVQQDDAp3aGl0ZWJvYXJkMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\r\nsfJxjXT9thUv7I4E5Bqa//95kAxfvy4BA5WvtfjFmxMkOYYF+shZS3e1gKwx01Gy\r\nZyJ/AVpm9EWMvIvFsYTKCB8L4gJSVVy0evdCh/E5uHbnmXtfiry0P/l17CgXSOZ3\r\n/oNp0U3vhI0Wt3rnpSXssWKo9e08HP5bXKn0QBehh70YDntGV1dewTofxUJpGfaP\r\nIoadSAPVUdCbsUGsLUj/PFoqnrJMUyDNmHmuPq5PElxtgBxnUyI/EevOxdXaO2pc\r\nQ5lESt83yLoO/dqke9vWsMNilnGPpdQJvgGwPPuI1GtXDC0I6dOSiC3jXZCLcjOD\r\n5MCvCeYudVPfzmHXEKTbUlnkFBMAoxBKepYlFJwPfW9CRj7i77Y51oFAsWt72uhK\r\nX6kji3eVYac85YcorWvRSgiYvDkyXZ6grLNTaz3Ed6YOvRZGcSEeqlFg3WzbN46q\r\nkpR3ns7+cKyKqm+Yef0BedWBPu4fCxJcgGZBSFb6eUZZ6wbSVdt9FYhYhQlC3TbK\r\nvLMHMlDqilgnjGBoJPj6ExPyZTdYmqHqJ3N/DeuArYSKcuK2kqzzo9uZ6ebBdcX+\r\noMGj82hhD8FPqbGOKc/hXoK3jfXMmMgAbvfAEZAJVJYjM8zeIEK+rckLS2f4MgS9\r\nUw24pZIvYwrS+Xj6fEhOCTZnfS/djZdZxSQRtdhU9qsCAwEAATANBgkqhkiG9w0B\r\nAQsFAAOCAQEAf6/nz5ZihKL0mIr3O51GNKl1TzWZDYNNJ8Tvwr6GQpH/V0wKu8a3\r\ncBdUkkQk8RqwrK+Rdom8/39Tf07yYP9McVx8XjYirja/PU29rFmRb5ixtokODmeB\r\nuYYJ2icrm19zEa7QzHj2UWGX4YgnGbsP00c2acjoOksHowSQHieo8FVZEh6q+Xu/\r\nZYq97ICft6SqbvsRuDb76mbXy0OcnwLo6veI4YOMIZ6ZweOhfdh3eLKBsuJuw9RO\r\nzXYbv7vmouOWSPItOSViVweHOPNqdblx+XJkCftYFxzaQ4JZUnFZMMbA8XlvO+/g\r\nUWOPHPK6EYZxGt+IOL59mpTqRRtRcSwcZA==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ownershiptransfer","categories":["monitoring","organization","tools"],"userDocs":"","adminDocs":"https://framagit.org/framasoft/nextcloud/ownershiptransfer#usage","developerDocs":"https://framagit.org/framasoft/nextcloud/ownershiptransfer","issueTracker":"https://framagit.org/framasoft/nextcloud/ownershiptransfer/-/issues","website":"https://framagit.org/framasoft/nextcloud/ownershiptransfer","created":"2024-08-26T14:32:38.110847Z","lastModified":"2026-09-14T06:16:23.442975Z","releases":[{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://packages.framasoft.org/projects/nextcloud-apps/ownership-transfer/ownershiptransfer-1.6.0.tar.gz","created":"2026-09-14T06:16:23.423040Z","licenses":["agpl"],"lastModified":"2026-09-14T06:16:23.494464Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"J3i63d2UTVVf8tne5pvcqcaDJjZ2lvSCisnGLDLwZc8Kf1o3nwQYmUCWiNoRflDJ\nlczAPRVw7+Ea1EysXvT/XufghP5kI4GjL1rqcy+LbLhVgo3RamOvz5cGsBZmi1K7\nlbo7YiD1FdRaxfjz+FPqvf/yJaWww/wVTH9jEbX7U+MDHeGUwZ7y0jP0fosDwgSW\nM20dMGoJ6nrdVMHs8JyBMHo6GLsksV0BU8Xw4EAVdFjvza80n4TEt1u7G0jLZ8ZX\nRB4Nr6+6ojTK/KgHly7scBqeJoU8ANZ4k8sHdQpdOK3wZ53wxhULsyKgyxZumV7i\nUYcaiiGPAn4ksQBFWS92W6afs8vn1YwU5AUiylFkRWmLmR9vCFNUwvzB6alkkbqY\nLov+/oki+Pv/gzrToZmOH23zFTBisqOiXadhkYjY8ObmZV0Jf7RiNXQKYY/GrrNJ\n3iO3KOaGm+ia5n0MVKyaIuS9xelBZQqui2s5expPD8u2CjGhUoRejDFcfEJN9cTM\nbVv4xMQVX8WuT23Tx+PXmjvsDN9RlpP2pbngOP/ngBCAafsYIdJ0FI1yKF3bptlG\ny540svImVbWmjZ/yXI/ndsDNFTY5X9YuhiNNOEcUwMi/gEX1fS4LTCSOkZ9uqqpV\ndkoAH7FexJ5NIv7G5+dSomixyWV+4LBpXBk+4eg703M=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Fixed\n\n- Missing keys in the share access list of a file no longer raise a warning\n\n### Changed\n\n- Dependencies updates\n\n### Removed\n\n- Support for Nextcloud 32"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L25leHRjbG91ZC9vd25lcnNoaXB0cmFuc2Zlci8tL3Jhdy9tYWluL3NjcmVlbnNob3RzL293bmVyc2hpcF90cmFuc2Zlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L25leHRjbG91ZC9vd25lcnNoaXB0cmFuc2Zlci8tL3Jhdy9tYWluL3NjcmVlbnNob3RzL290X2ZpbGVfZXhwbG9yZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mcmFtYWdpdC5vcmcvZnJhbWFzb2Z0L25leHRjbG91ZC9vd25lcnNoaXB0cmFuc2Zlci8tL3Jhdy9tYWluL3NjcmVlbnNob3RzL290X2NvbmZpcm1hdGlvbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Ownership Transfer","summary":"Transfer data from one user to another","description":"This app helps instance administrator to transfer any user's data to another user.\n\nAdmins can transfer data from the following apps:\n\n* **Files**: transfer all the files or a specific folder\n* **Calendar**: transfer all the calendars or a specific one\n* **Contacts**: transfer all the contacts or a specific address book"},"fr":{"name":"Ownership Transfer","summary":"Transférer des données d'un utilisateur à un autre","description":"Permet aux adminstrateurs d'instance de transférer les données d'un utilisateur vers un autre\n\nLes admins peuvent transférer des données des applications suivantes:\n\n* **Fichiers** : tous les fichiers ou un dossier\n* **Agenda** : tous les agendas ou un en particulier\n* **Contacts** : tous les contacts ou un carnet d'adresses"}},"isFeatured":false,"authors":[{"name":"Val Jossic","mail":"val@framasoft.org","homepage":"https://vqlion.fr"},{"name":"Thomas Citharel","mail":"thomas.citharel@framasoft.org","homepage":"https://tcit.fr"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhJ1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwODIxMTYzMjE4WhcNMzQxMTI3MTYzMjE4WjAcMRowGAYD\nVQQDDBFvd25lcnNoaXB0cmFuc2ZlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAK9JmzTlQRsR2qOkAttyTcamBOYOKLdrjcRFghd7tSS4fn8NAZ2llp0v\n5ER7nLgllQCzIehBvzf3ud5+Q8qYwVVvXCBLwks130jutm3M3wytpyDrEyVVEyy5\nso1sS8pTj1w0vUDytz6j+ddy6zijvRj4rhaHsM6HfomCpO44L8P8BqSu/Us9eiVk\nZpWAAyb6o4/Qc0/D5OWZFJFqoEp0KhHQiLIKfTMxd+vPzT55sWZR9J12xtIKGrjE\njkSvVhWaeG4iyrmGiCNbR8fWu7rEffqQzWgDwcXKtiK2cQp9TeWK3FcosAtCIjmg\nObRHDwgPhVeOyAA+JISc3eX/S6Z3QBslRiAjf9gNtEy8WII29lMIAdV1JnBcz0mi\nu4YZzrX+LBde4pvr7Hz7Q4/TspsqKoyG308lmuI0U4st9pQwib5D/fr8HHEeVL6A\nQg1InfPeHQKOsLpZLALWqUSgWPHtF4QGwr9DDYsZn3o38nSG5f4q0KhMoG8M7ATK\nILp2kEpaKDAua0A7sKcvkYDCjCqX0y7UCs3V1LNMPfO8w1kGi/moPEhsWxS6ODUJ\nMt/AgGHN7YQ4NpJwNIs+PZh5glmzXRij/lizlv1UF65tSOp/oOK0deiQ5noh/zt1\nUBsNAtU0Kql0FXor/yjmduyqFyipzAy3+VW3Cm5h0oAHVDO1VjjdAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBADfMLFwAT3HmyxV8kPIcn8xYLW+asgS5K91ALbXejZrY\nGHKBe4ZVzdPT64xnZdChr24T+9ReclGeUQImB4EZbEylDLP0PpajM7pwfVYs+2m8\ntFMS07OgjRMQQ3Eyd0x+Lj36VoWGe0zJCCPS0SCK+J4R7tWiEFAGoyfxI9eUynCr\nHQHFSE6fCFfaknDg/dVxQV37wXIxMsdc3k8Ql2WWAkAXu5WgJQZRyhdLbXm9fVzn\nb5ePY+QLk8ydWUww0NMHgd9K7RpYlX4AzslojdWeyrQsl+274ZZ3L3fAHXT7/2IY\nXNPSlLVL67Vby7vCIxbCf7/JPFazsKuX4bHIupcy5ac=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_pexip","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_pexip","issueTracker":"https://github.com/nextcloud/integration_pexip/issues","website":"https://github.com/nextcloud/integration_pexip","created":"2023-06-22T14:27:03.254408Z","lastModified":"2026-07-24T10:01:03.086340Z","releases":[{"version":"3.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_pexip/releases/download/v3.0.0/integration_pexip-v3.0.0.tar.gz","created":"2026-07-24T10:01:03.070593Z","licenses":["agpl"],"lastModified":"2026-07-24T10:01:03.138915Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Cx0Aby9vXRo9c/9Vy7QhOohdr1Rl8vATr6up8Vyy2oINHsXbn6RuoKhpTAS3LJrD8UK3p/eD0JBBlSeesDalqef/R2zgc0j3MAZW4UKY0F42/QGWppSeK/0Jj+DDng/djmc38E9v/2nK8yzfC7l69PasnHqOI3w7wYPSsCLqiKk28wSP+59ZVRcaahmoaVOEk4Zbl31cEyKyCM4adtWc8BxW6pgSzO//Zkw/m+BC/fj0G9W5yHTrT+Uyn9aHBr0/6vG2j8FtB1rQqlfelQZe8pAL24K1E5CeZWPtWMufPgst+8coqM72DbAbRNDH2xT/dZcRSzIv1YHoPHIem/pBTDrggeygJubcQ56tYfWgM7FJ9EnVhXm+gvnj+A4K0SU7BBtcMlCgZHyhyDLpusuc2vgpQobDipQvxC/BAgOejAjUK5R9dgIoXZNfZYAT0sQO6cfb63t9uRiqRSWiBP6UGAwWl+5MBMFT08monuXtek2RbTA5NfW+zo4RQt4gWWWWzc3JAYO6d25dJEyrsp1Hc+iGMpvfH5B3PEhFCV/cu0pE9pLmBuozTN+KwnetLAp75IU9ms/0uNgNi+ANI5ZCjzeb9jms2QWHgJbYVkXnQy1rOdtxNEQtBeZtWkJUiNsIwD1k2gbkHS1e79d95x5VXay+Aoqu8z4E2LbHPKK6V7E=","translations":{"en":{"changelog":"### Changed\n\n- Support Nextcloud 35 @julien-nc [#27](https://github.com/nextcloud/integration_pexip/pull/27)\n- Update CI workflows @nickvergessen [#16](https://github.com/nextcloud/integration_pexip/pull/16)\n- Require Node 22 and npm 12, update npm and composer dependencies @julien-nc [#27](https://github.com/nextcloud/integration_pexip/pull/27)\n- Fix app home URL @nickvergessen [#16](https://github.com/nextcloud/integration_pexip/pull/16)\n\n### Fixed\n\n- Fix translation string @nickvergessen @julien-nc @Antreesy [#12](https://github.com/nextcloud/integration_pexip/pull/12)\n- Fix \"created by\" translation message @nickvergessen [#13](https://github.com/nextcloud/integration_pexip/pull/13)\n- Fix DB compatibility with MySQL and Oracle @nickvergessen [#16](https://github.com/nextcloud/integration_pexip/pull/16)\n- Make new migration rerunnable @nickvergessen [#18](https://github.com/nextcloud/integration_pexip/pull/18)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZXhpcC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZXhpcC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZXhpcC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZXhpcC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDQuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Pexip integration","summary":"Integration of Pexip video call service","description":"The Pexip integration app implements a Smart Picker provider to create\nPexip meetings and immediately get a meeting link.\n\nMore information in the [project's README](https://github.com/nextcloud/integration_pexip/#readme)."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhIYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNjIyMDkyNDQ1WhcNMzMwOTI3MDkyNDQ1WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl9wZXhpcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBALd1ZyJDz4BXVz5pono8mWB3qzO39onKmBNgjw+3x14d6ocY642QdnK8\r\nb1M7RYWv41uM17SJDZ93iWaLNTuEoTKgiEL3FUew/VYsalboNNbQQY+SB8mL5YS7\r\nRhx35L7Q8Km+HEw8J1pMh6W9qY0mze+RAJHVD98uDbgrDUcAZ4kokYz9svqOvQZj\r\nOLbDeYkSZZ/rwg1FdjodN/f3ZWJT6Png84D5tWitYKxaojBI/UmZ/1s65B/fOfmJ\r\n4X/STrPhM/gWsbQYKM0EbUbgqrBoG0KPZWkIG5/TiGVEA8WdT02QqLWZUAHtq7OJ\r\n3OLdEc0U86i+jAn0y/bsn8fA66ZG67+gVsTdG5pk3Y+y/CayjwMe6gjWoM6cqy/I\r\nNAQHdWKwPAPDkClTBXWnOrO1voG98mLL8SAN1oifmrxMm0eJxemNowF73MG2y9Jp\r\n5B2i1oL0dEcMyhwkUF91b4HtXs+ZjJAnQxAJg8EJb32w1O6zlrTiRk2ttm7EQOwD\r\nLn4VuxzlKM10jS6R7ot/8vggvVKgRfP7hxhHpy2bLeowQFvIQlvgjpnAxwZeQ4EM\r\n/GOCxkt+j32HTAcckZhj+01BsaBlIq+x9z+PeVAkpZ4DvLFFRekJj8mzEAjkVtPo\r\n6cV1HmLDjDz9ARStYrjZ5QOaMCN87fEPtrifauPeWlrS/mr9i/IhAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAHN8X9M0vixz0pKMWPY5dO2ELqesNSLHQOBfqi3IMrqy\r\nqrmMnTwxck1h+600OWzN+wMBWih07DtcgDIky0WtRHuQpLsflAZzPkf6dYC0djYN\r\nTVZWKUNq3J5Q+yp+GPQLMVN2PBPodh2V2DsvJGprBsrH1gNmZAOIGd0H4zG1aVUG\r\n+tHrolFVY70LvnNJCcjosSYV33xxtU9pywrfK6/Ei5EaOeqSNYKNknKiwuYDCT2q\r\nlZTVrTx8jXkhPQksmgQOJMFvGBYBJ+Ygwa1Ivrkja6iCRRhZjJbGi5ux4B9vuZ8m\r\ndHTvqn0Jj19cGCKCI1usQgj3R0wucQatdmPIz7e1x4Y=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"s3_api","categories":["files","integration"],"userDocs":"","adminDocs":"https://github.com/markuman/nextcloud-s3-api#readme","developerDocs":"","issueTracker":"https://github.com/markuman/nextcloud-s3-api/issues","website":"https://github.com/markuman/nextcloud-s3-api","created":"2026-09-05T06:51:21.914345Z","lastModified":"2026-10-21T11:09:49.296883Z","releases":[{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/markuman/nextcloud-s3-api/releases/download/v1.6.0/s3_api-1.6.0.tar.gz","created":"2026-10-21T11:09:49.292020Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T11:09:49.346512Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=36","signature":"XujSNfzA/FlvrLPf2/1FzN1HQeMtLW9HtARN2EQ9xvMVt5rv+NIWzrgJDwHTAs5FmNQTTpOZ3V2f40rrGGkVG7pwMtHfqsdvbjVJ2axQ2rIk0icDAfigeRncAWsy6kDPtQiZ7/tflRli6geJhduDKIlrGnGVSySXY4nPj2wroIoEwXO/xik1R44ODERlq/SBLLE1XM7uN4+XM7vuZxsHSdE33MhdeIXTbN+b7aWm7TEM1XnjpeImUUMLYuO4VB+cj6wR4y7KFb86J8O2Yy8k9HyTBnGb3GrT0BCIBN4iUcPQiOkHb5JojhcdP6CNYrriCnR+aqZ2I0EkAdu3ovCClmgK1Cm5DvLl4Ev/2YI9OXADI0tfY/RXvlGD+YHlimEOLujDcuZvGzrm5mNBNTXOhVW17dji0knLgBN5D/WoEBuHNaz9i2+Zd4tLySM8ioDTeQul7K98k8YpySqsIC/ISTIufs2OKcqeJqP5+rTx0xWjx5yarAPb8xC4JaDcbudEjL0nOezpgj4Gh0IziVmm6+lweRYNTvJa3uXoGbTLrmCb5YhdUkOeRCNP1fVB+p81APRZ8gyeABj+7/4R0pCWKHBLKCG24yx4/2Usmi4dBtWrrt325qOAcZ3V110tB1Lrn1zKJWCf4+VleajLNoLOIVzLqGkCzd39i+sBKa5kN6U=","translations":{"en":{"changelog":"### Security\n- **XML request bodies switched entity substitution on instead of off.** `DeleteObjects` and\n  `CompleteMultipartUpload` parsed their body with `LIBXML_NOENT`, which — despite the name, and\n  despite the comment next to it — makes libxml *substitute* entities, and load external ones\n  (`file://`, `php://filter`) to do so. `DeleteObjects` echoes every key back in its response, so\n  outside of Nextcloud that combination reads any file the web server can read, `config.php`\n  included, for anyone holding a readwrite key. Inside Nextcloud it was not exploitable: core\n  installs an external entity loader that returns nothing, and the app's safety rested entirely on\n  that default. Internal entities were expanded, though — a key could be spelled as `&k;`. The flag\n  is gone, and a body that declares a DTD at all is refused with `MalformedXML`: no S3 request\n  carries one, and without a DTD there is nothing to expand, whatever the defaults. The check runs\n  on the parsed document, so a UTF-16 body cannot hide its `<!DOCTYPE` from it.\n- **Keys of a disabled account kept working.** Nextcloud serves a disabled user's folder to\n  whoever asks for it, so the S3 endpoint stayed open after the login was closed. A key now\n  authenticates only while its account is enabled. When an account is deleted, its buckets, keys\n  and open uploads are deleted with it — before, a user created later under the same id would have\n  inherited them, working keys included.\n- **`host` and every `x-amz-*` header must be signed**, as on AWS. Unsigned, anyone able to alter a\n  request in flight could have added `x-amz-copy-source` to a captured PUT and turned it into a\n  copy of another object. Refused with `AccessDenied`.\n- An unknown bucket name and another bucket of the same account now get the same `404\n  NoSuchBucket`. A key could tell them apart before (`403` for the latter) and so list its owner's\n  other buckets, which `ListBuckets` deliberately does not show.\n- Wrong secrets and unknown access keys count towards Nextcloud's brute force protection (action\n  `s3_api_auth`), so an address that keeps guessing is slowed down. A stale clock does not count.\n- Objects of a type a browser renders as a document — HTML, SVG, XML, JavaScript — are served with\n  `Content-Disposition: attachment`, and every object with `X-Content-Type-Options: nosniff`. A\n  presigned URL opens on the Nextcloud origin, where an HTML object could otherwise pose as a login\n  page.\n- Request bodies, assembled multipart uploads and copied ranges are buffered in Nextcloud's\n  `tempdirectory` instead of `php://temp`, which spills to the system temp directory. The file is\n  unlinked as soon as it is open, so nothing is left behind even if PHP dies mid-request.\n\n### Fixed\n- **A key with an empty segment addressed a different object.** Nextcloud collapses runs of slashes\n  in the request URI before routing, so a request for `a//b` — or `/b`, as in `bucket//b` — reached\n  the app as `a/b` and was served from there; a `DELETE` removed `a/b`. The key is now taken from\n  the raw request URI, where the empty segment is still visible, and refused with `InvalidArgument`\n  like any other key that cannot be a path. Slashes between the endpoint and the bucket name are\n  still tolerated, since a client configured with a trailing slash on the endpoint sends\n  `…/s3//bucket/key`.\n- A backslash in a key is refused: Nextcloud reads it as a path separator, so `a\\b` was a second\n  name for `a/b`, with a lock of its own.\n- Keys longer than 1024 bytes answer `KeyTooLongError`, a path segment over 255 bytes\n  `InvalidArgument`, and a name Nextcloud refuses (`.htaccess`) or a write it does not permit (a\n  read-only share, a full quota) `403 AccessDenied` — all of these used to be a `500`, or for long\n  keys whatever the database made of them.\n- `DeleteObjects` takes at most 1000 keys, as on S3.\n- An `aws-chunked` body must decode to the size given in `x-amz-decoded-content-length`. That also\n  catches an unsigned body cut off before its final chunk, which is accepted when the size fits.\n- A query parameter with a numeric name (`?123=x`) crashed signature verification with a `500`.\n- The source key of `CopyObject` and `UploadPartCopy` gets the same validation as a key in the\n  request line. Before, only a `..` anywhere in it was refused: `a//b` and `a/./b` copied from\n  `a/b`, a source inside `.s3-uploads/` read the parts of an upload in progress, and a valid key\n  such as `a..b` could not be copied at all.\n- **Multipart uploads filled the trash bin.** Completing or aborting an upload deleted its scratch\n  folder with an ordinary delete, which Nextcloud's trash bin intercepts: every upload left a full\n  copy of its parts in the owner's trash, plus an empty `.s3-uploads` folder each time a bucket's\n  last upload finished — twice the space until the trash expired. A part uploaded twice also left\n  the first copy behind as a file version, which deleting the folder did not remove. Scratch data\n  is now deleted past the trash bin (the app answers the trash bin's `MoveToTrashEvent` for exactly\n  that folder), and a re-uploaded part replaces the old one instead of overwriting it, so no\n  version is created. Objects deleted through `DeleteObject` still go to the trash, as before.\n  What earlier releases left behind is not cleaned up: trash entries named after upload ids or\n  `.s3-uploads` expire with the trash, and stray versions remain under\n  `files_versions/<bucket folder>/.s3-uploads/`, where nothing reads them.\n\n### Added\n- **An integration test suite** (`tests/`). `tests/run.sh` starts a throwaway Nextcloud in a\n  container, enables the app and runs pytest against the real endpoint: SigV4 and presigned URLs,\n  conditional writes under concurrency, listings and pagination, ranged reads, multipart and\n  `UploadPartCopy`, `aws-chunked` bodies with tampered chunk signatures, read-only keys, and the\n  settings API. It also drives [gits3](https://github.com/markuman/gits3srv) — its own S3 client\n  and a real push / clone / gc cycle through it — when `gits3.py` is found next to this repository.\n  The cleanup job and the object locks are covered by ageing rows in the test instance's database:\n  abandoned uploads, stale and held locks, orphaned ETags. Not part of the release tarball.\n- `NC_VERSION=master tests/run.sh` runs the suite against Nextcloud's daily master build — the\n  next major before it has an image — by swapping the daily tarball into the newest stable image.\n\n### Changed\n- **Nextcloud 36 is in the supported range** ahead of its release: `max-version` moves from 35 to\n  36. A major upgrade disables every app whose `max-version` is below the new server, so declaring\n  it only after 36 ships would switch the app off for everyone upgrading on day one. No code\n  changes were needed. Checked against the daily master build (36.0.0 dev): all OCP classes this\n  app uses still exist and none is deprecated, no deprecated method is called, `info.xml` validates\n  against master's schema (unchanged since `stable35`), the code lints clean under PHP 8.5 with\n  `E_ALL`, the full test suite passes, and the server logs no deprecation for the app while it\n  runs.\n- **Nextcloud 32 is dropped; the range is now 33–36.** Database results are read with\n  `fetchAssociative()` and `fetchFirstColumn()`, which arrived in 33, instead of the PDO-style\n  `fetch()` and `fetchAll(PDO::FETCH_COLUMN)`. PHP 8.2 stays the floor, which is what 33 and 34\n  ask for.\n- The walgit example config no longer sets `max_retries`: walgit's S3 backend never reads it and\n  retries through the AWS SDK's default of three attempts. The README now says what that means for\n  the `503 SlowDown` that racing writes into a new folder can get."}},"signatureDigest":"sha512"},{"version":"1.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/nextcloud-s3-api/releases/download/v1.5.4/s3_api-1.5.4.tar.gz","created":"2026-10-20T18:23:22.633269Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T18:23:22.675142Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"NlcwlvSMTK5Y2Kj4igfIPrmGlaew8qMNtXC1rhMeyILFNps9IsGo4a0D0aZg6wSm4D7OhaXONfYh1GhLxJizATy/RnZ2Ty312KkJpDdZppjoH17oq7wGL1p8e1MW/d8c+KoY4jEog85yhFCNJhJvED5bxC5cf5zLNanFcPe9W5iNOj2jr0uPpgF06ooXdZHqs5D72/z3bVK13GkfbXR1fiwLDwxPuPcUo9dkVn48ZYNYuCVfy9QnYQzbLjd6wF1Hjtr4+2mGO7K4DxGQBLCUgLRVaUrgiq14jhUsGRrAQyacR4a0YyjTJ/afhBGdl6vEpOuP8dmKj4N7/kzDIEk5apYxSEoK0rUssso6fmGDIeDp7PwfLg7YBRlQ5umsIdMdkQNdUjAANxiR9/CEsbUcq8yLrJl0nE5qVAQdSzh3K2NuPKKjHdDDEh2NC9mUnuZ/csrv8RG9FAqGEFzYujNjFnRC72N7YafDa0Va4m0f9VGdA8Y3pvbo1LLcykle4r43MaP/89YIUWptV8lpxmGEiRM1OXUXjqnvuyOdRAlzpmr5voC88TBZheZkAplWrpnUi4eTH/IBiBYliW8Q6udsS5VRPnYgth9GuwZAhj6GEEz3uPN1UYr5jPjD5r7hulz9nyu+i5MbMPsz0qarXZITJEcMbNf4PyGd7BWTqszoJ68=","translations":{"en":{"changelog":"### Fixed\n- **Deleting a key that names a folder moved the whole folder to the trash.** `DeleteObject` and\n  the bulk `DeleteObjects` resolved the key and called `delete()` on whatever node came back,\n  without checking that it was a file. A `DELETE` on `repos` — while `repos/a`, `repos/b`, … exist\n  — therefore removed the entire tree. Keys with a trailing slash were already rejected, but the\n  bare prefix was not. In S3, `repos` does not exist just because `repos/a` does, so such a delete\n  is now a no-op that answers `204` (or lists the key as deleted in a bulk request), matching what\n  a missing key does. Reads already refused folders this way."}},"signatureDigest":"sha512"},{"version":"1.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/nextcloud-s3-api/releases/download/v1.5.3/s3_api-1.5.3.tar.gz","created":"2026-09-07T07:44:19.680124Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T07:44:19.752226Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Bxv7eS0izf6Tc6vZ8IQfPug86DhdLGRXQV7NCt8eXIHoFUhIFRx92T6RCoeEM2CnR8Um3S3IgA7zSCx08ckJ7ZITpZV5e2Q76lX9ql5O2sIXX/Rai0udBIl1rb6QXmFwTRFJ/E+zO/dE49hQgIft2LXs+Shctrha5OmvxFzOd8FI8FxjQCPHsYHXX+1lsXqKCUcGepxOof5YOCvDV34tq2jz9VqtmPBe0heUpR7eBJZoCvdPfQHyW4xDW09aAIe/5avZNtUg2EG38kqrPGKrTwOctVVwhNxHGhMQ7pTCgwHtm9SGdUCondbVCDebb23eTEA56ytNRAJKOO9P3DaP2FihIIgkTh8XhEajFbKyhI41EjV65ya4+UUAld0up+J1RNHOgjVQNZhQCPckV6zynBh+Qd2iE5hsmpkDZE/QfJ9SJaU+IkRIoIfdTYmQZsG3uKLTkzSCCL15YjfTNNxTRptoQ3J4u1BO7MSnexD7xqbGpUBwFyRQrA1N+mTQp9DrjvRAXEgNgoFyniYPoRyfyTDRIeyC7ETYKaZH4dyzi8jd7NiYai7dwQ6XuOkoNPw6nyiVSxPxdE0JyHOceb1owVlgfqAOCrefMovJ9EufqJnfSMXOLLcCfU6l4BHug0CjxtA+iAjXa5KzwELxGZazarGJZl/t0vYtolhjWGC8gAE=","translations":{"en":{"changelog":"### Fixed\n- **A conditional write took its lock on the wrong identity, so compare-and-swap could lose an\n  update.** The lock key hashed the bucket id, but one file can be reached through two buckets:\n  nothing stopped registering `/Documents` as `foo` and `/Documents/sub` as `bar`, after which\n  `foo/sub/x.txt` and `bar/x.txt` are the same file with two independent locks. Two concurrent\n  `If-None-Match: *` requests, one per bucket, would then both observe \"absent\" and both succeed —\n  exactly the silent lost update that content-derived ETags were introduced in 1.2.0 to prevent.\n  The lock is now keyed on the object's resolved storage path, which is what actually identifies\n  the file. Note that hashing the bucket's *folder* would not have been enough either: in the\n  example above the two buckets have different folders, and it is the full path of the object that\n  has to agree.\n- Registering a folder that another bucket already serves is refused, including the nesting case\n  above. Two names for one folder have no use that a single bucket with a key prefix does not cover\n  better, and they leave the app treating one directory as two buckets — separate multipart scratch\n  areas inside it, two ETag rows racing over one file id. Existing overlapping buckets are left\n  alone: they still work, and now share a lock correctly. The comparison normalizes the path first,\n  because `/Documents//sub`, `/Documents/./sub` and `/Documents/other/../sub` all pass the\n  folder-exists check — Nextcloud collapses those itself — and would otherwise have slipped past\n  the overlap check while naming a folder that is already served.\n- Creating a bucket whose name is already taken answers `409` with a readable message. It used to\n  hit the unique index and surface as a `500` carrying the raw driver error, for what is the most\n  ordinary mistake in that form. The index is still what decides — two racing requests can both\n  pass the pre-check — and that collision now maps to the same `409` rather than a `500`.\n- Unexpected failures while creating a bucket no longer return the exception message to the\n  browser; it could carry a filesystem path or driver detail. They are logged instead.\n\n### Changed\n- **PHP 8.2 is supported again**, down from the 8.3 that 1.5.2 briefly required. `<php\n  min-version>` is resolved against the server, so it has to be satisfiable on the oldest\n  Nextcloud in the range — and 32 (which asks for 8.1) through 34 (8.2) all run on 8.2. Nextcloud\n  35 does need 8.3, but it enforces that itself, so the lower floor costs its users nothing while\n  32–34 keep working on the PHP their Nextcloud actually asks for. Verified by linting on 8.1, 8.2\n  and 8.3; nothing in the app uses a language feature past 8.1, and 8.1 stays out only because it\n  is end of life."}},"signatureDigest":"sha512"},{"version":"1.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/markuman/nextcloud-s3-api/releases/download/v1.5.2/s3_api-1.5.2.tar.gz","created":"2026-09-07T07:03:16.268229Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T07:03:16.352473Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"go7SuMzb3Y5g2yrfg9WxL9FjOI7BBbUsyJ0n8LHGRGTH8yus7Nv7zRXzOtP1CmVcR4idihqDAc79SBW8bKaS/ukkYmXAmxXlWUQ9dbF9TyqCPxDJHjsND2WiNS3vC8/TBNzMmHw17QHxF5XpnCV6NzKCqQO6PdinIPBGI83F8V9T2vYDPJY58sV01fXT2fcac4qbTZ7arxvbHjpUatbhwKQLKm6vCqwpuSDZtnFNM0eqNtI9ZWCkuBP170VQr+gZdGD0QDHs2V6JlNx3QWiVAhpdElU3n4+mwtpRFpKvPygB8JzwjBpeO41PywLAqdOv5FD2MhnR1W2ym14942m/IUQUK/kTHR68Q1GP37qn7Gbx5ZYwEhSaMeJLPB6wM21exZMRai46kWTHkxVTFB86w8xZX6ovKqc9SKtM4U+0oLUqia5N3H7EgTFpuT9NSon1VvqHDkjfWtrzCCHIOR3nWpc/rwC+htbDrqTimFM2TNxfAdVJwCIDI8GzHwoHe6biGI73W3Nb9ncNrwnkQS+WgEhHy2FwjA5h5yHhf6ELQckj6Dd21iNQXcs8iqVB5/VnCtWTjDoD5EFIhPdTZeU+n/1DpDlmzNxS4omPigo5w0RQa8m+2W7Ry37xeIvKQyIDRdpD1SUsz4q2OPjYG1wOJTGXkixdjbV1zcEFrJCfupE=","translations":{"en":{"changelog":"### Changed\n- Nextcloud 35 is supported: `max-version` moves from 34 to 35. No code changes were needed —\n  every OCP interface this app uses was checked against `stable35` and all 37 of them still exist.\n  `TimedJob` is the one worth naming: it dropped the deprecated `execute()` in 33, but this app\n  implements `run()`, which is still the abstract method. Access control was already declared with\n  `#[NoAdminRequired]`, `#[NoCSRFRequired]` and `#[PublicPage]` attributes rather than the\n  docblock annotations Nextcloud logs a deprecation for.\n- **The supported range narrows to Nextcloud 32–35 and PHP 8.3+**, from 30–34 and PHP 8.1+.\n  Nextcloud 35 requires PHP 8.3, and the app store resolves `<php min-version>` against the server\n  rather than against Nextcloud's own floor, so a single declared minimum has to cover the whole\n  range. Choosing 8.3 means users on 32, 33 or 34 need a PHP newer than their Nextcloud asks for;\n  that is the deliberate cost of testing against one interpreter instead of four, and PHP 8.1 is\n  out of security support regardless. Nothing in the app needs a language feature past 8.1 — this\n  bounds what is tested, not what parses. Nextcloud 30 and 31 are end of life and go with it."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcmt1bWFuL25leHRjbG91ZC1zMy1hcGkvbGF0ZXN0L3MzX2FwaS9pbWcvMS1zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"S3 API","summary":"Expose Nextcloud folders as S3-compatible buckets","description":"**Point any S3 client at a Nextcloud folder.**\n\nMark a folder as a bucket in your personal settings, create an API key, and use it with the AWS\nCLI, boto3, rclone or any other S3-compatible client. The files stay ordinary Nextcloud files —\nvisible in the web UI, synced by the desktop client, shareable, versioned. Nothing is duplicated\ninto a separate object store.\n\nRather than the handful of calls a file sync needs, this implements the parts that make an S3\nendpoint usable as a real backend:\n\n* Conditional writes (`If-Match` / `If-None-Match`) that serialise concurrent writers, so the\n  store works as a compare-and-swap primitive\n* Multipart uploads, including `UploadPartCopy` for server-side compose\n* Ranged and conditional reads, delimited listings, presigned URLs\n* Streaming uploads — bodies are never buffered in memory, and `aws-chunked` payloads have their\n  per-chunk signature chain verified\n* Correct S3 ETags (content MD5, compound form for multipart) rather than Nextcloud's internal\n  etag, which is too coarse to build a compare-and-swap on\n\nAuthentication is AWS Signature V4, via header or presigned URL. Each API key is scoped to exactly\none bucket and is either readonly or readwrite.\n\nVerified against [walgit](https://github.com/tobi/walgit)'s store contract suite, which exercises\ncompare-and-swap under 32-way concurrency, ranged reads, delimited listings and multipart round\ntrips.\n\n**Note:** every request passes through PHP and Nextcloud's storage layer. This is a convenient way\nto talk S3 to data you already keep in Nextcloud — not a replacement for a high-throughput object\nstore."}},"isFeatured":false,"authors":[{"name":"Markus Bergholz","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhP5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTMxMzIxWhcNMzYxMjEwMTMxMzIxWjARMQ8wDQYD\nVQQDDAZzM19hcGkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+U2GK\n/dqKekpMDR1KZtVG6e7tditjS8Q1HteEZSu3Tk/vgK0X8IIocrp7V3cFLIQ1dasq\nKw4dWd+SVEfDL8+DRYfTgyHz+MFB0FrFCUFIT4aLL02/0NCJqk7/bkWjFYf/lwRc\nkRZIgbecsM1XNjGu5vaehQJU95LL/J3FkHd4QBbKaIEVqagER8wcixnGrDwAwmye\n25qXeM+NYC6xiaHfxKsuqHbFWvHYkqvlmtxZ4uKmG9C8XriU850f2dj2NcrygQY4\nOiyp2qvtoaJHnSrld4ihh4X8U0jlWRGyTIa2PU15vFBWvHAq78I39XLeiuwB05eV\nr2O7YDkLuBhw2u3X78jgZlCQNky4hsBVeGf9mUpi/K228mq1wkt91ABJe5CDPAjB\nlVW8h6ODPS7iNL1jMijioUbmRaDwI41dzmVLTw8sTNizDcJNDBUDtKFr3YPJWP7F\nBY4adIhNqrZ2GvOks6O0zCdTZg1a8LJmgBFk7qmX6hn9l8Me6miE6sZVvdK0r31z\nN/wPTw8SM9Nt1ggOKGo2XRVEqtt/liQr3b0YZwfDF5bPbkKDNDRyVNi7Ggwo6t9E\nveYhWliNGMm10JIvLDcfEWaLLrCf9wcZUEGWEVvj7oc47vYFnMSaS5Ny8TbhtapQ\nvOu3EEK8ontze/7bwV5ZHT9Xi9qXIX/7kuEA4QIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBApDNQ3r9+6OOEO3BcnyL1RoRErSU7A4anT6XzQO6xSFmTfYopg6T+i9he\nRq3hhF0eVxB5dRRUxTslCGipAAk/rVilycfggwdjbmt4gD5g/FKvcMqfWHjo/Pdi\nF6bEvicyKU88i74XTVMxAsrXITOXtcz90QTZOcweBQ8PIPIOWHKjBzo8+0Ytq8o2\nGAcb0RBLQcs9wWDAWnXUxy1307tztCrQDvmGHvv+uDe7jPcu2S/DSDH9niVZEzFS\n25W9ueKZsmV6ob4bBMYzdl8x/MOL38ZNXFMnsHuYkvmVdYGuND8Wr/N7wbEJquNW\no0eLPhV1dUod0Fqy4ZswszXQhA10\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"opencase","categories":["integration","office","organization"],"userDocs":"https://docs.opencase.dk/","adminDocs":"https://docs.opencase.dk/administrator/","developerDocs":"https://github.com/lamotech/opencase","issueTracker":"https://github.com/lamotech/opencase/issues","website":"","created":"2026-06-25T06:40:57.519968Z","lastModified":"2026-10-14T12:31:02.456222Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lamotech/opencase/releases/download/1.2.0/opencase-1.2.0.tar.gz","created":"2026-10-14T12:31:02.430624Z","licenses":["agpl"],"lastModified":"2026-10-14T12:31:02.491921Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"YU4MUJ3LAMwSNpTKHFzUrPapjNgYJo9ASQ39Any8ywRYKJB6bumtSknaovAxsUF2\nY2zPWdxjqMz/CZkyQtoE79GofDS1npcQKXlH00h3ew24c9BEVG8XBAibrgTb0SYo\nlqkENLlrJjHDCUypngWad5dNoXAJRjDPHHCpXdeU/vDO7QOMWVn3Mdqf4vIJ0Pof\noQt2BctuF7wv9SZ2p4pngnGvz0PhLC2YOw0bGm2L+MqpM65mL8rJTwfgTPP3eGvx\nLi99FhHA/pAnoCNshxDG1YhpzSOAqO35o7ku+7RlAxXMp0S//fYITrPzPuVZNYK7\nDd6gMMcMrN0BL9EH+NRje/Wr76bj4rT4Y4vQO5CkqMs0Eq5L5zUNUDSahs6qYSmb\nVLS1n6oJF8DheForyrGvHFDPHBC5/pWtG912BE7UM5bg6Uow2WFYoXpo3z1E6AcS\nr6XoS79zt/Zut43FQ8+uVONBdJxHhw3GpM1FabrnOr6+DQXKNZxXpiFT4fC+MKlj\nlm1K6X6h9kEXQ7hIQ/MgShi9WEJ2Ef3Hoeo8m8Z7yEJSWyQEMDZ1Zfj8jB72H4d3\nPRtkamAaN7hVvTlzeBCpl02vWqHA/Gc2kPDmKPwfj02DZk7KVXnR0R4Qh5RDJ+Yw\nCO+pbenxOg0NX154Mv6RsQO11FxYkZCVK6bxDj+eLBI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lamotech/opencase/releases/download/1.1.21/opencase-1.1.21.tar.gz","created":"2026-10-14T10:55:20.505703Z","licenses":["agpl"],"lastModified":"2026-10-14T10:55:20.563503Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"LgCqh6jg6MCMauESRs0SAYlPHMQyr02jDQrnareYcZzgsil9QpihiMouCikx6qsT\njtS55cviYYvqylBmzx1Op9AgDJ0HHhE10mmK9sGf6hGnhCfhhpyh7Qjf1hmiTca5\ncUNfIRhdpDKmDXKFo/d45CO8F62YXT7MFfIeHFcqh0XkBa4MyNo2oAsj+4W4u767\nXSHVbL896ctmXylKJa3Yj1g1pHNpBvRQOh2N9UyFEAO/5V8UKdkZrUR+64ovV4zv\npvGZLYHLs5FdZmHGTpRiBC24sBcQ8+MKHtLWMd3xc+pmAKxHtaeM1tPx/OSdBDlG\njUqazarotpcZoe+J7C5bGh5zhpBtlJJ0lXuMXP9dj5puSRscfNlB3z5bizAXevcX\nKzmBHu6FYtjyWhp8gIWd9Sv4nUFgRcAL38XUecR+fMZu3TQRJOkv+x/mu7KDvJxc\ngi4qdUEAD5uJ7RT/8QxbNzz6NPPfD4iC36DajjPnmqK/UMVqKFuLnKJpUXPgXetS\n8X9xcMdONK9o/uP0gkrFTSWAex0NGABHmvK4uQmCTGWjis7lKtSd55zmMLAi8XQX\n6jByUxLfx7CgOrnR0N/bqJQEyE3WyCG4wNqvhkC5zwtINvHCIyeYpzczg7HPsiCo\n24lJ2CycZcLhNQUH3LupPCiktDZVGlKqfEyji+upPec=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL29wZW5jYXNlL21haW4vcmVhZG1lL29wZW5jYXNlLW1haW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL29wZW5jYXNlL21haW4vcmVhZG1lL0Nhc2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL29wZW5jYXNlL21haW4vcmVhZG1lL0ZpbGV2ZXJzaW9uLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL29wZW5jYXNlL21haW4vcmVhZG1lL1dvcmtmbG93LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbW90ZWNoL29wZW5jYXNlL21haW4vcmVhZG1lL0FJLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenCase","summary":"Case and content management system to Danish municipalities","description":"OpenCase provides a comprehensive case and document management system\n(ESDH) designed for Danish municipalities, built as a native Nextcloud app.\n\nFeatures:\n- Case management with KLE classification codes\n- Document management with versioning\n- Fine-grained access control based on organisation, classification, and sensitivity\n- Full-text search via Elasticsearch with Danish language support\n- Native integration with Nextcloud Office (Collabora/ONLYOFFICE)\n- Virtual filesystem integration — access case files from Mail, Talk, and other apps\n- Per-user document access overrides\n- Comprehensive REST API"}},"isFeatured":false,"authors":[{"name":"Lamotech Solutions ApS","mail":"dev@lamotech.dk","homepage":"https://lamotech.dk"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhN9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjI0MTMyMjI1WhcNMzYwOTI5MTMyMjI1WjATMREwDwYD\nVQQDDAhvcGVuY2FzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJ09\nwxvnybRl//dZ5ygfdSptOL3gfR7iH0hW912xSOL16b3IoNOnbY/V3WP12zkQ/JdE\nE/Eq8ps70ZueEFGA4YiS+nkTqQ4K3QNObHAgiF87kyAc5fQ6o3tpVBbNu8ZmILMd\nPkwALdEUGQDKamN/3w8n2kKQTDxXlAwxMsUMvK3hwq6xjli5hPGMACKnq8LqZbT+\nov/5QUDeXQOMlM21oSrhC0wWK57ksqO3oPqQI357Fn4uC2lY0qMy0vTk228j12pD\nMQ5Kws++3Z7BxgYsut9/mGAhJyJ8GAg+5nj1DnrGu1dM9ME3FyQbuiUy6PHRVDuf\nQd6/O1E/513XsVivtjQYoCJAUdZu2wljmje2JV3EdGI45OksCycSjhIheBwDgOOQ\nBycR7rdWyQ9FGSLmLo+k2HVdmZoqT6auV8oodhw+BovJPyUzvo0EH7dZihCt8TMl\nJqtQjuoaa0CYDaf0vQCGUIxEVu0fjIZUaHsTrf6skPImTmQM3ueJZuEjZI4yS1WT\ngI+S9EYeW2d7OPgbP8H5b/PrLb6gOJJp4QsQQArGLHBRquDlQ9pyPWAtVyh0iP06\nkWQEIyqNspbYC4J2xxDIcgAHp4movP7HFUQ4iUCz4STGc2v/IK6UHNF1dGhV16HG\n+B+xc6zx3fsvg1tsFyj1vO5BQkWKGD8C8GWZB0/jAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBADgjN5I91Jm6llBzXihCS9bm2glqKmBEETpnGVWj+e6kO2vVOvLWV/ns\nHnu43ohImvNvfH+DqTcFLDAgcWJz4qT9H3iHFOGbP38jaCYFsWkYGTrkD8e9pY06\nPTPM1dmBMAoTx13cQPSNMEKeuX1+YZJ335u6ZBEFtYMVJz0sGNNqUMkCEsdZR3Ak\nRLToA8TKSv6HcQZ06Ih8wDrOUxb43/hvaYMMfCtJOmcIA/bFOWWfTSTT0X9EYsxi\nyrsTb5pnSX9DJIZfne2aQt/jgUvqQmLrlj4PToaDaM+oaavZGPPTuUeCvsoUGnxx\nnJReIjZhF49+MPEBTAt1lX6qd4ZdfAs=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fulltextsearch","categories":["search"],"userDocs":"","adminDocs":"https://github.com/nextcloud/fulltextsearch/wiki","developerDocs":"","issueTracker":"https://github.com/nextcloud/fulltextsearch/issues","website":"https://github.com/nextcloud/fulltextsearch","created":"2018-01-08T13:45:00.180176Z","lastModified":"2026-09-22T14:17:18.195990Z","releases":[{"version":"35.0.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch/releases/download/35.0.0beta1/fulltextsearch-35.0.0beta1.tar.gz","created":"2026-08-12T09:51:44.288984Z","licenses":["agpl"],"lastModified":"2026-08-12T09:51:44.339805Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"oHNwv+KLFBzIMaQr8NCGMb2HEKITuzd3DYhXJujDEBS5xZKa1mBmvtBB68PqKNVZLog1/HAtCgKRnp9otAxPmCnuCPqtB97wDS+1XBudTmXkNiM6ksmIkqOgTqNqbiFMyL1zvTdoyExyuU5zcZBuHj5265ngUYhGD1EzVluMImy82CjLnGg9iKEK6zVfHjZE54JC4vEUfg7UVkRcDntNbn6JE4qGEQ9PtufE5GUKgoJKMQ4rdJmZVGjDwuXPVDfvJbwojFKKQFZsZzfw2WjUqogkXG6pM5qlKQowpLId6dbqHr+GyKp25zTelLF++UJw8SSaHaC7s27s0rUhgwAW3nIbchuBfyG5NtxwkdNkaeNrpDFSFrAnlnWqn3ioK3HjkYlX+IM4AAgmD+z9g3wUU1bxeMJNvJiyGx2g7X8gK6xSCp4BA83HJKJMS95skhinQl6AnQJ/H/cK5YxlZ73qPArPk7rOK1CJ44oghdVH0yhdDx6aQwoknGETmodRXZ7CCcEn8Mvc+6dMv+LEfxVAyG5cdwTEuq+AS3WpwMIpq3/Uj3eMGoyuUMKOiHMPpqUzSrWZVQtIZIa09aEPlHwj5PdFcAPeOPB3R/AZnoQ70SskJCOFi8gY5uvIDff435cLgmhyPKX7Yt2CKSDgHn/oW5PFBRbps+LrNkZ1IBvOXUg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"35.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch/releases/download/v35.0.0/fulltextsearch-v35.0.0.tar.gz","created":"2026-09-18T22:36:30.285788Z","licenses":["agpl"],"lastModified":"2026-09-18T22:36:30.338213Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"1bhVX0O7BD9WN4QONiP28xu76CzvTMN/omJGr8Oz7W3LxWWEgEnmRnw/sofyS5Sz72E0q17XXW8zABlxbN+48ltVfnBO4EwhSfxYlJPtvxEqLUl9POPjAmfkor5tUK/F5xR9YF4rcojjItT4TrJAl/QYAs0ptSUnPyj5kya+kAS/2o6KoUKFyc9rwJVZ6P4jMr9c2TfuMGlFG52BSTLM3/Ti6mzb9ik/QgpGd3Uuj3rEGgRidnfA5h3Vwho3dv9uUCjd8Uc45FK3PQ/qDJp8Ztp45/NgF1UqwynhWCZ/tlHtDFXxgdkVwgIfnwvUAMDDZ/Z6fnqYiHinYijwhKyMfkqACIbicpSPYG3H2YPwhTlJ45XRBRTbv+7Wpp3plGufevvZ3F2+ZfcP3cL2KtxATnTI5vmCaXbDeR6+BQAeEzBJW26I0ekPPY1R8bOU8OlpjVrVfelA1yKNLiTAQ4DrJERYT1Rbyhme78GpRDEdsNviHi9pkWUDoJwbATdblpLVV32W2mhAb2ophuY1SdjGmCNwjBX/heWkI2yOLtR/Z/s96xfrKWA9BmMYNdwvbXgYg8wc4gzC6/cmpMzoJYtPnnwOQfWL/7wGijBj0JthSObVG103CPir9XQC8ghn3uPw3DFaut0sX5y4JZDbMRRsZUBnyf6jFbQZijdYs6zBshE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"33.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch/releases/download/v33.0.3/fulltextsearch-v33.0.3.tar.gz","created":"2026-09-20T12:23:54.890440Z","licenses":["agpl"],"lastModified":"2026-09-20T12:23:54.912446Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"jh+O62zcf7RjEPzuQnB7sHDlyFHZ3qnK4nkuOTuBAl0HkdDwbKZzXHpeCeAxLnElvASvGMb8bSzQyvg+RyX8WheMn0+v/YRZZ5KN2fEn6N+CEX3eWP4VCzSLJjRLDfax3gP2c1eu+ZJCainfqoFjQ3YsrnDUD53KCk6txbRXE6yuSmVpm9MjrnMPeprBUjDdO8dg6h2ib5cq25qLXXQsfF2N7ExNWFwRyxTDEwTBJQbzsDjEJW6msQG0HLIGO7R9z21MqhrFjZ+eWCpk+N7LC2CFOagnMo4sBCOjF19C3YP377Yh1MsRS8RfasH7WqffHmVlEV+9SIiI3jhamXw0z4AIGlb50jcVzLzxpxnOKU80IAqZuj5Lg+06gjR9gY19J0HfjrA32G2Y/7k+cGGid8RseQ3e++bIuFIFGW0aZ/JJsb0X3Czpj2EgnExAMp+KiSZ3Bwc39NgKcPDGQQY8437pzUmkkpa83Hb5fBz+6KEzB/g+VVP1oGYTC6GORMxbYAmxP+wZwmuYWfZa1RaedJa+XHnogKaGfcqoUCByNpQCAApZc5LONf3YQUx/sNqL6t5xXA0Gp6DA95hWA6kVn820+iPWhSNcKsVtSA1OIYKMZrpO+OR2+Rlg/2pAKL2NYPYsF352ldpm/f87CUDlY8Bg/4BqeLHCJAekSvsnG0U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"33.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch/releases/download/v33.0.2/fulltextsearch-v33.0.2.tar.gz","created":"2026-09-18T22:52:22.758486Z","licenses":["agpl"],"lastModified":"2026-09-18T22:52:22.789503Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"tIWCwVHm+6YOqbdGFL5dNdAy6gh3l37YIa6xjjuzx/XtNo+zOhmDURyG6d28MUB2M16o8SvHwdZ9yFHbkOUYj5CMxxPrVhONne2wQYrn1uw5QF/OHPwB9OpRIl1kKd8sV9zegtBCoPFuGyO8AnWKIm3755AA1TmeRMODAfZPCBXda0FZpEkA9SMJicUbOc22iQyUIsyLS3XPmNx7eoIxMN+2g5U63hZXkHBUDHJHZ+6kHYLLAyIcXLWy9Qzzd0v1KtcOQtULg0982YeZv2DutQgwhM3bL7aXFUT2rMclh32Lg4hQZd+8/OL88tkVVWdE8h40rJgBLEq7brcjSPpT6ZY42Urre1afFQDrWmDSLO5CpgBMbS8mxQ7yjmXhNS4AdTVWBV7ufbq7zxkXgHwsuagTFzM/FsMmCiLdcYGS9yHZZAESsvhCWEgm7hASj/x4JpQpKeafrj5HMCGpmg6ibjo8cJDvgDrYDzCqt/djoa8e7C6uY4zly+7jxhBcIfzAaD7ImG/sX094+6mDcz7iWAojSrdED/RKA7XP4s3Bo/d3RmWh5pb4SY/+xrMNckCOxcjvC9o6O4VeAqHb/rWjBspf91u86Cp5ighJyOVMlL1yX6K2Z6S6FjQ9FbcWzePgQS+jpGioTBBGLPP8xmXaCO3HhDO43m7h3kNpZgGR4Iw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mdWxsdGV4dHNlYXJjaC9tYXN0ZXIvc2NyZWVuc2hvdHMvMC4zLjAucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Full text search","summary":"Core of the full-text search framework for Nextcloud","description":"Core App of the full-text search framework for your Nextcloud."}},"isFeatured":false,"authors":[{"name":"Maxence Lange","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhCEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwMTA3MjEyODE3WhcNMjgwNDE0MjEyODE3WjAZMRcwFQYD\r\nVQQDDA5mdWxsdGV4dHNlYXJjaDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBAORu7/oGWzY2mcVuZlJ4y21gfc6wp9BpkcKOqYftY3r1SO3Kc/6VUV0K30jl\r\nSsprVK1O16iGP9tQCXJv+3pwHCTk5/RX9nXSFsMa/4IAV2RfNp7bOcN6rhq9rgoN\r\nc1RdfGjlaLxiGswBbYwZX4609ZUZBZ5ZiNDLKMFYjg98USj50Y1eycBw0ISj1vrd\r\nR6lg8sl4vkNttNbhk8mK7iEhDOQWuA2I4XjES5cV30Toxi/PRhnpp3gQBPVQWaoo\r\nv9SyR6cupExaUGPWVa8u1sTUC1FAG0+yKNeQMcPVWyrhIiP8vO8MRbDMfHVEqA35\r\n41RxCvcq7KGT/Vg7YDKG3ZB+ICCP8GQDf//u/fZPNGeNdowr5IUNeLV6GgwxazfI\r\nMhrr6v3kbDgqIXgAKKFUE96O/vA67xjq7Z0KiVJDCTmLzQCMw7pVVHpT8NjbCnp2\r\nTKJQj2OUeqFlxY3dW4cBDkw5mKyJYILHU1tPS9L+4PYMIr94ZB2wxsV23goXwCIf\r\nX8+2uTzif1Fe3v471eBmaWHyI53f8V5e1ECFwbkApcwX54WAUZ305RT97vhfFRRK\r\n/LItY++6uD0NEkVwlRIf9PFlsMuopEQLF/tXdltfwjaUeYmKMDV840aV2Yo+DT5U\r\nJ34b4Y394dNSMdyDbT3q/ibHofezZ2B+3+Vj7HOPY6z6wTQPAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAFZz9i/EmaNNRq3plTQgbLNOQPf2EdnQSrvOKG14dJ2oMgju\r\nnDLJm4VbfDeJQtJRT6hpYVu7+kNzdQkeInQnll0TEWXrB0KVJug7CBzu+NurkPs3\r\nPHTItkTOOYpMCOC/fxva8QtOEEtbcLEex+rwT0hpfrmPv77dujYRLzaevv7JJiE1\r\ndzc/hNJdccPTCX6Iz3TmgB1H0btjAXa617Jn8W+6CYXqThij88+cz+M4dmZ4XAbO\r\nnX38FJouddvfq02eiFYToWkYQmSwWWwnWKiVCjuPhR7Qjtu8VV8kKL9JJ/pkBoJt\r\nKXqjNVWGjIfvIsnzg4RMjVcnzuERbnhsdrDX3Xc=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"context_chat","categories":["ai"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/context_chat","issueTracker":"https://github.com/nextcloud/context_chat/issues","website":"https://github.com/nextcloud/context_chat","created":"2023-12-19T11:38:03.932555Z","lastModified":"2026-10-15T16:37:10.012209Z","releases":[{"version":"5.5.0-beta0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/context_chat/releases/download/v5.5.0-beta0/context_chat-v5.5.0-beta0.tar.gz","created":"2026-08-17T17:57:54.045160Z","licenses":["agpl"],"lastModified":"2026-08-17T17:57:54.088612Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"wMWlo5J7tzfJiGaZdBWTL3pKEo/d993HhdqAOduL6w5vh2LQ7Bj4+TUirRc5j7XmDBwl2lV9Ab3SKn7KyZGaMwz/7P4RbB6o21s+lmfTMSTqpvuRSySfFwWaI7Z4Ebr1pLENPGnNhDave0vqZ51GTrh2xjRzS4+KJoVCfhpSdWXIOEzH60Ka8/J7lj0UZU0J43OIhgyHNrn9PrTp46sroncK92hoJHNNfzixjewL9eVVwDjfpn+Tbt72rserL2LvM/Lp+fIYWNaqAzdEJDrLNcYY0HWxTSuu+XKnKU/pUxy1W9oehqe+iG1smf2Tj9oaLn+KuDRwJ7Uzql/WhciPlJYDpqZfjgtcmQ8f8/OBe4HzZv+MGt1KkFLEJv71MSKsNb+98LOg/P7Gzh9/Wo/9ApKXRUwWpGwVhzGPOXcnL4NwwtMUVnWRb9aHfdeQpt/fNETqBmFB9A8/ihrL/7m0lu4qxBqCzRBXs9pc2j3w0iaEafhJAC0ejg/1wRGt03zT3z9JG8bXr7uqBUlWrCyWrRryIoGoOOjJOKPCmDgPvR8Ev4jRUH173nwlM4vSycd3n+NHFGu5XifpNdo+0ekZt4b6D+LyPB/RCnTqiD7VBA62CtT7PaUry9XLLSRUWsogIxydnO8Cy7k0ZGV048RV5CgG7i8HxtUlA0Yh+uRgPDE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/context_chat/releases/download/v5.5.0/context_chat-v5.5.0.tar.gz","created":"2026-10-15T16:37:10.006325Z","licenses":["agpl"],"lastModified":"2026-10-15T16:37:10.051168Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"jR7zQT0YA+Kyl7eFkQ18baJXiSYx64XDxRDC8Jzj22i8jFZ6FlCq4qgUwgqPQ8N33TBsaNXyNVcaSZpow/JznW5TD+51oCuEBPwWpE0Oeb3Pgb4BuCiP+6syem0E7fFMLsHL+HCgMZaUug+InHotW74wzr4V+462KqtWUnGt8T193EMxf2UMjkMm2Qdm19E2UR4BVLpaNZX+45NMNsxj+PUrh1z5A6AtLvThRNIujaZ9HzeGZVmjykGQCGaY1I9eZKQuB1ckvk/N/vo5QzHnEkef51p0G0zxtOrmBBk41nouOgdbPDatop/dIaVz+8/sDDphR3fkH3ZYNZF9Q+BmQUNI7fgPgxwsi8JmFycuxtWzZdPHlaEnPtmioYgftHGcsbO0I294PZDMXvQh/KPZd3pw7rlqls7tfq9cRIHd8y0Gij7SsY6+xBeLU+rq6qAhspu/oOu56U5X3N0O7W/RolMPumdLmJyNiYcJlhYGCWbrx8qges711W0wZfs8zBBeQj6k0w8DyGEXHaCmIsutb4F2soGlhd/Zj2acC3TRIS9u9EeJnuqW0ciPXlF8Ooqep2HAbIpj6s9KH2FA0HGqDlnahrOUq9IA6nnZfsedIKJ6OI3F7r3xsgz6oTTzyfWgLEe3EmUSi/xUQ86RxZT0wCx7vq+q+bXI2H8E5QL1gHo=","translations":{"en":{"changelog":"### Added\n* add context_chat:reindex to re-seed the crawl on demand (#246) @bygadd\n* add NC 35 support (#256) @kyteinsky\n* add NC 36 support, adjust tests and add phpunit workflow (#275) @kyteinsky\n\n### Changed\n* update context_chat:reindex command description (#272) @kyteinsky\n* update readme and info.xml about the install steps (#268) @kyteinsky\n* guard metadata collection service to not fail the context_chat outputs (#266) @kyteinsky\n\n### Fixed\n* refactor(commands): Add type hinting to execute method in search command (#259) @CarlSchwan\n* fix(AppDisableListener): pass full provider key to deleteProvider (#265) @weltmaister\n* fix(ContentManager): look up existing row before insertOrUpdate (#262) @oboeglen @kyteinsky\n* fix(migration): skip adding index if already present (#273) @kyteinsky\n* initial indexing completion fixes and perf improvements (#280) @marcelklehr\n* fix(QueueController#getFileSource): Use getMountsForFileId, not getMountsForStorageId (#283) @marcelklehr\n* CI and phpunit test fixes (#284) @kyteinsky\n* use subquery pattern for counting files in mounts (#285) @kyteinsky\n* make phpunit tests for file source robust (#286) @kyteinsky\n* improvements to the search and prompt commands (#287) @kyteinsky\n\n\n\n### Added\n* add context_chat:reindex to re-seed the crawl on demand (#246) @bygadd\n* add NC 35 support (#256) @kyteinsky\n\n### Fixed\n* refactor(commands): Add type hinting to execute method in search command (#259) @CarlSchwan\n* fix(AppDisableListener): pass full provider key to deleteProvider (#265) @weltmaister"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb250ZXh0X2NoYXQvbWFpbi9pbWcvTG9nby5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb250ZXh0X2NoYXQvbWFpbi9zY3JlZW5zaG90cy9jb250ZXh0X2NoYXRfMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb250ZXh0X2NoYXQvbWFpbi9zY3JlZW5zaG90cy9jb250ZXh0X2NoYXRfMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb250ZXh0X2NoYXQvbWFpbi9zY3JlZW5zaG90cy9jb250ZXh0X2NoYXRfNC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb250ZXh0X2NoYXQvbWFpbi9zY3JlZW5zaG90cy9jb250ZXh0X2NoYXRfNS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Nextcloud Assistant Context Chat","summary":"Chat with your documents","description":"Ask questions to Nextcloud Assistant about the content of your documents.\n\n\nSee [the Admin docs](https://docs.nextcloud.com/server/latest/admin_manual/ai/app_context_chat.html) for installation steps and requirements.\n\nSetup background job workers as described here: https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed\n\nNote:\nRefer to the [Context Chat Backend's readme](https://github.com/nextcloud/context_chat_backend/?tab=readme-ov-file) and the [AppAPI's documentation](https://cloud-py-api.github.io/app_api/) for help with setup of AppAPI's deploy daemon."}},"isFeatured":true,"authors":[{"name":"Anupam Kumar","mail":"","homepage":""},{"name":"Marcel Klehr","mail":"","homepage":""},{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBzCCAu8CAhJEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMxMjExMDgyNzM0WhcNMzQwMzE4MDgyNzM0WjAXMRUwEwYD\r\nVQQDDAxjb250ZXh0X2NoYXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\r\nAQDQf2CXtonfse8NEAJ7hnyECxtBi260ux7iDI4hgS16E3/UWAorzxpu+ngt5/Ev\r\nquUNw9aM6x0lVR2adBRXhGInMgiQj1IR7iv8rdVkD6fJAz5OaWoIpRHPdgoUpUUw\r\nadQh2kpWGH/pRdaUV7ynSRxGuN+FmH+ilciG8VJ/r2COKKgpLR0ANDe0aOGmXm2I\r\nRL9pcz8o6KCDmAgBoEtWyFRczlTH43dIgqbSW0DrgQHW6m2U5he6/mf2fwIAGzv8\r\nHWZ3GtMBS38JM+O1+xTzWLo6kHLy49KGggj7qJevZM4ZVqzTRZKcJCPQfJgKYzWU\r\ne++Lg5JCvAFsdKSyzGpNcQTF8omigMYm3TJTsamk/4EYDKXD8NN6QUGyO7aWJREO\r\nONhiuFxAmXVjBECkVTkbTds8Is8Xn5+FljcFgGp0CWgu8PTJD4VveGO0e0IXDJ7x\r\n6KTOe61r3lnOZlQei+ZNTj6yUiq6aO6/8nXCNnCnSmLG95rhBYQm3xYbO8yh9fe+\r\nTWXEDxwrm9veCCvCbZe2yaiTZEaGcxVPYjvyoBmX8znKyb9tXlSiotqxhh9KCcx0\r\nK59Tagm8KbpuweViCZv3pf84K0ac499fFo0m8PoGXO02EireWfP/aQmSxV03Xdbs\r\ntCsIP6xTB5jrw3JMZCcaPMAL6uDtBCc2GTRtqNhTIeQk8QIDAQABMA0GCSqGSIb3\r\nDQEBCwUAA4IBAQBb1hJ27vCBAjDALjMfy4Pw9JDzO6cMnRtPNJ3C0fvRA7hkUJxb\r\nqAOTUSQOr30OaiIHBV2+DGVhJIb8yjsRzEs5BGCESlzJHIk3wQVnMJsmT31Jd04a\r\n9G17PSh3PmgammYXdb8rA5BIUz4p6JH/MNoGdIpPfn78oSzdS+vcCvndmEade6ni\r\nuoEzIZsAkxq61oISfQFw7p4JsL+qSnevu2qaMSD/sGjuTwhorAH3xg190Y9GqYQ+\r\n5gHdE+ZW53Lmp/6YNqlI3QOhERGmPZQI4fEEFXcAwpX7OSyxLzMurW+eCmZpvaH6\r\nlqlyFt4otjgDfbPLSG0BO4nWDzWgBWIlHqrW\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"edusign","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SUNET/nextcloud-edusign/issues","website":"","created":"2025-11-10T15:15:23.174006Z","lastModified":"2026-10-21T12:10:54.018062Z","releases":[{"version":"0.0.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-edusign/releases/download/v0.0.15/edusign-0.0.15.tar.gz","created":"2026-10-21T12:10:54.009137Z","licenses":["agpl"],"lastModified":"2026-10-21T12:10:54.066279Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"KqZJy08IAUJLQG/lECYZKMvx5w5K6wd53h2oisv1CnBTIuRIn8jWYJYFsxsCDXExyYBeKQrgrpiukoLkCDrSkt8GYBUSWroBQzLk6Dshskid0uO4dwBxXH/Usd1ruNIEgUy+c9xc7oV219mQEfb9XOdJr2ZeVAfu6m/PiOjJOhfxw4GWsZrrOf8V6LaJKQapdbsSxzKJ7z2dJxbQLgOzlX/M5OSml+1OfUGsT6tDDb6SSKmFLBPJnBL9kYbi4qaQgquUXzpgA+aCuxA2oCV/5DZxm214O20kEhg9Wf/LMXs+cbKRJzVtZNs+3NKRQUYydbSDFnS8XRJOxDUgEaxJXYCHDPyt0Jx2wv8ErBVcHS6FGuSA2uxYV0EVjybuWBtmVD7fbLN9c0syakQg+Owjg74sL7fvXhYcXOMKjIC62VgPLtO0tKxYdEsJCb7gQF1EhkxMadyKJ3r4+mkoZJExPwcXd/PoJRDTaOhYPswkvRYRJw8Le7Tg3NupvvXSXAWD+bvVa3zG7iVc6VGuJNbkMtwkSNhIIZNNtavfFnztmN2Qquns2LJIa1o1NKw6TWa0arKGz7b6G5yjo7tGlQzLJ5m6BRKIzFloBvAwo0Ig3a15IhL42kBLUyKUX91MDDLeILXXbEyna4/EOAv+Rmov5pVsUtcTFZ8GDyGQ+5ThxVQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-edusign/releases/download/v0.0.14/edusign-0.0.14.tar.gz","created":"2026-10-20T07:21:59.514784Z","licenses":["agpl"],"lastModified":"2026-10-20T07:21:59.546003Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"ebVfuwJbKmEALh0fxWicbCtlXoIxOvwiudoev2bQ+JtSPRXGePj2C4PjC4bN4tZCXioAbuTeCcvdeHg9INPmXdRuHgMw2fc48uoPPbgZhWv2Ekt+7ge2Z6RVxlYH9flvxa8DnWInvRCubkh43kUj+0Ex2zZZnSyYfEtSLvSxcHJwj/X7ze2oy6vAQR8DS1ef61A/aCSj3VZTQnRd3MwOg90NF086ML5q+Mpe4UK8GeoJliUTzrhaI4djQAqDshUJzpyfIDP3qMYFmmmhMIz2cSGM+65VAfF7GYhXYXhiCXjvbn6gnmusCw2HWeYNAjJOE76v6RfnsOr2b2pTPHJHp6aBtrIdcsiCU/5oC3ZzPVoLoxZsWnGdErJbcEFYN2jA5LOoeysDUL3jIvnC4Uuynyedaw+NIJqE2RzyDIQNnIDEfJtAsFIBJgwcfPnVeDV/RPDi48A2YORWyGiaHwUqpCzEkI3eJibCEK+54kqyjZHvMv9LtC78ABFimlNA+2rUyggCVc/sXQITl4tFWv7+ddFlPwIWDiIsETLDDucLicBIwDo5ZGBYnr33bO1JVSTaNJIAX80SF8TSQgRPBLNifx9q5O0oE8ce8fo/Fg/0mRv0R97CNFcHC/zWo/Y97c3t5Os4220crK/XaFylgd2smslQTGUn1iW61iSz7YgOr3c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-edusign/releases/download/v0.0.13/edusign-0.0.13.tar.gz","created":"2026-10-19T21:24:31.851039Z","licenses":["agpl"],"lastModified":"2026-10-19T21:24:31.886945Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"IQre94KVN4h2LOzC/h1PbMtTd/rCnAfuEcZLoBfBUv3OF19G0WznSWKJEFnjv0T2oMEW/QVLdC2GRApZuWlYNSOerkFCIGu5gwWhwQAjFhbSUYgunoVOOVPxxutHq7BGWb92l6C/TNg900AcTW/4syehhOZgMk1OO+YOGrTE5fERfjNVyXP99HjgoA357xcx3eOEuPg4O7eYHVK66M1L8jOA+0dEjqEuZXAM5EXn7X/4/dKWnGbdR2U0RlWr+JaXNDtHKCIF4phGWeLA6hiJYi1TyECRYMNGz/X+yUak2VvNnzy7GXI6nioQl2uMAK/vHwYJ5Z+KUKJlZTVwZdsqSclXTvxU8I+HavZtepG42uwIwBXFeGie3Us5pjhMxGxQTbrYTgQe6tNbUq500f9wy4ydg8NgE+zF7jS6lsNu0PbIzH/iJ+B9WicfSJ+pSR8GPPiF3XsoCcfOEKjin2/wx/p5snlgCpi0rM38Io+7PXFKHD27SdODMbXCot4Gu+KWRLwtjIqy88eyKvDn6DDkwOLhDO/Ef/zGtBe9RrWnbkcrjnwJpGffwm6aAfDHzQRrvBjDguHNjXJovrFrNZwhY4c6bQn2WVAibqyORmN3HN0DrF4wQCmIMaimImlBgg3UQLtVG929VEcOpMaarvTC6Ejx1eKMT2QyNUirge1EoXw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.0.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-edusign/releases/download/v0.0.12/edusign-0.0.12.tar.gz","created":"2026-10-12T09:25:51.137685Z","licenses":["agpl"],"lastModified":"2026-10-12T09:25:51.172731Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Qf7lSzPo+u9YRqG63yoQu1iWI+H66osh7aap6aACcLNY/fbDOSB79G+wB56WKWhs0M+5lwKFgBaFVw4ChHJ63ZXmPnLyHywbnK4+WFDwtcmZx4KUFrb7jS8N1Xy1H/uh68GdtEZPpmV61NK9iuS3HrHaH5Apd/s/FEdf0ZXjZcmFERS0EQMEfly24vcqPMEZ9lSvf2OPgv4Hu+Ij2Wr9+nx1ImVAJt87PUEoYVNDhJwBfGP4GZkQsL3zahrdKlefj5tFo9/dDQ9ae+5v1wK12Fli9pnNvE7Y2Y9v8zhnuY1UJcwQY5k1TdKu1+4jUhs/FpQVq3aSEqRBR7cAskDTPOEQLduQGlwDftET+17qiJ7W+0Tih0TK6DeeOTvpo6SVFiAKkjvIKKjHcjAZhlLPpSVzcmiXsT/5pv41mxRyDlNk/ixkFXbKf0hcCRhRvLl+Zcw0mmFtdr/PxxLmJ/QfXfBdl0NmuzqLG/q5tKA0/23tAKYF9xF1ApobS3b1HLgmDZ+XiZT0J5iBGILWBO3QaohdYD8WTTw9/9PGX/FlTBBekGdPoz0uf6e6bKRIZJ/ToNp/V0GlT8aNMWrM75sLiRJyOvEHafH4dTZiOxk89DprqGpzTlF8jsqzeUauydzZHdYJ3k3jfOsHe5nhIJs6fCf/s5B//6mfazbRCM6ke44=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Edusign","summary":"Edusign integration for Nextcloud","description":"Edusign integration for Nextcloud"}},"isFeatured":false,"authors":[{"name":"Mikael\n    Nordin","mail":"kano@sunet.se","homepage":"https://github.com/SUNET/nextcloud-edusign"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhJuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwNzI5MTIyNTEwWhcNMzQxMTA0MTIyNTEwWjASMRAwDgYD\nVQQDDAdlZHVzaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq5UG\nsd6P0pIHCoyxKYS40nteVfdMpryrQFNVmlMMXAI0SfrQZNIn4dAyHO8EbXDGs7No\n/v8j+gm653nd1C0tDHwin2ujQoe3tbXx72Um4xXbwGhfCGHetgwzQiDKf08/6uj+\nDhXr9lBmaoAC+kWS5WNaeY8ub6Gl6AzneruqIA10K5UJ71zj1ET89wF0MFhzKFoi\nnV0io5TqL+rIpwgEjrtpthTcyNYnvYFLZus+AQbbMKbg+tWL2hLMF6FX6QR3KhYb\nSAukoELSueB/nJ2hIt9Jll+iTfy15kx3m6IJHb2uXHFPJBUK1FRbibnEwhLEQrVV\nEe8uvzza81Dmeqz+xM0cq3Be18Xy+5KEx1HvNsTOeQzOMmNy1VWTezgq9OPVmN9c\n/YNbTgKZcUzhNLoyLo4MzQJjKtiLkRDRGFvKccLkWLzsa56qCiR9DR9xDmhtqy1e\nXGjqdxV8/kcKeqnLKNHJwIdwTX9p3FUD+um3BFYbnGqx86SIp9ZRxO7XC6FkWSi5\nsAOpVrdFe0I//VqlGqZipZLQ2LnhMJ+FnLwfYtESeBlE6rDZEZRXK9CzszA3N8BN\ndUxYuB9CgP4rd7pHVZPHe6QYeuJvNg1V1hi4ZeT/LJxe8tTNGVZPePY/6pQPcx52\njVbCq7eQd/WQ6wHaqtCOD0qx7sKz3XkT4JTjpkcCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAmku2qweS3eeuBXb/G9XzQ20HIE/br1B3XUw+QE1VFjRHJMBPhHNx5aS9\nv/VKOOK5bAO1b3+W9sh7E4uLRfQr20yBQjXk0uhiwqXXelMLxSPNP6wGlsdlqQPz\nDDcqGElNfsZKjWDa7s0r9/AhKU1GEC0QZCJhtUaDmet/jKYlhkZDvyMrFva2KXJT\nEvXzCXobwzZGsz1RGMWQBDVkb65vUHLvG1b0AS0agoP/aAFirAjnQx9qqlfJ1Cl2\n81tYubxlTeD+d/4QReLmMZn0KIOn9AoD7hpoEHLyDB5Jag4rpwSAQK8jed5N/PV6\nM1YTsLvLPGheWym0RbAqKNmxFFSDAw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"impersonate","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/impersonate/issues","website":"https://github.com/nextcloud/impersonate","created":"2017-04-26T12:35:46.502055Z","lastModified":"2026-09-16T11:26:49.487167Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/impersonate/releases/download/v6.0.0/impersonate-v6.0.0.tar.gz","created":"2026-09-16T11:26:49.466500Z","licenses":["agpl"],"lastModified":"2026-09-16T11:26:49.526800Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"hlToDeWL3zcEbLW/0dNruApVE6J2JIO98rbN5meFfV6KFE+kRMJRai7I8E5nomeJ9jIW16hhMp5goWrm6/SQeg/qlpY1xa8KHr1QKxefhenCq/8TtZGhpPOhyzRQ2N/1t+atoiyNi23P43lp7Y4MIC3afvxhN0CGdFS3lDifFjIi5mdf487VwuHnn1CBd6dQUI/t8fqFFtnPpyZ57wC+JEUHlX8k5QqU4F0Ld3/45qbbnMxDurpF8wK4y03j1u4FOY4LfNMl6Qt00Uqmde/4lbuwkM5DnBnl6ONiijJiklkdD9GjaQJ9/I4+RSQ6aooFMS3QzYgNWD8cwJpp2ekNtFU2Gac8yizhPkgjo+UjMDXLYU4Ddj3uCCzt6j9ejnTAlptmIx6Xqa9YEHo+xe4tDmh+3eaXE/beYxVT561bbHaJUlsqVOmCUXE2iO/dbwwQaMR731iYWS7A8kLGeja9LVHRaSOP5q6njMkFP693/1UGGG/ag+jWD9+eiOBFjXu6SIARlWzxYlVd5Yq4Jz8Lq09XZmPvPnPAkfW5LnKfY6u53d9vwDreh5MgwHjq0+JzqU6Ipp3gYeOlhyJIvwGK9QkuKcDezNhTgX7inrBfvvWajXxpfJu+Vtl3GrWeMVwikKkSeG/9Nq/BrZLm1izMMnHF638W3FsL6OMLtTtdwvc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbXBlcnNvbmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbXBlcnNvbmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbXBlcnNvbmF0ZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Impersonate","summary":"Impersonate other users","description":"By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.\n- You can limit which users/groups can use impersonation in Administration settings > Additional settings."}},"isFeatured":false,"authors":[{"name":"Nextcloud","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhBEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTIzNDM3WhcNMjcwODAyMTIzNDM3WjAWMRQwEgYD\r\nVQQDEwtpbXBlcnNvbmF0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nANK+p0Si58eMCY8j4mYhOxNpe9lpaTNVGGx8mI97qF2ekGlwId2zWx9ENe+N6uId\r\nFHCX9HSccH2J7nNvJcIgjzhdsN0J526U0VNsgTNEFotkhW+ksSlobenUht/rlB+V\r\nGitUCJjo3X/88JcZR8ESXFhZB4PIiR8y+rPIKstPqOldpI64XLsGOpBt9hLB+NVm\r\noJ/ogtF6jBV4uMtw9Jbi+3eNYKYs29kX+Qxogjrb92t04qD5t+pBXOfJL64Dkr5j\r\nS7V0Zmmc0ok7F+68ceLyDfQoLTEDAb5TxA9R7xuyzgsJ5ApIIr1SWXqVw+JnbdpW\r\nNTbBOe3yBs9DkVhb6q1BUP/6b2WveO26OOzmdKiYaUdI8WSxC96fdskTolDEh08p\r\nPcb9Tva4m8JUCtmfHWv8Vzdx5ErdOIL9K/zIt9mJ2bx9t7F5qEtPIMOPZ+T+mg/V\r\nt7sWSyiAqmG/sXFsahpNx95u/fnExil92Q6oGS1rDgzo6wJmWnnbYDmYM9mCAG1G\r\nXVVI1qkoVS2noUjF7NDtlJXZCYC2UtxwbvEYS9xL+jnGCMowFmf3ZPJPRExZzYCY\r\nPxi8TIIADZaafUUyBr0ggwWp7BIAyT7cvKkN6yBEUT8GElwwaI1UDbyPy/Sro5MQ\r\nup777IpMF8E8JW3Su3QuvWjdw6zps3mxJExL6SndOAGfAgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBAGkal1XlzpL1r6QhlNuZVjFQjHA/XY2UJMCpfW3Rxtzoedo9wWrZ\r\n0R8qd7M1s5u4bwR+aDMWPa8gBY0GwuvKyszl3L9DvhWW0dX9p8QY+K0s/hJL74CI\r\n1t8SmwKu4q98yCfSOUdF5ZlMiP+Nqmb+runRApOSzPSDoqpn43ixzLI5paUfQxlH\r\nYv1D/kPbhRHgPfLxPOUxpU85x3jXEneRT+VPpyc5b3FGleqTTuwKij8nwyymemmr\r\nIO3ay/9KHxFdaSWht3oNREWeGom+WDf+zyQvewI7z76v5iQZfNu1DbYI7nxsuc22\r\nk8C+4a9eEHHc+YTPP+l6Q6bwGRja9qNm/fA=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"news","categories":["multimedia"],"userDocs":"https://nextcloud.github.io/news/user","adminDocs":"https://nextcloud.github.io/news/admin/","developerDocs":"https://nextcloud.github.io/news/developer","issueTracker":"https://github.com/nextcloud/news/issues","website":"https://github.com/nextcloud/news","created":"2016-09-13T19:36:01.812869Z","lastModified":"2026-10-10T07:07:34.874661Z","releases":[{"version":"29.0.0-beta.1","phpExtensions":[{"id":"libxml","versionSpec":">=2.7.8","rawVersionSpec":">=2.7.8"},{"id":"curl","versionSpec":"*","rawVersionSpec":"*"},{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"SimpleXML","versionSpec":"*","rawVersionSpec":"*"},{"id":"iconv","versionSpec":"*","rawVersionSpec":"*"},{"id":"json","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud/news/releases/download/29.0.0-beta.1/news.tar.gz","created":"2026-09-20T06:55:13.831176Z","licenses":["agpl"],"lastModified":"2026-09-20T06:55:13.892250Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"HyJcrp4kuva4BYnwLEUEpCfPlA9uDWJ+cI4H3cAdwnsdGo9uad9pkUYFb72Z23DmaezHNB/JL8lxLn3CUydbmIg5wX79wcgCq3g5vBjKEFiEB4ckgULq5KGQW+AcDmKg5h0Iek3YAo+vrlyAZuynjTY9JMbc5QU8/FC7poCljfwHYiroUxxR02yK4du50ooK/SYRtoLGQ8T0et+VuRx29fj1q1HS7YnPXcqjchLl11GjEPOvYUaihFVugXPIeE6qj1Vu4GLgHzzQJHl0sabd07RdM/qAmyaaJhE8MKFHWk982LdOBUPbQckMOSML9tYVZrSh/l9mfEvRFUL48kO9vYQUQkW2Oi+Ex0U0335nRBkcQOpqPHt8WHSchNAyoPaVRddaymaq1XUieC9ZnF/e2TQ1NEVlXgXJalNjvHA/YOaEnl4TUhzDLUxOK6i8W6hwxtnj0KTCSMPCkWlNEXnw4Zyix7nqkpfnLB+k3kZbsRLOTm3wg7ZC37EoMLCeNTZJrCqU5qC7PCUoiGKqDp25yWwEVsk+rHeRummo97F+6HD86L8Zl4GTgQyykJyB2L8bCOSkXl8PSvOwMNzCnO+xtxF8eDWhO/vLbfYP59KE3XSIQq9SsRZiwFQRvOCbBBx1ozj05xjSZFf+acrFqoSFQJe0mpQM7Kl+AfeOAtYFASA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"29.0.0","phpExtensions":[{"id":"libxml","versionSpec":">=2.7.8","rawVersionSpec":">=2.7.8"},{"id":"curl","versionSpec":"*","rawVersionSpec":"*"},{"id":"dom","versionSpec":"*","rawVersionSpec":"*"},{"id":"SimpleXML","versionSpec":"*","rawVersionSpec":"*"},{"id":"iconv","versionSpec":"*","rawVersionSpec":"*"},{"id":"json","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud/news/releases/download/29.0.0/news.tar.gz","created":"2026-10-10T07:07:34.854851Z","licenses":["agpl"],"lastModified":"2026-10-10T07:07:34.936624Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"Nt5QZovpW2SCvagXuJh/4SXWKvHiiyGJUDTn+M7g9xvU+rUcfkvDzQJx5MIlW2EiMkDk9W+GC6ofJVyFOw2N/yGI2FNs3v5RWo6YmBa4mmWiA9TInKt/oNFZo7W2ahtz4lyffZe+T2gwYE4Hjo6n/jyvdzaZxF1TaFlpy3m3nOQ65px3/ajD+iexhJsMXkVckhRveEI9ms+AEi1TSOY5Rq0foOsnupS3MQ1W0OVmLqbdGJxHIAU7WYFYA8GF8upwSBs3gNR1d4K0uDhXm7A02S+zgfAEagiaHPIeo0mlrutjhJW/3wLggib0W9hTAfqKYB6Zp9S6L5Q2nI1S88oG/3fwmmH/Vw9jcucQOFw7TGR7Edf9yjAxtj0+NCNKu4sJbFac8hLM1jLgZRd2muc+A948gfDc1YGJWHQpEwEI53E4As3ZsNcp7lPu8PBcVOtDVK0TWihEH08EhEEie3LhpwWkq8rIRNdzwHEMuDyIpoyQYmYkO8jKryWQKZGK14AI2yPZt1f7w8VaiCimMV56yNA6zvbq4TmPADHgnGGcTX8ptLqRdKpWXkLADnXtrKeZS2DgFPG2xbos2iKVicnCMLbV1WoBhySMgWe4xaV9N5/1I8qfCB+4ewa4tjc6cQ+ERbJSsv+V2JAgSXAmRT2vrnt1bE/gXdsLD9NZqyfVgkM=","translations":{"en":{"changelog":"No notable changes since the beta.\n\n### Changed\n- Use different icons to indicate whether feed filters have been configured (#3922)\n- Add support for Nextcloud 35 and drop EOL 32 (#3934)\n- Require PHP 8.3 or later. (#3934)\n\n### Fixed\n- Allow OPML import with `.xml` file extension (#3888)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9uZXdzL21hc3Rlci9zY3JlZW5zaG90cy8xLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/news/master/screenshots/1-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9uZXdzL21hc3Rlci9zY3JlZW5zaG90cy8yLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/news/master/screenshots/2-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9uZXdzL21hc3Rlci9zY3JlZW5zaG90cy8zLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/news/master/screenshots/3-small.png"}],"videos":[],"translations":{"en":{"name":"News","summary":"An RSS/Atom feed reader","description":"📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)"}},"isFeatured":true,"authors":[{"name":"Benjamin Brahmer","mail":"","homepage":""},{"name":"Sean Molenaar","mail":"","homepage":""},{"name":"Bernhard Posselt (former)","mail":"","homepage":""},{"name":"Alessandro Cosentino (former)","mail":"","homepage":""},{"name":"Jan-Christoph Borchardt (former)","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8333333333333334,"ratingNumRecent":0,"ratingNumOverall":57,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/zCCAucCAhF+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNDE5MTAwODI4WhcNMzEwNzI2MTAwODI4WjAPMQ0wCwYD\nVQQDDARuZXdzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxujTVYdH\ncNAkdh7d+Ga9qgY2IW2YyV+qICzLgG5aPoiXm+NDchUVZ0a0meB1SGOHvJEJvDzU\n/9S4xgfkuLGQ5A0YoGI7xvXh0xN8qjtj6ownctT6W83BvKQu1fiqJhuiIzcxXalv\nXKrnYNr8LVTxSdvwVkM26CI2QUwor/kA6fmOs900mCj0nIbEao7UboxLaV52O/qz\nuXv1KQBZ9XEBzBy/cMbYO9UU4d0hxsxXNErGq8/ejhBI4Kg6Gbo3RY8zNoT18tLK\ntfZYS+teakObbwYJraI6essAruy3slTowZN/9C9ZO0o6SZ1g8bvk8ODr0Jgw04lc\nnbT7Q7I5FACeuYnUQ+7j6Dojljy1KLalVRhhfrD5mYOqxq8+ngwRUTC8NPxpcHYZ\nls26y+Rm3OUAnkeiAY2vX/KJHzpcull4vtI8UH58TzQJBGwVN5pHRo9eW8jZX9Vs\nMjcz1F0bEhUy2XRcb2+jqDqAhvfD7W7WiGuKaDC2LF3oOZS9eM7BiU61bXHUzS/d\nhF3elEiQ4kqvkn7A+78859XYDpCAyWanLg0sLXbynDvB+zWKNZAqHcOB8kA8kHJ3\nyBftXNybOgRXNPOLwbQQMzj7pcB/9EjUgyoSyjoL5OQ71oPD312nXtyb4ADGYsuZ\nMpHtZzCPnRXspgcmASOTsfHAP6fwhqIpBWsCAwEAATANBgkqhkiG9w0BAQsFAAOC\nAQEAaQeKsHfE+9VcQJymYpvOZwZ2dx710j5Ig2HHJgacOa2teDxVpVyImDAeMLU8\npy/RpQas8YeNtucOL3lej0RKYk4cuu2OpJiHuOUyFX+B41etSS5aujk83x7wEZfH\nEW4iO25qccoaOerRapeBKSaWZZVsdNl1YXLSopP3Apq59eGxzpqyfOcINPxVqWS4\nqD5793vFVRfl/pyO1s9w73oyjFvUiyR0duBk9efp2FO6sYwLdCkqj5fCCZ7LKMMu\n1PCoG2C9osUv/5NcfM1PaYuv6q0UjpSrX6rcGIZsm/wkcI6+Tz9T4gxZ1jv5RFC3\nqEwI8qKrdQhP+698XdwrZrwzpA==\n-----END CERTIFICATE-----","discussion":"https://github.com/nextcloud/news/discussions"},{"id":"upload_monitor","categories":["monitoring"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/upload_monitor/issues","website":"https://github.com/nextcloud/upload_monitor","created":"2026-03-24T22:41:02.117022Z","lastModified":"2026-08-29T11:46:27.527012Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/upload_monitor/releases/download/v1.0.1/upload_monitor-v1.0.1.tar.gz","created":"2026-08-29T11:46:27.513692Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T11:46:27.559294Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"efsTUaOKIcS79CC1EXtGIOm0K+INLyGkP+i5kqmwK3MLiEGwyQ8+YKzRRSW1T5EgSUsYkoxV2f+uTTi4K1ik1FcrQmqTkYenFHy3iRxezNKVcd/64Y7Vm0HP8+T7C+rXNvkBJsgxx6Dh/yVv94ifoKkEheVLxLrKj/ABq//Bqdk6+vmqFqPez/wlFv/a+/vZmJOV1jKVee7TmF/o0NISW+Ht/O42F5Yf38P+YCbPw8VftNpzkVMfk1yuLnjCp+N9BRBeRsDFFfxreo5AD17B+guTqORtY6mgl1MPOOxzFcd/JKhLU64wJ6dQ0DP2+15Zsb0YlLGG6GZFFD82oOpDvahFq3fXubsXJ5mN8r/Az5H4KVAu67AdbXqBH5zOOqEhYDxNlI8BUJlWrl8zOv8CLKwUZTAsadq29Ga382mO+SkWQ5/Lo/gYKU6wgL4sFVhXGhOTMJKw/B1HoPgwZ0+efzVGS/UfsBKgspj/+0chnbNhKAgKnX4pvVjMsatgpceGrF91i4BthV08zi3akzGD7pHaCO8UeQnKnDbHv0QDyEo1Mw1omWPGLZzTT5eA7R3doKU0l3czFBttDRtYvKH5mckP70nrUdruOQte+RzmdQS0VejMdcn2NSwCPy86o92vATmfx4zahG0+C7EgxB+n8A5V5WK+ihRhjIparC1R9FQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91cGxvYWRfbW9uaXRvci9tYWluL2RvY3Mvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Upload Monitor","summary":"Monitor directories for upload inactivity","description":"Monitor directories for file upload inactivity and receive notifications when no new files have been uploaded within a configured time period."}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhMfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwMzI0MTMxMTQ4WhcNMzYwNjI5MTMxMTQ4WjAZMRcwFQYD\r\nVQQDDA51cGxvYWRfbW9uaXRvcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBAObKRIBTbgvFzXN6BQ7NOUNvSpyKbBCGKbH0ARmNq1W86s35A/XYocJtmgBW\r\nk7N0jPBiu/7x3LDkTmnLKzBP6Tn6sOKGZUtCmseTLpGfrheJiZd5PPfPfyX9vNFK\r\nzVCQ+jw0Zj46AjbRX+pdJhi8Ygkbf7JfFq9vVMtwpD7yslW7AUyP7Bkrj19EX9w7\r\nK9M4ivaJ2q+DY13QAec9K8EBiaLAOPcK7BDVLKsJgTQQgcEYFI4gbPjVHnPcYmWb\r\nHjCyct4R9kt5aZSPpU+xvZvC5loyEugJqB+a6N/fENv5ayiunp7QVIiYnrdRbX/8\r\nj5531SKMG2dqo90fHqW6poedYOtbW172P5AG3MGgxDCOy8FNhdpSl8OoREGT4gsu\r\niiixP4OgjUCJHyE+BpB3stCY3KH7QxR7MGCh5NT2wIxXeklzse5FSkoy8kdwxcHe\r\n8L7xjiVErDhkAawlH9iLkyBcN0VikCQbM7ENTxXTSs+JwlqHKnLp+xucPOSkx3bP\r\nMgiHwcmKOHZa90gD3zEieP2mvGxEdTkCMBXB9KQWEeKQ571cMRgSJgvg1NisH/Da\r\nPZMcqASqaWjN7V6aQEjVirnDLMKhD1SeY3T0+jORNdNfGMFEVdmQ9xGcUvDCTy4x\r\nw1Fscfi2VEcm8j5THTFamLIWhWrhFtqjErT3gaf1AWaE5YEvAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAAH3b6hSJsyJbsFh3Ivpwbc4Z+lqe2k1TG7CxZEw2q9mpo9T\r\n2cxKzECeb2gOe+84VEtCcmyR0feR6WPTuANvUJXlVJ1y1csW7TsHWQFkoY4bN8K/\r\nmbx2bVdya7IkGL7h8zUnWYck9Cad9G+plG3rG5CqEOzhdR3rG1a8yU48IEGgkaBw\r\neMe0iQ0uRCxm4hen4pq1ZG5bdn27yyMWYwAduuGc2k/6XpdhCUi6oIGuBKuK6E+X\r\nD3kH/u2uSaq2mQ/Ehs2ZJHFbFHJ6jZ6ytal7xrHqjZCyFQG250hnXTxF1NvW9aov\r\nR0+DSoFbryn+B4cMw9n8hZLUbN+0w4rMa+KJw9s=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"auto_groups","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/jo23sh/auto_groups/issues","website":"https://github.com/jo23sh/auto_groups","created":"2020-04-20T04:39:50.802079Z","lastModified":"2026-09-07T06:46:43.218660Z","releases":[{"version":"1.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/jo23sh/auto_groups/releases/download/v1.8.1/auto_groups-v1.8.1.tar.gz","created":"2026-09-07T06:46:43.209583Z","licenses":["agpl"],"lastModified":"2026-09-07T06:46:43.255748Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"dSAZmEH4DQm5ek4h5McKdZRPiyY+IokxzM9fhF7UoNIBOAiJmdxgbN88TRZS+SQgClGfp5x0skaOwgvfdKJRRa3M4GlZXyLql0K12z3Z1IHSqj06ZrUHawW2KbG3yVniQc6aqyPqEVKW3qz3xIIavpVVzp9a0zLpE5BMgUHCXKDv9DSWI8kYiqR6Qa8wFnTJ/43YmaBCpi6J2E5lZLfT9loweS150BFnwWvYobuUrDY9UcwnCi+E8dglHlD0AXfHnlu/xzP+4NUDIoqk8n+o9QGfTgd8b+2VQvIeFWbCvo/3SJfHo/C8Mh35QYNom5EzG65xwBP3oUi6Jtv/Pf2LzDb4mhH61e1tKSLi90PW1zCk2UPyWcD/LJZBBoSgobLfybBkq2MsiG6fD0WKBpu4SVVvhK52aPNBQeUT5Zd7cflGQ9gR41Kx1EsIpCYL2fymttXR/At7LIpFCPGaA9Ny7mHR0xax9MCEuJ4sPFqiB7cyXGxRd/woh1VVraHajIsnWcCKv8PPw66OLAHtzApHGLMDhVjWg0xSzzbBiAcbN8mjrutNzUXOLTP6WgchX+kHI+QQuc450bgrU4PMYpcNq5ign01Y8rCyxLmd3Vu/4GCTY0POV5soZBd5wQ+qGblsUqYq/uCpMh0xBr5A+ozqCG+02fa42aq1d7tRmNTgKVc=","translations":{"en":{"changelog":"### Changed\n\n- Translation updates from Transifex: the \"Override Groups\" label in eight more\n  languages, and revised Brazilian Portuguese terminology.\n\n### Fixed\n\n- Code coverage reporting and the README coverage badge, which had been broken\n  since Codecov sunset the `codecov.io/bash` uploader the workflow relied on."}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/jo23sh/auto_groups/releases/download/v1.8.0/auto_groups-v1.8.0.tar.gz","created":"2026-09-03T07:35:49.467250Z","licenses":["agpl"],"lastModified":"2026-09-03T07:35:49.548031Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"oTxFtRtiR2kH1tLRmnUeIBbWSrX1FQ1kJaiNro8EDq5ZmlzYwNTgcgPz1iKEYfIwuHSsVMHb+VrZmB8qmGN6arr4V+FrO+9rk52FJzjLNg1QAwOslqCssPl6rOmv8jsLuFvpryG2O282wnwp45mhux7j1Z7xT/JZugYODC7bt6AKIiewjZeuUItwl/y35pU3idL2l6oJzY+3/51VVATt/3lkbJ+gTJkjoeXfUDYFxgt04ls0zCDe5FuGmfjzGMUkiESPDhAXhsTlnajzlhsJnO3BcI3oM9YJD2m0xMU6y6OB5am1UKjNHRIVoQq64mz6uUIk4+CrrjiiFAUq5lQAWNdq5htF3q92WZmHg6Bl3KFrDNjCBLXRXWSMT0ZYefHnzVf0/TSj2q5kQsuqWewTSylX8OJNMor2O6x1o5YKuYHRUaJCCnYq1Qz3GriI63e+9CnoVAeD3xRRNu41hl+osAn5XhAy/NPv5upnJNhWkzmLhhhYUqg+3ZvrZLeJSzvUjmeOOGWrJs4oku1seAY5Uh2DXSiKkEjpRPKdHAE0kNR6uPF36W/92tHRlzR4thP/86nOp6ajRiu1bwsJOVyIZZVK/fhbKv/Y5jiaYp5WyhD8qRH4bd7d97uzAxzJxdwmAsm5SDErJSWHcxM5vRsnB0oDMXx5KYctuoP2/9pQgRM=","translations":{"en":{"changelog":"### Fixed\n\n- The admin settings were dead on Nextcloud 34, which no longer ships jQuery or\n  `OC.Settings.setupGroupsSelect` — the form threw `$ is not defined` and never\n  initialised its group pickers.\n\n### Changed\n\n- The admin form is now a declarative settings form rendered by Nextcloud itself, so\n  the app ships no template, no stylesheet and no JavaScript. The stored config format\n  is unchanged, so no migration is needed.\n- The group pickers list group IDs. Groups whose display name differs from their ID are\n  shown by ID, which the previous picker did not do.\n- New translatable string \"Override Groups\" (the old label carried a trailing colon)."}},"signatureDigest":"sha512"},{"version":"1.7.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/jo23sh/auto_groups/releases/download/v1.7.3/auto_groups-v1.7.3.tar.gz","created":"2026-09-01T06:25:35.665001Z","licenses":["agpl"],"lastModified":"2026-09-01T06:25:35.725966Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"rqSqFdc83QlW8uK7uouVUd/wWUT55oAYhXcwjmJAgrtPV9AdkidvNyb8Bn99zvMRU2K2Nq49LCTCFcZ2TDf74s6qgDBbwtIjUiPiYavE6vwiFoMLImfG5yOrjrna8HmSPHowNB+AqPqn2vuWycbgLxfePjBnmwvDzy1dGhZjULLmrBeEFtaTpEicnNFso3PUhIuqd4Iyzk1nNm+SJpGUCc6vDWlwWS3MAXhXSD7Sp4shDcKINltZmFFI+BeWDj8qOUQeh0f7pszDk0sRYibAB4e9ifBjaILjNrmQiUQrmPcqvK1hnLjbXfmLiOsXeXlEddfrnPO7PHUz99p4CewiVdIk4QN6DCdNx6KXbSj5sU/60uork0oeG4itwQSQILKMo3KZaJCCwAW+V5nGBUDAVkFA3U+qDEhzRwumWMTe0jS18kPNOSwY1P5vzG0gBugE47pgEuD33ay5fKtUDxOpKvh9GNQhsWoT4YwnYHiURqn9orsGD/vLz8ZHtjtOsFAi0PlrO5hQROcZhoN5+5H9bLBQ7+4tyCGaYJdhS0w25nTOAYC9zBZ9pf2i8hEBEKpBXQjsTpGec6i5/liiuF6KKTaGjfE4Zix9T3fDqFzLzVoM9zLsBsx+/Pu6Gx9QgCo3l/8YWnb7yyxhs9mQc8idxrqQiO9QtJmgHY1S5IjBip8=","translations":{"en":{"changelog":"### Changed\n\n- Compatibility up to NC36\n- Test against PHP 8.4, and against NC35\n- Update the GitHub Actions workflows off deprecated actions and Node.js 20\n\n### Fixed\n\n- Don't re-add a user to the auto groups while they are being deleted, which left orphaned group memberships behind. (#94)"}},"signatureDigest":"sha512"},{"version":"1.7.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/jo23sh/auto_groups/releases/download/v1.7.2/auto_groups-v1.7.2.tar.gz","created":"2026-08-06T05:45:27.467576Z","licenses":["agpl"],"lastModified":"2026-08-06T05:45:27.550534Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"VugaXAO5aWonRU/Vpv5/ZGldoQJdvavPLyqSP2dVAgDbBC3PPhxMmeN1x6Y3Vxz8yzsqwPAtmuYrXhlQzEhxPKr0aQH5HrsJPpVvme2D9HhqZcc1kajA7nBVlS/hHOUjIGp8UC1zrLXCa6PtG9MrhDGZ8YL57jFLxxkGw2bsHxCj9Kx6udNafs4T2xjPSQ5QFU5z/peQTH3byj5WAufmPKsmBicneOf+00oMPUzHML2N+BCvk3p7De4gqj7niSc4l77PryXWRHov4mvnS60zx+5WVyNWCFVJZaA+7KWr5o+jzmDP7Xrn+wz9or0jgTSWusp6m56+6fpSDxjkxSvy8kkayI7n9f13zaT8kiI2IMzog+ukVKM3+0FCscdyTGXOw6rUPOlno618o/5KfdsdM/Vbx+EjFWWDvefM2tUvsMTNB91OLepQiE9O847MUNq7akBWtNO6NdyQQz8cv95YMYQV/nklPSpi+sZWgEA+3e3MOplCtWy5ao8sxN0TTibTQASqBT0la8UTjd6/tKtiTEpAAUxMqgc5gqNiAT5/uHE/XGuzdLgraurgtBB9bZBzHIXz7v5rbROyYRuvoGNzBnE0IyPA77E/DJIzjy6H+uCoOeYk+HLdaShWDHuvpDesrqT9z6mHkkIAGhiHlq/ZD8Zglgwvlj4MvhRpbM7d97k=","translations":{"en":{"changelog":"### Changed\n\n- Compatibility up to NC35, drop EOL version NC31"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvMjNzaC9hdXRvX2dyb3Vwcy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Auto Groups","summary":"Automatically adds all users to one or multiple specified groups.","description":"Automatically add users to the specified Auto Groups, except those users belonging to one of the specified Override Groups. \nOptionally, the group assignment can be triggered on every successful login, which is useful for external user backends.\n\n## Configuration\n\n- Go to \"Settings > Administration > Additional settings\"\n- Configure the Auto Groups\n- If required, configure the Override Groups (e.g., for Service Accounts)\n- Optionally, enable the Login Hook, which will enforce correct group membership on every successful login\n\nNote that this app prevents group deletions for groups referenced as Auto Groups or Override Groups.\n\n## Comparison to similar Apps\n\n* [Everyone Group](https://apps.nextcloud.com/apps/group_everyone): The \"Everyone Group\" app adds a virtual Group Backend, always returning all users. In contrast, \"Auto Groups\" operates on \"real\" groups in your normal Group Backend. Additionally, it is possible to specify Override Groups which will prevent users from being added to the Auto Group(s).\n* [Default Group](https://apps.nextcloud.com/apps/defaultgroup): \"Auto Groups\" is actually a modernized and maintaned fork of \"Default Group\", which seems to be abandoned since NC12 or so. In terms of functionality, they are almost identical."}},"isFeatured":false,"authors":[{"name":"Josua Hunziker","mail":"josh@o23.ch","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhENMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDA3MTEwNjI4WhcNMzAwNzE0MTEwNjI4WjAWMRQwEgYD\nVQQDDAthdXRvX2dyb3VwczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAN3wygx1vrnOKZ7t8vinIc9bQCtnY5rfHwLXT0g1mHnYz04SL3SmbQ6uATOsHFiT\nMlHvxbw9Mg90G7I9kqEkFbC6stAVwbKE2Ib/GbCMiBBQUwUeet0TWYpLYm240HGb\nICkMwd0dyIRurKHjXN9bw7x/ltFipadijEEl9jqlSPFeWWU6v+G2xKo+9yN10gyi\nHxaWyDPPcppAl51V93AxgxAO3I1Fgf75r1BXDtq9WGaCqyPGd/4GldkrHFxUOR2g\nqvz50m4lEY9CY2MQIpE4eOYmX/HcEWYgiN6sAn2lHipZImnZzi8l2dCkjqiFPphw\n1/SfTsT9m1ProjwgbR4GGgRXaL9vuPPKNj1NSpw074RvssUXU5b/6Z99SUtggUEH\nwgyAQmhJQp9xLfb5v7aqYp+Ktc0JUOQLcpW2ieBwojpkfySeZAZ1nLeT6rmKGEmp\nc4989+50MPJqyJYnD4pqQfvcwCs6Z4H+uYAKCNZZXq/uGYBxpn+v5MMH5+pudZ2G\nxSQgTe1KbW4fxD6tYw63RG7ebQynQrXOdguhmIb8VHHon/GE7yq7blSKiNvoMawe\nDLyquqs4ALvPhur5GyH8VjXUuwzamHquVCgzpWlWZlQFL6wvs/zdG0Vnbh4niDCi\na6bKnWv9nVXu3oLZdzId3f0Ho5o5jUePNIQ7rbiK8Zc7AgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBABVbjKnHgM5SgUPQYbM4KmjG9cNmtcOJq8s+soJmywat+XLYiH2I\n+QZ8BXboyOJjO+5s51OmwUek5aounoCbyfYWF6/Pl7RfwTj3saJTBumMOkKaUxER\ngQmklRKyiWRAFVI7YaQ29fL+LM1BgXQf9Q5/WUkhRnXTh4sXxhbK6yMs3a/8RXHs\nAqPbESMZgO1K1xq4Lk6G/RleGAlu3tgKjEbDo+KJMa4PIFk6UeVS3gk8HnemSYRp\n1C/rSLhkZV4r1yoVE6uZ9hmVHdtAzQPmfbyZoVXi4olxEvkgCgKBl1NGVXMJ6Ok0\nuVnNeRC/D139jWL7tlrY0O8ecYWc07Glj/8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"previewgenerator","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/previewgenerator/issues","website":"https://github.com/nextcloud/previewgenerator","created":"2016-12-07T10:01:33.940211Z","lastModified":"2026-09-20T13:37:23.471749Z","releases":[{"version":"5.15.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/previewgenerator/releases/download/v5.15.0/previewgenerator-v5.15.0.tar.gz","created":"2026-09-20T13:37:23.461532Z","licenses":["agpl"],"lastModified":"2026-09-20T13:37:23.528527Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"NgWd8xTLPUyu5A/pMZjF/TsscZiX9/n3gzlvWHoXzf2y3Gv4fn72ipVLXB6VwGZqt1F4+WwSB2SKIdr5mQYndDXrhXKgbx6Jcph9mAfGE1KQkqWnqO3PBkVQLPDapudb2OXwMpGEfjiz3sDixEBJ8x934E6MV/q1SEDADKVNwSBieq8WBwOBo053Y0ltJ8uLqf5XOhdi8oLLhZAev/edRA31Dl4qBntAZqYUmvlUebGM3pT741w4jPTOviSbetTsCpw4oa8XBRFcosdlMCtfCAXqZ5WeCYazK/6BVUeGWM/pNQf674aBxnbVrcOjsSL2cvt67wLmmkjq3squxAIp2EIx41uzijTc7yo6yTMMXHaTehAbaUD4TBU5NoRTKfPkJ+DsfEABU2V5H4f+uwYLiiG43C+V3pAyXiZZSlPPN/leuakmsaEYzg/hEKzOoPFZRDFzkgSnyhdBTMX1A1rX4vWL3NDzQ4l1eqT2L+i9Aom4RNSa2rhZJ0tDuXt1Sj1d9obvY4pVnEZC7VL17ftoNDIK4F71t6HbbX2N66ifkTgXA6wfRO1+Fq3ToOJi+jSx+Ux9Y3DILqxPovuipTi/vkbi3gRIscy1lOt30QvNCz7NwrlIJcZrHiCHpzcjOJ1sPsMW4EUyyZtF/B7f1n9qgUj7fz6scXkB02LF6f7b/+w=","translations":{"en":{"changelog":"### Added\n- Add support for Nextcloud 35\n\n### Removed\n- Drop support for Nextcloud 31, 32 and PHP 8.1 (EOL)"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Preview Generator","summary":"A preview pre-generation app","description":"The Preview Generator app allows admins to pre-generate previews. The app listens to edit events and stores this information. Once a cron job is triggered it will generate start preview generation. This means that you can better utilize your system by pre-generating previews when your system is normally idle and thus putting less load on your machine when the requests are actually served.\n\nThe app does not replace on demand preview generation so if a preview is requested before it is pre-generated it will still be shown.\nThe first time you install this app, before using a cron job, you properly want to generate all previews via:\n**occ preview:generate-all -vvv**\n\nThe preview queue will be processed automatically by a background job if the system cron background job mode is configured in Nextcloud. Additionally, you may run **occ preview:pre-generate -vvv** to a process the queue of pending previews immediately."}},"isFeatured":false,"authors":[{"name":"Richard Steinmetz","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8947368421052632,"ratingNumRecent":0,"ratingNumOverall":19,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhGkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjExMDI3MjE1MjExWhcNMzIwMjAyMjE1MjExWjAbMRkwFwYD\nVQQDDBBwcmV2aWV3Z2VuZXJhdG9yMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEA0Ka9ZfN/Hg5QsLQxELUexTyNUbmyl1Ok6wgLCH3UKBp5CkWS04wasSMC\nhY52J9css2GjIth3KDsyfcQE0w3yR9G0s4wD4cnFPM/Dv/t+Fq/v2YSb2hNGCwn0\nJJRlL1y88pETzrsuumcUSEV8ElQFppTNH4ee4xRFsC9wo/th0o11Q9NzNLrJjJEh\nqSQu9lH6XWSv4JrFKlxhrXSAfiiyZX9NaRH9UDMyg5c7kW0vUKkFMd6SYmgQXgMz\nKPimHTQ+L3B5gmHRK/LlukHvcqpI5KE3nsfy0G0N8mGfJ8638VJRne87UYO0RIzp\nFCnguimt9rdQ9MVWo+n3hCVjMo0GuzmO0NeC4rrqTSpEkqbPaCJh4Jk90Nu4ExHo\nm0Wf46yVSmOjum+eLi2Iv2LIgRttu+bqQnmOl709KE33dvRzz1wmXOF9kCFd61h0\nr3bhM550jxSVEXBVwgj+uCpLPrwA78af0JxAYG2KYBmUs1dEN+htOMX9TqMn5i2e\no9GyVZ9D3NXGZgLSvXZOlp0+oOqpAytvGCBHdfHDqCjtLb+rrwnEQ5PHG5DgnSz6\n1YsrXS0a7mACQKv3T/FzVZVYFM2k9SbN96UjKA6PdMW5PGSr0kickgwgP+sv5RwA\n7shxzcUofH9HSMZNdT/smRL60WsDR69CRMHM723y8TzXAB78vWMCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEABUmnIMXAgFHCGU+z02LWjTCV7N0ksxl8ahN3dk128HJK\naUy+LGIFZffCStUvcNov7me33llF7AgQAItUfhVd/2rbvOV3QdtKXDLvlwY3jJJi\namBI/FAE9fID42/KwSoaNrXHK+8v6gUL3sBfEuhqrIWme3oob2kWTz5jt//q+2ki\nmF5fW2q3Otwe+GqjSy2HdUk4RPbCOTKkIpmKkKcq/XtQii0GBYD4wTPO5Zwwzzi7\nAUFBf1smOX876QjYw6ygJsUbuKgDHHESkKK94nPPA8+UCzWDI5AMFTq6CUcFUln1\naZVNsZpz991jXkBsPY7mUkk4weTezvhL8MxmlE4ocA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nopstation_analytics","categories":["dashboard","integration","office"],"userDocs":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics#readme","adminDocs":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics#%EF%B8%8F-installation--setup","developerDocs":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics#webhooks-integration","issueTracker":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics/issues","website":"https://www.nop-station.com","created":"2026-09-29T10:08:58.896763Z","lastModified":"2026-09-29T14:25:48.598134Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics/releases/download/1.0.1/nopstation_analytics.tar.gz","created":"2026-09-29T13:27:05.742738Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T14:25:48.628403Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"du4yhDPYEnsC9sA5OPeJV7KSI4JvmiL9xMoyFt7I+Fp4K0qr/sX7VLJN2PVAv7ZSgHePMB0kn3bwFBnH5opITutgkXTHQehh69ry8UIsTs1r1Aesvi1Y3BP0OvW9nAPnxDi7sR1yYgDkdcRHmhANlse5IA/IWegzlYrFUQasdJsuZjtlR3mAwypdO9BsgQw1GZpFUHeTuBafSYySP5L35PyGPPduwypYKxUAa6sR5RL2fqmbGODQ3mLOHn9C7bb6NtTV8GpmYIo7NXUp9MDsAukLLx0m2uN2BTF7KIJc0TfddDETFxzv4kUUGyfiaXGXn0i6lU5D3TakQOemChJ2OzyxOn97el+dW0z7YMYHLHyg6+k/rHuIAfFJESq+nKCaFPceA87xG7b0kJ27FClSG+oLSaVpzmscCkI87vd6hZz4SOvUHWT0wLqLjzCoazTWe1DQLijQy3ayhGONLfyVBAwBPP7HJB7MO1HrDSFhHnOyfdv8re+Uq/1vRj8m/8Yk1fVj2Her4BHxSw4oRByZ4xMd5++OolZr1Bvf/fbrLLzKZEGgnd9bc2m+4GoxGhjrrMYD+S8Ay5HGPM6bBlPwWDq8uf0KuJXydSz4FOdPoGD3lWdpaVvma4Xr4wnMMc2IDtU6XLnk7FPbH3xmYcM/o+27jRwPeIwNV+kojzIkNGI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics/releases/download/1.0.0/nopstation_analytics.tar.gz","created":"2026-09-29T12:20:48.952898Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T12:20:48.995386Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"GYRsWBQhqiDwMsWE1wu/ZlqUjWoX/AJ6KK8vk9vVFaN06dBIinoz+WMcGPhIY4Zt/6MJXoUVF4EBKaLdlq/wI6DHWfpbmZ0cVRr8cbU2jgL3DYA1DxjBwOrJmNFix2Jm/ypyVshNmxXLKzZeijTD9O1xaSGHosz9bVrj2aijLEyVm9WjTpSR+Q54Qi5jDsA1A6mv0QRGMbrGmhMzEj+CSKTp/x4jUlQEezjJy2+UNe6yKkyoAvYPnbUEUlkpGoV498+t/fFqK7gaKH5ZNIDbVRL5fV8qBgFvAy8Sx9duGLp5I+S/Jg1R13S/g/3RhVT66IfnX0vYOo4MIn6Eg7JkXsQ6Aq6WL3DdcUk3xaz+Q2tLJJmiU/NTwXQWP62/UV4o3ZhcS148ObzI2I5O0nv80l0V8ruhtMEGZ/XOFhj3mZ+MgnIQAoDL5JDTGWE8ZzyRokBx7FvzcqqICafXhRu3EC3XpUFeKN04bEUcqLmzFygaKgX16ha2jowUNWNPBXwCC9sIG1pmTZWQdarMQRnhjwbXPMtGosJ4Kx/W3x/CkAwehia5UxB7hLZLteq5bDjqfJvLflryomstKuhL9yapKKQRd0Bn60WqK1n8xGAbUiki4v8OBzFRiJxOeHv01ctOlB7cZtTsg7gZRo9/T6IK2AtiGCoeRrnolu8bwbv7XIE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cubm9wLXN0YXRpb24uY29tL2ltYWdlcy91cGxvYWRlZC9Ub3BpY3MvaWVzLW9wZXJhdGlvbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"nopCommerce Analytics by nopStation","summary":"nopCommerce Sales Analytics & Reporting Studio by nopStation","description":"# nopCommerce Analytics & Reporting Studio by nopStation\n\nA powerful, enterprise-grade Nextcloud application designed to seamlessly bridge your **nopCommerce** e-commerce store with your self-hosted **Nextcloud** workspace. Monitor sales, track revenue performance, inspect customer lifetime value, manage fulfillment logistics, and prevent stockouts—all within your private cloud.\n\n---\n\n### 🌟 Key Highlights\n\n- **🔒 100% On-Premise & Data Sovereignty**: All raw e-commerce data (orders, line items, customers, products, and shipments) is synchronized directly into your local Nextcloud database. All KPI calculations and reports run on your server—zero third-party tracking, zero external SaaS dependencies.\n- **⚡ Real-Time Synchronized E-Commerce**: Supports both on-demand manual sync (Full & Incremental) and automated real-time event updates via HMAC-SHA256 signed webhooks (`OrderCreated`, `OrderPaid`, `CustomerRegistered`, `ProductStockChanged`).\n- **💼 Enterprise UX & State Persistence**: High-performance Vue 3 interface with deep URL hash routing (`#/dashboard`, `#/reports/summary`, `#/reports/customers`, `#/reports/lowstock`, `#/exports`, `#/settings`) and persistent state across page reloads.\n\n---\n\n### 📊 Core Features\n\n#### 1. Executive Sales KPI Dashboard\n- **Live Performance Metrics**: Instant cards for Gross Revenue, Net Profit, Total Orders, Average Order Value (AOV), Shipping Fees, and Tax Collected.\n- **Interactive Multi-Granularity Trends**: Interactive side-by-side charts for Revenue vs. Profit and Order Volumes with Day, Week, and Month grouping.\n- **Fulfillment & Logistics Intelligence**: Real-time order fulfillment tracker (Delivered, Shipped, Not Yet Shipped, Shipping Not Required) with efficiency rate progress indicator and live dispatch feed.\n\n#### 2. Deep Operational Sales Reports\n- **Dynamic Period Breakdown**: Group sales performance by Day, Week, or Month.\n- **3-Level Hierarchical Drilldown**:\n  - **Level 1**: Periodic revenue, tax, and order count summaries.\n  - **Level 2**: Expandable orders table with Order ID, Customer Name/Email, Timestamp, Payment Method, Shipping Method, Discounts, and Status badges.\n  - **Level 3**: Expandable order line items breakdown showing Product Name, SKU, Quantity, Unit Price, and Subtotal.\n- **Compact Child Pagination**: Clean navigation controls for large order volumes.\n\n#### 3. Customer Segmentation & Analytics\n- **3-Level Expandable Customer Directory**: Customer profile → Customer orders history → Order line items.\n- **Flexible Date Range Filtering**: Nullable start and end dates with quick presets (*All Time*, *Last 30 Days*, *Last 90 Days*, *This Year*).\n- **Segment & Behavior Filters**: Search by Name, Email, or Customer ID; filter by segment (*First-Time Buyers* vs *Returning Customers*); sort by *Highest Spend*, *Most Orders*, *Most Recent Order*, or *Customer Name*.\n- **Dual Independent Pagination**: Dedicated pagination controls for both the parent customer list and nested order histories.\n\n#### 4. Low Stock Inventory Alerts\n- **Proactive Stock Monitoring**: Automatically identifies and lists catalog products with inventory levels at or below 10 units to help your team prevent stockouts and backorders.\n\n#### 5. Automated CSV Report Exports\n- **One-Click Export to Nextcloud Files**: Generate clean CSV reports and store them directly inside your Nextcloud Files storage (`/Files/Analytics/`) for immediate sharing and team collaboration.\n\n---\n\n### ⚙️ Quick Installation & Setup\n\n1. **Install App**: Place `nopstation_analytics` into your Nextcloud server's `apps/` or `custom_apps/` folder, or install directly from the Nextcloud App Store.\n2. **Enable App**: Run `php occ app:enable nopstation_analytics` via terminal or enable it through the Nextcloud Apps management screen.\n3. **Configure Store Credentials**:\n   - Open **nopCommerce Analytics** from the Nextcloud app header menu.\n   - Go to **Settings & Data Sync**.\n   - Enter your nopCommerce Store Base URL (e.g. `https://your-store.com`).\n   - Enter your REST API credentials (Admin Email & Password or JWT credentials) and click **Save Settings**.\n   - Click **Test Connection** to verify connectivity, then run **Run Full Sync**.\n4. **Real-time Webhook Configuration (Optional)**:\n   - In your nopCommerce Webhook plugin, configure endpoints to post to `https://<your-nextcloud>/index.php/apps/nopstation_analytics/api/v1/webhook` with header `X-Nop-Signature` for instant updates.\n\n---\n\n### 🏢 Developed by nopStation (Brain Station 23)\n\n**nopStation** is the premier brand of **Brain Station 23 PLC**, dedicated to the global nopCommerce ecosystem:\n- **nopCommerce Gold Solution Partner**: Recognized as the #1 provider of nopCommerce enterprise plugins, multi-platform mobile apps, themes, and custom engineering.\n- **ERP 23 Integration**: Seamless enterprise resource planning and digital transformation solutions.\n- **Official Website**: [https://www.nop-station.com](https://www.nop-station.com)\n- **nopCommerce Marketplace**: [nopStation on nopCommerce](https://www.nopcommerce.com/en/nopstation)\n- **LinkedIn**: [nopStation Showcase](https://www.linkedin.com/showcase/nopstation/) | [ERP 23](https://www.linkedin.com/showcase/erp-23bs)\n- **Customer Support**: support@nop-station.com"}},"isFeatured":false,"authors":[{"name":"nopStation","mail":"support@nop-station.com","homepage":"https://www.nop-station.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhQRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTEwMDkxNzQwWhcNMzYxMjE2MDkxNzQwWjAfMR0wGwYD\nVQQDDBRub3BzdGF0aW9uX2FuYWx5dGljczCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALWoFIElaYRyFk6roW/3SMIch+7RCx01+WYjXPLnkAxU36ZKLgKi\nAqi7Pz8bFw2I3eeMfaWPq06lHJblJZmVFBqB27mTPgeOsr8Ws16r9YM2HnNSSRA1\nlOJ+eR9Kh+e/Sqs9ELl00WWS2qcO8d6TBaa2yzwg38x+O7YMypZ/P7LeNPKgNMp7\nGadAAaiPimcKhq0LKjuR2u+05uATCJeUYQW5a7OLxpMkJuTHaTcmAXG57ZkJmK/A\n8PDSTT0O4CYfugNyO6OM2p5uu9xGRSa9xpcp/tsvMS5mujB2i1Vz2qGjSKntkYme\nBoxB7KVJzyGJcK5UrXw9TeSy4ye3elMnztW3m7Q5PgfvGaAmMecqYckrqaE+U4Zt\nG7uDZygc0qhMUTL9NU2crw5E/uT1OPtv2qSJOy9XHzBDY3xvMOcZ0wLyJ5YKrzLe\nSkM9TV+Rr0d4CkJH/ks7qWCMU2kONrKNeaF2C1CELN32bYk1vrTDw7iOeC8qj3vs\n7mF8uDBBQ06w5v1btFR98yNWBBV0x95fFAV0rPTdj5TkqRMXunEsNddjLnI6mEby\naZ/qkEUdEZ/KT+i0p6jEynqh4CVpoHWiEfzywmyD8HmFE8puyZXTLKGIg4wlPkjN\n6Ti2Wqc5pFw49UCTmhhKJhjlQ0Pfd5Je6Or1apM7f7FKv0yKwk8MDlCfAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAGF3aZpyW0+IbAii4A4jSNP85vGMW8mndhjQk9l0\nXByALErOewR6B19eHGTVLqsVfsmy95QC0sGM1l+1ETwoT8qhj7TbbrQZhBGRv/5R\nqXJKQUFIe/+vWpjNYhDDY/fRe2ZPE2bnVVpgVbi7YGxhdeKPW8R8FbLYoyT2WH5R\nT3kTJotf152rTomKgSzDY31bdhtqJVMmuuVRX2v9JJckhku5L9GEEZVf+EuufoqG\n6XMCnIxu9CRVauWSb1WUvHecB5xYq6mJmN760cpBhvttA3OEozo/bur3syaKtVkU\n9kdpgxUayC4xmKJSGyWPAIXHqxnxdvXw9cuPoLTMhINi9L8=\n-----END CERTIFICATE-----","discussion":"https://github.com/nopStationOffical/Nextcloud-NopCommerce-Analytics/discussions"},{"id":"weekplanner","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sorenjohanson/weekplanner-nextcloud/discussions/categories/bugs","website":"https://github.com/sorenjohanson/weekplanner-nextcloud","created":"2026-03-07T11:03:54.330117Z","lastModified":"2026-10-14T12:47:50.137019Z","releases":[{"version":"1.16.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sorenjohanson/weekplanner-nextcloud/releases/download/v1.16.1/weekplanner-v1.16.1.tar.gz","created":"2026-10-14T12:47:50.131477Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T12:47:50.176357Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"G8kK/auzmHJCMNOcu1CZUlDCcyLNn5dPUCXjEvijmkC2DE7U5fJn/jsv3N+1pMA1ZmCHy7R3SK/r23pEqftUit0aSPkgbN5OULD4xMxWA7IkTP/E3TIMO1JvODTXEqtRd62K+xAyMv1vVNjTFofUmje9VV5s5BBw2mjxXEjz0T2uatZYU1qArqmAwymOD9A9Y+n3EUU8TvlAkDF80JHQkpJttx/l9B04llBlvF/pjtW/VdG9+dGk6fVabRrHNRWMYhdLt2RYjY1OvcbitVS5AtrlL9u3UKWfqdahXDTbyGhCX09IbdsXmYt/ChelutesLKLKxz2q3i1i6fhLus2FjkoVk++MUiYgQqSYxjau8ytx19vILIzsYx4YWTqbSE3bzDVPCDi5+RZxXG/YkbOLi3aplEItY+ajfXbvSTt2FqI4iGGePgTdQ+Hqpusk4ZlwIfTZNqg6kspfH/+Zk8RXc9K6MHhARugUxUxndgGnf66EmWgrwF6u28UoOs5Me/wcOSowYqJmfZCZY4x05vlSC0Dl4z249uXYUOFzw88IuAApemzsv3XIGxCOEE8DvBmKFLnxTuQRv04IHFFMLmtMLH4b4Gcmx7HHvBBsLzp+b37bU9q+Shaeh1O3DbzYUdpqWYap1p0oFvIWoRkQyUVRH0jnfPHUKQZE43+8phm17zQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.16.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sorenjohanson/weekplanner-nextcloud/releases/download/v1.16.0/weekplanner-v1.16.0.tar.gz","created":"2026-10-03T07:52:29.091310Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T07:52:29.142604Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"K3pcgwy3M/3NgvUoxJdJDdE6vWFKMZSDsOlm2O1acR/unsPGK1HNuBsmj6GyF56eYbEUK98lBq2crE5yRVydJwoHaD+4IJwZFMZaiXpWAGQ78cKb8EOUHGSm2nLPfbsGNQyRsnvbZkKuvD+wd3lXAaXKu8osdNtWfYhZpHaAbIFu9t/nxcI2FWyOnXseLLclQtE7z8uJuvY+M71H4Rr2rMU41t0U7F8pkafUQt2tp3xrLkHQX9T22qzIVUjR4b2UeGtFzZCo0mAo+rRTc21DN2+27PtbOUmH9llv83JqXZM3iItCCqSQhfGlJ5ZpWhOZSfm07e4lAwGkixPENS5H/gND9D+7ekexGmELo0bsb0g83hzOuZzPrcEoRzFPybA6j17eennY5JNoz7TpqXemBa3i2JPI2RqNTwVJZCRWy456hdn1+d5HEEAaFDjRhS99E8t6zxHKozpPynlMXo64q8uzYnnmfqaDZnv+7IXge31UkDSX55RhcUb0luO7HBeanU/P5neVXqG5D/z0JBQAvovAEZ3ZQ5/qp531+E60nbGVvDusXGaAQEG0jETiT8Ek+onKmat4gag+F1qa7+WkmyqVe44s2aozp/FSfDO3Pv5Z3yvZRV4Y9a3NpLNlxwWhZMYjYFFwAsnnkk/tvpKjZca6eyqrRjkfFNdCgTm32QA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NvcmVuam9oYW5zb24vd2Vla3BsYW5uZXItbmV4dGNsb3VkL21haW4vaW1nL3dlZWtwbGFubmVyX3Byb21vX2ltYWdlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Week Planner","summary":"🗓️ A clean weekly planner — drag, drop, and tick off your tasks","description":"**Your week, at a glance — self-hosted and distraction-free!**\n\nA simple weekly planner inspired by [Tweek](https://tweek.so), living right inside your Nextcloud.\n\n- **🗓️ Weekly overview:** See all your tasks laid out across the seven days of the week in one clean view.\n- **🖱️ Drag & drop:** Effortlessly reschedule tasks by dragging them from one day to another — no friction, no hassle.\n- **✅ Tick things off:** Mark tasks as done and get that satisfying sense of progress throughout your week.\n- **🔒 Your data stays yours:** Unlike Tweek, Todoist, or other cloud-based planners, all your tasks remain on your own Nextcloud instance.\n- **📱 Mobile friendly:** The interface works well on smaller screens so you can plan on the go.\n- **🧩 Nextcloud native:** Fully integrated into the Nextcloud navigation — no external accounts, no third-party sync, no tracking."}},"isFeatured":false,"authors":[{"name":"Sören Johanson","mail":"soeren@soeren.codes","homepage":"https://www.soeren.codes"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhMKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzA2MTEyNzM4WhcNMzYwNjExMTEyNzM4WjAWMRQwEgYD\nVQQDDAt3ZWVrcGxhbm5lcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMnO0WNiSZeoqn2pp6iP1EIzRvyDQ0Uio0a5aKG34FmW4iI6OdlBj36lVUcHlAxG\nRmpvlJOek7919mCWR2sOptenctcn7hnf1Z2RM5HKGqHdVxsFI9IvETv8l0RoqQKg\nqaahUDjdfJXAC2quJAqFSJy/v89ZWM42pBfNQoGUCIrxe/tt58lSS6lMPI1JsNSx\nRTe8YnIs2/Jgkwuu6A0V1G5LtJIajLr6WVSmfG2kQCcRL6yfz2FiKJXQKF0MAlUe\noUQAPlTO/dSpB7Skg7UxA8vsmrtCS9w61KH0iRp0TYV+sstk/seq6jvm8zjpZVnT\n3MbNsEqgmOI5v+RRkTL5u7UPoVECYZoLawIYQRLZRjW00vZ8UDgwOKK2poZWdxic\nsBBhS5hgN2FwHaO4FKaU2kI6otKIjccE8m+SfiPpy+rzCtxrjCI6aK9aVbthIx6I\n5p64+DTdzDp3vocbd7wBldB8TdzTR0wfvP70ejFJxZ0x/hPsp6pwBMNEIA9RzcHU\nW8KkBsJOygIGoOfyIdC0hOGHe2JStzqaVGGemAEun48M3x6KfeUSfK9gtAK+hwM2\ntBbdGBbl5P+yadZkyD5eSz3JtvHH8yH4NWsMX6rn4/TP5+yC2IvnP5v/h70Lf/wb\nPxyH4Erfylc8foXlMaEYhrJK1QEhHiBw8CyuzOlI+v67AgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBACkzZjJwhXB3eXEQkBn5cf2GhfYNhAC7XBpTXd4iCx0CLnI5VOu7\noMQMvprIrtKPd3AXJbWrtLYdVzmqi26c66vWlSzYrxu4sYpqT/vNm5k39Y2Fp07a\nXBTTAqxFCPRr7Mo+bh8DTXPybFGR3QgZ6TIQrCmfS4y3EWc3HHf4X5XUGJmCKJbB\n8rmbikdotBFJDGvp1r6SlGoy52/Oo39dIe5KgbqraHwo/7oUAh9rxSXpVfj9Att8\nZlQf8Fnlg2DQGParuZBozetsPoQjlGdVFpg93BeF/Mpv2zIbn+nFkFg1ETwh5B2+\nRerViQ/J79zEIQZwvHkKLXkZa3G6V8r1gHE=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"login_notes","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://framagit.org/framasoft/nextcloud/login-notes/-/issues","website":"https://framagit.org/framasoft/nextcloud/login-notes","created":"2020-04-15T06:51:26.937784Z","lastModified":"2026-09-14T06:59:54.174619Z","releases":[{"version":"1.9.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://packages.framasoft.org/projects/nextcloud-apps/login-notes/login_notes-1.9.0.tar.gz","created":"2026-09-14T06:59:54.148452Z","licenses":["agpl"],"lastModified":"2026-09-14T06:59:54.228111Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"ieaiQZLGQcs0b3ce6X9S8iebMqH5m/nRbuh/xzuBaLhkrn1R1iSh2SJz+Tv15zrs\nVXpI3NvETuvvjCIdX44L3ugMbNuBMNWgM93TPU6ZtSj3xBRWdMmza+hZ0CWc8ucL\n0l6SFOTeaTybf5ZsIYNIdBdUT7R6TL5ZqVHO9cFKD5AD5bx5Z/8jfXp8Kbvz74s1\nEV9AmUTYlmymToWtrSILEhV4AJ89PtOeJD+OwN/42F9zsk7X3Xx84xraNQ268Qmp\ncs063BzdnLwHMsyvoY2SC0en6BVBjeYJV26AQfB6Vn5mXTL1OljA56QnO63T1JRQ\niHMYBpwrGMfKeQjIOiNbp2YCWUHVyvHSYE+q7EIp4j2NRYAZkbNZXoNv5npOh5N6\nYdee5X8BIvxTc4SxJ7PwMg/9O4dMg6+3XkGty0OE39xzOlb/44uOMxDNxTsxeM2r\nsZ4V7RMy8YOT8zVNhlnwhpKtdePVjUqH5ZBG69cGLaidXkWNOvywcP8JDg0cWWt0\nzAXwZWUuyKSDcLVWMGu5J1kbl70B1IT09G39cJRWZrZssBQu3usFDokcuUGy+FVZ\nzoRKalOaiSpR3MPlyyxp17AGVha65jH6GguupDZJ+RzPT1z/J3fW5Qi13OEJ/vWZ\nyntiJ7b0qRzecLO9lygfJSqK12zLAes4wYVL+m6z88Y=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Changed\n\n- Dependencies updates\n\n### Removed\n\n- Support for Nextcloud 32"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Login notes","summary":"Display notes on log-in page","description":"This app will show admin defined notes the log-in page"},"fr":{"name":"Notes de connexion","summary":"Afficher des notes sur la page de connexion","description":"Cette application affichera des notes définies par l'administrateur sur la page de connexion"}},"isFeatured":false,"authors":[{"name":"Thomas Citharel","mail":"nextcloud@tcit.fr","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhEUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDU0MjQ5WhcNMzAwODA0MDU0MjQ5WjAWMRQwEgYD\nVQQDDAtsb2dpbl9ub3RlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKxo9yEG9ZsfDKe7BZ9gdRxIMdKPDgxizxmEree5IL4eX7H25zEiaILsFxZ1XRVQ\n5MqyePAu21KACPi2EaltAOhlrzx03RLVH2TvTbhDPwu9PBGtdhT5s8CXell+Fo2W\nadwvO49cD0IPVlelTSAuK4QiOriW7pz5ALheUFJVfmYZNZK5E3a+z6OS/nLnhu+Y\nz4vj65FybBssT6j6QwhWELT02o9Se8+jvQH7qATlWsDBt2kfPu5GZSodf8V0BVcC\no6RNP0yNgfqIIY0QwC59WCKNTekFoA+VVk+rpjA5Iu5cOjqeLo1qCcE1+q5cytUy\nJitQxBUuuucvaaPyYonNm/cgoBKJ8jA1jEjb2VwRVzr/5cu7+VIPs9JH09/rZaKc\nth6xLGpvrYrE46mDlia7Feact7k8MT34QuTjbyFJcUDCfNppf/Grp3ck+TQTZKi+\ncJsO7P6p+AVYe0QBe0Qh9OxZ9ojTE6izpnlzM/cs3GRMMMfszHrHNJ4Y46fDpAWy\nnjZCYHpXtQefif+hAWaWvQnFudZhu0hyyFqy/vJaCJEQFRV2rouXUqyIx8Y+ceYr\nW27p6+r5db+gkFe3bhZOETShj3CslDloPX8bKpSwm7HnwfH5YAo4T5Iwqhlm0tvt\noCoicMOtVMjjDXr/UcVdpGVTZ9EfNh3G09mJU7xNs9t3AgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAE97EFNbd9PkkjcAbdHd4/EuLmJNS+WjxSuoAf2E8FSHVk0DrqxL\nIZ7awbWUK+o950n/OwZGYYz37hbT0/MYVmo2CGpoDYWNYyETbH8mwD/PbN/U9eQ1\njft70Cq3lBZbItNV6kvOqIe0cVgpZ50PEHuUXu/lVYRo6ISimu954bIGCo+5g8vN\nEyYKYYPnrZqV+DYnxkuRpq2o/W4nA1OwoqIbBIyFIJP/X/7kvizBK6meeNOjZEfW\nTXCg+EcZZejgAE/8DmOC9lEBpziQjQVks7siVnq3DXtcT1gOP+FmKpO4CSxKFloH\n0OzyEzuwasBfDOpBcbhcsXvAxdpBSD2g68Y=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"editbase","categories":["office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/EditBase/issues","website":"https://github.com/ktec-nc-apps/EditBase","created":"2026-09-29T13:10:16.544694Z","lastModified":"2026-10-11T03:26:42.670426Z","releases":[{"version":"0.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.3.1/editbase-0.3.1.tar.gz","created":"2026-10-11T03:26:42.655080Z","licenses":["agpl"],"lastModified":"2026-10-11T03:26:42.713232Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Tq8qCWePpnG/gHHuk7EWVn7XOGMyEIvDo0Wz2J0beUs3V0NxkqH1bneK8usnThheslL3jVrTcywPdjEkE1fs5VwvqJ3oDbM+E5XZbKU/J3kjzKW4XiullBuDGNclZwkhAl1Hg6i56a7RIu4UQTphuArrU6TQ2Fg5YWs2tZWg1Jfh44B9ctTP6MiwMAP/2j7REDH9JEMuQomkt2olQ4ukoafjQIam7I4HVR/P2bRy2tncDxbEEt8RvmpFcROUEUnls4MrLBQXtg0godGZykjwSILGwalAXn7LPQhZIWncMkN93pD7IymR89kRPUijf6dEWZYfk21+sOFHxbzS6WtU1MEH1NTyK30rYKEtJIbNe882gmu6E38OdRwUtsIB3dGAUem/IpvNJ5xEvSIvf9bZC0ceCCeJ+EfupHsc7NUAlyOZlGgqArcd5xR/LWpLx3DUOaygy9zJN+txQ3YMc1jGF+duLEk4CCaetOVYyVZCUPtUB/yrLbgFPE5srhvnvGhv6lRF09yx+y4vRTPbCk+4YdLT4LnXn0ui1FTxlY+NymvCD8O8S2+J4arMm8Z1unfb8ayRQpQQwH1QM7Jg6kOaoBxlS+A1tKiwgQVMsZ/S47Fph3YX10+b2aIR24zZJfVltF6BrDyOq5ZSAHDXJ6o7A30GZglm27/u5JGh/kCSkAw=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.3.0/editbase-0.3.0.tar.gz","created":"2026-10-07T23:02:41.226459Z","licenses":["agpl"],"lastModified":"2026-10-07T23:02:41.299398Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"TElgSpvGffZlhAYfGfibKmKXoXLm4AmwUUpBCH2zJtJm9kkkA4X1FkSF3qNprG8iaq8tntGHT3XLlbxWac8Bmbi3wK5tPQ0F64EBJwwT0LgbikNYAaKT0lvnJiUOUoqmUC+a8KWTTGL6ghR++rjSImAQU/SGe4eU4GN95L0oAqRMACNicf/h4yWwUUifggi7YqeiaImUO/olsZWJSMCYePh0JcbpE8LcXe4USsvLgrH3deBN6SMoURst96TKgutj0w4rgIU1VjSROzaE6cc+1jJf3AIXLIqcb0rMlwCi3jH40fdJBdO/tV6xg53IBRs/xBsw5rgnFMuo6rAopwAHhgdI/idHnDu0KzCuyRubREzNLCJCoNq/UzNgRnM6Zhch4lHizR4yaqaxHh8LZibqJRdOA89igZevyFDihbmPlsslHVjHIKkiWKwlAomQQBKvJg6hS8Y8fbKwICxjPUAiCrTIQUjAF2xd+b8kzao1SnEep0bff+LGUfBtS0uNI3bZL3lDnnZAt1nLgch+quuQN5cQsL5g55cBcZ8bMM5uVr7ZFDFRy3oTQQd7JkyYr4DQHt2ZxdYmdiYlOqbM2a5Fr/P8DK0cvfW4D8qey3GZ2a23rhMY2srhVJgEBwRJ+HnBjOWIAsRjY/hP43daQT9oOCvbT3XByxaDwLjniWyRBko=","translations":{"en":{"changelog":"### Added\n- An AI assistant, through the AI-Hub app: a chat above the Pages and Layers bars that\n  knows EditBase, changes the open document when asked (every change undoable with\n  Ctrl+Z) and reads from the other apps of the series only as the administrator allows.\n  Administration settings → EditBase → AI assistant: on or off, who may use it, what it\n  may read, web search. Shown only when AI-Hub is installed.\n- The widths of the Preview bar and the Layer bar can be set in px or % (Settings → View).\n- Tooltips of their own on every button, so the pointer never hides the caption.\n- Bundled samples: body text 12 pt (US GSA Section 508 guidance), and \"More apps from\n  KTEC\" gives each app a page of its own, AI-Hub included.\n- The AI conversation can be saved to Files as Markdown, as it stands or summed up by the\n  AI (two small buttons in the assistant's head; AI-Hub/EditBase/ in the writer's Files).\n  The conversation of each document lasts while the tab is open and the writer stays\n  logged in: a reload goes on with it, a new tab or a new login starts afresh.\n\n### Changed\n- The toolbar follows LibreOffice, Microsoft Office and Ichitaro: text and paragraph\n  formatting in a second row of the top bar; the left column holds Insert (page break,\n  table of contents, header and footer, rules among it), Drawing and View; the\n  \"Page layout\" menu is gone.\n- After a forced page break the paragraph's space above is kept, as in LibreOffice; at\n  a natural page break it is dropped.\n\n### Fixed\n- Counts on the screen take the singular for one (\"1 page\", \"1 Seite\", \"1 caractère\"),\n  in every language, through Nextcloud's plural forms.\n- An unedited bundled sample is recognised by its text, not its bytes, so one that was\n  merely opened and saved is still replaced when a new version ships.\n- A page fold never cut inside a word across a line break."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.2.0/editbase-0.2.0.tar.gz","created":"2026-10-02T04:33:03.256868Z","licenses":["agpl"],"lastModified":"2026-10-02T04:33:03.315041Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"hqC/Hgvy8Nw81/ZVvUL2KX0xesdpCVTn0uZZjesJI2fkfxFEsimTuho4UE69wsuQgHAjBNjO3zhBoMKbKXzcmW5P91VzwRO1AwI76F5v32RRyHyUa0/T18kdgMM7rmmGq5f1c+GzUrv+8Sv6yk1DiHfHkUkieExV20UKZXMPuASp+HDFdT0sDO6ef+Mdb8dJrTEdg41OVTUQXB1AWh//TRqiKxCRBYnbkMoI2QVU9u1DiPoaiodHtTsBy0kWIUR4KcC6jGpn+rOmBnv3YxUCBKP2paH94kEZX1CrS5h9BCsbXDlZXjXP83y/qtHWko4C9MjV42KfCHlXpkLPAi6VsIezVa2sPCSZx/+cSmitFvKtMkHZ/BEPh5+/6LtrgSOEJG1Pm0qqu/YfYxsNSTtGZ3lumlevcAPYcQLRnP3znvaSFy5I8Q0+pG02LSkX58gs9pvvDhZOnWJ6TOxzl9qrqEI78E3uRfa5fuD15b8lNBJ921XkZV0mPsH1qXPlndsmCsJYknS4VeaFSlipB0c8cqGc/pia35cW9ovSZgg+0J7wl7hRQB72H6coz7u2aBs4ckmbMKQxUFUyOKQQ961p+Z3IYKWFTFUpqTL6PXeyTzR62OArzUlDiSxEVXymn/2rfdA7+814JhBT9N09waRqtUH00FOANZjr3XVcBXP+ogs=","translations":{"en":{"changelog":"Built and checked by laying out five Japanese government forms (an employment\nconditions notice, a resignation certificate, a CV, a wage ledger and a staff\nregister) and printing them over the original PDFs: the rules land within 0.5 mm of the\noriginals and nearly all of the text within 0.5 mm.\n\n### Added\n- **Characters and lines per page.** A page can be set up by the number of\n  characters per line and lines per page, or by the character and line pitch in\n  millimetres (to 0.001 mm). The screen and the printout match, and half-width\n  letters take half a cell. A grid can be shown on the page.\n- **Ruling mode.** Draw a table by dragging on the page grid; press Tab while\n  dragging to add lines. Draw over a line to change its kind (thin, solid, medium,\n  thick, double, dotted, dashed), or erase it. Also draws diagonal lines, arrows,\n  round, square and curly brackets, and polylines. Drawn lines snap to the lines\n  already there. A table drawn on empty lines or below the text goes into the text\n  (it takes its room, and the text below moves down as its cells grow); the lines\n  down to it are added for you, as with click-and-type.\n- **Tab positions.** Left, centred, right and decimal tabs per paragraph, measured\n  from the left indent. Set them in the paragraph's Tabs tab in millimetres, or\n  press the ruler to place one, drag it to move it and drag it off the ruler to\n  remove it.\n- **Distribute.** Spread the chosen characters over a given number of characters\n  (to 0.01), and distribute the text of a table cell.\n- **Line spacing by the line pitch.** Fractions of a line (1/4 to 3/4), several\n  lines, or any amount.\n- **Raise or lower characters** by a given number of points.\n- **Table cells:** width and row height in millimetres, separate inner margins\n  on each side, vertical text, distributed alignment, and the paragraph settings\n  of the lines inside a cell. Each line of a cell can be aligned on its own.\n- A 1 pt rule.\n- Documents can be put in order within a category by dragging them. \"Sort by date\n  modified\" puts the order back.\n- Ctrl+Enter inserts a page break.\n- A setting makes Enter in a table cell start a new paragraph, as in LibreOffice.\n  By default it still breaks the line.\n- In the properties of a placed object, its position is given from the top-left\n  corner of the paper.\n\n### Fixed\n- A table placed after a page break on page 2 could be pulled up to the top of\n  that page when its size was changed.\n- Placing an object that pushes the text aside could move the objects below it\n  further than the text moved, and they did not come back when it was removed.\n- After a page break, an object's space above was lost when the page before was full.\n- The outer margin of an object with text wrapped round it was cleared every time\n  its properties were applied.\n- Text in a middle- or bottom-aligned cell of a ruled table sat about 0.4 mm too low.\n- A size typed into the toolbar could be replaced by the old size before Enter\n  was pressed.\n- Setting the size of all the text in a cell that already had a size could break\n  the cell apart (data loss).\n- \"No border\" on a cell was lost when the document was saved.\n- An object hanging over the left or right margin made the whole printout shrink,\n  or was cut off.\n- Changing one paragraph setting could clear indents set earlier.\n- A table inserted from the table dialog could land at the top of the document.\n- Changing a column width in a table split across pages could halve the first part.\n- Pasting into an empty table cell added empty lines.\n- Pasting several paragraphs into a list item produced invalid HTML.\n- After drawing or erasing lines, clicking a cell could fail to put the cursor in it.\n- Typing after Enter in a page with a character grid could join the previous line.\n- Half-width katakana is converted to full width.\n- Clicking or right-clicking the border of a block frame, a box or a note took the\n  paragraph inside it. Near the border, the frame itself is taken.\n- Right-clicking a row in the layer bar could offer \"Frame properties\" for a\n  paragraph or a shape.\n- Closing a dialog could jump the page to another page.\n\n### Changed\n- The right-button menu says what each kind of alignment acts on: \"Position of the\n  …\" moves the object itself, \"Alignment of the text\" aligns the lines inside it.\n- A shape has one name everywhere.\n- Wording follows Word's page setup: \"Characters and lines\", \"Characters per\n  line\", \"Lines per page\", \"Show the character grid\"."}},"signatureDigest":"sha512"},{"version":"0.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.1.4/editbase-0.1.4.tar.gz","created":"2026-09-30T16:04:55.655660Z","licenses":["agpl"],"lastModified":"2026-09-30T16:04:55.708204Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"CPxVuRD98VkEQD8XZ1WARQAh0btPA+UprBoyyP5vu3A9hYMNsofITBO+0YMKw2wXwcSKTdw4A03WOexEjbvGeKMZa/tkplYy1IYyJTQ09Nd9hhWibMuNSnBfYSmYWJAljCMDBRAylkLKw2Tw4rgkBGaccrqjXVAblbhWbDGYc0J/BBx3lSWT+N6SYKOxigQQuF6Fma85/BJ3IjQQgWqIy7FsQKqjymMYtMZ8GlDDK+tIqU4zfgDn70Y4Hbrpiw8TVUQ9TxLqLCTrx4QRGkTCPB/1hYDmMYVnNrTiZWrKDoQkz69WVs0lXFmiIhFZ/bZlHG0lSzjMwy/WV8LjqJgdleWSk1dkj0IzB/5KHtqk1cDNN3+MhILbnmwrEndMCsD9g2WyD02UnCjExX+tQEshjktfc/8YW+5aUvgMRzexC+uuzb+b8UKoWH1S28Jw64AyCB7sZXRhAibKLCE3XbVYdoo8IF+55FHrbOj7/SWx9k6/UZGj3eWl3npZaDb9GP60ch45UmtgCzwq27GUu5O1SGc6JbMo8p4rL73jCPZHiSWRtNGdX/eWlHqdu2IeWXeirGBit4tb0cqbvLzLjDHcUsFzercYQvySeJxbFHcGehmnQThtaLUAepv+B+8QHAoTMFwHdG4AT9PWS+Zn0gWdHyJP0CElMbV+ne9T2DSHqgE=","translations":{"en":{"changelog":"### Fixed\n- Copying part of a paragraph with Ctrl+C and pasting it into a paragraph with Ctrl+V\n  made a new paragraph. The words now go in where the cursor is. Whole paragraphs,\n  tables and other blocks pasted into the middle of a paragraph split it and stand\n  between the two halves, instead of ending up inside it.\n- A paragraph set to \"words to its right\" (or left) that ran over several pages\n  started its next part in the bottom margin of the page and ran across the page\n  break. Each part now starts at the top of the next page's text area.\n- The page thumbnails could keep showing the layout from the middle of a\n  re-pagination (a heading halfway down the wrong page, an empty last page) after\n  the wrap of an object was changed. They are redrawn whenever the pages are laid\n  out again.\n- \"Fit to the column width\" on a paragraph inside a block frame made it as wide as\n  the page column, so it ran out of the right side of the frame. Inside a frame, a\n  box, a note or a table cell it now fills the inside of that box.\n- Ctrl+Home and Ctrl+End go to the first and last words of the body text. They could\n  put the cursor inside a shape placed elsewhere on the page.\n\n### Changed\n- Headings are spaced as in LibreOffice Writer: space above and below of 12/6 pt for\n  Heading 1, 10/6, 7/6, 6/6, 6/3 and 3/3 pt for Headings 2 to 6, and single line\n  height. The old spacing left about a line of empty space under every heading.\n  Spacing set in the style dialog is kept.\n- Block frames, boxes and notes have no inner margin unless one is set: the text\n  touches the frame, as in a word processor. The inner margin is set in the\n  properties.\n- In the properties, the outer margins (top, bottom, left, right) and the inner\n  margin are on the Placement tab together, named so that inside and outside can be\n  told apart.\n- A frame is taken by clicking its border or just outside it. Inside the frame, a\n  click goes to the words, even right next to the border.\n- Japanese: the block frame is called まとめ枠 again.\n\n### Removed\n- The dotted box drawn round the phrase at the cursor, and turning chosen words into\n  a frame of their own. Documents that have such word frames get their words back as\n  ordinary text when they are opened."}},"signatureDigest":"sha512"},{"version":"0.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.1.3/editbase-0.1.3.tar.gz","created":"2026-09-30T08:42:19.047696Z","licenses":["agpl"],"lastModified":"2026-09-30T08:42:19.105492Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"iL+2onHWy6zn78lm9lxgs3jS13vxeoL4Q++kWZPfUPocSWC9Kr6zK3wIbUN5kYZbyJKWRSD5U8PezfYzH+PoTY3ikfqf62+EAbrU61zT0cp9VPR82NGdVHXozGeU2cDt6MsVQY+MtKJsDXW7yxWDEgASLmBGc5Ks0ah2F6kTAWWh8KgByMnb1lwmux1A4pYwwZM559ZBdzOI40TPqnmJfeYCCoH431AdgksXtQSwaJ7KwD5dQc5Q3bKRpfXHX4ua2qmoNOew0pdIfuoJR6PxN8B0TM6y3VWW3BQLFwK1Z8flqA6/sg4tN9ZIgve0vJVUPgja1ixiWE00r2RVZe7G7CQSuz0ySEmBhe67mje3zTX8kKsov3m2YlWCtxBNAqvPZxpOiybshf/hayI4IOhVKbmazV8YWqcodhp6MIZyCW4dLWHBt+qmBnP93tycq1alvneCi4gyrLx7nbmnmmNRbpuYatdF0c+tLJdjZxCxwh5etlG3fzWcbY97t2sZ1nXID68R8qJFJpOMJdCRmsq9slcT/ndwjlL0LnPgygrdpgYi11EppTJ/Sh1Wr6t14PSFrpi9uy0w17VizXDHkkxV0AswAVXi67/SvICPy+SfHnma5lMqzBG/4xhJ6X+LXmBTlujFVNsMU0R0FpfVKjnAZewI5W1s9BHRsagfVN55sD8=","translations":{"en":{"changelog":"### Added\n- **Settings → Unit for indents**: pt (the default), mm or characters. The indent\n  boxes in the paragraph properties are labelled and filled in that unit, and indents\n  set there or on the ruler are written into the file in it. Characters are written\n  as CSS `em`, so an indent of two characters stays two characters when the letters\n  are made bigger.\n- **Settings → Unit for the ruler**: pt, px, mm, cm (the default, as before) or\n  inches. The ruler is marked in that unit, and the indent and margin handles move\n  1 pt, 1 px, 1 mm, 1 cm or 0.1 inch at a time.\n- **Settings → Show spaces (half-width, full-width and tabs)**, off by default.\n  Half-width spaces are marked ·, full-width spaces □ and tabs →. The marks are\n  drawn over the page only: nothing is written into the document, and they are\n  neither saved nor printed.\n- **Settings → Let the Delete key delete an object frame**, off by default (see\n  Changed).\n- The paragraph properties open on a new first tab, **Indents and spacing**:\n  alignment, line height, space above and below, the left, right and first-line\n  indents, and the page-break options. A paragraph's rule and shading stay on the\n  Borders and Area tabs.\n\n### Changed\n- The ruler is a bar of its own under the toolbar, across the whole width, with\n  its scale lined up with the paper. It follows zooming and scrolling.\n- The ruler follows the paragraph the caret is in. Inside a block frame, a text\n  frame or a table cell, its white band and its zero are the inside of that box,\n  and the handles stand on the paragraph's own indents. The page-margin handles\n  are shown for the body text only. The indents shown are the ones in effect,\n  including those that come from a style.\n- The indent handles keep the ordinary arrow pointer, so the pointer no longer\n  hides the handle being grabbed.\n- Clicking or right-clicking a paragraph inside a block frame, a box or a note\n  takes the paragraph, with its own toolbar and its own menu (paragraph\n  properties). The frame itself is taken by clicking its edge, or its background\n  outside the paragraphs.\n- **Backspace never deletes a selected object.** The Delete key deletes an object\n  (a frame, text frame, picture, shape, table, line…) only when the new setting is\n  on. The Delete item in the right-button menu and the delete button on the toolbar\n  work as before.\n- The **Paragraph settings…** item is gone from the right-button menu: everything\n  in it is on the Indents and spacing tab of the paragraph properties.\n\n### Fixed\n- A horizontal scrollbar appeared with no page to the right of the paper. The\n  ruler's background band reached past the page area.\n- An empty paragraph left in the writing (layer 0) could be deleted from the\n  toolbar but not from the layer bar's right-button menu. Both now follow one rule:\n  the last paragraph can be deleted while other objects remain on the page, and is\n  kept only when deleting it would leave nothing at all.\n- The ruler's first-line, left and right indent handles had no effect on a\n  paragraph inside a frame: they were measured from the page margins, not from the\n  box the paragraph is in."}},"signatureDigest":"sha512"},{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.1.2/editbase-0.1.2.tar.gz","created":"2026-09-29T15:09:43.576753Z","licenses":["agpl"],"lastModified":"2026-09-29T15:09:43.626116Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"iw6UI+ezyktuqvBRGuCa8rseR+8cfcLHEmbaywtrIdU2jz5QiT695Nrgi8S61OI5l9KtJmtex/fe/OlxS9RS6x+4/LKJbHvl5KCGtV+En3184pdw2OBgWVvAxRGhXxToKmj8u2ho2KgOHQxbTfOUnUQkCKmhrEYI34lDlsWtb8jtx7Vlk9fLl3+Fr7p2upFwv+HjgjvnlmvT/ANHA4oKCxLjI6qydbjq1bKwY7Qp5jEiWJLOQ+l1Wa9TQm6evYEAy3nfE/3IAbBKvOn8RnDJYmvjy4/J7qc3J9SpRwNgYyhCr7r9NuF1mk5JJlBfg1ulrDxXacVibDXoPURlTyiIkKGZx7m0srL9AC2ggZvyUxX5jFPOf/JtdL7NvrQ6mzwKkwOFOqp7RXc6i3guBqza6bqV4IggrbyYQDO+UKudV4/AlriDCuo45T6YD8lKM9rMRGXPi0zQYsMeTUhF4vlobHR7/ChE17CUonengQvPx1BLItv/7LDi24ZCaTlgqnZ2mQtk7JZz4FBx1RFFVPSwnhdZvnfkXfAReaTs502c6XiOcvLa24qKjXyR/SG3K086yS0pHPsgX64jOj18WGQ07oxHX4eOR5yAca0J3oX/SVHFY9OcAGPyLtndyySkWR+Pxs7D3Xk6yEGZPPMdqv6dhW+p9ZfAhsZHbj2Sxh99tTI=","translations":{"en":{"changelog":"### Fixed\n- The right button on a category shows the category's own items only; the menu for\n  writing (cut, paste, view…) came after them.\n\n### Added\n- **Delete the category**, from its right-button menu. Only an empty category can be\n  deleted: one with documents in it says how many, and is kept until they are moved\n  or deleted. The folder goes to Nextcloud's trash."}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.1.1/editbase-0.1.1.tar.gz","created":"2026-09-29T13:54:41.435579Z","licenses":["agpl"],"lastModified":"2026-09-29T13:54:41.506237Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"UKSIHhsy6i6Pp0kif/B965Lh5VMWGQkA0V42XAjQRZFYKF9bvU8jmz/B7oIx2OmVEklGOP88waWUOn69AOLzdhz4eWif/L4MQUgaEfFbcX6vOlWwVGCBwBqtyMpB7wLtBJ34qBEvcSyCrFZPhJzYOp//XfY0jZnzMozoq47p+pFgHaXGXZLqFLu2iNdp4V6Ceo7iG2dflxraFOfTSU5vjwppby3Chm0xDYQMMQRV+AgBtktwB5SqfwJZskj3ksPxa+Wl/nhs+v9sp8TPHcEM8jfBpieZxtmjekLRGspEZpwiNBqQcInL5YWf6P48kEYxedSPQ324S0xcBk3q7dpgsOzYBjzEcxe1SekOjm9bw7qILEruO6Mi5/Sh8r6q2cjmH7SeMUpCmYmgfWn+R4RHYszdcvdaMul5lrAvdRRJrV4SF2j/RnR/H4JqFteEvyLzxDHZBjjpFbNNrIjfHJbBZqSACRP2hV/apjA5tqFYAR+kEZkdNwPrmF9dQffWX4tePw5bXOsuMfxNonNhKs/uLPJtU4HAQ99pt221H5CJlro5jnH5umqZNSfWndAdntlxJ1uQqwooCIYa4s7hL0oC440x7hh2rAGJ0d395l3E4r+SRMiiwAs7iF9T5yTwNUvyboxwoHkc/EM93uUljOV2DJMHdIkKma3hyhJBigCUQVc=","translations":{"en":{"changelog":"### Fixed\n- Web preview shows the document as it is open in the editor, page by page,\n  including changes not yet saved. It showed the file as saved, and a document\n  saved by an earlier version had no page divisions: everything after the first\n  page ran off the sheet."}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/EditBase/releases/download/v0.1.0/editbase-0.1.0.tar.gz","created":"2026-09-29T13:11:00.647086Z","licenses":["agpl"],"lastModified":"2026-09-29T13:11:00.701486Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"GCteIVIZRYMXc9EhJguTH2XtBEj0RpKOHjO5suClV+bCjRHE1vNoqfE7lcIP7atPrfPPAHrah8Pq99CRR/fWlccaq108kthpgQ9sEDZT/RI4IGShhE45pIvybmg5jyT8CNrXryc8bF3GrLSiWRzmHLkHPlmv6e+uTKd4tQZ7/sd6NM++QhAkWAQONC2nobRmUJ7AZstLMcS8X0vLDJuphd8TGOXvfZ57OzZ0IgieFrD475HKaxpjSwrM4oq6fOcwFXbvaAWwh1J1y2Jtj1oghIdK9TaPOFIV0CS1DfQZPz7wwZ1wDlJ7vK6NqknP3mzsPXlqSx/5gQloCsVkp0HeRIWNt19IWHWkUZL3IMsCxTVcu90vcdbnrdmBKGd0AmSozFq9CHO1Fq2Ai2teucnedOpfA9HveF5FIn6Qc20qV8nMNFeTG5KsjMB0xUuXWVt4vCutHiDI8QzuH0zwoFHvCY+FnkeY/UMIGmsrWiPIoIJO0qGB1LZDZyiyDmvTgVsabRPINEqadZdkp5N4dEMXMrYS5W7Zv487Q/7ajBfjPr6YwM/cQftRKvD0rrgfx9/9/NC9C6Zc2pBbjorP/CDISNasUa2a80MiCz7iQnmtUvTV7QR8OA+oY1JmVmG0YrZkAnMmbKuR5OkHZrr0hMtDs/LeSwZStli5bKo/+RxHw1k=","translations":{"en":{"changelog":"The first version. Everything below is new, because there was nothing before it.\n\n### Added\n- Documents are ordinary `.html` files in the user's own Nextcloud Files, saved\n  complete with their stylesheet — no proprietary format, no import or export step.\n- Editing surface built on `contenteditable` with an editing engine of its own\n  (Selection/Range), so the markup it writes stays clean: `<strong>`, `<em>`,\n  `<mark class=\"…\">` and classes rather than editor litter.\n- Paper setup in millimetres: A3/A4/A5/B4/B5/Letter/Legal, portrait or landscape,\n  four margins, serif or sans body, body size in points — written into the file as\n  an `@page` rule.\n- Page guides on screen showing where each printed page ends.\n- Headings, quotations, preformatted text, bulleted and numbered lists, alignment\n  and indentation, tables (three border styles, optional header row), callout boxes\n  (rounded, square, dashed, tinted, side-bar note), horizontal rules and page breaks.\n- Highlighting in five colours, free text colour, emphasis dots, superscript,\n  subscript and inline code.\n- Formulas as native MathML, with a starter palette and a live preview.\n- Undo and redo kept by the editor itself, with keyboard shortcuts.\n- Printing and PDF export through the browser, from an isolated copy of the file\n  itself, so what prints is exactly what is stored.\n- Autosave, document duplication, renaming, deletion and download.\n- Readings over words (ruby), at half size, with room kept for them so they never\n  sit on the line above, and brackets in the file for browsers that cannot draw\n  them — 滅多(めった).\n- A frame too tall for the page it stands on carries its writing on into a frame\n  of the same shape inside the next page, cut at the line rather than at the edge\n  of the paper. The carried-on frame is ordinary markup, so the saved file prints\n  the same way in any browser.\n- A frame placed by hand carries its writing on the same way, into a frame of its\n  own inside the next page; and anything placed by hand keeps to one sheet, moving\n  down to the next page rather than being printed cut in two by the edge of the\n  paper. Where the writer put it is remembered, so it goes back as soon as the page\n  has room for it again.\n- A blank page can be put in above or below any page, from the right button in the\n  page bar.\n- The document's own stylesheet, written by hand: a CSS box in the styles dialogue\n  for anything the boxes above it cannot say — the look of headings, lists,\n  quotations and the rest. It goes into the file itself, so the page prints that\n  way anywhere, and the editor shows it as it is typed.\n- The right button on a document in the list opens it, copies it, throws it away,\n  or tells what it is: the file's name and where it is, its size, when it was last\n  saved, the paper it is set on, and how much is written in it.\n- A running header and footer that really do repeat on every printed page: the\n  writing is put in a table of one cell, which is the one thing a browser repeats\n  across a page break, and each of them stands in a band of its own that the\n  writing never runs into. What they say can carry the title of the document, its\n  file name and the date and time it was saved, written in braces and filled in as\n  the file is written.\n- A check over the document: what is wrong with the page that a writer cannot see\n  by looking at it -- a thing drawn across the edge of the paper, words running\n  under something that was told to part them, a frame holding more than it can\n  show, a photograph heavy enough to make the file slow, a page with nothing on\n  it. Each one says which page it is on and takes you there.\n- Versions kept beside the document: the state before each save is written to a\n  file of its own in the same folder, named after the document with its extension\n  replaced by a number -- 報告書.html keeps 報告書.#01, the newest, with the older\n  ones shifting down as far as the writer allows (up to 99, ten by default, nought\n  for none). They are plain HTML like everything else, so a version opens in any\n  browser. A version is taken when the writer saves; the autosave can be made to\n  take one too. They follow the document when it is renamed or moved to another\n  category, and go with it when it is deleted. Putting one back keeps what was\n  there as a version of its own, so that can be undone in turn.\n- A view of the raw HTML of the current document.\n- A layer bar and a page bar down the right. Every row of the layer bar can be\n  dragged with the mouse: dropped on another row it joins that thing's layer, on a\n  layer's heading it moves to that layer, and above or below them all it gets a\n  layer of its own. Anything that is not standing on the paper moves through the\n  document instead. The levels are renumbered from the bottom after every change,\n  so they stay one apart with nothing empty in between. The two places to drop for\n  a layer of one's own stay pinned at the top and the bottom of the bar, and the\n  list scrolls itself when a row is held near either end, so they can be reached\n  however long the list is. A dragged row travels with the pointer, and a place\n  that would do nothing is greyed out with the reason written in it rather than\n  quietly ignoring the drop. The numbers shown in the bar close up after a\n  deletion, but only in what is shown: looking at the bar never rewrites the\n  levels in the document, which would move things in the pile and change which of\n  two overlapping things the writing flows around. A layer itself is dragged by\n  its heading and everything on it moves together, and a new empty layer is made\n  with the button in the bar's head and becomes real when the first thing is\n  dropped into it. A thing drawn on the page has no level of its own; the bar\n  shows it at the level the browser actually paints it, and writes the levels\n  down the moment the writer moves something through the pile.\n- Categories down the left: a document can be filed in a folder inside the save\n  folder, and the list shows one box per category — coloured as the writer likes,\n  opening one at a time, with documents carried between them by dragging a row on\n  to another box. A category is an ordinary folder, so the same filing is there in\n  Files.\n- Sharing with other accounts on this server, from the right button on a document\n  or on a category: Nextcloud's own sharing, to read or to write, taken back from\n  either place. A shared category hands over everything filed in it, and everything\n  filed in it afterwards; somebody who may write in one can put new documents in it\n  as well. What others have shared arrives under their own name in the list.\n- Writing in one document at the same time as somebody else, in a shared mode that\n  begins the moment a second person opens it. Every block of the document carries a\n  name of its own; what is typed goes to the others in about a second without\n  waiting for a save, through a fast lane held in Nextcloud's own cache and never\n  written to disk. Their caret is drawn with their name on it, and the paragraph\n  somebody is writing in is held against the other person -- the one case that\n  cannot be merged is prevented rather than lost. The file is still saved the\n  ordinary way, and a save that would land on top of somebody else's is merged\n  instead of winning. No service of its own and nothing to install; a document\n  nobody else has open does none of this.\n- A styles designer: the look of every heading, list, quotation, table cell and\n  caption in the document set by hand rather than by writing CSS -- typeface,\n  size, colour, letter spacing, weight, alignment, line height, indent, the space\n  above and below, a fill, a border on any side and the mark in front of a list\n  item -- with a sample of the writing above the controls that changes as they are\n  moved. The CSS is still there, folded away at the foot of the dialogue, for\n  anyone who would rather write it.\n- Emoji: the whole Unicode set in nine groups, searchable by name in the user's own\n  language, put in at the caret. The character is what goes into the file, so it is\n  drawn by whatever emoji font the reader's machine has.\n- Light and dark themes, chosen per user, and English and Japanese translations.\n\n- **Standard and free placement.** Standard placement follows the rules of HTML and\n  keeps clear of the text and of other objects (above and below, text to the left\n  or to the right, and on both sides with JavaScript); free placement puts an object\n  anywhere with CSS, over other things. The default is a setting.\n- **Tables that calculate**: formulas as in LibreOffice Calc (33 functions, `;` or `,`\n  between arguments, Err:522 for a circle), a formula bar with a list of the\n  functions and cells picked into the formula by pressing them, column letters and\n  row numbers round a chosen table, and number formats written as format codes.\n- **Cell properties in tabs as in Excel** — number format, alignment, font, borders\n  drawn edge by edge (none, outline, inside, all), fill — for a block of cells\n  chosen by dragging; optimal row height and column width.\n- **Twenty heading designs**, drawn with CSS alone, in one colour for every heading.\n- **Web preview**: the saved document opened as a web page, its JavaScript running.\n- Page numbers (`{page}`, `{pages}`) in the running header and footer.\n\n### Fixed\n\n- The editor no longer draws a sheet the printer does not make. It counted sheets\n  from the height of the whole column of writing; the printer counts by what fits\n  in each page's own text area. When the writing ended a little past a fold -- one\n  empty paragraph was enough -- the editor showed a blank last page that never\n  printed. The count now follows the writing page by page, and a blank page put in\n  on purpose still counts as a page.\n- Anything standing on the page shows its own box when it is clicked, wherever in\n  the box the click lands. A list, a quotation or a heading placed by hand was not\n  counted as an object at all, so clicking one gave the box of whatever paragraph\n  lay behind it; and a click on the transparent part of any object -- a picture's\n  corner, the empty half of a list -- fell through in the same way. What stands\n  under the pointer is now what is taken hold of, the innermost first and the one\n  drawn on top before the one drawn under.\n- A running header and footer that stand where they were asked to stand: in the\n  paper's own margin, three millimetres clear of the writing, as deep as the\n  writer chooses up to the margin less those three. They are written into the\n  page's own margin boxes, so the printer repeats them on every page and counts\n  the pages itself -- {page} and {pages} are the printer's counters, not words.\n  They can be typed straight into the band on the first sheet, and shown on every\n  page or on the first alone. The writing does not move by a hair for them: it\n  begins where the margin says it does.\n- Words no longer run through an object that stands beside another. A real float\n  in the same paragraph was counted as taking room from every line of it, so a\n  second object further down was left with no room to be kept clear of, and the\n  words walked straight through it. What a float takes is now counted only on the\n  lines it actually stands on.\n- Setting a size on the words chosen inside a 文字枠 no longer changes the whole\n  frame. Clicking the size box on the toolbar takes the selection away before the\n  value is read; the last run of words chosen is now remembered and put back.\n- A 文字枠 asked to hold a list, a table or a picture becomes a frame that can\n  hold blocks, keeping its place and its size. It used to be thrown away and its\n  words left standing loose on the page.\n- Styling a word inside a block that carries that style no longer takes the block\n  apart: a 文字枠 with a size of its own was pulled out of the document when the\n  size of a few words in it was changed.\n- Opening a document no longer counts as writing it. Setting the paper of the\n  document being opened was taken for a change made by the writer, so the file\n  was saved a couple of seconds later and a version kept of it: a document nobody\n  had touched grew a snapshot every time it was looked at.\n- A long document opens in seconds rather than in half a minute, and the keyboard\n  is free while it does. A frame carried over page by page was laid out again by\n  the browser after every cut -- the whole document, every time -- so a story of a\n  hundred and twenty pages was laid out a hundred and twenty times. What is far\n  below the page being cut is now lifted out while that page is measured and put\n  back afterwards, the pages are counted from one reading instead of one for every\n  page, and a frame that cannot be made to fit is not laid out again and again in\n  the hope of a different answer. Opening 銀河鉄道の夜 (35 pages) went from 39\n  seconds to 2.5, and こころ (127 pages) from 38 seconds to 6.\n- A table taller than the page is now carried on to the next page, cut between\n  its rows -- and where a single row is taller than the page, cell by cell, the\n  lists and the tables inside it cut in the same way. It used to stay whole in\n  one frame and run off the paper: the editor drew eight sheets where the printer\n  made thirteen pages. A head row is repeated on the next page as the printer\n  repeats it, unless it is a banner deep enough to cost a third of the page.\n- A document with a frame carried on to another page could come back twice as\n  long. The carried-on frame wore the same name as the frame it carries on from,\n  so the machinery that folds in another person's writing took it for that frame\n  and wrote the whole of it over the last link of the chain. Every carried-on\n  frame now has a name of its own.\n- A block cut across three pages or more is put back as the one block it was.\n  The mark saying \"this was cut\" was taken off as soon as the second piece was\n  joined, so the third stood on as a block of its own -- which is how a table\n  grew a repeated head row at every pass.\n- A frame that stops short because the next row will not fit is left alone. It\n  was read as half empty and laid out again, over and over, without ever settling.\n- A table standing in another table's cell kept being taken apart. Its header row\n  was read as the outer table's, so at every opening one more row was lifted out\n  of the inner table and put at the top of the outer one: a Wikipedia article\n  came back in a different order every time it was read, for ever. The head is\n  now looked for in the table itself and nowhere else.\n- A document no longer grows every time it is saved. Cutting a paragraph at the\n  very edge of a link left the link behind with nothing in it; the next pass cut\n  at the same place and left another beside it. Those empty shells are taken off\n  as the cut is made.\n- The screen and the printout now agree, measured page by page against Chrome's\n  own printing: a frame carried on to the next page kept a top margin on paper\n  that the editor did not draw, and a thing placed by hand was allowed to hang\n  into the bottom margin, where the printer cut it in two and put the lower part\n  on a sheet of its own.\n- Objects that keep the words clear no longer fight when they stand together. The\n  room an object holds is a float, and floats wider than the column together do\n  not sit side by side -- the second drops below the first, where it holds nothing\n  off anything. So the room is now cut to what the other things on that line\n  leave: what another band wants, and what a floated object has already taken,\n  measured to the edge of the writing rather than from its own width. Three and a\n  half millimetres of that difference was enough to send a band below a floated\n  arrow and let two lines run straight through the list beside it.\n- A thing put down by hand now stays where it was dropped. Its place is kept as a\n  distance from the line it hangs on, measured down a column with no page gaps in\n  it, while the editor draws a column with a gap at every fold; the conversion\n  between the two was wrong for a thing whose page was not its line's page, so a\n  formula dragged thirty millimetres up the page came to rest forty down. The\n  answer is now measured after the fact and the difference taken out.\n- Room can be made for a thing that stands below the last line of its frame: it\n  had nothing to hang from, kept the far end of the frame as its line, and room is\n  only ever made below that line -- so the words simply ran through it.\n- Anything with no writing in it -- a formula, a picture, a rule, an empty shape --\n  is now picked up anywhere on it. Only the eight pixels of its edge would take\n  hold before, which on a formula four millimetres tall meant it could not be\n  moved at all. Things that hold words still keep to their edge, because a click\n  in the middle of those has to put the caret in the writing.\n- A thing placed inside a frame stays in that frame when the page has to give it\n  room, instead of being stood on the foot of the page outside the box.\n\n- An item of a list is put in one level with Tab and taken out again with\n  Shift+Tab, and what that makes is a list inside a list -- the markers change\n  with the level (a ring under a dot, a square under that), a numbered list\n  counts in letters inside and in small roman numerals inside that, and the file\n  written is an ordinary nested list that reads correctly anywhere. It used to\n  add an indent to the item and leave the list flat.\n- The little pages in the preview bar are the pages themselves, made small,\n  rather than a plan of grey boxes.\n- A frame that carries its writing on to the next page now makes the editor draw\n  that page. It was drawn below the last sheet while the printer duly made a\n  second page.\n\n- Deleting everything in a document leaves a plain paragraph to type on. What\n  was left before was the first block's tag, so a document that began with a\n  heading was wiped to an empty heading and everything typed next came out as a\n  heading too.\n\n- What is written to a file is cleaned on the way out as well as on the way in.\n  Everything arriving is checked -- what is opened, what is pasted, what somebody\n  else writing in the document sends -- but a saved file is opened by a browser\n  with nothing else around it, so a script or a handler that ever found its way\n  into the writing would have been written into a page and run when it was\n  opened.\n\n### Known limits\n\n- Vertical writing does not yet have the newest page fitting: frames that carry\n  their writing on to the next page, and keeping a thing placed by hand on one\n  sheet, are written for horizontal text so far.\n- Printing has been checked in Chromium only.\n- Writing together is by the paragraph, not by the letter: the paragraph somebody\n  is writing in is held against the other person rather than the two being merged\n  character by character."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9FZGl0QmFzZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMDEtZWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9FZGl0QmFzZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMDItZm9ybXVsYXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9FZGl0QmFzZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMDMtY2VsbC1mb3JtYXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9FZGl0QmFzZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMDQtY2VsbC1ib3JkZXJzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9FZGl0QmFzZS9tYXN0ZXIvc2NyZWVuc2hvdHMvMDUtaGVhZGluZy1kZXNpZ25zLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"EditBase","summary":"Word processor that writes plain HTML — print-ready CSS typesetting, MathML and no proprietary format","description":"EditBase is a word processor whose documents are ordinary web pages. Every document is saved to your Nextcloud Files as a single self-contained .html file with its stylesheet inside it, so it opens in any browser, on any device, for as long as browsers exist — no import, no export, no proprietary format in between.\n\nBecause the document is HTML and CSS, printing is typesetting: paper size, orientation and margins are set in millimetres, page breaks are explicit, and your browser's own \"Save as PDF\" produces the finished result. The editor lays the pages out itself and draws them as sheets of paper, so what is on the screen is what comes off the printer.\n\nEditBase is a program for writing documents with HTML, CSS and JavaScript alone, without relying on any external program. It is made to work like LibreOffice Writer, with handling close to that of DTP software. It has grown into a very large program, so many bugs may remain.\n\nFeatures:\n- Documents are plain HTML files in your own Files, editable and shareable like any other file\n- Paper setup in millimetres — A3, A4, A5, B4, B5, Letter and Legal, portrait or landscape — with page guides, a ruler and a grid\n- A running header and footer on every printed page, carrying the page number, the title, the file name or the date\n- Headings, lists, tables, quotations, callout boxes, footnotes, a table of contents, columns and vertical writing\n- Readings over words (ruby), emphasis dots, highlighting and text colour, applied as clean HTML rather than editor cruft\n- Pictures, shapes, tables, rules and embedded pages placed by hand: standard placement keeps clear of the text and of other objects by the rules of HTML; free placement puts it anywhere with CSS\n- Tables that calculate like a small spreadsheet: formulas as in LibreOffice Calc, a formula bar, column letters and row numbers\n- Cell properties in tabs as in Excel: number format, alignment, font, borders and fill, for a block of cells at once\n- Twenty heading designs drawn with CSS alone\n- Frames that carry their writing on into the next page, cut at the line rather than at the edge of the paper\n- Mathematics written as native MathML — no images, no external renderer\n- Formulas made in FormulaBase inserted into the document as they are\n- An AI assistant, through the AI-Hub app: a chat beside the pages that knows EditBase, changes the open document when asked (every change undoable with Ctrl+Z) and reads from the other apps of the series only as the administrator allows\n- Styles for each kind of block, and the document's own stylesheet for anything they cannot say\n- A check over the document that finds what is wrong with the page before it is printed\n- Find and replace, recorded changes, mail merge, and an undo history kept by the editor itself\n- HTML5 and CSS first: JavaScript is used only for what they cannot do (text on both sides of an object, photographs enlarged with an effect, table calculation), and can be turned on or off for each document"},"ja":{"name":"EditBase","summary":"標準の HTML で文書を保存するワープロ ― 印刷向けの CSS 組版、MathML 対応、独自フォーマットなし","description":"EditBase は、作った文書がそのまま Web ページになるワープロです。文書はすべて、スタイルシートを含む1つの .html ファイルとして Nextcloud の Files に保存されるため、ブラウザーがある限り、どの端末でも開けます。取り込みや書き出しの作業は不要で、独自フォーマットも使いません。\n\n文書は HTML と CSS でできているので、印刷のレイアウトも CSS でそのまま組まれます。用紙サイズ・向き・余白はミリ単位で設定し、改ページは明示的に入れ、仕上がった PDF はブラウザーの「PDF に保存」で作成します。エディターがページを組んで用紙の形で表示するので、画面で見たとおりに印刷されます。\n\nEditBase は、外部のプログラムを使わず、HTML・CSS・JavaScript だけで文書を作るためのプログラムです。LibreOffice Writer と同じように使えること、DTP ソフトに近い操作感を目指して作っています。規模の大きなプログラムになったため、不具合がまだ多く残っている可能性があります。\n\n主な機能:\n- 文書は Files に保存される標準の HTML ファイルで、ほかのファイルと同じように編集・共有できます\n- ミリ単位の用紙設定（A3・A4・A5・B4・B5・Letter・Legal、縦向き／横向き）。ページガイド・ルーラー・グリッドも表示できます\n- すべての印刷ページに入るヘッダーとフッター。ページ番号・タイトル・ファイル名・日付を差し込めます\n- 見出し・箇条書き・表・引用・囲み枠・脚注・目次・段組み・縦書き\n- ルビ・傍点・蛍光ペン・文字色。エディター特有の余計なタグを残さず、整った HTML で適用します\n- 画像・図形・表・罫線・埋め込みページを手動で配置できます。標準配置は HTML のルールに従い、文字列やほかのオブジェクトと重ならないように配置します。自由配置は CSS でどこにでも配置できます\n- 簡単な表計算のように計算できる表。LibreOffice Calc と同じ書き方の数式、数式バー、列番号と行番号\n- Excel のようなタブ形式のセルのプロパティ（表示形式・配置・フォント・罫線・塗りつぶし）。複数のセルをまとめて設定できます\n- CSS だけで描画する見出しのデザイン 20 種類\n- ページに収まらない枠の文章は、用紙の端ではなく行の区切りで分割して、次のページの枠に続けます\n- 数式はネイティブの MathML で記述します。画像や外部のレンダラーは使いません\n- FormulaBase で作った数式を、そのまま文書に挿入できます\n- AI-Hub アプリを使った AI アシスタント。ページの横に EditBase の使い方を理解したチャットが表示され、頼めば開いている文書を編集します（変更はすべて Ctrl+Z で元に戻せます）。同じシリーズのほかのアプリのデータは、管理者が許可した範囲でのみ参照します\n- 段落の種類ごとのスタイル設定と、それで表現できない指定を書くための文書専用のスタイルシート\n- 印刷前にページの問題点を見つける「文書のチェック」\n- 検索と置換、変更の記録、差し込み印刷、エディター独自の「元に戻す」履歴\n- HTML5 と CSS が基本です。JavaScript は HTML と CSS ではできないこと（オブジェクトの両側への文字列の回り込み、画像の拡大効果、表の計算）にだけ使い、文書ごとにオン／オフを切り替えられます"}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhQpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTEyODIxWhcNMzYxMjMwMTEyODIxWjATMREwDwYD\nVQQDDAhlZGl0YmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL9W\nX7sg8Yaah9s6sBIvU3kIzE6qqNXJUR3raWB75LdPkzepmlwzfGPcchUomOyf4mpT\nRIEKAoyss/HlQRRfGbx1Fx7c2yIcfgVAAfKYISvrBLDRhywuMv7PrBgwRFh4J4Km\nWn7pvn5/P+7hWiuFT88LDeWWQ29kmSbqd0sEcg4IAUb/GfECsazyWb15VWo8C0en\nLxHDGrpA/+N/TqWW6JTRhNV9+4e7NP5aRhKl3nnG/LalLaFXpbkPG2OVYn8WJHRZ\nS9CidfVqLUSGC957s+8szQg760+sfzFBLy3suuVsWpine1pmnwWQPnohHAE6Ga9T\nHycqIHZWrUbHdbi3m3HtP9yQApH/vsbesBD+Qo5M+ZKPHxHQ7rwTLv/E2i1y6PWX\nGS0VkO+bw8ixAVg5Y7kTVsnUMRKt15YaxF+lWyETh236rHFPF66jSgpAa1ErhuYU\nGlK5PCP1NjHbdBOL3vS0eBGScVWNsNmniG54+TTWUOnT8qwQcQ1HWrggq5+9MBRb\nloPxRz1GPzo+xobdiNZTy02oweupoZVKJsfJwP7jmCx5shADBrmTlwh6hh+O0yJv\ngLsvkkIt/A3N6t2JKBe3vZHS9gLR7CvK/NfvJXHFx2wESOIRvIuVlSOLQhjD4v52\nv+AlHE0AodL8gLE3/iHTlULLFz3aI/YsU+OcGBm9AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAA+U1qEbjoCbp7h//f2jC2gzXvxHVYnVsOuM4HrLkBDZHvL8ivHV9o69\nbsBBRHyXO2nvv8z8ScYc7YYyCDLHj3VJg/ReCmwW4fmHpiguC/VxH9Ww7sK/tljU\nFRSJj8+wxxQyMc8iyCxGMux67rO4K6LbANfvGpEwi/AjuDDgJkwWlapKACXvMMje\n9VLLEacsCEdxluQ6dFwCijZ83F/xvPRcqf9KbWIj+2DAct2L7BJRWiXLol+knxAP\n0F1hrwei3KmnC5LkCMlqBDQrTddX3yeFVIOQzjhdjqh2BLSvRlBQz8ksybVIPLAW\n1Cv/qeIzSd/OA+vZYrFOpOVmxGlFc1M=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"event_update_notification","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nickv-nextcloud/event_update_notification/issues","website":"https://github.com/nickv-nextcloud/event_update_notification","created":"2018-10-12T08:54:37.893603Z","lastModified":"2026-08-29T12:33:45.005512Z","releases":[{"version":"2.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/event_update_notification/releases/download/v2.10.0/event_update_notification-v2.10.0.tar.gz","created":"2026-08-29T12:33:44.969566Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T12:33:45.063507Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"E2UePIXuXPvYxTlyEofIcTUueV7Ae0jVX4gg2l78SZ89gDjyf9/bgtw24sOAWtvfL6QIl9c06dwAeHgPHDpnb6imvFtC1HekBW3tjCKrcfK0ibkGZHSmxJ8AgLwzSFU4XWo8Y2QlVafubAvcZdPDUlYsdAP8KWorcx5V2NkwNhh71wgu3uKt8MznUYKr1cIC4yVlxfehZj8kSd5YjRQ+xMRziKXK5ykw0/v8IyIyCRuGgYnMTWKEsQZjA0tqQOx2FQalsR/iEnU53hMaeafCyM5TAb40tT20GbHQU6mI3o7VAYj2Pc6mnLWRd75MFtgXyAkNbClbqiXMu4WpR+cDETs1FdkZiNhzD9S+PfyddEDpvquugf5ZlTsoUDDO62yfQl/QpkSsqRokNxbevKrx09pSemybswsST3cw/yIm+1Dgh7mh3xTnGmqU3nmB5nCEsb/YWFAUKPpDR9nerVbyTJJY7Imfeyx/CrsPJbe/Nzki8ebPsOyhUY3++FDtF2s4KIJKESJC6uFn9gNWBfoK93OpiOFtwjVhZ06/H6pPFAAzcCng71KNSEh9Yt2U9EcaCi7ezxEHpr/6Fl40uv6TZIzzOvyvYw9Kda1rka0mZzTMs9PxSSMotfhkD/YYKIIwodcDhjWY4duB+18PJZ9wBydGQSp1Y0DBO0lR3+aFh6k=","translations":{"en":{"changelog":"### Added\n- ✨ Add support for Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25pY2t2LW5leHRjbG91ZC9ldmVudF91cGRhdGVfbm90aWZpY2F0aW9uL3Jhdy9tYWluL2RvY3MvZGVtby5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Notifications for calendar event updates","summary":"Receive a notification when an event in a shared calendar was added, modified or deleted.","description":"Receive a notification when an event in a shared calendar was added, modified or deleted."}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEFDCCAvwCAhC0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwODI5MDkxNTU2WhcNMjgxMjA0MDkxNTU2WjAkMSIwIAYD\r\nVQQDDBlldmVudF91cGRhdGVfbm90aWZpY2F0aW9uMIICIjANBgkqhkiG9w0BAQEF\r\nAAOCAg8AMIICCgKCAgEAory/l+HErb96U0jJ+7UVDfVMaV45LhWgIJESPj0f84lx\r\nIOV+A3bqU9l0ANfczcjZ4Xb3icsjiLCLp3d25fus5SfRqqj4CAOqKz2obuTZIH/O\r\np+MAHc+cz6aUSFRcAelxuA2Yy0y8Jzvn3tgyQ/GklrBVeqYS1owaRZ3D3C1RIVAZ\r\nQPm2b1OCxmWDhQz3RhfziytX1zZfmV9x1T4/SQwV1vXMPIryrkiIbR4l3HJFYH1w\r\nSEGRoDjwVpAWpQrmm9etetYRQpBDSmrLRbpJ5VqCAkn6Hm5Yqmbvi58I3hgIM3Pq\r\nx/1D2wknsGjT0synLf1dprngWlXczutabOaktxxsjbSSP16Kezh9x5QT+XXSg/CG\r\nWkg4svxF2277BrdUq1qGSineBTkWgbWYDWC20VjUyg8vQpOGZfnSw4aCn2stXrwi\r\nNg5efVliVSELa//ZAzOrok6nxy+x0UtgsEuxts9gkGU/VHrKz6sJ6qi5ZUTcRuQR\r\np/qp4jByXbjBdFXcyqRsthp2rC7WHd72QO+pBGis8hAiNbItCIP3BTSBblInCfdD\r\ni8tS3kjZi9DptISdo7o6sm9fJC6wUNgdFbQEwDY5s5EVEHmA8E/wIZKsszEBt0gf\r\nor8zdooU3eHCNbaf8AWhy1KG/d465G8u1quz/+OuRq/j/O6b1BAdEfgmjF9m4BsC\r\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAFFs/qpGJLJJ82K2Zl/5HkEwnoVHxpDAc\r\nRk49LKgH8GISBf/mo/BFv8XUg/6/ZsZlSGuijY66N6yJQw7hgEUXWdx+J1igC/VY\r\nlpxXWDC9fEcf+ldV5ookX58b4kLjbEsQbWOhtK40+qK3PTvKNPbeueZDsRnnya5M\r\ntwFvu7GRA4ZoD3JlSePs7yFlgcxAE1QLrT1yLggDtwAEKp5wKCpmowSKFp4E1gww\r\nE3F175Y9JQZ2ef+xN4/VMGBO+1T4eGe3g95Zkz/Ykt64aG7fkujB8/Ly780dzZZf\r\n9k6TKyw6elnDMTri7yxeinWO+RgxsaEbzk0/Tw+OfXKYpuwebQ7KpQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_miro","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_miro","issueTracker":"https://github.com/nextcloud/integration_miro/issues","website":"https://github.com/nextcloud/integration_miro","created":"2022-08-23T08:36:42.720853Z","lastModified":"2026-08-14T10:06:21.484561Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_miro/releases/download/v1.1.0/integration_miro-v1.1.0.tar.gz","created":"2026-08-14T10:06:21.464635Z","licenses":["agpl"],"lastModified":"2026-08-14T10:06:21.542011Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=35","signature":"b61ejTYMT6qm+76hIQJ/i3BYK6mOA99IKnJjUkTBiTgZQqGgCHBcuy4qNYQx+88heReKClQnwtpyIHVDUUN3IyZgCJAOcFtmXjPMhLvvJyzr1BmNAHiGrFKLo6PjTiU8ewIG26udbo3pL2Nnn8nZK9RrSrDun36NVZ6OJnM2y50z23Bi1Ucl2IDomfK2CayFs31vrOzZRXIE77HYTuZ0tnPG8q4v8Ith44evrDARWkQgs/xc5X+adSgMAhCl8/VZNKD9zLIMobd2YIkMAYuL3wLlrSfxGiiMFNXKBi0D3JDE5T6chxXWOqfgOChF+Xgu/LCfUmqVs5zbGE0D+DDcjYC76UpkDwGqYmnm8MFOX8FeNS3RvibWMh0XGyxrRe8+p+UnmyZ5IpP07bX9oK257z0jpDxXcEW8ynYRfSTh1yFCFWpIxMkvKjL4adihrw0E9xW14VfZX3LKQZkNN6opzvCmdQaYY5bv3D2QqjLYlvEPzvrf0nqqBpykNrbksrklzWbMZKbOCV7KSS7x5SZMBIjUgVH73BpLaGsboBt6ZGY2ACH5+NHAyQblh0NDWJXMHvD9duJJDYn73rRGvRbkUH1hyxTRy7rbXCwP+KMB6WUCxj6+MBXHVN6+eYB0tW9Ar+HuGj6ka/+JuAqzpD6d9S833jwVBDItaNE2GRL3Tyc=","translations":{"en":{"changelog":"### Added\n- Support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9taXJvL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9taXJvL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9taXJvL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Miro integration","summary":"Integration of Miro","description":"Miro integration lets users create boards, share board links and open boards directly in Nextcloud."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhHYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzI3MDA1MDI4WhcNMzIxMTAxMDA1MDI4WjAbMRkwFwYD\r\nVQQDDBBpbnRlZ3JhdGlvbl9taXJvMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEA0jd4vJC/5ZboQe5fWTZfaE/jR9yLzfllNGih7TjPeT4414iU1oR7g5fk\r\nhER5fWIUzNSABIAICXxilrF3j/VLxs0qPqtKK93CejAh/sOuU/7y1e20EWw5GLmo\r\nBjXsD08cW6h6VXQhRBeQI3AOyT+crq3mITGuP7DhhbLB0CmkhMpPpCAtpqlG9YQ1\r\natK4Frng9pSgTy6u8nqQO3fZf9X5eCP0xdvjgP0UMcQQ1aMcTzhUZ1U7iRRY/9OZ\r\noh3z6LfLuvpSL+JswHUhKujTlPJKjKJhO2ZFpezJecyX9nLld//nNjxEomcJG7cb\r\nN6Ja4vqh+NW406PEkkqVHPrDidqOQZutV/07A1wZcXUh0eJK39zeUISotN8M7s47\r\nUWByldit78WQU7u4KkQl9Hz3ROhe64g/FxrK/to09CyvjUz9/f8pccG4Bxt9cjEU\r\n+vT5HvnWROO44vlVpcdf2H/cT56p7fH04MQVLL2rCWb1yzgk/OF79UDI9vEOo0o/\r\nJHnGTJcVSpW8TLqWeGXVL1cXsjlLdysAsc7jRWUCHCP/50ubc0lBHLyKhTS+pvFu\r\nZQnXaaL9nGbB72/1EVMv+XUBEg6f24S1hpkW4LjNj7yyX83ipa0X/bbVhGMtDpuJ\r\nAI1M4dKy8yWVCxlGQG9eKcfm5UaHnDb7qYxnJTt+W+GMtWTtSMECAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEAnJJA2yNIoWqPP38l5R5Dd3zl1ViMnLsHQdEMs3i5/Lpl\r\nEJHHbLDJRJj09dvMFVC8o0ZDjppb+u5fPATX90fZWkYxGf1gclOi1yPkL2JWU+b/\r\naOeXvWU5KErwf2dzs+qmxCcNjjfZFIwnhmM477TDGzspPHm219ewZlfJ922CLtLG\r\nz8F61jCW2XaPEpTrLCUDj/ZXgQDrvpI4XwXS6puDW0duJQVruObGkzqrE6MI1Bd2\r\nBDILpOXu12bIhLKyDAxKXeSG6faJ+ITZ9pgb4xAYaXvHkXxIxWwnVIaveO2+lWcB\r\n3+zOVD5aA6r8WQLwj2W4ml9Y+nq3nT4jdAqQcOvbAA==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_youtube","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_youtube/issues","website":"https://github.com/nextcloud/integration_youtube","created":"2022-11-07T10:18:23.635166Z","lastModified":"2026-10-14T12:52:32.585303Z","releases":[{"version":"0.7.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_youtube/releases/download/v0.7.2/integration_youtube-v0.7.2.tar.gz","created":"2026-10-14T12:52:32.573611Z","licenses":["agpl"],"lastModified":"2026-10-14T12:52:32.640076Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"lu6BofgLnn/gUVGNJ+ED6TfgRpVziEv4NKchH7gZ0sNsfcRgJLRkKPW3F5ti5ock2Ne1tUjB1uJRA4O8PLuZ6cxVJAfD+limZkpn5QEPtmPCSp0k0SzQKcWx1ARpeLFsbGltFh/aGiW9MZGj8obmMvztoUuId0wNBBUtJeP57aStKB4Y0DbFcV9ugGZm9rj0rPq86tZvDKLNf6SPkrYCkB5zBQWczO7zf/VHjsM8D3p/o4Ccepqv5hgssows2/ft1yyYSJoVMKt5BcrJRBy7KyynGlNKm77kh3MZ6SN4ZWbkflp1MgJsUp2ec808MdNE/rnteQnHQn3Xf+Gb6bufPy5cNe1nT3d7Mk9dulIVqHxwprrHkLjwvWMuMrdQJmUbEfkMKvQlr/aUN4DD/+PeuVZv7tSKPTT+vLDSDYywT6xikO2zvmmCN7FgJgunzJsgBG6htToiQDH60QRbp/dlYmVc1f/v2Ioz5cTbmWrD4SKn0lBuiiVZw0Xbx47SzaQBckiPrCX4K204/Gno3m1p3XUnZQhyDjVYuKTDFmfWMtlkplymugP/SKcujvjw6O4BrWsqmwwPLhJJoiWTqSIghTwKrEcMdLgZHDAy3gGg/a7IVbVEAt3GZHIb2ei+pe0XHY5vuX9AA0cIvRcERXR3vNR/FKy9pt5wfq6HBTu23as=","translations":{"en":{"changelog":"### Fixed\n- use the real key to get the config value ([#68](https://github.com/nextcloud/integration_youtube/pull/68)) @kyteinsky\n- [main] Fix npm audit ([#66](https://github.com/nextcloud/integration_youtube/pull/66)) @nextcloud-command"}},"signatureDigest":"sha512"},{"version":"0.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_youtube/releases/download/v0.7.1/integration_youtube-v0.7.1.tar.gz","created":"2026-08-18T19:20:49.727202Z","licenses":["agpl"],"lastModified":"2026-08-18T19:20:50.444094Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"QMCPm1+/I73BAZ4jL+ohYAEwlPDDWnlh8iqT6j1SxgE3rHiM0LuaLwqdFeB02EkuhOtx4xjZKnk7f/L4BTWNoqwmSueo/Jw3+aoJSG90N9DRqs6hhNeIkw4NPBLP06Mkh3k449UT/iU1N9qy3MXYKn8Kxppt+sZO6xGg5uDwIndr7RL22TSchDdznPoYy/JR244La7gOjPhftSB8p9g5Ic0Mq9UnBE5PItsad+Q3MEOHN0FXrhDSMfQJqB9pFm7nF7CRw80rEF8fd69BCoAmp0FGCd5ND5z54mlWawAQLuUgIBahaaNvKIwc2R+DvP59NUCuL3sP1EZkbY7pzKtYNh4GsC0TNRIy8fee0uh9/xsXPGVV4mzauJvNH/9NiqiWeSkRiKg7BvmX5G6jqQSELh39BauZDl4fcUO6diU7C2iGt4AYuq7/YrNmthZztWnCV9A2P+0Js5tV+OuELvzU+8zgZkT8xYRDTssQxROn5/3b+a/VVsu82YZNhgg5Lphvywbl1aINjjUShow7YqxOfUsMswF50haq5IwodrSdHFy+1YKitIPEAkOSut9PxgCKh1ZyraVpk9QjItYjbAcAyPhhL5dPvt5JbyYHHsXbjJdMb4mcMHoR3rYwlZcNysGJri83fwqZsnvcv735AzEl94D1X/rzFZf/N8INvo/r12w=","translations":{"en":{"changelog":"### Changed\n- add NC 35 support ([#59](https://github.com/nextcloud/integration_youtube/pull/59)) @kyteinsky\n- remove non-existent branches from the matrix ([#61](https://github.com/nextcloud/integration_youtube/pull/61)) @kyteinsky\n- import from @nextcloud/vue/functions/registerReference ([#63](https://github.com/nextcloud/integration_youtube/pull/63)) @kyteinsky\n- composer and npm update ([#64](https://github.com/nextcloud/integration_youtube/pull/64)) @kyteinsky\n\n### Fixed\n- [main] Fix npm audit ([#58](https://github.com/nextcloud/integration_youtube/pull/58)) @nextcloud-command"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl95b3V0dWJlL21haW4vaW1nL3NjcmVlbnNob3QxLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl95b3V0dWJlL21haW4vaW1nL3NjcmVlbnNob3QyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl95b3V0dWJlL21haW4vaW1nL3NjcmVlbnNob3QzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"YouTube Integration","summary":"YouTube Integration providing inline video player for link previews","description":"YouTube integration providing an inline video player for link previews, a smart picker and search provider for searching YouTube videos, channels, and playlists.\n\nConfiguration:\n\nSet an API key in the Administration settings -> Connected Accounts -> YouTube Integration section to allow the search and smart picker\n\nNote: The search and smart picker functionality is disabled by default. Users can opt-in to enable them from their respective settings."}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhHeMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwOTA1MTQxNTI2WhcNMzIxMjExMTQxNTI2WjAeMRwwGgYD\r\nVQQDDBNpbnRlZ3JhdGlvbl95b3V0dWJlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEAzF8rC59bojZ8GXWaLBIjKAPzy5TaNImwmM9/TIrNAGWiYcnNnWRb\r\neUWJUhwm0ZlB5RSROEd/YsKn7ZgQXz1/CCvyyvv5/Klx3CF+4wUXnZaLRz7H/mdf\r\nKN6RMs3O2RjOdjMimhnzIEOdE4qlk0jiEIg4naxr6KV1HYLqVSV3iUL1Q3AcK7c/\r\nmZAuPJ8XHrjbj66Br1Bf+cNbcMLdChP1l5BomZpAuPItrgHiTB+SeuKpI/BNlfol\r\n7vUxLwEQYxtAEd3+B5u2CXm1MD0nrZtNajD42qXSBhWyOvGRine8O4Pb9pLumhkd\r\nuqDH9BcXM+MlwO7PxFZxrVs8k78v05YyO+wB3BH37v6+2RAvQ3mN2aptLv94U57a\r\n4sBsg/nOmTSwlCZb+cHpXyt+OHkJXVuf0KqMuswKmDRujvIK37BS3i2Tg5dtsr7S\r\nYe5ANRFE/KSx6mHZEDAeszGbisfRYhxf+qW1KufZuzzXDUKwe4418Sc9y58ZF7MH\r\n6A84onmgiBO6k9Bky5m3TZ1pXifXs/C2TyCIAYopfxTDePXEYlg1GyuqnQ5Hmpte\r\nDulTfgUFA/zvPECQ1wynaORqaAmQOMJNJG30/Od5IzMwKFm+d+hp9yjqsvs4V0od\r\ntpv+7G2eOtAWqsuxS6hlU/miXTM/JHqgv00hiS/4zIey7g7hNlefKikCAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEABhcMjjzgMTR0TWDMXipIRCPd80HdQHhDMBmS8IuG\r\n3jYkXMModTrEM1H8HeU8vQK0ma+coV4nGTSBfRrV4mEPpd3wVHHZ2HjELn4zD6dL\r\nbMnMHiq7QIeRVYdtmGjysY1NGzNJCGvp+hVG88gHgHIdoCS/ANHYgfMulOUdYNoO\r\n7VgMfNCVeksueMnqiYCbYRDeB6FINia798H2o3IrCnhIV2bwo+AIt+3XMsO+hVD6\r\nK5uWq9TN25+ycIivsWDyZRJ1Xi+aLdyNK9LWXbEu1I5g1wJgp0KPp0NsxBY0mecG\r\nsGABV1O0Vd4ValX6TApjU2RJXEswZ2NUip6knontJs2vjw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"scoreview","categories":["multimedia"],"userDocs":"","adminDocs":"https://github.com/AndiMb/scoreview/blob/master/docs/installation.md","developerDocs":"https://github.com/AndiMb/scoreview/blob/master/docs/development.md","issueTracker":"https://github.com/AndiMb/scoreview/issues","website":"https://github.com/AndiMb/scoreview","created":"2026-09-03T17:25:19.018989Z","lastModified":"2026-10-18T19:14:52.384483Z","releases":[{"version":"1.9.3","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.9.3/scoreview.tar.gz","created":"2026-09-23T16:35:08.180152Z","licenses":["agpl"],"lastModified":"2026-09-23T16:35:08.262958Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"SLl0m+sDS/w9rXPxX/DKfwiWSNmTdZtNqWyYQIkmMS2Ur5tmuT1QULJfKwXjnYGOy6AZ8tpp3etWlI7OD6kl3x7l0T9ELJK8C7DElGzVq3bRh99mzPqXMoLjr07EesXBDi4r6GS+a3KPxh9KyAicpnxqGLXfBnsCg20/nKwU3bYfLwvtGDnMn/6NjlU5riJEB375QQb99R8mVstcW89FRrisFLfuCpCc0B1MtQTAnHOcyxmVe2lwsfNxL9pPNOJK+WnbHLXvb7h38AbjeuyEA254w0CEwcr7olmg2lRTfyqsqv6b3Ay4gYLgBYtCAkhr1ObMEc9DzLlfD0qhnXSQi505O/PC1fGN0gbOBX0EN+r/GFRDxD/bG+jI287PSKJAEO0RW3jwZji87F9vCvvQEmEZrI3uOLPR3skvEbD03oq6IqaUOfiaBxQx7gglTGzuApC87/eU5agLsISSh2A6V+ZpropFa4EDhm7p1KyW+9gq+C9Az8Q0bQ1VFKKxVASbYdO7iHCOLynbiU2TY+e52kN9j6yoqPzslGxKo65ze8MVUYjMoldtHDbCsxGVLyLGlWAw61Yq/PmekLAV/fr0tOmU8ooondD4pbJgO4abVfsWFjCgkNx0yjiuuv/X4+xuXHxf8bVWPLSH7ebDp6xKpwEsruG8IX9rIhE6QRdN95Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.9.2/scoreview.tar.gz","created":"2026-09-16T18:59:51.146588Z","licenses":["agpl"],"lastModified":"2026-09-16T18:59:51.226187Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"kNL4LzPnwAQ7PBhFGf298YdV39Sh1IUWorQ58taRWFnsD8swQOU4i6Fhx9sfHEhSXwx9eu5jFHzW0ZqNjue65WkHLdbaUz0ZtQOg+U4rEOWt3KwbdRIv38FT8ccmpIF83sBjNFp6FS4lSpqLJ19GQNoewzHDUGIa5Qq+ATr/7CcJcGjpbYyhDE4oILMPe6qWeupx97Y1A3g8+Ri2OH00npaTa3x69oVmxXZcP2zwb0QzyaphPZRRFC2AbsDk2r6TU0ICocAfoM8ZPBcJrwv49valNUG+7oMufDXo3otlpOedrr+/kDtLx69VGKA/gJK4tlrd43x7MLsSGUJogSWD86CduH2LcfPQlZA+A3C88ryCM47g4SMNSMZVEOAnfT5ucU2oBMrzwJ0cG0xXurPgX2Z2DITdRPNAVg4mQdAmlMRVqDQMsAeOgByRjtnYtw4sBosnUkDRmDWJ0sM7J/tFzK5LUk0XvO3/eVA1SxC6aJxKstvyuQ44HLmE6VnPKlKkWU2Za7OY/IUnJCn2Q7SYUVKimKIBPx6bq/Wz1Xw7EekScXx7fEq3cyzDvn/pN4/sCjJ++5HWTL9g4E9hHT+f2DvvKHsX8ismJIOevTX68L2dQoPCwez+nZRqp4TPWq0L2evCNJjt8+VcqGTjSFx15KztYXtH6TLGD3aF+6GuPlA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.9.1/scoreview.tar.gz","created":"2026-09-15T19:47:38.033474Z","licenses":["agpl"],"lastModified":"2026-09-15T19:47:38.150715Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"vrufbv2hAywFQXL46iY4CEw3e8NXZ10EHzfDB8aaP1iGhtJZ44lIsLYm9Nveo8zUzaliDP1/Jk0rVvnyZGfvaOJpXr0ULwwevJGrHlfjkBpoNkq8bZzVNJXjmtnSewYbwpCzktwD715zTfbIhn3HPo378sHKV88g98Kbat6ToR8wLOgZCDj1/1a5dNBzPMGOzocThy7Xs+rnjFlXssX+7lLQAudHkW4/BcGqqGVpBUy4pU8wDsFCWbRddQzRfYOcodE/3ZzaPBCZSstGs7v0IjMt3WlZtb3TKeAXrng8jzjOHrI+H1k7XurjeUiru2zSXkVZQeh0dvyWx2HaF/F0GQE8ZW/9fUAuhjkL6+9CoEthfRJ0p91u0AoydASdf9oG7t7fdVDKJd3XM5ZF6dEV6pQnj9lEAWErIiwHmChRfli0pw1yvzhZ7Fk09GG0UiK4zIIAsGaOwcl1S7FySWAUTK/VnByrpzjzoahreHBLHtSVuqR5kYZHzBxhhbH3fETtKIBNJ9yEDfS+9jzQhqC2ES77WRPGVGTAFCpXSpnZlG5433IzIwwRSUBoi/UqMgwyJGN5iPcoLDMDZjSPZp5MHoAlC1E1/jae+VbdFLtoOfYb/+NSLs1zGIpIYmX3XUEEf+r4s3DcgGydLTHEPmy4Lsurase8H3NgoFQ+XNQOMXM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.9.0/scoreview.tar.gz","created":"2026-09-15T05:26:44.065702Z","licenses":["agpl"],"lastModified":"2026-09-15T05:26:44.160666Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"omTI/cggH87pFVpP60v/jZoIw7oWYAK0W2aI5JtwCnbo6kx256RmYSv3pLKUrF46UUV7HXyxxszwqrkJzbcDJF0A+aR+yP1D4pLPGuvRc/kce/X8ykuuNeXmRAMpehDmu+81tqDcMhUtEV0V6P7rl7jjdQZXXGhtCjE9YDaECacAt9iJs7PcnLWNc3tu6QmXelP4aoPtJgYKXOzzTKume5/4Xmc9m+Ul0Oo2gxBlPg5TlTOUN3a9+aEFGIk9zSEnHuRHbf5wqymAuKQk1w9ISHY3wv8J+OkSUh565UKUIUB9lUfroRxvUTFlofdFaBIzh8WlLVcD5CYXR2GbpajslesOLiqMKfwdsbMOqwvooTM7ntQ6I4f/5fvGy+DTh/U/914ZxEv1b9hodGbNwDO1lFghZJgYkXlU2FffSkY4Qy3Fqhw0DptxW1uC6N8+89KxRcxats86baBaB6uxWKINmITU20mNjodYPv4/7cbGnd1XM9IRRA/+xyevvK72Bav+aJNdDcsX8BgOXa7JkfS0jVqdCh+4TiQUA/+Z4uM9xC4mpt8sbrQpm4jf+N1kAHjyLFRm3TLST4yOModCOfP+gX8XehgGyu7QZICaSQxl+Ij1GwqPDdLCw3RfeEKe4Hd5YzPYui9xSWbN5HwaQU+UkF5/LrQB0XpjuOBdMBnBmUE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.8.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.8.2/scoreview.tar.gz","created":"2026-09-14T18:37:08.461609Z","licenses":["agpl"],"lastModified":"2026-09-14T18:37:08.536154Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"HwcdrZD6gOHEE/3F4NXBMn3RKKBl02KW6DVEtHHsoNpsK0074/EPPa08ycVeh5zmuaxo6AqdcnGQbFWda04FyJnUkWDFPJ2h3qsoJwDvSE7KfIFKmXoaiJ48vpSmr1F/J2yoPkaph5LG8x18Of7N//1s5poT26+AieEXrMh1tJigsJF93SsFqvmbb3dqORmBC++zGp6BaDAErW84awQklsxIJO3YaPnPBp+Mi46JREjNpJy6l9/11ZMtSy53xKBDS08EPQ81GOzoXZpu9XdJM2PHCXIvSZ8JHlNwEopvSFRl3QNE4ahvBz6gdAomuOYcscivJc51mypVrID2ORzrYIIfgStQhMD0fEalPODinntW33zrdwTKqx8LstGa8XV88x7I5Rgd5Qni29T5TJwp6HR5NQWiUwEQaCxV25nfwG6oCwbTz782hLVahhWgYQ0epqHNrSplM7V42j4eZbTmomJ6ZwYDvXvKQosn2uAoh28T8IUkqMGBGDdP5Yc+3IzW9VcBm6yvvkE+9QWuudSoRXa0iCE7u7ktjJcSVUEDloI74UFD1EJCR6wo3Jq1mZG77XFhaAU2KiaE0zzVsj1VL3wqEKDo7bllpFxEoDBrec1BwuxJMhoQZpWYyfc9tH2qccEGvkWcCnhb2R0yfa3c8uKEW5qD4zdeiOjME/z8RJM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.8.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.8.1/scoreview.tar.gz","created":"2026-09-04T21:15:33.106592Z","licenses":["agpl"],"lastModified":"2026-09-04T21:15:33.172623Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"UHD2E89cIC3F6dNDq9yP5FThevSyYxXLfPCORAPgNMN2WXm3euklE+n6n6zlF4ReEQyANCwgknRUOViP1Z3EeXL/6kOu6b3dsgMg6HcKSqh/4IcbeVgWeNr3CzSOG1G9MrJ0zYlrgZpf/28Gur2YyuMdJyY4MOxd6TVAZVEFQcb8P03hqh6bLTap5+w57CWffzFBYkiPRtcZu/c2o3I7oYDG0h7NvcSZ1QTp29kuBZjKKrDKEg2Zk72U7A6j0x6ra/8Qvzus9DTxOolVCcgu6n4liiroDbUoKEjM+jgdynToClskeBX1oyLK7GH/Trc6Mbvcgsr50Dev6aHCSL7U3cI8wrZJSDBXK+7Dy9DFlaON/b+OPXqmq0RtRuYp/Ge4XJ5PLqlNO7x3DJPJG9njVnWMSCva3W64UqeRsV+/i77jLsKn2/q7H4EJrMEBQhG9N2r3baXOborWpEyt8wj9OvC+mgAeIj4GpzYgMkpoodu0/rl1sN4Eh/Ddp9lyDCA1ss1CG+PzeoWiOkw6C2FaX9ifCBc1l3YjvB4yY9Bb7DHMNXoX9cKl4urdGddpmJkT4Lu/+mO19zCjrPBuJnlUJntOwmHa4lojUPqEamfr01KJSqSku6/nmAfCCqZk+Y3yUoooVEvOKNJwGz1vDdWkLEo+fH9ojmJ2oJM6MuMAjco=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.8.0/scoreview.tar.gz","created":"2026-09-04T19:16:04.080945Z","licenses":["agpl"],"lastModified":"2026-09-04T19:16:04.176952Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"qCaav7z3wE+MeOtR8R8xMcCNZWzEKRDD5LB/DOivnTNxgdqpGjuYhJIvWfMcJCpD8LKbRgNZoLDhzuozEe1rwfTmAnwn1Hw4eErs4nmslzUYWpLzFJtBu06/TkBrpJVV1RCNlv46RufUzomyBq64lHA65fU2EhdJA/hI8aqi6NhQCc1bV7lIq4ulowm296zeXkcLq6f2PGIw/EH3ZN2bpqnCBLe+R57BtF2+g9Cp0KyDS8Q5E5TnLctkItVMmkoqJTNqZynRY7SFy8VsLEEMs0ZbMK6OeUA82Y95lXpX8yPYfl1auAh/yUuDKISEeXNHM87xxbVRqTpFti4D2xQkgFkcuL7FZPBB24GCnLSh8Z9TQIyL7t0GBBaN7pJvawzyabeLD+paD2+6Gwi2puNunALAhD771uYzo8MSVtQWAYEmuvEXPJ5YQIoa8m18KfUIj69LTysdLddcJeo1i/F/XjU1bvXob26OcxiYYXstl1FqELE0jUYEf9B6Fi1mxXemr198KDigJUAVIw3PgXMKiZJUl60tI1X5AMSAnLLaStFOPYZoYQZR46KyjwXe2a/tvTHpCFO8/rWikcpRS2np256krX4CEhHou1C1f/VS9nsbxH4vBRVbYVB7RF20Gn9gCO2afHXJGGreZNQ1ySXPdXNWTlHYl1nV3T/iwYgRiyo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.7.0/scoreview.tar.gz","created":"2026-09-03T21:18:17.770522Z","licenses":["agpl"],"lastModified":"2026-09-03T21:18:17.853727Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"h+kzPYpxbWbyNG9c46GEk87W8mwfQL5dOulPJ59DQZMnt+Ny7sAQAcHKMvGav688KkGdpO2N+GmYOq9jfWOcWekVDXDmpcQiBGgZQiqXDYWPA4Fqxkqdjxd6B0Hxw+uzwGXjYR9Q5Im28Kk+Ck2pWWeFoSqHbsMjL6Qe0mNSICq4hmsM6ctRNWABO9QLnh2jiZs+BvRMIXaAhfqAM/eLicCjKcrde6gbUnIskcM6FCth2KWCV2TjfJHO/hcUyHhxkMd3MnhlfIvHJ9eA+ITUHoDWrGrY53DtY/c5rxpLCk3mq4qm+6r40JzLsifmhrGv77f8eus4jN3LX85fCxpHqkXuYmqZ5ocLAr77tQPDlLKpKU9HAIswTpKMkOv2RjzdnX9s/f5W0Tlu2KyqDq1R0uwt9kLWk8bvkf4qgq97jE/XEJx6bDIeLX1M449N/VJ0oLJPJv6tvVJguvCUBsFeqDYjirAHCDXPCsn/WcwOqUutxBw3bUqOUHFT79YqhLHPA3O6F9c1gI9Xli+QEN9X6aTtRpcd0S8L/3rEVl6GRIumBzptUedktIc26PamiYg8jfF+sPytf6UL00dZojs4KkKOtwcKPqRW/BF8acKXbAj+7/EbSwikNWA+y++57o4BDhvWrlmqAQFdcIGkVE8tUGImSovcximFO2nSAL+qFt4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.6.0/scoreview.tar.gz","created":"2026-09-03T17:25:21.196143Z","licenses":["agpl"],"lastModified":"2026-09-03T17:25:21.275486Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Y/Kek2St42BKA2oHQHz5SYdTqd3ceEhOYWgTHQDm4+lQICwERnu1ZxOQDIsc8IU0e0Ite13DRlEjJL9VB0oQoIBPoHvJu2w3g6RFolHR5iZMV2y2Di8UnyIX+a6Gn/T/l68tsWw9Tfi0cF7BvcY5I2zfEBA3dNhlliQUm4Jk18Siehn1dWM6KNpNn+nRUHB9QyT6xJkWr7qh9D8LQhqg7TyTEQ79w+mcMLbwH9ZCNmo6d6Th/xECWQO04ZiC2d2ae1zAUtSFzpMnhF6k7vPJEtqdp+AkcYTB9RM3ubio7swgIKgtO0ZJFbGLmpcnkuaW9TAVSxRIinLdxq5lg89qCUjbx+PoWPSLFLmYny2VZq+j0Z/GtCSSMshfrU6IEs0OQ76kMn98AczaoWFPdVMcAVZPIBhgMUTHI+iqE6+2r4Jnqtq85YryswpqYfcIARzO5i7XpyBNSWNUanokb3hF4KRttOGS6amsea9FY96UKSAv728LuHKYMqj519V5HFVXAz4aZYCkcJ9wyFcQ+UjpMXUf3ed7obWhQeIg71FJpz9Vt5zUG3tUpDOFe+04PUbFI8Rhj4LkQO7fZU+5ybDjMgcqSiBAZ0Ql4DJyhH9QtBlqBknD3JMV6MPus0MSd1BMpmvTyvAOlBRfF1fZj8uQorEK92k6dIM70Sxv9lwmetk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.20.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.20.1/scoreview.tar.gz","created":"2026-10-18T19:14:52.340221Z","licenses":["agpl"],"lastModified":"2026-10-18T19:14:52.428905Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"BxozwKtHQRLnyXC9UIpCG8dXQgdcxFhRTpR1/BjP8EGsO52ysbwGXqjqEgsxpCGW1VmXD3nrzVQMb6C19eOAC+BkUM75gMVIcGTvMmTj2hXj4FfoXPUBrApHobFkHwtmRiNMniAc3/P1oQ1H6xxmLXcatS4sX0ED5Em5fRP/At/YIhSHohHn1hP4v2blZP6LxPZRHMxffb0/jj0XubjP8AF70ZjjyRqiDv/mMPIi7JKZo/UHKLSNuoowWWMrwPyenQQVPJEWVW15EdO/WQk9FLeDFiJclquPV2hKWtMgacJpiE6koiT99ybqJfPY3WBZEJTZfpHbL+8L/xzsufj22fyZEhoNDs2EBSZbmNmB4LnqkozVFtvHJ5fTzSAoQKdwmpm6gHd+cbC0HKgHyzHx7Q3ySX+yuj5coRrJW7CSdkHwT12z+EAE8Xl6rWIinxVOCvGXGj+jXYcIgDKqI+CVex8ZalpiKdDz2Itg1ZoW6HAsV5P7CYJC2sQf+iIia1wpdWSHR3n/2ZYVp8HAL4rgwZTRnqplPSBQkIAKxvMxJq3a/5svkh52cGcCBomO+F4/peyZxvAIfTM2U/bUWG3jGXR07UbBCqyhFoKWnIBq72Zhmi1C7iNthgxp/diCIlXTBCdBFBHdRYphm8dpnxTeamokiDwOq18wf4nWLhe288M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.20.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.20.0/scoreview.tar.gz","created":"2026-10-18T14:31:38.971184Z","licenses":["agpl"],"lastModified":"2026-10-18T14:31:39.045321Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"KfW9ZgTKyxUOFuXU2tIROjWbmqW7dgYbJwX9JC4bF4CEVPAx+J35kwWLjhRwq0XD8hCrmGAw0SeQHT+9hPaQGS9/d66pL4SKAIrGj02UIIdIOa7Px9f5D8+awej34G1QaXtFGINVM4hrU2zIQELd45yO3/OdKJwuVFefCiApvquSMkKkffZO51m6WUVdJ+7GVcpyYxMyprNOPfqNfK33su82hz46LfL0LcLCSIYF8pOTP9D+ZX7ranZrFMpx850yjjpwMpJXtjrNtQ0+nA9hGn2I8Tr9p9PlKTQDLvmBcWJI8vIW0kLrJYi8naM8QbANXuQ9YGXczdOAPqgPuWNBm1WzxMt70xt4NyLIL1ri6BlHqndDDjsWUBLyR0+fV8hqH7JZ9EQ/NlZSxWBbvhMFcLg7WUhSv6PYIjHO9nRL1q/7vOuoIawaUo1DU+2ixck8Q8/PPeD/E6o8SWYd4vzqNdafBtkB5LC2IbS6mz8QSnA4DbCpL3LGsOceLfVTF2wciHVeZx7vMlP9iwkfPe82cUL6nRpi46Ti1nJHtLISsNo1RgVdcyHC7fa9jLjVw9p7sxJw4ocFnAXXDDHJ36aOqsqFWPZf5V1IstK78C/9K6Mkq9dnxzKWcUQKZ/vb48b2kHT93pv61rU9VVFa8KED0v7jcy5Q//Ocp1D6es8Rojk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.19.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.19.0/scoreview.tar.gz","created":"2026-10-18T11:08:03.477609Z","licenses":["agpl"],"lastModified":"2026-10-18T11:08:03.552155Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"ZfYzqclDGmpE6DkNH4232/P4dyRZ8WSzKbkVRmoByU0roFz2T5icB7BkKsm/N+H2/e3jvR6itqjgpfOdhuQJvid9lOuCvy087WyKA2iX/iZ2mpdU2p7dJfz0Ji+LZxF0ayw3tRHIo6gDGwuUOVV7AKr7IoQHJV8pOv4X8r6k4AbLV+n5A8swW90GfBVxIKJpz72E4YvjIERVulk6LZh+OYJWe6aQ14qQ/f3OTufScNDF9hqRbT+Bq4JKpR6+AgUASRmpGI+HHp8M23llastVgMS99LPoPLjZy8qi6qbK73ZBQICoa5c4ec1Gr/OZoeaEfnabiCR8iEM0GADwPj3p0tmaFWJ8AZkwplehvaO6pREYj1ieZC8vBDDaw0dlh02rQ1sYoIS2QzdVg2FfaE92g3N+PwpSVhZDtMGlQWXEOMylXJvwYt/G1MQeJJwkRyDfqoCfxBioI0Rip9HOrO2S8tnbBSwhNUVHeYA5d/f51AtgLYhvbp/F+VtAKuW+NH1EZGRAtrA7W4fNkVSsn9qOlkgb/0NRY0K8n6RDyUJYZH8ibxJESvZusJQZHXGfPQIEMnddF0/KNgKHCOqGkeJEr7v4d7Skk2R39QaFotw+zR9oR5cqc4y4cQUvPgFy5OpayFKVYCedkDcQrbiWoooyVfwX9sssazSK0urK+b9JPls=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.18.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.18.0/scoreview.tar.gz","created":"2026-10-17T20:41:02.532592Z","licenses":["agpl"],"lastModified":"2026-10-17T20:41:02.601694Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Ygs337LnjaHmnRPJTkAGVe8xmInC6OjA19oZsiFMs0M+cLS8mDwHUbvm2RZ2Q6Y7I4X1e1BwtmyJSai+FeoUJsJazco8qseNhUqwj0gGKCAaWrRNaAYg1+SRAZtW/p5qnMulkmxlSrU0JcT8UT2qJRdVqmk8vt2VMmQvC/7XiHSbdXtYtrgbmGwzlDiW7N79REXPsUirlnP2e85TyCPnYShnGQJjqGC3DvBYw0ONbLCTTxm88uwrkPdqfxaN+4h5TrziLzR+FN2vEAKAytGh9Z4OnQtTTssQXPHlEAPwa381VHkRD5G81/eBS6zAosGswk65EyHA5HkDMcAOnvU3zmIPZBq0c9KWo92JGRMz00L0VdNR/PpZqKr71jfICi2QcpMYO0wtWobkUzVnjFAulxk3Gp5tKyFSvxC3IyJ+cm9kACnPdqNgTx4FH67NPuBaEAJPMO5n2DUY3nsL9kWHF/2P7TKLyWVRG5/w+z3/qXw4tYTC2X965/IsHpB5R9cwhMWBnSJstVevBStC+SsTQyF1eyVaWxOLhjjGCxkDk9Aj70sfcGLt/ocPXxHuVs0NmEo4AweC1plJInvWmAg+/tfH9cIrFXp1ev2PSWIzny88W+RSz70BmdFeiK1zEV8iJRLhlSnbqH3669/yoLX+WagiDduP1fI6bkV9KCVb9qw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.17.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.17.0/scoreview.tar.gz","created":"2026-10-17T17:24:53.710434Z","licenses":["agpl"],"lastModified":"2026-10-17T17:24:53.785243Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"im2Wcr992qPEihb+uAhoe/2nRf9F+RLFQ8bhtHjoL6xHIlQu+32BVTZtyRlL/nUIzBYH0iBNGyWYDYHt1FomsGpNqtiQdlJ3Sys8YL4L0fDHLa+EQTnEvi6YVN2yKXpALh9x5WoV4NgPxishs1eYD2rlnSbC1lwXDidni50X7cpP+DMvitlQvnOsPKhsxzSZ3GL/CTCoXQTLH3TgTwwAq8YarEdDCtT/ID3MaIuv213qLAu26ORTJ1ZsVA6v0ySi9D/+JdtubtpalLYibhlA7Rf7Z2V/tkIPsywMHdTB4p1WRcvvQVLPRwhUoRMW8BNXJlu9lRVwJ2W8MvJP6EtXds1i3As0CiUOtbhci9f3WyY0TigAWLIG4DFnwp9fcWvj8JDMiqMZwYBAZX2/gH55EGc6iZkvOSSTMtE7D4P8cNJhLeBG06KFPlYvFgpflS72IXeVckzxX00tqL5vRwPz6Iujyo2xjDvQqkaZ9/PEbPKL4nVCbJTkT+VcqQNtXy7qGJukvvm58tuAgHEfyRwz2QPi6V46T37BPx9An4+3ZLGtQommEDZKOa3MHT2QZgeWIwI4Q8HRbYjDGpYb+ScJiE8NPGa311KOZoe+lO++Br/AusHlcOgoEUkstyIFaguMqAQVjKe3MFwgj+VgDsRAp/qtGtCkZQPOY28OFNjBgac=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.16.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.16.0/scoreview.tar.gz","created":"2026-10-17T16:14:16.587227Z","licenses":["agpl"],"lastModified":"2026-10-17T16:14:16.663003Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"W4tXyTlxyVAOFWcQODz6PYHIKvCdZPpS8d3fAauuk4DaIjyW4yLtmefkqCd95jSXEPtJw1dzo5psMj/n4FDQ0LxCzb+NT/BKr/ubxO0CZwI9YxUzSZBzh8AqXEl2zCCGc96Z46p/616Sls70cWFc7B9E1dX3hOWUsJG6PWDdDY9gJ/b8XykBDEC+UvrDbY4MrSpGtluRehZbrHl4j5V50gV0MZyonNN/kz5dPOohEhWZTtESu/HHW6J7JrIKfz9dql5DDK3mpHaIJHYv5xP/N4o2a00aOUsZjIB296nulq7rkcqs9j8aP6aYzW3w13eq9Qi2GfgKuKhMZGktgp1o4lCceqUcLFBDnjAu0Kopg528S0PhT8lPVZCITec4h3iAwhEtWspSD6qTE0kpvKFcpxX9i34VTX7ZPkK/a4f95XT0JxsHHlJLRvaktTgT/ooZwsWzgI1fMI+ATWpKwjVe8tHX9klnDTPrxJI/vrPkOvJ2bLD9gsMTzIBp3QktEnqqipKEyWv7hcdO1u0v1RYTbVpYmWAXnmvWLJAMcTefT86m/zg5tScvRdBGDTPOGUBZzWNGXUjoFhfzQ7nr6KWHhgeNTpmTUA+DSivg6vQzRj1gujuM4rjSsJXKbJCccYirlQLUryqYW7JWmVT+mU9KayMfkxyCWQxmHEN1WlrLPX8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.15.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.15.1/scoreview.tar.gz","created":"2026-10-17T11:25:46.862058Z","licenses":["agpl"],"lastModified":"2026-10-17T11:25:46.931629Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"XiVm76q9Pg00r8Xl3rnqPN7bgSduKE8LG4kFf+NsAmuB5dkv4d9TyfBBNlX6YG4WuRoGNbAxCkiKSc05mJAOBHZESo9G+5XTB2Xu/cCQPxwUQwVq8ASkfC5P6ABXpZuFIEr+460eJciZdHmtxOOq8qoA5Babc6wA8JW8owmS0pLeJfewbbYJGU/5ZpDwuaWjeAobBkqdjrgfpHvTSuhVF8virGNG55AZJWjhHptwd0xSf85lOWeZWZaoePc8trTWRFI3WMEdtNduNojg4W4U9+PQB65xa4dzk7Lbs1NKAkpBVx0DvFB7A75bSytM7CRpvp/8xjUZqr9E4LZS9C1cbDUq5ZHIna39n+dlZmQQP8VZLkk2B0cb/eP8hnAt1epyCO45yf4sZwEMHVTlGUjrumogXy6yrIeQ32U0QqT+yHAdWVZ+i3cjnnxcmFIbOSi00jORkNmOPCuK5JNF7Jo0m1lUOFPOwX7+mdg6bSzTqWSXKoOjI0uLB93IL25/+E9eUbotpQZep1ep4gNvZlu3OFAP0GpM8Z0j4HJy1jmHoPk3bPneie7lfnwA9VKcNsdleDlfacyiH3/JHbiZfJrgPi1tTnU+BtcWkdScuXcKSwp+PDR668M7suwjnml4OVFeIgD34hQLRDXuyc9hJd1uvmG4DraiU/mby8+lWBMpKlM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.15.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.15.0/scoreview.tar.gz","created":"2026-10-17T10:56:07.915882Z","licenses":["agpl"],"lastModified":"2026-10-17T10:56:07.980253Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Ee3nto7goL7A2Z5svvXmgG7Bx+v0lbbg8jxRUrdxiSoCytqkqayeeqtVjzWw3DDS+pU+DxUNh3uOD9kh2uXwazwfn4M8mivQN8QkMYHoZAKrFnaTtTG1G7pUuJ5ueqTAwGqbCFCWLOwOd8hoAZ1pyqApu0OpPm7P/F94n7tW6XgrrM1fV0lumxHSieQqVk6QbbLf0WVAx46FqT3pcnxDf2vPLEQ+Zgy6ZzyHLTWf9QGoxwr0jeb1Hm0lGn4YTGCgU+8Z74Lg/y7z2pqSY0z+zWuzhrn+GgRq+2OGcqMq/G1oJD4QvHpAr+ShyfPd35x+yKliTj0pqEozjY4wupL2ISaCtJ9afMLxHMFz+4mL7iWxCvX80cgEGbZFMaWxbY1XDgKF5UMthOv2X91iDpDTkRiT26tTUVc+S2kOBoAmSqTaGk5iFBJxc4I/NH+oOUnCG2+biklAxT8lVDURpsrcbQD1Xa0lGYqsPl0K3GopXP3olNeoGERKlq1nodSBhg/JMQ1GgUhdoJ41n/yb4iQjm5ntjfnONv0Gp/jcSZfe8KaMPEV4M/C6NCH6q1gQuoxcj9Nc3Ri4mmmcTqzL2Kx+PRScvT0J/9kBFKA9LeOl9x78I878o3mWuVMey6hcm9dkM+hrARp091tM6+dthqYA7c8S3k/ydsMW6JDofpTFJ24=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.14.4","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.14.4/scoreview.tar.gz","created":"2026-10-16T20:11:10.655780Z","licenses":["agpl"],"lastModified":"2026-10-16T20:11:10.734887Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"mVm5XImAI1frfXgmgUPYr2P/vXo76Ta5bfatIJ3Do0BDTCC9dDtwXQ5IiA5zRmUXQyI7AyIcAB5rAzbO8hZv+So2BF432+H/OeIp9/GJ3F6JXJ1FN9Ct5kJIKYHXU+jrGv0SbjcOkOnHD/7+mIQBAtNvFSA18G3SfdnAEj0Bz8P3zCL0vvTsHQemlJM0AUQ0RehMFeWMI7eIC33r+xmEXemFhCbRPtT/Fp9oU/Qy4SSLtFK5c0S7GpD58LAE3JUDtwaCUkToH72Mh4Uh6Dbzojw1pHPM06W0uPo5dCCE2xf/xj42vsPXWbF1QoVRKAgcIm7Nogm9DtuFYPlDEJrv9dFNpmr7RpzY16sqlYr8gMXi0dilhJIIozy+kfr7GG2ZhPzvdWoixN0DgvJohWQK/H2w5ufX3xI66B7ZtmD7lQnVexqkEnWAqy4OS05/aDyAcDrmCZn6tYTIkt4nbReeVjtvx8n6EK1k7otis+rOOZQpSfYuzyP9Zv25lE9AzTO2669duq3Dy7BqQyFI24PDoamQXocJqpedXiYNv94kaknUle4uB8nyWxp1vjGn4taaEW1/Np9GjzAPsCTNCbthv4RfPR9IDzq8aSc9XrAVxNVWOIfEjnT90wTImepO79FFS21IlrDxUxQ/J0mxW+jc6AJz2iOzwa9kryADJQIOKqM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.14.3","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.14.3/scoreview.tar.gz","created":"2026-10-13T20:59:40.006850Z","licenses":["agpl"],"lastModified":"2026-10-13T20:59:40.074691Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"MfysXedZGe1/aGQf24tm2NiWlV+xvJ/7W45rHUtne3zug0a/yDdxHxc1Ee7sSoNXetFxhF4vnwTXcruwBNNWRh3pd4YQ/fu53F2PBRlo6AAAx66a0ud+5pDphgYQ1IZ2ri+g36hU7JlPLVOfmpUKxU0S5tM2jeo9W9UCxQrhwbHM0S6gavk6K2dUo8taxd/5kYcj9mr3MRd7S1rjPWkM7ahysBT1m2WvB+JKRriwOPvzXQv8PXqAAAXf+ZpO1WEjkoIKXrAGWDFuwrX+78/Pr1f8eICSl7ZbK+6Ukk9XvLJdEoZ634BO76Jdw/VU5UH5mMDHi0cTWmcZ8+EnGyRY3lJGZ5QhFeNOvy1TpVJRl3uKeoGyjb5xSLtgxCrC/ag2lQ+ZCgPAJ2VQHrehHTVim42vj5FMAItv/TrStVnkciLQsRH0NrxA+RngwjOrKDroxkzfn/oyF5cekOB5zZDPUJsf0xQt4Hi0XbmWq7uG42+5ZEMpPO+XuhC2bz60wh4+JglcTLchWuM+EzhMmIZxWOs56TOln0TpyLhNCU8mDqxVS4IE52AKEPqSrhv6JZBhQVrCsYTSmgKm1IoGHahX4fJAPBjy9TaqvlSJy8OpJpVw9aHlLfKqoyb55QvOcxZ14m6RCGbJX+lQOrbbewT4JqNHYBN+Fc17sQb8v0HLhbM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.14.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.14.2/scoreview.tar.gz","created":"2026-10-13T19:34:54.967088Z","licenses":["agpl"],"lastModified":"2026-10-13T19:34:55.041665Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"CS4wRROio7Nl7WpmHRChQHPEpOnCetWaeyzIl4lKO0HicxzG8cDhUg52Hb0z5jGzPBADK+ug5J09ZEK7Oh/3KHoDYHdufAULAOY809xfh/HohHD9brb+Lg4Eyzm/Z3U/HP4F8aA8vYf8g14unxMndnGsB7C7YGzFjJSPJBqOISNZtgfN/Z1uJGIG3QXtiA9DeXVdZ3erkM/v/WYiv/ef9fIZ92C3uq3sA6tVjcdpvbNx58t6zax5PJqrZQEELIAl0uxHH9PpiCFvlRD2pv55VMUwWou6tfMakuN/aDjTYg3w9CxPqPxuna9bBrdXUUrGSi18GaNNVwn4sbckynl+frweKEVF1lS95LNu/mE+MRcopGuBYfjoHzpoDRjjdzV/m0ZltuNf3s7kXECobWrnyx63vefi3PyOxFZpxfLzlTECtS9wmi5XFVf6qZl/U8tIgo9yxW4xq5LwohajqPzLbMhzNogVaPzq3U9uZkNlSIKxEsyV4+j/lQ9PeR55YqFN+wCq4RDWEPbCPTKoVsG3dyFQCBjuoYTd9iNZpNjE/IVrS0tSsFYWZL4sD/tXGNVOE6xt9vn/tZJ+U+xbiwZe+bE9jkLJKId8qJ1ga262IUOPEKpIezBv8yWLSFHdH9gtPpTE9iifCRww/7yf9/CGCalJXLO7fnDzl5dWbnElcwQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.14.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.14.1/scoreview.tar.gz","created":"2026-10-12T07:45:59.218349Z","licenses":["agpl"],"lastModified":"2026-10-12T07:45:59.285763Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"LtNt/iIUoTbboNIEYrFR7TqPFX7h5DPUpYaakDImGE4EQGV6OdjtcIcEUsv6KcRNR4chRfPh94lCKZjBPZqvlO/FkTqr559TodZD1f7YBgyBzf60uS2jRZWkp8+wAQUWd2mNCC2AX/uHQaKK9mpSzoo/q/xnozNAY/P+MAFx+NzGy553ICg9bPPBX2NRpzGk5R4nK/MpmEt93R25qQAW7GPQPo4FO8KxGFfLBRCtEoeCp3TfVcQLlIHQTwTCEJvd2mU4v9wRpJvEZa51qXqghS9rjcZ6bMQKmcxB4VSIDqQLE1zaJ9v7CemE8twIhB6hUHyj9NyEIrWHDv4o2r5Ep6oPaJxKBt5UlpzRHZyx5ww+H/igwvm0FaIVg84Ba2EJLs5RkGkez+uMs1yVTrAP0XmyZMyOufjVVzlXh8Es/J8JXtDnxZHYS+/wYwXs9YNJljoPmMyu3QQwj5QPBM0EYj2YW/y5VR5unTHO2SCchsJeu9M2ZWhwmNtBpjHPwEH9sfxDW/v1r0C9SFTzNAiyw6ZznQ4dRDHcZaXAC03OtFkItuxC5D+BIWHqKsH6iriood9w78quD+TBRmgQzmSAEetWI4Ry5lPmVIpcM/bA36dC2dY6LUYaB/SNSI0fpXkPCTTxMGKCjS576PwQQlg2oZR2CzlVYMW76wxewuBmkFo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.14.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.14.0/scoreview.tar.gz","created":"2026-10-11T15:43:33.577672Z","licenses":["agpl"],"lastModified":"2026-10-11T15:43:33.659300Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"sYCDGWOhuFX0ne8lVS4CZr9teEba5XyE3opJmNhd8IZ6nby+5J31E33lkgiawJKdoVQvsjXQ7Ky+pk5kl8SbeXGBBDpikgMjb2cr/45Z59CTHtj/nTHosXtTCxbewTTP9llQD7caFeqvUjJGvvzKhp6kUudHCfSbK/7Wv30vjXLJnCt1pxVjTK2zU/t/R53UuAiESY4Wk8aUGzIRIZ1X3aLZfAPFydjKXjeoOK30MOoHndpnTSs7/nlP9pp1UKjxnOQ6mFKPagWn8KqmzbfKAFiga2/bOMHj1Er/ciRT5IDMg7Cre3sm2uXTBwyI1q5y4M6cZlA+pVqhKtp2M68pCucvg+YwUEfUI8w59LrRCCBgLqEEoFjai4BMdjV+Xp/Jq9GCtoH3gj6j6RCLFukCXQAc39XwdFqfN7QBwJgzdx2dxlGijfqWwjrGPjpJVhVJelhqW1hCB6Y31QNVr4C3daK17mE85Yjlk4ktp1Lee9asCHJVKyUmnpY5tMD6YhMnSEql0R6+PHnn5gVNY2v6YdIKHbhlMoKgLudnoAgftnMPDhbs1lkQP09hDe6yRf9/jABMvmjjlKRgVkzbtAtboTYxXbN/b1I4Z7cr0AHVzOZa3pucLEkmZyvRXMXk6OcQf2dHDZGk2lHk3GR3hvG0Nqsd/nsS+cAIezlf+3FFBas=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.13.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.13.0/scoreview.tar.gz","created":"2026-10-10T19:25:11.174129Z","licenses":["agpl"],"lastModified":"2026-10-10T19:25:11.254062Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"L1hCzWLXAV4bhSVq8OoCElhyszkyyjilEcCtc85jyNmJs7gJ122tpTHey/9fikuKoYzoc0Rm7jC3wTkI2gtqV/uKycIuW2fh3zKBm4O5Vq//O0VShVRhS50zlIK59+KuBDVtEFl1WoqfjCwj6nxIvV2SdwS6aNvqm5uZvAjAYWWLRZGdpxTtbsejyTIqU/NgtLq/kYwY1TEyz3CoHQmfjfVV4GYOPrOet5MfrDKI+/iVxdOwZ2KkfeDWRfRigj1nRpGV8m/z9mJyzvuAHMCvHjmm9QALFkfdJbBwtVwHG30VV1DpT9CvWfjPZlWexsfKFALPieD8TQbXyuOA+afdou2S+9kk6EECHls5cLR0o3C3JEn3mkk9DgsaJ4DGLIy/MZCJ+Pd+8yxmzofVVDB0C2M6zCsx29u4O8kAjF5Gkqrgdy4j45IaiiupjgnMPXOlvbUZQ01T7/MU63XEjx6NLU+2qIS9pLs8cD7ByN5cFnznN7g9jMMX/AKRC11w69gTxJxFvjZLeOnH0MOTEP+iOq3Pm1MZNReQzvabjqfKqdcfgDb2JNiEDYoLyPGwZ6f5aTtGVHAyuPoJ+yLi1Pp7v6D3vYX2Jo3bH0gGE4uCWQNH/ka+Mw7hIwBJaLWIq8E5wgUJx+ysHe8UeNIRWrsW8ZgybEK22i//y7xD2g7Ye6M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.12.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.12.0/scoreview.tar.gz","created":"2026-10-08T17:56:32.539881Z","licenses":["agpl"],"lastModified":"2026-10-08T17:56:32.614516Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"g7EE5RVLjADXm1RSStCOEItbTMSgEQA4ycUfSeqvFT2aDCE9uRQ2rQvBeRo0IsMD/4rLLP/zYrw14KOAJ7hyqjZMDy3m6hfuGTRRl57TRBunoys+p0PII1kul6j8eT6vI8t/HXW1Ha9LfZiHA7tkjoimED/DA0eL41BsIs7VEBl3XSfwvbMA0TzMeZWfHBAUJNwZyMPwkxup4EI7XTsgdd8lfFhNZtYMkDq5qD9O4U2/c6HgrSFiPUuyP1MGmqsV7a1bhcAchzQroKnm6MbKLIklOOlURsHCtYLu/Ezh5ST7NvTfFMRud73layuSqsLxBnlMBglVSRPbvdb0fwtpPkZyaMc6/cVdm5H+mPm3o3Kg0jSCIuFKA3PObD7qdY0ZruqHLBZAAJW9BSOOAYbUuScfibHGJyXwyO0PFL+v9eJzDkvy+0vKRLMCPupPYZuigLuaA+KiEHMQmPzwF7iSeM1XRDg3ntHwtGRbAkiejdL7oq3FpHnmNwrnRKGsL5wFnMd0+8SP66NT/OpkEbFQM6p8rTlIVSl+jn8Rz4T9lvfUQNGqBbsU5xg74IrXdULMKYveksBk+YFXknUdDU8n227DhskQAcRigBDtUSSWIpJrHIFYl/0oJwXqGZ484+eQ+7a0RkiAXjdIRdRneg1FEaVs7KnFjn/FCFVvb/17r3o=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.11.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.11.0/scoreview.tar.gz","created":"2026-09-24T20:53:05.695027Z","licenses":["agpl"],"lastModified":"2026-09-24T20:53:05.798598Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"m+c9SMKN4q7AgOi7h6r52kRyhnQlt1Us/YT27keiBtAfGb7dSU3pOKNSA1j1PU0j4rpnCHgto06mJmCeQ87w6bxNxCudHmhi0A0YBPeFPqdzSVyOivwr/xZt5unmG+G1MIvBCmA++zrLRYGQEtlA6RwCw+rrTAKWkiI8Pjxk2mLNC+RQOKG8s3nxHGV2skEQl9doGv6rOhVfXeSEzEPI/2oNTG95eQW/BfO80It8gRIR94LIhBug/QtEnZj5U0QRdEphEeQonV96qW7zC9pYximbdRkCHBqYQPi24aQrFCYJJzySHOqPlWeXFsE/XBOjyad7zTWqZgXoLZVCcvxGYLxvUNCPvbA+JLNXvuT4cqB7lUU3fkTWcHxFp67IZ8/X8g25VJqCsd6PXPJgu3Y3lSKtrysknhye2lzF/dRQna4HKcjTrFss9oYbVsuDZnWQUdDrUda/bu73LGiBSjv6s+3PPMCT9mgunP/6pyiZVMRlQRoEvHU9lchuhIhl7M3xxxzfXywwDkSEs2dq0EkPx2jIAWR+Bjc0wZ/KG2nR+5BGIjV2V9je1SEmmFb9RUF4NdGBkOerGgQICqfiycx+PigcJKlfVk9DGL1y6196TgmAxpvVTtOZoZgocGMZ2gg2XN/tmtF082EsYGWPMYSrwpaY3u7OTsivFE3qihKsdMQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.10.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.10.2/scoreview.tar.gz","created":"2026-09-24T19:40:34.417702Z","licenses":["agpl"],"lastModified":"2026-09-24T19:40:34.506053Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"sCzCM80rdHZUOsu6xqWSovdql75Rbw/RrETCDBGu/DYdc3Kr5XY1ED7/7rOYzIBERNxeZnQBBscK2WkMT5AwBF9Wv5epIC085KVguan/PddZcwb/uznDTYi8rx3SgZ78HR/U5XJ7weajmuhRP9MwppUdK2ihY+LBYTSdizHheQDu/AsFgNTbUxAN+ExnPzmIx3Q2LaEbtX3NUt9t+F72F3jctrVZWdCU+KZfEuPv1f2ZnlM95Y6Z/6k4hbDG9ANbrfiPfIOtcqAVcOXdtgyMZiMfDyDpBAzKeVeR6jG0HHVYTwW+Luwddb5yi16o673j0BUApNJrgY3bZ5qXLaqxXG/hv9oOwHXGLG2tNAB6QvtVUBceDvHQxTNAwBTLZ7kd24QHXpNEnwMd2GmqfBFqQmV+KoBdYqDHuRZz2/KLDir9hRQpHO8epMlpr2GXr9KD0RryksKaPY69vLbC4UfMh+UJj//Y3a5D2WJDjTn7hlxg2XfDDJGYjr0ncuRt20lRNBtOxxKk43a1khrmfjmlXdlP0SEG5R06Wsa11Dqtkva/XjPbsbV0JcMJP+OOxLqoatAUI+3w0EKQ0vtIywQw9b8LamnsD1hz6W/2qfM0pXyj8Hq8USs9znY7UWihhnF0jGNa7+TBEUvhCEGWw9jgWEUzMIfm0y1yjXG0U/38FFA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.10.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.10.1/scoreview.tar.gz","created":"2026-09-24T15:58:40.763979Z","licenses":["agpl"],"lastModified":"2026-09-24T15:58:40.850108Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Oegd8VJMNxnyLEh6WhqLTdRbgeLAPEGpdQzx4bOU95jMn5lVXjR8HnZ69UkJhWDRwbnOKuq+n40tBWo7QOQBG4oLf1AHaij0o6VToF1AUWdyLZsNt6K2PUD/TWowgUOvwE/hrqa0x4hJOP7YJiLCNiY3n6dlm5GKYXVBRSYGdwjnv7jKhnh36bkYuKRo4yEHMFvUqB4drmni8nnGIzlX9nEng6SbQAbmcmCZURAw91oHEzK8F9IbyO5TejsAA+HsqXJwBHhP8tPx61kc0xn1qzfqU7dUIrWsZmhokehKOdm1T/5rj80qtvxp9C606vpBPxfvOTYKABD/ufM2qbV94UJYlM+P7C4/zk/oVV/aksxg0boZ+WWtoS2q65XH2AtxN3/IEvqrXN4Ox+r/u0LxMwkQ5C/mnm8uMOAlV/SplgEi1HgmZIMT4K6bgmYi04j4IMRsq0r+RjG+IjwpqbtFnKSj0GGVstxgBvlibv93Mq/DuYy0oLXmjuHeSc5V6RU3Aw2G/KEOe5aPw5kvTAzTBy2vF4NTojMMKL/8efJYBApKVg4+D3AsdNe5VCvi/khQsLjKfMArVztcCMd4Qf1jb/cleQ0cqKgANfEeDmb+8TC35BDLyxlcObzy5BwzMGs1gWcGX1vFeDzH6kG+aYYbepTM8qGMBCQwYf8vWEnW8Go=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.10.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/scoreview/releases/download/v1.10.0/scoreview.tar.gz","created":"2026-09-24T11:36:48.002488Z","licenses":["agpl"],"lastModified":"2026-09-24T11:36:48.124482Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"uavPgqBwbaECKD5+iuBwPmZZIxJHZ8X7yM9FE3dAVIMznsT3BsfAxaopdibXwvp/mLFy2ikL2ekJJfFXpCXi1L5nv3CR4wJG+eiPjmHwKfT70x3hxHhvM/mtiuZKLTa/fx6nrH0O89CWndJuxZp3iHeA+d28byBKGaoZrWyilgmBnymdPJx+FpZ+VOlzGgM6XflvXwsWpY3To6YxgprP8eC+7iMb3BBc/vgdL03LLwmu/SYbkUcbcuWJd37Hj6NLwxOjHpDAQk6m2JVwXWse5VuNCFRhZ+StQ8c1TIPqa6nNRIqF8vEZgXz9QrYiTmNExR0j9HBYF83rdBP3qwxr3+4+PDiFv5DiLOB85FcgkpEP829LxEC/0T7K1DLx+FEYu9/C4NCkLudPwt8eGc5Ro8cTZJubwBsPQO3PkgGvOgdqrAcAV47EgcUicQ+bMFwuhDqryFw90HbkWrumR3buVNsfsxma4WGwg+wyMXpCIJoinZd/F8y1e7n5Jn5I9TkKws8l8ni0fGeRBAFyEKkcQ5DPOy0lqpy5iUzO4FZz6vLlX2UEirYFZkCksrZj2F9AbOkizDDxCbKjjCI1p0T+qrCGeIfCnIY6yfSQbcbCGnjNujsbzxePlJcOofadlGMF+tgZeJFcydpgHNz//kf5BMvwZeMO29ycsUEabQfScoM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9zY29yZXZpZXcvbWFzdGVyL2RvY3MvaW1nL3ZpZXdlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9zY29yZXZpZXcvbWFzdGVyL2RvY3MvaW1nL21peGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9zY29yZXZpZXcvbWFzdGVyL2RvY3MvaW1nL2Fubm90YXRpb25zLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"ScoreView","summary":"Notenblätter aus Files öffnen: einmal konvertiert, synchron abgespielt","description":"ScoreView zeigt MuseScore-Partituren (.mscz) direkt aus Files an - als\noriginalgetreue MuseScore-Notation (SVG) mit einem Wiedergabe-Cursor, der\nsynchron zur clientseitig synthetisierten MIDI-Wiedergabe mitläuft, statt als\nstarrer PDF-Export.\n\nGedacht für Chor- und Ensemblearbeit: Die Noten sehen aus wie die eigenen\nNoten, jede Stimme ist einzeln hörbar, und jeder Takt ist in einem Klick\nerreichbar.\n\nEine hochgeladene .mscz-Datei wird einmalig serverseitig zu Notenseiten (SVG),\nMIDI und Timing-Daten konvertiert und danach gecacht: erneutes Öffnen derselben\nDatei rendert nicht neu, sondern bedient sich aus dem Cache. Erst eine Änderung\nder Datei stößt eine erneute Konvertierung an.\n\nFür die Konvertierung gibt es zwei gleichwertige Wege, die dasselbe Ergebnis\nliefern. Voreingestellt und ohne Einstellung betriebsbereit ist der Weg ohne\nContainer: MuseScore als WebAssembly, ausgeführt von der Node.js-Laufzeit des\nServers - alles Nötige liegt im App-Paket, und das SoundFont für die Wiedergabe\nholt der Server selbst. Wahlweise übernimmt ein MuseScore-Container neben\nNextcloud die Konvertierung. Kann der Server keinen der beiden Wege ausführen,\nkonvertiert der Browser - ohne Cache, als Rückfall.\n\nFunktionsumfang: Zoom-Presets, Vollbild und Autoscroll im Takt der Wiedergabe;\nfrei wählbare Hervorhebung der klingenden Stelle (Notenköpfe oder Band, eigene\nFarbe);\nTaktnavigation, Loop über einen Taktbereich, Klick-auf-Note-Sprung und\nTastaturkürzel; Mixer mit Lautstärke/Mute/Solo pro Stimme, „meine Stimme\"-Preset,\nTempo in BPM und Metronom; Notizen an musikalischen Ankern (privat oder\ngeteilt, überstehen einen Re-Upload); Touch-Bedienung mit Pinch-Zoom für das\nTablet am Notenständer.\n\nFür Üben, Chorprobe und Konzert: Anfangston der eigenen Stimme oder Grundton\nder Tonart, eigene Stimme im Stereobild, Speed-Trainer im Loop, helle Noten auf\ndunklem Grund, Aufführungsmodus mit Blättern per Taste oder Pedal;\nLeitungsrolle je Partitur mit Stimmnotizen, Probenstempeln und\nStudierbuchstaben in der Navigation; „Folgt mir\" - die Leitung schickt Stelle,\nLoop und Anfangston an alle Geräte (mit notify_push unter einer Sekunde) und\nlässt sie beim Abspielen stumm mitblättern;\nSetlisten als Markdown-Datei mit Stückwechsel im Viewer; eigene Aufnahmen, die\nnur die Aufnehmende hört, und Rückmeldung zur Intonation beim Singen. Die mobilen\nNextcloud-Apps öffnen den Viewer ebenfalls - die Android-App ohne Mikrofon;\ngeprüft ist bisher nur Android.\n\nFür unterwegs und das Handy: Übe-Tracks als MP3 in Files - die aktuelle\nMischung, auf Wunsch je Stimme für alle -, Coach (eigene Stimme als Klavier),\nTransponieren des Klangs, ein Systemband mit den Notensystemen nebeneinander,\neine Liedtext-Ansicht der eigenen Stimme, Tonnamen an den Noten und Noten mit\nTon ohne Netz über eine Offline-Seite im Browser. „Folgt mir\" nimmt alle zum\nnächsten Stück der Setliste mit."},"en":{"name":"ScoreView","summary":"Open sheet music from Files: converted once, played back in sync","description":"ScoreView displays MuseScore scores (.mscz) directly from Files - as faithful\nMuseScore notation (SVG) with a playback cursor that follows client-side\nsynthesized MIDI playback in sync, instead of a static PDF export.\n\nMade for choir and ensemble work: the notation looks like the sheet music you\nalready know, every voice can be heard on its own, and every measure is one\nclick away.\n\nAn uploaded .mscz file is converted once, server-side, to notation pages (SVG),\nMIDI and timing data, then cached: opening the same file again does not\nre-render, it is served from the cache. Only a change to the file triggers a\nnew conversion.\n\nThere are two equivalent conversion paths that produce the same result. The\ndefault one needs no configuration at all and no container: MuseScore as\nWebAssembly, executed by the server's Node.js runtime - everything it needs\nships with the app, and the server fetches the SoundFont for playback on its\nown. Alternatively a MuseScore container next to Nextcloud does the\nconverting. If the server can run neither, the browser converts instead -\nwithout a cache, as a fallback.\n\nFeature set: zoom presets, fullscreen and auto-scrolling in time with playback;\na freely configurable playback highlight (sounding notes or a bar, in a colour\nof your choice);\nmeasure navigation, looping over a measure range, click-to-note jump and\nkeyboard shortcuts; a mixer with per-voice volume/mute/solo, a \"my voice\"\npreset, tempo in BPM and a metronome; annotations anchored to musical\nposition (private or shared, surviving a re-upload); touch controls with\npinch-zoom for a tablet on the music stand.\n\nFor practice, choir rehearsal and concert: the starting note of your own voice\nor the key note, your own voice in the stereo image, a speed trainer in the\nloop, light notes on a dark background, a performance mode with page turning by\nkey or pedal; a leader role per score with voice notes, rehearsal stamps and\nrehearsal marks in the navigation; \"Follow me\" - the leader sends position,\nloop and starting note to every device (below one second with notify_push)\nand lets them follow silently while it plays;\nsetlists as a Markdown file with piece changes inside the viewer; own\nrecordings only the person recording can hear, and intonation feedback while\nsinging. The Nextcloud mobile apps open the viewer too - the Android app\nwithout the microphone; so far only Android has been tested.\n\nOn the go and on a phone: practice tracks as MP3 files in Files - the current\nmix, optionally one per voice for everyone -, a coach mode (your own voice on\nthe piano), transposing the sound, a system band with the staves side by\nside, a lyrics view of your own voice, note names on the notes, and scores\nwith sound without a network via an offline page in the browser. \"Follow me\"\ntakes everyone along to the next piece of the setlist."}},"isFeatured":false,"authors":[{"name":"Andreas Hauffe","mail":"hauffe.andreas@googlemail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhPwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMDk0ODAyWhcNMzYxMjA5MDk0ODAyWjAUMRIwEAYD\nVQQDDAlzY29yZXZpZXcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ\njkZC2WQcAiMggez7IdsKUf2JMDc6nBb2VxNY1+CFu380bNHMWdOZKvLgz4pKsemI\nZBXPZYmbxgY9pQ/BZwV2RgRJT4I1KFUVQVPYdACb7JMmQBDZJEWKZSJ6X+A28c+Y\nIFLwxN45RVqJXsGoasReMjW+DgZpVSTuczI5oidwEbz8iSzAxwY8FEvhr6ss3tLc\nBvp7drNMIJVLS8yh726oCVW7ZHEsFNQsjRHcZJK+jOjtc6ztB5Xg+93wss2p2NX3\nCvx5inp4WOlJ0mNPgX/ZE3XXkaQ0MtAguy3oTM3yjMyMYduE1hBOyEeT9a1t2k8A\nSMeWSKF1IiY+WQetMgsb5smhIFzGg2UpN1Nw3OQZnGuM9scY/NPabeVatUTqQLXC\ngTPoFHBskRdaf0r1lDzQoKxkqmd8UMuqrF4GcUtc6wJ47MXP35Fwk6HHSAyb5dx/\noeuhvit/W4vyVYg7HMTYYhNl4LmKOgF1qTbtc+EW9HWLtE8BpcCMHiNyJkYQVtqm\nP8J8nqd335mtY+f7bVTHkoGStOnBSfNun6yzOldiAu6dUTHU7hbVb+e8FAuA7UPB\nTTjnB4MDUTdlgN7i3y4jGmDiHWKtuAXGMpKxxA18JT4Y4zGmfyXuw8e6kymfyiUM\nMdjhNYXAhbg1wa0fIbcUYjizmExzbTH/cmU7xVBHjQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAELlxlcAljQeMDYMr/MLu4PAuxLEFekJ32zaTUzlTcy/pZw9+/rue6\nZFSHwbpCQHwlgBxwiEFCm65giECQVEAiyGHrP/c0jr+Sp2HWx10LTfsnlp8hYG+h\nT1uA9Jrw684sGLgNWYc5eK3jYzJjGSAuc6vGcRX2sViDvJagUjiVQw3b65zI3NIO\nHHHbqp9zDXwE0SOjNSO5ygvCbhkRQzB6Z73Y0nLJa5SdNU+Bh9n327E0C+WILtEG\nONUaX3+ZC02Y4dVMKyfu1UKMh8XFawQp2dra+naGzeF5zYMHzQ0sHrMbou3VafVk\nU3ba78Y5zpFHUKnX1Ykc4GQMYt4ys5df\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_zimbra","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/eneiluj/integration_zimbra","issueTracker":"https://github.com/eneiluj/integration_zimbra/issues","website":"https://github.com/eneiluj/integration_zimbra","created":"2022-08-22T12:08:25.474743Z","lastModified":"2026-08-14T10:10:26.511729Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_zimbra/releases/download/v1.1.0/integration_zimbra-v1.1.0.tar.gz","created":"2026-08-14T10:10:26.493062Z","licenses":["agpl"],"lastModified":"2026-08-14T10:10:26.549268Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=35","signature":"hws/3I6QJBC6nItdfM3t72xvv2ZfhudsH75Vibm+F0r8ztrdAGaxglk06RA1HCjlHLYPatzrgVJdVzS88EbC997kljDz/enEWfWo98UfQO1LHi6kklt3/29bcTBANtheTBkzgrfMhTqtdvAnNcN1u7ZHH/icbBZSinZAjlLpDBDKZ6Jgod9bwtADLADYzzEUO91rM7ZGsga+Q5Mig6yGQpqrzaMAxxxRZW3sKy1duUb6JPP0cNqCy8qWFYjyzPGeH6G9J032QHDEjZ2fpCHLGt02ooXWHSEoLt4HtBqspOUMbSMKkNcH3CdTDykSHeTZv1J99iLPZLuJX0/8spxcU6QVYjPLjmDvsA5SUFbCU6CMR5y0h6MxjJ8wjhii1QVRiHFiFaKWWq77yPf8S8ITXLffV9J88v01RK08rG1CZRNzY/V5KXmqI66GyLVHEnHMyExuceacEW9rcjN13JRGTlLLpzWSrH+m3vpSwUBp2cpuggdT65NW4FFAMon0IZoai/OOaIQ7NBLZd4wmqyg1iKxSWCLsrwldsKPKE7M317oXgoRNcjpqqivjjr1yJ4HrokqiumKYUZpguJBXq0kKdAGT0Uj0KobdVXCDGUxRebFLCvPToj16svupOXTUFTQCuWTkZpP1bs24cxE7jLSic9q7Xlqcao77qe6+jdgXMYU=","translations":{"en":{"changelog":"### Added\n- Support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2VuZWlsdWovaW50ZWdyYXRpb25femltYnJhL3Jhdy9tYXN0ZXIvaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2VuZWlsdWovaW50ZWdyYXRpb25femltYnJhL3Jhdy9tYXN0ZXIvaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Zimbra integration","summary":"Integration of Zimbra","description":"Zimbra integration into Nextcloud provides a dashboard widget for unread emails,\n one for upcoming events, a search provider for emails and the ability to search for Zimbra contacts in Nextcloud.\n\nNextcloud will suggest your Zimbra contacts addresses when you search for a contact via the top-right contacts menu\nor when you search for someone to share a file to."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhHZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzI3MDA1NTQzWhcNMzIxMTAxMDA1NTQzWjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl96aW1icmEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDdBy2o969i0yBcGEc9luTFVuDT96LsM8eD6FJ2PlFmvzi3Y5ZD7t5b\r\n0earvxmEhbGN6i0JOu1g8zKXXESKYZr4SF0hx4phE9RUGwfWLEDYjfzVhuBLhBHy\r\nnp6BIOzQA00PXU57Dsmabqn6wQt0wlNJgfZfRN9qmuZNefzllWPJNujFD00iUZG/\r\nVnouqkxl+yc3yEtiBiF4G6lr+2FQwgjRGsnBrFyykg/OveksiboD44dSJbBghkyp\r\nb/KIxtkIM3wKeTQ7o8xwk8RAEH5cAVXQyYP5LKdLtqo/E95MFFgKEXsGcgO6tPzr\r\nEQjbUvOBQYA7uYjoKthy6rndy1LJkO5PO3q5q+Y2O+3OdlKU2mSNOveTk6pzSaDU\r\n/8IgcOBzcdg7ZLAtLZWFzPlEm/wyqFiG+s+SMgWC6oVwU4Ye5TYQ/wePB334K0Li\r\ncZQb6Rp55A4GO7+fp06sdxHF+j7K1LiVzwh1GZCjqUf/f1kD8Lk0ii1Ct7J1pVpz\r\ngGECB7z8MwfLlrxVJB1wBMWf9Yhb12zqHSx0vteBBR+5qRzzuFhIVH4TZo3hOWIy\r\nL2j1Pxz6GkLvdpdAsRcelY2wUlLcrECCr090u6+D1az8j9qoauKbWeBd1b3l7YH/\r\nXLviJID0W5A1PO5Qzz0rF2fuhXBx4INeyc3q7/mf6TxlMoT1TYBwwQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQA5p2cZjkN+RTLHdrsF3I6VKHhbMHvWdRDw9T8LBwPU\r\n75wy0iZ30zkNsrNZmnCE0FtzxW5TnOu41Zm+6Xp2VgEFFCrdL0nQNNm96j6e7mcw\r\nC4W4PWzuLYJ397El2cBFs/0idC6G6ikr642dTYVxXH/+z/nh0OmjkJJV3EIqpgJO\r\nmWbP3ImOWT3F3V1RcouuMvmkdTqJQFii3+8xMV4fPzbp8evxtxdGIAmIKY+K4vSR\r\ncw3SJTF/3zhC1QjkYvDmmKkATV5TvoHY4og8DcLZwFlet1NIgk+IE27SEfGy0FRn\r\nwrbh60UfmYD81IrYaj480GSGcXG1642xZSvcdv2v70FG\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"findling","categories":["ai","files","search","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/street1983nk/nextcloud-search/issues","website":"https://github.com/street1983nk/nextcloud-search","created":"2026-09-07T16:34:36.276665Z","lastModified":"2026-10-21T12:19:46.166220Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.5.0/findling.tar.gz","created":"2026-10-21T12:19:46.159338Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T12:19:46.255479Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"DvxymATfO0CyM6350SO+WENpoOXqJfOUroIj/6LSszHu1OmseVJ1qQQR8FRY+ThoFHzr+ragWrrkSwY3zUP3xGP8oHGeMfv2wEJ8wT+qWmQVtqDBVWq7ZovBo8aElFtpqn4SqiobN6XPapY0Z+ip1tY8yZyvKqsmya+uU3CVL4Pm5EndUPi0S/7arrk7Ol+O8vRzIdDtfGBJqAetm60oH/ZPKCRdx0p/GONeK0lDPohibaxxtP8WkDIWuVALsMzxWMIzDUl8vjRUCMv3jLzC73dziQWGZ86xetijfdaNMenzN7ktwYyIY0hsGNuRoq4sw+zozvLwloAJ6zJ8j0lbnSKM2Arhw1BEylYlAAXCRU8Q8E05afXSRWym3Sl77YSDgyO05rgAVyxEX4EqWznmZpgBhNxsgs/HyTzqzdNRA+wK3gP0MZheHm1ZQsQT6JMwlu5STsYSAAJr8nGey7d6tVR/XnKPGGL81d6GLQQin5nMvRw1NF0PT7UH8hjjYsIFh9hyFstOZVGNpl9AGfBhZrylezo9xjoIJZczgin5bkubngrVM7uv+TSdpEW4a5qK16NuXPSpwjIZSmc1SxEmcw6dfSJVc8YOJYuUMM3L41osQKvLdwhS4qTvJktZl6UkLq6DO0/RoBkJv+G0OFeHoNWQK6a7Q8Suc42VWh/zcGo=","translations":{"en":{"changelog":"### Added\n\n- Mails (.eml): subject, sender, recipients, text and the names of\n  attachments; attachment content is not read.\n- ZIP files: the text of the files inside, without OCR, within fixed limits\n  (docs/formats.md); a ZIP file stands in no type filter group.\n- Word 97 to 2003 (.doc) and Excel 97 to 2003 (.xls), read without\n  LibreOffice; .xls under the cell limit of XLSX.\n- HEIC and HEIF photos through OCR.\n- The excerpt of a hit inside a ZIP file names the inner file.\n- A one time catch up after the upgrade, without a full reindex: files of\n  the new types, old Word and Excel files under OOXML names, and files given\n  up as repeatedly stuck are read once more.\n- Czech as a search language, without stemming, and Czech OCR; OCR\n  offers ten languages (docs/language-analyzers.md).\n- Unified search: filter Findling hits by type group (six entries) or by\n  folder, sub folders included; unknown values are ignored\n  (docs/search-filters.md).\n- Exclusion patterns with `*` and `?` on the admin page, for example Mac\n  bundles (`*.photoslibrary`) or build folders (`*/node_modules/*`); existing\n  folder exclusions keep working. At most 32 patterns of 60 characters\n  (docs/admin-page.md) (#22).\n- The admin page shows the limits per file read only, with how to change\n  them (#21).\n- A migration page from fulltextsearch/Elasticsearch in German, English and\n  French (docs/migrate-from-fulltextsearch.md).\n- A banner on the admin page while fulltextsearch or files_fulltextsearch is\n  enabled, with a link to that page.\n- Similar documents: a link at every hit on the results page lists up\n  to ten files with related content, only files the user can read.\n- Hostile files end as skipped with the new code blocked_malicious and\n  a detail code on the admin page (zip_ratio, zip_overlap, zip_traversal,\n  package_entries, xml_entities, image_pixels, mail_nesting, cfb_cycle);\n  files that are only large keep their old verdict (docs/formats.md).\n- Index hygiene: documents of deleted users and deleted storages leave\n  the index at the next reconcile; a storage that still exists in Nextcloud\n  but is no longer mounted leaves after 30 days.\n- Releases carry the source of the tag and the four corresponding\n  source packages of the native libraries in the image.\n\n### Changed\n\n- Files under a rule leave the index at the next reconcile even when they\n  did not change, and their old entries leave the error list (#22).\n- The hint about too little hardware for a profile is reworded in all\n  languages.\n- The httpx and httpcore loggers run at WARNING in the image, so file\n  ids and user ids no longer appear in the standard log; DEBUG still shows\n  them.\n- Store texts: the Standard profile frees at most half of the machine\n  the backend runs on (was: half of the box).\n\n### Fixed\n\n- A file whose size in Nextcloud's file cache is larger than the file is now\n  read when two downloads agree, instead of ending as repeatedly stuck\n  (POL-02, F-29-03)."}},"signatureDigest":"sha512"},{"version":"1.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.4.3/findling.tar.gz","created":"2026-10-12T07:56:13.954435Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T07:56:14.030539Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"tTD69m6RCdyXSdekkWazeVsvkOFZ1Ce6Tofn4pSuAjH5GhnXCeiOe6eSLGkKtPLG8tu5nqJ0NCgyjLF7T0cToQcYFczsFyhmfmcwRZWEfdzhR2mnCO4GenS2brYlbx0JkEuCLEPARwqeNlmCedzA6AesxmrQfunDdTvOpm88mlNZ00iOXAHqOkoRCi8d0c3r6I4TUrvBJVKnN2bIVIjrgPFhdSDHVHSEW2z588j156oSfXCUdXQHt7M+bP89HeYY2MK1CfesZxuRyeFrhtoYTyxCxyFvp1V27ACSrakiY78S+CdrUY/yw90mpmZ6ARCVe+eVZtIi2hc09OR3tmHH7FKz0NF1nGcTvSdbdn3LfG7IJqqOESLLzhQrf4ilNCB9Qcu8RerldleBsppSelyUPbgKzu2E6bF/jDyyVcn0BW/7DrbI6ohXvGGMrliS2cBX3WMZxaS+9HdG863eno0cGiwa3lnXy11vysKw7WXOcStlH9IV6ycRz/UDLInv1sk7wZPfqmHG7mhIwEeOKPzwc3yAS/53KeXgJglk2mSlR7UZZkY3w5J/0Jpc/23BCIdLbCL3bU5usQA6HyVBOWuMvrsG3KAqc8SJ2iei/YkSNIKMoXT3JdgknvYMWgz9hpI7ykNxDhUqWDDUimW41v1ubig4I7noAcjDlnD/19Y69FE=","translations":{"en":{"changelog":"### Fixed\n\n- Result page: scrolling works again when results exceed the window height\n  (#27)."}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.4.2/findling.tar.gz","created":"2026-10-09T17:24:40.121904Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T17:24:40.201549Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"UUEakR68R/6MF7lhqjCKOHnDscRw1mno3ua79bTI1JMXefQrUKHTy18DeSFSNFoHAIK37og15sPbiJiTpoI8QgN44SEd9QDr43oNeqwC20TkzPrsrobdZp9Ty/ig1ro1Dulp7isQxgXTpHeeLFRvlabVS3A/oms8AZzIAYXBVT02MWaNdnnSP62qoSOW+X4Z2xzYEF4WkIhR+VbPPzFWUYSpLs2Fp0c/LZYLbfWZMarWl8CQrGk7YRdBbBZpYZTFbz06baFCWDo4QLtKmPG1VD92DnpCdPgxzLpOeCfbfsJf2SkFdUic1KfSGrNonCXpvU/YaBSmRT7Q+0FfQB9p7J2OrvmZGf/2HhOGd8W08UxJDc1lNIUdJrJ0r7RaWMRjWaLqpiQmIkKL/D0tan+AFzmewoUkbEChJF4AavkQ2k7kp2nMIKGT8i7QqcLtBPZ03BKAoEUFWcyh4+/xB8O4WYjep3/lWEbcorN4saZBZJk9ZPZIAaGOQiP2eOamu47UcN23G2DUD7Ah62UF6tWhIAdZlajTmqhKAiLPW1EvrM288v1ODrrlKXGkvABtFcfIO+c1t5DL8aiecdM6vLrs2ot2Jx1+f6oWNRyOR3TzWkSlUAFsf7RNSXklB41iwHRY9sopy37bIVJmBZ1pU3E7xe94NwrMtTRQ4chIuy0meAU=","translations":{"en":{"changelog":"### Fixed\n\n- The coverage denominator no longer counts storages that left the mount\n  list: frozen rows of an old mount configuration padded it forever and the\n  page answered 7 per cent on an instance whose coverage was complete (#25).\n  The rows themselves stay, only the figure stops reading them.\n- When external storages are mounted once per user, the same share is\n  counted once per mount. The page now says so, in a sentence that appears\n  only when everything is settled and a gap remains; a real dedup per mount\n  configuration is a candidate for 1.5 because it has to answer the ACL\n  question first (#25).\n\n### Added\n\n- SECURITY.md with the two private reporting channels, CONTRIBUTING.md, and\n  issue and pull request templates.\n- CI security scans: CodeQL over the Python half and pip-audit over the\n  locked dependency set, weekly on top of every push.\n- This changelog; it travels with both store archives from the next release.\n- docs/privacy.md: what is stored where, who can read it, the remedies (host\n  disk encryption, a deliberate backup policy), and why the app does not\n  roll its own index encryption. The READMEs also name the lockstep guard:\n  on a major or minor version mismatch between the two apps, the search\n  answers with nothing instead of possibly wrong results.\n- A weekly OpenSSF Scorecard run that publishes its result; the README\n  carries the badge."}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.4.1/findling.tar.gz","created":"2026-10-08T17:35:17.614852Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T17:35:17.691260Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"JvXHA0+T5zOQ5o0Uo3HzSjpCIXU+qu+E2//4AqLIL9tM/c600nDD4mXdXK87YcmiZzb+onhPDGkraJ7amZLitfXgD/oqQf5aaxe3c7jGcEzqc9qAkT1tV6OFzAPMHSu8RBKv/usZY2jnPGkDdSyz6nhmir1djDRFp7n4l3cPuMVYKOuJW5NLTu/qMBAleXvuCNRZ9erxiu8uf/8c8Fx6K9BMijnLYfIh1mr4OUvuZmyMzWevyYuI0CnWpeEE8Jc8Hkl61OBpu+XEK+lO0+tBPtOuv0OhzMH7rRLGjNBoVe/8UXVXMWwOMI4/yL8xShUDClFjnXvq4sQkyMypL1Pkb5Q3uh/wne4bwCqWFyw9oj1K9UR+YNhe9TvV0jXXFOGD7MpLXqS6JxvQTLPALCAhBoQm6yLynutKKMWu8SriwT98+PwOfQKnKVSfc5eNoPhgGpuXsM6r6qbgkhoZa82jto7VjOnQ0PAuF01R+X48i6dISqeE9ij9Db0BGjCnwD9mZ7tbgiXlNzt/EF8lROkPFPD3iigN+vhBLaH4bMQUHNuVPssm+gSXFR1qLeuUwWcr440CKS74tRhz9F1pnWcTnxAKBRhS0g5z2Fu0jrtaBhDQZUyU6w4H19F20v2by4hfDJEOOIa2YiBlaFSr7gaVoWuungI4lWuF2Jsa5MSdCVo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.4.0/findling.tar.gz","created":"2026-10-06T13:49:18.094993Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T13:49:18.185485Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"jTKreOZ4UbxGJEhU8rRwn3Be3wmizmAdEeWv+rEdWx0inFDyTrmNm216yMfOsRsBbmb0ZiJRcjO4yZO2VYiKxZEMT9MSKLMJ1/zPW9ZnFc8cBkktCcWy99vArLkbLrhPfDTOgpuYwUS9hvURyNOqAtf48mJnGACFsVNySUizHam/ox3as0YqiEQwdIGzlu62GqtBOAKwguYazGF8JEX1ql4HKjnQFi1DbBhuVtUuDj92s39NpUSiqw0CW5ZPXc0nbwgP6pOt9fF7kdKSKstxxrKapgFWpqHbrFmfwb7/XpFex8L3l3Xu9CA4OXrhkqMs+kObDGDgr3JODHJkupYsH0LBBBK96uc0G+r+X9a47sc8C4bq7MlkR6J7uEIg/sSD4py5iG+euDZIa0+06NYDBimirsFw2WFqr17+EDvfxnUh/BwabEYzVYEc0rN7P2yeOoCECsEquQl1Gzr1atKB0IsGdvH2n+dsOLrDjfRK9gDf24Fo4sPCET/VGRC4YsbG4w2YPyqosF346cIXCK3igNVKfwphZ7kTaMkVk6jGLrEdIwXJup2HyVyIe7OxK13iEHioovs7bVAMVM7hZD4Xh1j3iqfSn+WZ4lIkbbAP5S9HUHQWSH38cAmYM1+rJgwiXZMGVjQM0TjyRaNfnq+Eci/LUG27mEn1fk+1aO6ZL6w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.3.2/findling.tar.gz","created":"2026-09-30T15:12:47.105002Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T15:12:47.169699Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"jKzyJr7e9dCL+ipSilWLmgcetXJ267iEqTVPM0l7KKw63rJoKtTNl78CmrhU4hi/Lm1uZNwuSVT3K+zSMiJTcTrtZc6riuuR6GkyHBsMkGjAlcVZtKCV0DdY221ZF848AOkVbXHi/c4H9ogfCrXV0GMApeBc6kxnARR+YU59P7Yy57g0YEotJyt3Km9a9Z8eseP7DrXrtnmDiM8Gx6r3twhXWRGSGRTDJy6fuCEvHa3RmTYvMOYEMbmOCGkquRYnucYxUHAJY/VsCvWLLtWVk7wePyvgGUd9vfFPjLRM/nDtuO3+WxqsS4vHam1s24a80UPvWc3YwS0TXQjKZDJK4k8DyEMKEYlT3HfYdBuuFmHvQe+0JYknURtOkxWL8aR5t9G/c541HcnC4nrk1SFFYNXrPymIKpjClN3+0SqxFnIowL70/RBLZIGVERrnbsYNBqyDyz3tps+myhYNLaFgovskjwckiVshSmMZLUAkF3Fga7CUUZV3rGyTG1Mbd1OxKTO1/HKLcx5AX4ljypzkWH+r/3OXk/GXPDHP9Qv1O430PtrbrvhKOWWPyQwMdupaSUOz1/EX7kMQ2xyY5er764A/2LW1Q0OX6y4yene75cCEJ8ebYe/3SPy3PI9A8MR+IWWelI/KM5x05fJDROUabL3zB+yAsthkNRzZ+oxR/VU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.3.1/findling.tar.gz","created":"2026-09-29T20:38:21.205275Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T20:38:21.278133Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"P6xtkIMOHBnfo8zDxlyrRJt3Q/2pP68HtP48XAXdXwWv+ojQOOrwxgj8nIFNStYNwHTpiUjqcpu6HhO539XavSdiSsg4PKx8QBYIuc6z5ivc1lWqpSYKHqH6qYM+dvRo471oveE9WP3v1FGXY2KcKcYDmwt9Jiq7sixLulQxMg6ebifxpD4Eus7TJVBV0Xp/4ebvs1lEU8bI/qqRueOXgEAxmmdrffzeiOhE5Sci22CaYUfibe1KhJls22sQZODX4kezH6GGu5an8E7esiUZR9p2v1zcrreEI9XjVMG3v1gWvKLu/ImCWKT6HWcyg3SoIuOBu0Z4/BPh/Gwr2SoDGlepStK+LC4bj9nikq3Jq/PmM0OLVcjFhaM59dblzk0lbK5/0BwUsuZL4IhTPVewK2EupkuAU3HSGnw/NaCIoUXZGgeBbYJL6/A3RkhpxuvDDKuJm3b7qn6Glhnoi3YwS/oNPXlv/okKkIWqMPJBE/xJjFr3OpOaG5Fx57mgEqluugqIevTBf/cv+ew374Nl+JJqPn8QuLK27n5KA4wdsDNLngw9oOSjFfOp6QS9arIOXsOzme9MVp88Kc83LeairQeao5wwAl1pLzg35nk1uzQJgALOO+DLRe3uUyKafd3eWC9weoE8BfbVeUphKCa4XRt2o/SxMRHIgk5XmtEquLQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.3.0/findling.tar.gz","created":"2026-09-27T07:44:10.632087Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T07:44:10.713748Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"UDbYnIt/tnTWJdDHXskkYgiVKCmBQ1tDyVplmT9+OdqLe+DAHrfSyASUtTR9ormgBPQz2VMvxoZmiEAs1mmtG4tJUO2GR5fjoCXUGl7bY9/kFBE9F9Qz+9jlTy5rfrZa5DAEiHZ2euwZ2USsWGzJO4prvvX8icXFTjEKmKlto1o1bNh4UkaxyWqUhViUrY/hlDxg+FtI9jojszgA+qNEoFLqZ2darpotamUbOISMCVRb+YnFkHPyz/qOK2hZBsEJXbeklD6eIfi0JYegbIKC+R20N6+LPWjpfXsGXuM+Qh9ralBV9q+GzFwEWaa2OeP3uDkz1vHXeuV7wiF3FBt8q9mvKjGDzxIv4g4nnREr3HfHUoPnLnBEUTpPn2Izv40P/hHfu+HW1rHLtfZvjJ2FNwQQ/iqfstiAzDEAadgdwvpzquasgg+gKGmwd4/LC6/8s3WPsdL5adEwBPAzRCXPUT41Gq8271SNXw15gwp7MFz9bK7R7AjDeatemBfhoHEa79P+vUWUfvtAjXWFBm7gVArFUuHGlqJhsYItCkl6el/vhLhVEkUoZq7WbKZ3u2BP0/J+tzH+4F5qHj1MdBrKBO+upz7r8ixgbaxlsIpbbiNcNUl2XjKCHakoAeIdWQSdSim3unAfzVFPZZPdzVa9mORQr3NwaCyAQnl/wVKlWco=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.2.0/findling.tar.gz","created":"2026-09-21T15:25:49.391869Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T15:25:49.598641Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"e6mP8heYLXnD/RSsZzFoAmfnBWB2OhsKw+41I5GNT+r2jvgwJWfrX/f0iadlSIhPRJvKjUuYXorOaj68L8QqtHC0TxFaK/lOeRCb7ytVJIc0W8Q7UVxKtcylieSpK+MsTDkp2gZBGPDCWcu05RUJ+8/kFZY/ea1kwQntlHTTBjN+3xT0vitsePTTqFga6gqtak4NcBPZYjSTPkxJ7O+NqkwwJ3QQGsO4l/nRZjtPqtyYgt+p6Pc171NK1rR0+RSgZGok/LDV/equYvleLpHxMBT9qMx2UQwGhUbv86q8ddZjLwsmtbnPZf7J4oPovoHuxzZyOfaZPQwi1fUkqNgYz5eGy471s4Ye/HAtE9aBxb5CcZqkgTmN/5d+lgZZ8k3FjT9O4pQbjLyWBfY7IpcqqIKNfDhzzQH8+T1+2jnY0C4QfVbHT8bLoUJ3lxd0V/qlAeFAsUVTQXx+dNFNShLag7wKb4ZNO5kPN5EuSprQp1/Kl60uDRhtUuMCx5Mp6GR+kPe5lalE/mRuZO3D+M6EWv7DnH+gGMH6q+gV20cHnXomD4JVJEcOtEX0NP1g+Zny6gdJZwuHG8iJnjojpllC+YlG4GWGd7byu2aE8Ky+bQB6I2e/mPLSq9/QFulG1bIWaU0fMjmWNAvqC4Lqv5E997WiXebWP0UMi3DA0KoEAms=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.1.0/findling.tar.gz","created":"2026-09-11T07:19:49.682531Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-11T07:19:49.769215Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"k6NnZw7CcX7TVOWQEyFPzPuy8Q0F76xo9PcJOrP4kT4ywDLi90C57+xTtBA4PrqTfnOgueUIsRSV4CWcOEAy9CiQLQMASv3XobSk6uo6sZ6WOdEBF20FQPBRVadMp5s2pbkRUZtkwm2A5IBI7R8nYwna5lvFjUIImVsvD36GBqD5MH3Wn37lGXPYqUvD8hYlTynQCOxSDT7i5yrK+rhOy4OERFQB/N0tsswD5SAwSS8PASR5kaJouMCDMQ1flKiJxfPEC9LBlwJij1Kz/GBypRw4LE8OGFrl3gq54uiKEBCQm9OZS/pArEeRQ/md2rMeJuCkgWwAPPPxAF1NDNisLgiET1pfnIyt7/lhquiR5rCPhXFQoHQuh5j6zQ+mR6K6IrFdhb2+b1Xde6y2zJ2nviHnM3PQVDYcXH/kz4yAxnn1eDQUdiFNlIFN4uE0qhj8Ao/SFjy7J3pILlUe8yRq7UXvh35b8jpz0TjU4ffSuUJeEVtad/Gt+SwywyZO3owsTsmJXidt7RcKEiCi1Lr4DEtCS5ypRsFsHAeTnuJFk8KhXh6aHEX9routu3JMI3Ng4NkFegvDBAf+OH+y3Ou/LkMZndhWxQEL5nlm3HxZ+cBN2ubQawMUdlxn7lw7sgX/ez6jQ8vtLhkLKDkny8N/LzAIUCR7eCjTPesJpxTOF7U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.0.3/findling.tar.gz","created":"2026-09-08T00:14:57.082704Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-08T00:14:57.172075Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"VkhWc3eCuZ32ux6oQocRR9hECl/jH3lHx7VJi/+gAckC3jv/Na/Qz4m695/N03DX5DcR5rLXh4Z8WVK6HzOou+4axywLg3CiDCIflXORNjxmIEpSY8Wyl0RAPenHWJ3eB3W2aROMrm5BZpXbzr9e2Gsj8BvtDLPeSsh0WyZFtSan8e9X1VHA1U7Toie+3D2fzLkAXnIbOSEyGDsp2Xp+LG4p8DldtNQYiLOR+zQg++DD9n7xl9Clg7sa/ZEa/TI97r0cmxij/iKJHzIuZKrcV1xuKBUp9LzrPNm3+VpkemRwMVQWC1US2T2CBzLKOQhLT2HDeOXZIXIwNC4B8GjpHYJUslwNoiMnbtXxluR+nnG+yVobH5RHbwuG7EBMfoPBs/WoTAwkDIK3OI+D/NzSnYLJeMeHSbjfR1wC+0FHIeWNiJ3Nk6v9V2M8d7Yu6bG6eyYLHyTV9guCAma2mg9n01jqnuMQQ5YaJg7OkDWq6BP9lf79zBLuqK4M4JtUT+vjWnJyU0cexq8yAE6LDoOn6qoIACa5c82cJz9HBuy3c9FGau6haEby5eg+pQMlJ8HP+bmGldtK5h7OWPYXLuvBJiafgAPxnQEPMXd+hjGU2L3dE3E8EZnwcIRQGA3JYdRy4NYlRA+NunXXlb7ENxWYfJZtKH+0hJ47XvcCJWH9TZ4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.0.2/findling.tar.gz","created":"2026-09-07T19:15:48.841885Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T19:15:48.957330Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"OusrasMRTJHkFj7o+wd3QTmwiPeklBTMwKgDyDijwjMipXxTrf5BOJsXZ3PBmwWx34i1hkKDwsnUDZoIG49Jer9L7xlcwLCzMujGTQ/vjuupVNndG/6+0FjPTZx9NyOwJYEVG1lL+ibitOBxPtX3xUlGpDDH9KIC41VSIA8un8DMtLskyogUrscP/TUCbh8pB+pXLS91mIE7Yz3eWHiyuk3wcdoA+5gGb+vybK1/bywNWkvrMs9eAn5HV+DFnmSEQl7EcmVAST33JXz27lVM3/s8u9AbXWtIcCRB2bJ9QmgCkcknUbXMxG3ndU+IpW8UGqjHJMtcaKIad5StxQ583+9RIdQdbpbGSNZGo9Wbs8KT4GQwE4KmlZ7xcmFckhugDFRR7Y4yTgp0OYSIj11efqmUDeCzloXF+jnL/+fWt4MI1EJr8jYxemiMaoiP/CbiKj9bZocAkdqQZlMzbDnsGVFX+t3THaVML9TH0K+aVJXp/SMuVgrWGt3ceAm0hkNIbwN+El9lJdA0Lbm7RPWrwKoIo3/CJRBjIPuiNcOX2KskCqlTWP9i2icDNIy0Dp646PsvY66PtIj9RAogKNSAD+4NHuOTqDcnPGtsrnKdHpG8XDTAIVu4zdxaZjM6DX6JYiA1qigqOR6P+67BvLkfoyI9ARdN2C7fwbO2huiS+6s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.0.1/findling.tar.gz","created":"2026-09-07T17:15:26.093618Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T17:15:27.123958Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"EK+rWAqFT1GyYmQHr3J72yWtar/SVt7VQVLUbX/TZlUCW0OWZ207Y6+w1CFlnXl3BaY8RAo2cgLoZOVmCum8nYnAKhwMrWX9IVrpSkGpvIZAF6jVCigue5Qu5dwsw4EzICv+2GuJtTOca2SQ6lKiH9iojzcomn4JmHBqyIKFPInOMAQrBQ2ljKl+jjkU/B7kKkZMOx/T55PquaKY24h/BuQMieJxWS8d8zL5oKZ7km3GQ9wbT9bLSHCfopbgbcJK8gQxPVE/q4SF6T8Dd8mKW0l5DOzx0BC7Iyu/w+ROUSVvhPJgARVH9f+vZbNwqUPtQ7NMOks0Sh/t3Q6M9Sccl+PYsyOJYJwAEnqabuWmUjFecFBW8bCabfai0sd933ML6qIrDBX8eK5aJ9VrYVnOpPl89RAPDy4+MolizDW125Lk8zzIaGaSO//i2P+hZpZwRqJigJOvc/tB0ie8SUIitUEkwNMN410CFBeU3x7JUMCah8y0uIk6Zi0nGL6RNIZ+nYd3eHRVi1t1+4w7mwY8amA71w2RmZf/8buR5mCsSsiyUPg4/WwqFvwYXhIXBu9rlz3oQzdqIKM74vdJd5cc8o01Od5IHZxuW+pI6KD03uW/7wLoYsVG/HNrcUK36u+3iYER+G/9ELPZwSafaA2F3TXK5NzJFiGUJqpQXXpLrpU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/street1983nk/nextcloud-search/releases/download/v1.0.0/findling.tar.gz","created":"2026-09-07T16:34:38.600894Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T16:34:38.717019Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"rFNAMCAqdV/762AyAIhHi8qzlroy8Mfaihk0WQsl+9e1C5shwXraNFikSIUFeoNa9SZf9Z8YLNhUbYofgPQFXewtJKTpwv3vgU4n1QWPmQqxApc2h0xeo6hxbqbakgjRQdjqGf7vXbZJpRTxEG4pIA29H+ICVQV+dSa3lCLmWNdDVaueEQQfBIKLm34Rp+4tQPKF7SbgyE4VeHLn1tvjaTgMQAUbrPtt34Wbzq59hrC4HQ5wgyhJXuL6zvhqLn0IwyozQkHOtMVpx+pjOby3d80pqOErslnHhdyT5qlP+lLNa6GMGY7CYV0oEDgq5Ky50XToW9MsM6xG+4O7oZA8lucInAZiS0KuvghBMWkhgUXc54CmNsV0T9MZQHEi+2eUfy3tRDxF39UqoEhEqcmZTg++H/Icbr35cLozUgswpaqHX9JdpxC1AGTgE1n4Swl0fETvQTs8R4ySlftbwqIt5DN6ilqF7ufgg5b+1MGYkYW6oB4F+wrWyDENWf2fZMmPCUBF8IKtgf2MdCbrCzZBV801eNppf6pif+/gqCJCp7r737HxrsKs5MrQ3rrV9ZI12z2qI7i/PD1OZU6iaeZwOdFIDo+Ntc58qJGivHPE//ftGDWJIwEo2OkOEzF2N6JhwMWOZA1g3Te/k0BF9M+ngFSklvyrbZx30GmY2KglXTo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N0cmVldDE5ODNuay9uZXh0Y2xvdWQtc2VhcmNoL21haW4vc3RvcmUvbWVkaWEvaGVhZGVyLXYyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N0cmVldDE5ODNuay9uZXh0Y2xvdWQtc2VhcmNoL21haW4vc3RvcmUvbWVkaWEvc2NyZWVuc2hvdC1zZWFyY2gtdjIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N0cmVldDE5ODNuay9uZXh0Y2xvdWQtc2VhcmNoL21haW4vc3RvcmUvbWVkaWEvc2NyZWVuc2hvdC1hZG1pbi12Mi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Findling","summary":"Volltextsuche, Texterkennung und semantische Suche ohne Konfiguration","description":"Was Findling kann:\n- Volltextsuche über die normale Nextcloud-Suchleiste\n- Filter nach Dateityp oder Ordner direkt in der Nextcloud-Suche\n- Texterkennung für gescannte PDFs und Bilder: zehn Sprachen verfügbar, voreingestellt sind Deutsch, Englisch und Französisch\n- Semantische Suche: findet Dokumente auch über Umschreibungen\n- Ähnliche Dokumente: ein Link an jedem Treffer der Ergebnisseite listet Dateien mit verwandtem Inhalt\n- Jeder Treffer wird von Nextcloud rechtegeprüft\n- Keine Konfiguration: der erste Indexlauf startet von selbst\n- Ordner oder Muster wie *.photoslibrary vom Index ausschließen\n- Leistungsprofile: Sparsam voreingestellt, Standard und Leistung nach einer Vorab-Prüfung der Hardware\n- Suchmodell: int8 eingebaut, das genauere fp32 unter Standard und Leistung einmalig ladbar\n- Datenschutz: alles läuft lokal, keine Telemetrie, nichts verlässt den Server\n- Suchsprachen: Deutsch und Englisch voreingestellt, Spanisch, Italienisch, Niederländisch, Portugiesisch und Tschechisch verfügbar\n\nUmstieg von fulltextsearch/Elasticsearch: [Schritte in der Dokumentation](https://github.com/street1983nk/nextcloud-search/blob/v1.5.0/docs/migrate-from-fulltextsearch.md)\n\nBekannte Grenzen:\n- Spanisch: año und ano gelten als dasselbe Wort\n- Portugiesisch: Schreibweisen vor und nach der Rechtschreibreform werden nicht vereinheitlicht\n- Zusammengesetzte Wörter werden nur für Deutsch und Niederländisch zerlegt\n- Französisch hat keine eigene Analysekette für den Dokumenttext\n- Tschechisch: keine Stammformreduktion, gebeugte Formen gelten als eigene Wörter\n\nZusammen mit dem [Nextcloud MCP Connector](https://apps.nextcloud.com/apps/mcp_connector) ergibt Findling die Retrieval-Schicht für Ihr eigenes RAG: KI-Assistenten durchsuchen Ihre Dokumentinhalte mit genau den Rechten des fragenden Nutzers, und kein Inhalt verlässt Ihren Server.\n\nUnterstützte Dateitypen:\n- PDF (auch gescannt), DOC, DOCX, PPTX, XLS, XLSX, ODT, ODS, ODP\n- HTML, RTF, TXT, Markdown, CSV, Mails (EML)\n- ZIP-Dateien: die enthaltenen Dateien, ohne Texterkennung\n- Bilder per Texterkennung: JPEG, PNG, TIFF, WebP, HEIC\n\nAnforderungen:\n- Nextcloud 33 bis 35, Apps: AppAPI, Findling Backend (External Apps), Findling\n- RAM: 4 GB genügen, 730,2 MB resident nach einem Indexlauf, unter einer harten 2-GB-Grenze (gemessen)\n- CPU: 2 Kerne genügen, amd64 und arm64\n\nOhne Zutun läuft Findling unverändert sparsam wie bisher. Wer mehr Hardware hat, gibt per Profil frei: höchstens die Hälfte der Maschine, auf der das Backend läuft (Profil Standard), oder alles bis auf einen Kern (Profil Leistung).\n\nEnterprise-Support und bezahlte Add-ons: Angebot anfordern unter admin@infranode.dev"},"en":{"name":"Findling","summary":"Zero-config full text, OCR and semantic search for your files","description":"What Findling does:\n- Full text search in the normal Nextcloud search bar\n- Filter by file type or folder directly in the Nextcloud search\n- OCR for scanned PDFs and images: ten languages available, German, English and French are the default\n- Semantic search: finds documents through paraphrases\n- Similar documents: a link at every hit on the results page lists files with related content\n- Every result is permission-checked by Nextcloud\n- No configuration: the first index run starts on its own\n- Exclude folders or patterns such as *.photoslibrary from the index\n- Performance profiles: Economy by default, Standard and Performance after a pre-check of the hardware\n- Search model: int8 built in, the more accurate fp32 can be downloaded once under Standard and Performance\n- Privacy: everything runs locally, no telemetry, nothing leaves your server\n- Search languages: German and English by default, Spanish, Italian, Dutch, Portuguese and Czech available\n\nSwitching from fulltextsearch/Elasticsearch: [steps in the documentation](https://github.com/street1983nk/nextcloud-search/blob/v1.5.0/docs/migrate-from-fulltextsearch.en.md)\n\nKnown limitations:\n- Spanish: año and ano are treated as the same word\n- Portuguese: spellings before and after the spelling reform are not unified\n- Compound words are split for German and Dutch only\n- French has no full text analysis chain for document text\n- Czech: no stemming, inflected forms count as separate words\n\nTogether with the [Nextcloud MCP Connector](https://apps.nextcloud.com/apps/mcp_connector), Findling forms the retrieval layer for your own RAG: AI assistants search your document contents with exactly the rights of the asking user, and no content leaves your server.\n\nSupported file types:\n- PDF (scanned too), DOC, DOCX, PPTX, XLS, XLSX, ODT, ODS, ODP\n- HTML, RTF, TXT, Markdown, CSV, mails (EML)\n- ZIP files: the files inside, without OCR\n- Images through OCR: JPEG, PNG, TIFF, WebP, HEIC\n\nRequirements:\n- Nextcloud 33 to 35, apps: AppAPI, Findling Backend (External Apps), Findling\n- RAM: 4 GB is enough, 730.2 MB resident after an index run, under a hard 2 GB limit (measured)\n- CPU: 2 cores are enough, amd64 and arm64\n\nWithout any change on your side, Findling keeps running as economically as before. Anyone with more hardware can use a profile to free at most half of the machine the backend runs on (Standard profile) or everything but one core (Performance profile).\n\nEnterprise support and paid add-ons: request a quote at admin@infranode.dev"},"fr":{"name":"Findling","summary":"Recherche plein texte, OCR et recherche sémantique sans configuration","description":"Ce que Findling sait faire :\n- Recherche plein texte dans la barre de recherche normale de Nextcloud\n- Filtre par type de fichier ou par dossier directement dans la recherche Nextcloud\n- Reconnaissance optique pour les PDF numérisés et les images : dix langues disponibles, allemand, anglais et français par défaut\n- Recherche sémantique : trouve les documents par des périphrases\n- Documents similaires : un lien sur chaque résultat de la page de résultats liste les fichiers au contenu proche\n- Chaque résultat est vérifié par Nextcloud selon vos droits\n- Aucune configuration : la première indexation démarre d'elle-même\n- Exclure de l'index des dossiers ou des motifs comme *.photoslibrary\n- Profils de performance : Économe par défaut, Standard et Performance après une vérification préalable du matériel\n- Modèle de recherche : int8 intégré, le fp32 plus précis se télécharge une fois sous Standard et Performance\n- Confidentialité : tout fonctionne localement, aucune télémétrie, rien ne quitte votre serveur\n- Langues de recherche : allemand et anglais par défaut, espagnol, italien, néerlandais, portugais et tchèque disponibles\n\nPasser de fulltextsearch/Elasticsearch à Findling : [étapes dans la documentation](https://github.com/street1983nk/nextcloud-search/blob/v1.5.0/docs/migrate-from-fulltextsearch.fr.md)\n\nLimites connues :\n- Espagnol : año et ano sont traités comme le même mot\n- Portugais : les graphies d'avant et d'après la réforme orthographique ne sont pas unifiées\n- Les mots composés ne sont découpés que pour l'allemand et le néerlandais\n- Le français n'a pas de chaîne d'analyse plein texte pour le contenu des documents\n- Tchèque : pas de racinisation, les formes fléchies comptent comme des mots distincts\n\nAvec le [Nextcloud MCP Connector](https://apps.nextcloud.com/apps/mcp_connector), Findling forme la couche de récupération de votre propre RAG : les assistants IA cherchent dans le contenu de vos documents avec exactement les droits de l'utilisateur qui demande, et aucun contenu ne quitte votre serveur.\n\nTypes de fichiers pris en charge :\n- PDF (numérisés aussi), DOC, DOCX, PPTX, XLS, XLSX, ODT, ODS, ODP\n- HTML, RTF, TXT, Markdown, CSV, e-mails (EML)\n- Fichiers ZIP : les fichiers contenus, sans OCR\n- Images par reconnaissance optique : JPEG, PNG, TIFF, WebP, HEIC\n\nPrérequis :\n- Nextcloud 33 à 35, applications : AppAPI, Findling Backend (External Apps), Findling\n- RAM : 4 Go suffisent, 730,2 Mo résidents après une indexation, sous une limite stricte de 2 Go (mesuré)\n- CPU : 2 cœurs suffisent, amd64 et arm64\n\nSans aucune intervention, Findling continue de fonctionner aussi sobrement qu'avant. Avec plus de matériel, un profil libère au plus la moitié de la machine sur laquelle tourne le service (profil Standard) ou tout sauf un cœur (profil Performance).\n\nSupport entreprise et modules payants : demande de devis à admin@infranode.dev"}},"isFeatured":false,"authors":[{"name":"street1983nk","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhPRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE5MDgzMTI5WhcNMzYxMTI0MDgzMTI5WjATMREwDwYD\nVQQDDAhmaW5kbGluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL8R\nj7VftrYcyfX0xbX3UKDvbFoyicbee82jh6M9JgZUVLaYBU59twQ28cAnpRydOhyM\nxVWjMDGpskvX28B7KAaa7dEv++qSJAmUuoWRj+lCEJNQ25Od8FENn55DmhcAlKUx\nrwVmdaG6b5Zh+4aUa/2kvd4be3uVCugDoS8vZmKdTLFwG5pBpvo75F+gd8aQtYfb\n8fJXABayUY6GbDzp9ASdkv4kpsbCnsf0Xl8Xpa0Hec5baPU8CPEbNQpXUUreiJ8X\nGy4RFvGh0qT2hs0mVsctpfm3Chhp+GXk9bNXz91fNtoHg3SMeThl2vklMR/S9+8A\nA7BIkRy7ZDLryUpHB7aL5ocmZJOH68BHLDCEY6I5qTAIsFrHmLXQakDu8S42Swup\neupUu/dI7T5q33UpjTvlw2XDSDs38Onl+B4VKJFzlgfgiM5gfsHdj0AT4i9vny5Q\n7O1AvAS43+gBlnOr5FkAOqUAnS2N3eSo1O2+DpZNoyZ33GbD3JiKfgrnZ3i4eqAC\no+5Jn+hsXN4FM2zJuksNaTQtQq91uuFkPE6g0aGruB0ap51tsVi8ynDUdIKQbz4k\nuhb837gq9/nnpu2DPr0pC7EwdouJbw/627LU9mInulyXLRve8u9+AwZuNyDiNECy\nFZbF2ooye4f8556Jrwwsj9sk93MjbVvG1j46svrhAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAA2BZZJA9ONkhg8BruH3GRB+Bz6vzYtwb3x94fA9Tcdhc+fI/TviFb4g\nrt8In/fFldl37SVvQ9rZxyJIZcivPltgEZDcLaDEm/SMMqp/ebhlFSAVvtXjMueR\nquq4oS6WJL+3GgDvK70DAyNSdZFKm6N3MHsrAaV16noJAaVfz1Gyi3wMQvsA3Gtp\nRF/QOf0e96WQeDmsX7s16JUkwKiZsb5cmj7Cyhg+Sc4Ct9l2xes/diBMZCN6VSyq\nt/farxDxVJPHSocmAnZ1bpSkNXm5/DGbRdZ1nrWeYc5VnU2q19T9RL8PElPioJJb\nK0ClbjAdck3Js3yZWUVyMsSPpWeGBCk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"passwords","categories":["dashboard","office","security"],"userDocs":"https://git.mdns.eu/nextcloud/passwords/-/wikis/users/index","adminDocs":"https://git.mdns.eu/nextcloud/passwords/-/wikis/administrators/index","developerDocs":"https://git.mdns.eu/nextcloud/passwords/-/wikis/developers/index","issueTracker":"https://github.com/marius-wieschollek/passwords/issues","website":"https://passwordsapp.org/","created":"2018-01-19T18:08:43.002344Z","lastModified":"2026-10-20T13:41:54.701816Z","releases":[{"version":"2026.9.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=32.0.1 <36.0.0","minIntSize":64,"download":"https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2026.9.0/passwords.tar.gz","created":"2026-09-15T19:05:05.374607Z","licenses":["agpl"],"lastModified":"2026-09-15T19:05:05.462848Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=32.0.1 <=35","signature":"WAruamT8FJp0vUGrODH9AvEIfwfa9jyKl2Hi8+XwZ3xmEO4/YzzcfwPnWsd8ex6HAageuq5vv37m/j5mQDxUOzNSdylos9QFqnz2H5UbRSmdu9nu/YLETm54cfaktuzR6luBuPEmqj/BYd0C4Fm2CVbFFKuTUNUFMCogefPhl6gCB5G4++sss2U6scRPwFi+oU7clQ3l4WpeAPsRuWXLztPnGI509Ajna9ZtozNlUsKxHq9lUHpqC/h6ftiripdEH8mumd0mBxbDnqL+6JWXD5qNiBIifV+RklSCNgZmGIuNK1nqdPYmNGxLE8qkz4YlyUy3o8ISHF+e9sjSOoQEj31zFqPzssHZPKHJTHrmGzIDkj0brJvfqpVoLJuYwo9LrDu0LAAT92/MhUjq2gY5woh6u0nc0N47R8MqWO4fR4kK26wDjl9ErhoKwSbSthD9lxPtVLnmYA/rAeGQcW18FeWyeK2V4nL2x399QTBdsxq5Jf+Egt/zjBYzjp3amMSOduGWh+64FYzxp3MdEI3W1I2z66ScH6ilbbJGIXlh1h/istJGZLfc9A/bVMwIyKBJFG/Kdb6NoZmMuI4GHvEKQZmMaEQBsyVL55JaxKPSZmiREaNv7MUcQGyBxykE9EklbW1AYJL2cHHLKGm91JgkPpfqr3BYASKVCp8pdmANrDo=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 support\n- Batch actions for moving, deleting, favorites and restoring items\n- New Nextcloud design for list view\n- Updated share menu for password details\n- Context menu for list view"}},"signatureDigest":"sha512"},{"version":"2026.9.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2026.9.0/passwords-lsr-81.tar.gz","created":"2026-09-15T19:05:03.014885Z","licenses":["agpl"],"lastModified":"2026-09-15T19:05:03.060408Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"dxxyB5FCrQ92SA2e5ffaO5cXFavicp2b64GV9amQ8QAw1iQCHKslcg4iSA8McJ/GoF/BepY4m70w5ZJ8i7SBembuhsWbfpCZUO/SppjYbLyUrXslS9ATc7jBnx/YZU6Om9QaziJgc36K3+Lc86BTSIacnSFXjKi4FtmJXgxTRlY/qNhAri4pllc1OtY0jLl0O//Dk59ZvA5f7/ES/M/5GJc3rFy3BMt+Nz88SRy7p9KblsVIU89fHiGSgqUdjvdBtZfDL5xy7xaKodC5btPNeNvdDYJszfqbnknBQdZMvEkp4pA8ZPiY0gkqPII9TMjNmXo4DD7KqNozjecctwP7ymNQpGD2m1T6Esi9dyoovADxiRMep6hDpzxo4swZKMDc9ACiu5rWNrTvKZ3r8/VCL5zUs8M8mkNxr87vq16dq/Ewd+YsYI+frW3uYdDb8ekvVykCnCDLv+vqnkLepbo84tT4Il/dXc4tG9zWnaBzV6KaG36K7dAWyV2fMj+0hr6hJXj0VKMrzSOiRN2o8fbY3aQdzaRYjdQSzqloFm9EsKPzFnW8jpF4Z71HLDIpYyodku603ZYQflyP3N8hcbDef72cw2HREvXgPdBAj6MdCI9tq/NKqT2bemzI5NX038/DEr4N11kXSQySlM5Q+MNPMyyGnvd5fSK889O9R78OzWs=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 support\n- Batch actions for moving, deleting, favorites and restoring items\n- New Nextcloud design for list view\n- Updated share menu for password details\n- Context menu for list view"}},"signatureDigest":"sha512"},{"version":"2026.11.20-build6091","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=32.0.1 <36.0.0","minIntSize":64,"download":"https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords-nightly/2026.11.0-build6091/passwords-nightly.tar.gz","created":"2026-10-20T13:41:54.727563Z","licenses":["agpl"],"lastModified":"2026-10-20T13:41:54.742634Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=32.0.1 <=35","signature":"ufAWZAcU10c8zpkMIJwULpV4yWlY3oJLnS1BqNGMfrfnKW+wzTPwXmBiDZP0XLnam0ew9hAbdORj7yzjR9Z/h+eqaeALrcJXpA32h2PS1C0tdvYsEsHTTJLRPBy8gyAE/NvsKR5me/b9U1mWWHyk0vuAO8YJpg5EUoH51NEOqp8+RHixkEcNWEAQIyNzQnf29jQapusGS5N9IhU1BEkBjnaMOE26Y4GfuV0Usdd3n26dG+SSdsGEhewq+mfCi3owixPmiXIHdA/Jd1bqtj00o3ZyCTScVxhIhsec+h9WqfArBIDQxgWpi4rXMRkYAQATU09B6/4iwY1ol4auJtScEVwJmWNGf0vQHmyhdoykfcmqV2NL4b0lFiel1hxh+jxaoKOdsYYalUBFw/gVkY9eh+UGAOkszVIFONua57o+HTIq3mz82HKLa3S7sDVc4mar9pVc4PTFGtRvIWa9+LNLX4EE0OcT635yneNSpFV5E+JmJ8XJOOg6rPMjfajVm1GMv3lJE2GjPRyQsRdUbfIhRzrT7tpUf1aQzPXx7pT4CYjoI49PYb3eINXop7HsyNqi7A5Jbr3YXvUg/RMimdjHei6e0eERu+hByRdEOSZKmqRs97q7aJWa/KP2+Z1C//ptGNuIIuQT5ehUzy4k1VpFB8ZQL9T47FYG9SPoBl1u84s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.10.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=32.0.1 <36.0.0","minIntSize":64,"download":"https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2026.10.0/passwords.tar.gz","created":"2026-10-03T14:59:06.853190Z","licenses":["agpl"],"lastModified":"2026-10-03T14:59:06.906685Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=32.0.1 <=35","signature":"gkiLbtw7H+ltkJZSGoOgQtiBHEy1g74TXu8SXJdT5td8R3MKLDa4h9XVm6UyrRTHNC4dHv8v+PbMBRVMK57JiYbNnwBRrpGYKRdojSTlx8Sji5k6YXbKa7HnZ9wnkgUFXceSqThp67HEWcPOmXmbpHQIrjKp9c3RZ7crj9/d+hhoj5vdzw2MyBmD0j/tx/W5kETGd4cVbHF7IAnjgbA5PYEQuu9bKDVY5JnD/NLlGotuQWkKnWrNSzC6ngxAglGxp6XuFIlylKv1uKo4lC3eeW6UNWvSgHuzPLZ5OrldMf7/HrjyU98JX9DKBDPYYymDLqw480+rm3CIyvjEOoQuUE137UMZoEFt2h8qz9+Ik3OYspa2yDWExM0cztEcFPWzwsED/HIhwY5PVbFVFJSgc1V8eS7Hugvnn8A+3l0umIZjxEvHjk9iV04CQy7tM7oeGejmS+L522yuNPdu7YUC/k09IGwpvwuymWAX9fH6cghcoHUx9MGjmcIUvzm1Pk3J873zVNig4Og3+XAv17W6FqH322djj1fNl5FDgpI99cwKouwLeC6MLRxZcDAhVByHNtgA3b5Y2scGnhUIqo2+b+hfDCAeHL66ivFTZM0ydiJyi9Ub0jDosj9oveGqDssfXONr4HE0e+0JC0M470Ib6KHP1uJ0Et+l9yodQImorg4=","translations":{"en":{"changelog":"### Added\n- Context menu for tags\n- Drag and drop for tags\n### Changed\n- Passwords are now marked as unchecked if the security check fails\n### Fixed\n- Creation of shares with invalid receivers now blocked\n- Search box squished by app navigation in some cases\n### Removed\n- Breeze theme support"}},"signatureDigest":"sha512"},{"version":"2026.10.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/45/packages/generic/passwords/2026.10.0/passwords-lsr-81.tar.gz","created":"2026-10-03T14:59:01.191990Z","licenses":["agpl"],"lastModified":"2026-10-03T14:59:01.243977Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"vhKgDzFO4AGDSkuVQUJ79tL38folXGWQTJVwMB3D8KkVBJLjIaGADSPwoyU9QkgnPwzA3kdbNwg5rntETgj6fQT0ylgfhfB8/zrXnV0FTgTLWKnqXmX+jH8q/EUU/53JrVueCQrVfFe5MHvxQfMY0jw7yTtlTzTeVYWD1Cb17KMbHUYz9WEtWFL67sAJn2l8sA0mtydn3vPW+cXMLxVEug6fc3D3zAhJDOIxSRznBsiZd59qqBSNTf/LW7p2b0YSIB45OdaDI8gFOlJbjLxqr4UGqLQAa0+Dxa2Z/VOIrkZ3muVOseF4MeAMyJHirfXfhx81/uGKAZzdYXLzslvmTNggAtZKe+EbTSwyKop1Aafttb+8WsFJkOJWj0ZcLYyfR/RgjUAQ369K2UmJ1pCr7yWsfpEQG0LEdoBF0o1i7QVBfFNbJSD2MoAnL977HA6OHyij7KyPvILVR7flTd3dtf2w10KUo4NClJG0Sd/UmnRD9cziOHgMuzN2W7je2VMvdMi8OcYxlYhEaiqXD7x6xSPRyS7Arr4iyEH76qAk+r2730vNFl+SNmV14dgQXKOE3xCaBPkEvR+KxsBEhYqwiEshVVpumxXqBlM09LwtBzHnW+cmKmi3MJW9ahA7FLyVz2QAz23ZW7nIFPZI7rUooc5Lzgcj4MszUtrD/OuN2cc=","translations":{"en":{"changelog":"### Added\n- Context menu for tags\n- Drag and drop for tags\n### Changed\n- Passwords are now marked as unchecked if the security check fails\n### Fixed\n- Creation of shares with invalid receivers now blocked\n- Search box squished by app navigation in some cases\n### Removed\n- Breeze theme support"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvZmVhdHVyZS1vdmVydmlldy5naWY_Xz0yMDI2LjEwLjIwCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/feature-overview.png?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvbWFpbi1zZWN0aW9uLnBuZz9fPTIwMjYuMTAuMjAKICAgIA==","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/main-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvZm9sZGVyLXNlY3Rpb24ucG5nP189MjAyNi4xMC4yMAogICAg","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/folder-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvdGFnLXNlY3Rpb24ucG5nP189MjAyNi4xMC4yMAogICAg","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/tag-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvZmF2b3JpdGVzLXNlY3Rpb24ucG5nP189MjAyNi4xMC4yMAogICAg","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/favorites-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvc2VjdXJpdHktc2VjdGlvbi5wbmc_Xz0yMDI2LjEwLjIwCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/security-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvc2VhcmNoLXNlY3Rpb24ucG5nP189MjAyNi4xMC4yMAogICAg","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/search-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvdHJhc2gtc2VjdGlvbi5wbmc_Xz0yMDI2LjEwLjIwCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/trash-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvc2V0dGluZ3Mtc2VjdGlvbi5wbmc_Xz0yMDI2LjEwLjIwCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/settings-section.jpg?_=2026.10.20"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvaGFuZGJvb2stc2VjdGlvbi5wbmc_Xz0yMDI2LjEwLjIwCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/handbook-section.jpg?_=2026.10.20"}],"videos":[],"translations":{"en":{"name":"Passwords","summary":"Store, manage and access all your passwords with ease.","description":"Passwords is the most advanced password manager for Nextcloud and allows you to manage and store your passwords safely in your own cloud.\nThe intuitive and modern web interface of the app makes it easy to update and add new passwords from anywhere.\nIncluded security checks help you to keep your online accounts safe and up-to-date.\nYou can also share passwords with other Nextcloud users.\n\n**Features**\n * Intuitive and modern user interface\n * Password security monitor\n * Secure encryption\n * Folders &amp; tags\n * Sharing\n * Dashboard Widget\n * API for apps\n * Extensive handbook\n * Import &amp; Export\n * Browser extensions &amp; Apps\n * ... and many more to come\n\n**Support**\n * [Official Chat](https://matrix.to/#/#nextcloud-passwords:chat.passwordsapp.org)\n * [Official Forum](https://help.nextcloud.com/tag/passwords-app)\n * [User Handbook](https://git.mdns.eu/nextcloud/passwords/-/wikis/Users/Index)\n * [Administrator Handbook](https://git.mdns.eu/nextcloud/passwords/-/wikis/Administrators/Index)\n\n**Apps & Extensions**\n * [Official Firefox Add-On](https://addons.mozilla.org/de/firefox/addon/nextcloud-passwords?utm_source=app&utm_medium=nc-apps)\n * [Official Chrome Extension](https://chrome.google.com/webstore/detail/nextcloud-passwords/mhajlicjhgoofheldnmollgbgjheenbi)\n * [Official Microsoft Edge Extension](https://microsoftedge.microsoft.com/addons/detail/cjmlcljdpphgdfpkngjcmeepdpcgpffk)\n * [Android App](https://play.google.com/store/apps/details?id=de.jbservices.nc_passwords_app) by [joleaf](https://gitlab.com/joleaf/nc-passwords-app)\n * [Android App](https://play.google.com/store/apps/details?id=com.hegocre.nextcloudpasswords) by [hegocre](https://github.com/hegocre/NextcloudPasswords)\n * [Windows App (WIP)](https://www.microsoft.com/store/apps/9NXVZ0ZP6D5Z) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [Linux App (WIP)](https://gitlab.com/j0chn/nextcloud_password_client/-/tree/main#linux) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [macOS App (WIP)](https://gitlab.com/j0chn/nextcloud_password_client/-/tree/main#mac-os) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [iOS App](https://apps.apple.com/app/id1546212226) by [Johannes Schliephake](https://github.com/johannes-schliephake/nextcloud-passwords-ios)"},"de":{"name":"Passwords","summary":"Verwalten und verwenden Sie all Ihre Passwörter schnell, sicher und überall.","description":"Passwords ist der beste Passwort-Manager für Nextcloud und ermöglicht es Ihnen, Ihre Passwörter sicher und einfach in Ihrer eigenen Cloud zu verwalten.\nDie intuitive Weboberfläche macht es einfach Passwörter von überall aus hinzuzufügen oder zu aktualisieren.\nDank des eingebauten Sicherheitstests können Sie Ihre Benutzerkonten sicher und Ihre Passwörter aktuell halten.\nSie können auch einzelne Passwörter mit anderen Nutzern teilen.\n\n**Funktionsumfang**\n * Intuitive und moderne Weboberfläche\n * Passwortsicherheitsüberwachung\n * Sichere Verschlüsselung\n * Ordner &amp; Tags\n * Teilen-Funktion\n * Dashboard Widget\n * Umfangreiche API\n * Import &amp; Export\n * Detailliertes Handbuch\n * Browser Extensions &amp; Apps\n * ... und vieles mehr\n\n**Hilfe & Unterstützung**\n * [Offizieller Chat](https://matrix.to/#/#nextcloud-passwords:chat.passwordsapp.org)\n * [Offizielles Forum](https://help.nextcloud.com/tag/passwords-app)\n * [Handbuch für Nutzer](https://git.mdns.eu/nextcloud/passwords/-/wikis/users/Index)\n * [Handbuch für Administratoren](https://git.mdns.eu/nextcloud/passwords/-/wikis/administrators/Index)\n\n**Apps & Extensions**\n * [Official Firefox Add-On](https://addons.mozilla.org/de/firefox/addon/nextcloud-passwords?utm_source=app&utm_medium=nc-apps)\n * [Official Chrome Extension](https://chrome.google.com/webstore/detail/nextcloud-passwords/mhajlicjhgoofheldnmollgbgjheenbi)\n * [Official Microsoft Edge Extension](https://microsoftedge.microsoft.com/addons/detail/cjmlcljdpphgdfpkngjcmeepdpcgpffk)\n * [Android App](https://play.google.com/store/apps/details?id=de.jbservices.nc_passwords_app) von [joleaf](https://gitlab.com/joleaf/nc-passwords-app)\n * [Android App](https://play.google.com/store/apps/details?id=com.hegocre.nextcloudpasswords) von [hegocre](https://github.com/hegocre/NextcloudPasswords)\n * [Windows App (WIP)](https://www.microsoft.com/store/apps/9NXVZ0ZP6D5Z) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [Linux App (WIP)](https://gitlab.com/j0chn/nextcloud_password_client/-/tree/main#linux) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [macOS App (WIP)](https://gitlab.com/j0chn/nextcloud_password_client/-/tree/main#mac-os) by [j0chn](https://gitlab.com/j0chn/nextcloud_password_client)\n * [iOS App](https://apps.apple.com/app/id1546212226) von [Johannes Schliephake](https://github.com/johannes-schliephake/nextcloud-passwords-ios)"}},"isFeatured":false,"authors":[{"name":"Marius David Wieschollek","mail":"","homepage":"https://git.mdns.eu/nextcloud/passwords"}],"ratingRecent":0.5,"ratingOverall":0.76,"ratingNumRecent":0,"ratingNumOverall":25,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhCIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwMTE4MjA1ODMwWhcNMjgwNDI1MjA1ODMwWjAUMRIwEAYD\nVQQDDAlwYXNzd29yZHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDB\nxnKYqoHdZ/hfIR+LpeRsAU3LprUt9LNDzf9c8UILro0dF8AGowDic/UzfThNASB2\nuUaO5+6Kc0Edsu+npk1FGdalG9GzkXyDWkYN3qfJ07krIGH+4lOLXENR1d99W4Kf\ncjYATqQ7bUL7PoMMZ6Opfl8p5gWzaeCv8D1DJ1wKIITM/E/q+5cxsJuiuwmOAppm\nydAJA/cj587xvMMnaOmYxxZA719YpqHwj4Qi8kXy7VqQc3EAhyj+6U8lwZo7EcL/\nzlHMIupQK0l8Zxiuhmd9XPfGDEDEhGmw5qrPsw/2OprpNDiAxjxhOY+PUxczfhkd\nmLLso8KMDzCrhWQ3ygqlICLsp68WH92MFnjlXc6mo2LKkVAVSnn8IBNJ0JGNenhA\nwTM1/4owvVzUkgnyG97adVmqbcIKbRcG0OQTkJ+fK+YrA9xvqkS1+40sl0KQXH6o\nGVdLsUgVzdO46VJd0IRaazI/VfXY20Wvv8+xcKNJOlJClJkd1b0T0rKdxCVABWR+\nRuoFXxF8xDfld/MaJ5mPxVTDZAeCh1LtZe+zh7H48+8I5wKHA7QfsdG9dBPOLw1O\nMeSnAOtuaoioNq5ie3ZYOH9oEobVjp2H/koDYqOQa2xF3rgzwSjPcs7vPumgG1Yr\n9FUiBk/rvGc3N57jNm2sslih3uYA7CiOAY7+eJZ4zQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBgmOqa0x1s5v3GhD2e3/Dy4q8QkJYZlnRZx/e4WepfFDtt7ulhjdnH\nX56zF1qEvy59g+FMghsFwn7zGNEOdsHTJnJDQdFXLjLDQrCsRgxYsObHVrvPlEtN\nxTH8pexIp7ZqiZTnCRZNPYD1Z7G0mVGvyeDG2a4C5T7L4YBIkHzJJ7WkROchKxDP\nT7qbGfAxx7AGxMo2zTrCs2nKs3WVom09iBR7u5osQtO/1ynMQlR0CO6lKcJmERiS\nfpu/25tJeOH/IbBRcCxgy31/jbzm1AyrvcCTGVqy4v5HGZTuY5KZoEslWThW1LNN\nBqc8aZK4HZIaKVYfv9VIjLXngovmsSzR\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/tag/passwords-app"},{"id":"quota_warning","categories":["files","monitoring"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/quota_warning/issues","website":"https://github.com/nextcloud/quota_warning","created":"2017-02-20T11:19:08.221576Z","lastModified":"2026-09-29T13:52:44.479074Z","releases":[{"version":"1.25.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/quota_warning/releases/download/v1.25.0/quota_warning-v1.25.0.tar.gz","created":"2026-09-29T13:52:44.473946Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T13:52:44.527703Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"Ir77zx8rppmKHBD/d60BWaSoUh5zLYbhJlOOYHm2MapInXuqtYynhSPu/vh08R/BP8kn9DcT3o5rOCFGwUCEEBZ/bB5mAb765Gv/4oApiClhr5w7tr5Fxyip8qUJeWqF51lEMYrVr1ZFafrqTUfMBN5E1rkO0rRllWRv40glNz8TsN2Wa1q6QiABQMt6I4iRPCy1CRrjZkcpyVWqSTUZkp++0ujPdbPCcqddBdZPE7I8z6wAUfllWbA1pEl1h3wnG1Afvh+zcOEJB9H0HBNNG+bQiEohR2lHJj7gLszM51jQDbym7aNQkIzftTWvrehQu2WFaSXg25OX1HqOztLMpdqPVXl/lJ1ydJS1fBu3hMXxEb9r8GCc3sGYpiYJT6hoNkQTmacRzMTt6UR7VgMjaz4eTrmMQSIY4KPzZ13Vq4imLoZMldUG43Rta7aSBFxDJLs+D0uR7+54VdtUKpaJsN/eylreU5Xi951HTFu5sQ4sC97YcHLbQnzT+TO9Am9r+GZP9AZ46YeNSBC98a9mZVxRy/mqqh1BG4v8ewioLpSdwIgmTpN9/pVR4FfzW2dWEbWsoWiYMEc3QsfFDW2BrRztTu1XnwXWLz8BeFeNndp0Z2gsnQxucPCQXb7CE5xXTsjY8fr15E9GFykxXEGUK08C1C/FQFBcJd4JWgTSC4Q=","translations":{"en":{"changelog":"### Changed\n- Nextcloud 35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9xdW90YV93YXJuaW5nL21haW4vZG9jcy9ub3RpZmljYXRpb24ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9xdW90YV93YXJuaW5nL21haW4vZG9jcy9lbWFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9xdW90YV93YXJuaW5nL21haW4vZG9jcy9hZG1pbi1zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Quota warning","summary":"This app sends notifications to users when they reached 85, 90 and 95% of their quota.","description":"This app sends notifications to users when they reached 85, 90 and 95% of their quota (checked once a day).\nIn addition an email can be sent to the users. The three percentages can be changed in the admin settings.\nIt is also possible to have a link in the email and the notification for upsell options."}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECDCCAvACAhA2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwMjIwMTExNzA5WhcNMjcwNTI5MTExNzA5WjAYMRYwFAYD\r\nVQQDDA1xdW90YV93YXJuaW5nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\r\nAgEA0JCNFcyFEVTe1DWaRn/onXZbZ5SzdqY6qK+xM4Ms33KjmNYkw+yJnZbgsIOe\r\nuqu+FyEOT9MPwACwC10gDu/taiCM6R2PLgY0q/eUCP9Yj5DkrlxhYiCRYXBDISjP\r\nkxWRicQRFK0i3HE28Vi/z0e5L4c/GImolFzb1AD2vS9pbKm+rv2077B8iBhKQov5\r\nS9DT8Y9Jceek29PnkFl/Rdx3tQ85FGEoBGcjQB2FBYiIiIfXWMUUolRoTJjG/9Ff\r\nXKslV9rM6y1VKrempM9SzS2ylAxEScPvcNqxoILS+9ydu/SVWedR8yHEngOaoKUN\r\naHSV4X3FkaxYc+SYJAbkL4UEJcqg2XzxYzIOyun3iV5ppgbCHWSOvmZUIJXnwmRD\r\na8Q+iN6ZjOzi9+pzMXT4N4H84dnGllKVRUsqA/4nBwYOVW6163Iph2DmMgOZLzIf\r\nra3zy/6NyJsHsnShGmzBnh3HTeZQciepl7+GtCgbzvuEQjX1L91OVxbkoRi7ynGk\r\n7NSrfQjeGiOrMjsqHWKgDp7wjlbFErhdmkAIO+RaEszMkrgdgy8ZN/mRQ6z93D31\r\n/+jbhsRC+B1nfkOCgyVKBuWB5Lfc9qw11dopUzzPBpmrbIDRrIMsBUZ6EE22vBzg\r\n45svc7+6Klwm2uwzemMzNzmZrqLfqEIJxjiQb7AQrJr1Ya8CAwEAATANBgkqhkiG\r\n9w0BAQsFAAOCAQEAifJsPUEBkB6bYofnIlNJtHXijeVXLKbBsDo92snX/TyXF5gc\r\nVKihyLNWa1XN511tyFY846Pu+h4Fyfxoh/8U1cxLak5YsbF7TR8wcPIdhfBgKRp4\r\n1SklDho2dTQebFgQBsScBN7pd1txFY/oY1R5g+io43nDYeA3YEE8cuokTkrUrGZK\r\nSGT8dcIQjrYcU/Nrn5KjaoVMlHg7lq5IlN8lHKKL5qURimAH34E9y0sVNtDBked+\r\nqn/+w4UKARK6TJnoBNhVqn15/zKOPbLV08a2h5Yn4ki/x8efxisosQW2FOY1yrNL\r\n2SkJmcVyIN/mUOWloqTDwxUvZgVVFV7wHg9SCw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ebookreader","categories":["multimedia","office"],"userDocs":"https://github.com/SomeCatCode/nextcloud_ebook_reader#readme","adminDocs":"https://github.com/SomeCatCode/nextcloud_ebook_reader#administration","developerDocs":"","issueTracker":"https://github.com/SomeCatCode/nextcloud_ebook_reader/issues","website":"https://github.com/SomeCatCode/nextcloud_ebook_reader","created":"2026-10-11T09:22:17.338899Z","lastModified":"2026-10-13T07:00:56.675280Z","releases":[{"version":"0.11.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SomeCatCode/nextcloud_ebook_reader/releases/download/v0.11.1/ebookreader.tar.gz","created":"2026-10-13T07:00:56.667784Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T07:00:56.740859Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=31 <=35","signature":"ny5dltYJ7xc07YBjbJoYZoifzeem54IyA28qPGkDGfnQTEp9RWAkRYSXVjSPUhun3yEvokXXLTLlTkeeEq4GMTRyEcjV3500nI600LbExvLIHnAlZNZAQhaMd+ow33ytvR6kDzIgbVe3njc9jEMSDvcFO0++EqDctHv3oX//BhCTvGO4IzzpF4UlyNhZBVRXJJfMCvAjWkfxt4EdhL99p9/Xdmg25kM0AzgFHm3vLzD9vYV+i8+eJjmq1MLhfPo8xUue8qFo0RnKDaTcze+q3eN6C/eALM48q6JqLVUj7TE7y72SqMlI91jdBuket6ehCYkPO7dOnaTLbZcVpdlEDxtVP/xH4q31zDFSf64tcwUGIaPg/QS/EHN7KxNZutPu0gzBvbAdPn6weFouMSh97u6uhWeh3ZnCeWD0tOf0iV8E7vxbtqjE2bV2XOEWUXXKnMp7wxPrjmxXyrmxW2fIAmTMyrZJufbDgb6g5eQnQGDA9ZiQh/XHI7piPoZHJxRqkDkJ6UkCZ9M1A/HdNmV+YrTi+L/Z13oef3yWtNqTz7AKtoDmzDp3U9jy1Ys+q4CLbjN8JB6mt72/5QnVg5WPo00d8kGfG2JdbJ3Ef2YXmKRgrUv1+DqBGuwj7zMqaHnFVKX0U9Q1Y4kB61N3M4RdqgZTxtr8Eimk+NZKqMgJvb0=","translations":{"en":{"changelog":"### Geändert\n- **Unterstützte Nextcloud-Versionen: 31 bis 35** (bisher nur 34). Nextcloud 35 wird damit unterstützt; auf einem auf 35 aktualisierten Server wurde die App vorher wegen `max-version` deaktiviert, und der Cron meldete u. a. „Could not resolve OCA\\EbookReader\\BackgroundJob\\SyncSharedShelvesJob“. Neuere Server-APIs (`IAppManager::isEnabledForAnyone`, `IFilenameValidator::sanitizeFilename`, `IShare::canSeeContent`) werden mit abgesicherten Fallbacks genutzt, damit Nextcloud 31 weiter funktioniert.\n\n### Hinzugefügt\n- CI: Psalm läuft gegen die OCP-Stubs aller unterstützten Nextcloud-Versionen (31–35, zusätzlich `master` als Vorwarnung). Ein Integrationstest installiert die App in ein echtes Nextcloud (31–35, mehrere PHP-Versionen, SQLite), lädt ein Test-EPUB hoch, scannt die Bibliothek, ruft die wichtigsten API-Endpunkte und die Web-Oberfläche auf und führt die Hintergrundjobs der App aus.\n\n### Behoben\n- Die Zeile „Weiterlesen“ unter „Alle Bücher“ zeigt jetzt dieselben Bücher wie der Menüpunkt „Weiterlesen“ (Lesestatus „Wird gelesen“, zuletzt gelesene zuerst), wie schon das Dashboard-Widget. Bisher entschied der Lesefortschritt: Bücher mit Status „Wird gelesen“ ohne Fortschritt fehlten, und die Auswahl wich vom Menüpunkt ab."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NvbWVDYXRDb2RlL25leHRjbG91ZF9lYm9va19yZWFkZXIvbWFpbi9kb2NzL3NjcmVlbnNob3QtbGlicmFyeS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NvbWVDYXRDb2RlL25leHRjbG91ZF9lYm9va19yZWFkZXIvbWFpbi9kb2NzL3NjcmVlbnNob3QtcmVhZGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NvbWVDYXRDb2RlL25leHRjbG91ZF9lYm9va19yZWFkZXIvbWFpbi9kb2NzL3NjcmVlbnNob3QtZWRpdG9yLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"E-Book-Reader","summary":"E-Books (EPUB, MOBI, AZW3, FB2, CBZ, CBR) in Nextcloud lesen, organisieren und bearbeiten","description":"Bibliothek, Reader und Editor für E-Books und Comics. Die Bücher bleiben normale Dateien in Nextcloud. Die App indiziert sie und synchronisiert die Leseposition zwischen allen Geräten. Kein zusätzlicher Container oder externer Dienst nötig.\n\n**Lesen**\n- EPUB, MOBI, AZW3, FB2, CBZ, CBR, CB7, CBT\n- Öffnen aus der Dateien-App, seitenweise oder scrollend, helles, Sepia- und dunkles Design\n- Comics als Einzel- oder Doppelseite, Leserichtung rechts nach links für Manga\n- Markierungen, Notizen und Lesezeichen, exportierbar als Markdown\n- Große Dateien öffnen schnell: Seiten und Kapitel werden gestreamt\n\n**Bibliothek**\n- Cover-Raster oder Liste mit „Weiterlesen“ und Serienfortschritt\n- Filter nach Genre, Tag, Autor, Serie, Format, Bewertung und Status\n- Manuelle und intelligente Regale\n- Bücher, Regale, Serien und Ordner mit anderen Benutzern teilen\n- Massenbearbeitung und Upload per Drag-and-drop\n- Dashboard-Widget und OPDS-Katalog für E-Reader-Apps\n\n**Bearbeiten**\n- Metadaten, Cover, Kapitel, Seiten und Inhaltsverzeichnis\n- Umbenennen und in Ordner einsortieren nach Muster\n- Comics zwischen CBZ, CB7, CBT und EPUB konvertieren\n- Calibre-kompatible Sidecar-Dateien lassen die Buchdatei unverändert\n\n**Voraussetzungen**\nCron für Hintergrundjobs wird empfohlen. 7-Zip oder bsdtar auf dem Server ist optional und ermöglicht die serverseitige Verarbeitung von CBR und CB7.\n\nDie App ist in der Beta. Der Editor verändert Dateien, daher ist ein Backup der Bücher sinnvoll."},"en":{"name":"E-Book Reader","summary":"Read, organise and edit e-books (EPUB, MOBI, AZW3, FB2, CBZ, CBR) in Nextcloud","description":"Library, reader and editor for e-books and comics. Your books stay ordinary files in Nextcloud. The app indexes them and syncs your reading position across devices. No extra container or external service needed.\n\n**Reading**\n- EPUB, MOBI, AZW3, FB2, CBZ, CBR, CB7, CBT\n- Opens from the Files app, paginated or scrolled, light, sepia and dark themes\n- Comics as single or double pages, right-to-left for manga\n- Highlights, notes and bookmarks, exportable as Markdown\n- Large files open fast: pages and chapters are streamed\n\n**Library**\n- Cover grid or list with \"Continue reading\" and series progress\n- Filter by genre, tag, author, series, format, rating and status\n- Manual and smart shelves\n- Share books, shelves, series and folders with other users\n- Bulk editing and drag-and-drop upload\n- Dashboard widget and OPDS catalog for e-reader apps\n\n**Editing**\n- Metadata, cover, chapters, pages and table of contents\n- Rename and sort into folders by pattern\n- Convert comics between CBZ, CB7, CBT and EPUB\n- Calibre-compatible sidecar files keep the book file untouched\n\n**Requirements**\nCron for background jobs is recommended. 7-Zip or bsdtar on the server is optional and enables server-side handling of CBR and CB7.\n\nThe app is in beta. The editor modifies files, so keep a backup of your books."},"es":{"name":"Lector de libros electrónicos","summary":"Lee, organiza y edita libros electrónicos (EPUB, MOBI, AZW3, FB2, CBZ, CBR) en Nextcloud","description":"Biblioteca, lector y editor de libros electrónicos y cómics. Tus libros siguen siendo archivos normales en Nextcloud. La aplicación los indexa y sincroniza la posición de lectura entre dispositivos. No requiere contenedores ni servicios externos.\n\n**Lectura**\n- EPUB, MOBI, AZW3, FB2, CBZ, CBR, CB7, CBT\n- Se abre desde la app Archivos, paginado o con desplazamiento, temas claro, sepia y oscuro\n- Cómics en página simple o doble, de derecha a izquierda para manga\n- Subrayados, notas y marcadores, exportables como Markdown\n- Los archivos grandes se abren rápido: páginas y capítulos se cargan por partes\n\n**Biblioteca**\n- Cuadrícula de portadas o lista con \"Seguir leyendo\" y progreso por serie\n- Filtros por género, etiqueta, autor, serie, formato, valoración y estado\n- Estanterías manuales e inteligentes\n- Comparte libros, estanterías, series y carpetas con otros usuarios\n- Edición masiva y subida con arrastrar y soltar\n- Widget para el panel y catálogo OPDS para apps de lectura\n\n**Edición**\n- Metadatos, portada, capítulos, páginas e índice\n- Renombrar y ordenar en carpetas según un patrón\n- Convertir cómics entre CBZ, CB7, CBT y EPUB\n- Archivos sidecar compatibles con Calibre que no modifican el libro\n\n**Requisitos**\nSe recomienda cron para las tareas en segundo plano. 7-Zip o bsdtar en el servidor es opcional y permite procesar CBR y CB7 en el servidor.\n\nLa aplicación está en beta. El editor modifica archivos, conviene tener una copia de seguridad."},"ja":{"name":"電子書籍リーダー","summary":"Nextcloud で電子書籍 (EPUB、MOBI、AZW3、FB2、CBZ、CBR) を読み、整理し、編集できます","description":"電子書籍とコミックのためのライブラリ、リーダー、エディターです。本は Nextcloud 上の通常のファイルのままです。アプリがインデックスを作成し、読書位置をすべての端末で同期します。追加のコンテナや外部サービスは不要です。\n\n**読む**\n- EPUB、MOBI、AZW3、FB2、CBZ、CBR、CB7、CBT\n- ファイルアプリから開けます。ページ送りまたはスクロール、ライト・セピア・ダークテーマ\n- コミックは単ページまたは見開き、マンガ向けの右から左への表示\n- ハイライト、メモ、ブックマーク。Markdown でエクスポート可能\n- 大きなファイルも高速表示。ページと章を順次読み込みます\n\n**ライブラリ**\n- 表紙グリッドまたはリスト、「続きを読む」とシリーズの進捗\n- ジャンル、タグ、著者、シリーズ、形式、評価、状態で絞り込み\n- 手動の本棚とスマート本棚\n- 本、本棚、シリーズ、フォルダーを他のユーザーと共有\n- 一括編集とドラッグ＆ドロップでのアップロード\n- ダッシュボードウィジェットと電子書籍アプリ向け OPDS カタログ\n\n**編集**\n- メタデータ、表紙、章、ページ、目次\n- パターンに沿った名前変更とフォルダー整理\n- コミックを CBZ、CB7、CBT、EPUB 間で変換\n- Calibre 互換のサイドカーファイルで本のファイルはそのまま\n\n**要件**\nバックグラウンドジョブには cron を推奨します。サーバー上の 7-Zip または bsdtar は任意で、CBR と CB7 のサーバー側処理に使われます。\n\nこのアプリはベータ版です。エディターはファイルを変更するため、本のバックアップをおすすめします。"},"fr":{"name":"Lecteur de livres numériques","summary":"Lisez, organisez et modifiez vos livres numériques (EPUB, MOBI, AZW3, FB2, CBZ, CBR) dans Nextcloud","description":"Bibliothèque, lecteur et éditeur pour livres numériques et bandes dessinées. Vos livres restent de simples fichiers dans Nextcloud. L’application les indexe et synchronise votre position de lecture entre vos appareils. Aucun conteneur supplémentaire ni service externe n’est nécessaire.\n\n**Lecture**\n- EPUB, MOBI, AZW3, FB2, CBZ, CBR, CB7, CBT\n- Ouverture depuis l’application Fichiers, en pages ou en défilement, thèmes clair, sépia et sombre\n- Bandes dessinées en page simple ou double, de droite à gauche pour les mangas\n- Surlignages, notes et signets, exportables en Markdown\n- Les gros fichiers s’ouvrent vite : pages et chapitres sont chargés au fil de l’eau\n\n**Bibliothèque**\n- Grille de couvertures ou liste avec « Continuer la lecture » et progression des séries\n- Filtres par genre, étiquette, auteur, série, format, note et état\n- Étagères manuelles et intelligentes\n- Partage de livres, d’étagères, de séries et de dossiers avec d’autres utilisateurs\n- Modification en masse et envoi par glisser-déposer\n- Widget de tableau de bord et catalogue OPDS pour les applications de lecture\n\n**Modification**\n- Métadonnées, couverture, chapitres, pages et table des matières\n- Renommage et rangement dans des dossiers selon un modèle\n- Conversion des bandes dessinées entre CBZ, CB7, CBT et EPUB\n- Les fichiers annexes compatibles Calibre laissent le fichier du livre intact\n\n**Prérequis**\nCron est recommandé pour les tâches d’arrière-plan. 7-Zip ou bsdtar sur le serveur est facultatif et permet de traiter les CBR et CB7 côté serveur.\n\nL’application est en bêta. L’éditeur modifie des fichiers : conservez une sauvegarde de vos livres."},"ar":{"name":"قارئ الكتب الإلكترونية","summary":"اقرأ الكتب الإلكترونية (EPUB وMOBI وAZW3 وFB2 وCBZ وCBR) ونظّمها وعدّلها في Nextcloud","description":"مكتبة وقارئ ومحرّر للكتب الإلكترونية والقصص المصوّرة. تبقى كتبك ملفات عادية في Nextcloud. يفهرسها التطبيق ويزامن موضع القراءة بين أجهزتك. لا حاجة إلى حاوية إضافية أو خدمة خارجية.\n\n**القراءة**\n- EPUB وMOBI وAZW3 وFB2 وCBZ وCBR وCB7 وCBT\n- الفتح من تطبيق الملفات، بالصفحات أو بالتمرير، مع مظاهر فاتحة وسيبيا وداكنة\n- القصص المصوّرة بصفحة مفردة أو مزدوجة، ومن اليمين إلى اليسار للمانغا\n- تمييزات وملاحظات وعلامات مرجعية، قابلة للتصدير بصيغة Markdown\n- تُفتح الملفات الكبيرة بسرعة: تُحمَّل الصفحات والفصول تدريجيًا\n\n**المكتبة**\n- شبكة أغلفة أو قائمة مع «متابعة القراءة» وتقدّم السلاسل\n- تصفية حسب النوع والوسم والمؤلف والسلسلة والصيغة والتقييم والحالة\n- أرفف يدوية وذكية\n- مشاركة الكتب والأرفف والسلاسل والمجلدات مع مستخدمين آخرين\n- تعديل جماعي ورفع بالسحب والإفلات\n- أداة للوحة المعلومات وفهرس OPDS لتطبيقات القراءة\n\n**التحرير**\n- البيانات الوصفية والغلاف والفصول والصفحات وجدول المحتويات\n- إعادة التسمية والفرز في مجلدات حسب نمط\n- تحويل القصص المصوّرة بين CBZ وCB7 وCBT وEPUB\n- ملفات مصاحبة متوافقة مع Calibre تُبقي ملف الكتاب دون مساس\n\n**المتطلبات**\nيوصى باستخدام Cron للمهام الخلفية. وجود 7-Zip أو bsdtar على الخادم اختياري ويتيح معالجة CBR وCB7 على الخادم.\n\nالتطبيق في مرحلة تجريبية (بيتا). يعدّل المحرّر الملفات، لذا احتفظ بنسخة احتياطية من كتبك."},"tr":{"name":"E-Kitap Okuyucu","summary":"Nextcloud’da e-kitapları (EPUB, MOBI, AZW3, FB2, CBZ, CBR) okuyun, düzenleyin ve yönetin","description":"E-kitaplar ve çizgi romanlar için kütüphane, okuyucu ve düzenleyici. Kitaplarınız Nextcloud’da sıradan dosyalar olarak kalır. Uygulama bunları dizinler ve okuma konumunuzu cihazlarınız arasında eşitler. Ek bir kapsayıcı veya harici bir hizmet gerekmez.\n\n**Okuma**\n- EPUB, MOBI, AZW3, FB2, CBZ, CBR, CB7, CBT\n- Dosyalar uygulamasından açılır; sayfa sayfa veya kaydırmalı; açık, sepya ve koyu temalar\n- Çizgi romanlar tek veya çift sayfa, manga için sağdan sola\n- Vurgular, notlar ve yer imleri; Markdown olarak dışa aktarılabilir\n- Büyük dosyalar hızlı açılır: sayfalar ve bölümler akış halinde yüklenir\n\n**Kütüphane**\n- “Okumaya devam et” ve seri ilerlemesiyle kapak ızgarası veya liste\n- Tür, etiket, yazar, seri, biçim, puan ve duruma göre filtreleme\n- Elle oluşturulan ve akıllı raflar\n- Kitapları, rafları, serileri ve klasörleri diğer kullanıcılarla paylaşma\n- Toplu düzenleme ve sürükleyip bırakarak yükleme\n- Pano bileşeni ve e-kitap uygulamaları için OPDS kataloğu\n\n**Düzenleme**\n- Üst veri, kapak, bölümler, sayfalar ve içindekiler\n- Kalıba göre yeniden adlandırma ve klasörlere ayırma\n- Çizgi romanları CBZ, CB7, CBT ve EPUB arasında dönüştürme\n- Calibre uyumlu yan dosyalar kitap dosyasına dokunmaz\n\n**Gereksinimler**\nArka plan işleri için Cron önerilir. Sunucuda 7-Zip veya bsdtar isteğe bağlıdır ve CBR ile CB7 dosyalarının sunucuda işlenmesini sağlar.\n\nUygulama beta aşamasındadır. Düzenleyici dosyaları değiştirir, bu yüzden kitaplarınızın yedeğini alın."},"fa":{"name":"خواننده کتاب الکترونیکی","summary":"کتاب‌های الکترونیکی (EPUB، MOBI، AZW3، FB2، CBZ، CBR) را در Nextcloud بخوانید، سازمان‌دهی و ویرایش کنید","description":"کتابخانه، خواننده و ویرایشگر برای کتاب‌های الکترونیکی و کمیک‌ها. کتاب‌های شما همچنان فایل‌های معمولی در Nextcloud می‌مانند. برنامه آن‌ها را نمایه‌سازی می‌کند و موقعیت مطالعهٔ شما را میان دستگاه‌هایتان هم‌گام می‌کند. به هیچ کانتینر اضافی یا سرویس بیرونی نیازی نیست.\n\n**مطالعه**\n- EPUB، MOBI، AZW3، FB2، CBZ، CBR، CB7 و CBT\n- بازکردن از برنامهٔ فایل‌ها، صفحه‌به‌صفحه یا با پیمایش، با زمینه‌های روشن، سپیا و تیره\n- کمیک‌ها به‌صورت تک‌صفحه‌ای یا دوصفحه‌ای و برای مانگا از راست به چپ\n- برجسته‌سازی‌ها، یادداشت‌ها و نشانک‌ها، قابل صدور با قالب Markdown\n- فایل‌های بزرگ سریع باز می‌شوند: صفحه‌ها و فصل‌ها به‌تدریج بارگذاری می‌شوند\n\n**کتابخانه**\n- شبکهٔ جلدها یا فهرست، همراه با «ادامهٔ مطالعه» و پیشرفت سری‌ها\n- فیلتر بر اساس ژانر، برچسب، نویسنده، سری، قالب، امتیاز و وضعیت\n- قفسه‌های دستی و هوشمند\n- اشتراک‌گذاری کتاب‌ها، قفسه‌ها، سری‌ها و پوشه‌ها با کاربران دیگر\n- ویرایش گروهی و بارگذاری با کشیدن و رها کردن\n- ابزارک داشبورد و کاتالوگ OPDS برای برنامه‌های خوانندهٔ کتاب\n\n**ویرایش**\n- فراداده، جلد، فصل‌ها، صفحه‌ها و فهرست مطالب\n- تغییر نام و مرتب‌سازی در پوشه‌ها بر اساس الگو\n- تبدیل کمیک‌ها میان CBZ، CB7، CBT و EPUB\n- فایل‌های همراه سازگار با Calibre که فایل کتاب را دست‌نخورده نگه می‌دارند\n\n**الزامات**\nبرای کارهای پس‌زمینه استفاده از Cron توصیه می‌شود. وجود 7-Zip یا bsdtar روی سرور اختیاری است و پردازش CBR و CB7 را روی سرور ممکن می‌کند.\n\nبرنامه در مرحلهٔ آزمایشی (بتا) است. ویرایشگر فایل‌ها را تغییر می‌دهد، پس از کتاب‌های خود نسخهٔ پشتیبان نگه دارید."}},"isFeatured":false,"authors":[{"name":"Felix Kurth","mail":"it@wasmitleder.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhRWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTE1NDUyWhcNMzcwMTE0MTE1NDUyWjAWMRQwEgYD\nVQQDDAtlYm9va3JlYWRlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMxNdSo0brvupEie/LJaZIYKleIouWcBb8zcarRaK9qHX8ly8RHGYfeK8pLDgfAS\nY4nicPL1GOhoOc2sjMjmmfogrFRjYqx9OVaTvpn1CypttR+sHC1J3q3g2J9Hxc84\nk042h2JyP4y6sS90ySs2aj3bvbiqDEgXderoc4KZS+CGJQWJqsa+dX2pik/075O5\n/fqKLnGzCmC5Zmt1DMIdO3lKcdtukLQtONDeBsUcDTBuoaQ6qC6kpiwTnKlObnx5\nph/h35r8ZeCCoEOdo1i57i5am1vjaoR6DRHyeS9InC9kzaRFKMIx4sva52RF80Ap\nKNuRdhkBgX7I7J72aok09lyMeXYGe0+WgM3/Tb8oFXqdxF6FKJLhB2V+rUsd07DY\nMzwW8v/+5H5wsrJmhAdkdG/ok7ozEj5jsPTvsJDDwNFWVssfHEK+71DsipkU2BfU\n/rAg3HIFj4e60lPBp+c/qn5gGqwc0bDTbjEA4wsad/5cDiZL2oPpJ6tDsKKTICiL\nXXMuNysapG2VdMXbSvjb9F/2Ifcq6VryLzH24ocXyiki45AHoQV4i0IzxYMQx3tI\nrpRAyrRf3uz6uavF5yGhgestYJP3d+fOi3AmeprH6xR1wx28cBxQusmLKwTiNouh\nstpYNkbEQ2rf9nKXP0UtOOx0e+5xwMnN3Tpa0v6pS8ORAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBADz1toNHU4Pd6RMBCu2uoLCMjH/EHbB3A/fwi0V+234A/vd3uiz/\nJPso2Fhl0OUod2lCOXuV/IoaDsXRAzrbgO6ILtwViySxfZxQ9BIQ/jDCmdyknufB\nRXc9h+QZgtK+MWER1Fl/s6HikUzdbZnRbNV6e/yroOcvjVKilqj7m9nP4lI5JwQG\nxNSQuRom5bxuWISjakX4av66RY/+kj8+xTprbRpuSETA8HenmlYnZ8wqcg69QpwY\nbKcJ+nFytI2wx2lHxQddgqzMd67lB1wWy1J8Sm/FHgYDd/WS9V3wjuF/nybGgIgC\ntMNfEF4YX4lFb0iA5tNjmmEUkHfAnoW0Wn0=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"photo_frames","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/jeppester/nextcloud-photo-frames/issues","website":"","created":"2025-04-06T19:05:40.889473Z","lastModified":"2026-09-19T05:11:44.039657Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/jeppester/nextcloud-photo-frames/releases/download/1.9.0/photo_frames.tar.gz","created":"2026-09-19T05:11:44.008023Z","licenses":["agpl"],"lastModified":"2026-09-19T05:11:44.088371Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"IKgNPEotZH5a5JlFpk/YHJW24h7Z+gIhqHMva73PpTjzh4ie9mw6uh9v/KJD5Lu3\nJQWDMA1F0AgeDZgxV2CWJtgcNgBJL4ffWOGq00ClYzXf3HdUnZJYm136ANUVtEbs\nJY3r5BTf+tdM1taJsf0FE1kmHXWmnpEwymVkpvqc+cRmsizJ8URg2LglrvdIkgU0\nwqVnolkZbdnQixgCGgjTa6fKFcw3DyZ/RWHWI1wOnqPbvP+cbiw22sH65n6Qmxpz\n/FS2ENLJZndzvi2PoXDnaQStFiGOEVikFdrKP+koiGrI9GcqpJEkupW2buVZr6I9\n92liCeRfzoR543tzzP5ItxxPvv5Zj2tf5ZWTCKCTvhnZWiOGpaPkw+5B2mOxjlAI\nCNTqolHGfjdeXn1FAXhnkz9rgKYWKwhsJDTCJvEg7ihrC0ETVWr5aY1DMC8hGPMz\nqaGJnPgN4BUjCp87zFfEfmy/fowY1/GVI4oLLhnHrYkc1cbPUYk9CXAdXSSHZdy6\n5sbeCr0UvR9MWTz9nksN2Skn8UghAZGBzBacwbDbKf24M5Rm97nahJAFgMrDWa6u\nA9XjmloQMxTRC02k2EVAAo1uAbUggApgDwlmGJ95Ahy32DgiwRRRwkGG4Syq9rji\nP1vRn8qJ3B2ASj6KVPoDauEAm9qOFJa2MPdrTAcJxiQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vamVwcGVzdGVyL25leHRjbG91ZC1waG90by1mcmFtZXMvbWFzdGVyL2FwcGluZm8vc2NyZWVuc2hvdC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Photo Frames","summary":"Turn any screen with a browser into a neat photo frame","description":"Generate easily sharable photo frame URLs for your Nextcloud albums.\n\nThe possiblities are endless:\n\n- Turn any android device into a smart photo frame (with the help of a kiosk browser)\n- Co-create photo frames with Nextcloud's collaborative albums\n- Share photo frames across households"}},"isFeatured":false,"authors":[{"name":"Jesper Sørensen","mail":"jeppester1@gmail.com","homepage":"https://jsorensen.dk"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhKeMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNDA0MDczMTIxWhcNMzUwNzExMDczMTIxWjAXMRUwEwYD\nVQQDDAxwaG90b19mcmFtZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCWUqSmYsAADmxVf1MtpAmPqr4qKp9trwJ/lO0x9O6KKQkWY4Achts7MUyFHKg1\nI9tElGaBftyYhz8QTc7lc68FN0eLeOGqWxwVYSeNCN/pp0o0be4hDCqskyQcYPzQ\nc6Mpc1AKqkH9eShEsj6z4zpje7qhslnyO95JRebIE65zDuLZ8G3knhAWkZVzmoKM\n9N+/tchftlvqjNWMzuNPoxFFmEFsh5FlPN3KLGwO62dicOCD915vno/Lg0r6R3jJ\nLj2LtryeUfo/ExmpzFDVML1jRfu+bApqTMVSB6zq50IlO0UbmsTSAubGwScTfKIa\nRKsDZf9PdqSXmtqdnFoui6mR4QPimjjE8w0CMX/XWat8UHkZp+Rzoh7BPUUsxIGV\n22hch0JyyfUmdAwKy2PbT88ls/Z5jY2Jfsc2jivRRme/1XJSOFBnW8os/kei0oHn\nVWBMLAJzTooKc1vy559dLXnDu9aP1QtD1Fm4Hk1qejZPZ9xjnO0OOUreUPhpVLAI\na5TDfw90IJOWd0bg4t8uAQZUOQnWw6m0NAX2omymynz0RLjks1Q3ZIZcjY8ThaqQ\nxhFH1NLhHoiJhc3U7DYHvSU9/HRs/IMO9JgnML85EU8wp0zMXnQTVx2+AICiSUUH\nHquPdWXbcsuVXEt0ZNG+NLyHD9fF3qUB76zB6WV5Xt7cRwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBUY9siI5BU2fU9uWw5HkAZr5wR3kcY7LR8FaUkOtH0M6hGVKEu\nAXRj3+Bwx+XQ0bWoq2Wm2Abi9xF1hoowbi4NpfiTWUCRr7lHtNCPT+kcBqlyjI9D\nM4r697qnNsVxxZL3Ntcp/5+ESCZcNuVexIgJv/+Lyv15zC9fWs0NUIbfNw0OhlsN\nHWEMlnT3XrCuMqe5GgA6rcwAW5RYKKfxqV7DAil2Y+dfl2D/bm89ZV0NE+pjtWV7\noDfbp+EARUOX54yl+1mjxSP2Kv+PA3AT+N1RpRYZJld60m3+wdPVHdEA3lMd30Dz\nGeKG3ZHXNxucEUGwYC885nG4xaAX2le061lH\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"csp_editor","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://framagit.org/framasoft/nextcloud/csp_editor/issues","website":"https://framagit.org/framasoft/nextcloud/csp_editor","created":"2021-01-19T08:45:22.175096Z","lastModified":"2026-09-14T07:21:17.018078Z","releases":[{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://packages.framasoft.org/projects/nextcloud-apps/csp-editor/csp_editor-2.1.0.tar.gz","created":"2026-09-14T07:21:17.000116Z","licenses":["agpl"],"lastModified":"2026-09-14T07:21:17.159649Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"FY3f48/MZdekVz3KphHMF+R33IUKfYpn/HLObU01+aNQo+Pq5Yid5nqr6SvTPPbm\npR82J2FbrpAnVtTA0XOudb7wH7U7NnQ7+xyxxtThvzAOr8maM0mBGnKHdpOlpoc6\niTeoj2Ow0J3zD1nAcHOQcrSVEiP7DGal1qAvFLhKp/xigEN1Pfz415xSDrSJE+pn\nokHHvvQ6/5F0lKQLngyejZMewVmgERbLhMTB0sGc17u5PlhGIRX9i0hK9QEnPIZK\nj7JXziAb9afHS8uKIjIQVFgvIDmXaT198YcMSvCRtsuIE7iXrtJ0H3oiOUHNzBAK\nxyOw6PS57jVsgfDRJNFEtP5CklZAzC/RPaFZ+tvlRu6ZDmA0PduPn/NaBGuvIdga\nsG6a0HUiHGgpj0grJY9VxilwSevP0+WQbsnXCxJo3v0VXAs5soet38A61PPC8TCz\nMB/t3NwZPMvkX5osREBvJW6tI9F4OohNDvJpseKSHY/07fM7v9buDHp6kAf6uHFn\n7v+NJnoBz4T4FV1iwX+8sz09/I4lx9prxaZ+UU5gkWWkxcVmsm5LS+PMp2JvK6Fl\n3JwERpSr4ZvY7xvnmC4n+alM42mz32VLMWHS8F7p7aWVn+w5FYH8Q3UatL9mrWNW\nfWD8QGxSpDlVGdW4+6e+XKuVw9DhbT0fdZ0UrxFXwZc=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Changed\n\n- Dependencies updates\n\n### Removed\n\n- Support for Nextcloud 32"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"CSP Editor","summary":"An app to edit Nextcloud's default CSP policy","description":"# Description\n\nThis app allows to edit Nextcloud's default CSP policy."},"fr":{"name":"Éditeur CSP","summary":"Une application pour éditer la politique CSP par défaut de Nextcloud.","description":"# Description\n\nCette application permet d'éditer la politique CSP par défaut de Nextcloud."}},"isFeatured":false,"authors":[{"name":"Thomas Citharel","mail":"nextcloud@tcit.fr","homepage":"https://tcit.fr"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhFjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMTExMTMwMTM3WhcNMzEwNDE5MTMwMTM3WjAVMRMwEQYD\nVQQDDApjc3BfZWRpdG9yMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nrQu2tKRAeR0iMr/SbZiCDWHx5pZc2lcZTbb1HPJ6TwUUDkWrAxKoEytjft8HiJjD\nyPnYOo35P/vKMNZ+sVkiYX2EDROHnNYpAoJ9jaNVLi8Lbbv108DLneYhHDTZNYP7\nq4GwPOs/RjznCqCjVwKIBt5WH28sPeCF8pgcrRaHsBa+dtYzQ8uJmA+Uvs2WLfJt\n7cmlh2iWe9/6jGsD2j7/Q1sfTPMEUpJPedW0cUhVIOJdcUAz/xLAPtpsyWAIipYM\nnVsQ31Wmk0Zm083UCippekrHKu0MBwwKOGYLZIAIPaQ5XEu9CMzUITZ3xAolaQkP\nOYAUFyHXRnwsWOfi7qp2gIp+ABcsVeMgGZrrPjyq5ZPpVLDn6cGCvvGmUAnjeMRc\nL0U3BKZQkFYODFEyQmOtx46oppZhTOPMlzkbIPJGezFgG27bAXbPl0ypHQ9667ba\nPyWWv9e2NzRMzcqimQ99N5TkGSec4mUJ1UKGhLD9cGxpG+cH6meyARpwyvP1ewyR\nQDuggsvgZmsCP9gWiiJdoihkbwT4iN5aPuMWIHqNZ4KkYkcAfEe4B7RbHSoFzP2p\nGX8PtPz2/mGoIOUt/on3V2RFE7WPKkdtwg8kNwiZ30/p8aRxEC2kR2yh/8FgoOK4\nD2dC5Gkqg+uUIUEHmktKvFwM+RVoknDoon1/DXlLFQcCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAJxOAOwBteFP8Vdu3xpIH8iqWcjsdaHf13FeAv+XjZGRbl/blptxV\nK2n/g1y/4WfsbD6aJ/HQOSWSLm0a5wG2//R8J7OkdMPRs3sN8xi/79iKyTjn/XKh\npqVQeYTYhwDJStShwtogeyqoO3XT5xJQosEB1FAaBznUckNgqcS765fJCKQLCoHH\nR0aZLfrxwgkuL1LzT8FB5JOGF+lO76vFre07WYrZlGDa74zOpjnvwxEICahos9O4\n9PFJ+LOEzdkO9fDLMemqIQlB5lxQ7IFaHbv2LWYSST/26KVZ8180kNpY4CsdpJY/\nHiB/91iV9HFspvPl8eK2APJTXKCqGxDGAg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"side_menu","categories":["customization"],"userDocs":"","adminDocs":"https://deblan.gitnet.page/side_menu_doc/","developerDocs":"https://gitnet.fr/deblan/side_menu/src/branch/master/README.md","issueTracker":"https://gitnet.fr/deblan/side_menu/issues","website":"https://gitnet.fr/deblan/side_menu","created":"2020-04-07T11:28:39.280192Z","lastModified":"2026-09-18T16:36:31.461178Z","releases":[{"version":"6.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://gitnet.fr/deblan/side_menu/releases/download/v6.2.0/side_menu_v6.2.0.tar.gz","created":"2026-09-18T16:36:31.429025Z","licenses":["agpl"],"lastModified":"2026-09-18T16:36:31.520499Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"A/5caOahEeW63rViZZdFXCFp3Klj+x37hlinfFYfMhtUgL6/WpzAaO2AebLJ9HYJ\n3FJCXHmCqHjv6eg4eHNO/h2jL1hQ3IIyKVh5yirz9hgT2yvfgS7G7lrRP64rmJG6\n7gFmJWvBssYm1hgundPm1nN//zjt/5LbtQ78cCMPqh0RiFVO7s2FjfXzvSKQZtJr\nkaajv9SNUS82JWx40DW3onPF+4wiezfDS75pHyl95rJDH5u7wgKy3pnAHsWnbc+Q\nBn9EYUdUCCJ+sasmvp7zV1G1axTrG5/bUOdQcIR+K71EnP3ssjwZBkkmu9X6dHXv\nsst6r3SNS6zumCFCQA4or5zSdl6WuWV4T0UI774l/Jjc7ejmZXo6y3JjHjdXOcrd\nT5IjuL9QMy5HSrIaqYzJMnCTNqwWeV/hXVlE9aRNDwgvDkN0ekamt+TCLqBcpHnW\nbOQ1VRJEeXoLk/DJr0BVZWjpiRoEovJV1k/IwIKXk0/NnOCxQJuIHcFX3Uchk95X\n6/a57cBpF1I7difns+qsiQ5uBarG0DT13/rpnVyKRGPvSfnRN3mR8nQKubb9teuR\n3Yrlemcu2/QgfbUxMk4XuZ1qjtVq/dtQAVL3yN+SCdaukE8wNOGZ3VHObyU9AINw\nOLujwRaO0nW4a7SHAQyMLwslhopkW5CphzHqYaX0+hE=","translations":{"en":{"changelog":"### Added\n\n- feat(app): add compatibility with Nextcloud 35\n\n### Fixed\n\n- fix #510 #417: [Bug] Styling of the icon labels and overflow icon is not correct"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uYzE5X2RlZmF1bHRfbWVudS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9hZG1pbl9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uMTlfYmlnX21lbnUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uYzE4X21lbnVfYWx3YXlzX2Rpc3BsYXllZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uYzIwX2JpZ19tZW51X3Jlc3BvbnNpdmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9wZXJzb25hbF9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uYzI1X2JpZ19tZW51LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRuZXQuZnIvZGVibGFuL3NpZGVfbWVudS9yYXcvYnJhbmNoL21hc3Rlci9zY3JlZW5zaG90cy9uYzI1X2RlZmF1bHRfbWVudS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Custom menu","summary":"Modify the display of the menu.","description":"Custom menu allows you to modify the position of the main menu by creating a panel on the left of the interface or with a big menu on the top.\nYou can also define apps that must be displayed in the top menu. Fully customisable.\n\nThis application is rather suitable for instances that activate a lot of applications.\n\nUse the shortcut `Ctrl`+`o` to open and to hide the side menu. Use `tab` to navigate.\n\nYou can customize colors depending of the theme.\n\nTo report a bug or request a feature, please open an issue.\n\nRequirements:\n\n* PHP >= 8.1\n\nIf you like this application and if you want to support the development:\n\n* [Buy me a coffee](https://www.buymeacoffee.com/deblan)\n* [Donate with liberapay](https://liberapay.com/deblan)\n* [Leave a comment](https://apps.nextcloud.com/apps/side_menu#comments)\n\nNotice\n------\n\nBecause I believe in a free and decentralized Internet, [Gitnet](https://gitnet.fr) is **self-hosted at home**.\nIn case of downtime, you can download **Custom Menu** from [here](https://kim.deblan.fr/~side_menu/)."}},"isFeatured":false,"authors":[{"name":"Simon Vieille","mail":"contact@deblan.fr","homepage":"https://www.deblan.fr/"}],"ratingRecent":0.5,"ratingOverall":0.8888888888888888,"ratingNumRecent":0,"ratingNumOverall":18,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhEMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDA3MTEwMTQyWhcNMzAwNzE0MTEwMTQyWjAUMRIwEAYD\nVQQDDAlzaWRlX21lbnUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCx\nWJAsehTattESEWlnaADEWvk0D3T/AFbU8SWUHG8F1uFXNFsNyKds2yo0OqQrKfiE\n58lbtJ4mloAy4y/XTtPZ9S/RIYUgTtphmkGxcwaHbUjIzV5TiD5Zqit/oSNawR8C\nUmGAU1M63JmkNML+raWkBw/SJ3EpID5kSpM/PfA9y4UhU68TTASGPtfKdyPrfgB3\nEnYmq0GuQBiwGlk71sODA+xyd280gGxXQu2vrKm1bt4dUWVMZHJCAMZTLGBRRuct\n3fFurfPMWqwyu5JDN6qJIUDcLIXiyB54Hxu6jMEiXLZeq1lHwXk/p2BvjYyh8Vxn\nz/5cTPOvhUe0K2ww9V9+MFwnKQm6Hi7Q+DgFWtmRavj8OQPiXr5/vgxycEDDQrk6\n3gTgXIU7Zoq0MxABZ0B3xrZvgEggZfSfrwaF755c/v93T0djibJhw2dqC9CBOS8t\nJbPi6rqVAVdnbXgFkrMPvZ0AsFGIMiLvqiERB3NzX8Mr0j7wmpfJcc+svggQVbUe\nTFegXmGPMsJOSENMmD7U9LdpZaBHveL+gNeoXzTBHR3KcXcokq3dBGEtqUDo8Un/\nLflcInH4FkWVSgdKK2TjDQRaAox0U2mk72cuRYVemcQLAYROA0ZvH4Di9qJsDa3s\nE2RYUeQ3C2g2BwxnryowXBZpAE8bsYYZDRUp86aWqwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAReHvFs2d23q+sJ19mDgFPT2O80wLmoYHD7YZVMalzn5uKSikPqNae\nOVUq/MDcUCPj6N9unSI/o9k/iLl1AFZPGpH/96eXJNtypJSgadDYfot5Cn2JB7bv\nH+o+uLPAStvgzQ3pTmNlwRaiMK6Gh8pTLTxllCb5E/UKzcfJchqI0MFsy0Fp3kVh\nuvvQKF9VuSNzwTk+AbYcAUzGXgVJN8aFlZNORoYa1iA7/5THzaAl6pG/KZYa9QWe\n5FA1OlH13B+O7Rvp0NnuiIHnfCRyH/c05pcBSe9s4qKviua4MBDSKFdTWPahHGp1\nVwfFy5DO1HDYuL+m5+IVxd7f2Hamxhjs\n-----END CERTIFICATE-----","discussion":"https://matrix.to/#/!TFPucDATKODpHNVAtu:neutralnetwork.org?via=neutralnetwork.org"},{"id":"ticketcheck","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues","website":"","created":"2026-10-02T20:36:10.783967Z","lastModified":"2026-10-19T09:46:15.066337Z","releases":[{"version":"2.5.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.5.0/ticketcheck.tar.gz","created":"2026-10-19T09:46:15.056324Z","licenses":["agpl"],"lastModified":"2026-10-19T09:46:15.194607Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"W0lt8KffdEX7yjj0Ejae0tvC0dVwrixj++j9lRhZQCuguCiYaJE65ZXr4YIWHOcU2+yd+47eFBOVgrxoByoY13d10Jajwv8O/1i1nusIgGqcPRfG4A6y/xvnAu5MrYcTiNSgLPYt5ZGAUJVqPXos6d09GOGOUXdq7qZpM77b8X3xQuzFsfYcwmmv66WimA/9WaXFh3uYMKUFDTwo29+30nnSz6CSLmK8KdjC7tsKHk79PqO9p8mdJGL13y5wiRyiS2xhoTYnBEkBp0HdCinYqu1Dd00yqj1WQu9yAJg0rUkamX4+LnRibLsw32FLO2saz36xyedebjiKmENTNn9ymaOMWLHhQZdwxP90dvKrVkPf3vOHY23whp12XAltOT46GvjSW7scVE+QVn7Vg/lbmOmlbN16bTku8M2XSfaXig3uLIzu2uGVqBho1TsOavXdUlBPzXSUUUhVeSrXavT6zSMAZikd0GZtxlMyp1bwU+eFARPcmsvWCyUa8/KSs6opCVk7jdb2YUJ0OcCvvdDKcJgU0iEgKv2IkLOYJUfbFznEGTUZx1yJUnL+NPYMUSEoO6FMlj4xKb4WnOrxgnMENmhZYG55hqu/g9SlHaswVX7TAtANcUr6zH1UyfN4+Y2eWw45tujkwb8HF99HEep8kjKvC1Ya/gwTGNnWtdySIiM=","translations":{"en":{"changelog":"### Added\n\n- **Dynamic ticket categories:** categories are now managed entities (DB-backed, editable in settings) instead of a fixed list — administrators can create, rename, and reorder them per workspace.\n- **Token-bound thread anchoring for inbound replies:** outgoing ticket mail now stamps HMAC-bound `Message-ID`/`References` roots, so replies whose plus-tag or subject were mangled in transit (gateways, Exchange rewriting, forward-then-reply) still land on the right ticket — while a fabricated `In-Reply-To` is classified `ignored_bad_token`, never a comment.\n\n### Security\n\n- **SSRF TOCTOU on mail dialers:** IMAP/SMTP connections now validate the peer IP after dialing, and private-host dial-out stays behind the explicit opt-in on all dial sites.\n- **Strict integer route params:** all 84 integer-id route parameters carry `\\d+` requirements — malformed ids (`9x`, `2e3`, `3.5`, `%209`, …) are rejected at routing with 404 instead of reaching int-typed controller params.\n- **CSV formula guard completed:** the export guard now also covers the VT (`\\x0B`) lead marker, completing the `= + - @ TAB CR VT` set.\n\n### Fixed\n\n- **Inbound mail save→test→enable orchestration:** a stored `tls` vocabulary now maps to STARTTLS on connect (previously detected endpoints were persistable but undialable); the truncation marker survives quote/signature stripping; the UID cursor is preserved on re-enable when `UIDVALIDITY` is unchanged; enable is gated on a test that covers the saved config.\n- **Write-failure honesty:** settings rename inputs now revert and announce failure on 422/500 instead of leaving stale text behind; same hardening for KB category rename/reorder.\n- **Uniform API error envelope:** `/api*` and `/companion/api*` return a consistent JSON error envelope on 500 instead of an HTML error page.\n- License \"valid until\" dates now resolve to the local calendar day.\n- Portal-home tickets table no longer clips at the screen edge.\n- shared e2e instance-lock harness\n- app-feedback footer parity + contract test sync\n- e2e: self-healing fixture for inbound-mail settings spec\n- close verify:ui gate debt + 414px matrix coverage\n- nh-04: token-bound thread anchoring for inbound replies\n- atlas round2: atomic stale-claim reclaim + mobile routing table + flake hardening\n- a11y: wrap inbound routing table in tc-table-wrap + add section to a11y matrix\n- inbound-mail: close critic advisories + align e2e origin\n- pin int-id route params \\d+; CSV guard covers VT\n\n- Tokenized Reply-To (`+{ticket}-{token}@`) binds replies to the ticket's customer address; replies from other addresses are triaged, not merged.\n- Inbound attachment ingestion with size/count/type validation, wire-size accounting, and quarantine reporting in the ticket body.\n- Outbound mail through the configured mailbox SMTP (AUTH LOGIN / XOAUTH2, STARTTLS/SMTPS) when enabled — replies then land back in the watched mailbox.\n- Recipient-key routing: plus-tag or alias addresses map inbound mail to a project and category.\n- New settings sub-page \"Inbound mail\" with save → test → enable flow, OAuth connect for Google/Microsoft, and live status (last sync, backlog, errors).\n- Security hardening: TLS verification on by default, private-host dial-out behind an explicit opt-in, no-reply/auto-responder suppression on all outbound, dedupe claims in `helpdesk_inbound_msgs`, exponential backoff on connection errors, 30-day retention purge.\n\n### Fixed\n- Guest customers can now open tickets that were created by inbound email (portal view no longer 404s on `created_by` markers).\n\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)."}},"signatureDigest":"sha512"},{"version":"2.4.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.4.0/ticketcheck.tar.gz","created":"2026-10-12T07:56:45.897381Z","licenses":["agpl"],"lastModified":"2026-10-12T07:56:45.997610Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"PFQ+Jt1MyH2eT3wTleWAVLBuPnKn4txM7oFcQRF4eMMhfUVGi5ICZgHN1Qg/ygCKWsPDjZ6j2I78dmTbkyxm4IJZBedtWE6JWaSrVvhDTMHMUhplyItL3qQnVyX91XjHlrm/AUJLUb67G8fUvTaX8/33qJxbLtyl7aSNdmIO/nQ3Y7y7temKSoExminzNeXsysDxy8+RXBHMtqpLx9h2FJqtJXii1M+XSdnwmcAGptV6TbUyuHMFzcph31ADAvub8NRRrDf8MPKI2RQmtaOaTiumQYpeWpuw3ewdXhJDTIU5+ig15Ia3VFyJlYv5aBazVdBrlVpiWTwvdBR2sixl602KzAmXz7yUlzYeSVrAKcK/TkZvSwBvumZYBw91t0dwQyrGSfvx7h7Vc1myHMArFbNqkPre/vnk98pVJvfFQtznmXr2N+3P30SI8vNeaZOpHNPS+tBc57TWhaZ1tPuB/6icqshIHIYcbJzspwEhQ8qt2oebyWKYfW8bMddYrY63HSZYi+tcBvWgOC5l5qC96M8TPrfm+tQIY5hI1qPTGU3Uef0fVFE/j4UAJk2A4sphZnM4Ydl9XpxIPafrgOHyYTOcO1RO3kRXAd+Hhu6Ujwlguy+1g9Fsh+f8ACvUCMhknrF5uH+VzcmDRYZopbD3yyzoiOH+U+iE0mY/GIKIbxg=","translations":{"en":{"changelog":"### Added\n- Inbound email via IMAP polling: connect an existing support mailbox (password or XOAUTH2 for Google/Microsoft) so incoming mail creates tickets or comments without a webhook provider.\n- Auto-create tickets from unknown senders with a configurable policy (create/ignore) and per-sender + global daily caps.\n- Tokenized Reply-To (`+{ticket}-{token}@`) binds replies to the ticket's customer address; replies from other addresses are triaged, not merged.\n- Inbound attachment ingestion with size/count/type validation, wire-size accounting, and quarantine reporting in the ticket body.\n- Outbound mail through the configured mailbox SMTP (AUTH LOGIN / XOAUTH2, STARTTLS/SMTPS) when enabled — replies then land back in the watched mailbox.\n- Recipient-key routing: plus-tag or alias addresses map inbound mail to a project and category.\n- New settings sub-page \"Inbound mail\" with save → test → enable flow, OAuth connect for Google/Microsoft, and live status (last sync, backlog, errors).\n- Security hardening: TLS verification on by default, private-host dial-out behind an explicit opt-in, no-reply/auto-responder suppression on all outbound, dedupe claims in `helpdesk_inbound_msgs`, exponential backoff on connection errors, 30-day retention purge.\n\n### Fixed\n- Guest customers can now open tickets that were created by inbound email (portal view no longer 404s on `created_by` markers).\n\n\nAll notable changes to this project will be documented in this file.\n\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),\nand this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)."}},"signatureDigest":"sha512"},{"version":"2.3.9","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.9/ticketcheck.tar.gz","created":"2026-10-02T20:36:15.494486Z","licenses":["agpl"],"lastModified":"2026-10-02T20:36:15.624463Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"k9DrnOdl4RxHb5rT30e31yDm8VQaZuCbeuLyOTgju9TO7rnKV3H4EHbfEgzSiz2JzxDi5pko4H2QT8Cf6OqMQPcZha8u6rqI37nMpO+RBNB9F1G+4LbQvY3ylxi8w/skrpVIbSMZQVBo764xq0NvtYBU5eQZ5GIwkFfG87cmYTJqf/fbizR1Bw58HA2Teqx4dj+JEKnJqNoOygDE5Ir4HvQoFXH8/ivlynXZ5HQllYod0wSmWM3doXCALU5hVk95cObs9AhDWRkYHmODgUBIw0vfZ7CEz0rmr5Q7MqM/6MMQNkH3OkBDRP4n+WDgFVfNtk+GG54bTJy2zI3y/2tIobaSSXtp/E8qaF67Y5L2SDtlDYtHjFaCzhFgJahdi/pakEasSoYuxbN7k7eFpvAbSh0+c6zF0CzmsJVeSuC77cyuBzgiBtu0uA9aUX8yW+lTUmdAbv7mMgiC0OJxQN5nThBzYoDjyJvlj+SFQGF4GiewhJWc9ovyV1pF7LAPtBj0nUxhOjAGq28A/q3vWMtUpLZGMFaMqCnZrcVlOaySbDr6oOafCssjW6N5oyu5/JhVcLrh7KXEdtq+Ah9CovGVhgnCT555JxOv76q1rX4E6Es3h+6h+DKSva5yp3/bgYa0RkyJDUvRWs2PvZlN/6wQ+kcIZ+ESJQOngIGkOZAg2DE=","translations":{"en":{"changelog":"### Added\n- **Companion idempotency:** companion mutations accept an optional `X-TC-Idempotency-Key` header (or `idempotencyKey` body field) — a replayed key returns the original result instead of creating a duplicate row (lost-200 / offline-queue double-submit protection, 24 h TTL, scoped per user + route). New `tc_idempotency` table via migration `Version4215Date202610020000`, cleanup via `IdempotencyPurgeJob`.\n- Shared field-level error rendering (`js/common/field-errors.js`, `css/common/field-errors.css`): server `fields` error maps now render inline per named control with `aria-invalid`.\n\n### Fixed\n- **Companion auth precedence:** a stale session cookie could shadow a valid `Authorization: Basic` credential on `/companion/api/v1/*` (core resolves the cookie session before Basic). `ClientLicenseMiddleware` now treats the explicit credential as authoritative — on identity mismatch the session is re-authenticated (throttled) with it; invalid Basic + foreign cookie returns 401. Web/session auth unchanged."}},"signatureDigest":"sha512"},{"version":"2.3.14","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.14/ticketcheck.tar.gz","created":"2026-10-10T15:27:59.341552Z","licenses":["agpl"],"lastModified":"2026-10-10T15:27:59.446061Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"L7sMxcsX7SDArWzwKVpV2bl9NnwGlXF5WWi/mvyILPFO+UD4wTyRioRmWzMHWUUOmL18FZQOIG5rGcZJee1SzdrTE/0ZV/KlfI/ef2EFWlNYPb/XcQ0Vhn0/stZTnq/PkUViBluj4Bz34bE8cTzXfz36E2TOfhUb/Uj+0uQcvMvJy+6Y0vx4atXQKbhF3aoNLf0KP3lFCno9kg32mOpHrEIg2xEqo9lVFM+VvOwJ4fJ412KQgLtb0729kFO4cIrHUZUVWSdWClPiPNFSY50sXl6UeJZo+KDBpFQMloVkHwku7DeIiCbG4q8Hodz8P2TnQPzQKkXWmFTGhJwBo5Bgq4UTU62/SXyZa5E78yD12oUQJF3NU5+O5lhLAaX7/W5mcL0scQRZDqi7hzLAPRbXcRSjqeB6AGgXUJFHGdjmc7yQAo37eMfiCWRUsD73Y66RyWDDJOU6cwz9rRFiHiS7ysTo4bQVdVj8cd6sfF5jXx8dYJK3eGJ1MsBLSTsHEqB1JNViWZGcO6psnT/IqKZgUdp6LJaNxVgTXwXgjSRtFueTwX4zWoP5vfvgAbQdNDy6+odNta3EF83xzyXc+mG9X/9WhPy7uVb+o0N/UYx+ZgXtFcEi0rMhYUO7n1DVZYtuGvQIy64NfRGuO7zG04mYolTdkCrRiFoR+BsCZZKFbUA=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.14: contrast/invalid-border fixes + l10n sweep + assign 422 + merge guard"}},"signatureDigest":"sha512"},{"version":"2.3.13","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.13/ticketcheck.tar.gz","created":"2026-10-04T18:45:30.317854Z","licenses":["agpl"],"lastModified":"2026-10-04T19:11:20.115866Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ARW2+vfWGYTysQkuh0clZhqc7XE/4o+dsLfD/0NDJ1tpPfxW2mpOls+k2KG9V0Kn5djKfshaVmeZaMM1HI18kuKU5vqXo4J06fLDCBW+qyz4MO8SbRmR4BPMg03bHkiCTuuX6aDQi6scfrnPfb0lbsR73HzGOn9nLmgdm293sdM/6+3LX9IEQRerJz/lJ8w/c79APqo2PLSmx6WZmyaHgi80e0xskNZzM3U6fUGIQta4Xm4FwO8O64oZd/2HArO0iMiTxdC+jG4C6lfB34rN+CKAQ8ccZPlq6kx7x406Cvh6Jb9tOcwh06oP4p3Npu20tmmQFsRCt415oqucOIywzy60z9MOmdcbfMSlM4zHcU5JFnM22oRd0WUwtQE9LWFvVFN4kKWUM0CQIw/HU2BV6dzJBWhHxY40L2kPCvh44WKW4zWRWLd0mFC7PVLWFDvmcUABHAtJOxXHjtyXEEEuCAsYcrQQDNpTrATs9uCvRzAGwznxwM4E88YA4rwCSWpK0dnyqUJ/fN5o0aP/v8IjOad0b6z2J3f3foFgJNSpXED6bqjwqtZ5oB11lHUiu/LJKoBZEjBCYCR89AV72b+/22n/8D1WxLguOVYmlkLubfSTk6ccQB8vzhB9oEh57FPgf5VcfQ0h+mqKW5+Hp52mCHcnDC/CBkFcXKi2tJ6Y6pk=","translations":{"en":{"changelog":"### Fixed\n\n- Merge dialog now closes on Escape in every state — it previously stayed open while the merge-target picker was visible, and the native cancel event can be suppressed by other Nextcloud apps.\n- API hardening: stricter request validation and error paths.\n- Localization fixes.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot origins stabilized."}},"signatureDigest":"sha512"},{"version":"2.3.12","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.12/ticketcheck.tar.gz","created":"2026-10-02T22:08:51.005903Z","licenses":["agpl"],"lastModified":"2026-10-02T22:08:51.096856Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"INYBsFzuAcTq8QBCeJg/sQHzcuLAExjDNM27pWLNJ9SWlmm8g/L2n31hhKY6XvoKZiCCEIBt377UkuOJsYYHZrobKCyvlQnoIr+XkePJr0Alr8zLxHIhAjYttjj7wFEMK86zUqN4xu4SA/kBafziXaixHfWq0VmtUSySsVEMst3277oHS4VQU8JYQWklGgYMb3NFziG+c5XUyB7ak0cth/JzgAltkFCQQVRRxNP8v/l502B08pU05UHmXZjcAIZiZJ6K7iWqr2wMozc85zRspqfDqkbVUGIs4nEfV3AQFGxSoMhz7B1t2FImLneMRBkKnDjFV9WuWPI0tB7tCUoJIvQDh5huGNe+cFHsenvzdUYiCzplnrU4+leYnrEhGcnsnIqk4qYoJ2psAKsZxj0nrv1NSKRwLvcb7IEGQ3dTf5tghcj9oZOrqAI4lO3uo7cIDHRVGMzyjHT1SpjQDhc7riF9c4NPXb9i98F9ChvzXqa/+VtYGynOqbBxjC3LzEUWgN4o+1pFdflDc2FI/I5F2WlT0Oupgs1Uaa6AT8BG2ebrdGfJVF4iSyERqkBq+UQ1ae/pfmFICdhw4kxmHUCSRxsXNM78SDeCwezUsr5iHezrtnVdDwEPCM+uHE/tRWmTumzGCAo2aL8ZHPQTI+yaNf5RiD8alaqm09sLbyfib8w=","translations":{"en":{"changelog":"### Fixed\n- App Store screenshots now point to GitHub-hosted assets in `screenshots/appstore/`. The previous `nextcloud.software-by-design.de` URLs were reachable from browsers but not successfully fetched by the App Store's image-cache worker, so the listing showed `[Screenshot]` placeholders. Using the public GitHub `raw.githubusercontent.com` origin and a new `appstore/` path provides fresh cache keys and a host known to work with `usercontent.apps.nextcloud.com`."}},"signatureDigest":"sha512"},{"version":"2.3.11","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.11/ticketcheck.tar.gz","created":"2026-10-02T20:52:54.912672Z","licenses":["agpl"],"lastModified":"2026-10-02T20:52:55.021832Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"OLSzD66Uacsfs1gQ4u5ASCFGp5QYd12Jq7dTU5r/H17eWJU4GCHSEWMMBj0Mg2mcSQlHgbwoU/CNXw1lK3FIZoTxVvw53+OqgH0vukcJn7+qHIIVE9po0PeptXPLo4OiSdGnmfQHi0JRxIG+8SgJUq3Xjbagf0+8Ehth1bqE6cYSJXcnVVnODIlt3htkDuJ/vnu4+OQ3xxciKwWQU4pmD20pQrmxVpbwAZR1rXLtQIXGEqEdxR21JXcwlMBvvp2qovM5OkbVD2oxMMJy6MhNRoP7hfab9MYTF9f7HMwG4aiondyPribMrs2exFkKVXTCvr8DPnmkSxdQBo8KSrbL0yaaQlcJX+2bKtBZxb57++1uY7ILxDZpIv9XlTUCbIdU96NZ1UF0GZtWpjvTN4+31MEp21KeRAef7SOgiJkDZEi9sIvctbTFwB+qYP9QLPcvIws6pYETfKPmZHK5YyqlOJnfwLQKoKOX5CWv0pzQzy0mdqLjTOVQ0dfhysUu+7J7ZV9UnypFDPrYAbBU+oMtEGA6fDBW9ulFDtrPWK8CAqosU30uAypDnD4NNhnuECpwrd/vHkLxok+2ai0pnDHaho5HcVZEzrsAsmxeUu9hXD2ZfNRSqSP2NJTMcOfwEc8rOtaPaggYAp9K8g4ReyyjECEGOaOgHo6GZgZ7pmxfHOs=","translations":{"en":{"changelog":"### Fixed\n- App Store screenshots now use stable, publicly deployed `nextcloud.software-by-design.de` image URLs. This gives App Store ingestion fresh cache keys and avoids the stale `File not found` entries previously cached for the GitHub-hosted URLs."}},"signatureDigest":"sha512"},{"version":"2.3.10","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/releases/download/v2.3.10/ticketcheck.tar.gz","created":"2026-10-02T20:45:05.076740Z","licenses":["agpl"],"lastModified":"2026-10-02T20:45:05.187795Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Hip1bEwnjCVXbnhj8pgQJyu9hSLIsOfnwc7T5eFZqZ1zrjXnt0/2MS6faCekUHE0quY4mjTuwurMWcf+9GlrpY/NrKbhLTttPv81T/qK8ociavoJv1TKdUhCo4RON+TN9apjd/yxGOmOaogL3Fd68kUwiXl2m+Xet3WG6HlvZNvi1GLMz3rD8AhbjkfC3OoAiFZDitoUhciSZBxIkgeGMhHghnWUlIAZK1CEmC+ULbiZb1fa+6JQ0YZp3EnGwU2mPg1NN57lnSRlX50VoQrenCiczgtQKiLpkMqNyxlEXiKmKkZbJPbGeHZXGQ2KZo/Pl1Zpby3KFJauEY0ZA74wk8OHlcmJf1NgKu7FZhrk08yNMtW7MWLBpkGtDjcgwgeQtu3EaRH3bme1wlmihMfDbBTblNJb0HvuloBYz4J2DROOXXcc/j6y/N682x6NKNk535+MxC7LO8lvn2gxN2p1UhbGNAwXOhqS5oEfH/eILCwiOv3OhN1nlOKX3LxC22hmBRpyFaeEZNsJas5uI+scD1L2XC+xzCL7KUdzUu6Yf3iM4SDxIVaK07xCahvAwmCQUnFmguHdQ2VneNTqQE1WYDcNAOY34G8VIJ83PEUMdXEHzdkbMNoFeBMVXV6QxZUTngMcKNc25bY49ry8l9r940bAXenyyaFt5BxKx1LMcu8=","translations":{"en":{"changelog":"### Fixed\n- App Store screenshots now use whitespace-free URL values, preventing the App Store image proxy from treating XML indentation as part of each URL and returning `File not found`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wMi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wMy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wNC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wNS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtdGlja2V0Y2hlY2svbWFpbi9zY3JlZW5zaG90cy9hcHBzdG9yZS8wNi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/main/screenshots/appstore/06.png"}],"videos":[],"translations":{"en":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"A complete standalone helpdesk and customer support system for Nextcloud.\n\t\tWorks out of the box with no dependencies.\n\n\t\tFeatures:\n\t\t- Multi-tenant project-based access control\n\t\t- Built-in projects and customers management\n\t\t- Secure guest portal (restricted to helpdesk only)\n\t\t- Automated email notifications and background jobs\n\t\t- Rich text editor for knowledge base\n\t\t- File attachments with image previews\n\t\t- Visual charts and reporting\n\t\t- CSV export\n\t\t- SLA monitoring and breach alerts\n\t\t- Daily digest emails for agents\n\t\t- Translations (English, German)\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Your feedback directly shapes what we build next.\n\n## Funding\n\nTicketCheck (grant project NEXTICK) is funded by the German Federal Ministry of Research, Technology and Space (BMFTR) through the Prototype Fund programme (https://www.prototypefund.de/) — funding measure \"Software Sprint\" (round 2), June to November 2026. The complete source code is published as free and open-source software under the AGPL-3.0-or-later license."},"es":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Un sistema completo de mesa de ayuda y atención al cliente, autónomo, para Nextcloud.\nFunciona de forma inmediata y sin dependencias.\n\nFunciones:\n- Control de acceso basado en proyectos y multi-tenant\n- Gestión integrada de proyectos y clientes\n- Portal de invitados seguro (restringido solo al helpdesk)\n- Notificaciones por correo automatizadas y trabajos en segundo plano\n- Editor de texto enriquecido para la base de conocimiento\n- Adjuntos de archivos con vista previa de imágenes\n- Gráficos y reportes visuales\n- Exportación CSV\n- Supervisión de SLA y alertas de incumplimiento\n- Correos electrónicos de resumen diarios para los agentes\n- Traducciones (inglés, alemán)\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Su feedback da forma directa a lo que construimos después.\n\n## Financiación\n\nTicketCheck (proyecto subvencionado NEXTICK) está financiado por el Ministerio Federal Alemán de Investigación, Tecnología y Espacio (BMFTR) a través del programa Prototype Fund (https://www.prototypefund.de/) — medida «Software Sprint» (2.ª promoción), junio a noviembre de 2026. El código fuente completo se publica como software libre y de código abierto bajo la licencia AGPL-3.0-or-later."},"da":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Et komplet, selvstændigt helpdesk- og kundesupportsystem til Nextcloud.\nFungerer lige fra starten uden afhængigheder.\n\nFunktioner:\n- Multi-tenant projektbaseret adgangskontrol\n- Indbygget administration af projekter og kunder\n- Sikret gæsteportal (kun adgang til helpdesk, begrænset)\n- Automatiserede e-mail-notifikationer og baggrundsjob\n- Rigt tekstredigeringsværktøj til vidensbase\n- Filvedhæftninger med billedforhåndsvisning\n- Visuelle diagrammer og rapportering\n- CSV-export\n- SLA-overvågning og alarmer ved brud\n- Daglige opsummerings-e-mails til agenter\n- Oversættelser (engelsk, tysk)\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Jeres feedback former direkte det, vi bygger næste gang.\n\n## Finansiering\n\nTicketCheck (støtteprojektet NEXTICK) finansieres af det tyske forbundsministerium for forskning, teknologi og rumfart (BMFTR) gennem Prototype Fund-programmet (https://www.prototypefund.de/) — støtteprogrammet \"Software Sprint\" (årgang 2), juni til november 2026. Den komplette kildekode udgives som fri open source-software under AGPL-3.0-or-later-licensen."},"it":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Un sistema completo e autonomo di helpdesk e assistenza clienti per Nextcloud.\nFunziona out of the box senza dipendenze.\n\nFunzionalità:\n- Controllo dell’accesso basato su progetti e multi-tenant\n- Gestione integrata di progetti e clienti\n- Portale ospiti sicuro (limitato solo all’helpdesk)\n- Notifiche email automatizzate e processi in background\n- Editor di testo arricchito per la knowledge base\n- Allegati dei file con anteprima delle immagini\n- Grafici e reportistica visivi\n- Esportazione CSV\n- Monitoraggio SLA e avvisi in caso di violazioni\n- E-mail riepilogative giornaliere per gli agenti\n- Traduzioni (inglese, tedesco)\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Finanziamento\n\nTicketCheck (progetto finanziato NEXTICK) è finanziato dal Ministero Federale tedesco della Ricerca, della Tecnologia e dello Spazio (BMFTR) tramite il programma Prototype Fund (https://www.prototypefund.de/) — misura «Software Sprint» (2ª edizione), da giugno a novembre 2026. Il codice sorgente completo è pubblicato come software libero e open source con licenza AGPL-3.0-or-later."},"nl":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Een volledig standalone helpdesk- en klantenservicesysteem voor Nextcloud.\nWerkt direct zonder afhankelijkheden.\n\nFuncties:\n- Multi-tenant, projectgebaseerde toegangscontrole\n- Beheer van projecten en klanten ingebouwd\n- Beveiligd gastenportaal (alleen beperkt tot de helpdesk)\n- Geautomatiseerde e-mailmeldingen en achtergrondjobs\n- Rijke teksteditor voor de kennisbank\n- Bestandsbijlagen met voorbeeld van afbeeldingen\n- Visuele grafieken en rapportage\n- Exporteren naar CSV\n- SLA-monitoring en meldingen bij overtredingen\n- Dagelijkse samenvattende e-mails voor agenten\n- Vertalingen (Engels, Duits)\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Financiering\n\nTicketCheck (subsidieproject NEXTICK) wordt gefinancierd door het Duitse federale ministerie van Onderzoek, Technologie en Ruimtevaart (BMFTR) via het Prototype Fund-programma (https://www.prototypefund.de/) — financieringsmaatregel \"Software Sprint\" (lichting 2), juni tot november 2026. De volledige broncode wordt gepubliceerd als vrije open-sourcesoftware onder de AGPL-3.0-or-later-licentie."},"pl":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Kompletny, samodzielny system helpdesku i obsługi klienta dla Nextcloud.\nDziała od razu po wdrożeniu, bez zależności.\n\nFunkcje:\n- Wielodostępna (multi-tenant) kontrola dostępu oparta na projektach\n- Wbudowane zarządzanie projektami i klientami\n- Bezpieczny portal dla gości (ograniczony wyłącznie do helpdesku)\n- Automatyczne powiadomienia e-mail oraz zadania w tle\n- Edytor tekstu sformatowanego dla bazy wiedzy\n- Załączniki plików z podglądem obrazów\n- Przejrzyste wykresy i raportowanie\n- Eksport CSV\n- Monitorowanie SLA i alerty o naruszeniach\n- Codzienne wiadomości e-mail podsumowujące dla agentów\n- Tłumaczenia (angielski, niemiecki)\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Finansowanie\n\nTicketCheck (projekt grantowy NEXTICK) jest finansowany przez Federalne Ministerstwo Badań, Technologii i Przestrzeni Kosmicznej (BMFTR) w ramach programu Prototype Fund (https://www.prototypefund.de/) — działanie „Software Sprint” (edycja 2), czerwiec–listopad 2026. Pełny kod źródłowy jest publikowany jako wolne i otwarte oprogramowanie na licencji AGPL-3.0-or-later."},"fr":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Un système complet, autonome de helpdesk et de support client pour Nextcloud.\nFonctionne dès la mise en service, sans dépendances.\n\nFonctions :\n- Contrôle d’accès basé sur des projets et multi-tenant\n- Gestion intégrée des projets et des clients\n- Portail invité sécurisé (limité au helpdesk uniquement)\n- Notifications par e-mail automatisées et tâches d’arrière-plan\n- Éditeur de texte enrichi pour la base de connaissances\n- Pièces jointes avec aperçu des images\n- Graphiques visuels et reporting\n- Export CSV\n- Suivi des SLA et alertes en cas de non-respect\n- E-mails récapitulatifs quotidiens pour les agents\n- Traductions (anglais, allemand)\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Vos retours façonnent directement la suite.\n\n## Financement\n\nTicketCheck (projet subventionné NEXTICK) est financé par le ministère fédéral allemand de la Recherche, de la Technologie et de l'Espace (BMFTR) via le programme Prototype Fund (https://www.prototypefund.de/) — mesure « Software Sprint » (2e promotion), juin à novembre 2026. Le code source complet est publié en logiciel libre et open source sous licence AGPL-3.0-or-later."},"sv":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Ett komplett, fristående helpdesk- och kundsupportsystem för Nextcloud.\nFungerar direkt utan beroenden.\n\nFunktioner:\n- Multi-tenant projektbaserad åtkomstkontroll\n- Inbyggd hantering av projekt och kunder\n- Säker gästportal (endast begränsad till helpdesk)\n- Automatiska e-postaviseringar och bakgrundsjobb\n- Kunskapsbas med redigering av rik text\n- Filbilagor med bildförhandsvisning\n- Visuella diagram och rapportering\n- Export till CSV\n- SLA-övervakning och varningsmeddelanden vid överträdelser\n- Dagliga sammanfattningsmejl för agenter\n- Översättningar (engelska, tyska)\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Er feedback formar direkt det vi bygger härnäst.\n\n## Finansiering\n\nTicketCheck (bidragsprojektet NEXTICK) finansieras av det tyska federala ministeriet för forskning, teknik och rymd (BMFTR) via Prototype Fund-programmet (https://www.prototypefund.de/) — stödåtgärden \"Software Sprint\" (omgång 2), juni till november 2026. Hela källkoden publiceras som fri och öppen programvara under licensen AGPL-3.0-or-later."},"nb":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Et komplett, frittstående helpdesk- og kundesupportsystem for Nextcloud.\nFungerer ut av esken uten avhengigheter.\n\nFunksjoner:\n- Multi-tenant prosjektbasert tilgangskontroll\n- Innebygd håndtering av prosjekter og kunder\n- Sikret gjesteportal (begrenset til bare helpdesk)\n- Automatiserte e-postvarsler og bakgrunnsjobber\n- Redigeringsverktøy med rik tekst for kunnskapsbase\n- Filvedlegg med bilde-forhåndsvisning\n- Visuelle diagrammer og rapportering\n- CSV-eksport\n- SLA-overvåking og varsler ved brudd\n- Daglige sammendrags-e-poster for agenter\n- Oversettelser (engelsk, tysk)\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Finansiering\n\nTicketCheck (tilskuddsprosjektet NEXTICK) finansieres av det tyske forsknings-, teknologi- og romfartsdepartementet (BMFTR) gjennom Prototype Fund-programmet (https://www.prototypefund.de/) — støttetiltaket \"Software Sprint\" (kull 2), juni til november 2026. Hele kildekoden publiseres som fri og åpen programvare under AGPL-3.0-or-later-lisensen."},"de":{"name":"TicketCheck","summary":"Customer support ticketing system with guest access and email integration","description":"Komplettes, eigenständiges Helpdesk- und Kundensupportsystem für Nextcloud.\nFunktioniert direkt ohne Abhängigkeiten.\n\nFunktionen:\n- Multi-tenant projektbasierte Zugriffskontrolle\n- Integrierte Verwaltung von Projekten und Kunden\n- Sicheres Gäste-Portal (nur für den Helpdesk, eingeschränkt)\n- Automatisierte E-Mail-Benachrichtigungen und Hintergrundjobs\n- Editor für Rich Text zur Wissensdatenbank\n- Dateianhänge mit Bildvorschau\n- Visuelle Diagramme und Auswertungen\n- CSV-Export\n- SLA-Überwachung und Warnmeldungen bei Verstößen\n- Tägliche Zusammenfassungs-E-Mails für Agenten\n- Übersetzungen (Englisch, Deutsch)\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-ticketcheck/issues). Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Förderung\n\nTicketCheck (Förderprojekt NEXTICK) wird vom Bundesministerium für Forschung, Technologie und Raumfahrt (BMFTR) im Förderprogramm Prototype Fund (https://www.prototypefund.de/) gefördert — Fördermaßnahme „Software Sprint – Förderung von Open Source Entwicklerinnen und Entwicklern“ (2. Jahrgang), Juni bis November 2026. Der vollständige Quellcode wird als freie Open-Source-Software unter der AGPL-3.0-or-later-Lizenz veröffentlicht."}},"isFeatured":false,"authors":[{"name":"Lara Raffel","mail":"","homepage":""},{"name":"Alexander Mäule","mail":"","homepage":""},{"name":"Hauke Klünder","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhQ+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTUwNzEzWhcNMzcwMTA3MTUwNzEzWjAWMRQwEgYD\nVQQDDAt0aWNrZXRjaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKONHEQTH1j7w+bZYhHsCbaM/Cn7DERUNsps0d5Y7rl1kQDBjswySB9GWuEFIlWa\nRzTx+OeJFCiTorxWg6x7fU3bdNasEF0yY4eI/R3uYLJfG2dqOVAzsxhRb+Hhi732\nBbC3VkNFOtIwvoNDaRO/ux3rXUw5WsiSH0xBKb1iiN/CeLhuq3CK+CSN9Y6OlnTE\nOvipk4b3SVOWCR4pfoOv22xqp07B3YFuEAyZm2kD6QQ5V9q70hodb2ArGzup/5AE\nwy0WrlAyp8/98Imovpq05SiJOpTQeAYqCP1CdDm/AZpLpMsZoMWOvsmgGKckZSfA\ncqOkGKrG4FwQwcUT25lbpe8CKAHg//EukJ6sRw3Cm1uevNc6raQvNWJ3Nc0M+Cwr\nCe2uok7JLIqFHNu1D8pPUTCDBw4piExKpepD1Wy+6SehVgQ/m7Ccy/iER/Lc778l\nQwrvN9McNi/IS8xfOBbL7Uj0Z1xw/oUJrD321mBPME9V4nS1tsTDP3fqjryfgEbs\noQ1mX3oECyABxyKqqM1PWyxrGz7p9o2Hbb/azTxVUcbApcRySc3jnWbWP2lsEg9F\nlOh8q+K2UU7p5dloaLyykzhe0Nmjq8Qd1eQHCyM+x2P3/3NOiiTYpYKFB7haUJY0\n899L5msAYdXf0sdLEVwSCW6c0DN/3/g88QyQvgtEQkLLAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBADFNzmf68FkvAqj/61vB3kwypouRm5I7q7nVebLzvefUUbGzQWg3\n3J/Vs6WV5s+Q303OTHnwKBAavJdiuL+D7XWK092/UXuOj727d9hmG83ogIgWXNjH\nrkC8U9FkKlv+U70Od/RBktb4MBLNQYbVZNPF4UDkGjfQhBIijNsbpr5uDGnsCDVM\nynZSQK4v4pI59Pb0AYDIsjCReAYw8/Tfa0Y5QZovnPZT02lV6V96CbUoSMqPyTAj\n+MbRstK/PX3JZRVKRvruKVOAe9wSkG6FbOjly1in4r93tspIaVEHrVoXT1YZTjq/\nxh8vV4TC5S6PlCUsXvDAMuNKhRnrOv+HOhM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"classic_appmenu","categories":["customization"],"userDocs":"","adminDocs":"https://github.com/moregeo-it/nextcloud-classic-menu#settings","developerDocs":"","issueTracker":"https://github.com/moregeo-it/nextcloud-classic-menu/issues","website":"","created":"2026-09-29T22:55:05.100585Z","lastModified":"2026-09-29T23:01:49.226699Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/moregeo-it/nextcloud-classic-menu/releases/download/v1.1.0/classic_appmenu-1.1.0.tar.gz","created":"2026-09-29T23:01:49.222168Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T23:01:49.276122Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"YKhj6Whvj012deW3tO+kmlF0lIRyQ8QqKVpHe0ZO4TJr11FfK/+ByZDiUMSHD1o8sW0A/Eiy1lj395r1mad8jQe6pFDTPmdQIP1wsA0HghUQG/Djib4h/dV/iWFFyXXUvZ+c8y8xFFu0EgfK0ygeeHXE7pTEfK58T++6YxOx5y6dJFoklsclgaLirBI7tiJ3SeDdkisVzAwn8ie5EccAbJZ3qA7dhqUfvqPbrkUC3dCSbnXpitSQbdnMOWNqJQAPPAABoPNfg2T9vfu7y1glcx2iQc04Z2kVm3DKFSlHJ3bChP3v9QABz/yA+6G02Qv3Xcyr2Uy87Ntzf5hjECHZRsOTA/I2B7n/JZVb8dP6AYUE2PctGaZdza/DqogZSr9A0BrKD/RQCBa2yl1STd3JOzkoBDIPK0ybIgfWdR1S80FEhekDE9JbzApSaUaJIHDaZ2B8phvBsv0py5lms/M8BtqjdPD7Zt0Jve6c5qRyJXk6JUFVWrjRcv3qsEU9X23612O6TM2XGnTVL814yNTMxnufVqXhr3PMk10ki5k+gaA8rPEQZxC+j/0/U3HgOjYzwF/a6yLcBVNVUnUfMgke4ihE23JjVr/8NLnPH2gF1s9AkkG5T6daJuDuZSr8D7C+9dAK8ruvrDKuQ8VB/pz8bpbHtC56S+HpKRmdaTmMFTE=","translations":{"en":{"changelog":"First official release, on GitHub and in the Nextcloud app store.\n\n### Fixed\n\n- The search no longer covers the app icons: it is shown next to the notifications, and only as a magnifier on smaller screens ([#1](https://github.com/moregeo-it/nextcloud-classic-menu/issues/1))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vcmVnZW8taXQvbmV4dGNsb3VkLWNsYXNzaWMtbWVudS9tYWluL3NjcmVlbnNob3RzL3NldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Classic App Menu","summary":"Brings the app icons back into the header","description":"Nextcloud 34 replaced the app icons in the header with a waffle menu.\nThis app restores the icons in the top bar. Administrators can decide globally\nwhich apps are shown in the top bar, which ones go into the waffle menu,\nand in which order."},"de":{"name":"Classic App Menu","summary":"Bringt die App-Symbole zurück in die Kopfzeile","description":"Seit Nextcloud 34 sind die App-Symbole in der Kopfzeile durch ein App-Menü ersetzt.\nDiese App bringt die Symbole in die Kopfzeile zurück. Administratoren legen für alle\nBenutzer fest, welche Apps in der Kopfzeile und welche im App-Menü angezeigt werden\nund in welcher Reihenfolge."}},"isFeatured":false,"authors":[{"name":"moreGeo","mail":"mail@moregeo.it","homepage":"https://moregeo.it"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhQwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI5MjAyNzQ4WhcNMzcwMTA0MjAyNzQ4WjAaMRgwFgYD\nVQQDDA9jbGFzc2ljX2FwcG1lbnUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC2i9ds2a+oHVFNgBPfuabhcH+gljWf+ndnm4u3RblmPfKQerfXOLYY/o7K\nP4sVZVKFIIu+teHizfKJFlg4Ren0XDIl+IGo+fstH7NQo9zm+dsYmQbDBs19foJj\nzXghXbmtHpnnw77QpHB8K1HTPGkoBq8p25wLfOBbcRhk27Lw7EYjz0VmX1dD0u2N\nFsQ0mdRsR6HokIh35L+4zvR3d9EMAcIUBEqQs7JmapCmiLd0X3QmeuBtiTZaAcEj\n9I6C7ggk2oEQPCMr38yhfiZBP1gkWgkEgkJic1V+7nWIGzk7W6Yblr9hbXYY1734\nW0lGQ4vIj6LahvMdpluhKNfrf/jO2JVOi2kzlTq8mC57EKjdBW2UFIuSQy/L/vCZ\nPjIGdhvBxb4wXNyEd6CBkoYzwJoFhxhEMWxGkrcZrx1L1WodaaujBELSlkUqs1zk\nrV6rYTAPJjEOefWBIuwmBfqi1syEz1AQ7GesteRf5naWyeqpyzk0JFvxSeDL5lLr\nIp1t/pq3UpQOP/Cl5l00xCu49vR71GKaeySsFEurKptvYiKCk7XWD3zJtUgVbmDM\nOoLAzS9EBJX8OYg4VRuqJZiDt6K243U1T8q+wQ1ldIyfhlzl2+/uGalodp5r2+Q/\n+ZAiogUQ4UOQqDQbmDkdAYxtnEiX2ttHOGlM13BuytwIJApkNwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBr63mFyOKUtlOZkTWR9rMk0TknLFo4ITDU8u9jUvLYAs9P\nk5Y5QDegnyH+mCKeHEue8XVPVROQYe0pcyhuMQBS943ona05ASWAln4YOyvcNCUA\neTKfMOSVyBBX3U9yGYXNKsqeeZskqGIZcEU9J4AizapWY4SsF9kn9CWIdbYe1bzJ\nM+AXZC0+v0Ds0O0//38ztiYu3eEQ9wdWeKFTDinLIRe9Uuw4Qyt7hLlW55F1VWR4\n4IoXFhdha+quFKzhl479VWuDUpcmg9RHBGaO6pPeVJvH3uIiMUdrH2AfVR/0Z/NW\nzhE6wpdJG3QXSGF5+HUhpJgOMDNmXDROU9pCM6TZ\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"televisorium","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/MuhammedKpln/televisorium/issues","website":"","created":"2026-08-18T15:02:50.245074Z","lastModified":"2026-08-19T00:39:14.988614Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/MuhammedKpln/televisorium/releases/download/1.1.1/televisorium-1.1.1.tar.gz","created":"2026-08-19T00:36:52.144412Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-19T00:39:15.079942Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"ZcJm49+beI1p+tyLfQ/u2tBZLMyoT2HRhmuYFNhPK95cVQiXOySlFqiImgXI6qtE\nqqdJSnaf6XwEN4rt/n5V8oJbBA1tsOPaK2A827ju8vHPdNGyGXCStNoOLbDBCiDT\nTt1kAYGNvU+8oced8R3bDhgoR7DEiCG8j6SeTCfFXyditWXJRgtBSTLIbh0zYIz0\nKyqRSZ3zaHO0vvkNodQzGT7WJK7j1zEv76v+i9NWCGPsVagquuUgwV10J6giV9oi\nBB8baQi+/qLcct7sotBkk9hVpZagFrGBL+BO3HG9uB3vumyUHw2m8lQ25/PVDTZt\n+Ev1L4FSI+i3Piw/r79dBzcN9l9DjfyQzwFOoiyPhiv5c4V0MR9bToKKhV5GbywX\nFUTMzhhOHEAJzjBK0zh4Ty2vM4p/aR2Myb1CQAuMpBzwS79HC7ub+eHWwB3P/nHb\nGD+S0rSP12+vVunnbXSAKP40nOKViGbEJlmPW4aqWEIuDvf5BETHyntbBFkS3ZyC\nr5ospHvYXIWayA1MRZ3Fgx+TQQV+cN7AvTRkjGcZqanMYWANzd7jegauzrTgdXPt\nhoJeRIybdwTze6KTXhIx1Os5B1b1bfASx5iI7JfC1YKS5sf6Pg6pn1rpLP+oBvWC\nDllvzdWfPlz+lRUDuu7hjx60li+Jy2+D/GTwm7tYl2o=","translations":{"en":{"changelog":"### Added\n\n- API docs\n\n### Fixed\n\n- enhance error handling with extractErrorMessage utility"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/MuhammedKpln/televisorium/releases/download/1.1.0/televisorium-1.1.0.tar.gz","created":"2026-08-18T16:48:21.457288Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-18T16:48:21.527307Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"eIIp3VQpEw4icLkdwFIZJ1fA9AX1bh65Qcf5LBh0fRFL8D9NDD/WF6MN7AiF3iTt\nHwaOsCPX3hhi086VFqMqGmqCeGw+AX6qlQkk2GnIfgonDX7SYp+FLuWqH9qqWkUZ\nqmZz6+wh4NgOpQIvE9augGaG7OHtHluyc5adJapzaiP/XE4mHffwD80QJ4N8Gmhe\nyv6JCMv7QI+EeN+CLCvCBeTX/RDq0p94E6hE4DGojPqovQA7eAN/rUa3MMoyW7Uq\nIeQHWmpmYNsHDz6j2PafFYl5A5PxOawrYCS0qYtXrzReLS2Nvkzz9ga1v+JYgmM1\noEsMBjmppf2cGyhnlkr5hkEOTeDbwP2MxLo2jECg+ro/UrzYnRdDCCGKbACuP8MJ\nYE3U83llChvHNPU9LHTUVJvRvXi0jenGMLURJ+xON0nMWnHC1EheCGsOMavDtzfH\nkJOzVMNWCXNYlR9HZU7qEqwljVOperCTelEHA7DohJtIKm8iYykUgl1KdEu0K2N0\n4T4dSpmvKHfpEYpmqyXIHUzagepl+BRneXz3u3ne45AdaefwmjAmMZiBMM9ir91d\nC0yzBmHO3e9PBeDHSCyvs1mKdh+cg63sCHBwqJRYpWhiuiFzGkD2Kqq+SWgbzbsS\nTC8fQp4KgNgPpC9+UT44vjpI/2YwLKGFglqn+mwuDmw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL011aGFtbWVkS3Bsbi90ZWxldmlzb3JpdW0vcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3QucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Televisorium","summary":"An app to keep track on your watchlist, tv series, movies. Similiar to trakt.tv","description":"An app to keep track on your watchlist, tv series, movies. Similiar to trakt.tv"}},"isFeatured":false,"authors":[{"name":"Muhammed Kaplan","mail":"mmuhammedkaplan0@gmail.com","homepage":"https://github.com/muhammedkpln"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhPOMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE4MTMwMjI5WhcNMzYxMTIzMTMwMjI5WjAXMRUwEwYD\nVQQDDAx0ZWxldmlzb3JpdW0wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDenfFrNMIqWiBR7YbaQs54A2Tf6rmNRgiCsFEVTKURl4w1gOLOIArNdnmnORMi\nLrMeYkCifZXHGLlteKsODJX5t+botenhUZw/xPjwzwBIFBj3jQF76yNyy+yHn3vH\nIEbAY29nqumF3NGABbx0tsL1C5VNhPgoKTqksPSkgwL3YtHWVApVSMOFAYdD6+GO\nIpID0IgU+aU7WFbONe6niC+uBk/+gGqFM6yEIeJpnaHv2iU2DVJRMpUaslBDPMaD\nx/I0ordEt9r4B0ObCDamf7eN5gGMnDUrFpahy/MtHbKaMHFDNqs0a/GUBgiDPL7L\ndxeGVt4TW3oYASH6bUlLq39kfNI0J1lURmkaJOQI8TRkBjaVa5c1VtsKUUPK2Klr\n0T/yWsPVvVNFn/6lOQL3h/GHu0dQkI2cnv+hA5ziOMdYX59pPdy6lPIR+9Q5WYjg\n2F6P0ISGOITqrs44W+nK1Wb82TNR7IQAmvBvisEFmvvx8Y2BNZcC2kSJ7FrPFt0g\nB7RUsXn0o3KyOz3KtN3fVkHC127nk2KcgRRY3McibQeaQ4UlbphPHsdwd5g4D0Zg\nPJI/qWMYgZXfNQKLX1YhEoLJcUSZTtq5m+3mOZWurjMEQV1HcD03xpblHlD4I2ZV\nMsPSlOvDJg2uzmicaRRnwQdnKmxg2TBr6D6kj2uNFq/JXQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAXsszWsBRdTdhdCoXmLqFJHr43PLP4JFYJPJa+ZwbdSzR7y+uE\n2lTc/LlqXNx8C32UAApt9RqxQkP0BRpRmUEgHJ0YmBTszJXXsPfm0QjJALtRS3CI\nEzc+agp1Jh6Ha9N35MzjodnAXI6VRlS+Iv+ixTmebRF7urXx08Ysg+NMSZmNjbGD\neiCnCkjgt/HRfLSrHkU7DBMoGC/fXd1dJDjsaVwwfeCa3x+DtyXC9YYlzNLuaOQ8\nBGyBV3PlS/mSk8T4mhP7O4h9ucV05MUXJwFCxMsZH4ZC/RfmUqmxSAvC1srPyaEw\nqd2Dqc56178dR018zMkAHSLg1ieurEg3uTUX\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"passman","categories":["tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/passman#readme","developerDocs":"https://github.com/nextcloud/passman/wiki","issueTracker":"https://github.com/nextcloud/passman/issues","website":"https://passman.cc","created":"2016-10-03T16:25:19.931184Z","lastModified":"2026-10-17T22:52:21.798828Z","releases":[{"version":"2.6.5","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://releases.passman.cc/passman_2.6.5.tar.gz","created":"2026-10-17T22:52:21.792232Z","licenses":["agpl"],"lastModified":"2026-10-17T22:52:21.841836Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"BqMdh+IbSAGoXpggrspew7i4QjM8DrirmGnJZgj/aXZTE0OJStoDIH4ngI1hwFcT\njjQfL2PczcCQt2GSFhEoxeRhnCugNP3v5Hagse3nQjDHPxsgK43IzlH9cCAbv63U\nDp0FEvsnuslCNI/irKFmgQtzFeJSJzeNGIablzHzw+OYBTMLqdXO7wmiSMeEgixq\nWgCYaBrjGCNePUDSzi2rsyCDTF6nwfKmAFeae7o5rx1SLE12IyEuZvLfu7FUCy1s\nRf0rTr8htg1PrR4f4vJYGZ5GiwiMD2C19XUgj1QSjxKFRVkJpiBzCwD3PhDuK5pg\nWp/Ji9+kPL0MSg/BhzbCPFuXS7u5kJ0+EXpv3cvJlW0d1sZgem9cLu9OIyQ24LLt\nmRBlmSJbmLZEj+dhvNKunv16CeEAcdcAcxMIMVmX7xgMAfzt59s5nnAsOlWi22hZ\nocW9l//XdGalY/7/GOj1L+r458mXjN4SpQ2S4jsxleDR3Rj0AoiJIHIco7d6jC/j\n9yP8BS5BltmCwFEi8KS+aN2ft+EfmkePo+2xY9pg69MM5nisd+xCyWRCq4dfhTPZ\nR/mc1Fot9R2BGseaoidaSX5ewLrrLY/T+4fTKlvCXhqeRrjO1oZeNLrjH9MSQmBs\np1ROwZBocGphnuyzTg/ahjZkgVweBLkoQEFY/K4bSkQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.6.4","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://releases.passman.cc/passman_2.6.4.tar.gz","created":"2026-10-10T23:04:45.268761Z","licenses":["agpl"],"lastModified":"2026-10-10T23:04:45.319424Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"Kkp5dKhWSLyiu4iM92YGpi0WppeqgAGcsP8tIMBM9LANrxCl/mMQYh02u0+C1hYz\nE4g+o7pI6JcKbPZzQLbYpCxlvXlIQtzUNEvX0RXrc+7D9bQTQSeDwP+GGtpOYcct\nE8dbGZ9NIXd3XURdhlyxnrl0gwVZ/Mk3hv852f2ryIiqSy6Qv2ymx7VdeqV5D7Zo\nvRLtMWR86rd6ejQDXBBakgc9oNUw6TTnKDRR/ZfdZkN7+/6psP2C3aZcDNeqli4t\nY1ofTClWiKnVwavuHd28lJFdDMGltMjuBkgsYDfqgY7zBIOkiRSexqxTAc+nqght\nG8aygtMlLDlBTdr+JLwPwjI8MNr9fcjd/glc9RDV/kSlQ9PHPtjF1DCbvhiBIkiz\njI+c7Ouf+qXGge+lTABewIdSSm+25OsPInA7Vr6zugEi50x1Uz9oZkeww8D0eePX\nER/GoIL3nUXTgIHW9vM3O+jiq2JOaBknCpM72kRuRWeNQGRQ5W5iRHthuc9/rjUV\n4Gi0Jb3/NDRgDYiT7SHrTAXeUg6xlbW5hSJzW8rDe1aBIbINaCyEbHZCVg+rb6Xx\n+xTlw+7/9xioGVyQR8zsR5rzVOyzA6JcOINFu/ttJFV+YaYHHVPDmQy1jWD9LhRk\n/ISEx1jSdPHqB7iGrZvLeUUvzD7kc698D7cfqoLnTr8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.6.3","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://releases.passman.cc/passman_2.6.3.tar.gz","created":"2026-09-22T20:11:13.582652Z","licenses":["agpl"],"lastModified":"2026-09-22T20:11:13.647282Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"blFA1tm3csKcYaVs8SyLFothYjIOuX5wiOsGYv17rQSzA41as85YBV3fHM8IUbnp\nNs2b4Qu9hXrGYJRbcJ3BmZtX/yfM6coUfkbumgdq08gE5labBP5fJSwrFk9LpK44\nUndU9MumenCTiA2tKcdH1VYtzcb8orefIfIu3mUUW3pzcsFzNdSdjScXuctHv20k\n7GOcwMywLsnOlUyU/jTMaEyqiEZ2ZIcmo6pB/qGt7YZgJtQFheSlWopf4gha71cI\nhPCjZcozxTQBfQBFtMmSerbshmjk4DAClmE/ymGhQXAUuhBquL1l3mEiRF6zJEAW\nbNNgur7ptMGgrCtdrqKM+jvVv7ThSopPfEou/zTZM3fG4NZJf1dA9KyECrLOPXUe\nmTLYD5E96Jf2sAFsammn6FcbuK2AG5qxMdtV4z/5C4+VmVZVR00XoeC3q4q45GOP\nRyFdPcVRpxR9eQYzOpdHwTA1E3cZVdZff2kqRtUD1m8GpdV0u0wXDSlmgRRJVmjN\nCGEMy+RVHes6aN8TQKui5B1x6uhGh06h8QP3VmNLzsiu/IUkY7QXC24YcnK3Cali\nvq72pPzKHb/GvX35wUB1HEvmmrngk4ZUdWLXcqm+78xXMF9d+NTr63b1d12l1v58\n4+JkdM6tznlYJd7VxtG2QrlZti/tT0QH2vFDnMZC7Ns=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9pbWcucGFzc21hbi5jYy9vdmVydmlldy5wbmc=","smallThumbnail":"https://img.passman.cc/thumbs/overview.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9pbWcucGFzc21hbi5jYy9lZGl0X2NyZWRlbnRpYWwucG5n","smallThumbnail":"https://img.passman.cc/thumbs/edit_credential.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9pbWcucGFzc21hbi5jYy9zaGFyZV9jcmVkZW50aWFsLnBuZw==","smallThumbnail":"https://img.passman.cc/thumbs/share_credential.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9pbWcucGFzc21hbi5jYy9wYXNzd29yZF9hdWRpdC5wbmc=","smallThumbnail":"https://img.passman.cc/thumbs/password_audit.png"}],"videos":[],"translations":{"en":{"name":"Passman","summary":"Passman is a full-featured password manager.","description":"**Passman** is a full-featured, open source password manager for Nextcloud.\n\n## Features:\n- Vaults\n- Vault key is never sent to the server\n- Browser extension for easy access to passwords\n- Android app for on the road access\n- Credentials are client side encrypted with 256bit AES\n- Credentials are server side encrypted with 256bit AES\n- Ability to add custom fields to credentials\n- Built-in OTP (One Time Password) generator\n- Password analyzer\n- Share passwords internally and via link in a secure manner.\n- Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is)\n\n## Demo\nFor a demo of this app visit [https://demo.passman.cc](https://demo.passman.cc)"}},"isFeatured":false,"authors":[{"name":"Timo Triebensky","mail":"","homepage":"https://github.com/binsky08"},{"name":"Sander Brand","mail":"","homepage":"https://github.com/brantje"},{"name":"Marcos Zuriaga","mail":"","homepage":"https://github.com/animalillo"}],"ratingRecent":0.5,"ratingOverall":0.8863636363636364,"ratingNumRecent":0,"ratingNumOverall":22,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhDUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTkwMTMwMTMwMjA5WhcNMjkwNTA3MTMwMjA5WjASMRAwDgYD\nVQQDDAdwYXNzbWFuMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwT1/\nhO/RSUkj0T9a879LPjy4c5V7FBDffEh6H/n1aiOEzofr8vqP3wJ4ZLwIvpZIZNFC\nCY4HjBTIgk+QOlAv2oV2w/8XxkSQ708H3m99GFNRQg9EztjiIeKn7y1HhFOeiVaF\nEq6R1Tnre8cjzv6/yf1f1EFpPY3ptCefUjdLfpU/YrPhFxGLS+n5hyr8b6EszqKm\n6NhGI09sd1Wb1y8o+dtQIQr24gWeo3l3QGLxjcJQqHCxE38rGdTNd04qDEm69BMD\nKjk4/JmUBBOn0svg9IAks+4nDnpr3IABfcnKYlmAucVEMNMYfA6kXXWEALsE2yo9\n8Y7GeV8En5Ztn4w3Pt2HMNpJV2m7MWWocSbF+ocp8oJ0cIEcthBubiE2kJhdPi5a\nYo5Bwh54hx53an+XfiDn+bfidvNz5TsJtmZykB84gLcdBQyMHrZcDcD6g74KdW3X\ndu/AnNUlJujhIU0fsw3UUPB845Q8XjbsIK5WhgaQeXJum8HXnXWkEfh6mE4j9l2Z\n6FJVe8fQlF5lspn6z3qYsWlYRalD3N9Qxy3vpRgCAYTPc3D+fbVP9KJw1cWux1+O\n0X/hNWMDOTenhgyQS+mqhRvdWq71mFjP/RXjOSfED3ipFamPofCz9QC7EERtvZPE\nPr8tBnbxnyTbAOQrN9N2mA9UJbOhk2l5kCSkDpMCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAdVaizjIBQLGFo3uzOVAjh5IoFt/DBiSjVYOOt4HacWDDkRKOmQp3AJaA\nZecbd+tF7OsIqrBzbbfK7wp1+y1pLrPNFQghhk7gVxBP9LscLQ1JmDK2vHv9rLAg\nd/gv90gf3HVeRQWntAhGTqtiSZkafcXJIRCM4GygoPy2zxeWeCTt85yEbQnuGZ4Z\nqtWS/yyJR5ZQEwYG7jFWRxaZicuUdWBhlUMafRUxzjxBhsQplGKSI66eFQ5VtB7L\nu/spPSSVhaun5BA1FlphB2TkgnzlCmxJa63nFY045e/Jq+IKMcqqZl/092gbI2EQ\n5EpZaQ1l6H5DBXwrz58a8WTPC2Mu8g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"text_templates","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/julien-nc/text_templates","issueTracker":"https://github.com/julien-nc/text_templates/issues","website":"https://github.com/julien-nc/text_templates","created":"2023-03-06T17:28:19.719666Z","lastModified":"2026-07-24T13:19:17.523662Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/text_templates/releases/download/v1.5.0/text_templates-v1.5.0.tar.gz","created":"2026-07-24T13:19:17.489294Z","licenses":["agpl"],"lastModified":"2026-07-24T13:19:17.579475Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=35","signature":"o41rUQCUxtpHkPxeCUArHQDvrVrVybl7NBOWDhCWptJMq8vx6tpJGMlw7d+CZEpqp2XOVb8EC3AgdD+ae/n8CyhCUDw8CcJZft5Md+dUpCgvMWhEbm06/LjPRchYOUD+1HapUdbZULQ9XpyTbn0b/AaBbWElJ2Pd8lES5hVs62E/61f1ImrhdH4UTq9eC5dnWGzWknTDSkclsLYdzSJTZ748/dQX0AsG19cvdMiKzL0gQO8LC8dl5QOQnoZcYcz3EAbENqwarm3vyvkepjUcgFXstpCkL03tGjS1x9EF9syP/3ePBJejTjuTYCIRA+u3qza9ZiwXUSvFIM67sqdrQxGigzMK92T4hbmREUSESZRVKogHTCa9BWaTcjm6m0aUzhVsUb1ir3XysjSHsimHoWw7ONLbdXynIOc/U0/gWd4n2O85/Jzgyrl7vrVJXMHqcjP0CbV6+gapzdBvomTFnHtMc5IWZdRwKoYYDRrOWV/ZqbuInhY6gJsSK9AAB3LjCrZnxiNYfEqwGbAIoraHxGhwAbPrWz+/tVQVwJPxLJaLb/19iPaOWQv7/5f6KOeFbr3k+GTdArAEsHxS5jpPVYFwfZ+pgiXkLLGDwyxDcgxPd9w/IJeMVsw5w//utKURNa+6OhK42MictTL/pEz2QvI+5dZPBkbmi4nhbE1e6SY=","translations":{"en":{"changelog":"### Added\n* Support for NC35 @janepie\n\n### Changed\n* updated dependencies @janepie"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy90ZXh0X3RlbXBsYXRlcy9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy90ZXh0X3RlbXBsYXRlcy9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy90ZXh0X3RlbXBsYXRlcy9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy90ZXh0X3RlbXBsYXRlcy9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDQuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Text templates","summary":"Quickly get text templates in Nextcloud","description":"This app adds a smart picker provider to quickly access text templates when using Text, Collectives, Talk, Mail\nor any place where the smart picker is integrated."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhIIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMzA2MTcxMTQ2WhcNMzMwNjExMTcxMTQ2WjAZMRcwFQYD\r\nVQQDDA50ZXh0X3RlbXBsYXRlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBANb6mFXuG1LjBeYN+HaXL3VyLgl9fGl1entZftnLEUmrqsXO9hRr6SchSoTh\r\nef+r5JL2/y56MYgK0djLweJixhMGpsVi/dObGvpzedXkGWuYCB90E5KLhfBdBGT+\r\nkDwNnP4VTMRM0h6vFpeZFkWUidnUaTG/NqSH2ICmtl72fgVHVKwcH9gAEetTs95t\r\nfXUF48RnzqkywRhe04t1VWuffD5/beRwxKUgOAaDP+pN1llr0IU9ERtmb/PnNXKH\r\n3EvBemyLZJqPKJ5UE0oBYM062ywTjVtGh46L58+cFqhqTjVeJhvMJkrTceF+0Vtg\r\n0N9KOSkfEIR2G6WJAs1P6osa/eGrJqaxkeG+Aqan21KLRQ5VTKXQuqmSz25NY75B\r\n+Lxpt4HtbHijhb5jiz98mpIYs7aLnGi22OQMjjUsSVWvkQQk1gWiD3kejori4Y/3\r\n3STJJuZXHnM2kYYHNsw+o028rpm9KIT0xbJaSDLMut3UUdqzOIHZCZIzxs6kBv66\r\nW8gkINrtnIkvvcUe6Kj+eqJgeQYBEjnmDGXdvSP+xiK0oSmDEITsy0BTq+zVjdYR\r\nv75MIs8vej1eOdJUsxhJTmu7hEY7cBGOuoslCXpD+CeBbflU1LB4ND7lnC/I5S3O\r\nQxHyWy5sjoVlDKNsK4e+MR94TEIpOJR9XPDJXPnoFeOh76ZFAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAHm/ni77SRRz27vwLd0RLFZKnDO7G8R+YoWjIIDwHZZw5YJb\r\nhPJlBE3+u09oExKWy5JwefY41oNjYEX0coh/NNMfSR1EOn81m4cebXZVo42gF/NR\r\nwudkSK473lH451bWFb0Y2CuE7jT/6xQzkDyLVOrngJevMDVkc0v9TtOmk7Kd/qVY\r\nd7H1A5g8GTAQIDvP8aZ6E0Xga4vAEKo5x1+I8o9+/A7bzQ95SATgYQNNuvTzSKXE\r\nnhBgyo6rIhkPlm6vF9MHY9IEvtZ0WO2IXfCxw2GtbQmiMPHYvMZ+MtPTZmUJoQHU\r\ngu50kN4lS95Hed/pi0a11s16HWQqEG7pb1dFEUU=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"intravox","categories":["office","organization","social"],"userDocs":"https://voxcloud.nl/docs/en/intravox/user/editor/","adminDocs":"https://voxcloud.nl/docs/en/intravox/admin/guide/","developerDocs":"https://voxcloud.nl/docs/en/intravox/architecture/api-development/","issueTracker":"https://github.com/nextcloud/IntraVox/issues","website":"https://voxcloud.nl","created":"2025-12-03T11:07:38.721251Z","lastModified":"2026-09-25T07:30:03.631082Z","releases":[{"version":"3.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v3.1.2/intravox-3.1.2.tar.gz","created":"2026-09-25T07:30:03.554228Z","licenses":["agpl"],"lastModified":"2026-09-25T07:30:03.720431Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"XY9Zh6Q2+rqp6PCcPXjm28KnfTGhdNbbIJIuFEyHM9Itl2PwSsZwT5a3uNhlr2jULsdN5RhxBGO9riUCfuJ8qilk/EM44viUNIUUxmQP0iON0GgDst3cn84EVPDSkjA9hSPhHVeqT4W98fv/wnQTzof8zG5xMNh9rDP6D0pRK45PaN1fQSHKwHxZJoj6yk1L84DH+deU7T4YdGDDeexyFfbHfmA9VvHcZq2ktRbtnS2LU3Y+QzJ725YPauHvbqkDTrqSwJs1JErTl8KNvs9O9XuazeRA4CqGo5o+9zstUvyqlC0/jC9xuzd9SSOSK/2zdG1KE4Gsv0TGau9mbsgmu15owlzxbb9kKucJWn1lktgBIqt5HAd7WCgYGEenMv6deKlrOzDbnfMALNNTog7zjgtRrxVu+yKa/Wz7t9zZsYrXxRmevrszjIKBif0HFS0XVTXTY44Ks0TDzlDQrnF7yH+hiwEg6troyBXWRSb9zODVV3O0XMvBWXPLmQIyiiLqXtg4JQ6rHKTBojAOtGzI7pwUwqwC7O00TwzPYrwDLzenZamXx5286muysoDRajL6eYNrDdqnK3Uy9GW8DBOXU8jBQpQUI28vGf4rCq+vfKi0frLWVkjGqSKCdhWdkcg3DJKdMFAKR7QOWhEp/26X3/uRJFa2gBWGIp7LiqJrOcM=","translations":{"en":{"changelog":"### Security\n\n- **Connection credentials stay on the server.** A feed connection's webservice\n  token is attached to the outbound request when the server fetches a file, and\n  never travels to the browser. Instances using a Moodle connection are advised\n  to upgrade; if that connection was configured with an administrator token,\n  rotate it in Moodle afterwards. A connection with a scoped service account is\n  unaffected in practice. Anonymous readers on a public share continue to\n  receive no connection credentials at all.\n\n### Fixed\n\n- **Public pages took 2.2 seconds, and got slower with every feed widget on\n  them.** A shared page was located by trying one language after another instead\n  of looking it up directly, and the checks a share performs before serving a\n  feed each re-read the whole share from disk. Both now read what they need once\n  per request, through the page index, with the previous lookup as fallback. A\n  refused lookup went from 0.75s to 0.22s, a batch of ten feeds 1.2s to 0.1s.\n- **Every authenticated page load spent 300ms deciding which language to read\n  from.** Resolving a language folder's homepage pointer walked the whole tree —\n  302ms on 429 folders — and a single page load pays it eight times. It resolves\n  through the index now: 297ms to 17ms.\n- **A page of feed widgets could hang for a minute and a half without making a\n  single request.** A reader waited up to five seconds for whoever was already\n  fetching a feed, per feed, one after another. That contradicted the\n  surrounding design, which serves a stale copy precisely so nobody waits behind\n  someone else's refetch. A batch no longer waits: 25.9s to 0.45s.\n- **A Dutch shared page built its breadcrumb from the English navigation**, for\n  the same reason: the language it settled on also chose the navigation to read.\n- **Feed items showed only a date when the summary was switched on**, and feed\n  images published protocol-relative (`//host/path`) were dropped rather than\n  shown.\n\n### Changed\n\n- **The widget editors are Nextcloud dialogs.** All seven were rebuilt against\n  the platform's own form rules: a proper dialog frame with the widget type in\n  the title and the actions in the footer, one label pattern, a 900px reading\n  measure instead of the modal's full 1200px, sentence-case section headings,\n  and no italic helper text. The close button no longer sits on the first field,\n  the sliders no longer rename themselves while you drag, and the layout works\n  in dark mode. Photo story and file story gained the widget title field the\n  other five already had, and the 22 hand-rolled checkboxes are now\n  `NcCheckboxRadioSwitch` — Nextcloud keeps the glyph at icon size and makes the\n  row the target, which is why ours looked oversized beside them.\n- **The app no longer waits for the language check before loading anything\n  else.** Opening a page fetched the language content status first and only then\n  started on pages, navigation, footer and settings, none of which need it. They\n  now start together, and the check is awaited only where it is read.\n- **Feeds on one page load in one request when they are cached, and in parallel\n  chunks when they are not.** A fixed small batch made the common warm case\n  slower (65ms against 98ms) and asked three workers to do one worker's job. The\n  size now adapts to what the server reports about the cache.\n- **The page limit that was never enforced is gone.** `LicenseService` carried a\n  50-page-per-language limit that nothing called and no screen displayed, but it\n  made a blocking call to the licence server on every admin settings render, and\n  it coloured the per-language bar as though an installation had exceeded a cap\n  that does not exist. The bar now scales against the busiest language, which is\n  what that overview compares. The three response fields it fed are removed from\n  the OpenAPI spec as well.\n- **The admin guide says what the capacity numbers need**, and 58 broken\n  screenshots in the Dutch documentation now resolve."}},"signatureDigest":"sha512"},{"version":"3.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v3.1.1/intravox-3.1.1.tar.gz","created":"2026-09-24T05:11:29.537363Z","licenses":["agpl"],"lastModified":"2026-09-24T05:11:29.675483Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"XGyo7k5146Qhkee4i2otlXf2fDxstRE6vas8C6hLGVK/a10BWXjuaHOsrfwKHe07arynFOELBHs+8Pkfs8B/WL1tik3HuFI9qdY8PzA9RppKYZ3qDFn3Ae4hhrQJytOY7a9X0PImF7iLhPofWKHV2VGb7hlcMGNWwqbWnQVWGJy2ZGLtcHjB+aeKkpr1NmpkhVll2CcAUvwww8+E1d6F/RY1uJqYtzH9qNkC4zTo4hwfojdvgLBE6L99P8SiTr8+cQWYA/JpL8OhcZsOUEKKLKE/6e5DhDEE+k2DNSRQnLMA44KX0WCxG28SFg7AqKbWJvHNRkVVO8xDfO4++safSQrhC8mE2U57k5PjwW6Eg/cS/q3MgqTKYR/hbgRrgvFCIUzMNs6Hl37gMnwPTO9m4zHOcchvAcbCmqo8BpmWHpIYlBzYXSVkdJ7NbJAU0hSY0hiovogDTmMuudoYFvVHd8peZCVjpfCWx78qPnW0rZsybpCna/oNmMH4808rbflSOao5em6sOXNu/Tey/PyWwbF0KSXo9qvCCpvPSSjmhrSBtfa7jegtCcNLzUitL4r1CxKr0qrf7NYaT1THKxL2MaSQ4IWU+CmA7ZgEPwle+N90r8pJLGsZxnQx3lF6PX1+9UtVI50moBTdZ6KdevmfbaOQ5u21AfWxYOn0dbUOtlU=","translations":{"en":{"changelog":"### Changed\n\n- **Dutch, French and Spanish are complete again.** The 28 feed strings that\n  shipped untranslated in 3.1.0 are translated, along with the older gaps\n  Spanish still carried (the translation feature, the subscription notices):\n  137 strings in total, all three languages now at 1409/1409. German reached\n  100% through the community in the same window.\n\n### Fixed\n\n- **Conflicting group rights still cancelled each other out across folder\n  levels.** ([#116](https://github.com/nextcloud/IntraVox/issues/116)) 3.1.0\n  merged rules that sat on the *same* path, but administrators do not write two\n  rules on one folder — they set a right on a department folder and another on\n  the space above it. Those were still folded onto each other in path order, so\n  the deeper rule decided the outcome and one of the user's two groups was\n  ignored, which is exactly what the reporter saw after upgrading.\n\n  groupfolders has two ways of combining inherited rules, switched by the\n  `acl-inherit-per-user` app config. IntraVox implemented only the default one\n  and never read the setting, so on an instance configured to merge per user it\n  disagreed with the file list beside it. It now reads the setting and\n  reproduces both modes: per-mapping (each group's own chain is resolved first,\n  then merged with allow overwriting deny) and per-path (the documented\n  default, where a deeper deny does overwrite). Files stays the truth either\n  way.\n\n  Two further divergences from upstream came out of the same reading. A\n  per-user rule was applied last and allowed to overwrite the group rules;\n  upstream puts the user mapping in the same pool, where allow still beats deny.\n  And rules were matched on the mapping id alone, so a group and a Team sharing\n  an id string were folded into one accumulator — they are two id spaces and are\n  now kept apart, which also keeps a federated `user@remote` uid on its own.\n\n  The rule arithmetic moved to `AclRuleFolder`, where it is a pure function and\n  testable without a Nextcloud instance;\n  `tests/Unit/Service/PermissionAclInheritanceTest.php` pins all ten cases and\n  `scripts/acl-mapping-matrix.php` gained the parent/child scenario whose\n  absence let this ship."}},"signatureDigest":"sha512"},{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v3.1.0/intravox-3.1.0.tar.gz","created":"2026-09-22T16:49:07.524838Z","licenses":["agpl"],"lastModified":"2026-09-22T16:49:07.659666Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"CdLFyShRvp9/VRJ2m4377xQWoA9Ww7gcXnKYPkWxqX2kzRKFvSHYTbTO3bY8tfvfpHL6LBEZcrb0OLM/8W+Z6JMwaIyIyK7ccrzws+ZTwbVkfSIXxyduGTUM3w0/nNAmkmtCLG7ptP1CnDJrml0fP4nLCAI7/+m7F8bEO3BdmB+aENfPsaE+VLG8vuaLV8XrAa2n8POQftB1tYTF2K1EzxWkszBbJoHXBgGEvQ6+D2XgXo6JYbkxoi7x4qQKNyJTFFSuXmK5VpFoEIqoIWWsaIlfH3gcq/Ao3b/VqPJf2lF8BrrHxXeQLfx48niPo7HAOSMdgn2puStG8ySTPeqE6HLq7TinBqbQAMbwKyZCyOlGYeca2HdFSTvgFC6XvnSZ7GztwyfZ0kMg1DIxhX3N9OBZAsFW/h1HpKlruND1rPHkNjMPJre0bz5TRjQG0FEwD+IEyUejp+WxFx0hAT4htXb+z49ZFWMU29O3zjTFP324i0Y4eI2++LgsRGToSg3hHfKxEKessiJaRcxOlQMnLIxi9X0Ff4dfI3JOKkAcV6a8GHgqKNPys5Qy+wKd87CgR2UNDUugEDfzWiu65vR96HXHlIwVXYFd1yynTXQZYb3UdFjsWHWNVS6qxbdHCMVy5EsqOlEO/O4XR9mC0PttzldceD/HVmfM30CHl0PgU5k=","translations":{"en":{"changelog":"### Added\n\n- **A feed widget can page its items instead of showing them all.** A new\n  \"Items per page\" setting shows a few at a time with arrows to reach the rest;\n  0, the default, keeps the old behaviour. On a page of ten widgets set to 5 of\n  20, a widget went from 2048px tall to 625px with all 20 still reachable. It\n  pages the *display*, not the fetch — the items are already cached, so turning\n  the page is an array slice: no request, no spinner, no rate-limit slot.\n  `tests/Integration/FeedLimitBenchmarkTest.php` records the measurement\n  (`INTRAVOX_BENCH_FEED=1`) and fails if that stops being true.\n\n- **The build fails on Vue syntax that compiles and does nothing.** ESLint now\n  runs in the gate, catching Vue 2 constructs that Vue 3 silently ignores and\n  duplicate object keys — both shipped this month, and neither is a compile\n  error. The rule set is deliberately small; three rules are off with the\n  reason in the config, since a gate that cannot pass on day one gets switched\n  off.\n\n- **The gate catches a listener bound to an event nobody emits.** For every\n  `@event` bound on a component from this repo, the check proves that component\n  emits it — including lazily registered ones. This fails silently by\n  construction: Vue attaches the listener either way and the feature simply\n  does not happen.\n\n### Changed\n\n- **The feed widget editor uses Nextcloud's own controls.** It was built from\n  13 raw `<select>` and `<input>` elements, so it looked like a form from a\n  different application. Title, feed URL, source type, layout, columns, sort\n  field and the display options are now `NcTextField`, `NcSelect` and\n  `NcCheckboxRadioSwitch`. Sort order became a radio pair rather than a toggle\n  that hid its alternative until pressed. The nine selects behind the\n  *connection* source type are unchanged: they carry dynamic option lists and\n  side effects that cannot be verified without a live connection.\n\n- **Feed text follows the Nextcloud type scale.** The widget used 12px\n  supporting text and 10px on mobile, below the platform's smallest size and\n  out of reach of any theme or accessibility setting. Metadata is now\n  `--font-size-small`, headlines `--default-font-size`.\n\n### Fixed\n\n- **Permissions ignored Teams.**\n  ([#116](https://github.com/nextcloud/IntraVox/issues/116)) A team folder\n  granted to a Team (circle), or a per-folder rule set on one, was invisible:\n  IntraVox matched the user's *groups* against the folder's group list, and a\n  circle grant carries no group id. Measured on a live install — a user with\n  read and write on two folders in Files was told she had no access at all. The\n  folder grant now comes from groupfolders' `getFolderPermissionsForUser()`,\n  which merges group and circle membership, and the rule layer queries both\n  mapping types.\n\n- **Conflicting rules on one path depended on row order.**\n  ([#116](https://github.com/nextcloud/IntraVox/issues/116)) Rules were folded\n  onto the result one at a time, so with two rules on the same file the last\n  one out of the database won and a deny could erase an allow. They are merged\n  first and applied once, which is what groupfolders does and documents as\n  \"allow overwrites deny\". `scripts/acl-mapping-matrix.php` reproduces both\n  against Files and against groupfolders' own ACL code.\n\n- **A user with no access to IntraVox was served the whole navigation tree.**\n  Navigation has an ACL-bypassing fallback so a department-only member still\n  gets a menu. Its gate asked whether the language folder was reachable, and\n  \"no\" covers two very different users. Found on a live install: a user with\n  zero permissions received seven top-level items — titles, the department\n  structure and every page id. The interface showed her one, because the\n  permission filter runs *after* the fetch. Page content stayed closed\n  throughout; the shape of the intranet did not. The fallback now requires an\n  IntraVox mount in the user's own view.\n\n- **A feed widget's URL and title were discarded on save.** The two text fields\n  bound with `:value.sync`, which Vue 3 removed: the field rendered its value\n  but nothing wrote typing back, so the URL looked accepted, saved empty, and\n  the preview had nothing to fetch. They use `v-model` now.\n\n- **A feed widget no longer suggests a title for a new widget.** The editor\n  offers the feed's own name for an empty title field, but `FeedWidget` stopped\n  emitting it — the lines were lost resolving a merge conflict while the editor\n  kept listening. Reported against `video.edu.nl`, but it affected every feed\n  since then.\n\n- **Feed items in a grid were unreadable in a narrow column.** The grid\n  declared `container-type` on itself, but a container query only matches\n  against an *ancestor* — so the query that should have collapsed to fewer\n  columns never fired. In a 433px column an 80px thumbnail left **16px** for\n  the headline. The container now wraps the grid, headlines get two lines, and\n  below 220px an item stacks.\n\n- **The feed widget's title sat 73px from its first item.** Most of it went on\n  a header holding one line of text, because the refresh control inherited the\n  default 34px clickable area. It uses `--clickable-area-small` now, which\n  still meets the WCAG 2.2 target size. Title to first item: 51px.\n\n- **On a phone the photo had become the item.** The image went full width at\n  160px tall — 68% of the item against 38px of headline, so the picture read as\n  the content and the headline as its caption. Mobile keeps the row layout with\n  a 96x72 thumbnail: the item shrank from 236px to 98px.\n\n- **Paging a feed widget moved the buttons under your finger.** A shorter last\n  page let the widget collapse, pulling the pager up as you reached for it. The\n  list now reserves the height of a full page while paging.\n\n- **Photo Story day maps show their basemap.** The map rendered as a grey\n  rectangle with markers correctly placed, because Nextcloud's default\n  `img-src` policy blocks third-party tiles and IntraVox never declared one.\n  The app now declares the origin of its own configured tile server, so\n  self-hosted tile servers keep working.\n\n- **The photo lightbox's mini-map is no longer an empty frame.** Same cause,\n  different directive: the location pill opens an openstreetmap.org embed that\n  `frame-src` blocked. That host is deliberately kept out of the admin\n  video-embed whitelist, so emptying that whitelist keeps meaning \"no video\n  embeds\".\n\n- **The details sidebar no longer reports \"Page not found\" on a cold load.** If\n  remembered as open, it mounted before the page had loaded and asked for\n  `/api/pages/undefined/metadata`, whose 404 was shown as though the page were\n  missing. The properties had loaded correctly a moment later, but the failing\n  request finished last and overwrote the good result. Both loaders now wait\n  for a real page and ignore a superseded response.\n\n- **`openapi.json` claimed a mount that returns 404.** The eight\n  `/api/v1/pages*` operations each listed a second server, `/apps/intravox`,\n  described as also serving them. It does not — those routes live only in the\n  `ocs` block, and the app mount answers 404. A generated client also had no\n  way to tell which base a write belonged to. Each now declares the OCS mount\n  alone; the top-level server stays the app mount, where the other 142 paths\n  genuinely live.\n\n- **A comment's reactions were written straight into a prop.** `CommentItem`\n  assigned `this.comment.reactions`, which worked because the object is shared\n  by reference but made the child the owner of the parent's data. It emits\n  `update` now, which the parent already merges by id."}},"signatureDigest":"sha512"},{"version":"3.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v3.0.0/intravox-3.0.0.tar.gz","created":"2026-09-18T07:38:02.587166Z","licenses":["agpl"],"lastModified":"2026-09-18T07:38:02.732579Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"JW43NDrf5TUtBDVYEqyCCFstqYlZU0/au4O+qF4Az4GiUE/bN9cl++gmM5jIBRe8K9+4zk/ZtVvmpCj8ifBX5Fy/FNUPw+7nEuBT3tsP6R9+3W2K9lDKv9mrJvwG9UsyybyjKMH02SNzb7BNieWgp4nDxg1NKNaCzAXIr2mZUjeF3lK0f+92maCJ8bGCFZgHWl2AAlx7FRpfhjdoGzxa7+Cl8dABsx1OQVd2Nx+iJ22HRQ+gD5gqW9f0ky6AT58TojJLxSz8ma7/9qS0FL6X65N8ZmAuNq4CkIiy0f7XtkBpkYf0vJCLFkmf7fXLIQA9jC/moKwyOgaT9aA8VfWAN/BGmXezAaKU5Zs9RofMAu3P/4eJucIRA8nzKZf0Wz1qej/LKIBeVJ/toLZO0VQXSyeRdWjMnSX1KQn5psOKkFqEb42yErpretEuLYF8kt5X2dWw9nl0s6TaDUt8gqSNJ6Uk2uhtqx4eaZI8ZMCjWDuswZfeaDDx6Tgisr1ADR4tO3awSWR7C03baxon6tnmDEtp90bXSJ48BVrbsuu5kTel172FocwZH89MNcLTc0nHVkWR3v5AAVe2A73nikCXdrHsHsYTokPrSzVBJvpncg18o4DlCVK7oQiBL++vj1N7y2bIEvwhD2Tnouj/2CzbhgEBXOBcI7GzBIUmtjpjpsk=","translations":{"en":{"changelog":"A structural release: the page engine was taken apart, and almost nothing about\nusing IntraVox changes. The version is 3.0.0 because the internals moved\nwholesale, not because the app does anything new.\n\nAlongside the refactor, IntraVox went through a full security review, and this\nrelease includes the resulting hardening across access control, sharing, media\nhandling, import and the feed and directory integrations. The details below are\nkept deliberately general.\n\nTwo reported behaviours *do* change, both of them things that were wrong:\nNextcloud admins are no longer forced back into \"IntraVox Admins\" on every\nupdate (#113), and feed items without a link no longer behave like broken ones\n(#114). Everything else should look and work exactly as 2.7.1 did.\n\n### Security\n\nA security review led to a set of hardening changes. None require any action\nwhen upgrading, and none change how content is stored. In summary:\n\n- **Access control is enforced consistently on every endpoint.** Reading,\n  editing, locking, analytics, template management, page comments and the news\n  feed all check the caller's permissions on the specific page or resource, and\n  respect Team folder Advanced Permissions (ACLs) and a page's publication state\n  (draft, scheduled or expired). Export and import now require administering the\n  Team folder IntraVox lives in, rather than being available to any account.\n\n- **Public shares only expose what the sharer can see.** Every share endpoint —\n  the page tree, page and media content, news and navigation — is served through\n  the share owner's own ACL-filtered view, so a folder share never republishes\n  pages or files an ACL hides from the person who shared it. Share widgets that\n  read from a configured connection are limited to the data the share actually\n  publishes.\n\n- **Uploaded and imported media are handled safely.** Files served to the\n  browser use the correct content type and disposition, SVGs are sanitised, and\n  ZIP imports apply the same file-type restrictions and sanitisation as a normal\n  upload. Template, media and share identifiers are validated to keep file\n  access within IntraVox's own folders.\n\n- **Integrations require IntraVox access and do not leak internals.** The feed\n  and people/directory endpoints require IntraVox access, the OAuth callback is\n  bound to the session that started it, the outbound image proxy stays restricted\n  to signed, external addresses, and error responses no longer expose internal\n  details. Server-side identifiers for new pages are always assigned by the\n  server.\n\nThese were found during our own review before release; there is no indication of\nany of them having been exploited.\n\n### Changed\n\n- **Export and import are now for Team folder administrators, not only\n  Nextcloud admins.** Both used to require membership of the server's `admin`\n  group. That was the wrong question: they act on the whole folder, so what\n  matters is who administers *that folder* — which Nextcloud already answers\n  through the Team folder's \"Manage advanced permissions\". A delegated manager\n  can now export and import without being a server administrator, continuing\n  where the \"IntraVox Admins\" change below leaves off\n  ([#113](https://github.com/nextcloud/IntraVox/issues/113)): managing knowledge\n  and administering a server stay different jobs.\n\n  Nextcloud admins keep access, so nothing is taken away from an existing\n  installation. Note that this is an API-level change: the export and import\n  screens still live in the Nextcloud admin settings, so a delegated manager\n  reaches them through the API rather than that page for now.\n\n### Fixed\n\n- **Pages loaded again after the split.** `FolderContext` resolved the user's\n  home directory instead of the mounted IntraVox Team folder, because the\n  dependency container filled a seam meant only for tests. The app rendered\n  with no pages at all — HTTP 200, nothing in the log. It now refuses to be\n  built that way.\n\n- **`occ` commands work again.** The same class captured the user id when the\n  container built it, but `occ` sets the user during `execute()`, long after.\n  Every command that touches pages — `intravox:reindex`, `intravox:import`,\n  `intravox:repair-entities` — failed with \"User not logged in\". The user is\n  now resolved when asked for, not when constructed.\n\n- **Nextcloud admins are no longer permanently IntraVox admins.**\n  ([#113](https://github.com/nextcloud/IntraVox/issues/113)) Setup seeded every\n  member of the `admin` group into \"IntraVox Admins\" and granted `admin` full\n  rights on the Team folder. Both were re-applied on *every app update*, because\n  setup runs as a repair step — so removing someone worked until the next update\n  put them back. The intent was sound: an installation whose owner leaves should\n  not become unmanageable. Enforcing it forever was not, because managing\n  knowledge and administering a server are different jobs, held by different\n  people.\n\n  Provisioning now happens once. Existing installations keep exactly the access\n  they have — the first run after upgrading still seeds — and only the\n  overwriting stops. After that, removing someone from \"IntraVox Admins\", or\n  setting the `admin` group to read-only on the Team folder, sticks. Both are\n  done in the Team folders interface; IntraVox simply stops overruling it.\n\n  This is not a security boundary, and is not meant as one: a Nextcloud admin\n  can always add themselves back. What changes is that they no longer get it by\n  default.\n\n- **Feed items without a link no longer navigate back to the page they sit on.**\n  ([#114](https://github.com/nextcloud/IntraVox/issues/114)) An item whose\n  connection returned no URL rendered as `<a href=\"\">`, and an empty `href`\n  resolves to the current document — so clicking it reloaded the IntraVox page,\n  looking like a broken link rather than an absent one. Such items are now plain\n  text. This affects any custom connection whose URL mapping comes back empty.\n\n- **Team folder ACLs are still honoured after the split.**\n  ([#112](https://github.com/nextcloud/IntraVox/issues/112)) The 2.7.1 fix\n  scoped page-tree and News cache entries per user when Advanced Permissions\n  are on. That fix lived in `PageService`, which this release deletes, so it\n  was re-applied by hand to the services that inherited the caches. An\n  integration test now asserts both call sites, because a hand-carried security\n  fix is exactly the kind that gets dropped.\n\n### Added\n\n- **An integration suite that actually runs.** 33 tests against a real\n  Nextcloud with real Team folders, exercising the folder resolution and ACL\n  paths that unit tests cannot reach — they stub the filesystem away. It runs\n  in CI against Nextcloud 32, 33, 34 and 35.\n\n  The three bugs above were all invisible to 1321 passing unit tests. Two of\n  them shipped an empty app.\n\n### Compatibility\n\nNextcloud 32–35, PHP 8.2 or newer. Note that Nextcloud 35 itself requires PHP\n8.3, so that combination needs 8.3 regardless of what this app asks for.\n\nUpgrading is a normal app update: no migration, no configuration change, and\nno change to how content is stored on disk."}},"signatureDigest":"sha512"},{"version":"2.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v2.7.1/intravox-2.7.1.tar.gz","created":"2026-09-07T12:51:21.057072Z","licenses":["agpl"],"lastModified":"2026-09-07T12:51:21.203186Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"l5tjRBVJS2ulaSlZQocSPu7o7k8dAIaddBIZQHUsUcBwTljRMh2i/zoKKmkRVrqebf2/Ng3JoThkXFogfyrCpbq5VrGnIdt4gEKuhpNJlW2Ia9+dAo2gKFOXUgqc7uSzQkIUvtJHTEU560lINmHkwVreJPnoIoBW4amejkVfiY3W+dCKskRtNCmIJO8LGS8Dn/OzU5OZMPpXc3z8LhOGm+W3Ht7rmYweTb4gJgOhlhbELujdFhP8rrCfci5KUQcrXNT3x4x61iZb6zuCokTJS8k00bsVs7LWvHCON/6KxHktYqxHC/lvqA9wkmvnNkvKkl3iHwkzLnR2fBQkxBjbGejG+QM+HHiBDnZwJmo2286/AJkj0VrjS+Jfe3ENFAepKOTjEbCO/G4DvLdX71KTo90cmW9+HuLnJYRQJrvTYYx5p1sDt1g1mjDn46ZzwwNYKVLX47j71/3iNgvBwyvudcABFKqmyiou89OJ4S/r1D9ofY137ggMHDW6Nj7zan0Xe6r4TQ8OV71hzEBGR7j2ncK3Yaoll8P8Q//Lf//Dh/PzJ1ZgCGE+OVLzu4nrxm9JnNzIkSrwFh3wbuk2W4KV1f1IO/qtiVFDnIh5BpJLV2NBnSpcQTRzkXprtLGY0Jm0FwGiUXUqBgdX6lMLJYJ1r8M7xrsrilLCwstTcEBz44Q=","translations":{"en":{"changelog":"### Fixed\n\n- **Navigation and footer no longer served past an explicit ACL deny.**\n  ([#112](https://github.com/nextcloud/IntraVox/issues/112)) IntraVox reads\n  `navigation.json` and `footer.json` through the user's own view and falls back\n  to a system-context read when that fails — a department-only member has no\n  read right on the language root and must still get a menu. An explicit deny on\n  the *file* arrived as the same failure, so the fallback served exactly what the\n  administrator had forbidden, page titles included. The fallback is now limited\n  to the case it exists for: if a user can reach the language folder, a file they\n  cannot see there is a deliberate deny and stays denied. The check fails open, so\n  an unexpected error can never blank out everyone's menu.\n\n- **The Edit button no longer appears for a navigation or footer nobody may\n  save.** ([#112](https://github.com/nextcloud/IntraVox/issues/112)) The check\n  asked whether the language *folder* was writable, while saving writes\n  `navigation.json`; an ACL denying just that file left an Edit affordance whose\n  save then failed with a permission error. It now gates on the file — the same\n  correction pages received in\n  [#70](https://github.com/nextcloud/IntraVox/issues/70).\n\n- **Pages no longer stay invisible for users who are allowed to read them.**\n  ([#112](https://github.com/nextcloud/IntraVox/issues/112)) The page tree is\n  cached per group set, which assumes group members see the same content. With\n  Advanced Permissions that does not hold: rights differ per user *within* a\n  group, so whoever loaded a page first decided what the rest of their group saw\n  for the next five minutes. Cache entries are now scoped to the user whenever\n  ACLs are enabled; installations without ACLs keep the shared, cheaper key and\n  see no change. The News widget draws from the same pages and got the same\n  treatment."}},"signatureDigest":"sha512"},{"version":"2.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntraVox/releases/download/v2.7.0/intravox-2.7.0.tar.gz","created":"2026-09-05T09:45:34.756264Z","licenses":["agpl"],"lastModified":"2026-09-05T09:45:34.900302Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"QwFLMXoGmMG5DKlqiGs4ygYlWNxdu+AUCxr5kDQNkqYDIzW/drgthPxB0TkZ2QlUtViA8ErqUMszSj9hz4ysfJFHmsSko71gaFIQvqBgMzw7gYfS54LtDvvy6XJyZsmtpU7QKqpyNHvLzq3+NyVlWvGFHNrbyhjZ/VIGhUDGN8p+m7FaAj3KIERTk+27UYLKh9ZMKoQbAFBMC8t5d8BKXIFkhAL38xiUQUqRC8g0VAFhQtimSIQh7xwvkmwG/WVzbtJ6GssYCHVG1noKqu4a7iRfFr+mSD7udqJSbR27TiKd8j4twlNEXTx4cLKIXVGRwiAWZp8IT0XOTmRRxn1nlqbTh5XIasXIRzyH0Ef0EOZOtuWCO/6xxGn33eLGntUouNf9QkWITtcg/sQBvuB3mZVHb/BOM1jlceb8vcKzxV/BOb1LNxMRKXtHzRM6MKR+XKb7GucW4yIYWt/K4PjT+HL4VCI1aclteGjaSmci9z+a/Pc+otT2rs/FbblUXiZiN42sZk6OzPz5tLmsgKjtG520iW/oiwWxycXzjP4yEca1vxSgxcQwFIuWkjpbkYUV6zMJ8faL3qkHwotMRc4yTzFF3V78JH/MdhSUQW8COt5ih7C1HpKLw+ksFsMp2lBACwE/vQwi9zoIJ0hFgf2vxnTID5o/65SrvW9kuWK+YtM=","translations":{"en":{"changelog":"### Changed\n\n- **Nextcloud 35 support declared** — `info.xml` now ships\n  `<nextcloud min-version=\"32\" max-version=\"35\"/>`. Verified on a running\n  Nextcloud 35 (beta 4 through RC3): the app installs, indexes and renders, and\n  survives the upgrades between candidates with its data intact. The RC3 round\n  ran with MetaVox alongside it, so the MetaVox-backed filters are covered too —\n  that needs MetaVox 2.2.2 or later, the first release allowing Nextcloud 35.\n\n### Added\n\n- **Filters can now exclude instead of only include.** Text fields already had\n  \"does not contain\", but the group field and other choice fields offered no\n  negation at all — so \"everyone in Domain Users except Board Members and\n  Service accounts\" could not be expressed without creating a dedicated\n  directory group to feed the widget. Two operators are added: **does not\n  equal** and **is none of**. On a field holding several values, such as group\n  membership, they mean \"in none of these\".\n  ([#108](https://github.com/nextcloud/IntraVox/issues/108))\n\n### Fixed\n\n- **A News widget filtering on a MetaVox multiselect field returned a 500.**\n  MetaVox stores a multiselect as one `;#`-joined string and IntraVox never\n  split it. Two more operators failed silently on the same cause: \"is one of\"\n  and \"contains all\" matched nothing, so a correctly configured widget showed\n  \"no news\" while matching pages existed.\n  ([#111](https://github.com/nextcloud/IntraVox/issues/111))\n\n- **\"Does not contain\" quietly matched everything** instead of excluding: the\n  chosen values never reached the matcher for that one operator.\n\n- **Picking several filter values needed ctrl/cmd-click, with nothing saying\n  so.** The MetaVox filter row used plain `<select>` elements, so every click\n  replaced the previous choice. The three controls now use `NcSelect` like the\n  rest of the app: chips with their own remove button, a search box once the\n  list grows, and the list stays open while picking.\n  ([#111](https://github.com/nextcloud/IntraVox/issues/111))\n\n- **Text was unreadable on a widget with a coloured background.** The three\n  status colours are pale pastels in the Nextcloud theme but were treated as\n  dark, forcing white text onto near-white. On a People widget set to one of\n  those, names, roles and email addresses were effectively invisible.\n\n- **The filter panel's hover and count badges sat below the contrast minimum.**\n  Their translucent white overlays lightened the background towards the white\n  text; they now darken instead. \"Clear all\" no longer renders in a near-\n  invisible brown on a coloured widget.\n\n- **Translator hints written in Vue templates never reached the translators.**\n  The POT generator only read `// TRANSLATORS:` line comments, so the\n  HTML-comment form used inside a `<template>` was dropped."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL2ludHJhdm94JTIwaG9tZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL3BhZ2VzdHJ1Y3R1cmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL0ludHJhdm94JTIwZWRpdC1wYWdlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL2NhbGVuZGFyd2lkZ2V0LWludHJvLmdpZg==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL1Blb3BsZS1vdmVydmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL05ld3N3aWRnZXQtY2Fycm91c2VsLmdpZg==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL3RyYW5zbGF0aW9ucy1jcmVhdGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL1RlbXBsYXRlcy1TZWxlY3QtdGVtcGxhdGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyYVZveC9tYWluL3NjcmVlbnNob3RzL0VuZ2FnZW1lbnQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"IntraVox","summary":"A SharePoint alternative for Nextcloud — intranet pages you build yourself, on your own servers","description":"IntraVox turns Nextcloud into a full intranet: pages built with a visual drag-and-drop editor, no code required.\n\n**Where your content lives**\nIntraVox runs wherever you run Nextcloud — your own hardware, an EU host, on-premises. It is open source, so it can be audited. Your content is not a platform format: pages are plain files and JSON in a folder, which keeps leaving cheap if you ever need to.\n\n**Building pages**\n* Drag-and-drop widgets in flexible grids (1–5 columns), 7 page templates\n* Text with tables and markdown, images, video, links, files\n* Calendar, People, News, Photo Story and File Story widgets\n* Draft/published workflow, scheduled publication, page locking\n\n**Finding your way**\n* A page structure panel that stays open while you navigate, with a table of contents of the page you are reading\n* Navigation editor with mega menu and sidebar options\n* Nextcloud Unified Search integration (Ctrl+K)\n\n**Working together**\n* Reactions, threaded comments and version history with one-click restore\n* Multilingual pages: link language versions, and readers are offered the one in their language\n* Public sharing, with optional password protection\n* Department access control through Team folders ACL\n\n**Requirements:** Nextcloud 32–35, PHP 8.2+ (Nextcloud 35 itself requires PHP 8.3), Team folders."},"nl":{"name":"IntraVox","summary":"Een SharePoint-alternatief voor Nextcloud — intranetpagina's die je zelf bouwt, op je eigen servers","description":"IntraVox maakt van Nextcloud een volwaardig intranet: pagina's die je bouwt met een visuele drag-and-drop-editor, zonder code.\n\n**Waar je content staat**\nIntraVox draait waar jij Nextcloud draait — eigen hardware, EU-hoster, on-premises. Open source, dus auditeerbaar. Je content is geen platformformaat: pagina's zijn gewone bestanden en JSON in een map, wat vertrekken goedkoop houdt als je dat ooit nodig hebt.\n\n**Pagina's bouwen**\n* Drag-and-drop-widgets in flexibele rasters (1–5 kolommen), 7 sjablonen\n* Tekst met tabellen en markdown, afbeeldingen, video, links, bestanden\n* Widgets voor agenda, personen, nieuws, fotoverhalen en documentbibliotheken\n* Concept/gepubliceerd, geplande publicatie, paginavergrendeling\n\n**De weg vinden**\n* Een paginastructuur-paneel dat open blijft tijdens het navigeren, met een inhoudsopgave van de pagina die je leest\n* Navigatie-editor met megamenu en zijbalk\n* Integratie met Nextcloud Unified Search (Ctrl+K)\n\n**Samenwerken**\n* Reacties, discussies en versiegeschiedenis met herstel in één klik\n* Meertalige pagina's: koppel taalversies, lezers krijgen die in hun eigen taal aangeboden\n* Publiek delen, optioneel met wachtwoord\n* Toegang per afdeling via Team folders-ACL\n\n**Vereisten:** Nextcloud 32–35, PHP 8.2+ (Nextcloud 35 vereist zelf PHP 8.3), Team folders."},"de":{"name":"IntraVox","summary":"Eine SharePoint-Alternative für Nextcloud — Intranetseiten, die Sie selbst bauen, auf Ihren Servern","description":"IntraVox macht aus Nextcloud ein vollwertiges Intranet: Seiten, die Sie mit einem visuellen Drag-and-drop-Editor bauen — ohne Code.\n\n**Wo Ihre Inhalte liegen**\nIntraVox läuft dort, wo Sie Nextcloud betreiben — eigene Hardware, EU-Hoster, on-premises. Open Source und damit prüfbar. Ihre Inhalte stecken in keinem Plattformformat: Seiten sind gewöhnliche Dateien und JSON in einem Ordner. Das hält einen Wechsel günstig, falls er nötig wird.\n\n**Seiten bauen**\n* Drag-and-drop-Widgets in flexiblen Rastern (1–5 Spalten), 7 Vorlagen\n* Text mit Tabellen und Markdown, Bilder, Video, Links, Dateien\n* Widgets für Kalender, Personen, News, Fotostrecken und Dokumentbibliotheken\n* Entwurf/Veröffentlicht, geplante Veröffentlichung, Seitensperre\n\n**Orientierung**\n* Ein Seitenstruktur-Panel, das beim Navigieren geöffnet bleibt — mit einem Inhaltsverzeichnis der Seite, die Sie gerade lesen\n* Navigations-Editor mit Mega-Menü und Seitenleiste\n* Anbindung an die Nextcloud-Suche (Strg+K)\n\n**Zusammenarbeiten**\n* Reaktionen, Kommentare und Versionsverlauf mit Wiederherstellung per Klick\n* Mehrsprachige Seiten: Sprachversionen verknüpfen, Lesende bekommen ihre eigene angeboten\n* Öffentliches Teilen, auf Wunsch mit Passwort\n* Zugriff pro Abteilung über Team-Folders-ACL\n\n**Voraussetzungen:** Nextcloud 32–35, PHP 8.2+ (Nextcloud 35 selbst erfordert PHP 8.3), Team folders."},"fr":{"name":"IntraVox","summary":"Une alternative à SharePoint pour Nextcloud — des pages intranet que vous créez, sur vos serveurs","description":"IntraVox transforme Nextcloud en véritable intranet : des pages que vous construisez avec un éditeur visuel par glisser-déposer, sans code.\n\n**Où vivent vos contenus**\nIntraVox s'exécute là où vous exécutez Nextcloud — votre matériel, un hébergeur européen, sur site. Open source, donc auditable. Vos contenus ne sont pas enfermés dans un format propriétaire : les pages sont de simples fichiers et du JSON dans un dossier, ce qui rend un départ peu coûteux le jour où il s'impose.\n\n**Construire des pages**\n* Widgets en glisser-déposer sur des grilles souples (1 à 5 colonnes), 7 modèles\n* Texte avec tableaux et markdown, images, vidéo, liens, fichiers\n* Widgets agenda, personnes, actualités, galeries photo et bibliothèques de documents\n* Brouillon/publié, publication programmée, verrouillage des pages\n\n**S'orienter**\n* Un panneau de structure qui reste ouvert pendant la navigation, avec le sommaire de la page que vous lisez\n* Éditeur de navigation avec méga-menu et barre latérale\n* Intégration à la recherche unifiée de Nextcloud (Ctrl+K)\n\n**Travailler ensemble**\n* Réactions, commentaires et historique des versions avec restauration en un clic\n* Pages multilingues : liez les versions, chaque lecteur se voit proposer la sienne\n* Partage public, avec mot de passe en option\n* Accès par service via les ACL des dossiers d'équipe\n\n**Prérequis :** Nextcloud 32–35, PHP 8.2+ (Nextcloud 35 requiert lui-même PHP 8.3), Team folders."},"es":{"name":"IntraVox","summary":"Una alternativa a SharePoint para Nextcloud: páginas de intranet propias, en tus propios servidores","description":"IntraVox convierte Nextcloud en una intranet completa: páginas que construyes con un editor visual de arrastrar y soltar, sin escribir código.\n\n**Dónde viven tus contenidos**\nIntraVox se ejecuta donde ejecutas Nextcloud: tu propio hardware, un proveedor europeo, on-premises. Es código abierto, así que puede auditarse. Tus contenidos no quedan atrapados en un formato propietario: las páginas son archivos normales y JSON en una carpeta, lo que abarata la salida el día que la necesites.\n\n**Construir páginas**\n* Widgets de arrastrar y soltar en cuadrículas flexibles (1–5 columnas), 7 plantillas\n* Texto con tablas y markdown, imágenes, vídeo, enlaces, archivos\n* Widgets de calendario, personas, noticias, historias fotográficas y bibliotecas de documentos\n* Borrador/publicado, publicación programada, bloqueo de páginas\n\n**Orientarse**\n* Un panel de estructura que permanece abierto mientras navegas, con el índice de la página que estás leyendo\n* Editor de navegación con megamenú y barra lateral\n* Integración con la búsqueda unificada de Nextcloud (Ctrl+K)\n\n**Trabajar juntos**\n* Reacciones, comentarios e historial de versiones con restauración en un clic\n* Páginas multilingües: enlaza las versiones y cada lector recibe la suya\n* Compartición pública, con contraseña opcional\n* Acceso por departamento mediante ACL de carpetas de equipo\n\n**Requisitos:** Nextcloud 32–35, PHP 8.2+ (Nextcloud 35 requiere PHP 8.3), Team folders."}},"isFeatured":false,"authors":[{"name":"VoxCloud","mail":"info@voxcloud.nl","homepage":"https://voxcloud.nl"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhLYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUxMjExMTAwNjEzWhcNMzYwMzE4MTAwNjEzWjATMREwDwYD\r\nVQQDDAhpbnRyYXZveDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQN\r\nYNfXarB7ojw5TU/UgymTbNrz7ciF0CESRsSMzXEUHdmgXQtB7uy6TBfptRkaA4T9\r\nLJ3Vu5JQvQq4LAXWcQq3NYjY5KyhNGsg8pXl1Kbg1LxecKDgRTgEP/aWzsz0bpPf\r\nvp3pzbhKuagA7v7hZGtihkAu7dY9ddNE5F2pTrTe+AhZhAwfYl1bOAEl/EDJ8DW/\r\niD3JZpA2kL6AuvciyszTkUuFz9PKBh1049jmK3YvWMmYyGcacExV0X/InAMyryt+\r\ninle8X+0I+3Fbq+V3ErTnDeAYV98HdPbAmIstrPXrKmg8qDlKT7huu5H4t6eRBL1\r\nDuoQhdBAx3nUq/KTueWe77U4d62j4QjkG46/AjAdE6qHEMpDL4mpjoxMs5uE3jG7\r\nD5GvIkuugO9dFphV2pTmMTPwmzwa5X2hIR89LL1MxvoEz9lOFZJvspWcBeT041OS\r\nBFI8pDNJmhca0q9XRvnSPXNiSYiqB0NztBDV5D8rNG4SfSSOWmxaJdMK5MWjDVfX\r\nP94RbjrtPiKAx7Za18XZVkJImUJKM8L3iTgBFfi39y3um+Ni8u7quc9/7i95mJWA\r\n8dF8vg1S6ncnrM+rHf7//cwDT+MH53RPWqo7e04BZgMwbZR5lD1cTWxTPY1YTW/Q\r\nYoC7WC4ojeXJle/5tchQmhmkL3EtKGudyAhu+0vlAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBABhIXx8zpg18WiN2cAvEY/UeArKCfMe219a9ThTC8R9ChZHdfJ+QSrso\r\n9Ut22V+9ByKKlbL1AEr6FG3sc8k35ceMdBVbcO9ZfPw3JWj+dbZIsEHoHUl4c2H9\r\nrmGfOKMX8cqi6BMarVS9prn9ooGKCsiK7qyUm30nGaq6d6tNxp09ZY0Tr3PcOV8p\r\nsGki2uPuoW3COGlSStV+VXiGD1HfUWGv/WKmTF4cS2Uqs8cy2eWjZeXvjYfmyV/J\r\nBP3dUfHDC6/aSUdgo7AeBcGaqht4dxkvO3QGAY4nUZOgTaWxtr+65Lh5dRWm18h9\r\nH6ufHVEsUE5+REYBGF1ngVctIzrgcdU=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"hideuseremails","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/simo-bimo/nextcloud-hide-user-emails/issues","website":"https://github.com/simo-bimo/nextcloud-hide-user-emails","created":"2026-04-03T21:54:48.712571Z","lastModified":"2026-04-04T06:22:53.882906Z","releases":[{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <42.0.0","minIntSize":32,"download":"https://github.com/simo-bimo/nextcloud-hide-user-emails/releases/download/v0.1.1/hideuseremails-v0.1.1.tar.gz","created":"2026-04-04T06:22:53.874052Z","licenses":["agpl"],"lastModified":"2026-04-04T06:22:53.918484Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=41","signature":"eoMG49vm6P6k6vhnqjiNb+TKUjWHdDuIrlbmEwZsbT8DYTVrfanh9YKrFjVzpaqn\nOt4A4p7JkCSgIeBmQD9Vl1GnjXdWrRh/aQOFXrrOJ+YOUhc7EphPlKhdHzmx4NgU\nMH5bf037qbkblrX9aEn2YphnZbd1G5VpsF0AMqnaG+uiqHUaVYKElJvrM8cbT4sU\nL0dUyJ2J6kirD4VgWp5zBOHrVVzN60Pls08DYc+6AF6+42f7EOsG5H3PwYkKl79B\nKoos4CBl3axQcrTyQRJr0KmcsCK2BFSS0FZ1JBtFEKYDxm5S9P31UQujEiQR/wqT\nPfUwsOCNRr0xiPJ65Jx099JpJ7Anx/vpXCDhTpk/us9aJoiUvjdQOOQgROp6sod5\njE+5bawxXDAxlc5PR2DsNcjczY3gow09M+ED4ryHPb941WpksEOHbrSQGeLnCqZ1\nL5jI+C7O0jAPksKNQonPq7tzT58yCKxsmPf8zWxXGV1BEsUz/pcDyHM4XYXoP0JJ\njMdezG6pSl8CPFR6wJyXkCZIZZ974DhU0NHBaE47N3nEk1UU+TBZJBPAH394RHh+\n8scS2uZExwQ0f8E3VpSmda2Ov7qfEy/Arq5LccYHL21jxPS2S4L3PeEkuFtiH/4I\n+afgJxUIj5+NKaaJWCmSxo8UZXKDiPeFm7PeFa6Egqg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <42.0.0","minIntSize":32,"download":"https://github.com/simo-bimo/nextcloud-hide-user-emails/releases/download/v0.1.0/hideuseremails-v0.1.0.tar.gz","created":"2026-04-03T22:43:08.623441Z","licenses":["agpl"],"lastModified":"2026-04-03T22:43:08.675192Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=41","signature":"lOR0ISFJr7zfXZEVpsR7Zmn0cEyG4KdFOJPgiK/jgXEAdwP5OvpOXHmS0ifHwtU/\nwq+TSlLrx+Ol5hB8lpVXmO9BL7VApGzotopLMez7gq0YonnEpTFACKg0toDWhE8P\nY5QjFWjlNn55CWdkyGc6XAal/WUadiJnI0Pd3vimJt/DUKfubdHAOstO7EJcbJyN\nKQDo3nmyPJTWR1owRyFGa9r1m/zLdIjE/SSxUQvHWxU+V5EsVFWtqfky0GLlR4tq\nmj2AmKFgINieC9s3LUIIU9ISRZbOucWxlvIUjg/WF6tKIXQ6XlV33waY5K/qVSxs\nt/YktpN7wU6V5WY19nksHTSxNLUiEfJQnc9T2NUIpMBM93N3T/MLRbYtJKvW20NR\nQ0k4l31LIOqA+tQf/17HHAX+Rc5wun6TOfT641kP1Hgwsg3ENWip5vnNBQM4aI7B\nEDLQZqd9/HefGkJk6POlLM88yJq1yNmvp2RP48ob6KVNJqJzq+WXV5gz0aJMjNm0\nDJQgrnM2Us8gpyWb3/va+ATcsAXlbZxAuLRQRzqlErte46OWssaGhfGReCEfejDd\n1d19ZNIhgoby9U/5XqoD8luCgwrC+n5uYzAgO2Qad2u+wuj2fXguWs1YrJGiTsiD\nvdM+NjcAbjmqFRfTpGBy4BZd+gNpvfGZx9o8r1Kr1yk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Hide User Emails","summary":"An extension for hiding user emails in the UI.","description":"# Hide User Emails\nA nextcloud app that hides user emails from appearing in the interface. They are hidden in share search results, talk user lists and the contacts app. This does not make it impossible to deduce email addresses - they are still loaded by the backend, it simply hides them in the interface so they are not immediately obvious."}},"isFeatured":false,"authors":[{"name":"Simon Dowd","mail":"simon@anldowd.com","homepage":"https://github.com/simo-bimo"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhMrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDAzMDkxNDA3WhcNMzYwNzA5MDkxNDA3WjAZMRcwFQYD\nVQQDDA5oaWRldXNlcmVtYWlsczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBANPd4EueNiHJfsC6V3HG//3Vj+iMlyyclkhkxQusLdZP0jbQzkDUEsmBZ1B0\nBQt4ca/VZhb0NUy5NOEbO9fbFZLHHvOY3B8XpcGbo1uUU3rZ2EkLM2F1QOi4eBNi\n8xhAF+D2Yob3KCEIhixSNjzbaql1fUM3FcvgsnIHI/e0RAoE7b78Rv9KHkBdcpYa\nnQIQOtIu8y9u+WirGPvqxyRf6Rh0o7b2aF33Fgudvmt84DcGIFeHlFoQkNTCuAvt\n6CFzq7P+KxiKgvKJvqiI83V23wiGB7pLxEuDZI/z5Y4GwxA/LUufJjNdd8Ypj/gk\nqtiRCYG4d0HlV4smtlAFRF61u++N/Ot5Gjd9TqZ/ZBJ1E7jbQOi3WfFEV40h/vxv\nIvXU/5EKZ8XbCUpzFIsF7bFbic7NNVGVFkSlc+xRULsulrQ6tRGwciPGXBDWQHTF\nbv9QcFmRTvSHArjWmi5gMkMdjEl6uRANm5E4WRgsw9Z6nDbi/+Owfo30vNMn4Plj\nA49QlNpL6SAK5vXPVveTQgr+VS/ZA/5Jdmx3vxUWLCc+PXh+7rGzUG6R1wnsVGTp\nXo2DGeXY3Ot4FWp7lfBWwwalJahvPZPgghtdNbGe/BPJlN5o/+h4gPnhbu2trxjz\nMyaT4/E5vUk2OloKBnhv3EH50boNSFxG6h+AyUnK1vmBCjSrAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAAIRDMHraJvEjQaja5pBM+a12J6Z2l/QgtSOSjo43TXfXpEF\njf53KdqgVVbOCv6kGfDRcKeM2MT1k054JwzmHz90HF8gnJaKmDIDrWoPjw5jbCZY\nhNKnLocQxbGH5L5iEGDJ3910MviewImbgYIw6krBS1LD4ncQ5mJUlKTE5CcbeM48\nzOl82cV/UFLzz0M8Klytmr33AVoyBzQeHY2U6TCkbpbyXBkK3SryzX7Pex/xIhT5\nXrScsapeeXM2QHENxa1heqKi9W9R1YAEiPI9HriW4F/YejKsF9wrb3p1VPsMNULJ\nI/nPXJj3Q+wu7BLxBxD5EMB0rGtmLnkTKsPOxKw=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"vereinsbuchhaltung","categories":["office","organization"],"userDocs":"https://github.com/AndiMb/nc_vereinsbuchhaltung/blob/main/HANDBUCH.md","adminDocs":"https://github.com/AndiMb/nc_vereinsbuchhaltung/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/AndiMb/nc_vereinsbuchhaltung/issues","website":"https://github.com/AndiMb/nc_vereinsbuchhaltung","created":"2026-07-29T14:29:54.439740Z","lastModified":"2026-10-18T22:13:15.332189Z","releases":[{"version":"0.40.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.40.0/vereinsbuchhaltung-0.40.0.tar.gz","created":"2026-10-18T22:13:15.321696Z","licenses":["agpl"],"lastModified":"2026-10-18T22:13:15.382462Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"PMkIwasqyVPCG+sfgpmJuZA6CsJSimMX5izGq/ns3Chbgg9LmBXtOvOITVqjmj3DF+rM1eqVKRrK8NsSWLCPXeSUizND/kxXNWXdNAu7rmF6d1RCOhb8MTk5omSLpnK8iLzCThI8VWrlu8O6cPhEjKJAP51a/xgFfK1eAB3c5wZBILEmxK0vTrq41OdHfKhZOjOZGd29AhLqt4S7q4Ml0Ix88iW8CRTv78qCq2wCiXD2uidQ7FoFMHK8rmZtpETnx7R3c/JFVsqxGhzZTLu1P+6FI1H+eIXzI+AVKcCXlPOYhBgxw9sLoSPxvdaUneCSvIDvIDgVXF+7e438HX+phvY3SrDdhwbxVzffi1f24r9GFNIG0v3xHIBulFVt1el781l2L6ikofvDW64yU0rJgbSm9UTmG9BEfHt7PvpiCLquouTjRj2YcJoNJwhht6ZN+RwOIttIC8phv/taQGJadovFl1u0dDsQJTi85ueengJ1LYYJNHA0arNmJsW3tmJkV3Dk39Iz0qo6oyUaeTNVEVMAw4x+9AjtCB79DRG1MUhALdnbm8qc3zjDwJbr2J/eq+w8YpuTYa/WYjSF1uJk3RQwxHEQm7voIZIN+3KfQVm7t2wE5VRzcwQifcLQujwDQXxEfkm0ZHLqtoZf4U2MovShcraz54spqjBlb9Ye2dw=","translations":{"en":{"changelog":"**Changed:**\n- **Entry dialog: receipt picker next to the form.** \"Pick from folder\" no\n  longer opens a second dialog; the entry dialog widens and shows the watched\n  folder as a side panel, so date, amount and text stay visible while picking\n  (on mobile the picker replaces the form until it is closed).\n- **Entry dialog: Save and Cancel always visible.** The button bar sticks to\n  the bottom; a shadow shows that there is more content below.\n- **Receipts are stored on save.** For existing entries too, attached files\n  and files picked from the folder are only uploaded or linked when you click\n  \"Save\"; until then they are listed as pending and closing asks first.\n  Likewise, unlinking or deleting a receipt only takes effect on save – until\n  then it is shown struck through and can be restored with \"Undo\".\n- **Comment as popover.** The comment icon in the entry list and account\n  statement shows the comment in a popover on hover (or keyboard focus)\n  instead of a tooltip.\n\n**Added:**\n- **Unsaved changes warning.** Closing the entry dialog with changed fields or\n  receipts not yet uploaded asks whether to discard the changes.\n\n**Fixed:**\n- The icon in the \"Pick from folder\" button was still misaligned."}},"signatureDigest":"sha512"},{"version":"0.39.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.39.0/vereinsbuchhaltung-0.39.0.tar.gz","created":"2026-10-18T09:34:21.319510Z","licenses":["agpl"],"lastModified":"2026-10-18T09:34:21.370237Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"zVFE76EM7OKp7HdRltsZaknJJA8MqL6d5MWOFv2Hc3lEGg2MX6Jnac4rLiBvPQE06gde+1wscT9wGRhtnfiaC5fRkEc9uoZGMHhF/qzS8gyUlfzJiFdBWS0xR8Yt5UgDqHlExkdUzTeCg+fsfNgbL4Owgout9rCzfokkqvi0NQkAJLMw35pLZZcKKaX9VL63LWwVcJJsi41Zcf72Y1Bg9gvTMff40r511dgvovQy2mWbzRaVhu3Zt8qCfYTsncSEu4K7oqfHeDc5rRJB3TIWoI1Nu6eVmqbc1d1GByqCU6cTWaCha0mqmOw/Gg2E/64kzmL5FnWj3325/4v0bXDe3H1CWHlCzWwTSA+4NePjUeKVlRG1a8EvqHDLKnsnIaxm1rIFv1f4SRofhlE8nse9IQ1bkqOSMwh9DI36qfSCKmeYWhWRP57doFSdQxqdnZbV6+6fzyuF+gjaWAb8PAkrD50IgaqQQSs7kzFO2wTZAPm2paNi5oRfb1S2V9wphc816bvj8CpEHw5hacHveFOLqWTH/R0fjmtJgDd2I91wk2aDrF/P0bAdKv+cM5ewnIYAhv7aI4i4PI4oCFwQi7hV3jPyI62azFOsXZQUK14Uf5QMjlAjSIKokI/IvZ/xtmxfz/VwM7a+0ajNL7Flebmx/BnyG5Ig6dZbAh96+qQNKOM=","translations":{"en":{"changelog":"**Changed:**\n- **Structured report: manage templates freely.** The app creates the two\n  formerly built-in templates as ordinary templates the first time the tab is\n  opened – they can now be edited and deleted directly. \"More actions → Add\n  standard templates\" brings them back in their current version. New is \"New\n  template\" to start from scratch (all accounts with budget, actual and\n  balance). Saved print or CSV links to the former built-in templates\n  (`template=builtin:…`) no longer work; the interface then selects the first\n  existing template."}},"signatureDigest":"sha512"},{"version":"0.38.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.38.0/vereinsbuchhaltung-0.38.0.tar.gz","created":"2026-10-17T20:03:48.483092Z","licenses":["agpl"],"lastModified":"2026-10-17T20:03:48.558096Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"srz3xdlL5t3DzddB3nwO+O7DMIVM8+kXpaES1krBrP2NM1c/GHB21XKxM/4i8/PRBTwxMxlAGQOrbWu7hpn6EOiZP92mKQPfaTKQfxKMNMnY2mDObvyy6meuIgdZerZCxgkXKPgTDowRW5516B6wxMvRE4aBt7EE58Vo5rrLrGrhX9Xh3GUdrqdw8LKpNr0jE93GnCnhc+n9UtUUnJ1tE72zHecBtGsYMAcsLRrifugC3izhTBvtStWTPXoof8vf99AWzFPGLhkSDtqBrlmaCiL7wWKo3Gxe3gvfxn3ufb1NY1Y39rUzXj0bkcL+KZO428wqoybMXzKv1FC4z+NkFhEWGP9oPA3KtWRSNRr+6JvAYFCDGfQvcHvVktjg5O0h+E3mmRfSnvwCG5v4mcaZuli+f7cBxSVtRG+tR1Lj75DmTKYlEeNt626VBWMXjUsMFAJR094pNutRMgSLcXZxZZUzZg+WU0d6SHZc9nNVitPm3Hv/azNJMdxZFTfnMvAyx9lllJGFtE7C83DM1eOhPlrMLYoZ5HfVzEolyA4PmEBrShVmd3IvNFzVBdEh0rfliU9LYVBLQt3VOZBchL1Dh594I4j4xttUQwbvbPyWALGE8fH+LfS0eP8ony5cAb+jtvsdn2vRSO9JrTz2m/aeHIvOK7tnRV5EuiEOR4w0070=","translations":{"en":{"changelog":"**New:**\n- **Structured report by template** (Reports → Structured report): the same\n  budget and postings, structured by a template – with a print page and CSV\n  export. Built in are \"Budget by title groups (funding body)\" (income and\n  expenses, each split into the non-profit area and the projects per title\n  group) and \"Result by area and project\" (non-profit area, then income,\n  expenses and difference per project). Own templates are created as a copy:\n  sections, grouping levels, columns (budget, actual, actual − budget, also\n  for earlier periods) and groups can be set freely without changing accounts\n  or analysis groups. Accounts no template covers appear under \"Accounts not\n  covered\", so the grand total always matches the financial plan.\n- **Financial plan with a comparison period** (#114): for every account the\n  financial plan shows the value of another period – the previous year's\n  actual by default, switchable to its plan – together with the change in\n  euros and percent. The total tiles, the print view (then in landscape)\n  and the CSV export (three columns at the end) use the comparison too.\n- Inactive accounts are marked \"inactive\" in the financial plan and no\n  longer get a budget field unless they already have a budget."}},"signatureDigest":"sha512"},{"version":"0.37.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.37.0/vereinsbuchhaltung-0.37.0.tar.gz","created":"2026-10-17T12:15:27.149650Z","licenses":["agpl"],"lastModified":"2026-10-17T12:15:27.207337Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Agxz1+G+WwYSuEFDgNROhlakFGOhFYAdCH83RGhwp5NQ7c3Ciw/H/fKwH5eGhEeNqIvtoHBZ8qKQRVwyJDXeShE7POFgiwJz43GEjYgLDfWTf6drONUizZIsekF98tRKBulmgM7h0p9faSx2StLvozB3HrpyligGs89AAJRW2rkRieHRl7njHewvwOHDAPmtXizv3YTMhOu5H0e81qvwPFo3+gJACTQTEOCHM9lSKXn77juzKYSRRdOS/TtTq8y84ZIi162ZTLJNrKy38Aqk0fvciDrWkXQfMJqSfa8rvLybBE6wfvHnyQd+S1lAJ2foBMRi0KbgZrUPWm+zNTZPgknWotgCHAB7uUTZBSFro+i1/lXUc6kpYZmvFqHrgPrBrPdVHldId6dLfp1jP62JBOjJrTtH7EfV83zEr7h4LqqIkB7fvFaA7wS65NdVh64mnfESjyKVFi6mHpjhZEMov8lBi+DcF/GtBBb46lgiDAuJ1YzzlwJoebQCpKOZHbLQOfBOfmauyfAr314LPUjBPJ71AUbMrTUXeCnz+LhPKYOUSkEVrQXS4NHkQYZUqRSH+DyqJRqDkurZ2e7Zju319cMAlWPxmLQhx87cy/CsEvSjEOU0exbtZUVAosMz2UNQrsLHw01MvF6fNOEu5YSWk9CU9Ad6Qnfzsa0KVwxLgvg=","translations":{"en":{"changelog":"**New:**\n- **Financial plan as a tree:** budget and actual are summed over the account\n  hierarchy. When the budget sits on a summary account and entries are posted\n  to its sub-accounts, those entries count towards the summary account – an\n  overrun is visible at a glance. The financial plan opens expanded down to\n  the budget level, can be fully expanded or collapsed and filtered to \"Only\n  items needing attention\" (expenses over budget, entries without a budget,\n  budget conflicts). Budget snapshots are shown as a tree, too.\n- **One budget level per branch:** once an account has a budget, its parent\n  and sub-accounts are locked for further budget figures (\"Budgeted on …\").\n  Older double budgets are marked as budget conflicts and can be resolved by\n  setting one of the figures to 0.\n- **Budget vs. actual as a print page** for the board, down to the budget\n  level, to a fixed level or complete; items needing attention are marked\n  with symbols that remain readable in black and white.\n\n**Changed:**\n- **Financial-plan CSV export:** new columns level, budget Σ, actual Σ,\n  difference Σ and status – **the column order has changed**. If you process\n  the file in your own spreadsheet, adjust the column mapping.\n- **Treasurer's report: budget vs. actual down to the budget level.** When\n  the budget sits on a summary account and entries are posted to its\n  sub-accounts, the treasurer's report now shows one row with plan and actual\n  including the sub-accounts – instead of the budget against €0 and the\n  actual against a €0 budget on separate rows. Income and expenses are listed\n  separately, items needing attention carry the same marks as the\n  financial-plan print. Totals and the result are unchanged (#139)."}},"signatureDigest":"sha512"},{"version":"0.36.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.36.2/vereinsbuchhaltung-0.36.2.tar.gz","created":"2026-10-14T19:00:00.425317Z","licenses":["agpl"],"lastModified":"2026-10-14T19:00:00.483087Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"1119UO9+eT1w+uZ3YCa2rXLHxttnd5qytApQ8fcuuRocyWAypNJ2nBqGoCrkUQVd5ZMBX35TmIzpKXWkWyvw2Jm6stLsGnjb1xIwYlB3yPqCsIQPJNwcuwm/5M7DratHsSRyfa57bA569z6mk/z/4Dn1uGbuqy/tgyE8RzefrHIn6/csHirU82Fnbx/YeBTAORf6LbpH0mZ2VA7oUPlataadOg7Jr+AtM5FlNHNDEm7TdniJC6KpcmGxsXnVgQNePU1QtU4ICfA8qqTkVTCkVxtn+mMVoVgSwAj+nI2mFeLEk1g3HUqw6YhWDwM7MT9Iffz/vZHBgZf501GubPMcIEfbvmgGvkTOYEK0b12yWO3RWtXEx4iDqfKUtNZ0dOujc6ayRX+JlnWXwkbTXnSBs5J0OfTFAzKQYCEx6vTxoU467PcOpYUWERraxeHu8+3E8k0+Y4Csz8Vs8lyEnJeeAuCbpbjVWWHTnEFcOoDfxu0z8fp9q+EYFlUUL8O2ZZ5F/IQqfxs+cEm75kXU5BjBX1VoR/xPGlBx3mCrMCiylXoNQ1Dncd1XUgyvqcGFtLA8TCNVZ1Ybdst1mDLZJUWFSZKVFrzeMgtmS0FK7wKwOeEE4HTwZzTotWWX0pKHOuhE+SKbUqgxSURlEAmbpmaT4FIqxaPGmKmsT0ZJ4uUjsaU=","translations":{"en":{"changelog":"**New:**\n- **Comments on entries:** The entry dialog can hold a note on the entry,\n  e.g. for a later review or the audit. It is not part of the posting itself\n  and therefore stays editable in a closed fiscal year; every change is\n  recorded in the change log. In the lists an icon shows the comment as a\n  tooltip; on mobile it appears on the card.\n- **Account sheet as CSV and print view:** The account statement in the\n  Accounts tab can be exported for the selected period – with the balance\n  carried forward, running balance and a totals row, optionally including\n  sub-accounts.\n- **Sortable account statement:** Clicking a column header sorts the table;\n  each row keeps its running balance.\n\n**Improved:**\n- Long account names in the account list show the full name on hover.\n\n**Fixed:**\n- \"Pick from folder\" in the entry dialog: on the first open after loading\n  the page, the entry dialog kept pulling the focus out of the popup's search\n  field, so typing went nowhere. The entry, account, import, split, help,\n  setup and \"What's new\" dialogs now also reliably take the focus every time\n  they open."}},"signatureDigest":"sha512"},{"version":"0.36.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.36.1/vereinsbuchhaltung-0.36.1.tar.gz","created":"2026-10-12T07:06:26.460470Z","licenses":["agpl"],"lastModified":"2026-10-12T07:49:37.906090Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"XRjrTAlDl1jKEgWjfLlEWyMnYkARVD9Dt2uvYhklURDQt9wbsW3svswjTk6Dz4N1V27YL+VX5wNy6OaL9c4IcZLS62VVnozqo/ijCzRz/5kX8jU8rRWIyUQSednMmLpb2Yd1GjgPaYWKPBmyOQ8k02swjypVa5n6XqOmQ/SD/FYSQqRoLr8DebUR0BZ7jSY2PVXghRbnhxmoUJL9W0QF667ehmwJ3LvO7SChdrVl4wsC1bkIJNIolZ4y1WrkDYnHcdTqvjSp5NKoLAGw7Vuk98NU3t74fd8t1DsSkgbSs/kfM6EvCB+KUmjEwQSoMU5jLq2gnZIKdPtN5EsZbBU9pyh0rg/Pb7JLE2IOEJkc5jCSYFirakcfjUOAanugontvuyRAm35V8Qgd57RebCP+qG4G4ZIULUVXpwTZwK5d0BCWvqMEjmEXGQ39CN72HHoYKDU9JixtwgfkQCSSecw7PZL5fsZtu/wMd7yyMFrHZwfNeCMlc98/IwsCYIPkG6y72C7VZbfM4LSFx+UM7ie494FsvEiLD8etM8rKsFSo4Yh8fBxU9Con/+H0RCJviSWjdv0EnfgMuGVHga0t4hduWYKKcC1Os//mHX54m2nICz+0dwjnbgFDYyDdvRXSA4PrMmLIMBju5pPCpA/IbxtgUE7ZL4VWQLT/LUUKshwhqHg=","translations":{"en":{"changelog":"**New:**\n- **\"Nextcloud account?\" column in the member list:** \"Yes\" for a linked\n  account, \"Link suggestion …\" when exactly one account carries the member's\n  email address, otherwise \"No\".\n- **Create a Nextcloud account when admitting a member:** \"Admit member\" can\n  ask for the details of the user management (account name, password or\n  invitation by email, groups, storage, language); it can be done later in the\n  record. Only administrators and group administrators see the section.\n- **Welcome email:** A template in the settings (\"Welcome email\") can be sent\n  when admitting a member and from the record to the member's email address –\n  independent of the Nextcloud account, adaptable for the individual case.\n\n**Changed:**\n- **Change bank details (My contribution):** The first choice now reads \"Same\n  account holder, only the IBAN has changed\".\n- **Default fee setting removed:** The setting is gone; amount and interval\n  come from the contribution group. In the CSV import, a row with a start\n  date but no amount uses the usual amount of its contribution group."}},"signatureDigest":"sha512"},{"version":"0.35.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.35.0/vereinsbuchhaltung-0.35.0.tar.gz","created":"2026-10-10T08:18:19.024619Z","licenses":["agpl"],"lastModified":"2026-10-10T08:18:19.803159Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Fs6T2qrsVPV5YWkJuM3AzSdIJxzNeFRCGp9mGQAKw1YkFgmUjx9xALHh5ItxtoYD49ovPmu6/T0aHrGEXS8UKn9kwOc2lX2CVsBG5N0OCSNmYt8A1N4F31h7CZOoaxMc+nudgnvaOG7r3Xe/XmOBzNRUMZhWqI3Fa48V0NoKsfNtOorNOQ4L/t3K/2YsqLtrYsv7f0IIfT9jYhJDTwHQ9ddLM1G47pEIsqqu8UIEQlfs/gTfk0ycxk5Z9YegDtEAYJQs6lZJ4A8n8/Tp6qwGcUwf7u6Ugtr/PZemC9xrMf5VUNRu/hU0ieZqhT6mU+ovmIDn36OoFb9foTiQYkQl7vwPe4Oun7jUmROWeAE0MMcC7EhK8yuIJux484uDs/GwYCHo+AlOM5k8RUfVi5akBw19gdDhp+jmXUnsM72xB41wX4A/G9L9FcaCKfkCo4AeWA5r2ZsXR4bLAL6DCRg6YCpRuXGMkrGeyP6/VcdRqFy7gux4NTLBLMnHlnXDrefjbsJfn+pistbe0XRXUA6LBhIJldLBPFSM26KtCRWJ6UrNko/QIjKetv+InNYO0N96+xBADlzgrmO8ncTaK6YbjDOn/VT67R0FPqJag9LSPeehEoeOmlAHlr8xXjkS8G1hvLVQzsdloqB+5nsirqgwlAhFuADMPYdaqK6iedwCs7o=","translations":{"en":{"changelog":"**New:**\n- **Members as master data of their own:** a person or an organization with a\n  record, member number, join and leave dates, no Nextcloud account needed; an\n  account is only linked after you confirm it. The payers of the previous\n  module become members on update, and a task asks you to check names and\n  email addresses (issue #65).\n- **Mandates with a lifecycle:** draft, active, suspended, ended – on paper\n  (the signature date releases the mandate) or electronically. Change the bank\n  details without a new signature, proof stored as a file in Nextcloud, a\n  history of every change, and automatic expiry after 36 months without a\n  collection, with an advance warning (issues #66, #100).\n- **Electronic mandate:** the member grants it via a one-time link in an email,\n  and the consent activates the mandate at once. The mandate text is versioned\n  (mandatory block plus your own wording) and can be maintained in the settings\n  (issues #67, #101).\n- **Correct or discard a draft:** a mandate in draft can be corrected or\n  discarded with a reason, without activating it first (issue #118).\n- **Contribution groups, assignments and claims:** monthly fee with a minimum,\n  interval and payment method (direct debit or transfer); partial months count\n  in full. Claims are created automatically, plus manual one-off claims\n  (issue #68).\n- **Contribution year independent of the fiscal year:** it starts in a freely\n  chosen month and determines the contribution periods (issues #68, #101).\n- **Intake wizard and CSV import:** master data, mandate and contribution in\n  three steps, the last two can be skipped. The CSV import creates members\n  together with mandate and contribution and shows in a dry run beforehand what\n  would be created (issue #69).\n- **Collection cycle:** schedule per interval; the daily run creates claims,\n  announces the next collection and sends the pre-notification by email\n  (14 days ahead by default). A missed deadline blocks nothing, it shows up as\n  a task (issue #70).\n- **Release and submission:** \"Freigeben & Datei erzeugen\" freezes amounts and\n  bank details and creates the pain.008 file, \"Datei ist bei der Bank\n  eingereicht\" is a step of its own. Until then the run can be discarded or\n  postponed; a copy of the file in a Nextcloud folder is optional\n  (issues #71, #103).\n- **\"Collection\" tab:** timeline with a preview of the next run, runs, claims\n  with dunning status, exceptions, deferral, waiver and cancellation, and the\n  bank reconciliation. Auditors see the collection read-only, with the IBAN\n  masked (issues #102–#105).\n- **Bank reconciliation:** the bank statement import recognizes end-to-end ID,\n  mandate reference and return reason (CAMT, MT940, CSV) and suggests, with a\n  reason, which items a transaction covers. Nothing is posted before you have\n  judged it: collective credits grouped by revenue account, returned debits\n  with a fee account, incoming payments as a suggestion (issues #72, #105).\n- **Returned debits and dunning:** the return reason is shown in plain\n  language, and depending on the reason the mandate is suspended. Payment\n  request, payment reminder and dunning letter go out bundled per member\n  (interval adjustable, a deferral pauses them), after that a task for the\n  board appears; the bank fee can optionally be passed on (issues #72, #73).\n- **Dunning emails carry a GiroCode for the first time:** every item is\n  attached to the email with its own GiroCode (EPC QR) so it can be paid\n  individually with a banking app. Per item the recipient, IBAN, amount and\n  payment reference (with the claim number) are also listed in the text; the\n  bank reconciliation suggests the claim whose number is named first. The\n  emails name the period in month names (\"Vollmitglied, November 2026\"). If PHP\n  lacks the gd extension, the email goes out without a GiroCode and the error is\n  logged (issues #73, #120).\n- **\"My contribution\" for members:** members with a linked Nextcloud account\n  maintain their contact details, monthly fee (not below the minimum) and\n  interval there, and grant, change or revoke their mandate – effective\n  immediately, with a preview and a receipt email; returned direct debits\n  appear there in plain language, never as a bank code. The area is off by\n  default and is switched on under Settings → Fees & SEPA (issues #74–#76,\n  #122).\n- **Contribution confirmation:** a print-ready, informal confirmation of the\n  contributions paid per contribution year, for members under \"My\n  contribution\", for the board in the record. It does not replace a\n  donation receipt under § 10b EStG (issue #77).\n- **Data protection:** the data overview provides the information required by\n  Art. 15 GDPR; the anonymization blacks out name, contact details, bank\n  details and free text of a member who has left, ten years after the end of\n  the year of the last booking and only on your confirmation (issue #78).\n- **Interface and emails in English, informal German for members:** all texts of\n  the module are translated, and the source texts use the formal form. Members\n  whose Nextcloud account is set to informal German are addressed informally in\n  emails and in \"My contribution\", without an account the formal form applies;\n  the mandate text stays German (issue #106).\n- **Tasks in the header:** the clipboard (from bookkeeper up) collects what\n  needs attention – from a missing mandate to a release that is due; the number\n  counts action items only. A task disappears by itself as soon as its cause\n  is resolved (issues #99, #117).\n- **Settings at a glance:** under Nextcloud settings → Vereinsbuchhaltung →\n  Fees & SEPA the whole module can be operated: mandate reference prefix,\n  expiry warning, proof folder, contribution year, release lead time, accounts\n  for revenue and return fees, passing on fees, dunning interval, XML storage\n  and self-service (issue #101).\n\n**Changed:**\n- **App Store description:** A section of its own on member management and SEPA\n  direct debit, plus two screenshots (timeline, member list).\n- **Copy email addresses:** a button above the member list copies the addresses\n  of the members shown (without those who have left, each once) for bulk mails;\n  in the CSV import the mandate confirmation now sits directly above the import button.\n- **Interval with names:** contribution group, assignment and \"My contribution\"\n  say \"monthly\", \"quarterly\" or \"every 2 months\" instead of month numbers; a\n  group's allowed intervals are small checkboxes in one row.\n- **Manual rendered readably:** the page opened by \"Open full manual\" in the help now shows\n  tables, numbered lists, code spans and a clickable table of contents instead\n  of raw Markdown lines. New is \"The process at a glance\" (13.0) at the start of\n  the contributions chapter.\n- **Old contributions and SEPA module replaced:** mandates and fees of the\n  previous flat module are carried over on update (issue #107): each mandate\n  keeps its old reference and signing date, each fee becomes an assignment in a\n  group named \"Beitrag … im Monat (übernommen)\". An amount that cannot be split\n  into equal monthly amounts (for example 100.00 € yearly) is not carried over:\n  the old amount is written to the member record's note and a task points to it.\n  Carried-over rows leave the old tables; the old batch collections have no\n  counterpart in the new model and stay untouched in the database.\n- **Claims are read-only in the open-items view:** contribution and fee claims\n  can no longer be paid, cancelled, reopened or deleted under Bookings → Open\n  items; \"Im Einzug bearbeiten\" jumps to the \"Collection\" tab. Free items\n  without a member behave as before (issue #121).\n- **Deadlines before the collection in one place:** early-warning window,\n  pre-notification lead and release lead are found together in the Nextcloud\n  settings (Fees & SEPA); an example line converts them to a collection date.\n  The schedule in the Collection tab only displays them.\n- **Change the fee as an administrator:** amount and interval of an assignment\n  can now be changed in the administration (any amount above the lower limit), the\n  contribution group can be switched, both with an \"effective from\" preview and\n  right in the ⋯ menu of the member row; before, only the member could change\n  them. An assignment that only starts in the future can also be changed or\n  withdrawn, and the assignment table shows the status. The member gets the\n  change confirmed by email (in the language of their account); the message says\n  whether it went out.\n- **Fee-free and pauses:** a monthly fee of €0 is possible (group lower limit 0):\n  no claims are created, nothing is collected, no mandate is needed; the member\n  list shows \"fee-free\". A \"Ruhend\" (dormant) group works as a pause or passive\n  membership. The CSV import knows amount 0 too: without IBAN, start date and\n  frequency; the preview checks the group's lower limit and interval beforehand.\n- **Country as a selection:** in the file, the admission dialog and \"My\n  contribution\" the country is chosen from all countries of the world (named in\n  your language); new members start in your country. The dialogs for the bank\n  details and the mandate use Nextcloud's standard components.\n- **Open items with counts:** the filters show their numbers, a new \"Overdue\"\n  filter lists exactly the items the red badge on the tab counts; the table no\n  longer clips the due date and the actions.\n- **Delete lock for members:** a member can only be deleted as long as nothing\n  is attached to them – no mandate (not even a draft or an ended one), no\n  assignment, no claim. Otherwise the record names the reason; for data\n  protection cases there is anonymization (issues #65, #68).\n- **Role hardening:** every endpoint of the contributions module explicitly\n  requires a role. Only administrators change the warning window and the\n  pre-notification lead time, assignments are readable from bookkeeper up only,\n  auditors see an old IBAN masked; a typo in a role name now locks out instead\n  of letting everyone in (issue #119).\n- **Reset clears the collection too:** \"Delete all data\" now also removes\n  direct-debit runs, collection items, returned direct debits and dunning\n  levels that would otherwise point at deleted records; members, mandates,\n  contribution groups and assignments stay (issue #123).\n- **GiroCode library in the package:** the app now ships `chillerlan/php-qrcode`\n  (version 5, PHP 8.1 is enough) in the `vendor/` directory; for the GiroCode\n  attachment PHP should have the gd extension (issues #73, #120)."}},"signatureDigest":"sha512"},{"version":"0.34.6","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.6/vereinsbuchhaltung-0.34.6.tar.gz","created":"2026-10-09T15:31:10.659321Z","licenses":["agpl"],"lastModified":"2026-10-09T15:31:10.719423Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"kWmgnrgDeK8EbRLLNzC1C8bGBmoWXZ2RJKskMjp623PBZYskv+lh9/Rbohx/u08kZjU6vQs+IF5m2JJ6JvFqJKX6cPaJ5UTAFqXKBfWo6yB/jO4GZ8nIkJfECUxNfKIlRJaraZ4CJzmQuRGfcO3E9TbPtk39AT1jtP3z94maBkzR/JHUEQEloPfdCdaxqL8RjzY6TKclfe6m+GHydP+EX0up1roZIdDHPKi9VHdrzaEjRyGXQ/7ja9N1WBdeaWUliJx+fMShQbs6GeiNjJFCyr3OQkj800sUco9uXCeV2/nHL1K5UMON2cmZUZBv5mOY8bLJFEyN08LRAY2gg/ZjKu5zQfiGxsjahZZjBmSAAe359R1NgxY1lOoG4AIEpL4RtFFV6n4CDxoBifGbV3/Dor1KHNZnOWC/nlSJ9RcWspEpqrNEwwcpwrhwnS3ppuZ6ysP/tsF7BDdafZpEq6jItCNFr4beVoqcAozUk8NPttRnT76rTDd4YdHIbG2r55t5yjV6vaDuAYqLOgzDMsloWzUnoGOxEy8zpzEXlY1NOHkt8gkXudaRBRnOIrsOtOIO2NKinryxlmfJnOPJn9dwkRs/NMcEwzd6u7Sn43/mZ+qk9CP4uFfb4iZj2eJ92TBTTY/nXizJTuBw6m3Sugh6R5KoFfglNn4Q++NYI7h17a4=","translations":{"en":{"changelog":"**Changed:**\n- **Sign and colour on amounts are now a setting:** the tables on the\n  overview, under \"All entries\" and under \"To assign\" show the amount\n  neutrally again by default, as before 0.34.5; sign and colour can be turned\n  on in the Nextcloud settings under \"Display\". The entry cards on mobile stay\n  as they were."}},"signatureDigest":"sha512"},{"version":"0.34.5","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.5/vereinsbuchhaltung-0.34.5.tar.gz","created":"2026-10-09T11:27:04.143232Z","licenses":["agpl"],"lastModified":"2026-10-09T11:27:04.214990Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"kghtfdeGYky41cOpWGI3B7Whqgt9+7BC9o4+jYzKGhMzWwQ0wElJs0VhycgQeAR2vO9QDJaWShI3T76XP2e49S7QOUPjGfSGIrjsKszll7ImGRApmetR2BtjFJYWd5tPndEytKbEiWdNzYLIqwnuCeMVtyTsKmSvVdY7hFv+dUyBo+h0OhNFXVH5E+vIy5+CyFnmwrvo8t+0eHj58BNrkj0PkUuNeF76BHczzwoRHyko4xOSRGILFwAwaxdjfbFGmVmYn2nmaOjpFyajWuEaL2909HAcNNN2ahTh5dVcg7GRX8e/s7dPQ1rX6nE9rCyZIMTNeM5SALDdsRnPFHkp3tuJsmJACf4qEZRa1DEEpdZTykmt+8xF0eAh4Tpti3wzIGw9dqeOkQEIbDzrPiEF5BJecQ3Qy0JScDGMYS7DTQQXuJkJojdYToxddMo1SRS5AhojuEdW40k05Vo6JA5BH8sldK24pjSG6Qgn+TSOF74LSdlxe+3lzyf8DZkLr89vp9FzbquhcSDXWNGplSC2efXXPrTpgRjo/ovRTxESpJFK0OWCHJjW6vaWdjDsD35WhAj912P3LaNjcvVnxT7KfrQ2S2QDWsTVo8IzbzRDYK/tjkcxD3hFVc/F4a5EE1NiCIoleupOdnkaRK5R4dAxMQaW1TWU5U8VIDXLbbHFnVw=","translations":{"en":{"changelog":"**New:**\n- **Income or expense at a glance:** amounts on the overview, under \"All\n  entries\" and under \"To assign\" now carry a sign and a colour – income green,\n  expenses red, transfers neutral.\n- **Account filter by category:** in the journal, \"Income\", \"Expenses\" and the\n  other categories can be picked directly in the account filter.\n\n**Changed:**\n- **Cash report hides spheres without activity:** the sphere overview only\n  lists spheres with income or expenses.\n\n**Fixed:**\n- **Account filter missed split entries:** every line of an entry counts now,\n  not only the first debit and credit line.\n- **Group headings in account fields were clickable:** the category headings in\n  all account pickers are now locked.\n- **\"&\" in an account name showed up as `&amp;` in the budget view:** translated\n  texts with placeholders are no longer encoded twice."}},"signatureDigest":"sha512"},{"version":"0.34.4","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.4/vereinsbuchhaltung-0.34.4.tar.gz","created":"2026-09-29T20:40:39.731868Z","licenses":["agpl"],"lastModified":"2026-09-29T20:40:39.785485Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"jzGiMRNyRj/Xp+2BdCxhtQiTe6A4uwt3H5050P0ESnNpqeuexrKz3uOfWcwQHMgKZ1M3QzRLb5fO4g7dMTgoMfW1ofywLIkQ1vQbLvANEozvZrwYBTDHf6opquo3UMZBiuztDWoX+iY+LDO7MDmQJuQ3S5ZcQelLQFrPt3frfL8s4ZxYWC/1e/tAydmxnwh+znOvUSzvy4TIXM8qyOkSf2YeEo+upNB4Rmafc/IjKAcwZNFgW26mhqul0TgeLyG3uKvxUsPpXNQoukGAVHGeB14Oo7EpnCXcM/3+M60PdBK5Q6UXx6eoHRYNJP4AzChoVM01tcMqpVAx4EQ/UPd9wzxY0Y3lE+x08Bc2pF5bof3bqbU4xO4WHidN4FVvkKNDtO9y0M1Rj8VCs+imt8xZxhrKdf0zeZkqh27jFxQnZuPcQUt6lMe/G1vepLGniHiJaOVjLMLzIXV0FHMm5N2ETeG0bQw8RX50HQhv9oAVkLJ7jtwc1W2KlwD9AUC1IquY2p2ExjOQvA1QlwDNZsZ+rfkDrUD17fguK9Gbqjla99oV7LWnfP9yECyUGp8DJaWpVt9U21DWe9zLYTbD+abwsuTVTMibTeQGZmblYxwx9W6/WZnBgEHMxjYDofllkV7HzbQUiei0X42/avQuT6ayvZ7U2usXJwWVi3aOTebVDvw=","translations":{"en":{"changelog":"**Fixed:**\n- **Bank statement import duplicated transactions that were already booked:**\n  when a bank export overlapped bookings from the xbuc import, duplicate\n  detection missed two cases and added the transaction to \"To assign\" a second\n  time (issue #112). Affected were booking texts with encoded umlauts\n  (\"M&amp;#252;ller\" instead of \"Müller\") and bank-internal transactions\n  without a counterparty, such as the account closing. Both are now recognised\n  as existing bookings; transactions imported earlier are not affected.\n- **Switching tabs right after opening the app was lost:** clicking another tab\n  while the app was still loading jumped back to the tab of the start URL.\n- **Amount field reverted to an outdated value:** after quickly focusing,\n  typing and leaving, an invalid entry restored the second-to-last instead of\n  the last valid amount."}},"signatureDigest":"sha512"},{"version":"0.34.3","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.3/vereinsbuchhaltung-0.34.3.tar.gz","created":"2026-09-15T20:08:58.495211Z","licenses":["agpl"],"lastModified":"2026-09-15T20:08:58.557062Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Zt8ZkgPlmiSJuuQq8SQ8reAMr9vwaGl91hChydYM3emw4Y5jaWmpxgL4MgkqzqMNlDFXN0PqK1UCTwvvdNOKfd0TXXcrCNf+5i2q/KcNY9OkXLbNBiNb7xnNoiFau+6zNtEWqKtfGHPMibeLocBc4Ep0UVqN0NJllHOzpOPkYtH4/vducywKBNF72xYNHa62vWY/zamkDYAqhxmJ2vbPKV5LHsXes5ae3p/1TffQbNnDbgytDJ6MxPfaoBfJknz9xPMmMlLrIohdRg3SaMzXhO+f/CFJCxLLA+iECVDSEdRlRPUMDC7cXSVdW02Henf/SCqmfbx7wlPqPO//dJfN30wWHZWnG9YPfZ2jBBTENbbQnxa2Vqvrm0a5d+pL0ypLRGTMcY/fCxMLl+HlN0xPeqf6InQXM2+yNDctBmoZPq6qkvcfplZEhPF/VUuad7BsRpTDghu8JxZ4IRUSh34Lqk/bQTEKMR4VkvIaw9xXu4XKBHeoSPAm39ybx3lCSHpeBMgHEFCYJYy20YJ1g208qB3F+9HtunzEbwRLgOgFociiC1vG8a5xJy17b2gasmzflN94JiblMrFenew3vME9PpfPdrmp/ETFilvhdVT/FfvKo3/+uDJGOlD1pCMgtDdDZhX1dF/NJP0K4i17LIQqI5uq1vbr/RgL2fA8mnkWB7s=","translations":{"en":{"changelog":"**Fixed:**\n- **\"First steps\" forgot entries from other financial years:** switching to a\n  financial year without entries made \"Record first entry\" and \"Enter opening\n  balance for a cash/bank account\" show up as open again, even though entries\n  existed in another period (issue #60). The card now counts all periods - it\n  describes the state of the association, not that of the selected year."}},"signatureDigest":"sha512"},{"version":"0.34.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.2/vereinsbuchhaltung-0.34.2.tar.gz","created":"2026-09-14T17:57:28.481340Z","licenses":["agpl"],"lastModified":"2026-09-14T17:57:28.580155Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"EFvqWDFNfM6FrLb9Ef+VmkLkQq/yMGhS3fFmfDXMmHq7Tkx9ebelg6+UOltGTCAywwAqFg4TlZhz+P660I/de6z9WnYhMtrvp+i2YD9HAA7JJkmUOnB9qcJH85XJJZXFAKnz+WeHzIwnA1b4PpUEcBXlbs10i5vF2TK5kZnW4sOOoj175+Fr22UYhUtgFr3OGuI3F3OtVnukYqMZvs5bbtZvZbnq16S1aC3Q9l5DyDTk3dQoTdX+mcABI833Z3tTgHevH04XqNA8JSnpYEO5VOY5FE6UIPWGEsro7N4mYBD9mfvgh1k0ID4D8M9UECA+nc1cVCA7ZvEbkD7qMcM2bdmIqkpaM7EZYND8D/DmU+kjGXi3VFkT3uBL6qiApthyohAXUE7mEMu9z9zHrhN8HMIGGOZqQnn45saBBOfPUo03E8AtacAT1zk7Lx44FloP6R2y02nt+BMf2C6rj7gaD6CSERsghlDrhtfqIjL6aGbIY/KVTE2v8oUozOQLWWT1v7YE8360mfWkDOoD9IqHVd4wnvdkPkeu17DdEMzUJNqyxu1ox08v63+cfh/Wf8X+L7uk+z80G0b/oRElAyuYahQxQimk2SwnE9IooOwdbruc/Kjh7AdPh8alW3TlD6oBlvLFTeuuUTPne0woHKSAkAAB+Mp7aWcDquPM8dCc4Ec=","translations":{"en":{"changelog":"**Fixed:**\n- **An account's category could not be cleared:** deleting the text in the\n  “Category\" field of the account dialog left the previous category in place;\n  only a single blank space worked (issue #59). An emptied field now clears\n  the category as expected."}},"signatureDigest":"sha512"},{"version":"0.34.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.1/vereinsbuchhaltung-0.34.1.tar.gz","created":"2026-09-13T16:18:54.692486Z","licenses":["agpl"],"lastModified":"2026-09-13T16:18:54.762935Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"s/8cYDtuFbV6E8E5R5Qpl62vNDSVzL9Isb0SpA12Gfk56tsktN+lvZ2efzPVeY1nRIkfbOAds9mbp2IqknBIUrEcVG/2PFWrah4SBCfwroQ7Za+6iJ06wRNYnLoirIi95y/ul4RJx+mh9giqP3ERfchInL4RpY7rCUxYSexKy8MrA2QB47BuTg4zBE+HtqO4t6WOjIPIwOrWYRu5dYC3hnm82PTvU/p3Azl+Zgo8L29KVwfNfU7xkRxd3mFm3VLXIF2UDbEv5PIu+G4L23EW74n2e8IMrSfgoNNI64sx4J63G7dGSspVrI3fJhG7pBa8TsISi1t3AEBKCiE7qrrsJxZ0AUMPHAGmxv64zwT/NbD6aPSREWpzYWQ+bukKDVwTa9clF/o6B4fE7/RcVPc/G5qNXACYdnlJgC4dTf0WaHmTTJoZp06+UKHjmx5SjFiSBJD2Ld8k/O/Y1vcL46kpDQSP9bqtlhyZXq1xNPedcIis01MbOeybRKvZtJL4inBXrYr3lZSaL6CmOHMm85cmSJnP5nSqrE/g15czG9/QILeKTRCe+qa4/U5kY5LcXAW8TH5BmUA8K7lFrznduHBBpPFCIx7VMW9xnmisFbf0TpqtuGnRifJm5SuTjNDvumwHBuRMGY20vwbHU1ul0tkGy4Qfb7KnPOLjSvQwCghTyfU=","translations":{"en":{"changelog":"**Fixed:**\n- **Duplicate accounts in the autocomplete:** Frequently used accounts were\n  also listed in their category group and showed up twice in a row when\n  searching. Now listed once.\n- **Search field in the \"Pick receipt from folder\" popup sometimes didn't\n  react:** A fast click could leave focus stuck on the modal backdrop, so\n  clicks and typing went nowhere. Fixed – the same fix now applies to the\n  account, bank account, and member dialogs.\n- **Icon in the \"Pick from folder\" button was misaligned:** The button was\n  too narrow for icon and text together.\n- **The getting-started card briefly flashed on load:** It appeared for a\n  moment even when everything was already set up.\n- **Period selector stayed empty after a load error:** A single failed\n  request left it empty with no error and no retry. Now retries up to\n  three times, then shows an error."}},"signatureDigest":"sha512"},{"version":"0.34.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.34.0/vereinsbuchhaltung-0.34.0.tar.gz","created":"2026-09-12T20:59:04.242507Z","licenses":["agpl"],"lastModified":"2026-09-12T20:59:04.309283Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"EH3jQPFfGMBQpUQwCuWN+biHwFqRxw8mnukQhkDPzmFj6KOWgEkLA3/lF1Lt7rypENDYtU9SXU715NKB8vWewF9ia1qP8o4GYsmjGVVRGD1pT9CbCqpefYpuLklQI0yyD9xXG2wK76DQe6iQW2gQQCJnIAtVCeNQpUvRmBgG1Kab0JhMNOKylIVt/wqP5jJePSNq3acxFpGmwVUr4Nzsm7wYn8gag3sjtB8GnavMg3Np0+48Z2O/tzRy9rmASVHYRPCWwrRXDEBz7qHd2ocwHFwKVTPCaRLT7jgKJ3B8RvtpFzEGr89Fkpm61hkdHi0KfWVLj55hIpiB8x4YRYcoH1CMeKok6SmlNclLExsf6XUKm37P0JTZVWpdRCw7I23UsHSUrE0J88YQlJURIMQc9wH3bqFUZza9mz44WPMf3nJ5o8bNcD3GjVh6YaQnVAFD5oEnroSoY7BYpDUawTDndqrM/24TN01ESsnFi0b5/fjT2AuSokvAXDb+/10j+nSxOZnNEeXFyL5spnW0Q0T/9U75DJ2x2BG5mi9E3OLifI/muNrh2eVSqdQJ6u2EzD0hQkTeb5TxVjCLwIogA9F3hrNzNqJY8MxLlK9Ac1kIsF5w2QJRjwjecIGlTYGU3ZN4aFc+P6AQs0M8iXpco+7yi+TWkz9n4t1DpWoNz72SMZc=","translations":{"en":{"changelog":"**New:**\n- **Watch folder for receipts.** Besides the internal storage and the user\n  folder managed by the app there is a third storage type (cog → *Receipts*\n  → \"Storage type\"): a folder in the Files app whose files, including all\n  subfolders, can be picked when booking (\"Pick from folder\", with search\n  and preview). The files stay where they are – renaming or reorganising\n  them inside the watch folder does not break the link, the app remembers\n  the Nextcloud file id. Receipts uploaded or photographed from the app are stored under\n  `<folder>/<year>/` and may be reorganised afterwards. The folder has to\n  exist in the Files app beforehand and must not overlap with the watched\n  folder for bank statements. It is chosen by clicking in the folder tree\n  of the user's home (\"Choose folder…\" next to the path field) – a typo in\n  the path is ruled out. The same tree is now available for the watched\n  folder for bank statements.\n- **The overview reports documents without an entry.** If the watch folder\n  holds a file that is not attached to any entry yet, the overview shows\n  \"x documents not yet assigned to an entry\" – an invoice still to be paid,\n  for instance. \"View\" opens the inbox with \"Create entry\" per file. A second\n  tile warns about receipts whose file was deleted or moved out of the watch\n  folder; the audit ZIP keeps listing such receipts in `fehlende_dateien.txt`.\n- **The app never deletes a file in the watch folder.** \"Delete receipt\"\n  means \"Unlink\" there – the files also stay when an entry is deleted or\n  all data is wiped. The same file may be attached to several entries, e.g.\n  a split invoice.\n- **When switching on**, receipts the app stored under\n  `<folder>/<entry id>/` so far get their file id filled in – the existing\n  receipt folder can become the watch folder directly. If a different folder\n  is chosen, the old receipts count as missing until they are moved there.\n\n**Changed:**\n- The Nextcloud viewer only opens a receipt when the file lives in the home\n  of the signed-in user; everyone else gets the app's own view. Until now the\n  viewer failed for anyone who did not own the storage folder.\n- Opening a receipt no longer creates folders, and receipts from the\n  internal storage stay readable after switching the storage type."}},"signatureDigest":"sha512"},{"version":"0.33.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.33.0/vereinsbuchhaltung-0.33.0.tar.gz","created":"2026-09-10T05:50:42.921970Z","licenses":["agpl"],"lastModified":"2026-09-10T05:50:43.014833Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"hjIUxR463SXRpnSDzeYpCEUzwFWSRO1ftltM9mWjHajC8UYOyRFO+a3qq7rOns+QYhP60hf3ikxj3W1DN3iUnUjrL8WSd8T5duQAubXz8pHlKS0QreKYeiecE/5cDcOFVTgUIEY1S9mlEvqW4LHFm0lG6R4tnXN9ECVQytIfxExa8rRrM3JFpYoRghY7MZ/+KitnFI6JKUGgE7bZ5Sm1tyEKXZF0T7knzzKS9lclx3Iqn8jw6jCvCmTrKSebjwjZaQwOjmkII6FKBv2xTiBJmmto3YPq8L92FbI+9LSCMHtlr3YA89ONl2xiHMXDzO9wRzyxBzWVAyHFu9pSAYxFjgtnXedEcH7O+4NzSRyI1zm0noskNMI2VbqDTrILZTmm27UT84U9vCm10dJbhbZwt/3sLWVMMGjOHVslf/JAu5psyIqUjjToSAr6ExAJNi30LB7Kehnj8O+B5LP+eVxiKnOrdkP8VY1zzn6Wj4aKnwF3AW4e2itJCCAKTjGjPLROnBpxHgKRy7oTllQJR6HjfQjpSNauFGmhi7lv4d9VVZ6pVA79XwJOv2GQqJiavL0Q2Z9hEqrzQ4b+sy1Gg1QvQ/w8pElcDgBIgUiwW8yUKX1J+R4b3C9/8QFl9l4Of0KJbwVle4CIg/GK9x+BLrE88mzM65wqPF/DZqkEgPPc1VU=","translations":{"en":{"changelog":"**New:**\n- **The fiscal year no longer has to match the calendar year.** Under the gear\n  icon → *Fiscal year* you can now choose when it starts: presets cover the\n  calendar year, October–September, the school year August–July and half-year\n  periods (semesters), plus a custom rule with any start day and a period length\n  of 1 to 12 months (divisors of 12). Clubs with a deviating fiscal year previously had to add up\n  their figures outside the app (issue #8).\n- **The header's “Year\" has become a “Period\".** Every period carries a freely\n  editable name – suggested as “2026\" for a calendar year, “2025/26\" for a\n  deviating one and “2025/26-1\" for a winter semester. Entry numbers, reports,\n  the budget, the receipt ZIP and the year-end lock all refer to the period\n  rather than to a year number.\n- **Periods can be maintained individually.** The boundary between two open\n  periods can be moved – the way to a short transitional fiscal year. An empty\n  period at either end of the chain can be removed, and the next one created at\n  the press of a button.\n- **Switching shows what it will do first.** Before a changed rule takes effect,\n  a preview lists the resulting periods, how many bookings will change period,\n  and which budget figures would be lost – because when two periods merge, an\n  account can only keep one of the two figures. Locked periods block the switch:\n  what the general meeting approved does not move afterwards.\n- **The cash report names the actual key dates.** The asset overview used fixed\n  column headers “Balance Jan 1\" and “Balance Dec 31\"; it now shows the first\n  and last day of the selected fiscal year.\n- **The monthly chart on the dashboard follows the fiscal year.** It always ran\n  from January to December; with October–September it now starts in October,\n  and a semester shows six months.\n\n**Changed:**\n- The settings section *Year-end closing* is now called *Fiscal year* and holds\n  the rule and the list of periods alongside the locking.\n- The xbuc import now derives a file's fiscal year from its date range instead\n  of the calendar year. A file for a deviating fiscal year could not be assigned\n  at all before. Bookings outside the range are dated to the first or last day\n  of the period rather than to January 1 / December 31.\n- Existing installations are unaffected: the migration creates one period per\n  previous calendar year, running Jan 1 to Dec 31 and named after the year.\n  Entry numbers and existing locks are left untouched. If you change nothing,\n  you notice nothing.\n\n**Fixed:**\n- Opening the booking dialog before the account list had loaded left the cash\n  account empty – and booking then only reported that it was a required field.\n  The preselection is now filled in as soon as the accounts arrive.\n- Switching the period right after loading occasionally showed the journal\n  and evaluation of the previous period: of several simultaneous requests the\n  last to arrive won, not the last one made. A choice made before the periods\n  had loaded did not stick either."}},"signatureDigest":"sha512"},{"version":"0.32.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.32.0/vereinsbuchhaltung-0.32.0.tar.gz","created":"2026-09-07T18:52:58.363562Z","licenses":["agpl"],"lastModified":"2026-09-07T18:52:58.462491Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"URbs7rR+ibIaCXawEIGE7845WACZzgIYr/uWGqG2NfgzeFJzARFjuikGP1MGA9oOcQkwrLYk/ZNuIqXLVeOOTn6IeFo5CiCoQUzkOcEft2nPrtk4cSb+/HNBiAQ7HqcaILq9C7Y89sTyH1CpGJd3mvi2nrg3ZrLGc4oK+nelIk6WepYW0Ggl+35ScDPURnqVqvsxOKX7yyiQ7l8P+CMAVajpLXHiliixH5e34MIWs7cLhFucXHrGXnhkSqbtGNLX9pqZ9HNukNyPnpf17Ab2XJxyEzHhBp79Z+HBrGvcgkKPXjDy8nugD0RzRX470VPrE9MtJlz/w+7Ldq9TmSAqdrpq6/+GRtoTQke4EHoX6Y5q6G+eQg6sL6YDTKzFVetE3SQAVM2L4sx+W8hNjRvTyryDyCcktJSyd4luyRKK1FMOYy+Gh7jxSkwC0J9TbpnKSOiZlhCrY6ixlah4Bj87IuXoEeJSYh2XrTv2LfUN/UORaE3QP4FZKrP5wzlo12eacp/yM73IElhE0NNOapPlQo/pwPKHpd3LVXRaohJny760AtExPYmj1NmK3EIfaj9HxoltiTMCDROuC0LvLaAvmFNlaChqZ/W1c0+6KjWTtXIIyLCd1ysGAQkHJATUHtO9OHAE3/fOjIsnOaLSIYIpQJV23DyfxiOcUFx+cOk2rwQ=","translations":{"en":{"changelog":"**New:**\n- **Entries can be edited straight from the account statement.** When you spot\n  a mistake while going through an account in the *Accounts* tab, you can fix\n  it on the spot: the pencil at the end of the row opens the same entry dialog\n  as the *Entries* tab – for the description, both accounts, and turning the\n  entry into a split entry. Until now you had to note the entry number, switch\n  views and search for it there (issue #39).\n- **Receipts are visible in the account statement.** If an entry has a receipt\n  attached, the row shows the paperclip and a click opens it. That includes\n  the auditor role, which cannot change anything otherwise.\n- **A tidier row:** *Reassign* and *Delete* now live in the three-dot menu,\n  exactly as in the *Entries* tab. Otherwise the row would have wrapped onto a\n  second line in narrow windows.\n\n**Fixed:**\n- **The account statement refreshes after an entry is edited.** Description,\n  contra account and running balance used to sit there outdated until the next\n  account switch whenever the entry had been changed elsewhere."}},"signatureDigest":"sha512"},{"version":"0.31.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.31.2/vereinsbuchhaltung-0.31.2.tar.gz","created":"2026-09-07T18:03:22.717194Z","licenses":["agpl"],"lastModified":"2026-09-07T18:03:22.791241Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"5YJYB6EPPa7PoTfCkG8zixyMAiUog1fe+KV73/tIghJV/YWJ2d8W3yzLqUaLj+1Tv4Sy2jwftL4Jk3kXyRCHrosVPR+k7YMPgRJ1BuJrSHTK23gVm8iwQpiHTCY5HqoKZUI47wrxaHkq2ULydZnlnxZWfLvBLV8FXpPUw3oxmkCsHVeqgA3MYXfeKbU5a60Yh9gxOQh9DabCxJJGPPFAB7uBd7ZYJPPhoY7pN955VazN/Zhls3rjU0qWKFqmZehQp7VFesrHmzgxbHe7IGTTH9lNldx/JzPHXTbiBa8ybcvsruOI4OxdGam4ubaAXWPSX71Yo7JLW7lF35UW1/mILLNSkfHxw48sEciHTE0PeDfVY3PKtWuhpgAK4VP/04LbWBOHbx96jXfpV6TguNlwZMdiWvanwJyKGeO8PkiH6gVSut00BGnmC6gxBueGUD5WIGBVqDwhiLFx3EsSGiAyCPy2ZIpBHN8Bu40iooLMCog6vu7w+4cKzVgJSHejwLVSyfvNt1yfNczYj2yarA3zh3eqS+A05Q5N9thr2QXOe753mz2KBd7z/vCIWpCC34RLnlFVXaZj4sure62IUx397INnCUAsxaRqPkkh/9g3QeLOJ3JloL3RV3jIz8VM/37NbHQTApFs78ImdXGnGZ7/YuGcr8J15y7n/BOkEFAsTsw=","translations":{"en":{"changelog":"**Fixed:**\n- **In Firefox the year in date fields is fully visible again.** Since version\n  109 Firefox draws a calendar button inside the input, but does not account\n  for it in the width Nextcloud gives to every input field – it therefore\n  covered the last digits of the year, turning \"07/09/2026\" into a visible\n  \"07/09/202\" (issue #43). Every date field in the app is now wide enough:\n  entry date, next and first due date, mandate date, opening balance, open\n  items, SEPA due date and the short report's period.\n- **On phones the buttons inside dialogs are thumb-sized again.** The 44px\n  minimum for touch targets only applied outside dialogs – Nextcloud attaches\n  dialog content to a different place in the page, so the rule never reached\n  it. In the entry dialog *Cancel* and *Book* were only 34px tall and the\n  *Income*/*Expense* toggles 40px; this now applies in every dialog. The round\n  help button next to the spheres is properly round again – it was stretched\n  into an oval on phones and on the desktop alike – and grows to full\n  touch-target size under a finger.\n- **The receipt ZIP export contains all receipts again.** With the receipt\n  storage set to *app-internal*, the archive came out empty and listed every\n  receipt in `fehlende_dateien.txt` as not found – even though each one opened\n  and downloaded perfectly on its own (issue #40). The files were never gone:\n  while building the archive the app read them in a way that only exists for\n  storage inside the Nextcloud file tree, not for the app-internal one. Only\n  the ZIP export was affected, and only with app-internal storage. On top of\n  that, `fehlende_dateien.txt` now states the reason for each entry instead of\n  reporting every failure as \"not found\"."}},"signatureDigest":"sha512"},{"version":"0.31.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.31.1/vereinsbuchhaltung-0.31.1.tar.gz","created":"2026-09-06T19:52:52.489007Z","licenses":["agpl"],"lastModified":"2026-09-06T19:52:52.581202Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"B1QJYSJ6p+q4O5Yi2GBFhXTyaZTxxSwnNZJACVeCSRKygre2q5fbtLy1CCvZ/VBYEBYnuSvcz3uK4Q7ylzoiuLiMkK5y38ntbeFgLvZPgguK3uyJtCEmSXuvFwUUvk51ZFasjy13rg4o3d0HLLSrzPAUAFOu236jwO4Z6QmRSTcJJloyw5sDP3ykLrT5DZT3ZtduaPGq9EsZTV5AWUj6zdWK8LQTFcbX73KbGp/ao1qeXF0AZbVVoJI7GRIbu7Znz1TjknMY18B5XkDHHXw9vxkejtTs/vYfGm0mWREPxymjZJOzA9UuhO4zsdxipDckbBNFmceOYokYx3360e0Ho3qg/AHowOinzVJbDah8pL2ZKXFsrlToNgFADdVGw7V9M0IM4zoIgw7n/wZ2WHZkL8SE3B+vdKEcK2yWemqpyA0rns1hG6pmvMCcTCFvLsuJVfZs/ar6STyT9GuA8IZvYrU6Syhawo8UAXEUfIQeYdi38i11S745xNIXvrbKCpDodmxJ4hvfx/XTsi9TilQPRI174s6rjTzFpNI+wm5lGoiYRfFBFRi3xT9X5sSnGkcw+sie9Y664BLDDn2vf0n1T0bVyPLyKewN+GYz/tomrdJAhUmQx0xuBcR2hFNQQ2QoDwwlhifo7y9Pb2Vo5jJhea0sr/494Z9pUy0s29xfoF8=","translations":{"en":{"changelog":"**Fixed:**\n- **The report sub-tabs are fully reachable again on narrow screens.** The bar\n  holding *Summary*, *Reporting groups*, *Spheres*, *Reserves*, *Budget* and\n  *Log* ran off the screen and could not be swiped – it ended after *Spheres*,\n  and the *More exports* button was out of reach as well (issue #38). The bar\n  can now be swiped sideways and indicates at its edges that there is more to\n  come; jumping straight to one of the later tabs from the help or the bottom\n  bar scrolls it into view automatically. The same applies to the sub-tabs\n  under *Entries* and *Contributions* and – with the Nextcloud sidebar open or\n  with longer labels – on the desktop too.\n- **Amount fields now show the amount the way it appears next to them:\n  \"20.000,00 €\" instead of \"20000\".** In the budget, the *Plan* column was a\n  bare number sitting next to the formatted *Actual* and *Difference* columns –\n  with four- and five-digit figures it was hard to tell 5,000 from 50,000\n  (issue #34). The same applies to every other amount field: entry amount and\n  split lines, opening balance, open items, membership fees and the default\n  fee. While editing, the field still shows the bare value so that typing does\n  not fight a live format; both notations are accepted – \"20000\", \"20.000,00\"\n  or \"20000.5\". Anything unreadable restores the previous value instead of\n  silently setting it to 0.\n- **The treasurer's report and the short report moved into the *More exports*\n  menu on phones.** As separate buttons they no longer fitted into the row and\n  pushed the menu off screen. The short report's date field is now part of that\n  menu; nothing changes on the desktop."}},"signatureDigest":"sha512"},{"version":"0.31.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.31.0/vereinsbuchhaltung-0.31.0.tar.gz","created":"2026-09-04T21:09:52.987191Z","licenses":["agpl"],"lastModified":"2026-09-04T21:09:53.053244Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"RpdiBEtKAA1ZA51YvSoVDbENkvtlBocEabzuohgcm5qFUGiUGZLMXzQtGk9xSeAhUOvjMeAsfzeOlQ5ZJTjU7Yp6W0AbHdAALFHCIPiGJTNqUzaHccYXA191IHp/KXpy89kFXUNzX2tBZnnIU4hWOzNXodidjSnuIZnAxBoiZoTSkg12tbtJ0rzCrAoFjolbx1vWBKg+lKGaMtM6qXgGbSNcylqMZ3PIuYeEJ3S+v4OAJcNGnIQtmBWaljdWvh7c6y5GlfQWwvbS6b7leLv99/sRNoaVXId+fXRvUul8O+42tLZ0mpk4GUx0UiE5QtiuagSylE3tmLXvK0F1zm3N56uymcP1PW8p84jbXDszxIDQQfnolu/WOca8gE+l9dBzx1ms/C4LtsfEQw5yzZOSuzxz4Q0PUOmz7A2TKQ0vccRz9qaazd93hhl/+6QGJ1fOfA5vxtbtTwtuONfAgtSkXrKj3uGZU3Q5uu2l2e6a/R0cpYIYexhIk+Xnc0NlOK6t9uNQdH1CTpZ7Rj4FpTteRnIHJTWLTn5RMXW/bJBFTsBoNOAvBIq4RalYd25avk2pnmAI8rQzEgU8+oSJV4Zb5L47lrA5nlVYWn+G0hw83K/dm8/8aRvkhv0th1kE4IrqSWbZ/BD9i8oSNGnQ2mU4O1Z+Jhjkjh55oge2PeLgQWw=","translations":{"en":{"changelog":"**New:**\n- **The header now shows the funds across all cash accounts, no longer just\n  the first one.** Until now the top right only ever showed the first cash\n  account by account number – anyone running a cash box (1000) and a bank\n  account (1200) therefore saw the cash box of all things, while the bank\n  account stayed invisible (issue #31). The figure is now called *Funds* and\n  adds up every cash account; the tooltip breaks it down by account and names\n  the transactions not yet assigned. If the club runs only one cash account,\n  its name still appears there – nothing changes for those clubs.\n- **Individual cash accounts can be left out of that figure.** For cash\n  accounts the account dialog offers a new *Counts towards the funds shown in\n  the header* flag (default: on). A fixed-term deposit account can thus stay\n  out of the day-to-day figure without disappearing from the books: **the\n  cash report, the assets overview and the trial balance keep counting every\n  cash account.** The flag is display only and is therefore not locked by the\n  finalization of a fiscal year either.\n- **The cash-account table on the dashboard and in the evaluation has a\n  total row** – as soon as the club runs more than one cash account; with a\n  single one it would merely repeat the row above it. If at least one account\n  is excluded from the funds figure, an *of which funds (header)* row appears\n  below it, and the accounts concerned are marked as such in the list – so it\n  stays clear how the figure at the top comes about.\n\n**Changed:**\n- **Clicking an account that has sub-accounts now expands them.** Previously\n  this only worked through the small arrow in front of it, which was easy to\n  miss. Collapsing still goes through the arrow – a second click on the row\n  deliberately does not collapse it again, otherwise you could not select a\n  parent account without closing it.\n- **The posting text now grows with its content.** Longer text wraps and is\n  shown in full instead of running off the side of the field – when creating\n  a posting as well as when editing one. The value itself stays single-line,\n  so nothing changes for the journal, exports or the API.\n- **Dialogs have a little more room to the edge.** Content and buttons used to\n  sit rather close to it.\n\n**Fixed:**\n- **The charts ignored dark mode.** Axis labels and grid lines stayed black\n  and were barely visible on a dark background – both on the overview and in\n  the reports. The cause was a check for a `theme--dark` class that Nextcloud\n  never sets, so the condition was always false. The charts now read their\n  colours straight from Nextcloud's design variables and therefore follow any\n  theme – light, dark, high contrast, and club colours set through the\n  theming app. Changing the theme while the app is open redraws them.\n- **Success and error messages (toasts) appeared at the bottom left.**\n  Nextcloud still shows its own messages at the top right, so one screen ended\n  up with two kinds of toast in two different corners. `@nextcloud/dialogs`\n  7.5.0 moved them to the bottom left and dropped the position option; the app\n  now puts them back where they belong.\n- **The active button had a white border.** Visible on the *Income/Expense*\n  switch in the posting dialog, on active filter chips, on the underline of\n  the active sub-tab and on the side selector when reassigning. Nextcloud\n  claims `button.active` for its own pressed state and overrode the app's\n  border colour.\n- **The focus ring was clipped in the posting dialog.** Tabbing through the\n  dialog showed only a sliver of the ring around *Income* and *Expense* –\n  the switch cut it off.\n- **The posting dialog could be scrolled sideways.** The hidden receipt file\n  input claimed its full intrinsic width and pushed the dialog past its edge,\n  producing a scrollbar.\n- **Accounts with sub-accounts broke out of the account tree.** They were\n  bold and noticeably taller than their siblings, and their columns sat a few\n  pixels further right. The cause was the expand arrow: on parent accounts it\n  is a button, and Nextcloud gives every button a minimum height of 34px plus\n  a margin – which grew the row to 46px while leaf rows stayed at 29px. All\n  rows are now the same height and weight; the arrow alone marks an account\n  as having children. The faint placeholder dot in front of accounts without\n  sub-accounts is gone as well – it looked like a bullet point; the\n  placeholder still keeps the column aligned.\n- **Text hugged the edge in the \"What's new\" dialog.** It now uses the same\n  inner spacing as every other dialog."}},"signatureDigest":"sha512"},{"version":"0.30.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.30.0/vereinsbuchhaltung-0.30.0.tar.gz","created":"2026-08-31T20:36:14.747340Z","licenses":["agpl"],"lastModified":"2026-08-31T20:36:14.817331Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"fVul/2TJkdc0pI4s1Y3nesPADFrMVwkimF+/qhyka+ikknmlAgb8tVmNFcoT/lKpQrXG/w/qLfY/kGi8v7iBgZz9KZE5ShnnvaV69P1nZkJWaRz+8tzAumubC/5P/lWtQPUsOCkt4MDYknxDIPjkSLv7v/MnqxIfsuG01OnhgzG0cu27t3TRvVjQF6gnJ4sdD0ceokH5Ntnk63elMqDo8EjxZu7/WTktjZuwKWZPgtReRyKVaNsWU5XnhVA+X2tshjvfHNt7UeWq/+T5TJFCIkjF+jUCYwYm2Z71pttdi1qsOMRi/CchrA/a4fAAR9aD/tzLLzgNWXKLywQfFAv6T84bsVOpz0hqq72GSvbYMSRNYlF9e9J//8zOPxxqP+Jq+gFb7jCT+BW76He0nz8luWqvktz/njyxs1QrtS/ITvB8H4YYhJRvw17+zci41DNn4UyumhyxVBk6QNbKCDTrtzsMSOdVqEWDEzgc9JXy1ag2yrrEZPnCIJHckwT50UUkOXwsJWVW/22QIH6Z+k+CZKYeqDcp4GbHiGowvVlnuGcrS5Sc2iA/7ERgc3hHdgEdZ+VNJIr3eiWwnfJba8Ws8wRXeTpw/7qFoAtOkaWen9O3oYmQA6AYiO6yeXG3/QJjQ/KovDPr40ffDA1Fsj79PMIH08ZXjWEPPztSTaNYRoM=","translations":{"en":{"changelog":"**New:**\n- **Receipts can now be attached while creating a posting on the desktop,\n  too.** On the desktop the *New posting* dialog shows the same *Receipts*\n  section as the edit dialog: the selected files sit in a list (with a remove\n  button) and are uploaded as soon as the posting is saved. Until now this\n  only existed in the mobile view (windows up to 640 px) – on the desktop you\n  had to save the posting first and then open it again (issue #29).\n  File type and size are checked **as soon as you pick a file**: anything the\n  server will not take (only PDF, JPG, PNG, GIF, WebP; 20 MB at most) is\n  reported by name right away instead of after the posting has been saved. If\n  an upload fails anyway – a dropped connection, say – the files concerned stay\n  in the dialog and can be sent to the meanwhile created posting via *Upload\n  again*, while the other receipts are already attached. While saving and\n  uploading, the button is disabled so that a second click cannot turn into a\n  second posting.\n\n**Fixed:**\n- **The *Attach* button could only be reached with the mouse.** The file field\n  behind it was hidden via `hidden` and therefore dropped out of the tab order –\n  anyone operating the app from the keyboard could not get to the receipts at\n  all. The field is now focusable and shows the focus on the button, on mobile\n  as well as on the desktop."}},"signatureDigest":"sha512"},{"version":"0.29.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.29.1/vereinsbuchhaltung-0.29.1.tar.gz","created":"2026-08-30T21:02:24.927514Z","licenses":["agpl"],"lastModified":"2026-08-30T21:02:25.014127Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"ZNu+0GfB6CNdCwdO8JIIAFJufLn9soTS6/P1RXqQaPN4Oekr/TyxcLVuvcVuNzEYDBGFw9HDZFvX/2GIoeGoK/39vfOELcpkWr9L1K216j14IueTtzIhOtOWr3D1IaMJ+DJ/mNRU6WPvQFV39z80ZOml6fiUJ+FIE99l3VljDq5laYJo9a9MmQfnsOgj7chk0hMp9Y239P2srKL4dX57wU3tTbKdGVpE9qUNqpeGd7GFoCrz/N245oj9hjnIYUcIpEb7/05fgc7ka2/9n5EE0eHHZHxeDe4sRIFTmoitUkiXNvdxF2v5a7VVaECeZIQBoLVBfsVn+w4s9JzIbUMfz2V3ZtTG+EZt91lcD7PcJQwOp1JLRMGZFVv38CW65cCaIFNWya+YoMV/+C63sM2yjuO1WLDHdOOcBdwosksiljUSpnl/MhcCFAUyPMsugG5y5aQSnwXcEQ8C5tMUPTPZv4DCI7mAaSrliAkg2llZeU74XWy7FNvlp7ILZYPgFbBJOd+LB+qXy5DTArfTYhFspVZEPUGdMXS6hq1ApJcd9ZwT1rHbZimEGDx7EhAcmMZK3oIpPrYr0ULRqpSub/rcV1GgLsS1zryfb26r4T1qQrP0qwajmpIBLsOhQNODbD+ejcSrQECDw6BTaBlm278v3OrwQVSiOTWw4+EoCF2HxeY=","translations":{"en":{"changelog":"**Fixed:**\n- **Success and error messages (toasts) rendered as bare text in the\n  top-left corner.** Since 0.29.0, confirmations such as \"Settings saved.\"\n  sat unstyled across the header instead of appearing as a box at the\n  bottom left. The cause was updating `@nextcloud/dialogs` to 7.5.0: the\n  library's toasts now carry hashed CSS classes whose styling only its\n  bundled stylesheet knows – up to 7.4.1, Nextcloud's server CSS had\n  quietly styled the then-global Toastify class names, so the app's missing\n  stylesheet import never showed. Both script entry points now load the\n  stylesheet themselves; a static test and a sharpened e2e test guard this\n  (the previous one only checked that the message text appears, not that\n  it is styled)."}},"signatureDigest":"sha512"},{"version":"0.29.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.29.0/vereinsbuchhaltung-0.29.0.tar.gz","created":"2026-08-30T16:45:56.298381Z","licenses":["agpl"],"lastModified":"2026-08-30T16:45:56.398583Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"yQHwNNxrBjVIKt7MFaMKoeJwKVfhHDcVQwZDFVsw8Si/nVH9ZKTFaSh3U40O+M9pUMS0orOFnbrKEjuQ9VlcDRYhzlxkzal2X2gSNnVZEnMSEEWT4M+1wyvGfy0aPh+KmX9u1udqC6ERlVJXzWU6Bwn2/oUuktI+/j3LjlegsuiW/OeDz1raNNoYvl7p6f5dSuSfItaPqtcbGjjefw+75WZhJXdf/kwkJWPLPkU16i8PZsR8VsShq0ZQV/8HtgSQJ2o3HVwpELHA2onV8rmNbvOsvLj10PxDjYlD8jNom4YuAMCpn9cx2ynOtVS0bQFHHmhtqdq7E4sumSJkf5m1m2n/Y5R5mID1qiCEAtXNcyoRhOz0Dl7bnq4Lj7KtxYTHxurHdRAo/XSngwP3Uk0Tm+H2HP+m2qDCxLpY8aBR7ISrTzR4YsvwRZCv+7U96RhMVJ23Zv4tRf3SW+ohI+hRwLWYQkyfbKOht+i0EvuZMjubbOUgOMdwHMRVQfqF1IV1YFN3IV1+IfkdeTl2KuyFd6h7ecg9KjmUcE4ByS9TZdU1O+uF8MLBmzLBsqTKKNCruUXgOOJAeOcewfPsxJkZj3yzH/EmAiS2Yww1MZRI323vh3gkk+Nk4OzvQeidOwX6wq1cR9AEZGUpIrzyTDqIYI6S8Y+c/nxQDCyCBtZ0s+8=","translations":{"en":{"changelog":"**Changed:**\n- **\"Cost center\" is now \"reporting group\".** The report, the *Manage\n  reporting groups* button, the field in the account dialog, all messages,\n  the in-app help and the manual now use this term; in German\n  *Auswertungsgruppe*. The trigger was a question from an accountant (issue\n  #7): in cost accounting, a cost center is a **second dimension on each\n  posting line** – an amount is allocated across cost centers independently of\n  the account it is posted to. This app does something else: it groups\n  **accounts**, and an account belongs to at most one group. The old name\n  therefore promised a capability that does not exist – and strictly speaking\n  there is no such thing as a result per cost center anyway, because a cost\n  center carries costs, not income.\n  **Nothing about the functionality changes**: the same three groupings, the\n  same assignments, the same figures. Groups you created, their codes and\n  names are kept unchanged; no conversion is needed. To split one amount\n  across two groups, you still create two accounts for it (ideally as\n  sub-accounts of a shared parent) and split the posting across them with\n  *Split…*; manual chapter 5.4 now says so explicitly.\n  Internally everything stays as it was – table `vbh_costcenters`, column\n  `cost_center_id`, setting `cost_center_mode` and the `/api/costcenters`\n  route are unchanged, and there is no migration. Older entries in the audit\n  log keep their original wording.\n\n**Fixed:**\n- **A deleted collecting account blocked the entire settings page.** If a\n  collecting account had been selected under \"Contributions & SEPA\" and the\n  data was then wiped via \"Delete all data\" (or an import with reset), the\n  setting pointed at an account that no longer existed. From then on **every**\n  save on the settings page failed with \"The selected collecting account was\n  not found.\" – including the club name or the receipt storage, because the\n  page always sends the full set of fields. Resetting the data and deleting a\n  single account now clear that setting as well, and it is only validated when\n  it actually changes, so an account that became invalid later (after removing\n  its IBAN, say) no longer paralyses the other sections.\n\n- **A deleted Nextcloud user blocked the entire settings page.** If a Nextcloud\n  user was configured under \"Receipts\" (receipt storage) or \"Bank data\"\n  (watched folder) and that user was later deleted in Nextcloud, **every** save\n  on the settings page failed with \"The specified Nextcloud user for the … does\n  not exist.\" – including the club name, because the page always sends the full\n  set of fields. Deleting a Nextcloud user now clears both settings as well:\n  the receipt storage falls back to the app-internal storage and the watched\n  folder is switched off. The user is also only validated when it actually\n  changes – for the deletions the app never learns about (a foreign user\n  backend, a restored database dump, a deletion while the app was disabled).\n\n- **No Nextcloud user could be selected in the settings any more.** This\n  affected \"Receipts\" (receipt storage) and \"Bank data\" (watched folder):\n  both dropdowns only offered \"— internal (AppData) —\" resp. \"— off —\", the\n  list of Nextcloud users stayed empty. When the settings moved into the\n  Nextcloud settings (0.25.0), the page lost its binding to the user list –\n  the list was still being loaded, but no longer passed on to those two\n  sections. As a result, receipts could no longer be stored in a user's folder\n  and the watched folder could not be set up.\n\n- **Illegible labels and wrongly coloured buttons.** The app used Nextcloud's\n  light status background tones as text and accent colours: \"Expense\" in the\n  posting dialog was white on pale pink, the remainder shown while splitting\n  was barely readable, edge markers and warning stripes faded to pastels. The\n  dark theme was also tied to the operating system setting instead of the\n  choice in the Nextcloud profile – picking \"Dark theme\" there while the\n  system was light produced light colours on a dark background. And several\n  of the app's buttons (the income/expense toggle, the checklist links,\n  \"Skip\", the suggestion chips) were painted blue by Nextcloud's generic\n  button rule. An automated contrast sweep across twelve views in light and\n  dark theme found nine WCAG AA violations before and none after; Nextcloud's\n  high-contrast themes are now picked up correctly as well. Two superfluous\n  separator lines in the header area are gone, too."}},"signatureDigest":"sha512"},{"version":"0.28.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.28.0/vereinsbuchhaltung-0.28.0.tar.gz","created":"2026-08-24T21:25:42.976693Z","licenses":["agpl"],"lastModified":"2026-08-24T21:25:43.053476Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"InHxPFEZyBd3yG1z+2uy6aKBsx6FyoN3f5ANpltNQ5cdO4ka3WjXGr2qoXoxzwiAF8GuehGrB49Y6PG/J0rD+NDfxrlsdagjW962RfIAbfy7iuyWyAJXG5zzUuCtBXrNsF+xX2p0oJCgxu3pP7py734yG2C0O8QlnzfNMv587XwlN5T8u4tnxZBpaFgDppx4M8T64wwirD6fXIHZ2XscD6Z93lTwONEJ6QinuT5GVXPz/xALj09jIfau0QUlf7ASK7ZW+RafURPvEJv4yoDfz9pG2K5rp6j9eKsRy542OlgWasYWiQ/AsOAzhrlbXE6I5tc0RV+PgpE+1XeFrZCKk7Eh1bBFUjBEpd8wrdaN4SatC3izCdry/SGmO7cZnD+pO7aYtOmDpPUKJcu3AByHkWNj9XR2o++1dlBDHBgVc5pI1LZrkFsS0COfvBle46qoasWmG1O6FCUtHe5bG13owgxzujgc1X9OuTc0PojlMQObD3h7aiwwYFHhQKellpUdYiW/VBfWSIb6pEHDkronPwWG1LitX7khY8/Nwfc02xDIDhq547Q3S+pYaIB4uh8mkr37bdQf/ThAwKHRBCaaRpFfq/mflPgLy1xHJ5G7VWdGTaUo2DL9ABLuSLG0q0x4kjt5cJVZlgNpkDJzvxjndy1t7mU3KR5XB/VNqiV1gm0=","translations":{"en":{"changelog":"**Fixed:**\n- **The interface stayed German even with Nextcloud set to English.** Until\n  now the app loaded its translation bundle straight from the app directory as\n  a file (`l10n/<language>.json`). Nextcloud's shipped `.htaccess` only serves\n  files with certain extensions from there – `.json` is not among them, so the\n  request ends up in `index.php` and comes back as a 404. The attempt\n  therefore failed silently in **every** normal installation and the app kept\n  showing its German source strings (typical nginx configurations behave the\n  same way). Translations now come from a dedicated endpoint\n  (`/api/l10n/<language>`), which is not affected by that restriction.\n  Server-side text – manual, audit guide, error messages – was never affected.\n\n- **The confirmation for posting a SEPA collection showed a red \"Delete\"\n  button.** Two dialogs were affected – \"Mark collection as executed\" and\n  \"Undo return\" – both left the button label to the dialog's default, which is\n  meant for deleting actions. They now read \"Post\" and \"Undo\" and are no longer\n  red. The default label is translatable as well; until now it read \"Löschen\"\n  even in the English interface.\n\n- **The buttons in the SEPA collection list were cut off.** The action column\n  is fixed at 160 pixels – a width meant for three icon buttons. The four text\n  buttons (\"Show rows\", \"Download XML\", \"Mark as collected\", \"Discard\") wrapped\n  onto separate lines there, the widest one stuck out of the column, and that\n  made the table wider than its frame: the buttons sat half outside on the\n  right, and the \"Created\" column was clipped on the left. From 900 pixels of\n  window width they now sit side by side; below that they still stack, but\n  inside the column. The same applied to \"Undo return\" in the expanded\n  collection list.\n\n- **\"The accounting was changed by another person\" – after your own entry.**\n  The app compares its state with the server every 20 seconds, but a change\n  detected that way only counted as your own for 15 seconds. Since the\n  comparison runs less often than that window – and is deferred further while\n  an import is running – the app regularly reported your own larger actions as\n  someone else's change. The measure is no longer a fixed window but the moment\n  your state last provably matched the server: anything you wrote after that\n  explains the difference. Genuine changes by other people are still reported.\n\n- **Sphere, reserve and cost center names stayed German.** They came from\n  fixed strings in `ReportService` and never went through translation, so the\n  English interface read \"Ideeller Bereich\" instead of \"Non-profit purpose\".\n  This affected the sphere overview, the reserves overview and the built-in\n  cost center names.\n\n- **22 missing English translations added.** Among them the default-fee hint\n  in the member import, the labels on the SEPA collection cards (\"Total\",\n  \"Due\", \"created\"), the \"What's new\" dialog and the first-run hints in the\n  help – all of which showed up in German in the English interface. A sweep\n  of all 850 strings in the code against `l10n/en.json` now comes back\n  without a gap.\n\n**New:**\n- **Member lists with English column headings.** The CSV import now recognises\n  English column names alongside the German ones (`Name`, `Email`, `IBAN`,\n  `BIC`, `Mandate`, `Amount`, `Frequency`, `Start date` plus common variants)\n  as well as English frequency values (`monthly`, `quarterly`, `semiannual`,\n  `yearly`, `annually`). The English manual already described these column\n  names – now they actually work. Existing German lists keep working\n  unchanged."}},"signatureDigest":"sha512"},{"version":"0.27.2","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.27.2/vereinsbuchhaltung-0.27.2.tar.gz","created":"2026-08-23T09:40:33.604753Z","licenses":["agpl"],"lastModified":"2026-08-23T09:40:33.689634Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"NgfXL4Rfqyk2fMRoXHkcuOpie+84LH1qIhuhJ+Sfs4K29Xy5fbifWMVhWM2HBTEhfNqQaqLJzVzi4BVDV1rjlvMjD4O35H5QACv4J8/3jiw76kJTS44yTA5zVcnhWhBCqr6yuB8jTx7hco1x7uCo2ywbJvjJ187R36mNfVm6ZjcKhTDNwRmM0vKJz4GaOubDo4btXQbQpFhFUPAUVRpfRTVYfJKvuEOmTo2NWScedIG8pFocJL97l9EAymq0XconkOSporGYKouX6WalbuG9k+EEdPsrNaRRilNfOGQ2ffVXy/nMK4Z7SiF/ZGuFA5K0VI3TlV/KkIjm1o50gjAnu/9kko9C4aqijlY/chU/h84MDfwGC3omb00NHhd9aCuaLp3JoZfoDgQjdtSrQQA/n/EC3o2WwXJknTUxamNroeviXVFrhNl7CtI98yXhVExWePLfdmVb4eCDZl9+BsibH6nM/tQV52hToGpSyYJ+xUehhKV64dOQjf+f7BaTo+uK18vXNin/3lph6p+sLUkB4T1nli5F2kajhzZDA1Q0AC6JlWQ8YiakUO+94I5FqFruv46S+89VTbE3co9cY8kbPImIAT00o+g7N6E+SUPvFYCryYYElWJkv8TdUBGkA2wYRshimV3lcg2nDNrQmvQfk6y3ttSXstnqlnOQd/gdyi4=","translations":{"en":{"changelog":"**Fixed:**\n- **\"What's new\" popup from Nextcloud showed \"[object Object]\" instead of\n  text.** The 0.27.1 entry still had a `### Fixed` sub-heading in its\n  changelog entry; Nextcloud's popup renderer (`marked` v18) can no longer\n  process Markdown headings correctly (see note above) and shows\n  \"[object Object]\" in its place, while the rest of the text renders fine.\n  From this version on, changelog entries avoid `###` headings."}},"signatureDigest":"sha512"},{"version":"0.27.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.27.1/vereinsbuchhaltung-0.27.1.tar.gz","created":"2026-08-23T09:08:00.549054Z","licenses":["agpl"],"lastModified":"2026-08-23T09:08:00.610907Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"aeAWQtCQuWsCH4+c3wMP1uOdvyL3Q9PzYaU51NlPZUEdQAKmgJ+hr6P3RcagnAVVx9RKun88DqgEASp3wfO4PQoctWxw1f3x8uj+jEw/Lsm8/kKfOJRzBWMOHRyOhnvUDQeNtmJ3D/63gftHG2+KWgiEBSAuMf1hqoR/4fg+zuqh9sxiuwAEwDYgP6JMEs8zgLC9bfcbRgjpg9upN/G1pGYkFgIFWNkhO+ETFSj/Qvd5V5o1fMhP58GPNQFsLOy6/sMhxqznyvqr4cgBfQyd4BETkrJ7GY+6EFD0NmGy6SDiSwRYzBgbkaRyjZAd1DSg/Sybuztz8SzWstRdyse43I6DhndKTFj/keK4I8JJperJv8NVF2/y+ZBQwZIywDns4uuAvXbYmi6soFJFiu2RV2DMSnmR90g2Y07mp+pMQ3S4XBpS+cFaBcxElefyrCGMe1dEnhLWgyITH9gHgfztT4KFzaTWc3XGRH6RUbPxyyxwWsa+C7PnA7S5MgegXrXichoDdAQecWRUqTBf61nQOJB9i83dMYQBzLeFdEMWG9MDcPfJrasHG5hFRkBctvY6j5yrLhZHu3u0hEeX8xk3/nTSZbkpBjklAooT1qb46Za+EA2TbGKv5UPb3S1pONIqIN01poeZ1dRhry3ddlt+WdLbwfeFm9GvOaj1/xDivVE=","translations":{"en":{"changelog":"### Fixed\n- **Broken \"what's new\" popup from Nextcloud itself.** After updating to\n  0.27.0, Nextcloud's own app-update popup (independent of this app's\n  in-app dialog) showed \"What's new in {app} 0.27.0\" followed by\n  \"[object Object]\" instead of actual text. Cause: since 0.27.0, `info.xml`\n  carried the app name in two `<name>` elements (German/English) for a\n  localized App Store title – but Nextcloud's update notification reads the\n  name at that point without a language code and can't handle multiple\n  `<name>` elements (a Nextcloud core bug). `<name>` is single-language\n  again; `<summary>`/`<description>` remain bilingual."}},"signatureDigest":"sha512"},{"version":"0.27.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.27.0/vereinsbuchhaltung-0.27.0.tar.gz","created":"2026-08-22T16:51:17.160383Z","licenses":["agpl"],"lastModified":"2026-08-22T16:51:17.289239Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"Mi3raDuOYadKfpzYefG7vj6dVm3swn9+mt9ruKaYeQxm5nlbfNi9FewA5R6IJqVP0EcpSSE1h7LfXS25LueCsPlRyIWQ5nz+qr2dQkynflesWDyZzoVt/lSCcQyUfJN0RP+dVXBCcpiltKKKg2FNZzxxmj9BxgL1nUimMSi48FG7xwmFRXeXcBX/fIAF2EOnOCwVF2vlZ18jju+bJQATEQZ5cH2jIWi7g1gD2eWlQYUie6Qww8WU2n33XikVLQpVwDuk6TFz7aSJJ/Rq09b1w4uJhUCIq9fnV0e88dSMjrjj4C/rJdgf2+J/BFcvKJh9KVkBNzkm4FkTxRyRpTew+wqeem5+EdsAHoyKggJqLmbS7KSujXscwA8SzSzvwd+v+MoJSHu8I6V8Fo5Y9z0b119jg9itfR3X5lNsly2bVj6SrMrEAGo+ER2nNWCwDs38/3+2bgXPAZrdnyER+kqpPy3NgdCRiGAK2wWo/T+5fS5P1wncauXqaDLPH7V4wHNBAib9cxUgaiyDzxl+uvH4v+SZC1IMlEfwfZGZjUJnBTY8OVLpNC03LNDVgQkBp65plEnfavZ4oyd4vc6RSA7y9lr57WtuE3eaOohGp4OoWZaOn8T3T1OnzIGMbryiTGF771CikEdUNFbhGi3KAi+mz7CGv3ZVTZCkdyqnoOopXUs=","translations":{"en":{"changelog":"### New\n- **README, manual and audit guide are now also available in English.**\n  README.md, CHANGELOG.md (from this version onward) and HANDBUCH.md are now\n  also available as `*.en.md`, with a language switcher at the top of each\n  file. `info.xml` now carries `<name>`/`<summary>`/`<description>` in both\n  languages, so the App Store automatically shows the right one. The manual\n  served in-app (`/api/help/handbuch`) and the printable audit guide for\n  auditors (`/api/help/pruefleitfaden`) now detect the user's Nextcloud\n  language setting and serve English instead of German once it's set to\n  English. The chapter deep links from the in-app help (HelpModal) now point\n  to language-independent anchors (`section-<chapter>`) instead of slugs\n  derived from the (then translated) heading text."}},"signatureDigest":"sha512"},{"version":"0.26.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.26.0/vereinsbuchhaltung-0.26.0.tar.gz","created":"2026-08-22T15:27:31.629573Z","licenses":["agpl"],"lastModified":"2026-08-22T15:27:31.696850Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"SSJGYRSPKYldBCTeEervEPuSTfCzZo4MueT61i50B0YTBi7eSIAZT8c4YPEN2OpNjr8ZZHeGBGjgRqVRHaa9ewHtue5Qp6UDCdeCw5O9G+pIHNIXY4kENM87wt+15KOrQ99WvuX69vR5L07S3AFcoGEFocuB9IYgItFt5hTNi6+MyNgMt4IoN0nHgON9oCBrGxo6zxDuhZMrE4n0hYAxtgH5iFUmWEn2OjPvlYrkWnKXo9G4v0/4fR0xVM+N/6wg6Zgmox/4NPKfU+BjiQ5D+erMxOzxm0CDb9tCVk4BK7Za/vnkJtpcb34h4M2NJWTHgWsnkUlmPLvIPbwNtWOgvuyAOOUoviJLJaU1nt17AFHSaHwC5WQtDbF38WyPOKMupMhvjLYZsAAxrMogZUE0Mf51aUUxfm4wFsWRp+kjkQtFd/yavBZpL3qKvcAg25Doc3AtJEpar0Zxd8T6sQx6S+rkzcQRmWemAsq3gQO/WwqKIwOwiXy7ny2m9SZqY1ILL/8S4CZFw+kuZuwT9OjOIIMbxXpAt5R9tpXMqDTGRWmfZ+UEaM3G5TGPBqWPG8xOM0Tj2yocFSGGMFZfqSmRvuDKbogFaTzcrGg12i1a78tOSFDi93IqeZfPLEaD248RKbSDzVAyWkvx5aZDPmJoawif7uCMsGyEP5RQH0FwWHY=","translations":{"en":{"changelog":"### Neu\n- **„Was ist neu\"-Hinweis nach Updates.** Nach einem Update zeigt die App\n  jeder Person einmalig einen kurzen, auf ihre Rolle zugeschnittenen Hinweis,\n  was sich geändert hat – statt dass Neuerungen nur zufällig auffallen oder\n  gar nicht bemerkt werden. Der zuletzt gesehene Stand wird pro\n  Nextcloud-Konto serverseitig gemerkt (nicht nur im Browser), damit er auf\n  allen Geräten derselben Person konsistent erscheint. Über Hilfe → „Was ist\n  neu in Version …\" lässt er sich jederzeit erneut aufrufen. Nicht jede\n  Version bekommt einen Eintrag – reine Fehlerbehebungen bleiben unerwähnt."}},"signatureDigest":"sha512"},{"version":"0.24.3","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.24.3/vereinsbuchhaltung-0.24.3.tar.gz","created":"2026-08-15T20:01:05.359722Z","licenses":["agpl"],"lastModified":"2026-08-15T20:01:05.440335Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"F0vMWEnRu1h2zXCbNEoRJPpy8dqSTmHO/nDWrvyWGXZbI3yyjjjWNoUVyVnjdXiQvSRdwGpMm5zMTft0hXf1UVa5VqcCvVh1OpqSIS26VB8CUAO9ZjP1fmQsaj3t/MOcOfLqrJo9H/JYa5jXgZalnQexVhNN6si9CvTGkZEopjwq/q5f/8bwuS3K25Ich3VIFJXp1ay6YFNjhPnfY5T2SGVBVNE0/Tzen5gTL3LtJnhzoP3//aArkzqH1RjgQC+nOr4Za/wXCRrfg5rbnxpFC6oirrNmvtaw3Ot4y3MVoSktp0h+ssRodoO4DFQtr3GohwajY5+QA6pKhGuDwgvpJjKWUa9TJzCxqFkNsrOkx1P/CjNwLneTUraAZlSuyen8mpQjrJePzpSQSZTn4VPTcrM6+BcrUrygURMz3zEhdDdRRGJQJV+CWxDTLFMbDoZQfuYZWI9RBkesC3HjwMYy9rdmAsmV3Ygnp6JrM/z11qklkCZBkxBzizAuR6GSmTGDdVJ3YDRVL3j/BccLKdrTIaSbTsGAwHT2rDO5LSrikLoou8kcxKvgQf64JgaO0DedpxEcMAk6dWRTxLo2EjXVjDaOBIHg2yT5JCBb/N/PKJ/fx+2iwol/PjGIWWHZT4/lvDOnUjygZ6u12s1MQRieORB/zO0xz8jeIAf7X7xbJdg=","translations":{"en":{"changelog":"### Geändert\n- **Beiträge → Mitglieder: Bearbeiten-Button zeigt jetzt das Stift-Symbol**\n  statt des Texts „Bearbeiten“ – konsistent mit den übrigen\n  Bearbeiten-Buttons in Tabellenzeilen (Buchungen → Regeln, Journal)."}},"signatureDigest":"sha512"},{"version":"0.24.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.24.1/vereinsbuchhaltung-0.24.1.tar.gz","created":"2026-08-15T18:04:26.154785Z","licenses":["agpl"],"lastModified":"2026-08-15T18:04:26.220890Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"mZBEME1oniTSxTY9AmcBwrzJDrnU2MPLyQSXHoUEf9D42t3aQ+3A+GsoTO5B9K28MZwblObWytuz6tF5XjeF/o7V7bwag+KfSwVn1fWo2v8Jzqh/KzZ5cSDorHEjhRMLrr0v7zGXM+J+VSHdxtQ7X4JhOtnRMEtq8eD5/ogYZd7IwCTkyXkG9dMvvIDqO0npTQc6SegFiWr5vQqnBmcTf4YSb5to3j9OgPfeHJslrr01r2KJFo86iwexm6hS57d/QgldWkSPBWcQX/mO3Ss5j7HwP3LdrvgfLq9KbUeS/+iYkPXHmL76edhDIU2iNq6pHg7dDKFekFWOEnCp2jPx7yyzffLZ+vSDSgCca08FHdXcLPIqyihAtzM0oeQYQ/b9CQaVq4h1vKKpYrsS5Dexl5y3fY3LfwzJBZ4gNLaSIcixGphGf8L/vxQCvpqsKox76CniRA5f+ad11pkbK+0xCXPUZYfm7x+Rdz5tGfEHnlI+S76OHBTnHfksY2sXMki0iGDad5iYFr6TjGAKWZA9Exlgvuh1I0ZWnCP2ItwHeTVbAPsupVazB8aDTuBSr4HxeM16XnAZAthMgdJtQAkVqjV8iiyKnOKYLohSlaaTbFLjNDHhvbAEa+sgdDUyQhEr6nv+yM4gElpqjtu6E5sb7FlCGn/RIfflVeR2y5w45bU=","translations":{"en":{"changelog":"### Behoben\n- **Modal-Überschriften schwebten am Browserfensterrand statt im Popup**:\n  NcModals `:name`-Titel hängt CSS-seitig als Geschwister von\n  `.modal-container`, nicht darin – bei zentrierten Dialogen (Einstellungen,\n  Neue Buchung, neues Konto, Kostenstellen verwalten, Sphären zuordnen,\n  Mitglied aufnehmen, Importe, Hilfe, Bankverbindung wechseln, Plan-Stand,\n  Willkommens-Assistent) klaffte dadurch eine Lücke zwischen Titel und Box.\n  Betroffene Dialoge rendern die Überschrift jetzt selbst im Inhalt; auf dem\n  Handy (size=\"full\") bleibt der eingebaute Titel-Balken, der dort korrekt\n  über der Box sitzt."}},"signatureDigest":"sha512"},{"version":"0.24.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.24.0/vereinsbuchhaltung-0.24.0.tar.gz","created":"2026-08-15T17:37:04.887976Z","licenses":["agpl"],"lastModified":"2026-08-15T17:37:04.988716Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"F4fcHxqtwK40/pbTvqEDMLCdTPDegYcr9z834SwpPuVWNTebRNgwEDPMkdeFqpQkrAANpyo+818P/va/RY/OPVdRo12pkmyZVkdOcW7F6GtIpAj6GHKJBw60oxJ4VT6eld5b/GaMD6d9kkfYCuiCziaVtM0p1RIwBWNSmqrH6Ru/yEQftJx8Zbqg6+QgDOy/PGWZ9b/73fPFfifNu0btD9K3XEvJGAJp2GRLuUiIki8eeUHf/3fMDj1xPFtr9y6avxoNkgBS2Zqfi6OLXfRNK2lqHdbUbcmXU1f56Qfgx/KnOy/yrkVSjs0pzGUOAl1vCZTp0Yzq7+uuUD5jVMvpGBJ953jvEPXlM7DzHmElf9VL2rcy7SFHKjB80A8FptkdSMCG4qe3HUU/W0ImlUhf6BD0p3t1ElHI/SEsjjggabLebxk8B+nNOAyWJWCagiEA615yaEzTiH5kH+UylKzGXvih2CZvcGeGo59m808ySvRCtkskfyyDDMpv8GU2kzeFPsCdB0DOO1SyNFfeJznKMLu+fX3H0phF8IhcrwnVCloeGt5p6VPzfgAOcT3MlUDVDqoQcfyoJk+Z0+qGaoJ0F7cLA7+PnsgRpEsI6/J2XHDnCkimNPWJFDn7JAh33aDYx03CKXaXwVnx5D48V8oF4wrk5OMt+lK8YVjJ/z5UKk4=","translations":{"en":{"changelog":"### Geändert\n- **Berichte → Kostenstellen/Sphären: Bericht bekommt die volle Höhe, Pflege\n  wandert ins Modal**: Seit 0.22.3 hing die Pflege (Kostenstellen anlegen/\n  zuordnen, Sphären zuweisen) als zweiter, oft sehr hoher Block unter der\n  Split-Ansicht (Baum + Detail) im selben Scrollcontainer – der eigentliche\n  Bericht war dadurch auf `min-height: 360px` gedeckelt, während die Pflege\n  den Großteil der Seite einnahm. Die Pflege öffnet jetzt als `NcModal` über\n  die Buttons „Kostenstellen verwalten\" bzw. „Sphären zuordnen\" oben rechts\n  im Bericht (gleiches Muster wie „＋ Mitglied\"/„Liste einlesen\" im Reiter\n  Beiträge) sowie zusätzlich über „Konten zuordnen\" direkt bei der\n  Baumzeile „– nicht zugeordnet\". Der Kostenstellen-Modus (Gruppierung)\n  bleibt sichtbar, da er den Bericht selbst steuert – er ist jetzt ein\n  Auswahlfeld in der Kopfzeile statt einer Karte im Pflege-Modal. Damit\n  entfallen auch die CSS-Sonderfälle aus 0.23.0/0.23.1\n  (`.vbh-sectionbody.is-split` hatte nur wegen des zweiten Blocks\n  `flex-direction: column` und ein eigenes `.vbh-section-divider`-Padding\n  gebraucht)."}},"signatureDigest":"sha512"},{"version":"0.23.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/AndiMb/nc_vereinsbuchhaltung/releases/download/v0.23.1/vereinsbuchhaltung-0.23.1.tar.gz","created":"2026-08-15T16:41:55.821422Z","licenses":["agpl"],"lastModified":"2026-08-15T16:41:55.880138Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"JUeU+au31gmFileGZvqfqHdz76kVE7sRd5xouf9LGjP4c8r9h8aQbrSozYWtASvPi8iCRh+FoqWauREynx88pz3ZnI0+FJfQBn/SIxy/ZyBSfiNyTVIwCi8NTYlp1Zo479tDt81my6+kaVDjfCRdZbyncuHugwpZbyxeoRuKtH21NenZVmGviCplJhiHgXYKUS6W4cgOMZ0IeOeP5aSlaigfbf39v5wf7nEPtGRMVmjmODXRa2T74Rbwmf6i8ujxgKklBeIY9jimJWqoQ5gMas5eE/swEnQsiy2xNgw71xBUtkyrMWKLw0LvPg5u2czJ1RlDVcQoC9MRUs3lY2N7A7mlkIIOaNCH+VFwpYddpR+yZRpCqaLUf4NyRynzUnk/p/PIvcWwhmL6tz2Z59ksgrvKLjcZqhE693JLvXKDVWXwjxg7tMUHBpVR8lwKyEAfXxQiuLkktTeCaHqEsA1ag94uVirj8GgJwzrpYBP6hPuopBgZ5yqto6nDLNfTzA6xzYhcYBM4Hi7M8XmK/AMr791kATi2pjVSq7RmYBGUneyRe40dqUDCR87pVzgQuink8cELbyDpAXlhO5TqAd/yxxmqrdX/HXWHiWSBuEj4qU2y0zcfhi5G2oLdaA5Fkr4PO874E5I8Eco51QUZFUG1LLPCBrIl3YkL0MicAqpEIe8=","translations":{"en":{"changelog":"### Behoben\n- **Berichte → Kostenstellen/Sphären: kein Rand, weder oben in der\n  Split-Ansicht noch im Pflegepanel darunter**: Nachbesserung zum\n  0.23.0-Fix, der die Split-Ansicht (`.vbh-splitinner`) wieder auf volle\n  Breite brachte. Zwei getrennte Stellen hatten trotzdem noch keinen Rand,\n  weil beide bislang nur implizit vom umgebenden `.vbh-sectionbody`\n  profitierten, das für Kostenstellen/Sphären aber bewusst auf `padding: 0`\n  gesetzt ist (die Split-Ansicht managt Innenabstände sonst selbst) – bei\n  der vorherigen ~1px-Quetschung war das nie sichtbar:\n  - `.vbh-splitinner` selbst (Baum + Detail: kein oberer/linker Rand) –\n    jetzt eigenes `padding-top`/`padding-left`.\n  - das darunterliegende Pflegepanel (`CostCenterPanel`/`SphereAssignPanel`,\n    umschlossen von `.vbh-section-divider`, das sonst nur als `<h3>`-Trenn-\n    linie in schon gepolsterten Containern vorkommt) – jetzt eigenes\n    horizontales Padding auf `.vbh-sectionbody.is-split > .vbh-section-divider`."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvdWViZXJzaWNodC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvYnVjaHVuZ2VuLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvemVpdHN0cmFobC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvbWl0Z2xpZWRlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvYmVyaWNodGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMva29udGVuLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FuZGlNYi9uY192ZXJlaW5zYnVjaGhhbHR1bmcvbWFpbi9pbWcvc2NyZWVuc2hvdHMvbW9iaWwucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Vereinsbuchhaltung","summary":"Accounting for nonprofit clubs: bank import, double-entry bookkeeping, members and SEPA direct debit","description":"**Accounting for nonprofit clubs – fully within your own Nextcloud.**\n\nFor treasurers of small and medium-sized clubs who don't run separate\naccounting software and don't want their financial data in some provider's\ncloud. Your data stays wherever your Nextcloud is hosted.\n\nYou don't need to be an accountant: in **simple mode** you record an \"income\"\nor \"expense\" with amount, date and category – the app handles double-entry\nbookkeeping in the background. If you'd rather set debit and credit yourself,\nswitch to expert mode.\n\n**[▶ The app in two minutes (video, German)](https://youtu.be/eaF-tAQ_OOM)** –\nimport bank statements, assign transactions, evaluate and produce the annual\ntreasurer's report.\n\n## The workflow\n\n1. **Import a bank statement** – CSV-CAMT, CAMT.053 (XML) or MT940 from your\n   online banking; the app detects the format from the content, the file\n   extension doesn't matter. Transactions already present are recognized and\n   skipped, even across formats. A watch folder can even pick up new\n   statements on its own, without a manual import.\n2. **Assign transactions** – every bank entry gets a counter-account. Rules\n   handle recurring assignments (rent, membership fees, charges)\n   automatically.\n3. **Attach receipts** – photo or PDF, either in a Nextcloud folder of your\n   choice or stored inside the app. Or as a watch folder: whatever you drop\n   into it in the Files app can be picked when booking, and the overview\n   reports what is not yet assigned to an entry.\n4. **Evaluate and report** – treasurer's report for the general assembly,\n   short report for board meetings, exports for the audit.\n\n## What the app can do\n\n- **Double-entry bookkeeping** with a freely definable chart of accounts; a\n  standard chart of accounts for clubs is included\n- **Treasurer's report** and **short report** as print-ready pages (Ctrl+P),\n  optionally with your club's logo and accent color\n- **Financial plan** with plan/actual comparison, comparison with the previous year and freezable plan snapshots\n- **Structured report** by template, e.g. as a budget for funding bodies or as a result per project\n- **Nonprofit status:** spheres following the German four-sphere model\n  (ideational, asset management, purpose-related business, commercial\n  business) and reserves per § 62 AO\n- **Membership fees & SEPA direct debit** (optional, can be enabled as\n  needed): member management with CSV import, direct debit mandates on paper\n  or electronic, contribution groups with an interval, pre-notification and\n  collection as a pain.008 file for your bank with a release before\n  submission, bank reconciliation, returned debits with dunning, and a \"My\n  contribution\" area for members – its own tab in the main navigation; if you\n  don't need the module, you never see it\n- **Open items** – keep track of unpaid receivables with due dates\n- **Multi-year trend** and result per reporting group\n- **Freely definable fiscal year:** it does not have to match the calendar\n  year – October–September, the school year August–July or half-year\n  periods (semesters) are just as possible\n- **Year-end closing:** a finalized fiscal year can no longer be changed;\n  continuous, gap-free posting numbers per fiscal year\n- **Change log:** who changed what, and when\n- **Roles:** administrator, bookkeeper and auditor – the audit role gets\n  read access to everything without being able to change anything\n- **On the go:** dedicated view for smartphones, photograph receipts\n  directly\n- **Annual audit:** all receipts for a year as a ZIP, print-ready quick\n  guide for the auditor, completeness check of posting numbers\n\n## Member management & SEPA direct debit (optional)\n\nFor clubs that collect their membership fees by direct debit: a tab of its own\n(\"Contributions\"), enabled when needed. If you don't need the module, you\nnever see it.\n\n- **Members:** member list with a record per member, intake assistant, CSV\n  import of whole member lists, leaving, information under Art. 15 GDPR and\n  anonymization; the email addresses for a bulk mail can be copied with one\n  click\n- **SEPA mandates:** on paper or electronically via a one-time link, with\n  history, suspension, revocation and a warning before they expire\n- **Contribution groups:** lower limit and allowed intervals (monthly to\n  annual), assignments with a preview, members who pay no fee\n- **Collection:** pre-notification by email, release before submission,\n  collection file (pain.008) for your bank, timeline of collection dates and\n  bank reconciliation with matching suggestions\n- **Returned debits & dunning:** reasons in plain language, payment request\n  with payment details and a GiroCode per item, dunning levels, fees passed on\n  if you wish\n- **\"My contribution\" for members:** maintain contact details, contribution,\n  interval and mandate themselves – with a preview and a confirmation email –,\n  plus contribution confirmation and data overview\n- **Task clipboard:** shows in the header what needs doing next\n\nA **sample club** can be created with one click to try everything out\nrisk-free, and removed again with another click.\n\nExisting data from \"zero Buchhaltung\" can be taken over via its xbuc files.\n\nFull manual in German and English: see documentation."},"de":{"name":"Vereinsbuchhaltung","summary":"Buchhaltung für Vereine: Kontoauszug-Import, doppelte Buchführung, Mitglieder und SEPA-Lastschrift","description":"**Buchhaltung für Vereine – vollständig in der eigenen Nextcloud.**\n\nFür Kassenwartinnen und Kassenwarte kleiner und mittlerer Vereine, die keine\nBuchhaltungssoftware betreiben und ihre Finanzdaten nicht in eine Cloud eines\nAnbieters geben wollen. Die Daten bleiben, wo eure Nextcloud steht.\n\nMan muss kein Buchhalter sein: im **Einfach-Modus** erfasst man „Einnahme\" oder\n„Ausgabe\" mit Betrag, Datum und Kategorie – die doppelte Buchführung im\nHintergrund erledigt die App. Wer Soll und Haben selbst setzen möchte, schaltet\nin den Experten-Modus um.\n\n**[▶ Die App in zwei Minuten (Video)](https://youtu.be/eaF-tAQ_OOM)** – Kontoauszüge\nimportieren, Umsätze zuordnen, auswerten und den Kassenbericht für die\nMitgliederversammlung erzeugen.\n\n## Der Arbeitsablauf\n\n1. **Kontoauszug importieren** – CSV-CAMT, CAMT.053 (XML) oder MT940 aus dem\n   Onlinebanking; das Format erkennt die App am Inhalt, die Dateiendung spielt\n   keine Rolle. Bereits vorhandene Umsätze werden erkannt und übersprungen,\n   auch formatübergreifend. Ein Wachordner kann neue Auszüge sogar von allein\n   einlesen, ohne manuellen Import.\n2. **Umsätze zuordnen** – jede Bankbuchung bekommt ein Gegenkonto. Regeln\n   erledigen wiederkehrende Zuordnungen (Miete, Beiträge, Gebühren) automatisch.\n3. **Belege anhängen** – Foto oder PDF, wahlweise in einem Nextcloud-Ordner\n   eurer Wahl oder app-intern gespeichert. Oder als Wächter-Ordner: was ihr\n   in der Dateien-App ablegt, steht beim Buchen zur Auswahl, und die\n   Übersicht meldet, was noch keiner Buchung zugewiesen ist.\n4. **Auswerten und berichten** – Kassenbericht für die Mitgliederversammlung,\n   Kurzbericht für die Vorstandssitzung, Exporte für die Kassenprüfung.\n\n## Was die App kann\n\n- **Doppelte Buchführung** mit frei definierbarem Kontenrahmen; ein\n  Standard-Kontenrahmen für Vereine ist mitgeliefert\n- **Kassenbericht** und **Kurzbericht** als druckfertige Seiten (Strg+P), auf\n  Wunsch mit Vereinslogo und Akzentfarbe\n- **Finanzplan** mit Plan-Ist-Vergleich, Vergleich mit dem Vorjahr und einfrierbaren Planständen\n- **Gliederungsbericht** nach Vorlage, etwa als Haushaltsplan für Zuwendungsgeber oder als Ergebnis je Projekt\n- **Gemeinnützigkeit:** Sphären nach dem Vier-Sphären-Modell (ideell,\n  Vermögensverwaltung, Zweckbetrieb, wirtschaftlicher Geschäftsbetrieb) und\n  Rücklagen nach § 62 AO\n- **Mitgliedsbeiträge & SEPA-Lastschrift** (optional, bei Bedarf aktivierbar):\n  Mitgliederverwaltung mit CSV-Import, Lastschriftmandate auf Papier oder\n  elektronisch, Beitragsgruppen mit Turnus, Vorabinfo und Einzug als\n  pain.008-Datei für die Hausbank mit Freigabe vor der Einreichung,\n  Bankabgleich, Rücklastschriften mit Mahnwesen und ein Bereich „Mein Beitrag\"\n  für die Mitglieder – eigener Reiter in der Hauptnavigation; wer das Modul\n  nicht braucht, sieht ihn gar nicht\n- **Offene Posten** – unbezahlte Forderungen mit Fälligkeit im Blick\n- **Mehrjahres-Trend** und Ergebnis je Auswertungsgruppe\n- **Geschäftsjahr frei wählbar:** muss nicht dem Kalenderjahr entsprechen –\n  Oktober–September, das Schuljahr August–Juli oder halbjährliche Zeiträume\n  (Semester) sind ebenso möglich\n- **Jahresabschluss:** ein festgeschriebenes Geschäftsjahr lässt sich nicht mehr\n  verändern; fortlaufende, lückenlose Buchungsnummern je Geschäftsjahr\n- **Änderungsprotokoll:** wer hat wann was geändert\n- **Rollen:** Verwalter, Buchhalter und Revisor – die Kassenprüfung bekommt\n  Lesezugriff auf alles, ohne etwas ändern zu können\n- **Für unterwegs:** eigene Ansicht für das Smartphone, Beleg direkt abfotografieren\n- **Kassenprüfung:** alle Belege eines Jahres als ZIP, druckfertige\n  Kurzanleitung für die Prüfperson, Vollständigkeitsprüfung der Buchungsnummern\n\n## Mitgliederverwaltung & SEPA-Lastschrift (optional)\n\nFür Vereine, die ihre Beiträge per Lastschrift einziehen: ein eigener Reiter\n„Beiträge\", bei Bedarf aktivierbar. Wer das Modul nicht braucht, sieht ihn gar\nnicht.\n\n- **Mitglieder:** Mitgliederliste mit Akte, Aufnahme-Assistent, CSV-Import ganzer\n  Mitgliederlisten, Austritt, Auskunft nach Art. 15 DSGVO und Anonymisierung;\n  die E-Mail-Adressen für eine Sammelmail lassen sich mit einem Klick kopieren\n- **SEPA-Mandate:** auf Papier oder elektronisch per Einmal-Link, mit Verlauf,\n  Sperre, Widerruf und Warnung vor dem Verfall\n- **Beitragsgruppen:** Untergrenze und erlaubte Turnusse (monatlich bis\n  jährlich), Zuweisungen mit Vorschau, beitragsfreie Mitglieder\n- **Einzug:** Vorabinfo per Mail, Freigabe vor der Einreichung, Einzugsdatei\n  (pain.008) für die Hausbank, Zeitstrahl der Einzugstermine und Bankabgleich\n  mit Zuordnungsvorschlägen\n- **Rücklastschriften & Mahnwesen:** Gründe im Klartext, Zahlungsaufforderung\n  mit Zahlungsdaten und GiroCode je Position, Mahnstufen, Gebühren auf\n  Wunsch weiterbelasten\n- **„Mein Beitrag\" für Mitglieder:** Kontaktdaten, Beitrag, Turnus und Mandat\n  selbst pflegen – mit Vorschau und Quittungsmail –, dazu Beitragsbestätigung\n  und Datenübersicht\n- **Aufgaben-Klemmbrett:** zeigt in der Kopfzeile, was als Nächstes zu tun ist\n\nEin **Beispielverein** lässt sich mit einem Klick anlegen, um alles gefahrlos\nauszuprobieren, und mit einem weiteren Klick wieder entfernen.\n\nBestehende Daten aus „zero Buchhaltung\" können über deren xbuc-Dateien\nübernommen werden.\n\nAusführliches Handbuch auf Deutsch und Englisch: siehe Dokumentation."}},"isFeatured":false,"authors":[{"name":"Andreas Hauffe","mail":"hauffe.andreas@googlemail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhOxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI5MTAzOTU2WhcNMzYxMTAzMTAzOTU2WjAdMRswGQYD\nVQQDDBJ2ZXJlaW5zYnVjaGhhbHR1bmcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDnC/z9FvEUX/wgGOdmuaUe8vO5EAPHkINpfnPaGDYp9iD4NO88j/fM\n0C4WJPoBIVDCDDKKIz3gniWp8Iz3vAVKRhmWui9f64EsCpY9Y/K2bhHJfCekqq8C\nggtQ1x0JHXL/IxF+brJ802IgXMEyNGf6TBl64aQFNTAwnT5Jx8z+d3iTtgbJ7qA1\nVXvOzsKEz+fawmfPNKLZK+oDEAvsrAe0tWTLe33D32pQS4RbrAGV0C8ppB3abgYB\n8OcX2MXa+YwTa3KbWUA8M4kyhR6xZ2Xrnm12cGtjyquIpyEx2vTw2MCr9XkABsRw\nZw7PT4Bm74kXtPMPfxXFKyk63WfZvlsuEtuNNXyPqpToQg1jCify+Yn8SLqsvLDW\n1WXqvkSevMJrIVPLnRFfiVFt3PR6SUG+qrojGDX7RLElUGvrNZUm7W4PLiRp/X5w\nMOnCRnnyudYMnj3mbk76AQhNt5W9TRhR41jZQMQEHXne6mlk7lkCMpueo1O9izHb\n78pPXQqQhnkWdnjBGo28mnGbh/neMZW50VVqqVzQt40iAlGTYgfW/V78DGzlaMzC\n6QnbHn2accDqSZliUXxIf7aoxmSSSGuDR3y6pKqnX6ylPG2wgf1sHhkcDhUsWsQ2\nIwCsO9CylNwrjtIly+STDf/Ujkaa/hRRBW4wK5mJKwd+BERWavDiAQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQASNkp9pAJnt5DSnFqQgx+wrC8G87hAqU0DWP/8QJaU\nNPmEm5AqsYU/9ToTCmBUxjmolv4ZJDqGblCwd4Ty7XnxNp13ZpF+bGAAd3AW335w\nWZjUDspa9nCRpKJuZorOygUeH1prUeNmW7OO8SDJRtLSQy/Y9vjxnCpkCCIv/b1Z\nfuQS8euREjkChXnFD+K634IgV4kgXqlln7U0G2fDsG5vQLvoklqj+gdWdF7lzuxl\nlP94vf8ax8KASgfBPdnvYLV+f0D+Lysj+vLFGS/OEkZIuaxpLfEbNsIuilxF13G3\nKBr4npCULzMgKC2Oyjl46q7oiGjQN9Pdw+MXPqfSRRnc\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"listman","categories":["social"],"userDocs":"","adminDocs":"https://github.com/revpriest/listman#readme","developerDocs":"","issueTracker":"https://github.com/revpriest/listman","website":"https://github.com/revpriest/listman","created":"2021-07-09T14:37:51.960386Z","lastModified":"2026-10-02T14:04:34.061655Z","releases":[{"version":"35.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://dalliance.net/listman/listman-35.0.0.tar.gz","created":"2026-10-02T14:04:34.057213Z","licenses":["agpl"],"lastModified":"2026-10-02T14:04:34.103491Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"tuxEclCSq8z0IsIBf9+oKtQTLcByDdsE76EqGcATFNwuWohMqE6IJu9MyYLUlRZ8\nWpqk27mtFrWzRG0i0Urr8KOS+Bm+NQv42F5etLVh0GkM89MnVsZjzeQE7/2WCyXf\nZzBN+n9x3RZuX6uuaS2TYJvbQMS23VLIpbtFWAzQb0mnzWAwDSbsFhjEBbXBYju+\nhZUaom3/Ogu5NePdp6S8aMJYkuvGQ0DmBViVPR3Zr5YjZhz8nXkzDSgycbB2XgEY\nDtroeWg239Lww7svxWvrSpXnrI5ZsUOqVFGQKnoL4RxlBCDjaKdRjTijjb8ddOC2\n0DtmqXnfuE3RPEXZZUToNwsFADDRJUFRbPP806FHGbMo92BJ8SH4HAgU7okzvRiF\nv7DpMrc3Bd/tHgxd4kS1jZzNlz271IPVMe+AfryQIPdyBC6lAhZfsKgI0YdfwyTo\nt5yZZin+91OBU0jByl8t3rNjXgnjNTSwsaId9Q8rTb+X0RJ4nJlzEVSG5bWADQcn\nNYn1sr++RBMF1OruNE2ruyYfoGb4miSSbPnshxTVcmmAYw1ljxAFb64WVy+x+nGS\nmtKI8a1KlSswUVmSbcKl9R88pLUyjw/PdrRjMN/ACyK9rIisakZEA8fFiIYjzqqo\nXS+XNoOhxfur/27PCBIA9/QBh67wIGbgzy2gfqwxPzA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JldnByaWVzdC9saXN0bWFuL21haW4vaW1nL3NjcmVlbnNob3QvaW50ZXJmYWNlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JldnByaWVzdC9saXN0bWFuL21haW4vaW1nL3NjcmVlbnNob3QvZW1haWwucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Listman","summary":"App for managing email-lists. Sign-up forms, unsubscribe links in the email, all that jazz","description":"This is a simple app for managing mail-lists with the Nextcloud System. Each Nextcloud user may create multiple mail-lists, circulate subscribe forms, send messages to the members of the list etc. It has a separate SMTP configuration visible only to nextcloud admin-users.\\n\\nOnly admins can send to lists, not for a shared discussion.\\n\\nNew in version 31.0.1 - fixed bugs to allow working with Nextcloud31.\\n\\nNew in version 32.0.2 - Allow share links to be hidden.\\n\\nNew in version 33.0.0 - Version Bump for new Nextcloud.\\n\\nNew in version 33.0.1 - Fix bug breaking sent queue display\\nNew in version 35.0.0 - Fixes to work with latest Nextcloud"}},"isFeatured":false,"authors":[{"name":"Pre","mail":"pre@dalliance.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhGKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNzA1MjA0OTUxWhcNMzExMDExMjA0OTUxWjASMRAwDgYD\nVQQDDAdsaXN0bWFuMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAytVF\nLyEYY6/M2rZITfJ52usIxonVhwMLGtXuVI9ay5haUA3Mye1yP4z4i3yIm6DiMZrb\nggN6UzGZCo8aucUSF65jk2Glh+lkMHZ4wUmwBzzxPjHewXP5cRfQX4uO+9dZpRDL\ni0sQwLYGsftj/R/pqNadyc5rwtFL9eNwX2/g5uACAiQa+6ZBvSRmFwmGwSEhuctX\nUpB9OY92d+R73aWXyjKDlWfDORdl7qPHquJYLM97Zn/FW6bEzNKVqP25bHjTroaC\nSqi1FfZi7UbquizwjxLt76rRAb+L0lhKny61TyRSIxUwvHWupt/S29PCKoI7I/uU\nZPPoCojVAosWd561XNrNz5/XZgBZWZZQNhaX4s6A2W683nA/GV3v74a/YaEl00X4\nbgbblcvujrtw2VGqyxL7dHMSksQueKtA9LpFJaS7I2EMSFj4NHeKbyp73kjn9fNG\nu54BkorNMwuxBslwQrUgxO3pZ1+Gk+l62mhbgFp92GRAfPE49IHxL7RPH6SGhTiZ\nAIi/XmjpdMbHIZ4XoGBHFJxQAtCVUFIZ4M5x3VXB+eH2f6XhTkSkPeV40eEgxZ9H\nXzxu+StrDJs1YbOjEkM5eISGbbvZAORgIYyJG9a4GmyYoTYx8hY1npzkmosQY7Yk\nNnKISBXNMT206iMDS0p1huaZwyv2VaAzJ1ccchMCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAZDDLZSArgBp4w1XF3BbjqRJly+t35V244iZYitw2qqowcZ/tKUeDyJ1h\nmh32X98Bdbs/Ow1a5Iph8vkJRMasgrQTgQRts9Oj/KwvspqZ2WkNSDb25yU5Dbqz\nkCCdzbFlDLxqGQ1hDNQDTMzNvrYjq4CcruMFTFXuotj2+G3jmUMWZPlf8SrOiIIm\nSU7vrm/IYi3mVHtq9kQV/d5PiLufbq4j0YHPW+OUk6Gmjlq9nTVsy9nl80dhTQmw\nT2YOp5QTYk3IOECpbiM1X4NAJa5KtnTxgd7K4294Bjttx2Uf3Izi7nsGmuAXCzwg\nKPP2V52RmkcFUu/2VUxeDN4khM4J9w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"groupfolders","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/groupfolders/issues","website":"https://github.com/nextcloud/groupfolders","created":"2017-04-26T17:44:45.415001Z","lastModified":"2026-10-07T13:16:42.628007Z","releases":[{"version":"23.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/groupfolders/releases/download/v23.0.1/groupfolders-v23.0.1.tar.gz","created":"2026-09-07T09:13:41.205248Z","licenses":["agpl"],"lastModified":"2026-09-07T09:13:41.282064Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"ySzZ8thtWoxsAQpcU8+/o01BXDO0qK9sMvvF58HKuWKC6TVxR87scknZ3zjA8zspW/o1RxovU8WpB61M2AMEBbDfHF1iU/sn9RwZ3idoxaOa9TTiLZRBIdks+eJYlF/EBGEQ13UN81z8PN8rDShyuL/hN7QylhAjdbN3bcY5kq5rth7T9y3TVVahl3q9ifrDoWJEwMo3aMOM8FKkG3EAwJrCJKmW9haQ6Q2M9jgZNV/ZGpxfqjr2FUkkLqHk+/4m9xgxeQSXZoGibLzpE0nHkhNNaalWt1TB42zTynKQf93j2yIrMOQyIurHz2p61+CMCuFwdcS4Vbr9hN/Tpah95SEIQJ+0PsR2R91UMyWtXQSyuf28gGwNzjePE96vy/5tYXffRybyH/WYnkTv23uEfCa+Kqi+89bStiL/0sHkZoWOKumfo13uJ1wgPnfNZx+0CJd76ln3WA4WKMmlgn7B116bFSx8BK57ZcgEmkb2QNmi6qQEHzejRaZwSvp/Oq9J79TcsqSejNSMG+o/L4pbXLE2VAuvWVRqSOf+PkDXRumUWPmK7bm7L9JHjb2yjK+r/HCWWQ3H/06ZnKluyUld+TCX6xW50gjR4LAJfm1xQGg5oR1MGSlBnk5zvjgW/AMXltI7PMudgaL78n9Lbnwv8vXQUUGbzBNCPmEmT+Iyqxo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"23.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/groupfolders/releases/download/v23.0.0/groupfolders-v23.0.0.tar.gz","created":"2026-08-19T16:29:57.508876Z","licenses":["agpl"],"lastModified":"2026-08-19T16:29:57.596263Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"FSIGYafRJrG0kB5M2Vyhxr9UQkx8FASF5fHcSMl+NE02JIeLqWw/34JrG5Ic4G6rVaxa69NC3dEI1fJ/PZE5cOINUm15MX9SkVK/x9JC8BvOtZjmnNLzg5Yp6nrDOSZHlVfea7VJslPmubl7taINDDCfnPKe0JtwASSH6KHyspQU1jTdOaFnHk7gsYB47UpcXeJS3YNtJ0Pd7147NnXJT/GrK5TT5eCnSbXIxke1KshawvGd5Zyx0ttdi15a+p0/491Bq43+vGusegF+C3lDt+Hgny23UUtia8KtwyJ/U3KL18Bda/LpVQ9bin+dDZlmXBgRsVA3v6ZAeJk43KJLP9tkBZitiBRS0mqvhrUVpJJNJwEUSj7O5a1/dgxpZdu1Wb2T/HUzuSDqbcmSsXjM69KtvM+I6X0u25AbqyFUTSx92VzuKUm1eGO44+wf7ghVXljfQoKz5pqPSse6n9EYEuUa1NyBbv26I7Vfc9X3JFySarEXy9M5Rx7zD25TyVwIYfx41kOFV0u7vFZd8z+Djl97CODq7c5MLPQQqFc6VEYBlSsI/UGHrAjFlx4iCu7QoEZHfsJHhnhAfLFH1wMedaQBSvHeAgqg9fyHl1lvNDtKyyNCJyjT4T0Txr8iLVcbmjUHpBprMEbybi828bbzu9JOcKQWq2pd31jPBx7QGUo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ncm91cGZvbGRlcnMvbWFzdGVyL3NjcmVlbnNob3RzL2ZvbGRlcnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ncm91cGZvbGRlcnMvbWFzdGVyL3NjcmVlbnNob3RzL2VkaXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ncm91cGZvbGRlcnMvbWFzdGVyL3NjcmVlbnNob3RzL3Blcm1pc3Npb25zLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Team Folders","summary":"Shared folders managed by admins, accessible to designated teams with configurable permissions and quotas","description":"Team Folders (formerly \"Group Folders\") allows administrators to create and manage shared\nfolders for selected teams within Nextcloud.\n\nAdmins can grant one or more teams access to a folder, configure permissions (such as read,\nwrite, and sharing rights), and assign storage quotas from the Team Folders section (under\nadmin settings). The app also supports advanced permissions and integration with Nextcloud’s\ntrash and versioning systems.\n\nAs of Hub 10 / Nextcloud 31, admins must be members of a team to assign that team to a Team\nFolder."}},"isFeatured":true,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6590909090909091,"ratingNumRecent":0,"ratingNumOverall":22,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBzCCAu8CAhBMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTc0NDAwWhcNMjcwODAyMTc0NDAwWjAXMRUwEwYD\r\nVQQDEwxncm91cGZvbGRlcnMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\r\nAQDa7N4NmUyKgT6Ovo5EXdXV7eBFaCRWKvgnwgpmpYCdSdPpprBaoyKka5FWi2Zo\r\nB2QCDQtmRuZ9RpiAblvLGeIYI1hNd1O6632U5wLtZFa2WsueV8lFGiXIy+r7jK8R\r\nc56tmeclKP4RImk4yydec89bB2/MmVYaNkNqueckg239C1Nt0GfmmQaTlANvGVAe\r\ndb0+Y+/YBSHSSE8TDf6n3kFR5RIWspbXv3mwFOaTTxtR+hi01eaPWnGnRz2w1+Wn\r\nXJQVBzLGuQI/GdYZItbZ5PgVuHMcvIc6elJENiUzqli3y6VbA9posefkPAph75ny\r\nqa+B7RppiE+5d4er8es04azEKjlcmGi6zkosQEikeT01zIiiDjsvsW1gFd5KQ+OX\r\nfUsuL2R8ymX6btj5Ee6lAK7qfCgQfKEIjl5oz48+h46ERe/NToZsNS/g5sO5UfG5\r\n+URERPuMteaF6bKMZlHLEVco8RUttocfHGAHuA4PIWgR/XKLdJ/c1VsjsvMak90u\r\nfKR6vkGFizGKHQG+2ZXJQuBAih6lQ7Lbd/v5NWIMiYHZG990EXc6nUmKUcepTl9P\r\n6CfFq4LyX4jEN8KkuLsXk5jMgDf5LjNNvqOXH/dbynUrjUb+mCMLCq6lvp3SD39m\r\nw1LjNZe6TDsZmPN/+XoeG88zvidGszy7dVbO2HDcDssnWwIDAQABMA0GCSqGSIb3\r\nDQEBCwUAA4IBAQBqTrXOxSRaqdcBPUfuwWTPs+OzJjJ77DXhQKP3zMMVAadWN1O4\r\naVQ6Q2m6+1YocW4cI1WUiV5JkIXHZk3CZc7GxMmA6E/STpNfDG+gp1G8ZFkVa7Dr\r\nfYBIvzu1ORvGdLygaiRGDdkc0Rsm49O41T6uKvmuQfBZqosSm4+pMA7MRIyLmi4n\r\nsM5F8ksDKX9dyA3SVufPgb4Qy8Hy85ory4GaPkdDgry3nDK1AU+ZmFyRXo5GfMsG\r\nIGWvIBP52FpCyb/papXhtLzajVgEY4o0Asv/E7UFymnOofTrBmZA/+z3n59/sZUT\r\nKclsORyDjRlH1yV02PDfgk8Hw2RR5fmaoP3h\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_discourse","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_discourse","issueTracker":"https://github.com/nextcloud/integration_discourse/issues","website":"https://github.com/nextcloud/integration_discourse","created":"2020-09-02T09:38:47.905898Z","lastModified":"2026-07-21T09:06:04.261280Z","releases":[{"version":"3.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_discourse/releases/download/v3.3.0/integration_discourse-v3.3.0.tar.gz","created":"2026-07-21T09:06:04.235997Z","licenses":["agpl"],"lastModified":"2026-07-21T09:06:04.299398Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"dEOYLqP0oEkSGd+QHr0xfqsUYUaYCrXfs/B/3EpUGp6BCQSRK+tWHR1/eRNGxsQWefzJv936dFFtpaPACNJ61ntB7HVMqAaJfsx0R6IWD0OfblP9/Cn6FIE1C2Cb+4wgwJAzk4L2SO/qmUiVeyBD+nztNBox+e6KURSxQUYJG35GQJD1KWz0l8CMpbIBEObSh08/9mDVt/y5fSRu4JnYD2DT0hS7XesRPrpOoDkx11o6H/JIwVcEYp+5R19nLxMsY65wq0cYA25RHbdZTuvHB22+iHIDxZP7pppgqBDZRylIoJ93KNotEWXMPSG/2g8t3gkHVm+kV12vTDsH8DrThfb8nXWdfnR5WdJSxESYBotXOYc+RXs/Z29HVu8g/MpdQMc6x60lw5X2dbWNEBss8H9RGb289kYSWhax3OdkznNnjV9lWtYVGeVjPxj2dwZjGyFQZNrocYVmq442WRNwF3vKN6TldK4Uy0sv3BbQ10il1gCmViyRAKXv+N7iDBZop0IoJ1E54E2lUpeDDZ/RM7Y5VSEAWVvaYHsCFKKF5ZXCHP//Txa3ETNmICKze3ApSLVgYBeN/TBWOS1yaimEINaxDaBZooyAJSP24c9UkhKNbZOlWpC61d1kC9ZFxCmLgJCBkeZj+GEzHbp0gbkiF3rA8fqrNaYAqRO/zGh5AdQ=","translations":{"en":{"changelog":"### Changed\n\n- Update dependencies, fix integration tests, and adjust CI PHP versions @julien-nc [#111](https://github.com/nextcloud/integration_discourse/pull/111)\n- Bump max NC version to 35 @julien-nc"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kaXNjb3Vyc2UvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Discourse integration","summary":"Integration of Discourse forum and mailing list management system","description":"Discourse integration provides a dashboard widget displaying your important notifications\n    and the ability to find topics and posts with Nextcloud's unified search."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhFtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyMDEzWhcNMzEwNTI0MTkyMDEzWjAgMR4wHAYD\r\nVQQDDBVpbnRlZ3JhdGlvbl9kaXNjb3Vyc2UwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQDhouQ2VmEk2mKH6udEdwtp9xXCayp17WTvIWdHM+qJ49WZWK4Z\r\nUHKIe1tV+ahI27zFYEulcLqV8CdrUwekGyBC5nkis1/nI0cVg5M5xSwaul8OcY89\r\nEIQYoMCSH/0f7e0S5MQIhQibkzq22yiPatRetiKGhUbZHWxrPI6JOxMjaS8qjEM3\r\n7XpNvgw/gJCvKPc34l5KOwuhE0/3Ita9EEh9UevX08BT4eVzYv8sx8by9Y7mL1Gr\r\nxP1yGAd3jn+w00Kzoo3yNUIf48Cp+MYQ0M9Wlp1g++iuhPX/qaGHPHxpbumIgQ4M\r\nFodJDj0u8hWXEelsUdExoW0xQfUhfYTZM+6IU9+LljsAUF6iRqdTh70u6Tck3eLy\r\nBeuO1DhHWnYnN8RG29NPMS5J8l45wPt9WiLNft0bzk30zn1ZxPwQFg8vWcWz29ik\r\nuO2QPK+WCYVTLYmq8s3ytyUlKkrcFLjLvbMfwQCxjXzHmMqFnEJcnhkerqhStyT6\r\nt2i0lUTA2s5PxoX0b/6LRh/4DLW9MRmT8LB3F7V0KWZcNc8vzGQM2RnJbPeScAk0\r\nv4GjOdeVd6Qebbrn72g70q2O7ko8u5RYz2zuJPC+4y/LTefBes8Y2jhQ90lXUVk9\r\nNboe5ak+aOGwHv3mNKVIVRpi3EOAPO1tGvmAWXsRl4XwvtJkmjqBMTsCYwIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQAuC27qZi55VWqchjKE/l9EpD1p0gHJy2NdfCSi\r\nAgH016W8hxhmEEVBAOK8wYKH74Uq2CPncnxp6Tey4bYYEuVqGA04QdkQxoUbnELK\r\nm0HYQRytjKukNroSkzObyf9c3IZbtom1VsqbVuH9QcKvnh8McGRa0IlTWC12sxzV\r\nGuXL4JM53IK/PUyiwWwBKt1ECxBG83S38izq0oGxBUiy356xeQy6kmnzzNAeL6OR\r\n4yHYwf4sr2DTv2IFmUZzif05JzLsy9AjixZBnjNbbr8Gd9kXZqZvJ93qy7tvr3C+\r\nesD8F5DSAYsIZQrZ/qmwYpmnPVPac+AGv3tjDZzFtF5ttt4E\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"welcome","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/welcome","issueTracker":"https://github.com/nextcloud/welcome/issues","website":"https://github.com/nextcloud/welcome","created":"2021-02-16T10:19:54.129595Z","lastModified":"2026-06-05T09:49:01.688286Z","releases":[{"version":"3.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/welcome/releases/download/v3.0.0/welcome-v3.0.0.tar.gz","created":"2026-06-05T09:49:01.679919Z","licenses":["agpl"],"lastModified":"2026-06-05T09:49:01.717634Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"XBLeMNUlt8Um9LeaJqkrhvcgQbB2QjaiI48MRfhHU6xT8H8HkXolOEEkewVQFN49dS2Hm4l5FcAj4eMV8iDJmNhbGKV/BJQa7XTHTkzYbZBy3hEUx8SKHDo3kv8Inl/hMxz6jUaur3GbkgogCV9fO1BCygs5F31PlD4LVQOZZYrOEV+Qcs3xdqMxBhyiz3oxpwGZ0s6dHLeAMoX60nQMFuZnDeQcs6uOFp9bdt+PVaHzoi+2PAm2WxJx8p0DnJ42XFNO0Uipvi+UawXUeNDUpm3fDXtZDk5D/0yJ6KTlW/0X8yteXbPLt0T7Cv8vHPeIht7Sh402Pwp0GAbv6X4sIEZ7Nqx/JjLSOxwqaIKk3DzgzG3HqMBds6YTxSvUij5hO65d64j0Syl2tRgXNj7ZqnYT/aMxd3fWfLZebBJIG12Rpq9/eq34+e0S6yFHwlxaPOZOr/jTgv5pgJmYqMQAKbjZAKDDty5iqwt43wDkRKowZs22LjwBTIMb2xBVzgmV70aSEEO32bNYm1odwTitt2LTo7DFR+S8RWGAu2FM5MhOEs57GBqx8AG8YB9KgAoXeb+JoENTimmz4+L+/J5y1Pc2FunxuJVnVImk5ruPO9NeE0alRf9vcocU4iWV8OIXpOX8TFL2urLtGMVFowvqM20UFe3jOu3RLMLuG0pdc90=","translations":{"en":{"changelog":"### Added\n- Support for NC35\n\n### Changed\n- updated dependencies\n- dropped support for NC<32\n\n### Fixed\n- scrolling long files\n- widget enabling"}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/welcome/releases/download/v3.0.0/welcome-v3.0.0.tar.gz","created":"2026-04-14T14:16:15.721216Z","licenses":["agpl"],"lastModified":"2026-06-05T09:32:04.464456Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"KVyzqdqLCI37jJL1JYuUtT0SwNbFhR3DL2perv81WRC4RYofrcoEOyjT9Nt04JHWkCG5d5jENw7thxeerErTPGsWiX9Z3rfKUgbl/ArTFVa5mOrf90G2FJT+c0zxh3/VaZ76Mdxoq3/D7LzRw1dbJJR7AEPCQcQ6um+4ctVwbkB+E2B82F/NCslekpaH5PjHJ4TeS5wbh8PG0RhtuObVDqOY7DT4IpACnjRoHiBpz5ZaVUf4LeZ4GLOtzP/n23MAOSpQJ/X9xCem7Ss+p4/xKTHCnV3CovYS4Gxf5u9uQ7AYTNvNeUDmOGcYs+RX2zVgvLsqvjT84PKwpA2gPVOM/IDd1PZn0RCRfOAnSWm1lbI21/UhLbCaHDqLe5Gyk9XZ+/xhet6Hh86T07d0SIkYXZo7EBV5LjvDDb8i7L4Iq55Rt+iwtk3TNKC0o8pE4Qy7fwYlMpYi0O7YXC8NbWD5faIJqSccDKneNLCbBtM31pBk5z/zkKYgiczsTlLlBjPu/5V2+MUSh5Ku2NpSaLgiefUpvc7wPgXk8In4qYcj5cDR2yvmv6A8ndc42PEZJFYk4wbXlMrydmwl/jaogKDcBTGQ1XSJZN5vBfjI6z+/PiGZUf0zdClaWwLmVuC++/PZ8wbPVIK35HUzZZhee+y2wa80XEcR9TWH5q2wrQoePfI=","translations":{"en":{"changelog":"### Added\n- Support for NC34\n- lazy config loading\n\n### Changed\n- updated dependencies @janepie\n- updated to Vue3 @janepie\n- dropped support for NC<29"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC93ZWxjb21lL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Welcome","summary":"Dashboard widget to display welcome content","description":"ℹ A Markdown rendering Dashboard widget to welcome all users.\n\n⚙ Configure via `Settings > Administration > Theming > Welcome widget`\n\n📄 Pick a Markdown document to be rendered in the widget\n\n💡 If no document is chosen, the widget won't be shown\n\n📝 Edit the Markdown document to update the widget in real-time\n\n🖼 Images are also supported\n\n💬 Configure a contact person to directly start a chat with (requires [Nextcloud Talk](https://apps.nextcloud.com/apps/spreed) to be installed)"}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhFoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTg1MzAwWhcNMzEwNTI0MTg1MzAwWjASMRAwDgYD\r\nVQQDDAd3ZWxjb21lMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwjLe\r\ndjr4dRw1550D4B+pJjqzrwYVf+vOWiEjJ4s6p+smoKHpo7i/ZB7NHE/8L1EwOyfV\r\nJnlb28SIGq8H4ByaJrQ40kBE7gh2+yd49qDfDYdTPgd2+kH6B9j4F5aXIGxxXT7V\r\nIu2cfogFoe4AprKln1+42fxvcFr9PryFxmwBHzbsGscn6A1auG9X9y7PsSCkxsUT\r\n9VE8oXRn1f9oYQ8BEY5Z1oLEzTKytkYBXD8TBG6soi+WM0SJdvV8ILhI9jOINByE\r\nsQqyFuOEUVVnaMzxNsVcGaBQ7HpSiSiQ1G5yo/StdvN3m6sHI7S9558Ef2G96uhX\r\neTXdG91AlbMNL1jm4Ll/NKtXw1bfpS++pPo4ppTxOkP+q5/Faml6KjNdUu07yPkP\r\nIWbN1T8q89g8AZ9UTfFjjuYnUuRY6eoBvanand2SWib06yxI8nLXuviOx2DEqoLs\r\nLV+NWhQOye+OEJPvPJxJIiIud4aEbkEWUIAk/kI7UZZtkiYHT8DbtEmJwqDufs0y\r\nQPwFeN8OcIOBRWavbG8P4LHBbUE0f0QtjbWYv+ozXa7TOatZo0xi1eCSMoKrH3DC\r\nYt0TJgBjJJsoV2r77iSubzyB6BidJ10KjyKXunKJfHj5xvWa4OIpmZWBa3E7KzWY\r\nwiKyqQkVJwSMgi2QYBS+blODakevkk/2HLjSbp0CAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAMKltUtsBRVf1XnZQfFY/kyFSrqObPs7ewFFEBsqh/dggGvdKZtwTyEdO\r\nvFQnJLBbwKMMH2BeRDB1CeldQ6tVXnF8MoZRRtUlgDOdQNVkDUWCTT2pMVSW8kVN\r\nb1PFgAQUt7J+2ng+FLlLwzWLzWDpyxADALg7JFryUDZ5mtuCx6DAcfWxr1wjOw71\r\n/BWGoJ4GLrsJL7M1a6s+FaMmxe2XqhWGDlZEdUsb1aVkQQNQsiu9pjRBXYyAHhpF\r\ng7iEBSx4c6X+ikeaI5MW7CSWg7udSS7J7f/b933yoFPaUpIGojgWpuzjB4RkOyDR\r\n8ZbEwvM1Iin3TFb7jqw3STnWVSFWSw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"drop_account","categories":["tools"],"userDocs":"https://framagit.org/tcit/drop_user/wikis","adminDocs":"","developerDocs":"","issueTracker":"https://framagit.org/framasoft/nextcloud/drop_account/issues","website":"https://framagit.org/framasoft/nextcloud/drop_account","created":"2017-08-01T16:47:35.778336Z","lastModified":"2026-09-14T07:32:38.789357Z","releases":[{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://packages.framasoft.org/projects/nextcloud-apps/drop-account/drop_account-3.1.0.tar.gz","created":"2026-09-14T07:32:38.759874Z","licenses":["agpl"],"lastModified":"2026-09-14T07:32:38.834674Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"GnJ9RD5KzInKVf72V9T6X6YqOBAbk/wA2ry32+yOAisWZrj/hokOulS6bFMALDHX\nDN6HhTk4SZVeC2+rObv/lF1mJkpOoAvKoYV4vEoG/eiWKvtm0hvXKvPMUbbECaZq\ni3E3m4T5Ux5i1Wl/0dvCD6ZIwdtP3MZAbaF/O51fML7r7c42GJzWCQwfFCAg1Imc\nQSg/7DMhatELijeK5em7XTQMZLYe6Wi1f5DaKNq+626+DIKp8fKrHXhYbhXFLc1d\n6CTAYq2QZYh/O9UzMrYer7yjmyD7GKxb6WlfEkkxJc+i7JyIoTZHAYed7aL84J45\nuRMQJ8q0lhh7PMKR0CctYNYXXgfj9nN+hHdc6rIfN+CKQY9CJHrDx0CB61DmrlRk\ncu4gXVdPwlMgZj0luC6DPkc4lb0KV9TpO2YgVzqlQ5LeTGM9GkHNH62GDdWYEAMN\nnrGANmAqagOMLUf9+VcvuiQ0AutiMoJvyciEb/brqpML9F5jyUqB+yr8YjF4iFE5\n+lZm5nvNse3SlN09MdT1B0yTEnJ5dwAlt2v0jipHUXAqZt/zwY5UYXN0CCKp0PnQ\nb8eRVp+rLDOW2fllmVB6NNQWTnvu8JP9f8vDyIH1lWCGzUxn8RrbdVSuyXzHCX13\nfvJo9eqjWufzlGj8zvXnG0uccp4Ge6AHmZDa32Q+x7I=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Changed\n\n- Store user settings through `IUserConfig` instead of the deprecated `IConfig` user value methods\n- Dependencies updates\n\n### Removed\n\n- Support for Nextcloud 32\n- Support for PHP 8.1"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"User account deletion","summary":"An app to allow users to delete their accounts.","description":"# Description\n\nThis app allows users to delete their accounts by removing all their data.\n\nIt can also send activities to the admins about deleted accounts."},"fr":{"name":"Supprimer son compte","summary":"Une application permettant aux utilisateurs de supprimer leur compte.","description":"# Description\n\nCette application permet aux utilisateurs de supprimer leurs comptes et toutes leurs données personnelles.\n\nElle peut également envoyer des activités aux administrateurs à propos des comptes supprimés."}},"isFeatured":false,"authors":[{"name":"Thomas Citharel","mail":"nextcloud@tcit.fr","homepage":"https://tcit.fr"}],"ratingRecent":0.5,"ratingOverall":1.0,"ratingNumRecent":0,"ratingNumOverall":6,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhBdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwODAxMTY0MDQ2WhcNMjcxMTA3MTY0MDQ2WjAXMRUwEwYD\nVQQDDAxkcm9wX2FjY291bnQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCyro8EVWeTgua+Fbd3WOO6BEpRNVKv2u09wtx/6huSb+BiGGHfpbGgUyAO0eWl\nPpcw78RUX1NHeuY4rv8SS2G7oiCWZxTP2nupqa4VDW1JVrLf6WgrZVJSiBMnQJ/9\nStyWv07e6fEnN9wsgZrfynehFnFXhZwD0S/Oh/7WC82wlOYKC8lViJRcF1mxgTjx\n8dIM0NPbR/nuvctUBP2s+Wazt+PWBhjJxWTXxNqi932c6ReZOSP0sGsO9IWgqvM7\nH/HITixFilGdbBbu5IEBDKzIb/WrH5oaa6QOxkoY9PtdCadCdNZPW8u/pWlUKC8x\ngzJah+QLgiDEPQhIP0dWV35yxvIGjdmXqX7H305JFBhMyzTm0T6THb/z33UP6S8L\nG/LUJcXMqpF9i5eG9yk4g+PufEBRk4jsvEuoHJ949abHkNTyRqTSnEjt7l6IlRns\n8/dLbT915baANSBKAbeXUO/Gro/Vn2wk+INskL3BSle1xdU54BOhISnGLt/FjCPB\n5Rdc4/4WkdOM0Y4Vap2mKYfa/F5bEWy+v3mzoE18jQ2/Nsx3qkY85kMekEaj38/p\ngCA98p0BDBu0h+9KULxKCFHEJdxoNlDyIEBV+teTCgX6SNUQwa5N+RtYzpX8Vg0E\niLFHJc9nRbuXHlbZXoww9XU560OnW7Y7fcsykpvUVGxMIwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAvvMo2kzsvpssRZyufnKYeA/JAbNbDJXGtHSVYcJJYTv4hDo2o\nb57REX5PA83UTY3sur+lXffVLKgTWQixm8Qi0g5EcC4+bXVzmBu5dkg1oWHmJ9M3\nUB1Kk05Ed0sSaF50FWkwGaqLBV5dEjlcAgHsfJVH27bcXyDK5O1PrOmVw6nXoVrs\nF/i6nS5XY0cR+A0okF7a3ss0xDc8/0R6YukHHBrTP4YIQrXPgCXQUEN/8t9YEWEt\nLA6Wm+ZQ2E/xMBCiBmZ6xAWIKc0ETVbDh3UVMH2nYkA9tb4/sCXjhosQ4HqsTEwy\nCe+6q7J/V383p3e2XQNrIikBd39qHxXW+m5o\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"calendar","categories":["office","organization"],"userDocs":"https://docs.nextcloud.com/server/latest/user_manual/en/groupware/calendar.html","adminDocs":"https://docs.nextcloud.com/server/latest/admin_manual/groupware/calendar.html","developerDocs":"https://github.com/nextcloud/calendar/wiki","issueTracker":"https://github.com/nextcloud/calendar/issues","website":"https://github.com/nextcloud/calendar/","created":"2016-10-01T12:40:39.060903Z","lastModified":"2026-10-21T12:41:32.265446Z","releases":[{"version":"6.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.6.3/calendar-v6.6.3.tar.gz","created":"2026-10-21T12:41:32.219945Z","licenses":["agpl"],"lastModified":"2026-10-21T12:41:32.312989Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"M3ReBE/7yeQbZV5AbNUeWuzwWpQAwUpKlxHMRWmwAY4yh2oqrbQ9Fm1wZ/PuszhNvs4rce3Wr6q1GIMsqS/ZgEzVdecZbGYAu1H/tsTpDs5BJkbir77jFpSnQl6EG3dPL7XuY3kMFaioyy08mopoTvOk4O2X4KzM5y8jZ1T2rvbEua4fI42qtQDRFaCABPV9VfGEQ676Gc6jafr+wLNECdLm3mq2xBN8fnJbzVOihHK6tNRwTAF6xp4gKZKcVj3b/HL89dsgP2DA6WIB9lbw9GtyNd/utfSLGvXHo+TWphPJ3l/FgPa0ASciIXaYto/JFsMrzNkDyUV/ru+4L3GBcCf/Mn8HLK+0Snor8wGrbQViw+lV3ir304EuD6Qo4MPpnV4J96pPv+6FzXPE2gYn6pS5UAUwSZ/5qCoEUlni6XpvD9tjqaJCMoDv2byPzInOoBfUaNEIEPR5OAtZZJcusqpVohtv3Mhxq9f6N/sFtfittaHfI7FuKEziFXhF+oEHKMJMTqD3oDDiuDLLKRydE0v1YdfARCGuitfwEiYig1FyHpRC74GeJ1Fv/PbOzdrnX3zyie1hN5YK4TRNE46y5/odZgEOg7zpduf5NisYzv9W3U3QV2TZ8W2ARN4DA8Z20sSJTwSow9dgZY427Jds5WK621IorAjJSqrzuvFT1W8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **calendar:** honor hideEventExport in simple editor ([57e2a9b](https://github.com/nextcloud/calendar/commit/57e2a9bdbae1e78f4a8ab1f0845a357c6deebbd1)), closes [#5705](https://github.com/nextcloud/calendar/issues/5705) [#3995](https://github.com/nextcloud/calendar/issues/3995)\n* **deps:** Fix npm audit ([09f5973](https://github.com/nextcloud/calendar/commit/09f59730369c68d5e383bbd0d9743a4ef8eded25))\n* **deps:** Fix npm audit ([fc6fa6a](https://github.com/nextcloud/calendar/commit/fc6fa6a9142c32296c3665e3e2d655c96d03c761))\n* **editor:** add accessible label to time zone button ([a5d1691](https://github.com/nextcloud/calendar/commit/a5d169103d84c5e7fc4174148910b36b41c6a7aa))\n* **editor:** apply selected Talk conversation via emitted events ([7f5e0d0](https://github.com/nextcloud/calendar/commit/7f5e0d02fd37330edf38566ea1c3f76bfdf68063))\n* make short events in week and day view only show event name ([b297793](https://github.com/nextcloud/calendar/commit/b2977932ac29d0c41ef7c499f0784221239e8c51))"}},"signatureDigest":"sha512"},{"version":"6.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.6.2/calendar-v6.6.2.tar.gz","created":"2026-09-30T14:42:18.851530Z","licenses":["agpl"],"lastModified":"2026-09-30T14:42:18.943998Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"QbQUaFdr4AQejc/b3U+iD56A/d563LN3YoJeuQvTSnKRhLgA7FtQ1Iy+I3X9rFyN1w2AJUpI+JUWH9BoqRjyDLJapoYpqPiRjimfjYedHDfVjww48zRwIsqTMrTqTB9G6sw48ZKX5uzB8uHmNmVX3TmFSZ5bSpRog59HGErlnlT//0JhKQkVtIXh2rPMEvgbi0VpP3CoOYD5mfNU/R+P+IT/w5zyxmDnjsl9rgQ3qByUIsihx7AI78fxfu/+q1Vft0cg/rm70Tf25qt4+03f+lNX6AxjXH1+gB7TiReORDhe7GnigaPWj6MsZ/IF4t+0IGY9Mq1im+nbfDP5BzsR5ZDzy8Fu+xQCL8A56TBaEIu8SIN2fHzHLMej0cRAdPHLbRzwzVSGYg83l4sE6z5n73bq1e3590hRk+axQA2xWXH++XCsdiwUBkJsAAQPO3JvvU/XsR321n1syHRyYroJfgD8dNFxCfpQn0IQet4KcRpMjnY8uQhVkmzfgSxGrpoiv07jGo/ONZs+ZA3FJRa6KyMYkM0g9NPB9DVSkNQiV7+zoWFP1cFEshuv4TMR5aS3AEoRLbOOhX/XcgX9ED7pUKwT5ZbIcVWI1/eOQMNDsM8+/d3F9Db5in2uN4IryaUpwdIKmouoQM3vfBho4r3hUYOUufSGwQUvWRddkcBNP2E=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **alarmFormat:** text special characters ([13dea9c](https://github.com/nextcloud/calendar/commit/13dea9cd81b55498b8f3ae0a43822ea719a99f6a))\n* **appointments:** avoid nested booking form scrolling ([2fdba00](https://github.com/nextcloud/calendar/commit/2fdba00e34972859711bd87f1b475078802cd86f))\n* **attendees:** respect user ID full-match setting ([cc846f4](https://github.com/nextcloud/calendar/commit/cc846f4564fe23c0589c3dba409ebb4b3fb93154))\n* bell icon for events with reminders ([9916d4f](https://github.com/nextcloud/calendar/commit/9916d4f924dfc50619e1125cbf68863c01bd44b1))\n* booking slot ([ff08ddb](https://github.com/nextcloud/calendar/commit/ff08ddb0744abad05cf16353a89454e0257080ce))\n* **calendar:** focus today in list view ([d2e6139](https://github.com/nextcloud/calendar/commit/d2e61398bb28f2699c32246a71d981de029e91af))\n* **calendar:** focus today in list view ([ec34e20](https://github.com/nextcloud/calendar/commit/ec34e20d5850b6e047256317c3d396a6ae29c1af))\n* **calendar:** hide creation header in public views ([014f42a](https://github.com/nextcloud/calendar/commit/014f42aa176fa45f25a079d65899f708b8d32cc8))\n* **calendar:** use sidebar open lifecycle for unscheduled tasks ([82399ad](https://github.com/nextcloud/calendar/commit/82399ad8da8a83a4a3bb4a448cada279e9023269))\n* correctly declare icons on NcEmptyContent ([5249dc8](https://github.com/nextcloud/calendar/commit/5249dc8242266a0c8d5cb19c12d8064316c9daa9))\n* **deps:** Fix npm audit ([3b53a67](https://github.com/nextcloud/calendar/commit/3b53a67a5a915cf539f1ff97af8d0d45cead60ea))\n* **deps:** Fix npm audit ([4412abd](https://github.com/nextcloud/calendar/commit/4412abd5f34b0e8fb14cae673081e6a1869f3368))\n* **deps:** update dependency @nextcloud/vue to ^9.11.0 (stable6.6) ([e7703f4](https://github.com/nextcloud/calendar/commit/e7703f46092d70f448d59dc02255589e821b055f))\n* do not assign invalid icon property on NcActionButton ([7fab7c1](https://github.com/nextcloud/calendar/commit/7fab7c135e8892f74bbdfaf191fef0f001703a98))\n* **editor:** correct width of property select for narrow view ([de3e620](https://github.com/nextcloud/calendar/commit/de3e6206a17a19086245389829c47fc84590a17e))\n* **editor:** keep close action in simple editor ([8960324](https://github.com/nextcloud/calendar/commit/8960324e6b9e0296118f6e4be1d7e73898624b5a))\n* **editor:** prevent close button overlap ([d604343](https://github.com/nextcloud/calendar/commit/d604343fe2e8b816d1a2f1baea69c7d251d5c29c))\n* **editor:** runtime error when removing group ([5ef2955](https://github.com/nextcloud/calendar/commit/5ef29556082f1b4b61977e8e626b91020b6a19d6))\n* **editor:** use useHotKey for editor shortcuts ([77b5589](https://github.com/nextcloud/calendar/commit/77b5589ef7ed30797df8101134c07f55c797cc20))\n* hide invitation reply buttons on cancelled event ([238339a](https://github.com/nextcloud/calendar/commit/238339a2e63bd9f1c5e50d51ef423f88af0a6d40))\n* make period header translation reactive ([3bd0ab5](https://github.com/nextcloud/calendar/commit/3bd0ab5a1a882e829bcfa6893b5597cd9e0abac7)), closes [#8756](https://github.com/nextcloud/calendar/issues/8756)\n* **proposals:** handle invalid timezone fallback ([f98cd19](https://github.com/nextcloud/calendar/commit/f98cd19dfd210e88e654a7e7a3a847fca8d0490b)), closes [#8914](https://github.com/nextcloud/calendar/issues/8914)\n* **proposals:** handle network errors without responses ([26c3347](https://github.com/nextcloud/calendar/commit/26c33474ab5f09fa79320203914de8b6be804748))\n* recurrence rule truncation on nth occurrence save ([0ce7ab8](https://github.com/nextcloud/calendar/commit/0ce7ab868214a4e3cb3a82215b98010e1322e6b1))\n* remove provisional fix for date and time input. ([ea65154](https://github.com/nextcloud/calendar/commit/ea6515478cbeefb8fd50c89321f940048274232f)), closes [#8307](https://github.com/nextcloud/calendar/issues/8307)\n* render single-date tasks and task checkbox visibility ([3da6b43](https://github.com/nextcloud/calendar/commit/3da6b431793db0d761a202541f6aa17fdaf8d562))\n* replace custom load animation with NcLoadingIcon ([bf52d74](https://github.com/nextcloud/calendar/commit/bf52d747fb49e6c991b1a1b9375d2ebba8831073))\n* send invitation to participants on proposal conversion ([505e4ab](https://github.com/nextcloud/calendar/commit/505e4ab0f2865812736f35a805e7579347e9a5c5))\n* set reply to on emails when using system mailer ([52b0de1](https://github.com/nextcloud/calendar/commit/52b0de1dc59781ec6a10361c460d72b53118ec22))\n* the event color saving issue ([129fb00](https://github.com/nextcloud/calendar/commit/129fb006c1070360dc527f568e7f4b8858e7cc04))\n* update, delete, accept, devline all occurrences ([70593ce](https://github.com/nextcloud/calendar/commit/70593cef4c9a0bd80d613574a5658df17454b724))\n* use properly aligning loading icons in NcActionText ([76df84a](https://github.com/nextcloud/calendar/commit/76df84aa3ae6b034389fb45ef689ae3545609f41))\n* use standard hover style for navigation date picker ([8877eee](https://github.com/nextcloud/calendar/commit/8877eee98f41a7ea1d24ddf6f423c0c2dc0d5703))\n\n\n\n# 6.6.0-rc.2 (2026-08-31)\n\n\n### Bug Fixes\n\n* allways allow duplicaiton ([5bc30a1](https://github.com/nextcloud/calendar/commit/5bc30a18d1f4b5e956016540106cac44c91087aa))\n* appointment layout ([2f298a3](https://github.com/nextcloud/calendar/commit/2f298a365fed39ba51ba8702b6e4a30e363e3ff7))\n* **appointments:** catch actual exception type for invalid timezones ([08b3ea1](https://github.com/nextcloud/calendar/commit/08b3ea15867276f364e8a9df4d32d348c5ecf270))\n* **appointments:** prevent unreachable overflow on the booking page ([43b4b03](https://github.com/nextcloud/calendar/commit/43b4b03bdd9d15fc14083a52f6d37cb6169177e3))\n* **delegation:** display delegated calendars after enable status change ([37bfe43](https://github.com/nextcloud/calendar/commit/37bfe43bddd3572f0bc67bd1d584d5d9791f67cf))\n* **deps:** Fix npm audit ([f3307e1](https://github.com/nextcloud/calendar/commit/f3307e167fddb55f1e027362d4607375ba4901c3))\n* **deps:** Fix npm audit ([53c5cf6](https://github.com/nextcloud/calendar/commit/53c5cf6a6fd0b6e36b4de4b8ad8063fbe09d84b9))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.7.0 ([#8753](https://github.com/nextcloud/calendar/issues/8753)) ([ad2e986](https://github.com/nextcloud/calendar/commit/ad2e98609cd431515c518b0a00728c48cf4e910a))\n* **deps:** update dependency @nextcloud/vue to ^9.10.0 ([ad9c125](https://github.com/nextcloud/calendar/commit/ad9c1250078f5ed1a8cd4e11ab3b5d53f97149fe))\n* **deps:** update dependency core-js to ^3.50.0 ([#8701](https://github.com/nextcloud/calendar/issues/8701)) ([1ba8b2c](https://github.com/nextcloud/calendar/commit/1ba8b2cfa377572e052528c103dd8001b0c1f111))\n* **deps:** update dependency p-limit to ^7.3.1 ([#8651](https://github.com/nextcloud/calendar/issues/8651)) ([a8c4ded](https://github.com/nextcloud/calendar/commit/a8c4ded08ba9d0cfd024bf9a71bafbfa95f740d0))\n* **deps:** update dependency pinia to ^4.0.3 ([6040b98](https://github.com/nextcloud/calendar/commit/6040b9892680226ab9215a72b095a4553bd7016f))\n* **deps:** update vue monorepo to ^3.5.41 ([#8699](https://github.com/nextcloud/calendar/issues/8699)) ([625d7e3](https://github.com/nextcloud/calendar/commit/625d7e3b2b073d57d925450b6a276c0e009b0d71))\n* **editor:** correct width and border of property select styling ([c0cb2e9](https://github.com/nextcloud/calendar/commit/c0cb2e9f0c760a1a7357a8ee28018b10da333dae))\n* **editor:** only show a warning about required attendees if the free-busy modal was opened ([c291d79](https://github.com/nextcloud/calendar/commit/c291d79f7391339f9cab90967f2ff94f27b389b8))\n* **editor:** remove unneeded free busy request ([54f7123](https://github.com/nextcloud/calendar/commit/54f71232d9c954ab3c950f3bd466e3005a0a8b87))\n* **editor:** show resource heading always together with search ([cf69b25](https://github.com/nextcloud/calendar/commit/cf69b25d51befa676ed34db46135f264aa4889e2))\n* event creation with alarm ([b963126](https://github.com/nextcloud/calendar/commit/b963126fe3c95751320daf1d36c4ed9f2a4a72b5))\n* **l10n:** Update translations from Transifex ([cbe92db](https://github.com/nextcloud/calendar/commit/cbe92dbc7ebe7dd573a1ced142dced1a72584cf5))\n* **l10n:** Update translations from Transifex ([a3cfb9d](https://github.com/nextcloud/calendar/commit/a3cfb9d5d094aed3a9e3dc4c9ad5af6a4fe983e4))\n* **l10n:** Update translations from Transifex ([3a8afb4](https://github.com/nextcloud/calendar/commit/3a8afb4c67488af8a1cd7f5d658bd52d91cc0420))\n* **l10n:** Update translations from Transifex ([01e8803](https://github.com/nextcloud/calendar/commit/01e88031d2c4e6d8e8802fcf83199edd4d3a4f1f))\n* **l10n:** Update translations from Transifex ([5120fe0](https://github.com/nextcloud/calendar/commit/5120fe0cab0397a8923d619333482e638b277cd9))\n* **l10n:** Update translations from Transifex ([fb819ae](https://github.com/nextcloud/calendar/commit/fb819ae3762048fe6c5069b48dd2008bb311fd07))\n* **l10n:** Update translations from Transifex ([05e9a5b](https://github.com/nextcloud/calendar/commit/05e9a5b1b445ccce53b55da49272296d901a4ae6))\n* **l10n:** Update translations from Transifex ([d445366](https://github.com/nextcloud/calendar/commit/d44536621b9faa5310aeae2278c526a23b836f9a))\n* **l10n:** Update translations from Transifex ([6976bac](https://github.com/nextcloud/calendar/commit/6976bac907458937e57411034f95bcb253fe06a4))\n* **l10n:** Update translations from Transifex ([3c40915](https://github.com/nextcloud/calendar/commit/3c4091578234ed7a93efcc9f891f5ea3b80458e9))\n* **l10n:** Update translations from Transifex ([ea88542](https://github.com/nextcloud/calendar/commit/ea88542ffde673f4d86c1e68a3193f5d4723dd80))\n* **l10n:** Update translations from Transifex ([ed73f54](https://github.com/nextcloud/calendar/commit/ed73f547c5d8f32a4f02a3dd7c1beadbc49d6775))\n* **l10n:** Update translations from Transifex ([26bf362](https://github.com/nextcloud/calendar/commit/26bf362969d16ee6850b1dba756192ba6d9b977a))\n* **l10n:** Update translations from Transifex ([8915e8d](https://github.com/nextcloud/calendar/commit/8915e8ddb94dbb6452a32069f1cf6ce210f77a8e))\n* **l10n:** Update translations from Transifex ([26841f1](https://github.com/nextcloud/calendar/commit/26841f1697f545918bc4ab4a7c8fff4162ab3c1a))\n* **l10n:** Update translations from Transifex ([ea199ab](https://github.com/nextcloud/calendar/commit/ea199abb08d98e8a4bbe8a5090a54c65f8e0f3cc))\n* **l10n:** Update translations from Transifex ([0de159b](https://github.com/nextcloud/calendar/commit/0de159b84129251f37edd0c5beca7a10bc8bd7e0))\n* **l10n:** Update translations from Transifex ([ed62988](https://github.com/nextcloud/calendar/commit/ed6298890746ee7d32d3152d78d0e6bc50fc5b59))\n* **l10n:** Update translations from Transifex ([bf9b0ae](https://github.com/nextcloud/calendar/commit/bf9b0ae914f284b64795d8ba95d07b0c480522ed))\n* **l10n:** Update translations from Transifex ([de6d0fe](https://github.com/nextcloud/calendar/commit/de6d0fef7cdc767ea5b1b29c087a98e3656fea96))\n* **l10n:** Update translations from Transifex ([fa41153](https://github.com/nextcloud/calendar/commit/fa41153cf1344cded18a1bb43d0a0ebdec004c16))\n* meeting proposal date range heading ([aed3e15](https://github.com/nextcloud/calendar/commit/aed3e151e8e8acc03afa2ef51df265abcfdf4175))\n* **resources:** align the room filter select with the text field next to it ([5829ca8](https://github.com/nextcloud/calendar/commit/5829ca8b752976209dc99d03e272a0134d576beb))\n* **resources:** let the room filter labels use the default font size ([ffdbcb7](https://github.com/nextcloud/calendar/commit/ffdbcb7dcf5721d55ab836f6c9f5a6d97c530ba4))\n* **settings:** display plus icon for  \"add delegate\" button ([de98767](https://github.com/nextcloud/calendar/commit/de98767cebe9fd96ffaa782c19023ba8cc308f89))\n\n\n### Features\n\n* **editor:** check resource availability while editing ([dfe9bf6](https://github.com/nextcloud/calendar/commit/dfe9bf621f235b56c3b2d4c60de370337a96f7b0))\n* EOL Stable 5.5 ([f6fd37d](https://github.com/nextcloud/calendar/commit/f6fd37da83416f6ebdbe2a57f0d18c6d8d56f724))\n* Meeting proposal notify organizer on response ([15fd5e3](https://github.com/nextcloud/calendar/commit/15fd5e3535fae7167e598b7e149d43319252d19a))\n* **principal:** map CalDAV room metadata properties ([#8693](https://github.com/nextcloud/calendar/issues/8693)) ([202a1bd](https://github.com/nextcloud/calendar/commit/202a1bdc2fdbd4af481fdd8398767cec4790fac8))\n* **resources:** browsable room finder in the room picker dialog ([e8641cd](https://github.com/nextcloud/calendar/commit/e8641cdaae785419955e4e6f65fd7d4d7e3fd2ae))\n* **ux:** shorter wording ([bd24e3f](https://github.com/nextcloud/calendar/commit/bd24e3f84886aeb8d9d69c161d032ace47f3e600))\n\n\n\n# [6.6.0](https://github.com/nextcloud/calendar/compare/v5.1.0-beta3...v6.6.0) (2026-07-28)\n\n\n### Bug Fixes\n\n* **a11y:** contrast ([74d5d0a](https://github.com/nextcloud/calendar/commit/74d5d0a0a5cb5bb479b8c07c35f29950c47a93d3))\n* **a11y:** labels ([bd255fd](https://github.com/nextcloud/calendar/commit/bd255fd7b814764f7df6da7251326f4640f29ef7))\n* **A11y:** make focused input borders have default styling ([da031ee](https://github.com/nextcloud/calendar/commit/da031ee1569ec41cdd32ed4172531866e94dd22a))\n* actually create a talk room when converting proposal ([2ed846e](https://github.com/nextcloud/calendar/commit/2ed846e0f551097f29a478125f85835d56606833))\n* add a gap for event dragging ([4cf192d](https://github.com/nextcloud/calendar/commit/4cf192d1827df7bcf81e0b48d0f7e96de9854677))\n* add an extra confirmation step to appointment booking ([63432ec](https://github.com/nextcloud/calendar/commit/63432ec0bc5a2058f6440eafcdd05a1a21d41b3f))\n* add delegator as attendee ([b31226a](https://github.com/nextcloud/calendar/commit/b31226ad7557480bbc6abc627589064a1cdb6984))\n* add duplicated event directly to the target calendar ([aa7ad02](https://github.com/nextcloud/calendar/commit/aa7ad02ce660d55d31da57045738c9e23e3c40d8))\n* add event link ([4428857](https://github.com/nextcloud/calendar/commit/442885720417ed958ba6d1acf8d66ec762d69a58))\n* add parenthesis to :deep selector to avoid warnings ([683cd51](https://github.com/nextcloud/calendar/commit/683cd5195b27631cbf0de879828db21217eaed6d))\n* **AddTalkModal:** add scrolling for long list ([7bb1fde](https://github.com/nextcloud/calendar/commit/7bb1fdec2a24fe6fcb38e8cdfe48d4a61fa568f1))\n* **AddTalkModal:** styling ([70723bb](https://github.com/nextcloud/calendar/commit/70723bb0b1d6e2c512a53d123638dace23a65f4d))\n* adjust alignment of time and timezone pickers ([d84ac78](https://github.com/nextcloud/calendar/commit/d84ac78d8de59245046777972e52a8e9db489ea4))\n* adjust color contrast of avatar participation status ([57506e2](https://github.com/nextcloud/calendar/commit/57506e2762835a7090a37df879df3011c547aa5d))\n* adjust tentative status icon colour ([715f7c1](https://github.com/nextcloud/calendar/commit/715f7c1b69a8537183adf3b2196a4a4c53a6af3b))\n* adjust tests to outgoing_server2server_share_enabled ([18af851](https://github.com/nextcloud/calendar/commit/18af8517a80e684818fb9f2ee15a64d4bd5a00af))\n* alarm styling ([76c2c59](https://github.com/nextcloud/calendar/commit/76c2c5933063f82b248f659d598aeb9e2d458ddd))\n* alarm type not binding properly ([c1dd80d](https://github.com/nextcloud/calendar/commit/c1dd80d8b9454c5b51fad18dbb7671ee72504cd1))\n* **alarms:** do not add ATTENDEE/SUMMARY to DISPLAY alarms ([bc1705d](https://github.com/nextcloud/calendar/commit/bc1705d7ba3665ce44fb777971cc8ee93f85eb8e))\n* all day events order ([e7164e0](https://github.com/nextcloud/calendar/commit/e7164e0bb34d6c92074d1c9194d3e8eab5de567a))\n* allow all calendars as appointment conflict calendars ([8f10775](https://github.com/nextcloud/calendar/commit/8f107759afaaa562d4218a605c13b669b3d49423))\n* always show alarm unit in pural ([1509e87](https://github.com/nextcloud/calendar/commit/1509e8747f526baed2520d2ce1b85517651467dd))\n* appointment booking overview page styling ([a705759](https://github.com/nextcloud/calendar/commit/a705759c3bcdf8d60b2ea98d043591c8e4ba7fb3))\n* appointment booking room creation ([640eec2](https://github.com/nextcloud/calendar/commit/640eec2d9e24771aad5e61906e51e90e3ab8b001))\n* appointment config check boxes ([3bdd841](https://github.com/nextcloud/calendar/commit/3bdd841c421b66a0fa7f97e7d3f0429c612bff7f))\n* appointment config issues ([41e24e4](https://github.com/nextcloud/calendar/commit/41e24e4eb57d7e76de32a5b9da536456348d8fd2))\n* appointment config tests ([998a5f6](https://github.com/nextcloud/calendar/commit/998a5f685806c647f863d3b969e5765a51d37549))\n* appointment duration selection ([d55bea6](https://github.com/nextcloud/calendar/commit/d55bea60d5f23c88f509a1b7c4d3043a13cf6c34))\n* appointment pages overlapping with footer on mobile ([9f01cd1](https://github.com/nextcloud/calendar/commit/9f01cd182bc81179e124838c9038c610a2eee37f))\n* **appointment:** capture Attendee browser language and save it ([791d722](https://github.com/nextcloud/calendar/commit/791d722e599b5710fe9f8c03b941ade362668c8d))\n* **appointments:** Make scheduled appointments meeting conversations in Talk ([24bd8dc](https://github.com/nextcloud/calendar/commit/24bd8dccdfc92b97c9749e75a000be94987e4a94))\n* **appointments:** mobile booking view not being responsive ([5a18d85](https://github.com/nextcloud/calendar/commit/5a18d85915aaae0449d4e2428317716732e3afe6))\n* **appointments:** unify IDs ([47084f0](https://github.com/nextcloud/calendar/commit/47084f07daf3288cdc9369905fa34fc44e28f1f8))\n* **attachements:** show confirmation dialog for all links ([1b648ea](https://github.com/nextcloud/calendar/commit/1b648eac3dc59216dac4401704eb7afad8ff1748))\n* **attachments:** improve confirmation dialog message ([ec93e91](https://github.com/nextcloud/calendar/commit/ec93e91e85e4b86927b9a7b4664b41e4600627d5))\n* **AvatarParticipationStatus:** make attendee participation status text not ellipse early ([04a2c9b](https://github.com/nextcloud/calendar/commit/04a2c9b3a32cab6954ae5e11fd1ccea685533bc0))\n* avoid hotkeys in contenteditable ([cad954e](https://github.com/nextcloud/calendar/commit/cad954e7bdf20c591afcf087c2719438b9c7eff2))\n* blank date on manual input ([d09d85a](https://github.com/nextcloud/calendar/commit/d09d85ac4e5b44abdbd3c35c6e7d7ded16bb117e))\n* calendar initiial state ([250f869](https://github.com/nextcloud/calendar/commit/250f869708ab7e6d9b88ae7fd7078b92fffd56f9))\n* calendar name input ([03dc5e4](https://github.com/nextcloud/calendar/commit/03dc5e4e8e1dc877d0e3e319a1d23b49d1c279ca))\n* **calendar-list:** restrict calendar visibility toggle to checkbox only ([f1ceb1a](https://github.com/nextcloud/calendar/commit/f1ceb1a2a32e535f4006a163b96b7819d514777f)), closes [#3027](https://github.com/nextcloud/calendar/issues/3027)\n* **CalendarGrid:** a small edge case with short events ([0fdd615](https://github.com/nextcloud/calendar/commit/0fdd61566449b77d91105a065c8365aad00db3f2))\n* **CalendarGrid:** add aria-current to current date ([033186d](https://github.com/nextcloud/calendar/commit/033186de1792b84775d016a1866290255cfeb03b))\n* **CalendarGrid:** make short events render title on one line ([56ac2be](https://github.com/nextcloud/calendar/commit/56ac2be78a025401023eda54bd28127b73f68265))\n* **calendarObjectInstance:** reminders not deleting ([1680ed9](https://github.com/nextcloud/calendar/commit/1680ed90a45da2a9ec8b889d98f822046094e308))\n* **CalendarPickerHeader:** fix alignment ([4280699](https://github.com/nextcloud/calendar/commit/4280699d45539152bc76ae44a6d1a74e40965897))\n* cancel confirmation dialog ([cd30895](https://github.com/nextcloud/calendar/commit/cd308956d1a92347f921ee3fb564094c97c08434))\n* **capability:** Add a capability if calendar webui is there ([305dd7c](https://github.com/nextcloud/calendar/commit/305dd7cf47e05065b7622b6d60d4f55c53e8bae9))\n* **chore:** fix missing unscheduled tasks list ([c483bba](https://github.com/nextcloud/calendar/commit/c483bba10b0c8dcf2e5f4fe121d15f8f992aca83))\n* close modal after creating conversation ([a636ea0](https://github.com/nextcloud/calendar/commit/a636ea09f00fb38c4fb308fda51b627fab7da372))\n* close view selection menu after click ([f189e36](https://github.com/nextcloud/calendar/commit/f189e36a794c479f9ae8143ec8c5697bbeeeeb44))\n* color picker size ([0c1d227](https://github.com/nextcloud/calendar/commit/0c1d22737ef82fb5e76ca5abbf842f178c9912f6))\n* Console-log errors thrown when saving an event ([30f9eb7](https://github.com/nextcloud/calendar/commit/30f9eb75892ef56bac5a5a25140b59d09a2678f0))\n* **ContactController:** default option for user enumeration in sharing ([aa4380a](https://github.com/nextcloud/calendar/commit/aa4380af18e9d1110c40ba84485006c485006b94))\n* **css:** keep unscheduled tasks toggle inside the scroll container ([479bc85](https://github.com/nextcloud/calendar/commit/479bc85c108ad3ec340e7292e891cbe617245e03))\n* **css:** Use semantic font weight for event titles ([2558e28](https://github.com/nextcloud/calendar/commit/2558e287543b859b5cce44349f963f0f23f9f63f))\n* date selector resetting time ([caf5cf8](https://github.com/nextcloud/calendar/commit/caf5cf87b2a075a061294d09a657b3047cc89b5c))\n* default calendar alarm application ([b9c8b55](https://github.com/nextcloud/calendar/commit/b9c8b5503e63f93c9be4fcb13a279f5a5ce5fcaf))\n* default null alarm ([13402e2](https://github.com/nextcloud/calendar/commit/13402e209e66c2931e74c2c130b6e545b5a98d36))\n* **deps:** add missing parcel watcher packages ([121fe98](https://github.com/nextcloud/calendar/commit/121fe98e23d58483e8213f655ad16918e059e548))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 (main) ([#6976](https://github.com/nextcloud/calendar/issues/6976)) ([12f442a](https://github.com/nextcloud/calendar/commit/12f442a0107248e2224d05504863193c51bd2aed))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 ([a5e2e58](https://github.com/nextcloud/calendar/commit/a5e2e586923a1c55431e425ef65d635e2e8acb76))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 (main) ([#7549](https://github.com/nextcloud/calendar/issues/7549)) ([adb2b39](https://github.com/nextcloud/calendar/commit/adb2b397fe812b188e5e0c0d60e5982f9f4c3cdd))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 (main) ([#7480](https://github.com/nextcloud/calendar/issues/7480)) ([616951b](https://github.com/nextcloud/calendar/commit/616951b25f176780bf57526914986b8e4c9f3519))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.6 to ^2.2.7 ([4add973](https://github.com/nextcloud/calendar/commit/4add973e8da60e8afc107e5f2167768fdd78836e))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.7 to ^2.2.8 (main) ([#7190](https://github.com/nextcloud/calendar/issues/7190)) ([b5956ec](https://github.com/nextcloud/calendar/commit/b5956ec23da71d4cf61de10dce5ab0e509f8829d))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.8 to ^2.2.9 (main) ([#7272](https://github.com/nextcloud/calendar/issues/7272)) ([93899e2](https://github.com/nextcloud/calendar/commit/93899e260a795f4e783e9c03780586d77e6c47d1))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.9 to ^2.2.10 (main) ([#7281](https://github.com/nextcloud/calendar/issues/7281)) ([59bbc66](https://github.com/nextcloud/calendar/commit/59bbc668d68caa76bb1e8ed4ae5053a0455448c9))\n* **deps:** bump @nextcloud/calendar-js from 8.0.3 to ^8.1.0 (main) ([#6646](https://github.com/nextcloud/calendar/issues/6646)) ([a75bd08](https://github.com/nextcloud/calendar/commit/a75bd08d0548dcaaaeecc54a313a5618f0081a6d))\n* **deps:** bump @nextcloud/calendar-js from 8.1.0 to ^8.1.1 (main) ([#6807](https://github.com/nextcloud/calendar/issues/6807)) ([026cfd5](https://github.com/nextcloud/calendar/commit/026cfd57127a2583abb6e756c454afe8f1a39a88))\n* **deps:** bump @nextcloud/calendar-js from 8.1.2 to ^8.1.3 ([63def13](https://github.com/nextcloud/calendar/commit/63def13358a698663625b1241f41789021e9e684))\n* **deps:** bump @nextcloud/calendar-js from 8.1.4 to ^8.1.5 (main) ([#7273](https://github.com/nextcloud/calendar/issues/7273)) ([bed3fa2](https://github.com/nextcloud/calendar/commit/bed3fa2b7ec7aeb139d1620bf3e65eacbd6fb872))\n* **deps:** bump @nextcloud/calendar-js to ^8.1.4 ([9bbb504](https://github.com/nextcloud/calendar/commit/9bbb504534272273c9ab006b148884206a68b053))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 (main) ([#6855](https://github.com/nextcloud/calendar/issues/6855)) ([521a4fd](https://github.com/nextcloud/calendar/commit/521a4fd113049ffe3c070921a46096ad8b774e2e))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([8d13b4c](https://github.com/nextcloud/calendar/commit/8d13b4c0acac1f52e557baf8305ee2e66fa86e5f))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 (main) ([#7162](https://github.com/nextcloud/calendar/issues/7162)) ([61e9a28](https://github.com/nextcloud/calendar/commit/61e9a28f1aefa8e255154aee53db83af3df8e1cb))\n* **deps:** bump @nextcloud/dialogs from 6.0.1 to ^6.1.1 (main) ([#6647](https://github.com/nextcloud/calendar/issues/6647)) ([d30e56a](https://github.com/nextcloud/calendar/commit/d30e56abb76c0ee642fa3803ee24165d1bee0f1e))\n* **deps:** bump @nextcloud/dialogs from 6.1.1 to ^6.2.0 (main) ([#6946](https://github.com/nextcloud/calendar/issues/6946)) ([05e7009](https://github.com/nextcloud/calendar/commit/05e700965d22974cea7e1ffc0598e65e89728e5c))\n* **deps:** bump @nextcloud/dialogs from 6.2.0 to ^6.3.0 (main) ([#6996](https://github.com/nextcloud/calendar/issues/6996)) ([f6246e4](https://github.com/nextcloud/calendar/commit/f6246e4abb65b09388b4bf66bf3c820f831b9c6e))\n* **deps:** bump @nextcloud/dialogs from 6.3.0 to ^6.3.1 ([ff333fa](https://github.com/nextcloud/calendar/commit/ff333fa637d2d5bbfb96c534d13373fc1f61bf91))\n* **deps:** bump @nextcloud/dialogs from 6.3.1 to ^6.3.2 (main) ([#7437](https://github.com/nextcloud/calendar/issues/7437)) ([73fce1b](https://github.com/nextcloud/calendar/commit/73fce1be321c91e1dbdde6d342df4fbf559495bd))\n* **deps:** bump @nextcloud/event-bus from 3.3.1 to ^3.3.2 (main) ([#6783](https://github.com/nextcloud/calendar/issues/6783)) ([3b4fc40](https://github.com/nextcloud/calendar/commit/3b4fc40e69666e68f76de49358dbe68e3371335f))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([051965d](https://github.com/nextcloud/calendar/commit/051965d65466cf4a811f576ff4a96455c7b5d186))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.2.0 (main) ([#6745](https://github.com/nextcloud/calendar/issues/6745)) ([e0e0bb3](https://github.com/nextcloud/calendar/commit/e0e0bb32e767b0521fc24a2f6a97a634d6d02467))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.3.0 ([f7bb5a0](https://github.com/nextcloud/calendar/commit/f7bb5a036c6e27c28b4f90e9430a70cb814a8acd))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.0 (main) ([#7163](https://github.com/nextcloud/calendar/issues/7163)) ([e3f77fe](https://github.com/nextcloud/calendar/commit/e3f77fe871d93f970207697d46ac89f87e744c3f))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 (main) ([#6962](https://github.com/nextcloud/calendar/issues/6962)) ([ac544e8](https://github.com/nextcloud/calendar/commit/ac544e8d5dc6d67ef0ce70eb0bdd1e3a1fb94e88))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 ([1294b48](https://github.com/nextcloud/calendar/commit/1294b485793aa530590a1849faba812f6cf61451))\n* **deps:** bump @nextcloud/timezones from ^1.0.0 and @nextcloud/calendar-js to ^8.1.6 ([17299c4](https://github.com/nextcloud/calendar/commit/17299c4af37e6804ae67559aa9e6e70f2ab38008))\n* **deps:** bump @nextcloud/timezones from 1.0.0 to ^1.0.2 (main) ([#7547](https://github.com/nextcloud/calendar/issues/7547)) ([27156e6](https://github.com/nextcloud/calendar/commit/27156e68c311911fed78ee66d5e0e9e9d2302fa7))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([c7e91ab](https://github.com/nextcloud/calendar/commit/c7e91ab1ef08323f158fa151988e24c6631b0d9c))\n* **deps:** bump @nextcloud/vue from 8.23.1 to ^8.24.0 ([ef0cbf6](https://github.com/nextcloud/calendar/commit/ef0cbf6f02902d68091cc9a10ece39f39656e162))\n* **deps:** bump @nextcloud/vue from 8.24.0 to ^8.26.0 ([36d7ec4](https://github.com/nextcloud/calendar/commit/36d7ec4f3afc529d390601b319f0e1abf23d6c0e))\n* **deps:** bump @nextcloud/vue from 8.26.1 to ^8.27.0 ([878110e](https://github.com/nextcloud/calendar/commit/878110e57dad3db1976f2f3f288f961488cdb7ac))\n* **deps:** bump @nextcloud/vue from 8.28.0 to ^8.28.0 ([9bed855](https://github.com/nextcloud/calendar/commit/9bed855be1452a35893e95ac8f77e7666721b1ef))\n* **deps:** bump @nextcloud/vue from 8.28.0 to ^8.29.1 ([327e772](https://github.com/nextcloud/calendar/commit/327e772557d514f8835b9a4ec16e526945dc6c51))\n* **deps:** bump @nextcloud/vue from 8.29.2 to ^8.30.0 ([2247659](https://github.com/nextcloud/calendar/commit/2247659fb78fcaf5a55b67b1a5f5a4ebdeaf6222))\n* **deps:** bump @nextcloud/vue from 8.30.0 to ^8.31.0 ([9a00c87](https://github.com/nextcloud/calendar/commit/9a00c87bb139df894866d2cd322311170ac44777))\n* **deps:** bump @nextcloud/vue from 8.31.0 to ^8.32.0 ([05b0408](https://github.com/nextcloud/calendar/commit/05b04085c7ecf26468a2474fc31ac7aee3fa50f9))\n* **deps:** bump @simolation/vue-hotkey from 2.1.0 to ^2.1.2 (main) ([#7233](https://github.com/nextcloud/calendar/issues/7233)) ([1a86482](https://github.com/nextcloud/calendar/commit/1a86482ed370f8a071aea6778b7d1210051b5671))\n* **deps:** bump color-convert from 2.0.1 to v3 ([dde4ba5](https://github.com/nextcloud/calendar/commit/dde4ba59c31da3a093c5dca0b1a788960db82e84))\n* **deps:** bump color-convert from 3.0.1 to ^3.1.0 (main) ([#7002](https://github.com/nextcloud/calendar/issues/7002)) ([fb56378](https://github.com/nextcloud/calendar/commit/fb56378d0ba87eb4fc61679c38303e20ef2c5478))\n* **deps:** bump color-convert from 3.1.0 to ^3.1.2 (main) ([#7438](https://github.com/nextcloud/calendar/issues/7438)) ([4659107](https://github.com/nextcloud/calendar/commit/4659107fbb040d3b2b44fac2e47bb4fca9d3fe4c))\n* **deps:** bump color-string from 1.9.1 to v2 ([a08c9ee](https://github.com/nextcloud/calendar/commit/a08c9eead5a76af3d6e82a04420f294748145d08))\n* **deps:** bump color-string from 2.0.1 to ^2.1.0 (main) ([#7333](https://github.com/nextcloud/calendar/issues/7333)) ([3a98fc5](https://github.com/nextcloud/calendar/commit/3a98fc5fc020606554305aa80c0c7b8e4f373fd9))\n* **deps:** bump color-string from 2.1.0 to ^2.1.2 (main) ([#7481](https://github.com/nextcloud/calendar/issues/7481)) ([d84e7b7](https://github.com/nextcloud/calendar/commit/d84e7b79034312ac75b1adba7d5f5c59007c254e))\n* **deps:** bump core-js from 3.40.0 to ^3.41.0 (main) ([#6784](https://github.com/nextcloud/calendar/issues/6784)) ([a8920a1](https://github.com/nextcloud/calendar/commit/a8920a1306186ad2463a362e1d83abb12d778169))\n* **deps:** bump core-js from 3.41.0 to ^3.42.0 (main) ([#6947](https://github.com/nextcloud/calendar/issues/6947)) ([71ffe32](https://github.com/nextcloud/calendar/commit/71ffe325696b157c09c88f891432d23e4d4b7d8f))\n* **deps:** bump core-js from 3.42.0 to ^3.43.0 ([2798772](https://github.com/nextcloud/calendar/commit/2798772a810debb85cf835746bb7451dd7d5cec1))\n* **deps:** bump core-js from 3.43.0 to ^3.44.0 (main) ([#7192](https://github.com/nextcloud/calendar/issues/7192)) ([d20f705](https://github.com/nextcloud/calendar/commit/d20f705a8412c87116942f8f5842a31b48102f1d))\n* **deps:** bump core-js from 3.44.0 to ^3.45.0 (main) ([#7201](https://github.com/nextcloud/calendar/issues/7201)) ([853bc2e](https://github.com/nextcloud/calendar/commit/853bc2ec79ee364bf67ea513c4af24e3457cad1a))\n* **deps:** bump core-js from 3.45.0 to ^3.45.1 (main) ([#7248](https://github.com/nextcloud/calendar/issues/7248)) ([f09e5c6](https://github.com/nextcloud/calendar/commit/f09e5c60ccc1b719de9736b410781423f14e6304))\n* **deps:** bump core-js from 3.45.1 to ^3.46.0 (main) ([#7571](https://github.com/nextcloud/calendar/issues/7571)) ([cb2d9f2](https://github.com/nextcloud/calendar/commit/cb2d9f223c22e8c6789dac2edea204228cd46728))\n* **deps:** bump fullcalendar family from 6.1.15 to v6.1.17 ([e617d74](https://github.com/nextcloud/calendar/commit/e617d74fa2d6f8a0bcbbe1394e7aaa05a8b5dcb4))\n* **deps:** bump fullcalendar family from 6.1.17 to v6.1.18 ([d771cc9](https://github.com/nextcloud/calendar/commit/d771cc960fdb6a46831334b625cbdedefc7ec5b4))\n* **deps:** bump fullcalendar family from 6.1.18 to v6.1.19 ([856fce7](https://github.com/nextcloud/calendar/commit/856fce7b1559a3555c0fe6fbbaaea89d4da32ae5))\n* **deps:** bump linkifyjs from 4.2.0 to ^4.3.1 ([0e59ccd](https://github.com/nextcloud/calendar/commit/0e59ccd5a86c1b1c8f2b99241fe3eb5a25474e30))\n* **deps:** bump p-limit from 6.2.0 to v7 ([5827603](https://github.com/nextcloud/calendar/commit/5827603d5706442bdb5b6712972456de1e5e2cad))\n* **deps:** bump p-limit from 7.1.0 to ^7.1.1 (main) ([#7331](https://github.com/nextcloud/calendar/issues/7331)) ([117e258](https://github.com/nextcloud/calendar/commit/117e258f5bd138a69354daedbb228bcea066fbb4))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 (main) ([#6645](https://github.com/nextcloud/calendar/issues/6645)) ([097f964](https://github.com/nextcloud/calendar/commit/097f9642bef7c7d37c6ea141a722702b5a595095))\n* **deps:** bump webdav from 5.7.1 to ^5.8.0 (main) ([#6769](https://github.com/nextcloud/calendar/issues/6769)) ([e1b1db5](https://github.com/nextcloud/calendar/commit/e1b1db53235626318f803ff62450a38b58d73de1))\n* **deps:** Fix npm audit ([c7c9b38](https://github.com/nextcloud/calendar/commit/c7c9b38de9d8c928a5ed136427baefcd78467f60))\n* **deps:** Fix npm audit ([ba5c1c8](https://github.com/nextcloud/calendar/commit/ba5c1c84b00d773ccb280033b86257ab37788431))\n* **deps:** Fix npm audit ([1212ba8](https://github.com/nextcloud/calendar/commit/1212ba85d249a15eeef52142dd7df9d7c55a7bc4))\n* **deps:** Fix npm audit ([ee9c8a5](https://github.com/nextcloud/calendar/commit/ee9c8a51ed9ccd2d3750fdf222da603b7efba800))\n* **deps:** Fix npm audit ([5908012](https://github.com/nextcloud/calendar/commit/59080128711e185dbefe2b4b2bee6611018be969))\n* **deps:** Fix npm audit ([a47a92c](https://github.com/nextcloud/calendar/commit/a47a92cae4af05597708ab3cafe6858d8f25e2c0))\n* **deps:** Fix npm audit ([ff2d479](https://github.com/nextcloud/calendar/commit/ff2d4798322ac0994a1e1a03489003436b6585c4))\n* **deps:** Fix npm audit ([00d4004](https://github.com/nextcloud/calendar/commit/00d4004b93776f0a7f93523a97a3d04a83a67edc))\n* **deps:** Fix npm audit ([28bb1de](https://github.com/nextcloud/calendar/commit/28bb1deab9ad0774770dfc5e68fc9d398802bb12))\n* **deps:** Fix npm audit ([ab77e45](https://github.com/nextcloud/calendar/commit/ab77e457152343b807b9ed1c5507f49b0df4d1ba))\n* **deps:** Fix npm audit ([9e26460](https://github.com/nextcloud/calendar/commit/9e264600b7f4621568227c5122e6200e34441b18))\n* **deps:** Fix npm audit ([0d68254](https://github.com/nextcloud/calendar/commit/0d68254db773924c027077f7d32cecde6733a36e))\n* **deps:** Fix npm audit ([e7d760d](https://github.com/nextcloud/calendar/commit/e7d760d1ef1da2dfecf99713e401c059df923bed))\n* **deps:** Fix npm audit ([6e49ac5](https://github.com/nextcloud/calendar/commit/6e49ac5c1c537fbb865323c4adca7f6d1ef97606))\n* **deps:** Fix npm audit ([538dc6c](https://github.com/nextcloud/calendar/commit/538dc6c9161e1339c4106f092d672dc0c5e33748))\n* **deps:** Fix npm audit ([65f5f7c](https://github.com/nextcloud/calendar/commit/65f5f7c73ef9d0297920bff05164125241899695))\n* **deps:** Fix npm audit ([96b7263](https://github.com/nextcloud/calendar/commit/96b72635e9f1a9b44a2a86b92052635edbf3173f))\n* **deps:** Fix npm audit ([cc225a8](https://github.com/nextcloud/calendar/commit/cc225a85615d5ce4220e5578ea62076d9fdb4128))\n* **deps:** Fix npm audit ([0a82119](https://github.com/nextcloud/calendar/commit/0a8211901778d42bfeb70ce8fa8cc21d4816b92d))\n* **deps:** Fix npm audit ([dc77c02](https://github.com/nextcloud/calendar/commit/dc77c02e4897e9fda4f0918d61b8852506d1356b))\n* **deps:** Fix npm audit ([050f25d](https://github.com/nextcloud/calendar/commit/050f25d3381a8075eb317319dc4e3d50f3f86bac))\n* **deps:** Fix npm audit ([3fa3f18](https://github.com/nextcloud/calendar/commit/3fa3f1831156fffdead028b45b73fccafb886009))\n* **deps:** update dependency @nextcloud/auth to ^2.6.0 (main) ([#8160](https://github.com/nextcloud/calendar/issues/8160)) ([78bfc3b](https://github.com/nextcloud/calendar/commit/78bfc3bc97ccf47b1d4605b45caf9afa933d1e7c))\n* **deps:** update dependency @nextcloud/axios to ^2.6.0 (main) ([#8180](https://github.com/nextcloud/calendar/issues/8180)) ([25ddffb](https://github.com/nextcloud/calendar/commit/25ddffb7326370054561018bfa85b6b53801e587))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.4.0 (main) ([#8265](https://github.com/nextcloud/calendar/issues/8265)) ([3daf0e7](https://github.com/nextcloud/calendar/commit/3daf0e7c2201ae02a1bce2ef1cbff9a7d59a1d55))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.5.0 (main) ([#8322](https://github.com/nextcloud/calendar/issues/8322)) ([7e6ae3c](https://github.com/nextcloud/calendar/commit/7e6ae3ce04627fa5117db62ba31b0152e6d8f437))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.6.0 ([13843bb](https://github.com/nextcloud/calendar/commit/13843bb86e3ddb815829641827e84255f73a70ac))\n* **deps:** update dependency @nextcloud/cdav-library to ^2.6.2 ([#8485](https://github.com/nextcloud/calendar/issues/8485)) ([6628d7f](https://github.com/nextcloud/calendar/commit/6628d7fb73415236443c2ff8038182df9c49f42b))\n* **deps:** update dependency @nextcloud/dialogs to ^6.4.1 (main) ([#7625](https://github.com/nextcloud/calendar/issues/7625)) ([254b36b](https://github.com/nextcloud/calendar/commit/254b36b449a38f6e08bd051ba01853d1acb8e8ac))\n* **deps:** update dependency @nextcloud/dialogs to ^7.3.0 (main) ([#7972](https://github.com/nextcloud/calendar/issues/7972)) ([950cebf](https://github.com/nextcloud/calendar/commit/950cebf8c151e3837a60cb54006586f756414d1b))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.0 ([57f125d](https://github.com/nextcloud/calendar/commit/57f125d2e8f56696ee074ddc6aa6738b66e58ccb))\n* **deps:** update dependency @nextcloud/dialogs to ^7.4.1 ([#8634](https://github.com/nextcloud/calendar/issues/8634)) ([7af97f6](https://github.com/nextcloud/calendar/commit/7af97f67faae6117a9db9a5577c27e11d07a2295))\n* **deps:** update dependency @nextcloud/dialogs to v7 ([402eb04](https://github.com/nextcloud/calendar/commit/402eb04d83f2eda9f2ac601f520716d23416ea46))\n* **deps:** update dependency @nextcloud/event-bus to ^3.3.3 (main) ([#7692](https://github.com/nextcloud/calendar/issues/7692)) ([aad1b9f](https://github.com/nextcloud/calendar/commit/aad1b9f444d8d66ac2e7f776a03a8d1a6d6c335e))\n* **deps:** update dependency @nextcloud/l10n to ^3.4.1 (main) ([#7693](https://github.com/nextcloud/calendar/issues/7693)) ([24dd6fa](https://github.com/nextcloud/calendar/commit/24dd6fa7264e47120da551fbec74bb1e1228c96b))\n* **deps:** update dependency @nextcloud/logger to ^3.0.3 (main) ([#7781](https://github.com/nextcloud/calendar/issues/7781)) ([57c79b9](https://github.com/nextcloud/calendar/commit/57c79b9cffe7f6e6fb72213bb09b8b594e5b8ace))\n* **deps:** update dependency @nextcloud/notify_push to ^1.3.1 (main) ([#7638](https://github.com/nextcloud/calendar/issues/7638)) ([e2de79f](https://github.com/nextcloud/calendar/commit/e2de79fd76de9847ac000e2a1180de7842476df3))\n* **deps:** update dependency @nextcloud/notify_push to ^1.4.0 (main) ([#8227](https://github.com/nextcloud/calendar/issues/8227)) ([b91be7a](https://github.com/nextcloud/calendar/commit/b91be7add2d0de562c25cc9fe76492fbf7eab4e2))\n* **deps:** update dependency @nextcloud/router to ^3.1.0 (main) ([#7723](https://github.com/nextcloud/calendar/issues/7723)) ([40508d5](https://github.com/nextcloud/calendar/commit/40508d58660e699989fa3f072400c86360119422))\n* **deps:** update dependency @nextcloud/vue to ^8.33.0 ([de34426](https://github.com/nextcloud/calendar/commit/de344265eb63d973da44aad754addb4263551aed))\n* **deps:** update dependency @nextcloud/vue to ^8.35.0 ([85d13bd](https://github.com/nextcloud/calendar/commit/85d13bd01ee55b67241e963730f5f9cb00974fd2))\n* **deps:** update dependency @nextcloud/vue to ^8.35.2 ([02168e1](https://github.com/nextcloud/calendar/commit/02168e183a3eadf8dad9a64874de50e1d7f5969e))\n* **deps:** update dependency @nextcloud/vue to ^8.35.3 ([05166c7](https://github.com/nextcloud/calendar/commit/05166c77c7522b3c29e42a2fe65d0ae0bcaacbd0))\n* **deps:** update dependency @nextcloud/vue to ^8.36.0 ([366e4a5](https://github.com/nextcloud/calendar/commit/366e4a5ef9ecc1e57b39668020f91892af1c5f2a))\n* **deps:** update dependency @nextcloud/vue to ^9.6.0 ([36c5d29](https://github.com/nextcloud/calendar/commit/36c5d290e91c28cc47fbb6b7d8979bfa624ff1f1))\n* **deps:** update dependency @nextcloud/vue to ^9.7.0 ([5afddf4](https://github.com/nextcloud/calendar/commit/5afddf40f9c29c3ded11a3c809a229e141818824))\n* **deps:** update dependency @nextcloud/vue to ^9.8.0 ([575a33f](https://github.com/nextcloud/calendar/commit/575a33f2fbc79bea3700fbf7ee87e0930ce2b84a))\n* **deps:** update dependency @nextcloud/vue to ^9.8.2 ([812d537](https://github.com/nextcloud/calendar/commit/812d537e0773a860b3d07ab133d028241ee13332))\n* **deps:** update dependency @nextcloud/vue to ^9.9.0 ([0e9fc09](https://github.com/nextcloud/calendar/commit/0e9fc09668ddc8825d41fe8e4f1458ae9f39bcbb))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.8.3 (main) ([#7722](https://github.com/nextcloud/calendar/issues/7722)) ([777ff12](https://github.com/nextcloud/calendar/commit/777ff122e3e3222d50d4da501b4a1e1854afe1cd))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.9.0 (main) ([#7956](https://github.com/nextcloud/calendar/issues/7956)) ([e819e7a](https://github.com/nextcloud/calendar/commit/e819e7a5b5c6bbc5969d00745aa5a281a65afb47))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.9.1 (main) ([#7966](https://github.com/nextcloud/calendar/issues/7966)) ([55d4ac6](https://github.com/nextcloud/calendar/commit/55d4ac6d3f3d2bb9db703aaf6abdf735856924b9))\n* **deps:** update dependency color-convert to ^3.1.3 (main) ([#7707](https://github.com/nextcloud/calendar/issues/7707)) ([c02e7b4](https://github.com/nextcloud/calendar/commit/c02e7b4f5ec50f878bc2460ed9868f0492451594))\n* **deps:** update dependency color-string to ^2.1.4 (main) ([#7708](https://github.com/nextcloud/calendar/issues/7708)) ([aeb6383](https://github.com/nextcloud/calendar/commit/aeb6383c975721a8bb3b7af875331780f6c4b4cc))\n* **deps:** update dependency core-js to ^3.47.0 (main) ([#7758](https://github.com/nextcloud/calendar/issues/7758)) ([8fc6b62](https://github.com/nextcloud/calendar/commit/8fc6b62b988cb3c2a31d7c1061847892b0c51444))\n* **deps:** update dependency core-js to ^3.48.0 (main) ([#7910](https://github.com/nextcloud/calendar/issues/7910)) ([381e7c5](https://github.com/nextcloud/calendar/commit/381e7c5d727816cb01d0af05ae9865cbb27e3714))\n* **deps:** update dependency core-js to ^3.49.0 (main) ([#8117](https://github.com/nextcloud/calendar/issues/8117)) ([62aa062](https://github.com/nextcloud/calendar/commit/62aa062605cefc7d011bc24b4dd9783fcd18c99b))\n* **deps:** update dependency debounce to v3 (main) ([#7668](https://github.com/nextcloud/calendar/issues/7668)) ([0890e44](https://github.com/nextcloud/calendar/commit/0890e447ee441c61c17386e50e8122facdb17d98))\n* **deps:** update dependency linkifyjs to ^4.3.3 ([#8362](https://github.com/nextcloud/calendar/issues/8362)) ([7848894](https://github.com/nextcloud/calendar/commit/7848894589af2481ec59b268244a0cf76009109f))\n* **deps:** update dependency p-limit to ^7.2.0 (main) ([#7611](https://github.com/nextcloud/calendar/issues/7611)) ([8cd9a3e](https://github.com/nextcloud/calendar/commit/8cd9a3e44efef74016cffbe11abde676dba3fe9f))\n* **deps:** update dependency p-limit to ^7.3.0 (main) ([#7959](https://github.com/nextcloud/calendar/issues/7959)) ([56d6a43](https://github.com/nextcloud/calendar/commit/56d6a4384aa29dede144eb578190c56d43ed676f))\n* **deps:** update dependency pinia to v4 ([056a6bc](https://github.com/nextcloud/calendar/commit/056a6bc858d20052d1a7e62c0b29785a1af2384c))\n* **deps:** update dependency vue-router to ^5.0.3 (main) ([#7960](https://github.com/nextcloud/calendar/issues/7960)) ([ddc6064](https://github.com/nextcloud/calendar/commit/ddc606453cd52d3cc6e31e0f63bea03f6c921031))\n* **deps:** update dependency vue-router to ^5.0.4 (main) ([#8091](https://github.com/nextcloud/calendar/issues/8091)) ([8ee2b56](https://github.com/nextcloud/calendar/commit/8ee2b56ab99b295c4d699bc1114699628a62ae38))\n* **deps:** update dependency vue-router to ^5.0.6 (main) ([#8226](https://github.com/nextcloud/calendar/issues/8226)) ([3eb37a8](https://github.com/nextcloud/calendar/commit/3eb37a8b3294e8b972ed4f5a9320ca1a82e8ade9))\n* **deps:** update dependency vue-router to ^5.0.7 ([#8363](https://github.com/nextcloud/calendar/issues/8363)) ([ec56079](https://github.com/nextcloud/calendar/commit/ec560798a551b71501f4b10452010e037688bd7c))\n* **deps:** update dependency vue-router to ^5.2.0 ([#8635](https://github.com/nextcloud/calendar/issues/8635)) ([d8c3689](https://github.com/nextcloud/calendar/commit/d8c368985d4233cc0f5744c1d8e913aeaaacaff5))\n* **deps:** update dependency webdav to ^5.10.0 (main) ([#8266](https://github.com/nextcloud/calendar/issues/8266)) ([6ea4940](https://github.com/nextcloud/calendar/commit/6ea4940c341abfa048d4ec27fe7ed1ab056c6d44))\n* **deps:** update dependency webdav to ^5.9.0 (main) ([#7965](https://github.com/nextcloud/calendar/issues/7965)) ([5d8c788](https://github.com/nextcloud/calendar/commit/5d8c788d4872e6d35ff213c9c0a952eed1a3447a))\n* **deps:** update fullcalendar family to v6.1.20 ([01fd499](https://github.com/nextcloud/calendar/commit/01fd499a9bd0d82087a885035ec6c780d2006190))\n* **deps:** update fullcalendar family to v6.1.21 ([43176b5](https://github.com/nextcloud/calendar/commit/43176b5a36dd4a1d9b9cba09867a0e8d935e5752))\n* **deps:** update vue monorepo to ^3.5.31 (main) ([#8116](https://github.com/nextcloud/calendar/issues/8116)) ([a904d58](https://github.com/nextcloud/calendar/commit/a904d5852245626d61cc8aab8a1fedddf7df733b))\n* **deps:** update vue monorepo to ^3.5.35 ([#8472](https://github.com/nextcloud/calendar/issues/8472)) ([586b2d6](https://github.com/nextcloud/calendar/commit/586b2d6bce99299ffd5fc3d2fb643ec951990e03))\n* **deps:** update vue monorepo to ^3.5.40 (main) ([09c1a2b](https://github.com/nextcloud/calendar/commit/09c1a2b0ac49fb2cadb53bd76f10d4ca3c2c091a))\n* description text wrapping ([4f87afa](https://github.com/nextcloud/calendar/commit/4f87afa351fea42b2db52940bf22cc27e9a8a624))\n* disable federated calendar shares if disabled by admins ([15bdaa2](https://github.com/nextcloud/calendar/commit/15bdaa2efef69fb0ea3940366cfe19389494f2d3))\n* disable reactivity on calendar import ([f75efc5](https://github.com/nextcloud/calendar/commit/f75efc57dfddfd7460730f50d1c238e6911285b3))\n* display custom public calendars as subscribed when they are subscribed ([07d20a2](https://github.com/nextcloud/calendar/commit/07d20a2ecb12ee8dd4d753febbec20a30c84fc4d)), closes [#8134](https://github.com/nextcloud/calendar/issues/8134)\n* do not show attendee actions in viewing mode ([adcac42](https://github.com/nextcloud/calendar/commit/adcac426f9ec2d0967c96f5d338a46a54995aaba))\n* do not show attendee list when there are no attendees in viewing mode ([0fb2f7a](https://github.com/nextcloud/calendar/commit/0fb2f7a2002bb2faf6a3d2e702a39ea3b5fd2c8e))\n* do not show hidden calendars ([82316d5](https://github.com/nextcloud/calendar/commit/82316d5302d9990d142d2dfbd46f6ff9f1c16409))\n* do not show items from deleted calendars in widget ([9d1d26f](https://github.com/nextcloud/calendar/commit/9d1d26f0dcdfdf39930e8b85808bd087304cb5e8))\n* do not update share item on mount ([0b71fbf](https://github.com/nextcloud/calendar/commit/0b71fbf40487a6d6ef5edab8010c4cddb14268f8))\n* edit simple buttons running away ([ac9a676](https://github.com/nextcloud/calendar/commit/ac9a6765154f704617c5b3fcd51e354072798ebb))\n* **EditFull:** alignment ([#7879](https://github.com/nextcloud/calendar/issues/7879)) ([10ee80c](https://github.com/nextcloud/calendar/commit/10ee80c9910ccad3251962edd6fe73354e7cb31c))\n* **EditFull:** readonly event formatting ([e97031c](https://github.com/nextcloud/calendar/commit/e97031cb8c21af2f594903292394eaef0120ebbb))\n* **EditFull:** some styling issues after vue3 migration ([7170743](https://github.com/nextcloud/calendar/commit/7170743279d3b227f70a30d950103ad6a7ddb142))\n* editor calendar picker and all day alignment ([a30100c](https://github.com/nextcloud/calendar/commit/a30100c3b977d16030fa753ff6a4ebfb09aa8c2d))\n* editor cancel error/logic ([5bfc0e3](https://github.com/nextcloud/calendar/commit/5bfc0e359d5fcff6b3af2e5b89f5eff92d7c4c1c))\n* **editor:**  handle closing free-busy dialog correctly ([ccc234e](https://github.com/nextcloud/calendar/commit/ccc234e7946d138991295ffdc0dbb926519edfed)), closes [#8590](https://github.com/nextcloud/calendar/issues/8590)\n* **editor:**  use modal name as  accessibility name ([85f9e83](https://github.com/nextcloud/calendar/commit/85f9e8365f58384d5d286895951f4e1ebb722249))\n* **editor:** Allow edits as attending organizer ([ba6dea5](https://github.com/nextcloud/calendar/commit/ba6dea5fd3906a098a12bf1bb88c15d2d104f54b))\n* **editor:** better resource wording and availability shortcut ([c94b995](https://github.com/nextcloud/calendar/commit/c94b995495c9de5918000cfc9ebb7907362c9c5a))\n* **editor:** close attendee action menu after Remove ([ea8415c](https://github.com/nextcloud/calendar/commit/ea8415c89944b81de86d851a7efab9ebd3623adf))\n* **editor:** do not used unefined properties in room availability modal ([30a9e1a](https://github.com/nextcloud/calendar/commit/30a9e1af2a9b57db704e8bdf1a1194723e796eb8))\n* **editor:** export button in full page editor not working ([e48479e](https://github.com/nextcloud/calendar/commit/e48479ed4ca126e3ce564d0b5d0c44059b81a2fc))\n* **editor:** full page editor not showing via direct route ([62aabf9](https://github.com/nextcloud/calendar/commit/62aabf9510261f7e39325e9e0d3bd53977d7ba77))\n* **EditorMixin:** add viewed by organizer if no attendees ([3a35fae](https://github.com/nextcloud/calendar/commit/3a35fae9deaa3efe001dcea649e7243868f859df))\n* **EditorMixin:** allow toggling all day when repeating if the event isn't yet saved on server ([c702f01](https://github.com/nextcloud/calendar/commit/c702f01eee8dd6cd6a669a5bb61f76f7f22e2aee))\n* **EditorMixin:** timepicker not adjusting end date ([ddf2d8d](https://github.com/nextcloud/calendar/commit/ddf2d8d0354b92552a81a387f802ab3e85ed6c72))\n* **editor:** Rephraze ambiguous \"group\" invites ([28745e4](https://github.com/nextcloud/calendar/commit/28745e4ab8032638b6d8e6c00f3273d38042d6a9))\n* **Editors:** auto focus title inputs ([460d88e](https://github.com/nextcloud/calendar/commit/460d88e1bd670bcfe7cea785c92c46875c8fb802))\n* **editor:** show add talk button if there are no attendees yet ([9bf6383](https://github.com/nextcloud/calendar/commit/9bf63836f99deaa45d8e26490499748d1d77f405))\n* **editor:** store categories again by disabling deselectFromDropdown ([c838fa1](https://github.com/nextcloud/calendar/commit/c838fa127a36c29620ebf9fc1218e0b69bce718e))\n* **editor:** time input for relative reminders to all day events ([77a8c63](https://github.com/nextcloud/calendar/commit/77a8c63d248b56d5cd97d0930a93b372618cb505))\n* **editor:** unable to change dates through date picker in free busy dialog ([3433d54](https://github.com/nextcloud/calendar/commit/3433d54f0756d46d3a8ecee2388d7fc8ccaa61a0)), closes [#8623](https://github.com/nextcloud/calendar/issues/8623)\n* **editor:** using clear button breaks date picker in free busy dialog ([66e6c04](https://github.com/nextcloud/calendar/commit/66e6c04393354706995317ab75d754d8c649cc56))\n* **editor:** using clear button breaks date picker in room availability modal ([b254763](https://github.com/nextcloud/calendar/commit/b254763c8cda1d81ef59e093656e3d2d44cb8689))\n* **editor:** wrap date selects on small screens ([e6bc12b](https://github.com/nextcloud/calendar/commit/e6bc12b2f924bc0101067e4bf419d76f5ba59264))\n* EditSideBar bug ([ab102c7](https://github.com/nextcloud/calendar/commit/ab102c72f133641a0f71457b144b8af34d31ca8c))\n* **EditSidebar:** free busy not updating time ([cac80be](https://github.com/nextcloud/calendar/commit/cac80be0e2dc4d6c5047492d8d02295e74bae8ad))\n* **EditSimple:** a11y on small screens ([d5ebdcf](https://github.com/nextcloud/calendar/commit/d5ebdcf919148e6157f064cd04a7b13acb897627))\n* **EditSimple:** all day toggle ([758981c](https://github.com/nextcloud/calendar/commit/758981c3aade5e48889579f9433c1463d3056206))\n* **EditSimple:** cancel confirmation dialog ([32c5746](https://github.com/nextcloud/calendar/commit/32c574677f51ad7f7f1b755b36f7536d41ba1967))\n* **EditSimple:** resizing ([fcc2aca](https://github.com/nextcloud/calendar/commit/fcc2aca2f0a8289811aec14fd22b34b832972f35))\n* **EmailController:** Ensure provided token matches any shared calendar ([998620b](https://github.com/nextcloud/calendar/commit/998620b5e767bcf6003e00f5254c38e731f2605b))\n* **email:** correct spelling of 'occurred' in error message ([22bd8df](https://github.com/nextcloud/calendar/commit/22bd8df759c38ad9280ed542ca7ece11b68b0923))\n* embedded calendar header not responsive ([c0e985b](https://github.com/nextcloud/calendar/commit/c0e985b7bd401a30108701d14da904f888307f20))\n* empty trash bin action ([8bedf1c](https://github.com/nextcloud/calendar/commit/8bedf1c29f49a5a492cd824c7bae109b4597dbe0))\n* end time resetting when changing day ([9fe7ffb](https://github.com/nextcloud/calendar/commit/9fe7ffba442d5eca5b1190bc3a1c1a55b56f6695))\n* event color picker ([7a7d9f3](https://github.com/nextcloud/calendar/commit/7a7d9f3ca9198f311c91394cfa7ce7e388771175))\n* event modal overflow ([1e8d972](https://github.com/nextcloud/calendar/commit/1e8d972e9a5a0139ced4f94e2bec6c6960e070d7))\n* event overlapping and reminder alignment ([3d39611](https://github.com/nextcloud/calendar/commit/3d39611b71ee95289f6b73f832571684ca27bda8))\n* **eventClick:** properly encode calendarId and taskId in URL generation ([9a5738a](https://github.com/nextcloud/calendar/commit/9a5738a3f5e30c1d50cdc46fd9e69688cdfd23a2))\n* **eventDidMount:** increase past event opacity ([b855814](https://github.com/nextcloud/calendar/commit/b855814783472a187e8514f5b173667335760216))\n* **eventDidMount:** make time text color be main text ([53ea163](https://github.com/nextcloud/calendar/commit/53ea1635e56ed440ed9f1a905f63a08c06601876))\n* **EventDidMount:** make transparent events be background color instead of transparent to prevent overlapping issues ([e12d996](https://github.com/nextcloud/calendar/commit/e12d9967ca4ff7037c71303ed7218d92289c8a91))\n* **events:** do not discard text input of dates and times in event edit dialog ([4efc441](https://github.com/nextcloud/calendar/commit/4efc441ebd20d813531e201f00459a8634bfe157))\n* failing pslam tests ([61220e4](https://github.com/nextcloud/calendar/commit/61220e4cd6400d68d3d43b8c0b425c5e76dc2e22))\n* **federation:** respect federation settings ([7539c92](https://github.com/nextcloud/calendar/commit/7539c9208bb031e7c6bdec4a52dd5dcb7b0886b0))\n* Fix active day highlight in month view for longer languages like Japanese ([597fa57](https://github.com/nextcloud/calendar/commit/597fa5728e8caa8e5a566c8772890b2f230750c3))\n* fix compiler SCSS warning ([95376b0](https://github.com/nextcloud/calendar/commit/95376b0839f6a49b5ebe8be4f74c50d3e720c833))\n* force height for descr and location ([832f86d](https://github.com/nextcloud/calendar/commit/832f86dfcc1a3c0d5a0f0ac69a66b5a08c41c21e))\n* free busy not updating date ([3b2d626](https://github.com/nextcloud/calendar/commit/3b2d6269c30d436ef0970807c27168fc33ada18c))\n* free event height ([a09888d](https://github.com/nextcloud/calendar/commit/a09888d5125e965ee96837484aa6a9959f7ff70c))\n* **free-busy-modal:** Pin all day events on scroll ([de9d97f](https://github.com/nextcloud/calendar/commit/de9d97fee7f9fa3ad839ae0af82f10d3e2bdb819))\n* **free-busy:** adjust event title color to nextcloud theme ([beae45f](https://github.com/nextcloud/calendar/commit/beae45f4734b85e5902709a1ad1dbf044f1ba20f))\n* **free-busy:** allow selection on top of busy blocks ([a4f8109](https://github.com/nextcloud/calendar/commit/a4f81093a5bb82b4e962e0baf5fbf694d7d25536))\n* **free-busy:** close modal when all attendees removed ([f17465a](https://github.com/nextcloud/calendar/commit/f17465ad6b7cdb01e77c513b36f43bcb18e229b2))\n* **free-busy:** make backgound solid for attendees' slots ([3287aae](https://github.com/nextcloud/calendar/commit/3287aae65b3bf8614a3efd4c0f9bc7606f2da453))\n* **free-busy:** use own calendar color for organiser busy blocks ([e30b875](https://github.com/nextcloud/calendar/commit/e30b87568d6fdf58996037f216372d654c200a64))\n* freebusy ui visual improvements ([2dec06e](https://github.com/nextcloud/calendar/commit/2dec06e2455abd4dbb6a844e3a5501f17cb667bf))\n* **freebusy:** disable set free slot while previous slot is being set ([d268e25](https://github.com/nextcloud/calendar/commit/d268e257ddb031dfa7a0e415b2ba5cb5575a75a7))\n* **freebusy:** free busy ignoring user's time zone ([b3fc6dc](https://github.com/nextcloud/calendar/commit/b3fc6dc0e62906f7db336ca46359578947b67974))\n* **freebusy:** slot header format not respecting user's locale ([8d73bd2](https://github.com/nextcloud/calendar/commit/8d73bd23b08d514ddeeeaef805ec3bda56611ceb))\n* from alignment ([0b8f6b4](https://github.com/nextcloud/calendar/commit/0b8f6b4a6eddd38990f83385a782c1cb11d349b3))\n* full calendar error logging ([#7685](https://github.com/nextcloud/calendar/issues/7685)) ([43e3300](https://github.com/nextcloud/calendar/commit/43e33004db8a7f692597224a030055aeb4a61611))\n* **fullcalendar css:** make event margin be in vw instead of percentage ([6eb2cbb](https://github.com/nextcloud/calendar/commit/6eb2cbb4724c0cfaef26f2ae827f540ffcbcfd98))\n* **fullcalendar.scss:** calendar grid headers overlapping ([#7609](https://github.com/nextcloud/calendar/issues/7609)) ([a9ff6cb](https://github.com/nextcloud/calendar/commit/a9ff6cb655218f676bb27d2c84256e14fc27633b))\n* **fullcalendar:** freezing year view ([bf5372e](https://github.com/nextcloud/calendar/commit/bf5372e2d9229b537e736ee74275842e8fe71f16))\n* get rid of console statement ([c4a559e](https://github.com/nextcloud/calendar/commit/c4a559ebe45dba837fee55543b1419fc9cd0a2ca))\n* **global.css:** z-index style leaking ([035243b](https://github.com/nextcloud/calendar/commit/035243b87841784a2ea08443c3cdfc050c543926))\n* handle missing organizer gracefully when fetching room suggestions ([7abb014](https://github.com/nextcloud/calendar/commit/7abb01472a6af30d7fa61fa1ac761bb025d8c3f8))\n* harden group attendee search ([1147058](https://github.com/nextcloud/calendar/commit/11470585ba39c41fa221373d3748590be9cb07ca))\n* have both circle color and avatar in calendar selection ([189ed9e](https://github.com/nextcloud/calendar/commit/189ed9e6427587c46a79b5c8cd885d53a7332793))\n* hide resource booking if no backend available ([52e78a8](https://github.com/nextcloud/calendar/commit/52e78a8578da48e4f6fdde770877de56ad2f3ff9))\n* icon style ([3935df3](https://github.com/nextcloud/calendar/commit/3935df32af251aab22d354e369031f3751d30eea))\n* identify if contact is a system user ([a058bd4](https://github.com/nextcloud/calendar/commit/a058bd46223aaa42f274b6af6d36f6900c7d9942))\n* improve attendee search ([9851b16](https://github.com/nextcloud/calendar/commit/9851b167fe005a40cf229836cce5eed1b1b7223f))\n* improve confidentiality wording when sharing calendars/events ([d334ffd](https://github.com/nextcloud/calendar/commit/d334ffd747dfbf7b8314399b8b08cf6f470f0980))\n* improve simple editor positioning logic ([284c06f](https://github.com/nextcloud/calendar/commit/284c06fc413e7c66ccc950d0023a697816549c9b))\n* improve title and description word wrapping ([d657275](https://github.com/nextcloud/calendar/commit/d65727591d2b2a95f1da368849a8261e5f289d4b))\n* improve translations ([97587b3](https://github.com/nextcloud/calendar/commit/97587b362f1a740fda6b088244caa64dbd5717a1))\n* input validation ([40dbf62](https://github.com/nextcloud/calendar/commit/40dbf62095649cab5b33bfaaaab60916bbfcf33c))\n* invitee list avatar ([cd89071](https://github.com/nextcloud/calendar/commit/cd89071f8fd9d9f819bb93949be0105496c7d5e9))\n* **InviteesList:** change attendee summary logic ([#7610](https://github.com/nextcloud/calendar/issues/7610)) ([3e85755](https://github.com/nextcloud/calendar/commit/3e857555e2b507c768be6f3a1683ea7eac7f6681))\n* **InviteesListItem:** attendee name wrapping ([74a51e9](https://github.com/nextcloud/calendar/commit/74a51e9face312db571f3c77626bdc8ed9704e18))\n* **InviteesListSearch:** ellipsis ([45f3e9d](https://github.com/nextcloud/calendar/commit/45f3e9d5aaea10f061f5978a6433664ffad5b763))\n* **InviteesListSearch:** make matching work with both name and email ([6a97222](https://github.com/nextcloud/calendar/commit/6a972224577ded9096dbc172176518368e2e709b))\n* keyboard shortcut modal not being responsive ([1ecf27b](https://github.com/nextcloud/calendar/commit/1ecf27b67c23c99bd16ecb4e3630743971e660ae))\n* **l10n:** add context for translators (second vs. seconds) ([9d76c8c](https://github.com/nextcloud/calendar/commit/9d76c8c5a3487c58732fe193155a59d59c1a5861))\n* **l10n:** fix typo in server administrator ([1f8f579](https://github.com/nextcloud/calendar/commit/1f8f5799c83b5c077b9bc1aa52f04a5dc0a02a6c))\n* **l10n:** Update translations from Transifex ([c02916f](https://github.com/nextcloud/calendar/commit/c02916f46803fd2cf24e1cdceba7afcfc1f4413a))\n* **l10n:** Update translations from Transifex ([698ed93](https://github.com/nextcloud/calendar/commit/698ed93f8d94f9fec85af6b5225137b48ec63df0))\n* **l10n:** Update translations from Transifex ([fb016d1](https://github.com/nextcloud/calendar/commit/fb016d18649158e0cb0165e9f8cbac5b24724b70))\n* **l10n:** Update translations from Transifex ([d472802](https://github.com/nextcloud/calendar/commit/d472802f8921e7572195182609d9ad79ccec95d7))\n* **l10n:** Update translations from Transifex ([0d7c745](https://github.com/nextcloud/calendar/commit/0d7c745a43156f64d80ca389a5e25860828a42a9))\n* **l10n:** Update translations from Transifex ([b73ead7](https://github.com/nextcloud/calendar/commit/b73ead7a52ae224a1db15de3baf7ad263ab87463))\n* **l10n:** Update translations from Transifex ([aa56db0](https://github.com/nextcloud/calendar/commit/aa56db07603d84176751515d037ba33526edc773))\n* **l10n:** Update translations from Transifex ([54af44e](https://github.com/nextcloud/calendar/commit/54af44e7c7f22a8ec61600e433b18f1b548bc63b))\n* **l10n:** Update translations from Transifex ([ed652ab](https://github.com/nextcloud/calendar/commit/ed652abc7039d6dd543cdbd1d323703d54c9cfc7))\n* **l10n:** Update translations from Transifex ([75c55ec](https://github.com/nextcloud/calendar/commit/75c55ec8f9d1f1c486937a0fafd5bf7a13cbdb59))\n* **l10n:** Update translations from Transifex ([4ed1946](https://github.com/nextcloud/calendar/commit/4ed19460f4bc24e9adff5c2c3bf67dd3e95db34c))\n* **l10n:** Update translations from Transifex ([7560c00](https://github.com/nextcloud/calendar/commit/7560c00fb7851f8b8821d5585e46c885e6efc6ae))\n* **l10n:** Update translations from Transifex ([9399720](https://github.com/nextcloud/calendar/commit/93997200d65cc1956aa6edda64e85cd0ff465064))\n* **l10n:** Update translations from Transifex ([4771dbc](https://github.com/nextcloud/calendar/commit/4771dbcbd1df14b3418fd4e4614e91e5779e5f05))\n* **l10n:** Update translations from Transifex ([6329007](https://github.com/nextcloud/calendar/commit/6329007dc4b07ae483ad53e8ddffa8856e70bd8d))\n* **l10n:** Update translations from Transifex ([f09c258](https://github.com/nextcloud/calendar/commit/f09c258be40c991684801122bb19982bb8bb90c5))\n* **l10n:** Update translations from Transifex ([14f6a7c](https://github.com/nextcloud/calendar/commit/14f6a7c2382a5e2d7bdb7722d8cdb9c9e0920eca))\n* **l10n:** Update translations from Transifex ([32605c0](https://github.com/nextcloud/calendar/commit/32605c04ee306f49011c470af2bea8102166cddd))\n* **l10n:** Update translations from Transifex ([b6b8020](https://github.com/nextcloud/calendar/commit/b6b8020940b025e076a4cbd1482b6cb985cc8b63))\n* **l10n:** Update translations from Transifex ([36c4884](https://github.com/nextcloud/calendar/commit/36c48845a33533086ffe80b18404af7dbc115e0b))\n* **l10n:** Update translations from Transifex ([937f612](https://github.com/nextcloud/calendar/commit/937f612cadbf622e04a931c10e5953a7be1bda09))\n* **l10n:** Update translations from Transifex ([2cebc6e](https://github.com/nextcloud/calendar/commit/2cebc6e63e24b16f61e139be82b6867b087479ca))\n* **l10n:** Update translations from Transifex ([1860cce](https://github.com/nextcloud/calendar/commit/1860cce528346c0dfddbdc0b81f8e3556a332a65))\n* **l10n:** Update translations from Transifex ([7637798](https://github.com/nextcloud/calendar/commit/7637798063a27506084f8dad2601431861a42f7d))\n* **l10n:** Update translations from Transifex ([e5740da](https://github.com/nextcloud/calendar/commit/e5740daea2d935347261c8c5bd13d26b8d7e0e9b))\n* **l10n:** Update translations from Transifex ([1d94540](https://github.com/nextcloud/calendar/commit/1d945403bc63ef48dd569e10d7873d59932bab6f))\n* **l10n:** Update translations from Transifex ([c99ffa6](https://github.com/nextcloud/calendar/commit/c99ffa65a974b2af504c2286c1800a92a68f5289))\n* **l10n:** Update translations from Transifex ([88a682e](https://github.com/nextcloud/calendar/commit/88a682e1879ec02e6ec6b8c492d38e7c192024bb))\n* **l10n:** Update translations from Transifex ([fcb7dda](https://github.com/nextcloud/calendar/commit/fcb7dda7f92684989c99507234c662f0d01d7522))\n* **l10n:** Update translations from Transifex ([97fca6c](https://github.com/nextcloud/calendar/commit/97fca6c9e29539e6d5cb7e0a0d21e2cdf7d5eb6a))\n* **l10n:** Update translations from Transifex ([fb665b8](https://github.com/nextcloud/calendar/commit/fb665b8035b8982bad5219553baf1a46d233cb4a))\n* **l10n:** Update translations from Transifex ([efda8e9](https://github.com/nextcloud/calendar/commit/efda8e9e1e0a341e25d6db908ac000a586383065))\n* **l10n:** Update translations from Transifex ([8898ce0](https://github.com/nextcloud/calendar/commit/8898ce0082e2fa66eaef48ff08af44a9bba7a24b))\n* **l10n:** Update translations from Transifex ([3810bba](https://github.com/nextcloud/calendar/commit/3810bba097962cf8c719a101356861ad1c633577))\n* **l10n:** Update translations from Transifex ([a2b6464](https://github.com/nextcloud/calendar/commit/a2b64643f85f73119cdc4cda90ce9e5cbf5ae58d))\n* **l10n:** Update translations from Transifex ([4cb80d9](https://github.com/nextcloud/calendar/commit/4cb80d94cc168ce282351706d5f930190fa0b61e))\n* **l10n:** Update translations from Transifex ([435a189](https://github.com/nextcloud/calendar/commit/435a189cc4fdd33b72a5378a81a3ae9a4fcdbc5f))\n* **l10n:** Update translations from Transifex ([f9c43cd](https://github.com/nextcloud/calendar/commit/f9c43cda2079d32c409030ace921535b8272afdd))\n* **l10n:** Update translations from Transifex ([28bf9da](https://github.com/nextcloud/calendar/commit/28bf9da3487518d8a6324358a37ef0b3ab50cf44))\n* **l10n:** Update translations from Transifex ([8bc067c](https://github.com/nextcloud/calendar/commit/8bc067c093eb4245b86f8057241c40c7641e84de))\n* **l10n:** Update translations from Transifex ([f78bcd6](https://github.com/nextcloud/calendar/commit/f78bcd631c90220cafeff42bbb804d788c1cb71a))\n* **l10n:** Update translations from Transifex ([22bbb2f](https://github.com/nextcloud/calendar/commit/22bbb2f625cda65c6aa81837c513f09596a4958a))\n* **l10n:** Update translations from Transifex ([be3b0a9](https://github.com/nextcloud/calendar/commit/be3b0a926a65ec00b7119764964b599ebf4b4a20))\n* **l10n:** Update translations from Transifex ([c95ff9c](https://github.com/nextcloud/calendar/commit/c95ff9c21b1f8d28a99f306c04e5b53fee3c01a3))\n* **l10n:** Update translations from Transifex ([a6b6d38](https://github.com/nextcloud/calendar/commit/a6b6d38bae5016aefcbf5585c84447b5f35989ce))\n* **l10n:** Update translations from Transifex ([e5c7811](https://github.com/nextcloud/calendar/commit/e5c781103cda6c806903a7536dc4ee67e003f0ab))\n* **l10n:** Update translations from Transifex ([74ef569](https://github.com/nextcloud/calendar/commit/74ef569365b7194d83f80ee8b148dc9736951ca7))\n* **l10n:** Update translations from Transifex ([02ce77e](https://github.com/nextcloud/calendar/commit/02ce77e709e8f33237b8dd1e1da31fa94c6e3b85))\n* **l10n:** Update translations from Transifex ([ef04c47](https://github.com/nextcloud/calendar/commit/ef04c4778409913de7e601d3a6ca0918e5f4fb9a))\n* **l10n:** Update translations from Transifex ([45d2d8a](https://github.com/nextcloud/calendar/commit/45d2d8aae55a45c47bdaa0ac235d6bbcd02bebfb))\n* **l10n:** Update translations from Transifex ([a24c18e](https://github.com/nextcloud/calendar/commit/a24c18eb3f44b7f9590bc7019596a33db1aa7a3b))\n* **l10n:** Update translations from Transifex ([7300980](https://github.com/nextcloud/calendar/commit/730098048b68381ca80f3cb7200c75bd939db597))\n* **l10n:** Update translations from Transifex ([336fc0a](https://github.com/nextcloud/calendar/commit/336fc0a67ddb3656c6f47f750a1e98541f9accf8))\n* **l10n:** Update translations from Transifex ([6854e34](https://github.com/nextcloud/calendar/commit/6854e3467dbbdf24cf137ced6542c493a5cc8596))\n* **l10n:** Update translations from Transifex ([945d5ec](https://github.com/nextcloud/calendar/commit/945d5ecd2d15179e0f0ed9026747c94878a6975b))\n* **l10n:** Update translations from Transifex ([272931b](https://github.com/nextcloud/calendar/commit/272931b8fe6f3f0ce5234dd0cc3f27136e5a4c6a))\n* **l10n:** Update translations from Transifex ([0d11786](https://github.com/nextcloud/calendar/commit/0d11786d158a955e8f95cb2b39d34d3d00783a9b))\n* **l10n:** Update translations from Transifex ([ed9dfeb](https://github.com/nextcloud/calendar/commit/ed9dfeb31155dbbdf88c6be162891e307233d518))\n* **l10n:** Update translations from Transifex ([07804e0](https://github.com/nextcloud/calendar/commit/07804e040e36dbcb6476cd4275b14e7878a11015))\n* **l10n:** Update translations from Transifex ([e0d6765](https://github.com/nextcloud/calendar/commit/e0d67658af6eba53583637ec364c5d6da01e50fa))\n* **l10n:** Update translations from Transifex ([cc77da2](https://github.com/nextcloud/calendar/commit/cc77da2972c811e34b9ed666cc0cde12f63fd0f1))\n* **l10n:** Update translations from Transifex ([89b8380](https://github.com/nextcloud/calendar/commit/89b8380e41700cb0ecec4b00dd03d6512d8d9677))\n* **l10n:** Update translations from Transifex ([857cd56](https://github.com/nextcloud/calendar/commit/857cd56f8a9766f56c4b5e3c747fd7cf46fc3f15))\n* **l10n:** Update translations from Transifex ([e3adde2](https://github.com/nextcloud/calendar/commit/e3adde2315fd8b40776ec3597f373ea92efaf576))\n* **l10n:** Update translations from Transifex ([50aa34b](https://github.com/nextcloud/calendar/commit/50aa34bd2c76469d2d0fef4bdf4e44923d7fb5a5))\n* **l10n:** Update translations from Transifex ([398bc9e](https://github.com/nextcloud/calendar/commit/398bc9e4d27ad57c915ae266b2c11ee11ed1f08d))\n* **l10n:** Update translations from Transifex ([46f7f9f](https://github.com/nextcloud/calendar/commit/46f7f9f59ba9354285b17a4c6924a9246738f4dd))\n* **l10n:** Update translations from Transifex ([55016ef](https://github.com/nextcloud/calendar/commit/55016ef6b5ee8f9074741f8a22d91d0f9aa637ba))\n* **l10n:** Update translations from Transifex ([0dc4f83](https://github.com/nextcloud/calendar/commit/0dc4f83882373f60ca60c71b55afe2a02f5d086b))\n* **l10n:** Update translations from Transifex ([976bf4a](https://github.com/nextcloud/calendar/commit/976bf4ab213d867a16bf1c90f198cf051952f083))\n* **l10n:** Update translations from Transifex ([43c1ff3](https://github.com/nextcloud/calendar/commit/43c1ff354782cf080d29e38eae740a2adfa3371c))\n* **l10n:** Update translations from Transifex ([4d8770b](https://github.com/nextcloud/calendar/commit/4d8770b12e28cef8173702a6c5a50a0ec5f99110))\n* **l10n:** Update translations from Transifex ([56fea49](https://github.com/nextcloud/calendar/commit/56fea493e195272592c750eeeb4329aa0a8c8855))\n* **l10n:** Update translations from Transifex ([6963258](https://github.com/nextcloud/calendar/commit/6963258e31f04f86d2be2f4f1c96d2b8b630c17d))\n* **l10n:** Update translations from Transifex ([c9bd7ed](https://github.com/nextcloud/calendar/commit/c9bd7ed59e5d286f1301140517e442468ef84d2a))\n* **l10n:** Update translations from Transifex ([3d86691](https://github.com/nextcloud/calendar/commit/3d866911d49b7f60b55a5bebe574d9325303e5a1))\n* **l10n:** Update translations from Transifex ([d9c9754](https://github.com/nextcloud/calendar/commit/d9c975419708fe3e16da655f2ee53341f38d0382))\n* **l10n:** Update translations from Transifex ([f741ce1](https://github.com/nextcloud/calendar/commit/f741ce13f997aaa44d0a52a73bfa290aa7720359))\n* **l10n:** Update translations from Transifex ([b0a7e98](https://github.com/nextcloud/calendar/commit/b0a7e98c20611a124910bea809f573a42becf00a))\n* **l10n:** Update translations from Transifex ([628657c](https://github.com/nextcloud/calendar/commit/628657c909c0dacc7c50c08721f47a533f180f90))\n* **l10n:** Update translations from Transifex ([d3bd1c2](https://github.com/nextcloud/calendar/commit/d3bd1c20f2de2827a445e446769814aa57bfdfe4))\n* **l10n:** Update translations from Transifex ([59ad5e9](https://github.com/nextcloud/calendar/commit/59ad5e983c20dc89fe087b699efb7ede0037f3db))\n* **l10n:** Update translations from Transifex ([7fc8a29](https://github.com/nextcloud/calendar/commit/7fc8a29f42b9687b709f8abbdae506d0b328521d))\n* **l10n:** Update translations from Transifex ([e05a172](https://github.com/nextcloud/calendar/commit/e05a172dd34dd1cdbfb83ffef6979dd87f879567))\n* **l10n:** Update translations from Transifex ([ec83ae4](https://github.com/nextcloud/calendar/commit/ec83ae4812e9e8621ec57e588ceb3b987eb6352e))\n* **l10n:** Update translations from Transifex ([a2d970b](https://github.com/nextcloud/calendar/commit/a2d970be40dc76f7d5a02fef24b667c4f06b470c))\n* **l10n:** Update translations from Transifex ([b237095](https://github.com/nextcloud/calendar/commit/b237095a595677fdd5abc33506b8b06c0032b98e))\n* **l10n:** Update translations from Transifex ([98a731e](https://github.com/nextcloud/calendar/commit/98a731ed62d2f21b1776b895738a6f4c793608c8))\n* **l10n:** Update translations from Transifex ([a1c8c05](https://github.com/nextcloud/calendar/commit/a1c8c0598cca31441846cdfca80ef82d9121e3e6))\n* **l10n:** Update translations from Transifex ([c433c2c](https://github.com/nextcloud/calendar/commit/c433c2c39906e90873f2bd250cd4fe50d608d7d8))\n* **l10n:** Update translations from Transifex ([496ca94](https://github.com/nextcloud/calendar/commit/496ca9424007e562129628eb9513e9674abf9d32))\n* **l10n:** Update translations from Transifex ([d975c0c](https://github.com/nextcloud/calendar/commit/d975c0c26c5d31ab2c5c310e3976fa12aefa56ab))\n* **l10n:** Update translations from Transifex ([6b0beca](https://github.com/nextcloud/calendar/commit/6b0beca4c1b76870d2fe51991c631fa362b6e794))\n* **l10n:** Update translations from Transifex ([1882404](https://github.com/nextcloud/calendar/commit/1882404afd4c650c600d7556b81bda0f146efa38))\n* **l10n:** Update translations from Transifex ([eeb6e46](https://github.com/nextcloud/calendar/commit/eeb6e46f1168acb1d2a7e0f317cff0752680231e))\n* **l10n:** Update translations from Transifex ([c7c459a](https://github.com/nextcloud/calendar/commit/c7c459ab4a88ab38d510f76f2b5b357713a49ea9))\n* **l10n:** Update translations from Transifex ([0a8dbe5](https://github.com/nextcloud/calendar/commit/0a8dbe5fa6b5884c16cf854ff9255a3c2b83905d))\n* **l10n:** Update translations from Transifex ([42142cd](https://github.com/nextcloud/calendar/commit/42142cd3b92fa312220a7b60b81c5ee21829b54c))\n* **l10n:** Update translations from Transifex ([e60ee0e](https://github.com/nextcloud/calendar/commit/e60ee0e1d22c0e8af00b98c5af8e8506876c36ee))\n* **l10n:** Update translations from Transifex ([ae9c5ce](https://github.com/nextcloud/calendar/commit/ae9c5cede90972304836edc24fbaacc7c05b41ee))\n* **l10n:** Update translations from Transifex ([eee2f68](https://github.com/nextcloud/calendar/commit/eee2f6830620f7abd36ff167dd297788f26e31b8))\n* **l10n:** Update translations from Transifex ([24dd896](https://github.com/nextcloud/calendar/commit/24dd896c8074fef6757e4d0e6548535d7d50b9d3))\n* **l10n:** Update translations from Transifex ([e149f8a](https://github.com/nextcloud/calendar/commit/e149f8a1804623e104f8e18654688533a7026b15))\n* **l10n:** Update translations from Transifex ([d07510d](https://github.com/nextcloud/calendar/commit/d07510d71697fc304d54913d0d2c370f30799601))\n* **l10n:** Update translations from Transifex ([b639888](https://github.com/nextcloud/calendar/commit/b63988870c5e572d4a28248b26444df420783e74))\n* **l10n:** Update translations from Transifex ([53fcfb2](https://github.com/nextcloud/calendar/commit/53fcfb2953e0951d6ca588da851804b977246009))\n* **l10n:** Update translations from Transifex ([eb3251d](https://github.com/nextcloud/calendar/commit/eb3251d9520441be824fda369a53afd591e01ee4))\n* **l10n:** Update translations from Transifex ([06cc3e1](https://github.com/nextcloud/calendar/commit/06cc3e1ce364c8a8fc90d8aad1ca039d8d0e6c94))\n* **l10n:** Update translations from Transifex ([2422d09](https://github.com/nextcloud/calendar/commit/2422d09fde93cb2a4283880212932408562f1c1c))\n* **l10n:** Update translations from Transifex ([d87fbab](https://github.com/nextcloud/calendar/commit/d87fbabacb82a67907e45e191f5865b605a0f139))\n* **l10n:** Update translations from Transifex ([021bea5](https://github.com/nextcloud/calendar/commit/021bea5ce4fb5c8546886d55d4d180f11894a1da))\n* **l10n:** Update translations from Transifex ([4e1cbd6](https://github.com/nextcloud/calendar/commit/4e1cbd6a4f10dd8d16c06622cc61dab8cc1eff9e))\n* **l10n:** Update translations from Transifex ([e7f7c52](https://github.com/nextcloud/calendar/commit/e7f7c52daca2149c613dd0560d8d9545a8bdcdf4))\n* **l10n:** Update translations from Transifex ([792e52f](https://github.com/nextcloud/calendar/commit/792e52fbd639b03309cc8e1f0c51cee7c2c01ba5))\n* **l10n:** Update translations from Transifex ([f0fd771](https://github.com/nextcloud/calendar/commit/f0fd771feb7ba596d2bbc9c9b8002b887525a127))\n* **l10n:** Update translations from Transifex ([93fac85](https://github.com/nextcloud/calendar/commit/93fac857dd2470bd480da95826c0ebb548f33a51))\n* **l10n:** Update translations from Transifex ([27ec94b](https://github.com/nextcloud/calendar/commit/27ec94b957f072729f1efcd443768726fdb7ca6a))\n* **l10n:** Update translations from Transifex ([9a8c41a](https://github.com/nextcloud/calendar/commit/9a8c41a494d5d3484a3bb7fc9b5d00fa4752055d))\n* **l10n:** Update translations from Transifex ([f9387df](https://github.com/nextcloud/calendar/commit/f9387df54314d7f46eaf5ebb903530af522a5b13))\n* **l10n:** Update translations from Transifex ([0a0dc23](https://github.com/nextcloud/calendar/commit/0a0dc2382fbc6eb0ac871b7273adee15316c3ae4))\n* **l10n:** Update translations from Transifex ([8758809](https://github.com/nextcloud/calendar/commit/8758809b17eaf9cc8359b1d88e2c6f1d1635ea37))\n* **l10n:** Update translations from Transifex ([dd15541](https://github.com/nextcloud/calendar/commit/dd15541d2377a905070a39d921570d15c9b03f8a))\n* **l10n:** Update translations from Transifex ([953258c](https://github.com/nextcloud/calendar/commit/953258c9843d9df86e7c2c59db9cb5e5a7001601))\n* **l10n:** Update translations from Transifex ([c098c51](https://github.com/nextcloud/calendar/commit/c098c518ee8994532768fe5379c7a7a0a7a414a5))\n* **l10n:** Update translations from Transifex ([a255dbf](https://github.com/nextcloud/calendar/commit/a255dbff86afeb7aa5e3347e849d57b13636cbda))\n* **l10n:** Update translations from Transifex ([75a9673](https://github.com/nextcloud/calendar/commit/75a9673be86ad4b84fdc8ad5b325bcf980e2013e))\n* **l10n:** Update translations from Transifex ([1d97806](https://github.com/nextcloud/calendar/commit/1d97806076d9bedabbcad3340905360565d018f5))\n* **l10n:** Update translations from Transifex ([5c10c2c](https://github.com/nextcloud/calendar/commit/5c10c2cbba458ebbd76b822a174dcfe141d5d84f))\n* **l10n:** Update translations from Transifex ([ed525fd](https://github.com/nextcloud/calendar/commit/ed525fdb7b616c3fcaa1f1ce582c1fa9e0b9a851))\n* **l10n:** Update translations from Transifex ([ee14dad](https://github.com/nextcloud/calendar/commit/ee14dadb998722d12557cddffc1bfe6b1dfe1c0f))\n* **l10n:** Update translations from Transifex ([8210ee3](https://github.com/nextcloud/calendar/commit/8210ee3795289262916e29a1c5745dbe0551271c))\n* **l10n:** Update translations from Transifex ([1d1fd30](https://github.com/nextcloud/calendar/commit/1d1fd303edf8da8bcd8dc0356776232283fb6132))\n* **l10n:** Update translations from Transifex ([d9d156b](https://github.com/nextcloud/calendar/commit/d9d156b177dfee744fdcf600ae9c308318afd03e))\n* **l10n:** Update translations from Transifex ([440cabb](https://github.com/nextcloud/calendar/commit/440cabb20e1ae8447ea383785e581ecb496be87f))\n* **l10n:** Update translations from Transifex ([5bc7491](https://github.com/nextcloud/calendar/commit/5bc7491f949e072a210b2d20db261c5a69097159))\n* **l10n:** Update translations from Transifex ([ddb967e](https://github.com/nextcloud/calendar/commit/ddb967e3aa12254796d24e26fd44a07dc0ca9535))\n* **l10n:** Update translations from Transifex ([b648648](https://github.com/nextcloud/calendar/commit/b64864845ed86ea6d85c6af6b7e525671589a1f6))\n* **l10n:** Update translations from Transifex ([fefd726](https://github.com/nextcloud/calendar/commit/fefd726abf962f1437e3a51e347e1ffd2d91362e))\n* **l10n:** Update translations from Transifex ([2e11c1c](https://github.com/nextcloud/calendar/commit/2e11c1cce25dd6f9a4c651e2e7287870f24afa44))\n* **l10n:** Update translations from Transifex ([04e8e49](https://github.com/nextcloud/calendar/commit/04e8e493108bfce34d3800b74be19ba2dea22480))\n* **l10n:** Update translations from Transifex ([de56310](https://github.com/nextcloud/calendar/commit/de5631032fce559836ea1d942228b00ef6c45768))\n* **l10n:** Update translations from Transifex ([cd4fe0f](https://github.com/nextcloud/calendar/commit/cd4fe0f0248deaad931b8d8a214b03f40a1ef485))\n* **l10n:** Update translations from Transifex ([308c846](https://github.com/nextcloud/calendar/commit/308c846a471490412f8a4d0301558ac015a320e7))\n* **l10n:** Update translations from Transifex ([051414c](https://github.com/nextcloud/calendar/commit/051414c978bc62c679d76fde801c99a37b2091b2))\n* **l10n:** Update translations from Transifex ([9bc15ef](https://github.com/nextcloud/calendar/commit/9bc15efbea220eb8424a65d85f6de0df3a59af59))\n* **l10n:** Update translations from Transifex ([fba6cf5](https://github.com/nextcloud/calendar/commit/fba6cf5216e980128d7c4b81786e2ef56fa0ef27))\n* **l10n:** Update translations from Transifex ([7e73f6a](https://github.com/nextcloud/calendar/commit/7e73f6a78b61ab8584285edc5b87c2b40b4b8bd2))\n* **l10n:** Update translations from Transifex ([a28b28d](https://github.com/nextcloud/calendar/commit/a28b28d048a79b8ad1d8c6c94a7f3723203ab383))\n* **l10n:** Update translations from Transifex ([38d68a8](https://github.com/nextcloud/calendar/commit/38d68a8e193bae11914da7a1daf1d4cac312ed40))\n* **l10n:** Update translations from Transifex ([26fa154](https://github.com/nextcloud/calendar/commit/26fa154eb596a5f4f08f98786f739f0346611cf9))\n* **l10n:** Update translations from Transifex ([b127aff](https://github.com/nextcloud/calendar/commit/b127aff6080417836a958ce47cc309773e328ae1))\n* **l10n:** Update translations from Transifex ([6524e20](https://github.com/nextcloud/calendar/commit/6524e20dbb847ac7273435b3e8936b17f704c140))\n* **l10n:** Update translations from Transifex ([da37827](https://github.com/nextcloud/calendar/commit/da37827e35ce3c3b13980de1275625becdd3269f))\n* **l10n:** Update translations from Transifex ([137489e](https://github.com/nextcloud/calendar/commit/137489e59e87258dc518b1b6683f6ea924ee5233))\n* **l10n:** Update translations from Transifex ([3da47a6](https://github.com/nextcloud/calendar/commit/3da47a6046a5b5129cb80d53b56033c52569d484))\n* **l10n:** Update translations from Transifex ([0597cde](https://github.com/nextcloud/calendar/commit/0597cde615ce7d96ab79494633f7f56d4ef7ec73))\n* **l10n:** Update translations from Transifex ([28a01c4](https://github.com/nextcloud/calendar/commit/28a01c4846dba527bbb3a5ab39a360aee5ec0c7d))\n* **l10n:** Update translations from Transifex ([ddf7956](https://github.com/nextcloud/calendar/commit/ddf7956721aff1941376a74f04d65d02659747b5))\n* **l10n:** Update translations from Transifex ([f9188fb](https://github.com/nextcloud/calendar/commit/f9188fbb19dbb26beb126827ce728afa86e2c4e9))\n* **l10n:** Update translations from Transifex ([2992d90](https://github.com/nextcloud/calendar/commit/2992d90b6cc6dd6f9d08d44251f7c7f780dc415e))\n* **l10n:** Update translations from Transifex ([b03e0df](https://github.com/nextcloud/calendar/commit/b03e0dfc48caed4aeb9281434faa36a202b5f214))\n* **l10n:** Update translations from Transifex ([4b6e8aa](https://github.com/nextcloud/calendar/commit/4b6e8aa434ddc19af45ef0892f6761387df61e2a))\n* **l10n:** Update translations from Transifex ([b7696fe](https://github.com/nextcloud/calendar/commit/b7696fe7d86b30452659a2bc8611ddc1707577ac))\n* **l10n:** Update translations from Transifex ([8f1f51f](https://github.com/nextcloud/calendar/commit/8f1f51f5718dc73048f9edeed961ed9111ff21ab))\n* **l10n:** Update translations from Transifex ([e071718](https://github.com/nextcloud/calendar/commit/e0717182e9923e1a77133af2f002ce0086ef8020))\n* **l10n:** Update translations from Transifex ([dc9235e](https://github.com/nextcloud/calendar/commit/dc9235e1c0e7b45b86492d46d47f38f3ddec7b6e))\n* **l10n:** Update translations from Transifex ([bcecf83](https://github.com/nextcloud/calendar/commit/bcecf8311f53c4b424132b4766fb16ab4a401f50))\n* **l10n:** Update translations from Transifex ([a8f7a61](https://github.com/nextcloud/calendar/commit/a8f7a61c6d164b2daa324acc563ed5adb96a2951))\n* **l10n:** Update translations from Transifex ([fd76c85](https://github.com/nextcloud/calendar/commit/fd76c85420f0ac63c9925edcebfd222d683c7006))\n* **l10n:** Update translations from Transifex ([13873b5](https://github.com/nextcloud/calendar/commit/13873b5309700866ca89572f7e44cd9a200a0c40))\n* **l10n:** Update translations from Transifex ([c65646f](https://github.com/nextcloud/calendar/commit/c65646fad2c75b15feb8c3c00b1a1d9e82e445f0))\n* **l10n:** Update translations from Transifex ([d52456e](https://github.com/nextcloud/calendar/commit/d52456ed8db71eabfc5e726a351fa976bdf73875))\n* **l10n:** Update translations from Transifex ([2fe1f26](https://github.com/nextcloud/calendar/commit/2fe1f26fa9e76176b7f583dc0853a8e7b0294113))\n* **l10n:** Update translations from Transifex ([bbe8a1f](https://github.com/nextcloud/calendar/commit/bbe8a1ffd1451c6e905fec7eb6f84465e8efafc2))\n* **l10n:** Update translations from Transifex ([e08c606](https://github.com/nextcloud/calendar/commit/e08c6067ec70833f5036a35c9a4a92906af3d5c5))\n* **l10n:** Update translations from Transifex ([ce2e769](https://github.com/nextcloud/calendar/commit/ce2e769720fbc60ff6906e347284b4f9e820eda8))\n* **l10n:** Update translations from Transifex ([7e888ea](https://github.com/nextcloud/calendar/commit/7e888ea116a77be7a0de9e672cd139fcd1c7bc7a))\n* **l10n:** Update translations from Transifex ([dd9240d](https://github.com/nextcloud/calendar/commit/dd9240d8417da1d1763e37ce092e77ad8444b7f5))\n* **l10n:** Update translations from Transifex ([bf95ff9](https://github.com/nextcloud/calendar/commit/bf95ff91f6885058bd26095ae140afcb6b6666cd))\n* **l10n:** Update translations from Transifex ([038d289](https://github.com/nextcloud/calendar/commit/038d289432da61c0455f589928702bb0a4b3cb68))\n* **l10n:** Update translations from Transifex ([6c60fc2](https://github.com/nextcloud/calendar/commit/6c60fc25c03188cc71e9f216e1f8866af90d2265))\n* **l10n:** Update translations from Transifex ([21ab013](https://github.com/nextcloud/calendar/commit/21ab013839ab0e8fb32e3cf46cbe0b36628a70cc))\n* **l10n:** Update translations from Transifex ([8b61a90](https://github.com/nextcloud/calendar/commit/8b61a9019f37d18c68c345732fec9b3ef766c41f))\n* **l10n:** Update translations from Transifex ([5131824](https://github.com/nextcloud/calendar/commit/51318241487dd998d8bebab0758fb2f1f115e814))\n* **l10n:** Update translations from Transifex ([cdf69eb](https://github.com/nextcloud/calendar/commit/cdf69ebfbdc0dd460126765e62eb590b6039ba6d))\n* **l10n:** Update translations from Transifex ([68f22d6](https://github.com/nextcloud/calendar/commit/68f22d6e99306ea36a5dd0c79c506cc5ae405b39))\n* **l10n:** Update translations from Transifex ([e748d68](https://github.com/nextcloud/calendar/commit/e748d6871dc342a9e412efda14cb048c0bb61e80))\n* **l10n:** Update translations from Transifex ([0017990](https://github.com/nextcloud/calendar/commit/001799065c0a61e0314909d6892869c94edff89d))\n* **l10n:** Update translations from Transifex ([7221998](https://github.com/nextcloud/calendar/commit/7221998ed602e87a5f569717d0c5210cb98fd104))\n* **l10n:** Update translations from Transifex ([adf8b3d](https://github.com/nextcloud/calendar/commit/adf8b3d37321380df92d7e882cc63a246216a0af))\n* **l10n:** Update translations from Transifex ([7ceaf02](https://github.com/nextcloud/calendar/commit/7ceaf02a84f47ad677f1e2dfd742a43c6cfb0a86))\n* **l10n:** Update translations from Transifex ([118a533](https://github.com/nextcloud/calendar/commit/118a53334a571f1d207d2afc2b711013eda9b8ac))\n* **l10n:** Update translations from Transifex ([6deba90](https://github.com/nextcloud/calendar/commit/6deba90adb69830708fb0b7da88e2791c24677fc))\n* **l10n:** Update translations from Transifex ([390732b](https://github.com/nextcloud/calendar/commit/390732ba2c4953c4641d894485457afa42bd6285))\n* **l10n:** Update translations from Transifex ([dd25144](https://github.com/nextcloud/calendar/commit/dd2514405751839fa15fe27867147d8f06d02aa6))\n* **l10n:** Update translations from Transifex ([d8cdb67](https://github.com/nextcloud/calendar/commit/d8cdb6720c45825fc3f8746e54afdc5ebb1cb9be))\n* **l10n:** Update translations from Transifex ([246da20](https://github.com/nextcloud/calendar/commit/246da209af023553b10038f38a263d706e439fe7))\n* **l10n:** Update translations from Transifex ([cb3f98a](https://github.com/nextcloud/calendar/commit/cb3f98a63eca5c296e73182b72a909e514d3fa4c))\n* **l10n:** Update translations from Transifex ([c7094f4](https://github.com/nextcloud/calendar/commit/c7094f4fb1ac00c62ae2cf19c76482a1d0c1260b))\n* **l10n:** Update translations from Transifex ([ec156ac](https://github.com/nextcloud/calendar/commit/ec156acd33b7005c32d801360f4d766d61a24634))\n* **l10n:** Update translations from Transifex ([05a95bf](https://github.com/nextcloud/calendar/commit/05a95bf6f38980f7ecccc1669a21447c057cce99))\n* **l10n:** Update translations from Transifex ([9aa090e](https://github.com/nextcloud/calendar/commit/9aa090ec8a8f2df2bebd1c02471ca33870827bae))\n* **l10n:** Update translations from Transifex ([a609e11](https://github.com/nextcloud/calendar/commit/a609e11654d44ad086e49ea633b3341e0784b6d7))\n* **l10n:** Update translations from Transifex ([32f5939](https://github.com/nextcloud/calendar/commit/32f59391a58d212c53a0f7c863f58fe1a2c7953c))\n* **l10n:** Update translations from Transifex ([b96c624](https://github.com/nextcloud/calendar/commit/b96c62470a31041ce3c44547fc85ec7552925150))\n* **l10n:** Update translations from Transifex ([4560fed](https://github.com/nextcloud/calendar/commit/4560fed0d9b6a782697e33e6595a6100043bd895))\n* **l10n:** Update translations from Transifex ([4c9da70](https://github.com/nextcloud/calendar/commit/4c9da7005c4b1b42e328ac8253a1640bcc0475a9))\n* **l10n:** Update translations from Transifex ([5838623](https://github.com/nextcloud/calendar/commit/5838623e84f1aceb0d2e23c812de05f0992b1deb))\n* **l10n:** Update translations from Transifex ([27a64ff](https://github.com/nextcloud/calendar/commit/27a64ffeb63c9d27d36fec63dacf54f3f2d155a6))\n* **l10n:** Update translations from Transifex ([9d479ee](https://github.com/nextcloud/calendar/commit/9d479ee695a0d54b973b027f2000a1bb8c43872d))\n* **l10n:** Update translations from Transifex ([9eaefa4](https://github.com/nextcloud/calendar/commit/9eaefa48cfce0ef35414e6993c936c690e2a9a0f))\n* **l10n:** Update translations from Transifex ([7f5c626](https://github.com/nextcloud/calendar/commit/7f5c626f615e0e4eee5baf8d82b0e564bb3d4b72))\n* **l10n:** Update translations from Transifex ([501d3e7](https://github.com/nextcloud/calendar/commit/501d3e73c7d6065db3687ffe3f9b2bdf13025440))\n* **l10n:** Update translations from Transifex ([937a88f](https://github.com/nextcloud/calendar/commit/937a88f58183b67e235bd3bc24fa3b51c384074a))\n* **l10n:** Update translations from Transifex ([7e0c599](https://github.com/nextcloud/calendar/commit/7e0c599ff51142a96f9cc5b57e638c3025c813cc))\n* **l10n:** Update translations from Transifex ([bb5ebb2](https://github.com/nextcloud/calendar/commit/bb5ebb220b2ac0c5d90a8b6dd2d524bb159cc181))\n* **l10n:** Update translations from Transifex ([e492429](https://github.com/nextcloud/calendar/commit/e492429c231f84b781e28bc235068d0e066f3068))\n* **l10n:** Update translations from Transifex ([51c2440](https://github.com/nextcloud/calendar/commit/51c24407aeb40315db65b83844ec421baa2f2886))\n* **l10n:** Update translations from Transifex ([3c2de9f](https://github.com/nextcloud/calendar/commit/3c2de9f26604dbd25e8ced3974b201cda87a1ac3))\n* **l10n:** Update translations from Transifex ([7f50efa](https://github.com/nextcloud/calendar/commit/7f50efa15fda91d0dea4b92227ec6507da2ba20c))\n* **l10n:** Update translations from Transifex ([d94a68c](https://github.com/nextcloud/calendar/commit/d94a68c561bba7136dcf3075e5cb1f51b11c8aaf))\n* **l10n:** Update translations from Transifex ([f28ff29](https://github.com/nextcloud/calendar/commit/f28ff29ade8b034d0685aa8f2b4ff11b9dd4b4eb))\n* **l10n:** Update translations from Transifex ([466d3a1](https://github.com/nextcloud/calendar/commit/466d3a1ef7d5078796662abc1adb326d5e7cd248))\n* **l10n:** Update translations from Transifex ([52da6f5](https://github.com/nextcloud/calendar/commit/52da6f54ed7f9c5948596b3d4c7ad7c4744de9eb))\n* **l10n:** Update translations from Transifex ([0e1148a](https://github.com/nextcloud/calendar/commit/0e1148a6f849c0a89d20e7a1d04c5e9b11d915bf))\n* **l10n:** Update translations from Transifex ([b3f7447](https://github.com/nextcloud/calendar/commit/b3f74476d3db842750a3b2afdaa5ba76860cc34f))\n* **l10n:** Update translations from Transifex ([228af4f](https://github.com/nextcloud/calendar/commit/228af4f0b5039da3c807bf38f26e25cef40cda77))\n* **l10n:** Update translations from Transifex ([5d94370](https://github.com/nextcloud/calendar/commit/5d9437005f6cfc9edf25c0f3ff8f4d862117e61a))\n* **l10n:** Update translations from Transifex ([4f5436a](https://github.com/nextcloud/calendar/commit/4f5436ad28a200a624f5f39d7cd24e94ffc5fdf1))\n* **l10n:** Update translations from Transifex ([8454dd9](https://github.com/nextcloud/calendar/commit/8454dd9a324380d5a679420f5e42e3b77e025c1d))\n* **l10n:** Update translations from Transifex ([2fdb835](https://github.com/nextcloud/calendar/commit/2fdb83525fc02989c9191ec677ca9a80a5543c9c))\n* **l10n:** Update translations from Transifex ([f9ca705](https://github.com/nextcloud/calendar/commit/f9ca705c85b0c11fc7be2588b803e70dccf55882))\n* **l10n:** Update translations from Transifex ([41d1c78](https://github.com/nextcloud/calendar/commit/41d1c78f7a56542a32702904280fe4980291c7e8))\n* **l10n:** Update translations from Transifex ([912e894](https://github.com/nextcloud/calendar/commit/912e894a1e463f419ada3a98205b4104b612f13f))\n* **l10n:** Update translations from Transifex ([3ebadef](https://github.com/nextcloud/calendar/commit/3ebadef7f9dcabaf6b22465236f1614a96d010b3))\n* **l10n:** Update translations from Transifex ([e687aeb](https://github.com/nextcloud/calendar/commit/e687aebfacfda525cbbbd57b37af77a5d1e78f9f))\n* **l10n:** Update translations from Transifex ([7edf4e9](https://github.com/nextcloud/calendar/commit/7edf4e9304d665120f4059a2dc4b637cb5d4c965))\n* **l10n:** Update translations from Transifex ([ee6160a](https://github.com/nextcloud/calendar/commit/ee6160a0832136ea55bc3049f43ab24cad6e6415))\n* **l10n:** Update translations from Transifex ([b177bcb](https://github.com/nextcloud/calendar/commit/b177bcb5244bd1f7ac36fa78b289070fa1564874))\n* **l10n:** Update translations from Transifex ([48eab5d](https://github.com/nextcloud/calendar/commit/48eab5d3bdafde5080eb936f93762385b600b84d))\n* **l10n:** Update translations from Transifex ([e6bf463](https://github.com/nextcloud/calendar/commit/e6bf463daa8aacdfa6a9d14f438e82d035e89fd4))\n* **l10n:** Update translations from Transifex ([62a6f8c](https://github.com/nextcloud/calendar/commit/62a6f8c8a3ad9b8253b188de6600f36a75090d70))\n* **l10n:** Update translations from Transifex ([bf224ab](https://github.com/nextcloud/calendar/commit/bf224ab2a621c05297b28c188f6b5477721b0329))\n* **l10n:** Update translations from Transifex ([64b3727](https://github.com/nextcloud/calendar/commit/64b3727fc1aa0d8710e19b246d6736b9f5a738fb))\n* **l10n:** Update translations from Transifex ([7bfccbf](https://github.com/nextcloud/calendar/commit/7bfccbf6a91966dc746d0ab29b2d550205897192))\n* **l10n:** Update translations from Transifex ([9eae23c](https://github.com/nextcloud/calendar/commit/9eae23ce4243b7038646bbcfecf343e918131ee9))\n* **l10n:** Update translations from Transifex ([0a5d661](https://github.com/nextcloud/calendar/commit/0a5d66166c47243df874e88982797e212f88f42d))\n* **l10n:** Update translations from Transifex ([d306098](https://github.com/nextcloud/calendar/commit/d306098089e3aaa356847e76c4f0ab99f271496f))\n* **l10n:** Update translations from Transifex ([029feb4](https://github.com/nextcloud/calendar/commit/029feb46479469eb23b6732e1bf7c71e6b668662))\n* **l10n:** Update translations from Transifex ([bae365b](https://github.com/nextcloud/calendar/commit/bae365b4c9e40458ea320cfab4f5946c8bf08dc7))\n* **l10n:** Update translations from Transifex ([b3342ae](https://github.com/nextcloud/calendar/commit/b3342ae74761908674cb0a1e0291cec12e5fce44))\n* **l10n:** Update translations from Transifex ([b3432bd](https://github.com/nextcloud/calendar/commit/b3432bdd8fcc350d2571da0305366cce33d19187))\n* **l10n:** Update translations from Transifex ([6d4db59](https://github.com/nextcloud/calendar/commit/6d4db59a1ef61e0f9d0099918755dfbe98d6cecb))\n* **l10n:** Update translations from Transifex ([f60838b](https://github.com/nextcloud/calendar/commit/f60838b62122b5da83d39668c052d3a65aa96ced))\n* **l10n:** Update translations from Transifex ([0cb5443](https://github.com/nextcloud/calendar/commit/0cb5443d559f8a559fa05233be6071bc9fb863f5))\n* **l10n:** Update translations from Transifex ([4c3dd76](https://github.com/nextcloud/calendar/commit/4c3dd765011ef8329610e6b2920bf9f46780000a))\n* **l10n:** Update translations from Transifex ([783cd7e](https://github.com/nextcloud/calendar/commit/783cd7e2b8b245e49c3d060f6ab564a3bd674dea))\n* **l10n:** Update translations from Transifex ([1680007](https://github.com/nextcloud/calendar/commit/168000772d7b68f36a4f178b64e2f17f3be184ec))\n* **l10n:** Update translations from Transifex ([70122f6](https://github.com/nextcloud/calendar/commit/70122f62727eb5fd419cdb37fb42bf51f43c7e51))\n* **l10n:** Update translations from Transifex ([9bae64b](https://github.com/nextcloud/calendar/commit/9bae64bfa71eb5c73ed4f0589d8f29797ebb3d62))\n* **l10n:** Update translations from Transifex ([b04984a](https://github.com/nextcloud/calendar/commit/b04984a5dc9c8268713a2b53e7f23f9937c13f55))\n* **l10n:** Update translations from Transifex ([eda1469](https://github.com/nextcloud/calendar/commit/eda1469c0902b48c707bae4773d1309bfe997112))\n* **l10n:** Update translations from Transifex ([3d0f2b1](https://github.com/nextcloud/calendar/commit/3d0f2b10dc05993b7a96fb13c8d8361c0143a8ac))\n* **l10n:** Update translations from Transifex ([d318abb](https://github.com/nextcloud/calendar/commit/d318abb59b8ff3c9a544d84dc94883b992f0d2f0))\n* **l10n:** Update translations from Transifex ([a1fd305](https://github.com/nextcloud/calendar/commit/a1fd305bf5d4740e07e6ab78858e36cb66cb4448))\n* **l10n:** Update translations from Transifex ([ae76972](https://github.com/nextcloud/calendar/commit/ae76972a021e4ee7b728c3b6fd3c00bb7d7ed5dd))\n* **l10n:** Update translations from Transifex ([a4ac133](https://github.com/nextcloud/calendar/commit/a4ac1334efb6ce74c81d13b2c4989d9d6391c5d9))\n* **l10n:** Update translations from Transifex ([5b1dd8c](https://github.com/nextcloud/calendar/commit/5b1dd8c457103d8535984b940edbd76fefef2302))\n* **l10n:** Update translations from Transifex ([bc84c34](https://github.com/nextcloud/calendar/commit/bc84c34492c90a08c63c55ecc25a19206e74a0e0))\n* **l10n:** Update translations from Transifex ([0c622ae](https://github.com/nextcloud/calendar/commit/0c622aea17209b04734313fca72309ab7c5d50c3))\n* **l10n:** Update translations from Transifex ([0147d5b](https://github.com/nextcloud/calendar/commit/0147d5b8305c5e8e100376fa3613d147b5a5b53c))\n* **l10n:** Update translations from Transifex ([58cdcf7](https://github.com/nextcloud/calendar/commit/58cdcf77b96c1fa53fab73e125ed310091e38194))\n* **l10n:** Update translations from Transifex ([c36b7ee](https://github.com/nextcloud/calendar/commit/c36b7eeae0a7179d04de43d89c4d7972c6be1cc5))\n* **l10n:** Update translations from Transifex ([28748f3](https://github.com/nextcloud/calendar/commit/28748f33a837f51200dc1eac406c947fb8492b84))\n* **l10n:** Update translations from Transifex ([799f89a](https://github.com/nextcloud/calendar/commit/799f89a9e09f9da5a9cfd69b7865e8ac90f0e52e))\n* **l10n:** Update translations from Transifex ([cfc6ad0](https://github.com/nextcloud/calendar/commit/cfc6ad0673b948f30e7d355c778194c17fb1c510))\n* **l10n:** Update translations from Transifex ([cc45463](https://github.com/nextcloud/calendar/commit/cc4546302b28a1c94e4998cf55db301087bdf463))\n* **l10n:** Update translations from Transifex ([5cbeda9](https://github.com/nextcloud/calendar/commit/5cbeda9562c79bc32184302f2d5f5393f66dc30e))\n* **l10n:** Update translations from Transifex ([2766e30](https://github.com/nextcloud/calendar/commit/2766e308f2a28d3f67eb59e70d4d8e8e80860e44))\n* **l10n:** Update translations from Transifex ([a3d60b6](https://github.com/nextcloud/calendar/commit/a3d60b65555cbb2e26265e22bbf394860f68bc3f))\n* **l10n:** Update translations from Transifex ([7f7f74e](https://github.com/nextcloud/calendar/commit/7f7f74e347445f5a7057d8c34e0cc9b5461cbfb0))\n* **l10n:** Update translations from Transifex ([12dfadb](https://github.com/nextcloud/calendar/commit/12dfadbc45484f12832b52842867dd7a93c22a97))\n* **l10n:** Update translations from Transifex ([fb94886](https://github.com/nextcloud/calendar/commit/fb948864aa30357ff8c66c3ed889bada41723103))\n* **l10n:** Update translations from Transifex ([ff56450](https://github.com/nextcloud/calendar/commit/ff564500d395cdb29e7e8721f495a12ee4138a0a))\n* **l10n:** Update translations from Transifex ([d45f208](https://github.com/nextcloud/calendar/commit/d45f208e62883192ae61a76037509ce3f157818b))\n* **l10n:** Update translations from Transifex ([7fd2075](https://github.com/nextcloud/calendar/commit/7fd2075e7466eec31f2be028968d4eab52e555b2))\n* **l10n:** Update translations from Transifex ([5050561](https://github.com/nextcloud/calendar/commit/505056158f4a616b27cbc338a5ec0784e7cc5c15))\n* **l10n:** Update translations from Transifex ([b9dcb41](https://github.com/nextcloud/calendar/commit/b9dcb41a05c1ea8919ba564a1ede53e486310419))\n* **l10n:** Update translations from Transifex ([4a4fba8](https://github.com/nextcloud/calendar/commit/4a4fba802017064f9570603643856be47886bab3))\n* **l10n:** Update translations from Transifex ([2891f2b](https://github.com/nextcloud/calendar/commit/2891f2bca5425fecb5f9f4de8625d8e508734a94))\n* **l10n:** Update translations from Transifex ([edeb60b](https://github.com/nextcloud/calendar/commit/edeb60b8fad0237e8f0940b7d3310e0fe2cac6cc))\n* **l10n:** Update translations from Transifex ([94ffb93](https://github.com/nextcloud/calendar/commit/94ffb935caa7bdc4f594604b06c89f28ba1ac01e))\n* **l10n:** Update translations from Transifex ([9d318dd](https://github.com/nextcloud/calendar/commit/9d318dd098285c23702e59fcf99b20fa48ae6c87))\n* **l10n:** Update translations from Transifex ([ffe24c3](https://github.com/nextcloud/calendar/commit/ffe24c33cc57b91d5cf17cee83535c1f4503b7a3))\n* **l10n:** Update translations from Transifex ([31ce986](https://github.com/nextcloud/calendar/commit/31ce9865e630bb5bec6dff81c540674acd9aa3c6))\n* **l10n:** Update translations from Transifex ([babb6fa](https://github.com/nextcloud/calendar/commit/babb6fa7b3703a01bf98f23eacc60151d1f5e7c7))\n* **l10n:** Update translations from Transifex ([4e13554](https://github.com/nextcloud/calendar/commit/4e13554342fbfde3201fc98408595cb3ed7bfe44))\n* **l10n:** Update translations from Transifex ([3c3b022](https://github.com/nextcloud/calendar/commit/3c3b022a163413c2a275bab1deea6cd7c0ac775c))\n* **l10n:** Update translations from Transifex ([ee39d94](https://github.com/nextcloud/calendar/commit/ee39d94082998abb6bb2a8a5d0d7e7da8670c44e))\n* **l10n:** Update translations from Transifex ([f952872](https://github.com/nextcloud/calendar/commit/f952872015fcd57f4d6a192b3609d5bc4904f6a1))\n* **l10n:** Update translations from Transifex ([f653814](https://github.com/nextcloud/calendar/commit/f653814ddb0fc5611a0e608aad08c2ca97b8b57c))\n* **l10n:** Update translations from Transifex ([6e33b26](https://github.com/nextcloud/calendar/commit/6e33b2646f20d2b47dfb27941c1de91448330658))\n* **l10n:** Update translations from Transifex ([e4a1d48](https://github.com/nextcloud/calendar/commit/e4a1d4842fb6a4f0e1070d7f34f0a0ba87cd5c33))\n* **l10n:** Update translations from Transifex ([0441999](https://github.com/nextcloud/calendar/commit/0441999f821c210189442e635f0ee592a716001b))\n* **l10n:** Update translations from Transifex ([cbc2a07](https://github.com/nextcloud/calendar/commit/cbc2a073ca2d4d41ce78c3a4ac4300815f7ada1d))\n* **l10n:** Update translations from Transifex ([9cd4b3d](https://github.com/nextcloud/calendar/commit/9cd4b3d41b6ae90291b7616ae554f660bba6e493))\n* **l10n:** Update translations from Transifex ([5f56c03](https://github.com/nextcloud/calendar/commit/5f56c031378a58da384d27c7351a950f6b53d9a1))\n* **l10n:** Update translations from Transifex ([1a18a06](https://github.com/nextcloud/calendar/commit/1a18a06db9c507c0d242c95a05d94476404f8e64))\n* **l10n:** Update translations from Transifex ([16bbc54](https://github.com/nextcloud/calendar/commit/16bbc5460ce7987911a3c27929770705530ffe77))\n* **l10n:** Update translations from Transifex ([0438b48](https://github.com/nextcloud/calendar/commit/0438b48565aa6119e5290f78cad85651f53776e1))\n* **l10n:** Update translations from Transifex ([64e478e](https://github.com/nextcloud/calendar/commit/64e478e145b827d8b4ee01628def8859677cb536))\n* **l10n:** Update translations from Transifex ([94157dc](https://github.com/nextcloud/calendar/commit/94157dc948071f6e8a052eb0b91c324abb51f2f6))\n* **l10n:** Update translations from Transifex ([3034699](https://github.com/nextcloud/calendar/commit/303469935faf1c3cd8ff15e5428791b59ec2152b))\n* **l10n:** Update translations from Transifex ([15c1542](https://github.com/nextcloud/calendar/commit/15c154208de1d83d7020a8526e90577a7f87bcac))\n* **l10n:** Update translations from Transifex ([a3494ac](https://github.com/nextcloud/calendar/commit/a3494ac69e25241872e5844fb996a7d25e4196fc))\n* **l10n:** Update translations from Transifex ([fb2db82](https://github.com/nextcloud/calendar/commit/fb2db8282549127c8fae202fcca3a6d1e659349d))\n* **l10n:** Update translations from Transifex ([833ed68](https://github.com/nextcloud/calendar/commit/833ed68680946d5481ec47184c6672a1490d29aa))\n* **l10n:** Update translations from Transifex ([f0bc20e](https://github.com/nextcloud/calendar/commit/f0bc20eb0bf361e21f2aa350da64637ec0705a4c))\n* **l10n:** Update translations from Transifex ([42fb748](https://github.com/nextcloud/calendar/commit/42fb7489653ddbb82f3a898f28e773fc35b992a6))\n* **l10n:** Update translations from Transifex ([ee5cbdd](https://github.com/nextcloud/calendar/commit/ee5cbddc547cb23d6be1c4409cf273e942f04965))\n* **l10n:** Update translations from Transifex ([728fb5e](https://github.com/nextcloud/calendar/commit/728fb5e2f907bdebf089c80859afdd7ae2128cb4))\n* **l10n:** Update translations from Transifex ([94f3a9a](https://github.com/nextcloud/calendar/commit/94f3a9afc26f57678b420ae083477b173b6cdb70))\n* **l10n:** Update translations from Transifex ([7a889c9](https://github.com/nextcloud/calendar/commit/7a889c948f3a83e84f25f5b6907ff019d054c6fc))\n* **l10n:** Update translations from Transifex ([6277baf](https://github.com/nextcloud/calendar/commit/6277baf13f06525376083b8a7c9becebab6ad012))\n* **l10n:** Update translations from Transifex ([1625208](https://github.com/nextcloud/calendar/commit/16252088e29ce3f1335a81f5d373c8bfdb53e65f))\n* **l10n:** Update translations from Transifex ([358cf00](https://github.com/nextcloud/calendar/commit/358cf004862f4789ca39cb315f57c5f8ec676ef1))\n* **l10n:** Update translations from Transifex ([d8e50e0](https://github.com/nextcloud/calendar/commit/d8e50e0c76ad1f81ba16e8bdb176b7f2ae5f3c70))\n* **l10n:** Update translations from Transifex ([7c9387a](https://github.com/nextcloud/calendar/commit/7c9387a2e8629c8e299765f8f2a24b98b7eab1b5))\n* **l10n:** Update translations from Transifex ([42ea5a5](https://github.com/nextcloud/calendar/commit/42ea5a57b2be2243bca27c0d46c1a3c3c138a46f))\n* **l10n:** Update translations from Transifex ([64a2cf1](https://github.com/nextcloud/calendar/commit/64a2cf14a0e08b6383578362c40794049c91855a))\n* **l10n:** Update translations from Transifex ([84e1b09](https://github.com/nextcloud/calendar/commit/84e1b0912bd3ec8e5bd9678b066cfa29138d29f0))\n* **l10n:** Update translations from Transifex ([634b6a6](https://github.com/nextcloud/calendar/commit/634b6a6f6aa6e5753d7a3ed67a1a86c62d582a11))\n* **l10n:** Update translations from Transifex ([34b3d58](https://github.com/nextcloud/calendar/commit/34b3d589a5c658f6d1298d02434c7e30215d9b01))\n* **l10n:** Update translations from Transifex ([97a73bf](https://github.com/nextcloud/calendar/commit/97a73bffc5780e4cd07a1604e355d264f47d1dda))\n* **l10n:** Update translations from Transifex ([f33c90f](https://github.com/nextcloud/calendar/commit/f33c90f13f7a929e93ef91fc5945406df0453c40))\n* **l10n:** Update translations from Transifex ([9198fbd](https://github.com/nextcloud/calendar/commit/9198fbd0b9c9aaec02bd19cf4f632d4e57c34a5f))\n* **l10n:** Update translations from Transifex ([965ee9e](https://github.com/nextcloud/calendar/commit/965ee9e339784ed2ca08b53cbcd4301a8863c105))\n* **l10n:** Update translations from Transifex ([43f427a](https://github.com/nextcloud/calendar/commit/43f427a4e2a227766ac6d191baca42077083dd97))\n* **l10n:** Update translations from Transifex ([657f9c4](https://github.com/nextcloud/calendar/commit/657f9c42e5c3a4b65968d74fe126d17bc5f8a3df))\n* **l10n:** Update translations from Transifex ([d19ed5d](https://github.com/nextcloud/calendar/commit/d19ed5d78894f8a851c852f134602b5793b2c87c))\n* **l10n:** Update translations from Transifex ([6c37b2d](https://github.com/nextcloud/calendar/commit/6c37b2d240202e1b03aeaef8bed212b134fd321b))\n* **l10n:** Update translations from Transifex ([b224dab](https://github.com/nextcloud/calendar/commit/b224dab8abcdd9b9f1b4ea407e11796270cfbd1a))\n* **l10n:** Update translations from Transifex ([7499428](https://github.com/nextcloud/calendar/commit/749942815bf3e47f34f68c553b92c98ca4af9284))\n* **l10n:** Update translations from Transifex ([d719b79](https://github.com/nextcloud/calendar/commit/d719b79b0d83d15e00f400b837e5e77159dbbaea))\n* **l10n:** Update translations from Transifex ([e43a3f8](https://github.com/nextcloud/calendar/commit/e43a3f8a64ceac0d2a0d808a74ec17bd162ed740))\n* **l10n:** Update translations from Transifex ([18c2a61](https://github.com/nextcloud/calendar/commit/18c2a61f27c1ceae15f10ebae3f662d2b166f3f1))\n* **l10n:** Update translations from Transifex ([cc758db](https://github.com/nextcloud/calendar/commit/cc758dbb9f7b54df33eed881ec9b92ccd212633b))\n* **l10n:** Update translations from Transifex ([eefcbc2](https://github.com/nextcloud/calendar/commit/eefcbc24d71ebc3c524dc7376d53ce3efc8dbce4))\n* **l10n:** Update translations from Transifex ([e33da56](https://github.com/nextcloud/calendar/commit/e33da56c108e36389788f196e21a832047ced8c4))\n* **l10n:** Update translations from Transifex ([1f49d01](https://github.com/nextcloud/calendar/commit/1f49d01a58ae7548b3decd9aabe29f738dd3db6f))\n* **l10n:** Update translations from Transifex ([597fc06](https://github.com/nextcloud/calendar/commit/597fc06995b054e6975242e989bc729509e252c5))\n* **l10n:** Update translations from Transifex ([c9dc23d](https://github.com/nextcloud/calendar/commit/c9dc23d175dc1c8475b5c7a40ed0a0e86c55a9e9))\n* **l10n:** Update translations from Transifex ([969a8d8](https://github.com/nextcloud/calendar/commit/969a8d80c141eb39ef6bf44c6456ac98e0076d4b))\n* **lint-php-cs:** use minimum available php version ([906868c](https://github.com/nextcloud/calendar/commit/906868c45fa9882626d4406bedb345625c2284db))\n* lint:fix, disable adding param docs ([a3846f9](https://github.com/nextcloud/calendar/commit/a3846f9d627aa22fe58b65d61beb11c9935f9e5c))\n* make absolute URL generation more robust ([c42c8f7](https://github.com/nextcloud/calendar/commit/c42c8f79de1ce3794e65107470501bcde25a0da0))\n* make delegator event organizer ([60019a2](https://github.com/nextcloud/calendar/commit/60019a26e92d7d93ddfdb5af101a9696e3203e55))\n* Make the wording \"Selected slot\" translatable ([889f09d](https://github.com/nextcloud/calendar/commit/889f09db012e9b4d4c2374dee8423ca10fec5b3e))\n* margin when dragging on selected events ([ae7275f](https://github.com/nextcloud/calendar/commit/ae7275f830d677615f39152f0221da6e6b59346b))\n* match main route more strictly to prevent conflicts in the contacts menu ([2f12115](https://github.com/nextcloud/calendar/commit/2f12115b04197400900fddb6e16521980d5c3e03))\n* meeting proposal calendar blockers ([ccbeef2](https://github.com/nextcloud/calendar/commit/ccbeef2a0aed72004eae8ef512b74829ea9ff394))\n* meeting proposal conversion error ([311d792](https://github.com/nextcloud/calendar/commit/311d792d065e3f1e74749d80218695a6dd4cb02d))\n* meeting proposal freeze and error ([13661ca](https://github.com/nextcloud/calendar/commit/13661ca360a88f1d5592ddae53aaa9566d4a2eff))\n* meeting proposal public view position ([0b6b246](https://github.com/nextcloud/calendar/commit/0b6b246ed08a5e9fb8dd900bf1e9f0f0bf7480a9))\n* meeting proposal system mailer from address ([9bb2776](https://github.com/nextcloud/calendar/commit/9bb27761b15dbaa24a7674b9203331a1c74927cf))\n* Meeting proposal time zone offset ([1ff6057](https://github.com/nextcloud/calendar/commit/1ff60579d85eeb6270a39cf4238bd2b63f018f87))\n* meeting proposal url and errors handling ([6fdbab7](https://github.com/nextcloud/calendar/commit/6fdbab73ac8d0e6e84276985869d0ce80c556292))\n* meeting proposals minor ui fixes ([ca9027c](https://github.com/nextcloud/calendar/commit/ca9027c72eb67e619c843a5b37ba44ca39bfd63a))\n* meeting proposals participant no reponse ([617c607](https://github.com/nextcloud/calendar/commit/617c607da9ab2b83f3a9a3464f03df6d0a03f66b))\n* merge global full page editor styles into the SFC ([acf2b6a](https://github.com/nextcloud/calendar/commit/acf2b6ab10f136612bcd50d0189c72d3a1e2a440))\n* missed entry point during vue 3 migration ([674f876](https://github.com/nextcloud/calendar/commit/674f876d4c0c9857adc86f5d4b383c10a7108785))\n* **models:** markRaw calendar-js objects in Pinia state ([45a6863](https://github.com/nextcloud/calendar/commit/45a6863e704d657dfb2ef0315eadbff415066e8a))\n* modified dates logic in ProposalDateCollection ([e5a1e27](https://github.com/nextcloud/calendar/commit/e5a1e2700e392a643a0d3a18f90940ad21aeaab2))\n* monthly recurrance type and bymonthday selection ([7afb1b4](https://github.com/nextcloud/calendar/commit/7afb1b4091a32804f233d226c3489e5d9630639c))\n* move 'Respond' button to top of message template ([f57c708](https://github.com/nextcloud/calendar/commit/f57c70826262c0d160e35bca214507da6348fde6))\n* NcSelect inner text overflowing in EditFull ([#8056](https://github.com/nextcloud/calendar/issues/8056)) ([4c9fe07](https://github.com/nextcloud/calendar/commit/4c9fe0728f6dfe853729bba5b98230a23b8671ef))\n* new event transparancy ([1eb5c1f](https://github.com/nextcloud/calendar/commit/1eb5c1f4ffcb35040277778ccd7c8494d9bf6d3d))\n* node test ([d06ae0f](https://github.com/nextcloud/calendar/commit/d06ae0f785aa1a0bece1272f3de0ea0216e3e15e))\n* **OCP:** Adjust public API method name ([7d9638f](https://github.com/nextcloud/calendar/commit/7d9638f06aeb675287301f45274100320487a0b7))\n* opacity of past events and past/next month dates ([9fe1c36](https://github.com/nextcloud/calendar/commit/9fe1c367015b50f087774623e3fd851ea0bcad2b))\n* order all-day events by name ([ca8cb66](https://github.com/nextcloud/calendar/commit/ca8cb660d6f7b1b8d0209185090e8a9c5d67f541))\n* **OrganizerNoEmailError:** update styling ([dbc6229](https://github.com/nextcloud/calendar/commit/dbc62297e00e7b327beecbd300c6db1733bdee53))\n* prevent event date change glitch ([fc0a0a4](https://github.com/nextcloud/calendar/commit/fc0a0a4306cb656d5cad776ba7ef96a42e122504))\n* **PropertyTitleTimePicker:** debounce date time picker ([9f41604](https://github.com/nextcloud/calendar/commit/9f41604df3b5ea75c5237913cf2276c272b538de))\n* **PropertyTitleTimePicker:** improve styling for local time subtitle ([#7721](https://github.com/nextcloud/calendar/issues/7721)) ([90f5de1](https://github.com/nextcloud/calendar/commit/90f5de1cce4f0f3e5ce637d2f8d670c0ab418bb2))\n* proposal email time localization ([b00b626](https://github.com/nextcloud/calendar/commit/b00b62603be15b57bfe2c832e7bfc40ec355b97c))\n* proposal links ([7da31f1](https://github.com/nextcloud/calendar/commit/7da31f1f8727bf63185eb02bf4868c37f616ae3c))\n* **proposal:** notify invited participants when a proposal is converted to an event ([65c2741](https://github.com/nextcloud/calendar/commit/65c27410ce2c97723dd0bab613aa7d0ccb837106))\n* **ProposalService:** proposal creation ([86de53e](https://github.com/nextcloud/calendar/commit/86de53e203853be02a63f292c97c815bebb636f4))\n* **proposals:** localize calendar overview ([d2269a1](https://github.com/nextcloud/calendar/commit/d2269a17c96ee1a000501598d7a327f34db2b7d9))\n* psalm error for ci ([8b8ba63](https://github.com/nextcloud/calendar/commit/8b8ba6390a27f735d3aae5d0601806398c33cbc8))\n* **public-calendar:** remove toggle functionality from public view ([8fb5f97](https://github.com/nextcloud/calendar/commit/8fb5f9743f507f5d8679e77571fd3268e472945f))\n* put default calendar selector back ([0956818](https://github.com/nextcloud/calendar/commit/09568188916955ea6853dec1d9e38d8d63eedabf))\n* redirect sidebar editor route for activity deep links ([bdd003c](https://github.com/nextcloud/calendar/commit/bdd003c54ba6eb17b9c6dffe2166c367d33bd8e3))\n* reduce background sync interval a bit ([90b5a17](https://github.com/nextcloud/calendar/commit/90b5a177d841eba0b6b418599fb629f813eedac5))\n* reduce long press event delay to 500 ms ([0473bd3](https://github.com/nextcloud/calendar/commit/0473bd3164b5549baf56c12bb4b7392ba227740a))\n* Release automation ([6a941c9](https://github.com/nextcloud/calendar/commit/6a941c96b41e3d2345eb28d53873b1f4e1cecfed))\n* remove min-height for shorter meetings ([6872e22](https://github.com/nextcloud/calendar/commit/6872e22ec570735a91c8ace10a1829d83d25a94f))\n* remove organizer when there are no attendees ([7d936f8](https://github.com/nextcloud/calendar/commit/7d936f8c0de46d4ce3d55f71d462c0bb54ee0bbb))\n* reorganise appointment config UI ([465bdd0](https://github.com/nextcloud/calendar/commit/465bdd0c6dd46c98e4dfeae931dd565e67bef6d7))\n* **Repeat:** add button to submit ([#7878](https://github.com/nextcloud/calendar/issues/7878)) ([11f1e20](https://github.com/nextcloud/calendar/commit/11f1e207facbfdd2dfb9450a5ff77fd3faf7926a))\n* **Repeat:** change all day is visually disabled when recurrence is set ([3d6e1ff](https://github.com/nextcloud/calendar/commit/3d6e1ff31d83c4ad62b993d63c27103f15daf11d))\n* **repeat:** Change button label in 'Repeat event' dialog from generic 'Add' to specific 'Set repetition' ([eee5d05](https://github.com/nextcloud/calendar/commit/eee5d05a599a1fe10477c92fe322ac8f29b68545))\n* **Repeat:** date picker positioning ([449c675](https://github.com/nextcloud/calendar/commit/449c67555e483fec5544c7a5470a064bb509d96f))\n* **repeat:** Fix layout of 'Repeat event' dialog ([be336cc](https://github.com/nextcloud/calendar/commit/be336cc4d6e969c04e214480241342e7ab352030))\n* **repeat:** Undo removal of border-radius in 'Repeat event' dialog so week/month/year view looks closer to styleguide ([a27d234](https://github.com/nextcloud/calendar/commit/a27d234ce48fc61a9edc47b0901fc7340d4d0f04))\n* respect Talk config when creating a new conversation for an event ([8703e5b](https://github.com/nextcloud/calendar/commit/8703e5b9a23ec0b448dfcdbd2764e37e61e21e4c))\n* restrict attendees edit priveleges in the frontend ([7c77be2](https://github.com/nextcloud/calendar/commit/7c77be260ba54b70b060c60c1d258b5410897578))\n* room suggestions not being rendered ([c674fac](https://github.com/nextcloud/calendar/commit/c674fac39a3d920e2236ff74f51111f3297ca7f1))\n* **room-availability:** color caption popover not showing ([39f719c](https://github.com/nextcloud/calendar/commit/39f719cb3704343fac32f51a5a2c168424a1b2ef))\n* **room-availability:** remove remnants of the interaction plugin ([7502e3b](https://github.com/nextcloud/calendar/commit/7502e3b14fee9ac769e7af5482acf5dd0f42bf30))\n* **router:** Set parameters correctly when redirecting with Vue 3 ([8f9f27b](https://github.com/nextcloud/calendar/commit/8f9f27b3c6ce893b8ca169859969774685464a94))\n* **rtl:** calendar grid direction ([66c68fb](https://github.com/nextcloud/calendar/commit/66c68fb01d59e5bd100a4c9d7975e42e2567983b))\n* scheduling tasks with a DTSTART of type date ([ffef89a](https://github.com/nextcloud/calendar/commit/ffef89a61f79af938e0e50e8d2ddc65a0fe42e93))\n* scope css rules for calendar full view ([bf76a6f](https://github.com/nextcloud/calendar/commit/bf76a6fff08de1bf69e9efe1331d0fbb8abb4988))\n* Scroll month view to current day so it’s visible, fix [#146](https://github.com/nextcloud/calendar/issues/146), fix [#8016](https://github.com/nextcloud/calendar/issues/8016) ([bbb9f72](https://github.com/nextcloud/calendar/commit/bbb9f724d72ee2e3f2db52e56d261843c8f3e995))\n* search for possible Talk room attendees by displayed name instead of email ([8ccce9d](https://github.com/nextcloud/calendar/commit/8ccce9dc69fe3a76ab12c134b053fa37f000b4e4))\n* Separate 'Delete this and all future' as last most destructive action of the menu with a separator ([8a4a6c6](https://github.com/nextcloud/calendar/commit/8a4a6c6801f53c48c01e14cc63e3013a7a1c0b6c))\n* set vue loader to compatible version ([90539a9](https://github.com/nextcloud/calendar/commit/90539a96fb3d702ecd08ac0d0afd2597b29ecae0))\n* settings getCurrentUserPrincipal error ([5e7e1ea](https://github.com/nextcloud/calendar/commit/5e7e1ea3970af74eac1e8942ab19574c0f6f176d))\n* **settings:** fix birthday calendar toggle ([c0c4de4](https://github.com/nextcloud/calendar/commit/c0c4de4ac379c48af2bb16dfa9af4c4a94a0af2e))\n* **settings:** forward compatibility of all checkboxes ([f2f0ac2](https://github.com/nextcloud/calendar/commit/f2f0ac2e7301f124f4fce3f550c377243f9e3107))\n* show display name instead of user id in availability integration ([cb7d9aa](https://github.com/nextcloud/calendar/commit/cb7d9aa2b02ebe7a9ec3caea1c711349dae3f082))\n* show generic participation status for the organizer ([983a6dc](https://github.com/nextcloud/calendar/commit/983a6dc04da8e2571a2a063486cc1b2d8b57e694))\n* show proper dialogs for delete and convert ([f070736](https://github.com/nextcloud/calendar/commit/f0707366e84c57ff6404d421a932afeb11219438))\n* show server address for ios ([47920ae](https://github.com/nextcloud/calendar/commit/47920aec34c9b7d0406b0fd2b6169f06b3d81317))\n* show the right icons on calendar ([40bae34](https://github.com/nextcloud/calendar/commit/40bae34c1dd14a6919f3bb11aa0758c6107bfba5))\n* show time zone selector ([ad038e1](https://github.com/nextcloud/calendar/commit/ad038e1c342f5ddaf5bced6f6557ce68be8a3d77))\n* simple calendar view width ([27d7852](https://github.com/nextcloud/calendar/commit/27d7852bff6120d7763bdb36ada927f7003fe1b2))\n* simple editor position issues ([50fc39c](https://github.com/nextcloud/calendar/commit/50fc39cdbab6deed8a88cecb77677ed4a1c79a1a))\n* simple editor refresh ([a83cbc1](https://github.com/nextcloud/calendar/commit/a83cbc1e64ec038ebf8b8e32d292e89f293cbee4))\n* simple editor size and jumping ([11f766f](https://github.com/nextcloud/calendar/commit/11f766f2dd6f89636859b69b431b3508525eaeaf))\n* sort talk conversations by most recent activity ([056a8aa](https://github.com/nextcloud/calendar/commit/056a8aa333121a7d88a071cdb0a3e9a7816d3c66))\n* Specific icon for 'Update this and all future' to be more distinguishable ([ca6f442](https://github.com/nextcloud/calendar/commit/ca6f442fa3159cab2add510d37570463e7eaf06f))\n* **store:** preserve calendar-object identity on unchanged refetch ([211044b](https://github.com/nextcloud/calendar/commit/211044b04957479b3c8e2cb63498760e82c79244))\n* **stylelint:** apply fixes ([d1e6259](https://github.com/nextcloud/calendar/commit/d1e62590a3ebaf1c1ad5b3ae428ddf33b16ee5b1))\n* talk modal z-index ([0b8c4c2](https://github.com/nextcloud/calendar/commit/0b8c4c2f63f15838642f1af9bfce8081be712358))\n* talk service tests ([1290cd1](https://github.com/nextcloud/calendar/commit/1290cd1f85e194158d4c1933809d1cc18fce4375))\n* **talk-integration:** enable for users when no restrictions set ([bf3cbed](https://github.com/nextcloud/calendar/commit/bf3cbed3e0a4016d56b56f08745e117c4982aff1))\n* **talk-integration:** make sure talk is enabled for user ([04687b7](https://github.com/nextcloud/calendar/commit/04687b7c891539ab715762968923959e3b635fc5))\n* **talkintegration:** allow room creation with description ([65195e8](https://github.com/nextcloud/calendar/commit/65195e826539916daa8e1eab69dd7d4db92604ef))\n* **talk:** make it clearer that new conversations are public ([b30a425](https://github.com/nextcloud/calendar/commit/b30a425a08642aa28d3c1ddcca9cddae603113a8))\n* **talkService:** make attendees be synced with talk room members ([#7733](https://github.com/nextcloud/calendar/issues/7733)) ([899876f](https://github.com/nextcloud/calendar/commit/899876fbb2300b9f991adefa795b0553b74738db))\n* **transifex:** backport to stable5.1 ([d081af5](https://github.com/nextcloud/calendar/commit/d081af5839ce520427a375d7de1681fe13165903))\n* trashbin error toast wording when deleting items ([826dade](https://github.com/nextcloud/calendar/commit/826daded3039953550ccbaac845e748a2d116340))\n* **trashbin:** restrict retore and delete on the frontend ([8d20663](https://github.com/nextcloud/calendar/commit/8d20663972fe498709df19890064827b230dc884))\n* **ui:** Restore the section showing events that take place on full days ([b13e429](https://github.com/nextcloud/calendar/commit/b13e429310456c39107208dd6fccc5bb420885ff))\n* **ui:** scope mobile css rules for full editor ([2f543a6](https://github.com/nextcloud/calendar/commit/2f543a6db035f94df8e0b6b9d91357875d89deb4))\n* update app store description ([9f0c255](https://github.com/nextcloud/calendar/commit/9f0c2550255f074e5a2a8eff2b3eebb1705ce152))\n* update styling of public calendar modal ([fea408a](https://github.com/nextcloud/calendar/commit/fea408a998b2d7a3b41a573532ee7c97159c7311))\n* use createFromStringMinimal() instead of createFromString() ([f256232](https://github.com/nextcloud/calendar/commit/f256232df27411ac0518d091156155e1d1ec4bf6))\n* use outlined checkbox for disabled/hidden calendars ([0720b1a](https://github.com/nextcloud/calendar/commit/0720b1a006bd716e84f5df224f68dea75554b0ef))\n* use proper linter config and fix errors ([11fc845](https://github.com/nextcloud/calendar/commit/11fc845d8f97dd12cd52a8c19bccad0345394908))\n* use system button sytles for top navigation buttons ([f40d24f](https://github.com/nextcloud/calendar/commit/f40d24f229e7f1be5f77afcbe299e3b9247622c4))\n* user name search ([fe7a910](https://github.com/nextcloud/calendar/commit/fe7a91086572289e63e15e4bcdae62db3e322480))\n* **utils/attendee:** mailto case ([5c7196e](https://github.com/nextcloud/calendar/commit/5c7196ee8eae51f561da59622f70cac05e7f42a9))\n* vote input ([6e2403f](https://github.com/nextcloud/calendar/commit/6e2403ffae93b651117df800ce657b02095c4fb7))\n* vue router 5 matching behaviour ([ef866dc](https://github.com/nextcloud/calendar/commit/ef866dcc478051bb1ca26a45a319ec35b4d56809))\n* Warning: Undefined variable $mailService ([53b61ea](https://github.com/nextcloud/calendar/commit/53b61ea213bd8286690bc667b4f06740f8e69490))\n* week day view issue with tentetive status ([78a507e](https://github.com/nextcloud/calendar/commit/78a507e61c20ace44cfa13b1d67b212dc36950cb))\n* widget icon generation ([511aa6c](https://github.com/nextcloud/calendar/commit/511aa6cde69eaebcf4e6f98d7f4bbee3ce0d7490))\n* wrong end date mutation ([a6f72c9](https://github.com/nextcloud/calendar/commit/a6f72c9de1ba1e00b2d0715a437de42bb1c161bb))\n* yearly recurrance options - month selection ([49f98be](https://github.com/nextcloud/calendar/commit/49f98bec6f7373157109cb768f502b4ce6ee0fa9))\n* yearly recurrance options - month selection ([43fb124](https://github.com/nextcloud/calendar/commit/43fb124e4524806a94c97992859daaeb6b9b194b))\n\n\n### Features\n\n* add agents.md ([cb6129d](https://github.com/nextcloud/calendar/commit/cb6129d0ce844706c09bc74ba10060f29fb525f5))\n* add calendar delegation feature ([3fa4240](https://github.com/nextcloud/calendar/commit/3fa4240a2411143facb244e274c39f10994997fb))\n* add client-side event filter in app navigation ([b6822fd](https://github.com/nextcloud/calendar/commit/b6822fdc37197d5e67bb9cf0cb9efeef00a747ce)), closes [#2474](https://github.com/nextcloud/calendar/issues/2474)\n* add confirmation dialog before cancel ([c2ba077](https://github.com/nextcloud/calendar/commit/c2ba077f0a4dac99e913936f0876ced008c44460))\n* add description to booked appointment and pre appointment blocker ([481a8c3](https://github.com/nextcloud/calendar/commit/481a8c3f2f447d6396458412260c8f15d8da5dc9))\n* add full page event editor ([bb8f8bb](https://github.com/nextcloud/calendar/commit/bb8f8bbcc9204397a63abc12b7e4cd195cd0567c))\n* add local time when inviting attendees to events ([ca64b24](https://github.com/nextcloud/calendar/commit/ca64b2420161c5865d59f07354b9d3803f80ae33))\n* add support for nextcloud 32 ([5be4249](https://github.com/nextcloud/calendar/commit/5be4249857a0ba83dd73b14da41e062b0386ae98))\n* add talk button to simple editor ([69f155e](https://github.com/nextcloud/calendar/commit/69f155e9d4ef818c5032e0bebc64f1758936b546))\n* added ability to create private talk room ([71b5a40](https://github.com/nextcloud/calendar/commit/71b5a40ca22e1004a61132337523d5411ae35a99))\n* Allow or disallow party crasher ([#8222](https://github.com/nextcloud/calendar/issues/8222)) ([8be4559](https://github.com/nextcloud/calendar/commit/8be45597938e46461d89ea5451df832225ea7e6a))\n* allow sharee to copy public link of a shared calendar ([d185aad](https://github.com/nextcloud/calendar/commit/d185aad7b1cbf9f788bc64c47e105fcce35af9a7))\n* **appointments:** add duplicate button to clone appointments ([9cc396a](https://github.com/nextcloud/calendar/commit/9cc396ab1fa9b378a2818b019a3855b3e370c676))\n* **AttendeeDisplay:** add email icon for mailto link ([e3d0600](https://github.com/nextcloud/calendar/commit/e3d0600202a2d69b91822dd9e73ec5bf97b64790))\n* calendar icon not outline ([5f66141](https://github.com/nextcloud/calendar/commit/5f66141f63f83975b577d9c5508db107819ce8cc))\n* **CalendarList:** add a new sidebar section for tasks ([39309bd](https://github.com/nextcloud/calendar/commit/39309bd9e16f9649b67d34f84bc4dae693800400))\n* **CalendarList:** keep hidden calendars in main list ([b05feac](https://github.com/nextcloud/calendar/commit/b05feaca02dab05eddcb101311948c9603d6c675))\n* change calendar icons into outline ones ([9c29b1b](https://github.com/nextcloud/calendar/commit/9c29b1b081d4e9545f87cc37143b542c2d2aa75e))\n* default full / part day alarm ([9482d92](https://github.com/nextcloud/calendar/commit/9482d92b8fa3c2c7d72858f74aba58a86b244837))\n* **deps:** Add Nextcloud 33 support ([cdbafd9](https://github.com/nextcloud/calendar/commit/cdbafd9a0e0f12c9bd39a0457b1631cf84f1d7ee))\n* **deps:** Add Nextcloud 34 support ([86a2ff3](https://github.com/nextcloud/calendar/commit/86a2ff3ac068e90d50988a1456f7623be09a9a5c))\n* **deps:** Add Nextcloud 35 support ([1d513b0](https://github.com/nextcloud/calendar/commit/1d513b0a85ec8e76555e34b75e9502accb3b2113))\n* **EditCalendarModal:** add setting for default reminder per calendar ([3323664](https://github.com/nextcloud/calendar/commit/3323664f54261140fc9bfa9b21dd320c888beb90))\n* **editor:** Preserve unknown properties and components when duplicating events ([ec41642](https://github.com/nextcloud/calendar/commit/ec416422909525fe33492c881efa7f378974af71)), closes [#8605](https://github.com/nextcloud/calendar/issues/8605)\n* **editor:** use consistent accessibility names for event editors ([713e767](https://github.com/nextcloud/calendar/commit/713e767fe17f0190bad4da715ce8ef8d096333ad))\n* **EditSimple:** show alarms in viewing mode ([d21a389](https://github.com/nextcloud/calendar/commit/d21a3894b49f2acc448a41bc54a594942defeb37))\n* **eventDidMount:** add custom labels for grid accessibility with a screen reader ([b49e731](https://github.com/nextcloud/calendar/commit/b49e7313b8802a42d2a4e7f7e791256c12217cb8))\n* exit event edit popover without click on X ([300cf85](https://github.com/nextcloud/calendar/commit/300cf854f5432cbe27d23318ec2956923cb4d546))\n* federated calendar sharing ([d08a9ba](https://github.com/nextcloud/calendar/commit/d08a9ba14c9de8d94f4e6d7a0a2d1e71b9e7a1ac))\n* **FullCalendar:** add conditional styling for participation status in grid ([a68f90c](https://github.com/nextcloud/calendar/commit/a68f90ccb2456c86a2fb3d9a77618a75e10af3ec))\n* **importing:** show all writable calendars in picker ([216ab65](https://github.com/nextcloud/calendar/commit/216ab6513a8a8a0d7423b9f9e029b535cff82ed0)), closes [#2572](https://github.com/nextcloud/calendar/issues/2572)\n* **invitees:** add copy button for attendee  emails ([48a58d6](https://github.com/nextcloud/calendar/commit/48a58d64e70524a0e94fcd7f232647e8bea2bccc))\n* **invitees:** add export attendees to CSV button ([f9cce3e](https://github.com/nextcloud/calendar/commit/f9cce3e6e65a5b08961ba222f2762fe591c249a2))\n* meeting proposal convertion options ([b7b76d0](https://github.com/nextcloud/calendar/commit/b7b76d02a5a8203229b5e0a84c17e8347bc438c6))\n* Meeting Proposals ([4a948f0](https://github.com/nextcloud/calendar/commit/4a948f00cd5ebcb25bb7ee2ea9866a65ba60e589))\n* Meeting proposals calendar time blockers ([8d68329](https://github.com/nextcloud/calendar/commit/8d68329af498b9b17fce49924a1fbe7ff2b59df2))\n* migrate to vue 3 ([f1e0204](https://github.com/nextcloud/calendar/commit/f1e02040fb226a782169a37375ba8b64ab4fbc9a))\n* move calendar setting to modal ([2e17227](https://github.com/nextcloud/calendar/commit/2e1722743e82ddd10a0d841eda8b0311bec17459))\n* new event style in calendar grid ([9a3fcee](https://github.com/nextcloud/calendar/commit/9a3fcee7cfd5e33ee3c597015264b70afdff2858))\n* **PropertyTitleTimePicker:** add local time subtitle ([8a5909a](https://github.com/nextcloud/calendar/commit/8a5909a116dd4757f46b8be960586392fc78216f))\n* proposal and appointment configuration migrator ([060bcd2](https://github.com/nextcloud/calendar/commit/060bcd294c95529d9c2193bf08d995c8996385b5))\n* read calendar ACL properly ([ea4d703](https://github.com/nextcloud/calendar/commit/ea4d703419d9a7b7fc467071c760d7541af7af14))\n* Resize events from start. ([19ffa96](https://github.com/nextcloud/calendar/commit/19ffa96363a525e6a0fd2be6e478b3034607d7ed))\n* restrict calendar invitation users ([0505cef](https://github.com/nextcloud/calendar/commit/0505ceff259ac5c9d090bc116abae5a8da54cca2))\n* Reusable duration selector ([e5d41fd](https://github.com/nextcloud/calendar/commit/e5d41fd5b09de48bd75769173294956791858979))\n* rework freebusy modal ([c00e7ab](https://github.com/nextcloud/calendar/commit/c00e7ab4d40094e04292d848bd291adb8888ebff))\n* **SaveButtons:** group update buttons ([4a51fb1](https://github.com/nextcloud/calendar/commit/4a51fb1b29dd66b30debc2132e1d99193aa6fdbc))\n* **Settings:** event style legend ([1ac1b53](https://github.com/nextcloud/calendar/commit/1ac1b538ce6d646b0fc700ccd02522e9e44f9cf0))\n* **Settings:** redesign to new vue components ([#7682](https://github.com/nextcloud/calendar/issues/7682)) ([a35d149](https://github.com/nextcloud/calendar/commit/a35d14915e5d2f0e1e8f262e795824161aeb94aa))\n* show supported component types in calendar settings ([99e54cf](https://github.com/nextcloud/calendar/commit/99e54cfe8178e482596a36f0d9b611dbc9f22a53)), closes [/github.com/nextcloud/calendar/issues/2572#issuecomment-2200791216](https://github.com//github.com/nextcloud/calendar/issues/2572/issues/issuecomment-2200791216) [#2572](https://github.com/nextcloud/calendar/issues/2572)\n* strike through cancelled event title ([6b43f6c](https://github.com/nextcloud/calendar/commit/6b43f6cc237c1b8b9d10d132a10a8ff412743f60))\n* sync calendar instantly on changes ([e0eb03d](https://github.com/nextcloud/calendar/commit/e0eb03d246a9f6f8e428d30f50f8036e2421d0ba))\n* **talkintegration:** add object type to talk room creation ([85bec05](https://github.com/nextcloud/calendar/commit/85bec05b878c3dafccbcdd2610a3ac0196bc9bd0))\n* **talkintegration:** filter out event type rooms from suggestions ([909f399](https://github.com/nextcloud/calendar/commit/909f399a04a1283c366b4224e7dec36e72a143c9))\n* Task scheduling for tasks without end date ([9a754e6](https://github.com/nextcloud/calendar/commit/9a754e6ed2d19461e768cbca478de0c8e812a7c7))\n\n\n### Performance Improvements\n\n* don't load ContactsMenuScript when not logged in ([a0853ee](https://github.com/nextcloud/calendar/commit/a0853ee9787ed838a959f37f45ea0743953dcc94))\n* reduce contacts menu entrypoint bundle size ([2e03c8c](https://github.com/nextcloud/calendar/commit/2e03c8c00eeab4db6b74045f3662b839f3cece74))\n* system addressbook enumeration disabled in contacts search ([dcf13c9](https://github.com/nextcloud/calendar/commit/dcf13c92495d4c21e8f6775c02d5aa08f7f6492f))\n\n\n\n# [5.1.0-beta2](https://github.com/nextcloud/calendar/compare/v5.1.0-beta1...v5.1.0-beta2) (2025-01-16)\n\n\n### Bug Fixes\n\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.4 to ^2.2.6 (main) ([#6628](https://github.com/nextcloud/calendar/issues/6628)) ([a67b49f](https://github.com/nextcloud/calendar/commit/a67b49f2b21ad691bef6bd128e9f5d8f633c94df))\n* **deps:** bump core-js from 3.39.0 to ^3.40.0 (main) ([#6629](https://github.com/nextcloud/calendar/issues/6629)) ([7a8ede3](https://github.com/nextcloud/calendar/commit/7a8ede390f21f34c69e65df48f68dc4139c550ed))\n* location and description not being saved ([5348612](https://github.com/nextcloud/calendar/commit/5348612ffae9196963b495b9c71007489c29f685))\n\n\n### Features\n\n* **editor:** improve attendee and resource status display ([9c23ed8](https://github.com/nextcloud/calendar/commit/9c23ed8e11811faa94d5b91e406d272d36918c9b))\n\n\n\n# [5.1.0-beta1](https://github.com/nextcloud/calendar/compare/v5.1.0-alpha2...v5.1.0-beta1) (2025-01-14)\n\n\n### Features\n\n* add availability action to the contacts menu ([266a345](https://github.com/nextcloud/calendar/commit/266a34543e8ca552b5bd164472676379a80ae8de))\n* Add overlay between calendar and open simple editor ([8699a65](https://github.com/nextcloud/calendar/commit/8699a658475e8a511b23187056bc7308b535b6f8))\n\n\n\n# [5.1.0-alpha2](https://github.com/nextcloud/calendar/compare/v5.1.0-alpha1...v5.1.0-alpha2) (2025-01-09)\n\n\n### Bug Fixes\n\n* firefox avatar icon styling inconsistency ([02e8ed4](https://github.com/nextcloud/calendar/commit/02e8ed422aba9d2edf543196d317b4f2a0d84c62))\n* max-width for long timezones names ([c27f067](https://github.com/nextcloud/calendar/commit/c27f067da8efcce8a77ad120b8930e022b202703))\n\n\n\n# [5.1.0-alpha1](https://github.com/nextcloud/calendar/compare/v5.0.0-alpha4...v5.1.0-alpha1) (2025-01-07)\n\n\n### Bug Fixes\n\n* add border to sidebar button ([50878bf](https://github.com/nextcloud/calendar/commit/50878bfea41f1c9e372afc4c83db46a60b8244a7))\n* add missing license ([9196525](https://github.com/nextcloud/calendar/commit/91965257efe918bbac804aedc43f066895bffdfa))\n* adjust url for task links ([#6550](https://github.com/nextcloud/calendar/issues/6550)) ([e86c82a](https://github.com/nextcloud/calendar/commit/e86c82a965a791fae0e9ee14966f2949502011b8))\n* **alarms:** also update DISPLAY alarms ([b66f96a](https://github.com/nextcloud/calendar/commit/b66f96ab30cdd5011695b52001179edbacb99f2a))\n* allow adding self to shared event ([479ba82](https://github.com/nextcloud/calendar/commit/479ba82475b81687c6d6dc4355acead16c2f081a))\n* appointment slots start and end time ([6e06e87](https://github.com/nextcloud/calendar/commit/6e06e87c416120482f3ae38dcb26c967564b8050))\n* **appointments:** log calculated start and end times for slot generation ([13ad251](https://github.com/nextcloud/calendar/commit/13ad251c07e5eda8cd2b1859b7b2fd4a82573295))\n* **appointments:** properly localise the calendar events ([74df703](https://github.com/nextcloud/calendar/commit/74df7032d0a03855ad98bf4b678a49ac96313780))\n* **appointments:** Set organiser email to correct langauge ([7893c95](https://github.com/nextcloud/calendar/commit/7893c95cd2c5d04d4b231553855ce423b289ab82))\n* **appointments:** simplify booking response ([3acd930](https://github.com/nextcloud/calendar/commit/3acd93027c3948eb52a4091408e6fe0128269afc))\n* attachment folder picker ([93374fa](https://github.com/nextcloud/calendar/commit/93374fad5e8fd1d16b31fd776077a2e0b560d483))\n* **attachments:** add missing file picker confirm ([df34ac0](https://github.com/nextcloud/calendar/commit/df34ac087e28f547ab3d06f81762b18693e7273e))\n* **attachments:** adjust click handler ([9346664](https://github.com/nextcloud/calendar/commit/9346664359110c0a052d6933b57b4fc99c94dd5c))\n* **attachmentService, propfindErrorParse:** add an error message for when a file is not compatible for windows ([d7288b0](https://github.com/nextcloud/calendar/commit/d7288b06368b3fa0e4a3999c7e70338322e02f02))\n* **attachments:** improve layout ([e9e9bcf](https://github.com/nextcloud/calendar/commit/e9e9bcf209e1ae3a051e44f7cfb24d62ff30c533))\n* avatar status icon text misalignment ([f837082](https://github.com/nextcloud/calendar/commit/f8370822b0c7f697b8683bf0c453725d21ce357d))\n* **CalendarListNew:** Public Calendar Modal Opening ([0ae73bc](https://github.com/nextcloud/calendar/commit/0ae73bcb63ace8cb5c268b2a49d174d73441fb6e))\n* **CalendarObjectInstance:** reset attendee participation status on duplication of an event ([0b7f8dc](https://github.com/nextcloud/calendar/commit/0b7f8dc5d9d339218c2cc9990f01e15adad32e65))\n* **calendarPicker:** undefined calendar ([94fc5d1](https://github.com/nextcloud/calendar/commit/94fc5d12b7772f7aa3e06aef28e6feb8a812926a))\n* check if userId is null ([a123dc8](https://github.com/nextcloud/calendar/commit/a123dc80d6e80f17d3f985f6c3ad34818240a687))\n* CI ([75445bd](https://github.com/nextcloud/calendar/commit/75445bd624e9d1ba0fb06b25c683a6cb4f6528cc))\n* default calendar needs to support VEVENTs ([99921bc](https://github.com/nextcloud/calendar/commit/99921bc9ce7e243b9bbf028d90f7195d815380e3))\n* default reminder ui bug ([def95a6](https://github.com/nextcloud/calendar/commit/def95a6b109b11485ee176aa4ab0fea94f0ac6ab))\n* **deps:** bump @nextcloud/auth from 2.2.1 to ^2.3.0 (main) ([#5946](https://github.com/nextcloud/calendar/issues/5946)) ([9f1f387](https://github.com/nextcloud/calendar/commit/9f1f3878ede2499f0abbf1510bf40285c9383b3d))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.4.0 (main) ([#6257](https://github.com/nextcloud/calendar/issues/6257)) ([8d3357f](https://github.com/nextcloud/calendar/commit/8d3357f8bd72776e3f7a18eabfbc55ac1b3b6864))\n* **deps:** bump @nextcloud/axios from 2.4.0 to ^2.5.0 (main) ([#5989](https://github.com/nextcloud/calendar/issues/5989)) ([928d36b](https://github.com/nextcloud/calendar/commit/928d36bc50c687f7901b25678e9e726b03f11865))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 (main) ([#6366](https://github.com/nextcloud/calendar/issues/6366)) ([5203eeb](https://github.com/nextcloud/calendar/commit/5203eebd680cdf2325ae6de6f3e32e90e7320129))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.0 to ^2.2.1 (main) ([#6019](https://github.com/nextcloud/calendar/issues/6019)) ([70b8ae7](https://github.com/nextcloud/calendar/commit/70b8ae7b3c2813b7aa07dbf3766609a05d0324e6))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.1 to ^2.2.2 (main) ([#6085](https://github.com/nextcloud/calendar/issues/6085)) ([4081035](https://github.com/nextcloud/calendar/commit/408103599f1c7cfacc68b9d19940ff793e762125))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.2.2 to ^2.2.4 (main) ([#6272](https://github.com/nextcloud/calendar/issues/6272)) ([37f6e34](https://github.com/nextcloud/calendar/commit/37f6e345e8149657dda9ff84c9c7d14ec42a2428))\n* **deps:** bump @nextcloud/calendar-js from 8.0.2 to ^8.0.3 (main) ([#6526](https://github.com/nextcloud/calendar/issues/6526)) ([d674751](https://github.com/nextcloud/calendar/commit/d674751988b334342f94acb508f1978d2ce1d527))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 ([b8e713c](https://github.com/nextcloud/calendar/commit/b8e713c8138cff678e5cfd8221020494ce9899ae))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.0 (main) ([#6174](https://github.com/nextcloud/calendar/issues/6174)) ([5e5a9a0](https://github.com/nextcloud/calendar/commit/5e5a9a061d91f9258a06e5872d8884d1d93e6e91))\n* **deps:** bump @nextcloud/cdav-library from 1.5.0 to ^1.5.1 (main) ([#6182](https://github.com/nextcloud/calendar/issues/6182)) ([48116a4](https://github.com/nextcloud/calendar/commit/48116a4fcfd8edd9a26ff6244a04ccb79f702911))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 (main) ([#6426](https://github.com/nextcloud/calendar/issues/6426)) ([faf4cd6](https://github.com/nextcloud/calendar/commit/faf4cd6a46062cf0d5c1f1b8d8391a38773a7292))\n* **deps:** bump @nextcloud/dialogs from 4.2.6 to v5 ([e93fb34](https://github.com/nextcloud/calendar/commit/e93fb34070a4f8575bb1ab9ff3ed2dc36cc1836f))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.2 (main) ([#6055](https://github.com/nextcloud/calendar/issues/6055)) ([c384096](https://github.com/nextcloud/calendar/commit/c384096f2a614563c6c30b6df795475ca7fd4f97))\n* **deps:** bump @nextcloud/dialogs from 5.3.2 to ^5.3.4 (main) ([#6086](https://github.com/nextcloud/calendar/issues/6086)) ([d3ba8ce](https://github.com/nextcloud/calendar/commit/d3ba8cec1597d3273b9029f29b86266fbfc6d342))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 (main) ([#6132](https://github.com/nextcloud/calendar/issues/6132)) ([ad5a518](https://github.com/nextcloud/calendar/commit/ad5a518abc2565d78c3aaf73f518124d47fae1cd))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.6 (main) ([#6273](https://github.com/nextcloud/calendar/issues/6273)) ([da7cc68](https://github.com/nextcloud/calendar/commit/da7cc685fc6681bb4b7a4e1476223662094946ad))\n* **deps:** bump @nextcloud/dialogs from 5.3.6 to ^5.3.7 (main) ([#6296](https://github.com/nextcloud/calendar/issues/6296)) ([e21d65e](https://github.com/nextcloud/calendar/commit/e21d65e41fb30541ee75da21e14bf8baf1b3f99d))\n* **deps:** bump @nextcloud/dialogs from 5.3.7 to ^5.3.8 (main) ([#6464](https://github.com/nextcloud/calendar/issues/6464)) ([aa30c8f](https://github.com/nextcloud/calendar/commit/aa30c8f6c164b420cfeb4b40cb3d91d4c1d39716))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to v6 ([e2a85a4](https://github.com/nextcloud/calendar/commit/e2a85a471778594d0638fbe28fc9549423c1d274))\n* **deps:** bump @nextcloud/event-bus from 3.2.0 to ^3.2.0 (main) ([#5947](https://github.com/nextcloud/calendar/issues/5947)) ([3cb4d04](https://github.com/nextcloud/calendar/commit/3cb4d04baa389a838fc383d8c57d3563c3626443))\n* **deps:** bump @nextcloud/event-bus from 3.2.0 to ^3.3.1 (main) ([#6028](https://github.com/nextcloud/calendar/issues/6028)) ([f242ae8](https://github.com/nextcloud/calendar/commit/f242ae81d976e1a83ea65ee3324d63fad5e4aca5))\n* **deps:** bump @nextcloud/initial-state from 2.1.0 to ^2.2.0 (main) ([#5990](https://github.com/nextcloud/calendar/issues/5990)) ([8f695f8](https://github.com/nextcloud/calendar/commit/8f695f83f26a7c608fba03e7737ae3388fba7bb6))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([bd67b27](https://github.com/nextcloud/calendar/commit/bd67b275a0454689612ecc8b7f447af6c29cf9e1))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([5f84062](https://github.com/nextcloud/calendar/commit/5f84062945a27e5f373ca17f4b4b03fb5857c95a))\n* **deps:** bump @nextcloud/logger from 3.0.1 to ^3.0.2 (main) ([#6020](https://github.com/nextcloud/calendar/issues/6020)) ([f75b2a6](https://github.com/nextcloud/calendar/commit/f75b2a6c98830dd9b5720412e9f0172c5d953814))\n* **deps:** bump @nextcloud/moment from 1.3.1 to ^1.3.2 (main) ([#6575](https://github.com/nextcloud/calendar/issues/6575)) ([8d3b8b4](https://github.com/nextcloud/calendar/commit/8d3b8b46b662716cfc8e7c23f4780cfd541d2167))\n* **deps:** bump @nextcloud/router from 3.0.0 to ^3.0.1 (main) ([#5945](https://github.com/nextcloud/calendar/issues/5945)) ([2f8515d](https://github.com/nextcloud/calendar/commit/2f8515d0fe28696fa81173dc484d7b91ce23d747))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.11.2 ([e15a1a2](https://github.com/nextcloud/calendar/commit/e15a1a266374672555e0ee5e9d0394fa97b1f310))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.11.3 ([ccf5f95](https://github.com/nextcloud/calendar/commit/ccf5f95d88842b91e2944066d76ac6628b95495f))\n* **deps:** bump @nextcloud/vue from 8.11.3 to ^8.12.0 ([d5af6fc](https://github.com/nextcloud/calendar/commit/d5af6fc5fe920539bb6b3b8d0d5bdde941cb1dfa))\n* **deps:** bump @nextcloud/vue from 8.12.0 to ^8.13.0 ([f3a79a7](https://github.com/nextcloud/calendar/commit/f3a79a7416ba5ad933982e1f86b7a6bc48107a85))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([60d03d4](https://github.com/nextcloud/calendar/commit/60d03d4e4d9489cf4befd197b2a8669a67b90c97))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([0271a5b](https://github.com/nextcloud/calendar/commit/0271a5b1496eaa7c9d957301d4479e63bce6ad75))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([de9bebb](https://github.com/nextcloud/calendar/commit/de9bebb62449de8b30fc5b704d6d3337824231ab))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.16.0 ([48a812c](https://github.com/nextcloud/calendar/commit/48a812cf3b615d58f276a944b43299e894ef5734))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.18.0 ([bd73f27](https://github.com/nextcloud/calendar/commit/bd73f27ab5fd9a793fbaec15feb6cc1bbc8107d7))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.19.0 ([6309905](https://github.com/nextcloud/calendar/commit/6309905c58c85b58118d825354b6d369e38f9b94))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.20.0 ([128c0ba](https://github.com/nextcloud/calendar/commit/128c0ba612c97b39f0c1676b38051de5f1bb91e3))\n* **deps:** bump @nextcloud/vue from 8.20.0 to ^8.22.0 ([5350abb](https://github.com/nextcloud/calendar/commit/5350abb88d020e6a085dcb7686c75a7b2d8a2084))\n* **deps:** bump core-js from 3.36.1 to ^3.37.0 (main) ([#5927](https://github.com/nextcloud/calendar/issues/5927)) ([7c62824](https://github.com/nextcloud/calendar/commit/7c62824dab7f3a25a8a04ba9b505894d0c027020))\n* **deps:** bump core-js from 3.37.0 to ^3.37.1 (main) ([#6006](https://github.com/nextcloud/calendar/issues/6006)) ([fb1d43c](https://github.com/nextcloud/calendar/commit/fb1d43c65dce261c28d7a0a899878fc021762299))\n* **deps:** bump core-js from 3.37.1 to ^3.38.0 (main) ([#6242](https://github.com/nextcloud/calendar/issues/6242)) ([399c8b6](https://github.com/nextcloud/calendar/commit/399c8b66746093f58635204e5d5481984fe64649))\n* **deps:** bump core-js from 3.38.0 to ^3.38.1 (main) ([#6298](https://github.com/nextcloud/calendar/issues/6298)) ([2ada469](https://github.com/nextcloud/calendar/commit/2ada469e5561588205d3f264d307dd3543826749))\n* **deps:** bump core-js from 3.38.1 to ^3.39.0 (main) ([#6491](https://github.com/nextcloud/calendar/issues/6491)) ([5f6bbbf](https://github.com/nextcloud/calendar/commit/5f6bbbf2e7416f7ba856d2973af1e491d7c22192))\n* **deps:** bump debounce from 2.0.0 to ^2.1.0 (main) ([#6030](https://github.com/nextcloud/calendar/issues/6030)) ([cb76a3f](https://github.com/nextcloud/calendar/commit/cb76a3f1cb45e9c8303957fbc58de16ee4655488))\n* **deps:** bump debounce from 2.1.1 to ^2.1.1 (main) ([#6334](https://github.com/nextcloud/calendar/issues/6334)) ([696cb0b](https://github.com/nextcloud/calendar/commit/696cb0b8c62542b841969dcf09d0ae80eeeccaf8))\n* **deps:** bump debounce from 2.1.1 to ^2.2.0 ([13545a6](https://github.com/nextcloud/calendar/commit/13545a6f288efed6bf88dd4d018e46ce0cfac0f8))\n* **deps:** bump fullcalendar family from 6.1.11 to v6.1.14 ([8c443cc](https://github.com/nextcloud/calendar/commit/8c443cc3195c64078a110a93533f25fdf5e30b72))\n* **deps:** bump fullcalendar family from 6.1.14 to v6.1.15 ([7fb8727](https://github.com/nextcloud/calendar/commit/7fb872793d73bdc785603a14e76079c43579b29a))\n* **deps:** bump linkifyjs from 4.1.3 to ^4.2.0 (main) ([#6576](https://github.com/nextcloud/calendar/issues/6576)) ([f31991d](https://github.com/nextcloud/calendar/commit/f31991dbaa3e5d589c829abfb615a9ee6de67002))\n* **deps:** bump p-limit from 5.0.0 to v6 ([b093b06](https://github.com/nextcloud/calendar/commit/b093b06ded3b784751712bbd5afdca692842a608))\n* **deps:** bump p-limit from 6.1.0 to ^6.2.0 (main) ([#6592](https://github.com/nextcloud/calendar/issues/6592)) ([8fdb932](https://github.com/nextcloud/calendar/commit/8fdb932240ab550441175d4016108d724f0c98fb))\n* **deps:** bump pinia from 2.1.7 to ^2.2.0 (main) ([#6209](https://github.com/nextcloud/calendar/issues/6209)) ([e4b2139](https://github.com/nextcloud/calendar/commit/e4b21392b4833f025012780ca502d81a4301ad7c))\n* **deps:** bump pinia from 2.2.0 to ^2.2.1 (main) ([#6240](https://github.com/nextcloud/calendar/issues/6240)) ([795a49d](https://github.com/nextcloud/calendar/commit/795a49d4d8be16a4c8a423233175e925fd6589f3))\n* **deps:** bump pinia from 2.2.1 to ^2.2.2 (main) ([#6299](https://github.com/nextcloud/calendar/issues/6299)) ([7b55dd5](https://github.com/nextcloud/calendar/commit/7b55dd54835eaaaeacac9379b51e33d2271d172a))\n* **deps:** bump pinia from 2.2.2 to ^2.2.4 (main) ([#6387](https://github.com/nextcloud/calendar/issues/6387)) ([d59146b](https://github.com/nextcloud/calendar/commit/d59146b64e1529ef30a0fc369d9bff987f0cfdc7))\n* **deps:** bump pinia from 2.2.4 to ^2.2.5 (main) ([#6450](https://github.com/nextcloud/calendar/issues/6450)) ([730b9e8](https://github.com/nextcloud/calendar/commit/730b9e8d986f207fe497fd2bd3884821887d358c))\n* **deps:** bump pinia from 2.2.5 to ^2.2.6 (main) ([#6465](https://github.com/nextcloud/calendar/issues/6465)) ([1ab521c](https://github.com/nextcloud/calendar/commit/1ab521c0db8e05c589d32cf3fa2092d0104520b8))\n* **deps:** bump pinia from 2.2.6 to ^2.3.0 (main) ([#6577](https://github.com/nextcloud/calendar/issues/6577)) ([fcc3182](https://github.com/nextcloud/calendar/commit/fcc318245d24ef2c8d6012146247a57751c3c1e0))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 (main) ([#6412](https://github.com/nextcloud/calendar/issues/6412)) ([b097235](https://github.com/nextcloud/calendar/commit/b097235cb35caede9e41e115a5a221c6c969d4e1))\n* **deps:** bump webdav from 5.5.0 to ^5.6.0 (main) ([#6007](https://github.com/nextcloud/calendar/issues/6007)) ([e3f9fe8](https://github.com/nextcloud/calendar/commit/e3f9fe845801aa2cfa0f27399b75abd0d3bf7cec))\n* **deps:** bump webdav from 5.6.0 to ^5.7.1 (main) ([#6243](https://github.com/nextcloud/calendar/issues/6243)) ([9fc1b6a](https://github.com/nextcloud/calendar/commit/9fc1b6a79815262cd068b39b585f97dba0ae7885))\n* **deps:** Fix npm audit ([492beb5](https://github.com/nextcloud/calendar/commit/492beb5d16cc1db0161c22f506c8168fb8338619))\n* **deps:** Fix npm audit ([dac1c26](https://github.com/nextcloud/calendar/commit/dac1c2677bc9301fef88629e97128ac6fa9e4500))\n* **deps:** Fix npm audit ([6a5ba16](https://github.com/nextcloud/calendar/commit/6a5ba160ec0af4bd25ea191057259230959335ad))\n* **deps:** Fix npm audit ([ccf2a1a](https://github.com/nextcloud/calendar/commit/ccf2a1a1cee4226ef6dc56af46aca42dcec116d6))\n* **deps:** Fix npm audit ([ef73eaf](https://github.com/nextcloud/calendar/commit/ef73eaf695a063a624228e4a3285d9ce3958bd09))\n* **deps:** Fix npm audit ([3d6e499](https://github.com/nextcloud/calendar/commit/3d6e499865a84121b0ab28712d61f1bafb01526b))\n* disable save appointment button ([6bdbb85](https://github.com/nextcloud/calendar/commit/6bdbb85a89139111d24e3cc40597f2a36204f736))\n* don't apply default calendar on Nextcloud < 29 ([b46ea0d](https://github.com/nextcloud/calendar/commit/b46ea0d50edff571dff2b6280efbef0507186fc0))\n* **editor:** add and remove categories from events ([97f62e6](https://github.com/nextcloud/calendar/commit/97f62e604fd5ff61466ff12ef9ead9a0b492b755))\n* **editor:** add indicator to calendar picker ([0dfb690](https://github.com/nextcloud/calendar/commit/0dfb6902a0375bbe6fdf1d0336919373c599d813))\n* **editor:** calendar picker width ([e35da5f](https://github.com/nextcloud/calendar/commit/e35da5f9922dbb8f127ee28e2c15c6076eab4b50))\n* **editor:** creating custom categories ([403ed95](https://github.com/nextcloud/calendar/commit/403ed95864b989502e1b73f77b28d4bc490d224d))\n* **editor:** don't respect default calendar in the calendar picker ([4f2caf6](https://github.com/nextcloud/calendar/commit/4f2caf615b8ecdcb0f2f63abd71093581a0a68bb))\n* **editor:** sidebar editor custom header styling ([aec306b](https://github.com/nextcloud/calendar/commit/aec306b16cb06eaaf0e0ce1aa45b94aec43482b9))\n* **editor:** switching to sidebar after creating a new event ([c3df245](https://github.com/nextcloud/calendar/commit/c3df245dcc9c1ace74123e7d89654592b75ec04e)), closes [#5840](https://github.com/nextcloud/calendar/issues/5840)\n* **embed:** calendar header overlapping and adjust to compact design ([96fb2c7](https://github.com/nextcloud/calendar/commit/96fb2c736cf3543842f00317e85598912ada4667))\n* enable attendee selection on shared calendars ([34de776](https://github.com/nextcloud/calendar/commit/34de776798486161e49e195722aa88288dbb4715))\n* enable directory selection in file picker ([4944b64](https://github.com/nextcloud/calendar/commit/4944b64c335c0cc93642f0d2d9fc3a606a39204a))\n* Entity parameter types ([c413f8d](https://github.com/nextcloud/calendar/commit/c413f8d1776924c1ba9c8994b80e60fc4e9734c8))\n* Events with overlapping time visually overlap ([ae0cc82](https://github.com/nextcloud/calendar/commit/ae0cc8222105b07ff7aa62891333ab6b9a74d1d6))\n* external attachment dialog mounted warning ([3fd760f](https://github.com/nextcloud/calendar/commit/3fd760f2466d472760fce345f0e4da9fe8eee106))\n* **fc:** Adjust *today* border radius ([8dbff4c](https://github.com/nextcloud/calendar/commit/8dbff4c4b4ae5f4d58dc87982c68c3bd73bc96d8))\n* **fc:** adjust week day header border radius to new design ([e4dd483](https://github.com/nextcloud/calendar/commit/e4dd483879f8c053def835bbc1023799b5bbcee5))\n* **fc:** tiny white border on highlighted cells ([1017e40](https://github.com/nextcloud/calendar/commit/1017e40e4cc110c317f85ba6da12057db6278426))\n* **files:** fix misplaced empty content ([80e131a](https://github.com/nextcloud/calendar/commit/80e131a0900162d74a1373b6cda96d6502cd0388))\n* **files:** replace input fields with `NcTextField` ([31dd0e9](https://github.com/nextcloud/calendar/commit/31dd0e9bc4ff126aa52ec005d0d67aeab884e25a))\n* **FreeBusySlotService:** improve suggested slots ([aac9479](https://github.com/nextcloud/calendar/commit/aac9479f7176e75ea329fdc3c960eb76aab4efeb))\n* **FullCalendar CSS:** make events in weekly view have the correct width ([0dad0f8](https://github.com/nextcloud/calendar/commit/0dad0f80adc223418909783cd9a0dced79ae99a8))\n* handle timezones with no transitions properly ([991402f](https://github.com/nextcloud/calendar/commit/991402f8669db6508f3f525c1db35bf451f0cd0a))\n* Ignore existing attendee without email in search results ([58fb57b](https://github.com/nextcloud/calendar/commit/58fb57b856cfababeebaa32cc6d2f737a17eb2e0))\n* Ignore VScode IDE directory ([ba60a11](https://github.com/nextcloud/calendar/commit/ba60a1190a2ff000e7c553bc6069f43ac62f0ad3))\n* input label warnings ([bc58a38](https://github.com/nextcloud/calendar/commit/bc58a38efb336bb536b644470b0318f4fbedc985))\n* **InviteesListSearch:** make avatar status not clip ([3cfb3a2](https://github.com/nextcloud/calendar/commit/3cfb3a24726bb4a75741f19aef874baf0df5c9f6))\n* **l10n:** propfind error message translation source ([343fe47](https://github.com/nextcloud/calendar/commit/343fe476439551e79167906e111155fecf491783))\n* make call token extraction more robust ([401f674](https://github.com/nextcloud/calendar/commit/401f674a92c41248fdd383f8da386c382ca8ecde))\n* make sidebar tabs spacing consistent ([bc2cc6d](https://github.com/nextcloud/calendar/commit/bc2cc6d5ad1046a65ae5c5431a184f28bb37972f))\n* missing default props warnings ([4ca0dca](https://github.com/nextcloud/calendar/commit/4ca0dca377b1a6d5d2113fef6dd8f1d0790ae449))\n* modified unit test to include arguments ([c8626fb](https://github.com/nextcloud/calendar/commit/c8626fb8c3986a01901cdd91a7f1f0ec34d249a4))\n* navigation when clicking on the grid on a custom week/month ([209bb44](https://github.com/nextcloud/calendar/commit/209bb44eec28e3ff77dc1d15bda3f6023b3269e4))\n* **navigation:** scope all styles to the calendar app ([307a265](https://github.com/nextcloud/calendar/commit/307a26546e66e5676edb1df9e9c928948cef14a1))\n* **notifications:** Notifier::prepare() threw \\InvalidArgumentException which is deprecated ([2ab1b8f](https://github.com/nextcloud/calendar/commit/2ab1b8f033f09cd39d723875f8d7aa6c9061d51d))\n* php lint complaints ([0b9f4cb](https://github.com/nextcloud/calendar/commit/0b9f4cb7311549f3cfd3571b9fe6dec66626c355))\n* phpUnit required time zone object not string ([3c369e4](https://github.com/nextcloud/calendar/commit/3c369e44706a2ab18f62a5a26b1e53468fe4fb81))\n* popover custom trigger warnings ([b8b6490](https://github.com/nextcloud/calendar/commit/b8b6490272b6140d983050c7933f1009eec07ba6))\n* **PropertyColor:** now color is selected with submit button instead of directly ([16ebe41](https://github.com/nextcloud/calendar/commit/16ebe4165f2b403477d2a4f362e7fed9d99d72e2))\n* recurrance selection ([3927688](https://github.com/nextcloud/calendar/commit/3927688e749ff1a3ce28bf5e04bd5087f764b09a))\n* recurrance until selection ([692ea9e](https://github.com/nextcloud/calendar/commit/692ea9e605e340392eb187a8c496d73f6eea20e1))\n* **release:** Fix wget output option ([f77d285](https://github.com/nextcloud/calendar/commit/f77d285fe4a54d8fde47af5fb1d594af49ae13dc))\n* **release:** Ignore unnecessary files ([30efafe](https://github.com/nextcloud/calendar/commit/30efafe12b53d22779606dab000f5c2eae80a43c))\n* **rtl:** align event title ([9bc72ad](https://github.com/nextcloud/calendar/commit/9bc72adfad0e6e18268a7afb650b475853418999))\n* **rtl:** invitees list ([1a4c008](https://github.com/nextcloud/calendar/commit/1a4c008bbbbe1a228908491c39714bda7a201246))\n* **rtl:** navigation buttons ([4f88b3c](https://github.com/nextcloud/calendar/commit/4f88b3c0e9104ebcea017105dd5f724fa9f3e347))\n* **scheduling:** Find attendee via email ([3c0ec2a](https://github.com/nextcloud/calendar/commit/3c0ec2ade0541729384f3e2c7807db48783f22f6))\n* scope global sidebar styles to the app ([2460c53](https://github.com/nextcloud/calendar/commit/2460c539e8b7fdd0b867012006e0f0484ba91d48))\n* send date as sting instead of epoch ([91d787c](https://github.com/nextcloud/calendar/commit/91d787ca37af9ecf3c06d2dfdc22e8018a9b8111))\n* send requestee and requester correct date and time when timezones differ [#5198](https://github.com/nextcloud/calendar/issues/5198) ([01e7e2d](https://github.com/nextcloud/calendar/commit/01e7e2d68a6610d33f77d82b089890d19c5a3969))\n* **settings:** adjust design of import button ([911d5b9](https://github.com/nextcloud/calendar/commit/911d5b93be0b26aa7245e061fc9f741f2d37aff0))\n* **Settings:** invert edit simple checkbox ([761a6cb](https://github.com/nextcloud/calendar/commit/761a6cba7f1c0330847b02c9f66056302a61c293))\n* sidebar editor tab scrolling ([9cb56bd](https://github.com/nextcloud/calendar/commit/9cb56bd2f74c66808cffcee612c03ada1b12ea7c))\n* **teams:** resolve undefined variable error and add logging ([9d1688c](https://github.com/nextcloud/calendar/commit/9d1688c87b4fdf77d66d97c49458dd8334f0a9b7))\n* thrown error on json decoding errors ([2f5c5ba](https://github.com/nextcloud/calendar/commit/2f5c5baa66c1c065e5b231bcfc82d1d27d737b5d))\n* time zone picker when using the simple editor ([dd4d83c](https://github.com/nextcloud/calendar/commit/dd4d83ca787b667db5f4c477ad7fab3654437183))\n* update calendar sharing icon ([55cb697](https://github.com/nextcloud/calendar/commit/55cb69718bf0cc76d2c105eeb6b533ab7d00009a))\n* use first day of week setting from server ([3203378](https://github.com/nextcloud/calendar/commit/3203378112f9a681061ab5bb2837197d0633b597))\n* use folder icon as fallback ([a099e7b](https://github.com/nextcloud/calendar/commit/a099e7bf7409bb4d4222cc62fc23d06861c30c00))\n\n\n### Features\n\n* add organizer selection ([cbfbda2](https://github.com/nextcloud/calendar/commit/cbfbda2468e3f1de864a06a1d8bb4c65cbf8d11f))\n* allow inviting contact groups ([7f70db9](https://github.com/nextcloud/calendar/commit/7f70db9929144ab31afe169d3ac6d68816e74447))\n* Allow shared calendars as appointment conflict calendars ([c08f7d1](https://github.com/nextcloud/calendar/commit/c08f7d1ada4c0547c98343ded48c69f0f9c5221f))\n* **appointments:** add timezone to all emails ([d30e6a7](https://github.com/nextcloud/calendar/commit/d30e6a78288a535e5b7385564881bf15a9923cc9))\n* **CalendarList:** fix dragging to order calendars ([619f4f0](https://github.com/nextcloud/calendar/commit/619f4f0e9f93788e7c0c43c379544493cc531603))\n* **dashboard:** reload widget once every 10 minutes ([af94950](https://github.com/nextcloud/calendar/commit/af94950cbd81445e64f6b70dc7429a207175e356))\n* **DatePicker:** use native date and time picker ([7ed3e6e](https://github.com/nextcloud/calendar/commit/7ed3e6ea1960c0663d69ec2fc8a3b3076fe86b4c))\n* **deps:** Add Nextcloud 30 support ([00ba483](https://github.com/nextcloud/calendar/commit/00ba4834f000ed4df81cafb659c8926919ab6929))\n* disable autocompletion for event property field ([cc04b57](https://github.com/nextcloud/calendar/commit/cc04b577ccfb404a16bfec8fe929b045d479f4a8))\n* **editor:** allow adding attendees in simple editor ([7953d6a](https://github.com/nextcloud/calendar/commit/7953d6adf8372ac2b1a79926dc28212cb16bfb2e))\n* implement resources and rooms overview ([8b09651](https://github.com/nextcloud/calendar/commit/8b0965144982eb3f35a4379c9d35febb217858ea))\n* improve sidebar organization ([6bebd61](https://github.com/nextcloud/calendar/commit/6bebd61e442ef70e748c1f3962e128c1c53f46ec))\n* improve the description text ([8f9e504](https://github.com/nextcloud/calendar/commit/8f9e5048c693190d99bea9aadd0001f082ad7aae))\n* rebrand circles to teams in calendar sharing modal ([27f98ba](https://github.com/nextcloud/calendar/commit/27f98ba8aeca3541122cae949924d203e0758df9))\n* reduce header sizes in calendar modal ([3bd39a1](https://github.com/nextcloud/calendar/commit/3bd39a13cc2e070f82523582389004eab6edc780))\n* reduce opacitiy for past events ([3fa906b](https://github.com/nextcloud/calendar/commit/3fa906b67c54fb426b87fed8d41137c840f79daa))\n* refresh calenders on remote changes ([6d1a23d](https://github.com/nextcloud/calendar/commit/6d1a23d2ac17226bd7f7495303bbe21a696892cc))\n* require caldav backend ([5b3293f](https://github.com/nextcloud/calendar/commit/5b3293fabf2e0c7a05dcf5dbae8e6df3e4dd9b0b))\n* update to php8.1 ([1917636](https://github.com/nextcloud/calendar/commit/1917636fe5d8c30b7cdc95a493350aeb9631736f))\n\n\n\n# [4.7.0-beta4](https://github.com/nextcloud/calendar/compare/v4.7.0-beta3...v4.7.0-beta4) (2024-03-20)\n\n\n### Bug Fixes\n\n* add VTIMEZONE to Appointments ([496896a](https://github.com/nextcloud/calendar/commit/496896a34daa2b728d659708d083af55d3158565))\n* **appointments:** add date to booking detail view ([eeacfa6](https://github.com/nextcloud/calendar/commit/eeacfa694adeed2de9e3286c3e3b8c54ec5d7fc1))\n* **appointments:** allow 5 minute increments for rounding in slot bookings ([37b2047](https://github.com/nextcloud/calendar/commit/37b20472427614af913a081ee8ad8431f9bda731))\n* **appointments:** Decide rounding by increment OR length ([e49e4a6](https://github.com/nextcloud/calendar/commit/e49e4a6e9431dc5aefa94277a26d4c6988b37a0b))\n* **appointments:** Fix button style ([da06ac5](https://github.com/nextcloud/calendar/commit/da06ac5986022b6849666e571c7525488ef6e7f1))\n* **appointments:** Make rooms public ([d39352f](https://github.com/nextcloud/calendar/commit/d39352f9a2638691b0cffa461ebd8ad7710ffa13))\n* **appointments:** Rate limit config creation and booking ([0f77b41](https://github.com/nextcloud/calendar/commit/0f77b41942d67c58daccdac1ff3a7f80d3b569a7))\n* **appointments:** slot generation deviation for increments that don't fit modulo ([0176063](https://github.com/nextcloud/calendar/commit/0176063a82c78c3970f146552b2d45f4a22197e1))\n* **appointments:** Write Talk link to event ([dcb2524](https://github.com/nextcloud/calendar/commit/dcb2524ecc77801a6e06dbd5e50d05b10cdde87e))\n* **attachments:** Convert FileList to array ([d8ed0ff](https://github.com/nextcloud/calendar/commit/d8ed0ffab5a499ecb7c26f8b6ac82d2d961c89ee))\n* **attachments:** folder picker opening twice ([d520471](https://github.com/nextcloud/calendar/commit/d52047176599cbe5f14e58b8c5d854996ff38793))\n* **dashboard:** properly handle recurring events ([babc444](https://github.com/nextcloud/calendar/commit/babc444245f6e6cef2fd1a88773532074c9cad0e))\n* default calendar picker search and make it not clearable ([9dcc3bb](https://github.com/nextcloud/calendar/commit/9dcc3bbeca324867eb6126f0106f45af7f452d63))\n* **deps:** bump @nextcloud/auth from 2.1.0 to ^2.2.1 (main) ([#5522](https://github.com/nextcloud/calendar/issues/5522)) ([884bf79](https://github.com/nextcloud/calendar/commit/884bf79a6da0bc07a1085662e498ee043367d2f3))\n* **deps:** bump @nextcloud/calendar-availability-vue from 1.0.0 to ^1.0.1 (main) ([#5520](https://github.com/nextcloud/calendar/issues/5520)) ([ab04d3a](https://github.com/nextcloud/calendar/commit/ab04d3aa73af11963ccf52b9a7dbcee9c212b8bc))\n* **deps:** bump @nextcloud/calendar-availability-vue from 2.1.0 to ^2.2.0 ([205dbcb](https://github.com/nextcloud/calendar/commit/205dbcb93ca78e836d1006a75af6668e38190daf))\n* **deps:** bump @nextcloud/calendar-js from 6.0.1 to ^6.1.0 (main) ([#5562](https://github.com/nextcloud/calendar/issues/5562)) ([066f9d9](https://github.com/nextcloud/calendar/commit/066f9d9b97c7ae7a4e953f41ea55ae01a7597ce6))\n* **deps:** bump @nextcloud/dialogs from 4.1.0 to ^4.2.0-beta.2 (main) ([#5415](https://github.com/nextcloud/calendar/issues/5415)) ([2eb9c0a](https://github.com/nextcloud/calendar/commit/2eb9c0aefecfbf72a0ab8832d49bf2aef9e0767d))\n* **deps:** bump @nextcloud/dialogs from 4.2.0 to ^4.2.1 (main) ([#5493](https://github.com/nextcloud/calendar/issues/5493)) ([940bafa](https://github.com/nextcloud/calendar/commit/940bafaccb6f6d83198abf9cacf2bcc14fd636c9))\n* **deps:** bump @nextcloud/dialogs from 4.2.0-beta.2 to ^4.2.0-beta.3 (main) ([#5423](https://github.com/nextcloud/calendar/issues/5423)) ([bf1aab4](https://github.com/nextcloud/calendar/commit/bf1aab4152b8b5f1bdd083d767977523eab06933))\n* **deps:** bump @nextcloud/dialogs from 4.2.0-beta.3 to ^4.2.0-beta.4 (main) ([#5428](https://github.com/nextcloud/calendar/issues/5428)) ([75e3294](https://github.com/nextcloud/calendar/commit/75e3294154b25445cec918586414f8de151df724))\n* **deps:** bump @nextcloud/dialogs from 4.2.0-beta.4 to ^4.2.0 (main) ([#5452](https://github.com/nextcloud/calendar/issues/5452)) ([d717473](https://github.com/nextcloud/calendar/commit/d717473e6917b120b379170a313787402b715c29))\n* **deps:** bump @nextcloud/dialogs from 4.2.1 to ^4.2.2 (main) ([#5576](https://github.com/nextcloud/calendar/issues/5576)) ([fe03d46](https://github.com/nextcloud/calendar/commit/fe03d463615a6092bbb2ed9661848b0b45b63cb9))\n* **deps:** bump @nextcloud/dialogs from 4.2.2 to ^4.2.3 (main) ([#5711](https://github.com/nextcloud/calendar/issues/5711)) ([58df3da](https://github.com/nextcloud/calendar/commit/58df3da170679b1f04c5025fb7f9d44f0528a122))\n* **deps:** bump @nextcloud/dialogs from 4.2.3 to ^4.2.4 (main) ([#5725](https://github.com/nextcloud/calendar/issues/5725)) ([5728a3d](https://github.com/nextcloud/calendar/commit/5728a3d0eb12985cc7317f554b7c159572543d85))\n* **deps:** bump @nextcloud/dialogs from 4.2.4 to ^4.2.5 (main) ([#5740](https://github.com/nextcloud/calendar/issues/5740)) ([c7f5aa9](https://github.com/nextcloud/calendar/commit/c7f5aa9141d16908d230a8936823a4b3d30f2404))\n* **deps:** bump @nextcloud/dialogs from 4.2.5 to ^4.2.6 (main) ([#5803](https://github.com/nextcloud/calendar/issues/5803)) ([27a33d8](https://github.com/nextcloud/calendar/commit/27a33d85d1702f41002b81345ef7ec50f46e6f6b))\n* **deps:** bump @nextcloud/logger from 2.5.0 to ^2.7.0 (main) ([#5523](https://github.com/nextcloud/calendar/issues/5523)) ([c53bde0](https://github.com/nextcloud/calendar/commit/c53bde0f16ef4c234de0362078b69b065ae52312))\n* **deps:** bump @nextcloud/moment from 1.2.1 to ^1.2.2 (main) ([#5535](https://github.com/nextcloud/calendar/issues/5535)) ([b91ec46](https://github.com/nextcloud/calendar/commit/b91ec469238824627a941990e4068b5298468286))\n* **deps:** bump @nextcloud/moment from 1.2.2 to ^1.3.1 (main) ([#5699](https://github.com/nextcloud/calendar/issues/5699)) ([9382732](https://github.com/nextcloud/calendar/commit/93827329ed2651d2f37a9396be0766186a6e3943))\n* **deps:** bump @nextcloud/router from 2.1.2 to ^2.2.0 (main) ([#5548](https://github.com/nextcloud/calendar/issues/5548)) ([ffa118b](https://github.com/nextcloud/calendar/commit/ffa118b2302803a6a70652ca1bd8a097d8a5197e))\n* **deps:** bump @nextcloud/router from 2.2.0 to ^2.2.1 (main) ([#5726](https://github.com/nextcloud/calendar/issues/5726)) ([28d5a02](https://github.com/nextcloud/calendar/commit/28d5a029d4ab36ee11580b72605aa2448622a702))\n* **deps:** bump @nextcloud/router from 2.2.1 to v3 ([fa9c2a1](https://github.com/nextcloud/calendar/commit/fa9c2a126eb345cc46b5c92ad79e1220ab88f3bb))\n* **deps:** bump @nextcloud/vue from 7.12.1 to ^7.12.2 ([b6e4fae](https://github.com/nextcloud/calendar/commit/b6e4faeccc12c03e72958c49610562fcd96e5587))\n* **deps:** bump @nextcloud/vue from 7.12.2 to ^7.12.4 ([0462476](https://github.com/nextcloud/calendar/commit/04624765597a266563207970b2a6816643fb7f07))\n* **deps:** bump @nextcloud/vue from 7.12.4 to ^7.12.5 ([f05aee2](https://github.com/nextcloud/calendar/commit/f05aee245fb1fa393dbe82ab7f748c62e79bc650))\n* **deps:** bump @nextcloud/vue from 7.12.5 to ^7.12.6 ([aa7c81d](https://github.com/nextcloud/calendar/commit/aa7c81d956ee56ec432f93ad9d9c2f971b7a2b09))\n* **deps:** bump @nextcloud/vue from 7.12.6 to ^7.12.7 ([7bc57a8](https://github.com/nextcloud/calendar/commit/7bc57a8d49616302b6a6057f0182b9d490252a28))\n* **deps:** bump @nextcloud/vue from 8.6.2 to ^8.7.0 ([eb7c054](https://github.com/nextcloud/calendar/commit/eb7c05436be67c59be1a3755d40c90f770f82101))\n* **deps:** bump @nextcloud/vue from 8.7.0 to ^8.7.1 ([7833b1e](https://github.com/nextcloud/calendar/commit/7833b1ea4a29903e58b078d2d9ffdb462d3ba007))\n* **deps:** bump core-js from 3.32.0 to ^3.32.1 (main) ([#5430](https://github.com/nextcloud/calendar/issues/5430)) ([0b8ec0d](https://github.com/nextcloud/calendar/commit/0b8ec0da85a3d6605953dc53161396fdd5050c1a))\n* **deps:** bump core-js from 3.32.1 to ^3.32.2 (main) ([#5470](https://github.com/nextcloud/calendar/issues/5470)) ([df6b600](https://github.com/nextcloud/calendar/commit/df6b600e118cdd5631e2a46c4e6ede773ac5b620))\n* **deps:** bump core-js from 3.32.2 to ^3.33.0 (main) ([#5524](https://github.com/nextcloud/calendar/issues/5524)) ([63fd15e](https://github.com/nextcloud/calendar/commit/63fd15e585c49ada7b4da5b369d58706b6508ae9))\n* **deps:** bump core-js from 3.33.0 to ^3.33.1 (main) ([#5546](https://github.com/nextcloud/calendar/issues/5546)) ([b6446c4](https://github.com/nextcloud/calendar/commit/b6446c41b508384c39c61ace250f5af7e200eae7))\n* **deps:** bump core-js from 3.33.1 to ^3.33.2 (main) ([#5558](https://github.com/nextcloud/calendar/issues/5558)) ([4315fbf](https://github.com/nextcloud/calendar/commit/4315fbf61af061da2b5f17ac0086f383b34ed274))\n* **deps:** bump core-js from 3.33.2 to ^3.33.3 (main) ([#5585](https://github.com/nextcloud/calendar/issues/5585)) ([c6b1ed3](https://github.com/nextcloud/calendar/commit/c6b1ed34ba69e09ffab2e32b7f8a40b01bcaa917))\n* **deps:** bump core-js from 3.33.3 to ^3.34.0 (main) ([#5626](https://github.com/nextcloud/calendar/issues/5626)) ([0648771](https://github.com/nextcloud/calendar/commit/0648771a9fe4fd111e7cd90516b7b66e50afd960))\n* **deps:** bump core-js from 3.34.0 to ^3.35.0 (main) ([#5661](https://github.com/nextcloud/calendar/issues/5661)) ([5e60295](https://github.com/nextcloud/calendar/commit/5e60295d0e74712d7b420e5dacabed83cda62e53))\n* **deps:** bump core-js from 3.35.0 to ^3.35.1 (main) ([#5712](https://github.com/nextcloud/calendar/issues/5712)) ([84e98c6](https://github.com/nextcloud/calendar/commit/84e98c6baaf95299e17b4afe592bd310e5f137ef))\n* **deps:** bump core-js from 3.35.1 to ^3.36.0 (main) ([#5811](https://github.com/nextcloud/calendar/issues/5811)) ([752b87e](https://github.com/nextcloud/calendar/commit/752b87eb99b4190933cd639cb0d3e7d60d63f697))\n* **deps:** bump core-js from 3.36.0 to ^3.36.1 (main) ([#5858](https://github.com/nextcloud/calendar/issues/5858)) ([59fe5d0](https://github.com/nextcloud/calendar/commit/59fe5d0cacc0eff31336ed3ce99505587b49e4fb))\n* **deps:** bump debounce from 1.2.1 to v2 ([dba8c91](https://github.com/nextcloud/calendar/commit/dba8c91c4e105daa6da6f31168e72923a641485d))\n* **deps:** bump fullcalendar family from 6.1.10 to v6.1.11 ([82b6908](https://github.com/nextcloud/calendar/commit/82b6908b6aac573aa9539caab348144d8b28c146))\n* **deps:** bump fullcalendar family from 6.1.8 to v6.1.9 ([7d484a9](https://github.com/nextcloud/calendar/commit/7d484a9fa92356a0db0289e2e32e27d35d1fa4ec))\n* **deps:** bump fullcalendar family from 6.1.9 to v6.1.10 ([6d29805](https://github.com/nextcloud/calendar/commit/6d298059ce9bc6e35a1542a82406bce77bf12f19))\n* **deps:** bump linkifyjs from 4.1.1 to ^4.1.2 (main) ([#5577](https://github.com/nextcloud/calendar/issues/5577)) ([1e2df09](https://github.com/nextcloud/calendar/commit/1e2df0964a24a009d8a5fd7b0877480ffaefeec9))\n* **deps:** bump linkifyjs from 4.1.2 to ^4.1.3 (main) ([#5610](https://github.com/nextcloud/calendar/issues/5610)) ([fe924ae](https://github.com/nextcloud/calendar/commit/fe924ae3694da8ee9efa92bbcfac3ebad6887322))\n* **deps:** bump p-limit from 4.0.0 to v5 ([a8120b9](https://github.com/nextcloud/calendar/commit/a8120b90f6c30cc1bffb15fdbd63251509405565))\n* **deps:** bump vue monorepo from 2.7.14 to ^2.7.15 (main) ([#5547](https://github.com/nextcloud/calendar/issues/5547)) ([d6f7259](https://github.com/nextcloud/calendar/commit/d6f72593b56f786ebdca8540836935ad44c2864d))\n* **deps:** bump vue monorepo from 2.7.15 to ^2.7.16 (main) ([#5623](https://github.com/nextcloud/calendar/issues/5623)) ([2e712e6](https://github.com/nextcloud/calendar/commit/2e712e65cc1f5524e93af46f87c84ac76238e0c0))\n* **deps:** bump vue-material-design-icons from 5.2.0 to ^5.3.0 (main) ([#5728](https://github.com/nextcloud/calendar/issues/5728)) ([38ebbcf](https://github.com/nextcloud/calendar/commit/38ebbcf3bcc647b909b2e8d4905c0964f086d04c))\n* **deps:** bump webdav from 5.2.3 to ^5.3.0 (main) ([#5453](https://github.com/nextcloud/calendar/issues/5453)) ([50ddadf](https://github.com/nextcloud/calendar/commit/50ddadf37b5b58dfbd17ca6e93f160807db94317))\n* **deps:** bump webdav from 5.3.0 to ^5.3.1 (main) ([#5624](https://github.com/nextcloud/calendar/issues/5624)) ([c1cdd74](https://github.com/nextcloud/calendar/commit/c1cdd7416d46a8447da385a28562cd6f02a8f736))\n* **deps:** bump webdav from 5.3.1 to ^5.3.2 (main) ([#5739](https://github.com/nextcloud/calendar/issues/5739)) ([50991fd](https://github.com/nextcloud/calendar/commit/50991fdc38b5b2bf7cd3e16d866b3603978acb82))\n* **deps:** bump webdav from 5.3.2 to ^5.4.0 (main) ([#5812](https://github.com/nextcloud/calendar/issues/5812)) ([07e87f4](https://github.com/nextcloud/calendar/commit/07e87f49d93dd19a160cc87aa382ebc2e410b5eb))\n* **deps:** bump webdav from 5.4.0 to ^5.5.0 (main) ([#5859](https://github.com/nextcloud/calendar/issues/5859)) ([6244af9](https://github.com/nextcloud/calendar/commit/6244af93bfca824ce32bfec5db25b1594a159fb6))\n* disable resharing of incoming shared calendars ([c370c11](https://github.com/nextcloud/calendar/commit/c370c1163af69926c48394dc4569fbf7b5e2fd61))\n* dont forward internal exceptions ([3b5ecd0](https://github.com/nextcloud/calendar/commit/3b5ecd08ff8fc7bc7fa502cef5a0dd652447967a))\n* **editor:** bring back the three-dot menu ([de1cf84](https://github.com/nextcloud/calendar/commit/de1cf849af30518efd22d32e8f88af93bef00cb1))\n* **editor:** convert start date to user's tz for the sub line ([0716226](https://github.com/nextcloud/calendar/commit/0716226f34af38060a03021eb22988365e537911))\n* **editor:** grow save buttons and change their order ([f2e6975](https://github.com/nextcloud/calendar/commit/f2e6975f29225326ece58d6613a0ee8856a56948))\n* **editor:** show placeholder if an event's title is empty ([b6383fe](https://github.com/nextcloud/calendar/commit/b6383fe0908646bdc62d01dcf2fb04056a7ec245))\n* **editor:** top right actions not positioned properly ([af4e4c1](https://github.com/nextcloud/calendar/commit/af4e4c1fc19c07871d4fac24bcc1d0654e5cbd6e))\n* error handling for exceptions for recurrence next ([cc02049](https://github.com/nextcloud/calendar/commit/cc0204971a851819d32866543367c01ae290496c))\n* **freebusy:** free for all blocks ([fd46192](https://github.com/nextcloud/calendar/commit/fd4619256466e93f767443392e0ce77dd7f93c38))\n* kazakhstan holiday calendars ([66223fd](https://github.com/nextcloud/calendar/commit/66223fd8e8395d82be4c887bc9d6e04c8ab2ee8c))\n* missing public calendar initial state ([c9398b7](https://github.com/nextcloud/calendar/commit/c9398b72f7ff69461547cfdab1c8506af6d78d43))\n* move global sidebar style overrides to sfc ([d1edd61](https://github.com/nextcloud/calendar/commit/d1edd61e46254de5482d60994856013219af3c54))\n* restore original event ordering ([ded1f29](https://github.com/nextcloud/calendar/commit/ded1f294eb40f7299167fcb12c8d6cb63387c9bb)), closes [#4431](https://github.com/nextcloud/calendar/issues/4431) [#4646](https://github.com/nextcloud/calendar/issues/4646)\n* **scheduling:** Disable free/busy for attendees ([d9e67db](https://github.com/nextcloud/calendar/commit/d9e67dbb1b8106f8d028fce1246580c09937729c))\n* **scheduling:** Rephraze \"Invitation sent\" to \"Awaiting response\" ([5d4e3e2](https://github.com/nextcloud/calendar/commit/5d4e3e224dc47295ee75d4bb148ad63bff00e419))\n* **scheduling:** Use attendee placeholder avatars ([521b530](https://github.com/nextcloud/calendar/commit/521b5303e27dfdf793ccdbb94289e40ec393d131)), closes [#3099](https://github.com/nextcloud/calendar/issues/3099)\n* **sidebar:** hide alarm actions menu when starting to edit ([25a6f13](https://github.com/nextcloud/calendar/commit/25a6f1397a67ed6a84bb3e8c60b006d2056b95db))\n* **talk:** Do not invite guest participants ([e6e8c2a](https://github.com/nextcloud/calendar/commit/e6e8c2a531ae75c4223a5ea50036f75892715439))\n* update changelog v4.5.3 ([c0ade81](https://github.com/nextcloud/calendar/commit/c0ade818b857e458b3855267737d11e55fe6e2e0))\n* update holiday calendars ([5a45f89](https://github.com/nextcloud/calendar/commit/5a45f8916f3ff393636d664d62ee1f87c7c73751))\n\n\n### Features\n\n* Ability to invite circles ([df2d51b](https://github.com/nextcloud/calendar/commit/df2d51b66631c5149e5a4d7db73c0ccad60bb6fc))\n* Ability to render groups as attendees ([33e236c](https://github.com/nextcloud/calendar/commit/33e236c285513db01f1232722c5ea59974f332a7))\n* add a setting for the default calendar url ([7a307bb](https://github.com/nextcloud/calendar/commit/7a307bbcf0160ca9dd2202ccfe123d086de4c141))\n* **appointments:** show indicator when loading slots and show toast in case of error ([4d3172f](https://github.com/nextcloud/calendar/commit/4d3172f09773e6547b35a592eae3ffb11bc5354c))\n* **editors:** redesign editors ([3369fc8](https://github.com/nextcloud/calendar/commit/3369fc8ea9ac88e0344d9c91f12941585a7a60aa))\n* **scheduling:** Automate free/busy slot selection ([d47632e](https://github.com/nextcloud/calendar/commit/d47632eb0906de5be957fe6b8b0197af049564c0))\n* update info.xml and appversion ([1c32a12](https://github.com/nextcloud/calendar/commit/1c32a12b9c99e79ecdb49ec92db7923ab3fb0d61))\n\n\n### Performance Improvements\n\n* **bundles:** refactor @nextcloud/vue imports to use the esm bundle ([baeeae2](https://github.com/nextcloud/calendar/commit/baeeae244614586bbc3c1efd3233f26a84ec0a01))\n* **dashboard:** implement widget item api v2 ([a00f344](https://github.com/nextcloud/calendar/commit/a00f34419eed45d709082b3601cb995ca1855fed))\n\n\n### Reverts\n\n* Revert \"fix(appointments): Ignore extraneous columns in AppointmentConfigMapper::findByToken\" ([8838fba](https://github.com/nextcloud/calendar/commit/8838fba6c0c4be347ff0fa160f6a9dcaa3d216b5))\n* Augment the category menu by system tags and already used categories ([eae6dea](https://github.com/nextcloud/calendar/commit/eae6deada277e718a153a5ff48836f8dba509dd0))\n\n\n\n# [4.5.0-beta1](https://github.com/nextcloud/calendar/compare/v4.5.0-alpha2...v4.5.0-beta1) (2023-08-11)\n\n\n### Features\n\n* **editor:** make links clickable in locations and description areas ([8fa9d99](https://github.com/nextcloud/calendar/commit/8fa9d99ea7877f0355f357a6511d0698bcd9ad72))\n\n\n\n# [4.5.0-alpha2](https://github.com/nextcloud/calendar/compare/v4.5.0-alpha1...v4.5.0-alpha2) (2023-08-07)\n\n\n### Bug Fixes\n\n* add requistes link to README ([28ccf72](https://github.com/nextcloud/calendar/commit/28ccf729534b9362b1bb66584dc806172108b9f4))\n* Allow dynamic autoloading for classes added during upgrade ([c88cb60](https://github.com/nextcloud/calendar/commit/c88cb60b810fb2055db9b4806468de9926c359b6))\n* **appointements:** add context for translators for the talk room name string ([ac9e7e5](https://github.com/nextcloud/calendar/commit/ac9e7e5b03f6d9abb9b2d83010209f79ef9d754d)), closes [#5297](https://github.com/nextcloud/calendar/issues/5297)\n* **appointments:** calendar booking notifications ([a61f7a9](https://github.com/nextcloud/calendar/commit/a61f7a91559c5da569453b6ac6ded8d3e986faa8))\n* **appointments:** equalize slot booking button width ([7866b18](https://github.com/nextcloud/calendar/commit/7866b18e9a4655352e05443ee8f500ed5241ca77))\n* **appointments:** Fix disabling appointments feature ([f00ce71](https://github.com/nextcloud/calendar/commit/f00ce710d01089d85ff9f6b1df564de6fbbb66d8))\n* **appointments:** Ignore extraneous columns in AppointmentConfigMapper::findByToken ([94c93f1](https://github.com/nextcloud/calendar/commit/94c93f1f457d8fd4910d38cf6e80ef3d4caa0fd3))\n* **appointments:** set visibility to private by default ([e35ba35](https://github.com/nextcloud/calendar/commit/e35ba352eaf7fcb21b3eb4da6b8529884a8485b2))\n* **attachments:** generate proper urls to dav service ([ba04707](https://github.com/nextcloud/calendar/commit/ba047076d1d51c0f27295065a333084b011befee))\n* bring back advanced color picker fields ([3c987b5](https://github.com/nextcloud/calendar/commit/3c987b5184456bd5c438a0adf7a0dedba46f29a5))\n* calendar export button ([07b58ab](https://github.com/nextcloud/calendar/commit/07b58ab939dd166a33f589bae3857bb0bea2692b))\n* **categories:** fall back to empty array ([32fa3fa](https://github.com/nextcloud/calendar/commit/32fa3fa114c7611b41c1d61f0c6e3118c45556b1))\n* debounce calendar modal save and edit methods ([eef9e1b](https://github.com/nextcloud/calendar/commit/eef9e1b75af67e28375c10356e519f2533c5a25c))\n* **deps:** bump @nextcloud/axios from 2.3.0 to ^2.4.0 ([64fe74a](https://github.com/nextcloud/calendar/commit/64fe74ae5775c01b0e39435d6d3bb5a6a6ca6ff6))\n* **deps:** bump @nextcloud/calendar-availability-vue from 0.6.0-alpha1 to v1 ([a937482](https://github.com/nextcloud/calendar/commit/a937482c8c5e6daa4a1ca705e8c0ea431b2de4db))\n* **deps:** bump @nextcloud/dialogs from 4.0.1 to ^4.1.0 ([934f40b](https://github.com/nextcloud/calendar/commit/934f40b36da1f2c7d6e41996ed7b7d2707df6807))\n* **deps:** bump @nextcloud/initial-state from 2.0.0 to ^2.1.0 ([f28d5c4](https://github.com/nextcloud/calendar/commit/f28d5c44a97f00cd9f8a6800635b28c5289286a7))\n* **deps:** bump @nextcloud/l10n from 2.1.0 to ^2.2.0 ([bc18ffa](https://github.com/nextcloud/calendar/commit/bc18ffaaffe7fd7b6c3608bc78b57d0dce95aa44))\n* **deps:** bump @nextcloud/router from 2.1.1 to ^2.1.2 ([63a9f41](https://github.com/nextcloud/calendar/commit/63a9f411ba51b0a1cbdf9d83cd85b1fbcd912ce5))\n* **deps:** bump @nextcloud/vue from 7.11.6 to ^7.12.0 ([9ac0475](https://github.com/nextcloud/calendar/commit/9ac047536cbc9b1818d422321f832ce8b4188426))\n* **deps:** bump @nextcloud/vue from 7.12.0 to ^7.12.1 ([8e0ac6f](https://github.com/nextcloud/calendar/commit/8e0ac6f393cd2901d12206776826010d75d3a1aa))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.2 to ^1.8.2 ([b46131d](https://github.com/nextcloud/calendar/commit/b46131de549349ead6bad4a8c0187377371a4e40))\n* **deps:** bump core-js from 3.30.2 to ^3.31.0 ([1c029d1](https://github.com/nextcloud/calendar/commit/1c029d10b907ec16141628e1083c07a6d29fbb2c))\n* **deps:** bump core-js from 3.31.0 to ^3.31.1 ([bb4b86a](https://github.com/nextcloud/calendar/commit/bb4b86a9141aa0453b667f5803f16d6ee79d8db7))\n* **deps:** bump core-js from 3.31.1 to ^3.32.0 (main) ([#5388](https://github.com/nextcloud/calendar/issues/5388)) ([4dc430f](https://github.com/nextcloud/calendar/commit/4dc430fa3f563b7827a97796313618a472d84525))\n* **deps:** bump webdav from 5.0.0 to ^5.1.0 ([882008f](https://github.com/nextcloud/calendar/commit/882008fc59139d9cabdf9dd4360886f986332543))\n* **deps:** bump webdav from 5.1.0 to ^5.2.1 ([f41a986](https://github.com/nextcloud/calendar/commit/f41a986f9ca56b3d7f4fb13dd5dacb54153755f8))\n* **deps:** bump webdav from 5.2.1 to ^5.2.2 ([1e9a34d](https://github.com/nextcloud/calendar/commit/1e9a34dad7747d9996ac208ec30ff4dbba43c179))\n* **deps:** bump webdav from 5.2.2 to ^5.2.3 ([302b84a](https://github.com/nextcloud/calendar/commit/302b84a0c273f9e930164d3554ecea4cb02947d9))\n* **deps:** pin dependencies ([9ae057a](https://github.com/nextcloud/calendar/commit/9ae057afcd6512643e6802b6bd46d42a43a711a8))\n* **duplicateEvent:** Open duplicate in sidebar not original ([3dfd7fa](https://github.com/nextcloud/calendar/commit/3dfd7fab060fa534d066e26e54c06929ba13cffe))\n* improve grammar ([edfe0d5](https://github.com/nextcloud/calendar/commit/edfe0d54ab098330aad7487ea8ac72469f213171))\n* indicate if calendar is shared by me ([0e609c6](https://github.com/nextcloud/calendar/commit/0e609c6a8af590d88d65f17b35916943537552d0))\n* **public-embed:** Fix header showing on embed view ([ff17233](https://github.com/nextcloud/calendar/commit/ff17233536ae5ff2a7796a06818ff6f6bc71aee6))\n* **Public-Sharing:** Show footer with server details and eventual ToS through PublicTemplateResponse ([3a42cf6](https://github.com/nextcloud/calendar/commit/3a42cf6ced848c7a7d4f697540558f9a1f9c6c43))\n* **settings:** Fix link to personal availability settings depending on NC version ([df16051](https://github.com/nextcloud/calendar/commit/df16051b84f616bf4ad1375d2e7ee0e65e25591b)), closes [#5226](https://github.com/nextcloud/calendar/issues/5226)\n* **sharing:** skip long email addresses ([7899440](https://github.com/nextcloud/calendar/commit/7899440bbbf1a7ab9d68749595668e335cbc4913))\n* sidebar editor subtitle not respecting event's timezone ([de03f3b](https://github.com/nextcloud/calendar/commit/de03f3bc1f90e2dee797b21ec6d3caecefd3d2d9))\n* userAsAttendee failing in case of public links ([e9c0ba9](https://github.com/nextcloud/calendar/commit/e9c0ba997670007a3faaeb14f84ae829e2ca44f3))\n\n\n### Features\n\n* Add link to the Thunderbird holiday calendar page ([5f071dd](https://github.com/nextcloud/calendar/commit/5f071dd393be332d94416f0d5cc2481c45652bec))\n* **alarms:** improve email alarm RFC compliance ([150cc29](https://github.com/nextcloud/calendar/commit/150cc2976db52ce61f0ef394e148029adc2fc975))\n* **appointments:** Disable the booking button while loading ([#5244](https://github.com/nextcloud/calendar/issues/5244)) ([da158a0](https://github.com/nextcloud/calendar/commit/da158a07a753acf1c990db9174ce38835c117b3e))\n* **deps:** Revive PHP7.4 support ([5d88b22](https://github.com/nextcloud/calendar/commit/5d88b229fce11c485d7c72ff0ab5b60f30b9eb8d))\n* **editor:** implement app config to hide resources tab ([28d672c](https://github.com/nextcloud/calendar/commit/28d672c368a6fd27c40c9a06f4215d7ec2a716cb))\n* implement dedicated calendar modal save button ([f8d52c8](https://github.com/nextcloud/calendar/commit/f8d52c83ba98b451db5ae619868dc49a0b64f464))\n* migrate trash bin buttons to NcButton ([34577d2](https://github.com/nextcloud/calendar/commit/34577d2b50836eebdeea5f0da504701b368a4285))\n* support Nextcloud 28 ([da70650](https://github.com/nextcloud/calendar/commit/da70650ba9ec699225e15288d9ceb7b0b1eaa322))\n* **talkintegration:** Set Talk conversation description ([9f53311](https://github.com/nextcloud/calendar/commit/9f5331141485232e3351daa0efaacca13e9d3868))\n* **talk:** Make event attendees Talk room participants ([8820948](https://github.com/nextcloud/calendar/commit/8820948844096cf165d41abef315f07dea91eccd))\n* **view:** Introduce year grid view (with FC multiMonthYear plugin) ([e4ab210](https://github.com/nextcloud/calendar/commit/e4ab21072bc8f872ad879d1673f127b322dd7312)), closes [#159](https://github.com/nextcloud/calendar/issues/159)\n* **webcal:** Name button *Subscribed* for existing calendars ([d66843d](https://github.com/nextcloud/calendar/commit/d66843d3c4383db68b7ed24a6858c078371d7d14))\n* **webcal:** Thunderbird holiday subscription picker ([1de6116](https://github.com/nextcloud/calendar/commit/1de611697ddbcb3fb441e40da791e1cf1f467c7a))\n* Write Talk URL into location, not description ([7f39c7b](https://github.com/nextcloud/calendar/commit/7f39c7b7dc2690d3bd7532cceb1090d7f4e097b4))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([0eb41dc](https://github.com/nextcloud/calendar/commit/0eb41dc1bc2d72a91eb59375c38a36edfd29e97b))\n* Lazy load dashboard components ([e927aa5](https://github.com/nextcloud/calendar/commit/e927aa543df8183e5a084441d69ee6780c1a7257))\n\n\n### Reverts\n\n* Revert \"Create Talk rooms for appointments\" ([5b9c879](https://github.com/nextcloud/calendar/commit/5b9c8796e904004d5a40f8a1f02469fa6615ef06))\n* Revert \"Create command-rebase.yml\" ([8ffc2df](https://github.com/nextcloud/calendar/commit/8ffc2dfd0f852ad20d74c09731a00a824e6e77e8))\n* Revert \"Move event rendering to vue\" ([ca2abbb](https://github.com/nextcloud/calendar/commit/ca2abbb2e82a753bcd6b5bbf34561b862819c955))\n* Revert \"Show icon for events with attendees\" ([7582e1c](https://github.com/nextcloud/calendar/commit/7582e1c75fd9e9fb5d0c1c2f457f01fa21c8d278))\n* Revert \"Fix events being editable by invitees\" ([cb92d5c](https://github.com/nextcloud/calendar/commit/cb92d5c478819cb86f2dc801f27f6ef6178f9f80))\n\n\n\n# [3.0.0-rc1](https://github.com/nextcloud/calendar/compare/v3.0.0-beta2...v3.0.0-rc1) (2021-11-26)\n\n\n\n# [3.0.0-beta2](https://github.com/nextcloud/calendar/compare/v3.0.0-beta1...v3.0.0-beta2) (2021-11-26)\n\n\n\n# [3.0.0-beta1](https://github.com/nextcloud/calendar/compare/v2.4.0-rc2...v3.0.0-beta1) (2021-11-25)\n\n\n\n# [2.4.0-rc2](https://github.com/nextcloud/calendar/compare/v2.2.0...v2.4.0-rc2) (2021-11-15)\n\n\n\n# 2.4.0-rc.1 (2021-11-09)\n\n\n\n# 2.3.0-RC.1 (2021-06-22)\n\n\n\n# 2.3.0-alpha.3 (2021-06-04)\n\n\n\n# 2.3.0-alpha.2 (2021-06-01)\n\n\n\n# 2.3.0-alpha.1 (2021-06-01)\n\n\n### Reverts\n\n* Revert \"Add Dependabot for stable2.2\" ([9697327](https://github.com/nextcloud/calendar/commit/9697327072cef227f1c414c0764b287402ef66a7))\n\n\n\n# [2.2.0](https://github.com/nextcloud/calendar/compare/v2.1.3...v2.2.0) (2021-03-24)"}},"signatureDigest":"sha512"},{"version":"6.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.6.1/calendar-v6.6.1.tar.gz","created":"2026-09-20T14:55:15.239226Z","licenses":["agpl"],"lastModified":"2026-09-20T14:55:15.333778Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EPfUaLT3CE5OxdP8vzPDgCaknyYSJlBdTrJ0Uroer+W9pWRQbggIpAkE26RZoOT+t7KrxwDz+3znjDLoebWLZvuxMRVbxC8D5aZ5ePosUTvtc4E+7Lfk46hONoLTZazCy0mCwdSNHD2s/FpEdTPYy3FEjSN+GOGgBCkoe0FLoyHZkwHDhogJZexa2yTHZvw/np4IS+19t0HubOE5LfKUQqk6cNVNQitsq42Dwj2YNkBYDG836bx79kj1b13eKUMbzX4fo/A7R5QquXbr8QyKvNu77hEXOAxMRUdporB4PFSJoMo2K8gWfE03L0aiIi1nxd6erJ9wZQo7PA/aWvNSJQtAi/x8Pyd2EUgRddZtH5bxiDG77r1kIg4qfj4cXbg4xlWykD6ynv2z36+JVDbjRk/IewVk5M6F/TaiSfMjoDt38OuhuuapM6utfSmCz+ewVo9mmD+KRxXTzRMvwU86S8QZXRUB5Xs8CMteMIYrla7G7GdAf+yyUTdfFgGJrOns6pCHW409cDo5ly6CdpN2ySxkKpXhDQR9UtbBlhFDkeRdb7IIi6HR6xFlzCYgPgLq2MuYX5BN6Kj7sjtWhO/GAQnaRj0SmZRlKKnsP6tmMmpVJVMGriJlJJ9xWcEKlckEl+yBA2JIJKUpeHuV+sAgQYgqou27oBNaqWXZNiDVgA0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.6.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.6.0-rc.2/calendar-v6.6.0-rc.2.tar.gz","created":"2026-08-31T09:55:37.551303Z","licenses":["agpl"],"lastModified":"2026-08-31T09:55:37.645970Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"jhYvrdLNjjuUNqdSbtX96OQbbqnAilzjqNBws7HZrMODAo4Qop5NscJnc1i17VNuHeDhshAMDeE/HF1bOi3hABrYPhPqHG11y7do32hmy9q5cpP6bGZBzrj8MkFs9dyfRUJdAy4WCejfqE34LplIS+TPLwYshuL1ompdP2vb0x4VNyE3uUx+xDa8TyfNwywpEibkd9GTlcrBSoY448ruJePswjYz3309LtaQcanU5GWpxlZCq0ZMeVOvh0jwulhLnzMxY3Q2BTs9pvVhuFXLVLanhk/02MTal6c8ntOnNiT0hktxhf9NMjqdseJS7DM9QCFnQ/96rPrsojRKnOij5zanAxg34PjNH06irDRoGZ58Dxb/dDdv8k2IVMdTorty/nkfJVUSTslHjeLqRoN/CSSnpQZ0lbMrDSdxOPUiDuRa3VVzBtpAseREF6mj0h2GfUuImU1Sb3dZT8u1/VWJm77BmkFpUihEnWNtfl9P/BfD63cjoYOKb3LqrySLZZkJXBMPPwFvkZ8TeAyabTGCYJDbSC9JH6EMFj3naRYfOWEBuE2W57s0nu7hVs4DMkezu0aXwuAQKHDszWxcyaGsoaRo8t89MQWFk44ltWVBVnxWa3j0lLWn9Nl8eCD/W9m+79dHrJrPEtpB2VPA1YEm+q+REx0Qd6s1jTQ9YivMsjQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.6.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/6.6.0-rc.1/calendar-6.6.0-rc.1.tar.gz","created":"2026-08-27T16:18:20.286463Z","licenses":["agpl"],"lastModified":"2026-08-27T16:18:20.348286Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"tX6X8T5UJq/QYcvr/xFRKScS8nvDK5IYhDJJfJSuWBnOGfjz4/I28Ws84pkbjtc52708CQrS2TJZqkU7TZ6bMC79+9U02tQSuLP4kYqcd5GgyPQcAdJYQJoEOS4uoe1qRA/WnNfnflt9HSvf+hhIASXFT38g53xxFbndL+hu4qbNKiaAMKIdTS0Li6nwbU4A7gNhyWNMArOuw/+Bghg8aVc2SC6FNg+pABngufoJ9egw6me+AHCV7kiD2hLsQTD0/JSaFNwx/UfJpiQyJT/OYHLDnf+KqAbEY9nveN0hK50akkulGAfzWNBFFVHsKuG/gv5vs5MQma/wQ82pIQaqeO+uzcCySO4wJ8LJm5coB4rA0pOjOclbm2+HlYlEarXiI5oW254b1a4blFf6vhtUUbsakA85Ipa45+/9YtA0+hfVFuXLkm9ELphM+yvq9NFwQ9IvdZg4/Icgi0YThJIzHVfFv/swIkHwWDxZSJYh++rDIwljMi3vEsGQSsGhRTTsbvvEmBazgnPJjcQvPwcKSN2dmp0Qq+IHVPXNxfgUx5isoLE9BDB9KnHx2pa09FHwByGtx0vNjGfokAeuLjeakt8Z2809sAKudlmfl+7EVDrNGimzSHvKmafJhYkH2VunLQqOLBguWLuuWhQK9hfI8VpqPld+mIrJ85LWMzUmbVY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"6.5.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.5.6/calendar-v6.5.6.tar.gz","created":"2026-09-30T14:43:55.652463Z","licenses":["agpl"],"lastModified":"2026-09-30T14:43:55.703907Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"VlCEshIDvme4UfLJfCIyVInEla7aSR5r9ulLpS4ekerzjOd49YjO56F6kMcPRzHKO37GgQpQO6WcfxDKf84hFe3K6rJWMMP9Y2nCYBCaSIQTLVL6GnVXWrgYjQB8ndPAm7mtX6tvYwTsHTJ7/lQQa7xfpBdJw1iSCdcnp3xYDM0FNoiU7cljDzYaMuLygefWu6JQzqljjr+Y7I2qq0bonFSp5R+N6kgLeB73kRiYmptxJ60+dKRBIUHP4UT0PRE0VG46Irv7PTRYpvN42PkQCFj/Yqm2w+8DQuovzGJCh8+0dq5672wQincuvbIleLROUJojk3ST7u8WkHgPd4dAjGrtd5KoGP/dI3bRZknhcD2IhkBcNzB7USM8e0+GeRnsoM2gDaanH7oXUVUfIDciIECytH6MQuN2iulI+fhiPbxY1nrWkVbTI++I7yT+n4jcKx1zd2LbJFXXASKJacJ0D9/rRfHhD5TpDWGrq7YSFm9pGnISBE8onML8xmO8ug7U7bD8BNzq8MDdpi02WDMRDeW8pjhVWyrKaVPlsCVC1LnCQ6A+FFuMKiSblUHnVigtbu3PPD/JSrQwvKnBxkVDS+DlJP11BLq+56/zsacOASHr2zBxW8ZYInxHSNFN0eRcFwmx0AxwclLNN2kIQJfNyxBPoVUFoz2zdxPxEmOCIpA=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **alarmFormat:** text special characters ([d31cb4f](https://github.com/nextcloud/calendar/commit/d31cb4fabf8749ee8e6a38fd705d240915c0144d))\n* **calendar:** focus today in list view ([578e91b](https://github.com/nextcloud/calendar/commit/578e91be5d79c9624b400ea5383d329658e10b1d))\n* **calendar:** focus today in list view ([87998c4](https://github.com/nextcloud/calendar/commit/87998c48a0676e620d832108b629f76298a28c81))\n* **calendar:** hide creation header in public views ([f6a3cbb](https://github.com/nextcloud/calendar/commit/f6a3cbbdfb7ea129a21041ed996feae2642ac8d0))\n* **deps:** Fix npm audit ([c6c31ac](https://github.com/nextcloud/calendar/commit/c6c31acbed15a6be57e5bf3bb0542af6309afd50))\n* **l10n:** Update translations from Transifex ([e01373e](https://github.com/nextcloud/calendar/commit/e01373e9b2fefdae45059903c710a2e5e73995ab))\n* **l10n:** Update translations from Transifex ([332be59](https://github.com/nextcloud/calendar/commit/332be5910d36c758d2b46d1f63c20856e97615aa))\n* **l10n:** Update translations from Transifex ([03d701f](https://github.com/nextcloud/calendar/commit/03d701f3e0481f15aae48bb0efa6023f3d1a68e0))\n* **l10n:** Update translations from Transifex ([894f567](https://github.com/nextcloud/calendar/commit/894f5673c03e22cf5098bc86ec1992998ac948f5))\n* **l10n:** Update translations from Transifex ([679d81e](https://github.com/nextcloud/calendar/commit/679d81ed1e6a7b2116edb4718a2c2e339425f361))\n* **l10n:** Update translations from Transifex ([e1d9c43](https://github.com/nextcloud/calendar/commit/e1d9c435fd5e56efcf50b612f440e622ed396d90))\n* **l10n:** Update translations from Transifex ([d97ad43](https://github.com/nextcloud/calendar/commit/d97ad437f3caa30e3fe969b49dd0f458a42b46bf))\n* **l10n:** Update translations from Transifex ([3a2469f](https://github.com/nextcloud/calendar/commit/3a2469fcd482e0b2cb7055eacc35c8018c8ab3e3))\n* send invitation to participants on proposal conversion ([dde059c](https://github.com/nextcloud/calendar/commit/dde059c61e4b8ef1d36c4326ad80403bfd6edf23))\n* the event color saving issue ([33f373a](https://github.com/nextcloud/calendar/commit/33f373ac3d2b1e61d8cc2b3eac2f89ab2f94b7be))"}},"signatureDigest":"sha512"},{"version":"6.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.5.5/calendar-v6.5.5.tar.gz","created":"2026-09-20T13:49:59.185011Z","licenses":["agpl"],"lastModified":"2026-09-20T13:49:59.243074Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"TBBgKqdj2whxtshvNBz3myFxNgcWuYGLI6O1JL6eyXqjHkv/eg9LnqJxpLJw33EB0wav9En+nDMv3mhOOjZLz/3HxvkQW+wmz6mJgChpKz7aWKxcsBAyUoGBhn9P1WVJyYqZNcQCOMWh/xvKZPNu6YAsv48TyPw+ktcaInb+IBYsKtLEoGAXu2QQfWeBNmHfeYSmAKbryvyfFvAGeIBLrIckUQA4yei6hLI7rUapw2sOhRtBn94bFutjNNBFyg0uH+WSXrYlvrOzkOQLzRY8HLpqhP8LAeOI3pInWAZ5GBGO2wiSpueesB0vvd4wr6bpwC5ccU5N3kYkke2CGo78D4ghqQuY9HUOiopoI6mrblYIcKRCEgNfxK+yGzc2bii8hWNKItJhgeJsQUHl38vz4Vj6+YBk+jgw5pV3CHDuuuIAle6wrpljFqPnEb12QO0ivRVhDzrs4ox3XnfxB4S8nR4ko9Pfop/R9Ptx7F4xzH37LdZgm+n88niQTKfI4ZGOjpdtyZDvNYO13aasbfWtCdTrlgrb1uqQylT5yPyea0hrU4jH7x4EAFeQrg2UmGo6LS+9crRm7bQu2LdR8TzNhnKQBsPBpboEqT6FtiNG8kqL+wmYqJ/nOc1xPHFkOgheWuA9GYkClZ8XwJrlDnN4jT0A1rSamEgHDQgVQH1Mx/8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* appointment layout ([7539380](https://github.com/nextcloud/calendar/commit/753938023ce02a53a96af1a609659894f6c00f1c))\n* **appointments:** avoid nested booking form scrolling ([e413be3](https://github.com/nextcloud/calendar/commit/e413be3edc03d259b65fadd7a6ff14b38c170fce))\n* **appointments:** catch actual exception type for invalid timezones ([1da4374](https://github.com/nextcloud/calendar/commit/1da4374bea0e9b799e4c7cb08735bfa5f6a846ab))\n* **appointments:** prevent unreachable overflow on the booking page ([a4d38e7](https://github.com/nextcloud/calendar/commit/a4d38e70619611a29fba116398c38bafe0b0e642))\n* **attendees:** respect user ID full-match setting ([44f763e](https://github.com/nextcloud/calendar/commit/44f763ec14c095981851decf5b324e1157e36522))\n* bell icon for events with reminders ([c5705ef](https://github.com/nextcloud/calendar/commit/c5705eff9a5fc084601eda99ab7777a8eff3c644))\n* booking slot ([6490c9d](https://github.com/nextcloud/calendar/commit/6490c9d6101764e8b81ef8f964f8c7cac54576a8))\n* **calendar:** use sidebar open lifecycle for unscheduled tasks ([a809116](https://github.com/nextcloud/calendar/commit/a809116b54349337208fd6a3d52f40c6152fc6a4))\n* correctly declare icons on NcEmptyContent ([6d4f662](https://github.com/nextcloud/calendar/commit/6d4f6621a620e0af8f9a5146943be2fd37d9d99e))\n* **delegation:** display delegated calendars after enable status change ([574215a](https://github.com/nextcloud/calendar/commit/574215a9fd02824d17ebdb4935fd0f54794960b3))\n* **deps:** Fix npm audit ([cb6f7a6](https://github.com/nextcloud/calendar/commit/cb6f7a68f9730b61a55d4a8a86dd9412531e0a6b))\n* **deps:** Fix npm audit ([8579eb8](https://github.com/nextcloud/calendar/commit/8579eb8b67e53c3fcf814ad2da6de8b756d17e96))\n* **deps:** Fix npm audit ([1d6cd30](https://github.com/nextcloud/calendar/commit/1d6cd30af74eba0af86d0d868e2a0c91d2de7dc3))\n* **deps:** update dependency @nextcloud/vue to ^9.11.0 (stable6.5) ([a0fd3b5](https://github.com/nextcloud/calendar/commit/a0fd3b553fd8458aeb9d65781c789c16b1ef2cb4))\n* **deps:** update dependency vitest to v4.1.11 ([#8904](https://github.com/nextcloud/calendar/issues/8904)) ([d99f0c8](https://github.com/nextcloud/calendar/commit/d99f0c8875848d3f40f4d9ae6ca5c9ac06fbbda5))\n* do not assign invalid icon property on NcActionButton ([0bc32ca](https://github.com/nextcloud/calendar/commit/0bc32ca869c9e35fade27f2f655af9f1cc1bc4a6))\n* **editor:** correct width and border of property select styling ([11af928](https://github.com/nextcloud/calendar/commit/11af9280acc75af51e05cc7948c87ae0c01854bf))\n* **editor:** correct width of property select for narrow view ([00c1d9d](https://github.com/nextcloud/calendar/commit/00c1d9d01c31eaee39095f1c37217c46c543a3b2))\n* **editor:** keep close action in simple editor ([e5b47b3](https://github.com/nextcloud/calendar/commit/e5b47b3dc9c4c60c2dfcf9d5ce9440207504e6eb))\n* **editor:** prevent close button overlap ([b2d3fae](https://github.com/nextcloud/calendar/commit/b2d3faed090e4e4c4928a681267ee39581459e2e))\n* **editor:** use useHotKey for editor shortcuts ([8e9b0e3](https://github.com/nextcloud/calendar/commit/8e9b0e31fcdd6b86170b1a87af8846ab1043528e))\n* hide invitation reply buttons on cancelled event ([3fba2b7](https://github.com/nextcloud/calendar/commit/3fba2b743e11838e8dd628f70737c5103a362623))\n* **l10n:** Update translations from Transifex ([cfba346](https://github.com/nextcloud/calendar/commit/cfba34654e8d0e2f5bfb58c3f7b09aa33d3bfd8e))\n* **l10n:** Update translations from Transifex ([5006b0a](https://github.com/nextcloud/calendar/commit/5006b0a304764fe63372e5e6b94ab37c5cf59266))\n* **l10n:** Update translations from Transifex ([4559076](https://github.com/nextcloud/calendar/commit/45590768586bcc437532043176c5396387716b4e))\n* **l10n:** Update translations from Transifex ([87eabee](https://github.com/nextcloud/calendar/commit/87eabee75e0dc16e9749f4c9e8675e7a8613dfbf))\n* **l10n:** Update translations from Transifex ([c00fc87](https://github.com/nextcloud/calendar/commit/c00fc871effbc7b1d33f3bc362fe395e30f86b31))\n* **l10n:** Update translations from Transifex ([e2ea80f](https://github.com/nextcloud/calendar/commit/e2ea80f4838b98e090358a7efce3b7b988c66dde))\n* **l10n:** Update translations from Transifex ([6a08e06](https://github.com/nextcloud/calendar/commit/6a08e06d1472ba2ad0397ef78d72053061add06f))\n* **l10n:** Update translations from Transifex ([692df39](https://github.com/nextcloud/calendar/commit/692df39c4f9baa331169956125b4adfa15ff3457))\n* **l10n:** Update translations from Transifex ([dd1cd5d](https://github.com/nextcloud/calendar/commit/dd1cd5d3087651f944474f62520a355d241c4e9a))\n* **l10n:** Update translations from Transifex ([70e3559](https://github.com/nextcloud/calendar/commit/70e35592dc0aba734108e342428198ac695d37a5))\n* **l10n:** Update translations from Transifex ([9642ed6](https://github.com/nextcloud/calendar/commit/9642ed6fb867f6a5331f51d8f5bf855a6d273a1c))\n* **l10n:** Update translations from Transifex ([a7d9654](https://github.com/nextcloud/calendar/commit/a7d9654eb0a307a4df1ba9b7a9bbcc2677f98d40))\n* **l10n:** Update translations from Transifex ([15673ba](https://github.com/nextcloud/calendar/commit/15673ba48d57ecad39bdf1309ad5fe8447182eb4))\n* **l10n:** Update translations from Transifex ([2ec01c9](https://github.com/nextcloud/calendar/commit/2ec01c91f0f52229c53eeb22c284d950eb6ada89))\n* **l10n:** Update translations from Transifex ([6e2d7d1](https://github.com/nextcloud/calendar/commit/6e2d7d1a354ec07f0289789e55fd07037319ea95))\n* **l10n:** Update translations from Transifex ([e7ad230](https://github.com/nextcloud/calendar/commit/e7ad230bf655534294d485fca5f288f5b55d0a7c))\n* **l10n:** Update translations from Transifex ([a5e3824](https://github.com/nextcloud/calendar/commit/a5e3824a36fa6683cece074a63269aefda136c47))\n* **l10n:** Update translations from Transifex ([095b4bf](https://github.com/nextcloud/calendar/commit/095b4bfc2be55bece405edac9e057b04cabc4781))\n* **l10n:** Update translations from Transifex ([5065317](https://github.com/nextcloud/calendar/commit/5065317a960257489ebfa36522ab72c90e95727a))\n* **l10n:** Update translations from Transifex ([f8db111](https://github.com/nextcloud/calendar/commit/f8db1116e94cbe3bb9590b772c22bd961a02a726))\n* **l10n:** Update translations from Transifex ([1836f14](https://github.com/nextcloud/calendar/commit/1836f149e2169c57d0b273e62d51a9087ba399ad))\n* **l10n:** Update translations from Transifex ([0080d33](https://github.com/nextcloud/calendar/commit/0080d331714f199e99cde96aebb0b05eb82e86ad))\n* **l10n:** Update translations from Transifex ([2592cad](https://github.com/nextcloud/calendar/commit/2592cad1b9bbd3a90f0d86b9227c79177d02e1ba))\n* **l10n:** Update translations from Transifex ([ff06824](https://github.com/nextcloud/calendar/commit/ff06824180eac80e0867f78a2c44ba2e3924bc76))\n* **l10n:** Update translations from Transifex ([f1e3414](https://github.com/nextcloud/calendar/commit/f1e34148bf57a2000d11cd5c0392ab9e57da81be))\n* **l10n:** Update translations from Transifex ([43f2928](https://github.com/nextcloud/calendar/commit/43f2928c68702fd085f96315790523703c5887fe))\n* make period header translation reactive ([20225f1](https://github.com/nextcloud/calendar/commit/20225f1ed50807800c3a3e981932dba6a6dace90)), closes [#8756](https://github.com/nextcloud/calendar/issues/8756)\n* meeting proposal date range heading ([89250b3](https://github.com/nextcloud/calendar/commit/89250b3b4ab1cb098c6de6ec78bdd252a95c3fd2))\n* **proposals:** handle invalid timezone fallback ([1408d9d](https://github.com/nextcloud/calendar/commit/1408d9da696218158b3338d7ee80cde4d6e06908)), closes [#8914](https://github.com/nextcloud/calendar/issues/8914)\n* **proposals:** handle network errors without responses ([95cb4f0](https://github.com/nextcloud/calendar/commit/95cb4f02afa2b6f571714b8ec355a5c82a80343a))\n* recurrence rule truncation on nth occurrence save ([84cef1c](https://github.com/nextcloud/calendar/commit/84cef1c28c1e2525a6641de9218def152d05e61f))\n* render single-date tasks and task checkbox visibility ([4fef792](https://github.com/nextcloud/calendar/commit/4fef792b6fee84b7f82d49a14e0a1af9ea7739b1))\n* replace custom load animation with NcLoadingIcon ([e8a4d8a](https://github.com/nextcloud/calendar/commit/e8a4d8ad873fa9eac54ff13534488203cee1a8f1))\n* set reply to on emails when using system mailer ([89c905e](https://github.com/nextcloud/calendar/commit/89c905e624236c1d990d5a7619aceeddbfa17448))\n* update, delete, accept, devline all occurrences ([9b4e09c](https://github.com/nextcloud/calendar/commit/9b4e09c7f5dd922dc5e4a5429723c3c921775d1f))\n* use properly aligning loading icons in NcActionText ([cbaee65](https://github.com/nextcloud/calendar/commit/cbaee657dd3ec93cc4d2c9db664a56bf544e1d33))\n* use shorter wording ([2ededb5](https://github.com/nextcloud/calendar/commit/2ededb5f764e02fcc805399242633029d32cf541))\n* use standard hover style for navigation date picker ([1eba18f](https://github.com/nextcloud/calendar/commit/1eba18f8b1ba56d34cd0b37aea8321da976a7f14))"}},"signatureDigest":"sha512"},{"version":"6.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar/releases/download/v6.5.4/calendar-v6.5.4.tar.gz","created":"2026-08-19T12:52:29.437560Z","licenses":["agpl"],"lastModified":"2026-08-19T12:52:29.516089Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"M595GlD3yjGNRcTxvIn9DcwIwkR92UzRkmHd5ozF6aoMFp6LQolynfNh+6Ae4K87Q1ShJgrhXTSz1ELHOTyfLBvhX1FpMDt34aLXw98OBn9T16u3LLZLpkAYoJ/22Uw0iGiExEoSs3W3bjKpAgX45jLy8OKGaLkXLbHmucOa1wtHoM9gYncNUWFFzSlVRBo2p20MLBsh9HqBGYp9W+TCzrLvEVjdIbyLgZRxFQkVL2K++n0zDfw+1U/4i/4xCv68D7BN6MIOiSfTVeh4+Xxv3Z7gXdiuSsqM3kGggL2LhhO96u7BWd9ZmeKrikLBubLUs/fqR4sPSjoCgSYWfBFbmqy9ci+3rOm6Yu5+1Vfeswvn5vC8APaXgHl705ufBEW5MkcfOxdQgBUDvvKcJyNJzuaMwuWH73BtoczPMT2egFTpFsZx26AuU1SrOIZE/nCDGnfE+k3Jx6a1eOt5OIcRFLve7z4KAUBoCgfGGoSm0gF2sVtH4aFHDFkhqb8wtMCIfChwg2+AunwGBQYjLQDGEpHmcP9vjVfMQr3T7aum4JFDDNBkZfyfxEwdBcdOP5iUFhbU3xB5b88c+Ipw5Q0CfJ8uG0G8yzXG8/P497eZvGdkAH7dImTgHtqruk9QaZUJpwkcNd+SYW/Ss4RK0nXEgk0VXvqx1kIA5X065CS0SLY=","translations":{"en":{"changelog":"### Bug Fixes\n\n* add missing workflow ([bd7ae7e](https://github.com/nextcloud/calendar/commit/bd7ae7e73e79cf1f6112a8899b8ff5cb2bf6e8b0))\n* **deps:** Fix npm audit ([51ae5b1](https://github.com/nextcloud/calendar/commit/51ae5b1926ca19eb491de13e28d0871678e97654))\n* failing pslam tests ([ca26446](https://github.com/nextcloud/calendar/commit/ca264467c03b0703745a33191e82216d03113eab))\n* **l10n:** Update translations from Transifex ([3a15c12](https://github.com/nextcloud/calendar/commit/3a15c12c93eba5e0eea133ab4e8ba44c55213046))\n* **l10n:** Update translations from Transifex ([86a6497](https://github.com/nextcloud/calendar/commit/86a64975236f4702c26d4563f62703db68fb3e39))\n* **l10n:** Update translations from Transifex ([cfd8d13](https://github.com/nextcloud/calendar/commit/cfd8d1392fbc78857da2db96377d902611374807))\n* **l10n:** Update translations from Transifex ([83e5330](https://github.com/nextcloud/calendar/commit/83e5330a794646329ad6ef68b80bce2216e92cd9))\n* **l10n:** Update translations from Transifex ([3421ebc](https://github.com/nextcloud/calendar/commit/3421ebc188311eec93564629d39636f9beed1650))\n* **l10n:** Update translations from Transifex ([161045a](https://github.com/nextcloud/calendar/commit/161045a04b312f730ce90ea2d6872231f0790d59))\n* **l10n:** Update translations from Transifex ([dcc1a66](https://github.com/nextcloud/calendar/commit/dcc1a6638f33fa6f375d867f5b976f56867a44d1))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jYWxlbmRhci9tYWluL3NjcmVlbnNob3RzL3dlZWtfbmV3X2V2ZW50LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jYWxlbmRhci9tYWluL3NjcmVlbnNob3RzL3dlZWtfcm9vbV9zdWdnZXN0aW9uLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jYWxlbmRhci9tYWluL3NjcmVlbnNob3RzL3dlZWtfc2lkZWJhci5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Calendar","summary":"A Calendar app for Nextcloud","description":"A Calendar app for Nextcloud. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Like Contacts, Talk, Tasks, Deck and Circles\n* 🌐 **WebCal Support!** Want to see your favorite team's matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 **Search!** Find your events at ease\n* ☑️ **Tasks!** See tasks or Deck cards with a due date directly in the calendar\n* 🔈 **Talk rooms!** Create an associated Talk room when booking a meeting with just one click\n* 📆 **Appointment booking** Send people a link so they can book an appointment with you [using this app](https://apps.nextcloud.com/apps/appointments)\n* 📎 **Attachments!** Add, upload and view event attachments\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries."}},"isFeatured":true,"authors":[{"name":"Grigory Vodyanov","mail":"","homepage":"https://github.com/GVodyanov"},{"name":"Sebastian Krupinski ","mail":"","homepage":"https://github.com/SebastianKrupinski"},{"name":"Thomas Citharel","mail":"","homepage":"https://github.com/tcitworld"}],"ratingRecent":0.5,"ratingOverall":0.9391891891891891,"ratingNumRecent":0,"ratingNumOverall":74,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhARMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDAzMTMyNjQwWhcNMjcwMTA5MTMyNjQwWjATMREwDwYD\r\nVQQDEwhjYWxlbmRhcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMm6\r\nFTeqgzCXprkU83VM4/DrZWn3kqtfaR/edkC4gYT3ug7RHa/Uv1C/S++vr7pvgpnk\r\nYzQoavl/0Qlh5sKEYX+0ud/LQDoiidwBRDckFUQ1bRfVLxAD9UAVvDRHxDqJMOx2\r\ngZArbeQ3ztdSHZp4ThzBFWq2FILsJD86weG7LwHjzhW6SWgLb/YTLbuuW6tRCDVV\r\nbtB0I/a0vCwj2u91Chw3u6pWWjPakc9DQrIDH4HCIBKQ4zVrYDxAmJDRFGDvVVWx\r\nuIAeux8sd8drqSMqAhX+XMcZPRD71NQTWbCupSwWO8kgjmZnBpIiBNpzvMQzJf3A\r\nQloZtjZ2RDXAQG88eTeT8pp8yEOCEoDLpGdraKxJrh/z2Dsk30JP3lOiNYJ9vBaB\r\nC8NJbJ3oAlG7THwUaFF9fsdAKoTwzs5Xms04TI7W/v4Z/GClOzMymnR1T4sR72Oy\r\n3WaMNHv/1QGffvQn2/TtZt23Ou3P083xWx2vn5FgTcac8+x85vRgWsVCA4hq9v6m\r\nAlktB0+UWDEXpDTKD9BdFNWM8Ig9jQf7EJrvTLNnS7FIJZMB4GK8lpvPxyvACWnh\r\nR2hQOe987Zvl3B1JZNO5RvtSeYld9Y9UfMgW1aPRweDNjSuZYAKlugx1ZoyI5HyA\r\nQjfzAwicIMwZsCJDV/P5ZO8FE+23rdWaoJczpBqDAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAHQXwvj8q5khWR/ilg3JGYpmMNBYHE9OeDaOcNArkKaGMd478SDPOXeu\r\nyW7hCvNEpiTk5g0h3g3yleZFws0xH8fPsQgZANgvQXb3RCcD61NL77d0cMTr7Xzr\r\nN3Lq/ML1YLc/WwL4uV1XvpMQMwALFL1p63BU2c0ysO31zbLOjMKAJi0hHFDYz5ZQ\r\nD3xxtc17ll3B5IqrMnMHRqmOQ39Sbe56Y7T4agaIz/sUWpseo85D5kt7UAIOR+Mr\r\nQ0Bl/QinETk72afGR46Qvc7tC1t9JjQQD3AUbEGuJdGvXjJJ9GREYu01XoODmPdT\r\njXXOI8XIOK6kxXhPHUc3iWu9b4KqGm0=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"projectcheck","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-04-08T14:18:15.911948Z","lastModified":"2026-10-10T15:28:16.546540Z","releases":[{"version":"2.0.25","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/releases/download/v2.0.25/projectcheck-2.0.25.tar.gz","created":"2026-04-08T14:20:30.124198Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-08T14:20:30.174134Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=37","signature":"XlsnGJgp4l+5BMHh8/hYSnEcadcJg912AJk8xjH+o4nW6+dxkiBaR8BVbsyHqnLIKNWY/8HBZY916jrbT9AZBlXv618r7w5A6NgJAopFxLIyaWB19okxg26K+vaU/1o3iAG8zYbozGL95nMF4DPtSlLxTd5qQZW2/GjuViW0muiiQd0RJM4xWd+3n6SVXYUtpai1MY2gpqVTHi2iYZd8NKH0KKE2SkYUwUyMJI5xX5p3T/1KS7Ta9PLwlmBzoANqafzytue66+7QZPXF/Bi7dOtjiCAgMs+UsIzqTh5ov1vFDm5DJjFOBmyuMT2qV27hWzGb10XNf26YdFyDui68ql3IKGqaCYnavLufi/+u9E080Klym3Dv0q3jnQ9wT17LvHxX17rV0PSBBpaoD5WEtOynCor4flT44aum+POpnVyBQ+rRO3WyZt6jtBaBcIKt/cGPaPbxi/2eK3oogdPe2MYGgtECOJ3+qVP37AXrnaZUxBsFlcvixYiX9wb5OvfL2zClm/bXPtmjDLZl2UG6cLS1csuldJbq9j26sL/y1tnNd683ITxmJpAtwRrBvnKgU1Npj5gqzI8HJzThL0pndonnAFiDCKG210NOfdtGFbihpCwVVxIoriPfi8rdHSJP0MgKP/QeO3Zk8bNQ3PHrmhGdbeYajU+zHwG5bTmoH3Y=","translations":{"en":{"changelog":"### Changed\n\n- Documentation: public-facing bilingual **README** (German / English), aligned with ArbeitszeitCheck-style structure; screenshots and install/support sections for the standalone repository."}},"signatureDigest":"sha512"},{"version":"2.0.103","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/releases/download/v2.0.103/projectcheck-2.0.103.tar.gz","created":"2026-10-10T15:28:16.539379Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:28:16.667091Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"f99H2xeKMVG6NTqvSCWUUD/7xUX931swLmvpbY1woAK6le0CU4N4jBjnSB0v/LBmZKSQYrMwpaOIb19G98A++Qq1TfzhNrPlsulZ33M/H4WulCi23It+Sm9xjkvGsdv74BCkEh9FS41ywVsiF1YsJyBc0r3eq2vbkJu3/lmMZE/rIvOi06ch33cQVhZNrbRusz1aFsiHDMQ6V5/vz4cMfZsHKoJcUlBuCuIXL0HPEQCW+E9XhZwQ5e7PklWPlZCLuFlGPfomyxFe26qTmB2LDTGSVRNc7VemeUkv8R/rOqILUmx1IhkrlBl5vl7dZMFykMK+DiH+dCAW+HjZyUv6HlH9iEXtgO+q6obmsP9veM6HYWkgESzFWIxF3Q1dAI83Y/fw1DZjV0I7Q3KUSUeAfnNDE3WCF6XlC9o52qync5FbxdlXPL9RsmXmsJovP+RH4wBaR1N63WPS7tFF3cvubS3NWkAkU9nkr1meOgaHynUTHlAi/6g+1/ZbI6ol943r6t0is1xVDSapTx1nBqsaGQvL8iow7gnosgqgFkP2yKg2jcU3tyy8r3n8p+VPKXSWFhRM0H+aB8N+uSgwK8eyoxKaBdE78K2TXRxSvhlwKRPxfwiTK8E4xwFg+X3Ztff+dA5GHFHdGBsU8NaEXMgAuKH2p23+F2r7F7Ha30tmcbg=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.15: projectcheck exit_met seal"}},"signatureDigest":"sha512"},{"version":"2.0.102","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/releases/download/v2.0.102/projectcheck-2.0.102.tar.gz","created":"2026-10-04T19:11:03.517399Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:11:03.630165Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"flPoJF8jgOdN8bNqtq6xQX23qUAtY/q3BxIwazXMb+OUaMQVRR6bGvJsF+WvSA24xtBfFQRO9+8CeHBtkL5QAa1uA+wNaBnb+jOvwbm2FEu1fl3T0fOocN7TM4m5KMjhb9/L4YsyygfNBTsFJ278O+sHKyx2Y2kAzYbGcR+rkAlwuej0NECrCt2qDdDywrsiOJrnLVtkNbmpiFMx0b3Mbf4QtE1kWWuuW9jdu4DmGQnv1La2uZT9QENeOsg2qD1j6GfhEgE3PK64X90HA4CCUOsu1UQMN1Ma1SpeguYN3M/DdPfL40J/OhOoZ52g/YtxopY5zbi3n5iQ+gPOnss51uEW3Gcg+xoOzfPmKR7oFG7uyvHm6v3OA6X2RpM6Ms8MhBqVa5Koi1J8uzyGHfy/nGeaol+FzQwtu3dxYBob64GpRHkFqiEZA7U7XJEu8yGZDY5fSo85eyTWIyJ4TkaGpHJaUr88/orEh5S/EAgt1codcIi3I+Eiqk1yCnpaMjS0wREdft3v/CXh7NCp9QR2ehh+dXyzlt/TL7zPWYaWfAlQvUnnACpAVdTT+SZIrz11Mgw2ZbUtWBFpvZ9IgvuNhVH8VOTqm9hZB9WalIT+EeBzGDFYkOjvpGSps1T3r7JeNss9DL2oC0a3l995NIAPVPpSDpLIVvEfDB3H3okftCY=","translations":{"en":{"changelog":"### Fixed\n\n- API hardening: stricter request validation and error paths.\n- Localization fixes.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.\n\n## Unreleased\n\n### Fixed\n\n- **Files sidebar listener:** removed the `LoadSidebar` registration and the dead `LoadSidebarScripts` listener. It requested `js/sidebar.js` + `css/sidebar.css`, which do not exist in the package, so `jsresourceloader` logged a level-3 \"Could not find resource\" error on every Files page load (#13)."}},"signatureDigest":"sha512"},{"version":"2.0.101","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/releases/download/v2.0.101/projectcheck-2.0.101.tar.gz","created":"2026-09-16T11:49:49.392736Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:35:38.691769Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"F/kA2mkw/uSW9jDpvcsIBE7+6Y5vXwXwj0ULc1VJBNU1Bt8SwarbUq3BwN4G4sZZOPkf0GaIGQygae/X+Gj+JPcJMZ93bGXJUx3eHr2yzByw2scth4eqitqIIhDkPvxkOhWmF4B5VnmT6rOemoY7djDL3q8KvoM+rTC1tmp7L52sg57838S7sUmvzN08ABtr2Uqx5Pv2jsVDsksh+c2XVkHSAt6NyK7pg/Y0HKw3oR8lYbhu8iGpdk6RsB9J6sf6X0xg4apdGqe0DEgh05zWGazgugFtfsJdsmTTFRnS/7Qu1pS/JBaaLcTRC/2DlVf8FEGleT/3ALh4m/yXUl6FJNz2aB4Yk1kG8wMzcPjtoRBfAwQ9I0iYTO+IdG8u70M8MTfbbSiJRyEA3iRf8pXF7t/C3plkcPDcpmzJeyvVw5h5ZGMRphOAAhViiS4PJ0es6nKZAqYvGSb03AiQf2M9CWBKA5vl/hIoJ+Pl04z+AdwKT+L8kRdkJLH7WWOngdHQPOo+7jnm5DVT6C2hXJAzVbBGXLfOmhLL4yGC0NQ9qHKwIyIAIDy2xgRnioFsSPUyTeBUHgPXSbH/311e20qPvkCZXoLlOBftF75PVTo+cbQbrUY+DPts9sk6beT1OoHA0POX5TmifLLGpF+TPFiE338D7S0OmsFSB04poOA0ZOg=","translations":{"en":{"changelog":"### Fixed\n\n- **Mobile companion bootstrap:** restore `projectcheck.companion.min` (and `serverNow`) in `/mobile/v1` bootstrap. The 2.0.100 packaging pass dropped the floor advertisement and hard-blocked official ProjectCheck Mobile against licensed servers.\n- **Project file API:** map `PermissionDeniedException` to HTTP 403 instead of generic 400/404.\n- **Mobile booking:** atomic create + idempotency, entry-list `hasMore` pagination signal, and `serverNow` on rate preview so companions stay calendar-aligned.\n- **Symfony Console (NC35):** `CleanupCommand::execute()` declares `: int`.\n\n### Changed\n\n- **Nextcloud:** `max-version` raised to **35** (current stable **35.0.0**).\n- **Get the App:** dedicated `/get-the-app` page route for the store / companion CTA."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wMi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wMy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wNC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wNS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtcHJvamVjdGNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9wcm9qZWN0Y2hlY2stc2NyZWVuc2hvdC0wNi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-projectcheck/refs/heads/main/screenshots/projectcheck-screenshot-06.png"}],"videos":[],"translations":{"en":{"name":"ProjectCheck","summary":"Track projects, time and budgets on your Nextcloud","description":"# Projects, time and budgets — in one place.\n\nProjectCheck keeps customers, projects, people, time entries and optional budgets on the Nextcloud you already host. Book time against projects. Resolve hourly rates on the server from dated history. See remaining budget before the month runs away.\n\n**Free web app** (AGPL-3.0-or-later). Companion apps: https://nextcloud.software-by-design.de/\n\n## Why teams install it\n\n- **Run the portfolio** — customers and projects with status, dates, search and sort\n- **Invite the right people** — Nextcloud users with roles and permissions per project\n- **Book and export time** — browse, filter and export entries against projects\n- **Price with a history** — server-side rates from project, employee master data or per-person on the project; append-only rate history\n- **Watch the numbers** — optional budgets and remaining visibility; dashboard overview; files on projects\n\n## Clear limits\n\n- Mobile may preview rates; the server stays authoritative.\n- Prefer `ProjectCheck*` in new integrations — `ProjectControl*` / `OCA.ProjectControl` are deprecated aliases.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–34 · PHP 8.2–8.5 · MySQL/MariaDB or PostgreSQL"},"pt-br":{"name":"ProjectCheck","summary":"Controle projetos, tempo e orçamentos no seu Nextcloud","description":"# ProjectCheck\n\nGestão de projetos de TI com registro de horas, controle orçamentário e precificação de custos no servidor.\nEscolha como as horas são precificadas (taxa do projeto, dados mestres do colaborador ou por pessoa no projeto);\nas taxas horárias nos lançamentos são resolvidas no servidor a partir do histórico com data de vigência.\n\n## Recursos\n\n- Gestão de projetos e clientes, atribuição de equipe, monitoramento de orçamento\n- Interface orientada a WCAG, alinhada à família de apps Check\n- Histórico de taxas apenas com inclusão (append-only)"},"nl":{"name":"ProjectCheck","summary":"IT-projectbeheer met tijdregistratie en budgetcontrole","description":"# ProjectCheck\n\nIT-projectbeheer met tijdregistratie, budgetcontrole en server-side kostprijsberekening.\nKies hoe uren worden geprijsd (projectsat, medewerkerstamgegevens of per persoon op het project);\nuurtarieven op tijdregistraties worden op de server bepaald vanuit historie met ingangsdatum.\n\n## Functies\n\n- Project- en klantbeheer, teamtoewijzing, budgetbewaking\n- WCAG-gerichte interface, afgestemd op de Check-appfamilie\n- Append-only tariefhistorie\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen."},"pl":{"name":"ProjectCheck","summary":"Zarządzanie projektami IT z rejestracją czasu i kontrolą budżetu","description":"# ProjectCheck\n\nZarządzanie projektami IT z rejestracją czasu, kontrolą budżetu i wyceną kosztów po stronie serwera.\nWybierz sposób wyceny godzin (stawka projektu, dane pracownika lub osoba w projekcie);\nstawki godzinowe w wpisach czasu są ustalane na serwerze z historii obowiązywania.\n\n## Funkcje\n\n- Zarządzanie projektami i klientami, przypisanie zespołu, monitoring budżetu\n- Interfejs zgodny z WCAG, spójny z rodziną aplikacji Check\n- Historia stawek tylko do dopisywania\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej."},"fr":{"name":"ProjectCheck","summary":"Gestion de projets IT avec suivi du temps et contrôle budgétaire","description":"# ProjectCheck\n\nGestion de projets IT avec suivi du temps, contrôle budgétaire et tarification des coûts côté serveur.\nChoisissez comment les heures sont tarifées (taux projet, données maîtres employé ou par personne sur le projet) ;\nles taux horaires des saisies de temps sont résolus côté serveur à partir de l'historique à date d'effet.\n\n## Fonctionnalités\n\n- Gestion des projets et clients, affectation d'équipe, suivi budgétaire\n- Interface orientée WCAG, alignée sur la famille d'apps Check\n- Historique des tarifs en ajout seul\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite."},"da":{"name":"ProjectCheck","summary":"IT-projektstyring med tidsregistrering og budgetkontrol","description":"# ProjectCheck\n\nIT-projektstyring med tidsregistrering, budgetkontrol og serverbaseret prissætning.\nVælg hvordan timer prissættes (projektsats, medarbejderstamdata eller pr. person på projektet);\ntimesatser på tidsregistreringer beregnes på serveren ud fra historik med ikrafttrædelsesdato.\n\n## Funktioner\n\n- Projekt- og kundestyring, teamtildeling, budgetovervågning\n- WCAG-orienteret brugerflade i Check-app-familien\n- Kun-tilføjelses taksthistorik\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang."},"es":{"name":"ProjectCheck","summary":"Gestión de proyectos IT con registro de tiempo y control presupuestario","description":"# ProjectCheck\n\nGestión de proyectos IT con registro de tiempo, control presupuestario y precios de coste autoritativos en el servidor.\nElige cómo se tarifican las horas (tarifa de proyecto, datos maestros del empleado o por persona en el proyecto);\nlas tarifas horarias en entradas de tiempo se resuelven en el servidor desde el historial con fecha de vigencia.\n\n## Funciones\n\n- Gestión de proyectos y clientes, asignación de equipos, supervisión presupuestaria\n- Interfaz orientada a WCAG, alineada con la familia de apps Check\n- Historial de tarifas solo de adición\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después."},"de":{"name":"ProjectCheck","summary":"Projekte, Zeit und Budgets in Ihrer Nextcloud steuern","description":"# Projekte, Zeit und Budgets — an einem Ort.\n\nProjectCheck führt Kunden, Projekte, Personen, Zeiteinträge und optionale Budgets in der Nextcloud, die Sie schon betreiben. Zeit auf Projekte buchen. Stundensätze serverseitig aus historisierten Tarifen auflösen. Restbudget sehen, bevor der Monat davonläuft.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later). Companion-Apps: https://nextcloud.software-by-design.de/\n\n## Warum Teams es einsetzen\n\n- **Portfolio führen** — Kunden und Projekte mit Status, Terminen, Suche und Sortierung\n- **Die richtigen Leute einladen** — Nextcloud-Benutzer mit Rollen und Rechten am Projekt\n- **Zeit buchen und exportieren** — Einträge filtern und exportieren\n- **Mit Historie tarifieren** — Sätze vom Projekt, aus Stammdaten oder personenspezifisch; nur anhängbare Tarifhistorie\n- **Zahlen im Blick** — optionale Budgets und Restsicht; Dashboard; Dateien am Projekt\n\n## Klare Grenzen\n\n- Mobile kann Tarife nur voranzeigen; maßgeblich ist der Server.\n- Für neue Anbindungen `ProjectCheck*` verwenden — `ProjectControl*` / `OCA.ProjectControl` sind veraltete Aliase.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–34 · PHP 8.2–8.5 · MySQL/MariaDB oder PostgreSQL"},"it":{"name":"ProjectCheck","summary":"Gestione progetti IT con registrazione ore e controllo budget","description":"# ProjectCheck\n\nGestione progetti IT con registrazione ore, controllo budget e prezzi costo lato server.\nScegli come vengono prezzate le ore (tariffa progetto, anagrafica dipendente o per persona sul progetto);\nle tariffe orarie sulle registrazioni sono risolte sul server dalla cronologia con data di efficacia.\n\n## Funzionalità\n\n- Gestione progetti e clienti, assegnazione team, monitoraggio budget\n- Interfaccia orientata WCAG, allineata alla famiglia di app Check\n- Cronologia tariffe solo in aggiunta\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo."},"sv":{"name":"ProjectCheck","summary":"IT-projektledning med tidrapportering och budgetkontroll","description":"# ProjectCheck\n\nIT-projektledning med tidrapportering, budgetkontroll och serverauktoritativ kostnadsprissättning.\nVälj hur timmar prissätts (projektsats, medarbetarstamdata eller per person i projektet);\ntimpriser på tidposter löses på servern från historik med giltighetsdatum.\n\n## Funktioner\n\n- Projekt- och kundhantering, teamtilldelning, budgetövervakning\n- WCAG-orienterat gränssnitt i Check-appfamiljen\n- Endast tilläggbar taxehistorik\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst."},"nb":{"name":"ProjectCheck","summary":"IT-prosjektstyring med tidsregistrering og budsjettkontroll","description":"# ProjectCheck\n\nIT-prosjektstyring med tidsregistrering, budsjettkontroll og serverstyrt kostnadsprising.\nVelg hvordan timer prises (prosjektsats, ansattstamdata eller per person på prosjektet);\ntimesatser på tidsregistreringer beregnes på serveren fra historikk med ikrafttredelsesdato.\n\n## Funksjoner\n\n- Prosjekt- og kundestyring, teamtildeling, budsjettovervåking\n- WCAG-orientert grensesnitt i Check-appfamilien\n- Kun-tilleggs satshistorikk\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-projectcheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre."}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhMvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDA4MTIxNDE5WhcNMzYwNzE0MTIxNDE5WjAXMRUwEwYD\nVQQDDAxwcm9qZWN0Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCnGWkj07UrC2FdaeNJc+xBFH7w/WIIPUt71ifpzBp0qL5gZnqFQnzo5WZjOTJ3\nU7xE+LNU1sT78pWsYfQ1xf7XiTv73CQyA1HOp94IVtGbAHqy0H+YknAT5ZafkXzR\nZ8h2Z+3FtHTDgxYl+yODHqxE6IRoHKURRYEH3pQSUWUPtIOZNzgOigwqsu6+xs2h\nqd5WlLTnZsWpq7ImvFy+C02LPJCbiSRJC7TWebi4eFF093ahLpCDwYk9Xuuwi4RC\nCvhw4nb9VDjb8dfhpoAPtXWEhf0DG5Oub3WzxayEc0eslZGUMeUHTCCNAdhi5ZGa\n2wOuLqwGIxS9HaU0+yga9JD8o6DNZYRzlvCDdo3rTkj4mWQj7oKE7j9kJA1azfBw\n5hACi0UpKvXnQgiI2EoHpQWDLStWQocIOuUq1E8Sh7d13TvXPV3CFOikSMp70LWG\naf2YXEJ2oc5tPOxrA7fzvUKDUA2FVu/05ugAWT8mcBAXO2gWbIQlPiE+YTJNx3iM\nU3Fru6IX4W1g6Th6s+HLSFFy0/TmMGag5gpgNiAQgFJt1KISIH3jqMBAVMfaYYyb\nazQ9avPRVs0Rd2c+odmeasMWPo2p84FpfLksb54LxtB4sY+hxi4lGzUkM7St0nL6\nMcNb1pjqEv17Zr42A18LR9T67+LyZ+UC6MvS1H4w8C47lwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQA2i1Mruq6FqgEMT1gRId5iqIpt4OUs7QXjvjekGO9VE8bkXwmP\nXaOyXN/HNnuseB5hKeFjxbDP3+En3P0JMyvMK9cpqHfSIT0gbKoOVtNHThv6Xy/Y\naLvBIZidh7BAdev1BHfz5kz3NxWJJ4/wCcRed/OLyUyvrGQXwll4liSuUK9JOk7R\necXG7T0SNtGtvLYOQGzi83p9GK2XYlL+67OjA2FAzFim4FAIKCP1TZU7N+UVHHu1\nLek+II6n9FZBQHZ1MZ5tnz9UbZgnMTO/6yY2QXsNCBMcnan4ba86T3bYQaDSpEmi\nJXrvIsXl+pvXSnnwgAKsu3K+afkHEFh2nzGz\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cas","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/mziech/nextcloud-cas/issues","website":"https://github.com/mziech/nextcloud-cas","created":"2021-08-04T18:57:59.463580Z","lastModified":"2026-10-18T22:43:55.687720Z","releases":[{"version":"0.2.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mziech/nextcloud-cas/releases/download/v0.2.21/cas.tar.gz","created":"2026-10-18T22:43:55.679413Z","licenses":["agpl"],"lastModified":"2026-10-18T22:43:55.721236Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"FiIjv3NtRuf5MJ5GsKOwl+AVuTXOyWKa2nO0E1VxStedLU6rC93GiRSIRUq1BmPN9Gs1GhFY11M4n4ElbrXqW/ANn6OdpxRSEhDv3ZSbYcP6ipgsltRnY78dmPR9gHoVLOtHhnuZ5a6iXQC1H2uZVflHeJ30Bj4SpwS1SlPqZeE7hDVaU/EUH06S+YIL3nKTMac7HTbNr7d3E4muHpXqgyUPjLP53XgdlfHY5uNRx5VZRcCrRT+6WKvG7kU7Rd+9ngmZmsgNhuzZIzhGVC4Wq8NzJfd8hwJexY31ARdgHYM+DvGRnVp5nyvkx/1m/MppWnnzc9JphltUU+vuH7+Hkpeqvb6eGteF+9WegUWNdE4Bv5qwGx2gJ8Rc4djbbKFxtLgza+g80LZDlq4VuDteoBYZEJ7Miwo+3Ud+OslJWyeECPNG6roYhHyxmci9UO3EsqBbniOlzS0nJDuGT8aknA2b/J14y1ocdLaJtcGJ6tlodgH31qHQ3yBshzjOxsnKi4ib3eO019arM2ZnfTjVaNnkzRgXfUOYU1dgfqxTiHkQuwQEWq5ssbyFYz7hUs23r68xXuZlIV1rgn7rlICw5xPfzdquk3Am5YeM8NipNDBJ07VGPJS8vd6KuAIJe2tn9ZIKNkyD0HWMGujsTYI2mbVx8DrgjCL1pYYnAR8QtV8=","translations":{"en":{"changelog":"### Changed\n- Verified Nextcloud 35 compatibility\n- Upgraded dependencies to Vue 3 + Vite workflow"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL216aWVjaC9uZXh0Y2xvdWQtY2FzL21hc3Rlci9pbWcvc2NyZWVuc2hvdC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"CAS Server","summary":"CAS protocol server (IdP)","description":"This is an very basic and experimental implementation of the CAS server protocol for Nextcloud.\nIt is not another user backend for Nextcloud, instead it allows you to authenticate 3rd-party or\ncustom web applications against the Nextcloud user database.\n        \nIf you are creating a custom application and you want to integrate it seemlessly with Nextcloud login,\nyou can either follow the [CAS protocol specification](https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol-Specification.html)\nor better use one of the many available CAS client libraries."}},"isFeatured":false,"authors":[{"name":"Marco Ziech","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/jCCAuYCAhGLMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNzA1MjEwMDEyWhcNMzExMDExMjEwMDEyWjAOMQwwCgYD\nVQQDDANjYXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEV/6Gs/Av\nH1IFQVbr9n4ZFZJGoJua9iA4M+ux98XJ7aE96TIHbPOyMxYtQIUxvhaPeTh0JS3J\n8V6GTXu2+1n8Q5pA+upj2LNx1kMaOamzf1MPRlNSLDAbP8pZQnK3/B0K105iQci8\nXkF8l8AF/EcowxJ6dERNsxaQrnhIcWJjrb9ChT/xJI2DS2EIRjCfarVJx+seDS0K\nXzPOXKpmSGPwX9Up8RWQOwbJBvIHYGvhyhmR04AsnEBnsngVSlvXQHSj0xAAUcYU\ngWEva6f89rWdgRoSl5UXWC9uXCMsrEKNVJgZN6SCw2ndBLmhrB5oEs7c41xE5mns\n+1kosK8oHFjRBXynGVZUgNFlF6DPFVU1qRhJJR3tU+j838R7OGMQ3UjtOiXiYRJY\nyL1/Mq11KYCKxo2Ye+yOzL4bdPv1Ds1VGFVL2XZsDaMNtbpLpHWqw8LC0CpFQIZp\nwiNM6x3/w3uIcRuK9J4PVUGLlYl13Myy/wMGz+2LglhFSoiblTtlLgkXf1SNbQ9Q\nQQ+c9DOSTzA7cBhB72P/jcTo4QDUUFXVuzwryt4HXsJCFyKgoLRnVqQtDGRJh61i\nHyxrjrql7O2neTvhIDPUv8RAtxywPB3caqZKALd8D3gmxlJoSPBVsMfi3Sg2kJAK\nzlLHfGCV9vLznF/Li5l963BCpGuBoD7y/wIDAQABMA0GCSqGSIb3DQEBCwUAA4IB\nAQCXQbJrao65l7euHYmOc9jo37bW9A1ZlKbs7zFQq4vhz0kPyMYXkodLZD95XC3/\n7ceS/HBSN/jIXBv1VzQpdgdDsaNsn210ukWVq9WGxUgzfiG94Od+maOIWtj95b0V\nvj8mr/gQYFlscpDR5jbQiurIJO0zNItHuZd5O7VsYDb+WRT9tbOyOjP17XmxUHuB\nsIPcEQ0WCygnTGViXhmD0j/UoDE7cNz8qlE5cndjgovFWLD85tcztcvF/DENUf+H\nvmH0yN045FJ5elLV0gu/ykrCnS7POPIFsS5INvGJ1e0wxys5raUE/trxumonUiEE\nTRKBJ8YtpzYPr+7Ti4FPwWf+\n-----END CERTIFICATE-----","discussion":"https://github.com/mziech/nextcloud-cas/discussions"},{"id":"files_accesscontrol","categories":["files","workflow"],"userDocs":"","adminDocs":"https://docs.nextcloud.com/server/stable/go.php?to=admin-files-access-control","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_accesscontrol/issues","website":"https://github.com/nextcloud/files_accesscontrol","created":"2017-04-25T15:01:31.873103Z","lastModified":"2026-10-13T07:25:58.368294Z","releases":[{"version":"6.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_accesscontrol/releases/download/v6.0.1/files_accesscontrol-v6.0.1.tar.gz","created":"2026-10-13T07:25:58.363910Z","licenses":["agpl"],"lastModified":"2026-10-13T07:25:58.415846Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Ni4aMUdERtqtwRAjpzLALwe9hiyZIZXt5z8jgDz7qNnC4F5HmyYw4XA0xb/pAgS/6jUeuZtet2JUaFYHR2oP8hm4C45ZXx4kvZISP6WJCP1iwpFHH0GXRYybMYCX8MUwoQPpLDn00JA5aUcs2odQRY8MbE9n01V2wj4P9XNIY2vfDmZ4fQ+fk23nmyyc4ty/p5Rp/wGHxjqBkUSETGeoGGtY7gL/OC23FiCKOlB050UnU28hk9YVppNS6XikOHPtPpX7FO1TI2vMpVEX7yECVs93o9+0kZFbLuzV+n+9cGpW17260eaNA61soiEHwwjXl/rjQRrxyqvsfyJBchfPC/NHHmqAOpa2MEriOPsV+r0s4c6JRtnWSsxb9qMW9PZoQmduwiHEIEAGd3WaW+K0KgPvw7c5qMYZVwmD7IcrihWoWpzXLOnuBZLMCM6Vy3cSliZgnHkh4jffzFUTWNU7ifh2h6wVAYyUEKXoes6rWHQQ0F6xhWU1utencWUFJid8cj1trvZc+gV1C8uddvGTwRqGGc0nXwvRicKbhjmBStIiXSdpbMQsNgVBDcQHoqBf5a7WbdQrlOxg3CSaH3BVj5ixDUbwHBXUjSyKaHkazax/ElXsJpDrgIHbZGN9Yr9QOStw0BiVI6VnPq4nVz3RTwqPaoFSvz7fkSx0MbTkqxY=","translations":{"en":{"changelog":"### Fixed\n- Block hash method\n- Deny direct download link when path cannot be resolved\n\n### Changed\n- Update translations\n- Update dependencies"}},"signatureDigest":"sha512"},{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_accesscontrol/releases/download/v6.0.0/files_accesscontrol-v6.0.0.tar.gz","created":"2026-08-07T10:04:38.891500Z","licenses":["agpl"],"lastModified":"2026-08-07T10:04:38.965182Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"rg98eZiulokVe72aNOD63rYLZMhFTWA9Nn/VTAqmwx3ibenGYeFDp+PsDIOUG3wLiQoTIyF3xpq38+r8oDSvZvvuvkXjOrNnLmUq/MaiIqmNnb3Yd35InhncnZLBd82jrH2SezY1xZ0yuElMXFWuCxQaP76N2MQN40QxkTPCAxEDlj3galu39BN/45WMrWHfg+jEhsRSpFWQLifZ2Uu04k8g/YwCDZS9FkrdM2bdv3q3x3T+LPKfiurtGhIlSlgJPCDzqOYtgyfz77cGFHrxlo6ZXivHKLUYwM7L827BjYBJ6IwaMBLO7IeJlK+vk+4JnWysft84tNN6PwjkxNDnNdNwzvJCoRULytwCf/pOxn8BVlB5KDAT4g/cQVYoE5Ayp3+D6Dfn1YilgHyRK571hST63bvvmWQLCMeQZRJJnw0F2YjPR9yMNrQFhOYYYeJMcPWjxyrAjdxbWKEdMFF8eKfAGGwriz896SDk85msqrTbV/wiiF0xk62Np3IDjeqlQQC2eUwDeQZg4qy+iuJNLfHooG67UDG0yLbBzOf/sxSYx5TAQQJMGkQc03ipAeYY/Gdk6ezT6X7YMzqmyAmCEUALnX1A33zPdA0nCgichWEObm4Qi4G4b4LOl8hmc0NIcG2+ozkgDP9JEM68rBFEaCQHrDIVxkMNs8/oe2yd3YI=","translations":{"en":{"changelog":"### Changed\n- Require Nextcloud 35\n- Require PHP 8.3\n- Update translations\n- Update dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9maWxlc19hY2Nlc3Njb250cm9sL21hc3Rlci9zY3JlZW5zaG90cy9mbG93LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"File access control","summary":"Control access to files based on conditions","description":"Nextcloud's File Access Control app enables administrators to protect data from unauthorized access or modifications.\n\n## How it works\nThe administrator can create and manage a set of rule groups. Each of the rule groups consists of one or more rules. If all rules of a group hold true, the group matches the request and access is being denied or the upload is blocked. The rules criteria range from IP address, MIME type and request time to group membership, tags, user agent and more.\n\nAn example would be to deny access to MS Excel/XLSX files owned by the \"Human Resources\" group accessed from an IP not on the internal company network or to block uploads of files bigger than 512 mb by students in the \"1st year\" group.\n\nLearn more about File Access Control on [https://nextcloud.com/workflow](https://nextcloud.com/workflow)"}},"isFeatured":true,"authors":[{"name":"Arthur Schiwon","mail":"","homepage":""},{"name":"Joas Schilling","mail":"","homepage":""},{"name":"Morris Jobke","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhA/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI1MTQ1ODQ4WhcNMjcwODAxMTQ1ODQ4WjAeMRwwGgYD\r\nVQQDFBNmaWxlc19hY2Nlc3Njb250cm9sMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEAyeZjBLvMBgiZd1+bSTZxiRh1fJ7PAK4dBzBvHL/TOEfE2uHYmI++\r\noPxZ7NxtDL2PtRI9sj1h9oCGtu+DvKymklrwxst3SbYZhfcUXDY8hU9Yfn2PNkdl\r\nZTP8ffmei3ec+1msbCF+j9HAmnsfgcN7JY0aVY7d0dySHEaPHitHemU7+jprN4xf\r\nYzcpURwfw/8MkGmkjLX1t7pFoHpDX6YQMViXh1Tyo4w+YexFl/ORwBOs6BFeT9Ak\r\nQqPiXShLww5GvLQZOyq0MQS1grqq0OT0Gyr8p6k2guxOO05+q5QcUFxBMvme9vHB\r\nV5z/IIoZl08Q3ymMHMLulw3uaOhqllDsTDeGhLpzDQ82JncGwiBm4vNFs6GbltOJ\r\n0Jw/SslZGW+93eXzGXIabVpYL+AzHAtm0ikRGPS1IV0ZJotzd4rL5f3IchO184xC\r\n3UnVTcIjD5zqD9uIpcd9ZaNLud0uUtyr99v6rtpb3tu4sjD9Xkrdv+LraD5Ix4BT\r\ntFuPxkUP6fvWh98sRftoSu6GgoEuFEHvE+4TFsvdOduli/V1T+D6QXCDpx+UD6gI\r\nu+aGK24zj08oBVYkjuIlk2EretNfFgHY5bhyRRgw+csFy1NBotD+SuxY6UC0/RbQ\r\nkIUHijFTjtRRpBWw70tgtWOnsSOLykkUQ44muxU/fLulUDhiTmN8AF8CAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEANkD2TWwuz0JXYQOyn5mFvCienqAxyV6Nxk82lyJh\r\nxUmxfIEsPfPZy36pPv5rk0rJNS0lC3KAk3vPBtgxll5lsbgjkES/VgPoe1jBtxb+\r\noCWShgLpUMBbKgpQy/mRxnQlbk7Q91GJo0ScEZwnCKVBIGYxKMimtdQdbT8tpCxZ\r\n6Fx15ypJek6ML83w4OKa/AnD1SbuMhDoAEfqr/J9ALD4vdk+sWjfs52MYiLnYyFX\r\nyzwr8fVdm/2dV2PgiWvg3v8whJyjXUsXpCMxakLhQZGHP0DbVO47Q0f5v2CO6z46\r\n6UggP/MVb8NdFHCI6g3pEl+qGyNHRrTrHOJ5SPmtE9fWog==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"uniteos_notifier","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://git.wechange.de/gl/code/uniteos_notifier/-/issues","website":"","created":"2025-09-30T18:26:56.086963Z","lastModified":"2026-05-18T08:14:45.400306Z","releases":[{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://git.wechange.de/api/v4/projects/467/packages/generic/uniteos_notifier/1.0.6/uniteos_notifier.tar.gz","created":"2026-05-18T08:14:45.390988Z","licenses":["agpl"],"lastModified":"2026-05-18T08:14:45.438112Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"FmmBNE1BXj7SNv6nRsalQwY4fY6qxyz3nO4jNuyFfCSYBuM4e69K/A8tiQPgOcvmkQgcHQOGj8BWT18Vsxm4P6Fhlt1dRayYJg2d4Wd63s8p0k6zTFTOUBMqQdqQrJ8JrxBiUWFFe/xJMTWzp3YBL5mYY/Z8+H9LPIa4itcFDnOAMzB6N1w7mPKdpTnnY8jmrQn1b7GbSVXcrexoH7a3oW38as5jRHQ7+xR5Y3GXCmDAIGRsjvQOSdXtxqKiS56YRrP9B1Q2SNVF8YmVIp0R4788GNwXKglb+ZMRllLfngfEgevns5LkRxBgDKBgSqQWhsqFmblzCTHJY1WV7jmLveA3l75ue2fft9SyGKq2X8l9dTOZY7nqv57rNYXRuINJxiiua0aLKNVzaWAMWUDHA7Ky9Plg4QNreMbgS8mOJcu1/UVW92MfattdzWyfFhz9L6bZpRh9t0pyMdgCzwZWz5P/hlXUKU1rsxm22rhuWgnurfzOqLlT0DI9v2inI+7ie2mK68xJMBmLj061QO5Q7vQ/4KgSnSUfEJ2pT2q9dlfeYS2KBlRxaLz7GYETSQ+WqgnM1JBB1ytiRQF+P6S1XSgGFhVUE2YzjRSLl1Jkvsc1Ay89SWO1gVOFuKcDWRwwWPASqsd2LBd7ep1Tazp6xJBUg/R2SJULT2WqxnpO+PQ=","translations":{"en":{"changelog":"### Fixed\n\n* Bump maximum Nextcloud version to 99"}},"signatureDigest":"sha512"},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://git.wechange.de/api/v4/projects/467/packages/generic/uniteos_notifier/main/uniteos_notifier.tar.gz","created":"2026-05-18T08:13:54.818329Z","licenses":["agpl"],"lastModified":"2026-05-18T08:13:54.830058Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"ksQzNUeUBu9uwNIGTqED9JS3KUqTuSnaZu52bXEO87JFdnFDy/YpLmoYuP/2KtUfc58gZFhREJfAGtnUf0gOEkv0WQObvstvwQ4XThI5zzMPYvtQD/ahG6vbvO9cEV55hQMacibxb0JNWjhcE0QJWZTHIV2mfI/WInnyZooLK2r5AQD02H4RWkue7MdPxXNuV+c9nHvEuDnu/EGNqMjg8p+hG/IodqJ+bpZJeAXNQTiJq0mWQ1mqI/xQJmB6uE5ApNwjGbefcxtVgtAij9JLMaeeOmldSYneD4crZe8sY0xlRH44mrn0uUwkSeevMG2o4y/vPiLsV6Rl5fCfOZ70O60oZwEqfUlnn/eG6TOlRm1PI1NHdNyaTNZI8SLXrLJKP/D8GyoaJWInK1I86+zrSINc87jBPMlRkrvgOdGP7TCO9Yn0fXmFwao/8ZbnGETP0WoYNa34zu8OvaJv9730Ron1G/RF2sm+BTCt4okJbOBMJpzR+UV9OH9d0IvlyWqvLCG9Xjl9fx5Ro+5NsS+QaaggX/hMnJnUd44W1KOIFbtJw0s4d8k/BlpYcecTeDtytiHI9zbF+fRkAbWfLaDG6TNxVJ2Kzz1K8MbqZA/hfk1NnE5T1Pq9jse7089X+UEcX9ZtvSAPUFDsu1Lui36pz1w72j3e5bJaQrrCxFCrzOI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"UniteOS Notifier","summary":"A relay app to send notifications from Nextcloud to UniteOS developed by wechange","description":"This app allows forwarding Nextcloud events for a deeper integration into UniteOS developed by wechange eG by presenting a selected set of events as user notifications."}},"isFeatured":false,"authors":[{"name":"wechange eG","mail":"support@wechange.de","homepage":"https://wechange.coop"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhLBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwOTMwMTUzODM1WhcNMzYwMTA2MTUzODM1WjAbMRkwFwYD\nVQQDDBB1bml0ZW9zX25vdGlmaWVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAyKBxMKMdHCbIxj4dAhMd9F3FxnGiTtUJZ0Afocagac2Vx8oo0vNqDvBZ\n9qIYlISZX66gJBdhKsg+qcSbLlr1Z8VtGYVNBaOmSBN9zgaWDigu5NicRsyR9Pvj\nRl4KXPdHzSmEdQZ8ECDpNcok3LF6IAl+aCianvhSRrQ5bzsE7wQ0rdHQjOR+yeMp\nXJnuu8Fb5obg1EUR/x6N3fsdZNShPp2Qzru23fsp/cepGRBSRU/WRAyOyXKQhkCp\niS1pPUuQLq2AdXlZq65xLoka9S32beYsZxBNxIpD81yNJ0QERwK/2KTJy2eDBx71\npqF8JP+hta02SeWfpkrjyUS3w4eXKPa0p4RShkaJK0t7j1IworAR+9bQ6jwo85W0\nv40yBMd3no4hLbC00h6YVqQBf+RSwZ7QPP/CDr5uHds5qgOBocDtcBObqAtoJlka\nC6ikaHN+EXzv0UkFZB7/N0lUrg1coczR6H3cikb5htWS3zOiG7i+P/bojcvJ+hjw\nCFa3KvGE4EOZaXa/ya6Fm2xVXJFsdYeCEBxuFIKF3y1PTsd0OO38jfO5lVzSY7ju\n9UJBy0gQOeT+/ddXk4upUk3vxwSDgO2CoPwkIJl/4HYsywLyXTpmA/I8J5J6cRtg\nGkjEM6dIlZqS8GsEtlauasULqmIA6ttH23Gg6InYfnm+FK0Q9RkCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEASj7NySt9OzJxxeibCnJnFzQrR53wm2qxoBIbD9yWCr1l\n/Pzv2UpPfmBJA9uZzQ1lBoGHxQej5drBel6tT6jp8zKlCXcL+ig+/ZHGfqKeHPEb\n8JzmgupAqAYzQUeZZmIqXt8KLOHZXoJifi/bpcSMrrnexppptmZWP9ECVdisTl6C\nkDu62JD8Ow1xkgAf+qarPllQQUKKsCCVSkJ0CbZv/6MAvV+D4AN2pxRywgufxBbH\nTl/6esaaDOWbCjCnV/p63BNFfORbmru5Ev6VHsS66KDJ5QZgJr9B1LKTL5KjPY87\nOS8cVmYEOArETPPvLbL5NTySf2Vm4PPGsVyJHD5gZA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nxtree","categories":["office","organization"],"userDocs":"https://github.com/dec0de/NxTree#readme","adminDocs":"https://github.com/dec0de/NxTree#installation","developerDocs":"https://github.com/dec0de/NxTree#development-roadmap","issueTracker":"https://github.com/dec0de/NxTree/issues","website":"https://github.com/dec0de/NxTree","created":"2026-06-23T19:59:47.576463Z","lastModified":"2026-09-26T16:39:30.913066Z","releases":[{"version":"0.9.54","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <1000.0.0","minIntSize":32,"download":"https://github.com/dec0de/NxTree/releases/download/v0.9.54/nxtree-0.9.54.tar.gz","created":"2026-09-26T16:39:30.903080Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T16:39:30.955916Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=999","signature":"oZptcT/ghBPrdUUo8rn1ve5BRVR2Vdu9QkB9StlUeCDuXbRg5xSQB7vXCec8r8cP\ntutFrl7aMAudrzn+tLjlEbndmp3MA1RhdWZQ1iAHlenKQyVcsHusZDbmuvLnnWdR\n0u2ExH1bnW+F3nt23RYzZgtdTNiek7xoUONdgIGOt0xbuV7Kq6eVKAXJCqYCFytL\n+LTciVto8rtH9jRbRks4v+m5+5jjtKzDPjjzJj+ltjVYiBphKTKrgC6Nh7Bu99rH\nEM8ISHk9LwaxdAuzQnH5ZM3ay8s+fSYyd1JGC79oxUyg4Zij52TDPg4iq3W2KnfK\nBgF91K11QCBG3kgeTVI7aJ5T9emafc+fF91E6sDazHed/aSYE9aRYmpaBjcIGiBQ\njJrqwk+OGNndzsR0J2N8EWYT2asAzIItpyuKV/YCa57WQfMCi4hHyO84UbPB0O2J\n+H71wNBNOoO5H/I9AV8UQdm3Ura8OYOzqXRgtTdHg486kzhiOn89VQwUWs6LfbUu\n1LZtp27UGeE4CR4TNzIuUATEPFQXbSi/z+cedUPqW2drCGH7EmpwM84veD73iog0\n+JsxHYkPvj560Gx+l5cg+KVmjWlCxTXNcCXRFjRqzda7JJf4IUZxX6hJEIYKUnYh\n5iyXL5HHm4iIlyCNB4ii4e3OusGbhkXqJP4StX5aD/c=","translations":{"en":{"changelog":"- Remove the practical upper limit on supported Nextcloud versions while retaining the required metadata field."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlYzBkZS9OeFRyZWUvbWFpbi9zY3JlZW5zaG90cy9ueHRyZWUtc2NyZWVuc2hvdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/dec0de/NxTree/main/screenshots/nxtree-thumbnail.png"}],"videos":[],"translations":{"en":{"name":"NexTree","summary":"Collaborative hierarchical notes for Nextcloud","description":"NexTree is a database-first hierarchical notes app for Nextcloud. It is designed for collaborative tree notes with revisioned operations, Markdown node content, and import/export compatibility with portable tree formats."}},"isFeatured":false,"authors":[{"name":"Theo Linschooten","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhN4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIzMDc0NTIyWhcNMzYwOTI4MDc0NTIyWjARMQ8wDQYD\nVQQDDAZueHRyZWUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2/HiE\n4DkTbPkqnQlKXKtQzqhtNRD/d5bjw1LrIPmwp3uIPcuONhSRQgkCICzpYqVYbzCB\nO2VUAoeRPGtkKlMhMpPqWJtZVFuInnkq6TSmmrV7yu06rweN1NVCUeKIDeQWZ8Gz\ng8NX8jrpZOODglWnRGSv2OEiwXeAHilhDhNunhy/MpM4QuwuOJR0N4CkcBYHs0Pf\nY14nndm4ROGsv40UXFX8iAcXARBRm5djaagnSMmu06LEJjuAHqzdxwCtyOC+OxKN\nlrR1h6K169TfE5yZLpM+F9TzNGzd+pEQtSYfEmsmyS1c54p4/ndqL7RyP0S0bWOU\nZaoxV7jmYCBxq2akPCaBaQUkVfN99Lvwm7gLLS0dKuoJ+ODR9cg4oEbT7aqhj2+p\nOdX+TjFtxYjP0mIyul9WGAadq20+OqqO2V7ton6XU/ONtU8HBtJemON8AOilEUTu\nUC1Qhc3W1K97YyQ+5TcLzyPBdyrFFqK1iYaXo6p7iYg7sRSvYmqOmZgByTrYFUTq\ndfdBFbA3RRvV++b1WQjT14ouRQ0wsUQ2FVU6TZWjJO0HCeYJRnlMQndy4OlKdRKc\nebDUoyuQUi/MyTNf36qkmq1zJEfFcmkYJzOYIxCRNj9cjod3aj00tlcazsrEGmzo\n7FN6avS3ryPfe3yPDCDfgmwOWkmzZfL50Q96CQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBpmBFsVZ7lwaV9J8U6lUcjzazZkqwGnrIlwn7q5uNbx8NVeECUWvlvf57V\nMSCDwuA8TfYb9SsprNGNXNYd/ru1dpWi6lk/XkbQDbq/rO8F4RSa1RU2O1awNP7J\nnR4KX6u/nu7SXGZSkLKVAPGENgBQ6cbIJfdcCTHcBSooJvDDIn2BpfOAY9TPE/iZ\nkpCLJSzeD9AISe791c1KxB/MN8E7ssqATXS396gzwknVuT6TEtN7GIhfJBHqg/+T\nSQXawY02JJxAjFWK7AczVWtTCRB1j6yl3AaLAGMEGXVmPTDBq4eQ+Qjt1C4+Vvfa\nK7pIGjneCBvLGKvTg3XzoW+aFPOY\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dailyzenquote","categories":["dashboard"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/martinhammer/dailyzenquote","website":"https://github.com/martinhammer/dailyzenquote","created":"2026-05-13T17:55:08.852515Z","lastModified":"2026-10-02T15:13:56.061132Z","releases":[{"version":"4.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/martinhammer/dailyzenquote/releases/download/v4.0.1/dailyzenquote-v4.0.1.tar.gz","created":"2026-10-02T15:13:56.054907Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T15:13:56.095137Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"U5pigguxLuFhIUcw8+yly9hZfccbEAcZuKldCe8C8HDDDRqkBwpV05etIRniVkrbeyEGOKS2hJthwdM57teK+yqjWWirAQes2H9ciGM8tlz1IU95uMK9kYDTkrqwJWNjd2Tuj4Jv6pcMtEcO2QBxJ5zSOHmRmMqj3uA9gc8O2dJQ8cyJ703GJiLgTBmD6UkFL2JLYgGN/N9L8zBuOLmX7u38W6AGx+9znpMUrSf2HZaQc0soFwT1guOZxaolPHptRJLUz7Y5ReCuDE2dS4uh/UBgbQEyzEXPA4cBgOO/tF9qDEoqJ3jg9RyLccFnUlXJuvvOXM2ZW3mGVnB0welC/fW4w63Dky3LQtE16j7zfbdtAL9GVrAMLbevlIUNtMIgCf9B5yiKePAlE6mypBqpakdHCAEiy3XEQBsFXRmwq5trJtfH9RitVV5EsJhD+ZzB2RDzag4YBNle7HxsEB14ZvWdcsEsF0WaTz3kUtGcoGZ08EfJGgNZ2+GHX+Yq/vv9Xs6S+3laq2bYjxti48RdMljsqJMeM0RmJrOPVoGl5i3adWP6j4XC1wkMuJEwEPll5PrSpviUNoXR8mmbyvywr8egPIHcdX0ulsc/5qYBXNNVznVjkKLeRK9RyfHQ+tInYgR8bjyYQFXmXWIXdP1LKTx29/zAcoB3MCdGpeKiGrs=","translations":{"en":{"changelog":"### Fixed\n- Padding and font size"}},"signatureDigest":"sha512"},{"version":"4.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/martinhammer/dailyzenquote/releases/download/v4.0.0/dailyzenquote-v4.0.0.tar.gz","created":"2026-09-29T09:25:18.800366Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T09:25:18.844548Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"mfUwChH5GeOxgsHsElkYi+yZNGceUl/OSA4xIzgiQ6bgvcP4CVz25NtFB+DMgueYW5BR491U7dlZaCv+xrMOAliaDLj3dBL60D3vbEWdAzVFSQ3LUFPsFT9Ixier+n7TDXNWucMGpDIO0cZjoZO00MrOtgQUpurLt9Or/RGwuL2EyhL8Ilx8i79APN/1Fl3aeQqDfpxsr8FIKDcyKG81cAKrob2kkONm+T3aUIOLse+0d/MUs/0NYK+bmhZ3DwQDUiAzJZ/yOxq5a0kyY/7SWLsOAtKfhtMC16SwA4fAgFtf6Eob9hJ0OrretBrOIAZ5VLTcP5GnbLKPn8PToKz+u//Rv9Ev6fQmQX4q7m25kdq2GJy/NgQm6S/Dd8xvs049IBoF0I9X6bDqkKUp6M57eK1IZOD2KROrFMRmV+HK9gFqO70g869SGXYQmqpQCOrNyBZIIxp4dT4aNHON2Bdmi40UVhBzgGDEj73TPExPGeJF/2hG38QyAGkhGDjKQbDon93ZCD/Gyi9rSkA55P+UZMY95XZlZuX1LHjioR1iARDKmyM5CWIEeKCcaZLkJiuFGX9OE8u72pcDRXSNRCBaU2UmDeTpvwjPEmqhWRdDgQhw3W5o0TxlRJD25PzjdjxAljPXD6dgjTy2nBobEU95jxBB8W9SwhhEvfBAI6aSmRY=","translations":{"en":{"changelog":"### Changed\n- Removed support for Nextcloud version 32\n- Added support for Nextcloud version 36\n- Bumped front-end and PHP dependencies\n\n### Fixed\n- Icon files follow the correct standards"}},"signatureDigest":"sha512"},{"version":"3.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/martinhammer/dailyzenquote/releases/download/v3.0.2/dailyzenquote-v3.0.2.tar.gz","created":"2026-09-09T00:21:27.462071Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-09T00:21:27.530629Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"DJG0LmdahO3nHpJ1YH5kYo5oLUgirvRqCuAUj328nGqGdJY5Ez2eUPbLU+dp8rQvg92Jnavbd4yu48J4X5eJp3WX3mWCTaonVTC0iCuubUJ/tb9k5GaAD97bKn49YTu22sIglPaZDALZpFD+0aTp05Apz2KVsNFI9oI0t9354/Z2/rkJBN64IDO4V0CAFaL++AGGlXd9TuJRng9Dpoa55HktbPusxDof/rH96THlVPrAEJwu5T0CmC4J8AdeI0rlgbRiQ6LI9UQVwO9gHgLOddzC/DPODqau43r5EOp2eMvjM5vkahGq3xJICgPnGz9ktpRU0lno4hqnBUybG00EgTi5bKKoY1SItDR90Sr3F7LP+ZjryyHLUJY0HRG7of4kNAqYAU/BDfSnlZTSvSg03fzmyLJP0Zh1Wrv2S6NCEgSH/E+EuS+inE4LUEVFgSTZ39EsRUmLLClIdO3jUEYNHR/err/T0D+10xbPj4DyiigSJ1WwGZECltC7tyM1Xcg+UPg6ajbPMaX8v6eu8/iDSwFO20CLxS6Aw2CcATHS05ZCamnqrEqsAagcusw+7eUXTAtfSp5WXPkBi3bO6y9VZ5aWJxdpXpQzetRWJTCj+oeMPlRiwTwORTCIBcQnt0cehC25Ff+hAYBFFNF73zaQnTrPGI6a4iAU5vGUoi89Q0s=","translations":{"en":{"changelog":"### Changed\n- Support for Nextcloud version 35\n- Bumped front-end and PHP dependencies\n\n### Fixed\n- Icon is correctly shown in Apps view"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci9kYWlseXplbnF1b3RlL21haW4vaW1nL1NjcmVlbnNob3QwNS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci9kYWlseXplbnF1b3RlL21haW4vaW1nL1NjcmVlbnNob3QwNi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Daily Zen Quote","summary":"Daily insipiration and historical events on your dashboard","description":"This dashboard widget shows either an inspirational quote or notable historical events, births and deaths on the calendar day. This can be configured is the user's Personal Settings.\n\nThe content is provided by [ZenQuotes.io](https://zenquotes.io/). It uses the \"Zen Quote of the Day\" and \"On This Day\" APIs and is refreshed daily. \n\nThe developer has no affiliation with ZenQuotes.io and is not responsible for the content."}},"isFeatured":false,"authors":[{"name":"Martin Hammer","mail":"me@martinhammer.com","homepage":"https://github.com/martinhammer"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhNAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTEzMTM1NTAxWhcNMzYwODE4MTM1NTAxWjAYMRYwFAYD\nVQQDDA1kYWlseXplbnF1b3RlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAynAWQ831Jeuayj250tTqoMYw5Izcm38sR7ApKkGAFSWInDc0udaEABrNHMqc\na+tejoSCg9vj8VNjXjocj4xOa4E/VxiDWRXJ8cy+uea3Ebs2J1DGCtrmnpXOTk9U\nVRK+ZKs+SwjC6fWWnOZ0Kr1DVoLOk6SAIBj/ZeCbbVzbY9qLf9upjz8jgNfIO9Ps\nsR+4OMiq1mVsiel1KdNV+1hPzOVovwOIsgFeSF8qU7DnwduGzpYGtQHaNcw4JMUK\nfdnHPwYPEva1J6u3X6xfQlVyIjVXbnZ3K1yxeqJXFmn0rq10yOmjR9OYQjMxMRaB\nl/+FecjJcCIBYjLWvPzNEb+7k6MRkZGvHn5ObGaBaymlStcWwSiRZOJzPP951tQA\nU287peXSOFtjdkFEE3yBar8U099kNLJ167hEXxw231FUU3eG7urlzNTvSvKGnQu8\n5iPkEo+ezHE5M8QdnwPHiaA9Pm4YsRexD9gnYybb/1v/6IhzE7r2527Da1k8OAF6\n5ff9Ds5Tmam9Q9tLtO8Z9r3+CcXYYljw+Hdq2XGdZUSrYpwHtHxwx/UXV9UorYs/\n9LtqksZ8k6NBqbdhXVnXdRH6a+DlZP4+i2HeHsvUP/im+6iruW0OhjT9pV3gj+a0\nXU0KlWZ/2ciEsfX369JagBK481C6XMPzYT+vHYbw+uT97wUCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAH5nWbbLXX7FmKjj8VmrqBgOVc/2UBl4rRYEOxXAl/JOrZkzH\nhJkfNw+FPZ3A7x2AlgcTLX+ocbUUz4f1IC+f6TXFWUd8ZSqDUucHV4im9qVtqeOi\ng+X3h1Uu4Qw/vCWSOvIggC+cFf7PrUWMIosKPuIweFJVlfNUlpRYbFUowRyWD8et\n2/V1SL9iDxxqqI9TaSlsmIM/0zj54XBAMH/w9QweB4ezibNDDFAvM61M7tdC/ePq\n1H5cCL3GfxuC+FpIDPDVs0X+Ue/l1cKxwGMDRrrn54Fo2UV91/i/4MXNFUrqKYhl\nQA7txWBHy7lSb7uWOkhiKvi/v/jrJ9UBHZKyUg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_google","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_google","issueTracker":"https://github.com/nextcloud/integration_google/issues","website":"https://github.com/nextcloud/integration_google","created":"2020-10-01T11:36:45.415725Z","lastModified":"2026-06-02T11:52:51.732308Z","releases":[{"version":"4.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_google/releases/download/v4.4.0/integration_google-v4.4.0.tar.gz","created":"2026-06-02T11:52:51.712013Z","licenses":["agpl"],"lastModified":"2026-06-02T11:52:51.782338Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"eQdwiisfcjTq6h1zpADGJMbuqjWHr+kwSR2PXQRCDDMQnLsL6gpcGqN+T8dUMujxonrJtX7nxfurha+ezowFughuPfHPgujyjDSOfw1swjm+QxkSLhB+m/PEUAq4V3ujwXgpnY584lBDvaGHW/S+kiWzpcH2WwqZUjUEtk2WSNDGjeMYueCR1WZ6CWmVnYeY3Hdd6OCmTfryzaS+3iVneZ/pUSCYa+QD8YjH65jUKss0BqneDlJH3rf7hrX0OJJKmQB8RNbn0YFL8aJZEEFFTqC2gMzsUmHtG3GRnbenvBZ4Tnt11Jsx/QlBiJDydt79hVrF+eTVO23AKLZZBTSNL5dySfoKjYxeL8U2IU1+ZZibhVJ7HOyy6TuJs9R1yGmXrtkVsGMmIkEuBPFVxN1Vlh5SR7cUmIke+ZtbDbR1S1VFvPpv53qyh5LNPJ/qAIFh097f1Gj8MklEKr9Mph0OAk+rpMeJIwp8cotq0NL8UMKKBFRLgPXeimmveSUWVdpFvdiIHhKxJ6svtznEzvNXzpPg7YLcQ2DUMgTNX8jERkR2R0WepnPuPsQ6Xm35dQQ8XoURTLNAOdAVNkVX+9hqWe8aavL4yPxQKQ0PV5tnqP5BzKqfj3BYFQqW12GmCgQnMv+G7YCrjhssAyt8aQlsPKIty6JYbpeXhmuxO6Fhr8M=","translations":{"en":{"changelog":"### Added\n\n- feat(photos): Add Google Photos import via Picker API #356 @AhsanIsEpic\n\n### Changed\n\n- Update dependencies #359 @lukasdotcom\n\n### Fixed\n\n- Fix: throw UnknownActivityException on Notifier #358 @lukasdotcom"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9nb29nbGUvcmVmcy9oZWFkcy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Google integration","summary":"Import Google data into Nextcloud","description":"Google integration allows you to automatically migrate your Google calendars, contacts, and files into Nextcloud."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6428571428571429,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhFwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyNDMxWhcNMzEwNTI0MTkyNDMxWjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9nb29nbGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDNN3lzwkX5kKrjLaqrb2g6+Z6uX3G80Ps+tSCgyw/IGPxRrpTGBzi6\r\nT+y3Wkda5x7U+trcRYZHAvYhvloE72l10Uvq/3rtbQw+tzhBe6RbtzLpIXtRre6x\r\nQlg9/s7EZHRpG45pqkIo6yAtyrvE17ldOAFL2cc+9GE829xJ1hPVtAPE768DNNm8\r\nuG6WsheVEql5uSGsmRMlernkcmzt1cSZWP3XrwWJi/Qh4VvDnFKpf2lS2Q32b2QN\r\nyUUNIuXCGor/YrGvwOhQjYeQmdenGarhHifkppHRBYj/RZ/svpHuK8Ovdqt7Hcgp\r\ncf6B2MvVwuYeGCD6zuXXg3ZgoVB7zYcK8ZbBVdJnak/WTCIaKLrGZkXiH6Pg1Gts\r\nvn6zpU3/KjDJAlcAXDn5MDkK3cZWKVKe14jsz0PEh5L3m5+A56srFzl8bySy0211\r\ng6QXPo7nml7GrRmsU4LEW+auWgS2JJogc7tH1JqzGPuuNKgrx5Zxj2B/kInQnj5a\r\nwSn4aU54mK/40GjWE5ErM8N8jpCMp00HwOjJyWUs8ZGrham3BQ9dB/tVGSNjcxUA\r\nNEc/v7ixbDC7+sEqBzSBtqQi0Hy23UIWEYGg8AuisSXWQxweolGtdQuRpGesuwfy\r\nGAXyZ/0pI/QzwvHJZ1SEH2Zh4X4/hmguzJeY7xUC9wMSlUF4E1DTPQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQAbx5zkopFQPoCal4UvcEaQbfeuAItTPUFTler/gQv1\r\nIO+r4IjSrdRuv0O0trQ20boLQdvMu5DVKKNkbTnKnLsWD6YcbhCV2i+5vW9n/RUW\r\nczglxeVDQaTym1JOy33uOi1KCyYtu/F/4vHvTBqnkUP7lZPFH1zX4yW3JsOJ/LWL\r\nh4CjMxF3Jn2V6RAP0nEyVNwru/T/w1g6RBVcNVhJJhYOWGSpxvyeC5MaSou2Nwso\r\n1arnHomapkQpDye3p9oGXbKj2HZ1qYooVTxnpfi/Zl+OPXpETK363TkNq+q9wGMc\r\nSG59PcA5z3hl1s34+Bi7sw/gJRINXTmykpBNc6iwsoFL\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fulltextsearch_elasticsearch","categories":["search"],"userDocs":"","adminDocs":"https://github.com/nextcloud/fulltextsearch_elasticsearch/wiki","developerDocs":"","issueTracker":"https://github.com/nextcloud/fulltextsearch_elasticsearch/issues","website":"https://github.com/nextcloud/fulltextsearch_elasticsearch","created":"2018-01-08T13:46:20.008606Z","lastModified":"2026-10-07T08:42:49.144836Z","releases":[{"version":"35.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch_elasticsearch/releases/download/v35.0.1/fulltextsearch_elasticsearch-v35.0.1.tar.gz","created":"2026-10-07T08:38:24.023022Z","licenses":["agpl"],"lastModified":"2026-10-07T08:38:24.056536Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Bq8wfV4seCSq/MyBFbbTAelTA8Pk2LFfdrD0bCT6SG3sDwyVaVxGkzvvIN6Ub2xviTAeDBiV0AtZ7aSUMyqP61SF+9J/CIsbW0R50q7PWWP6o9mUZym6Spg3BU+iA1EjAzBjIw0XTYD/3qPkZ5UKyKhYIfrfXj6SFiGQBnTZYptEzp/4J6xPX/cSllXvBCA80xYOw3kgcCG0I+zWOqdJOxj9jGLw4amsFsR2qplr9ZTOEDIXIgpT6qscTxsgMTNiJgiEvx1QDoIdB++ecGdpbCAvLi07YB/LEa7e/+BgR8Tn4y0MbgdHV1T2TRJTJwaY9TLZRos5WniYMfEXWQNixmr43i0PJ2T10I/i6yi4y6bZWx2dRMOLb23K0++lJgbr1c0ixe6Djr+8EOyfO5wk9Do3Lm+Ap1xzz7d4wkrCKpb4J6QH0aBFuHQCNzc83o8/FZz27den5MeyV5H23HfB1OvbD/qaKSAAD9bXRutaqM3VGgDw3KsFdYZbP8/qIr0TlGvlveHZVPOoNaLA4tyHYvLwbx8cdYqSvZ7do7bavYS/RUHJ3GGFPevXdtfld2butHv3OBa4bWVRko1YvSqoPg3AI0A7shjvld9yLV7BPILMDUhlxwXJDiEWsNLT8LUt0uPQ9RWIM+KI/5EBsbFIMgF7lSAW4UpczKGY8VlCp0Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"35.0.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch_elasticsearch/releases/download/35.0.0beta1/fulltextsearch_elasticsearch-35.0.0beta1.tar.gz","created":"2026-08-12T10:00:35.285325Z","licenses":["agpl"],"lastModified":"2026-08-12T10:00:35.330589Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"SZ5bUSJ81HPVeqvwHyVk9l4LytWHR/7AfcJNaVKOW/Ha2hpe9O7FJefBR3rpowStL2apSxzhj6cbwQa8DmIHZmWS2cQLRl3ybUYxTvUIJh8SIy6zYfsQpvV5Z3NQ2jG7W8KSXKtnbxFQuggJdqzQwyZrykoOQyC3PFZMzgABRW7bWRhE6RnbEGesuMYjJEKDq6SbexjEyXY9zLRaKFnIuj8u5FeTR5AG/2/GylxLI7k5PORcpQL0S0TK9qOdw57gUFGCLm7A6xRSsDBVPxevGJamGhsmy00mB03Eik0vr4WM1r/auMYCnu8SIDqE3ESVVzMGfXAeg0ReYIJJ3pYIPtwCqkJRUV5e57VVNpWEkqkbok+0c5xlNZ97OsObbFU9hn1fyz+ibWh/9hP9Qv9suna/277LYY3moU5ZAoYS4tX1tIjuhsPLD0LEJfchOwnkoR+H+ZS6NuNGKcs1Aw3vFIEPGaNq3vDaHGCTBhT7gLZoe19UeRJa97tGnLUzFGBfjD0EZAatVSidn0if/OmlRlgtlu/BY0lidVKx3FHD3ar8RCXySmXrUXBw3w8UMD4kF04HMFptBieSHW82xswIHAqnHfV8CWk5JsjmzVtegfRONtD7+qbJw9x5fAY5JmFgprmbybawxdTGrDUShRkIFT0PN76QQcp5ok9HU89UIMw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"35.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/fulltextsearch_elasticsearch/releases/download/v35.0.0/fulltextsearch_elasticsearch-v35.0.0.tar.gz","created":"2026-09-18T23:16:25.460203Z","licenses":["agpl"],"lastModified":"2026-09-18T23:16:26.191575Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"NUwJXX/4F/sMk5IFBtS695lZwTXV6PFwYFtLOZgcjwgTH6Yy0tk33Cwix2WCR8eL7sPvYk14YObFEAoNB6lHlJF0xBps/AtIWSI0B7QJXoQvpH5Rp1HtXNZKI1n4ijD+M+eKlMXa9UJ9vomj5oF9d1JKKuVsCCfU79FnFr7xP0kc/aCTX3Z8/0GyhC5dauPKPRZxj2KqZowKYyL846FN7TWuVKRQo56hyS1LL2pL709q3t0pDzU+Q66V6154Lr0FtyEeYJalEcDeRfrH35w2i48mUstuFhdmjC9B8wAKYSqxQzzfoHB9oq360YMGUbYRSni6c15RZY/go9ffXPiWSv3jQefuXtbtYQohjZb5L/X6XaEQcXHO0fDzjcW/xlkVDIXQfWep3YRRj+0vmUgVxUfLr4UMqxblAJ4AE7emVGce2vvH3kXv7DWhfEDt5rrCMpIkaZb2dAvp8CaDobe+o6hvYHwHPrDJ4dR9YuFmRfmZ8Ql/SSo8CcFXRQoXIXV3R0O1JJg4HAPhPAXKKXrFxnRRpW1HFAknHqch3I7pMBV3gJY/e7O8NaES9POogsRsjwySzKWnsI3S5/ldTgR7jbyGY6Jkek6wcFlDD65TXmLKik13IJBV+W/QCIVT+vlE2uyrxIiAMzOnByCU5dt747krISpvo6gfC3YJT/FJr10=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mdWxsdGV4dHNlYXJjaC9tYXN0ZXIvc2NyZWVuc2hvdHMvMC4zLjAucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Full text search - Elasticsearch Platform","summary":"Index using ElasticSearch","description":"Extension to the _Full text search_ app to communicate with ElasticSearch."}},"isFeatured":false,"authors":[{"name":"Maxence Lange","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFzCCAv8CAhCFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwMTA3MjEyOTQ1WhcNMjgwNDE0MjEyOTQ1WjAnMSUwIwYD\nVQQDDBxmdWxsdGV4dHNlYXJjaF9lbGFzdGljc2VhcmNoMIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr8rSELX8chonmVYob/PqC7e/Ency5OupcguzIaK3\ngx851lb9NrS+/YNfoSsCXOKv4aKTORaOKJ1HtkP4VpL0g1z7b71mdXNsp48xl+FA\n1V8af7tLTBLwnN97G7NTEOPWoyrbmVlr6OHtDFkAvrJtPOHlhDfI6Ig0xO4w+TX1\nSbmvzrUzSUyOa/TlEhpeyOLVQUTm9TI9oSfZNDh7/Ry7NnXpj3WeixnVs9IMfAKY\nECeKORQ1/ahy5iV6hVsk0SdD83fHnSxS2vBpGqwkZV/865SeelaRe522vM+p0V7D\nPnFPO5+7dVzutwagMmcU+0dQwM/2xKPfRakes4YQn0Q3PI782b5Lcijmt6phUnz9\naPjX7+RMcxyikmW4vyElPEiUVAgb+tb8ToBXIDhqIzxPjuNUgZ/SfJcA53Tv/65F\ntG0NPddcqiOnUDzxT1KAgC/80SSyeo3t+0fMPT1i4eqJ1YqwzHTma2RWSDhX2EFJ\nUsZ6bWouCzRuYmCeRUyYPPI9RXFL3LeApZa30JzEPhIC8ZLSSifPZOPvEeZ0xg+A\n9h06qQtTMSsRhmk8X0RM4qfGCKJ18QFK8esTt4g+7nBObj1dMCWU8QQ4+2okUHSb\nA0byvwulkZngP3wZXkejHbvZyerM9PLe+oWcEGCQpsG/NekF4pDXt7/igHufHGcn\nrUUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAMsyAVTlRETFrRaAOPBPS0T0EOX4A\n2WnK5s1QLovt29xgsFm4V3SSUgEmOZJ8p35RC5GoXBh0hvW4mzzi/25rmdQuW47U\nN5Ob3jz9Ki79SGiZw5LIkc78ApC7IEAFjczR60IE5H2lQZrYvc/P3Bj1tGOhNRim\nNcOhvaYZ05K5PH+Fml16Wavp5yCu1h9uhZk9xyOe5xCaGz48WzFIYhCo0ByJTkkK\nnvlQMh7XYSyulVLUsQUduHxnnDcRXx2RgLjrl0eWjUFjPcA+gDELEp27tN6GSXJt\nWFRV0cjdbWCMS6GMc/P3WG6mOG7VYZcFD7YiIGixqcgQAZCw2P9TZpA5pA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cups_print","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rurutheGeek/nextcloud-cups-print/issues","website":"https://github.com/rurutheGeek/nextcloud-cups-print","created":"2026-09-29T23:41:01.017787Z","lastModified":"2026-09-30T00:01:22.409240Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/rurutheGeek/nextcloud-cups-print/releases/download/v1.0.3/cups_print.tar.gz","created":"2026-09-30T00:01:22.401095Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T00:01:22.490308Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=36","signature":"PQKBI/+nMmXv2nI7xu6cnbBtuLHdT/nU1sky2xX44hkIOXaF3KYJR9bvcv/aMc9ePAtr3p227NstR72dQ2iuoGXWy3Z8kusrO8gxGH1h4j88hBdBO+B9VELb4wVfvlvcNOy9N6ZSDpPmKD5W6KohTDbT26krnK8q8TXO9dtldyAdVyFwCFamVEi3fXo9g8Lp0bwr5WDxwJlTQZyeZzn1pf8ebgLd0Lfz44CWWwCNRQGBSf5eDOPLvT+vIkbEABoniAhe5JX8ZobVEigdDKo++QJm+3FIh+sV4shGTfyz37YMbMq1UVwKfkToxUbCKnMDmwupLpworHMr9mLxFWwFczhMOqULH4/XjwEafohpNhq/u2tNmaMaYFTUJFWfbeW2l6hzLi35GrpDTZeBs5kJ9WOnD8l1TvMbenGKV6FHCpqJXofVL5AmZ/zQhSAl6+zIzjKYAAnqB1k0yVswboEmEfvZQHGS3xXuAxsxo0uBor6rkYDHvCVgYZi/JmyO9ENscsTdNfyjo5vh2dKE+zQOBX9ap5uFVDmZRiLh+G5fqF6nEBB2opk8oX9q5YTURW8VyBO+T1wrUARO2VEXBxdhO8deL1N+szIatluSaQwjb6/z6c5gQFCzjgPUTxbZJiGPmmeM9XLiZA0Wtkue7axBCTFrMUhtFQguOZ6AunJfAcQ=","translations":{"en":{"changelog":"### Fixed\n\n- Ship `l10n/ja.js` so the Files action and its dialog are shown in Japanese;\n  until now only the server-side messages were translated.\n- The release archive no longer contains an empty `build/` directory."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"CUPS Print","summary":"Print files from the Files app through a CUPS relay","description":"Adds a **Print** action to the file menu in the Files app.\n\nSelect a PDF, PNG, JPEG or text file and it is sent to a small relay service\nrunning next to your CUPS server. The relay runs `lp` and hands the document to\nthe configured print queue. Only the selected file is transmitted, and it stays\ninside your own network.\n\nThe relay URL and its shared token are configured by an administrator under\n*Administration settings → CUPS Print*. The relay itself is a small\nstandard-library Python service and ships in the `server/` directory of this\napp's repository; a `compose.yaml` is included so it can be started with\nDocker.\n\nRequirements:\n- Nextcloud 33 or newer\n- A CUPS print relay reachable from the Nextcloud server (see `server/`)\n\nPrivacy: when a user triggers the action, the selected file is sent to the\nrelay URL configured by the administrator. No other data is transmitted."},"ja":{"name":"CUPS印刷","summary":"FilesアプリからCUPS中継へ印刷する","description":"Filesアプリのファイルメニューに **印刷** を追加します。\n\nPDF・PNG・JPEG・テキストを選ぶと、CUPSサーバーの隣で動く小さな中継APIへ送られ、\n中継APIが `lp` で指定の印刷キューへ流します。送信されるのは選んだファイルだけで、\n自分のネットワークの外へは出ません。\n\n中継APIのURLとトークンは管理者が *管理設定 → CUPS印刷* で設定します。中継APIは\n標準ライブラリだけで動く小さなPythonサービスで、このアプリのリポジトリの\n`server/` に `compose.yaml` 付きで入っています。\n\n必要なもの:\n- Nextcloud 33 以降\n- Nextcloudサーバーから到達できるCUPS印刷中継API（`server/` を参照）\n\nプライバシー: 利用者がアクションを実行すると、選んだファイルが管理者の設定した\n中継APIへ送信されます。それ以外のデータは送信しません。"}},"isFeatured":false,"authors":[{"name":"rurutheGeek","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhQzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI5MjA0OTE5WhcNMzcwMTA0MjA0OTE5WjAVMRMwEQYD\nVQQDDApjdXBzX3ByaW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nnXnxG6RrSoH5rwZsVBNKDq2D9Bd8lqqv094bdUWzCQ3nVaxtEqFMD4cUVGrX9oOX\nWf9Z/KkSS/Oyl1HLZiICU+21KmzQrnsgDDYdISrMzLObCQatqHV1tKPTOLB7feKv\ngac+pVSMlrenUMOZ35I+lWTOQY/WQqOGk2Ypvlp4ILqlgJLA0cG3H2d9MZLfmfFF\n0ePQYqTOSoAsmBHnl0cE455QOvH+1hdKdlQvs4nZE8v0iv9cnEA9EbZE55tsvl0A\n7r9wOcXBd0wsDrW6MzMbOYIsyjbVeX35HqoC+9ebpPZ3Cf9+Pk0JsSPJ+WX4X1n2\nAo43XA587L6myJyZfeICAhn9Rc6i/K5MJlhik0I0kauOT8NI5D+980hG6CUYyGRu\nXoidao7nY6O4MyCKxqNXlUwlirhwHQBf0iQu07Bj9SpDwl8/FLnm9mTBjDUnFLiG\nd2B1HSlmu0P6uVS1l+nTHgGAXW1vlyBIk3GWA9H6b7XLujwODt7galDMb8BbQ83l\npxPmP8tJUFCY7Ob+xlHliPARzxrX8gWmPVyhjyMokkOXxLX+UWNmeCj2JOsMlTK5\nBXJI3X+XV/IXl3K5NZ+TmQkWMZKqMKOeXQiwkBxZ5BFL3g7d1KNUmyAwHJRD5+Rr\nyTIhCslJ7CojmBFoV2roIzF7BIYzXbuzurLqlq1qRdUCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAYN7kvIdLKXxfUpNTCBwfJLp9st6DJwLAC74ByzQ74+Mv10+D1DEi\n8OcsdT0kZZ84Ftijbs5nMr+BFBt77qmsy8kDe6LIPPxeJtz0N4uDN5gpdsDsvZ6O\n9/ChJN/un/9wj/9zOV9fep/mVLk40R1/oW5eVQgXHQEUL1+QJGK7HsCvki+r+4EB\nWwNjcGlQ1aOhDsM+NnAB6iLfSJeC1uA6iV8DrofTJSeqoSwIJTtgZRxySZWnebxL\n4YSPQs9DDapwJAjKnjZV5NLYvQDuPbS4Eqt6E2pYhjqNEn1+Iyx7J8vw03T9uoB/\njISqJCXdbKwVog0ikJ7f4SnFhXrYuoyMOA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dossiq","categories":["organization","tools","workflow"],"userDocs":"https://github.com/ConductionNL/dossiq","adminDocs":"https://github.com/ConductionNL/dossiq","developerDocs":"https://github.com/ConductionNL/dossiq","issueTracker":"https://github.com/ConductionNL/dossiq/issues","website":"https://github.com/ConductionNL/dossiq","created":"2026-09-06T10:15:47.752035Z","lastModified":"2026-10-15T22:15:29.883056Z","releases":[{"version":"0.4.53-beta.20261015221245","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/dossiq/releases/download/v0.4.53-beta.20261015221245/dossiq-0.4.53-beta.20261015221245.tar.gz","created":"2026-10-15T22:15:29.896534Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-15T22:15:29.908891Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"hVHDInzmN8rapvJZQ2mW2g8SffaunpC/+wyj66UNUW1f4y8qB85W7FeYulH7Joe4R3XI+sb7xUR0kHoEeU4QSO72C8aNMYzYSnfWAJNbQP3mmUUWY96dx9whGArICXzJSe7tCul0KYSKxecxDtvEuT+Q+93Le8J/922jF/2YUkyn6ZmBmvwyJyG8Uo2YQMNSITk1x/JrthY1mOEzN+xBi2ngSKAtKUEqHpXXKB9CQ+Da+JajOiin/rg7CEPhGMG5VFAtDItNprYVze+LwDbbe7jhQhv8kZfW1fhviDb17NY7S9NLdWCtH5bH27//CH/S7KX0YDtUHvEHV+hrDLK6Lml9Y0Q+GRFs75cgKPhU5FVq2hvqkCvehtolNTiTpSgUmrwE1m3GedcBH2R/EmOK5SVK7Tj6hsatfzpjIlrrwC0Zw0RF/2qhdwUy7aychSCuGO9lwcHA9D0ScgOKelNY9ajWmUCTcWLjsWLP2tRHeccR8PxPig0eAYDfz0fvQ7KwNsiwCHqswCuLHq3DzQZykTxnwF4CN2qh91HQXr4MziTyXMn1oTTPLhMsm8m6w8IRkKTc4gJnzYMKD1u2QvsAHvXG0nwcGOfWZDwvfybBzx377T4A8UXGX7PFQkH/r4F98j15qQNLoPGXM/uGTO9qLMa86Z73pz5mypf53cvHRHk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9kb3NzaXEvbWFpbi9pbWcvc2NyZWVuc2hvdC1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9kb3NzaXEvbWFpbi9pbWcvc2NyZWVuc2hvdC1jYXNlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9kb3NzaXEvbWFpbi9pbWcvc2NyZWVuc2hvdC1hZG1pbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Dossiq","summary":"Case management with configurable workflows, deadlines, and decisions","description":"Dossiq brings structured case management to Nextcloud. Define case types, track progress through status lifecycles, manage deadlines, and record formal decisions — all within a clean, intuitive interface.\n\n**Key Features**\n\n- **Configurable case types** — Define workflows with allowed statuses, deadlines, required documents, and custom properties\n- **Status lifecycle** — Visual status timeline with quick transitions and validation rules\n- **Automatic deadlines** — Deadlines calculated from case type durations with countdown tracking and overdue alerts\n- **Tasks and decisions** — Assign tasks to team members and record formal decisions with outcomes\n- **Participant roles** — Handler, advisor, decision-maker — assign the right people to the right roles\n- **Document checklists** — Track required documents at each stage with upload verification\n- **Sub-cases** — Break complex cases into parent-child hierarchies\n- **Confidentiality levels** — Eight levels from public to top secret, with defaults from case type\n- **My Work dashboard** — Personal overview of assigned cases and pending tasks\n- **Standards-aligned** — Built with CMMN 1.1 and ZGW API compatibility in mind\n\n**Requires:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (install from the [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nFree and open source under the EUPL-1.2 licence.\n\n**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl."},"nl":{"name":"Dossiq","summary":"Zaakafhandeling met configureerbare workflows, deadlines en besluiten","description":"Dossiq brengt gestructureerde zaakafhandeling naar Nextcloud. Definieer zaaktypen, volg voortgang via statuslifecycles, beheer deadlines en leg formele besluiten vast — allemaal in een overzichtelijke, intuitive interface.\n\n**Belangrijkste functies**\n\n- **Configureerbare zaaktypen** — Definieer workflows met toegestane statussen, deadlines, verplichte documenten en aangepaste eigenschappen\n- **Statuslifecycle** — Visuele statustijdlijn met snelle overgangen en validatieregels\n- **Automatische deadlines** — Deadlines berekend vanuit zaaktypeduren met afteltelling en meldingen bij overschrijding\n- **Taken en besluiten** — Wijs taken toe aan teamleden en leg formele besluiten vast met uitkomsten\n- **Deelnemersrollen** — Behandelaar, adviseur, beslisser — wijs de juiste mensen toe aan de juiste rollen\n- **Documentchecklists** — Volg verplichte documenten per fase met uploadverificatie\n- **Subzaken** — Splits complexe zaken op in ouder-kind hiërarchieën\n- **Vertrouwelijkheidsniveaus** — Acht niveaus van openbaar tot staatsgeheim, met standaardwaarden vanuit het zaaktype\n- **Mijn Werk dashboard** — Persoonlijk overzicht van toegewezen zaken en openstaande taken\n- **Aansluitend op standaarden** — Gebouwd met CMMN 1.1 en ZGW API-compatibiliteit in gedachten\n\n**Vereist:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (installeer via de [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nVrij en open source onder de EUPL-1.2-licentie.\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhP9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTYyNjAxWhcNMzYxMjEwMTYyNjAxWjARMQ8wDQYD\nVQQDDAZkb3NzaXEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/xv+K\nvMz1gHOKNZJ5QSVOX5r5go0NLOEk2nplG+uRzZGXuD2S9v07kd5RfEeYiU/I+gTz\nyfFVVeF6tAeMnYA2GWWdXXU4lVaF5APy/vdr+uRMpPHHpj1Ng7HDdvvfcrRRVoqu\njZQjUZaWheIw+FkE8+L+EQ6ZWBTD9T9cSYwYJmCyqBaSkGQufEgckbXcerJrYUcq\nwHKAHKRaESvsZM2tdAw/j7qovqi6oBzRU98SVH6ju9CtxGW51dpbxMvuBprvTIPd\nUA1CcA8LIImCHlQPptzPw4LyPBU0RYXwwNVsWxjPJM0UY2uf3GTwcEKHIfUN/29/\nlTGVdVe0VGdx6spPN4N48g7SMscSgCsyY7dopRXFawu+O8DbnaFTLcMu0uItJGAS\nYUtWXEfj/+5PCnXtHtuZtNLSDkUgCU+rvWOJ/npfh3x+1OU+oY95GObuTH4PQcvu\nYBBJ8PBvolMRjMErCZAUp/M/nDFR/tMOBvcqxadXQiGMFwWcNMgg1YluVlRP4dGh\nonFSzOwfkTpypz5fYNz8fXDgT5ASaRQ9PA32iTNfUy57f2Ro9SdNXeAkSchUGQR5\n0zSI0Ws1oI79pJTMWnpc191G6j8lMysnjFr5v4DMpZF0t1qkJ8smG3ZgYw37BAe6\ntnFdxLCLBxXG3fF6I77BCsTYpqdYATlO0+RX1wIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBZHfjfA/Q3ClZACBSZ+PhzXVYV3YCJ6sP6H2z56VNwhRLBi5yJwp0EHETL\nXFhflfcAaZn79VaDHTVzh/K/RsypZ8SAeAVv16soMAPuwCM2H8Tb8qxwj4OAwP1G\nSbYciBvu4pkX8vII+DwnOpCuTUtOfsNKzJ0DKtmTvjhyL4/GHxut7/5F/yPTGGv2\nufIThNMaHJJvRIYXkwszdbbLZqYllYeQycXAbNfgPYqH4lklXxe1fNr7Qz7GFMo2\niEsJbr5qUPnJzVSQPp/M8UsZslzpSfXrdr4vbwCgj7GrbMm0DZR4LCddlfTlbCR0\nqnxnApynwKg+YRzMdJfvY2/pCQyh\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_matrix","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_matrix","issueTracker":"https://github.com/nextcloud/integration_matrix/issues","website":"https://github.com/nextcloud/integration_matrix","created":"2026-04-07T21:30:26.160425Z","lastModified":"2026-07-21T09:12:37.797221Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_matrix/releases/download/v1.2.0/integration_matrix-v1.2.0.tar.gz","created":"2026-07-21T09:12:37.772134Z","licenses":["agpl"],"lastModified":"2026-07-21T09:12:37.834824Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"B3n6sf6ZeQRWbIoAZbayiPd6AvA9eMmP/msydjvxMufn33O1OhCPDCRtaaL43OlNq/w2zVtcPxEdRhmFBx3eqW/Ho4ag60JqDcryXmEsL8uUI4mLJ+zGHcrwHgkOmXHXmFaTJBGDseH6NRHVb+5elXAABPqutlCUBdvtFwJ+qdYZ+68Le184FGkh3/8BlKGLXWGabBvaSSRpusf1kZR+fv8rINdiX6GSYoyJl10K4imznKbUl9AGDQ2m4Pb/L2AXSYyWZwDbZa338QrFhQ2HedhVddKjAvgC2UPLGr5+S7Wm3oqII0mn7xm2dKHcbGmiqadJ7raGL7Cjc3tOLF6gnEwyle6f4DQH5GrvR7/GHrVUWq1ixscs8KXRXA1C5KaDAHs2PdKNxsAKdg1a8FuqFr2IiU7Z7JGs5N9m7V1BaCyHaz+VmzBb8dslvNKsZfbnXaxkjo/jtV+blLGpVJskFJlcVKpLaRW1jCXRBKIGG9JGvsXZJ6vGoU6gLyhjuO7QbJ6zb7+8W11QfHXrSoZclzlqb44ieJjOrSa2AXNbD9GRsj7w7+B0lvCPU7vUD3IErRAzq51B02dyCsP5P5Bdif9ET3ky4cgZP6aFJl6yhN5Bp+zqyHcBmSD+kvQ+shdI0ksPpm992XcSYqs0VrhGq40+iRKMrw/06apjDn8fJCg=","translations":{"en":{"changelog":"### Changed\n\n- Switch to vite, update dependencies, fix eslint, fix raw svg import and fix CI @julien-nc [#60](https://github.com/nextcloud/integration_matrix/pull/60)\n- Bump max Nextcloud version to 35 @julien-nc\n\n### Fixed\n\n- Fix psalm action @julien-nc"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXRyaXgvbWFpbi9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXRyaXgvbWFpbi9pbWcvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXRyaXgvbWFpbi9pbWcvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Element/Matrix integration","summary":"Integration of Element/Matrix","description":"Matrix integration lets you send files from Nextcloud Files to Matrix rooms."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhMuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNDA3MTQ0NTA1WhcNMzYwNzEzMTQ0NTA1WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9tYXRyaXgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQCojW+afk44NWaozN8mIb8vslaE2pmDYU+mdIXhvKJKOlg/koMmypZK\r\ne97HfU0WbrobxMwHydGuBLoFpBJZaw+jfHR+ed+OugAs1m24Ee0XSYUGtlasOLYJ\r\ngoG2i2p4KgXHip2OMBxkjzT8mwOX1mSxazvaUQFBMQUOCt9pmipvCMxQ2MW/6vDu\r\n9rEI0z4pmjJtQMZFax3dy97YStqvYNm3qiMiH3CgHPyKLEBU/e16HCHnAq8kGFmW\r\nzYildul+ODWvptlDmLmKWLHVnGVsmlbIz4G/d5gP0tJYmoNP9tjXMWqmT44PgcIX\r\njXP+PKZQtAFjcRKV/x6s6KSYtC4Ufs24wrqqvQZbTLJtQxUt2mRvwKXdzIraWuUX\r\nht7qRznMve9GP5ImWaU7MVRN6C5mj6D9t0Up1cdOLvLfUvADrmX5ZZ3L9LqkBPyn\r\ngKtGvqGh9qHVW0mfoBtho8lt5Z6lvh004e7VseQAuBH1tKVh5L13LUETwBuXSmMH\r\nNDt6Hmj1g7WRml06KTBSU50PfV8JUg8oVmYbXbAXse3lmO2W6reQXBV/SlF1D5pO\r\nYvlrbfzCoFpkV/ac38YpVr69txYMUfgMNu/zgqhaJkrmKJu7inaxZ/htcMXoXpa8\r\n5QCnzEoUpGvlIrC7rmGsJHJS+Tk53Pldifj4zSJhMsffmMhLnv7WJQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBQh2vCHWWQrJARB/FP3ecg7ekc0qw1hJPHGGd41q64\r\n925vLopW8g/ObSLEwJoXVeU1Wk/hP+6aEsN4Vw+bTOVdZP4pg9if25dJn1r0Tf8Y\r\ntVprziqGQvuQNFjQhyhHRAJRJkT0bZ5NeSfJ9HvF1gvpN7Nq1i/U/7H+u6OkkIeF\r\nv4zOYWqRisj2C2F0YbpM6li4WWpdV26Le+OxNyRa/nNqKYNM9VhtvnPh81UQH2rU\r\nt8K/Nz37SJIZRK77khdnMye6UkrbUorn4M+2rqxrRiXSVmvPCdvN3JdKhYcU9Z4P\r\nEhopu7pycZrYk3r96m4Ph9tD0lqc4xc1WpMMT0C4nOXH\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_pwauth","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://framagit.org/veretcle/user_pwauth/issues","website":"","created":"2017-07-11T07:39:32.899712Z","lastModified":"2026-10-02T16:59:47.252368Z","releases":[{"version":"2.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://r.mateu.be/user_pwauth-2.9.1.tar.gz","created":"2026-10-02T16:59:47.166777Z","licenses":["agpl"],"lastModified":"2026-10-02T16:59:47.337881Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"Skf3bOj1CIh93Su6pflJYYNfjVi/wfg9YvOfgjJaBo280Ss7KSrIkKBaUsWws/Ir\nS8JXQlHdrWKJ+o3EE2gfsc3e0ySGddLMsXZAh/ixggZDAyuXXBcmUaZZO2QyM0qA\nLh/L5/9feuKGjFAWvFO6tFw2pXBiU1ef/7MITTVhzXIvkbFg8iEaiXfFrUqVRZn7\nohrQZt+Xzud3mYBR+ewvMqMi1+kIlWfwEqUE5Hi+vpuJPbXOH9sQy5ADzKmDCAeA\na+2KixFwK4YnmoPaW7W1tnbgHJGSd21futyCDemCRqW+HrKeYrsqkHiuwBLXgMdO\nnsd5CTuYNxCz2rUEVPomWtIYrcwQ80znzDdNzwZ+9N7z9BOaC8roKIixU2Sph4Zf\na7YlVcayYv7osZbbVsQMFqgyj2qg7ZyHqkpN4iOJKBuoFev1j1VEDlU2ZbteDnWf\n9plXOxdMK1j3EDOegF0bsfDYFWn1ZYQ4Ds+5EG27YYjRgbvwkmr1O6Fs0tTrnYEA\ndO7stDxOf6YZbxMcYNwhtDFHL7mVYKnzwVRMIeTfq1hKtTQxZSQeNeFy7gWnw2SY\nBvd0Iyq5BerlROlDAvPbAWko4ws/EtMn4vMeCE+QW76Mkp/r5qJ983IR0fyk6q6e\nS2omS0/0NvGmLMq5PCgUtEWe/4fBrARNn2BhO9ocPRI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Unix user backend","summary":"Authenticate Users by PAM","description":"Allows you to authenticate with the local users from the hosting machine onto your hosted NextCloud instance."}},"isFeatured":false,"authors":[{"name":"C. Véret","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhBSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwNTExMTUyMzAwWhcNMjcwODE3MTUyMzAwWjAWMRQwEgYD\nVQQDDAt1c2VyX3B3YXV0aDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKmpglaZJR72jbDuQBRVBh72judhdToFNDKvn7sz6w3PJPIv4Dpa8yq1Gs/G71Xm\n/wyTfdrkr5xlLXNaPP5/gKeJ2IUKbh3JT89CBohzLp8KeB1iWaaz3Y0bwwSFOmUR\npB9MhzxEQquG6AJmKxQjLurCFUGX+WxFhFwAjULV5okzLaZwL1CZ18/+2v/P3cJG\nZYd3cjZ0RqvpVOXJiKafteeC1iLhfPuouY1+BsZ5xFIuPZXFAeKgM3r8sY9tk1BF\nvvIDldnhudMbK6F+yk4GZ4edmRef8VpaxLAjCYmV8ohuSWQDOenj+WSZ87D2FZQx\nfQhczifi8+j++ARqOTACALIcjbsoOL2KWoktcAT0Z+ENk4YXSIye66/QbJYNRCUn\nUlawUYYIca2bbeF+GB8ZMK1zdCMWZT8C84r7Za5NOw8Ov1/KKikWu1CycI9+CchH\nkEZyxX+mFwUC7Dpp2vFMEAf4mV/TA6/DWGHXGK2/kGAv18lRmzvKryKn2VfStO63\nGSGkHH+Y4WXzCcO4FjNlgsTFt+U7lCzPMsgFJI8ReQPtZdiyD249D8jBBD/FO2nx\n0p5ux2thlNQoWjF6cp7ZOIWHpQvEi0ColSS1FboVcNb76pscnwTKkeyB+tRVv6XJ\nau4Z0VfBLQJyU5SQSO87la2bmocb/kDXWJrV2ysagPJ3AgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAFoN+7Hp9ph5T5Gj3NGjyYo9KtfPE1kSzVb6cQfGUgXQSRZ2w6GZ\ne4u0h9cpThX+duN8vHi1pBALgwxVZafueYHWPxp0n7F527x+dFktqi0ZuDZ63UqL\nvjmCU9bIBdA7qKeoJ5HVLny3ZiXKdsRUvt098TL94Fi6xVs/pG8h+Hj22uOHrg5v\nCMxq+JarIBE3t66BEYJDL9//c8gf7m7PZaxJirvKE7JKHMMIQ4GgdtrQj8pODqhC\n5v/ho36Nz1yE/3eWHDBJ11C/JFrrq47X3JrxQOR3oh/Smif/ju2Z8VBCkCKdGRgZ\n12iu27Znf9D1RcGY/mrgOsd0tzoPBbrbUBA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"reinhardterp","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SchreinereiReinhardt/NextERP/issues","website":"","created":"2026-08-18T06:05:56.913664Z","lastModified":"2026-10-18T14:14:18.026065Z","releases":[{"version":"2.9.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.9/reinhardterp-2.9.9.tar.gz","created":"2026-10-03T07:25:03.953857Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T07:25:04.021555Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"TirYhHb8oHSLgQPwXXJnBjyJURsHgeMNL/uKijWnHwCeHIyRl6Jfvz8YUKrMNHTbl0u51b09/kvELewoj3X6DWSZnFTu8nmk1KopcfAf4kh4HQ6kvpBFwnWPCBWE1wkquWNDJoRK3LIZxoxaFxrakxi/NqaqwAjfplfVA06F3QuYsXz8j4ThZfdSSikYQSeVnPWbSJDM5rTS+BFmgvbVWbh0V1UKiSkK2GxHvx0ZdBlmEZx+3Q4Ul7QQixC7H5m+Hj/G7UBFw33C6+xptZd9b+C+NtPdMs60mv3E+ShsgjbyP7GmW2/5DYkTD9IoERCZWgoPP6xizaaU6OhY2S6DmNwHtBKLRY6KuLhoIbhwuBH7vD8V4VrzUVB1fawAnZndjJ0STxzM08b5eN/T5r792vvsPHZo9626SLxM36OLmHFtwT6gA8uRd5fPYB0WIKax7AnnydAwxoSAUItEO8PW85dt28ZJvShw+4XbUYh56WwYTFiv06ff57uU2XozTqdG036/rvQqplpT/N/Cl1CJqaaHoTpriLbHQnji7yatLJiq+7PtCCAqsj/tvxs8LC0z0LrF3pXv5dY7ZmbOJNWhdl2Ymy740CzuGX0btxUjqtv9mG7aUGuvPksq02bXxi3aabIScGEfylDpnZwMwMcdt3bWHewCuHwoGPv7IKobalg=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.9.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.8/reinhardterp-2.9.8.tar.gz","created":"2026-10-03T07:09:44.166924Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T07:09:44.217251Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"L0gBEK9gZSN9u8jvwkvspy43E1eD4SvLzjKtnZoJEcnoDLELvMTSf6lMmW2k+aQPKVwwrbAnSYKKUHyVowcbhuEa/LHaLoYfCXFSOKn4sFXmxHB8DP6xDmbjU2WTmiOvxGJexyLpcwB8nnE9eP1jgIoI/u+1UTGJSqPGKTR9Q4oBdmWV5w8jtd7hheb7cU8Rlx+a6l0zBLJPYanvP//IW51arHZlKHsKjdVoLxed4UHjyknvu9vowvLganij7pqWXpROzaiMJL891rO0Uxc/FMdUwTJ6mSgo6tmzKG1EPuMX+ywPNW6BeI2xNFcpLBfifIpjDOLuLGWtGj7THktdHTuxGZBwx5U+xSJ0FkTBsRXST8+kjtvanb5MpzL7hur3YUj5c82WtClIte8c8raqqOxdZXb1Nwf7qjLJUpgQQZ/eG3+rMoPj9XvXlQGrInd4+D/n9YGTvS1qILgFUVHq77WOxaqTVy6P5jb8aLyqvSHKwvF6ytedrKxmva+0CJc4Xl+dXsxw2EiYDDDmc1KoEkO7poMkRzqeHiOwrouyLCbiPIdingYKdzXg4bnwofNpB0uGhX+4tlsawKxc+MZCbZ6VBPu1QhpTd+/LsBJitXpBUEX+0AtlVVDB+/Fg3Ulqb+PqarlmPbeOTnh58soK9YKYFFRLQpt/gOn5U/2FwRE=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.9.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.6/reinhardterp-2.9.6.tar.gz","created":"2026-10-03T06:30:33.284352Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T06:30:33.379186Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"IjMYr+V98fZvMhuSO9PGmjqRvJVbgy+Nd/o/BRw0xVMka4SemtDMHVxfL4hNGFh3yX8NHMRn534XDbSr7jX7XIm3WYSo1iA0sqwYAoi5erzG7gwSohb0bq42zYR3ktWJ/P4GZwr9Ly7aUL9jOD30xiOc/zCXL8q5N7Bx7vqBvmY6Wqa8nmHUSdrSo702Ol0cRdom6p39LX9u/frBbfYQ16y4UE57jeFdNZkJo7wcKv220NkC6uJWbWrPar+EagfmZJZA9sKWvUc0/Qk9LGEPBtUf3ww4t9aPhS2bIazK0wYgqfADGDKPOMXyULfuKZAijHOI+NcwLgrX0OkYYHJscLHkBBrr5oS+VRQINaoJd7vhod1S5lEJ8CLFQuWuQOn7bMO1cvTMIsYI3EXctRx9NDRFGPipV9nlPdKSYkUsFT1+StykEI6nkB7V1HSK97fHPy5sLbEkuNa1zy9W7/AVwsr4jQ/1/m5AcTL/IFLujgmCMY2p97KYykG/OjVRp0OLNnJv4Q4lnPRsP9OQDSR16X9WBi18mOTUC9TsDqFThattoN7sMbRJrvHUD5d23CTjpWRUWU6jEhaKPKn5S47MFzv9rwpwb+5S6CVpaPCj0G5hiAqVxvUNcR4tmJ7QaE8/IM5tUtm4ka17TEwNQEdE8/KT7v7XfeBgh0kN68MD/pg=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.9.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.10/reinhardterp-2.9.10.tar.gz","created":"2026-10-03T11:41:35.604118Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T11:41:35.675238Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"NN13ybkvHmhxRRFpHjKt+CzmyRKQhq5h/DSlkd6Z39z0yavM4D7f8yKEL2YdQHL0WDDHtSokzbdT3fFxeoKb/i93riJHTj0zAet/wCu+mLyIDvJWzoH673edd7oEI4A/t9v+mjbctWIJI2YeRDTnJ2Joll5Arzu+fJefb4sAa62aY50X/Gv7rXj3A3bphpdVQAvGoOY38gGn2o/G4gp6g0y4M/uNgDRvj+OLCwJuDkwSaaCXW9D55gdnq6lDFh0AUXLSJyX3IM3Cm0pvE61RHZ2JzSjNz+nWvZ/COiF6qtVyotv341UH1Yi7gl9dHxSzxuopn3dZcpDziiVALwtGSfBLzQRlIG8KXxKfjsMsiOHQvCo2ool1o1B/6HKHGHKkTnQPPLtNECQufJQFdyeu9BOGWFPtIFwaC34qlq5JAQMzobKAm2WPTc9RaTI4mhqI1ma6k9OxOcMbZxrnUoxbF5n7KhHLR2NqS6SixZwjQA74eVaIJIruZN+6HV0Jk4shGL8CRSS8EcEOeLPRpJmY5bDpIF0/4lRLuFl3En9Xaawqpd4utP5C5WL0RwLxGvf8Phpnu38mkQ/mE7yxR32x4n524wV4aoECQjcO3ji1M16XKZHeL2ZL8CDsVo0UKA6XRZxjXr0LYwrBt576t+d+KrhE71weK0FpBMthva1WClU=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.1/reinhardterp-2.9.1.tar.gz","created":"2026-10-02T12:40:00.094213Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T12:40:00.147545Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"P52p34vZ5n87QwrTC3xKJBL0UaQwk8L88yQQfyDHu7O5ongMB7NWy5MOb7RYwosi+j4QUhvTszruvgrsh4uspl7T/AzaZc9adWiGnKvOt+CzTXiJkI0bbWVDG6sXOHwpHLtlkKp4cpQfioZn64V2MYPmrxlIa3dmPF3Fv8vhxzsPffWWFltNXHfe4A93ex0vPspm2chz7hEorDO+XQLxEbj726niIGo7e6/QeIkOucTjXxu8bLzzO7iLVpzq0fAvjwpH5nKTbIhizCshS3XEUYzmXAn17JCF1iXMLmhT4VqEynud2Y5547kmed3yQ2sdJyjvbKoQae0rZd4yxt2y1NZM0bFaabz5/6LFfJccLUs4/7PJCvnz7SsyEndR3rfGMh2hwqKThwKN0xOu8J0xQnGWKc8SSsDr1uK0TffgixK3MhhoAwBkhK+IlSRQaJcZu3/6C2jCCujSZDg+CR2j6VR49iIZWE8s7/g+CkAemQH/gjMCnLo3O1vZ23iwiAzq4i6SdhFKvSoD6EZbAYHT27miXqzGVM876CUHb5TVcmAUfLm46/klcJVvC81C+pkltS6PUZl+ehlyrfMfTzjkFSG+/ogX5jhUG9eBUbK8RKR0jQfHoKfzdvh8rg8gOD830dpU+PZUbQ0COgsrxB+A6sZUsKkvSCzH+OhDvJZ0ass=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.9.0/reinhardterp-2.9.0.tar.gz","created":"2026-10-02T04:55:32.618877Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T04:55:32.678037Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"atW3zgpjZOsu0Sl6IUp/XeEL3IZo7aFu+4FasDAifGLK5OeCEbQkOmnG+YNJyvr0rfR/BCJcZXJD90W2Sf62j9IH1z2gr2x6j/cMdtJrHMLMX6U0NWU9/s+hc7LK8k+yvu7Xd92x2UUGG8OiIn/QuAW+hTtVIpRn3JEx8kKTFk5eeFrMguwvcL9uWwOnCgMX0OiMwa9UAuRkR7pXsYpLS/J01mhNgJrM++gMDZFoWjArz3k96+Q+HpEnp7XskBOt4G8+bhr43OJiNE+gJ8j6ryJeSf5++k8dp4au+AGY/TI9E+2j5zeTkUigcrFGGGFIzt7eDXk/39kfnMYZQEkixb1aFCF3ocZrvghkrRzxqfSEmRXIY91T1143NqGQQ2LvI2GGyxkO19ncD1K8RsX131HPb1wqeDYvOIR5eo9DX2hVUx5GKutl42jfdBISwUIP59Mjii9KtIEmCTHyIRt4NauwbPWBGoRwifrwkJDxhZH8i55F4h3m8cO7gYtTkQ3BCtvX/gEkbDdOu9EJMVtMxfNhO5aCvwdGWQqM/8U4Y4mK5f2SBWKClyow9phnDwfBa141p++N+0FLvQS201iQQRX6pCBIM4pnx5+Gg25FFPA3qY7QtDOrT0nYlpPdJulaw/eRrRfGAvgLGIHhBDiKgzBpNQdnzAT48gNy6mhix8g=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.8.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.8.9/reinhardterp-2.8.9.tar.gz","created":"2026-09-30T07:50:50.118565Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T07:50:50.188164Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Y5v9043IvpkndynhgLNE1g94LwKWdPnSlWinN/pWLqc9aXfrmcLqBOxRwNwAGLpHrTUnELg3kXydWkrXovEyrUdAWH33W3t/SgVAvw49ztiy8cB1avCVmgcTJpnHr82Oi8DJTiDfLV0TJ8TTYk16r9uVL4VMaGbcUbdTxq+j5bplmNO8OPkyG5MR8ITuS/ilPqQGeM4DlY+K+3fMMlkTBbcGP444SSt68kXOJibUCkXKI/BnHHckwqQbXqq832e+Q0d5ZiOx6hgNq4aNY+vMMgPD7YOnst/9IMa6j48lkpSpXJGaiRQmRILnFVNTsxIJGcH7T+SvPnohy8eEHBLbpaQ3SBet44UUp00EXcWnm4IhoKUIfSPlKRH9QWiep3Ac81Xs/W9D7zmZV2ru6qcePATTL5oIOTxipKaoAIvFX4WAHS+fUq+TVRCPQdorC7oUfKyLdjUO2VHDZbTtOgCAhQAuw3jI5rSrisvjsZ+Mi0P1NzWHZdaYRqiajmFB54s31n/i5Rq1qo/51N18rnzDfZ+W0lBVpPm/N1q8ZKRw/2Uz9bgdRDfTQ2ap12BOnwjeheCW2pimtswFrhUXdZwoRciD5ihVvjW2whyOSaikyL0z6pR1MKGO8iy65EFj8p+tVwa7sDEsyrc58oZSqaUWKJAJv/1+5i1zyka9DmSL4Q0=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.8.5/reinhardterp-2.8.5.tar.gz","created":"2026-09-29T14:04:52.333353Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T14:04:52.383746Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"PlFENRlgbe7r8aBWp/lEyFzZx8iJREPxJWVRqoZwFOW6sLFdTby/Zicsj2s/hNjY9xsW+J+N+Tl0ic4iehBQput4fQ48Sz9IDcuNwBuN6RnFdLbe+a28vfrzC/ILK+FJTNObm1028rlBFBL6zTs6UWNHCdtxqmT6XnAU00mwivm1jtVZ+bGFtcMg/wLKXJy1sG8kyq68A1eX5qvw1HxYmHyk7ljaJ5Pq5zh+DgvAq+4eADLX8DDQxI8dGf/QiKOngxW9c7e/jVOdQ9mu7pY4ULf0YZzGVeP6n+JTL2FUgk35fmuKnWRiV0NwRk6lj2vkuXLoSTkO0sH5stceNsEy7PODm5zwX45yJRetbZ6F1Gwu7OVJdK439EdDeqLCtc36bNIUWdH7mh5h0wz5CP6XYupsbQi1mjcgKuVJQBA1iEjYsYafJyf4aXFNPseF75VOaLQqheriutSw6Q9VTOmSSbuCj7zG1BFfue+sjbVCOEXMKGmVI/nxE5CeoZcPII49oYYWePxXeu/KJixygPLxHcoe8G06ii88ILM5/X1yOaidUlGohDgo3c/9tPvX7uRS+uaHhalydh3e0sRTSmFkITIhggCMo5dOu7XLG+nUUmkVz7EosESOewnrcxzd95zNejpr2/v+K4Ut2Z6uVsxbxObKuqgnp6d9+ALdgSAap/I=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.8.4/reinhardterp-2.8.4.tar.gz","created":"2026-09-29T13:59:40.211858Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T13:59:40.262940Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"C7iZuYmA22ZrkmisXnHaZuLHRcK+9iRorYHqzRftOux74A49BuEYzwuoxEZRno/SBhQaKUWxfnbayDg0SNdRkqrVaBM5Xxsj0SsBUwxg8obP/Xb30ee0aKlswHGauccVMzFsAWvPtNNzieUjaCZlpLeNfh9VW34nPMuNDcQnVgHwGSMqLmUxQx3bkTo+Qd6QWzvfntSgAN2Wr+7kjSYzDHvE8gofNqkaF4mJdkGKkZyVYMvkrRmRwcns9AmCrjt04tlzSI5JhVdkWPLpg31xX6ec3F/Co2kwMquffZFM9Be/VR+Ad891N1XdmusEqbZQTf7E3wSd9ahFq+iNAR/nFBhFrIdmXJN7cfCxnfPwqaGHgF9CKbW6V3mjgzw/oG436I/f/nhBnZFHetVXGYJuQbMvQL8c+jdFS5V4vlJ6LkiRxA7ZkIbMOqV9VFFKE7KuN+Mp0V62fblW1iv0DKQmmc5UlbgcT/LJVUm5qZ8j/LKWCO9ZrmuSBRHtcdvjCj9pEedcpuM0vDVUaI0XlfnxpZYNcngTkcE2aDF7a2XQqCEs2aCIPyCcOgz+nlnaLMuImzzQmNEqVCnw3iBuZbmJ+6W6UiU+angNLGGZCsFYfwndV5zWMdAz4eZpysBIEt1Sh5zv+XvAaN1hHFfCw+KIzC/A+NWcGcrKiFWJpAYu6zo=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.8.0/reinhardterp-2.8.0.tar.gz","created":"2026-09-29T13:06:56.195849Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T13:06:56.277583Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"gu/umpLZAkDj/D4p2EwDEfgxfoyNoFTNMy01tcLeb+pE7tHfz6hY9Hin2D6gDW/2WIBUQthZGu0G5erd3I05ZxH1z7EknDbk6/itE6nkqUwKAECBLd7VHRle+8X17b7JWRWlGxa6mFRkDM1qkUFJODZvLuX8zc/SnCc2+5PTtnlCrHqeiRNMElIlkXDRSgKOlgezMSmTg6KbvcsMBQReUl8PuTHStUnrvSUiyXPT9uEIEm8krnND5gF81GC2pUTyLhO7xm3vLz4qW2tXN+gKj3adaoiDzPidO2tLyu6yXC3zZ28rr84v6bC/e14J+uovrfw8818u65R7Pcmdj+iUTFSyW1tAD2e/LTPJmtHPOjINtwXxAlibLGyO8WbmMZFWthg9OSfRMiwXluvoFHc8x+E8QFeacWULcEdEqoGI5Ze+9lqN8tD0wyBx1wm0Z1Idc+PYwymnfj87vUOr0qgz211SQp0TdMoumhn188uK1EkUcVHj554QznuZrrPuxrt01uztzbgGn3IV8XnOz1liufqT7AyRAiV8MNk4eVBcdcOckNeSDcZblCBUYgAhzCYEI+LbpZCvVIAbJkriRKsoVA1MJNupNObM4LFlki4f/ia7ODsAegcpfQF23zMBEVdyuWxFdGMjftd7pzeYNBzk8v6XVmS61Ly9nrx6n6J34+E=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.93","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.93/Betrio-2.4.93-source.tar.gz","created":"2026-09-27T09:36:28.975142Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T09:36:29.044761Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"R5++M7vR6KLPNnubi1FR4CzCQcKX+NKz6boP5qvdSDJISfDGMXLjiGPyaWc9OcGzByZALsDdf6Grhtk/4oFc/ToD58/Qh5zuaf/D8WzfqoHQfhD9WNpzy4WC3N+ISCCQ7zvOMbqD4DqCjgGMiMKsdnxoUqgZKtKn0SwQXXYeoE3ksaHFPEfbV2hP93wOgQwG53/4pCTgigtmy6nHe2sDC9skwtoOsPmj+42WObnP4bG607qERoq3qBLCC3jnqeFyg3W2xYo1GWaiFnbHiup1WXbLbAk6+bGJ2+w/hfRtQgNOqG4hgLU0/5F7Ihw9eKHwItp6sKW1Spp3Ks3tGBo2T/foFP7wHB9oimwr7S/fGKCPzKW9gRByGSS0Y6u2W38hC3l+DApADrsPtOE5RsO5X3UPJtAwSTOYMrKxkO5HMnukleZwX5icghGKWBtddx8B9Do8ThXdubgGL2UGB3/Nuzm0kZxcgFby16MdAWEbJIk8q2FsE0wdMGG7/QZmeryHnKI+UYPefSDpTMaF2mZWnvzAxZ5EHRDhpY/n3nJuZ+o7FMpR7S3lOjlm1xa06dQa/hc4J6FtK6k8zE9uR6+e8sxaw3wau745IYF85OBjb6oeeYnFhhYY4jP8Bvjvh3HtDw6buInCDgAR3/YzzbyGRTSBBAEgOlCoDR+qwoQ0zVo=","translations":{"en":{"changelog":"### The biggest Betrio update so far\n\nWith this release, I am making a large part of the functionality that I have been using and developing internally in Betrio for quite some time available to the community.\n\nThe focus was not on adding as many isolated features as possible, but on connecting the existing areas into a consistent workflow. Quotations, orders, projects, materials, working time, reports, suppliers, invoices, payments, project costing and DATEV now work much more closely together.\n\n### New or significantly expanded\n\n- Project controlling and actual/target costing with internal personnel, material and external costs\n- Purchasing, supplier cockpit and project-related incoming documents\n- Warehouse withdrawals as actual project costs and transfer to billing\n- Billing assistant for working time, materials and services not yet invoiced\n- Connected document chain from quotation and order to delivery note and invoice\n- Invoice audit trail, finalization, cancellations and credit notes\n- DATEV EXTF export and expanded finance views\n- Labour-cost share according to German § 35a EStG\n- Smart Document Inbox with project, customer and supplier assignment\n- Revised project notes, help and settings\n- Numerous usability and workflow improvements\n\nMany of these functions grew out of daily use of Betrio. With this release they are now available to all Betrio users."},"de":{"changelog":"### Das bisher größte Betrio-Update\n\nMit dieser Version habe ich einen großen Teil der Funktionen, die ich selbst bereits seit längerer Zeit intern mit Betrio nutze und weiterentwickle, für die Community freigegeben.\n\nIm Mittelpunkt stand dabei nicht, möglichst viele einzelne Funktionen hinzuzufügen, sondern die vorhandenen Bereiche zu einem durchgängigen Arbeitsablauf zu verbinden. Vom Angebot über Auftrag und Projekt bis zu Material, Arbeitszeiten, Rapporten, Lieferanten, Rechnungen, Zahlungen, Nachkalkulation und DATEV greifen die Bereiche jetzt deutlich stärker ineinander.\n\n### Neu bzw. umfassend erweitert\n\n- Projektcontrolling und Nachkalkulation mit Soll/Ist-Vergleich, internen Personalkosten, Material- und Fremdkosten\n- Einkauf, Lieferanten-Cockpit und projektbezogene Eingangsbelege\n- Lagerentnahmen als tatsächliche Projektkosten und Übergabe an die Abrechnung\n- Abrechnungsassistent für noch nicht berechnete Zeiten, Materialien und Leistungen\n- Durchgängige Belegkette von Angebot und Auftrag bis Lieferschein und Rechnung\n- Rechnungsprotokoll, Festschreibung, Storno und Gutschriften\n- DATEV-EXTF-Export und erweiterte Finanzübersichten\n- Arbeitskostenanteil nach § 35a EStG\n- Smart Document Inbox mit Projekt-, Kunden- und Lieferantenzuordnung\n- Überarbeitete Projektnotizen, Hilfen und Einstellungen\n- Zahlreiche Verbesserungen an Bedienung, Darstellung und bestehenden Arbeitsabläufen\n\nViele dieser Funktionen sind aus dem täglichen Einsatz von Betrio entstanden. Mit diesem Release stehen sie nun auch allen anderen Betrio-Nutzern zur Verfügung."}},"signatureDigest":"sha512"},{"version":"2.4.92","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.92/Betrio-2.4.92-source.tar.gz","created":"2026-09-27T09:23:21.031404Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T09:23:21.086083Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"R99IFHkn3YgGfoOn5TuaiyPMcPUDeEkwmahjvI7GXw8FOfScz1jVYK+m8PUxivifeSsxzkqlskVgiu6ZSsAmbPqWI2tqCVdd3aRcMDDpwvtntWeeOumusDdHMDAFmVaDvXuze9JRrzoLn7kmNhtz74gKWobt4L2wlreZixm7UidMp/uCR1kRPkE9p1v+4NrAMTaAQqcmP743EnbZPNKo9p0hbN9aUoOM+w7nnFVaeZ130ChMlBXyBKBzI49qpE1QnwTit2r+eiGvXQQzdoMRL/sIxupJ8yh/aWrHkXQc5OdL+fypoWopCdCDvgRscQ3jhZlcEnkNULQ1FcXE8yFMvZBGGSgyWb/pgKsIHjzLKzx+lxG6I89dwplIHCKTAJLDkAIc0Wwxl5JrgP5panRh8BfMvzqK95qMct7wGsdmfu7I1Qd0RvWvBvf5uzvoxeXraaIFDYraxDOqBeMjQjmozpztqmItH3WGCnGlP3V05+GYYF/ujXWonFtcwnNILI5vKRJGTfmZpbIDGNijdzHPo7BAD7Z3WDmv8GTGnHPdTqOCBzKi955rDZV1dvL0NvD5JJ0MBCniDa8ifZTfGCo6IwGr2QLB7VWQBa7jZqZuui+JeIhYDLCvOWPa7V7y5DvglCrr4/sPBzEKIkFbP/EV0XOJyWiVFo8+LiGX91OsOXU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.67","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.67/Betrio-2.4.67-source.tar.gz","created":"2026-09-26T17:00:22.142914Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T17:00:22.212059Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"cZqHNs9ir86liTrrN05pah7DTejhJQBWFUC1eloQ2DP8XREWaTlSs1Erk9mCJxZ9d4esJIjhOZ4sm4Y2FT7s1DjUtTz1t3ns1SdftTPoYKQ4nTM17tPsrUqU4QNTNrJ/pnfZIIroWkK162RAgKUKOl0+0ESmqtdYuF1KM5+ExbMfpb8mFzVmAfRP269SAtv2UWfoMJA7f34XDbwQWmYQP6v5C4M9JUb+WMsxQoFvRj6zWoFlfgnxyCUdZ+RZgVRRkPkj+uij0yYSoNgPvkdViY77Pfh14tIwCA+gukW6eOMTqQHXFNUxa0Fv97sbRV1imB17dyqYUUwtVFneqK3LHwYJyF86ygSENQ7+K+4lFsnUtjVl8q6x/jgMoZdC8fwQIP14cD9g+op8+wF1UQpswG/sv9s6awOjJpM/Nm7SGy5he1+FmIRRuNJYz3u1uaV6pUGJF5veSRsYAVOU8I6Ix51jeI0aS7DXFTd9YIZlg9K7vwitlO2NZtf+SLriN/qPl0VX6H5eoq6e5Esl7JMj9+n/txWelGj4nOTJA5+Ar/hacZ69BHpCnJd6hGddX1AM9NuWxlNyhWcwzIvFmKEy4ZX+Z4dRmZyOH1oa/Z7f2L5oIgvAGjeOuI0YEBsQ0NFsVPya/xm4VYxOkmP3FHDQFiJlf8PJiarxT5NA5Pu6lCs=","translations":{"en":{"changelog":"### Neu\n- Premium-Oberfläche für die zentralen Betrio-Bereiche weiter vereinheitlicht und verfeinert.\n- Smart Document Inbox mit verbesserter Erkennung von Dokumenttyp, Projekt, Kunde, Lieferant und Referenznummern.\n- Zugeordnete Dokumente verschwinden aus dem aktiven Inbox-Arbeitsvorrat und bleiben weiterhin nachvollziehbar.\n- Dokumente können direkt mit Lieferanten- und Bestellvorgängen eines Projekts verknüpft werden.\n- Auftragsbestätigungen und Lieferscheine können direkt dem Lieferanten-Cockpit zugeordnet werden.\n- Passende Lieferanten-/Bestellvorgänge werden bei eindeutiger Erkennung automatisch vorgeschlagen.\n- Neuer Abrechnungsassistent „Nichts vergessen“ für Arbeitszeiten, Material, Rapporte und Lieferantenvorgänge.\n- Abrechnungsrelevante Vorgänge können als übernommen, bereits enthalten oder nicht zu berechnen markiert werden.\n- Neue Belegkette: Angebot → Auftrag → Lieferschein → Abschlagsrechnung/Rechnung/Schlussrechnung.\n- Lieferscheine als eigene Betrio-Belege mit LS-Nummernkreis, Positionen, Detailansicht und PDF ohne Verkaufspreise.\n\n### Verbessert\n- Bestellnummern und AB-Nummern werden bei Dokumentvorschlägen stärker berücksichtigt.\n- Projekt- und Lieferantenvorschläge arbeiten enger mit dem Lieferanten-Cockpit zusammen.\n- Der Abrechnungsassistent aktualisiert sich direkt beim Wechsel des ausgewählten Projekts.\n- Folgebelege übernehmen vorhandene Kunden-, Projekt- und Positionsdaten.\n- Verknüpfte Ursprungs- und Folgebelege bleiben direkt nachvollziehbar und anklickbar.\n- Kurze betriebliche Meldungen statt erklärender Systemtexte.\n- Sicherheitsabfrage vor dem Erzeugen bzw. Vorbereiten von Folgebelegen.\n\n### Weiterhin enthalten\n- Rechnungsfestschreibung und Rechnungsprotokoll.\n- Abschlags- und Schlussrechnungslogik.\n- Storno-/Gutschriften-Workflow.\n- DATEV-EXTF-Export.\n- Mobile API und Offline-Synchronisation."}},"signatureDigest":"sha512"},{"version":"2.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.6/Betrio-2.4.6-store.tar.gz","created":"2026-08-31T17:32:58.573837Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T17:32:58.646492Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Cb2u3VSgZflCOQd2ncjcbezEDY96LPuldVhzV5fNCMEZexDEOY6Z1w2sxUPN8S6XXqJtfLib4pLTRlTOEiqADCaoPwEbm24Xz8mavqGQ75BhB93JIxMyaXg6VUnnv5Sn/Qub+/d2YM9fj4YQ9jWuGr58BKJtTimzOkkt9hxTRejHfeDdkUjcpZU0mQmUtdOizPqgigfGThudVX+bL+nhDGAc9H3WR/hw71A19mWDBH7iYUSKVQRjDJ1eB+0RnWO9diuu7ZNv+HTI0/4ypQsoceDGm8QwFaMEfFWx8wGmFPMwOE8HFw92ejsDQVS9JJkcJGGB2N7Yqmq+mU4GJ9gAWqtpFomm5ooxzDjzR1ny3WZh8EvYkwJbPu2bnzpk2ftPJmOQZ2Y2Yz2Aqu1/DRIzEk4/jk2v0DSOKaNkV71PN/8zmDvS3Pq4/2h0+ukcc+v7+HHVWuc5Elc5E7/Idd5xSy7GRyKOF1TBHWvVGtkYOI44ANz/IeI+pDLGibudPD/M/20aZ3hj5xE6f7wIS0Eo2qeL84fUyVWh2jm80npoAuCX4rEaNn85Kx7bZDnhgG/FZsyqlo/rwkAJN4lS9V5MLbE3CTjJI/3RzyFs0EuyFbL/z58XLZUDXth9+MCjUI1F1/7EkQhPM7ePx/JjP92YsMkSa94wSNKPtNgIhRIgqvw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.55","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.55/Betrio-2.4.55-source.tar.gz","created":"2026-09-26T11:57:54.429216Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T11:57:54.486831Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"gZw6eV/iJhg25nkYUQYI3R/dXhpyasl9GcFTia0xFjFh+cvg2fYcpSVKF6ttS3jekjy0GXfOleXCKp/0HzmqGhNzv0V/0Mnw9KeBG96lKFlwBJMqIsw8Ho2WII+g3sg5s5yeLvycy564bNSgY+rZ1jcLkL9igx++w3hMne9mtDOc+fim9zOjhm1pSNXwoiz+xzq1oM3g6QIR0LWC7p6V5AOhJTZCcBdAT9CuXrdQOscKtY0RZtFlZFU0Z8VYqjUuyu1pdrX85HJLEqQqQ4fQ7wX/vm1xcpSmhYCyJVlG0vdeTZ199UAKSIERcKGUm5ogc0QRQB1+Dkb4EkBXJm3vIfB5DxloUE1hgQF2+WLCciVfVmssDwh7PRRRHV1DccLnh65LUhW6APHrxfl8QyFiTbKYGjkcn2lM4dDigSrG0FpuaBh8AWJqmw94JpBNkZ5OnIFsJWYPlmogbpMC+bbv+UpEiBx6pxwRFOX6qSSdRt473t9XGZHYDEXUqWb4iFUQFBwvONuIGPQzzzjHCl5zfd1JBBAeeAmXgL/0k8OmkzIM8GvuWGnaLW4bsPxvGagUNsfbCIAnLT4DgkNHia7rRZP8gBtdbW4w/LABsS1gmO2msAv4xLzrb/qlNlRGP/TzD+kWEXcxF0OatmVjJfeg29HWptw6bLD+VZYEk1nJqHg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.52","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.52/Betrio-2.4.52-source.tar.gz","created":"2026-09-26T11:37:42.256903Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T11:37:42.343412Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"QYtHb4zul/VgCWdzwJwSo6UpWTlNAQjQU9eUXKdYFDm0Ou8EzVLKZ4/djI1CWwkSn9ZDhpHZkvOOJiDMdAK+gdPliO+H1Q7IvsvBrsos/mmthPWM9ZOZPspPf/PgKJI85ujwawpBUkbFLBIV6YxX9/bjVgP21DoP7NMbbgtnr0mvDVF3GVHAayc76qrIz7/jJyBev73pHdZdjO2RqV6Wqt8eHypdXptZXglGD9OU9PLQKsBUAAZaOKFPBXCbqoqTts/2RmSvHEG9zPygIN9FmFzXmlo2xLwGzLLsmB8pnvpjUd1CkitpdUggC215AMw4Om9VC0hZhvhwybnq9NH/RECB0Ti53f4ONSfgZE7kOmsK+X1bIHQDUOTJZWM25hmL2WlBvUOlkL2tVPqwqI7hL7r6JhviavAsGfocrW8x1cfD6nMuhb045UYj4OA+KfHixQjN6ZR+G5S3RhWONTO+AiHlS6HqIVznDGR8HADbK4LsiMctpf2jIG5uJ9E70dKW/czfBX+BvRfrvaY86nUJX5dTHQqLKzGgv1/MHmjkmnTLzVJvTyaLgM0vUkkLNPQ8YvJxNJx940XHseBaY/7ntDop7PluupRSB+Fb/A5NLpaifoLDzizePzf5jTlI6KScDIo+GMO8Y3fogPBZxtfvXHQ+aQf1EgUHGiOesPe78lI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.41","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.41/Betrio-2.4.41-source.tar.gz","created":"2026-09-26T06:13:35.305418Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T06:13:35.360818Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"AMcaQesFXb3OLYNHPj9ohGJEBYso/fqZVrkNycdjUBNo3Ck8D1bEblSEtHykTLIs550DLTjhMkAlAFdD/gsFgh9aZ3FwVxBKoJGigQYQcHLJBoCmk1OImOsdMp7648kxK5YagM7hcT8HjrT1RYSbXv7cOuhTT3TFSiEUXct75mMCQBmm97Wj5qL+nrwTsn8TyqzQRPjnkKgJ1RCOieMWIrC0udIsGRL1e6lMtk+oNhBR9yvgLK190arZabEcGsy5pnIjf2Kh9hpKZH0PmujDqMksAdq2uKk7bajI5zeSzd707YhTpRUO6TDHTER5n/uUDpqnBxvhat9cmRNCAnsbywduhcO3YQPYs17uxO9wHGPnSfAbhZuFggjLh94UmQADCv9b6BdmFnUstPavFyG/nxuw2JUZd5J3LVR2Rxxih90VyylDOICrPTeAomX74dror1x2wJM6lrHPJjlZ7DoAg9YyVnEffRRR0VTR8W9iTopwOfc9jtUG9kfqZ6bknRs14XtRLJ3X3UDQJNYvDcHpoxFaNfSpZ0lzzIvwWC7iNJpDBTms6Y79cqig18eesPVxmTOh5DbUdfmmGJIo1k1PMfyB+FfVnybBp7nunlO7hGWOd7CbzDb9Nl/W1GDgsg9pvM2padZ4yWGfmQmJZMU5XmUz9CYdwltw5xUDKFOd1qE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.40","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.40/Betrio-2.4.40-source.tar.gz","created":"2026-09-26T05:48:45.911140Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T05:48:45.971208Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Nl9tgZe9UwgGQ4QbMqvegH55gYaI0RlNXGeuJNxkLVYsb7puhymoaoMQGdcjrVRMRlhmEWf0A6ykJwUD6O9T40RE5A0ZFBLQqpYVV4i/hhKYGmTMzdCGtudv12ufJ82c4pAbmG0aHS2sKGOIbUheIe6pPWXgaZmYCXo0k4hH2eSW1/xiuH2QIxeHFcvEbEYDBFwPKZcyD15GZmUy9TPnKqUyOL+501ei7TYmQnDLCTg/RFgu1+8n9QduQ1XNnfr+cphSTyZ5nb8ZcI5Uw7C8mIHPBIZ8F5L7yNfQWjljTGkzGJv3YL/R8zqRw9Ld/65mhyXLhjpzr3f11ibcnBNIhYiRKyyxhXvIxQqRDJJgryRiCPgYwRm/c42ghh3P3n3xA62YyGOQE6IlSBfajpoftyN5dFykFcGdcEIah2YPk5dvaIao/O/wk5SebOOBnD18jxX8XsYarWw2/RvvSWJ87yiuT8HKXrrXEgrDam/Kq9t5Ueuo8oJm6OULyDE1m0qO5qd8JiqvZzUxB/mzAyCH/ed5McCrD2KdWBHfSveV83fK68va0lVDStP/ngPdIRXgn7BEJkX/r56TLfqCyuG3DI6JoJ40h8STdDTOJvbRzL6TrzBSFsUqQym7PFoYECD/VEF1LTWEV84otgk/wz6g3lvk1GpZvMcqCa2SI+dBfjw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.4/Betrio-2.4.4-store.tar.gz","created":"2026-08-31T06:21:24.400035Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T06:21:24.517338Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"VIq/mImfEzV+eyzaip1OAcdfi0x+PXQ+/EKSmAo49sUAGr7M/UBwou9zNlBtSrJYhIppxsyPn9R3gk0EWMkfrbXDJMwHygvsQQeSwzGqQI9NX+CEixdj49VIVRNXUGH4JqDe5gYMJ7R0juOEeapiNUbrGHJb1ln5XnOwjvwrj18JIL7mF9XLCMXnFUMt85gODEXWtWD2hOGu3aVEcbp7vsUXx3mFIcO68FQ46lFzdkEamP8h2A1rtjvHxiOTmaykMxo3jKOjWAczV0LN8Ubn7PXoGDEjIwaiDI/yCW5MHFl9akqGO1MpFw6y7fhWkP2F2+rdlABkkXGYvFSjKb99JWdk5Q08fsbTyp7vCOFEQlGlgPCKFIuIwQ7u3nOvRmzq0ps+AF/xxCkXAqi6blWX+zhus/NiVxdfb0rJw8c9zX7UQKna8jNpUW4X2HF3MUTEV1nhxjw26MJOiXW+iSdwRmXrHj2erwSFBj11VWpcdweuto3/wGzWsgov7fKuO6Wc8/BjWqsQK1j9XxeZOz0B5binTiTt8UiJd9NLMjKeFGMM99dLAmOP1ARIvL82LkXaS4GrpuTcebP6GDnoTl8vdSELSKGxTcWywVbFoavaYXVfPgK5xHegR3BhKICflsqlgnCDBBDUjtg97zlA6MGd65Z3C8o4igfmgiHVdfcdW8s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.39","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.39/Betrio-2.4.39-source.tar.gz","created":"2026-09-26T05:37:21.545452Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T05:37:21.598919Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"NYR20bIPEYOZIQYcNnIUWlZwSS2uAO7j1L6WtsRfon7E22Ko3SyOl77u28vUAAY1WtMa+ILuFwTL2mlvO0RTncte7TnJcNdaJKBdJgkeGtXn4fCP/fPLc2WzdNgsR6JZ5W9Wb/qwqIoF/xEh7kO242wQkFngfVB+y7+ekbff923hDV08h31wt4lKaE9hkG4hioseJyNeotCtP6J9Ul0ehcQCHH2cyAulF+u9bWAG8tT5UDfdZZJSN6kxCuYV5IX/1B3mNhBeVKCm1eIQrlxO4tIxpQZTBVq5S6ePlMpIQB02e1yc6OHKWZif6GXsK75T1bq+lm1FUnn7fKAD/CD9ryVyKhnHcjhTSFOVtlQguyFQmuIurnaIHvo2ByihOFps0gj4sy6cgT5yd6iz+rUW4c52RKdaPVYraUC+hjy3ABzIVNerGB0cMn6n46VzkvKJE/WHiy1IOErjCsFDFTvf9PXTd3p/Y3I+zBRtu0ZHbuViFV+DHJIHITrTlHy1GYFORIfJfwOo56xM35PCUSLObxx8rPVu9lwlwTFMpqOpy4F3SwBPiuKsIwCX+ef/Ixhalc7lJYO0+gZZMILdD69OkD2cNHb2zTsGRLkkYnI8p7L4AP8PJQ4O51sCcNHfTITkENxfWI08muH+V93U04VMotui75FmK3n/d1D5gXMVcb4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.38","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.38/Betrio-2.4.38-source.tar.gz","created":"2026-09-26T05:27:24.680181Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T05:27:24.734059Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"TBFljeKUiqttioT1nY3Ep7ggkJgrsoxtmnORD0T1sGjhTu4VGq3xtoyYHjdF+rbL2M6w7us6Db4DItWAmc7IhGSOJ92eGprkcZB+tpt+oSvWrQSkzP8rU4mHdalIkg7g+2IeEM/TxSrnOtHfaz242XNVMBKmiGAC2vlYvtWjJAaVtAEylHQks9IZgXswuRKfCJnZb1HZWBp3gCKRX2AtNegewbjWeLoLzmUynqZQ8HsoVMWO4PRGEHkwH5aSSRgTHotElif+cRnEN7GmfnsaELpXFa9CgSyPOEJibjc0g3AmIF2vgisx6FtgqWKQLvVhe/VyMpqoosQ3DMex/+5aBDwUC/SQv2/AUGs4NbJyGxwzYBp3KWgn9tKXsSRptTeCczh9t6gCssE+A5cgEQq8HmzLGIc9v7HTmPVEYFIt8mgX1NO3J9bYjw0kGCAdDv2C41dCe2r1l2yvMy8UtpWFhdXzs3joVeY3Zoz7SQ1lQ0LU6GYA0vhPadpfulU8bPQy9KXp37fZfRC8MCst72bs6/ljVoHFcQcBqGkcGBc+RJVawntjTKRS0vVl+o4oWUkFaKieBT/aA+DxGwd93MiB10Z/6ywOHRvTE7AJhCy2SctvUU3uKx0AS0RbbiE4mAxfoTg1eIyR4xyPv2EJyYuOXnxyfynalmzOqaJ8qqSt+/8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.36","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.36/Betrio-2.4.36-source.tar.gz","created":"2026-09-25T13:29:19.980047Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T13:29:20.037364Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"byolYejJSUjKMy2ynz4MaLCrQNlICIME53cPPx7vJQzv8lQuRtxW/AaVzBPkLhNP/RwXaXT5RuHzfM7h                                                                                                                                                             xoKyl17dqTAFn8H1nVBgGuqAqaD/StcI/KAf9WkDcxwWXjKQ/Qti2zNA2hNthO7xzGrRWBQBBqEIyIte                                                                                                                                                             Uv+9v+OPamq2n805L6JZk8fBfOITXrtzXuOnfVywixpWdr8LljOmzgXkcpO8Xm+WRfMRQ1unHMyJTWYb                                                                                                                                                             VkicxEfZRhGx+ztuDGUI7MT9q5PWkyenmYomoVAA0DK5Wj8tdoiHAuEyvpN7bgP7O6Z3FhohK9UL7u9c                                                                                                                                                             aGP5ByjIIwCAML8pxx7XRCwsIS3Fe1KmQbD4CDEBchj4oQY3CO6HfsObu4bxnPBILuCWgrXBtWbPXm0e                                                                                                                                                             1DIIcXgXO2+LYLD/w4sGTg8UNh97HjXq1fxAQceN+tn+JnJzOVG58mz8bqhZx4LMdXnOw0YCzXkFX78m                                                                                                                                                             UBroHxFAWcbwvkbGWzNogaLSpPx2BWCbbHctgE0zTaG+dEKvp1XIYqIW0prBi25lEE3+vk5YHqcGW6MH                                                                                                                                                             8f333Qux9467NfUlydvuzlTvADv2D506e3lJHKzYah+LyN6Gh8sfT20CqOdDQdNonR8TMxnULKjfNdRM                                                                                                                                                             kNRVtIryMJM2NAqxA2gzBZHRMPRgFiVuVivZqRX6Qzc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.3/Betrio-2.4.3-store.tar.gz","created":"2026-08-30T14:11:55.101812Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-30T14:11:55.174813Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"SKmaXXNF6qWoSZzr1sPYYWja6VdAGlL8A/iIaL3MxPyqi6VKaTZzE4JnHUrCWaO1FLXpE4uOyrLit7lDWPXLE/Dxl5tBY2RBfI0wTL2BqfH5IwF9j4T/HI5QDKs6xaMs+SmEhaAl16hiMFnSP+bmLuEtmS0IuU5r88K3nw2EidYCp/sltHUMqyp65MqvnTnEOiGEh+2j68shVw8ZvJN8lQABGCYi1QGJx4nIrfiUpfs0D1/lO59F7joO1pFRMeTf/ZMDDK+go+kMVSDJnM4Z8rlzpztF+b9lxmYAVmr5V9MvSU/nKvvOo/53qFkp9j6W7cnR/vdBF/NHx/eyEnhGsPibBH5hubIs8nPIjzCSQMeJlcEGvKT8Ww3/oE/BM6+8b2AEulTNyvCjwcJKPiLtISzKaH4Zi7aZGg55boJD1xETUyrp8YdTlE1psXtzwBJmHyCCcitNcyLJ9W/6Lc4Yvwlzy5LB6UPeLJAUHbkPhJVrOKmm9DxV0+6/TPCM49QOUl+VAAvzi+S2iZWy4OUf6jqs3wdGH7zbbfUbs5RqTPrMgQnmnPAVaaSY2mXiALH3xKa8hgs5JFqPOkY+EFz239/+P4dM20lDR+fOpI4U/rOHIDda13jAgRtoO7bfhFHzO+DTW8kx6CV/Er0al/oCVwajCQxrz/ABGXjSwK/11X0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.25","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.25/Betrio-2.4.25-source.tar.gz","created":"2026-09-12T11:09:29.152025Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T11:09:29.228707Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"N9ugow7aOuDanOgEhJkw5D1Xk+9tr0Qj96xC+3LeX7FxRlFcPxQav1aCkTvw7dwKfl1T8yVacpY5SIzRIs7TnwACYdzi5eVZyl2GSCyuqXZ4IjvGkNrkkVSuBLd++y8fLTm7f78lBcQv9vijEN1yD9wXbAWwgWAXSYmVs6Amcbs9JotpkVc91pdUY+E9v3v9GIqdihJV/LScmMf4CuGzqbPS4gfIK+HSdWFnLjoQcuZ3TwDEwj2w4Jj1nxQPW9IKCkxDCQ7H9YapZl+JrjayZ9uW4X08m+0zgT6Qtpi84lh/vdD6lBffwNQGUgbeUnZ5fOAG4UhSbPEMLyVh+rVHa7A/rAoyKL4JOlTyx3oWMddJ7/4+ka66ai4HsB7kuVQv7bXe6SkpqtcRmJ3p7XQb7oHxIlISnS34fop8OOfbE1Jsk7Zg466OtX2HaLFFLjPpqx+KGd9L/98sPuteADsvwL4pjwvtOYcMl6CENGLMZZlOgZxL23M5L9sgv/fnfEmo6bXsT1LG0jhT/YhGNdnRjMFkhqvOJxfM/NmL9aOoyKH0g8eFFeSKOrmYB57ga+cu1o7zz25jRl8prXvDeJS2/zdkn3etsqm6SWIjXY1JYto8BFVdClEdxeD3nUCGN8VEzwrEVg8wZJF14o/broZfhFbAZQ/Hl58vKsXDgJ3Wfjo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.24","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.24/Betrio-2.4.24-source.tar.gz","created":"2026-09-12T07:33:32.011513Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T07:33:32.064555Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"hRhEek5GQnudYYR10mwOEMbhELFepHyBHGhRMUty/pcHVup48ucd8D/S8tQZnyiLlX4tNn0DwA8D0k3TRQklejBSotoUh20+7yaymvlunzDL1kgY11SgmiU+efwA8xnK4d+whgaf1WxlVNO0Nc6h4LGGYfEf4oRqS4J4rvEhj6S4B1fx1hxAhWQHO14psBvgqNyvoT5qUaD9ucjl1z2JEhoEXBkb+/pFsxqZjp3rrr+kPN3FO60XfrMkf3XqcCPWFxHeikfZI9KNKjShvEhEOz5oTg2NB56ldfsslWzuvSpjgN49bELewOV2Kn7bqaB3UIlx8Nh9uLJziHCK5FmvlAQp/At4DP/mtU9OcFk9vkqTou/KL5KLSyqkSiy2tvucCRWixijV2rY5WxPhYZGt/KSF8b8g8J5EG5o7Ty9E+v5q4Lr341Y6Fnvz1ZljBjE4BwgDm3+lHYF3SC7CeIYB3WMSZH5Mjn5BrwwtPXmgnqMxsgjUifSgf6ZdG3q5XLOPXEIAIa3QpjHSJ8R7WdW33hP5sRVlgQK6vLK2k/eyHTBip6rVHPcoDHgbOssxLdHt1RMmOGD3yoj8qLKDn/xYwgD/sGOeY9Nb/OKfrIeG91QcoXH+UDbKsKOWmqE1LcLkGNE/lpvKbM9bNp36uzSxFyN8CRUZlZ9WeBVcCxYFM0A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.23","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.23/Betrio-2.4.23-source.tar.gz","created":"2026-09-12T06:39:02.933370Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T06:39:03.024260Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"alcc6IfAgrd81vgazrMAOFzuGtnhFoslLWUy3iwqi/y0CT0ZNr8IqWRBVfbnsCEIvhObuSdeHRMD/BEIoq+jUMhnoTjYK2xQFbLa9WVcOjn/qPvwTX0OiF337z5e69OcaEtMeChODmaeyHnXTNBbEj+WK310LJqmhApnmcxdKKA06eHEOTHVe14wp/S8ADrRq60J2A1qDQeYfWSqnV+tS2UlXAAyiMZee9/hMgWvYy22b5QfUnqiQUplV9BofdFo2dBrwrjcLpRlezitP6nuROBIboM1Yn03SPt5BGN4cOoHnHN6almH36GkXhInecE3jHVjBP+ko5BKi/8Q17e1hyH50HxpdKnxXAbCSrApVNxmy9Q32PK/Z047ZFyHhCMJgjbK0roj1O0ghLKPw/1LGoyxZfeF6zVQotn3IxVqqMh9K6PgMdlCYXMyB7UvpWGNulKULg+1c2GNAeU4oZUW4qJbZgVImIS6xX8UUMdv5NAzltWz5lHjWufq3j2HDy6yoq14i+xl8y/zmJpp6Z53Nhg2weJjLsAQERB5sZMo3gKsOX3OPf1xoVK7KH97VM/f8YRyP4K75fHLHeewpAvn8MSReLGLCUsM88NNwyIx4PAYEK2QSoRkB9eV0fo0nldqA8Ft5Phxbelabsz/F8qhpIFZsyrcSu+HX/RA9BiWLkY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.22","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.22/Betrio-2.4.22-source.tar.gz","created":"2026-09-12T05:28:23.914473Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T05:28:23.996471Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"WnJKzsGVV9hPhXHGQzJ9fDmLvqc4e04mi7H1PcaUIB6j+gcf/uvS3UGrzXPEU+HhnCNZcK4lJQLokWT5hOlkcm3G0h5o6b5Gb8UlSw2R770JPLIUAHyrT+TMNArWj5qEm80U0zMD0aj6N0yIDoWD7BTdeYY4Bx5BpruPWk5jmDZt5smG1k1P4nvbaYHcOEEPmAucgpalf4hjG3eZzZagItp/gOJ2ExAQ/46/Ov/cICpSOwYZHUD0SPNZ1OevZra+NUnhFR/oDCMRxPNkkWLag+c3tubytwvmJmYyylvnnCRE2BPg6uTuxMU290F+K6K6ztHQgM7KtdE8tw754nQnMqiUW/N01sKci4LTDhZ7VYdkccdxzYoFRcbcadawcLx2tqGb2dlDhJD9Flo4APsKlL1MsXHA9AZT0KvzprRaxZcB9b8saemkPKzn2zihdjIJ5eGVOFy4uP+z79Fl0BK6q94Td2c76wl2KxdHcnWEGPHLpIg+C/XEtX8niEiE33Pa5WoHdKgWt3clLXuIvcEfYiiaIbyNM/4pi8N61KXAx6Usd6s4jbJ60JCalMwj435O+wK6zk7baCSfBUnRhDuA4EotdGqoX4+WezSBt9mqYiAfR3cZ5C5mLZ+EL8XjrsKVZsAZS0gayyeV6s5RtR8+RVkkRujIyYMYMHeKz1CpW+w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.21/Betrio-2.4.21-source.tar.gz","created":"2026-09-12T04:26:50.779636Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T04:26:50.874318Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"A59hXRNbG81aiJUthWZkTAgybI75Vu6lEcyWtTXCPc4b+6Xz0dp6zilOPTRpeYEwetJsiFsLxlPlrq25t8h8+fp7alT7+I+EWtNop6XY4uGU3uHGdUkFiWnxXdMj0krRzOfnXDStXmh1jKaLqnoLvfL5Rcu7SYwJbkam1duT2X3voNkzQOexnpWUZm8srLtFQRwwW4fKhilQnPoeGL5gvYqe+A2qaT5NtFgRYed3l72g9957m/gnOFvHZZKp0PvO3VKb4p3dE3X1SrR+I4LsfI45NAKnDmZsoic3gUr6Y3/Rh446sMV99ZQbuW6LnWGmE8OErapvhalrGJ/RJJx7cSLBTgXYs6yECMcXShkNj0UL0JcnC78Lb22dbUAgAg39tStOLLMJ7ErheasutvVOMU3C1C7KiTD3n9UBH+fsThTxzquU8Dvacpt27pYlhGF9tHMcLxEhAYrwVlr+DC1U4Z24e0WAZa4pxAt9+awyb5j/rf0Anw1pVtFmG3JtsTmZ5tfkBENnKke6G/AORe0A9af0aKS35OYPoxUa6lqdxahPMwZ/UAkwKN8AJ9QFPDxQJsBGIfvA2BgE/RSmIeMaxwk3h8YipIHZ3NKwkD9rsTNh7WdGJHsVZoRSBm/YacJ1Y9R8DOf1bND2kTthf56knfoRjWfOvpY8QpAzOMSEOsc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.20/Betrio-2.4.20-source.tar.gz","created":"2026-09-11T11:43:05.100467Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-11T11:43:05.188477Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"UdOsh6WHC+ESHfL+kx3OB096ibSuh/E/c98xBMNf0K8/7PvYeK+x54USFNrRZMNrpFddaNpCo1z1f0PiMH9m6zvYiuKBL/K2oUZPVEStG0IOBUyKDp46djBITqDuv7LHYL1bzNcE8ucNDQlIxH+1HUkJFDmsDW8OIJhrWOYlukNl+KHW28471RhD9IC0mLeQqMHLTZy8ItLYtp+dAtu63xhCVgYRzubtKVOnS/Msj72dqqfqm9F+pJdpZe5843GE4xQTRMnGiMht2IAnLQOGy3r1CnwKXdNb11/mdFAiwp9/QyKFiLDF9LvCvgrzGIL9B1yWNREk5zbW1//ELr0zVxYDF9eO3caOwc74G9ostejqub+PDlJBhwx7inye1Ls0TTBqih+cOInqI9xKUG6WZKaxHd33c2S8YmEk+DmitgG3UHWraEAJ4OO9/iBPw6FIkh3xAWR5uJLa391cQpzhJmhhTqaZhbUFtmTOjAQr7rkv3mG5C+YEIxpSO9aHeJuEQCAuQZkrhuKqnHDl73LHe3h3EuMTurgKMBkSV1sxIsnm8nsqA3GQnY8BYRkIf4D0JVtLy3axM01b8E5RZ1eo8fiUNug5lRffK4sZVJx0sUsO+9GeglGAw8NRvHT+ODDk30y4+n3YZ54MXi9b9v7JeFAw2Te8V0qnBQVKo+KodxI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.19","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.19/Betrio-2.4.19-source.tar.gz","created":"2026-09-08T12:52:01.855454Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-08T12:52:01.929338Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"m4ID4THlC3v6lN2OkuxJjmz+1USqycloPkzNEcr4NmozvhdPjuOm8rsAlw8VYoqUnxkGkLoVSY1HxK41                                            hCrlUm0lRFdcJWwwkUYet4AJlj2tnjcp2Va/sTbt2LBnKrVkhVNAu3sXEoFjWBgdOL2wbt9yNgGapu4z                                            7ds3Qo/4XNSuyBQ7YGyhS7gsyTjv5hd51GdtUkIBelzG/3Ub8UIpq3YNpEq9N104ovY+xIiBKsneYFdO                                            bU1oKgeEews7w4EYTxCvKeBUZJDIlAHt3Of3tFBvlSVjovJsSAL9OrAGl2F3PpL6zhXHe2+QQpFQw1ZI                                            UtVrelyWKpurpxRccsphBUJLSV9iWm8jUFcqJRQzGkB2fEYWhV7uNnz7znCAT6Bm1IzXczVCuZ5VFRaM                                            SdajQxdca66799C5ipdcjO6XSdk/LjUPyiYQbSOMe5bPNbzE1zOj+VHjwPn43xykxMpsMpdsVJ2iDL3n                                            tQk0BaUkw4h+QwRsldijnRGANOlgzHyqB7vZEJlmMBHWGJA4fdgx8ReFuBSDvj98RbxAj/gHYkCkUMHE                                            OI8BDjdkh5NEtTdsorEjNr3JOub9qWWogJ+qi2Sq0Uk1TeG+FKXbZz2xrF+1lqlMLQC/t388HQS13cnZ                                            zGmRO+U9gmB8qnCyQas1K0Up2u9wBm5jQpUWvJMGMh8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.18/Betrio-2.4.18-source.tar.gz","created":"2026-09-07T18:58:33.473795Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T18:58:33.575086Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"cHmZcciuHDSEKth/CL8yb+tSkezGjcByh0MhuDhw/MlqVr4p7aWFglod3N6YDfMK5XcQ73pLNJ5Fk4n+j6sF3qVR8koI69+ru2+sVPBGDnBhs9htoiNAjiwDN2IYXfIkFqr/liGwuFj71Js3MFOUfCSK2VmkJ+/GUYIWLhfIcDuMsIQLEdFzjSoYkA9EiD58BChF9OqG+gaSUYLHd+/nTYeMAO3gJQ4g/wt3wNDJG2BSj7lYWp3bX0cGAkeQtesBZy8qhevAO6Y8tiAxb9xucg7ftJT8Xo8YpwV548nKWN/ABC4rWOF9IrMgM66bA1wZnAoeBNx6KugFozZxn78k6tO+oq6kv7Htim4xOMhqBfJHgu19i54Pt/Vbc1WyPdLrU+94dNdtI/voGwlCe1fcipAKU3xCKx6jhG/DUqib4c3UTOuamLIJ4b4fDjN4AkL8rbG/DCCdLbP2wst9w/gC80/wjPukToy+2ssHAlfAhWD7J7ztv+9Wg/Vnr2POi6CtPz0ZFsxXo31o3zZaS+Igu+M13uAhqzi+Rn1BPDl05De9Sdk54TA7wnZkOMUbCjqUoggX3fLNZ0fDX2DoZid0rERmnqdZduEoeiGOofWKOSW5qCeHX74jPDdGUQ0j7HzMWVFknXe5rHmMcdUUlhKpfKaSXR4yKGQChct5HZUsiuE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.15/Betrio-2.4.15-store.tar.gz","created":"2026-09-07T13:45:59.809976Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T13:45:59.897684Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"rVeempYGC0jnkQ2IE/SabI+KIjfCNofnFkyvUHsghUTAC4uDwHv5XlxB4RupGZoeWcIWETDgGOKw6b8MpMwbHXkmEjtbgqvMENKf2obX/wPqMFtAqfBWtcMDIlC/B53CQU2eNrmePsKosowO733vTJHXc49oOhlN7bLn8ytte3Nfci13s7lyeJsgiv3mu0FWtnciyTQcbr+fkXm2RGXcLOZzfaWASxI8cunaCrst0skoWHTL0b/TVRQ5xacDgbsTKSUuwCsBU6HdIDgQeFJwqEK92aMktrlJac+6ZNJDfbSDGNAfg0VhF2EIjgIhgJ6wgovXlSy7aY64YjDC9UpdWp5PYyBKCtyy60Rm6okYEBL4Qv1tRyh0P232coBW5f6R24YA407hZUCIGyjUji/AyZu3TWG+esz/Qk4jqYtEccHPjhhvicaEIRyfzTKfmNMAjm1UvXurHxYhqlnOPGppo1rxf6cmq25nYnQbA93Bz8UQ6SzdXmu4CWwOqWiFkB3aVBtSIVlD5uclikySxw5u17t9XAIVNC8Eu29BSq8zwtbcDJgjImxpp21xZDdCIke2VfnBoGMCLBxIv17RRZFLBnMCUTUt1EiGq2c74nuBg2+b5E5wxspoThTDm2NjGN9j6j+HB39pe/Z2If7ag8PLViEQTcOrfxmmUe02FRO+kE0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.14/Betrio-2.4.14-store.tar.gz","created":"2026-09-06T10:35:07.424963Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-06T10:35:07.483206Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"P48SMxkWcOx4cMRdZ3TRZeJO8KCvV34uDSCXNTAOx5LTcdodY68TqoEgYXoZRxw9FX9bDr6Qdg2uy0pEptVBLZH7gWNkQ9hhPbqLDVAm2x2kEQ6B1Bb8PDNgzWd7quJLBUrk6WkQEMR0bqr7/vu7tHAw0fWk/y50FS/PEOxYY21QK7uwOWKjov7QSMKaqP4EstPANMuEUh4MBPW3D+h6D+hrccqtWef2OFalnbY1Gjg2b614UkHN1vvskATTGAMIHrSsRm3GpeyOR7jBrw6j+moix+IDOMGpBnmY4QYuH56k5/hghl7w8eKcTKvP7svaDojagC3R2+B5LKXcU+dPb6plzyabCByrFNnl70ZjNjwYhCmwRqDTbGpUjAvrc0qW/s17c7+b7kStfcs1d0c+9v9D/krys3hDaIsQPy9oNX2D/3Ac0hZNKaZRiHi8g27Oa0Zz4wuqf+tO51bgeSOpe6XmMLJk0s3QDXs07LZf13vuU6llr1WKfz7A+sCWDuJoJvCtpu9gdIFyA7greSGMMztXdDNkBhJ2rnntFc2f6dfgXLHhN9wCY/1+p2AGR6MrOMj2+XP0wtE7oOk9J4dYo/sgc93V0EMQX0e+NteTsdUONC2Oq+K2QQ2SVrOe7DWN8jskdBFFBrJJUNBIb5q8LSrB/klLp0Bz0QGcDwTKlH8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.4.10/Betrio-2.4.10-store.tar.gz","created":"2026-09-05T04:54:18.574832Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-05T04:54:18.652823Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"PJe3On4xQFPIZDrYoc7kj/Pf4bJ5Bi6ZBpLxFb4W49C9es6OVxQGNm01xV+JkeDAXRqB7RCxpiZSu6vhVHc3rwU6tbc1lsC7qO1zECI5+3S0wJ4RRQqevgAQqFE8e8JdT7ETdnNoyNlwkj3GgY9/rHvNXZFHf8qrHEZ2NU8R3qbNBooTTZd6zMSHRNAcenFFaMH5aPH/e0IK7iVI8EO1fc8pzD8XOLrP/YnnhPTNwAXrBtUcH5IoADE4huy3PQ9ttILhqFkUWp6bmUpRWwdOAtozBa+h4qOcCQMGmJScN4D1xZc0EMMx4x/RkKwBejN1ckNidq8yXbVMmH0eWzEG1zwK2fMR3zbhVVXcsm6zSBAXR9kGk/yJonc5j+gpapCC9gsGB5fw1Z66qhJ+FtA+D3HyDfnlcdJEfVWGykDp+tzqGyWLQ24sJFT0Cy2OfvG4Fjt8CbgVMgTDqqF9gjcBtGfQknBTI7aI1LF5VWDF2IQKXMIpJ5HRyOo9O3rXUxTTpuvch/4TPMB+dzSTSIl6ipPZ9DdYFjWTQeh5EFkRvMbOo6Y62xR9V5Tall/PNWEGga1mClXZ+1v0FHMwmG+gE7YkIv2QLhjZm/9RUGuMRK5Vr52wzO6wnOmIexZFj/lNjYS3WrI+H5mVTtZvLefpSmEnboUVq3hUVjoK5X3h/5Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.15.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.15.20/reinhardterp-2.15.20.tar.gz","created":"2026-10-18T14:14:18.009380Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T14:14:18.074868Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"eLzu9vmIhhTkpX//1gDxA38An282ROuQvFJRue1Ki7uevH57AbSMyHYxQ+CAKTOiIkniTFHKkCfqJOPRuQyiy/gKLT3DSmFpVgb3CZ6dPhNPpZMiRaPIGrDOjcDuE9XZqEdjyGqlMJFsX3QgCdFHG7+nMSbHAfIU9dXd4s1xrfmvVrvt6N4ZiL/XQdb92pbrBqdX0vvofzsIM+/UFRCDfi8xhS/aD1419Kb6m//Dc8+ytibXDEca3Qi74K/kGVZbmR5F7W3pqUCjBqPjUmVbXqhYgLexWgZex6e3KrnckebyboBrgQrK4jmRnXuECSKEdDNvVBzGzYETOw8bt0/cEsXdVpJVlym3Hos8P2qig2mDRhDmTCw8Umtt1rxsYYN7MVEzX/D03N5mvYxyTvqR2gftt7RIHgarKyKosB28ibrbh1IdkWa9suNxleZTlKFAFS44V9NQqVrJq+28jsqNz45l/lulTgarrs3urteawAT6J6cLJXDNiffdiYCAEtCrmJniSag+R3+bUhcpoG/X9IDK1iHLUCqu2iGQW9Qi7ih4Z1+B5DwrMNAKZ9VjcsfuUPKZw5L7cr0zTwkhVGG0t9XKvzWeI5sfHkaXNooD+jAOYwvLJjKcf00iV5sl5+vdz/ff1YKk7e19NJADJFLQ0ck5w6V8V0udcmg1bDgRbFs=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.14.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.14.21/reinhardterp-2.14.21.tar.gz","created":"2026-10-17T13:21:33.841903Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T13:21:34.604174Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"P2xDiZf7IaBSnmZKZ/VYfPdsuwh0B8VcKF/We46pw6nWbPumVSPS5Lrlsa0s9xWHgUrroX4cKy8tIpLneM/IAylDmSgZfKFD/2IM4cNibVN0HOs5nzZ9iD+c4T7fS86IXxOudZpyg40dNYPyIpMsKlEUiT2S+V2/Q8kbEYRvWfWqOn1eRhhP5TzcE6lzkhUefj7Oav2Lc3r0MheZ7wMWlFptheUdG+SSNakI7TkcVFComH/EVO6n05QFmxRF9CP4FOHtSjnwQ2O+d57yQSqGMaoPLjH0lPyO+URGB44QsUUNP57fMvzH8Z0BBxUbAo+a6LEU1Kc6HrFtf5o/A9FEiVxfn9kp0ttoateFSf+o5QodTrJi6zeP68HL9Nc+sa0fMeTl39FhBk5JempSmqG5Dl2djtR/NtGvW2bfZwIXZd7Dz13G7SoRmdzAqdqPaAffqTtpkpX6lmeuWAdHcbfzi01siVCbCgSshg9UmMpjd+K5bY3eFo47bJyIGsX93np/Uoipadxhg9TxenFi6gC1VAqBCu3xoVj2LW38Q6Ysl+QedCcyjpGHISRlzBG6Yd1/Hzc19bWae87EWcjiZTr6oHvC8vm0HD9KRhffqtgsKt3vNPILsRhE+tejPh0nogMArfk8KCJ8H5rf48TZw3mCjIuVQcZ77kDaLkQUnhoIZJA=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.14.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.14.20/reinhardterp-2.14.20.tar.gz","created":"2026-10-17T13:03:44.241848Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T13:03:44.297040Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"YlmzKuk8JhOz8zUH01o7bh/Bh7Ilb/9g/dzQ1prdDvlj0ArKlrwwuSbisRN4uX9WJtJOSXrd+ON1z0hG4L5rop6avoyzLwR2hpJpPOndZZDe1D5F3WauvOm2gSl2bLYjk9BGsnalQtu7DIIpmhhgCE8Fqc/ywM7oO3yzqtPsckGlusZRLu5Mq0Dnji9djc3SsiBSOrc8J7lWASQ2oEfev2q9tMO0u4Jmt19HyNVt9vm89tmPYVjrYdLrQh6AcF0GqFJI9ODzQPS2DeY0Vb/NqvZrk/DYZ9E+ld8pfioL1ffpsiIZgR3X2+IMzuoYfi4qymtNse7DKFvSdjzSmCiyrmxOAe9oRyaKVUMSf5JJuLlFd9OBQVN9sVfLx+VcX0/2hyGZ3lOtcbZZ4nlKP7QBmzTRPDeh9Dgb29YPQZfuF2HfBc4L7J25zDSH7qmOQPDz/MIRvESsA2QABmOkwuj6qh1VefhvXZu97bEl25wHuZ7C9eweIcnbMbKw5a+napeL5OkM+cLFCckjlUieMpTGzVVpqFWWuqf7sBtc+uQS6+COaoa+UDLOFDky9/Md/fIR5tE7xoa4GvITUIhhroVoCuI2Iga6vlz6bmQouNq6myA02rdMwhaVuVXtHBHT2HvO+ewS8PBxsNv9gZYbUxUG+XVSHfCbEYFjY+WoaWxJe8Y=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.10.22","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.10.22/reinhardterp-2.10.22.tar.gz","created":"2026-10-07T13:22:46.722944Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T13:22:46.779481Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"JOhiabXHWV5WHJcBnUb37esT4kkQkJNngQ9k2UhcLzb6k3Dic5efNuUnNw9sa3k6T7X4LKlY5apmhCOnMVGuk0L13QjOd1MYxSheK7ZFaRE0VeX3nWEPydAUKSMyRks2llloUNXPp1nFm+sNXiDexlqCbBXEuiXusHAZHTBoKY95WfMp0Emp9d6hxiVKi04j+n8aKHlUL7f+Ht5zpgdVEVntbHsyNTWeaAOV9Zp+dOX+jJsvRCA8yvYG00k6bZuUTZS4T5hwDaXa+eakC08T9EN9ZzHz2NeZFsePSPuoyBmLCiRqdFuJ85Y4MOE4S6KKloTKkF8Ns/dsnAXZe/TJC6nRDxAfCZIK3ltTLpH1mE8ZqsboZkOSJce5L42XItLj/UET/1B/V5y1hZVO4n2YX0qf1zV69vTpQSIgi7aYioLzs1pGY1AvpoR8uIECt5UwxJ8/HFzh6dtrAtbApWrqZMu5w5BD4P9ngfl0f/czdwo4Hba/WQsvB24gJ2UAZAYfNHVVjJ+1KsS1TkIOIdb50iZ9FIicZ0CAhki9XmRnmoz27PRdYpE/towROqVJ4Ano/ETsimi5JilFUKJmWH98S+XCvftgpEbagA2W+kR4Tl06dWvHRoEIm/RwbjndXmweh9avAKxdIRfWxDRoFOQmpxYBIRf4AwRRXOvti+LwG6A=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.10.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v2.10.18/reinhardterp-2.10.18.tar.gz","created":"2026-10-04T11:56:03.393981Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T11:56:03.449774Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"OqdGeKYreA4Xhyx6MbrOExcWyECfZ7UKHe2hKgR3mowdnO9iaNBmtp1D1f5pY5SCi70BJQz3PUzwMBTB             UN5IO8IEGyvamOuUrBCunLULDcGU5cI6dmqSypY2UWbEzYOaRNHm3tas3IG4DLAjwxJ13rrkgJYqp3lf             Y/e4IoEiyd3UCvhhxnnbSa6TrVRvm3RQqfFkvgVCPaTFPCDulGpWcsI3BchlyWkijng5rWKvonVoeljz             kIA27Vo1P75iH4NaaXOUC4FEmo5CcrVnT5GT+0GF93aekgbWrh8Em6oejodMqRTbwbH7bb9XJQ5CqEBR             gs0M3V/QGx29RINf2ofi5NH2cBsXfxeMGack65zF5+UpLHqbYNu1ZbNpxzBoTbk0oHoShHLCDJkSbl4h             9KsE1dsXpCAWs3UvkptABOKCF7vfYBFoxOkyuAtscwxSGnf+CMwQ1YWMj9st7swBquhTCaGdUf8W8BZH             5Lf/nrGOaX6h/pG6NERP2X2jLg8ymBzPHKDnvAmscFyXniOr/CPPVU/cg+Pwz5ZS/UCCBv6yWdjCPTfU             AJ69s+QEdOv/WaR0eEvPU71pO3Am+Qkv2Gk3b5XljSKvrrbviMAIV7sSdoXuxw8gfxb4HjF4GkyUyAuO             AhiuDMWEpwIpOHydv6U/SrRgue0Dz0lz2NIQ2w5Fy4U=","translations":{"en":{"changelog":""},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.70","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v1.9.70/Betrio-1.9.70-store.tar.gz","created":"2026-08-29T10:43:43.584216Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T10:43:43.651465Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"KbisWwKqYbSSY4OyWxYargMJQZ2NowFmbcAEuW2P9VsdDW01Vnb1ucARmpXJT47HTY5Mx49d5GeBVcE7nyYSzqNbjrA3BKoHyC7Lj1A2cCx1WwuVxzf9wBjOXmbj4MnqkdOFD0mNIwVIwq6iC8qsOwnERiZbbVZfi1GFDszWF6m0NRMkRAXXtXRkVMrQfh3LCqzJHyMKX8gwn026A8TJgBO86ajKtfL+Dt6SBXpK2OJr9BPsYbR7Y0tAHh6/Ivb4ht3/Zla3Evq/xwmYbW/fo1RoYHtd69vdaT8LjPAhavk5M5217v9YzNF6VFmFyk/8pE4MPwo2tGxBhq3041cZD6myfu4yrcqKUjnxN2thHYq69OkGf7dC7yADgeRZYk44rHUS/XoDignndv/IdMHEBmixZEKX0EPTudBIL91LWr18p1cE4h606EJy+vcDXOFQ2zD8R4nFI2ObC12UAGAHeUUqzPi8UxljTFNJwV2NvV/gBhwWXGDpgtiIbQte3tDoJWzVejqiBEpTH0AjLfyoSkDcLRIzNxHBkWXjjvmP2vu3qEMuawqXqMN13GFm/F70lUyysGL7E9qUz6+SFUk8VAyRX8FdKn4hXew4OoMV4MzApDK9WWuIhIkMW/302VBC2QLUE2AWHt12OjTOV7NpCsITVMqS3xbZtZ+Ev3gyT6E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.65","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SchreinereiReinhardt/NextERP/releases/download/v1.9.65/Betrio-1.9.65-store.tar.gz","created":"2026-08-29T05:18:50.512367Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T05:18:50.597751Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"PrYT9g1QAaZT7YzP8kF/Lp2DAi5IWiu+jDcyErtva6EXhaACDmiLoX1WOmmBKdo1+jIUYOtst2u5PA4eDSUGv1JJvKL3fHixFgQ/lGqS5Psjwr16mOiJIw9XQML9gz6COXuatPKekq0S2O9k8Tyv2WHGtkJkJClXPvsCTjfyKgri7VGlM6ECio3vRi9OGkG0JI2GQQNq7DN2nGHXCHwMXX1uFAjZxI5lVEmCEQOG4C8lUUHFWU6di1TfYtpfbOvUfx8xUkG5SZsmJVRQ+oX2HHDec0lrJcBYUop1bVxT/TBudy+OQe2ivcudEZ1qLqERDNAc8BPSJ5YNIyJ/CmM0Vmulb35ITXLLGGpCx8MNW+mB3LtZ/YXeNdZiC8T/JND5sf89HX7OuaO7Oa0tr1+O3kmEBtym3oBh8TESSmsYekMjps/6pw13tnPIp5yulhsviJK7gh2/fc83fHGGXDxK55AX6suP2ZwIfVWQQnfs48OD3n8QRbAw7wj0VG4EMZHl6UL7r7K8QooitHjMLbxM+dOWXmJvg7z6RRjp77oViH9aBL9+evmecWFIi3xPsRDyddw9Ta/1uwZL0yxm6GHwcNPVrDgwtwwpvxpWpCDRUPxfz+0GtnbqhCaDZi+W5vkRV1QdRqGDIBgQTnt2mE9gjvhhPuobarUd2CCW64wDU0Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWFwcC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWRhc2hib2FyZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWt1bmRlbmFrdGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLXByb2pla3Rha3RlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLXZlcmthdWYucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLXplaXRlcmZhc3N1bmcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWxhZ2VyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWJlbGVnZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaHJlaW5lcmVpUmVpbmhhcmR0L05leHRFUlAvbWFpbi9zY3JlZW5zaG90cy9zdG9yZS0yOTEwLWNybS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Betrio","summary":"ERP & Projektmanagement für Handwerksunternehmen in Nextcloud","description":"Betrio ist eine ERP- und Projektmanagement-Lösung speziell für Handwerksunternehmen direkt in Nextcloud.\n\nDie App verbindet kaufmännische und operative Abläufe in einer zentralen Anwendung – vom Kunden und Projekt über Angebote, Aufträge und Rechnungen bis zu Rapporten, Zeiterfassung, Material, Dokumenten und mobilen Baustellenprozessen.\n\nFunktionen:\n\n- Kundenverwaltung und CRM mit strukturierten Privat-, Firmen- und öffentlichen Kunden\n- Erweiterte Kundensuche sowie Löschen und Anonymisieren von Kundenstammdaten\n- CSV-Kundenimport mit automatischer Erkennung, manueller Feldzuordnung, Vorschau und Dublettenprüfung (Betrio Pro)\n- Projektverwaltung und digitale Projektakten\n- Angebote und Aufträge\n- Rechnungen\n- Abschlags- und Schlussrechnungen\n- Gutschriften und Stornierungen\n- Zahlungsstatus und Zahlungseingänge\n- offene und überfällige Forderungen\n- PDF-Rechnungen\n- XRechnung\n- ZUGFeRD / Factur-X im EN16931-Profil (Betrio Pro)\n- Rechnungsprotokoll und Festschreibung von Rechnungen\n- Verknüpfung Angebot → Auftrag → Rechnung\n- Rapporte mit Unterschrift und PDF\n- Zeiterfassung und Zeitauswertung\n- digitale Stempeluhr mit Pausen und manuellen Korrekturen\n- individuelle Arbeitszeitprofile und Arbeitszeitkonto\n- Urlaub, Krankheit, Schulung und weitere Abwesenheiten\n- Personalplanung und Teamkalender\n- Material- und Lagerverwaltung\n- DATANORM-Import mit Vorschau und Lieferantenzuordnung\n- Inventur-Assistent und Inventurliste als PDF\n- Lieferantenfilter und -sortierung im Materialstamm\n- PDF-Auswertungen für Arbeitszeit, Abrechnung, Finanzen, Steuern und Projekt-Nachkalkulation\n- Dokumente, Fotos und Projektdateien\n- Smart Document Inbox für eingehende Belege\n- Termine und Projekt-Timeline\n- Finanzübersichten und offene Posten\n- Kassenbuch und Steuerübersichten\n- DATEV-EXTF-Export\n- mobile Smartphone-Oberfläche\n- Kamera- und Barcode-Funktionen\n- Integration in Nextcloud Files\n- deutsche und englische Benutzeroberfläche\n\nAnwesenheitszeit, Projektzeit und Planzeit werden bewusst getrennt geführt. Das Arbeitszeitkonto berücksichtigt individuelle Sollzeiten je Wochentag, genehmigte Abwesenheiten sowie einen frei definierbaren Startstichtag und Startsaldo.\n\nNach einem Update informiert Betrio jeden Benutzer einmalig über wichtige Neuerungen. Die Versionshinweise bleiben anschließend unter Hilfe → Was ist neu? erreichbar.\n\nZusätzlich steht mit „Betrio Mobile“ eine separate Android-App zur Verfügung.\n\nBetrio läuft direkt innerhalb der eigenen Nextcloud-Installation. Kunden-, Projekt- und Unternehmensdaten müssen für den Betrieb von Betrio nicht in eine separate ERP-Cloud ausgelagert werden.\n\nBetrio wird als Community- und Pro-Modell angeboten. Die Community-Version bleibt kostenlos nutzbar. Eine gültige Betrio-Pro-Lizenz schaltet zusätzliche professionelle Funktionen frei. Die Pro-Lizenz kann direkt in Betrio aktiviert und verwaltet werden. Ein Wechsel der Edition oder das Ende einer Pro-Lizenz löscht keine vorhandenen Kunden, Projekte oder Belege.\n\nDie kaufmännischen Funktionen begleiten den Ablauf vom Angebot über Auftrag und Rechnung bis zum Zahlungseingang. Festgeschriebene Rechnungen und relevante Vorgänge werden über das Rechnungsprotokoll nachvollziehbar dokumentiert.\n\nFür den Datenaustausch mit der Buchhaltung steht ein DATEV-EXTF-Export zur Verfügung.\n\nXRechnung ist integriert und wird weiterhin entwickelt und validiert.\n\nBetrio ersetzt keine steuerliche oder rechtliche Beratung. Buchhaltungs- und Exportfunktionen sollten vor dem produktiven Einsatz mit den Anforderungen des eigenen Betriebs und gegebenenfalls mit dem Steuerbüro abgestimmt werden."},"en":{"name":"Betrio","summary":"ERP & project management for trades and craft businesses in Nextcloud","description":"Betrio is an ERP and project management solution designed specifically for trades and craft businesses and integrated directly into Nextcloud.\n\nThe app combines commercial and operational workflows in one central application – from customers and projects to quotations, orders and invoices, as well as work reports, time tracking, materials, documents and mobile on-site processes.\n\nFeatures:\n\n- Customer management and CRM with structured private, business and public-sector customers\n- Extended customer search plus deletion and anonymization of customer master data\n- CSV customer import with automatic detection, manual field mapping, preview and duplicate checks (Betrio Pro)\n- Project management and digital project files\n- Quotations and orders\n- Invoices\n- Progress and final invoices\n- Credit notes and cancellations\n- Payment status and incoming payments\n- Outstanding and overdue receivables\n- PDF invoices\n- XRechnung\n- ZUGFeRD / Factur-X using the EN16931 profile (Betrio Pro)\n- Invoice audit trail and invoice finalization\n- Quotation → order → invoice workflow\n- Work reports with signature and PDF\n- Time tracking and evaluation\n- Material and inventory management\n- DATANORM import with preview and supplier assignment\n- Inventory assistant and inventory list as PDF\n- Supplier filtering and sorting in the material master data\n- PDF evaluations for working time, billing, finance, taxes and project post-calculation\n- Documents, photos and project files\n- Smart Document Inbox for incoming documents\n- Digital attendance clock with breaks and manual corrections\n- Individual work schedules and working-time account\n- Vacation, sickness, training and other absences\n- Workforce planning and team calendar\n- Appointments and project timeline\n- Financial overviews and open items\n- Cash book and tax overviews\n- DATEV EXTF export\n- Mobile smartphone interface\n- Camera and barcode functions\n- Integration with Nextcloud Files\n- German and English user interface\n\nAttendance time, project time and planned time are deliberately kept separate. The working-time account supports individual target hours per weekday, approved absences, a configurable start date and an opening balance.\n\nAfter an update, Betrio shows each user a one-time overview of important changes. Release information remains available under Help → What's new?.\n\nA separate Android app, “Betrio Mobile”, is also available.\n\nBetrio runs directly within your own Nextcloud installation. Customer, project and business data therefore do not need to be moved to a separate ERP cloud to operate Betrio.\n\nBetrio is offered in Community and Pro editions. The Community edition remains free to use. A valid Betrio Pro licence unlocks additional professional features. The Pro licence can be activated and managed directly in Betrio. Changing editions or ending a Pro licence does not delete existing customers, projects or documents.\n\nThe commercial functions support the workflow from quotation and order through invoicing to payment receipt. Finalized invoices and relevant actions are documented through the invoice audit trail.\n\nA DATEV EXTF export is available for exchanging accounting data.\n\nXRechnung is integrated and continues to be developed and validated.\n\nBetrio does not replace tax or legal advice. Accounting and export functions should be checked against the requirements of your business and, where appropriate, coordinated with your tax adviser before productive use."}},"isFeatured":false,"authors":[{"name":"André Reinhardt","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhPKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE3MjEyMDM4WhcNMzYxMTIyMjEyMDM4WjAXMRUwEwYD\nVQQDDAxyZWluaGFyZHRlcnAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCzybxv/EG518tS8SvjxFYfiWzUEvOozyLhr5rGf641aAtCrg++wMqESkEl2QX0\nhgTVeJUdyQ3xLZsM/q21v6wHF50HjAO+fkNMw/Q8LHBE10PcIMPOkDk4++hbAumG\nnKPH3wlD36JopPQJq7VFq7HJM0M7yneGrLg6fOttLL+jENzG04xlCVS0vJfjqH8M\nNd7dhLZ+JpUGM1rO8Dyl13phQ+keROyB0Jc1eR5jz9pN3JfelDe55zYJ80Kx/5S+\ng9dFT8BpTJcFeziWnM67wUrzQLlYOOkqfre7Jwoc5BtKUo+g1KG5uE3SNr3l2Vr9\nGbslu6U6Sb9su/nFtXf5nkCWUZ2oznSkz53cjBvbGkB8H3aDXKr8N/ue0OhkcgT+\nL694avV304jX/D/5rnr07zypO38l0AKz4y7u1WF6mXTCkjQiPHNtLRogRnzb7f7J\nyCOczVD+a8D/yRtsg5hftzGifXY6P4Bu9zgx2FNsPi3wMrVOQwM0U88VHgp1aoso\n8uw4nkNcDgTTPKKZwzNkladFAO34nSRVqKDUJUlNpp+3vARWdmrfWxGdbRO7EtOp\nHndHDw73inyvJ3K+Ysnho6WzU/5BdUQxzDfCi2HyEqhW/msU3GM7g542UuUnYyJC\n6CEAHKBwXeK2joez00YNWCBYCg3yIrJIatNCSynL24hZLQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBwLhaf7ZNJ/6xn7cwqx3iUDNegqC0jU6aJr8U7WgnxEZ/z/lyL\nfJze3RvV7/F7U5mf8eIbc3/xAW0mv9WayUsUJunHYQ6N1303mwGxBErHEhUcCQwZ\nCwRlGx9d7foHf2U/ygdnHulw90s/zShrQdHQdib/pPNbTXpkOISxngPqbFhpl2vm\nhcMHLDjGk/6UfXQu1Z14Pr8Al0LqLZF7lfN5nLJnis6SkD5wpG9gbYgFRdx6f81j\ncmsjGnSM6CvPfciVBg3DxGPcMchoGg4N6wPmRG8XMIoEXYH36nRDn4Ko3zzFGGUQ\nthLyrYAVcRkUZDjBVeBZ4sr52jfTtCy58fuh\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sketch_picker","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/sketch_picker","issueTracker":"https://github.com/nextcloud/sketch_picker/issues","website":"https://github.com/nextcloud/sketch_picker","created":"2023-07-05T09:38:51.474957Z","lastModified":"2026-07-21T09:25:02.216429Z","releases":[{"version":"2.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/sketch_picker/releases/download/v2.5.0/sketch_picker-v2.5.0.tar.gz","created":"2026-07-21T09:25:02.195591Z","licenses":["agpl"],"lastModified":"2026-07-21T09:25:02.252225Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"gxVqHddpXYfKlBXmsHaoQ4ZsRAOQSzqICUpdo2RaqS7wreXZBoUNzsWKQtMR0CKpDQUr1758XAEceNjYzIqyx9A6/JzJOWcfnA3BAw6X2IA+WgV1ftD22PdYRi82hiT4ZkW37z81WOF1/IcDX9yHDRT0Dl6IeudqXCFhTQtlO5RcJii74ST4EQPMlebJ6QS2EypmHobxFScxyLS7adQTz6KNnnDCYEu2JjgA40aeAVx8dAl2wnV2LcFh3n6hcVCKN78i7TK/ksoqyv/1SHONrVKBWoc2CqRxJU3/n/UYsVZKHCdyn0XLAKrA27xlXg4bELwtuhF6A+dvEgbHtLqYQ9DTZ2H6eK3jFulsAjJv3Qzlsb+wC/voJBpmv9mSK7Rwr3H+ineV71eR/KY9n+rwlf+Hn+uCQc0dmURlxnJC+D7sTxqFW5o0sEuv2/4VPTgRJYGF3/QsVrQA1B6banqMTplHlBU4w6cYBk8b8srgyRSzgkCCV3PQuun+nyEG+gyIzQqRb486MF/iDV3EfdORHtDvPdpCcybADSBP+emsegLbmT5w/uwVkZbxH9PtaLCXGf5/it8P9YgTYgnqf7j+JptoHGNOYzLaSM6IvOefvi9CXzueWW4zxtAI00YLEtQ9rHDe9TiOYAStEcG3f4aMZtFCzYdbEO0yRjZA/KlGDM4=","translations":{"en":{"changelog":"### Changed\n\n- Support Nextcloud 35 @julien-nc\n- Update dependencies, run code style fix and change PHP version in phpunit action @julien-nc [#69](https://github.com/nextcloud/sketch_picker/pull/69)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9za2V0Y2hfcGlja2VyL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9za2V0Y2hfcGlja2VyL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9za2V0Y2hfcGlja2VyL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Sketch picker","summary":"Quickly draw and share sketches","description":"This app adds a smart picker provider to quickly draw sketches and insert them in your current context."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECDCCAvACAhIZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNjI3MDk1NTI3WhcNMzMxMDAyMDk1NTI3WjAYMRYwFAYD\r\nVQQDDA1za2V0Y2hfcGlja2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\r\nAgEAtK/Tif+hMSuZrTfd25mXq7UbBR7YYY0uo9PwvPlYTC0EzANiAvT8iDDTaMw4\r\nNQ5J0tV47HPsUHZQMioNH6FtLqIcsG3CTQ4qSzYDltXekRNcZTzTM4oU+calCYH9\r\nu5xOaxW4mhXLXrnV5mDDsJKLKPI2l/A9tw0DD35SvJXbY+zO3ElSS9VJxL295yL7\r\nc7OoLld/2Bl7uk9ZAqiUbJz3xItkq/nF11HnB3S3dJT0JFJ/R75+o971Wsk1Isfo\r\ndt/KhGCjfoqgcWZd2fuyKcTov9Fj7xpHG/7h+uhyOiV6ZmSp9YgsXWXPeuVe1jwN\r\n6yqVQZOKEH9bP4DEVACw+EqEIC351ERF/dfKdAthWD/6oAtknSlpuo0+kUc+5pgz\r\nLjtESIWx69DCeMosfFGrQGmvizx08lPVOONSEGL18Sly/FvgngRruf4xB5bbaS1P\r\nFzaR9vukToRPqMgJLZQ4FtytLCZbH96v35oYwqE0XkRieqcpLWk4th0ALoMuhBUn\r\n4JOfk4+XleFWf6VPFy+AqRNOOc86PmfKKxByOBJT72V9EndfLrvLApxMo8Vry6pX\r\nB/nMm+74JhPImPlGthYmZ3h9iMHYcErxmLmDBSnJXlywj+/Sh9bB2pR+dUWwruoL\r\nU9bMy4+KY79PydGNToTHvLI9QAfPBSrFLpouQ6fw8jqDWMECAwEAATANBgkqhkiG\r\n9w0BAQsFAAOCAQEAAwRFPWXDyif9lAm3rQydjxkIeYEjOfwBeSYvi+trzYVJw/2c\r\n949pAXT9HB11UWCZKaHLc5uASyHPxiJA4H0dLGn/4cwFa79ss0MZyOpxLAIQbvmQ\r\nwcymNEeWxdOlDMOSfj5QhmNQWPx5hpSb+HhOzyh+IOTUdRho+fyABastz0nSXaCM\r\nCF6znVs82MzDjvQ6pQLQ9GGUk3wnt+OgSLGReONjCwTNgsga2lUl2NjgM1K5ldcL\r\n4HXRHjkUoVCFPAl04/xfWaZUCoi4hbez2r00ZMT9GeHDgF8fMC/Z/SpRJcyYIPnS\r\nFz/+XufZQuSh9E7Hh2Iu/a7ain9w0VmT+9tF+g==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_replicate","categories":["ai","dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/julien-nc/integration_replicate","issueTracker":"https://github.com/julien-nc/integration_replicate/issues","website":"https://github.com/julien-nc/integration_replicate","created":"2023-02-07T00:02:46.984904Z","lastModified":"2026-08-06T09:12:35.019219Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_replicate/releases/download/v6.0.0/integration_replicate-v6.0.0.tar.gz","created":"2026-08-06T09:12:35.003655Z","licenses":["agpl"],"lastModified":"2026-08-06T09:12:35.050896Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"QCKgyjgNxrS7sVzU3dvsa/e8fdBsx/yKLhpqO0ZCPPy4nLjhpbfj0ejovuukSSztEmBI5LdH5dU0iok2fi3Tx9nUsKxxyKCvPnPcFlXK21zA5cERc+kVYrWo27u+0j1skGQYMJu93gu6zkbr0k/g8eRo52CzIs4aDivxRKRniCRHQAdD+z+8sePui/4+C+7KmoHixQNZQaIZQb8RESiumuatbrtlMV/1KIFDqOqXiEkLHzSb6SYaQz5Ql7vVgHUQK+jemTZaZ+Muk2xZKeH3S0a3BD0senQGk/gXvYHF8EeQ6bSa4K0KqjlwJg4a3p58iLLV+JwZMztD5ycatN1V/ossk4QaE4VRYYE1tyyDOrpDha6mY7dmw0Q0cry92cqTU3OyLO/CMLs5H2GXHXd9Dm6OkuBhITWoDiaf956g72AARr/3hzdnCmGta1wkbi5vQ2APB014pV6olO4kjbYudZ4OG6geYgEvvm6ZPaMRtj2lwIuw27plE1y3Isw3N90XCTbfwBY0bhpx13rTYISRjPVGcz8IvLhJ1TVpypmWqI5nGspiXz27z+9PoY4LnmOuYfkWscGqGGp+cy5+50/PT3RWbPudxCtpvhIzR3KAJ66rDEXBSspFXD7l+BXwgtRqKqzXTRf7BvG754D2Ctb7AvfJXC1F3COwcb5zhwRBKzc=","translations":{"en":{"changelog":"### Breaking changes\n\n- Drop support for nc < 35\n\n### New\n\n- Support nc 35\n\n### Fixed\n- chore: Upgrade to vue3\n- fix: Load getid3 lazily\n- fix: Ship vendor directory\n- Update dependencies\n- fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl9yZXBsaWNhdGUvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl9yZXBsaWNhdGUvcmF3L21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl9yZXBsaWNhdGUvcmF3L21haW4vaW1nL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Replicate integration","summary":"Integration of Replicate stable-diffusion","description":"The Replicate integration app provides a SpeechToText provider, a Text processing provider and an Image generation provider.\n\n⚠️ The smart pickers have been removed from this app\nas they are now included in the [Assistant app](https://apps.nextcloud.com/apps/assistant).\n\n## Ethical AI Rating\n### Speech-to-Text Rating: 🟡\n\nPositive:\n* The software for training and inference of this model is open source\n* The trained model is freely available, and thus can be run on-premises\n\nNegative:\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\n### Text processing Rating\n\nThe rating depends on the model you select to use.\n\n### Image generation Rating\n\nThe rating depends on the model you select to use.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhIBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMjA2MTM1NjA5WhcNMzMwNTE0MTM1NjA5WjAgMR4wHAYD\r\nVQQDDBVpbnRlZ3JhdGlvbl9yZXBsaWNhdGUwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCqmjhsx2VVJCboPOG5c162dvRjaoP7hWujZdeieGkeuwCDO/eY\r\nsMa0aapKyhTHt4lJiRZWt+BqHHs4e6tfzr7gmhKcs+2AZFA8uFyM/sV7ZThxZEaT\r\n0WNYmg9aGnj3yZosO3NXE1Dy/+UTyCN2rYgLq8q/b31C/6qTnerSEy8UGBubZRSL\r\nfav2k3bpeSjlOpN8Egbkrh3uyKFzLQ0t2XCzmS7GTYJmRcvzskTn8MPoRpQlEGIK\r\nwtN0Jw5dIjUQv2X/hE15xnPgZxsGwkKusLozBBY7ibIwEo0Y50c4MZ/X66pFkZKA\r\nJ5yz/MCMzLoNZ/GjcLSGrGRbHDKkRDqXfbI4a69l2Pvje3U5WhaopqVKQHjo2bPp\r\np5gaHEK3E+Pucqkx+t+nwZR/s9xv3UEANjwHy9z/ltOsTXgAweukxOotKcc9lRPL\r\nHmwOst1Yc+VWt5hGXW0dhIlxAk7JBwTVXitwFXyGxiQihCkPAMw8F1DZzHyVkLHV\r\n8AT79F27B6d+POKj2p/AJROFBsseVduCbHztZ44adcldqCwg1slT+uaJFsrcRpgl\r\nfI8ElbnA25hQJ/KES7C6RvPzYHJXm1RQF5w7oT4ry3WaDiIM36PREqNA9XJSFxyF\r\nqma5UeR/1ykoHkTyhHlEUYicpDEX/bYVIeDmjEBcpTp6Wi/z5XhNWT5Q4QIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQBgEXt89Icrnt4wZNUgtZrikMlrnNS8eUDKrXdC\r\nThawuemLKoW+T8OdKyrgcGneYMjafkrAJVHBby0baOxJ57Mwl8P3sWlpLx3iaGjY\r\n4vtMEZKdWWVTZfjCDXR6rWd8eZlffv2PO91eEi8lB2qkL0C6+P5JwwldP6ezudcZ\r\npBJ2DEXhhVyK8FACt6ehf+rjEZs7U0hNjNBpgDPYEulQubXgGIR+G3j1CA0kguMe\r\npQzvrC1XBiXrGbIIEfy2tznAUslFJSsSxeTvp/dEDonCkjXF8iBR9iB0EYa+mJ6l\r\nk7ZtRiMQUTeJC+NrJKg7SqO7gFDPwWJ5s5sAwLlYRt4z5sDf\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"localsend_share","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rurutheGeek/nextcloud-localsend/issues","website":"https://github.com/rurutheGeek/nextcloud-localsend","created":"2026-09-29T23:41:01.983364Z","lastModified":"2026-09-30T00:01:25.033465Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/rurutheGeek/nextcloud-localsend/releases/download/v1.0.3/localsend_share.tar.gz","created":"2026-09-30T00:01:25.023814Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T00:01:25.071852Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=36","signature":"P5U9/c7KyR55aDFVj7CmvTAMhcUFxJedA1/PfZdcaxOMOBQbUzbSy5MwTS5qqqWSzru3VXMFJcASauHPLQMfWZExR2A/aRIEwg4MjnV+p2ljUeiCtDX6byHYAV6GrngAXkqyBFZrzX22owAzTJ1fnyZatqp3jZoNUQe7gBlkZPJoT3qg0KZd31LObP3CtlRyYRKfYOSCTeiQqRtM3fXL6DcgX068V4/B6tS0ZG2uM/imqaL+fFGDcgS1r6chBp7IWqxeOvh8c/o9R8o7OnA3G6+WRn3fPzm9qA3Pw1mxv1LnJZbZVWogZyc3kSGnhXnzoEk774b3RdSglVNKd3Gd1BSiI0h9NWFMdDgg73zvWxLyaPumXRkPIY8/doWrRU3jaiNlEet9+svwGOnjAOcTXQ8NEHZSpum2l9j5XtJzKEY2qGuJkEwBM7pq2nDWYF6W0/UZ7wsf47mosOTsBwlGp31R3g1S8DDXJGLndRMQlFw88QBE9PRGYILNqbdY9S5sJck3C5Sy7mMKQPI+GPjrSm0OqbvQONog1gyQsCyj+9FZnpwgTe80PeBSDemtWkU3SngaqGw3dZt5Iuo+Nw2xHkCdhYBFiBvT1EbIpA2nVIMySCxVX9NpuHC+KECkLABBRWgF77RCu6Y6jQEDL1Em1CVWghWsVjfpFoUN8W9UkP0=","translations":{"en":{"changelog":"### Fixed\n\n- Ship `l10n/ja.js` so the Files action and its dialog are shown in Japanese;\n  until now only the server-side messages were translated.\n- The release archive no longer contains an empty `build/` directory."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"LocalSend Share","summary":"Send files from the Files app to LocalSend devices on the LAN","description":"Adds a **Send via LocalSend** action to the file menu in the Files app.\n\nThe action asks a small relay service for the LocalSend devices on the LAN,\nshows a device picker and sends the selected file to the chosen device. On the\nreceiving device, open the LocalSend app and accept the transfer.\n\nThe relay URL and its shared token are configured by an administrator under\n*Administration settings → LocalSend Share*. The relay itself is a small\nstandard-library Python service and ships in the `server/` directory of this\napp's repository; a `compose.yaml` is included so it can be started with\nDocker. The relay must run on the same LAN as the receiving devices (UDP\nmulticast and broadcast discovery) and therefore usually uses host networking.\n\nRequirements:\n- Nextcloud 33 or newer\n- A LocalSend relay reachable from the Nextcloud server (see `server/`)\n\nPrivacy: when a user triggers the action, the selected file is sent to the\nrelay and from there to the device the user picked. No other data is\ntransmitted."},"ja":{"name":"LocalSendで送る","summary":"FilesアプリからLAN上のLocalSend端末へファイルを送る","description":"Filesアプリのファイルメニューに **LocalSendで送る** を追加します。\n\nアクションは中継APIへLAN上のLocalSend端末を問い合わせ、端末を選ぶ画面を出し、\n選んだ端末へファイルを送ります。送り先の端末ではLocalSendアプリを開いて受信を\n確認してください。\n\n中継APIのURLとトークンは管理者が *管理設定 → LocalSend Share* で設定します。\n中継APIは標準ライブラリだけで動く小さなPythonサービスで、このアプリの\nリポジトリの `server/` に `compose.yaml` 付きで入っています。中継APIは\n送り先と同じLANで動かす必要があり（UDPのマルチキャスト・ブロードキャスト探索）、\n通常はhostネットワークを使います。\n\n必要なもの:\n- Nextcloud 33 以降\n- Nextcloudサーバーから到達できるLocalSend中継API（`server/` を参照）\n\nプライバシー: 利用者がアクションを実行すると、選んだファイルが中継APIへ送られ、\nそこから利用者が選んだ端末へ送られます。それ以外のデータは送信しません。"}},"isFeatured":false,"authors":[{"name":"rurutheGeek","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhQ0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI5MjA1MTUzWhcNMzcwMTA0MjA1MTUzWjAaMRgwFgYD\nVQQDDA9sb2NhbHNlbmRfc2hhcmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC9kO1Z5oC3dynRKenwXAsBrqAFwHfd4bJdcXG56ogV046a65avg+1UlAho\nKIklP8yTEyxf0JPQyV8HsdURCtRhm+wIxXRAUfeZfWgbmRlt3eADNg3EqCR72y2u\nmSBIWx+yhUGcj87KQJfZQAgHwnsi3XLhgNCijH9x+VmBaH7b/S8OYyb+PiKt1MDI\nKwVsPqwprEGazyvUZkuTwWVdcz5GezgvbMKrEWkQZtoe1jC5drtcfTK/pc6yFOq2\nV8JPjrz5y1/XQYOlJqezSdHtOotNrH6L801XWTiYtWGNlfCLwsa0UdzGLLAwUgsm\nt/PatzpYhQ0DrrH3hcEzzTAMhH3q5ClIXs39eqZEoKtPqIe2w6SPFhmWk5VYPOSp\nixTQygiv0jhKpXhoJdrlX9lVZsC5U+zOH7p23dWkOAItFBxH3nZ1gTb+t84X7/ki\nxPfxAP6SuUh58S64cg6/+ESChvoDVRLjVfXMlk2QwyOzR+XrkumqJ9t5VRqNJ69x\nMDHrfEAQyIWJa0r5soYQ2R6d0/aNLeVYg2fZ3YYRkjJ2HIDU+eDH6su6Po0oCc9w\nnr0aW+BvCAyqFo76Ck4bEeToRceDHXJsFYfDx6pV8B/HQGc7UH7gNpZ+jn+iEr5c\nl9CB9GD7A9z2y84nOGbRoaCaWIxfENCdZA8uw7MzUXREvEW5sQIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQARh3clQijXczosIh3b1hpepIiQdsBZV+V1kfIISoGsE8qp\nSGxHNCGn4ELGnoHuPrbX28rmyg1lo+bSYa82fZizkZ17X5wJXXo1qRzU5JZqAlOG\ne7d3ieaI2hHfh2Ia9IDBHOS91G7W2RrLfVlF/MUCBIsnzs4j2JM9UTnOvw2i/Srt\n2VyXSnYjatgkJ2YEifZOKA1+OMS1Ox8Y5BKd99aqqGs80J7cerxqepIKBOmNTWX2\nhQYVma9jbPO+65h5W6b9qha5usFNd+rz/A2BW5BWy913qw7oRjH9peugZECLEoYt\nKpLx8OmJl8QI/QZcWnozH3YZKBjSJqcVjnbiUshg\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"richdocumentscode","categories":["integration","office"],"userDocs":"https://collaboraoffice.com/","adminDocs":"https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode","developerDocs":"https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode","issueTracker":"https://github.com/CollaboraOnline/richdocumentscode/issues","website":"https://collaboraoffice.com/","created":"2020-05-25T20:55:53.246179Z","lastModified":"2026-09-24T12:38:14.751849Z","releases":[{"version":"26.4.402","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.402/richdocumentscode.tar.gz","created":"2026-09-24T12:38:14.384310Z","licenses":["Apache-2.0"],"lastModified":"2026-09-24T12:38:14.810251Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"cWIrwt5a7Ost+1Odx5ul9feJR88FouIr5X3sBaVdKVJXZ3ASRcNiQUQQ/TAfEIKg\nxmGu3rUmWQQ+kKbFbvI/SOTNzm4g1IxiwHFDaSNQcEarRu5HDvCsmlXmhj+8jdRT\nsIKP7KeR7o0WFbf8Xh+d/oFw2Px6yLfUZtyvE0q+vO4T5gcQ/Qg9xv7Guvnmx+Kw\nfvo7y+eaSA3Qz/Fgtd6S5VBZuzVgSPIDfUPOJ711vcYang7uEVDy5FMwvmEBdjIY\nHD2ltVBNa6/SbQLoM8pRJ2odPwKS9ga7o/9yOzE4UgIyuEGMu9+/NuGGwCPjysrS\nbTYg3lteFRaVfMmyYf/tZHzcG7HTZSlhBZjDXNYVim41vSmjKQ1f6czxiLxKS1+a\n4cWKQV98RGenfI5IKyjU7Fm3sv+elQlgHAZi2kaOrEIl9hIb3G+CpcuFkXX6uUA5\nvTtbWnJVSqOjU4JBljE1TiKKzeibYi9RwtPc5qMWcGQ90ktuOqhv6hpuVujlXjY+\nN9FUTuFU7y1ekM7irxB+LxGpZicTlGMdaeA2TsYrHpOQGKB81XPI/gc8uSGVHKMC\nPyMd4gUWrL2srmYhkByvIuqhnRyCCwzumd3pVfaNAGnt6WwnLNtdZcm1TvyJGVe1\nplEp7B2vsqyeCrU+9l5bbddG7RDUApBvV3Mk2pmllLA=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.4-2](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.4-2)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.303","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.303/richdocumentscode.tar.gz","created":"2026-09-11T13:53:49.116909Z","licenses":["Apache-2.0"],"lastModified":"2026-09-11T13:53:49.581135Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"hKEZI4IJASGJ6+7U/mQWGz+u08d4awFxjk0yXvsN49/x8G9j+MnzwX8xAHxwUY40\n5LOPUS8cudyzhzyxx5YZAMYiWZii2nqIlRjHO6oEoDB+cSxoLQmuqi1fca1sf4GN\n0tudwq14cCo+2LT5l7bI1bSZjWMdBjDSbcfn9OeG5IzZaiaaDXrxF8NAYHON/tPm\nuG668ETqickTxpt/5TJxnaAk+yt5eoc+kRAW044PCEuuWcZaYgJ4UceSsUQ5MRW7\ndqgbOE16CHgQueuGF3cqSLsW0Hh97m+fE9kDfWTZwV5dshu/kaGyPnN3CTJGIHt4\nrt+IAldTSTkW5K9VwBDzMi4Uls6O+0PGGuwirDCAiG4ggBjShvUwB/6h2t+07D2Y\nBoybeEYQ1JVmTclbq1AEO9Xwv+bn4yds3pjJDuhfuEhq7+gKtHhZntCxNXTL2/oh\n8mklJh97E+9zDYg3vAfnCmzOZuMZ3DE7IJUM4z9Nx4Lbe6P39hxKLaHEQ/NHNZ1w\nBdbn7hTDn6saEJvcQ/rHQc8PYIvFfcbr70zv3UBiLqXOyWq2sGJB+fLbhHShLX+L\nY8yoDPXI+jxmLyPfHtNPfSkB22pzJnnEz5iCdRlJyVI8bon0Vhh9sL4BNGrP9TSO\nyMjvLXd6AHel8b2TEsBWwFD10tqm8TrROGM8wThCN2c=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.3-3](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.3-3)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.302","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.302/richdocumentscode.tar.gz","created":"2026-08-31T19:49:47.429812Z","licenses":["Apache-2.0"],"lastModified":"2026-08-31T19:49:47.861126Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Tr2EnIxbNGFbrGiruN4M1Er3JS7yIaMz1xoCDSFYxMpepGWoARYZJuZxK95TeZnj\n86P1AzsFn7AO1LlM/wuKiagQFVS9ePXCWJSx4C28myrvrj8hdgLcp5Bi1wt+kTEq\nRwUlhr+0qFp80C67hO30mTIs3PFfRRe8WWRVzg1CsIh9Wf8CsBU6LouJEOKQFYAb\nLlsHBsOmM3fj5Z+Ht1pokpuGWeNawKEhEmIF5SXscc6u11vAV1zZ+R6nQeNbUAlW\nygBF0QUGumP81+fIOMf3j6mDJR6GH2SbCjqovdoQxVxu/S4s55Dh5blzlswM84dZ\nX4ABfth+0M0BDE0JioYEQYgTOmJl4hGR1prG3pHMHgpnXCE0Yvh5Ut8/s/e5pJ7N\nqyLS8w5E0Fvj386qaPLpBWcU349KAZ0lfCAiat5uBqH/AoRAFR0A8+v/cN9IZxDZ\niXJxGAzB04BNOQArt+rysw2K4fdtppSF5jWY9AHEHHNYbiVZkyHlDUfQvfboQO8b\nhKj0xaFfrbVGoafPzt2kdpy0ywH/0dQJkBRTV7mx4Tj1mS/2KnYq/Ze62FuyLer4\nPqHJoasO/eN6SGq6NtoUDHPVR+11XetqqkOKHlkSuyVVy+VAU2a032EPoobheSnG\ncfHfbXoB972y33+4IvhHg70DTh/weC++ZhNG3G9WaLU=","translations":{"en":{"changelog":"### Fix:\n- #345 Get URL generator and app manager from settings object (fixes admin settings on Nextcloud 34)\n- Return 5xx status codes for server-side errors in proxy.php\n### Compatibility:\n- Require Nextcloud 30 or later\n### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.3-2](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.3-2)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.104","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.104/richdocumentscode.tar.gz","created":"2026-06-07T21:07:18.084437Z","licenses":["Apache-2.0"],"lastModified":"2026-06-07T21:07:18.550710Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"h4vv75Zkdo7oLpBhJ8KvTdeFBqaEiDBfvgwPrbm6R3++i0QkgPHeKBCp+APdsp4g\nwLQq5RX0AagzAXIPvgVu+Bai7g0olw6t5kUbtUPLI8IlJ0pwM4QmKdtXiIbTCjwc\nwzkc0u7oxXZbio4H00osOainy6UEBYiB3G4MLsk3Q5t/JjW949t6QAKOKmNmPc/y\nOgtw+DhkKJ7uWPmo/RUoR4KetthNoab7s6KmXBHbIKnsQ0qbc9xO7Y1Hk52zJYE8\nJF+5DsKypJRN99j5Cj2S1okeV6HAVpVeV5vqH4YUMecu1ey0oSASu25TYppAaZ9T\nKLd7nyrhOpfD82SyKQf3jWaH6TChrVzPQIWKL/lL6DGderKgi5Zc/1Q82gcIobSh\n3BSLomoZsRdDNsFN0efBVa8OUpfvSMXmkAi+n0gMGbwnOyz5vq41V/d7KPR97HT7\n/Zy5mOuWCdTiEMqO8Nky6YxOzzGrhGB/o7EGZRgJGA2RLXzaizjNqqz2wCQIS5+G\nrwdVOktt0jhdzgsZmW70pK6jEkh60KMI2YCK8v6nhSSEajz6DQYkg7QpWaBWjI80\nnnjClnMuM34n7kZL11PwBXCICGDSzv4oDxCLn9515x8NiB3h3+MibC2fHkTc6iRR\nmh86l6w9H/I58o4QNQ4roxoXEYyNX7+toV98yicIoQA=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.1-4](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.1-4)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0xLnBuZw==","smallThumbnail":"https://www.collaboraoffice.com/downloads/nextcloud/richdocumentscode/collabora-online-screenshot-for-thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC00LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC01LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC02LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Collabora Online - Built-in CODE Server","summary":"Built-in Collabora Online Development Edition (CODE) server for local testing and non-production use","description":"**This app has to be installed and used together with the [Nextcloud Office](https://apps.nextcloud.com/apps/richdocuments) integration app.**\n\nCollabora Online is a powerful LibreOffice-based online office suite with collaborative editing, which supports all major documents, spreadsheet and presentation file formats and works together with all modern browsers.\n\n* This app provides a built-in server with all of the document editing features of Collabora Online.\n* Easy to install, for personal use or for small teams.\n* A bit slower than a standalone server and without the advanced scalability features.\n\n**System Requirements:**\n- Linux running on ```x86-64``` or ```arm64/aarch64```\n- A ```glibc``` based distribution/container (```musl libc``` is **not** supported)\n- Fontconfig (```libfontconfig.so.1```)\n- Additional requirements can be found in [here](https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode)\n\n*The download is rather big so it is possible you will experience a time-out when installing via the web interface.* You can use the OCC command install the built-in server from the command-line instead:\n\n```\nsudo -u wwwrun php -d memory_limit=512M ./occ app:install richdocumentscode\n```\nWhere `wwwrun` is the user of your web server. This is ```www-data``` on Debian, Ubuntu and derivatives, `wwwrun` on SUSE based distributions, `apache` on Red Hat/Fedora and `http` on Arch linux and derivatives.\n\nUpdates can be done like this:\n```\nsudo -u wwwrun php -d memory_limit=512M ./occ app:update --all\n```\n\nOf course, alternatively you could increase memory usage and PHP time-outs by default, see the [Nextcloud documentation.](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html?highlight=php%20timeout#configuring-your-web-server)\n\nAdditional troubleshooting tips can be found [here](https://github.com/CollaboraOnline/richdocumentscode?tab=readme-ov-file#troubleshooting)."}},"isFeatured":false,"authors":[{"name":"Collabora Productivity","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5454545454545454,"ratingNumRecent":0,"ratingNumOverall":11,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhE1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwNTI1MTc0MDM3WhcNMzAwODMxMTc0MDM3WjAcMRowGAYD\r\nVQQDDBFyaWNoZG9jdW1lbnRzY29kZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBAMfsgYA6K8Oje7VQ5ULycozlOwr39C929QLved763T76lcb6rbPfeIhX\r\nYxaODCxRDhSaB3B6/dBdrop+xQOIK8SsrwRjQlgFe3O6fsoZHaE8rVC3D/XG+B8P\r\n/6wBmMmrBs7n6/1cVJCfThUHsIZZavx4Fttt+5X78+C7Ezl/3+4a594mDVpR6PbX\r\njxd1+94VgAVmJTa7MB6zS05cQd9q9tJloPBvqzAQ6EaiDrcgH2AoOA/JOGRWrg1o\r\nIo20Z6RcRTVwICeipO9Gd+iPPw/KrKTkIuxbGrQuzHdYwxp+KoGSrlSkIv3tTkvW\r\nCzyZ1Abql67e6udEvEe75x1J7A0dr7RjkTZ+WVCGhNDLKSUsNUjCalTF0tqhgWev\r\nUT+5SjEbZDg0C5aFUoSGJSF/1BGbmNh6chl1fUUZrnceFWM8alxjkjwXg8ydVyEx\r\nzv7FSs1e4WPBTWp6gKn1Pwg1wspRlaGRTmXIFRgG8sPb85gIL8h2sEos6rfFvrcA\r\naNwHbdHHQrWyRoVoOsTAp3sXV5yIcLkAwBdrCPEwhEurNblwFwD4WzUWnkRim8ke\r\nAnCDL/zxW5S5PpqEbfHgMRS5SwZTImZ4wbYYSVP7HT7eiMySz4Wq+UwobyRWkVbb\r\nt44rTfTTx7k9C65lTXped/wyDudf1nNfFEipfX2pUxLx5Dxm1nDhAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAIbZsmaqPHADFFVBKeCjAe3O/loaJawa2Muj3/Aw7hWr\r\nx0F8X4/mqg6ysrgwbLVAxQApqb5WPs+BKaiT2AuZjS0SdJRu+LqfNav7iwLoc+G3\r\nC3DPOpsTesvYQ6MYOeuFWOnbLHTJ3vjzG9qUd1am7pqzIKN2wA3BHGOtZXxrappq\r\nPbpr7P6bopsm+kWN3n//HwZFNsBDGmnVggiHbu9bmRsPAuUDUXvayhRm2sE+ZgDd\r\ndmACIj+wFRkXqQsPh1X5n2ELUy0mvJRw8BTOFr5xkBj/c6cp4ZgwK4wwSMqoAytt\r\n01kRdGqhjPDV6VhdY/R92E4KWor/B1V/vKrVXr6nmrg=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"elementarymath","categories":["games","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/John-ccsengrs/elementarymath/issues","website":"https://www.ccsengrs.com","created":"2026-07-01T00:00:16.778680Z","lastModified":"2026-07-01T00:00:32.874093Z","releases":[{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/John-ccsengrs/elementarymath/releases/download/v1.3.0/elementarymath-1.3.0.tar.gz","created":"2026-07-01T00:00:32.865178Z","licenses":["MIT"],"lastModified":"2026-07-01T00:00:32.980905Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"cnqK8ShI0CvxRwwjdbYtEUkswT+zpzXl8Onf7RmsWpu7WCgG6LgLXQBhcZ4LrpiB\n4xLHF59KNR1ne7aa+mb3Hcw+pP1aDjq47kcZ3099uYZOPpqbHuG52CanCiwNaNcI\nkJgoBGaH0D3wi8LUqh/KMFUdigxm1XL4isdNazBHFPwRpNJ+krUdwaJgkhpdI+d/\nc7yuvRFeFUHWi1fefxiPYg8E6aEYNbU1kDL2eajuhOQl9tvnaLUhLP3kifVrvJKU\nZzN3I+5DFSu7FBxGTZXKzdlN/7DMWIXNH2PbNPQ2uoyUxaKt8GW18Yw8VbYxUHqk\naQWJ6zEIwW+o/98frLnuigNOIYuIQw1fVyvl04B8QUf4esKJMCZ+cupgTUbxdZt+\nSFL2z+qpAe9XxguY9Wjsd4elgo04SQL5vrqPfn8p64dm+LIWwajb9RN/OHR5MJtK\nYlLJ5y4P3snJgSl+X+UlUI2/IXnVXGwdquB4TadFF1jTGLXdNf2MbLa8Xc/RN2De\ncdLO/PFV9px9usSBGLx47LSSHPlZ8nFGnH5GRKVvOsdpk8OAjK9/FMVP1R0Z4GRZ\nnJr4I/OAAZ5dD9sD7KjOSsr9gedqSWGiC8Ug620Iz0Y4pf5u/FGMH+Z4aDfnoEDt\nyd04duvi+lW87rFK4hslahvjPwl3KB1KoF/X/VC3CkM=","translations":{"en":{"changelog":"- Added server-side round tracking keyed by Nextcloud user ID.\n- Added a database migration for the `elementarymath_rounds` table.\n- Added badge-style motivators and goal messages for students.\n- Added parent/teacher monitor API for admins and members of the `elementarymath_monitor` group.\n- Added saved progress summaries in the app UI."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeW1hdGgvbWFpbi9zY3JlZW5zaG90cy9wcmFjdGljZS1pcGFkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeW1hdGgvbWFpbi9zY3JlZW5zaG90cy9wcmFjdGljZS1pcGhvbmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeW1hdGgvbWFpbi9zY3JlZW5zaG90cy9wYXJlbnQtcHJvZ3Jlc3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeW1hdGgvbWFpbi9zY3JlZW5zaG90cy9jaGFsbGVuZ2UtbW9kZS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Elementary Math","summary":"Friendly elementary school math practice inside Nextcloud","description":"Elementary Math gives students short, focused arithmetic practice for grades 1-7 with hints, streaks, challenge rounds, sounds, celebrations, badges, and teacher/parent progress monitoring."}},"isFeatured":false,"authors":[{"name":"John-ccsengrs","mail":"","homepage":"https://github.com/John-ccsengrs"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhOBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjI5MDg1MTM2WhcNMzYxMDA0MDg1MTM2WjAZMRcwFQYD\nVQQDDA5lbGVtZW50YXJ5bWF0aDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAMccGFLrTaF4j2DXEZlhVDPpZ6MZSjGLO38AokZOCSTZuvnLBD4Z8SRacCtg\nMmSmZV+U4VGaCRQ8P+gZKCnmb8yn+d9LtVP/pPz5St5uM5JSLI8SkvGCJ3iyaHGZ\n1xM7YPj0NUES7Q7KAtOmUfQn81NCGK5XWzgPizxJs8+PUsAVRcF+ZWWIibZQr5W4\nAcSiegdD6Wuc6HX8KoQVWSXWUA6e93ChZWuT5iH7BnpdWroPkAykhdfmDTaYZ62t\nuUs45G4sd1m3eoxkm3skMYHtfaOWPebt4lsK1nPSR9+LgKpEDLOYyiha18rojHTf\ngMFCGGi9J9WVFJ/miKBvYz+Vd5uj/xMPUlUcJwc5hPbNPA1yKJTYVyZQjunmuOJY\nwJiOokhxWdZhjWWLiqFXruQG66r+d7871PVwatAq5EqtBZGgKAOUhfIkGeeg8GPS\nwVW1dCMKt6HlPUBgOqEtde0xkYh/G7IVniWnbSs8uCesEwsRC+YoNWXb4lLX9194\n20D/XPd7oSump0lAoKKL+DWmAnzG9dPhjHjmPUzSGhnsnJPSMHJg8yPUJivO1H22\nUteLrsBzSHvf7LTeJj21f8mht9P1eODSe/vOmYDrDI3eGcdWg/iOLaKr99bremK6\nVt6/3ksKGA0I3FU/gmJNJYkcSN+Uxb9d2bUgv466aO6+e1n7AgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAIB95XW30sJKgEm0cVfVzDgnegDbVGSrsb675iulUpYPjIk3\n8A69cHsEXrI7G4YsXS3HcmtIXlXY0sOJYZDKNv8mjryg0/fue++ZcIg1oC7MJkOB\nQmamlj9tzoQL2ZoHB2VXTmtpdxt4y4tdXVktyD/6II+pV1EIZm5Q0v9myP1puSW9\njQyFAD8G9iRu69nIMk7XHWN33+DmgzMoS7sIO5/Q2SMXFNUCPpG5Yq7c+iS4kfzk\nkklLkcnaqf+DC5t/IOS9JsRCOEittT3wfYS3FLrbDeRhyT71IXRIwao1BwKTWROf\nW0SSEZAumdaLb6cgyG1aApSParIKUKUk+6QGdr8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nextdiary","categories":["office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/89simpson/nextdiary/issues","website":"https://github.com/89simpson/nextdiary","created":"2026-02-19T14:09:27.985654Z","lastModified":"2026-10-07T09:50:44.728277Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/89simpson/nextdiary/releases/download/v1.1.1/nextdiary.tar.gz","created":"2026-10-07T09:50:44.713401Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T09:50:44.760129Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"oPiiSZbYffGQvWsul1b7laWKmYZyfLTeisoXwpOxKH541J25qYAjxA7iThnmlF1/+Jtcv5hZJnoEHz707UI7sufzZ6HB1G14z6r9W3fRX+2+OActu5dWOBhKUTEb/hfIEwObS0MkOiJ9caK7o7FHn+jh/Lb4d93y6uYOaKGP4xT6NTfulcDrj1jphUp09hw++fK+CRCZ9exdMT5Qf2UmjM5XA7LbLDRy+Tsvi9iaafWwaxMtLujXIqKbGdR0G8PvjNAxh5BVmphyEq4Szqq4Tnx7ej/ad7cm1jKOlq/ws1oRkpCRHSauAiWwG349flCz7YZT0y6/rSg91XWYrNvG+7ClZaqxFilHfYeCxMoDAywjxY9BG2hXj0AZZvSWLhteGjDSkxk3IZ+2Nhkw4vkSs6H5GlHr8VSplK2ztxFzUhKQayUlYjm3t9Dht6LNvoUfavvIP6i5gtEBWdZe7Z1n8mGmd5/R9i4qFM0mU7rnK6y2wi/gwveQ6rRvom/tjTUk+OOKmPI1EAO8Dj06Degm37xL1urCLSfuJv4P9xf1whPYdR4tekY0+SqpFJPcgJzzPqeXQ/6C3EKDSumcRk5fUTbiXSYJ8tojOcLcLJ+m/wWwXRNtGgmOIlnWKRea3aGKmYP9sJ9vjedQB3+hdbsX6NroZED2P9fmuONNAqnJ6dk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/89simpson/nextdiary/releases/download/v1.1.0/nextdiary.tar.gz","created":"2026-10-07T07:20:24.342997Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T07:20:24.387138Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=30 <=35","signature":"mbN5zJ7fjyieuPPGNMpMMyj38eVx1d6HCZT3w0hgK2rP7YmSH7KWZfxm5XA1Eh9Ae/VL1PtfpIss4NwvW/albmTzjJauKYSBxcCSX3AFFuQX28osgcK7Y4XPY/vrDZ0rRN+7nWlGX6ydgX6id7HgtSltpvp9Rskd1slmllQaXgpauejGDuEQvD5D0Sgw88/1iyjgoo/bynjDumdMTtdd1fAFtDdWg4VUC8DKfBVYapod5QBpyZ8UjC20ivo5CDUHaN/n3jcY2+9VyBahS5uecraa+Yddb15j8d8ccwyUvTyVSlP4pNiuBFHqFy9MAKIr00oWj4mQBqXYGyOBCcSq2Y0dP7/dpZxdZgz/rvG0vxiBrmwJbxdhLg/2/TsPpDgEZMM6JyJv/IQ3vtSCv7te8wbhBBDzp9QALuwF6xT7mBjcoK1Zsch0xLodKEq9xy8w5QWh5yJDonCEAaophjNmcgAXhUdAO1GZbaJVpgnqibjzMlSt4E27sgLtbnpgOKvASljmw0GpeD6Ru4KJWd2yeKrvIhhvPtKXVycr2iUAW8D5aIutLh96DlE3dlygRiXfzShNUHRwkbxSkEAscR53OdtgUv3Yuf6kXHJmaszidlY7vRi8gihvJyHnKqoarYu9p7kq+yrM8cjaWD0meoO2khOzin9jE3S2YPtETCZa5Sg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tLzg5c2ltcHNvbi9uZXh0ZGlhcnkvbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NextDiary","summary":"A personal diary and health journal","description":"A personal diary and health journal for Nextcloud.\n\n## Features\n\n* **Markdown editor** - write diary entries with full Markdown support\n* **Multiple entries per day** - create several entries for the same date\n* **Mood & wellbeing tracking** - rate your mood and wellbeing on a 1-5 scale\n* **Tags** - organize entries with tags, auto-extracted from #hashtags\n* **Symptoms** - track health symptoms across entries\n* **Medications** - log medications linked to diary entries\n* **Manage your lists** - rename or delete tags, symptoms and medications at any time\n* **File attachments** - attach files to entries, stored in Nextcloud\n* **Calendar navigation** - jump to any date, highlighted days with entries\n* **Configurable sidebar** - show/hide sections, reorder tags/symptoms/medications\n* **Export** - download entries as Markdown, PDF, or analytical CSV (single entry, day, date range, or all)\n* **Localization** - 88 languages with full translations included"}},"isFeatured":false,"authors":[{"name":"89simpson","mail":"","homepage":"https://github.com/89simpson"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhLzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjE5MTEzOTQ3WhcNMzYwNTI3MTEzOTQ3WjAUMRIwEAYD\nVQQDDAluZXh0ZGlhcnkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM\nrDT3w4uwR2xtXfn1IDMN5kaDIP9IymvDJ5O1pGhyP5bEMuaEJha+fq0n7rW/FFca\n8eZSCwiCkjgJIbIyRISZfvHZQmUcr+SVM8TGYQmJfuod+C2D5kRBbASLXxj9XTEz\nToo31tGWwSNVmzF74ZS+2LPmRtqH/zoXYiW3nEwTgWsNRHDGTKyMsmTYqNsBXuGz\nVQsMChtqzy8lygttIQHN/aReQCK1diABAxG/7TT24ucqH4r7kJxWKpR+R8esgvtL\nivdd8XtMGUBDPnpOGTGm1BRcrPhNghjP0V2xCE4/Mrb9oHkxS58Uis4xDtfSA/Wz\nK3rnUT00e8CX57WX0iaTqTePxoarSuEgAJBkuyLLpeyT4Jyk2ek55f0HbSRK3INi\ngrm40MfYVYiucVHqVJl2hMY33t9qEKjshla/luv84pTOoNjLsu5m6tcyM7Uk9o5r\nkxCbBvB/ZrZ2RnTFd08p6gRBbG31stxBigLYc8ZAP4C+9cKexRY+WmKNwQ+kYcKP\naCxdt9HfooLf8WNXUisMBaoNJIkMOHKd/0sdQjAlTptz8Hb8QCgX4cvuq88bkFDz\nDcUTk28mIhmF/P8mL28RMKJgL9dYVKVFF4DXdSRJlWyAwnoP7mD5NnzdMmnrxuTO\negVIVol77eEPqpz3DJaevfOYAHzDBjYKgFIBIgsNBQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBUyZpFH/ZT1ft+e76rOZzCsbWWrqOm+PRPcVc/xqrDQr4p2Ckp5785\npVoZ8D3Q3/XoLXXFzj8apO2q2zFSTqSgrfv+Lb8bGUK2fKOhgSWit8vXO3zLq3JV\naMdeMJ4d1eI7o6BtryI82a4QIDsGcGdBC4VUkHHirPB8wmaXUe9yzoUSnuZ7Xueg\nWE/NAGiuGZLadExMggCM4rqN14SdDCZ1lnV56J6KqK9MI0GUQ39NaoWfKpBw8K3B\nOth4CvxLaJiYA3YW+CPSbnhcpCztXHEvVJ3pwt6Qeg9p7/AjLqF5RS7XW9riyEex\nro4Ovgc5OQJCcnElTjnVIA2788/yY8b8\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"approve_links","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/approve_links","issueTracker":"https://github.com/nextcloud/approve_links/issues","website":"https://github.com/nextcloud/approve_links","created":"2024-08-13T09:16:12.522574Z","lastModified":"2026-07-21T09:25:51.990479Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/approve_links/releases/download/v1.5.0/approve_links-v1.5.0.tar.gz","created":"2026-07-21T09:25:51.970992Z","licenses":["agpl"],"lastModified":"2026-07-21T09:25:52.026935Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"bno7T0PpdOzBA7icEj8mF14EJpgjkIjIqXjrwSMw6U2HBsgi+lG64K3hZRrbOnRln9XQdxokhafNvquzkF99MBd+CGlXMPCSGgpAIugCvAWD3e0DXAfS46fHphOL1ttENkZzdeh9wRXyIcvVy1ZNRx4ovSRHQPQRWu660Ef6daLtE+tjzrGxQkwp+INw07tIWSit4DTVi9/E8Rh2f4AQGThEA6IS7dt5KQQQE4u1GKTPp5jySl153YnPwJ5rfX+WtAL0ATy4kYkvZcfg1dYPQAYOaYxz+mog+r83v6jLNNGk/ncBxodV+GnIVpRx5jL1iPs5bzYZhv+nEzZOKuSHkryuDCDYigY+gw9uvpzIM92w/qSG7IVr5KBK83h8/ruwv24QQVMhDGVKEjZ8OYeG9F56ae99EvtoE0Wtsmj6Zh9n4PyQFEzGHxiE7vr/lhxcu6y8LEZHyOiQIpkpAyfdFqhXQMBN/VuC+Y+l0MCYPSog/v7TXFw4015zTx3J+7FDg3XVIjjkNa1L23qlJ65PEYp23P9Tfp2SHb0GLVCoq8w+An4UgpNWE8Mu2viscHVLrau3cKiV0kt+wexkKeih3DPRWWf15/8NJ9cjwZwFi2Wvh2bA4gdnUatadpBnLM9SOF5817v1BUFMiIkBaQtuumw8N7PrzFFmGCs2qq9Xy48=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9hcHByb3ZlX2xpbmtzL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9hcHByb3ZlX2xpbmtzL21haW4vaW1nL3NjcmVlbnNob3RzL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Approval links","summary":"Generate approval links","description":"Generate approval links. When they are browsed, approving or rejecting will make a request to a callabck URI."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECDCCAvACAhJtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQwNzI5MTIyMzI4WhcNMzQxMTA0MTIyMzI4WjAYMRYwFAYD\r\nVQQDDA1hcHByb3ZlX2xpbmtzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\r\nAgEApr+KaZSsY8mV1REJoEVqFY+LPhPEdgglZKWCY2CUDfMq3Ktvh9uHJfeeujTQ\r\nUR3Psiu3gnVioERCXB52hTLzV8ecga+C5JyE7klurHGtdQXp/gqmeY5HRCs87Lpw\r\ngPNun8SGin99Mc9vpm7qdAfiznmXjKUadJf784s82RSkAdVU35qs+MWet9ObDxUy\r\nWcVCKCbgJs/ytgiJj7wHxpyFxRLgwWLkStuv8izwIJH2o77VHuJ93fbEKdWhpxUd\r\nbxZ9yryOwhLYK0y8I16mGjfAuzMIrUzJ7FOsF4BxbNGx1WS/bUM0oWs79e3STvxl\r\nJVCfMkgpJEAeuMkydWkdIE0BLj+b08ZzRa8Aaj0h7y2jXMNllAj3NpTjx92rPdW+\r\nRwRuCmkQgefqoF/wfiOLZFp+/x/6vbAvL9QutqcDTVWcD49U+LHry40N2DNA2TAq\r\n2a7K2qKZTUwkwV1x5ZpvJoBj3IgDC2EVaL/wlwG+1yhvpXhf0BijxU2RMG1TWm7g\r\ncH1sOZP2eBXDUl6cTFTYnFLwKcXlbexN8GK+NC5C5/wnyk6K3t3RXOZKrYAy1t7z\r\nRzADrq2DiSWofxQCfBcqd7argulrPT25A3GIc3LboIIebCeS0hwxlzBgszkpTE6K\r\nDNJVsWqdB/jI8T/cWO4Pw6hTjiCFDHfl4oQXJdDkyC2dOiECAwEAATANBgkqhkiG\r\n9w0BAQsFAAOCAQEAf2yzuT/dZ6mBkrjd/wvvr2MggqK4H5ogZ81fdMg3i+8ljedG\r\n2hUM+TBOv0ZoBfajifV+PEz7LKC6LGBjwfn2uypZ5VAJx12SSeawm7DdSWbP/i7E\r\nPlU0QNxzbxqrTjfSW/zCE5p0f8Qr8pkUFsK8+w+EaEzZbRD1Xgcp2TreRLpJLyIi\r\nWC8/ljhbRI7eXfr1/WSnLJTdHPJQKMFQyRZZBDuFOb3bK+/h9y2rXmZaBsST6Wg4\r\noJZYnVWCp1ax5xkl8mhP/ShiYtX9vyFOrPtdMit0RSyrrl0Qkes8gL0bXO6Z7z5/\r\nbeeR2O7ssXWVz4z8o5Et9Xe6CYcfXqh/7CdWPQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"prinotes","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/UrbanTechIO/nextcloud-prinotes/issues","website":"","created":"2026-06-16T07:47:22.625802Z","lastModified":"2026-10-12T09:12:58.108368Z","releases":[{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/UrbanTechIO/nextcloud-prinotes/releases/download/v1.1.3/prinotes-1.1.3.tar.gz","created":"2026-10-12T09:12:58.102366Z","licenses":["agpl"],"lastModified":"2026-10-12T09:12:58.152930Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=25 <=35","signature":"gU/mr+A+fnpWj/ZfnWjJvNJegcQRa6c8aDkE/ZfTwayzWpkIe6y3KDGm494dAXNZVr2k2RgeKmgp4oZFcnE/To72zmwm2TLipTdBwXG0r2M5MmXmqN+tEDz9t9tFs3fqF1Iai38C47SN3Wk8cUYNqlGrMEVZiv4dR/KwhmCNjGBFc5dzOB8wzoyIAVy0mFfyqCsXXOAYibRDJUxYFnIIBOBGpENPFR3QORk7PuzTnbCWzzwRrmBqtPdb9OSy4mtub0mGn/gBeRKJ9KUD0XZs6xiO56nkXBNostF9f2dtEqg8rXvwdnYdOgl8Oyi5L6Mzp/BDt0XEEjD8uWFxiJOiwPP1lrze3gjbaM1i+9b/qVpv+YhNmcwH0lggFZVtVFFi1Mnp/1CMVPDukgZX6Kbq+e3Le7TNn3zcNmtAz+lQB4lVDxBOdmCVciZ0jm8bkSUSWcDryafcw6qkbdAQfQ95VnUDvtFkJf8UnDLXgo7iSjIomVECEKNDUj53W7S3Hwi4CCaH6dA7Q4BNiQI67HMDGIXzkpb2HYQHBbOfqWcMewYYycqXIqsokXuUrNE9rqQCW9CSjk9exAdx0dr7pd0Q3CUtMNX7+CpE2hAOztJnT1+B4LdL1BdTcFUbJYnkvnsMQbWMssTdwMRu6qapnVfvABTItG+4WF0iqoZMxxcDYPQ=","translations":{"en":{"changelog":"### Fixed\n- Sharing a note failed with HTTP 500 on PostgreSQL (`null value in column \"share_type\"`). `Share::$shareType` defaulted to `'user'`, so Nextcloud's `Entity::setter()` treated `setShareType('user')` as unchanged and left the column out of the INSERT. Defaults are now `null` so the value is always written. (#2)"}},"signatureDigest":"sha512"},{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/UrbanTechIO/nextcloud-prinotes/releases/download/v1.1.2/prinotes-1.1.2.tar.gz","created":"2026-09-29T20:29:58.651531Z","licenses":["agpl"],"lastModified":"2026-09-29T20:29:58.714020Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=25 <=35","signature":"djezYouqqoayOpVnUL/GpnQXo3pY3L2hKOpzMQONGWXe9P/X15FKH9AkaFiq1M6Zutnpsz0L1quy1GEwdU0/JQEbPqyFY415J0imH0KdHjwUhLosk/Qf1ul3TjBQjwgM6wsRuI8xCe525c0y/rndR1ZZ8rrIDBqvmbaBI7EpAavlF0zy58ESEJIzmmwMQ/bNxQde1iPDYnMfCBvg3HTESELZ+H+QXTbvZ7LT56FLtYLITMn3NEFmkv8KgIOaecUi6t/l5UHOVTe+JP78klZtwNSNbNVKMYySFRObxvLpFTcG7v/QsPMwn3/FaYcLqDi25/qkF9GF1RmaFImeNVtHseWv8PzMtnfiDp62/Ll2clMducBT0Mvp4LNALc9nIciWnDYgmgO4NQNy9BqJRqavlX1JDjoO9+gjmJpjCu4bOPl66oo15MikW0TIYj0dNsCc7QqPw+3HzgEhN0zP2GlIYLJCLQdBZImNVsnnOfmv9Le0NDT3y8wcaU/EtrKetnY1ypRvI82JEYfwKE4tPdkV22fKLls1m7I2oXlksv76tJrNRygzenJcesupdPCpQCRGTZ6BcFhmZZ1nvivUQByhuH7egGBm0Wj416/jjA2djvx20VZAfJErKJZ4AlnIiHaXotNszD3aIbfpSd05VT/FWGHAaCBf1oyISi5ogpHi6sA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/UrbanTechIO/nextcloud-prinotes/releases/download/v1.1.0/prinotes-1.1.0.tar.gz","created":"2026-09-29T18:55:08.753194Z","licenses":["agpl"],"lastModified":"2026-09-29T18:55:09.687219Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=25 <=35","signature":"CSt8Ep7TK1d2KJdzmforrC2q3nC9/3uLKjANKu5kP8QavQN8aQS6KWBScg/9DtfmwmE0rrwvmGmskW3yLOy31uoN1lo09aK3P1XmicTIYY7VyI+ksSCj2G7tniFDkOucstf+JP8+zsDB1m3PgFgQkXeF0jVFV44yX8KiKShiUPzfq+U6EJi+fLi681NWofRe35oQ5NDPpGi64y0NwunTuGjuV14zj1Sz7iIbwHVoirO0DzoTMI5eGLTaKQRAv2ALqmApwmqGASaZxMFtFYWmpbIRF5/DSuJfuGs5g6ag7gMCRtVnXSQQBk/caq8S9zeLSvlljh/BA1IGEYFZ86EEZps9hZRN+LKIvCx1BLZUyuaSjYcbtgsujdPMmjZvlhgePAN2PmNjm1ZBXgOZDzxAPW21aoacc08JhM50tVvQJIm1jfQxoejpd8EV2Xlx1DprFqwAXDp8mIoELoAblnEKPaJwPwZqVMjLjw8quPzqf0+Uo9fq9z4ao13jVCmISisWXhbPl8WnncVlcOuZSHeM4SkLeLbJ4gkc6SFnwfrbS3i1cO+OjRkmhoneP8ra3Sf1FcsiI1mh54HPV7lT8ZPiqnu8RadNxU9EEwXiSx2d8dl9Rk/5CYCG94g75fECfFF4FJHBEi/GbZXdcZVyvB9v49wr6MFkfbjUTQ6yKrdmswQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/UrbanTechIO/nextcloud-prinotes/releases/download/v1.0.4/prinotes-1.0.4.tar.gz","created":"2026-09-29T12:44:51.884349Z","licenses":["agpl"],"lastModified":"2026-09-29T12:44:51.943053Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=25 <=35","signature":"NqfhrAwCPP1dponO2T6KGaPCPITkifZB5jEXsOYHHVlrlfqP+ufflbLB1MgFBTv1nV72LquqzANraYGQtlTJ5qF9fN0q6deh7eTNjubp3UrPGt21lJ3tAWFb4SavxJh9RrXjzzvgkxalo2OKYeT9G5PuTEx+uPRfwunnvi3alI8j7gyLDfiLq0LOGcl+FYiVN1MvYURg+cbH9aYFtIOy3cahoSPPBj1oVQPBvDBKd8zEebhtA+ofq9mMMaTFWxedT+iimDfh2lt5xZ85De++SlrdmASJoFqx8hI9wPR8u+vpMINx8copEMrAAHiDeca5rWxw5sCeN89zvqGPN94r//r8TNnaD3xUu+9TKIuIY9o4EorGE7yGmobSBT1yGaC5f6chW/PjEAfj5A2tO0ogE8VnYSTyqqHcIHYnVe0MNWGYtycUvq/OuKiB7jCIcnphMl+uyW/QzAu247uUy1eLUBJdmxisku78LyhctJFyNHk6CfUbjLFSPAujltA6z7XcA2x0t9lBnJEnmnH7tIlusROlKZZeqKurrF/YQnV8fl9gtURnwJc8ui7Apmhp7nv955/84AiWNoOQSVoG4mf0xOBffLitdQ6MJRttriJYpQzOwoYlfrh6BzJitB5S4VGx3cD0vJTkUqSmzCusdpX0LWEMgfDs5A8Pvq+5uZmxv9M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy9oZXJvLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy93ZWItYWxsLW5vdGVzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy93ZWItZWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy93ZWItZHJhd2luZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy9tb2JpbGUtbm90ZXMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL25leHRjbG91ZC1wcmlub3Rlcy9tYWluL2ltZy9zY3JlZW5zaG90cy9tb2JpbGUtc2VjdXJpdHkuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"PriNotes","summary":"Rich, private note-taking with offline Android sync","description":"PriNotes is a feature-rich, privacy-first note-taking application for Nextcloud that keeps your data on your own server.\n\n## Features\n\n**Web Editor**\n- Rich block editor: headings, paragraphs, lists, checklists, code blocks, quotes, dividers\n- Full-canvas freehand drawing support\n- Image attachments with resize and rotate\n- Per-note color coding\n- Pin important notes to the top\n\n**Organisation**\n- Notebooks — group notes into colour-coded collections\n- Tags — cross-notebook labels with colour support\n- Archive and Trash with restore and permanent delete\n- Full-text search across all notes\n\n**Security & Privacy**\n- Per-note PIN lock — content never exposed in search or previews when locked\n- App-wide PIN + biometric lock (Android)\n- Hidden notes vault — reveal a secret set of notes only with a private vault password\n- All data stays on your Nextcloud server — nothing leaves your infrastructure\n\n**Android App**\n- Native offline-first Android client with automatic background sync\n- Grid and list view with live preview\n- Works fully offline; syncs when connectivity is restored\n- Persistent view preferences\n\n## Android App Installation\n\nDownload the latest APK from the [Releases page](https://github.com/UrbanTechIO/nextcloud-prinotes/releases) and sideload it:\n\n1. On your Android device go to **Settings → Apps → Special app access → Install unknown apps**\n2. Allow your browser or file manager to install APKs\n3. Open the downloaded `.apk` file and tap **Install**"}},"isFeatured":false,"authors":[{"name":"UrbanTechIO","mail":"support@urbantechsolutions.co.uk","homepage":"https://github.com/UrbanTechIO"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhNqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjE1MDkwNjA4WhcNMzYwOTIwMDkwNjA4WjATMREwDwYD\nVQQDDAhwcmlub3RlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIKL\nGaK770VqNdjO5vC3S17oXtfSBqRo213OELZAjQKaDHKYCmAXKCLMxrKgtMUykrSn\njSepzwfn8wBgevWx6zaKSNhJAHf6hed4mWjHIb+9kOzJswXtn+y4YYSmdgxllmfw\npDqtQWxaOHk8kukADRlE+dS/IlCKqOsSlzhqYzhO+s5ScwGuBeUx50ICJr48e9YY\nzqD/H80zmAJfposoHQwP+Y42ZZq2cdEEwg+O3/+Y2gxSfA2/9c4AaYBEWpW3setG\nyqhkaAyn0G626/bV6mmZfziiIY5QM5VHuonWnZgrePW7nzXBQWwlHff2hdzb8kYm\nTqcOk7HP6uYcS4Vh+OeTozvIaiGFoNtravir8yDCzyGNcLH6d447pi1+7Q2hrrXf\nLC41wlPpsQYKhw86fW+KxaDNSYpzhW16+QMN2dIBW6qDbQpXrkBTkmZriLgjkaBT\nWa3lxO+nHFoCQ2siox41kXiO1ra6SjOamrI6VgbIdpv10nCEkg8AZ1oZBCoz7Asq\nZqX7YdzySfscYdEks+WbDdjasPZ/x1j35ZwLiLCE8Im1LVHOIUFvFVMJVWqWRQad\nZtlkevb8I1JcGhxroFwzKFDm0ElDCUfRcHZnkGIXs0Fbo//cf8FhH/AW12O1gqWL\nWV6w28kxGICWnI4up5ZMwjJ1UN9LHL20CNeW8WFLAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAAP+oW4eQE28qt+sZVCVamqguMO+tBQ/oG2ls07dZkrkoeMz+vHKGQKu\nmXRZaf0Rt6A+Kc8czsIQZAEgjIioCkaaYjosNb738Oc9WYSLRtp7chWOaYHw2BnC\n0Wg8CPou1ZJU/+6Sv7NLPboYFqZdddvKkpOLwHgQTJJm0Lt0hMSduCQ0TCpiSFK6\n30C1kxTOcCOCgt7fIsyAUeyLUvdk8SaJCv9kxOIb1uVY8yfuQyuEAQ20Ql8wX+N5\nD/SdJDF0Xbc93K4KYgxt7gJB+B+CHPI96vu9nroqfcNs7upLru96NAd4Rr/6EzBN\n6l23MPDHVTwdA3bdKiRAaj4hgHW34VY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"transfer","categories":["files","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/beleon/transfer/issues","website":"https://github.com/beleon/transfer#readme","created":"2022-04-06T19:16:00.583042Z","lastModified":"2026-10-05T20:07:00.412576Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/beleon/transfer/releases/download/v1.0.3/transfer.tar.gz","created":"2026-10-05T20:07:00.405846Z","licenses":["agpl"],"lastModified":"2026-10-05T20:07:00.459866Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"m/QYxbDwviDQMAv13DUX2WM5+PFRJPQGQ2lM1uC63xdnr36Uia4sTppDJdr9NocFIHgWDn6JD7PNP0/J+yXm4z51mB/SWFnuo5RGGBhzHfTxhzK22Oe7CDKhUVXXTVTvXnflXID2nGpCUmSPgF0UumHsYFJQHCovySnxpMYvjt5HPDDN0umAC+zc/XnWgqok2b3P5itQgUlSb42Ypw4a/bl4i6UnKd94IyEXeAwfqo+4vulLOeNT4J3btDfveAN1bGioyuSuVLCJDIZafrwz8QiT3hO+2crgJgPaI6BOLUUhMmhkhJ06Kd6IawLrV1S5zAyZwpGh7atGZbW5z+H6xYfofONkTcON4QTsHvmpAUMSBqAIskdLMu2gUJjqdJFP7U6TplnInk97QF44uBmQQ2te+cYFbsiuQ1mJM4500zcJQXig8QXzFJURh5XAgCj0rusJazU+JSB1ly6bOZoUmzHbhSKKNc0xA0qyBzkhde94S9VL4l/sm8G07VZKVgREOsvxB4H4AH1ID5Y1W3TC2OuvYR2WGIvTMDXVwaNEoba90Amv6USn2+RdVgqwKvGFcCHBTtixh8QcZCtOhVed1sxF+gdNfNArNnnVZzmMjJ3WUnVKpP/mgtdf8RpAiaSO9t9/SNHvsdFK+N3uc0owFmtpi9hdiVmcmGYCOYp0d4c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlbGVvbi90cmFuc2Zlci9tYXN0ZXIvaW1nL3Byb21wdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/beleon/transfer/master/img/prompt.png"}],"videos":[],"translations":{"en":{"name":"Transfer","summary":"Add a file to Nextcloud from a web link.","description":"\"Upload by link\" functionality for Nextcloud. Transfer files\n                using the full bandwidth available to your server. Avoid the need to\n                leave your own device online to finish an upload."}},"isFeatured":false,"authors":[{"name":"Leon Becker","mail":"beleon-transfer@mailbox.org","homepage":"https://leonbecker.de"},{"name":"Daniel Thwaites","mail":"danth@danth.me","homepage":"https://danth.me"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhNjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjA5MDkwMTE5WhcNMzYwOTE0MDkwMTE5WjATMREwDwYD\nVQQDDAh0cmFuc2ZlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALjX\ng6pcwyckQyEubeKvRUq72oh+hti9hfJJboatMskae8uV8CHNBxGNvKjg4icPoqap\nIQs82oDDrQwvQNolyIq6Hcs5W//mfcCj4+HiuVXkeCPCryElA5PE45C0U3FNQB9Q\nNYCbYbUgp6C0qj5MWwZ272t+7u1gbBgTEvFFsAJgq+B70FuoNHwhz32ItKl4TyFG\nWgBLFiznVF73pXvWvBtYcT7E3MltVbRuEbIuTTdhSTurjQ0DcnNO04VcJvtBa2Dp\nSjncCgaAG+rRoWrdQukuauDnVZxtw9BIhQpqEvUFIb3yoVxN1S2CBvevN4E293Tx\nfETjtu/anBNAdcuxYEqaOXDb/77P+J6SGdDhV0bc0jHqyP8PIBNkSHxsxn1Y/A+g\nM58MxXazS4LX7d/CTna8xMAMSX4aeNLrHWARcKXXCOj6+c/RWWSpVJbx+gF3r3x7\nzdgn+dm0oRYoHYez77HtX9a5fIgW887Io9ROA5UatvQR7CoLDF7bI3cXg1er76ec\ndbYh5Mos334T6OKCAOE8kyhgy45yerXCpt1xEvlsxiomtNUhpfyyem8bRY9K3weI\n1ataK6pXEI+b4qLu3FBV484fHaGCJVcQjhTO8PU7IqOguVplSmr7ez3v+V2n34N8\nKCofiDlS+qJeP1ztOMFdQJYrhlkTkmvChtzCcdQVAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABIUEcQRclgutiBWTn+w0YMrehb/1EKnp95cyD+lx2clcfF3RP7UlQvj\nQQNj4L5SAa7GcDippefUZXM5HEkQ4VSIjN9KO4ksOGkQMUOmRgfGJ8RZ93wp4y2e\nYGe3FrGkNYgprrJgBSlxoPYXEKFRrZzlK+XJzqpyO9+RxlY0tLf1UW+XqdtI3z8b\nN2BpJ7rdh2Brf83I6mgi5Q4Tk/zOn9qzLD+2vs0rhydfBXtx7EYdUPXdJRoQrari\nTVR2kZts48A9Gp+H6HlEj4GWUkDg/9WTgOMkvwLQUr2INGg91cXdrnfvejCSLUB/\nS2XiwlCdWDISisxd0Li0Tp+1ZLJFBRI=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"flow_notifications","categories":["workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/flow_notifications/issues","website":"https://github.com/nextcloud/flow_notifications","created":"2020-08-12T15:37:56.644239Z","lastModified":"2026-08-14T15:31:27.225635Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/flow_notifications/releases/download/v6.0.0/flow_notifications-v6.0.0.tar.gz","created":"2026-08-14T15:31:27.205749Z","licenses":["agpl"],"lastModified":"2026-08-14T15:31:27.284575Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"jUSdcFBGNG8AQBInZCP0Dyw+BmPLaZ2yzFJjHtyQAw+jTTYzJwp7v0u8Cv8KqyaQQPmZoZSmzvFtAcBscpixNoAZoi7cLmTT0myi095M/FaLU/4VFgykzL4XnWlEYibuEjjpMeHACSCg83PXWDkIM8yO7IuEiER9KhTFw1pyCzy31C8mrIrhB0uHfDCJBThjNcTfnhViEvkpK9N3a+9CbTvTR5FwZ2204HzblCtxbRCMNXd6U4CSBWYi4VpluqWCW4rE+mCnzFC1OTcTVYOoi9sPJVkWHWGou7ylREt2oTr42yjuOg2XLX4IvPG9IbN8+P9pBYUzpvuDC3dyOUDdX5Tk2aOP+uULF4u+5YzJ87+Pnj+81co8iWIx8E107vWLUatkiR5wZTwev84hfzUq4PYo6RPsb6UqsJsbdNvuW+qe9PYilW54WtPyMZl7ked9ZkFWWk9AQnC9FVv+9e92Jerw3xmBkN0btEOY2zMUv2Kr3R7R/8h3JVsoiim2juPv6vpq4I2PVG8zweeYE6ZAowHkRZXMpw9qadHm5PzqqAGJXCEbJBHJQO6Nwv8AfdcJiiiuEEVi3McznlejomVH9rUmL4Ps1X3gOlPZ98ESdo0uW4wsTqGPkOusohmlidgYAAOLeKWiQFZ8NGye6+tDm7rPnSGeGEAKczsLf97WZ0I=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mbG93X25vdGlmaWNhdGlvbnMvbWFzdGVyL3NjcmVlbnNob3RzL25vdGlmaWNhdGlvbi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mbG93X25vdGlmaWNhdGlvbnMvbWFzdGVyL3NjcmVlbnNob3RzL2NvbmZpZ3VyYXRpb24ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Flow Notifications","summary":"Notification action for Nextcloud Flow","description":"Enable users to configure notifications with customized conditions in their Flow configuration.\n\nUsers are empowered to configure a \"Send a notification\" Flow in their personal settings. They can choose between the events being triggered, and other conditions like filetypes, assigned tags, time ranges and more. They can specify an inscription so that when the notification appears they will have context.\n\nTo use the `Flow Notifications` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `Flow Notifications` app to work correctly.\n\n![Notification Flow Configuration](https://raw.githubusercontent.com/nextcloud/flow_notifications/master/screenshots/configuration.png)\n\nWhen an event happens where all conditions are apply, the user will receive a regular Nextcloud notification.\n\n![Flow Notification](https://raw.githubusercontent.com/nextcloud/flow_notifications/master/screenshots/notification.png)"}},"isFeatured":false,"authors":[{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhE/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwODEyMTUzMjMxWhcNMzAxMTE4MTUzMjMxWjAdMRswGQYD\r\nVQQDDBJmbG93X25vdGlmaWNhdGlvbnMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQCs0bWPUNzn8MQ/7BRnH1aVM+7fD4FZ2/7mXN50aq1q99RgjaINlS1P\r\nqhT74RtMBzzyhsYCRhvWRA8fL6G3usIjaBnn2Idfw8xo4BV5DzSQ0bM5EkGDc/+9\r\n/3cOXH2j3dJ9vX29XI8aLIKtdTWOr0btlAn1RLTHRrLKvMrKONcrxoDaZQWmWVWK\r\noodoABLPY7YIV1IUCutFQ44q2y3WpbmBnrcoOgU/VPapPXc7i2l2i8GYlCQ5xO7m\r\n/txheBSb+ICjxIdzFVtMxwVXaSCmEdlfCtelwOWNuX9nvvW7Kp6gY5YYiXVe9R0n\r\ndD4nz/fM4bRU6t6ljsLaQG5r81ZC8NwmVzV8VJVFD2rMiK3Vp7BxQzPcgWg31zr8\r\nFQXnJm7yEW2F+2ROEy6yMecLaHLCBzr/3E1Ub+paokNbKTRuA7PQZgt8My4mMlcj\r\nZSZc8/Yh3p0TeViGQ99reAoY8S0l/GA/+q/ELyIThpCWkG2WX9q0or3dZFazrWM6\r\nqyuhzcri6jmRzCVP4unOYhWQE8Ep7+zjWrd+8TVIuRIEChAUrtm6+TOBiGgWuX+Q\r\nhKgGfdouxkvJbeUYAGKJzadNtA18vZHhXoEM9hGzO2yED1tedwUMHEK6WxRGkkj2\r\nebYDleFzTtsBQ29Wr29wsmLvkjr903UAxLZvd++ljldRjtkgck0l6wIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBRgCfzHZ2BxXp2AQrtj1X0QcC5wrnx9dfWaQglgq6I\r\n2PcTLEOmDhj7D7c70yBorHpYLjCT1kKGWaEh5o7aI4ibEudOWaAnXiCFl3mIuudU\r\nkCGD16rfPu0RxfhxMVxjkH6CyY3fjhRVuh67yjWf0bh6LMCx8abu1j5QsPadwmf5\r\nrE4L8YrvMMf5RclMh7xExfsv88HAEu85rvIOOlkPshxFMv6IJc33XweXahLgoE20\r\npk2Y2nco3b8dwj9xpr/9kB6Pjv7FZM3aA9FDoyl6pznybZjRuEj1wBUHntBNL3uV\r\nwo8ATPPQw8ga9v7lF0o8JoMLg8gkCUeWZ2KMajsJPDu+\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"thesearchpage","categories":["search"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/callmemagnus/nextcloud-searchpage/issues","website":"https://github.com/callmemagnus/nextcloud-searchpage","created":"2023-10-21T11:10:04.779722Z","lastModified":"2026-10-18T02:46:13.319089Z","releases":[{"version":"2.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/callmemagnus/nextcloud-searchpage/releases/download/v2.5.1/thesearchpage.tar.gz","created":"2026-10-18T02:45:52.559126Z","licenses":["agpl"],"lastModified":"2026-10-18T02:45:52.675239Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"WyJMCQoIVx+1GTK7HdWP0qqm7EbsqhaafJI6w7jAxhTjJ6I6Y16aPJnLF5ZgBz2/CHP84SYhqi1zCTT6KXSM2vA1XxTUGpjUSC2dCZt6rP8oLc5KjC58eVFhlMNHJL3aEpfqRNBwLbq9UHpmc1BBOBi0Jla5fExfMw1z7Nv0CwdgfVxREHIfAiETw/0d45S0s7jSX4FkVkX7+4BbchDA//qFqHyd4GoHjfPqX1kWbq3vs47sVXffPxdS8QN3o9n/kAJt8tRA+OcLH54E1ksGdABwMne6LfZgN9japAAcjy/KZdI50H/+2hGAozVeGVyE5048P+NhRuUSX033udyrNYK2rrR2Kd6aGwVo8GuD6v60hldsJ3RV/mRTi8OwbNQS3OUmtWtQzLfi+7w4u531MiOFC5j4JnHdpL1WpXTr6xsYSICQ70obyPnozUQka2gZdo2dQlZslveOEw8Y30nMtY1BXwrOPuA3P7/MqNhiHN99cokm9rcgevHGDDl42fXWY6f/CuWZutbCO8UDtE073GaJR57CFqvOm9W4189qT77NxeMVJrpk/sXdd5+wUYd25Pyz99nXNXLDc+/AA3H7A1AHR1AjjCL5EDkd1jCiE7w3bhaSTHrYotSFQ71X0ACyEp4JdaT2+l0k67iSZ16t5sXaG2jXUBlDD0uSQ2tWlxA=","translations":{"en":{"changelog":"- Update translations - Many thanks to the translators!"}},"signatureDigest":"sha512"},{"version":"2.5.0-dev.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/callmemagnus/nextcloud-searchpage/releases/download/v2.5.0-dev.1/thesearchpage.tar.gz","created":"2026-10-18T02:46:13.335036Z","licenses":["agpl"],"lastModified":"2026-10-18T02:46:13.346627Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"1OKXZ4C9sg1KbbiMjFyIlnVmWBtuXPJp0VDAXcVszdSD+cF8u7RT8eJBbT7nmyZfE+uV3k48y2hC1k6L9OajkGkLC91ZwgYAO51M1RaHE3xlHwY4uBNB7zgDWU4GWEELTl6NF03qxKUcRxmZ4RqMCpoy8iI7fvJWVavdjHYtKPwv+bKDW2pycetfMnvQFKjK2SkilVls1z5g0AdiszbmlMN1tCR0pnVzdDEVRqCDnjHBmFe90dIL3E+61gBr4xCYtHNjO00vfNcky4DzWRiH31L2XL4qwYLHaqeXeH755/e3jNu/JMpxj4GmRcI0NBuWf5+OGdNhl8uP+dV4FYR9E8QMAiSlnmqCseaL2SE5V9x1Bq+Ez1tLYUxr4GTH25ntZDWHO5+AcMKqEBqcJIgKcnzrsX+ESEJlgkLcPySnBrtOP/b1BeDBGs8RRy3itE4qntM2L9jbQjwQv3st7WWUO+g6jv/56il6U0+Vmta449IjzV6IidocXiIdXGHO0YDOrHwlv0hcVO/uwivT0E0vkDW+dh5ljRIolu94xj9pw8mcfGavZFZq0q4S/RYILqWV1h1UUniQfC/0QFPt4OwdQb6UOy/gFZrukELvOK9mH9ttD6zg4d1AmDxogw3cZHlr8Q//l2M9TVgLAtvLK7uQgXAh/evpZ48VkgpeJtdnm1I=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/callmemagnus/nextcloud-searchpage/releases/download/v2.5.0/thesearchpage.tar.gz","created":"2026-10-09T12:55:37.241104Z","licenses":["agpl"],"lastModified":"2026-10-09T12:55:37.294203Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"ZnLAYELykj9JE1puxWfQsZtKKJ0Wfal3guJD2dhO05Ce45ncQYBkWle6bx4yeZkBHKJS626uVT6uowHPcDOycR00kybxx3l3yme58Wa1s39N4e7gzmfW97g48ADu69ZaQEiQjIJq/rYhSIvz7PMOegBz9GwL80ZQ3TOyCUQRR8NkiwAFQS6GjqGMtGGAtuu2norFpsdB6qbvsSeGNXBmw84lwMPdFmrmyqaQ/tWStFvtpDpTdiCUqi+Uf0jmQGQGH3DdukGZYcFK7pO0nj28mr00Tul36BxBQmxS/iZ/3ObNZqKXdSdibJUP/z70xmRId8b7BDliyIgIl7rVK09F3h9eRM2s8ugrdNI0PfqrvJaOP2dccDcznae3DoIeFN7B9GwtM9MQuThsctL8GZ9+oHeKuHx2+1YSaUEb6Z6fXGKyIYpp+e4/FaLgIFLUGn33DbuXEbQIDxf8KJOktOs/n+B1kFPralT1JjPXkpsG05ZlKGJcLnATMGsxiwzLAsj/myRrRkVHhUCG5bRMe9r54PLxiArgIVMVmKhkVCMRPnlzTQYJWy2o8Vv4s49hlfz/VxblJVP+Tk/vjYVUqe+wa6kM56zkygOhbSXTXjbc9zITsUQc7Da5T68Vw7/wwgBN9FB6heaaPbkJFk+amBK/1xTAOF2kXMW86VVOx4GNJgc=","translations":{"en":{"changelog":"- Update translations - Many thanks to the translators!\n- update dependencies\n- enhance testing scripts\n- allow user to move through results with arrow up and down\n- change how the hijacking modal appears\n- add support for Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbGxtZW1hZ251cy9uZXh0Y2xvdWQtc2VhcmNocGFnZS9tYWluL3NjcmVlbnNob3RzL21haW4ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"The Search Page","summary":"Provides a proper search page","description":"🔎 A Search Page for your Nextcloud instance\n\n- [Changelog](https://raw.githubusercontent.com/callmemagnus/nextcloud-searchpage/main/CHANGELOG.md)\n- [Help translate this application](https://app.transifex.com/nextcloud/nextcloud/thesearchpage/)\n\nIt works like the existing search widget, uses the same sources to query BUT\ndisplays the results in a more readable and browsable fashion.\n\nThe content of the results depends on the other applications installed on\nyour Nextcloud instance. Every Nextcloud application can become a search\nprovider and get its results displayed by this application.\n\nOut of the Nextcloud box, you usually get the following providers:\n\n- Apps -- searches for match for in installed application names\n- Files -- searches on path and filename\n- Tags\n- Comments\n- Settings\n\nBecause of its design, the results depend on the implementation of the providers\nin respective application.\n\nKnown issues with other applications:\n\n- users -- [by design(?), it always returns an empty array](https://github.com/nextcloud/server/issues/41274) (it is hidden/disabled in this application)\n- fulltextsearch -- does not seem to AND the query terms, OR is usually less relevant\n- news -- does not provide a direct link to a feed item.\n\n\nDon't hesitate to leave a comment here or a rating!"}},"isFeatured":false,"authors":[{"name":"Magnus Anderssen","mail":"magnus@magooweb.com","homepage":"https://magnus.anderssen.ch"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhI5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMxMDE5MTIwNDEyWhcNMzQwMTI0MTIwNDEyWjAYMRYwFAYD\nVQQDDA10aGVzZWFyY2hwYWdlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEA/C/niX+eJIWAPZbyrzmBQZBl34BUSKof8gBjaRY8hpTG8E8I6wZsubl1IBrq\n4eOfJ31qY5Cy30GVL8Yr8UvmCHva8GhcxhmfNWfgBXJfuCIt8euyL1lDt9EoNIWF\n3S9MFXC3kUJgfAWs903TgPY4MmyKuWsraQ0I3LHQbDn8jiadzvrKVFKbY7v6n4BU\nQUUmz9YdWGfPYlh4xkMgYeAOPVD5b75LA4gE3mpXQDMQPvIw+7VdfFppjWViQNYV\nFtq1MMLTUDg6m+F8z3FKUO0gsdOmqlXSaRMkJFf2PBg7GhXs6XobC/R32qaMv/qE\npEN2pR4/u2AY0IkmdH/sr+kwggF4akmGMTy0lpc2/PMiBE0T1gNyVLQwGJfhjpaX\n/PHQzDxdCT76V87gh11sPKtazJF5pTkXO3neWdCLabWXtphOE/CTcfjNQDveqD9b\nBNVkzvQJE/GjJcpwWHGIUVT8hBK97iQaMDmuHKdO4+k7yYPw7XiJgYvOKup17RHX\nR48x1qoV0Liib+Tn3KAwxnbgbdO7TynHtHpwSBO0/+Q8+5gbH8wW2bXzuxZxmMsf\nPRc+y+tIyNs1nEAR2W8Ocir9uxco1YCGtd2suGmzoGn6gIy8Kn/ryMvgq1OpDrkh\nhLWUTay4e0s5AaJfhDvjkN58IqS2sPDbgioHJDnBMcT9nc0CAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAjOKC/xzhcne8Y4vbQJSexNcl5W65UMzXM93Y6Wc4ksFb/iPD\nsRWyq9ewCZAQzusF9P4zBScFcKmkwv3WXc4NofsvDenvGffi9byTIA0/Jst4k6i5\n2I3onVYSZwgFXDzIdzQS1dNHWTrJAw2FIOGhDsofhCkJGeiqQKIxpABqmSbHX64u\nxT+S07DPvAaTSu8hPpMvwolZoUHQVp1lAPtquRYN02x5YjQh8Be0qQuYuhtn++mM\nbDQPqaJFPZTmzJ6BIdcQndA6jUJSUYz5YDUDl8ynQo2WhN/sfOY0gt6PMPdjUxnh\n9TqC9ONxJsazaGsHRm8dFs0Y3ZIYCHki5zm3ng==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"richdocumentscode_arm64","categories":["integration","office"],"userDocs":"https://collaboraoffice.com/","adminDocs":"https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode","developerDocs":"https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode","issueTracker":"https://github.com/CollaboraOnline/richdocumentscode/issues","website":"https://collaboraoffice.com/","created":"2020-09-10T11:50:13.498373Z","lastModified":"2026-09-24T12:39:15.866282Z","releases":[{"version":"26.4.402","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.402/richdocumentscode_arm64.tar.gz","created":"2026-09-24T12:39:15.541199Z","licenses":["Apache-2.0"],"lastModified":"2026-09-24T12:39:15.906445Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"mHwLq7GBAdQ6TcHB4TkcF2N5Ca9FO0QSKtco59tdwOH9K2rWd7dse+8WfXWWrNDR\nOSBo2SmDRP2mW8akReQFANgEH5GJKAJkg38uVP4adYYpA64WzUe96++aEB0k8KQ0\nHU1E6T2yC8a4h4UB7BwnJNA6NCD0E4w65BKV7cSm0NdL/2M3wJFlfCaePxM41zmg\nZNCrjkATinzPS7Tq1CBusUw4mft10grfQT4CUpG1DgxcKkz4mhbZRhCYvK0z0f8b\nUS1/gggMDRKAbhFi4Rk6EuVWEg0Baz1N4PK03q/bw9KOmbCXb3FK1l29s04VV3pJ\nrjYGwUIHdxqXBWDQoQ9Wx465WXHjB/fuvD9J3vnjGLdJdWP/MZBL1fP2mQ0dXZad\nOPzhiru9jfOMw9VsnI6WXATI2R3D9pG2/ksx+iCLhZ+OQkeMRQB5yJAJsgO+2lbg\nqN5KzrUqmAhwG1aNxiSKR5scnemka/HymdiHK1rN6aiiQVqNxtonyd/oW/fpoQ1b\n0Ke80t4mWz2POnUrzSft+7iU0ej7tJnRvcIWkrfgEdVhCP7+N7pnl/1cetGIwTuH\nXuziEo0Pu3NUHY2eG/SI0mHRbbSdyclF7EbOrVW249nOmOL9aBfucET94FRSyusW\nGbQreXIdU2HInYLIigQitCExqN1BJJTw2kS9fZkGyBc=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.4-2](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.4-2)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.303","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.303/richdocumentscode_arm64.tar.gz","created":"2026-09-11T13:54:36.793199Z","licenses":["Apache-2.0"],"lastModified":"2026-09-11T13:54:37.205412Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"X+d2O1GQu1uXHcB3tw8g3wvBMEhgY5TZWVsNSl0tTuVII/TlUzuLEKF1TJ7teT+u\nuRMCpcmKhj87a8sTznCekatAqy/Jaic1ItWQhhx5OcXksPZ2oBqlV6Y7ThRSAOXa\n4sXpJpdcYXuLgMD8NoWKGI2D2JkdOByYxhg9Cdd8sE/XikNBhnWCHeMmr+W8sNvk\nli+eVPrzuevQVRiG3G8G5qUTcBJ1MC4TWSbENWRgBPEZMzmTlMllsfh/fS5ctUCW\nCZXVGtuWqFmw/wQqETyObGIfFrnvS4Cx/doBPteMZLW6iHx1aCNWfdnM7g7LpQkO\n57sisBtAcso9uW2HC9UFPR+9ZRd+FtGVhcCevuKNf0lZxXxTAF3nSx97yN0HgqZf\nBjIzLglXHNeVpll85TZEP6tK6h5jz6eYDIl1dGD3N/TW0yYfMYn4bqPiceDqhXFj\n0RG2wk+wNbvKI+Vl3eS1dXT0f06OWzzOk3lFh3M3Us4uNnDIs7/q/V/+0b8LW7JJ\n6Y15Jzaffp5IT4eSmzxPaCnqqKL4/RKfTFnRFmY4H6Xmgz+sTqGHgli8ZH86OEdD\nABEzbKU3Z6yzWIYSOCPGk2QE5appHx4kgl24xEkNR9xaTpDz4n7HdC3nt83r8UYB\nYUvzkdrG0LNgUYEVH6e1U9TGsHBE6YC27zHScQCBPZA=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.3-3](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.3-3)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.302","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.302/richdocumentscode_arm64.tar.gz","created":"2026-08-31T19:50:31.991689Z","licenses":["Apache-2.0"],"lastModified":"2026-08-31T19:50:32.599381Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"lwanv+fzT8YU/Ot4vG5RdDQCPdy50eOe/tQ+I2HVfvz8At/zOWrpN4qVxRvFtIJU\n9oIVMokcYvtNe9B+0rSx2CukLNg0kr1JtFDJUOXgl5Fxriwe73pN851w24e5hEqw\nPpmRyT4roI6B1nYSV3PJ73Nh78Esr6wa0mXGs+hZ4v063aCuXqSUHdnc9mHepVov\n4dUQugCnMV28xNmg370Ypl5BtOqDzzKv6HUt+Cflv8t5x2yx8T1ejxryLWDdy/Eb\nc5f910HUPf2ZEvGEXMpgJPSalLFaheMSrlarq8VEASeLm0YLjUXfUOHtM5QwRQqy\nMwFFV/UyeBdrWp5V1iYxd1FaNG6biLMzr7S23/GWe17V9sCTKS9A9kZO3vDPuxTN\ntIwpIsazQDc7U34bCy+9jvNcSowSYAfSecJpHrud9/hrGYq59VtzbMhspjjKBNPO\nlSu/r2efbi/Qfq/J/e5+1NMXkKFsmymfTNr6w4/ryUm2Uyb7pVLDW8FDLNkgECzg\nGYQ/khbcMew3T0tTije/FdTOlTnAYtz1qC9J8g8JEROL533Wo2GYOtXXE62ljKWa\nDPnxJxIJMflBPF8dMW8v6FeKvc7g6nkjBSv8S64H0VD3R6cUjHzUhy2C3NQXAGk0\nMszaPuZOLFlMyGacBrO0Jy+uG7mDZRio6AaCkQzgZzc=","translations":{"en":{"changelog":"### Fix:\n- #345 Get URL generator and app manager from settings object (fixes admin settings on Nextcloud 34)\n- Return 5xx status codes for server-side errors in proxy.php\n### Compatibility:\n- Require Nextcloud 30 or later\n### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.3-2](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.3-2)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"},{"version":"26.4.104","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/CollaboraOnline/richdocumentscode/releases/download/26.4.104/richdocumentscode_arm64.tar.gz","created":"2026-06-07T21:08:07.274540Z","licenses":["Apache-2.0"],"lastModified":"2026-06-07T21:08:07.635164Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"A5kA4tvq3AYcPY5F4eKDO2A7VCwIpDEV85z6VTQzpOhZs9++nrrxAAlWiiF0vj3Q\nxbfJfp2SU6gn2TM18OxNE1Kl5Z7PPNxKFP50nCAZHqYTdGQK8Ik2aiPBJz5+x6qZ\nVeHUOcHGTDAb3cCXF8RXJxu+6CIXS+3DfQF/y7OfyCCRa13ciwRpnszr0umtpXOa\nYGowYl8zcTVsg/y7RrdTxMzF9iChQhwIWgJ+nCEXE4dyarsrWkZzT9NbXKj3Y5Ll\nyATrEcKjMK1LatadxfMUQkM3vAE5iOvFBEe9q8dzgc+jGFBPLwhZi2Q/uJ+4Xg/y\niibWRnYsS4BlWHnTL+qlrIzGqpLpVo0UZlkDFuMHwYPIHbvnEJ/Av8zXAwoE9tPf\nJk81QLKB4YB1sBnnnAovS9i0jkhNrNi/e1OM5K0eILo/H0/gJ7bdNT4iJpx/fL1C\n7nLOoJT8PY4eEyFOzk4IGRMTKzSZcLqWWpXshnTXFR7tGJOon2xQoU/bAg7H2oLO\nk1DMRS27Ja7/YO3mZZxSBiFvj93KgcaUFDRYhJVyHV7fi5gSc+z9gyJalShip/Vd\nrJM9KagMjtgsLqzL0cbcX8Gv/HhZLRg3mEye8Yp26YNisaAGbc227UeDqViqmrZE\n2ucMvYQGrAM4i+Ctwc3OqVBLNELi55HAS++EZZLdLCU=","translations":{"en":{"changelog":"### AppImage version:\n- Collabora Online Development Edition (CODE) tag [cp-26.04.1-4](https://github.com/CollaboraOnline/online.mirror/releases/tag/cp-26.04.1-4)\n- See also: [CODE 26.04 release notes](https://www.collaboraoffice.com/code-26-04-release-notes/)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0xLnBuZw==","smallThumbnail":"https://www.collaboraoffice.com/downloads/nextcloud/richdocumentscode/collabora-online-screenshot-for-thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC0zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC00LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC01LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93d3cuY29sbGFib3Jhb2ZmaWNlLmNvbS9kb3dubG9hZHMvbmV4dGNsb3VkL3JpY2hkb2N1bWVudHNjb2RlL2NvbGxhYm9yYS1vbmxpbmUtc2NyZWVuc2hvdC02LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Collabora Online - Built-in CODE Server (ARM64)","summary":"Built-in Collabora Online Development Edition (CODE) server for local testing and non-production use","description":"**This app has to be installed and used together with the [Nextcloud Office](https://apps.nextcloud.com/apps/richdocuments) integration app.**\n\nCollabora Online is a powerful LibreOffice-based online office suite with collaborative editing, which supports all major documents, spreadsheet and presentation file formats and works together with all modern browsers.\n\n* This app provides a built-in server with all of the document editing features of Collabora Online.\n* Easy to install, for personal use or for small teams.\n* A bit slower than a standalone server and without the advanced scalability features.\n\n**System Requirements:**\n- Linux running on ```x86-64``` or ```arm64/aarch64```\n- A ```glibc``` based distribution/container (```musl libc``` is **not** supported)\n- Fontconfig (```libfontconfig.so.1```)\n- Additional requirements can be found in [here](https://github.com/CollaboraOnline/richdocumentscode#richdocumentscode)\n\n*The download is rather big so it is possible you will experience a time-out when installing via the web interface.* You can use the OCC command install the built-in server from the command-line instead:\n\n```\nsudo -u wwwrun php -d memory_limit=512M ./occ app:install richdocumentscode_arm64\n```\nWhere `wwwrun` is the user of your web server. This is ```www-data``` on Debian, Ubuntu and derivatives, `wwwrun` on SUSE based distributions, `apache` on Red Hat/Fedora and `http` on Arch linux and derivatives.\n\nUpdates can be done like this:\n```\nsudo -u wwwrun php -d memory_limit=512M ./occ app:update --all\n```\n\nOf course, alternatively you could increase memory usage and PHP time-outs by default, see the [Nextcloud documentation.](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html?highlight=php%20timeout#configuring-your-web-server)\n\nAdditional troubleshooting tips can be found [here](https://github.com/CollaboraOnline/richdocumentscode?tab=readme-ov-file#troubleshooting)."}},"isFeatured":false,"authors":[{"name":"Collabora Productivity","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEjCCAvoCAhFOMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwOTAxMTg0ODA0WhcNMzAxMjA4MTg0ODA0WjAiMSAwHgYD\nVQQDDBdyaWNoZG9jdW1lbnRzY29kZV9hcm02NDCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBAOVv5Kl2L1N4uM8JTDSS6L7MF0wHilj5jCxJJj/OX1fMEFNV\nolKE9fy0CPJTKQrzkEOokbDDxnBOY85ZaiR8BIbaC1J0Sdi/9EYFJxh9j/zRXFCd\nVAczUnAFibXJo30+9prcRJftlCsuSUqNWjXeQV0rOcGWe+GUgqi4uAC9gFv7tfBc\n2ini+sLnDa3k4Hxrdckf7kDvCj/6/NOJ4UbcoHhUFr+0rffhnbmrRuA6VlDkuPY6\nqrteGhdkSIWZTVP2DvZ5RUXRpBBQysnW9eLsOqOFAUj+/LtUwXEUQcqzOUAy5ejt\nHSnJrmqipzmSoDrlzPUW+ZhuBwWQdZL1HN81PCw1mDqUUtqJfDuRtWelFVIOaqNT\nHuhGwdZGGxSlxLWDNfWP9sYjrRF1xIPE9euCDVay4PUv1ZeSO8z8LLg+9K3qb6Cp\nUcLn5wAOvYVj9vSHeWTgS+NGvVb7VBdFijDdf+DQ4nfkdKyXCh5BdwJDwm8AR3NG\nGGxSiamUX5pdT+Ax4hg6iBDoTgBqwfoWHWCnVpKb+BMTT6jDfU39VuPhl4gKQZX+\nkoVCK9SNtt6s3cijLA/zwcHcPrIJ3S1CM38v8mPDUgg4n/frD4RiTM1chLkGmDpc\n8PDCgwCCkvzFOsVkuw8jvMufdoIn9v7JZzVkaOAi+X3tE7t4Z592hyHLuekfAgMB\nAAEwDQYJKoZIhvcNAQELBQADggEBAJBXvMRGMpacIXo9aC66ViQ5ca6a0ZuV4KDF\n9vO9M1lb0o0WvJ+JuUWHUHPLWXe6bUeipoeIXW04QShDNTLCrkr/0/jFMkxB4uz4\nwD44lozlsCUtx3Pg8E1dp8Y7M4rf9DBsvvYr6Ps2r2Fn1IDzUQ+GF+EX9YdHBCLr\nwW6SCWSceCNBXvej2A9fXN6TYD8qIP02dVuMzbauW15LRXAi4MSrPkAIBQ/h0aTl\nckLO+4PIZCwbH3xpn3UmlLsZxXXFOfL6YZofwk7nX8dq/I5z+g4BwAyAjv3d2woK\nqNcz/eNnFfES9OUCDl3fEImzeNIrQ37KQqvKmm4ns1rbhddNdPs=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"mcp","categories":["ai","integration","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sintax-tech/mcp-for-nextcloud/issues","website":"https://github.com/sintax-tech/mcp-for-nextcloud","created":"2026-10-07T17:13:41.442393Z","lastModified":"2026-10-21T12:43:36.639820Z","releases":[{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.1.2/mcp-1.1.2.tar.gz","created":"2026-10-21T12:43:36.632449Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T12:43:36.691353Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"fYg49UOIrM3ZvO+do332ai55FxoKRXEh286pakyCye8frN/FCqP+UNyAGZzPTe92WuZWH+TevUD2u6Mq1XdxuOsSKceUoD3kZPibEvu+Ja4+bYQgOBH2r5duTUj2H4/iTuNYxoMwwNtF8TVk3WkJYA690MbwrUvpUuK9Dm4N0t0izGkQ7Gfhwr3Se88EWAknz5p4LSZQwPk3HQQA7+rgmkquYJ0xLpQFnA2bzYR9+zfV/krBvTVREBup212MAZfjX9n2okPUvmjy4PMC6TL6bcFkvMgC41FTDg2/k+3vVqzc7RtA7LhTUf1ozTFvK7nbDaPGmf1vYvlUvY+dhhzxrIXpqttaUe8mEbO5Q8TtKoLTg3e0NZDfwlvpb/kXTLloxTtFDyFhOL4yVlzUqLBtAfnNDFc5bdgOhTeIaS/X5sVJ7lPtF9qq8wi63KQRAAEtgBfH2RovTWtta3/M8295shUcAJ832bLFat9If5jyjP8xVGOfAxNODe47HmHPbkGxFOm4Xcfg7fzEMlCV1pYmVl81pWrsbdjKeAJorMeFRdmoHLS8sqqUEHbYAxsOC19BMz1G2wMSmjwrkMtxgALrNJwBBGGRnh4ep0mtNpfJDBzr5kDuMHw3ajsGV/DEtQ+uNh0Gzs6fu7Xk0b56YemCBEPzPkcU0YlXl5Bql+K84NM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.1.1/mcp-1.1.1.tar.gz","created":"2026-10-19T12:41:26.030515Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T12:41:26.110052Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"UuLhR6hdAZStJpvEwhg3PLrQ7oeOMpcKjyKKbbDhwfGByukMH/D/L3/+ceH/9y+ouKk8lQBO8Bl3NjS46R+Bih25OgOWX2q+QhnweYhzLASm2DHxO96gUCUKTiMizfqsljqBvTjGXu3u2G5gmzQ3T6rrFYrda6jWpJuZdn4ZEPQh7FzGGnNZbyJNjmVm5RV2CKzbf5jtSKzTZau3uZUPkiubaEH19vcKR2vRIIzwaUQKpKJfwVNJxpbDPlmXUiJeIiTr7YRW5cwHcUPDGfVm/urm5ktZKsVcoOcM1om7TNwINWuxN3SIzaVeVPIjCIGi6aGvQ1XdSwqdKefgaR69Bmxwrhr5HOJNd+4/+7OGJkrqV5TTuM/MKbxoZg0uTRF2X+D+ghmLw50iT67sB6bfFlB3GYMNZJItqBkU98yETumKwHcZz+y3yJILCD5AjGoK150Ugb3urgj55VAaaCxN4r7C5jSb5aBF/cEpa9gUs/XdpMBZ33wVyMTbIdSeDmfhbaPZf1eGYmwPmQqEemy3CdhPawL7IuRYChFCvn5uTxu1fCxUSH067rDHliy5MmD1hbq7xTC1a2xiyJQ5p7crbiDORV5Kaks/PlV9EpiMbOIavvMcGhUJcoDvMt5IGfbhBiD038r6y045BeZd1lmchEt/N8zq/RT1SWBvsr6uNk4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.1.0/mcp-1.1.0.tar.gz","created":"2026-10-16T19:45:10.778260Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T19:45:10.926704Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"MX45G7iHvHCWp8cC977I/c3Q2ZfvhN8LmIH+jpzpXX8Nzm/73yvp7Utf+TQIhD0xUNoUXsatMk95GKhp/k/nuPt2GKcRoXeGzL1tlxo5Bu65KvPB7qXtc2wXtGaHfBvXJIbBIi5/jFHe72llRAKW+pB6f9+Etuhw9kmU9NNR2Oev9MzeDNWbsEqERF5qEiT1ALjCWPjP2bBJX7AQtLBzqjU5hSToUjS2oxwlKKyR+dly+h7ZRQN+Z96wYOa5ecdDak8Uwt8elbuialxumH37X54o16ZJY9TTWdpztfYepBwTCV4BHVew9hQgbgavR4JQ16zAaGDYffg6WAW6FrIGLzsnSctzt7hRJ1z9jrC8SIDfA7vdJDLq2YK3ThZNApRh6MCEPFrmF7LO6WFLJosjHZvXP8jBOnnpCu6wfBY0u8UYTERYBbvTRx0H6PXWX0p63gkj6loUUbMA7l+yrYL1hD8FxycQQ8DKfB/rc7RnQ2TJJ0kUWFlcM4mXaT9pCPsilv/IfwcEibgQ9Q4FBJbOYSxHAZd9pSxlfmNpnXQOG7/I2E/jz87fcp7nnTlGM2UX7048M0whIFL3idNvr8rC2CgLocG+1exQFD1rRIGM3Qv2chglH0uUGfi7CK35tXc6Fx3BSEoSAXHoe7JcGqyP7Rq+G86C+/epLNbqtS/6oPQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.8/mcp-1.0.8.tar.gz","created":"2026-10-14T17:04:27.622356Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T17:04:27.697659Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"H8rNN2NZKe1pZtxbzHNa6SivOBisqx7nZLPWfzWXH+nfcDOsFStWPQRoyZSAtUcFE2KnJOsaCUf1L1dPsvkuJK2qU78igMOYW/XDYjOZLhBWkIpLsczuvd7KzdtowoL7haQzc00CsUDAH2yfQKIW9GNRCs0AwNX5zI3wJHFXr7zd5rBoKU7FmkC1TAQ7xyHHxhNjqqIhvQ5yuOJoV9FeahAXIhdIF7qoYJretPKFgPI7bJoQFf7fi11FQj0Zvw64UronX0zOJ1pKY4zbKx2IOyn4pbnBouxwEyKaqKpi8uALbvn/8whCNw4QGCNXiw2cJwO6X355uuhBPiMi1+i3LuMWo7ZiJYu/Odw5A6/qB/DJujapdVRftqUyTx+y9T1uEVIA5W3I2f9oIk8TpTl6uDK3rK9pt15TsGoubENE79ylDcBPfeMyM9h6o7wxE0YwEeev0qFOV9ugReBFys3l6sC6GydlbMj8AcB1J9k/4q9DLMjjNKtn+4GaIEJEdFRKAI9isuDwgoTvY2BqgFZeS/TDDb14rDziOobwFPqJxepVpkQHQirNx3gePVrvjHw+L2SaT4U2rYIKosTwaJv7jek1NuKJbFozfI/hsMz+YyxUTcJbz75WhJ+rfsL711T5bDIj/ZdovxYaNZt3EuCX/NAT7XfAfxP4c/GfSZErQJ0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.7/mcp-1.0.7.tar.gz","created":"2026-10-13T22:01:51.324925Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T22:01:51.379316Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"U1w4wBuH32yxblFG8SYr/qCqF3xSSpMB1y9oSAa3IfmJ4QoFKVkSiUL7gYl+7+tWK35msMXzvUbWyA0YPOHT8RjD9c7aOTlQoa5aCn6TOX0SENts1lSPXcFH/nevHSPH6+1FbnkQVr10sxb8easA7BcpaNVy3KaiE89x0YA6/JoS2EIqEoS8agZEiffUTLtWqXMCrQJVbe+SBDWRHvVDhdGr7jOCuWU63YhTpterNZyYLzzSn+pFu+2q/NP5Ot5I73WWEZXXxJYDTw2sv1wXrOc/kSe2eHYPlmjDCW8Q5jjzI8rbS4qlalRN1PJJUftvBR5jPF3v7IMM5m6htKBBrUKTP/xLV9mk6wIpSm7UybdXgxLphDogJbtMJZZ9mj1GvH5PtjjIgpWulOWgl50b5rgxa/Dc/chHAs7uxD1fw1v+OLJ2zWmLMdQAX8GugGR5LlO8k/dJA0F16ZBXoOi0S/g8XS0nW1WYMRTZggKgB7FCXKmUBDZe5brWFFFN4Gw22AxVhSo6sm/oyRQoAcvu9c/1yRaCiv0iw8oxNNbS695E+CbSCE94GQvpYNQsl4GAsrGnRy7OQGO8J/M6YbWviDBYxHFv1v5ekbMdMFchOAEU+PjjHTUuK7wkhOVZDqUSBy9Jb43YMYG0L9EaMsKWUCVb6nf3AGbkcGdvjyg4r9A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.6/mcp-1.0.6.tar.gz","created":"2026-10-12T17:21:48.095028Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T17:21:48.153124Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"cVe6QfC0iKYwAlTu6hVXhFMadOwUMFq/ZZdNUs/G9DNraFuULUr4J46SkgpcPaTjSlLLoTvLq+AvWbQwP7b6W3MQL/efQ+g4A3p4u9O8qmPWamO0S8DKM0s3emVqe1MzTk40n7ENxlmvBgwyDH8FNKW+fdLURjQOrXSl1+Z0wo6ATXTPG0R9+JUjj21mQSJg0LlekOqM8kDXJmUckbkJZhh3Dm5NNoixRG3oY+4vJSPA5OybnBXPtaMvCNwvITB1KdpeIVwhX+YoiS+y4/+s7YiYOhj+ZhHY0/jHwbuLpZB/j1tLeGUiocmSQMLT1zoIrGf5sEGGwr4F6pwHYxmjptkGlxtItOvX/j49+eT6Bp5KjQQM8gtfL2nwIGuI7wx/go+ndLMueP69Jc1anxdC7iC8lWGuN0C2ZCuhSyqNXYIUdpTunOT/7cRbQeeparmt8HO7bOaJLaPas7tQ6cdmZyCH6vpk+zxwcewJik0yX7cqC1kptoIhlaGV0nYvAcCGOXCTjxC1dY/443LHV6UgjvPTffnniNY6lrzSDJ+zESvGCKPMV1ciepgvnRn+cLRnvLjldTACH4gjZkYhiG4iP11x22ZP4hmsFZnER4fuSlq6kyF4t4boFhzqLLVXX4KDRN/lN+YAFjFc5q0wSamgofVhI+ocPnqopx7RVTkOv28=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.5/mcp-1.0.5.tar.gz","created":"2026-10-09T13:10:29.060763Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T13:10:29.129006Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"kksPtcF7txGFt0LCemh+qku9a7CcGj7Dt7JjuM+sINcVnT76wnotrV6GNrU4mFAvTUsBqf0GKasgCAkX+HXhTeji2nSBtE4+8Dfnz2r3YHWeBCXBcGysAGTpjAkR74Cxjyv/cDN9Kn1ChepAj60HHYgJxynavdIJ2s8Y4/aJKfUOvdxxEGxvEr6/GF6LGh1gS4x4saqWZYiKkn1kU5wtDo4n17r/EOGYoOQGIFAhmEu7YQHZhmB+hNvwacHk7AubuKigob0wTNI+TbjnvFAGSmRQhcpBb//os89VL5a+6SI7SUWFE7iXjwunL+8HMBT+QixqU+QTDfpjh1HtlZWdkORuVfSq9S1Lfr7KKrOeC3T0iPG29JTSwtzbsYwLKUO/Hc6lZRm5HMUGmynkObVbB+rtnEZx8CxBdO8O1SrGdc1d+Ez96op7o+lB7i0Np/lJ5FfFdtP2TOhz3TPRkb8c9bHVkDtOFpS8eQ7QFDaYdKS9DIKTsobzEtA45zyu7/koAVEWEz3KFtRSreqjS1xObxCh09Z68bR1eOsZmgjc+HaST7IJoPaPStXMC21ZUSa2BJjHJtj+eohcu4TjBoMcMWWfPtVltJoRnqgWP5dJnIPTKYhAS6KGKmr8z8h573FTPVu5WHGC2gI0XF+uAevJq92dqgfBJUzL2BVBPyPZhFs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.4/mcp-1.0.4.tar.gz","created":"2026-10-08T14:35:31.163273Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T14:35:31.219114Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"FIvhWsMCK5QrYfVtgi979MR800aoX3ExNmzdAdaz2Z086IaYi2ye1Cq+eoqL3fpS\n+nLqYih9OU3MDFqnFi4sOHiRyNQtovQowL8lGmCBud2Z2VYTXipgDcEfI39SwSxu\nU3x8n6ROzxOqholdjMD8wxWodbyuuepSXqi+R4xgT3/tIiIc3JR6v4K6JIcgX7c8\nGZfywDHJD2bvJ3mWSVNzMQDqxpRpB/RBtIPKi/T+ZUP/gdS2qyLEWg6hibGL0jsF\ntkkME8X0dM+/NLGMCJu6IajgjPvEz1Dk6TmxGbp7tQK+3MjneWXDCQeHxXmHbwSp\nemv5QpjYKzsKi0BZ7c2VifLY06/lOaUqy1xs9u0RS0I3ZpoZ2Bhh3ELHLjv/zDwT\nceZb/ooPNUeM8B0ndoIM2TlP5lIX47eebuK5znBNoQcXl3AjD5BbDL/YxFpcOelQ\nJAqFMXbRKH28c6tAkpiSB/MfYdpxSvvB3yWA3PpvDHdNFp6BQYHVLZDQ6W/jPC2f\nZBn9ssyBG1xFrNPXPY6qqDKAsR7xu2aDKgXUxd1bZCPJYMaWVIJbTjwIK5GOZQRR\nnXH6JY5dTXrWAjSQGK995vuHE24Z6yzOf0Pa28aPIIdYdgPcyQzFeYmf9hWpuSAk\nSO4Nqjh1+Yr4RO3SnGpTZeAokQJS0Hz+jSI7ztCUju4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/mcp-for-nextcloud/releases/download/v1.0.3/mcp-1.0.3.tar.gz","created":"2026-10-08T14:26:54.917956Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T14:26:54.972267Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Gd7EjyGALWkAqW/SbcItDwJEaXXrADfxkADlqXa5kf8GtnO7zNSz0wz+l8szNCb7\nFIsz1xJa8QzCZxWyysuVy10nWcSGg/OgaOHly1Q7+7IDC3+Uy6vwtnptwtnbgSHg\n8onv0bsYhuCPfv6iMH3teM1aX1vpFvY0CZlkU10cjOZahrGh89z7e52CV/eoH19e\nrI+Fh1GLguRSv0/8yupom2yJRQV6v48psIajp+AqMbK6dLnMUNUTKLX6TGtG+zTH\napYLrbg3CNDKQ0UsQ77HMCa618E1xUuMZIXAoLmhLTRDrxh1+9h8T5dPHQgihUkg\nFnKMilQWupnMNZDoOl5dKk6w9+ABcTwbzhZQoqaSlRUq+v4EQCrqStzLE1tmupP1\n7xE1vNZGnT9b8Haseoe81bdua6nsxRqqsaLwx9hqmOPVEBWP5DMid8kcCVdXrVq0\nV/NdXOkDGKGIBIYsAGK1Bz+5byWyWOZZmaOiDuLNZjai/zNbign8OfR2dgQLrU+W\nAJI3WnvHcFwfYgzEO5aF9Qqy7VwwHzcYguxOgGMQHcVklejZ5u2ef0ep2nmfIOAl\n6Y+269CtyaJe7QZkgAE3RGxZYuv7rtHvNgMjc3pp0rgJGgMSfa30BNm7ROarI1Ot\ngb9jfI4RJqz8v1kwaSPXoZ3xhyVhTL2eKSd1BPxI60A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL21jcC1mb3ItbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvYWRtaW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL21jcC1mb3ItbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvcGxhbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"pt-br":{"name":"MCP for Cloud","summary":"Servidor MCP para o seu Nextcloud: conecte o Claude, o ChatGPT e outros clientes de IA, com permissões por usuário e por grupo","description":"**MCP for Cloud** é um app nativo que transforma o seu Nextcloud em um servidor Model Context Protocol (MCP). Os assistentes de IA trabalham com os seus arquivos, notas, calendários, contatos, tarefas, quadros do Deck e conversas do Talk por um único endereço no seu próprio servidor: sem serviço extra, sem Docker, sem cópia dos seus dados em outro lugar.\n\n## O que o assistente pode fazer\n\n- **Arquivos**: listar, buscar por nome ou conteúdo, ler texto, PDF, DOCX e ODT, ver imagens, listar e restaurar versões; editar texto com diff e backup verificado, criar arquivos e pastas, enviar arquivos, copiar, mover e reorganizar pastas com desfazer; compartilhar com pessoas, grupos ou por link público.\n- **Notas**: listar, ler, buscar, criar, editar, mover e excluir (só quando a lixeira consegue recuperar).\n- **Calendário**: listar calendários e eventos, criar, editar, mover, excluir e transferir eventos pelo CalDAV de verdade, com participantes; os convites só são enviados quando pedidos.\n- **Contatos**: buscar e ler contatos, criar e editar mantendo todos os campos desconhecidos do vCard.\n- **Tarefas**: listar, ler, criar, editar, concluir e excluir tarefas, com as suas categorias.\n- **Deck**: quadros, listas e cartões, um acompanhamento dos cartões que você gerencia e a atribuição de cartões.\n- **Talk**: ler conversas, responder, mandar mensagem a um usuário, compartilhar ou citar um arquivo e criar conversas em grupo.\n- **Log do servidor**: ler e analisar o `nextcloud.log`, só para administradores ou para os grupos de TI que eles escolherem. Desligado por padrão, somente leitura, IPs mascarados, a saída é tratada como dado não confiável e cada consulta é auditada. Com etiquetas de ocultação configuradas, uma opção ligada por padrão também esconde o texto das mensagens do log.\n\n## Você no controle\n\n- **Permissões por usuário.** O administrador liga o serviço, escolhe quem pode se conectar e libera cada operação por usuário numa matriz de usuários × permissões. A leitura começa liberada; toda escrita, movimentação, exclusão, transferência, restauração ou compartilhamento começa negada.\n- **Permissões por grupo.** As mesmas permissões podem ser liberadas para grupos nativos do Nextcloud, com uma prévia do que muda antes de salvar. Grupos apenas liberam: nunca negam, e uma escolha feita para um único usuário sempre vale mais do que os grupos. Se a resposta do servidor a um salvamento não puder ser lida, as telas de permissões avisam que o resultado não pôde ser confirmado e mostram o que está salvo, em vez de \"Salvo\".\n- **Uma tela de administração clara.** Em *Acesso e permissões* cada pessoa tem um nível por módulo (Nenhum, Ler, Editar ou Total) e só as exceções reais são marcadas; as ações de uma pessoa ficam num menu da linha, várias pessoas são alteradas por uma barra de seleção, e a lista de grupos rola e filtra por conta própria, então a página continua usável com muitos usuários e grupos. Funciona no celular.\n- **De volta à herança dos grupos.** Uma permissão definida para um usuário pode ser devolvida aos grupos e aos padrões, com uma prévia que mostra o resultado antes e depois, célula por célula, e um \"Desfazer\" que traz os valores removidos de volta por 10 segundos. Nada é gravado quando as permissões mudaram nesse meio-tempo.\n- **Inspetor de acesso.** Só para administradores, e não muda nada: informe um usuário e veja cada operação como Permitida, Bloqueada ou Desconhecida, qual verificação a bloqueia, de onde vem a permissão (do usuário, de grupos nomeados ou do padrão) e se o usuário está restrito a alguns recursos. Ele também explica um caminho de arquivo e um calendário ou lista de tarefas, inclusive por que um caminho excluído está excluído. Quando uma verificação não pode ser confirmada, a resposta é \"Desconhecida\", nunca \"Permitida\".\n- **Restrito aos recursos escolhidos.** Em *Acesso e permissões*, o administrador restringe o acesso MCP de um usuário a uma lista explícita de pastas, calendários de eventos e listas de tarefas, até 200 por usuário e módulo, em vez de tudo o que a conta tem no Nextcloud. Uma pasta, calendário ou lista de tarefas fora da lista responde exatamente como um que não existe, fica de fora das listagens e das prévias, e as referências de arquivo que apontam para ela (anexos do Talk e de tarefas) também são omitidas. A restrição por recurso só pode apertar o acesso, e mudá-la não desconecta o usuário; a restrição de uma conta apagada só é removida quando os dois eventos de exclusão são processados fora de outra transação e a revisão da política foi capturada antes da exclusão; só são removidas as restrições salvas até essa revisão. Caso contrário, ou se a limpeza falhar, a restrição fica, o que só reduz o acesso.\n- **Plano e confirmação.** Uma ferramenta que altera algo primeiro devolve o plano exato do que vai fazer; nada é gravado antes de o usuário aprovar.\n- **Excluídos do acesso MCP.** Arquivos e pastas com as etiquetas do sistema escolhidas pelo administrador, e tudo dentro dessas pastas, ficam invisíveis às ferramentas deste conector (as ferramentas do log do servidor, apenas com \"Esconder o texto das mensagens do log\" ligada). Enquanto houver ao menos uma etiqueta configurada, compartilhar, criar link público, copiar ou mover uma pasta para outro diretório é recusado no MCP, para que nada escondido dentro dela possa ser exposto indiretamente — faça essas operações pela interface web do Nextcloud; arquivos avulsos e renomear uma pasta dentro do mesmo diretório continuam funcionando. Referências de arquivo em anexos do Talk e em anexos de tarefas também ficam de fora quando apontam para um arquivo excluído.\n- **O app nunca apaga arquivo.** Não existe ferramenta que exclua um arquivo, e toda edição guarda um backup; o versionamento do Nextcloud funciona como de costume.\n- **As permissões do Nextcloud sempre valem.** O app nunca amplia o que o usuário já pode fazer. A restrição por recurso e a exclusão por etiqueta do sistema só reduzem o que o usuário alcança: nunca acrescentam acesso. Um convidado do app Guests mantém as restrições do Guests em todo pedido, por senha de app, OAuth ou link de checkout: só os apps liberados aos convidados, nada do armazenamento externo oculto e compartilhamento só com os próprios grupos quando as outras contas estão ocultas.\n\n## Clientes\n\nO Claude (claude.ai e Claude Desktop), o ChatGPT e o Gemini CLI entram com OAuth: o usuário faz login no próprio Nextcloud e clica em **Permitir**. Outros clientes MCP podem usar uma senha de app. Em *Clientes e conexões*, o administrador também pode cadastrar os programas auto-hospedados que a própria organização executa, cada um com seu próprio ID de cliente e o endereço exato de retorno, com a porta incluída; desligar ou apagar um deles encerra as sessões dele na hora.\n\n## Requisitos\n\nNextcloud 32–35 e PHP 8.2 ou superior. O Deck e o Talk são opcionais: as ferramentas deles só aparecem com o app ativo numa versão suportada."},"en":{"name":"MCP for Cloud","summary":"MCP server for your Nextcloud: connect Claude, ChatGPT and other AI clients, with per-user and per-group permissions","description":"**MCP for Cloud** is a native app that turns your Nextcloud into a Model Context Protocol (MCP) server. AI assistants work with your files, notes, calendars, contacts, tasks, Deck boards and Talk conversations through one URL on your own server: no extra service, no Docker, no copy of your data elsewhere.\n\n## What the assistant can do\n\n- **Files**: list, search by name or content, read text, PDF, DOCX and ODT, view images, list and restore versions; edit text with a diff and a verified backup, create files and folders, upload, copy, move and reorganize folders with undo; share with people, groups or a public link.\n- **Notes**: list, read, search, create, edit, move and delete (only when the trash bin can recover it).\n- **Calendar**: list calendars and events, create, edit, move, delete and transfer events through the real CalDAV pipeline, with participants; invitations are sent only when asked.\n- **Contacts**: search and read contacts, create and edit them while keeping every unknown vCard field.\n- **Tasks**: list, read, create, edit, complete and delete tasks, with their categories.\n- **Deck**: boards, lists and cards, a follow-up of the cards you manage, and card assignments.\n- **Talk**: read conversations, reply, message a user, share or quote a file and create group conversations.\n- **Server log**: read and analyze `nextcloud.log`, for administrators or the IT groups they choose. Off by default, read only, IPs masked, the output is treated as untrusted data and every query is audited. With hidden tags configured, an option on by default also hides the text of log messages.\n\n## You stay in control\n\n- **Per-user permissions.** The administrator turns the service on, chooses who may connect and grants each operation per user in a users × permissions matrix. Reading starts allowed; every write, move, delete, transfer, restore or share starts denied.\n- **Permissions by group.** The same permissions can be granted to native Nextcloud groups, with a preview of what changes before saving. Groups only grant: they never deny, and a choice made for a single user always wins over the groups. If the server's answer to a save cannot be read, the permission screens say the result could not be confirmed and show what is saved, instead of \"Saved\".\n- **A clear admin screen.** In *Access and permissions* each person has one level per module (None, Read, Edit or Full) and only real exceptions are marked; the actions for one person sit in a row menu, several people are changed from a selection bar, and the list of groups scrolls and filters on its own, so the page stays usable with many users and groups. It works on a phone.\n- **Back to group inheritance.** A permission set for one user can be handed back to the groups and the defaults, with a preview that shows the result before and after, cell by cell, and an \"Undo\" that brings the removed values back for 10 seconds. Nothing is written when the permissions changed in the meantime.\n- **Access inspector.** Administrators only, and it changes nothing: enter a user and see every operation as Allowed, Blocked or Unknown, which check blocks it, where the permission comes from (the user, named groups or the default) and whether the user is limited to some resources. It also explains one file path and one calendar or task list, including why an excluded path is excluded. When a check cannot be confirmed the answer is \"Unknown\", never \"Allowed\".\n- **Restricted to chosen resources.** In *Access and permissions*, the administrator narrows a user's MCP access to an explicit list of folders, event calendars and task lists, up to 200 per user and module, instead of everything the account has in Nextcloud. A folder, calendar or task list outside the list answers exactly like one that does not exist, is left out of listings and previews, and file references pointing to it (Talk and task attachments) are withheld as well. The restriction only ever narrows access, and changing it does not sign the user out; the restriction of a deleted account is removed only when both deletion events are processed outside another transaction and the policy revision was captured before the deletion; only restrictions saved at or before that revision are removed. Otherwise, or if the cleanup fails, the restriction stays, which only narrows access.\n- **Plan and confirmation.** A tool that changes something first returns a plan of exactly what it will do; nothing is written until the user approves it.\n- **Excluded from MCP access.** Files and folders carrying the system tags the administrator picks, and everything inside those folders, are invisible to the tools of this connector (the server log tools only while \"Hide the text of log messages\" is on). While at least one tag is configured, sharing, public links, copying or moving a folder to another directory are refused in MCP so that nothing hidden inside can be exposed indirectly — do those in the Nextcloud web interface; individual files and renaming a folder where it already is keep working. File references inside Talk attachments and task attachments are also left out when they point to an excluded file.\n- **The app never deletes a file.** There is no tool for it, and every edit keeps a backup; Nextcloud versioning applies as usual.\n- **Nextcloud permissions always apply.** The app never widens what a user can already do. A restriction by resource and an exclusion by system tag only narrow what a user reaches: they never add access. A guest of the Guests app keeps the restrictions of Guests on every request, with an app password, OAuth or a checkout link: only the apps allowed to guests, no hidden external storage, and sharing only within the guest's groups when other accounts are hidden.\n\n## Clients\n\nClaude (claude.ai and Claude Desktop), ChatGPT and Gemini CLI sign in with OAuth: the user logs into their own Nextcloud and clicks **Allow**. Other MCP clients can use an app password. In *Clients and connections*, the administrator can also register the self-hosted programs the organization runs itself, each with its own client ID and the exact address it comes back to, port included; turning one of them off or deleting it ends its sessions at once.\n\n## Requirements\n\nNextcloud 32–35 and PHP 8.2 or later. Deck and Talk are optional: their tools appear only when the app is enabled in a supported version."},"es":{"name":"MCP for Cloud","summary":"Servidor MCP para su Nextcloud: conecte Claude, ChatGPT y otros clientes de IA, con permisos por usuario y por grupo","description":"**MCP for Cloud** es una aplicación nativa que convierte su Nextcloud en un servidor Model Context Protocol (MCP). Los asistentes de IA trabajan con sus archivos, notas, calendarios, contactos, tareas, tableros de Deck y conversaciones de Talk a través de una sola dirección en su propio servidor: sin servicio adicional, sin Docker, sin copia de sus datos en otro lugar.\n\n## Lo que el asistente puede hacer\n\n- **Archivos**: listar, buscar por nombre o contenido, leer texto, PDF, DOCX y ODT, ver imágenes, listar y restaurar versiones; editar texto con diff y copia de seguridad verificada, crear archivos y carpetas, subir archivos, copiar, mover y reorganizar carpetas con deshacer; compartir con personas, grupos o mediante un enlace público.\n- **Notas**: listar, leer, buscar, crear, editar, mover y eliminar (solo cuando la papelera puede recuperarla).\n- **Calendario**: listar calendarios y eventos, crear, editar, mover, eliminar y transferir eventos por el CalDAV real, con participantes; las invitaciones solo se envían cuando se piden.\n- **Contactos**: buscar y leer contactos, crearlos y editarlos conservando todos los campos desconocidos del vCard.\n- **Tareas**: listar, leer, crear, editar, completar y eliminar tareas, con sus categorías.\n- **Deck**: tableros, listas y tarjetas, un seguimiento de las tarjetas que usted gestiona y la asignación de tarjetas.\n- **Talk**: leer conversaciones, responder, enviar un mensaje a un usuario, compartir o citar un archivo y crear conversaciones de grupo.\n- **Registro del servidor**: leer y analizar `nextcloud.log`, solo para administradores o para los grupos de TI que ellos elijan. Desactivado por defecto, solo lectura, IPs enmascaradas, la salida se trata como dato no confiable y cada consulta queda auditada. Con etiquetas de ocultación configuradas, una opción activada por defecto también esconde el texto de los mensajes del registro.\n\n## Usted tiene el control\n\n- **Permisos por usuario.** El administrador activa el servicio, elige quién puede conectarse y concede cada operación por usuario en una matriz de usuarios × permisos. La lectura empieza permitida; toda escritura, movimiento, eliminación, transferencia, restauración o uso compartido empieza denegado.\n- **Permisos por grupo.** Los mismos permisos pueden concederse a grupos nativos de Nextcloud, con una vista previa de lo que cambia antes de guardar. Los grupos solo conceden: nunca niegan, y una elección hecha para un solo usuario siempre gana a los grupos. Si la respuesta del servidor a un guardado no puede leerse, las pantallas de permisos avisan de que el resultado no pudo confirmarse y muestran lo guardado, en lugar de \"Guardado\".\n- **Una pantalla de administración clara.** En *Acceso y permisos* cada persona tiene un nivel por módulo (Ninguno, Leer, Editar o Total) y solo se marcan las excepciones reales; las acciones de una persona están en un menú de la fila, varias personas se cambian desde una barra de selección, y la lista de grupos se desplaza y filtra por sí sola, así que la página sigue siendo usable con muchos usuarios y grupos. Funciona en el móvil.\n- **De vuelta a la herencia de los grupos.** Un permiso definido para un usuario puede devolverse a los grupos y a los valores por defecto, con una vista previa que muestra el resultado antes y después, celda por celda, y un \"Deshacer\" que recupera los valores eliminados durante 10 segundos. No se escribe nada cuando los permisos cambiaron mientras tanto.\n- **Inspector de acceso.** Solo para administradores, y no cambia nada: indique un usuario y vea cada operación como Permitida, Bloqueada o Desconocida, qué comprobación la bloquea, de dónde viene el permiso (del usuario, de grupos con nombre o del valor por defecto) y si el usuario está restringido a algunos recursos. También explica una ruta de archivo y un calendario o lista de tareas, incluido por qué una ruta excluida está excluida. Cuando una comprobación no puede confirmarse, la respuesta es \"Desconocida\", nunca \"Permitida\".\n- **Restringido a los recursos elegidos.** En *Acceso y permisos*, el administrador restringe el acceso MCP de un usuario a una lista explícita de carpetas, calendarios de eventos y listas de tareas, hasta 200 por usuario y módulo, en lugar de todo lo que la cuenta tiene en Nextcloud. Una carpeta, calendario o lista de tareas fuera de la lista responde exactamente igual que uno que no existe, queda fuera de los listados y de las vistas previas, y las referencias de archivo que apuntan a él (adjuntos de Talk y de tareas) también se ocultan. La restricción por recurso solo puede estrechar el acceso y cambiarla no desconecta al usuario; la restricción de una cuenta eliminada solo se quita cuando ambos eventos de eliminación se procesan fuera de otra transacción y la revisión de la política se capturó antes de la eliminación; solo se quitan las restricciones guardadas hasta esa revisión. En los demás casos, o si falla la limpieza, la restricción se mantiene, lo que solo reduce el acceso.\n- **Plan y confirmación.** Una herramienta que cambia algo devuelve primero el plan exacto de lo que hará; nada se escribe hasta que el usuario lo aprueba.\n- **Excluidos del acceso MCP.** Los archivos y carpetas con las etiquetas del sistema que elija el administrador, y todo lo que esté dentro de esas carpetas, son invisibles para las herramientas de este conector (las herramientas del registro del servidor, solo con \"Ocultar el texto de los mensajes del registro\" activada). Mientras haya al menos una etiqueta configurada, compartir, crear un enlace público, copiar o mover una carpeta a otro directorio se rechaza en MCP, para que nada oculto dentro pueda exponerse indirectamente: haga esas operaciones en la interfaz web de Nextcloud; los archivos individuales y renombrar una carpeta dentro del mismo directorio siguen funcionando. Las referencias de archivo en adjuntos de Talk y en adjuntos de tareas también se omiten cuando apuntan a un archivo excluido.\n- **La aplicación nunca borra archivos.** No hay ninguna herramienta que elimine un archivo, y cada edición guarda una copia de seguridad; el control de versiones de Nextcloud funciona como siempre.\n- **Los permisos de Nextcloud siempre se aplican.** La aplicación nunca amplía lo que el usuario ya puede hacer. La restricción por recurso y la exclusión por etiqueta del sistema solo reducen lo que el usuario alcanza: nunca añaden acceso. Un invitado de la aplicación Guests conserva las restricciones de Guests en cada solicitud, con contraseña de aplicación, OAuth o enlace de checkout: solo las aplicaciones permitidas a los invitados, nada del almacenamiento externo oculto y compartir solo con sus propios grupos cuando las demás cuentas están ocultas.\n\n## Clientes\n\nClaude (claude.ai y Claude Desktop), ChatGPT y Gemini CLI inician sesión con OAuth: el usuario entra en su propio Nextcloud y pulsa **Permitir**. Otros clientes MCP pueden usar una contraseña de aplicación. En *Clientes y conexiones*, el administrador también puede registrar los programas autoalojados que ejecuta la propia organización, cada uno con su propio ID de cliente y la dirección exacta a la que vuelve, con el puerto incluido; desactivar o eliminar uno de ellos cierra sus sesiones de inmediato.\n\n## Requisitos\n\nNextcloud 32–35 y PHP 8.2 o superior. Deck y Talk son opcionales: sus herramientas solo aparecen con la aplicación activa en una versión compatible."}},"isFeatured":false,"authors":[{"name":"Jhonatan Jaworski","mail":"jhonatan@sintax.tech","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/jCCAuYCAhREMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTQ1MTQzWhcNMzcwMTEyMTQ1MTQzWjAOMQwwCgYD\nVQQDDANtY3AwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCd8PrkKxdb\nPW7WuNRQ6JeZcSQn3m8rZoqlQ5aYXm9u/1++whyBKe/IuHsAbg6WGpOMdIPUgTVg\nHNcwamlA8yW760Dgl+lqnYzqta7VrQxf8hbkD5fl97cjLj64VXPGLHIUZKlU1bOL\nvSgHCc2zmPIT5tOntEcbBkiCzQ2ZUXbkvZUZ/ZWTWZ6v/nbrfUKOoNRINYJ2iBzp\nmnZ3VgkDD4aq7weACXGTf/vjs9zgSDG/XhcceTdGyNxxM3UBRdTrMD5a3yh4buTJ\n8NltAJddifHmrjjubxchZqW1Cpftl0RGnYdNodhaLDNf5l4XptIQoOoLMy7rIHbL\n4bkCE5YhM/OsxpMjCD0uD6ElWbpXGtDQoVLWnKW44gDZ6SNgUm/JC5s6hk3FCS2t\nKM4ZJ/0HrGrF3Xp8ArcunsMXdupNXMLRxgjTcFDMeyT2GJzePsGt7/KWcRy2pFw1\nZcesvIQVGp824KIsaLhCOYWSeZ1Y3PJ9/rz/8TT3A/wezgX9R4gesaNISlnDbXhW\n+tTTM3gJLZ7ywJmI5z+VbHvcgZD7Ce4DmNytSozAYgJTtZ9R457LDeWJsfOhHVK5\nMPYStABfiGBMOW3AVu5cpAAsj4DfIpUuj7ELbGPxWSkHrqZxAgAX2blp7Dw1UpMY\nxJgJnimd8mdALWn56G2vxdYc7xc8kqZKpwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB\nAQCWAWNfpNFfnFxNeQF7kvyuVy/+NwA9WTd2wk3/TpSSOAVqAGIa0N13EfXt5h/C\n8DYUVcWuHA2nmqToVmNiW1Ce9+L2FHgXfNTrYmMPyrMHunsFgUbTOKgFJdUqmvT0\nyrDax6p42NLzYmNcfzFGGBLDxndTpVhaKkGceX5YK737UY1/qg+KJXBPppdH69ms\nkrfPjOXI8V2SlV8iBtoEc3YtH29rriWRpI2EvW2scFdTy4rzlR7Vz5nmwiYq4UGp\n2ZHkbvD2mEnOI+zO/T1FUbRWbJovdZ72Y9COeqTuVmOq4fyEQGZcbGocF9tRMptX\n1FcsC+qgTsKukdO7vzM7LgYU\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"twofactor_admin","categories":["security"],"userDocs":"https://nextcloud-twofactor-admin.readthedocs.io/en/latest/User%20Documentation/","adminDocs":"https://nextcloud-twofactor-admin.readthedocs.io/en/latest/Admin%20Documentation/","developerDocs":"","issueTracker":"https://github.com/ChristophWurst/twofactor_admin/issues","website":"","created":"2018-09-07T10:10:55.669084Z","lastModified":"2026-10-12T09:23:59.050371Z","releases":[{"version":"4.13.0-rc.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.13.0-rc.0/twofactor_admin-v4.13.0-rc.0.tar.gz","created":"2026-08-26T07:50:30.264274Z","licenses":["agpl"],"lastModified":"2026-08-26T07:50:30.287731Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EcNdhDkmlzDUTzkpTFSqwJI/XuowA1hqwM3euZc54jdyYdPq5M5W8iffA8mOH9MTNoS8t4WRRUVhWptJ2p69J+SQ4fRg3ecXp4MLu4JRcCqSvFaUTAkBicrt5cKuCYfP1c/irH6A18K8MKhKHyKEBdxVcTnONgFaHV2maT5mZNa+xxK0TXD6zgN6g3Pfz8uNQspWDY9yUG7cXg1tlSs9CLJdg5zWGbbcteSCgSoqr70Nd9V9atj/Tm6fhkYSor2z+dynccqzInVk2YCL/Gxjzv3it0xflin3jHjE+svMtRaCd81Tw/OZsdSECUfhZ1S0zv2E3+ST1W6qGmy8WoK9SaXUVb5XLlOB2jnZADEES4FNh2SHg/+av704kCyHyI9/NMeIcNK6ceVQW7zy9mV/JBWxJxrKiOf3LrUldQeTXpRa0wynoDxBJmWy8lmGIUujMLSmITij1i3NcCDqEN5y0u5MtFiRZWWV7km7QkwvfSy4xFH02/1jcgTQCQoskSkQgGCDMIoxbrnuMnRizIwI5NG/9eL20A892ApQRZ7j08AcKItXvKY4v0kmciGwY2IjPZGafHNJyaYJBWru0bIMSAJERQAoCjNILqNtZ6jSDI4ioY/Fvw2lHyhcjGfbCFZ4Y51gaBYBLRq9yyw3UHBfe3MpzIdidAZKzQMeFXPE17A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.13.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_admin/releases/download/v4.13.0/twofactor_admin-v4.13.0.tar.gz","created":"2026-10-12T09:23:59.046635Z","licenses":["agpl"],"lastModified":"2026-10-12T09:23:59.093221Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"m8E/IShUKqOobBhOWg/RPCobMpOFKyuAlYE0SEQK/lHhlNl7n+WDTJrb1e5zG5OU4pjtkWSnY6aIth1QvG5SEyobxaQnket+iothcWaH4DfZPiwx9q2yWNvLaLTOXSx7lLqXixwh7Tc2erTnledHa0ScZG3ezZYp3R33oGiLVTm6CfzbmDoDEEu0jJ+DwWXmNKh8xHY2+n5Rt9DROap00zows8aVWP6cAX4zG2aLVgBIEDW9NhlWdCidzomYJRkn5uEp7T5Fn5DeaZ1Wa+B7Pgr/0dLy/C1QyYWht/mit5o1dM1HXUHyI0UgWzzAy5rSfj1u5YIgoiEwV4LhEXtNkBEltK1Ud3e/J2XSeqWqBqIiORTbJIqNJH1c5lLb6zw9iGzF8AAWRf8aTNyRoglP0MDHsM88RaA3UPCGg6f1yClV4luUQKKBdQPuO+kYqhqglWNcAYa5IZi7c6IrwP58ypY9G78IiLxYzIE5j2QVd3rzcPx/trWUFEkVqxeujWw26mIVFkk7MA9vVngzcRWodSL8Pc7VSoT3IXBlha7LnXq1xFHku6rgx6MQz0nuiveW7Dpg/hi40PTEER9JN5cCTlh0O4iyYMItSuhYr0ol+QvGwmujLgRng60IOM4UPpqrpZUmW/4fvoO+Avk9kzCt2QB8ivyCWOgQPqRzCmZnr48=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Two-Factor Admin Support","summary":"Nextcloud Two-Factor Authentication Admin Support Provider","description":"This two-factor auth (2FA) provider for Nextcloud allows admins to generate a one-time\n\t\tcode for users to log into a 2FA protected account. This is helpful in situations where\n\t\tusers have lost access to their other 2FA methods or mandatory 2FA without any previously\n\t\tenabled 2FA provider."}},"isFeatured":false,"authors":[{"name":"Christoph Wurst","mail":"","homepage":""},{"name":"Nextcloud Two-Factor Authentication Working Group","mail":"","homepage":"https://github.com/nextcloud/wg-two-factor-authentication"},{"name":"Benjamin Gaussorgues","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6666666666666666,"ratingNumRecent":0,"ratingNumOverall":6,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhC4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwOTA3MDg0ODM4WhcNMjgxMjEzMDg0ODM4WjAaMRgwFgYD\nVQQDDA90d29mYWN0b3JfYWRtaW4wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC7ofAgKlj8mfAlOuhEO3d1J5u1X/YDMANnMIOWt60cfUTVUdiBX+LuhrZL\n72OO27p9i18jnd4qvqPZ7GrMskb14nQrf4LfPeyj9Q7kmUrae0OlSJwohG6MNPps\nLmAX0eltNYioufCLPPvJ1bhGNtjoWcjHx70+1vnE350zrFKErHXil5mnqThIMzI7\nbX1gdwwH5FfEGRYo8+bMzcca0Svt15fi4LCQDMXc/g+1+521175OlbJjRM/ic1eN\n9wfL9WjHD0XjbZ8Y0PhlPsv48MeQa9ulOHx91PeoZXnJl7W9HfOrCr4Q5MrFyfbA\nsMvjIWpZGNcsYkmX0YZDb5r0AQ65dlyJYA+dsi7gx91j20aY/SdLyflQpbHaSlDY\nU2uH7jd5gVXAz841evHY/LJ6of3tT1/lviU2ufzPzp5q3iOxf6h9i34VR1+OawnQ\nwCvFK3N/qcyOIjlCRb55Y3w9xGqtys9glf80NAknh7TFVZ4wiAMB6Fr28BWrY+MR\nMwU0MU26sNQnO+WLPFSFHpECoL98gL+ditxcv9AgZGdEV9XVKe1pl4tgnik0gYhV\nJy14azgSnnb02dUeRepoUwGZz1eWXhPEHD6FFCVOQMWEPXXDWmop8x1M6VbFgZ9D\nsQw3iN+6u5bsIIIjdleEa/XStJqdnuSGjtrJ80ocBsnkIsTvgQIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBj7KzoYYm5XOp6i5upQkK9l/vxyz6KVsBBlostwet7qYYH\nmdlT5yTNi3735CNAzfqTun20G/rkMmDo/Q5CD7qj0AYQ1dWlUSJZNkawfVQuraGp\nPGJv1erIdG0YYYCN0ODArYAmff7Ak5EFrcoKPGugHJCYXpRykj86HQB/6rsXVpbM\nQWCov/k7G1RoYUbnAfz2jDtLJVMvWUSAMxSfWWTF2UDEOBBFkF1sawU/K7o/Bwfr\n1Ra5otlulCE6SItRhVLfmjad090jkHg1gaVohV5vvsqU0SSdxmGwcti9N6J4k/Rr\ng40BEpiVOeISmo4cjznT/2wJEnQtccq5jki7GQiV\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"gestion","categories":["office","organization"],"userDocs":"https://baimard.github.io/gestion/","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/baimard/gestion/issues","website":"https://github.com/baimard/gestion","created":"2021-07-16T09:25:16.616573Z","lastModified":"2026-09-14T12:50:16.488099Z","releases":[{"version":"3.3.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.7/gestion-3.3.7.tar.gz","created":"2026-09-14T12:50:16.403207Z","licenses":["agpl"],"lastModified":"2026-09-14T12:50:16.543471Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"eQLArn0uO6iqFXXy9p1Nxs3g5baS77BZxleyW+DkZbsdx05PwM231ubB9GFOvOZ+uJHd43NoCV5tXmbz35c0r+bk0ZrkiwD3bRkS8RbB9Hu0VStHfNWXHwrLS2yCLdALk72zp3wqRe1NPRq8S5HZ6Bugg5ghMuISHpLbM31PoOJOc7KwzjRgOlUpR3uFh0H7wy/mTY0gUMUeUV5bUsSs3ktxW4BrPoTSb+f5VV6oBvxRFHTSWOvfAViibMOHvNikkX1yzXNJ/umaZUyctu87qHk8s+FkizMN9+AQ6XAFP5Bk6eqyiX9l4mjdKY5nYFCEY+GnD5WxmlA03rxUXcQekS8NUIM1LVXXGWyJ3TXiduGy+nkfmNwm8ZWZ4QE1dzMsd/FglKCT9vDkm591dcqXHKtkdMwl208H60J++p0PXKSiKfVuG9bTzqHuXFXPZ8BxL4U7PTkBKhHUTLwQVlSjTbxQWjTUeB2Ar8J+cG1uYe4S1kbtWb7uIEjse8tgGJVFUOtDJI1Q9LqLgho7hOorWhW1TFtWhtf6LNzBCsPqGoRUGXVrdIaT+1sVfmyXHoM9P8FRQ3YCSrRNL6H37eJSUYYqVOA7RGsqDfuDZkRgnMc9NHhyym6gMs8nO/iNmbSth/LgkU1thwYm2wXXBoZZiHT1N/TBM77DFIIgCpjejoE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.6/gestion-3.3.6.tar.gz","created":"2026-08-28T14:59:10.731260Z","licenses":["agpl"],"lastModified":"2026-08-28T14:59:10.871338Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"Bmo5DwZrnHVeV094aQcFf9v58ZGxQ7Y7tz5OGBtd98EQjxE/KrEcn/qDVNqAcVlZPtqlpAaH4oEUx5OU2Z3EeZnFdMcDH/vIym2lORX1bClvIXBBN1VaOFgZUzRE1EXsgfw5NrSRowmO1h5Sb+TgE+3oSoempV+Fcha+eCVhZRx4gEMcupaB7Rs1w7MOrRX9sYsonT3DP+JE6M17SGBhZc54Sw7+yrFevxmqfxCeyl18IhdogxcqklvPIqYD0i8AOO9xTJc0/nzzEtc4am4Q2VpqZERqacUOR8cwZsTiYRe8x97L4Ky0g61/Mtx23TpoJ6uavBodMmSIbyzT3UR7MXWKiDXJYF9OlKCbYZx2bjtEHCdPl4Q/OdUPyIn43QxlvgD5ig1npuEfaIA+5I4C8gysZ8DeqBAKmdoORa8w9we0mZ4O/jpzPq6jJU8eXiwOOh/VLqxEgnRqzism8flPl1BvG8xKXdOrjZmW7/teQh1a8RQ95iQ0RoCiDopMubXexzRu6ZV1ehZ75awDNuzFRpWcfsHWiiruBu7sV+z6my7me88YqBX16iAgivMPoA92HgsWFKCHOLrYsKf2/wS6KBI64xqN3gOFV6EFwMpJM+hhlwPlfLTldSn2QANpLWS7p0G2tUqd2M1E2iUrD7ZOANDusjeG8AQWvE9ZT7rXzWo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.5/gestion-3.3.5.tar.gz","created":"2026-08-28T13:32:31.758810Z","licenses":["agpl"],"lastModified":"2026-08-28T13:32:31.923373Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"DptOb4CR/0b2UW8KMr638UtGs89g7OFBZYh537SRjOCUS3Fni/PsrEmztO6Y+IbFUT6AF+wYGxzV/p4sT7WJpwyEE/KFTTPxnG5Wbo+O14ypB7FgkvyAYCdB5mpkZd+cbnaHPbos118f7AcrYmB8RXlZhiP9nppxFyWoRh3bM861O9KoiWlxqjuKFfajh4X99oYK0TZzYrpwEbmmrIJdOPT85yK6qp8RE8zVMJWoUqq585lLYNjMU+K7Hj4KcIvKJq1ldNqawU6GMPTtw474MCQxisVtetW4sVTg0golwBurQjICnZLTrZHYBzIMoSI4ctMDKOjcoSUeOPCoyw4TA0HxN8wmzsLK2ja5BWWePmBgM1D8MOTBnsEeS9OxKfDMqfwA8Q4TWlqSJlfHpO+ym2nKXcY5q52Ck+foi0zZl+7j7nr4yGKUbQgec1cvSqC0qXUuWosQuCUurcV/bKyl5boEI49nTnaeNxwlLK238kqwzw3GWpX21g1J+e4A+bPKew/7XOgCOPfFTyCBuOOJbdzFQ9xg53PlUL8QO5fLsJIwfHRPQwDQ+O0CqGmS/rjkIfuyzTJxJ+V+kUF+idL/0HH6efzLE4yiPZayajvtAOIyMRncMMk2c64OBUY8RZNoLbi7a1SdEKLmEdaId3GUkyWzRYbUCXeLlniwYnJ+DvU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.4/gestion-3.3.4.tar.gz","created":"2026-08-26T13:24:47.890118Z","licenses":["agpl"],"lastModified":"2026-08-26T13:24:48.018191Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"tKsg411t9LJcH2mffJ360vNvI/gMTuf925nbx+cjUMW+QuhYfGmwP/YM9g5btb24lmtrYSqreYmgwkS6qO+LBwA3/5bzv2IJqNbjoDTiDSN+rV+3EGij7YuikP4A0jEr+vqvDIwEdc1zx5DLdtF1igBrXLfzDSXPLjCVT9ZKKSkqGVq5VXwlslmuVNGi4T0t/NUViQKeDVcE7lZMQ17Y6rOEDlwTxWAVo0rCs07Lde1sHh21N8Zn5SOYwPXY+/5Be6OvB+44HmlnEbLRd7UMrLs+IY7j6yBghx4lhPxQgSc/52EmberQMIQiwoC4P5MY7ra9RYXfruS7sJ9G5cDtMqCS2YmnZVglGRFWq13FxBNSEQFo41zBDlLl+qrExd7bxa3Q8KKne1u625aEafB7RyXXOloRWTfGG5Uhr0cUmeViXsBv4Ayjz+0tkQO2EDlnzC0cvW6i81Yk3tUyqyuc8PIRbbtmZKhusosVOklVOCvtE8UnlNRtOXz6w6u8Gejya90Dr56O4oVYFMg4uxK183udeEs0ALHhJMakr3tF4GqNotlgCqJ8wIUovKUwFu7Y/7S8UVYUE5/z1c+c5Naxbcw7U4bpR/b5iA6dWC0aoCGPu/mFQANw6qhH8UiKZaJ0BrgBqiy2SG3fZD3Z3TtMJoMUATievgwwV3JU7awnjGA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.3/gestion-3.3.3.tar.gz","created":"2026-08-25T11:30:52.303568Z","licenses":["agpl"],"lastModified":"2026-08-25T11:30:52.443211Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"KloBqe0qGL1jgrNBJzoEHNKiZiqW7l1TdyrOMm/WC/EUs1ou75WhiIahaaJejPm+kav0Bdg0cWHY6SakygYNot6BbXO3VlyvnECUZJgxdhWS5dKMRhlCvyuT3YgLi4PuJf4Odl/uolv9h64TcvFEmOy3ZHZpBuHhRDbhS6T4gNfJKNYLnorOdh08fQBcJrjNLk8pUWde/hL17WaX3VZARBp9yjBnqt0IBvkZ3JiDgHTRTvPf7Kt8gx7/UFWFUqt1gszCsDlzIJlTbtLpsWqd70tFvYomV6PUbCoHmXit4q7pmP36UBKpCNDaEoBnPOgDePM4DqElM24R7I2Svw68CUtL03yCol14zJAGjyXlhoE+D+9Lz5HQPxXZgzPI2zd8KArt8U2fqquLrnMOvb7YonKftnltksbdihS+HJq1k8EiZ4lVI4Nwmxz+RWm+4SYFKvTQh+hhglVp5s70gQz1H1KaYvVq/3JJ31CH9HZFN/kz+ZP3+jHLUmVowZYJ+atrJxUBwCYZ/UCqwI2AzwKWbuRU5F28RPT6lfYOy55/uDKtpiWO/2qb22ynr1PgtIHmkyCd7KR4tw69esMemkECFmF5MPxDyRdlVARJOC5sx3yGGS9WmEthowJSqE0DMK4H5jIb/5Qe0X4A6/0Xwxjk04E5yQGhV6W4s/UNyLiQDu0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.2/gestion-3.3.2.tar.gz","created":"2026-08-25T08:18:50.725696Z","licenses":["agpl"],"lastModified":"2026-08-25T08:18:50.905886Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"G/CGjJBCyDy0x9wGuKWLOec5/ql9rtSXQyfNsSN7KIkZ6rrhhFRfRNx3eoQXQYJLXDBqvUNRdN8BprQoxN+Dl90ibIdGczxn57KdnoZeXLYV28vZI6+cZsb6/aK0EP9qE83uV5kZ+nQE7Z40V3iyiqQx/shA9oG+ROHPEKeaaJ2z7Nxu29WE5FAqr84ClymxmlmWfgJAux9g+FtJnyeUXCRWgAIva+SYFegudnNCusn44/3WZrT9GN36gvlSTqM96AHBLW5Ibvm65niAU5Y15yrlWd8J576+KClE+SiE93Rg547tHXktXK/ECSlt2nZv6lzkNr/x5Yf8uO1EdyO91IplpEa5KHLoermu050EBwcoUF7CR/4AiUO9j1+udAKWvwnqZCUptHXZ879bCfuFlp5ORTG7mpFmYGSCLRHOmkMfMecV2p3yX1URXo1WLtVub1ZTaLG0vPmBONWC2L0Kt4bNtIPotH9hWQbiC+hABBZ/7SyQi0zlIdbQs/uMRSXD9Rn7vgwwkefwDpnbVDzlOgLb9/9VRmP0SloSuH4YFRzkldQ9qdz6LnMDgE8+71QEXwEOr3slKWF/R+kX8vQ0wCnaAzBxbAtYtBb1Wk5h7EckGo+4jzGWZrNMD+8YBFOHLXHuhs1BhhkoxzWp2LvofSj3TPimCi/x8YltJ22Y/NE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.3.1/gestion-3.3.1.tar.gz","created":"2026-08-10T15:11:13.677149Z","licenses":["agpl"],"lastModified":"2026-08-10T15:11:13.797345Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"BC2JrIgslpYH2GmhD5VYCvLm9VFT6xDT1IUXksETQ9mJznitR+DrpN8uxlJUnyX7xzRG8tqTje/F3eMgj3Vl46RzCLNSqJMYgR0yQlgGOLkDmC7CQc/W21ad/VJrAUboAuccFC3GD46dBJ6Mx5CmpB3x8FrD23FT6GXDwcwXIiyzGuz8SiZUS+xI16G+j/rBkBz2aSPvlXZXUB94XSyFaNtUJxgKzQLnAW+QAyy2KqLHztPXkP7XyMvD5342k/IkWyr7pVjCASUHr87P3yleJLTFrP3WuOcu2ZRpsnnWlXXWLsq8D+BVxRJqUW1fWYFTMwH/W8YlzQ43YzFQj3KFJV8BKYuWqY1UBGhVrkOCgnkq7amsxEfIZiGlvyy4/EO26ritz7hr0hJGNwiL+vaYG3Zb1syJNUNyr34Xq+u5lo3xiEQux406cuT3SU50emFunCHuuTzmZEaomXIlrekbBUz+nOhSrW8Sm5Ngk9DcukPauMschcY2evG/acCoMcYX6AmwFNHjKQpJFTy6/hHPgHhYc/iVkbyy0zfvGla4mNrwAZOeLBa/gY58mBH2xi5nY+jyuZWGpKQfSIU1y3OH3vomVo4mWmkR2LkjK3WXz4XE1BwZPJO9dgdobKR6a1yUhDh/f4BmFkZxxiGCfRrlg+2Wg1ISnWGaK4/znw+2dhM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.2.9/gestion-3.2.9.tar.gz","created":"2026-08-07T04:52:09.640360Z","licenses":["agpl"],"lastModified":"2026-08-07T04:52:09.763220Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"Fc4g1cfNC6Msg0pEfAmwjwd3MFL8P+lHFIzc6U77OJn7RtOSDWRQ4+9FxrnbnFfurRSBlBLhCCB50Nbr0VQmZf4FMKXCBdql9F75olTmbc54z5JbHdqCpg3Zpl3oZBr89lt0jd87nonGpiwplO4CiL/VKDKwwndEPy+ovIGkrSn+iIumgya7iIaGIGUaqjed6cuR1/56IvA20RJHnlAAqzhUpcpSICtyFBSwxlA7fnT9rMsRBEc+RVNBhBxPCIDGIIrB+NsB1mSXLWr4T28PgwxO0lv0e4JPCbpaZka51Mrd53IZXIEYBHEXz6niKBd9P+b4LcZmT2NUaKUa9hSzZGjQ7VgEWdXKMgx7qP4a2fmBgRdGWDSwBhNpsM2uy2oTH8kmmYd6VJ9g/ApbKYanfgiD9a/ItJnqXgm9LEEtrJjrIIXnRMsmKBj8OMBi/0YNtErZbNz5uYEOcWWUe8Hf1wluihyMFuV/YN1xPlzS1Cj5mf24UuLOfU03hDuJOIPJ573kjaQk01ZudHgvAwYucIe749uDeBZq0pqJAUp3gRl+ylOyBer2+CIO/6jZJ2H9iSQvz12qwhGFAVdwSzuvlkfDN22b8gPuKBxJCvJe7nYdT9ZmoUUlmZYfDb4iZNJTfFYa97SW1vt7/ItivyJ1rCbuxoOLL7eh8Qx5W8luEi4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.2.7/gestion-3.2.7.tar.gz","created":"2026-08-06T17:43:33.894308Z","licenses":["agpl"],"lastModified":"2026-08-06T17:43:34.036579Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"EBybAKBc6o85/BQpfzUK7IF2N6TF7iJWuSsFAMgi26XGZmk6/U4s6K789Y83b3u0JswBEcmM8CYCLWquYk2WHtfzaCsl6OrkP/0L6qvS1H53WW1UOiJvyconecPyYluh1RtOabY6XmBjSU4KPR4BLt8xhgK3CdtNKikP/sq16SQNRsdntd+PXTe+UloVa7TkIHVJEs0j5T0Oa0zpWg5RjvVEMTDArd31i/7vBLhKfAzbK+mJ0D2hZizB5JYKHe+kXk1IbtoJQCS7z9m2AAwqLvWgKtH5BE3dEhuAd6HZXgZB2k0bf5hA+6tdj57Gt23nqQDlpOwpbYpX3ij0IeNkq4YGPQU8J6qtblQogcZh+/QTnwuzu4vmF2sR0svJFzpzojL0KvfvGVsc1EwGzNXwBSCE0+pW5cGO4+eG9WXdYaya7/4GelIkdwssOyBaQKImzychThrKHjuCUHFxw//7RTqFJcR/Xz6nJ425g/ceg7Uwpnr8F2a2lkuQNLc2KfBww7sSQ2grMlMZ0Cb/lBCZfJXaOX70mId5v7Ac+UJYQTOhxkPX9jlp96nB0aTL4DHX/nk/opyikQEWMzsNZXqZDQkSIfRQvsjrWxmpyEPM346v59XuRAx1HvZTItw4I8Mmj6XmeZF+HVfkB0BUVLNGJkLRgKnOoX4OUevI5Dnw92Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.2.5/gestion-3.2.5.tar.gz","created":"2026-08-05T08:58:50.629285Z","licenses":["agpl"],"lastModified":"2026-08-05T08:58:50.792976Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"poA4MfrtdGsgyDSPvfxc6XRFvNG6QayDH2tMQ3vaqpp8fPJoqle41yfb9Z/45F223rMqjoKZQAtVVmJc2Si1+b3DClw7c1/e89tLtYCFrblzT61Bl2WoPzwJokjZ3ZSvqeLR1On4C74d7ZpQ66xRcE3N/sI4Cqlz2vUTGy7G4gzInb6GyiK7/8tYNTRRu8doClaekTHKDd4u0TZrG4+NDWgFoQbN41cmMcytHQ7WSJzyS7RbNL1dv3RAXcFI02QDHspCiJeHPPkHjzX/anpydwgjUtoI6X4SStwDcCuBeQXfdI5jWxFp2M1p6VYg7nwaX/QWfQVZgqY9no8/Gziif/6G9K0RPAPSEr3Qhn0TnsizRLaTX/DQZQEris6xF0gJXmzak4Nwrwo3IUSv7M9c6kEhKn2UAUJEQvw/AvBobDQAquUlxg3iNlfxwHL52pTjGFshrdteQf7J5c4rE9I5Ro/EpUUDvKQgR73sdmTautbLzZzqFKuNoI6T73MN+nfimC2Z6lVfO/pZHJL2o2mJPZWJfpGum2e3Bf0myoX7UNtllGKDSlNJeFCo1+pzGg0sFMLtr235vl4dRZGz9YXLiqJoFRbQzpQYCoypKrPlV9mXyhmOO/smrmVPHKkfwDaA8mXSaLcn63NZzZbRxsIdEWE2P/QmqngV22+eK6lbzb0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.2.2/gestion-3.2.2.tar.gz","created":"2026-08-04T20:13:15.724571Z","licenses":["agpl"],"lastModified":"2026-08-04T20:13:15.852128Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"Jisg6vJXdbb40B2yqlAI/iBQDtlCm35696Vk7aWqKRd6crnM/Hmssbqhyxer4xeohwxfHo8GFerX9hC6aUS9T08ljIH+vzYsai7c+cXXQtTJM6yz7LZtlSJ6pVm+UrJIm4r/3hcYe3vrDfmV04eWrnwesSk5qY+RlZA/oop0cN+nzeMLF4++LNIzteS8g5a8Awv5cQ9P5UGiEfaozi1BgnsUF2d8ZnC5SaSV4MvXI5vQ1GsO+J6RO5mtB7lgXBT+1cnlmzGIV1I4o4MJ7ZF2AfhkQ0PzhwomzLHMqhIQ7NCG9H/rS78X/hrcqG/sISqW8eFfa6OfHi7LOeYs7EAhfznSOpaWeU0GozVaP/z5dGKVStqug2iua1yeP+P4hyzOwFBAOvOTLXVj5XptlYJKGHUuvRovtuX1wupgGHonTjrIsIxDClNM5by5dmHWGmwWTxl+PbzCPjH/rc9Dlf6uTeu5DH/ZuMaJisgs7e7J/yY63BV7ZJj64zX+PZLJCoHnQqW15fyOKy3X6di06fX2/j2tpxI+/4gdFGSBxTRpJMDamKlEcyKiz5i/bhju/qcA/RcmsSikaHVWckEnrPDLJmpD5i7fVejgRFUrO3/HTgYPSw0pAglT2UO7Lu+mMtiFIC7BxEat/JB6Dt1DFvizgfZy+Wg9+zGWeae4dL1xCW4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/baimard/gestion/releases/download/3.2.10/gestion-3.2.10.tar.gz","created":"2026-08-07T11:56:21.016497Z","licenses":["agpl"],"lastModified":"2026-08-07T11:56:21.139314Z","isNightly":false,"rawPhpVersionSpec":">=8","rawPlatformVersionSpec":">=32 <=35","signature":"WKsra0cC1Xy3ZeXE6m/YGUHAmUGp38SvYf0gBUZMxbrojumtnCGZ4E72Oc7hPMH07EUtkt07hLPNu9tvUfT2brjN9+J4kLsZloXNei4jNKjk81NL0QZALZHrRWKAALjhfR+y+t6zO8liRrh1nsu6oBUBV7gMBAJrfww+pxJQW2oDQfS9ujgHgK+tBfldvr0qRiQvpikPSddWmOfbCyeBpx31yuTbrHZRp9AXXRH0kUu/2ggP9eoLOJIfCCpWMHI66O4xUJvtwpFfFlzILID76Ogr7E7RzatDhAAZaSOD6dOkxxvABIA/hm1dztUoRbcpC3VWbJ0ChSpqPdzxZUond1OVv5kS+BzgBs9ljGVzetsvRacWHzXaCsIoqEj5Hx6hwi1px4GwxZW+PcZpGcmMpb25yZQoXIVlyeTjvSiCzvaf+ES4kZuVgqTXur9+1ODMUydMm0m6JSBWvxO06pMSU/HyPAQw/fU4UQPYkzZm1ujgP/j7rkqR3VSwvx5vJJIs4c2OpISU7TM/De009G3AQxs0ZyqTp/UCl2KAHTf3MdozaiCX3w5eJD7qDnNZVOTHT24/QdvzZO2tMUi75bijLX6qqbN7kiH2oQwU7091X7S8Eh7Yj//PVzpGxf5w15Y8cpoazcht3R79TepkyKZ55TCQlnGGEkn5U6eGF85qvyQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvYWJvdXQucG5n","smallThumbnail":"https://raw.githubusercontent.com/baimard/gestion/master/tests/Unit/Panther/screens/index.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvY29uZmlnLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvZGV2aXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvZmFjdHVyZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvcHJvZHVpdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvc2VsZWN0Rm9sZGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JhaW1hcmQvZ2VzdGlvbi9tYXN0ZXIvdGVzdHMvVW5pdC9QYW50aGVyL3NjcmVlbnMvc3RhdGlzdGlxdWUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Gestion","summary":"Simplified invoicing and electronic billing for small businesses","description":"# Run your business with Gestion\nGestion is a Nextcloud application designed to make invoicing simple, secure, and efficient for freelancers, micro-enterprises, and small businesses.\n\nKey Features:\n* Add and manage customer profiles\n* Create and customize product entries\n* Generate professional quotes and invoices in PDF format\n* Generate electronic invoices in the Factur-X format\n* Send PDFs directly by email from the application\n* Store generated documents securely within your Nextcloud instance\n* Track your business activities more efficiently\n\n✨ Electronic invoicing is supported in France. Gestion can generate Factur-X invoices that combine a human-readable PDF with structured electronic invoice data.\n\nFactur-X files can always be generated and downloaded without using an external platform. Each company can also select and configure a compatible approved electronic invoicing platform.\n\nThe PDF generation system has also been redesigned to improve document layout, styling, and compatibility.\n\nGestion integrates seamlessly with the Nextcloud ecosystem and keeps your business data under your control.\n\nIf you require adaptations to comply with your country's regulations, please open an issue on the GitHub repository.\n\n[![Donate](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-yellow.svg)](https://www.buymeacoffee.com/benjaminaimard)"}},"isFeatured":false,"authors":[{"name":"Benjamin AIMARD","mail":"benjamin@cybercorp.fr","homepage":"https://github.com/baimard"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhGPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNzE1MTkxMzA3WhcNMzExMDIxMTkxMzA3WjASMRAwDgYD\nVQQDDAdnZXN0aW9uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtgAP\nVN1zyJGhCknr+R83zAvpgygjqE19mD/Azf/zqO0DspFEF3goTNd065fwW0OgAJJd\nSrBx93kbhpwZ/7FR24PkBk8k598u5UBesSKKUaEu+xaf0wtOn3A8XaQOpcbqtgfp\n88vKzYwQL+psJxpMCyNheO526zzcUYG3WHp4JieYKJTNGnHf6KJbcreyeaAFDEWl\n5z9d78UekrmSi/GDuvVBFM3DgQHRUrf9GRPP+a+yfenqiFt1vbz1T8EH5aAKwXgc\nfCjDm7OOth+7EDe9Hu9y/aqqhCORvbr8K9/PNHrXL5br6SrhAIOZuTolZwZ7/Yoy\n7vjG/YPXrNmTqyMAZdQlOmVdAf55VISg+OXpM/Z8eS7kEzKj+X29wEVRjMdiILrr\ns4wT/4v02gaj8/4I41nhhN+EUf1jGpibQK805STyDCZgRBZhat7eIparK0o/PiCk\nUzxhT/roQNA90BCACcYiKzKRyfkQv/2Vc3XMP0OMBrQbXqxcN0uanktHCFvpw3+/\ny3jhpMD/QeNmb6Tlytx7KriKkD0ccLJkTCv7Wn/6NvvFy9Na+CkphEs1J8VN4QNv\nzTK/OWP5Q73hFqSpri58dHKcFmoSydTY0vIo8gNUZraFAFizgEpcOtTI7rlwhawz\nsPAS1Ttoz3L5e+M6D3x4tNnzAjre849J5EbceWECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAgacezA2HWu2PBOvGMDFcOZ+BE3RmqbhTpmHET4gQoSUfG6ekV6vo+hwo\nojXuTfdunUYyj7JFcCk8Y+4GzzMvKQnwsvwo0RtcxFRQV/BbBFBNyt2HTZ57tSO1\nRxXI+k60ibe2YETqOrCT0OSjQOTnyX900x4kGkZCpxM9YqWAB8F0yFpe5Yc8UlHZ\njCJo+bR/QBBjZMEan//AB8iso2NUw1t1Lo5oU6wltqmF2wV9R2rM2gH7hcOqbIQx\nKhcDNVnumJyu3SthgkyNvPs3SeLK4dX4gP2llhvQMv3JsdB2om6pligk5mzCxfQo\nqmH31KOB7XrCBO8OVVEaH71fxdnAlw==\n-----END CERTIFICATE-----","discussion":"https://github.com/baimard/gestion/discussions"},{"id":"invite_registration","categories":["security","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rvrrvgg/invite-registration/issues","website":"https://github.com/rvrrvgg/invite-registration","created":"2026-09-25T09:10:17.238475Z","lastModified":"2026-09-25T09:19:51.628285Z","releases":[{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rvrrvgg/invite-registration/releases/download/v1.3.2/invite_registration.tar.gz","created":"2026-09-25T09:19:51.621833Z","licenses":["agpl"],"lastModified":"2026-09-25T09:19:51.690108Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"CNm1+b4LRYULwe4kyM9e/3mvTkjytCdB/eZpcWhxEGFygVymJ+dg6wmqMa/N6/b36HVPHhfTuCd3P+EN+xLUkFp9BG65xB0wjgKqQQfrFey2vsU0yrfnbWyW0mpq2AY45qqEZ9TuyPWYi97StvjeUjbbGhsvNc+CbrdPWtKTkJdystRg7R+zJObZ4k7ZL/QTggnKunwISFhbLyl7pprtRDLAvd1xfykYG7LzDg0rB27C1boy6yLl5WHUXGR6YXi2sRVYWfv9CpLCXiBW6CL1FKlmbYfIDMUl533VeId829ZnTOcw+2JObY0tA4/owTtT8RHM/NhNcU1P/XKAUO3FbwVL4z+qSlhenDfdL/NceCJB0niQe0QhdCWM6xBSXRr13selHk/hbYMAN8ZzUQ2F584eYSdVcqOy2BxMIdmZuEwjFyU4vPtdnc35h+i4G1waISz0qTnLhZM5+jJBRJueYvTG8cjR13cun/8oNzQ9/AYHYTxtdDPm8gAeukuvB7Ida0L50WUE7vaKPEgE90LNzDw5amw0rLsCoIWQ1GqrRhmdL5Hav5dbT713YHSilYd+V/NS28VAXLldEY8UrSgayHQrQ4Sy20v01SZ9r1KENJ/WJiJA5HnHDet/e312AY4rWC7XxSSmoCCa6UkUOFMsASR6KZKV501xMSVGYAzdK0E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rvrrvgg/invite-registration/releases/download/v1.3.1/invite_registration.tar.gz","created":"2026-09-25T09:11:38.617079Z","licenses":["agpl"],"lastModified":"2026-09-25T09:16:42.937599Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"rBPwEFhmblEccrUxkR2CuN3w4U6Z5uQskocTc20U9zLK/SuIKKPzeT34QMFdk0RWA/Di/M0+eUubjAcvj8z/jX1Pgkk3ULClhpIKab9q+nd1i0AtGRHgKqLt2PoXilUu2epBGIB3hSlw8/Baa9kSEZZShA3uR57rusTi4GdNxJmrLghIbWeijw9brOFJMgDvUg0u0iXXq5ZP9MA4lPyQjr9BpKuu2JZDto1SwStiIETVSBHSMiQb1ZzSR/OsOaFSGQyoAJtBdGUHRrtuIpek4CH7Hi4RzhI1UTrf23sutfejeHUXHr9lXE/AoIQ0OKX2zX0eT7xdgrr49O1VXGDTOb6ZRSxTXTJ3jmF7wy0jrbvKIkOFO0Urb4mq0mD+SG4g61AZyexzHtahbUBxD804rL1Kd1KUoGZ1p7+Z0BseBxjCOxQoe9n8HNEJDz+tq2TmI5ZciVbhnlvxAW+HTfyr5ougx3MKHm0T+yiuYcLDkjLFsiZHRZuBpssjPJ8uAnORaz6SZ31OIFyid8tyNYOr2x9CuxL5QCf08Cf15WwgNusRxOQR8tfIEcemK+ZCOK2o+v0MyEdY0qFGK5qyU22CC3wKas/BJb9LS5VFEK9pEo4hFiRhoA+tlW6+s7bYdxuMfvcubAfck+Iom/7sFuaufEn5XasmaF8dqU55gP5Hv10=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3J2cnJ2Z2cvaW52aXRlLXJlZ2lzdHJhdGlvbi9tYWluL2ltZy9zY3JlZW5zaG90LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Invite Registration","summary":"Invite-only user registration for Nextcloud","description":"Invite Registration lets administrators create personal, cryptographically random\ninvitation links. New Nextcloud user accounts can only be created by opening a valid\ninvitation link — there is no public self-service registration button.\n\nThis app works together with the Circles (Teams) app and requires it: every\ninvitation link is tied to a team, and the new user is added to that team on\nregistration.\n\nFeatures:\n- Admin-generated invitation links with configurable expiry and usage limits\n- One-time or multi-use links\n- Revoke links at any time\n- Email verification: accounts are activated only after the user confirms their email\n- Per-link team assignment: the new user joins the chosen team (Circle)\n- Creates normal Nextcloud accounts (not guests) via the native user manager\n- Passwords are never stored by the app; they are passed straight to Nextcloud\n- No token enumeration: invalid, expired, revoked and exhausted links show a generic error\n\nRequires the Circles app: https://apps.nextcloud.com/apps/circles"}},"isFeatured":false,"authors":[{"name":"Techhelp Support","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhQoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTEyNTIzWhcNMzYxMjMwMTEyNTIzWjAeMRwwGgYD\nVQQDDBNpbnZpdGVfcmVnaXN0cmF0aW9uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEAwIO4gU8lokW5+HYMFIIrAMuVjLNQ0GZxcalDarhlwc55EAMotLeM\nISaKg3ibomxEQi1nyHodmQfUY9Pi3fyJbYPLmzs9xiQwm3OBaNkt27oAfVMtuD+2\nCNMWgS/YeAaLaCbe6jpAS31Q+60z/RInacWY9s0GxSp9nhXRNGIvdtOXLjFAB8C/\nqHpV3yFlQMvit1mS/VmkyEb+HPFmaxE8lxloXKaE1pQFiZ2aGmrV9TUnY48YbmN5\nHCLAr48KYCXtSfvMaahslMTCmOsh+SNLdxtplBshwdyXSiIaWxGuu+Ori3KZC3rF\n0RgIzDuNX5AaKuO9oRyYPF3H6hMvWw8GmpKQqHi/K+QOPVnO5YTBYCTSO8eTtAhz\nNKoP65KiXrR6cArfQKTJDUZTNkOApNFgRT3+ZPiAfK0fjGscBWYAyOg3Lb67k+mb\n4fQSbI0XX/2+CQOlCxAWYUuzmv0F+hQ2BXjncI4ybQ3WTXHjTe5g88Q3OUhMKi4l\nU/7F+KtIPJHfTVUU4OVCei6qNvtVwHOKJTFGcOOlyoO8D2y4qtGozqmXGAiC8+yy\n8+guAYrMnexQUiF+lWJ2MKCA+h8mNCHGMpwamjCICDkJBUZDXEOEKuZUW9K/YHhK\npLDeig7HNbA3hPz45wXf8KUdR+Jhn0KsERsyUwqh61ysYEjIM88mt5cCAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEAIeGPEgSMlReuiX6lijEy7RJoRdrm2NE4u1tCKrUX\nFiHfPcrJ7M2zrFJIIU5BTdwDfYDnV94asuJFiBg7zu1lVdKQ/8DW6ZszrcL0+B25\nD3ypepXvew1We0+38xprJp1MqeUgze2LvxL+vK1wmVa+R6YuyOR9sSWVeUekwpbj\nRRCbKziLhGUhC0L7tjM035UvsnAk7lskXGXMvguV1m/IxjhG1Ak9UVnTIXjGZwJq\nBSlVvZs6KU3Tr5dfvl81gwlzFS0XcjRvalRIxi2lOQocrnuri/dHP9g4RApQPWQw\nvGLiKxroXOnyyxUs0NaAV/pIOKJYHAGDHocHGFTEco1zpA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"folder_retention","categories":["files"],"userDocs":"","adminDocs":"https://github.com/hotochan123/nextcloud-folder-retention#readme","developerDocs":"","issueTracker":"https://github.com/hotochan123/nextcloud-folder-retention/issues","website":"https://github.com/hotochan123/nextcloud-folder-retention","created":"2026-10-07T17:15:45.201031Z","lastModified":"2026-10-09T05:26:51.736238Z","releases":[{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hotochan123/nextcloud-folder-retention/releases/download/v0.9.1/folder_retention-0.9.1.tar.gz","created":"2026-10-09T05:26:51.729257Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T05:26:51.807646Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"a57vjEoj7xKYhs6l/druEDiYaKqBOqAyyXqF/8KCIN0Ac9iexPbqd0enq7Z4hqBZ\nCLJ3Vaf3QZJmyPjrzCahHFrJVwyCfLBnvjqBEqkj+VpKCT05jWNutDlr8atHu+GC\n4lvb/8X2WDMfmJ2JlCPxrcrEkdVzpyNPBVBR6CHWxzSgCTgXpyHucAK7xzc4srgi\n0R0wsW3m/VNKMMY3TlIhkJtZZfUlo6CT40bW6F9F3hAxp37CzIqWN7sS8fiWGNXf\nUzUYbgRyC+7E7bubX77Yop2m7T+VS3+O0Ri4FbZJWVPXg2fiSCwHksv2OgyVoxCR\nXB8UCJFe9zyCdwlbUki5w0G8C/wbjt3BQR1oZNBuxipIIt+kzP2tzOsZEj9DlB4b\nI554TDI8xSl6rPs3wC07cHlNux2qkI43AtMskLTruXehZSxDWrAVJc+kNTW+o0hY\nCzhbxYPzSCKVq56dksI/7wJK2fdiAXwU8Nirr4hp3NxlY8+1xSO7klNkjiP8cdOQ\nzg2SJ0XMMpCYu0zwjemZIrshxW9dgEVLMEEbMI6KfBsz3HuyPzFHz5Wmi90XHrW3\nWjoiHpFXXw0uE7aema+5+8x7oKAFWhizFZo64tdhSE6KfALv/M1LsoPE57M+wPqL\n5rj7Z3Gq1NTRy7rk0Cbgqmzm5ZQhjuQ4+xwLN4mILvI=","translations":{"en":{"changelog":"### Added\n- Settings: **Language of tags and log entries** — a shipped language or\n  **Neutral** (\"⌛ 2 w\", \"⌛ ∞\") for instances whose accounts use different\n  languages; a system tag has one name for everyone. Switching re-tags all\n  files in the background.\n- Files app: **deletion date next to the file name** (\"Oct 29\", \"in 3 days\",\n  \"Due\") and a **Deletion** tab in the sidebar with date, rule, reference date\n  and where the rule is set; for folders, the rule for the files inside. It is\n  a forecast computed from the rules (WebDAV property `nc:folder-retention`,\n  only computed when the Files app asks for it) and says when simulation mode,\n  the deletion limit or a lock hold deletion back. Through a share, the\n  owner's folder names stay hidden. On by default; switch: **Show the deletion\n  date in the Files app**.\n\n### Changed\n- After a complete tag sync the app deletes its own tags that no file carries\n  anymore and whose name no current rule produces (e.g. after a language\n  switch or when no rule uses a period anymore). Foreign tags are never\n  touched."}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hotochan123/nextcloud-folder-retention/releases/download/v0.9.0/folder_retention-0.9.0.tar.gz","created":"2026-10-07T17:54:48.528237Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T17:54:48.607582Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"Wis/Vr+0GecGBItgAqfzeadVTO8EudcBAG0ljtp437eSC86wRNMPkNg4yuEBF8R1\ntmHMRY4rDD8znXcVlVpMeUxFgLkNIlTKFzSuiq836BWzxCsvcKjURNaaY/bjXTAe\nI86WaC9CRJT5g4GcxvkmA8Tj0fEMoBX1xp8SXoa/KG1392E/rikaZNF4U8LgTULs\n5/cHvTvGTfCmhI2zS790hawAmBOM6Cfm36thxnU8ccbwQtcTnAdhE5oDX6bw8XgT\nOI5IxQME919EGGMlT+GOTxZ4JL9f8uoq/F5nGPTisyAMYe2c3s1XDODftSe6y6xg\n/PlHSsiPfS2Xpa0ZNll2V+//SGei96Cv8UwEYEzhVPfffY7VlISAN2TZS5EPVBxS\nCfVLgbQ1GhUmnjDY90a/2A59e80ggNKo4sxdXmcDJ8S+aW6vxrShUmTlQ4FywCHy\npFF0o3EgthLcSx9SnQWMPlWXByggszKL4jxJmn8KYjegP2Csdgx27Ssc1kwFdyTM\nBowrdDlACVlqzVpFAaPxLZPe7VMDL8R2aTumIXMeuMxLjmHpTO0biRROmt10YBbk\nEY+aRFKXhsSyyI0F95+j6RaUZ7UT0kIJCQbVtyfU4zqOmzQvmIfPI/iMpEZx+M1T\nbdVVysaD0BvmVpf287bC7GfzwY0YNlH4AVJtwuqin3o=","translations":{"en":{"changelog":"Preparation for the Nextcloud App Store.\n\n### Added\n- English is now the source language of the whole app (settings page, log,\n  occ commands, background job messages); the German translation ships in\n  `l10n/de.json`. `npm run l10n` builds the translation files and\n  `npm run l10n:check` reports missing, orphaned or malformed translations.\n- Nextcloud 35 is supported (`max-version=\"35\"`); the safety harness passes on\n  Nextcloud 34.0.4 and 35.0.1.\n- App Store metadata: English name, summary and description with German\n  variants, licence `AGPL-3.0-or-later`, website, issue tracker and repository.\n- `README.md`, `SECURITY.md`, this changelog, the `LICENSE` file and a CI\n  workflow (bundle, JavaScript tests, translations, schema check of\n  `info.xml`, test archive, PHPUnit on Nextcloud 34 and 35).\n- `scripts/package.sh` packs a reproducible release archive (fixed file\n  times, sorted, owned by 0:0), checks versions, changelog, bundle and\n  translations, leaves source maps out, and signs the release when the key\n  and the certificate are present; `scripts/certificate.sh` creates the key and\n  the certificate request.\n- Log retention: entries older than a selectable period (30 days to 5 years,\n  default 1 year; app config `log_retention_days`) are removed after each\n  daily cycle. Real deletions of files that still exist (in the trash bin or\n  restored) stay, because a restored file starts its period from the restore.\n  \"First seen\" entries of files that no longer exist are removed as well.\n- Deleting an account removes its log entries (its personal folder) and its\n  work-space marking.\n- Optional deletion limit (emergency brake, app config `deletion_limit`, off\n  by default): once a cycle has moved that many files to the trash bin,\n  deletion halts until an admin resumes it on the settings page. Guards\n  against a period set far too short on a large folder or a wrong server\n  clock.\n- \"Upcoming\" tab next to the log: every file of every area that becomes due\n  within 0, 7, 30, 90 or 365 days, by due day and folder (already due ones\n  first), with rule, reference date and size – calculated live from the\n  current rules, so a rule change shows at once. `/api/preview` takes\n  `folderId=all` (at most 2000 files; the earliest are kept). The log stays\n  the record of what the runs did; the last tab is remembered per browser.\n- Superseded simulated hits: a \"would delete\" entry that no longer applies is\n  marked (new column `superseded_at`) and shown in a group of its own at the\n  end of each day (\"No longer applies\"), with its own count and status\n  filter. It is marked as soon as its rule is changed or removed, when a later\n  run finds the file not due or deletes it for real, and after a cycle when\n  the file is gone or only left in a trash bin. On update, entries whose rule\n  has changed or been removed since are marked right away. The CSV export\n  names them as well (status and column \"Superseded\").\n\n### Fixed\n- Error labels in the log were white on a light background and hard to read.\n- The check right before a deletion also compares size and etag, not only the\n  modification time: a client can upload new content and keep the old mtime.\n- The same error or skip reason for a file is no longer added to the log on\n  every nightly run; the existing entry moves to the latest occurrence.\n- The CSV export is streamed in blocks instead of being built in memory, so a\n  large log no longer risks the PHP memory limit.\n- Log entries remember their area by a stable key (new column `root_key`):\n  two Team folders with the same name, or a work-space account whose display\n  name changes, no longer end up in one folder group of the log overview.\n  `/api/log/folders` returns `root` per group and `/api/log` takes `root`\n  together with `folder`. Entries written before keep grouping by path.\n- \"Expand all\" also opens the personal folders (their folder trees up to 50\n  accounts), and opens at least the first level of a folder too large to load\n  at once.\n- The table of affected files no longer pushes the due date and size out of\n  view when file paths are long.\n- When the preview has more matches than it lists, it lists the earliest due\n  ones, not the first ones found.\n\n### Changed\n- Texts that are shared by the whole instance — system tag names, the log's\n  rule labels and messages, lock reasons — are written in one fixed content\n  language (app config `tag_language`). Existing installations keep German,\n  so their tags keep their names; new installations use the instance's\n  `default_language` if the app ships it (`de_DE` counts as `de`), or\n  English. These texts come only from the app's own translation file, so\n  `forceLanguage` and `force_language` cannot change them, and a broken\n  translation falls back to English instead of failing. The settings page\n  and occ follow the language of the user.\n- The log is grouped by day and, within a day, by folder, each with the number\n  of files per status; a folder opens to its files. A status shown twice\n  (\"Would delete · Simulation\") is shown once, the source of the reference\n  date only when it is not the usual one, the date range sits behind\n  \"Date range\", and the mode filter is gone (the status says it). New\n  endpoints `/api/log/days` and `/api/log/folders` (needs `from` and `to`,\n  at most 31 days apart), `/api/log` takes `folder`. The account that moved\n  a file to the trash bin is shown under the file name.\n- Dates, sizes and sorting on the settings page follow the user's locale.\n- The rule objects in the API no longer carry `label` by themselves; the\n  endpoints add it in the request language.\n- `INSTALL.md` is now an English administrator guide.\n- Author and links point to the public project on GitHub."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDEtZm9sZGVyLXRyZWUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDItcHJldmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDMtdXBjb21pbmcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDQtbG9nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDUtc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDYtZmlsZXMtdGFncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDctZmlsZXMtZGVsZXRpb24tZGF0ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2hvdG9jaGFuMTIzL25leHRjbG91ZC1mb2xkZXItcmV0ZW50aW9uL21haW4vc2NyZWVuc2hvdHMvMDgtZmlsZXMtc2lkZWJhci5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Folder Retention","summary":"Retention periods attached directly to folders — no tags, no flows","description":"**Retention periods attached to folders: expired files go to the trash bin, automatically.**\nAdmins attach a retention period (\"delete after 2 weeks\", \"never delete\") to\nfolders — personal folders, folders of shared work accounts and Team folders\n(groupfolders). Subfolders inherit the rule or carry their own exceptions. A\ndaily background job looks at every file in its current location and moves\nexpired files to the trash bin.\n\n### Safe by default\n- **Simulation mode is on after installation.** Expired files are only logged;\n  nothing is deleted until an admin switches simulation off (with password\n  confirmation).\n- **Both default rules start with \"never delete\".** Files are only deleted once\n  a period has been set on purpose.\n- **Trash bin only, never a permanent delete.** After each deletion the app\n  checks that the file has arrived in the trash bin. If it cannot verify the\n  trash entry, it logs the file as permanently deleted and blocks that area:\n  nothing is deleted there again until an admin has looked into it.\n- **Real deletion only with system cron or occ.** With the AJAX or Webcron\n  background job modes the app neither deletes nor simulates and says so on\n  its settings page; `occ folder_retention:run` keeps working.\n- Location, rule and date are checked again right before each deletion; a file\n  that was moved or changed in the meantime stays.\n\n### How the date is counted\nBy default a period counts from the moment the file **arrived in Nextcloud**\n(uploaded, or first seen by the app) — not from the creation date a sync client\nsends along, which could lie years back. Alternatively it counts from the last\nmodification. A file restored from the trash bin starts a new period.\n\n### Also included\n- Folder tree with the rule that applies to each folder, preview of the\n  affected files, a log by day and folder with CSV export\n- The deletion date in the Files app: next to the file name (\"Oct 29\", \"in 3\n  days\") and in a sidebar tab with the rule and where it is set\n- Optional system tags such as \"Retention: 2 weeks\" on files and folders — for\n  information only, they do not control anything; in a shipped language or\n  neutral (\"⌛ 2 w\")\n- occ commands for a run (also as a dry run) and for the tags\n\n### How it differs from \"Retention\" (files_retention)\nNextcloud's own Retention app deletes files by collaborative tags and Flow\nrules. Folder Retention attaches the periods to folders instead and checks\nthat every file arrives in the trash bin. Do not let both delete on the same\ninstance.\n\n### Requirements\nNextcloud 34 or 35, the \"Deleted files\" app (files_trashbin) and system cron.\nTeam folders are supported but not required. External storages are not\nevaluated.\n\n### How this app was built\nFolder Retention is vibe-coded: its code, tests, documentation and German\ntranslation were written by AI coding agents (Anthropic's Claude Code); the\nmaintainer set the goals, made the product decisions and tested the app. There\nhas been no independent human code review and no security audit, so please\nevaluate the app yourself before relying on it, and keep simulation mode on\nuntil the log shows what you expect. Details in the\n[README](https://github.com/hotochan123/nextcloud-folder-retention#how-this-app-was-built-ai-disclosure)."},"de":{"name":"Ordner-Aufbewahrung","summary":"Aufbewahrungsfristen direkt an Ordnern — ohne Tags, ohne Flows","description":"**Aufbewahrungsfristen an Ordnern: abgelaufene Dateien wandern automatisch in den Papierkorb.**\nAdmins hängen eine Frist („nach 2 Wochen löschen“, „nie löschen“) an Ordner —\npersönliche Ordner, Ordner geteilter Arbeitsbereich-Konten und Team-Ordner\n(groupfolders). Unterordner erben die Regel oder bekommen eigene Ausnahmen.\nEin täglicher Hintergrundjob bewertet jede Datei anhand ihres aktuellen\nSpeicherorts und verschiebt abgelaufene Dateien in den Papierkorb.\n\n### Sicher voreingestellt\n- **Nach der Installation ist der Simulationsmodus aktiv.** Fällige Dateien\n  werden nur protokolliert; gelöscht wird erst, wenn ein Admin die Simulation\n  ausschaltet (mit Passwortbestätigung).\n- **Beide Standardregeln stehen zunächst auf „Nie löschen“.** Gelöscht wird erst,\n  wenn eine Frist bewusst gesetzt wird.\n- **Nur in den Papierkorb, nie endgültig.** Nach jeder Löschung prüft die App,\n  ob die Datei im Papierkorb angekommen ist. Lässt sich der Eintrag nicht\n  nachweisen, protokolliert sie die Datei als endgültig gelöscht und sperrt\n  den Bereich: Dort wird nichts mehr gelöscht, bis ein Admin die Ursache\n  geklärt hat.\n- **Echte Löschungen nur mit System-Cron oder occ.** In den Modi „AJAX“ und\n  „Webcron“ löscht und simuliert die App nicht und zeigt das auf ihrer\n  Einstellungsseite; `occ folder_retention:run` funktioniert weiterhin.\n- Unmittelbar vor jeder Löschung werden Ort, Regel und Datum neu geprüft; eine\n  inzwischen verschobene oder geänderte Datei bleibt liegen.\n\n### Ab wann die Frist zählt\nStandardmäßig ab dem Zeitpunkt, zu dem die Datei **in Nextcloud abgelegt** wurde\n(Upload oder erstes Sehen durch die App) — nicht ab dem Erstelldatum, das ein\nSync-Client mitschickt und das Jahre zurückliegen kann. Alternativ ab der letzten\nÄnderung. Eine aus dem Papierkorb wiederhergestellte Datei beginnt eine neue Frist.\n\n### Außerdem\n- Ordnerbaum mit der jeweils geltenden Regel, Vorschau der betroffenen Dateien,\n  Protokoll nach Tag und Ordner mit CSV-Export\n- Das Löschdatum in der Dateien-App: neben dem Dateinamen („29. Okt.“, „in 3\n  Tagen“) und in einem Seitenleisten-Reiter mit Regel und Herkunft\n- Optionale Systemtags wie „Aufbewahrung: 2 Wochen“ an Dateien und Ordnern —\n  rein informativ, sie steuern nichts; in einer mitgelieferten Sprache oder\n  neutral („⌛ 2 w“)\n- occ-Befehle für einen Lauf (auch als Probelauf) und für die Tags\n\n### Unterschied zu „Retention“ (files_retention)\nDie Nextcloud-eigene App „Retention“ löscht Dateien anhand von kollaborativen\nTags und Flow-Regeln. Ordner-Aufbewahrung hängt die Fristen stattdessen an\nOrdner und prüft, dass jede Datei im Papierkorb ankommt. Beide\nsollten auf derselben Instanz nicht gleichzeitig löschen.\n\n### Voraussetzungen\nNextcloud 34 oder 35, die App „Gelöschte Dateien“ (files_trashbin) und\nSystem-Cron. Team-Ordner werden unterstützt, sind aber nicht nötig. Externe\nSpeicher werden nicht bewertet.\n\n### Wie die App entstanden ist\nOrdner-Aufbewahrung ist „vibe-coded“: Code, Tests, Dokumentation und deutsche\nÜbersetzung haben KI-Coding-Agenten geschrieben (Claude Code von Anthropic);\nhotochan123 hat die Ziele gesetzt, die Produktentscheidungen getroffen und die\nApp getestet. Es gab keine unabhängige menschliche Code-Prüfung und kein\nSicherheitsaudit — bitte vor dem Einsatz selbst prüfen und den Simulationsmodus\nanlassen, bis das Protokoll zeigt, was erwartet wird. Details in der\n[README](https://github.com/hotochan123/nextcloud-folder-retention#how-this-app-was-built-ai-disclosure)\n(englisch)."}},"isFeatured":false,"authors":[{"name":"hotochan123","mail":"","homepage":"https://github.com/hotochan123"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhRQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTU1NzAwWhcNMzcwMTEyMTU1NzAwWjAbMRkwFwYD\nVQQDDBBmb2xkZXJfcmV0ZW50aW9uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAnzLynpSEBJa06AAfp8xa4movJKc4Cw0VbgETT7M40WaPNaCcyfrbR/9b\nx9TH5a9m/0FMLXtCITrkbwS9VCEo72IjgWL+hCTREhdSRbq6b6Br8XdPHXCCvkYx\n5S7kwz56rGpkoaKlCfrFNxrJ5Tq2oU0xz4C+qP7Qj2wl8/emfkw2sYACN9vpkLG6\nKqS5GV++jZ0nWeHNH29hhQ4H+UodJK0KS5Eby+YJ1vdmH//ESJqWIFVqVn1OF3en\n1rfe1/Fsi+qooW5re10LSAVnC/XUBOfgwtuoDN9UmHzjvFVd61aZXAktj0vaiOgG\n8aUs67xFx/ely6LmhaqUS1YGzwD2nMWD7DGoFb1j2Vm6oPt7gBsuVUCmG+WBM8R6\n6xn39gomh2zzHEikt5zoWVvKPDtDut8t2fzD7Bv9yr4l/hVHf1f7rm6aWJYxVE5y\nOEOMUD8buwSE6LTy8U+7KcWKia+qMGEf++rnSvZeZsZcoODnfbEvENAXy5sCpBTM\nE/ORJ9zYWlIchuZkgS6wjSRFyQOhaFAGlMEO/4TGL8i0pcc7aANsp6hViujVo/+Z\n0RIgpR3d26g9opCr2saDoOVA92XD26zqtvrC3L6z54NVsh3OGjC4BcyhaONFke/Z\nVf41+uSCOq9SNEqNawRau6SoK+K/L8UkPTH/mH5A+OUhh++JJd8CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAYpNHWANK+fhbAMvbjruDDPAgdp1S/Bfa7wLVCa7JG48x\ng95TTiRS0WS8gtA1CNTYEqTlsQ+IV7Wo6l+Z2PIvbDlsbg4QE8X2Uhek+tbgJdGU\nCUPGw66rRFsLhX0UflisngRekO0uqPg353odHgpmIe47pR2duJQSwmmTWfP6KHhJ\n+oYRjdCMK6aXCPRNh4GgNpjE75xGcTEbqQHsoQqq6fJT5yKTJZG6ryKivU/mFVc/\nHr9aGr1nPvcQ6dU/1tLe9bjn4j8bFWko2cFKPtxwVEITwaUsS5HsLSOa/jNWd6s8\nurvcctnECmSrFsbHXpbThsSZ87/40WaU40gsfngPxw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"taskbook","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/datenangebot/taskbook/issues","website":"","created":"2026-09-03T20:04:39.216172Z","lastModified":"2026-09-16T07:25:08.005385Z","releases":[{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenangebot/taskbook/releases/download/v1.3.0/taskbook-1.3.0.tar.gz","created":"2026-09-16T07:25:07.978808Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T07:25:08.066713Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"x/1CFit+3SZtpQWI0UdQez1RY1eHkueLSxEeplmi6VY7JhdzooM547Z6wUd0PD1fR0wta/8ox3LxCnSE6x3graw3haetd2Dd/TZW0cqFWhs2zAFjvwuB9GzAr01mfv1BUYZFNn6+QIXVZAPOpu3Z8Wt8ZIltrsVEqmd40yRRgRSYXmtWC9OM3W67kpQ5kAbiNIGc265qyt4k228Zg0lXPB1DtW7qZhelRs45UJ/ZMN8J0E/GdlX5P8J7txsu9fC54ImZIrAIVvuM8zAGcx/ctm6HAMddUdDTYiJRNGJL+/+xILHRYvs2bQmfof+FXDI885b1ZVOECW1I69rFoLJRsPL7wWlC8Ny5Phgr3wHF8OX2VLDUuCyQdY1+cnFvx15hsOy7Yy9Oq9W6e7N2nwRaWxclK9ANmhNF1qGh7mKx/E/WYCR+SpEn5pOqJ7MucnQzanCOhjGDBDjP1t+SNQn50g8QLQdqlqM5m60trCJ9UuM4bJ/06Cb/Rw8k5c+8DRFuV35txFfgKDhKoxZVenshjuXJ999pdYlEm2ReOLbwdMv4COnp0vFs4GcP6PrrntTs/SFLP8UzdgT1LvZFX7yaV/V1vPDD8Q8rLIZMRLGD/oA2yIDiuJyPNfFCIk0LxMhY91NbJ729ZxIzoMDEa5YhZaSnkH10d23D7uVMAhkRtTA=","translations":{"en":{"changelog":"### Added\n\n- Filter the Day, Week, Month, and Future Log views by context.\n- Add the `Shift+R` keyboard shortcut to refresh Taskbook data.\n\n### Changed\n\n- Improve the Nextcloud Dashboard widget integration and its current-entry display.\n\n### Fixed\n\n- Make legacy user preferences type-safe when read from Nextcloud configuration."}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenangebot/taskbook/releases/download/v1.2.0/taskbook-1.2.0.tar.gz","created":"2026-09-05T13:04:35.603850Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-05T13:04:35.684550Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"pJ2nKPGKMw0oyxcRGf9RQ4ApRL0NuX3VfsD7RZ4uPasKyEJhyMY+guueG0Ar5xB+gVgu/A7WtdwzuvUHB7XEsEwghnLiClGREgZoZ8SSKjvgrqDkgIrlMEHruylZkZjtPQcEXh2nW+abcrLjLdZe1bU5Lr9/uWL7xlJna4IK79Zs/ef5HZM1etsnVKLwLwCJSfmegm/en7Tg+NQeAhANlAGMKis2oZ6vGELwunAx6PbNzFEx3wuhbFNfJL1c5KTp+KzLYwJS+IQ2oKCSgxHlCIzbUOLuF3WbGwsUHI/b2wuMcKG7NeCDS4gz1pj/ZoKidUqYIViEgL39En4TOdTg6s30hCn9cbBsPiE20Q/0ETrSYtHKh84nyePwI+Hsx7WXX06a/8F8aJtUGzXtWqFAcG8O4a0/QUsYWzZW6eqDII2Sf5Dgl/IIljthmEC6dFWnu9IQ3mPNfLICI8fcgI7gJIME+JakwfgooWzgXRnPVynPkecWxfQ9QFLNLJXaTqE1qMgYg5wRm50/Jar3kvT/RwmuRN3w1rPLiIhi3Ur3BX20j/M43qnGeAFfLxIFKeAKNVniNmwRAUSvDvtIxr/V9W2s1A8B5sQ4DlQNUbJUKL1D/pEwligIX7SUEvOvchi+LnqEjCTr2qDJcJrZUZczsmQ+SSxmROs14dpD42GrFnc=","translations":{"en":{"changelog":"### Added\n\n- Overdue views, reminder preferences, navigation visibility, and standalone PWA support.\n- Native Nextcloud Unified Search for Taskbook entries.\n\n### Changed\n\n- Strengthened the shared Taskbook notebook icon across Nextcloud and PWA assets."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenangebot/taskbook/releases/download/v1.1.0/taskbook-1.1.0.tar.gz","created":"2026-09-03T20:06:07.412430Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T20:06:07.475676Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"TUB9+5JdsSlpzLK+l0i889v6p0sGpDmu6xx1HtMzeq2pzd2xoxtvdjwohpVZt1Qjwr0jY+Z0WHPx2IjlrrLwZVbJYTCqJQlE4alV0bBBscmXn4n/3jzAujaO0VXe8TsCQyFhBB7mgrPIXuFERFHqOzg1J1mpcCFzKCt4DRpWakx6vM1W9PjNvN0+laiBMSWPSESl42rstm2MK3QztsFNL+16ihPPfViEPc8AhMG8AtF08xYcGZejITQ1mc25hHUzVUt6+3AuQ11SfM4Dwf84Z+eOZQz/YKlRX+/YrmIH4ZSNVVdQPBMooe34qJ231WRnZidDo3qZNOpH2x370lPbSupPjBlm+4Qf+IvIkwnng87r644e2/LZOoV0ehBRvDdsRbblhDpn3BvKfIKqub8l1pVN5dpX4xuVwgKPaErNFxsp/etvtnH4EdOr9JZtOa63Qeks0AzNX24uFBGCX0tueZCM95qeYqVFx3/E97LtCsmXCuXM8gZK7wnyINJPRfuPj4yLCuRJSLsCaB8rzG5hJWOBF3lFPDLXUxrsn4rJE1lMXvNJau8fZKpYNhOSblNTKnvEFmlcNc6WxwFPB+ZFupPL+yUMu3YDp6R9pveDFWzZxtKR6MCN3yDb4J1Jj8qhkP+9rjRNZGgBmY1q5TQoks7FiT6hno7MW2iT93sQgKU=","translations":{"en":{"changelog":"### Fixed\n\n### Added\n\n- First release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL3Rhc2tib29rL3Rhc2tib29rLTEucG5n","smallThumbnail":"https://dl.datenangebot.de/nextcloud/taskbook/taskbook-1-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL3Rhc2tib29rL3Rhc2tib29rLTIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL3Rhc2tib29rL3Rhc2tib29rLTMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL3Rhc2tib29rL3Rhc2tib29rLTQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Taskbook","summary":"Taskbook is a Nextcloud app for managing tasks, plans, and notes in one simple daily workspace.","description":"Taskbook brings tasks, planning, and notes together in a calm, Nextcloud-native interface. Inspired by concepts from the Bullet Journal® method, it focuses on quick capture, a chronological daily log, and lightweight organization without trying to reproduce the method exactly.\n\nTasks, ideas, notes, and plans can be recorded quickly without interrupting your workflow. Entries for the current day remain visible in one place, including completed tasks, so the daily log also serves as a complete record of the day.\n\nQuick entry, keyboard shortcuts, dashboard integration, and a clean chronological view make everyday organization fast and unobtrusive.\n\nTaskbook is an independent application and is not affiliated with or endorsed by Bullet Journal or Lightcage LLC."}},"isFeatured":false,"authors":[{"name":"Florian Steffens","mail":"mail@datenangebot.de","homepage":"https://github.com/datenangebot"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhPvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMDk0NjIwWhcNMzYxMjA5MDk0NjIwWjATMREwDwYD\nVQQDDAh0YXNrYm9vazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAN6P\nGP4VS1yyzZMCHAn3YJy+xIWsxxajNTNP0C+a4hGU+R3sUrHIACYFjNAXK/CoYAF7\nrwDNow0mpgMMsXcyvaltCE7Qluntxi1tNNbjksUCIU2j6IIGKAfMZdMntw9b0SNG\nNvBY9lkZIkk8/OKv147pfy8aGdv9FrkdVUCo7CqItV5UyhuYYVJyw5WNDeMpRpGP\n0AZnD/qDT/3qHZWoXCPPuY8w8m2VNoTBl60+Bv2Fz/APyO81bhF7bNvP6Ol0902g\nXYqcsp7mdf4Ip4BAeH+GADZPd4pZoznGemZOJHFsZQr/WgenrASx9CVhYrjQKFUx\nP358G53tkUFMxMuuW/EsztSlMrVTRzPOggRWAFMMjrHwyXlxCcsk1LhoPCyRAf6B\ncZIH4VS7y0ORSkD3f2smDaHs4YD/PHPsb/kQTFufPxlF3M2Dxh4TtuiHJu3kWTyk\nHiaXIatofdnpzGg+rJHGXZe+Or3QtrAhu90e8O+yGZMkNORb43Pi1xBbLVjnB83G\nDsCivaMFKWPNaIyxSuQAEnAkO8e5fTbtbtZexvNrS5uqHxX2l2/9t2fZxZPT98b7\nTH+XKcnQPk5tOg1lKuKywGkYX8GCH88ceSDL344jDnznFt4RDGsiaa4tXo83milx\n8ixdpe7PpzL/lEVVUm2Y4p57mKyXHsCFtH5fAH9TAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAFY1IZ3dc+yPqMT7FDvtq9AZpqTU/K74VSiPVW9PFrAlRVC7prvTCVic\nfz4yPsYqfXYLOTCl7cWA+OnfwcifXrlHZISG/xF3pwrudl4eMeM9g6WmR8MUdOmu\nNrUgTkyxXialkuVT/liU9yzkrN8LZSl3p5E0tpskhJ+XWLHMxlPBRudxz40DL/K+\ncEZ1Ykz/bbcehF5qtuE+vPZIzBPTI5teyD9ifQEVAZFRtXD3FdZfcsT94EvyTnd5\n0YCNOoQTXWk1Wger7RLeBCdvBuaKZWbC/mKl1XNv5uif2fR1N5A/4PZzYlr5UEAr\n8zHofkVF9uFaoEvBNrQN3hZTgUnHO98=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"polls","categories":["organization","social","tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/polls/blob/master/README.md","developerDocs":"","issueTracker":"https://github.com/nextcloud/polls/issues","website":"https://github.com/nextcloud/polls","created":"2017-07-16T18:54:41.216906Z","lastModified":"2026-10-07T12:17:55.276450Z","releases":[{"version":"9.3.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/polls/releases/download/v9.3.0-beta.1/polls-v9.3.0-beta.1.tar.gz","created":"2026-08-31T21:28:31.212478Z","licenses":["agpl"],"lastModified":"2026-08-31T21:28:31.250445Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"Vlezu6Fmtbu6eVNBLsURu2TRygQUAJKWfXrCoEHWw/90EuKTVB4hBLYAzfg6SkoOVg/Xe+CENVAatMMnqJz/Jcw7VjkdU3Nq9SkbhiMHIswUaNZ8CwKdwgLyb1T8McyhkvojcAysukKv1IUlTbFZ1eABe+/6+VsoIdYNIVMESnffXq2cZAue+ZuNHKKTEiH23ErPvgFrfRN1OYHu6Z5pR/GcCf15GvFXvK6A79W2eyHA8ayHiNFzLUC00K0VN3RfkhQ4P02qx/DC2/ZW4M2o+dY1HDIu7GYQnVk2gDAkY61HmgJLTcGArKFKC5/ggoxSS3naFPD3BS+d8zpcyISe/MNWq3r7bT7EeKv8IBWVH1IpFObj0jTh72JAzsi7SJtvszvRF0KFd2kBU4HiA1Nyt5oM7CcXysRvoKtj+k4LGcYq290RzXegyGPWwaUMms/jj7SKetsH0pKkveeT0jYtk68rXWo97FL4YPR5QaCRo3uUosQi5SQG62wwAENWGwyFHjexcQhylwzw/a03EDZ6OKZamzaFz+vMge6vvRYOJ9BrG94gfdwz6gQwEDJBlNKTERPy/KTCHGoERNN7+PqGJ5Gwwa29wkEJZyXSYwo0kTvRNWGlXWN2W/THie07yFuNIX9tn++f2PZlHJn/Z/y5aZPRO71Ap08UUtOY0lYFCcA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"9.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/polls/releases/download/v9.3.0/polls-v9.3.0.tar.gz","created":"2026-09-18T06:19:09.254558Z","licenses":["agpl"],"lastModified":"2026-09-18T06:19:09.333087Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"EGnurdNAcBqAKku0LAUC3pldfUB7DEXn92HdlX7ng70ocwFu7plS/Zg0+rWJ+cnSFQ3bzz13fKHuhtRWNzxsuzr3M0ap8X55K6J7JFfUbl/wbZAPn/czjmGUFiYS4Sw0pHG+40tYmc1I08tTY1miQZBMWkue5oKXilDqHHJzG9yf0h8lpDhPlVmDaNe8EhHNYd13S2KqVhkK1oKPllHqORXWSBUa+GmB/hf9+WJF/eLBTuk9FKdHeot5u9xF18YtZ/lHWzN3+l00sBdaCY/nqB9MUp9Kwi6yaEu5GX4OBVJg1QVrF87fMX6f0qONnAJ6wIlB6CISaac5R+GxsH3l5X0bhoFVJVaiSQbpSlxyLw2CRreOT0GGjcqqVjXl8LAcwommxKB9zBrsqVL9uUXK4U1dYwU1j2GKFHopqDH7wjWAMHl3YfUpctBmRRvIQmFwZQEKCOkPtVlgcHVna9cOUoUG3smP6lUFXdT6re7sUJBafiT/QSPpeMs227A0pwIfs/KwGWiXjrrJeKe1fbJE1cjFQs2mYqJadZCEokAWncuUkhPPXbv8RjDTNaKvIkADoD+V8YThGohRUM/tJoMt+K6wepf6JNVGksNDhgxZg7ETfBmXHtGxXNBZLAxkJCD60ijnOihfKbf8MModiuUff/tkwFsE5vWbviw/+kOrwiE=","translations":{"en":{"changelog":"### Changes\n - Support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9wb2xscy9tYWluL3NjcmVlbnNob3RzL292ZXJ2aWV3LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9wb2xscy9tYWluL3NjcmVlbnNob3RzL3ZvdGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9wb2xscy9tYWluL3NjcmVlbnNob3RzL2VkaXQtcG9sbC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Polls","summary":"A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access.","description":"A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access (members, certain groups/users, hidden and public)."}},"isFeatured":false,"authors":[{"name":"Vinzenz Rosenkranz","mail":"","homepage":""},{"name":"René Gieling","mail":"","homepage":""},{"name":"Kai Schröer","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.782608695652174,"ratingNumRecent":0,"ratingNumOverall":23,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEADCCAugCAhDNMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgxMjIxMTUzMjQ3WhcNMjkwMzI4MTUzMjQ3WjAQMQ4wDAYD\r\nVQQDDAVwb2xsczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMxwqH+K\r\nkaHFtRYE3UMxR5K6t9kzeN78GLd+Gx8uqtiocBrhqdT/XqIIQL6w74iWO78vQFmn\r\nLMCkY5demsZGWGhBKzDxsGuy8Z8F+QoGijmwJsRIHpN0Ixb5tsFXgvcCwN7cBlcF\r\nX086v8Wd5KGxFtIg5hcGaLQvZH1EvxrUVZnTQY/PC4ELPQ779SZxux9Fze061kUF\r\nLwMHxae/sJrnaxUbW+Q78qEy7nHVyQuNrxd9GhVeSg8StcvgdLaAJFkXyzS8wiLO\r\nlw+BDxjEvFJmqj8fHP++WprmNEyENG9O3WqQCQGPH9GpJh2/Sc+LvBr+m+XUOf6q\r\nNktq1XMuG0l2Q3tp+hT/fyWfWrro5gKU9lQEtV4qgRYa7yopv0ZQOoffrHceuEAQ\r\naFiq7UMOnuGnPr2Hqpe6l/oisgve/vbJG3Pcn8n0Oa9gM0YjFR0oZL0Ft/NKbMQ4\r\ntQDsafySFMI5ERoSWeZfkdNoNYtjSD0cJUB8e68zTgUJRVjnJv7VsOVoKwxoJ+ub\r\nQk1faHbr3OfO067nRqtmawyE7pgFj7ouJ1Rseu1sRiDbZmTkcdTQkaMKMuIL+cEH\r\nxiWCs5LzY4poOjPQXD+853dnkVDjQh2w8vDc7oTq4WLfvlCUr5acrR5EoK2to0pT\r\nqiHAul9Me+oW9as/GUU3RHPb6nmZiXNZFD0XAgMBAAEwDQYJKoZIhvcNAQELBQAD\r\nggEBABcAts+Wl21hcpB+VPzzYrTiHnZB65YvRJY3FIfdRc5G4ccQVAc4nfJL5JhB\r\n+UainDsbEW5tKo5Yo9k0h93jlhn+0Xo3g2dsU9XvNmOs6q9KxFpjWEoVOBlKQ9dE\r\nPRLD+B/zm+BWlDTcgKXgiWJxI3Fxnn3kQvUPp5UY6X0ntlLKAJnNkdKwBShp3loi\r\n3pDeJB6YppU4EXHYQ9umoJXxoLGM2zD5p/33a768lpMX8ZEZBMiTSdDmEk6whlGv\r\nwlDi8+LT/bfBvbKaTIGERZClyt/RtQ1yVBa71kQgGTigUzQKQkW6SUIZ5w7yW7vH\r\n2V1Y+pzKecDa+hvUUouKa/bp5Vg=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/tag/polls-app"},{"id":"oidc","categories":["integration","security"],"userDocs":"https://github.com/H2CK/oidc/wiki#user-documentation","adminDocs":"https://github.com/H2CK/oidc#readme","developerDocs":"https://github.com/H2CK/oidc/wiki#developer-documentation","issueTracker":"https://github.com/H2CK/oidc/issues","website":"https://github.com/H2CK/oidc","created":"2022-03-15T21:28:03.253395Z","lastModified":"2026-10-20T10:15:54.985574Z","releases":[{"version":"2.6.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.6.0/oidc-2.6.0.tar.gz","created":"2026-10-20T10:15:54.966754Z","licenses":["agpl"],"lastModified":"2026-10-20T10:15:55.032340Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Mm1e4aiQrHa57LKxu+6OGeJzSFgrMASYnBtaORi6KKYjkt0O8Z4jM5OPzhlil8p19/yZDDwAgq4hlOqqOCLxGoozsIO8ZZ8hwMt1gCwW7feKpYSm5e1EZRkQBc3V9/gceBRIUlfMJEoR+14lhPJdxKNBaJLsNWhaOsBdbr8pGkwXcT9kG2a4dbgPcIFKgw/5FhhGe5lYltjjW4UXoN/dYDGtlvr0hVgbWqbqunXqMb2ZikLzEj+hxbhjxJBAAV5lFyS++M960hfNVsf87BiR8mq9/NGefsN8aW9w0RfSZY5EnuodMX+v1EB8p89Ffh0LSpBaV4PixPFagupt0XTot63+WlR3LNfHLb8H8ze/gKWuXYMrUkdUsvxHAtNbEwEu3V+9BtSNOn92R9ay+IgVskRlrV+5NL5Nv82kWZVqrjlbrbf7FT/czKzFDzA2aRKOB055/zSZREQ1AkLhLCedPpZSJXD0F06CP3q58tclqaKxu5o25rube8rTDOq8EldsSIpwN1Z0+1WxSCwbedHnHpviOiOGVlpxLxZB9fk0OzmSeiNJ//5hm4VsWuyr3UXkg5Mjv0uROXS4ZylvaOMeYB0WmxVmpziKNeN8CdqlAa7BgTjtOMiZYmXfzgamSNhFGQBN+GQo7Aa+v2I4vz3BQv7eiZjTx2v+JT+EJ2mTcpw=","translations":{"en":{"changelog":"### Fixed\n\n- Require explicit consent for dynamically registered clients even when general user consent is disabled; keep consent revocation and permission updates available to users ([#750](https://github.com/H2CK/oidc/pull/750)).\n- Enforce group scope ceilings for `profile`, `email`, and `roles`; only `openid` is implicitly allowed for users in limited groups ([#750](https://github.com/H2CK/oidc/pull/750)).\n\n### Added\n\n- Add an administrator setting for WebFinger local `acct:` disclosure, disabled by default while preserving issuer discovery ([#750](https://github.com/H2CK/oidc/pull/750)).\n- Extend `TokenGenerationRequestEvent` with expected-audience validation and effective client, scope, audience, and resource metadata. Legacy calls without an explicit expected audience remain compatible but emit a deprecation notice ([#750](https://github.com/H2CK/oidc/pull/750)).\n\n### Changed\n\n- Updated Vue and Vue compiler dependencies ([#748](https://github.com/H2CK/oidc/pull/748), [#749](https://github.com/H2CK/oidc/pull/749)).\n- Updated translations."}},"signatureDigest":"sha512"},{"version":"2.5.2","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.5.2/oidc-2.5.2.tar.gz","created":"2026-10-06T18:14:05.865063Z","licenses":["agpl"],"lastModified":"2026-10-06T18:14:05.912450Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"o0zBEkYlMVFd2y3JBGmgz4VIWDilGU5pHS+vT30jfcwUhU8SdjL5guyKEUWRKmraZ3T3Suc8B9v0Zhs3BeH3xwPwM3ymOYHCw8MYZXyUGdy11FznTByoale3CRml8A9NXe0BbNAb9k7ENmbwWps5X+Cb+F1wZgoLsAFh9uy1mZU5C0zIPSYEjFl5h16yb0Vuny0zRkxiG/3vf2UG33QJNMvL3koQ2lE8GVbH6EaGTOTU3jPWFrrFZTwn0aLAe8hvcP+ai0ktvc9Kd9j+Dgc1Ga4bY0Vg5EI4kmD4U+GwITYlh8ZRqTUbisvNfwNZwePxddEsygTAkz4KG11yiDPdiiMbaC3B0A0KSu3Oz9ya8UdDUxhdV7fwXjXbySZuw4E3MgBANhPdo2/HfF6wTDN+wOHHsuQBbEKm61aXTcHdX6bA6pe0Fc654S8nubeF9vCk6VsqjglYPLfwCAOHf4N7ZhSLl7/sKWvMW8zU5YV6eNGeqKhgsWVWPUliAGnQJlun4BhByuL7pr/a3sb+S/3XrWupRMeXbFEusB9GtfuhL2+DpxDQ5PL9ASTXBo8Hl5i56CVZhaGHMjqQQPSF2sApJ9yRJ8YuQa0tz9WEaHb0eWkIA0/YvCLfxf+lED/SdHPVcLckEhB/qgAyR7DqMSbPSwEWSEOs1Gk/ZsCKJpImD6M=","translations":{"en":{"changelog":"### Fixed\n\n- Do not force reauthentication when `max_age` is omitted and the active session has no known authentication time ([#743](https://github.com/H2CK/oidc/issues/743))."}},"signatureDigest":"sha512"},{"version":"2.5.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.5.1/oidc-2.5.1.tar.gz","created":"2026-10-06T08:01:36.349161Z","licenses":["agpl"],"lastModified":"2026-10-06T08:01:36.393607Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"AoJU3vZcfotUeb4xf3OSpwm8eD0jRfUpCdZn1jkL3vzbt+5KYNCffTXvNicPTVHOWtYMLcFB5Qhxs5yLc0SBgNotXzqYZyKQa5bCrGI3mz8idiHyGm1PAr5wUSMBOsH4JK7Z5CzHn9G+hk7KdKMlRmkmiZjwsJm60pC+r4sUShyKsaxymzysSvFelkTTcEUGSylw6eiKp74pI+lbwH6ZpcnBgxpUH2WkpPs+or4F2IvEL9vLB2lNP1FNc7fWz9UF76q6xRqtI9YZONdjRnrZ6N3SbQnGBg7KhRjBQ8TxHz+R/SVOQUYpj13iAkqY5RVJPkvdAjuDobuMPt2te+0xuzLjg4zsxcK24T+sJ9dnkJll7HG3qlZnlnfaMeG60w+CdzkLxWFsoOkyGxi0NUn3CKgEES/43B7FJ+x0GAu0Ctx8Dah8Ees5/15IarToMStsIRkXtv3wrLsn+GfU0gFzS30Yg6pYpuYEvTJkHnEl4LXtDD9GqL1LxEsKLHyJiaoa5JieQdQjc1j5V6zKLk6THf8bBpCJu4w+B9SF7dK6XcbimapX4maf173rU39zeeld7datzOJrwziTE8YJDNBTeRAlPw3yZz1YMpJfqSAU1046ndbGzNfw1MK28HWKbbS2vH3Qob+haiZL2oWMNzQP+z5BT61D41eY6zWTuCpxoHQ=","translations":{"en":{"changelog":"### Fixed\n\n- Record active login time separately from token issuance; enforce max_age and require real login evidence for resumed authorization.\n- Preserve refresh scope across narrowed access-token requests and always replace consumed rotating credentials.\n- Expire authorization codes after 600 seconds independently of access-token configuration, and prevent foreign-client code replays from revoking token families.\n- Accept matching form client_id alongside Basic authentication while rejecting conflicting credentials.\n- Normalize JWT access-token typ to at+jwt; gate ID tokens and UserInfo on openid.\n- Support IPv4/IPv6 native loopback ports; persist and enforce dynamic grant_types and response_types.\n- Return a code-free verification_uri by default, preserve device consent permissions, and enforce device group restrictions before approval.\n- Restrict WebFinger to known local resources and preserve the requested subject; stop publishing clients' scope inventories.\n- Preserve front-channel logout metadata in admin initial state; display browser logout errors as HTML.\n- Display consent redirect origin and approval expiration, add working scope editing and localized revocation confirmation, and use the supported CSRF token API.\n- Support full verification-link pasting and explain device errors; preserve UTF-8 names and nonces.\n- Add ESLint 10 flat configuration, pin ESLint/config versions, remove the obsolete ESLint plugin dependency, update the agent guide, and normalize text line endings.\n- Reject revoked JWT access tokens in the ID-token validation fallback; validate ID token identity, issuer, audience, required claims and registered algorithm. Require local issuance proof for HS256 ID tokens.\n- Authorize and consent to explicit identity claims through their scopes; enforce requested subject and essential authentication context.\n- Bind consent forms to separate, expiring, single-use requests and invalidate approved device codes on consent revocation or scope removal.\n- Enforce administrator-approved resource audiences and application/flow-specific DCR redirect policies.\n- Keep consumed refresh-token generations for the lifetime of their family and clean expired grants without refresh capability even with refresh_expire_time=never.\n- Bound authorization handoff storage and atomically enforce the 100-client DCR quota using portable counts.\n- Convert first-day-of-week strings to integers, omit the inaccurate updated_at claim and remove custom-claim values from debug logs.\n\n### Added\n\n- Nullable auth_time fields, per-refresh scope and registered grant/response metadata.\n- Backend standards/security regression tests and additional dependency-free frontend tests.\n\n### Changed\n\n- Security and standards hardening for OIDC/OAuth authorization, refresh, and device flows ([#741](https://github.com/H2CK/oidc/pull/741)).\n- Updated dependencies ([#742](https://github.com/H2CK/oidc/pull/742)).\n\n### Upgrade notes\n\n- Consent pages opened before the upgrade must be restarted; old single-use consent IDs are no longer accepted.\n- Administrators must explicitly approve `resource` audiences before they are accepted, even for existing client registrations.\n- Existing device consent approvals and refresh/grant state created under the old behavior should be re-tested after upgrade, because consent revocation, scope changes and replay protection are now re-checked at redemption time.\n- Device authorization now returns the short `verification_uri` without a `user_code` by default, in line with RFC 8628. If an existing client still relies on the old behavior, re-enable it explicitly with `device_code_in_verification_uri=true`; otherwise use `verification_uri_complete` for QR or direct-approval links.\n- HS256 ID tokens issued before this fix do not have valid issuance proof and will no longer pass the validation fallback; reissue them from a trusted provider or client application."}},"signatureDigest":"sha512"},{"version":"2.5.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.5.0/oidc-2.5.0.tar.gz","created":"2026-10-05T07:20:43.997762Z","licenses":["agpl"],"lastModified":"2026-10-05T07:20:44.051470Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"obbMP/P+/eJ7BpBde9m13f2GdvJtYGqSU9SDTnTi2AaLta8g+sJoBJdLef3bYoO9pT2ASNcjcV8DYZIBfYvN0V/Mw0KmfxIfYKtRQBGg24kMxsyK/JuLqNcGIrEY+s9MexrD8dBlGWQwWlS/gLlLwlysTO0n/+vunoMt9tDoHd8yh7G0nZ3GjGDG4K35DJ0L6qL7EvYEtttMk2LyKtkvkzZm0ibri9oDmyW2Qt/hCQAz+b2yFR1qt56pQRxFblD2py6no0QTIkJRtYNbj8pbwhKmyBmpVNvJMi/UyU5eJAo3ugRbj7GhhMia8aS6FZF0tHeSHQvkZ3fsaiIrk6PRB6Y03MzCR0AXEMPAUmxE+Rv/9rLT8zMqMYoFdlMemuqTqPxMi4Tcc2gE1eQd/bvFlKTyIpH1CsARRuoG6yj27XgdcG8H7ylZedIgtQCIxARlhl7Z+4vVBvPeW2q13BDzv0fr+SPWoVuJUgVBNe+3o0ln1FGCBzF5AIFtNksDeloI7/UnIBK29j0Vg2JWjgeMSx2TMv0H8JkwAhTZjySEAeju70FbPFY4fiDXvpLNXBMYN114RdyNd1EV6wC9Snb6p/tEdyo3bo8SAClxM0rQTI4a0CnIz44Zqpai+I+YEhWC4HwqZiVJJ7x4ODBLftw+ARlxcTNpEXPvJDZ0pDMUCUE=","translations":{"en":{"changelog":"### Fixed\n\n- Added standards-compliant POST authorization handling, ignored unknown OAuth parameters, and rejected repeated singleton parameters ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Bound authorization codes to the concrete redirect URI and separated authorization-code credentials from rotating refresh tokens ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Hardened response-type, PKCE, scope, consent, UserInfo, introspection, browser form-post, and client-authentication handling ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Rejected every wildcard form for dynamically registered redirect URIs while retaining wildcard support for static clients ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Store and rotate refresh tokens issued by TokenGenerationRequestEvent, retaining the trusted event grant's refresh lifecycle ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Preserve case-sensitive scopes during authorization and refresh ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Complete the authorization POST handoff with single-use transactions and duplicate-parameter validation across query and body ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Migrate static redirect URI spelling variants to explicit registrations and report unsafe legacy entries for manual correction ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Limit consumed refresh-token retention to seven days and remove expired token families and orphan refresh rows without relying on foreign-key cascades ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Record reviewed scopes separately from granted scopes, avoid repeated partial-consent prompts, and return denial errors using the requested authorization response mode ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Support prompt=consent and account selection via Nextcloud reauthentication; return consent_required/interaction_required for silent requests that need interaction ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Correct authorization error codes, omitted PKCE method handling and state presence; include RFC 9207 issuer identification in authorization responses ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Signal authentication and token failures to Nextcloud brute-force protection at token, UserInfo, introspection and revocation endpoints ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Generate JWTs before consuming grants and persist rotation atomically, so failed issuance can be retried ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Do not count normal UserInfo token failures or inactive introspection results as brute-force attempts. Introspection throttles only failed client authentication ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Honour administrator-disabled consent even when a relying party requests prompt=consent ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Apply explicit authenticated-user rate limits to device-code verification, approval and denial, and record invalid code attempts in brute-force protection ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Restore consent buttons on pageshow, display revocation feedback through NcNoteCard, and prevent stale loads from restoring removed consent rows ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Reject revocation of a token owned by another client with invalid_grant, while keeping unknown-token revocation idempotent ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Reject duplicate refresh requests without revoking the token family for a bounded five-second window; never redeem a consumed refresh token twice. A zero-second configuration restores strict replay revocation ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Reject disabled or deleted users in authorization, token issuance, UserInfo, introspection and event validation/generation. Remove their grants, codes, consents and approved device requests on UserDeletedEvent ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Generate independent random jti values for each ID/access JWT. Introspection reports bearer issuance time, issuer and the persisted JWT identifier (or an opaque-token fingerprint) ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Remove the shadowed /genKeys route; retain /api/v2/genKeys ([#735](https://github.com/H2CK/oidc/pull/735)).\n\n### Added\n\n- RFC 7009 access/refresh token revocation endpoint, discovery metadata and CORS handling ([#737](https://github.com/H2CK/oidc/pull/737)).\n- Regression tests for authorization parsing, consent, event refresh redemption, refresh retention, migration, revocation and failed issuance ([#737](https://github.com/H2CK/oidc/pull/737)).\n\n### Changed\n\n- Refactored redirect flow ([#735](https://github.com/H2CK/oidc/pull/735)).\n- Updated dependencies ([#736](https://github.com/H2CK/oidc/pull/736), [#738](https://github.com/H2CK/oidc/pull/738), [#739](https://github.com/H2CK/oidc/pull/739), [#740](https://github.com/H2CK/oidc/pull/740)).\n- Updated translations\n\n### Upgrade notes\n\n- Event refresh tokens issued before event_generated was recorded cannot be identified reliably after upgrading. Without a corresponding consent they still fail with invalid_grant / \"Consent has been revoked\". Issue a new trusted event grant; do not infer the flag from missing consent."}},"signatureDigest":"sha512"},{"version":"2.4.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.4.1/oidc-2.4.1.tar.gz","created":"2026-09-30T06:33:42.368209Z","licenses":["agpl"],"lastModified":"2026-09-30T06:33:42.419865Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"pG9hr2FRqcFKxFWfwI2P5Pw1eog0ASamqaiUq51rnQmyVEffQ4IRV4zKqLaxjlFlU1veF1abZkisVL4EIU5TFiHhlIdQVPSYKDVj98KO21mENBQ1cglEaq36geC+yaMDbVWNUvz+qt786V8H8rHLueEkMfMeRHFOL8hWOnVpfe5X1dDIn3GhlIazcc49Np51bjIdt/DkpWetPRfEjSyq/y5kxym3fTaFqW2ci9AR/NEs1dE8wU0ArTDtUnNoq2tvOx7dRh8K8XQS7Ju96H2YFR3Zev13rDsLUTuCn7MNcKGmevvOSTeEtjV9eRiIfQm8XLhsiIyNg86NgBNvqv1QbIfg7NMifxc2trzB2tO7qpkGpB1G/QwV9FeeauXlHrTtOSQLFzJXohcqexBzz0pRVOMusLurgOcoqgalCmUm6FkbhGL2p41kPa1gJIBqG2AwK9AcgrEckFQxVMXmFdFFYZXv2NbvUUdodV1RPSuKJx+bV6Kx+E3N1LxXuhUZ2XKU3B5mcxdZ8awy3E4nTwR97QiHOjFfp8hgndyI3/wuTwgqGxUztlCv5yQ3qNweV6JpNWfraRGLA98bj9/em254CJ/7nYMsbtNCimQ9plnMxe/JxmOFbM80q/xmJ5L0xDmnVrUWSflrRWGhs5G6mWfbnrafb4VMBAT56sy5rS139jA=","translations":{"en":{"changelog":"### Added\n\n- Added a shared group membership check service ([#732](https://github.com/H2CK/oidc/pull/732))\n\n### Changed\n\n- Extended OAuth 2.0 conformance and updated the implementation and tests ([#730](https://github.com/H2CK/oidc/pull/730))\n- Standardized error response creation ([#731](https://github.com/H2CK/oidc/pull/731))\n- Updated dependencies ([#726](https://github.com/H2CK/oidc/pull/726), [#727](https://github.com/H2CK/oidc/pull/727), [#728](https://github.com/H2CK/oidc/pull/728), [#733](https://github.com/H2CK/oidc/pull/733), [#734](https://github.com/H2CK/oidc/pull/734))\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.4.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.4.0/oidc-2.4.0.tar.gz","created":"2026-09-25T08:39:34.047507Z","licenses":["agpl"],"lastModified":"2026-09-25T08:39:34.112101Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jL+o4D/XdaZn7y0GSWYvqUPuo1NRBIkqasZGiDSmzdehIh4UOktIM+OGG+Z08VimTlCvJj7tykufqwbb9v5bkDUGjVlzc7F/EAMaMBHGiwgug3iY8UXN8KufrVDJMFZNc5O16IWUZvcD+nUhheJ4KIyZHgfsjVL5RkygdPoPoigxwoIjCeTyR9Wri5u9mzU53iq3Z3wsMbC5n/9vJ1WgqS1AnjZ8nccSQux33d78F+SdTQ/1+h1QTQfQ5gIcNTpugQsp4GUnAasGhofZe50j9qLAeZSenL/YpD9ygMWkxcey167Btu034YHVpStsgr7faYbr1WQKmY0Gqs6JH43o+RdBuVgpUOoaW3+VB9TYNy1yrUuTHE7zWfb6nVUTOwA1WraNQzx3IAJWwgNCldcZKaz3hGNQu2fgCvJwB7dJyjCwRzrwnlvV3XDW9egciwihbuAI70NoNMnaf+yHLP8ck486jkwwVXLDZ/rRbhQf2s22zR6YTVcVrdqfFEf2ttm/mUs3Y1Wo4Tt4Mx4/uJ4e1lgTQTQrimHPqWgG+JHk0gSB10KEWhZTxfR5R9AcByN4q6A2Nv3R/pE+fE5U+hf7K+pYanLk2RKRi9PpyQU5NTZoHha7jTxHgLE3GOrjrSQeuyf+8fbP1EzEE1tkyJh3TOB6FRsiyNJ2zALCSC/z5QA=","translations":{"en":{"changelog":"### Added\n\n- Group scope limits: cap the scopes members of a group may be issued, for every client including dynamically registered ones (admin settings and `occ oidc:group-scopes:*`) ([#723](https://github.com/H2CK/oidc/pull/723))\n\n### Changed\n\n- Tokens requested via `TokenGenerationRequestEvent` now honour the client's allowed scopes and group restriction, like the authorization endpoint\n- Updated dependencies ([#719](https://github.com/H2CK/oidc/pull/719), [#720](https://github.com/H2CK/oidc/pull/720), [#722](https://github.com/H2CK/oidc/pull/722))"}},"signatureDigest":"sha512"},{"version":"2.3.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.3.1/oidc-2.3.1.tar.gz","created":"2026-09-18T11:49:14.074936Z","licenses":["agpl"],"lastModified":"2026-09-18T11:49:14.126625Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"y3DWyHrKfk0JkpIVagK3ehkrYDEikHnt3jg6uMde2d66au1JFnOAhfxbyHMSbZbrzSEoBsqnihwmwQFpBmBeC/J4+eX5Ul7ja2fwHFC+rLivKyINrBR5AiO4TS72cpXUax2wKAxxDQvP35nBO71/PEUSccD6Rzwa7KSSXt+YIMD4Xp6260AH1AG98NLfMREXFZRn8mIGOLVe6n8fHo2V/wLTkquVJDQhB6tiiNQWCOjOSVhhfnVMm/EyFlqvBApYw73xiajP5DeBSlgb17N4Ny2xaOQCPFOra38baQqWlqrmUuucOcQO3/3+tWfUbmI7jtv/qJXUV58pf5/dgkwRfzVCNWpYMokmogJ6QBS5r+Tvjakh2TmCvs5Tsb4S+bN+FS42jeTtEpAlBEl10/2sYiK5U4d6/5qO0TrK8L+P0K3JMck2VQyS3kHZNkBfc59WPVR1lFsSqLLIvaA7zcR3X8mQhQH1uijyLp1M19Qge8YCtgKJfNPhQrZsD+5a1QRmvGFZZhdR63eisNqnATt+u9Mmqn6W5Nw6Z+UNIYTEnhC0P6lWYWDEALuEg19lR1TSnAVq+plgXZm2r4P+YlbZP6xEUfMQxJwDkJohDopZq6CebxiJL7dflOpjkAqRfLxI8EYkuR2PAbG/wNk8omFjQHj76Ct32wJEnDV2HHJsSM0=","translations":{"en":{"changelog":"### Added\n\n- Added `device_code_in_verification_uri` to include the user code in `verification_uri` for device clients that build their QR code from it. Enabled by default. ([#716](https://github.com/H2CK/oidc/pull/716))\n\n### Fixed\n\n- Fixed device authorization grant recovery and QR handling ([#716](https://github.com/H2CK/oidc/pull/716))\n- Fixed access-token cleanup when refresh-token expiration is set to `never` ([#715](https://github.com/H2CK/oidc/pull/715))\n- Use the configured default for `token_type` when the parameter is omitted during DCR ([#718](https://github.com/H2CK/oidc/pull/718))\n- Fixed the device authorization poll throttle moving its own window out of reach.\n- Stopped applying the poll throttle to a device code the user has already approved.\n- A device code is no longer left unusable when the tokens it was consumed for could not be issued."}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.3.0/oidc-2.3.0.tar.gz","created":"2026-09-15T07:58:50.255917Z","licenses":["agpl"],"lastModified":"2026-09-15T07:58:50.315112Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"G3L0V/qyYTAlg4vQ1wBXWkGiz5nK+CC8bV8oc9xKvxqEkG//tVS3dvombeWg5MryJTjgSBOAygVrpmHv5XN8rLY52WyJ1XkSxhTY6o3TkSjIs8Kpxx6knoit2QSO0jRWXvUEajsPsZHN/+qOt2X56E07qiJX92d440xC8bDRmNFmE5JlpoGF0lan92Ihd08P5rc9f45EHacPFfdkjdr5DMpiUdr6UlzuYEbyonNeQPt/SaBE2LbS09ZjCSCbwq+dMbqeFwLr5RHANH7QFf79unWkrG6JBD+vOQJ00JUR4H4pGw/5TguW0X312sw3tLsjizFQaAuKinfVSQZA3DAwtDIklOw34HJFRH3G4DMcXedciW6uqmPs7LRbcuGhBhuhyCCXP/rK1eYJyh/Ew8ScOi7doVBqQDXYbEN+qJikuWPgsWykVUXv4NIi7hVskASao+miEwyvRO1/06PLdjByYpkW0USMFY758pLtZZO5n8bCROGwLFJ4U3FZcAbVW8lFjZSCHrhJfhC9Y9R998xyfp5MARH4Aw3dbq1tyNv0zYMz0WaPQVV/kzP/JhhF/DJsnXFuTK8GcHgdI/5130o6R8YgIQqYhuSbTDfExvfH0viyHXHLU1y5lRUi8GLe2YU/7Y/cVVrU769zJYH+deWlRjndGSz75VxhoEjGugQ/5aE=","translations":{"en":{"changelog":"### Added\n\n- Added support for OAuth 2.0 Device Authorization Grant (RFC 8628) ([#707](https://github.com/H2CK/oidc/pull/707))\n- Update dependencies ([#713](https://github.com/H2CK/oidc/pull/713))\n\n### Changed\n\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.2.2","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.2.2/oidc-2.2.2.tar.gz","created":"2026-09-09T06:13:37.093846Z","licenses":["agpl"],"lastModified":"2026-09-09T06:13:37.188458Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"udwVgR3oZcCuEk9oMvNkyVywQCyL195yRL6Br2TNb1O0rFop3KW+We+dNNMT/WfD4NiEiLc4sOOanLycaONPAFr9x207sG+ehW6HePOllM2KVZ2DEMSVYroBywlxZFtlhSTshvqDkdtt5paVBWqt/1BwU7lUHqaWxWf8VRTxseB4Ia9w4zYApS8L4shQJSohfPXhZvRhsgCUIrLvpv9BRXz2Weq1oVqC3FHCYUR6tgHbiVfXqk9c/I9DRNBLsgZbjqQKaL1yQKTj7+5UXw6NRxw2JW4SVbmj2RhxQ9urh5oe0B5NmUl25DN4tGZyxepWqkRQM491uBHWaqSkRzomuTLJcq/uIez69InOrvqa/vgP3kimUwPch7L8Uhvy2NuLormqcPT1qobe3Vq9k3StN59Y4ah+HosrTTtH91OxNwO2YSE1dhgEK1K1rfck+yKponhxQuj4oHiAATCiKXPlt5FYlIHFI76KatHUCmyUidH9keQCSazmG+VUUG9OGzwZmUV9Ok/Kxhodb+nqS4wIntwM3GMbYZ+z/PTurgLrmU8zLWnb7ZENEJ5yA7yb7wJFPud3g+948VMUtu+uPNi427xdwJ2qFcYs4rpR2/Hcne1lNLHUR3dHTixM2mpBbUdFUs8TKDpEQZTZlI4EtckAOYDUpcPffl5h3hn+CiJL/+U=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed MySQL/MariaDB incompatibility when storing boolean client fields ([#709](https://github.com/H2CK/oidc/pull/709))\n\n### Changed\n\n- Updated dependencies ([#712](https://github.com/H2CK/oidc/pull/712))"}},"signatureDigest":"sha512"},{"version":"2.2.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.2.1/oidc-2.2.1.tar.gz","created":"2026-09-08T13:16:00.625375Z","licenses":["agpl"],"lastModified":"2026-09-08T13:16:00.705731Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"d7V4s6aIhGZPeVfsP8NdYQ4JtN5Qgsf900GdfRAja/VNPm09sKHxmyOV1qN0ICJB3PyRbGLtzLIYdmgtQruiTyr4HiaSdwItXrFlLg2U7TBfGiVRio+f0z0DH0xVaUNzt4J5Zgu39pOBOXqUI0MMJ5mhKFtVih52vkisYFIALCdLd5h/AqoPyOZ2+9Iy9joud8BLP5eL/fYISrsJSsf+R9cY+xQiiFmUbUr0iIdtalpYe7IBQikyMp6F85WdxPhAEaYIUs+dQ3L868gZgNi8vqqAuIgtOJB6xMswTjfET4sut7+LNod0weUta0YAhaUsAIDZZ/JlYRtBBjU4AQbACnQkudfP1Gzq6iUd1tdqZ9wcXjNUexQafzyyqz8EMhWqPUwCU/1S5sLCnqnK3mIyfVVvoSjeK1D5LLEnBooTAFWmanH97efkIc9phQ47E8opmaI+zLRA4f1e72pkLl4QGyEjVQtQ0Epk8CTCnRZ9jqL2ML9Z4vLATGbfTHZn2cpfHQH/7MLcqn7FFmaGW8lzqkb2Yq1ENy/dishXN2Iu/xvRAYgCHrfov2NjPQyO1QpU0Nx+s2k2h0YVMsy5RcUebXys2f/w47ngGXJavISGo01usJ0AGJWvvw5ddmNgHvyPnUZEJGILkM86DA6Ss8VA9MZJlOyPRJNGGrY6GZdK2po=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed a regression where access tokens could be deleted during token validation ([#711](https://github.com/H2CK/oidc/pull/711))\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.2.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.2.0/oidc-2.2.0.tar.gz","created":"2026-09-07T05:43:46.259848Z","licenses":["agpl"],"lastModified":"2026-09-07T05:43:46.334907Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"n8jTz4rsYTM/cpYIgfdCIkW14uF7+of5VTKC4R3rnDHBF3VOlsZUHjeTxZfwMpsagqdob8exSwJGzk583xF0rgWAHvezBs885PNpvAI7VuXugWpGlGDOsHdTvNJW6tcf4eJcSN+5aZ+O8WaMjlS8D5BxfkjvPeOIykrXZKVCpdXi4RSV5A8DlI0xg/yQidHkm7MJpVVleBzkYADgXq+JdkY/F5P2eHvmhm3vcQNDlS9r9M5jLN3I1eNr8YaJ5bWSxN3gUwSbkMAHuHIOwZNYIMLaA2V8kWgLFDNdKq3s7fLQMBmQgi3GvzZTa5f1vMGxK/WhbG4FLyWzdXgpiLwh7wK+kZrWepoTGqsB7Az9gw6ZQkNEqN0Gb/GQPHO3TqbyUgJyPYpsI35rRY0WbNJeNbadxJQ0nMZ1R9WxovE0V/kOD6i6H/pVurzghZxDJvJ5eegLM8BT5VxRWXHxKqGAKoVqXWI9Q5F2hzRprnDAqvjjvK+SHn3xCDKG0/7LIiwz3GGL15hn6tzQe6sTSzdwdYm6Otzh+w0e8YbaMpRwQS3xILNkZdbyYJmkhVccOrixKX6eegbQYw9XjSwn+qR7Le+xg7GSR66wFSGu4/0MGNLFd2XoCb6p5+xzfBiH1a6GcBuS4tUOAljXSgijiiB6kU6XVALgl2hvCB/FqfyMHQI=","translations":{"en":{"changelog":"### Added\n\n- Added support for OpenID Connect Back-Channel Logout 1.0 ([#697](https://github.com/H2CK/oidc/pull/697))\n- Added support for OpenID Connect Front-Channel Logout 1.0 and Session Management 1.0 ([#701](https://github.com/H2CK/oidc/pull/701))\n\n### Changed\n\n- Updated dependencies ([#699](https://github.com/H2CK/oidc/pull/699), [#702](https://github.com/H2CK/oidc/pull/702), [#703](https://github.com/H2CK/oidc/pull/703), [#705](https://github.com/H2CK/oidc/pull/705), [#706](https://github.com/H2CK/oidc/pull/706))\n- Updated documentation\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.1.3","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.1.3/oidc-2.1.3.tar.gz","created":"2026-09-02T12:00:57.811646Z","licenses":["agpl"],"lastModified":"2026-09-02T12:00:57.885696Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"H8auLnyeNo2TIzjarxKVOLo5+NB/qlLv1M9S6S4RT3BX/webCvZl9Gem3HUM8wxvwAm4z5/Qqm0Z14VrVenK5s/vhxjoYCca66AsVRrItdsIGNZXlw3fvhP8E1981MsFAAr21PobdmbTcKX5h8SAU9uoeY0/yPTKD6t/PWYOb+xDYPA8V2qzK7DlAxUsS4h0E71Jw6/a7p3a7RFZtjLM0SsUHPAI4lEJs+71xdXTRHBawaywX2BfyQ3lRnq5mzD6gkfd9ynUYUKMR0elOQLLEHBpeP1FA2/UB+pTMyAMp98x+OOWua7gyHQjDR3jbnxMP40FsVH8235t+QpkzYpGAHm75z8snljDH/G4rejkDzeh82Zf8qsgN5psCtvBLaCBc3RI16Fx7WtFl8hER5njB7U1jcTUj02P1moVNm/sXvRBiIsXIiKyZv/YeWGUlepuZn6uLt59N/EVnBh5lmM5kfjpX3dLFoIZKfZm+cvKvfNMd3fPTijqTiAbNxk6d7SQD6HE+FTLJFswFNbocA0+D20H2LCrFa3bMX8YaEVUPkSerXPb9uKEo3bi8bxNGjduEJjO7V3zX3s3cWXHORUfDKb8DKdy7Ty2hEH0hXpBqmVZv5lt3voDm2MELDg5REGfHh4EvF79TnDxSk5drwS5791Mz0scwDhbwzHIfzdh4xo=","translations":{"en":{"changelog":"### Changed\n\n- Updated release metadata"}},"signatureDigest":"sha512"},{"version":"2.1.2","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.1.2/oidc-2.1.2.tar.gz","created":"2026-09-02T11:51:33.510730Z","licenses":["agpl"],"lastModified":"2026-09-02T11:51:33.573211Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"totCk0oBKNz3bCWFzo7CNiCB40iTC1wLld2UQrecnkw+d4eAhxrtWIB68jReyNObXW/GwZGcJyqfXdGyEQpEWjngV2/+bIps5fEloLIJOC5K6pH65Z0nHIrIn+ys038JNYvntjwUldnXxRt2X2o+oPPpl8N3b8OqjGaaH14NCEMk3SUFOD3G60NWQ1tuxtxvgYl+kOIlxdUGtryKG+PrmjmEw7P24ZwDLNk/7fozCmBTQZp9L8yN8hx4PsOEeaE1q/xXY5ZnZwJRSXbvT7ea4YlPQNFR3rF7VE/oN8U2Jd9nJ+mUI28wa4No09n4x4jY4MNW3bj9esZfhLRmAc0to+Kvtbgf2g/KvSj1lQiZUHTStTxys46kfDxT+HmuAkG86Emg+DnKKhX8mG5/v4FCxAmtGyOtsBievQtRduWgaXjFvw2xjJL6JpHO8Se4dMtqO1Gi7t7lkbgwmKHMLiFZ2vRcJEiUpQQKygKCCpUQvPG1SZFxPc0XfTAcA3dhU/Hr8n8BwwIQZfPKGF0YCWlwW5HYUhqFScdqCCdPIY17wJywnCkGwRhDE5ONj7qrqxWxcTgeraSvHzeFAnnpppHVEbmIfvQQWUXn7xOS//DYj9hnlsL+Q2EagWHWKsUz2toyDLxAXyrcJqV59ehmNP0uHaWqKM0HA1wkUYwGRKI5WsQ=","translations":{"en":{"changelog":"### Fixed\n\n- Fixed migration compatibility with Nextcloud 32"}},"signatureDigest":"sha512"},{"version":"2.1.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.1.1/oidc-2.1.1.tar.gz","created":"2026-09-01T06:01:22.678213Z","licenses":["agpl"],"lastModified":"2026-09-01T06:01:22.742354Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"a7Q84K8gner8UznL5IGECkaRoLjkNF0O4sX3G7+Tam8odnzIuwuu33mQba6DSo50fCyUdxzmSnNMUb3sNYK8gcSp63sUf1Fodj1QH8rAFjXdl9PjGCaUOwKLEBxICEzxx7aSz01kza+cAb52mXKsXrgbZx7VsqsU9D/S+9XgCthlQT7bbsCMgBcyJT8j1c31GbigWYwVdqheWq1AqYMNwOOU7db9RwomF82ztkepjYvht4XyU24VYF68u7koW9gmA6bSyEtw8+Va3po+oR7BcwettGJEjjHq7it8xcj3uLMQx7W9Q6cTfvskts43IbhASTbn6cPPcOJLGD+m1V6vMAQj1rcg1fFG6JHPPSjHVZaqmarLUh6AeTdZgYPn/lQ4pVDBIoHxuCoWNbadyjp99+60RJqrv12Ggt4NO7I9nBAFOB8VpEubo+jLmHxcCSb/Np8AmR8NFJRd7IVdiNPFFI9Nn6xDbWgpa8jvBuBmjY5TkhmtrE74+AR3uiRlbg1fEnh/9fFYdnGLkSxSeTfbA+Co7fqIeLMbOUSA6fndenWaCqXawT2f6Mh7WXSTy8EAniqwH7+X8fLTOOWWOPqF5ByjqTudtjBHgQAJe/ySgbZfmRPKybdF6lCc4qL/1gm7IU8zo90wg9M5JctgsQFHe0pfNrdiTPOkg1xahfqWjwY=","translations":{"en":{"changelog":"### Changed\n\n- Fixed migration: make tex_enabled nullable so 2.1.0 installs on Nextcloud 32 ([#696](https://github.com/H2CK/oidc/pull/696))\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.1.0/oidc-2.1.0.tar.gz","created":"2026-08-31T06:40:40.718661Z","licenses":["agpl"],"lastModified":"2026-08-31T06:40:40.789430Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"m1Tf5G09FogQixsAXrWrGHOUm7OamZfvzuWFGdCLtIeQGqyUKwiB4AGxcQROLkQhpnXjiik0UXtQSCU09VdtTFE6SRIHwK5s9eqHiy18BZc2LjIJl2k86qzp5JeddLsOPgQXHS197zvRWZCOAGvg9Rs0i6tLJo0jWFX0zjfovfDcen+QqdWbtkdLBuDWVFIO0zOirGBdVl3/vDg28Ntn6bDSkUtKpIR6M0SGDJcxys2xTibesDgpAlvVQyzH1Uw0Yz90n4YxgUTYBmaX5F5cWjaNyu3t49GqjbqO/PqAlM/9/oKBdRoBwHEvkYUvlP3i0gt6qeGXcqwtY+X3f3MQ5WR2oSVuxzANHrs3f1RAU9VK09WVprT0Wa/Lh0cHAfe+TcnFazJYMc0exh0qeOikG0+/ru32dm5Mt6pVMzJNpY8MfRMLocg0CHhszrZQK1pZiCIjEVcaKEWfhCc+W+XtYMwruIvBiepQtqp30igYlgrfxzl+O6lLBxP7fhPKpfDO2uuTjklayzfjy33+fTBYWBtFLoicAPIfMRXPBbc4iaE8Kw4BoMzTvTIThqVEZPXWFfqP3pSBkzEj3N5npsOBgAOFDb6M9R3RwpNY8c3EsiSXkcf0d8xEMWWsWu7EFk75SFOc7ZcfnVh5Aj0RSLtREL9jqO28b0sa9EfO7vQGg9A=","translations":{"en":{"changelog":"### Added\n\n- Support for RFC 8693 Token Exchange ([#689](https://github.com/H2CK/oidc/pull/689))\n\n### Changed\n\n- Updated dependencies\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.0.9","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.0.9/oidc-2.0.9.tar.gz","created":"2026-08-20T12:01:15.027454Z","licenses":["agpl"],"lastModified":"2026-08-20T12:01:19.184011Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"LyZBQjEmEcKa1SSuEaCN0EfM9yzDERYcaLXeXjfAqsEe6E1txadn6IvJT02bl3+UkG9SLgUG5er0vzqXBZdGpuXi8rK9ya1U808PX1pqzq+kfcRCWm7Ayd+kn3knLWCeUKHTxgIWFQ26KWtcwFDpsH2ZdMbcP46V8eZbQ4++5JZD0s8K5AH84x/MH9O8Z3uOuFAWKUhkyyXci57Vb+QE7Jkti4F2EWq/3GJ9e8hv3UwUkzh8iS0DoNGSWJzRYqi1oBk7sbYlJRQAirwpyJmlsDqjEGkli96BN0H/RPHHVY4Lk3qWj86lHX4nM4pvuK0m786BiKSernAHw8BOSFdNuVYdXvvxHAlb+JIkw9BIxE3Vvb+k6ckTnCUQJJ27hesU0QoO/PRD6udND9tPM3nKiBIiZgSMuCZ0KDpdFoxLbSzrH9+R2/201aAlocPK91J3Rmy/pOiTqDrKdMmiI78h1LzpdXX4HITeScihd49B+Ous/8O5kUX4qWXFObm5g0nhTFi8atQj8BlpfGKVcO8sd3nKVpQ15VGLy1wahexCmmGx2pPME4OW3pC6my5tEX2W/u/RotU+pRtp8gzUk+1HOF6vF31xxvyc+B+J+FxbvJzJI/Nl2J/fw7R/NKyHv60qtlzlnsIkwgtr22SzKtH8ToppgSuD6kZ6XQTx9xD3cpM=","translations":{"en":{"changelog":"### Changed\n\n- Refactored client secret basic authentication to bypass Nextcloud Core interception ([#688](https://github.com/H2CK/oidc/pull/688))"}},"signatureDigest":"sha512"},{"version":"2.0.8","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.0.8/oidc-2.0.8.tar.gz","created":"2026-08-19T09:40:33.677902Z","licenses":["agpl"],"lastModified":"2026-08-19T09:40:33.760520Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ZdoObxGMeEJ1THq576w4QCjFeaHJUa1HT67HiTp89E3Pz0AmxM+oiwJoJn1TDusBvR7owSYuKaFYUs+4hE3SBdbexO4XgwDDXlToXH4N/189Rw8dvSAeBDyO0dm/LOawuY6mPlXqyicR5OPucQm7twOSylMblP9I2GStrrCwM6iWVN6IUcG4EfUi7YMjay/0t7QqkPrctTzdlCA3FMIjEDkLdg+5Hp8s8YnNRTdZwwqby6NrsU7VcLu2xiqiYozwqXOG2aRusHY+FbSdMbzYuSvl2qgrj5rEsG9YLBcB/V/4kZjT4/c31JB5yycpHjOjMppLhygv6a48Ql0FXxWoqOVhS1nkI7A4i1k4es5+qderAeXVIHslOmA7QWkWZuDUtNyYR+TdI1J5hmtT8F5PEkAANR/Z2btgDN7rNjIPZqWlSaMsUl+Gb5nd5XgWLrX1C+ZcTSoww7JgeXrMzGzihMp3igCYtW+9CiB3fvdxy49SqgjZCLrERp+gxqCvfupuPkhYfVYdwb9f11kRQeoa0fNZdUpBwWCMhibWYRpF7QDMo+A2bLw0Pz45IuoW8Uwa+REcrFjaN6CD3ltp2CeS0MdTtidOvYU6osrfh8t1iEwhjzm5Ua2i9R6nV2w7FzhHYo2dQUcIJSiKEz6qQHyBRWtv/Buq9yPvJYV7DEpKmes=","translations":{"en":{"changelog":"### Changed\n\n- Fixed client secret basic authentication ([#685](https://github.com/H2CK/oidc/pull/685))\n- Updated dependencies\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.0.7","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.0.7/oidc-2.0.7.tar.gz","created":"2026-08-16T09:43:53.321507Z","licenses":["agpl"],"lastModified":"2026-08-16T09:43:53.386144Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"iBHze8WcVZj7xzdfZ6NfZyJZN70jEliN5uo32N53iJR8PAhA6bqWZ9Qca5itf1dyGfBV5zBJx2ZHG0rVFGsoWY6UV8vi25KYsER4G1lxpJB55BDUUJXka87xBy/3SJGaffiO7bDI8MHxjHEgkDZt/uFkv5gRy6mIl7jJaMHL+iJ4B7z8gbyyJUvBdHFDMjbiE7l1Pv6KnckWO0/r4bknQ5s9MSFRYpPGyDG3x9zWXU1QRGRkqsMix0lKRyiS6HVN4CRSDQmC59Iiey57wghXjxd4I7GNECLZwZuKOVfFPP/0PS8FERJhYLTS1m4Hz0yaLdqzjIFvP0ig8b/rd+11zQxyyDf1z1zAKdhQ3VUpp9NsNwtykJ0TPDEvyvMetpSyeYo7KFh8xoKwAeZE9Q9paE1hM9WrP8vpAkeueLE3skYOJ9naVcgfDnTvrwX5mIi3e0k9gckIDrKCFwJk0Evh5+SjX/dDW7Uk+n+cTpjTfkmPVEch3L+mmmr+Rz8mTuK4Lr5VIOY7Lbuw0HyBgXn3sIptilbUOGtFm518dJtkyWZpw5RdbEjSC0MPjTvam4RuyaMqH9Tn0zy0PJLJRQTCUFCkCw45ssQuOC2HfA26YtZqSBdbVwluVjT/DLXsMhZaqWZRToI+LQH1bmbsdmbgOiIoQgavCsqIUZYl1PjLZnc=","translations":{"en":{"changelog":"### Changed\n\n- Fixed refresh token expiration when set to \"never\" ([#683](https://github.com/H2CK/oidc/pull/683))\n- Fixed Nextcloud ref fallback for OIDC conformance workflow\n- Updated dependencies\n- Updated translations"}},"signatureDigest":"sha512"},{"version":"2.0.6","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/H2CK/oidc/releases/download/2.0.6/oidc-2.0.6.tar.gz","created":"2026-08-14T08:59:46.235039Z","licenses":["agpl"],"lastModified":"2026-08-14T08:59:46.311510Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"YaZe7w0yZytWw8HW73Epom63kiAOUYqmuIzw+aoRJH61Wt5fviUCPLVOYQe+vbrtMngd/Mj7T2xvEs4FCqGnJrJRdFo6AFd0rsBaO4AcVKrTkrMcOmFh7jUPmpnqevNYxqbd9HaMUxXj4VzFNtuBig+e5ziYcbf7FSaUSeA6XAaURwmEveZPgqhb2TT0Zz8ciuFTe41T4xXjgk/7JE8FJNJjP/unK3vCnvv/7VgqJLny7DyrRqTqadiJ8V/QA4Bl0jbFZyaCMxC+v36Wav4xMqULNbJlB2j6Z8HpwStWKbLUNIJ+uAyYHinPXJI0dyuHZuCskO/PSIolokQbNQEHYW3IY+3Tjh5FoOzNN8wVEKih/t36dFS6eLthRVJBn/Qu5yVGrCDfsSUMDrh3AIVUt9oZ88D1XWA8on4RmKOia3J8Xf78jkLPdvsAeF17nLslQ6DCN+ClKnQyp63o7aLvuDIQbjoudbsiPl5vVLugKZGBXOar59C1b07ixpTgTL4mg9qnaTZ4NRypQ8SBRg4qgvA8WSgy4ENyCrQMPiidJOL9YCprzfc+wdLhvfILe/El5nHSVYGnSuOUnml/pbdIS8vlPkaqeIpeW8KULBRItIxzjKr207iosQs6ers2/tx8oTG6N7UNrSn+QdFm9i7pMoJm3cFTcCeMDNEJJlvZTk0=","translations":{"en":{"changelog":"### Changed\n\n- Extended logout functionality for RP-Initiated Logout ([#682](https://github.com/H2CK/oidc/pull/682))\n- Updated GitHub Actions ([#681](https://github.com/H2CK/oidc/pull/681))\n- Added support for Nextcloud 35\n- Updated dependencies\n- Updated translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0gyQ0svb2lkYy9tYXN0ZXIvZG9jcy9vaWRjLWFwcC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OIDC Identity Provider","summary":"Nextcloud as OpenID Connect Identity Provider","description":"Nextcloud as OpenID Connect Identity Provider\n\nWith this app you can use Nextcloud as OpenID Connect Identity Provider. If other services\nare configured correctly, you are able to access those services with your Nextcloud login.\n\nFull documentation can be found at:\n\n- [User Documentation](https://github.com/H2CK/oidc/wiki#user-documentation)\n- [Developer Documentation](https://github.com/H2CK/oidc/wiki#developer-documentation)"}},"isFeatured":false,"authors":[{"name":"Thorsten Jagel","mail":"dev@jagel.net","homepage":"https://github.com/H2CK/oidc"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/zCCAucCAhHFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMzE0MTQwNzA2WhcNMzIwNjE5MTQwNzA2WjAPMQ0wCwYD\nVQQDDARvaWRjMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzGuuxKz+\nSoDI1UwcUc55YK2aJCx5EY0QsB2X/5cSFSHqOHAdBKsbkDHL7dCwBtLVABxDqeIa\nvCroi57opSjRH+Vqm4scP91jgjT/aplpeZXp/EL57qiCqgKiW2FpfSO1NxOIRF7r\n7G1e+eKyhOUzXII/8EtDY95mPQi1bSGpKWFG3ZEY+YoY6goCGgjRCtJl7oMrWYXp\nFn7K8vTlp3p5KEeRYiHLwuLiHqjdzXel8rCKlITroHe2Ip5ySy6/ClovA8ZMdJpU\n+QZf7NLeGtWT6nyoVXIRcD/odKEu0DdRQu+WadM79VRbXd1LvLpPlvN2E0nz3QqR\nfHXD2pUWKBFCixmzrUuCtOtHQZjpwME+gFI6c5b9kNcOJ4t3YWpBzTVz/CICc9QZ\nodavGdosCNpigPJ3glHlF+FfynTXOBrEGjLe5R6X3OqQSW8ES1gqaQ+XG7+dG3rY\n0RDbPxvS1vWzRnyDylkAeHCEOk36QLugCDx84rZIIZ90pOWIhetDib9u0y8rT2RS\nL/pF4uzK/ol+C6xH30jU7li7KqDiwK9462Kow41n7i0ltNi7ulU8dtksG5TD9Gmn\ns5PZ6uIVefMPi2o+Oso9nHPuMrivtMiRfwb88RujdZbllhGEz+lV6aKIL4nNmBWy\nnor9080PMsyuS+bY+r7ZF5eIE47ud0AMwi0CAwEAATANBgkqhkiG9w0BAQsFAAOC\nAQEAAEUEO5yxKhdISgIn9z9jP85tWxX0RUJ8eJ2KcguGvfuBW4QG0EifkBSmfLqj\nkgILSB7pNNyIw9OlMLIWM18bRCGhdOMPj148NypIZ1ZlQcVYxnirMqUP3NrQb8zt\nEX8PFZp9AAgZgSqkHRlonXch0NEt594tzEV8+L+3zzEXrWw9fiFFGqHM8Ul8pgXb\nIp8rtZxqd6pATVwVbh1fYOhAQFUgoNnfpNcWnU4eciQBdvEJmurDuaslb9XUnLT4\n1LSNr/1FYbIRLh9Nrtl9Ua3QfExVFA0XMPyTjNIyVyvcgYHAmGa+UQSA7s1KbGVL\ne0jHeDQ6vmjUqt2R0LHN3ozGzg==\n-----END CERTIFICATE-----","discussion":"https://github.com/H2CK/oidc/issues"},{"id":"ocr_search","categories":["files","search"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rurutheGeek/nextcloud-ocr-search/issues","website":"https://github.com/rurutheGeek/nextcloud-ocr-search","created":"2026-10-10T04:07:43.804380Z","lastModified":"2026-10-11T07:34:58.867600Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rurutheGeek/nextcloud-ocr-search/releases/download/v1.0.1/ocr_search.tar.gz","created":"2026-10-11T07:34:58.858256Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-11T07:34:58.924947Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"knipQPWzmb+ykI3nHWQK+W41Z1NdhGZfCCIX2S+IP6qYYz0xPU7Xu83LIbteGk8ioeUS78W1ad3VT/4cuzGSUf+ARnzde8jkJQ9eMCqcapzJiNXFaT/s0XjppwYZkwSKhp6vZXWvH8O7uf1TOfR2rck0Z+p1sn7TmRzb2rESLECcdosUHlLMWNV/D4q8Q4ChWbAQZSXnNOD2er+XX4IycfvsC+aa4rIaK4P6GyLlJ/veN78mZZZQk+kjp5YHLOi/L/2XJhQ0YvydITrus4EK/6zCfVVEzYkZ66Nl4Q8jPMDMwUtSOZlgv80BaUWgFhRXGfcs1kTtbk4YUhvRp3dHY1MJvjHtMd5RQx2adP2WpMeynzILUnlo60qhI4t5G1HUM3qwNrCPZTprw5iwvqyVQ1n1Iod5rNu+sbu0lmQQl/cZF5tpd+4aFfhOaebsAafWATaFUz5baWaMPgIRJu1XxMJ2GXwbQt6+VykZTQQ95vJEucvMyWZ9aBn9xuLFsxwPXXJiI3eG0WiEz7679veBxoJVgdpf6k8gFTVbpWx/rz7pjF8/C+idGUfcUgLxvK1RhNdqk+YeZqB1p366cJEi+RW6JTvvR8EJmlug24NSCI5DOOtu3OHTYKkr+JZEPT4zatv6FEZfPnceprdSwk5cEKTHNRhV6vYN8SfZAv5utVI=","translations":{"en":{"changelog":"- OCR service: memory no longer grows over a long indexing run; the model is\n  reloaded when the process passes `OCR_MAX_RSS_MIB` (default 600).\n- OCR service: large JPEG scans are decoded at reduced size instead of being\n  refused; the pixel limit applies to what is held in memory (default 40 MP).\n- An image that is beyond the limits of the service is skipped at once\n  instead of being retried five times.\n- An image that makes the service stop no longer blocks the rest of the queue."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rurutheGeek/nextcloud-ocr-search/releases/download/v1.0.0/ocr_search.tar.gz","created":"2026-10-11T07:05:27.754588Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-11T07:05:27.835988Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"CKfj2b8yV4cvjpEpAI9kUKFtQ4xmbXfefGysxzW4fp7IR0gxqva3oyQBVfoDbhu1ByLajYwPTK9rSahz0DaQpHMrDrLmrf8Cwh9I3KiWqIRB+GtZJ2vHdVyGl+f6XJU7vuNOq/6JuynHwpzYYHIMtsuHBI8SCSZR2F7rt5hEf+xcnLRKrH0YJVeU9bBz4HVXQrwW50PfKZ4AycCNSoG1O/5fIg7lMW2o03eXhMlSAN3dyMQKR82knq9VksQFFitb1/h5EdM6RE3y33zoiy3zhk0ZADE8Tia0DeGoLXLCvAdW3H1L3DCaYcMF3r+5Kjlv+A3NcpOSLlfPWMiRMfDrBPewNVjXGYS1CPrw8ZPxnPABvepLjLejp05p/RXWi4Cxu8SLo7rKof639eMo9UJFBtaosNVqV50lsHN7tFQ+I5d3zQHYbyYvVmMHsrhMfx4j+BgLS5Z19rMd7j8BiBlz9LR8kNhwgsbk2gCIPsueQ6C4j7iYV+JVqckrRSNKqJZHLWJId67nI6TAZyLSGGgFmW2pgrGevI0sibhwC42Di3tlp6pWCWg8jusv9f8B3SbNwULbgudW4wxSixH/cvU29LcVIJNYIYH8Pqcj4QVu7SPHDXcNffrXa5RJQ0GOVkHxoJgefKdNASqtnYqvEhYnoykWth0g+wS+SMJERE8T7TA=","translations":{"en":{"changelog":"- First release in the Nextcloud App Store.\n- The OCR service token is stored as a sensitive value.\n- `occ ocr_search:clear --yes` deletes the index.\n- The OCR service image is published on GHCR.\n- Tested on Nextcloud 33 to 35 and on SQLite, MariaDB and PostgreSQL."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3J1cnV0aGVHZWVrL25leHRjbG91ZC1vY3Itc2VhcmNoL21haW4vc2NyZWVuc2hvdHMvc2VhcmNoLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3J1cnV0aGVHZWVrL25leHRjbG91ZC1vY3Itc2VhcmNoL21haW4vc2NyZWVuc2hvdHMvc2lkZWJhci5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OCR Search","summary":"Find images by the text inside them","description":"Makes the text inside your images searchable from the unified search:\nscreenshots first of all, and also photos of notes, signs and documents.\n\nImages are recognised by a small OCR service that runs next to Nextcloud\n(PP-OCRv5 through ONNX Runtime, CPU only, under 1 GiB of memory). New and\nchanged images are indexed automatically by the background job; existing\nimages are indexed with `occ ocr_search:index` and `occ ocr_search:process`,\nwhich can be scheduled at night and limited in runtime. The recognised text is\nshown in a tab of the file sidebar and can be copied.\n\nSearch results only contain files the searching user can access. Uploading and\nviewing keep working when the OCR service is down; images simply wait in the\nqueue.\n\nThe OCR service ships in the `server/` directory of this app's repository,\nwith a `compose.yaml`. Its URL and shared token are configured by an\nadministrator under *Administration settings → OCR Search*.\n\nRequirements:\n- Nextcloud 33 or newer, background jobs run by cron\n- The OCR service reachable from the Nextcloud server (see `server/`)\n\nPrivacy: every image that is indexed is sent to the OCR service URL configured\nby the administrator. No other data is transmitted."},"ja":{"name":"OCR検索","summary":"画像の中の文字で画像を探す","description":"画像の中の文字を統合検索から探せるようにします。主な対象はスクリーン\nショットで、メモ・看板・書類の写真も探せます。\n\n認識はNextcloudの隣で動く小さなOCRサービスが行います（PP-OCRv5／ONNX\nRuntime、CPUのみ、メモリ1GiB未満）。新しい画像と更新された画像はバック\nグラウンドジョブが自動で索引します。既存の画像は `occ ocr_search:index` と\n`occ ocr_search:process` で索引でき、夜間に実行したり実行時間を制限したり\nできます。認識した文字はファイルのサイドバーのタブに表示され、コピーできます。\n\n検索結果に出るのは、検索した利用者がアクセスできるファイルだけです。OCR\nサービスが止まっていてもアップロードと閲覧は影響を受けず、画像はキューで\n待機します。\n\nOCRサービスはこのアプリのリポジトリの `server/` に `compose.yaml` 付きで\n入っています。URLと共有トークンは管理者が *管理設定 → OCR検索* で設定します。\n\n必要なもの:\n- Nextcloud 33 以降（バックグラウンドジョブはcron）\n- Nextcloudサーバーから到達できるOCRサービス（`server/` を参照）\n\nプライバシー: 索引する画像は、管理者が設定したOCRサービスのURLへ送信されます。\nそれ以外のデータは送信しません。"}},"isFeatured":false,"authors":[{"name":"rurutheGeek","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhRaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTM0MDQ4WhcNMzcwMTE0MTM0MDQ4WjAVMRMwEQYD\nVQQDDApvY3Jfc2VhcmNoMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n5cx7V1rbHtvbSQs6yyJT/3pFyPMfnLXZZJi1SlYUI/zceSNbjaaWV1WQQ+3K4c1M\nAtwRrkBExjM8OF5O4o2iSAUwDQVWAJ7Y2dMpdZbzOu7yd1LS1k7vElwYecNl1yL7\ndtgpp3bUOGQqlNKNf0U8Ckyz5mDV7I0sRjDKvToC/d/yeakt/8IOdcoC68G9mY4Y\nr7bcvuweeLraWtO8u66JLvOseXg0ZkZFwknC9ID5ttA7lbteAMLC4Dfgi8R9A65W\nmRDcIo7Et8PEesqcKYr1+19tkdkcOgoOZnclsWC4AaHZ572Hs9JK5AUcyDE+TaS9\nTQbDr5jlDKg0IkH4qlEESKQr8mkl1wvNCbyBSCT3zKSaO/s5BoaW0/8rHsYBx+mE\nx2zoFy0NsqQf2VEixn9wQ5oysHNp1EQYIujK182o/Maahp6yFoo/QzY6wRdeJL0P\nNuULQRxlskd1QKfp+Xz9JWQjSdWY55a1gToezd2m/KOkySI37qVg/KfEiavVFwZC\n8R8uTnjw3vxoIPX+YGVC02lUZvHXXp4qIkSDzKdIPU7HNHPKKQfSD7ONyIEsS2Q7\nXREYg6NihlL4/UodnLgwpfejIY6mfxDH7XT29e8hMkyzsqzhIu4mrkK5L7DJYBbw\n/12vSPzeUP5W1YeAwbONlXi0MpTYWGJBQkZqaIjBpNkCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAd9YUrZCWuSQSjz5SdUa2/l1hUF0aeB220jz+LGb5YR/7XHeyxR4H\nzBbbmAs5hX7NYQJDxZS3s32gcE78Xd72h9Oc++lW22ZXpUjoLdUmqNIMZqMv731e\nNoEOA9MpcmUpFJmXbfJeMnA5MJyh3inBOMJx7Dg8Xc+HqzKqPFIdWp/Lyly0UkEo\nSMPmuHp+NoawFqM+p1oP+NjxTzdw1z+2bqiiF1vua6hCr8W3C9dULGE3YiTDt6WP\nEWFyZeZBnsmBs7ZFR56/tARvmjkykAVTgFlKBJQfEwtP80pTEe1uIx6InLpuoh1l\nLXjCR8fRtQYLTqlrXb8jiZtYD8E2cagw6g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_signd","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/lambda9-gmbh/Nextcloud-Integration-signd.it/issues","website":"https://signd.it","created":"2026-03-06T12:26:04.450617Z","lastModified":"2026-09-24T12:42:19.737072Z","releases":[{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lambda9-gmbh/Nextcloud-Integration-signd.it/releases/download/v2.2.0/integration_signd-2.2.0.tar.gz","created":"2026-09-24T12:42:19.723699Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T12:42:19.786361Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"fjCrLv3Ub31h2Dr2mjvX1uM67UePVhgoIxUQSuyKKjKyQQph9OnN6qZ5/HJaKSnr\nesURkgZUiKKQ30nUJhDonKS2V7+SrPG6qXanrFLTPWTYXWQV6xTmaueJo/gCPpBx\nlEp3gJx0thsqG8J7t8nPQjDdxqW0UfrTLOdTOwObSS2UdfRQJ7e9m1+XSAOgqW60\ng2DElRJAuCz9gju3T+ZM2puG2OlfVSEIWb9cMfdblo0sTIawJ1k7yiBKC+cMBR+Y\nZJ6GKaDRWITx3Pg5gZ/hfY4U6CJ4n6JIAZpc0SXGN0GXQqRD0rpkmXxLQYFIjLa/\npA3eqxZt9C0jSF3RWXnDxmUkNBZdSvFQjA3xt+y1fqZHweMGe9PlvqhigbJiXcnQ\n0bFnigKLWIzHkn224OO9RbZUV+TNjDaD68yHdZHeCvm/fx5ljLz9J3ugWCMiThRw\nfZVv7s8976Yp5eiqgFhvdOzLrfQ5KWUKQXVzq/H7/5CEbjmz3Abme9a/DzXLyjb4\n3/cLNRRFmah/skTU2cLrv+B2QZKQGX/Nevjr2FvqfsUGIyH7PajEQgB+tsK74poS\nLS6Q+iF1Wov1IQkd9/zsmev7N0GD0LzR8uyDrIgr06lNYu/v1DI2Pbx0pEZP755w\n9KqvxV7MFe13BhYcAMPyhFaDAyMLyNfILTdPWu3oPMQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbWJkYTktZ21iaC9OZXh0Y2xvdWQtSW50ZWdyYXRpb24tc2lnbmQuaXQvbWFpbi9zY3JlZW5zaG90cy9wcm9jZXNzX292ZXJ2aWV3LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbWJkYTktZ21iaC9OZXh0Y2xvdWQtSW50ZWdyYXRpb24tc2lnbmQuaXQvbWFpbi9zY3JlZW5zaG90cy9maWxlcy1hcHAtc2lkZWJhci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xhbWJkYTktZ21iaC9OZXh0Y2xvdWQtSW50ZWdyYXRpb24tc2lnbmQuaXQvbWFpbi9zY3JlZW5zaG90cy9hZG1pbl92aWV3LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"signd.it Integration","summary":"Digital document signing with signd.it","description":"Integrate signd.it digital signing into your Nextcloud.\n\nStart signature processes directly from your file browser, track signing status, and download signed documents back into your cloud.\n\n**Features:**\n- Start signing processes for PDF documents\n- Track signature status in the file sidebar\n- Download signed documents directly to your cloud\n- Admin settings for API key management"},"de":{"name":"signd.it Integration","summary":"Digitales Unterzeichnen von Dokumenten mit signd.it","description":"Integrieren Sie digitales Unterzeichnen mit signd.it in Ihre Nextcloud.\n\nStarten Sie Signaturprozesse direkt aus Ihrem Dateibrowser, verfolgen Sie den Signaturstatus und laden Sie unterzeichnete Dokumente zurück in Ihre Cloud.\n\n**Funktionen:**\n- Signaturprozesse für PDF-Dokumente starten\n- Signaturstatus in der Datei-Seitenleiste verfolgen\n- Unterzeichnete Dokumente direkt in Ihre Cloud herunterladen\n- Admin-Einstellungen für API-Key-Verwaltung"}},"isFeatured":false,"authors":[{"name":"lambda9 GmbH","mail":"support@lambda9.de","homepage":"https://lambda9.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhL9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzAyMTgyNDAzWhcNMzYwNjA3MTgyNDAzWjAcMRowGAYD\nVQQDDBFpbnRlZ3JhdGlvbl9zaWduZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBALx7kG5G2IrQoEnkn0MVuKPHZd1P16oSN8Q+8RxWNK600ekpahhJY0D4\nhC7fYwMtS5Ty1hoBiiUxCKWzGzkDlNp2deor5VAO5e56H83Lbl6cXwxet7tyKbSX\n6NesU/a7Of2rBz9Mf5014iWY5bp2Pk+hHiVxteCD7IFXoAZGb9YsoVQtIkqemN+V\nx/D6olO7xOCzN+tnoyWV0ZyHTq8ylAw9NoNNEFjCez9hW7C1z7kyI9NDUBo+CRtC\nLpRllPz2aDrRZV8Vl7/JtkJcXJEGs2qBNRyHhMMMyllDw6RQ/Nn6TFon/m1c1c7X\n6xORdmbPwJtTE70o8dk/U9TBQKazWe2fx3j1SmomdXJ3oE2tId8J8yqz+1kY0AjJ\n3l2OCBUdKfq/52WVqtCAyq3rSOiUooyEaRoc/uJnmNw6AqkFaANuZhc+4SCqfgHC\nPRWu9Voon7Teit2FHG+WbhxDM7WXFxdZb2KbC6w2JL8Lm/K+Dm3rXa+DacwmRNF4\nYlw5mJO4sKtgu+CMectyBdzKxQXgpJC0i38DVQGsKsFHtHYlP/bKTM76Aqb7Xacn\nv16uskG0mA5DUQsIOu89x/sGyp8hKLCfoaTO49aUdqFZLJmxV/VXrc3M2LymCxDf\ncJdgV+/gpU9Q7N+0lQLlJXDHgyh3PzThisECq1PUeJu8S5KfPZYnAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAAkUYVN0f83oLC+/ZWv4iMKP1nDQuW1lngUSOK5y/FPl\nFmfHcuaERHclfZy0/qPcQZCesVsJ9LLNRKdU5JFAt97cqqrRvrujb+AfhglRdmcn\nKFgkgCws4BiGKPCNnPlyUJ1/CG3xXov/6bgXA8RUXIgd9S+CvZscZHlb+bRzI5GF\ntpPthxPTUDKhK5LcP5i2e+CCCuoWOCVSNvENX0tOfYA6Q12ux0nbqPjnVHFSW9E6\nTLBiQqrd/oWW2a0prlTrxdrNIMOmyzjak5i4sIdtMTj0FeF8iSaf62OFwmo2WPp2\nyPadzDShYoMnUI7rGeXLtY3z0hU1z9sRuUb/kWigMBg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"wfs_downloader","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"http://github.com/nefino/wfs_downloader/issues","website":"","created":"2025-07-17T06:54:46.444321Z","lastModified":"2026-10-21T15:09:45.490312Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nefino/wfs_downloader/raw/refs/heads/main/wfs_downloader.tar.gz","created":"2026-10-21T15:09:45.484130Z","licenses":["agpl"],"lastModified":"2026-10-21T15:09:45.520413Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"vPsnc3ZJADB531wmAjFRJ6ZL3olO9JiAmf9uZVfsSopuQ7jNK6yN2ChDJckuA2iY\nY/8MWA5ZHrQNg27x73wHcKjVZi5F8X2YNpSa+Yuoj3vHxTXU6Cmbx3BSP2u0p/Z9\nMDC4o8KN8GUWtlnhAEpNRWu88aLuCIT8Wz8lDV/uY/u4XuK7ffGv8U6mKzosVErB\n8iVoLcpY/GTgt9ZVf6FVBtjlGw1+i26X08z1ftNKVmzYodOEy936qooL50nvIX08\nDPd0ryxpUBTxI+C78MTTjwL/+fB3Pdo/fUYMO2yIa+rULjnMkq30ZEqC7Z5vbvBp\np14qPKYJNywD9CQXpOyBHbLycVvJ9sla9cLxv1MsKb5hS1ZJPifGctJonCZFButY\nIaU5WsQ+mluDSACa1ErzlgnqbbfOpAUP7ZTW4n/HheL0ELH2FmvOao2IZeWs3Z2o\nZwFDOUqENGxQ00JNsQ1SPy80rEZNImdjwFIew08cc0oREQShXSYE2q8msj95Owzt\nlv/5wci+ThkQhniKB1lO/up4tDUFVUABjwT6RGgSw0C3CABkRkEF7q3dg09rjSZo\nKkLasVCoyJfcu9KjjU5MC7RpsVFM1Bc8wL4V3Scj/bPxxRGFARqk6pl6d2ovSYaa\npHrtHMtlton0tgAc/DmxUdtxq4H4aC1mNJRPXAm0FUQ=","translations":{"en":{"changelog":"### Changed\n\n- Support Nextcloud 32 to 35 (`max-version` raised from 31 to 35).\n- Require PHP 8.3 or newer, matching the Nextcloud 33+ images.\n- Release tarball now contains only the files Nextcloud needs (appinfo, lib, js, img)."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"WFS Downloader","summary":"Downloading data from Web Feature Service (WFS).","description":"This app enables the user to download different data from WFS by providing a URL."}},"isFeatured":false,"authors":[{"name":"Cedric Fauth","mail":"cedric.fauth@nefino.de","homepage":"https://github.com/nefino/wfs_downloader"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhKxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNzE2MTU0NjQ0WhcNMzUxMDIyMTU0NjQ0WjAZMRcwFQYD\nVQQDDA53ZnNfZG93bmxvYWRlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAO3qPf48QXrrxrojoI55xAfL4rXDVCld13g4FFrfKqvkUmSQRsIA/W1krKUx\n5vZRyAjCh2Cv/tyM1MBWInzZETorvM8+nxHvet6ZrSrn7qeQEUwZWh8gP17uRqb+\nj9vd6VOS5B4Mh3cW/q0PlU4e4sssbs2+qd3zsk0lOl5U534Mk2qKYmqhHAIDYp4O\naB+nf7NK2knO4h5nCViht09V5dMa/Is69Qap/yaN/DrFWA6EvhgRUfcP98bmxAvy\n0aIS0eMiB5iysMjB3/sOBUcHGUGn6QvYM7iSUE4HtaMUWenOOR4CjnogSpnytCBi\n5P1670q98S1ea88UsIOm9HRrpSWmAgJYJSOtKTLLVIrG8dz/MjKBo/hJcydYDFno\nqXBjmPrpYYKHGXnxXS7MWT6rbOaxxd3XETGgzuqbtDNu+s+21wXF+ygcPbWWdKMb\nR6mAI+vx6ZUi/PD2TXzcladunMFtrHeoSQI76y43BjrjOHqOJC1zKVAC8PqWk29T\nalhE/UFIbzLBEmG0WTWA2uy1pVlU3gZjRbD/fabUPUTq2gNxfAWF/UMU+DWaw5kN\n83nOartQEAM4ZKYrW3eMIIPXAdHYG9CeNTTZG3GVTKmDGdXnn6evoOsdpD6h8um0\nUMhvcNuIk5W5lj2wkZMLJoodCnZMEC8mAmiy9ZPd1ozsZj8PAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAIY05cU4QmnthgrTfK1dujMdiClEXmxiGto0Kh1IqpJKyYO4\n9TiPVxql3qJQYgbNURF4a7XIYTJsVvTK9pl/+OpScgUc3U+XQGrrGzi3IILhMpBr\nUKDU+uXXqJi9qjxuZoLUN0VfOao5vwFPBM3qYgq8LpX/xoRIqExtBXFrmQ5UAGgL\ntaa4bZoGO+Z4m3N8CFJIRUSTR0YxyomsQat+mokTXkmKVhsaplf63o4IEhDplHhI\nNJevuyAcgKtDiziBsJ1es9Uy1ykyVXbaandCuZNBtR0P2koLntmbaNrOeE+89+UY\nQfq7yhKVETPhD7XnjcdPdE65OILJamjCaDLxbjQ=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"flowline","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/issues","website":"https://flowline.support","created":"2026-10-17T14:52:29.253565Z","lastModified":"2026-10-20T20:29:57.583674Z","releases":[{"version":"0.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.6.5/flowline.tar.gz","created":"2026-10-20T20:29:57.579175Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T20:29:57.631885Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"48tgeZ41q3VcLnt5A5yyxQ7RDuf3gPh486h8g/kkA26sMaOSbBemtLNQ+Yk8nGMDfX/cCG4pXYSvNjcsZKvSC4gysbvQFkRHfnKlVGci8rjxjAoo7V7XAf7lxuCCp/GpdVC+9+rZbnQx7qeqqWukC30fMPkmXigPmfuw/cn8WErSt04oYPUJEDUill9f9n7anivi07IhqEQaFGr9GjW78XSEH8jtxGWrKaA4Zn0fCFXuQ08+QK9kFg39eBDe+itc0s/p6N7Z71KZ29wYcLq0lrJ2QzT6OIpEPgQe++v4IpDxZMwcokQ9r6ONjdbiAo6Z5CIECjoEP702vGbC8Fy66dHyIgxF04k5pEn8XOowNkqkSgVXETa16KcwcKMa84GpAG8SEweyZ3Y2bEi5xTPRA5S+KM9TiNH06mR6AduUZ7CMsG94yt1WMMA1OHF/k0hXgMPalX6IEJjeelQfGQnheWUPe6Q8Vgz3zWBmxY28xhTzjDLQnW7lCRfZT3p7Dmqnc9FpKvCkniTUekfRXI6XpzTuAGIsvcDExCCvf5mKFes1sNF50An3F4/Z/3KplIEuscnBLX1u36573aZlQePzFJOou1wvKHsOEg1NpSneveJ9JG4ReycWJq25tiM4tBw/JeqNa2S59+6hveX4PiUyUyP5WEhH8Mce2s0vt8AP620=","translations":{"en":{"changelog":"### Changed\n\n- Réglages admin : champs d'URL vides par défaut, sans placeholder ni URL en dur ;\n  la capture de la fiche store est mise à jour."}},"signatureDigest":"sha512"},{"version":"0.6.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.6.4/flowline.tar.gz","created":"2026-10-20T20:16:05.464880Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T20:16:05.509244Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"pz1dZ+8baxHKuO702blk9PsEcXXZY9xz+Xa4UFYvg1XWMtkhNlqMbnfimXR8U0eZdLm1ZZcLaj45sALL+Ur2WOdnHwgvlsCaCZOvXTBvbtzGIXhSDv1ZD7fqZXQK/Au0N3vHa9bWiLSGdW2poaUiwI6181SlTmRN3sXiQGOa8zJ+JImKNjKvZMk53wrR+bPbyz23K3QQuN8l6YDo23W2rjUqRg+rhEXdiRzvES5+ZlYx3JHRmbbEAR8Zdh03XHSvQ1yprcHTPu9hanRQzQHfa0PpYcaJv/I5+f81Hl84qg1PG4aTLi83ox1V3oSeKojggrTCvgt/qpivChuk4XXJox5P/KYVt/pT8xbx3n9e20YwTNzOohDrEwf2nca5vW4+6gqqQqxTkG/0L4jjmbxhEY1miKDLIiNnLeyGsGL4X1BbHD6RoJ8Rs4syTXPEZZQURmQaUBM54O9ifDkJURMBkg2Idf0UBQkw8sYGBwR/S8v7s/hAYYe5a7EnUpwidFRDpYH5gO3XGzETCTueStvG5c9S20Rg5xHFcmIGlonMlHBJsfDx1zD8TeqT2l2btMuq2loxQ9voELKrI/5+KFSSaRMQh5WSyXWNAFA8LIUYTT6p0OpcWJij9VtfNyjxEwaRmskE5wJw1zVRIKMikIrp03KDYTTyUBUkM36D7F2Uafg=","translations":{"en":{"changelog":"### Changed\n\n- Réglages admin : champs d'URL plus larges et non préremplis avec les valeurs par défaut.\n  Les URLs par défaut ne sont plus affichées dans le formulaire ; laisser vide utilise le\n  service FlowLINE par défaut. La page personnelle continue d'afficher l'URL effective."}},"signatureDigest":"sha512"},{"version":"0.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.6.3/flowline.tar.gz","created":"2026-10-20T20:08:02.833629Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T20:08:02.902038Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"oB8yMpAKc3dYY7OwB093k2x37pjQhYYCylnUg6CD+R4ZcqF5cTRaZZwi5kvGH5WlC3GVA7Qb8zq60Ya/SdpztV2U+uLGVSCeM6j5aR8oK9Bgt5uJWnSgM2AxA2GxwH/1p9qVcYgsG5O3QKUM8pBgzYgjKTfHL6RKZC6y267L7cuHevU0Ls0WFZU+FPdMdsCOSKaOSV7NGJwK6EuZJ16BduxbHoAsbd9gehCW5zzajv8Ylsy0mD1IYBW92mHXffYYWKoMjOFTPyyby8ZeEktL899L2Z9FJ92cAxQ91bSgFCjfth6zNDAfvZH0Q8+ek/abvoWsgB/WvGL5TQs14JtUXJZyvINgvBqLAFydQNp0yyTGvXht5yUHUy+3wCM7EOxWXTNuoJZAw7fvOQUgg8QXj0tBUggLuwhtBOhvFCO9BsFQeippIa9L4nDg8pQqqStoHoB9Vp7mPh6iEfFU30k44LN+elu3r6lYcFcn1jxS3MwftPGcFQcdwlW2JWlFNbTw30g8e8dYaT+HZ13ykQ9Zu9SVVT+DruI1VnS45F6IrYfi5UDS2mgBgPnlIPL00x/23vAjqhlGDh4B/GgWaVYX1ylTGbVXkx0wrkHhQNI7o8cWkk/AYyyNB9M3lPeZntkfRMcVhzSiU0ztzTCtvlv6AQ2w+Scin73fbmLNJ6NNCQY=","translations":{"en":{"changelog":"### Security\n\n- Réglage de l'URL de l'API : refus des cibles loopback, link-local et réservées\n  (métadonnées cloud `169.254.169.254`, `localhost`, CGNAT) ; les plages privées LAN\n  restent autorisées pour une API auto-hébergée. Les redirections HTTP sont désactivées\n  côté client d'API (contournement par `30x`).\n\n### Changed\n\n- `axios` 1.20.0 et `follow-redirects` 1.16.1 : plus aucun avis de sécurité en\n  production (`npm audit --omit=dev` = 0)."}},"signatureDigest":"sha512"},{"version":"0.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.6.2/flowline.tar.gz","created":"2026-10-20T10:19:40.839804Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T10:21:26.290405Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"wHamODyf8BtZhoSLWO0nBQqxOrd969orsbkvVCdQRPYVQnyGuas+2tcwBSFVPHwd1+aPkeAnWnwTrLvsSdCUqdcEaHu27vNE484J7wnYkKJgv/8hYFufEyZBhoF2frBDcD34bm5Huk6+mwX2OsQqhZPNkW61z7ShEloNO8w29vKu+I375qLMRStr4FW7OqrxTm0jNBFVPdelKyT8B7Tw5OXUSJvIw0Peyd8FDEEUO6I/S+if6/oGeRqwPyC/8hpmoXmxYWptjVwrQOfcsqvmiQiNwxTDg8mN81aAmJn1ibjKs9Acqt20yLfT3KVYp7hnl4SdUTev1J0t7O9IjhpPXwTQXVDI5B/RiDsxoijlAlixgVamSGwqeNtsAz3Op7SKvnESlKd3ppeKjWWMs09xoPCLUDmv8QN2VIqV8iQvqNvClvTq1UJPebE/9sKX+mgKgJJ+W9G/SKy2av4JEQEG59LYNiXOEpaYEjAkno0VC4zT6D6l8Tdjzju+S5jtCOQ0ZhQK0ML4UgTNzXDe8+u6PiZbsur9AEIYMw3PIZQ42dcoSWAa89L95pxb3vID2nzNPqcLwgSCk+xEmseTcjJQGYTSim4/sij/h5n0ri44DiDCI1gz0ndVpaA3QqPve1/rX84gB8kzopwc/IS5iB9PZR5mzNNN18dCv8gLGZooQe0=","translations":{"en":{"changelog":"### Changed\n\n- Fenêtre de support (client web) : ouverture en **popup dimensionnée** au lieu d'un onglet — auto-ajustée à la taille de l'écran distant dès la connexion (bornée à l'écran local), rendu 1:1 quand c'est possible ; interface épurée (barre d'état, bouton plein écran — plus de formulaire de développement) ; connexion automatique à l'ouverture et fenêtre réutilisée par poste (re-clic = focus)"}},"signatureDigest":"sha512"},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.6.0/flowline.tar.gz","created":"2026-10-17T16:14:09.038301Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T16:14:09.101689Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"DnhckChLZypp3itabIh3GlDXo2uXWGXkakPGSm+a0TpuqYrZYipnNREHBY54I4NWjCyCJww6sopZkpOOnrZfGcIdgmy/MXt0SaZOCpo7HPr5XjEYYTGj/o3kF83kfdGPfr2itmJPvm8nlZvWQ5kCh6uLq9nsmXkK45E/Pg2eXHZ3GurVgY/CMOUN0yaRwAl5FsCdL2nhSKrbeqcdwPBHIYLe+P/xC1jnA+0LAZoKdhx1GOfAy7jc9w9mNKQ7mT5auPsn9/dfrcYKFXpp19zaE+9NzZlJ22qV8Cq24U45r4f6/8vNYDGtgK+4zM69Ke8jh/iHdEYZhAONOI4EKdrxiS+i0ZRmZ1gEqkpXE0Rykm6aF86910paoMJBlYwayOekbyZHsSOAVGvl1xJa0tYZs2MGCHoFnpJh2f6d6QTmwkwED932rfljzrSJz8AWYvMPKT4vvtnjea7hv+6iS18C7VfOCyuXXBctNAoNythzXqqxyNZG0ksZ7K6aBwBEivzqq8QDEMyR355Ma4yavTkaM3prSid5V1wzqanBmiXfdBEYFArmlLVYol15Ca8KIzaMTugSCW/eBkttis8upxIgj6Lpnv17mkwkTJidHR+2PEG9JTm3NjA50thNCUBvF98ZLs+aEpjOQ64CYt69YTUjQ4cvWX6m87QgA8FLY0UkKQM=","translations":{"en":{"changelog":"### Added\n\n- Notifications Nextcloud : une session de support démarrée ou terminée sur une machine du compte lié produit une notification (sonde au tick du cron Nextcloud, ≤ 5 minutes ; l'historique antérieur à la liaison n'est pas notifié)\n- Le compte lié (jeton chiffré et curseur d'événements) est supprimé quand l'utilisateur Nextcloud est supprimé\n- Bouton « Ouvrir la page du module » dans la section Support (page de téléchargement du module support, fournie par le compte FlowLINE)\n- Traductions françaises de l'interface (console, réglages personnels et admin, notifications) — fichiers `l10n/fr.json` et `l10n/fr.js`"}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/StreamLINE-Solutions/nextcloud-flowline/releases/download/v0.5.0/flowline.tar.gz","created":"2026-10-17T15:08:54.752733Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T15:08:54.826310Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"mboEi9D3rhvMUS/eEtFtMZkgg1xOAFNAb6iPU8RP6oJiYs6qdQt8qN46NtQl/40temTnOABBf59VkOmOLc2UDfN/eqMiCoE4SQ8F+0YCWz15izVExaZt0Wzf1kdlSwmo+T4Amdjin9QfaoBsBYlIBacAIIepeW012qTsUbGG1nx2lq7XwCYJwvPBqH+K7n1vL1fexf0jPuFVdYIpHXcrzFNmfh0AUewucex4Xdw4bY8Wsisl52DcOo3xTfoZKa7DZt2COUFpqEEzQ+06g5hKz1aUJ6wkr6PL2tkNoWy6CrQ85z5BBckHl+otKOyfFwazHTekwkJpQkM2u4CJ1L0zM+j62GixcxvjivO8C4qYXJRAnIKHLqBvWUHKDeRrpbYeM8L/wRmpv61Mv/AejbwHRMgc5l6XghSOyZ/VvYoGQzvOXfuoMdeT3mDUH/uV1BgIoBe8WAFYeJLKdWxjPcPI0IfuOI6TazU0Qz/vCG70suhA2H+xztfhrLD7ctSnXkUS6D2ZeMIIDdq9ZimSrPlijRyEAI8uPDeLx5pzuK7RAMLjQakltn+2WEz2PSi8N2J67iH98GXpNfP/QTfCbf7vARSAA6IPbGjIqZWfSrU8feH73D0D17Uk1cA8YLiH/h3Xf+4Uujx2o6lXkSdjpMS7txO8ealupK4Ea3r+JtjWPjQ=","translations":{"en":{"changelog":"### Added\n\n- Liaison du compte FlowLINE : jeton API personnel chiffré (`ICrypto`) dans la table `flowline_accounts`, cache `/me`, curseur d'événements\n- Client de l'API FlowLINE v1, côté serveur uniquement (le jeton ne quitte jamais le serveur)\n- Réglages personnels (lier/délier le compte) et admin (URL de l'API, restriction par groupes, activation)\n- Endpoint OCS `GET /ocs/v2.php/apps/flowline/api/v1/account`\n- Machines du compte lié dans la console (badge en ligne/hors ligne, OS, dernière activité, source support/parc partagé)\n- Sessions du compte lié dans la console (actives et récentes, durée) avec bouton d'actualisation\n- Endpoints OCS `GET …/api/v1/machines` et `…/api/v1/sessions` (proxys serveur paginés, filtre `active`)\n- Fenêtres d'autorisation support dans la console (ouvrir avec l'id du module, lister, terminer) et copie du lien du module support\n- Endpoints OCS `GET`/`POST …/api/v1/invitations` et `DELETE …/api/v1/invitations/{deviceId}`\n- Réponses d'erreur OCS stables (`error` : `invalid_token`, `not_linked`, `rate_limited`, …) pour des messages adaptés côté console\n- Section « FlowLINE » dans les réglages + console (état lié/non-lié)\n- Console en onglets horizontaux : **Support** (machines + fenêtres support), **Connexions récentes** (sessions), **Compte lié**\n- Assistance navigateur : page `/apps/flowline/webclient` servie par l'app (client web FlowLINE, endpoints WS injectés, CSP restreinte) et bouton **Browser support** (machines + fenêtres support) — aucun jeton transmis au navigateur\n- Réglages admin : endpoints WebSocket du client web (rendez-vous, relais) en plus de l'URL de l'API\n- Tests unitaires (AccountService, FlowlineClient)\n\n### Fixed\n\n- Console : rechargement des machines et sessions à l'ouverture/fin d'une fenêtre support + auto-rafraîchissement (30 s) tant qu'une fenêtre est active (le poste apparaît dès que son module se connecte)\n- Fenêtres support : état explicite (module en ligne/hors ligne, session active ou non) au lieu de « Module not connected yet », et aide « démarrer la session depuis votre client FlowLINE »"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL2hlcm8ucG5n","smallThumbnail":"https://raw.githubusercontent.com/StreamLINE-Solutions/nextcloud-flowline/main/screenshots/hero-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL2NvbnNvbGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL3Nlc3Npb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL25vdGlmaWNhdGlvbnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL2FjY291bnQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0cmVhbUxJTkUtU29sdXRpb25zL25leHRjbG91ZC1mbG93bGluZS9tYWluL3NjcmVlbnNob3RzL3NldHRpbmdzLWFkbWluLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"FlowLINE","summary":"Remote support from your Nextcloud","description":"FlowLINE brings your remote support workspace into Nextcloud. Link your FlowLINE account, see your machines and sessions, invite a computer and receive notifications — without leaving your Nextcloud. Requires a FlowLINE account and connects only to the FlowLINE API you configure."},"fr":{"name":"FlowLINE","summary":"Télémaintenance depuis votre Nextcloud","description":"FlowLINE amène votre espace de télémaintenance dans Nextcloud. Liez votre compte FlowLINE, consultez vos machines et sessions, invitez un poste et recevez les notifications — sans quitter votre Nextcloud. Nécessite un compte FlowLINE et se connecte uniquement à l'API FlowLINE que vous configurez."}},"isFeatured":false,"authors":[{"name":"StreamLINE-Solutions Sàrl","mail":"contact@streamline-solutions.ch","homepage":"https://flowline.support"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhR1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE2MTY0OTUyWhcNMzcwMTIxMTY0OTUyWjATMREwDwYD\nVQQDDAhmbG93bGluZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOYl\n/iCIAYL0XV9gTBPav87pD2jzzr8cUvoWRiJcDcCQqPVjEyRKePRe+Ci73otH0xlF\nB6n7XH1FEOGH2KM1WBMngdr+xlKln5uuGpU6Whax7j6M+3wIkg7E3CUhmyKQjS/Y\nO7a13116eF6e7/y9XPc9cE6Z7PxyKSQon6U2p5G6ImABmthkdBlacf1A//CblA8u\naHTctyVxj9OW9wmybsqdmeNYG+rRL+9NSkhkZ0zCRnD2Dr6k4osjz/boMVgTXrXp\negVEN69GRnivHJJye3sxFJ+HRnTVO30UYNrQ/nAuaOWuObw9jteUC4adnGImtzMh\noAUE27eZBH1iYMGChppwTv9N3+ZnSMHpzs4iD2cjhIdbKkR/kgeasfJoXO1Jh4IH\n2Qy1fx3aHMT9siPMwLk0r6K768P+UzTQjBIiEBJ2WlqvjnZllkCiaaGdYOPtwfo9\nor9O3khALSw+dgaEggZOhtaZLgpEJDqmdI6J4ZnmklreXGpZTJVnkV1xTTXZ/d7D\nzldnjhwTopc2szsuLSICtFkW382Ln4E1Q8e/ekB/A3b4/sfIlN9iS2Qb3iqEqSdd\nRGl397M/d56vsj/p/3c8PvaS2mqsdXRZG1bWCmnRwwdl8+mrGEVfVETNYVbmogrQ\nCLPcuen85YRmlsygs7hw45LarFB6eceLYjpCkiYzAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAGnRDEEkSSPRnGpinW8VPWDe93QMKR0P/sur9MngdPeAx+xss5DkfsBF\naWA9zXaY3Q3/eWv5UlV7L5W+fsN+1fpzVTnoKpswDJWAwr5dgUUGcoxxQNjDJytU\ndQMNEGUtLsfKazAoAuLNF0cO4G2xtc5E1xX7RcST0JSsyKxDS2/GZCfKksx2H1Tv\nmjDUYhjFzPQk2sy8viS7GktB+hLjacJMqCf1x5aT0KuFkDnSwmabeA+VOdt0D750\nX6uuT3p2BMrwvXu3/pFpbgzYXBL36IFolKdIELQ4R+6Lkah/1mH15i86ZyFheGYS\ntqAPVWrFzxTt/pfKwPIhRxffaPim4ZI=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"timemanager","categories":["tools"],"userDocs":"https://github.com/te-online/timemanager/blob/main/README.md","adminDocs":"https://github.com/te-online/timemanager/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/te-online/timemanager/issues","website":"https://github.com/te-online/timemanager","created":"2020-06-22T20:48:42.238105Z","lastModified":"2026-09-15T18:57:05.124663Z","releases":[{"version":"0.3.26","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/te-online/nextcloud-app-releases/raw/main/timemanager/v0.3.26/timemanager.tar.gz","created":"2026-09-15T18:57:05.101461Z","licenses":["agpl"],"lastModified":"2026-09-15T18:57:05.191696Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"nhNxfdFmmhplMX40w9VImteG0T4oUvlkreU+Ty9HCHbTsqgejQR8z2Q23kzWJ8qo 3HMah9pVOxAgMfow8nFT2GROEDba7mHN30v9bbCrwWguwZdkxE1DFIiCRZH6wvlO eOwHs5+9vPQ+tyJE4zhJn658pDNZgdOfeaRaXGKSo7UkZyRkTtQluk1G/IfhGBEC rSc9ZNW8l9kiKdUlvB49qhtjQqw67anbVsBxtJJacCrKXWQx7nyKuqHbVQ4OeWGT EzWfB7hfEV8YTcv5mxiy5QM17igO5LCZAL1gGuU2qhcTgpLoJySyawmDaHeBinwI 5TgJEWRFk7MeYuAlNb6fkJVAkS5WHMfTquaoxl9uuS+1/F6qV3XlBR2WMeF0z9t4 eb2hsiH3kDB5X87TSYrlZnUkNktdwIsJCK/Ph7r1qRHDx1DuuZ038/9PKlOth81f 9Vt2aXQ85vZq3KnXBJpQl6mfQON1dK/fmf4k7nILBprwN7nqwAP3Jf48qBJc1Kou fCYAeXxfISpfCcV0h7A11BqG8gwxhnoYnwYD/xze5vVihK9Tlh6YwDp0WdgxRC9T yA39kQQeulydGCw1pNmaLOgVj/WUfDYuonFA5QGAOgNh6UsGSadd784UBTEahfxZ o7K7kCEdtkpNoqhxweJnapeVu78Pf4lF8IXbYxO3nt4=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35; Cypress tests run manually\n- Note in quick-add component if user has no tasks created and tries to create a time entry\n\n### Fixed\n\n- Install JS dependency updates using npm audit\n- Mobile navigation button for small screens not showing since Nextcloud 34\n- Removed extra reload when navigating to reports page to add timezone to URL"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl9zdGF0aXN0aWNzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl9vdmVydmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl9jbGllbnRzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl9wcm9qZWN0cy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl90YXNrcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS90aW1lbWFuYWdlci9tYWluL2ltZy90aW1lbWFuYWdlcl9lbnRyaWVzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"TimeManager","summary":"An app to track how you spend your time.","description":"### Time tracking in Nextcloud!\n* 📁 **organize time entries** based on tasks, projects and clients\n* ⏱ **quickly record** a time entry for your latest tasks\n* ✅ **check or uncheck** a time entry (e.g. to save whether you've billed it)\n* 📈 make use of simple, but useful **statistics** and **reports**.\n\n_[View changelog](https://github.com/te-online/timemanager/blob/main/CHANGELOG.md) to see older releases_\n\n📱 **Looking for a mobile companion app?** Try the [Android app (currently in beta)](https://play.google.com/store/apps/details?id=de.jbservices.nc_timemanager_app) made by [@joleaf](https://gitlab.com/joleaf/nc-timemanager-mobile-app)"}},"isFeatured":false,"authors":[{"name":"Thomas Ebert","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9285714285714286,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhE5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNjEwMjE0MjQyWhcNMzAwOTE2MjE0MjQyWjAWMRQwEgYD\nVQQDDAt0aW1lbWFuYWdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAK/8PEUOD4u1+eKIU6X4jckcav01/5vMQb5WKTz3M88BMCzgCNQ/I5mC6F6Rs8z7\nf0cYsOQVMaWWDCb0XdvSeXqi5JhwJGxRkfNRxGyGMi+KaI558Q8k+kx0qlBdYxWM\n+UMZm/S322BiU6zjWZwnOUiDJmAcHHobx2eKQ7GeNtSDbK3V1aANw/J1se3YWiU+\nFQp2+ZzfhxqCI2wvPwYsPlWmFRfs2qeLt/jUB/FZipLj8Ppyvm8C190DFRI05+9l\nKgDBgqoXGj+xgH5PoJompjJBl1USqHTEgJNgI9p9gb0vSo7FtmP3ZGY17eOOuq15\nf2uE9O92RDHq1RzocKrd0bs80iF7/Ku89piRJ9ZbYT96+S5V5/4K7SMEXMUMIYtt\n3RtRDuzAk1cW5Lmi/IxlYJBbQGF1Dmu0k5z4Y5BZvpj3DRtMXmvQB9tjMdsG07rM\nBiLMsJNoQkDbRU+8OXQ6zNEqV456IvccfwIQ6Y/bPHZckHU673QEysOXympCE6Oj\noxq2pw9w/FhUzlWqC+vEwPCYReCJpNBGSpeknmWdcfO7weOGURGKPknK++fi6nR6\nA0pBzia49CO8BY1Ooge4MKesDzMf+y1TRgmayM1Pt9ZwyKxNKiYDq7VFb2HEuDT0\nhUUoycWgcIqAR/8a5hqafljRBXugnwtSv9bc7+rAlnsRAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAB91/7PIM3z9X5O004vKSnRUWuWqYZ5NZQUjGb5n7TQLjv6GKMR7\nXPu4PAf7KitCPBxeyWlIpMZfR0loN7Onw0owNm6aCKmDuORK4aDvoJ4RwqrtfLZu\nstcOOF94yi2IUMtbqNvtc67hA4PQIbDoCtCTX+c/xK/w/vAJVG82G2afEmf/YN9f\ndQUeGHaICxwf3o+iSJi7eK43H6bsUqxPgmQ+2T7rMv9o1SGIyzDLkVRNcrvHdxvQ\n9sBiV1FXfV6eX1MA46c86h3dM2urWS5KHlIPtrUK4TOvAp5xsVs8qcOZ+28Ha8dH\nuN+qfqRd0eQ02KNzgZAk9gFfomdNhckHsrM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"checksum","categories":["files","tools"],"userDocs":"https://github.com/westberliner/checksum/blob/master/README.md","adminDocs":"https://github.com/westberliner/checksum/blob/master/README.md","developerDocs":"","issueTracker":"https://github.com/westberliner/checksum/issues","website":"https://github.com/westberliner/checksum/","created":"2017-02-06T18:41:50.820590Z","lastModified":"2026-05-14T08:27:03.542182Z","releases":[{"version":"2.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.1.2/checksum.tar.gz","created":"2026-05-14T08:27:03.513275Z","licenses":["agpl"],"lastModified":"2026-05-14T08:27:03.643617Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=99","signature":"hTnxNNguH8FRRjRtxUSPftA237uI+JU1pIPGrVP2HTjaFuxoIH4gnynmrl4jVTLz\nCVdS+MK/5USZdWJkdawQsn6P9ZRquGI2FXVZh2kG+N0HlZnvjAFMne8OQYjtT6n7\ns8dS3VaCOjjsmGVzdHwcRnQnf+uJxDVjE4VJ8+kmWchrNg+b8hwbxZpWuqWpRbY7\njOIBrIJXVxOd+iIs5RjA/Z8RYRXDrlzGX4iuSCcUzWDDQunRdKGYo5Gu27JvcnOC\nkP23iHm1kYNxApARns7CDaAn0qE0it2zHhLXyiYZvGrZfRQHhafJy+Jqfex5ndAq\nN9Ccy9XJlNcPrhQbphlw6isVPjv1bj2nka1wfia71B+QggFV3a4WZ2HG0261j0bo\ncxBkzkrjJqvF9I+FbdZ6o7pLfQH9vAVrgfEWu2iNvDaTKsuYAqtoWOfLC8vOYIrH\n99ZTC6LUSUnwZsLjedwJ92x5qzdsAHWSpd1+5+nx6IPV74tJUVajq9nDTUt77qTu\naGgOnqlAHhzMmbSkxN1n7dRzOMOTn5kcURe+XZx4SnHW7oq+eBdeqp9LBvn/aGdM\nwIw3cXlpTmoivYxPqcQblHvt+/tF2AA8cOVlB7mzqVakoXvsWZ8OyZZjf0KLRah0\nD6njJ+kwCNo5lxhYwBWaF/JT+T9Slj+qNqHJNG6ngEo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.1.1/checksum.tar.gz","created":"2026-04-20T07:00:21.782673Z","licenses":["agpl"],"lastModified":"2026-04-20T07:00:21.934584Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=99","signature":"VXjpRx66ugghPfvbyEXErJoTi60EiTUt4i/PbkOTRgSxgpwLXaHTkGMfHmwMEQjJ\nQpMdM6QLmTdUZ3B9ihlIn2sJSJtBiaoSQFaPbJmSDfIOOCwbGtYZTzGatK2p7+Qq\nXqfjALGNoyWVjaWJXUYZG7Wea6l/d5hp7EIJ9vrUjQoBh/JVPrn69LxazIcfxGvE\nsTMU3oOUXZbL9qol7R5OFbMeTibZiO9U+6luTqgKUbE2Q4wZQyo4wCZNrlKI00GD\nxH7UBHGgh52/rfazGo7bjv7gbmPmjrU2TpcicZd2rI/RxKN5iOzJZa+t1kbYgiuH\nH/E6hgXJ48arWaRBVlkC8J63SmPpolBj9SosUnTrRrzKrsnqFMMfhXwaVIF1z1cO\ndadwumxnG4aDyr2T89DDABAMj8aefLSdJrRoNNWfdYrweUSNPMvo8PugYm1BYOOV\ns+B4CW9xMsQiDWm0gySE247p+GPdOeI7q3o869xGpIy0Qpz5HY56IZBrUezlsFyd\nbaur03q1JHBpd4OcT0nRy+EnHLtZZ5QwBAy0zQ6ks+O4fUoJWrVkj3XuIPUv/BVT\nbggZnYjSm1H5JxgQfDRarL27XnWPb2xYIYUJ1EaPFd/8aN29y1BZOGlqq+0KGNK6\n3bK/E/mOcbHd2w9tPr2TzEPAFdCxELwZs8ubgjgsJhc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.1.1/checksum.tar.gz","created":"2026-04-20T06:54:15.186875Z","licenses":["agpl"],"lastModified":"2026-04-20T06:55:40.941674Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=99","signature":"y3uzLUoiYEDIi9fVAaakNTQF9M7kwooYSFBUMDTPFu7xbAZ8AR3kqwBxfUneE9mo\nvc2hoE+6na+3cV3bgG67zT8jDCS1rXxtieNqQm0Dvfzqdin2bZG7RVlzccE+wVc/\nOG4SE23af3y8ZYqcGljEL9IQM/BG0nHS7A3yJWJfzSiu3FNXv/e85CexQFej3ilC\nhYrx7KshTcMO9WdbFQf8E+hHF12BcqiskT9cewzEWhUYQ5uaKMwII/URyfAbPxKS\nyzwnhh6LOogvSLuNEBA7cvm/jJBo79jYiMS4Hfr/OFmYXsSYrpGLqT/THOa+8m2y\nrhCKteU05b+OrsCKTnqC65m+0w6sDY4zCiyir3Pv5231Z8cfVUOZfTWdH+/AqlfM\nqppnKDMGZ+0OrFGQPH37pub54a314XZTVPbxPuDYBEfEqn9U9dKXKq79aYLFafgA\nDQE031wEXd3BwK40RpjZl+IOyyyP7xZSc+bCCLgHArIGdv3CgfvS8HLrp6uoIPUm\nzn9jaJUxfo5o/FqT/wR6CKV6dLMQdydmsYd/pFCc6giAS1yTWCwQvrCvF4jbmTnh\nyFd7RWPjd0VLrv+L7wwUBXtRGbehL6L2qtDQGoZc66plA3h6SKUwMyJoQMd0rQAf\nrJHJhFJ8j2uxx/n6+vsjk58UkBPsktjeeHsR5fZptDo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.1.0/checksum.tar.gz","created":"2025-11-16T21:00:46.582284Z","licenses":["agpl"],"lastModified":"2026-04-19T19:24:29.109256Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=99","signature":"KAAvRmM4ZNV0nEpmuBfC94ddULOPx6nCzkqS+M0vqH2L42lVjMOSis173IBs4fu/\ntRBN8b6Ufn3pg9dsuosWOPfeRWhMcK3f00wMYm4dvnPFAyISwVEoM07q5iainnti\nz9H5Uc7u90xSbgdFci1DBbahKMpL8epNKph9rPqUaj1qro7WVJtBGE+NnYMAn4VJ\nztiNZ3AAwy+MU8ZHxG4afrPpeUwcJXEEcKIZB0yfytKSF2zXXeEP9fIIh1L1bk26\nAlURbQ/uZkF6tRdM6/OxH1kd4CWbugSAYBCrwoyeJBh4JWrLUm7jZ9eX7SF3Q1pB\nX4hoc8bYSUVPWGMZb5eyaE3HJky4/SnDpuG4BNIqKa6JTL+FNK0ldi2dg8fqMRWP\nOxSCmM8OtcMgGy5rUbsIicfgxqMFZosWG+8KtJ+pzdT+LGLMajpxr/JUegr2i5ux\np0k/89nOjcujhqIAU8aFDOrALoXQ3SUbkwH8IVFIR0ZXdgTBl/GJLByvW5UzFz4o\ng7K76sHpg1OA78067DityamIvSgLXY2LwjPz/NCRo+z8dCMYHHNKbI0eZg7XbhNC\n/2XVJtEKh+Ch8vQjN8Ll1+RNIhqI35QRg1HU/YbqEwHjhJn0fasiuJZnexJJOlTd\nzDvThD2ORws+BlNbWOVbl27TSy1ioT0bQwZwn+Rtk5U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.0.2/checksum.tar.gz","created":"2025-11-16T18:11:41.848416Z","licenses":["agpl"],"lastModified":"2025-11-16T20:48:11.542265Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=99","signature":"rFmFabUdkhtFE6+VMtAqjL7Z+UfRjsjzFRt3NhdJRIk50XG1QBz4FX5zovz/ti6I\nXqeEjmrQHbU12vh2XmaHpiOk+AsuFpj4aYnDIejhned0AEFnNnf0YFv+RJUGhG/U\nU2EpS9jDw1iOInUy3CXHHFxiF/piSK4UzoqhXHzUlq7CRpjXmoTDRpA5AtyGOTEs\n65vwiJlEPGdXjtLi4vLNoNXjCPtfWO9zG0BrgdLPysA+wxZ25h79QfbSwoFj2ld5\nYmmhRzFkjdKN5tlSmGVGh8leDcNOgPu/dgZevNY0tcIy58MMnvd6ZBwBVbG44Qm0\nsJhLOfLqGaj96DMgQQBpJVExFO4HtedPTH9AVgLZNgfnGjX46X3+E7VkiS083GH3\n6hAYEn9lKBBJF7cIXGezSjLbw69rRfs9ka1ojeovxstnYuN+PqWVQwPKNW3r5ETU\nTV4W2p1zO/35QB8IQalUSomO1Zt6bnfcCpgNSOPBALPT8Q3CiiBk5kGiTpnjX71C\n0DL67+neM7jq8aFu2rLwp+yOQsPCDlpS8pPlvGTjmqnXSSzLcspanHqiB7fSTh+q\nCrpskkvDHHbaMA25TUGiDA7I33cXTbmriaMjhVeHtJr75TBVG9oZZ1YF4wvLdqIz\nWOsw8V+MlMEwyIm0Q2FYHgk6m8prD/Br/tsrUXiDXis=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=30.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.0.1/checksum.tar.gz","created":"2025-11-16T15:12:33.825585Z","licenses":["agpl"],"lastModified":"2025-11-16T17:36:07.776280Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=30 <=99","signature":"CaMPF+Z+ccca9Wj67mQxaPRrcI/tkWsMFNj86xZ+G0XJM2ixTJjl8ZQIhrwdGGcC\nxdg3mn1+u06/Yng/erlEXn3ujUO2kqtDWWJ146dT+cnlpCi3twhhv/bT9oD/XY30\n3TNZKEXgLEr48NpW5dO8at9Iz9gKRKINL0PfZkTWN4e04lyKEYgCw1J2j/ZcZ52F\ngYB5Mv6jP/KCpe/5khEEyJm+QUVz/pPFtd/JVxbxBephcksnvNCtfaZKapFCVIbH\nRtSn/7/wZzS5cfuyThD25ZlKWoKVrHDQOmfsNADWrOZvE7LbdH+lGF6kL5zwPRjJ\ntOjBZoeO/0Zoxzu8ctzr+eBmUGH/A2sHm+f2gymsYNt3tewqr/If8hTZJZTyOIW4\n2fV5dSZyHqRxd8i3CMXSunDKKTlmZHtDWknB/NkbrJ5nsB2Lf/P+ns+qu4j/94x7\nM9CtP9GZNeiGOEOul/39qVPkjN2DOHlQ2+Mvhh7THedtwPku2BsRU0WUdjhcCBGe\nJIbaLVXY+p/O5Sctk8iwmE7eT5bWkj67JhdYPWSdXYM2w6vOtvhCE3tSsrs7jm3o\naKjpKonZ2z86weRRcxTR8iAknWHZjBVdMMJHePLeS6sE3IaREOMWVUFFNvQ0eTyJ\nToz1IIhrilRZM+ZgHNwTHgFA4qErP8EnwQoMQMhbNIw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=30.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/westberliner/checksum/releases/download/v2.0.1/checksum.tar.gz","created":"2025-11-16T17:33:54.949539Z","licenses":["agpl"],"lastModified":"2025-11-16T17:33:54.964082Z","isNightly":true,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=30 <=99","signature":"fuaHobv2dYSbESgMl21SsornqJbBxI3HOlbOmV+/gOvhQVUWRTwY6+n1y3O5cysk\nJbOWEJrvep9IcE40a0NYgvGRyh4bNkuV8kIgCKilz9vMBwydDkhazeQUpsrjxQH0\nS8JQHNbytXtD+bvFAKeIUDxIckR9W2daIx1SHy1/OSpXHX1UPA0PoA/Z5pTFQw8T\nYuskqFTDKomG6pp2lz7/ubyjIcTXIDMZtvyjkLRSW4LK4fDr9oLlOhE3BwHTPUno\nCzVw6PomXfIVe4IyDWan5mcqShSsX+mbQ/LNPPcnTDzmOHw+vHAd03LLeZlvfwce\nZwmVitb8KGiuS+IkTezgRcnZSIvIzcQGltEqFpp7T+7cB4YGTN1QOR3TC1f0VyBH\nx2qXinDVkqM7uNjle5ifow65NcMCL3nJc+VOaZ/FhihhBbTkekMO48LwlleBQgYO\nxvCh5eBrdTrtlydjudSVIESBW/j5fxF+DFku9CoeM21R9xZceV2yw4hBxqeccXd+\ndSbjcIJNQNul53AtdeWxIKx8SH2mM1B4MVzGPqfJlhpTw1kH/2eyNGaKCd8PIn1q\nu4i4A/8ud5DCgNKj4EvHVItpjo7aiUscIwXNY7UPCtDax5QHrCqI7CU4bsrrzUWX\nS87p7XZBT5u0dzKPIu63bGjnCeASjkNp7JFt6rN0X9E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dlc3RiZXJsaW5lci9jaGVja3N1bS9tYXN0ZXIvc2NyZWVuc2hvdHMvY2hlY2tzdW0uZ2lm","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Checksum","summary":"Creating a hash checksum of a file.","description":"Allows users to create a hash checksum of a file.\n        Possible algorithms are md5, sha1, sha256, sha384, sha512, sha3-256, sha3-512 and crc32.\n\n        Just open the details view of the file (Sidebar). There should be a new tab called \"Checksum\".\n        Select a algorithm and it will try to generate a hash.\n        If you want an other algorithm, just click on the reload button."}},"isFeatured":false,"authors":[{"name":"westberliner","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9166666666666666,"ratingNumRecent":0,"ratingNumOverall":12,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhAwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwMjA2MTAzNDE2WhcNMjcwNTE1MTAzNDE2WjATMREwDwYD\nVQQDEwhjaGVja3N1bTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANr2\nmIdM1xNBZHBZovs6MO8A84td6YePrY2ZkuLf6tKPzmUIJkVjuSqImXM2b5LN1vKC\nUhGv3Wn4DJvqyJpkSmz/bT1ZLc69ZpBY5acbqo77G1/0rwBxuFf0irGq+ugEk4Dc\ngP3WHfNfgHzR9QTGVgRtafMpek+765T4+KZLoqF/th+oRox4Qn0AVlrpI10QRMhd\nDIPWBgdgMwrZzjel795hHBmXOxb7iAU5zv9I7wgUQ0HLtwIsViO42W4rsShkaf5k\nHLmqQXcZHSzZmzQzvJSQSkDhEgPZxPj5/eKrEVe/TbXHh2y1jf63IFmYOoBt9/lr\nZ7LG52nzfxrGt6q6zsmWongSAwwNZZwMNh0xKK5xnsbIv1qQ7VOtGcew/Z1iqjyS\nF7B7bYv3WdSRCPD8ROirBeoV3dYI0qcisbeo+YP/M9WuNUUWPKv21u9GVNx0g2SR\nvx7R1M6mtEd05A5EQHo94mZ71kaDQA/k9vGTL970U0/jB5W5taEoLXMZitIydeLy\navi0zr8dFooUTmIbHxoFrCmJxUEzxewEV8Ib9Mf+S0ckqcgskjUMJA4IBUeu1Wbc\nsbzHfmf3y+/NmyH4CwLfxmMY74nthtMz6/wbJchi9p5dRVmh4JWk7uAmF/R3z8wS\nb98V5Pl9u7UaF0wEwWu4jHc9Btkh66MVICPLd04TAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAILdCiMI6mywlxLdhdvI6b99BkHjRJHrJ7PioRIv50AulS9U0d+JVedv\nczo0d67za8f/kZl4bZeKTbHD19NHrGa+00Bmiz8MRV+D1PCk1wENh00GGVR0xVoz\ndsP1jYaNJkdlB6rj3mduxCu11rU8+pDOC6C0n5O34qGyE5J9G0jXOb6GAcNGUdfO\nTzFmoyZh0bOObdm7w03cZEBYPEy3yF8MZJ88APXLUoJbhvHsZ3DxTFgXw+HVSATw\nxumVARVKMnSBMtZo4rvSV2UQKjKonBwbzF1weKJMBEz19p5a9+IG6s6gzhUdAGQk\n6G+FNAOSPe9ng5v+UNMr8xlMQJDBFGg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"threedviewer","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/maz1987in/3Dviewer-Nextcloud/issues","website":"https://github.com/maz1987in/3Dviewer-Nextcloud","created":"2025-11-04T08:28:37.602401Z","lastModified":"2026-10-19T10:51:58.151614Z","releases":[{"version":"3.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/maz1987in/3Dviewer-Nextcloud/releases/download/v3.6.0/threedviewer-v3.6.0.tar.gz","created":"2026-10-19T10:51:58.135356Z","licenses":["agpl"],"lastModified":"2026-10-19T10:51:58.188930Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"wgF9SWWbzLH22o0y9lzTkAUX33vlRdY37uuPVanE2nMuer3V8gTzxkFnfGn2m6iXOWfHvlTAM1xMXbMIiFOCvTTw5rA2GMq+T+QVh8kAyeDAOtQVU7Rr0J0+x2PK0HNkmwlJstOc7xGiYEiVLXEu6mEKbb99Q/o7xlkUsgvmAuK6Xxu1EZvWJi30bx8pJwJC3jbRMaZX5CRWYpoPkeoOCqglgXTm/j8wCqNP8W4ofmWZlOdqM5VQoApIv3Iv9Bvtp7lzau+r+saUNcgShEHuMhiODLeWDdznd5XUrQNLp7yLiYM2tk/brB04F9qIL0nr1BJtA1qhOe2nlIHtmvyp1Yy8bEryIPLKgWHubSyMYV8qUt5pJP3b5ZOmlDfNYBpru1mNJVNFOPlEyWw/74lRAWRadFY3dOASyyUfzcr0rMraMcvKg3Kg881XEAPiizNfTCHi5trQR4+gfbd7e42gT2Z5KGuZLGllAntMzP9B/ZwMl5VuFZLaWJNosjkOdry5TRH8ZOn1hyEj+vP4fdi+a81Wcq2yRjuER+LG6SL3LKkVIjXLCnat1N0nEzxOfPEi3VPNDy6jNJhoX8aaDAQJklXFc/TcD7+6MwLXR/ZXLlxRZ7dvpu/tO3WQF75kxCo94Z6fILOS5EhjDf0JZb6iFscELiwK9R7A8XaEiqHKFY8=","translations":{"en":{"changelog":"Annotations and measurements become shared notes that everyone who can open a model sees, and the app supports Nextcloud 35. CAD, BIM and 3DM files open again on App Store installs, Rhino 3DM files open at all, and the Favorites view lists starred models.\n\n### Added\n- **Annotations and measurements are shared with everyone who can open the model.** They were saved privately per user, and measurements were not saved at all. Now each model has one set of notes: share recipients and public-link visitors see it, and anyone who can edit the model can add, change or delete notes. Each note saves on its own, so two people editing at once never overwrite each other. Each note shows its author, except on public links. Existing private annotations move into the shared set the first time their author opens the model, if that user can edit it; otherwise they stay visible to that user only, marked \"Private, not shared\". Notes follow a model through moves and renames within the same storage; moving it to another storage, such as a group folder or external storage, gives it a new file id, and its notes are removed by the daily cleanup.\n- JSON export includes measurements, and import restores them.\n- Nextcloud 35 support. The app declared `max-version=\"34\"`, so the updater listed 3D Viewer under \"Apps missing compatible version\" and an upgrade to 35 would have disabled it. Checked on 35.0.2 by upgrading a 34 instance in place: the app stays enabled, and models open from the Files app, the standalone viewer, the file picker and public shares, with nothing logged. Nextcloud 35 types the schema and file APIs more strictly, which surfaced three changes: the `folder_path` migration calls `modifyColumn()`, the only form 35's `ITable` declares (`changeColumn()` was a deprecated alias of it in every supported server); the slicer download endpoint no longer treats a folder ID as a file, which deleted any folder older than a day inside its temp directory; and the temp-file cleanup job skips a non-folder at the temp path instead of failing on it.\n\n### Changed\n- three.js r185 → r186. The Babel config moves from `package.json` to a project-wide `babel.config.json`: r186's CommonJS entry only re-exports the ES module build, and a `package.json` config never reaches files inside `node_modules`, so Jest could no longer load `three`.\n- Babel 7 → 8 for the Jest transform. `@babel/plugin-proposal-object-rest-spread`, `@babel/plugin-syntax-dynamic-import` and `@babel/plugin-transform-runtime` are dropped: no config referenced them, and the first had no Babel 8 release. Babel 8 needs Node 22.18 or later, so `engines.node` and `.nvmrc` move to 22.18.\n\n### Removed\n- The `/api/annotations/{fileId}` endpoints, replaced by `/api/notes/{fileId}`.\n\n### Fixed\n- STEP, IGES, BREP, FCSTD, IFC and 3DM files never opened when the app was installed from the App Store, failing with `both async and sync fetching of the wasm failed`. The loaders fetched their WebAssembly runtimes from `/apps/threedviewer/…`, which exists only when the app sits in the shipped apps root; App Store installs land in the writable root, `custom_apps/` on the official image. The OCCT, web-ifc, rhino3dm, DRACO and Basis paths now resolve against the app's actual web root, which also covers instances served from a sub-directory ([#188](https://github.com/maz1987in/3Dviewer-Nextcloud/issues/188)).\n- The file browser's Favorites view was always empty. The controller read favorites through `OCP\\Files\\Tags\\ISystemTagManager`, which does not exist, so Nextcloud injected `null`; it also looked for system tag 10, while favorites are per-user tags. It now reads the user's starred files from `ITagManager`, and the browser renders the flat Favorites list, which no view state reached before ([#205](https://github.com/maz1987in/3Dviewer-Nextcloud/issues/205)).\n- Rhino 3DM files never opened, for three reasons. The published app shipped `rhino3dm.js` but no `rhino3dm.wasm`: the wasm is git-ignored and its old source in three.js's `examples/` no longer exists, and the copy step skipped missing files silently. The runtime now comes from the `rhino3dm` package (8.32.1, the version three's loader names), and the build fails if either file is missing. Its emscripten glue compiled code with `new Function`, which Nextcloud's CSP blocks; it is rewritten as it is copied, the same repair #169 made for the CAD runtime. And a worker whose runtime failed to start never answered, so the viewer spun with no error: the decode now has a deadline, worker errors are reported by their message, and each load terminates its worker ([#204](https://github.com/maz1987in/3Dviewer-Nextcloud/issues/204)).\n\n### Security\n- Production dependencies updated within their existing ranges to clear `npm audit`: vue 3.5.41 → 3.5.44 (`@vue/server-renderer` XSS), axios 1.19.0 → 1.20.0 (prototype-pollution gadgets), brace-expansion 5.0.9 → 5.0.12 (ReDoS), source-map-js 1.2.1 → 1.2.2 (event-loop DoS) and DOMPurify 3.4.15 → 3.4.17 (`IN_PLACE` sanitizer bypasses)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hejE5ODdpbi8zRHZpZXdlci1OZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvMDEtbWFpbi12aWV3ZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hejE5ODdpbi8zRHZpZXdlci1OZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvMDItZmlsZXMtaW50ZWdyYXRpb24ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hejE5ODdpbi8zRHZpZXdlci1OZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvMDMtdG9vbGJhci1mZWF0dXJlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hejE5ODdpbi8zRHZpZXdlci1OZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvMDQtbXVsdGktZmlsZS1zdXBwb3J0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hejE5ODdpbi8zRHZpZXdlci1OZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvMDUtZGFyay10aGVtZS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"3D Viewer","summary":"View, analyze & export 3D models across 20+ formats (mesh, CAD, BIM) with thumbnails, annotations & rendering","description":"A comprehensive 3D model viewer that allows you to view, interact with, and analyze 3D models directly within Nextcloud. Supports 20+ formats across mesh, CAD, and BIM families with full material and texture support.\n\n**📦 Format Support:**\n- 🎨 Mesh formats: GLB, GLTF, OBJ+MTL, STL, PLY, FBX, 3MF, 3DS, DAE, X3D, VRML, OFF, AMF\n- 🏗️ CAD formats: STEP (.step/.stp), IGES (.iges/.igs), BREP (.brep/.brp), FCSTD (FreeCAD) — powered by a shared OpenCascade (OCCT) runtime\n- 🏛️ BIM formats: IFC (via web-ifc WASM), BIM (dotbim JSON), 3DM (Rhinoceros via rhino3dm WASM)\n- 🧊 WASM loaders lazy-chunk: a 3–7 MB runtime only downloads when the user opens a file of that format; air-gapped deploys ship their own WASM copies (no CDN required)\n- 🚀 Enhanced loaders: Significantly improved FBX, VRML, and DAE loaders with better material and texture support\n- 📁 Multi-file models: Full support for OBJ+MTL+textures and GLTF+bins+images\n- 🗜️ Compression: DRACO geometry and KTX2/Basis texture compression (needs more work)\n- 🔧 Centralized format definitions: Single source of truth for all format definitions ensuring consistency\n- ✅ Format sync validation: Automated tests ensure format consistency across backend, frontend, and MIME registration\n- 📦 Bundle budget enforcement: Automated bundle size checking with historical tracking and CI integration\n - 🛠️ G-code toolpaths: Support for `.gcode`, `.gco`, `.nc`, `.acode` with 3D toolpath visualization (smooth rainbow gradient coloring, travel/retraction filtering, automatic layer detection)\n - 🧩 Extended G-code ecosystem: Recognizes additional variants `.g`, `.gx` (FlashForge), `.g3drem` (Dremel), `.makerbot`, `.thing` with proper MIME mappings\n\n**🎮 Interactive Features:**\n- 🎯 3D Camera Controller: Enhanced intuitive circular controller for precise camera navigation with improved controls\n- 🔄 Model comparison: Side-by-side viewing with synchronized controls\n- 📝 Annotations: Add notes and markers to specific points on models (always readable, faces camera) with customizable visual sizing controls\n- 📏 Measurements: Distance and angle measurement tools (with billboard text) with per-user sizing controls for point size, line thickness, and label width\n- 🎬 Animation Controls: Play/pause controls for animated models with loop toggle, timeline scrubber, and frame stepping\n- ✂️ Cross-Section: Interactive clipping plane to slice models along X/Y/Z axes for interior inspection\n- 💡 Lighting Presets: Quick-switch between Default, Studio, Outdoor, Dramatic, and Flat lighting setups\n- 🔖 View Bookmarks: Save and restore camera positions with display state (grid, axes, wireframe, background)\n- 💥 Exploded View: Animate multi-mesh models outward from centroid with adjustable factor slider\n- 🧭 Face labels: Orientation markers (TOP, BOTTOM, FRONT, BACK, LEFT, RIGHT)\n- 👁️ Camera projection toggle: Switch between perspective and orthographic views\n- ⚙️ Personal Settings: User-specific preferences and settings page in Nextcloud personal settings\n\n**📂 File Browser:**\n- 🗂️ Smart navigation: Toggle between Viewer, Folders, Type, Date, and Favorites modes\n- 📋 List and Grid views: Switch between compact list view and grid view with customizable default preference\n- ⚙️ Default view setting: Set your preferred view mode (Grid/List) in Personal Settings\n- ⌨️ Keyboard navigation: Full keyboard support for list view (Arrow keys, Home, End, Enter, Space)\n- 🍞 Breadcrumb navigation: Easy navigation back through folder/type/date hierarchies\n- 🔄 Lazy loading: Fast navigation with on-demand data loading\n\n**⚡ Export & Tools:**\n- 📷 Screenshot capture: Take high-quality PNG/JPEG screenshots of your models\n- 💾 Export models to GLB, STL, and OBJ formats\n- 🖨️ Slicer integration: Send models directly to PrusaSlicer, Cura, BambuStudio, OrcaSlicer, Simplify3D, Eufy Studio, and AnycubicSlicer with enhanced security (file size limits, MIME validation, rolling expiration)\n- 📊 Model statistics panel with detailed information\n- 🔲 Wireframe and bounding box visualization\n- 📐 Dynamic grid system that adapts to model size and position\n- ❓ Help panel with comprehensive in-app documentation\n\n**🚀 Performance & UX:**\n- 🖼️ Automatic thumbnails: Smart thumbnail generation with content-aware cropping (configurable in settings)\n- 🖼️ Progressive texture loading for improved performance\n- 💿 Dependency caching using IndexedDB for faster multi-file loading with live cache statistics (size, entries, hit rate)\n- ⚙️ Performance modes with visual quality overlay and automatic suggestions for large models\n- 📊 Performance scaling: Automatic performance mode suggestions based on model complexity (triangle count thresholds)\n- 📦 Code splitting and dynamic imports\n - 📱 Mobile-optimized UI: Responsive toolbar (icons-only on small screens), full-screen help panel with sticky header, and performance stats hidden by default on mobile (≤768px)\n- 🌓 Light and dark theme support with RTL layout\n- 🔗 Works with public shares and authenticated users\n- ♿ Accessibility features with keyboard navigation and ARIA labels\n\nBuilt with Three.js for high-performance WebGL rendering. ✨"}},"isFeatured":false,"authors":[{"name":"Mazin Al Saadi","mail":"maz1987in@gmail.com","homepage":"https://github.com/maz1987in"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhLKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTA0MDgxMDEzWhcNMzYwMjEwMDgxMDEzWjAXMRUwEwYD\nVQQDDAx0aHJlZWR2aWV3ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDnE42wyWoV2dJM9P5a0wX1fka0RV64J/zwc6phoNTGOt6l2KulOVkwjhiGstJN\nZDtJ56Zc3WUYReEZUi7QLkJjb7t1Tyorz24gFDytMxPAzOQ0WICSY3OBEJzPxXzB\nlq2XM+EXuyS9en2VRbjtA6BuYDs0leF8Ucm5zVAHNAHPrlWCHeiHHm6qwtYPlRy7\n6GLmdgLA9/lOK1cL6leMPZRv5ths4tsda/nRfnXJp8i1n29+PrqSx1U1V26z1Oyg\n4W+kYmw/CVQPw3F0dYsmdWG5Esp9WKP4LkhRuIvqbt5AWB9Ymb/zNXQgMcZBo46e\nLf9jMYH5WWnXsuJV6kypn4pkyhjyy8dGsVGPR/O/YafVe5xqTYUKVxyKR5v8pxoB\nNqPTKKCe1dyhPrb5aUibc4MIRVq7YNKL7cHqtt0Lgii0AtDoXlFxo+o4iNhl85id\nz8aBcDcrNpAlWHvEqqMeuzrdm5wbWdFS9PLzjsjTH2HVLJwWzNY50JIJfgECBrRm\npgx2xcE8artReZUyvn4N7OhQcIMlbiJJD3GAqo+royLWk+saObAMewc8tL9WCDDT\nzVliibBIC4cS8TNxeWJBCDE31VRcchUpnOIAl6Ks4BqAjIZWOHywJ1LDZMjYByBK\n0kJ3YbbcJ8G4wvhllp+FDeK+72Yaf2W/vXeAxe5RT14XAQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBr2FhVbBHoSFfBGsLfBQEwVfjBGUb4gnzMmqHHMcFwrQiWNejZ\noK7KqUu28cuU6BjJ5/K2AZBW3/eU5zcPlv36G+VGYfVSsmT50G38fXyP4rCxICdL\n0hZnKSJU80YLCPy2uSPJ6os3gcIp7OEkRLukU/Be8GEVZAlX5dVds3ve7GFA1K/z\nFI9AMqwGnueXbncuTDo7QGd268qYNNWh/jYloQ7sdW1NCwKGvpPXjB80rw5briXk\nZzf7xuMLAobzRxY23NlBamP7wdv355TWXlrFBkaKdF4+aSzELf9LpXzDsQ6SaDI4\nMol4XeYOOXOL40adta2oG9/2k3GKNRfSh5Qe\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"paperless_sync","categories":["files","integration"],"userDocs":"https://dennis-otto.github.io/paperless-sync/guide.html#usage","adminDocs":"https://dennis-otto.github.io/paperless-sync/guide.html#configuration","developerDocs":"https://github.com/Dennis-Otto/paperless-sync#development","issueTracker":"https://github.com/Dennis-Otto/paperless-sync/issues","website":"https://dennis-otto.github.io/paperless-sync/","created":"2026-09-04T06:22:04.116839Z","lastModified":"2026-10-20T10:17:00.544415Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v1.1.1/paperless_sync.tar.gz","created":"2026-10-20T10:17:00.539475Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T10:17:00.600367Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"LgTsDfsrXsdkE1WpLvzvZO7bUE3tuWV6j7cUUDBGpXMb84fQ9eXfVWOk35sVigXE4/Y9qEDmZ4PxznI9WN4nbxJXl5pgrFFKi6HnjT3p9UTApVjI6dCdA4U0hsobxYYsUNzgq0hcVVCVsCPUDdv4iKwPn6BQNtYLFRQ6glfPHwNVZGw9g16ZCacID1imjuUmiZx87xbWQQNBrsRLbV4wuibvmOSe2u5AuxsfVeoAEItUuhHjvYvFxWniVWeD7S1V7Rjwc4b3tDLTtInaZApqfgoMDUAE0+g2Oxr5sUCU3tPzHb/Lhru9MGG5tZDT/Z9wEskvPjauggnmSMLMQk/IY/g/ViJIZbWkbv1dHaqAwu8EQfVy4389P8e4ikBVXPPe5uHg+gvxUF2jh9aiOuWrwvSavBmQsxcVa7Buw12rUhRUylQUjYDQmMDbHqEbga0QsHUyzG/fOAblP6NDfJEVwrWtAfpZqdYtFl1hilf+3VR3VKua2z/0gTHCdDelbhXyLDvch3ow1LkaPTzOJha9ge26OtmBimnsm3W8V7foqAcOo7KwHPCasJZUgvEhQStPQInuFa5iJdGH7t9fB0i5LPJa1iM/5m6y0h3PcZFVfLCW0S94T0LJjUPYeSWWI4qrYmSKXisjPCdDn+rmPzu8lZweqv6hxbXqE00R+E9N95c=","translations":{"en":{"changelog":"### Bug fixes\n\n- **A document that Paperless still has keeps its copy, also when a scan left it out:** when one document was deleted in Paperless and another one added while a run read the pages of its list, the count of Paperless stayed the same, and a third document that still exists could be left out without a sign. That counted as a missing scan, and with *Required consecutive missing scans* at 1 its copy moved to the deleted folder, or was deleted with direct deletion. A run now asks Paperless for each document that a scan would count as missing: only when Paperless answers that it has no such document does the scan count; a document that Paperless still has keeps its copy and starts its count anew, and an error of Paperless counts nothing in that run and shows in the report. A run asks at most twice as many of these questions as *Maximum changes per module and run* allows, and none after the first error, so a run stays short also when many documents vanish at once."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v1.1.0/paperless_sync.tar.gz","created":"2026-10-19T14:14:06.544642Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T14:14:06.605833Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"HCXh3OJk9WcN0NWAcgGOQKZm9MFp2GySuioZoDB8Cj++JBvUSDzyo2yqrH5NhlM0NG4mkY5pqN5FtxAiPJ0m/JCu+8YvY2a75BvNd2SkVk4dyv6gqQQDBqf9BHjxiiTS0IAFzNKGSoCrdHPVHqK6DMFMi+qDWl0sByvyapQujBY4XZwxTsNm1xjlllxF/YlxwjSZeUAfQaysplBgVyVmCs2lsgtZ9gY1ig3FLcEycw08gVPOaStbhcUYmu2VUmhDZ4MSLAXE5TQoij5aDlTb93vRn2SEdkiQI7c+NAqXb22tsDNur5pJl1wiwKto3IW7OwbZKGMOR8KfACmM1UesSNVzVMZMeC95VUiKOQY1jdJQkbjR2nSFKSNgQ9Ih6ojvvDMExAnSNNOO4g3p0CCO27iTQ4UTGLq84wGrFJOYmXfJtpJd3lrBK5D0dx3t4egVh7gMsNiAWU0KDnvrbFuSq4JSy34Bz7i1LkwpBHqAfjc5Yz1WHp7eIpBV/NOA+JecajcR4xRX44qSXq/AuJWGrsVzRAy//MlbfRnTHt8TLjAwY11wZBIOT9Z2FTG/H3w1GFLblQkkLvy7dzJ5O+MOiZaCATYGittor0LDtHENGBghp1TUIlhjNc7KzHTiUn1I5UOhy95A7iXcSaOsuTVN55VKoJ9YqV3rhzLqVtbBPpY=","translations":{"en":{"changelog":"### Fixed\n\n- **Screen readers name the custom field button as it reads:** the button *custom_fields.…* under the path template now announces its visible text, with *Insert a custom field, then type its name* as its tooltip and description, so voice control finds it by what it shows.\n\n### Features\n\n- **Every user their own documents:** with *Who gets the documents* in *1 · Connection and ownership* set to *Each user, those they own in Paperless*, each user of Nextcloud gets the documents that their user of Paperless owns, in the same folders below the base folder of their own files: by the same ID, whatever its case, as single sign-on such as OpenID Connect gives them, or by the table *Paperless users with another Nextcloud ID*, and only for the members of a group if you choose one. The files of a user's inbox, and those they send with *Send to Paperless* or a rule of Flow, become theirs in Paperless and come back into their archive. The target user gets the documents without an owner and those of users of Paperless without a user of Nextcloud, so that none is lost; the documents of two users of Paperless for one user of Nextcloud stay where they are until each has a user of their own, and the connection checklist shows who gets which documents, with their numbers. When the owner of a document changes in Paperless, its copy moves to the archive of the new owner. Each user has their own batch, Activity entries and notifications, and the report and the status API count the changes of each user. The account of the app needs to see the documents of every user and to view the users of Paperless; the security design explains how. The default, the target user for all documents, keeps your archive as it is ([#84](https://github.com/Dennis-Otto/paperless-sync/issues/84)).\n\n### Bug fixes\n\n- **The real reason of a failed import on Paperless-ngx 2.x:** Paperless-ngx 2.x marks a failed import first without its reason, as `<traceback object at 0x…>`, and writes the reason a moment later. A run that checked the import in that moment moved the file to the error folder with the placeholder in its `.error.txt`, and a file sent from Files reported it in its notification. The app now waits for the reason, so the `.error.txt` and the notification say why Paperless didn't import the file."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v1.0.0/paperless_sync.tar.gz","created":"2026-10-18T09:16:39.464085Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T09:16:39.543916Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"l4sv4yQZ9ryrpxwfZEeZYWnUWK8ZdftT6PxdVdkQsifCNSB7yjRRPVeWvW72JEP1VVaXW4adgGQmeRroUBqe3cLWw7BdYpgGW9ljxM2e0dvj0j/f8wxgMxLC/3fJ+9d9bBFisIBb5s9iKyJEtr+H+tiA/BQwdzWDz8aZPQbLmCS0FRlLztdSb3r+8+tmZvXrL97ONB8NO2YmRsMF7j7JDDpQsGj3+iDTeSERaal35bZirHtiWofw5uI9xvXSqw8qaoeLW54V4f0SB4Hu309aEEclZCRCgq2IfkmN3sw0Da6WqJFWaJX1+jdUiZGjZjkURzIz3BjX8ZVt19u/cENMASDjMOjv9QT0xxttw0ZMqfV8qeyDzh0piafUIyMOmjGNejJgZam6knuoq7Jq90Eps8SGAEPOaZkewO7SUQkXMzyECyjIs1vfL+RTUGiZAD8ykmZbYkYQ/XSYf3ySn6hSbz84W8cNkxprI1mgkDCOL/nlFqht01OdQ0NztCdDaq4Vd0Yg1XYUH8Nut8H2l6YqPcZACv1cY3QLDjD455NXwV9NCS+DtXcia3x3y1KQLRa9OoeonHe7LWMBAHTXXIvAMi0lCQSnf8KlsJDsSRH5i+ZzSu//VgP3QarRjmDqLb616aW81TcrPlYviKCZMdFuiPIMd4B/Rhta7QmUL0+qSRE=","translations":{"en":{"changelog":"### Features\n\n- **Send to Paperless and Open in Paperless in Files:** the menu of a file or a folder in Files, and of a selection, has *Send to Paperless*: the file goes to Paperless with the tags of the inbox, those of its subfolders below a sent folder included, and stays where it is, and a notification tells you when Paperless has it, with a link to the new document, or why Paperless didn't import it. A file whose content Paperless has already isn't uploaded again, so Paperless-ngx 3.x makes no duplicate. The uploads use the API token of the app, so only the members of *Group that may send files* in *4 · Nextcloud inbox* get the action: the administrators, until you choose another group or none; the connection checklist then tests that the account of Paperless may add documents, as a warning while the inbox is off, so a mirror whose token may not upload keeps a clean checklist (empty the group to turn the action off). Files of a share whose owner allows viewing only can't be sent, because a copy in Paperless would be a download. *Open in Paperless* opens the document of every copy of the archive, by the marker such as `[P123]` in its name, for everyone who sees the file.\n- **Send to Paperless in Flow:** administrators can make rules in *Administration → Flow* that send files to Paperless on their own, such as every PDF that a member of a group uploads, or every file of a folder that has the tag *To Paperless*: the file goes to Paperless with the tags for every import of the inbox and the tags of the rule, which the form of the rule suggests from Paperless, and stays where it is. The uploads use the API token of the app, so only administrators can make such rules; the files of the folder of the app, which a run writes, and copies of the archive stay out. A rule may send many files, so the owner of a file hears only of an import that Paperless refused or that failed.\n- **Metadata next to the archive:** with *Write metadata next to the archive* in *3 · Structured archive*, every run writes what Paperless knows of each document into the hidden folder `.paperless` of the archive: `P123.json` with the title, the correspondent, the document type, the tags, the notes, the custom fields, the dates and the address in Paperless, and `index.csv` with a row for every document and the path of its copy, which LibreOffice Calc opens with a double-click and Excel with *Data* → *From Text/CSV*. So the archive describes itself also without Paperless, such as in a backup of Nextcloud or on the way to another system. A sidecar is written only when its content changes, at most as many in a run as its batch size allows; its row follows its copy into the deleted folder, and the sidecar goes with the copy under the rules of deletion safety. Everyone who can open the archive folder can read the notes and custom fields there, so check its shares first. It is off until you turn it on.\n- **Tags in Nextcloud:** with *Show Paperless tags as Nextcloud tags* in *3 · Structured archive*, each copy carries the tags of its document as collaborative tags of Nextcloud, so that Files filters and searches the archive by them. They follow every change in Paperless, also of a document whose copy stays as it is, every user sees them, and only administrators can assign them; a tag that someone made in Nextcloud stays as it is, and the report names a tag of Paperless whose name such a tag has already.\n- **Only mirror documents with these tags:** a new field in *3 · Structured archive* turns the archive into a mirror of a part of Paperless, such as only the documents tagged `Nextcloud`. A document needs at least one of the tags, whatever the case of its name; an excluded tag and the inbox of Paperless still leave a document out. A document that loses its last tag to mirror loses its copy in the next run, within the batch size, as one with an excluded tag does, and the preview under the path template and a dry-run show which documents a new list leaves out before you save it. Every tag to mirror must be a tag of Paperless: a typo or a tag renamed in Paperless stops the export before a file changes, and says which name is missing, instead of removing the copies of the documents that should stay. Empty, as it is by default, the archive mirrors every document as before.\n\n### Changed\n\n- **The first stable version, 1.0.0.** The app now does what it was built for: it mirrors Paperless-ngx into Nextcloud Files as an archive by correspondent, type and year that keeps the shares, comments and versions of its files and moves a copy into the deleted folder only when Paperless has confirmed its document gone, sends the files of an inbox folder, of the menu of Files and of Flow rules to Paperless, follows the changes of Paperless within seconds through its workflow webhook, and tells how each run went in the settings, in the Activity stream, in notifications, in the setup checks of Nextcloud, with `occ` and through its status API, documented for administrators from the installation to the troubleshooting. From now on, a release that asks more of your server, such as a newer Nextcloud, PHP or Paperless-ngx, or that changes the path template variables, the occ commands of the app or its status API in a way that breaks your archive, a script or a monitor, is a new major version, so that an update within 1.x never needs more than the update itself.\n\n### Bug fixes\n\n- **One Paperless for the whole run:** settings that you save while a run is busy, such as the connection to another Paperless, apply from the next run. Before, the rest of the run could reach the new Paperless and record its documents as those of the old one, or stop part-way. A run also reads the API token from Nextcloud's credentials store once, instead of twice for every request to Paperless."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.4.0/paperless_sync.tar.gz","created":"2026-10-17T23:55:18.204742Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T23:55:18.273756Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"iYCtATbr+TG2QY5aS/KWPiJLAQiRgrh7GnQxoGCEqFK0q+qQf34uJSff2nn9GIWG+3tN2zUbcFN9KsPLHGmDv3mzpEL3qnymxFesvzpkrXqNESrDdGMDqyoci+jLY/+6eTZ/zKh67crIwtYHXYpgwi4qczbcQm1JqOpWF60M74SSM5N3LXtVLqxQE3G4j3l/5t1UEzQKogeTOBPcTEb+df8tmjS74snsjsdEt6tqmSlyD7l6o86kERUfLIRQ1+hMVNFTVPaoh9pWNLXSK+2lOACtFurJ8SykG+UmCX2KO1tkTJ18j48aTRbjS+UaVxsyX6whuDjs1rJXRHjLop2gOcZAwCnQsyl9+JfeD9XSlxfa7VGKbNeBdD6b8+TEt5TFQcTLUDhmgF2lDkVyWAxWlBZz9h5KP9a7TU72tuhV5huIooaVA6LhXS0IaMzUCdRRyaJeYeQwKZz5AJjZqdhu98wx9ES3SdlTR5KkbuZFw49y6Ryq47uhzl9Publf+J1OpNiLSb45x/ZoHlU1MfTT2+ie/mPa9mAZ0CPxc3mzJx4QnhngtEYi4Dqfc+ZncxTY32jR/sx2h9+fiqQKXnBWqHs6yWFj2oN4SfHRmR+wN6DVImdDu7s+j5M1WSY4wcaJIgjRnSxFi10f8lmIIIBfaGyYlVhHpKbcOdNpZry7kaY=","translations":{"en":{"changelog":"### Features\n\n- Files of the inbox can bring their tags to Paperless. With *Subfolders become tags*, a file in `Inbox/Taxes/2026` gets the tags *Taxes* and *2026*, as the consume folder of Paperless does with `PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS`, and *Tags for every import* go with every file. A name finds the tag of Paperless whatever its case. A name that Paperless shows the account of the app no tag of is named once in the report of the run and in the Nextcloud log, and the file goes without it; with *Create missing tags*, the run creates the tag instead, without a match, so that Paperless assigns it to no other document, and without an owner, so that every account that may view tags sees it. The report names the tags of each file, a dry-run shows the tags that a run would create, and **Test connection** checks the permissions **View** and **Add** for Tags that the tags need. All of it is off until you turn it on.\n- **Synchronize now** queues the run as a background job of Nextcloud and answers at once, so a reverse proxy no longer cuts off a long run and shows its own error page. The status says *Queued* until the background jobs start the run, within five minutes with the system cron or at once with `occ background-job:worker --once 'OCA\\PaperlessSync\\Cron\\ManualSyncJob'`, and the page follows it and then says how it ended. Like a scheduled run, it keeps the previous content of an updated copy as a version. While a dry-run or another run is active, it waits for the next background jobs.\n- **Command line:** `occ paperless_sync:run` runs a synchronization or, with `--dry-run`, lists its changes, in the shell and as long as it takes; `--batch-size=N` or `--unlimited` changes the batch size for this run, such as for the first import of a large archive. `occ paperless_sync:status` shows the status of the last run, and `occ paperless_sync:forget <ID>…` or `--all` makes the next runs download documents again and write each in place of its copy. Every command prints text or, with `--output=json`, JSON, and tells by its exit code how it ended: 0 completed, 1 with errors of single documents, 2 failed, 3 another run is active.\n- A run that ended without saying how, because PHP stopped it, such as on a restart of the server, shows as *Interrupted* instead of *Running* forever, once its lock is gone and it gave no sign of life for 15 minutes. A run that takes longer than Nextcloud keeps its lock, an hour by default, writes a sign of life every minute, so no scheduled run or *Synchronize now* starts beside it.\n- The settings offer the users of Nextcloud for the target user, and the tags of Paperless for the excluded tags and the tags for every import, so that you pick them instead of typing them. A user ID that Nextcloud doesn't know is marked as soon as you leave the field, a disabled account says *disabled*, and a tag that Paperless doesn't have is marked *not in Paperless*, so a typo shows before a run instead of as documents that are exported anyway or imports without their tag. A tag that Paperless doesn't have yet can still be typed, ended with Enter or a comma. The tags come from Paperless with the saved URL and token, which stays on the server.\n- The report of a run reads in your language instead of a block of English codes: every change has a colored badge of its kind, such as *Export*, *Trash* or *Refused*, with its document, its file and what happens to it; the errors come first, then the notices, such as an incomplete scan of Paperless; a filter above the list shows the changes of one kind. Only the counts of changes that happened show, and a sentence such as *11 unchanged, 1 skipped* the rest; a dry-run says *Dry-run — nothing was changed* in its heading. When you are the target user, a click on the path of a file opens its folder in Files, and **Copy report** copies the report, with its lines in English, for a bug report.\n- **Changes within seconds:** a workflow of Paperless can call the webhook of the app when it adds or changes a document, and the copy of that document is exported, moved or removed within seconds instead of with the next scheduled run, by the same rules as a run. Section 6 of the settings creates its secret, which only Paperless needs, shows the webhook URL and the last call, and lists the steps in Paperless; calls without the secret are refused and slowed down by Nextcloud."}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.3.0/paperless_sync.tar.gz","created":"2026-10-17T19:12:32.319046Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T19:12:32.379572Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"wgJosot/sJ6+m6mshayoP/68maNpwin//fDCaY5Bqay2KN7IJYx+Pxe7ktzAH7X+ji6NzrfkJFHBerCn6hjE1kHk3bihCjLIbkYtsfC9AeHf8WWeXITNK3GeSq/nJ9zKIR/6mIBZT0cMdkLqkk4Zd2LgCHDuH6EEs9P6UoX8nCVM07qBu3jhayNajhx9ch4HzL0cqLJ77RnA8hN5+5TrL4AcJEgriBBLRqeR7dH+FCYUJe3ProALHRmvR1oSNwWtq1BJe4mCwyMirf8fYv270DXgFiJaN7aWoKDJZSiDoNuTD4lN4FxLB1oTUSnqEsRa+Zt6VMKr8d2BuwcbQVF+m3hmLzxBfohDHgU9a7TJR4o2fwFQRUKM1JMyYY3qz2id9DHJG8/BYG0NotmDZguFIr5CrZZfUcxmH3zpU5gWVHp9fYF0nHP0FQb0HjMVAPvECpIC90I2VAnf6/B9Mqa9IJwvoYjDIE+WNJ8fRoAZLDlEi9cHEpvz/3Q/kN5tjotX+sUvAo6on/kJQGw8R+H+tvG2+Hq0bP+XuST6oDagwmrnkaliIzVN5JJo5aAGGl3ERXcxfRTz3pFdBGOEDpCRhWcfEO/6MAKCNg/WOtSRNSsatYNNdfbRCCi+SYt/O+emxs8tH9/SO+D0gz+QPRYfXYeklrehmEE6AA6k5xyKZLI=","translations":{"en":{"changelog":"### Features\n\n- While you type a path template, the settings show where the five newest documents of Paperless would go, a moment after you stop and before you save, with the fallback names and the switches of the page and a note for a document that a run would skip. Buttons under the field put a variable in at the cursor, the field shows the template in a font for code, and an invalid template says why while you type.\n- **Run dry-run** tries the changes of the form before you save them, and its report says *Dry-run of unsaved settings*; nothing is saved. It keeps the saved connection to Paperless and the saved target user, which only a save tests and confirms with your password, and asks you to save first when they changed.\n- New path template variables, with the names that Paperless-ngx uses for its own file names: `{{ asn }}`, `{{ page_count }}`, `{{ owner_username }}`, `{{ tag_list }}`, `{{ created_day }}`, `{{ created_month_name }}`, in the language of Nextcloud, `{{ created_year_short }}`, `{{ added_month }}`, `{{ added_day }}`, and `{{ custom_fields.<name> }}` for the value of a custom field, with the label of the choice of a select field. The app reads the users and the custom fields of Paperless only for a template that uses them, and a custom field that Paperless doesn't have stops the run before a file moves.\n- **Test connection** in the settings checks every Paperless permission that the enabled modules need, without saving, and lists the result below the connection settings: whether Paperless answers at the URL, in which version, and takes the token, how many documents the account sees, whether it may view the trash, the correspondents, document types, storage paths and tags for the export, whether it owns the documents that it sees, which the trash of Paperless shows it only then, whether it may add documents and view the tasks that import them for the inbox, and whether the target user may create files in the base folder. Every check that fails says what to grant or fix, such as the permission **View** for Tags under *Users & Groups* in Paperless, a certificate that Nextcloud doesn't trust, or a URL that answers with the login page of a proxy. Saving runs the same checks: it refuses settings with which no run can work, and saves a permission that only one module lacks with the checklist, so that you can grant it afterwards. Before, saving tested only the list of documents and said *Connection successful*, so a token without the permission for the tags passed, and every scheduled run failed afterwards with `HTTP 403`.\n- The checklist and a dry-run explain that Paperless lists in its trash only the documents that the account of the app owns and those without an owner: a dry-run says `TRASH EMPTY` when documents go missing while the trash lists none, because such documents of other owners reach the deleted folder only after the missing scans. The README lists the exact permissions that the account needs, including **View** for Paperless Tasks for the inbox, without which an uploaded file stayed in the inbox for good, and **View** for UI Settings for the checklist.\n- The **Activity** stream of the target user shows what Paperless Sync did, also in a scheduled run: one entry for each run that changed something, such as *Paperless Sync added or updated 6 documents and moved 1 document to _Gelöscht: a.pdf, b.pdf, c.pdf, d.pdf, e.pdf and 2 more*, with links to the first five files, and one entry for each file of the inbox that Paperless imported, with a link to its new document in Paperless, failed to import, with the reason and a link to the file in the error folder, or refused. The filter **Paperless Sync** of the Activity app shows them alone, and the activity settings can send them by mail or as a notification. Before, a run by hand left no entry, and a scheduled run left only entries of a *remote account* that didn't name Paperless. A dry-run and a run without changes add no entry.\n- A new installation proposes the names of its folders and the fallback names for missing metadata in the default language of Nextcloud: `Documents/Paperless`, `Archive`, `Inbox`, `Failed imports`, `_Deleted`, `_No correspondent`, `_No document type`, `_No date` and `Untitled` in English and in every language without a translation yet, and the German names as before on a German Nextcloud, also one set to a regional variant such as `de_DE`. Before, every Nextcloud got the German names, such as `Dokumente/Paperless/Archiv`, in the files of its users. An installation that an earlier version set up keeps the German names with the update, also those that it never saved, so no folder moves; the README lists both sets under *Folder names*.\n- **Notifications of a failing mirror:** when three runs in a row fail or complete with errors, or the first of them ended a day ago, every administrator gets one notification with the error and a link to the settings, and the next successful run removes it. The group `admin` gets it unless `occ config:app:set paperless_sync notification_group` names another. The target user gets a notification for each file of the inbox that Paperless could not import or refused. A dry-run notifies nobody.\n- **Setup checks:** *Administration → Overview* and `occ setupchecks` show whether the mirror works, with an error when the last run failed and a warning when it completed with errors or no run succeeded for three intervals, and warn when scheduled runs are on but Nextcloud's background jobs don't run with cron. The settings page shows the same warnings on top.\n- **Status API for monitors:** administrators, and monitors such as Uptime Kuma or Home Assistant with an app password, read the health of the mirror, the last run and its error at `/ocs/v2.php/apps/paperless_sync/api/v1/status`.\n\n### Bug fixes\n\n- The settings say in German what is wrong with a setting when Nextcloud is set to German: a Paperless URL that is no URL, a number outside its limits, an invalid path template, a target user that Nextcloud doesn't know or a base folder in which the user may not create files, another run that is still active, a run before the setup is complete, and a test of the connection that failed. Before, these messages were English on a German page, also half English in the connection checklist. A message about a setting names it by its label on the page and moves the focus to it.\n- The setting *Required consecutive missing scans* is called *Erforderliche aufeinanderfolgende Läufe ohne das Dokument* in German. Before, it was called *Fehlläufe*, failed runs, which it doesn't count.\n- The times on the settings page, of the last run and the next one, follow the locale that you chose in the personal settings of Nextcloud, not the language of the browser.\n- A copy whose document went to the trash of Paperless moves into the folder of the day of the deletion in the time zone of the target user, or of Nextcloud. Before, a document trashed in Germany shortly after midnight landed in the folder of the day before, the day in UTC.\n- The example of the excluded tags is German on a German page.\n\n### Performance\n\n- Every run asks Paperless only for the fields of the documents that it needs, without the OCR text, the notes and the permissions of each document. Before, every run, every 5 minutes by default, received the whole text of the whole archive: about 4 MB for 1,000 documents with 4 KB of text each. The live path preview of the settings asks for the same fields, so it shows the paths that a run computes.\n- A run asks Paperless for the checksum of a changed document once for each revision. Before, documents that waited for a later run because the batch was full asked again in every run: after a change of 50 titles with a batch of 5, 275 requests, each of which makes Paperless read the files of the document, instead of 50.\n- A run over an archive without changes no longer writes to the database: it reads the state of all exported documents at once and writes only what changes. Before, a run with 10,000 unchanged documents ran 30,000 statements, every 5 minutes.\n- The settings and the status of the app are lazy app configuration: Nextcloud loads them when the app needs them, not with every request of every user. The update converts the stored values."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.2.0/paperless_sync.tar.gz","created":"2026-10-14T08:19:44.776028Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T08:19:44.862453Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"1JjobgJZinj0SDdrRlT0HGOc4TzwOxaIs1s/4DzeZ+WJjU3YN9NBPqehMWsohG9LLVZ7dEtpZGhatNio9fowgtqmF05WQSI2jYiHosEgXGpPZGxgJ3sb2IcfbRa4OTZ6tDbrU9E1YC00sQkr5pTHviUrJqG5xI5r6IDPG8k0pfkKQxdoQeIjevxkCmmuy/1DsFhPHjS+F4MeHQDM621LHoRxMjtChcd9rt7S3urqJ3We4yDluT+RmtQT01gwezMmzNoGsgz+w1jQtcI3A/+Ao+hkhYubRHQOEDk6dnfC/FJ/pXr0Ac5T1Q0qY7vwiL9rHFP4q3Dubf/4cm2pHVlnoV0W5E6/hHbn1id8nz95egpk9WWs/I9T7qO/mMb6mxrM4M353pQVATlNHQWiSLWC8f1nuUycsWI42wRJvYzZ59UrWqvblYOsrqjp5KaAhn3CM3H2pWRAUjjNyPrkp31Eg9r74brxd1RUDqkFSFCa5TrWpDwAO+cn0Sx3YePyV1+/N3SYbcV406s5CTxXufl5KOv809jZatIA1hxXSKZCjhmVvta3lWn9KXtNobaKm4AmTW1JN0ecGJLv+v8brxTxN8wQomoq4BiKrLgnvxWcWL1bGBvEn2ngA1P6xvNALIc+bx8AA2Pa9fKhFJnYqqCzBRlRIBGX1AvQAOI6PdTTvMk=","translations":{"en":{"changelog":"### Security\n\n- A run that can't reach Paperless, because Paperless is down or its name or certificate fails, no longer writes the Paperless API token into the Nextcloud log. Before, the log received the token in plain text with the trace of the error, with every failed run by hand or by the schedule, and so did everyone who reads the log or receives a copy of it. **Every earlier version is affected: create a new API token in Paperless, enter it in the settings, and delete the old Nextcloud logs and their copies, such as in backups or log collectors.**\n- The API token goes only to the Paperless URL that it was saved with, so another URL needs the token again. Before, saving without a token sent the stored token to the new URL to test the connection, so whoever could save the settings, with the session of an administrator for example, could receive it at a server of their own. The settings page asks for the token as soon as the URL changes. A URL changed past the settings page, with `occ` or Nextcloud's provisioning API, doesn't get the token either: synchronization pauses until the token is entered again. The update keeps the stored token for the URL that is configured.\n- Saving the settings and disconnecting Paperless ask for the password of the administrator, as Nextcloud does for its own sensitive settings, unless it was confirmed in the last 30 minutes.\n- A Paperless at an address of your network, such as `http://paperless:8000` in Docker or `http://192.168.1.20:8000`, works with the new setting **Paperless runs in my local network**, which allows such an address only for the requests of Paperless Sync to the saved Paperless URL. Before, saving failed with `Host \"paperless\" violates local access rules`, and the only way out was the switch `allow_local_remote_servers`, which turns off Nextcloud's protection against server-side request forgery for every app and every user. Saving and a run by hand now say what to do instead, also for a name that only the hosts file of the server knows, and the settings page moves the focus to the setting. While the setting is off, a download that Paperless redirects to an address of your network is refused, also when Nextcloud's `dns_pinning` is turned off. **If you turned that switch on for this app, turn the setting on and save, then turn the switch off again: `occ config:system:delete allow_local_remote_servers`.**\n\n### Features\n\n- The settings page shows how the last run ended at every visit, also a scheduled run that nobody watched: its state, in red when it failed or had errors, when it finished, the last successful run, the next scheduled run, the errors of the run in a box of their own, and its report. While a run is active, the page follows it until it ends.\n- The Nextcloud log has a warning, with the ID and the path of the document, when an error of a document first occurs or changes. An error that comes back in every run is logged once.\n\n### Bug fixes\n\n- On Paperless-ngx 3.x, the `.error.txt` of a failed import of the inbox has the reason of Paperless again, such as a file type that it doesn't take, and the ID of the Paperless task. Before, it said only *Paperless import failed*: Paperless-ngx 3.x answers in version 10 of its API by default, whose shape the app didn't read.\n- A file of the inbox whose task Paperless cancelled, or has not finished a day after the upload, no longer waits in the inbox for good. A cancelled task, `REVOKED` in the task list of Paperless, moves the file to the error folder with that reason. A day after the upload, a file whose content Paperless has, found by its checksum, counts as imported. A task that Paperless still lists as pending or started moves the file to the error folder, with a note that the document may still appear, because Paperless-ngx 3.x would import a second upload as a duplicate. A task that Paperless no longer lists, as after a restart of its queue, sends the file up again after 15 minutes, with an error in the report and a warning in the Nextcloud log.\n- Every request asks for version 9 of the Paperless API, so that a new default of Paperless can't change the answers that the app reads. The settings page names the Paperless that the last run reached, such as *The last run reached Paperless-ngx 3.3.0 through version 9 of its API.*, and the report names the document that a successful import created, such as `IMPORT SUCCESS: Dokumente/Paperless/Eingang/police.pdf -> P456`. **Paperless Sync now needs Paperless-ngx 2.16 or newer, the first version with version 9 of the API; with an older Paperless, saving and every run say so.**\n- A new content of a document, such as a new archive version after Paperless processed it again, updates its file in Nextcloud in place, so the file keeps its shares and public links, comments, tags and favorites, and in a scheduled run its previous content becomes a version of the file. Before, the app deleted the file and wrote a new one with a new file ID: shares and public links of the file broke, its comments, tags and favorites were lost, the old copy filled the trash bin of the target user, and the desktop and mobile clients downloaded it as a new file. A document whose content and path change moves first and is updated at its new path.\n- A document that Paperless restores from its trash, or lists again after it was missing, keeps the copy that the trash behavior *Keep archive file in place* left in place, without a download. Before, the run downloaded it and wrote it again.\n- With the conflict policy *Skip and report conflict*, the app updates its own copies: a document whose content changed while its path stayed the same, or which came back after it was missing, is no longer reported as a conflict in every run while its copy stays outdated. A file that someone else put at the path, and a copy that someone changed in Nextcloud, also one whose document gets a new path, are still left alone and reported as a conflict.\n- You can pause scheduled synchronization while Paperless is down, its token revoked or the target user disabled: uncheck **Enable scheduled synchronization** and save. Saving tests the connection only when the schedule is on or a new token is entered, and says so when it didn't. Before, every save had to pass the test, so the only ways to stop a schedule that failed every few minutes were **Disconnect**, which deleted every setting, and `occ`.\n- **Disconnect** deletes the API token and turns off scheduled synchronization and **Paperless runs in my local network**, and keeps the other settings, also your deletion policy, as its question says. Before, it deleted every setting while the page went on showing the old values.\n- The settings page always shows what Nextcloud stored, also after a save or a disconnect, such as the URL without a slash at its end, and says when the form has changes that aren't saved, also changes that you make while a save is in progress. **Run dry-run** and **Synchronize now** use the saved settings, so **Synchronize now** waits until you save, and the browser asks before you leave the page with unsaved changes. Before, a run could apply settings that the page didn't show.\n- Results and errors appear next to the buttons, which stay at the bottom of the window, and an error takes the focus. Before, they appeared below the long form, out of view. The page no longer shows the HTML of a proxy, such as its *504 Gateway Time-out* during a long run: while the status shows the run, it says that the run continues and follows it there. A lost connection and an expired session are explained in your language, a run with errors says how many, and a failed refresh of the status no longer replaces the result of the run.\n- The save button says **Save** when saving doesn't test the connection, with the schedule off and no new token, and **Test connection and save** when it does. An error that names a setting, such as **Enable scheduled synchronization** after a failed test, scrolls that setting into view, where the buttons at the bottom of the window no longer hide it. The hint to turn off the schedule is in German for German administrators. When neither a run nor the status answers, the status no longer shows the run as running for good, and the message asks you to refresh it.\n- The questions before a run and before **Disconnect**, and the other messages of the settings page itself, are in German for German administrators.\n- A dry-run no longer pushes back the next scheduled run: the interval counts from the last real run, also one started with **Synchronize now**. Before, a dry-run at 10:00 with an interval of an hour moved the next run to 11:00. Only a dry-run that is still running holds the next run back, until it ends.\n- The interval is at least 5 minutes, as a hint below it explains: Nextcloud starts background jobs every 5 minutes at most. Before, the settings accepted 1 to 4 minutes, which acted as 5. An interval below 5 minutes that you saved before acts as 5 minutes, as it did, and the settings show it as such.\n- **Disconnect** sits at the right end of the bar of buttons, away from **Synchronize now**, and every checkbox sits next to the first line of its label. Before, the styles of Nextcloud put **Disconnect** right after **Synchronize now** and pushed every checkbox below its label. The titles of the sections no longer wrap next to their description, and each section links to its part of the guide.\n- The settings of deletion say in plain words what they do: turn on permanent deletion only after a few runs with deletion off looked right, and *Also delete copies of documents that disappeared without passing the Paperless trash*, which replaces *Also allow deletion when the app never observed the Paperless trash state*.\n- On Paperless-ngx 2.x, a change of the title, tags, correspondent or type of a document moves its file to the new path, as on Paperless-ngx 3, instead of downloading the document again and replacing the file. Before, the app only recognized the SHA-256 checksums of Paperless-ngx 3, so on 2.x every such change gave the file a new ID in Nextcloud, which lost its shares, comments and favorites, left the old copy in the trash bin and made the desktop and mobile clients download it again. The app now keeps the SHA-256 and the MD5 of every download. For a file that an earlier version exported, the first such change reads the file in Nextcloud once to add its MD5, instead of downloading the document again, also when its move waits for a later run because the batch is full or the quota is reached.\n- A large document no longer ends the run with a fatal error of PHP's `memory_limit`. Before, the app read every download into memory to compute its checksum, so a document larger than the free memory stopped the run before it saved its state, the status stayed *running*, and every following run died on the same document. Downloads now go from a temporary file to Nextcloud in chunks.\n- The report of a run with more than 100 lines lists its errors, deletions, removals of excluded copies and moves to the deleted folder first and says how many lines it leaves out. Before, it dropped every line after the hundredth without a word, so that a dry-run with many files in the inbox could hide the deletions that the run would make.\n- A run that fails no longer counts as the last completed run; the status shows its end as *Last finished*.\n- A run no longer counts a document as missing when Paperless answered a page of its list incompletely, such as an empty page from a proxy, or when documents were added or deleted while the run read the pages. The report says `SCAN INCOMPLETE`, the Nextcloud log has a warning, and the next complete scan carries on. Before, a document that still existed in Paperless could move to the deleted folder, or be deleted when direct deletion is on.\n- A document that Paperless lists again starts its count of missing scans anew, also when its export fails or waits for the next run, so that only scans in a row count.\n- Every export that a run tries counts against the batch size, also one that fails, and a document whose export failed waits behind the others. Before, a run that couldn't write, against a full quota or a read-only storage for example, downloaded every pending document again in every run and failed on each one. Failed exports don't take the places of moves of trashed or missing documents, and a move or deletion that fails takes its place in the batch too.\n- Exports respect the quota of the target user. Nextcloud applies no quota to the temporary file of a write, so before, an export could fill the quota beyond its limit. When the quota is full, or the archive is read-only or its storage unavailable, a run stops exporting and moving at the first failure and reports `EXPORT STOPPED`; the other documents follow in the next run. A file name that Nextcloud refuses concerns only its document.\n- A run exports the most recently added documents first, also a newly scanned letter with an old date, so that it doesn't wait behind a backlog such as the first export of a large archive.\n- A run fails, before it changes anything in the archive, when Paperless answers its list of tags, correspondents, document types or storage paths incompletely. Before, a document with an excluded tag could be exported when the tag was missing from a short page.\n- The report keeps the lines `SCAN INCOMPLETE` and `EXPORT STOPPED` also after a hundred other lines.\n- With the conflict policy *Skip and report conflict*, a file in the way is reported before the document is downloaded, and a dry-run reports the conflict too. Before, the run downloaded the document in vain.\n- A `$` in a title or a name stays in the path of the file: \"Refund $100 from Shop\" no longer becomes \"Refund 0 from Shop\", and \"Tarif $0 Basis\" no longer takes in a piece of the template. A title that contains a variable, such as `{{ correspondent }}`, stays as it is too.\n- Documents with a long title or name in Cyrillic, Chinese, emoji or another script of several bytes per character reach Nextcloud again. Names are shortened to the bytes that Nextcloud accepts, with room for the temporary name of a write. Before, such a document failed in every run.\n- A long title, correspondent or original file name no longer cuts the marker `[P123]` and the extension off a file name. Before, two such documents could get the same path, and with *Replace synchronized file* the second one replaced the file of the first. Now only the free text is shortened, the longest first, and a template that leaves out the marker or the extension gets them added at the end of the file name.\n- The path template accepts variables without spaces, such as `{{id}}` for `{{ id }}`, and the message about an unknown variable names it as `{{ owner }}`.\n- Control characters beyond ASCII and invalid bytes become `_` in names too, and names of Windows devices such as `COM0`, `LPT¹` or `CONIN$` get a leading `_` as well.\n- The next run moves the files whose names these fixes change once to their corrected path. Two documents that shared one file are downloaded again instead, so that each gets its own content back."}},"signatureDigest":"sha512"},{"version":"0.1.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.9/paperless_sync.tar.gz","created":"2026-10-08T17:52:33.361661Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T17:52:33.420156Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"wGh+h+yCKdJ9AvlkBIg9+RZCPtRujUi1jBAV1Ie8ZkptAm2bZekcdi9U/niqnNYBFi5BJUB7buEZ2TqQsz5KPjfLylJoCt01LQjHQ5Py3Jhtm6vv1Zz2kxmGUlSEBI/SX1yS3tFGl7GtpKYGJ863tOxTuB9J5tCkWS8A/XfOhFkBxJd9Xm8cRmOHMoqbrEKgGgb9jfkCRDxJjgl6O0ts3i0GwzU/MBVajPuxGViqH8ykFMXxAlNlYBNlWcgRIqR6S2To18LwAofRSdYghu3D7smLrCZTW5XGVB7yZcQVo7jqvFNQVr36CrcIfUkXfWmdrUFbjRiryDnQyGTZs+kY9tr4xWyZGNrhXTAwNHcmubfiC0znU85mgkI/+ceYwprxZf3O3yg1dBvFZ4IYwu6AN4wIzOUBh8eBMo7Mv6MTuv4o7RTPsPyHBQ/hbI7gbnbiQfSh0+tdM/DJaWbZi5B2NvkQdmYUr+HLlVHK4MxyS5/r1BNnCBkGGDizIX5F/EMq5oWiYt+I2r+eehnq0LEiqOn6+ebmHe9TCh2dYULnFHBcS1IggPCO8bbHLdH1qxYXluWT1iWDlskBth47qmdZjxT6pYhrqouD3i1n+RdVyXfzqE9JrgZyOqlfBcC6UIx/ihdDbJbT0Dz43dUjRDwpQn268UnjHp8gwVboridat9E=","translations":{"en":{"changelog":"### Bug fixes\n\n- The report of a run by hand lists every file that the run wrote, moved or deleted and every import, as the report of a dry-run does. Before, it counted the changes but said \"No file changes were required.\" below the counts.\n- The status in the settings names the state of the last run in the language of the user, such as \"Completed\" or \"Abgeschlossen\". Before, it showed an internal name such as `completed` or `never-run`, also in German."}},"signatureDigest":"sha512"},{"version":"0.1.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.8/paperless_sync.tar.gz","created":"2026-10-08T01:51:38.013363Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T01:51:38.081769Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"plMkDHHE0vNMKrgLaphDK7Xezyc2WhUekg2qfhHnW80ueL/DlpgPqxLWIncWqgc3CybRDPxbCkOIUukOPmLYg5n9U70Og1SBUoY52nzd04oVdH/mbH2IfNmHVtaIk4Ju8BNHsCQYVsEYoskjt1yk99lMd7xvpTuAXCWW6VRTut/VeDjknLp4Qw/HSCXplLi7poBwGHdT/jKKGCzpOJgGIrnX+1X9M+hPNJZGiuMn4nRnE31qWMZlfDOlWdzW7lfvGbQ8/QANTosesaLjRW8IPLBGU2d33WohewzOGOMLHPzgEWmmznmh9R9rWqNEJnzxzr4bJL0l/PvU17PMR3B+PswpcfiD4jfE0OPUkj9YpLE5/hb5Oi/Y/r7N5qRwW4uJdOotdU+D58qA9vsEXcIcWRgOkIbY8s7FcmGqZOxNjubEPJxRz/+NUPF0ehDVFCoiw4nZxP+MXk0mf6Slcq3X0WssfGs33CAbP5aBPE3xlzRflQJ1KlBJcYqh4HUT5Ms3Je7RfSzL9GaWPFifGCTmvDTdIkBj8vrKD4kTvHw532LVZCurE+2t2Teqv/MMjxtxR3xnYAQqISDDVVmrqjxN56f2xwtb53P8a5BYRvNmBgV6Pi7eT2b3pdNCbtMYJU2qZuLNbt+jD5b1juPzxQci42dRySwwDKf6Vqwm2ZnWG80=","translations":{"en":{"changelog":"### Bug fixes\n\n- The list of file changes in the report of a run can be scrolled with the keyboard and shows the focus, so that the long report of a large archive is readable without a mouse; screen readers name it \"File changes of the run\"."}},"signatureDigest":"sha512"},{"version":"0.1.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.7/paperless_sync.tar.gz","created":"2026-10-07T21:56:53.915425Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T21:56:53.981803Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"WO7q9eXhXJywWN4BjHkWRQ7wYii3NsF6B7AxUqcmBOXmVKkCVFMjQ3IkvwXzyiEvPSB2FMi3wGsA61KSuFyc2HTNEF6fU5RWGc39P5NlIhyX2uJ67TP4hs4kDqrVMHDbRINVvO/33FyRuiiI5PEk8dza5k2D5gpsAmfnTnJ5p2WBI1LcIDVuEVYpSjupZ2UWjiFZjbnrdh48zaDuWSKWlvPk1GT1tmPgQa1DoflPc3yD+e0ZZpQdCRrJgIq2i5mLhQxUxno5ozEaqZASuSVbQGewTSGT4DVHQiZvkl9rQjkdQqK3mJNA1bm68UofHGfGlfsu5QgIGn+kDKBSMje9a565pVWGZh6FtyJAQpqiVkuUTW3De2kEoocwjlWDLtlOYSBMBv3RiVeX+6SDAZutQVP8jaBVBcErWVLWh7ciYx3L/AfZmnDHq+jbFfxtR+haOwd4TA8ImCMm6pYsLDqzNhZxEi1sjL2JfKIhQaB8dTTsBsILnNzOYGIILgx9XjJSEaXx62LMJXSPMbtS/JHIT9BcQ17WOdWiGJkDzYld0LqJ29Bh3EPMWt0WUI9GAlP3w/g+F6bpOeg02/vGDVgQkidD6lTySIYUz+JYL5WEzspHdA6RxCN8gP4eF/yFRtSoRISYbI+fhi4ruoeN6yOTV6c8CVlvly7+wd+cftBSWb8=","translations":{"en":{"changelog":"### Bug fixes\n\n- The copy of a document that disappeared from Paperless now moves to the deleted folder after the confirmation runs also when a run reaches its batch size first: it waits for the next run. Before, it stayed where it was for good.\n- *Moved to trash* and *Deleted* in the summary of a run count only copies that were really moved or deleted, no longer documents whose copy was already gone.\n- A copy of a missing document that cannot be moved or deleted is reported as an error of that document, and the run carries on with the others. Before, the whole run failed.\n- A document in the Paperless trash whose copy is already gone no longer counts as *Moved to trash* in every run, and the path recorded for its copy no longer grows by one more deleted folder and date in each run.\n- A document in the Paperless trash that was never exported no longer causes an error in every run.\n- With the trash behavior *Keep archive file in place*, a dry run no longer reports and counts a move to the trash that the real run doesn't make."}},"signatureDigest":"sha512"},{"version":"0.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.6/paperless_sync.tar.gz","created":"2026-10-07T12:53:49.909849Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T12:53:49.978080Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"JUE8iRTYYMUChjwKpBaVP0gyOI5y3bAdgT/H54xYPeEFlm8Czae9x9sb/YbEkTdmFbeidfGPeEpY4Zfzp9Dt9NxEXH9cDJPlcUSb7WOfE1NSW5dVzTbEHYHzbaZNVZXK61ZKXgJgvf1RJ9Mnm6eXk81zkCv3nzF7cp1fBdrEUo7tzQ9HegyLcWZwQzRTPEoRcxSKLCJL7VSMT+0i6aBLzD2JSx2Y+SyIAdxY0VCIUBaFb0tLsrvlZEfWhHQcc3pYHFsdqrlkYl0sDVXd7nbxYWDxwVzw24QpybPTPvBOZOZlOyD3qizAxFoJ0fxRQldxdqG4HibOhpijGPS/shw4264oazKe2EuvxbLo7oYC/uyZgHgX1UHY/nfIs9u1xo4NCUpb2ajO1U0CnJhPpYp8zPpx6H0NvuEiu1AgrhOsUhxthH2/KK0rVTA3LjmD0oU8M/f17pygxp9GGMa3LGAalGorvupK3/FcSj262sn+UUbx/iqJdU24PArxV4AmXjKpo9bTyIVfwvdAZa7aUBCKmnBWaJMm7HFrYvE5c1YNXTnMU/z1dbVnA2K3L1bRQ4HTpbDjxrPfJ8BTYqAu2NJm5vQjRrv3YvSBTlEriUhCoW/V2UBHTmbnwANHKUaIAy/JVxlX0gYZEFiVY2fP+8E7MdpMACpxvaxcFtirG88s5Qo=","translations":{"en":{"changelog":"### Fixed\n\n- Saving, resetting, running and refreshing the administration settings no longer fails with empty request URLs when Nextcloud renders the settings page before it has loaded the app (the same cause as [paperless-unified-search#25](https://github.com/Dennis-Otto/paperless-unified-search/issues/25)). The app now declares its routes as attributes on the controllers, which Nextcloud 29 and later register for every enabled app.\n\n<!-- Release notes generated using configuration in .github/release.yml at f579d34122588298decbbd1ad82ca996e0b00a26 -->\n\n### What's Changed\n### Fixes\n* fix: register the routes as attributes by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-sync/pull/34\n### Other changes\n* ci: look after issues with the issue assistant by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-sync/pull/33\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.5...v0.1.6"}},"signatureDigest":"sha512"},{"version":"0.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.5/paperless_sync.tar.gz","created":"2026-10-05T09:41:38.679484Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T09:41:38.749894Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"p6e4b415bUV0bQ9dbRvWFHGAUnRUm6wxRjVMxnOI3Orpl5mgsagdu4GLWHVhNBOmNKZQwDmh/7I5VqdCqhP5RBSRqElS54auigtFUBU9spf3JrPx2i7jKMugiJLXiYmXZ9EFvMxAkJuiJxNkMaEOHgaSAdjkIe5t4sYriYlV0K4EqKst5d1f9KZaGzZkD7ptMLbgprNDdW6SM5dPA85ib51C1CVbGzAwz7d7de3Qx5heIc7Q41w29aSnxuSYXRHqX3LUrE5nuj+lyeJEYB7twAQqVHSmxjoQXcaf5nwtI4V8ADEU+hSONSvknHQwewzyCIsicjVdwZPOct8C93CDX8b2sKMQD86xzYV4xnSZRS/6R1qNBAMohjfuIcAelLNWL8FSmO9R1x+NLpzPbGWGoL7YCLfqSLBkd45WdzjByOa5AntE8HqZSRECp2ZlNek70qLkxcfd/6dwXFrLizgNobM4lR/6uoKoJk7raP7NBzo8X/0ahDPLGqlf8V/2Y8uO+GgJSyq//b2WGffKJbsB2z8dLIWMOC6XJUSktIYy6uMYXN9WChX1xUPWHbQo3R9SO7XhEoEg+bn0qlxj2aVwiAHuUFt0mpu84aMmISqw4feSN7ZhTrTi9qbhcr2HcnTQEwzZY4NpcF67dlmZ7ObUqQ/8r8Fatuz0moHNqk6GfLc=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 0215bf94461794ed1f345e856d14bb1946cbd5cf -->\n\n### What's Changed\n### Dependencies\n* chore(deps): Bump anchore/sbom-action from 0.24.2 to 0.24.3 in the actions-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/30\n* chore(deps): Bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/31\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.4...v0.1.5"}},"signatureDigest":"sha512"},{"version":"0.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.4/paperless_sync.tar.gz","created":"2026-10-05T02:25:41.648210Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T02:25:41.916375Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"THduqdFzpu+SX+wOTnGIpqHZnrR72CrpySjHRnMxThyY+EeXNcCcLTAU3pZ36tQ3xOXW6QIGHdnQMtnehYBgPNyAb297SYEMCay4rsj+rkl841TwIl8YLTTEsFT5Sm7P5D4BsCZi+SO01v++dSathDmusu0EnGEvkhvb4DEyw4ekWfyzXAmTzo+CSi0v2bjOteQOhu4X7krkPdB886xlaxbsIn1/5iLGmo1yKlSfl/P5RTqDP+y8/HB15RjjAJvN5mwn4I/N7gXrMpdi7Dok7Bck3d/P5SUFS393DvFKYTqgwZPFFLDuoAEfoMdDSvd9ts6EuF6xo04KU9YUs9hKBpfLewRZ5rWTrhWcRCzc0f/zM2VXZKgWZRd28e3BelQX/lCo91pW4H8cswZG9Zcb11fMw6PTRmocDMVJW4Oagf1NsQwcdkzcB5cZLtCG6JkZwugVKFJ9+0uEzOURO1XC8GRNw7k1Sl0c/HXuqY/xE0Q2LbpNvzknuC8uot7idd9WMM8ImfkX+Sv3p+zzkJnk+rLwpEeX+IMmsD47eapSKhJr1ubIlGRkQ9HlY2M4+b6YKl5R3URrG7715332ZBc3O1zg5Gab5ni8HCOQRMrM1cJOUdLmc9GgaDbRmR6dsq4uEUcG7JhiXnYWOay5gsW3WiG0FLYvhpVLFso3FvNqDqw=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 603966a71d3d95695c17c4b8e589444bab7f9fd8 -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): Bump vimeo/psalm from 6.18.1 to 6.19.1 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/28\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.3...v0.1.4"}},"signatureDigest":"sha512"},{"version":"0.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.3/paperless_sync.tar.gz","created":"2026-09-28T06:52:05.096570Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T06:52:05.179252Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"0QYjd7NFqRUylKAoA5I9EDmrSCfFF08dDcNR3qeLIWvOdSeWfNA0SmDW9+bNhWCZFbDlD5mg/mfBeXr78BCUTnq94PN5Fk8z7RhuDZlR9zkiVax1Amzo1ouPmgtC7pMHOa+VStfI5LyawfKZDcPANeSgNRy6pVmbJsmy0h4HE/5NwT04Kgq4KC0DUgiamjkqJ2UGZc5fosa7f2DP9/FTldMrxrhtcwdhSmE3s4bZ+E3QqVE90f7mu9fVeIv2LEHLSEp+Ax3lNXHi37u/m+QN9z/+p4aguRcd3Cn5erjaYv1Lu2Hu9858i1C2c0HWzD3fNzI6MnyJwUoWV8yDKRyEKM9TnkfUGm9SQsI1BT8BAiiIvbpS8DwFwbJ62YukvpuCzEBNOUkxn0/mOZnc8huFIeeFC9ReNC8Hq7H1lhG8u6rm61Ud3MjcnY/v3utffEGL/AQlrxT18+9SGOeINTVFrSjq4/wJ7u5dxxrVC5w9uAFxL9B7KWkmx8n9cpCVtCjXdCvvFJuyljZMj7fKzChZAIjwgXh+TWgKeHUjlHsijk2vfmYegb+rFMsHLRR/a92qcPcQ78rC1ozqiTqbPkLfzuSymoRUbdWEpY65ZcXlxTl+fONoAKJvtM9JdTSEDaxI7DbZUHccP81CIOQ6Wx2C0Y6Xmh14EeBkO0Xr/HIe5rA=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 2f7471bc9b6964221eefe90c1b076351081b9b6b -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): Bump vimeo/psalm from 6.17.2 to 6.18.1 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/23\n* chore(deps): Bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/24\n* chore(deps): Bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/26\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.2...v0.1.3"}},"signatureDigest":"sha512"},{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.2/paperless_sync.tar.gz","created":"2026-09-21T04:58:58.774873Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T04:58:58.867125Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"jBC/2EM5yggL97AlwLYdCNebdDukGrG7v2Icx2roeMHlxsXjZGuOZ68yOtv20lfT3S2rOgdW95KaqhwG9abeAOedGLSf1JAa2BpPeIuOO9WSM9/jEDPyEHcucthBQKzaBhb2BtbqZVGkGs93pAQWLS5m25ywyhpismcIZhDHpXN4kYsEJsHAOyHwDRvi0y2ZWak/M5HlMr+wmY/KL/f5OxxSF07ZcRih1hWP3w3B56RLsawz54c8r/tbX9uxbO7P7CXmhhWP62+M50ocvGl8iqbuVpW9Ca1ImoDE53CuFSEUDKJldYMktkF92FwvoJyIDbzdWMMtz3FD6IwvJiwLjx3REEFssNwvWfksLLhEJsoRw6zuC8C0A75TTHUinU6KXyI3MJazubvjkitOjKtApccSruTsXz9xVmHd0bmc2SS1CXxdBN9KInLrYLSaG/XQdeL07yvC5VK6AFcBhuNnX8RQKRRj02MyAPkm/ZUG91TWBjjft5jQL6vlpX1BDu3fAyJmjIM4BGzvLEra9cg52miXg2vWxynOebvke/fNzU2OxfvHFpZ0Z40ryg96lYouX+3eAFHbisf19ov1HGSDjytIdtEoFL1qhoA0wDwQ4J+Dt62yaHnV9IjxYYmjAjVWeYqtH0RwoFxGEe6T/Gm+vZXSIyZDuEuLT2xsDo3LrpE=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at eb19bcabfbee4d333095f5cee134a20c2d3ee84c -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): Bump vimeo/psalm from 6.17.0 to 6.17.2 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/20\n* chore(deps): Bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/21\n### Other changes\n* ci: pin Dependabot auto-merge to the inspected commit by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-sync/pull/19\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.1...v0.1.2"}},"signatureDigest":"sha512"},{"version":"0.1.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.10/paperless_sync.tar.gz","created":"2026-10-08T20:29:41.270171Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T20:29:41.663584Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"LASMq9B/xJjEBHMVFLzeT1nFNjtBD7gt1lRaIJKlcSOpNsfg9DjnEzz3DaXpJHJox7TvaYmnzClLH2+7hZGMf5GhrjpBIgJQmLPf9eY4BhZBMXrkW3RN/6LTATZITaZOI89V08/8REwP06DKh7tRQJGEt655oeVh5KqaaGiCFAtILC2GxCPAk/Mzv1owrB36eARj6MP1jBulqdOfv1r9RMKlDr8Wi8727jtgmJ0Trorf9LajVnq/Vdq+7jZV6HZ3koQV/rDFhNTRSXvDKRZGZotyFlYGX80hPpjlqOQvMDh37g9MMxtQR5kbDGACjfnVOh2vqR1LUFtcaE9eLwMTAUP73EyM6YsSkXVyhBnblBw/DKSqQvhC3jGy+RcMlIikhMCVT5YXSRJfqIhkG7It+wD2MPTb8RrtLb4ID/SoWicRAgr6mGF2YycOAg9hUETLMwIReoQ1WeFCSUeTdsxuZTuKNHVWw+t1+EDxfaklxHK4s4WqiKvYqs6uYnYmELuVZ6+9LVKoSU8+IoxMZjAJv6Bj8Tzib0vauUtE2iXA31y64/VsZMEyseKCBNauKew1wqFXlhQjRL/U5IvqqDu1QWSaNzfVqiPm54VOiA7ZXPGyI2kh/RRRl1aSXm6zzARnk3HJoTJLHX2R8IhA2Ba4kY8xuxZ4v2VoOTdR7mLP4T8=","translations":{"en":{"changelog":"### Bug fixes\n\n- Files of the Nextcloud inbox reach Paperless also when Nextcloud can't tell their size beforehand, as for files on object storage such as S3. Before, the upload had no `Content-Length`, Paperless refused it with `No file was submitted.`, and the app uploaded every file of the inbox again in every run.\n- A file that Paperless refuses, such as one of an unsupported type, an empty one or one too large for a proxy in front of Paperless, stays in the inbox and is skipped until it changes. The report of the run and the Nextcloud log name the reason of Paperless once. Before, the app uploaded the file again in every run.\n- When Paperless can't be reached or fails with a server error, a run uploads no further files of the inbox, and the file is tried again after 15 minutes, then after twice as long each time, at most once a day. Before, every run uploaded every file of the inbox again."}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.1/paperless_sync.tar.gz","created":"2026-09-19T20:20:53.944609Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T20:20:54.784991Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"es9Y6mf/N2WMKNLhwEoNQJKZwJFuwVsl+4I+J1xRzH/h7uJOkJlHXn8oLYKsI9e2kYo8Es8CYX01lYX3f0UhqThusUDtYtm3ysQornQcCYyVuZZaQjORgLesX83aVa9W2scrBh/ylQPpDrisGbZaHZmCwAlMzcXUma66jzda7G4d8xnmh16wRTQp7xxTcrIIXeGk8OOE3r7k0TqoAGqUPFCtUsQmCgnuWHFGxxC+g4J3bkDwMf6e0BwSpp4WCaxTRKWgDKvE2L4SMWLXq/g5QdifdeNofTP6x9NwJXnn7qy7qpX6JMLK8/3lVrqQI49PkJaihaA6UH0VGy8YPEANkefve1aGkAivU4m3pxF0zVuUbtb+BBrS6m6oaoH5oFzvpWgUygiVrVVtz0eFPfVt+sGg2dXMxvDaspHXHteDEL5iDtOtRXCWKn7v68nGd80Tuon6EDKAugT2yPh0QPoxz4NPZFw7cL4Ow7wgHbp25o+nmrpUT3vfz4cMtRBQLZwl53LI4+veVYmXxozdZ1bmkZtad/wCWI1SiqAoqEDH6WGz7ORDYOZFQM5pdKiVWGEm3cb8U7UL68lunYGgtEQvQIkVyTTru2D0NVDzDlx6Gg+zaOBEdEJzSvc/PECt/IEw+lYNEHtl31O2UMSwpTDQHniulBkTcV4MMJSbGsJDoKw=","translations":{"en":{"changelog":"- Publish checked, signed Nextcloud maintenance releases automatically after merged Dependabot updates.\n- Generate categorized release notes, with an optional maintainer introduction for manual releases.\n- Require successful PR and main checks on the exact release commit, without cancelling other CI runs.\n- Resume interrupted GitHub and App Store publication without duplicate versions or replacing public assets.\n\n- Publish the configured app version unchanged for the first GitHub release.\n- Move release commits before reproducible packaging while keeping commit and tag publication atomic.\n- Pin checkout, PHP setup, and Gitleaks actions to immutable Node 24-compatible revisions.\n- Verify DCO sign-offs, translations, dependencies, app metadata, and production-package boundaries automatically.\n- Validate unsigned and signed release archives and exclude development-only files from packages.\n- Add reproducible Docker end-to-end coverage for Nextcloud 33 and 34 with a deterministic Paperless API mock.\n- Exercise dry-run, export, metadata moves, exclusions, trash, guarded deletion, inbox success and failure, pruning, permissions, and background-job registration.\n- Expand contribution, security, testing, release, and manual acceptance documentation.\n- Protect `main` behind required CI, E2E, secret-scan, linear-history, and pull-request rules, including release version commits.\n- Add weekly grouped Dependabot updates with protected automatic squash merges for patch and minor changes while keeping major updates subject to maintainer approval.\n- Add CodeQL analysis and continuous SPDX SBOM generation.\n- Publish detached signatures, SBOMs, and public Sigstore provenance with releases.\n- Document project governance, conduct, and support.\n\n<!-- Release notes generated using configuration in .github/release.yml at 5ce005ddfe9a014e551056f4192fc986de9862ca -->\n\n### What's Changed\n### Dependencies\n* chore(deps): Bump nextcloud from 33.0.8-apache to 33.0.8-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/12\n* chore(deps-dev): Bump the composer-routine group with 2 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/14\n* chore(deps): Bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/15\n* chore(deps): Bump nextcloud from 33.0.8-apache to 33.0.9-apache in /tests/e2e in the containers-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/16\n* chore(deps): Bump python from 3.14-alpine to 3.14-alpine in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-sync/pull/13\n### Other changes\n* ci: automate protected dependency releases and recover publication by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-sync/pull/17\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-sync/compare/v0.1.0...v0.1.1"}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-sync/releases/download/v0.1.0/paperless_sync.tar.gz","created":"2026-09-04T06:24:12.711089Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T06:24:12.792785Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"uoVcdW5nzurlFHpZ8fduHFAKwUn0ewWnRrOSjo7kpWpQhSGvBi4MOnvoPQBSch0O9iYdkCoIYM1sig3HHUtMyMZxBqejbM3gOiKjyBhnjDYpvzbCtwi+TYA0u7M6Axz+jKmvnts66YdTBN5c+ArYbp7cLyN+7QN3PuoaFkh8/h33hO4CpY+7GoGZAajE5X8zzcXOLYLdKgk7SAjEJwcKeZ0hLfEt5Sr96CnWBQIp0RVM2/3heBpgYEvL13R8Loo/GUhE6DQAtY4qPV/P57yIGte/lLNdggxe6QqPdqTTt4SfpuVrkoYjtr/lSwwYFFPSMNGJu1t9SY1xT9/T5nfzY8D0NJL7wxVId23dq0LNjzX+NGNV3VB2gxYR/1QnVzLRG/mnq5vta3hZPwr+xdgT//fgIUbY3ti6SEJDRajBuvWE4cpOq0PAXkC/ihZUKGFgGpQ7FKbFc9c9TepXY2k4cZtcWfiUg8s5ad02+xV5x/zJ+oktkWLtllwEWp+yTt/xQ/AhRTJiKOb5O+LOiGcRfwtoh1SddWxIwVmOWvX/lhxwXSucbGllFWoACSL3dWwVScQWggU9l2CGfOqh3rO+1d+Deh04bU/ACqWPf7hELtzAeatfAeMS9++o6OI/K0BEgj4QJM4DLpY4Rqzq9fU0WRX2fQLs+NuY/ZUYFwioypk=","translations":{"en":{"changelog":"- Add configurable one-way Paperless archive synchronization using Nextcloud's native filesystem API.\n- Add optional Nextcloud inbox import with Paperless task tracking and error handling.\n- Add metadata-aware moves, configurable path templates, Paperless trash mirroring, optional permanent deletion, and empty-folder cleanup.\n- Add dry-run support, synchronization status, safe defaults, persistent database state, and native background jobs.\n- Add automated testing, secret scanning, semantic versioning, signed packaging, and App Store release workflows."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy1zeW5jL3YxLjEuMS9zY3JlZW5zaG90cy8wMS1hZG1pbi1zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy1zeW5jL3YxLjEuMS9zY3JlZW5zaG90cy8wMi1zdHJ1Y3R1cmVkLWFyY2hpdmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy1zeW5jL3YxLjEuMS9zY3JlZW5zaG90cy8wMy1kcnktcnVuLXJlcG9ydC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Paperless Sync","summary":"Paperless-ngx-Dokumente nach Nextcloud spiegeln und Dateien aus Nextcloud an Paperless senden","description":"### Die native Brücke zwischen Paperless-ngx und Nextcloud\n\nPaperless Sync spiegelt fertig bearbeitete Paperless-ngx-Dokumente in eine lesbare Nextcloud-Ordnerstruktur. Paperless bleibt das maßgebliche Dokumentenarchiv, während Nextcloud den vertrauten Zugriff über Dateien, Desktop-Synchronisation, mobile Apps, Freigaben und den integrierten Viewer ermöglicht.\n\n### Strukturiert, automatisch und nachvollziehbar\n\n- Exportiert Archiv-PDFs oder Originaldateien über die Paperless-API\n- Erstellt eine konfigurierbare Hierarchie aus Korrespondent, Dokumenttyp, Datum, Titel und Dokument-ID\n- Gibt jedem Nextcloud-Benutzer die Dokumente, die ihm in Paperless gehören, über die eine Verbindung des Administrators (optionales Eigentum je Benutzer)\n- Verschiebt oder benennt Dateien um, wenn sich Paperless-Metadaten ändern\n- Überspringt Dokumente im Paperless-Posteingang bis zur Fertigstellung und entfernt bereits gespiegelte Kopien, wenn ein Ausschluss-Tag gesetzt wird\n- Importiert Dateien aus einem konfigurierbaren Nextcloud-Eingang in Paperless\n- Sendet eine Datei oder einen Ordner aus seinem Menü in Dateien an Paperless, für eine Gruppe nach Wahl, und öffnet das Dokument einer gespiegelten Kopie in Paperless\n- Sendet Dateien nach Regeln von Flow an Paperless, etwa jedes PDF, das ein Mitglied einer Gruppe hochlädt, mit eigenen Tags\n- Spiegelt den Paperless-Papierkorb in einen eigenen Nextcloud-Ordner\n- Kann Dateien nach dem endgültigen Löschen in Paperless ebenfalls endgültig entfernen\n- Entfernt leere Archivordner nach Verschiebungen und Löschungen\n- Verwendet native Nextcloud-Hintergrundjobs und einen wiederaufnehmbaren Synchronisationszustand\n- Spiegelt ein neues oder geändertes Dokument in Sekunden, wenn ein Arbeitsablauf von Paperless seinen durch ein Geheimnis geschützten Webhook aufruft\n- Benachrichtigt die Administratoren, wenn der Spiegel wiederholt fehlschlägt, mit Einrichtungsprüfungen in der Verwaltung und einer Status-API für Überwachungsdienste wie Uptime Kuma oder Home Assistant\n\n### Standardmäßig sicher\n\nDie Synchronisation bleibt deaktiviert, bis ein Administrator die Konfiguration vollständig geprüft und gespeichert hat. Endgültiges Löschen muss ausdrücklich aktiviert werden und kann mehrere Bestätigungsläufe abwarten. Ein Testlauf zeigt geplante Änderungen an, ohne Dateien zu verändern.\n\nDas Paperless-API-Token liegt ausschließlich serverseitig im Zugangsdatenmanager von Nextcloud und wird niemals an den Browser zurückgegeben. Die App arbeitet direkt mit der Nextcloud-Dateisystem-API; ein Nextcloud-Passwort oder WebDAV-Zugang ist nicht erforderlich.\n\n### Voraussetzungen\n\n- Nextcloud 33 bis 35 mit zuverlässig laufenden Cron-Hintergrundjobs\n- Eine erreichbare Paperless-ngx-Instanz ab Version 2.16, auch 3.x, mit API-Zugriff\n- Ein eigener Paperless-Dienstbenutzer mit ausschließlich den für die aktivierten Funktionen benötigten Rechten\n\nPaperless Sync ist unabhängig von [Paperless Unified Search](https://apps.nextcloud.com/apps/paperless_unified_search). Beide Apps verstehen stabile Dokumentkennzeichnungen wie `[P123]` und können getrennt installiert werden."},"en":{"name":"Paperless Sync","summary":"Mirror Paperless-ngx documents into Nextcloud Files and send files from Nextcloud to Paperless","description":"### A native bridge between Paperless-ngx and Nextcloud\n\nPaperless Sync mirrors finalized Paperless-ngx documents into a readable Nextcloud folder structure. Paperless remains the authoritative document archive while Nextcloud provides familiar access through Files, desktop sync, mobile apps, sharing, and its built-in viewer.\n\n### Structured, automatic, and reversible\n\n- Exports archive PDFs or original files through the Paperless API\n- Builds a configurable hierarchy from correspondent, document type, date, title, and document ID\n- Gives each Nextcloud user the documents they own in Paperless, through the one connection of the administrator (optional per-user ownership)\n- Moves or renames files when Paperless metadata changes\n- Skips Paperless inbox documents until they are finalized and removes previously mirrored copies when an exclusion tag is added\n- Imports files from a configurable Nextcloud inbox into Paperless\n- Sends a file or a folder to Paperless from its menu in Files, for a group of your choice, and opens the document of a mirrored copy in Paperless\n- Sends files to Paperless by rules of Flow, such as every PDF that a member of a group uploads, with tags of their own\n- Mirrors the Paperless trash into a dedicated Nextcloud folder\n- Optionally removes files after they are permanently deleted from Paperless\n- Removes empty archive folders after moves and deletions\n- Runs through native Nextcloud background jobs with resumable state\n- Mirrors a new or changed document within seconds when a workflow of Paperless calls its webhook, protected by a secret\n- Notifies the administrators when the mirror keeps failing, with setup checks under Administration and a status API for monitors such as Uptime Kuma or Home Assistant\n\n### Safe by default\n\nSynchronization is disabled until an administrator completes and validates the configuration. Permanent deletion is an explicit opt-in and can be protected by multiple missing-document confirmations. A dry-run previews changes without modifying files.\n\nThe Paperless API token is stored server-side in Nextcloud's credentials manager and is never returned to the browser. The app operates directly through Nextcloud's filesystem API, so no Nextcloud password or WebDAV credential is required.\n\n### Requirements\n\n- Nextcloud 33 to 35 with reliable cron background jobs\n- A reachable Paperless-ngx instance, version 2.16 or newer, 3.x included, with API access\n- A dedicated Paperless service account with only the permissions needed for the enabled features\n\nPaperless Sync is independent from [Paperless Unified Search](https://apps.nextcloud.com/apps/paperless_unified_search). Both apps understand stable document markers such as `[P123]` and can be installed separately."}},"isFeatured":false,"authors":[{"name":"Dennis Otto","mail":"","homepage":"https://github.com/Dennis-Otto"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhPxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMTExNTA3WhcNMzYxMjA5MTExNTA3WjAZMRcwFQYD\nVQQDDA5wYXBlcmxlc3Nfc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBANX25Q2iklporQMBCDXz6FU3OW6jc3C5I1sSBq33A31q9cNeJd3OUsgR3kiE\nqdcqF7s0IztcsP1pcSIBAcghz9lj5XOuZ7UYhZaBHCqrqt+NHMMmHBIv6FAKWFd3\n1xjtIi1VjsO/nHfQHRbjbVNVmm49C8gt3UjoMG7KdNdBxej3rrjvneP+iTY9ytxc\niFxkbRljKCR7TGd3BEdevigYjCCrv2SAw0t4Rq/UM0vJrzzydMJso473bXpXOn/Z\n1rFL5zvtVt2kPx0SeJE21rblrJX/u6IcaRRvITICGLOazzXXcPcKyZ8SNlbcrdYd\nrydX4nesX+uHnz4QqFkFy9u0/2CsvOaig2rOYMUxKbOrhR5EQUgrIkX0NKNp8m6X\nPL8110oMkMVlaNIalTiojA25EWq8Rg6uqfT/NtzNxlTE/Y6IKfkG19wGi6APETEa\n4/TjSHqs9pW0NdSx7xzYpWsF0o+TrAzi0DaUDs7HHq8bmKxP9+Y1VkJAidV44gve\nWG/P0cxwL3YgVfQaEa3SUztwmVGhNLB8vgpNbjrHwLP3hLsqtxgIPJMBDU0+1Hu5\nZtlKlZTt4ln3l5jZ/7y6eLlTTFd7O5st6DejQ70Ue3z5r/ffHxZTDcPZLoss7irE\n5I/AAnMwOpYyJT0irjSxEUbW0O3+gHr3RsJMqJnkSGYT6pvRAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBABU0D4EjZNF+/h76mtXQqxVETCfnl0UmqVHpGCU6NTnDG+TF\n8yH+suSY73bbRsYYCmgkI7DuXTfdbAd6QYgudROxVjOMsqgFhnQkKeMN6y9+yJi8\nR8lPdaGJUBNqpQJlkyRGnxxgDjpbGkHDQRwkPed7lBHzMiTnC0gRQU1Dwja8rZAx\nA6AexctlI+u8tSa4cP0eK+bBA2K81nxJO5rVKHP+LPqGMfwFBh0Z+bhJZ10zt7pa\nqSLrLu0Ka1VFYwbixNNJ+JdsaqwspeVMkBt4rwK1ktMem3AsyjSFy1P71e8843km\nF0Oan+1JR8mynyjBz2mMa0ehEfQ0u9NzFXIr4Es=\n-----END CERTIFICATE-----","discussion":"https://github.com/Dennis-Otto/paperless-sync/discussions"},{"id":"meetree","categories":["office","organization"],"userDocs":"https://github.com/dec0de/MeeTree#readme","adminDocs":"https://github.com/dec0de/MeeTree#install-in-nextcloud","developerDocs":"https://github.com/dec0de/MeeTree#app-store-release","issueTracker":"https://github.com/dec0de/MeeTree/issues","website":"https://github.com/dec0de/MeeTree","created":"2026-06-23T21:07:15.147852Z","lastModified":"2026-09-26T18:06:01.709955Z","releases":[{"version":"1.1.33","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <1000.0.0","minIntSize":32,"download":"https://github.com/dec0de/MeeTree/releases/download/v1.1.33/meetree-1.1.33-appstore.tar.gz","created":"2026-09-26T18:06:01.706234Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T18:06:01.749403Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=999","signature":"o8CYAs1gvDsRIUSe2jIfwQG99ohTNBuSUcsed41D5jel0/rFKsg57jCNP5nJqoBze3J0+wkFO+MO2CQK/9RqlI7T/ByCKvtSjKT2egQdNMU8aHytdPz7bSRmtsGu8FWzC9o40nYYIwiRx6gxcHMP/ZesOfdUKmn7JWi8cNvY9oTsM6Oo9dZg94KpwRaOjxgd4Yp46T/isQcRJypQd7geB+xxuGz+6/1B+DYSeqLn8x+csXvEN10OPI8kdhb3TJJzC5kLkzsXw7IvLZa0vBv79L+m3ZWhxMIC6lFY8lO330SvWFiZD443jidbZRPkynodpvFMb8dgEc+8eWY1rjxHZcEDmOoLs/jsDnftpQusL/UXsRS7wMcSAA7HLxsnl+AYSv0t7sRLS8BICsxRMI6TTkkOndVr/Cl76S6ox+A210onXIQRKVfqrGIbDBOJv4YXDbpVnNifdTRRomXXXeJ4tcVltPapPrlXWLmdWiI4gVXFiQk9bVWBdrB0I9X9DTFL5li/xmit4a7l0E4pQd5cN4dUY/RruaeDXCS+MF/G+1YqxG2pIKNrqfzJVM5k7IbNZ4SDlpe0cVIUNXobMqBNk+DwRLlfWlyZiGlrebfn5Rxu+xK/5MXrS+MhLasyGXZETQsBuGgnN/+dUA0M0zdWoex2+byZn/6eGULkByPZGHc=","translations":{"en":{"changelog":"### Changed\n\n- Remove the practical upper limit on supported Nextcloud versions while retaining the required metadata field."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlYzBkZS9NZWVUcmVlL21haW4vc2NyZWVuc2hvdHMvbWVldHJlZS10aHVtYm5haWwucG5n","smallThumbnail":"https://raw.githubusercontent.com/dec0de/MeeTree/main/screenshots/meetree-thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RlYzBkZS9NZWVUcmVlL21haW4vbWVldHJlZS9NZWVUcmVlJTIwU2NyZWVuc2hvdC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/dec0de/MeeTree/main/screenshots/meetree-thumbnail.png"}],"videos":[],"translations":{"en":{"name":"MeeTree","summary":"TreePad-style hierarchical notes for Nextcloud","description":"MeeTree provides a TreeView/Jreepad-inspired tree note editor with Markdown content preview, native JSON storage, TreePad Lite HJT import/export, and first-pass CherryTree CTD import/export compatibility."}},"isFeatured":false,"authors":[{"name":"Theo Linschooten","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhN3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIzMDc0MTQ4WhcNMzYwOTI4MDc0MTQ4WjASMRAwDgYD\nVQQDDAdtZWV0cmVlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAygvP\n0sii48tkjWmSqBkLh8IDnT2o0iQ6tsHB4PB99HoQHShcyHO+ec6CzNQB9A5OzM2w\nDz7jDif1JU8FG7AFaAw25v+dylsCHpox5Eo2l+RB26QijoXxUI8PmF4dFyZMpe+C\nRXsHNVFtVca4PGkSAdWK7cRG362Cf+qjvFqM0RO3TwRqF8Z2ljnEsMisUZ/5J8Vr\nMW2LeDJbpAAiMMxl+L/3sOcgCGAo9L+p5SMbdNsRhNejzOLTTuy3DnHQUy7c2zn9\neJmRTYUNqwowNUTzrfnx8E18w1MFbT9FprK4hNCdfmYZy8ZCVrulfr+jFj8tTUJ3\n0GJu1sxL8WoRnlOQd1M3sFyHvSFP4bXlQFfmneHVjuSTgpPEDSiy4Kg5YZ/awG2Y\n974wATlT0RDJZk6tPlcJoedwJq092Mq6PQ6s6gtaMwql3IjeTj+smPzI5izJNVxl\nVUwqik1Tu4Vz8/Cpmt17IhSLeiTsQLqq42M8Mg8E+tU66+c5UkJW5v54kUPsPxyG\niJ6NPbZYJ+iRC+LDE+XyOdjXpCG64WKL3eQjHEg2ImEVJ20h81KZDoprAv+vN3w0\nCsOR8jnkGPXtewohmoxgWGdw8mC0Z/8bu1TqyEnKeLy+bdmV2q6SMtZ+XmyEnDmk\nD1LldIVR7QUAdI6EnLMRR7fJBolbE7o+kuySumMCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAJXaJQq/JFWt2PksvAGJrqQK63hHVlnLpYFfCCiIO8bPza1GiRMb2trOe\nyL9OyIMlV8UfzghgNM8zm3PVZMB3bqtDbeZkQZH0Al+lI8Tovl1suZBZ+g7WCbEZ\ndw4XrRBsBO2BTzdKe0n9WD1PAjKwFGe1BmRlYcO1KMEE84gbiT+ReXPmcpmn/+M0\nHut7LEBy5+ShQNf4TpOOhWfLn1HgtNgIvBJUB1sNOltd2SEQpCOhVR4XuUvMMcde\npR3uJgCYr22uY6NWJan4KBMXpPl6LpZQryfT0jgGZD0Ax7aravENuoVfPBCj0p6X\ncj8iyKm5czgf9z/si8RrMsY8eJ5EyQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"command_bot","categories":["multimedia","social","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/command_bot/issues","website":"https://github.com/nextcloud/command_bot","created":"2025-01-28T11:04:13.405277Z","lastModified":"2026-08-06T09:35:28.383412Z","releases":[{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/command_bot/releases/download/v1.3.0/command_bot.tar.gz","created":"2026-08-06T09:35:28.378428Z","licenses":["agpl"],"lastModified":"2026-08-06T09:35:28.443811Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"G5E/yy/r9YSviV5JW+TW8mGGnSHHTZZ1+bx6hUIS0Qs83MctQ/NfkoXOYz5K5b8q\nNYKAJ0Ifpfsa+hkHZZBveyza2JrrDSgN2X6qpEQH8rxUW9BCIzgKCYSmNU1iVJOe\nA3toTyWG/14SsM0UuK9d4tp0Cvshej+SFWVEYVCIyGQeGtxrXlzT6IHv4rwQy4d6\nZA5C/K2EYcIoulXswFkPhHZ3liUUSYNsWzYZWqZEsifMftHBH4lteh01yfW78O+E\naePfhdOwOH0jyOpGP1F2+uQ1FH3Dme/CTuCCqUCBQp+PaNaaEJpaKfvmwS6I2pDr\nt32k9WGYfonwE9nYJ2/XHhf02cJdE3UVkkfSfZCvjBq50WLwMNR6Fj+0hRdTktt9\nAXrZJXEjM5MypmLUr+ax6zdYbYErEdUSsfjphd8Wi89kl4ln7hhMEX35Xg1Zi8hj\nGtC5zAbAlh3voxJj2WU7HcdXt+vLfCf580pJPClq41BAFrlCh1pr4HMaN/grGwGn\nN7J7HIFWf1DFecFrc38AwWrxmHE2m3kgOBT39EX0uDCt0DHhCx+ta+tZSAx3p+nx\nuMrnONTFXZdaJJKTrYhGcIr5L9E8K72oU66q23RUioK8XB0KAv3ADIL3C13v4fkL\nMi1wxEFQAZj/FHQbPOpCVHjdYoB+TkgBZutN/bUbQeI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb21tYW5kX2JvdC9tYWluL2RvY3Mvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Command bot","summary":"A simple \"text in, text out\" bot to help with repeating questions and tasks","description":"Send `!command` for a list of known commands"}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhKMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMTI4MTAwNzM3WhcNMzUwNTA2MTAwNzM3WjAWMRQwEgYD\nVQQDDAtjb21tYW5kX2JvdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKgEVByHG+uOh/cCuqPwFRgDjxcRrdtgDLhNDLUvR0bdbjR/h5K5taVs8SeFUIqL\nZqnPcScaHw9b0OB68WxwWBlYUOgIWemZfogFMlXgmWTnZi5ehnD26U/pMqu2MlPM\nuvXaFSux4EHIaRTT358R/d6UqWmnTpkMsqgxBnK3yCuOaS2UOJq9Luix/nyx0csL\nBL98Clh5HuKlkSEOoUUxmuOjFI/2uMqVrzUMRpD4mEuPNXTcLdlvSIYaFYYRrYZ7\nj4hViirMrV4n8+dInhIfx5Yv+Jb0BfKeYdSC8zuJ+8Bg/ZOQ7cz95+CS4pUGMTdF\n/IGW1zlHzvVteGZvo8JLFaXdtVfQc+Pdm77FPf0qunFMExZMkDsXXzOUv0nRnk5s\nVrSrIywz/+8qvrvbRX0wXQT5qLULt3L0a1RA/z6pcPiuRxN+uAG9zXUgooQ+7Ha/\nPwFPHlldI25koLVP9s0cMvVoADwvLsWXG2RT8IrlUTH5uUBGTOE5YUmnoMzNDcvg\nbDgEulbxMa4WPLfWfjQNjZdcyDkAUA1Px5IjjOKWyfI0yEy1iWkNF3NkvEni+3pG\nXIjapt5GR+eM+tte9jJDT2IJ5245TOhTbkM3HjkN9eOD9zw0CYyCpCCcqfCOqlcO\nn2qBdnDA+U9mxenFrTyeX8HW9HdFkMw+zKPsTeRzT52JAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAHgXgCNyNS5+B4XvjxOD30XiqIECLCtLqBFAveBGggZdTTS4eEaq\nnHkkI9rnSBgnwVG3uap4FXmByDqfhLyg2NcbdF0gsPcWEyqb5HHNjRCLzi3LYLvz\n5MkynQ2+NKnFX6Z6t014PPjuSTIw3ncNqGtTNvUqthVRRrDzMywD4XN6aY4a0QbT\nyccZdxMBUtO/X1/D2yoDZ0g1S3YPMTWW9mOJV6iiBkdaZBeOSgk9zwXQVcEqq8S5\n2vNv+YZ5SSx382rTVDI9uf7HgOmrwt/msEa2gNuwsAFQAkkbzxxprQnQDEJhvXKA\nXKXbHrGaFm/AJviSl+23kRGd8VGUrmlrYjU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"logcleaner","categories":["tools"],"userDocs":"https://github.com/zomtec2311/logcleaner/wiki","adminDocs":"https://github.com/zomtec2311/logcleaner/wiki","developerDocs":"https://github.com/zomtec2311/logcleaner/wiki","issueTracker":"https://github.com/zomtec2311/logcleaner/issues","website":"https://github.com/zomtec2311/logcleaner","created":"2025-03-15T10:45:00.327531Z","lastModified":"2026-10-09T05:42:42.690246Z","releases":[{"version":"1.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.5/logcleaner_1.6.5.tar.gz","created":"2026-10-09T05:42:42.682180Z","licenses":["agpl"],"lastModified":"2026-10-09T05:42:42.745826Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"MUuZM7acwywejZWDPWYqyDoxYWla5I+AZZkSiCIT8GRvgU7383gjcWsExbL5DrxCLx2dv7cKB7UmZPh6mwU5j4h3eAed6qN1NxsiKAARcwH0KOAUTjX9JyXHh8IYOrkcTK0eUOKUCroJCoeI3r7LPZdY4h5NsNX66K5IERUzA+f79Tjh9r9DIef3PDsY/yhKuD0e4N849VbcKZFbBv25oFJre2X700TXpVCM4wveFiB6hNURA5PtX697pGvhz9jfckGZ55HNsqhltpQOGQ7brn0oGjuICwHDwhxDrDH0q35z+l1RrWL014ykChuSVxSsAzgU0o7PjocOCIkwuaB5mx46NgWhpiAgCldNvwXWLgdmXtTr8OgnHfH/nVJnYdbsi9XJBYx7IA0RAzKRmBWImWR5Bu82+szqHG9DseZp41jfjE8aE6PKIoG/n3xJODM9//0Zjb0Silrw+Ytg29rydvqlqAHQJCDlMMKKidc2fNUyIKYq3K6wqmfzEqlMWZRiaj8sFOsf6U+1kFstNro0kitJQcdBOsDkc+NN6n3Vx2+uPNgy0m9VOU1oTAJ+I0X9/ohx0Skwssxs8EqBLM3tMxvuwNHVbUEhezBvmDzckCkuP22E5wwMGXvC2xqOCZcYMy0zocMc5MAVTzQNCV6MF7Genw9ceWxdHVLNJu+0GFI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.4/logcleaner_1.6.4.tar.gz","created":"2026-09-08T15:16:59.648185Z","licenses":["agpl"],"lastModified":"2026-09-08T15:16:59.708615Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"VJmqp3Aa/LiqNsfA1t0nVvbM+gzH9KP8DxspXEst4UmwQvKHyEl+xqFSfzlEnzukSU1AW0ZGmWnn3PTB2wSDPWp7X2J1g6xXLmloQ2eCykaP/wA9ixqdb9EdLTeqHT/zGUqDyNpArivUMcZb8CeyTsnItCa1s57IFdHZqnrZfdypHGtv9QUlARkWeeDafUjexWM/Ey1PnMlFfIx9VLzoqdoK0gAAgs+omj3AOE1+lsKqU0VuUq00C72//dzPbDi9SHrKBYrc1zwg512CdUjdg4AngLWCfutADIC/FVu3Bu8RZ7aGB9HFnfytAXe3qyKvebFLwLTKjfGTX8+kutiMj+PfRrLTMjJ0TN0QIYfpHixEyaFGDBsTJuu1QKyp5da+JjWKkrStfBVQOVN3b3RLwB1b1suD4X54h55nfZIORH+0E5dPJdFAeqfda+V40HoiSICw3fDq8tkuZkQtyRu4Btac2Q1IJ3uXzOAaELPX9RPdUxrkv5BRGMMLs8GBXM2htb/s/c5uGmiiYldKpFFpIGx3yjr5I16oxC2jw1XGZAwgHHFqPh7cS8JGbA2w9H/GYznE0qi31hNbogHzbAtyESs28AzouIMVXZCQWaIE5YgAYSaE2F9w2U34IpIKPP0gsnLldhFYQcG1Efm+FPr1FkzhaFzHLJBHiKgO5gtxoW8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.3/logcleaner_1.6.3.tar.gz","created":"2026-08-26T18:07:10.834365Z","licenses":["agpl"],"lastModified":"2026-08-26T18:07:10.889416Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"HkMaAeJcqbpP5Kl9NsVyx8rtTg+Bqz5OA/Hqnwb2N+W/S3LpdCpoROvgzOXgyYTdLbym46g0XkVsinZ6ybzn9w1Zbhrf7b4I198rqe5rV12J4ImooQd4m3FxmDFZzv4SIjyGESosirUv1smvL8Mx2ZOPs+jlLsZPlnzVqxjxbd+SG8PaLJdBjHQltUCGUrNg0u+v8h0trO7LbEYJgYSvjIfP6GE2V5XtttzxBsyZPLTbT40gxoZbb0FoChAW1hmguBeT+3+3ufqgCXF/gBlQpDD0jZm1lx3MDydveAqw+10xpwxFAepKmevTdsgikisz8Dhmt0SVB6iDc4WAxVxcfPA/sX1CciKpQ1cWrnU4fEV8CToHsd+t7gCmLLvxuXiNRc91xX8Yq40mJJgGE8vgAgqZFW7/Os5q4h4got1dtE1AJdFtKijA3dh78Rfz2gA6JI1ELwcJ8APWRRrTnI66/VNFjYa+ifcS7DRoGSv6ZgW5Iil3OY7UC0/7kKfYT5l6lHs2iezQp6aRxd5EOcOUIh3a4nhOvI+VWNNvnyEiJ0urLpHQXrUhkkJQxYsxOXXKsB/WFsfMuyBx6dB2mf2pCOOWVxdxH8+VK1WCPMM3KdpdxkqIoK5+YZ+sVCjkm3eKdAJRRdksAOuLVYzXYsgtf+LM205vcTwvU+Vaz9ZwExc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.2/logcleaner_1.6.2.tar.gz","created":"2026-08-26T17:13:24.793933Z","licenses":["agpl"],"lastModified":"2026-08-26T17:22:15.926168Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"B9I/CzQ4kpIyW7AlunNWueAkNRjiQ3yz0phx4aWHIkrDn7R41v3727CPgO7ycT2dLi/69kbjcs9UxTdueZjo9PFO94jVPiA9RFp50IuPcUCQ9cPcjuyER+dwTzpYGvLJRh62mbODO5W9hcYtxPuWxwCjKwSjmQMGu+gat8kRVodpkVC0SFydhQ+UYqF47B9foBz12IhpTuTqGoPxB7Pcg7K1Fk8UYfeVcfA/uuShS8pWhfOtSinUxpUkaUbNKww4MRadhiyRmhSn1bc7ee4qPTfFQgqIimise0mKCemOm/9ssLZhacOYwzLIH36uHQ+OVr5J6De0Zyw8GM7d5cQS298r46yA+Gu1j16uev847XbQpy54yR1TfFwCxqKOJLkTnmTA/8kTpMKtT260NBYhgEon9WB2wN3VYxDyWSCuKstnB+WX7TxxGlYKzNvQF3Z6e9XHCgf9hBHtqCPcs7kBkMtg+fxVOh9H+v7No63g1xfKJSJ1EJEAa+YTD1C5j2Yz101QJkPcok1y+xtNe9091edU0NCjgUQq538Z2NTUQTRT+K4bQfkaFBCXm05eiG5BjZc/du3/mVMD/dZK+Os0pmT3+dW4jBW6K6rk9+QpazITGKtRY58cFCvsayi4Ar/zk5OSkFe7EX4kDRl+C3XIvoLLHBtoChO0ySYxYIVFa+8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.1/logcleaner_1.6.1.tar.gz","created":"2026-08-26T16:35:40.619161Z","licenses":["agpl"],"lastModified":"2026-08-26T16:45:52.731941Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"b+VvkC5ZlBgGDUBOgS6a8Eg7xinwWqhrUNwm0Au9cOhD1IE800TvlCf5S7JyOT1G7hguUlXWIl9odSdR5RwLeBae3UPFy0b2wQr3agrrnGjLoiiNWJsrha1G/6tt7By1YmBk+JmUYIAWt7P5YnbZ+qyCMq7ZzEnKJqDPo3bi41ghFeq7qqvoXIAf5qfGRWXK505CjuTNnLii0BGq97BduTzxzjcXN+lpYRyhQIHNI8Urwtc+cZYaPGflYHf4ik/7gW/sz5Os0SvWAbZMoaIpYDLNYZHK2NjeuV3pDaSvpQ0Jrq5x9eRrv9sZc7saVOsFxNH9pOykh8aXsdpWhw8g9QxFjkkwtbD41f5dVjJ/ZYudyju/PEbPEicVmrBgHB/zi+gF0JjkQjIfbD3VcZJwGXu2wO01OEtsp/olJeXfZ/b8evqCIllDYo2xelsBc26OJ2QPswAgB0/sedxyUoA+IDrfajP/ieWL2Bky0vWt4NvEXQetKOsTZkTyysVAjnPAS80nSwsu0JL96LY3U4neniyqEUsthSqOQif5YihyqremCYt0nWstMeBc/sXhV7OwqzWZ1KnYyd4YprEzp/bq048PU4qEQypb3pZcciQEVbFgcHIP6CkKe35PcdibpjD5wyL+8wF/abKeIYYCXuxYDVd8rdohSGRCgvFwUlwPOaw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.6.0/logcleaner_1.6.0.tar.gz","created":"2026-08-26T16:38:08.403376Z","licenses":["agpl"],"lastModified":"2026-08-26T16:38:08.428933Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"SOYAZftKs76kxWV+9P+7act4nNT8V6VG+2fofV78FR/bokiJs2dY8YYbEhWE4LPRg98o6mgMXq7z8lmIqxq/rpUgIH8fMrW4ERg940hTgwWMV34kLI79nymwssJ0thkOY/jjC3rBvu9ouTlcaaUoragBU679XrP2Z6fc3LxyQ0oMI0BLEHVbHRsvJc+x06luI0Gmxyk7tQMh4X494b52XT7thXmec5ofR84sNtJoyfk0p3h4vixgtPyvidKEq0RO3W88IUkdSzhA6+72BTS3cecQneMZ7MIdCZeEKWZNzVkP4r2TFp/G1B3Vq1RR8TvdNimiYXT2uNV3uYbQYQ+5QQqAnKvYpearF9TQGxhtaYjRn2u3t7BrZV1icMDkG1fWLsPTsL8S5Z8RQgcVVqPxs/MQbqBh7aN7tcQIWRpQaAr0J+MMWJEcIoMU5XtqcwDBKcbgg3AajuXk75KFjFuvFmmRT6C9DJGg50SZa6zrqLbUZJgRpJ9x8s5ugJ88hgnMO3uMXjGe901dPHw9KcLs/52Ux+nlr/GHKMW8KL2jB/ZJzPLIDK/M/kIMqRpYSWKYCHKCpB91Q7q0M8hJ6rvvr6ksNXfv2BgCV1uQfdUabLTnGIwOmkWHWTpi5JrYcWmHbYfZJYYr1NF16gBei35kmq0hvAQohY2IhzJ+V9qkPJY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.5.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.5.9/logcleaner_1.5.9.tar.gz","created":"2026-08-24T11:54:03.590264Z","licenses":["agpl"],"lastModified":"2026-08-24T11:54:03.673599Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"UTG0Zi//Yr/1m8V5H0X/WP6dZc/h7jITkrnItrKJ/s06M5Ej4d4XpKe4ipRP2AQZ\nYeUyqgNnqd9Sr1hTgfAUPyrLmZDuGNXVSymWVIeWzIZmZwf7N/gud926GMMJGZSG\nwHojktPBsymFAm4lTWYererWQ4/roAst/wTznOqjQEGnEfuUI5b5ZLUp1BiqNaaZ\n5nydu0Y7pCbcnzv3+dAu9Iz3xnBnWg0FC+YbQAk9PoK+a45FTUXQAdnztFmLrGFM\nJdtXY+46NKy789Bh5xY4QOMariArvG/45HLVwj/lZKXoODoRZ4b9muGK/XeXuQY+\nfLErDQ+BJ4wZF4rrN1QPFKU81GjMJ68RHIvdiM+3zCXY/34QVWGzL38eRLt1+RMp\ni2Rugs3L0ViaYGUxK+BwAhDihrfvujSHRmAEJW9GRz5Szy/3bEgVh9hDc959v7a5\n7g7lR5WlJCPIgrWKO3umsdheHEGxe4f5vDdv1X3sVQ/8gKRlqgqy2XOjl1KSo5g4\nln/sMYPnn0AsA3FVDVn1KdL3kmnHjDSmBLJH1/lB27m+BhgzaSEzNorhFasb19WA\nRybiTjVjDJglR4lx9JnwkgWiuVuWlb+dkw9jvwpRa8SiRDvTwYo4PGh82LTrx8Eb\nKp99HdQgmxL0EfuTSJuHKSD75eAu8vwAhIxf3et91zM=","translations":{"en":{"changelog":"### Security\n- Hardened command execution across controllers (`Helper.php`, `LogsController.php`) by replacing dynamic shell commands with safe PHP alternatives ([#62](https://github.com/zomtec2311/logcleaner/pull/62), [#63](https://github.com/zomtec2311/logcleaner/pull/63)) @anupamme.\n- Eliminated potential command injection primitives flagged by Semgrep static analysis.\n\n### Improved\n- Reduced memory consumption when counting total log file entries by switching to a streaming PHP file reader.\n\n### Fixed\n- Bug fixed: menu right from logcleaner settings does not work for Nextcloud >= 34 ([#64](https://github.com/zomtec2311/logcleaner/issues/64))"}},"signatureDigest":"sha512"},{"version":"1.5.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.5.8/logcleaner_1.5.8.tar.gz","created":"2026-08-22T14:02:30.796697Z","licenses":["agpl"],"lastModified":"2026-08-22T14:02:30.860972Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jyxGkfksf4oaYwykArG/eTvFJ+npXWR4kDjkwLbYOs7LrMHLNCJh1u1BKo0iA6P9CVGHYD1RFTrRInXIOGy2hTALEAmm/yMGk4qPkT4O3yj++qimQHBuHjGUisU+i0YRLAa+w0NKNFHDjOHTK01AZNIB15gJ2CEt4PsoaGedkGTVfKtyjb0Y+oaKyleJdMV11YinPF8NIp9/9foxaCpnEAcr4xjgItoN744AqL0T04CGmjcvDlCGodXLDQTxWIb4nvXAR9JIqxqxjlzfVt+WE4F4z3GqGmE1o+UDteP7u67XhhMU624kdgv4AX6rda2vAVPPtHlpJkdoxa5CiPSyK7jXrQrWJdlBUzDxpO9i/TQeBSuof/wOf73CR90Gg3V733Un3bO6VHUQ2tePDRtaFIYgL3cbzFu/bTg/nBuasYAomA77aU7Ne7AbXW35ASLv0FOaV4hTVy79vo6KC+5XfEHWTtU2fjY3l+rCBKh2lHuzQ1gzhTHBLi6AshjZiUnzUq0dmh5jSMELGhufVFgKA/ATxj11OSGPqONj01sfz7gZiQcQQKsmRx+ZfxWFmmWWwhOvsRipb0Km1BK5ERxh0Hw4K61mO7ou/mPG81q14bKOVVp+rCtalBlWsWngAdTLfSdV7ZKNppz3MpNbzn6QpCCqEU5SlQrVVA0I/ezNOHo=","translations":{"en":{"changelog":"### Fixed\n- NC >= 34: LogCleaner was displayed in the top menu for non-administrators"}},"signatureDigest":"sha512"},{"version":"1.5.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/logcleaner/releases/download/1.5.7/logcleaner_1.5.7.tar.gz","created":"2026-08-16T16:41:11.036165Z","licenses":["agpl"],"lastModified":"2026-08-16T16:41:11.088718Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Ibin3tBBQmO5WlDmONQ+9D5zLytvyRmV5R8rqYTQl7L8PBn/qeh65Kd91KvM4uhI\n2GLT/+BdCq4eu49FKStPg5crWjnWWwAjOHmdr3AdO2q4A/X0/3x02h9qIkBvbktI\n0XqEhMLcQ1/wfd6VdGVTXWhRcFDo1u/BVMKOrdAJW12CljXpTpNytPtHX8/7L7gH\n2cCIZPLML9RwLw8eyQoOBmDoZhr+l9yLmPf6nP3J3v08PaJ0CKeMkFNlzMrUjtoL\na3KyD++5LvGZeXHo9QsRBiBlVTIsXhYaxiP91lFKXA8bc+9fMlbK/AWJ3kCeVBb6\n4X1N+aQnpYBS3JvjZn0z5QHOSz9H4FgUrD1TsKJtRLHHcezYJiDDY0k9MJllQ1q8\nL7bHTDjyc+HyNe7PsWetif5BH/xzbKbMzLO/hjwNiYPNQDDpdOQNKnvQqtNPC+GV\nLFN1nQLbJUiU9ROmVOXrJgyPN76KUkeIAMEXxs+7o14KdECNZw3FZ1zKhEfFK5qo\nr6WGRDhMebsHZyer25YuOsC/ioxRVrVgvabfFjSfKOxqJpJLJMT9piZH0+MFFsFJ\nOKwDLG6fNZGMwyOnetS5JdOwTA41M/3sCFYFX+I0qT3lCLIZFfX2cvrefQFsrMaT\nUpyXlqfLrOaW6kO28NoGQEeOM1JWE2brMZCZBAHaeIY=","translations":{"en":{"changelog":"### Added\n- dialogs for test notification and test email on success or error\n- Nextcloud 35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvbG9nY2xlYW5lci9yZWZzL2hlYWRzL21haW4vbG9nY2xlYW5lcjMucG5n","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/logcleaner/refs/heads/main/logcleaner3-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvbG9nY2xlYW5lci9yZWZzL2hlYWRzL21haW4vbG9nY2xlYW5lcndpZGdldC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Log Cleaner","summary":"Administrator Tool for cleaning up the logfile","description":"**Administration tool for cleaning up the log file**\n\n- 🛡️ Only accessible for administration.\n- 🎨 Error levels with different colors.\n- ⚙️ Many settings for every need.\n- 🛠️ After correcting a log entry it can be deleted from the log file.\n- ⏩ One click deletion of all duplicates within the log file.\n- 🗑️ Empty the log file without using shell commands.\n- 📜 View datails of log entries.\n- 🔍 Find solutions on the internet by various search engines.\n- 🔔 Send notifications for new log entries.\n- 📯 Send emails for new log entries."},"de":{"name":"Log Cleaner","summary":"Administrator Tool for cleaning up the logfile","description":"**Administrationswerkzeug zum Bereinigen der Protokolldatei**\n\n- 🛡️ Nur für die Administration zugänglich.\n- 🎨 Fehlerstufen mit unterschiedlichen Farben.\n- ⚙️ Zahlreiche Einstellungen für jeden Bedarf.\n- 🛠️ Nach der Korrektur eines Protokolleintrags kann dieser aus der Protokolldatei gelöscht werden.\n- ⏩ Mit einem Klick alle Duplikate innerhalb der Protokolldatei löschen.\n- 🗑️ Die Protokolldatei leeren, ohne Shell-Befehle zu verwenden.\n- 📜 Details zu Protokolleinträgen anzeigen.\n- 🔍 Über verschiedene Suchmaschinen im Internet nach Lösungen suchen.\n- 🔔 Benachrichtigungen über neue Protokolleinträge senden.\n- 📯 E-Mails über neue Protokolleinträge versenden."}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/logcleaner"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhKVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMzExMjAzMjQ2WhcNMzUwNjE3MjAzMjQ2WjAVMRMwEQYD\nVQQDDApsb2djbGVhbmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nnlEKrV2AYy8YLZ2+xQ9O2dUZseR5uG83bBw5ygiCA07Mnkd0G5ylP4A/xq9SovCS\ncATRJ6nhMbq+hyLqYgqmqYtUTjtbWz3HJ+9PIDMsOUiZ8ZXv/0V/evehQ2rom99S\nnC85RlYbsTLsK5fVHobrXKvKuyl5YWY+DDf/pCfTYoX9nUPJ4UOwtFq/hn0LgQT+\nAuWTjHj3Lszzgl2EkH0iLgmp5JcxwvOkw8uo6dj9tIJaE+oQdNaYDIKFqzn0Dwxw\n9i+ddACYiCM2KWZ7HbqW9h6kqFrr7n02KzxlR8RHpYI6yxATsO2qVguQCa6Q/Fkg\ndWhrBcJtabOW32VlolSbvtEG7SbvLs5hQWlWPOCrckuTeakMLJalG0aPh6vRzc1J\nbNPzciOpXZObh4NNbx3Zmf2vvjXkMDcLunJAaEAFJ4nbr5IWk0mFjCYyvQ3xYqUR\nA2P/gE+VREg0sK8MYsxM+5HPU4ZJOecsp0uKC6btvHbcgcy8EdY/A8q0zrnutfwK\nYOzm+cpILS5NXajB7jxpx6bm5RB9FCeEa5iMIH8GyTxDbVSKnY9HSkqklvz1ySk0\nAXZvt+/+dJTMOa3S3bRH80qRdsZRa5RAxTfcMNo/FBr1TG9cd/bqG5hl09uqK/h0\nNEPG8+D7WgQtr8iGHyD7DdsGl9cs/ElSw9sR/hTRTBMCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEANzimyyFCujW7Gjh6FVIHZD12tKbssYkEadDy/sVlsMKRR5GPSMB/\nCeA/zc4FLwySLG+T6RXKqiXqsgZIbL+NSxklVtN+cPHTXqsNXnsZa1hC3Cnz+snt\nrcqbCBrVaCBTeLcy6llfENAiNstasc0PfcDvt6MXOUB5ncOsUitqihRlDngQsWes\nw5F/gqx+oXdvVe12LSuvdZbLwwoqlCoFTL5uyJairzh8kotgq+E52CujLRgZy5Nd\nB5ahbo8Z6A5/X8Gumx6iiSuMXru6B4hJA8YhqF6d0jzqhU5JJ94UMtQPr6voy7oO\n2U57dxWQb5JUvkPLZbbHXJBYpkSfAVh1Qg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"learniq","categories":["tools"],"userDocs":"https://github.com/ConductionNL/learniq","adminDocs":"https://github.com/ConductionNL/learniq","developerDocs":"https://github.com/ConductionNL/learniq","issueTracker":"https://github.com/ConductionNL/learniq/issues","website":"https://github.com/ConductionNL/learniq","created":"2026-09-06T10:15:29.431778Z","lastModified":"2026-10-08T13:01:21.013685Z","releases":[{"version":"0.3.12-beta.20261008125904","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.5.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/learniq/releases/download/v0.3.12-beta.20261008125904/learniq-0.3.12-beta.20261008125904.tar.gz","created":"2026-10-08T13:01:21.026586Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T13:01:21.038212Z","isNightly":true,"rawPhpVersionSpec":">=8.3 <=8.4","rawPlatformVersionSpec":">=32 <=35","signature":"UERcpOnSesAe3lrt+JahcG1c+F0FibxTfjKjdTcf+cYVcSinryXlKdBKR0yFWrezXZ1NFGhmCvQbS0aBowyvsNxLyH6ulWYLVtkDpPvoJ/Zwb6wDN7hJqqSpKxwNVEDJrrFV/9TdUzpfHSgfN6B2vHtuESW/07I+l8dgZSiFe6uL85s5Ek7ivkdNSNMGkYJA/mdTbYeoeyyq/Rz8pF6DPwqa7hzYtqknEbcXT045Xdb47oDDp6heDiV0xp8YK5yF0PrWNPW9g7L6IN5g5oThGjRWF68uRHXZ5panPkxoTBqI+Qh2XcFCsPtOwv7yYBA3HuJmTFC+R8WWNyvEo+AseiT18HxVP1LOlHMYrb1C7EeuE0bXtggkC3OsQJFneLkdqMh1k3DbML9vmN/QO+6v/lgu9lKh9wyyk94nNK67nsR828LXl3FslmYQp7L4v4FeMLqNYIB/zhHqYTYdG9yEJ8HFSE/bSr9ogIgz6RYZSBYNjIljzZY4qSTksgGWZ781m74U/w24ZNlBaIZYnVasKT58dSndCVXruMI5TzjDz8ZHzug7vCHslEfgPjnXCBxGK6IKT7P1QPFlNxdzSz4jU01Tg5+v1qX7uQ+Z9tebqMFrnZ5ugmGCErGFzzcfc4H1hxirElaWYJQyHUSg3AP73wdqfHPVQ9hdvoOeTZvXovY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.3.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.5.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/learniq/releases/download/v0.3.11/learniq-0.3.11.tar.gz","created":"2026-10-08T12:01:12.363659Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T12:01:12.438964Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.4","rawPlatformVersionSpec":">=32 <=35","signature":"iXNULGpOW3L/B2fF2OIk784gEzNZJUt9/8cRUjC8/jQz0/nLi522SB2g8+aOcas8+xARgQn8CDbTQHEzEjAYTdpd9gLFqNigFAbPpHG3MfN5kFdE+oqRpMQJGXird4490o/NOQseIfWjbI3bxMX2TLz94XhOCmjO142gTaD+p0eUiuvAyMnLj+g9LW05nQtmgK34Zqd/ymjG3nbQMrrY8Q02kHOnH3PhBizgp1m+0DU0MPvYoLrQ09zK4NDPxwM79P8Ui4eV43sgt2GQ7fUhT9fm+JfGYDLqVcpl3v5VLqb0GYGcV1ow5XGYitUAOksnbmtN6b9bf/gIkfVeOtsjl2Q7v9RKSQAzV94EGEGtFHNzieco9gvOiFF65KwYPMeMNJh0w4PDTa5TaJHyFvD64rGvZmMtJk/oAci3YipC/fXDpnNEOPY50jkxZ4lB/cH3rGE5FE32y3UpSE3A1U53PBPc8APitCUcf844EQedZRpOq2G9n1bjkdjxk7vvFXLIwOH9/1ADHS1Zc4QOvCaO08vMx9DVSSAUeUR2gOZocu+YOMBZikxRApLMsMn0x0BRSW+2h/o0+UpIdecW0NAftodPgfaQS3oMhbDbBcsu8wi6dVU+r47kFv6PwrGUfZKHXL8GoYOt8D3PAnVaa0agb2rCok+2gMG+l/p5r9vlfuQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9sZWFybmlxL2RldmVsb3BtZW50L2ltZy9hcHAtc3RvcmUuc3Zn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Learniq","summary":"Learning system for schools, training providers and companies: courses, progress, certification, compliance.","description":"Learniq is a learning system for Nextcloud: a leerlingvolgsysteem (LVS)-style progress-tracking core for primary, secondary, and higher education, and a leeromgeving / LMS for corporate L&D and government employee training — the same underlying data model serves both.\n\n**v0.1 wedge — Compliance training**\n\n- Annual AVG / BIO / NIS2 / Cyberbeveiligingswet refresher courses\n- Bulk-enrol all employees in mandatory training\n- Capture signed attestations per learner\n- Detect upcoming certificate expiries\n- Real-time coverage percentage per regulation\n- Audit-pack export with immutable evidence log\n- External-training bulk recording with officer verification and linked credential issuance\n- School-year rollover wizard (propose mapping, side-effect-free preview)\n- IMS QTI 2.x / 3.0 and Common Cartridge item-bank import\n- Open Badges 3.0 credential issuance and public verification endpoint\n- Launch cmi5 lessons and keep every xAPI result in learniq's own learning record store\n\n**Later phases**\n\n- K-12 leerlingvolgsysteem (Phase 2): BRON/ROD, UWLR, OSO, Edukoppeling, SchoolID/ECK iD pseudonymisation, OPP cycle, PTA grading, DigiD parent flow — a generic data-exchange job queue with an OSO parent-approval gate already exists, but no BRON/ROD, OSO, or SURFconext OpenConnector adapter is wired yet, so no wire-level exchange runs today\n- Higher education (Phase 2): SURFconext federation, Studielink enrolment, OOAPI 5.0 catalog, eduPersonAffiliation, edubadges\n- Assessment authoring (Phase 3): proctored exams (ProctoringProviderInterface for ProctorU, Honorlock, ExamSoft — interface only, no provider wired), EDCI verifiable credentials\n- AI-assisted features (Phase 5): adaptive learning paths + AI item generation, gated behind EU AI Act high-risk feature flags\n\n**Technical foundations**\n\n- Built on OpenRegister (data layer), OpenConnector (external system adapters), and @conduction/nextcloud-vue\n- Content runtime: cmi5 + xAPI primary, with a SCORM 1.2 / 2004 compatibility shim\n- Immutable audit trail backs compliance evidence, AVG record-of-processing, and AI Act decision traces\n- Standards-first: 26 standards mapped (SCORM, xAPI, cmi5, LTI, QTI, EDCI, Open Badges 3.0, UWLR, OSO, ROD, Edukoppeling, SchoolID, ECK iD, SURFconext, AVG, EU AI Act, BIO2, NIS2) — most as design target, not all yet implemented\n\nFree and open source under the EUPL-1.2 license.\n\n**Support:** support@conduction.nl"},"nl":{"name":"Learniq","summary":"Leersysteem voor scholen, opleiders en bedrijven: cursussen, voortgang, certificering en compliance.","description":"Learniq is een leersysteem voor Nextcloud: een leerlingvolgsysteem (LVS) voor primair, voortgezet en hoger onderwijs, en een leeromgeving / LMS voor corporate L&D en overheidstrainingen — hetzelfde onderliggende datamodel bedient beide.\n\n**v0.1 wedge — Compliance-training**\n\n- Jaarlijkse AVG / BIO / NIS2 / Cyberbeveiligingswet herhalingstraining\n- Bulk-inschrijving van alle medewerkers in verplichte trainingen\n- Ondertekende attestaties per leerling vastleggen\n- Detectie van aankomende verloopdata van certificaten\n- Realtime dekkingspercentage per regelgeving\n- Audit-pack export met onveranderlijk evidence-logboek\n- Bulkregistratie van extern gevolgde trainingen, met officiersverificatie en gekoppelde certificaatuitgifte\n- Wizard voor schooljaarovergang (voorstel + side-effect-vrije preview)\n- Import van IMS QTI 2.x/3.0- en Common Cartridge-itembanken\n- Uitgifte en publieke verificatie van Open Badges 3.0-credentials\n- Start cmi5-lessen en bewaar elk xAPI-resultaat in de eigen leerregistratie van learniq\n\n**Latere fasen**\n\n- K-12 leerlingvolgsysteem (Fase 2): BRON/ROD, UWLR, OSO, Edukoppeling, SchoolID/ECK iD-pseudonimisatie, OPP-cyclus, PTA-beoordeling, DigiD-ouderflow — er bestaat al een generieke data-uitwisselingswachtrij met een OSO-ouderakkoordstap, maar er is nog geen BRON/ROD-, OSO- of SURFconext-OpenConnector-adapter gekoppeld, dus er loopt nog geen daadwerkelijke uitwisseling\n- Hoger onderwijs (Fase 2): SURFconext-federatie, Studielink-inschrijving, OOAPI 5.0-catalogus, eduPersonAffiliation, edubadges\n- Toetsing (Fase 3): proctored exams (alleen interface, nog geen gekoppelde provider), EDCI verifieerbare credentials\n- AI-functies (Fase 5): adaptieve leerpaden, gegate achter EU AI Act high-risk feature flags\n\nVrij en open source onder de EUPL-1.2-licentie.\n\n**Ondersteuning:** support@conduction.nl"}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhQAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTYzNzQ5WhcNMzYxMjEwMTYzNzQ5WjASMRAwDgYD\nVQQDDAdsZWFybmlxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmYB9\nKl0/clQEftlqQL4vOTiEUxTt4fiCcFCiU2ckWw24uSqjK/ZEC8jjRzBVdUJck4il\nA9gMCd4qPoMCHipUI7b6XVbaGXm2ckKoOZUKcjlidCe0WS8blOVTo0ahbTIkQZv4\nv4uv5d+R4Aubf1Hl4uAhaBCRcGgTe5/CsgV+YMC79hXlrxYIpqpnMVtS0QCISiaN\nhZafdtYJiXWi53WB+wyOWcnaHTpNPAB3KE/OpfOPf13v5i7NDSOdcntarSFgbuiM\nv+2S/3+Mf0KAv29tr1RKbwdgSa0GVfmI40fscImw4Bt2hridqh/ap3Dft/p4uwbM\nF+nVSz9qCs3KMhjVU4GWwjzOGMvddlyNlqnL2rihDVrx7j5u6k4NAEUHpazkw0e7\ndEhGfZJKV8nJ3T9bTobuU3SbSZjzhrWd4BonfHsOPGGsAirJ5BGjdh2JP6PfMt5q\naxfFPc6EwNpS+bH6cBaO3/mSRuKrBb5ZEuhwzzECVN0VbZaOkJKU2SfxTNebqzoB\nZh3FRViX3yl/gTtKFLPvVEqMC0oX23DW3kQ4eE2EPbipiYaok4uFXkBcRApLvna9\nzGYoAIEDQ2+Nxw7wSLbaMyT2bHYCUasj7NVbeIyVPoh2mHzeGmS48KIIs1P43cWI\nQNwv/Msv5IHdmOB8Lo1C6UwDSzd+A+C/qDynV8sCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAavdkTdPneIed3LejR42o9yXPjTVGtEmLdDhQBoeeWSUMau3c1Wb/ZJUy\nZahrV/RtGu/YKFjoO16TgG+4yJfVoa3+sDXOlMoSFAPIeoS3aysrChWLM7pGo8ef\niu00okY9GPw2gRWjhl+pCCgYgi9nsbnEGYpLdb7/CNEDvNeFgIZRyh38gsQZyaNk\nClp+dijYjuHKqnpJt2CuhaA/uNJbRzaCuzdwWIp4cUNZPvIv7WKtONKGA03wcZ7V\nhVa2xuPf/yofVaj2wmahIizKqQBKmcrQCmZf7ccuI6B7s/QRJQKAV9VhLr3UbyOw\nWgKWfqOqpv/ArPXG753gvnswQ5VhDQ==\n-----END CERTIFICATE-----","discussion":"https://github.com/ConductionNL/learniq/discussions"},{"id":"keepiq","categories":["security"],"userDocs":"https://github.com/ConductionNL/keepiq","adminDocs":"https://github.com/ConductionNL/keepiq","developerDocs":"https://github.com/ConductionNL/keepiq","issueTracker":"https://github.com/ConductionNL/keepiq/issues","website":"https://github.com/ConductionNL/keepiq","created":"2026-09-06T10:16:38.105284Z","lastModified":"2026-10-08T13:00:40.686164Z","releases":[{"version":"0.3.8","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/keepiq/releases/download/v0.3.8/keepiq-0.3.8.tar.gz","created":"2026-10-07T12:54:48.476853Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-07T12:54:48.564359Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"HVrjcyfZi6zJKI3InUH9Cg7q2et9ZWgIkElz/jGCyy80/8eMaRHixtJjCL1cUa8OmeuVmiE39gJkjBHw3BW/RPNx4cXHKwsZMCZIvQMPwBqdOHNhILM2bPThvkiEfI7SJ0VWYlEhJT53j+Q7Mj470Va5/VCGdDkpivJZjAUH2iHyAjJZ7f2kGuF+Zl7l6V14iEJF05fgHt97ll3r6AAUXjaVt7SOnJNvVhbpcf9PSDfjAwQZWn7etMqZU/0Cn1Y5usprtRcPBnQk3sP+wnvOvbO0/9/x7ABzzAL3r2Y3maoIBCa/CaOPlntRTeGHjKUb5xeW/+NOG1SwoDo1pQPJpNRsD/mxn1EeYbZc9sZrj3vLljPGlhx9RlJba2s6rBGB7GB2X5pfk3OQMGkiM57pHiS2thFx/u8Gjh1yxRQtDrWQDeIMZ87pJXRsTKEuwPdsH3zHf5JD71yYWjxUdKx7rFyfzbhpdQFtYa7LA+U89PtMx49qRonhrfsSdaNi2wG326w4aaMwAGY5/mCMBWpsP8AxwsCtg/kTi661KtXKZAaab9+kHU+nz25q+SSSU+31w87oHEuYyTHBUJfSkZJpdTlJMKpNm3sO3Qu+baRoG5+f2dBBg1wHAFyF8EqhtkNo9Veam6bmzC4CqgZhL2XBZPnPxIAghIG1muDi62ZfsWA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.3.5","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/keepiq/releases/download/v0.3.5/keepiq-0.3.5.tar.gz","created":"2026-09-29T15:44:32.026893Z","licenses":["EUPL-1.2"],"lastModified":"2026-09-29T15:44:32.105192Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"bwriCOHc1Upo+26g5vRjfyWRcDdvIiVy80Cx7yii3e4ZWUBGUK+qdZGA7rAkB8bQrVoDq1380L4HAzwJl1aKtAGsq/o8xz+9WBgqV5TBKqwRMuNI0+TfAy2vkKLQg/+bJ6QdeGnnEblupeiAYxMBh2rNk1UDkCm0oCm9JuZpBI3jIMuuxbcJZ0axSwKCeaRxFK5p6zFh+PI5jTzSn+OTDC1pyqV+TtZk58gELo9Fow3bGpjjRnEMEMollPXnmsTn4C3moHRvChExhehXbN5XzVeLLYW8iJsVtjEGMTfmwDHVMCUrurXPdyw3vwcorcvWsUcv1k2e6OFoWEwdL8C7QABhhPJxTjZuKobMELtWD/y7FnmZnmgu3Hjjbstj9TasFK3Nt97P4RRs+7Nfn584Uez9q0hdph/vorUnFj8LDjuHI+04kM47PbYk/fF9YCGGqYcsf1Xte0I0uCgImMbvyiKPRP0vzzhNR1ZVYlgFojFrW/H+WAb4nV72NTLMcZwh+MvqObgwdSBdkd1ETocohLcHuHSq7BUaNgfT6myZaAXlgX8QVQZYXS4JIDD3m5eXfs5fLVvRteuSWqeEL5HaTQEGsd1Vtkbwo8FH04oLhd8neCmkmcUPj+K/AJ7aghaJYjajoNsHZh0Ax3S1u4zzTpZQI1G5S4Xx0Gt4tQ3v1/s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.3.11-beta.20261008125823","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/keepiq/releases/download/v0.3.11-beta.20261008125823/keepiq-0.3.11-beta.20261008125823.tar.gz","created":"2026-10-08T13:00:40.702810Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T13:00:40.718417Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"frnQrJZhGyOEJWxWcO5t2dGGVKGwhwN9/VtUB5NCQPKTLauLq55QNzuyunWkkE6+vVNydhf6Eglz2rWDZsOshKrgl1hNK1tM7zDUQp9JaUgvHXuWHXp3CkK1Hr22xmD/n77WqR7/EsTdarmT0royy/kxDDN45SeV177wMETN7OYiIObQREr4y9iSIDtSc0TzVKIcEGzj5gN6MNYcIV3/ovP6NupCuVMYQ97JlZQnf8C8WL1F0eIkF0vwgSmKZJgh5h0FqePy+CnDTLEMo8gS6BA3DbfS0VI7DSicpcNNQ2mNmZ5d4vmmJYK2uQl94psWenMECzXJUBhtkssJLHDjmscbNJqInseuULCgygnNL6VWguQ4wbln71jkyG4gD0ELE6mVe2FSSxqWKyzbNARQcgql1pOkO8goAQZnM4BRE/HIkrzifGzFih5e0ndfeyybLjQh6KAJTy2OsKkmcbPT7HglGR9O29SrsPu0q0lpHAwyv0UHtTefmdg6C5Jwi1X11OpksL5HLZrS+oMrRVzR1cv5aXUylv1R1o2e2TwxeyMVibRW9ApsLjmfbY2RoiL/cX3ZXfVeQByHfF+1Piq3y6f9zwiylx1h49HDiy7c3ZB4TLtaUoJAeF02HIjY8r0uhqOVnTGKsjxdAG7tdnlMoaSlUbO0Bj4SzQz9VDnGlFk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.3.10","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/keepiq/releases/download/v0.3.10/keepiq-0.3.10.tar.gz","created":"2026-10-08T11:58:51.370357Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T11:58:51.452590Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"b+x+jcO5kvWNd+r1rdsx0mB2uTtlkMrvyxjrPoV1FSCC6++CAsDPDsBSTHE37Igi+Ja9Xnjla4Y02u7dzrf5IVjsE7WHxmig3+1hKaYqkEZOTGkV4bm8kPuppISPKGITO5261qDlFE2LWzaxPXRcQGD6nN52f/1eb+uJW9c4NXb0wjswU+/wSF5Ae3dM6i9ho+mZVaiPRt/54EOZSqAffWW2k7qspD6KPn7zFrlxiCMtd5jySZ0aw5FY4Mwhr99PbtLoSdW7o8oSuawCs2AuK9Twcz/GFmSIkG2lY0AtHBfkFWG4Gr9UC2etey047DGBdjl4UjIkQkFHATfNh64/BjqRi906Mi+I202CFao6Bh8+Z4hkkVtpLbeL48kxpNzoiyec//hbHwbe8QCvmwdIIgAt6gIO5QD0aDm7/tKVaq8isPjrz43DpJcpb9BEBIrcEKaMd+OOC4qY64cKGJF1fNHcUip/5Rj1pbRMjfxOI81M9W2HW/TvWP+kiENngpA34iY0d/bKDpuumTUtZDZoByC4T9sbSY6gtJ8y98GoKGViOMB1yFkvwZ2tRZEWgUg/5zRqbTrkXOdXZ+hukZEf2hTI5pkIiBPPQU/lPtp3+bx6wQtqjv/ojepyd0Itp7GmkKeGL0GLSNre3gyaMVodVIbr0FA/c6zl0Ldfdr0F2no=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9rZWVwaXEvZGV2ZWxvcG1lbnQvaW1nL2FwcC1zdG9yZS5zdmc=","smallThumbnail":""}],"videos":[],"translations":{"nl":{"name":"Keepiq","summary":"Versleutelde geheimenbeheerder voor Nextcloud — wachtwoordmanager en sleutelopslag voor gebruikers en applicaties","description":"Een versleutelde geheimenbeheerder voor Nextcloud volgens het zero-knowledge principe — een persoonlijke kluis voor gebruikers en een schrijven-zonder-lezen credential store voor applicaties, met end-to-end RSA-4096/AES-256-versleuteling ondersteund door een privé-certificaatautoriteit. Je hoofdwachtwoord wordt nooit opgeslagen: zelfs de serverbeheerder kan je geheimen niet lezen.\n\n**Belangrijkste functies**\n\n- **End-to-end versleuteling** — RSA-4096 + AES-256 privésleutelbescherming met een privé-certificaatautoriteit (root + intermediate, automatische vernieuwing)\n- **Persoonlijke kluis** — mapstructuur, fuzzy search, integratie met Nextclouds unified search\n- **Geheimen delen** — delen met Nextcloud-gebruikers en -groepen, linkdeling met wachtwoordbeveiliging, geheimeaanvragen (schrijven-zonder-lezen), tijdelijke eigenaarsoverdracht\n- **Applicatiebeheer** — registreer applicaties met CSR-onboarding, schrijven-zonder-lezen applicatiegeheimen, OAuth-achtige applicatietokens (RFC 7523 JWT Bearer)\n- **Beheerdersinstellingen** — CA-gezondheid, wachtwoordbeleid, goedkeuringswachtrij\n- **NL Design System klaar** — CSS-variabelen, WCAG AA, overheidsthema\n\nVrij en open source onder de EUPL-1.2-licentie.\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl."},"en":{"name":"Keepiq","summary":"Encrypted secrets manager for Nextcloud — password manager and key store for users and applications","description":"A zero-knowledge encrypted secrets manager for Nextcloud — a personal vault for users and a write-without-read credential store for applications, using end-to-end RSA-4096/AES-256 encryption backed by a private Certificate Authority. Your master password is never stored: not even the server administrator can read your secrets.\n\n**Key Features**\n\n- **End-to-end encryption** — RSA-4096 + AES-256 private-key protection with a private Certificate Authority (root + intermediate, auto-renewal)\n- **Personal vault** — folder organisation, fuzzy search, Nextcloud unified search integration\n- **Secret sharing** — share with Nextcloud users and groups, password-protected link sharing, secret requests (write-without-read), temporary ownership delegation\n- **Application management** — register applications with CSR-based onboarding, write-without-read application secrets, OAuth-style application tokens (RFC 7523 JWT Bearer)\n- **Admin settings** — CA health monitoring, password policies, application approval queue\n- **NL Design System ready** — CSS variables, WCAG AA, government theming\n\nFree and open source under the EUPL-1.2 license.\n\n**Support:** For support, contact support@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhQFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTcwOTI0WhcNMzYxMjEwMTcwOTI0WjARMQ8wDQYD\nVQQDDAZrZWVwaXEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/XJKN\n5fsiovNZQLCBFtl9QlrEmX6rWIDKbbqk3ET4JQI+F10A1FLtfZ4tj4b60CRvYiQ5\nLeGdvSlVHWWA6Vcz+t5trEL7ltH9PrwJq0yQV5cgEFtIOlxciCvihJna9xXo2EEE\nklvk7DVxih8gTQuuBpysv1gdpj1wPzwzRBfvW7S/zhzuisEb16qWHIrPGSIq7Bpe\noNVI8Odj2vGuFCG0toOTAq/YdFx3rrd2fb+o91WhQ39ukmvtRkYXybq6ECfMFuH/\n1yjYFs5X5C3vRmx4SiCKORLftgoq0UL3bJ0xMtN3Lx7Ye2OJIBzaaczVAXcq6YCp\nOT0wrTLXZ1+6cLsAXG9mO/O/s8xt8mMmLgcqAd30crrBxtlZQ3M3orsek9toCcnJ\n6jQFBiEBbVldrjq2iNOetNpg4r62Ygws0ThAT66RlpAwOxHa8fs0QeMBuWBYGXMQ\neKRtqyUt6IqgmisLWDdvKjQ+0KEWwxYzcouyDOuqrpCZdrsc01CU7r0ZINH2Kc2l\nA22Kf46lkpbaDf/EHqwFIeOjfIJy64HX6hB7TTr1BK13VT6W4maIL0sE+UXDUYff\navva6mUYyCgQ3eAgTKhHlNdoQOs5znzxnlFZgCaWXlAtsaPphnz0VicSIyYRfrRB\nwgO/YhIX4TE0sgc89QmbZ760Sbw5q9Kit4zwRwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQA4+Wzz/AF2pOA3EvqYgSkn8Ijs/18pbUChEFX6ivSS2NjeTJooNF6UkBAb\nkbzzmVlL/0jltvfq3AfolIb8Kw8Z6Nehg3+8p+vgZjdF7NqSBYa2sBXfh5/SsEZP\nviRktNEz24ik8BxyIQoIYQZfmuCrQ/1EbBDJ2zBRMYHRopS8K2dhKfsHku2cDi0M\n9PqdSqdigL5IwJ9hbd2zLKnYV3ABpnguB1R+ezBVh0QinzzIfko+yhIcnCnrtMfs\nCIZj/3MhM/MQUDRADtkjCiNpkltbbhi2RZCBj4vwgXopS+gUQLZvkZ+da4X6bTt5\nb5oLHRn+jv/odFZm1C+3yWK8c8MB\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"call_summary_bot","categories":["multimedia","social","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/call_summary_bot/issues","website":"https://github.com/nextcloud/call_summary_bot","created":"2023-08-09T15:07:58.219458Z","lastModified":"2026-08-06T09:38:56.312774Z","releases":[{"version":"3.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/call_summary_bot/releases/download/v3.5.0/call_summary_bot-v3.5.0.tar.gz","created":"2026-08-06T09:38:56.293485Z","licenses":["agpl"],"lastModified":"2026-08-06T09:38:56.367256Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"ODKRTWx1h2e/AWqldrqSctt/v124kqzZryskCj/PZpzxpK0oEZb6X/VBU+UWgHc3tEb2tYwBsMnUXkq5q9MDtYoS3oLr1Z1YT6/NSRUZsGcaCOjp92HoA5GC97aiC1IUWmFqv+HKoeOgAmvkrEJhpPHgl+yhw5oOYbUt/eYEBeeCana7dObW+iDyYtjc8IM70jlfp9Tq40CaRnhU3aKNKOgV3RrKOVow8v7Rx2agoufiUz65odw0vkuafa0Bb2L+JVYJ+f5SNH9OLHvJHRVMKODe+d3aBr7eMUvgi9zlNNlLLbR7i7IMaosANNHK2/iLZS15LmzEgAjMAkwQjlFuIOJemdja9Dh8Xv5ONiOPk4BamIF1Vnw+o2wWtrPkCRv+bqIgC9Vd2FXvqE0MYtqmm/EjTf6XU7RRqMcbFJsQJpO8FuoOKcCprClJ9tdPkEViwUnoCD5kQ0R3F53WF5J+9j2Oshhm3ftdAXDionAPjmdEW12i7mpqiweNaDPcH6DNcW39GPkrSmpNP0TCi25//3DLf+cPH6xayl/T5TwUBs2+9FLCl7UA2z/hbHpVe9RGlKtBPh3hu9+W9hSJtEsmIEC9wHEQXfksZRKvcZS3RpkHgZpumeSnkMb4N7EeCGVNNgkIxQEL0UK5fyKfPrirhVjXuZQBMqZ39ioIBqPHFvQ=","translations":{"en":{"changelog":"### Changed\n- Nextcloud 35 supported\n- Update dependencies\n- Update translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jYWxsX3N1bW1hcnlfYm90L21haW4vZG9jcy9zY3JlZW5zaG90LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jYWxsX3N1bW1hcnlfYm90L21haW4vZG9jcy9hZ2VuZGEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Call summary bot","summary":"The call summary bot posts an overview message after the call listing all participants and outlining tasks","description":"### Before a call\n\n- The bot can be used to also collect agenda points and topics with the following keywords:\n  - `- agenda`\n  - `- topic`\n  - `- top`\n- You can also post multiple tasks in a single message, just put each on its own line starting with a keyword\n\n### During a call\n\n- Any message starting with a Markdown checkbox or a keyword during a call will be recognized and used in the summary:\n  - Open todos: `- [ ]`, `- todo:`, `- task:`\n  - Solved todos: `- [x]`\n  - Notes: `- note:`\n  - Reports: `- report:`\n  - Decisions: `- decision:`\n- You can also post multiple tasks in a single message, just put each on its own line starting with a keyword\n- At the end of the call, the bot will summarize it and list all the attendees as well as the tasks in a markdown chat message"}},"isFeatured":true,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhIjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNzI4MDgyMjAyWhcNMzMxMTAyMDgyMjAyWjAbMRkwFwYD\r\nVQQDDBBjYWxsX3N1bW1hcnlfYm90MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEAvdz6lGgy4FahIDIqaZbsJIa8O0DcNFNwtku3cW3ICtov/F++Bb5eKJ+v\r\nIT+Qyf49ZTlLPe4zsfQB30xRBt1BcbXcJ90crmdxTZofBiSA9DKH0JMKYMM5aeFr\r\njagsPRTP8d0pRQKFHLnCcL5oTN0M3IoHL5fG4xQUP3dEqJvC7lo3tTifqHk5YGoM\r\niSlpGILDiJTTiGUhUONYUg5jQh0srx5imKHOWiHTcZMpSATPTh74XKhbsJWcvCBa\r\naG+jTFD+HizP1mCNfCEq20P8P90VqNIOpDN917LTM5DPPDBVAfaXb7acnqx2GO8q\r\nCBKgx8Md2BcEOQ+dTOJen7pPOLZb/N21jwij/z5JteoW7PxlJ8/WtgXB9GkVurGf\r\nlZ7oUZj2i/h2G4v4rl1bSMeul8j8h00jVtpn/pU1QQOsZAIaoLEA6XrYbXRm363/\r\nqfdjaiq3skh5nVk0i01ZxRCbvTBwh54nwvczIeYjYz4dUJy1mFTmguzV7MhcYBF4\r\nYdGWkk4fECJlFQCDjrbUs+kz9NYHPX604qjxzAsUgZ1AQlhao8pBo/mZzDmXMyAk\r\nEfLkSUINIkcnfeOx112hHmDo+F3Z4V2iAhg7k9ovFf9gUgFONzLY1tcnbGGE3G2K\r\nFXYnbdjth7gfi23QwIlot6bx2KPp576wal/evDbRJ3lKwR+EZiECAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEAYhG4Hjfr/5q08mtRV5PyOvS28VJJueCKovigYHj+ZLSH\r\nu1jHarAij329ZU99pSFm8/jBZzrOFwhJ6tNc+nkHJ+/jYGNt1T7z6nYin3A2uBvE\r\ncz/Mh2b9hvrOjV+nXEXRIm923c4QBmxNt2ObSbVzcR1Orpxda+60PAD6Eeipd6Ek\r\n/ORj65ACvGgEmNhFn6VH8SjGzPQJxzWGzmf98sABvDMB6L75QcivWcUBlxhLF2YG\r\nZ7x/KMvzyEP8Tn3dWMOBeJkdNyvIbUQ3YN9OSWZUuD1bSfERtAe20Zo3WKFXGbX8\r\ngEbhLNleI374qSKaHzOM7njDxRTHX9ZYUvQkId7hPw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"savapage","categories":["office","tools"],"userDocs":"https://codeberg.org/Interlunium/nextcloud-savapage/src/branch/main/README.md","adminDocs":"https://codeberg.org/Interlunium/nextcloud-savapage/src/branch/main/README.md#administrator-guide","developerDocs":"https://codeberg.org/Interlunium/nextcloud-savapage/src/branch/main/README.md#api-overview-for-integrators","issueTracker":"https://codeberg.org/Interlunium/nextcloud-savapage/issues","website":"https://www.savapage.org","created":"2026-07-15T07:33:50.164089Z","lastModified":"2026-10-19T11:44:56.967937Z","releases":[{"version":"1.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/Interlunium/nextcloud-savapage/releases/download/1.1.6/savapage-1.1.6.tar.gz","created":"2026-10-19T10:47:36.347684Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T11:44:57.053026Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"eWBRxv8viFfnTQEH1+mkMgYJBb8uAe6mq6tmfvVndSavnkXreQ+zvsjeDRJwNAG0\nYPsX/4/YBa3w8SannosWFvYjpfpZtjHYS1vgoZeG7A/si1CV75omuNNwo/E8EtRa\nIhjr6RGnyiTw5VLUrnTzY4lYiFTZpeMdkBJYUOG6xlQTIUgEMbDNSTZK3FXMfUdu\n28cNJMbWX9pvKi2Pm+Pmrrn2Dwv8tlXAg5K9XZT/yXjDk7G0qbwMV7B/R3rRsEuL\nURf1AU+6yPh8MaQ0UJJROEPPCne4mL940vl+m9MRg04jKMJUblqbDkcVEd/q9/7x\nkKs6X68BGoY8xIEd6usDTNdOcgi0Zmwm1Scs77Yy+EoYYMRoRruXZLZ+CMp1as0o\n3tv5f3QeyAhZinhuTcCebP0eFcvAYRvlNMCygOFE5dEJq68fbchhY7uZT0ULaC/s\npyOgIIL7Eqkd/vmoQ6E6NdEEyhZOv3P2MHO2F2zkjt9a0xtIvSCsxShIWsnpflvC\nEajcw2tNADg1oWA5CCSEXHsmZGKmvhjIh2Ifq7bYMmcTSi3KSGicB6Gpkbu4wYDC\nCyXT65iCjST80kcwubLePZt7AAdaW1LYP52Y/Du4Psy9M9lcmDRw6dycvhVX6LQ9\nrTZfN/NWjCXSxVvmcYVSITTvcGlzNLMYOaqFufd9UQU=","translations":{"en":{"changelog":"### Added\n\n- Admin setting to enable or disable SSL certificate verification for the\n  outbound SavaPage connection. Verification is enabled by default.\n\n### Fixed\n\n- SSL certificate verification (`CURLOPT_SSL_VERIFYPEER`) is no longer\n  unconditionally disabled for SavaPage print requests.\n- \"Print to SavaPage\" is shown again when a folder is selected. Current\n  Nextcloud reports folder nodes with `type: \"folder\"`, which the file action\n  treated as a non-directory."}},"signatureDigest":"sha512"},{"version":"1.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/Interlunium/nextcloud-savapage/releases/download/1.1.5/savapage-1.1.5.tar.gz","created":"2026-10-15T13:53:30.141448Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T13:53:30.985687Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"gih3wyDGqwyVdjSaXGxXMilKUZ4GJhUkfm3vkJ+LrpmeoiKce0FvI4RlYhSLu6ih\nM69P9gyKMQRLalIAEvSvNvFBObILZLCZc7JFVyYdOObMgFr4ig7tfyyzAbajEhsO\nPhLE8PtEiaqrD5EN6z2ix3U42TpAEdZuSiGhiG2xZrLUjUdWxsc95kKVY0jrAhTX\nLMAb040womzSP8sreVHmoiC0t2lfdvqsFQS/I4QVXiI+B40Lti3WrZWlXSEt7XqV\n5T/ghtkB5qacphanqrSPXTWPfptsheim/31ebrxdvcpSLpjc4/ipu+GNNA49UYDd\nfpA7wyAmQaayRA0ZVi9UXVOKp3nOYy7VfKADslx2aDMUvPWJ7ctxhIup4txBO1ub\nIwnUOk55swFVgIwzhMc4eQNCtEbEkKl6HGUXtPqTaHRECmrpdKNjuMLomfrQAnSe\nkqR+TuZIsRjeNYfR6uD5Jghe2Q/+UJaAkiXzxVs7ywkdOzXvTjG4OVi7fes7zVVB\nnKPekZpefRvWWDNIFfuGxTObHZhDqGuafcJyLheMrb0MaJbvs6Kpu7X+YH7uaran\nkxJS0e+A1fRMS5zndonQESDmpIKaDXh/tv10A3JWq9lKh9CiTXGAyMf5DYJLYrIw\nx+m0Swe4rfxQOMVLZ1TUsjQK2h9ePRzdKoskTU2xNgs=","translations":{"en":{"changelog":"### Changed\n\n- **Minimum PHP version raised to 8.3**, matching Nextcloud 35 core requirements\n  (`composer.json`, `info.xml`, `psalm.xml`, README). The app's own code does not\n  use 8.3-only features; the floor is set by the supported Nextcloud version.\n- Development API stubs updated to `nextcloud/ocp` `dev-stable35`.\n- Documentation refreshed for Nextcloud 35.\n- Admin settings form refactor.\n\n### Fixed\n\n- App store screenshot now uses an immutable tag URL (and a `small-thumbnail`),\n  so the store stops serving a stale cached copy of `main.png`."}},"signatureDigest":"sha512"},{"version":"1.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/Interlunium/nextcloud-savapage/releases/download/1.1.4/savapage-1.1.4.tar.gz","created":"2026-09-17T12:43:26.169465Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T12:43:26.237283Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"PFgVixZti6Ke4O7ics3dCBFnHu4/5HNlBmx9c/44ZyMLtStO4Gs/XAVJ1npWUsfQ\nrM2wGmkyIGDXp3rk6+jTjlU7yt+AX6mcQmDovgAN1rpiBaY+izS+Eq0aZfXeBNS9\noYUOqmaVjyLqgNrI7E4qqso/TahlqBsmiaYleiJD5UEIGorZL1DOYm8IFdISbOAa\nP0fAJkQ13oNDLnTtLzIJlCUkdR+Or8H/d+r7+jQt2OI/gyHYu7h/mZLq5suts0FS\nZfQiWdhQF9c8xSRPwunz7vLAFVrkAUANdIGx/hc2XPc2wwVoHjaqCG2uBNL/Tr9q\ncYn9XljAC4ZkQbn0QX8+7o9BGhYkHfm08CqPpUUjLrzJHZwT2y9feJQNbeQTV3Om\n4IO1TodmTd6T2g5RRUc9wJtmTdCLluNqZfNiKAm6LLg6laPQHu1QbBduEMiw8vwJ\nOxNjiY0XV86kBEB52dEZqphSkfFO09ZGsTDxzMcQNS9MUbLjCcb5mG0aaFhV6aLs\nGgKrYHNh/Rf+GcNRlK+my0vfB+M4TxijNaSYMeesjmKZtVrt8ISQpa8WByTl4f+1\nGQNZvyttASBojqeh1uWgQ17oxoIw7bTvKQoOpxvYI3BOdwYsWlK46ZWLE3H4Z8ZV\nwmPVT5a18tOqv+0iF5ygGerg6B6MpegcvgJjWz7ksfc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/Interlunium/nextcloud-savapage/releases/download/1.1.3/savapage-1.1.3.tar.gz","created":"2026-09-17T05:13:44.039551Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T05:13:44.097194Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"H9lPxmVN74whoAVlKdivgYQblwsc++lQvgg3FgxfeHh3xew74gVVQ9BmTJeOjrNb\n66I48xXztJ7bWGGmWZBm1N0ITLDw9ovIMUW1qHmykYiFOBxZq8UTlTi7HiguVF97\ns7Cx5fzqVkznizlGpm5LlDIKvVXaMHt5YBwa8TFZIaCk5PE2tIFbwd6B5HSyDbUY\nD4S5J8mfliK5LbxAwkOqVvV9u128trkT9UEkY70vqpinT9M5iUxbVEOm/ddQiQW+\nBtliTp00cMHQHhindSizixX9gFhwq4dU5zfW9kTFF1KG8aVnU96883hF/+LsjiQE\nt4DEd2OssuqWTVq0hVajLEni78cpLfPEKZ02BUQx7WnwKLaq+mVbgCYpBpOKDyTw\nbYvrRx/dGn4JGsNC6We7nQ+sjqyzvHDJXXKOn5yeR37yMjGtzVqxZNAZOiHadquw\n3/sh2N1IC7uKAZnxyPfrxk8xm6SSqvXzZIOFViKZrTCrT/tUH0lL8eRDGz7DKFF1\nxsJj4tKMicpHWdd4jB8qLrXxKE8f5izKjC+QtpYxMy9Ct9WssM56OAX8bSRpOVZV\n+aZUMw2crmUxNRwlY0WNuCJB9JKM3YDKD4+U7QTwsa4xqFqC/urlpardY+QDEihe\nJk3w7+aG6dy2rasYuTE7ETq+FuysY0eAmxJ/nJPW3a4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvSW50ZXJsdW5pdW0vbmV4dGNsb3VkLXNhdmFwYWdlL3Jhdy9icmFuY2gvbWFpbi9zY3JlZW5zaG90cy9tYWluLnBuZw==","smallThumbnail":"https://codeberg.org/Interlunium/nextcloud-savapage/raw/main/screenshots/main-small.png"}],"videos":[],"translations":{"en":{"name":"SavaPage Print","summary":"Print Nextcloud files or folders directly on a SavaPage print server.","description":"## Print from Nextcloud to SavaPage\n\nSend documents directly from Nextcloud to a [SavaPage](https://www.savapage.org) print server.\n\n- Send a **single file** from the Files app context menu.\n- **Batch print** multiple files or whole folders; folders are expanded recursively on the server.\n- Allowed file types are enforced server-side, so only printable documents are sent.\n- Credentials are managed per user and can be synced automatically from SavaPage, or overridden by users when the administrator allows it.\n- Dedicated **SavaPage** sections in both Administration and Personal settings.\n\n### Requirements\n\n- Nextcloud 28 – 35\n- PHP 8.3+\n- A reachable SavaPage server\n\n### Installation\n\nInstall SavaPage Print from the [Nextcloud App Store](https://apps.nextcloud.com/apps/savapage), or download a release archive and enable it in your `apps` directory.\n\n### How it works\n\nWhen you choose *Print to SavaPage*, the app uploads the document to your SavaPage server (`{Server URI}/restful/v1/documents/print`) using your personal SavaPage ID and UUID. SavaPage then holds the document in its print queue for you to release at the printer.\n\n[Read the full documentation](https://www.savapage.org) for administrator and user guides."}},"isFeatured":false,"authors":[{"name":"savapage","mail":"dev@savapage.org","homepage":"https://www.savapage.org"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhNfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjA4MDc1NDAwWhcNMzYwOTEzMDc1NDAwWjATMREwDwYD\nVQQDDAhzYXZhcGFnZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKG1\npMp5GVhfzobFH6Tc9e5EoEVVf6emZ8E8XZnIRCVkNXxdNmM6b6hJTtbkdmOSWY+W\nkfAmT3csCvMVFTjpprLbh+bdUnN1s1b9E+v5POOSSO5nrWiA9bN92Yro3wgBisqQ\nkn9YAbwXXr1MrBakULTw4Qlk3QfSA9T9VaaeSqlWUz2hggoKb95GcXLQ6TArgQvM\n1ypwvPz3ZH57OcIgV16LMNnAzIcvP5XfvqKsjXLU+BvFnsr3LSqzTqjKKYguBo39\nAS49jyYFybKDXUQnaP3esMSCcEA0J8kcbDwB5QAoVXuPveepm02Df0aV9MbDDFOG\nARpOee/CCNVKDbKMEkX11U1bxncMZdQscHFruz0JAeJFpJGE+1NfFqIDtZXOfsUM\nOD7+nekjG0jrBJ+3ArVPohZAKEJMH/soYXCBWbOV7H1Fb5TkMvJITka7szZrCnQh\nWkjWQOrJS//CqjeF+2M/JtsQkuFNpORnbaW0BuKe6ft8U5gIRXgx0ovjfz5Gfx9e\nWO0kMVWSZ7gnysh/msFVcVKVRUj1POqNGgIDJStT61aE99QzBxDz5OW9+O3mdEbZ\nq4Ebybjz2vaK3/uNG0uW0wP5brxfJnl1FT4JaY3jX7x+CeFvzxVK4NOoadA9ohw0\njijZydEJku4pdS/JT0RBsj0S5qPboggpyr4eCE3bAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAHkZiYhXJgT9zTRVaCiS7piWMIgFoDMU5oiEy41ptjMWWDVJuPA+kvGc\nIeP2LxtPKrzM1nN4m6XXjZ15dA28cwkvKMK1aEe7Az3poz/YcZEUUT42BySRRbDK\nrEKe5MlhpQlVe802RrGYLQHwRnBD7D9uzk2XZA2RVannudpXdw0d/YuoKUfJsfbm\nVMvJmYLttqqVT109+38flOHnZe/PLXJTjjBXZEO7zVCBCuxRIU4EWWFI3Ijo9CkP\nJvgR/bVqiZNaUs0CGBRfhtv1dbXJQfe2P4JtMPnh6jDP0nhQuq+NtD501NLPkEn0\n+GIKpo2/LZntzpuV6xVl/JVDIK53aqE=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"aiquila","categories":["ai","integration","tools"],"userDocs":"https://github.com/elgorro/aiquila/blob/main/docs/README.md","adminDocs":"https://github.com/elgorro/aiquila/blob/main/docs/README.md","developerDocs":"https://github.com/elgorro/aiquila/blob/main/docs/README.md","issueTracker":"https://github.com/elgorro/aiquila/issues","website":"https://github.com/elgorro/aiquila","created":"2026-02-07T08:59:00.236285Z","lastModified":"2026-09-26T18:53:57.515965Z","releases":[{"version":"0.4.16","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/elgorro/aiquila/releases/download/nc-v0.4.16/aiquila.tar.gz","created":"2026-09-26T18:53:57.540749Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T18:53:57.553706Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"lCXU+Hjl7Z+llYZetot1BtsF1DyZIVqa4aLL1Hokhk9tre7am/akoZ88+MqB6063tde8i1O4iD5WpcZ5wRVYo1uwWiHi3hsTaZKOEy23dXmu+KZlNAA/Vv28n7AdD5g3hnE6JDBah80AM7XAAGvx+FKoAslpbxLVkCeEjuWVQ0LVSMts4GYi17rh4Ux8EA4nJ7MpWoHem8iZAf0KKMJ5ahvevgoOqvFfNoToSN5j4DdcAJdIk931S5XeA6trRyVbTJkiyeO063hMoTQMV6xeZcgwp/+VJ/dp3JxovaBNQF5rH8I4pHimMPiWeyZMO9wa6wOgyYJuBiySgfXH2iQxMLL0MKwklaBpCLW91CGovDytTuwwggZ5N1apZHz4q2ZKRxSkFdEV+Pp2bjeJPPPhWAfg5Jyv2jFFDUQ5GMDXoGV4+pe3vk+tsKV5aWe9y8LsQ13hKZEUzqJPPSvLD4Rp3zrxLs/VNe/uMJ7g9e4eQuEsxLqBhYky457QE5JogxzjcfuUDcYn2DnLSluWl4u4glljWMf2jNX1MWpksPxxACsny1PZiR0eoM09ZjCODtqaKykirUhovp8/iP5ar3t2CWKdPvxaRW1Bz/um4IQCs5+G1h22d0yoiKAwPVpKxp79lP1nRHNC6zyJwStAxjT0vZWIQKxSDgMqy/GvKi9P3bw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.4.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/elgorro/aiquila/releases/download/nc-v0.4.15/aiquila.tar.gz","created":"2026-09-26T18:53:09.406549Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T18:53:09.469666Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"LUHcpvaHORzACZ6I0tzIyte9l8pDN4dzflxieDyaR9C8OPgkybcKdsOrJN71OhdV6ccUAnecUJCKR6RditRoN9EXIEGCprv0zIdYa91/qItUuDvFMgOrOG+NymJuqxdN971FmAw0PinVs0MyOr+xzfIaw1BOq36vzKU+YeKtTw0WugfFe4OCZeMvddUehVH3bzqNJdyFiqxtXKEIk0xvUg/YmNjkq43bQUyYkHeWfBCclPuqLpUKxojxM+IWLEcftIol5wMR0xQSUCGWO0U2OmPqiLyMpUCC+Cowsv8ffMZsxKb3IXlxVE3Lu2iIrY+acUieQFU5tvMpUTLkapJx/dYCqun2ep7mh4dh0BFqkAkStxVHnhEV6WQLdbhMsSLPwMwT/42ZTwglLSP/kHf6/RkJZTpaO/GuNtYWs98xzaHqD/41SVLB3PRzvgIj+60TZx9BfsAXEx/tBUtuT0eVukFYS/fxZj/aSdikPEzuodZ9N4vSaGisHDYL4vmg1uGJQka5B3qeeA9JaNOUySE6wN93QxfhYuQzSspo+PCF8Z/mL5KLVo0IJYJn/LmC1bU3Dcvgx2rRRuCvBfTcXcHzItHxkYBgp+BumcWmOOIWSThKnB7HbiTV2JXPYkCI10MSlhfWNqhhgknbM7zbm++3lwU02zTV+KIRgt+zeeBnWjU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.4.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/elgorro/aiquila/releases/download/nc-v0.4.11/aiquila.tar.gz","created":"2026-09-13T22:42:55.903224Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-13T22:42:55.969043Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"GmG/mcXNesb5FZqgnXMON4Utlyk5ikZdQb12n6ZlLbj8f+1NCU+iKSwpvfysgaa5yNOUu6caU5oLkzJZNovok5O+nMOVMRGiLYNkDNOEz7tDFHyOlv0pIaBYRQ4d7E7WsTwgppScPlHh8LHMyO4/vK7+x1UUBCHFusjJE66uFWzzR3TqElJcdDfOw4zdI3u1kBjE9VA08Q6iYMP1ZdRi7aYX8XpBnztFpgLRf/woiDrJRRUHrtzEeygiUH5BkuLmY/xXh5hzbv3aKUttqDmL7nqKf+iaaSwzNyObPNMwpvI3VTlXDSuc9CdcZ//UmlsyDT0KIqNeggIYddrvU7640VDtXBymRMt53rCfWQc5w9FUNTWqPMVqPmxZPN5R9S+w93XPK045/6lx9++BXqhwh5CQPtojGnMCk5Rca/1CX7PmEGWB/2LPxoeXZASE+QAr/oBIjRFqhyhBaeFwP/XmEGUitPikiFdKLth1wzb7lVBakpusvnV809zkZq8GNs9n7QM5a60R0hOArk2b1orOT5gXMUrqGtmY1zbqiFNPVLqrSVgin1DKi7hLKeZaQCBxeI2R/ax1GRHrwgT2YwmsXfRZpIoiXC2jaKWqQ4mSIVplE8DwwfyoFnpVGCYxeyAxoUlwg7TOhXNPIWXc5ktzn7Q9RGhHdcFfFgVRpyzQG64=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VsZ29ycm8vYWlxdWlsYS9tYWluL25leHRjbG91ZC1hcHAvaW1nL0FwcHN0b3JlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"AIquila","summary":"Private AI in your Nextcloud — chat, agents and MCP tools, with the AI provider you choose","description":"**AIquila** brings AI into your [Nextcloud](https://nextcloud.com) — private, self-hosted, and under your control. You choose which AI provider processes your data, including models running entirely on your own hardware.\n\n### Nextcloud App\n\n- **Chat** — Converse with an AI assistant about your files and documents\n- **Projects** — Scope a conversation to selected folders, so the assistant only sees what you choose\n- **Coworkers** — Save repeatable AI jobs and run them on demand or on a schedule\n- **Summarise & rewrite** — Condense, draft, rephrase and proofread text\n- **Model picker** — Switch provider and model per conversation\n- **Usage metrics** — Token and conversation counters exported via OpenMetrics\n\n### Choose your AI provider\n\nAdmins enable the providers they want, and can restrict them per user or group:\n\n- **Claude (Anthropic)** — The default, and the most deeply integrated: vision, thinking budgets, native MCP connector, and PDF handling with citations.\n- **Hetzner Inference** — OpenAI-compatible API from the German provider Hetzner. Currently an experimental service, free while experimental; Hetzner states it does not store request and response content.\n- **Mistral** — French provider, also supporting the native MCP connector. EU-only processing is available through Mistral's regional inference endpoints.\n- **Local model** — Ollama, LM Studio or llama.cpp on your own hardware. Nothing leaves your infrastructure.\n- **DeepSeek** — OpenAI-compatible API.\n\nAPI keys are stored encrypted, and base URLs are admin-only settings. Provider choice\napplies to chat and to the Nextcloud Assistant integrations alike. Assistant actions\nthat send images need a vision-capable provider.\n\n### MCP Server\n\nAIquila includes a [Model Context Protocol](https://modelcontextprotocol.io) server with 316 tools that gives any MCP client — Claude Desktop, Claude Code, Claude.ai and the Claude mobile app, Cursor, VS Code and others — direct access to your Nextcloud:\n\n- **Files & sharing** — Browse, read, write, search, share, tag, and restore from trash or older versions\n- **Calendar, Tasks & Contacts** — Events, to-dos and address books over CalDAV and CardDAV, plus Deck boards and Projects\n- **Talk, Mail & Notifications** — Conversations, polls and reactions, mail accounts and messages, notification triage\n- **Photos & Maps** — Albums and metadata, GPS tracks and devices, favourites, and photo geotagging\n- **Notes, News, Recipes & Bookmarks** — Markdown notes, RSS feeds, recipes, and bookmark folders and tags\n- **Coworkers & administration** — Run saved AI jobs, manage users, groups and apps, run `occ`, and check integrity\n\n### Resources\n\n- [Documentation](https://github.com/elgorro/aiquila/blob/main/docs/README.md)\n- [Source Code](https://github.com/elgorro/aiquila)\n- [Report Issues](https://github.com/elgorro/aiquila/issues)\n- [Discussions](https://github.com/elgorro/aiquila/discussions)\n\n---\n\nBuilt on the [Nextcloud](https://nextcloud.com) open-source community, the [Model Context Protocol](https://modelcontextprotocol.io), and the open and commercial AI providers listed above."}},"isFeatured":false,"authors":[{"name":"elgorro","mail":"aiquila@mailbox.org","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhLrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjAyMDkxNjI1WhcNMzYwNTEwMDkxNjI1WjASMRAwDgYD\nVQQDDAdhaXF1aWxhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmYyK\nbgx1oKNwi0mVmkR39zrYCIL1Q2YN19/dV3RCSFWhKSmsnzeL8t+aodDT23B9sORf\nArTw9X/5dYHurTI3RMGJN0oxLu5eS7Wa3HJYvd+31LsTXk4227ijFHiPf1fFOZXt\nRGpRjdYyOh+/FaV3Na3EK1Wswqha9Oa67tOOPb8hEyXC5eyOEfOVGOkWJWGrWK5J\nW6ojYZFvhD9sh4jnUR1QVS2ls6Tu+KXHva0mOyTM0frawzMojZa5dFR5acw+vxtn\nGTsakEUYH9e2gflDk9tB3xlfjUZNg92nZiD/NVVOW3Y71uRZZ+Xt4X8eHIehRI+Q\nnxh0+2U3lYhKtFWMQam9CzL7vaVzpXLZtPryXQ1h64ts48oBuFmeG3WEaXuelmHR\nN9KkeFUss4fuAu7m02ALqGnWQN1aj3zE+fM4ywNnJptxGN2mNYCL3/IlXt2h3ddR\nK1nq27lORJiHX6o5lH7MFWk91b+9CshGise5ToibrlqdWzl1IffeQREHkbun9cDP\nW5ag/kKMNZBXLHxanmy7sYrQZfNG1QcmQrUvLuaRqz8wB0eZ0ksPPJcFmVAAKHnf\nl1U6mctDikLjYVv30QG9qnekrdl3DAhIrx+Or2dCllyLqbKwisIfBX/ikliGoG9L\np9eR+KlyPW3tkQeOcyw9YczO56h2YRG96Mqxxn0CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAHAf1Da1mTeJRWcOmUd6TqDiCG2WR+IBVyqhIUN2uiO+VCd51nA/cz6Ep\nfK08J2ibKifi/ovU4aAg/se3MpViH9AJ4GhKqq0K7gvi7F20bLoPxPujirxOngh/\nP4REueCnH4PXQKLDIzUQDzcLRyGRvB67sM3ocIrIEhOqGCRr2gJjf3xo4XjkdPvQ\nADuJj2X9NpOv1K0g/K9EGpkjdTsK9as6ChHYaSIG87vNMxwl2CmvbnUdNkCjNOB6\nQgwKeddWGnsm12tqc/NO5qh8OpezWo54iFReGyvHJ0aCKHElz7YB9/J4qPGrewQW\nl2Sayzp3mVFDkRp6shDHMKAFB4lVRw==\n-----END CERTIFICATE-----","discussion":"https://github.com/elgorro/aiquila/discussions"},{"id":"brewmemo","categories":["office","organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://gitlab.com/brewcode-de/brewmemo/nextcloud/-/issues","website":"https://brewmemo.de/en/?source=nextcloud","created":"2024-08-08T06:51:43.300515Z","lastModified":"2026-09-14T16:22:53.009506Z","releases":[{"version":"0.9.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://gitlab.com/brewcode-de/brewmemo/nextcloud/-/jobs/16490562367/artifacts/raw/brewmemo.tar.gz","created":"2026-09-14T16:22:52.994365Z","licenses":["agpl"],"lastModified":"2026-09-14T16:22:53.071521Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"NUONOlLcn3YTaV/9WotHD2x6eGHRyJxQ+0U61RdXl8pyb7BTD32l2qwx/dU6Ucb8\nbu7dSuy/qKoL7pvZ+Jzs6P7rzOvMPoQiohgrYS6FkNqbRcebJpy8QdvCXHoF30F7\nc0R2c7BjZBNMe5WEfHX6FCxjIx0SKCjin9SbY97VavqbGVVPOy5K26WprQawq3R6\neqnoVedpyUC8FMDem1jORO7IyzI5+wBpl9nEk41Bj9mwBGzS32WFOIScs9qOS4Bt\nkIqO0E0D3enqCiaHHoUqddGOzptuv3GM35n2R2ZIwVRysQH7uvr998ZmpT9gXaSP\nFREeUc5WPRrGHbr9R/VjFBM2O+AnzxUqPbGOnivIaKCAVeSiqPgxS57HIPkM6Uj0\ncUCgUYUv3iqxsmIZn6+JgnoBiGdhyfNrGsMmte9iHA6antkA8zkNg2l5HQaDUNl4\nXnj7Iu1ls6G2AsodLN4VAylqijfENl4JSo5kZAoch3hTAmJobYGH2ERODul7EELm\nAUm+mW0c5GO18StPD4WQXUgrVsT0Hap897z//LSWD/JNzrsRA7QGXpqtr5IivJTn\nTcYV0rla/cO4rn08UubHdb0SqL6HrAiWowcwVRD0mL9u3rHJGaKxFS26l1/0yLz5\n3aT/tRjOcCQdtoMWlmLQt/O5xGu7SwJRMBqn8CflG+U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9icmV3bWVtby5kZS9hc3NldHMvaW1nL2hlYWRlci5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"BrewMemo","summary":"Fast note app with beautifully crafted mobile Apps","description":"BrewMemo is a fast note-taking app with beautifully designed mobile clients.\n\nYour notes are stored securely in your Nextcloud, without any vendor lock-in.\n\nThe [iOS App](https://apps.apple.com/de/app/brewmemo/id6514303780?l=en-GB) is available in the App Store, and the [Android App](https://play.google.com/store/apps/details?id=de.brewcode.brewmemo) is available *now* in Google Play.\n\n## Current features:\n\n||Nextcloud|iOS|Android|\n|-|-|-|-|\n|Markdown Editor|✅|✅|✅|\n|WYSIWYG Editor|✅|✅|✅|\n|Pinning of notes|✅|✅|✅|\n|Tagging of notes|✅|✅|✅|\n|Different themes and color styles|planned|✅|✅|\n|Export notes to PDF and TXT/Markdown|planned|✅|✅|\n|and many more to come||||"}},"isFeatured":false,"authors":[{"name":"BrewCode GmbH","mail":"info@brewmemo.de","homepage":"https://brewcode.de/en/?source=nextcloud"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhJyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwODA3MTg0MjA2WhcNMzQxMTEzMTg0MjA2WjATMREwDwYD\nVQQDDAhicmV3bWVtbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKNu\naXAtK8+N5N1gzh50KjIB5WEsVE/93f0YEhc0+s3GgPBl66BjTZyrq7WKu8PuCJ6p\nMJqkO9y6c+97xUidTHOOA/2cYuWsIRhsWHpEleewiaXOY4LfQ/fFngSWbB8NCsVM\nkhsQLgdBRpOH52xonQyD+s4K0LAYvWEeykL3BOPQK1RJDfb48DLHV9hQJPLavnIH\nQig39LwVjb7XIYunfAPpVeoV2E5l+KIHhJutAFTC9iubZtgHNmpZcfMWlQU0sfD4\najQZhRakH/LjGOi8iqoUd4dmt4kzbLhcshxql5s3e7BitZE0CJAMem/3+ovg2vm5\n/5+8Pl2+Gdd+afNbiw7AZEWzXCNW14G9iXj9IAMk2hfy1e8a5cTsWc0HO+XFp/eJ\nFlnRVqyrevo8ameGvlVyiWR9Xahi1b0Tt8THZBUQ0R5tIEp/0zwGlVVu5D/FYBPj\nYoUOIwVJ4DVK+O9SspshocZ8MMnASvuxa8/N4CgRgdiBTT4jFSGEvnB05aNdnMZR\n576EdpdZMouK+yIBeGrofVb9BAC+nQygsnCdflZByPlQLoz8s7FhG26Eyp5Y2xvl\naah5Fe5tP5idv3PVsvx3rIvjhM4CcgtxJgILFqYRuHwzKKzvFatIcw+ItDk0yFkv\n0q69lZkK3+nDx4hJBEqzW0VorX/v8hq2QroVrzYDAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABp5pxVZSSfpyxQSb0VSPRo7HMzKFB6GDYG3utjIZCsAdaCJED4kJJcS\nSwvr2gCKkgpMJB9MXA4E2F9s0+NlYJejkxBQtuJe7aD1g+i3ynu8y1BYW/gotMAm\n3pPdfCguDIS4eU3NUUFL0WrCqus/Xi1wUiwuqC4TewQYRluWYD4HmyRCE0Nvdyh5\nj634iVnFhhu7RsCOuC8NBbJYP2K3DvG+HNL01h4ok7WthuQD5oqUucBD0td57sMO\nFmO/zQknVcPjbmABIdwZZlvqBqwOLrkGwpSbTptdBmly+yV+sAR71XkGdwxahGZ8\nZRg5Gjn9oBI3goS76zlk2q/Rvh1Rf2k=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_set_target","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/amsys/files_set_target/issues","website":"","created":"2026-09-16T20:59:42.512353Z","lastModified":"2026-09-23T11:22:38.639063Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/amsys/files_set_target/releases/download/v1.1.0/files_set_target-v1.1.0.tar.gz","created":"2026-09-23T11:22:38.605621Z","licenses":["agpl"],"lastModified":"2026-09-23T11:22:38.691489Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"RcYgS+C4ffoVXDOqhf+E+zLy3eRjvCOsDNM1ZWjeqglI1TYt3LrCGAAHpwd/X1JuafeNt/YSSGMVJUs1bsNCEgexlTB2YlgxpHFoVKgpy3a5qTT4P2jgrVT1FfX5mNZHD1s5SnN5hRxcT35bGDVQD61S+PWDGNcCGdhbU//ltsnCaNULcKy/bbJPXzWb/RTOeb/8fc2orwpcQvPbHsERYJk1a7ez+NXASba56Agg9cGTQ6UlyFHxVskCLG+eCpw6XvNpGoTO94pabxTRRy/tSMZ3qrQKMnwpVpqJUPWr6SemFpaEhZx1KTYgULhb9m/zmfXjU5PFWzNvy8jiHOoftVS0vukjE+fk/loGBa2ICoRoirB0S/slpnCZ6bSob46gDh5pyzCsUFnTjESX0XwqaJK5J3h8FkEy9SFo8Pu79/xXtOt88652XqG7lL2niwX9deKYCL/ZM31co10fqSOGWI5dmLb2dKj8y0VkFV3ZUK5UHKP7+HRHNAVZbggfvKw5d3dOzVLveP8IXsAcHxB6jHJsyCnEFUc2ZOy6VRRXcH2Ox7XB/p7AslvrH5/cKkgkMeJbG4EcLB/d6FickLszVzu8KzhD0XpL/rCk0uxKB82dL5fYc9mrbhxXQLUP3H4JKYNG263VTsk0TD019lxz+wzXvlFHUwP8VCBgXrWxfmI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Ftc3lzL2ZpbGVzX3NldF90YXJnZXQvbWFpbi9zY3JlZW5zaG90cy9zaGFyaW5nLXNpZGViYXItZmllbGQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Share Target","summary":"Choose where a share lands in the recipient's files","description":"Share Target adds one field to the sharing sidebar: the path the share gets\nin the account of the recipient.\n\nNextcloud puts every incoming share in the share folder of the recipient,\nunder the name of the file or folder. This app lets the sharer pick the path\ninstead. A folder `Docs` sent to `Work/Client Files` shows as `Client Files`\ninside `Work`.\n\n- The field shows for account shares and for group shares.\n- An administrator decides who may use it: everybody, or a list of accounts\n  and groups.\n- The app can make the parent folder in the account of the recipient, and\n  remove it again when the share goes and the folder is empty. Both switches\n  are off by default.\n- Every path passes the same check in the browser and on the server: no\n  traversal, no reserved name, no control character, no empty segment.\n- The recipient gets a notification that names the new path."}},"isFeatured":false,"authors":[{"name":"Martin","mail":"dev@amsys.cz","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhQXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE2MTI0MjI2WhcNMzYxMjIyMTI0MjI2WjAbMRkwFwYD\nVQQDDBBmaWxlc19zZXRfdGFyZ2V0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAz94I0es+OG+NGUJ23tpJZPx6Ny4qmNBPFxBB0Zq9IgDWpy+hX5WAw83p\n//CEbNnhXYdB58lqiEG4la8gyqy7yFXcOL0o1MVvC7F0SFDnGIzs7PYnzpNuPaUB\nov2RkZTVSIQOt1C4233Si89oOpT4WAT6qpJn7M27SzQM4DMCI4ZlqwmFl8c3JesO\nYAwnC6LNMvsihz9lp976adDSDbECUQcFOXIXW1K1SqWjjFcMpE7YMbNO/HjGA/on\nzH9su7L2y2iObx5VYur0W+wy8jQfEQkoFD+X6SU5eRPy8hD6PyKR67OXb54StM9G\njY/zrKMJ2PTfFwPT5c8pNygbJ4UkQNTjunn+Kyn5nhyR2pDc+7mXwQqdP45FBVm0\n+qd4d/nhJmuHwGjWfV7j+qqzxL09sCcirppPGN5MKKOEzy/j34LoCI1fjlXUooFg\n8mTXQfcVyif5/exxd50kGrHhNQ1c7o77nIHlqMkCuWd6weHZmR/VL8NIfQpKxwRM\ne2ZmJuuPJ1r8mu2l7o8vZCCDBQqKfrJC2fDcI/WfuXH7PW+27d8vhFF5HudtzEp8\njm0gT1R8OgmMs7v40g+3vHdyGcHITnvsamoZKW/TBxUvPH+hQ5z8vVw59j9Ag3O8\nLHy5EWSPyQOQLUD5K61R6eMTO7LeLQu613YirWoICnXzVNJmu6MCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEABYCJoF7opjbLhV+gV+RabE+lLRtMh65M07bUmsJ8tNZ6\ngOEfBKRdR20jhm+ux+cZHCh7HrJ/FjT7efAoZ/QGfgD2mYlZTBdqlKMpq1P5Xq4w\noZrFqDV4pk6R6hCsM6mz0xh8CEQm7wlzYD5Kqi8408wBhcGmiZiJyshI2PsZVpDR\nOT+xz1oaNpDDgZK2y4rmjCcJHX45UhNHCKKOKs7nbJFzRnbVjZXV08JPRlz9pZXp\nOnjdjWqgvFLriwcXb8+HIfpXUpOJNoH/R3LFa1oO2g8ddYeHhhBAfmA9aAgnVt5Q\nkMnD2/IuCaTcOCoYAxh4+3HgFXn5lEZhRXGmi6yOVg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"doconext_finder","categories":["files","tools"],"userDocs":"https://github.com/DoCoNEXT/doconext_finder#quick-start","adminDocs":"https://github.com/DoCoNEXT/doconext_finder#configuration","developerDocs":"https://github.com/DoCoNEXT/doconext_finder#development","issueTracker":"https://github.com/DoCoNEXT/doconext_finder/issues","website":"https://doconext.com","created":"2026-10-07T18:00:42.728784Z","lastModified":"2026-10-14T15:25:00.248182Z","releases":[{"version":"0.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/DoCoNEXT/doconext_finder/releases/download/v0.9.2/doconext_finder.tar.gz","created":"2026-10-14T15:25:00.243832Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T15:25:00.279854Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"QkKk4pPXqU8xIUD5sOQuW9puJTIw9qmpJTA4b76Q4eb69KWGoJq5fGvagmP4PnzTYb2TBCgtGGOh4jqYzNHhC98QENclvJTV81/vBly4mm0zlW23sMAL8VSgQ9sfQKLiBoiVw+LqjOW8jnonegcQTC8EtPr3uK/gaOZhr97aro1qIxHtAVTzdboWuRA+OzqszTZ4ooZmPuRx72tdIF2yA07x1OVtzfOFM8hFW2O6pHF0byZxqrMxKyfNqq34vu5Iw/01OuejmMnRlUUZyU51kXFhF2S/me8KGB3RozTvMSTtIxGof/qEB23mVRip2ne0qFdhk8a0CT8yS8CopT10IJB8lN5ippIcznWhhiaRnNm7LaR1Hjo5bH41RjeRRSoWElqS011m2gNS0HD/tNccm3+EHbLquxbJlGjnqr9+9/gAAXJ4JR51P4d2iKsi4WBxLOCKqu01Vv6QUyHT69/zHRZBhcATG+R6Op6zUq/qsqwtDh05/O7NP/pvp4Mji1wcSMApmhk1mdqHREpkLfq45dC+PLoujkfICn4sAhJiK/mwdv7uoZFM66i5MMAwaK42O7J1Ahm5cf6i0dQwivRZvRPSa4PyrtvfWLVrbtp4jZwAvMHEWNXFMedO8jv4dUS79honM6afI2Bur76tbIXFbELB1Kb4f+Xe95Ea2MkxAaE=","translations":{"en":{"changelog":"### Changed\n- The filters in force are easier to see. The Filters button counts them;\n  folded, each one is a chip that removes it, with a button to clear them all;\n  unfolded, the value of each filter in force is drawn bold in the theme's\n  accent colour."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RvQ29ORVhUL2RvY29uZXh0X2ZpbmRlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMS1zZWFyY2gucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RvQ29ORVhUL2RvY29uZXh0X2ZpbmRlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMi1maWx0ZXJzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RvQ29ORVhUL2RvY29uZXh0X2ZpbmRlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMy1jb2x1bW5zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RvQ29ORVhUL2RvY29uZXh0X2ZpbmRlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvNC1zZWFyY2hlcy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DoCoNEXT - Finder","summary":"Find files fast: structured search with filters, saved searches and configurable columns.","description":"Finder is a search app for your Nextcloud files, built for people who look\nthings up all day.\n\n- **Structured search** — combine conditions on name, size, created and\n  modified date. Match all of them, or any of them.\n- **Saved searches** — name a search you run often and get back to it in one\n  click. Recent searches are kept automatically.\n- **Configurable columns** — choose which columns the result grid shows, in\n  which order, and rename them to your own vocabulary.\n- **Grouping** — group results by type, folder or date to see the shape of a\n  result set instead of a flat list.\n- **Favorites** — browse and toggle your favorite files from the same grid.\n- **File commands** — open in Files or in the desktop app, jump to the\n  containing folder, preview, download, upload a new version or add files to a\n  folder, straight from the result row.\n\nEverything works on a plain Nextcloud; nothing else needs to be installed.\nWhere DoCoNEXT Core also runs (available from DoCoNEXT, not from this store),\nFinder additionally filters and groups on Core's metadata fields."}},"isFeatured":false,"authors":[{"name":"DoCoNEXT","mail":"support@doconext.com","homepage":"https://doconext.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhRVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTYwOTMxWhcNMzcwMTEyMTYwOTMxWjAaMRgwFgYD\nVQQDDA9kb2NvbmV4dF9maW5kZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCoJR6vpqRxZP6YYQBhG8i+RA/yStqJnb0ZAT2rkKwLuwxDCOftVaXD0raA\nzbz8Q9/mZzGJZ5YdOcH7LtlrF5ke7fLuwWUYoITtaaLyaSk6MPpkdeNeyqytEgDn\nbAon75/TcHlqlkVxqhAHv1T9tUpSUUC+hkJjD9CVjaPp25nbh413nk+hByOwlLNN\n6/BGYQFLNQxFaFwFTlYEj2LYMPkhpYxDcFyTO/yGaDduqLPxXjr3RnF7mxJbx15G\nNVrAumgI+g5ZmHxuupbc6lihdTErNxOx2hHzdjB5+Dx5XSiIkqxYG72E/5GN5k+p\nGRoB6UWPmwZLEyiC+CrP6ruAcelAtbI3d+2ZKWPEU4AnQ8pTEMQPQZgu6sWcAtO7\nqwxgdrLJ0QSiiRUZLQFamV3iUcP6MB8fn323lCJhvD5x9rIi+3AQwnpsH3MykD9m\n+68NPdzODKEkBH/F2y+PtC9yPnXRPmBwMp0iY1C9PAnxfYGJ6xreFTSrud28tGll\nQm7GguQttqVGMbrZOqw/zm9YX9xDfYQT9dogo7dAJxltdXcBuE19M5bsJjYMEt01\nB2JMD2IL0AxLJyb7C5Km0Pwo7IK6ZrfZEzCJ/r3TAWmZjn6T2wfX4v5ncXKoDEE0\n5Q8YnvsZ1OvTKtNelQKa+wvp6jcSPazC8973NZ01We7aWfMnKwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBHGaJI/WjuQWbTQcMbdRY4C8v4bOVG5LfiFbwVnIY2eT5I\nju2oXxtziPtJSopcKRHKFg6XSz7oRxLm7C5p0DEogVzf5tdPZCza3gwhLPvG+ohX\nTsrkdlVHGlF/320eFhmxJgHf4t/HrfWY9Ypv4bRxHWI9eAUpjbFV9CEEggSUw2nT\nDclasfAbv4lnBPRYr+jkiWt/3/87/ag0B2Tj5MrxKu24juiZso8MS1lUqaH2kkaA\nagSbMttNZA5APsAqh8gzO11G2XqrBY7kbWI/AU7hL3R69eZXyclZEqaVyA56mgWI\nrEy34VQXun+rrGpTg9cn+tdFoaENxlxyrl5gfCtH\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dashlink","categories":["dashboard","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/lexioj/dashlink/issues","website":"https://github.com/lexioj/dashlink","created":"2025-12-29T10:15:59.465294Z","lastModified":"2026-09-26T20:36:19.045011Z","releases":[{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LexioJ/dashlink/releases/download/v1.3.1/dashlink-1.3.1.tar.gz?cb=1790454978-1","created":"2026-09-26T20:36:19.035394Z","licenses":["agpl"],"lastModified":"2026-09-26T20:36:19.088979Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=31 <=35","signature":"OZ7/+6GBEqFK9tSIEFLU8m0PK5+jlp6F0oDf/rJy3IeSRGnAysXEaDn3PKOFZQJqZf5zQ+z/5uIovgKZV+6z/nxsfTOkBCZV7wOI7Z6CyL1AcIGDX2EXJt2OTAWO6/hWayStBOB/0R/PQp2Zruosv1Npn9PeDKWCVJROX62ULl+n05PUP8n/CzTcBNXeoeBlLelxIKsvlAkfps4KHIHTWNyNT84U6zE1RBZdWscf+Kdr0XY7BGAwFGDW/ntTYv7a7gnHgy6o+03T7Ed74MgyZn4ym3O2n/2LiIVYmytA10V8wKKax+VZkpej4DNVENWtLrDDOqSwHYcDk3nWcRtduLbi1J+tuwBq4mCgTvZosX6eRVDPt9gJHL/HSpeZ37ce3ZlOcFi32GfDmGhFPPEEL7wuWiyRms6eBDn/mxODLNLpa2ETbjNX7aSPXscTLxCabUc0K39JKcMJNLHOhWnGJXG3nFWLZiaIw+8yZpO9BrKn1E+PqzSN6hTg24uDKIsgstHuxQ1Xu+TdnE7KJXv8JX8BtKCLSeRUr32A/Qo+hd96uT89h3TD34b9LguISnUdOvhOJIPcFQHPemceXpb1trshWx5+pydCEkRLWnWiQWsiNwFC7EQC81IqiFIJtYnIKXJqHz26YwBSnC+GqsXLxKoi9GeoHqbg3GUp+xBzmmc=","translations":{"en":{"changelog":"### Changed\n- **Nextcloud compatibility**: Now supports Nextcloud 31–35 (max-version raised from 34 to 35). No functional changes."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xleGlvSi9kYXNobGluay9tYWluL2RvY3MvaW1hZ2VzL2Rhc2hsaW5rLmdpZg==","smallThumbnail":"https://raw.githubusercontent.com/LexioJ/dashlink/main/docs/images/dashlink.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xleGlvSi9kYXNobGluay9tYWluL2RvY3MvaW1hZ2VzL2FkbWluLXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xleGlvSi9kYXNobGluay9tYWluL2RvY3MvaW1hZ2VzL2xpbmstc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DashLink","summary":"Dashboard widget for external website links","description":"DashLink provides a dashboard widget that displays external website links configured by administrators or users.\n\nCore Features:\n- Dashboard widget displaying external links (max 10 visible)\n- Custom icon/logo upload for each link (PNG, JPG, GIF, SVG, WebP up to 2MB)\n- Group-based visibility control (show links to specific user groups)\n- Three modular hover animation effects (Blur Overlay, 3D Card Flip, Slide Panel)\n- Responsive grid layout (1-2 columns) with full dark mode support\n- User-private links: users can create personal links visible only to themselves (admin-configurable)\n\nAdmin Panel:\n- Complete CRUD operations for link management\n- Drag & drop reordering with visual position badges\n- Export/Import links to/from JSON with icon URL support\n- Automatic icon downloading from external URLs during import\n- Duplicate detection on import (by title or URL)\n- Live preview panel with group filter simulation\n- Modern Nextcloud UI (toggle switches, modals, autocomplete pickers)\n- Toggle to enable/disable user-private links (disabled by default)\n- Configurable maximum links per user (1-50, default 10)"}},"isFeatured":false,"authors":[{"name":"DashLink Team","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhLdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMjI5MDk1MjEyWhcNMzYwNDA1MDk1MjEyWjATMREwDwYD\nVQQDDAhkYXNobGluazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJlH\n0ZdyGcMeNA7VEg9xtHVvjdQQ4EEN8yckUpm9fCpkOxip0G2qd8CBAwlwxV6sCG4u\noaMIY9tw2ZXgOWLED/UnkKIhfXTyklbDI+rvlJvaC/4FZrfTrG7gUmBPPkpEosHD\nwOP1QnkyM18il0YYYtKyx598ORp1jnnLrgPKqbNRwtt7DkUKKoukWGV5ZJVBL0nw\nAyGFdP5rOcQ2e7QO9D7ND4joLzFo0j/E+YR3GzYiA4Uchv+lCf2NAjKwAQOm8C+I\nmJWNjZDzBhRZuhxybqeFVFMaiOjf6D8RCvGM4ke4nWQSMwTMXz6LeQZNbIT6SI6R\nmoyaDIXDY7v9NsNHwGoa+uLskY+WFuM9bE8rxu4ytjrYkO+i+msY6/h4JiFsyOux\njY437321cI+08vSzbi7VeJ26JIoZHpFZNwKpCY8BQDg6j/S4yLJ7kDEm4hoIQQ9m\n062V/krSD/DCcHTJDOf+i+jbJ0YZXh7zV5/ZLG/VK9PLjFWFl0+F35vmcwHnbXf/\nMmKSyTmTsvMFOmlJvgTEKTNcuHLDmE7Yly4qnGF/kmAWgGg84gGfqm01lCiodEJi\nKdrwwhXGtZIC3dQsk8PSAFByNOlpLfZRA9j2jmBMRgFsIjY4vg5169sM09Cbs9rF\nRmSHQC3mBKHsweAW9RL3A9GSlPl5DwtxegWkwQbnAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEruHXn57gD/wfZUkwpjYr6Z2rqaD8sbF8r/Nhqi/6/fMPIoKA00u0YZ\nsEB36caHQcZolvgdxrTY0Fh9zXrcyWVSI5/NDj3/exSw/VZExDff/s3PMj+07ij+\nDKxYPXuDxz0QqP9gvypZCCWEzAPsFmeZGIU1/w5txWZZagmRHHI/wXAl40I+zj5e\nw5CIp7wBrcHulnN4Ayqn+iVOjCaKTxFPIWOH2MyIAUPLIRoqD9uc44x9yZzmlRVI\nAiKFzCHe7VV+EADPDOJhRP6NNhtrBvUksaUazW6U7xDrC7R+uzlGKlbJPGiQwtrZ\nBozdoQCG34Cr2Flrl/2h//YQlybFG5E=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"libresign","categories":["files","office","security","tools"],"userDocs":"https://docs.libresign.coop/user_manual","adminDocs":"https://docs.libresign.coop/admin_manual","developerDocs":"https://docs.libresign.coop/developer_manual","issueTracker":"https://github.com/LibreSign/libresign/issues","website":"https://github.com/LibreSign/libresign","created":"2021-03-05T00:32:31.049437Z","lastModified":"2026-10-22T03:15:22.899339Z","releases":[{"version":"15.0.8","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.8/libresign-v15.0.8.tar.gz","created":"2026-10-07T04:13:34.633000Z","licenses":["agpl"],"lastModified":"2026-10-07T04:13:34.701056Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"YTnfic3Ua7OI9lmDl49D51/Zq2XPyWCHPKOL2DuTNM8/sv6bk20shAzvI5K18nC77rB/HzjeaZG9O261YkXI0+FuCGkDmGm2tYk4cbvHdpr3sDhvVvpcl8FmfxZc2oS+xN0Oei4gEXtC8CiMROvR3JiLwzu5Wk0LOMgEos/1jZcEuGZH5UBhN1FvpX/Oagc54R2xtvsJao95U+ULx4++yMD3pZ/4/giGiENh2vsZjokwYPhd4nc0b/eaI2FrgOEM5wqIXbr7dN1Jod0D4F54uG9ogVpl4j+iywJbMCU2EGtoAY7sYUbjmCkg9p9Fm5eDLxf5uoptcl+HGVGfhKi0a7/uyc9abYnj50XeC3SvroQUW1oHlvtUM5OCSJo27HkosQkLLpUqAlPIIuy4VAKb0LjNYb7SQan67qB6hNv/A7zgXzSqPZk/iuJlHrKwFsvig6+dssVSw3dJVXlteROO54pyHAwWoGtmvQcjnh709OYRRj8HIjiccKa2SiRKgJG4gxXYUurYR8zHPVAreIdve1C8s+0t7l2x5pvWxGs8uI67tX1nIMKiuE6hYhFA8tAxn2DekKd7o2rAjoGo0bBfQ6W0g+hidNT+nOkgB6JiRZrUyDWWOez5UuJ5DptTGol2M2AUkGDdrolUO7jLfDNN0exSJgJZRB8gTOnTyzTgzrw=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Internal maintenance\n\n### Fixed\n- clarify request expiration and certificate validity fields\n  [#9035](https://github.com/LibreSign/libresign/pull/9035)"}},"signatureDigest":"sha512"},{"version":"15.0.8","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/nightly/libresign-nightly.tar.gz","created":"2026-10-22T03:15:22.932906Z","licenses":["agpl"],"lastModified":"2026-10-22T03:15:22.951547Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"oMSLU/ALs7vgi0mPMwLT+IpyfGalxQMDC21ZhpHGXlJd6Lik0wEdxOpCHjUcMs2GnwkzTJA/oVn6c66YAT6NmFcgcFpu6ZmJDVrIHo+UOHxCC4cU8vf3MHnvS98AtLLd4ZCfmvrD0GGac6tNr3DtE/87F8tydT+9F+CDRENtjFcdKOPrIBSfvs2onpnm3pRZBKLxPWea7NnmDNPyRml4GsexEqWh3CODmQ3IB6H/qYGhYlfnxgbwXV3jQdsgORlufrkv8VlkEuX+ZlegDPCd14mpAQMUSyFVEKc7Mpxu/FTGy92rKQ8cN2wwBNTVhHtP95V93ZHiFzWQGTUFy1p0T0eFHjfBGBrPOA1EspSOSRgW1Xk2s4ZWw6P6/TZTEJcWgtx5Ia5c/zbkIP/gJ3pGGUtf6zV0aFMpweUzFQZof8fvS5c76rDtlnRW/COZ/zgMafuJP/f4A+RWInafdZZqdRdjNLcQoQbyBFY5PN9lixDB00cT0c+EMRKe7HN1nH41Tn6N+BxqY52riA89mxtp8ICghW+Lw2HiAnwfUoq/Anru8UHI/uE/f2MPeGSrgYuq6WvvwRy/883KTo4F2oRF3PKDDG6HWWg5K8ZM7Pb0J5ZSRpQxHZzMQ3YFYY/J98uFSHMvsHXHa+CxiUesMCaVDvwlRSoNL3RehgN4Fe44nIQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"15.0.7","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.7/libresign-v15.0.7.tar.gz","created":"2026-10-05T15:36:01.799548Z","licenses":["agpl"],"lastModified":"2026-10-05T15:36:01.871946Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"h4Z0Xe+q2zNjAAokebe+N7xqNOPBsXxZEba2mNfDMqOxhjLVMF8giZfH3LrzDpzjmAcIR26zdWv1zfd4MSIo9Sku2HA/3c86t3rD9pxlte2igwFST2z/B0x0I75NOVFib+KFlYT7lG4F9M89BrEbk4GFQ5uMGpPesW8h5ZwMicMhDfD6h0DDWN64KaLCrhsV5d3zvdgt6YttlLEwVjnfv909dS3eFvjtfzfY0/jBWzK6qFp2TzeZl5CR0//Dw9L2QodqVLaqMoxc224hNbIuoLeg/zm1KQP9GOvv+p7+NcqUNnzm60zZlMXEHintVUBxW0PAKEcrdIN0wg8ibPMUH8qRSo6TB7pPHYFjiXK17LarNUHjKXW67uIiLIpUst09rK8KNWeXAtjkM9IjkHi/yslzRs5qW1s0vItbDHJFwMvvToCZ53P/naqMoDpH9xXaIrld7Jsf5P+Lh3a3Ab/ZxJ3JnrQwBxJlFrnnix1haNTCgf7Q3JNULMPwGBQKQbPR/qqChdLfZMbjYmgPKHivSMKo58ZvxOxqLqeRZ4IFA9oKWK+K2Kpli2+h25pueuf6JfWpEmTVFcc5MwIEgorWAIhCJIMKvL+xPy5farpryCyKSS3IA3K1HUy6IPKVyh+w3pZY5d2e9GySWrGYni8srcSmVOYlRyHUtqF24x5VgkM=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Internal maintenance\n- Update dependencies\n- Fix npm audit\n  [#9002](https://github.com/LibreSign/libresign/pull/9002)\n\n### Fixed\n- keep signature rejection frozen after signing starts\n  [#8993](https://github.com/LibreSign/libresign/pull/8993)\n- fail closed when request policy state is missing\n  [#9011](https://github.com/LibreSign/libresign/pull/9011)\n- isolate PFX and certificate validation state\n  [#9018](https://github.com/LibreSign/libresign/pull/9018)"}},"signatureDigest":"sha512"},{"version":"15.0.6","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.6/libresign-v15.0.6.tar.gz","created":"2026-10-01T14:29:08.415476Z","licenses":["agpl"],"lastModified":"2026-10-01T14:29:08.482021Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"DVIMTa0vwPKVC7mdgCXfy1rfheAkeFzzETfLU+8E2/71M57hWKEz/xCLnZ1S3Qr4GkP0XbPt9tj6C0G3NOehT6TdskBU3IH4okUScC508p+WkLCd/2T5303Ny63G9KfVTr4BNMZYVnr10Aq5wPFXplzRp59pClnscNxkceKbmiRHPjHg7jKVNvE+nmD23EDRgClyQ2BCKcdp7ChUebEGLhG9uuqj0I9QWJqnmvQBJL9+4jnRzqHUNVq2sHuVjbqekRzIeGrE8Ufs5ApIyFwlWATTcUzxutcsFPrs2q7jVzbM5scbbujorv30N05/5S0dfCuAQSpa9bGHVTyrqgFJ2MmU9BWG4WSbWOomUfyACxriy4tNFA/1Zyq52/SR1Q2gnvgM/gVReUuAbCc6judrodrdTJMjFFBEjRAYxWe6kQtF07vNYD3GUNo+clx3g64Usk1YZ4pubK5uGmiLnNAAG484/L9StiL/iJGLZjdP4AO8kWKCR1ewVNBxGJ5dJAPsAthyZqiLOC9h89RcgOIp22YjvMmVjXO5/OjjB28JmrFQpDaFzD+RJJ6f49428lxyo+SpPIr4NChg1qdGGHjHjYwjwaqCXlm+RVP5rwQLA/Dy3zNnLBrckb7z1oAVzeFbZcBYEZYUjA7ofpVic7IQ8oKrH5iH29spuVftrNgKv7A=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Internal maintenance\n\n### Fixed\n- isolate RequestSignatureTab debounced callbacks\n  [#8911](https://github.com/LibreSign/libresign/pull/8911)\n- use identify method friendly name getter in defaults\n  [#8921](https://github.com/LibreSign/libresign/pull/8921)"}},"signatureDigest":"sha512"},{"version":"15.0.5","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.5/libresign-v15.0.5.tar.gz","created":"2026-09-29T18:07:27.894944Z","licenses":["agpl"],"lastModified":"2026-09-29T18:07:27.958620Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"faCafICpxtM6uBO7dsLgDhwytemO0xneg3SdaSgiCb6Dksdnrz+dtjEAhJFQgUxL81TjAvmKra9AHlSkqbwCukE+ugMDNMXT801r97tocAAnRDWBSePG+XXMvduap0xMaaSJrXEaG06XHgRuFSmah9HdcnQIJM7MtU3oGUr698omWSE/apgLH9ZJkS1ErJELhTXXQSA/d3mGZ2SjoaoEE7Ly4mG2CAHB62NlKfWNhFVupkxRUZGYnOGNnqGSBSi+rgOPIoG7z+apzkmPXF9HzFqlwvqJJz0gfIpIXe+DhdnMSU8gKuXTfFCcpUYs+doVMn84ap2cw0JO/padjyGVzk/iQBm7cnP3Hr+5mYY6M5DRcGjc8QXun3j44WmphIz2qXwF8L8N9RaysKZWUIbvjq1Jzz6VjfQvr3kO5EGWQnODdC4uXklq1SwKrdy8XBRn+iLm3s+/DrcagWMMwrjzBxothfd1/mEjB9FOna4hKX0/pA2kFDDf3WTJwwguzxKITON67PnT8Ve2o/x4DhNkYVNFFFAEzLZoTURsi1FyZ9sJm4PvfZfyZq8+K1rulR1PiS9uGvYyV8IoCUaDhqwEDDoabLkPN+ssDsdt+NZisddhl8N1sCQ6mbP3wrwJYJeAbyjPzTFxo36Ra+lUwEAqgl+hCr/9J4MQg216bPHhOUg=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Internal maintenance\n- Update dependencies\n\n### Fixed\n- repair legacy metadata and stale distribution points\n  [#8675](https://github.com/LibreSign/libresign/pull/8675)\n- prevent account lookups from reusing another UUID\n  [#8723](https://github.com/LibreSign/libresign/pull/8723)\n- avoid argumentless signing jobs\n  [#8745](https://github.com/LibreSign/libresign/pull/8745)\n- skip JSignPdf when native engine is selected\n  [#8748](https://github.com/LibreSign/libresign/pull/8748)\n- validate downloaded visible element bytes (stable35)\n  [#8820](https://github.com/LibreSign/libresign/pull/8820)\n- include setup integrity metadata in release packages\n  [#8829](https://github.com/LibreSign/libresign/pull/8829)"}},"signatureDigest":"sha512"},{"version":"15.0.4","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.4/libresign-v15.0.4.tar.gz","created":"2026-09-23T02:04:26.331456Z","licenses":["agpl"],"lastModified":"2026-09-23T02:04:26.460814Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Tbk2j8Ny2We9UPhtZiPTuHMAG3Aml1ypre0n9PjY69gU16cuhcU84LbuRPFiD/iQbLHPdrVknqD5cbjk0ptNqXjZoHsIL2jgSaIE4rMcAPiVWRY5/1ixwr3H6ytUkpvwbbASy1heegJezoCqAfvRKhEcVS2PNRjbmNbpvn2jWY0NC+regTfqidN5vcJQQYg8bPQdR96d4eDlbDKAHxM64vBoJLQ2WQXH31TD4co3ILsDXpulzX9IbN073dkfRGiFU2f5RxgLsBaRPWtMxoSUV16nnrGuXYtA48mwSR9hRpJaF9S9vYqPZ1PydK4YNUPmbIYzySj8qfi21mNcmqBKea+anQ7tuekcaFmU0HT2rwK/g3NLE2dfEGrhM7G6GNCz8DjLZculda4iGkXLIKaU2116g1dPfTdwtMU/lpRDk37Z4K7sTJed0lSN2jNu2LpgRsPQWX6tirztJ7Pd0zggF802IGQpTg0DFJ8ZEY9sZf+AJUOroqDurnOkgU+L2rBARWJFZyNvO2GP/qObGVB7QJO6P1qAwb+Izo34fUXTfPCkLSFj1JDaak6ITx6mZjknN8g0SDjCiu8ZlQDMW+Khu2fTtKzlYVX//ZC7f/zabBifeYhtso2gStYY24ZCCNsfSHr7Yq1FK6ojuOVkQYEHe+ctQzOJyBq/AqxN6XfGfRU=","translations":{"en":{"changelog":"### Changed\n- Update translations\n- Internal maintenance\n\n### Fixed\n- stop nested develop/pdf fetches causing cURL 52 flakes\n  [#8487](https://github.com/LibreSign/libresign/pull/8487)\n- align file id authorization contract\n  [#8515](https://github.com/LibreSign/libresign/pull/8515)\n- prefer pull requests in nightly release notes\n  [#8567](https://github.com/LibreSign/libresign/pull/8567)"}},"signatureDigest":"sha512"},{"version":"15.0.3","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.3/libresign-v15.0.3.tar.gz","created":"2026-09-20T17:34:22.608524Z","licenses":["agpl"],"lastModified":"2026-09-20T17:34:22.684615Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"ueZ0salkMPVbBEZudFf2ygTs/doFDcGE+zsYXI1ivPzgIV+aVUnRkG2K8PHAz1SDXXIr9XiIt+rvrb6xmAydm5Mb7DviKarjJCvXB8ltp4upiWAq8ASoiC5qestWlvNT9HqpQVyASFnGGlSxd4vQXUn0LeKA4hQ/65Aj40M5u7Tro5eqJfUFvfyJToRXwTiRXO3VZMXetUogM0QQTmd4MBNhRVKXIdsD4mb/pZQg2mWMm0QFz4BPxNNIrzFZBJBAoC2O8P9BUGMME1Rhsz8DiknHLprn84I8qM4hrB1V8tw+d5taiCuke96YvtffrVdJOjKxJjXNfH5t2X2TyJH7lfPpyn5enYMgA0uoz3nVzHLCnwD7N1jpwIeU4Fmj8N0yaF47YV1SL3yq/N8V8BZ4kak271ECDquRzr5y5Efcg7tkhKkpmmdqiNHqOInqMq8ojAov3Lvndhy7P7xmGl2vPyw1wF2GHquvTk4eXAPcPdwBMkvgyaY2m5p3rB6YMcH9+MNVXOCLen5aKL9G2Dw2F85x64JdpIKfCGit3BkwmADlQY8WUys2taDhPWSix/DEfyMD8vL3dqrhAIanE4GaDuuAl2wasEh7b2AJ6/Sq0nXWdQkJ2ewyinJ9td9R4toCBT1cUBJRRZW+VrQ22sOpFKV1ROOIgy4MoM55mUqE84s=","translations":{"en":{"changelog":"💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign\n\n🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop\n\n### Changed\n- update translations\n\n### Fixed\n- use the installed JSignPdf release version as the single source of truth [#8470](https://github.com/LibreSign/libresign/pull/8470)"}},"signatureDigest":"sha512"},{"version":"15.0.2","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.2/libresign-v15.0.2.tar.gz","created":"2026-09-19T23:38:49.863189Z","licenses":["agpl"],"lastModified":"2026-09-19T23:38:49.943250Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"dLR4xPueTp581Gy38CYFbREBHvpAa2anKkcBpWnvBR4VSL96bUqCPsa6bOir9BWELFKqbSzd7oI8dHM3i+RzSAMbQHgJHPGyqxAduPCDVEPJQqhowp8aDX9Cr4XbRNjoIZ2CVHRswodiJ8Zdcy7wNvWsDJoAU39u9eXb35IIu0xgUT+lLrCSk7bEsZuOlOoAWjQ16RLHM3TQpbJ/Tpmf4lQZf1nP9yhqBYX48eHwoGXNQ/0Yq+PPjpqYpeI+WCxmygdse4BSgHAm/am1tzTcJjozoBBbZFZZuRjQlWb4BcCGZWbeD931F5h2YD/nJUU6KPFjR2mPTV+d4E9lx5fEVl/6nLfv0rhg019ngIDZS6LKIFDA6lhTvd+F/d6bohU+yIh4WxHszuYV1vnppCtt/oK+Z7wmPB28TkyOUPrZyoCVs8Wg6aU8L0TwGkObBJKUFu7FLaUNJ54umdhIySDvZsYfQ3HezMX+1LpKy9gAPfb+Nvk7RuSqe9KHwr/CIU2/24fOjcjY+++4P+VKnef68ffSuXBH8iKIirZDM7aFVjALSqWWpELgFC5neDybfEEMrBPhTnCW3ZyaWWRN4RS7ARIgJUHX5bwoSu5n9JTa6UBzCx8P33nqi1F7cLlqJkSlV+0iFRM45x35COsO4tKwqwyAtynhw+7+/HdirAVoQ+U=","translations":{"en":{"changelog":"💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign\n\n🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop\n\n### Fixed\n- fix identification documents migration for typed app config values [#8457](https://github.com/LibreSign/libresign/pull/8457)"}},"signatureDigest":"sha512"},{"version":"15.0.1","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.1/libresign-v15.0.1.tar.gz","created":"2026-09-19T21:01:13.745839Z","licenses":["agpl"],"lastModified":"2026-09-19T21:01:13.848515Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"DCjUjatBmLdpTAwlGiHuKtC4lXQGTAvLrNvHNUSXs4j5G0cgmBt9c1cHBrDtKydUJHg8QkNnPgoCij9g8T+kbmNPcPVa9uYI2mUvJtIde146Ha+wpV940ssMdEj/JKhPx08sw2FUV92L4oviaYXEDe9X3MMmvT9OEtiK4oisYY8SBQat5U/Y+sxffz9cs9btC8EFwY2A+1EICEq2ko756kNy+CMUY2lLo0AHIjYG+xd1KhVP00QakasjJJg0HepRvzJcNmUiaqj38Bp9ioU7clXxWpqLuflO/7CqdGHBeWQtcrfciW42/SKVKWmJETpc805XtRjDwFKcPSaJSP+OMqS3cDJzxj8Qrmp/Fa1Nz5xUFk36e6/jz/Ho5XonPnBsJVNmPWD94PzfgfndWZ1mYQWAzLfftcFyHdLVq+64uLuQKZJh73oV2iqpwfumcw4TYYKb621GJWriG7Q4kY1/XbUhwIUbQ4FsdpRiiJtdjr+sxXG3zjH7+eF7+M1S3p3m0aihY1+Wa0KnXPhVidPXmKRn1YZhP1zlP8wjTyuJce5Wr3YLjEHTFur/rSKMGB/DXkK12d5V8GyHPnVKcJcDdUdie/BzKOoWhkrySMHDQnZA03ddeU7c0QpoVUcFnr0E+dbxYnuZulShGQiFJvvNqBP6nQR6OIclaQOgefG2Rlg=","translations":{"en":{"changelog":"💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign\n\n🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop\n\n### Fixed\n- fix binary integrity validation for CA-signed setup certificates [#8449](https://github.com/LibreSign/libresign/pull/8449)"}},"signatureDigest":"sha512"},{"version":"15.0.0","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreSign/libresign/releases/download/v15.0.0/libresign-v15.0.0.tar.gz","created":"2026-09-19T17:09:14.256050Z","licenses":["agpl"],"lastModified":"2026-09-19T17:09:14.347735Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"USvhR8wPJfeqNqmzIkrzbpPTotXIYdrRiXcHtOJGyjoOvxs6N38fsgcn+6BZ55cAX/6C+oyJWw2Epoxku6HLldvZvZ0vmcYtBnSmzazI9gYzzeW3HmA6GTA2UfisJFpRqHdW/P0P2p4IdWz70aRA/kAQ49XqFxrvUfpCP7NP3VPuKV0tTpf4gXtCOQLJfZdV14QsWm1eYKZFMAgf3njOM+ka18va1Gv4UZcvmA0oYS/aJnApL7jiwV3aS7qUZJPtl6/Fa8yUVfSBHCXPGedOFyP9xF9eZlh+B+inJscU/RUQ1cG93f16lKuuovG6L+w3rlhilKGLHA4a+LuGGB7jqKoFouESqnuB7gYLctaaALJFHe7DGA/P80KdmWqIcY93KJjW1FQwnseboIcNK657fiWpammt08J+7aV+2grfb7AmRnGEUxDbQcDWgowOaO2wrfacuPaW76FIVIVFk7HT8SzCpJlPgAFy8axVqalGW3Vhd2rS8z5zEKYRwva697+pL+MhOBUqrU8r/qU62mOwmTaO+Y2KNZDLC0TxKMlwTDclU0MbUcOKeEp6qMFP1B+EWFldKHt3HoktuD8M+BIK25Fkz48XWhl/Ei3T3H05SOXzVERfsmhSdr9ilhPcxS7qMeQloPjB/75uGkIf9iTTKv61HPgBjlmUDvC/1CLR//w=","translations":{"en":{"changelog":"💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign\n\n🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop\n\n### Added\n- add signer geolocation support [#8221](https://github.com/LibreSign/libresign/pull/8221) [#8359](https://github.com/LibreSign/libresign/pull/8359)\n- add `mail_sender_strategy` policy to send notifications as the requester [#8206](https://github.com/LibreSign/libresign/pull/8206)\n- add backend support for signature rejection [#8319](https://github.com/LibreSign/libresign/pull/8319)\n- allow administrators to choose the TSA timestamp-query hash algorithm [#8283](https://github.com/LibreSign/libresign/pull/8283)\n- update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 [#8260](https://github.com/LibreSign/libresign/pull/8260)\n\n### Changed\n- update translations\n- bump dependencies\n\n### Fixed\n- improve external PDF signature validation [#8227](https://github.com/LibreSign/libresign/pull/8227) [#8252](https://github.com/LibreSign/libresign/pull/8252)\n- improve TSA failure diagnostics [#8279](https://github.com/LibreSign/libresign/pull/8279)\n- detect when signer search has more results [#8290](https://github.com/LibreSign/libresign/pull/8290)\n- enforce envelope ownership when adding files [#8318](https://github.com/LibreSign/libresign/pull/8318)\n- populate signer visible elements in validation responses [#8352](https://github.com/LibreSign/libresign/pull/8352)\n- store identification documents of external signers under the file owner [#8372](https://github.com/LibreSign/libresign/pull/8372)\n- stop overriding the pdf-elements worker [#8387](https://github.com/LibreSign/libresign/pull/8387)\n- use the approver's own identity when signing an identification document [#8392](https://github.com/LibreSign/libresign/pull/8392)\n- accept string node IDs from the Files sidebar when requesting a signature [#8395](https://github.com/LibreSign/libresign/pull/8395)\n- stop deleting LibreSign appdata on every update [#8428](https://github.com/LibreSign/libresign/pull/8428)\n- fix external page layout [#8437](https://github.com/LibreSign/libresign/pull/8437)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlU2lnbi9saWJyZXNpZ24vbWFpbi9pbWcvc2NyZWVuc2hvdC9yZXF1ZXN0LXNpZ25hdHVyZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlU2lnbi9saWJyZXNpZ24vbWFpbi9pbWcvc2NyZWVuc2hvdC9wcmVzZW50YXRpb24uZ2lm","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"LibreSign","summary":"Control document signing workflows inside Nextcloud","description":"**LibreSign helps organizations manage document signing inside Nextcloud.**\n\nIt is built for teams that need clear signing rules, traceable actions, and workflows that follow internal processes and legal requirements.\n\nLibreSign has been a verified [Digital Public Good](https://digitalpublicgoods.net/r/libresign) since 2025.\n\n**What LibreSign enables**\n\n- Define signing order and signer roles\n- Support internal and external signers\n- Keep a traceable record of requests and validations\n- Use digital certificates for compliant signing workflows\n- Validate documents using QR codes\n- Work directly with Nextcloud files and users\n- Integrate signing with other systems through APIs\n\n**Support LibreSign**\nIf your organization uses LibreSign, support its development:\n\n[![Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/libresign)\n\nFor enterprise support, contact LibreCode:\nhttps://libresign.coop"}},"isFeatured":false,"authors":[{"name":"LibreCode","mail":"contact@librecode.coop","homepage":"https://librecode.coop"}],"ratingRecent":0.5,"ratingOverall":0.9,"ratingNumRecent":0,"ratingNumOverall":15,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhF4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMzA0MTk1NzQ1WhcNMzEwNjEwMTk1NzQ1WjAUMRIwEAYD\nVQQDDAlsaWJyZXNpZ24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDq\nNU7W4kX445A4yMlADzxuNCouzzIYJBDRZXrKuz5OtbApKY5mPqfXGEpc8N04+eAJ\n5EJz5f9r0WxVcWGtyFN1sPObAsoMGyhOzNvAGaveL40xBsc7LdQgCR2JraInHH/e\nMNtkgHQcWL5nihqYIEWvMeVt3uMTiI05F3SjW4+u/NaRRw/5y5l5W4Fy6VPzPW0P\n22Wmllkb3BFG16C6hHG/+qE8pf12AcxQZ3B21MbPkHjOjxSz6NS74jGIVRtcn6dO\ny26XZ1XoeNUPZDyLFluYCBw5fgTIIU+721mkkA7EjP9RighygVGk4WII7l9Pc+Sf\nNwcxQykNdEnZ67ETSr4v1CpArAeXZ2dEZ/b9QqI/MCGw0Aa/Pv2vDc8McFFBBTrt\nPDvn0TG0RdfuFAkYdOpFjH3urGUEvcJ/+lFvRVUu203PHLfx72zNI3XVXui/slf3\noK4LsQrbvj+heYnNXyr5UQAzgXW9JDiXE0sBxfzUz2XKlbuuNpLLE9EkFFQ5LyZJ\nG3l1f/yO3CvGLancbhCvRjo6Lts38GjmkWQT+0BNBpwYhoAd4wopnMYphI9qldbp\n1XPWBqb+0w1p6bkIHmci8D/whC0/BEHoCs+DpRciRZM0FqW7frZcEGeO6YOoDWJ2\nCAhwXGodT4iV8RtVUC6/arGGUal/YqBk2M/9zK6eMwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBWMFEq++xjRqFsWNPpoTtkfuj0PUajfRHBGzSUXccz0hw8kdR4C2xx\nhkYlJ9kqyWNxO1h4urQL5cM1sbl4xf5CI9xf7iuOcB06/kn3umLmruRec32WG2bS\nqAWnnljGCX4sVY8oSbdaUopXE9o9pl966XQ5858c+w9ydkjMDnfOmzrCpgHrJefN\n94hIttjJsV8te15VcKoNUxsrZBlPIrpueUQRc13Z9CWp8eRXl4J4CZfVFSY7T4ho\nBlNtdPas2R9HJJDYEGS+fg5dfLLvTL4qPSxLjm753pJprfrDxfE9qQl0xtIe8aaw\nKFJ/AK3JTRBkBwsgAE5OYEXTUV9oNS2j\n-----END CERTIFICATE-----","discussion":"https://t.me/libresign"},{"id":"roomvox","categories":["office","organization"],"userDocs":"https://github.com/nextcloud/roomvox/blob/main/docs/user/overview.md","adminDocs":"https://github.com/nextcloud/roomvox/blob/main/docs/admin/guide.md","developerDocs":"https://github.com/nextcloud/roomvox/blob/main/docs/architecture/overview.md","issueTracker":"https://github.com/nextcloud/roomvox/issues","website":"https://voxcloud.nl","created":"2026-02-19T12:28:49.462106Z","lastModified":"2026-10-11T08:55:50.404807Z","releases":[{"version":"1.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/roomvox/releases/download/v1.6.1/roomvox-1.6.1.tar.gz","created":"2026-10-11T08:55:50.396459Z","licenses":["agpl"],"lastModified":"2026-10-11T08:55:50.442546Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"NqQQ6OEk5Ev9l8WoWjX2SwxG05UOqs4el+k+khaihc2J9c4CT08M5zL+8Y6ZQjvFYGBEfaqrokshg+6BYMVD9aPZ0Xgxo1BrZVUnMZpxaLXvnPBiOwec83oUR2X2K6R9qVEd3eKlsZlsZtI6ue8+il/czQMLgmwJuF/M6u55cVC44loq9M1bP+8Vqo9x1ddTYZsxf5zM1fhw3nFA6izyGu4RV+LpmVLBSboQcn5E5rdbReu7VFhZBVd8PAtU7c2hZRWNjOlzWqMMZbRkuWu9tyD4d5XUTp/dfMyikzqBahV7zX7j7fFkwB0KiEfoHNpevnFITfaUp7sbtwa5lCM+f5vGJ9Qaihp+P/tTQ8VcSvZ3m/TFcqTEg/cLl+QAEdmQGF+yYOhRbJiUTgDQnZXKhAfMty2fi+cQp3wK7b3jIbZiCCy+bf3MMGBsLZCnF3/Qn4h7ixX34b8hj2qc9z+v09Tdec3u4Ts4LhM4iTZHal11WXEzrTQqY+OIf9p38rUcI8+H7gv60csk9bzYlm0hds7TGByb4Edh395afAzVNaMvwY6lB0vn0zOlaZERN5SsXAfRLCsSgxCpAFpwqsxxt9pZ7D+H1SLW1lRFYF9kLCtjr70R0imktYX3Oa5mCVZpmqpHmZ5d6uDJEoG/C1ZwUnB2p63nbyH8z436NGnt400=","translations":{"en":{"changelog":"### Security\n\n- **Room names, booking titles and server messages could run script in another person's browser.** Three places treated text as HTML: the error message about a room address that another room already uses, the error messages that show the server's reason, and the room timeline, which shows each room's name and each booking's title. A room manager could name a room so that it ran script when an administrator later saw that message, and anyone who can book a room could do the same with a booking title in the timeline. Names and titles are now escaped before they reach these places, so they show exactly as typed and never as markup. Update from 1.6.0 is recommended.\n\n### Fixed\n\n- **The documentation no longer promises room availability in Outlook's Scheduling Assistant.** It said that Outlook supports CalDAV resources through a CalDAV account and that a room \"will respond with its availability\" in the Scheduling Assistant. Outlook has no built-in CalDAV support and shows free/busy only from Exchange or from an Internet Free/Busy (IFB) service, which RoomVox does not provide; IFB add-ins such as NC Connector look addresses up in Nextcloud's system address book, which lists users but not rooms. The Outlook pages now describe booking through a CalDAV add-in such as CalDAV Synchronizer, and the troubleshooting page explains why the Scheduling Assistant shows no availability for rooms."}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/roomvox/releases/download/v1.6.0/roomvox-1.6.0.tar.gz","created":"2026-10-03T06:34:53.777082Z","licenses":["agpl"],"lastModified":"2026-10-03T06:34:53.830603Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"WYs0V4FnP5hqo1N8aZrg47grtsz1uOW//3nAYQ0hwSMC8d1yyPDOQpxPPbtJAiHHJDgFzP3fXMhK+FwWRKPas1L1/aHmVQK5VgepjzrIvUrhWPcXHOFUv6rW5h2syBs+8pezBeC0GfgYVN+Qbkd+qWe+H9nej4/bEdHg+s/+FsAPxk87ZHdYybG3EzPd6oGeMxxpM7QBQjZgyRXz0vzSwcvzmzTz5qPYuQ6xMVkjJjWYeTgZ8J3UKv3lCuaL2AhJGoEA54iLd6nPSWAB/edfdONuGwOOr9MTpdQbXz7Ydu1rfsBCStKavJIntCTZL/s+8edQtp5DP2TjliIo3MF3CdUBUFpLIf10b7OV+1NmSFqBjMfSyth/EVSC5ENQaysC7cETLGFqUjub8ZXTh0WNf+f4hmuWbbJszseOtCjcRqfZpckAdXsBK7Q/HYhCvZmUsNt3nOUGUt7IWpOuBfLu7eChij5Iik/ScopCojPvXdxP4zwR5iAolVxzzrBqYaryPGf0qeUqUNEWkxq2zM05PMz2veQ2tXv5RN9LzXipOHQKdBn/aUNLVpD/iY8ACBg28E4uew/9zBUtlYqRwaqNIR8yR3Oujj8pJhlXmPihBb/nM75eE5zh6WuOqpmta9amSGj4rzgfQKRfvXktXN5Nb81G+8i49BU6a7I3hnA0zZY=","translations":{"en":{"changelog":"> **Upgrading.** Usage statistics are now off until an administrator agrees. The upgrade switches them off on every installation that did not make a recorded choice and asks each administrator once, through the Nextcloud notification bell (see *Changed*). The upgrade also moves bookings out of the calendar RoomVox used to create for each room into the calendar Nextcloud keeps for it; nothing needs to be done by hand.\n\n> **Translations.** RoomVox is still waiting for its place on the Nextcloud community translation platform ([nextcloud/docker-ci#986](https://github.com/nextcloud/docker-ci/issues/986)), so strings added or changed since August are not translated yet: 86 of 508 in Dutch and 182 in German and French fall back to English. Parts of the admin pages, the usage-statistics question and some notification emails therefore appear in English. Translations arrive in later releases without any configuration change.\n\n### Added\n\n- **The Public API can be called from web pages on other origins** ([#33](https://github.com/nextcloud/RoomVox/pull/33), contributed by JPromi): browser-based room displays and dashboards were blocked by CORS, because the browser's preflight request carried no token and responses had no `Access-Control-Allow-Origin` header. `OPTIONS /api/v1/...` now answers without a token, and every v1 response, including a rejected token, allows any origin. That is safe because the API authenticates with Bearer tokens only, never with cookies; the internal API stays same-origin.\n\n- **The user and administrator guides are available in Dutch**: the 16 pages that were still stubs pointing to the English text (FAQ, troubleshooting, email configuration, permissions, room management, import and export, settings and others) are now translated. The API reference documents all 57 routes with the response shapes the code actually returns, and the documented Nextcloud compatibility reads 32 to 35, as `info.xml` has declared since 1.5.0.\n\n### Fixed\n\n- **The room export answered a non-administrator with an empty file** ([#42](https://github.com/nextcloud/RoomVox/issues/42)): `GET /api/rooms/export` returned HTTP 200 and an empty `error.csv`, so a missing permission looked like an instance without rooms. It now refuses with 403 and the same error body as the import endpoints.\n\n- **Room names with special characters were shown escaped**: an action menu read \"Actions for room Meeting &amp;amp; Training\" to a screen reader, and a name containing something tag-like was rewritten, also in the conflict message of the room-address check and in the CSV import preview. Room names are now inserted as plain text; nothing in the app renders translations as HTML.\n\n- **The room list's column headings ran into each other** in longer languages (\"Auto-accepteren\" over \"Status\" in Dutch), and the actions column was narrower than its menu button, so an ellipsis showed beside it. Headings now wrap inside their column and the actions column fits its button. The tab rows keep every label inside its tab in any language and wrap onto a second row when they no longer fit.\n\n- **The Public API rejected every booking and reported every room as unavailable when booking hours were restricted** ([#32](https://github.com/nextcloud/RoomVox/issues/32)): availability rules store weekdays as integers `0`-`6` with `0` = Sunday — the format the admin interface writes and the one the CalDAV scheduling path reads. The Public API derived the weekday as a lowercase abbreviation (`\"mon\"`) instead and compared that against those integers, which cannot match on PHP 8. Any room with \"Restrict booking hours\" enabled was therefore treated as outside its allowed hours at every moment: `GET /api/v1/rooms/{id}/status` answered `unavailable` around the clock, the availability endpoint reported no open window, and `POST /api/v1/rooms/{id}/bookings` refused bookings that were well inside the configured hours. Bookings made through a normal calendar client were never affected, which is why this went unnoticed: that path does the comparison correctly. All three comparison sites now share a single matcher that reads the weekday as an integer. Values that a REST client stored as strings (`[\"1\",\"2\"]`) are accepted as the same weekdays, while non-numeric values no longer coerce to `0` and silently mean Sunday.\n\n- **Bookings made through the Public API with a UTC offset were stored at the wrong time** ([#45](https://github.com/nextcloud/RoomVox/issues/45)): a booking requested as `09:00+02:00` was written to the calendar as `09:00Z`, so Nextcloud Calendar, the booking overview and all feeds showed it two hours late. The API response and the manager's approval mail both repeated the requested time, so a manager approved 09:00 while the room was blocked at 11:00, and the conflict check ran against a different slot than the one that was stored. Times are now converted to UTC before they are written. Booking hours are also checked in the instance timezone (`default_timezone`) instead of in whatever offset the client sent, so `07:00Z` and `09:00+02:00` are treated the same; previously no input was handled correctly by both the storage and the hours check. `GET /api/v1/rooms/{id}/status` reads \"now\" and \"today\" in that timezone as well, where it used to evaluate booking hours against UTC. `GET /api/v1/rooms/{id}/availability` does the same: its slots are now local times, so a slot it reports as free is one `POST /bookings` accepts. A booking lying entirely outside the day's booking hours no longer produces an inverted slot that pushed the free window back, floating bookings (no timezone) keep their clock time, and booking lists are sorted by actual start time rather than by the text of the timestamp, which put a `07:00+00:00` booking before an earlier `08:30+02:00` one.\n\n- **Notification emails showed times in the zone the event was stored in** ([#49](https://github.com/nextcloud/RoomVox/issues/49)): an event stored in UTC was confirmed as 11:30–14:30 while Nextcloud Calendar showed the booked 13:30–16:30 in Vienna. After the fix for #45 every Public API booking is stored in UTC, so the two had to ship together. Mails now show times in the instance timezone and name it, e.g. `13:30 – 16:30 (Europe/Vienna)`. Floating times are printed as stored. All-day events are no longer converted either, since that would move them onto the previous day west of UTC; they are now shown as dates (`Monday, October 5, 2026`, or `Monday, October 5, 2026 – Wednesday, October 7, 2026` for several days) instead of the meaningless `00:00 – 00:00` they had before.\n\n- **Permissions of deleted accounts and groups are now removed**: permissions store bare user and group ids, and nothing cleared them when the account or group was deleted. A deleted account stayed listed in the permission editor, indistinguishable from a live one. A deleted group was worse: the room kept listing it as manager while it resolved to nobody, so approval requests quietly reached no one. RoomVox now listens for account and group deletion and removes the entries from room and room-group permissions. A group that merely fails to resolve, such as an unreachable LDAP backend, is left alone. When a deletion leaves a room with no manager at all, counting its room group's managers as well, the log names that room.\n\n- **Two rooms can no longer share an email address**: a room's address is its scheduling identity, which iMIP invitations, replies and the Exchange link are keyed on, and nothing stopped two rooms from holding the same one. Creating a room on a taken address, or changing a room to one, is now refused. The editor says which room holds it and keeps the form open. A CSV with two rows on one address flags the second row. Rooms that already shared an address stay editable as long as the address is left unchanged. A room created without an address gets `{id}@roomvox.local`, and that address is now kept unique as well.\n\n- **A room without a calendar was reported as free** ([#44](https://github.com/nextcloud/RoomVox/issues/44)): deleting a room only soft-deleted its calendar, which kept the calendar's slot in the database, so recreating a room with the same id failed with a 500 and left the room without a calendar. `GET /api/v1/rooms/{id}/status` then answered `free` whatever was booked, and the conflict check let every booking through. Room calendars are now deleted permanently, and a room whose calendar cannot be created is removed again instead of being left behind. A room that still has no calendar is reported as `unavailable` with the new field `reason: \"no_calendar\"`, offers no free slots in `/availability`, refuses API bookings with a 422 that names the cause, and fails the conflict check closed. `reason` is also `outside_booking_hours` when a room is unavailable because of its booking hours, and `null` otherwise.\n\n- **`POST /api/rooms` ignored `groupId`** ([#41](https://github.com/nextcloud/RoomVox/issues/41)): the create endpoint copied an explicit list of request fields into the new room, and `groupId` was not on it, so every room was created without a room group whatever the request said. No error was returned. This also affected the admin interface: a room group picked in the editor while creating a room was dropped, and the room showed up ungrouped. `groupId` is now passed through on create, as it already was on update.\n\n- **Recurring bookings were only checked on their first date** ([#46](https://github.com/nextcloud/RoomVox/issues/46)): a series booked from a calendar app was checked against existing bookings and the booking hours with its first occurrence only, so a later date could double-book the room. With approval enabled it was worse: the manager approved the whole series without any sign that some dates collided. Every occurrence from now on is now checked, including exceptions moved to another time and dates removed with EXDATE; a series with an end is checked to its end, one without up to the booking horizon or a year ahead. Exchange-linked rooms are checked with one query for the whole series instead of one per date, and that query now sends its time span in UTC. If any date conflicts or falls outside the booking hours, the whole series is declined and the email lists those dates, so the organizer can exclude them and book again.\n\n- **Deactivating a room deleted all of its bookings**: RoomVox stopped announcing an inactive room to Nextcloud, which treats a room that disappears as deleted and permanently deletes its calendar, so every booking in it was gone the moment the room was saved as inactive, and the room came back empty when reactivated. Inactive rooms now stay known to Nextcloud and keep their calendar and bookings. They are hidden from the room picker in calendar apps and refuse new bookings everywhere: calendar invitations are declined, and the Public API and the RoomVox interface answer 422. `GET /api/v1/rooms/{id}/status` reports them as `unavailable` with `reason: \"inactive\"`.\n\n- **Bookings could end up in a calendar RoomVox no longer read**: besides the calendar Nextcloud keeps for every room resource, RoomVox provisioned a calendar of its own and wrote bookings there until Nextcloud's appeared, typically within the hour. From then on RoomVox read only Nextcloud's, so earlier bookings disappeared from status, availability and the conflict check, and their slots could be booked again. A room now has one calendar, the one Nextcloud creates for it, which RoomVox asks Nextcloud to create as soon as the room is. On upgrade, a repair step moves any bookings left in the old calendars into the room calendars and removes the old calendars.\n\n### Changed\n\n- **English text follows American spelling**: \"canceled\", \"license\" and \"organization\" replace \"cancelled\", \"licence\" and \"organisation\" in 14 strings, mostly the cancellation mails, so the Support pane no longer shows both spellings. Like every string added since August, they are untranslated in this release (see *Translations* above). Nothing else changes; iCalendar's `CANCELLED` status is untouched.\n\n- **Usage statistics are off until an administrator agrees**: RoomVox used to send a daily usage report to `licenses.voxcloud.nl` by default. It now sends nothing until an administrator switches it on. The upgrade switches every installation off whose \"on\" was not a recorded choice: up to 1.5.0 the admin pane saved the usage-statistics setting along with every change to the general settings, so an \"on\" from those versions cannot be told apart from a deliberate one. Those administrators are asked again; an \"on\" given through the new question or switch is kept. After an install or upgrade every administrator is asked once through the Nextcloud notification bell, with three equal answers: *Share usage statistics*, *Not now* (asked again with the next version) and *Never ask again*. The question goes to administrators only.\n\n- **The usage report is smaller, and the admin pane shows exactly what it contains**: the report now carries only the fields allowed by the VoxCloud telemetry rules (design `TELEMETRY.md` 1.1.0): an installation hash, the field-list version, the RoomVox, Nextcloud and PHP (`major.minor`) versions, user counts, whether the server has a Nextcloud subscription, the country, and counts of rooms, room groups and room features. The subscription key, the Extended Support flag, database, operating system, web server, Docker, language and time zone, room types, facilities, capacity, availability rules and the always-zero booking count are no longer sent. `version` is now `appVersion`, a failed user count is sent as `null` instead of `1`, and the country is worked out on the server from the default phone region or the default time zone, of which only the two-letter code is sent. The Support pane lists every field with what it is used for, from the same definition the report is built from, names where the data goes, and mentions the separate licence-usage report that runs while a subscription key is entered. \"Send report now\" says \"Already sent recently\" instead of showing an error when a report went out within the hour. There is now one switch, on the Support tab; the second copy on the Statistics tab is gone, and the general settings endpoint no longer reads or writes it.\n\n- **Where the usage statistics stand**: checked on a test server against `TELEMETRY.md` 1.1.0. With statistics off, nothing is sent: the daily job skips and *Send report now* refuses. With them on, one report goes out carrying exactly the 16 listed fields and no other headers than `User-Agent` and `Content-Type`; a second report within the hour is held back. The receiving side was updated on 2026-10-02 to match: it reads `appVersion`, verifies a Nextcloud subscription by the installation hash instead of the subscription key, no longer guesses the country from the sender's IP address or time zone, and no longer keeps the sender's IP address in its access logs for these reports. Logs from before that date still hold addresses and expire after four weeks. Figures that earlier RoomVox versions sent, such as the server details and the room facility names, stay stored at `licenses.voxcloud.nl` for now; this update stops sending them but does not delete them.\n\n- **The Statistics and Support tabs follow the VoxCloud layout**: *Statistics* shows only figures counted on this server (total rooms, active rooms, room groups) as tiles with theme icons instead of emoji, and no longer carries an *About* block. *Support* is now four sections in a fixed order: *About RoomVox*; *Subscription*, with what a subscription includes, how to get one through Nextcloud, the number of named users, the subscription notice and the key field; *Usage statistics*; and *Help*, with links to the documentation, the issue tracker and the other Vox apps. The list of what the usage statistics contain is folded away behind a line that names the number of fields, and the consent notification now links straight to it, opened. The list's labels sit above their purpose instead of running into it, and the subscription notice is no longer shown twice on the Support tab.\n\n- **The tabs on the admin and personal pages are one switcher with an icon on every tab**: both rows were hand-built buttons. They are now a named radio group, so a screen reader announces the row and the active tab, and each tab carries an icon for what is behind it. On a narrow screen the tabs wrap instead of pushing the page sideways. The room count left the tab (the room list counts per group); waiting approvals stay visible in their tab label.\n\n- **The Import / export and Settings tabs use Nextcloud's own form controls**: their text fields, password field and selects were hand-built and are now Nextcloud's components, each with a visible label; behaviour and the moment of saving are unchanged. Notices are Nextcloud note cards, the import result tiles use the theme's success, warning and error colours, an error message no longer used a background colour as its text colour, and \"General\", \"Room types\" and \"Facilities\" are translatable.\n\n- **The admin interface follows the Nextcloud theme**: status badges, licence messages and calendar events used fixed colours that stayed light in dark mode. They now use Nextcloud's theme colours, which keep their contrast in both themes. The room table keeps a readable width on narrow screens and scrolls inside its own card instead of squeezing the room name into a few dozen pixels. Every row's action menu now has an accessible name with the room or group name, and the facilities switches are grouped so screen readers announce the group.\n\n### Security\n\n- **No known vulnerabilities in the JavaScript dependencies**: the five dependency updates proposed for the GitHub repository ([#36](https://github.com/nextcloud/RoomVox/pull/36)-[#40](https://github.com/nextcloud/RoomVox/pull/40)) are applied, plus `npm audit fix` within the declared version ranges. `npm audit` goes from 21 vulnerabilities (13 high) to 0; `composer audit` reports nothing. The flagged packages are build tools; none of them ships in the app's JavaScript."}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/roomvox/releases/download/v1.5.0/roomvox-1.5.0.tar.gz","created":"2026-09-14T07:11:29.409905Z","licenses":["agpl"],"lastModified":"2026-09-14T07:11:29.496185Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"BFR7bAPkPEiAXmrxd6o66OqwnhC+/+Alait0n1p1QJPYh2cHMUdeIL4tAJGNmYKZdZfPexRC3UboAGrGaS+PmoROUhaDQvCumq76ZhfUw4iOCHT3jD8va6Hq2JWTU03fic1GL/9CS6yYfbaFeLp+TjE4eU6ul2Bj6ceZflidtUTcjSkbmNGpxPV1Xy7TI9ImR73Y070ClN+TwMwbjHntRXuMl3xvb3gfweLImORf7H4L1zLFeUfeNNCZqhG0i/mv1188FrwvzjRlQh7UnIwIDOWhanNmgIJoEALi+mQjnl+dJWA4JS7DOHrISY45BcYL9IjcEIT40UBmQ3lzOekkQ/xYpyFyPaZSJCEw7zlPFmjQ9PtmHT/nS//233jxB9fN9EfYrNOcxbCMbgpyH0QN6uU98mXLJJB6jSPmW1jd1Z3tjHExiDc0SnKks+unPsntVuXPaRktOydOgsghTYwc3tyYfcClzHq7TmRiJQBf2dwzeOIrBXiAwASdrJYL6ofK0VDWGJxdVeXzcdgiMSH70eKa9nk1N5jjF0sq9KCUC2xhGg/teZ6KE1est5d8LF24Y/Ip+NFw1ERPPVwsYwyoQOlVX0PfNBHYJtl5fSSf828R/u+mu3lCAV/w6W8PgfaFBYVdnFJEzIBqHyWQtX4echxP9fvkglMh4BlZWOlFIi4=","translations":{"en":{"changelog":"### Added\n\n- **Nextcloud 35 support** — `info.xml` now declares `<nextcloud min-version=\"32\" max-version=\"35\"/>`. Verified against a running Nextcloud 35.0.0 RC3 on PHP 8.5.9 rather than inferred from release notes: all 50 `OCP\\` symbols the app imports resolve, all 44 classes load without a fatal and none turned abstract, the app installs and enables, `/status.php` and `/login` both stay 200, the log stays free of RoomVox entries, and the CalDAV room backend registers and publishes room metadata as before. No code changes were required — the declared ceiling was the only thing preventing installation. Nextcloud 35 retypes `IBootContext::getServerContainer()` to `Psr\\Container\\ContainerInterface`, which RoomVox is unaffected by because it only ever calls `->get()` on it. Four APIs the app uses became or remain deprecated without being removed (`ISecureRandom::generate`, `ICountUsersBackend`, `IConfig::getAppValue` and friends, `Calendar\\Room\\IManager::getBackends`); replacing them is cleanup for a later release, and two of the replacements do not exist on Nextcloud 32, which is still supported. The audit is written up in [NC 35 Compatibility](docs/architecture/nc35-compatibility.md).\n\n### Changed\n\n- **The Support tab no longer links to the VoxCloud website for pricing.** Subscriptions are sold exclusively through Nextcloud, so the \"Pricing details\" button — which pointed at `voxcloud.nl/pricing` — has been removed rather than repointed. In its place the tab states plainly that subscriptions run through Nextcloud and names the route: your Nextcloud account manager, or `sales@nextcloud.com`. The VoxCloud address stays on the tab for questions about the app itself, which is support rather than sales. The \"Learn more about RoomVox\" link to the VoxCloud homepage is gone for the same reason; it had no counterpart in the other VoxCloud apps. Nothing about what the app does changes: every feature keeps working without a subscription, for every account, exactly as before.\n\n### Fixed\n\n- **Building from a fresh clone failed: neither lock file was committed** ([#35](https://github.com/nextcloud/RoomVox/issues/35)): `.gitignore` excluded both `package-lock.json` and `composer.lock`, so a clone contained neither. `npm ci` — which the README tells you to run — refuses to work without a lock file and aborted with `EUSAGE`, and every `npm install` instead resolved dependencies afresh, which is how an upstream `@nextcloud/vue` 9.11.0 → 9.12.0 release could break an install process that had been working. Both lock files are now tracked, so a clone builds from the same dependency tree the app was tested against.\n- **`composer install` could not resolve on the supported PHP baseline** ([#35](https://github.com/nextcloud/RoomVox/issues/35)): the `nextcloud/ocp` development dependency was set to `dev-master`, which follows Nextcloud's main branch. That branch now requires PHP 8.3 or newer, so it conflicted with the PHP 8.2 baseline RoomVox still supports and no installable set of packages existed. Since that dependency only supplies the `OCP\\` API stubs used for static analysis and tests, it is now pinned to `dev-stable32`, matching the app's own minimum Nextcloud version and the other VoxCloud apps. This is a build-time dependency only; nothing about which Nextcloud or PHP versions RoomVox runs on has changed.\n- **LDAP groups could not be found in the permission editor** ([#31](https://github.com/nextcloud/RoomVox/issues/31)): The group search asked Nextcloud for matching groups, which does reach every group backend including LDAP. What it missed is that a backend decides for itself what the typed text is matched against: `user_ldap` matches the LDAP group's display name attribute, not the Nextcloud group ID. A group whose ID differs from that attribute — an LDAP group identified by its distinguished name, for instance — therefore never turned up, even when the exact ID was typed in full. Nextcloud's own share dialog compensates for this with an extra exact-ID lookup; RoomVox now does the same, so those groups are reachable. This also explains a difference that remains by design: local groups match on any part of the name, while LDAP matches from the start of the name only (and, when share-dialog enumeration is switched off, only exactly) — that is Nextcloud's LDAP behaviour, identical in the share dialog.\n- **A group search that found nothing left no trace in the log.** An LDAP group backend that is registered but not fully configured — `user_ldap` activates its group backend only when both the group filter and the group-member association attribute are set — returns an empty list silently, which looks exactly like \"this app does not support LDAP\". Empty searches are now logged at debug level, naming what to check.\n- **Permission groups that no backend can resolve are now logged.** When a group in a room's permissions cannot be resolved — an LDAP backend that is unreachable or no longer active — its members were skipped without a word, so managers in such a group silently stopped receiving approval notifications while their access itself kept working. This is now a warning in the log; the behaviour is otherwise unchanged.\n- **Stale translations for removed interface text.** The Dutch bundle still carried a string offering enterprise pricing at a VoxCloud address, left over from before subscriptions moved to Nextcloud. It was no longer reachable from any source file, but it shipped in every release. That string and four other orphans were removed."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvcm9vbXMtb3ZlcnZpZXcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvYm9va3Jvb20tZmlsdGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvYm9va2luZ3Mtb3ZlcnZpZXctbGlzdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvcm9vbXMtZWRpdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvaW1wb3J0LXJvb21zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yb29tdm94L21haW4vc2NyZWVuc2hvdHMvY29uZmlybWF0aW9uLWVtYWlsLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"RoomVox","summary":"CalDAV-native room booking via any calendar app","description":"RoomVox makes it easy to book and manage rooms in your organization. Whether it's meeting rooms, lecture halls, studios, or shared spaces — users simply add a room to their calendar event and RoomVox takes care of the rest.\n\nNo separate booking portal needed. Rooms appear directly in the calendar app your team already uses.\n\n**For users:**\n* Book rooms directly from your calendar — no extra tools\n* Instant confirmation or automatic approval requests\n* Email notifications with calendar attachments\n\n**For admins:**\n* Full room management with groups, permissions, and availability rules\n* Auto-accept or manager approval workflow per room\n* Role-based access control (Viewer / Booker / Manager)\n* CSV import/export for easy migration from MS365/Exchange\n* Public REST API for displays, kiosks, and digital signage\n* Per-room email and SMTP configuration\n* Microsoft Exchange bidirectional sync\n\n**Compatible calendar clients:**\n* Nextcloud Calendar\n* Apple Calendar (iOS/macOS)\n* Microsoft Outlook\n* Mozilla Thunderbird\n* eM Client"}},"isFeatured":false,"authors":[{"name":"VoxCloud","mail":"info@voxcloud.nl","homepage":"https://voxcloud.nl"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAjCCAuoCAhL3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwMjE5MTIwNTE4WhcNMzYwNTI3MTIwNTE4WjASMRAwDgYD\r\nVQQDDAdyb29tdm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAttus\r\nY6YXBg6yUmVuMx4HBehu4N+amN4uYe1K9GSML5JlA0KuO0ehH4TzAXSan/EOJmys\r\nUVKUrMhM7c26l1SzPJA7u68Mf3D90zb7FIyNrFSCeHDfk4aOTdNBHxic9HVf0c3k\r\nmk3hQ1t9lQGsB4vtAVM+FMH4KTyd1fXeaz4jfxRpLVVoxOSp/XTXwKS26KrxiKs8\r\n2lHi8Q1hxqUW9zLqXh7H50yr+AghiHuFu1xZ7Jh/E/1nNGs1dMVvGgse+4ZuPrSB\r\nunbZ93R2tTI4ReJvaqQX/bdMKYto0GMyx0SbOW9eBcs8bRfj4yWNhEy+6aTNwha5\r\n9kMKmW4OeblnzqMhu/wBcKPLcnFgshtn1OJvoXn3FDzSeJA7Oq9YxaNnadfbbl4g\r\n9ux9Tn6FtFLfufnovxLlKxn9AO9lbmyWaU4HWpEatlCHxLfYyHAqF/cXFJSaPLaC\r\nwlJkH9Ly/IQsilAh2XlPrIq40kjFzXT7NG0s2Ka7tyTH8ImKDLvi+QYldSvpy9cl\r\nWTMzHKXEIrusaEdaR5E9Ne70EVHN0YVnSzR9q8oTbQtrprgN291iRmFbPHbrqkk7\r\nD8vKY9JAdxl4eT2DrKWpvMpGr85bYLfPv4vQMOAG7fWEMSKLjUSLD9JtetP2SPBe\r\nXrfdgaSWGZutqDSmNLF2P0OF/zCKuaUuUJO+OFUCAwEAATANBgkqhkiG9w0BAQsF\r\nAAOCAQEAYgfaakYEY4Lj9B8rTjoVMFbEC4chnc6ZJjAu80bPfaBtAAFtOpIaNPbq\r\nwNF+byNriPZ1YvsonMz2Jkrzcv7uY6TjbQfkjXcVl15sSZXFBIRmgVXHBFK5wpBv\r\nHv7AJIBupTSq3o2SCDDl9xtGTJntFUC9vmzyp8rqHaDq+0jL9roAifs7lrS31/kc\r\npD7IMwZuJg8yrzRmKDgDg6FP+e4twKoSMl7rsBh3R6Uxt1fdi5Toj4JcSdxAlVSc\r\niqw/KbOwYym7PAZUeAXyV6ZihGtKVT1645enA9rCkx3BWvRyTJiaETPCSvbNBN3G\r\nNqmbhXeFXrsHeBbUXWnSbcm6D2jyMA==\r\n-----END CERTIFICATE-----","discussion":"https://github.com/nextcloud/roomvox/discussions"},{"id":"files_excludedirs","categories":["customization","files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/wonx/nextcloud-files-excludedirs/issues","website":"https://github.com/wonx/nextcloud-files-excludedirs","created":"2026-06-29T23:02:13.651832Z","lastModified":"2026-09-20T20:46:29.630701Z","releases":[{"version":"2.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/wonx/nextcloud-files-excludedirs/releases/download/v2.0.3/nextcloud-files-excludedirs-v2.0.3.tar.gz","created":"2026-09-20T20:46:29.590345Z","licenses":["agpl"],"lastModified":"2026-09-20T20:46:29.691735Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"eAhHXi4SljGNQIbojR5jBAwwng33ZGX87aSaHDaUORIUrAkYl/pP4tYRici73Vd2\nHWcK1e4Qak4g5qHzghis58OCSGf2xZLMgym+PGNb1iknh/8Fmh0nsopfm3t8OfBQ\nD+J7wLrc9fbvl4J7WVQStcUCig9SYAQrYowDBhDzbhtyjg7x29bFBhs44q375xjW\ngIw0CkazDnCxJHIZgNf5sO2EAoyrNTP/GfYhjSRA/IuhQuN8YqbWKJXGZNRmbQH0\nmMa4ojihTRoq2wAjyFZWLDpoODhD4OX+A4DdrNtZUtWBpmBqJFu8xi0gUWYmSAxy\nDaPLbn7HKAeOHTEwC4Ch3eIK4+/tOpF/SVbwQ9e5y+LMSMB/so0YTeNWPFYqs3hD\n9SinEGbjGeQ2LtOzjcc/SsXWdUtfE/bhuWx6rFXUq414i+fZcITBNKfqb3yrBQ1p\nsJtIkM3+hbagf3CXRsia+2WmwD0abMr0Ib76jFIi6QiSEXo4TaKdCBk5dXMqA8fj\nl6HXABZM9ExaRmQzLVtELa8s5XSHajCccTMdtVAGtG3jZ7eGClFo5jYyBzr6RhZc\nc3co1KawI3UNYDrOGpQ/k0rENHy6IdXClowVurOu2R6kxav+8xEmOZA1+Gol0U7I\nMnIwf2SpP0OTGQ8AUmxy5IbzxLxYFwOa5CXsYKM0+7s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Exclude directories","summary":"Exclude certain folders and files from being indexed in the Nextcloud database cache.","description":"This application allows administrators to exclude specific directories and files from being added to the Nextcloud database file cache based on string patterns or glob wildcards.\n\nThis is extremely useful when using External Storages or shared folders that contain massive directories (like snapshot folders, node_modules, or cache folders) which can otherwise severely slow down the synchronization scanner.\n\n**Features:**\n- Universal storage wrapping for local, shared, and external storage mounts.\n- Safe, real-time background file scanner exclusion.\n- Beautiful built-in Web Administration interface to manage patterns, run dry-run previews of affected files, and safely trigger cache purges.\n- Native `occ files_excludedirs:clean-cache` command-line utility for high-speed cache database cleanup."}},"isFeatured":false,"authors":[{"name":"Guy Elsmore-Paddock, Marc Palaus","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhOCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjI5MTAxNTI0WhcNMzYxMDA0MTAxNTI0WjAcMRowGAYD\nVQQDDBFmaWxlc19leGNsdWRlZGlyczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAI6o9RGxLrg/GbmnRq7JB98O4DKPsrT6t6JnsWFJKNHvwZRBDUuq4Uop\nEr9Qq3y1fGMMVjQMg749eo0jXqDn5lF6X2k3jLnxrWejHgUxG1h89J9V4YkHYUQN\naLKpcG/5O2hj9QJ/fO/w++pnbw2gdHRg8THd9MO7XkHk6DTpYSeKE9hhcOrwjZ6s\nrspa/HVyEU9WarTmxOmAmqSa+yvcXO+NgXqu2ltsIMZVps3tqzecwZtSlxC5IiPG\nKIRBnxvUyMzazBzyfqSc5bflyhdgt6W7de/Atss1eCaYd1lE29iDuiwDnD9HnhIX\nf6lTpnlUOdgZ0GmJiChAhftK4BdzsdVbUmsSZuMcJObJL4U1qoDVvYflEmjtEvk+\nEXz6Nm6KxsEmpWea66aJOlBhV1EAJl3XCWkrVWRuvT4TidMEMFdk788G1td0AW5o\nKaAQzvKZ4RH0Z2SHhURURpmCSRUDmAQCYntCXWcnqF/zLZhD+oX+uayXHYuH5531\nX3Ne124da+nGDT4Titc2BMvjWICLkNpiKxGVf7Dyfs2tI5qtoXko5WBQHxSkFejN\n+BHWTQ1nrnRKN2NSWljM8wZqLGY3GSKVY09nusD7LYdNFzq0Ky9wsDAIIIsyTxfS\nvzKkV8lhk3o26E7aYYLMNnWbrDpfXCRhvGDba/Oacr3aQzZKJpitAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAFsWKol11rZQpk9Vwab//Q0xTWcsb9eM7c9x9DZ2z5no\nsqnp5EqwqaHDE95BgqtqEfiDRzoR2mmujeODpJf/E5DS11MySOSVn3pf9dcHuHXE\nJ/EVW5/hnlwHa9G2Jzz/urLNFN21EDiTlXFSrCtcHwW3tL2a7ZIEv6JEX9GifRFq\n98CZeTw0fOOvkZDRbcjmxQVdZHDSIwQ78EmIof3CJwGmsauJ9h1NsUFHFgITOscd\nN7LlC8/dHFrWR5Nu2+ZnojR/0GlCl2fjqe+zbdyqbctayXlrOGfr0NgKARDgaKtD\nlii5LizyQBNNXbdHfyQMwnOIlzJfYH5b/2Hy0NjfwPw=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tachyon","categories":["integration","office","search","social"],"userDocs":"https://github.com/kimusan/Tachyon/wiki","adminDocs":"https://github.com/kimusan/Tachyon/wiki","developerDocs":"https://github.com/kimusan/Tachyon","issueTracker":"https://github.com/kimusan/Tachyon/issues","website":"https://tachyonmail.app/","created":"2026-08-06T11:50:00.596588Z","lastModified":"2026-10-21T17:37:46.796115Z","releases":[{"version":"4.4.7","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.7/tachyon-4.4.7-nextcloud.tar.gz","created":"2026-10-21T17:37:46.767640Z","licenses":["agpl"],"lastModified":"2026-10-21T17:37:46.860736Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"rLgwKFUzYcfgI2c+Wlo0/4tKwjEAZmqh3FHJopCe0hB5iLMXJu0BG5PfEJ+4olQGCM2BI+OuvcGY76SzDKepZwJzOdX9vjkewtsI3jaApjZi5zZBNfSu06ANtc+6MwXWwEOA2+gAYZgQJO1QIZ8ge+iixVn5luVENZir2YYqz5lSWVhT8dXimtFTZvRTQvcOQCs/oSrPJExC4jSCSsitobXibKpVXsG1ANgTldmyjg9WNiTkr7Mr4yRdP8yXD18ifrorMkjpDVG+eqdKU8sYIzUipFnZbb4F2dgR2bL0t4xWY5xgLBbTzJB88lsRKk+IRQyzq/nKHNkXL130G6dwxyzuu2Oymh27inT11u83tjcLmhvEmrKnwj3ZQXDa7lC2F9gyyaeTDbGE+IX831ueh/AFcWKDY/A39qzTF/wC8bfmDopR2etKeEhBFGqLRlctoqQaRN/bZV6c7zizUZK9aMtUUe42hmzTFSBzrjZl0axc5jPTGVtVkeEYu+cRBCgoGa+Omt+1hkgPqcZli0DzU7TVix+B3Q2mC+GZKphkrtyxtZZ3SseH3SLbVKmrxk3WnyhHZ1G0mz8/7eH+91ieQdBmqfVsIP+rgtBihTqJ9R4vrgEXBu1Jt2HlTUyiC8lvnqGDrQL9Sf/SZHqnEphFN2hWVllfvKRceGBIHeRFoQg=","translations":{"en":{"changelog":"The last three of the back-button regressions, two of which only show on a large mailbox or on a phone. Plus the end of the admin password error on Docker upgrades, calendars that could never be removed, and a way to log logins on their own.\n\nWorth taking if your inbox holds more than 10,000 messages, because no conversation could be opened in one at all.\n\n### Fixed\n- **No thread could be opened in a folder holding more than `message_list_limit` messages**, 10,000 by default, which showed as the full folder under a \"Back to message list\" button. That branch answers with the most recent slice rather than working out the whole uid list, and says in its own comment that it does not use THREAD; a request naming one thread fell into it and got the unthreaded folder back, with the thread uid still echoed in the response. It could not escape either, because the one thing that lifts the limit is a cached uid lookup that is itself skipped whenever a thread is named. A mailbox growing past 10,000 messages was enough to turn this on, which is why it had worked for years and why the IMAP server was never at fault. Reported by @floppybl (#156)\n- **The whole folder sat on screen, with no spinner, while a thread loaded.** The test that drops the messages on screen when they no longer answer the request compares the folder, the search and the offset. Entering a conversation changes none of those from page 1, so nothing was dropped and the old list stayed there until the thread arrived. On a large mailbox that is indistinguishable from the thread never loading. From page 2 or later it did clear, because the offset moved, which is what made it look intermittent (#156)\n- **Moving to the next message across a page boundary flashed the next page's list**, on mobile, where the list and the message are separate views rather than side by side. Crossing a boundary calls `gotoPage()`, which writes an address with no message in it, and the back-button work in 4.4.3 taught the route to read that as \"close the message\". The route now leaves the open message alone for the one dispatch where a selection is already pending. Reported by @lvarnava (#157)\n- **A Docker upgrade reported an admin password failure on every restart**, on an installation where nothing was wrong and nothing needed doing. The entrypoint treated a missing `admin_password.txt` as a failure without asking whether a password was already configured, and on an existing installation that file is legitimately absent: it is written once, on the first run, and an administrator who read it and deleted it, which is the sensible thing to do with a password in clear, ends up in the same position as one who set their own. Three cases now, and only the last of them can fail. Reported by @jon4156 (#158)\n- **A CalDAV calendar could not be removed once it had been seen.** The code that stores a discovered calendar only ever inserted or updated it, and nothing anywhere deleted one, so moving the URL from a single public collection to the DAV root left the old collection sitting next to the new ones for ever. A sync now reconciles what is stored against what discovery returned. A calendar missing from the listing is hidden at once, and its events are removed only after a second sync confirms it, because a PROPFIND answers per collection and one the server refuses while answering for the others is indistinguishable from one the user deleted. Clearing the URL, or setting sync to No, removes them all on save. Reported by @Quiwy (#164)\n\n### Changed\n- **A login can now be logged without logging every request.** A successful login wrote nothing to the main log at all, so it could only be seen at level 6, among the per-request traffic; it is a notice now, at level 5. A failed login went only to the fail2ban file and to `LOG_AUTHPRIV`, both off by default, so the ordinary log could not tell a failure from no attempt at all; it is a warning, which is visible at the default level of 4. Both carry the ip and the login through the same substitutions the fail2ban format already uses, so nothing new is exposed and no password goes near them. Worth knowing before upgrading: an installation with logging enabled therefore starts recording the client ip and the login for failed attempts. Asked for by @dionysius (#163)\n- **The syslog driver sent everything at `LOG_INFO`.** It pinned its own level in the constructor, so an error and a debug line arrived at the same priority and filtering by priority did nothing at all. `Driver::Write` had the severity the whole time and dropped it before handing the message over; the driver signature now carries it through to `syslog()`. Found in #163\n- Translations updated for French and Polish\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.6","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.6/tachyon-4.4.6-nextcloud.tar.gz","created":"2026-10-16T12:47:26.919542Z","licenses":["agpl"],"lastModified":"2026-10-16T12:47:26.973545Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"d+AsIPqZQr0UXL0Ht17CPzBVCQVmupsDvq+EOVh4gzvEKi1pZDSJZy4UbseQ9iH5U1CCMfTm2NaRdlpWt/m9WHbkvWFnCBlmAYWe6xzj7PgN3WLTYunQ6xagyoR+PlMGXFQq7D3tx1T6MHq8gD3UY2bBhRO+X5h136dXqAni5639eLFVSVhOM07TDtKW/Xj1WKh5WN1bheeXTB5jIxuMZ3v5gGoHm0xAWqwXrbtZqEJqeJyS4PI+2y0lUwVfgK5lfjokJQrtk5hTwkj1zsiadXKOvM/P6cOXYAc8pA7ZEdClDuddo8I3xavcR/DiFmR3s+gO4P24+9j9WeVpv0bq+W/eD/44asxpouAOxYY645YDWCFLauYupfndZEQqFRF+WxdqzdP8euom7irwqpXh5tKvqig6/tXRxK00yBGhqS8y0/XXA+Nwk0oDbb5+omr9xK3t43uFHgvV7qwpH7NeQXZSSXuQ0pcCC5TTZB2QTZrm7e1uvYYEd52xGTIgipgQGCyX7iOlENVG2UzYa0u/ODZQ1u3L+BQKEFynkX0cUfSVKL79jGPBpdeXt+PtRViT8djES+DK3DW9a6RXlh5oKKt/5GWxOCMsPlTNJk4GYAMlWmjrY0dQtj3VpJAmLM+iy+ApL7isCFlNuQ7+fkl1Lp6q3KGZX9w+DLEv7iGQ/VQ=","translations":{"en":{"changelog":"Five releases in two days, and three of them to clean up after one change of mine. Sorry. Writing the open message into the address bar, added in 4.4.3 so that Back works and a message can be linked, reset a different piece of the mailbox on every click, and each one surfaced as its own bug. Everything the address bar carries is now read and applied in one place, and the rest of the links that write it have been gone through rather than waited on.\n\nIf you are on 4.4.3, 4.4.4 or 4.4.5, take this one.\n\n### Fixed\n- **Opening a message from page 2 or later jumped back to page 1**, after which the previous and next arrows walked a list that no longer held the open message and appeared to do nothing. A message link has nowhere to record the page, so the route reported page one for every one of them and the list was reloaded at the top. Reported by @lvarnava (#157)\n- **Opening a message from a search threw the search away** and reloaded the whole folder behind it. The link dropped the search, which the route has always been able to carry after the uid. Found while fixing #157, not reported\n- **Clicking the conversation count showed the whole list, and Back to list stayed in the thread.** The test that stops every message click refetching the list compared the folder, page and search, and the thread uid is none of those: it travels inside the folder part, so entering or leaving a thread changed nothing it looked at and the reload was skipped in both directions. Reported by @floppybl (#156)\n- Reloading the browser while reading a message inside a thread came back with the whole folder behind it. The thread uid was applied only when the address bar held no message. Found by going through the remaining links rather than from a report\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.5","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.5/tachyon-4.4.5-nextcloud.tar.gz","created":"2026-10-16T12:02:25.510473Z","licenses":["agpl"],"lastModified":"2026-10-16T12:02:25.566162Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"YkkgDGiUOmmPjiOA6DNLZIS0PbIYmsPzoZTKuFIhNlNvH51KllKnwi9SDsNqmoK4n5u5Ti8uMmAblDOpIGPRqTLXkB98KXGrIUGY3MS0C9Twr0KGJogo847E+L0UQVbC9kcqbhDPdXyZiCFMO61oTZyKJpdXfS/z+nzDqJlX/JFudNjma0E2jCNLbJTpDi6eWpDg3yZmuqPQxvhl3VqvMaV5lTeS2N4nxHvMANawe3OPu7ZfCbUQfBhSOVTn3H7MadaWRQ9CWAxgkh9+5PR6ASxihyaKsw37aorhM0D4+RToic9yjUa0ENzbt88YJvyC+gdRsLwzfkzByn9jX20OxO6apTmDbU6DQwYJ62WgoAp9BJGQtpwq6Dby84oOurqf25WP2JplnS3mjWYIhrfPHM02d7kGqVmdYNsFWbJVwenpau/Hqhx9IUyAfQDGSYLOLcYymM5F0ZBdDlupLfJYZGlt21ZNXfoUSJ0FUt8relKf36eqOoYUJ+uj4/7L6JJb+HFsCknXPrfzDgNKL/ziPCV7RfPpqnXsx51WdsxjMp0AoRT6IpbKByMqd9kNDvS9fsID+W4OZeODtxTml3QwHoj5c/vIHcIp9NHlku+hHoxJgY/JkPjzLQoH+Y7R8W17Xao7UFBS9ATHPNCsKly98mLl4kKLvRZjiccWvScM7xw=","translations":{"en":{"changelog":"Take this one if you run 4.4.3 or 4.4.4 and any of your folders has a space, an accent or a nested path: opening a message showed nothing at all.\n\n### Fixed\n- **A message opened to an empty body**, in any folder whose name is not plain ASCII. The fix for #153 in 4.4.4 put the correct folder hash into the address bar, and then the route handler took that hash for a folder name: it compared it against the open message's full name, which never matches, built a replacement message naming a folder that does not exist, and the request for it was dropped without a word. So the body loaded and was immediately replaced by nothing. Both the comparison and the new message now use the folder's full name, which the route handler has already resolved. Diagnosed, down to the line, by @remmmi (#155)\n- **Installing the Debian package over an older `tachyon` package stopped on a file conflict.** The rename in 4.4.3 left `tachyon-webmail` owning the same paths without declaring that it replaces them, so `apt install ./tachyon-webmail_*.deb` aborted unless the old package was removed first, which broke unattended installs. A versioned `Replaces` hands the files over. There is deliberately no `Breaks`: Debian's unrelated `tachyon` ray tracer also satisfies `<< 4.4.3~`, and apt would have offered to remove it. Diagnosed and tested, including against python-apt, by @ZaphodB (#154)\n- Asking for a message in a folder that cannot be resolved now says so in the browser console, with `[debug] javascript = On`. It returned false in silence before, which is how the two bugs above stayed invisible while the message view simply sat empty\n\n### Changed\n- Installing the Debian package now warns, once, while an older `tachyon` package is still installed. `Replaces` hands over the shared files but does not remove that package, and what stays behind is a complete older copy of the application under `/usr/share/tachyon`, missing the security fixes from 4.4.0 through 4.4.3. Run `apt remove tachyon` to clear it\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.4","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.4/tachyon-4.4.4-nextcloud.tar.gz","created":"2026-10-16T05:14:47.004519Z","licenses":["agpl"],"lastModified":"2026-10-16T05:14:47.055154Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"OggRgl57iyxtt1KqH3FfbNvuaxqmqcLrRLpORAorDc/msDVK2fYOy1WVtJRIa6LXfFf5FglPVAFAyCwt95+H2BJVrEWnA/0NwIO6VisXGmxz3XscRhn2PDb7IT2yiP1HRv6r97kUmSigyKdKr2OVlCsS4IKKJMqDqWOq2UaSZtenGyk4gJhb5PXpX5tKQ5xfJ5rOgb86SjimDRj/8uDG4YLuWWa/F2iJNHpewpQOjw8AWuNApW7M4QaKsUVPEdZnDDaDKCXk2bNMHZb7F3eZ5Aa25bQye1+rf1eb2476OWqmZ30qOyT1aA+UEGB9QuE+SzLJw/rUF+WNGG/vEWqh7xqIuchzSqtnc+YczZU73H4olugBJY+rdFS2IdMd3RyIhAEgcheG9X3oeIWhArs/+gXaaK3x8e1O2HbBfhhPHucd6oMKKrb5HwEd1iBR4GxkFn8p85lSC42Df3OdsI3wK+3fjPGlyWWBb57yobDa2M/MHsRXu/Ua0Vq1fcDkpv4wapBUtmwr5+irFuW3c/7O+MNZS4s7pzW5wb3SSzApPL1FRp6g4NEleZALDf/23qpzUFc8YW0NUy99Gz+A41EqJnaVyai8KWsQXsCSiXJR99sjyNnIZ5ulDR/oJO9fVGwX3g9JkOTx0xvVrS2kGQYLEwg63NA4iRmXTAK63PQFIp0=","translations":{"en":{"changelog":"Take this one if you run 4.4.3: clicking a message could fill the search box and open nothing, for anyone whose folders are not named in plain ASCII.\n\n### Fixed\n- **Clicking a message filled the search box and showed nothing**, on 4.4.3 only. Message links name a folder by a URL-safe hash of its full name, because a full name may hold the hierarchy delimiter and anything else; the click path passed the full name instead, so a folder like `Lists/dev` produced extra path segments, no route matched it, and the tail was read as page and search. A folder named only `[a-z0-9._-]` hashes to itself, which is why `INBOX` behaved normally and this reached release: Dovecot's default `.` delimiter is in that class, Mailcow's `/` is not. Two older instances of the same mistake go with it, in the folder jumped to when a message is not in the current list, which is also how \"select next after delete\" moves, and in the notification for several new messages. Reported by @codiflow (#153)\n- The admin Contacts connection test reported plain success while contacts were switched off, so a green result said less than it appeared to and sent an administrator hunting for the fault elsewhere. It now has three outcomes: the database failing, the database answering while the feature is off, and both together. Found through #145\n\n### Added\n- **A line or two of the message body under the subject in the list**, off by default, with a setting under General for one line or two. The text comes from the IMAP server over `PREVIEW` (RFC 8970), which means no extra fetching and no HTML to strip, since the server is required to hand over plain text. Where a server cannot do it the setting says so rather than appearing to work, and where an administrator has turned it off the setting is hidden. Asked for by @DanClarke-io (#148)\n- **A show/passphrase toggle on both login screens.** Hidden by default, and it cannot submit the form or reveal anything before the page has finished loading. Asked for by @goddies (#131)\n- A **Material** theme, modelled on Material Design 3, in light and dark, with no web fonts fetched. Thanks to @DanClarke-io (#151)\n- `MailClient::MessageListByTuples()`, a supported way for a plugin to hand the core a page of `[folder, uid]` pairs and have it fetched and rendered, for search backed by an external index or a conversation ordering. The caller's order is kept across folders, repeats collapse, and pairs that could not be read are reported back. Asked for by @remmmi (#140)\n\n### Changed\n- The login-o365 documentation no longer offers the two redirect URI forms as equal alternatives. Microsoft permits a query parameter in a redirect URI only for work and school registrations, so a personal Outlook account must use the path form, which is the extension's default. Raised in #114\n- Translations updated for Polish and Russian\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.3","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.3/tachyon-4.4.3-nextcloud.tar.gz","created":"2026-10-15T14:41:21.527131Z","licenses":["agpl"],"lastModified":"2026-10-15T14:41:21.581998Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"EOXHAycHk/1nErRrSzgnAfzjRXPnl6Xr7CoYoHvFKg36Qropm/f+Jc0gwaPwa9NMU1S6yzzFzep+5afVKcYhT3dpvp+4P8xZLg4L9ADDfJmddH6uI/9Lntt/Blxyg5pLO31RTsstvjew+CscRavc821RLK15Io1Te7QHKXOigYg8FSHox3ajBDNIT7eokwfr7V5rfV//beL6EmaGd2KzG5rZUOj6AmWybG+2oqSH/yxGrZCdxGMHHUeJK9KdGZnsfuXWxBDACmw3OSy1MgDfX8VhNe1OPxz8WvYv9dXVvSdG5g+zhp2TdNJPoKdoP7wlkb7zDuMkL+Q+6djZYX3wefi+bx/RFl0qR1cQLBofQlmJXzfZod1WEw30nBaVuNFPAk4OlhxQMj/kgBF62VZ+8B1zkZJ4DRhjPZ2+Ry0pJDFcgE1mjNLY+Wi7gE2sFjkI4YpalCIL5azIbnVIWNITw9bZFy5MwWA+eM0d4OrJl/K8LOH4txtsRlbzkg35+VKz3qKguE86mINwBoe47pFhO2s7SK2gZ7TarJaQ6aa/e5zrclxfiN9pruP/ItDGvFeBE6b1UcZ6vmrzmAiyOQEoIKgO61ZLWxZxq0dxO++JaeI6Hc6GfzrejsaLQJiqyd3WOnSMbcEzsBC9cvC0WXRGwFw2k8/ecFaxpnZruGzypxU=","translations":{"en":{"changelog":"Worth taking if you run 4.4.2: opening Drafts could fail outright on PHP 8.4, the Debian package pulled in a second PHP, and logging out did not end the session.\n\n### Security\n- Logging out left the server-side session alive. `Logout()` asked the browser to drop two cookies and nothing else: the `StorageType::SESSION` record that `getMainAccountFromToken()` actually checks stayed where it was, and the clear of the `SESSION_TOKEN` cookie had been commented out. Anyone holding a copy of the cookies from before the logout kept full mailbox access without the password, and since `FileStorage::Get()` touches the file on every read, a session being replayed never aged into the three hour sweep either. Reported by Fathi Ben Nasr, Convergent Cloud Computing (GHSA-gc87-g2gf-xj6q)\n- Backup restore ran without an admin session. `JsonAdminRestoreData` asked only whether the request had reached the admin panel, which is true for anyone able to load it, and the core rule requiring a login for `Admin*` actions did not cover it: a plugin action is dispatched as `PluginJsonAdminRestoreData`, so the test on the name starting with `Admin` never matched. The restore now demands an admin login, ignores the client's `Content-Type`, and will only write to the four directories and the one contacts database a backup legitimately contains, refusing the archive outright if it holds anything else. Reported by Fathi Ben Nasr, Convergent Cloud Computing (GHSA-5r45-3mqm-hcvg)\n- The IMAP sequence-set range pattern had no end anchor, so a value merely starting like a range was passed through whole and anything following it was read as more of the IMAP command. Nothing in the tree feeds it anything but server-derived integers, so this was a sharp edge rather than a hole, but it is the single place every FETCH, STORE and COPY sequence is built. Found while answering @remmmi (#140)\n\n### Fixed\n- **Opening Drafts could report \"unknown error\" and show nothing**, on PHP 8.4. A draft holds whatever was typed, so an address can have no domain at all, and `idn_to_utf8('')` throws a `ValueError` on 8.4 where older versions returned false. That happened while the message list was being serialised, so the whole response failed rather than one address. Reported by @daniu-de (#122)\n- **The Debian package pulled in a second PHP.** 4.4.2 added a versioned `php-fpm (>= 2:8.2~)` dependency, which no unversioned `Provides` can satisfy, so an existing working `php8.3-fpm` stopped counting and apt installed 8.4 beside it. The constraints are gone, as they were in 4.4.1; the 8.2 floor is still enforced at startup by `Integrity::phpVersion()`. Reported by @lvarnava (#134)\n- **The package is now called `tachyon-webmail`.** Debian already ships an unrelated `tachyon` in bookworm/main, a parallel ray tracer. Reported by @lvarnava (#135)\n- A fresh install could log that it had created the admin password and where to read it, and that password was then refused. It was written to `admin_password.txt` before the hash was stored, and `Config::Save()` returns a bool that nothing looked at, so wherever `application.ini` could not be written the file existed and held a password that had never been stored anywhere. Saved first now, and the file is written only if that worked. Reported by @jon4156 (#133)\n- The ics-viewer fix listed in 4.4.2 reached releases but not git checkouts: #127 widened the match in `message.js` and left `message.min.js`, the file the plugin actually loads, untouched. Release packaging runs terser over every plugin, which is how this turned up\n- In the Nextcloud file picker, the \"Select folder\" footer showed where it means nothing. It used the `hidden` binding, which any author rule carrying a `display` beats, and is now bound on `visible`. The button is also relabelled to the already-translated save string. Reported by @lvarnava (#117)\n\n### Added\n- **The Back button now closes an open message, and a message has its own link.** The route has always understood `#/mailbox/<folder>/m<uid>`, so a pasted link worked, but nothing ever wrote such a hash. Opening a message now pushes a history entry, arrow keys replace it rather than leaving one per message, and the preview pane filling itself at folder load writes nothing. Idea from @remmmi (#141)\n- Back out of the last of the client's own history entries and you are asked before you leave, rather than simply landing wherever you were before\n- The Nextcloud folder picker opens on the folder used last, with each level on the way down opened, so a nested folder is reached rather than only a top level one. Asked for by @lvarnava (#117)\n\n### Changed\n- The date format setting now previews with a date whose parts cannot be confused for one another. Thanks to Antonios Vamporakis (#137)\n- Translations updated for Polish and French, and plugin strings for Polish, French and Russian\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.2/tachyon-4.4.2-nextcloud.tar.gz","created":"2026-10-09T13:30:46.700312Z","licenses":["agpl"],"lastModified":"2026-10-09T13:30:46.751442Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"aXl3Z/kQ6BiloiJsjEhMSDZiV16lEHmfU7StGxl/jvPUV+MVmx3+eJKeDHvXadXbO4gxDf6OVfB0sloGZpbWjUlEhqFxdjyEwVhpExJiV3zbI8jw5Fkz5Axp9amZMt3Sz42BAoqjgBOtDUXc2LCrqod+UhHersns+V4Hw0QxVHb+LFX+hRXgrobjbKxGbXz3Okfq+zpE8pHNilTedJpbWnwW4LbeiiJ1knJVaS1bEmNvJrgxjYH3vDfhkEkIJ+LSgLM41UL1gc0I7W3ZGNFTm09C7Q0aaUauLuciCfABYHXiDKSo6ymeTjTjwVORYik+p/F6T09BkHlFGofQmASI3amFHVNwZv70VoGnbvLOQFxejC4tHI+fmDIsfbUQxlF8GY4hoak/SBkrKSpZGJCxgy8/wBldSOo8d6AWXn63ymSel8Dz2I6Ff6Nq4SX5VN4EMHbNQUAhuQGvYEIpApPkm7/1lcw8oG25FpujGdWFngwkppnHUAJIs+TWsRwI4QnVamrtWuTn/MzU0V4jrWZ7uzK3nBkI5SHiWyqHPLwu7bmbzjJZZnObN0gtl9HOsEmL0QAJASwh4AmBupB4isjcBOaDISCGqu+crPGOvxba1JnjIYLIfk0+BBkwpRyXd7nn8Ruc8U6adZWE8BpQyfECZjV3MaR6s26L2G/rhTRDzNc=","translations":{"en":{"changelog":"A release worth taking promptly: 4.4.0 and 4.4.1 could make login impossible on a host without the sodium extension.\n\n### Fixed\n- **Upgrading to 4.4.0 could make login impossible on a host without the sodium extension**, with `Folders error: HTTP Token mismatch` after every attempt. `openssl_get_cipher_methods()` lists ciphers the provider will not actually use, and on OpenSSL 3 that includes `aes-256-cbc-hmac-sha1`, which is the shipped default. Encryption fell back to xxtea, correctly, but the hardening added in 4.4.0 then refused xxtea whenever `openssl_decrypt()` merely existed, so the server rejected the tokens it had just minted and no session could be established. The cipher is now tried rather than looked up, a working one is used when the configured one is not, and the refusal asks whether openssl can really be used. Affected installs are signed out once and move to proper encryption. Reported by @realsimix (#121)\n- Save in Nextcloud selected a folder, turned its spinner and wrote nothing. The plugin called `\\OCP\\Files::getStorage()`, which Nextcloud deprecated in 14 and has since removed, so the call threw and the save failed silently. The same call was in the \"Save as .eml\" path. Reported by @BlackIkeEagle (#116)\n- The Nextcloud file picker put a `select` button on every folder row and floated its checkboxes out of line. Folders now carry a radio confirmed from the footer, file names are clickable labels, and the rows line up. Reported by @lvarnava (#117)\n- A plugin updated to a build-numbered version kept reporting the version before it and offered the same update for ever. The release-time bump wrote the new version into `packages.json` but packaged an `index.php` still declaring the old one, and the admin panel reads the installed version from that constant. Reported by @ivnmad (#119)\n- Several callers passed HTTP headers as an associative array, which reached curl as bare values and were sent malformed and dropped: the integrity check, the breach lookup, which therefore travelled without its API key, and the CardDAV upload path, which answered `403 supported-address-data`. Thanks to @FathiBenNasr (#124)\n- Only the first `data-*` attribute was stripped from a composed message, because removing an attribute while iterating a live `DOMNamedNodeMap` ends the iteration. The rest went out in sent mail and saved drafts. Thanks to @FathiBenNasr (#126)\n- An empty contact list on either side of a CardDAV sync deleted everything on the other. An empty list is more often a fault than an intent, so deletions in that direction are now skipped and logged. Thanks to @FathiBenNasr (#125)\n- The ics-viewer panel never appeared on invitations from Evolution or Exchange, which put the calendar part inline and repeat it as `application/ics` rather than attaching `text/calendar`. Thanks to @FathiBenNasr (#127)\n\n### Security\n- The two-factor-auth plugin keeps its TOTP secret sealed rather than in clear, and backup codes only as hashes. A code from an already-accepted 30 second step is refused, and five failures in fifteen minutes lock that account's second factor for fifteen. Existing enrolments and printed backup codes carry over untouched. Thanks to @FathiBenNasr (#128)\n- The avatars plugin answered without a session and fetched a URL chosen by whoever asked, with the SSRF gate switched off, then cached the result under any address. Only instances with `bimi` or `favicon` enabled were affected; both default to off\n\n### Changed\n- The Debian package gains a signed `tachyon_<version>-1_all.changes` file for importing into reprepro or aptly, declares `php-xml`, without which a clean Debian 13 install fails the integrity check, and requires PHP 8.2 or later. `php-openssl`, `php-exif` and `php-sodium` are dropped, none of them being real packages on Debian. Thanks to @dionysius (#129)\n- **The two-factor secret is now tied to `APP_SALT`.** Lose or regenerate `SALT.php`, by restoring a backup without it for instance, and every user loses their second factor with no way back but an administrator clearing their record. Before this the secret was stored in clear and survived such a change. Back up `SALT.php` with the data directory\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.1/tachyon-4.4.1-nextcloud.tar.gz","created":"2026-10-07T16:32:45.231801Z","licenses":["agpl"],"lastModified":"2026-10-07T16:32:45.280100Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"lntROyww6q23tgagxTKIxARrppr9vCykgP+srewtADbyyHvw+I7TN+T4N5TkN+ueeStc/fHvO8hiZ+qDHmd1ClprmuhXPQumAFRlskflNAdqjn6JnRkSVnv7gbX1cvkMsJqWatujj3UiCJQ3quEDoeqAjMHuoDBMQSooAMtDyv1JuwFGpCiJfIcMN/2fmTHNGyzHPLP0QhJ2u5veXCh9Pqpbrb299/6rb4NCcaPm2Ow1rqIqFTINym6ouOAz77a1VwlaYAy+tOqqAfpSNwEzh0GYSv3tQO2N2+YRFNf7sy1W5P6croLm8XctjdINZ8HvwIpEkAKMKXf05hTJpYAQRMqysYc0TlNui7dADPGRHskICv4erwtLgnz88nXmNRh9cADQWnkVBHXXCgEu0SF6aynpJm+8Iz1GckWvgxBSgrzufuYk9jbp+68DYYwf1vGCaYClDMT0UkVx2aJHlrYtyuKDj4+jVH2eap3Z++q4/qx/JEhvRsv2RsGaW1SRW8E5INd5zZ7xA8zPN+L7HTEAs/zm/4lXUCsC7f5CNKYUQQqZLpo2wUqosEqc7Jt7j35Xw45Gn6l1Qs1chhUdka7VGAhNbAP6Jiat9C/qbMk9AaXximW3sfLLCAGEkPjcZnls4/cDgettVLH7/EQ14zOXnbdgT7VHmr0Rjq5eAUaGXj4=","translations":{"en":{"changelog":"### Fixed\n- Upgrading to 4.4.0 could leave you unable to log in, with `Folders error: HTTP Token mismatch` on every attempt. The first request after an upgrade empties the cache directory, and requests arriving together all got past the version check before any of them recorded the new version, so several walked and deleted the same tree at once. One removed a directory another had already listed, and that request died with a fatal part way through the page. The browser then held a page with no usable request token and every later call was rejected, which looked like a login fault rather than an install one. Reported by @realsimix (#121)\n\n---"}},"signatureDigest":"sha512"},{"version":"4.4.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.4.0/tachyon-4.4.0-nextcloud.tar.gz","created":"2026-10-07T07:25:20.512043Z","licenses":["agpl"],"lastModified":"2026-10-07T07:25:20.573257Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"LHoQf4PiIbNPurXsDdBsVeBx4mMm0+rEy/oZzpnFBBdnfM+YSzL9Jlds6TGTIoP1ZNysqacmUFJ6yoazumbXcqPQqbe2ATbYBrfKaoCeTp/OcZfIANXuzSeW5TENns6YP2TYHZRbg9gEDzx2aaRwqcMA5TCysyNOmI6kmjqDVDxvSNKqs3nEPF1dcjgE/95ZUep3w+8pdM1wSBI7M19HM5T82q3qtp+yiBnORPwEe3bNCU67RGN+dLIGaYk1H8Dqv7AHcWpv2wiefU5f3zdYZ1SS02CtbhFKQvXxBmSYdW0KFCrczEA9g2mN5ntdK2bEJN3+h/HULtywcW4C4jWHT6NME7m+/VifjzyKQFP5MnFejYBY97oLN5a8S1Ln/8J6q8NVPgWKVmnK/Jm/2wJkUa/pgIoGBJuAe0827eb3RJjhJIM5YQHKaXhqx/1meUfzFYKWNy1eKOJqFBKd4pjSdF/OfNKDIq8N8b4+1TGFSoXJ2m93prmk9bwDYaolB1+WjpNNjJ6/85BkZGnZSWMEX31Z6zd/xpM7ANK+G6oS5/BVxY7iCnR2pDAluxSWP00PBoc8AFlJdlTkqnieV/KiK7BwIWqbQZDdEpnfiXVa3o3LZP+runpVYxzOHEJlcQKDw7FOgT7lacxH8J6Uw4PpG3zF/S2F4Kj3NzYkCHKZnZE=","translations":{"en":{"changelog":"A security release. Nine issues were reported privately by @ZaphodB, eight of\nwhich are inherited from SnappyMail and present in its `v2.38.2`. They were\ndisclosed publicly on 2026-10-06 before the report reached us, so there is\nnothing left to embargo. Upstream has been told.\n\n### Security\n- An encoded-word in a Message-ID could inject headers into a reply. `DecodeHeaderValue` stripped CR and LF before decoding RFC 2047, so `=?utf-8?B?...?=` carrying a line break came out with it intact; replying copies Message-ID into In-Reply-To, and the reply then carried header lines, or body text, chosen by whoever sent the original. Sent as you, DKIM-signed by your domain, saved to Sent. Line breaks are now stripped after decoding and again in `Mime\\Header`, which every outgoing header is built through (GHSA-xqxm-5325-888x)\n- S/MIME reported altered messages as validly signed. `openssl_pkcs7_verify` was called with `PKCS7_NOSIGS`, which tells OpenSSL not to check the signature, and any well-formed signed message then reported success. A message changed after signing displayed as signed by the certificate holder (GHSA-8gqc-2rq5-57j6)\n- Crypt tokens were forgeable. The algorithm came from the token itself, so a client could ask for xxtea anywhere, and the xxtea key was the token's own 16-byte salt followed by the server passphrase. XXTEA reads only the first 16 bytes of a key, so the passphrase never took part and anyone could mint tokens every consumer accepted. Xxtea is now refused where sodium or openssl exists, the algorithm name is checked against a list, and the key is derived through SHA-256 (GHSA-92qg-8v85-4rpc)\n- Two-step verification could be switched off, wiped, replaced or read with nothing but a session. A current code or a backup code is now required for each. Backup codes were also generated with `rand()` rather than a CSPRNG\n- Remote images loaded without consent through `srcset` and CSS. Only `src` goes through the consent and proxy rewrite, and only three CSS properties are handled, so `url()` in `mask-image` and friends fetched on sight. A relative URL did it through the proxy on your own origin, which works as a read receipt\n- Attachments were rendered inline as whatever type their sender declared, so an HTML attachment became a page on your origin. A short list of types is now shown as declared, any other `text/*` shows its source, and the rest download. SVG is included, with a sandbox policy so that opening one directly cannot run script either\n- The `?/Test` integrity diagnostic answered without a login, taking its target from the request's own Host header and printing back every response header\n- S/MIME actions put the client's part id into an IMAP FETCH unchecked\n- The image proxy's SSRF gate let through CGNAT, IETF protocol assignments, benchmarking and multicast ranges, deprecated IPv6 site-local and multicast, the server's own addresses, and IPv6 forms carrying an embedded IPv4 address. The gate was added after 4.3.1 and never shipped without these\n\n### Added\n- Attachment search matches on the real MIME body structure instead of guessing from a `Content-Type` header, and remembers what it learned per mailbox so a repeat search costs nothing. Inline images no longer count as attachments. Thanks to @wojt-janowski (#76)\n- An Unraid Community Applications template, so Tachyon installs from the Apps tab (#113)\n\n### Fixed\n- Decrypted S/MIME messages lost every byte that was not valid UTF-8, so anything not in English arrived full of replacement characters. The decrypted MIME was put through a JSON encoder that substitutes invalid UTF-8, before the parser had a chance to apply each part's declared charset (#32)\n- An encrypted S/MIME message now decrypts as it opens, where an administrator turns that on under Security. It never raises a passphrase dialog to do it: where a passphrase would be needed and is not already held, the message stays encrypted and the Decrypt button works as before (#92)\n- Attachment search aborted on any message the server would not describe, losing the whole result rather than that one message\n- DAV ignored the `[ssl]` configuration that IMAP, SMTP and Sieve honour, so a private CA or a deliberately relaxed install behaved differently for calendars and address books than for mail on the same server. `capath` works as well as `cafile`\n\n### Changed\n- `:latest` no longer follows a pre-release tag. Anything pinned to it, including the Docker examples and the Unraid template, was offered pre-releases as routine updates\n\n---"}},"signatureDigest":"sha512"},{"version":"4.3.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.3.1/tachyon-4.3.1-nextcloud.tar.gz","created":"2026-09-29T21:07:07.071770Z","licenses":["agpl"],"lastModified":"2026-09-29T21:07:07.122688Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"fk/f4Kf27g1PJHGb+HWJqkZUKJrx0H3ClmLZUx3MPRYnpMhjMFYZz7i+Ms9NgUem0DPSylBvwT33HqMuwXejL7QjvysVkqjrl5O4fJbyq02bWt0erIaHRnrUV4mxoomnfAsFetnJk/1TngktpqeUMcTvVgFcgpOqHejzOcowSodygP+BHtPDRml50CLI5UMaedzqT0Yv/BkcNZvEhb+yPDsrTDd4M083/T40oUOYulaOZuQIBSRnDDsAy4PgFC8MQvtxTAXImm6z5tk8eDQkC3SEPPwFR7/MZeLPq+XtTJGSTtAB+iErVlasFRMsvz8jCkRn1Y/hxSBLnsxmW2Oqy5h1C2R04RVMflUfZi0IUbX2nzGSTH6KUu9OeEj5crgC6eiAyjuqdoNU9LPZ/IeyPbKB2uZXCrjHs7NPeGEONqQvasGd1+gm7OrnrrSu+ZqBa12QZANlrDPWdhg7Ya5W9NOm1GUQrLVJl2WsJQJN7I8vfpyLL3kynJcCr6cPjtzdO5Ye6skDdw3RFGVIrPAz5/FF/WEkenghmuZcLJE7uPBoyTajq/AfLwgFz5ixKHI0RZWI2S4Cqpa2sgqgi1bXEhghc78vFhk8O6EQ8QE7w6XF2URUt0mIfGJkFmbAi77i5b6vZE0KRgPqrB/tcUlRNNCXTSr22iHCe9ZeZ00mq1Y=","translations":{"en":{"changelog":"### Fixed\n- Plugin translations never reached an install. Weblate merges a translation into a plugin's `langs/` directory and never touches its `index.php`, so the declared version stayed put, `packages.json` advertised the version the install already had, and Admin, Extensions offered nothing to update. The translation was inside the published package the whole time with no way to get at it. The published version now carries a build number that rises whenever a plugin's contents change, so a merged translation is offered as an update. Reported by @lvarnava in discussion #33\n\n### Changed\n- Eight plugins are republished so their pending work actually ships: Russian and Danish translations for change-password, kolab, login-register, nextcloud, search-filters and two-factor-auth, and the OAuth2 fixes in login-o365 and login-oauth2, which went out in 4.3.0 under versions that had already been published\n\n---"}},"signatureDigest":"sha512"},{"version":"4.3.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.3.0/tachyon-4.3.0-nextcloud.tar.gz","created":"2026-09-29T16:10:56.208585Z","licenses":["agpl"],"lastModified":"2026-09-29T16:21:08.029652Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"nQtpNPtWHLLNk+42y1c0OVmefhLCl0udT0BqY/Pi8Dcn9WqcXMcap6RLMjC77AoMAk3ocErRcslWh0Js3ZhI79PCU1+8IzTgROryC3hPbzgx0YjigxqNoHLVh8Mu3doc+z7j4VaKZg/3z8bBZ7b0BlqTzVSM1uilpYDVmMqcR/x2VbKE5IsBXxdjSW+AKfOpkyfjP+E4welN8CmvN7vleyr54DuoPN/FLJT1kSkH1zCBQgDJ88iyslEZEBl6Q4FEjAhLceJrSLvr4dky8tZdIR9IRcqFzRQZJ2chKoqRkjbj5Fg631ersHfUALJKDcv5mPBE/oAWjS0ba8vP7NRWFxYR/VrcYm3Un/E57UUaFCnLgOFX//FnmMa36bFCH71r7eacFJUZQme6qus1NBHZG4BGMTpNdXqzHMjSoY8fR7rPnztfraLkI1uqbyIQQOLRTljhAHKsIYCaV7Bs83nUH898K9ajMIph/yDBNYmPuPEmwalR3PInxvRU66n0OCk/jBwD4JJ4hN8KlcaIz525REKCmJuZELcojikvzpUR+Yg603YvD9+b3a9r+asgCNn6/Knfa1Nqzze2997kCCKR6EUPuDwnMeBCNmwBdmVOv+5tnlQtp/jeSqbORSJjHKaXrJD8p8NU69/p8+yXxEdoFh1PzE8wliXxQEqfgFOyX78=","translations":{"en":{"changelog":"### Added\n- OAuth2 for additional accounts, not only the one you log in with. A Gmail, Office 365 or generic OAuth2 account can be added from Settings, Accounts without an app password, and so without turning on 2-step verification to obtain one (#90)\n- The generic OAuth2 plugin is now genuinely generic. Its endpoints, scopes, userinfo URL and the domains it answers for are configuration, so it serves any provider that does RFC 7628 and can say which address was authorized\n- Swipe sideways on a phone to reach the next or previous message. The list is hidden while a message is open, so reading a run of mail otherwise meant closing each one and finding your place again. The message follows your finger, and a chevron appears once the gesture has gone far enough to act on (#102)\n- Delivery receipts carry an envelope id, so a notification arriving days later can be tied to the message that caused it (#96)\n\n### Fixed\n- Encrypting a message without also signing it broke both send and save, with `TypeError: e.findIndex is not a function` and nothing sent or saved. Choosing the crypto method in 4.2.4 started treating a value as a list that collapses to `false` when the feature is off, and for a draft regardless. Inherited from SnappyMail, where nothing ever did more than read its length (#103)\n- S/MIME messages would not decrypt on Exchange. The MIME headers openssl needs were read from `BODY[<part>.MIME]`, which Exchange answers with `NIL`, correctly: the message is not multipart, so there is no part-level header and the Content-Type is the message's own. The body reached openssl as a bare base64 blob with nothing reporting why. Diagnosed from an IMAP trace supplied by @reaisinc (#92)\n- View original, Download original and attachment downloads failed in the installed app. Running as a PWA, a link opened in a tab lands in the browser, a separate context, so the request goes out cross-site and without the session cookie that identifies the account. The content is now fetched inside the app and handed over as a blob; an ordinary browser tab still streams from the server as before (#81)\n- Delivery receipts asked for success and failure but never delay. Many servers decline success notifications as backscatter protection while honouring delay, so a queued or retried message reported nothing at all (#96)\n- Requesting a delivery receipt did nothing on a domain set to use `php mail()`, which cannot pass the SMTP parameters one needs. The request was discarded in silence. The admin panel now says what the setting costs, beside the setting (#96)\n- The Office 365 add-account flow could not work on a default install. Its signed state carried a CSRF token compared against the session's, and that value comes from a cookie the cross-site redirect withholds, so a fresh one was minted and the comparison could never match. This guarded its plain login too (#90)\n- The Gmail plugin's token refresh wrote the new expiry to an undefined variable, so every IMAP, SMTP and Sieve connection refreshed the token again for the life of the session\n\n### Changed\n- Release tarballs carry real timestamps. `PharData` gave every entry an mtime of 1970, so an install deployed from the tarball served `Last-Modified: Thu, 01 Jan 1970` for every asset, leaving browsers nothing to revalidate against and letting a bad cached copy outlive a reinstall. The zip was never affected\n- Russian and Chinese are more complete, thanks to @lvarnava and @dreamawake\n\n---"}},"signatureDigest":"sha512"},{"version":"4.2.5","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.2.5/tachyon-4.2.5-nextcloud.tar.gz","created":"2026-09-23T08:15:39.798179Z","licenses":["agpl"],"lastModified":"2026-09-23T08:15:39.855843Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"pDGTZkAAXX/s+dkC5dbOA/0KmpSBpvHYF0cmJTO5xtqNQhq24t00z0OGuqamwQD4ZYXuLq3n6I6WatY24yyYHlBal51IVQfYHbITuyd/aEotHSJAuWKCzc4r3WeDRteEuHU4UV4HvVoQCWsJ+eg1asQBnPD9xiFYycR5qWcTzOqOtaitYZhPtzwYU0m+1j7flvAbJ/p/m3AOgGEBJylgBGtMK5culNc61hYt9Oh5YzBv2qaFioletiPLtbaRffihn6sFEfhb7Mbulfun7Kx81cx/bLPWDs7+XCjiKwRaRsaR31JIUYKIJWrAHiZa0R/Ovl9XNF9U3KDmLyyj8AFRa56Y12TcKx2d5r+PgkjDSZXtE457d06hYrQaXFqlwuN0Ry1hsTRAjWvyao3Sbk+2N5EsaEXo8Ep39C4WblJPrVysjaLP7LjwUc8pE1L9NlAthtkqG1cqwTBRecQnJ8z22gdqbzHvzzXOQvkq5y7IjwI0gK/q2bLv9b9xNK5bUnfy3U9borz4E47NoUh8KZUT4TZuxFDFFmS2diwjOjcQm2ZcDDVAYxqR3m2YmeOz4oevoJqEKVpPev/8XQtFQtPZXCN/aD4DufcT+7XKi5/cOeifbTb4LfgSH6DHdDQiSScKKPJUnLDRmqLvebdyLa6cKLxV1D4kdTfe6tMGx2vHBUE=","translations":{"en":{"changelog":"### Added\n- Delivery receipts carry an envelope id, so a notification that turns up days later can be matched to the message that caused it (#96)\n\n### Fixed\n- Requesting a delivery receipt did nothing whatsoever on a domain set to use `php mail()`. mail() cannot pass the SMTP parameters a receipt needs, so the request was discarded in silence, with the tick box in the compose window doing precisely nothing. The admin panel now says what the setting costs beside the setting itself, and both places a request used to be dropped without a word are logged. Found by @lvarnava, who noticed the one domain it worked on was the one with the box unticked (#96)\n- Delivery receipts asked for success and failure but never delay. Plenty of servers decline to send success notifications as backscatter protection while still honouring delay, so a message that was queued or retried reported nothing at all to the sender (#96)\n- Placeholder text was invisible on Xv, Linen and Squares. The rule meant to colour it was written with one colon rather than two, so it matched nothing and had never applied on any theme. Those three are also the only ones pairing a light wallpaper with a translucent black login box, which composited to mid grey; their own labels sat at 3.86:1, below the readable threshold, which nobody had reported (#94)\n- The messages per page limit now caps the default, rather than the larger of the two setting the ceiling. A default above the limit was handing every new user a number their own settings screen would refuse the moment they opened it (#73)\n- PDF attachments lost their preview link and the eye badge added in 4.0.5. The check read `navigator.mimeTypes`, a deprecated API that browsers now populate only while the built-in PDF viewer is enabled, so it came back empty on anything current. It asks `navigator.pdfViewerEnabled` instead\n\n### Changed\n- The README credits Weblate and charts progress per language, as the Libre plan asks\n- CONTRIBUTING opens with translating, the one kind of contribution that needs none of the toolchain, and its release switches, gulp advice and debug config keys match the code again\n- SECURITY.md listed 3.x as the supported line and asked for encrypted email without giving either an address or a key, so there was no way to report a vulnerability privately. Private reporting is enabled on the repository and the policy points at it\n- Seven dead files left over from SnappyMail and RainLoop are gone from the repository root, along with a roadmap that finished months ago\n- Release assets upload with `gh`, and packages.json is no longer re-committed when only the signatures moved\n- Russian and Danish are substantially more complete, thanks to @lvarnava and @BrainDeLook\n\n---"}},"signatureDigest":"sha512"},{"version":"4.2.4","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.2.4/tachyon-4.2.4-nextcloud.tar.gz","created":"2026-09-16T21:21:23.237547Z","licenses":["agpl"],"lastModified":"2026-09-16T21:21:23.379368Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"baukaOO26O78LUJ3Y2kOo7KykcKtkQ3q7B/6U6Sap5HCPlN2S9J/NzVICP35ZMGWRV63oVLBbZ6bvnAcoEvWDwYW6WTlZzZqwVSMyi/eO+41ds0cbk2ANp0FP0RC2hWygOKBfAku/CD3EUG0JYuNL2hT1e46op9w4hDX/kZi5zHC7xA/jx/O6r5vY+X27MrMn4p+U5/VpHY9AkY8FrMGpbCcDefSNF700XhV7QHmhp9pBE+1K8aY1RoxG1kfC8GUkccERHCT18yO1f7XX8O2b3HC5x9+02Rkda/F0YmrX95nevjuutxksvNj0lN1p+WLXc1KBCeudSgstTs7umfAAcOyQitrgUmRpQDD7xnJbjnb60Rf1Bfu9pIy4s5C7ZNQdkHsTkLx9LhcmrJcs60pMw+WEDlRx3Y0z7rqcWnOcJImMAMHdiSxlB/ivpjamcnjF4gAHBWRQeqHVY7EAc/0pmkrOs/b6QNBxxwi5EnboJh9hm0tCc37nprcPHlwitNvkAMdrWe8mgPut81H63XE3N0LdsFSc84qo5NUq5VtV2WLcCQDrK7W7aEfMPgJq8BDltnzeviJOD0i7K5oS1+GVcVY5btJH+QmQgZrH9aca6DYIKCjCj71FAezZzmEctmAQWSnHmImUnkA1TrnLryAz3AFYnsO6ibofrc59Use2nM=","translations":{"en":{"changelog":"### Added\n- A Calendar button on the folder panel, beside the Contacts one that was already there (#75)\n- Messages per page is now two admin settings rather than one: a default, and a separate limit on what a user may choose. Both are on the General tab instead of only in the config file (#73)\n\n### Fixed\n- A long webmail title broke two-factor enrolment outright. The title is the QR code's issuer and appears in it twice, and percent-encoding turns one Cyrillic character into six bytes, so a 60 character title came to 744 bytes against the 213 a QR code of that size holds. The title is shortened now rather than the code failing, and the failure it used to produce named neither the real input nor the real limit (#80)\n- The settings input capped messages per page at 50 while the save clamped at 100 and the admin could configure anything, so a site set higher could not be matched from the settings screen (#73)\n- A still-enabled SnappyMail could leave the Nextcloud session holding a user id but no passphrase, so auto-login found nothing to send and presented an empty password field with nothing to explain it (#72)\n- The General and Config admin tabs edit the same keys, and General never re-read them, so a value changed on Config still showed the old number and saving put it back\n- Search filters were not applied on a fresh login, because the settings lookup needed a session that `imap.after-login` runs before. Thanks to @wojt-janowski\n- Weblate's safe-html autofix had escaped `&` to `&amp;` inside translated strings. Those render as text, not HTML, so eight languages were displaying the entity. A CI check now fails on it rather than leaving it to review\n\n### Changed\n- Russian is substantially more complete, thanks to @lvarnava and @BrainDeLook\n\n---"}},"signatureDigest":"sha512"},{"version":"4.2.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.2.2/tachyon-4.2.2-nextcloud.tar.gz","created":"2026-09-08T16:00:16.505317Z","licenses":["agpl"],"lastModified":"2026-09-08T16:00:16.789802Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"p8redW0z7xsOjQLkWV7NL1wm0VkXu8Xo2A2VsR5fksyjxGGlhe+ebEZkpBlRth/oYKY8WcNfOj4nHsc3oYCLdq6+Czhz+N24qNKn9/obfgIRlS5lYMEjS4aAfKkKP8LOlrtdF8kZ7bqKJ7sX7GVqx+isToGmVZ6cEg1ukG1+lJ2k7cSvw8Mz21aLa72o9r7PW4rW9TYW1RLK4c1nVNZoyVwsk6WomEBg7XNPFvDz06LQrBWgAhay8YZwahB5tbcZD/4nj64mdA95k+hkr8rg6uunhqWQlJ2fryPhZm67jGjfp9XU0bb6C6fjkN/sZubxd/wqQI/KRr5Nx1/ylXbroUCNVK9gK341nvaY0F06U2K3Q6yHjS2gk4/k1P91QnSwIa3jTJyCq7t54dOYSToCP5pEM4NDgj3UJlkll1C1KjXVRx+HkqSZNRz4Ij8kWf1Q8PyjoeeQQ2Wvk8RVC/XHD5VFru7f7cgGcxcYtN9Z2+Xao0JOPZ+iVbjCdWysWGySHotfCPyubYX/YxeowZduK99dKxuaz2+wruNr4aerbKoP+QDsumQnIaIIAIMGKrzZlRHq/n+HXx+sfyhKHuUi+na4dXS99A9VWYED1atueLplhFo36EEBDpDYsbkhXzv22OBfBpFxqxJtdI+UiIZ+nnAWX1YPFhAlmW6t0Yt9x60=","translations":{"en":{"changelog":"### Fixed\n- The SnappyMail logo was still shipping in nine places, including desktop notifications, the admin About tab and both the Nextcloud and ownCloud integrations. Its Braille dots read SNAPPY (#51)\n- Search filters were shared by every account on the install, so a rule filing mail into a folder that exists in one mailbox ran against all of them. Because the rules run during login, the resulting failure was reported as a failed login. Filters are now per address, and an existing list stays with the account that created it\n- Deleting a search filter appeared to do nothing while actually deleting it\n- Search filters moved messages out of INBOX even when they were found elsewhere\n- Editing an account at an internationalised domain failed with \"Unknown error\". The account list is sent to the client in unicode while accounts are stored under the ASCII form, and the address was not converted back on the way in, so the lookup found nothing\n- A sender with no avatar answered 404, which logged a console error for most of a normal message list, and was the one response carrying no cache headers, so every render asked again and redid the lookups behind it\n\n---"}},"signatureDigest":"sha512"},{"version":"4.2.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.2.0/tachyon-4.2.0-nextcloud.tar.gz","created":"2026-09-06T19:54:00.558678Z","licenses":["agpl"],"lastModified":"2026-09-06T19:54:00.616335Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"MIXAz71jzvlnPfTWBvmjiKOO0pbkuiH8k/c/fSwhv3dfR6Qeu5ivx/+A8E7GEreET0RAvLSiblxyQlV+GOKkXe0NieqgrNTlB8QPcNkFsrTqp6nK8ziRFxbFUz19oukjRL7Mxt+0z2WWFAOvtKZp1u8ewxTH7UYLx0XdojNkY7Wc15q0ZCkbjVyccAZ9Cxo1hzJLj6Pm2/NBMH2FEw6QQPfSq8JVlPb04AXguWei1XLGkiO2Xiif0v6nDRWgUBuFJqi9Cezb8xW198RhjLfh6djXueyZlJg1lgB8bsfdX6XAJmfnl2aNZhys/d1c+DSjlh8rux4Zrk+ZToh7bwjYvRUcqLayvIH9uykxOwSNb2P7ZbZAe+GFw7Nq1GNJLLBk/DZGAfrjaO+EEh+RpzghimmCvFLh6k7DLL4K4I4Nfiggpz0sZyYntgRr/l3feUYshSyYWzVOmZQnKP1BoWTQbrUGTb8l5+6AdHrQFa4ryiNwFeggCh3TuxSpcsvD9pOPEJioXcCFw2/Z15QDwd685KbDSIKCkRMW2psT6Rw5i45X6gBTrHZ6oRkJJbjwYa6apaaPHKoyrdLXNFHidn3JLwbQXt3hoyq66c6v5ECpcoZDiXEUUeXYHwhQT0mbfRvfiEWP9ViPJAnepMA/12qy9uXOpNPm9Z3louaj7XeHUgo=","translations":{"en":{"changelog":"### Added\n- Add an invitation to a calendar from the message it arrived in. Handles files holding several events, and recurring series with moved occurrences\n- Import a whole `.ics` file into a calendar\n- A date picker in place of the native one, which rendered in the browser's locale and ignored everything Tachyon asked of it, plus a date format setting that follows the interface language by default\n- Week numbers and first day of the week are user settings\n- Release artifacts are signed, and the public key ships alongside them\n\n### Changed\n- Seven designs that shipped as a light theme and a dark theme are now one theme each, switched with the light/dark toggle: Stripes, Love, Snow, Blurred, Squares, Wood, and Shine (formerly DarkShine and NightShine). A saved theme migrates on its own, and an account on a dark build lands on the merged theme already in dark mode\n- Default, Linen, A, Xv and Clear gained a dark mode; Magnetic gained a light one. All 16 themes now answer the toggle\n\n### Fixed\n- The admin panel's update button downloaded the cPanel package rather than the webmail one, so updating always failed\n- Image whitelist entries were being overwritten by whichever session wrote last, rather than expiring as it appeared\n- The Contacts menu opened partly off screen on phones (#50)\n- The calendar grid was dark grey on light themes and white on some dark ones\n- The event editor honours a 24-hour clock, keeps its fields inside the dialog, and moving the start past the end carries the end with it\n- Nextcloud translation catalogues registered under the old app id, so none of them loaded\n- fail2ban filters, AUR package metadata and release signing still described SnappyMail\n\n---"}},"signatureDigest":"sha512"},{"version":"4.1.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.1.0/tachyon-4.1.0-nextcloud.tar.gz","created":"2026-09-03T18:44:10.983488Z","licenses":["agpl"],"lastModified":"2026-09-03T18:44:11.070837Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"d/jfEjpE7W+40APfppwm4uxedtbVDqWIHH7d/xrmU5VdaRha9STAmGeLDQwG+67Ey9j2LLJtI+jTuSMn5rXWtwgTEoDIPhzyWwvhHOSUFZh8sMsyKMlW6A/h52PonGwAY/hcLuF9vy2JauWfSwwrjrFCd7KHShPAkLAD3/Q0y2uj56WPRw48ALlpve6BOCGlT6RwxtebHPlG56rjTVMjVHM0wa0R4IkATaM3+KVDxIzJkQILPnTkaaB64HSVomzxlrtoC9vHa4j3esHDR8OpZjLSYfRJ2xxSuGu+rN6RDfCQOchBw8GmVXZOKtHUh30Z4OOvWQMhQApH6MCmBqc4Za4c6efxOd/64wh6zC6uSNfh7nwaHjuFdVspIIj9pBC13Lm0OU2AaeLgKoYHzO21dycTTdTsLjwOG81iSELQRpsElCokZG8BJNGBAqx1Gh0GxG3A2V+Kxl1QJbh9nUXHt/C3sJwFlgoHKx64iYvnVwX0SIFPL/c5JHEb2grTUw7vLlxwCA3dDJ6b4I1/FubArnBwGFoiJdLYuW14n0eN7F3zKP/bO3Ydw5HrHEU8+2vtoyEbtTTR249SZQ5QCH63lpuGNlMQAk4R8FX/K9p9Ue9z/erthnieWjaWXabKhgMvv7ipsNqb3NRTsRDpP8WxPHD6enfcwPlct/81fWUi0lM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.9","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.9/tachyon-4.0.9-nextcloud.tar.gz","created":"2026-09-02T05:22:34.857661Z","licenses":["agpl"],"lastModified":"2026-09-02T05:22:34.950858Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"Qv4n2xzWVXelRIb2nJvgAlRKllPMl9QQc/HPo5hPo/tM0FCDSKT+mmlWxPbaDjfo8eJXeeaW9VWaNfmoaGoMfhxSmdh+goHTzMb5Ep2w76reRUcOCzaawppyB+Bozbu13wxTvoxqs1TDgmmQTTmjUtxXTMDJOrcSH9mvNWEClxPNcd4kngcdqFdEt2TyUJGfmj2b82Ec01zPnsD/Z7my8oSmNCWeoetU7RXMjPOelPEvWRwoufS6lTsIHGthEpcMGdHa0Kh37D2vHfrOei+COKckwpGHFfkDq08O+1B6G5CoHxmIZ64CNHzdIvXxJG0q9GCn92W5skvzDE+tzHti3tqJHw+mn+wI6gnIJ479dqgEPbfFx0DtRILWBOhYasZzAfA9xGrYelSspF83eqRb8+tRYJVmF/wwONvLxFFdIewklbtYagGAm6kIzayp3XP8/6tyNoE31PMFK9qHPhHLamRK9jIy19VB4YMpVUr7kMXXSQTEHAvNUWAZKQ1km003tC2xy8/2/s3fItr1FT3jb1f7GQOviPmc2FDpZgE0QS4Si1wkMIsIyQ6SuyvU358i1umKmk1Sb6/m3mp01NLh1C21RgMOqnNrFir8CV66ZghSf9V8gOnBaFp59XtqIGXtChWN3KQgHAl2MD+G/2oOMWd27gwmmgO5OmwfKNHMgns=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.8","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.8/tachyon-4.0.8-nextcloud.tar.gz","created":"2026-08-31T17:45:06.794592Z","licenses":["agpl"],"lastModified":"2026-08-31T17:45:08.036808Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"RJi6jRzDZkyB1gLyBXdt2HHNzTvvAI5TtyUiveggMpU8ovfBmHBEmXo8JUAdWfpmJMn/5pswOKqrVP5yjuayCQCBFbpa9SOP7vl0nNjqRaaDa6ufsVcbDbzn0butuiTEXFP1z3PQsqwm8PHgEjxLFtAbEluSaViJc9HBka15PZ7flNCdGLP/wPP8NOfyEXKil3ZbrFTdvwL0gUeeOujRPmqxzRHn6rgZ9P5l57t0ykHM8Aihy8SqNzRXuPljiFYcgHCaxGX9hzfKE6eoeKINDGf0RRGE3vzyYz2Un+QJzhbSWrAKVzTBoQGE+OyA6il3hyUnEqG0TE14tHHEEFmD374pQ8L3qEV+k1Fyhjc7rx/TdUwfZFSuab+uyuY9oh4b6o1GnrnNwLiiIMz9A1jexqhGcTDrMjsssKjTI3YQZ0YInSf+gP28n2jwhYPH5jaFcN7t+pGEugZT2xPb0dNMPIzxzSk0bs8nkS9HRIxkE5uNaogE+/mkXsrbP8O0dMnv+EAfIpHzLHo13wzjya8WfMG4SWjqSMIpX0f6ZtRHhF9WqNHkChMx4OROGjfpReDV8wYa8FJQkQ0mDoetimmuUeRYEIe44z7dOq5h9O9MkOMXh8r1sgHLLRwkBSIZaOuiMpiFzazRnJwsDkkSoaFHirBf2F0yIChZbKJAULrJ/jA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.7","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.7/tachyon-4.0.7-nextcloud.tar.gz","created":"2026-08-30T20:17:54.102523Z","licenses":["agpl"],"lastModified":"2026-08-30T20:17:54.176190Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"EUoorobshNL6mLeKxU8XL0VkDDLZyeTHS16uWSiAc2azzShlLhmv5lCM7Fz/RbIRLbx3S5I2A6/9Z476jwaO5EP+Mu42pAc3zQIAF5WEzK/wv/VyJN1vHaNt60Sl1p5tvQm4X3WFZIjiYKcF1ZQX8HO5IgssoqJy4A9W4/Hxm/ppPXQUZfZ8EWl0niz0O983ENeIihbcuDcRTXmAEdxfcd0ql2PePdYZfI04BjghDKNzS6Axo4/3OnbWH2mHfHlHoaurVqxS779N19pvETWtuEF71k0bRb9OKi8u7Fvhev1Hxbb2LniSbsBdaCwn/Le0ZI0akkX2Ua/G7KKbZSUoU2sZAzKPf0G+6hwMhl1rnvYIMsVKlhlDbUMU1wm+IKMb0JZGGxEc0ynNVtnKiH1sAzaBxVSepocr+46e3VuJRkKoyO+EP3XhhrGKCPxXtM3SxvNy9r1fV6fYyQmjmkF5VZSf67ZV4eebh1kTEdyCV6NqQLqOwXVjzXZzmgMGbHYHMFYQqiv39mv7Bm8eS7rdxMVWwu9QAWZ1gWkVq4W4laiXTjPh2mpZQPRwBV0iVnYYq1z6mhX3gTB5JS5Q/X8uRrYsGgu3ChF3/ZU09AqzbQy1/mJE5nfxf8sdgGJ2+P50MdqGhpMH93uMYEEMZhQ57vBQMEkpPt4ptdlIsyk5eUY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.6","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.6/tachyon-4.0.6-nextcloud.tar.gz","created":"2026-08-29T21:48:17.269435Z","licenses":["agpl"],"lastModified":"2026-08-29T21:48:18.399664Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"QPhM5I+X/MJCJrzmQ4U/6NN2t6CgPfBjf8X3MYnGcEebQwX7rScBX+2W8ZxHlNuAjRR+hdit+P6KC326cN2aYIzvQ3KDlvYrLl6WlbuH0fOb/DMBSnoavZDQBsi+jExa/Insf/Yb97t0ZhqhCARPUModo5si9knffgTzLEqqwkhraMjJXX7paXOBjj+EpYyxnml3fbynOVZXa3PahpscRDvlzBFYFs+JXNYAcFGuw9LTkehv8nwDp9VunRXbI80PjNXAw9/9rixW4MUy3u+pvs9RuDsI3a+a3UAgxLvh02jf43IKsWu2ukWsQdhHiqbFv44lQ2p4hjygdvvQaBtxbx9ZcYsEcHnDM1MUQwLM+JF//Cu5I51iDxMzde6QrXQ1liTxgCW7dfEelHh5JxF2VtGXkmwxsyfNza0mUyNOkW5XCyiC3E14ITh0TxVWHlTElnO04VPyk5D9kSvKMgVZbCCpNtrV57gOXiBvrV/7TKuEl0MO0aEjv8/rSoiethcc4PEW3VYceZyQ3cPH/MqRafc/4qofG5xBwaLC/xIjxJ39iJiKXzLVQxUkO+Wh/uq/4JnLx02Ke9xXq9bNQ1iDEIolBSGXWzOxGP45xXCfWY4Ig4sLmCoXOitTkvrr7vWbFilYv06JEUOcMW2OQ8KZ5Rsdx6m8oDwfTIV0mjoSCcw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.5","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.5/tachyon-4.0.5-nextcloud.tar.gz","created":"2026-08-29T13:32:52.185368Z","licenses":["agpl"],"lastModified":"2026-08-29T13:32:52.288372Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"ZisnNMrQrPp3KDJ/F95KITFJcY7MT11/0xHGmFz0fvWIrkv5bSSyjYPVCMxIFIyogmE4UItIf8HimoWXbRGkxJmF698Cxuwr3rLtQzyoek0JjR+nNhB4QL0AJRMFe1q4H+2m3jrZDGEBxPA3Dt6h0SdBicBC6ZEVkw4wAJs/ERpDYY//OLcdDmWhwS55nTRKa6hmxXPyWsX63oBR4QfiKe5+9eAwdoeVCj3+33YhtP0tTvZAfyMhrIL6fZ2jrRE+d843oMe2hL1VF6LIVYGwxjIa/J4R97aaiwB0bkhG+azPMan1vad6DpqZmew8kOLtZ2qYvN23K9upAGlU+DH3Az+VRDepP08eAWPLpKVEFWW2lflKgPs4sckLb7XSjOXiofDq35wrwJK36yGNonsxFLYSANbKLqGgYWmPLEwTj6RPPnVQf64NMoVl3jF5euC7LkRK+syFEjV14yPNbqVIDlhRaRZLpe+KDUxYbUyKc6n9/Orn1uwpoWnExdfdTPMMRRi1XoW9wqf2VQp1sd9XNAmPfZvgz8zm6u10jN5uLObL8rFXe4sxC6veDUkrX1PytN43r0C9W7jnzEYZW0F22ksZXEuMean/lUpgHeo592avTogit1Yn7cVxUh3N/jQTmXwARzNNrULmC1WfbheWEWGwVjhs+gSqRzpJBliIcrE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.4","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.4/tachyon-4.0.4-nextcloud.tar.gz","created":"2026-08-26T21:05:31.148313Z","licenses":["agpl"],"lastModified":"2026-08-26T21:05:31.230666Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"AeekXmUfHfMLrh6PNGawF6bO2oA8xpjUh0hpcUWZ3pnoujLnNc2klb1wfioYg9h2w5pRlVm3BbyJO70cDKVm3qiJeFb6xn+1go9I7NEZd0/mL6mLX3hom0/wIxCHj57jdiwPr55kpG8ZBJ5G8gZmILcGNJMshF0fqlppAp0f429AuSOhc1k3BMF3XKqAWvAUq2Rt54n78ECHQgrf+SY/i1Oz2558F3+QJ6LZhKqva+0x5rM/uuniSl2StcOpthMnGe6HfBiIb47vwoPv8uKJ+Wm3Ywj35NYd3f3goASfClSyVs8TEB5t+j1gdASB0go3Yj87wQowV8QdKs7zyFFUuNj87bilWgN5xln6D+6wlRdzgCDqzJV+9emJTyVALtSdzDHH7GeShHLU4p2HtTCDl/z2DvZdLBFCrBJi3cVu+MrJhjlPrWMIJXw4eQipOF9EfsZMqtEdFBMJQJSfGv8BtSfzHFDwHW0VabNIsTxnVHVFlyRRWxrCgVEtpdgnpCUWow1ogUj7UwBSz1fl0fRhFv0QVkoOTOCX6ZeiTzIyvrPXPY3OiXG7zPDj2c7PzqU7Muq7bqGIjBUsazTNrpLJ1uajyc7lvMYsJN+d0aG6KuydoKS7Ei7ndvfR4VNyd1nbRmWcP/3eeKCMvfazHX/GfMIu45ihzLI95nuyXnWjDOM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.3","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.3/tachyon-4.0.3-nextcloud.tar.gz","created":"2026-08-25T20:08:03.193648Z","licenses":["agpl"],"lastModified":"2026-08-25T20:08:03.287863Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"LbIhM8AixHxsawusmOSNJm/WLvRZ6Nl6ERs+PrslHpicegkc3MkAm4gbMgzVsVDpO+eZdkSyUV/b8Sum/dAKFBXcrEFWUpyGziISABGfnBVuWuiWE+/HSQ1GhRb/0AmTnMx8iBsk6OtLQGKkPJtzR7cWLkooLAxgZGv74vAEfLdy/2gmzbCvfbjgd5MIUXpTFcNl/xgRSJCRAYIb+2lnrjeoDmMpmcomDji1zX/3rY+4A1kMBCmtlaCRPMWb/Z3XKZCxxCEvsB17kUj911elDDs3tjg5NiYCW67PR7smR0xvJl4wSl3sJVOtNNej2IaLeb7ctLFCXqsJ2G675wrHjMeYbPuQjhxrxUp1CGRKOcFFKBLSJ2fdv4ELYAaWJ+1Tf0lZcrUxu0CL87DTfpBdvO7ToqY1MpQu6VrxcOflXq/flY6O2F757UWOGUVVMgcdSLhtxaJdOgD9ZYnmsY51AZrjvKdisAJwObk4yN28nuckodsvlOb9MFz6oeJ/hfXLR0urwzvCh9pRoIVNbChM2ZoU+pP1nPQl+F2Ga8w44w8xWtg4dP4acFtTAh2/S45KML4NfIop1y7HsXMi5CoDVbTbfocG14tOxvwDZbEsoT2gqHxWIIbrzCJX/8W3zWQJBLxsvnuPM/fq66XQ5pFFmh9uzo5Zcob1BIv3z6iB6E0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.2","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.2/tachyon-4.0.2-nextcloud.tar.gz","created":"2026-08-25T16:04:29.684504Z","licenses":["agpl"],"lastModified":"2026-08-25T16:04:29.752881Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"gF+pD9J7noKso+vYsZs5uOJaJnpa3sU6F12wByQJzDIm9pG7o3esfiq2tUGZy83sHdieBtccd/i65SJc4wxFjU1dXU9cv/XxRZwLGzsyiRWxr67YBpmjDLS22KeWgxPCw2fknVrI6q2UIuPRaufc9OD6HunM7aLWQiIJ2W0dbAJZv9Ho0ejPNH8tQpl9GngepPEktxWQp4v+lOX7K7OgeuN5duO3fTgbzsH/ERVks9xKiQJ/CWDedUvaPGyYgj+33e3yWnboSWdMugilUUUrvsgp+aCulKjW71ZZ55+gjDmf05+GhUaSFK7kCTtyfb5/u6+m7oUl0sYqJQ58wwU7F73KNLLkdNWeIlrUpvQcyUhPtjRt2KbkaA+XVDJSK0qIW0mF5hcaIVGjaKf11rQetBzrx9tgcxWBte3zNllTXCM8Bz3BqyxWve5GBKCBhsVA/JDiZtqWmpZ1eGbVRz5wdEggp0WMCriOrvVAYxPqbihVQqBF9CCJ4DYDV/4WBbaUvAQNzkm+o05Q3EP8vJkYxhH/tYKxXQuNTpEoGuZedbPNEMOYq14UJHXFklGYQJixtYMKmriJNWowQb1L10dcsMxX2qNg39Zd5wn9hqWgmKZj82cZHZVf1yuT2vDlfHONDOLLYdGZarhZ3/N0M19DvwKswku608KiP9LHVgjWNHc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.1","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.1/tachyon-4.0.1-nextcloud.tar.gz","created":"2026-08-24T21:46:38.132691Z","licenses":["agpl"],"lastModified":"2026-08-24T21:46:38.197813Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"rFGmSWOysX9H/Ba05qSHetU0GX589zpeSN7xYQfwXwofe64B2DmD3+G3U2HIRKcxu0tRJr67J8dq5/E1RbplDq5Tq6VRb4Pu4Bnrj2pUSW9s/ESvHcz1ENtVCmKqOH2YOlEKg7O//9pcyLYmFjjL/+TdybD1CSPA8tKoy/VQm/SLkZrLC9uE7idYtzueMEtksAHKiRiVi53Nue4WHruIK6aJ/XMDB6wN6nclaNWVMp5svJfRFT7/AyKszUqkHAeNA7y71HQ8/mj1ZETxnX8aEe1RIWYS3eto3V3v7fFQ+1A1R+V759qypRLPF/M+xOivJNvGp4kEZrom6+ri8OtMKmdUci09piQ6faUddvUian7x3syJfQ6XY052KHsGiMOaSlgzsK/gCUpjV6qT78l66Q4o3ycgl0lxctYzRm9Q5P2b1IQZ7DCWHMnfOzorNHEuiOGQZBUcrZ7oVRmvS8JOmyJ1AfY8w9eSyDO/fJYVJudrAJYrP1zmRRi9pHVNM60CkYDhGhNrkx1hkKpiWHrwTo7BvsG/+KD4RP7xtmWAxHttLJiStyL/tDWbAg+EDHqqrJRa4b76SLzIRd+Fp6g/rhEid+kdGQMFGj8HtBq4CtUkTLuV8yG1a6uVtZiL4/hPTznnrpp+2JCNiiRPJljqxJU4QY3v0JQ9Rchsl5yRFpM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.0.0","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v4.0.0-pre/tachyon-4.0.0-nextcloud.tar.gz","created":"2026-08-23T22:30:53.048263Z","licenses":["agpl"],"lastModified":"2026-08-23T22:30:53.067165Z","isNightly":true,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"AS2rldgR/tzE480Sg+n6XhwacT+KPFrDgbFbx0HzhFGgf44W9YFbNmxZXSMtZoey2Qc9qDtlGRuNygf1tWXmTlX9du0H+Vo/04pQMAdeL9Ydhxkd6a++EGGhNA5xM8nnerALcjfbeg38yr0x4bseUYng5+VCv1dTsZkPDqgQOK1sl06ajIMj9m4p1GOtXmIibyXkNH2g0Yq4wTKBConydSsakXZobAfND9K3VQ7Uy3KIWXdmMzVoMx8DJUvUtNTRIfHJgV8w/RUo5N6bM6IKlgVMV+7FcR02TP4kAbov3zhu5fXYFImDelQffAjTpbov+3Laf46jVkdBqErL6VykWwRcyGBFXsgTJjtcAJWjjKHfdZt69JZAWkheCurz7xbkFJwS3/S/iP5dQCaBZGaEKj8JpOKNsfidQK1uKqHstaAz5VJna7HL55LJE3LJaEbDOs/EiuPedAIO8xWfupEjXqTUzLktAWN4OqelTZdW5dSPOLDUpfkaE6za/M/Ew1unj/TDYpqFoJUEi8ZFP3erD4Rr0LW2iYQUH/gR8pJXnXflG3gutfCddkgRBjhjvWO4MwfYVKcPolylMD8hQ6GW03cVAAyaGbLYsDkq2NditgDapF7SuHpN7jEYnyleXRroTW3hRzbqh4/N6nhp1pbL0FMlWFBrfmm7g/ig18n34ow=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.2.8","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=26.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kimusan/Tachyon/releases/download/v3.2.8/tachyon-3.2.8-nextcloud.tar.gz","created":"2026-08-22T08:39:31.802247Z","licenses":["agpl"],"lastModified":"2026-08-22T08:39:31.873164Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=26 <=35","signature":"pUWqoUEzrlKC2rEdfvU9Xd9aVBHdIJfip1v3P7OoipQ9PLbZW71Ka9E9XMx1sV/6kmQLwWvqUWb0VkhC5oqNrHuXslGJSAR4Be5ROoEp76qyBwwPu1Q434gLG/gUTrziR+YAForJyNnnVAaHCRHWFB0nvnrH2G9HKz/M//Iegr+cA0g5AXpQcvRKtESesMMO3eOON6GTjLc0BOmD/yt9HHQ+Yu2PR23VYGa3hlvrTgf52vJOFRoygRDWzQyjJioXSSXuAhq+odBZSNlNNyiOGK4Fd5LKRvKr0H3pojRs9HJvEXUF5ANg9BkGjDFAz9/PLQpcz2i7Qq/zV7MwG60mp8/SHw7aA4WEK5OkLqWRPkHvrzL3wMCGZeFNSDCMHekAbCjHubCD11SDz8puNk4xGs1M63Wrm02vuqPHDoZyFEHwfrXLlbiYOoEokfVJ7CGDKJaIFqhWdigBZDIMRNHD+hBy6KvrRqHNl7Gt5g9+RqnAMm3Dnh4MFCVm4djKil03GZx/mg94qOzZJDMyD4TLAVQ2v+Q1AM62e4aX6Bt2iEvZUV1w6U9CEOmaWrqfWKN47zrkUouX53Ue+Pj0m8P9q6nVjH2qcvsIYqmxXXOT9eAXjOeAzxM5IXSrOUmsggw/rBNa0QyuXhWj7PEzUELiVu4DCRaDT7V41yMr15ONEMk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tpbXVzYW4vVGFjaHlvbi9tYXN0ZXIvaW50ZWdyYXRpb25zL25leHRjbG91ZC9zY3JlZW5zaG90cy9pbmJveC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Tachyon","summary":"Tachyon Webmail","description":"**Lightweight & fast email client.**\n\n- **Dark mode**\n- **Responsive design**\n- **Full Sieve filtering support**\n- **Almost all IMAP features** including advanced searching\n- **Integration with Nextcloud Unified Search**\n- **Integration with other Nextcloud apps** (Contacts, Files and Calendar)\n- **Multiple mail accounts and identities**\n- **Send & receive OpenPGP encrypted/signed emails** (With full HTML support, ECC keys, or plain text with Mailvelope)\n- **Send & receive S/MIME encrypted/signed emails**\n- **Many security features** (Sodium encrypted passwords, Sec-Fetch, TOTP 2FA, DKIM, prevent tracking, etc.)\n- **Kolab integrations**\n\nAfter enabling in Nextcloud, go to Nextcloud admin panel, \"Additional settings\" and you will see a \"Tachyon webmail\" section.\nThere, click on the link to go to the Tachyon admin panel."}},"isFeatured":false,"authors":[{"name":"Kim Schulz","mail":"kim@schulz.dk","homepage":"https://github.com/kimusan"},{"name":"RainLoop Team","mail":"","homepage":""},{"name":"Nextgen-Networks","mail":"","homepage":""},{"name":"Tab Fitts","mail":"","homepage":""},{"name":"Nathan Kinkade","mail":"","homepage":""},{"name":"Pierre-Alain Bandinelli","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhOcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzE3MDcyODM0WhcNMzYxMDIyMDcyODM0WjASMRAwDgYD\nVQQDDAd0YWNoeW9uMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArfaK\nzfWUYPmoFRt0mjG5uCAKt40PjaUxogv/zMUvLUS8VEGqE6Cwd5Hq8E+RO5Xse65s\n86g1A+WyIw4GgFrMUcDsQe+6lsvCffpxTolJf0GUFALss2E4mLkS9v1khU8dCpJX\nTWE2jztBk1gdf+Zc1DX+on9pVGibjyIIOFv4Xl75ws3AGXl7Ql57vvtB4Wmm986h\n04GGMBBY6xOcEByBbxTqq2DV2YqiXvYdjmSszNiKyuiiHOZYpFjWwxKvRn2Qxg9E\nz/C7/jWYzjsi+C5NjwJL38LY6Ti0mPNmiZdHJBClC/ShwF0xrUfmk0dhSjMnuCey\nvzX3FOuKX6fBC33GlhFsqnq8mWWDYvebsPYXsbtlX/opSryk+xYMtmls2mkO7nqn\nF4YLcJ9J+OZ16zjDKBd7mCLYIdMBwrfEPwi9mt8JBnxyVAr44E5HTho4LDY5AmE/\nE/lm+y1C/XdIWLTPnqagWdpw8M7hB15Zl8JpySaAdG4FTVmYf0zsUlMRLypSsSJN\nMX3q/7f05HIHnJErl7NZ3xdyNbQYFB0Ae2Fv9xwo/m+4iuVXn9+HIt0BnuU2u/l5\nRWBK0Xz8AVqC1eZSAVmOQu6XbaDvbu62lDvhiB2qp5XVe/O+lHcP30CfcjytCFMY\njL2YW0dXMcHwEsQCRVLWBtVWhcc+PCXgo2kSne0CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAKhsxTiRjZejpwijYlgX2CPhXdDFYJpo9z8xeMfuyqdr1D1WkkoCYyvFx\nA/aKXOC7VMlklHlEdejubvSpRDF/HabROMyOPwfWHEglcdKiKfNQ7v9dxt8sxcRA\nKWf34CO9DeT8u0SsgOBF/yJRnqD8/VXZkcStN12oYLYvYFgjReBhnCDtS7vvZM0X\nUMhIan+ta0StZuc/+u81safaMJqA1CrUi5dZXWm1qzWXgXXau6OHfE5q8rajAEX1\nIljrMA1FeL2wcF8ReeXBe5IiBgfNhGxH/bBnCzjDhQe51eVQ+aUmZb6/4E73dSBX\n0zRcWfRqxYlrlZB93G6idGWhHUGVKg==\n-----END CERTIFICATE-----","discussion":"https://github.com/kimusan/Tachyon/discussions"},{"id":"lager","categories":["tools"],"userDocs":"https://wenigdigital.github.io/lager/","adminDocs":"https://wenigdigital.github.io/lager/","developerDocs":"https://github.com/wenigdigital/lager","issueTracker":"https://github.com/wenigdigital/lager/issues","website":"https://wenigdigital.github.io/lager/","created":"2026-09-24T10:53:03.114028Z","lastModified":"2026-09-24T12:50:42.935014Z","releases":[{"version":"0.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/wenigdigital/lager/releases/download/v0.2.3/lager-0.2.3.tar.gz","created":"2026-09-24T12:50:42.924119Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T12:50:42.980105Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=30 <=36","signature":"WsAjPNcnx3hAwDj0KXeYKch+pYGcw5aLhob5SWBFkzidOa5xkHQZng2/HDy3TXOymcAx+MWcZ4JVnvDcqAN4buEh9/eoM3eJhiKuLTr4v0MSsT5sNFcsDS3qJaFNw2/ut/lrs3m+dIy2KF2TP2EQDaUrGlNYf8q5qVE99NEVg4viMbag0Yt02kjUIAVIQFpTcgJslNnsAE2r0HIUGV/bVTug7rSIQNhaefM4zUkZFE4CstBllJPxbOJi+VGrus9e3pwhXLuyF/hg+/RDy6Y/++n3DHoOGqn0cKKS5TulmDqvzOvGFH2fnI2Jls/8bCWr31QrN9iPCKJ/CWD6JUiU/L3dGe6An67ZadGe49dcnijSSiB0WJ3FBAOufZekqGsqxTDzI5OxOCH3f5O3Oi5tpXFMlS6PghGRdXjbOdEpE2A6GL4Z+mRyWr7M5lSNr7eJE4wn9tRC/mp/68xGDmV9ZN3HCh8fDm99VUyEHbz/jdtnhisLxMvlJr0K8oYNIYCLO4OEW3JIz59PKoQZh4EObc0Bl7xN6gUIxKBgMHVeIyB0PWB9Ke6opIePy35LpFn2zAKIjCwa34oZrKrRBMa+IdJGUH+tCIa/srWOEMR+2krjpTPkW91acbjBstPrIyQfr0+Ld2LnKQdoy/PgiRuT2poMVKlPWvSxNkIQSSalpKk=","translations":{"en":{"changelog":"- Add additional GitHub Pages screenshots to the App Store metadata."}},"signatureDigest":"sha512"},{"version":"0.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/wenigdigital/lager/releases/download/v0.2.2/lager-0.2.2.tar.gz","created":"2026-09-24T12:42:40.393907Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T12:42:40.450641Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=30 <=36","signature":"ypD/tIHTxKFHUUjlJ79r8g1flLwBFLQaQGXet+wBMGeDTPXztFEvp990sUtmTMkVYQ1UjAXp/ZyBMUXYRsX+wnJO4EP25Dh3+M+XT1G+ajpOEaDahwmJ7ZE7AjxdrunncdK3Dtu6wgo8jkeBCukKvrRzr3k/WfNb6UsMRXiPF8G3ghSyrg533jS+uFVn86CuKAVfoACADX4hOi+bVM1hEC/+moXZk3k/D4ViaEvFErkqYDcNJ+1ugV0LDnlGx2I2H7xD9K6zdNeDxaWFMCngND4DGUy5uhWA8PmwVpyf6j7RbGLBj8VjU9p/ENxxKEa9q8PFYMzkDcnEioV27akg/mY82QRD47rHUwM1iZ5AVtHnUYsmEux0yVeWqZ7/WR/YWwItdsnjt3em+qIt/Rg7EN5ASVItRpQT/LPW9r3I+VYItU6kJUtaAw0tncC/nydNT+cmTIUwgH3Wv7y7sEPoKjCwWOHyegGzyc+lB4UvkuJFXTor8nAexIpopEhJo0QYNJeJfYyPBEf9Im5Yd0mcd8AaQzi1Oc3A7t/O3TWLjTt2s6tylQNhg32izGUMNIAKU/cnKLB0sN8l5S9ZWNXjn6W7/qJdBdPJQkWsMDRyN/1ANR5K9bFMAY28ZNuiJIM7XayNXZqdUpguH1HJxYg94RpgBOU4GMPjL3Na+H537TI=","translations":{"en":{"changelog":"- Add a complete App Store description with features, privacy information, and administrator-only deletion rights.\n- Serve App Store screenshots from the GitHub Pages site.\n- Use consistent author metadata and the current App Store schema."}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/wenigdigital/lager/releases/download/v0.2.1/lager-0.2.1.tar.gz","created":"2026-09-24T12:16:28.433793Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T12:16:28.532107Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=30 <=36","signature":"DV/sgHBbmRe4YaQI1GIADiTH4d7uPUPqQx5rsMln0s3wInoZvk2UUN/+7dPxx9f8Lfzl2AD2rZZetaXEdi+NGFiolgwbWI6qMCNaOlx3o6hwq8iKLE5OW0T2TC13j4DPtMI4hG1GRgpMv6tvtZPWImChs1SLIqHtCQAaAWy0t6dPIoZc59rcZjxuxK+UG3/BNEVwKMdsByxc6GL61uVj4fn6q3+HhQmlRIb19h8RBu8qk0Re/l/dEu604Y+sFyhFax/ZhmiKS1lZK3zrS2Ui9H3+A4hgLGMEnYJ8ZhrtdGfh16RySDf0iIl50sUmU/roQVlHVZe0eP5dUjVi3wout+c2xREeU7nK+zB701M6PPKPZNo3lwq9q2NzDJhM32iUHw9TC/HOcc2VnpqsKQcdp47203cVB9xzP0lYp8GPqbdeUt2C6cC6xP0uHBdWOOEykzDmOesP5/Go9p7ITkkWgnymE40r2eNnaGasHjP5TchFe7HG23vm2JaZFhnCz8WV23IIiyrzcbltXc358KO3CxfTdIIBar/5TYvNB6T1A0sVERDrUdVr09KAi4vbt9zdOPPE9RyDi7IurQ9yBx1Le08d28EB1MARnswC3eYfm+wJy93eOG0Lzt7z0faAABlMmJwtYCZSWyjhHIgtc/KGWH49u1Vmqp9vYSKAB6MI4TI=","translations":{"en":{"changelog":"- Fix CSRF compatibility for read-only requests and the app page on Nextcloud 30."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93ZW5pZ2RpZ2l0YWwuZ2l0aHViLmlvL2xhZ2VyL3NjcmVlbnNob3RzLzAxX21haW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93ZW5pZ2RpZ2l0YWwuZ2l0aHViLmlvL2xhZ2VyL3NjcmVlbnNob3RzLzAyX3NjYW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93ZW5pZ2RpZ2l0YWwuZ2l0aHViLmlvL2xhZ2VyL3NjcmVlbnNob3RzLzAzX2VkaXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly93ZW5pZ2RpZ2l0YWwuZ2l0aHViLmlvL2xhZ2VyL3NjcmVlbnNob3RzLzA1X2hpc3RvcnkucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Lagerverwaltung","summary":"Lagerorte, Regale, Fächer, Artikel mit EAN und Barcode/QR-Scanning verwalten","description":"# Lagerverwaltung\n\nLagerverwaltung bringt eine übersichtliche Bestandsverwaltung direkt in Nextcloud. Organisiere Lagerorte, Regale oder Schränke und Fächer, erfasse Artikel mit EAN oder Code und behalte Bestände sowie jede Bewegung nachvollziehbar im Blick.\n\n## Funktionen\n\n- Lagerstruktur mit Lagerorten, Regalen oder Schränken und Fächern oder Flächen\n- Artikel mit Beschreibung, EAN oder Code und optionalem Foto\n- Wareneingänge und Entnahmen mit Menge, Notiz, Datum und Benutzer\n- Vollständige Bewegungs-Historie pro Artikel\n- Artikel- und EAN-Suche\n- Barcode- und QR-Code-Scan mit Kamera oder aus Bilddateien\n- QR-Codes und EAN-Barcodes für Artikel erzeugen\n- Deutsche und englische Oberfläche\n\n## Datenschutz\n\nAlle Daten, Bestände und Fotos bleiben in der eigenen Nextcloud-Instanz. Es werden keine Daten an externe Server übertragen.\n\n## Berechtigungen\n\nDas Löschen von Lagerorten, Regalen, Fächern und Artikeln ist ausschließlich Nextcloud-Administratoren erlaubt."}},"isFeatured":false,"authors":[{"name":"T. Wenig","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhQmMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTAxNTExWhcNMzYxMjMwMTAxNTExWjAQMQ4wDAYD\nVQQDDAVsYWdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANeRbW7T\nHX1E/P55AtNFF4XukbVakb0WryiFCJc/j0jvrqsYm3eYu788f3XPzB9Q+Vv6uxpp\nesarU7YtryQsO23Ss3QCrBvIgUycJlRSyzIImdxf6POqfY4Y4mpTW/XCSr2vJRs0\n0FNENJ55S5hJ9dEbuHSpnvmLI/2m9WipSAAOluSIPKEPEDbFl9eQZ65JEFZTFhxm\nm/IPlR1C1OA0oKfhrP5PcNW1KfouRY4/sSRDFYyo6Jdy87tyGNnOoPq1SdyYJR55\nCzIXH/+qmXpiL0gXdXOAzYHiL+Y+EVK8muY8rJgzLJrnjI3RVexdVBGUCCib9DFP\n4n6CJ7urhYSE8bqIDjtXl6J7fqCTWGfWdQBW8k0aNT4UE3IL591k9kcNczqZkvWK\nnHpSyERa9lZyddSLGPlwcbcOyRJHfJLPdlu3wsK3Bv2X6aDPCCX+ohT8C43GsT2z\npIuo/Ke1UvHU6X0fuuIE+4kqOax4SWrJd1oY1g2hgmbjoGjJTgWnS2HlJlZXKo8r\nixDTSGc58rZHUdYEhIFzWaDQh9udZ3IbEmA3x9hU9V8TrIna6QqXZqZ5dpB7y0Rc\ne3WylBPaUvobaJPR42f6xm97aHxivT4PW4/sHkYZc8db7dnHOlOA7JsxYD/Axrb+\nV3BUZZ6QaefiRPJ0az2g/kFSVUtujjoDf3o1AgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBADU4U8SpOtnuKapP8JcEPuFpvV6jf+ixWJ3GhATtcBIyEWJe6ltdJhx3s/UL\nC6Mf5VW+Dw/gNsLblmu65fNFuxYan16DIp+HNrwenodV/cdzHyOtt4kGLUtowe9f\nogWSa+IXSWtw5+vbqrqSiwiEv1JfLiMYawWl9cAYS9HvKX4flpzGIdmz6NlWv0Hk\nqtoRcRCj0QgwU3zCn4D6R21ZdqfJ2hQpOBF7xib8zFRTACGvLu2lXK5ttfNgO1I5\n7DBD8oOqQDCWzbtx1N1hkIG+OQILG2VeMgEh+qhCpkSQRwDjpHKh5XSrtG7de65c\nH3iETtRkWF4v8tAaI6ta+mSX2uw=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"noteberg","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/thomasleuthold/NoteBerg/issues","website":"","created":"2026-04-18T19:10:43.230343Z","lastModified":"2026-10-14T17:03:34.186870Z","releases":[{"version":"0.5.43-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.43-beta.1/noteberg_nextcloud-0.5.43.8-beta.1.tar.gz","created":"2026-10-10T21:17:59.628825Z","licenses":["MIT"],"lastModified":"2026-10-10T21:17:59.648132Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"CoSGpE0e3echOhxOtFkiU2Y88fSLYpGlBVmqQjrh5W8dbP6vUDXqBjwtLKi4d12ePWI5CkVuWIGHtr7zsnDx1ctdegtsJ0Xo0U7iNfrHlFepZwYJwU0uRqMz6CVAFAqfOtHZlAEjRdY1CCItFPIYU4AIoNzR6w+EWVSE/JUDwm/jonz6t9Vp2jPfP2ksLqVslkyDx61V/RaKgKl9aRvYQAGblReOm7NXk0NqDz6HCnGZoGENYXbWoB1Kq+kyD3B8pg+v3EJLrPR0RdBkDNg2HKgR9b9Ulwig8iEgu/YAPLI3Z2LPzMtNvnKm2ZFdQ9n19X2sbzBXVi08+dssGDq5ZHTb8e68iq3JrOqufeVbd4VZT+Zylaa8SbU4d/ozRm6XerCBr5QnPTnsLTdjKBu9gEyuWQslDlX0W3nyAYC9o2NftRDFuTMJNdmIyRHmiSgxxQL4w02B0rTPQ5pexdg9QePFx1e7oWWJQpuCauFNIghLFMTDgBvIlDSSkLuPJLE0FchETgIgbFqEff7W1BGcMQk128lTzlbasbPQcBbvD2kgAl9q1SkrWFQVlt2hoAdVFAfv3gcOqM8rJ/jgvawSzUSwr9arZCvfvmS+IPzE1YCj/jNanp90UQjhzIrDwgF78pvlncRM6QB6nnDKI+XjpevMUBT8+4XJQ53YrszDg6A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.43","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.43/noteberg_nextcloud-0.5.43.9.tar.gz","created":"2026-10-14T17:03:34.180437Z","licenses":["MIT"],"lastModified":"2026-10-14T17:03:34.218267Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"W7+3Azl6Tp/zrZaBh4LZViUvV/F1srSVxTiF8J7LB19RxmfFDxsVh/3V2a5MwFhKRgmWcPcxlPqbIt9FFrCNkQhTGqcNgQH2O11ikCsi8xrK4wu1Kjlny2gHMlfIYaQR/+YFoqgJXw2QJM2q05X43E9fwX9eB2TIEnSbF1nZASCbSWpt2qvEKIVf+jXYUYJJji+nuXNEu4Y231cTWty2tqFOS/1ZNQglWETfR5J2I9k6pcP/XZUneIbND28/tZKEzrlnFnbLxnQNGFpxFqUxXYfF/TF1J/rlyepMi9X+l1HJKeF3f1O2ezSPWVvr8d4uDJeFoD3pgOcPZDzY5Su0/4o1eAnP469UzkR1vcbvrCET3mQj0aQHP84zWG5EWhRnnuvRt6Chc5EA//HocLEdnC6DOzOrNx2WJUlZKnug+IKocL6qvBPvDFtaWc8Z5l74uZkzt2/VbgixFaxysNhbcQtgFtR5NtOKUYFBK/2abDJmuaFPwfmhCqKzvCAHyDXqVXSx5ug7pSiO4QjKktkDdVHxnLCg0r0O8m9wvrV2p4iQ0UUjhYuEez5xq9rKYS7O/yx7qUgXDYH9R0X9b6gBYgnWjLhnoYrpDIVwjF+Rpfk+yWSF/61iyLsUImU+GVzVTnmFhqUbD0MpFhBba/4ywPUi3yRko3Fbt1rqOH/JX/4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.42-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.42-beta.1/noteberg_nextcloud-0.5.42.1-beta.1.tar.gz","created":"2026-09-08T18:35:44.211428Z","licenses":["MIT"],"lastModified":"2026-09-08T18:35:44.252241Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"TtuAvMBxoczC7PLEF5V3KVYKvxwB/eC+3HOOg8g9gBmY0fzOmPO+dJVQYPoj7bQTxlzLirqH07f2/NiMjTS9LiJLrg8Mknh3jcFQq13t+bk7nGYip8qi1jGOYQd7RX1wCgQLEakYyl+p3G+i6It1HCR7HtcH2bMFLTgeSNrMy2r478x8S1cqC5FlAsJSb8bB2DAjzttn6Qfs9DVOFvcBGrDB1xrMzOBahkBb2bpQwGtF8RxRZbHB6uY3bw9ZXSRwmRMPTPDyP9+DEItNZkg/nClhi6mtaWusONUidNDvdK2+TbAN5TdHuCXgf69NuQMp+nwuZOlll/5x6xZeV/91+zEsDcry0/pDgFx7dzr/94uhz81xIRa5smJdnYhHNcLzmGPGQiLVdR8Dc6+Oe6HOCHi21o9eD0u34KhhHG1RoK+sMdxwLMHmtixvn9PWqRisKHKzMVJdUpH5MgMw9hQYkLTNL7EkUjq5Ur8xTVKnGSKAyelmtLP3n2gOV9WDA7NtsjNp5mr/d3VaxDWMpX9cV9A8di3vVvdOXDWCDlsAvdaAtbFUTU54G5Gj2pZ/GX+BUuo/5tROUpF4qm0W7tcmVZjqREssF7q28L85WHuV1ALZO2rtCEShRAy/t2TW2rOgbFt0CEIaKYSRRPRbmiscgkXS5Wy8u8ascjUnqLHR9k0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.42-alpha.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.42-alpha.1/noteberg_nextcloud-0.5.42.1-alpha.1.tar.gz","created":"2026-09-02T18:13:57.378470Z","licenses":["MIT"],"lastModified":"2026-09-02T18:13:57.407198Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"plsK58eI2h9vV9NcBzPGrZJq2Q3WUNwwPz9B6G3SUtSODVgDKN3D79Fhcxqk3LJHpBka+zpzKgrjY4EIeBytMlBUB3Bkh3Jg0DKnrUaA4bBgLHrKVhT1GSDmiAl6MVnrpnRj67w1vW1UizT4QwAZRnx9Tce1QS4R73ml6ehVJOhPC0o1n+kp4m+b+43wTgL/xiD8qutAXlDsrfY9cld63dCATY/cuXxSFDrnW5CY1TLCUTsfA3xo0+AVGcMgtYo5Ho93Y+K4s7MOfso5E40w7P4lT9LxhkW9Nb44q5bhlPxP67EZA109ktDT1rFNN10fvhVa01gtS3dCCM7CUOdNYzTNtR80NS4QNKBZijvGheE4xmB80+rZUBwhyVrB4mtVqXe2ClTKNEpjMQhLEQe5YIxEQIBmrGW7kUWcGfeUMl+3057FWHC+3CWEnp5VABE+x8VApYmJ+cwAKaGIfk8hInqy9jEB2x7SiA8CvPn8iu7PwTK1LCgZub9CoP/8ylpQkwLyGb2LQual5NcQyJz1MSLk/hB9pGpoMYSsRT+wXpQbeexkKluSexc6FHccGvRI4cLzyd+i99o887Nykv+CUwaNz1YTXo5kcqrEAPFc5N3BUwW4HLjRc30Q6Z6EMixbemvdb1m+kLfRKKktmYRv24uUt3bVJF15bVQ3fILLeTU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.42","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.42/noteberg_nextcloud-0.5.42.4.tar.gz","created":"2026-09-15T18:22:51.262665Z","licenses":["MIT"],"lastModified":"2026-09-15T18:22:51.321454Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"I0pAU6dX0ezQY9G6rGQhklDAmj+0UoYPQZ9wneH+876LlR2T3u2bYAiojRsRobdtUeO6VdQBrvu4siAgXCCqbjOporQEqP4gvAtWqsSl/wzDTkeVueDo8zpW+mHwlibqAobQyIWh91rTaQL+k2Kx7XBJPL9GOYlKefhBfSU/MsDESbzb7PLm79bbVH93GcwNICBEL4pc4qAAvugmuqdNZSdH8PQUgpGCe5YOGb7ObLapaS5dG5ssMARM4bKuaRYXfTxuAeN684VVYW5oLCaeTeMoERBZa2dPzUpmggpnT4LSM2LQD1nHYMZ6d0NvNaviqlss9an/PbthLfJvNXYgYXFoStb3M27T0VJXB3pCnjziuKT8iKIyvHIrhRUK/cKwiodGrU3en6l0O3PTe0XqkZyt9zexYkn7AvHfp2OnA0AFCkgMNsRfs2xjZvaTvxbnbDvTSrhB+jzhRy9VJ/Pd03Z8bq7ILe7R2W2hWr/EneDDc1TpD8zTuRszCXY9IXBeFh+N5BBc043g4B1cnJPjCI2mL4qvIRr5xgxh4PdBXnrOh8Vx3dXO1WNgDJXK6FkeEOg5HN9wtgs9hV1+FERmfYjDCufcFjD6KZSMAXujHAj4KmxeC6AOZnPnrD4SCacx3cLbfrtfrttHq1eZGwFliHmEStudFHUOxoSSlGf3XFs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.9/noteberg_nextcloud-0.5.41.9-RC.9.tar.gz","created":"2026-08-19T11:20:29.102709Z","licenses":["MIT"],"lastModified":"2026-08-19T11:20:29.139952Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"MfwkN9YbhArrMTZ3kZ5De4dDalLlTb86bUBkGqY2PfPkfvP3b9KAuPfOKAUH3OvzSDQzsTT0xURfozg1hYNJznu56mJEenK4jRyHR1rHZFEPQlop4E8sx9VOVYIz1lPN8axxvhVSX+Ov/b4X4iKzdYl/jj+a4DOZWVgV6ozFXJUaWZ962lNUcDExt7xvZUiVfYkCiBJGCBxk6fPZUwcAY4gGhYG3tPnB7nzUILSZ3U6ekmUUVYNesuV/6kdYiPMKph/IZKR3uZdRNVRi6Az2i3qSgmSzok9rExD2Q20LPE1MpfKCOXLjqn+JBSXx8SIjB+Bm67k7ctXfBNvn8S5HPqqkAzvWPOQhrvb77y+XNnPVa8wIOWrtI+nDLicpEGnxxFFzsbyMa7ltdjLU2drlnNUElYucGpb3sdNDAc02KP8C6av3y7sU4KJYx4A/4x+zqijyKTtCWsrQ6+cUZNevLW7J2pf9f/k5tG9C7FsPUi/mmxLSFQjuhc6H9yOJg4V1OrIPlCZdB/hb8qLYGgQqDzPYScFmWpJqsyJ7pGbl7zEOcgx9w27Ydhouz5FMgbTRB7/EGBuIKuuY8xVNT4WdBf60FZTIOo/fMyF6HsRZ8qSLLgMbt82YQOgFlAvNM2waeoJdUcM12sN09cxeDXiz0cCKOwIWxaK2gHV0TdnsVUk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.8/noteberg_nextcloud-0.5.41.8-RC.8.tar.gz","created":"2026-08-15T21:43:43.325512Z","licenses":["MIT"],"lastModified":"2026-08-15T21:43:43.376569Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"IPC7S6kiv9yvXh7t9KG+/Ua9G1CEdRWjXCU+bW9OE99pDe1kBpkzH5poY1RBePtdOMwZfZbh6bcNypEDc/bNcklwYrpW0/t602NJXEty0msQxOqZIe/Z6uBwm3+k78XIQeo5KEcjoUw+/Uq7FL71IqRJH4dMjzGHVs0fcmaMxjmmRtOB9/BopK4/9ZRvyn9EQ9ZIpzOHrw7SF7ZbTB6sp0TCEquvrSax/Y1AFnV9c4SEuhcN3FOYCIhlcSupLh/tB1IGLHGyJvXblyYG/39Glxhpc+IGRG2Cm44SvE1wln5E+/EDaRvpQl+qabg3x1W5fhpU9UDg4SHcV9M29zzfZDR5ezMvlYnhMgbQ1nCopoNU+CjjCgMUkUX06K2ocEwFuk0WbCOblG7Ebuqf88leXB1hfCFwv2drQlQQnvgAT/Zl2NanT1GTY8XiNmreYG485bJvHdMvFfQg9/2ZEGBzIWCtyoE7JAxVCrh4zFAwjJHLLA1tKUn5ziNJM787PMKuZAM/68F/zIMXPRqDPAYDLuIxl2X5ZvrS90kEVuqOCRqimnu6lI7f3ye6uj/XCJnspblC+V0MkF3xESu5XdVDkjs4OxyasdcYrJ8tvsph3C/vDumP+H2N91QMgwIzUU6VV7A+0GASzypjvbMwXkFntpnvGFHQohGigkrRK9P9NQ0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.7/noteberg_nextcloud-0.5.41.7-RC.7.tar.gz","created":"2026-08-15T11:35:47.314258Z","licenses":["MIT"],"lastModified":"2026-08-15T11:35:47.352078Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ApVxAyTceKwaxk7Yrnv6mK0FY/eyrkW5SFXnZniPgBl++OfVUTo3Z6G0y0fS3/n3DTnSLEgSQ5ksBtP8PL73zeHSM8Xxf5zDl0vkqjk7YeDFu8xWbZ5L6PmGhrEQlwBk6lG320xAS1/U+5KsGT48fO9+oRpWROdDRHnRufamoz0xlKnC0WT6NlnypThXFuJFcKEOvG5Hg9DN3+vg7fm98By9+FdOiTAAgQzsqly9dO0lMow/8MZbWpWQy8kEXN4C/mEuC7/zwKlNhthmlR9FZObLi5FegcocziN/fHH9Lk37Lximk7hQaVXVEDEQTo7hae74YUJlyS6PgtO/t2lkWuZ+jv+8yUtIz6svNCPoE9gAj6lzAC7qzkrqFLNdI2fn/HIey8fNtb/jbS8m/i8iF/feaRgGKY/1Ragl+C+2eUIhx9/VqvI+fTjQb2XuSHrO8o5qQ4afITBRLYZP3cZVn5kOHiGKL3zsYGZkcH2ZNNZiLbUEYse+oWgbjwSvwhtXE8Omwqjay0IdBqr66C74X4TAoCvYmr7bvIzmVVoOVQ5a6M1Jy4dFna7a0/nshUdQFQw+PDFtkB8TbxKWmVLcoc9/DGBEsfYItc4RSxrJWri4fpz6qFskFiGXsuUBtN/9kY2ojacU17p707yr0xhPXBmMaQNH14aHC3009g5p1f4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.6/noteberg_nextcloud-0.5.41.6-RC.6.tar.gz","created":"2026-08-15T00:19:56.794924Z","licenses":["MIT"],"lastModified":"2026-08-15T00:19:56.823926Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"kfgKlQgq/7bjGpePXfITbY8vJSSckfyd8c6z13ZLgYYzc6BjAvm3TubuiWLo1rU3IPvIos/CU4GSAGzPio4tIaB9KlAK6wcykgBT/mhUJgxqqOa9CYfe9gqzLtsg6Zm9RfbsRWY/fpuVbKqegCE/DoeErrDKmXu4yAH4GO+21EK0+P1upZ4yp2q7WNKsXkRDsN1B8hgIX+pQ901+294OWuxqC0D9sV96ik98UcKuSV7El6Sr20myHCB+6UrIYfcH2jAUpRW8MKHP2vO34q8uYFOc4sol64TTylo1ETHZvNIPmUAxDc4+jeEhLsn0Rpft8Y1SV9TAN1V0kpouDZim/OJD+wQ2hWOmdvLC4u4zfFHXR2XrB/FuLtkoihG14Sglgcen+Dldd3JrL/Zi28OG4LPK/Xrep4dKg5J72Ps8ssxd187Yh+wwcohOaPzq0n8Qfbnr6mu6/avipidijeyXB2576XDCbSrscCzhFU6LDzcapjXNzj98CpthI7jtgmg5j6/NOQzC0AQpBh6txwsJcoBzh/WQBWIy7BUqkP9Y/Oz4Yc3tIN/rhn1ZAEh5ozFatUjKEVT7O6yGhwldrWhomOMS9NwJo+j+g5Ng7aLwWHDr38DUb/9nSEnfDuCqAWp96YS82wDTeb1bTHLRm74eXdVG9owqTiTNCNop2xc6e1E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.5/noteberg_nextcloud-0.5.41.5-RC.5.tar.gz","created":"2026-08-14T19:00:21.445383Z","licenses":["MIT"],"lastModified":"2026-08-14T19:00:21.495071Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"OfuIYcbtXUrxN8bv0Nz8N1WSmeLu1eByNjn+KULizcPzp1y9gEB5+9WpZzU+KR0TTvN7Qq8JedqselNFbVMnVjvfmrETzaG2aEvfg3KGwFbSfbZlRrZFRkD5sVEiVG8i+utvrAQEaMCAvslZTbuy2URw4Iw3D6GmbZCoX7RCtBN4XII/22xhYP1SnUBOiM+2I115cd1e8vBbgGv/R+tOlIoQ1N5N4snSqOWd0n4nhBAURLCOC4OJz/CaB6QkxbgBX9aK9gVaBgrfLTcDJT2mUq/8rP8H5zCmPC2wkmm1ni6zw3eCZM44WJR7DT9ZHKKSJB2PS9G9LrzdaXw6naXD0Modm/Fs0rQYfGQLe72fwyurtU/ZXwzzWYUuJhJ5+zGmTSVBGERhYXGcOZ96+04DtCCrpl5sBrBGIAD5tWKBUGNR8wzk2qxSes8/GrDd9AHYgxvksI24isGhsw6doIQbBnwlrfpu5e7PlhTnsaXDXZy/H1kjhUxgou+iw1/BAoZJT0mTxHLZNVL+InHRSA8a6fYwfDWIsiEzfAs8c0rswkhkkGrUiUhpZrbSkefyCn94gNQNq21xfUD3vvJc/t4dVa6ToRqe5CrYoo7Q7oHj7Hp6w83bDDRX1cbj38r81/mMW3Uqvl8P14dzmZI3cpnwqhTbYc/USICdHr99c3mC1CI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.4/noteberg_nextcloud-0.5.41.4-RC.4.tar.gz","created":"2026-08-14T11:01:47.989950Z","licenses":["MIT"],"lastModified":"2026-08-14T11:01:48.044911Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Z9E8W+xdn6jS2ValiE/NvMbrhJ99FtgV2j0H/6XNX3FRVLf9hyRzoifSYnlTjaLUd8F2DrRaSq777VEAqDW2PdQe7lFUte2kDntE1UTRs83th4Gsq5EnjNu4dfQyWCdzgeCqD8JANh3JXXWou1JhTmAfo5jDpaXcIH35qlARLboHRIkFIB500z2XZZyYm5TN5ZOjD4ifDR8OLIXPzXxu4oqTeOKJnFfAwmGwAZ+3G5dFs3ClAWmp87altRgAJ3YjY8crSrgILoXrXWkctaMB96mDZ7I7Q2tgrlIeXYAjhXpkfJwr3CLtIlnh/Dc8P08jP3Ef3qB4Nsf7AGJrXsbfmq7aZENAesZuDnZYcpkiCWEiM8n83iXneHxbgYfMx+3k/PRWP1TtfoJIqix5bLyfoWhjXDHbsncvkTQCMkidPxZ9xp/F6khehgctL16LhpLuS7zXixA4MSzNaMKk7XnynqP/dYry25vI5Djy0GNqFVKLU4lNmNU2MSJ5q40Bf7+J3zjdXlFrY/MALrx1JYpELbgFI4p2sKnuSalTVbdgzMR6AaiLiuitBslHps9ihytHdIUYkQXkysW3pY3Jgc8WEAfW2Vr44MBqLZJrQgd6ANAgbwNy4sLIlFVPNZuGYRhChVJT79RGnUJx4wZmpSVxU34Msh0yqbIMVV3UhQa8z3Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.3/noteberg_nextcloud-0.5.41.3-RC.3.tar.gz","created":"2026-08-11T20:56:06.704258Z","licenses":["MIT"],"lastModified":"2026-08-11T20:56:06.743655Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"pQyK4IrhZLklyf+Nsdfa0Nez42TZbWarXO9JybQScqB/iXLFBHboxrcYeshkQZUBo4QMOlNsoG9lyVQma29TK4fr5lrxQGj7VT0W3+zifWY2hJwEdLqOQfyLlGBdwMrvwFmpPXhez6/DihlLygbrqdoEyhtuAae/ScGf+JMZQMAcbO4z9AR5V+p5Ov4d9de2L8QDqKpeLbG4EIbEVxJVPBuQIuCrPTCwOicb2Zg5EwdQ1HZ93ZhtGMTUhMHs8HDrlJN5dztVT+Xf2zROXz1AJYo4ipCuF8IUB8QittSeQDWubjdC1xCESDYwPJNYUadwZtxpZ/FTOZkm+9Uyp4qF9qSbqrxURD/hl+hCOk7EtnxYMhvn+avILAKGXtFfn2rTcEqpNfl2dQXQhVNHMzzhEgMHrawtYfZxH060xpq26x5jSV/al7I3jIqptVx8G72ubPO3hRR6aYwgD38g6Q1/CyUywPObX/pX4sULquEPDyr6VspmNh1SbaKBF6o8PDJQePupfinaLtnfcDa5Gsb/ojVaaCDwix3jmaaH/s5T95pZEQzaawAUxS21sRihly6PtFff4aJGFCSGTBTwTfGL7BJG+QioZbLHSRKmskxhQ9mu8hJoPTrojPeFKoL+zSGt1GjMywmTEE9U3LUmYNhBz2aSQC5beH/15xgtBuU8eIY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.2/noteberg_nextcloud-0.5.41.2-RC.2.tar.gz","created":"2026-08-11T10:06:43.261283Z","licenses":["MIT"],"lastModified":"2026-08-11T10:06:43.294984Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"oXEvlWSRnmUhe0RKRNFYnN3Afn0CxOkkD7i0+UkQgRvyw7Y3nfTuNmev1rx8TTq+nPYreauTLIsOrXqPOB9al5PwKRJLB3hsKFc5K60NhoL5H58J8mpqNQpYg9mgy7uBMlL4URqPoR7HJu3VkaQHiLRFU4BVbE5Fbt5BvSpzQyNycD2pAZeZ5+W6cprhUmHqGzzbWR2V9/HFcQuhNeUfuFXCMAJ/gGZ3cJk1Iyd6kDHEh/n3DwgdxWK6q0dXocfHwZd+iw9yYuAwOAd/F/df2qgRL1DwH7VsUP+GUPhv50x0dXsYbdLAcOj/DAkpCdbhxoRU9+GVjwPca2+47+x446QqtYV5hoxImFrZk/7mTrfieZaEaVVK7Gwo48Of0yr6cI6zmFqy8ep0tmWNooJidDnG3JaSehw5aXyU7+Z/g1XcbnpOCPaRq7pA8MFUqSZ2CUL5iYU8aSNwepeQXD5OdMmIw0ohOp6KSyuGafzu43LuTwx+rSXNZbm1zHq8sDLUNjyqKbb5122cl8TlSs07n1Pav4KjTw0biRZ25QqEsOJJZSwZUFz/V7cPx4v9Bmh30mufTSAWZyLdfuGwU2zSNeNf+TZlM9L2SX1rSBePYC65EUApEKC7bh9DglLKKwH+/uRJ3HS6Qh6WU8WbPbYzCwSYW8t20uXffzpuyZTXT4M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41-RC.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41-RC.1/noteberg_nextcloud-0.5.41.1-RC.1.tar.gz","created":"2026-08-10T16:40:05.897247Z","licenses":["MIT"],"lastModified":"2026-08-10T16:40:05.943041Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"uJPAlZHJ+zp4o0CJCk8ZQ4j3VV7DCRbORWwiMDqxoJXxszshQwKRxggw1F4NofDj//OWSRDQcpzbP4kjmJXMIidwTh1obAM0PDNl4u32fyDkYipsWly5pkhJeTsOJ671teUqsjxb0KHmtEhRVTTApHa5s96mFFsQO/Ot/FDfuG/Puu647qhskGay+KcR8cUvqsEXbBHskLHX2cP0tTbBNCi/hxsNgsqb4dV1dK2y0U14uhzysnbwob0rNOZUCaAhSKIpHvMNvm8fUViOjtxFkkIZ+mU/UfpUVgqPCkDwLimKrTIPTUcld7q3an/6HoJ5s9KAFLb/GcpGaNtfNgRXN0lHPDLwtoZ6TTdHue2fi0y1zt+sjyNj8HNhIofWAcLakdcLdLUZeaN2mR31yawlQLMQ0haitqqmiq/Yr3FCQ/7bYHJjLZs9WkPqpAtgi4xUWDs/A1A9oahYfFpu8gqcmdcBaylc5wrKuZFAivQkxbYJHUfVEY4fM6IjW025rXYGtWe7ISu7/FcnaVLlxP1c7uIGv3Seruxp0yPwj78G3yyh6ZExBsKhnmxsukvSUDxVYRW97Ijjt3eDJRyOk8/WkS6csl0xsN0eAc3OjyJ/NHnc9T9Pgd0cyHnV3ID6JG5MgzRS0fBs8bFXERxBCCWWnSXi8mfkqb0E7hFJKtl/5K0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.41","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.41/noteberg_nextcloud-0.5.41.10.tar.gz","created":"2026-08-19T17:51:28.959578Z","licenses":["MIT"],"lastModified":"2026-08-19T17:51:29.040927Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"bRy5Kv7dzJVFqKQvq3EzsFVa+hUdRpjkJvMpsLfid3TXeBeRtOafvZmQrsAjqiOF/tyRYwaP0F1rw4X+zQQ6N4qth2CTcKqV/tj7wFffuCFwRL7Hdd4pU/xjzxBFo15b7ioGP30HWqZaPdVm+la0L++pRHrfhqo1ztMWxkzzX8cfW55lxHr7MIEW7b1LsQVFJcRjJQ9hZFc9t55xh7ks2ktTWh5x2MrfVat8USFbU5HVlTf22kEai0XLVOZtMjum0DcBxmGB5k9X161qu3bon+Vvk01G7u2B5HnEYdcWI6NqWGxUb9XdSloddyAYLyjf8XKgRXjpEWPbj/Yk1WgNURgwSDdSEh47ydbtZ0iJsNWb3qYR8BBxft3+9cS1Pm2R+BBMNvGYWDsmNPBKbfjAi0eydSmEj84gm7Mxg96U8W84AcJU22I0ZrhKsgapiS7ILAeJKOcq9ZbZVV7TeryBN6r0lWoyNNIqm8ESGSelFkqogVHqLu8Ep0E99qx/Y0mNPUcJVDWELbbdjDum5OlNp7uz8i702yyNMAtdRQBt+mq84OKWvkPpj7yx8QjsDY45Hhe7NdIA0/Xnd0Ho85qziNyCaiRO37t3RuYxYqz33bmbH3x8/WGsxeKUIxkFpCdGHBijrANSpDhBtHcBNi7BCAQ/hec6NhMOnpqgjVJNFZw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.40-RC.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.40-RC.1/noteberg_nextcloud-0.5.40-RC.1.tar.gz","created":"2026-08-10T11:45:29.306343Z","licenses":["MIT"],"lastModified":"2026-08-10T11:45:29.317787Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"QS04myFF+/2ZmMso4oSc7wzXlDPaOXnT2U6bMm6V9oixB2p/1hLWSpMqmZ/PTJJZc79Cns6XajuvhJPESR7VafLpZnVSKr1XmaMc0AqTdORqFVOtQrz563780gIhvvlWquAkjtSL9xlhvaCtw/RfMucqpIKNYYwPbNsUk3NYDUT3BD0+fh7sxYDF8myucvtiyRjQ2tWD2SalHCpXw6mZ4lioB2cfdWyV5Va61I5RTWM2aNyaIr9jFAvi5kNZobkL0fkIHJ+G/2chCq/ApR98XwWY8KjftjcpIIvXTGNeEXrRwHcq2zrxAd441WRhhTGBLvuUlEW/ThXEk/5OthXmLY4URJne+J4OKxRZsP27aP7JNmYIjywpIiOir7giaLX4cPFZrfct1+3mpqUhWrNZWqIYv5/eLmtMke3bW2fSOuVwaMvAYxTGKsEY2bGAEOwQdTyNaRhtMg2/A0eY90uzV1nBohsS4Jlbdwwb0C9UKCS0UNpF7vkK5+SAL/JygQigUNqQBM2pjYmw9x2I19i9tzijT6YG8ueiABmTsD7BCqrbQSTdPNMlUroOq/mzvrTMx8ffD7L7E0cOKnRyVmFCkeQrw6ZR6rsy3DO6sJIpPaVAtRmB3MM6frM/9hz34BivrFlS7kUoAVQZUxKATo1YCrYZYokw2lqlpS21U8TGZsQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.39","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.39/noteberg_nextcloud-0.5.39.tar.gz","created":"2026-08-06T22:43:39.616030Z","licenses":["MIT"],"lastModified":"2026-08-06T22:43:39.690589Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"cVTgIpmHyPPvUEKwsIG+4zlAYJHDibHW9rhSaBRkZ3X9LSvW5eA4yD4JNyqRBoqYqQCK/u5LFcuZlwyF09aWA7VkhkvTdm+IP0AZxxsqoj7jVkdWXowtgiEuAz2HioVqxFrwtS92OQPgGrmCDYjO+4H2/w3655dBL50yzFJ3uefmJbggMWo+lBSb/45VkbJmlIo8K00ydFiUXNip9wZKgxUD02GLvgY18e5hlWHSx+PZCZ40MrZbppuvLCvce/W9+x8EkxSUyldOamMz/rLIL/xzQTl7X86OgMz7AyPVTawkFB1+Z2If6qd6yhF5B1Ui/KihUmPzd5PXj+rjNHkjtpN4noQ4ARkd36c0fku4KPCLwzUtQzw9rBRBNwTbNTCco8vGZO3txOBJZhwTUKBGqHudkxNdAC/koVQn5YuL1zeNn0WJe5hPWOPKJFX9IG8AXoXob/2xcOkae6WLl+B+ttC4SJmRbN12PNzkEi6pHdUXpApYQeakXcE1X0WzNHgvP3+1fTwq6QYL8dExnRHXymgfFqu2W4geBQtR0SRNaVDg7nx3tuoirexGWwMcyB6QeDU3uII4UitSxx4NZpNDbVDXdJRAHWdxUtZFMvIYwsvsL++QO3+NcsEKHjfVXM4IIJze+KaXkX6YwI4otij6/7cxqkefOlMn+98A1RbYOW4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.38-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.38-RC.1/noteberg_nextcloud-0.5.38-rc.1.tar.gz","created":"2026-08-06T21:37:15.790312Z","licenses":["MIT"],"lastModified":"2026-08-06T21:37:15.824770Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"FA5iQ6RaZqCpC5RQ3biSGcsrj1gu86kEh/A/nvw8WAPZfh7yNXeVEkVGtgraSW+FlvrtnKElMXT3GE8iN9pnlfxGCLhof/jcBmJEZlakuUfOHbHUPyt08D26gu5Si2cJsdSxHFVu5cWAlu6jWlfhFkHNvC9x761Bcfj5WKKAP7NMaMZiRM+GILd2HPRu8yQ+nL46heFAqV5gNgaUUJB2oozWumooHQ55V8pF/D0RkBVu+WLgx2m8iet+nyNuGCR81JLU9ZNaFRMkqXA9/mfdRbtSvuFDPDaAfoSh5IeuywvyJlLLTuSPIjd9eOt0KEmcjVk2EzwNQCuV2tTFKm5Kdg7BJwdXVYYAsOWdilyHiH0muwAHoM7Da24cs5R5mibcjGGZSTXF73GYaLQ+nWRZN9MRYgc0Jkw79Zgz4KRoMJq1sZwJT64AolCFfSTuqBQn6RJU0edYLxpzX4yfyLO1InnCFO38i9FbiGNnxdZnwJ4EG2DdBDMQELA9m/QcVzDB86kSHXoGnLPil9z95XA5xTazatj4EDQl/aDKON5nEDyGV+0XbgC+RtINBjGAKCohnB1ctCP77e/mA96vmnXSjXUuTf83Gw3iCRlWpvWD/k6Lyx5KfBDIIBpD4+dDz1yvPWrVgDu8Nkne5wDY8i6GE0aUpxVYqwQDgEajP6yrbtc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.38","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.38-B.1/noteberg_nextcloud-0.5.38.tar.gz","created":"2026-08-06T18:46:51.128561Z","licenses":["MIT"],"lastModified":"2026-08-06T18:46:51.213263Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Gn4zK8yxUQ/ycr0xKHGwWpJlREJnf/dw3lA1UTEz2RtdtuPGxOd1C1YQfKKYEtaGVJVXQGtmfybR6Z0TZMmFVezIwxCRN579ztkh0jB67Dlf4yCd1As0yueU5eYAovj4JE+Wo96Y598VeMEbiX48Z8Qc5Jahm8ADODituUZ/KMhpVPmvADHpPk8vRWMTiTiGcWC8JMNPFss+FepR7tK+wD/z4ZpFwVZaSYARedlBGoANvkR9hw+EFNVHz+g1VWEmXxWAZJnR1LjFTVVBSzW/50H2nQPbrFrnQHacTCVBcf3B+Qw6rmx95hmvbosBO1S2z0t7T7RfKHPYgTO7gBUGUISc8wYot+ze/HxNwn2wzZ04sZrx0CJ0CF/bNdCVW3MC+YEusOL2RCFET3M6Un1/bUiCL4yaeRLs054q/soGQViiN1ozgUs0JCtSgL9oA/fcBCWfyeQzJxYHlP579GcOUwxeN7vWjFsMFfWXIaouzlWVHSqPCeIzIGh1JpZzt+qrsHZe9zUj2Dy7ny3ZnNEtoawxsRKCKHgT6c9xX/UaRwranB8IpjmNEKOOovmvbEbCSNInhKlai8TGxQFOEsWp1HjEl3hCRwXGGf8kVl/2+wgVTngaYuIgUrWLnpVWtZzuq9C0Hrq9Ay2q1bwAfhbuKDxBi3R1CqKnCwBoilTJMtY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.37","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.37/noteberg_nextcloud-0.5.37.tar.gz","created":"2026-07-23T18:57:49.288654Z","licenses":["MIT"],"lastModified":"2026-07-23T18:57:49.356634Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"NUyvVA8EWzCaM74m2h/cF3mmrssw5C22T+a+8BhKnzdF0rnbKwBsGIyTDRAEGCBvOomQt0SfKkDBSW6dTjjnTTWu2wrw93xzHPoftpGdLZZgSFqbf1Nc9g6edRIfW9fzNVEwRXrMA+jh9cif+Iq1SFxHp2FJDzLVEEbZQEzIErh8ie7tr/iYcdic+eVXnxhrZmNcMsylIVTimkPcWvLudOF2eJ4m7NDmjrrC2g5cIzJ8OcqzI1Oe2rtiuW51FIx/OI/kY73f/jV8ezxksBYugal2CD5C0dZSYPhaQ436zVWqndwiPUpTd7S29Oj0XWHZcrrk9JC584SPxGsDyOPrD0WyAm6iZvOCw8SzzmL/p22y12SigFCx4VIdQbFNQVqUeIK8Rtf9nogjNDSgwI750jzUfOO+sYuUSxD+XZ7qBMYE4xax/qAjnMp079ecp2hRhjF5WF7K9o7VuK+q8txM/EXoyBLGmy4VGyxXIVajLNBYajhUM4a+fazwP6Ze8v4gzzmFCrSC2g8tmXsstyJlf3B4OTsGWuRaCNTuUJ6E92+9eViv8KJLU7GHfKJxjFaHIXHKwHKvml+VIxQaNI27G2GupShmIw+yMxnkXLoGUJ5OVlH2n1CuLEm85kP9VE+g+QsAuJnTyAiy9ex/HFPHL+HyBIo1JkWlF3wsO5PMIbo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.35-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.35-rc.1/noteberg-0.5.35-rc.1.tar.gz","created":"2026-07-16T12:54:56.264957Z","licenses":["MIT"],"lastModified":"2026-07-16T12:54:56.317015Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"maE+MuyYsrbTMVia5+LpPFwWNnB4PdmK0H4GFt2PqxLWiBi/7TPScstsHGqVoezwZTYhZw7LYPixmhVxyWTBcHUE/0a/5vrrdhB1Ps4Kr98UEHWksGoTXpTB7ohB+Y/eZxqpeKAbQFPvrIFnuZ/L6em8lG0dFsWrmJF8cUC6IMJPmYatUPMb1DTiVdbZKOUPDiLmQCE6L0NkcaF5iVNYS/Um5VEZxT6jINgb+/9BaZ++E5Uy4ACsE/VP6zbc7LWetGKRM1owWdnop/NSplRJQ6uny94dGBNcoE/m23BUF/3FyJ35BBJWDyDjxwlnp8baRenYJ59LLS06D1Nar30unhvNzVeZNVFLpYTLXMUDm0AtdG8QkNJPwrdoHktZn/N9EU9l6r09knnjHtNXcMTk5qi8JxCdD8pUTUnLI3Ty2qBGCMoiP7LZSXYUE4zkGZI7OAuBeF5yYa6jBfAh+R4RWFq6MkJr9A1R9R0DBZRo7l/nHaGnHHdG7PQr17Dykddkg3iv0gJ9viY6ASHnG+ycBZAvpuzQSE6i+kj8azsPET9yVuZg7kdY1t8/XzBFPnc5FO4OkGr/bB1ic/QYBhnoj7fmkIN5ugcKVNMjVQM0zQrmCubmsjaAfQFme/bsUvGY/5V5LPza+KPp+zO9+i/6Gx4MK9iUSOtCsZ6g6hV5GAY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.34-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thomasleuthold/NoteBerg/releases/download/0.5.34-rc.1/noteberg-0.5.34-rc.1.tar.gz","created":"2026-07-14T11:32:15.748627Z","licenses":["MIT"],"lastModified":"2026-07-14T11:32:15.815405Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"UnSDmxMzzxVhctg6jHr+gBxv1685jZ9Hm8SXKYqQEcU4hWqF00K2+EjeHjySrYmpxSdo+ONP6IhV2IkwwhtwyS5AGX2DAPk8OpOlNL/lEwxeojZkyGJj4E2YsKSiPzLa6qwtsVRg7ngkokTEr6burJOH2yglCOin2fVc9Sd13hmX8LJCAVwgW94skEd/arih8mnPicjC20xSZpXRHuwAu0/40OLEh8LzvWPhFwp4tthQ/Ig4ooK+HEb6N+iGMAK4vR+fgvkhcgSxgZHYu1kR/oVDgQ6WToFbyD+izSLgeFEp8BNuQv/KWD05WvplSqkPlivjlsqLa58uHTpEO2v/jYDhi/VBR8pmA03q3PKbmiOo1urjOohSV3dPi4CekL1M356rUXmp3BkPYo3Zyt929i4Oo+Xktx7PUJSdrTa2CJAc4vcYfVnBP5fHzbvD7JJ3e9S1v0s2VTEiqVvbDbAFPQO9qMHvVjE1R3onlLTIXxx6/a4vqA+cu+mIluzsMQQLupnpESh20/jt6q4iz8RbP97rCNW0MrNhucv/KPFrpdw3UMmgOVEJooJMOu0RBXS+evHjs3EURsQcU33cWte5QdTDZnFtbQiNkBN+bXzjyU2LnQ6Y2s/8x5m4vDfa+fZyp7eip2Rj91+YQA+T4gIZr/XR4EFDWEEy6khJVRFmSSM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rob21hc2xldXRob2xkL05vdGVCZXJnL21haW4vZG9jdW1lbnRhdGlvbi9zY3JlZW5zaG90cy9tYWluMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rob21hc2xldXRob2xkL05vdGVCZXJnL21haW4vZG9jdW1lbnRhdGlvbi9zY3JlZW5zaG90cy9tYWluMi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NoteBerg","summary":"Handwritten and typed notes with Nextcloud sync","description":"NoteBerg is a note-taking app combining handwriting, rich text, and Nextcloud sync.\n\n## Features\n\n### Handwriting & Drawing\n- Handwriting input with active stylus and pressure sensitivity\n- Pen tool with customizable colors, marker/highlighter tool\n- Lasso selection — move, resize, rotate, copy selected strokes\n- Eraser tool, unlimited undo/redo\n- Mark handwritten notes as tasks\n\n### Text Editing\n- Rich text editor (WYSIWYG) with formatting, tables, colors, and font sizes\n- Automatic mode switching between drawing and text editing\n- Task checkboxes inline with notes\n\n### Media & Import/Export\n- PDF import — annotate PDFs with pen and text\n- Image insertion with cropping and perspective correction, with automatic page corner detection\n- Document mode in the camera — outlines the page live, straightens it after the shot, and can flatten shadows for a scanned look\n- PDF export with automatic A4 pagination\n\n### Organization\n- Notebooks for hierarchical organization\n- Note overview with thumbnail previews\n- Full-text search across handwriting and typed text\n- Markers tab — browse task markers across all notes\n- Recycle bin with soft delete and permanent deletion\n\n### Sync & Storage\n- Offline-first — all data stored locally in IndexedDB\n- Nextcloud sync via WebDAV with conflict resolution\n\n### UI\n- Dark mode / light mode with system preference detection\n- Background patterns — ruled lines and grid\n- Internationalization — English, German, Spanish, French, Italian, Japanese, Korean, Portuguese, Chinese\n\n### Handwriting Recognition\n- Optional AI recognition with a vision model you configure yourself — off by default, always started manually.\n- Nothing is sent anywhere unless you turn it on and supply your own provider details.\n- When you start a recognition, your handwriting is rendered as an image and sent from your Nextcloud server to the endpoint you configured, and the transcribed text is returned.\n- The request is made by the server rather than the browser, so your API key stays on the server and is never exposed to the web page. It is stored encrypted.\n\n### AI Integration (optional)\n- A shared, off-by-default AI provider connection (endpoint, model, API key) configured once per account in the app's settings. There is no built-in or shared service, and no key ships with the app.\n- AI handwriting recognition (above) is the first feature built on this connection, with more planned.\n\n### Data & Privacy\n- All note data is stored exclusively on your own Nextcloud server — no third-party services or telemetry, except for the optional AI recognition described above, which is off unless you configure it\n- Note: uninstalling this app does not delete your note data from the server. Your notes remain in the /NoteBerg/ WebDAV folder and can be re-accessed by reinstalling the app. This is intentional — your data may also have been synced there by the NoteBerg desktop or mobile app.\n\n### Also available on other platforms\n- Android: native app via Google Play open testing: https://play.google.com/store/apps/details?id=eu.noteberg.app\n- Windows: desktop installer from GitHub Releases: https://github.com/thomasleuthold/NoteBerg/releases (unsigned build; Windows may warn about an unknown publisher)"}},"isFeatured":false,"authors":[{"name":"Thomas Leuthold","mail":"noteberg@posteo.org","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhM5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE3MTcwMzMzWhcNMzYwNzIzMTcwMzMzWjATMREwDwYD\nVQQDDAhub3RlYmVyZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMhl\nFek3x0/Qa5EUGpZjPXm7xCJIHSkFsoc5LJz/3W7RlyOFMXA2UKhQxBzGKPdavThZ\nkIYxXVGKEoTUGvP0OwBk7h1k5Aq1LsUWkHVqVRtKpteUG2GoMkgaEXMFrXan2OUk\ny8L4VmtCXVG/6nsMRXQt5udJXfjXB9G0SstQxW7+kqi89T0xdC26eVJ5fO64DhrM\nJFYxM/QgnoC+qVG880mnJU+RelprTE4iqLR/yJIQQ5Z3Uf5bqwLkYv2skgpz3PLG\n6Js3mp+3z5fBu8gIejZVrvPqarvDDamVVdxoMe5LSVdcguaAixwvCtjFm9X6u2WW\nOhCKeeNyEoXZj9HP6FiscjGviNqzGwvvWXCUzUVaTmUw92f9qtEVHEIv00bMTB1/\nPJ8/d3W0bCcHbIDZ2N/GGvA6G3IWOwtGL5yUlUs0YZaph49wyEjEO+gdCVNURTAS\nd4WGqfiSE2WTQQ/W7Y/EqrhQumwAwBF5Z9illSN/yv5BY+dvQQH4VeYxl+/Jur9+\nWAXreVKPlMUf6Vy2sdmnwcyHSMgRSWV0n1a+kvVrt3E75abWGPe9ZkFcFHZYxvUP\nPrfBEZzZGS4qGpHCI9tj60bi1GJFiSTAhmn5eUKZziCCDmlV8T/SL3x45FUvN7Ac\nV7yRp3uNLEWbdvTh8LHd9EzlgoP4JnCXRg+uZ5OXAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAA5MoHqi1l0YyzZW8onK1LMrRDLPiP+to+lvf5YI9TVVXeXfc33Sbwv2\n+Wqh0kCvMdUf4CTw8i9a2HMaltVSsh+xDeJ3dxhcDCUdlsSAfgHsiSucHuQ1o32C\ndeV5nXziKjhYh33vd6rRllh+hGrFYf4N9oQ9HSF2WVXGzy+6go5WLNWLIPg58nzF\nggw4zpcQ2S3ddT+jqshY0A8sXRVZlVSRs87KdV/jVIoALMhkVi10Vr8ZUuTOXM+F\nbAqpBGx4sJPEu/pudZ0hlu5X1a2NOv4ySGNYmUrmu1cIAkyZTt7JTWKx6mF0iyR/\nxhtMbT6Ua/jmzQ/NeXm1TvEeoIN1288=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"share_via_device","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/lee-soda/share_via_device/issues","website":"https://github.com/lee-soda/share_via_device","created":"2026-09-08T08:22:34.243442Z","lastModified":"2026-09-08T09:34:00.664327Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lee-soda/share_via_device/releases/download/v1.0.1/share_via_device-v1.0.1.tar.gz","created":"2026-09-08T09:34:00.649016Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-08T09:34:00.698003Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"rghviY7c9WByqw1Zse0I+dMZoFu2E/6q8mg0NlWsQimsTB/4wOlBwRoJFW2yS9+QETekf2/C5ULJB/sDgrDNoVepCv7aBvrugWJEvM4AW5miuGDb/OlX4i8BSqV3n9W4Mf+69dEzjnieHHV0hd78lnCPWvBmcq3AnB62o/8U2X9/xz0fjCgH93sfuhszXx39pK5py8mOLT1Wp1OjI7NwdUXL+KKtv59MrKy9jIRk4b/F2JoDP/9AsbCtkv63aBmMRlVANXtCGabv0whKaAlksji2HET6IYBe5azLGQG3Tn26IewOUCJYI7TpWPPEyI2XDftvK6eyn+UvMjpZ0yFlCRdMgZecmEa/+AAf1mASCr/fTtz5YmDkSrpEuJTzdMaKqjZ/6qpjHk2Wx/zQZoL3KHcaz1FWxiLSzbZvMtLvTfcVEfH13qXDmPi4C2pKdDzQpgQRsczkmDABiPSGZFVzWro7GEkjy5cIetzgqpJSulFcpCbpVpbkcrAN9P1tes6sc6u+SKhUI9LJQV8pL0oX3FrOtKnQkqgqCwSV/CYwtFwZTKtra1AHWx4vfMlyA8J5f300Fyw0GNxTTG+iNaomQr2H66ipO1beMg/919izw58dqFf7Cr90CgJSS4fJERWapcPnWi4TxoCMZGdav5C78hmqMeYwQZrjNvG4hKkGU08=","translations":{"en":{"changelog":"### Fixed\n\n- Load the Files integration as a classic browser script so it runs correctly when registered through Nextcloud's `Util::addScript` API."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lee-soda/share_via_device/releases/download/v1.0.0/share_via_device-v1.0.0.tar.gz","created":"2026-09-08T08:23:28.709961Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-08T08:23:28.773612Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"S/Qn3LGd7BwN99vcc/FyeYaA7xusauqyz2vUveGXv40QCQqdbWJFwJZl2la6kOq3hgIuYc8NVkiEdtJ5u7Cu1CXBHc7qFhKUMbdqCdS5++2WTrsMgPsRrqyVNbtGcCem6tkQql0UmVrr/CYDcAvtvLPFFNXCMXctR3S4mveqeztI+Oa+zRNakRs2kwt+h+h0KVEGydBj7/qAwOYaonSfLWXsBP+LQxnsCL6BPUibUQ7TE1LwhwR5Epr4rI9eIliL0Gt9tQXuLKv2VXLOrRs5WFOi8hLu0Yrgx1O+0NAfKcFPVn6spygr97svFRohKTklUZDijFhUAP0mblPmVJDijnXu8IBqaD2NmQ9cVsGuljdgWEL7AoGW3KjDrX5oj+Ih5gNRjvg2y1WcKCnMMTBqz8wL5aotACXT5U3DhQImgO/H+igOuSL8TLV/LzvbmzXpJSpHkla+7pa0LYkDvxSno1KH5sC2mkHrQ3AMWGXwD+EB6MABJgXKDQ2Zu8wjbNCeS+wi5blrmW6Fp0HH+yJW9gqn+ex1s4bN2AJoy8hWYV7JZ8wGom1hVjbxY/dw4w7h4qevGsb0pVqNvgHyjg8N1vaewoC+tiGF3Of5CoUjSVlJz7r3SBbjr9PVi1bbnZ09wjjvsrNmimrtUHH6O7CT4bGo3ppImjdPp84DtEmW1JA=","translations":{"en":{"changelog":"### Added\n\n- Fresh read-only public link creation for selected files and folders.\n- Unlimited selection at the app level with 100-item internal batches.\n- System share sheet handoff and copy fallback.\n- Full rollback on partial creation failure and cancellation cleanup.\n- Nextcloud public-sharing, password, and expiration policy handling.\n- Korean localization."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Share via Device","summary":"Send fresh public links through your device share sheet","description":"Select any number of files and folders, create a fresh read-only public link for each item, and pass the links to the browser's system share sheet.\n\nThe available destinations depend on the operating system and installed apps. If the browser does not provide a system share sheet, the links can be copied instead.\n\nLinks follow the server's public-sharing, password, and expiration policies. When public links require a password, use Nextcloud's standard sharing panel."}},"isFeatured":false,"authors":[{"name":"Lee Soda","mail":"dhflyfree03@naver.com","homepage":"https://github.com/lee-soda"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhP0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMTEzOTMzWhcNMzYxMjA5MTEzOTMzWjAbMRkwFwYD\nVQQDDBBzaGFyZV92aWFfZGV2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAu1giI+RmvZclEeNJlW5hz/5v89hD/AhZtlacGfEj3wpLteAMQY6zw0Ia\nQIpMaYqTOJntgd1fiOlkU8KL6y+50YOuyEEOpILYQ8LOKQHNtFbFoxHHSmsQLpGB\nt4ilg3WbbgmCvgMw6gGBO24WWG8br3hmuelOoTNPnaxXaySV4rUNpr1K47uyt5Av\nepNKmpJeTGuKjKSWnUsEf4kulGKiXkwXL/oiwd+yV09PhYlq4aFrGkXMwTd+/g6U\nSroKROML3WT9a+0wVktG2x9F113v1/8H4mc94n3uIpCyo/SjhGyGp+mD5FS6tVIu\n1SMkqioGeYtlxNX/ey8bU2gCXkLtZYjooHRH8wEIuKYvS/3/D/1kD6JKGbUygE54\nRXeE1CDzUmaACe7qzlp4uupl6xrGP27qxpaEx35Rz/icmjFBmHzqyY9guIuaDbUZ\np5T/EyuejJPbEb2lbn3Z8EN/bcPGfl51vjJZPgIKjTnE4G2e9gng9/LmYO5eLDMb\ny+4qIhP8JfZSV+Cmy+0NZBcvdEYR8HSnrPFQ0jhQlwvPds72qILNOHxzVu8kbrQV\nEy9+Bg1Oue3FGCNgAc8EdOC3N6uT/oSjwHhxXyHFloePTlS4rattRCyO8KFER2h+\nJb9wSsqni1JmpfFZy27JVMuTYz6IQPCLkkw1y0NJ1XO1HQf259kCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEABQW3lVmzn7E2JlJzAUbkkrLhAO9eOqrqCskNC9mUf+zh\n8zD5YYc2PupJf7dHg/nVU2CoDjjGqTpr8xlXy03/ID4twtG1RYnxK+BSHNdri60c\nNp3VOJeehYuWtcBHMzycA1WBeA0T42GNpwR45yE711flhCeFiewnTW7srGdvyoqG\nzd1qHh9AOEtAuxw8GGxfA6cwDymUducrlmoCUtNEDP60iDEAW/NsBULP3BpKWK9D\nhvh1k2SClp1DP3D5yvUFfuvekEr1gnUKDwV5cbI4ISBeJwoVvmOcLpEIFw5pQOux\nw+kcoGvWHQJCcy7eC2lc5r7HAufH8a1w8FQ4ejDqEQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"agenda_bot","categories":["organization","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/lexioj/agenda_bot/issues","website":"https://github.com/lexioj/agenda_bot","created":"2025-09-08T19:10:56.096709Z","lastModified":"2026-09-26T20:53:13.626785Z","releases":[{"version":"1.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LexioJ/agenda_bot/releases/download/v1.7.1/agenda_bot-1.7.1.tar.gz?cb=1790455992-1","created":"2026-09-26T20:53:13.620681Z","licenses":["agpl"],"lastModified":"2026-09-26T20:53:13.671845Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"pQ8sw22KTd6cgdV6MaAKhukwHpWvVm9g2T9tHGQoTNyJBJ3LwFs0aUbrVcKrHtER81kJAFvJOAy44uME1agvozKfPLN0Ii1J9JK3y71/7sd6vmp8TFJn9lLp4HM5u0JIkE9DCYoJWOdZVYFMNB0AI/+FxuEAIgxZML++2AU9QS3+RQKDSDe10ENICfNXGsjS6bEouIgIGDGqIBMUwmeIboFSneFEz8cVe6rmUBd1SR1Ydp+4WmEiDzHYKROlezK+DFag0T2PuYm7+N3Jb6PT7r9Doy3Kd3hiUKbNGE4Z1nYi5iT5ZXEz0y7unGj5PLbbZFYMw+ynEfoqaMApwJoZqwiTzy5IqrrF1laiiNrCAiGVNEUvdBcnh7In4zwD6dvdwvvW2oT3aJa9IjAxkKa/6cJ//01m1kYbKpFKcl3OgZZCLCCa2EfHNk1irZ6+9SsX8nADZIaXsrGjk4JZAelG9/9hOUKDCXBEgaFMjlcWDOcb/fpZp6m4vGXF+23jdl4rdieOVQbthxokaAu7JEcOXh7kGbKZ/FjZnmgGRg+BrZKSmNmxSYlw65TBJWoHrvZj3EM9fKW4G2QC/JtFgmmrX/zfP33haJlvPLCAtvxsqm4CvAjgg0MRgRJq9NpeVYxM0Slbtm8pTltKCLORF2W4CknQlomkrvUBS+vMhiQGDWI=","translations":{"en":{"changelog":"### 🔧 Changed - Compatibility\n- Added Nextcloud 35 support in `appinfo/info.xml`\n- Updated documented compatibility range to Nextcloud 31-35\n- Verified app functionality on Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9hZ2VuZGFfYm90L21haW4vZG9jcy9hZ2VuZGFfYm90X2xvZ28ucG5n","smallThumbnail":"https://raw.githubusercontent.com/lexioj/agenda_bot/main/docs/agenda_bot_logo_thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9hZ2VuZGFfYm90L21haW4vZG9jcy9hZ2VuZGFfYm90X21lZXRpbmdfZmxvdy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9hZ2VuZGFfYm90L21haW4vZG9jcy9hZ2VuZGFfYm90X2hlbHBfY29tbWFuZC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Agenda bot","summary":"🤖 Transform your Talk meetings with intelligent agenda management, real-time time tracking, and automated progress monitoring!","description":"### 🚀 Meeting Manager for Nextcloud Talk\n\nTired of unproductive meetings that run overtime? The Agenda Bot transforms chaotic discussions into structured, efficient sessions with intelligent automation and real-time insights.\n**⚠️ Requires Nextcloud Talk app to be installed and enabled**\n\n### ✨ Key Features\n\n#### 🎯 Effortless Agenda Creation\n- Natural language: `agenda: Project review (15 min)` \n- Multiple formats: `topic:`, `item:`, `add:`, `insert:`\n- Create multiple items at once from structured lists\n- Smart time parsing: `(5 min)`, `(1h)`, `(90 min)`, `(2 hours)`\n- Automatic positioning or manual `#2.` syntax\n\n#### ⏰ Intelligent Time Management\n- Background monitoring tracks time automatically\n- Smart warnings at 80%, 100%, and overtime thresholds  \n- Call-aware notifications (only during active meetings)\n- Custom time monitoring configuration per room\n- Visual progress tracking with ✅ 📍 🗣️ indicators\n\n#### 🔥 Seamless Meeting Flow\n- **`done:` command** - Complete current item and auto-advance!\n- Real-time status shows actual vs. planned time\n- Automatic progression through agenda items\n- Live updates for all participants\n\n#### ⚙️ Room-Level Bot Configuration\n- **Time Monitoring**: Custom warning thresholds and overtime alerts per room\n- **Auto-behaviors**: Control automatic start, cleanup, and summary generation\n- **Response-behaviors**: Choose between full responses or minimal emoji-only mode\n- **Agenda Limits**: Configure max agenda items, max bulk additions, and default durations\n- **Custom Emojis**: Personalize agenda item status indicators\n\n#### 🌍 Multi-Language Support (NEW in v1.5.0!)\n- **German Language Variants**: Support for both informal (Du) and formal (Sie) German communication\n- **Automatic Migration**: Seamless upgrade handling with intelligent migration framework\n- **Professional Settings**: Perfect for corporate environments requiring formal language\n- **User Choice**: Select the communication style that fits your team culture\n\n#### 🔐 Smart Permission System\n- Role-based access: Owners, Moderators, Users, Guests\n- Flexible control: Who can add, manage, or view items\n- Guest moderator support for external facilitators\n\n#### 📊 Meeting Analytics & Insights\n- Completion tracking with timing statistics\n- Efficiency reports: On-time 👍 vs. overtime ⏰ \n- Comprehensive summaries with actionable data\n- Optional cleanup of completed items\n\n### 💫 Why Using Agenda Bot?\n\n- ✅ **Boost Productivity** - Stay focused with structured agendas\n- ✅ **Save Time** - Automated tracking and progress management  \n- ✅ **Improve Accountability** - Clear completion tracking\n- ✅ **Reduce Overruns** - Smart time warnings keep meetings on track\n- ✅ **Easy Setup** - Works instantly in any Talk room\n\n### 🏆 Perfect For\n- Team standups and regular check-ins\n- Project planning sessions\n- Client meetings with tight schedules  \n- Board meetings requiring structure\n- Training sessions with timed modules\n\n#### Start having better meetings - Add the Agenda Bot to your Talk rooms and experience the difference!"}},"isFeatured":false,"authors":[{"name":"Agenda Bot Team","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhK6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwOTA4MDc0NjUxWhcNMzUxMjE1MDc0NjUxWjAVMRMwEQYD\nVQQDDAphZ2VuZGFfYm90MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n2t4YutKpUyqDt3k0DGrV1xDX6EBtvvXcSGnxX4jDD/Xu7ikSucF3RbOPx6WLUdYj\nZNVC9bjizZidgueQJqqX1LBwXaP79jQ2x8tKnq8elrQfmkknQftmb5iBO1O55Tdy\n2K9vllWXtYwxCU/6+HxeU9NQfgjNkCpMWyyjcxY8m13QcPj8YYuEB2vg+6aSlSgz\nLjXN+71hrK+NbN87nz1umL14vWcGMyUEyuK6XGEKnmlbkvRGPjr/vWxvdgrDUhjw\n11GVwaFfpyOvfi9Ji6X8FVHphzfdT/dBWD+sYNkvqtVRhSl2/Vq1PMb08dUXVa1w\n3DmOac74MkQ4T79+eLJT/PQ5yb2DA5zQSQtiHbQl/tiHmXeByajKxp1t5I4iorGS\n9BycsLBRbDM1+YscRI7MhVoiAlwD2Lz+X4A4uWHlGQ+/3nrVa771OKj1fZGveRO7\nlel5U4ATp8x8E1abhFLeipHOqBmipCq2bvxgAusWYF2LHny9eQgj8P6MxUfSYfJo\n+Duqtmmvqrq/se/hLILh4UWlnFH5UynGSnjSu4NZVLrUDr2+vTJT1qKUK2DvCdSz\nefvA0wh7XC41A/7l0dzBenHQIL7HobHP/Qr/KyLOQ6e0ZB5Cny17uNBCAkR0Lz1c\naEZyVJfOCzN/90yWpTeAu7mvMZIPc+W5KHs4L+DXT9ECAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAg0uZKWiCJHi3lhlspbDz+Wvr25GrwyaPA8dnveknrM5xy1v7o+59\nj4NHlw4JHel8Z5spldnmhlr2XcClaWnfYc31gpjKfiqVL3zWE9fCE1J9A/gj1073\nI5kiEuRhhs8kB8kmxPUDVenZKBVcvPAePbfIEqbj71tHeKHjV5nlPINFy1GoKlGE\nw0K1vseAj8VM1mSDiTlVyjpH7sVA5gBA1oVD5WgYEZuX/Js/FbPm7P5mlnBjYR0F\nglR4VNVj9BmoFcgyStmIbaLa0l2R0oKWLYWabPFbg/kCMu82szUsGlKsnpbMHz/X\nkrHd/e15zeHA/Kx6URG3iKse/VCeZenFgw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tickbuddy","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/martinhammer/tickbuddy","website":"https://github.com/martinhammer/tickbuddy","created":"2026-05-15T09:21:26.779946Z","lastModified":"2026-10-17T07:32:00.971284Z","releases":[{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v2.2.0/tickbuddy-v2.2.0.tar.gz","created":"2026-10-17T07:32:00.962492Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T07:32:01.010765Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"ZLb3/a11onPeGZWyZ/WALaeBU68NH4l/h1HG0RVUGK7iAJAsb/PRIfU2brDEXfi/AyEJZyYvBr7mbVjVxg37RNx21P1NqUsvPyjpbf37R1vJNyLkifcMb+cRgG41v0IpxFcOxJm1wUKtQlN18dYicGec53hsyMsprkJyG94Pk7kdXApEvznZYaYLBM2prkSWJUuYCssd3ZCWznt2h5rZZGuaS9TL6SGWfchcYk8X9SM1+Kgu7Mt3nS+XolcY6xiQWIBG4OV/esquo/FkZbUOdyU32UHi6YawnDzIBtK1CaU/on3ntnQUOhCMEP9G4jSLs1sfyZq6s3kzR+EtXf+XH3lyMDTerjUbj/tthhK3kiA2SCbDsvV7jHVkySsDLiW0ZZPLFtG2Wli4n33nDK4ee5j5IpQsdNQtJq98QeeHKMbRntqTI1TfZzd8O7yEVAFcrNEp97Nd17V9pifMvqNoDps8L6QLNN9G1xw1+Fb9KUTDoli+KWxzPnsfkUegjdZ2P4CeN9q71ptnhRjeAHLhT9Th0WaZ4gVt60lpwA7pSA5j5WTiW07WYdP97szUXMkrFNTEfS3CcPFAQ6CRoxgCV4+S/AVnGaEu8/ZunqwbEW5HSJxMo/vxQdKfrCrE1/Clk5hu91pOk1EdbBJjH5U7Pe2sXnrLXAZ4guXxNyUtrxw=","translations":{"en":{"changelog":"### Added\n- Archive functionality for tracks which the user no longer actively tracks but wants to keep the history\n- Restore functionality to reactivate archived tracks\n- Note for Tickdroid users: archived tracks are not visible in Tickdroid versions 1.2.x and lower\n\n### Changed\n- Delete confirmation dialogue offers to archive the track instead\n- Updated Settings screen for consistency and polish\n- Export to JSON file includes new field `trackIndex` to distinguish tracks with duplicate names\n\n### Fixed\n- Importing a Tickbuddy backup with tracks of the same name now puts each tick on the right track (depends on `trackIndex` field in the backup file)\n- Reordering tracks no longer moves tracks that weren't in the list to the top"}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v2.1.0/tickbuddy-v2.1.0.tar.gz","created":"2026-10-10T05:10:59.232270Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T05:10:59.274574Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"Rup0+qwCQqFKhXHL1mt5gp1CHStX7xkvVrBXIMwcKVWQ9CHGNiAt2RSJGh1C7WeA6BCe1J2J+e76Nr7NI3CPfGWmsh/FB17YMDwsZvpUwJTMzbUHPBYgfh50evdyWrexOQdyTIQ1PqLNDGWLF3OQOQj2EPHZbZi2JtgtNszl6d2QeMuROulL9NSIoT3Gw+60AN/A5D3qPWfQ20eNEYKVdXcFSbmb5j8yOBRbb3ltlt9iG2+UzRTXdN6gPdWJnMRY7ylMm5jzgFQu1GG5mYQkim4cm/gesWZkLIcDljEIPAd0vAwlAAD1GmG09sNslRGZ6FglWE9Ixs0DhUGHXla0TpwkTM7d8yPnGTcY8DlwZ4PrBw5/uDxXHEUj4x+wd5sy6VwHswpyxnICzS3K4N1MaLFg6fJSf1ydLYgLqdSN2ZV8uu0L4J0Yuui7mUTEyml7xytC0GITkkW93WNk6XsQO0pHRhfC9oATS0Te2ECU09BqzA9oqke2MRoXZrV1DOAzjx/nV5Jn3RFT9zBCJCjEwSA5UGv4kO0XFkbsBcRtFHcrqaSM7Xy8bUYfF4mwTE5MVUZ17GxUEtA9ljmqMBeSKeGQI3CCBkT4VNG2zT4iFHvCaeDhAZtbUrINvG2h74n/Zg1Q0BVIg2drDYAYSLIp7mL2RKT9ltkOkQS+CFFmBRk=","translations":{"en":{"changelog":"### Added\n- Nextcloud dashboard widget showing the last 7 days and the current streak or break of each track\n- Toast messages for success and error on set default view, import, export, delete track actions\n- Toast messages for errors on add track, rename track, toggle track privacy, reorder tracks actions\n\n### Changed\n- Changed streak calculation logic in Analytics: a streak is no longer broken while today is still open; it counts up to yesterday\n- Bumped dependencies"}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v2.0.0/tickbuddy-v2.0.0.tar.gz","created":"2026-09-29T14:12:57.431047Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T14:12:57.478608Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"ljoetxUbxminbogSYzTrXX6FaDbeGkVmcxZogTkhLiar0wylBBrriF/NtMp8oyfxH10TZlZ98vytB/tZ9cBWUpNBI/1+MZ7Wg0rMH1Z2lEAodoiArUbCEJCAlAuISS+kVuRqir2bf1c88pdT1Gxo0Urn690T3GmIhC1gzDM5BxHG90Y1Af3AQOzrGuRDazNp1+TMzS0Y3rAJ0NoS3PAWkNyuHjOOrqQhPhzg9gHwmk3JamVftlEFAvUbBU4ET17lay5iDdv252RjiMzbBT3q/EJnUkKt+KLhNwDSsgnFo1sMZhmtIgBncpklyh0EblIUojAVWQr0e99PhfqC39BXIjiEjBAwgbZnuF+kQhZHIZPlSt8CyYCjLmVNAUeMh2qL4iyV6kH/S3Mpg/stacXa7ZDtc1nvNXEhNtAtyEk2lWoiCb0BZw2Dci7wxNquNm3JRYSFi7mh0CoGbOqca9AsQquyisAtKTc3XTZFNiSvvdWlvbrGYirVzMKZnbELAaZWj8hSZNa3s+38YTepYkTZ4RwjGC4jXJuTqcswsKLrW7eMrFqgIfuAcGIA47X1eUAUSwOv7Xyfikj5q5dU0xkhKjIEqWzxGXc6OJshwRdLGzElDfbi/ctdqbLCG/57nsuIo9VGbQMN9yg6g4H/kn3QP3BPxKJ96Gf+cTItCyNWZ+E=","translations":{"en":{"changelog":"### Changed\n- Removed support for Nextcloud version 32\n- Added support for Nextcloud version 36\n- Bumped front-end and PHP dependencies\n\n### Fixed\n- Icon files follow the correct standards\n- Broken screenshots on Nextcloud App store"}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v1.1.1/tickbuddy-v1.1.1.tar.gz","created":"2026-09-05T00:34:14.247663Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-05T00:34:14.297615Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"fd3hHRpyPRTLOVrrbZh03woPQ8BwLXkUTtgn0dW4Bn3BODLirAPB0Do+67V5EuBQaQZ/DaN4YcJyio50PaYsrcs5sM5JSgtp5qx6joAzTZjfHOBzLnkNTRnRNVy4kAa5YEYolvdkKfDbcUm6dQeGqC3+W+rVTOcr2vSuf8t+3Kt1Zd9LXA3qOtPuXkLoRxHRQIQBFTS2Qvc9zdDPayTirMe1uokaQNhXUzHlbYqcQHIoJMwqmm429AkBWylD1MuwxA48wZ3dp8HsIgOeKOOZGMaPnX7wsCB8Hk1QcPNmaJdfEJbqWa1M9Zz9oXGrLLD4/pVgaIAPOEpCWqhZsJBLtScP7wnu6u1lVxdrQIE1Mmypb4Zgb7Lu1i46BV6DCreCzWED7wLY7rTaRbfY/U0DVQ51sIVtdk555Opt/0X4JJFG1xlK/hbYcfn5GXukdDuVpFQAr/wnVs/ZkIOS3VLP59a+NIeCKa39LGJtiU/q+HpEinucTSWTF5rtIn8cH8LuVhl7fDB5tWHUyc1ktmd9hvmuXoZDwyrWdrtjUQUyQTJ1+/Sz8S3UM+TKapyBL/RUYNXIUXGlAmTujcG0Z97ByHDsLaRTKfY4ZJN9H/2D3ZJSrxyvFKloE4ws7cOY0IeUsv50A1ckmt067lFJwppcaXSqvYuPePrq5cTuAH8tZUg=","translations":{"en":{"changelog":"### Added\n- Track headings on Edit journal and View journal are clickable and navigate to the track in Analytics view\n\n### Changed\n- Removed labels on View journal\n- Bumped dependencies\n- Improved test scripts\n\n### Fixed\n- Button variant applied correctly\n- Chart options types"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v1.1.0/tickbuddy-v1.1.0.tar.gz","created":"2026-07-29T05:45:48.757147Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-29T05:45:48.826894Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"SSkaWYP+NHI8Vvnz54rVPj6QGk20W9r3Jc/F2p4mQcDgTMgLP76ALe7bKmohf157pccA5BGffM1xZIR+Xh/sQTJxUW/Nn1DDZQ0iY+5PYZf/pumf+AiNGFM8OQ2X2z95BM+pAR8kFOc81FSQeuXMYQ4FGCnsycjI08ORcR14q0GeiZuzP61aa69EbrTcIAJwURPA4pC32TwCLez+10K+MMdAIfTyHofEtNIbuaeMMEracOfOrej4V4n5aOcbyB4vX3sVWCviEjfKt16zFvVGna6SG1Pn0UqjAGgny8aGqmY++6yHZ+OExuuZiWxI2gTwvGzwwOzX9n3B0Bn4ZPG2nq+d54fS+plUsY3Xd0NsBhaWdz1pTfJ4nYMUkcwU4XK3vmyn91Mz9e2m2Dk6b86OZ1RVlLWUlVnVdIn6eak+z4nvw6yyn2sJOIiImnYcCfITgYg3jm4c3xsBtuJgKw5IjxQWaPq/rUBwCzjnqXDqFNlZu9y9r5YPBySfo2TA+m+/d2e5svQ2EbV+0PuS8ajcPA2aUflR04hpwj4KvUE/wCdl/TDor7Wa+8dHUwnuloDhP66TVHofi/0Ij7ZLyFznZJJPM/Upx2xPIAE0pMVUQiNuxTzXfSWYn2sFqHTyzGu5UdLydH1GFv64sbBTgzf3VCpa3g9fDa+oo3C97LCmBZQ=","translations":{"en":{"changelog":"### Added\n- New API endpoint `GET /api/ticks/bounds` returning the first and last tick date per track\n- \"Jump to oldest\" button on the View journal screen\n\n### Changed\n- Improvements on Analytics screen\n\n### Fixed\n- `PUT`/`DELETE /api/tracks/{id}` now constrain `{id}` to digits"}},"signatureDigest":"sha512"},{"version":"1.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/martinhammer/tickbuddy/releases/download/v1.0.7/tickbuddy-v1.0.7.tar.gz","created":"2026-07-25T05:40:10.683106Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-25T05:40:10.734836Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Gx+Fah7dZnHd3k+v+RobHop4U1QwcRdhmLLISFML3/Hcfo8xSgpnUfygevRyiG61qn764GTIFabY1w1YKUDSnTObeNTQEJ7YO+D+XPYrJqd4z6d4R2Xfzo/7lfMPUW9TYD0Bu5E+lRvYX2nQKY0vmUus5wTPzAt4tj3crN/T3Wcthm28AomYtq+Vo240qy7pvKfFOZZNgRv5f3/2QlJdouXkGpLk8l2iv/ZxbxXPCo3Fzu0Bue/pSScgw/rVwkoIs3V/B3yv1JlIR5do1FbSWsCcNXOEW3gPBJ6CZWqk8q0r/cRdLTDPnSf2ROmDawSX50xrGBEKHt1E4ZCbXlvm3XYwvXECbwno+e8sYAvXyx0/F5KTBPiVg+SX9snmgl9rJ7mBC4WY/myh1OplT1w2y2HcoG+UHPGi0hsRH3Vo5Pj8bjOPxLU3bS5qhCasl0BGB/m2ISQsH+NDzimp1dObu8AOVT9MAKigrAZD+o7GKMsLQAR1d/BJ+RsegHb0prLSas6iiK7I1lv8ZmBwOdUFhF2Qyiwv5CVgjYlwqCt/yhv1aKYKrg/JxvmnhEi0J0bZ7Dvhve7a4Sr/CfJX3ubO8i0nfrenHLvTwrywu9d2VESfg1EuvkGBXrIqoDjVFqh1ad6DisB1zTNS4aSCxQ0Kqy7cXfIYNikvjBrpqo2a+nU=","translations":{"en":{"changelog":"### Added\n- Calendar heatmap on the Analytics screen (\"GitHub contributions\" style visualisation) \n- Dummy data for demo purposes \n\n### Changed\n- Support for Nextcloud version 35\n- Improvements on Analytics screen\n- Bumped dependencies\n\n### Fixed\n- First day of week on charts is now correctly reflecting the Nextcloud user setting"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci90aWNrYnVkZHkvbWFpbi9pbWcvRWRpdF8yMDI2MTAwOS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci90aWNrYnVkZHkvbWFpbi9pbWcvQW5hbHl0aWNzXzIwMjYxMDA5LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci90aWNrYnVkZHkvbWFpbi9pbWcvU2V0dGluZ3NfMjAyNjEwMTQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hcnRpbmhhbW1lci90aWNrYnVkZHkvbWFpbi9pbWcvRGFzaGJvYXJkXzIwMjYxMDA5LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Tickbuddy","summary":"Daily habit tracker","description":"Tickbuddy is a daily habit and event tracker. \n\nThe application enables users to record whether a specific event has occurred or not on daily basis. The events can be arbitrary habits or occurrences such as doing sports, smoking, taking out trash, etc. These events are tracked over time, and longer term statistics and patterns can be analysed. The idea is to encourage healthy habits, get over bad ones, or simply to keep track of things over time.\n\nTickbuddy comes with its own Android companion app Tickdroid which has been published on the F-Droid app store."}},"isFeatured":false,"authors":[{"name":"Martin Hammer","mail":"me@martinhammer.com","homepage":"https://github.com/martinhammer"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhM/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTEzMTM0ODIxWhcNMzYwODE4MTM0ODIxWjAUMRIwEAYD\nVQQDDAl0aWNrYnVkZHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCc\n+/uanbYSsvM81iUfJOINbUpRdYYA5AVjss/WFjLSZoTZw3e6ULzWfT/jWUpL/Hd8\nzVnYQhy/YoIc+962YOWTmnwQVufYniaEg/JmMwqaI9jVD74s7rSER7nyqRiVbS7i\nYMlmQ2TmnhmCL+vfq43EMbde9IvwWpQ9GQs0Ej/I1Du/4RJpv7RNOqe6cA68GfMW\nBIs+cmhmYyxKOtUSUgvLuoRVINQtWS2cJeyZQlcJmaB9Bt9r2i4Ui3yaH/Ikml5d\nKvOiQP7XNuQIri976hwVp86rCEqzblVeW3QmFASXeigAbgJ0TI//tWqFKRedZF5C\nbaiGZzRNdXdXKaa/BhRKZcHYYhk36fF0SVCMNt4Wuv+cUC5GEYSynvITRSaOT2IW\nX+bglPjHxpXOwZWwWCVkhzlJNzNFWoQZVoQkeG0QSxHoiApOw7rMKYtps6mTylsp\nhbT9T23dmdUkzz3VtgyrQ2rxR7JZ1xxHzYZAnle1Od7q7aNxrOPpIoytisiMM8Oo\nGbQkMhusXzG6tLQe4FXrOdbVEPE31ESPkkFwEUhPh4zggP+I47XyUwG+UH5p1bDW\nYl6Odb0s/r65xJH9K6016PIn7mDeB/eA3EA84laL68qqkJLVoLHxleWKn8tgO0rt\nnLTwDpyYkEzGvXGrqjZKXCrxfVbx6CnNMtAztRvzxQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAGx/QH0yFwZ55ANSnskzuSkdGdj/zMYuMUj6GUe/rTlASr48guMYGX\na3YMkkh8hp31482SoV5aJ2WKvReXwVtyLABvhlVVoyPlxPNt8CEyAsIw72Kz1JnD\nGfeJq2TYGdQ92/98eGLGXQN9kxKqsCuAYnctmy+aZC8AOp3XqIgYSNbwqVuofOBA\nyMtBP4E0Kud1bMYjWY6tpI2IhP4Cy30xw41KOjnmuTwaZ7q7k4YFCIW1YG2GzpPR\nGmf91vEvmv8sqIfjIbJ0IMQiNfRGQKffY8n4LC8+HzeTch6M3FY3mQ+DjvIKkbg6\n22fcds3xCg6zCjh7G8Q2CXCDbV01jv9R\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"astrolabe","categories":["ai"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cbcoutinho/astrolabe/issues","website":"","created":"2025-12-19T21:19:41.889095Z","lastModified":"2026-10-21T17:39:24.375822Z","releases":[{"version":"0.46.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.46.0/astrolabe-0.46.0.tar.gz","created":"2026-10-21T17:39:24.355150Z","licenses":["agpl"],"lastModified":"2026-10-21T17:39:24.412863Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"F0j8y6yEJ0u7GnTeYxIAnuLEA8tuNSGqlq+85cs4AWG0J9ZXEZB5p9NGACIplal2Zuy2L+DKLbLTNxJPCO23mhf9x/eT7MmOObB6XF7Fb7/qewspPGRvMyd7xH9bwq1pacYEyc4gCBuoJ6vf4j4+0SXHuGLa56t5ZufgvBsqmADK5gfM3q8evE+5PkEOMkcWK41+hmu6tg6sNyn9V9MFzYVw+OqwP+HfoCsCTr8wyWl+zUjrBNpf+f4yf23Lw6EzjgZz+uq0//WekVTTU4RccyXJ28ZK2voa4a0zbSGHVRE7hyz08wiiDMnZad4Vdl4VxOszA9Gfx/W3nJlupJW3nj7p2IEtViulWcaqntQYPhzh7wRMhJAY99fHe56WgjOo22sIcw8jlcezmOinXmUUyJXnUsKfQMxOdvLYsqhEwaNINrTsidVTU3Dc5EcF50ppWd2uW9xzBdTdKfXUu6DdrojGoY/FFIPK5C9BPIppQQsrLJxp162fDwy/INhbKhLmZnnN7ySLjJrFT/YzuOI4fVqr//AoEeZIUh55OCFhKGMa6QVkX21d42vGXyqsmTCLvg0pAxFO98giMhM+Jp3nAaiAWAjZ77jwA34/nux/F7x4Ry6tqasjiqQhgjb3AUXcniH+7hTDvl4YmvaROd+Es5idw385odWxwMBzfqTwI58=","translations":{"en":{"changelog":"### Feat\n\n- **admin**: validate MCP connection settings with inline feedback\n\n### Fix\n\n- **admin**: show the stored webhook secret as configured on load\n- **admin**: use text inputs so URL whitespace is never sanitized away\n- **admin**: reject credentials in MCP URLs; align triple-slash handling\n- **admin**: string-cast connection settings; fix toast e2e locator"}},"signatureDigest":"sha512"},{"version":"0.45.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.45.2/astrolabe-0.45.2.tar.gz","created":"2026-10-03T19:06:06.950809Z","licenses":["agpl"],"lastModified":"2026-10-03T19:06:07.006817Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"mPZBgzJbZgX6CN+11BZzawZl21KUvJ95GCnqcg1/jZx+VE6/gx+ONcFcUvatogBITjN6Uwpxh63UL9sYkX9zUa++3fPJGZ/i5gPb/7T9NJjXXDTISIe3RhPiL+rdu+RZxwUVyDEkDP6xDw40zU+fNIqhOZZR73nI4rhmR2QHTjGtMqRP/1v8BaRVyrVbsuhZIwq4p59olxXVf36AHTvB0iYEo8azzG4r2h9jGTjKojWV5FZe36Vmxae7DVcbKbRfUs+m+1HnzzmVQWZdsgg72gAT9dfU0DvFOYQdyxlY0Df4X6yZdX2SidoeIS8Y1zKbueDDvPAakzSMGEsikVu9Tt0toyAGLuyzVQVUWgy+hJlu4jjsQnTzoz5jiJeq6WX3fe+tIbPaxQUDBESE1R8ChSWCppkCFN5kV1lPEutUYsGxQAptgWtGdCXt+Iju8PiwOsdyamxgc40a6TRTm3rv7wSPieai1tEr/Nd5TmdrOA8ZTA3ixB5v5Wt7lcaZhT9tWf0Pds09HbElF+G9Jc9qV+giEq7Y+36Af0XAXaF2jIawQKJDg/94dfcDuhw22+8PKzxg+VPnH634n3GuxfBcRj3GRwVAu8TXd1rJTzbhFDGtvEuCsWQM7Sa8Kt1ZfahJjBEOABvF3wIf/wyHtftwAP8HW1WlLHjwKlgu2gd2nyA=","translations":{"en":{"changelog":"### Fix\n\n- **sar**: show \"Add to SAR\" only while a case is open; reason is optional"}},"signatureDigest":"sha512"},{"version":"0.45.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.45.1/astrolabe-0.45.1.tar.gz","created":"2026-10-03T11:11:36.396292Z","licenses":["agpl"],"lastModified":"2026-10-03T11:11:36.493843Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"YVIKqZM/b2nzlfr1JSdqf7Kr8AlzRm01rmVqzU7b0+Z/jeWDjLmO55koXhiZnPQdTDIEKWAKiULf3q7if/pLUYbpd5rS7HYnkA4bhcwPNEp7SCTJ3dUxVJzIlU+/sDVndJDK91eRFGaw/Yy5h+zlhong3q9S94jZoDxihxyJUHN26+UCgGh2un4vvU4cH1ZOxlWD4cYloUWhs130SWI4TzVDaeP9SIpo+C+g97fEG7d4cu+SEicuOrm6t+/cPCJHvC2CnyLJdy1tKlIhDvoZbTbUxj2HZVNNEaO4flTOL85XAOpk9NrnMy8uPP1k0MdypcgD99rsx7IFl1ykw5Ry09OZFhUx/uYO0mVBwfouJBfLQS3fCqyGgS4coFwdR+dwoO6pcthFj31n2bzquGQAZSS87gMhH+P07xbrZF82OjJ1GRuVRVHJKc+kibdyghF6u8e/63jln/ZSmWrfKoMXoHbfV8oj6VbiYvjEi+BooSXTpIsSLK3IAJR9GrVxXhzNvY2dd/VTbsLV8glVly0RH4vevVjvgrTqxipyidmPdiAbZ4vKMXqTWOnKQQm2oixaAPmPObbkYxRU3Enj+dXotv4j+Fkit9zzH9e7s5QrZy3HZl+pITXTL1/Q2519TQEX2/pNNTNUO5imKg5CnnTq+p1GHlV1f/yiEOaExoBasCo=","translations":{"en":{"changelog":"### Fix\n\n- **deps**: update next monorepo to v16.3.7"}},"signatureDigest":"sha512"},{"version":"0.45.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.45.0/astrolabe-0.45.0.tar.gz","created":"2026-09-28T10:51:28.061370Z","licenses":["agpl"],"lastModified":"2026-09-28T10:51:28.111013Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"daZKIT1Z/EdnA67yfVm8X2tKxPDbwckEqr1W6fVivyvi8/erXYj3PqfE/F3rmEa1ot67r14DFpcREOLT1S4fBHJk+Z0YBXqB8jPYWIHsHLqTNr1/u4ikmV7CNqFHxbMo3FfZfFBhEZtJqZS7Bc4NBIYYbJkJMSkAm8LHQOzXwv6dl+hWfn+tPGXOpMshvFJynTsiJTi2OOYPz7eSRM1PxQY89A+Dv7/ygvH/czLQnxUuT+7Z89qitzWFgea5NU6kk79F8wlVbotjrCvcscRBZNgG6CqFyEyZ8ovWJev2nUou+veKn7cprW45FQ2P9HOqgpOJPDA17ROhix5r2fgWB+rhZW0+lcU8wKnOVm20nyHcuNSlFgD3b1VdR/lJKoqvKnV0tx6xuSV4OV3MpgdUxsghWnA/8KLS6JFErP7ybsfK0a/TWiWJ81Yvz3LwmxB+8ZRU+rmodO/cPFJOQhg3menQui7bvVmGgC75FtOJnbSWHLUYTj5pb7ZQujuDT+9Sc4S65s3YOUzSPl23G2OWmK9tObsroF4rp2MuDcRDymx7l0x2ZjXmikaXcnJIx73XGWt/rlzR1sVwRhuPVsIPqzMq9lC0CejMfg5RIj52zVeRpuykj+HynvH0zWt/RfrdrFgYG5BTtATly/zrOyevqBUd0tYAAR3rkogQ9F9toFQ=","translations":{"en":{"changelog":"### Feat\n\n- **search**: explain a slow or timed-out search and offer keyword search\n\n### Fix\n\n- **search**: narrow timeout detection; retry \"Load more\" as \"Load more\"\n- **search**: a new search starts without the previous one's slow hint\n- **client**: log MCP server 5xx answers that pass through to the UI\n- **viewer**: release PDFs, name the close button, and say when a document left the index\n- **viewer**: load pdf.js's legacy build so PDFs open on every browser"}},"signatureDigest":"sha512"},{"version":"0.44.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.44.1/astrolabe-0.44.1.tar.gz","created":"2026-09-27T22:38:07.756237Z","licenses":["agpl"],"lastModified":"2026-09-27T22:38:07.815221Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Brd5KAlsYJdSxc/1ohNFD4RN1yrdhHWG77ljhkM5UnLRy4RD1W/6frLd8g4d441d4gGwAS3pZa/ydbnAYGBGpnx5p7cxZ5TJdgMuWbvP4zMKO48BJGODFXpfoeYFRkYgSzX7DpyALx8e5bMvFwcwLzXxpmocHp8NRa7YtUHp9NBTqPNflK0Lljs06hba3S3FgYKqH7eZcm9dgmuODMmaZUGi0lysWawNOI+y6QiHesX4AmK81e2+onjssfGxmtOYnpMDmpggbxyRDwTXa47WucnF5gqiX/r5b5onTqrAMWANaFQ65+60faVlyWC6SKpU6HPUYqCcdBaxk4o9tmbMjXx0Beas4JKblgBKfqzz8xY5pVDlhvULwKmnMv74y6uRbjNfNrXusnAnOf6Y3enLogxGSI9BBWIzzAW8TlcZ1RJFQuM5vFGL9ucrvRIEDJ7Aj3/VpDAVkxmMxeY8D6gKtoFksAK+7xKNSzTP91azbwN4CaeLbHtWvlGINQPDvkxsujhUH2ROoFojvwnlawa5iIvQxFmbwUap6WCQVN+JYBuWMdpU6qIb8TAudLACNNGVhzRSfDskxG9p/NCoVe7CCtncJRPwuO1ToiC52ekI4TA47UMxE4OYCy5CJ8w5Xhzv6nAEmg/mt1wIX3uKq5jyGkDaDpVR0vI2mBuKvkX/DWk=","translations":{"en":{"changelog":"### Fix\n\n- **sar**: the case sidebar keeps edits typed while it reloads"}},"signatureDigest":"sha512"},{"version":"0.44.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.44.0/astrolabe-0.44.0.tar.gz","created":"2026-09-27T21:11:46.076799Z","licenses":["agpl"],"lastModified":"2026-09-27T21:11:46.147028Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jYlWkl4cG+tInxxYFsc8hjKicp5ervw028sPrDUowxvmeDdO18wuFofgPhoxgeXFkgRbx0XgSkgjy4vZ7ZcUQo0gO1JafNOFAsNycj8C4ahatBsQjotuJOUvm+HYEbSIUA7SQAheXpq0hA4yy0thH3WLjAM4BjpyfMyd7teNrs2HRE2sC2xi5/hBvhrC4EjEYIe5CPh6SBEzaFq0Jm80Tapk7N0M4qU15zlaQIbZMRH0seBEV0gLCqJCP0VBudlRtmh7Z1vqPTIsE6AbjftMNgVl9aDW3vniJR1FhyJ0uPY7fOVlux/OQ+TCmQ4gEyuOiFjJxoBfhspwdVvWq1eE9HumCcrNDCf5EI3k8bn/bcK/ao9QmjIB7mfGg2w+w+3CdjtOdD1VnE/L9yxAn7eA5pps8dJNSXxbTbslFp6vZHZNpCxkB27OQSn6uncBWxZ+TAnt6Of3jNDEUx1zxyLMFAJ1amuug+qC7Oc5CJqGTwYoR7JmrCafFgWCSUXaSybSl7GkXgLGHEBS4dw0zxVsMxiESIOxpKc0erufANzHCOpjDZI97EHo09r+HO+C9j7H1xK1Y47rjX6jTD8112ruazdCTepfT2X67XDbgZztTR2/0myFifcVH62pRvOTYoLvjYgNHE4sywcErMBtmwkkiEgU8u779MSPVxbnIlQMkD4=","translations":{"en":{"changelog":"### Feat\n\n- **sar**: SAR calls use sar.read/sar.write tokens; gate on sar_available\n- **sar**: one search page with the case in a sidebar\n- **sar**: SAR cases shared with MCP agents, replacing the page-local basket\n- **sar**: SAR export basket and redacted archive view\n\n### Fix\n\n- **sar**: leaving a case clears its paging state\n- **sar**: remember the open case per user; add each document once\n- **sar**: no semantic-only rows in a case; track every item of a big case\n- **sar**: a case search token carries semantic.read too"}},"signatureDigest":"sha512"},{"version":"0.43.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.43.1/astrolabe-0.43.1.tar.gz","created":"2026-09-27T12:32:18.006909Z","licenses":["agpl"],"lastModified":"2026-09-27T12:32:18.061864Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"SN0IB7RK0MvbQO7qSwMfhbpGAtWRlV4mnrHc5wBInNhtmoFNN/uUQ20yq9sWdbbenoEG10/dZF/mfuAElKJPYqXqJFFPqXchvI0SiqZ7yOjXtAZZ2eoPwBQzhmHwd+e1cr5NLDWsIAScxszyeXQG3IlyI1V9M+kpH1dbejZJjRTJv1tt0J+Q626qH+Nna+YozsoW7q5+kXd5qdAQkr3/UTvozRgqMc90MON52Ts8acebry4wh7iaye0iVA6HyipL0elkkuNL/E0cctifyu3yGWJqLr/hpBEMoJeuD68Va2eSM3NBc3eN5zQfhws604vRECuctHsW/M8+8YNG72hNuC676Bvo3qmyiUiPdceYseBWTN3PbdQvHqS57B4e6/ITj3aZMNZcf44gT7KCeL9wVRJXxrBm2UHNkr2gWIeTxsj6uG5/QqTEwn1F+4DaYWnNwWQhkqM7axl1zRwRyuKgziYzlQlgwHWa/3GYZrgKiN1355LJAOqC4uGt6NBgLAbSlS157WXpppodKArGkQAKiS60t2QFX3ep0MBa0CPEdcAlh4cc+d+3DOrhC+ccdZb2czhj6ONluG81dpyExSVQx8VdZ8kBUGhOcyWBK7MemD34skn7xzbwBEdip0YhMaegYBtkvtNBQMoCQ1XIK61lO4Fxs+Wr4BH7bbp0YMwVXXs=","translations":{"en":{"changelog":"### Fix\n\n- **deps**: update next monorepo to v16.3.6"}},"signatureDigest":"sha512"},{"version":"0.43.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cbcoutinho/astrolabe/releases/download/v0.43.0/astrolabe-0.43.0.tar.gz","created":"2026-09-18T04:00:00.523406Z","licenses":["agpl"],"lastModified":"2026-09-18T04:00:00.599272Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"KsbYhwwdvwdbiDy8lazDFGYmYjlAu+vo1ae4HsiPRGv6Q7PO+o1OstmZcq7DHjqsg6j8O8pfnN8c+X+sWQ1D7CR1PgAVYebrsrOuzRgCrPiVv2tzrhb/cuD1uBBypIB+o8Hmts8ZHyFFUj8Rt0VytwPede6ZkXxk4q3uXb3coL5nVGw/kwTITQxw2fs4Pc6hA6SAFipEKT+MwoEPcKlBjWTpKoTG878CxRZf4kGA1LXqYQsqPP6t19EY2SxyMUR0chfB+nJK9P8u4Z4/ZfTLEtBoMRQvdMhVQnV9pgZ14AixlgOj6ihMnInsmoLzH8gjLHuEEY+NzKv+sEdDVIrgXhYiGaIL2SpPqv+1gHNJrW71dIiaA5YKY6JVG8h2Azm8YLyTxAkBCIW0ZfZPk+L6+gY6PwCGkBk5Dpj+GC7l6lyBKyQ8sLpn7NchT5QEXxpWvrHHn3ykAkRRkSAUn8Wm9wu+7Ooqdx3RkInYWFpkdXSkqqLrDXYjrkQDiBaDKBsSJimGwqjqJl41clJMGR4nKNxCAzofwtutehvE2siPl+YA/SW7onxUsgxKQk1Xo2qN9QnTYAZhHbLGUjhq4sq5hu0oRNaecPpO8O++8SqSlqW6VXDlAcbsg/PLj+KzedyAtqHUGNRuHgw2/NLzJYrVetY1hpUIBusAr7mCgQMKH/A=","translations":{"en":{"changelog":"### Feat\n\n- support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2NiY291dGluaG8vYXN0cm9sYWJlL2Jsb2IvbWFpbi9zY3JlZW5zaG90cy8wMi1zZW1hbnRpYy1zZWFyY2gtd2l0aC1wbG90LnBuZz9yYXc9MQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2NiY291dGluaG8vYXN0cm9sYWJlL2Jsb2IvbWFpbi9zY3JlZW5zaG90cy8wMS11bmlmaWVkLXNlYXJjaC1hc3Ryb2xhYmUucG5nP3Jhdz0x","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2NiY291dGluaG8vYXN0cm9sYWJlL2Jsb2IvbWFpbi9zY3JlZW5zaG90cy8wMy1jaHVuay12aWV3ZXItb3Blbi5wbmc_cmF3PTE=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Astrolabe","summary":"AI-powered semantic search across your Nextcloud","description":"# Astrolabe - Semantic Search for Nextcloud\n\nFind your content by meaning, not just keywords. Astrolabe brings AI-powered semantic search to your Nextcloud, helping you discover documents, notes, calendar events, and files through natural language.\n\n## Features\n\n- **Semantic Search**: Search across Notes, Files, Calendar, Deck, and more using natural language queries\n- **Unified Search Integration**: Results appear in Nextcloud's global search bar alongside traditional results\n- **Background Indexing**: Your content is automatically indexed for instant semantic search\n- **Vector Visualization**: Explore your content in an interactive 2D visualization showing semantic relationships\n- **Hybrid Search**: Combines semantic understanding with keyword matching for best results\n\n## How It Works\n\nAstrolabe connects to a semantic search service that understands the meaning of your content. Instead of exact keyword matches, you can search for concepts - ask \"meeting notes from last week\" or \"recipes with chicken\" and find relevant documents even if they don't contain those exact words.\n\n## Getting Started\n\n1. Install and enable the app\n2. Grant background access to allow indexing of your content\n3. Start searching with natural language in Nextcloud's search bar\n\nSee [documentation](https://github.com/cbcoutinho/astrolabe) for configuration details."}},"isFeatured":false,"authors":[{"name":"Chris Coutinho","mail":"","homepage":"https://github.com/cbcoutinho"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhLZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMjE5MDkxNDIyWhcNMzYwMzI2MDkxNDIyWjAUMRIwEAYD\nVQQDDAlhc3Ryb2xhYmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC5\nX+PhkhL4oJPY8vFHL8t+uiDEXchbduUdA3/jY851XNxZG/v07RQatfjfKeA3Pz/o\nDdL9bLms0WrDXx9HvJ5vTBWNbXAr7etDb3bjl/oiOEOoMXSytFaXLcDXPZ7wHaNO\nk4FJ6z79Nz2q9Cs4vk26ed94jWLI/jdog8KfC/C+zgF1yVullhb1TMKVZGJ/Ga8K\nHx1IkbcoufUgt4Y2I5Ov3KiORpQMx/1TfqM2TCVBQL5m4nzJamasPqhb1otXxXB5\napqDIFpsjGFMdNxuPIFWDdB0IwAbVYuZngM9LjpcnASBeCq2el+TyBZkCFQi+Q+j\nIKTS98wZrsMmApWTTJq/ik8buSJkQV3orqVGmQBah65cafbwVvhQGp7CnHUaJB74\n14KenegSplE/rcZpPOGGDHSzxshS4gnlS7xTJuIhvoAW85UcMvAvG6WbEoPWsijQ\nY2T2uISQPslu6AtMjPGpNpCMEmrQaQZQC/csyeu9UqZ8uc1lfjTnAmpackN00bfM\n3R4oSuTpyENcAqmH0HtCFaBaWVigNo93cPTiFeMTpqzsQuaSsJR14MTUdvu8Zfyr\nxXIWwR1cCGEjJGCUbyQPj4QiAr5MBQXspA0FJrWL17+Js68ZZsfy0YcQ9EmGNi/V\njjGUQLD4H6CL0m7Rk5YNbvneb3gX0iLDe/MXM/xzYwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBeyBSPMRZL85A8pAEQshx8yvF9XTnD3VXrbpBjEETLhWAI9dRnkLRR\nYjvW8pzp5dKt/5Zoakcz4WYANK3XSKlJLqMfP5TaklQTCat5jLpPSPkash1d86Z+\nSc9j8d05uxcsF8SnhrIeg7OSBDAU4yF0ZgX1lUBbSKuoAHA39pSMT5cuiP8FFn3J\nAG8UDnix2RRRxR9urBK6Bx8FQaSR9QA9Nr+h+2ZEhrtN6co5NXnQnjR05I+Mhga4\ne/GXvIJN9WYG375Da42/qwiKPBoIubob9ALkNkEQwAIiJ/5+F+jN3/1DyG8TxrMj\nu6wHCAmSYCpY3ltj3SeNuH60ZGEnYX6e\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_archive","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rotdrop/nextcloud-app-files-archive.git","website":"","created":"2022-11-09T09:35:43.893446Z","lastModified":"2026-10-01T07:54:26.691124Z","releases":[{"version":"1.3.1-rc1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-files-archive/releases/download/v1.3.1-rc1/files_archive-1.3.1-rc1.tar.gz","created":"2026-10-01T07:34:30.333043Z","licenses":["agpl"],"lastModified":"2026-10-01T07:34:30.342888Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"WTcpfrWrpbQEswg68C+pR8Z3+sJQkKZdxxBykIshNIM4g0bKEntzb/wxe1fZnEk+\nPHm6vSAOiyBAXoQpL/1kwkhhTy30/BQWkg5RjYu3fuHvX3A1AKdW2+jBkRNPTFFh\n6IOwSKDU2TM/FDtK5SB2YtUFlU6euaHDgvnhrt5ABhZNRmF5EQr+MHbdexLuCD+j\nBv/uRODZDquGfLLMOkfKoZ2NlXyClWum9fOO12N8gNPm1WUbyZzvJeCoidrQYWcR\nqjxVzF7zcbov1rfaQJmzmKR3nY/bSvRMl1gc3AJRHU+PA9tu87S94c1o5L+YxFRg\n3RUbtwkypvZ5vfmhm/b2ASF40rmlHUS2pYKvcZ28wGGhC9xMzOYANMe6BLJwpXrO\ncxk9rTQ96+utkiwxCpzDHxFh2gbptXdv4JI+L1Va9zAD5/+p+5QGUMIsu3pinbrY\n8qyNGVHYleUIn0GIj8knrRvjQlTtbg5ZPUvPWuuGVodQexd8Ob3KDzkOzt0Qsu70\nkMrjubMU7fgz6aCrXVpsdBz2Pu/U4Y+QFOfD5ADgzg+UqQB3PnJakBxr+xVK3KPh\nZGXQRWeBPLII468vLXofBL1DoKaW2kF3xAAmIZwZs7waF4ic/LFXM1znQ/4XSoOt\nCz9LeT7xxJ/mxMHix6d//f2kEzJeD3Mincb9nQuuano=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-files-archive/releases/download/v1.3.1/files_archive-1.3.1.tar.gz","created":"2026-10-01T07:54:26.653213Z","licenses":["agpl"],"lastModified":"2026-10-01T07:54:26.726098Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"m3W7BwTQu9uMG4An7KwyDCyiZkW/UbvfEDr8JqH+4/Vk66Oua2112nmUeGBA+mj+\n62ieLBnH9iQJqvYZawNcOb2RtoTN8oiLZtjaZ/LZPWZfoxlTOtdoY6GmkCVYPgjo\noWrWKkb/iUC9476nbGsZLatcGq5vRFae0lsj6iSCyvTxuHhtfJy6cwTSOguYs46v\ne/RfjjLYA3eCAAzvBKKtN8NBBzcL1Tkn910lRK2DpJ3s5pEXoiv6GzP5Z9hsUp77\nngl4pmpN5q8dJZ6d5dylm8kebbtoWRJudnV/IzcrzUNujqYDRRDqh29l+LvgHKjZ\nDTRDwJHpcUGvYaIG0diC3bpMOEJAEsRjTxPpRxdSpcdJpy9tNSnhdvbfIOjs0XHA\n4TDvZyEC4kyJFzo50aTwTfrN2k2UbCsStHAaIKr7IXR8a5LaympwDfz9OYH/Pw6L\n7yQKNdiNrsODojWyafjzGo9dFO9CcqdefN5DYE/ckik1tzYuKl4ebKks+6JLz0ww\n6ToZvNT/PD/DDU7PPxTJ6xzO/rd4jgdGZhF3vZ3EAUl2SGu3qbjoBjP5IAzLuf85\nXhHGZ9NxMHVPO8m073R6IBUVzJXIN1NkwDnkskA1tXLLICuJL+0ONW5x8Np5LC8c\nGIGp8noUS8JP+hLKR+VkUKkQPO4+lTxnnoMRjzWQuKI=","translations":{"en":{"changelog":"### Fixed\n\n- typo in ExceptionMiddleware leading to an exception\n- broken migrations making it impossible to freshly install this app"}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-files-archive/releases/download/v1.3.0/files_archive-1.3.0.tar.gz","created":"2026-09-29T22:13:34.002278Z","licenses":["agpl"],"lastModified":"2026-09-29T22:13:34.072361Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"an/IUsBzYaCYMXMx90JHlKdkDKJSv+HLk7jtJAeu3G84c+gmCGtLzdBg6J7GiCyA\nYcKY9nhSbBK2IunWyu7PGQ+gkpgubfBRoNSG6iY+wdLG3Tsc25huLN6KC2G5wxx/\npdVs30dxH914Qtp9+93ZxGH64drGvr1eUHfva4Ary4f7WVos472cZUBjiaCuQmCQ\nmtmgH9LNh4kdMY8ltJhWNicP+SLFOIKpxpHKV0BQnngoh6zO5zqllcRuAXeCPYW2\nli/nLbDY2PWy19VEkFokpSHsBNCroUaJTcxJqxh6YSStWXnVUtFF6x1PVT8TKuQE\nFPan/VQo474h8r7w16mbRDK0hYuO9AfBBJrfVbvyq3c2/xX6qD4HbV+F3sAPwVwV\nZBtovJM3tfiMN/s8iL3ue/GbiyiLxEwV8+AyofhR9HwkoqMhcJspemJYcDtTY3JW\nW29Ux65saOTR9vEJuOAYQxvYNEgVikkIsKOxvW/u08aMIg8rhlM+9Q3akwplq18o\n2WVEm8tT8MPWFxmMSYQFwgku00J4K19n8c1x+RKkhHPn4FJKLOzC8CO7VCjWVUs8\n3MQN5SOTHR5GYIXGregR4IzhpOk5vyzhWQ+QViDBsFBZvuLwk0xhhQlUN3fB0sIi\nQ2dWQ5LVuHROTNaMzl2TCsMBIy33fSMfiWu7ZtiQmys=","translations":{"en":{"changelog":"### Changed\n\n- support NC33-NC35 and up\n- drop support for NC32 and below\n- support PHP 8.4 and up\n- drop support for PHP 8.3 and below\n- switch to Vue3\n\n### Added\n\n- basic CI checks for PRs (courtesy Fabio Fantoni)\n- \"extract here\" menu item (courtesy Fabio Fantoni)\n- tarball generation on tag vX.Y.Z push (courtesy Fabio Fantoni)\n\n### Fixed\n\n- replace legacy storage ids using the archive pathname by consistent\n  storage ids using the archive file id\n- remove the storage file path name from the database cache\n- wrap wapmorgan\\UnifiedArchive using php-scoper\n- improved filename encoding handling (courtesy Fabio Fantoni)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9maWxlX2xpc3RfbW91bnRlZF9hcmNoaXZlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9maWxlX2xpc3RfdW5tb3VudF9hY3Rpb25fbWVudS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9maWxlX2xpc3Rfc2V0X3Bhc3NwaHJhc2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9maWxlX2xpc3RfZXh0cmFjdF9maWxlX2Nob29zZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9hZG1pbl9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9wZXJzb25hbF9zZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1maWxlcy1hcmNoaXZlL3Jhdy9tYWluL2NvbnRyaWIvc2NyZWVuc2hvdHMvZmlsZXNfYXJjaGl2ZV9maWxlX2xpc3RfemlwX2JvbWIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Archive Manager","summary":"On-the-fly archive inspector for Nextcloud","description":"Inspect, mount and extract archive files (zip, tar, etc.)"}},"isFeatured":false,"authors":[{"name":"Claus-Justus Heine","mail":"himself@claus-justus-heine.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhHvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIxMTA5MDMyNjMyWhcNMzMwMjE0MDMyNjMyWjAYMRYwFAYD\nVQQDDA1maWxlc19hcmNoaXZlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnAN6zlD+pOK3Ql09jyXt4CzJRed/5c2+Al09r31optiYf/6PADGvIZGRfNcw\nCyGLuQe3wxkrxuRsXw98iXCQ43ayZ+BNaFd4JLEgBjSaj2O+bRpP/q0wLLRQnsQH\ntjkPrfpP/oOQVNEL/0TU7teOJPTdH7t5RAJZ9fBODkhoO6kffoW7WyLy8wKLm28g\nZ1yksccy130Rk05Zd+3CdqXm7OZM1k2nLPjvEt8/MpApiif6S8T3GU1gZjAlIEo1\npH7D37gWSK+rdOqYcwm2otQUGsndB2KXlAptoNPexsN6RKrNjCA4TA+Hc4gYvtIJ\n++wpigSVeJEVhnHxmAz6ZIVTOexCk8VcCo03oT85QgfBbHsM6Sl1qLXW2O1obgb0\n2/PtmF7A1oJANpCb96TlZmgDzmwCxUWXNStmviUHqZZWTa5bAwqtK072jHTEPUkz\n6+vNbfR/wt7Z6nRPaGIDe97KPYWnxVktoCQJni8PxPyG9lSaeibf6zQldyC0tGHX\noNS55zxXmzx+B1SAjZ0tS1WxWF4+eWBsYX3zpCCEc5Lart6e8DB8UsKdDVzG9x1m\nIIZnlheiHbTGlOqkjvpR7sUeOkKcePNFwYIrQ9wh0A9b1h7U4xa3rU9xnzZYHjVF\nx3mWrDwCpgHUWbUY87zh8AqltY0YNJp7TtaU/2dAZ/zRnA0CAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAl87juyCboYc9O/kRfeclAyZdk34m2TlV9THMdIejPJx11+VC\nnO0ef7IDqgkuwDC2Ldha7c+5GrJYjxTvztYW4KK6BPxO6/J8jGJc3irst/hnRi1S\n2O3ujByhH0Y72AXFPlChFP14EoMtV3ttO1Dp9ve0cPbYNf5KlITNij8+y6nHUvLd\nshNA2NGu1r9QcBzLEn2gbRPtm6+2VzVHmigvpehr3cg8Mc2Xpg/oJr/xvVW6kDcF\n8Ut8MZIN+n5K1cbrSMJBqWANAdqTG2tWr9P19+U0W3H+Ah+5WRZDH2lzKKFfg1CD\nMZn6yCtUtbydp9HhOYk3KDI8D2nTzGdckrE3Sg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_bpm","categories":["files","integration","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/kirstenhh/nc-bpm-app/issues","website":"https://github.com/kirstenhh/nc-bpm-app/","created":"2021-03-19T22:58:02.130795Z","lastModified":"2026-10-21T06:41:16.010641Z","releases":[{"version":"1.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kirstenhh/nc-bpm-app/releases/download/v1.8.4/files_bpm-v1.8.4.tar.gz","created":"2026-10-21T06:41:15.976622Z","licenses":["agpl"],"lastModified":"2026-10-21T06:41:16.074327Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"uTYyKYzs6wPxG04I1BbL+c0NFCQyTUJajV17MZKUbAhBsGQeYOWJuVhxtqMdkGWM\ndKtGGxJWPrOJvNlZoyrZrvgFeIugn7dVPypvPpdFlfgriEdJIRd9HWfK4hBwunsp\nIJuVwSP2eDOfm1TdFQyIvCwqLcBQ3zQ5anTE2o5cK/7lrn6D/pKp9Ihbr4vy+SHb\noVv5Q276Z/MOoegJ7VReB7T4cWRnxHhCGq1lBVkfhUGCgBdDPMySHGBm7DGfEYp+\nYCUOs2mzSKUHBXvpJ1fUAZlAl58r4IA9M4XKAhhV1yTgyF8HoGsJwxhgVnT9LsQU\nb86n3LwNm3p655FqlGKVAVdem7pXkj/GVteZYgBrDqHdG9uFEMJxzh4wVmWRwqAS\nbH9cvhO/KbQa2Kyn4yOjmCY81TC+8Gwg+kcIU3uz64KtNObRAIY98lQCSVdhJxOZ\n2D/gNhqn/tl2yeKF5xg0JAJcJvupYKrW1Br9C+Yfrg9cW5O95Kd7YsbSZTTn74qw\ntosOPdVxbm9OYwQD1YLqa+KVQDE40EqEM3HVkoRbpCqHhfQb8QdG2vP+7vboBsvv\ni2c4x4fMCykk+zn1Yo97Ko+/SZyKLxJxY8RRf045EF1QZHovtP/Rg4u9UeyO1fTS\nXuwbuYCqecQq410J8Xs+m/xOXz8q8rBnK3tVSULE268=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xveWRsL25jLWJwbS1hcHAvbWFpbi9kb2NzL3NjcmVlbnNob3QtQlBNTi1lZGl0b3IucG5n","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"BPM Files","summary":"Ein BPMN 2.0/DMN 1.3 Viewer und Editor","description":"Ein BPMN 2.0/DMN 1.3 Viewer und Editor"},"en":{"name":"BPM Files","summary":"A BPMN 2.0/DMN 1.3 Viewer and Editor","description":"A BPMN 2.0/DMN 1.3 Viewer and Editor"},"fr":{"name":"BPM Files","summary":"Un éditeur et visionneur de diagrammes BPMN 2.0 et DMN 1.3","description":"Un éditeur et visionneur de diagrammes BPMN 2.0 et DMN 1.3"}},"isFeatured":false,"authors":[{"name":"Kirsten Hauck","mail":"kirsten.hauck@processcentric.ch","homepage":"https://www.processcentric.ch"},{"name":"Harald Loydl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhH2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMTA0MDQxNjU3WhcNMzMwNDExMDQxNjU3WjAUMRIwEAYD\nVQQDDAlmaWxlc19icG0wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDY\n1A223rDHeO1rfFkKe/ZynhfLBm5FEzfvFjHRWoUuNVDFCGfTG7HmGZBvKSP+Vis1\ntRrUNExxQtG6/GV9c1xTz5wTKLqLxquX7VnMK1o7oNQXMdCYqmZQ10bJVQEjJdsM\no0bLMt1hFl7MQ4Vo9pVt91+JvPCFsEOWL+CoBvaEdyOExUW9bXPxFALmbWaIacKI\nJXp1hme4+xinlYQv+bjHPDmQ0hO7xJ9LqCV9gAFsd/ZsMNlGFIdoqrNY6LCK7tn+\nGsDLK4YPh4TRw+cS3ULtZooJNtegss2yJ2dT2sf9Y8UTFMktytjaKa6FWHafcmBv\n9GpQ3bzgBY7dDCGhK/UeOncN4XGtiQw2f5NaPv1HdRCdzqviFlaU0DpimPOZn5cF\nplGYPjCR9enJ8GrozMp6m120LHWuwSlgjsh7PqmpeKXJ3WAQ5nZtaRyRRosUhhDP\nQQmZVJCcfKzPCaY1nanvt/GlqEKze+PxYx0srr2AIf5U+aX1RCYOWrmxY/rFuSSF\nNNcUj3UcGiX0vWl0xbWydCYw63bxdO3awKEndst7LT9oFWvUblpquvQqXocLkKmz\nlHLumJk/hvtmfKJ1pQsR1GSDZCYu/2KqL2AAgR4c4C1xu+xmRPI2w5zcwTCWpVPF\nlTA0/cIt9k1wz1j+zPQnY61d+O1hgKdKI6vPFIjbywIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQADkY3o9frt0X0vvrevO/fa4e9UAlfkyLn48Qwy6qD7B/AkZPN82fmb\nzxjqZrmTFr4oUqvtiTvsHAbor4rr8za/jUy60xdl+XjNdiPLd+lw5l7uD2WH7ji7\nLtYkvT610FeH1H2zBLuxK8guBlbLH4RmkyxCdLrEB4XHclR0BYEPBBTdV5Pwi2eP\nibcAEgzRagso9KtghQMV56pUmxEMKIyUlmUbs8xiFUN1X950WXfMPeLrgHjn6loj\nXLTdCIemg3Pjh9KPjm4G4Z1gHHReSfstHZK0UWioqJmCfZXUO9s0qpkjJQwJuXgJ\nsJFsofLV/ucvT4ToUvcGugQf+1l8qnUQ\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"collectives","categories":["office","organization","social","workflow"],"userDocs":"https://docs.nextcloud.com/server/latest/user_manual/en/collectives/index.html","adminDocs":"https://docs.nextcloud.com/server/latest/admin_manual/collectives/index.html","developerDocs":"https://github.com/nextcloud/collectives/blob/main/DEVELOPING.md","issueTracker":"https://github.com/nextcloud/collectives/issues","website":"https://collectives.cloud/","created":"2020-10-01T18:23:08.735202Z","lastModified":"2026-09-24T13:07:48.696735Z","releases":[{"version":"4.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/collectives/releases/download/v4.7.1/collectives-4.7.1.tar.gz","created":"2026-09-24T13:07:48.643929Z","licenses":["agpl"],"lastModified":"2026-09-24T13:07:48.752430Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"L6QngNrpmdPyDcirWfJkcxiNLbgrRIrJHE06Mh+4KvfoTS1LhvC6AdbHxK9BIxcC iWFMGFtgmN3vV5VO/6uhVoxwqKD4dkqByL84wrgaJ4MZOUpwiAzQWK3jtXOwHGgu EH445zcY5lnNQRLW//esYkOxVYNsQmWtf/MGVxw2poR9OMTB62UBENYzni6j217z neA0xfeumQxrMsphVGMzeHHDQh7vzOIYRuUH1Mly7RBpL5IiSg58la0dm5/ey8yn UbQp1fBHFVh55oK9oMBRzRcL+bSBZFFpUVlOkv4tQoR5/CCxPvFR2he/HPeG2f+i yz0NXER1mrokzk+YGS+nkU3MsyP9FdcK84edF2mtzphOYSRlLIsJgZGaaTEcLH3i ucG+mhboKkwyIYksrz1mGDrHun6sur4XRIdg8CyyqTVJe646VyOhb5HUK98D0LzQ hXtJfaVkgrvcROeuX7mdnAybtqu/bYahfwm27xQHXnd6l8TU/lB6tgWbv+kKqODh WZclYME68nXWCisv68DyZboRg/KtlfffVfsV76XF6iW1R4R/DT23vVVePSmwx51x dS+vbzijIhMUhASFpiYgY6+k0o7sKmvfqy6/f1gaLw7q3UkK3Ctymn9CDhhFxRB8 /c/DUcYeLg86qHQ3G89QMWd4bQw2SIn0L/B/nm0eNgk=","translations":{"en":{"changelog":"### 🐛Fixes\n* 🗑️ Add a grace period before purging orphaned collectives. (#2813)\n\n### 🌎Translations\n* 🗣️ Translation updates from Transifex. Thanks to all contributors."}},"signatureDigest":"sha512"},{"version":"4.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/collectives/releases/download/v4.7.0/collectives-4.7.0.tar.gz","created":"2026-09-22T15:34:25.593621Z","licenses":["agpl"],"lastModified":"2026-09-22T15:34:25.695665Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"GKbLC+3sB0p78rGkEnxYPna+Psn5bLlPkycnyViuAIfhm8GGksI8tXh4fiTrPEb2 SNPTuXJjw6T1l4r8rLxr9QhHumR6e3FNLs+3elHP2mAUeMVr48flCdO6bHEiDTSZ L/7mOWKouJ0FbETWkqtwioQACqwrS/9ogvqtosfQ2MBFLAHVo6iYPs5BXurFU0OF oPt37Y+mQLZH+vQWd1Xp0UItiDDh6+UjaUJAZgOW47exc4ZtuudJLv6ZiQuxW1eU q/z5NogHBNSFhdeqE2F0J+0m+OI69wGh5qGjzupa0KsrvtnXS8AmO7cNmHt7/qFQ Z3MceXFuYoaApL3EFkiJoAegxV3Dj9545GPJ1d5KkPP0q7n5ZUSgQOlZCuZ9Bdzf 52JvBt9WmjKLpp8oMTIxceCuQPGn13SUb+q22l/Llw3M8rKYhyhJnhMxJ4EBdQKH rBNY6wQDFw52Y0Do3cgHylwoJ7f4eSTNUvitAVLhJQDpT/1SHxIeLii8Gp3ElAZ+ kZf8i3iTlntBH+6zgVwFqQ3zyMFKnHceUD37i3h3YFDNkY7CNp7RHKncfwG70sxS HtCU3zifPl6d+8oYBekjrPKEH41sNZO866RS6ATkGDttU1I7FCn9ZVu1r3DK/AYP o+s9O5HFZvDINuE7WHdYvOaAE2Loy9jvoQR/+dKpNLw=","translations":{"en":{"changelog":"### ✨New\n* 🔃 Add version comparison on Nextcloud 35.\n\n### 🐛Fixes\n* 🗑️ Collectives trash: fix delete modal. (#2744)\n* 🙂 Accept flag and keycap emojis as valid. (#2752)\n* ✏️ Don't sync page mode across browser tabs.\n* 🗑️ Cleanup orphaned collectives. (#2300)\n* 🚀 Improve page tree compilation logic. (#2733)\n* 💄 Add home button to access landing page. (#2742)\n\n### 🌎Translations\n* 🗣️ Translation updates from Transifex. Thanks to all contributors.\n\n### 🚧Updates & Tooling\n* ⬆️ Update NPM dependencies.\n* ⬆️ Update PHP composer dependencies."}},"signatureDigest":"sha512"},{"version":"4.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/collectives/releases/download/v4.6.1/collectives-4.6.1.tar.gz","created":"2026-09-01T13:28:53.053866Z","licenses":["agpl"],"lastModified":"2026-09-01T13:28:53.150847Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"tjCrYbvYPr6UJVyQh3XhCJySb3ebPXzcJ8HyqbffuvpUgPhQb4pqWKz1dVccs10z 2c3W6sz+Mr1wz2Im1zq03iGh4JF2zqxEruUC17HGB2YQ3eKrsKD+SyCV9yoMNZlA vsVmuhzpfO5/nMJ9Zvs6EA3Dy7z6rBy/715VKBlAjmo/xzC/WTQOcU4nqpOD7ITe Dl3lnZxo1t2m3zXOg8EDSm2tQzgfbf174DRoP+HVy004JpZ7fUSwz9KwT44RrXHn c7eFQbOG1qc4YkAzLAhHxDw1H4sFz5Y/Kj8kw1mmRdRkGn5IXnwak7aiH3DECHPH lCTLc7JIPUXu+twajQcV0OGQSX7Z/sOWv3zjv20HSKDEcWCBk2AKE88EUNE7+vbK fv1pnCz13KDQy5EEzHvUEyvb3mdQan0/A+tCWYQ1HwrbxupWC1pVh/66HolggINo 6Osoo0Mtn7NZ4YrmLMU3wSWv8vXD4GJE1dHhnDKMgXvW9tBRdGAYZM69YMzzrw/e Y82ryjDKLfUtbbhivfXNFzlmsqrKKnr7Hawo3RW5xd5o0e9P3vMd0wp+3Tod0hqk t3E4TYFV49bOm6FBMzwg5tmgypH5kwbC2mll8e1QxKQyTSytazRJh53WZDznhjJL WkjiJ6vfpTsBS+KuTT0u/rUn9xUSCZgFlx5jgQXupjc=","translations":{"en":{"changelog":"### 🐛Fixes\n* 🔒 Prevent guest users from creating collectives (#2702). Thanks @ ZakariaHogeschoolR.\n* 🛢️ Fix duplicate entry for key 'c_p_versions_uniq_idx' DB error (#1886, #2405).\n* 🖱️ Allow to scroll long collectives list (#2725).\n* 🖱️ Fix several drag and drop issues in page list.\n* 📎 Show progress when uploading an attachment in sidebar tab.\n* 📎 Don't show loading spinner when refreshing list of attachments in background.\n* 📎 Allow to open office attachments in new tab with middle-click as authenticated user.\n\n### 🌎Translations\n* 🗣️ Translation updates from Transifex. Thanks to all contributors.\n\n### 🚧Updates & Tooling\n* ⬆️ Update NPM dependencies.\n* ⬆️ Update PHP composer dependencies."}},"signatureDigest":"sha512"},{"version":"4.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/collectives/releases/download/v4.6.0/collectives-4.6.0.tar.gz","created":"2026-08-24T09:42:32.843024Z","licenses":["agpl"],"lastModified":"2026-08-24T09:42:32.900706Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"DpLKZq03hbgt6m0JXYgwrePFYRSoqCVGK+WSotc/Pz0BYQjSkZXusqALxTlKKqrP 1hv/K3/gBkESH/n0HOY51XsPCtHezoZlMo+oA8qZuu5IQBVbifuS6sePRgeTva0/ +YVAjx6NVG1L17aeLBGCicxhKIXVf4rsBmb6gXJsBREbPU5DRWpla/YJ6WgLWZA2 YZpZIrE/1pVhj0oGEVD898IBzrryqbKQTZvvRAsTkXg4OIIEWNnR9e/n0++DkC+Y dfRCaTuT8wIMTxxqNAfdOYAsDIOQS4QGmHcg1Xob0/zia9wBlfwKg5UzU4JiOUIl gV+0VO58fPzNOW2vg61L1PiEvYZ9NTcf34jf0rBKf+Hi6E6ooFw3J00i9+d1b7i6 Y4ZQHFs+e3r1WBhn0ZQpUWvsy4yIbMfkMZ52IglRvaCuRleGnvFniSeS0sN/VuyA NkWT4UsTeOrBtqC0aAAySJwQGF8y0rYVe77EwWwPVNoaokOTzyTB4cE5klSC7u7j r/QeF/q7qWd349O3r1DxwajD43worthDrYxspfHm3wcYbb7zws+UFqdWj1Q7WcoR 5eQobmfVWw6vC4mgjyX7x0ZMxHe+KJnSuWreryBhNhtFtos8A02mfW4sEE7N0qky Id9hZIm6dMN6yJUKQECaCfEvokv8e6JkWVo7dxl2XS8=","translations":{"en":{"changelog":"### ✨New\n* 🚀 Navigation dropdown to select collective (#2682)\n\n### 🌎Translations\n* 🗣️ Translation updates from Transifex. Thanks to all contributors.\n\n### 🚧Updates & Tooling\n* ⬆️ Update NPM dependencies."}},"signatureDigest":"sha512"},{"version":"4.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/collectives/releases/download/v4.5.0/collectives-4.5.0.tar.gz","created":"2026-08-13T10:24:17.941025Z","licenses":["agpl"],"lastModified":"2026-08-13T10:24:18.103538Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"WDVBaXRyhwOtH+kIjD8ylGo+89jKRhTVDXMheatzdU9QA3Zm7AGlQ37fb1h4t2QE Clqt+vZyk8weFdnGOC/msF/b12WBqSjMPmeg2pGSHI+tgG1qp1hBBIunipIR0Fjb 57HoLJqX2unzbdM2ymf8HMtnw34uzPS1Jmi35Kf4GhURIskdx+r8meLkSMy5dvv+ cKLB4KdkHvsAKAkyvSjMMmj8oepi5/R7tk5KtoRbidlH6Pw6ON+HKf9uoZIyunEx 7YmnWsDJ/yw7VYCZMt4+AwHwEKlcrNwiqZqs5Q6ECa7mh6mNQiCeJkFd+q+GLet2 +RFD21FsxR+29Dkpnh6B3WzJ0OF4Iwui7FSsRtHt77P9ZkDioNQWSqGYuUN7jZmd +Oumr/ih6Rx1oCMtrcsiX6BjbPCw0TCopTzU9yjPBJjWjkk1FRbTfyO6XG+Zyoro yJgsnS2hdwRLqWM0s0IQEbBhBbkeD+lai02kb19nLjcnx+B2YmZFg8xVI7zMeES6 BmqZ2bZipRdOjkWc5xl9nxuLOcbkTd3crhBCCUYLKgiXYlx1TgLN4vcgLVxqiUMD hoyNXNwcb2zFUqEi70xjTp8UjlNIQDf6H9bgzB8xJolOqz1lHKxZrRM0AXucLAaQ cownvOeqecXFsHjFdSSGg4BXEk95HQSXCVJPCkarzao=","translations":{"en":{"changelog":"### ✨New\n* ✨ Add Nextcloud 35 support.\n* 🔔 Allow to subscribe to changes in a collective (#317).\n\n### 🐛Fixes\n* 🔎 Always list page picker first in smart picker when in Collectives app.\n\n### 🌎Translations\n* 🗣️ Translation updates from Transifex. Thanks to all contributors.\n\n### 🚧Updates & Tooling\n* ⬆️ Update NPM dependencies.\n* ⬆️ Update PHP composer dependencies."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb2xsZWN0aXZlcy9tYWluL2RvY3MvYXNzZXRzL2Rlc2t0b3Atc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Collectives","summary":"Your space to collaboratively write and organize","description":"Your space to collaboratively write and organize. Collectives is designed for groups and communities\nto structure shared knowledge and cultivate trust.\n\n* **👥 Non-hierarchical at its core**: Each collective is backed by a\n  [Nextcloud Team](https://docs.nextcloud.com/server/latest/user_manual/en/groupware/contacts.html#teams) - its\n  content is owned by the group, not a single user.\n* **📝 Collaborative page editing** thanks to the [Text app](https://github.com/nextcloud/text).\n* **🔤 Well-known [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax** for page formatting.\n* **🔎 Full-text search** to find content straight away."}},"isFeatured":true,"authors":[{"name":"CollectiveCloud Team","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.7857142857142857,"ratingNumRecent":0,"ratingNumOverall":14,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhFFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwODMxMDY0OTM1WhcNMzAxMjA3MDY0OTM1WjAWMRQwEgYD\r\nVQQDDAtjb2xsZWN0aXZlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nAMNdFD81rbo24fLqTjy5Oagk9ZyJDL+tFiOIhjD/7moycpoS12G3OwSXTaGw+ot+\r\nldjfL0jzz0EkhRoRXd1woiMEL0ihRAO8hS5Hov3iNrNg7goKEc2guRS9Di6PrL0/\r\n6Id0ZdUxiaCAtejxR4aUSYndliRihlR5C5OAzkWIPfgul49WNeZ/ZSiwvfPIxQV4\r\ncgBAw4c1eOjuMywZ/gNpJtV5lRG5qLeQNNbc59kICoGucfLEZYZi516I9EhjE4P1\r\nfDr5cy+HwZThEobmlMerc4IHK2XXKNtu9D7xgTSlKELQIoPCY7QzmDwJgqErlVFR\r\nIkxcLDxxw85RMZaGZQOK8C312uer1TmzmMOjGzz470mvJRZnkPWZQKDDSbEfhK4v\r\nuT0BUJQzCbIs3csut8CD92hCaf6yO54yk/HiKwfsmc86V3OaH8tYye9wea2LlrCm\r\nUhIIZEpcl8WzFzFDwJy2GjewiM7SlAQU+WuFMOrfewYA0RBv8CxwAZKYxK637R/v\r\nLT4+tf1EUlpWIRuVo3ClWNgX0Y3iKuS2fcRP8fneuhSILV8h1jF/HBrnU1t6kjyo\r\nQek9MeAoleyh8SsoPgQPkT2kwsIVQLm7Uuy5JlHHgcfApBsUi7j0fytaqvZ2QSGp\r\nJoUbCl7/TNaoXiZZ4uURkwY2/NGGfwIgyE7RsA1T1e2RAgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBAE/Y7VeErTPSV5ysUHxL2eXWhPNrZr0/EHx4zUPGuyrI1Br7LRXD\r\nmw6oaqEsN/dMiq7bXyzpSSH9HG2O/JGbpNrMmY9EA/ZynsyHfFKEn2ma3lOI8F3o\r\nn526tR1uekK/JA6Js/hTQARCN5WXW2Bqiu0TVu1OrJZZi8KpJKPgqjtE89lTXn/G\r\nOpV78YlXnWFwqzpsVkn9Z/SuU+E9+UP9itq/R/uRup1WbHqPmJHiqZJY84x+Wk1W\r\nYDBa1L52R3Nrkp+y8I7VeNU+8Eq+FIaoL5I9ultIhe6ie1tfF7Jbak3zsAeXseT+\r\nWLqlrDzPdnTPXkrkkPNNUB906DsWOBVrjak=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/tag/collectives-app"},{"id":"mastermind","categories":["games"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/yardinternet/nextcloud-mastermind/issues","website":"","created":"2026-04-07T09:11:47.911616Z","lastModified":"2026-08-21T08:57:26.720125Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/yardinternet/nextcloud-mastermind/releases/download/v1.1.0/mastermind-1.1.0.tar.gz","created":"2026-08-21T08:57:26.707118Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T08:57:26.767576Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"eglpzlXzk1PXJwGkS4BRKVEUwbkoN26Tt2e9CoagO3geQLOyY4oDaLhJ8uUwLmBm\nDFfGeyv8GXuTdWbtMfb3ivCehXWgzb45bqjfDIlgMy1VgeRdhFNbddypm4+U9DwU\nMf2cq11HCjTO69rS80SIaoyzc9pys89p0fI/Ph9zjqPTHGF4252D6mrhTy8wf2gf\nUfmBTQClSNHEWt6JqIAg+BvJVrgDwWFxclmDm7OK2gvMHnd1J4SwJ0DsCx6/SJBr\n4+OHYRWiAD/3sD6i4gsBGeC5+GC7oLHdJkUmQ7FBgP2HkcyyoKqpnU9fl5+kaAfy\n2uDPXM3m/+aJcoFVJtIWXXCCULDrpeJfQAnh3JfrCaWdDWStrUxacqYbr0qeXj9Y\nb53v4y1PidfDuNAcCBTbqQsZ1GqSEnawFpgCr11h/N/gJKhOuX7KXvFaa473yjrj\nEA3PaI+jZuVd3QjqOk0s2nnq3wjz5vF/9WCa8w0orW9yemW9zUN/oQnWF9Pz1QmC\nxyUiZVWv5q23ALB65d/wmqAseXym2OyGtJ85FwoIfO9fkfmMstcQUYJgZDw7z2tB\nPWoLN90kuiGi/qnI/htVCRWeCaZx0CoUe8w4qnMFtpiAHQBBzVpnSUL7bwlyOVbd\ncN9/BTWbtAmKYMHf53fjtDy5GlMAM3FVPhXRjGQlYIQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3lhcmRpbnRlcm5ldC9uZXh0Y2xvdWQtbWFzdGVybWluZC9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Mastermind","summary":"Can you solve the daily Mastermind puzzle?","description":"Nextcloud version of the popular game Mastermind, where you have to crack a code consisting of five colors within a fixed number of turns."}},"isFeatured":false,"authors":[{"name":"Marc Schwartz","mail":"marc.schwartz@yard.nl","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhMiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzI3MTAyOTU4WhcNMzYwNzAyMTAyOTU4WjAVMRMwEQYD\nVQQDDAptYXN0ZXJtaW5kMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nme69c/YyATw5moAZh59vBseUkZ4Z/3lanJW+v/n0UjtijxnMeGsZQVkJxTP9KsjE\nIECDZd3zesIO/H9DO/c8G12qhrTtLu+6KFKERftfpvRX+q/xnZgglCcQ2RHu3bRR\no0Pi13FtGDbqgsBj4NsOyikjiz5gOD8JKT8bb4kaq1E3HuqNlKJV676DlqBZum3O\nUvrnFOUk2KMRmYy+/GMQhu/CjdYGfRtSxKulaev+YTs1mLSCDagEKksA7HFjokXR\nuA47eXTftX2+hnxX6IZUG8kt4B780jYwsL90dDmm5UdYAPSr4uil4e6CtruuciYf\nfnKAHFcPQM6HPCFLBVKj9JRCbfINocf+9R2mYRnsM2U0iS1DOsni8HvhdFv6m7ef\nqaa6b/CHzmknyAVCtGTxo9G56ZL8zhpqhdqcmG7DjzcD7CTgT/vYKyUi34bdeqPH\nuxOU3+14qwkWgoAvdYqiLq5ThXHOPZ4UHGetHY56CvaWH7QG7Vs7wYFKghi0qCms\nulemG55TId2f2491krpzfYGSG3Pf/QXN0/jgW0dnR12niojPm3r6i6FSclbytQ4E\nyviE9Lfc3fs0AeAfRjfqRquYglrJvRFoY0qE10+GII1K3WoRi1ESiTSC3UMmnJFq\nBQK50m1XNahx64RmS4/JGlatC1u0Fvl3/boDt52XGRkCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEANvFxrTY00EFldIfQnaP4hKrh0II2X3C/A8+aBMRD3lXnygXgI0ly\n0adCpFZVEoEAeBdWcJyuiIL9HXjmP9gQfC7VK/IoczKAZa/MHwpEuW8jPcvOvKOq\nEHkAJQk/c29cPD3XuxpPHO78iD7t71VdkI6K20pWkQaTHswc2x5pJP6qdmmcYnG2\nUMKF/MM+ca6gbMqTNY+F4hFSCNseDhttbMdfWKr+99fTcA1nvLz70jRG/V1S7PF2\nqLZ6+M2gLZDc3yS/0o1ANa/CSgVy6BE78B87+ito/+x5oO5RByQghg/17FT+ZIeZ\nkSFXjVaBa1++ggZphTQFCYrXYrdiIOECkw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"calendar_resource_management","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/calendar_resource_management","website":"","created":"2022-09-06T10:59:27.333810Z","lastModified":"2026-08-25T00:23:31.032471Z","releases":[{"version":"1.0.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar_resource_management/releases/download/v1.0.0-rc.2/calendar_resource_management-v1.0.0-rc.2.tar.gz","created":"2026-08-25T00:23:31.021743Z","licenses":["agpl"],"lastModified":"2026-08-25T00:23:31.051140Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"c6koYhTI14PRZTE30we6LHkGVSh42QiQMmjDQEFx5Ic6wGTrhMa5tE/vn9to0bJoRgY2lQXJXYdgwmOVNC8yO1mL+rexed5BXqLZyoylu5QdeNly7LyavLiXkPdsiMpBX2skUWKp0ZComqABy90t17EX8hkf62xQWUJV7GNyXG8Fmapu2BV81EuzL2AfLkcGkT5j9qa/JHIYp9dUiHx6fOCsm6Y/Mxz4KYlc+Gh6//jEg8Yg59Ic8UaXyORcpUPtzHlox0AYt859mVVpDxmoSFuxni8O4K29x3IjDFwQplrVZOGGh3/ccTZRTO9HJuxr/U6DTxR3Eipgle+yfb502wiVPMGHgohJNCXn5flreG5x73458KnelHd1GEgoJu/npAC9z66HxdPS+YBQ8k4oqfhnTCejdxk0WF56Rhu5A7JzGtvd2BDqELCbDOII2uz8QZB83uvkvb8rROdyv2fcckaiIa4RgXOaoHCVirTSdSfRy8vTXaQ4RfFrgEyCybLL6w/qmhius1A7a9ypz91dEt3gjEA5Qfb/Ckf62DPE6lCOlHzCJ+O8AVPahLceGQlKntVrRLdQHKOo0/iZwyiPM0sbsGn3g8gO0zkOBXKlXiVWGDJyzM8F2hewkcI3TiC8eZc41OTfciy73Ya49YkI5A8VBwt192stxGgKO54//mg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar_resource_management/releases/download/v1.0.0-rc.1/calendar_resource_management-v1.0.0-rc.1.tar.gz","created":"2026-08-24T23:29:10.013096Z","licenses":["agpl"],"lastModified":"2026-08-24T23:29:10.061785Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"hhISDt41k8+iaTReLdS1NeVtXs8Ob7OW868i2G/5eeWhB5v3tNmn0rtXxA7K+N/SCa7cBnc6q6Zl34yF0+FrrrwCg7fNYsJQ2RDhpOw/bVRjTgB/jGr7IKhZKgalGGqARS+v/BeHX8ZQl8NjZuU9BYPr+CIxeFnwThn4i7Te5HMAgxUwG05qFA/D4fiKD5NKH9pOJjLelXGPxF3GV61+K6+RNa+ImqblKCQjshZNRNZ9MJRaiqFKwghTDLFeuWspoIH/Gyo/EBd2M/mgWXJK7ypkE4ICWCWQPZhiyLFI8obQuCDf0MHaQHacOeMLrZs2Fu6Rl3BapRRkrYGgYhHBTdeTzEQSFtRwtP/lNcIWR5FvVq0km0/dhNl1Z+6jbo+Zk2mgj12liWz4vA3I31CsBm73gY32ITTHPXHWjOrUw2K9mgwAa9fWvOzzANNCijhA5lolLnlCaSJPAH31rza1epqYSSt4QvYYmNwNOG5xYZa+Pkvkh+UZMatE6FD7MjZwpO+XpBjk2br/YWAvDoJuSG/pmJBG2EynBnTOi4s+04gguHOid2VhFmw5OEf73FHyprOqbS4YXgfMaMjiDUPLOD8EpPs5ZuSeBxuss5UVavSrg7v/zkeRRAvVFkT+mP7T2liBSjQ0paHTSZQq7rDKK4yxAt+ox7jMcDJsW01G9ew=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.13.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar_resource_management/releases/download/v0.13.0-rc.1/calendar_resource_management-v0.13.0-rc.1.tar.gz","created":"2026-08-24T16:42:27.980654Z","licenses":["agpl"],"lastModified":"2026-08-24T16:42:28.040984Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"XCEXODJz2GV4d9OndSq5dC3lEFkyu+oU0phvDeerP5+rjvO/OlHHWkm/XarVQho3mA8/h/vJ2yd8QtXKlTHplUsKuJ2QN4ziakNzlkGhG+zXVnJ0eDa1ePRHhpaLM6EMEDDn/qLYJ4aeFvrMQKz7dHkRIFs5dg1GU18Wjot5UJP1PIETyBddwf2wF/GzlMJN2a8PBI/F0fZZhm/l6kZeIi4aF/jFwJvX8xQmyxSM9b1bio6//HdaVIkwTzaPLbLJJBkyA9nDJvL+hv4NCIOU6J1m8TVQDzroK1cG6Ghp7yQjXdILPt8a9ulnlPLIN6UB3Fy/1tNdWWbRRMUfhHdLiPi1OndVA3So0m00URx1BjAs6W4CCmgTw3SBMqvave+Qy6+iIPIku5H0167NM5rwAyL71wIauu6AUh2GUwwMkYrSQ45e++vQwenAozjdYUFJD8pmfWz8cO2VS293gMnUnb4igiUI6BojydBoNRRzsJYSZNgs+Hq5QRjsfgcQplGiIF7sNvtfHTcymV+8LGjbLwfP7SPjXC7/O2PrhitY8cdqLOoJGOirXIhm9VodmKSoEn1NhMEl9R/err4NNcJCGH5gS1LRlGmNX5eWceURK5YSa16PotLmTWSGKbUKqszwR7AKgV57brKCGiNo+Hr8h1pTyd4M2Caj1o3XKp3fZt8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.12.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/calendar_resource_management/releases/download/v0.12.2/calendar_resource_management-v0.12.2.tar.gz","created":"2026-08-19T15:26:04.972835Z","licenses":["agpl"],"lastModified":"2026-08-19T15:26:05.058709Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=31 <=35","signature":"YOVRoTGwvIYIFVbS9qCa8S6HwhIR1+3QeCqrKecaohcY9XA1FMZHeEgyadPBWMhIFufFMgZoDJklkLQPjqLBI8Ru+vRXVjgCfIg+Dsb07n6Lu0pP6p+Q0xPisSLEl6ZiynsYf7SCuDhbcHMUaGlxdrqD/bE3NmQSFLgxPYABrEmk47eQAmkMqyodjp69AdXCAVdqnZU0B03+NH6RcfhGXvmFLevW6VkK3SBatHYjSQcTkqC/yldzJATqjRBOZjNabchrTMb/9c9ykwNL1kKcikucpYnpUNkm322u2lpeXj+YiqppDe3YEsXU/5jLdZ4iEdqGxtejIiVgxmZ0l8m368t9XDzogvaFGr1Zp4LG7mz3ASocWa5nTdVTAU4CSyZkme20T/zGNLf0u01X/LkbsP50VzJJG7PiLkbMsGmXFq1telvo+94ZP4G5tiTKsL9AzfLysh3eFF0HZv125tpVugXOFimBTHaFPZ8oo8ey1dlhbPTJ50E30Aq8IcjLwwRNTwxjPUx54PXYuWV1EtUTg/MdGcDlu7unlymaAB2JVvMZzKmZYAWZSFrTHFY9UkDAHZXKYa/9VQitI/X8PKsKIfwzDoQ5Uvql+dF6eVAdQZGyPeq986WbP7ExRugS3wo4ooXgHZrAmrf+VbMmVIvMfJn5wYG6CdkhfjvDJw3hPqk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Calendar Resource Management","summary":"Management for calendar resources and rooms","description":"Management for calendar resources and rooms"}},"isFeatured":false,"authors":[{"name":"Hamza Mahjoubi","mail":"","homepage":""},{"name":"Nextcloud Groupware Team","mail":"","homepage":"https://github.com/nextcloud/groupware"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFzCCAv8CAhEZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDYwNTQ3WhcNMzAwODA0MDYwNTQ3WjAnMSUwIwYD\nVQQDDBxjYWxlbmRhcl9yZXNvdXJjZV9tYW5hZ2VtZW50MIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEAr8L4u6+42lJ0cxmgYfebipGoR7bmlIn59fvIAX+D\n4FrcvtTgBUbV/YObHdH6SYpVEA+rYfMvQNloT9oHLgOgMxItaN6Ysy/hTQzOSp+a\n0zCLc7SEaJrBWr86iERbxH7HPh0uYAts6fNveI5DFUNWlYv60OIo6MjBubGZIoZF\nS4hWAAjP7IctezPJzrtYKEqJiLVYU+aRh/hLFqS95TeOxrzrN3paYmBKBiHxk2j4\nhTrQpMo3PfGOZocZljmP1Sn+su8Oqj7R/Y9uqjX1uFNF4mMns6DKk5iRT5zPLyg5\nAY3GxeOH74JSBYqqxiBywf0Coq//70HH1gkibCXo8F91uLAR7hHHVlXTnpI44s7k\niIbB+Zzl6+wNtebec1iY3+1PxUfHTEtuKvM47Fg8Cz4zM5m2fDyz+UzYFLct5fRw\ndVHkUAxALWnzlxbkwvYhnJE/cjOhufhJzTdIldsMBA3MUWgf79uNY2B/s9gSIlnj\n8P8h2Z0zJ8PtN0PyzhmrGV7s39EnM5DwyhPozuxRTYOOOXmNLjCxi1jnhrgYGENb\n3PXfKvqXrN/Y2eMUwCDFbZcEQ3i7yHO0EZ37vYRPrTvO9FqJfK5m174gIXUMssW/\nDR1rq0V6Sxjao2jcXJia3iK6PY3YqxoiDRUzqzIsZ5e3m52OS2N5JkryrYEHLvdw\nEnMCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEALX+xeXO/kLg664byIcvCrZKrEZxw\nMKGj29sMj1+5p/FSGmCtIAJQc7yACyHgQ9bv96tcYDjJdWleFdva9qyD1cznEbzj\ni0knJAbLTyms+FeZwal8o+maEnG3LzzLH/nnW5/bpDkIDlttGUXg9ZyQ0r0kKROX\nfKtc0d6HlJSnk+qRBRSF6TR4Ng9EJHUM+AdueiJVxpEWwbSk6H6qmfUPyWdFqEFD\nRdyGrSzi3r1HRG4baY/i/T5ohp8qk5puaMyDey/KACk6fPNMF0V8UPZxeFRWqkn/\nwgp/EmNVkfiL+svD91+A6t+IVlG3I39VmY+zyr5QEHZ1ztgUMqPgEfhRNw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_itop","categories":["integration","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/lexioj/integration_itop/issues","website":"https://github.com/lexioj/integration_itop","created":"2025-11-08T18:07:38.257830Z","lastModified":"2026-09-26T21:01:13.973798Z","releases":[{"version":"1.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/lexioj/integration_itop/releases/download/v1.4.3/integration_itop-1.4.3.tar.gz?cb=1790456470-1","created":"2026-09-26T21:01:13.968852Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T21:01:14.022113Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"aGErBYZ69ot3XEeyeAsN63ujSZcUgGHPl2ArM1J3qBV2GbKPqa9OGpzCmCY9JKRAPWvadu93hZ8JJ+ZyIFAoJSnt2MuNbN9JNyZY2DDkE6IjmQoV/KTLzm3zhe6Tk1pl+mbYSEtzGJBh4i2qyZq39w7bkRhKH3+aTbM7oZlJc+VQhE7NZ9B4F8npRv6YP9CsM7OVKBS1CWO6T3S6D6aUS/lBbPA41jwFDfto+04M0YSo71QdHbo1B2ZU9iyOBXLku+ZkzKkP6lJIaSq0YLJctwCbRA6N4c+qQG+mcmbeWK0Is6VcghuR7coUnGDR80AXH1jws0PrwGWK/61+PWcEyaqsnO+UOL6EDKCvMwpIN1MoVmgtJ1lpbvysr7MnJMhd+N1UFHcmIJxWd0on+XgbCDiPzApLlw50PaCt7PvXHnmr3IotbKyWl1rFEFEgcSead/WBSHUHXChdmdVu57fw2dm29Me1uvcgz1lMtoKV0WQWBlW5koK5H99KKWcIDdxQQ+QPBJfUDkWD1jq6mVZs1aUZb76RCJaw4e9TXwJhIm7RLoz9G3hMbCLxA2R+VKaROrEvzHyrZVQUPx7mG8Uyt00jb4yeT/lmgLxXYLtUJFSVluZj9Y2JsMyO7bXHcsCcHHanViJcYSvQyjqbZhtVJJy7LHlpuwZBwX4lvg+Meyc=","translations":{"en":{"changelog":"### 🔧 Nextcloud 35 Compatibility\n\n### Changed\n- **Nextcloud 35 Support**: Raised the supported max-version to 35 — the app has been verified to run on Nextcloud 35 without code changes\n\n---"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvZGFzaGJvYXJkMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/lexioj/integration_itop/main/docs/images/dashboard1.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvZHluYW1pYy1yZWZlcmVuY2UtcHJvdmlkZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvdW5pZmllZC1zZWFyY2gucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvc21hcnQtcGlja2VyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvcGVyc29uYWwtc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvYWRtaW4tc2V0dGluZ3MxLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xleGlvai9pbnRlZ3JhdGlvbl9pdG9wL21haW4vZG9jcy9pbWFnZXMvYWRtaW4tc2V0dGluZ3MyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"iTop Integration","summary":"🎟️ Transform your ITSM workflow with seamless iTop integration - rich link previews, unified search, and dashboard widgets!","description":"### 🚀 Complete iTop ITSM Integration for Nextcloud\n\nSeamlessly connect your Nextcloud collaboration platform with iTop IT Service Management system. This comprehensive integration brings ITSM functionality directly into your daily workflow without leaving Nextcloud.\n**⚠️ Requires iTop server with REST API enabled**\n\n### ✨ Key Features\n\n#### 📊 Dual Dashboard Widgets\n- **Portal Widget**: Personal ticket queue for all users with status breakdown (Open, Pending, Resolved)\n  - View 4 most recent tickets (Incidents + User Requests)\n  - Visual status indicators and priority badges\n  - Responsive design for mobile/desktop\n- **Agent Widget**: Comprehensive operational dashboard for IT agents only\n  - **My Work**: Assigned incidents and requests with real-time counts\n  - **Team Queue**: Team-wide ticket distribution and workload overview\n  - **Change Management**: Upcoming changes with time windows and types\n  - Automatic visibility control based on user profile (agents vs portal users)\n\n#### 🔗 Dynamic Reference Provider\n- **Rich Link Previews**: Paste iTop ticket links in Talk, Deck, or Collectives for instant rich previews\n- **Detailed Information**: View ticket status, priority, assignee, and description at a glance\n- **Smart Navigation**: Direct links to full ticket details in iTop\n- **Universal Compatibility**: Works across all Nextcloud apps that support rich content\n\n#### 🔍 Unified Search Integration\n- **Quick Access**: Search your iTop tickets directly from Nextcloud's search bar\n- **Smart Results**: Filter by ticket type (Incidents, User Requests) with status indicators\n- **CI Browsing**: Search Configuration Items (computers, phones, printers, software, and more)\n- **Custom CI Classes**: Extensible search support for any CI class defined in your iTop CMDB\n- **Personal Scope**: Only shows tickets you created or are assigned to\n- **Real-time Status**: Live priority and status badges in search results\n\n#### 🎯 Smart Picker & Content Integration\n- **Content Creation**: Insert iTop references while writing in Text App or chatting in Talk\n- **Quick Browse**: Access recent tickets and CIs with smart suggestions\n- **Rich Insertion**: Add links that automatically become interactive previews\n- **Context Aware**: Relevant suggestions based on your current work\n\n#### 🔔 Notification System (v1.3.0+)\n- **Portal Notifications**: Stay informed about your tickets - status changes, agent responses, resolutions\n- **Agent Notifications**: Get alerted about assignments, team queue updates, reassignments, and SLA warnings\n- **12 Notification Types**: Granular control with per-type enable/disable for portal and agent notifications\n- **Mandatory/Optional Control**: Administrators can force-certain notifications or let users choose\n- **Configurable Intervals**: Adjust how frequently the system checks for updates\n\n#### 📰 Newsroom Mirroring (v1.4.0)\n- **iTop Newsroom in Nextcloud**: Receive iTop Newsroom announcements as Nextcloud notifications\n- **Opt-in Per User**: Each user independently enables Newsroom mirroring\n- **ActionNewsroom Triggers**: Requires ActionNewsroom extension configured in iTop\n\n#### ⚙️ Professional Settings Interface\n- **Personal Dashboard**: Real-time status with connection indicator and ticket counts\n- **Secure Authentication**: Token-based setup with one-time personal token validation\n- **User Profile Display**: See your iTop identity (name, email, organization)\n- **Notification Control**: Configure alerts for new assignments and updates\n\n#### 🛠️ Enterprise Admin Panel\n- **Centralized Configuration**: System-wide settings with encrypted token storage\n- **Connection Testing**: Real-time validation of iTop server connectivity\n- **Ticket System Detection**: Automatically detects iTop configuration (Helpdesk vs Ticketing mode)\n- **Custom CI Classes**: Add any CI class from your iTop CMDB beyond the 11 built-in types\n- **Icon Management**: Upload custom SVG icons for CI classes, or auto-fetch from iTop datamodel\n- **User Monitoring**: Track connected users and system health\n\n#### 🔐 Security & Architecture\n- **Dual-Token Security**: Separate application and personal tokens for maximum security\n- **Data Isolation**: All queries filtered by Person ID - users only see their own data\n- **Portal User Support**: Works with SAML/external authentication via Portal Personal Tokens\n- **No Data Storage**: Personal tokens used once for verification, then discarded\n\n### 🏢 Perfect For\n- IT teams managing incidents and service requests\n- Help desk agents tracking assigned tickets\n- End users checking their request status\n- Organizations using both Nextcloud and iTop ITSM\n\n### 🔧 Technical Requirements\n- **iTop Server**: Version 3.0 or higher with REST API enabled\n- **Nextcloud**: Version 30.0 or higher\n- **PHP**: 8.1 or higher\n- **Optional**: [iTop Portal Personal Tokens Extension](https://github.com/LexioJ/itop-portal-personal-tokens) for enhanced Portal user support\n\n#### Start streamlining your ITSM workflow - Connect iTop with Nextcloud and experience unified IT service management!"}},"isFeatured":false,"authors":[{"name":"iTop Integration Team","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhLJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTAzMTkyNjI3WhcNMzYwMjA5MTkyNjI3WjAbMRkwFwYD\nVQQDDBBpbnRlZ3JhdGlvbl9pdG9wMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEApQCMgekkYYpaftV1ZcERCu2ZBVzkGnvDdzFoOEf16K66EYHsszZJHaIF\n8rPcLf0yUPS/EXRbsZGkf3XyMBoL+9fLZgnuSABKUhnE8EMPynS50jRkf20Z76pn\nleVU5fkWPYEUsUrqI8tfIEfhbWmumIpodkIYv0oRXEeqt0p/kg5gelSaGsOv/WCY\nnpRO2NbVG5VKKMrIbp8rc+5umRCr/2i0le9g4s0t/YqKfhNc+DuojKgncNO1CZRU\nUa/cPG63JWd0hfFLV/Jpts6tFpVYx/wpgxxTMvPnxnpuTmIVrIMYWQj+X4hJFgTT\n++4yq4HvKH+xBwnJsjiuF/GdbRAgq1OOQSCeD+EwdFYRFUsK+20DlptO0pcYF+bX\nA3UYERmqksAmENeOHBEPYPqU3ad3wMh5nf+J5xc4LCq/PBo3/rVrPQBhbwwox08I\nicXigo7hr8st8XHpkWs+jC5tVoupAw65J0ciQR2kKE88D4ueI7HjxGtkI1LX6m+s\nOFwCZZBZF5K9DnqRkHi9DgZhLdXes51brcWeIxKaXyfhWrOoRg1YMmTJiG1dWHlF\nGs+7e+JxQtGs2acB4C5h4uxxdyL1nFTvKgQNJ3haCLr5WHas6M1WDUHKIFnPqCh7\nF6GoJK0FV3sGo/wQU44ST3T5GYsoDR/TSgRtDowb26wWBRBU3F8CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAeNUDvib8cBbyvoEqPVQ8j5NyVyPnMYH0mnC+n8h4f0BA\n9Bc1VCa4vq6OlFOuVOcJxH+akBCqXaRmyRaV2cs+5aIjIZSTeYuaVt++ZWlDCGIU\nwPcRMbZK3ai2TNHL1DPUgxn+4x+Q9oOG/qTjUYn6WcSGvP1WqkQO8IVWT9pt0gRZ\n8+Jh85AxDKlmoWLndbvxwGv5F9EzaygPmHMBy8dz/LtcTmxc0jv5NGcZi3oeZSpW\ni2GTmKNLTVGtPRGrvwew90h0qoF+fnv8AiuwNAQYhJxwNy9gINp36bhGYi4QUVFe\nbqH2ZB7zzCqEiBmcevYLXK8jzUKzNxJa9gEaDV+i9A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"synaplan_integration","categories":["ai","integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/metadist/synaplan-nextcloud/issues","website":"https://synaplan.com","created":"2026-03-03T11:18:49.980150Z","lastModified":"2026-10-20T10:21:39.151921Z","releases":[{"version":"1.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/metadist/synaplan-nextcloud/releases/download/v1.7.0-rc.1/synaplan_integration.tar.gz","created":"2026-10-20T10:21:39.143257Z","licenses":["Apache-2.0"],"lastModified":"2026-10-20T10:21:39.200224Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"eKDK43fTZW1tdZad3MGDeYk2hp0op4txSq0acsOFB7/YLAx3SSUbQNStTM1fpa1930sauqdbjf4qUnCN/5XUPllQ0yi1ACcOPHdjnsstJZTiRYZGQ2TGqSX9a5ls5gAN+YuNqmIBKDMsm7onQQAOHEyNUpxNmYjfFgNpA1c8W0sJYOOZfGoOC8TsXEstjtDfl8upo7tvXvNGjojsFWCw0409Ry8vRuDGCC81+jFtRv2BcDJ2mJ3GcbS5gDRyQC4rRWsRulYLA3dNniLPibj7wwwD+ZmJRPk2SJF/SZifDKCcd6l9UyjH4NHBLSIiXnd61C0uHCxKpb61SdgmEo6C0b538J1RlpUs/M9bF8ADP0QLA23J5L7gwT4pgz2jtWFrXEzr5KFMs7lW2QwA8al4auKCCIC/Q1N+mltWMY41O2mxOyByn9DHk/AC19/4Ft/K7gavgKhltmlRLT/AbmS3o8gHdOoF42uvEL/N9MdjHcKS9K7a7EK+4y1KspqMdWGKmOm4Bfp8Mrg668HqXU36gLbgBOOCQxS5VmteaBqIOhBlHsi9E/U//t4NojwsOmmsCNmsojGXq1AyM0Aqq3dfZo2Q5WPCFcPzdrIe9npEg6u7OCPsyt+Hcp2UR4DEbCSx6Yp4RudU2P+jsK+Mts9uPiNiPQgZqqTnveh4Ns/Zjkg=","translations":{"en":{"changelog":"The first release in the App Store since 1.5.0. It also brings everything\nlisted under 1.6.0, which was never published there, and the planned 1.6.1,\nfolded in here.\n\n### Added\n- **Five languages.** German in the informal (`de`) and the formal (`de_DE`)\n  form, Spanish, French and Turkish, next to English. The formal German of\n  earlier versions moves to `de_DE`.\n- **Honest answers when something fails.** Every Files action and the chat say\n  in one sentence what went wrong and what to do, for example\n  \"Connect your Synaplan account first.\" with a link to the settings, or\n  \"Synaplan cannot be reached. Try again in a minute, or ask your\n  administrator.\" No error code and no exception message reach the screen;\n  they go to the Nextcloud log.\n\n### Changed\n- **Keys are stored encrypted.** Each person's Synaplan key and the admin keys\n  are now sensitive values that Nextcloud encrypts. Keys stored in plain text\n  by earlier versions are encrypted the first time they are used. A key that\n  no longer decrypts counts as no key: a linked person sees Connect again.\n- **Translate uses Synaplan's translation mode**, so it translates the whole\n  text instead of writing a long summary in the target language. Against a\n  Synaplan without that mode it works as before.\n- **The core's words.** \"Make searchable by AI\" replaces \"Add to AI\n  Knowledge\", \"knowledge folder\" replaces \"knowledge group\", and the\n  connection modes are \"One shared account\", \"Accounts created by the\n  administrator\" and \"Connect your Synaplan account\".\n- **Only signed-in pages load the app.** The login page and public share\n  pages no longer load the chat button or the Files actions.\n- **Nextcloud 33 to 35** (planned for 1.6.1). Nextcloud 35 joins the supported\n  range. Nextcloud 30 to 32 keep 1.5.0, which the App Store offers them.\n- Controllers declare who may call each route with PHP attributes instead of\n  the docblock annotations Nextcloud deprecated (planned for 1.6.1). Access is\n  unchanged, and a test pins it for every route.\n\n### Fixed\n- Only a refused key (HTTP 401) makes the app forget a person's key. A 404 for\n  a path that contains \"401\", or a connection error, no longer disconnects\n  them.\n- A `/pic` or `/vid` typed right after opening the AI chat is no longer\n  refused as \"not available\": the chat waits until it knows whether image and\n  video generation are available.\n- **Deactivate** in the admin's AI Users panel revokes the person's key in\n  Synaplan for accounts the app created, too. Before, Nextcloud forgot the key\n  but it stayed valid in Synaplan.\n\n### Upgrade notes\n- Going back to 1.6 after 1.7.0 is not supported: 1.6 cannot read the\n  encrypted admin key. If you do, enter the admin key again.\n\n### Development\n- Releases come from CI: a tag on a green `main` commit builds, signs and\n  publishes them.\n- CI clicks through the main journeys on Nextcloud 33 and 35 before every\n  merge."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21ldGFkaXN0L3N5bmFwbGFuLW5leHRjbG91ZC9tYWluL3NjcmVlbnMvY29udGV4dF9vcHRpb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21ldGFkaXN0L3N5bmFwbGFuLW5leHRjbG91ZC9tYWluL3NjcmVlbnMvcmVzZWFyY2hfY2hhdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Synaplan Integration","summary":"Summaries, translations, chat and AI search for your files, powered by Synaplan","description":"Bring Synaplan's AI into Nextcloud Files:\n\n- **Summarize** a document with one click\n- **Translate** a file into another language\n- **Chat about this file**: ask questions about one document\n- **Make searchable by AI**: the AI finds the file when you ask a question, in the chat or in Synaplan\n- **AI chat** with a knowledge folder and model of your choice, optional personal memories, and live status (model, language, images and videos)\n- **Answer language**: a default language, or each person's Nextcloud language\n- **Connect your Synaplan account**: people sign in once, and the AI actions run as them\n- **Five languages**: English, German (informal and formal), Spanish, French and Turkish\n\nRequires a running Synaplan instance. Three ways to connect: one shared account, accounts created by the administrator, or each person connects their own Synaplan account."}},"isFeatured":false,"authors":[{"name":"Synaplan","mail":"info@synaplan.com","homepage":"https://synaplan.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhL0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjE5MTE1NDEzWhcNMzYwNTI3MTE1NDEzWjAfMR0wGwYD\nVQQDDBRzeW5hcGxhbl9pbnRlZ3JhdGlvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAKQr7VKtEGVP7Ee6Mru4NpN8jlgmfXAo03xUrEPvGW4+ts3I6z8C\n2ebfvunGrn/Vb1d5zNz9sjedYPSxs2SrXV8D5fV++mU+n35bZ8UNN0AqYYixU6Jj\nCDCDN++PyodliT4p7rznATzY9SYe6Dey3T17LdwpeuZKtb/86DV+rAbFLPiKnnoe\nleQgeNO2slVGQz1cN74eUdf1KD88Gj4tIEIRDyYiu/0tAPrvynMqPUDlgcU4TUuX\nao+GVkbjCXWaE43ZuL/VlLas4n4+Q2fJrRbjvkFr3yL3Z8Rkanb0Sg/vtcyChrlV\ndGDFfougAI+Jmh0wh8KVU4rNQxFIXUt17B/hwjDYP35YjkZvX8EDpL/ZjvgExN0S\nFA79V7sZM/BJnS3V8Qn97LY9y94FbtudRJQvks4XRAx4wKoZD/mCHLqD7vg9QxSI\nOQwfY72GY9Dw1j2kqARVT3VIcyJXsVnDStXvnAAA5euLDSX6lu8aA930+/A81KP+\nH5gtxVvNyE/nCo8sR93AwIgTd1DBQk2MXc5g3+AxDYmhNkM5l4vPfBT30AhO+s+q\nOIm4ISUefOLqJk0exxB+Dk7MupIOuG9ImpZeXCMO4GQwlYfkG2K/FLOR+TCBaSs3\neh0r/kghP6AyLBpirZU7pR5YDFXPxIIg8U92X2rjXx59V3uZNslPTQj/AgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAA4OyP+bBYVGalieoYD17eQC1goZG8lLwgs+MDWC\nZnREM+SK12HZUHEa/iJImZMB9JF9HBHv9cSp+5CHzd0GNMiJpJVU/Be+vw59H7Yk\n2IuiHhzV7VcLjGGNzFKQPCuXYOfi7rgS9voMyx1oXCL2KpQmi9s+2krYOjqZ9QKD\ni/yzQaHNYqrQuAxWvvewRqRr9khcOwvSfhD7YD7SPqmGDeYy4D8aqLYz+6VsHtgh\n8YT9rQNiv1u0qKT2JwQY87s6IgNAFn0ZT/lpDZQPikJCVXwseUehjnQlYy5suNdM\nROUbbrGuRedW2it8C/T+l/sZNvq5G4Yave/oZVRQO4VtmhM=\n-----END CERTIFICATE-----","discussion":"https://github.com/metadist/synaplan-nextcloud/discussions"},{"id":"maps","categories":["integration","multimedia","organization","social","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/maps/issues","website":"https://github.com/nextcloud/maps","created":"2019-08-29T19:23:48.216959Z","lastModified":"2026-08-21T08:58:55.177384Z","releases":[{"version":"1.8.0","phpExtensions":[{"id":"exif","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/maps/releases/download/v1.8.0/maps-v1.8.0.tar.gz","created":"2026-08-21T08:58:55.129592Z","licenses":["agpl"],"lastModified":"2026-08-21T08:58:55.232711Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Vb5REAzvxCxENQtmpOn9zyFL3muztdYGtB+JT0GpYPQoqH2hMGPuxi7SHUriqq4x4Ac5JgenH02paS+aM4s1QiVZOcuPNfBzYTG8RwnNYY7IyT/pJqmzCm7dLaHwJxoPyRnRTsI3N8woWc4ReBNvRJwzSJAeSe7XtSygipSbY98GXgd8e/xu+ANOuyg0SPrx+qqzFrW450n7rP1+P/t+djwsW+s0x2lXH5J/5e0wKYNDuPwN1SNMtyIiazolqJaWzuFUimgmdK1CU81cCl+k6On7pi/yJEtsajzkAs8WRFm/4r2JocJNtApWSIoL1VIMOPOtbah5xvaWKLlD7FwoozjDNpLRqNSy/6KSB+ZZ6X2qlF0NV038cMEc0dLCF2YOOazFf9C4ex3b1ncyhquUamvA44AmXYXdb6gUiDOMEQ0EWMTzH5AyDvjeBF2VwQkuERDwkfh2XGgMabw/3deWpQ2k6bH4vxFpaCAuVoky1wpotIZBXkk8NCU5hkw6Km4OeOV0TxI2q7vIyYjWQmWTwJwr3qBO33j5qnN5wsftENK1bq/bXYxINfGVdDhAu4FsJpz9jVPKCxtm2qldSUvP8XcJhXL264CMEZ9z8QKrPXhRTtehIHQgV5D5xUjCFPGf4D8pGWheqct1LJnupTN2ZMxfvpE2UG55ylff2HH2ih0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tYXBzL21hc3Rlci9zY3JlZW5zaG90cy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tYXBzL21hc3Rlci9zY3JlZW5zaG90cy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9tYXBzL21hc3Rlci9zY3JlZW5zaG90cy9zY3JlZW5zaG90My5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Maps","summary":"🌍🌏🌎 The whole world fits inside your cloud!","description":"**The whole world fits inside your cloud!**\n\n- **🗺 Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **🖼 Photos on the map:** No more boring slideshows, just show directly where you were!\n- **🙋 Contacts on the map:** See where your friends live and plan your next visit.\n- **📱 Devices:** Lost your phone? Check the map!\n- **〰 Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned."}},"isFeatured":true,"authors":[{"name":"Julien Veyssier","mail":"eneiluj@posteo.net","homepage":""},{"name":"Arne Hamann","mail":"kontakt+github@arne.email","homepage":""},{"name":"Jan C. Borchardt","mail":"","homepage":"https://jancborchardt.net"}],"ratingRecent":0.5,"ratingOverall":0.7037037037037037,"ratingNumRecent":0,"ratingNumOverall":27,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIID/zCCAucCAhDpMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTkwNDI5MTIwMjE1WhcNMjkwODA0MTIwMjE1WjAPMQ0wCwYD\r\nVQQDDARtYXBzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxMyA2RIE\r\nU728oCBcQguZVF8kdmOZp4tpytOMBhTd/Da4xiNjqDYpJupG8q8KoidvuqDaiglG\r\nVx6rz/6o1CgWIlmnIkG14l0e/8k9psZVrXPPk9WxEfjWuB9Q2dwdsck5PPtHgnko\r\ny/GXckE7cja5Ks03O+f+fmq9NdhkC01QSjTZ7E2/H4taRd0i01WAG3saAVRztGdw\r\nPkMrxdXuFzJfu+PRi0Cqi/l6VuiykL+P8LE/Urbjd4551USfH02OR5ypySsMu9RD\r\nSnb8sfuKLexBSQwanFR5EpWPkhxScqWvntRfcsxv1E89xMgzNJk3/efiGvVTcJt4\r\nXR9GmMSYM4UDmWbDDa/DgZ2XoOurdWkLgDyCBKK1TLEmQ/1Dx60ZIiojiuEtKmag\r\ndjxvuNDTFzL4JOxlBkU+xFcJCqMsVX6odYJznf9DfY3TxI1ppCppHS69unSdDffv\r\nyDx9N7PKWKgKoIxXdjyiPHdGL28oCfaP4hQxLVOu52MLvddYTX10O8u+0jsU/blH\r\nvy0LX06AyArmWJ7aLFjyvhORfUrDBXaXNQOVEQDbEfSv3cIWU5x+BpRFpFu4F6Rh\r\n1m9sgEaWueVygTGusYM+IDi6IAlCiQNQRYYpUbUHpV8jmMfpRVXPZQVWLZhjfWEC\r\n1A8k3uvpotLqG8nqLmiU7uT+qgP/3aVwwvECAwEAATANBgkqhkiG9w0BAQsFAAOC\r\nAQEAe0i2nxYyBDWqhQK6fL6Ch05dVnFsvk9AT4Gt0+XeJd7tXZMfwa5ooeEiEOE6\r\n+gH30EbcS2petnZ5EZO0mCatuoZVf1DLLFCWO1Xb5pTiaoHm+5p2VyFiNJHL/lyV\r\nScW/swO/4C/8q+hBPaEfkYlLYc8Ea95PhSNqwyojz9a5DftVKEIn0SkvA16Q447F\r\ntR6oNMPNLO+TGa+24kX+XRBTZ58i/IvFO9h7+hzTqXD5YVq9mNuuRMd+wr1g2SGM\r\nIm88KeGDhB/Pj+D0mV8kyXIjGm0QcPnhhpMBc1P12bQQgQefKXIBSQ5NV0zZwdEB\r\noIIGZDBS7TLA4bvrJ7M4EfbBtw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_zammad","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_zammad","issueTracker":"https://github.com/nextcloud/integration_zammad/issues","website":"https://github.com/nextcloud/integration_zammad","created":"2020-09-02T09:38:04.795600Z","lastModified":"2026-08-26T08:52:15.014078Z","releases":[{"version":"4.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_zammad/releases/download/v4.1.1/integration_zammad-v4.1.1.tar.gz","created":"2026-08-26T08:52:14.996189Z","licenses":["agpl"],"lastModified":"2026-08-26T08:52:15.058926Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ne7rf/378wSeeid15Odsi33qR1vdeD447q4JN19+WqWNBxWOiopmwV1Bcr1Uoy3GecQ8CkvtwVnKI6uXjAPhjpp5yNCdHvqglTIr03SqtAx/VrJMo+w3Dt324R+C8SR77rblTbhQ8gnyp7+RN0xLoqZla21bBn1Ps6kiaX5R5Kh73Nn4rkgXNIjlHCaWxsymqkThkSC8+wONRSB2elMyar7/32RWewxjxGE78NjZuGXMi5j5hsKbk2DXHg1FQeL82mvglwEA/tuKjE2at42w+loM47S2rjFhJBtLPAZPFFFbGxz0C0wdkXrbDFrVqKxEPWjlgefsdXg3XPOEYLGWH566pQ4alLLlc/EOClR745TE917Rlo9m2t/rb8Jm24HHmHCYYvP+gPjRvwvXlkaQdiOm0559hGthWonVxeAr9KDn4ykBAlSvwN9BjSZjr+PoU/+eL6CjW4xzzLrDmBm98wqVWtPRV7yCLKpmzWEENs4XxlKUDLW+7J5tOju+yA+19lpyNdRmLi+m289yoslqmvkX4mKyMBvxKglq/Ntkk7kMfh6WCcjjPu6si7GhiNe/z6FY14y5dNEsq1BxiqxfdbKk2eBb51gxBoq/B+X65mKa5e5eS/4tAUbikeDIEPZc7Ua2N3qU5Y4RieCCUITahpi5DTV5NyFb9y66hBjfavY=","translations":{"en":{"changelog":"### Fixed\n\n- fix: Dashboard widget stayed completely empty (#247)\n- Fix: Use the current `NcDashboardWidget`/`NcEmptyContent` props so the empty state and the \"connect account\" button show up again"}},"signatureDigest":"sha512"},{"version":"4.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_zammad/releases/download/v4.1.0/integration_zammad-v4.1.0.tar.gz","created":"2026-08-04T12:39:05.057484Z","licenses":["agpl"],"lastModified":"2026-08-04T12:39:05.110117Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"MtAOVlo2MQnm+fo6dPFXL5xgbcXkN9r1B3rNxckcWa+ThyMuGmWlKbp62umrvGTk0AuGJXll1iHdbw1Wq0bRhR8xzUFUaMKQCjh0TU5W5aAmjqkHZHvIhXKq4QC0A1Xeq2wpPpNohAsQYFg1/I0oM/F5otkRokFJI8QR+YjufmwvuF61tijHMoEkyhOssJTPmZtVWXsqhsuctHGrlseHDruT5/0546mOldyjELuyuxNvjRSh3N8IaObKrEzNFdXlb3d2MDgz2ui8/AKAk0E0CBquJnqMRKPniKFfN8YGsSs3tyhL1KkC5pJZKHNo5EhteWDJ+5RrRn3T8Ts6LDTvuvW+s6e5RWgZb+3tZZ+kTxmXtxJzm139LB1XwEy0a0rMDray/F7NAQCvi/LobiTPQ/M63espBwY9eIRDHMLA671qPXkd2Rwi7Isb4HTcwN/KJ+bjGfw5/6AkllggcpbPquN1Erv9I2d1nTcMbBydPGBxGX0r8pWb2BbCDL2yy+uRiUOMlkJ+5D5k4GSy1skuAkkmpUM9x6QBCZiuLDz7mGKAoLl6wrmc8KF1j9DPESkfAGIwO7n34hp05xkHQlKcEzR0hfYEofnGX0oc2sCybyHouitFtQecsPKprALtZ2yH8KP0Uzdte88miLhp6pkdJoZdluvF9nR8E6mi9D63F+o=","translations":{"en":{"changelog":"### New\n\n- Add support for nc 35\n\n### Fixed\n\n- Update dependencies\n- Update translations from Transifex"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl96YW1tYWQvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Zammad integration","summary":"Integration of Zammad user support/ticketing solution","description":"Zammad integration provides a dashboard widget displaying your important notifications,\n\ta search provider for tickets and notifications for new open tickets."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhF2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkzMDE5WhcNMzEwNTI0MTkzMDE5WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl96YW1tYWQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDPXkN32S4GTr8NJ2AQp3Hcu8nfTk9YeQ9yXzhGCFfFaCkzk/twU5tg\r\nZdWW83/QQjyUvwgaKYki/R9ta1DKN5iAzDYW0aV0q+cK/J4+n0vj0sF4VgUUCsDA\r\nEz2ffOS0JBaMeYRmsMwCjdPMBtzuNJzf3ah1IFVxGM5tQA9kfM7t2QDs88ZR06o/\r\naCD5dJhXVTQ6glfy9RafNJGYRObR4BiSBx3e1hIVgC/sSGoZ648ek7KU2pZC3M+8\r\ndJ3QrynHsi9vSrcmWoNZ/zog0E8rVQJcor8Jkkv3cBAOUa91gY06CYCaNcakJkj6\r\npoQO95MAAMOiczdb/+h2PCDoOSz+K5/ECjaLByPk1iPIsdxXVpevzEmTkTitehhb\r\n2uIyxjwpLZI9x2Ai9u084jHTxv+Lf1YccU6ObMI+Q/nCasoHEBCudRf8GiFXXIuM\r\nkdSr5rA32ZEqF3stmU6NWFV6wvD04p0vJMxerI0kfymrhqtMXyLwrCz2ZGDO3sGw\r\n786wWMolxSA1YxGYPCIXIDwUjjAmnby3NVe+gQu9HH7T58QQQgrPQRDGvVT8CcCm\r\nCLePUzVntzKlaNxGphRjL9A6Dr5gy65QkzXpsrHGqfD5jSBkbD66L3ydQ+dzLzk8\r\nnljFeh9NVGVfr6ExICKfbpq/9La+qyVB+IyWP5WEKtuEr6E29Q04awIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQBlAma2MQNDm263S9qFCshl/waPc8bUkv9uulswK1Vc\r\nqihhE5mqFzdE/gqatDemUXLweWMLk5hGfeI/UvIRAn1bDSApOCVGACeRo/9VKhw8\r\nEvAWQe2wwPLmr9eXTUEXrk+7Hiv1TFQjJUjSyUEWcfes13whbH88CPMfSUnV7tjl\r\nOjEFT3SPtuHWQIZusByNnkwdA1VTV09m6ddFJqUg8onF01P4zASGeS0hhRoK7YGS\r\nfAgfcxmOtpasA52Lfy/fgTqQtbCqZ/1e+UMjoQAcoEFs4niSWEaCEKlSiV+P2Gvx\r\nc1ZFAWMaHMNYvu8qvdGMaKGN5QEvweaLC1XSgbNdyMMX\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"terms_of_service","categories":["files","security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/terms_of_service/issues","website":"https://github.com/nextcloud/terms_of_service/","created":"2018-08-24T19:39:58.469689Z","lastModified":"2026-09-20T13:16:27.802149Z","releases":[{"version":"4.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/terms_of_service/releases/download/v4.8.0/terms_of_service-v4.8.0.tar.gz","created":"2026-09-08T10:25:41.162527Z","licenses":["agpl"],"lastModified":"2026-09-08T10:25:41.209982Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"GrfQgIsgO4ygl9i6jN9BVzfGMIZXHuwJOua/EJmpiboNjEjveZlrA1Ba77ZuJ1AhARm5wbBz41Fyfz6MSt+46jjytUwPkBXnHDs0/7C/n7lVVSJTEWVJAAVqrW8tWBWOBRC9BifoeYLbp2WtUu3JL5TfBrM4XCvNv4tiPgtawyjEg4iLOlnbBZ4/Tnjx+ILqIK2BBULARE4V+MR+SYPZgWe+Z28POgP+z/q9kcELtjPPN6nL4TX6R2CMz+CzBwAPx0ApL3hfQMMZEsiHFiuqzmOu9m6qEtE4EUgqEcJQ8wBYOnEQDzMUsOpmJn8b/4sPaKOn//DIY1mPEcEtuDjwWO43UQBtmYIIvMhzsydW+Bn/L3Hm29usjBWwqZbzWK/8nonAb5WRfn9TytGMNYUYQ/ePv0Z3zZfcL5iLenCEqxkW5tILPW5JZI+L4kl4PChXv28vg3vMMvbwjz6s55aErbpV4b3haoWtSAxStxhOnpUzeP/OHIhLUq6cYu/86nHL1UTFY6iQL/FfTCHt1cWM3z3r/pthEtNvQt72XR7qdsQtdclGa6gIjn7Udv2pc+8zRLdQ13vVA19aiH8h30DaJ5uY4EQYZ8mzVlEoQzoVMl/lYc+dVU+rmbWcX1gup1WCzImn/UjqIe2Z8DhZXk5W3EUF+lH+1CENXTstTW2LxBM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC90ZXJtc19vZl9zZXJ2aWNlL3Jhdy9tYXN0ZXIvZG9jcy9wb3B1cC1kaWFsb2cucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC90ZXJtc19vZl9zZXJ2aWNlL3Jhdy9tYXN0ZXIvZG9jcy9ub3RpZmljYXRpb24tYW5kLXNldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Terms of service","summary":"Requires users to accept the terms of service before accessing data.","description":"Requires users to accept the terms of service before accessing data.\nThis product includes GeoLite2 data created by MaxMind, available from [maxmind.com](http://www.maxmind.com)"}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhCsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwODA5MTQxNDE2WhcNMjgxMTE0MTQxNDE2WjAbMRkwFwYD\r\nVQQDDBB0ZXJtc19vZl9zZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEAuAQ+0fwGskLSRzw789RA83h+9S0JvzUhgqVm9IpWyiS8KHwKN/u52Bg/\r\nxsku4cAV0qu5K/NAUMqciQDnVZRmRorFr1K/XsKzHv8K1sUfZ83xAwgY7pK+gbxg\r\nDoIhadjCeA3n7jLDiV3aObmHPwRlPOh7nFfyC3IgF/KEsxmSW3KRMOip2oiRnEy1\r\nYqhj1np25FhNe601VEy2sXg98VcR+m4LKQJBLnq+0cpxaoxrnjhAx9O02ihcjPjD\r\nQAi+icU6u6gxSg/hlqtuLroOaBD2R89k2LDJ57NTBWhG+LoFSEkz8cyicUNtbGQc\r\nhjCweUSJvLyms+mnUAlzei75dx5rtHsD21Qn3opWwvmYGAa16i+q9vG0+RKKvDCn\r\nS1UjEYvx9G2bry5oYqsHWsYY14Dh6KDkayDty2cdYLYhirqimK2tXbZKcTFNiPH2\r\nXXfnhRRJ9QO4IUnGOnmQWIOLJektblt5+K3xJk64XGsnK2BJKT/fsw/ANqOoQMv7\r\nGeipeDZbNKW6GVEdQ1prJEhaRji+xEmsJ+bvKsUcCAxeAGKlgwTKMuS3IxGIrgW/\r\nogLXIzi9N6vE2WhPwQ2u+nNEmj3+0IeXFcBONTKmLtYw5LkVFbuMXTPgcjdSo3rV\r\npMQaqg7OO1dxz7dYMQSK1UrJMFV1FGxoJEc45qR0z/O6xD8CpbsCAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEANQ8jDBRe3VQOrn6jc9V6j7NNzzFKbZAnym5xfD6NBcP7\r\n3z7lUNekoFjtnNEDdB9JTYdF3Dx1F29AkZsUu+dSB0/EpBvJowGrkDnVLCYnWV1K\r\npLrygUC9dqokD02kg7ztd789l3Llgu7RBe1qZKXHnu15U+/izniuYPQwNprUk5nV\r\n4gCDFIqaVbvfFxMKj+1YojruBYGh4v5zkAALdtEArn1I+LSpm1q7/0lzlXg7c61A\r\nQXH6aoe9PnrbykrwJ3AdskHZCK7IFndleYZkybBKdoUdn8O2n2GAbs/BrtMH4iEr\r\nbN5w8PPmaTYR+l1SYxgOqC95bek1wGwDCStxQsRbtA==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deck_trello","categories":["organization"],"userDocs":"https://github.com/400-Interactive/deck_trello#readme","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/400-Interactive/deck_trello/issues","website":"https://github.com/400-Interactive/deck_trello","created":"2026-10-16T00:11:54.788491Z","lastModified":"2026-10-16T00:15:12.281631Z","releases":[{"version":"1.4.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/400-Interactive/deck_trello/releases/download/v1.4.9/deck_trello.tar.gz","created":"2026-10-16T00:15:12.275418Z","licenses":["agpl"],"lastModified":"2026-10-16T00:15:12.317834Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"X83g2TKMzfh8Dm/isy3KkeweV0uoeEpkwggBiQoexVX1aQJ6ylVVsK09OP0D3Zw8RFGLvRpz/6Tqyxh3pYiPGrmK+Wh8KPVyv2BhgmB/TQJb8u5XAwbc24azngCPtxnrL/xLXj23ClS3N4QdfJ4FmINoqil9H+FAP8jzT2cyf/WT1u+kUG8f/NDglOO42aM/+Q/3Ur5OLUl3M7eXblqLi3bpMOTKW4njNXI/5RZnbMTTuvUcKKYrhxRKyymY/P0/QsNtA8Q4VxRCYWHB0zpN/R9R91Qcx2Mbddm/Wp0hzNHPTNFIJWQga4MMuKAAyH90i/mu7gxTXy1OcMAsK+XleCgrLqFNSmPaIt3hnwLaUXsRt7L+dcv2rFmrneHlnjkHBj9I0OLQAWF2hWSCClcl6qy18wUpA82IMCX2fBMNln69AEcK57b4ZOuz/BU3Ch1Zk0cb5kEnIj91PwasFZkEp0uCQ80C3ga6tjP5AXcKhBfp0OzZvuB1yqFQKwYvvmSXDpaNFHPc9cqs3n8F/jaVVQl0uId9UcautPXzC6lxEyWQpgs0zJn02///UUHHAE67AC3xyOGvqklDX7c5gUgIiXEEgR5fEZ/QET8+RnwVOAo2xdixv46Ixh69oqTj0WNlPgQZOBRxrLXGwjLYG53rPUujEZVicGsQaQmLT9MoN8o=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Deck Trello Import","summary":"Import a Trello board JSON export into Deck","description":"Creates a new Deck board from a Trello JSON export: lists, cards, labels, checklists, comments and members."}},"isFeatured":false,"authors":[{"name":"400 Interactive","mail":"","homepage":"https://400interactive.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhRvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE1MTk1OTI1WhcNMzcwMTIwMTk1OTI1WjAWMRQwEgYD\nVQQDDAtkZWNrX3RyZWxsbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALePW47h6GvR4ee/7fBGTKsF0dhHhHZ1m7PQEb1/wjd+6fr1cg1MIoxvoryCVQyk\n+ITwof1Vmf3AnDiWNgJd3ckQ/VsM4UOIb1y96Ys2ci/6WdfwhC04uCZhQ181fQCa\nhpM1Fg3JFdSltPJK8UGdNIiXUOtyHHzuBoVpS2mzn645ob0ELVWf9p/P0oCMUUnT\nidmxfNzAGwYOdjDq2UGguGiy3r6tEWMExcOWMVlWRDQbYKm0dNRYohztU1b98V9d\n5GrDjV0bmEHd8lzaV9f4fVTnOycBr0pBlI642PMM0uQqK6bA8jC8gL/ZIYU3i2Bg\nggZ8YOBTbyz1DDJf47YL5ykFHUPGg2h65GuQvl2ZEMQ5NOND1L9ZLYTIwtGL2Jeb\nFMau7KcIP+0FZFFsWqdEJC/iZayApK4esr7vfEYegmhJL5EcncGUoXpknHXilbhH\n1lUs41bRzXRjT6ZEVy76A5AOHO6V8HfpOokmIvY9Ek8MTledJ5kDncBUerhvHR0y\no9jSpb5RVoZvlEHG0omhUwRPfGDks6824AtcDjLCQJ5BfrEFMz3g1eDGSMaZxYfw\nz1qMJjnJapIP3M/TIdD9mB8/fuylOemtgBeuL39BBJPCWepnHzB0JZrz8SN2vjcV\n8JkuembufYd1WkVbz7zWlY9ODAYFyTJAWdtnVvOEwAPzAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAEHqEENFapSmDkIO9qw9+uGtHwr/A67sEvc75aWYaIK92nHc9hoe\nid9nT6wbPtCOP8VTNTwBNw9Ie5LG2c8gdkHqQnArlb8GWX3HEXcra0q9L7BgRLMM\nV+UnruuTe6s8+01XCJGds1DM1EkGa2AJz/J+LLh9vJ3aLHTbnBtV4nMdUSY25ekn\nnpAysnHP3JsB5NQSXfrDcWPUONc7CIczsoyZdHW9RaSbGSytcwbkf8raVv4NtSxM\n9UzwcdBv8IvW+vJBDmxgu4aI812X4tq06+FoTWmyqMfUL5U623XuMNKvVRJYY6Q8\nt9GlwcfsSO0AYXvxA0d44fgKNgTJPYv0J6E=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"memories","categories":["multimedia"],"userDocs":"","adminDocs":"https://memories.gallery/install/","developerDocs":"https://github.com/pulsejet/memories#-development-setup","issueTracker":"https://github.com/pulsejet/memories/issues","website":"https://memories.gallery","created":"2022-09-09T00:37:51.887116Z","lastModified":"2026-10-14T18:07:27.654896Z","releases":[{"version":"9.1.0-alpha.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v9.1.0-alpha.2/memories.tar.gz","created":"2026-09-25T10:13:12.896062Z","licenses":["agpl"],"lastModified":"2026-09-25T10:13:12.906050Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"s1wAoQm7AzSrz+IBf5SsgA55gD8BhCqfo9o7nUb3BDwYZUx9YUTZYgV0isSkiYqheQXNjVYbTCniCtf5jAOwIAoclFN5m5Jofo9pclEDb5oh2MkQ/DZ8hv3UMzd0QYa60JfReSnO5DZQ1lkP/zDsMJ9I78Qoh9KX268Y88M1ZZw2cdfXSKc7eJJm9zI0WPrhFZyupbZq8hmTOGoBG1atdWRLTpv4erJ6KatD3OE2QKozYJCbmaGOFLXTFphPxrSs258eLap8s4C9+6jMCZBCOgteXruIYSEhRDoBJMBXKLyCjmL5AOs75FOMT5XsEs5agCjCPjlmnyFSb4yfBUPWyojIPjN5osELgNvbrlgOoQLAHivTdQGFGpXe1wTS1Xph4dApsZj6RSb/neqRY5aNQ8rlRwO1ZiFH4KnXv0c7yeoGgqD7vWNHn7K6fMHg3+mKBw9ZJ4kF0rzSV4uTy5C3iG6cnaFcLMeFmiPGW1DXNrOw8OuXbxlS8hHhwoGmHht7ecko5J/6mZGLafNJ+VJFm+Vzw8K1VwkwIqPipOIqhRJ/rLzmW0wm+B3jkVeYIdLnLGx54B3jVhebqvllZZtza6LDOdRySV3N692+T4grSa9ijODT8uIn3CD9oZXce1U/PA6dvrS35AZ/g70jXHaTDTHXdTZ73M+f4yzkZsuALgo=","translations":{"en":{"changelog":"- **Feature**: Direct play for browser-supported video codecs via codec detection.\n- **Feature**: Support multiple external transcoders with automatic load distribution.\n- **Feature**: Video transcoding now works with external and object storage.\n- **Fix**: Improved efficiency for indexing jobs ([#1315](https://github.com/pulsejet/memories/issues/1315))"}},"signatureDigest":"sha512"},{"version":"9.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v9.0.1/memories.tar.gz","created":"2026-09-16T17:11:28.184590Z","licenses":["agpl"],"lastModified":"2026-09-16T17:11:28.382615Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"BwihSU4q76/LPg6UvgQzQ2EcuAM+4mH1+icANyvKrlOuAKzsIjsapTZ2qIfbX1Rcvsmg5SRD1x+9yBet+YLO9TeME4o/i9pli2Z5gEdRbickoHKxzMB7kNYD8D4j7+n401xYzs7MMnbS/1K3HDl1QqRYJKW95UZ6H9ogjT7wvbAL+u2/k2S5HdPJZLttYRJAH4Ot1gdbyggtU5W1oscF76Go+ye2otcT+y2tJdKszKJqHJ5B1HjhLo6pkP4ZEXEUrFxlJxWPJ/G0IJ2cqaEvo8PYovvysXEGaJgmnl6QN6wF2haZQfYimc0zKNEVGyEb1+5n78J+zSbVmMBEFZAUmHrm2Mo5TEjsa4g8tno2UJ3lIIrks/KtgFM04J978ysRZFvxdB6tLbF6aXHfBBpqPIiylzIpgF+b5Vr1pLItqHoA6KnXDzfFh/StiueJ0FPGP4GeQRJ3StcxAncugsTXua0qxauweb6hR0jpQ6Y41SgeuYq8++bBdikzggEeBBG11GooPEaplO85uZyPdVj/XhJ1GCMkXrNrDDe2tx0X3gRrSiJoS4Ny/UMWTBGLmEXe48XQ04NXsgEzWYH3Y1cPQ3MH5N/iL2CJ6y550FGRTKd1IdgCUxSgPlpVmI28U64ADmF7DbUZt2zuvr5VAFx1bPrq0g1BcwJLwxQw3R3x7ng=","translations":{"en":{"changelog":"- **Notice**: The next version of the Android app will be incomptible with older versions of Memories.\n- **Notice**: Requires Nextcloud 34 or later.\n- **Notice**: go-vod now caches extracted video keyframes in `CACHE_DIR` (`memories.vod.cachedir`). [External transcoder](https://memories.gallery/hw-transcoding/#external-transcoder) setups must mount a persistent volume for it.\n- **Notice**: Updated Planet DB is avilable.\n- **Feature**: Redesigned Viewer UX on mobile\n- **Feature**: Support zooming in on videos ([#1242](https://github.com/pulsejet/memories/issues/1242))\n- **Feature**: Timeline hover previews for videos (storyboards generated by go-vod)\n- **Feature**: Huawei Moving Picture support\n- **Feature**: Configurable location search provider for the metadata editor ([#1500](https://github.com/pulsejet/memories/issues/1500))\n- **Feature**: Geolocation for local photos on Android ([#1723](https://github.com/pulsejet/memories/issues/1723))\n- **Feature**: Upload selected local photos on Android ([#1505](https://github.com/pulsejet/memories/issues/1505), [#1640](https://github.com/pulsejet/memories/issues/1640))\n- **Feature**: Allow selecting map tile server ([#1702](https://github.com/pulsejet/memories/issues/1702), [#1534](https://github.com/pulsejet/memories/issues/1534))\n- **Feature**: Configurable VA-API device path for hardware transcoding ([#1658](https://github.com/pulsejet/memories/issues/1658))\n- **Fix**: Copied files are now immediately indexed\n- **Fix**: Improved and 20x faster planet database setup\n- **Fix**: Fix broken cover images on SQLite\n- **Fix**: Fix broken sidebar integration\n- **Fix**: Password protected link shares ([#1721](https://github.com/pulsejet/memories/pull/1721))\n- **Fix**: Allow self-signed CA on Android ([#1330](https://github.com/pulsejet/memories/pull/1330))\n- **Fix**: Video upload to public shares ([#1634](https://github.com/pulsejet/memories/issues/1634))\n- **Fix**: Google Takeout migration for long file names ([#1559](https://github.com/pulsejet/memories/issues/1559))\n- **Fix**: Face cover when person name matches a username ([#1692](https://github.com/pulsejet/memories/issues/1692))\n- **Fix**: Washed out HDR video transcoding ([#718](https://github.com/pulsejet/memories/issues/718), [#406](https://github.com/pulsejet/memories/issues/406), [#875](https://github.com/pulsejet/memories/issues/875), [#349](https://github.com/pulsejet/memories/issues/349), [#1465](https://github.com/pulsejet/memories/issues/1465))\n- **Dev**: Migrated to Vue 3\n- **Dev**: New extensive unit and e2e test suite"}},"signatureDigest":"sha512"},{"version":"9.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v9.0.0/memories.tar.gz","created":"2026-09-15T23:20:09.444628Z","licenses":["agpl"],"lastModified":"2026-09-15T23:20:09.616039Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"cAK7LQxr+YCD6VXzpG1bbjwSQpS0zxAlpeEfaKr/CSOnO66geRLoItkhpXn9xYJH/vSMfzw7jIlkO77scjJC507uudlVk4EonDBlRGDWTdAE4bltZJ8MUq3nOPHc83oA4A9wpRSZYFRBcSLx5ablLhcjaOrUKRr0EODRyJgQtG2rpgZaqhy51DN6SwZ6vld9dJ3lHjIhGE0iETnHqRGUobgb5Dxln1lveP7b36k2Fs0ySo+j7yqQrDOTFaYzjBAo/wFLe+N2X5nqmebbip5iGzhWxd84x/fBvfxEZQ1fk7qoRH8Thviptyb9HCZqpdqwKXLirkhyTg+B5rjWsvgbdobAPqyYflMEX2ctaL/67eISzmj6LZJWFEZBfIDWdnhwuz+Miwd5JVzYbyoPfvqU3fkhs3pZgdI+r/pkfaOr28VD0JRM8RlgcKMchrVPSpYOQU64+nJkYNM0fxxj+07jzFsh3rw5+IA6x/88IaT/v08ncNbOf5Ba+jHaF+nZkRlvEXKe8KBxxS+1qe0jRGhyMX4miVryJxf94LYmxRt9wUQZ20mctIks/U5GzZYHQlVGVot05gc7GbkPkL2whXmZzgLjCQFHdERWDt6KppNVaua5+qyPysf7uXm5RpoVNajs28jvIRu0XisrRHp6tglvS9h4sO/CMrEDI5UUyR3Ki+4=","translations":{"en":{"changelog":"- **Notice**: The next version of the Android app will be incomptible with older versions of Memories.\n- **Notice**: Requires Nextcloud 34 or later.\n- **Notice**: go-vod now caches extracted video keyframes in `CACHE_DIR` (`memories.vod.cachedir`). [External transcoder](https://memories.gallery/hw-transcoding/#external-transcoder) setups must mount a persistent volume for it.\n- **Notice**: Updated Planet DB is avilable.\n- **Feature**: Redesigned Viewer UX on mobile\n- **Feature**: Support zooming in on videos ([#1242](https://github.com/pulsejet/memories/issues/1242))\n- **Feature**: Timeline hover previews for videos (storyboards generated by go-vod)\n- **Feature**: Huawei Moving Picture support\n- **Feature**: Configurable location search provider for the metadata editor ([#1500](https://github.com/pulsejet/memories/issues/1500))\n- **Feature**: Geolocation for local photos on Android ([#1723](https://github.com/pulsejet/memories/issues/1723))\n- **Feature**: Upload selected local photos on Android ([#1505](https://github.com/pulsejet/memories/issues/1505), [#1640](https://github.com/pulsejet/memories/issues/1640))\n- **Feature**: Allow selecting map tile server ([#1702](https://github.com/pulsejet/memories/issues/1702), [#1534](https://github.com/pulsejet/memories/issues/1534))\n- **Feature**: Configurable VA-API device path for hardware transcoding ([#1658](https://github.com/pulsejet/memories/issues/1658))\n- **Fix**: Copied files are now immediately indexed\n- **Fix**: Improved and 20x faster planet database setup\n- **Fix**: Fix broken cover images on SQLite\n- **Fix**: Fix broken sidebar integration\n- **Fix**: Password protected link shares ([#1721](https://github.com/pulsejet/memories/pull/1721))\n- **Fix**: Allow self-signed CA on Android ([#1330](https://github.com/pulsejet/memories/pull/1330))\n- **Fix**: Video upload to public shares ([#1634](https://github.com/pulsejet/memories/issues/1634))\n- **Fix**: Google Takeout migration for long file names ([#1559](https://github.com/pulsejet/memories/issues/1559))\n- **Fix**: Face cover when person name matches a username ([#1692](https://github.com/pulsejet/memories/issues/1692))\n- **Fix**: Washed out HDR video transcoding ([#718](https://github.com/pulsejet/memories/issues/718), [#406](https://github.com/pulsejet/memories/issues/406), [#875](https://github.com/pulsejet/memories/issues/875), [#349](https://github.com/pulsejet/memories/issues/349), [#1465](https://github.com/pulsejet/memories/issues/1465))\n- **Dev**: Migrated to Vue 3\n- **Dev**: New extensive unit and e2e test suite"}},"signatureDigest":"sha512"},{"version":"10.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v10.1.0/memories.tar.gz","created":"2026-10-14T18:07:27.603897Z","licenses":["agpl"],"lastModified":"2026-10-14T18:07:27.692587Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"N31yP1JNUxUD7qmjKTYK2NDrLl+g++ffNleXFRyY/5f4ogr6UOHmNJREiVla703hEmbQFloeuH9JOzi5xf29vB4VFwgp0KWDbedkUX9cVvCESnuRJ83B5r5HZm2mKJW9GMn7brT/uD6wP/vHecxkKH9bDAQcVm75XTeQLq+zq86hH/rlxtewykPWSWBRtZb0lltCCs2bDL3/FeqHbm/zcEg4QYMBryNDti9+Cpn2EVQw8vMQErcr/4R+0ujhH+ZIXNBN6ft+b8GHO7UEgbBQXpZYQAvq1goQLE2DGPbwm+4AwiP3SLHa55FsRwwGjy4ywcZ5lIzAM7pBm8ZuVa5KpnsAT53VxGZBMUPzSL6OZfy+VfAZaInG6bwI6Woj4Nwuj/lJNaHH31kLoazZamusxqsTWjJtLmbXsSJ4dHEdb5DayJDSQvMOmcsDWzmfE3tq/KfO0MR09D1k+GcGnke7dm8V4X2Q/YNjvF9aOi7UsQqmanYmfbSdXung5n58nxbc+GTlSNkSqEZQZXhA5ML2AHkUTqjhIgezl+trJhxaW29lf/fBPHWwJPkG/GX3OdfESOdBiLqIYNFil8yTk9S473AJdCwWgHiA90oPCkPQj9CFouBPr2uSJRJ7uZ/oQDDldTvM5b1Q3JgEcLZQMspd4VVN1AwcfkkIPKIHd5+5Eic=","translations":{"en":{"changelog":"- **Feature**: Per-user setting to show photo filename on timeline ([#1557](https://github.com/pulsejet/memories/issues/1557))\n- **Feature**: Allow editing Live Photos with a copy ([#456](https://github.com/pulsejet/memories/issues/456))"}},"signatureDigest":"sha512"},{"version":"10.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v10.0.1/memories.tar.gz","created":"2026-10-13T17:53:04.229369Z","licenses":["agpl"],"lastModified":"2026-10-13T17:53:04.322691Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"vf/QDm2BDRppIBnzCS2ZEDGXqaooEFN15w0rlsmGmjq6sWE+eC0txn9jP4o/nNz+o0V2TSoX9tHGwdlrlHdj77I9IvMBa7eLH5lzSDBC6wAQ7bWbqk1uOY2eSws92dueCTF9bFzj9MFDPY3/80ol3fRavx953BSRdAcE9FioT7yMBKBs5pbamJKVP6O8M66ebQwt0N7bui06LHhBGhLJ14Q2+0lKyZjXNl68PJpW5co/KMopZYX7vc/TQlU9Sds+rrpwdQn3vdudqItWl7dJGY3097uI7JK0vnoNBtbYfFXiuKrRLaYElUZVtHkKUMzT4b8csJNDKGUJNSbMtYQEMuWE03tjzSGTe9p72Pw0ENM71znrcVI90vxeSwsdvkQrp5MjkZ/EcMUx0Ku04UJhwKzjdezHn4PRX7bskXFexOT8uCY4fZFOnaVrj3NGhBq4OqK2AkNA16Wl7+Ye8H25ISsGxYb4ev36VobJa+qmcsjKZG7DTCS4AZ3LbARCrFLINJHB/5WngZrwDcRbI38vsMDtZGYwTBYwviYZR2DC24RePpoj6ZsXZUhlJ6LMyTyeeT/OosFs/9cFUPmXWizgycsw3u5nZbb/975kEjxz6WAKcKEy4t+8y+mkmFSWOWoGQvim9/rmlUb4CoqaMnDtynhFzuotw0jxIndimx6o2aM=","translations":{"en":{"changelog":"- Hotfix release"}},"signatureDigest":"sha512"},{"version":"10.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/memories/releases/download/v10.0.0/memories.tar.gz","created":"2026-10-12T16:04:42.645570Z","licenses":["agpl"],"lastModified":"2026-10-12T16:04:42.735728Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"uhmLF2Hw1qTDTZGIU17vMgGlj5iX7E8BtSpUuA++BHYUTlUWyrtyrFKuh5Nr6dIW\nSfXwT58eh6iGTZvalUQNxOa4FA8H3qHLAqU6MmTxTIGQJ9UtYv/B7kNmGV0fE7mF\nfhxxbz4ibzJL2tpaxEb2pRVz+Ty6jMCFWxE2HLS4E6n9tq8EKrd5IfG8ftJ6f/3Q\nuV21rz8mV6eMEQ5upOBAl8BTUNLR1cm27be1cO7vVCMFYI7aIFwNEFDVNxGDfmYy\nQUpfckJZhDWRtthON0QPi4wF4ul9IKeKIJEuid7kR3gpk3ZbccdLz9s3WG3HUbrM\nQ6R8BqzSG3DbBVDPDd+bbKf1r+MjGEzimP2V0SdqfTUfUabbvRzttLU6KPrXScCN\n0sLzYgqY48+Yx8EhrtPVTd/svOfieGR6RhBJZyasBJINlGZ4V7+SZ6V3lwiKRiA/\n06wfL5N3dNhdJfZOv8HUwdXdgX3z3SKsvSB6o8zh7wvr6Lb9TBia2UtbpdEQnTzZ\nw2YT8pjm0i6LZ+D3ocPt7pq70w7GAIfeCGDFzyBKZ/GpT8eWK4jswNi61t2d9VhQ\nHLJiL/aajtoYMnohT3kbTuc8jEsrUND5kApvEq8EK8NSQjuQPFs/cq7Fj4eviM11\np3/3sePjdUwztR0uyGyT3sxcJB+C4BFk6R5XOSeQLgs=","translations":{"en":{"changelog":"- **Notice**: The next version of the Android app will be incomptible with older versions of Memories.\n- **Feature**: Support for PhotoSphere panorama viewing ([#931](https://github.com/pulsejet/memories/issues/931), [#1668](https://github.com/pulsejet/memories/issues/1668), [#1357](https://github.com/pulsejet/memories/pull/1357))\n- **Feature**: Scroll position preservation when navigating in the app.\n- **Feature**: Ability to directly jump to a day on Timeline from a memory.\n- **Feature**: Video transcoding now works with external and object storage.\n  - **Important**: Setups using Docker must add `links` to the `go-vod` container (see [docs](https://memories.gallery/hw-transcoding/#external-transcoder))\n- **Feature**: Direct play for browser-supported video codecs via codec detection.\n- **Feature**: Support multiple external transcoders with automatic load distribution.\n- **Feature**: File downloads are now resumable.\n- **Feature**: Allow admin and user to disable video autoplay ([#1230](https://github.com/pulsejet/memories/issues/1230))\n- **Feature**: Refresh metadata for selected photos ([#1095](https://github.com/pulsejet/memories/issues/1095))\n- **Fix**: Improved efficiency for indexing jobs ([#1315](https://github.com/pulsejet/memories/issues/1315))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3B1bHNlamV0L21lbW9yaWVzL21hc3Rlci9hcHBpbmZvL3NjcmVlbnNob3QuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Memories","summary":"Fast, modern and advanced photo management suite","description":"# Memories: Photo Management for Nextcloud\n\nMemories is a *batteries-included* photo management solution for Nextcloud with advanced features including:\n\n- **📸 Timeline**: Sort photos and videos by date taken, parsed from Exif data.\n- **⏪ Rewind**: Jump to any time in the past instantly and relive your memories.\n- **🤖 AI Tagging**: Group photos by people and objects, powered by [recognize](https://github.com/nextcloud/recognize) and [facerecognition](https://github.com/matiasdelellis/facerecognition).\n- **🖼️ Albums**: Create albums to group photos and videos together. Then share these albums with others.\n- **🫱🏻‍🫲🏻 External Sharing**: Share photos and videos with people outside of your Nextcloud instance.\n- **📱 Mobile Support**: Work from any device, of any shape and size through the web app.\n- **✏️ Edit Metadata**: Edit dates and other metadata on photos quickly and in bulk.\n- **📦 Archive**: Store photos you don't want to see in your timeline in a separate folder.\n- **📹 Video Transcoding**: Transcode videos and use HLS for maximal performance.\n- **🗺️ Map**: View your photos on a map, tagged with accurate reverse geocoding.\n- **📦 Migration**: Migrate easily from Nextcloud Photos and Google Takeout.\n- **⚡️ Performance**: Do all this very fast.\n\n## 🚀 Installation\n\n1. Install the app from the Nextcloud app store (try a demo [here](https://demo.memories.gallery/apps/memories/)).\n1. Perform the recommended [configuration steps](https://memories.gallery/config/).\n1. Run `php occ memories:index` to generate metadata indices for existing photos.\n1. Open the 📷 Memories app in Nextcloud and set the directory containing your photos."}},"isFeatured":true,"authors":[{"name":"Varun Patil","mail":"radialapps@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9705882352941176,"ratingNumRecent":0,"ratingNumOverall":34,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhHgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwOTA4MTUzMTE3WhcNMzIxMjE0MTUzMTE3WjATMREwDwYD\r\nVQQDDAhtZW1vcmllczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMRS\r\nLLPIaxgs17oalIAp8TEJfKtvcGU9tFFCarrMOS8H4I2ObdNMFoNBbNIcZAZ5FgZf\r\nYJ/b0sPtDbjHkUBaZuigkq5ijrqi89fRtdUYwQaujsrxxhnkiMGUaY8ScK/RW42C\r\nXjRR2xwatHUBKDfUlPMW4L5/HCSGcXzgck2xKS5UnZAK48BsXSaPhoKx5HPAUOPF\r\naaP7GDyEetnTI2GmlHCXibfTOdcjvlgiGgieFmHnwse3DtgkXS2vxLTkO0Okve5g\r\n3YZZAqROmCJsh03JdRycJPPojfN7XquNpkINNmWRWBdIA/a3i1R2Qpb+HlYN1Jtt\r\nCbLnJQVkxcR0Ll52gY1Tqp3Adgc7/M5QSAHTURz535i5xMmkt2pYlcEu8O7KO6BX\r\njS+0Ibj1mwGvytL8m55eEBUBWr/9oPDKSxGO8mliFNoxftONStDnriNfF28REc3T\r\nd0TjMuwiwYAGU+0omNV8B/29o6UvxACYz9dg9xurAAgd5SkVJvC2S3pvjIbICZUE\r\nhIuixuUgc7Z/B0ILnTZYYKoCFlNPPOjpF3xEoxjPzJTkEP8uVqBePZnOY0ABbYF+\r\n8L+SKZENr0Qk76jpKhS/yCimS+DiGDOJtFWK+ATsQGuSF8l+chX6HAQ5snG3sQM/\r\nRBn/zbugvx4i5s2RvovswWoPS4+HooFRRRTaaSuNAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAAuLzVI3B9ZFj/oThNF1Rq2Ej3IeQwCMbFWx619KiUDE/6nYAgguNeAR\r\ndA6wiZ6wjUXzNYUVbPB99qgDwkjl+u4+/Uh8ACKKB5LFbQXobXx6fsvZYbtH/dbv\r\nt+KzhTxg+Q3sT8uX+zycUbifOVckgF9dx2vIwokFCByrAzo3d8LSyIB4hdUi6mss\r\nH1iylaLV+ZqeL7kT1ZL3PYGUH65WQLBqB5a+MKl8RyHgB7uvq7f41rl8D39fzx3H\r\nWQ83mFh6KlrIVvwUdMBbLRRtjwU2KOarugaaFjd+oYcQvO89OiezoppYSs23hpqB\r\nVC/Ru58cHksLV2DX1a9p8KYDXMzuTnI=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"admincockpit","categories":["monitoring","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/zomtec2311/admincockpit/issues","website":"https://github.com/zomtec2311/admincockpit","created":"2026-01-09T07:00:17.459105Z","lastModified":"2026-10-09T08:02:22.071544Z","releases":[{"version":"1.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.6/admincockpit_1.4.6.tar.gz","created":"2026-10-09T08:02:22.060438Z","licenses":["agpl"],"lastModified":"2026-10-09T08:02:22.111144Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"b76FcEdD8h9WJ3R2ayLqSNVTKhak7MNC6CRFhNzOi5J7QG9l7uwDrfUvUTdct/LL2dNZ6culOboIuvWB56khmNJTqJTHS2i5rZI7mJ+Z9dYmnJOlWrGI5SQ8Yq3s6zJ+4RcM4JFhsY0L227zE1amPcbOXLXU46vA2J4XJ0vVf98FDDtprTM7ScKMrLK2CZ2DxzJkDiK29seNXU0f0E08FWeqAX8DXkru8EX2krzsj1WHDso5Dcj52x7AfnrCcDsvsle8u1iRLhfHRw85iEGB/OA1I9V75CqmQiSfVvls7MzZZlHjc5HT9xiBUY8e+8aa4WsTLSO+8rZ8ajUV4iCObHv8aHzpSuOxs574LBXoTNcLUkiiMRLjozL0krwDU2XWp5/TgRe4ARsjO95zXWNejlwzCiq4xwhjJVku+mCKVvYhfAPCgYZs+umOHwEFYCRmJaQ7HkjMIJ2xQ6q+LU8WLVS9Dr/ab1e4ft9a7/PzNR5p3bdL1uLLju+Q5LSimJUtIXM/qyTjiOM3j4K/7dT/YXxoYyZgAr5DqJO+oigJp8h8rXBnK9qEMIMAONNdXmJ4wKjYnCYiutWbwnOf87y09JaXV8A95W5WbOSv5SZwmeLg3zlR/QX4mUnRVZC99/fur3IbxJ6hStNv7xamduXTHAviluC1o8UrIH3IrcK0pSQ=","translations":{"en":{"changelog":"### Fixed\n- **l10n:** Language files for nl updated ([#32](https://github.com/zomtec2311/admincockpit/pull/32)) @sulzlep"}},"signatureDigest":"sha512"},{"version":"1.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.5/admincockpit_1.4.5.tar.gz","created":"2026-09-14T18:14:22.986300Z","licenses":["agpl"],"lastModified":"2026-09-14T18:14:23.044611Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Lu/veKOvilnKa1fV/ncAbH1bundnUrvyZSis2V6/K5UOcgd2LIZVbRLzQGU5fsidlYNHnuG0jmLcGB0IKaDB3FnLQidLZcUjjrW+SqlLRWAWw3oJROb15D8Hl3/5oFAKu4gFrRhjvK1/DQDAfg6FAsxTbOkyI5dAjeKlvd7WhB2VrRrLrJmY0mhKiDL1UfF3/0+WvQvgBqMIG1JR3yvCpw2AB1B7eVmGriy0ieVYXnCGh16rxE3r+Pye5qCggKYP1jrM3AjXKyIV6UcZBeV02Tm9E6/Z1qX6G+uBns0TShlqKXjgnBPMptQbY4INCaDEFRv/62gZVYgfq73Gz5Bb6LpmOqEvWJvqsFfwIANlSASqPyjNjCJpGr0+R3/AQbmo/C7vYJv2YwotwU77FkVKqsSymoo0amYEU3dFeQLlgfVsTfQxtECGTddyMhHi7rZGgycdjTi26QP047s9Fw3eZOsHeQHIz87uXmTQw/0TIj9J4GzxI2U1H82bOoXHHVKT8nEJU4z+JH9RKB9zIf0O5o8KMRFF9VFFbNqqqZ2CcZcuAJ6hHpvKo15zRy4QViuL4Xab+y8BUW312WQeONruMKmBn0R8T9JP9isqsmYA0/y12QNt+ePm1P2M1lV8MOxt5Bs6Me6YD3e0PET0PQBRDB45PbO3xID/qBtVSFErIGY=","translations":{"en":{"changelog":"### Fixed\n- Fix Polish placeholders in pl.json/pl.js ([#30](https://github.com/zomtec2311/admincockpit/pull/30)) @jacekskorupka-bot\n- some code cleanup\n\n### Added\n- additional settings\n\n### Changed\n- **l10n:** Language files extended by additional phrases"}},"signatureDigest":"sha512"},{"version":"1.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.4/admincockpit_1.4.4.tar.gz","created":"2026-09-05T16:28:28.439506Z","licenses":["agpl"],"lastModified":"2026-09-05T16:28:28.518961Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"IWee0SfoxGMZL+90ATmsLNrAGxh5ORNptBITc13MQI7LnIde3/YE1RUywzHI5HdHgz/Ujs3ekhLilBAwz/OUZXXIHCAV5HJJf/m24//a/2PmWb8cqRcCFrW4JnmUy8EXLjvzRFV71BQsiTKE0NDBtEZr+iJxPrfJwuFIOXf6mItsQJYWNvDJ/+O+yhjsfDia+0qvjwyRMMbuxhcl7NLmQTcRoD0tsMkIcqo9FFacz9Gox2exxKmtePGiFyHBneeQXPAK1jNzY0C6zoBqEqmc1TBJzYONcjdROkMEQRLZoozlab6BHDEyLJJLr+MZHREl26w0toPFLvTfei6uJyxnvWUDpD7CJ4F2x+snYDL+KLGecZLu5javYbCAiwxo5vWctPOqTGLxlRflZFK/n436/kpzrn59coOoAuN6bEPu2BVnAcdXdAkLM+jOLhhCtHi0OfKd9t6qJKceSif/nvHXM+H2RMcxJhMxL2QHScLAsX5Z4v+4v/MjY3ldPnhlzVjdCauhcJxrMRchcuLRfjBAhAchEiftp3mRLsAOqc7FQJoIPgck8wlGHQ2MjYL9y63avHfQ2St1VcifM+0SvTSwoirGV6q4yDaGscQpAdJwX+WP/1VTRdbNbYposrDib3OAGIWPC+3jAiZRYrWIxxDfa8mBGMuWu+htIW7WaABStRg=","translations":{"en":{"changelog":"### Fixed\n- Edit User: check if displayname already exists\n\n### Changed\n- AdminCockpit settings pushed from the bottom to the top for better overview\n- AdminCockpit settings changed from NcAppNavigationSettings to modal\n- Personal and administration settings from navigation foldable and unfoldable\n- Group navigation items: displayname, number of users and actions were rearranged for clarity\n\n### Added\n- new settings\n- l10n: language files supplemented with new phrases"}},"signatureDigest":"sha512"},{"version":"1.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.3/admincockpit_1.4.3.tar.gz","created":"2026-09-02T16:50:52.924861Z","licenses":["agpl"],"lastModified":"2026-09-02T16:50:53.032280Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"gXoQNPWCxVjdQB5mIJojKmR8wYI8/zeiHnjL2NBAKVC71f0nJoTblIM6JATPsj/rrq7EBfdfqiVxI6n/lhQ+dVD/XsMu6NPmb3+9wV8k6JDDB9mxZx5HAQEAWKseQajgS0+lponsCyqiEHC2sZtWPevNdxypr5muJfahpKd3I0xv4J25SsjWiCoAZrwQthm5ZlZ7TLjHSN8dChHyqYSaDR3q/8KdZ5Tx/851K9xureIBbgz7uCEe7zMKXFTTQ0Jl1W9312yNmNsVebGc4Yq8//ziHPm7gg0NPvI4TUwlhyZqXsxNkwZsdNjm1J4otMmWaZgBIJ4j+Zde+zYXZ0RkdrHxxwd0J+t0cmmQOabwDqjCn0ruPinhfXAoBtcoPdEWYTqyq044eDGDCUSYtHQLJVGw0K+zJeEwOHFbLj1l7gMUSbTXt3SmCdCrPy+bhse2/cP1UMtWKvIwcncbIdld4+jaCMUqtmz7e+vV9HaRPSVllcnjOHAfwbkB69iKc/4fj95OgtaW+uvCyee+IuC1C099BL8x1LBS+cws1TANimTDiI7cp1Ji0OVChOGqwkmNSPHE6uB/3tA3T60WOb87kdinJ/4ixlwcPUgylpvfQI2qrkFqHf/Swg9XS54yspLMTTgvYlbW5swWGNHXN/38Hxixn8+Qnt0MJu+oeathpco=","translations":{"en":{"changelog":"### Changed\n- Icons for status display enabled/deactivated\n- View of pagination\n\n### Added\n- New user: Check whether the desired display name already exists\n- User editing: Check whether the desired display name already exists\n- Added first App parameter. This parameter allows you to set how many users should be displayed per side view.\n- l10n: language files supplemented with new phrases"}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.2/admincockpit_1.4.2.tar.gz","created":"2026-09-01T16:06:23.944992Z","licenses":["agpl"],"lastModified":"2026-09-01T16:06:24.311708Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"A4WTEzImYs5Gimi/Q46E3EALIbH99RvirF9BKYMD6uxdzKxsl9k4zXgn8uUtywpUzv/XInolWlhoOQ7LqOXXsM2A96RJDuObg3rpSAtltBoAVzFeWsMYp/Onda68+ClUH170fMxEJD9NSSAFYoyBy/K72QpNoRhPqouFBd4HGa34EMrA6XegjH59GAPrpCygHWhfiCLVYdfOZcIe+nptQgT5ufoVz6Qnodk6W5gU3AAFmMK2+tAJvkb6KS30F9EW6RDiTAqCjk1OONwTQDnqDzCgt+Osl/dVBKf3MoDfCW8CsNDWIO/2PVnuJSyb8/05ZIAzH1JnwyuqKaDy4QvzP3bOI0lH5HLP2eOi4nNEocnOsaSD5yuKfUz0OwAiWhawMiVhp5gwSij0+r4v3uaK3DPzHfqHbCwKJUDpseFyJRAasGcuPOLyQQ9WEmxmOx/nqT25lpHbco/EnNYpNdfu58TNcymOIWt2bZHkSSvERTRMzqebzX0E6m3T8HIxmMAd8lszg8RXNo9gnnWJVm39ANAVpN8t/PyvEyncW6m40NZHwqssH7/K6JHQVXPiRUqn2PGoe36ghXmcFsEKL5i95Tx6PCiW04Yl3uTKj96a4rhrhU3ekwOVEdIJJlstXA5IXPVjjBJcE4B3PPv8ppnVZ+wgQuEbYlpBYgtD6hex6yE=","translations":{"en":{"changelog":"### Changed\n- Replaced icons for actions with NcActions\n- Method for page viewing of individual user groups has changed\n- User Account Editing: A field has been replaced by NcSelect with NcSelectUsers\n- Faster access to changed user and account data\n\n### Added\n- New feature to search for users\n- filter by activated/deactivated user\n- activate / deactivate user\n- pagination\n- l10n: language files supplemented with new phrases"}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.1/admincockpit_1.4.1.tar.gz","created":"2026-08-28T09:12:17.457774Z","licenses":["agpl"],"lastModified":"2026-08-28T09:12:17.571914Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"egjrhICM4ZyWgHHJgsoFbcqs/VpEP/NPnBiuFIGQTCvU0JhgAbDMr6jNjbPCy6GyUFeJKdm28m3iaA4Y7IPOEn0vvNSIbTQt7trWN4LU8hOFuZq75A1Yljm+W9B+PTziVdXDGyefvcCiwZzjCYjxhyPesEwOo7/FBiPju9JTg3vSygyilg6QUDkxO56kdqbxdoMJDsy2MijMAhFIVbOP3rMvxw/cc1/szwXfxzFQdVObir8Tw5moonoe3jKSh+/PRtC08FjC6e5vMG/aqlH0LqDz+cc3LLNz5tCtMRQBZ0lHkauBQ1RQ62/1RygFoYcpApEaLX7jM6R/ssV5SXXIrCyYNcjsgvh157UzbNZq+TrCVPxT6IwTRs4fD6ZYi00Ws4eW8CZ8CpvRpb48GswwiXN4EVHojiDLtFwSy2u0CBBcD5aJerZjq3jVd5/eWCodb4pIfcDKGTEJceA1yjJIUPYcJrQzoF+FT4Nncjl3M1x4jRq5bpz7QBoPlI82ZU7hRrAsm7JJmQgAOhdk9SuRH+oxQSHwThXYBsjlRRlPpZAyCru5ebAWdz71MlTFW0nUXLb4+8hcD5fUnVAmLvqQFXQWS2h0QxL4GnVukGAJHUXGkl6y/RciyIJKVgq+oHsmZ8a25hNMa4JzGorIWnNTXhppi+TLuJww3BzXzdrp2fg=","translations":{"en":{"changelog":"### Changed\n- displaying display names for users instead of user ids\n- displaying display names for groups instead of group ids within NcSelect\n\n### Fixed\n- Bug fixed select field for manager-ids\n- in the selection of manager, the own account no longer appears and a mutual link is no longer possible\n- selection of administrated groups fixed\n\n### Added\n- l10n: language files supplemented with new phrases"}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.4.0/admincockpit_1.4.0.tar.gz","created":"2026-08-27T11:42:50.755133Z","licenses":["agpl"],"lastModified":"2026-08-27T11:42:50.833296Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"U8uSqCGaryZyN+FWYn6itiJNS96jhCcyfNGyBMSeabFb3x0w+8MxOYHRL6DhzXW2lOcTE1wwB3sUTVobgqd/IoDeeFZapEy8r9o4EpJF3h3Dda6gnjp/0dJAsheHd81GVmBXORRIzhneIigOPU7cPO1u5KjGuFneWKa+i5KUcgZlm+DY706tu3cCFpH9s+yB0/dH0QZohtrx2Qyi+IJLp29zLF8smV+DRU8hVNVkqAb6ObS5z3e7SNCg+8KfGimm7WRGl8oOdYTvovHArzy4su2QSI5h0XPqAgGJrb/MRExB+g3V1VlVrGVaiDC+jBvuXJEs6iMjSAfE1l6jkCIMEiZZU3PGbxgBiVy0MGv0+O3CVjhSZZvig6++stMiMTgBLh0DF4uZ9G4DoSRz8y9okrru2ZovdvMz3qFvjvPVi5odV0dYZ8Zu+uIzCokAzJe5+q3jqwk3COKC14Z5OJ7I6fZFn0A1E68TjT8ynD4+gykuKMLCfw8G0Ru/+XFRQ8usnmKQxWpOZ1brfMsIx8BIFwjq3IL240QzQ8LZd2KVlZB7C/DO2SLUADA/ymRBWg3JCT4v26Q2xgt+4Wn97MYRYcc236XmDF3pA/NmooV11Xq7rqV1xtwWcoT6vnyU2384eJs/QvOvSNrChizGd0Mo/8SGTdqLttGjQAeSNTqskyg=","translations":{"en":{"changelog":"### Changed\n- displaying display names for groups instead of group ids ([#24](https://github.com/zomtec2311/admincockpit/issues/24)) @XandXor81\n\n### Added\n- new feature: renaming groups possible"}},"signatureDigest":"sha512"},{"version":"1.3.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.3.9/admincockpit_1.3.9.tar.gz","created":"2026-08-26T15:58:05.609113Z","licenses":["agpl"],"lastModified":"2026-08-26T15:58:05.655463Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"O6YMXPK0favU3f9Kh097lBcP0mTHuzjdu0c5SvCwpM6+dfHjtEKkE3+ccCGJRjUbyd/ReaFd8GK9GCfVnab6lz2cYdOm9X7NEcAyogsS3C4tPRQSrwPm7N7hoWfbg8Ku3kbyu4JUPDGrgvRz2gA7+uAmb39Ft5K9VR5MsLJoVpQmdOTzPh2E3pFkE21+h+HdJwWZcXu6Th1T3ayIjAHNdT4bbQM60g7diTu27iLHXXGiP7y1aNpuIUXDUH5SP2Bx9l+xAgeUDQI3/Z6jFl115/8XUrzngvgD3wNU+TLIZqT0ItiDc9hU8iq7iRqQwrJhnp/9wGeyVk/YMES9sAFalmOp3yoIS81mKYgDs6zYnGjBp54jwGYlUf9ma7oYmFAgDcnH/2P9zZ5U3IgajIi5Oc6qTu5srTFq4SyZTLQW4dzR/DWoRYbauANZrzNKznl8q8OLWHRXEkC+q+wD5wKaztU3ez5YWvBurF//ZvM8obvtWKf6Ww9X2MbrcGMD5ZelWjmF92Llbt9cuNdtWQd+g760aP49Lzi0EuvV/TDlC3db2nOxaEKSMmTqL8xJWNCglnvKy128/SXFW11uuFcWdBslAniZROpK97045heY+bgkTJkOBAY+jHnvVzuVVjrrLcHsYiolnetNF8OlkSByO7jnZEznmHG1r4VUyPcZJYs=","translations":{"en":{"changelog":"### Changed\n- Replaced NavigationManager registration with XML navigation due routing problems"}},"signatureDigest":"sha512"},{"version":"1.3.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.3.8/admincockpit_1.3.8.tar.gz","created":"2026-08-26T12:10:14.650971Z","licenses":["agpl"],"lastModified":"2026-08-26T12:10:14.712443Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"T66mkfeX6GZsfczP5byFyU6nuH0ZAYQkMZH0fuvR0qXOpAc0eHMTTqW4xmUHPiILb3axYrWKmWvuk5Rj63gixYgMRET7hrOBvhaPoo18+rVUcnTlJStVXET7iu6jbtJbIQZ0GQCPbuWeOP53Tid9P87bN2QzmCCthvdke0DvB/X7hMyYerfpkhE/gbwGksmhZX52Mg7JiKXDooGbzZPtuUko6KlCYjiEWTctLZFnnmxmObjSWAGrrzBkyKeQG+GKx0ZNFkB6307iLO87MlmUW3cOfOmmsy8Izy6fiTl7AAPBaR+pQz08KMYbrUOKqT5ca4zb4JzzpF2W+0/3kaXGqLRblLIgyGP6Nz6O2/Sx0Msa+cFOj58VIAmlt3qn3t4w7w6PatPNc/XsKTWYypRWLoVFvKA0qrPdaN49aTszFMWfi3RC4qVzqRKNYm3kIjUmWb3YWhxc83WOcpnpaPK6mkr+5O4qel9cC/XcERovvImqYxhQj92CymjJ3Ozwj0cR7JiaQm5r5gWwxViopxtkU7FfWypWLdV0NvfNgDEmY3Eux/6bgVpf6mIt+I57Fg68VnqAjBaQvt7ptfVLtH8tsqQudGrLPfUXzt6XAg6gK2qHKsgQIjfvQfY2XnCWdkZLF1XFhE9n384yx+0xBsfjs8UDJo/+ZiVMLw5rdx8k0lE=","translations":{"en":{"changelog":"### Changed\n- Replaced XML navigation with NavigationManager registration"}},"signatureDigest":"sha512"},{"version":"1.3.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.3.7/admincockpit_1.3.7.tar.gz","created":"2026-08-22T13:45:05.689252Z","licenses":["agpl"],"lastModified":"2026-08-22T13:45:05.790256Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"awxfs2jRYCZO2YghWEBd3F4ShDj0UZHc8GoYLN9ShDwUvnYU6Fu0oTwAr0MSHlABi6tp4teX7dqq0erYDNQGLHiO4XVMU+gifd3usF0q1YK3hDH7DVkUC3+z8QP7Zly5JSMErcuP1ESoQg4qWQe336zxga6NtHnbC2slmze+oxitKpFVEU5zhgZa6D6/YXG42UWncpzja4ULB/6tmQtR8Vd4cNXYwaD9qN+7INtM+OIzll7mkEy/ueBe+Foqc+eOz/3+W3e8GZUjFa9b7IimdDKC9X5McHlKSEJQRT9XFpu+yJwMMEN2WPTBLTSKxaiqgGZYMQVyHDBXOdwTu4DsRL/cbfSFPRh1a/xkioKuR2XAPcOo/amJtOi6G2Sw+daDl4CZeRHmiGgSrJnR1u1Eq1mAcQ2SgotU3H9oGJeJWOjU+mzFJ3kBkyLA0zdzX0HlVYy163+sqobxz1EwY3GeAS9xH9YIQLVd/R4+Yjg//hhFiAlLF+BiNr744fOjuvVk+vsUPELfjfPn/f33Vy8WTJv5LlnPPdr3qN4fRoQkrX9wMuQgxJmu2M1vugiW4/xvmiY/WqoYp5Nj2azmIbk1sp1cARFijYg5UdilSA7B23wjfXLffjGADdSJCvlf1NHLWtM6jmV1WBG+wLPwClmwTvDkWdeRLEUxd3lHYdl3hlo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.3.6/admincockpit_1.3.6.tar.gz","created":"2026-08-21T08:01:17.491275Z","licenses":["agpl"],"lastModified":"2026-08-21T08:01:17.556743Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"Sd5xyTRgNSM7C9LF5Fx7ckQLX57AsPodXTbab7QKG7H2LeMAt5yGbalzPWL+zzabxVRgIK8ymmALUxhBF4hp6F5zXm0CcLdGKaN2O9H11x21T1JC22UmLXXWEVnora4AOh+Z1+dUCNQohJbTjTlW6GVHl0LFbw35qn1s5a/6o1BUYgiqyMlZEqWto8LmSvPQXtNPMqGIkmyv+5q14JBVqPEDtU+2mwNpUYgyZt3OQr/Utc8IyVtd5uCMn9nSxphy3+nYrrevtWWh+NvLvodGFKnRiPcrRpUVPPixH3xzdsmi49AOtr166vOzBAlNOFWcpS01IcgXvHXsqYZRcjI0+wxQfIl0aZeObPLcQFitzAHOSNoHCqvDuC/LOvuVmNbk3TJJC1euuJI9RqdX1MQbzycrUdN1UVRVfAqY6h0TnPjJll9Ola1rxRdNTSYFR9MxdQV65XntgOMwSXnLrUqjQew09IVRcmORhgZHN3W/4ZgdUBwQsu87SGNY552b6gqO4UepBRlF6rW2bRJvn87sYtRTV5w7imBufLJ5Ygip16AKHfNEtLHI3IRfcNiatXNAXm4m8wABIfK5AEKgX4f6raaQzBL1FhdpZdeMg4KTlSem/d0glajLgtwRCum4jL5+sEOx135SQtEaiHFDrurSz+LY99eb9dQSSRZzPQ+O7Ao=","translations":{"en":{"changelog":"### Fixed\n- css conflict in Nextcloud 35"}},"signatureDigest":"sha512"},{"version":"1.3.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/admincockpit/releases/download/1.3.5/admincockpit-1.3.5.tar.gz","created":"2026-08-16T16:35:47.240300Z","licenses":["agpl"],"lastModified":"2026-08-16T16:35:47.310729Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"IjRYtCNRd07+StuEgbQx5nS1h8TEciCID/+rhPdyKuEp2QxyANNjJ2lGw6rym6bF\noZ6/3JhoTKt/wsVWCuM+MYWN3TiAFVsN9iQSBxbgXzZDn32U12ySBnYMefjkkO3+\nbPhWE0D/462xFR2TUKNgSg3n2Iyx3b4YfpADuJ8pttL5/VtE//A3NmaF9fFd+6sg\n6dnSDaKGPfUi6GqXjMZkqea6cfaOzzoGrGf1SVLxJJhSjZypk1h3jDeo5IwGeKl5\nPub9pPmCrWbi3ENeLbBNjsTnghnqfkKQAcb0YHXK1FZXX7qBUQwTDAQwW4BaVvLg\nbfyw4MXwWpifWCAb3OMhHhf4PLZH60EyvV39nMfOl5xA/lD6p1UhylU3WSsPj4YB\nrqLkGFPs9Ph0ac9I2dy0FhuQ9PL4qLXJUhRRrHp1tB4wNZOceKqQNzoNMWFEKLn7\nOHhcfnUVl1+7WJ21D+q+UfaUShPZ7AOPuo8L6j/CjNbLG0Yq+0PPPD2jmnbATLA8\n6wb6A4OMPPcbtSBB+0SO92+uF5o8lHcCovqBx123m4g6VIulNF43J/skzLiUqySv\nveqFyhTJP30XaaVXZ6+ykZLEHQzA2DqPtMvH9QlGJ9sn7SnoZw1a9kgd62+/Gw5g\n6FCoAeRARgR68Cvec/93XSCdNOBbh6K8H3Fp+jHFcm4=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvYWRtaW5jb2NrcGl0L3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9hZG1pbmNvY2twaXQtc3lzdGVtLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/admincockpit/refs/heads/main/screenshots/admincockpit-system-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvYWRtaW5jb2NrcGl0L3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9hZG1pbmNvY2twaXQtYXBwcy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/admincockpit/refs/heads/main/screenshots/admincockpit-apps-small.png"}],"videos":[],"translations":{"en":{"name":"Admin Cockpit","summary":"AdminCockpit is an administration tool for Nextcloud","description":"**AdminCockpit is an administration tool for Nextcloud**\n- ✅ All important administration pages at a glance\n- ✅ No more clicking back and forth in the menus\n- ✅ Modern and compact look\n- ✅ Intuitive operation without a page-long manual\n- ✅ send notification to users and groups"},"de":{"name":"Admin Cockpit","summary":"AdminCockpit is an administration tool for Nextcloud","description":"**AdminCockpit ist ein Administrationswerkzeug für Nextcloud**\n\n- ✅ Alle wichtigen Administrationsseiten auf einen Blick\n- ✅ Kein mühsames Hin- und Herklicken mehr in den Menüs\n- ✅ Modernes und kompaktes Erscheinungsbild\n- ✅ Intuitive Bedienung ohne seitenlanges Handbuch\n- ✅ Benachrichtigungen an Benutzer und Gruppen senden"}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/admincockpit"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhLhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMTA2MDgyMTU5WhcNMzYwNDEzMDgyMTU5WjAXMRUwEwYD\nVQQDDAxhZG1pbmNvY2twaXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCH4OswgPAGtUpQFo+abFPLylHa95cz30gBQTHL0j+04gygDExBOeSbEkCs5qvs\n5wtmrvvphLqflely8QZ0DQFsKXHLDn/rksMOEQ5/na7pGgHmhliGhL3pRRwXlYcG\nxMtE/texNFGOhiPa562zPUmmlEtYe0Lx/Ad+PqcBhn0vVVCLHvZETzw6M2fbSr/F\n5iLu/GgxVMEvIpQUERlorq5MHSneuaGW3RhZWRILqkzjfoCOIjj3Wq92gYz5eVls\nctnalgDRmzNgpQjH/ThNhAWqedqomttexC/Gki1pHVGvyyEMPOGeLPCo0HLPz02U\nv8tT8b0ZlhjB2JtdDAyOrNKDOeo+tDrp75hjBzlb9lx/mwUeR8CWKC/V3hMhY+3n\ntMBbX0PTdcFSG7GscdrZEjio8rvQNIbRcCEjwOUfzYDmIgN1aHVG7nSZLneCW5vD\njL0kZxfs0tP0UoSDpBofXA1IRCaUxZqqONmHG6W8bfgsb/n1VUMI+FBgUMaAY9p5\nkgHWKAr85roemPkC+bSOnqfOHiGVN1zFo/EwR+RYeAOPxw2yNBYQCPB+L7r2HvNH\nw/XDrUkkjYq8fwUn+++h+9/Srh4F5jxr4g5HAjQ3iRxAmXyzJHUZK2HIch3Q7kDW\nu9zl7t+UBD6vR2bm1bWaDjvA29xvhn90/Pqc0XCl43pVlQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBxLsCqmlKy2eQnerwqiHCBBeYkTsnUW73eXi8V+t71M/G/xhGc\nBoePD1FMaUABchC+rXAHUC3ma7rTcxYCnwlUZvu/CsT4WvvsOK/VqkmNRKhEsVA4\n1E9N6CZ7zStNG2LLSmVA9YzqX+OHc0n0AvkDjS3JiqdZ5hh3BWqrJUItBzoiWFQD\n2qWa1kuK/EoR0cIrauB6UiP57ODqL6WJ1faMl1EjNOrk7E4Kx36hEwtwoqBg0h5V\n6Y4Yt9OM/AJrdANgaPcH/s9pYAoyqfd8EsccguRSJPu7f7/d2T0peBnTbjYS0mxb\nDbN6PcAtgQJwpeI7dJ4Qt3kUp2mdi5jMTfhz\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sentry","categories":["integration","tools"],"userDocs":"","adminDocs":"https://github.com/ChristophWurst/nextcloud_sentry/blob/master/doc/admin.md","developerDocs":"","issueTracker":"https://github.com/ChristophWurst/nextcloud_sentry/issues","website":"https://github.com/ChristophWurst/nextcloud_sentry","created":"2017-11-26T15:22:46.048234Z","lastModified":"2026-08-26T09:22:24.085343Z","releases":[{"version":"8.20.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/ChristophWurst/nextcloud_sentry/releases/download/v8.20.0/sentry-v8.20.0.tar.gz","created":"2026-08-26T09:22:24.068419Z","licenses":["agpl"],"lastModified":"2026-08-26T09:22:24.119500Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"F97c2PMG52kwsN1uCnYzuskS5RyH0t7q0QgdCBKbhN2USMQGkpLDJeG7WKKkxEIel/6vzIWxZcyIzuShIewhLBgU7HBj55BXQ4/q+xeKJegPBMxAP7dda+oFqcHMLes96yigYhisfRqoeKTBjxq+2UcswzSUWfDwbhfHU3Al2S3K+Q+EFYIhMB5uvDZFNIbiqXgJQ6lAmU79QDVs8ZD3PpNjkqdApESve/RoIqcI5Z0U42zXN9+SLU5QbT2GUrsnPNCviPOyI4NX5jQjUd3i7m40q1Cle3ILYxbSDsd7o8ON74eSL45MR8hPRudfN8SmVqTWIIvB1Vdqd2HRvGyDSA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.19.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ChristophWurst/nextcloud_sentry/releases/download/v8.19.1/sentry-v8.19.1.tar.gz","created":"2026-08-11T09:29:55.122039Z","licenses":["agpl"],"lastModified":"2026-08-11T09:29:55.190336Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Fq6fZja22SaZ2yT6iM7T95NWV2/Os47p+b0TrWZHuFw/KpEnzGeDt6Nu46EL3m4JDDqi9wYYnybOuWWQl8jEtRd48G8Uj6lQ07JNVHxQPcMvKAClpPqruXSG/B+jD9/gmZorZAuU6eMz2G8+2aqYq6XYeJ8B7GHWAzw6A0XiTF/U1Gq1QXRnyud8y3HGeKbdenlF8cPPgZnut6Xrvs9qgg1ySufO9alC8L8DPxTiqEo8Z8BVEpOnR/O8p4qcsGidBI56XCFacR96PX63IyuX8cOgDV7LJH1PTwK0OtgUELsVToXIPcd8QbyPYmMNN3H/iMS0Dgx6LPqTtZef7hfveg==","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** bump guzzlehttp/psr7 to 2.13.0 to fix class collision with server ([cf1f82d](https://github.com/ChristophWurst/nextcloud_sentry/commit/cf1f82d3abb2ac2b18be6a59f1c4563446b82f90)), closes [#830](https://github.com/ChristophWurst/nextcloud_sentry/issues/830)\n\n\n\n# [8.19.0](https://github.com/ChristophWurst/nextcloud_sentry/compare/v8.18.6...v8.19.0) (2026-08-10)\n\n\n### Features\n\n* **deps:** add Nextcloud 35 support ([827eee4](https://github.com/ChristophWurst/nextcloud_sentry/commit/827eee404b458c5b7f219eb414c02f2bb025ec48))"}},"signatureDigest":"sha512"},{"version":"8.19.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ChristophWurst/nextcloud_sentry/releases/download/v8.19.0/sentry-v8.19.0.tar.gz","created":"2026-08-10T15:02:25.870979Z","licenses":["agpl"],"lastModified":"2026-08-10T15:02:25.951671Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"cDbOJPuyNmWhgjrth/uTjDaIj0NR/LKcoodA0jGGa+Ail1STStw21Hv+12E+GVdcQHnAf8Kp6qo+jL8e8lHCwzRi8i5bdsdu3T/nim2PqbB2bRRivhTZhwUvIsholjtfV1ebQ/9amslmFopihDZ3/vH76+hOWl8VFQN05gEwGIQdrNFrYwtKewaAyAXGOR8/Ml/ZHgEP/3VCtFNh5OKIlFksTfL04t7Cjc8pJdQkQ3KYZ8OPUy6kHcsyI3iE8v9Nh0JdF1tgtzvRfRFegcEVAphlqAD7Ya4LjmessX87g/WRPaXjrIWWKO+EYUloqkn73uXa2Qwcb90G8g5+nZErCg==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Sentry","summary":"Sentry client","description":"A Sentry integration that sends unhandled exceptions to a Sentry instance to aggregate application crashes. You either have to set up your own Sentry instance or use your sentry.io account. See the admin documentation for how to configure this app."}},"isFeatured":false,"authors":[{"name":"Christoph Wurst","mail":"","homepage":""},{"name":"Morris Jobke","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDATCCAekCAhB8MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcxMTIzMTcwMTE5WhcNMjgwMjI5MTcwMTE5WjARMQ8wDQYD\nVQQDDAZzZW50cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDAWBw+\nGVatFjLmrcPUmOk7B3v1FxTkZAp44F9kRS+uMkcMeu3wCRnz55Z8WxrbQaHuncmq\n+vWZ2vMD6CWxux/bEGzu/z1wUfnkRXEVpiEfm+hHa7DgK7/6XrVNiajgcNl6moMu\nwS7uL8m4gz+4CDZStuf7OQA3l8cL5l13COJZ7oHPCvMZnc0ICiYQyxXqEPnFCqmR\n9uEPBFnXzYxnx6fKTYVqMiQKfOJbObHkevReQqwHdRTrdmMj4O2yQCdl75jDVGdK\nTGTfHJdSHavVEvNF0C41tWX98+6zOeqRnLhlaBhSgQ+MLmao2/uJriLOhMQdAtRV\naARyAws31sExz7DJAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFxO89m/8lNMK7zC\nwfmSbZjJywo3ZRp6Gzt1NCL9HzjndQrklat3rkJMMjpNTalWQy2BtAzrv58/1TeN\n39cWL3DaDsyQc6xLCaVq0Q1YBn98ch6YrzYMiKrrrWjJHjPBUCdCBXQZmvjbI6SO\nDBHTFgxeRJHCWAn7DeUndeOrWHfLKrZt7u2j6DS1bnUEfLqNDh+VP5IFJXS+sH4j\nCuA94vLfMfnSWkG9akwbfMcUjt77iyWyVIqf9jOWfVrwlXQHHuG4oZ+WEvFU6jbb\noU0piVHWsnVgO3Nkhmqe03vpGmR/KWzVMrZuqIs7sm9s0+fARJJKIL4ikS53B64D\njovULbk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"opencatalogi","categories":["integration"],"userDocs":"https://opencatalogi.conduction.nl/docs/Users/","adminDocs":"https://opencatalogi.conduction.nl/docs/Administrator/","developerDocs":"https://opencatalogi.conduction.nl/docs/Developers/","issueTracker":"https://github.com/ConductionNL/opencatalogi/issues","website":"https://opencatalogi.conduction.nl/","created":"2024-08-20T20:51:37.529873Z","lastModified":"2026-10-21T07:02:52.007749Z","releases":[{"version":"2.1.30-beta.20261021070013","phpExtensions":[{"id":"curl","versionSpec":"*","rawVersionSpec":"*"},{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/ConductionNL/opencatalogi/releases/download/v2.1.30-beta.20261021070013/opencatalogi-2.1.30-beta.20261021070013.tar.gz","created":"2026-10-21T07:02:52.048370Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-21T07:02:52.065944Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"RsGF5e0Fdde3JnVh3BKPonJDV6Pkt9ZP7rXlcwUFU4pVLgmpL7qu980z5/Ew+2Ip9JUU59ysLuAfQjMSHFAVNwsSCeEohY3ky61HzO4hQ9rIxQeMK0jFkV43vPq62MMDYqfzwiysBZdqTVkwhXE7O8HHYojx7MVRSKej4wSDGXYOHLbLw4oFWSDW//8GkHD68EH2GwdVL3t8YIs8Ftt54eM7dBmPN7etoLgqRlyXRzuxrPsDcnXGo9RugqQi5iiTDvahgayDS3uAt2G8qPTVB141X3xVp1gB82RXm29ms8tmD58jG1y4yLkO0i9lFTiWcxKZHd2gxhsiA+2A4Yvirlz6pDg20OyfeYZCARjloPfyBGzHGNnnQ49Q9GtGszzfX2IlsWEFDSEFXJQFFCbrf9H0zYccENX0mfm2auEWXrecFANtiz9guq3FUOCLJybDqBxSqcx/Q+PJo8+97pX1/pvp6zv7ykTnFe+uHKzLmactgvZH7HxjYdakO1qcV8tzzu+qFJICRRDWr5N/7l2R3+tRx6Z36s0ZTqG8Y8EIMlPEhUESyLMPgFpDhzuo+CQF6spidg49r1/AoX5VkO4CelTbmRiwKY9b3qg7/Zi3M6VO5wd0OCO+UhhCQj88cYIknD+qK7P/ms8py0HNTpAnAnQz7Wpj/sgVv7j/3yBO51U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVuY2F0YWxvZ2kvbWFpbi9pbWcvc2NyZWVuc2hvdC1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVuY2F0YWxvZ2kvbWFpbi9pbWcvc2NyZWVuc2hvdC1jYXRhbG9nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVuY2F0YWxvZ2kvbWFpbi9pbWcvc2NyZWVuc2hvdC1wdWJsaWNhdGlvbnMucG5n","smallThumbnail":""}],"videos":[],"translations":{"nl":{"name":"OpenCatalogi","summary":"Gefedereerde publicatiecatalogi met DCAT-AP- en Woo-ondersteuning","description":"OpenCatalogi maakt van je Nextcloud een publieksgerichte catalogus van publicaties, software en data. Eén keer publiceren, overal vindbaar: items worden geëxporteerd als DCAT-AP-metadata voor data.overheid.nl, en Woo-informatiecategorieën krijgen automatisch DIWOO-sitemaps en een robots.txt.\n\n**Belangrijkste functies**\n\n- **Catalogi & publicaties** — Organiseer publicaties in catalogi, elk met een eigen scope en toegangsregels\n- **Gefedereerde directory** — Synchroniseer en ontdek catalogi tussen Nextcloud-instanties via de directory-sync cron\n- **DCAT-AP- en DIWOO-export** — Publicaties worden geoogst als DCAT-AP-metadata en gemapt naar het DIWOO XML-schema voor alle 17 verplichte Woo-informatiecategorieën\n- **Woo-compliance** — Sitemap-, robots.txt- en audittrail-ondersteuning voor de verplichtingen uit de Wet open overheid\n- **Bewaartermijnen** — Dagelijkse achtergrondcontrole van bewaartermijnen van publicaties, met een review-queue-widget op het dashboard\n- **Contentbeheer** — Woordenlijst, thema's, pagina's en menu's voor het inrichten van de publieke catalogussite\n- **Organisatieprofielen** — Uitgevende organisaties met overheidsidentifiers (OIN/TOOI/RSIN/PKI)\n- **AI Chat Companion-integratie** — MCP-tools ontsluiten catalogus-zoeken en publicatie-opzoeking voor ondersteunde LLM-assistenten\n- 🆓 Vrij en open source onder de EUPL-licentie\n- ⚙️ Installeert en activeert automatisch [OpenRegister](https://apps.nextcloud.com/apps/openregister) (vereiste afhankelijkheid)\n\n**System Cron is momenteel vereist om deze app te laten werken**\n\nDe vereisten vind je [hier](https://opencatalogi.conduction.nl/docs/Installation/)\n\nMeld een [bug](https://github.com/OpenCatalogi/.github/issues/new/choose)\n\nDoe een [featureverzoek](https://github.com/OpenCatalogi/.github/issues/new/choose)\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl."},"en":{"name":"OpenCatalogi","summary":"Federated publication catalogues with DCAT-AP and Woo compliance","description":"OpenCatalogi turns your Nextcloud into a public-facing catalogue of publications, software, and data. Publish once, get discovered everywhere: entries export as DCAT-AP metadata for data.overheid.nl, and Woo (Wet open overheid) disclosure categories get DIWOO sitemaps and robots.txt out of the box.\n\n**Key Features**\n\n- **Catalogues & publications** — Organize publications into catalogs, each with its own scope and access rules\n- **Federated directory** — Synchronize and discover catalogues across Nextcloud instances via the directory sync cron\n- **DCAT-AP & DIWOO export** — Publications are harvested as DCAT-AP metadata and mapped to the DIWOO XML schema for all 17 mandatory Woo information categories\n- **Woo (open government) compliance** — Sitemap, robots.txt, and audit-trail support for Wet open overheid disclosure obligations\n- **Retention lifecycle** — Daily background evaluation of publication retention terms with a review-queue dashboard widget\n- **Content management** — Glossary, themes, pages, and menus for building the public-facing catalogue site\n- **Organization profiles** — Publisher organizations with government identifiers (OIN/TOOI/RSIN/PKI)\n- **AI Chat Companion integration** — MCP tools expose catalogue search and publication lookup to compatible LLM assistants\n- 🆓 Free and open source under the EUPL license\n- ⚙️ Automatically installs and enables [OpenRegister](https://apps.nextcloud.com/apps/openregister) (required dependency)\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://opencatalogi.conduction.nl/docs/Installation/)\n\nCreate a [bug report](https://github.com/OpenCatalogi/.github/issues/new/choose)\n\nCreate a [feature request](https://github.com/OpenCatalogi/.github/issues/new/choose)\n\n**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"},{"name":"Acato","mail":"info@acato.nl","homepage":"https://acato.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhO/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE3MDgxNTQ2WhcNMzYxMTIyMDgxNTQ2WjAXMRUwEwYD\nVQQDDAxvcGVuY2F0YWxvZ2kwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQC8Aw+SZjDfuwRQIFAajMZoG3P1+So+Q9m/kkffzAUg4NA4MMwzYIwME1u4vm9+\nVkRK4+M1eXgCGXXLPWix72sZwQgsWfu9KbZjhnWVwDhK7MzEVoxnprSakS51sUV9\nMnjg9Q4wkJmR8C2LrTb89IgntSV0S5/86xtUW5altMJo3XvfQhSWpYSpGTz9CSuC\nY0JQsOVbZWzIazLEzrIXLQi4ieJhX1EK95AgXz5nhTAz5VLcsNXbo6n3Yp6WqY6y\nqriFQGDMs9LgCwvKDD1Y833mxQA1FF2jPtxfvyHJyrGa7hv8NK0Jg4L+CBMfgirH\nouRdRnGhnTNHe0LQ9USBM5BjRX/41slSNb8KQ1J2MP0lcT1p/UT9FGqYmQWkimLi\np6scZ59lMGHOtTjL/zwbD4MLVlGdoTXpy6puRSRntw2Pftjlzk5DlUq2Tl4+5SnH\noZp/PZdpbGdGtSQCtguR052534ePvOjit8NTuG3puAL9/qZYv5nuexhygh6+tnbm\nMY3V9WYnBscHoY5eSMAUTGohr9aCTqcowJrFzZaQ+7u43VGdNyIdQPv+f6OraAPl\n4e8IN1JpW9f/y2Ro7PTMIybWQCE/oQRT1HTYId9prU1GsvfIl+KjBYTMhc14g9ME\nR4zZLoS/c1+0SYPH0u0zIPNIuDstOGV3MBUwRDB2G9sfhwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQA5R92QVFUEHkn63CKiYngddS4rBlLiguNKkmi+uH6ctfEYDjsJ\n4w8Us7maLCMTz2+aTRUAMnAHmSqm5eGj//gRydAkGheP9YkkKxgddB1GpwlHtLWX\nb3nHhf0BkI5IwcTl1+I00CU/Eq3QAe5axEewazam4vSLPeU7ypPY8nWNf2oOmLBw\nAb8rZspoXHnmdASGmkXjzVEwGc5BZJ0VMrqXwTdXYK5MwKJmEWLKEs2PSGQDtB/V\nvk4PpkJji1QrPIsRi4tCmT294FZx8eepJbUDplgso74A3GVoIt5XfdHTh2Cilc/c\nA6h3l1laRvfuZN+ktBNi9inx3CrfRd+nt/dr\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"openregister","categories":["organization","search","tools"],"userDocs":"https://conduction.gitbook.io/openregister-nextcloud/","adminDocs":"https://conduction.gitbook.io/openregister-nextcloud/","developerDocs":"https://conduction.gitbook.io/openregister-nextcloud/","issueTracker":"https://github.com/ConductionNL/openregister/issues","website":"https://github.com/ConductionNL/openregister","created":"2024-09-06T20:33:48.796201Z","lastModified":"2026-10-20T10:31:25.589255Z","releases":[{"version":"2.1.41-beta.20261020102916","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/ConductionNL/openregister/releases/download/v2.1.41-beta.20261020102916/openregister-2.1.41-beta.20261020102916.tar.gz","created":"2026-10-20T10:31:25.639109Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-20T10:31:25.655777Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"qcvu19JcZFcZIiR7S96cWv8s70XIufN3b9GbElDPXEGxhwRATJCKWEbtuQ/l0rHzLBAj540NeLzoj7h1xKNBrHK0+QR1efTpecEapoejP5oOqVa9EOv6KduLQLp1KvRUZDYlFGwqEtik5RBqAaHg9zaSA/WOAPzNZOn/mwZXDCXAzAQIJ/vlNv0CdFsOBW3bSr1+8AW4lJyZScPjcxeaEGDWO5CD3qRC3F8ZcS0xWIa36izJ6aEPZEBUDT8uz462Xa1pnVt/Apq7DEQEzzTJXTbhBfMBW5lkeO0WB6W7gUdl8nu2d+cT3VeJuscW6aBeFg78L+YyJEm+swCrMO0xH+dZQ0UvycX7zRPUaC9DYQ7uaD0mE94ZXpO56JBJfo8Vn5bMRCwsg4uOzyIgKFCdTEJwcQSACVfeyMPpAGNMIK0iMbJ9wACtUJqcsOmG16VScWmZ9+EG9eDrRVKgoOmY62FAx37+iIalJlHlxfz09oXi/L4zu5uI9TAJFIXXFocqBVhcb+HQBrZherenXBv0v3oJ1NmUme11txcIczxZTRazEqsxsB4+XRQWJMT8NnH1yIKo+SSQzn2ut9Qqomzqrz45FcjgTun18DqtRjBS2v4kDss8Izcnnpj9lI3zLE88IQktQEbdiLOqeeP4p7tXXC9bTR1F1o+qx5e2LRBecIk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVucmVnaXN0ZXIvbWFpbi9pbWcvc2NyZWVuc2hvdC1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVucmVnaXN0ZXIvbWFpbi9pbWcvc2NyZWVuc2hvdC1yZWdpc3RlcnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9vcGVucmVnaXN0ZXIvbWFpbi9pbWcvc2NyZWVuc2hvdC1vYmplY3RzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Open Register","summary":"Build structured data registers with schemas, RBAC, and full-text search","description":"Open Register is the foundation for structured data management in Nextcloud. Define your data models with JSON Schema, store objects in high-performance registers, and let your other apps build on top of a solid, standards-based data layer.\n\n**Key Features**\n\n- **Schema-based registers** — Define data structures with JSON Schema and organize them into registers\n- **Full CRUD API** — Create, read, update, and delete objects through a powerful REST API\n- **Full-text search with faceting** — Search across registers with filters, powered by magic tables\n- **Role-based access control** — Fine-grained permissions with organization-level multitenancy\n- **Event-driven architecture** — React to data changes with events for tasks, notifications, and integrations\n- **CalDAV tasks and notes** — Attach Nextcloud tasks and comments directly to your data objects\n- **JSON-LD and Linked Data** — Opt-in read-side JSON-LD output (via `Accept: application/ld+json` content negotiation) with canonical `@id`, schema-derived `@context`, and dereferenceable context documents; Schema.org alignment is per-schema opt-in mapping. Read-side only (no JSON-LD ingest)\n- **Source synchronization** — Keep your registers in sync with external data sources\n\nOpen Register powers apps like OpenCatalogi, Procest, Pipelinq, and Software Catalogus, giving them a shared, federated data backbone.\n\nFree and open source under the EUPL license."},"nl":{"name":"Open Register","summary":"Bouw gestructureerde dataregisters met schema's, RBAC en full-text zoeken","description":"Open Register is de basis voor gestructureerd databeheer in Nextcloud. Definieer je datamodellen met JSON Schema, sla objecten op in krachtige registers en laat je andere apps bouwen op een solide, op standaarden gebaseerde datalaag.\n\n**Belangrijkste functies**\n\n- **Schema-gebaseerde registers** — Definieer datastructuren met JSON Schema en organiseer ze in registers\n- **Volledige CRUD API** — Maak, lees, wijzig en verwijder objecten via een krachtige REST API\n- **Full-text zoeken met facetten** — Zoek dwars door registers met filters, aangedreven door magic tables\n- **Rolgebaseerde toegangscontrole** — Fijnmazige rechten met multitenancy op organisatieniveau\n- **Event-driven architectuur** — Reageer op datawijzigingen met events voor taken, notificaties en integraties\n- **CalDAV taken en notities** — Koppel Nextcloud-taken en opmerkingen direct aan je dataobjecten\n- **JSON-LD en Linked Data** — Optionele read-side JSON-LD-uitvoer (via `Accept: application/ld+json` content-negotiation) met canonieke `@id`, een uit het schema afgeleide `@context` en dereferenceerbare context-documenten; Schema.org-uitlijning is een per-schema opt-in mapping. Alleen lezen (geen JSON-LD-import)\n- **Bronsynchronisatie** — Houd je registers in sync met externe databronnen\n\nOpen Register drijft apps zoals OpenCatalogi, Procest, Pipelinq en Software Catalogus aan en geeft ze een gedeelde, gefedereerde data-backbone.\n\nVrij en open source onder de EUPL-licentie."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhPAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE3MDkxMzUyWhcNMzYxMTIyMDkxMzUyWjAXMRUwEwYD\nVQQDDAxvcGVucmVnaXN0ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCqpRA4UdhNco/Sk9h6LyKySybydyvg+wig5zoB0O67Wz6WtD35mjMvqgxG+Oxk\nx6COl7dJu116hq1mbFqTEJONt9m0JFrPUVwyXec6zmzGWoVM4ZERdgme48+2iu57\nBNy9d5j3pSw8N7zZILRg/PbZmIMGEpJ8zHk8EKPDjd7Je4+Z8cgEvs8jmPy0Wp3E\n10GqnZeZF0mFk8rdhxLgaEeO/+9/YdsfoFz8WlyG+l2S4HrggpVqH8vHEvh8oOM5\nPIZ2hFFRQBbo5q5rmEGBWT4nR2o2LjjOh7euoyRlxRV741yMYZw77hxePWmFBbwe\n3escoi9t+6x+wAla0NtHYaELmuGTwZxYblmJgvAP37AZR5Q9mTt8WUpg7hC4HJr0\n9GUsU3tkVBLXo8lMWBjzwnTaLTyEMQ46WBH/VOMl4QbbqRMXr3o3PGn2Ukf95hPM\n8foXnEXDqzu8IE8MNJ3Mc1DqZdvH2Qvp4DSckHqpSBxBMwrMqK6UTyU76ShR8vz2\na0UXd9tTR+IGvVFG8aK6BfDhzObbjqH8V+TBQ1ESD+0hIlrM40ihPlZh1dJciEmR\nExl4rhTzW0vC2JZY9MfR8BCVXiYXdHWnUpSBjfN/0i68xQLVFjhW37UJak2ComiX\nLwtZ2LuMBUNKPCAe/ZRP89PIDmgfzdZ1Dx0dDxjHTDpULwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQCYsObHWsMlZ9WLUGAjSCmX5B0ox4MuKYidVCUglkOVQWpe9Yz5\nkZlGJa8rohnM/+7LWxjVfg25r0GAEMPyfp/dskCkyXiwP4LXGl19B4AQfaeEHg8Q\nh2W1kAbddA5AUGqIRlyDhy/8yXyUF5T1qPYY6MrB0iVTcm+ZozbiXlJigl6/ON8m\nGNgmNkbS6J3zLJGjZLyf/MdNt3qgSZSKEUC01t+xunI1Vv8IMxuAFtdbtnlZqI19\ngHl1P4yAoRrLxVOpxvQqprnSSca16rHiwxtY1xX8dVk/v6yEo1Ci8zMwq/ftTP6w\npWF5LB4HWXKgsxlC4guxhJXigpBJykwel/kn\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"crate","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/megamaced/crate/issues","website":"","created":"2026-06-11T20:13:20.239422Z","lastModified":"2026-10-21T18:29:36.382152Z","releases":[{"version":"1.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.9.1/crate-1.9.1.tar.gz","created":"2026-08-26T11:11:09.758456Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T11:11:09.858989Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"KEOZRqyVzP2v58GOg5ch+2jMyfEEHAHWE/44zcx+pXkYCd5d/Ky5/bn/vSstyR9WbCIIahdKKMhmg9ssgymBKgbLTgvvjV6AlDW/r+iIOAI+BTFCCgSDIOPOGvwSsgCROp0bkS0bd698QOoZ1I6oJ25RkU5YkkKBXrhEcMEpRcOd2d462ouCGUrNmgY0+6/Ej0LSPeR0awrxge5KV1tiaViTI5AE+wmMuie9Few0IBcra8eRr6bWJOeDi44jcETK5JR9Wrbpiq61COLHbgXsqbjp3OSlkx0aol4uE1dCnM8C/GLX5WOKRVBH/zU9PUp/QjzMtmT06c22abXXsAclfb707oNRciHA79MjvGkgy5LS4xE9d0FKu+i7e6+aiJF8eXETdsZfCAIR1n+hmM4kMkezzhr1Ixpwz3dykIRyrIrvEkNLEuq34Il0jjCTGTmoN1jfyCWEK49WznFuGQURj8+Bydr9gVxRbaIB+EeAKwq4FOeZL+yHCysiAhIXSrrx/iPcNtHzSc8Sg8MaC0b/0MoTV49e7qcTFaQe29HciEEYNu/jG3PTotiBL9PSbmDyczNWRy0sOELvYB88gQTaRETECUSluUIdNtH8AWWcBBdZfc2bJr/7vka2wpHGL1ruQwp1ZESCg8esHu7C6L/HYwq7roFPlMRNCPO+TpVr4uA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.9.0/crate-1.9.0.tar.gz","created":"2026-08-24T10:54:54.038789Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-24T10:54:54.100193Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"xmCqNCowUplp5zIGpuRkCE2qvjSdaupml4hsAb4EdJadL0tKbMPkjlkI7lkoXAYxdFIoi1LEUNLlZaPpWC5Vb82nNJWS7fM+TWC1yco2hthjA9ek3BQMfqJNAHSuTAUluQVP6K+1Um0vBOVT/T57fnilyqEwOM0mL5R17O1xwOzy/kca5VeI9AwBHoJZPbYXqmAVdvAmUlmqCqjqO+eAbCvbRE5BCjaER5cYhgjY5bgPxJ+1FIW27Q+weloKP1AW3InAK231FALMY8KBFuhWZhiod+Ln9lvaHx3BnHV4Ljwq2dtdQaFdf2L7cO95q3ojjb8kGQA5430uhmk0weSEYiYYK15/DwOrLIEMRiygIGFndJWFOUexyHD1M/ODXjZjDEr9rtiBRsiB6TN0m5zz8ZWfnAScRl5IvYAiSzOnwVnNnsiJyAR8AljtpemSrDZ1UZtNiMVMLJyAb7VPPAeqpyppHK9HTOOzdshWNxZIae7yD0mgW/OlIAEDGgJAtVVW/qHq4zu/63Qrpd4d2+FhN2u93J176aL83AhB3sbpH4ePBitWWeCS7d0UFV5ZL6vftu0cGN3wKJiFaIjdKkeKNctaWeklAV+Tz3LbeFpopZ/p/ag6d8Jq1wTueotDtBiEzXy1y7pkMnqtUHf39rKY3uFPH6c/fyjV2l3asSFu/B8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.8.0/crate-1.8.0.tar.gz","created":"2026-08-22T19:33:18.850947Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-22T19:33:18.915869Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"k2EF4uvy8OFgNpEOjePRXw0L2eKndkJ7Xd1QkTO8UZPUm4ryisalAb3JU1vu2xZynLuRZiSMa/OklM1ZAe70Zi3y2Kn8LaJ4CskWAtrkZQovt46nJvqQjGkVWvG4mrIN7AHrTTkXHh8Upzq/OUsfb5hVBD3YBRg4VzK9egQr4T/gnj6leImXeYsKA72b/D/VDHQBz5t/U/NqSv7Ver1F+MCtMrr+3Mr55YUd5o2G0pnxcVnbsEAD2qjsSDSQE2Mw0Crllo/zYn4cI2Kyq94cAKK9RqRe4ajD1Ifa5SHdPd7w5LPht5k2U8LRNDnuI+UPAUm6gJXin+VqxEhOxI/4SFidwhGpH0Ajm2v9h2tgAKM4ioW/1UgUaZjrqayPS/swKTrV2+UOPkJvlJrDKGv54GrwS0kg1Hqmk114OCnfPg+qjSqV279fDFNsneQgpjn6GWip5VNGRloxvAS+Whv+D3nYpKLkwszyx6y0pA6Am8BQEB1tTOkd5WGA1ual7pvElu/uDp+6xeQY83DBn8d5HVIB7ril3uzVezjFfZ5PVbwkEfRZVAaldkNs86N4ttFdd8d6c8Ub6RxrUAWnjZdrGUCaKk27fewydhezFOk4Z5y3VqW9FMUsS/JjHjsTANcaHB6uakVumEdzZdWDuE68ASaDBMfLcAtiu3OYu5E5i4A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.7.0/crate-1.7.0.tar.gz","created":"2026-08-17T19:02:45.107577Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-17T19:02:45.197259Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"f1mOg977F8eLAYnvOuWT8ga8FPjJU6MtBEo97xYTxAVFH0CAz8YzfctmdQl7k62oFT9t0eOIaquw/Cp7ihhavQAGr246KzsqIE04VgMx0p0f/TgtgZ21geN/gdKTSgRudBE07FomoqZevAfWJ6aoqmmp54oiFJ5Ica5e5KYIxa43wS4+ETHtUN5c7g1FFB0kdEvxROtO+19We3no19JZVb5Do5pO99MtFY9v0PxmJyMzzmWWJFVpZaq2+TcUcMBFal6PDAcEbuliLw6hjM1BB5E7v5fXf8RkVERG/wLtvrUnupPhI1DPSJk7rPfxMVe/490Fx1ihVi1t28H7M3wDpwj4S88Y7+/o5oPUt0FnIk5WPd3gA1n1uVUPfr1UAOwQc+N0QnifDhyTDZT4AyDO5TbtCtBlK8zIFhDMLtiesFmzO30bsnmxVQ/YCCO4UwwPvN+crYJf9eD2f3/Tori8YKVxntWiU1uiB3dBEVHY9kM8948lcYSFGVBdOdrwazHzWdxtpxpAZbD51uAR6wQqI+KN5ng8Gff17Oq70r5E5tP+yq0xBPGnQba1M7GKJL5GvqHnx8NRBKq7Hut2HqCu1+d+zQdBGqsikl408aajbiGDGIGUBSbeMOySOvn1beAtu2VViKTgawkFsoGXtC8KIRa4qUp3/zjinUUEXU4wN44=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.6.1/crate-1.6.1.tar.gz","created":"2026-08-16T17:00:28.323332Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-16T17:00:28.387488Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"uzVT2hPz+dYMDuH4boJM1ukC+MI5Yg//p+LFOZYfcEotLMMk83BvwVqP1yogQ8u8DoxLFz4DqSUcEgxaMogHYtP4SELyutSS0zu7uJ7R/YiqWQ8k7QvSWRvSrdeldoPOPmLG3KWksUzdBNVMzmdRl3APrsm/88YEGJOwWbWF4da+C983bLSRsWUqxKIOvtQ3uCWiTYsNpbpuESGkRmkecsg3kt89pfT3kmlC6SBFiBx/9BROme05NB3x8FqcdEEpGD+XVHR3DA22g1T9beI8/lF6JbP+GxDu/KDjvjTNNZoJpolBll3YlvuiipbZnILMlEfJQgUsg3R7Csny8Kx6Z8B0WWR5JdakOhNy5Z52LY0PduDzB8apq9onRHVJxFuKVljlD1VLSiT/fKxSUAcGBuUdt08k5XrGQZG9/4wZytAop6gWhwLfPSaZl0+5Ofk0AJcQR1ii2xQ5lP81L3GahFNYkUdsymq7VVdllls0J4BlSAqZtyu/ZaNytrZ3fTJ51Q5XKyOTXiLtz072V7niErQ2EINprbPSCYXixTKzqHUmOkOg4TIwL3Z56Bh2YXWKqil+/rQp0wpxKf441kPs6Aiyzwk2GM8uoLaeOKeftjH+6UixPzDZ8NmpCbckA5ABrGZFlaFM1RQxUxIssIwg7nJVlAv92ZvRBeB+OkfO9hs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.6.0/crate-1.6.0.tar.gz","created":"2026-08-12T20:25:55.438081Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-12T20:25:55.497503Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"agyFILEAtkLfS07UMEPq0clTo/rTBYw98cFRD6OfKMIQp6QTMI3grwfjczFUFLuJH3/2IBm0Igo4yr7Lym/67F4LOsA6T8CRnnx6cmaQVlwddU1CAK3es/iqrAJhGp8yNHqfb70yjqhzSxZs3kq8AaAuXw/WN5JTdMKzFIcLWIxTM+QJlfRrAyFx/EaxH6YEvHmNA19Daj7g4sgQ1+WsiC8zMGjXDYty15GEYRhAkKC5OMhYxO8dOzd87GkHnz9IkdLPjI8UcYhJyZnK0FwstTWo4E6ZGZm00cBYy0Yiojzt1hAP3lwiX2ItUCQ3Z5pewr+LoAxBMMx4x24LeWCYuVgHtZiMtvorM87dimvdvTMsb0Rm4c+qU4Ae5K9LiJs0hFzbmnlZjRL5JbX7lDRQPzJ/PnIThqbTd+au3V1wUeYnHXauSWxd9WUd3eShQ8pcm+ONHCXSWyIFV9cRUKda98ZPi58RDK0kABxRAYfBsfVhdLCYVGRC2MBmq7hMJspTPFNbplYJ18B0yoIXIgrmtSri2jCTQPj076e1WtZhVEDxgIS9kmIncqYSNzDgAPo+ZWdQlPQpp55TbeWb52lrH56wa8WoGpCDFUZwcpYz3bx06/oUSEfeuI1mLUU1YKNiBkQvsM1q1dXlX4emBLHnBYmdUIf5uesLWXXcB0K6TvU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.4.5/crate-1.4.5.tar.gz","created":"2026-07-19T11:19:47.812629Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-19T11:19:47.876300Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"4ATivPz90GVNmzd7yuiBQ4AQxl+Amy+25w1v6BH6E4PEDMeq8yDJt0Ihivjkf4WGvMnnK6opd2JopVlxJo2Y3mOx56twMmORzVV5zPlkhKZj/6NelIA1zx0aEMnObM1NQXLdZ6K4eHzkktPHki0eMnz22iRjd3WdWJG+2dixXBid16JhQ3y7jdrqzQxZpSYKX2UCZQnKeDbHqTlIY1pJO5ttHpzUXIua+4FxquKEL1wYHsMDGQVAh5fFe1vM1j2Op5d4sc+exJ8kC1xcFG2qRgiU7JKt2RtbrEcTYHWklFCk5Hx4Nny01/hMiOKfakczGQpxNqk15quOI3IOGaFcjNG0MuJpX1IlafcR4/Yz/mvcYvN5vzmVirahH5VRtYHwDrEJ0aRIUYbFIrE4NC+Kv90IJkiEjxZtuyLBo0UzES/ZE4Neb8LrCYThNOaknZlsHPmq1GyRyfmF2xZF4audvjdY7IS3I5YtaTqrXb/EQSaidYKE6SK4ecnHMT31zkrcI4eT0CEvn7siW0gZogVamet7HbB3cZfHYZsmxJuNM52IpKDKsLfZbm/TG1zgknpKEs6BhrsbY/lv6JSctXO60vdViPoUrrwcm+IMt2pgSGsT1ctOF3FudhrWl8vjrQc+oEe1LrUdPyIL/f/R7GWp5j9TjFHlI7E6wdz+ftSVJcU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.15.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.15.0/crate-1.15.0.tar.gz","created":"2026-10-21T18:29:36.369185Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T18:29:36.420448Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"T70UF6auwi2HndxUVPVymeJS49ntLZiSwGffjyxBre3Bt6h5C9u9dH03e7KnuWvH4gySh8UTY9CtKMT8PJJoMo7Q8UPU2tdaeVuwelVSv3W+zG0jDfXIyWd2PLY234R6o6O3MOz2FtumLq7RCJb7eeHaMKbV6DaVMVW9S61Wi4UG+PxBTK9v6LKdnZ7aoaMw37ibLDFvehzl2quiR/Sz9b+AHTlC06QDPwCDYG+tJk6e36mb00CuSFeSMiFOHTUlMzsDRkAVsNOLvvL2mvv/LbUoC8MbMmNcT6jQi5Ijo4YCMDjl2EqMBdmcVJo8gMWs5PAOYsZdjFJT/0VhJ2W8d3CZkqnGNx1hRCuRdxlw3XswccRsA9CaVIDGdWjtZkrCUTD8CInPtkk4uSxTwUuyii1Sn7YjJzWt55T2jZOycaSg6qMq7CBHaaiH9W0uzN+Edq8IgkO/lgKwHVHRH38CyA+ZkN2SmAyhaZhefVbxURPE/srBDGosu3JDfhYcmzVpOIy87kFehPgW1pIWZ40E1uTOpHDC3zC+vCXCNuMSP9k5cERQkeDlh5F8KIkC3dFASHN53K8kSDXOPN5ehMB3DfDsFFLoHwaBkq/Vs+gk2wlFEZsgaBAGCo107woVAp5lrbSQuGGgA1PL9ehku5Mg5QW56plns/nM0x5OoLRclGY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.13.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.13.0/crate-1.13.0.tar.gz","created":"2026-10-06T22:24:59.715998Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T22:24:59.762635Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"1CVgmKQ3TUrwtbgKchpLHv0x/CrrvzL1DMfKpDJJWMnGGEcwOHzAvaOp3qxh/D44CrkufIEQg9nDgCVNSjPKRcBbxBGQdfVQfSXHW1P//sXY0VduaR1OCDrk27+nDBb2HjQ4H1OsPNGYIjgDkMwXoaq2uGyWLf3NIb0a10NOUzawybSg5lzS23Dj+fza/qdztdoR2orYq+U6rBp3QuoEhZveVrlN80W/Xv8F1RdDJq3gmuKVCfjUsyqWzoBOOb5B9lPMisyrZo+z05sDfIin1HhaWkCtW9z1eyCs2Uha1c7EHcZrRuiYvppHdRLkmUer7xxvb4/+kvXcV9MT3xOswoCR53F+16fg7hjIAb2Q/CPuj3EWrLgVuzQBrFo3FOmbt3kLVRTwA7/U2YRvzoNY2TRk3ZYdcixS9XWCIAmFyUJksFCYxNCe7hlMYaKxQt+7AkysSRWbMLdhHa50hZFSFM/yo0jPpunlHa+dK+rjBPqYqG2O1oXPOgwOZ/SHq1lAUahfjblqHA1Au+XlRbqSz42Pfvbrb5F7IjZYpYMjTgnAtagkhnrEb+VdiFz4sXDwQ8QEmOyrgcCkV70gZiAR1Z2DDJlovTp4xzEofj7qIiqrrurICNWIa+3fvgqIU4Ys6RL6c7mRT3b7I6/etUCrxbpfmAa8/hqAHYbTbgfbbDQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.12.0/crate-1.12.0.tar.gz","created":"2026-09-02T21:52:25.088956Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-02T21:52:25.166741Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"B6qb8woWwPt+KULALm/UHgB7crqkXw96KNK0TgtsYGq/XwpZCFCOdnlth7f4FXtIVAadLjK0kCJDwQmed62a6DrT+Lb530U8exa2TLnxfwMokErrQC6FzYvvbH9ZVVcW/QO9I217U0t3s1AXnQNf58TWxDkBufb88Xm8PMq3iqDiPoJSLbk0ElqgvE2w96i2YoVkZhpG6L4ZVj4+iLJ7+thLOKZrk03yxJZ8FHQtjtMWWALnUJitSX+sz5FN26h0/3OhKNTAeVjbD6Vg2vE1kgTLJTgmv9dw93A22ildA0m1Atd6kJE0GB2j9U+kHAA6Aay0O0AsV+xhcdJdgNFvMptEEmdNawWESNn/V1E/iaNvf0NxgdnD4mXs2Ue6Htyv0daXzGCFWHst7jdZ4GOJ4JdAxcU8zxYoSUf6anz3nJVKUDv6Jx6HCjWl8pl9x/ULX0tN+SXqTxotYyPZX2ocnyUFDg062u1lGfEjtZ+YuSCWqBs94Hz//BN7rZBuIcB9gjLcOdTc+SQRgDo6MnAHy1u7NW9zXXpmrBCjIo8gjaoPprCe4xp73FL4ZfwozNF704TB1NrJvRTA2M55LyttBzTuut+4VsKFGKwdRL8yj70AQSHylPZOOGqiP4uPO2rnfvq64lnfgnj9QFyAe3/yWpThXq4CfKNi2uUxRcblGSs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.11.0/crate-1.11.0.tar.gz","created":"2026-08-26T14:38:48.571974Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T14:38:48.633952Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"Lpji/1hBCaoJgyg013XJ5j2MTEMQRAtL5bVuARwmVBApsjzOwIn0OrXhaEBhMLoupR4U4Iazzud4/vgjh8g20ctYrnNqViSyNJL798AJrw7XLZmr3TieSetHhYuDJPqHwYWfz6EvCJNevmHmsASXF7+1YbJU7aL68lOyECJrubmwra+6+1+VRpGndfAWet47VWzBXCIJJk75zDnNv9C1ytaltWanJdPjhJExdN3FzdnDrTPp4YElmlmf6puU8PhDIqCc/18Zz+aQdtCgLtYYjp8ssdSVSklQPr84xg6t6vARNMGlfdbZKQSvvEEWIEslWeHqXUBJhvq/YG1+vYvfwxsvY7ylrRb6tgSVkJ3TCyRiBkdAdEX298qQnzEAFKd/z8eh7PMo2GSIgAcGcihqVHwR/QiumR4Ef5abGZiTXbTUDVQM5xmnsmAyUlVuzGUWQr/9GoDsbtfYXVOQ1WDCBaJmyrgKxFEY6BZVnj7HlQeEU3kWUMwy5e88BLiSM4jiyVZqFh7RH7TzwYm6q83lfFXD0yN4h4ZOjmdcVQRwojmJRL7VFVOX3rIy/zSPPba3KsjyV1FHByR1ZFyolgxsAj0iIxcT3jTGd/LZ4HL4Zt/mUqtj5RMAdKyd9dY5hqKpnVHo3z8ktLgBEgp1/vuC8NvK3E6nBLnVOS8Ts7BGwH4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v1.10.0/crate-1.10.0.tar.gz","created":"2026-08-26T12:55:17.040358Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T12:55:17.090752Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=29 <=35","signature":"qzR/fST1mSqDJ5oWqmI4FWZlBMm/utETmxNp6/9X7rK5j8v+v4woAM2zeNHvLC+5W1IRdqW6CqmyOF43S73oG9q1O5+7Mh5WZhOvg490Ru6IN5T6w7SsIypKfbt3eF35e1L9UvlmR9btFmWkrDmpX/E1VVznLK5cmXprTISHM5sBUPCup8hepqIwpbAZJEBIcSKO4IYa6ANQyn4CQThcDDtNse3d+a3t7gmcvzcF8hv2/+/NDNCFlGUzvOErIbKJ13XXvkidrHK4nH/zjnK5qfupPxqKxNMUFKA/88ml+rpydxknC+yxbGT6ppf+3WY7JQ3PT9X+AybZT0orH3S8Tkg7gf6v7juAhhIJ2jK/2Y05q9Zx9UIdg7AYP9LhbSHlLMAN+yup4TmvkT2tBqt9ShKveHC/stmsOrKHaMOiKHyAlZeAwJQTh4ZPdiOIsRl84n8zKjxS96yCAWUfq4tv1vCiwNjpotsJ/kG4hWis5euEDnfkZj0p2l/nmUidt0BL2fu7fZ+5VOv8z41Tu11LhCsMpiFRD6ohebf+68Blw3zaoeLhmso6cqdSpIuL9CCMHZVI9a+3mkze2nzcyICEyWwyBhRBTuSGEUcfyI5cko94sn07AoHcn6H04y9PQzaZPiZou9HT04c/KUYk8uYiHGCCkDkGr7+w1MD7hGTFIyg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/megamaced/crate/releases/download/v0.5.5/crate-0.5.5.tar.gz","created":"2026-06-15T17:18:51.860682Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-15T17:18:51.930812Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"Zf+uD8qB5qzf9iyvnqVUNmeYpWcbvlFxvzOMPwQrQiW6BF9cv3P1Zry+QAq1kp0a9vTMhIu5k75HCxVdEDzusjVm1hob19x0ROtl3CfFMwMIsuCjVdeZ+GQR8INC+pPbT1wwkkhtqu49smWoBTvNhhMK3qMWlzgR1q9PVQP5atdlc9NzdnnyklCT4nThy5TRUsGaG5gw0V07/N6u44yvjBhqNLNTloI+8D+KlQO/x67bt/iUsgrNsmjmunaQMnk703vlnPV+yiVLcqGPqjpMUUR6Oyyv50NmdiVjICTPSojtimpCvZg30D2qGHc6OB0kZFTpZf0/laU+zebQSZjOQa1rh7+CUGHfxPJ5EpwVGHoyd4OKhUQijeaV1n+viBGylrGu1F9SRgvJwMkVftyZxcUp90BCybZk8vlfPYlZzdEbfiTTiTfYp2PP8OC77YyZs9DzXNQW5ksPWIcjPDP8BJSPCPVvCEn/coSAsSZ0GaHyJvdJdRqqvF+PsG1dRyr0nyhklnvk3kILeTkb4gJ7NeNlC8dz0LaKvUE2vE8dkhz1+Y12ntxdgk0w0mWNjFkm9jZl/xMI9apoTR9fc6XjbYC+d6TIubSZsEk6BN3QJcrdebS2hYfxhrEp7ky0nyOPS1Wl7F+OZg7Ry7vgRpANCuaCFIsKSpYTUUGhVMO7h5I=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvaG9tZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvbXVzaWMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvZmlsbXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvYm9va3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvZ2FtZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvY29taWNzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvZGV0YWlsLW11c2ljLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvZGV0YWlsLWdhbWUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvcGxheWxpc3RzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21lZ2FtYWNlZC9jcmF0ZS92MS4xNS4wL2RvY3Mvc2NyZWVuc2hvdHMvaW1wb3J0LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Crate","summary":"Physical media catalogue","description":"Crate is a personal physical media catalogue for Nextcloud — browse and manage your music, films, books, games and comics in one place, with everything stored on your own server.\n\nAdd items manually or by barcode scan. Pull rich metadata automatically from Discogs (music), TMDB (films), Open Library (books), RAWG (games) and ComicVine (comics). Track market values from Discogs and PriceCharting alongside what you originally paid. Attach the cover art plus two extra user photos per item (receipts, sleevenotes, disc shots).\n\nOwned vs. wanted, star ratings, playlists, sharing with other Nextcloud users, full CSV and XLSX import / export. There's a native Android companion at https://github.com/megamaced/crate-android."}},"isFeatured":false,"authors":[{"name":"megamaced","mail":"22581049+megamaced@users.noreply.github.com","homepage":"https://github.com/megamaced/crate"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhNnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjExMDkxOTU3WhcNMzYwOTE2MDkxOTU3WjAQMQ4wDAYD\nVQQDDAVjcmF0ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOWEIJdM\nbXyHe6dQp+e8/HoOR14/4daan7jaPX73yzNoX/bjs+ShRn5BePQSyiC4yx6Jv7QX\n6A7UUKuQ4Bx8FBi8I/y4K2BQrDdjkf6nIUICvS/22Si4fd1AOMV62/69F2tq0DlL\nnLDshu+oWnuxb1EgECKFK6ZTFpKEx3UeskWYTD2UQVsyHD4OtjzWW424UfEJffP2\n81bPXFnldyEfBgErhYEBa1BzpZtb+uInqcGQ/WSgMSKkf22UEiyc3Vb06vkjTIKE\ng013V6rIQHIoIlb6fRoDGOZGLeXogvl/75m00lLUdPte90yZt0iSL3MMjouXvsC3\nqygGvKy85NTl6jOogqXxMagNcLG4wQqN9J5qI2befjt7ZTh6ZYjenq2L3NzsobKT\n2TtqGBk68jy1EBA7/xU/MoEo6dHXAVSQYpzi/es+y0i+pwVo+L31zi/D3Af4QsUe\nwJqa1x82s3A7SSuLuiN+0K9kpiqxoFCKFimX8tj8Dr106zTjaO3A7hwdUI0cLnDP\nfCiw3IHlFbZ1iBpotUG5J9ouZgCJkhGTND2w4ZemSFmyYYdmEURn++6hXcZ6tpYN\n6eCD2mnBHQlwp3/iieV6JnP4I/m98u6YHHxANheYqtah+uvm15/ntAS0rVDEFfIj\n1rog/HlXqseFKJx+19x3uPnfagyPJMQqwZorAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAFJUo0kF0h8a51EqgvsOiOE3ZIhE2sO/iaKxv1VRuhrrQlueLrepYWug2qaQ\nMYEsqegiREtX0vD0gnW+aZdYV3oSKDbaVQiTRZrskgTofAnLDMWX/KgsiSfFLxOB\nIA9kL1mnyvpy3isvXFS3ipG9U+Fo+gW/kxUcCFZbrXjG/hhRBU/NGhmp478n0I/2\nMyv5ltRNxjEMFrG4Z74MHE/Py3F+JtbBXEgPUaS3uFNcgFQ/1lUJXuLAelRFR5C8\ndGuo2q1rkztOidxaMI91GXrR/hSAMa70eVYU0U82LsVP1CwCkmDiWSii5uPy6vWh\nsAPWxUEw+AG5/ruhxgDrYVnWdM0=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"shortcuts","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/issues","website":"https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts","created":"2026-08-14T21:02:08.537903Z","lastModified":"2026-08-17T22:21:58.724900Z","releases":[{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/releases/download/v1.0.2/shortcuts-v1.0.2.tar.gz","created":"2026-08-17T22:21:58.697785Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-17T22:21:58.773267Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Ypc+Gwyykh+fwrThMBL3rgPH2jMcaMOp/dfoXmTRvR12/W0doU5j8fR4EVL4OG6J+0wMBprO8mkcmkgHB3X/e1LmVMeGoUYBO4wHmqTiuFtPrKLbWuqlr7yc9NicCmOSvhIXM0Elsb7sHvhwzVaLF6qC84h/fPHoVoQi2aUt+Zaldr1LkFZjxCt0hEzfZD+orF/ww8az992MCBt7gALMcRtLD4JF/NLocvNZ7A2GwZvlWGReoF8wauZZwdSsXAUx0mZDmAH5Rw//V3nj6e3OUSOZgi24Eqjgg31VummRIgJ33yMDr84JfTutQfzjH8A/PuAUjBXBncUeoDe09qbGZquihr/Bms31UdmPPFu+eOJfIKEg8mO3nhwR3qjL2KQNjx8wiLYfBoWhRHurHxV6SLeOxoeeEQLo/S5+McmLs4TZlbMSh9gzqAJ7K4wV+o17hocRF5rgEVYRfmOk0e6OSQ+QbCSCXlY/hAIoYoFKBdygPRLCC+RS0Tfrh8J0MarsNNaPMw+rci8V0R7rIAf2wyqNa3N20uxzexRyXc1eGb4dkyWyXeO7BiHFJ+uLziKsVsorfthUGxpoyxKSNH0RnMXwaN9bY0MqELETMxMbj+JIP9ifmo/H0XWJU1A4NhMTi+RHY9gK0W66FlkkIkmn0yImayQszp388vIX4ENdCnE=","translations":{"en":{"changelog":"### Fixed\n\n- Fix folder shortcuts for nested folders ([#18](https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/pulls/18)) @lukasdotcom\n\n### Changed\n\n- Update npm to v12\n- Remove test from build publish workflow"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/releases/download/v1.0.1/shortcuts-v1.0.1.tar.gz","created":"2026-08-14T21:37:41.931976Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-14T21:37:42.833492Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Xfdr35BWcNt+UjZdj9TCU4SExdeCH5WsY8hRZ6lvuMi2V/ITcdraO9sOMzZveEhTLiL3h15RxDMy7n3NAEkeRUSGmfeuINnj5ZMv65XcWVN9sWNTzAzoVsm+paovGG/FqVX9kHEePPUvCpoYcFBvjqwfa82gLSiOeuvxB5JMc7RLG7GBd/Wz4JSfkmtkuNA/2nNJUMM+fv9iRZwMNqDSuLbNXE6ohrhJjUqSMRgcXR3wRlMfqM+MN25xDkkLCdADKVMzs+62H0XvTLUdZL4e/S375WSPYxgaxO4YGICeIA9deez0ZPIF/AW0k/Pss5e/0tLOH0tTAsjDMy0uW+6z9e5gWfrZ8MGAiASexADeJ7xF/JQIsOPg4VulvjlIi/aex/TkzyLKlCpj3GUn2Q9+7EFL9UByVsRkd2AwEm/Hml4PaY6Bhn8wDWMhjKmhR/J+7msDcreh9TURvjQMqoB6sSVvO324VWtWbbrYl1+T3MfVDyg/l6ykIbJp0docSA9jGYhAd4gE6/TjWdNNazO4cnQpOCmqESwptdPX6XbP8T9bWQgNZqLsrZLMeU8PRVCG7VOdOyLiYW9Ev1gsbUG9Jz7qygFVXF6gke4wsecUlyr73Qw+e0YCgwwtHWtXhBfVAxC3nhzVmN2VpeQWl7VmH94F5QKxn0G152OSvO/dQPE=","translations":{"en":{"changelog":"### Changed\n\n- Better workflow caching ([#15](https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/pulls/15)) @lukasdotcom\n- Bump Dependencies ([#16](https://git.lschaefer.xyz/lukasdotcom/nextcloud-shortcuts/pulls/3))\n- First release in the Nextcloud App Store"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Shortcuts","summary":"Create personal shortcuts to files and folders in Files","description":"Create shortcuts to files and folders from the Files app.\n\nA shortcut is a small `.nextcloudshortcut` file that stores the target file id. Opening it in Files resolves and opens the original file or folder.\n\nThese files only work in the web version."}},"isFeatured":false,"authors":[{"name":"Lukas Schaefer","mail":"lukas@schaefer.xyz","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhO+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE0MTY1MDAzWhcNMzYxMTE5MTY1MDAzWjAUMRIwEAYD\nVQQDDAlzaG9ydGN1dHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC8\nAaMC/dhkDrhYCBpkUglqTTVyYl3KQI75jMW/q+sa2xqYXWSwp3MZYIFqfaADV3Ea\n9L369kRks9foVCPwLVbOGNJX7zCBvesa95vYEAcO6eoTXW6GCLUQwScSsmlL3hWq\n+Jfz571IZ1iFgUokgVDe/RbB57bkB3ajpfG7d/zOPkpLHlVvC5u3G/TGCGUSqmvz\nfrv/Gu2AkG/brLC7efDufpXtuspGN+QC8mo/AWvFZPjStv0m42Nu9L0FB8pGujMa\nGTmdz1rePeYD5MoGg8Fxnr94lKoKnhigA7OOq7dkmqtly8h6vt/CdOlll80dPDmm\nzs315AXmswm96FHjDpPHbUnNIRADcMAtok0N7kOJuh54J4K8M1kChbDB/di59k+e\nLB8SHj80ESVY6ZAByFaBI/eLIEMsvBkYvTQcXzO9OaTG7K+cll8WLTd5KH7WOSrr\nlUluiUjnkJrfAwD0HMPa20l474SX6rpNW+auEDoDrFyN7G25fQxyR+w26bsXrwWP\nIRfz11/4QitknEOfct89i9E1G+1HfY4dmMbByck5AioLMlunohe9flNFxena7gYJ\nu1SzuE5HeETWN5B3jmSpXjKzZXFPOPoPPhw9z1t/5d65XkSTuQw7Cf8pJ8g12eRd\nA1sb/YAHlo1+kg2RFQPfeFpiBT+hW4fEVMnldRbtRwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBz5lnSZIehLQEqU5I/dw4csjc2Pn7oiIvivuJFgxixarPlRj3ealkG\nJ/S1KNl9wARDvljNrrK4G401qgoyFcZqlP9TAMjgihJld+worX7aqyf1SxmVJGsp\nF26OPZ6/6G0BwuwZy29MzJcEZjbPKU3NZ2mqxvcg8jAScMvhl0JCB2MrvDIfMzIc\nfZfo5R+6hm/XAC143VfAlmKBBi5OrFyamiW7SNNasn2URZk8j7YedD59hH7Str+h\nnUopLxvwKhYAqVkFFizVK+mQ8BmW8JXmqi+KsA+u+xOs8jLAIjfQlG6Zouj2N+Ou\nubW/zP7LXCQ3HI7Vot2PQDIjzQkyMpJV\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"paperless_unified_search","categories":["files","integration","search"],"userDocs":"https://dennis-otto.github.io/paperless-unified-search/usage.html","adminDocs":"https://dennis-otto.github.io/paperless-unified-search/configure.html","developerDocs":"https://github.com/Dennis-Otto/paperless-unified-search#development","issueTracker":"https://github.com/Dennis-Otto/paperless-unified-search/issues","website":"https://dennis-otto.github.io/paperless-unified-search/","created":"2026-08-25T18:32:29.385739Z","lastModified":"2026-10-19T14:10:17.989180Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v1.1.1/paperless_unified_search.tar.gz","created":"2026-10-19T14:10:17.983231Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T14:10:18.054307Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"qGXPUCkokdcmpA9ZVKTFshT/XMQSYyi2VOyyT1866KqRRIiZkstp4jM1vdyoq5vd/O2Fq+XzgxOVsO1utc1Upo9QbpiojY/PXOgH487FIuZV+Qp3Gmcwa4qMgjoQiX+Z6p1W8rqzMZVuO4pIu92mgRNDt/WY1ZsRrv2bklqeLjFZY1xMHFb4be+UXM+4OzzJEpMAlDfA9ELX9ZpFup4HFoTb5t2VDbHXK/zHcQL9STs2qk7DkX9bXg5uBw1K79ZdRBA4ZB2ToKD7SK8RC3hvXTIkPQEyqcFoRx/XTzlmck118kaeXm14B9IH2Spgbx+henhg9cTLvfrNOU6397p1svOtxO5xgXmf5kvaLMlbQPhuTZ5j2sBJ4HPAQuN6Zwh2CLLzd91oqYu4rAGOJrTT6yLmAbQzEg/BkP+kTsqVurEZsUKFbeS0Vcm+r4tzE3lzrpT5ab4SY4QyWfnOoQcQxzBojane2oWoEd0YukTxW/YeRKCZuP+raNS2NUUYqe3d1XC5ehaHbNC64Z6Mg83AHHusQ6KfdMojZ6w4Ov24OjYnr3NmDn3DOtJzSxamBM1sYUcVpw65RrDS15jw1Yf0CiiVM/8et18RHbFuAWRUBXRWBoAJ/fQgzhFIQTjAPN/yBB9D6mpVgtt9Lo7hcDwxlaUzEyM4fTSIWEOgTIosEc8=","translations":{"en":{"changelog":"### Bug fixes\n\n- **The archive account of Paperless Sync 0.3:** with no archive account of its own, the app takes the account that Paperless Sync writes the archive with again. Paperless Sync 0.3.0 stores it in a way that the app didn't read, so the search showed no Paperless documents at all, and the settings, `occ` and the overview said that Paperless Sync names no account."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v1.1.0/paperless_unified_search.tar.gz","created":"2026-10-17T22:15:00.939208Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T22:15:01.025664Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"nxfaO+oEqUG6/JteNAcOF6VLz95Uqfirgh7/Zs5nrYCnp8mpvm4iqoQ7IquRaB1C7LO3/VN5TDZZyVAY+gljDUziNGq6nyE9X6Xys5fmHcdJ94Jxz+iHE3IULXF3UnHYr1ocb9KEqAl7qHZW62ryBDRHJZMCxrp6xMLUxhUErJwU53S5i9p4p4aKNEIVNDEWujJyBiGJ0r4Y73UW7fbWq2aY+Xpr+A9USwIzHJB1SRHry+4AloFHocM7dFbb+Hk6/HYIt3xpL8holixRri6Yws2i38NWIk3S/jIjsNNghRIFC6hzksGj3HOer3Y27kQ1uHhCzNlrs6qCFSI4Z0qkNauDg59FbvAJZaCaNg6DrRCHYIxIf791zuyKF87HVlMVkhxNa8liivItlgiLuZYmUS673Yh7pB6Do6R2LecIs2kzGF84dnlVc6Nsn49lnuReoGNtPvJhjTFqWrj+yAtVAtkLcRJHN+N7QQg6Joxq/XkBzPX9iAWEx6YL5BV4A/aUK786X0Qr8Rbj7fBRexkwVls6D3lbMTsxd96w60M6U+mupc267maqxda5qwJad2irtf02QSjXa9L0MocQhfPyzlQFvjjM/kHuPXYBmOOJMHqxv4imSWV/LuPPkyP1nOB2RwreXuu2y7CobjUNvX3SxmlddYTYo0TGUtP5cbgl5qA=","translations":{"en":{"changelog":"### Features\n\n- **Dashboard:** the widget *New in Paperless* lists the newest Paperless documents that you can open, each with the preview of its file, the day that Paperless added it, its correspondent and its type, and opens a document's file in Files. Paperless gets one request a minute for the dashboards of all users.\n- **Try it in three minutes:** `bash demo/seed.sh` starts a real Paperless-ngx and a real Nextcloud in Docker on your own machine, gives Paperless five synthetic documents, sets up Paperless Sync and this app, and ends with a search that finds the documents, so you can see the app at work without touching your own servers. `demo/README.md` says what to try."}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v1.0.1/paperless_unified_search.tar.gz","created":"2026-10-17T19:12:13.820143Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T19:12:15.117783Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Cartwn/FRQn3Cf7NYJD5bh885gKTsCyo4+masO6rMIgxa1zPqwfVlYHS60jZdWQLp0cRDNQNYDOVef/L6N8azZqjoMzenuqSURJyP38r2TEKdvo+8KVkyOetU4witsyMJCek+lfHckKxqoXPsOSi7tyk7npt0cyOEnSxVaf++tSTNEKI8JUBW2XbFPs3iYDRGWGLI5uv7dg04S72wlX8z4hIwoY/fAhfgMgS0RoGBjqBlO0VkYiaVhFahnOIkf9wBy6zSB14GlpIrx6rXyG+D6RpXc0ZDmr3VhhS6Op0LUOVOsFgQbx7ytLS+tpV+Wd2euztt2PwPm+PdlLHhaLql5LrAUnGnEVtbccoWUwMX/CVwwwfpG100pGkSKOX6YGPwURd05ncN8/t8EmYX6wQ/szbRNfbzdFJmR7hlgwCjJQ+p0rw4tUq9u/gPiPShg0RqGm+hGwJXJQUu/DYk56AWck8PjsLBTBYg4r5hJHq7/pcyJlLCyOurDngbZibh52cVxo4kuacqJjqzxVggC0z1P8ipELEQDhqFuzFjOHa8NTNcKk1VVrjBVFnxzFhGsp5gdO4CnP/Q94SwtpXNbd3+iK0GNcr0CKbOHZCSHxCnjm+N6x/+eqLI9wOwDpGWh78CszfTqVzaHjFfA9NIPmqqDl6uju1KOtTIrZQI5iDGHw=","translations":{"en":{"changelog":"### Fixed\n\n- **The checks before a push no longer commit into the repository that runs them.** `bash scripts/check.sh` tests the scripts of the end-to-end tests in throwaway Git repositories. When `GIT_DIR` was set, as Git sets it for the hook before a push in a worktree and as an agent sets it for a worktree in a container, those tests made their commits in the repository that ran them instead: `git init` rewrote its configuration, such as `core.filemode`, and its branch got a commit \"The base branch\" by `E2E <e2e@example.com>`. Now the tests clear these variables of Git before their first `git`, and `scripts/check-project.sh` runs them with `GIT_DIR` set to a repository of their own and fails if they change its commits, branches, configuration or checkout."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v1.0.0/paperless_unified_search.tar.gz","created":"2026-10-14T13:08:50.634637Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T13:08:50.709149Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"VG0cBuVePWp2Ar8cJqZP41Svx0C9t51ndYHQlhjy6rb6h2Jf8blqPqN1Ii4YguQ8DKZ9is8+xvQSktpwtCaym0aAZfiu95je44M/JNAJeP8sFCG41TM4sHQbZ1diVLfFnwLtpKvccyBe/M0mAD8x17EZsOGk+jaYRcrF4uuRkZHpad+QqWqAxfKZDn22uTBi2JEpgdH6yyLTDFrtvUxfFyIANsUvXLfwp/vuf+oc98X/pv05QE05NC0nJqEGfIgejcT8PRgm4IJihEIc59i8Ptrx2Vn8MZQ/BBYQTF+b/rSBuhgz++g5K+GLz9NLwJrAljHyqDV7k69yNVBu99UPSohb2zt3u+wCxmMzpElRXXvxRQZVdxyQILZqjECVOTX/jTi8E8VcvxCOd7MLpG0xDqTy3ZmSLAWl9VLKLZz4s4QWZDYeoXTf8gj7C3T3o/cd1CmFfyBmhP+Fl+N6WqOSNXAdf85+/qQci9T9KgqZbI5dpzsoPHpMlC9QmxeBrMWrTwwIj7mMxzFiBod3ty6ftFpUqBSSX+XpvW+kJuabPkQleud+tWBoDQ8baXZzkpaF7FRBGIiUnHgXM2kgUtuhU5cVrEnVbqygHlPtTxCfzU/i9pGTqGUJscz1+THzwyX9gAvD14kV+h4aBYq0wGnxKGstCsWIWIdODYMq40DuHdY=","translations":{"en":{"changelog":"### Added\n\n- **Search results show a preview of the document, its date in your language, its correspondent and its type.** Every Paperless result had the same icon of the app and its date as Paperless writes it, such as 2026-08-12, so documents were hard to tell apart at a glance. Now each result shows the preview of its file, or the icon of its type, as the results of *Files* do, and below its title the date in your language, such as *Aug 12, 2026* or *12.08.2026*, the correspondent and the type of the document, and the words around your term. A search that found the term only in a note, such as `notes:transfer`, shows the words of the note. The names of correspondents and types cost one request to Paperless per kind and are kept for ten minutes; the account of the API token needs the permission to view them, and without it the results show without the names. Text of a document in angle brackets, such as `<GmbH>`, now shows as `< GmbH>`, so that no part of a result can act as HTML.\n- **Set up and test the app with occ, see its health in the administration overview, and ask occ why a document doesn't show for a user.** Ansible, Docker and other scripts now connect the app without a browser: `occ paperless_unified_search:setup --url=… --token-stdin` tests the connection and saves the settings as *Test connection and save* does, and takes the API token from the standard input or an environment variable, never from the command line. `occ paperless_unified_search:test` tests the connection for monitoring, and `occ paperless_unified_search:check` also checks the archive account and counts how many Paperless documents have a file, such as 1,180 of 1,234. When a user doesn't find a document that Paperless finds, `occ paperless_unified_search:search jamie invoice --explain` names the reason for each one: its file isn't shared with jamie, it belongs to another account, or no file has its marker yet. And *Administration settings → Overview* now warns when the search shows no Paperless documents, for a token that can't be decrypted, a missing archive account or a search that keeps failing, with a link to the settings of the app.\n- **The date filter of Nextcloud's search now narrows Paperless results by document date.** Picking a span such as *Last 30 days* or a custom range in Nextcloud's search left the Paperless results out of the filtered list, under *Partial matches* and searched without the dates, so an invoice of last month could not be told from all the others. Now Paperless finds only the documents whose date lies within the span, counted in whole days in your timezone, and the results stay in the filtered list. Scripts and AI assistants that use Nextcloud's search API narrow the results the same way with `since` and `until`.\n- **Try a search in the settings shows why a Paperless document is or isn't shown to a user.** Administrators of a managed Nextcloud without a shell could not answer the most common question, \"why don't I see this document?\": the search leaves out a document without a file that the user can open, without a trace. Now *Try a search* at the end of *Administration settings → Paperless Unified Search* searches Paperless as the user you name and lists the first 20 documents with their IDs and titles, each shown or with its reason: not shared with the user, not a file of the archive account, or no file with its marker such as `[P412]`, the same answers as `occ paperless_unified_search:search --explain`. It shows the titles alone, never the content or the files of the documents, and the audit log of the app *Auditing / Logging* (`admin_audit`) records which administrator tried a search as which user, whatever the log level.\n\n### Changed\n\n- **The app asks Paperless for version 9 of its API, and needs Paperless-ngx 2.16 or newer.** So far, the app took whatever version of its API Paperless answered in by default, which a new release of Paperless raises, as Paperless-ngx 3 did, and a new version may change what a field holds, as version 9 did with the date of a document. Now every request names version 9, which Paperless-ngx 2.16 and newer and every Paperless-ngx 3 speak, so a new release of Paperless can no longer change the results unnoticed: tests against real Paperless-ngx 2.20 and 3.x check every week and with every new release of Paperless that the fields, dates and excerpts of the search stay as the app reads them. A Paperless older than 2.16 answers HTTP 406; *Test connection and save* and `occ paperless_unified_search:test` then say that Paperless is older than 2.16 and that updating Paperless-ngx fixes it.\n- **The first stable version, 1.0.0.** The app now does what it was built for: the full-text search of Paperless-ngx in the search of Nextcloud and in its smart picker, narrowed by the date filter, with a preview, the date, the correspondent and the type of each document, set up and explained with occ and with *Try a search* in the settings, and documented for administrators from the installation to the troubleshooting. From now on, a release that asks more of your server, such as a newer Nextcloud, PHP or Paperless-ngx, or that changes the occ commands of the app in a way that breaks a script, is a new major version, so that an update within 1.x never needs more than the update itself.\n\n### Fixed\n\n- **A search that is still being typed in Paperless's advanced syntax finds the documents of its words in Paperless 3.** Since 0.5.1, Paperless 3 gets such a search, such as `invoice created:[2026 to`, in its simple mode, but with the unfinished range of dates, which no document matches, so it found nothing, as tests against a real Paperless-ngx 3.3 showed. Now the simple mode gets only the plain words, such as `invoice`, and finds their documents while you finish typing the range."}},"signatureDigest":"sha512"},{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.5.1/paperless_unified_search.tar.gz","created":"2026-10-14T08:30:08.222750Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T08:30:08.382491Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"RxgZD9cHtFOSw8k3Qh7Pl+AsXofmfjCikjXiv+6r8oIgFjDFmjPzQb4PKCew5o5ud/3uHHNQ3iXbadBwAzWGhCLLRtbA6EDbWc3Ty46QQfLS3R24C10OeVkqUQchg922FNiUIzrpT4uaxvW+TQThY6wcAqBUhlcE0rsuvxQukbk2Un+01bA/1WRAg8cLHt8lpy3L+WggNXDc2UnUv1t5U8uVv9uZwMrRM08/7tEnEfARKXrzBUnUQMmhKphLVZaZN+9Gr7abTN28/WvntzMKTTf75RZ9PcsYjrnrsCC6d9AqyXs/bBBE4zb/zT9swklrko4TfNc0ZOiaUYkOlFFQhSqBjLfnAQQpQKgKx4A3/BEYritVAGXF1Yl/858T05UlrbQf3PRN+byyZ4+JrQmROao3uFijagWPcz+13gr8zavFtc1MY3Kn/YteVq8/QaEOuGogYQmWEt4e/lW+4m2bqKaCTj9qdPMQQe8D70kkRFmnDUWvcOi2ka/34t8wrN4BoH4bx+s2jkmn6i6uQithgsrrJdwRYN0muvCnVq4gqkXBj9K0y3cCx64VBiHEUqJRRi0KMrbqBkePTVeVo//PaKQWgFV2e5fsZFimTT6isTV7awUHOOHHEGgvQR+bGel6DihkvNGcZjP96jy5qOcPeyJq8LWWZOMN9FexrIkgftw=","translations":{"en":{"changelog":"### Fixed\n\n- **A search that is still being typed in Paperless's advanced syntax no longer shows as a failed search, and a Paperless that hangs no longer makes every search wait twice.** Paperless 3 refuses a query that it can't parse yet, such as `created:[2026 to` while you type the range of dates, and the search showed nothing for it while *Search problems* in the settings filled up with failed searches that were none, pushing real problems out of the list. Now such a search finds the documents of its words in the simple search of Paperless 3, and neither it nor a page past the last result shows up as a problem. A request that waited in vain for a Paperless that accepts connections but doesn't answer, as while it consumes documents or rebuilds its index, was sent a second time, so every keystroke waited 20 seconds and Paperless got every request twice; now only a request that never reached Paperless is tried again. During an outage, also one that comes and goes, *Search problems* notes a failure at most once in 30 seconds, with every problem still counted; a search term with letters such as *ä* is now left out of its messages also where they are capitals, such as *Ä*; and the requests tell Paperless and its proxies the real version of the app instead of 0.1.\n- **The test of the connection says what went wrong, in your language.** Saving the settings answered every failure with the same English sentence, \"Could not connect to Paperless. Check the URL, API token, and Nextcloud outbound connection policy.\", and logged nothing, whether Paperless refused the token, the path was wrong, the host didn't resolve, Nextcloud refused a local address or didn't trust the certificate. Now the message names the cause and what to correct, such as a refused token, a wrong address, a blocked local address or an untrusted certificate, and the log of Nextcloud has the error, without the token. Every message of the settings is now translated, and the app speaks formal German to accounts set to *Deutsch (Förmlich: Sie)*, which saw it in English so far; its description on the *Apps* page no longer addresses them informally either.\n- **The settings page shows clear, coloured feedback, keeps *Disconnect* off until something is configured, and works on phones.** In maintenance mode, as during every upgrade, or behind a proxy whose Nextcloud didn't answer, saving showed the whole HTML page of the error as its message, and a lost connection showed \"Failed to fetch\". Now each of them, and an expired session, gets one short sentence in your language. A failed first save no longer turns on *Disconnect*, which then wiped the URL you had typed, and after a save the URL field shows the URL as it was stored. Success and error messages have their colours in the light and the dark theme again, which Nextcloud's grey had covered, and an icon, so that they don't rest on colour alone. All fields are equally wide, each checkbox stands in front of its label, the problems of the search are readable cards on a phone, the icon of the section no longer turns pink when it is active, and screen readers read the hints of the token and of *Always include Paperless in global search* with their fields."}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.5.0/paperless_unified_search.tar.gz","created":"2026-10-13T15:15:00.180750Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T15:15:00.259015Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Bm7Wa3EiA6LGwjMiihOD0tvJHVA93aBL3hGJ959k4vG9JmNfaAl6rF06FyRHLsqLBGeOrMX3SL+TXLRVG1ByjGe27HgO3oGcXCzo9cpcN/C4+jPlHj4TmE0TPjcP/x01gf0SQANVs7+pJIUF/Tc/mRB2IPw9yfcecM5ImFHukbTv4D3WzQ2rhxMY/2sF6PcZYiN9UpT8q84ZSfnHTr+x5nMO/z8jd++2SXuAtQerMBZ28TCs6r0RLmuBZe/R72EWcvAL4uEq5RbaILZEdgOOOcYU1UYIa1pvyyrwJMMIhrV9KLiayfQzYqouEhHxmIk7jFm9Ydjbkn1ZSSQlmr3J40eFIocqPOORHlZFLa6JznHwmR+sf4h2tHNGVJt9D911wQieBCYw2RIHH70JTE4I2Y0Z6w3BOXEG8f4Dk+S1IERv4hzvUKlb2e/LD7veu6EK+h9jwkFlO4D6pM3CqlncviqlDWApJUc/YaAUpTsoW5jS6/v6c75H+n4sQXeue+EolQ1VxeCw4N9e60ckVgyzsCvCcXfO2cVCntexCNHq+y6koS2a6/l9ThYLZpWRThMAnJXyLGzYiZH2pQFkIJEjL4WZvfou/s89+WOc6jIgPSA6DLUf+5gdmMWYkfiaBr14d7B/odTB54CdQYFpGc/sdeBCE4fzEAfJDiL1VVj3BdM=","translations":{"en":{"changelog":"### Added\n\n- **Find a Paperless document by its text from the smart picker in Talk, Text, Deck and Mail and insert a link to it.** Type `/` in Text or Collectives, or open the smart picker in Talk, Deck or Mail, choose *Paperless documents* and search as in Nextcloud's search: the picker lists the documents whose file you can open and inserts the link to the file you pick. Everyone who can open that file sees its preview; anyone else sees only the bare link. Your term reaches Paperless only after you chose *Paperless documents* in the picker.\n- **A Paperless in your local network or in Docker works with one switch, without lowering Nextcloud's protection for other apps.** Nextcloud refuses addresses such as `192.168.1.20` or the name of a Docker service, and so far only `allow_local_remote_servers` in `config.php` helped, which lifts that protection for every app and every URL that users enter. Select *Paperless runs in my local network* in the settings, and Nextcloud reaches this Paperless, and nothing else, at such an address; without it, saving now says that this switch is missing instead of only that the connection failed. The Paperless URL may now also name a Docker service with an underscore, such as `http://paperless_ngx:8000`, or an internationalized name. If you set `allow_local_remote_servers` for Paperless, first select the switch and save, and only then remove it from `config.php`.\n\n### Fixed\n\n- **Paperless results no longer go missing in the web search when documents you can't open rank first, and *Load more results* works.** The search asked Paperless for exactly as many documents as Nextcloud wanted to show, 5 in the web search, and then left out those whose file you can't open: when the first five were all such documents, Nextcloud showed no Paperless results at all, however many further down you could open, and with only some of them it never offered *Load more results*. The search now goes on through the next pages of Paperless until the page of results is full, up to 100 documents or 3 seconds per search, and the Nextcloud apps page through the results without repeating or skipping one.\n- **Changing the Paperless server asks for the API token again.** Saving the settings with a new URL and a blank token sent the stored token to the new server, so whoever could use the session of an administrator could collect it with a server of their own, or read it on its way over plain HTTP. The stored token now goes only to the server it was saved for, with the same scheme, host and port, and never to another server: for another one, the settings ask for the token again, and the token field says so as soon as the URL changes. Another path on the same server keeps the stored token.\n- **The settings page and the search keep working when the stored token can no longer be decrypted.** After a move or a restore of Nextcloud with another secret in `config.php`, the settings page failed to open, so the token couldn't even be entered again, and every search failed. Now the page says that the token can't be decrypted and asks for it again, and until then the search shows no Paperless documents.\n- **An archive account typed in another case finds its files.** Nextcloud accepts `Archive` for the account `archive`, but the search then showed no Paperless documents, also when Paperless Sync named its account so. The settings now store the account as Nextcloud spells it, the search finds the files in either case, and the settings warn when the archive account doesn't exist.\n\n### Changed\n\n- **Searches answer faster and transfer far less data from Paperless.** Paperless sent the whole OCR text of every document it found, with its notes and permissions, often hundreds of kilobytes per document, although a result shows only its title, its date and an excerpt; the search now asks Paperless only for what a result shows. And the files of the documents of a page are now found with one search in Nextcloud instead of one per document, each of which read the names of all files of the user. A file that can't be read now leaves out only its own result instead of all of them.\n- **Saving the settings and *Disconnect* ask for the password.** As for Nextcloud's own settings of this kind, they ask for the password of the administrator when it wasn't confirmed in the last 30 minutes."}},"signatureDigest":"sha512"},{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.4.1/paperless_unified_search.tar.gz","created":"2026-10-12T15:56:25.592578Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T15:56:25.657932Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"fYpnfZ+Qh1wn5I/KUjSd6FRtQ/O86JmZn7NJraO1zc3AYmhlDCYbFdQ0jXvv1Su3lrvF7/Lhqyd/tAoYyLfcNqawWVHPaI2mqA7TCcCg64+rCGjDkoQDJBoDIFI5PXwYAEShz7POPZSk+07c2dMzd6oHCeC7/p/tcZ/mLF2kRQSHDc4I7SEBegOXMiZ5Vs+XOqHe+n8O7SzXcpwGIAX5ArrZ2o9CN7wC641mY2vSghxXcwoTErrXMPpgk+pK7mAntmC7Q8DDBDQUOM7Eip+nk6CsBwedORNsGGULjygEqFrrdnTexKUi32iIm/EfGJtnXiEh5Y4VLmnmyPPRQBEkYz+TXb+019powvm6YCYLKTj06GnYS85dxoX6EOYVPnK58ytpaeYX6VhXepgHkBo0SqmiLHsuO/G+wEwBTFl6H+gY9v2jf9ACtuyFqWQH4bhS0YfG6KxlsBYYGNUTyn9GcDuOAKwBVEtnNWklTNjZJMnO7f9CaxpU9Dggf4bGeafgmYtAwMu07V3qpig2FC2kQ6yfwCAm1Jnu6+jVL9FVRAuKtVCGtTX1ysWT1oxgUCyYfswuvn0SjixH5yUkWGy3UiavEUmrJ9kRBKoBlmp+gCQnw7A46dOwTdbJXAVC2GCOqKH6xL5DKIf4duYtOh0ZUVayx6/kZZebv4FaD1UYR2M=","translations":{"en":{"changelog":"### Fixed\n\n- **The settings stand right below those of Paperless Sync.** In the navigation of the administration settings, *Flow* came between the sections of Paperless Sync and Paperless Unified Search when both apps are installed. The section of the app now has the priority of Paperless Sync, so that both stand together."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.4.0/paperless_unified_search.tar.gz","created":"2026-10-09T03:48:28.850910Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T03:48:28.920363Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"CnQ0bNqoRxgXJmoIowi+WuZkHG6njE9AHwj/Sgtk4llxKiHH+07jitZAKGDv/aZOG35xcfobcguirxTIiqZ2knRdTWegjnZGpjRxSc7GhiClj0GWE2EPcd6ptDIAPC8aXiC5FL9YRA5o9i0Yukj0pmQmHoATg/KXif4/TwB0lqCkag/fS5XVR+JqPPNvCd/wmf7zm+4dlPNpgLz7joXyCQKh/bETVaOBxmQQL1OEKx2ZC173ZnbdJiza4Y/lq6Hy1B6HAFd/ENByduemnfEwuJPp1DJC3lg7P3hpwUG4TPGU4UHufTyKiG0cb7CWB66imKRzYFY0ogpUoXRC7Jks6m+F5m/T/yuvTbi9km122DOtbavXfd9WY1pLRaWzPxDx078T6LBw7sP481k84E3Ps9JIcD8G80aU8XcYPt9EcaVybCdFSgPlWLJ1Fk8coQ/tObMvCK1xu1XJo3a+U7kom8Nryw+DUfxOoz0rnrY/kPujB0P8z1PCkGQMj4mvU9zVxWZ6LQdXJ+8b3DVuHLwrSw1jlwyMtfCoxU1pgqz/45UJpPShHNMwUSR36yNhEqtr58Y7P08synGHPdot/8ASQqI0T2MdHj9+I5yoJas0dR1LUyZRkDklPwFRTI5P/MCJIB4KBzMb4SWUa0eP5lx363YFenzlGjMlmrEc9VaHfdA=","translations":{"en":{"changelog":"### Added\n\n- **The settings keep a history of the problems of the search.** Under *Search problems*, the administration settings now count the failed searches and the requests to Paperless that only their second try answered, and list the latest 20 of them, newest first, with the time, the step, the error and how long it took, along with the last failed search and since when searches work again. A request that its second try saves no longer goes unnoticed, so problems of the connection show before searches fail. The history leaves out the API token, the search term and the query of every URL.\n\n### Changed\n\n- **Saving the settings keeps the history.** Only *Disconnect* and the new button *Clear history* forget it. The history replaces the last failed search of version 0.3.0."}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.3.0/paperless_unified_search.tar.gz","created":"2026-10-08T20:19:01.150042Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T20:19:01.201049Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"pxYv9cc3RPmNbs8Gd3ugqVa7M3lnJ2jN5oMZyjciwRQIOoNaAHyX53bqEUvlx0uLihCVl5FKniQlx5QFVRf6vpvZ8YGSS888pa7UhH58HLcjs0d5hEp+3g+q69NcngLGE60e+pIQm7YTHLk34KHc4aBZXndWsDqlOAkoIqD+JVyO/ocfqCOM38bO2juHj+T/IdaXHTkNUojtcdhp6o0NS9EAYWeXhIVBeVWWk6fv9uQ4xXxBjd6kfoBJOh7Ky7RNIZ8ZonM80E+VO8u/MeCZq9WCvGf39IFSR4N3n0xqlTaLMBmVKKbEdsI/NoEdpbhsrwUFVuSKvmahreUNe4Z4rB78OcAJS0RvSsjkXdJ3bkh7qC1MrVqNil1vWr5BGs2LNLPMCcqeY1YqdaSvU+I82porkdNqBDlrKnmYNk8T3U3YB1Qti9KQu8lLGh8VxdWblP+YJowCO5W0BM72X8b4BzgZEaYGRvirZXfaxbiR8OPMTxLTPRgmaCiEpFB8ik3UcdiuPQWIFpNF9HS4P0FM+/YUWIUyrjfA90C1IZp2Yv0O3bqW+NUnW9vPBf11UKI6rGH/TQFTjPhSOZUVCIbOg1+tC+AgxLdnbeeIDV9stptdSeCk0C7Cp4cTbX6oajSi+E5ThlV9JZSns293Hf9szvg4VDiEREcrqj/t+IWlApQ=","translations":{"en":{"changelog":"### Added\n\n- **The settings show the last failed search.** A failed search shows the users no Paperless documents and no error, and some hosters of managed Nextcloud don't let administrators read the log of Nextcloud. The administration settings now show when the last search failed, whether it failed asking Paperless or looking for the files in Nextcloud, with the kind of error, its message and how long it took, and since when searches work again. The message leaves out the API token, the search term and the query of every URL. Saving the settings and *Disconnect* forget it.\n\n### Fixed\n\n- **A request to Paperless without an answer gets a second try.** When a request to Paperless gets no answer at all, because the name of its host doesn't resolve or the connection fails or times out, the app sends it once more before the search gives up. Such failures often pass within a moment. An answer of Paperless, whatever its status, gets no second try."}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.2.1/paperless_unified_search.tar.gz","created":"2026-10-08T17:53:18.840200Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T17:53:18.898115Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"WeI2aHlXD48t+cbvHX4707CGBTQHsf2TgslgqcRjfVZyNQAP5sJDjW6zVx4kKgLZCRDLIih/Y2zkcCvwT3hNiWih8MLKAAVUBo9+TMSOEiTTLpqWEOAZfvX38aktp1aTdcs77iYK3a0JYn59y7pvwSyTq5CxfvJ2Vaw2znspoI+gkQcdkohpiAkHApLclTwhIpSm8g1/OVk2GqwGuxWhMe41h6ekjvLkw5Nmxn8CPosgaure29qSGSvW8vpi6o7l2h524hEYShnWD4Zxl6+mzk5lmmcP1/3i4fW4r3BEpw8UEwzFXUffih4BsFUO7AHBtD/HnBUGT69d3x9xkDzERhnEt8BapUem2DE2kicobMWS9X/JEvYe+ncGpAPlOtwJfEQBgVW7y4kr3Qh0HSAlxBSaohLMlvVMFKX6f16S9hBz9oHugNTCCeOTDqk6RimHhsWwHwatSF50q+GykKTTsOjq8dPxVIzPwzq3zioT5mSNwImu8tvslCHCRTUE/4cgEt2PKRAY4dQNffgrPXNaN5jS9IXMkSSUqALSt2rNUds/i6dST+RCAEV6rU4bfW8yz3rXJLXZsTZsx32eAZuL9itbXVACGcpEEjQXvaaeduRNaE42Dggy0yF2/cb0P2YbDoW1/GsIGSIL+HTVa9buNzQKN1MTSgDZm/Jae7kAndA=","translations":{"en":{"changelog":"### Fixed\n\n- **The icon of the app shows its magnifier in the dark theme too.** Next to every Paperless result and in the menu of the administration settings, the dark magnifier of the icon disappeared on a dark background, so that only a white dot remained. A white edge now keeps it visible in either theme."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.2.0/paperless_unified_search.tar.gz","created":"2026-10-08T06:41:31.333315Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T06:41:31.399510Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"EJ8+UXKWFPfxTA3kr0htcapQcItMQ0SoIDLCdhJjrWfo8ILs/ZrCmbA3ucMhpL5k+QhX2J1x+4r9Nm6zAKID2BPrCahkDCtwXgNsm4SA0bD0qMj9vO7N8Q1t2ywqStGl+w+sVFNRWLt2HX6YNopf78XSm8/JhniT6aHsK+AOIn7j2aqVtowfZIm6Pcb31WKCKOgFlGVZJZvQEbflLx3E3pUtdG/KET7ifjCW5BhPsDwiYPYbDWf8wKZN0xBDTfYD2OyhJsy+ycaZjmiBZEy2CWwJux8WI1Qwe+7wfgqozZg67aOLW3UbhFhMhDIiF9WrqmWZ8x4AiuAnV8cfNLYNmMBpF2QI+DmFvstb1myj751wvGPR1vm6ZJ0c7556tcXzaZumuUeBxzSaycu9N4zlwYezAa9G+WTZKx6FLm1n5VWNmxYAr3zRqiACs+Nj0OvlUQ31+SuhyG1Xhvf+l7zgE3voCQjdL0XCoHamMny2vVkZz+ONuYYgWXYT8V6OTCVBf5jVkHLzdHDmaROGmRO8xFtYNLxDigYVteequJBiMxSUGtAohtrZlSp/CHVhbJ7m0mHlMzJU6MgAZ/A5uckki1pTGHT8Xwe6Qj1s3mxyOKTGuIq0CE/OIVyVeor8brvY5p/QWoDD//w8VJYo2/XGj9Qv0oIp231+I84trtcmn0o=","translations":{"en":{"changelog":"### Changed\n\n- **The settings have a section of their own.** The administration settings now list *Paperless Unified Search* as a section of its own with the app's icon, as Paperless Sync does, instead of placing the form under *Additional settings*."}},"signatureDigest":"sha512"},{"version":"0.1.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.9/paperless_unified_search.tar.gz","created":"2026-10-05T02:27:45.607015Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T02:27:45.679042Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"GHkPBMIrbS85y1lKdwP+aBBZzFZi0kitgc/dcC7FxiOrGb5pwzFVny6KBHp50LNCzl2w6/HzSGLv6X6J6md/dOPE9Ha8npUXdnm0GvY3Zc/8CFSYPPmp6j5yqpJUPY8werbtC6VdcbNwFZTOP56zoh/a/gsLw/NPf9Aa7tJBvjtaBvZssm8fE85kvH/UnIXtFaIQY/4KjgEGhHUuoBxQVim2sgU4Wg1cu5Tvhcm7uHpwohVWHRgsYFW4sr74ik+86XWVca1bO+ZjKb1KA3hWDxX+4CBStQnYlYEZMsrJk88LeZ1fzpdkmjQCecW9qfwrsFZ1gB6hqAhrYOA5neh1Fy4cS4bgxx3Az1VqMvA+FckVRHxI7At6jDwSYC7BTs0t6bSkzrYR5XoO9QAQxoSlyxGlfkZ2QQY0g5m/34gI06P3yREf18Z0r0CrzU3qNSzesivLQwSNW0zt0EaidvFDqc6U3CG01PK2BWAV0KkVclSOOFRFhoi+yR0MgRlqjFWRXdEXwCWQi4JVqfpGFAkN6hTBWJvv7FnoxvbbaefnoeiRhM9BiP+aTKHplL2QZK/U5h1vjECLEms33JXh8BTxKiXsvuyKQBYqW2R3qR7m+PskItwP/yDOGU7RNsFjAXOrcSoQ19tIs8g4CcI+gNHVnPArH5TwApB3V4T0ZM9dUhE=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at d04c960ee917418d1b90d73a7d9a80409a410f57 -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): bump vimeo/psalm from 6.18.1 to 6.19.1 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/31\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.8...v0.1.9"}},"signatureDigest":"sha512"},{"version":"0.1.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.8/paperless_unified_search.tar.gz","created":"2026-09-28T06:55:44.802779Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T06:55:44.851786Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"AOZtUrkKgs9jLHImVpWvnkqhNAIllbKOMJ9IMjPeleLtH02zHAV4ItdSWW0DWOpONWDC2qOHN/3o0CHNHYb3l9OwuxCpHqNdBXN0IHdKxmTrwuDnJTGPD/KYP/mAIDW3+ZnKQSpfwCUqJlXb7BNhIQ6ocs1DZlsh6MU07nMleNqlXrQYT/9qmB2kdFN3nxOr85Gl+96ZMPv9ijLzrP1wPuNa6nGX/Hj4AvOSRqVqPbxvdjITwdM0OtOHk2h5C13UtLMdXpbkGN2BQTmmOUnYIX67cAZPBwJngU//1FGkxzTD0pT1P5KL2tEZvp42UmuxaCv3lIKh/DSCb8giOImub0GQcHkB5/dbu/Ghl03rUFb8/zdea8HB60F/Pq8kDa5Izh9n8KtjHGSyRBUXCI+sww7xBIdNnR8e4fJusNTPM/YnSg2XCQzMxMB8Mw68QVOCnhv+tMQWC6uYdhVsWEyNE6n0MHUw+v8vEJnWpWdHZObFDi8MtnZK8/enL4HQA3WmR00rsza7a9DDylI3XXuqI1kd9FdA8aj0AvZ+RQRCvyaedpeZtjmH6LBbEcUvDDZdfENHv5nleUGBJLg6e+DpOPY/M4Jiv3fEZLmoH5hKFlewowGkxAHKJv/gl5LociwMyUxVRaBg9qrlZ1IfR0NQBcbLHxC4AX9N8ksVPQBNk6k=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 998e8c0adf05b310ff805ca4b7dcdbf2f1f28164 -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): bump vimeo/psalm from 6.17.2 to 6.18.1 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/26\n* chore(deps): bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/27\n* chore(deps): bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/29\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.7...v0.1.8"}},"signatureDigest":"sha512"},{"version":"0.1.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.7/paperless_unified_search.tar.gz","created":"2026-09-21T05:04:44.031787Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T05:04:44.117944Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"JkNDL7ujp/aWOk3lfV8zvKP3t/9wxbb5U4lsGG5O6KsIT0qY/GNzuvLLAg4l1gMwZT4C0wk739uMEutNokXJ+/aCoLbVLhTSFyIxgjr6RhP0Txz+oLBuSGcLzBXCxTyqWUZ5cZmNkUrf6AaOAFQp8XY1vvRp+3pCTP49vi6FAnXQdc7uZ4wp0JLH18haohrBu6/ioa66JRZf7DLoV67g+yOCwZaIskNYYaid6DwIPPqe0w8hnDbzFxX4m4niJGCU3e3D3d42fi2KSxxBUHxMPaEgFxx/j/Y4yeJkEU2wcgJM0XlPDm45J8+hgSElHdQFHjqR1CXlcfBISdfm4nvULBDnT5fvrlYKnwiAlqywEcxRa3ubGCVXtg8uW71eeSvvCZVHW7scWecyJmH9J0NDDaMxAi5RyByh7kTc41yK5RM+gUAm6gWddWMXIyZU4q0S0uTtOh4RNaoWXJhJDJGX+caf4qxCCFDtTLYHBIqdXLA/FLoigHNCMwTZoOlco9/rFChLWkAMOue/0n9Ikch7p0htmMFKDDw8EEPWNeO0qxWib8s/1pU0hDlYRSxE1seJ3OCmUxRnfCr17raMPTGOGyGvgBSRpx4mlwLNnwePSei73ivtr1kmvU56ZcKhRE5nbxUE6ujs7vUTCdctPYwspvul95tdrJ6BljWou3gKJBc=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 11ffe7679b6bd5fb6374c1b4ecbc3a72fe53a98b -->\n\n### What's Changed\n### Dependencies\n* chore(deps-dev): bump vimeo/psalm from 6.17.0 to 6.17.2 in the composer-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/22\n* chore(deps): bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/23\n### Other changes\n* ci: pin Dependabot auto-merge to the inspected commit by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-unified-search/pull/21\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.6...v0.1.7"}},"signatureDigest":"sha512"},{"version":"0.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.6/paperless_unified_search.tar.gz","created":"2026-09-19T20:19:47.423817Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T20:19:48.422380Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"ghWJhONZtYcwEMd4TuL2f2/wjEccYhfs5UdeFfwUOFM/UDEpqqhEpdsJ53kKzWjENsQuRYs/UMK2rdfGFQ9IwC50jPbtDhCtScmDCZtrVNk8jtJ6Re/y2QRPU3KuMwnswjFQAiFOvoYhxuGPk1oQLIg385PsQ6b7ATkHSO/UY4QiPqQF4/P6YfLEdAAwx7BvwIpr3z6hO9stjCkkLcAXPhxk2zcbUGacysB1ESOJAni5gS7WbCTbEOHX2NxlIdFnhUZgyYhGz+gKI+qxdpBZRFnP54RxWubsXkqy+FvaEaE+gUi5eMUXnLqjJJCQUnU2FPu22zkCHUua4YLb4NFffqaFv2LAR1F6nDtPfomUz2ZSyYLb0R4nO4/+ub1ipVGRgAJvUI6/8BFMHba51qb/qoQ8bv/OzHdkUFzMKGd6+nHaO7BUvuxdGpZQdjQNR6zgpVPFt+VpKJrsX/WAaAJ3aDjSvZNSRcbg7eZYc+ELltFZMninVkerJ1Q5YKkaons1fmmePf0OcmTxC7OgMGQSCrevEj6krWaWcoByiI91LQYqPd5chfCKcF8RbzS+Z+lycfXo6CmmpirIQjWG1QCUn6ROrE/V+X7GoA3DYn6varKWVEE54fdKyqMoQvAKcR6/TGo40+6E537LJ44Kjcg8IpbunWIvKZynD4CM7xPPa0o=","translations":{"en":{"changelog":"- Publish checked, signed Nextcloud maintenance releases automatically after merged Dependabot updates.\n- Generate categorized release notes, with an optional maintainer introduction for manual releases.\n- Require successful PR and main checks on the exact release commit, without cancelling other CI runs.\n- Resume interrupted GitHub and App Store publication without duplicate versions or replacing public assets.\n\n<!-- Release notes generated using configuration in .github/release.yml at 257c153dbcdd7d8b843010ff14a7375bf88a2367 -->\n\n### What's Changed\n### Dependencies\n* chore(deps): bump anchore/sbom-action from 0.24.0 to 0.24.2 in the actions-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/12\n* chore(deps): bump nextcloud from 33.0.8-apache to 33.0.8-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/13\n* chore(deps): bump nextcloud from 33.0.8-apache to 33.0.8-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/15\n* chore(deps-dev): bump the composer-routine group with 2 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/16\n* chore(deps): bump the actions-routine group with 3 updates by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/17\n* chore(deps): bump nextcloud from 33.0.8-apache to 33.0.9-apache in /tests/e2e in the containers-routine group by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/18\n* chore(deps): bump python from 3.14-alpine to 3.14-alpine in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/14\n### Other changes\n* fix: authenticate release PRs with GitHub App by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-unified-search/pull/11\n* ci: automate protected dependency releases and recover publication by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-unified-search/pull/19\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.5...v0.1.6"}},"signatureDigest":"sha512"},{"version":"0.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.5/paperless_unified_search.tar.gz","created":"2026-08-27T14:33:57.856578Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-27T14:33:57.931500Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"NQgG3q/58G0hi9tzcX7/tzbIjrwnDJa9bi24gKEHgG6RjqB7kJYakgogwO7wFtlDxPUtmKyYbVtwOaqCsoTDhSh/DKZ9S8k2pFTZrQaApP0glXJWC5lB3t2j96M/jZceM1cxV0EbbmvxSvg4H5VxtRYh2ACgkWwFpWp6l8Fv32ipVKQ1aXzn5OzmZ9HWUneib9N+zxopzHdmOwI9N8qQFqX+zADFMkpRl5wJA/nOivwAcDDQxqSH+izw6Q2/5KmOqHvstT0J56CrXqg63Sia4k+gjDBrxkcKd7wUvrPXTCvDObi/7vdGQjrvqAKT+jJGIZ5fnCmVs+jcSCDGWtRitMY6u3PAJnEJTrYoycSCHxXNzrnflogeIo1p4M4DAxxD5Epcp1RuO754x7CktXwkqOmJyWl5lIEBkld0lAMME2z3PcJe11dGMdMsJECZvcjQzHo6gNP+XMFk7yN0jwGwrhbMI9xWqWJIg8Pl1pCcm8zT2wGBBOdT6EIamPulyIwtUgaFoFq2G0ci/VpVhIw6g4Dp6T21wWMF4rsXreS9qbXy5GkUejZZaElNithYjWTOHDkAzpUvb6pxljHxQg6SJNun+RaTQBa39eJprzX2tf1Xyx4j+3QkUSvSOJU99wg6XbRZN09fWR5SEUfNN/NO3YTElIj3f6x7fKyqSWu9MnQ=","translations":{"en":{"changelog":"- Protect `main` behind required CI, E2E, secret-scan, linear-history, and pull-request rules, including release version commits.\n- Add weekly grouped Dependabot updates with protected automatic squash merges for patch and minor changes while keeping major updates and releases manual.\n- Add CodeQL analysis and continuous SPDX SBOM generation.\n- Publish detached signatures, SBOMs, and public Sigstore provenance with releases.\n- Test Nextcloud 33 and 34 in parallel and document project governance, conduct, and support."}},"signatureDigest":"sha512"},{"version":"0.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.4/paperless_unified_search.tar.gz","created":"2026-08-26T22:15:20.877269Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T22:15:20.959220Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"hHZo1nceD+RYfayOjqFmKzFwwIikKkYyM+/kc/bFMUTTyg6gE55ykO+XWoVcA6czr80/132e0ngLnHwrWJ3kQHiTFCPO2ucPeUayO5r3RweWxhyYz6E4TmEsv/Bcz7kKMW+YGEMmMdycpuAI+G9BXKUst2ymDSd0fLfWE3jLKCxkGbdN7SaxePWbsq7OC39qgaRLE2o8IfkvrxloXlAX+Z1CYJeenchxTQGRG02ETVcZC2LV9tGX504C6ugWTU1Aw4b304d2R/44BwDfW5VaRRjpafHlZ+NRfWR0ZgxiMImsAPCXYo06PYhwUKD2XNL8XYpAiCnPltvrRUsv/x0EeCNnOQloQrGs2tMB+F5snmqOKdQogAWVDgY6mI00wSu59bIIBC38lhSNk7T5MmCLm6+pkwdcFiw7azPPxuhtdZqw2g4oJSDLupZbXLTGAAYQaUIzu4R5Nr5GmYjEWO1YT8vIHzirBhEv9+S0AqpHc9UYza0b1NMSdoj7BMmVtLdUHJj/kZhSKkWJx6l9qkR883cz1l9cHokLwOlLnFNQtlPGCIssPXq7zSC0cD1+EiGoIzdADlACn5NzVCS+p2vKB0PrjVnvIqQ/yHK+wP+fr2m44kITXXNAhM3YU99uIB2mOumRdnVL/OMUvi5tOFzFLY/d6IBORQN4VzHoXRviZl4=","translations":{"en":{"changelog":"- Automate semantic version selection, consistency checks, signing, tagging, and publishing in a single release workflow.\n- Build release archives from committed version metadata before atomically publishing the commit and tag.\n- Pin GitHub Actions to current immutable Node 24-compatible revisions.\n- Add reproducible Docker end-to-end coverage for the real Nextcloud search API, access filtering, trusted-service mode, and browser, iOS, and Android response contracts.\n- Verify translation catalogs and production-package boundaries automatically in CI and during releases.\n- Document mobile compatibility checks, contribution requirements, and the security support policy.\n- Recommend the companion Paperless Sync app for native structured document synchronization."}},"signatureDigest":"sha512"},{"version":"0.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.3/paperless_unified_search.tar.gz","created":"2026-08-26T10:40:59.648227Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T10:40:59.729908Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"RVhOA/9k/0/wXB3RoveFHJof4oHMyq1xqdwoefVw53QUV+3Cdf3BvvlpXdfYDTyjZge963ynLG5DoZR66khN7S1P4aJ2hcjwIgFZofeAPRFtkt2yYaTyxGwHRY/0EmD2z31mRTvtxl9r4UmSQUTRQro0I29DCp+kQswEBdiqqpEmrz75fkUqPQNTE3OwawCXOesfXg2qEGBB8UA/nBrWcWLErANkguYXnCRpIAhnxpmRi04sApcGSmASRhg74c8HxD7Iux8Kp/BPDJ3Kqys2eWL5remYunjiyZjUPeWD37fOuOYG1MVA0i1iW6TZoyBucr0vcQs2jTZJpf+gHl9eQS2U23cuSaF5uPd6eJX7fpHSUruwx9/XTWTZ2QEFg4Nmq1Dm1Xxop35HQacwy3NnXTWnzf4F0GDo1VVgCEd8VdYwEp0HHlYXUhu7n6aG78efQjhLNvDacQDt8tltyl80416dMEmqAPPkXEJ2A/teooI4Mxue1ZX3Ltd/PPssPi4ewR4iC8YfHNGDnYDrF4IF0Iy1RlhHi9a7jDK7ePo0eivZQPwBIURcIdDMKLunaL4dklxFI2ugjF3P6RcKYZWJN/SwTPWa1ktIlP/X6oVSkLilZXd0d/VXrUerpvRlDL0sfkH24Y0wvvTipkp2fZMifZD0jCTI2xtmZPB0Vsir2uI=","translations":{"en":{"changelog":"- Open search results inside the official Nextcloud iOS and Android apps.\n- Add native Nextcloud file metadata for Android and an iOS deep link while preserving the web viewer route for browsers.\n- Add regression coverage for browser, iOS, and Android result links."}},"signatureDigest":"sha512"},{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.2/paperless_unified_search.tar.gz","created":"2026-08-26T07:49:25.856025Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T07:49:25.942091Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"owk65dff8d1PoBnnVRqLY1b9zFvIchuaENYUkAJjGIfcioenBE1B0hPZ602DcOGvvPwSXI3eUxlYsZo2cNcQ+UZIUG8mwDSYjNXW0NL1q9oFQgIXRTQFqklkT4Vdx3LMFa3SqWK+P2T7een3POLhfxBgLmJqI0CS4DTydsIQHnKZus+xSUTFKInfwNwU+YnIKgkZpxXZMdawcjdY9sp+dYgbgNI2mErEd5NTNQr+NTn5A9ZkfxKhYQ5jNszu+7DcqIJdy+jU0spiuoVkcBtvoefuQBAFVNMYAOD59lipmeEVrpmKtEHi1QfiGhwsIu48m03SjoIrvvdy1s/1Eaw34UnIk5Q2zRnAQuwPyXX2DGsHcO6ohzI+9fkT5ZXqQUx7BQKylZ/x610sh1SlBs0dO9nNHEX2v756z5E3eV7Snf5vG0GR/V6cGRSrcGLlOyBDyYbue6hwGGI2nBDp9OVRETF3jyBiWP2DhR3rjmLfRhY0LzxqwDw2oO6NkKvyGxqVEFtQohwq9sA5E6YSaRGQg/0d/vc0++xQAD3KlSP79eJxoAZEvkmV8jvnp63uGbGLJrpQN3mnujU/Uq+QhDLthcrsexsZCBbxVXnFM1UbSICYMI6+w5q0VY/Z3BHVcoTWlRv9Q5U5tP3PWRn3YxT3cqncgW1xgzX1jJa27tpzPHQ=","translations":{"en":{"changelog":"- Add professional English and German App Store descriptions.\n- Add real Nextcloud screenshots for unified search, the PDF viewer, and administration settings."}},"signatureDigest":"sha512"},{"version":"0.1.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.12/paperless_unified_search.tar.gz","created":"2026-10-08T06:25:40.177736Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T06:25:40.243084Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"KjO+y3uU4MKkG/r3srHZcEyxqJn25eflZrP4VLJ8V5zgG6zu+f/ogi++xpdD1F+323G6VqPhYgcFODJT4+qvdY3aDP7b7SrtcxzFd3lpagq4IOeeUgnPKx3T7uwRJ3CPMYMF97lwng3R4VwQhJi/mYh4upOCZuasSW25Nxf3CDy/hDv7otp7eGtMmbzkWm5NN1aY608A1OlyaxLk6ahZ72V/Yeg7u7ngzc/qcZQfgzTent8Y3oKm8sMQ5dYJax07gMCx7c/VVus1+bMJt61pt8WXnYC4HxVyU28wwCAecfKC46qiTdfWs3BBoOeRnhxsd8Z17iCCsPVLhgWOG4S5vaFP8TNMtWH1H+dEqzHQev72cO6Q7y0P0P0lSO4EzJLRMYNFPQnejl9TU5yanyIQ269EvZEQuOXI8i7gINyH3/CjGOfPPoAtHS8y9su7LnpuVV1lt5wXoe5A/Iq6mNHuFtio8SNL8dO3kgrb01RlkFlXZikiIQDF2eOUJ7W9VYQJkg+o4MISrexUdq44zHq8Ftf2VbDTp9thOqxlpLTGQcYuMhvYYW5uFjSr0ESgPhhmB6r7CQvxDENVyvSilgPdnhrdwj8oA7rPne6DqpjMjYvP8Cw2hrN6fERUgjdEPZeQ9iXj2ELgADaCDR1Hqhv8hz+hp6sv9eXVxmlGvPUdav4=","translations":{"en":{"changelog":"### Fixed\n\n- **Only the files of the archive account count.** A search result now comes only from a file that belongs to the archive account, the Nextcloud account that owns the synchronized files: the user sees a document when that account shares its file with them. A file that only carries a marker such as `[P123]` in its name no longer counts. With Paperless Sync installed, its account is the archive account; otherwise enter it under *Archive account* in the settings. Without an archive account, the search shows no Paperless documents."}},"signatureDigest":"sha512"},{"version":"0.1.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.11/paperless_unified_search.tar.gz","created":"2026-10-07T11:07:45.736392Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T11:07:45.806415Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"Z56fhCgqrCitd2a+3RzTJNH9rUFZPPC8mVj2lLiLTBlF7UpZ6pi3v5SORWwuULVme5xZQ2WnszmQV8DiTEvVlsf6zYA6jIdC9B4wCzECr52Ky/e5AIhiTAKmT8cVjmoxuAJSwOGsLrORaQTvBHZxJf11PamILGivLMe8gVrAoj+lQpZ6prFMWmU0vqzGgKS2W1wLX985n/T0E0J/ZU1lFPXHNeaBU0QO2dAzRbqc1o8NhzZ2/oksFFuu6uYwGGwVBjPb80afft9u7wC2Hvq6Fa48ybF0VCnQHInSYdEN6VHGELCtaeYHz05NXjwlq++T976/zu2u4UTudTG4wUF+qQnKUf6AToh8IH7H2OSmMIlYQTXKugdySNSxuVKZ5JbNhykaXpxranMASCHNsWddU05kNytZhHq3RW8Ur8Q3RqlDG/cq/I7dXD9pbLdgQ/X2D9LvItfFd3kQk3bW9/T9dhwCYa4sfKh/5RslGPYKhbcjVNnf1bA7W2HFolNQG7tfJDfJsEAEaRpev6p2Jo/22PI0P+NEeHait+cDsC4iKYJYTWLHqIyk85wbpzhiowcgQLy4E6Tkbts2PJxsIooN2NxMHMNsKufhFXsCpJgWAV0Js6YUf6K53xd75RWiAJhaaVvXDR/tx62mvr+apvJsqy+k0lVn1Zdlg1JueOjB/J4=","translations":{"en":{"changelog":"### Fixed\n\n- Saving and resetting the administration settings no longer fails with empty request URLs when Nextcloud renders the settings page before it has loaded the app ([#25](https://github.com/Dennis-Otto/paperless-unified-search/issues/25)). The app now declares its routes as attributes on the controller, which Nextcloud 29 and later register for every enabled app.\n\n<!-- Release notes generated using configuration in .github/release.yml at 0d469eb2c8805b7ebdae19c80f23397ba17dfec7 -->\n\n### What's Changed\n### Dependencies\n* chore(deps): bump anchore/sbom-action from 0.24.2 to 0.24.3 in the actions-routine group across 1 directory by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/33\n### Fixes\n* fix: register the settings routes as attributes by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-unified-search/pull/37\n### Other changes\n* ci: look after issues with the issue assistant by @Dennis-Otto in https://github.com/Dennis-Otto/paperless-unified-search/pull/36\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.10...v0.1.11"}},"signatureDigest":"sha512"},{"version":"0.1.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.10/paperless_unified_search.tar.gz","created":"2026-10-05T09:40:09.889517Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T09:40:09.936300Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"UYferk9wByfNlWpePbcIDxrywBbHaYK44Xv7ZDC4WKYyttCX6s2j04izad3T3kDXYM5bGumKbTwVoBHp6yC8uDfCbAJ5RPXH6MQcw5cVNE5z9KI7elgl6HdmTUiivH2xkazNMFFqVTHp6xFBVfiYI7Rxj6fKVSoArtoGErDwwotwfUN+Sy+VN+yC0s//OKwWxrltsE6u+DHf2syszImHnq6WZkQGD7kKB10wQnqQcETjaL5jAopRLLbTakwmBAFQZLcolHJvCmbGGjXaZO7+gOYP9QTgkLO2/sFHf9qwLYA9nhKSe5+qudqNYLsXDOV0G8OVWX/gpvNSVdQMpkvhEYeedFe8c+zlPJHiN7NysS6/G3wbrwoAyOAYLpjTGjB/LwCCtiwAgjy2/hQ1beffNscdrOtocVFdeTgr/zPok/0WexERYLZ/FM44eFYu9Rq6zBkJxpXlFCh+M36L6nzxW0wickIY+Er891/h1T3hbBLxHVaiFGllYBmN4zRljt2ZTq+Dt7lDOwsxSUVKyqUHV3uQlKSBSLmcnt2iPmiIs29HVABztK7AU8qQIy5wVROMZl36GnwInsIqPll8WdV2JfhSn8jISWlEUQZRXuGUxG8sg2ft9m+qRSv767tnf1WvggesiBi2z2vKcOT7JENEQYhskRQOsxy7bP8zQfb5NvE=","translations":{"en":{"changelog":"<!-- Release notes generated using configuration in .github/release.yml at 7d763d80d0faaad37519aa317a76079479fa91d3 -->\n\n### What's Changed\n### Dependencies\n* chore(deps): bump nextcloud from 33.0.9-apache to 33.0.9-apache in /tests/e2e by @dependabot[bot] in https://github.com/Dennis-Otto/paperless-unified-search/pull/34\n\n\n**Full Changelog**: https://github.com/Dennis-Otto/paperless-unified-search/compare/v0.1.9...v0.1.10"}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.1/paperless_unified_search.tar.gz","created":"2026-08-26T04:23:17.068423Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T04:23:17.159507Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"lErulvenCy+rbz9ky6oSwGCfPEkACJs9t2ls+iUHT3XSIpcMA8w5en0zqCicJQm0Y2b0y7feMLv188qbauwfiopBLBioaA1xIx8QqWQNhtCAcnIuopvzREebxADaX5o193RLkLysQADkQBUfknwMtehAjYhCB/xYnOdxUYIvRdpAsNDEVlbNTwJQlhP9BsD9ALmukKD2T2vkb8afXCi7uucXso4vfVHhhvyUAeLvlBZ8SZga4Hp1Q4oJVqk9YbW8uaDuP3Y4fLzKj8Z3nhknR6X0XlfotjmE4c/2D/xjxQSIVDPbar+eXM7KZrtTSx35mysAMXiG5l3S2bSK3tqr9QUhVBSnI83JcyhpJKPHeu6T2Db+Wh1r1UqBlRAIysMZXGcNCDqW0CqAgR4kKATeSQlqOtLLrfYTqjAKKyefXatE8BT8sm8Koh29pXFbvzRumNW3jC4Q+f2FQETtLYPkhk5q6Wv4ob+Mf3EbIlpVB/1Z2D32v/ut4vgk0mbGo+ZWxRYHDJtByvp/qzDdoHyNoXwDPSq0e+IzNOKTzlrwt0Ifheg6jpSmviLFpaaSG5TSBaaIfw4GFPecsexzZeJ1xm3HSYtAvo483PUwLmCjCpZTIhZWnyG9B9d4miW76R9jqOA66YegBnCoCwZ4ipcFebqUYwALHnkCtdCPSbl4RpI=","translations":{"en":{"changelog":"- Add an explicit administrator opt-in to include the trusted Paperless server in every global search without requiring the connected-services switch.\n- Keep trusted-service mode disabled by default and document that it applies to every Nextcloud user."}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Dennis-Otto/paperless-unified-search/releases/download/v0.1.0/paperless_unified_search.tar.gz","created":"2026-08-25T18:37:15.425555Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-25T18:37:15.516346Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"i6S4OuHHMtk1uzVE5E4Ut4xD5QldLHuetEgkPwLboBfSDb1kByy4Mf8wRNAhBPj+T/FCiDSQisyAFulmGqHVfO0pmZ1ukfgCmq44o36Q7cdFFMD7QPmA0KWelZhVXdwgE35QSITu8hn6MBWfy9fGupDOp2fo9MRCU0lI9aGjH4K/ZNTpGicNr3T6Ed8qxuHFmGeQ76Qq/COr0lBNBaUvMNWw+cRZk8vMkpoxXi9Ypv+L1uvIyULG1jtzvB7bBc/2kN4MyvwsmLA4VZb7HjxnyeT+9Put8IyE/h3mxlvGgxgZuRM71/bscq6eVcgBWTygeNuPq4PzUGNwnf9ibyvjIRanANtOzn129GgC+k+Dw3BO/RHecN2tn3+i5UIpa35K3yHlNQ7wRuK2/vjN3qdKEjAXprxCQM2RS6oIi6ZN6HHTZtAZBToB4PopQ9H0Fe8s9xmiISzLhwBit13CeKXiamAblubX1rIuRoO9nZw28RX0wj4KK9k8rWVS0x5mDI0D5Av1cKFeQKC7Pfa2X6Hzq6KHg9Ir03gzjtc3qpf9Occ4kxTX28cp3nphVLMkK9Oa41SbsL692Jrh8Iv+tdlfuCKUh87rrDu9kIMpMsvHj9g6L3qgSbfhQ3jOHJQLKVKW01A9GGvKz1WxWFdewVc52GHSfDZOz8VkrIMJjILeey0=","translations":{"en":{"changelog":"- Add Paperless-ngx OCR and full-text results to Nextcloud unified search.\n- Open synchronized documents directly in Nextcloud's file viewer.\n- Filter results against the current user's accessible Nextcloud files.\n- Store the Paperless API token in Nextcloud's server-side credentials manager.\n- Add an administrator connection test and configuration page.\n- Add automated tests, static analysis, style checks, and secret scanning."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDEtdW5pZmllZC1zZWFyY2gucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDItbmV4dGNsb3VkLXBkZi12aWV3ZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDctc21hcnQtcGlja2VyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMTEtZGFzaGJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDMtYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDQtbW9iaWxlLXNlYXJjaC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0Rlbm5pcy1PdHRvL3BhcGVybGVzcy11bmlmaWVkLXNlYXJjaC92MS4xLjEvc2NyZWVuc2hvdHMvMDYtc2VhcmNoLXByb2JsZW1zLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Paperless Unified Search","summary":"Paperless-ngx-OCR direkt in Nextcloud durchsuchen und gefundene Dateien im Viewer öffnen","description":"Volltextsuche im Paperless-ngx-Archiv direkt in der Suchleiste von Nextcloud, ohne Elasticsearch, zweiten Index oder weiteren Container: Paperless antwortet, Nextcloud entscheidet, wer die Datei sieht.\n\nRechnungen, Verträge, Briefe, Bescheide und beliebige Inhalte der Dokumente finden und die synchronisierte Datei im Viewer von Nextcloud öffnen — ohne Nextcloud zu verlassen.\n\n### In Paperless suchen. In Nextcloud weiterarbeiten.\n\n- Verwendet die native OCR- und Volltextsuche von Paperless-ngx, ohne eigenen Index, der aufgebaut oder aktuell gehalten werden muss\n- Zeigt Treffer direkt in der globalen Nextcloud-Suche, jeden mit einer Vorschau des Dokuments, seinem Datum in der Sprache des Benutzers, seinem Korrespondenten und seinem Dokumenttyp\n- Findet Dokumente auch über den Smart Picker in Talk, Text, Deck und Mail und fügt einen Link auf ihre Datei ein\n- Zeigt die neuesten Paperless-Dokumente, die der Benutzer öffnen darf, im Dashboard von Nextcloud, mit dem Widget „Neu in Paperless“\n- Öffnet die synchronisierte Datei im integrierten Nextcloud-Viewer in Web, iOS und Android\n- Ordnet Dokumente über stabile Kennzeichnungen wie `[P123]` zu\n- Zeigt ein Dokument nur den Benutzern, die seine synchronisierte Datei öffnen dürfen\n- Blendet noch nicht synchronisierte Dokumente automatisch aus\n- Diagnose: Die Einstellungen testen die Verbindung und führen einen Verlauf der fehlgeschlagenen Suchen mit ihren Fehlern, auch wenn der Hoster das Protokoll von Nextcloud vor Administratoren verbirgt\n- Für Administratoren: Die App mit occ ohne Browser einrichten und testen, mit occ erklären lassen, warum ein Benutzer ein Dokument nicht sieht, und den Zustand der Suche in der Übersicht der Verwaltungseinstellungen sehen\n\n### Datenschutz und Zugriffssteuerung\n\nDie Kommunikation mit Paperless erfolgt ausschließlich zwischen den Servern. Das API-Token wird verschlüsselt im Zugangsdatenmanager von Nextcloud gespeichert und niemals an den Browser übertragen.\n\nStandardmäßig wird Paperless nur durchsucht, wenn der Benutzer die Suche in verbundenen Diensten aktiviert oder im Smart Picker Paperless-Dokumente auswählt. Administratoren können den eigenen Paperless-Server optional als vertrauenswürdig einstufen und automatisch in jede globale Suche einbeziehen.\n\nEmpfohlen wird ein eigener Paperless-Dienstbenutzer mit ausschließlich lesendem Zugriff.\n\n### Voraussetzungen\n\n- Nextcloud 33 bis 35\n- Eine erreichbare Paperless-ngx-Instanz mit API-Zugriff\n- Synchronisierte Dateien mit einer Paperless-Dokumentkennung wie `[P123]` im Dateinamen, die einem Nextcloud-Konto, dem Archiv-Konto, gehören und nur lesend mit den Benutzern geteilt sind, die sie sehen dürfen\n\nDie App integriert ausschließlich die Suche. Sie synchronisiert selbst keine Dokumente zwischen Paperless und Nextcloud, und ohne solche Dateien zeigt die Suche keine Paperless-Dokumente.\n\n### Native Synchronisierung als Ergänzung\n\nDie unabhängige Nextcloud-App [Paperless Sync](https://github.com/Dennis-Otto/paperless-sync) schreibt diese Dateien in das Archiv-Konto. Beide Apps verwenden dieselbe stabile Dokumentkennung wie `[P123]` und lassen sich getrennt warten und aktualisieren.\n\nDokumentation: <https://dennis-otto.github.io/paperless-unified-search/de/index.html>"},"en":{"name":"Paperless Unified Search","summary":"Search Paperless-ngx OCR content from Nextcloud and open matching files directly in its viewer","description":"Full-text search of your Paperless-ngx archive in Nextcloud's search bar, without Elasticsearch, a second index or another container: Paperless answers, Nextcloud decides who sees the file.\n\nFind invoices, contracts, letters, statements, and any text recognized inside your documents, and open the synchronized file in Nextcloud's viewer — without leaving Nextcloud.\n\n### Search in Paperless. Work in Nextcloud.\n\n- Uses Paperless-ngx's native OCR and full-text search, with no index of its own to build or keep current\n- Shows results directly in Nextcloud's global search, each with a preview of the document, its date in your language, its correspondent and its type\n- Finds documents from the smart picker in Talk, Text, Deck, and Mail, and inserts a link to their file\n- Lists the newest Paperless documents you can open on Nextcloud's dashboard, with the widget New in Paperless\n- Opens the synchronized file in Nextcloud's built-in viewer on web, iOS, and Android\n- Matches documents through stable markers such as `[P123]`\n- Shows a document only to the users who may open its synchronized file\n- Automatically excludes documents that have not yet been synchronized\n- Diagnostics: the settings test the connection and keep a history of failed searches with their errors, also where the hoster keeps Nextcloud's log from administrators\n- For administrators: set the app up and test it with occ, without a browser, ask occ why a user doesn't see a document, and see the state of the search in the overview of the administration settings\n\n### Privacy and access control\n\nPaperless is queried server-to-server. The API token is stored in Nextcloud's encrypted credentials manager and is never exposed to the browser.\n\nBy default, Nextcloud's search sends terms to Paperless only when users enable connected-services search, and the smart picker only when users pick Paperless documents in it; a client that asks the search API for this provider sends them as well. Administrators can optionally mark their Paperless server as trusted and include it automatically in every global search.\n\nA dedicated, read-only Paperless account is recommended.\n\n### Requirements\n\n- Nextcloud 33 to 35\n- A reachable Paperless-ngx instance with API access\n- Synchronized files whose names contain their Paperless document marker, for example `[P123]`, owned by one Nextcloud account, the archive account, and shared read-only with the users who may see them\n\nThis app provides search integration only. It does not synchronize documents between Paperless and Nextcloud, and without such files the search shows no Paperless documents.\n\n### Native synchronization companion\n\nThe independent [Paperless Sync](https://github.com/Dennis-Otto/paperless-sync) Nextcloud app writes these files into the archive account. Both apps use the same stable `[P123]` document marker and can be maintained and updated separately.\n\nDocumentation: <https://dennis-otto.github.io/paperless-unified-search/>"}},"isFeatured":false,"authors":[{"name":"Dennis Otto","mail":"","homepage":"https://github.com/Dennis-Otto"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEzCCAvsCAhPnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI1MTcyOTQ0WhcNMzYxMTMwMTcyOTQ0WjAjMSEwHwYD\nVQQDDBhwYXBlcmxlc3NfdW5pZmllZF9zZWFyY2gwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQCsZUbfsoT3SqqFq4tfh5qb22OlyJZ2UuzoDCiAWmzFqO+G\n5BYyEdBBz2rgus9PJ+yePVA7C2ePEBEAfrqJVU2ijSR7yJLmMGxuLBKcpr3YPIVK\nP6momQnhif6fjFt/3+TosPCA9u2Cl6SW1aHNLdN/2vNCaZBDLOuB2ta8C+SxH+tR\nRmqunCtrxjMsDXZKRbTILJHBmG4JekltGQJLkZVD0dCb4VD40pcWINFqog8gW0cb\ndbyxVdSeZK/6RmRWToU5EdUR6D2BTQIcwo7WRNNdRe0kyks1+w3NGT7LQRV+wsNZ\nx5NIwUYUn1DfPtg/FjluHWzPqjgOBvhytl1PL6GmBqK9EkYh5TCJzJktqMwhXRTx\nWg6N5G41KMgnUkvBdL8I6InskgUJLK6T1IXsRf484rI1SQEJDOcz93qLVwYzupUE\no8IrcVihNtTz6TqISn4yG+YFXVAWPRTyB9p5A84fuzr87zP3l6RavykDFTSn5I0a\nLIgf46uOB35NXy+CPzHoxWCbVFuK2ZDXbeNFgru/pbPodtiSjWmDo28vip1aV6di\nqnSxrPPOKKsp+xyHn+v/eZ6eQTwT+ESbWUxOIJE26itO92ZL5IKrmsQWl23TwCn7\n+9tpzCk2Z3Bo7WCl/aCEo+yKlLMCzE2LxNjh6+HJaRh2XprtN5sQ6vUCVmss9QID\nAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB9ikhlFqy7nGQJIpXXvtFFXUXHEBSAelYy\n6zUsh21Y9BrZJ/zy28FdF8ouFkP9OXKh80SzaCupmTwkaIYegZWxaMEqdQC/3gCZ\n6imZOP8j8CvLDusF8dnzQtE810xDSERXgrVET/wSxLN2DX0h9UJHxijkUUWcrGdm\n2kCeYGzd2zz2DQkUCkrkQvRJYQ+Q0yCC6bWYreui7mCM36uvMX3PDWhXbEAURbKw\nrUO9K3UQPzigLuFyO7B0Dqv1QwpllTehfKswItMMWIwr9AaQvTFvvuOHHtpJuwaK\nM85lqly1og2EKWDbuRFGkiLk3dijaDhmU/LUzyogZOEi2mUHKem4\n-----END CERTIFICATE-----","discussion":"https://github.com/Dennis-Otto/paperless-unified-search/discussions"},{"id":"integration_jupyterhub","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SUNET/nextcloud-jupyter/issues","website":"","created":"2024-01-23T12:44:12.132044Z","lastModified":"2026-10-12T14:17:43.425784Z","releases":[{"version":"0.2.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-integration_jupyterhub/releases/download/v0.2.8/integration_jupyterhub-0.2.8.tar.gz","created":"2026-10-12T14:17:43.414211Z","licenses":["agpl"],"lastModified":"2026-10-12T14:17:43.460303Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"dfUuMEskWW/mT3c1vf3IPxDSD4Krk9ZHAUGA8d5jlsV+agOqdfR9aP+HgECLYq2U\n1UxPI7Um0qgledKQ/OxIlEoP4sXRc54DnIh0dfg/D9Fm3trL731p2WcrMeLT5mFV\nCXQvvc/aXYgSkPxTjX1ikAMi1lGGjlePYyEoqHqVNQujK/SUAPrsiCp5q8bc08Zu\nP4pB5pmc9QXD2Od81hQxAkgdSOMaCjVTLKUDYG9THcfEesV/IS5DCFrjvUHBANSD\nnbXpj8YFAaL+mTTDJ6DTu2nor8dv+5hHarkh55Wj+xmS4hAknzwm6W//1ywJZdbA\nia2smuOnM64wYgAUKjPhgmEMwYxtGX9pOhUeCxZVRzFDjyp1iYihARoDneSXMv5D\nf7UczJ8pEVunKLj8Xxq1i3h7w5XeuQMOluCJItXdzx74tOLfc0E49w3MdyAN7FwI\nsBne0STViru2EOxCFgYtd2fQKeIyVMwO/6Lub2koI5ZFtMB5+tsKwzPGhxeIpgzi\nxDjkR3hWiNYRlg6Dty1Gs/YoIJDgBPO2CW9QaigbzEg3O9rtjCv/410sbmqkc45m\ngS2dduYXX31fpeThxTDhbGpS+ag6nTtIXEjQg8y73m8z8sLORQ6/QrT/3iMmvWUJ\n8Reos5ESIasLc7RmrYAoak5shkmm/sXtwKdYMfr6fGY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-integration_jupyterhub/releases/download/v0.2.5/integration_jupyterhub-0.2.5.tar.gz","created":"2026-06-02T19:33:04.103943Z","licenses":["agpl"],"lastModified":"2026-06-02T19:33:04.238519Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"qH1yvueA//QwnkpLlMI3Xdc/ypf+ixyunojPVZcDUNp3vIEVUml7R8wKbn/wVzKF1k7wPqc/NJBrX4G/eJIbisWLFbY8VtxLorxeI+xhBheKOo2CQ1d0YiB7daTzjM46uNuB4w9fblx5MtcU1BGBqAVewatYn83eewLK6jE/1txPZTRd0Xz82UzdNSiJz8DDehLb8y4oWoHg/JsvEhttLWo0TZw93ZCI0r6OtT8z2JAOVWYN8bToHJ1xTZKQxfg4fv8IpG3c3LdoRGv93wyImYCMReUoayBL3xWzzADkAkAI1cP5ZekMaaLbDQIQmfRG0FYOFOJqJS3AMrCcAq9ySCUFL4bpyyvX5usycimMGtrt74UUZ2rqrQEEwi3EN7bV+VYGCBmZoqgDUY+7bSmG7lVTWJHBtXloJk3cpJ7sG40onaD3Rr99IdlVHEpzpO72nMwFTvfa778VJfMvE3NQxLvuV4bMVKgTzifwFqXf3Wj9XlU9Cue46AgcF+rv5GQUdhI35LTebhnlTi0tG60Pj4GDjmlyUNgEYxXkYLq5C38bYfOre8ctywu/JZQRBF8vLOlyO6wx2c3EQHLiJUNiZpf+N2UQN22CGeTa3R0gfdbTAVW0vLO6k7BheTjNr+EeJpmg5jEgtYSbHCp+LL5dsP6cA3wmiwJMpF1Xju10NG4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-integration_jupyterhub/releases/download/v0.1.5/integration_jupyterhub-0.1.5.tar.gz","created":"2026-05-12T13:43:21.504215Z","licenses":["agpl"],"lastModified":"2026-05-12T13:43:21.632682Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"3WZUDVf020NP4oUDzZPm4tmIgYeeXkhorVD7V9kSSNvxMbsIFEOFxPyXPaT1YDo3\nLMUXalsJ13pbisk5VoTxyjhIaeu9l8eQeiUgYsTGRUMwvoyxNP1mEgwTFFR4NWJf\nAl4/ncwSjpaLaz1iJHi9jAJPUx2m0nwJSNmEcmjLjpvLKZMVMX0wyguji0UQNzuC\n7Xos9lfu1WPriwksdSGn+KYrwwfZ354Rz98qh/mmHZAUvXoRluiVMaF+AaN8n08H\nP/nu8UJqySTvUfoMofOKqKH+7zmZ55Xp0HGTz7qqlflnUGd/Cy5NgcU+V9xQH3qR\ny5k0ZMyELp/leUzQmFhNoI69/I+0A/6RexiBAFEkuPzHvkCELtTO+Fyb/N4K4g7B\nnxTt8Ss4xuHB3EN5diMZdLhcE8yw4+keyJfBOn1+jOvV7Zm+IWSyM9uTXcMa0EEp\nhj7fm7jxdIgslYqjpw70oaB7bl8Nw8GdYvGpnUGejNaiLiIVpGHBstRrppJasW8R\ndKN0of8dMxFCFb7UY09jdr9F7zBXLPDMkmM0JQMzCHRuqE4Mi9SQUUZkQ7r5WQib\n0WG0cmS70Fsuj3CgSaXUCBHbdjcj2HdqQRmt9tW0Cmb8ipwerY++vCTz2UH/e8qY\nMDHp2gm2BRnRlji7LwGmF5E1tMe8ZjKnjbbWw1g4e5w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"JupyterHub Integration","summary":"Integrate JupyterHub into Nextcloud","description":"Integrate JupyterHub into Nextcloud"}},"isFeatured":false,"authors":[{"name":"Micke Nordin","mail":"kano@sunet.se","homepage":"https://github.com/SUNET/nextcloud-jupyter"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEETCCAvkCAhJRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwMTIzMDgwMDA0WhcNMzQwNDMwMDgwMDA0WjAhMR8wHQYD\nVQQDDBZpbnRlZ3JhdGlvbl9qdXB5dGVyaHViMIICIjANBgkqhkiG9w0BAQEFAAOC\nAg8AMIICCgKCAgEA6QXbuaEkSkPoCZTlPbJoQMcP/XD22CfEeIh2cYzbwCq9CSfj\nDWnApxmk/Po3avS0PkUMuq339i7BJXmSeP9hKcuWc4hSSM/aZxUmek3SjCnkwyhI\n0mf8TNdjE6LcWV0bg9f+7LmQFKhBsdD3yMZq91oh4O2LCBl/q0FpnSX0H44hD3a0\nr1yRdRT3Sq4if2g/B4bmmswouqcj9MLhSlySKUJjpNT22fFLy6RS1wd7GtwbQZpd\nHDsEhut8CyeVLp7eKGbqT8xbP0mh8vLtbUkaZjbW79UJ+Zb+0METdM8V2lcKHcaK\nBpgiKCKjFyMOedpPTBeK/IPqxlXLiHAIeEmuWwiADTwcMr34vLR6s/klSdtGs+MA\nyVoTZQgxykcsQ200L2P+GcehoYH+icDgjSP/LOhrOTp1gJf93RMwopw5SwX6mIQa\npEUqWgcNonGPh7UUo8ZXITTZj6H7MNzPLhqexSZIoKBF1ZWpPeTDnWEIga82OvMB\n1EfNj8OKfvOOVtUU5xap0LCUlNdEFcWCTZVAXVcmcjAUGRC+Q9uNjI9BNUe3/7Sj\nTKRwrUXS6NouUyETbyNnpN72NI9BgpmDu1tDUSVr4jHYOwg/uCESgAM9ervpQj+p\n12R+1Z0sAjHzJufvXjWVnrcNyxThtKQz+yG6rvmZWnOhbG9brOqVufzuzf0CAwEA\nATANBgkqhkiG9w0BAQsFAAOCAQEAJpPou+354Ubf1+XSRSlD7Ihwg8vPVpMSNH1Z\nWLqg+1c4gv+6O6xawm6S7Bn7ghW0PXzeyrPKK6BY56QxHauSjO35afslREXQ2RuV\no3MNhCs3CMdkZ6GqU1JVKzzKdnMwVQCztJKnlm4udnCideDMk5KvSf3mpI/7ErIl\nvA7n8bU0vFZpBUX23rXHOUvYAFrzQnG5o5ss5xWiFoUT2GhXRg5jaFT4RSrwo9KR\n3vdDA/zhs8twT7l34TCVjuT8GC5Pf5oShmqyhtzj31sB27+PRU+Vmr8rFTsykBqZ\nRdBpR5GDXwuf7ENImOZgQ+wKvd3zJq0Lv6m7WHEcp9U0KNDS+w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"kanso","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aktasfatih/kanso/issues","website":"https://aktasfatih.com/kanso/","created":"2026-08-17T14:28:38.819723Z","lastModified":"2026-10-19T05:20:44.888429Z","releases":[{"version":"0.39.0","phpExtensions":[{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.39.0/kanso.tar.gz","created":"2026-10-19T05:20:44.879926Z","licenses":["agpl"],"lastModified":"2026-10-19T05:20:45.018982Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"gbaoP4rdgqx1j3eyDQV5MGX35k5haaR8fOmE9SYU5VbkHh2OlwESbPAM3QedoujM58AEWtCGYK+dZPCblaQwSerUwZrN29faZ6GZ+NVmWwxSyN56YMBBW4PnwlaPILp4N1yxLfuY72rv/cF7u7D1SRT5clKRh5psUF5O8Jleo4FJ2D/+sfQqzXU+lFhzJU+krr96zmYuXM2AHSNxA7LsLKD8Vci9E9Idwyny6WMzzYcGLdslUGkeBtfYpfMOHoG9ToEcQwmojvbLIfchN5RuVx+SyQ82Utp5Uxx/5jkCOXopyynQRc1ctFeS8zl3qZbvuKuFfPOOPDZ2RwV4mWwUD3ailAf5WmuZN5xLLVSpk1bXnrB6KgDjKBUJHKYJxTaT8/4u8Cy379V79IKKrYZLrjG1uXFUIbVuZdqKo1pfETfyEN50Lq92HYgwiNr+i3BIdvHQ8jcovb5N660HRmjSlSkksJDWVhfPxdc+rHcIy+MjaSpTZ7KTNIALTdCV6xm3qVDW06zy4KqDjo5X/eao16rMG7/7ceN7RJGmTgESLMxLBCpOpGIN9jIYAnbeAZJVriYlWUpACM5WCau2MQROROUcor6Uw09362esyClGir6qftJs2ZIWXRZ877nf3buc8d6FgaDVPwyzQqsU6ACn8CZGlqEkh4ylxlTGI6bXvpI=","translations":{"en":{"changelog":"### Bug Fixes\n\n* give the empty \"From template\" and \"No folders yet\" menu entries proper spacing ([54ff15e](https://github.com/aktasfatih/kanso/commit/54ff15ef7287d627154b5785e28addded2a37d1f))\n* keep the card composer focused after adding a card so you can type the next one ([ca5f78f](https://github.com/aktasfatih/kanso/commit/ca5f78f983fbd0fc0bc709deb6cfce7404150417)), closes [#10834](https://github.com/aktasfatih/kanso/issues/10834)\n* render multi-line code blocks as proper blocks in descriptions and comments ([03cd177](https://github.com/aktasfatih/kanso/commit/03cd1777159c436a3ea5d7c9aec5bb976b1ef593))\n* stop the \"Blocked\" badge from revealing cards you cannot see ([dd0b0de](https://github.com/aktasfatih/kanso/commit/dd0b0debf4a0d35be33f3948ad09a81d1499181e)), closes [#11080](https://github.com/aktasfatih/kanso/issues/11080)\n\n\n### Features\n\n* confirm a newly created card with a toast that opens it ([c6ebd01](https://github.com/aktasfatih/kanso/commit/c6ebd01c3df0916deb858bcf0ccfc3d2561e3811))\n* copy the IDs of selected cards from the multi-select bar ([210e274](https://github.com/aktasfatih/kanso/commit/210e2740b9cfb53785cff3fc2676333a0815437b))\n* link a card to a file in Nextcloud Files ([b067193](https://github.com/aktasfatih/kanso/commit/b0671937e3492c20de92a06ffde4713009763d4d))\n* show a \"Blocking\" chip on cards that block other open cards ([e691fbc](https://github.com/aktasfatih/kanso/commit/e691fbc10a96cded371c9fa2ec6f8f5792f11d11))"}},"signatureDigest":"sha512"},{"version":"0.38.3","phpExtensions":[{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.38.3/kanso.tar.gz","created":"2026-10-18T02:57:38.691562Z","licenses":["agpl"],"lastModified":"2026-10-18T02:57:38.802942Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"lEr5KKmu9oEXpxaCtGC0fDKn6/k6mvojXqMcDmfMFiCk3WgA85V45wngdHfrJnVcJuP6mPGnku9+l6FVgVQr6L/VrNvw00DwRrt3q+/mf6apDJkXiJPxhZkyvn5OZUFlAgES1Lb8OrdMj/zGKr+qpCbIIW8h8I0+emr/rjzdVn2mAG442yXfOQpoqAo1MliGDOLsPXDQBVm3fCQJLyhqjxw2RkCSHUQAgTLu75KJjAq0EpbkQqPOEvekjYmGVzneo95dr6IjxmEco2/JmU20GC/+r95hv1e8SYBeNBZqjGrrsUF/HcuBTeWnKfrsfRcSmvUa2t7avGeigKGLGYBHfUiY4HQAwr/Rkt92KgFifI0LAZb3JkGsERvZpJ36oJyCEfuuOCVZtPlkn+WeJaSfM2rq930xo8Nnjhqqj9WU4/mQf36R18xdGCQ39ioLSB3mmpkuvkwte7idgChhjZ7QD0VXYwGmSgjrTIbOTdf5Sao1ut3l2kuSZFzOfiZ+n4wi+oJ6F40O3HPT516wPFboV0dGamUqI1B9TzCVrelImFkTGl1wq0i+Ow/UkHYMEoo9EEoc7xMfMdX5gKaTVOYNWFRh+gS57VPmoTFDrYQcu2hMa83flLO9f2d19tI3cie1q9SvrubJZmzt3hik4KOV94yu7iP+5fincBvmMBMQo7A=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** bump @atlaskit/pragmatic-drag-and-drop from 3.1.0 to 4.0.0 ([237bdbd](https://github.com/aktasfatih/kanso/commit/237bdbd55ee79736d74ec9b7998ce166381e375b))"}},"signatureDigest":"sha512"},{"version":"0.38.2","phpExtensions":[{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.38.2/kanso.tar.gz","created":"2026-10-15T18:52:19.504398Z","licenses":["agpl"],"lastModified":"2026-10-15T18:52:19.662745Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"dxslUaTd76xKjVRCvCaMV/+Bw8vAAWtF+1IrWt7GDPUASPTXy65ReXq8mY1Qdqshcy7bTlWgrXGjJ/fNY9pcFwGvlnMzTmKz6SKXY4xcYj6u/7fT9kVV2oGSP2P6RyShoqngb6BJFy+4l9To2s1jbnDkPaoGy1TcVezY09bC4PjSTGc0dvVAusvOX1hEGqw2Dnhjl+C3q3EJi/rQS4bTZTuMu65zd3GCZ9gZFyCdPu7W/ZwsSqviRleiqbFl1dQg7rcn3L3Pp16tJWIwrQWTaBsFsqfiD4ffQXb4YyPFCAmzxRDHv8D7Qx7SmiiHL1n+l3jmAB3tkJTAxblx0IMkJYYQZHhUU0S/DvCSnVaSwSvlf6Z3H0g/N+9j9iJT1EzO9tyugRt07T1zsxqAKlqeSSqEND72oixouhGXMySmeDnOc1YN/EWveXHxQZxNSpXU9/Bs2c8GBSjwuGdqX0n8fUNguX1xgF0WiW1q9KVKh9LV9kYhITCg+9MxFl5cr+sDS8yXQjYPNBx/DNI4x6F+n+BrcVVryqP4RbptOCuTxMtOA7xL/a19W3hJw9UCiM/j6Pc/you/LdM/SEiiEKuPnMyLCCy42185n4y6oY3wJZVudcPCJ6SliGna1M/jJaYMHL77pZwoGRAOiwUfZ6Ps66NYwBwbe6ohc7HQS+7SRKs=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** bump @atlaskit/pragmatic-drag-and-drop-hitbox ([afa215f](https://github.com/aktasfatih/kanso/commit/afa215fbb5548fb46633f6e9468848fa611d5a22))\n* **deps:** bump the npm-production group with 2 updates ([30d4485](https://github.com/aktasfatih/kanso/commit/30d44852f27d0fbf344b98a5eba13ee69adc1842))"}},"signatureDigest":"sha512"},{"version":"0.38.1","phpExtensions":[{"id":"zip","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.38.1/kanso.tar.gz","created":"2026-10-07T14:51:48.324825Z","licenses":["agpl"],"lastModified":"2026-10-07T14:51:48.432462Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"el2/3UedDVT2XYLrEdbDhpaemr4COidFP3TpXyWTEI+pab1hczZjRuks0wZXytWuUlB6CfZ8Zb+QJ/ztfgYJZTYSY6LGSlLUCDpJh2lNVT92mMbRjMl7y3D7MgKoUqBZ9kDiDFNTWstpNr2dZ2sq0h3/ktZWCWC0XMnI1QlB8Wi8wJMOc6SDklQ7yDZFPY/29ZKk3pLK8KEGj/0efTdxcgc6wlBMRJlqOW3Hs9uLZuvrwiSLy0YAGOSgGz+Gy3L9HlngDQsTkmwkjL7iyeik5D5IEsYHoGxWNyDMwUDJHTkD/KLpFMjCbS62Udw7m/SLuL0FWkT3Kay50SYVd5Qw95YSukGo7MsdiM80LNqFieJQcuOr17kGSaSl3C8P1uUl+oUNnpM2GTMa9yj1PHhflELpu8ux8/+RdNQmnAN4vg+FqsfOkW9ffFFA64LBeSdQ0+1iXU3uWfZK3QT1hQvMJNIegHiZDZODvtBOP/DMp+MIBHmrnmR8dvPt0vWXTZ2XO6rKOPsotlRUIYuaqK5EhrWUfhz4gmGU+9J5Fw91cp+tQ3oR2cIgUGhb5YLLQL+hr9B1mhwfudbB160maToZ1wclOMJkNagg95l5OzxIbqemoJpixaFQyuPOhtZqXS2L4nQt1AQTGDIzMpiPno/Q0KHPjdBMFEMrdWk1DwrsAzo=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **cards:** keep a failed Mark done on the card you pressed it on ([d0a6e7a](https://github.com/aktasfatih/kanso/commit/d0a6e7a08d04834e7788879ccdd3f3b5674f84cf))\n* **cards:** keep a label you add while a priority is still saving ([fc7badd](https://github.com/aktasfatih/kanso/commit/fc7badd4921373f6e7ef271d04ecdf4a8a6ecf9b)), closes [#10927](https://github.com/aktasfatih/kanso/issues/10927)\n* **cards:** keep an assignee you add while a label is still saving ([140b7b4](https://github.com/aktasfatih/kanso/commit/140b7b4039a710a6ca977cae3fb9640fd05209f4)), closes [#10923](https://github.com/aktasfatih/kanso/issues/10923)\n* **cards:** keep the assignees you pick while the last one is still saving ([cd4be49](https://github.com/aktasfatih/kanso/commit/cd4be497d31602d3df4ad5185418d2d8f7e868c3)), closes [#10799](https://github.com/aktasfatih/kanso/issues/10799)\n* **cards:** keep the labels you pick while the last one is still saving ([e33c5e7](https://github.com/aktasfatih/kanso/commit/e33c5e73d769833e3db22a63824d15d6762029c1)), closes [#10920](https://github.com/aktasfatih/kanso/issues/10920)\n* **cards:** keep the projects you pick while the last one is still saving ([2e67b7e](https://github.com/aktasfatih/kanso/commit/2e67b7e03d86c38d07383dcf997568e4e5abcf95))\n* **cards:** say which reviews are blocking when Mark done is refused ([bbb6302](https://github.com/aktasfatih/kanso/commit/bbb63021b79dd1f438461bf3d5970409c736ac53))\n* **cards:** send a project pick to the card you picked it on ([c64ac75](https://github.com/aktasfatih/kanso/commit/c64ac754b9693b211ad003bbd56937a76121d61f))\n* **deps:** bump the npm-production group with 7 updates ([111802e](https://github.com/aktasfatih/kanso/commit/111802e2c1c83cbd4f226e4803f79300508f8b4c))\n* **install:** refuse to install without PHP's zip extension instead of breaking board export ([c5ef211](https://github.com/aktasfatih/kanso/commit/c5ef2113f6d601b58a06d49e8db13dfe2d3ac652))"}},"signatureDigest":"sha512"},{"version":"0.38.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.38.0/kanso.tar.gz","created":"2026-10-04T04:34:34.055769Z","licenses":["agpl"],"lastModified":"2026-10-04T04:34:34.169707Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"kLSoGs/Oj+LFB+XG1HvASQPrJmBZrr0LYSMZwjmy6m71svqvl4klBkKnypVfxtkdNGmr0zyyLYU0JBpHsEcYUNns8gyiZJnOliGkiQUIwXssCcLQHyoCEDuE1XCFUYtc2Q7Dh4NIRiDYhsCfuHskRWgjSiQBeu2aqV0ZdgdKeMh6S/p3K0w0ovBNYfB9MxhQFgOX/KUjhQ3QbRtT4WbKmzkcr8ORdfAt2gETAtR6AC7BWDBWi2eXFTLsgqp7j5G2FDGLK5RyXZp3FqSZxqTHjJjqGHuD5XzQkwwpmG6dESA0XBh1gghNyeDJVhmrJV155FbGM9PkdqizLw+E3sM2flB0/V/42BO1r8V0uDO5LxCTlZvW6qYZqqbdkfgeDjk5fugv+/aGwEe2QQbBHVGRTGVdosgN/UcDGKd9AU+fnxQOsGO72O6R5fdWfeplgohXqeTDoMQIvImOnmLVF4dEgeg13/tKVus0LHaAvqi4EFZTVsGhTyN9eJYNjOVfvVrrxvAm+FmT3/jDQp/BjIV/djIW2BKWk3H6/YdqDLbIoB8U3NGcSCbR/TX2JbAsLuaPpcSyauYOalBcwHWXl8+Im6BoNMaazaTjIV9aqpaX7qZ3FgAm102yPWIL+yrl4KKClYxaql9fjZPon+YfwnLVNdU/qACqC9vsIY9HTryw6Cs=","translations":{"en":{"changelog":"### Features\n\n* give board settings the width its fields need, and a way to maximize it ([eaf4baf](https://github.com/aktasfatih/kanso/commit/eaf4baf721b80b05a360a0a5eb2de0e37c3daa8f)), closes [#180](https://github.com/aktasfatih/kanso/issues/180)\n* say what a board is for, on demand from the board header ([bfafd6d](https://github.com/aktasfatih/kanso/commit/bfafd6d41f0eaad07b10333f957be3f5ef1535c9)), closes [#173](https://github.com/aktasfatih/kanso/issues/173)"}},"signatureDigest":"sha512"},{"version":"0.37.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aktasfatih/kanso/releases/download/v0.37.0/kanso.tar.gz","created":"2026-10-01T05:33:11.529978Z","licenses":["agpl"],"lastModified":"2026-10-01T05:33:11.683510Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"dBIzdvBUbFWR9Fvl4OKryLburM2E0mWf6QgQl+JFwjy4CroL/LIXcoVO/XndKKGr2U78XoFsh76JvwqsKq2IdHv3G9J08aHVNcVcmr/f/Ja+UTROhy6MvU8VYna+X2+mrY4R2nE489LaPT2vG/ymITTWRgaCof+XjUBGkbWdstKxSlEKx4pTD2k5Gn2q82rLLiH7AdOwioX7Ia0Miz7NooMQ3C5JCAukgEhDClG5/m0XSv3vqJbkznsoUULJCPzYVca1u+ZyEENG/1Ls5XNvOr+h9QAhcuekMhvRR2O/rCOD1aOEyjGeDA92QJ4zT7uyHx1qUKwAy9Sh8jn/pqvNKCzzT4q7zo6SEtmhCoOspfge/o8VmPbKIug7UmzF7zxR8TH0uclV6RtLUTzfFA3P02aqZDB+zMTeaITqHmyG1zfW9sR+83Qru/bqK6qWxdMvznqtprK18uPq4cQJyJPXg6uZZeLCjSrLusL/M8GAxJ2Vh6sTvU1DxJTKpeN43+3GICK7p21ubFJYHqYjLdF9UKitpIqvO51wzynKgDLb9zcXYSDcdGfej0DMGrT9zC4AE6m88tjWUsUs7wc2KnlzL7/QNivhyiF+SLsvHXjCExWv7sthv22V0NddFyNSKOfWuBRECM7NqQ6p/X4VqDrbcatlSCZZ+AWT77Szm0/58ME=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **a11y:** name the progress badges, and four other review fixes on [#174](https://github.com/aktasfatih/kanso/issues/174) ([c303111](https://github.com/aktasfatih/kanso/commit/c303111ce4269de9e313cc94969fcce58f7e5bb4))\n* **backup:** name the restore route and what retention does not reclaim ([24c93f6](https://github.com/aktasfatih/kanso/commit/24c93f66c3bf91e1d83d76444e33eac7d976d5b8)), closes [#10477](https://github.com/aktasfatih/kanso/issues/10477) [#10477](https://github.com/aktasfatih/kanso/issues/10477) [#10674](https://github.com/aktasfatih/kanso/issues/10674)\n* **board:** name the incoming board in the tab while it loads ([7d24c3a](https://github.com/aktasfatih/kanso/commit/7d24c3aa9ccd6e5a8a4f64ba883ead2780c52146))\n* **cards:** show an assignee's name after a reload, even past the participants cap ([2ad99f2](https://github.com/aktasfatih/kanso/commit/2ad99f25d736ad4470ff97864b6588f475ddc20c))\n* **deps:** bump the npm-production group with 4 updates ([d1aa8b1](https://github.com/aktasfatih/kanso/commit/d1aa8b1d4a34bb03214264838adb8058c73a76b7))\n* **dev:** resolve the compose project name before guarding the down -v ([989ddb1](https://github.com/aktasfatih/kanso/commit/989ddb1e08b9336920086b763a73c90b100fd1a0))\n* **icons:** stop handing Nextcloud the white app icon where it themes it for us ([c6f0160](https://github.com/aktasfatih/kanso/commit/c6f016064de1a60c5a2354787ec58efe83488f3a)), closes [#162](https://github.com/aktasfatih/kanso/issues/162) [#ffffff](https://github.com/aktasfatih/kanso/issues/ffffff) [#222](https://github.com/aktasfatih/kanso/issues/222) [#162](https://github.com/aktasfatih/kanso/issues/162)\n* **public-share:** keep the share token out of quoted URLs on a public board ([a29613e](https://github.com/aktasfatih/kanso/commit/a29613e4e254d7d558124063edd70346ea6ed005)), closes [#10608](https://github.com/aktasfatih/kanso/issues/10608)\n* **search:** leave archived cards out of search unless you ask for them ([93ea0d9](https://github.com/aktasfatih/kanso/commit/93ea0d9095af7dd70a3114edffff2652e5a9479f))\n* **webhooks:** take in an issue that gains the intake label after it was opened ([93e53c7](https://github.com/aktasfatih/kanso/commit/93e53c7f9899dba3652f68c72c970c0038cd09de)), closes [#10566](https://github.com/aktasfatih/kanso/issues/10566)\n\n\n### Features\n\n* **archive:** restore several archived cards in one action ([86a7f29](https://github.com/aktasfatih/kanso/commit/86a7f29c5fd4d7b13cad2c75cc4dfa4a04c6e5fe))\n* **compat:** support Nextcloud 35 ([c2557a7](https://github.com/aktasfatih/kanso/commit/c2557a7c2a248c27287286a5c09ab828448bfe55))\n* **l10n:** finish the interface translation in all ten shipped languages ([d084f56](https://github.com/aktasfatih/kanso/commit/d084f567deee1be6f15eddd3e43d6ccfc6ef238f))\n* **list-view:** show a late checklist step on the list row ([fc93d98](https://github.com/aktasfatih/kanso/commit/fc93d984edaf797842ed47c74489788b368bd4ff)), closes [#10696](https://github.com/aktasfatih/kanso/issues/10696) [#10708](https://github.com/aktasfatih/kanso/issues/10708)\n* **webhooks:** card an issue with the labels it already has ([0139e0d](https://github.com/aktasfatih/kanso/commit/0139e0d3535a11b8e52735d990ebcbf323109c46)), closes [#10491](https://github.com/aktasfatih/kanso/issues/10491)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FrdGFzZmF0aWgva2Fuc28vbWFpbi9kb2NzL2thbnNvLWJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FrdGFzZmF0aWgva2Fuc28vbWFpbi9kb2NzL2thbnNvLWNhcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FrdGFzZmF0aWgva2Fuc28vbWFpbi9kb2NzL2thbnNvLXRpbWVsaW5lLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FrdGFzZmF0aWgva2Fuc28vbWFpbi9kb2NzL2thbnNvLWFuYWx5dGljcy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Kanso","summary":"Schnelle Open-Source-Kanban-Boards mit Reviews, Projekten und Echtzeit-Synchronisierung","description":"Kanso ist eine Kanban-Board-App für Nextcloud, entwickelt für Geschwindigkeit.\nBoards, Spalten und Karten mit sofortigem Drag & Drop, optimistischen\nAktualisierungen und Datenmengen, die auch für große Boards (2.000+ Karten)\nausgelegt sind. Echtzeit-Updates über notify_push, mit Polling als\nRückfallebene.\n\nUmfangreiche Karten mit Markdown, Labels, Fälligkeitsdaten, Zuständigen,\nPrioritäten, Checklisten, übergeordneten/untergeordneten Karten und\nverschachtelten Kommentaren mit @-Erwähnungen und Beobachtern. Dateianhänge\n(bis zu 100 MiB pro Datei), eigene Kartenfelder pro Board (Text, Zahl, Datum\noder Auswahlliste), Zeiterfassung mit Summe pro Karte und private Erinnerungen\nzu einer Karte oder einem einzelnen Kommentar. Board-Freigabe mit\nZugriffskontrolle pro Benutzer und Gruppe sowie ein optionaler\nschreibgeschützter öffentlicher Link, der kein Nextcloud-Konto erfordert.\n\nEin Review-Workflow (Review anfordern, genehmigen / Änderungen anfordern,\nanpassbare Review-Typen und ein optionales Fertig-Gate). Ein\nboard-übergreifendes „Meine Arbeit“-Zentrum (meine Aufgaben, Reviews,\nPosteingang), board-übergreifende Projekte sowie Analysen pro Board und\nProjekt (Velocity, Durchlaufzeit, Durchsatz). Board-, Listen- und\nTimeline-Ansicht (Gantt), mit Swimlanes, gespeicherten Filtern und\nAnzeigesortierung.\n\nWiederkehrende Karten nach RRULE-Zeitplänen, Regeln zum automatischen\nArchivieren, WIP-Limits und Spaltenrollen, Kartenvorlagen, eine Befehlspalette\nmit Volltextsuche und ein Papierkorb mit Wiederherstellung.\n\nJedes Board mit Lesezugriff erscheint zudem als schreibgeschützte\nCalDAV-Aufgabenliste seiner Karten mit Fälligkeitsdatum, wahlweise mit einem\n.ics-Feed pro Board. Der E-Mail-Eingang macht aus Nachrichten in einem\nIMAP-Ordner Karten in einer wählbaren Spalte, und GitHub- und\nForgejo-Verknüpfungen samt Webhooks halten Karten im Takt mit Pull Requests und\nIssues. Import aus Deck mit einem Klick, Import aus einem Trello-JSON-Export\noder einer CSV-Datei, Export und erneuter Import eines Boards als ZIP samt\nAnhängen, Duplizieren von Boards sowie geplante regelmäßige Sicherungen aller\nBoards für Administratoren."},"tr":{"name":"Kanso","summary":"İncelemeler, projeler ve gerçek zamanlı eşitleme sunan hızlı, açık kaynaklı kanban panoları","description":"Kanso, Nextcloud için hız odaklı geliştirilmiş bir kanban pano uygulamasıdır.\nAnında sürükle & bırak, iyimser güncellemeler ve büyük panolara (2.000+ kart)\ngöre boyutlanmış veri yükleriyle panolar, sütunlar ve kartlar. notify_push ile\ngerçek zamanlı güncellemeler, yoklamaya geri düşme seçeneğiyle.\n\nMarkdown, etiketler, bitiş tarihleri, atananlar, öncelikler, kontrol\nlisteleri, üst/alt kartlar ve @bahsetme ile izleyicileri destekleyen konu\nbaşlıklı yorumlarla zengin kartlar. Her biri 100 MiB'ye kadar dosya ekleri,\npano başına özel kart alanları (metin, sayı, tarih veya seçim listesi), kart\nbaşına toplamı gösteren zaman kaydı ve bir kart ya da tek bir yorum için özel\nhatırlatıcılar. Kullanıcı ve grup bazında erişim denetimiyle pano paylaşımı ve\nNextcloud hesabı gerektirmeyen, isteğe bağlı salt okunur herkese açık bağlantı.\n\nBir inceleme akışı (inceleme isteme, onaylama / değişiklik isteme,\nözelleştirilebilir inceleme türleri ve isteğe bağlı bir tamamlanma kapısı).\nPanolar arası bir \"İşlerim\" merkezi (görevlerim, incelemeler, gelen kutusu),\npanolar arası Projeler ve pano ile proje bazında analitik (hız, döngü süresi,\niş çıktısı). Pano, Liste ve Zaman Çizelgesi (Gantt) görünümleri; kulvarlar\n(swimlane), kayıtlı filtreler ve görüntüleme sıralaması.\n\nRRULE zamanlamalarına göre yinelenen kartlar, otomatik arşivleme kuralları,\nWIP sınırları ve sütun rolleri, kart şablonları, tam metin aramalı bir komut\npaleti ve geri yükleme destekli çöp kutusu.\n\nOkuma erişimi olan her pano, bitiş tarihi olan kartlarıyla birlikte salt okunur\nbir CalDAV görev listesi olarak da görünür; pano başına isteğe bağlı bir .ics\nakışı da yayımlanabilir. E-posta alımı, bir IMAP klasörüne gelen iletileri\nseçilen sütunda karta dönüştürür; GitHub ve Forgejo bağlantıları ile\nwebhook'lar kartları pull request ve issue'larla uyumlu tutar. Tek tıkla\nDeck'ten içe aktarma, Trello JSON dışa aktarımından veya bir CSV dosyasından\niçe aktarma, bir panonun ekleriyle birlikte zip olarak dışa aktarılıp geri\nalınması, pano çoğaltma ve yöneticiler için tüm panoların zamanlanmış düzenli\nyedeklenmesi."},"ru":{"name":"Kanso","summary":"Быстрые канбан-доски с открытым исходным кодом: проверки, проекты и синхронизация в реальном времени","description":"Kanso — приложение канбан-досок для Nextcloud, созданное ради скорости. Доски,\nколонки и карточки с мгновенным перетаскиванием, оптимистичными обновлениями и\nобъемом данных, рассчитанным на большие доски (2000+ карточек). Обновления в\nреальном времени через notify_push с запасным вариантом на опросе.\n\nНасыщенные карточки с Markdown, метками, сроками выполнения, исполнителями,\nприоритетами, чек-листами, родительскими и дочерними карточками, а также\nобсуждениями в ветках с @упоминаниями и наблюдателями. Вложения (до 100 МиБ\nкаждое), собственные поля карточек для каждой доски (текст, число, дата или\nсписок выбора), учёт времени с итогом по карточке и личные напоминания о\nкарточке или об отдельном комментарии. Общий доступ к доске с разграничением\nправ по пользователям и группам, а также необязательная публичная ссылка только\nдля чтения, не требующая учётной записи Nextcloud.\n\nПроцесс проверки (запрос проверки, одобрение или запрос изменений, настраиваемые\nтипы проверки и необязательный контроль готовности). Раздел «Моя работа» по всем\nдоскам (мои задачи, проверки, входящие), сквозные проекты, а также аналитика по\nдоскам и проектам (скорость, время цикла, пропускная способность). Виды «Доска»,\n«Список» и «Шкала времени» (диаграмма Ганта) с дорожками, сохранёнными фильтрами\nи сортировкой отображения.\n\nПовторяющиеся карточки по расписанию RRULE, правила автоархивации, лимиты WIP и\nроли колонок, шаблоны карточек, командная палитра с полнотекстовым поиском,\nкорзина с восстановлением.\n\nКаждая доступная для чтения доска отображается также как список задач CalDAV\nтолько для чтения с её карточками, у которых указан срок, и при желании\nпубликует ленту .ics для доски. Приём почты превращает письма из папки IMAP в\nкарточки в выбранной колонке, а ссылки и webhook GitHub и Forgejo поддерживают\nкарточки в согласии с пул-реквестами и задачами. Импорт из Deck в один клик,\nимпорт из JSON-экспорта Trello или из CSV, экспорт доски в zip вместе с\nвложениями и обратный импорт, дублирование досок, а также запланированное\nрегулярное резервное копирование всех досок для администраторов."},"es":{"name":"Kanso","summary":"Tableros kanban rápidos y de código abierto, con revisiones, proyectos y sincronización en tiempo real","description":"Kanso es una aplicación de tableros kanban para Nextcloud, creada pensando en\nla velocidad. Tableros, columnas y tarjetas con arrastrar y soltar instantáneo,\nactualizaciones optimistas y volúmenes de datos pensados para tableros grandes\n(más de 2000 tarjetas). Actualizaciones en tiempo real mediante notify_push,\ncon consulta periódica como alternativa.\n\nTarjetas completas con Markdown, etiquetas, fechas de vencimiento, personas\nasignadas, prioridades, listas de tareas, tarjetas principales y subtarjetas, y\ncomentarios en hilos con menciones @ y observadores. Archivos adjuntos (hasta\n100 MiB cada uno), campos personalizados por tablero (texto, número, fecha o\nlista de selección), registro de tiempo con el total por tarjeta y recordatorios\nprivados para una tarjeta o un comentario concreto. Tableros compartidos con\ncontrol de acceso por usuario y por grupo, y un enlace público de solo lectura\nopcional que no necesita una cuenta de Nextcloud.\n\nUn flujo de revisión (solicitar una revisión, aprobar o solicitar cambios,\ntipos de revisión personalizables y un bloqueo opcional de la columna\nTerminado). Un espacio «Mi trabajo» común a todos los tableros (mis tareas,\nrevisiones, bandeja de entrada), proyectos que abarcan varios tableros y\nestadísticas por tablero y por proyecto (velocidad, tiempo de ciclo,\nrendimiento). Vistas de tablero, lista y cronología (Gantt), con carriles\n(swimlanes), filtros guardados y orden de visualización.\n\nTarjetas recurrentes con reglas RRULE, reglas de archivado automático, límites\nWIP y roles de columna, plantillas de tarjeta, una paleta de comandos con\nbúsqueda de texto completo y papelera con restauración.\n\nCada tablero con acceso de lectura aparece además como una lista de tareas\nCalDAV de solo lectura con sus tarjetas que tienen fecha de vencimiento, y\nopcionalmente publica un canal .ics por tablero. La entrada por correo convierte\nlos mensajes de una carpeta IMAP en tarjetas de la columna elegida, y los\nenlaces y webhooks de GitHub y Forgejo mantienen las tarjetas al día con las\nsolicitudes de incorporación de cambios y las incidencias. Importación desde\nDeck con un solo clic, importación desde una exportación JSON de Trello o desde\nun CSV, exportación y reimportación de un tablero como ZIP con sus adjuntos,\nduplicación de tableros y copias de seguridad periódicas programadas de todos\nlos tableros para administradores."},"nl":{"name":"Kanso","summary":"Snelle open-source kanbanborden met reviews, projecten en realtime synchronisatie","description":"Kanso is een kanbanbord-app voor Nextcloud, gebouwd op snelheid. Borden,\nkolommen en kaarten met direct slepen en neerzetten, optimistische updates en\ndatavolumes die berekend zijn op grote borden (2.000+ kaarten). Realtime\nupdates via notify_push, met periodiek ophalen als terugval.\n\nUitgebreide kaarten met Markdown, labels, einddata, toegewezen personen,\nprioriteiten, checklists, hoofdkaarten en subkaarten, en reacties in threads\nmet @-vermeldingen en volgers. Bijlagen (tot 100 MiB per bestand), eigen\nkaartvelden per bord (tekst, getal, datum of keuzelijst), tijdregistratie met\neen totaal per kaart en privéherinneringen voor een kaart of één losse reactie.\nBorden delen met toegangsrechten per gebruiker en per groep, plus een optionele\nopenbare alleen-lezen link waarvoor geen Nextcloud-account nodig is.\n\nEen reviewworkflow (review aanvragen, goedkeuren of wijzigingen vragen,\naanpasbare reviewtypen en een optionele vergrendeling van de kolom Klaar). Een\noverzicht «Mijn werk» over alle borden heen (mijn taken, reviews, postvak),\nprojecten die borden overstijgen en statistieken per bord en per project\n(velocity, doorlooptijd, doorvoer). Weergaven voor bord, lijst en tijdlijn\n(Gantt), met swimlanes, opgeslagen filters en weergavesortering.\n\nTerugkerende kaarten volgens RRULE-schema's, regels voor automatisch\narchiveren, WIP-limieten en kolomrollen, kaartsjablonen, een opdrachtenpalet\nmet volledige-tekstzoeken en een prullenbak met herstel.\n\nElk bord met leesrechten verschijnt ook als een alleen-lezen CalDAV-takenlijst\nmet zijn kaarten die een einddatum hebben, optioneel met een .ics-feed per\nbord. E-mailverwerking maakt van berichten in een IMAP-map kaarten in een\ngekozen kolom, en GitHub- en Forgejo-koppelingen en webhooks houden kaarten\ngelijk met pull requests en issues. Importeren uit Deck met één klik,\nimporteren uit een Trello-JSON-export of een CSV, een bord exporteren en\nterugzetten als zip met bijlagen, borden dupliceren en geplande periodieke\nback-ups van alle borden voor beheerders."},"pl":{"name":"Kanso","summary":"Szybkie tablice kanban open source z recenzjami, projektami i synchronizacją w czasie rzeczywistym","description":"Kanso to aplikacja z tablicami kanban dla Nextcloud, zbudowana z myślą o\nszybkości. Tablice, kolumny i karty z natychmiastowym przeciąganiem i\nupuszczaniem, optymistycznymi aktualizacjami oraz odpowiedziami dobranymi pod\nduże tablice (ponad 2000 kart). Aktualizacje w czasie rzeczywistym przez\nnotify_push, z odpytywaniem jako rozwiązaniem awaryjnym.\n\nRozbudowane karty z Markdownem, etykietami, terminami, osobami przypisanymi,\npriorytetami, listami kontrolnymi, kartami nadrzędnymi i podkartami oraz\nwątkowanymi komentarzami z @wzmiankami i obserwującymi. Załączniki (do 100 MiB\nkażdy), własne pola kart dla każdej tablicy (tekst, liczba, data lub lista\nwyboru), rejestrowanie czasu z sumą dla karty oraz prywatne przypomnienia o\nkarcie lub o pojedynczym komentarzu. Udostępnianie tablic z kontrolą dostępu\ndla poszczególnych użytkowników i grup oraz opcjonalny publiczny odnośnik tylko\ndo odczytu, który nie wymaga konta Nextcloud.\n\nPrzepływ recenzji (poproś o recenzję, zatwierdź lub poproś o zmiany,\nkonfigurowalne typy recenzji i opcjonalna bramka ukończenia). Wspólne dla\nwszystkich tablic centrum „Moja praca” (moje zadania, recenzje, skrzynka\nodbiorcza), projekty zbierające karty z wielu tablic oraz statystyki tablic i\nprojektów (prędkość, czas cyklu, przepustowość). Widoki: tablica, lista i oś\nczasu (Gantt), z torami (swimlane), zapisanymi filtrami i sortowaniem widoku.\n\nKarty cykliczne według harmonogramów RRULE, reguły autoarchiwizacji, limity WIP\ni role kolumn, szablony kart, paleta poleceń z wyszukiwaniem pełnotekstowym\noraz kosz z przywracaniem.\n\nKażda tablica z prawem odczytu pojawia się także jako lista zadań CalDAV tylko\ndo odczytu z kartami, które mają termin, opcjonalnie z kanałem .ics dla\ntablicy. Odbiór poczty zamienia wiadomości z folderu IMAP w karty w wybranej\nkolumnie, a odnośniki i webhooki GitHuba oraz Forgejo utrzymują karty w zgodzie\nz pull requestami i zgłoszeniami. Import z Deck jednym kliknięciem, import z\neksportu JSON z Trello lub z pliku CSV, eksport tablicy do archiwum zip razem z\nzałącznikami i ponowny import, duplikowanie tablic oraz zaplanowane okresowe\nkopie zapasowe wszystkich tablic dla administratorów."},"en":{"name":"Kanso","summary":"Fast open-source kanban boards with reviews, projects and realtime sync","description":"Kanso is a kanban board app for Nextcloud, built for speed. Boards, stacks and\ncards with instant drag & drop, optimistic updates and payloads sized for large\nboards (2,000+ cards). Realtime updates via notify_push, with a polling fallback.\n\nRich cards with markdown, labels, due dates, assignees, priorities, checklists,\nparent/child cards and threaded comments with @mentions and watchers. File\nattachments (up to 100 MiB each), custom fields per board (text, number, date or\na select list), time tracking with a per-card total, and private reminders on a\ncard or a single comment. Board sharing with per-user and per-group access\ncontrol, plus an optional read-only public link that needs no Nextcloud account.\n\nA review workflow (request review, approve / request changes, customizable\nreview types, and an optional done-gate). A cross-board My Work hub (my tasks,\nreviews, inbox), cross-board Projects, and per-board and per-project analytics\n(velocity, cycle time, throughput). Board, List and Timeline (Gantt) views, with\nswimlanes, saved filters and display sort.\n\nRecurring cards on RRULE schedules, auto-archive rules, WIP limits and stack\nroles, card templates, a command palette with full-text search, and trash with\nrestore.\n\nEvery board you can read also appears as a read-only CalDAV task list of its\ndue-dated cards, with an optional per-board .ics feed. Email intake turns mail in\nan IMAP folder into cards in a column you choose, and GitHub and Forgejo links\nand webhooks keep cards in step with pull requests and issues. One-click Import\nfrom Deck, import from a Trello JSON export or a CSV, board export and re-import\nas a zip with attachments, board duplication, and scheduled periodic backups of\nevery board for administrators."},"fr":{"name":"Kanso","summary":"Tableaux kanban open source et rapides, avec revues, projets et synchronisation en temps réel","description":"Kanso est une application de tableau kanban pour Nextcloud, conçue pour la\nrapidité. Tableaux, colonnes et cartes avec glisser-déposer instantané, mises\nà jour optimistes et volumes de données pensés pour les grands tableaux\n(2 000+ cartes). Mises à jour en temps réel via notify_push, avec repli sur\nl'interrogation périodique.\n\nCartes riches avec markdown, étiquettes, dates d'échéance, personnes\nassignées, priorités, listes de tâches, cartes parent/enfant et commentaires\nen fil de discussion avec mentions @ et observateurs. Pièces jointes (jusqu'à\n100 Mio chacune), champs personnalisés par tableau (texte, nombre, date ou\nliste de choix), suivi du temps avec un total par carte, et rappels privés sur\nune carte ou sur un seul commentaire. Partage de tableaux avec contrôle d'accès\npar utilisateur et par groupe, ainsi qu'un lien public en lecture seule\nfacultatif, qui ne nécessite aucun compte Nextcloud.\n\nUn flux de revue (demander une revue, approuver / demander des modifications,\ntypes de revue personnalisables et une porte de validation optionnelle). Un\nespace « Mon travail » multi-tableaux (mes tâches, revues, boîte de\nréception), des projets multi-tableaux, et des statistiques par tableau et\npar projet (vélocité, temps de cycle, débit). Vues Tableau, Liste et\nChronologie (Gantt), avec couloirs (swimlanes), filtres enregistrés et tri\nd'affichage.\n\nCartes récurrentes selon des règles RRULE, archivage automatique, limites de\ntravail en cours et rôles de colonne, modèles de cartes, une palette de\ncommandes avec recherche plein texte et une corbeille avec restauration.\n\nChaque tableau accessible en lecture apparaît aussi comme une liste de tâches\nCalDAV en lecture seule regroupant ses cartes datées, avec un flux .ics\nfacultatif par tableau. La réception d'e-mails transforme les messages d'un\ndossier IMAP en cartes dans une colonne choisie, et les liens et webhooks\nGitHub et Forgejo gardent les cartes au diapason des demandes de fusion et des\ntickets. Import depuis Deck en un clic, import depuis un export JSON de Trello\nou un CSV, export et réimport d'un tableau sous forme d'archive zip avec ses\npièces jointes, duplication de tableau, et sauvegardes périodiques planifiées\nde tous les tableaux pour les administrateurs."},"it":{"name":"Kanso","summary":"Bacheche kanban veloci e open source, con revisioni, progetti e sincronizzazione in tempo reale","description":"Kanso è un'app di bacheche kanban per Nextcloud, progettata per la velocità.\nBacheche, colonne e schede con trascinamento istantaneo, aggiornamenti\nottimistici e volumi di dati pensati per bacheche di grandi dimensioni (oltre\n2.000 schede). Aggiornamenti in tempo reale tramite notify_push, con\nl'interrogazione periodica come alternativa.\n\nSchede complete con Markdown, etichette, scadenze, assegnatari, priorità,\nliste di controllo, schede principali e sotto-schede, e commenti in\ndiscussioni con menzioni @ e osservatori. Allegati (fino a 100 MiB ciascuno),\ncampi personalizzati per bacheca (testo, numero, data o elenco a scelta),\nregistrazione del tempo con il totale per scheda e promemoria privati su una\nscheda o su un singolo commento. Condivisione delle bacheche con controllo\ndegli accessi per utente e per gruppo e un collegamento pubblico di sola\nlettura facoltativo, che non richiede un account Nextcloud.\n\nUn flusso di revisione (richiesta di revisione, approvazione o richiesta di\nmodifiche, tipi di revisione personalizzabili e un blocco facoltativo sul\ncompletamento). Uno spazio «Il mio lavoro» comune a tutte le bacheche (le mie\nattività, revisioni, posta in arrivo), progetti trasversali alle bacheche e\nstatistiche per bacheca e per progetto (velocità, tempo di ciclo,\nproduttività). Viste Bacheca, Elenco e Linea del tempo (Gantt), con corsie\n(swimlane), filtri salvati e ordinamento di visualizzazione.\n\nSchede ricorrenti con pianificazioni RRULE, regole di archiviazione\nautomatica, limiti WIP e ruoli delle colonne, modelli di scheda, una palette\ndei comandi con ricerca a testo completo e cestino con ripristino.\n\nOgni bacheca con accesso in lettura compare anche come elenco di attività\nCalDAV di sola lettura con le sue schede con scadenza, con un feed .ics\nfacoltativo per bacheca. La ricezione e-mail trasforma i messaggi di una\ncartella IMAP in schede in una colonna scelta, mentre collegamenti e webhook di\nGitHub e Forgejo mantengono le schede allineate a pull request e segnalazioni.\nImportazione da Deck con un solo clic, importazione da un'esportazione JSON di\nTrello o da un CSV, esportazione e reimportazione di una bacheca come archivio\nzip con i suoi allegati, duplicazione delle bacheche e backup periodici\npianificati di tutte le bacheche per gli amministratori."},"pt-br":{"name":"Kanso","summary":"Quadros kanban rápidos e de código aberto, com revisões, projetos e sincronização em tempo real","description":"O Kanso é um aplicativo de quadros kanban para Nextcloud, feito para ser\nrápido. Quadros, colunas e cartões com arrastar e soltar instantâneo,\natualizações otimistas e respostas dimensionadas para quadros grandes (mais de\n2.000 cartões). Atualizações em tempo real via notify_push, com consulta\nperiódica como alternativa.\n\nCartões completos com markdown, etiquetas, datas de vencimento, responsáveis,\nprioridades, checklists, cartões pai/filho e comentários em conversas com\nmenções @ e observadores. Anexos (até 100 MiB cada), campos personalizados por\nquadro (texto, número, data ou lista de seleção), registro de tempo com o total\npor cartão e lembretes privados para um cartão ou um único comentário.\nCompartilhamento de quadros com controle de acesso por usuário e por grupo, e\num link público somente leitura opcional, que não exige conta no Nextcloud.\n\nUm fluxo de revisão (solicitar revisão, aprovar / solicitar alterações, tipos\nde revisão personalizáveis e uma trava opcional de conclusão). Um espaço Meu\ntrabalho que abrange todos os quadros (minhas tarefas, revisões, caixa de\nentrada), Projetos entre quadros e análises por quadro e por projeto\n(velocidade, tempo de ciclo, vazão). Visualizações em quadro, lista e linha do\ntempo (Gantt), com raias (swimlanes), filtros salvos e ordenação de exibição.\n\nCartões recorrentes com agendamentos RRULE, regras de arquivamento automático,\nlimites de WIP e papéis de coluna, modelos de cartão, uma paleta de comandos\ncom busca de texto completo e lixeira com restauração.\n\nTodo quadro com acesso de leitura também aparece como uma lista de tarefas\nCalDAV somente leitura com seus cartões que têm data de vencimento, e\nopcionalmente publica um feed .ics por quadro. A entrada por e-mail transforma\nas mensagens de uma pasta IMAP em cartões na coluna escolhida, e os links e\nwebhooks do GitHub e do Forgejo mantêm os cartões em dia com pull requests e\nissues. Importação do Deck com um clique, importação de uma exportação JSON do\nTrello ou de um CSV, exportação e reimportação de um quadro como zip com os\nanexos, duplicação de quadros e backups periódicos agendados de todos os\nquadros para administradores."},"zh-hans":{"name":"Kanso","summary":"快速的开源看板，支持评审、项目和实时同步","description":"Kanso 是一款为速度而生的 Nextcloud 看板应用。看板、列和卡片支持即时拖放和乐观\n更新，数据量按大型看板（2000+ 张卡片）设计。通过 notify_push 实时更新，并提供\n轮询作为后备方案。\n\n功能丰富的卡片，支持 Markdown、标签、截止日期、负责人、优先级、清单、父子卡片，\n以及带 @提及 和关注者的话题式评论。卡片附件（每个文件最大 100 MiB）、按看板\n定义的自定义字段（文本、数字、日期或下拉列表）、带单卡合计的工时记录，以及\n针对卡片或单条评论的私人提醒。看板共享支持按用户和按群组的访问控制，还可选择\n开启无需 Nextcloud 账号的只读公开链接。\n\n完整的评审流程（请求评审、通过或请求修改、可自定义的评审类型，以及可选的完成\n门禁）。跨看板的“我的工作”中心（我的任务、评审、收件箱）、跨看板的项目，以及\n按看板和按项目的分析（速率、周期时间、吞吐量）。提供看板、列表和时间轴（甘特图）\n三种视图，并支持泳道、已保存的筛选条件和显示排序。\n\n按 RRULE 计划重复的卡片、自动归档规则、WIP 限制和列角色、卡片模板、带全文搜索\n的命令面板，以及可恢复的回收站。\n\n每个有读取权限的看板还会以只读 CalDAV 任务列表的形式呈现其设有截止日期的卡片，\n并可按看板发布可选的 .ics 订阅源。邮件收取可将 IMAP 文件夹中的来信转为指定列中\n的卡片；GitHub 与 Forgejo 链接和 webhook 让卡片随合并请求和工单的进展保持同步。\n支持一键从 Deck 导入，也可从 Trello 的 JSON 导出或 CSV 导入，将看板连同附件\n导出为 zip 并重新导入，复制看板，管理员还可定期备份全部看板。"}},"isFeatured":false,"authors":[{"name":"Fatih AKTAS","mail":"akfatih2@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhPGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE3MTI0MDE5WhcNMzYxMTIyMTI0MDE5WjAQMQ4wDAYD\nVQQDDAVrYW5zbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKE6NPmM\n+wF+kI+LSAH5YtwvPrAo+OaWYFQ5MBYIkjgZT++6SZUoXD7MT85PUbc3tBg12xfY\nETy3oDXFayGtZkFh33okmWQZdqhcacxkBUwddGYuDqC9+CuccHkzJt2fmGwWzD36\nPyHMCeFR/ugGReu9Hc+l6FNlvNzxp6rDivgNuk+HAFqVhlQ116o69H/CTT9RFW7C\ng2WcZ8Yru5wrPeGbxpsLFNkQHXlca86gfHox8h8vUWgYXdKidcWLkHfFvOqXy8Ec\n9ipQ5wl4Y//cFBY3OP0H2ttqQdrdbblu9mWQO4piIg6eBICOj+y4VQ4QkHsU2Gjm\n1F7LFAysa7vv2Hu7TeLLkloy+1fETsACanU/Lfipy1Nv/ukhbp2X6MpWrKUi+Ubz\n12AWJwUAgOx/gFxKVDvGTiV4wQxEVxNvsVEY/iDUbX04T3XrxTTOdwPU/IyimbsN\npNqf2PDS78rgQuh5kmtBBwVsc08PU36LQgR6rRh4VdQuWKWlIZgFqGCskqgFhsQz\nS3zBifsWvJUlSlrgOSRBVe/xJ8z4HY8kZBiGM/010LrOWbkybrBYLfisSO4ovn+n\nB0VEoHCvRvAdPyzc2UoxFpm3Abdpi5U2I0zbq1ghzLgqtNbTpSKpuYkJoeQpQr4F\n3pg0UPZVJemTY+MmmvBi250FWJA4AFMqv/LzAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBADmZAQ8UENbDhZeSzSuoJgA6TiI56Ztv+UgK60D7nTJgqqhensRjUjGKNUpb\nVy+oPJ5b77kmizDaipbjibjYngcq+54sMyPOm7Vkw4gIQWbfebBOpntz24g05Ccw\nYKHlxXUfxSByheKHwiIVbvlWHnoW8d2OggLALyhorS4xgM+n0V31DoJWZVjEvvHv\n/zcjuaMSSIT1vPe35F0rOsWbkO0ypJ3LB6H8jOnK1NuHJZ816hHazQw7ebggq35M\nE2FTmvb1EWO3TEp9a52AJsSjQofPLbV79PqvUUgUc0w22DmHcRsJEihS2gelDEkQ\nG/H8owESBC2qXFhsk0X7WE8cx9c=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"xwiki","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/xwiki","website":"https://github.com/nextcloud/xwiki","created":"2023-01-04T16:26:42.143613Z","lastModified":"2026-10-01T13:24:21.110036Z","releases":[{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/xwiki/releases/download/v1.0.2/xwiki.tar.gz","created":"2026-10-01T13:24:21.104932Z","licenses":["agpl"],"lastModified":"2026-10-01T13:24:21.165449Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=27 <=35","signature":"FKcfRwQrm5i28d43Ly8pZ1DH30IGj4caAo2XtyweEUsSNREsCond605gmQ6yToZK\nb/LN59+RyLEsZKAapjE+qA5XU4R4tVZ/Wjc7/Gv+9skorC8A81U+BHoITAU1QAc2\nxSHnRqPkaSsK/j2jphyCdKTV9Qzi2Bl6fL/0oWzjPsLWDRJgsZTZbvbIuFEutk6g\nD2faldXNQfy3NizunW+hYcCuP0zoXrAsFiJGPsoXHZxWGxYrMw6VBD737Nxt9bQ/\no1x+dAdz4l2jOdDkgPVPs0KSQ66oH41a6xdIGh3p/pgyq0IuvRWTrwKfrPVTdEp4\n2JhfNnQTceByWA/dhizVaM7+w+rzKxC45Tw9f3sLiQBBunlH+9SlU6fVSjwdyMRw\nojRUo1HE5oom5Kbn9mVfCywG5mTOksetRqAfDgs19TykmGGA8ilPfMHWdSDfw3bP\nXqB/MYxaluMYkXb3gZlgNfcCJYoW903R/36iNSSfKGvxqX0Nzev1yGWjNmgX7xko\nziZmP8V/+v4fyID4fxT0oJFdJ98I3L4FQCOCw8a7F4nTyQMwHxWv35zN6W2hwrkW\nWR3cqDlRpUh63n2eBpZLYKPuYxn6usbhhjiTEiRA/SoaUJAqVBPLhZ6AI5MqmMTo\nVpzpG6qs9rIQUd1Qu/4RRmPaUuPT++GtiU50vtj8KF8=","translations":{"en":{"changelog":"### Added\n\n\n - Support for Nextcloud 35\n - Translations via Transifex\n - A hint about configuring OpenID on XWiki for the integration to work"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC94d2lraS9tYWluL2RvYy9zZWFyY2gucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"XWiki","summary":"XWiki Integration for Nextcloud","description":"This application allows you to search and display your XWiki content right from Nextcloud. XWiki is a powerful development platform that allows you to customize the wiki to your specific needs. Using structured data and in-page-scripting you can create macros and applications that allow you to extend the capabilities of your wiki. Note: full functionality requires the Nextcloud extension on XWiki (11.10 or later required)."}},"isFeatured":false,"authors":[{"name":"Raphaël Jakse","mail":"raphael.jakse@xwiki.com","homepage":"https://xwiki.org"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhH4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMTA0MTUyOTQyWhcNMzMwNDExMTUyOTQyWjAQMQ4wDAYD\nVQQDDAV4d2lraTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMw99Iuc\nsjLnSCOeJLmeuFG7dBR3+2m94ocQqXc3swiqkeehlCYBinC3ddmWV1Ww6JHi1Jms\nHegZ/fBI4hsReJk4ejyB6i4Gh9VcWepWC6HthOpx/t9mgFG0e2l5OXF9y+vuUmLP\n/IIMUzv+pA+Qqdj+ZYjLpKHnw0S6aIxqFv3Wx8IECUpx3wYt3cdz64hf14N3Iq2n\nu4SPm99NHWEbUiUz+C+hQ17HIbqOCIz79pf32L3yHJfamBaLmeKuSPYAs57ZUp6h\nOFyKSOmrVsoP5em9wKDJB1aj+YsZEYERgPDyayz26OEpC2NV8HtWeysuuSgeF2RW\ndUwcopByQKeh2tPAtEI2XagM2zXtFf8BSBL4Oq1WqKwSk7OBCRjOlaA4d4Al186P\nbPTJ+px5fHz/63p9oS7O8NQQJoqZcgef9VQUo/pkys7N7vWpFLdPmqCW077tqxmo\nzCyqRIR9E8yhWUw91oiZFg5a66BkES21euziLJc0WBZ3IsgTVekgs+qTReIaIbES\nwsTiGMqYAb5/FaV5MKJL2st2UHj+sdN24B5qDUwcc7yYI4eZ3BLJGhKKHj3clSjw\nQCcfwtvOJFjuI18ZiS9gi2Dr74S5yhvOhebDuCX3LmLaQ9AaXFLYXnRBNvyDEM03\nfBlNWJNe+Ey3FOqFnVOAIbyGVeUYF5CwVY2nAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAAPcQuoQT4OI/Jb2SJA+s2fRVXJecsxaUxJv1Bpql2grm1y+gJ/yauiLBG+G\niTShbZgv85q1TDxciO4eDWM/9HO5gGUzohI1xvvquZeM+VWKOvF8ic144LDUtqpo\n1pZMnvzBouoIHOSHlXzBZWHKKO+pU+xrxFjlEGDYG4T2rnrdy1RttF6bZD1TffFF\n02v8uVXzlf6XbVVDd6tvwqZmAnb6xXphmxjotcyYDTP73D5MN1+5lUVWDhiQcUpU\nSDviDJv0uPqfA9sJvANZPrItKst2C4toKSdveb8DG1Jy6dLhrpjzEWCW4jgf0ky8\nayBO9CgGPyYd4bPnN7gM2GUeE0E=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_zulip","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_zulip","issueTracker":"https://github.com/nextcloud/integration_zulip/issues","website":"https://github.com/nextcloud/integration_zulip","created":"2024-07-22T17:55:31.074734Z","lastModified":"2026-06-22T11:19:45.634547Z","releases":[{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_zulip/releases/download/v2.3.0/integration_zulip-v2.3.0.tar.gz","created":"2026-06-22T11:19:45.605023Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-22T11:19:45.684454Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"fTilr4MEtHdG6v3RcNb9vrZlEhkPdNkIimQCt2cTWEDlt5b4WEiyTBT3LzEiTNTGqD1ab33vV2TxA/AfJ/R0YHRXIOuQyFi9xvW93Gger0/oTr5vIAI3Tm8hOsfE/hVDAhRQQmZJZ5PG8kj3yRCH5KBIAiyVqbepu7JXPnKJij2wWy8+AajbFYblNTPwd+8RtvUIWKvlge5v9Hg4ahvUHr6yJTeAexqnCHG8lxtmLdQRutDRjGduKrZndV+vzupa23vmTghx3k5BIW+lowuRDIbX1jqZxKsgR4Y4guBJycs16+57Ay3x1lVf4FJlIxevPSRWT+XhUtJr9tXir9Xh/MpjG31+AubY3q2/teOi8WEMp4j6bTs07OiPqf1kqRImDpevDP9Jno/SsXCySUPB4+3InNKcRwsojN7IMqPMyTwEpsvxjj048HjpZkYHsw2/lcfwZBe82nwA+l1r88yHXt7BQRv4WcrVNRK4PpB40+kx1bPKo2P3uA278SRlNmR4QttXjZTkQN6Sj+OUh29T5d9iwW++BJhcRsp80xGZxBgsFPxuFEQup2jPOd7fdKY7PmYCjdlNTKpHPN4L6Ptz9K5fe489yfESldBTzOfGGj2MfG048YjvfxzjrSJDT4Wq1UqUdG6mWwcw1zfpGiB/VOHHUkzlkE2GYzlv9cwPeoE=","translations":{"en":{"changelog":"### Added\n\n- Dashboard widget displaying latest/unread Zulip messages. #126\n\n### Changed\n\n- Bump max supported Nextcloud version to 35. #135\n- Update npm packages. #110 #111 #112 #113 #117 #118 #119 #122 #124 #125 #127 #129 #134"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl96dWxpcC9tYWluL2ltZy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl96dWxpcC9tYWluL2ltZy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Zulip Integration","summary":"Integration of Zulip","description":"This integration allows you to send Nextcloud files to your Zulip chat instance as uploaded files, public shared links, or internal shared links.\n\n## 🔧 Configuration\n\n### User settings\n\nAccount configuration happens in the \"Connected accounts\" user settings section.\nIt requires you to specify the URL of your Zulip instance, as well as the email address and API key associated with your Zulip account in that instance.\nThese values can be found in and copied from your Zulip account's `zuliprc` file located in **Personal settings > Account & privacy > API key**.\n\nIf those settings are not configured, a link to the \"Connected accounts\" user settings page will be displayed when attempting to send a file to a Zulip user/topic.\nThe context menu to send a file can be accessed by right clicking on the file/folder to be shared or selecting them and clicking on the \"Actions\" button."}},"isFeatured":false,"authors":[{"name":"Edward Ly","mail":"contact@edward.ly","homepage":"https://edward.ly/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhJsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQwNzIyMTYzNjQ2WhcNMzQxMDI4MTYzNjQ2WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl96dWxpcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBALS2ECiri1dIVY4Y1lLsANBG1rlKKgPU7iE3r/nFOruhD+X6VlZ3lCHU\r\nJ1i2V7tXVk+zXqfwKEGTpbRt8t6f+kY2K7b4qhqhFYXp/2xVV2Nlfu+xySesITPr\r\n+zH7oWwJpY1fd7F+cAlAtUnn3CX/43JWEpoovIFpgOFkoH9/M0qbgl9sClGGUxoD\r\nu5Oo6C5/LyjkCrgbjVfPtA1AzS0zuxXAtv6XVlkCLXgW520AyxxkG0SnMFSNX1OH\r\nCffa70LcmT0GcW5FDN6UIhSxI3f28AtjAAfCxZajn2JwvVFH4KTM6PizBZ8uOPyu\r\nghH23QZWv48n/4WYIqCyW8D//65E8ZlD8Ch9ZF2Ih01m+EuThvjnLOe2r35AHijO\r\nXge9eT/laMevgtlQrwGMvC4svzFE2pq39xnqgP/rxDC81bGb/fM5Et0/VQexeiuO\r\nkNxLjysVfJcqi5ORdZM+0KpqsX2esbSXnG7INKV3D4KUKzSGB1M3HXqtOUYm0YJ7\r\nffue0hWVbpZR3xTkGussoaDD2UiovEgTdUCM9uYwsvpGqkwQ4FZ5pgH1bfune1Ac\r\n2SUYGclR/ti/+/ouqh1Wts1TcPTNISJHWCmYWUKXD+J2znz8rpnQv8ovup1lW6bW\r\nPsfr2gcvKmhKHmjZrZHPoNG0XMNNVI1uSggpR9l2ixpgt3U4pFp1AgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAC97qWJt97eGjRoBwv2tbSqLtQ3ipBcvo/sRcQlXmL7v\r\niI04iERF9tgJTo46b9t+Y3R27dp7vfVGP6XHyS3wGXzumtBR7xtaB+V/LPb8BSmJ\r\nM5X5F61ccHmruXt21Z/gzfqo43eUOrB1K9W6++F3zbwOVORUjytVO1e0HSfBRZYo\r\ncF301SZPSsVmx7OmDbjQYh/Cid7I8tYhUzthiNWzXS/hVcWp6MzgwNWWBtlkClAf\r\nOAqSOw+iWEVQnsDlX7W8hOxEAroXYI9s6Yi5kFJlgo8kGlWzhLoafubOSJojWV/G\r\nQNNMlzC0gpcGd3hGAOFKkZBQuBir6UuyT+QdJdfGQxI=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"external","categories":["customization","integration","tools"],"userDocs":"","adminDocs":"https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/external_sites.html","developerDocs":"","issueTracker":"https://github.com/nextcloud/external/issues","website":"https://github.com/nextcloud/external","created":"2017-05-08T13:39:22.514064Z","lastModified":"2026-08-24T12:30:09.726164Z","releases":[{"version":"10.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/external/releases/download/v10.0.0/external-v10.0.0.tar.gz","created":"2026-08-24T12:30:09.705967Z","licenses":["agpl"],"lastModified":"2026-08-24T12:30:09.789982Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"lRk5teAR9qrGAdR5NHfQOtHvj2EBx+aEEssdgRwvHHX/DioTlnqwqcEhe7rHDAVGBE/dvOJrMSkEHt6mr+GOHK8+wM6h7rNd3O+7TAtlC5RZWCqwWDaO72+Ka0lPU/tTyuq3rIdN2RxdNZgKDNOgqVmAGkwV0wABCDEMLE/zriptTJOoNgR3kqQvrtJA7d0/eLvkKl9GRnjX9AYMEdJGO7PP4MwhFJM5c7CW0IC6GKQFJuqZBpUYXy86SYmTnxX2viAAqIVYXg2PeKuOvcCW6wCFq27pK4Y/TqHn3y2FKLu+ilhhfscXAA7f4nbmr4qtW1o3Oyc7kCYnx/sy+UQz99OTUba1PMIqG+eIm9Rc/tkbkhugdCUTgzpcsKPg1MsDqxCzEsW8klitzGiuQCTBMadD40zRsGOsX7PQ2WR9aN1QF5eh33ApFaESiix/JvUydqsJSpGE8bAbswXTZYWh/rXFg1bgSZkOAJ9h92NjfS6eTp4EusdyBMYolx+UUP2SgpZYTlQHpcdGELAphNLNahH/MP46JNTMZmB/XckNIoFMJzv96e89QZE3xUGGHx4HROd405iogb22cbKrONPSyTQJBtDxRAGhjtQmwaHw48Kh+PvjElQMFbZrxdTJtoa1SbKbKrkkeIOzMipP1TA//K15FgLx9MNeSwvkzYmgwpI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9leHRlcm5hbC9yYXcvbWFzdGVyL2RvY3MvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9leHRlcm5hbC9yYXcvbWFzdGVyL2RvY3MvbWVudS1hbmQtc2V0dGluZ3MtaW50ZWdyYXRpb24ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9leHRlcm5hbC9yYXcvbWFzdGVyL2RvY3MvcGFnZS1zYW1wbGUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"External sites","summary":"Add external sites to your Nextcloud navigation","description":"This application allows an admin to add additional links into the Nextcloud menus.\nFollowing a link, the external website appears in the Nextcloud frame.\nIt is also possible to add links only for a given language, device type or user group.\n\nMore information is available in the External sites documentation."}},"isFeatured":true,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9166666666666666,"ratingNumRecent":0,"ratingNumOverall":12,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhBQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNTA4MTMzNzI0WhcNMjcwODE0MTMzNzI0WjATMREwDwYD\r\nVQQDEwhleHRlcm5hbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALjp\r\nHvgG4zSf5C9SQMzWZZO9hSNXXq021yp+lfioTGHA4tVboHyyA7whbv1458ur2Vta\r\nVszKiSbsC/uM+LMQ4XYIOLL1pGYxFow76UU/p7BZUdspO9hoFaasDmC5mKm7gnTK\r\nMlFkiekzUtEDOWdiars9xAantoBAk1yE2BLZ8e8FDc0zTs98t6I9+Wr/6d1D3gQ3\r\n9izdD1OMf+58SV2ELzain5RYJlNY6GCpSgb8pJcZnv6YPjXXP/CSfYVrJXlD9Szq\r\nbMm5LYduGozYmR+AdO5+ZFsM1aJxFxKX5BM/+rrHur9NNDlvmZJ4tGc3tlSrctWT\r\nGQkJrLH0pWgrL0oxj71wYTkga39goTEgZGGRTl1szcIvqem5HAcEVBL5M+VRyRTq\r\nbDuO+hoRNOESISSakHuE1vDAJRsliFn+Aak0u6ijNmE2tLgG/kIu0qBnedwf3ryY\r\noZj/LcVS7xg/8UtmSbj8PoBHfakOalh2qqV4YQ0MmPWuH0zO4/xwCxHl33tE4g3t\r\nRm9eLKQFhKh7K01cQY/BDDhCWNKPPn8RRn7qzn97Iu3ePsEJQU56mABll0aItL6S\r\n+wA4mphsbVnudl+8Spy+xtGRrLQpHQ3yH7iE2MbLCo4zcSeRKobkO8cb07x2wd+y\r\n8OTtHXcvv7uEXvo4BOxWAu2xgPcWcop0cVS6c+ldAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAFCA+8x20n/I81hwafHp/iDL0aogA9wwRC8G4fh2wJ9r4FSoAc4P9vgM\r\nWvD+cFg2w/xS5pYXJjjUQUc4FHPO9YqVeRgiHVeSC9UAkOOM02zJvoJ8pL0tlmfA\r\ng5DeqjqHm9MFJsYZXwnP/uTAPKVJM7pPz9SKy55fxGvH5QvEpkLZRqoKJDFXYdZf\r\nkXXhU3N2qFUg6lwzRCmdZ/NUXircnlFneX1DNjNHBjvUug8hAxCALARmQgJBuXrL\r\nqQv0R3LqPBwPCGt+3OCqUrIpizDLyqE8TFWreesXN7HJxie9Kgkmap7pNl20d2fA\r\nvfiaH5A+ADn3d5Gny9amIeQGA8kKeis=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"grafana_sync","categories":["files","integration"],"userDocs":"https://github.com/kubed-io/nextcloud-grafana#readme","adminDocs":"https://github.com/kubed-io/nextcloud-grafana#-setup-in-three-moves","developerDocs":"https://github.com/kubed-io/nextcloud-grafana/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/kubed-io/nextcloud-grafana/issues","website":"https://github.com/kubed-io/nextcloud-grafana","created":"2026-09-07T19:53:52.929918Z","lastModified":"2026-10-21T18:46:02.007778Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kubed-io/nextcloud-grafana/releases/download/v1.0.1/grafana_sync-1.0.1.tar.gz","created":"2026-10-21T18:46:01.998303Z","licenses":["agpl"],"lastModified":"2026-10-21T18:46:02.051014Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"sIwFdQi6auf/rTSlBJBmzd5DCITlOTPzDbe729NJufrE5pllPhS2BEXTFzbDVHk0k1PG0zWKlh+xu4RoXH7TuLmFNIYKLVeSE4ekOByduki7FA16qMeiyGGixUF9y0crj1MX1u0GJ03J9BQBSPoMazxFqizI9VJX+2sOdTwy08FS2niErwx93NutXrdLI5IleGmfh1AhdUA2HPqWd2rtoQGI6x7rGmX2NNG5k9Eq5qZGDunCBbsRHNtwBJe9dvJiHlbtPYVztsoPPIHRvclUlf2UIpMT2wCMtxQN1Q1lM8/RxAQNr3Uu/5P51TW8mTI3cK8gYucyDfN9gBDpXZy2l3OrtCm6jgkmhqyiQ1uY7lpvi4JB51s4zAgYruvVKpCoZlT12S7SHutHmu3ddB8LmlwRmfmH5ES5KhwuybHE2ftA4/ta8zHG9MSgIRm1oeP32NivG1srE717RKVG3GvxqRj0f6whywe8mIjNXtWck1L8mQiCpaJ9hhCLOhT5/iMFMY9Alq8bPp1v5JaOT80y81lPkXN0G7XGEmCJJ4hYUHdQ/Y2bnIh3CoPCoQ04G5212Kv1/U1f37iqviKYaNqJ+MtAibpdE5nSs5DqyjxpdTS4oe/N15bl89EqGyhu2nMUuEiqIVNQaYqNF2FHFOXGtiOd4u5GHCkFQ+vjaMxOSvc=","translations":{"en":{"changelog":"### Added\n\n- Supports Nextcloud 35.\n- **A mapping chooses its Grafana dashboard version.** v1 keeps the classic JSON; v2 mirrors Grafana 13's new dashboards as YAML, so tabs and auto-grid layouts survive an edit from Nextcloud instead of being flattened.\n\n### Changed\n\n- **BREAKING:** requires PHP 8.2 or later (8.1 is past end of life); Nextcloud 32 on PHP 8.1 stays on the previous release."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvbmV4dGNsb3VkLWZvbGRlcnMucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/nextcloud-folders.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvZ3JhZmFuYS1mb2xkZXJzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/grafana-folders.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvanNvbi1lZGl0b3IucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/json-editor.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvY29udGV4dC1tZW51LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/context-menu.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvY29ubmVjdGlvbi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/connection.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvbWFwcGluZ3MucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/mappings.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvcmVjeWNsZS1iaW4tc2V0dGluZy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/recycle-bin-setting.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1ncmFmYW5hL21haW4vc2NyZWVuc2hvdHMvc3luYy1hY3Rpb25zLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-grafana/main/screenshots/thumbnails/sync-actions.png"}],"videos":[],"translations":{"en":{"name":"Grafana Sync","summary":"Your Grafana dashboards as native, editable, backed-up Nextcloud files","description":"Grafana Sync turns a Nextcloud folder into a live mirror of a Grafana folder.\n\nMap a Grafana **folder** to a Nextcloud folder and everything inside it shows up: subfolders become folders, dashboards become real `.grafana` files with the Grafana icon. Click one and the live dashboard opens in Grafana.\n\nNothing is matched on filename. Every file carries its dashboard's uid, so renaming, moving, copying, trashing and restoring never break the link — and re-running a sync never duplicates anything.\n\n## ✨ What you can do\n\n- 📊 **Edit a dashboard as a file** — save it in the Files app, over WebDAV or from the desktop client, and Grafana has it\n- 🗂️ **Keep the whole tree** — Grafana has real nested folders, and both sides mirror each other at any depth\n- 🚚 **Move** a dashboard between folders or between mappings — same dashboard, same uid, same URL\n- 🍝 **Copy** one, and get a real new dashboard in Grafana\n- 🗑️ **Trash, restore and purge**, with an optional Grafana recycle bin that preserves ids\n- 🏷️ **Tag** a dashboard on either side — the file, the JSON and Grafana all carry one set\n- ➕ **Create** a dashboard from the Files app's **+ New** menu\n- 🖱️ **Open in Grafana**, or open the JSON in a text editor\n- ⌨️ **Script all of it** — every admin action has an `occ` command\n\n## 🗂️ Real folders, all the way down\n\nGrafana has real, nested folders, so there is no tagging scheme to maintain and no flat namespace to fake. The mapping is a plain folder-to-folder mirror and the whole tree comes with it, in both directions.\n\nMove a folder and every dashboard under it is re-parented in one gesture, uids intact — not deleted and re-created to get there. Rename it on either side and the other follows, because the link is the folder's uid rather than its name. A folder holding no dashboards stays an ordinary folder, however much else is in it.\n\n## 🗑️ A recycle bin Grafana never had\n\nGrafana has no trash. Delete a dashboard there and it is gone; delete a folder and it takes everything under it, in one request, with nothing to undo it.\n\nSo this app adds one. Name any ordinary Grafana folder as the recycle bin, and trashing a dashboard file **parks** its dashboard there instead of deleting it — id, URL and history kept. Restore the file and it comes straight back out. Only emptying the Nextcloud trash makes it permanent.\n\nThat turns an irreversible cascade into a move. It works from the Grafana side too: purge the parked dashboards there and the trashed file follows them; drag them back out and the trashed folder returns, uids intact.\n\n## 🧭 Sync or Link — the folder decides\n\n| Mode | The file holds | Pushes back? |\n|---|---|---|\n| **Sync** | The full dashboard JSON | Yes — fully bidirectional |\n| **Link** | A pointer (uid, title, URL) | No — clicking it opens Grafana |\n\n**Link** is for dashboards somebody else owns — provisioned by an operator, managed in Git, generated by a chart. Nextcloud treats them as read-only and a DAV guard stops anything overwriting the pointer.\n\nA **sync** mapping is therefore also a real backup: every dashboard in the folder, complete and versioned by Nextcloud.\n\n## 🎨 Honest icons, honest dates\n\nDashboards register their own mimetype, so they wear the real Grafana icon instead of a generic braces glyph. And each file carries **the dashboard's** created and modified dates rather than the sync's — so Recent, sorting and search all tell you the truth about your work.\n\n📖 **[Full documentation and the `occ` reference on GitHub](https://github.com/kubed-io/nextcloud-grafana#readme)**\n\nRequires a Grafana service-account token with access to the folders you map. This app is in early development: it works end to end and is covered by tests against a real Grafana, but has not yet been run widely.\n\n---\n\nThis is a community integration and is not affiliated with, endorsed by, or sponsored by Grafana Labs. \"Grafana\" and the Grafana logo are trademarks of Grafana Labs, used here only to identify the service this app integrates with."}},"isFeatured":false,"authors":[{"name":"kubed-io","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhP3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTI1NDQ1WhcNMzYxMjEwMTI1NDQ1WjAXMRUwEwYD\nVQQDDAxncmFmYW5hX3N5bmMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDQurkhCnN4X/K4eSe/SNcoJ1SXWcYAmF6eGHgTfSVqjQuebjZhUCkqbJ6R/7iC\nIyOQU0+z/4xjW2Vrn2ys53R4MjPZ4q2XKUmAxwGo+M3q4plVGCUuSClwzUgi1KKy\nnNMRiIuVsbFFgt1iaBPj1uFXvWC8xxgy0ccXl1hwd+3TrkFFTfiJFIF+FWhinerE\n1xCkZVECkortBWoG97VQmn8Ba5tDwoADspiTstxOyn535B61dI5VbxfjulMP6Iqp\ntLGEPk+WwO/5C4bMVqhhV5L0+xt2NEteLDmBuKRbV/gwjPSUwprTNxD8tba6IqEt\nbQdRjlqwx4zwbEok/8+7Wj1erZH57ui5BOOX3DXErw16NOBODUzxTtbD54ATap2c\n90RoXzBUam+MT7+ukDpQEhJ8FegPTaosfzTgfthgFixpjF/EyVj5qT0ulgR747Xu\nW1YXeWZ9vdCw3cT36cNdaF8CWifRj/CNprMcHs+63vla6A+QaOQCjDWpnU+7Lcpm\nuJqsrr3xt52a3MXKCJ1VlbyOoGFhUU/yC+Uf+d7w2bnSELUGUjTAuEME65nwI+0e\n6wen3AhZ1FFxqgJYzGq0hd6y/uLDsC/Us+ej9W+M30b0y2RADvc37OCgW5icGVQY\nmStqwVJVcIXzju4X6K+IgfoABWqTbFuu45jLumVCkgQ7CQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAVRgXhCAfrowGwMyTk3S1iffSz4pbusLImbYG4w00GOLmmvBxu\ng/RmiItZ/faqBs9QY1UD4v4IcMWetP0FK/CEBeECBXzbu6wjiYfX4uSc/Qgo1zMi\ntlPnTFlMPQAjleqFJx6Z637xJyL3AVCFj/bgIidb4SLa1TMpgyITgVhQ8H9k0Yth\nXKERQhxP6kI+gRIXQGezvHuqglYBlq5hIOkcHYiQMmC0NVzicRleFCsQ5XEjMeFN\npcjRboAVnOtZJqHaru7RzBoRabOU4FQKImbcc6FD4rgg99BRKdYKLPdmMhoUiG4o\nEIkFHCVNSkDZ3F6In7jrZckkiu1WnHRxq+31\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"audiocheck","categories":["multimedia","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-06-16T20:12:51.642224Z","lastModified":"2026-10-13T16:37:08.158373Z","releases":[{"version":"1.3.9","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.9/audiocheck-1.3.9.tar.gz","created":"2026-10-10T15:26:28.331909Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:26:28.466045Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"HyFb9gGMjcEuZuCndb7XQSZTtc4HVGM4FClOArQcVWEo9pU9U04KJTko6NMgwWXe0lO+Ia+D/2l/YiL8g3X/vLUe7kVOkIMhR4Hb+9Q4COs/SFMpcwepWDeg+EeYWQdlK0g13yT0gJvWclUI7nOOipWp5oFWoGhw7s2j35ZiZsOFi/0NOFskHHViWqrr4uv0Flec3+FrDdcFzFVyQSwz2I5CrqVPm+wawXIcaQU8CP1vMfl/auUOdylyoYAohtT3xGFEVnP+ZnvpVNRd3K++upIRrcsuwQf+gz9StuX9licVRe8EJtzUefK/HqTTLjTF9oUYliA82CFEdu8xOlwAu72IwLgxw+CxHN0LSmY3v42AvBYHUhNhgbtO64o1lEDUKh9k20HqoD8yBTherO2713Ny2Rlq/+qMvqZG6JdsF/93LJVxE2KycaSiYuWnNynnn4ijMX1uXYUFIuh9csoPAytsJ5OponVPcAKsGj/V/OyELsrLWexsBFZR2q+qsOXp028XhLQrFifB5yGXj3RTFKZAk4IQHXGxyzgNlr5+shaE+HVcrcbX1Qqjy1HX/tP/lDBIdmHmH7zB/pS4N2t6R35IEPqJDSQjaIJ7GZsnwJc8AitnTMOZyHoDLzJuIIxJ3rm6+LmVYNmnYO9ElhpGn/gSS3F0yayUNpJukeRCH5k=\nurl: https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.9/audiocheck-1.3.9.tar.gz","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.14: rate-limiter parallel-load fix + DS contrast suite + l10n regen"}},"signatureDigest":"sha512"},{"version":"1.3.8","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.8/audiocheck-1.3.8.tar.gz","created":"2026-10-04T19:10:13.690729Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:13.796980Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"bvKCuri5VKCkgIxnEBYo2YQ79EAY6Uwpc1/R5oPabr5dG2EM1Ct8vPKBt82c83j/u3MgjEWUBunzqfTEZ6UWe/N1eYA5m8Ds5XtAID35pfVTg+/kQxcTYUD848Zjgenl0kObjawh8IT+/t9F7c4TvqsmsSdOQvkRPDy8u9O06U2U1TLUbKumRY1OJ/iG72d2p3UNGKicmSHyGWeAtQEjJRHapD6zhE4w1WQKfFaJovHf3xs+h5FFgkc8OJQFWBDolCHIyvvOukv6lVVuRzsTeUh27+ooiqxFYAmzU82/TA/zhPX4ylUXdV5oeRLrSbaqOsFlZI/I9gMrbDy7gnrPpWPMFxuvn77rMIKMH+WZ8p9von3ThfPIz7fZn955R3PibSSscDOcIYzOR4Nn4KFkomvBsmgN9PFE7pAUEFma4trYL0jwLnBI5JyzXuwx12urbfXDBp+XKEy2UpMEhDq5bQ7YeQhfbxsbaplfQFqDzZlrB7KUHY6ZPw5/TdfhQe6kxfMK1iBdg/f3q4hIe+PYvjToKuRqvXEEUwmxtp5rf4Erl3SjtFvld9BVo394Z4ZwrxIAdbkMIgVzcmAP1XXlB5yj6Hv4M5wtKzD1pMi9O97T7QFtgAiahfP25M5HCv1bpdN7HZgNrFCofvDRgh/MwYET82Xva/oIynLEAeumuU0=","translations":{"en":{"changelog":"### Fixed\n\n- Mini-player touch targets now meet the 44px floor under Nextcloud core styles.\n- Localization: fixed media-playback mistranslations and restored missing nav subtitles; Swedish register cleaned up.\n- Uninstall/upgrade repair paths hardened.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; focus preservation extracted to a shared module; store screenshot URLs realigned with the published listing.\n\n\n### Changed\n- Version **1.3.7**."}},"signatureDigest":"sha512"},{"version":"1.3.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.7/audiocheck-1.3.7.tar.gz","created":"2026-09-06T17:52:36.308296Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:34:04.472565Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"aAt0DHnsYy+k/xKgmVgH5R69Qex0ymU1wa4a9O6YF41xEGStcSNNZOpOcSuvF88Y3Hw59mFZGw9oTOPGpbD9+4pavqZs9YS+WbQlPIovaxmXD7FGFis9A/ebxKplXt8/6x6I5JAbVSS89XJg/fLQugUcKawhJjOdXfRsZfdJiREBvl4dnaDpw0OdkwqOEt2uOoy46+n04P+r2Vi7QW0qmNNylQdeoBPDFs1mevAvrkmShKavFkH31HKUAZ/K9jwoPIKhAqWY3Z3krOYs1I3ivDDX1FL3qeDqD/HpdsSqXTWnG1hzaPIJTePVo9guOIAyxPBkRAlD3wRGhzo8z5Vo6LgVJBoLtq/ALtgPQkUkd6EFE0Fa4M6zUl93mhbwwZGuKFuyxBBWtDcFCtOUvzm0jjJDiBI1hW+IIrh6LyYJAYWwjuS2vu8ro2eCMr8f75ntodPDwidChoGU8EtUBTAx9GR1qM2KPEFuLnhk2Up4ISiTasdYLAL+ZMdQMVDV/UPq35ikUnbgC01Y4qjpRI1KDJQcsZ+14FRbMI0IvQ6E3nGy7pAf+OdeaBP680RcgU5Kw1cL+vGoCWZ++Y/hYYINT1cm/pYRWLTJBph6pke903rgOqazpMFd6+sHzZil7Kh/lePsmiRu2GihDZQHbTeQiwlCUc4+kW1hVCylLPZ3q3Q=","translations":{"en":{"changelog":"### Fixed\n- Authenticated stream opens are rate-limited (300/60s per user via shared `ac_rate_limits` + exclusive lock); over-quota returns **429** `rate_limit_exceeded` instead of opening another file handle.\n- AJAX cron scan tick is **POST + CSRF** only — drive-by GET/`<img>` can no longer wake the scanner; `ApiCsrfGateTest` treats it as a mutation.\n\n### Changed\n- Version **1.3.7**."}},"signatureDigest":"sha512"},{"version":"1.3.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.5/audiocheck-1.3.5.tar.gz","created":"2026-09-04T19:00:06.170901Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T19:00:06.385187Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"UZ1IhP7Aocpvj2XN89U4TEq70g+n8EgkBrQJ5sKx6RPmunDAkCnrPinIFWgeqKEe5mV8W+jczh7uwfWBnGBduQEVp5uojAX7s5yYfMUdxdwObzGmT5mT0UxXVuVJvKNoo1k7ddOeQXpO9lh42KGvYMW0XlYY0xYlvI/rv2xBJbIk9l4vfjIUe2sCG904dFkVd17Z39qlmeCV2ZNx7g13EGbRsNamIXQLugjOiQihntQTsGVA/ekwhr2RIV3YaEe5QZkprHcgDUv44vWwMWaZqosNjk+vjxKfWhe6WleO8nbYUToyhDnhT6Lu+9Wm4HeNdq7eA1wjzfqSyZbwt6U+HcSp3Y45ql4bHkVnh0x8pQlFlsFg4c5B9Iva3Tz2l5yoYjZzJ5vvJqZdwpxlgThNaJY4BaIfZv3eG493iiZTyPbZUGmfafC/lkLqAW6ncPZqqhdkGwUaDEDvyl4MJlgp3NZKUawVH2GsaYGF5NtzO05t1e1tJVCdDUlaOYG7KyjCswf+Cp6rJXizvM2Cw+k9ESfoRLwqvjtoctUiUH07S+m42YcXjEWhT/qzCKqQJGC84Xcl6vS7gs5CwIjgnBc28PyIPdKmnkQfFDEELf+CRf6ozeC03kCS4QqbJl1Tuc6mZiTXHQN/GjjNF/MzLJD109ncvL6wni65JxOWsdhvHbI=","translations":{"en":{"changelog":"### Fixed\n- Global mini-player on Files/Dashboard: use `OCP.InitialState.loadState` (NC32+) with UTF-8-safe DOM fallback — `.load` was never a function, so the overlay never mounted.\n- Restore now waits for user prefs first (`resumeOnOpen` / volume / speed) so server preference races cannot autoplay against the user’s choice.\n- Dynamically loaded player scripts are cache-busted with the app `assetVersion`.\n- Boot is idempotent; global mode is set before the player stack loads so shortcuts/volume stay scoped to the overlay.\n- After browser autoplay blocks resume, Play is visually highlighted (`ac-mini-player--needs-gesture`) and announced politely.\n\n### Changed\n- Version **1.3.5**.\n- Global overlay shows “Loading playback…” immediately while the player stack loads (no blank multi-second gap)."}},"signatureDigest":"sha512"},{"version":"1.3.4","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.4/audiocheck-1.3.4.tar.gz","created":"2026-09-04T16:39:11.980849Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T16:39:12.152067Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"JmIMvvaxd8n8+hou9lcC773VzsSsqDI50jrAzz2JsY/RU2pPTSs+T5rMQAr0/RA7jVLa1hCF1c/xU3kA83V7MWB8kf1ht3HIoyNcX88L0QkMluHZksCUlVI1OV+SpFpiCDC9UJOBxzMd9n2JP3HOGJ0Hmv+ObxtEqJR2ibc4UPfCETkRtPCtkmcNiS0Qawn6gITeoWXVcMZDonsaLqUj0a8Sy68ok5Ld+wPmBfDy0MPr+amK5H4PXQ1HzUBdt6iLIkSa6VvCsNz3dsA+PYV8BRl5YOHdOXkZCHVdX27xvBc8JMHYb4zfyfZrnPym492lR9jHQpPoA7ApPhEEFuAuyErjkznDpWiqKLGuJT0KY71RtqrgSq/Ee4VRkuphZ2VV45ttZokBpCh9gnv5UZED/xaf6Gd3wU4/QIys8K5JNXlxn6d2qseqjdi8c11lwel44y2KG3FaJJQNZq6dxFRtTk8Qm/EEQ1QF6k+hrIGw8cHEvM/OTT+khO1qdh4KSCEXXXyRzfHYR3n3IMM737UUG67dDjov2jys8jHEVGSmXEME1SgAC0MRKlYjXjrqQxA4sq6itgZLzavxihsqOkEhSIGsG/2alGTqLOM4Yzsq3kwDKU2ioT2xiI6yvJ50mVOe0MCPAMPzrQPzEraEY+TvYQ+vb9aIs62Xyv8PSIXXZ9s=","translations":{"en":{"changelog":"### Changed\n- App Store screenshots refreshed against current UI (Library / Music / Playlists / Favorites / Browse / Settings / App settings).\n- Version **1.3.4**."}},"signatureDigest":"sha512"},{"version":"1.3.10","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/releases/download/v1.3.10/audiocheck-1.3.10.tar.gz","created":"2026-10-13T16:37:08.150556Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T16:37:08.266585Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Io3E/J3S7FuQcruoisYr8qzgV8N93jMWo8kxotqSLvEmHa5dr/dR2oY5ImaBG3k296ekOJKD1qcoQFSy3zKyP5J27fJZF2BZQWp3o/DqyJfHqBjzKCGvXmFB4Ab22+f5tzCK6dP+o73rLIlT8lh2cyc9yzKaqVWForGiE0r8XfAA5FBhsn2PmbNtNeBzF8knerU74dYJlZ5B92eKUMd7KX7pSywqU6S2SNPGMQr2yQuncuHlShJBcpxlwOJa2yOzygRacNjuOrhbHbjcpz49VU2qnWPx7tU0i6VpLRHGvbieDdxQFyYyIs/6vBWsd+vfVtzcV4r3pWluKwWN5fpR54hOmzNx/839c6iyi4B4ALd5nEAmbGGTZYK8GmdlYmnYsoxwtyh+10YAFpsq42b/+R8eBERx1tttzLVlqwe1PxEHcaWNGlof/+kItf4/bhynm/1ZfeZndXRlqdIofWcdhQKFYk2XkViVCE5nEk4HWptUkvqsrHRiAu8uboSYr+fVX2VlDkSKgssNmDTT7xtZSffszCj814N3xrcBiuFB40wHinbebNtYCPTLAmG8CGmOna4ofIvP/Fn0jZ4tO3InNY0/P/B9XorfaTatHNnyiUv80J0FRWwJUZ1qWbfmZoiYoUQHN9DT8y+bt0nnyH23d8CBd1EZ2+CS1C411mRwT3k=","translations":{"en":{"changelog":"### Fixed\n\n- App Store install failure: the 1.3.9 store record was registered with a corrupted signature field, so every installation aborted with \"App with id audiocheck has invalid signature\". This release is published with a valid signature; installs work again.\n\n### Changed\n\n- Added Portuguese (pt) UI translations alongside Brazilian Portuguese.\n- Localization: escape literal % in .json values (PHP vsprintf safety); fixed untranslated/case-only values.\n- Internal: comment/migration tidy-up and test support refactor (no behavior change)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wMS1saWJyYXJ5LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-01-library.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wMi1tdXNpYy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-02-music.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wNC1wbGF5bGlzdHMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-04-playlists.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wNS1mYXZvcml0ZXMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-05-favorites.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wNi1icm93c2UucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-06-browse.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXVkaW9jaGVjay9tYWluL3NjcmVlbnNob3RzL2F1ZGlvY2hlY2stc2NyZWVuc2hvdC0wOC1zZXR0aW5ncy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-audiocheck/main/screenshots/audiocheck-screenshot-08-settings.png"}],"videos":[],"translations":{"fr":{"name":"AudioCheck","summary":"Livres audio et musique depuis vos fichiers Nextcloud — reprise, files, chapitres, playlists","description":"# AudioCheck — votre médiathèque audio dans Nextcloud\n\nVos fichiers audio sont déjà dans Files. AudioCheck indexe les dossiers que vous choisissez et les diffuse en streaming avec des contrôles d’autorisations en temps réel.\n\nL’application est **gratuite** sous AGPL-3.0-or-later. Il n’y a pas de licence par siège pour cette application web dans le pack livré.\n\n## Ce que vous obtenez\n\n- Racines séparées pour la musique et les livres audio ; collections, albums et navigation par dossiers\n- Livres audio multi-fichiers comme une seule file ; reprise enregistrée sur votre serveur par compte\n- File de lecture durable ; reprise optionnelle à l’ouverture ; continuer l’écoute sur l’accueil et le widget du tableau de bord\n- Listes de lecture ; favoris synchronisés avec les étoiles de Files\n- Sauts de chapitres sur M4B (et métadonnées des chapitres étiquetées) ; vitesse de lecture 0,5×–4,0×\n- Actions dans Files : lire dans AudioCheck / lire le dossier comme album\n- Parcourir par artistes, auteurs, genres, séries, dossiers, tags et favoris\n- Restriction d’accès optionnelle (les administrateurs Nextcloud conservent toujours l’accès)\n- Langues de l’interface : allemand (Sie-Form), anglais, français, espagnol, danois, néerlandais, italien, polonais, suédois, norvégien bokmål et portugais brésilien (chaque chaîne d’interface livrée vit dans `l10n`)\n- Fondements d’accessibilité visant WCAG 2.1 AA (pas de certification par un tiers)\n\n## Formats\n\n**Indexé et diffusé sur le serveur :** MP3, MP4/M4A/M4B (y compris les podcasts étiquetés comme video/mp4), OGG, Opus, FLAC, WAV, AAC et autres types courants `audio/*`.\n\n**Lecture dans le navigateur** dépend du navigateur : MP3, M4A, M4B, AAC, OGG, Opus et WAV fonctionnent généralement ; FLAC et certains autres formats nécessitent peut-être un autre navigateur.\n\n## Démarrer\n\n1. Ouvrez **Bibliothèque**, ajoutez des dossiers de musique et de livres audio, puis **Scanner maintenant** (ou `occ audiocheck:scan`).\n2. Dans **Paramètres**, activez **Reprenez où vous avez quitté** si vous souhaitez ce comportement.\n3. Ouvrez **Musique** ou **Livres audio** et appuyez sur **Jouer**.\n\n## Limites honnêtes\n\n- Les octets de lecture passent par une seule passerelle d’accès aux fichiers avec des contrôles d’autorisations en temps réel ; les partages révoqués arrêtent la lecture. L’application ne fait aucun appel HTTP sortant pour la lecture.\n- Après une navigation complète hors d’AudioCheck, les navigateurs peuvent exiger un clic pour reprendre l’audio.\n- La profondeur d’analyse est limitée (32 niveaux de dossiers). La lecture/le mélange des playlists a une limite de pistes documentée (2000).\n- Bases de données déclarées : uniquement MySQL et PostgreSQL.\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite.\n\n## Exigences\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL ou PostgreSQL"},"pt":{"name":"AudioCheck","summary":"Audiolivros e música dos seus ficheiros Nextcloud — retomar, filas, capítulos, playlists","description":"# AudioCheck — a sua biblioteca de áudio no Nextcloud\n\nOs seus ficheiros de áudio já estão em Ficheiros. O AudioCheck indexa as pastas que escolher e transmite-as com verificação de permissões em tempo real.\n\nA aplicação é **gratuita** sob AGPL-3.0-or-later. Não há licença por posto para esta aplicação web no pacote fornecido.\n\n## O que obtém\n\n- Raízes separadas para música e audiolivros; coleções, álbuns e navegação por pastas\n- Audiolivros multi-ficheiro como uma única fila; retomada guardada no servidor por conta\n- Fila de reprodução duradoura; retomada opcional ao abrir; Continuar a ouvir no Início e no widget do painel\n- Playlists; favoritos sincronizados com as estrelas de Ficheiros\n- Saltos de capítulo em M4B (e metadados de capítulos etiquetados); velocidade 0,5×–4,0×\n- Ações em Ficheiros: Reproduzir no AudioCheck / Reproduzir pasta como álbum\n- Navegar por artistas, autores, géneros, séries, pastas, etiquetas e favoritos\n- Restrição de acesso opcional (os administradores Nextcloud mantêm sempre o acesso)\n- Idiomas da interface: alemão (forma Sie), inglês, francês, espanhol, dinamarquês, neerlandês, italiano, polaco, sueco, norueguês bokmål e português brasileiro (cada cadeia de UI enviada vive em `l10n`)\n- Fundamentos de acessibilidade com objetivo WCAG 2.1 AA (não é uma certificação de terceiros)\n\n## Formatos\n\n**Indexado e transmitido no servidor:** MP3, MP4/M4A/M4B (incluindo podcasts etiquetados como video/mp4), OGG, Opus, FLAC, WAV, AAC e outros tipos comuns `audio/*`.\n\n**Reprodução no navegador** depende do navegador: MP3, M4A, M4B, AAC, OGG, Opus e WAV costumam funcionar; FLAC e alguns outros podem precisar de outro navegador.\n\n## Começar\n\n1. Abra **Biblioteca**, adicione pastas de música e audiolivros e depois **Analisar agora** (ou `occ audiocheck:scan`).\n2. Em **Definições**, ative **Retomar onde parou** se quiser esse comportamento.\n3. Abra **Música** ou **Audiolivros** e prima Reproduzir.\n\n## Limites claros\n\n- Os bytes de reprodução passam por um único portão de acesso a ficheiros com verificação de permissões em tempo real; partilhas revogadas param a reprodução. A aplicação não faz chamadas HTTP de saída para reprodução.\n- Após navegação completa para fora do AudioCheck, os navegadores podem exigir um clique para retomar o áudio.\n- A profundidade de análise é limitada (32 níveis de pastas). A reprodução/mistura de playlists tem um limite documentado de faixas (2000).\n- Bases de dados declaradas: apenas MySQL e PostgreSQL.\n\n## Feedback bem-vindo\n\nMelhoramos este app com o uso real. Relatórios de bugs, atritos e ideias ajudam — abra um GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) ou escreva para info@software-by-design.de. O seu feedback molda diretamente o que construímos a seguir.\n\n## Requisitos\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL ou PostgreSQL"},"en":{"name":"AudioCheck","summary":"Play audiobooks and music from your Nextcloud Files — resume, queues, chapters, playlists","description":"# AudioCheck — your audio library inside Nextcloud\n\nYour audio files already live in Files. AudioCheck indexes the folders you choose and streams them with live permission checks.\n\nThe app is **free** under AGPL-3.0-or-later. There is no seat license for this web app in the shipped package.\n\n## What you get\n\n- Separate music and audiobook library roots; collections, albums and folder browsing\n- Multi-file audiobooks as one queue; resume stored on your server per account\n- Durable playback queue; optional resume on open; Continue listening on Home and the dashboard widget\n- Playlists; Favorites synced with Files stars\n- Chapter jumps on M4B (and tagged chapter metadata); playback speed 0.5×–4.0×\n- Files actions: Play in AudioCheck / Play folder as album\n- Browse by artists, authors, genres, series, folders, tags and favorites\n- Optional access restriction (Nextcloud admins always retain access)\n- UI languages: German (Sie-Form), English, French, Spanish, Danish, Dutch, Italian, Polish, Swedish, Norwegian Bokmål, and Brazilian Portuguese (every shipped UI string lives in `l10n`)\n- Accessibility foundations aimed at WCAG 2.1 AA (not a third-party certification)\n\n## Formats\n\n**Indexed and streamed on the server:** MP3, MP4/M4A/M4B (including podcasts tagged as video/mp4), OGG, Opus, FLAC, WAV, AAC and other common `audio/*` types.\n\n**Browser playback** depends on the browser: MP3, M4A, M4B, AAC, OGG, Opus and WAV usually work; FLAC and some others may need a different browser.\n\n## Get started\n\n1. Open **Library**, add music and audiobook folders, then **Scan now** (or `occ audiocheck:scan`).\n2. In **Settings**, enable **Resume where you left off** if you want that behaviour.\n3. Open **Music** or **Audiobooks** and press Play.\n\n## Honest limits\n\n- Playback bytes go through a single file-access gate with live permission checks; revoked shares stop playback. The app makes no outbound HTTP calls for playback.\n- After a full browser navigation away from AudioCheck, browsers may require a click to resume audio.\n- Scan depth is capped (32 folder levels). Playlist play/shuffle has a documented track cap (2000).\n- Declared databases: MySQL and PostgreSQL only.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL or PostgreSQL"},"de":{"name":"AudioCheck","summary":"Hörbücher und Musik aus Ihren Nextcloud-Dateien — Fortsetzen, Warteschlange, Kapitel, Playlists","description":"# AudioCheck — Ihre Audiothek in Nextcloud\n\nIhre Audiodateien liegen bereits in Dateien. AudioCheck indexiert die von Ihnen gewählten Ordner und streamt sie mit Live-Berechtigungsprüfung.\n\nDie App ist unter AGPL-3.0-or-later **kostenfrei**. Für diese Web-App ist im ausgelieferten Paket keine Sitzlizenz vorgesehen.\n\n## Was enthalten ist\n\n- Getrennte Musik- und Hörbuch-Bibliotheken; Sammlungen, Alben und Ordner\n- Mehrteilige Hörbücher als eine Warteschlange; Fortschritt pro Konto auf dem Server\n- Dauerhafte Warteschlange; optionales Fortsetzen beim Öffnen; Weiterhören auf der Startseite und im Dashboard-Widget\n- Playlists; Favoriten synchron mit Dateien-Sternen\n- Kapitelsprünge bei M4B; Geschwindigkeit 0,5×–4,0×\n- Dateien-Aktionen: In AudioCheck abspielen / Ordner als Album abspielen\n- Facetten: Interpreten, Autoren, Genres, Serien, Ordner, Tags, Favoriten\n- Optionale Zugriffsbeschränkung (Nextcloud-Administratoren behalten den Zugriff)\n- Oberflächensprachen: Deutsch (Sie-Form), Englisch, Französisch, Spanisch, Dänisch, Niederländisch, Italienisch, Polnisch, Schwedisch, Norwegisch (Bokmål) und Brasilianisches Portugiesisch (jede ausgelieferte UI-Zeichenkette in `l10n`)\n- Barrierefreiheits-Grundlagen mit Ziel WCAG 2.1 AA (keine Fremdzertifizierung)\n\n## Formate\n\n**Auf dem Server indexiert und gestreamt:** MP3, MP4/M4A/M4B (auch Podcasts mit video/mp4), OGG, Opus, FLAC, WAV, AAC und weitere gängige `audio/*`-Typen.\n\n**Browser-Wiedergabe** hängt vom Browser ab: MP3, M4A, M4B, AAC, OGG, Opus und WAV funktionieren meist; FLAC und manche andere Formate brauchen ggf. einen anderen Browser.\n\n## Start\n\n1. **Bibliothek** öffnen, Ordner hinzufügen, **Jetzt scannen** (oder `occ audiocheck:scan`).\n2. Unter **Einstellungen** bei Bedarf **Dort fortsetzen, wo Sie aufgehört haben** aktivieren.\n3. **Musik** oder **Hörbücher** öffnen und Wiedergabe starten.\n\n## Klare Grenzen\n\n- Dateizugriff über ein zentrales Gate mit Live-Rechten; widerrufene Freigaben beenden die Wiedergabe. Keine ausgehenden HTTP-Aufrufe für Playback.\n- Nach einer vollständigen Browser-Navigation weg von AudioCheck verlangen Browser oft einen Klick, um die Wiedergabe fortzusetzen.\n- Scan-Tiefe begrenzt (32 Ordnerebenen). Playlists haben eine dokumentierte Titel-Obergrenze (2000).\n- Deklarierte Datenbanken: nur MySQL und PostgreSQL.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL oder PostgreSQL"},"es":{"name":"AudioCheck","summary":"Audiolibros y música desde sus archivos Nextcloud — reanudación, colas, capítulos, listas","description":"# AudioCheck — su biblioteca de audio dentro de Nextcloud\n\nSus archivos de audio ya están en Files. AudioCheck indexa las carpetas que elija y hace streaming con comprobaciones de permisos en tiempo real.\n\nLa aplicación es **gratuita** con AGPL-3.0-or-later. En el paquete entregado no hay licencia por asiento para esta aplicación web.\n\n## Lo que obtiene\n\n- Raíces separadas para música y audiolibros; colecciones, álbumes y navegación por carpetas\n- Audiolibros de varios archivos como una sola cola; la reanudación se guarda en su servidor por cuenta\n- Cola de reproducción duradera; reanudación opcional al abrir; continúe escuchando en Inicio y en el widget del panel\n- Listas de reproducción; favoritos sincronizados con las estrellas de Files\n- Saltos de capítulo en M4B (y metadatos de capítulos etiquetados); velocidad de reproducción 0,5×–4,0×\n- Acciones en Files: reproducir en AudioCheck / reproducir la carpeta como álbum\n- Navegar por artistas, autores, géneros, series, carpetas, etiquetas y favoritos\n- Restricción de acceso opcional (los administradores de Nextcloud conservan siempre el acceso)\n- Idiomas de la interfaz: alemán (Sie-Form), inglés, francés, español, danés, neerlandés, italiano, polaco, sueco, noruego bokmål y portugués brasileño (cada cadena de UI enviada está en `l10n`)\n- Fundamentos de accesibilidad orientados a WCAG 2.1 AA (no es una certificación de terceros)\n\n## Formatos\n\n**Indexado y en streaming en el servidor:** MP3, MP4/M4A/M4B (incluidos podcasts etiquetados como video/mp4), OGG, Opus, FLAC, WAV, AAC y otros tipos comunes `audio/*`.\n\n**Reproducción en el navegador** depende del navegador: normalmente funcionan MP3, M4A, M4B, AAC, OGG, Opus y WAV; FLAC y algunos otros formatos pueden requerir otro navegador.\n\n## Empezar\n\n1. Abra **Biblioteca**, agregue carpetas de música y audiolibros y luego **Scan ahora** (o `occ audiocheck:scan`).\n2. En **Ajustes**, active **Retire donde se fue** si desea ese comportamiento.\n3. Abra **Música** o **Audiolibros** y pulse **Jugar**.\n\n## Límites claros\n\n- Los bytes de reproducción pasan por una única puerta de acceso a archivos con comprobaciones de permisos en tiempo real; las comparticiones revocadas detienen la reproducción. La aplicación no realiza llamadas HTTP salientes para la reproducción.\n- Tras una navegación completa fuera de AudioCheck, el navegador puede exigir un clic para reanudar el audio.\n- La profundidad de escaneo está limitada (32 niveles de carpetas). La reproducción/mezcla de listas de reproducción tiene un límite de pistas documentado (2000).\n- Bases de datos declaradas: solo MySQL y PostgreSQL.\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL o PostgreSQL"},"da":{"name":"AudioCheck","summary":"Lydbøger og musik fra dine Nextcloud-filer — genoptag, køer, kapitler, playlister","description":"# AudioCheck — dit lydbibliotek i Nextcloud\n\nDine lydfiler ligger allerede i Files. AudioCheck indekserer de mapper, du vælger, og streamer dem med live-permissionkontroller.\n\nAppen er **gratis** under AGPL-3.0-or-later. Der findes ingen seat-licens til denne webapp i den leverede pakke.\n\n## Det får du\n\n- Adskilte rødder til musik og lydbøger; samlinger, album og mappe-navigation\n- Lydbøger med flere filer som én kø; genoptagelse gemmes på din server pr. konto\n- Robust afspilningskø; valgfri genoptagelse ved åbning; fortsæt med at lytte på Start og i dashboard-widgetten\n- Playlists; favoritter synkroniseres med Files-stjerner\n- Kapitelhop på M4B (og mærkede kapitelmetadata); afspilningshastighed 0,5×–4,0×\n- Handlinger i Files: Afspil i AudioCheck / Afspil mappe som album\n- Gennemse efter kunstnere, forfattere, genrer, serier, mapper, tags og favoritter\n- Valgfri adgangsbegrænsning (Nextcloud-administratorer beholder altid adgang)\n- UI-sprog: tysk (Sie-Form), engelsk, fransk, spansk, dansk, hollandsk, italiensk, polsk, svensk, norsk bokmål og brasiliansk portugisisk (hver leveret UI-streng ligger i `l10n`)\n- Grundlag for tilgængelighed målrettet WCAG 2.1 AA (ikke en tredjepartscertificering)\n\n## Formater\n\n**Indekseret og streamet på serveren:** MP3, MP4/M4A/M4B (inkl. podcasts mærket som video/mp4), OGG, Opus, FLAC, WAV, AAC og andre almindelige `audio/*`-typer.\n\n**Afspilning i browseren** afhænger af browseren: MP3, M4A, M4B, AAC, OGG, Opus og WAV fungerer som regel; FLAC og nogle andre formater kan kræve en anden browser.\n\n## Kom i gang\n\n1. Åbn **Bibliotek**, tilføj mapper med musik og lydbøger, og vælg derefter **Scan nu** (eller `occ audiocheck:scan`).\n2. I **Indstillinger** skal du aktivere **Genoptag hvor der blev afsluttet**, hvis du vil have den adfærd.\n3. Åbn **Musik** eller **Audiobøger** og tryk **Spil**.\n\n## Ærlige begrænsninger\n\n- Afspilningsbytes går gennem én enkelt filadgangsport med live-permissionskontroller; tilbagekaldte delinger stopper afspilning. Appen laver ingen udgående HTTP-kald til afspilning.\n- Efter fuld browsernavigation væk fra AudioCheck kan browsere kræve et klik for at genoptage lyden.\n- Scandybden er begrænset (32 mappeniveauer). Afspilning/blanding af playlists har en dokumenteret grænse (2000 spor).\n- Deklarerede databaser: kun MySQL og PostgreSQL.\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"nl":{"name":"AudioCheck","summary":"Luisterboeken en muziek uit uw Nextcloud-bestanden — hervatten, wachtrijen, hoofdstukken, playlists","description":"# AudioCheck — uw audiobibliotheek in Nextcloud\n\nUw audiobestanden staan al in Files. AudioCheck indexeert de door u gekozen mappen en streamt ze met live-permissiecontroles.\n\nDe app is **gratis** onder AGPL-3.0-or-later. Er is in het meegeleverde pakket geen sitelicentie voor deze webapp.\n\n## Wat u krijgt\n\n- Aparte roots voor muziek en audioboeken; verzamelingen, albums en mapnavigatie\n- Audioboeken met meerdere bestanden als één wachtrij; hervatten wordt per account op uw server opgeslagen\n- Duurzame afspeelwachtrij; optioneel hervatten bij openen; luister verder op Home en in de widget van het dashboard\n- Playlists; favorieten gesynchroniseerd met de sterren van Files\n- Sprongen in hoofdstukken op M4B (en gelabelde hoofdstukmetadata); afspeelsnelheid 0,5×–4,0×\n- Acties in Files: Afspelen in AudioCheck / Map afspelen als album\n- Bladeren op artiesten, auteurs, genres, series, mappen, tags en favorieten\n- Optionele toegangsbeperking (Nextcloud-beheerders behouden altijd toegang)\n- Talen van de interface: Duits (Sie-Form), Engels, Frans, Spaans, Deens, Nederlands, Italiaans, Pools, Zweeds, Noors Bokmål en Braziliaans Portugees (elke meegeleverde UI-string staat in `l10n`)\n- Toegankelijkheidsfundamenten gericht op WCAG 2.1 AA (geen certificering door derden)\n\n## Formaten\n\n**Geïndexeerd en gestreamd op de server:** MP3, MP4/M4A/M4B (incl. podcasts gelabeld als video/mp4), OGG, Opus, FLAC, WAV, AAC en andere gangbare `audio/*`-types.\n\n**Afspeeloptie in de browser** hangt af van de browser: MP3, M4A, M4B, AAC, OGG, Opus en WAV werken meestal; FLAC en sommige andere formaten hebben mogelijk een andere browser nodig.\n\n## Starten\n\n1. Open **Bibliotheek**, voeg muziek- en audioboekmappen toe en kies daarna **Scan nu** (of `occ audiocheck:scan`).\n2. Activeer in **Instellingen** **Hervat waar u gebleven was** als u dat gedrag wilt.\n3. Open **Muziek** of **Audioboeken** en druk op **Afspelen**.\n\n## Eerlijke grenzen\n\n- Afspelen bytes gaan via één enkele bestands-toegangspoort met live permissiecontroles; ingetrokken shares stoppen het afspelen. De app doet geen uitgaande HTTP-calls voor afspelen.\n- Na volledige browsenavigatie weg van AudioCheck kunnen browsers een klik vereisen om audio te hervatten.\n- De scan-diepte is beperkt (32 mapniveaus). Afspelen/shuffle van playlists heeft een gedocumenteerde tracklimiet (2000).\n- Gedeclareerde databases: alleen MySQL en PostgreSQL.\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL of PostgreSQL"},"it":{"name":"AudioCheck","summary":"Audiolibri e musica dai file Nextcloud — ripresa, code, capitoli, playlist","description":"# AudioCheck — la vostra libreria audio dentro Nextcloud\n\nI vostri file audio sono già in Files. AudioCheck indicizza le cartelle che scegliete e le riproduce in streaming con controlli dei permessi in tempo reale.\n\nL’app è **gratuita** con AGPL-3.0-or-later. Nel pacchetto distribuito non è prevista alcuna licenza per posti per questa web app.\n\n## Cosa ottenete\n\n- Radici separate per musica e audiolibri; raccolte, album e navigazione per cartelle\n- Audiolibri multi-file come una sola coda; ripresa salvata sul server per account\n- Coda di riproduzione durevole; ripresa opzionale all’apertura; continua ad ascoltare su Home e nel widget del dashboard\n- Playlist; preferiti sincronizzati con le stelle di Files\n- Salti di capitolo su M4B (e metadati dei capitoli con tag); velocità di riproduzione 0,5×–4,0×\n- Azioni in Files: riproduci in AudioCheck / riproduci la cartella come album\n- Navigazione per artisti, autori, generi, serie, cartelle, tag e preferiti\n- Restrizione di accesso opzionale (gli amministratori Nextcloud mantengono sempre l’accesso)\n- Lingue dell’interfaccia: tedesco (Sie-Form), inglese, francese, spagnolo, danese, olandese, italiano, polacco, svedese, norvegese bokmål e portoghese brasiliano (ogni stringa UI spedita vive in `l10n`)\n- Fondamenti di accessibilità mirati a WCAG 2.1 AA (non è una certificazione di terze parti)\n\n## Formati\n\n**Indicizzato e in streaming sul server:** MP3, MP4/M4A/M4B (inclusi i podcast etichettati come video/mp4), OGG, Opus, FLAC, WAV, AAC e altri tipi comuni `audio/*`.\n\n**Riproduzione nel browser** dipende dal browser: MP3, M4A, M4B, AAC, OGG, Opus e WAV di solito funzionano; FLAC e alcuni altri formati potrebbero richiedere un browser diverso.\n\n## Come iniziare\n\n1. Aprite **Biblioteca**, aggiungete cartelle di musica e audiolibri e poi **Scansione ora** (oppure `occ audiocheck:scan`).\n2. In **Impostazioni**, abilitate **Riprendi dove hai lasciato** se desiderate questo comportamento.\n3. Aprite **Musica** o **Audiolibri** e premete **Gioca**.\n\n## Limiti onesti\n\n- I byte di riproduzione passano attraverso un’unica porta di accesso al file con controlli dei permessi in tempo reale; le condivisioni revocate interrompono la riproduzione. L’app non effettua chiamate HTTP in uscita per la riproduzione.\n- Dopo una navigazione completa fuori da AudioCheck, i browser possono richiedere un clic per riprendere l’audio.\n- La profondità di scansione è limitata (32 livelli di cartelle). La riproduzione/mescolamento delle playlist ha un limite di tracce documentato (2000).\n- Database dichiarati: solo MySQL e PostgreSQL.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL o PostgreSQL"},"pl":{"name":"AudioCheck","summary":"Audiobooki i muzyka z plików Nextcloud — wznawianie, kolejki, rozdziały, playlisty","description":"# AudioCheck — Twoja biblioteka audio w Nextcloud\n\nPaństwa pliki audio znajdują się już w Files. AudioCheck indeksuje foldery, które Państwo wybiorą, i przesyła je strumieniowo z bieżącą weryfikacją uprawnień.\n\nProwadzona przez aplikację jest **bezpłatna** na warunkach AGPL-3.0-or-later. W dostarczonym pakiecie nie ma licencji „seat” dla tej web app.\n\n## Co dostajesz\n\n- Osobne korzenie dla muzyki i audiobooków; kolekcje, albumy oraz przeglądanie folderów\n- Audiobooki wieloplikowe jako jedna kolejka; wznowienie zapisywane na serwerze dla każdego konta\n- Trwała kolejka odtwarzania; opcjonalne wznowienie przy otwarciu; kontynuuj słuchanie na Home i w widżecie panelu\n- Playlisty; ulubione synchronizowane z gwiazdkami w Files\n- Skoki do rozdziałów na M4B (i oznaczone metadane rozdziałów); szybkość odtwarzania 0,5×–4,0×\n- Akcje w Files: odtwarzaj w AudioCheck / odtwarzaj folder jako album\n- Przeglądaj według artystów, autorów, gatunków, serii, folderów, tagów i ulubionych\n- Opcjonalne ograniczenie dostępu (administratorzy Nextcloud zawsze zachowują dostęp)\n- Języki interfejsu: niemiecki (Sie-Form), angielski, francuski, hiszpański, duński, niderlandzki, włoski, polski, szwedzki, norweski bokmål i brazylijski portugalski (każdy dostarczony ciąg UI jest w `l10n`)\n- Fundamenty dostępności ukierunkowane na WCAG 2.1 AA (bez certyfikacji strony trzeciej)\n\n## Format\n\n**Indeksowane i przesyłane strumieniowo na serwerze:** MP3, MP4/M4A/M4B (w tym podcasty oznaczone jako video/mp4), OGG, Opus, FLAC, WAV, AAC i inne popularne typy `audio/*`.\n\n**Odtwarzanie w przeglądarce** zależy od przeglądarki: MP3, M4A, M4B, AAC, OGG, Opus i WAV zwykle działają; FLAC i niektóre inne formaty mogą wymagać innej przeglądarki.\n\n## Rozpocznij\n\n1. Otwórz **Biblioteka**, dodaj foldery muzyki i audiobooków, a następnie **Przeskanuj teraz** (lub `occ audiocheck:scan`).\n2. W **Ustawienia** włącz **Wznawiaj gdzie skończyłeś**, jeśli chcesz takie zachowanie.\n3. Otwórz **Muzyka** lub **Audiobooki** i naciśnij **Zagraj**.\n\n## Uczciwe ograniczenia\n\n- Bajty odtwarzania przechodzą przez jedną bramkę dostępu do pliku z bieżącą kontrolą uprawnień; cofnięte udostępnienia zatrzymują odtwarzanie. Aplikacja nie wykonuje wychodzących wywołań HTTP do odtwarzania.\n- Po pełnej nawigacji przeglądarki poza AudioCheck przeglądarki mogą wymagać kliknięcia, by wznowić dźwięk.\n- Głębokość skanowania jest ograniczona (32 poziomy folderów). Odtwarzanie/losowanie playlist ma udokumentowany limit utworów (2000).\n- Deklarowane bazy danych: tylko MySQL i PostgreSQL.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL lub PostgreSQL"},"sv":{"name":"AudioCheck","summary":"Ljudböcker och musik från dina Nextcloud-filer — återuppta, köer, kapitel, spellistor","description":"# AudioCheck — ert ljudbibliotek i Nextcloud\n\nEra ljudfiler finns redan i Files. AudioCheck indexerar mapparna ni väljer och streamar dem med kontroller av behörigheter i realtid.\n\nAppen är **gratis** under AGPL-3.0-or-later. Det finns ingen seat-licens för den här webappen i det levererade paketet.\n\n## Det ni får\n\n- Separata rötter för musik och ljudböcker; samlingar, album och mappläsning\n- Ljudböcker i flera filer som en enda kö; återupptagning sparas på er server per konto\n- Hållbar uppspelningskö; valfri återupptagning vid öppning; fortsätt lyssna på Hem och i dashboard-widgeten\n- Spellistor; favoriter synkas med stjärnorna i Files\n- Kapitelhopp på M4B (och taggad kapitelmetadata); uppspelningshastighet 0,5×–4,0×\n- Åtgärder i Files: spela i AudioCheck / spela mappen som album\n- Bläddra efter artister, författare, genrer, serier, mappar, taggar och favoriter\n- Valfri åtkomstbegränsning (Nextcloud-administratörer behåller alltid åtkomst)\n- UI-språk: tyska (Sie-Form), engelska, franska, spanska, danska, nederländska, italienska, polska, svenska, norska bokmål och brasiliansk portugisiska (varje levererad UI-sträng finns i `l10n`)\n- Tillgänglighetsgrunder riktade mot WCAG 2.1 AA (ingen tredjepartscertifiering)\n\n## Format\n\n**Indexerat och streamat på servern:** MP3, MP4/M4A/M4B (inklusive poddar märkta som video/mp4), OGG, Opus, FLAC, WAV, AAC och andra vanliga `audio/*`-typer.\n\n**Uppspelning i webbläsaren** beror på webbläsaren: MP3, M4A, M4B, AAC, OGG, Opus och WAV fungerar vanligtvis; FLAC och vissa andra format kan kräva en annan webbläsare.\n\n## Kom igång\n\n1. Öppna **Bibliotek**, lägg till mappar för musik och ljudböcker och välj sedan **Scan nu** (eller `occ audiocheck:scan`).\n2. I **Inställningar**, aktivera **Återuppta där uppspelningen avslutades** om ni vill ha det beteendet.\n3. Öppna **Musik** eller **Ljudböcker** och tryck **Spela**.\n\n## Uppriktiga begränsningar\n\n- Uppspelningsdata går via en enda filåtkomstgrind med behörighetskontroller i realtid; återkallade delningar stoppar uppspelning. Appen gör inga utgående HTTP-anrop för uppspelning.\n- Efter full webbläsarnavigering bort från AudioCheck kan webbläsare kräva ett klick för att återuppta ljudet.\n- Skanningsdjupet är begränsat (32 mappnivåer). Uppspelning/”shuffle” av spellistor har en dokumenterad spårgräns (2000).\n- Deklarerade databaser: endast MySQL och PostgreSQL.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"nb":{"name":"AudioCheck","summary":"Lydbøker og musikk fra Nextcloud-filene — gjenoppta, køer, kapitler, spillelister","description":"# AudioCheck — ditt lydbibliotek i Nextcloud\n\nLydfilene dine ligger allerede i Files. AudioCheck indekserer mappene du velger og streamer dem med live sjekk av tillatelser.\n\nAppen er **gratis** under AGPL-3.0-or-later. Det finnes ingen seat-lisens for denne webappen i pakken som leveres.\n\n## Det du får\n\n- Separate røtter for musikk og lydbøker; samlinger, album og mappevisning\n- Lydbøker i flere filer som én kø; gjenopptakelse lagres på serveren din per konto\n- Robust avspillingskø; valgfri gjenopptakelse ved åpning; fortsett å lytte på Hjem og i widgeten for dashbord\n- Spillelister; favoritter synkronisert med stjernene i Files\n- Kapittelhopp på M4B (og merket kapittelmetadata); avspillingshastighet 0,5×–4,0×\n- Handlinger i Files: spill i AudioCheck / spill mappe som album\n- Bla etter artister, forfattere, sjangre, serier, mapper, tagger og favoritter\n- Valgfri tilgangsbegrensning (Nextcloud-administratorer beholder alltid tilgang)\n- UI-språk: tysk (Sie-Form), engelsk, fransk, spansk, dansk, nederlandsk, italiensk, polsk, svensk, norsk bokmål og brasiliansk portugisisk (hver levert UI-streng ligger i `l10n`)\n- Grunnlag for tilgjengelighet rettet mot WCAG 2.1 AA (ikke en tredjepartsertifisering)\n\n## Formater\n\n**Indeksert og streamet på serveren:** MP3, MP4/M4A/M4B (inkludert podkaster merket som video/mp4), OGG, Opus, FLAC, WAV, AAC og andre vanlige `audio/*`-typer.\n\n**Avspilling i nettleseren** avhenger av nettleseren: MP3, M4A, M4B, AAC, OGG, Opus og WAV fungerer vanligvis; FLAC og noen andre formater kan trenge en annen nettleser.\n\n## Kom i gang\n\n1. Åpne **Bibliotek**, legg til mapper for musikk og lydbøker, og velg deretter **Skann nå** (eller `occ audiocheck:scan`).\n2. I **Innstillinger**, aktiver **Gjenoppta der avspillingen stoppet** hvis du ønsker den oppførselen.\n3. Åpne **Musikk** eller **Lydbøker** og trykk **Spill**.\n\n## Ærlige begrensninger\n\n- Avspillingsbytes går gjennom én enkelt filtilgangsport med live sjekk av tillatelser; tilbakekalte delinger stopper avspilling. Appen gjør ingen utgående HTTP-kall for avspilling.\n- Etter full nettlesernavigering bort fra AudioCheck kan nettlesere kreve et klikk for å gjenoppta lyden.\n- Skannedybden er begrenset (32 mappenivåer). Avspilling/«shuffle» av spillelister har en dokumentert sporgrense (2000).\n- Deklarerte databaser: kun MySQL og PostgreSQL.\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-audiocheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhNtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjE2MTIyNjI4WhcNMzYwOTIxMTIyNjI4WjAVMRMwEQYD\nVQQDDAphdWRpb2NoZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nlvpfJro/A4Yxltse59eF7eDxkDlK9oF5DgodCdx9mMHFvm0/HVbMiMKqq1N36uyH\ni2ngkupkNgmViu2fVTh+eADd+fMUNgWJKYY3BlP6fpEDYPaTEnUX32G6WRqlu8EI\nFqkC7TPsnlRQCqkXHJXh6eGNRRUfY3SCQSQu3MetH6dlxxSNDOcQRP9lEVXJjj2K\n16O+PBDpttLbfTlvBMB122XhEyuq8jKt1bJcm/NCrzhkI6o86Vsi1zLewu9iloY2\nyPW3JqQz9XLe9m7l7uhIoTSz968fU0mgssh65LAgPUS66gq6oV3dwMUVyAiRdstD\n0JZ2tzLn8lHC3YIustkb2Wi+KyPoR48IhIbgpJzV7YjCXiYjR3psH5jZEChIdByJ\nW15JPky7qShNUANbNs0DQAeQcify1ok+pDNdUEkkIrxKAELBrWC1wWxD0Q7+S8HJ\nJ0Ry0I1b+1lXtS+SqYuIQc2fCc3u71NFJBjaY7u0K8LCc8Za1LfvAeHtuVaJ9eAE\np3wRFTbWGWbkEiCxZ1cLdkuX9C1W8nMjVokhu7HytHiXuA2LmdyoV/pfUtQnZZ6Z\nW7jdG9bECzsCmrgQOSAydsHKPnYEZvwe1s8wl4xZWXsi03NZJL+GpUJKdbBpxXff\nWc2TZwbE7VH7iocyqurZdGWLVt3pghW/11Y3V+OXdk0CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAIxrvtOZBFAqumP59vtIPXTqgInvog5BtRI02QKLKh42QZmH5fjRa\n7Y9BSwdBeQrfcQpjg0IWF5mpfFGl/NiO+LhOysoGPFzE8LWm+EIz9dcNCygYD3L+\nO6TqhnUAhqTDSbIqZ2jc9J2KhITXtHbVWzRotO3YIsIAnerSw46K6UE5jEIy58jW\n0fLoOzHMi5AjsVkO/yjLMGXQD5Vc+k0Kif5CvZ6XxjvYhC8Lwa839rJmPXGo5Ecb\nfK8I4s6TCpL5WReq10zr7QzlTK84201jBSKAd73DBiH6EU9EmSdRQm9yFiJl7DND\nWCkgG+3kuOLExAYBgw/QdVE+nuratALkxw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fulltextsearch_sql","categories":["search"],"userDocs":"","adminDocs":"https://github.com/jplitza/fulltextsearch_sql/wiki","developerDocs":"","issueTracker":"https://github.com/jplitza/fulltextsearch_sql/issues","website":"https://github.com/jplitza/fulltextsearch_sql","created":"2025-07-31T07:43:07.505148Z","lastModified":"2026-10-14T19:48:00.868124Z","releases":[{"version":"1.5.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=10.9.0","rawVersionSpec":">=10.9"},{"id":"pgsql","versionSpec":">=17.0.0","rawVersionSpec":">=17"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/jplitza/fulltextsearch_sql/releases/download/v1.5.1/fulltextsearch_sql.tar.gz","created":"2026-10-14T19:48:00.860800Z","licenses":["agpl"],"lastModified":"2026-10-14T19:48:00.908824Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"mCsznvuluphMf8IJWXhsQI0YcSiXfxadxfqtR3OW6DNMI9MCfyuzVsms881BNEFqtJvBq4YX6DCgQYh/NrFqb0Zo4fyL4knPLVrzmjl6i7SF9WMKRXlBg9uuytIzgsdQ0d8CMJ91XyN8t+ZjHCApUZT2viFxP0DlOkNNzFlZ3UQZNRlZiRx+eNBTCRMzyA5pu1sGbVYvt98+KZ9gPROxKIbmQ9K3769NTow4RZpWEFhCgNNqfdsmkTtb57djzX1CiGwv9UEEuQOe1xIrYBNIw+/i5o+ys5xWbHb+CJpJZ5zkZldDN8C/jagHI3M6xkbXkCV+larttQXApYCfksr0/HPWmg+MUJ5/V2kCFQOq8R/w7Fv/D3cg3Kk5TNiBqfGNpt99Q33T+f08uqXdmtBPZ/IveJQyRhCnXoqruDzSaIImwYcEP4sdY0++k8t32egTJhEvBn44vzEls1TJmhiOsRPdj5XiNfIEdNdeNDcrs4FKDkTfhwA0haY6PseRo6uqk6q1bEQ1qiLkoE24imYIMiIQSWnd/4wDp+qiFWamatR4MtMjlU0GyDfePfNIJkWHMGWb0O/RokaTYWhfFwsA2kX2x1IRkNPlTtSyr6UZ2KCj1l9enAZajoz+rcDYA8YuNVa+Lk4kQljO0HFPYVMeb/DRjX3njuHFTeolUJMw2Y8=","translations":{"en":{"changelog":"### Fixed\n\n- Updated dependencies, including security improvements in the PDF parsing library."}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=10.9.0","rawVersionSpec":">=10.9"},{"id":"pgsql","versionSpec":">=17.0.0","rawVersionSpec":">=17"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/jplitza/fulltextsearch_sql/releases/download/v1.5.0/fulltextsearch_sql.tar.gz","created":"2026-09-21T19:58:20.374145Z","licenses":["agpl"],"lastModified":"2026-09-21T19:58:20.451678Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"fqEtixdStoHmLris4VGHyJJWq7/BSSh83SJNW1kDo/SRbNlCxkMKhTjJqXHmXCxduffDQDjSGINtoXfJKCGldZjMSTA2Wjr5b4ALe2Ed7NKKGOzfuHybI6gTBM5HyWSjilGU6GU7flchOQYFOvEjWU2raDAgSpNaBph5lydWrDqX2olXYJx/s7aqk2AAHDEIlxrUkGaQAtcIn0qhtpcMq88JPHdReXj/sV9z6Ow6suuLZ3ACchTnm+PNxSRZj7UmHFbTjXshP/lx27Mgc90rhWqK7PZYEcT8/TWchxMvt+vc/SCoe6XH0weEZ2TEpHM+UD7twg15thV46PGPsRkX0Htrj1mNkCy5RTwLmwH+r/orDlCZ0VmAg0PFc4wbmNPoe95R5XLAhCJi/aeBF8C6mp/kpXELrgviQM9zm6jQE1U+tp+EF2Ktu9BzYynoTDTHAHpotRiskgc+F1JHb8qpHJFmRyHupLOhMolfGVVIrdPr1hygs1D5r61Z3knqhrFFcpW8e1T7CLgkA/2nJ1yMdOWmCvQmZb8o+e6FFsv/k8guzgQjAxVRbSprpXb153p4nM75/SDxhEL6zjU5NjfIkPNWS4UTyui7eftThwYCop+58lPuJh6stMp9MCnjHFaXMh2pbUCE7WJLOTa9jC8vHJ3X6eCryy8Iwth5eRhYrV4=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Full text search - SQL Platform","summary":"Index content using Nextcloud database","description":"Makes the _Full text search_ app work without any additional services.\n\nIt uses the Nextcloud MySQL or PostgreSQL database backend as search provider.\n\nCurrently can not index office document formats, but does work with PDFs (if they contain text/have been OCR'ed).\n\n**Warning:** This app will store all indexed content in your Nextcloud database *twice* (roughly) - once as plain text and once as searchable index. This means that your database can easily grow hundreds of megabytes or even gigabytes in size if you have much indexable content (e.g. documents)."}},"isFeatured":false,"authors":[{"name":"Jan-Philipp Litza","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhKyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNzMxMDczOTE0WhcNMzUxMTA2MDczOTE0WjAdMRswGQYD\nVQQDDBJmdWxsdGV4dHNlYXJjaF9zcWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQC1LKU9cVRVTBKrateJm1X2mykGoaYS36g2UmXZ/TfWq0aUzZeMWu4C\n2MbwYmyr6MTDSblj5yHhEMCluak12E1aWJ6O3coSCN4f/RhrnSSVONRp7rmpUWLj\nwpr+LULJeR4HJVP/Mx9yMaFylp/gHZxEAioypufxL6/dKngn8XKo/r48uyM+UPDz\nn5z5NEY5d3M+jYsQUUhrmonWzhE3jj1FS2MqJXD42VGACFwKCUZD+H0Dzi4CgIyN\n/HYygAez5PhLrvAMrm6pj8gC/d8mRTbaztgp7xCC98PvuuNwbHwGHik76z8sWIjX\nPet26We2xWCd5ObYcVqlIRgKWQj7ZQ8IwJX6KRedGx+UHtrilhtWvWFcE329neYR\nKac36XBCpOjP3BuhF9fS3lRDFLNvcDS0mS0XxR7RbYNz42tJbzFl99Mco3dMzw7D\nxwwbJZdahhZ+uWciV5w4aHgvbeaZWJtLIo1il0cTRML24Hq7AwBIN0omRmuyHMlU\nnthRClFCg2tdbk/S26CHkoHr9Xfrh80d7HbqUoI4WNo+W6ajoHqOhVxZMSB6kfuE\nfXsGGVrvoCT03oF69Xu/rrEeqAv96DOANsIDY/w9ZTbakOJcmnWyUUqIuXA67a1e\n4OCDMRCt3s4RPc36sOhNzrvC1dDUxg2ZJcZx85KqR8sMJ7XrZHE5cwIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQAm1k8GkkE/8iixk2ucpUyxaUPs+WFtCNM1rSIjuOQT\nJUm1wXgWriWbDZCkl0ncs/SCk8Fyp3LoTZ0aJBtdXMKuvFq5SFgCyuz1RWWxMefb\n7pPYKcp/bXP58S8xS0NrCa3A4s+awl+rIbGya1Xww7No9ca+25oDXSlZAAVBdRaf\nTcYBTXiiB8F1K76dMq9UpqxZrad9EsKzdIiri9inzhrlPU3CAHHWLvcDq2Aa35kt\nhr0CcMFJ/NdOMBqvOSig5hGOERQVO9K6S4wayLiQ6yvzgooOkQcmpsSK0xqK8bSn\nGx8C/5vplkItnUMDzgK4LW0dlmDExmxfslFGwojWXUxR\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nc_netherrack","categories":["organization"],"userDocs":"https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/en/HOWTO.md","adminDocs":"https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/en/INSTALL.md","developerDocs":"https://codeberg.org/fds2610/Netherrack/src/branch/main/docs/en/CONTRIBUTE.md","issueTracker":"https://codeberg.org/fds2610/Netherrack/issues","website":"https://codeberg.org/fds2610/Netherrack","created":"2026-10-08T13:47:52.731292Z","lastModified":"2026-10-20T10:43:07.057781Z","releases":[{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.5.1-a2fc6e1/nc_netherrack-0.5.1-a2fc6e1.tar.gz","created":"2026-10-20T10:43:07.048999Z","licenses":["agpl"],"lastModified":"2026-10-20T10:43:07.108776Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"IqnSaXQEwmyLv2E6UOeLerIbcn3oZipF+rwDR2xx8in3XaPye6kVUg2wy1Zmi7j4\n  F5AajigIpuo4niRY8qqlT5dNa2QOhs5A3eO7e8Zu1YwwfQbAPjr1KBPrl/uHTGxH\n  F55jlG8cFaD4BAYziABr9HiwBqGZHW4CDY46coJoIh2PzJt0KfYjrzhy3LECQF/J\n  9wUHpxVZcR0elz5czGOdyAm5ezAyI8PeT8c7KGO+d2zMg93jEdQ5l5SiWML4sDBj\n  wuTBV67oSfHWkof6Q4z5Uq58z5g4oEkCjyYZD0Fx4mzHsktw3IxRCS5Nwzzm/FrT\n  lFsZdf5ipTIA63wSb8FzVAyEiQE06EcvCKe7eS4NMw0WNeDAREQZRu14BIwE9+5W\n  uSFM4CAEQKYQT1zMhWOmSC7xIYBOauQ/a5x2kVwbZQT+PxHLcbcB/TnVETOQB3bU\n  /D50XugoBcYXNgns8AWP3FG3DCerYDN9ndL0VKJ9Ncnjk1WJJWTFDyTDxK92XfXb\n  Ryc2tf+W8cg5XwSFbw/llS9wlKVGODw+P1QdK9zqQ0PktHnFjUY/joGkohK/tdcX\n  4Apnv3bXqvyE7JSaX/HkbBo6eRVvgWcPGR+Y0NlJBw0fIFJrOvCmRsNrerPpgCUL\n  BLU5Q11DitLj6kAkk1ymLXS6B344ohn0IedQ4oKvyyU=","translations":{"en":{"changelog":"### Added\n- Eingabehilfe für Inline-Felder im Editor: Nach `::` (Zeilenanfang oder Leerzeichen davor) bietet ein Dropdown `due` und `priority` an, die Auswahl (Enter/Klick) fügt das Wort vor dem `::` ein. Danach erscheint sofort die Werte-Auswahl: die Prioritäten `high`/`medium`/`low` bzw. ein kleiner Kalender mit morgen vorausgewählt (Pfeiltasten, Enter, Klick). Prioritäten und Datum (`YYYY-MM-DD`) können auch getippt werden. Fertige Felder erscheinen im Editor als Chip (#146)\n- Tabellen: Dateien aus LibreOffice/Excel mit mehreren Blättern, verbundenen Zellen, Datumswerten, Kommentaren, Hyperlinks, Rahmen, Zeilenumbruch, Schrift und Farben, Zeilenhöhen und AutoFilter lassen sich jetzt vollständig lesen, bearbeiten und wieder speichern (bisher nur lesend bzw. mit Verlusten). Neu in der Oberfläche: Blatt-Reiter (anlegen, umbenennen, verschieben, löschen), Formeln über Blätter (`Daten.B2`, `'Mein Blatt'.A1:C5`), Zellen verbinden, Kommentare, Rahmen, Zeilenumbruch, senkrechte Ausrichtung, eigene Farben, Zeilenhöhe per Ziehen, Zahlenformat „Datum“ (Eingabe nach Gebietsschema) und Filter mit Werteauswahl (nur in der Sitzung); dazu die Funktion `N`. Die Farben der Datei bleiben exakt erhalten statt auf die Palette gerundet zu werden\n\n### Changed\n- Tabellen: Die `.ods`-Datei enthält Texte als UTF-8 statt als Zeichenverweise und speichert Zahlen mit bis zu 15 signifikanten Stellen; aus Dateien von LibreOffice bleibt die Standardschrift erhalten, und der Druck erhält keine zusätzliche Kopf-/Fußzeile\n- Aufgaben werden nur noch durch `[ ]` / `[x]` am Zeilenanfang dargestellt; das Listenzeichen davor (`-`, `*`, `+`, Nummer) ist optional. Die Symbolleiste fügt `[ ] ` ohne `- ` ein.\n\n### Fixed\n- Zeilenpräfixe der Symbolleiste (z. B. „Aufgabe hinzufügen“ mit `[ ] `) markieren ohne Auswahl nichts mehr, der Cursor steht hinter dem eingefügten Text (#145)\n- Externe Links (`[Text](url)`) in der Vorschau sind deutlich mittelblau (im dunklen Design heller), beim Überfahren dunkler bzw. heller, zeigen die URL als Tooltip und öffnen in einem neuen Tab (#144)\n- Checkboxen von Aufgaben (`nr-task`) in der Vorschau sitzen jetzt auf der Textzeile statt zu hoch (globale Input-Mindesthöhe zurückgesetzt) (#143)\n- Aufgaben-Checkboxen beginnen in der Vorschau und in der öffentlichen Ansicht bündig am Zeilenanfang und werden links nicht mehr abgeschnitten\n- Ordner lassen sich wieder über das Kontextmenü der Dateiliste veröffentlichen („Veröffentlichen …“); der Eintrag war mit dem Teilen-Menü der Notiz entfallen\n- Einstellungen: „Neuer Ordner …“ öffnet den Namensdialog zuverlässig, auch wenn der Ordner-Picker noch schließt (Eingabe landete sonst teils auf der Navigation)"}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.5.0-e1cb900/nc_netherrack-0.5.0-e1cb900.tar.gz","created":"2026-10-16T07:52:09.689305Z","licenses":["agpl"],"lastModified":"2026-10-16T07:52:09.729752Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"A8G/iVp4wimA/6lBE2c4iwnjeqNIv4Isnz7CDlMerxd9QeDAYMHK3nZCEjvN5TKm\nBAb4DHYCiW1d+DHqwlR3qH5fYGtRiBh7Q+zA9YZf0kq3fUvhxM8OhyIG1HUxrWSE\nIETVBT7lJNrbKPGiRZNZeSUy9TqRADA8f9VoBW3H1545SBZOTQVyE+xTZcFs7aAu\nokLMt2pe8A+SCvGV+M0bSKMKHr2sYkIxSta1vJ85uMRmTgDG0reZmXHXtJWxHJGj\nNP9AdHkcrea3syMaVLmn4Tv4CFKhGHufGMwu4itGl8Bw5SPWuZbkaWqBuLDFRvH6\n6YKaewOwctvDRceg+u7/OiFbTMqBGi6RVqIcdUb7u4H2te1F+irqPC+GX6dxTIFm\n4d9F0/l5Ewd1aq8kO8Ff9m5F9jZ8tFn+YeqpAHWTXHU10tnmSZR/1r66JggmhWV4\nTJbv0fNLG51KuAj/8Ysq8/37nPLJT93NSQ+Y0FXeCSCPbWYp4bpozMycFy/ke2hm\nlxtGx1vy1t1AIBrWvp8vR+fv7TYJArom3ttgj2zbjqYFCJy52XmQEUCN+bmyIs3s\n/bH9sFHrRM4WdcfHG/seQGx3MK0GJNDheqliKWeKfamj5bvVw3MQDIhLBe7b8dWm\nxzfrxm0vpy1KG9GzbVab2OLQpmvI7YxyM0drL9hR+x8=","translations":{"en":{"changelog":"### Added\n- Aufgaben in der Tasks-App: Die Aufgaben aus den Notizen (`- [ ]`, mit Fälligkeit, Priorität und Unteraufgaben) erscheinen in der Nextcloud-App „Tasks“ (und jedem CalDAV-Client mit Aufgabenunterstützung) als Liste „Netherrack“. Technisch ein virtueller CalDAV-Kalender (`<sabre><calendar-plugins>`, wie bei Deck) aus dem Aufgaben-Index. Sichtbar sind offene Aufgaben und zuletzt (30 Tage) erledigte sowie dir zugewiesene oder nicht zugewiesene Aufgaben. Abhaken in Tasks setzt die Checkbox in der Markdown-Datei; Anlegen, Löschen und Ändern anderer Felder geschieht weiterhin in der Notiz. Die UID folgt der Block-ID (`^id`) der Zeile, sonst der Zeilennummer. Aufgaben mit Fälligkeit zeigt auch die Kalender-App an (ohne Datum in ihrer Seitenleiste „Unscheduled tasks“)\n\n### Fixed\n- Markdown-Tabellen in der Vorschau brechen um, statt breiter als der Inhaltsbereich zu werden"}},"signatureDigest":"sha512"},{"version":"0.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.4.2-a9b925d/nc_netherrack-0.4.2-a9b925d.tar.gz","created":"2026-10-14T14:45:33.692516Z","licenses":["agpl"],"lastModified":"2026-10-14T14:45:34.893673Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"oiOCRvcGYqi+9HCXDrEOxWo9O7FFcgzn7394RF2T80Fs/qbxL9duziV1BDkNIrBx\nY6zzqFjtM3lBKpLukRiDJ6hOTZDI5n111CIktcryGrdztRmMTm7D9THyXMmcVJNm\nKxYvNSRb+yRUggtj45VnjVBNuFEB0yBkjit1xtuinEmuDk5ESR7y7DT/IkEYAR0n\nn4yDcNQWL4eaWOj2gLgS64HwJGNxtWPCRMLu9NsebpuHq3xEjWdjF8VfyULmqeb9\nf89tIUgIhINb6zC4X9EGPkfM0QzYgGf/Xs7ZPbicmGqopM7O8jg4hxkowLCnOat6\nqW4zunyJTZ6YPWTF/bW10SSrdlIbeVKPSgGwDQtnLs66Ys8X1eIt7ePoMYPqui7D\njJlHgOpsygcwJKUEvhuXn6J8g2JmIrnygakBwb0/YRxWriF+Uaix9laUW6YO4/+k\nDtqHx7wweIEyNtaY0Qz+OpyhDfRF7yAuwQXhOmrZoYhV9++jvpvqYXsE7yyjpdEX\nwnujGlLNCzWlyltTSSThM3z52uNWb65G5LQ1H9dGQnqvPBldfqv697lj/uMBhwjd\nZ25N3umyIgVBT4SapoElOhDTRSpA9ZdQ0RnmwaMgMSr4eOBcCaneRE9JarrG+wrj\nt1sfEj/D3juVjmSGvIZL05XmL6FBnpgF7SXgktMeZSg=","translations":{"en":{"changelog":"### Added\n- Kurzlink: Ein Klick auf den Dateinamen in der Kopfzeile kopiert jetzt `…/apps/nc_netherrack/n/<Datei-ID>` statt des langen Pfad-Links. Der Kurzlink bleibt beim Umbenennen und Verschieben gültig und führt zur Ansicht des jeweiligen Nutzers (auch bei Freigaben); ohne Zugriff landet man auf der Startseite. Der bisherige `?path=`-Link funktioniert weiter\n- Smart Picker („Intelligente Auswahl“, `/`-Menü in Talk, Text, Deck, Collectives): Netherrack erscheint als Eintrag; die Auswahl nutzt die Treffer der Unified Search und fügt den Link `…/apps/nc_netherrack/?path=…` ein (suchbasierter Reference-Provider, `ISearchableReferenceProvider`). Links auf Notizen, Tabellen, Canvas und Bases erscheinen als Rich-Vorschau (Titel, Art, Textauszug, Pfad), aufgelöst nur für Nutzer, die die Datei in ihrem Netherrack-Ordner sehen (auch über Freigaben). Das Vorschau-Widget wird per `RenderReferenceEvent` nur dort geladen, wo Referenzen gerendert werden. Verwendbar ab Nextcloud 26, die App selbst benötigt Nextcloud 31–35. Keine Vorschau über öffentliche Freigaben (kein `IPublicReferenceProvider`). Der Link-Aufbau (`NoteReferenceProvider::parse()`, `::cachePrefix()`) ist für nc_Gantt (#364) wiederverwendbar (#123)\n- Historie dieser Notiz: Neues Panel „Historie“ in der rechten Seitenleiste zeigt die Nextcloud-Dateiversionen der Notiz als Zeitstrahl (Datum, Größe, bei vielen Versionen mit „Mehr anzeigen“). Eine Version lässt sich schreibgeschützt ansehen und nach Rückfrage über den VersionManager wiederherstellen; die bisherige Fassung bleibt als Version erhalten. Neue OCS-API `GET notes/versions`, `GET notes/versions/content`, `POST notes/versions/restore` (Wiederherstellen nur mit Schreibrecht, 403 sonst) (#117)\n\n### Changed\n- Teilen-Symbol in der Kopfzeile öffnet ein Menü mit „Dateien-App“ (bisheriges Verhalten: Files-Sidebar, Tab „Teilen“), „Kurzlink kopieren“, „Wiki-Link in Zwischenablage“ und „Veröffentlichen …“. Die beiden letzten Einträge sind aus dem Kontextmenü der Dateiliste hierher gewandert (Ordner lassen sich dadurch nicht mehr veröffentlichen). Dasselbe Menü gibt es auch in den Ansichten von Canvas, Base und Tabelle\n- Editor-Kopf neu geordnet: In der ersten Zeile stehen links Dateiname, Stern, Teilen, Speichern und Vorschau, rechtsbündig Tags und Properties; darunter die Format-Schaltflächen. Wird der Platz knapp, verschwinden zuerst Tags und Properties, dann nacheinander von rechts nach links die Format-Schaltflächen. Aus- und Einklapp-Häkchen der Format-Leiste stehen oben in der Zeile mit dem Dateinamen (#122)\n\n### Fixed\n- Drucken gibt nur noch den Inhalt der geöffneten Notiz aus statt des ganzen Browserfensters: in der Vorschau formatiert, im Editor als Markdown-Quelltext (vollständig, auch bei langen Notizen); in anderen Ansichten ohne Kopfzeile und Seitenleisten (#129)"}},"signatureDigest":"sha512"},{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.4.1-6a6621c/nc_netherrack-0.4.1-6a6621c.tar.gz","created":"2026-10-13T10:37:09.900908Z","licenses":["agpl"],"lastModified":"2026-10-13T10:37:09.941263Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"daq6OBz5NW4nyBlh0APL1nooGgg1MKVMKvpcG8doRLhqvwP7b+YB6FArV6fKq821\n  WQfcPA9UBLoxuN4k4XHdPeqRcV7IK/kHsqaOtB5PnyJLLev74L498OeE+WNpMmcl\n  dGkI2qFNPfxN8zIvv7tyJvj5DCkM5Pdo2uREZJ1Eaj/d5dxrSX7/64imZ9ClsBvA\n  +q1kf7ougzN3JfUOSZ50kgoCUb+ImnoWHCkw8GfGQhxK2UdZyBGWcV2lREczjlKe\n  nxU58chbIZH5d2Z+QystAPOzbr9w7hu29KLbrP8sHaPkUauTQEnm0eYU+E5M7x9K\n  Cq0O6txT4xXnL45N+cN7T17HX2NalFKW1Oe0SwwojurpZT+DHBRkOLFR+lgfWdpo\n  3zrlJuLAg94Ex4m/kNfmyx3/oAACK9yV86xFgXTsheJOKyl07m7nDPzWo7JuWVGO\n  TeYQ2iiGVwJkJO5J/ZNGejhIPBAtII8ydrgEAKIzsJcsOmlXAYb4I42V4VZat44z\n  /+fsGCJeFRwmn764pj1LlekewZ2Q4QvePf7CJyySSntwrsqLwR807QWFU13cwsN+\n  1etGz5KDN+C1beaOdlhbGzMnrewIeGCtQ1XUvavpVu4AzYxwyQhJWE/JWfhiAB4Y\n  unSrAJCVHFEDwSVCVQeTQRaDQ/neQ4l/QHXxzkzLJLk=","translations":{"en":{"changelog":"### Added\n- Reiterleiste: Ganz rechts schließt „×“ („Alle Tabs schließen“) alle Reiter samt der geöffneten Notiz; die Schaltfläche bleibt bei jeder Fensterbreite sichtbar und wird von den Seitenleisten-Knöpfen nicht verdeckt. Reicht der Platz nicht, werden die Reiter schmaler und dann links abgeschnitten, sodass der aktive Reiter sichtbar bleibt; das Mausrad blättert waagerecht durch die Reiter\n- Log mit Reitern: neben dem Transkriptions-Log zeigt **Dateisperren** die aktiven Sperren aus der Datenbank (`file_locks`) mit Art und herunterzählender Restzeit – eigene Dateien mit Pfad, für Administratoren auch alle übrigen; bei Sperren über Redis/APCu ein Hinweis. Neue OCS-API `GET locks`. Der Eintrag „Log“ erscheint jetzt auch ohne Spracherkennung\n- Dateimenü der Navigation: **Wiki-Link in Zwischenablage** kopiert `[[Ordner/Datei]]` (Notizen ohne `.md`) für Dateien und Ordner\n- Links in Tabellen und Canvas: Web-Links `[Text](https://…)` und Wiki-Links `[[Notiz]]` funktionieren in Tabellenzellen (klickbar im Grid) und Textkarten; die Symbole für Link und Wiki-Link entsprechen denen des Markdown-Editors\n\n### Removed\n- Canvas: Die Schaltfläche „Weblink hinzufügen“ entfällt; Links werden über „Link“ und „Wiki-Link“ in Textkarten gesetzt. Vorhandene Link-Karten werden weiterhin angezeigt\n\n### Changed\n- Canvas: Das Mausrad zoomt um den Mauszeiger, statt die Ansicht zu verschieben; Umschalt + Mausrad verschiebt weiterhin\n- Der Graph zeigt neben Notizen auch Bases, Canvas und Tabellen (jeweils eigene Form und Farbe); ein Klick öffnet den Eintrag\n- Im Graphen wird die aktive Base, Canvas oder Tabelle wie die aktive Notiz hervorgehoben (Farbe und Rahmen), behält aber ihre Form\n\n### Fixed\n- Speichern von Notizen mit langem Pfad konnte bis zu einer Stunde blockiert sein: Der interne Sperrschlüssel wurde in der Datenbank auf 64 Zeichen abgeschnitten und beim Freigeben nicht mehr gefunden. Lange Schlüssel werden jetzt gehasht"}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.4.0-e711abc/nc_netherrack-0.4.0-e711abc.tar.gz","created":"2026-10-13T07:28:47.129823Z","licenses":["agpl"],"lastModified":"2026-10-13T07:28:47.178243Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"fW66+/I2WmeFxTInI3gSp6fYr/gbnA46tz7vNhfrSJDSh8E1gGCcYPTfchufYhXz\nOTh6193exEvxZ61YMqhfbxbx+QD436Lz/TxNagbrZRH0t/paXtgkuaKemI9Mb9QK\nnarSRnE4PogdkKrlX0MR/nFrENdv3FZKgsqsMk0Cd7DaGYaCMGljc34RwsCzArTl\n7g4fSDpKIR11ky9xNhAlZCODX7hbwoz2Cx/PcCPwPlpSyPlMbDFwTn/0nRzVdeHi\nIgWjRpeg0h6Au4UHI339/e2rwtnStqP3KSj9aAkzhxMVfX7w1XZ/DdgqiHRrMU7T\nulRUYWPEF28bQUvUddrAggjMVTZ679NcHP9rlpkBP5QgYb/ZwVbMEoFOwgHb00xL\nJ/CX5DQG4e9FNBPKC1kqA2EyshKvo3eZky+m4IqRtToTKs5hlM5KzGP3TRB0z6Wu\nmmD9lRc/rwY9DJYlAnCAwMx+vECc4+9g/0p7bHUFtER/TdURPFcQ2cW5IvHq0Lvd\nDSbFNCE9GjhjMMWbGw+2sjy8dm7g6rxwcFoM/ekcKnhzqi3+NXA0VAXNTx2l+md6\npvEiX6Dsc+6OPToDZ1Dd3v2OEz2bVvEfO28Md9NvJyxodDHrj2nP8/RdMvTtAK//\nvCAIiXNCqyXjUZbPt11D1LBk/q2UJ7kB/SuQaa6y5Rk=","translations":{"en":{"changelog":"### Added\n- Neuer Objekttyp **Tabelle** (`.ods`, OpenDocument, mit LibreOffice/Collabora lesbar): Grid mit 100 × 100 Zellen zum Start, Zeilen/Spalten über das Kontextmenü der Köpfe einfügen und löschen, Tab/Enter am Rand hängt an, Spaltenbreite ziehen. Formeln wie in Tabellenkalkulationen (`A1`, `A1:C5`, `A:A`, `+ - * / ^ % &`, Vergleiche; `SUM`/`SUMME`, `AVERAGE`/`MITTELWERT`, `MIN`, `MAX`, `COUNT`/`ANZAHL`, `COUNTA`/`ANZAHL2`, `MEDIAN`, `ROUND`/`RUNDEN`, `ABS`, `IF`/`WENN`, `SUMIF`/`SUMMEWENN`, `COUNTIF`/`ZÄHLENWENN`, `PERCENT`/`PROZENT`), Bezüge wandern beim Einfügen/Löschen mit, Fehler `#FEHLER`, `#DIV/0!`, `#BEZUG!`, `#ZIRKEL!`. Eingabe nach Gebietsschema (Tausendertrenner beliebig, in Prozentzellen ist `12` = 12 %), Zahlenformate Standard/Zahl/Prozent/Währung/Text mit Dezimalstellen, Prozent- und Währungszeichen rechts mit Leerzeichen, Fett/Kursiv/Durchgestrichen, Ausrichtung (Standard links, Zahlen rechts, in der Werkzeugleiste angezeigt), 12 Schrift- und Hintergrundfarben für Hell- und Dunkelmodus, Emoji-Auswahl. Funktionsmenü „f“ mit Syntax-Tooltips (auch in der Funktionszeile); Zellen und Bereiche werden per Mausklick bzw. Ziehen in Formeln eingetragen, eine Formel schließt nur Enter ab. Permalink `?path=…` für `.ods`. Zwischenablage mit Excel/LibreOffice (TSV) und Markdown-Tabellen in beide Richtungen. Rückgängig/Wiederholen der eigenen Änderungen (#125)\n- Gemeinsame Bearbeitung von Tabellen über Nextcloud-Freigaben: Operationen je Zelle über die neue OCS-API (`GET/POST tables`, `POST tables/{fileId}/sync`, `POST tables/{fileId}/leave`, `GET tables/embed`) mit fortlaufender Version je Datei (`netherrack_table_ops`), Abfrage etwa jede Sekunde, gebündeltes Schreiben in die Datei (spätestens alle 5 Sekunden, beim Schließen durch den letzten Bearbeiter, sonst Hintergrundjob); Änderungen außerhalb von Netherrack laden alle Clients neu. Cursor der anderen in eigener Farbe mit Avatar und live getipptem Text, Avatarleiste, Anzeige erst nach Aktivität, nach 30 Minuten grau, beim Schließen bzw. nach 30 Minuten ohne Lebenszeichen ausgeblendet; Anwesenheitsdaten werden nach 24 Stunden gelöscht (#125)\n- Tabellen in Notizen: `[[Tabelle.ods]]` verlinkt, `![[Tabelle.ods]]` bettet schreibgeschützt mit berechneten Werten und Formatierung ein; Zellwerte in der Volltextsuche (eigener Index `netherrack_table_index`). Fremde Dateien mit mehreren Blättern, Diagrammen, verbundenen Zellen oder bedingter Formatierung öffnen schreibgeschützt (#125)\n\n### Changed\n- Bases haben ein neues Symbol (Datenbank mit Lupe statt Tabelle) in der Navigation, bei den Lesezeichen und im „Neu“-Menü, damit sie nicht mit Tabellen verwechselt werden (#124)"}},"signatureDigest":"sha512"},{"version":"0.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.3.4-9c72700/nc_netherrack-0.3.4-9c72700.tar.gz","created":"2026-10-11T07:49:27.199638Z","licenses":["agpl"],"lastModified":"2026-10-11T07:49:27.360984Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"IDx4N79/4fPaCU2dG5VWoEkSLGUXHmrdSfULMcU4yrw1hjNL0Rfiatgq/WPE1BD2\n  KJDVjjG2mjQuXpSrho6NEC0zu5W6GYQRQGIz6YXsXlf5HH1bDDicTWHKg5jhPZhQ\n  NMpM5UM4T+WBoJQkr0+FsA7RvAmyNvlsJ1lkkulZ7nLJij67TZ12ab0UkvqAMU3z\n  SLDsBjTXhBWi7UK1CXRSWRqPeQo8Wf9whLgd2naB4YXen6nmR9I2zxkhVFyWPooi\n  gLo9kphVQQn6Gci3/oNMfNUMPPUTUETFd1zSVDw4FiY5LW7gNM0n1PvDDTutqzK3\n  5iVOP3hfNT6VLg1wLGkT9KGCVFIoNV/aoXcTJvEU2tjnJcp8ot+yNA7Ilk/rVsXr\n  LnTRb9jYsNumraD18Yh+g4DC1EyWNjjXL8ALWVIIuPuDRJrrd7ZMFVG7rnNoFSYP\n  BLgEy/FgNmg7UORbyIE5IgJkGazbW3jvv872dPKNVSIeFV9CF3v4WXYdffv9ZIFs\n  qJrRLzISjQoemJrOSget1wJlrR6VM/9qodNkqPY5OvkDGToMezvD6W59A2YUhb9A\n  bsBu/6hhhnbulZNSulIBhcRWyQ1svIO0A9bIeEG50VPQTL0KaR0K1aS+/pzspX5F\n  4vAduwGkAduRFxsBZCEB2x5spap2YWPKxEsJmMNiaIU=","translations":{"en":{"changelog":"### Fixed\n- Erwähnungs-Chips nur für Nutzer, die es im System gibt: Der Editor zeigt `@benutzer-id` erst als Chip, wenn der Server den Nutzer bestätigt hat (gebündelte Abfrage über `GET mentions/status`); unbekannte IDs bleiben Text. In der Vorschau sind Erwähnungen bis zur Prüfung Text statt Platzhalter-Chip, auch wenn die Prüfung fehlschlägt (#119)\n\n### Added\n- Vorschau: Fälligkeit (`due::`) und Priorität (`priority::`) einer Aufgabe erscheinen als Chips wie in der Aufgaben-Ansicht statt als Rohtext (Priorität „Hoch“/„Mittel“/„Niedrig“ in denselben Farben, andere Werte unverändert; Fälligkeit `YYYY-MM-DD [HH:MM]`, rot, wenn offen und überfällig; ungültiges Datum als Warn-Chip), auch in Einbettungen und in der öffentlichen Ansicht. Chip-Farben gemeinsam in `shared.css`, geprüft im hellen und dunklen Modus (E2E-Test `task-chips.spec.js`, auch für die Erwähnungs-Chips) (#115)\n- Editor: Fertige @-Erwähnungen erscheinen als Inline-Chip; der Text bleibt normal bearbeitbar, das gerade getippte `@…`-Wort bleibt bis zum Verlassen Text (nicht in Code und Frontmatter) (#114)\n- Navigation: Doppelpfeil rechts in der „..“-Zeile eines Ordners schaltet die Sortierung zwischen „neueste oben“ (Standard) und „nach Anzeigename 0–Z“ um; gespeichert pro Browser (#114)\n\n### Changed\n- Aufgaben: Ein Klick auf eine Aufgabe lässt die Zielzeile im Editor einmal kurz aufblinken (halbtransparenter Block, ebenso bei Sprüngen zu Block-Links). Aufgabentexte nicht mehr fett und ohne die `@benutzer-id` der Zugewiesenen; der Titel der Quellnotiz zeigt den vollständigen Titel im Tooltip; der Status-Filter heißt „Offene/Erledigte/Alle Aufgaben“ statt „Öffnen/Fertig/Alle“ (#114)\n- Seitenleiste: **Lesezeichen** und die Lesezeichen selbst nicht mehr fett; Abstand zu **Für mich** wie zwischen den anderen Einträgen (#114)"}},"signatureDigest":"sha512"},{"version":"0.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.3.3-4befcdf/nc_netherrack-0.3.3-4befcdf.tar.gz","created":"2026-10-09T12:50:04.363591Z","licenses":["agpl"],"lastModified":"2026-10-09T12:50:04.435516Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"oWH8+CdkU7xPmtGeim/zuGWi+smohyzy7zmMoyFG2gubmpgaHUaWSj0IEiwRVbai\n  3SXl9UfScdmwQ4BbcKmX7phCfOdy6q9rf3EJqHLbO6e2K4NJSpRz+ukqbY1cab8n\n  Ty8EVrtZTiudf792rftQD6IySfnP+sKlqT9T4R0JLxHMxjkzy0Urus6OEIDCnhHW\n  ysJ7HXtyE+PSkXXiyMoEgjAOxZmDdNLRF5vlcZw9L68B2m7dKdQeD0P5dKAnbPUY\n  Ni1aWihCpQgg36w6O8J0mkujV+FtLzKj28iqbHG7UGDrYLJzpZsOH70+Y3K0tJrB\n  KTlNAnSUjTRluRqQgowhqnf1xzRMhlKdu+5YGgv8CMx5Hypt4CYZk3d76U9u9T41\n  z/2j7CS6Cg+41oFC54LOctoMJjI8ralyUSvBtDie7eBsuhMnd6Oyv0XpSE+krIUl\n  Zo9ztQ63EsZuFdYaF6WwK7NqcLphknRDXB2Vb20hS2TYdcdD1olTSn6gUD1U1PGb\n  VCNHZG8/Iu2ULzU2oxObuwWp+5uk2SdQ5ACegJlMrxET7u6C7TuOEeoRoO5YnmLr\n  N6gvnLYDYZ5y0comGezbgnmpUsNdN7KpKUpzw86r+AJbep+0WRWyCkAZyhMPBona\n  aLzcFhIHnUmtfqRRG0sCVI8M/h/4b5U2Y9pwII0Ldws=","translations":{"en":{"changelog":"### Added\n- @-Erwähnungen (Oberfläche): Autovervollständigung nach ` @` im Editor über die Nextcloud-Autovervollständigung (Anzeigename, Benutzer-ID, Avatar, auch der eigene Nutzer), die Auswahl fügt `@benutzer-id` ein; der Autosave pausiert, solange der Cursor in einem unfertigen `@…`-Wort steht (auch nach Esc). Vorschau zeigt Erwähnungen als Chip mit Anzeigename und Zugriffsstatus (Zugriff / geteilt, aber nicht in Netherrack / kein Zugriff). Neue Ansicht **Für mich** unterhalb von **Aufgaben** (Titel, Pfad, Änderungsdatum, Anzahl Erwähnungen, einklappbare Gruppe „Erledigt“, Haken setzt/entfernt `done: true`, Klick öffnet die Notiz an der ersten Erwähnung). **Aufgaben** zeigt die Gruppen „Meine Aufgaben“ und „Nicht zugewiesene Aufgaben“ mit Anzahl (#109)\n- @-Erwähnungen (Backend): `@benutzer-id` (Zeilenanfang/nach Leerzeichen, Satzzeichen abgeschnitten, nur existierende Nutzer, nicht in Code/Frontmatter) im neuen Index `netherrack_mentions`. Erwähnte Nutzer ohne Zugriff erhalten automatisch eine Freigabe (Lesen + Bearbeiten) unter `Netherrack/Geteilt/`. Neue Endpunkte `GET mentions` („Für mich“, erledigt über `done: true`/`status: done`), `PUT mentions/done`, `GET mentions/status` (Zugriffsstatus) und `POST tasks` („Meine“ / „Nicht zugewiesene“ Aufgaben); Query-API mit `{\"task\": \"assignee\"}` und `task.assignees`. Benachrichtigung genau einmal pro Notiz und Nutzer als Aktivität „Erwähnungen in Netherrack“ (Push an, E-Mail aus), ohne Activity-App über Notifications; nicht beim Index-Neuaufbau, nicht bei Selbsterwähnung. Angenommene Freigaben unter dem Notizordner werden sofort indexiert (#108)\n- Notizordner pro Nutzer wählbar statt fest `Netherrack/`: **Einstellungen → Notizordner** mit Nextcloud-Ordnerauswahl und „Neuer Ordner …“ (Ort wählen, selbst benennen), Hinweis vor dem Wechsel, dass bisherige Verlinkungen und Dateien eventuell nicht mehr auffindbar sind, und Schalter „Datenbank auf den neuen Ordner ausrichten“ (gespeicherte Pfade umrechnen, Lesezeichen/Layouts übernehmen). Index und Datei-Events folgen dem gewählten Ordner; neuer Endpunkt `PUT settings/notes-folder` (#106)\n\n### Fixed\n- Textmarkierung im Editor und in der Vorschau deutlich sichtbar (heller und dunkler Modus): Der Editor-Inhalt verdeckt die Markierungsebene nicht mehr, die Markierung ist aus der Primärfarbe gemischt und setzt sich von Hintergrund und Text ab, Text bleibt lesbar (Kontrast Markierung/Hintergrund ≥ 1,5:1, Text/Markierung ≥ 4,5:1; E2E-Test `selection.spec.js`) (#111)"}},"signatureDigest":"sha512"},{"version":"0.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.3.1-1288293/nc_netherrack-0.3.1-1288293.tar.gz","created":"2026-10-08T14:10:30.975522Z","licenses":["agpl"],"lastModified":"2026-10-08T14:10:31.024223Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"Sh9YclTMi3XkFiNnA6G2GEcF0WBE0xNpwvftffsMMJ2jUI0HIsDJQiW/hdHhT+Yw\nmy1BK2TZq/45BcxgzLLTPUpUOKRo7fvLXM/TSrMrWpJiCyUoa1G9pBWG4twFHstV\n7naFWbMF5X1gb5EjOAS9CdtZ9Qx4VNMQNNVZ8z2OQCeqw/QsBvS0JWPvvv9zj0Fq\nXFVzvNUNaYwHa+eXPXG0AMO+bBbnnYjfkJB9XEPtksyzNxa7LRPfYV8neJUgI4ZV\noX1/Lr8DWz50mA5weyr56I9cuELB00XwU8wMOGdhI8VvRjEIjVyT/T+9JIrRsxur\n4MnXcv6orOkFccp5b8qIS++D0FrYzAzRTj6/7ld7B0FxEt0cGuItrRt/vUQohu3D\nHEgAXWocPs9CiF0GQAEwUmCWOTxOvbPwrNd39I7tjHpbV47kaKSL0cX4LLn5dOfT\nWV33besJKt7NKmsAGa7ZDf0+gNRS6wYLFUMK9MWYGWwRImwOWIfnjv1P1SFjHkIJ\n70G3RxxiByt2vb+TNaE8isgudlP6OuNsR058v1G1JZZ1asQ2D4KELGJTV1om/JII\nmwYIjBQwq3K5M+CRpClU2EpDvs0FYI87+IqUNn1W5rSJ8dq7qL6mOsENBkifgpy/\nptOjd3lc3vmkYvmyXZ29eJoHRjTrHB/GAicoCwqvjhw=","translations":{"en":{"changelog":"### Changed\n- `info.xml`: ausführliche App-Store-Beschreibung (Features, Doku-Links) im Release-Archiv"}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/Netherrack/releases/download/v0.3.0-c7d3f5e/nc_netherrack-0.3.0-c7d3f5e.tar.gz","created":"2026-10-08T13:52:36.893330Z","licenses":["agpl"],"lastModified":"2026-10-08T14:03:27.926092Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"uO0x8bUd3TM62tGqqYNJnpQKOg58Hx0g72dtX9Z9t18kKhSgD0v8huIdya2Jm2z7\n9nrhO1+MOQJuH8yP3XccEVt25crVuH1jwWHm9gbru8Fpe7Nox8vLX+h1f3dZwOdk\nGvgm98ypnhItsiM2yVRC5zvby4w2NmQ7iaZTOvPHBoFtJiPKTCI+r4uq5tzAnPpc\n94MBcyx7+KghSygaRxbsSqUEr6eBeUnNs87cS4VpC4PLyeJsKRktqsZQo+p8POaK\nEsvZ0+m9ysor6j84or6+f2uyaCproqPZVHUrZgQlC7mbLbVd0Bfet+Cl2DWI+Z9q\nIIbiZjjtQbCH8EDyUIj/nmMkWhcOweDgnR81mhTcyyRxbd+yUFguQV/VYP/uesfq\njKlnjvsJ6DrVaSsa5EmcVjclf7OOJggSGb+C2v9P3VJm5mnAqWCCjWQItf4X+WKI\nlzm8jtE729pSsIw6Q7gL64BzrAnz1P9OAUnP1E3t0r4PU9TLaxa7z3hnafUs/R5r\nNYwvPQ3EIAlovJwPyUEvmN8mNKQHSrGkfj3zYYOS/5V0Ire/XG5mZo728q0Cw0NA\nqZEipd7hjce/1HCdOOsAarOXig7LryQ7tBmY2TGgSsu+3mxd4ZxVZo6juI1wVY7M\nrBvUPAasIWI9FEi9v50NFzqIcA3p/zdNyj/PGO7kc/I=","translations":{"en":{"changelog":"### Added\n- Veröffentlichen: Notizen und Ordner per Linkfreigabe als öffentliche Webseite (`/apps/nc_netherrack/s/{token}`) mit gerendertem Markdown, Notizliste, Wiki-Links und Einbettungen nur innerhalb der Freigabe; Links nach außen erscheinen als Text. Passwort/Ablaufdatum der Freigabe gelten; kein Zugriff auf den Index. Aktion „Veröffentlichen …“ im Dateibaum (#59)\n- Canvas: `.canvas`-Dateien im offenen Format JSON Canvas 1.0 mit Text-, Notiz-/Datei-, Link- und Gruppenkarten, Verbindungen mit Beschriftung, Farben, Verschieben/Größe ändern, Zoom, Rückgängig und Autosave; unbekannte Felder bleiben erhalten. „Neue Notiz → Canvas“. `[[Ordner/Notiz]]` wird jetzt auch über den Pfad aufgelöst (#57)\n- Sprachnotizen: Transkripte erhalten Frontmatter (`type: voicenote`, `recorded`, `duration`, `audio`, `language`, `tags: [voicenote]`) und betten die Aufnahme abspielbar ein (#58)\n- Dateien einbetten: `![[bild.png|300]]`, PDF, Audio, Video und relative Markdown-Bilder in der Vorschau; Einfügen aus der Zwischenablage bzw. Drag & Drop lädt in den Anhang-Ordner hoch (Einstellung); Umbenennen eines Anhangs über die App schreibt Einbettungen um (#50)\n- Bases: mehrere Ansichten pro `.base` (`views`, Umschalten per Reiter) und neue Ansichtstypen Karten (mit optionalem Titelbild), Kanban (Drag & Drop ändert die Spalten-Property im Frontmatter) und Kalender (Monat/Woche nach Datums-Property) (#53)\n- Mehrere Bereiche: Reiter für geöffnete Notizen, zweiter Bereich nebeneinander mit unabhängigem Speichern (Dateibaum-Menü, Strg/Cmd-Klick in der Vorschau, Strg/Cmd+Umschalt-Klick im Editor), wählbare Panels in der rechten Seitenleiste (Backlinks, ausgehende Links, Tags, Gliederung) und benannte Layouts; das letzte Layout wird beim Start wiederhergestellt (#56)\n- Lesezeichen: Bereich in der Seitenleiste für Notizen, Ordner, Überschriften, Blöcke, gespeicherte Suchen, Tags, Bases und Links, mit verschachtelten Gruppen, Umbenennen und Drag & Drop. Stern-Menü in der Editor-Kopfzeile, „Suche speichern“. Gespeichert in `Netherrack/.netherrack/bookmarks.json`; Lesezeichen folgen Umbenennungen über die Datei-ID (#55)\n- Suche mit Gewichtung: Titel > Überschrift > Tag/Property > Pfad > Inhalt, Häufigkeit als Nebenkriterium; durchsucht jetzt auch Tags und Property-Werte. Treffer zeigen die Fundstelle und springen zur Überschrift bzw. Textstelle – in der Seitenleiste und in der globalen Nextcloud-Suche (`?path=&line=`) (#64)\n- Bases: Ansichten über Notizen als `.base`-Datei (YAML, Filter im Format der Query-API) mit Tabellen- und Listenansicht, Spalten, Sortierung per Spaltenkopf, optionaler Gruppierung und direkt bearbeitbaren Property-Zellen (Schreib-Service). „Neue Notiz → Base“, Öffnen im Dateibaum, „Definition bearbeiten“; Endpunkte `GET/POST bases` (#52)\n- Aufgaben: `- [ ]`/`- [x]` aus allen Notizen im neuen Index `netherrack_tasks` (mit Einrückung/Elternaufgabe und Inline-Feldern `due::`, `priority::`). Ansicht „Aufgaben“ mit Filtern nach Status, Fälligkeit, Priorität, Tag und Ordner; Abhaken in Übersicht und Vorschau über den Schreib-Service (`PUT notes/tasks`); Query-API mit `\"source\": \"tasks\"` (#54)\n- Vorlagen: Jede Notiz im Vorlagen-Ordner (Standard `Vorlagen/`, pro Nutzer einstellbar) ist eine Vorlage. „Neue Notiz → Aus Vorlage …“ legt im aktuellen Ordner an, „Vorlage einfügen“ fügt am Cursor ein und ergänzt fehlende Frontmatter-Felder; Variablen `{{title}}`, `{{date}}`, `{{time}}`, `{{date:FORMAT}}`, `{{folder}}`. Optionale Vorlage für neue Tagesnotizen. Vorlagen werden nicht indexiert. Neuer Einstellungsdialog in der Navigation (#51)\n- Query-API: `POST query` bzw. `NetherrackService::query()` fragt Notizen nach Ordnern, Tags, Properties (typgerecht: Zahl, Datum, Bool, Liste), Datei-Feldern und Volltext ab – mit UND/ODER/NICHT-Gruppen, Sortierung nach mehreren Schlüsseln, Auswahl der Properties und Paginierung; ausgeführt als SQL gegen den Index. Das Abfrageformat (Version 1) ist in API.md beschrieben (#63)\n- Properties-Editor: Über dem Editor ein Tag-Feld mit Vorschlägen und ein Properties-Symbol, das einen Dialog zum Anlegen, Ändern, Umbenennen und Entfernen von Properties öffnet – je ein Eingabefeld pro Typ mit Tooltip und Vorschlägen für Keys und Werte (#72); ohne Frontmatter wird der `---`-Block angelegt. Grundlage ist ein gemeinsamer Schreib-Service (`NoteWriter`), der nur die betroffenen Zeilen ändert und Konflikte über `etag` erkennt (HTTP 409); neue Endpunkte `PUT/DELETE notes/properties`, `POST notes/properties/rename`, `GET properties/values`, `GET notes/blocks/candidates`, `POST notes/blocks`. „Neue Block-ID“ in der Autovervollständigung nach `[[Notiz#^` (#46)\n- Konflikterkennung beim Speichern: Wurde die Notiz seit dem Öffnen anderswo geändert, fragt der Editor (aktuelle Version laden oder überschreiben) statt still zu überschreiben (#46)\n- Einbettungen: `![[Notiz]]`, `![[Notiz#Überschrift]]` und `![[Notiz#^id]]` zeigen Notiz, Abschnitt bzw. Block in der Vorschau – abgesetzt, mit Link „Öffnen“, bis 3 Ebenen tief, mit Schutz vor Schleifen. Inhalte kommen gebündelt über den neuen Endpunkt `GET embeds` bzw. `NetherrackService::getEmbeds()` (#49)\n- Block-IDs: `^id` am Ende eines Absatzes/Listeneintrags (oder allein in der Zeile danach) macht ihn adressierbar; `[[Notiz#^id]]` springt zum Block und hebt ihn hervor, nach `[[Notiz#^` werden Blöcke vorgeschlagen, die Vorschau blendet die Marker aus. Block-IDs stehen im Index `netherrack_blocks` (Typ `block`); Backlinks liefern und zeigen die verlinkten Abschnitte/Blöcke (`anchors`) (#48)\n- Abschnitts-Links `[[Notiz#Überschrift]]` (auch `[[Notiz#Überschrift|Text]]`) springen zur Überschrift – per Klick in der Vorschau oder Strg/Cmd-Klick im Editor; fehlt die Überschrift, erscheint ein Hinweis. Nach `[[Notiz#` werden die Überschriften der Zielnotiz vorgeschlagen. Neuer Überschriften-Index `netherrack_blocks` mit Endpunkt `GET notes/blocks` bzw. `NetherrackService::getBlocks()` (#47)\n- Properties: Alle Frontmatter-Felder werden typisiert indiziert (Text, Zahl, Checkbox, Datum, Datum+Uhrzeit, Liste, Tags) in der neuen Tabelle `netherrack_properties`; neue Endpunkte `GET properties` und `GET notes/properties` bzw. `NetherrackService::getPropertyKeys()`/`getProperties()`. Der YAML-Leser versteht jetzt auch Kommentare, Anführungszeichen mit Escapes, verschachtelte Maps, Listen ohne Einrückung und mehrzeilige Texte. Ein einmaliger Hintergrundjob indiziert bestehende Notizen nach dem Update (#45)\n- Geteilte Notizen und Group Folders: Änderungen, Umbenennen und Löschen durch einen beliebigen Nutzer aktualisieren den Index aller Nutzer, bei denen die Notiz unter `Netherrack/` liegt (Eigentümer und Empfänger). Aufgehobene Freigaben verschwinden aus dem Index des Empfängers. Damit entfällt die bisherige Einschränkung, dass der Index des Eigentümers erst bei dessen nächstem Speichern aktuell wurde (#62)\n- Graph: Beim Überfahren eines Punkts zeigt ein Tooltip den Dateinamen (Pfad) der Notiz – hilfreich, wenn sich Beschriftungen überlappen (#38)\n\n### Changed\n- Layouts werden in den Einstellungen (Abschnitt „Layouts“) verwaltet statt über ein eigenes Menü unten in der Navigation: gespeicherte Layouts mit Reiterzahl und zweitem Bereich anzeigen, öffnen, umbenennen, durch das aktuelle Layout ersetzen und löschen (mit Rückfrage)\n- Neue Transkripte tragen das Tag `voicenote` statt `voice-note`; bestehende Notizen bleiben unverändert (#58)\n- Ordner und Dateien, deren Name mit einem Punkt beginnt, werden im Dateibaum nicht mehr angezeigt\n- „Neue Notiz“ ist immer ein Menü (Markdown, Base, ggf. Aus Vorlage und Sprachdatei)\n- „Neue Notiz“ legt immer im aktuell geöffneten Ordner an (auch in tieferen Ebenen und im Hauptordner) statt eine Auswahl der Ordner der ersten Ebene anzubieten; das Menü enthält nur noch „Markdown“ und bei aktiver Spracherkennung „Sprachdatei“ (#43)\n- Sprachaufnahmen merken sich den Ordner, in dem die Aufnahme gestartet wurde, und das Transkript wird dort angelegt; die Zuordnung über das erste gesprochene Wort entfällt. `POST voice` nimmt dafür das optionale Feld `folder` an (#43)\n- Eingaben und Rückfragen (neue Notiz, neuer Ordner, Umbenennen, Löschen, ungespeicherte Änderungen) nutzen Nextcloud-Dialoge statt der Browser-Dialoge `prompt`/`confirm`\n- Vorschau-Schalter ist der Nextcloud-Schalter (`NcCheckboxRadioSwitch`) statt einer Eigenentwicklung\n\n### Fixed\n- „Lesezeichen“ steht in der Navigation mit Icon und Text bündig unter „Heute“, „Graph“ und „Aufgaben“\n- Der Vorschau-Schalter in der Editor-Kopfzeile zeigt beim Überfahren mit der Maus einen Tooltip, ob die Vorschau ein- oder ausgeschaltet ist (vorher erschien gar kein Tooltip) (#65)\n- `![[datei.png]]` legt beim Speichern keine leere Notiz `datei.png.md` mehr an\n- Umbenennen einer Datei, die keine Notiz ist, über die App hängt nicht mehr `.md` an\n- Speichern schlägt nicht mehr mit „Speichern fehlgeschlagen“ fehl, wenn die Datei gerade gleichzeitig gelesen wird (kurze Wiederholung bei gesperrter Datei)\n- Wiki-Links auf den Titel einer Notiz (statt auf den Dateinamen) gelten in Vorschau und „Ausgehende Links“ als vorhanden und öffnen die Notiz, statt eine neue anzulegen – wie bei Backlinks und Graph. Bei gleichen Namen gewinnt überall die Notiz mit dem kleinsten Pfad\n- Buttons und Menüs zeigen wieder ihre vorgesehene Darstellung (primär/tertiär/Fehler): @nextcloud/vue 9 erwartet dafür `variant` statt `type`\n- Beim Löschen eines Nutzers werden auch sein Notiz-Index und seine Einträge im Transkriptions-Log entfernt\n- Transkription: whisper-cli wird ohne eingetragenen Pfad wie in der Statusanzeige im `PATH` gesucht (vorher meldete der Status „verfügbar“, der Job übersprang aber alles); fehlt ffmpeg, überspringt der Job mit Warnung\n- Dateinamen von Sprachaufnahmen und die heutige Tagesnotiz richten sich nach der Zeitzone des Nutzers statt nach der Serverzeit\n- Transkript-Notizen werden in der Sprache des Nutzers beschriftet (vorher immer Deutsch)\n- Hilfsmarker der Transkription in der App-Konfiguration werden aufgeräumt, sobald die Aufnahme nicht mehr aussteht\n- Transkript-Notizen aus dem Hintergrundjob werden indexiert (Suche, Tags, Backlinks, Graph); ohne angemeldeten Nutzer löst Nextcloud keine Datei-Events aus. Bereits vorhandene Transkripte nimmt `occ netherrack:index:rebuild` auf\n- Sprachaufnahme in Chrome, Edge und Safari: Die App-Seite gibt das Mikrofon frei (Nextcloud sperrt es standardmäßig per Feature-Policy) und erlaubt das Vorhören der Aufnahme (`blob:` als Medienquelle); bisher funktionierte die Aufnahme nur in Firefox"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDEtd2VsY29tZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDItZWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDQtcHJldmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDMtZ3JhcGgucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDUtbWVudGlvbnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDYtdGFza3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OZXRoZXJyYWNrL3Jhdy90YWcvdjAuNS4xLWEyZmM2ZTEvc2NyZWVuc2hvdHMvMDctZm9yLW1lLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Netherrack","summary":"Markdown notes with wiki links, tags and backlinks in your own Nextcloud","description":"**Your second brain — inside your own Nextcloud.**\n\nNetherrack keeps your notes as plain Markdown files with YAML front matter in the `Netherrack/` folder of your Nextcloud. Sharing, versioning, sync clients and WebDAV work out of the box because notes are ordinary files — no proprietary format, no lock-in. On top of the files the app maintains an index for search, backlinks, properties, tasks and graph views, and turns your notes into a linked knowledge base: wiki links, embeds, bookmarks, canvases and database-like views.\n\nAll notes stay on your own Nextcloud instance: no external service, no tracking, no data leaving your server.\n\n## ✨ Features\n\n* ✍️ **Markdown editor**: CodeMirror 6 with formatting toolbar, live preview and autosave. Conflict detection warns you if a note was changed elsewhere instead of silently overwriting it.\n* 🔗 **Wiki links**: `[[Note]]` with autocomplete, automatic creation of missing targets and link rewriting on rename. Link to headings (`[[Note#Heading]]`) and blocks (`[[Note#^id]]`).\n* ↩️ **Backlinks & outgoing links**: Panels with a jump to the linking passage, including the linked sections and blocks.\n* 🕸 **Graph view**: See all notes and their connections; hover for the file path, click to open.\n* 🏷 **Tags**: `#tag` and front matter tags with overview, AND/OR filter and autocomplete.\n* 🗂 **Properties**: All front matter fields are indexed with types (text, number, checkbox, date, date-time, list, tags). Edit them in a dialog above the editor; renaming a key works across notes.\n* 🧩 **Embeds**: `![[Note]]`, `![[Note#Heading]]`, `![[Note#^id]]` and files (`![[image.png|300]]`, PDF, audio, video) right in the preview. Paste or drag & drop uploads to the attachment folder.\n* 🔍 **Search**: Weighted full-text search (title > heading > tag/property > path > content) with jump to the match, also in the global Nextcloud search.\n* ✅ **Tasks**: `[ ]` / `[x]` from all notes in one view, split into “My tasks” and “Unassigned tasks”, with filters for status, due date, priority, tag and folder; check them off right from the overview. They also appear in the Nextcloud “Tasks” app and, with a due date, in the Calendar.\n* 🙋 **Mentions**: `@user` with autocompletion shares the note with that user and notifies them; chips in the preview show who has access, “For me” lists all notes that mention you.\n* 🗃 **Bases**: Database-like views over your notes as `.base` files — table, list, cards, kanban (drag & drop changes the property) and calendar, with filters, sorting, grouping and editable cells.\n* 🎨 **Canvas**: Infinite boards in the open JSON Canvas 1.0 format with text, note, file, link and group cards, labelled connections and colors.\n* 📊 **Tables**: Spreadsheets as `.ods` files (LibreOffice-compatible) with several sheets, formulas (function menu, pick cells and ranges with the mouse), number formats, merged cells, comments, colors and Markdown/Excel clipboard — edited together in real time with live cursors of everyone working in the table.\n* 📑 **Templates**: Every note in the templates folder is a template, with variables such as `{{title}}` and `{{date:FORMAT}}`; optional template for new daily notes.\n* 📅 **Daily notes**: Journal with day navigation.\n* 🔖 **Bookmarks**: Notes, folders, headings, blocks, saved searches, tags, bases and links in nested groups — they follow renames.\n* 🪟 **Tabs, split view & layouts**: Open notes in tabs, work in two panes side by side, choose the sidebar panels (backlinks, outgoing links, tags, outline) and save named layouts.\n* 🌐 **Publish**: Share notes and folders as a public web page via a link share, with rendered Markdown, wiki links and embeds restricted to the shared content; password and expiry date of the share apply.\n* 🎙 **Voice notes**: Record in the app and transcribe locally with whisper.cpp as a background job (optional, off by default, set up by the admin).\n* 👥 **Shared notes & Group Folders**: Changes by any user update the index of everyone who has the note.\n* 🔌 **API for other apps**: OCS REST API (`openapi.json`), a query API with typed filters, AND/OR/NOT groups, sorting and pagination, and a PHP service (`NetherrackService`) for other apps.\n* 📱 **Mobile view** and 🌐 **localisation** (English, German).\n\n## 🔐 Sovereign by design\n\nNetherrack runs entirely on your Nextcloud instance. Your notes are plain files you can open with any editor or sync client at any time.\n\nRequires Nextcloud 31–35 and PHP 8.1 or newer. Works with MySQL, MariaDB, PostgreSQL and SQLite.\n\n## 📚 Documentation\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/en/HOWTO.md) — first steps with notes, links, tags and search\n* 📋 [Feature reference](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/en/FEATURES.md) — every function with its purpose\n* 📝 [Changelog](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/CHANGELOG.md) — what changed in each release\n* 💾 [Installation](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/en/INSTALL.md) — setup and update notes\n\n## 🐛 Feedback\n\nBug reports and feature requests are welcome in the [issue tracker](https://codeberg.org/fds2610/Netherrack/issues)."},"de":{"name":"Netherrack","summary":"Markdown-Notizen mit Wiki-Links, Tags und Backlinks in der eigenen Nextcloud","description":"**Das zweite Gehirn — in der eigenen Nextcloud.**\n\nNetherrack speichert Notizen als einfache Markdown-Dateien mit YAML-Frontmatter im Ordner `Netherrack/` der eigenen Nextcloud. Freigaben, Versionierung, Sync-Clients und WebDAV funktionieren ohne Zusatzaufwand, weil Notizen normale Dateien sind — kein proprietäres Format, kein Lock-in. Auf den Dateien pflegt die App einen Index für Suche, Backlinks, Properties, Aufgaben und Graph-Ansicht und macht aus den Notizen eine vernetzte Wissensbasis: Wiki-Links, Einbettungen, Lesezeichen, Canvas und datenbankähnliche Ansichten.\n\nAlle Notizen bleiben auf der eigenen Nextcloud-Instanz: kein externer Dienst, kein Tracking, keine Daten verlassen den eigenen Server.\n\n## ✨ Funktionen\n\n* ✍️ **Markdown-Editor**: CodeMirror 6 mit Symbolleiste, Live-Vorschau und Autosave. Die Konflikterkennung warnt, wenn die Notiz anderswo geändert wurde, statt still zu überschreiben.\n* 🔗 **Wiki-Links**: `[[Notiz]]` mit Autovervollständigung, automatischem Anlegen fehlender Ziele und Umschreiben beim Umbenennen. Links auf Überschriften (`[[Notiz#Überschrift]]`) und Blöcke (`[[Notiz#^id]]`).\n* ↩️ **Backlinks & ausgehende Links**: Panels mit Sprung zur verlinkenden Stelle, inklusive der verlinkten Abschnitte und Blöcke.\n* 🕸 **Graph-Ansicht**: Alle Notizen und ihre Verbindungen; Tooltip mit Dateipfad, Klick öffnet die Notiz.\n* 🏷 **Tags**: `#tag` und Frontmatter-Tags mit Übersicht, UND/ODER-Filter und Autovervollständigung.\n* 🗂 **Properties**: Alle Frontmatter-Felder werden typisiert indiziert (Text, Zahl, Checkbox, Datum, Datum+Uhrzeit, Liste, Tags). Bearbeiten im Dialog über dem Editor; Umbenennen eines Keys wirkt über alle Notizen.\n* 🧩 **Einbettungen**: `![[Notiz]]`, `![[Notiz#Überschrift]]`, `![[Notiz#^id]]` und Dateien (`![[bild.png|300]]`, PDF, Audio, Video) direkt in der Vorschau. Einfügen aus der Zwischenablage und Drag & Drop laden in den Anhang-Ordner hoch.\n* 🔍 **Suche**: Volltextsuche mit Gewichtung (Titel > Überschrift > Tag/Property > Pfad > Inhalt) und Sprung zur Fundstelle, auch in der globalen Nextcloud-Suche.\n* ✅ **Aufgaben**: `[ ]` / `[x]` aus allen Notizen in einer Ansicht, getrennt nach „Meine Aufgaben“ und „Nicht zugewiesene Aufgaben“, mit Filtern nach Status, Fälligkeit, Priorität, Tag und Ordner; Abhaken direkt in der Übersicht; auch in der Nextcloud-App „Tasks“ und mit Fälligkeit im Kalender sichtbar.\n* 🙋 **Erwähnungen**: `@nutzer` mit Autovervollständigung teilt die Notiz mit dem Nutzer und benachrichtigt ihn; Chips in der Vorschau zeigen den Zugriff, „Für mich“ listet alle Notizen, in denen du erwähnt wirst.\n* 🗃 **Bases**: Datenbankähnliche Ansichten über Notizen als `.base`-Datei — Tabelle, Liste, Karten, Kanban (Drag & Drop ändert die Property) und Kalender, mit Filtern, Sortierung, Gruppierung und bearbeitbaren Zellen.\n* 🎨 **Canvas**: Unendliche Zeichenflächen im offenen Format JSON Canvas 1.0 mit Text-, Notiz-, Datei-, Link- und Gruppenkarten, beschrifteten Verbindungen und Farben.\n* 📊 **Tabellen**: Tabellenkalkulation als `.ods`-Datei (mit LibreOffice kompatibel) mit mehreren Blättern, Formeln (Funktionsmenü, Zellen und Bereiche per Maus wählen), Zahlenformaten, verbundenen Zellen, Kommentaren, Farben und Zwischenablage für Markdown/Excel — gleichzeitig gemeinsam bearbeitet, mit Live-Cursorn aller, die gerade in der Tabelle arbeiten.\n* 📑 **Vorlagen**: Jede Notiz im Vorlagen-Ordner ist eine Vorlage, mit Variablen wie `{{title}}` und `{{date:FORMAT}}`; optionale Vorlage für neue Tagesnotizen.\n* 📅 **Tägliche Notizen**: Journal mit Tag-Navigation.\n* 🔖 **Lesezeichen**: Notizen, Ordner, Überschriften, Blöcke, gespeicherte Suchen, Tags, Bases und Links in verschachtelten Gruppen — sie folgen Umbenennungen.\n* 🪟 **Reiter, geteilte Ansicht & Layouts**: Notizen in Reitern öffnen, zwei Bereiche nebeneinander, wählbare Panels in der Seitenleiste (Backlinks, ausgehende Links, Tags, Gliederung) und benannte Layouts.\n* 🌐 **Veröffentlichen**: Notizen und Ordner per Linkfreigabe als öffentliche Webseite mit gerendertem Markdown, Wiki-Links und Einbettungen nur innerhalb der Freigabe; Passwort und Ablaufdatum der Freigabe gelten.\n* 🎙 **Sprachnotizen**: Aufnahme in der App und lokale Transkription mit whisper.cpp als Hintergrundjob (optional, standardmäßig aus, vom Admin einzurichten).\n* 👥 **Geteilte Notizen & Group Folders**: Änderungen durch beliebige Nutzer aktualisieren den Index aller Nutzer, die die Notiz haben.\n* 🔌 **API für andere Apps**: OCS-REST-API (`openapi.json`), Query-API mit typgerechten Filtern, UND/ODER/NICHT-Gruppen, Sortierung und Paginierung sowie ein PHP-Service (`NetherrackService`) für andere Apps.\n* 📱 **Mobile Ansicht** und 🌐 **Lokalisierung** (Englisch, Deutsch).\n\n## 🔐 Souverän von Grund auf\n\nNetherrack läuft vollständig auf der eigenen Nextcloud-Instanz. Die Notizen sind einfache Dateien, die sich jederzeit mit jedem Editor oder Sync-Client öffnen lassen.\n\nBenötigt Nextcloud 31–35 und PHP 8.1 oder neuer. Funktioniert mit MySQL, MariaDB, PostgreSQL und SQLite.\n\n## 📚 Dokumentation\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/de/HOWTO.md) — erste Schritte mit Notizen, Links, Tags und Suche\n* 📋 [Funktionsreferenz](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/de/FEATURES.md) — jede Funktion mit ihrem Zweck\n* 📝 [Changelog](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/CHANGELOG.md) — was sich in jedem Release geändert hat\n* 💾 [Installation](https://codeberg.org/fds2610/Netherrack/src/branch/main/nc_netherrack/docs/de/INSTALL.md) — Einrichtung und Update-Hinweise\n\n## 🐛 Feedback\n\nFehlerberichte und Funktionswünsche sind im [Issue-Tracker](https://codeberg.org/fds2610/Netherrack/issues) willkommen."}},"isFeatured":false,"authors":[{"name":"fds2610","mail":"felix@schepmann.de","homepage":"https://codeberg.org/fds2610/Netherrack"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhRUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTYwOTE2WhcNMzcwMTEyMTYwOTE2WjAYMRYwFAYD\nVQQDDA1uY19uZXRoZXJyYWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAwbgEcG8GjoRA/NI/NPLeeObZXVWSgREPk7PVmELu8Zn83Q48PxaU+Y03BCga\nQPH3TySKkGi2CHO0N2lp4wED+4i7StDYjveXzHCJ33iffdNIRICm2vbbcCId2OZ7\nx3pQ3gtWOtMq3jFLUn/rMVF6KZS37mR4RjYb7zhe6vx9xxbmbVxyarpxjTnQNhs9\nx4mi2FiaYbOngUI74/HpOJFyVtSdiucg8jld6bSMY9ZuQrqfeT6cFJWhTEtBINdO\nEkQWSaEHSa0mA0ZNq+b+0wALwCYsKgygFeB4MULenX6oKoJst8X21II62L4efSMF\n7YauhW6+WEC78uTHIUGm23ORHa+1t4YK9QqatAyJuQ2zVuaf6VNkuFPESdXDIRqM\nVryy0SAP1o7q0GWjQHWopSZoe/8I3ES64RcAZE3QYbJlMjHWyNuj0fPEswp2Y9a0\ndPBC8ERnlT2uZBDlQ+nRkA7JaQ7i2t7jjYXeuS65yhozSRw9SR3GOjZbox+Qik+j\nQD2VXAkidq11O5f8cbe1UUVJPwAr/rBn8RztE9u6YD+TXxo89M5qObRY5fB9az70\nEg8Q3icPbtV6XRQALvAPdMIHEWd1WfGY4iLPOsciMq8a81rc66MDEynEW4JH+7q+\neCubJ1z06EHVO8iwMkfWRK/6h7j2AET/US5MSW1uev4cqcECAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAJ6SXk0fYQ8fOddGE+SjClCO2QXBtLVwyJG88qFfYr0v/T0JN\n458M18lUx0cEq5H6Pmb9lhbtc8sFRBBcP0iqGwBzpaE3m7JpCuo9ocmVWObQXHhp\nShdbw3HtDLmmdXJoJYvdHmmDDhZ6BbvL9U8LJDiU5Z6Y0zU4QezWQI/WraO1LkQR\nYYQBeBbd4+u6FXLlHQINLhkJKPmkBd/ITx707y2hM/D0qiNdIzseJIecA6VY2Cxv\nkfmJ97AA8CdO467AwyPLfPw1YSktjDo8vnSPOm1R2oXn9jDGaxKtoEg93FnfhWw9\nBDXmBDz9YFdhfd7YReuXa5Me7iIV926KIZoacA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"bbb","categories":["integration","multimedia","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/littleredbutton/cloud_bbb/issues","website":"https://github.com/littleredbutton/cloud_bbb/","created":"2020-04-27T09:04:51.044643Z","lastModified":"2026-10-01T13:41:36.478343Z","releases":[{"version":"2.9.4","phpExtensions":[{"id":"curl","versionSpec":"*","rawVersionSpec":"*"},{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"SimpleXML","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/littleredbutton/cloud_bbb/releases/download/v2.9.4/bbb-v2.9.4.tar.gz","created":"2026-10-01T13:41:36.467354Z","licenses":["agpl"],"lastModified":"2026-10-01T13:41:36.516452Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Ktmn8CLJPc1ICr+JzgEbW4nN6rUI9Xj3Iw0Sa3l3w4XXnSvc+bgdfmQQNZoradHM\nnlv1wRKfQmze9q7TEaNunJL3x70VQcIj29HerMAbqWEQRKg9thWaPi660qmXb8Le\n2Fs+rRNxUOKqGl0NcX73G7inC7Ih4CuRO2vhn8oHedo2rOcD7zJwNIvaqsVhGb6c\nRWuW1EUD+ucVJtoenXp711q/gi2gqH6GtfHLLVDUMLPhgt54zV6Za4Bql8DEznJM\n80XQzOh7bM1nGq36i8548H+Ark5gXfIPO4RKcLPVSn11MJO2nXLS4QJutqyUIAIe\n/7dfFRphsPCesDUc2VWHOyV8A4FFHd6hhcKsiiAGjOlRftsEkEbobxnXv7MQBNMx\naRuoyu0+lURK7tIArO7dWUtbLEb4dTXGyruKlcVMTeB8XRu14Fx1PWYuN8MGl7uZ\n8euNpNtjr6USDsJwH/Xpbyi+waQol5nNjEhZrogQ0K9N8kyyAORPZiC5wTJBI5y2\njc3391CP7j1IMkMhhICsp6BRZADEXV6RRD444OSrEcWB9g5ntL53FydxGkahV/nh\nkRNdZqtQdJHg8sd4ES+CEUgLsPX40vojsiR8VZa49CrgTSpzzKLIB6SXYJQiWTwN\nkViD8UeAEHpt6NQz61C4ohvEf/h8L+ATpKTOCtJY9MU=","translations":{"en":{"changelog":"### Fixed\n\n- Throw UnknownActivityException in activity provider by @bakiburakogun in [#436](https://github.com/littleredbutton/cloud_bbb/pull/436)\n- Support nc35 by @smarinier in [#440](https://github.com/littleredbutton/cloud_bbb/pull/440)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xpdHRsZXJlZGJ1dHRvbi9jbG91ZF9iYmIvbWFzdGVyL2RvY3Mvc2NyZWVuc2hvdC1jb25maWd1cmF0aW9uLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xpdHRsZXJlZGJ1dHRvbi9jbG91ZF9iYmIvbWFzdGVyL2RvY3Mvc2NyZWVuc2hvdC1jb25maWd1cmF0aW9uMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xpdHRsZXJlZGJ1dHRvbi9jbG91ZF9iYmIvbWFzdGVyL2RvY3Mvc2NyZWVuc2hvdC1qb2luLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xpdHRsZXJlZGJ1dHRvbi9jbG91ZF9iYmIvbWFzdGVyL2RvY3Mvc2NyZWVuc2hvdC1jb25maWctc2hhcmUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"BigBlueButton Integration","summary":"BigBlueButton integration for Nextcloud","description":"This app allows to create meetings with an external installation of [BigBlueButton](https://bigbluebutton.org).\n\n* **Room setup** Create multiple room configurations with name, welcome message …\n* **Share guest link** Share the room link with all your guests\n* **Share moderator link** Invite moderators to the room\n* **Share rooms** Share rooms with members, groups or circles\n* **Custom presentation** Start a room with a selected presentation from your file browser\n* **Manage recordings** View, share and delete recordings for your rooms\n* **Restrictions** Restrict room creation to certain groups\n* **Activities** Get an overview of your room activities\n\nQuick start guide and further information in our [readme](https://github.com/littleredbutton/cloud_bbb).\nDo you like this application? Give something back to the open source community and checkout our\n[ways to contribute](https://github.com/littleredbutton/cloud_bbb/blob/master/.github/contributing.md).\n\nContributors are welcome! If you have time it would be awesome if you could help to enhance this application.\n\n*This app integrates BigBlueButton and is not endorsed or certified by BigBlueButton Inc. BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.*"}},"isFeatured":false,"authors":[{"name":"Arawa","mail":"cloud_bbb@arawa.fr","homepage":"https://arawa.fr/"},{"name":"Klaus Herberth","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9285714285714286,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/jCCAuYCAhKBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQxMDE3MDkxMjMxWhcNMzUwMTIzMDkxMjMxWjAOMQwwCgYD\nVQQDDANiYmIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCmQPagvR36\n2vKbAVhprpV5V+O63CCoFMfpzjAhcLLGq+kRdS23NuCQs18RnT5LyEFaNl3GiosP\nKKTzVeHyk4aJVYdX5IdmaLWJTuTkDInwhglQNrZesS1Rv6tRVQUMJ78KK2i4dGqn\ne1Pnp8NwgWXKBWsm3AV9bZKON+e7pBIOcSbkJVjS5IrVTIPuNjjS8a5X5ofOTGNC\nztcz+457ecarLIZTeuB9wA3gz3R1JsP50Drm5PgZiI9df+gYwMf9ZyIXGwRWB/YZ\nAEmZUPyQQYtdMR1eYdVBnvYqAo5mGzcdo+FZqbhBu8cmAL6AKNAHXKT1CCmpYoyA\nrFsxS/uhisAOeI1mcdbME4y4pDfMd/I2goeuNpiPaogU2r45JkuWpFgOeseCnEJ4\nkAv4P1Tq8fvJzix28erA1L18/uyc5B1ch0C7ioiR02737ydpZVXQnasCMBUlnSfe\nt9atl5pVWq9FuwiMjDziJ9on9jfuYEhiEcEGKLEgvE5b6hIRbU2BEenF0In0gCKC\n8pIbZm2sReIE9ZxTQL9eyxFdOSatCHJ+7KkFYVngl8IPz9Xi5Mk8oyxK2kozOmH8\nImauvQLY4fr3hBPAk3jqKVhOuEdqDlBeWXflnPPrXFHgg1ns8PB4LMrWEWVjLD06\nAhjhLkyW/Z1iQR7aTEdqLBLf3TxiYYkfKQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB\nAQApreQgc/jyoguIalBO67FGZ/tpxETn/n4Jit60KTn8PSwV9bWTW5kPZ2YX3K98\ngzAUk+MOk2bcbmnLG8aqYIgjbs2NeKra6CN40Yrgbd3eKuEoR7GaAzFQFJE0Iq1q\na4o+hQNnMVOXRu8GAuqVZEyk0u7aQ7WfzUeDD+Gif20btywV8N/DQEUElDMURsDC\nHYYWowfTcHEqZ9Klrtb/+CJEQhiCBw3bo8WtamxTIKAGkRRgrJ7mHK2ZGfIo3ZZ+\n2TkzkhYdSJF2HJsvO8K3PCyP+wcMxndHqSEjRKLJ4YumqR4ZUX2NgNax4a1Xis7o\nPrnNICscXLA6Frw9A+JYSZqK\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_overleaf","categories":["integration","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_overleaf","website":"","created":"2025-06-11T12:14:30.672208Z","lastModified":"2026-07-22T17:28:44.831199Z","releases":[{"version":"2.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_overleaf/releases/download/v2.0.2/integration_overleaf-v2.0.2.tar.gz","created":"2026-07-22T17:28:44.769105Z","licenses":["agpl"],"lastModified":"2026-07-22T17:28:44.905542Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"bp3v9mEicA7mSkZqiySlg86d62BfuLrYAXh17/jRVTp3Cmh24WzyKrJg+C3P+aQ0yRzEE9CZGkzMTdJP/FiNT20fqNW+cn5VUQunByKcIGR5b6r5J8kQuJKdbyyNaEx/RNba2R6G9fpkPp6RzK/4DDN4qhfhqdSZCbEqGWZ4/D3SMTs/P2OAB+OD7BRCqqyoCX56DPlr7rn94rzF9M3XyHx9TyrK0almc55PYPmAdL1gy7k9X5i2aF8S28bnQ3tQBQlzmB/rcT4yD3Zcn+/sWyh5VPqOwFis5l9m4EXnrP/mV+uy6jAf7zd69O6SqMbYhBV1M5fDnZohC44NnaFKaZ7ehrBMDLHh93a+5Ck61YkXxMxBko24pySpUJ8iw576V+z+0NnKibKtN5x+6QgYvFUHtSmFxh6Fxr6rFKuoSir6tmqxcATObBg5+ovGur5XOHPoiv7owfsWFL6+lqzbOnUQjPhHcVLckDjdEQF9zRE0Exkefaw6WVYNW0+lDTOKavlTl8F7BW0ryyG8cwwCsYvgbpTLcyLs1K0apcCMVWrvVUG7s65eoR2IgYGKbRwcEIcmUC/nYIFVIilowJ22ulprc3cQycNNHoLDFTrlBwolZdkNMIpI7Z74ST3JhWVEdgfqSfBwm79rSCPzlDoqHz7BQSax1VwJ2/sVqKj0UQk=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 35 @lukasdotcom [#69](https://github.com/nextcloud/integration_overleaf/pull/69)\n\n### Changed\n\n- Update dependencies and workflows @lukasdotcom [#69](https://github.com/nextcloud/integration_overleaf/pull/69)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vdmVybGVhZi9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdC5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vdmVybGVhZi9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Overleaf","summary":"Integration of Overleaf","description":"App to edit LaTeX files using Overleaf."}},"isFeatured":false,"authors":[{"name":"Lukas Schaefer","mail":"lukas@lschaefer.xyz","homepage":"https://github.com/lukasdotcom"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhKrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwNjExMTIwODE3WhcNMzUwOTE3MTIwODE3WjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl9vdmVybGVhZjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBAKwxoXvgG8mK4he64TsKF8PDqF74ZKIqfhHYoFcfg2CcmocuRbUt\r\ntiAHaIllDLgohhMrQTz+hkVypDBAn57yPK6N5oeZVfGJzl21bVsbtoqDN3rd+mG/\r\n59w622bi/LYiM759WkLc5h731QDbA2/G3z3w0SQ9IyOnW83SCltbWWTtLdnBp7Kx\r\nVpWDpKHOumUK1+7wFcBMoGcJoSwlVQk5SFb6PT8xlYXy4OzTYaIDryj4oO2iQX6s\r\n3ICPkt89a1ASfcdUd5vvw307YnH0qd4g518wj8lygGvdR9EWGhXV7KOMB3jEduI6\r\nTT3mdgal72wZqx2Lb0ajz17d99MsUvyE7qcB8PkTHurV2mMSjlIXvADLgKJ/DDo7\r\n+/Qd7bU7I4lKfaSI/0Jrtn/MAbkAAvGJdECyrZmDFfc4Xf60L8vTXLhLyTWCxX1i\r\nWdiCV/t3MShDkVkV7PJeEd+KtXnTsW8MU1FKqOjl4fsy2dsG3QmEcsJbbVDSYM1x\r\nWIZ6ZomDQYgDZYn/NTo61CiQOTYIuQDbdJ2cXK5h0Uul3EGY5QfdfxmJKEGUio/n\r\nUiNW/oHzidoqv2R9gqW1xH8i8lqqgrzen4Kbe1rwFfSuN0/mEvN2HWpFadPJriPi\r\nj1GeaQ1I6YHRjcQN9/8n0lxA7Jkh9QUmjiz6GBcrtO8csKTK5IABO17hAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBAAbohhX3fdARG/Bdsh37FDCCBIeBTXAePNMUnTDa\r\nmBg/148t/HCOqMuVn9TIm8mJb9uCuHLZ3RQae3+cI8fMmiCCqj8zVfDbKD1fPVzh\r\n2Z3yclAQxN8aNlqsGB31bhmqOC7mXWsiCrCMfvO78YBRNq2SIw+fVQNPslg4c3Ix\r\n3nPZg2pIyAg+dAdm+IaGVeqG5zGhCoMXYSOJ1UxRwsdvg3kTIwNUo4RjZxJK1GMw\r\n2jwXHoJVRRAQZCAULR2+vsOI8e8Z9n06TqlDU/SWyHgCugq2vHWvjhpbR8jMrKVU\r\nfpPhSsiqGgjRqV+32DxcXLvz3ml7/Hp8lMZFSy6w2MOjbHg=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ocmremotewebapp","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SUNET/ocmremotewebapp/issues","website":"","created":"2026-10-12T14:36:55.595650Z","lastModified":"2026-10-12T14:42:36.298117Z","releases":[{"version":"1.0.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/ocmremotewebapp/releases/download/v1.0.10/ocmremotewebapp-1.0.10.tar.gz","created":"2026-10-12T14:42:36.293870Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T14:42:36.330203Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"oyGgARFQdhV+tffJpYiJCS+zKoDl8gcKrMtKm0Hv5JLLl49uOPfm5JDso2ZX37x3\n63ixS/aRBf5y9uVpRoCIy3XZunzhcHJdBjDBwxhhJo0CV1N9DLtu2asQMiL+L2np\nB/jxsqeCxc5naaePhf6JXGpXMSFn+NX8CoPXYquFVfYX50c9Y5kjv2+z4wxonjLx\nodMqAp80ZvyGyJIrsuHR3Cm2/RAS2X7E/tpL40ekAjkiiuOgRSYowQg1ardPm1Yn\nw5nHxbRVE6ZustT+qGm1QZLEgdAYjMjrwd2TdJkAOpWDS8Q7d9+Rxx02X6cKGpw7\nfGIJI6UqxPKuqosvc4TEK637wTKrBKoxlm6AOJ6wL/6jb5FU+4zqVCsUaafnoegn\nIyBHcejbV9mjSZ2HZCQU9sC4PcSIUayQPrlExS/pkcYR5MaU+NwW8VgfyWg/tLDJ\nFNT8Kw0D5NGw+Suezc4r3fsO/kK4+chVBWub4o2MjFTHWP5XzzuYVvX4udSOXMgL\nVdJcWsRXhgU4Ublir7R9bwZtwKtJL/fHMlO1fWyg8Ci0/PqOJ5zd58OcIp39LVFx\nTqJVFk+E68V7IymYG84ODDaQAzzZTpa2srFBsrFAqpOVg5qz313OWjuT1s9t9VLt\nddfGTjLhIw1koiEq+gRM0Z4Kzh85uSffuhjeEGQUr+8=","translations":{"en":{"changelog":"### Fixed\n\n- Pass folder shares without a webapp protocol unchanged to the existing federation provider, regardless of resource types in the remaining multi-protocol entries.\n- Preserve ordinary folder-share validation, group sharing, and signed notification handling while retaining webapp validation and authenticated unshare handling.\n- Parse multi-digit version components correctly when naming release archives.\n- Package only runtime files and public release documentation, excluding development dependencies, tooling, frontend sources, caches, and stale source signatures."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"OCM Remote WebApp","summary":"App that will retrieve and present OCM webapp shares","description":"App that will retrieve and present OCM webapp shares"}},"isFeatured":false,"authors":[{"name":"Micke Nordin","mail":"kano@sunet.se","homepage":"https://github.com/SUNET/ocmremotewebapp"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhNeMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjA0MTM0NzQ4WhcNMzYwOTA5MTM0NzQ4WjAaMRgwFgYD\nVQQDDA9vY21yZW1vdGV3ZWJhcHAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC2HNzQxJpR61S7EbrmEnaWuzPZTt3AvTEigaXK3U/uKdDT3Ji1q6H1JRD7\nICCn89rxiOl1NRelBe/AwUqNJNHLtfcDzugB1tUsARuJXnTE1qUKidt/hQTL73Yu\nYmcJLSswbpYogQMlvmbzxbOh4iaosGJn5SLAbpWx6lXK7huS2xB6DqklYemZlWe4\nP1uK8kTDKUsC04BfPGauUc3qce/6gy5MrmLkSLlwCT59eY4kMlht/o57hS/LE4YO\nu0mWh5nS4ujqbjtgilhRhm3m5d0ZXHIOoPGiPjRFckyrGSrAS24KFqlojnahfXbQ\ntm0GNVwT+B9o94TgIW3sEa0DOF+tBLHkcoAD1b7k2JyDRNWIkJwSOLQ4VXFLFHf1\nvczPOgGKTq9to8J0rPIzCR4aMIa7bK71plrnNrwuOdJg/PIMpSYda+sUkKG5/xx3\n5bWNZ87IWJHhTwLGnsIwY6Msi3YMXobCxRAJXOfIeptrNbGEITqIbvyux6D4yAR4\nBRj9ZoeCP/g4xJFsjluR4X34Y6e1pYvCDmjYhrHoMPP/oKsud4yFmKKHNhGKonqS\n/PMFLlbaqsDkP7KtlPgQYJ1nudJFIRdFjlJNgIhu9e7fGv98/NdCYgUEbmRu/19p\nSAfcranjHjQw/QRyTjf7sw4Faf0d9EZiH3cy6C+hFBlmGG0XywIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQCMdzQUyxfHu70SfS6f8YmG1T1WEJBsxUVWriA0xNx7hcmx\n3XsYZkv54nzq+nTQbHtx/pAhYLqU+RqFpYoORniBFSyT53geRaqpZjnoMrkytE9I\nj+uAEdXcopz44KtQ5tbclmWrRL8itDVxau8zvyNFQJNB5439vBN0jv/HCGe2Ykze\nHHyQrZ8HSpbWkh6wY+AG5+H08c8MobTEJFOhupTdJYfRQxhfIHpKIigy/BVOW9Cu\nf6t/I9ZBVurMHgENMLu7o7rMBf+ysfP9Y+bGM1ryXeUh8I4LkyBC7902qQU/o/o9\nm5+DomZcr90NOMhnOKaVaFZPNEpGL7UvkMbxxcbK\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_peertube","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_peertube","issueTracker":"https://github.com/nextcloud/integration_peertube/issues","website":"https://github.com/nextcloud/integration_peertube","created":"2023-03-06T17:41:36.947526Z","lastModified":"2026-08-17T23:29:47.186632Z","releases":[{"version":"2.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_peertube/releases/download/v2.1.2/integration_peertube-v2.1.2.tar.gz","created":"2026-08-17T23:29:47.162807Z","licenses":["agpl"],"lastModified":"2026-08-17T23:29:47.229572Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"NJpvQ0eBKLwZ5w6I2REAkEWE9PuAgpMqC4G1OEfPI0BXCl1aRCZu5IyZi23SWRToi5ewGf1Eb/oDZW6dtGdiVC+Iwy/rvtBdWSm9ZsRWmhyqWuYR1XDavuNPRe1rPahiV+Ws8iZn4pbGIv68gVs4S+XDIXPqiLhfQUgNvXlI8vtri/wcC8G0c//7ngtLQpfonbejqE8yA9uorHi5Tddj4EiGZiZAikIpywLPKs+8TBOOYUvBh4h0GTDS8RltZAF7No6KkIw9G2cfEXyMHHIcRAJ/TVv7VAkqbsGdVRzfZ+NnTEgtf+B1V3e3aBzu45B5kiwrtCwXw+gDOUag3Y1vd1dz9kJcCe+mgebi81SlZNwgdoWoDsl8Q0HbgK/yE+7HsmSjMFs6e6dDjuMbF5srpjz+l6bJMsEdzMiOIKONhsr5fjnTBLOhnvY0oqmJLnP+lcOxWt5FLQ1lLHCfCJlU4ZW0h1r/E/l1ssWcLvrGwhh4eA+x/zalX0BiYgTlO1o1YTljUxTztR5YRiguql2Oh9i3NqaZXdoXkr+S6IV/o4JrIREYqgr4An4b2caVE3gc/OfEQdquB91fNjrRsl782roEXNUvh8ixBkzCG4jjciW3Z2pnYIV8DvMXYOY5cGZMfvOdrcPLfuEgxwqjmffBmAWCOMhCBSRkDPwS0B9WsKM=","translations":{"en":{"changelog":"### Changed\n- add NC 35 support ([#42](https://github.com/nextcloud/integration_peertube/pull/42)) @kyteinsky\n- remove non-existent branches from the matrix ([#44](https://github.com/nextcloud/integration_peertube/pull/44)) @kyteinsky\n- import from @nextcloud/vue/functions/registerReference ([#41](https://github.com/nextcloud/integration_peertube/pull/41)) @max-nextcloud\n- consider package-lock.json and composer.lock as binary in git ([#47](https://github.com/nextcloud/integration_peertube/pull/47)) @kyteinsky\n- composer and npm updates ([#46](https://github.com/nextcloud/integration_peertube/pull/46)) @kyteinsky\n\n### Fixed\n- [main] Fix npm audit ([#40](https://github.com/nextcloud/integration_peertube/pull/40)) @nextcloud-command"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZWVydHViZS9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZWVydHViZS9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZWVydHViZS9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wZWVydHViZS9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDQuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"PeerTube integration","summary":"Integration of PeerTube decentralized and federated video platform","description":"PeerTube integration provides a smart picker provider to search for videos\nand a link preview widget for video links."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhIJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMzA2MTcyNzM3WhcNMzMwNjExMTcyNzM3WjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl9wZWVydHViZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBALdZMSbSAGsoYytRMNQUp2164pKcCHl1jjfkhxcziSc2N/kc+gYm\r\nsPCBUposegzjeGmcAm1jAQjhAQnphEuu1/LXRFdE4GJK+aM0fnRcRd5q/DcZKo6A\r\nRGWyNGJ4SKhY8GhXQpbMMzonRPtCEHF2jYv/kvETQESFPQRWBclzozt3iEFtV5ah\r\nFfn6XVpKGANvKh2HGaaPURZvLKXr+6Ww4RViXX/C0LMvXj7zA8VhQE63BmZ6xz7b\r\nVmfPh/wp9+mYpW/TFcOGIHxuq51/zZXrB0uVZexD8QDEZ/jkFUlr5e//thFCjROC\r\nJKt2zGbwgcTohvS7cwn8zxK093jfZQIrj+NYDsCPLyQkr00c0kWXsxC3juE54DnV\r\nvIUSMRNXZklN/TdjApb6yZYyNbpJo2n52izvu0g7MU+NyxMt3dqG4EafHD0gHyFt\r\n3k2YTW0FV90V4imPJ0D30zLd7ZuWG4XjcJY7PIx4kaJo6i31mxhcF3s+98K/HQea\r\nC/6e4lB5+F1XLoxYCWMvZfE3u1o4/jNvRUA1VAc+KNYOYgSGHQ4RqDZNnNqUo8Am\r\nleRc8n2ORCR8WY72Kbh9k8nyHdebM+NLZyF/gFfimNCaDg4k3bnmQib5xFsk4ZQg\r\nKELBD9NGeMDGwERMrHx98aR5tg8+8/wJxB1ZHB9xcCVeyRu8+M/Zr7ljAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBAFYOjr0FiXsHljtlKg4KM3QCzvc+wZNbwe4TzSgF\r\naOqoykTYgLL1zZZXBPupkzJt+U4eU9oyK9krEV9zfoBIvlizj+Xci828cl3bKvWt\r\nOpTq7U4gW5tB0Hn2MImdCgnEJa1Mtjro8N1QaMrPoNFPc+/t7BloeFGFy/UwKCwO\r\nN6zCCLypnEw+AunAPtOzqLx/VUBPm1Y0xUHMws7i/KVQ6k3e4k8p2oZZ/UkMQPjd\r\notRxW4IVZCJM9pvEKV97N9+FYyzcl/l2kk4uAIeklyckoUT16zLXcg2+cA9X+oyQ\r\nu7p+4OSAudUp0/V5hM7pw3JIUwz6PJCgjYD78bVXmiqUqsU=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_alephalpha","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_alephalpha","issueTracker":"https://github.com/nextcloud/integration_alephalpha/issues","website":"https://github.com/nextcloud/integration_alephalpha","created":"2023-11-02T13:46:28.082675Z","lastModified":"2026-08-24T12:40:38.726275Z","releases":[{"version":"1.0.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_alephalpha/releases/download/v1.0.10/integration_alephalpha-v1.0.10.tar.gz","created":"2026-08-24T12:40:38.712675Z","licenses":["agpl"],"lastModified":"2026-08-24T12:40:38.778292Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"FW9JbZaT29B23FFne+bN5Gw8S0LcgzpG0qLWEBPwrNobg5DD+yAJbcgHOIygcxsHxc2sIiBtcaia8R/UbwEp520ElE6CeuLaCg5I/C06jq3eSvk4I6tgSo8n7dMxLSqO/rnFcDXoYxI/LzeoD0UxVBU41Es0KWukpI1VVsvkfUaTCjhtF4haHT+0jkgKECMGI/jB3S95tRV6ECALSnxAqAtwgiokySBa/sNe726Otd8b3dEYWdhq5IV5Lef/HtmTwblpaZ3N/XBMjAoAz2bUrQb8PNJCHYM3vPUYl8r8CTKL83mdQILw2X0zFQdqm8xoBuaFZ+6CT7NhCZi+06ZR+Dw4dsW88tOV0/GKlrDC/S5RhSzMZGE4Luhp+HYyKLcO171rvcZ9nHZ1WUeNJfiCx3sHMIYnSDTeT7NQRVJhAo9HGTe7IU2xd6EqTNQgJ0Gnjd5EYGycP77gNJBpyYRi4O5n62bUPY/4YAiyYZ1d3YHyqC9+jLOZOCXzDM/k4LL5j/k9oUrjlgyQ5xxbB3QCVQ5jogp0bJfVROdIP6xrAOSHplpQowJs7MeFteIA5gICvhVhAvP4dLPEMK2S33RTy2RFOb3VVF6E9dVKHvgQb13dLld4coDHIjCl+7PRRdA1tdgcgoyDOlyr14LzcpJEgvGLcl/hEQBhte4sqT6LPo8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Aleph Alpha integration","summary":"Integration of Aleph Alpha services","description":"This app implements a free prompt provider which can be used together with the [Gpt Free Prompt app](https://apps.nextcloud.com/apps/gptfreeprompt).\n\n## Ethical AI Rating\n### Rating for Text generation using Aleph Alpha API: 🔴\n\nNegative:\n* the software for training and inference of this model is proprietary, limiting running it locally or training by yourself\n* the trained model is not freely available, so the model can not be run on-premises\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model's performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"Kate Döen","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhI9MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMxMDI1MTU1OTIwWhcNMzQwMTMwMTU1OTIwWjAhMR8wHQYD\r\nVQQDDBZpbnRlZ3JhdGlvbl9hbGVwaGFscGhhMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEA0m97B4C/roTJg2hAUG0WvVSLbpEE2uaip1+gQbIeiMT/L8yN\r\nuu73m9NECKkizcyoFYXrh9oNNE0rVUysRx+cT+juL/kPU8GbfIneO4A+R6Y8XzGT\r\nv468T03kT9F8yhNQN5KLgLakzeVQzaLrzC2/vCGEZtZHVKBJVnHS8RwbPFvdMRKx\r\nEcd8UEG0q6cqeKJ85NsuqUczPbqOVNaUH/qsu7sB+hFAkddCBm+6Ho218EDFaJnj\r\nC721xqvLQYq6jWbbpuYKQoGmgTwYC6psBcFl9UhhMd+lTyQQblWoYKfe3b3InRGi\r\nTK8vqOSUWn7cHo0Y/WWFVU37eqNkPLA6UXmimWh64NMwLEaOoQUNkcEp9CXxtjOW\r\nt/1lt0OBu+FRnFZGRrC+3kxDBr2prAqJa+8QN+03Y7VC/oTAj5RFK7CWF2qfCK6w\r\nBLClLzhiuA/frQz02DDGK+kN4Ig+YLRndo3aJXdIiesVQukqmX3YwXUIeHspi5cF\r\n5LosKfmyNvqO/mE0rX3AxBtPEjaiRNPnRfoDmKk6yuh0hzAKAO6Jp++LdKSlbfcx\r\nIbJez8so9JUDLk0Lv5PqR6iBxX/xqSX537KWgTShSOfuNRNQOqg64lTRDPga+ROF\r\n2vWks5LoS93f90gCOv2s5o6nMRSBa5IwILSH7l3sQaSsjsrCkj00qFZ+DM0CAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAlFE0gTbDIOTuIdG/MZCmFCQZeEr2hlT0xMk6\r\nUBvL/LZKYMYLEyLKdVsNS/fEr+vi3t/knNFtRV3QlPCva8dnM+NKYKJoSqYCHyDT\r\n9B/afEjcFe/ABUeRwRiauV/HyGaL6VT76I49vZfCCurBhhLKrisfMYj5Uk3LTGhi\r\nD0C/wDWY0ethCDzwMkYeSQH+JF4FUut+w48oWVBwnyP7/9ZMe20tQgOQRJR7Uk0I\r\n3i6D8sMEj35rFwsh8fpqDLeZm/bPHRCE7MIr8AIf76ytwLIQJvuaAR1P223GrLIJ\r\n1xip63v50DpSerc+2ujODc2K1SRTZyxGvcBxi7K4Hp7uKAYrNQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_linkeditor","categories":["files"],"userDocs":"https://github.com/te-online/files_linkeditor/blob/main/README.md","adminDocs":"https://github.com/te-online/files_linkeditor/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/te-online/files_linkeditor/issues","website":"https://github.com/te-online/files_linkeditor","created":"2018-01-23T10:04:40.037726Z","lastModified":"2026-09-14T18:24:41.479341Z","releases":[{"version":"1.1.27","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.27/files_linkeditor.tar.gz","created":"2026-09-14T18:24:41.445776Z","licenses":["agpl"],"lastModified":"2026-09-14T18:24:41.540642Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"YTR0DVjLu1C7RFaG6l+/pd9NMcY9O1JuGbzhyGGWm6DQFmPAGYSzQVqQBgRajLSx m3XI3XV/4hh/tBPgLntS1L3oDDqSvRj1FgWWfKNhr7Mibcz4/yjlmpC2L8C5tCA8 7oeNUjsurHaM3HQS6sKTOm62BGbMtIkq+FgcPBkqoYFFjiF+RqXHm9LfCthDXVzo 8sEUgpJckHBSN3wG3Fdbe5Z0qqG6KI/Ds2Szl5hMWjXs7RqaVVoVxCBxF9YFt0H3 1YBVW6d8h60LtCouH0UHhlBnXsm7DYsVuGRLpFOGBU/jQVQU8p35WmtLZowsm56j kYIiRQqtAYm/jMfPQ4+ZQjIpdCouW+ACjhFH08B7eolLUisDto6Q6FH143aU6FNF iwKd3hdbzbz8HZd415jrqvsViSUfzigrN2CaLrw9LlNu1TNv/yrgtHBTKqv1F9Pg 1TAjpC69QEc9rFL4XUHHH+IiMWApwQdzye9EGC6nGmlfodFnJCUmK0SO859rjmxT 4E/tqOD2g070+pnx5YoKM3pnc+oO0WucL4C86fHRVEtelajDsLYjT0pUm7jgLqt3 nSBCuREAVCl9oxVwqQ6TMPNChWAmi2Slu9i9PCNGhgNRMgvRkBEE4lDcMYI3S6Oj 49HH04o4FqTnNedE8U57yYFAM9yhblgggXgZiC84f2A=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35 RC4\n- New Playwright test for Nextcloud 35, run manually\n\n### Changed\n\n- Updated translations from Transifex\n\n### Fixed\n\n- Updated JS dependencies via `npm audit`"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS9maWxlc19saW5rZWRpdG9yL21haW4vaW1nL2xpbmtfZWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RlLW9ubGluZS9maWxlc19saW5rZWRpdG9yL21haW4vaW1nL2xpbmtfZWRpdG9yX2VkaXQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Link editor","summary":"An app to read and edit .URL and .webloc files.","description":"### External web links in Nextcloud!\n* ✍️ **create and edit** .URL and .webloc links in the file view\n* 🌍 **open links** by clicking them and confirming you want to go to the external site\n* 📤 **works in public shares** so you can share links easily with others\n* 🔄 **sync your links** as .URL and .webloc are web links as created on most operating systems.\n\n_[View changelog](https://github.com/te-online/files_linkeditor/blob/main/CHANGELOG.md)_"}},"isFeatured":false,"authors":[{"name":"Thomas Ebert","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhCJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwMTIyMTY1MDU3WhcNMjgwNDI5MTY1MDU3WjAbMRkwFwYD\nVQQDFBBmaWxlc19saW5rZWRpdG9yMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAtfJZLu72/szAg1nsVlOjy4fQC+iMPFvu6JDy3N2zAfXO0WGd5oY+hrw6\nXkNojjq0NXLVgi/Ooad9WJNm4vR6nk38upPJOPgxG3p2s4FdIVIpkie9rCPFMpf/\nrAC94nZc3/e4ImehwKWZebfSVQShwme+ozxBfuTTFPj52FqcIrW+Cv74rnda8OII\n9HDv1VSoMeRNDylGpfaWouRJFwm0GZLHf6PAB0jLqbWExeBZlkkdAAKKNDHXl367\n0z5dGJis0fjKqaaLArE5Iq4dsH7RmmUfbcGFcCfaXQPyHD2d0p28yh+bX7iMk3Vr\nyIQWu2mTLvG+gl/EiNzcObRErvriH4ejIELK7WaZP6TiXdmdDv5nRiL5diCnr6Uu\n0YAzD1+5kFbyJPmXrhGHBvaA5qMM1AJ3nNmlA0Bvy7pVi/hfCqbDCLrYLqkHesqG\nypElT0nSB/LjLIsmaHF+M1RsdahLZz6O0JW+Gbfhp+DrMTB4oJbV0nh9nESETby4\n5N0RSjmgcVgxaBkMyEhN3DRJnuKP3sQAmF2q85D/x3aB2Ox7zdLdbK4Jp92JDSqD\nKCgFvvZoDPF+rgJBrrneAZrdEBHF/w85GJmgw+cx/s3VLYRi6VJNJRM3DsPY1UWW\nl633NSg866m2srqJgw+MKK96P8SEKgFuT7GBU7vIcXtHlL+BjakCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAXnMut9udRUt5PzwhLG0IGiR8zAr5vKL9Ef47T9TlaO7z\nMGLgDZ/m4r3E0QZJ8v3yRI8I8/sSJpXEs/06J5rPx8Tm6Nb9zp2iLzYYJFjbBP0t\nanhMlGZW7eJTrMuZoTxMFGa1mSQkgM1cjNkzhj/rno+c56mHDEtfr667wjNn6Dbr\nwOHPyNhq4seRwrRk1K+BCgZW3fsv3cknTtOossAKWv7ZzhOw3nHefMvOBesMxv9h\ngCd5EqESP8zJf6IJ9MFZfwsA1HU4GasSFKkp2oe/8ANhOB1ynGoEw36BzBzSalyb\nK6yC9IP31+IU4KstvMHwyyTenX5i8drdjxMnq2zreA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_tmdb","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/julien-nc/integration_tmdb","issueTracker":"https://github.com/julien-nc/integration_tmdb/issues","website":"https://github.com/julien-nc/integration_tmdb","created":"2023-02-07T00:00:00.958946Z","lastModified":"2026-07-15T16:21:19.028607Z","releases":[{"version":"3.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_tmdb/releases/download/v3.2.0/integration_tmdb-v3.2.0.tar.gz","created":"2026-07-15T16:21:19.008787Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-15T16:21:19.064142Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"PZho85MkJLWhC40/hn/nwzTF9wIh/xE5ui6JXyNyiU+G2AUh1DuaB98uucFgP3QWZhPeRd7XX0i67bv+zsXPl/yuA93kOrDxzYk1k+lK4YRW1ggXO5TNu6tcyZZSYVAsDAXp03mkcU2YklS3iAPL4AWSCGu7ejQgLXyvJPfNVeObrXWgBWYhtn2oGmW6pXOFwxWJ8zCJdhV2IcxcQthYkyqX609qG8dN0WZYPy8fUGsEU2PROZZaCdblFf6/rmRJQKIsfsBZ0iTD6OMzWrkn5PqQe58xkq1+dHYfY3IkDgsX7TdxPgHSKROX/A3SSs1BFQUYIXmt2aNFS0MnM4JMR5tOj45LCmpum6ka8bD620dklHQ31olTT4UDGgYoCdTE9QXuG/lLmwBl14Hfrc0GVZ/MMqZW12F/GwokiYVCG/qRdOCcQ0/4OtLQ5GcF+q8tonpWS5VNjdT3UX4hBJEmNzxA53rYpY81cMFcc9JUX+1ctkpz0TvZAaMFq2tsCoBcKJGgybOPUZG4PE06T0R/O/nOMnnsWZ019ojcLx6qnjR203RAxCp4tZuFdH5Km/H/HgqfE18QStByoSU6/n60+PCqChJH2Mm50Wpc21V174Kl360HAsAjhSo0lyRNISrUnS4XSBF7Kj63/+AiK+1BNWxbZkN+BUtCzqUHac9073Q=","translations":{"en":{"changelog":"### Changed\n\n- Bump max NC version to 35\n- Update npm packages\n- Update composer packages"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90bWRiL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90bWRiL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9pbnRlZ3JhdGlvbl90bWRiL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"The Movie Database integration","summary":"Integration of The Movie Database","description":"TMDB integration provides a smart picker provider to search for movies, series or actors and link previews for them."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhIAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwMjA2MTM1NDQ4WhcNMzMwNTE0MTM1NDQ4WjAbMRkwFwYD\r\nVQQDDBBpbnRlZ3JhdGlvbl90bWRiMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEAsBL0NkJm/Os9ugFco4w+Wf3zRXaD3aGcfVP5t064rqHafJa9pZH9vZYc\r\nDwtKxI5ZYdegS9ahNCVbyDtbHlvcFx+fI+kpsD95QSVbKb1nKU7rcgyBLMIESX1N\r\n/dhDzcVoIJWgFzxAVUF+E/etoIeX+HSDEVJCIKl1ouLrxQQgCYKy8PCpHUdmpFkN\r\nEVTB1lOLUBEE0i3H+TcV7bS4fhfTu2LnWhBsGhpmtu0NylIeFl6uapjl/8tWDh/K\r\nkpeCWTicGYxuSz56Y2vOGJY/mKVP5o6SMOYGogRwx1qvcenra0RLTPg+4qQABCve\r\naEJwxO80sMURHCo3BvcCWGmCaHPUED7dtXBgahBnHnovxyTTiqvKZDUOtShpZPML\r\nIY0ieoP3oS3L9gGh11D7hv03i44jThU68oODRDs3IKBwXorIJx2vN3Exo8/COKwK\r\n8tfXW+Ie8edftgEBdIILjItrYnizdtwafMez/ynFYRMQNvf/oBV2omaqyPgUkH73\r\np4F37I5JlB6NwXvCX2Pr9KzoljNBmTGscZuhQ9uT3RNiiiNToeId8hAjgDi9by/N\r\n47MoQyYuZNIcE3FCpaRLQBwO+I9LYYyoz5VZ0UMzQH9ugiOPKII/Uf4L2GstwQbg\r\nCJzvVVL6vnIQ98A89ic9lEZHfp0PQLMXJZaaqf6rwvb2UvdvQ1MCAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEATNH5aj/zM0HNG0dBCCowJ1XOXQMvqToFRHigLo9jpuHQ\r\ngQI/z1kJ6n4LeLEQDSQhqooUGJRXuO9xeRV6oFdjwB2vjp9D39F0jaOPDv2HA5cT\r\nlcOBVwBL16XH+wh8n5XizFYeEwN0xyfebtTaRZw09zwrVNhxJ+9INM4lpRQ4ebBF\r\niajhpCRiTCYnK7p1DYlXQDw4enrArtQcNThNFCDL2yqBvnjUPjC44rAAsIZBI3xD\r\nOiZzEipI3eduR4hDM9YIQs8LnDT9DWy4znwdST1x1EXE5JVFUUUKjR5poPRyfynH\r\n6/yA5Nd8dzlKRcZ8CoyayB4dVaFC3jPTsF78TASxcQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_facebook","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2017-04-26T13:36:57.312797Z","lastModified":"2026-08-06T14:43:53.616567Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_facebook-v5.0.3.tar.gz","created":"2026-08-06T14:43:53.589606Z","licenses":["agpl"],"lastModified":"2026-08-06T14:43:53.659577Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"XXdJg2sseEPNRFohSpN1nRIJmxIYj9xFc/4w5ZglIJmDYVyJib5yw/WA/bcFtKdcFA+DwSHdbfAYCEsU8BEPjV1dhCk5xScjzmRA9JGXTJ4hokalBLT+Cfk9yzGJ1E7eOQKenoRGexOeZqwxIfmAEKMQnxveIf3JeAnTnvOMlqF0u9++BVRTL0dyuaubIvzS/+rPTEGovJiNoF2sG4953nnRzC2M3GBWxK+baUM7RwNFgq64IvCA3IpEuDBPCHODqC4U+eXTN1tBbyserfu1WEisNMZ0thAsIRk7Gn9lOmtgqzA5DFFbo59lXOOPxT+F6qFaqDkqWzXlvO8aDayrJSSMYurZiNUeKGxskircnFQBqqFenMDXHDWjJQG4LvuLAREFAiL3S6Rv/eqdwY5POAx5ueI/WiabN1Ho3XJhcx0unQG0rRhsvx2xKHl9+bk+QgD9v8TQVdXIbyutk7ZtGGqReN+xWiki+Cw/JqQEHbnXfC08Hu9mvEslcnbh7oQhJu5OZzrbF1vUf8S+GSEDVVTiyDqtYYI9Tgg3Rx1tCNtfYxlr3YF8onyAc44cwRxeKc6CJUqlYZmkwXAA02/iVAMr712I4aYsQaavQyjQkOOQbXmZ3n13Aw7lOqdbgQJ5K1qIuZP2jYtFQ+SpRMxg+mWX6X3/DOckM6LNsMNhHw4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX2ZhY2Vib29rL3NjcmVlbnNob3RzL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via Facebook","summary":"Enable direct sharing of files via Facebook, using shared links.","description":"Enable direct sharing of files via Facebook, using shared links."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhBHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTMzNjA3WhcNMjcwODAyMTMzNjA3WjAhMR8wHQYD\r\nVQQDFBZzb2NpYWxzaGFyaW5nX2ZhY2Vib29rMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAx1QaZEC89qicqu2wiUqOGXqqfxhBCX2vTWxP0FI9cVB9HqUv\r\nW7Li7a4vvavfOj/2nfvNgWT5yYRrPQ8JYnco3oEcs/U5gGlWeodgLwR+9YcZf8x4\r\ns89oaul8H+y8z8GVfIyWriV4W51ONJRI6jYdk8DduIGus4aKvQ7QxckG+OvsIeoi\r\nXFKEZyNp3Cfv24dUtwz9RybU6YYuDWXUCmRXxZEPjBGMI/lmG97iI52yxC0HitCv\r\n9sYgTLmFrFQEhQxLW1iu4O7wykqrGgJnVG3AMmL6v3zCr/h4Hwx4SHeX8J6LHm64\r\nIlcvx4OdZ4ANPJuriFh6o6UV7bsGWkNXdg8JzWmO1R1cQ+6lKTcthE+gd3xUu2aQ\r\n5bMU9vSt/2cyLwjkC+pMH1T4IWXhp1iUUQL5s6Ywjic/NBc7+hVOWLBpMJ3OFuvh\r\nYID8dgtFMU5q9LV772r78/NAQbB/u/YrmtDkExx8vnjdAWZKjc7WDZKIHgtrV+SG\r\njmc7V73zyYhTRQ2f73OI94Y5JBHUoaFM+++H3PZ40CEbtdgYeKjU2Emb598Zy8i4\r\ndOntd/yvI4R7CzKTJSa3Mga0qj2xn6Bb9esaaStFnSlvZM7wsOFm0n3NB1IemPEJ\r\nfB/tNVDUtpJwAuyiTfe3ROCXtGAGbt7Vjfr1/u76L5Q8QrPb2mXaD0u45ZcCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAXmgJekfeHKg0o98T9SWpygabDaNJhxgEWNa6\r\nAWqoiPrCeO/+mfamNTn//GUGW1pOGT7+euYJopBye0saL7B7g/eSZxeZGeiec3BE\r\nso3Q23T7e8dfcMe09fbOUY8XRsTU7+QlKk9kx+2uC0Bnv9MGgcDY9VVCZi0dTeK1\r\nTjQlCx09fLBx5sB4zzWI7bHuzqa4oSX+lsdD0oY2AEx1OvN89KKinnBy3ekzIWjR\r\niXIU1CJT3xx2JdOOej/YnELOdd8WrJy5pQRuR/2U3zonRs6IRYOD6WozAYNsE0Tl\r\n/YD56JfgFX/Eh3XhdeoPLulb19tRDqtBdmTq9mfmRoQ6IgRrPg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dokuwiki","categories":["integration","organization","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/rotdrop/nextcloud-app-dokuwiki","website":"","created":"2023-02-08T08:30:19.357958Z","lastModified":"2026-09-29T15:51:44.511144Z","releases":[{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-dokuwiki/releases/download/v1.2.1/dokuwiki-1.2.1.tar.gz","created":"2026-09-29T15:51:44.497854Z","licenses":["agpl"],"lastModified":"2026-09-29T15:51:44.544693Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"QLcFKoGBrvMS2CqfzjyFf7A2HME/g5q2BOCh6M81T6IVmHprny54C0y5bKqz9Ef4\nCrU5Qsb6tFbv1unQ2GXkKaKBh+jio8sUjDAL5wi/5AUPWpzNyqlK/nS5TfbjGx2H\n+ExssQulGFO4eBjJ5JHQFhHR4W6CVNHZR+75J+sdAbzFcfHnejFqOkqyel6VByNR\nDnPOmFqHRdhV203mFVXxLPXWn6Ww/urNtlioY6S47ypGCDJCPvh0ulqeyLup2DUR\n6wiqUS9nd5vP/v2z+ccwcG3qDKe98V1aHktC7cLFJcyi8h8gr+uTiHTrWKCwlW85\nWs1fMDowAzfHCdDkc60kofvmjJONPXSjjlaNDsN4xtObWD7s5trv6ClSAu7/Unzt\nhxtnQPdQBSAQVkohRC5X01UgM6bT4d0auBTVT0zptn5G2r91e3Op/RP/o4uM6nKq\nSupjtL/cc6PH4QsfkJ0HZXRfsEMouVdLURYKyZ/eWAqQxUG365sOH8KH+wc4dYAb\nFtUWkjffcHlb0GixMUrRfUp5ZIoqMXvpVbYx8fajNn8I+JIPXNuRe3qVvEzf4MqV\nigRcwQcn2btMqbtXssl+kK+wc4yHNfSRsE83C2WzertL8QfU9w4+0Jui2U3A7gWY\nMDMHm+m8aOJGCTscbMjNWWGDpg/yxJnlrmNM1cJTems=","translations":{"en":{"changelog":"### Fixed\n\n- hotfix, remove call to non-existing PHP method"}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.7.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/rotdrop/nextcloud-app-dokuwiki/releases/download/v1.2.0/dokuwiki-1.2.0.tar.gz","created":"2026-09-29T15:37:42.939864Z","licenses":["agpl"],"lastModified":"2026-09-29T15:37:42.994565Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.6","rawPlatformVersionSpec":">=33 <=35","signature":"aX+bYA2GmQg3qjMAUVCdG4Kf3AGee3PcgicOFsz8HJkknLsEFeK5MjoMT5D3LSfQ\nwGO4ZuHwshT6CMODnuSuMSXLh0sKiwhSu4E1GRiVoFLcEes3tTLo8z1q2veg/cKX\nvekJGNESwslUHIe2dTv5YZnSvpTQYXLcLv6x8Xy5WLnIUHpbCGEyy2VmLPn4rgqr\nWWcaz4CFu0sTKceV4pulf5GcW4FV5sE42Qo/NNnpQRc++bS1zG034DCviN5fBYv7\nnh5dwnAN70vHmszdv34uGm9A1zvkJt+0b15CCdaxeLsp4hFJKaoqiYCUrckwqvV0\nyD3byNHOXAsF9paFy1NWz7zdP7IOSxaGPTVUYifk76HHizWyCm+rj9Q5k+TSUVzu\nXxBlxVd5UuEE+FtyBfAMhGjyXavgBijkpLeb9DaM7WHdbhWrmVHr3VCwXbJO6LE2\n0sxGMDsbQEwN6TbCzCqYs4S8yewnHbrAVkC63qeHGSjDyLHFBEDVZa0e+xaFjBxQ\nHtWEIXJeTXDO4Mx7mZ6jmzhSXmNLk4B0M5UeWSBUfz5Xu//kV67SM4ntjo725F+O\n22/8BkZdtZOTTKRXk6OfIB2JQCwD1YyZaTLRzDqcKiKl2/25QDjirSYl1Q7I/PYl\nc0iGD0rqoHZvHENwLLP/0HzZsHYNk8D9ic69DiuZFl4=","translations":{"en":{"changelog":"### Changed\n\n- move to Vue3\n- support Nextcloud v33 and up\n- support PHP 8.5"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1kb2t1d2lraS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvc3RhcnQtcGFnZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1kb2t1d2lraS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3JvdGRyb3AvbmV4dGNsb3VkLWFwcC1kb2t1d2lraS9yYXcvbWFzdGVyL2NvbnRyaWIvc2NyZWVuc2hvdHMvanF1ZXJ5LXBvcHVwLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DokuWiki Integration","summary":"Embed an existing DokuWiki instance into Nextcloud, potentially with SSO.","description":"Embed an existing DokuWiki instance into Nextcloud, potentially with SSO. For SSO DokuWiki users and Nextcloud users have to coincide, e.g. by using a common authentication backend like LDAP, or with an appropriate auth plugin on either side of the integration."}},"isFeatured":false,"authors":[{"name":"Claus-Justus Heine","mail":"himself@claus-justus-heine.de","homepage":"https://www.claus-justus-heine.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhH8MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMjAxMDQxOTI4WhcNMzMwNTA5MDQxOTI4WjATMREwDwYD\nVQQDDAhkb2t1d2lraTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALCC\nYnGUcupiIGhGm/rWtNO3GVJfQefrr4hN6obx2S1kf6b019Q1M6UevZUHhDzJwQG3\n7w8wbmjx3llMrXfqNx3anB5L2xHlt4pxdQkpTyTAibkpriLHFY+wPA6UL4FWxi+/\nAtz5fUZVOgq8W+JhT9OboIsD6dPsTsWYBMDki3G+SsjK3Hp4oPyzBZB0G7rpSgbo\nqebqAxPIC9Qsz+M1rH3ucnb44Hi2tQ5803uRJJzEl6fHvv89eab/QIpOW3RCzS5J\n8fdUUxf2EQ7zcboAj4dEw7BpACahbRYUOMIkTgO8oMeB/XswQlKkMQ16NGmeCLRS\ngpfO96DeVdTMJLdl3N77Gt7SLHmNcDUQQU6tSgOZpTapBgquBN1Yd7zSaXw4hEgb\nuI80D2aNrqZTj66DQ4R8Ko8Byt7Yuf3EbZSJsPWg6NHUpCu+ZQ+qRNskGosJkT8c\nYoSr1cjT+wLgydL/2K5vsZ4scL48+EKgiLjyPivzXI4+m9rpBeCZSotkB7GpEP0n\nzGSTgoy9XipRDjYri5TS3b62nOrwVOycQf5Zlhgmx3C319mv4uofnhcKLNLHiAar\nPDmXIRDefJWgnYQrPwFCCCNH7Z6IdZOl6mzMPKbPn40lrvYed7sanRJn9A66bbmi\nVxP28WBJKwXi0ejgV7MzRlwyYd2KTsU0xWPSUdOZAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEhFn7lSl8gE4HH9NLtqM1fGsYFIr5l+Kopl/YRj9Tuc6177Bi5i/8xs\ng3nLSNpfupmR9sTItkEY94GHJgw3Ju5Y6b3K9OimPgKTKGKq6ioqC/a16W87shYc\nMmRPgndKNc+Rd7osYP+3dbqxSg6+qqnaTduvHkaIcj6nddF7P4fy7YN5TDe5m7sl\nqLGI5TR4jRAkjV5t8F/aV+Fs7bc49VSlKp7VYNHOGmpWR+pdEAgEZcKu2XKz79io\nUj3Um1iqnT0X9JtVvwgL0cgIiwIRhHCluw/C4D0IVG0ge/uGTjOFLDG7r9c1BjXz\nzq84FjIyo1T+Xl1ihZ55o9Xy4Wuf8PY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"appstore_switcher","categories":["integration","organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/zomtec2311/appstore_switcher/issues","website":"https://github.com/zomtec2311/appstore_switcher","created":"2026-07-29T20:08:48.393710Z","lastModified":"2026-08-05T09:21:18.848725Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.5/appstore_switcher-1.0.5.tar.gz","created":"2026-08-05T09:21:18.820248Z","licenses":["agpl"],"lastModified":"2026-08-05T09:21:18.895815Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"asztQjBc0PWkzQU5zoEBC3q8yX2I2NTDNcrHw8eh6yA34Myf8QQW7+2Ld2Sej0cD\nH7WKKNDgWxGc8C8SGNbXZO22YKFP1O6RlTBTbo0egeVLC7KpAHpEVgMiwKv9DM7w\nJJZpcFinFEd20YK+JeYiyld0bm9wLw+KMfyaps5WO/ULgSgaa31/v8KHBR5AcgPx\n2QWEYHfbeexay8c7nmfF4frc6co2V9c72KShk58BgssQ7MVr7R5SKD24+hFtrxDI\nvozhsbWnrMH+3PbaaRBT8fn/gfmvYdsXLPixTopfOvYY4tdhrss21yFR2C9x7WNF\nfA6oLMQXFoqK0znfATp9deueuhLS2MbFWWHrryON9xhOg1lKittPwX50t4hOvi3w\nNZUCm20ZaQ71UFA0hUifpfaaD6SPlmG0op0wEmLh2zsXu8k3+X6YA0E9PuJKJYcb\nTy8TerW4wkm8n/vD96EQ8LjQVgCvtBmWZ+iQ0gFtJQT7+d0mpNgAk2avjzjOUISM\nO5HOZ70EUMasFQ7r6p9b91HDwfSzc4Kf3pVyVmh8wyY5TiCaQfjOjdoaRaMUS6Y8\niP9GcqzP1BLaQRQI9DGZQDIewYj5rQ5JMqS/5jhAxb+0Ev3L2h60FTyzz0Z0U7NE\nNFteXqtXxKxE0sUa33L+VOVSlI5rjAK4p8XRyuznpXU=","translations":{"en":{"changelog":"### Added\n- added spinner and progress bar while processing\n- added hint\n\n### Changed\n- changed the arrangement of div containers\n- changed the location of the process box"}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.4/appstore_switcher-1.0.4.tar.gz","created":"2026-08-04T09:34:17.190023Z","licenses":["agpl"],"lastModified":"2026-08-04T09:34:17.262102Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"BWkGAZoMHSQ5MvmKKG2BUXEaDt6o6g8YqMznYNJQDp0n94MSBIA5sf24w+gnM9So\nSMb+qnPPUKOoZA2u+pyy3DtATCNJzrCNpumoUGTJuYBgXuTFsAaxB+jrwLU1FsTv\n9B4WRYvIQc5kmh7ICA+fpWtsLfVn4NJl0uaqMHCClnLm52Pt1BpQHXVoNJgjehJf\nz4k9HK0KfWb0pM5g2M6Ki9V8pvAiESa4hp/QbPO1imhlo/GZg2A/PY+JQZtrLI9I\no9MoNWtydD/xJBhiShg6m3g/fJs8k5tJ3yf6Szak+ZISfbmfMWvzuIR3Qg8rcgAl\np0IqdNHCR/mM3x/GjKdkoKhzuSfPu9xlpn1m1Tap85mBsb05lb2pKmxaQirTC8y+\n2RdYFiwLXOWTnl05ASHCQ35Drwy/HttImW5FGF0MkWG4eb7qQdh9jOuFEHrgKYWd\nsIUb2igSNfqy928mGejqpKxfk04Zs4esW/XIKrS8rRo49BvTeG8fyEP8ngqGDQ2n\nlB34XvCEOdzWP0ysIG6rN4m28LU/5DMLrVtcvfoJhXm1KgRkY/QAuysXw4/Y49iG\nYhGEme1Hp6UZ4CZ59gEY6hvFZ+9D0UtnAcZ9aZWWvaQ+GTUJFwyG31Vsrn765ojZ\n6ZWtbhuaVy3utlOZuhiGCMmUavt5LBsktNZySPzgvXk=","translations":{"en":{"changelog":"### Fixed\n- added missing button on new installations"}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.3/appstore_switcher-1.0.3.tar.gz","created":"2026-08-03T16:42:20.905295Z","licenses":["agpl"],"lastModified":"2026-08-03T16:42:20.965104Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"qM3kKl9qOem06Ie+FSi+jikQLD1I4QumU1b9jAykQD82ywhWIOQ2tvp8mK9Ydgrn\nqLQRDb7Ror9PszVydFXo2ELo+5SyGBJ9tG71AKv6YM44GGF2z4rTksvL9j/C4WaC\nG6zlIKSjXnD50FqyN+UJJR0gZnr/pWGeoIixl9W6Xr1HlN3T257RVRzQW/F1PtMf\nEqvjSolTVQ8K9IW7715zIO4IbTRtdeBj4WU9MxTa/sRMuiiG+Jru8LRQkAOG/zjt\nKfqtP044Vy4ZtEl1saoZlwfEe25ii2jeCkl7Oo4baV25DJDbZYzEWH2xImHRsNs9\nvLlH+DL+zypU81g+skApXpi4aCBpXpLHkKfm7t2AHF0lwj7sXffcXsj4ZCrkmYpy\n49yt1FzSCxE4C19Yhb83tIbhlZu0XVgnuQGHqNNywWUfFVPKbHmIwghpIUoMfEtc\nz+M+TT2DfWATV8QehOk7a2nneu/gZI2igcr34n1wEdEgNxXEgH2Nf6zW9NuFVmVT\nJSOqYkTseU+OQsw/vDegXIik2wK1rFPW9UKp/VOfGuZwinyU7bfaF8a8fbD8cvRA\n/0hkfG5E8KzseUHYeLzc2VifONdTQAzQumi1f9+C4+B5xkU0Xz515mDcpK49Ln4H\nF3kwoZWrN0RKpusN0yxscRshVcP9TwqiHTmuc+S/pCs=","translations":{"en":{"changelog":"### Added\n- removed cached files will be rewritten during switching progress"}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.2/appstore_switcher-1.0.2.tar.gz","created":"2026-08-02T06:57:36.908012Z","licenses":["agpl"],"lastModified":"2026-08-02T06:57:36.988796Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ei6BZet6PSOGk/EZFocfvy0tFqddUPipePP6FqlzvBZAZbCUn3fRdO8c6djobW7r\nrYvayKKGujKoZ84KeYvb/kQZZ51yNg06ws4N6Jgc3PZQ2+oOWxQh+Wsp2AdngETV\neH2tIvZaOB1Q+BnSkVtgIjvjzI5vHvVy3u/mce+aPWoAzSPho9h+z/L7EclXTmcs\nb5TuQex04jR3p5iZu0g642D8Fc9lqaNf5NEzSa1OGA2J7IjqU2/uPkByEvGzWRju\nKEwNTP+L9rUhE9cWZymUYSYZyA9h2EQCTfI33hMoFAKNwStQ9mMYvONpIWk//5Cf\nJAZn87kSQ1uRw6smeTw0RM+fO6lBj+E0l3/0s5zNQA3qJ57imbr2Q6qWzI0OFtUg\n6N6JwMIpCrmRxp+kku67SdoLJknF6yjz6d5j509vt3+8y9DJdtZ3E5VzS5k5ILWz\nv8RJ6RlQgYxnDw7N5VVKI8siksQq+5lPwnHNMnzr5bZ/3/Yb5c8sGFHQM/zIhHAZ\nEAjEP1WXWl0Vd4wnk6mi80EngMqZoWoSMOXmqcUDPvGHPMnhZ4emcUW7dyc3+dOJ\nfrEKvx3613sPFDJUvsTLh5lKr95z/W2OyLV9OKkW3J33SCx+jdcopYe3RfcjKaeW\nRpGzn2V+jPgmu75UXHKIgqWXLFixmkY1zbYFyDzlLCk=","translations":{"en":{"changelog":"### Added\n- l10n language files (AI generated)\n\n### Changed\n- some CSS clean up\n- some code clean up"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.1/appstore_switcher-1.0.1.tar.gz","created":"2026-08-01T10:19:27.282374Z","licenses":["agpl"],"lastModified":"2026-08-01T10:19:27.336921Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"pV4Mrti3mN6gaX+VIxxKfsxsNzWNLCL53ALjaF6tshjSnMubZqJZa8rndPBZDK01\nPZmDNyLKTNYRipRMGQW/G/3DbkZ+FYdMErqtEr3n+DFRMmoNuOh9tlxg6rCroE3A\nYVbvXcXBx+rqu5BMBYYBxn23Khrk/dHJvY265x+mMLjiSkAVexleI7yj+q2WDg3C\n0YSr1jZVQcBhvVBhxQDaTuBxDMKhMTRYDqFEyHYn2o/NOYXy6UNWuiSqPnePQMps\nbVJME/OrSwc3X1VPmiqL3Qh1HUAb2ts/Hb9dwNsonqz2hUuClqSl+aI23u4PTWMD\n2ZSte7OXg8SedwDXGiGdtGlZqUHa5FZkpIMwNnt8MXJpMiVyda9Ho11fKXc+tFpN\ncDo2twWU+eJ9T3vNX3iPhXnFWtZvG9ed0h0PanK+eNySyBK7dSGaCWEd9Miu6dfw\n9+vMb4RVriGwq6vi+dzZCzUOXhfM5CDfo6TPyGsinL312/V78b2Q3hoAuBCGu2we\nM8GgpFa/hpyJ/1x88mPlndJg6Affyw2f/ICRCpXU4zu27Pd8pcgVxtpxO/QpTRxd\nRNJKe8eDn4btyqIvKSb6TkBbMInVkXd4FJhUeTM6iCW9Uyolmum6C/MOvbaUOzUW\n7HqrsBcHfSyOTUF88/8XWrTO8f2HF2yAtfSzeaPhyEU=","translations":{"en":{"changelog":"### Added\n- Display information about processing\n\n### Changed\n- some code clean ups"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/appstore_switcher/releases/download/1.0.0/appstore_switcher-1.0.0.tar.gz","created":"2026-07-30T09:38:36.711712Z","licenses":["agpl"],"lastModified":"2026-07-30T09:38:36.787123Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"XnqM1ynKNSElcbeqdzh7KPhgaH2EO1ces7hoIEsRoQuJYodIfEt8uqmhPYT+lCf0\nb/blfbNi496KJENqLBvGcvekbvIvDimp/wy2aVh+St3Ov9tOaxlGPNF5o2K+TG03\n4kEq+0bMyntysN/WoxfYxtSXHfAuIYQ7Fo8If5/efsWsAOSLrz3duWd6sZN5Hlnz\nWjhPzyc34m0Uiqma/Dz7ix3ui29lGejqYr7dFNJWm+N7QwpJOBAQ8g3IH0m1zeJJ\njd0lYieppAX2Do7LlMN+QzohRqfN8C4fx0RfGcKS2RZpZ/2wnMtt3rISk/D89are\nWSwgCvLMuD7G3LO+/3TgWZjoP8EZVbu7gHjX20oKh0uWUsMGkFY1lFwF1wtHSXPv\nlPN2p3rES1g/dX+hYQCg6qUitlatvlnoetmiCpYDnAImZ+BKPI38S10NMsN5bfWi\n0YHezRtc5anCsG0D619iY4RY1MVbg/0/XbEKySaD4HPttWauCs4JUGRga1g5/gf/\n8tm5yyM2C3lP/YI8Ct8HX51msaW2af8bjar3i7gC/pSYonZHQhEzUhnUUKDOhSFB\n6ykmihL3SQBSlKZrpRxQ7y2LtgI7h2oi3+ZptXWxMfnp62pQsBrSArVMPEMm16Ce\nXj7VSrAROqIt0NCn8YzU95a3rgHZ2oerHRk9CT9eDR4=","translations":{"en":{"changelog":"### Release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvYXBwc3RvcmVfc3dpdGNoZXIvcmVmcy9oZWFkcy9tYWluL2FwcHN0b3JlX3N3aXRjaGVyMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/appstore_switcher/refs/heads/main/custom-appstore.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvYXBwc3RvcmVfc3dpdGNoZXIvcmVmcy9oZWFkcy9tYWluL2FwcHN0b3JlX3N3aXRjaGVyMS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"App Store Switcher","summary":"Switch between official and custom app stores","description":"**Allows administrators to dynamically switch the app store between the official Nextcloud app store and a custom app store without having to manually edit the config file.**\n\n- 🛡️ Only accessible for administration.\n- ✏️ No manual editing of the config file\n- 👉 Note that this app does not have a direct link, but can be accessed via the administration settings after installation"}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/appstore_switcher"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhOzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI5MTA1MDE0WhcNMzYxMTAzMTA1MDE0WjAcMRowGAYD\nVQQDDBFhcHBzdG9yZV9zd2l0Y2hlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBALZlW0DDKjjBIwV6ZEXMN60SYbVQv5E9oDRUD0tblfQAUQPLCJx00p/Q\nmVB+iPZyFHs41h5Smmx8MXkMltfrjJOvLsBssni2cpN7Ixc3bv2vxlBF0cq1RjLD\njlWjeRudb41pfwtPMAsSlHpYN6trk0nSeX4DTnr4cIFOfG2O+69HA7KAl6iJwwee\nn6TA2llNOnhKQw7f0x2EAgtrAKSbqB4mo2atE53Rc4WN6of6Izs8/oTU7C2ohF5B\nV11omiVLUlmiEc5t4T8OZIXxXUR4h1igrppOpfRoqdIFsr8jK9dpoKgOGl9d+2Jq\n1HNNDNw2ailcPMWSJ1O2YneqwKX8zNtPZJiglgJogFRm/G80y2xwo23ONMyKQLMZ\n4h7oQ4hHeN/TqftZQPyomdYKlm3rRpBtKaJjM9imzWy5pXzqU+lm212NhlvIajca\nuz5DIL1xXnAuhbsvmrLIJRvSzUDQe2ObRZ8K7tZNHClZOYBm2H2J9S9u9JPD2toJ\niJD0J97xZfmOTWx0QKf7MxK+xd106BeNLiUWJPbFWY7ZU4zNFl/YnEWIJ5Z8S45O\nU3BFaxqke2rdr2HFcJNsnO93oBFcEat+Y5WGe5IxXULEnXBTXnCbD3cFbSpy2eJe\nyvxsLYaChMF7O05Y8vBP5RDaIfvlLNz50F2hYE4yyVzk6CjBFGXjAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAAgaol7H1S8pkmO1ITyu9ty26aRgUeVvYn7gBTRSlRKI\nt2J1dK9TStTWrC+r3KtPZyahNCAXn8mRhzRfuuiil2eQvkEG0y+tO+K9/+fpWx1f\n1pcczS7GKkj6EcQoHLhKAdtGXlEN91GIYcrLxJC0xePZ6slU3o0WR7OBem/c4PxV\niPSAqbdqjOeYP2VVrRwgdt2CuIxKcsrGuz2n0P7GD7DJx2Ij4ngZ5DW65bvvW9fK\n1YRwzOWFWKEDM5ISl579fp06cOQUGaP6rpOIXDPFpDBMpe+zY2nNRTH7LMl3Ar8q\nVQsE3Fsw5GnNcvlnca6nAkw1M9BbWvwFPlIPJYZFLGY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"virtualoffice","categories":["organization","social"],"userDocs":"https://github.com/hweihwang/virtualoffice/blob/main/README.md","adminDocs":"https://github.com/hweihwang/virtualoffice/blob/main/docs/admin.md","developerDocs":"https://github.com/hweihwang/virtualoffice/blob/main/docs/architecture.md","issueTracker":"https://github.com/hweihwang/virtualoffice/issues","website":"https://hweihwang.com/virtualoffice/","created":"2026-09-29T21:02:31.524007Z","lastModified":"2026-10-20T10:53:05.392305Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hweihwang/virtualoffice/releases/download/v1.1.1/virtualoffice-1.1.1-signed.tar.gz","created":"2026-10-20T10:53:05.386867Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T10:53:05.440995Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"HkQ25YnVso2TMi0x/yKDqbekmho9YcK6OVBQcZHvK0iYkENBw2RqKQF6t7CPpe9pJztpV3cK2THXnkGQdJTg/H1paC5tUM/sg65o+5DgoQcaEypHFl5o1j06BLJS+wf666ZNYaCUWMYpqYrR9CrK3mJt+qNrd+FJ3AaOPrdaBXHxzn6Ak635ZwvDWAgt/3AHRzDkAxUz9BnV/dXo6BAM0niworeBZ3IhBim3JJQq2BePsvOYTkX5I+7rMjSEnF3abn/PytKzpDdN+yLiQi4RvsN8gY1lTSSxdsVi3Y3jp+zh/KOYHsVk41kwiXzvX3c5E6LQXTFmHPze4eMnc5q14XLuNQbChRoT+qBMxYbWDdJDyYfM6H9RKQiPUy2g+cohreMJSYep34iKBwvOqkCi4POI5IzWVPi0zDVbkQiSuQJOfPtpVuDQuLMPq4RdGCt0eMsn5wcZJ9R+xm+k42VJfvDo5/0v1FQ7wMpYqPe9jK5NdQsZ1wgkAgxD3LBvj3TMcT/k0CgBN4SoAAp2unPOdAPxs9382SD8H9vHL8HDMZwSv5H7qILtNl1UdIxVPeqGmfjm5FVFi8dK30MDKJ0pZHQO7jbZ2hih7oDuclRXlEyQMOi24zhMSqgepBXtje4Y1cVnjwCvzocMuO+V/I0unPIPstKQixiW1cOuO45EUWE=","translations":{"en":{"changelog":"- A new app icon: a white V on a dark tile on the website and in the README, and a V glyph in the app menu, the Dashboard, notifications, search and the admin settings\n- Shorter, plainer App Store description, README and product page"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hweihwang/virtualoffice/releases/download/v1.1.0/virtualoffice-1.1.0-signed.tar.gz","created":"2026-10-09T12:45:10.012923Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T12:45:10.098796Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Iz7ESXTFQdnGHqmSeaWKvUlbVU3gX1vHaVM+5MZ59O84ca41OTXTewVMHArRjKaSkWCKMlk+005p80V0anh1FftjHw3qYTfrt89nYYvSR0q0vZ8AkBWgAbrUZdMe5ZaUhY0+yPpSdBGTV8xOj4H8qlbQbwKs2g2JtDwoljpo62GKy3rdXACjL1ouGUmr+hhrO1iEAXOqAJ7zmEqZvdJNTPK0dGMnebEXzT4l+H+G7nM/rixpYLiOO/wurYq4/8MmzOiCDR/U+xBzveQijbUIjMk6xUnL/qlDMXE76Vmm48XFnpfahCTvBM9Yj4RNmPC+h5oeLZpbIvXvgtIBk2nPLEgls8a9rlAGvnQW7BBf2SkHhkk95NNKQV0EXGK8z+xmxxUVW7Ms2JsMG/HQa5xCrg4tNWU6iVhrTfc+c/0qRgUQ6wC7wN5chHibBk06F60X2jZEn0JyX763vgn/YAb6Sc2TGnnW72lIeF1JG4jDBkxEZmAoV7Vxh2MXyYfbnjM7Wg9h9TBvawqqdNPBVfBVbL32NlnIi0zbXoI9BgktIQrOyHXlm3F8kYa9A/zu8FxQ3R2PiQBGUYZXfDREXLwnPr0gEYeEMgmjHxFkhxijVi772wLz78CQcGRx1skPeZ7FXpVB+/0ZLsfbr+no2U/NqtGDbaM0s3bbkavmmelvlVo=","translations":{"en":{"changelog":"Offices\n\n- A small office for small teams: up to 12 people, 6 desks, the coffee corner, a sofa and room for 4 Team resources. Choose Large or Small when you create an office, and switch in the settings while nobody is inside; desks the new layout does not have are freed\n- Seasonal decor: autumn, winter or Lunar New Year, chosen in the office settings\n\nTogether\n\n- A shared music player next to the sofa. Play up to 10 audio files from your own Nextcloud Files; everyone inside hears the same moment, louder the closer they stand, and nothing at the desks. The music stops when the person who started it leaves. Adjust or turn off the music under More › Sound\n- Proximity voice: turn on your microphone and talk to people standing close by, louder the closer they are and from the side they stand on. Push to talk with V by default, or an open mic you mute with M. The Focus desks stay quiet. Audio goes directly between browsers, or through Talk's TURN server, and is never recorded\n- Time zones: the people list and desks show each person's local time, with a moon outside their working hours from Personal settings › Availability. The office header shows the hours everyone works today, and knocking on someone outside their hours asks first\n- Weekly coffee roulette pairs people who share the most working hours in the coming week\n- A birthday balloon shows on the person's own date in their time zone\n\nAdministration and privacy\n\n- Admin setting \"Allow voice\", on by default. Voice uses the STUN and TURN servers configured in Talk and needs HTTPS\n- Music files are streamed only to people inside the office, only while the person who started them is inside, and never from shares without download permission\n- Starting or joining a Talk call from the office turns voice off, so Talk gets the microphone\n\nFixes\n\n- Coming back after your visit timed out, for example from a background tab, puts you inside again instead of leaving you invisible"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/hweihwang/virtualoffice/releases/download/v1.0.0/virtualoffice-1.0.0-signed.tar.gz","created":"2026-09-29T21:03:16.429879Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T21:03:16.476568Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Lid98eZz2bOXtKZSPAJkB02/L+JJqKxpaipiZ+sS4hqW6GlzL7oZsCdhGovXpoxAzw4RhOM0t1l+NfGaVzrwUyuAAIZA9bmqgRabMFpHP5ovMd0yFc2CrCMnlICJQGO0XNZLUmV8+1EX9+MW3cf4i/DDkE3llAHlFPvxwwO6kOZ9j3wrvO22WvvRQY63OUqlvUwaKOTPMwW51pCRSlPphCiCYwwZF0QD6F4Zqw1/7cEo6Fitq201kWUShPAl3AFtyqWDF8Opz3CIyOjPHBnTNweqgd3QimT6OIU9G640cDgwpNLcODhhsdUvl2YKpxycWMFaZjVihlDgoFeN5D2PVWG/0ZUuh5/sNJhKenIa9PR/8GiFJPL01Zk+b/wmSU6AhwtWaQPXT/3HDCI1+UUxTKnC2TcS6gnRyEo52XI/7aNe5PmJZxvC+8fdnl7HjlKILUB/roXxyHdGA0JfR2MTe566csK65P4TbThHScz7Og8CzGJb3LwuVBOzMwUbsa+t7+jlijtQ7WV/L6EafBnk+rhq4UQQgyhnZ+dip0nEM45t/wFNKrTD/S4s9oq4P0hGoyfdADtmWdQcbj4VQSmlvXGBHUVVGzoCyz/X1/hFZR2oNSTNvvwdidyIRawDCOQFLjqCWIbOw8iXHTtzVnS3GGTXsEHJRE9GBc5XTZWCce8=","translations":{"en":{"changelog":"First release.\n\nOffices\n\n- Offices for Teams and Talk conversations, created by their members, and group offices and offices for everyone, created by admins\n- Any participant of a group or public Talk conversation can open its office from the message menu; everyone in the conversation can enter, nobody else\n- A conversation office follows its conversation: renamed with it, deleted with it, and people removed from the conversation leave the office at once\n- Office cards in Talk and Text show who is inside and whether a call is running, and can be switched to an interactive view to enter and walk around right in the chat\n- \"Share to chat\" posts the office to its Talk conversation, with an option to pin it\n- Offices linked to a conversation show when its call is running and who is in it, with Join call and Open chat; call a person from the office in a floating Talk call\n- Team offices show what is shared with the Team, such as Deck boards, folders and conversations; Deck boards show how many cards are due today or overdue\n- A conversation office links to the office of the Team the conversation belongs to\n- Find offices in the Offices list, Unified Search, the Smart Picker, Team pages and a Dashboard widget\n\nTogether\n\n- Four creatures, eight colors and four accessories; movement by click, tap, keyboard or an accessible people and places list\n- Four reactions, a coffee machine and a shared plant. Two people close by who send the same reaction react together, and people at the running coffee machine clink cups\n- New arrivals appear close to the biggest group, or at the coffee corner when the office is empty. People keep a little space between them, so name tags stay readable\n- Claim one of 12 desks. It shows your name, and while you are not inside also your Nextcloud status and your note\n- A one-line \"Today\" note, shown with your character and desk until the end of your day\n- Knock on someone: \"got 2 minutes?\". They answer Now, In 10 minutes or Later, and Now opens a one-to-one Talk call\n- \"Tell me when someone arrives\" on an empty office\n- Focus together: 25 or 50 minute sessions others can join\n- Weekly coffee roulette in group offices and offices for everyone\n- A balloon on your birthday, when your profile shares your birth date\n- People who are away doze off; do not disturb and busy show on their name tag\n- While the office tab is in the background, its title counts arrivals and reactions with you\n\nAdministration and privacy\n\n- Opening an office never places you inside; you choose Enter office. One active character per person, with an explicit \"Continue here\"\n- Managers can remove someone from the office for an hour; access is re-checked about every 20 seconds\n- Live updates through Client Push when available, otherwise polling, with a setup check\n- Admin settings for office size and offices for everyone, and a list of all offices\n- No history of visits or movement; `occ virtualoffice:purge` removes all app data"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy9vZmZpY2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy9zbWFsbC1vZmZpY2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy90YWxrLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy9jaGFyYWN0ZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy9vZmZpY2UtZGFyay5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2h3ZWlod2FuZy92aXJ0dWFsb2ZmaWNlL21haW4vZG9jcy9zY3JlZW5zaG90cy9kYXNoYm9hcmQucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Virtual Office","summary":"A small shared office for your Team or Talk conversation. See who's around and drop by before you start a call.","description":"Remote teams lose the small moments: seeing that someone is around, asking a quick question, having a coffee together. Virtual Office gives a Team, a group or a Talk conversation a small shared office in Nextcloud. See who is there, step in as a character and say hi before anyone has to start a call.\n\n- **Knock first:** ask \"got 2 minutes?\"; they answer Now, In 10 minutes or Later\n- **Inside Talk:** open a conversation's office from any message menu, and join the call from there\n- **Talk to who's close:** turn on your mic and the people next to you hear you, louder the closer they stand\n- **Share the room:** make a coffee together, play music from your Files, keep a desk with a note for the day, or focus together for 25 or 50 minutes\n- **Across time zones:** see each person's local time and the hours you all share today\n- **Where you work:** offices show up on the Dashboard, in search, in the Smart Picker and on Team pages\n- **Your character:** a rabbit, cat, bear or bird in your color, in a large office or a small one for up to 12 people\n- **For everyone:** mouse, touch or keyboard, or the people and places list with a screen reader\n\n**Privacy**\n\nOpening an office never makes you visible: you choose Enter office. Only members of the Team, group or conversation can enter. Virtual Office keeps no history of visits or movement. Voice goes directly between browsers and is never recorded.\n\n**Requirements**\n\nNextcloud 35, with no extra server. Talk adds conversation offices and calls (tested with Talk 25), and its STUN and TURN servers carry voice. Teams adds Team offices, Deck shows due cards on Team boards, and Client Push makes movement instant. Group offices work without other apps. Voice needs HTTPS.\n\nSee the office in motion at https://hweihwang.com/virtualoffice/"}},"isFeatured":false,"authors":[{"name":"Hoang Pham","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhQyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI5MjA0MjE2WhcNMzcwMTA0MjA0MjE2WjAYMRYwFAYD\nVQQDDA12aXJ0dWFsb2ZmaWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAptoWzXh18d80eozvW7WYe2Wa1AXlxVnDl8/sXP5ZA8nO871BjETJkX1AeXQx\nDaDyE0rpy9FKJLk+aXQmRyNBGm34+19735vEHBo2CKcp2vBI1IwcBOR1QZOpuqpR\nEtVRj12yByvw3afNVJ+JiMXAqaNXw+hSZtHBm3aT4h1vF/9ZIu+6xCbsHWeOTBLT\ncvJXae4m0Xv6swXslG37St/PYqe5HieDhGEuub3Fo3HLKmo86wnGbh2QQqzkVXRs\nXW8ZpbK9DLdBRICRl9VZ0zWV5/CgzQ9eVWAEXj3Rc1jYxDY26npOfz4tQ64UHL5D\n5QJw4wycsYBwWWCsAj6f6BwjmsE66yiknJH9T/0pkTHlfbDm5epwhqRxWaJMjjd2\nUMganj6saKbDMMx30JjM3MsRRG1jW9lxh3KFsKI/YHZHZGs5rG+R3Sh00iE1ZLg1\nCUOvlUfW33ISPoGRwc6M9Nuy6B4zAMTibZCjU/xPyYBX/l/xQB3LdCJ9Qtsp4hc+\nhKKy05n59PYFqQKg7zNg+l9AH/aG12s8IPbu9JUM1pW6jEChWglt78V1X7GRQajx\nl/xHmuu+Jha90vlSfAmdt74/Cj8SeOAxm/CkVaH00dLaelKpgUCiQoymoCu4szxk\nnvBuPIfQYemDd3veuXRTo8UvvRrQPGAUAfC+sRoJ7wz73IECAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEACG8VqkIUT2vWinlIuWcbaBCw1oWsiXyTShKN9CZ/vZhUXnK7\n1VmxVlNHCUZI+w3Wodal6pREefmmsSpdhVoQKN88OcGQKqTzLpVtXPf2vcaW5i/b\nGfJiB5FbGi7/Zo44HAhORmxh4nowFtDgn7KUsHwFbuIchMCEwLLwg0sOWjGD6H+1\nuX2y0ew2aknEkf83LmjlLfTAP4TsbOgi7LsvEzE8loZ3IxHxS06iqNtNu+XgJYju\ndMAVWRdnALGHSW2VXtqBuKbYRRUqpzJ+olN8JLNqaikaGpCxQKn0htJcdt9gbILK\nSvnWHr+i6B/E9fe/IF/rzh21NQ8lTaYH5NjVmw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"audiocoverpreview","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/david-brauer/audiocoverpreview/issues","website":"","created":"2025-09-30T16:02:14.052112Z","lastModified":"2026-09-19T14:40:35.461724Z","releases":[{"version":"0.13.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/david-brauer/audiocoverpreview/releases/download/0.13.1/audiocoverpreview.tar.gz","created":"2026-09-19T14:40:35.443242Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T14:40:35.505087Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"JyAFyjwyNTavZkg7XyneNARjNt9FFMIGSj3C+d1UYE0nkGNG8NTPMXzGZF3Zuh0q\noMzmDGLcYauK3rc4BZTdm8OEOrwIFfPTXtv4jiNoq0euZd6W73XMN8sSWgvgpvm9\nxzh+JzDxDZ3efES8qNQaKNNHmGQEf8mHBBj0SBw8EcXLaJVyjb2E13vqJqHW0k9J\nbkbQfyUqV9o1vc6DUUQ1MAy7WrWQddWIGknyX/bpy5o/rkU4/UsUn1ga+vruES2s\nVaJUeuck5NsdZ61fZKhaZAA0EiHsWFLLuKgwxZDeeSO1L37DeyBoDcmStF9dYKaA\nPh1Ajkt3rNKvij8VeZaXRvXiDqm4KJSDjpe8Q34ktIXt4o68z7W82q5FeokjQtg5\n9VNXJc6UsKLhWcqS9y0sn2TD7iJcfM4yjWeCOVDVTwJfM5kEp8rFSy0bzpP61fPc\nJsTl6xrDfXhTGXazsuQtm88eCKkm76ULC9OWdjO1gX3aWFWVf5pRi76eFjOj1R9u\ni24fKdC53eoWea71/zbOc1C5TUZasHxR8OAOqRjnj8jLbrWZM9avgUmQJFFdyDdc\njeS0Bk1s6O/Zmh5CqtDz04zxp6frI2ZGBGo5T6W00TOJYdZ6F5EjPvOzZsNQh+vx\nx/IBKWT0PAf0tk2PTcnuDMDdU86kCltqUMvjybGrTpM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.13.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/david-brauer/audiocoverpreview/releases/download/0.13.0/audiocoverpreview.tar.gz","created":"2026-08-29T09:42:21.235179Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T09:42:21.303792Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"NcZSz0syI2+eWOjIFcQJ2cpmWN8m9y9nycpJYMX1XTfmrSN2GNN6xTptRV6AfZb7\nU6aoU/ADPwB9dHqqU9X62ICbF+I2jsITLGHBNCOSCSrKuX0a2C0iK+rEImbv9SNT\ne+4x1IgJlBdf5n4m1zZTkG0qiSrzvSzRWq7s3fuM7NATDu9LRI6iajSjsokYVy6o\nQ/5u/aPVNbebPkXrdTOgc/Q9uMqVidbun7++RCp03ViuDiW+bNe+ilNtnzzeU5nm\nqQF18tnFEnXK4TU4DHhn/tDuPgg33T8g6CbgPQ4uxD5lQr7kkUcKk4H1J+Vu8K4V\nj2fifkORdvSkaABYSqIEz9f8+sg4IXoJxGDssctejmK1/XZmkMKvVufJcoqmTkpV\nBrfMlEPZTfopLgsTgmZIdQpGUaON6DGmLUmHlgELB0Erqgij7VII6cSPK31TBEh5\nxEO2umN8r9owdqAM8IxBwf4aHMKWVNEAlL/QUn+J0a7VpNbTii+w/7ylVYzQmRw3\netRwlMqYzCcxBVJHOoAayVN6vEj1TXgEXpAXNwf1jkjtVeCxV27AAYNj3FynufWo\n1CNCt5PKmHeXzk82PGnde/ubZkCLTyRozEDHnh+PINd46NDjZ2na+g2jIk1zeV2R\nXEW/eHO2dl1M+7feNiNso1zVHd2wIf1vBSeI3j7AlCw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RhdmlkLWJyYXVlci9hdWRpb2NvdmVycHJldmlldy9tYWluL2FwcGluZm8vc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Audio Cover Preview Formats","summary":"Generate previews for more audio formats","description":"This app generates preview images for additional audio formats from the embedded album cover. \n\tThese previois will be shown in the nextcloud list view to make browsing your music library easier.\n\tThe geration is done with ffmpeg which is required for the app to work.\n\tAlso imagemagick is recommended for best results and required for some optional settings.\n\n\tThe App has not been extensively tested. Usage is at your own risk. It is recommended to backup your DB and preview files before installing the app.\n\n\tCurrently the following formats are supported:\n\t\n\t- M4A\n\t- OPUS\n\t- OGG\n\t- FLAC\n\t- MP3 (the nextcloud default provider seems to have issues with my files sometimes)\n\t\n\tMore information is avaliable on GitHub."}},"isFeatured":false,"authors":[{"name":"David Brauer","mail":"","homepage":"http://example.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhLCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwOTMwMTU0NjM1WhcNMzYwMTA2MTU0NjM1WjAcMRowGAYD\nVQQDDBFhdWRpb2NvdmVycHJldmlldzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBALPl9at2VFPeeOGLzw12ZSwbUC2L86vE0I8hetdkQuY5fzI590u7KDBF\nA/2mzeinzy9jn7kOXEVHyc97R/1Flc/1fAhn5F1KbwxuAMa6RdpS31htkBdOxQs4\nrm6pFBgyJJaukLVLn9VjufpipOt5FN5f3Sqw7Fl2UDdmX0qsIHGkGAXzvjkuwqR6\nhxvjm9M96f/9i58IHcXb/549qfcnRr+UetViUYEqwimWPjud905DgjzBHHVFbJJn\nI3UNwn+A+SkzinH//2GJ0+V2lQWsQIfh/hhtguw4AnfmByeDr1wmFoEk83ENQKkh\nOpNlXz/chbDSn8+x5Ce+fuKgQ9jhvTHFh/wP7k8EQ9WFqcb380ND5CJJDKRNe8mC\nGcFIfWAEvG/1WlKlgxV8Og8B5TgprBp6KvbWZt2HKVHDZqV/xYdoDOw8k90ASptt\nYpIW1Vjauun5QCzRJ7A6G+3XzNq4FYr3wvu+ymF3dGxZmF8yNHvcwFzbj0FNs2k+\nLIAWiiAq91Euok4ShwnD8GzQF/fKKMxf+dZ52xa5OvCvITrOsVhNEJUOPhC4PrMl\n8xuifU6dt+PCy+TGsrU78BUwoqOyKYpVMPSaC/NiLdg6EEfhXN4hT+t/snS1A3cu\n3GS1rLX1rg4xo8Ykqjym3D+ql7xqezeDuBj+XHtNMW2WsuOIWfurAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAC1pCITGhEgvbTDoAjFEHofeXG4e9RFpReFfVUoze4k+\nFLY2i8j8pPJiOZdWl/AWcOnh8ZZXg+/k/BsLhRpai9jTZjDYXRBv2pQkduQJCVVY\ng1i2nwMMaIABmzLJZIKyqpMH8CUrwzH1AhVkbRWCUSUkYpzPHB4DxhMCl2pvw2xh\nagHRJedEOY/aQOKrZPeGYuyDlCQn3INWmHwZu++ZDyrJUAaz2jlNHomUGI5kw7+S\nrg5Ert2p7ZOWBcFmRz1tkRwY8Ld4Sy45aio7dUjSZbtmKk9aekV4CKe3S+TUNmvh\neruuGL4ZArnRKqUDk431/uUJUtf4gUnJlFolIy2Mjhk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_rename","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/w-shackleton/nextcloud-user-rename/issues","website":"https://github.com/w-shackleton/nextcloud-user-rename","created":"2026-10-09T09:54:42.541259Z","lastModified":"2026-10-09T10:05:53.643195Z","releases":[{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=35.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/w-shackleton/nextcloud-user-rename/releases/download/v0.1.0/user_rename-v0.1.0.tar.gz","created":"2026-10-09T10:05:53.633987Z","licenses":["agpl"],"lastModified":"2026-10-09T10:05:53.691903Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=35 <=36","signature":"qqANdSIUfqui0pd4V9VhlmGay02tOH+sH5RE0CzZhXVRw2/WRHGZJUoMBgC7BObELEXTzBScdm/bbZgXxuw0vtaXwLdieBxYqRwsAu68SDwzZLfVazJGTR7XQGKPA0+maWuXAX6tlelBSWR+mFQ9+6iF3OQwS2Z/gm/P3XpXlcVFejerJwanM8B/hnnN9gqdW0Lv0ariwx3oz+NgDLIPNUFbjmifpTm+hJy4zvrt1QFHfrXu0UtZ/P5P2dfuSvYUfJKkhaBOEjCzstXJby82kfnnVoqGFeZJaVUl+RVmmXA6tcolbEh6REOAsbfbn0kLcR4slyQTOHJa1xNyTHgKQIe/0iQVQh5MQb2BKhx4wm6qHBRyzECL8hvSlG4JVRfLREyI1+NhJFUcjaou612co0pru6GMJRWFaaIA45jlTClYykwR3SJTEfGpY4ijX11+4jEBiGlOn1WPMl7hChwXqd3f82zl+ZyqdMWPXD6g0zmlbb7Kv6S4QZYepEItN1775blFL+CtKIAT/pSqLSSwE/hrws57Ab3ZPngZe76IMCBzdvSbVab4zSI3Xrx8E2gIiQ6CI9TZ3C1ljxvRvwS1L4j4ia+vDIDPvvLM8NvEKNLTiatcwt9OF4+9sEsLbBZMkDvRrysayKBJW6LLiWPry9Exu/pB82rcQB+V8IbjuXY=","translations":{"en":{"changelog":"### Added\n\n- `occ user:rename <old> <new>` renames a local (Database backend) user's uid\n  across the database and the data directory, in one transaction, with\n  preflight checks and `--dry-run`, `--force`, `--keep-tokens` and `--strict`\n  options.\n- `occ user-rename:scan <uid>` reports every column that still references a\n  uid, including columns from apps without a rename rule.\n- Rename rules for core, bundled apps (DAV, Files, Files sharing, external\n  storage, workflows, user status, contacts interaction, webhooks, federated\n  invites) and shipped apps (Activity, Notifications, Teams, Photos, TOTP,\n  File locks, Text).\n- `OCA\\UserRename\\Event\\UserRenamedEvent` for other apps to react to a rename."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"User Rename","summary":"Rename a local user's uid (login name) with occ user:rename","description":"Adds the admin command `occ user:rename <old> <new>`, which renames a\nlocal (database backend) user's uid across the database and the data directory.\n\n**Warning:** this code is AI-generated. It has been used successfully on a real\ninstance, but back up your database and data directory before using it.\n\nRun `occ user:rename --dry-run` first. The command switches maintenance mode\non for the duration of the rename. Clients must re-add the account afterwards.\n\nSee the [README](https://github.com/w-shackleton/nextcloud-user-rename#readme)\nfor what is covered, limitations and follow-up steps."}},"isFeatured":false,"authors":[{"name":"Wren Shackleton","mail":"nextcloud-rename@shackleton.io","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhRPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTU1NjQzWhcNMzcwMTEyMTU1NjQzWjAWMRQwEgYD\nVQQDDAt1c2VyX3JlbmFtZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAOez1p0BPt64GznZfcamyTw6Gll+uQdlb8mejb9akVD1haCw/4sbBQJEvt9Z4WTQ\nMdFG4tEYJVRNPc2gsYk7HOrtjDjVibJ1C+lgKXXia9Q7U7Zp1ifgsjMDUsx4er8H\nsRwRcA/AuA/7MqNBIBgvIkI+Ahe8uNWrqNxHJcvQ/5uWLLbiwakP2VQeAt3RZhxv\n56Y8m1LOUHEQ8JP1EP07q7HAMqLk47HPD6OkGkH917pb8IhswLVPbu1FSzB5P7pO\n+8q6p0cSOyAJNJYdnApDlfKH0jNxa5vrmYNiPMjniLCIe+Y0cLZUkv82Q0U+2rdJ\nkiSJcxlUzheVjSk9pEHSXmblpWyrkJz2zQU61+3OdIj6uZaWlfKf1EFeJNlU02tJ\npdQhsPlnHsXiKycDVvEBEEtyWNRHsijo6hLcZBVuzVBzpmsiubK/NQEjVogicEvp\n53rixEHgNqscpUp7q/b0B9n0vkpJq0DZ/Lg4R+cKVS3MSOe/o4m5Tz/6nr82M84d\nxssNjb147uT4tv4vz49fG9mLTcfAN+Yid+xPFeoZeyifhlNLGN703tAH0o8CYqYb\nKEo9AWqxxLNi1O+ZMt2dy6e1bNiuCupRS2C6xTLDY18/HM74coiG4P8PMWZkW5ef\nHOLvNEWxwp5vfahHpfUj2qU35Hs6xt9GfwcEGbhIT7mtAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAGckYKDDJfqFDf0QDA1pe+NJgvLtWPVMSGJYKG/lufduSMF+58eE\nN3af7XRyOvmzEP22DMqIp9Dj+mhercCaZj/pA0adotqZ5twMD3coQY/DgFW/lqR4\nHDOnbqu/C46qOHV+U0TXWQ1pxzg436vZZAROIdvmchmngl6KLmQh87QDJFXqUJOt\nFm08Nln9/F5rsSLJr0hVwpd6O7vfIB1bfYS4Mp7TWy3+YbAH8XA6iKW6JgkkvBQG\nl9SBonB4uOj9ItPNEXKWatbf/QR/XzHJkxySE38qeo84I8Nnx2y46OUIpQQkeCYb\nWKEkmFDzRCDG3SIcV4DWZ+8BzJrMZdmogME=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_twitter","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2017-04-26T13:42:25.429473Z","lastModified":"2026-08-06T14:43:56.967750Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_twitter-v5.0.3.tar.gz","created":"2026-08-06T14:43:56.950020Z","licenses":["agpl"],"lastModified":"2026-08-06T14:43:57.013289Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"qnDS5JjCWIto0zqee6GVr+jtOhGBZBuFzsKy+a+ZKg3jBlKYYd7/y1wsuqhS936KStU9Capn0PBxNkF2BzTnBtzEg+1xG0bNLJKM/JJ/B8y/iI8E8dpnnTSFrqcT0eWGT3plQDUry7Fy2XQHl9abUsKfNSN5xyATKSABJSCt2l7zuZXlKPfnMVrOHVgn4HKUckPes4mhI+zOEf0YV5eyjzLAZiJ2/HK7gNEX817ZldQi2A2xB2b0Rj+FvgSwTkdhSXkCE2leh7cDDPj4CAPmsNWOvpqlRQ0ggiK5HgJWW12OpSqLGkjVgP868kfuon71yfFSslNinlOyMzEbDggtGYZtJAh5pCoCkVBD4kvLHQ+YIUaA+/p+hhWweZ40po4fO3I7ddEO8PVzbnjaDQ1Xc54hTbpWHjmcAxzc3NsXAyWiPTbpPjqDdPRmGmO/aMR53nX8AP3dtyjfvTy+LDdemNy1RBgPbMjQe4Ljff4T6Fczu37X58P0WCpJT474rrLXMD/O0ZfGitGkALmafLyypRPegOhLnUapKR2+DizhUCpQhZ2Yw4CrxevKUGfoe6WaB2eZKKHy+QrvtEYiq9lOXJhyeF7sKHjwIYgVgN+KPl9V/seehpK+RJZLtKUAZ4zJBlY0TP+fxrPZcZ/2r0susnyejDY6T470gLnnnFZQGZU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX3R3aXR0ZXIvc2NyZWVuc2hvdHMvcHJldmlldy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via Twitter","summary":"Enable direct sharing of files via Twitter, using shared links.","description":"Enable direct sharing of files via Twitter, using shared links."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhBJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTM0MTUzWhcNMjcwODAyMTM0MTUzWjAgMR4wHAYD\r\nVQQDFBVzb2NpYWxzaGFyaW5nX3R3aXR0ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQDnVA/uF+NoLuTT9uy7U7YyswlVS9JlLpeOTl4CPSBarpirF9kZ\r\n1n3A+QpoXZ/QVDQGT6jWqBPFNJB7rFdd4DCXRpa4oeJpKYZu/dere37HE115EMzF\r\nIeEmh2/szn0CbSmNzTJULxi0QYWH9nz4ffTPBoEK1no/d0jzwcncqWZJbH6Zt+DO\r\nYRDXetWM9KBUOCH4jXkwp6FnHs1KdP1fU/usCzMDHbOWgYWv5AJvdZ4TEwCfcyPM\r\noE7Bs/IHvp3YGxGa7IiIUKwo8FhVG8BOxEaFp1luLI/x8jc9Dzym0hfAqj6Gb3y2\r\n3KjO9kwf1MD2tOusS/z+27kjSdgHXhC39qZI7BCoizjKGS2csr8pMplKDhqYOUhL\r\n1BL1dkj1Tu3D16EpMaZS7sxbTUxcJXk+Ls4qR/ZqdOBHZhDWk+Yxe5t5zaXQrS2X\r\nEBZMlJMeTlJ/euev5KVpYyCTmysKobtcHPjHiweM+4m69LXc8AEyXr+lByorBehI\r\nKnIlQ1PqZ0nEcYwPWQua25uQOIpaIklNArakqkjyCTCh5X4Wa+F9ih/0VQsDyDJu\r\npoV9Gdgze6gYmAOktpftgryHeDIKOE7wTOlm3s2LiDW/1Yl9HIXnZrSqAVxplmSh\r\n73sxOX5dy19ypkId+/+7xoCd5TU0+NLIFdvLB0G4f/gBdCgm/P6Ojlqt1QIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQAvNz+21TAYqdzwzfH5T33+qavO0oVxA4opbj8z\r\nfMUIztFVU1ykq7qxiAhOSButn0gXPns0Ie8+ID/4KtD8oEXv7xV8M2HzpVHVgjMz\r\nU6g49X8VoQFulAN3oj/NmSEBuOyY1nxDjOSIgdIkcqaOmvxXa5ZNq2lwQPRF+7Qg\r\nvDi/bagvWDm8aeeMU9vTJOjNxedUdxw5i2Ldja70cXLrlsbEcR7QPPQmgo1MM41D\r\nMyi+/LtLvw4P+f7mtiuJcfb5tvnGjjrorSP4a8/JuO0qoU//BxhMuz1kD+6KYQbL\r\nSGRrLtpY8+q0cMIv/H5Bt2vNvScLVY14vifgDORK6wGvvyLV\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_paperless","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_paperless/issues","website":"","created":"2024-02-23T14:44:50.468768Z","lastModified":"2026-08-24T13:01:12.810093Z","releases":[{"version":"1.0.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_paperless/releases/download/v1.0.14/integration_paperless-v1.0.14.tar.gz","created":"2026-08-24T13:01:12.793294Z","licenses":["agpl"],"lastModified":"2026-08-24T13:01:12.848909Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"JlB6oBgkYKEb3D4bM+3A88IAB1+3Sg8bSCml+kfd58EnyMCrJYWJ+Mq80h/WyCNFoV5SxzkWbSMOWelJTb9BM20mGto0bFWQ1/jl1PN+Eb/8nR6LqxnC8PIyAb8dFSYvCYVffRAPSWqsCTE87a33jpx17HSi8BbGgagu2+aKohuJZbfduZxwyhGCmBOa+E+LkBICwedFVpyFMZMToaJfKjJF1PDGogkTvzqk3Msb6oCTkMWYD1umEhefkNaljEFkSJ1P7U/6/CN4ri8daU7GXrTTJdq4rQpk700iL0QR6tnNRiVr18nkuRcuq35bgwDjiPaVHoS4uIxhsreJCiLokw+U5xK701HDPtdx8LuDU9Oj6614WDNi6wH4bBMHZcC/NIpe1/utdNOPV89xKAZkRHtYRwrD6uXhnX9s0m3yr0KrWgFiVBTGEB3Y+Gva+Y3qOoEDFXN3aUzi85P/6r54gvmCZCNKLbtwR7hHjyFT8nYxr79iQxQ9EQ8RgntNdw+DXsyuKGBL2/ydNbXlU4eHZv6dYwT+VTeUrdX4iojhOQNuKd28TTx/nAu/dlPw/fWtFvxzRdp+jchs1d1XYfdDDq8SVoMe3EIwHTNLLRixZXLjdJE5/MOuzfziDIwy+ZzaK/6TV7jfA8E3VtXEQg6DChb4FkcBrAyyqNKjOF11M1Q=","translations":{"en":{"changelog":"### Added\n- Support Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9wYXBlcmxlc3MvbWFpbi9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Paperless","summary":"Integration with the Paperless Document Management System","description":"Integration with the [Paperless](https://docs.paperless-ngx.com) Document Management System.\nIt adds a file action menu item that can be used to upload a file from your Nextcloud Files to Paperless."}},"isFeatured":false,"authors":[{"name":"Kate Döen","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhJbMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQwMjIzMDg1ODM1WhcNMzQwNTMxMDg1ODM1WjAgMR4wHAYD\r\nVQQDDBVpbnRlZ3JhdGlvbl9wYXBlcmxlc3MwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCQkiiOTbdbWzkk9hkDWQblnrJ+Bvn01grakWFgs+76cm4AELMV\r\nc59hNaxXGdBFPnACMxvlJ8aB0nQS6OfTc0AS0T/tyhtOFZ44Yr6kCW8ttN8rXq7p\r\nJVDn7roJ5Tpub0f4K2TjwxVLM5wtsbIKYeJs2D/uaA4LxltwImhXoZHQRGdYEq0U\r\n3/prvtihnFI8ttZEDGP1KpVXc3EYanY1qIRpLi4DeXq6salHXM4FDJjoBZzFbF4c\r\nA3RaTVyUJPnK8Cq3Px70L5CzlOO96qjD7xd9JCmIcLQ+qrJXPpo2ApHHP4AtQGK4\r\nreomldX4qqt4F7Yq+FZZ6gMon1PWAU9FDMf+aFARQvH4H6WSLSHf7Mmi4iqRK9Rq\r\nYjCLLCug3dYOKCJ2yNllCOgh5WcbGKsdm9QkApsT3RR/PoMmzt80sEYmYILWGQA1\r\ns87JBepFQpi5w/09fuw/GeH1yuldwfQod5NvnlNtErchfSWoNOP7nTfpLlGfaIkK\r\nLatbl0+1qtO0ry3SGvyCu56fjyqj+nZWcGGKyOdoa6jbQqMFoH02L15lmdObmED7\r\nO0yeb5x5bNp4qJaYzXPO0S6ChzEbljjkB2gs23O9aofNRuNwHY4xmVZN6P6iRsdz\r\nkJ+77A8TgsvgOF7K0jfrAY/ummuMptj02dU+cP/6bAAXCIpbdiYifc/UqwIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQA3YaLHOwoX3c97tkQn708zyiep9+I4LMvv+Jfv\r\nQsi68BwZ5ti1f96kVuwDPAmM4snC3guhI7ZGNelo9Ctz7pKyAuYgfFsH0EoDQqRD\r\nxlGtS8v8N6hkj28SZS3ZEiDCDtBuQYLvQWcx+HkoTATlQxN031CvX934QMLFwQSE\r\ntIArevjwej3xiHQYfHnS7LjlzU44H692iR8IVAEJfVyIfaKzRk0ykAdzKEvqAhYG\r\nKwDV43al/YK3d0pdHcQkHYLnPq0ixV5knJx9M3dtssvbQqioPujV04ojV8gHduWN\r\nW1bAYfzEyzXwHoOcuqEE2rQznYkewPWGLtZPCNu32x3vvJwy\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"gpxpod","categories":["multimedia","social","tools"],"userDocs":"https://github.com/julien-nc/gpxpod/blob/main/docs/user.md","adminDocs":"https://github.com/julien-nc/gpxpod/blob/main/docs/admin.md","developerDocs":"https://github.com/julien-nc/gpxpod/blob/main/docs/dev.md","issueTracker":"https://github.com/julien-nc/gpxpod/issues","website":"https://github.com/julien-nc/gpxpod","created":"2016-10-31T10:57:44.387319Z","lastModified":"2026-10-20T15:17:42.061279Z","releases":[{"version":"8.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/gpxpod/releases/download/v8.5.0/gpxpod-8.5.0.tar.gz","created":"2026-10-20T15:17:42.012926Z","licenses":["agpl"],"lastModified":"2026-10-20T15:17:42.955097Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"U+o+g7dexfafFji/fgmWLJE3KNuJLJpzVqsgeJV0pZ5JPhRkiTR2Z4l/I+FqBCOqlaxVonT79KjiHngYIYve+O61geYalTwYSXWxEsIEyp35VE01yUAqMXHEFWmVrHuaE3deD8i6thS4FDu+ZgCpcUWXt3tgYN4v75WQJKlB7TVBR6fROZBH3Os8GxHeaYUhcW1NLqEHUBXhNE66LNKvkIXrpqF9m5mCGfEIaItdoHvnHkXCeIzVZ80jIYOmENglwIjnkCikl419582jsr2U0/RYVXFrq04DEJRRxxOQe7x821L6xUahaz2xjn5LszsC68d1I/BcQ7NpMUsE8p61+pk6XJZIFIQZB+00+zEtsHhK7QyIQo78QFHJkMS0TnM+0VzwmxKKaLnmj2tB34prVMvyv1AffHlH9tNQVVSJgBMYyDAAuyiEriR8LZVPaEoh00Oe90yYaDND5L3HmfBggDoDZrSOcN1TR28B4WzQW3oD6i+lWMCwGasmeYVh9hcRGaBqbQkRGzfH73J8kbi8RYPZZZOYcrUA/st/dzfl42crUK6mlpSbYGwzobzfOHq68iKQukp1DNNJg2XUpJHxlD4DfTS9JFQ0fRI7oJ5t/voK27/1OOy5HJ+SJCB0I6ovPGb4LsPS2ITSsayQ5L4t0ZRBCdsS2ajvclr7LGtI4YQ=","translations":{"en":{"changelog":"### Changed\n\n- Update npm and composer pkgs @julien-nc\n\n### Fixed\n\n- Fix proxied maptiler requests after a small URL pattern change in maptiler @julien-nc"}},"signatureDigest":"sha512"},{"version":"8.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/gpxpod/releases/download/v8.4.1/gpxpod-8.4.1.tar.gz","created":"2026-10-13T08:16:23.635848Z","licenses":["agpl"],"lastModified":"2026-10-13T08:16:24.004000Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"dmrf/m6QKUDY7abHHATa7WQj4TmvE5uxqNSGB5fyfKPlqtxN+L+bQSgcNN+qzkGHPKl8moCGSj5tupgXfCwij88Z4tF5ZOuZeWAIflJCUVobs0iGUtRbuE8XOYcFh4JSosgPFbtSMmBlatu/MIxWQRpIW3iN/+h5GaJwe1p9e7bs+6aPRCc6nThKzbKCQOBHP/TH0wF1qxmvw4CDmjqZv4ZV3uu24YOzv23Zf/qdoJ/vOVtY+33n+GXGDGLIHDA22F7Okh0QDEBvwspKFWj25ZeHyQR0IHT0r3EDIdwroNufxyNyEvdEv9ZZLlSQa9GOTdQtWrUnB2dZQMhSz5U/PLKMi4ATvMRZJogOBMkfuVKijEEoRZ5x5ZBe/JIlktN9yllzpHCPhKAE0LXU89CwlPxm/hPsxswFGL61+9Dhokcg0wSY0JpIhOTZ8B2ks06fagkBs0TQCRQQf60JtamU92Gz79yhwHQ5bkk1twG5b1Bn5G7cSDyrl+8hInQXJpEXJBiwQy6onHb2QKg5P1AaY56W8dycj3CXNyu3fmsmUFBNR2dleGc5ieRMoiPLGBSJj4ms/ByVp6syN3qS8C+icVxwso5eA3w/++CAdhs8Vc0lkowEPI0EUY8diXH9cRGg1KeQ4418pqfn6NH3sHyFFMC+wnd6gELfOPvVDuLkgwQ=","translations":{"en":{"changelog":"### Added\n\n- Support Nextcloud 36 @julien-nc\n\n### Changed\n\n- Update npm and composer dependencies @julien-nc\n\n### Fixed\n\n- Cast GPX time elements to string for DateTime @Alicia-Nicklin [#102](https://github.com/julien-nc/gpxpod/pull/102)\n- Fix one more GPX date parsing regression, guard against null timestamps in the frontend @julien-nc\n- Fix NCSelect issue in the settings dialog @julien-nc\n- Exclude dev dependencies from the release archive @julien-nc\n\n### Tests\n\n- Fix tests on Nextcloud 36, no more container->get('ServerContainer') @julien-nc\n- Add Nextcloud 35 to the phpunit CI matrix @julien-nc"}},"signatureDigest":"sha512"},{"version":"8.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/gpxpod/releases/download/v8.3.1/gpxpod-8.3.1.tar.gz","created":"2026-08-16T15:37:59.420026Z","licenses":["agpl"],"lastModified":"2026-08-16T15:37:59.738603Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"DjDsTgWK/OpQR36CQQRdh2S43Dh8n50VM4/J9qpbpWfexg5EH6xSzkcUei72x/znh53KCrTTnitL8uax6tp2L9vrY3u/gfAaBqoFyG8eP2TEV2MweqgjOc3vw3iYS7qVqx0/KXi95J7DAWB3xlUQe48s0kQvx0/ir+u65aWjJ3H14CT8UBsoNT8nuPXDyvOt1LsImLCo1SLkbVrtYzYeOGVkBm2GoZH2VWYUj5S48LxUmZFoezOe//bB5iK2Ebx7cme/2fnCY33+wuTBOvgKm1xUVZhtDh/lOPdoy3dJle5Kkht6wkj7OzBo6+3n/gwqlv31EevIJQfqW9xkMuuzNZ72/XBxoZ9nLU07jAZQHanbxWV//mXstOnhtu2l0XP081qsxXdQ4F1oSALhBF7zUTkFaPktcG9YUb6pKYxxqgrTZGjlzU1j5WkwB9l2qJCwzUxwPSpmknqGBq77tNpvVqBE9jtvjHXr6ZLCl8LyuUcMJi3REDtT06aBNUlV5iUzMUuj/IVB122v9AzLxjQR2Q8zdn2Ocnjs1Jg31twyFnw+Or4d2Fb0+oLeSkRj1sETi1O+rsj/1isEc7pgJNTCHqNYQZKGwOy3GZPI121A1k606uxXegAVsp3WDu3T6GPIWYmX5f7TQXdb+IkR2ozP3++vkATuCgpkUpLeF3wJ3FE=","translations":{"en":{"changelog":"### Fixed\n\n- Add required csp rule for maplibre @julien-nc"}},"signatureDigest":"sha512"},{"version":"8.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/gpxpod/releases/download/v8.3.0/gpxpod-8.3.0.tar.gz","created":"2026-07-30T12:23:39.619778Z","licenses":["agpl"],"lastModified":"2026-07-30T12:23:39.949733Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"nhgav7Id34q6YIantUblftDgsWCKwaMVqff+jCRXNrxDH8nglYRulVxlN+z6cHXOMNnZiChwpFwQrj68bzTwEo4g5nWrUGHcQRInjiJl8JJdVikQG8WjgE4+PslR4sHWss4hTmnPymz4k4CxnEYlcz8P2RAVyMtJj3CpJicOjXbxh8MLDG1vo4+HF5Us3tLYZ9BqsmIac5ePOCO8l5BlzI9VBukllf1XF4n+Z8n+4UI/jP6dPEH6eyrW5K3sgTO5nfBbZNFpWVSyQUpJLJEng/B6/7nHd4DqeDTszZPlGE0hDOKAuHXABO7z+Oz1xM+LIIKSGFszZR5CNgzAG13cTdKRKKJ23honWO45G8Px+rB3JCWFWIYE629JxbDdPMCNSAIrNXex2cVOwjGvHb3wFaWq8cGL7HT3sjp0IC16AYex0KHHF1ndpGIsN/+zzC+940PzAO224abLOlbjHyskeVv3QOOPbMSKAb0SL8jefb8v3nyeU8NVsyUWeVOA0dnibzDCS7nzIYxW3JXH9c0LcNNJsOrxTSkox3nTJc+gsu4eawt5IfdvvMd/ubsPykNi2OUv00IGn2NwRnpBMnbpBVK9Ot+kQ2LkjOlaA+P5XH3Gr9wK0yOa10BEOQKXBdvEmkFZK851RpOoEJB2Q0VSLEEJIvaMDdgij/BO6RZFZRM=","translations":{"en":{"changelog":"### Added\n\n- Make the sky display optional in the map settings @julien-nc\n- Add referrer policy now enforced by OSM tile servers @julien-nc\n- Migrate to REUSE for license compliance @julien-nc\n- Support Nextcloud 35 @julien-nc\n- Add maplibre-gl 5->6 migration guide @julien-nc\n\n### Changed\n\n- Migrate to maplibre-gl 6.0.0 @julien-nc\n- Use TypeScript 6 @julien-nc\n- Update npm and composer dependencies @julien-nc\n\n### Fixed\n\n- Fix comparison page: cast gpx times (SimpleXMLElement) to string @julien-nc\n- Pass use_sky setting to the comparison page @julien-nc\n- Fix sky not being set after style change @julien-nc\n- Fix many eslint issues @julien-nc"}},"signatureDigest":"sha512"},{"version":"1.0.8","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://gitlab.com/eneiluj/gpxpod-oc/uploads/963bbf246412bcbe8979bccadb3b8d03/gpxpod-1.0.8.tar.gz","created":"2016-11-23T17:27:37.783365Z","licenses":["agpl"],"lastModified":"2016-11-23T17:27:37.862469Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"hqhMh1l/mnwbYf4uPzEjjLFtZWHidzgR57X471OuXv2K/s87T5WhIkTSKk+2r8sp\nS7CtrF5+Pc5AgCCHvwzawN3e2+4eO4cK0+HD9CCzygzzHZEbSjufNHMMQucVoSD8\nPqR6MV9azzUpwHa/5d8fp3cFLVAle+aG0o4v5eHky9c7eaKxVJcgfjw3pjDE73N6\ngJVdtw1jf1kOFYk5pZQxDfBKFDrO5BRo5ZfZGuOuP2u/SmTwj42oTZiT7oTVWhqd\nLvJw+2TPv7B8s0Gin+J5e9K1Rs6CEWQ6WBxM+NhS5KgWB5Ig3pwm0QvMgza2cvoh\nlwVobOotfKLUBJzg0+wR7B2YH9Ao+m94h93vg7H0OKPReoTKhlDj2UExoTyeurV8\nhJdQv8sKVAxjC7/xrVaGSjM4YxFdBpzq8Zl8z4zq1o2voH5+u4ko3c62C1loDpsC\n8KrL1t6A7QpMk/XAMrPqwEPmFqlLEdv6FhzpOGyt4IEVnv6vdMTShcYw3tPvU/mD\njPtiVwpo8gWbGVIfpmwBg4wPaTrWK8V3+/1iTahIQHZfu4Lebb5mzht80HLQIcd8\n+oB4cGDEX4Rix1WxnCmE5ZzURY8xQXcvqYN+mTrUDh/3OtxQPSm5yC945SGoFNpr\nBYxfEyQcwulZrOMBdY0Ssj1AB5NOeC9OHwjJrnVe7dQ=","translations":{"en":{"changelog":"### Added\n- save/restore options for logged user\n- option to choose picture style (popup/small/big marker)\n  [#25](https://gitlab.com/eneiluj/gpxpod-oc/issues/25) @eneiluj\n- add average speed and average moving speed in comparison table\n\n### Changed\n\n### Fixed\n- bug when python PIL is not available\n- deletion of bad parameter given to getGeoPicsFromFolder() in controller\n  [#20](https://gitlab.com/eneiluj/gpxpod-oc/issues/20) @eneiluj\n- bug in file cleaning, bad use of array\\_unique\n  [#22](https://gitlab.com/eneiluj/gpxpod-oc/issues/22) @eneiluj\n- python script do not need to be exectuable now\n  [#23](https://gitlab.com/eneiluj/gpxpod-oc/issues/23) @eneiluj\n- jquery.colorbox was brought by \"First run wizard\" app, now included\n  [#21](https://gitlab.com/eneiluj/gpxpod-oc/issues/21) @eneiluj\n- avoid JS error when failed to get options values by ajax"}},"signatureDigest":"sha512"},{"version":"1.0.7","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=5.5.0","rawVersionSpec":">=5.5"}],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.7.tar.gz","created":"2016-11-14T00:57:37.521001Z","licenses":["agpl"],"lastModified":"2016-11-14T20:35:45.363487Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"SigBof6QJZ9IMZyFgc+B3LO2+EXaAPvnxUHjJQjIl3jLzomocpDGR6WjO6gtvB81\nzXUHjJ8+huc+P9TvgjUGRTmn9a/29HZ4IKTXnYBKIUY7wSLcJNMbJSp2Zd3OFHAG\nJwRaEdh/cIRk2X6NE1VT6dFCxB+LhTM4BXOEwuNYQvU1lZDVQgTz/r68zFLWBt6R\nqhBCNJHrVp87ecS4+XaGq/CfT4k1ihiOv+f4eX9iaPzUhxBJ71iYKF7wHpDoVmIk\nNrzWFUJH3BLBuW9oiC0PApli6Xu5RXrWUsOV7OAmxXgylRCPuTFwe09hw16JMbiS\nii8WFiUtp4qW53+7eoS7Fllm7CRi/Dg6Jvjtp3msrf1m+OiYM7dLyoKw22/S4P/a\nBIErZpSCHaCfrZ+DBXrAYcas27GWE7HizzG3yXk3aDJMa0Otcsq56bSPo01JDfNx\nm1y9iuwmlon8zKKoxsJCwxaFDnQpqazaLcUO0ATHUk8LdomTA7MCXVvNFPaO86Ea\n16iyw7Cfs0k3GrvN71+SdpvWss359CEEwBMpDwJZqwSFbLRyHtogUgbRWLIJqR4n\n5uVvJqirxWkr/EtXw6UkDWAI3ZoMhMRtjn4H4ekANP5mC8R0yp+UuFs2RkEC5uA0\nKzzh73WmxmpeUl6jcMZ49gXn3PTCC2fJNrdmSYch5Dc=","translations":{"en":{"changelog":"### Added\n- option to choose waypoint style\n- show elevation, lat, lng in waypoint popup\n- ability to display geotagged jpg pictures on the map\n- pictures slideshow with colorbox\n- pictures work in public dir link\n- use NC/OC thumbnails to display pictures on the map\n- options block hidden by default\n\n### Fixed\n- fix bug in geojson generation for waypoint-only files"}},"signatureDigest":"sha512"},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.6.tar.gz","created":"2016-11-07T12:11:00.619161Z","licenses":["agpl"],"lastModified":"2016-11-07T12:11:00.699921Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"WBts2fm2rW/7LMHYjcx9a0k0WTXV6PnGRxTl+158cjfV7ruMpNvhK58iTjrox69k\nFWAoIi1wNAlLBu9Xet1j7HKi4TC9q61IEN+lPlnwBCu0uHawiqS2gqB4i8A019Ei\noLsgAPWh8ndy6+gyUtPhVLVduLH76aT6KTwAiHPknV0zPtxsUy1P6nbbNOS5A5rG\nSQBqljy0TbcjOctTudEPp1IqjJIwcd12eZ9MLG4CEIO13n53pMAsuXJf4jnKSCm0\ngimvsFOwFRjBab3ZPwtOqeVw6aIh/lYF3U3/k8YBpaDN74m30nDtkp8teXBgshSY\nVYvX3yOAYe0PIR419IX0eoHb61K0VfZYvPT4FsOqjDr0zlVB8Rjq+6SiK4vMD2+6\neGE0aHbjR9HV5jymUnFYdm/hlhcZGaKrAiQKfBY6Vh0SWKfIv7bdGfQYauePAdZt\njlsV8lIwOy7FGAeP81CcjzWWfDeBgYr+MSzfoDNoTi41MvUaT14iWPIU/s5P1/Qv\nALGxgsbmB19wEgNbdh1UtTUY3xARLpWPYdUqU7yDcsddX9vCoCG2G5wCcbYJRj8o\nC+H7wdgPJoiMY/p4Go/lyWkvmzhfXrOeXytZIFXjb3ERVd1vD9WSt1DSy/7gsFYt\nxzzOPgqMvL3BbeluNuzNv366oT872s3OuFKa1ZOYY7A=","translations":{},"signatureDigest":"sha512"},{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=5.6.0","platformVersionSpec":">=9.0.0","minIntSize":32,"download":"https://pluton.cassio.pe/~julien/gpxpod-1.0.5.tar.gz","created":"2016-10-31T11:08:41.017766Z","licenses":["agpl"],"lastModified":"2016-10-31T11:08:41.068782Z","isNightly":false,"rawPhpVersionSpec":">=5.6","rawPlatformVersionSpec":">=9.0","signature":"UXeZVh5f0/WZE+r/dHWc1pu9q4qr/zACX6XraMhhIuKIp7vNCwUESeqJtVc99QZw\nw9kJp0isvib6l0zbQBRS1vI7xwKKBQyeaEhIciEs1JjsaCiato1Gyi26N+fY2N0Z\nFWlTwCsF3DdlwERXTYfeCpsOWCoxLxHKhnJIjUc0PVme/Ste4zxYj+5Su1RpadSw\n4vGnkW8zy/0tzua50NQCrOg+B4jXzH9kMWAP47w3sdP5CYalHSHl8EX0D1RjgGU5\n7vZYX3wF853FvQDbL4JXXCJupj3wZe8py8McWpQIcgz1p3KmE7A7d/rdNWExT+T+\nDxtStJ56qTRMz4aFwoSFxJrrEfgHIsE9Gv+Vo7nshCUYA8gkfHeckiaUtH1EiFTh\nVNeO6mTIqGpRosFvfUrZMKcuF5j74vGQjNM1o+M5N31gtLoPSkU605f/U4v+j2oC\n3/N1rYF2SEDFO0EgAGXaXVhB0ltSDkHJw6vZJ1L8Qz6tooUMDxaMri8vycA6LHvE\nqN+z+S6TXMfLvN/6ATYPGhicrWmkMT/k7v1az/hcnfH+zRyLZyFx94s88JWF7Jf+\nI+tgDbfqTMAIcytJUC+KfdQW1ueXh5F0owrOYM6jgBRvhqj1T8s+Twgw8orGmRPe\n9h8G9Z3wZAooQvmC0KdVhLuOeIkqt/S5krELNFFBRnk=","translations":{},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9ncHhwb2QvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9ncHhwb2QvcmF3L21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9ncHhwb2QvcmF3L21haW4vaW1nL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9ncHhwb2QvcmF3L21haW4vaW1nL3NjcmVlbnNob3Q0LmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"cs":{"name":"GpxPod","summary":"Zobrazování, analýza, porovnání a sdílení souborů s GPS trasami","description":"# Nextcloud aplikace GpxPod\n\nZobrazování, analýza, porovnání a sdílení souborů s GPS trasami.\n\n🌍 Pomozte nám s překládáním textů v rozhraní této aplikace v rámci [projektu GpxPod na službě Crowdin](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺️ může zobrazit soubory gpx/kml/tcx/igc/fit\n* 📏 podporuje metrické, anglické a námořní systémy měrných jednotek\n* 🗠 vykreslí interaktivní graf pro výšku, rychlost, tempo nebo data rozšíření\n* 🗠 použít barvu přechodu čáry pro tratě s rychlostí, nadmořskou výškou, tempem nebo jakýmikoli daty rozšíření\n* 🗠 zobrazuje statistiky trasy\n* 🖻 zobrazuje geotagované obrázky\n* 🖧 vytváří veřejné odkazy vedoucí na trasu/složku\n* 🗠 může opravovat výšky stop pomocí SRTM dat\n* ⚖ umí provádět globální porovnávání několika tras\n* ⚖ umí provádět vizuální porovnávání odlišných částí podobných tras\n* 🀆 umožňuje uživatelům přidávat jimi určené servery s mapovými podklady\n* 🖍️ umožňuje uživateli ručně vybrat barvu čáry pro každou stopu\n* 🔒 funguje i s šifrovanou datovou složkou (šifrování na straně serveru)\n* 🍂 hrdě používá Leaflet a MapLibre GL\n\nOdkaz na stránku aplikace v katalogu Nextcloud: https://apps.nextcloud.com/apps/gpxpod\n\n## Instalace\n\nPodrobnosti ohledně instalace naleznete v [dokumentaci pro správce](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc)\n\n## Známé problémy\n\n* *VAROVÁNÍ*, převod z kml formátu nebude fungovat v případě nových kml souborů, které používají proprietární rozšiřující značku „gx:track“.\n\nJakákoliv zpětná vazba bude vítána.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ja":{"name":"GpxPod","summary":"GPS トラックファイルの表示、解析、比較、共有","description":"# GpxMod Nextcloud アプリ\n\nGPS トラックファイルの表示、解析、比較、共有。\n\n🌍 [GpxPod Crowdin プロジェクト](https://crowdin.com/project/gpxpod) でこのアプリを翻訳する手助けをしてください。\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 メートル法、ヤードポンド法、航海測定システムをサポートしています\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 暗号化されたデータフォルダ（サーバー側の暗号化）で動作します\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nNextcloudアプリケーションのウェブサイトへのリンク : https://apps.nextcloud.com/apps/gpxpod\n\n## インストール\n\nインストールの詳細は [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) を参照してください。\n\n## 既知の問題\n\n* *警告*, kml 変換は、私有の \"gx:track\" 拡張タグを使用した最近の kml ファイルには動作できません。\n\nどんなフィードバックでも構いません。\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"it":{"name":"GpxPod","summary":"Visualizza, analizza, confronta e condividi i file GPS","description":"# Applicazione GpxPod Nextcloud\n\nVisualizza, analizza, confronta e condividi i file GPS.\n\n〓 Aiutaci a tradurre questa app su [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 Puo' mostrare i tuoi file gpx/kml/tcx/igc/fit\n* 📏 Supporta sistemi di misurazione metrica, inglese e nautica\n* 🗠 Disegna grafici interattivi per altezza, velocità, ritmo o qualunque dato di estensione\n* 🗠 Usa linee gradienti colorate per tracciare linee con velocità, altezza, ritmo o qualunque dato di estensione\n* 🗠 Mostra statistiche di tracciamento\n* 🖻 Visualizza immagini georeferenziate\n* 🖧 Genera link pubblici che puntano a tracciamenti/cartelle\n* 🗠 Può correggere altezze di tracciamento usando dati SRTM\n* ⚖ Può realizzare comparazioni globali di tracciamenti multipli\n* ⚖ può fare un confronto visivo tra le coppie di parti divergenti di tracce simili\n* 🀆 Consente agli utenti di aggiungere server di mappe personali\n* 🖍️ consente all'utente di scegliere manualmente il colore della linea per ogni traccia\n* 🔒 Funziona con la cartella dati cifrata (crittografia lato server)\n* 🍂 Utilizza con orgoglio il foglio e MapLibre GL\n\nLink al sito web dell'applicazione Nextcloud: https://apps.nextcloud.com/apps/gpxpod\n\n## Installazione\n\nVedi [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) per i dettagli di installazione\n\n## Problemi noti\n\n* *ATTENZIONE*, la conversione in kml NON funzionerà con i file kml recenti utilizzando il tag proprietario di estensione \"gx:track\".\n\nQualsiasi feedback sarà apprezzato.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ca":{"name":"GpxPod","summary":"Mostra, analitza, compara i comparteix rutes de fitxers GPS","description":"# Aplicació GpxPod del Nextcloud\n\nMostrar, analitzar, comparar i compartir rutes de fitxers GPS.\n\n🌍 Ajudi'ns a traduir aquesta aplicació al [projecte GpxPod Crowdin](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 pot mostrar el seu fitxer gpx/kml/tcx/igc/fit\n* 📏 suporta sistema de mesurament mètric, anglès i nàutic\n* 🗠 dibuixa un gràfic interactiu de l'altura, velocitat, ritme o qualsevol data d'extensió\n* 🗠 utilitzar una línia de color gradient per línies de rutes amb velocitat, altura, ritme o qualsevol altra dada d'extensió\n* 🗠 mostra estadístiques de ruta\n* 🖻 mostra imatges geotaguejades\n* 🖧 genera enllaços públics que a punten a la ruta/carpeta\n* 🗠 pot corregir l'altura de les rutes utilitzant les dades SRTM\n* ⚖ pot fer una comparació global de múltiples rutes\n* ⚖ pot fer comparacions de parelles visuals de parts divergents de rutes semblants\n* 🀆 els usuaris poden afegir mosaics de servidors de mapes personals\n* 🖍 els usuaris poden canviar manualment la línia de color per cada ruta\n* 🖍 funciona amb les carpetes de dades encriptades (encriptació del costat del servidor)\n* 🍂 utilitzi Leaflet i MapLibre GL amb orgull\n\nEnllaç a la pàgina web de Nextcloud de l'aplicació: https://apps.nextcloud.com/apps/gpxpod\n\n## Instal·lació\n\nVisualitzi el [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) per detalls de la instal·lació\n\n## Problemes coneguts\n\n* _ADVERTÈNCIA_, la conversió kml NO podrà funcionar amb fitxers kml recents utilitzant la propietat \"gx:track\".\n\nQualsevol comentari serà apreciat.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ru":{"name":"GpxPod","summary":"Отображение, анализ, сравнение и обмен GPS треками","description":"# Приложение GpxPod для Nextcloud\n\nОтображение, анализ, сравнение и обмен файлами GPS треками.\n\n🌍 Помогите нам перевести это приложение на [Crowdin странице проекта](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺️ отображет файлы gpx/kml/tcx/igc/fit\n* 📏 поддерживает измерение расстояния, километры и мили\n* 🗠 рисует интерактивную диаграмму для данных о высоте, скорости, темпе и расширениях\n* 🗠 генерирует градиентный цвет линии для трека по скорости, высоте, темпу или любыми дополнительными данными\n* 🗠 отображает статистику треков\n* 🖻 показывает фото с гео-тегом\n* 🖧 создаёт ссылки общего обмена к трекам и папкам\n* 🗠 корректирует высоту с помощью SRTM данных\n* ⚖ глобальное сравнение для нескольких треков\n* ⚖️ может сделать визуальное сравнение расходящихся частей похожих треков\n* ⚖ позваляет добавлять персональные tile сервера\n* 🖍️ позволяет пользователю вручную выбрать цвет линии для каждого трека\n* 🔒 работает с зашифрованными папками и end-to-end шифрованием\n* 🍂 с использует Leaflet и MapLibre GL\n\nСсылка на сайт Nextcloud приложения : https://apps.nextcloud.com/apps/gpxpod\n\n## Установка\n\nПодробности установки см. в [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc)\n\n## Известные проблемы\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nБудем признательны за любую обратную связь.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"en":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"he":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sr":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"hu":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pl":{"name":"GpxPod","summary":"Wyświetla, analizuje, porównuje i udostępnia utworzone pliki GPS","description":"# Aplikacja GpxPod Nextcloud\n\nWyświetla, analizuje, porównuje i udostępnia utworzone pliki GPS.\n\n🌍 Pomóż nam przetłumaczyć tę aplikację w [projekcie GpxPod Crowdin](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 może wyświetlać pliki gpx/kml/tcx/igc/fit\n* 📏 obsługuje systemy miar metrycznych, angielskich i morskich\n* 🗠 rysuje interaktywny wykres dla danych dotyczących wysokości, prędkości, tempa lub innych danych rozszerzonych\n* 🗠 użyj gradientu kolorów linii dla tras ze względu na prędkość, wysokość, tempo lub dowolne inne dane rozszerzone\n* 🗠 pokazuje statystyki trasy\n* 🖻 wyświetla geotagowane zdjęcia\n* 🖧 generuje publiczne linki do wskazanej trasy/katalogu\n* 🗠 może poprawić wysokości trasy, korzystając z danych SRTM\n* ⚖ może dokonać globalnego porównania wielu tras\n* ⚖ może stworzyć wizualne porównanie różnicujących się fragmentów podobnych tras\n* 🀆 umożliwia użytkownikom dodawanie osobistych serwerów kafelkowych map\n* 🖍 pozwala użytkownikowi ręcznie wybrać kolor linii dla każdej z tras\n* 🔒 działa z zaszyfrowanym katalogiem danych (szyfrowanie po stronie serwera)\n* 🍂 z dumą korzysta Leaflet i MapLibre GL\n\nLink do strony aplikacji Nextcloud: https://apps.nextcloud.com/apps/gpxpod\n\n## Instalacja\n\nZobacz szczegóły dotyczące instalacji w [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc)\n\n## Znane problemy\n\n* *OSTRZEŻENIE*, konwersja kml NIE będzie działać z nowymi plikami kml przy użyciu zastrzeżonego znacznika rozszerzenia \"gx:track\".\n\nWszelkie opinie będą mile widziane.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ro":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"da":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"vi":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sv":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ko":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sq":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"bn":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nn":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sl":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# Aplikacija GpxPod za Nextcloud\n\nPrikaz, analiza, primerjava in deljenje GPS sledi.\n\n🌍 Pomagajte pri prevajanju aplikacije na strani [GpxPod Crowdin projekta](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 podpora metričnemu, anglosaškemu in navtičnemu merskemu sistemu\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 deluje s šifriranimi mapami (šifriranje s strani strežnika)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nPovezava do Nextcloud aplikacije : https://apps.nextcloud.com/apps/gpxpod\n\n## Namestitev\n\nPreberite [dokumentacijo](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) za podrobnosti namestitve\n\n## Znane težave\n\n* *OPOZORILO*, pretvorba kml NE bo delovala pri kml datotekah, ki vsebujejo razširjeno značko \"gx:track\".\n\nVsaka povratna informacija je zaželena.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fr":{"name":"GpxPod","summary":"Afficher, analyser, comparer et partager des fichiers de traces GPS","description":"# Application Nextcloud GpxPod\n\nAfficher, analyser, comparer et partager des fichiers de traces GPS.\n\n🌍 Aidez-nous à traduire cette application sur [le project Crowdin Nextcloud Gpxpod](https://crowdin.com/project/gpxpod).\n\nGpxPod :\n\n* 🗺️ peut afficher vos fichiers gpx/kml/tcx/igc/fit\n* 📏 supporte les systèmes de mesure métriques, anglais et nautique\n* 🗠 dessine un graphique interactif pour les données d'altitude, de vitesse, de rythme ou d'une extension\n* 🗠 utilise la couleur de gradient de pour les lignes de traces avec les données de vitesse, altitude, rythme ou d'une extension\n* 🗠 affiche les statistiques des traces\n* 🖻 affiche les images géotaggées\n* 🖧 génère des liens publics vers un fichier/dossier\n* 🗠 peut corriger les altitudes des traces en utilisant les données SRTM\n* ⚖ peut faire une comparaison globale de plusieurs traces\n* ⚖ peut faire une comparaison visuelle de parties divergentes de paires de traces similaires\n* 🀆 permet aux utilisateurs d'ajouter des serveurs personnels de tuiles de carte\n* 🖍️ permet de choisir manuellement la couleur de la ligne pour chaque trace\n* 🔒 fonctionne avec un dossier de données chiffré (chiffrement côté serveur)\n* 🍂 utilise fièrement Leaflet et MapLibre GL\n\nLien vers le site des applications Nextcloud : https://apps.nextcloud.com/apps/gpxpod\n\n## Installation\n\nVoir l' [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) pour les détails sur l'installation\n\n## Problèmes connus\n\n* *ATTENTION*, la conversion kml ne fonctionnera PAS avec les fichiers kml récents utilisant le tag propriétaire \"gx:track\".\n\nTout retour sera apprécié.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"uk":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fa":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"id":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fi":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sk":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# Aplikácia GpxPod pre Nextcloud\n\nZobrazuje, analyzuje, porovnáva a zdieľa súbory záznamov z GPS.\n\n🌍 Pomôžte nám preložiť túto aplikáciu na [GpxPod Crowdin project](https://crowdin.com/project/gpxpod) (slovenčina by Peter Michnica).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 podporuje metrické, anglické a námorné merné systémy\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 funguje so šifrovaným priečinkom (šifrovanie na strane servera)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nOdkaz na webovú stránku aplikácie Nextcloud: https://apps.nextcloud.com/gpxpod\n\n## Inštalácia\n\nPozrite si [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) pre detaily inštalácie\n\n## Známe problémy\n\n* *UPOZORNENIE*: kml konverzie NEBUDÚ pracovať s najnovšími kml súbormi používajúcimi proprietárne rozširujúce značky \"gx:track\".\n\nOcením akúkoľvek spätnú väzbu.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"el":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# Εφαρμογή GpxPod Nextcloud\n\nΕμφάνιση, ανάλυση, σύγκριση και κοινή χρήση αρχείων GPS.\n\n🌍 Βοηθήστε μας να μεταφράσουμε αυτή την εφαρμογή στο [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 υποστηρίζει μετρικά, αγγλικά και ναυτικά συστήματα μέτρησης\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 λειτουργεί με κρυπτογραφημένο φάκελο δεδομένων (κρυπτογράφηση στο διακομιστή)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nΣύνδεσμος στη σελίδα εφαρμογών του Nextcloud : https://apps.nextcloud.com/apps/gpxpod\n\n## Εγκατάσταση\n\nΔείτε το [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) για λεπτομέρειες εγκατάστασης\n\n## Γνωστά προβλήματα\n\n* *ΠΡΟΣΟΧΗ*, η μετατροπή kml ΔΕΝ θα λειτουργήσει με πρόσφατα αρχεία kml χρησιμοποιώντας την ιδιόκτητη ετικέτα επέκτασης \"gx: track\".\n\nΟποιοδήποτε σχόλιο για τη βελτίωση της εφαρμογής θα εκτιμηθεί.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"af":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"bg":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ar":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# تطبيق GpxPod على نكست كلاود\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nl":{"name":"GpxPod","summary":"Weergeven, analyseren, vergelijken en delen van Gps-bestanden","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"de":{"name":"GpxPod","summary":"GPS Track-Dateien anzeigen, analysieren, vergleichen und teilen","description":"# GpxPod Nextcloud-Anwendung\n\nAnzeige, Analyse, Vergleich und Freigabe von GPS-Steckendateien.\n\n🌍 Helfen Sie uns, diese App auf [GpxPod Crowdin Projekt](https://crowdin.com/project/gpxpod) zu übersetzen.\n\nGpxPod:\n\n* 🗺️ kann Ihre gpx/kml/tcx/igc/fit Dateien anzeigen\n* 📏 unterstützt metrische, englische und nautische Messsysteme\n* 🗠 zeichnet interaktive Diagramme für Höhe, Geschwindigkeit, Tempo oder beliebige Erweiterungsdaten\n* 🗠 verwendeter Farbverlauf für Streckenlinien mit Geschwindigkeit, Steigung, Tempo oder beliebigen Erweiterungsdaten\n* Trackstatistik anzeigen\n* 🖻 zeigt mit Geotags versehene Bilder\n* 🖧 generiert öffentliche Links, die auf einen Track/Ordner verweisen\n* 🗠 kann die Höhenlage von Strecken anhand von SRTM-Daten korrigieren\n* ⚖ kann einen globalen Vergleich zwischen mehreren Strecken durchführen\n* ⚖ kann einen visuellen Paarvergleich von unterschiedlichen Teilen ähnlicher Strecken durchführen\n* 🀆 Erlaubt Benutzern persönliche Karten-Server hinzuzufügen\n* 🖍️ erlaubt es dem Benutzer, für jeden Track die Linienfarbe manuell zu wählen\n* 🔒 Funktioniert auch mit verschlüsseltem Datenordner (serverseitige Verschlüsselung)\n* 🍂 verwendet mit Stolz Leaflet und MapLibre GL\n\nLink zur Webseite der Nextcloud App : https://apps.nextcloud.com/apps/gpxpod\n\n## Installation\n\nSiehe [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) für Installationsdetails\n\n## Bekannte Probleme\n\n* *WARNUNG*, die kml-Konvertierung funktioniert NICHT mit aktuellen kml-Dateien unter Verwendung des proprietären Tags der \"gx:track\"-Erweiterung.\n\nWir freuen uns über jede Rückmeldung.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"es":{"name":"GpxPod","summary":"Muestra, analiza, compara y comparte archivos de pistas GPS","description":"# Aplicación GpxPod para Nextcloud\n\nMuestra, analiza, compara y comparte archivos de pistas GPS.\n\n🌍 Ayúdanos a traducir esta aplicación en el [proyecto de GpxPod en Crowdin](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 puede mostrar tus archivos gpx/kml/tcx/igc/fit\n* 📏 soporta los sistemas métrico, anglosajón y náutico\n* 🗠 dibuja gráficos interactivos para datos de elevación, velocidad, ritmo o cualquier extensión\n* 🗠 usa gradientes de color para las líneas de las pistas con datos de velocidad, elevación, ritmo o cualquier extensión\n* 🗠 ofrece estadísticas de la pista\n* 🖻 muestra imágenes geolocalizadas\n* 🖧 general enlaces públicos que apuntan a una pista/carpeta\n* 🗠 puede corregir la elevación de la spistas usando datos SRTM\n* ⚖ puede hacer comparaciones globales de varias pistas\n* ⚖ puede comparar visualmente partes divergentes de pistas similares\n* 🀆 permite que los usuarios añadan servidores de teselas personales\n* 🖍 permite que los usuarios escojan manualmente el color de la línea para cada pista\n* 🔒 funciona con carpetas de datos cifrados (cifrado del lado del servidor)\n* 🍂 usa con orgullo Leaflet y MapLibre GL\n\nEnlace al sitio web de aplicación de Nextcloud : https://apps.nextcloud.com/apps/gpxpod\n\n## Instalación\n\nConsulta la [Documentación de Administración](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) para los detalles de la instalación\n\n## Incidencias conocidas\n\n* *ADVERTENCIA*, la conversión kml NO funcionará con archivos kml recientes que usen la etiqueta de extensión propietaria «gx:track».\n\nSe agradece cualquier comentario.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"gl":{"name":"GpxPod","summary":"Amosa, analiza, compara e comparte ficheiros de trazados GPS","description":"# Aplicación GpxPod para Nextcloud\n\nAmosa, analiza, compara e comparte ficheiros de trazados GPS.\n\n🌍 Axúdenos a traducir esta aplicación no [proxecto GpxPod en Crowdin](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 Pode amosar os seus ficheiros gpx/kml/tcx/igc/fit\n* 📏 Admite os sistemas de medida métrica, inglesa e náutica\n* 🗠 Debuxa gráficos interactivos de elevación, velocidade, ritmo ou calquera dato de extensión\n* 🗠 Usa gradientes de cor para as liñas de trazado con velocidade, elevación, ritmo ou calquera dato de extensión\n* 🗠 Amosa estatísticas do trazado\n* 🖻 Amosa imaxes xeolocalizadas\n* 🖧 Xera ligazóns públicas apuntando a un trazado/cartafol\n* 🗠 Pode corrixir a elevación do trazado empregando datos SRTM\n* ⚖ Pode facer unha comparación global de varios trazados\n* ⚖ Pode facer comparacións visuais por pares de partes diverxentes de trazados semellantes\n* 🀆 Permite aos usuarios engadir servidores de teselas de mapas persoais\n* 🖍 Permite ao usuario escoller manualmente a cor da liña para cada trazado\n* 🔒 Funciona con cartafoles de datos cifrados (cifrado do lado do servidor)\n* 🍂 Congratulámonos de empregar Leaflet e MapLibre GL\n\nLigazón ao sitio web da aplicación de Nextcloud: https://apps.nextcloud.com/apps/gpxpod\n\n## Instalación\n\nConsulte a [Documentación de administración](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) para ver detalles da instalación\n\n## Incidencias coñecidas\n\n* _ADVERTENCIA_, a conversión kml NON funcionará con ficheiros kml recentes que empregan a etiqueta de extensión «gx:track» propietaria.\n\nCalquera opinión será ben recibida.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"tr":{"name":"GpxPod","summary":"Display, analyse, compare and share GPS track files","description":"# GpxPod Nextcloud uygulaması\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hant":{"name":"GpxPod","summary":"顯示、分析、比較和分享 GPS 轨迹文檔","description":"# GpxPod Nextcloud application\n\nDisplay, analyse, compare and share GPS track files.\n\n🌍 Help us to translate this app on [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 supports metric, english and nautical measure systems\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 works with encrypted data folder (server side encryption)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink to Nextcloud application website : https://apps.nextcloud.com/apps/gpxpod\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) for installation details\n\n## Known issues\n\n* *WARNING*, kml conversion will NOT work with recent kml files using the proprietary \"gx:track\" extension tag.\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hans":{"name":"GpxPod","summary":"显示、分析、比较和共享 GPS 轨迹文件","description":"# GpxPod Nextcloud 应用程序\n\n显示、分析、比较和共享 GPS 轨迹文件。\n\n🌍 帮助我们在 [GpxPod Crowdin 项目](https://crowdin.com/project/gpxpod)上翻译这个应用程序。\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 支持公制、英制和航海测量系统\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 可以使用加密数据文件夹 (服务器端加密)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\n链接到Nextcloud应用程序网站： https://apps.nextcloud.com/apps/gpxpod\n\n## 安装\n\n请参阅 [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) 以了解安装详情\n\n## 已知问题\n\n* *警告*，kml 转换将不适用于使用 \"gx:track\" 专用扩展标签的较新的 kml 文件。\n\nAny feedback will be appreciated.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt-br":{"name":"GpxPod","summary":"Exiba, analise, compare e compartilhe arquivos de trilha de GPS","description":"# Aplicação GpxPod Nextcloud\n\nExiba, analise, compare e compartilhe arquivos de trilhas de GPS.\n\n🌍 Ajude-nos a traduzir este aplicativo em [GpxPod Crowdin project](https://crowdin.com/project/gpxpod).\n\nGpxPod:\n\n* 🗺 can display your gpx/kml/tcx/igc/fit files\n* 📏 suporta sistemas de medidas métricas, inglesas e náuticas\n* 🗠 draws interactive chart for elevation, speed, pace or any extension data\n* 🗠 use line gradient color for track lines with speed, elevation, pace or any extension data\n* 🗠 shows track statistics\n* 🖻 displays geotagged pictures\n* 🖧 generates public links pointing to a track/folder\n* 🗠 can correct tracks elevations using SRTM data\n* ⚖ can make global comparison of multiple tracks\n* ⚖ can make visual pair comparison of divergent parts of similar tracks\n* 🀆 allows users to add personal map tile servers\n* 🖍 allows user to manually choose line color for each track\n* 🔒 funciona com pasta de dados criptografados (criptografia do lado do servidor)\n* 🍂 proudly uses Leaflet and MapLibre GL\n\nLink para o site do aplicativo Nextcloud: https://apps.nextcloud.com/apps/gpxpod\n\n## Instalar\n\nVeja o [AdminDoc](https://gitlab.com/eneiluj/gpxpod-oc/wikis/admindoc) para detalhes de instalação\n\n## Problemas conhecidos\n\n* *AVISO*, a conversão kml NÃO funcionará com arquivos kml recentes que usam a tag de extensão proprietária \"gx: track\".\n\nTodos os comentários serão apreciados.\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"}},"isFeatured":false,"authors":[{"name":"Julien Veyssier (@julien-nc)","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9722222222222222,"ratingNumRecent":0,"ratingNumOverall":18,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhAaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMDMxMTA1MTI2WhcNMjcwMjA2MTA1MTI2WjARMQ8wDQYD\nVQQDDAZncHhwb2QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCq9p5l\nzNzR98l/xPgrplWrGQBhF6aQSLpnIyCdLAYKk+CmXn47W1pHh5CRYyCCyB8YPBBG\nTwbpP69pP1updfK2vUt+ShYmCXLxOLB3qEdhnwgqFfwpC48Ocev9d6XcacYp7jwu\nRNtv0ocMkm5o0TWWupcutQWkmqzCVq+OkrqM0xrf3mfPymuM6edEREshukoL86Ei\ngTuMMGT0XO99LikszvdceNQYEATix1MHzSVhkE7jHCNBXb95H6nQGr0v7R1MIbrI\nGFlgqxwwNNKwBFNfPMWZVnKwz9hoIwW6WOuu7ntwVcPqwB/gUsRZJTu7EjIW0trX\nnhA6xLlc4X66W1sdUCkJOxsV+Y21akz6wynI0SzIfjALLI2Ls4QWrPM8GOX8nPVM\nm+Y5WXzqLJScdWYoefFJKS7kxwUJRewREB9ykCG5OdDubV+Iu/6jh6HWx3h4p3ih\nqkDypPWoxpfLgA8VZkLD1RRKGkRa858QBGdF/RHbYT3JfLEp9l9gJVKZE/yw7HKk\nwsZ/T6CMpLyorpd1XWtp2wLX8lr3pp9ecVDOdAMSqD2thDMDsZA82JrJ/vITwkCF\nBlqtDZmT0UnpxYNYTfYBam5Cd00jsqCt+Hr+QkODNe8Yae9c/D0zE3h2Vt7g9H+W\n7Ei+rF5nDYTBAApoETxK7+aUZpycBf3THAJOcwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBbCGAEwg3M5QJDMnZgu0zNOH2f9bamAS9ksyCZqzLoeQic1W7GYYe9NqAi\n7lO5jXRZpTN4L133IUQPtxCxuDooD2vFmCne92tLxJbc7uqlSVfhL8uMVOlnrA99\nKTAhySTZU5so8/OibrngnBmcdWwbhaWoCQ671M8aXM1wg2FVYDqB2GP3RvbpW11L\nOc+4tfh4mO4TwXygf7KYMOJyJW8mNNY7PZ+XW2Qe3vSXR3DuN8H8fgMh5wppXPJf\nE0+yNs42hwFjSojtI8BCb0s5DTleaakpDo8HQGNzEXP8tBlUYudtjzdP0jxFXbFa\nsT9pcMdeJ0/t5HqJSx1EjUCLYS4y\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"stepupauth","categories":["security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SUNET/nextcloud-stepupauth/issues","website":"https://github.com/SUNET/nextcloud-stepupauth","created":"2024-01-19T12:22:32.484478Z","lastModified":"2026-10-11T10:15:26.173765Z","releases":[{"version":"0.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SUNET/nextcloud-stepupauth/releases/download/v0.2.4/stepupauth-0.2.4.tar.gz","created":"2026-10-11T10:15:26.169938Z","licenses":["agpl"],"lastModified":"2026-10-11T10:15:26.220771Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"EtUuQ56yzre3Grh9IClUjbzdL1uQsZexTfFZSAiAvVKTL30lV+kRZ5GAiYuONVTBgs5E5PvoKHMHQQh6dE7pLl0aaV3rY11q9E1Xt7VwtJ56I5hInOvK1U4tulUJjqJ0LJFmTdS5eV8KygKs1LQCfyIshwzGUOV+R3Ur9yxIfSIyYLS1+/P4/cV3sVzmLgUmYbXkF0i4ITAv0VbcVj8NdRDViu6g31GcPAnTOXqLKLAIP/8vUiR6DEcGdYNn9Gno9Zt7mWWuTBYaxY2604bu71qHQ60Twq2Nqx0GWlGuHJMsOqHKObd1RAybzDYerJH+jOcYrhauzlt/pQUhLssmwOTJmpuVvtbP83M1cUXso6ADp0psioM7m/1KVuPL9PoSHZgqHBgESjqrFQR+b2J9RBuis2KaJzhw0VMLbhPqKzK/PAW+tuvpe1dIEppXXZMLLwV8+LC9CtPTLFfaJnFK064obU6MPwxfqdF0nYt+hroZavesLgdIDn/O50eXujeKpMeABWQlwJMLoMU9k7su6qUj/deYrwlKlyyZXbu5eqynTWybpu0A5ysr02nGD99/HKt0x+tXV8Z961NTSA1gRBDLnkjjrwcX0LFyUeNhZv72nnaEvuU9V0j5YjR2GVX8KfgqmqHn5iXI5u650e0IzV2M2Y8bDNIzF8ZSXXqXPZo=","translations":{"en":{"changelog":"- Extend Nextcloud compatibility to versions 25–35.\n- Correct the manifest element order to satisfy the App Store schema.\n- Handle users without a backend and SAML data without an MFA mapping safely.\n- Skip step-up only when `user_saml` explicitly reports the mapped MFA value `1`.\n- Remove the unused application-configuration dependency from the login listener.\n- Add isolated authentication regression tests against the Nextcloud public API.\n- Package only release files, with reproducible archive metadata.\n- Pin the signing image to Nextcloud 35.0.1 and track its patch updates with Renovate.\n- Make signing wait for readiness and clean up its temporary container on failure.\n\nThis release has no bundled PHP or JavaScript dependencies. Composer packages are\ndevelopment-only and are excluded from release archives. All 15 listener tests\npass against the Nextcloud 25.0.9 and 35.0.1 public APIs on PHP 8.4. Automated\nlistener tests do not replace end-to-end SSO/MFA checks on a Nextcloud deployment."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Step Up Auth","summary":"Trigger Two Factor Auth","description":"The Step Auth App allows SSO accounts to validate a second factor."}},"isFeatured":false,"authors":[{"name":"Micke Nordin","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhJGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMxMjExMDg0MzMwWhcNMzQwMzE4MDg0MzMwWjAVMRMwEQYD\nVQQDDApzdGVwdXBhdXRoMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\no+xBgTZ4AnmlfTVhro582jt/GYsVW5wckIEEiMXsUgw/xe6vUczUcWDbz+sIwMvO\nDcqqjbblyXhFF9N7YWnS11LZj24BBhSj6vgG88ycuIaVz9xAJMFTnG3lEgmw2Kkc\nip4+krxX3gzvh+NbXWahs3Tgfox+s4XiBfPv4N36cIZLLzLAPHmg789AQKWapmZQ\nIrm+AqtTHlbMt+HfjEXw1sioDWeYheiGez9gvuHxmnwzBQykTbHw5sFrzGfarCJA\nIAtAEQuliZ+yZDNV1AD0c6x7GsiV00ZJ8KrzYXMci/EUK9WziLQbIlHBK2199Jfz\npFZpTnOk/qHQQFzMkq6X73OyQ93kEEAq1BbWhj+wXMLjfEe5+lbnk9VX/RO0XEM7\nowGkt8TFCjREYET34kRqtP3reVTE0+abBkj7AaOaTF86iI7fSBTZT1wfRpSMzQPq\nS7CIeOdyV0SHenH3sx6ETQ1JQD2pdQSCh3swDVp4aHyBUFxxE/HfIlk2IHMg6geI\n2gHezJHBsDgbiGmisgRse7Vm77fzIG6l+0vFAn7eLhx6t5/2G2TqeWRXOzJPlDih\nX0HjHyl+YiF8GXOM9HPoViwR7C8SN/Bqcp2KJmAzhc1rCVM9tiFYai98jxEV7NIx\nNFMPZFkQOx3keoQU0hE+D9UW54mniKQqj9P1HamTL4sCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAAPMtEnZvRmsM+KLZ9BnYxHwpGP+lXHTEW7fsZ64iHUlTIJMf3OaR\nGT3LT8zsF+LSVuyB4q8vSmGbc7j4/sPCSWjcvT6vknYQNdnoGmaeJDhwYxNJNdb0\n2Kr9Etnpgd/Qa7RHe9xZceEhvyuwbaE7OFKV95yknzj4L7B5kirA1u+HuBy8KHms\n/yfekpwlSq7C2RTOCrCltLNu2yvvlxPEzV3+KRiqggVwPO6JbroH6w0JGvSo6B8V\nmai6NbO+WC7gIIcrChZ/865hIBhvO70fNVTy6JntpslfnJgVhBoklnmSoQHnWlc2\n+14jS9pnCBskeEVnY1/Q6fllm/cDD8sSpg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sefaria_dashboard","categories":["dashboard"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/bmschwa/sefaria-nextcloud-widget/issues","website":"https://github.com/bmschwa/sefaria-nextcloud-widget","created":"2026-09-22T20:05:32.891186Z","lastModified":"2026-09-23T17:52:58.392706Z","releases":[{"version":"0.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bmschwa/sefaria-nextcloud-widget/releases/download/main-eb34df2f6d2a/sefaria_dashboard-0.2.2.tar.gz","created":"2026-09-23T17:52:58.374048Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-23T17:52:58.452354Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"QiYeybAehhLoGGnWcK7hd0tA4/mRLFyzMfW9OzgtapxCVrOpWZy8X1l1EFP6n0yBLc8sKROI05cPg4EMLYt6f8iAidTguDrhIzoBvsAiLKSleynw4lQJZAGBQkPJ71fxe5vvzpplKRDhKH6SZ7s+9K6opEvA1+GDiEsNDkLT2MLgocNFoU1rjdTBVpG8F+mWMToVa4BBn7MDPZi7hDa1VUCwnUesuL/5KJDpEOql1xstEFwnZVfmIi3uyIRuywYeQj+YqTCBRTwJa1J8r7kKKMX/LRil5EmtltAf8GAKwLs5PDpZvhQOd9gEmDt7Ylyr4Nm7O9PRM3h8whZtvzs4mRf41EUzxEsTajJa9d/RAzADGlzQmPAIm9lCnXtUQmpmDMlfpHGiCsc776qbocWBVbZyhJ8jKfwvvDQYDaVNi1Qo10GV7/I6JIcd5sPTvVkR5UPk5pTFtLbpmuIIZv1iNYYHgLbS7aORI6ugjC4evmtrndHtdIbVBH7RiVd+UmsIAXnKPzO6XnWhkF77gLPxlQZ/Bc/Wygs9EwUykZ8EI1xpxXu1eh+tAFlXA69u2OyJ7SU1KWakYZ+zROUDZmQZRiNIT/93OLQdGzk47FedjSaqnSbct+tNZf2CboDQQzMX8jlPVNrHbRrhOe7EVASipBk8dr/Zh9eauvzfBMeHXCE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bmschwa/sefaria-nextcloud-widget/releases/download/main-81f08472ac57/sefaria_dashboard-0.2.1.tar.gz","created":"2026-09-22T22:28:44.847082Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-22T22:28:45.628140Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"FrNumo/KLiaERj3nQ2gq0p/AfeyXbPujq5IaTwVkAwJQcT226gSox3ZNazH4t+sTfyGYg62+OrU+F3MjCNpjQ6C5EiHBVWg+UFkxckAq6xGbhaftAq+XQJNPu0WizGeqQw0/Yfnt+kd5SAF4mzlHTX43v62HyOLEJCPbkb2jBCRKjv5bQR1auCqx2NYM34f7hIgdGSu432SHSGRa72dD8Lu5zfsrVzC7vzLCTG69wbYZ6wAXKN18O4l1gTxgAL1qavNMtzSOdxxMWp8eThbQVEUdWIkgzDE0ng1Pwe2+1W4AhiIkNxnj/1qYKRZIm4M8VdEmuSYpSSINgIZWaXTh3I0E1ugp5rz7151cZRZbgFYGhJwZ6eS4nNngTo9JZSRwKHpCRTra0+4LyGSPSpQ4wmF0iFW58nEZkUMuoS4j2rgVX4otXmnvxL3BZVQt1BLTIjw2XddhZL0UMjfly9KMXmhgtqS5RgRpErleVeDMpJf9YDiVSgg+SRj6P+8bAtJAswgjyMKgsr3Yf3Tvb6spHfgRWNjSn/WuI2OCXqpQDArQ4m5ZIMcpz4O53zFkP1mBW/bccPvmaKvc/aNujkCSqDJCCiTuMnVd+Dag34e2ZtarjJzvml8yF7xRueo1d1OYGxpLA1B1wmaosfwfAuF4BV3KoTTdDItfbsBpwe+lGAc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bmschwa/sefaria-nextcloud-widget/releases/download/main-00ddf9a7537d/sefaria_dashboard-0.2.0.tar.gz","created":"2026-09-22T20:58:59.183181Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-22T20:58:59.204699Z","isNightly":true,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"T4xqARJYPJrufAY6s/EzVZ2qpoXVtBqU+PInqYozRY21N2DCXHSzHXnC0qjeLZTtud6UIBMWBIihZwjuZnujobY7/pFeVJY+QW6DrRczpvUki1ucw8+u92UfmXUjEncNQ+XDT7Svrt9kyUVjGxOZoY0T/WKqEP9ALhhMtMEk9RzXBkeXYCGqn6jZivsSYcsNriFkQlvqZVg7ikE1/+hTiy/JoSqMXXdKQZ9zthhJZeyTgY9TZdyLMWfvCaUrjMN+nq7i4bcfDxeECvJHd1c3CVe/rPx2m+Toqambl6MQsRaHc0QUjmsKsYbuXPCTNFeBnTO8qN7/U096ngZBm6tTHHXqqzTMUL9JJ7kEMGU6qRWKSaJ79dcutXwRb8duvJYRFg9kKWd4H/j9IUI3hQgZhznY41rRQMb78WqCnlzfA50q1e/7PfYRMGYgrs3dUcAGIXuDV4g8BcROHVORCOItVqPIVusGrbPFOk6v2Pymxdxnd+O2IdRa+eCdCnnUxTTPyjBstF8/oYtzi4IOZosF9/PuQMKMksjmlswyEsPyeMdE/ZLb/6QUwPdPSrrfDQgwzRNYLlshQ82Tc/RFXjOCaCbFhH+qgqNyvBPQZTASJq3Z6VK65AUdooJaPPfP/1G6EBB1ovXvy5+hLqHOOW0msKxy3Lgq0SJYS59O7yqm2xs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Jtc2Nod2Evc2VmYXJpYS1uZXh0Y2xvdWQtd2lkZ2V0L3JlZnMvaGVhZHMvdjJfMi9hcHBpbmZvL3NjcmVlbnNob3QuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Sefaria Dashboard","summary":"Jewish learning schedules from Sefaria","description":"Shows Jewish learning schedules from [Sefaria](https://help.sefaria.org/hc/en-us/articles/17388247452956-What-is-Sefaria)."}},"isFeatured":false,"authors":[{"name":"bmschwa","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhQZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE2MTMxMjA4WhcNMzYxMjIyMTMxMjA4WjAcMRowGAYD\nVQQDDBFzZWZhcmlhX2Rhc2hib2FyZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBALsvtCRRfqf6Zbagpf21OoMhBw7THmfM33llkYpnNTWvdtPFlr54waPM\nLhohKGTfrRstjfyQNR7G9iMX3hAumqeB/eCYIULRc81G5wEUiQTE/uCLqlVuSVD/\nj2gQOEONvEh3FD3cunb2YfLUZhM03FZp523n7ns9Bg/FXMOBEKwg9id0JkkMck90\nbAezbyyvwTwTK/s6jXLW5eejodxPxOLvBiBuDjVhEADAfKmuytffTC0SffLqx7v8\nyXHXnCNJaWHvwVHTEYg6a1zdbC7z0hPbkKmf3lkgWxPy3fIB1bf70XuabA4C4aZY\n0bdGwXFY0pc0WvCmT5Y0FYRGoo31oX6SPvr6gCJTVVK3DwMlVimbLW51MtIKiSEy\nc1xb/YPdIt4LbCQZe4n+lTrZ2Y2reOvAeSVab/9ytgMjGQlzJFNhUVKJUO5TFStB\ngpc0VfEjPTw+GhIu+Fj07EaXmzqNskBP+LWTBrA142j0Yf7K9BnMBGmdRwP6cA4p\naXHU9FvOVvYplmFiuXKWrv2R5xeLqg5BtNxnTA4Lw2sVJNSQrJim11DY18w0HMQ6\n5LZH93vSp9tiZsaDDMZYcwMv5Dx93dt5AIaJezTOo23HFarZYAPk+IdJorICU67Y\nWRnN0TtBn20veK7o7UqXzjyKop/9D1c4IUGMJXs33Aj6cSu5AmzBAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAFHulkxbkUGCotP1U4her/hlBTpOflMUEkb3UsNMQaZ2\n9LsaeHzwxn7DUR2BG4vwxv260QVpU3WAlowoT7NerTb91UZzxasd/6SUMWF8oBIB\ndOA+j75k1BoxZ4jBQTyc95bHCF0P/fzYQyd5vUNXeywpeuP5mtbUqCUFOtjjeTI1\nHe4tBmm4FmLOXAw8L/993WMhh9IETHBHDaYYCTMm2A2Oysem/VwTd3+sS3wy4Be6\nos3mGQ7mlQ29u2gR7JD8E7EHOF/sjeheQd6eC+GQaBRa1/KNnb4vjryyuEbUT8pR\nKSh3UUFOMmz9CYOaBApisnF6l5hKGjs2/cfr4DegilM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"mediafetch","categories":["multimedia","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Happyfeet01/mediafetch/issues","website":"https://github.com/Happyfeet01/mediafetch","created":"2026-08-26T16:41:26.407662Z","lastModified":"2026-10-21T07:34:10.610323Z","releases":[{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/mediafetch/releases/download/v2.0.1/mediafetch-2.0.1.tar.gz","created":"2026-10-21T07:34:10.599698Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T07:34:10.647460Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"Kpjs6O9EKi40LOA9UUic2nCaeCp8dopF7Vg4khJ1LA5WGYD6/POSQwX5FdgVCzHtzEYjMAKlii8oYyjBndzCc2Ue4XugKh40nRha9N68aUYhaoI8rQZcEOwnIYhYfJz78f7zvSKq5BUc8VXLu77PQVQxbECRb1mekHtWw+borPukezR8BT+KOct1frODDnIp3WG1XXxG6EA+VaTyMh0sdSzd7wX5tAGz41QBpOkRF6F57kl3saDR/xr8Fna3wz0eReyueyPs/Meg/uGHioJ6m8DLDtPuBoKBJfJBqhBCuTnz7QKKNyiqI0zW3qYZudhvPWOnfs4XotOmrrp6g8iEM275RMnA+ZKWRyn4PjxBWRZctI5YA1ooJNS3soy7nt9PFsGEpwFM7DpqzIIRmILbdVTVHFSwQL+khdGRvjHFEr1aL+9qqU30fViCAwAPM642Fc+oDxHMNSI8enn2U5t94ViB/q2w7s7O9sbLwnqlFoNPQhF0gKYgXRBwaVxqpcOqC6UWC1T6CKezET3UuahyFQaE0J7sAamLOvTFQBxKzy+28EXz5zQzvxdAlFR8vsJHXuQ53VnvnSW8OWF+AIF8aSLACwbXh337IzI+nrgbRs0hVjjSjXw/5RPcGtSaa2BlSC/rrS4VZcGzM3u12My326jpeqSt398GFdlxWwRR0N4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/mediafetch/releases/download/v2.0.0/mediafetch-2.0.0.tar.gz","created":"2026-10-14T14:33:12.892978Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T14:33:12.937735Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Q5hO65Z5BHHgK1f5bSYqtgsahUjWQKYUsDDNIjlXFuU35yvjGmiia3eq8se6h5SAdpkK4H8JPHyBUXKUSlDakyQR4Bja1a4WDBLYbhTxYPYy1dN/WcF5Vo97QuarQQjYjVVlNBAA7TRping9+Tu4gRP2QsuVeH+pGObHmMZs41Q6fh4Nx7EEnibQ8LFZqxhTwFaLKDvOUkBVJKA4BNzrWsZOTFuJspvtjL+o5dIUXpg9UvawCeAcuLlEtMqT8Kdo0sE1uDlGrm3TnH71TgomAw+NleArn2xBKBTqLFEPXVfSz16sMYDmeBsQMrR/N6oUfPrAMKhaFWO8NfCot0kjckMDGfiZ/mcetmhsyOt7t5J3aUHQgoRveXwjY5VAhEP0uUp3T1LabBJPC6+1Qa4GOu1SYX4DFfxScorgw9nWjcVDViyAg/HB5d4/mbOaW+ym+MnwCceEv3P/HSx5ftGcvp/9HC+q3/VBOB0i7MqDguFGs1r4NwCa2iAmVaCyrF8zmm9JPZtNfzj6J7hDcuHOKKgF3iWWJn/aXOppvFDS4whMsXJ3dBdMIOP+Wuro9jWw5k3lGxsbZttvVdsswakDwcKs8JSv3HSkO+T/09VuJUWdA3I5Wdv0G6NRXq3mLKKGx84I01WkXZp9D8xkLmWmHFn0MkiKlkCY9nQEU1/lx74=","translations":{"en":{"changelog":"### Added\n\n- Graphical yt-dlp settings assistant for audio and video quality, MP3 conversion, embedded metadata and thumbnails, subtitles, playlists, rate limits and filename templates.\n- Per-download profiles: personal settings, YouTube video, video playlist, music track, music album and music playlist. Profiles do not overwrite saved personal settings.\n- Internet Archive and Academic Torrents as optional torrent search sources alongside existing providers; neutral third-party-content disclaimer.\n- Personal aria2 setting to stop seeding after a torrent finishes (`seed-time=0`); uploads while downloading may still occur.\n- German and English interface coverage for navigation, search, download views, admin/personal settings and new controls.\n- Regression tests for search-provider data passing, localized UI, yt-dlp profiles and metadata rule validation.\n\n### Changed\n\n- Mobile-friendly Nextcloud settings and simplified download form: link → destination folder → optional preset → Start download.\n- The advanced yt-dlp option editor is collapsible and only shows options absent from the graphical assistant; saved options are preserved when switching views.\n- Artist/title parsing (`parse-metadata`) has its own explained field, separate from the output filename template.\n- Legacy aria2 seed options now use the valid `seed-time` and `seed-ratio` keys.\n\n### Fixed\n\n- Resolved blank main page caused by improperly encoded search-provider JSON in the HTML template.\n- Corrected Academic Torrents AppDataFactory resolution and Internet Archive query-field encoding.\n- Prevented empty value-taking yt-dlp flags from swallowing subsequent arguments and kept `audio-quality=0` intact.\n- Validated `parse-metadata` syntax before saving/starting downloads with actionable errors.\n- Fixed Safari iPhone input auto-zoom by using at least 16px text on media URL fields.\n- Preserved selected per-download profiles for redownloads and saved personal choices when no override is selected.\n\n### Compatibility\n\n- Nextcloud 32–35 and PHP 8.2–8.5 (subject to each Nextcloud release's own PHP requirements).\n- Requires aria2 and yt-dlp; ffmpeg is needed for audio/video post-processing.\n- Academic Torrents search additionally requires PHP XMLReader."}},"signatureDigest":"sha512"},{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/mediafetch/releases/download/v1.1.3/mediafetch-1.1.3.tar.gz","created":"2026-10-03T18:28:20.851336Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T18:28:20.892336Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DB9JqHYBhUqlvPYmg+6Zu5xFrll+zRXTlQGm5QpT5vbC6ZKa2M++OS08Wtn9V0BEhqrOd8jbqSjX4qwHUtrdTkHsW6XCvjenldXEiPjWjSa9JWARLdsSX4T51Y5NZtkBF7DqUDd08NtxwxT3c301IrYocUoe8FYecVQm/fUJEA26+fJ3xgX0jZPRiIgcww1aPsmmJ4zGKw5XH2k4EJY4iZHcGcLuPN+oV1iASEBeQfx1MQNeVb09rVv6DMo3il8JiGTbEtYs5QiP06yX//VcXTiaX+yx3z8Y90whiECSoyFBOsvvkJDKghnxEuIRmi0C2Zn2JRoEN6BKGdHpfu+2GNwVqAuJvGilJEktUYHQPWvQ7NCvqsvF86/t5fwFO5StJCYOcNk1RvyMQ77KZ+PXzW5IA7C9jVa8h/eB4kzOXdgzq9YttIC0SRDIALPp1gLY3pbl8U/hmKqhP/yJ7XcheyXIxbz/zM81EJUZZ/o7eQeIpolN7WUMT1lGhUDLV03Gtdq8pBl+bET1qBbs+HkQvTcV3No9nVmMoi0bVF5ZBDdM3yyzjZoXMpQA8ej0x7rwNc6gHibAp4G0tvVuwekehR+6gdCOZHDCH/1fI/YGzh2h0GaRSL035wVISH34Q8XkjjTeRhVMVIXgvOSrcECo3RKUzDAyBAaN/Fv1YQpB+pQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/mediafetch/releases/download/v1.1.2/mediafetch-1.1.2.tar.gz","created":"2026-10-03T17:55:28.380664Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T17:55:28.419994Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EjrAVkWshTQmgMB/WdOvq4F6MiJUnfd5TWsGUt7cV5EQsnZasuYnPktebcuGZbNQvVnM4ZiqFSqdFJa6DNMY+5H0ezCU52qiA/9yHJtvuFXLHDwp3DMw8kyxbZr6IBVJF3NtF/4aTdcdKOrrBsO5rKDn6GaXi4Pkkv7JLr35/+yre3hFnDqMi2SGAzvIyvL3+iYeGpxQkR0ymM4hjs0V+AWYe5hRDsGGRTg+wixDcRvM7TXNDvvfm7Kb/gP9OoAEYAy+eRwDNvUvoHDLuegX3ah5qkKOladMaysVHCA6aw8VeCap9hwrNr/CXFJC999/YS5NldSvZEeHd+NjoVa5+s8Zie6LbfP3ejtgrJyHSaNtg1oMBVvVEHaMHFUFxsmvSkfC0ZXDQ7So7gRWuqYHxs70c1GTht2QestZMKgohV77n2N79VhagM8ILLMXxHyeGbRLqqgOEJHeNXkPDw+WJgpyBz/JEji44T3r9I8X/kXok4k4eYjk74win3keyPBCL3GJEYNH8wOiEAycO9Pb9H2bCaFwcymgxqTOcmdcZW3kZNSDj3f6rDAdZF+gBmafvGBaPQHIflmURLgGvtWhziEAwDM5zsc7oqbUcU31d2KsDfw8A2n4wRzwQIXoSLtdoeEDMSUenVn4NW8UvIifEshKZmaW0ii4TczeiSx8z9g=","translations":{"en":{"changelog":"### Added\n\n- Added a public downloader IP check through the running aria2 daemon, including a timestamp and specific failure diagnostics.\n- Added regression tests for torrent search actions and the IP probe, including CI execution.\n\n### Fixed\n\n- Torrent search download buttons now use the MediaFetch route and correctly submit the selected result's link.\n- Nested button clicks, clipboard actions and HTTP failures are handled correctly.\n- IP checks retain relevant proxy settings while excluding unrelated torrent/file options, and use bounded RPC timeouts."}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/mediafetch/releases/download/v1.1.1/mediafetch-1.1.1.tar.gz","created":"2026-09-18T02:01:03.325948Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-18T02:01:03.460460Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"JzX/Pai0ma3YNg4WqW8i1I/aDb4NkjofX5DB+ZTVhfl6Airb7JMdYTdRS4JvCJwaBboJcfkQ3nTC14IGMHI9ugCralI8ybVAD4H96WCNVmVOG93Bpf3NZsG9HZrW4GRvv5zaml1J3DK1LNRghtd7DJjGRJCkspFZMVy6gHAIuzLrR1relfoi9mu/VEMQO5B5Dw8Ecjrk6mwzCTKZRBS+yJU4R1xGC/3vq5prrXETg/R6SIfkFev79YQ+sqbM+xLF6k5qEYwazLDp548biE5nTXbCQJ6VyXHqub0vHuSCygDGvEzAHsbQwYN4U+frrx+IhmAGCATCQ2LesSDF6atFfqOAFSqNASGZEiIKZybHpHWLMZN8ELQF4Bfq2OzUezASSr7IGROiomesJYmJF9AA5yKsuNUzf20CNlUE2c4KF2kDljNsfzCn6TXrsQ8jliHIOdGx/lHXzJbp3W+/BrAMLTtkQgjjbLt8nB1Z+XsMmeYbb5kD1pNyPftb6Icbumxy3rOAB9Ig0F3Xo6+2VcqelA6k6eucVYiPfqUjbVNfrjvRRKdC3+X5yvmBAL1XfbIB3yu78i7vbEtNt/OJiXWHBbs4l1DhXkzbXopWhm7hacrA/7sxms35f+8yxtmt5782uEX4ImizUOs1ec6101zbB9YKXbGRbn0p+2elvNQATWw=","translations":{"en":{"changelog":"### Changed\n\n- Added Nextcloud 35 to the supported App Store compatibility range while retaining Nextcloud 32–34 support.\n- Added PHP 8.5 to the declared compatibility range while retaining PHP 8.2 support for older supported Nextcloud releases.\n- Expanded CI PHP checks to PHP 8.2, 8.3, 8.4 and 8.5.\n- Verified the existing MediaFetch occ command already uses the Symfony 7-compatible `execute(...): int` signature required by Nextcloud 35.\n- This is a compatibility release; downloader behavior is unchanged from 1.1.0."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"MediaFetch","summary":"Download manager for aria2 and yt-dlp","description":"MediaFetch is a download manager for Nextcloud that combines aria2 and yt-dlp in one web interface. Version 2.0 adds graphical yt-dlp settings, per-download video and music presets, enhanced torrent search and German/English localization.\n\nFeatures include regular HTTP/HTTPS downloads, BitTorrent and magnet downloads through aria2, and media downloads through yt-dlp. Administrators keep control over global downloader settings while every user can configure their own download folders, aria2 options and yt-dlp options.\n\nMediaFetch is based on the original NCDownloader / Net loader project and continues its AGPL-licensed codebase."}},"isFeatured":false,"authors":[{"name":"Happyfeet01","mail":"","homepage":"https://github.com/Happyfeet01"},{"name":"Jiaxin Huang","mail":"","homepage":"https://github.com/shiningw"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhPtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI2MTUwMzMwWhcNMzYxMjAxMTUwMzMwWjAVMRMwEQYD\nVQQDDAptZWRpYWZldGNoMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nlmiYQhgbATx38fwfMAEOL4ZygBEqV53eWmAfGCyvlIbCBtqUgtyiZdxvpvygykGx\ngLh5BQC6YiUeknch19uzYegITJvy34mMmKp4rErUsltldEwRAYfI+AH0K4MHaDDy\n+pHertnXS0qovMte4aObwfeHjmr3lcoohWDm6HxKvCvNoZOXDw0Mw7vjn8WwUvfc\n6nZZ0wq7aa52AtwHPAeX+vknGswsCkCCCKRIcFitnHzw+7eigpRar2kUAsZAb7Dl\n8LIRgz4NNKO+vJFMwDF4/JzK8sEqsVkdBbpPX7vUWjMT3Uuew7jXw+AilvOxVMxc\n4XbnAQ/y/wFZXMAX1/016LXJQhgimPaq3H5ywLAYcB8u3tSbqEkqBaXrELjt3MSm\nXXq735+xr/0+lLlWapEdvN1/XH9NOlSsmCIBVNmzHhLvcQ0fiPnnuRqS5QY5kvPy\nUNdkzBUrStvcN3PhPOTmwTGtVQgmVKLBDk0IEz/eWTqxMhjjNSQlBVW+1dI/WEmX\ndlSf2ZA2n3uU680K8cCSJv1mm9EDvCKVpBUPY3ny0WQIiLN/XoPLHILmi5aVF+Jl\nbUPjD+wshdlsLx0D6lgrXAM7KB3qNzNcnjnkwtAAq4fVDaDE+JH0D/5+v8JUo8Mu\ndxD7eYpcMuBMuHEJlsvZoVf4hRfYIO71KHyU0i2qvFsCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAdr15bWPDW/0lGS7du+T/W44jO59651Ki4kWOIdLmRDgbANbB9E8m\nj6siHjOI2j3taidKTP/BiCNvpOIzdfku5s+Ym4dNKmywTMGCJ1wIMAlqrgEGWT1G\nyNWgzugr1eDv2jU9VstAlyHmP2HrHyo5eeZH6LbbUSs3sdHDodLtjrjifG/8OMYv\nqODjnrrosecdpxgbd5YDHxahfz1hgRGcWRw80x3Pwk59yFeou5bMzf2J4jdTonZF\nuJn6fJ6mr9SnxzoV4HNZvm5RDwVAH6/Y7Fs6pBxSi4YOMCUsjegDCMXDLxBWLm0d\njKYopnP8aekrddjRpctGUmaGEJp/5/zk7Q==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_whatsapp","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2025-02-07T13:50:49.764795Z","lastModified":"2026-08-06T14:44:02.093452Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_whatsapp-v5.0.3.tar.gz","created":"2026-08-06T14:44:02.068356Z","licenses":["agpl"],"lastModified":"2026-08-06T14:44:02.124509Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"QjUP4W8tlSsX7/juoYe/jHj0PoFLQdcHd1+Abw6iXSfwoz12ieaMbFgMeGEx6WYqc2iDIFBRWtJjObd2aK67XUqQLXxSTfSONtk3lvvPku8ifU7puM2Wk14Hmsh8+WW6W6HLREHGfi8oTfgeqftff+QBZ9b7JrYxQcdfPvBQh42Dc8l98KQYXIy/sTvINg/TPZOmnA6m6cxsf/DzPwHAUB67A6PbShfTpsk10QVMBrd/77RMYLWcRhs+PPujDmZDqHDGpEFJO1OaW/huFKAQLJh8v1tfx3w/u2/jBcb1nmkq4MKC9PgyHAAWmddvureuPJQZoyt+BiYMGSjUjEnCGM9qJvGW0TEloGetmUBHV1xOqz50uGTEbN0T2ILt+6wFeqClkuBNQBRQigkOnf5tHaxKWKp46NE4U25YNALWvz1IJZUXq9RThgYtE2lvxhjd72ii7NWeewJTFwnx0IFvx+oezlDq8qyOPqnmA2YP7tp6WKV1gqIQgjGx9otbxvrO/c75ntN0b3Z5RxTa69Znq2/cKw0nB2eFfsngEKQq7I9fd5508p/tgQg0OHh9cNg6UlnZT6m42qSCfiyDu/cqY2/uuSOTYswMKfV/HCx/fUbeBlKoYcR5irOaFKBvZcDTJytax1eWZJqVGQbWWkvqS7BM6u24b/gH2zh0zCGmrjg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX3doYXRzYXBwL3NjcmVlbnNob3RzL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via WhatsApp","summary":"Enable direct sharing of files via WhatsApp, using shared links.","description":"Enable direct sharing of files via WhatsApp, using shared links."}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhKQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwMjA3MTA0MzIyWhcNMzUwNTE2MTA0MzIyWjAhMR8wHQYD\r\nVQQDDBZzb2NpYWxzaGFyaW5nX3doYXRzYXBwMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAmT5u1yL47q+ivWuUo2uKCZNLINOG2p/6iToUjUkBwMIn+u6H\r\nulUqar9352oI7e4tKM1MMW9yn2AIYEtJwv4M2PE6ISvb/0na3u5zIjOjY9jMLE+o\r\nOVeAGYs9OfZRRG3gezCD666xNyrvLt7/Gaam+K1YR6YocPT1wNVmds+FGxJ49DYT\r\nt/xLDhoO8OTuCmtLC2+A70czkwZ5A+j8GTvF1BEMScSkf8Rb3XCk/KqXgWO6TwcH\r\niUcRHbFu6uHfx/Uq50f+aFRIj8Xn3kt8aDuko3TFdhtw6mFg5zQ8Lpwo127sylIT\r\n584m+VQyoRG2sgJohRnkrODtP2lmC27MOMEdjR9zhHyeC4iSVQjCJ3YnzC6/kz0T\r\nVBb7ZR3WABydfGQoxIK6rnCBzdu8P8GHE24i+HQaC7JFdslXH1RHiOE2CYStU0/n\r\nYpHbbeTUjM1Hf4MT33azU44m/ilWZosmXcNTl/5fA/HlAYM+TgZM9Q0k9v1Ot0j1\r\nNfioxhWBbuAAYj8mLIDVTychYpHRKjiCLrcaZFCBY1bOTHBARhXvHy+EYwdCI6OP\r\nJQd3voCWm6BMIICvcOf+77zUtgKLoqbSyopYeZh8wAIaE0DHpyVqJGDQ3/eGvRSQ\r\nA07vvV3ApDGtCD753aZDg7CZ+dSFIZxcbqpobesmvcM43ehtdk6EcHfelLkCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAEyE24pzJKq29cOdR54h6FprU+iqzNTfYVh6U\r\nfmlKE3LXY01AtaZubjaMpsz2QsfdosL+wlBlrSQFuNg7BNWwqwvmmTZqK/IQsC2o\r\n5Cls1JHbmKkDT1W9jT7QvWFsENBuVNakmtY0ll4sAzoNJAfTIbrgSe9OmLKAoYxR\r\nFad7cr6HliDfJCtc49VkNGGyC0jJ7Lrft5pCqbMamy8c+9IV+vlUwSV3W0/t0Ua2\r\nVsucBJfH7irhmkEV2BY7UMqn+zpxtXPusnhUsaEDLwXvF2qbDD3BXrfBYJgGebYK\r\nIen6WOapx4kNl0ybuQtt1DLvrh9B/69INCo4WXE1CerIlX/DGg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_dropbox","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_dropbox/wikis","issueTracker":"https://github.com/nextcloud/integration_dropbox/issues","website":"https://github.com/nextcloud/integration_dropbox","created":"2020-10-23T13:05:17.024990Z","lastModified":"2026-08-05T09:30:34.777008Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_dropbox/releases/download/v6.0.0/integration_dropbox-v6.0.0.tar.gz","created":"2026-08-05T09:30:34.739717Z","licenses":["agpl"],"lastModified":"2026-08-05T09:30:34.894619Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"YbfSO11Zck1ySk/pUY0uqgDS/bXhYr45XyiCPCa3LLZbgtelCqHo0aTvsK8LaN/U9EYPEb5JxvMY5+R7qiwV0F1uqrKb3dTv59gCPDsK/r/WGnMmN2DT89EALRW3S6Tte1b5poN2XeoDo0+qQ3s96B6fZHIP/JLB+hSNlu63saxyMPdm/HZNOMPxYSy4ZJXuvieEtsV6SBF31qt01z9SDFt1PerbtzZGmHtCvUplxUWkDqK4NgflRQUkkjw/EA+0CtR1li+bC0ZXLOcIl2hnkLQZSiZCosmlMo3z3nkVPW1KCam3clUWDYn+NsL4jLwKxhq0YlukzLQWKSmhDoCTqgAtDN+45U+Us5AOkIOdpZWf9gqMHMjfLUtnxwW2yuoSPRoiJ5E0LwisVgAwt1BLVk5aiLN8k5w0cQgFfaIV5yGn3Gdj04/hTh+tx5deaEkAExxqWtV6EyZm59d+thHyqMgmV//1jbU+0M2O7gabjuAE/h9tIkXjjH/ZC6dmjbl44xWJKFMoAIj3h91s51yqJHI7zKlgT2Fl8o/y0eAMgZAgte72/81yBiBcwBL9JIl4y+ZuP9Gb1cU8iuphocvGCVw/B9XYrjuqz2UgzdF+zCM7gF0prLN5vsBPrnxLCwHoPHOzKitzoE9HvDwlEsbeBGouV0fRMounBoH0IvNhJZo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kcm9wYm94L3Jhdy9tYXN0ZXIvaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Dropbox integration","summary":"Import Dropbox data in Nextcloud","description":"Dropbox integration allows you to automatically import your Dropbox files into Nextcloud."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhFYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAxMDIyMjEwNjIzWhcNMzEwMTI4MjEwNjIzWjAeMRwwGgYD\r\nVQQDDBNpbnRlZ3JhdGlvbl9kcm9wYm94MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEAv5QvATZGloQm99XDPjF9MN5ojiqVj5sf9jwDRuKrhdJHfovzkJZJ\r\nb8vIvp+KHojf6Rwff7YYgHEBvgbAsd5hoYQ07dydKvkUkxhkXuE83r72kFqpPBey\r\nkacJ+bTUY7BZivAeTP/TM+8q6k7czyvwXJ+zQ4ybxxz5zyqwzgCMN5PBbXLIm1uE\r\nPRY8kMzhKtwf5z/ymCCvnifYceTajchCWFCBW6oZxuKTaHB5nmbwysCSwZd7d3sB\r\niqQrWn/JFciMed8+ryXDu4BuDXCrvnwloOG873U/GWwnbesKJIKGzWbF9+nfYjn6\r\nBfWqlAr6pra9Q4IctVUtFXnsRcJFVLNozdFKlWDr2voy29NwIIZW/73q0YXD+5rH\r\n2qoS4nBUhhFVHIYuo7JG16PbNrpuOMygra6iKWpwft4wFp4WT59klMIYHF+gSjNg\r\nPurd+bnXQBOjD4VBFz6BV8rR05thmtLH5ZmndH61LXYTmF1rvevHncI698jhB+zc\r\n8CpBjfarE8Lgok3lMu/Ykn3x+hwMPsxq+TVjPj76pwtV3/es8w9my8m/Om9lCy6+\r\ni68rhuamrStgZ9AKwpytwRXi44FI/FWNkcpo8axpnlglYb9Yq7VPpWVVlRQ7ux+O\r\nk1eZZc1ylT01NGrs//terhtCb9XoDH59Od+tQS6RZckvBhDco3cPxLUCAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEAl4fgnETgzR93+2wi4++4ffAmMI+J5fQTwPJRU/bI\r\n6fOtB+ny2e8z38MGtoPOdWRUa7vnwIWsPqMu4+5Km2g0ud95buescDuE4FNcmHYy\r\npn7Eff5J20F51FPO73BVibAJIwaZHTVYRNnAqNc6bubq4TBnZrq4YyUsic3LWH9C\r\ndmhNr8LGgtturDYpSyTMMInSL4Xr5jy+9rA/0P98B5dM5ktp4EP2wZaAmp2q6xBU\r\n8CGecnLqZul81lv1XO0bJr9LQ/3hnyEAGOxiBIkukP+gwUjcZW+cCGwkGpXqXCM/\r\nngKALKIkrnAEkAJpRLpB0AJEBXx8PAh0gySxpwOLu/P++A==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_davc","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_davc","issueTracker":"https://github.com/nextcloud/integration_davc/issues","website":"https://github.com/nextcloud/integration_davc","created":"2026-06-10T23:15:30.996063Z","lastModified":"2026-10-14T20:53:10.135364Z","releases":[{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.2.1/integration_davc-v1.2.1.tar.gz","created":"2026-10-14T20:53:10.124597Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T20:53:10.166769Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"WSSw+ZLWfh01OUL73kRgnK2e5e3/Tmvl3vsqGhoCMnxQHN+nl9CbVaqzHsuae5fSoe/Wmzlnx0mZA2GDH494yg04PklQyU7gP+ohE12Z+UOqxt0aLmhIsLuGTtzsU446r7799T02owzGF768J2w3UOJjfKDMvIxQGlwVitHKDRjWIq5Unu+8mzk+1SGVFvxRff4vtAUprEvekPEWDiZXB0KFCohM4GhJ/bQJNOL+Jp3ljOb+2pStIl7RYbmRXDYgr/GQvQnkDzAN0asmxUgDd3H/ElqySUSezSp9wqdctTyny4gtQcRzIzJAObSeDGbe4n+TN3RiG6p1i54V6GpKveSEWFfbBmllf5iLUO1RUsB9zjCDPZoXXru4dy2sQS6MdbnfZkV+N2X/gzWGxashY1XNEoehrac6VE34ZOqBn8dizR0b0SNeEaSoBR7VL4mlVY0qMVjhzQC8iPGydkfW6Pth2wTEJd1EZson97ELbc5RXgaftxw/TnxEPCxQh6BjcbXCbvncu3yf86A0WBmg0OJgGs0Qgv3PiYCqIqzg0eRsC8P/BPMaRrdB+5F8hWA+MKmS/oKu0+zigswqbP8yLaGAhsQ9+pyjFNBCv+bcmg6jmWqnPwcrXQsZcsSt+PmTDNsjmW9iwIFpKTVwWZZpGTI5gXbYRzeL8Vexj1vgc6w=","translations":{"en":{"changelog":"### Bug Fixes\n\n* don't run composer post install when not in dev mode ([71b7f49](https://github.com/nextcloud/integration_davc/commit/71b7f49b11d356a93397e7680f56a52a7dda0125))\n# [1.2.0](https://github.com/nextcloud/integration_davc/compare/v1.1.0...v1.2.0) (2026-08-31)\n\n\n### Bug Fixes\n\n* add resource id ([db95bb1](https://github.com/nextcloud/integration_davc/commit/db95bb19a358eadd868acddc4a1d2eeaa61af9a7))\n* adjust branding ([70b9f14](https://github.com/nextcloud/integration_davc/commit/70b9f1428ca77a99280a8f9b886e654a4af8a0cd))\n* adjust migrations ([e6915c7](https://github.com/nextcloud/integration_davc/commit/e6915c72aa4184198b87644d596012cc5923f157))\n* adjust naming ([428bd02](https://github.com/nextcloud/integration_davc/commit/428bd02656d316e3487268e2ee01ca7e829d0d0e))\n* adjust service discovery ([5a5514e](https://github.com/nextcloud/integration_davc/commit/5a5514ecf796b825faa6d7691b34511f5b7c8e42))\n* app info ([f155f6f](https://github.com/nextcloud/integration_davc/commit/f155f6f294748d825d2ec49659b73cf7734f12b2))\n* button debounce ([3e4b48f](https://github.com/nextcloud/integration_davc/commit/3e4b48fb0392ef43a09c053d4e1f155f36b3137c))\n* calendar create/modify content type ([033150b](https://github.com/nextcloud/integration_davc/commit/033150bd54432873a5c80d50f57631f25d267d3c))\n* collection properties mutation error ([a4da945](https://github.com/nextcloud/integration_davc/commit/a4da945b913aee9467461432e35b7e03629a06fb))\n* contacts entity id ([bc9d12e](https://github.com/nextcloud/integration_davc/commit/bc9d12ec6744d37b4d7bce6b32312ab489902ba1))\n* dav collections ([9f7d197](https://github.com/nextcloud/integration_davc/commit/9f7d197fc650c69149c56b229c5097dab7251592))\n* default ACL to all when missing and write properties ([abeb53a](https://github.com/nextcloud/integration_davc/commit/abeb53ad4ab30637b513831e64d5b1dc93c1f24b))\n* default empty service path to /.well-known/caldav ([ab7015f](https://github.com/nextcloud/integration_davc/commit/ab7015f88218dfbb413342d14d509cbed37baa02))\n* default permissions, when empty or null ([eb1ee9a](https://github.com/nextcloud/integration_davc/commit/eb1ee9ae8fe12eaf89ee229d5567fe018d038786))\n* **deps:** Fix npm audit ([f2e20c6](https://github.com/nextcloud/integration_davc/commit/f2e20c69b76573aebba308a4a617e994fa20a641))\n* **deps:** Fix npm audit ([6af085a](https://github.com/nextcloud/integration_davc/commit/6af085ad93eabb9af2af5e681be76888194a69fb))\n* **deps:** Fix npm audit ([f497b53](https://github.com/nextcloud/integration_davc/commit/f497b53f50382c73a2d12785c17c756ab375eaae))\n* **deps:** Fix npm audit ([f5a9a2e](https://github.com/nextcloud/integration_davc/commit/f5a9a2e1849ecad57249d020678838192919a24b))\n* **deps:** update dependency @nextcloud/dialogs to v7 ([7b89510](https://github.com/nextcloud/integration_davc/commit/7b89510651c569f0bc00d9c3aa02dc49ffcea0a5))\n* empty dav permissions ([2acb0a6](https://github.com/nextcloud/integration_davc/commit/2acb0a6c02aee7e4e75a268651ee63b9c147920f))\n* end date extraction ([7c52129](https://github.com/nextcloud/integration_davc/commit/7c52129dcc9d682d2d09f89f34169d4253b797c5))\n* events service read only property ([2f2c8a6](https://github.com/nextcloud/integration_davc/commit/2f2c8a69b434dba14c8671e999d1c3ddf377e9c7))\n* follow HTTP 301 redirects during DAV discovery ([d59edad](https://github.com/nextcloud/integration_davc/commit/d59edad442eaa1d6c28014e068a7be5b863bed66))\n* force login with options ([be16167](https://github.com/nextcloud/integration_davc/commit/be161679958200931074246f7bbea16412391167))\n* handle data streams properly ([d43ff9b](https://github.com/nextcloud/integration_davc/commit/d43ff9bf2e8f478755ff80e10f785e9c050018cb))\n* handle null path correctly with builing that url ([4617f96](https://github.com/nextcloud/integration_davc/commit/4617f969f6702b60999cf3c9d58acf09f79d2b85))\n* improve admin settings user actions ([c7728b8](https://github.com/nextcloud/integration_davc/commit/c7728b89e254a7c2bc424e862a3126da182e7444))\n* improve connection logic ([b4b6500](https://github.com/nextcloud/integration_davc/commit/b4b650005c8ddfcd45f9272b6d39c3401612b6f4))\n* improve connection screen actions ([6a37222](https://github.com/nextcloud/integration_davc/commit/6a37222d4ebb08e53ff455373a03f9665263dbdc))\n* inconsistant collection state on save ([7d19713](https://github.com/nextcloud/integration_davc/commit/7d19713d02554ef8cba39b61c510e08e425c03c0))\n* initial sync signature ([a4e68f9](https://github.com/nextcloud/integration_davc/commit/a4e68f968d271a49f3beec224d74f3eb26167ff2))\n* **l10n:** Update translations from Transifex ([134f985](https://github.com/nextcloud/integration_davc/commit/134f985f98eae9bf14780237e615be1182d660ea))\n* **l10n:** Update translations from Transifex ([2379bac](https://github.com/nextcloud/integration_davc/commit/2379bac5317d913aa7c6cbc90bfaf0693c0e6170))\n* **l10n:** Update translations from Transifex ([3459680](https://github.com/nextcloud/integration_davc/commit/3459680424a544f56f0794f82f979ce3ab06acfa))\n* **l10n:** Update translations from Transifex ([e280774](https://github.com/nextcloud/integration_davc/commit/e280774e3b8127c898142935620c075ef18cd32e))\n* **l10n:** Update translations from Transifex ([29a3dbe](https://github.com/nextcloud/integration_davc/commit/29a3dbe00c8e6df9dc17bf5c03d9a812e6e49dce))\n* **l10n:** Update translations from Transifex ([d6738dc](https://github.com/nextcloud/integration_davc/commit/d6738dc431c46cff49579d867e558c9854892b5b))\n* **l10n:** Update translations from Transifex ([bed2841](https://github.com/nextcloud/integration_davc/commit/bed2841e7301dc0515fb82da0591f3f5601d1f2e))\n* **l10n:** Update translations from Transifex ([07795ee](https://github.com/nextcloud/integration_davc/commit/07795ee1bb60e43030e9b914b46300d1e6979f9e))\n* **l10n:** Update translations from Transifex ([1415b59](https://github.com/nextcloud/integration_davc/commit/1415b595053f4e2e85940fe69e139f60e8143b80))\n* **l10n:** Update translations from Transifex ([bbe53ea](https://github.com/nextcloud/integration_davc/commit/bbe53eabbf772d755f46432576a080564d9b8b07))\n* **l10n:** Update translations from Transifex ([54aee1b](https://github.com/nextcloud/integration_davc/commit/54aee1befb9601165ca4031931af4569564b2230))\n* **l10n:** Update translations from Transifex ([a00c080](https://github.com/nextcloud/integration_davc/commit/a00c0804d1ce0cbd1a4dabcb776b60ec19ea5c5a))\n* **l10n:** Update translations from Transifex ([232c51b](https://github.com/nextcloud/integration_davc/commit/232c51b67f80a36fa1d0a15bcfd4fab8eb77478c))\n* **l10n:** Update translations from Transifex ([a0014a8](https://github.com/nextcloud/integration_davc/commit/a0014a80da7feed367b302aa2a82357d5984c6ae))\n* **l10n:** Update translations from Transifex ([d6a8dbc](https://github.com/nextcloud/integration_davc/commit/d6a8dbc1b13bbf85f551504501209be571108083))\n* **l10n:** Update translations from Transifex ([644af9a](https://github.com/nextcloud/integration_davc/commit/644af9a4ae5b31290512697fe56293a5ea2326ab))\n* **l10n:** Update translations from Transifex ([7c70db7](https://github.com/nextcloud/integration_davc/commit/7c70db71a6fd0ec3128edce586e68cd9a8fe0d62))\n* **l10n:** Update translations from Transifex ([8125cfe](https://github.com/nextcloud/integration_davc/commit/8125cfeea29b8165eef735cef79c5ff668bd0bae))\n* **l10n:** Update translations from Transifex ([c74ec95](https://github.com/nextcloud/integration_davc/commit/c74ec95ff5628ab928c4ad9ef3e86f102b3c47c2))\n* **l10n:** Update translations from Transifex ([e45c75c](https://github.com/nextcloud/integration_davc/commit/e45c75c0c9c175462bf12b784788934e542a7139))\n* **l10n:** Update translations from Transifex ([f87ca3b](https://github.com/nextcloud/integration_davc/commit/f87ca3b866c5288cdcc5d2821f7db0cf3b051a51))\n* **l10n:** Update translations from Transifex ([aa506ce](https://github.com/nextcloud/integration_davc/commit/aa506ce0d66270a1afcf873be1abfae13de19f8c))\n* **l10n:** Update translations from Transifex ([c691a6e](https://github.com/nextcloud/integration_davc/commit/c691a6e92233828535a50959b2e8c69f1a7cd766))\n* **l10n:** Update translations from Transifex ([db4583d](https://github.com/nextcloud/integration_davc/commit/db4583d80b469f7a6fea1df875c051939cf33b3c))\n* **l10n:** Update translations from Transifex ([3d469ab](https://github.com/nextcloud/integration_davc/commit/3d469ab1a0710779d8e2fb1d64c9552d759bfa72))\n* **l10n:** Update translations from Transifex ([1a4d348](https://github.com/nextcloud/integration_davc/commit/1a4d3481924456ffe050144ca7da1eee3a5bd3bd))\n* **l10n:** Update translations from Transifex ([4f5ce51](https://github.com/nextcloud/integration_davc/commit/4f5ce5107cf109d1d08ee1f927f2030042166163))\n* **l10n:** Update translations from Transifex ([e3e57aa](https://github.com/nextcloud/integration_davc/commit/e3e57aa9a52f984cb474df6fe755d41f41e74448))\n* **l10n:** Update translations from Transifex ([d48c725](https://github.com/nextcloud/integration_davc/commit/d48c7251972bdd9cb65462fff652aa253a534eed))\n* **l10n:** Update translations from Transifex ([c0170a5](https://github.com/nextcloud/integration_davc/commit/c0170a5439cb448016041fd4bc97bbb3a80f67d6))\n* **l10n:** Update translations from Transifex ([e81a09b](https://github.com/nextcloud/integration_davc/commit/e81a09b4bcef7736999b7d68cd5ccff54c5f511f))\n* **l10n:** Update translations from Transifex ([54d9404](https://github.com/nextcloud/integration_davc/commit/54d9404e06aa1c1dfb8a4e01905a829cd0b59371))\n* **l10n:** Update translations from Transifex ([2bd978a](https://github.com/nextcloud/integration_davc/commit/2bd978aa00fd6481550dddff18ccccded9b95c75))\n* **l10n:** Update translations from Transifex ([e6828a2](https://github.com/nextcloud/integration_davc/commit/e6828a23e6f0f861a990243893b210f99e806ea9))\n* **l10n:** Update translations from Transifex ([8c07a81](https://github.com/nextcloud/integration_davc/commit/8c07a818e75f2a2eb5ac05bc9e14d0d9e703841b))\n* **l10n:** Update translations from Transifex ([a8edc27](https://github.com/nextcloud/integration_davc/commit/a8edc27fb7e92a1c3ae7226faaa719c136a146e2))\n* **l10n:** Update translations from Transifex ([933177b](https://github.com/nextcloud/integration_davc/commit/933177b9b5a469276b3c3efe51c59baac2573c7a))\n* **l10n:** Update translations from Transifex ([d394653](https://github.com/nextcloud/integration_davc/commit/d39465362df2e619777560347be7858034f31dc5))\n* **l10n:** Update translations from Transifex ([d60d7f8](https://github.com/nextcloud/integration_davc/commit/d60d7f8d93bd382bb64c278caac7a29917f29cf9))\n* **l10n:** Update translations from Transifex ([5414102](https://github.com/nextcloud/integration_davc/commit/5414102f24560e7c53987879db8febc7f6328ef1))\n* linting ([aa0674f](https://github.com/nextcloud/integration_davc/commit/aa0674f727dcac741b2dc3dfdb85da25b8b3f121))\n* migration class name ([ce9ef93](https://github.com/nextcloud/integration_davc/commit/ce9ef935b4ab3fc193c7ffff285b2a0f40e87fd7))\n* nothing ([d23c244](https://github.com/nextcloud/integration_davc/commit/d23c2443a13d6d8bc9c1855a5d78ab7fe3f79f39))\n* nothing again ([4ed8ad2](https://github.com/nextcloud/integration_davc/commit/4ed8ad21ba7ce5f2c79c4d9282fcd1b0a150710e))\n* object creation logic ([a35e23e](https://github.com/nextcloud/integration_davc/commit/a35e23ece4344d8a86fa52dc10c7e5f1348d4b8e))\n* remove json basic auth option ([11000d3](https://github.com/nextcloud/integration_davc/commit/11000d3772dc5839fbab51c1ece4d6108ed32dbe))\n* remove mail related features ([42204ba](https://github.com/nextcloud/integration_davc/commit/42204ba12bb6554784225b49b6fe07bc08885cf9))\n* remove tasks specific features ([642d8aa](https://github.com/nextcloud/integration_davc/commit/642d8aa38fc94593fbf344af1fb767e8e92616c5))\n* table calendar table name ([15f7124](https://github.com/nextcloud/integration_davc/commit/15f71242c221939a8c9df7ebd0941bd6dac9912b))\n* translation and wording ([13f0013](https://github.com/nextcloud/integration_davc/commit/13f0013d5014cd0b7ad8beceb231acb57b5dce22))\n* translations and date formatting ([b48089f](https://github.com/nextcloud/integration_davc/commit/b48089fe3b8e50cef1baefb1d4dff37b1d290056))\n* try to use current-user-privilege-set for permissions ([eb3abff](https://github.com/nextcloud/integration_davc/commit/eb3abff2b2c5d141e6d62be5d2e3e05c03d0d123))\n* type Bool and also NotNull ([4fd49b1](https://github.com/nextcloud/integration_davc/commit/4fd49b1fbd21d3a17cda205c784dc6a5b30289ad))\n* types ([0e9211f](https://github.com/nextcloud/integration_davc/commit/0e9211f22231942c2862f34b6ddb2dc8ea14cc7e))\n* use correct Content-Type for vCard PUT requests ([b723145](https://github.com/nextcloud/integration_davc/commit/b7231454c131bec56554f76e4e3c60aec9143705))\n* wording for translators ([61c1f8c](https://github.com/nextcloud/integration_davc/commit/61c1f8cbdd9abd2d8c1ea9a8bbf36265c0039f64))\n\n\n### Features\n\n* add basic read me ([15486bc](https://github.com/nextcloud/integration_davc/commit/15486bccd2193d4070eeec48eeb7b4925a018e90))\n* add console commands ([a344e5b](https://github.com/nextcloud/integration_davc/commit/a344e5b5d4f6706ab33b1255f71d001796e8f68d))\n* add discovery templetes ([9ef1c19](https://github.com/nextcloud/integration_davc/commit/9ef1c197b53126758f4fe7b6aed174e1fc7d1955))\n* add HarmonizationL background job ([e8d6c53](https://github.com/nextcloud/integration_davc/commit/e8d6c53bd2cb2357d2a81c044498f5ab01ef0b38))\n* auto-select first account on settings page load ([6f7e848](https://github.com/nextcloud/integration_davc/commit/6f7e848e63104930cb26d80f02c544aa84d26ee7))\n* configurable harmonization interval ([2b74985](https://github.com/nextcloud/integration_davc/commit/2b7498530516c7e3d291f8555cd3bca73fa6e549))\n* connected calendars and addressbooks ([0572fa2](https://github.com/nextcloud/integration_davc/commit/0572fa2923903a53555b5236f2ab89df8bad397f))\n* data migration ([e248047](https://github.com/nextcloud/integration_davc/commit/e2480474653ab491561a01047802698755701497))\n* implement admin security enforcement ([440be33](https://github.com/nextcloud/integration_davc/commit/440be33d2cf0615afb3cc0fcb485431cb8ebc9db))\n* implement bulk remote retrieve ([ef5bd29](https://github.com/nextcloud/integration_davc/commit/ef5bd295019217c70d06b5bc116b21042e2dd7ca))\n* implement collection listing and fetching ([103efd4](https://github.com/nextcloud/integration_davc/commit/103efd483366239170281fb0df80435ccfdfbfed))\n* implement entity sync ([8c26431](https://github.com/nextcloud/integration_davc/commit/8c26431ea16fcda674181c62ff27f0fb190ec68e))\n* implement hybrid read write ([64ebcc0](https://github.com/nextcloud/integration_davc/commit/64ebcc058f5e31a1af10bc84d2a0e7d13b35a6e8))\n* implement initial connection discovery ([3fb54c3](https://github.com/nextcloud/integration_davc/commit/3fb54c3b93e938b13ba728d3b58aa798230f21d2))\n* implement logging and etags ([c916016](https://github.com/nextcloud/integration_davc/commit/c916016b3acf4d30e5eb9d5f8af63b2fffdebe04))\n* improve dns record discovery ([2da730d](https://github.com/nextcloud/integration_davc/commit/2da730dd3e1b7b33d66383ceeb1f38ecf1bdaf83))\n* improve read me ([0f84d36](https://github.com/nextcloud/integration_davc/commit/0f84d366b5d6acfc3fccc8c83a332a00d128f776))\n* mirror calendar component set ([bb1f510](https://github.com/nextcloud/integration_davc/commit/bb1f51001fafe1d2689d24c0ec23c153d07ff590))\n* permissions ([8afadfb](https://github.com/nextcloud/integration_davc/commit/8afadfb41c591ba37063cfe196a0d96a45b0060a))\n* use Constants ([79b1535](https://github.com/nextcloud/integration_davc/commit/79b15359d6d41fe6aecf2f3e3de71c4d8e3fa512))"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.1.0/integration_davc-v1.1.0.tar.gz","created":"2026-07-28T12:25:21.677604Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-28T12:25:21.729193Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"plxBO+9gdZ3UhPNSdLjh+841ig5F1Ct9EZ9Qzt2TA5u1nr61ctgJ4EJBuKROZF51Fkv4VvItLwzlfM1Gv/PxUmmgpfK4Oclm/ZsuA9bqiE6rcqnrrkv+EwhZrbwllwhfFmK5ZSVDU4YnUaD65DgD29U8c6XY+Hd4hPHRXELZt8WMoLX7F3YW3sUx248oBazHuuKDNaxcD3SavOueqgU0s1Af5lAcIUe4BvlhxkfpQSef4wU3qRfMAbqqZcNJYAUelpxwTpw1/W2C4Ft0J/KrJF5KMbNIsB9+rjXhLaAe+lITLTt06S+rIB1wp53YoS0Fe6EQbmUSE1mLnrK+Bq2x1aMgDhL2s53r86DUDFYFWYnMUvRScCyJUykS4v7F5g9ST4Ws1FrnmT90kuYgFe2HksM2ylIyffbWFST02JaZ68ahgWKzL1dXNp7NtcUkW41eiYqeLul6z1eNfzAMM4VNTLLaDctcR3PDOl/20qdDI6xkX4wfyODo0HTMqY3VGXabJN5wdGq5WFPHlunUc/WX+rHPZ6eBatYiZGGhq/dJBmBLCRinR/DZK+7/RHfyBM6irNpfpLTSWdyIVavHSMDQnEjd2J+eqnZzdRm9c5jM6DlmSRMZHZYp4FLislo3LoG6PV3z1dYgRV7TijlwTF1JLVaoVz7ThwUoiFhqcrOOh8c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.0.4/integration_davc-v1.0.4.tar.gz","created":"2026-06-30T12:03:15.032450Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-30T12:03:15.089421Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DgwRrleG0OkXKLWAleqEZCh1FyfLjLv4+VIih0ulQx58s3+9kPe8ijMvbAKbo/yIoE5W2FCuY0MmE+cGklUNMoXTC2MNz/2qodcaTg6i4Mk+x2Dj4WM0T3GANZI7LjKKZ4dFgeXs9fxW0hFQmk/ep1FCnAY6mjDKa+DJQGDWT86CujRnJ4mwhsTFi0aiBfnG2upOcvYs2pse+tMNczPGStXNpp+WyMlFuYkryxrMNLcB8BbpApaLSZ4tV/V7+xT5kPRkRfSsVZS17Kdl2p9AeH4dHfSv0X5Yz/nIqyu1322wBz+MzLeBh88FCs2TBgzrZ9TBbIKI9dhcbUWmv3QqWkuixK8isf/RY1/P/JKH/xQumLOvsL8+buTPJyRpxnBkevFx0SC38TC9lTZ+QgReAqhjyAKcW3Nv+IhlF5Jibh55d1soGLLzDEEfB9juzkpiMi5RfboCLd/Pi1pR7dr9phFkG0i7ADq0Xn5HqbOWzQaq26QklyuBUMEp5CgmQvtRJUu6Vaf70HvN4+FzDBOtyQCGvadlFjIRMSE/I5ULK1Pgk8bX1wzmFr6kWJqlFT32mUuLhrIFILhLFKkzVeFKHZH3yfovWgDynMNymeDyIqqo9qQEjTwwcmxItUC1EfffoQjGzQd+e+fTvr9MRoHBFapImbhfvOwNNNBngr4PLRI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.0.3/integration_davc-v1.0.3.tar.gz","created":"2026-06-22T12:11:45.019412Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-22T12:11:45.077963Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Nc5GNcVzhp/9D8FNaHnqJ4w2UlEOC99Wef9NIRLktfgQoiS9HQ0gAc9sv0FBGVvbc/pMJki5zx1IvQiKIuH7nn0c1eULqmRctHUwLv8H1vX4f1x86c9OnsMYkrPsb2+D5wPpwor7kAxTb+iKQbz41ZPC1pOz551HnDfvEa9ptV7eRA8W8HnRuYb4/9Tes9BMuCejIVxmExofSif+NTnRKl/v4y6cJP6LVJHNLXdQz7EIAZqa6hzvk8YUsMGROlMUFTiYa4uAEbIme/IT5w2sR3AELzOWXtRFNPxZrIr/aQMw9Tqqy+SBofDcFSKqRG73OcVJTcsPmQ6o7BhtruPJvepuszbOOfhGN9CmuwKXbD8SZMkNjmnygZ1fapgeNKn87EeqLMiPp2b3DHS7WChxKMq8VIH4vhZs3B2gz7xMFkA7sfz7KyKaXMp8r1oUeAjmxMTyBE9xd6wzyIzdlD5i2WTNgbtXSM+8Sus3arA0U6XuGq2omIQ4Z0nY/ZSfNOXs8cSnYJdqKT5cR3QepYbfqG+IcCrjTmAkYDfHR21e1q6ValvECQgheFfcMQy2b4gkHeRAqjb50yC63k+AIPxUC66QzHPmSPL6F9AA6vxOKEF36L2enciwdihnonixg5gJtNrqSGSoc+C++xP6oXw65frKP09rXZUh5QAh8K+lJJs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.0.2/integration_davc-v1.0.2.tar.gz","created":"2026-06-18T13:59:37.553750Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-18T13:59:37.598986Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"U0NAV2eiloqx+9cc0G06d9KHveDvDeOzBYqHnNWT1oeQYuj0B8dQPXiR/GVX3eUUgEkNCOD0qwYIaHYn4S6DjLGL896iU7Km05Y67LY1Mgfg9WMGdNN+oPDdt5lPcIV2pv8i0/KybnE3pvjVlDkIxzahsFVE21yCNz/s5e84UN+mlrtRWkewhsSKCBOXJ6Bwf26Us6552l0I5w+NiuesxXUGYI4cf4aqQKXHwLtbnMSi1Jcly5RsJLTHdAosfLc3qdX7VdwR0k0sV273SN1fUjLQWran04EliyGDX0cx+jqGAdSgBKJTIpc2hvJek4Ea3y2zu3UYYjsCIeK/B7q8opryPAN/63XMbnBBH0tdfazxO1zxEFtz0xhQJzgCyiNbP4LqfhyOlmbOUfFwAK6RNvlJt4PsLz6F1/HMc64KR4Bpg5iqchdyG4Ui0CxRXCWAgv1C9l69+acDtliCU3vSKGQHtmV83gm8i233CZwibhrtR9seCC88oSeNWWJR2fOiibyZ7QvRvIzUQUAPBSPs5RjTlX7ubgdRu2g30OVgOD5OazKSwQQomldSpLobd3px7xPvvva2evH+gQcM00pAlEhSbYZcn+ClH2xpg/ofWLtiSJMMmfDkPb+Q4B93MoK0rlHF6DqM1FJephZduGI31twlY2bzBTBbIHLkSN8Ks9Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/nextcloud-releases/integration_davc/releases/download/v1.0.0/integration_davc.tar.gz","created":"2026-06-18T12:51:22.803192Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-18T12:51:22.851904Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"VQM0VvL3PfCQ5WEKQcjV1sLxRYRZdB0E1I9Zbqyz4cJMjb1GenT/t2wztKymtzPr\nN1nqRdYHgiEisY8BBiE8tfFoFFwimLJkuYXk6yqVBTiRcQ7bOXgypEBdfDwgWrmA\nIp4NBrcg8ADPs6cAgXtewcp6L43zxwhl6+Rck1HlDvNkR80oP7ky4WAtMMuPxSBD\nKmICAJDU7YPukChf4n80oQonRIHcuTaQtedRKPK1cSS82CFqMrt3BtMA6OOdXJcg\n8zHMtj/mYDGBjivdFXmG87cP5AnQBdRiCB0KlGqyCu9FyGoWMsqnJWP83CB8F3V5\nk+G3LnuG++kDhCy1cvpRPQ2RF1FRSouLa3ISmC/0Xf6Rqu+XIm2ojSMO9nM4I+Jd\ni1oeKSP0ZD7hEnKRwXfAp2zt3DHP+KStcQecbWm0X7GJC4NWl8kTlSVWOBSA5TJX\nyYBOWEa8lopYcFSfGzcZuGNIPU1YOOccXy3FQ59vDIOTUH1Mwhanvygyfgc1gxuj\nGtJC8JyRKF4BNoH7zX9iMNgYK9BN9Q4orTZB6YN3O3hqe3dKtG4pM5wXu1jw2zsE\nuaW0vnRXp0f7mNU3x7Ah3+01vOs9+oSMlJFIA0D0RG/exAlff3Q8y0TshV4TAIQE\nQ9wh+0idfyuge6XG1RPvwAd0C8IaPRqS5iPdAY4X+sM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kYXZj","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DAV Connector","summary":"Connect Nextcloud to a DAV service","description":"DAV Connector allows you connect any compatible DAV service to Nextcloud"}},"isFeatured":false,"authors":[{"name":"Sebastian Krupinski","mail":"krupinski01@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhNmMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNjEwMDc0MDQ1WhcNMzYwOTE1MDc0MDQ1WjAbMRkwFwYD\r\nVQQDDBBpbnRlZ3JhdGlvbl9kYXZjMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEA0FStEzn1OctCwn04tmq5By4hcZ8qu3ZwUIMPYgha3ZaD2razg6ibgtbk\r\ntQyh/n9vQ52dxANKPd8sDteK/WYGyC8flF9jJNNBuKUORcBYNwhrSVqqAm7+dM2n\r\nIrr0lHo3xY7/7+7o3YI5Zg4h/tn1HCia5P/SE3su66Mk6axDP85onMQQJzWoiU7Y\r\n5yDvFwr4H3llQTNQtS9bgLS2NsEYp72GZKvq85GSIcMWOLmIN2l3TPSUmBUUJEMa\r\nrTz3ZdkxztbdGd8Rjz1hXdm1y4XEViATrETBMjM/zsU9M+Np0iFF+WkqwJce/HPd\r\n2heph0LOI0G+Gbnmbs+rEnitft8B5bfaOvI5PEQpRIq7WCe/GLvdzmqgEtRY8gt1\r\nzWUFbHtWaIvtG69GwXyF+z6lbWD0doHj55iQAT0WFpNs5Afu4TEvHaOYrPBWnL0r\r\nvbSRVOKTbTNaQ5ciwUbf1Mdx/nGdtQFtVYA62Xau4b14K0fw7xiEAv1/cr9S8kyN\r\nDagcemzeRjro1vz0ElWLQ1LZBb3YISL4FdVNmu3y5e1B5QL1w/RKtHx5z6B8BvwS\r\nQ8jWpuWHvi6R/yLEUtTxTPCQvkD/KFIYeNkBDeFBGCuSxsWDlJKx6g77IAYfCKpl\r\nPpZQOqhlM2SIkaZXrovj1Hw2ZJSeeSA2ZBxgQ1R2ivPFEYFiN7kCAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEAatIOOlNCurzZ9DteL4m0Cp0h0QvGoqbZagiXuaYQ68pH\r\nIk/lE8KnY2UKYlTeJXYBXw1Fpf0ItRt2D0zQBDTdIhq0xPmQ2aC1cX4L3aeIlZXu\r\nGWiUGEMgllfBD+9124DKfJeV0i5deHGQZpVLbEVYIkaHk9BqyC9fmd2Mzr7h7k/J\r\nvbYLphhpTsmbnoSwKZqFtKximEAP4yCDZrQ4911DWZPWR1dHh1Bl9sB2VFBBIsg0\r\n8ZLBGSuj+LuhxkTVPg7JY7fypZfFqXh51XBzlS9JzudCheV5FRtlQh/oe/Rg0dFC\r\nmU3eVvcBveL5LQcZgKf9W7weAV5713AT6Z1XOaqZAw==\r\n-----END CERTIFICATE-----","discussion":"https://github.com/nextcloud/integration_davc/issues"},{"id":"better_app_menu","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://gitlab.com/binsky08/better_app_menu/issues","website":"","created":"2026-09-25T10:30:27.081199Z","lastModified":"2026-09-25T13:07:35.949770Z","releases":[{"version":"0.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://gitlab.com/api/v4/projects/86801937/packages/generic/better_app_menu/0.0.2/better_app_menu-0.0.2.tar.gz","created":"2026-09-25T13:07:35.943922Z","licenses":["agpl"],"lastModified":"2026-09-25T13:07:36.010277Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"lWTptDpbbTEuDxq+oMg7HPJessDIp4JP2uaPiZKTL89k2rdnluDlxcJEE3Ayr4it\nwuf2UhnwZvYFyBExNIc6PyBu/P7PX/ThcZnSYNS7aBNtvLsg1OKrqJKpA/K8dxXC\nymQTG891r9qfSDHf9h/e5JWktq5DIleTvv81diwsILIRgCRvMQakThAXEi1HVHW8\nLg2NgmFhAhIdKV/y56eocv0LltCV5TOf9WukIcSPiaQAhhuiPcLvemFAiEiTjLfT\niQQFxKvdAqH/jq0hwFk8awwE4vyosn86jUVBC3t/uEHvQJZswaJVAb8o3FrkvKnR\nkTsNESuGt9kWjvBmOM53O3QfXJjb8O9FQ6QbehFu+8DN+hHPOG/bnb0AoqU+x0gd\ny+pfn3F1mGkkcstOPzjRgAWMTg3sI/bhXCYvR0q/EeITN1uHiwjIrl2pIvCR+AaE\nEHfgg90pBmvFBb4/3TE1YF3So5l4xhJcNFO210CuwgljP4OY04cWqTVtEvdHa1Ad\naKn9koMsCbvaOqtj/bgM3eI3SM+Jqi3GNccLGSJ6jU0kxpE3n9pjkIAnPsTsK2jt\nL7ZOjNa9Y1TpWZyqDcLP2OOkor5dQodf8szWgUI+IM/Q2rUnjallxrp2ldQCvJB/\nqYgQGNM6GAj2uEtIRXuU4Uz7MggRU/2/PQAQ3+sAfnw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL2JpbnNreTA4L2JldHRlcl9hcHBfbWVudS8tL3Jhdy8zOTdlZGYzODlhZjNhNjliZTU1NjcxMzVmYmQ4NWJmNWY4MGIxZWNkL3NjcmVlbnNob3RzL25hdmJhci13aXRoLW92ZXJmbG93LWRyYWcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL2JpbnNreTA4L2JldHRlcl9hcHBfbWVudS8tL3Jhdy8zOTdlZGYzODlhZjNhNjliZTU1NjcxMzVmYmQ4NWJmNWY4MGIxZWNkL3NjcmVlbnNob3RzL2FwcGVhcmFuY2VfYW5kX2FjY2Vzc2FiaWxpdHlfcGVyc29uYWxfc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL2JpbnNreTA4L2JldHRlcl9hcHBfbWVudS8tL3Jhdy8zOTdlZGYzODlhZjNhNjliZTU1NjcxMzVmYmQ4NWJmNWY4MGIxZWNkL3NjcmVlbnNob3RzL2FkbWluaXN0cmF0aW9uX3NldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Better app menu","summary":"Show apps as icons in the header","description":"Shows apps as drag&drop sortable icons in the header, in the style of the navigation bar from Nextcloud 33 and earlier.\nAnyone who prefers the current menu can switch back to it.\n\n- Icons that do not fit go into one \"More apps\" menu and return when the header has room again.\n- Administrators set a default order and can keep chosen apps in the overflow menu.\n- Each user inherits that default until they save their own order, rearrange icons, or hide apps in the overflow menu.\n- The original apps menu keeps Nextcloud's own order."}},"isFeatured":false,"authors":[{"name":"Timo Triebensky","mail":"","homepage":"https://github.com/binsky08"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhQvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI1MDgxNjU0WhcNMzYxMjMxMDgxNjU0WjAaMRgwFgYD\nVQQDDA9iZXR0ZXJfYXBwX21lbnUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQDGE4WkqaeRTuwJ18YxG0QaUNRlFw03NpcLOoqFT64BwQWmF/WwTw2+C6TW\n/bwMrqjaR84lLstgzmQwfDibi0BEiCMTC20JYV557f4DJQJ9wGZ9BY08vzVU+VJc\nEkXWypwR0k8YdUU19O/R3cRFpwrxWF73U6DKxlUhtrmruCfheHCn3lV5pghzHlxg\n4wAeJu92Tt2fTVVCriKhS/QG1PhGp8lAd/gg0ZvQxlT4WdSAeQ0YatpBte4nFgBd\nP5rN787cTdqyBIWJVbVYRMR0RZPbmRIc4aZwp1XFBqEv6/apGFABFucLqaXHBZWz\nOcm8J2qSs1HM3OaaXrlZDB/Nq1vIHB8ZxizWGs+8NYv/uyTJ8PozmCxjVbqy6vCI\nZnwBnWBxkByxSUG6rtCbjUw6fXjy+19gdyWKpjbXe6rG10OHQ3DNjlu11ZnospK4\nMRx0EYLIZtPL0K/2lf7S8PIDYJoTPXWpQqIFXFIRQdwiu6nqH9NiCrDEcqpKO09d\nEWgKEf6x0arU7o/koGhF/vlumeo1ShpdrSbkPCwu0yvGxWsy4sqOdE8+hvLVaBWY\nQQ1cui+rYq1Sp2yCjQijy9wbsa01JPV9571HyWnLE6khhrfNB/bIQhUXWRzUPd48\nl66N8nRSqHbRbRmbVY6yljG/cffhLzUSqfbGYn1iekJGeorJ2QIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBWx5KKA83EiS+SiFwuYLNaAzoa9zzWNPdEJeCqIvrTfb2Y\n9bxSRsn7C+oZ9J+j8iC1gL4Rmf5XAyXKPN5qo77yUtFDvVukgopTm3L76qeiR+9D\n71ITEQXqA1D2Mb2teSxKa5SjeR6G535Hb2NQwR0ImZjuj3Dweow/yJjeTa2WN2N2\nFES62Us1xnkABo7MwK1M9hk05/OeOmWTFP23FO+0YqKAwgTcq5vfCQXjW6yByv6p\n5gc/iOwn/a4LLZ1ETTvsT8L4/54LdUeG1N4jp9QFg0BWoyEWv4cK8okMo3asTxcZ\nMis0zdtwEfDbl4gUkmRDv4CZw0Wfhsyh15gG6X06\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"n8n_sync","categories":["files","integration","workflow"],"userDocs":"https://github.com/kubed-io/nextcloud-n8n#readme","adminDocs":"https://github.com/kubed-io/nextcloud-n8n#-setup-in-three-moves","developerDocs":"https://github.com/kubed-io/nextcloud-n8n/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/kubed-io/nextcloud-n8n/issues","website":"https://github.com/kubed-io/nextcloud-n8n","created":"2026-07-22T17:53:35.015914Z","lastModified":"2026-10-21T18:46:11.062410Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kubed-io/nextcloud-n8n/releases/download/v1.1.1/n8n_sync-1.1.1.tar.gz","created":"2026-10-21T18:46:11.047281Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T18:46:11.114116Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"mMvzUjjy6nSNXy38w7WYUKsiwK5/rnltCq0riMGB0ojcjyq7auWY43QzfkySAkkuc9HqUlGWhIXuUIvbhPqx8cOxzblYX6lYMQZou6A02hcushF1nEAZkhUWzslrwbjbeq0NftXIO//L2aeHanHaEClv47EpI/OapchBPv7cWJlakfsASJRlJLwADkXFHtl1o38WUlAD2xlEAJRh+ZGhZ5fumrqIiCrwWkBjHUNdbt1XOCxMTEgQnG/9mmOhtZkq8IQC1j2O9GXP3jFvO6xbkI6kOhiw5GP1dFDj7SzE+Q2ue38M27gb75i1XMaWjYtHiFpjdrfNddqZ/1SIn7oKCg1qRhp++fRzxOX8RIx8ym3/utPIjYTfPnh7j2GxA/VH9TumldGLZepZp9DnswkmuKLHqi600RHEsYwzZFCRfxPtZVIBSvAXXHdZ6NIVpueHIzXe5cN50enz6hQQh6QDcERVocJ0QLp2Y2eW6n3bLZUsWcs8Zg/uyhtizLk4P2L3+SPLLnKCB4ZnS0HfdnfnjL5v6iBzzzfxIqSFrES1ZhcQg41QW+aqjr6pWywvtpQ0jwLgdwDioNE63xwVZtxTHtdmNXr9RqJXV0kzh56lyEpVlwBUdDaBkcO+YX8M21Ou4WUJnG6N2rAC+jeNwEtAIxHi0NYa5rdHI1wZlsN/opc=","translations":{"en":{"changelog":"### Changed\n\n- Supports Nextcloud 35."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9uOG4tZmlsZXMucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/n8n-files.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9jcmVhdGUtbWVudS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/create-menu.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9lZGl0LXdvcmtmbG93LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/edit-workflow.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9jb250ZXh0LW1lbnUucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/context-menu.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9wb3B1bGFyLWZpbGVzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/popular-files.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy90cmFzaC1hbmQtcmVzdG9yZS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/trash-and-restore.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy90YWcyZm9sZGVyLW1hcHBpbmcucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/tag2folder-mapping.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9jb25uZWN0aW9uLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/connection.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1uOG4vbWFpbi9zY3JlZW5zaG90cy9hZG1pbi1hY3Rpb25zLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-n8n/main/screenshots/thumbnails/admin-actions.png"}],"videos":[],"translations":{"en":{"name":"n8n Sync","summary":"Your n8n workflows as native, editable, backed-up Nextcloud files","description":"n8n Sync turns a Nextcloud folder into a live, two-way mirror of your n8n workflows.\n\nBind an n8n **tag** to a folder, and every workflow wearing that tag shows up as a real `.n8n` file — with the n8n icon, its own tags, and its own dates. Edit it in Nextcloud and n8n has it seconds later. Change it in n8n and the file updates itself.\n\nNothing is matched on filename. Every file carries its workflow's id, so renaming, moving, copying, trashing and restoring never break the link — and re-running a sync never duplicates anything.\n\n## ✨ What you can do\n\n- ✨ **Create, read, update and delete** a workflow from either side\n- 🚚 **Move** a workflow — it stays the same workflow — or **copy** it, which is always a new one\n- 🗑️ **Trash, restore and purge**, mirrored into n8n's archive\n- 🏷️ **Re-tag** it from the Files app, from inside the file, or from n8n\n- 🖱️ **Open in n8n** with a click, or open the raw JSON in the text editor\n- ⌨️ **Script all of it** — every admin action has an `occ` command\n\n## 🗑️ The Nextcloud trash *is* n8n's archive\n\nTrash a workflow file and its workflow is **archived** in n8n — hidden, not gone. Restore it and the workflow comes back. Only when you empty the trash is it permanently deleted.\n\nIt works from the other side too: archive a workflow in n8n and its file lands in your Nextcloud trash; unarchive it and the file comes back out. Personal trash and Team Folder trash, both.\n\n## 🏷️ One set of tags, three places to change them\n\nA workflow's tags live in n8n, in the file's own `tags` array, and as Nextcloud's searchable system tags — and all three are kept identical. Change them wherever you happen to be looking and the other two follow, with no \"sync now\" click.\n\nThat means your mirror is as searchable as n8n itself: filter for every `prod` workflow the Nextcloud-native way. 🔍\n\n## 🎨 Honest icons, honest dates\n\nWorkflows register their own mimetype, so they wear the real n8n icon instead of a generic document glyph. And each file carries **the workflow's** created and modified dates rather than the sync's — so Recent, Popular files, and sorting a folder by date all tell you the truth about your automation.\n\n## 🧭 Sync or Link — the folder decides\n\n| Mode | The file holds | Pushes back to n8n? |\n|---|---|---|\n| **Sync** | The full workflow JSON | Yes — fully bidirectional |\n| **Link** | A pointer (id, name, URL) | No — clicking it opens n8n |\n\nMove a sync file out of its folder and it becomes **unmapped**: Nextcloud keeps the full JSON and the workflow's identity, while n8n archives the workflow. Move it back into any mapping and the same workflow is restored — not a fresh copy.\n\n## 💾 And it doubles as a backup\n\nA sync folder holds every one of its workflows in full, so it is also a complete, restorable backup — versioned by Nextcloud, synced to your desktop, and searchable by tag.\n\n📖 **[Full documentation, screenshots and the `occ` reference on GitHub](https://github.com/kubed-io/nextcloud-n8n#readme)**\n\n---\n\nThis is a community integration and is not affiliated with, endorsed by, or sponsored by n8n GmbH. \"n8n\" and the n8n logo are trademarks of n8n GmbH, used here only to identify the service this app integrates with."}},"isFeatured":false,"authors":[{"name":"Kelly Ferrone","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhOkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzIyMDc1MjEzWhcNMzYxMDI3MDc1MjEzWjATMREwDwYD\nVQQDDAhuOG5fc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL8k\ncsEx3QDSjE9kY0mThvqBymGsRPVqYOOXNQEHWbBYhdr2gx9350bbfm4nTiuTodnQ\nlU2SHPnvbWjaIaslxfJUNA++LhlNgLggBGqCvMUwnLjkAhqIpbn6M+a4ssSp5cqi\n29d3v4nwYkM1Kz8u+JrwTh+eqd8rM8vZizh8bX8kG2gEuwYSGaFKk2gItYRzAPJm\nEGMekUIGgLR97bT8fT3VYX2eoFZN995uRNMmdMKu0qgoIqBtiG05pjgf6WWCNPum\n3TMO6SxeAnU3fY3D8Bq9QxNhbh2vHm6kU99UShwcB59Jjp97KvPbtXSB8wgtdK2p\nmtk6v1hYniMgelJrVTv4pE/32xdbThq+2iPe8lrcMJ9Vi3S1QoJ15Mhq5K9F0c4U\nFb9H/LeIqlibAZVXDCXXHopxu3ypGHFgmvbjaKHn/XxkCWkDj656W2VZSQMMoKa3\nwnpIaDk2a3Jb9oCmBzghLyqVe2UrSXAL2ULAKRBWZv/JLHD9ZhuOyX8vbKgbUSBt\nHLKFB3K1uy4IMCh55bej+cintt4nVK3PHwb1/HgP6jqvec5+I62rRES3fWu6e5w3\n6RNkdXIZD4Vbd4lzzYw14RGpydkyNJWjIJNQySM338CV4usSHzgamNaY2+vFmWLe\nziDdgUlKp8j7gQ+hEYcg6Z0zVIGwKtQmz1qVHf0FAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABhvvlykvhNpBDEBF8gWY2jk+DL6FLKM2MN+7Zr5zFKftcKmwQaWxA1G\ngzufVoyEG2xaCRGweUU+xv8SFxvH1k185F/uyZSadKqkXjj5t7KOG+h+Q0ET6q/t\nnTu58O52ieklhqdWnjHK/38ZZwowiSJNG1GHen8NEbkatmwXrp8ynm4LLoq4EfP3\n0JAN3XwGOxKBDfvTLXK84wvSXeRi6XqMXifSDtFBbdcKDixSdR8qw1ykZVVs/ytm\nTe/s9IN8qbi2TY6IzaI1sF00Jb7DAuGa3kBEyD6KK8lMIDykjJTupev5S2mHsJ1S\n1YF9TRUPt3raC27aOz6Xg71o0jaEU3M=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sendentsynchroniser","categories":["integration","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://sendent.com/resources/support","website":"https://www.sendent.com","created":"2024-02-26T07:05:00.432649Z","lastModified":"2026-10-20T11:15:28.495329Z","releases":[{"version":"2.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Sendent-B-V/Sendent-Synchroniser-App-for-Nextcloud/releases/download/Release-2.1.1/sendentsynchroniser.tar.gz","created":"2026-10-20T11:15:28.238155Z","licenses":["agpl"],"lastModified":"2026-10-20T11:15:29.518346Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"ni6cgzVV+hmre1Wz11pygLUG5v08kSeN48dx9842SVn7P3LSevUs4zZ5coAgwJHZ8mJsKSSpmdE7hbS2SNTP/7zQn6TsjVU0ozc2l09ge62SWy6oSjxeALcEFPFl1hq/dp0Z5MonvpteJ7YMKKw8db2RoYsMU6Aiy/b1fQFTphML+l8GYrUrRyCN+koreuFcxuJMqMnWCg4tHmEWo56Z+blrdbKj7nGeiwU5NuM2j76Gv/k215QfK+zzYdNzeMPTwMfIQZtHvcpYB3FYnV18ezolbn9VLIqnRf3FD2wjDp8qjaY0o0Pc3uuN8RS3Vo6VCrURoQ2thAkVHlHJU8ClsUHO6mlECw/eDxEhq/pLMJ2LgHB9GXaxqgk5qjcIjGR3EGTt/tpn60+R5h5+14b3XVLoNddGD6aW0kynbfC1nfF9LiZU9hoYhgcm+hoI48QdJMhN71sPrbGAVaMj7jOsd81Gv6MLlPk2WUxej4+VLJ4ClJkhFu+M1z+VdHtN7uar/8/2mqWFaF1z7brvx45N2AtJKQmWKr9LktRhCsJLmTcSpWU8wsyuBOICS9ZSO//4W1u8VGdJdpeaFtYFf0cKcDOepJPEXLLX97rlwzhFrWA/aKl3x8GVLFyYYsxIPuze9d+5YNRZLMbz+XUk9tvxmOMgN1CgzVULJ6Dl9ja9vAs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZW5kZW50c3luY2hyb25pc2VyLzEuMC4wL3NlbmRlbnRiYW5uZXIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Sendent Sync","summary":"Synchronise your Calendar and Contacts with Nextcloud","description":"Say goodbye to manual updates! The Sendent Sync app, designed for the Nextcloud Exchange Connector, enables bi-directional syncing of agendas and contacts between your Microsoft Exchange and Nextcloud Hub. Focus on what truly matters – your work – while your data flows effortlessly."}},"isFeatured":false,"authors":[{"name":"Sendent B.V.","mail":"support@sendent.com","homepage":"https://www.sendent.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhJCMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMxMTE1MTAwODI4WhcNMzQwMjIwMTAwODI4WjAeMRwwGgYD\nVQQDDBNzZW5kZW50c3luY2hyb25pc2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEAt2IRcKyqKEN7jNL1PJwMNAiBYLtDhZpQYw+U6XIfnSby9r8hSOkd\ni8zYeRWrQopHzjc5VQR0jMQxN5eZyaBX+Wb8bHYA3IF83h8eh2jwpMqUhzJiEPtG\n71B0SratT9FKRsFefVs80sTH7is52szI4aPMexS6JtYHtzyULHuV4pP1JSQqWLFd\nxfnfOWit9CayVBaPpN4oimh7fgnfrxpJ/5BoMxZDp5fvDnemzRqjk6ed7DHSLmr6\n3HxztsHxD6J/GAz4C5BTpYN0E42eJITyMGZVulAaLQ5HXxIu6ugBdn21/p3COSKO\nVGgc7SxyHbfMrJ9hsznsjgkfkwSaV3gv5ODnm21SyFyE0+kPhPobBuNxZGu88++H\nQ7xm40cHmJgDuY06JJIUr4tSDU0etCRKdrNUP6IsKswyOedMYGicSFZ6wXxpKf37\nLUtpg2/Uu+vlbjCXnSIsN2ae6eH/lCBEpD6nQWYnnExQ+Or6v7npc8fOWk6GQqHW\n+ULWKLyIqnKBmYI+NSpkPPuLz1qkUhE+oxk26sYiixe4TYpr6hJSCbcjZyWjIW2K\n/IiTvgweGRvsPAKScOJLT92XtIY2BAL2zxtGACUzDM7FHI/SffGF9phyWmSwUkmY\ny6xlzUrjX5Qfe9ZfjTDxOeypnjJBlDalNs+IAD2E8KsipPix/eiUtCsCAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEAU0bv28atzUZTeOVaXWs709HY/u2HTlS397gbUUtA\nNU6/WwJUbefxuY9NLCiaMgHOesQapMPFDomZM1nlDM82PaXRc9BMpB0MTrE6sCdA\nVvlinpb2bfyUAnsCp/Xb23XLJ2MAzGvZN1vzwdzOe7MMxJgc06a3d3Aoa1yfRUwD\nlwZUhaH709l+h+kvPbU9N/l/eIoP7RRD3NbGqHMCS6NpZZMeds0mLD957l9RiwGI\nSdLMnr3yscQu6C49oretw0oIXLDDoJOVaRF1FNywL60qF6Di9lIjlsp+5bMig5i0\nogGxtV+znkVxu0+R6sR+V2EzopKajcAReB01I2Da3Fx6mQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_usage_report","categories":["monitoring"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/user_usage_report/issues","website":"https://github.com/nextcloud/user_usage_report","created":"2017-11-13T14:24:39.595772Z","lastModified":"2026-08-19T10:44:50.107987Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_usage_report/releases/download/v6.0.0/user_usage_report-v6.0.0.tar.gz","created":"2026-08-19T10:44:50.080774Z","licenses":["agpl"],"lastModified":"2026-08-19T10:44:50.150578Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"hS4jkGEW1qVsS5zL7vxnWKBgvquGeo4A238/8HMkvUgZQw/HvFrsjFWIMCj8bX6hSW+0zlSK+/n55E2Jjv+edZ2roveWdn40w3mkKS/sViACRlmfgB8rO6weFi+jwqGOcYazeIeDu9PC1IcDSDoKDAi9EVlG82ijafdJKgsM5ZNT8IGYyESiF2pUtH8P43uP8vPszSijr5C/d1F8vTYQVxo+zJoUJ9rddyIAJWy0jewx9ZircXuTxdcDuN64xobobGVO1p51KiX35hRsAW2qhvrTy+yjycTX+iu/BynCI5fvxOtanTCR+07yPsBcWge3WyBeKRy6yhAcRyLyqJ3fxA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX3VzYWdlX3JlcG9ydC9tYXN0ZXIvZG9jcy9zY3JlZW5zaG90LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"User usage report","summary":"Provides a command which generates a report about all the users and their usage","description":"Provides a command which generates a report about all the users and their usage:\n\n```\n$ sudo -u www-data ./occ usage-report:generate admin\n\"admin\",\"2017-09-18T09:00:01+00:00\",5368709120,786432000,12,1,1,2\n```\n\nTo include the header of the fields in the CSV use the `--verbose` option:\n\n```\n$ sudo -u www-data ./occ usage-report:generate --verbose admin\n\"user-id\",\"date as 'c'\",\"assigned quota (5 GB)\",\"used quota (500 MB)\",number of files,number of shares,number of uploads,number of downloads\n\"admin\",\"2017-09-18T09:00:01+00:00\",5368709120,786432000,12,1,1,2\n```"}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIDDDCCAfQCAhB4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcxMTExMTIyOTU3WhcNMjgwMjE3MTIyOTU3WjAcMRowGAYD\r\nVQQDDBF1c2VyX3VzYWdlX3JlcG9ydDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\r\nAQoCggEBAM9iUJTDyMcBTD9bXo+W46DwBoHJToc4+qZoeLEAMFuhidKaOzbGB7Ar\r\nKfdfuFPQHr9cDhogJbaKqkezN7rQFlDJh/ybJ2rp6BD9zidUGGg4UAeftEIWTFFh\r\nbgFTslg1CF7TKCxklDNQf4cw6fkd5jiX8lHAmALhfLI6caWHjIMFC19WGxGzqJnY\r\n7goDJ/FwK4cAIJC4zTfGyx4TY0VSf9pSIW6wQN4ZGA6MNrs265wC/Y7/FHzQJl+o\r\nmEvWfDYNNAgh3KCy17yy7GgquEBtToQ7h9fRX4q07InZU4AN4CDU7GwOPaZO5pFy\r\na5wVQCsBU1XCgQT5Gi6J9DXF+f636sUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEA\r\ni1gL1q5inPiBzuIk2cO3puD3rgQBH6BgU6zxfA+MF/MSpFIsPRa/fI9woegwvyxe\r\nKglcs47v5hlWLXFl3jNbv8NTxnlfRyQRwVSylRNzGgdJRVLzloIL5tq3VvYzxzA0\r\ngvSebYZzB4ri/MFzFsUlnf+vTZumaIXOrJOvWOzKmrV0xG07UMGvW4B6FWHNswKL\r\n50YFntHx6WPS3rAGpgE0kBj7TeUM8UWOMAObKOuZWeWGFd7H6aJKWxnaZBnVXG3T\r\nuBSydcEsEuuC8FNb0j5iuxRnHQr96k0S+6SSnR8XKDrkkwrtA4jbU2adXWF5MaWI\r\nqLTzQLiUlVapmDKvqPqCAg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"mjms_pdf_viewer","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/MJMS55/mjms-pdf-viewer","website":"https://mjms.fr/applications/mjms-pdf-viewer","created":"2026-10-09T20:38:01.206331Z","lastModified":"2026-10-12T15:13:33.602123Z","releases":[{"version":"1.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/MJMS55/mjms-pdf-viewer/releases/download/v1.1.5/mjms_pdf_viewer-1.1.5.tar.gz","created":"2026-10-12T07:32:29.427878Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T07:32:29.472989Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"Cs/HiNcvLscjIIKhY7Adg058mCPjpRJ/BUCM57xbuzRFS/xIwhAlw4BW3JQC8PgvJEMZg2IIU6pgTTAiSCk5MLJpp/M0j+9sU5+KvoWuLycrxyZI7taE0X2ukki88cwLnTLwOSxin1DS7D3SpZ2L93ph0pw3R76SZlNfREZVyFRGmFqoKUlC40fj5/5Iy3nnwXjfcJSxlgCKTI4zcB0+zkgpxW31gU/sJuKXCNEvCVRu9prnsLmYkZQTqBgcF/tX/74aDDvvQV/BZ4QZ3GbFRbHud3I1hY1AKYy09galylhXH6sjzykYDbimgNq7f6zRkDjmANJBmkgL0+u6fgp+ErvJPdPoCN4D8Pfr5BU+ivK7lMJsGmp4JYE13ICJ0vyqjtWDi5GE42VkdGGP8gTE0lOkXd2eeXBNDZvrzQFfS1UMfSKdt6AfbJuXZgNJFwll0TEz3wdyQixWpdf6WNZRCKRl+48OrvCKhi7yNy7QH+s66xAjt5vFePXJvqDiJuaUTqsa2etNXw7AXEyfFz/RzcNqjDi59EBlNQKE78Nw1qLcFh/MbJ+CaHYZCBoGsFV53QMp0Z3rNNbyANc2DPHkwYXA7dv/P3jM5e7S0SaWCOhVpZe9LsWM2F9XRozjfp7pjypPGdppAglsTHhSSKNPEOU+9FXPgNYyUQOdZnfBYYM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/MJMS55/mjms-pdf-viewer/releases/download/v1.1.11/mjms_pdf_viewer-1.1.11.tar.gz","created":"2026-10-12T15:13:33.589358Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T15:13:33.650655Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"InUrbQqmTt2Ffy85XjWg3VVzMsUpfg6FjOXwZs8QL0pLpt1dpzHffjygghk2YapLxlhxciibV+HHrmZyqK6vj1Nac93e38a25oNc0Le8n5sp2R1XirOkMtmpFCrpxUBun8pNGBjK+Em7xExMBZNZOrlo71gEbzJ3hcIw0vnTjwfbPQ7GXfnb9rsM/Qs3uYmnLw1Vt6ssGO9hMhIcyFzN62737FjaCD3tuthM9OLX/nLdW0Ov5MXPDIS4W4qbZaDHTUvHtmpARRJk/VwU+m1oMrxO362AEXNA3Q/PHi2Z5C7D0e4eRgDI7F9OiDMikN2nV8p6yHOmUybICfmcoanMgByhfNmq+O7K/MpdDkQPLJVpRFakt3TVOS5Na1tzWNoSOJEHeJZrlgXNLlBRagx3/xO9Y2rGUXwUuR4jchNgIo2i5F22FMWsCJY7NfBwXopIME1PRXAT0CWOdG1HIhM0puCpbkZNLzClOdAO4xCFy8srDtTXaJaJ0BPtv5Ch49otLpQMi3Dal2EZo4zaB1c6uQK2p/msE5QpN9v4m/Sltl0ZBmuO0RVfdHNeQWvkeK8kq0flE55O9mhfIwMIuU0Vzs78k8SyKykOz0l7bhm2JqSiIFb9mqSlrSykGCpxwadBnxHoZHl+BZiX747okAe27plkX1qJxoVAErK2tRhKscw=","translations":{"en":{"changelog":"- Interface, messages et libellés d’accessibilité traduits en anglais, français et polonais.\n- Résumé et description de la fiche App Store disponibles dans les trois langues."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9tam1zLmZyL2ltYWdlcy9uZXh0Y2xvdWQvbWptcy1wZGYtdmlld2VyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"MJMS-PDF-Viewer","summary":"PDF viewer with page navigation and file renaming","description":"View PDF files in the Nextcloud Viewer, navigate between pages and documents in the same folder, display thumbnails and rename the current PDF."},"fr":{"name":"MJMS-PDF-Viewer","summary":"Visionneuse PDF avec navigation et renommage des fichiers","description":"Affiche les fichiers PDF dans le Viewer de Nextcloud, permet de naviguer entre les pages et les documents d’un même dossier, d’afficher les vignettes et de renommer le PDF courant."},"pl":{"name":"MJMS-PDF-Viewer","summary":"Przeglądarka PDF z nawigacją i zmianą nazw plików","description":"Wyświetla pliki PDF w przeglądarce Nextcloud, umożliwia nawigację między stronami i dokumentami w tym samym folderze, wyświetlanie miniatur oraz zmianę nazwy bieżącego pliku PDF."}},"isFeatured":false,"authors":[{"name":"Michel JORIS MJMS","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhRXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTIxNzI1WhcNMzcwMTE0MTIxNzI1WjAaMRgwFgYD\nVQQDDA9tam1zX3BkZl92aWV3ZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCYeRZ7cCG5eUKzYS+MBdXUlHp71F4JIUBpkB95cbvHaGbPRlD4g4i/I1go\n5YVH3FvXcBgzdkgXnxbJY3t90fnk3sKYhA0SrXnG3EvWqSkmm3RzU2VxAMXZUtAY\nSndYT7hRq0+/iDF53klHF8ywwrjl1E118iRaN/Bpjap/vhSI2VkGv3pzRpzNeFP+\nDjXVxidfh1/QETo6c9UlH3utE5tWO5K2usMPDDAbb9DBdODtwoybFvxBb7taSo73\n3sDYloTXguk/l7sUPPs0Rnw8psyyPrnRsI//h9yLm0AXpnvx0j67gN49fdXSqSP0\n1iZJl2SzckKMCl1X9UYRljszsKlwLTonmiD2Do4Zw1ncmXW4QmPUDmKIxr3RFV+b\nJnrz/cpddiUFsnGaPyTH9uM0+pdwuh3+O4nD9MGxzknC7A0/WPJN6kw0Dkma2Ct4\nQtotiPN6/pF/tNgtZAsOYVCGIa91xSIWtZ34c/wbY+85k2ht3ohhiQkF/U2tI3YY\nZSjGTxXGDuHRX/WXlmEn5MN8CUM27kIIwinX8LPZ3pkN445wignx+E+rdgr9dxF/\nzZ6+IQA6GfMUlm28OZ3jLN223tAxJ7kNS5CUaAW/qcadgI21IDzUwa6j9vaXzYAD\ne3XUzwJgSyYXTZccHuUxDWBi3p7EwS3lB/5JfUHzuET5WRgvhQIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQCXJfswKHSq2c6HzpSm5w+YcQCUF5vtVMKySC0kjJV9jDIp\neJ6VD47CrHSdI8Am0h6613atBejgt91FwPW41CqfUBnixZdimXTPaFE4WbyIZYcl\nJtHG3yjzZE5P8HSIL8Hgq4b9okBdWP6DZyG552v1pJjwx+PcWlUP8M/6di+KmkDX\nZHzKd/lsM562zypNVuI7QNUB8khKndpI3CZk9DDNg2LiZCul3n4CnF5TI6ZPCRod\nhZA+dFC7TlePbgfu2Yx2u6+qgAPPeMTDdiNZ29jDmHobp6vx2p0iApjkHl+7kldO\nzXigQdwy07mn/lJa104P8uc5ltUAprrCrt775E3y\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deckchecklist","categories":["organization"],"userDocs":"https://github.com/400-Interactive/deckchecklist#readme","adminDocs":"","developerDocs":"https://github.com/400-Interactive/deckchecklist#readme","issueTracker":"https://github.com/400-Interactive/deckchecklist/issues","website":"https://github.com/400-Interactive/deckchecklist","created":"2026-10-16T00:23:14.995663Z","lastModified":"2026-10-16T00:28:19.303430Z","releases":[{"version":"1.1.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/400-Interactive/deckchecklist/releases/download/v1.1.18/deckchecklist.tar.gz","created":"2026-10-16T00:28:19.298658Z","licenses":["agpl"],"lastModified":"2026-10-16T00:28:19.358092Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"DUMaeQN/ilwAtNG4e3xvzfkucoahiiqGed/8xMSQi9S6rWMFQhOFrRMD9savgyARo0quz4m7AB/cpTodiEDaebZv7YN+s2HHW38sHgdx7Sc3vN+85vd/EUKksN02ZADAaE8EIlIm5CsetGJazK1NA8BY+2nqbB2ZzPDC3+Gwt1EmsjnoYhoUInLRzWLARcFjNvhdhKAF1ybmmXxxTF1ryBe7GvNAScJRnoeNhR9xJ6BRYfyWVjQbERb45l5E6YqAGo3XW1whbU5jR5pAx4w1kL3DM/R3U712TsIVOkAwpGTMOTUIppfVj0OmTrMSkz//+NR9nU5facs2EHsmT4FpYExRGwO5B4+vg0kppUH64gBpZCjZCMyvfTpX2hdX+MzJAXXI2oNZSb2wVgPwRVQomGFQF/MueuQGL4jECfvC7ch8qPnozSzCxptufmL0JYEKQHkSafhvHvRnGH4dNz9C5FsY3O9iG4fE1ouWCM7oXhQx8u0QSEbhIqD0/tiwY+oRUAGvaaP/zVVicutRVcyNDczs90bLqLj+W8KLy/T8Wk3LD8zpXRV2Gee4EtvVKmN8vKNjDKTOIDsqa7G8kGC+1TtcvovLBm3gAVvrpl0cBpfL1GB8kY217Ri34Epm6zGV6jDELIMd9pJveJadVXPZvmxzwBDVBDc7S8HXw6BMXKc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.17","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/400-Interactive/deckchecklist/releases/download/v1.1.17/deckchecklist.tar.gz","created":"2026-10-16T00:23:20.614537Z","licenses":["agpl"],"lastModified":"2026-10-16T00:23:20.689439Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"ixLuH/1z/hdaMVIOQs//OXShC7z7y6QYCtnjXjETo/IqX0g7LcZ+P63vi3mskHm7w/A2GVGgKIYnOQkoW/uGzEbxICtvR4b8FX48NRaGKd8KD5Qm5Kh3/ILfo6CIcf2RAIqRcOVdYgQouei6Uu5VTYxzhjGUp3ze28T3gbvfPb2SZxDhynHM4h2pILg8Mfzrd8NHdFdBzEnR/OfhdgZU+ucLcFdfbR1go9wNNxEx1onQTthAaeEbp+EONQLM49lgOxij8zBM/ndF/OzkS7AKR3VSFsuoY1ZPQC5e1S/jznqnXsyDEYxm3fEo6Rb3UcV6kTrWvk33cQdAf2kO1jLBgzIih0Trgp8b6AfTZwnyABY7+thB0jN2BrNfCE5acu9s7Uh4ux1Y6N+3729e0M8bXXx01ywTUUEkCErqinOt5BkJiT7KHpLyrARDlzHuwj3aq9OOLWsfTgcjDqRE/CRZcIAHePHhCnBFOIGyF0xAnAqgz+tKMScADV/uZF+H/GWXkx3TwpDsiMBXjz4BoN4ZydZQsSlYDxTETF0Gwis+4eM+qDeYlHNTPeSzabhTxiq2Hte4zXQIrpiUiX2rQp8dQzDxVbj9Rjgmu6z6ttmlAxCk38hvhkZ2RjyqqR6YnXv0xNiCBObSQ1iQTWZIPLoFsEpeDlpxZFU4V/Z5n7vOFq4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Deck Trello-style Checklists","summary":"Trello-style checklists on Deck cards","description":"Adds Trello-style checklists to Nextcloud Deck cards: several lists per card, checkboxes, progress and a badge on the board."},"fr":{"name":"Deck Trello-style Checklists","summary":"Checklists dans les cartes Deck","description":"Ajoute des checklists de type Trello aux cartes Nextcloud Deck : plusieurs listes par carte, cases à cocher, progression et badge sur le tableau."}},"isFeatured":false,"authors":[{"name":"400interactive","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhRwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE1MjAwMTAwWhcNMzcwMTIwMjAwMTAwWjAYMRYwFAYD\nVQQDDA1kZWNrY2hlY2tsaXN0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnJ2k9DUid4/dsEinWB5Cytd7QB6wUPCigSQ/9gkqUzL5FwBP3muUAMLS6cxz\nP2iqnM4XIo2tjhJu5wFhUpWTGgzXmJ4Qyqdb1+KXozXBaBsAWORFAGiAYYGdvmDj\ndgK76OFGDYDcjKqXj3ZCoWk3fpfQSu7kQtcjDCxoN2lkm9NGkQOIhFDPqsr43ysV\n0yU20esKcSO+lT+NdY6FfjRVMaeKroWxSmn6ehRgFLLZo3QXHyEZbziVO66zArcw\n6BlaxKK2AbJPTmXUcs0yQaC6bCtuTafBeqxFTWH60KjB+HJNBw9wr5AoXQ95VNYY\nYVRfvQ4fxKDwz5Ed1arVcU+MrXlZBqLlXFpNu4nRBNtW6VxJDHWJZMCs7+SwPdqw\n3VhwbdvZq7iIqWlqJIVEQSCjpsr2V2ARJSrDGrTaRpQhq5QyNvWVuMOkPjHS5UTY\noRdA1PN4HhrcSs/zjhCZnEsjQDolAHj6MpeSVVxih/rdWTlZSZ2A/NTrMAZ1KuHD\nkVRPOBoJb9mH3AJs8Y3qg0QoPJ1spYYg7xxl9dy5tu25x/clFKr10RqtiJfyMatI\nEwiYwKOsbTnM5G1GsZlkL55RQsqoVN35DvlLA/h+YhXOqh1xcsng7M4uIhrY8scR\n0hxaYuWoJLaOKUJdq5eD3c2PNAYPjgdFZBiO4dwsdQMhoJsCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAA3FYZhFlQ0d/fFM1l73779AmwsSIw7pwyFg/NFl4SLwlN3oI\nGB3wPgFMsAOqqnLjHKtcLZg29YspvihqxrOxkVyngUWvh26phmp0E/4TZ8Nh8NbH\niwqwB9SKJ7myZYXWrmNOJvmTMy18c4Plk2/RhoZO5/rTpY45zIDzmoIdClIw9F9c\nxPzF7QXKVDRENegzAHxU0qWqgg+/LLPj04ci0RDKK/aUy5eXsNz8Bsh8d6yjVG00\nyn+OOq455DBVBx7vyZ6DjlSaDdQ8HIfCLJgMcu5g56vscyZyCfaGC7PWoi6SPydv\np+jEgcgTCxUJHa4gncLxRbe3tm5nEde1KCiM0w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"gpoddersync","categories":["integration","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/thrillfall/nextcloud-gpodder/blob/main/README.md#api","issueTracker":"https://github.com/thrillfall/nextcloud-gpodder/issues","website":"https://github.com/thrillfall/nextcloud-gpodder","created":"2021-07-05T08:36:21.780235Z","lastModified":"2026-09-18T10:53:38.682679Z","releases":[{"version":"3.18.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/nextcloud-gpodder/releases/download/3.18.0/gpoddersync.tar.gz","created":"2026-09-18T10:53:38.658999Z","licenses":["agpl"],"lastModified":"2026-09-18T10:53:38.730498Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"KZ4TIpLI0lg9FU1AbN4Z1tVAip8Sa35L+auogz1Ote5UuXknFbp6fAnU0fr6FtQRXUCObW4YIcFkwhumM/G1tWfC2h/vfiOir1lzPVTRrH3DQKRRvYu02zLdIW/lqq/WiaKpTh1H4bF0tM2KmglLXLXLHVFYT2lReP/Ei/0kgQFfQOXBb2OgS4r3926XQI58uOTzfdQETRbVdHTB4y6Q/X12JxZaDKiGwcdZiacUUqcQr23Dr/SL5AG3tHsAfdFEb0TkgH2InDofcyRKtTNCXsYW6SC4VKrMsXsd6RCiTO6iVvXU2D4RvZ3e5Vimkpi7957tdOBHHJoJVDjZkRwKRVUXD3TbHac3pKlN0ln8e5y43lEXb78IXRujZFwoa4dJVHjR7TwhIkPM/MmK7aDuigoubulu+9RxB2VLtN1p59VNAbkusD1EdsSlburn8/YTlJGuQ4zHpaMw2LwnzgmDcfh9GVRr/L1itZruWTBMFx2Si3oYGgjgvl5Kw9m0Eiw/zvSuGiKRZfqfMSuCJ10s1LB5wZy46NecEiMdfnZD5+AsTAvbnbr1b9eZCPk1U0TG4jsBedZg3bIhCtYq+PsaYVManpw1vf3+8U2FAN6DjFwyqypQ7nkXunivj+5RfScOIiYfCrv7tX1usqhnckNas27St0CZBuxuoV1IyEHdhPk=","translations":{"en":{"changelog":"### Changed\n- Add support for Nextcloud 35\n- Drop support for Nextcloud 30 and 31 (both EOL)"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"GPodder Sync","summary":"replicate basic GPodder.net API","description":"Expose GPodder API to sync podcast consumer apps like AntennaPod"}},"isFeatured":false,"authors":[{"name":"Thrillfall","mail":"thrillfall@disroot.org","homepage":""}],"ratingRecent":0.5,"ratingOverall":1.0,"ratingNumRecent":0,"ratingNumOverall":6,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhGJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNjI5MjEyOTU2WhcNMzExMDA1MjEyOTU2WjAWMRQwEgYD\nVQQDDAtncG9kZGVyc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMuhIoLDVNo0AU96HZc+e0HbvCiGr3fBh0AFuPiFsKucbaXNi9vFGyJZDESD5SX8\n4DzD6/IzkzLkOAYr4aE3GbhkCoXvDBIMYNWTQqE2Ip4BGNWfHPQnev7pEmiT9e90\nH3pqMEuSINwBuHYEp6a3g2DIJT1PPySb0OkcseQiNdB4oz2rVTL3mCXBfvTg4ItE\n1e2cLWmiwr/bSCfrxEu0OwI3IdiHu2LuWcof14Zny0v2026Is5C1BBd8z1tyHz5+\nepa6GG8IPsDM/jWECkclRLAtChgh7XFy2FSr0akPoPXU00V+lJp8YAMuCpojnbNs\nwuinrStAHlXL8yLSduAkUXb7wVKgYGcOTYPeMZx1XWJcJnHrms820v9/PiUA0zP2\nwFYGoFhRoX2FdzrtnXSpjqd5wucPdl8WEnLXrq6ft5ApoN2m5Q+O38o/O9ZDKsLM\n7Uowa0uQU8n2BCqqcOwZwJLziVSB3hZ9ztN405yXB1LXGed0w47bGSAUt8BHVqcg\nYUMnLcojngfEzSxD4lXErDTUqDv3wDjyiiHGRBKKtqWN9v8mQDcxOWAT7hJfFSBx\nSh7XZhgQN7OrVTGeHHpfFa2cmJ26f03fLLpEu035sAw527mhdGLlAcKPSY/1MktJ\nTvGwSZdjRqbsZYCh53+tJJQBVETctHx+1EyGdIx4210tAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBACZk6aVDyju7wj35hp4p//8pA8EFIDfFFUHOc/D7hhZrqZsHDCHk\n4XjvlUxJjsxd7E5yrjnGv//QD42V28O1MgZ0FKzT/hC/PoqTv6AVG/fns8Js72vS\nGCl8WkUUQ8yEAPvaf+luRd7eBH6zMZ/At7KrR83x4WJdxpW2RwGJ+6uhj/PfQUXX\nLW71V22F4oWAsUQucgH/T90DBsTAF074NPaUenlhQFnDE/5stHocwhonb+K3BfVS\nVg+A2B4V9612CERPyNET7mGJqmqqKq5XA6cG+FOY7XuQFUZs3CKUyAiRh/BIDzNg\ncn7EzqwEJnAkJgmlDrav352icv8dODGtAHY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"forms","categories":["organization","social","tools"],"userDocs":"","adminDocs":"https://github.com/nextcloud/forms/blob/main/README.md","developerDocs":"","issueTracker":"https://github.com/nextcloud/forms/issues","website":"https://github.com/nextcloud/forms","created":"2019-05-29T00:37:35.363258Z","lastModified":"2026-09-15T20:17:22.858250Z","releases":[{"version":"5.4.0-rc.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/forms/releases/download/v5.4.0-rc.0/forms-v5.4.0-rc.0.tar.gz","created":"2026-08-28T12:32:40.927548Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-28T12:32:40.966514Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"pQBXJI/jSqqRdgecDi+5dX/rhPi4Iepw9ig1Tt3MRNjOg+mAOjTxZ1/REP0lkZkmL41KJLrz7AbEezNzT880XQS5iqVILVr3yqGB3bx0Svex+S64YqQaXSngcpzFceWmOH5/wdBm4JHlxkzmeor5w8rjQvPhQ6OSmiBX/9uALxhfORrGpIC1LCUNNgjp1eSQaCo4HTuHPOda/TWXiZTD3dVFT+PSV4t4mPheEH8pi/Ji2FW0UkXb0EUWEsnwDZEf56CVmuO40zNDZ6Vymq+IyWWEWuRsUWPfDlPngqP4ZyaOoLC8Fn8DkKluqxuUB5TgyH3rwnvy8204diRphwVG/WpEyqMlsVxxHLdkfNWillNRgSZ2Hwc6FYG9PDtcdSKXOJawot3bcDzAUTVbLuPri4fCi/Cs/9uArtKR8kIv0ifbRXS385l0bIkSCVp7UDwg6ygnRzsJrrJcpaUu3OsVRBjr5js69Ok62z5/f5x4HV6H0Ih/F5M6glHZDfVnv1PA2KFU1+UQyt7uOCPubZaYkMo0HaxAmKf6dtitk+1xmeUssw6+/cKSyTzouz1gzDrVNYE649VJ5/TubuhJ/8JYZwYrVhAj5RbHDS8HAnfEP98mrOQ6kU07PYZQZUF96RMsBYODno8uLPSWMyPUzI8siSP3k7X86+C6y7Vl2MmCx+8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.4.0-alpha.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/forms/releases/download/v5.4.0-alpha.2/forms-v5.4.0-alpha.2.tar.gz","created":"2026-08-27T11:43:36.479668Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-27T11:43:36.513143Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"VioG5rULSUde0AwDWwVkZh8dpLr9oq8Tp/x4K7MBm7PFZBMG5AhpC8YUb3V9bL3Vn+MItCq42iiznZ1fOyRmddZL81iTMARbKhFPHQlPTSH6Gyh2iVAxHbf0RE6wsE5DElNdqXxhMuouopCf0mvaIJMaUki07M4KpOFbgqVH0W0z1UQHqIIdVOBcDWiUURKtQnV7wTofsxBnJirZRZvRN/U/qZ4mkJZc5ITcWMdCUgFHdNxNz43nfkMun5oA9lLuAkkIV0XBsdGUrSN+qQyXIRcf7XUJx0SnXCicBvzfw9Js3TgF1kxB4WRu1dt3JtBvkKlGYMNG2LIY4qZkjS5WHGSmJEzMT3ZxMOlmqTZCbyt3iEgePLBE/iqrFPLHXH7g2ptJHz8k85vU6kcnVTVjmGQNNG/GS6pbxCmhpHuTlKrRYmuicreXauQ8w1Jc6C27F+dVY4KMdeCuqKTw68wgbP4l8prudgD1DKddumFN2VS00AoC19+b5yNAzTLMbOGSLkBDFh/zs1mrxwlPYAT8sMItdJRCTfiPtShdkKDWd2jAmzw6xViAG6ulow8f6v/6vfDtg6BA5teSYio/YH6qI/cxxmoGWNWpoKtBAPmhb72lwwPCl4rx9R2O2Eli55Yx+xDD3QX+3OPkBBQODHx2bFuCNe1xpfjYT46KOVzp5qY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.4.0-alpha.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/forms/releases/download/v5.4.0-alpha.1/forms-v5.4.0-alpha.1.tar.gz","created":"2026-08-25T11:32:25.593765Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-25T11:32:25.626814Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"B9RVmK9m466a4y7nd2zXp0XxlBcqtcuAjvUmWPrmcZWRdRV4W5UgKk+TdDhhBNs9Ccl/lt8W3hUMc/AWJduF0oICr3ZY30H2H+ipsTNp8otaeie1Aed3z9/n3k1mUwVJA4GOe8ujNosuYMkjmQHIUuvnZ/nUGzhEMCpuafuMDxrsrNI0+aEpVzm28RPKIwBbDK+KopMCrULsjVZllG0lDMmxLl47oPJChf49O+tgqEz2tunkHdWFVMT5y4G8NZoHfpcGYDF0sciFAZabmcV6s/6F0NQvZrlBveR269sctJA/X80SziB04xCG7VWApt3wpHQs7pczXBUyx1Kj5sqXDnOaPeEiIR25UrmUz5QFF3Uv1XeDOaDj4FqWIzWsZVLVfCvtsGXKaXRkGBQzEhXBaPz5POCfUx9A4PXyOhWt+qfWlZqz5fh907Bt8K8eDEZjJKKxOjtayQCx7XYvXianynmP3Sj+YMyJm8U8Dlj9KIAnMVxZ8NhQ0KBl7kCnxcEYuxsW/KgoW3jbZ9jzg2ZhYgPNE1vJzMR5R8JaH3b1VTC2fuS8kpSwAQG+iQsosYjYuZrTyyHiAWzEM+Q1Q7KLhPu9A2vkxNZxYaPfSM8I/yFkZgcf0NpF9z645dYX7VX19ONifdtyg0aldc5jENQUA8wQ/DYw0dAholRMoYXumJY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.4.0-alpha.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/forms/releases/download/v5.4.0-alpha.0/forms-v5.4.0-alpha.0.tar.gz","created":"2026-08-23T20:54:48.267710Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-23T20:54:48.312830Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"HOC0zurS/YX8sBbUOQ/WmvHGzPYQ1vahIrR2UWeovhca4b9FE9eyBlEr3EDIkIFzPph3PmP1k11hSloMXRxp7eRI416nsH+oXmEH8iqoVjbDn5dq9X8Ck8jPA92QYCeWCBbbAEgN25CZM6DbBU5G1pdd41bYxm6QN8FeE9KmmOrZGHuUrAuLrLRGxps9nRlOL0qymvWnls9UxgH7RYBwfAsmStDCV+T/MV3NiKZq73PN9KU1CcdRgztNT1UbJIaFmYpqPtC8GuKTLj4cnp3aKCDk8E+KdyxtQMqb2KAsDESfsZuhdh07+LSQiwu+j/D2NIlqTjWKw/yCThUqT8fv87sDExanr22z7hcOCEA9tGHFMIEyd2DJbhQLka1sZ7c6JzpB1Ngv+sr6gDL71aP/NZ0SK+CzhzvCI0yFK6qrqy0R69yMtH7JImeOfIl7eH6OzK12vNeCoPtjJ8us9uDaLotdAQ89SPWE0EqLIAgwYXddXimJkMqoUeAOZf8iG+3I93GfbyLPyBMZigigF0U2MxftEOVhEkEBIjUZ1Tt0oJ1osUSVQ8U8vlu7muw31pSxsnKA8X3+5veNEYqxytJ9tvTon5AZ9hpNdkO4ArIdXJMSvKDSu63KysnVWCgalwH7Z0l1UrLPGtn43FZfOp4MD/IT50vTWBrXUIgQNaRsZBY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/forms/releases/download/v5.4.0/forms-v5.4.0.tar.gz","created":"2026-09-15T20:08:51.734193Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-15T20:08:51.816476Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"uGADtZLRjXJ2VIKcfIOzrzoM1AVeI2MeZ6qELd4v2Svq10IOvGeCcnsvJq78jV3+As7tgFV6I+UzP0jKO789dkRuppWscacfAY+hnRb4e6R9rwvMVLPn0p8MqRgM6TSoV86nxXsMzFW7HvH4bAMZAol7JuZoQFOG/mnc+rHJ87wx/gY4E8/J9RRV6nLesiI4ZGySJV/lQipUudNTSq2WCRznk2Ryh745yBWgUEAo7CZ3u6ZQXz+EB5TFQhi0zksC87r0NBtjxZIh/slsPDMHznJ3nqP7iZCvVBQ6++dRrbwtNWedhNN/gLI1nA36nPTqwzf5R+OBjvioIzhGHq6+kto6W7gTRG6PboLlhV8ENckVbUkGQe6nGc1dKFwQx2TtFPWoAfQBUIoHPWMevuKYNthMFrUkYBh+qKoO3ngWiOIoeTOdsqX1MFjZrw8fZhsjNXqRZtUXO3U8sm9eo3F59ryomh6lauW710KRt7PV+3gA9eBRze8jNX9QhUrkVnPhtTzNYUmmGCJN9A/D1vizBcavVYI+Y559imrBpiVTcIqsxlKBTlc5fL7UtfYUtt60S+/YVTMhcsOtHUZNOo5GTwiTM/gpzTzQAm0pnlcfwOGZMK4N6iAP/0HAMGP9RurPNsYaaQX4F5Bn99aJeTXr71dNORQl45uz8wPVFfvxJ24=","translations":{"en":{"changelog":"[Full Changelog](https://github.com/nextcloud/forms/compare/v5.3.6...v5.4.0)\n\n### Enhancements\n\n- 🕵️ Add sharereview support by @AndyScherzinger in [\\#3589](https://github.com/nextcloud/forms/pull/3589)\n- feat: sync submissions to export file by @Chartman123 in [\\#3546](https://github.com/nextcloud/forms/pull/3546)\n- feat: allow users with RESULTS_DELETE permission to edit all responses by @Chartman123 in [\\#3456](https://github.com/nextcloud/forms/pull/3456)\n- feat(sharing): Allow custom share tokens for public links by @Chartman123 in [\\#3435](https://github.com/nextcloud/forms/pull/3435)\n- feat: remember last results view in localStorage by @Chartman123 in [\\#3432](https://github.com/nextcloud/forms/pull/3432)\n\n### Fixed\n\n- fix: update dateMin and dateMax to accept string or integer formats and enhance validation logic by @Chartman123 in [\\#3659](https://github.com/nextcloud/forms/pull/3659)\n- fix: submit form by @samin-z in [\\#3666](https://github.com/nextcloud/forms/pull/3666)\n- fix: show correct window title in edit mode by @Chartman123 in [\\#3606](https://github.com/nextcloud/forms/pull/3606)\n- fix: enhance results view handling by @Chartman123 in [\\#3563](https://github.com/nextcloud/forms/pull/3563)\n- fix: stylelint by @Chartman123 in [\\#3497](https://github.com/nextcloud/forms/pull/3497)\n\n### Merged\n\n- fix: define array key for \"allowComments\" by @DmySyz in [\\#3662](https://github.com/nextcloud/forms/pull/3662)\n- Apply rector changes by @nextcloud-command in [\\#3634](https://github.com/nextcloud/forms/pull/3634)\n- chore: improve type safety by @Chartman123 in [\\#3605](https://github.com/nextcloud/forms/pull/3605)\n- chore: cleanup code after Typescript/Composition API migrations by @Chartman123 in [\\#3601](https://github.com/nextcloud/forms/pull/3601)\n- enh: make insert question menu wide by @Chartman123 in [\\#3600](https://github.com/nextcloud/forms/pull/3600)\n- chore: finish migration to Composition API (Part IV) by @Chartman123 in [\\#3596](https://github.com/nextcloud/forms/pull/3596)\n- chore: continue migration to Composition API (Part III) by @Chartman123 in [\\#3595](https://github.com/nextcloud/forms/pull/3595)\n- chore: continue migration to Composition API (Part II) by @Chartman123 in [\\#3590](https://github.com/nextcloud/forms/pull/3590)\n- chore: migrate mixins to composables by @Chartman123 in [\\#3577](https://github.com/nextcloud/forms/pull/3577)\n- chore: continue ts migration by @Chartman123 in [\\#3506](https://github.com/nextcloud/forms/pull/3506)\n- docs: Add webhook support section to README by @Chartman123 in [\\#3434](https://github.com/nextcloud/forms/pull/3434)\n- chore: begin migration to TypeScript by @Chartman123 in [\\#3327](https://github.com/nextcloud/forms/pull/3327)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtcy9tYWluL3NjcmVlbnNob3RzL2Zvcm1zMS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtcy9tYWluL3NjcmVlbnNob3RzL2Zvcm1zMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9mb3Jtcy9tYWluL3NjcmVlbnNob3RzL2Zvcm1zMy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Forms","summary":"📝 Simple surveys and questionnaires, self-hosted","description":"**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑‍💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API_v3.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!"}},"isFeatured":true,"authors":[{"name":"Affan Hussain","mail":"","homepage":""},{"name":"Ajfar Huq","mail":"","homepage":""},{"name":"Christian Hartmann","mail":"","homepage":""},{"name":"Ferdinand Thiessen","mail":"","homepage":""},{"name":"Hamza Mahjoubi","mail":"","homepage":""},{"name":"Inigo Jiron","mail":"","homepage":""},{"name":"Jan C. Borchardt","mail":"","homepage":""},{"name":"John Molakvoæ","mail":"","homepage":""},{"name":"Jonas Rittershofer","mail":"","homepage":""},{"name":"Kai Schröer","mail":"","homepage":""},{"name":"Kameron Sheppard","mail":"","homepage":""},{"name":"Kostiantyn Miakshyn","mail":"","homepage":""},{"name":"Natalie Gilbert","mail":"","homepage":""},{"name":"Nick Gallo","mail":"","homepage":""},{"name":"Peter Ringelmann","mail":"","homepage":""},{"name":"René Gieling","mail":"","homepage":""},{"name":"Stephan Link","mail":"","homepage":""},{"name":"Tim Sattizahn","mail":"","homepage":""},{"name":"Vinzenz Rosenkranz","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9583333333333334,"ratingNumRecent":0,"ratingNumOverall":12,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEADCCAugCAhDqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTkwNTE1MTAxMzQxWhcNMjkwODIwMTAxMzQxWjAQMQ4wDAYD\r\nVQQDDAVmb3JtczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMN2WeVc\r\nNLFrgszdLf2KBrGrgcRvGhjt8On4M5Kg/rtAE2MRy90vQHq3l41PUVPGNFl4cB6b\r\nwngVONdAWZwmvW/cnQ+7mnPYAo2SoJiIXKB9BnJE4Zs0q3NSsQz0DFardZdXhD+V\r\nHDrBUmIu63MC2ROkolKwvhvi4SAdCMQOdnL8K/RzAxomoqndcdcIFeQBGa2qQVXD\r\nuOxSHrcAaOYsPfsoMMTWlxUzBzrG4pVnluuj25b0GfFtNMCk3Yoli/VDnxJO8B6a\r\nZ8lg0ezl114VTtnYWCAAPefZNhLPmeGkntLa4FuzvP1QqDVhFNLbX0qsVdCo/Ian\r\nnkgwDQJU+ge68h00s/ZaD9zw78GtlabPTSjuyOsYOCcXohDZmS5Ij2fF0JqozkYt\r\nhI5hwcL15OdtGh8RDcgSSaX1oukxbhHAKAlEet4fNwiTQ4UmZDFEsUtzvD0P5a3n\r\namIGMXq+0OHJ9geXbMQ4014Ziqw4zZFBp0nTRYUrrgGnrx9E4E39oyCL7GJBf6Vk\r\nyC5dHWsYqFHznOsyexLTgMA+mIBBEQDsN0DP1ZfI8Pixaw4yTB721rs+VzIhg1dm\r\nnCY0MgMM+xYCdAdcuImvTlQkmY9rIHu08xbIFtzgRpieuGaiOsx6sCT3LJS3a17A\r\nr8PjlfvT0f8R3E0h0qzaJAFbLkEN8Wpjhl6hAgMBAAEwDQYJKoZIhvcNAQELBQAD\r\nggEBAC3etYFViycd+j2m3l8JjqMMzMB8u32b0ajymm6NPkYj7WgwsYYLGTKx3zlw\r\nz0weCGFbGodrNoYPZlViHv/nCLzepeupdVKIG0eaX2hmwqSTAcAerDnsPX59q7SD\r\nivrGqgaqazWBv7O7CgbZarXcNQjNjqP5AdESZB9T+c0sKN0N6OQRwNcKCoJJhnJY\r\nVinjZSBNvL73q2diMW4VjcIOs0IomcEn51S1iWMt1cC21CuHRb372XF5vBOqoIky\r\nkGxMCn0khruSpAhkZmf/7xyixaMe7H8H+R4ARLW5Ug8tXvWMl7Ew/v9MuwzJVOT8\r\nPVh5ZBnr7clc+uBcB0/pPuokxBY=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_bluesky","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2025-02-07T13:50:05.195364Z","lastModified":"2026-08-06T14:44:05.231856Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_bluesky-v5.0.3.tar.gz","created":"2026-08-06T14:44:05.215689Z","licenses":["agpl"],"lastModified":"2026-08-06T14:44:05.266828Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"bRKtey9X9ZglIGzVBHpCUKppzJmIZEsQg/US2icZVz0Ui74OZSH+JkpMOWNJ14Ef5daPWgc3bZfbVqE6k+b2X1tzNfU9tGiooBzfq9wfxU/oHwVcZE/5/CjESQzmyIW4RdpfGJdN1bQyz6Z1lur7rcPrqMKR+OAhc7pQkMlA9H9WGJMw4GQ1UvP+h0aUhSkMbf3BsNEn7LoSPSpKsbPeIFSUA7a3JQjhMlUhUap5S24ZacGMU3zLtBkErMnV4YkLU9gwzO1HOZL4aNemFwhR4XKE1iYVs6lJmHtk9Nwq8etO2BZZK3t1+Fv6PSd3s1ka9tYZUPBeosfpVD24SVogY7zJSGXcifeTH2RfAxFTSXz5+2rvSxWlHgEKNcGYvi2JuiKd9uIjfmXIkhp6vv5DP7gTWTyO7fU5zPaMc8Pc8eaFx9w79AmjwzEq7i6g0qn/iFR/5c5FKgCtBbJeHObzQm6AWqSPv8QzlRnc9fNVlzrz57276kc3o706pI8O72kUwTiudqtSi5XBQ6kDwF3EEAgLFsZZo8LBwBF/fl+/0xDa7nNLtNkJ+qTzjYt58eo0H72kVHGrDujqv9sW7FO9by/4FU0cWUvYmNk8i8nAWkHvB+oXuYbU+XsMnBLuLFHyUgN8empozf++6nyjNicHEUVySoCooywXPwl5tuwca8w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX2JsdWVza3kvc2NyZWVuc2hvdHMvcHJldmlldy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via Bluesky","summary":"Enable direct sharing of files via Bluesky, using shared links.","description":"Enable direct sharing of files via Bluesky, using shared links.\n\nThis app always links to bsky.app. Using other domains is not possible with this app."}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhKRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwMjA3MTA0NDQ3WhcNMzUwNTE2MTA0NDQ3WjAgMR4wHAYD\r\nVQQDDBVzb2NpYWxzaGFyaW5nX2JsdWVza3kwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCr0zjRZ1upYsaYRtaYqKRQMXcfsEaSh+5EqRFH5W2WrRlYbgLx\r\n8YHMgCeq3+5Yfm26BPycxRxkzsF3RuaG6ISwChG7GtF4iiUTZp7THhN+xhqrbFBr\r\nkU8rwiKGbGPdYv0FOOBnUS+1/9mWGkuW/g2dnT5urgTMVD7ytaOl/oylf1OWnQyy\r\nZOJXGUOltP0+UAj+l9N6uRvb/pBwen/prA53YPBcddCE/9wmIHjpldhOdOTTjPn5\r\n9fLP9TnIp4TIMv7ldxFRAVnfKj7V61nG7smrbf5kjR9n+4OBe0FMJxa7vzKUB3Vu\r\nUrQrO4wBFy+kS4bvcOIGQoQ3HlAdWSTXNjERgOFdHMyI9h9RWmeUrMwxhXjAsn0g\r\nkYO9OawK9TexmJE9E12bs7r5VCZOnzO3ZEADwVtZvxdjhvjElqZaKfd9xdr3gLGC\r\nd3DriVUWrkMzyDjWz7kdiwfkuEYxE87ZKOJ9oZhlf6yqA1ctkOhD98Z9ifqJHb1Y\r\nLu1HH8KpCRns/cc6R5HSI8Rhj3FnuYWgiwkJ3G2u2gXqeunInDTH9eXeNQrnAn0O\r\n19jd6EqqxLldcFDEViyvkUoBBBy1hMH873YJJo848WtqJGAmHfe1ptx0PuonH9ww\r\ngUs/u7aghub9UtviOsM9XmRCBUVsI+Le9lFpzbf9w8xtA1ARpKCAZ4HMewIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQBxlso1ejyGoPA7TqYbJOxD/sSrPrIpzZH+KBY5\r\nRPUqZeHU9xx1D+Yw+Ta0cx+Xp13coAlQC/trwwgBPlZwDg44cPgxCHar28oyKNN6\r\n8mDleHhRtMKki9urgsNtXACHKub92yxkW75j93MQNQQcFOYpQySNCZeiNS6eXbhi\r\n+WmZBLIH2TGiFlnwEAIUb5pH7j04WdhEcdAX8SeCOJg8Ez6uV5RuwzD3LspHg9hf\r\nJvDnMTeFgVVsfnVvyra/CW93F0HvF9gOIc6wBXKCAPSk1vWk225BOyH5GmreBXtw\r\n9Z/suLiG3MAkVw9cHWlwMvYieI+LUzh96XI8tKdF1rAEgCb4\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_autorename","categories":["files"],"userDocs":"https://github.com/powerflo/files_autorename","adminDocs":"https://github.com/powerflo/files_autorename","developerDocs":"https://github.com/powerflo/files_autorename","issueTracker":"https://github.com/powerflo/files_autorename/issues","website":"","created":"2025-02-07T11:50:44.769810Z","lastModified":"2026-07-01T19:52:29.719822Z","releases":[{"version":"2.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/powerflo/files_autorename/releases/download/v2.4.2/files_autorename-2.4.2.1.tar.gz","created":"2026-07-01T19:52:29.706396Z","licenses":["agpl"],"lastModified":"2026-07-01T19:52:29.764560Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"MO6v1eJAU2STb5SVYi3ozDXW+0HowEw00Js7/5crIu0mSTCD3wuP4ZX6ZMSg2qRI\nPEaf3UHeChBMW05neD2J5+IrN6IC0HwI79n3fMC+pGZla5nOpu1MXzS9LBVf1n1O\nMaTzTy4F7DiLE8lGb3WAS8WL4PX8+BWtIaRjEctv3MidjiuFLEM1ihZORIi5bApk\n9DqyK+Q9sN/4fc4knU4uHolvaXrDIzIQdTH2SBBFPxOScsVIk2Oxqax47Zeh1t6x\nIpLiiG+Bmt7SmR2PBif5U9U5J5y1btMbG0B4l5SMn1W4rEr3ubCdvl5J/9CuEIE4\ngGj7J0qJjFizBz/gWFfVKoeKgbGiqKr2L1pT9TW3T69GL1T9zPWT4vss7YZ1cdjK\nC9j0o40QR7gLe0VZYm1slxcnpZ1y+FXIFn/PsjKwCVLnAz3a6+Evys0VpJvROae6\nG03bXYzO1CjJzJ5HC17QNg08AWGmDOsB3CJ1mOs7rBVJdxTkOl24b8bTg0BkWkmG\ne48H9/kYq8eCwjzXbyCHOZNbtMv3vpywlKGAcNOYCHyDglCJcNB3KFuS5Yjy2Vjh\nyCLWgrVf3qln7SRtmnaHfmAttuN4ZwW9Vs2w1vDKn+uKGepKfxz2U12ESKdZ5DEK\nn7AmJOsjBY4X+ViQXZ0s6VNIIyviNbsE0zUxxP0lTxc=","translations":{"en":{"changelog":"- Support for Nextcloud 35"}},"signatureDigest":"sha512"},{"version":"2.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/powerflo/files_autorename/releases/download/v2.4.2/files_autorename-2.4.2.tar.gz","created":"2026-06-08T19:38:37.792684Z","licenses":["agpl"],"lastModified":"2026-07-01T19:34:04.903782Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"RUi9xwOia0zOlMorabVq/5RB0VWJ6ye38djdXWNYTjLjRqsxFSSMPxi1xUKRF9oD\n4HMfPjW1c5TT8fF7UGfsJq+bBapfwx4dxhzGPS6Axgmrv3VtE8LxuQdTxHxrVIgy\n2J/vnjVkEz8y5bZc7j9+z4bEjOAFfx3LtMoEcjMmVF/wXL+KOpUil1u7pvymxKtP\nOrJPHi6GI9Y4S6DEMjyUP+JdwXW3YzDHaXY4RCS3pd3P31XhhtfkpYB9FM2zIxvL\naw/5xHAc0AqjcnC/fwJrER95zo+o0joqqamXAbJYA1ktRNcQZIdBjGs3gnr6ETJP\nMQsPScRd1g1z2jEbfyPw3duNlgKUcabSWNdugLz1iVa8bkRmJn6lfZ6sg5ymtuIV\nWgorZiXjzcflovUcH0XC2JnIFYh+XC8QMsJCVvtyPspI0mxwdrms5uumNZVb3nNu\nLM2jtkg5flhotascSddtiKEFXesborsT987zB0cfX2ZLuxj29u+6GCFSDcdHJa2o\ndV/6HTCOT9tgh6VeFyb2h7CeMvUijMGNPNO5D9cd7HDvJKJrQwcs3IXTl12iNB3P\njI0MuTXmPp4AyOD8PKFFxyNR+VdjYRRkX2ZJX+1sxUZGCESAecjOt5QgFZacVnSQ\n60FAwi0KmHuTTURq27hlyBymWNpGO98vCetn3FfOw/o=","translations":{"en":{"changelog":"- EXIF date parsing now incorporates the `SubSecTimeOriginal` tag, giving microsecond-accurate timestamps instead of second-level precision only."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Bvd2VyZmxvL2ZpbGVzX2F1dG9yZW5hbWUvcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtZG90LXJlbmFtZS1jb25mLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"AutoRename","summary":"Automatically rename and move files based on configurable rules","description":"AutoRename is a Nextcloud app that renames and organizes newly added or moved files based on user-defined rules.\nBy placing a `.rename.conf` file in a folder, users can specify regex-based patterns to rename or move files.\n\nRenaming is handled by a background job that runs every few minutes, so changes may not be immediate.\n\nFeatures:\n- 📝 Define renaming rules using powerful regular expressions.\n- 📂 Move files to subfolders specified in the new name (e.g., `subfolder/new_name`).\n- 📅 Insert metadata like dates, EXIF data, or file modification times into filenames using [placeholders](https://github.com/powerflo/files_autorename/tree/main?tab=readme-ov-file#what-placeholders-can-i-use-in-the-replacement-string).\n- 🔍 Extract [text from PDFs](https://github.com/powerflo/files_autorename/tree/main?tab=readme-ov-file#pdfPatternMatch) for custom filenames.\n- 🔄 Transform filenames to [uppercase or lowercase](https://github.com/powerflo/files_autorename/tree/main?tab=readme-ov-file#how-do-i-rename-files-with-upperlowercase-changes).\n\nQuick Start\n\n1. Place a `.rename.conf` file in the desired folder.\n2. Add a rule like this:\n    ```\n    ^Invoice_(\\d{4})_(\\d{2})\\.pdf$:Invoices/$1/$2/$0\n    ```\n3. Upload a matching file (e.g., `Invoice_2025_04.pdf`) — it will be renamed to `Invoices/2025/04/Invoice_2025_04.pdf` during the next background job run.\n\nCheck out the [full documentation on GitHub](https://github.com/powerflo/files_autorename)."}},"isFeatured":false,"authors":[{"name":"powerflo","mail":"asdf@walura.eu","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhKSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMjA3MTA0NjIwWhcNMzUwNTE2MTA0NjIwWjAbMRkwFwYD\nVQQDDBBmaWxlc19hdXRvcmVuYW1lMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAwuS+N8u5L3ZHanvYzf3A2U0L1LCIqTwD9sI0jvv/HrYNDVNuoCE8vPhf\nfGyatZKvnKnVBJt890QXUzS6WessMDtJ5PoxoFYs8NfTUvE5H1YAKOzF9tXDw+Pz\n8ZiFvvEh2yA8NbrCAxWe4qYPraAIf7C7zXYX5XBGNNHDj4gz19DUDX/H3DjDNKSG\nR5rNhKbbBGtJRX8FFtVoQ5y/Q4NBcSGN7wDWtmljW6XFgABASXrjQ84AJ5zEySs/\nbMvQ/EECJje+UeQ+QxtjjZiWCMSBDiQrBCZ9I6DquGGyUrq++pkle+uJ5xRf7rMI\nxwAbJ1ZuX6gSDciGOMsFoTovTGGtccXh/PU0DNhF2AiXMH7D4b82cJZPi4Q7Pdt5\n/nU/nfD/vaJ7gWRQ7pQX1wC7iXfkb4HdDDAv++WmN6CVXwJSRdAQ2bgWqc9meEFH\ntpPavpi1ysrtwgPLsZCPv+FOb6AIuPFqVjAVleRSKr7lUSrzFI9ILyZWKmoERWqb\nJ2jaJWtqsq8Hekk9sruy87qmJxLhhSdTQ2KdsfRiPiToDEe6Mf/PSeX1t2WvSLml\nGokbrgRQ/heQqXlW74UvLVIs24z4DDXXCF7+t4G0UrLJVm1yLigVL8T+XrDRlvi2\nylReVranxSn/2as10KEZpE0Rr1yf1zBoDIfxunLhrakTXg2AAz8CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAOdrNgRXcE0zRCIOFd0kfAJ1smlKdeIPpLMme4ku11Bgx\nEXPC8xLXnSKY6rtNc4TWDKDx9b0h+BVYfe5+/z4Syw8f4pV2JOevM/wprYfaG0L+\nKtKngzmRdxoG/vQpARoyPmXhwY3NXeCOtf3XXNOWiWFn8+AirALUxYfN4lqJyPLA\nCDQmUK3kUSxP6Pnp4dVLokGERK1oc0i2qpcXlkMOvl27usgTonR5MtG5Z0U/H/cl\nxweksqjbo2ZyhGAv9jBp/2B1ypQF3x3umfXWI9yCZmvP+hAngqgu+gI6fZT96eWL\nTsdFuSwIcu2nX8Fu+6hJJa9Yyjx7Vf3ty28FSGTqDQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"runbook","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/More-IT/runbook/issues","website":"","created":"2026-10-04T23:59:09.691117Z","lastModified":"2026-10-13T17:47:35.657346Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/More-IT/runbook/releases/download/v1.0.1/runbook-1.0.1.tar.gz","created":"2026-10-13T17:47:35.653097Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T17:47:35.696281Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"D99KCz6TmNiAr3lZLIMuI1juGhjefSlKSos8aCjtXowWHkm2tOfenvfSV2nifgXCcDAwCWc87GFhhFsu2ktytCWy9IQHoDi389jQkegXKcnZphL7eQQuRtyFsBLAjbLGekDzQ2DtUaxH6c5Km74g3CQtCCaQLAlh4+0CfOuoiA2o1D0DROzViYVuuCLv9JwFDxDgiPGsG9v3jqS4gqUIGTUojY42OHvj+FIHuIeVNtnIu5w+YbUHQUavgxoTFtWB2kN1svm3v+Y7Dx7tgsS9pN5jZqOaCEjH/rX4Pc6a6dRbVFX22LI+/Ryr9oMyf6knycKALFemKiJWAdD/8VCE6i4NqpXjjEEE8dboeN9SZ8zVSf2vsFzOqACKaK0R5CI8oPAcIioPn4Lu9MpxRkC70XhkfGkdswn1/WceA3/oJG216g0Zgnnr6Jf35A6PhYIs7S1e+C/MiJNleps25xt43EPmgkQduXDd4E/zwqew91jvjUHm+0W7KuxIoETGvz6Y6r9cj/rA5DA1FDvqj3bGp3vbaELsjCDcPwNPtzMP3qSAEBRtSNnulUhaNoq8dbUwZohRIgNeVOQY5I7Ucgdtwm3GRh0mhYpP5I+n4KZUW7LiY5E54JQI+3Yy7iJF8YnqxVqWTonVmfeQXCpiSQtFOkIYIm8QDAjKqeZq3y8+iQA=","translations":{"en":{"changelog":"### Fixed\n\n- Completing a run and the run list now apply the section flow, so required\n  steps in a section whose condition is false no longer block completion.\n- `appinfo/info.xml` now validates against the official App Store schema\n  (element order); CI validates it against the schema.\n- Duplicating a template now copies the section dependencies and conditions,\n  remapped to the copied sections and steps.\n- Actions on a run refresh the page in place instead of replacing it with a\n  loading spinner, so unsaved input in other steps, scroll position and focus\n  are kept. After a failed action the page shows the current run state.\n- Step counts use proper plural forms (\"1 step\", \"3 steps\").\n- The run role is shown translated instead of the raw identifier.\n\n### Security\n\n- User and group search now goes through the Nextcloud sharee search and\n  follows the instance's sharing and user enumeration restrictions. Before,\n  any user could list every account and group. Administrators still search\n  all accounts. When group sharing is disabled, non-administrators no longer\n  find groups. Saving ACL entries and assignments still accepts any existing\n  account; that is not restricted yet.\n- Notifications are withdrawn when their run is deleted or the recipient can\n  no longer view it, so run titles no longer stay visible after access ends.\n- Duplicating a template now respects the template creation policy.\n\n### Changed\n\n- The localization pipeline (`build/l10n.php`, `build/validate-json.php`)\n  supports Nextcloud plural entries.\n- Background jobs are declared in `appinfo/info.xml` instead of being\n  re-registered on every request. Existing installations keep their already\n  registered jobs; upgrading to this version registers them from\n  `appinfo/info.xml`.\n- `appinfo/signature.json` is no longer tracked in the repository. Release\n  packages are signed at release time from the exact packaged files, so a\n  stale signature can no longer ship with a development build.\n\n### Compatibility\n\n- Nextcloud 33–35.\n- PHP 8.2–8.5.\n- No database migration."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/More-IT/runbook/releases/download/v1.0.0/runbook-1.0.0.tar.gz","created":"2026-10-05T00:04:44.894056Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T00:04:44.961067Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"LvOrInBlCVBvFBDxXJK01724tv/aHVFo4RoeRNp0UHJVXVmyHoAI7d0TZrU8ajxgJRo5G+Er3owHDiogecu7vTUN24k5g3ZYjV46MjbFcgvvH6zIXFxeTdw/eryjV1HitdWVB98pYKPTBiZyQqXmZSgtoN9HJQ6DXZNlpUaUKwx74Ci6RMg5uDdaAJWV21vPfY8KhUu8fcr/WYrrEeMOwOIPi0srdBlQIFYZ2ET6dy/UIphzy28mUfX5j6Q0AcUADZbmoqjltby+2+eG9LA7ocKRGYU5HXKEdGvGTlqFX4qliYecJ7kLXgspLLpHoTMLS0UHBBnEJdK1wGfx+WjmWpe6g7hwz2AWr7O08k8b6Pvrds215ckGXNHpwC4rJ6/2gH1tXhyI0JNJy0O6fr82aYqcS6uMdQrWv6OXeTI1Ow3gpVDQVmmWcQDz0bVKouwSPe/m/w4ywOmyPMmduCS2QNFmGrHyYJfn6XoUR+gdU2PKg9sDWHxcEjEigeJmBcVxsRma4Txsn/YajkjtsCgKgd1G4l0WnVmuyqnKksd29hBW4V3Xm83rolwx8p+J7U93quVZZla3qxxN9CFNvY61BBd66qjpJnqYiNSonBGWN37ZYp8KuVM3SHmUyfXOiQeW1Pa2uTVm+uWL/7R2Lm7r70pcyvRYpXNkFKDLjPYAppQ=","translations":{"en":{"changelog":"First public release of Runbook by More-IT.\n\n### Added\n\n- Structured runbook templates with sections, ordered steps and typed responses.\n- Independent procedure runs with snapshots, assignments, deadlines and progress.\n- User and group access control for templates and runs.\n- Comments, mentions, activity history and Dashboard work integration.\n- Native Nextcloud notifications and Unified Search integration.\n- Evidence attachments with MIME and size validation.\n- Nextcloud Files-backed evidence destinations with reconciliation and guarded\n  cleanup behaviour.\n- Import/export of reusable template documents.\n- Administration settings for creation, execution, evidence and integration\n  policies.\n- Portuguese and English translations.\n\n### Compatibility\n\n- Nextcloud 33.\n- PHP 8.2–8.5.\n- MySQL/MariaDB, PostgreSQL and SQLite.\n\nThis source release is prepared for public collaboration. Real-instance\nacceptance and App Store approval remain release-process gates."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Runbook","summary":"Create, execute and track repeatable procedures as structured, collaborative runbooks.","description":"# Runbook\n\n**Runbook** is a Nextcloud application for creating, executing and tracking repeatable procedures.\n\nIt transforms static checklists and procedural documents into structured, collaborative workflows that teams can execute consistently and trace from start to finish.\n\nTeams can create reusable runbook templates for operational procedures such as server deployments, employee onboarding, maintenance routines, security reviews, production releases, audits, month-end processes and any other repeatable activity.\n\nEach runbook execution creates an independent historical snapshot of the procedure. Steps can be assigned to users, completed individually, supplied with structured responses, comments and supporting evidence, while Runbook maintains a complete activity history of the execution.\n\nRunbook integrates naturally with Nextcloud users and groups for access control, assignments and collaboration while keeping its own data model and business logic isolated from the rest of the platform.\n\nIts purpose is simple:\n\n**Turn procedures into repeatable, accountable and traceable execution.**\n\n### Core capabilities\n\nRunbook allows teams to:\n\n- Create reusable procedure templates with sections and ordered steps.\n- Start independent runs from published templates.\n- Assign runs and individual steps to Nextcloud users.\n- Share templates and runs with Nextcloud users and groups.\n- Collect confirmations, text, numbers, dates, selections and files during execution.\n- Add comments and operational evidence.\n- Track progress, deadlines and overdue work.\n- Maintain a complete execution history.\n- Search templates and runs through Nextcloud.\n- Surface assigned work from the Nextcloud Dashboard.\n- Configure application policies from Nextcloud Administration Settings.\n- Use the application in multiple languages through the standard Nextcloud translation system.\n\nRunbook does not modify Nextcloud users, groups or global permissions. Nextcloud identities are only referenced for authentication, assignment and access control.\n\nRunbook is designed to be useful for IT, operations, HR, finance, quality, security, customer service, facilities and any other team that relies on repeatable procedures."}},"isFeatured":false,"authors":[{"name":"More-IT","mail":"webmaster@more-it.co.mz","homepage":"https://github.com/More-IT"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIERzCCAy8CAhRAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTUzNjUxWhcNMzcwMTA3MTUzNjUxWjBXMQswCQYD\nVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQg\nV2lkZ2l0cyBQdHkgTHRkMRAwDgYDVQQDDAdydW5ib29rMIICIjANBgkqhkiG9w0B\nAQEFAAOCAg8AMIICCgKCAgEA51qjVDa8K4rpDOqyKJT/oqVIiFiN4+ZFb+1b2Q0Y\ng1xb4pyZgrW46V85J/12dvDA/hIW/Q7ZP3sak3I5x6xx3Ps+9zxdVmY4mAgWwAiz\nGFSCoMmmm/9ISffSvIztGlPUveBctSJEI+rZAthmma5wcJrwHQM2rtAOmqptXCzj\nB1WZUZTR8YnX7cfZtjJxKN/gD4s8fycLGGup2fcHnPjFQ6+nY1MyF0yB6OjqRcEw\n/qe4GblBtfpd0aKLf+AtY8ZWIdaIkCj4ABz61MeAbEeSghSL/+my2xuOSi6Pq3Jo\nRDn2QEf/MxEL1uHtibRY86K1FkIufxkKLDDkyk4Xg/x+Brfd2hUXBMvAIPXANjyD\nAsxvLaNl+3TmoRIBojcqTxwN1GF4H4SoIlgZRyREL65pJJBv2UooQM7UdVivBDgK\nW9sd1MxrXp0EkzE5nbUm3TUvkBibFNt+Jb8v0OooW+aRssRv/ge92v3P3ysmQKtZ\nNRzIWQ8EkrNYqMz9jZvSdmdRy/TeQCF4rDCdM2Jf5HrsC4/0eeA/rveHA3la7tTA\nZ2Yc+oVK/SGGVnHjnJQH3HrI0NmWAZ/8F17y24bi7S1blRvrM7inCBdxuG6G0Y2e\n6Zj34ghQMOzpmkyNc34ZxlF+ZQ0JJyW73eAo6itzTjPa01KomFYWy1w/eYTZdfjF\nGm0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAMJNgoGbIxJv8L1+aztQqyJtT263f\n3ZujLYBbfk/crBhr0ozTcbxZqTwmc/gz1fhEl0SzUfrOYOlBGO5yAbBPAhRd3yR0\nuiAHZuTkciI4ICfW17Ak6d1TREu//fvE/d5J/q4snm4plNN/Q3kHSq/dJdMLcbUi\n+BSNdUAQvTmO/bUiRydBvbg5Jk5iTtXj/pBfo16SZ5UWAhg5FLPxs9m3XHaZZfKi\nf+Hffe5iKfvGSM4d7/l6PJoP4/KAl5Xkfv3WswDwxaEUmoXMqLJUueNdKpr9oMQc\nDspck9Kdl2gFC1zVHe4rVn8E1CRheRGbxqQdyw4JI7tf2ePSBBzeWwQdYA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_github","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_github","issueTracker":"https://github.com/nextcloud/integration_github/issues","website":"https://github.com/nextcloud/integration_github","created":"2020-09-02T07:26:20.384549Z","lastModified":"2026-10-02T09:56:24.859981Z","releases":[{"version":"3.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_github/releases/download/v3.3.0/integration_github-v3.3.0.tar.gz","created":"2026-10-02T09:56:24.835670Z","licenses":["agpl"],"lastModified":"2026-10-02T09:56:24.893959Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"hhuOKjHdksKKa1eU6bZpkrGTlhkAFgnjuQOPiM61F+HtpiEfuGzEahs7hcVUvjGsILvbzLnBJ83fp/O3/jfDhUZWHrYrQsv+an63T/u5MKzagSGpn8z1BLKG1n7RIDsXstGZqyOSpXtTwjZZdXAAaHQxp8aT69Qy0awvU63sDA3wcIGTeV619wujeeaqI8B85tr5ppaOnThci4KHG4V95ShxuOpMlZ3upj0zRaYFUqmgZdG/tPp1ggPhzbiaiDY4+Qosdcr8nU8YMgfEtb/uEhWv6fojd/tImm0gz2LIRwNYBknMSQBZ5ZiC4HFB+S5QKIqVr4HqglextXMhDRrsVBGAe+/QRH2d3qJSvkChaRHhPJ83xw0KeZ+vcVtg0mQUxvXRJ/ETUU4v7nwM8pjklk5lEKI5vE52u4kLZMBcntXp/rQBN4F0P1fOlUNhQrDowrMTyDY9e4UTrJvCx/G2vuUcjaxDLrOfoJsnK3T7Pir+IfEyLTz2KQ8yEbcUDo4OkBsq3ojKiSmbBbA4IbyDa0hcPHq9JmhW64v1Jf35CED6Rw2RqSDdHkz3V5KxW1MlAbKBc+cmBpJFfdw9x5VlHSeejemZC04HtoLu/PvTEYg0mcB+JGtuj69tZbvAerVwpOFebbT6SE4shQGzt/3P04kUlHvaR6fNzdyAyHGbdO4=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 36\n\n### Changed\n\n- Update @nextcloud/eslint-config to 9 and sync the lint workflows\n- Update dependencies & translations\n\n### Fixed\n\n- Show the message of the dashboard widget again, `NcEmptyContent` no longer has the\n  `title` prop it was passed in\n- Ask users who did not connect a GitHub account to connect one in the dashboard widget,\n  instead of reporting an error and requesting the GitHub API without a token\n- Name the link under a full dashboard widget after the widget again, it read *More items …*\n- Name the loading spinner of a comment author's popover for screen readers, it carried an\n  empty `aria-label`\n- Stop the error that `focus-trap` threw whenever the popover of a comment author opened,\n  `NcPopover` reads `no-focus-trap` and the `focus-trap` it was given was ignored\n\n### Security\n\n- Update `league/commonmark` to 2.10.0, closing four high-severity denial-of-service\n  advisories and an `AttributesExtension` unsafe-link filter bypass on the converter\n  used to render issue and pull request bodies\n- Update bundled JavaScript dependencies to close the remaining high-severity\n  advisories (dompurify, js-yaml, nanoid)"}},"signatureDigest":"sha512"},{"version":"3.2.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_github/releases/download/v3.2.7/integration_github-v3.2.7.tar.gz","created":"2026-08-18T13:25:46.939932Z","licenses":["agpl"],"lastModified":"2026-08-18T13:25:47.093259Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"A+mH5m39m5MhCKjprSSGhAXktU0N5QEqGA25G8lnOG7fPNdRBzJV95Vy7pnySyuw7jXznbDx3pU33MfUqEek5fExqTCnXTWSUEcYGuUyZRUmZrmdHQK7ayGoCSR0V+HsjZaWx2w9KQi4hSR7rIU2XIcLmVEKyS60YXqqIa21OJHvSByPXqtMn7K9VqJ9+WB1nucLtdFLxzbG2CoK3Pon0Uo54BDVIIuTjUVjutPM/GMKjsFnQEQzbPoHpAIZy5+fHmMldVc2ljTrV/MkAHIM8u482UKX9OshgEyfPbjspoRRlO+mYe/l6mZbJMaKNnzc2Qk+8fyA6AVoZdqvt0x3UXod0zrvMRji78jLR79r0j7HXaNf6u0DxvNpUCNnz0uDgwrMStNV49tUSOQRyelnS6altLUym+3mjHcVwuWHRSHcq35+9izCqP8nBlDilRo2pFyqNr0QYBpHXubdwDjNrg2140cy/jTSjWZmb4ej1qv54PZF6El8ytJFeR+nBo+FyftmgcRPF240gleIJQYV3iOILlUIJU0KSvVeCFeOHddmzs2v3S5wuMRYCJfBZ6TP1rJXBzZvaZObvhy4XaLgkUa+KzJAytjPoSEHvRKXaWEncUgy/jf9Q+ejNz4Or1mxHhlUtMGmNULezAalWC5tBDjn1/SJS9SCMFaZGRV0Ngc=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 35.\n\n### Fixed\n\n- Keep the settings pages working when a stored secret cannot be decrypted.\n- Update bundled JavaScript dependencies (vite, js-yaml, brace-expansion, `@babel/core`,\n  esbuild, fast-xml-parser, webdav) to close several security advisories.\n\n### Changed\n\n- Use the outline style for the key icons.\n- Updated dependencies & translations."}},"signatureDigest":"sha512"},{"version":"3.2.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_github/releases/download/v3.2.6/integration_github-v3.2.6.tar.gz","created":"2026-05-22T10:49:19.915785Z","licenses":["agpl"],"lastModified":"2026-05-22T10:49:19.982877Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"CD1dmCoxFPVl52kI+idZZyoyFDUJ+eFBJ9yamRpv20ckPVGS1Faw8RuUtDy16uhXjd0Poua97vdXkvJ1jMTjPOe2rF+bDP46fpCUMoldZ42X5I4KKk9Wypc27wHRNINqiojQEFoA3WMrBcNOvTj8IuyVjU4gar3A7xCgXKZb9K8xv96hx0bUVW8jYztvb4FbTZdRSHRqsFUQtiBSOid4z08L9IyraTA0ZBq0TWT1yirbYq6aadsFVspjFeaTWTcJA8PCw7HmKYjdUflnsgDApjjeiI1OIK2TdJkiSdviHpr2S9DLi/PjCmzaVFNDJaVJMj7tl3btVkkp1Yoi03FiYKRa/xq1eiEVTfSJqWUOHKUt0QgN2LPYLIj8rjJPx6ecE/XVhuagRtbzkQdXm8DYsWBFGGXtYgavnJDfYAgqIB8exODzDYKZrKuQdW0fKl5x/x8J37hDnSvHkpOfkf7bTCrl8zT/xlpGgb1lS2Sry9ZFyGJKOrLRSgjB/mjmixqMouqLABGMy95fd7C0zTXQtNuwVnJ/bu+9V7LWRB0X91OWYfl1sOPFpbYqkk6NkRpHUPGEFlK1eFZoiluRwFp99Z/SfvlLQSfJDCXfqIWov9p2vOCP0MzaYHz/iaFvAUMTcXqsYprEXnjjwnQ1dOuiZUzMUi6vezlduAiZi+pTlrg=","translations":{"en":{"changelog":"### Fixed\n\n- Fix `ValueError` from `vsprintf()` that broke notifications for non-English users (#197)."}},"signatureDigest":"sha512"},{"version":"3.2.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_github/releases/download/v3.2.5/integration_github-v3.2.5.tar.gz","created":"2026-05-18T13:59:28.148437Z","licenses":["agpl"],"lastModified":"2026-05-18T13:59:28.230477Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"F1vwLWH0O1nw1JnTZ4ukp913Ghh1X22F882xQvNe5yerXWbOzjiw2SWDFG3pWHu8P9fiVjwE/dQWeHh+DEGX3x6Sr54Cs6adSrl7+1AZ6yhQJw0RKaxbPKtYhBzpW/kMxrCn0YUFhSf5QaaoBC0Xg3jmJHDAekftglyEM20ryXTWp5zcmXDkvpyWq75FzSNCG8mIZylfJTpKZp6hbS0QH5p8kVFSy2Jwm64VG72tDkLsw2KL/aXu/SW4Kzq84undpHHtnmD5/oADOuqlgU9UrqeZ1iW9Q/dIVY+nTLeG/r+lCHI0x6BL4cBhINOJ4PtxHrfKiOsy173gXoAftuw6q0HY7gC1Ljp2tICey0VfBIjJRisoxrOCrhPYTidSZQPy2FPJ4ROYtS17be/oFPAY4Il/c1HelN24a/9H9/xGYmcZZLr52o5pn6UqPByFwe53IpH5Z7SF4efbHJjpwBOkDnkVbZ4gM3t9fZzYRfCW0XqGcGEAHXFu1AJtyb4t0vr9HtHYN91vvc8s9nAKtLZoN0TLvOxOJg7xPQxErL1+QsslzAJ1ObGI/6YY+/MxvnXI77lzWhif+b89RFJpRn9QqAuHCLiPNvcC3HQjfZDaI+QV2PSVNwqjgnuQig6+V2zXGtN75uxQ+CkrjJINjVk1eWw9Zh/K+PnO0ZeynfydU2A=","translations":{"en":{"changelog":"### Fixed\n\n- Stop spamming the log with `\\InvalidArgumentException` deprecation warnings from the notifier; throw `OCP\\Notification\\UnknownNotificationException` instead for unknown notifications."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9naXRodWIvcmF3L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"GitHub integration","summary":"Integration of GitHub software development management service","description":"GitHub integration provides a dashboard widget displaying your most important notifications\n    and a unified search provider for repositories, issues and pull requests. It also provides a link reference provider\n    to render links to issues, pull requests and comments in Talk and Text."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhFuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyMTM2WhcNMzEwNTI0MTkyMTM2WjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9naXRodWIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQCiQzZ/LGL/KeYgL7abW6308A0VA4wIsszgTJ1A252lN+y8kqTSnHGd\r\n+GmQQvdTz1L8CEHjCp/G5MEEAMKEp4lYpWOvktr/oVOlfQSy/RcuDh1VfmPXP2Al\r\nFIKH2VAtO1DKKqw0DBDC8zmf1XCRhTv4LO/bx24ZUxqHqlU3jIbEPPyInxHngBsa\r\nMFPTqNALLNQ2rf3D0mk7HBaLK5+oIS0Z5FmfyqpEk6jQn4XDnoCDe67Bpyt9d0wP\r\n8wQJvM81SwnfVZ9EyiIom1D/Zjtd0U/1j3eDMpnYaO3Hmbuhg1q5t5EqDC/qiAYo\r\n4NUZ5VfS2G8vA1/cwnBBu3vkn4c2GTl2HQYvJCBYfEwzXLm3n1ClLd6zsZXMqnjw\r\n3ay3bznMsaefatiDq7iG+YQ/CzF0g2f+MT+R/KX74EMmrBLrrGuLcezBwILH6Z+p\r\nYjUkPpWK/HJTAteImYI3cMLfG1l7CxTpowDZOSAotuR3Mdn4IIrGFHjzxRNw8W0w\r\nu4ycAXozcP5SJAfiPDciABR8ibcUsHfcFw5kUDNoPwKGnwmsJofrOfvEII0BDGnA\r\n2i/oaebapmgDzyoTlnIxqyQM/bdyT/bCTams7AxxslA0ae6HGIMePZNPzh0+ptWX\r\nFKzqpas6a9XrriaIPIO3qONFaY8wMzwUEuPnF7lFN2gr0zyj50Gt5wIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQARmqOmASjRSagLEgHAsSgqSBauLyM6vlmSMKbjzWj0\r\nHEqg0L3TgjQLL58Rb3jKl4JPN07yPDr5/ZJ6T9nfnkr5FxIQcI+c6gQ0jIdxUjY2\r\nqLyJImE6sq36i/xd/WUW1xLRRcE5uO2mjFVfDV9rm41+a3sHXrO8J/q3oFHJVT/M\r\nWX5aYUsE/5GprAAr9DCcQs2bDhQ51TGqiAl0iz4Z2UELP2hTeaJkJlbw7v+9QBP0\r\nzb/ufcahzRHoeeNensCy8JxvBdNziDUGznXnvj3vzOAXmDQq54zSWsYkJzyRADeY\r\nff2Eu+g9r3ZT1KwPslPgxfQBya//kqMPFlFsFFk/IT2E\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"openrouter_connector","categories":["ai","integration"],"userDocs":"","adminDocs":"https://github.com/iurFRIEND/openrouter-connector#readme","developerDocs":"https://github.com/iurFRIEND/openrouter-connector","issueTracker":"https://github.com/iurFRIEND/openrouter-connector/issues","website":"https://github.com/iurFRIEND/openrouter-connector","created":"2026-09-21T09:31:46.507697Z","lastModified":"2026-09-29T09:09:16.886869Z","releases":[{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/iurFRIEND/openrouter-connector/releases/download/v0.4.0/openrouter_connector-v0.4.0.tar.gz","created":"2026-09-29T09:09:16.878285Z","licenses":["agpl"],"lastModified":"2026-09-29T09:09:16.984508Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"pme/28AQxuFBjsQ/E8uhLkNwobebj+t1EsLVRRZtsJHl7RjZt0E++bqAJAXiCc7SwgIf73nmCVYliM5vCdverZgAFYmrI73dfOCVfXRNesNVbA4vu/di4zySgAqwf7UenZZi8SV0c+UDjONBGGnTwHd5NtdOB1C5Az+zhJM0jEDom5MGcuZRxSxSK4ohBCeRsIG2EzN2sCYnDI5UwZ0mS4YQ+gBsPq8AhYaLUQxnEyspurQkKmOmSKJicssEJZBRmv4zGEUCj1ckAsUjHn6mMbmkmSqSgGi1uP91epz5y1FENr9U8SGswlJV593yNS/96dBeUJXNLD1B9Skgy1tPjc53OJP02mTqZiWqUKCkTAZixHXS9Il8FG2C+gOcFZtWHYBc/040zga0KuYAdqPbdK1JHH3yTkAVMLiZiGmwOQ8QuTLoEb4TtkoHUQjp2NyEmSQOEpX7C3itoTXzTSTAS01l3fq4kPoYXlnaK81YawhcBIm5V73aK8mwAoai5eDCEr8BrhsB6zBYG1y3EtGF60OeBzytrXDnyYOrpY7D+2MX8WVN8Q19yhL8rV+omHgRZ3lizA3g3orjkQMtR+Xn2pUGj2xL1zFdrRNPQyxte2RZVfL8mdNfBXeZwKRsDWt9LGzy0ATXjXVEtUhnWjctHyqz53vjGBeudKrNz6FuM6Y=","translations":{"en":{"changelog":"### Added\n\n- German, French, Dutch and Spanish translations of the admin settings and of the texts the providers show in the\n  Assistant: option names, selectable values and error messages. German comes in both forms of address, informal\n  (`de`) and formal (`de_DE`, \"Sie\"). Languages without a translation keep showing English.\n- The name, summary and description of the app are translated as well, so the App Store and the app management show\n  them in these languages."}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/iurFRIEND/openrouter-connector/releases/download/v0.3.0/openrouter_connector-v0.3.0.tar.gz","created":"2026-09-29T08:07:20.102098Z","licenses":["agpl"],"lastModified":"2026-09-29T08:07:20.196133Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"owk/oH2Caz8DRilRhkjrwHxletVv3Y33ve/2P5BYrYIj+Zm9K3JyVsjCYyp3yOVREm9tIdwE3iaD3qb2LlynfTtvMKs3HImIwdiiufxe9qoiK+A3qlmkB1LOqL9WuqzRtVpd0Yx1yne7RHEeAt3h0oq0f1q3M7SBwXzp0Uj+ru9yD5fdCtKXV9sWC0DdyHXGCcGEMboWyBlKQWoh68ZXC9bv/ndiwcCcMw42QK+t4w1O5LX3pA0LrUw9WWEhJ1igjSHNMZHqNrTrY6luaDaDo+W0lGUgNcPjY/tq8YhunGU/yx2o3vActoWfVcyH8wH08sxc2ibwDpA9DHsio5ruF3NJLwd2j30VW8lQAUYPjotmx6NeEoRY8psgjfB3p9hUU5mUTCuZ1xcMcLjLM+djkU4qb6b0+BuCLdMHLcSC0SZ/3LinWVDsXEA+mru3hJnGUBhTNxnE3lS/NpRjODEdQCI4b0u9pwoj2rKRgmbMWwyPbd6PfQUyi0I4I+/VRvJzPcNj6ZgDPxR9gAQfHyodw2MenP13Pv6bYu2jqKeqOU7qDrMEtkgoEl6IEgaajcOYHR8qKr5/aKZoQHil9QIQmV3uYfai/5GW2j+PbBKK5Y2zW9Eu8lmyyUz40+5wR9zz67I0SRdrqvtI2T7rCee7w/hYokir5ClIfobwbZO4lXQ=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 33 and 35, in addition to Nextcloud 34. The app offers only the task types the running\n  Nextcloud version has: *reformat paragraphs* exists since Nextcloud 34, and offering it on Nextcloud 33 would break\n  task processing there for every app.\n- *Improve text* (`core:text2text:improve`) on Nextcloud 35, where the Assistant offers it instead of reformulation,\n  formalization and simplification. The text is improved according to the user's instructions."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2l1ckZSSUVORC9vcGVucm91dGVyLWNvbm5lY3Rvci9tYWluL3NjcmVlbnNob3RzL2FkbWluLXNldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"fr":{"name":"OpenRouter Connector","summary":"Connecte l’Assistant à des centaines de modèles d’IA via OpenRouter","description":"Cette application connecte votre instance Nextcloud à [OpenRouter](https://openrouter.ai), une API unifiée qui donne\naccès, avec une seule clé API, à des centaines de grands modèles de langage et de modèles d’images, de transcription et\nde synthèse vocale proposés par de nombreux fournisseurs.\n\nUne fois la clé API configurée, l’administrateur sélectionne les modèles OpenRouter à mettre à disposition. Chaque modèle\nsélectionné est enregistré sous la forme d’un ensemble distinct de fournisseurs de traitement des tâches, portant le nom\ndu modèle, ce qui permet de choisir des modèles différents pour des tâches différentes dans la section\n**Intelligence artificielle** des paramètres d’administration.\n\nLes fonctionnalités suivantes de l’Assistant sont proposées, selon la modalité des modèles sélectionnés :\n\n* **Modèles de texte** : prompt libre, chat, chat avec outils (prise en charge des agents), résumé, titre, sujets,\n  rédaction à partir d’un contexte, reformulation, relecture, changement de ton, formalisation, simplification,\n  reformatage des paragraphes (depuis Nextcloud 34), amélioration de texte (depuis Nextcloud 35), traduction et\n  génération d’émojis.\n  Les modèles acceptant des images en entrée offrent en plus l’analyse d’images et la reconnaissance optique de\n  caractères (OCR).\n* **Modèles d’images** : génération d’images via l’API d’OpenRouter dédiée aux images.\n* **Modèles de transcription** : transcription audio.\n* **Modèles de synthèse vocale** : génération de parole.\n\nL’[application Assistant](https://apps.nextcloud.com/apps/assistant) est nécessaire pour utiliser ces fonctionnalités\ndepuis l’interface utilisateur.\n\n## Confidentialité\n\nToutes les requêtes sont envoyées à l’API d’OpenRouter (`openrouter.ai`), qui les achemine vers les fournisseurs de\nmodèles en amont. Les administrateurs peuvent passer au point de terminaison UE d’OpenRouter (`eu.openrouter.ai`), qui\ntraite les prompts et les réponses exclusivement au sein de l’Union européenne. Les paramètres d’administration\nproposent les options de routage d’OpenRouter pour limiter les requêtes aux fournisseurs qui ne stockent pas vos données\net ne les utilisent pas pour l’entraînement (`data_collection: deny`), ainsi qu’aux fournisseurs sans conservation des\ndonnées (zero data retention). Veuillez consulter la\n[documentation d’OpenRouter sur la confidentialité](https://openrouter.ai/docs/guides/privacy/provider-logging) et les\nconditions des fournisseurs de modèles sélectionnés.\n\n## Accélérer la prise en charge des tâches d’IA\n\nPour éviter les retards dans le traitement des tâches, configurez des workers de tâches d’arrière-plan comme décrit dans\nla [documentation Nextcloud sur l’IA](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed).\n\n## Ethical AI Rating\n\nLa note dépend du modèle sélectionné via OpenRouter :\n\n### Modèles propriétaires (par exemple OpenAI, Anthropic, Google) : 🔴\n\nPoints négatifs :\n* Le logiciel d’entraînement et d’inférence de ces modèles est propriétaire, ce qui limite la possibilité de les exécuter en local ou de les entraîner soi-même\n* Les modèles entraînés ne sont pas librement disponibles et ne peuvent donc pas être exécutés sur site\n* Les données d’entraînement ne sont pas librement disponibles, ce qui limite la capacité de tiers à vérifier et corriger les biais ou à optimiser les performances des modèles et leur empreinte CO2\n\n### Modèles à poids ouverts (par exemple Llama, Mistral, Qwen, DeepSeek) : 🟡\n\nPoints positifs :\n* Les modèles entraînés sont librement disponibles et peuvent être exécutés sur site\n\nPoints négatifs :\n* Les données d’entraînement ne sont généralement pas librement disponibles, ce qui limite la capacité de tiers à vérifier et corriger les biais ou à optimiser les performances des modèles et leur empreinte CO2\n\nEn savoir plus sur le Nextcloud Ethical AI Rating [sur le blog de Nextcloud](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."},"de":{"name":"OpenRouter Connector","summary":"Verbindet den Assistenten über OpenRouter mit Hunderten von KI-Modellen","description":"Diese App verbindet die Nextcloud-Instanz mit [OpenRouter](https://openrouter.ai), einer einheitlichen API, die mit einem\neinzigen API-Schlüssel Zugriff auf Hunderte von großen Sprachmodellen sowie Bild-, Sprache-zu-Text- und\nText-zu-Sprache-Modellen zahlreicher Anbieter bietet.\n\nSobald ein API-Schlüssel konfiguriert ist, wählt die Administration die OpenRouter-Modelle aus, die zur Verfügung stehen\nsollen. Jedes ausgewählte Modell wird als eigener Satz von KI-Aufgabenverarbeitungsanbietern registriert, die nach dem Modell\nbenannt sind, sodass in den Administrationseinstellungen unter **Künstliche Intelligenz** für verschiedene Aufgaben\nverschiedene Modelle gewählt werden können.\n\nJe nach Modalität der ausgewählten Modelle werden folgende Funktionen des Assistenten bereitgestellt:\n\n* **Textmodelle**: freier Prompt, Chat, Chat mit Tools (Agentenunterstützung), Zusammenfassen, Überschrift, Themen,\n  Kontext schreiben, Umformulieren, Korrekturlesen, Ton ändern, förmlicher Text, Text vereinfachen, Absätze neu\n  formatieren (ab Nextcloud 34), Text verbessern (ab Nextcloud 35), Übersetzen und Emoji-Erzeugung.\n  Modelle, die Bildeingaben akzeptieren, bieten zusätzlich Bildanalyse und Texterkennung (OCR).\n* **Modelle zur Bilderstellung**: Bilder über die dedizierte OpenRouter-Bild-API erstellen.\n* **Sprache-zu-Text-Modelle**: Audiotranskription.\n* **Text-zu-Sprache-Modelle**: Spracherzeugung.\n\nDie [Assistent-App](https://apps.nextcloud.com/apps/assistant) wird benötigt, um diese Funktionen in der\nBenutzeroberfläche zu nutzen.\n\n## Datenschutz\n\nAlle Anfragen werden an die OpenRouter-API (`openrouter.ai`) gesendet, die sie an die zugrunde liegenden Modellanbieter\nweiterleitet. Alternativ kann die Administration auf den EU-Endpunkt von OpenRouter (`eu.openrouter.ai`) umstellen, der\nPrompts und Antworten ausschließlich innerhalb der Europäischen Union verarbeitet. Die Administrationseinstellungen\nbieten die Routing-Optionen von OpenRouter, um Anfragen auf Anbieter zu beschränken, die Daten weder speichern noch zum\nTraining verwenden (`data_collection: deny`), sowie auf Anbieter ohne Datenspeicherung (Zero Data Retention). Bitte die\n[OpenRouter-Dokumentation zum Datenschutz](https://openrouter.ai/docs/guides/privacy/provider-logging) und die Bedingungen\nder ausgewählten Modellanbieter prüfen.\n\n## KI-Aufgaben schneller starten\n\nDamit Aufgaben ohne Verzögerung verarbeitet werden, sollten Hintergrundjob-Worker eingerichtet werden, wie in der\n[Nextcloud-KI-Dokumentation](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed)\nbeschrieben.\n\n## Ethical AI Rating\n\nDas Rating hängt vom Modell ab, das über OpenRouter ausgewählt wird:\n\n### Proprietäre Modelle (zum Beispiel OpenAI, Anthropic, Google): 🔴\n\nNegativ:\n* Die Software für Training und Inferenz dieser Modelle ist proprietär, was das lokale Ausführen oder ein eigenes Training einschränkt\n* Die trainierten Modelle sind nicht frei verfügbar und können daher nicht On-Premises betrieben werden\n* Die Trainingsdaten sind nicht frei verfügbar, was die Möglichkeiten Dritter einschränkt, Verzerrungen (Bias) zu prüfen und zu korrigieren oder die Leistung und den CO2-Verbrauch der Modelle zu optimieren\n\n### Open-Weight-Modelle (zum Beispiel Llama, Mistral, Qwen, DeepSeek): 🟡\n\nPositiv:\n* Die trainierten Modelle sind frei verfügbar und können On-Premises betrieben werden\n\nNegativ:\n* Die Trainingsdaten sind meist nicht frei verfügbar, was die Möglichkeiten Dritter einschränkt, Verzerrungen (Bias) zu prüfen und zu korrigieren oder die Leistung und den CO2-Verbrauch der Modelle zu optimieren\n\nMehr zum Nextcloud Ethical AI Rating [im Nextcloud-Blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."},"nl":{"name":"OpenRouter Connector","summary":"Verbindt de Assistent via OpenRouter met honderden AI-modellen","description":"Deze app verbindt de Nextcloud-instantie met [OpenRouter](https://openrouter.ai), een uniforme API die met één\nAPI-sleutel toegang geeft tot honderden taal-, afbeeldings-, spraak-naar-tekst- en tekst-naar-spraakmodellen van veel\nproviders.\n\nZodra een API-sleutel is geconfigureerd, selecteert de beheerder de OpenRouter-modellen die beschikbaar moeten zijn. Elk\ngeselecteerd model wordt geregistreerd als een eigen reeks taakverwerkingsproviders, vernoemd naar het model, zodat in de\nbeheerdersinstellingen onder **Artificiële Intelligentie** voor verschillende taken verschillende modellen kunnen worden\ngekozen.\n\nDe volgende functies van de Assistent worden geboden, afhankelijk van de modaliteit van de geselecteerde modellen:\n\n* **Tekstmodellen**: vrije prompt, chat, chat met gereedschappen (agentondersteuning), samenvatten, kop, onderwerpen,\n  context schrijven, herformuleren, nakijken, toon wijzigen, formalisering, vereenvoudiging, alinea’s opnieuw opmaken\n  (sinds Nextcloud 34), tekst verbeteren (sinds Nextcloud 35), vertalen en emojigeneratie.\n  Modellen die beeldinvoer accepteren, bieden bovendien beeldanalyse en optische tekenherkenning (OCR).\n* **Afbeeldingsmodellen**: afbeeldingsgeneratie via de aparte afbeeldings-API van OpenRouter.\n* **Spraak-naar-tekstmodellen**: audiotranscriptie.\n* **Tekst-naar-spraakmodellen**: spraakgeneratie.\n\nDe [Assistent-app](https://apps.nextcloud.com/apps/assistant) is vereist om deze functies via de gebruikersinterface te\ngebruiken.\n\n## Privacy\n\nAlle verzoeken gaan naar de API van OpenRouter (`openrouter.ai`), die ze doorstuurt naar de onderliggende\nmodelproviders. Beheerders kunnen in plaats daarvan overschakelen naar het EU-eindpunt van OpenRouter\n(`eu.openrouter.ai`), dat prompts en antwoorden uitsluitend binnen de Europese Unie verwerkt. De beheerdersinstellingen\nbieden de routeringsopties van OpenRouter om verzoeken te beperken tot providers die gegevens niet opslaan en er niet op\ntrainen (`data_collection: deny`), en tot providers zonder gegevensbewaring (zero data retention). Raadpleeg de\n[OpenRouter-documentatie over privacy](https://openrouter.ai/docs/guides/privacy/provider-logging) en de voorwaarden van de\ngeselecteerde modelproviders.\n\n## AI-taken sneller laten oppakken\n\nStel achtergrondtaak-workers in om vertragingen bij het verwerken van taken te voorkomen, zoals beschreven in de\n[Nextcloud AI-documentatie](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed).\n\n## Ethical AI Rating\n\nDe beoordeling hangt af van het model dat via OpenRouter wordt geselecteerd:\n\n### Propriëtaire modellen (bijvoorbeeld OpenAI, Anthropic, Google): 🔴\n\nNegatief:\n* De software voor training en inferentie van deze modellen is propriëtair, waardoor lokaal draaien of zelf trainen beperkt is\n* De getrainde modellen zijn niet vrij beschikbaar en kunnen dus niet on-premises worden gedraaid\n* De trainingsdata zijn niet vrij beschikbaar, waardoor externe partijen minder goed vooroordelen (bias) kunnen controleren en corrigeren of de prestaties en de CO2-voetafdruk van de modellen kunnen optimaliseren\n\n### Open-weight-modellen (bijvoorbeeld Llama, Mistral, Qwen, DeepSeek): 🟡\n\nPositief:\n* De getrainde modellen zijn vrij beschikbaar en kunnen on-premises worden gedraaid\n\nNegatief:\n* De trainingsdata zijn meestal niet vrij beschikbaar, waardoor externe partijen minder goed vooroordelen (bias) kunnen controleren en corrigeren of de prestaties en de CO2-voetafdruk van de modellen kunnen optimaliseren\n\nLees meer over de Nextcloud Ethical AI Rating [in de Nextcloud-blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."},"es":{"name":"OpenRouter Connector","summary":"Conecta el Asistente con cientos de modelos de IA a través de OpenRouter","description":"Esta aplicación conecta la instancia de Nextcloud con [OpenRouter](https://openrouter.ai), una API unificada que da\nacceso, con una única clave de la API, a cientos de modelos de lenguaje (LLM), imagen, voz a texto y texto a voz de\nnumerosos proveedores.\n\nUna vez configurada la clave de la API, el administrador selecciona los modelos de OpenRouter que deben estar disponibles.\nCada modelo seleccionado se registra como un conjunto propio de proveedores de procesamiento de tareas que llevan el\nnombre del modelo, de modo que en los ajustes de administración de **Inteligencia Artificial** se pueden elegir modelos\ndistintos para tareas distintas.\n\nSe ofrecen las siguientes funciones del Asistente, según la modalidad de los modelos seleccionados:\n\n* **Modelos de texto**: prompt libre, chat, chat con herramientas (compatibilidad con agentes), resumir, título, temas,\n  escribir contexto, reformular, corregir, cambiar el tono, formalización, simplificación, reformatear párrafos (desde\n  Nextcloud 34), mejorar texto (desde Nextcloud 35), traducir y generación de emojis.\n  Los modelos que aceptan imágenes como entrada ofrecen además análisis de imágenes y reconocimiento óptico de\n  caracteres (OCR).\n* **Modelos de imagen**: generación de imágenes mediante la API de imágenes específica de OpenRouter.\n* **Modelos de voz a texto**: transcripción de audio.\n* **Modelos de texto a voz**: generación de voz.\n\nLa [aplicación Asistente](https://apps.nextcloud.com/apps/assistant) es necesaria para usar estas funciones desde la\ninterfaz de usuario.\n\n## Privacidad\n\nTodas las solicitudes se envían a la API de OpenRouter (`openrouter.ai`), que las enruta a los proveedores que alojan los\nmodelos. Los administradores pueden cambiar al punto de conexión de la UE de OpenRouter (`eu.openrouter.ai`), que procesa\nlos prompts y las respuestas exclusivamente dentro de la Unión Europea. Los ajustes de administración ofrecen las\nopciones de enrutamiento de OpenRouter para limitar las solicitudes a proveedores que no almacenen los datos ni entrenen\ncon ellos (`data_collection: deny`) y a proveedores sin retención de datos (zero data retention). Consulte la\n[documentación de OpenRouter sobre privacidad](https://openrouter.ai/docs/guides/privacy/provider-logging) y las\ncondiciones de los proveedores de modelos seleccionados.\n\n## Acelerar el inicio de las tareas de IA\n\nPara evitar retrasos al procesar las tareas, configure workers para procesar las tareas en segundo plano, como se\ndescribe en la [documentación de IA de Nextcloud](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed).\n\n## Ethical AI Rating\n\nLa valoración depende del modelo que se seleccione a través de OpenRouter:\n\n### Modelos propietarios (por ejemplo, OpenAI, Anthropic, Google): 🔴\n\nAspectos negativos:\n* El software de entrenamiento e inferencia de estos modelos es propietario, lo que limita la posibilidad de ejecutarlos localmente o de entrenarlos por cuenta propia\n* Los modelos entrenados no están disponibles libremente, por lo que no se pueden ejecutar en local (on-premises)\n* Los datos de entrenamiento no están disponibles libremente, lo que limita la capacidad de terceros para comprobar y corregir sesgos u optimizar el rendimiento de los modelos y su huella de CO2\n\n### Modelos de pesos abiertos (por ejemplo, Llama, Mistral, Qwen, DeepSeek): 🟡\n\nAspectos positivos:\n* Los modelos entrenados están disponibles libremente y se pueden ejecutar en local (on-premises)\n\nAspectos negativos:\n* Los datos de entrenamiento no suelen estar disponibles libremente, lo que limita la capacidad de terceros para comprobar y corregir sesgos u optimizar el rendimiento de los modelos y su huella de CO2\n\nMás información sobre el Nextcloud Ethical AI Rating [en el blog de Nextcloud](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."},"en":{"name":"OpenRouter Connector","summary":"Connect the Assistant to hundreds of AI models through OpenRouter","description":"This app connects your Nextcloud instance to [OpenRouter](https://openrouter.ai), a unified API that gives you access to\nhundreds of large language, image, speech-to-text and text-to-speech models from many providers with a single API key.\n\nOnce an API key is configured, the administrator selects the OpenRouter models that should be available. Every selected model\nis registered as its own set of task processing providers, named after the model, so different models can be picked for\ndifferent tasks in the **Artificial Intelligence** admin settings.\n\nThe following Assistant features are provided, depending on the modality of the selected models:\n\n* **Text models**: free prompt, chat, chat with tools (agent support), summarize, headline, topics, context write,\n  reformulate, proofread, change tone, formalization, simplification, reformat paragraphs (since Nextcloud 34),\n  improve text (since Nextcloud 35), translate and emoji generation.\n  Models that accept image input additionally provide image analysis and optical character recognition (OCR).\n* **Image models**: image generation via the dedicated OpenRouter image API.\n* **Speech-to-text models**: audio transcription.\n* **Text-to-speech models**: speech generation.\n\nThe [Assistant app](https://apps.nextcloud.com/apps/assistant) is required to use these features from the user interface.\n\n## Privacy\n\nAll requests are sent to the OpenRouter API (`openrouter.ai`), which routes them to the upstream model providers.\nAdministrators can switch to OpenRouter's EU endpoint (`eu.openrouter.ai`) instead, which processes prompts and\ncompletions inside the European Union only. The admin settings offer OpenRouter's routing options to restrict requests\nto providers that do not store or train on your data (`data_collection: deny`) and to zero-data-retention providers.\nPlease review the\n[OpenRouter privacy documentation](https://openrouter.ai/docs/guides/privacy/provider-logging) and the terms of the\nmodel providers you select.\n\n## Improve AI task pickup speed\n\nTo avoid delays when processing tasks, set up background job workers as described in the\n[Nextcloud AI documentation](https://docs.nextcloud.com/server/latest/admin_manual/ai/overview.html#improve-ai-task-pickup-speed).\n\n## Ethical AI Rating\n\nThe rating depends on the model you select through OpenRouter:\n\n### Proprietary models (for example OpenAI, Anthropic, Google): 🔴\n\nNegative:\n* The software for training and inference of these models is proprietary, limiting running them locally or training by yourself\n* The trained models are not freely available, so they can not be run on-premises\n* The training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the models' performance and CO2 usage\n\n### Open-weight models (for example Llama, Mistral, Qwen, DeepSeek): 🟡\n\nPositive:\n* The trained models are freely available and can be run on-premises\n\nNegative:\n* The training data is usually not freely available, limiting the ability of external parties to check and correct for bias or optimise the models' performance and CO2 usage\n\nLearn more about the Nextcloud Ethical AI Rating [in the Nextcloud blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":false,"authors":[{"name":"iurFRIEND","mail":"it@iurfriend.com","homepage":"https://www.iurfriend.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhQeMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE5MDg0MDIxWhcNMzYxMjI1MDg0MDIxWjAfMR0wGwYD\nVQQDDBRvcGVucm91dGVyX2Nvbm5lY3RvcjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAOTRY/M64ulfxkf5wtTk5gDPC0BCvrR0ZckHBxYfldhicT407m0y\nqrITnC7Mhw7DJE7Y23o54huhQaF/pEjcmty83WTA2iVDJOQF6TdBa1MdOW/e7Yx9\n4qsTGCF1+Obg87TGA0KQzKWNed0YLwrBSuNttO0Mt0mzDx1l6scpmqBBrcs83SXc\ngCZ5p/Nf+Y6IA11YOFIeyRj8D5rdYnXJnaSzt0sDDYIY4lYYv3v+oJF8xgGnj5BC\nsjbZfYaa47lErB+9q+Tc2mIAVobX425Ll6jkDyIwxBquCcWshqEzwZhrWPvb++TX\nCsh0MwUmyifHtHM4f5odhpgCCzMAQMT5eg5eyAtmsbij+rjN022cAy7H4TyDyflO\nWr+AcziPqiguRjpZyeYXWjLUJich3ssTZ2XlyX+VUHQ1W5zfv67S7ibLplS8yiTM\nNGeQTyVujFOqAL1A20PwPsKnA3065qGmezwtUKmPflw2W0YIALtIcPdOgmOmnYNU\nB0gXSt+j85soP/XsqWm2As4mCdLaRx3lRsAEgRN5EmbjA5+T3h5sP4l+FS1nCUcZ\nvQZRUPjDHpqpC2aiWfFdyGUolLoMRIledGk93mh7WvuTzgQcw4juoJLdntNkTBrF\nhLaQr/5kYG+aLq6eSWbpFCf7JJ8Dbl02YCcZ4cSKZieQHkpr1vJO+pWPAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAGleqUy44q5dfJVBZkpbIswTUjjnuzt5cNUyL2pU\nFZoSBvKyiXr4yfJQfQ1wKQSe0ASjchUmkVQeiDZK+thG4WnXWI8losVKQ2Tec9Ni\nG8/fFF/HHn0b0OT5p4Ashv7Wtj+SPJ4KcQ71yboeoxh5SIttwVHczDlmDu9sbvtp\nTcJ0wVPGnkqus0VkxmNVrAI3rLkjDPPv5FOTz5JeyFG8IlBOzpgB93dKYbokuL0X\n1EMqZTLeXtapLNPKXb2FFpTV8gYvpWtVCyMX2+eqSdd7TPKRqYnZ6SKTjDZnS8Lb\nzFR6FhxSlqTvjYPmH8mQzqPa6CJfBoJ3InGhBz1DIniOByU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dailyverses","categories":["dashboard"],"userDocs":"https://www.langstraatonline.nl/nl/tools/nextcloud-apps","adminDocs":"https://www.langstraatonline.nl/nl/tools/nextcloud-apps","developerDocs":"https://www.langstraatonline.nl/nl/tools/nextcloud-apps","issueTracker":"https://github.com/theo-langstraat/dailyverses-nextcloud/issues","website":"https://github.com/theo-langstraat/dailyverses-nextcloud","created":"2026-06-09T14:33:26.645360Z","lastModified":"2026-06-10T13:21:45.143795Z","releases":[{"version":"1.0.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/theo-langstraat/dailyverses-nextcloud/releases/download/v1.0.20/dailyverses-1.0.20.tar.gz","created":"2026-06-10T13:21:45.134902Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-10T13:21:45.187415Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"R8tIXaJA8wQeLdYjhdS/rTQ37WbfgoIQQUT+6DDaYQzSSlx1nXqM94UVGlFIU1JQ\nUbS0JSILas3Wu7SeRK5uE7Swj4i7MuqWOGJBwwRKDuGrK1NPUtOCClVuPcIOerjK\nnVDETTtcSGPPEJ+f0FY4ySjyRkJ8cCR8Lee4Po9ar9/HWJvrv12sj2ZF4RNmZ3CL\nHpuA75/qHrAkJqSbSYoFtnM2v5xBG+43zffKaGuyy66p+ny/r5vqijNJfBQ3TAUo\n/zWoQbapcI4p6Oy76S8EOQW0PJQthsJjYUTT+eWPXGcnlaiYYcEjbUZIZvGmJtIz\n8FAe7CcGCFA8K5cVPqRBtdYNRKyA/LVHo69CcAjxb30tHojMwvVzzy/5mSraxLZY\nWa2207h+DJkza0yQSeTb92xGX4q1ABvq/kF7r1NeI7dyh58+yz/j5WI/jZtr8L0T\n3f7sz3dbEGGqBHIhbgne1eqhPqHM0eioI6qo0drNayjR+HbMHpHTfMJncashz3ne\ngxQgANT9zi4qyfhZ0FIeW8kDlcm8Ewi0vyE3sU6qdREv5y83BdJMuHA+JuQG/uF1\n075344k0Dlysy5d0AjIOMnVYETL5agxNe8iVZtly2+NqDzf39IBBj5BVYqXDDICX\nZOaZOLso/9eb+BIPoyGJZ6psYs5BCapyPJt+bD1y2AM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZW8tbGFuZ3N0cmFhdC9kYWlseXZlcnNlcy1uZXh0Y2xvdWQvbWFpbi9kb2MvaW1nL2Zyb250ZW5kLW5sLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Daily verses","summary":"Displays a daily Bible verse on the dashboard","description":"# **Daily Verses for Nextcloud**\nDisplays a daily or random Bible verse from dailyverses.net on your Nextcloud dashboard, with support for 26 languages and multiple Bible translations.\n\n---\n\n## **Features**\n- **Daily or random Bible verse** from dailyverses.net  \n- **26 supported languages**  \n- **Multiple Bible translations**  \n- **Dashboard widget** for quick inspiration  \n- **Admin settings** for global defaults  \n- **Personal settings** for user‑specific preferences  \n- Optional **links to full verse context**  \n- Lightweight, fast, and privacy‑friendly (no tracking)\n\n---\n\n## **Configuration**\n\n### **Admin Settings**\nAdmins can configure:\n- Default language  \n- Default Bible translation  \n- Whether verse links should be shown  \n- Whether users may override global settings  \n\nAvailable under:  \n**Settings → Administration → Daily Verses**\n\n### **Personal Settings**\nEach user can override:\n- Language  \n- Translation  \n- Link visibility  \n\nAvailable under:  \n**Settings → Personal → Daily Verses**\n\n---\n\n## **Dashboard Widget**\nThe widget displays:\n- Today’s verse (or a random verse, if selected)\n- Translation and language\n- Optional link to dailyverses.net for full context\n\nThe widget updates automatically every day. In daily mode, the text is cached for one day.\n\n---\n\n## **Supported Languages**\nThe app supports 26 languages, including English, Dutch, German, Danish, and more.  \nTranslations are provided directly by dailyverses.net.\n\nThe backend supports the languages ​​German, English, Danish, and Dutch."}},"isFeatured":false,"authors":[{"name":"Theo Langstraat","mail":"theo.langstraat@delta.nl","homepage":"https://www.langstraatonline.nl/nl/tools/nextcloud-apps"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhNkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjA5MTEzMTMwWhcNMzYwOTE0MTEzMTMwWjAWMRQwEgYD\nVQQDDAtkYWlseXZlcnNlczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAJMLtITlbX2BsJG2xrOHdO2fK3+tlTBQI9wvBOrwaLy8EGKUGnv7tfCG74DpYDpm\npwmiTH6e34Vpe2sTi1eM+38AJl/CKmiKm9TvXwaeLT8jU2VlYocMso79CbvMrupv\nUeEwjn0olZVE6IytWCRUr3Ypw9n/bkeR+57eL+Q0UJ5Y/DPrm/PW3jkKH5/Gxjpa\njkqKLi7QU3m3dTRrlMYcyl/La9Wt9an4g1njkr5XfNT+VffmXk10NuXvtTJ4moUI\nXy/JVvoBnqszn6qIi68Of/3lOmUx6cwThZEVwDMNPK/6X9OI67xXkD/E5kcvNsZ1\nL/S7t/qF4aSsfQRRUL8scDjR3Fto4adOGI5XR7LlUZxsMcB7XIRzy8uDqrtLRHIm\nmqFneZ0Tnq3BJWTUbF/l6ybMNTQy548ASEAqoQHY9h58tywmhBA4gzvy8vDJzmDr\nTMGkfsCHtiYrkrgmF5mlKGC2z9QslNsdeyRbOzWeuxisa3e6B7/y+P0T/O0Ojpsc\nOn/96kI4Rv8UE9aSR+ZNSaeeVxeEHO3Wl9amTVWolhXiCBFsycyfMLOjJj8MJHkT\nbYnIbNO1sR9LJZoHjivqBD1rKQwnaFlXbW+W8gkYsYSSVjfJcZsCr1uAqTv84j+x\nsT9oNZcWbnlrwC7Jv4nZEPLQoFsxS/XYQ+vR6U+Zx80/AgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAD+VLUBUX3LwKF3aZkJl6DrUaIRJDXfU28WaQ+ro4Igy4i0drUIf\nNvCxRhdf5dikY6B8YtIf57YxRCKx+lntQINZHbKl8GcNJNQ1mugNaV/4phJgZvB5\nEbRB67+xK7TaqUcq6KNqMLlYYks7NkPpPC2gA715nZFrIISXVJoUcHcyfrPYf82i\nEWvqTOetsTiikFeqdxZLcLVTv4/lqxCvJ1i7Bex1hm85tGqcilS5pcGdqJ9faULj\nSDOR8fl2GqBl45OLhgH9PhblXb9Fuyf6LoDwOYbIgl7o3KQ7vcMrZ5QqZMYmR9wd\n86pVIDdThIrz8AMZ8Mg6rf2RojeV5ng2fEY=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"abonnieren","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/VogelbuschGmbH/abonnieren/issues","website":"https://github.com/VogelbuschGmbH/abonnieren","created":"2026-09-24T15:24:25.761795Z","lastModified":"2026-10-21T08:08:54.820434Z","releases":[{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://helpdesk.vogelbusch.com/abonnieren.tar.gz","created":"2026-09-24T15:48:42.745492Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:08:54.857454Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"C9/q3HDo1/Q8AuMYgoNkpE5dgkzxSB6UVt7KCtaZbSTo+5pyEPtKFPPyEtMQ2E5D\nXmpsh/7f+0QSfqi+72kS3b5QFuTZi0vfOYNGAb9eyZRsMr6WSEGAEd1NYeUH2dKK\ngLaJIJi0WpDhqVr2bEDH7Z3YgYxg9m1kHdTYxvAVOPVCmE/3IyPrWx5HUtlvweXo\nVRQG++PLq6Mg+wXVTuiHVAz4psAqlHYfkxD+FsQ0t+Eb+Bk+qbOmnmABkZTzRiOZ\nvnxlCrv22iRGow7W7uhNysHowjP8fRRkaXHNYpktD4Qh6PtGiyxXG5FzHHV5rbSw\nygxBSlE/FDF9pX4+qpDZXkY/Fokv/ha9TeMkm131Kfq53NHpPcnMmibyo1Zpjrx5\nSZWjjvZ+XW2WoO3akE4O+RJJjp7U1qG/kR2NMO9RxxmsEQCvfO/B1YPO3Qcyulqo\nXdA2vWVsbGPNLbmEsyDL8YQiKavZaORNEfoWI7sr3PHd5GTvt0MKRUp6Mb7yx23Q\nkuwJg0rFveP7MhNSHPlzF7022EKolp94re70itAyqJJUqsokraKhG7ezyD3LAGaS\nOWpUML/PqHR23cjqNoV/kzwMFyUM+tXCjKaX2YzB86ZZJq0BqWcP4Z19GD3TE6B9\n802sC0TqOxHJ4gXnlqmNGkXtCGJitWM2lTb4MzrANdM=","translations":{"en":{"changelog":"### Changed\n\n- Write an Activity entry (bell icon) for every subscription email — opens,\n  downloads, uploads, modifications and deletions, including public-link\n  events — to each subscriber who was emailed."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Abonnieren","summary":"File and folder subscriptions with email notifications","description":"Subscribe to files and folders and receive email notifications for downloads, uploads, modifications and deletions. Rules can be managed per object in the Files sidebar or from the subscription overview."}},"isFeatured":false,"authors":[{"name":"Timm Meisinger","mail":"contact@ti2m.dev","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhQjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTAxMTI3WhcNMzYxMjMwMTAxMTI3WjAVMRMwEQYD\nVQQDDAphYm9ubmllcmVuMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nk1ZGVxxdKxVlppym7cg94b81fiZPcNQDdDWybSDSkc7PXvPPDIhDHJV1ZO7aEoWS\nZSITXjMfvhSrAcrsWFg2BdJbHaqebleBCXdxfPQ3YdP1PBpuBbw5rPoaVabr12sb\nvOcXhoi2rzd5iCcwYiwQ0c+PEPQhwO0oU2WVjMiaRm/10OJHcf+l0KF+Q7DWdulC\n0LJa6vhgRsj9YHl3Iu8JQ5hWdWQep8R2OQio/ZbFUbC5qguTORkVWNyOr+3g/AoQ\naSdar4FIqe32/5vE2+0YVSXGF0bEscxMEVtZT6RgXFEUGllP2s210Jc9c7Zjj8c6\nrY84KHM2sTN1qKKK+bpKWz84nVN7NFTr59e/KzZ4t/Eee+P79aSambLdGRhprKFH\nCdn39+eGVtihTRDtyNhKEpo88eiLNYc8nVoPF/YrKYLhCIX46ZjhhcKDWYn3F4H1\nTxRYC4hwNDdtpMe2iDNW9xpl70wMzs4XYSM7EFHLlvzhhlT/Hv8v2GvjxIyUEAwH\nB4Ys43O+rSv5uQUzu60AazhExzqbm4UjZ2tJ7e6uEAiDr/V4nVtZD0+dAHqfRynl\nT8wejHakE4tGQl9Od5n1mzwa4a3BOjaFnOMCdp5wY2lJp/4ebhHB4wp7iB2ST24V\nQ6mUXSJKa1UlvG8LxPTnw966mDtPzV5ZWkOFKmrc8aMCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAjcjbwHsHUuIslBerd+oGtTtEVoMwcpIwXh8MsR5QAOMCsg9RbLhF\n/nO1svavIig3Ag1TM5uRnPMEP33TbwupBzvKGX0/uHvi5IeXU/Ox1vPgnfpo2jWr\nWy8EwQSCcH8MD5kcBVsDpnSj9BfxMD5VeilGcP6VZg3K9OeMimUvgL8uwsyePA7Q\n/3Ebm9omakAbohaCiHKCFgqa3vl9O5KKzBX01lnhdHC4kExQhvQhW1nk+5Ml6VSj\nGEhvOM5XYdfWJ6wALJlkVzbl9e+ka2YCXr0PexiDniaWpE+PRPR/n1qbapac7lvn\nxwLYZ6erk4HpX58qGshiLcTs8Qj6iwXBNg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"vinarium","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cpcMomentum/vinarium/issues","website":"","created":"2026-05-18T06:41:50.720276Z","lastModified":"2026-10-04T20:23:41.495203Z","releases":[{"version":"0.5.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/vinarium/releases/download/v0.5.5/vinarium-v0.5.5.tar.gz","created":"2026-10-04T20:23:41.486698Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T20:23:41.543982Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"p/ZD74IDgpTze8yTsiofsXe7wtEKQoiWPPz7p5kF1c4ZvLKhYzYYMjXzF4oajcIgTrHERVn/wJVL7LI2AEanYUzCqgioymcL9bgCyH2BZHLJO0bu0vf0Nr6/jQWdeqhWUI7FHzQrtzYOdepcdzwg9PzyLfJZ5x7COmdGnTPPJvkbULRiAu4/HYTRytm06O5hYe1YUv3CLmCVsXWR1ngM1EYCDUMNR8xfaAQNihuKmaAKKY5r/indsflxDV+0jiKRAIEKWCUiLIEsChlxbHb3QXpw+jSlkEmOUtDxjrxw0c5+8/Wb61jjikCYAXrrHdDLagNj5a+7P+w4wJl8eOMtug==","translations":{"en":{"changelog":"### Added\n- Menüeintrag **„Neuerungen“** links unten: öffnet das „Was ist neu?“-Fenster jederzeit mit allen bisherigen Neuerungen, nach Version gruppiert. Nachlesen quittiert nichts, das automatische Fenster nach einem Update bleibt unverändert (#298)\n- Währung **AUD** (Australischer Dollar) beim Erfassen und Bearbeiten eines Kaufs (#294)\n\n### Changed\n- Fehlermeldungen laufen über einen gemeinsamen Helfer statt über `catch (e: any)`. Beim Hochladen eines Etikett-Fotos erscheint jetzt die Meldung des Servers statt „Request failed with status code 400“. ESLint verbietet `any` nun als Fehler (#232)\n- Build: `appName` und `appVersion` für `@nextcloud/vue` kommen jetzt aus `package.json` (App-ID `vinarium`) und `appinfo/info.xml` statt aus festen Werten (`VINARIUM`, `0.1.0`). Heute ohne sichtbare Wirkung, verhindert aber „VINARIUM 0.1.0“ in einem späteren Einstellungsdialog (#301)\n- Die Schema-Prüfung der `whatsnew.json` läuft jetzt zentral über `nc-whatsnew-check` aus nc-app-tooling v1.17.0 (`npm run whatsnew:check`, in der node-CI). Der PHP-Test prüft nur noch das App-Eigene: bekannte Symbole und kein `plus`-Feld (#296, nc-app-tooling#27)\n- CI: Die Ableitung der getesteten `nextcloud/ocp`-Versionen nutzt jetzt die geteilte Composite Action `ocp-versionen@v1.17.0` aus nc-app-tooling statt einer eigenen Kopie im Workflow. Verhalten unverändert, auch der harte Abbruch bei einer Packagist-unbekannten Version (#295, nc-app-tooling#28)\n- `@nextcloud/vue` 9.11.0 (innerhalb der Spanne `<9.12.0`), `vite` 8.3.1, `sass` 1.105.0 (#300)\n- Abhängigkeiten aktualisiert: `vue` 3.5.43, `eslint` 10.11.0, `nextcloud/ocp` 34.0.4\n- `@nextcloud/vue` ist jetzt auch in `package.json` auf `>=9.6.0 <9.12.0` begrenzt, nicht mehr nur über das Lockfile. Ab 9.12 zieht die Bibliothek über eine von Vinarium nicht genutzte Upload-Komponente `@nextcloud/files/upload` nach und der Build bricht; Dependabot überspringt diese Versionen jetzt, statt den Sprung wöchentlich erneut vorzuschlagen (#286)\n- Kompatibilität bis **Nextcloud 35** (`max-version`). Geprüft auf einer echten NC-35-Instanz (35.0.0): Installation, Migrationen, App-Start und alle Ansichten (Dashboard, Bestand, Regal, Verkostungen) ohne Befund; die Unit-Suite läuft in der CI zusätzlich gegen `nextcloud/ocp` dev-master\n- CI: Die PHPUnit-Matrix wählt die getesteten `nextcloud/ocp`-Versionen jetzt nach der PHP-Version des jeweiligen Jobs. NC 35 lässt PHP 8.2 fallen (`nextcloud/ocp` v35 verlangt `~8.3 || ~8.4 || ~8.5`), der 8.2-Job wäre sonst an einer Auflösung gescheitert, die gar nicht scheitern soll. Neuer Job für PHP 8.5; `php min-version` bleibt bei 8.2, weil eine App-Untergrenze auf einem NC-35-Server ohnehin nicht bindend ist und ein Anheben nur NC-32-bis-34-Nutzer aussperren würde (Muster aus contractmanager#414)\n- Mindestversion auf **Nextcloud 33** angehoben (`min-version`; `max-version` bleibt 35). Ohne `<database>`-Deklaration begrenzt NC bei min-version 32 Bezeichnernamen auf die scharfen Oracle-11-Grenzen (30/27/22 Zeichen); seit NC 33 gilt stattdessen eine glatte 63 (nextcloud/server#51593), zudem korrigiert NC 33 die NOT-NULL-Boolean-Behandlung selbst. Oracle bleibt installierbar (kein `<database>`-Ausschluss). Preis: NC-32-Nutzer erhalten kein Update mehr; Produktivinstanzen laufen auf NC 34 (nc-app-tooling#15)\n\n### Fixed\n- Die Apache-2.0-Attribution des App-Symbols (mdi-grapes) wird jetzt mit ausgeliefert. Sie stand bisher in `THIRD_PARTY_NOTICES.md`, die beim Packen still herausfiel; jetzt steht sie in der `README.md`\n- Dialog-Titel schweben nicht mehr über der Suchleiste der Nextcloud-Kopfzeile. Alle acht Dialoge benennen sich jetzt über ihre eigene Überschrift (`labelId` statt `name`); der Foto-Zuschnitt hat dafür eine sichtbare Überschrift bekommen (#314)\n- Etikett-Foto: Ein Bildformat, das der Browser nicht anzeigen kann (z. B. HEIC vom iPhone in Chrome oder Firefox), führt nicht mehr zu einem leeren Zuschnitt-Fenster mit stumm scheiterndem „Übernehmen“. Stattdessen erscheint eine verständliche Meldung mit der Bitte um JPG oder PNG, und „Übernehmen“ bleibt gesperrt (#276)\n\n### Security\n- Transitive Abhängigkeiten auf gepatchte Versionen gehoben: `axios` 1.20.0, `brace-expansion` 2.1.7 / 5.0.12, `dompurify` 3.4.16. Schließt 17 Dependabot-Sicherheitshinweise, davon 9 mit hoher Einstufung (#306)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3ZpbmFyaXVtL21haW4vc2NyZWVuc2hvdHMvMDEtZGFzaGJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3ZpbmFyaXVtL21haW4vc2NyZWVuc2hvdHMvMDItaW52ZW50b3J5LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3ZpbmFyaXVtL21haW4vc2NyZWVuc2hvdHMvMDMtd2luZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3ZpbmFyaXVtL21haW4vc2NyZWVuc2hvdHMvMDQtY2VsbGFyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3ZpbmFyaXVtL21haW4vc2NyZWVuc2hvdHMvMDUtdGFzdGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Vinarium","summary":"Private Weinkeller-Verwaltung","description":"# Vinarium - Weinkeller-Verwaltung\n\nNative Nextcloud-App zur privaten Weinverwaltung. Bestand, Lagerposition und Verkostungsnotizen — selbstgehostet, ohne Cloud-Abhängigkeit.\n\n## Features\n\n- **Bestand** — Weingut, Wein, Jahrgang und einzelne Flaschen getrennt erfasst\n- **Lagerposition** — flexibles Regal-Modell (Fach, Ebene, Reihe) per Drag & Drop\n- **Verkostungsnotizen** — pro Flasche mit Datum, Bewertung und Freitext\n- **Trinkfenster** — Hinweis was bald getrunken werden sollte\n- **Barcode-Wiedererkennung** — Nachkäufe per Scan\n- **Filter & Suche** — nach Farbe, Region, Jahrgang, Trinkfenster"}},"isFeatured":false,"authors":[{"name":"Axel Deffner","mail":"axel.deffner@cpcmomentum.com","homepage":"https://github.com/cpcMomentum"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDAzCCAesCAhNBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTEzMTQwODIwWhcNMzYwODE4MTQwODIwWjATMREwDwYD\nVQQDDAh2aW5hcml1bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMUy\nUf45nxsw9A85lkErb0KHGlESd4xVFuXULhPxrfu0468oXo+FAFGR66OcZd7Dz0ju\ncwIrI2S+wwD5Un6NbK/AIw1SeUIZ2iOtpyPu1Rfefp3QDXrHWSVeirwBAynhR3Xu\nauyE/SVSX19cSU3cxomVZpI6/fD5A1rYsfV13jKfJSVqk8GgJpob28sAOJPGz5wf\ncTUILWh/fBJLWHE8PhowV2r2AnlQCeMScOgIZ5Okg3GX5P1VWMgohr8MafIAgeib\nhl9fiUrHdSb445ph/9SGuLwZ7achJN0Yk27+SjqpvDLDT965yqHMqe9hqZRwWqSY\nErR46cHuDKqEUQHBtLcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAU6RQMAMbEMoj\nhwEQ34AYwy7sYrSOYYhRxy5HrZ8cZGHwDbNIRNhglMs1UDe+GqDFRhibNVA4Dmou\npvVWqRTihM/hRs+dUKrqgQ3owf/3KbA9VSD5/nEE8MiehZVvMA0ecJ26JqTbrekF\neAVFzcZul1wJkH0hO5wlM3h7RHNKUDViOi3hUsYiDJot4BWN3ndlTuAqgrsAonPm\nx28mIRLs8XPn023C9IY/D9VRnw/6Fc3aMyB/vkUe5FWwYAuoo9ntnkeA8v5AxLlH\nOs1dIxl+8sW8SJtfZ6BDqnnpK9/J11ZLvQFoWHVqK5Z/kN+ZLTaUtCVKCgC2LNB1\nBoFrOxGkfQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"musiccurator","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Happyfeet01/musiccurator/issues","website":"https://github.com/Happyfeet01/musiccurator","created":"2026-10-14T21:03:58.025052Z","lastModified":"2026-10-14T21:12:45.425595Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Happyfeet01/musiccurator/releases/download/v1.5.0/musiccurator-1.5.0.tar.gz","created":"2026-10-14T21:12:45.420323Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T21:12:45.467836Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"T4WIu0E+gj72mD6YJOwAkLQj9G0+ydrLh+raiL+ujDyzob0CkjdOHJAMCD2JcYTQRwlJ1cL5JyIEEataRKU7E3aTUicCyw6hqH/NjyxrO9VAiV/iSaUhD0PMOy/kOIt1CXK6u1kVvAXsg/yXSf83HAgodQSQrMzhMAKNCW2koK2KATNDhWMj5g2JGgZbjmFW6KSoM0kOwwwPlmN4GCtyweOl/IDaG7P9g0adwLdl3wtWtmkkaulTz1dd2CLatvzFLGsV7/RYtb0JHy8wsngMIHChtibU7SF8CuQh9Sp9a4p+Vayl/EQg3U5Ht5OXR7WMrzCivJwMKTb4F7zxTTIV7jKMWSAyNv3rAlN8c1aBtSbjGfyY79FWZYqyOpk/jRYUSk5r02IHJUVe1EHD6mvvRSOzxWc0OnV6dzZc7dlPidZ0LBtvRmP454y648W5Gi0yFQUljeVf/kF1nDL1nHtgn1/G+PP3cnN41BPERiZoSatBwvCeAaVoz8/tWSIM9mYeBWkHtwGyiMCUUpAfDtDEaN80wGOx9Jbh/4yXgBhU+dNqzrKneBFwtLKFcgxFzyB7c70xhznJCBFxzmgSirAALxUX21DUcFmaB+SZw9ndf20DK4r5f0a6/9YIHlR3ynrlaQDkfPQMwpgCX3OWeOCno8Ol2XZxnQzEXcjUpxJnPCk=","translations":{"en":{"changelog":"### Added\n\n- Publish MusicCurator-managed M3U8 playlists to Nextcloud Music for use through its Subsonic interface.\n- Update the linked server playlist on subsequent publication and report missing or unindexed tracks without replacing an existing playlist with incomplete contents.\n\n### Fixed\n\n- Show failed and unconfigured metadata providers in batch results instead of reporting them as successful searches without matches.\n- Reject invalid metadata responses and preserve successful provider results when optional scan-index persistence fails.\n- Refresh playlist lists after creation and refresh persisted album metadata after tag writes and undo.\n- Restore the complete Vue source and keep Music playlist mapping keys within Nextcloud's 64-character setting limit.\n\n### Changed\n\n- Require PHP 8.2 or newer, consistent with the minimum supported Nextcloud version.\n- Keep PHP 8.4 app syntax checks; run the existing Psalm 5 analyzer on PHP 8.3 to avoid its PHP 8.4 crash.\n- Update DOMPurify, pbkdf2 and source-map-js to their patched versions; evaluate full and runtime audits with narrowly scoped, expiring exceptions for three reviewed development-tool advisories.\n- Explain empty album views and the MP3/FLAC tag-reading scope.\n\n### Known limitations\n\n- Metadata-provider availability and credentials must still be checked on the hosting server.\n- Existing source-analysis and formatting findings remain open before release validation is complete.\n- Playlist publication requires the optional Nextcloud Music app and its index to include every referenced track."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"MusicCurator","summary":"Curate, tag and organize your Nextcloud music library","description":"MusicCurator helps you review and improve the metadata of audio files stored in Nextcloud.\nCompare existing tags with metadata-provider suggestions, choose changes field by field,\norganize files into album or playlist folders, and keep every destructive action behind a preview.\n\nThe project is designed as a companion for Nextcloud Music. MusicCurator manages the library;\nNextcloud Music remains responsible for playback."}},"isFeatured":false,"authors":[{"name":"Happyfeet01","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhQWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE1MTQyNDAwWhcNMzYxMjIxMTQyNDAwWjAXMRUwEwYD\nVQQDDAxtdXNpY2N1cmF0b3IwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCR84Q/l4TrUB00VUP8KsmCzXXWYvRb0QHfPBuaHjF25Zg4Fr39XB/xT4SzcoQ4\nzvwRG1p6DDGhEIemIp+FWP2rx8KHlexFDzkZE0DVdCpoO6WNF91EblbL+z1Qpdwo\nsjx1nY5R4Z4TVtHuwcfVCMORJ0nc4MCbn+E9jPxfz72XSZuam3yILt61ZC9WCfua\njFofih4ZrtyN6q/UuCZtaHjqoi74RFmlX7fxlKVql8KVdj520bFwV3KL03Ed38qJ\nVOtN7rZIaaoyNRYpvdndeCft7osNODu1IsLv4QvyLBv9SMhO/W3WrjN9/dgvL8DP\np+S5N56PwUu5DIl9UT6aIN+gfvgefGJqVl8PeAHImZ/MtnKNoNq2PObcjPEafjPm\n7KMWz8yq/MjxpihurwUjW2+Y2newYuOAU9NQBF2a03r/N0YW1lX6G8gxvklRARbG\nk/xVrV+hsukNmGN1GWKOjl1d27W1vpJYB7iN0G1+AodYm/CgHh3DjUkh47rCso4G\nqF2m2xNP1rqeAPzTN7boI97OzwrDUBm09DxZlydZmQXmlJOV1MEW6JEgKgrYXrSi\nE9dXKAIpqBtH25WJHhZarYxCtWHMhOryGhDSCXSVRpMDp9nKzhhs1heikCgnOI0H\n4SirPsXtLY8k4FJ2G/O6r5byiGHQyv1p7aRnbQ17TYJHTQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQCcONxzmnuR0O5+ksxAdKEFHmLpGvl3doFpCJd9ANyG/+DR1zXn\nVW9uQuRDY9uRgLCk5e929T0SwQpJ86k+3sv46twYsmcIbOomcDYtZR4VMSLmu01H\n0QtC/6/KpJKm2rvuSbvInTeyhAiH+aY04kb88ecj3eNwFTVnzNJ8sX4aRb1bWes+\nshM/C4SmTCFk+caSbV7oN/NNnh3/3OhElzwdxH0Iu2gOGH3Pz12FgkJTuh42agXC\nO7MryKoznI3P+J6LWwFNVp8x3p21yTG48mTRDBlb3Bogp8/HVb9E+yYuSIhmEQoM\neoHwj9irr2zH/5XnOiZPhXQ7gJx1yZGYI5we\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"webapppassword","categories":["security"],"userDocs":"","adminDocs":"https://github.com/digital-blueprint/webapppassword","developerDocs":"","issueTracker":"https://github.com/digital-blueprint/webapppassword/issues","website":"https://github.com/digital-blueprint/webapppassword","created":"2020-07-28T16:38:03.218939Z","lastModified":"2026-08-21T10:49:01.592336Z","releases":[{"version":"26.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/digital-blueprint/webapppassword/releases/download/v26.8.0/webapppassword.tar.gz","created":"2026-08-21T10:49:01.570889Z","licenses":["agpl"],"lastModified":"2026-08-21T10:49:01.646623Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"T54ZGSPkIpx0BIKCf43CE+P9JajbveDU8N8ebiJOJF69+QenNpj03C5wBil3d5Jp\nn4VSTYJBi2110Kt7DhKEfJxdM2jD6D448clWj0GA6snlUPIkyeep9SkXQjs+Wkt6\n5geRvfitYlrpWoA5GumIJt5pVfOvuQusz6idfv2F81z4PNCoOlqQf2hWMPZ69PpM\ngYVHit8rzbD/JWQLAS0+csmpqDsJwrh+B/wnbW/ZM+22ULW0S3dTNgCDyCguRZup\nNcvHsT7LHBFPe+BF85Updsb9ugpZppJowHYXd1iJnMC9seBVqC3LSYNPPiXpHIhS\nnbcRaoWydI6zdp11Y0has+vMPr/+JMmLOwPeOy3kDVxHPJr4KQ89h4GmdjgV+to7\nAX++ItOWC1LhJ5RPJ7BbpfQJmmIV+5sB9O7shDO7qeD4DBumPWLge2wnag24Fej2\nTQqgiRUkVbJi4O7dlFuGhvNW9YnniinGT07VKEOM6HNZ1kMES5m3T2cmcc0ps+jT\nXH73RSkJu1MsRs0tQtgur/UVTxNV1qZpX41qXHnDDIqx1ZEtgzH3y0w6z/QC0Y0q\nccu4W6CCLxhpHNQqmJGkVJQ3+/TzpiEl+Sg4lxGjxaVw8dpAp74XTg4JRHIYuMu5\nRCpoPlR8TbWOya5WCBeHsvq8QMUt81F1DEErOl1zPjM=","translations":{"en":{"changelog":"- Updated and tested app for Nextcloud 35 (for [#341](https://github.com/digital-blueprint/webapppassword/issues/341))\n- Dropped support for Nextcloud versions older than 32\n- Fixed sharing and preview origin configuration access on Nextcloud 34 and newer\n- Replaced deprecated controller annotations with HTTP attributes\n- Updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2RpZ2l0YWwtYmx1ZXByaW50L3dlYmFwcHBhc3N3b3JkL3Jhdy9tYWluL3NjcmVlbnNob3QucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"WebAppPassword","summary":"Temporary app password generator and WebDAV/CalDAV CORS header injection","description":"Temporary app password generator and WebDAV/CalDAV CORS header injection to be able to access the\nNextcloud WebDAV/CalDAV service from inside web applications. There also is a files sharing api endpoint with CORS header injection.\n\nThere is an [example implementation](https://github.com/digital-blueprint/webapppassword/blob/main/docs/example/index.html)\nthat uses this app to generate a temporary password and make a WebDAV request to a Nextcloud instance\n([docker container](https://github.com/digital-blueprint/webapppassword/tree/main/docker) included).\n\nSee [Example](https://github.com/digital-blueprint/webapppassword#example) for a Nextcloud WebDAV file picker example\nthat uses this application."}},"isFeatured":false,"authors":[{"name":"Patrizio Bekerle","mail":"patrizio@bekerle.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhE+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNzIxMDkwOTUyWhcNMzAxMDI3MDkwOTUyWjAZMRcwFQYD\nVQQDDA53ZWJhcHBwYXNzd29yZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBALNPxdtStKgpndBurudzVmSzrmydl39sTt82ievi9q/dKggGb5o939HP0ZNF\naZeWEEj/7mKvbA1k9hyCS19oSO9MYt5oABBBNEbf7YJLxjiApNV6kIgcuqAv9q5E\n8Xoz52AszKNzRwMBoF1KjPtxIZBF0l2225zlBrd7dEY6DUIsYkc6TfTl2xeQ+jtO\nAfoOkg2v0QAVU0NYObHJEexmxvs2403fi7xqx1VHVHLYeYwHXpnu5bRLvBjdQACG\nOdIDY1l+GB5Y4ww1L/qzXbvwXiPMdZrbeNQlnXXc3TiK/iHOQneeqzq74sD6is5U\nao4H7X+AuSscDO/0MaPYN3qLyB0z695fNo1rNsWHAby3ORi3km7dgYOln93k3jQ+\nO885ltgi3vGDyniGuP97Io5g29LtcL2dHNvfwxosGY8h3ByirZkF9HxId/xnOwa9\nLbq5gjJjlGBQtKUcxNFoBzwKojkbD06IuhCN4ZldIERu2werC3IyeHrhbCqPTqL0\nvNEDU7hfkL0VmJI6f6OUF8X9qM3CWzoTGPojFQ+d3BN6Uof98MgqfWJy7wK8kggW\n66TaL8go+TuUT7tKiprc53O6m0HDgsiFYO9rrt5C8ivPeE7V0SQc8K6yWqASCiTO\n24BOGARL5EFeiX9KJ1I0LiQlXVd9VE0ogiyJGbxqUKYyUlI/AgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAJykYL0JJlyEl4AAy2wkiXZSjJmv8uxw2mZYkTKoqpAqtP6+\nFZRmwt1r5DIa4KPi+pUklObo/nzFxstQuznC6yK9Kx/ZCUJGZNuqUHOFD4CPZsKW\nu71umlxuX1tCRwCPsdrYV1+jqJQ6ErsOLKYh5/An23TnVydpuSll6tqkXfuuuIyu\nueceyM0NZHjydkCcRdOFQphtHvQDIpwTlcAttuUIgxkh8X6QwP6FYYP5hxv1Nn1f\neQG3nWLiJq6vrdY4nRHaL62mc590KS6/Lx4tzchhe3f4vcwYuGxgUCSj3jeBN0ef\nyVu1Djli3q1fnZK6aSVhrNOVtG2Qa69hb1HPQ6U=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"penpot_sync","categories":["files","integration"],"userDocs":"https://github.com/kubed-io/nextcloud-penpot#readme","adminDocs":"https://github.com/kubed-io/nextcloud-penpot#-setup-in-three-moves","developerDocs":"https://github.com/kubed-io/nextcloud-penpot/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/kubed-io/nextcloud-penpot/issues","website":"https://github.com/kubed-io/nextcloud-penpot","created":"2026-09-03T20:33:18.381350Z","lastModified":"2026-10-21T18:48:29.502089Z","releases":[{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kubed-io/nextcloud-penpot/releases/download/v1.0.1/penpot_sync-1.0.1.tar.gz","created":"2026-10-21T18:48:29.488558Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T18:48:29.555575Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"GUPdqtF8m0f/Kfdginw8fbLqHfCXZ8WzfvF124P99nJYwJbZOQflpsTx2sK9Ib41zD4ty07x5gKCvYmTXuK6Yp9eDGK/3COat6Ro07pyMC6EK0qbUK08aTP0wV6KG8ESxLz6MIdaXiTdWgtv5bw4uZYiInYPx138BVEnTTPihJN9sJ6XCC2uzkTx/OsFFUxXKmv6mVs4T39B0c9PEH16NmwQiiTDBjwzAorW3FmmZC0/QnpTsiN8zE9f5PGrrSbc9nNEO8jJXrgQzBDhDAYjNRfoj/F+qdcrJFirWwsZKarpb5Gz8BmOCHUVbi3K0hGGmzxMBUlkZc617yCVMl+VkWcYmND/+mcCovscRvoZlFRrulwaYEsLJehlYiIpq15OzBHo/VyRxt4tdCl3lPCrvhNVudKcAmEpzB+PstX8o5RTiI8b6Vzlg0BB/dMaoV7PLlgpV6nEt//yko5ucMy2LrZQ0yNxcw13e1OGqT7nadPpUT8kaBV+buBxzIahmwl6mKNYkxOl0uCaftSngHFcrEphWFBK/N67JKjPQUkd3bm6LY4yNLP5H7Qb59Nv1rv9EA9BYMj6b7RUXadqC1MPUD6ARfW83jbH1tsMlhIRolijAEfArMZVsVwaKTL+KMafyXfB/vlDjyCZXGv6g39HtkpGLwlgUl2qZgb1i2CLyak=","translations":{"en":{"changelog":"### Changed\n\n- Supports Nextcloud 35."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1wZW5wb3QvbWFpbi9zY3JlZW5zaG90cy9wZW5wb3QtZmlsZXMucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-penpot/main/screenshots/thumbnails/penpot-files.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1wZW5wb3QvbWFpbi9zY3JlZW5zaG90cy9wZW5wb3QtcHJvamVjdHMucG5n","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-penpot/main/screenshots/thumbnails/penpot-projects.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1wZW5wb3QvbWFpbi9zY3JlZW5zaG90cy90ZWFtMmZvbGRlci1tYXBwaW5nLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-penpot/main/screenshots/thumbnails/team2folder-mapping.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1wZW5wb3QvbWFpbi9zY3JlZW5zaG90cy9jb25uZWN0aW9uLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-penpot/main/screenshots/thumbnails/connection.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t1YmVkLWlvL25leHRjbG91ZC1wZW5wb3QvbWFpbi9zY3JlZW5zaG90cy9hZG1pbi1hY3Rpb25zLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/kubed-io/nextcloud-penpot/main/screenshots/thumbnails/admin-actions.png"}],"videos":[],"translations":{"en":{"name":"Penpot Sync","summary":"Your Penpot designs as native, organisable, backed-up Nextcloud files","description":"Penpot Sync turns a Nextcloud folder into a live mirror of a Penpot team.\n\nMap a Penpot **team** to a folder and everything in it shows up: projects become folders, designs become real `.penpot` files with the Penpot icon. Click one and the live design opens in Penpot.\n\nNothing is matched on filename. Every file carries its design's id, so renaming, moving, copying, trashing and restoring never break the link — and re-running a sync never duplicates anything.\n\n## ✨ What you can do\n\n- 📁 **File your designs however you like** — the folder a design lands in becomes its Penpot project, at any depth\n- 🚚 **Move** a design between projects, or into another team — same design, same history\n- 🍝 **Copy** one, and get a real new design in Penpot\n- 🗑️ **Trash, restore and purge**, mirrored into Penpot's own trash\n- ➕ **Create** a design from the Files app, or drop a `.penpot` archive in to import it\n- 🖱️ **Open in Penpot** with a click\n- ⌨️ **Script all of it** — every admin action has an `occ` command\n\n## 🗂️ The folder *is* the project\n\nPenpot's hierarchy is rigid: team, then project, then design, with no sub-projects. Nextcloud is a file manager. So rather than force Penpot's flatness onto your folders, this teaches Penpot yours — a folder becomes a project the moment a design lands in it, and the path spells the name. A project called `Brand/2026` arrives here as two nested folders.\n\n**Drafts is a state, not a folder.** A design that belongs to a team but no project simply sits at the root of the mapped folder. Filing it is a drag; un-filing it is a drag back.\n\n## 🖌 It never edits a design Penpot already has\n\nA `.penpot` export is an opaque archive of nested design data, so there is no \"Edit as text\" action and no content writeback. Design happens in Penpot; Nextcloud holds the archive and the click-through.\n\nThe one thing that travels upward is an archive Penpot has **never seen**: drop a `.penpot` into a mapped folder, or press **Sync to Penpot**, and it becomes a new design. Nothing existing is touched.\n\n## 🗑️ Two trashes, and only one irreversible gesture\n\nPenpot has a trash of its own, so trashing a design in Nextcloud is reversible on both sides — restore the file and the design comes back with its id, revision and history intact. Delete a design in Penpot and its mirror lands in your Nextcloud trash, never a hard delete.\n\nOnly emptying your Nextcloud trash destroys anything, and even then only a design still sitting in Penpot's trash.\n\n## 🧭 Sync or Link — the folder decides\n\n| Mode | The file holds | Keeps a copy? |\n|---|---|---|\n| **Link** *(default)* | A pointer — zero bytes | No — clicking it opens Penpot |\n| **Sync** | The real `.penpot` archive | Yes — yours to open offline |\n\nThe mode decides whether the bytes live on your Nextcloud, never whether the design can be opened. A `sync` mapping is therefore also a real backup: every design in the team, exported and versioned by Nextcloud.\n\n## 🎨 Honest icons, honest dates\n\nDesigns register their own mimetype, so they wear the real Penpot icon instead of a generic archive glyph. And each file carries **the design's** created and modified dates rather than the sync's — so Recent, Popular files and sorting a folder by date all tell you the truth about your work.\n\n📖 **[Full documentation, screenshots and the `occ` reference on GitHub](https://github.com/kubed-io/nextcloud-penpot#readme)**\n\nRequires the `enable-access-tokens` flag on your Penpot instance — it is off by default upstream. This app is in early development: it works end to end and is covered by tests against a real Penpot, but has not yet been run widely.\n\n---\n\nThis is a community integration and is not affiliated with, endorsed by, or sponsored by Penpot (Kaleidos Ventures SL). \"Penpot\" and the Penpot logo are trademarks of their respective owner, used here only to identify the service this app integrates with."}},"isFeatured":false,"authors":[{"name":"kubed-io","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhPzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMTEyMDI3WhcNMzYxMjA5MTEyMDI3WjAWMRQwEgYD\nVQQDDAtwZW5wb3Rfc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAMl8eqgNPaMv5mLWWYP6AavnPh3nf2J2CgJN2gUyoRPNZrSaXggrgXW9IlyCJZT7\nre2ELPMP/3gAtr+ot3qMeU2Eg/9Mn3r3p5DWzNWs0zE2wk5kVRriGqsx3+Nsbyz/\nTqQgbmej9n3FqL8vkIDFz52Sl7oEWeVCsD8Ywh2RKh5mOcqHcf0MeQTAZU9OrkPu\nNpJZ0I8C1TltS/0yW6D7YjwtKp4DKSoNIO84gu38injgGtQZXCHG0CoPlYMJnh81\nfubbg2Kt+gQbEJyYyoxlSM3xFvcVjaKSqKwoDy1Q+KxCTskg10ZI6tTD3cfnO1s1\nrxDMhIHgia8OSlmxW/1wdnMPLFRxLA0U3NkVTHZ8CEmQxK5AfomTudFcU8bKeUT+\nZ4qX+8qsCdcgytYXPH0gRHnpuRpMPC1iUiaPy88eqhtfHybF0Rp7CnQHoOBHa+GY\n7X0NCMfBsm21XWRfrHGt7gYwd9w4+6fXrZYIHzPEr8izUGgcVdatZ4bm+mKchBWN\nLN8dDOfUjImqXgz6vLHBA2cVtR5sZu4v7nFjE+jd4GCsx0reZ0T/PH4aMlgtZuw4\nynl/ZJHi0cuXL6IOC4T1XCuHzv58H2uY3QpD1f26LMveth1zhUmQoXLlNnCzazIt\n5P28Fkw5TNET2iLFLCc38ISG2ocKPyZp17vKu3/FeEctAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAD/UQufZHzaojOtFoSuGYq4fLOpSrBqV4R/vAnsDNcbRnrAtaxDQ\nbgUNssy5t606piKg64+Q1/PsA0JxbR4E/Zf8oE51xE+fAmaSyMq2WiVOz1ZEZPOO\nNhkR6RCMhYDK0ASkcsfF8Fva5cPRWBi5W2KXtYxl8oY/WsHdfwgWUfpoWJog4DK+\ns4KNszg3UdvMrwbWA5vyIesNo20EFXpl4Efm7/xO5DPrmhTbybs3Adwz8+L7Y6tg\nBBPtB+cxAVczrqL1ENNudW5XrpqN/Qj23loASrWhdlOwqRLjR0B/KdQ1dpNYN4Z6\nyBdUjzk7nI1u4VHBJufITSVi3s+fA/pSlYc=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deferendum","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nicdragoi/deferendum-nextcloud/issues","website":"https://deferendum.com/","created":"2026-10-16T00:44:58.943010Z","lastModified":"2026-10-16T00:45:43.044192Z","releases":[{"version":"0.3.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nicdragoi/deferendum-nextcloud/releases/download/v0.3.0-beta.1/deferendum-0.3.0-beta.1.tar.gz","created":"2026-10-16T00:45:43.038518Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T00:45:43.079919Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=34 <=35","signature":"lOsxxNYwIrfk81yqrV6BnLwlIvWDMmPbBpUUiQs29KWHgsk/0XhhUNsochup/GC5PuzN+nUX9HnASm32mO92aSSz24GdC5D2RonrzubIZ+2IC9VFJoM8c24ff9FHJg8X5MZyDwzajX/ewRUdRa0CpG20muwslIhK3Io+AmVduWCh4gxQRazA2J2+XUvz3XgICoF6RfYCB7eGD9FzeQGBYUNRalgOT+MSNOCSANdpkJcJKbk2sprul6RhnCXvBrwoOPTNmXvOA6IDEQyZYJXBfSjBsRCRbwT5kpfsLXh5L79HSPyHuvvuna0UEseQDODsJj2YBK4xYqptvpD6Tw6hEBwJrg5DaAm03vnZYw1Oar9WZb7teSZP27Lgxdk8ixrDtli1JvElqdT9JaEC1JYyBky4K4kUR60WmpQjUZ15J9BRc3UOQXdT/Lf+qaexIYs1Ct2RAru4nQqraBWo1HeYy60OhuQluGv2xF10q+rD7t84T0eDsZoK7GIQR4qqJYHsMEym3FyS4/6ZVTwrwz/iyj13RbDwjFVAlsl4owOeBieAbVGDBxJp2lndcfz5rCu5xFIAZtLvmD+3X3bloj6baqntzsHdtiv9OSyicG9MCw9L8VU9/lSj+5KrhwtBmtx9X/gWL5qDzmM/veAch6yjSPtpojl1O4svAMToigKZQyQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Deferendum","summary":"Understand and participate in community decisions","description":"Beta: a read-only Dashboard and a mobile-first glass workspace for selected Deferendum groups, with a guide, searchable help and explicit action previews. Optional explicit permissions enable discussion reading and participation: concerns and urgency ratings, arguments and reactions, wording proposals and support, governing rules and voting. Each member connects separately; existing read-only grants are never upgraded automatically. Actions require confirmation and source role, phase and version checks. The hosted participation service is limited to a private fictitious-data pilot and is not publicly available. No persistent private-content cache or default telemetry is maintained. The hosted service and the Nextcloud administrator remain separate trust boundaries."}},"isFeatured":false,"authors":[{"name":"Nick Dragoi","mail":"nick.dragoi@deferendum.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhRxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE1MjAwMzE2WhcNMzcwMTIwMjAwMzE2WjAVMRMwEQYD\nVQQDDApkZWZlcmVuZHVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nuQB0tnVq+UzgU2XksIjKzIcVdGlSPNwziGT3PrJt0iD6YgMzc9Is21vg8MxpWBGl\n8bhd+T+4bxnymctbx6c/Xenikr3lwQMrpsGuQSjuvH1P1k1oEpbb76LtivyyaMv9\n969Ax0/Zn+v0pzkS54qKE808Boc2K8CogbO1oz8DV0Ub12qPFo2Y2ECk+BiK1z2b\nYHKkgSfUyY1aKbSLsMRYRYno28NeYhq2hKpm/Tafv1QLMpA5RdYaK+5d3DFPWwMV\nKPKHv9Pkyf6jXJ1Ci2KckTwUImWldXi7p+hadJDUlGPnnbXD2pJYXOt3Ltixiovj\nuJP8U729Qz2abIxQqs7ukjukQXABajo2/9U5++pJCJ+l4j+nNOtrocnyi4ihJH4a\nT7dV34WPyufImxA7yYjaFfFZHrWw8UJ+/9IZ9f3vP5dODCMDROFZbqRPqqC8tg7t\nr2etoOn2AcyoxV4KseIA8gZCEvI5oWQq7RciBG3j4CMOXIph6UNvdhAlUNtUwCF0\nAnIHFlvacNwp/+/uj1NomEe2VN5nebs9aBWU2yq0l/hTAucAc8Kx+0l+aVLS+Pof\nJv08KgH5MkqXXSn4+ySJoNxyvZffaAD91Il+xjMyyxNC7U4QS7uj7Rud4PHzHdyQ\nBgngf6hndLMigxdvKPMCX5vDvIpdL00JcTF1Xf9jRk8CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAZAZ8dbkshTBUs5z0t9eDueMxajf2w25+9VHxpqQxbn08fHJ1E/sJ\nlNE0EGosCGjf1qI6FDWIHabKKcjJJTRQhn70wXGg9Y8rCWLIOpvW+nIIqUmhWvIj\nnFxVwBBxMEK+k89Dzz+8zMlbx2VNcyz4xIimZbyvYhChlt5p4w1+1/eYOhxgzsjH\nLHPbW+y+VHRw1SLUG5TM/1jMtJjYLzwsoYTb1VbS5W4ZINJ+yurYMkM/2WqCbMUQ\nl6j/YpgIb5ZX0i2H9IpsRWErX3lwK2aWtCMrKlFhlX6iUedaGrlQB/LC05ly0nS+\nks/OvYrNj4DTHAzfP6qWaU2nMVig0eEsbA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_email","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2017-04-26T13:33:00.793453Z","lastModified":"2026-08-06T14:44:05.771301Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_email-v5.0.3.tar.gz","created":"2026-08-06T14:44:05.742539Z","licenses":["agpl"],"lastModified":"2026-08-06T14:44:05.806123Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"l3qvRTOYVQmMgl1CFV4saLatb6/BS4werxeYfo/m/wdFdxHrfN+iesvvPvJ5kwv4U8UozP7hl++8o7zXwnkTgs1o47bke2NqZMm+1KyxXxWJjjgbfMn+ef7SP8uGf698zvYp/t5ywuMUKjsg9ejs3XUvsV3/dQrwB8qPS4xrkg+WcI3QShhOkGRF5pN1NjkqGaEJ3wQ0Qb5i29uLUGvFxClyJOx0x0aP8oDEwmfbdnQ5XNiCV0faa+KQqHIQaZcfWEOcQGDX64UHTp0RDc2iuz+ztTkgy7UytncCyp16F9fnJwwMNlKFs+dNthfC6h/4X4ZeFsUYNMVX8RywFpp6T8v2gBa0x3y3HoN0Ue/mDGzLSyL5lAGxkKRy/8PCYAS5RubZ2yXBaVDeJpLqPzcIjTPTKIK06Kaqzi7BeaKYSlF9k4JSFd2HEM2ygyww5bRD4W80jAMsA+k0eKS5cDeMXVi48uNVYyNKDmgc+pY6+riBoS+pF+iGJJDbzxJGlEIV+KTQ/dwBrg1+5l0khGceu6BIF+Vofl7BhrffiWy7nVn7jyL2V5cBjt9paoneKogR+55KatREup1GiigAMJHihrWcTiE6LXxsO0fOX+l42tNOUVM6jJ+73D0u+3jrYenK5T3mlGsCPEoQ3p65na3IMT1qyrNvstBp3YgTMVL0lDE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX2VtYWlsL3NjcmVlbnNob3RzL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via email","summary":"Enable direct sharing of files via email, using shared links.","description":"Enable direct sharing of files via email, using shared links."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDjCCAvYCAhBGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTMzMTQyWhcNMjcwODAyMTMzMTQyWjAeMRwwGgYD\r\nVQQDFBNzb2NpYWxzaGFyaW5nX2VtYWlsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\r\nMIICCgKCAgEAuxFzYJpfLMJqUeBCvb3q5GU+vfU5M8Pc01ywXB0dRzu/Hb25Yj7Q\r\nZxDIavKDbyYilFfLg+KOhGwxpomCdWhpQVHMWxz/tmIM/Cbbs/UOOp7QvwEj+88W\r\n7bkpFafH5OIP55f+UXuIq9PWuE7KkTPNsaHPUmtbOoU05nZ7HuUvUEl/Sj+r4OGx\r\nW+7wYqvoEW+7hxerAZN3aQFQy/SxoiCE6TY2CSYdGSeAZEeWlyCbzh8yao1p6M6k\r\nOAkVAz0AlcA8bcdAnWj7Uc2YtB3DItLFUP+cmsLOLKhrtgaloxgt+6KbQXOsXs+B\r\n8+8RyaUpkOT6IcOOfnEb3Hjx0mtzKvzaYR5D3fgDqsG8fT99a3/2cClHuV1P4Yur\r\necqlIggXlVnxublpZ9vUTACHfli+Sr4wy6mz/FuCslvkGkSyCdSvaoi6/lPjQgjX\r\ne5JZA2vfMdOFSfpgfYPtp5VMdbwCQfz0oYsea3qzZoFeHiasP88LW3utejJX/p9g\r\nGsK3wOrBQhVJ1KQTtq7qh0Qh8QEMeu1Z0i1eGq1gKEXtZia1V5NCCEvR5h3T11n5\r\nV3PRDEANQ666qIvF3E+PtLiUJKh83FC9W5QI6pcLi4wx85gnFLvjPkhHztJxCjlA\r\n+6CuNBMDATx9OUXbw43AvwSgdrBmpJqiXzvAlEVraZMC9eRLPcGNSc0CAwEAATAN\r\nBgkqhkiG9w0BAQsFAAOCAQEAPI+t4Lp2c16VYhIoUJLH5POdtPCk80Di+HyRkvlG\r\nee68P7gP40YePUbuuaMW2e/fjtd9lzG5h5ePYvA9a20T/wrcj18sLe9wvggZaKLi\r\nB7eASX1Xevo7d/8f/97LcWXJXnL/obYO9cFcWpSJiIwH2D12N8cM0TpvZOCVRvT/\r\ngrFy3Q2JhcPjW7uuaq1fM1yK/9U9jNRg5qt7yNSfWpACRh2+IJoEscDSWrtc139R\r\nfpd3TWyEp/xcTO3wKvejYoRV3Os7oAEY/v5k2r7aB+YDu+KGD4NSlX5ux08Cmr3n\r\n9N+v5+FijkkinIA1AXPh4Kd7LQAzvn8whHFY+egKOnY9ww==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"hidesidebars","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/pointcz/hidesidebars/issues","website":"https://github.com/pointcz/hidesidebars","created":"2020-05-31T11:16:44.140661Z","lastModified":"2026-10-11T12:20:17.287277Z","releases":[{"version":"2.2.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pointcz/hidesidebars/releases/download/v2.2.8/hidesidebars.tar.gz","created":"2026-10-11T12:20:17.280094Z","licenses":["agpl"],"lastModified":"2026-10-11T12:20:17.338999Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=35","signature":"6KZQdOf/dJtDppi5E03p0DEYzmDno7DEUR959LxtyFa/C9bAItI/6UWY/eLCE8yA\n9tRNL2vWTnk4oVTJFUDv/UhsA1dx/AdQzTCxHKvORxqpBH35RBGYsDOeqaI76L8Q\nKrVQRdjq4A2mcF+50TCP2Mtl2zhV0UuikrDCzS8nDnAQsi2JbA8LXaFvlufCfqkM\ndz4UjeSmX8Ar7eYVQIE41969Ba2I5QQhPvF/OaRivlr3ZCtM+tQvhMcTqW/RgBgy\nEH1QOSEVLFVPktFG1squNO8jc85Pouj0f5QTCBYG8KQ8IiCsOvjeEstF1uDwsVXY\nNalAgTXEX6mRouvXhrEZ8JbY5pwrQ7RMNGxEZ2Os345g41kVYwhBweL10oUbrXIA\ne29uss/u0ztntB1T9joX28zgN41Qz1NzM0bWRiDxHDEguzvehGAAkHpwOmtq2qKI\nrwmR+32o1hz6LQr1Wkb6dE03Cg5VFW5H3JafmM5eiPHqXGN4rzmDqiMYQX9zP1B8\n3e74EfJujdADb8YmOYwxMvOnXAkIjL/PKlOD+tocX4X4PhydyHucqefCPKbj45VI\nIXMjGYFXrmvrlHyQTZKTd2M6WxJduVhFSNMvHhO9G6QnMpH2LkuQMrksDnyokimx\nmTZeJC2bj3LLzaMJjKTmUVe+mHNa3/tpx1gZ0unbAfw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BvaW50Y3ovaGlkZXNpZGViYXJzL21hc3Rlci8ucmVhZG1lL2hpZGVzaWRlYmFycy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Hide sidebars","summary":"Hide left sidebar and top header bar for use in iframe or some other scenarios.","description":"# Hide sidebars\n\nHide left sidebar and top header bar for use in iframe for example or some other scenarios.\n\n## Usage\nAdd `hide-sidebars` after `?` as query parameter to nextcloud url or with `dir` parameter after `&`.\n\nExamples:\n```\nhttp://nextcloud.example.com/index.php/apps/files/?hide-sidebars\nhttp://nextcloud.example.com/index.php/apps/files/?dir=/New%20folder&hide-sidebars\n```\n\nThis app from version 2.0.0 brings new config parameter `addAllowedFrameAncestorDomain` to allow embedding into a website.\nSimply add the following line to your `config/config.php`:\n\n```\n...\n'addAllowedFrameAncestorDomain' => '*.example.com:*'\n...\n```\n\nFor Nextcloud All-in-One (AIO) set it with `occ` on the host:\n\n```\nsudo docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set addAllowedFrameAncestorDomain --value=\"*.example.com:*\"\n```"}},"isFeatured":false,"authors":[{"name":"Radoslav Stofko","mail":"rstofko@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhE4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNTI5MTQ0MDEwWhcNMzAwOTA0MTQ0MDEwWjAXMRUwEwYD\nVQQDDAxoaWRlc2lkZWJhcnMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDqAwdhBwdWwrZBTZlRU9ldQmWBOlkD+A28XZh3IU/6T0Zy5svzaJ+9ZKSF+zj1\ntA7zY3xAIyRneh8nU0VS6JTbgBSPFBbNB8yrbSfIrWwQ+7EbEfpVLCweD5NJPdSw\ncl/X5uGopMHyBxS6xMrclp8IlToyxLd1/NcS2QBuR+CAvDHbVqrtcMERq7eo/oh1\nAtxNNuCpPf+e30W1imIWTA/VTidBPmFnUAC0sVmz6m9yIntrezOPl3w37Ls9m1kD\nK9lDecLUqLZ9BYIU9ndOFMAFAiHOEpx3sEiGTeQI4HXX3KfjPhQW5SQSrEmpIT19\nPC+3GYJwQo9ZnwOXM/HeEV2hpuTK0W9z9FkKKU+debnyJo17yyetlBVCTqUhwD7h\nqq2RuK/UNevEnKqkW8G1uiFKrok2qLAdwcLFSNU+kyNN09FkhTc5mVwKtWlWWVjL\nm+JmCXlUXuQ1ZKp5HedrkWr7R7aP3iYe21pfIK2ug/rxXm22eyDLZMoKW8pdelSu\nzBD7HAgmeeCvIoUH8qGZqHtAD07XoMcr+KDlcqVh0NnR/8/zgYLI/k7UDO2rGQa6\n65jghjOzPTbcEs4yDPyUNZPYxDvv4WNC++ie/GZjS/89OPf3B/W1xg8QN8QilASc\nNmIWJ15vweH4ELI1+hiB2pIzauqFxWw4NJvWsmcq4VuhswIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAiNQQDJNWBOX4wbVAMzWdY3kCnC4OQFdQOzP02Vovp3LYRtDBG\nQG5i68vkImxdyIn8sfHiOdAM7pKIuEZsUb7b4zJRlgoRC6pXwpLAwCzOfXpEffOf\nJy0YLPbCBRX8OHUIr0UdWButuR7nfVMWHD9SpNat48jTs8MzXOBhx7MXj/fxwNVD\nB1hVZKhrgYTTQvhXcRT/YbhZTk/dzSbAEfWEEULeaUWeyCDqJWbPN4DLYuNJVdUv\n7vEP7TRfLT+5W+Q0sfvc9YRjEggT5qu5vSx+98QDTd5ONonw4h8t++tzEd0/9Xmw\ngx4Pc0Y+ADx/KpJpz5cEl9OEXWFzFo+8iWU9\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"mail","categories":["office","social"],"userDocs":"https://docs.nextcloud.com/server/stable/user_manual/en/groupware/mail.html","adminDocs":"https://docs.nextcloud.com/server/stable/admin_manual/groupware/mail.html","developerDocs":"https://github.com/nextcloud/mail/blob/main/doc/developer.md","issueTracker":"https://github.com/nextcloud/mail/issues","website":"https://github.com/nextcloud/mail#readme","created":"2016-10-19T19:41:41.710285Z","lastModified":"2026-10-20T11:29:46.692633Z","releases":[{"version":"5.9.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.3/mail-v5.9.3.tar.gz","created":"2026-06-16T11:51:40.749947Z","licenses":["agpl"],"lastModified":"2026-06-16T11:51:40.915382Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"FGOderRRlK/BoN0wIKHVkwDEDzKIXB/cPaDy+e0TaME6kb4CWKTCBbCWBhnEUam5FmbQLmro0OV6oa2NPOVsukxtA0R5371DRopDrCK8Vn03qdgfoFa+2KXFbs6OIYAF+viVLQg6ZRgdOq/uGBuEQhKqD+Ql9+AELkcgbESq0u2ydDQmW6M0xaDxa/3QaIrpDXjygAR7XWLdQjK/mhn8JEdg++S/fObMgDtCoNcuEkArF1t6tmIOoIrmtyQjUjGMHi86eun25tj50Z6Rveruzr3Og+5dud9jAfXZilYNCyVpPDImXKKGmvMbn60KoNNzejJ0FL4xPu3Hhpkxif9/5L/+JEe9a10swoD1qqYy4SfNlqJG9jKP4PNsk3Ueli8Ukb/+vIFPI/XzVOxtpDVlDI89ylrXox/VbArlU13WA0uB6vmPGRhSQalXMdHACXLmcyh8yOC6XZbWSt56OpGs24HkGO14cRHo6ppr8Slrn+yxNFjLOHEj5TLyDDqK8euTobBHJCUhSwUX1j0nVTvMyu0m++oRfBfrUpy26t1tBemqLsZd4RR+C87W/V/iMkzU6qITT9iYJL322wOJ8ecwzJql6SotunuKg/dsHQZdYeqrztpF766+5hAsqhwUtfZCZh7MP6YUvws8XaWxTW6v7nRomFIj4N+2A5BW63+52lQ=","translations":{"en":{"changelog":"### Bug Fixes\n\n* disable CSRF check for message-id deeplinks ([bc11cfe](https://github.com/nextcloud/mail/commit/bc11cfe6e52e23876c3a58dd719c58637d10586a))\n* **frontend:** log swallowed errors in catch blocks ([a45314b](https://github.com/nextcloud/mail/commit/a45314b99172100beebf8d40de1da5a4fa0a4883))\n* **l10n:** Update translations from Transifex ([15490ca](https://github.com/nextcloud/mail/commit/15490ca8ffb5b786f1b9045c1e93b8daaeb2166e))\n* **l10n:** Update translations from Transifex ([e0ad218](https://github.com/nextcloud/mail/commit/e0ad218b968ca7b8c259d9ee1f8fa7cbd2314dd9))\n* **l10n:** Update translations from Transifex ([6f496ac](https://github.com/nextcloud/mail/commit/6f496acacb175d1569cc7c677939ca00686818d8))\n* **l10n:** Update translations from Transifex ([7caeec3](https://github.com/nextcloud/mail/commit/7caeec3c97d575145a5896480c3754a64a80ac70))\n* **l10n:** Update translations from Transifex ([c61ad6a](https://github.com/nextcloud/mail/commit/c61ad6a5fd6434e0e7a68d395e92fbac6cb28f8a))\n* **ui:** prevent type error during shortkey usage ([4fbb386](https://github.com/nextcloud/mail/commit/4fbb386c71acbef332dc806bce7902fe3f06d41a))\n* **ui:** restore isSubscribed getter on mailbox update ([9fef171](https://github.com/nextcloud/mail/commit/9fef1718d219c0b4440be5a854565930ee2a76d7))"}},"signatureDigest":"sha512"},{"version":"5.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.2/mail-v5.9.2.tar.gz","created":"2026-06-10T08:11:57.631267Z","licenses":["agpl"],"lastModified":"2026-06-10T08:11:57.739272Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"btr83YvW2Br6JZoJIUlCb2FTbUaJsKV5BgwI0zZ2g/5Lz3dCLycNlb0OCJUjd1NRl2pWHKYUL54eLHEwDYwIg8ipGE5l0COKyxBnVijlnaLlyNmlt+E9GVzv73oqbCTYFyO4YbkfKkG8DhI+av5mJ4RsI0ja/U4hEHGb+OnEtdbGLhjYCyjGIAcSK/8OiZ/76BbqtV65XjzSIGWSJVCtev0FLdB7KqTN33iIjPJurFH2ZRCNk3T95hFUjimhIlEgQgmvrStKJvCptZEs++upqkMIT7ohIRLo5xk8v72Fl65p/4ehhBYbx13mCKJ4ID0uZCzEmnLK1f8siyGn4WJhzf54eMt/vClT/HHW+GaDeLVCAhvYZCKG0RXJNC6DG4ri10FLZfSPJpn8EVBiDdxGzGHTtNPDgE8u1G41kcFZ7AYH8BtqaW80PdNUJb1haMWjsb8kj8gz2UdMJZYjOx6CM0C+wqWimDWe9pkieMVi1qfG9Kss3dX4QsCnLuGd06R6yY4TDpGR9URroKmmbj2typLGWxQS3kuw7M1Sh32WdjfgD+l4uZg42agLTovR/HUZ+qtwoXGh4XX4/9BKFL5Rkjz4KClH02cvJHsSQuJSZ0Es3QaI28pE70lut5lPLAzLfP45tEPwaxXtHmGP0rF+liOvOm6JWag/wGSfOp66CW0=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **delegation:** missing mailbox id in audit log ([7fdd495](https://github.com/nextcloud/mail/commit/7fdd495320b0c83a66f70480b853007ba7b7d88f))\n* **l10n:** Update translations from Transifex ([a471b67](https://github.com/nextcloud/mail/commit/a471b673a3b1c9c1ad6fad3b4f198fd900183db0))\n* **l10n:** Update translations from Transifex ([15d7dae](https://github.com/nextcloud/mail/commit/15d7dae05a846a0e7408c6f0907ae47a7c8dc786))\n* **l10n:** Update translations from Transifex ([203ebf8](https://github.com/nextcloud/mail/commit/203ebf82ea198f056899984a21f487778a5b3979))\n* **l10n:** Update translations from Transifex ([22be214](https://github.com/nextcloud/mail/commit/22be21400cb1076b2c6868213542e5656e028053))"}},"signatureDigest":"sha512"},{"version":"5.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.1/mail-v5.9.1.tar.gz","created":"2026-06-09T06:13:04.090475Z","licenses":["agpl"],"lastModified":"2026-06-09T06:13:04.198521Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"GD1wRZ6EyZ5VW1QXwpoVENASeGE3lpHGsJSTDQzPbAwct7vgrZP4TAem3wKEXNTok+sIGa2Lb5s7Xg4mT3kkhHy0Sjp5ofpEXSFY8y1mZ2QBGNUuQX8JLU4TGvN2zy46HKCf8zL13UpCrXrMFvVOnDcw5mEDVy7guUpMNYzKJIa8So05OvWMHkd3zAaFxzUDiaFG5mjSupWZUNBVpkNFeEzLy5UMWOzUGLf8LcJbRqO/nF7JRftzMC3afDZYlZ0Xd51WooEIMDIXo0Gy79PPeAgzhnMaRee69WMQuaR5gdFyhzeTkvA0bBUh+5O3lrpoyH4TimqK9ErgrIwBm8WZyS9TrIFxg1sKwqJCLg2wKthxAX2L9uQfoDzlRdezdoCVCRNRpfSVJ7643yvtReo5nTP3hOOPSyn8QrcGTev29IBHZ1tP80YjO3CY8poI7iJDdPB8yu1hKXQCd37ilEaP+4gCbcYuxYW8bE+O+4QbGXiRJiYUKyGL6eC2OZUrQiD5JVWJ0EGty4OOl3tRCI3ccVuQybDRoJY7GdI1W7zSUrX9zUyGmIMUJ4+aHkUemHx5QG1htxnGL4xCfHIRlL6QkZspxOv2Oafr6T/mrIoPI27WaKLxqOn13zGs0fsMz+DmLjphAaIx2M7RXqTswxeniAHrsDqm+6UwvsUp4pKigZw=","translations":{"en":{"changelog":"### Bug Fixes\n\n* deleting a message should move the focus one below ([7e4cd2a](https://github.com/nextcloud/mail/commit/7e4cd2ac1f91d8b550612db769bde361d863103c))\n* **smtp:** handle non ascii sender names ([6562a91](https://github.com/nextcloud/mail/commit/6562a910d8f6e124dc61adeb96c545b8fd58ca97))\n\n\n\n# [5.9.0](https://github.com/nextcloud/mail/compare/v5.9.0-rc.2...v5.9.0) (2026-06-02)\n\n\n\n# [5.9.0-rc.2](https://github.com/nextcloud/mail/compare/v5.9.0-rc.1...v5.9.0-rc.2) (2026-06-02)\n\n\n### Bug Fixes\n\n* **dns:** Update public suffix list ([b1508e5](https://github.com/nextcloud/mail/commit/b1508e5d76ed72eb4888b20cbaf23bb6c07f7062))\n* **l10n:** Update translations from Transifex ([9df6f25](https://github.com/nextcloud/mail/commit/9df6f25c0a7f27f8b964db6724c0c205ca453fa5))\n* **l10n:** Update translations from Transifex ([b94d11b](https://github.com/nextcloud/mail/commit/b94d11b7e1ff7152c9d7bfd7b022b46c7f66f58e))\n* **l10n:** Update translations from Transifex ([78b58cf](https://github.com/nextcloud/mail/commit/78b58cfb7f7b7dda73c64d5b076477f0ebf04cf6))\n* **l10n:** Update translations from Transifex ([1a65b5f](https://github.com/nextcloud/mail/commit/1a65b5fd82eae13e06e10e080c7da851855bd339))\n\n\n\n# [5.9.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-alpha.1...v5.9.0-rc.1) (2026-05-27)\n\n\n### Bug Fixes\n\n* **api:** validate targetPath is an existing folder on saveAttachment ([0f5d81c](https://github.com/nextcloud/mail/commit/0f5d81cf8ae5994f36d2364088c02834e18bce4e))\n* **deps:** Fix npm audit ([45b32cf](https://github.com/nextcloud/mail/commit/45b32cfb49e03a1bff58d6a08155cfacb691acef))\n* **dns:** Update public suffix list ([119a96b](https://github.com/nextcloud/mail/commit/119a96bec966268116776044c6866dc547a801ff))\n* **l10n:** Update translations from Transifex ([9b6ba58](https://github.com/nextcloud/mail/commit/9b6ba5871b0895c9a15e88131921d4228ee45200))\n* **l10n:** Update translations from Transifex ([fba5807](https://github.com/nextcloud/mail/commit/fba580735f9f0b89269b7885adb00a264c4ee397))\n* **l10n:** Update translations from Transifex ([b37655d](https://github.com/nextcloud/mail/commit/b37655d8d5fd9ad84f2ddb1ef94b2e60e7488140))\n* **l10n:** Update translations from Transifex ([0367a07](https://github.com/nextcloud/mail/commit/0367a07118c904d5522a9047520104145ec7f219))\n* **package:** exclude dev config and patch files from release tarball ([6d20e3f](https://github.com/nextcloud/mail/commit/6d20e3f06afb127e5e5f19fca8fd6a810747eb46))\n* **ui:** add NcModal name prop to SmimeCertificateModal for accessibility ([525c3ab](https://github.com/nextcloud/mail/commit/525c3ab9d53f19082c137cc0050f4038c54f0b70))\n* **ui:** use v-model for assistance setting switches ([9bbae7d](https://github.com/nextcloud/mail/commit/9bbae7d7d55a5e22f0c1f67e1d58f987ffe80233))\n\n\n### Features\n\n* add notifications for account delegation ([2e1ddae](https://github.com/nextcloud/mail/commit/2e1ddaec2d45636f69a70c338fe5caa7b659ffd2))\n* **deps:** Add Nextcloud 35 support ([e3dcc0e](https://github.com/nextcloud/mail/commit/e3dcc0e0ac3b644199abb36def63c6737a89919c))\n* **ui:** paste or copy several e-mail addresses into address fields at once ([98f6282](https://github.com/nextcloud/mail/commit/98f6282008460663bd312d66d4398ae01aa7c188))\n\n\n\n# [5.9.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.9.0-dev.1...v5.9.0-alpha.1) (2026-05-18)\n\n\n### Bug Fixes\n\n* **auth:** detect and warn about MS accounts without oauth setup ([836b36a](https://github.com/nextcloud/mail/commit/836b36afa096a89334986653fff2f8a3d3c69b9c))\n* correct favorite/unfavorite bulk action logic ([fcb160a](https://github.com/nextcloud/mail/commit/fcb160ac78f58e93df9c2cddcf2189a81b42c876)), closes [#12149](https://github.com/nextcloud/mail/issues/12149)\n* **deps:** Fix npm audit ([8df6bdf](https://github.com/nextcloud/mail/commit/8df6bdf5f161345ce4d64b472ff05fa6f1ac79a6))\n* **dns:** Update public suffix list ([23d0823](https://github.com/nextcloud/mail/commit/23d0823dd1d930fbaf72b93c089b30c6622e5661))\n* **imap:** log number of connections during CLI sync ([d9c240c](https://github.com/nextcloud/mail/commit/d9c240cac5ea17029c8272707614de1ae63a88d1))\n* **l10n:** Update translations from Transifex ([7838385](https://github.com/nextcloud/mail/commit/78383856e07df0c2a7ba0bd2f7f8e66b7ddcf69c))\n* **l10n:** Update translations from Transifex ([203ce36](https://github.com/nextcloud/mail/commit/203ce3603f6abf3640dbc4856e422162a55e5531))\n* **l10n:** Update translations from Transifex ([c6b89ed](https://github.com/nextcloud/mail/commit/c6b89edbcbe08ec9d9e7cadf3aa89d148728a4c2))\n* **l10n:** Update translations from Transifex ([8cb01dc](https://github.com/nextcloud/mail/commit/8cb01dc41e437aa9e0aeee6bf9cfe20cefd71b8f))\n* **l10n:** Update translations from Transifex ([17d048a](https://github.com/nextcloud/mail/commit/17d048a2deac844415f28d98e7bc5cd7bf3d3a3c))\n* **l10n:** Update translations from Transifex ([40cc7c2](https://github.com/nextcloud/mail/commit/40cc7c2469ef49a470cbbe2a9b5b5e9b574f26c7))\n* **l10n:** Update translations from Transifex ([af4c704](https://github.com/nextcloud/mail/commit/af4c704e8653a70b56784bb15a3c1a78b377078e))\n* **lint:** fix all lint errors introduced by recipient display changes ([f19e780](https://github.com/nextcloud/mail/commit/f19e780abfa5df2a01d4805707deee2c22a03ae0))\n* Load translations via filesystem path ([042cc1e](https://github.com/nextcloud/mail/commit/042cc1e468f771018a86c043141f1e61ebea8e17))\n* Modal open bug ([5f21187](https://github.com/nextcloud/mail/commit/5f21187f8458322e5be8ae3728cb4d9156eceff3))\n* **thread:** address PR review comments ([dcbf341](https://github.com/nextcloud/mail/commit/dcbf3414f3cf4973304aa64156ed6f23fcb1a6d2))\n* **thread:** address review feedback on recipient CSS ([478f2f6](https://github.com/nextcloud/mail/commit/478f2f6011ce1dae128de9a7a28fa0b065583322))\n* **thread:** collapse recipients by default behind toggle chevron ([13041d9](https://github.com/nextcloud/mail/commit/13041d9f913c8cea46adff73e028cb4a7977a964))\n* **thread:** move recipient bubbles outside router-link to fix click handling ([971a59d](https://github.com/nextcloud/mail/commit/971a59dec9534917cb608c90fd27a9adfe992e83))\n* **thread:** polish sender/recipients display in thread envelope ([d02a261](https://github.com/nextcloud/mail/commit/d02a2618bfabd715998110c14c4bdfb3aa64b374))\n* **thread:** size recipient bubbles to 24px via CSS overrides ([2add2e4](https://github.com/nextcloud/mail/commit/2add2e4f0800570122ffa492ff64a1e06df9a785))\n* **ui:** close attachment actions menu after clicking Download or Save to Files ([dade396](https://github.com/nextcloud/mail/commit/dade396308420d2507f75ab7491782572f18c85e))\n\n\n### Features\n\n* add delegation ([cf3bd8b](https://github.com/nextcloud/mail/commit/cf3bd8bf04307bcc91c28dc98928f171eca1a475))\n* add html and source editing support ([0eaad6f](https://github.com/nextcloud/mail/commit/0eaad6fb1f1408d1b17a3a3ceca27583f5b5fac2))\n* **Agents.md:** add styling instructions ([5dd4fd1](https://github.com/nextcloud/mail/commit/5dd4fd14cf85b420685a3e4915255d7167a40c03))\n* Keep inline images on forwarding ([bcf94f4](https://github.com/nextcloud/mail/commit/bcf94f40267edb19b96a3c1d03297cf28fd1e51b))\n* **thread:** match design spec from [#4258](https://github.com/nextcloud/mail/issues/4258) ([14fdd9a](https://github.com/nextcloud/mail/commit/14fdd9ab94d3fee82eff3ca71b4fd644094de49f))\n* **thread:** show per-message To/Cc/Bcc recipients in thread view ([332ffef](https://github.com/nextcloud/mail/commit/332ffefd5c42d6b387b00834d0d167b3531c173c)), closes [#11305](https://github.com/nextcloud/mail/issues/11305) [#9311](https://github.com/nextcloud/mail/issues/9311) [#4258](https://github.com/nextcloud/mail/issues/4258)\n\n\n### Performance Improvements\n\n* **imap:** reuse client connection during initial sync ([c0f3a79](https://github.com/nextcloud/mail/commit/c0f3a79ff0e5a4bf6ef022677bf1417e66be851e))\n\n\n\n# [5.9.0-dev.1](https://github.com/nextcloud/mail/compare/v5.8.0-alpha.1...v5.9.0-dev.1) (2026-05-06)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([e27a4ad](https://github.com/nextcloud/mail/commit/e27a4addb73ea82d3500844297658ac47447028b))\n\n\n\n# [5.8.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.7.0-rc.1...v5.8.0-alpha.1) (2026-05-05)\n\n\n### Bug Fixes\n\n* **AccountService:** Invalidate cache after account creation/change/deletion ([f205e15](https://github.com/nextcloud/mail/commit/f205e1529b55a5d199589e5e90d758e3019d3b23))\n* **account:** use classification state from account ([662eeff](https://github.com/nextcloud/mail/commit/662eeff58c7196b01dfe8ace35a9765bf86ca05d))\n* adding smart reply text when reply all ([1c32ab1](https://github.com/nextcloud/mail/commit/1c32ab15920853ad4c81056e1a58e5dd32ba200b))\n* **agents.md:** adjust license ([380a961](https://github.com/nextcloud/mail/commit/380a961ff60008270f1df98b071544e68e36643a))\n* **ai:** handle invalid JSON and possible null for smart replies ([27e443b](https://github.com/nextcloud/mail/commit/27e443b66369afbdb538cf9e9ce47f259bd1de61))\n* **attachementNames:** lower log level ([22a111f](https://github.com/nextcloud/mail/commit/22a111fd5051421279fd7237daac903e557a2293))\n* **attachements:** unify icons with the rest of nextcloud ([ea58f99](https://github.com/nextcloud/mail/commit/ea58f9963bd620e62e52ab9c78ecb20e8409d0f0))\n* **autocomplete:** respect privacy settings for sharing ([b7e6088](https://github.com/nextcloud/mail/commit/b7e608827e355c416069f3a3b6a306aee6d113f4))\n* Avoid undefined array key for address list ([f3497f8](https://github.com/nextcloud/mail/commit/f3497f824df3781400bb5ceb6ae4c40fddf03501))\n* Broken encryption with Mailvelope ([4b543b4](https://github.com/nextcloud/mail/commit/4b543b4719341f2e0cf0f01b325e88c37e138c51))\n* **cache:** expire the IMAP ratelimit keys via TTL ([f1ac885](https://github.com/nextcloud/mail/commit/f1ac8858927a560df03fc76e4950d8e24896219e))\n* **ckeditor:** Better matching for CKEditor translations ([990f94a](https://github.com/nextcloud/mail/commit/990f94ad09d646c27de6a3ed33c062b4d9f7ecc9))\n* clean text blocks on user deletion ([93b07d4](https://github.com/nextcloud/mail/commit/93b07d4c45cdaa2377d407d8b7944b0b321183d6))\n* compact view UI fixes ([d8cec2c](https://github.com/nextcloud/mail/commit/d8cec2c744fbf94fb4e255c9da229a0fd5c4f120))\n* **composer:** Adjust border color of vertical separator to be in line with other borders ([71d88f2](https://github.com/nextcloud/mail/commit/71d88f2c0b8b3d30bf60f84d7ed3db9862eff440))\n* **composer:** Adjust border colors of CKEditor element to be in line with other borders ([496b8f6](https://github.com/nextcloud/mail/commit/496b8f654953ef51ef2906165da55a6c32f59291))\n* **composer:** Don't show 'No results' dropdown when To/Cc/Bcc focused, only with search term put in ([6e78828](https://github.com/nextcloud/mail/commit/6e788289f2ab89dfe2191d377e477aa9f6e4bffb))\n* **composer:** Forwarding emails with attachments ([4dd6a0e](https://github.com/nextcloud/mail/commit/4dd6a0e766831ea1b91b01c2fc71335fb0e85705))\n* **composer:** handle missing message body gracefully ([1d40201](https://github.com/nextcloud/mail/commit/1d402012a443e7fd343f9412f511208fc2f1ca43))\n* **Composer:** make initial focus be on to field ([010f648](https://github.com/nextcloud/mail/commit/010f6485bad8fa9c2ad95616ba1b6d5ac5ad4f70))\n* **composer:** Use v-model for send later radio buttons ([bb99cfa](https://github.com/nextcloud/mail/commit/bb99cfa7404a08e80a543813c7d6511127bdf1b6))\n* **contactsIntegration:** avoid incorrect cache results ([ae4af81](https://github.com/nextcloud/mail/commit/ae4af81430e0cf0de04b771a20ef910bd01ab93c))\n* **contacts:** Use correct default for shareapi_allow_share_dialog_user_enumeration ([2e8ed36](https://github.com/nextcloud/mail/commit/2e8ed36f10f5f01c8ff3a26a4ac8949a4b4a2e6d))\n* Copilot suggestions ([3c7341f](https://github.com/nextcloud/mail/commit/3c7341f44b1760126846881586e16e168b9aed09))\n* **db:** add missing messages table index for Postgres ([747cf7d](https://github.com/nextcloud/mail/commit/747cf7dd6a7414a7e19b78fa4377ec9fd5789d6a))\n* **db:** refactor delete by alias to separate queries ([8f3fcd4](https://github.com/nextcloud/mail/commit/8f3fcd4f611770ebbf5bd485efa2236afbb54d35))\n* **db:** widen recipients table index for email+type+message_id ([19514ac](https://github.com/nextcloud/mail/commit/19514ac550a18741aef7dd8d8b15ef62c48d78ae))\n* **deps:** bump @iframe-resizer/child from 5.5.7 to ^5.5.8-beta.2 ([#12350](https://github.com/nextcloud/mail/issues/12350)) ([396b3ea](https://github.com/nextcloud/mail/commit/396b3eae4a32686f247c9bdf513f9d7dd88f10b1))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.8 ([#12377](https://github.com/nextcloud/mail/issues/12377)) ([7618a40](https://github.com/nextcloud/mail/commit/7618a40010869c826346ae76b0ee4e57fdc57ddc))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.9 ([#12444](https://github.com/nextcloud/mail/issues/12444)) ([912105c](https://github.com/nextcloud/mail/commit/912105cc5f3b311e41ab6b82fe170a3583be464c))\n* **deps:** bump @iframe-resizer/parent from 5.5.7 to ^5.5.8-beta.2 ([#12351](https://github.com/nextcloud/mail/issues/12351)) ([26ed10a](https://github.com/nextcloud/mail/commit/26ed10a41f56da1c860ab0260576fa320b821af7))\n* **deps:** bump @iframe-resizer/parent from 5.5.8 to ^5.5.8 ([#12389](https://github.com/nextcloud/mail/issues/12389)) ([0c6b4d1](https://github.com/nextcloud/mail/commit/0c6b4d13984810824eba8538f75800c776224cad))\n* **deps:** bump @iframe-resizer/parent from 5.5.9 to ^5.5.9 ([#12478](https://github.com/nextcloud/mail/issues/12478)) ([29cfec6](https://github.com/nextcloud/mail/commit/29cfec6cefdb1ca99391ca1c0e15d53bdb841d4f))\n* **deps:** bump @nextcloud/auth from 2.5.3 to ^2.6.0 ([#12758](https://github.com/nextcloud/mail/issues/12758)) ([789eb32](https://github.com/nextcloud/mail/commit/789eb321875d9bd9ca42012c3e2a9681f0091eb0))\n* **deps:** bump @nextcloud/axios from 2.5.2 to ^2.6.0 ([#12837](https://github.com/nextcloud/mail/issues/12837)) ([3b9474c](https://github.com/nextcloud/mail/commit/3b9474ccb57296ec12ef30de8c5089116dc904ee))\n* **deps:** bump @nextcloud/calendar-js from 8.1.4 to ^8.1.6 ([889e313](https://github.com/nextcloud/mail/commit/889e31327bcec9de65c1121b6b1c216a3a45d47a))\n* **deps:** bump @nextcloud/cdav-library from 2.1.1 to ^2.2.0 ([#12759](https://github.com/nextcloud/mail/issues/12759)) ([41d27cc](https://github.com/nextcloud/mail/commit/41d27cc6755cea0a501621051d25b5c32295c978))\n* **deps:** bump @nextcloud/sharing from 0.3.0 to ^0.4.0 ([efab69f](https://github.com/nextcloud/mail/commit/efab69fe258db00c1c7a3c191761fdb9a3e6f2a6))\n* **deps:** bump @nextcloud/timezones from 0.2.0 to v1 ([6eb78b9](https://github.com/nextcloud/mail/commit/6eb78b992297a72e9862367304b95facc9ffe368))\n* **deps:** bump @nextcloud/vue from 8.36.0 to ^8.36.0 ([d68bbc6](https://github.com/nextcloud/mail/commit/d68bbc69e069dc9767970ce00e127046b6e1e229))\n* **deps:** bump @nextcloud/vue from 8.37.0 to ^8.37.0 ([fdd6478](https://github.com/nextcloud/mail/commit/fdd6478797e818ace28eb2c2a88c5615d081c9d8))\n* **deps:** bump @nextcloud/vue from 8.38.0 to ^8.38.0 ([c142309](https://github.com/nextcloud/mail/commit/c142309f43496b6fe1a95da34baf355c3a91d94e))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.3 to ^1.9.1 ([#12847](https://github.com/nextcloud/mail/issues/12847)) ([cc683c1](https://github.com/nextcloud/mail/commit/cc683c181c76bd66cdfce3cdc7b9be1024cca9bb))\n* **deps:** bump bytestream/horde-imap-client from 2.33.6 to ^2.33.7 ([#12627](https://github.com/nextcloud/mail/issues/12627)) ([06fd337](https://github.com/nextcloud/mail/commit/06fd3372f0095de252f02f2c55664418699e12b7))\n* **deps:** bump bytestream/horde-imap-client from 2.33.7 to ^2.34.0 ([#12675](https://github.com/nextcloud/mail/issues/12675)) ([56e76df](https://github.com/nextcloud/mail/commit/56e76df878f2469128d8daf99e10a0a37d07b3eb))\n* **deps:** bump bytestream/horde-imap-client from 2.34.0 to ^2.34.1 ([#12798](https://github.com/nextcloud/mail/issues/12798)) ([834a0a6](https://github.com/nextcloud/mail/commit/834a0a65330b86a0a7030628b5c66e5530cc1df5))\n* **deps:** bump bytestream/horde-mime from 2.14.0 to ^2.14.1 ([87d83e8](https://github.com/nextcloud/mail/commit/87d83e897243e9c09731b116f72748551c790e0a))\n* **deps:** bump ckeditor from v45 to v46 ([6884f5b](https://github.com/nextcloud/mail/commit/6884f5b2512ed91c0d74cda8f4031da8c44156dc))\n* **deps:** bump ckeditor5 from 46.1.1 to v47 ([e6fc646](https://github.com/nextcloud/mail/commit/e6fc6467b48ff721a03d1666fc8afd48d90093bc))\n* **deps:** bump ckeditor5 from 47.6.1 to ^47.6.1 ([#12704](https://github.com/nextcloud/mail/issues/12704)) ([682ad03](https://github.com/nextcloud/mail/commit/682ad03814433a1ae2564a8373fda5b0d72179a1))\n* **deps:** bump ckeditor5 from 47.6.2 to ^47.6.2-alpha.0 ([#12730](https://github.com/nextcloud/mail/issues/12730)) ([cc00d75](https://github.com/nextcloud/mail/commit/cc00d75505b639c704e98633582b332eb317e18a))\n* **deps:** bump core-js from 3.48.0 to ^3.49.0 ([#12760](https://github.com/nextcloud/mail/issues/12760)) ([660f2ff](https://github.com/nextcloud/mail/commit/660f2fffac7aaaf957f26cae01838e6de4221fc1))\n* **deps:** bump dompurify from 3.3.1 to v3.3.2 ([#12521](https://github.com/nextcloud/mail/issues/12521)) ([68d4a79](https://github.com/nextcloud/mail/commit/68d4a799b84b27822cbca1fb1f0bd3a1ab5825ef))\n* **deps:** bump dompurify from 3.3.2 to ^3.3.3 ([#12653](https://github.com/nextcloud/mail/issues/12653)) ([1316686](https://github.com/nextcloud/mail/commit/1316686d5ac9aaa9437052f9660a2e765ccf2e5e))\n* **deps:** bump dompurify from 3.3.3 to v3.4.0 ([#12744](https://github.com/nextcloud/mail/issues/12744)) ([8a96e08](https://github.com/nextcloud/mail/commit/8a96e082cf4edc459350027a4628cd78135c66c1))\n* **deps:** bump dompurify from 3.4.0 to ^3.4.0 ([#12761](https://github.com/nextcloud/mail/issues/12761)) ([675d538](https://github.com/nextcloud/mail/commit/675d538a37c295ebf0020ccfeeff445f9a83b3f5))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.1 ([#12827](https://github.com/nextcloud/mail/issues/12827)) ([3c9adc6](https://github.com/nextcloud/mail/commit/3c9adc6aa80c7efa148c669a4153e41dc0ae731a))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.2 ([#12869](https://github.com/nextcloud/mail/issues/12869)) ([cf0f574](https://github.com/nextcloud/mail/commit/cf0f57409ada028d741c187db8391084a67bd5f1))\n* **deps:** bump flatted from 3.3.3 to 3.4.2 ([#12659](https://github.com/nextcloud/mail/issues/12659)) ([ff40a35](https://github.com/nextcloud/mail/commit/ff40a35d4c9398e09e1f9cc2f113071b0d0d903c))\n* **deps:** bump lodash from 4.17.23 to v4.18.1 ([#12693](https://github.com/nextcloud/mail/issues/12693)) ([3d45186](https://github.com/nextcloud/mail/commit/3d451865b93ad3742dd76f4bd6f86cc5d0d8f6e4))\n* **deps:** bump lodash from 4.18.1 to ^4.18.1 ([#12731](https://github.com/nextcloud/mail/issues/12731)) ([679effc](https://github.com/nextcloud/mail/commit/679effcb68a12bdb79d762afea51f9e21c905c04))\n* **deps:** bump node-forge from 1.3.3 to v1.4.0 ([#12663](https://github.com/nextcloud/mail/issues/12663)) ([fb5b0e6](https://github.com/nextcloud/mail/commit/fb5b0e602a1e2b265af862123cb254e6b7566b3f))\n* **deps:** bump node-forge from 1.4.0 to ^1.4.0 ([#12752](https://github.com/nextcloud/mail/issues/12752)) ([3330a0b](https://github.com/nextcloud/mail/commit/3330a0b45939edf348715741207f9929c2e753d5))\n* **deps:** bump rollup from 4.52.4 to 4.60.0 ([#12658](https://github.com/nextcloud/mail/issues/12658)) ([dfd6a36](https://github.com/nextcloud/mail/commit/dfd6a36b2277ec31d865fb7a5fca6e818dc7923f))\n* **deps:** bump sabberworm/php-css-parser from 8.9.0 to v9 ([d32bef1](https://github.com/nextcloud/mail/commit/d32bef15e529e6ba89cc594ad50f243749224e42))\n* **deps:** bump stylelint from 17.9.1 to ^17.8.0 ([#12851](https://github.com/nextcloud/mail/issues/12851)) ([dceef09](https://github.com/nextcloud/mail/commit/dceef09db387cc6daa55e51f5a0dd9c89a1b85a7))\n* **deps:** bump stylelint from 17.9.1 to ^17.9.1 ([#12870](https://github.com/nextcloud/mail/issues/12870)) ([0685aa5](https://github.com/nextcloud/mail/commit/0685aa5324cb671034e653ae482c11fab00d7b52))\n* **deps:** bump uuid from 11.1.0 to v14 ([6e98a10](https://github.com/nextcloud/mail/commit/6e98a10c7d15067b285895f4a1ae995a0503279a))\n* **deps:** Fix npm audit ([0c92bdb](https://github.com/nextcloud/mail/commit/0c92bdb20aa8e0a2c656f682bf4fdc348acfbcaf))\n* **deps:** Fix npm audit ([38e8a60](https://github.com/nextcloud/mail/commit/38e8a6059f31f16ce569bb89e2a9d80acd47e9f9))\n* **deps:** Fix npm audit ([3809bc3](https://github.com/nextcloud/mail/commit/3809bc35bfb9c3ad6d1fcc6077fb68d400fe89b1))\n* **deps:** Fix npm audit ([3bab2ea](https://github.com/nextcloud/mail/commit/3bab2eaa703c93e0370b37ece6cb042844efdd73))\n* **deps:** Update symfony/process to fix MSYS2 argument escaping vulnerability ([e1e288f](https://github.com/nextcloud/mail/commit/e1e288fb8427e2b3108f888fe869b0a07029c93e))\n* **deps:** update webpack-cli to v6 ([3b43ed9](https://github.com/nextcloud/mail/commit/3b43ed90afba2e6c541e2f0d67403c8f494cfa33))\n* **dns:** Update public suffix list ([7efd7f3](https://github.com/nextcloud/mail/commit/7efd7f39ca23deb268ab6918e31be047b9fe3b9e))\n* **dns:** Update public suffix list ([064b615](https://github.com/nextcloud/mail/commit/064b615d6ae879e57231fb115492e54f2a46e42d))\n* **dns:** Update public suffix list ([3e660c7](https://github.com/nextcloud/mail/commit/3e660c71ebbf740842038317c75263aca2ec75f9))\n* **dns:** Update public suffix list ([c46c0c0](https://github.com/nextcloud/mail/commit/c46c0c0eeae2bf9b09fbed0472ffa07b2e7811ce))\n* **dns:** Update public suffix list ([23d0ebf](https://github.com/nextcloud/mail/commit/23d0ebfc7ea82906b1647455fde6748e6e26999f))\n* **dns:** Update public suffix list ([c583ad5](https://github.com/nextcloud/mail/commit/c583ad5159a4de8a634d7f7da8516e1c3f17a96e))\n* Dont hijack mailto links ([3c025c9](https://github.com/nextcloud/mail/commit/3c025c94f6989364311a48f6f5aa1ebc45506ee9))\n* **drag-and-drop:** track all droppable-mailbox directive instances independently ([6729ad8](https://github.com/nextcloud/mail/commit/6729ad88d7e3c8d0a942e641b208f3398a0ebb09))\n* Fix deprecation warnings when using PHP >= 8.5 ([6f33f46](https://github.com/nextcloud/mail/commit/6f33f4673fbd3f12e519db8caaf3889d816ea996))\n* Handle SmimeDecryptException when getting attachments ([4e7e9e0](https://github.com/nextcloud/mail/commit/4e7e9e03cd40d06ea912b1ce215f09fe8fd47c18))\n* **http:** guard against more null users in controllers ([50cef92](https://github.com/nextcloud/mail/commit/50cef92ce36849d55a83f9c2c25d16a5cce0fbb0))\n* **http:** guard against null user in MailboxesController ([a602571](https://github.com/nextcloud/mail/commit/a60257198725ab372baa74e9e42630550a9378a6))\n* **http:** guard against null user in MessagesController ([3f6cad9](https://github.com/nextcloud/mail/commit/3f6cad922120259cc9039ef4697f26550028b5a8))\n* **http:** prevent NPE by non-null controller parameters ([8ab9849](https://github.com/nextcloud/mail/commit/8ab9849f929f38b2e8ca2bfc041e13d99b9bb9a7))\n* Ignore attachments without a name ([caba948](https://github.com/nextcloud/mail/commit/caba948c62f21f5dbf3eb0673e8331e5813faadd))\n* **imap:** avoid expanding UID ranges ([8af9849](https://github.com/nextcloud/mail/commit/8af9849d362260d03a7a68de928fef73b0f84017))\n* **IMAP:** don't add whitespaces to drafts ([d8b4a85](https://github.com/nextcloud/mail/commit/d8b4a859e7784b80906fc3e3686a8d5415128576))\n* **imap:** Handle unselectable mailboxe ([86d5fee](https://github.com/nextcloud/mail/commit/86d5feef879187f473df613490c0e10126e8137b))\n* **imap:** log details of the sync to debug OOMs ([432ec82](https://github.com/nextcloud/mail/commit/432ec829f94d0bf11214191c8b1f0ad9e4897851))\n* **imap:** log more sync details ([b9ff2d0](https://github.com/nextcloud/mail/commit/b9ff2d03bd1356e32c7cf7f1d02fca22b7cd0199))\n* **imap:** log partial sync criteria ([88eccd0](https://github.com/nextcloud/mail/commit/88eccd09404da76485e1284375f257b2bf57f965))\n* **imap:** prevent null HIGHESTMODSEQ after initial sync ([7980d9e](https://github.com/nextcloud/mail/commit/7980d9e4015c894c4c5a7215546e7c61f5abe1c3))\n* Invalid cache lookup for emails without attachment ([a76426e](https://github.com/nextcloud/mail/commit/a76426e2fb37bb315850e690f979955aaa39d3c5))\n* **js:** reset envelope lists to object, not array ([5d96714](https://github.com/nextcloud/mail/commit/5d967141f8cacc8a138f14ca23a7a13346039072))\n* Keep raw message on smtp/mime failure ([58c860e](https://github.com/nextcloud/mail/commit/58c860ed4a6e1b357028c50828a27347addccde7))\n* **l10n:** Update translations from Transifex ([64f21c6](https://github.com/nextcloud/mail/commit/64f21c6065987059fcd23f4d049eee318988a4f5))\n* **l10n:** Update translations from Transifex ([0c3ccf1](https://github.com/nextcloud/mail/commit/0c3ccf171784d88bfffabdfc2b74b9a5832fe730))\n* **l10n:** Update translations from Transifex ([b07f5a9](https://github.com/nextcloud/mail/commit/b07f5a9912795352155a9a3db07b52de7c692bd4))\n* **l10n:** Update translations from Transifex ([929b01c](https://github.com/nextcloud/mail/commit/929b01c6841913040f9ddd0c8d85d7dea1cf53e7))\n* **l10n:** Update translations from Transifex ([9d799da](https://github.com/nextcloud/mail/commit/9d799da288e845db089d69fc714f12d2d75c8fcc))\n* **l10n:** Update translations from Transifex ([0fc8509](https://github.com/nextcloud/mail/commit/0fc85095b70bff9334edcba38641cbf17deb7f7a))\n* **l10n:** Update translations from Transifex ([41b55e1](https://github.com/nextcloud/mail/commit/41b55e17969ce101b6ec8489ef4924a82cffd4a8))\n* **l10n:** Update translations from Transifex ([ca874d6](https://github.com/nextcloud/mail/commit/ca874d68a5964c7177506341865bb69d2387a4d3))\n* **l10n:** Update translations from Transifex ([361fcf7](https://github.com/nextcloud/mail/commit/361fcf755babcd8c25c65aa3eff6fa333e44f2b1))\n* **l10n:** Update translations from Transifex ([331d67a](https://github.com/nextcloud/mail/commit/331d67a1a288418a2bf70c23980e050682f4e733))\n* **l10n:** Update translations from Transifex ([1335815](https://github.com/nextcloud/mail/commit/1335815a1de24f9f4494d0f8f75991f9c852e372))\n* **l10n:** Update translations from Transifex ([31fe982](https://github.com/nextcloud/mail/commit/31fe982bce3533a2feaecce0f255aa2de7bf21b7))\n* **l10n:** Update translations from Transifex ([7b57369](https://github.com/nextcloud/mail/commit/7b57369afb7f3bda596ea0e90eaf995f43490f78))\n* **l10n:** Update translations from Transifex ([1e74c52](https://github.com/nextcloud/mail/commit/1e74c520a61df0854d05396a8fa803daa20b5362))\n* **l10n:** Update translations from Transifex ([3ddace2](https://github.com/nextcloud/mail/commit/3ddace263b82dc7504ea7346d6156c7d2f4e7868))\n* **l10n:** Update translations from Transifex ([1277bc8](https://github.com/nextcloud/mail/commit/1277bc892e45e34d78a2755bf7e3ed4dc59d0127))\n* **l10n:** Update translations from Transifex ([4c93f30](https://github.com/nextcloud/mail/commit/4c93f307e36007340b32f80e75b753ea87cc4c07))\n* **l10n:** Update translations from Transifex ([5db8d9a](https://github.com/nextcloud/mail/commit/5db8d9a72733c47019735044aaa6a2d1cc064a06))\n* **l10n:** Update translations from Transifex ([14e87a1](https://github.com/nextcloud/mail/commit/14e87a15b56ba40daeef8ff328637a80e93afc95))\n* **l10n:** Update translations from Transifex ([4211056](https://github.com/nextcloud/mail/commit/42110564979994a6fdbe8baefa2671640241acba))\n* **l10n:** Update translations from Transifex ([0eef59d](https://github.com/nextcloud/mail/commit/0eef59d49324b1a79a7ef8b7fcb20b8ed13778f3))\n* **l10n:** Update translations from Transifex ([6ce413b](https://github.com/nextcloud/mail/commit/6ce413bb6365d6b82b6d55a78160ea68b33d8359))\n* **l10n:** Update translations from Transifex ([0f90f19](https://github.com/nextcloud/mail/commit/0f90f19d946e0cdf0430a5ab973754b630884c99))\n* **l10n:** Update translations from Transifex ([5d1535d](https://github.com/nextcloud/mail/commit/5d1535d4a1d18cb658d69400a4c20822f553af2a))\n* **l10n:** Update translations from Transifex ([693771f](https://github.com/nextcloud/mail/commit/693771fae8887724bc3337b2bdb0b5137ede3090))\n* **l10n:** Update translations from Transifex ([2841421](https://github.com/nextcloud/mail/commit/28414219b5bc1b34c04a99d4623b986c7fd2514d))\n* **l10n:** Update translations from Transifex ([0a746cf](https://github.com/nextcloud/mail/commit/0a746cfef45de9707a9b866a3d591666b781cecb))\n* **l10n:** Update translations from Transifex ([4ee2065](https://github.com/nextcloud/mail/commit/4ee2065b1c16fdc3c2991eaeb16796f523ed1b11))\n* **l10n:** Update translations from Transifex ([8027c52](https://github.com/nextcloud/mail/commit/8027c5244ab9f6f2dda5f15d703206699a5a2654))\n* **l10n:** Update translations from Transifex ([8d84ac9](https://github.com/nextcloud/mail/commit/8d84ac90cc01dd50c0b02c36baf53829245eca31))\n* **l10n:** Update translations from Transifex ([1c088bb](https://github.com/nextcloud/mail/commit/1c088bbe13525a5aca1540ce1ed1e387a45e8751))\n* **l10n:** Update translations from Transifex ([3e6bc95](https://github.com/nextcloud/mail/commit/3e6bc95128afb3a00e570cba136814a5b681601b))\n* **l10n:** Update translations from Transifex ([5d0df22](https://github.com/nextcloud/mail/commit/5d0df22ddfd0dbb5b35f702700e3d7e9741523f4))\n* **l10n:** Update translations from Transifex ([ee2e98e](https://github.com/nextcloud/mail/commit/ee2e98e589c8e467aa15ececa50b80825e42582b))\n* **l10n:** Update translations from Transifex ([d4b222a](https://github.com/nextcloud/mail/commit/d4b222ad37d39e08f92c19590792196049ec3725))\n* **l10n:** Update translations from Transifex ([4301b55](https://github.com/nextcloud/mail/commit/4301b557c537da6a57bbe51df50c41e340017825))\n* **l10n:** Update translations from Transifex ([ff4f00c](https://github.com/nextcloud/mail/commit/ff4f00c8d0e6e15af9d2b3a68df891bfbcf20089))\n* **l10n:** Update translations from Transifex ([385edc0](https://github.com/nextcloud/mail/commit/385edc0e283226c295ebf10b20b79f2d35e5651f))\n* **l10n:** Update translations from Transifex ([2dbc479](https://github.com/nextcloud/mail/commit/2dbc479359d9c2a6851f49fdc283a2f1b7f1b8e4))\n* **l10n:** Update translations from Transifex ([35f1831](https://github.com/nextcloud/mail/commit/35f18314a61d61014f5f439aea66d255ad9db85d))\n* **l10n:** Update translations from Transifex ([9a1d23f](https://github.com/nextcloud/mail/commit/9a1d23fcf3d6167bf84374bb34ea8562505aed62))\n* **l10n:** Update translations from Transifex ([261dd36](https://github.com/nextcloud/mail/commit/261dd368c06fde0643a7e164ebf75587835fc062))\n* **l10n:** Update translations from Transifex ([966bdf9](https://github.com/nextcloud/mail/commit/966bdf9a283cf9695d8b5580e7d174a18d63f355))\n* **l10n:** Update translations from Transifex ([7a3f2b5](https://github.com/nextcloud/mail/commit/7a3f2b51a9e1dd41af78c8a3e364419c69373a3f))\n* **l10n:** Update translations from Transifex ([de92421](https://github.com/nextcloud/mail/commit/de924212f802c351ef708890c7b6a677f6a98402))\n* **l10n:** Update translations from Transifex ([4da1267](https://github.com/nextcloud/mail/commit/4da12670673bbde80c2f439702832d5947b8a238))\n* **l10n:** Update translations from Transifex ([a8bf321](https://github.com/nextcloud/mail/commit/a8bf321975cff3a310edb7ca33338431631d34a5))\n* **l10n:** Update translations from Transifex ([d387e38](https://github.com/nextcloud/mail/commit/d387e38620a26d00255627a1e52862a765b055a3))\n* **l10n:** Update translations from Transifex ([7b77cf1](https://github.com/nextcloud/mail/commit/7b77cf1fd39e04d3f853c39be5e9862fe4351b5f))\n* **l10n:** Update translations from Transifex ([100238a](https://github.com/nextcloud/mail/commit/100238a833bb77d2a3d9320630ab5027e2929e8c))\n* **l10n:** Update translations from Transifex ([4d38cbf](https://github.com/nextcloud/mail/commit/4d38cbf8b5abd9d5dbfefc7a688e2ed33f0c63f1))\n* **l10n:** Update translations from Transifex ([f6fcf2d](https://github.com/nextcloud/mail/commit/f6fcf2d9f529d5277d38bf6569f96e33f33628e7))\n* **l10n:** Update translations from Transifex ([32536d3](https://github.com/nextcloud/mail/commit/32536d36512288317e8d28c7d2e0976664224d13))\n* **l10n:** Update translations from Transifex ([3e37229](https://github.com/nextcloud/mail/commit/3e3722954b8966ce67d72c9a4692944b92d0be68))\n* **l10n:** Update translations from Transifex ([3653082](https://github.com/nextcloud/mail/commit/36530829bc02816a2a7d29af03863049c8c7539c))\n* **l10n:** Update translations from Transifex ([7ae6d85](https://github.com/nextcloud/mail/commit/7ae6d85fe7310e722dfbdb1162924d967243660f))\n* **l10n:** Update translations from Transifex ([9efbb1a](https://github.com/nextcloud/mail/commit/9efbb1a53708b4147049beb17dd4efd95ec2066b))\n* **l10n:** Update translations from Transifex ([e4fa916](https://github.com/nextcloud/mail/commit/e4fa916cfaec39d6205e192a2e3255269b204372))\n* **l10n:** Update translations from Transifex ([671a425](https://github.com/nextcloud/mail/commit/671a425f9c1ecfc16540c127eb07eadb65ecb9e1))\n* **l10n:** Update translations from Transifex ([d1a4df6](https://github.com/nextcloud/mail/commit/d1a4df62a8076c513ff042e2b407655fcc1f7cc7))\n* **l10n:** Update translations from Transifex ([bf96880](https://github.com/nextcloud/mail/commit/bf96880672ff4a077e5994263d686826bc50c2b9))\n* **l10n:** Update translations from Transifex ([f88feea](https://github.com/nextcloud/mail/commit/f88feea46903496a77ccc8842826008171f132e4))\n* **l10n:** Update translations from Transifex ([5112079](https://github.com/nextcloud/mail/commit/511207976608f7b2382da25242b757c681b4cbfb))\n* **l10n:** Update translations from Transifex ([a5e79e5](https://github.com/nextcloud/mail/commit/a5e79e5462bffd4cecdaff8152fe6beb0a6dca32))\n* **MailTransmission:** Handle clients/servers picky about empty headers ([f60fd3b](https://github.com/nextcloud/mail/commit/f60fd3bc101d6d7090bf74d8ca83cff881135d15))\n* make list rendering work on mobile ([fa921ec](https://github.com/nextcloud/mail/commit/fa921ecb68667dce91a001151a6f227690dbdfb3))\n* Match default tag colors with Thunderbird ([c755afb](https://github.com/nextcloud/mail/commit/c755afbf288f3852886e096c6a0d11cff3a5708f))\n* **mention:** custom range for usernames and error handling ([eacc8b5](https://github.com/nextcloud/mail/commit/eacc8b5b5fc6bbe80c38621e0620585f7c5b8d9b))\n* Normalize message IDs via RFC822 parser to handle malformed input ([d03c3f1](https://github.com/nextcloud/mail/commit/d03c3f1801c5d3bbb725426887e125b4983a78c3))\n* **oauth:** do not force a Microsoft 365 consent ([23216da](https://github.com/nextcloud/mail/commit/23216da8f4e30f0e8a154d53eb2e2c232415236e))\n* only showing classification check box in setup form ([9f6a675](https://github.com/nextcloud/mail/commit/9f6a675e44c992e6c51b956486e43f56a0a71f82))\n* **outbox:** Skip messages with status error ([438419b](https://github.com/nextcloud/mail/commit/438419b8e069aa657dc587fb5d66119e30e4cae8))\n* **OutOfOfficeForm:** datepicker overlapping with sidebar ([e92759d](https://github.com/nextcloud/mail/commit/e92759d6bdfb97596a8db09891bcdf475674df3a))\n* Pass actual message body to dompurify ([82000ac](https://github.com/nextcloud/mail/commit/82000acaa53a954e36e31c1feec7038cda4c9991))\n* Pass error message from response to error object ([1bd84f1](https://github.com/nextcloud/mail/commit/1bd84f1b15bf78c834e85e39d97ec9bc10e576b0))\n* **phishing:** change header property accessor ([db47778](https://github.com/nextcloud/mail/commit/db47778e3af93b4a3d178a489b9c7b825680ffbb))\n* **php:** avoid implicit throwable to string conversion ([c83ab66](https://github.com/nextcloud/mail/commit/c83ab6630837bc289b3e7c279800894f5db5ae63))\n* **php:** harden return-false-on-error type function result handling ([4dfc60e](https://github.com/nextcloud/mail/commit/4dfc60ea15c4adf72523c5528e72212674499d0d))\n* **php:** refactor int/float conversions ([029d589](https://github.com/nextcloud/mail/commit/029d589d06c0303823955b927249cbf27d1be729))\n* **php:** throw on json encode errors ([d501d21](https://github.com/nextcloud/mail/commit/d501d210f2c992ee30d7160d6c0cfe6ec88f3e9e))\n* **php:** use type-safe string concatenation ([c8b3c1b](https://github.com/nextcloud/mail/commit/c8b3c1bdc18c03b38f7d14b00942857d256d15e1))\n* **provisioning:** Do not provision users without access to mail app ([0c8864c](https://github.com/nextcloud/mail/commit/0c8864cf6f4adc765424ae237294d6c2ef4b68c0))\n* quick search filters ([fd59d5f](https://github.com/nextcloud/mail/commit/fd59d5f70c2066c33336fcd043a874c60d35fcdd))\n* Remove call to deprecated allowEvalScript ([77e7e3f](https://github.com/nextcloud/mail/commit/77e7e3fb89f5cc4a3e74768d9f96a282f4773eb1))\n* Remove unused proxy redirect route ([32a6d46](https://github.com/nextcloud/mail/commit/32a6d46999c4e50afc45c578997b7aada3e2e297))\n* Replace array with weakmap so lookup is O(1) instead of O(n^2) ([580fad6](https://github.com/nextcloud/mail/commit/580fad6f3a1668587aec2ffc32c55a0e1fb3a151))\n* replace deprecated and removed OC\\Server getters ([e157960](https://github.com/nextcloud/mail/commit/e157960f0d88ba82a51820c8d40a88755d429afe))\n* set createdAt timestamp for local attachments ([29f84a6](https://github.com/nextcloud/mail/commit/29f84a604cdc49a476759fbfe35c61eef5537470))\n* show indication that transaltion modal uses AI ([b1843d5](https://github.com/nextcloud/mail/commit/b1843d5b35e8f43a46c001470341cdb85d812964))\n* show loading inidcator when searching messages ([89a2c5a](https://github.com/nextcloud/mail/commit/89a2c5a9a55b8f96242663065ce57a73b1c6b240))\n* Skip iconv without a charset ([d28e6ce](https://github.com/nextcloud/mail/commit/d28e6ceff0589ddf2c53c817866e40982b03fd58))\n* Skip link check for empty message ([4c7db57](https://github.com/nextcloud/mail/commit/4c7db57b2e0624c2036b1fa30eef49057ba9ad55))\n* **smime:** parse email addresses from Subject Alternative Names ([#12486](https://github.com/nextcloud/mail/issues/12486)) ([b3d7c9a](https://github.com/nextcloud/mail/commit/b3d7c9a1374688b4536c9ea4ba91f4f00383c24c)), closes [nextcloud/mail#11738](https://github.com/nextcloud/mail/issues/11738)\n* **textblocks:** guard removal of non existing text block ([89df2c7](https://github.com/nextcloud/mail/commit/89df2c7a88bebab3d34147c056cb267f557b7522))\n* thread scrolling position ([7d4f1be](https://github.com/nextcloud/mail/commit/7d4f1be591dec2af5bacb0920ae145c0b3b3ae9c))\n* **Thread:** title printing ([e9d8f77](https://github.com/nextcloud/mail/commit/e9d8f7718dcfbd18abe679693739117a43d3e063))\n* **ui:** add missing @ to provisioning user ([cb11601](https://github.com/nextcloud/mail/commit/cb116018411a912c24738b362e731587a1dda3fc))\n* **ui:** fix paragraph end tag ([9d9a69f](https://github.com/nextcloud/mail/commit/9d9a69fb8160671c5a77720f52e77ce4b2d493fc))\n* **ui:** Handle focus trap through provide / inject ([197e25a](https://github.com/nextcloud/mail/commit/197e25ab54f621a17e2c48fb45b5f0b215203450))\n* unlock mailboxes after OOM ([789c7d0](https://github.com/nextcloud/mail/commit/789c7d04fc939b455ab395f968188676dcee6179))\n* use HMAC for proxied HTML iframe content ([b346f0b](https://github.com/nextcloud/mail/commit/b346f0bfa09a096c66fe1e020e57808edb736eb2))\n\n\n### Features\n\n* add ai hint for smart replys ([89c2fd6](https://github.com/nextcloud/mail/commit/89c2fd66a98371786219b3a9d1a8e5522e1d7263))\n* add rtl/ltr buttons to ckeditor toolbar ([4ac9c06](https://github.com/nextcloud/mail/commit/4ac9c063b52bb68be62eee54b567af6a98d755d7))\n* **deeplink:** implement message-id search and routing ([54ce486](https://github.com/nextcloud/mail/commit/54ce4865420afeedbb6cefa5bbfe8b87f163bb26))\n* improve follow up and PI ML note ([c952761](https://github.com/nextcloud/mail/commit/c952761657e420795745cb7879b86b62edf12985))\n\n\n### Performance Improvements\n\n* **imap:** reuse existing IMAP client/connection for mailbox sync ([08c5031](https://github.com/nextcloud/mail/commit/08c5031ac8ef83987c36cdebd9b12f35fdd3473c))\n\n\n\n# [5.7.0-rc.1](https://github.com/nextcloud/mail/compare/v5.7.0-beta.4...v5.7.0-rc.1) (2026-01-29)\n\n\n### Bug Fixes\n\n* action items icons on compact mode ([8b090ba](https://github.com/nextcloud/mail/commit/8b090ba2a827c47e3ffad4255b854b43e9e61b10))\n* **composer:** drop envelope from store when saving a draft ([a8db9ae](https://github.com/nextcloud/mail/commit/a8db9ae14e5d33c3f80ec2399b485f589fcb1dbf))\n* **deps:** bump @nextcloud/paths from 2.4.0 to v3 ([a511f5b](https://github.com/nextcloud/mail/commit/a511f5b9bfc172b91296d416ccc3b22f95d7fa2e))\n* **deps:** bump core-js from 3.47.0 to ^3.48.0 ([806b9a3](https://github.com/nextcloud/mail/commit/806b9a33b0fe9d1dd5522213cd0468eae5c8fd70))\n* **deps:** bump lodash from 4.17.23 to ^4.17.23 ([a1619ba](https://github.com/nextcloud/mail/commit/a1619ba3263647bc641f174c80f167699caf2337))\n* **deps:** bump PHPUnit to v9.6.33 ([d4e419e](https://github.com/nextcloud/mail/commit/d4e419e5a4f2058c892aaf406ae2ddf83e8cdb74))\n* **l10n:** Update translations from Transifex ([1d14470](https://github.com/nextcloud/mail/commit/1d1447052df63ee7e1bb98ecfdc857dfe56dfae0))\n* **l10n:** Update translations from Transifex ([5dc7d62](https://github.com/nextcloud/mail/commit/5dc7d626fd1e2301c08e52958833f53920371667))\n* **ui:** render HTML body error responses as blank pages ([a391aba](https://github.com/nextcloud/mail/commit/a391abad9560135bf159093371e432f7fc125b34))\n\n\n### Performance Improvements\n\n* **sync:** Reuse existing sync token ([cf8137a](https://github.com/nextcloud/mail/commit/cf8137a18d474fac99aa98e569374b8ed526a647))\n\n\n\n# [5.7.0-beta.4](https://github.com/nextcloud/mail/compare/v5.7.0-beta.3...v5.7.0-beta.4) (2026-01-27)\n\n\n### Bug Fixes\n\n* **admin-settings:** bring back the setting to disable classification by default ([2eb9f0c](https://github.com/nextcloud/mail/commit/2eb9f0c07d2e1f9b6e55e5d41d3d64b6d7268c62))\n* catch invalid URL exception in the HTML image proxy ([1767db6](https://github.com/nextcloud/mail/commit/1767db684ae4ee37c1ae7529c107e57798cdcc0d))\n* **classification:** log if classification was executed or skipped ([172b477](https://github.com/nextcloud/mail/commit/172b4779d55497f6c9a737681c04b810e960695b))\n* **deps:** bump @nextcloud/paths from 2.3.0 to ^2.4.0 ([#12286](https://github.com/nextcloud/mail/issues/12286)) ([ea43460](https://github.com/nextcloud/mail/commit/ea4346049b1b8bd899042c4861132d2fb712c697))\n* **deps:** bump @nextcloud/vue from 8.35.0 to ^8.35.3 ([98b9403](https://github.com/nextcloud/mail/commit/98b9403ce9b847a772c17e8d4a7d292f813cd2e0))\n* **deps:** bump lodash from 4.17.21 to v4.17.23 ([#12291](https://github.com/nextcloud/mail/issues/12291)) ([4d43742](https://github.com/nextcloud/mail/commit/4d4374223962d43b72e608d2298232e9ed86c1de))\n* **imap:** Add support for mail services that enforce a client id ([0f64a8b](https://github.com/nextcloud/mail/commit/0f64a8bc7a4a01704837310a1296c6573a8f0668))\n* **imap:** Send ID only when capability is announced ([820e7e3](https://github.com/nextcloud/mail/commit/820e7e37ec53b338342a535b1427cd71f15d2301))\n* **l10n:** Update translations from Transifex ([f162d15](https://github.com/nextcloud/mail/commit/f162d15efebd9db5fe2053a3f7334eb4a3836d19))\n* **l10n:** Update translations from Transifex ([b937da1](https://github.com/nextcloud/mail/commit/b937da1081e1260d107c9c2e29f085bd87e987da))\n* **l10n:** Update translations from Transifex ([b8e73c8](https://github.com/nextcloud/mail/commit/b8e73c87c3abeb519a7d2626a13db5f2a75cb702))\n* **l10n:** Update translations from Transifex ([85ec54f](https://github.com/nextcloud/mail/commit/85ec54f6e6f0650e64fe47736ced5f8f893742e5))\n* **l10n:** Update translations from Transifex ([8bccd39](https://github.com/nextcloud/mail/commit/8bccd397f9bb495eb729725b8e17e580a98036c0))\n* **l10n:** Update translations from Transifex ([b12a513](https://github.com/nextcloud/mail/commit/b12a5138244fff0179f49d2edd356ff4b68a2a77))\n* **l10n:** Update translations from Transifex ([01442f4](https://github.com/nextcloud/mail/commit/01442f49b764fbb4da3821295b0e7591d9e524c0))\n* **l10n:** Update translations from Transifex ([decb02c](https://github.com/nextcloud/mail/commit/decb02c680d7fad30aabdc5e8febd322c28f0946))\n* **MessageMapper:** Use message headers as fallback when processing MIME content ([7efe164](https://github.com/nextcloud/mail/commit/7efe1640c4d4d6bcabe5ffdd3ce24b66aa62f8b7))\n* **phishing:** compare links using lowercase ([2d437a9](https://github.com/nextcloud/mail/commit/2d437a9e1b71e674cc8bf1980995c485cc1de18b))\n* retrieve classification preference ([5eabb5e](https://github.com/nextcloud/mail/commit/5eabb5efd13e6370592cdad4c05894b97d9f3bf4))\n* **settings:** dont show acknowledgements twice ([b30d10e](https://github.com/nextcloud/mail/commit/b30d10e68f82803f1a86d1531edccd7e552a29d2))\n* **smtp:** log SMTP error code ([bd3a68e](https://github.com/nextcloud/mail/commit/bd3a68e78d71a6a60ca01f29ba34bd925fc65dbe))\n* **text-block:** revive sharing ([c76cea9](https://github.com/nextcloud/mail/commit/c76cea9f0a75e65a1d2a11fa28d0cfdbbe09c18d))\n\n\n### Features\n\n* add context chat provider ([#11150](https://github.com/nextcloud/mail/issues/11150)) ([0b4c310](https://github.com/nextcloud/mail/commit/0b4c3106943442ff95e272fdf9e668b7952c4859))\n* **deps:** add Nextcloud 34 support, remove 31 (EOL) ([4059a84](https://github.com/nextcloud/mail/commit/4059a84cfe3e6bc43a5fd1cd4ce0ba0a81b500bd))\n\n\n\n# [5.7.0-beta.3](https://github.com/nextcloud/mail/compare/v5.7.0-beta.2...v5.7.0-beta.3) (2026-01-19)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([a0302e7](https://github.com/nextcloud/mail/commit/a0302e7292c0a003311bc0ae13c93fdc66477034))\n* **l10n:** Update translations from Transifex ([301879c](https://github.com/nextcloud/mail/commit/301879cccc134ccdf0b57968264eba5b9e6af3d3))\n* **l10n:** Update translations from Transifex ([eb08d2d](https://github.com/nextcloud/mail/commit/eb08d2d6b8b46021982ed6d3eccfc95b45a2373a))\n\n\n### Features\n\n* automated appointment creation ([4fe0325](https://github.com/nextcloud/mail/commit/4fe03253203db6c3481e1fb5611b2291f2ac6476))\n\n\n\n# [5.7.0-beta.2](https://github.com/nextcloud/mail/compare/v5.7.0-beta.1...v5.7.0-beta.2) (2026-01-16)\n\n\n### Bug Fixes\n\n* **ColorPicker:** Use v-model for injecting selected color to color picker ([eee627a](https://github.com/nextcloud/mail/commit/eee627a613a3c3884af4ebc19f23d15ba5c4b1a4))\n* **DKIMValidator:** Add patch from upstream against broken canonical handling ([ddb30a9](https://github.com/nextcloud/mail/commit/ddb30a95fe8f106c2abebb323bc5c13bacfc0e0f))\n* ensure drafts folder exists ([c01706f](https://github.com/nextcloud/mail/commit/c01706f6dea5f3acd5ebfb5859026c4110a4a653))\n* Fix incorrect tag for MDN sent and hide junk flag used by Thunderbird ([5eb1709](https://github.com/nextcloud/mail/commit/5eb1709f405175c28060a0f85f1f8fedcfa8c45d))\n* **l10n:** Update translations from Transifex ([5e479aa](https://github.com/nextcloud/mail/commit/5e479aa5c3403ef8fa020236da9e0af81683eae1))\n* **l10n:** Update translations from Transifex ([e3d87b7](https://github.com/nextcloud/mail/commit/e3d87b737b08b0af46266bb5429ed8f3a18d9d7f))\n* **l10n:** Update translations from Transifex ([7f7046e](https://github.com/nextcloud/mail/commit/7f7046e664c2abccf59a77d51708b78792302ec1))\n* **l10n:** Update translations from Transifex ([3ec8cc7](https://github.com/nextcloud/mail/commit/3ec8cc741ca13b7f84de80f659ad1698f318d029))\n* **l10n:** Update translations from Transifex ([77fad89](https://github.com/nextcloud/mail/commit/77fad89b78dd4175557d7f0a6880db3b474d73fd))\n* **l10n:** Update translations from Transifex ([69c30ee](https://github.com/nextcloud/mail/commit/69c30ee6ed066f30cdb3dfc6043eb86cb0d3026c))\n* **mail-settings:** avoid duplicate api calls ([d43846f](https://github.com/nextcloud/mail/commit/d43846f3f39a1d4232dccb3c81953bd747d11e28))\n* outbox icon opacity ([8697eb7](https://github.com/nextcloud/mail/commit/8697eb72f1835a0c110ad0c0ccfef85c043f1ead))\n* **OutOfOfficeParser:** Exclude newsletters and mailing lists from auto responder ([4dd3824](https://github.com/nextcloud/mail/commit/4dd382487bc50b84076dace4c45b2a3c2f73b7c3))\n* revive mentioning in composer ([2658a3b](https://github.com/nextcloud/mail/commit/2658a3bbdaf4ebd6828493193fff8856ec058455))\n* safe-guard limit argument ([bd856c0](https://github.com/nextcloud/mail/commit/bd856c0f261df1fd8f73d1952cbeb5773fad0d8a))\n\n\n### Features\n\n* **deps:** add PHP8.5 support ([0cab661](https://github.com/nextcloud/mail/commit/0cab6615ab3575264fe5ad01622be13f40216e10))\n* list attachements ([7cb3b70](https://github.com/nextcloud/mail/commit/7cb3b70922d8ad9f0ab39388d0c5280aa7245b0c))\n* provide attachement names for messages ([aebeb8d](https://github.com/nextcloud/mail/commit/aebeb8de6c62a7a89f78247b5539d48ee6213d61))\n\n\n\n# [5.7.0-beta.1](https://github.com/nextcloud/mail/compare/v5.6.0-rc.1...v5.7.0-beta.1) (2026-01-09)\n\n\n### Bug Fixes\n\n* add Opt-out classification settings to account settings and setup ([773e9fd](https://github.com/nextcloud/mail/commit/773e9fda4ae667c7be730093f3b2b05f23e67936))\n* **auth:** show more specific error for denied authentication ([9887471](https://github.com/nextcloud/mail/commit/9887471c972f99103f18f8bd85ac945045886a33))\n* **database:** Add foreign key to *_mailbox_id fields in mail_accounts table ([d6e5430](https://github.com/nextcloud/mail/commit/d6e5430211bb0c70b047ef6eb6709f35a1692509))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.1 ([ea96397](https://github.com/nextcloud/mail/commit/ea96397ffc21590dacf241ff96a27507bd6d4160))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.2 ([#12194](https://github.com/nextcloud/mail/issues/12194)) ([e0bde6a](https://github.com/nextcloud/mail/commit/e0bde6a0df760b82906631a0b172e6da4083c23d))\n* **deps:** bump @nextcloud/files from 3.12.0 to ^3.12.2 ([#12180](https://github.com/nextcloud/mail/issues/12180)) ([2d31d47](https://github.com/nextcloud/mail/commit/2d31d47ef1b4977a0fc3a12465b310412aeb1231))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.1 ([#12054](https://github.com/nextcloud/mail/issues/12054)) ([9204207](https://github.com/nextcloud/mail/commit/92042075da02b2eb0cd104132f7e456353b4638d))\n* **deps:** bump @nextcloud/logger from 3.0.2 to ^3.0.3 ([#12181](https://github.com/nextcloud/mail/issues/12181)) ([a2cc94f](https://github.com/nextcloud/mail/commit/a2cc94fbf3df4b9acbb1151c2ef817a8236f4b1f))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.3.0 ([d79f091](https://github.com/nextcloud/mail/commit/d79f091deed13cc59551431faeaae31ad9667e98))\n* **deps:** bump @nextcloud/router from 3.0.1 to ^3.1.0 ([fecbbd4](https://github.com/nextcloud/mail/commit/fecbbd42eacbdb920e4e14f054474688bd211eca))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.2 to ^1.8.3 ([#12083](https://github.com/nextcloud/mail/issues/12083)) ([d768ec2](https://github.com/nextcloud/mail/commit/d768ec2e6fd19fc3164d304c41f3ffdd69f1c45c))\n* **deps:** bump core-js from 3.45.1 to ^3.47.0 ([10cb94d](https://github.com/nextcloud/mail/commit/10cb94d3abfe5fd61087c5a5fe76c5e469eb31ab))\n* **deps:** bump dompurify from 3.3.0 to ^3.3.1 ([#12153](https://github.com/nextcloud/mail/issues/12153)) ([8414b45](https://github.com/nextcloud/mail/commit/8414b459171e748b0bda9707c083dc4d457b8610))\n* **deps:** bump ezyang/htmlpurifier from 4.18.0 to v4.19.0 ([490c501](https://github.com/nextcloud/mail/commit/490c501838ea78db143064557b599a9d9b377a0d))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.6 to ^1.8.7 ([4ad219b](https://github.com/nextcloud/mail/commit/4ad219b224b20649ea2da3b288078a3fdba276ef))\n* **deps:** bump node-forge from 1.3.1 to ^1.3.2 ([#12084](https://github.com/nextcloud/mail/issues/12084)) ([1076149](https://github.com/nextcloud/mail/commit/1076149f447356f0d8256f8011e73a66bde45e76))\n* **deps:** bump node-forge from 1.3.2 to ^1.3.3 ([#12201](https://github.com/nextcloud/mail/issues/12201)) ([bf00dc9](https://github.com/nextcloud/mail/commit/bf00dc96b2486c6f1c74406f8f323306c420726e))\n* **deps:** bump ramda from 0.31.3 to ^0.32.0 ([99e93d3](https://github.com/nextcloud/mail/commit/99e93d350bb2ac7fb77b487ac7fcfc6a2923ba6d))\n* **deps:** bump stylelint from 16.25.0 to ^16.26.1 ([6f16930](https://github.com/nextcloud/mail/commit/6f16930cf5fef0ad4ee8747e186de58326000d80))\n* **deps:** Fix npm audit ([ba1c955](https://github.com/nextcloud/mail/commit/ba1c9555e04c9acc7f9b75ad9914062b16ef81ac))\n* **deps:** Fix npm audit ([94220b5](https://github.com/nextcloud/mail/commit/94220b5a296c07c0b1a5035685671e5fb34531c7))\n* **dns:** Update public suffix list ([8629a40](https://github.com/nextcloud/mail/commit/8629a403aa29dfad58955c07ac7575e86fb97dde))\n* **envelope:** apply read/unread for whole thread ([04141fb](https://github.com/nextcloud/mail/commit/04141fb8cb75893d93a4ab144e6c50acba78fc35))\n* handle imip failures properly ([3a200ac](https://github.com/nextcloud/mail/commit/3a200ac432e3a8d85eafa93b01f0b2d4ab1b3080))\n* **imap:** cache message body ([9d02d5a](https://github.com/nextcloud/mail/commit/9d02d5ab90fdcf2c9fd2e09a3a3e7547b74227c3))\n* **l10n:** Update translations from Transifex ([42b9b4d](https://github.com/nextcloud/mail/commit/42b9b4d9bf4c798930bb2714f546aac39c87c2b1))\n* **l10n:** Update translations from Transifex ([ed559d1](https://github.com/nextcloud/mail/commit/ed559d1e80ad7745eeaa1fa7eabf715b96594403))\n* **l10n:** Update translations from Transifex ([addd0f4](https://github.com/nextcloud/mail/commit/addd0f430807e08befd63f327857c33a379702e1))\n* **l10n:** Update translations from Transifex ([fb376e5](https://github.com/nextcloud/mail/commit/fb376e51cb9437c9621e6fca3287d5983e8ac00f))\n* **l10n:** Update translations from Transifex ([83c7bc8](https://github.com/nextcloud/mail/commit/83c7bc8f05ad4d4fc37e9d49a9aaf37e07c9f0fd))\n* **l10n:** Update translations from Transifex ([1003f6c](https://github.com/nextcloud/mail/commit/1003f6c59a6377c247f7ddcc1dff0a65120389c6))\n* **l10n:** Update translations from Transifex ([2dd51c8](https://github.com/nextcloud/mail/commit/2dd51c8bb9670998eb0ef5114ecdb0811ae17ab7))\n* **l10n:** Update translations from Transifex ([4d25ae4](https://github.com/nextcloud/mail/commit/4d25ae4430bf9278283d2f10007e5d8ea8f4a36f))\n* **l10n:** Update translations from Transifex ([6de0c2a](https://github.com/nextcloud/mail/commit/6de0c2a0df34804c008308cb2c7b490376f650d0))\n* **l10n:** Update translations from Transifex ([7f70324](https://github.com/nextcloud/mail/commit/7f70324ab39a463b09b5fbb96083a8fd94e97f66))\n* **l10n:** Update translations from Transifex ([8551ded](https://github.com/nextcloud/mail/commit/8551ded3ca1c3782404b2404bd5e21ec30ddedee))\n* **l10n:** Update translations from Transifex ([d1f55af](https://github.com/nextcloud/mail/commit/d1f55af88b2375550165db7edc0fbcab31c310a4))\n* **l10n:** Update translations from Transifex ([a6ea034](https://github.com/nextcloud/mail/commit/a6ea0343b0badc571c3d29d2a4efb31ef8bb05dc))\n* **l10n:** Update translations from Transifex ([a3416c7](https://github.com/nextcloud/mail/commit/a3416c7815ab1bb9947119d9a354bf3f4ad90860))\n* **l10n:** Update translations from Transifex ([d3e93a1](https://github.com/nextcloud/mail/commit/d3e93a1ced32dee98d09aa2e6ba7bddc3b369910))\n* **l10n:** Update translations from Transifex ([0ce95b3](https://github.com/nextcloud/mail/commit/0ce95b38c98ef7f3d6907e15862b71a1b5bfab2d))\n* **l10n:** Update translations from Transifex ([c771327](https://github.com/nextcloud/mail/commit/c7713273832adc78c0af6a00dbe6be80f01846f6))\n* **l10n:** Update translations from Transifex ([172f154](https://github.com/nextcloud/mail/commit/172f15485357e8602e2dfa5277baa26aaabe8455))\n* **l10n:** Update translations from Transifex ([b5a785c](https://github.com/nextcloud/mail/commit/b5a785c4e128a82181f200d72c0298e6bd8879e3))\n* **l10n:** Update translations from Transifex ([c37fc3e](https://github.com/nextcloud/mail/commit/c37fc3eab5db926794d33e19a7bd9ea21a55a0fa))\n* **l10n:** Update translations from Transifex ([dbafedc](https://github.com/nextcloud/mail/commit/dbafedc1533cb2c24f6b3638fd635ba6824c392b))\n* **l10n:** Update translations from Transifex ([dd44f8b](https://github.com/nextcloud/mail/commit/dd44f8bc4babdcfb171fc34b8a0b8d667e7c1031))\n* **l10n:** Update translations from Transifex ([26c72b0](https://github.com/nextcloud/mail/commit/26c72b0ba59f8d6e1bbde63a71cbf223466e5744))\n* **l10n:** Update translations from Transifex ([55eda0d](https://github.com/nextcloud/mail/commit/55eda0de06adce44f751f545bd02bbed3dfbe064))\n* **l10n:** Update translations from Transifex ([d3a945b](https://github.com/nextcloud/mail/commit/d3a945b2634924e2af5cc0e774d13719d9755484))\n* **l10n:** Update translations from Transifex ([76b9c96](https://github.com/nextcloud/mail/commit/76b9c966e0dec4cc2efb12be3a30483d56632d3a))\n* **l10n:** Update translations from Transifex ([76688a4](https://github.com/nextcloud/mail/commit/76688a4e62240200c84755a191358f437bf042b6))\n* **l10n:** Update translations from Transifex ([4eb03df](https://github.com/nextcloud/mail/commit/4eb03df9d408e24f6c168eebfdfb8f10469d4b62))\n* **l10n:** Update translations from Transifex ([7365ec4](https://github.com/nextcloud/mail/commit/7365ec43d8fbc1d72f1ca502a57916afe2a3e2aa))\n* **l10n:** Update translations from Transifex ([11779b5](https://github.com/nextcloud/mail/commit/11779b5623c5aa566e42c7bb6faa50f57eaefcb3))\n* **l10n:** Update translations from Transifex ([7836ba5](https://github.com/nextcloud/mail/commit/7836ba59530d27a1836ab8fdedcd9bb71d60deb2))\n* **l10n:** Update translations from Transifex ([333fa26](https://github.com/nextcloud/mail/commit/333fa26765abcda6c2fa957e9cbbeb6314051cd2))\n* **l10n:** Update translations from Transifex ([7bed24d](https://github.com/nextcloud/mail/commit/7bed24d426cf5fa35456f5d14375758a84c5e780))\n* **l10n:** Update translations from Transifex ([770b95a](https://github.com/nextcloud/mail/commit/770b95a67ef91a35e439c74ce361219bf0afd543))\n* **l10n:** Update translations from Transifex ([2a8d58b](https://github.com/nextcloud/mail/commit/2a8d58be6f25064dbe8a7ac4bbbc689af6aef267))\n* **l10n:** Update translations from Transifex ([1fbba54](https://github.com/nextcloud/mail/commit/1fbba545b28dace804e98eeb5418cd8508e070d1))\n* **l10n:** Update translations from Transifex ([2f6b08c](https://github.com/nextcloud/mail/commit/2f6b08ced35c3c103fdf20f9f127146f2d93cd95))\n* **l10n:** Update translations from Transifex ([27deb8e](https://github.com/nextcloud/mail/commit/27deb8ed2738a002736333535e88232e95d03481))\n* lost line breaks ([056e1cf](https://github.com/nextcloud/mail/commit/056e1cf6ba1116b47b60fd45d84bf75209c59f59))\n* **mailto:** populate body from mailto ([6e66374](https://github.com/nextcloud/mail/commit/6e663740308588aeefc6bc7db90d1ef24ba7cafd))\n* **NavigationMailbox:** reword ([8bd6dd8](https://github.com/nextcloud/mail/commit/8bd6dd804864cd2af42e76cff87f89b614a65a46))\n* **NewMessageModal:** remove null focus trap selectors ([0412d17](https://github.com/nextcloud/mail/commit/0412d17db83afb84b6a104c3c85de93cdbd60623))\n* **oauth:** close popup window in parent window ([1fdf307](https://github.com/nextcloud/mail/commit/1fdf307f4755ef43aedde1263c46d187b2995d5c))\n* search input field doesnt extend properly ([2581870](https://github.com/nextcloud/mail/commit/2581870a78cc5b7d3f6b3a5dbe2287e0302a75c1))\n* **search:** apply correct search query when fetching envelopes ([4fe8329](https://github.com/nextcloud/mail/commit/4fe8329e1e2fee7be6853df3ddf98fe9fb2a6e3b))\n* **Settings:** followup on redesign ([67dae9c](https://github.com/nextcloud/mail/commit/67dae9c9b70330ffe9742ab8660c3998423ef007))\n* **setup:** allow setup with ms oauth and no password ([899f6f4](https://github.com/nextcloud/mail/commit/899f6f4d71ff39ac9d54212c2cb6b165a2d48bc0))\n* **sieve:** allow system flags like seen ([226e2d3](https://github.com/nextcloud/mail/commit/226e2d35e10ee9183158b35fc8fd47f7c5dfeec6))\n* **sieve:** ensure the stop action is always last ([e3d43c4](https://github.com/nextcloud/mail/commit/e3d43c4b9fb2339b45ee813fc8089e040930c582))\n* **text-block:** preserve line breaks on plain text ([9d5d3a9](https://github.com/nextcloud/mail/commit/9d5d3a92f41100b76730837c39fece9a210e463e))\n* **ui:** bind attr to popover trigger ([b17e04c](https://github.com/nextcloud/mail/commit/b17e04c217d32d4be97fc249c8d062f8d730368b))\n\n\n### Features\n\n* add sort favorites user preference ([b22afd4](https://github.com/nextcloud/mail/commit/b22afd4a18a99d4ea84b45e73d1a677b02a7744a))\n* compact view for mail layouts ([7eb1ff0](https://github.com/nextcloud/mail/commit/7eb1ff092b27253583a29dfae9ab14a2cc07e677))\n* imporove search filter buttons ([a21c29b](https://github.com/nextcloud/mail/commit/a21c29b423a16eec1aa3aa4d25de4a191065851e))\n* improve the search filter shortcut buttons ([b0c3559](https://github.com/nextcloud/mail/commit/b0c355921a0fc8e31170a3314f28ffb4a22724de))\n* make email wide on phone ([09ada44](https://github.com/nextcloud/mail/commit/09ada44d35871db527c902c14210fa2e8181b252))\n* manually refresh folder list ([22c7181](https://github.com/nextcloud/mail/commit/22c71813ded17ab3ac26f3e3b993abce1fe9d729))\n* **PhishingDetection:** Add support for the $Phishing IMAP flag ([6c01c8a](https://github.com/nextcloud/mail/commit/6c01c8a2db557231bdf8a84d4b921ab9e80871b1))\n* pin favorites ([6718656](https://github.com/nextcloud/mail/commit/67186566f2f30025409a9948e0ae362ca3cd22f4))\n* support user migration ([cc7c592](https://github.com/nextcloud/mail/commit/cc7c5926d3cba10009d86db6b1ff2bf5a8172b49))\n\n\n### Performance Improvements\n\n* **quick-actions:** eliminate dublicate api calld for each envelope ([71cccdf](https://github.com/nextcloud/mail/commit/71cccdfef182a4dfaaf4b14e5f17d0e042ac7870))\n\n\n\n# [5.6.0-rc.1](https://github.com/nextcloud/mail/compare/v5.5.0-rc.1...v5.6.0-rc.1) (2025-11-18)\n\n\n### Bug Fixes\n\n* **AccountForm:** Allow localhost as valid email domain ([49cd198](https://github.com/nextcloud/mail/commit/49cd198e599eac4c2537efe07b19b56e272a48d1))\n* add jsdom ([c3c31cb](https://github.com/nextcloud/mail/commit/c3c31cb36cfd8ba757d56e448c3abaaf164bca00))\n* add the warning icon when account cannot connect ([ae2f15d](https://github.com/nextcloud/mail/commit/ae2f15d7720c0116e4f5e9a1486a617c56414947))\n* **ai-integration:** get user language for message summary ([431e445](https://github.com/nextcloud/mail/commit/431e445b2808b4f04ac9019a57fe854667ad8242))\n* align quick action settings button properly ([cd7bda7](https://github.com/nextcloud/mail/commit/cd7bda7ba70b3fcc459d73326de07bda26320c7a))\n* allow reloading the INBOX favorites page ([3322b1d](https://github.com/nextcloud/mail/commit/3322b1dd5e8dac3163d23914046452ef0685485f))\n* allow storing longer mailbox names ([9652e1a](https://github.com/nextcloud/mail/commit/9652e1a2e4be0d08ae1d6acb052e04c84a09e6e1))\n* also await onToggleJunk ([d79ccf8](https://github.com/nextcloud/mail/commit/d79ccf8b5cde2c5deb88529d2871b52c224f9963))\n* **AppSettingsMenu:** update text string in preparation for redesign ([66cce37](https://github.com/nextcloud/mail/commit/66cce37650fa93636e15922569ac2f4ae0e832fb))\n* check email in recipient picker ([935c9a4](https://github.com/nextcloud/mail/commit/935c9a44e2b158771227369ffd683452b5c28f10))\n* ckeditor color in darkmode ([50dce08](https://github.com/nextcloud/mail/commit/50dce0864c33946c3be8067275c69f4b80f728a1))\n* ckeditor not loading when no translations are used ([c2b48bf](https://github.com/nextcloud/mail/commit/c2b48bf5f0d2e4236a913784bed170b83ca74a1a))\n* **classification:** break large SQL IN queries into chunks ([61a1457](https://github.com/nextcloud/mail/commit/61a145766c933a2d29525088d785fda436df63e8))\n* contrast fixes for some elements ([4b40509](https://github.com/nextcloud/mail/commit/4b405090af36bd35d9f9e892361fbb7eb7e73307))\n* correct the default sort order value ([2486bf4](https://github.com/nextcloud/mail/commit/2486bf457b79b4f9521c09f6bd28da8969121876))\n* **db:** clean-up old mailboxes account_id+name index ([e77008b](https://github.com/nextcloud/mail/commit/e77008b7468a1785fce59f68c40f41500a75234e))\n* **db:** drop index on mail_mailboxes by columns instead of name ([068954f](https://github.com/nextcloud/mail/commit/068954fbbdd0b72bf55fa9c8c9588d0fa40a31e9))\n* **deps:** bump @iframe-resizer/child from 5.5.5 to ^5.5.6 ([#11702](https://github.com/nextcloud/mail/issues/11702)) ([cef93a2](https://github.com/nextcloud/mail/commit/cef93a236a662c1268fdb7e33e28f93809e1abfb))\n* **deps:** bump @iframe-resizer/child from 5.5.6 to ^5.5.7 ([#11732](https://github.com/nextcloud/mail/issues/11732)) ([6a2567a](https://github.com/nextcloud/mail/commit/6a2567a477019ad1c031c471dca0cfd225045f20))\n* **deps:** bump @iframe-resizer/parent from 5.5.5 to ^5.5.7 ([#11733](https://github.com/nextcloud/mail/issues/11733)) ([9adc913](https://github.com/nextcloud/mail/commit/9adc91368153574b8a76cf35b8a0df1807125921))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([#11894](https://github.com/nextcloud/mail/issues/11894)) ([3c3097c](https://github.com/nextcloud/mail/commit/3c3097c90e264c9d9b0dc621e89bdad5718c7f41))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([#11827](https://github.com/nextcloud/mail/issues/11827)) ([4add112](https://github.com/nextcloud/mail/commit/4add1121fb19d87844848460d2f0742d296004f5))\n* **deps:** bump @nextcloud/dialogs from 6.3.2 to ^6.3.2 ([#11834](https://github.com/nextcloud/mail/issues/11834)) ([8d3bba7](https://github.com/nextcloud/mail/commit/8d3bba7044a3580bf45946f425dd6b5b9e7c2aa5))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([feb565d](https://github.com/nextcloud/mail/commit/feb565d833b35f0ae82c434573e8a96aa43005dc))\n* **deps:** bump @nextcloud/vue from 8.33.0 to ^8.33.0 ([cbce84e](https://github.com/nextcloud/mail/commit/cbce84e7f5926c1817f992c831f39f36f03497a0))\n* **deps:** bump @nextcloud/vue to ^8.31.0 ([1104e90](https://github.com/nextcloud/mail/commit/1104e90832fc6f88a168ef09b266c0ef4dacc3a0))\n* **deps:** bump @vue/babel-preset-app from 5.0.8 to ^5.0.9 ([#11842](https://github.com/nextcloud/mail/issues/11842)) ([84b8524](https://github.com/nextcloud/mail/commit/84b85248420a50c660657f061d3b44a50f9f743b))\n* **deps:** bump core-js from 3.45.0 to ^3.45.1 ([#11849](https://github.com/nextcloud/mail/issues/11849)) ([a43410e](https://github.com/nextcloud/mail/commit/a43410e99bfe4787aaba6febba630f1a5c4b0cda))\n* **deps:** bump dompurify from 3.2.6 to ^3.3.0 ([#11858](https://github.com/nextcloud/mail/issues/11858)) ([b913e68](https://github.com/nextcloud/mail/commit/b913e68d82390cd6c11a383339adbe902595361e))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.1 to ^1.8.6 ([#11978](https://github.com/nextcloud/mail/issues/11978)) ([0e1617b](https://github.com/nextcloud/mail/commit/0e1617bd1d49e88ee94a556c2a3f6ec8fb4ec292))\n* **deps:** bump phpmailer/dkimvalidator from 0.3 to ^0.3.1 ([8648561](https://github.com/nextcloud/mail/commit/86485615579de92dbc16b3192fc622828a4c19b3))\n* **deps:** bump rubix/ml from 2.5.2 to v2.5.3 ([#11872](https://github.com/nextcloud/mail/issues/11872)) ([5427895](https://github.com/nextcloud/mail/commit/5427895a664362b93805f98a1d71bbe56602cc0f))\n* **deps:** bump stylelint from 16.23.1 to ^16.25.0 ([#11887](https://github.com/nextcloud/mail/issues/11887)) ([3159ca1](https://github.com/nextcloud/mail/commit/3159ca129b98d0c31a574b447ec47b2731952eeb))\n* **deps:** drop Nextcloud 30 support (EOL) ([4c1b2e2](https://github.com/nextcloud/mail/commit/4c1b2e284673ae9985e14a9c84d68262077f8400))\n* **deps:** Fix npm audit ([f841390](https://github.com/nextcloud/mail/commit/f8413906aae4bf3cc1eb602369db0e8b9ec0906a))\n* **deps:** update @nextcloud/dialogs ([a6cd9ec](https://github.com/nextcloud/mail/commit/a6cd9ecbd8343832c3f90193968cd4e5abb8702f))\n* **deps:** update axios ([f063106](https://github.com/nextcloud/mail/commit/f063106eb4116736214f9570d5d0689fb73cbdd8))\n* **deps:** update axios ([f7d36de](https://github.com/nextcloud/mail/commit/f7d36de29d0764044a23a6f744d0849c513946fb))\n* **deps:** update ckeditor to 45 (unified package) ([819c221](https://github.com/nextcloud/mail/commit/819c221524fb9550eee750f3f2863a80c6da4bc4))\n* display tooltip correctly ([fb4ab1c](https://github.com/nextcloud/mail/commit/fb4ab1c629623b1369f4862f7d88ed520a5f36d8))\n* **dns:** Update public suffix list ([9943f2a](https://github.com/nextcloud/mail/commit/9943f2aeb4e229999bf0fca0c739df5002bd5753))\n* **dns:** Update public suffix list ([1f676bb](https://github.com/nextcloud/mail/commit/1f676bbfb99413b7006fc5ebb829d12f152e0d88))\n* **dns:** Update public suffix list ([1db4751](https://github.com/nextcloud/mail/commit/1db4751c3b8ebe44b65ba501a42b88e3a7617273))\n* **dns:** Update public suffix list ([9a92557](https://github.com/nextcloud/mail/commit/9a92557326a281d1991df72bf52698e6404c39a7))\n* **emoji-picker:** ignore if first character is a space ([da0e2bc](https://github.com/nextcloud/mail/commit/da0e2bc922301fffa4bfaa8741f0288fb22bddde))\n* **EnvelopeSkeleton:** text shifting on hover ([7561a7c](https://github.com/nextcloud/mail/commit/7561a7c8bb2760b8f85f15232c2d0db453878c4a))\n* error in mounted hook ([0055669](https://github.com/nextcloud/mail/commit/0055669f84fd903370d3b502ebc9b8fb3bc9a9fc))\n* external address color ([b476bb6](https://github.com/nextcloud/mail/commit/b476bb6828586c52b49c694ffdf56b8cc50b2e4e))\n* flip email open and email icon in evelope actions ([fc59623](https://github.com/nextcloud/mail/commit/fc59623ed5998474b466dea0f8fb98e7593475d5))\n* **i18n:** improve l10n strings ([#12004](https://github.com/nextcloud/mail/issues/12004)) ([a2c5043](https://github.com/nextcloud/mail/commit/a2c5043b15bdc02c9223a67a9e6c088cf4e382dc))\n* **imap:** avoid Horde's LIST-STATUS optimization for STATUS ([da3b3fa](https://github.com/nextcloud/mail/commit/da3b3fa109d949a7e111b70fd683118ca604a7d2))\n* **imap:** make mailbox status errors debuggable ([faa70d4](https://github.com/nextcloud/mail/commit/faa70d40d6489a686844710472b3b0745b3caf46))\n* imip aliases and capitalization ([aebfa65](https://github.com/nextcloud/mail/commit/aebfa657b79bda16fb6020099a23ab405559fa1f))\n* **l10n:** Update translations from Transifex ([6a71cc9](https://github.com/nextcloud/mail/commit/6a71cc923280a2dec8f9a27d0d5756e54f653d43))\n* **l10n:** Update translations from Transifex ([4ed1117](https://github.com/nextcloud/mail/commit/4ed1117dc8dd934153f69ecf5ae05d465e98a28c))\n* **l10n:** Update translations from Transifex ([cd0053f](https://github.com/nextcloud/mail/commit/cd0053f6e8eb1e14ee4410b49555d46fbab21144))\n* **l10n:** Update translations from Transifex ([3706c56](https://github.com/nextcloud/mail/commit/3706c56db751841ea10ea5724f28fddd97d4a0de))\n* **l10n:** Update translations from Transifex ([ce5372c](https://github.com/nextcloud/mail/commit/ce5372c14b742b62a444af5c0f057126a9b7fd92))\n* **l10n:** Update translations from Transifex ([f36788d](https://github.com/nextcloud/mail/commit/f36788d0d7ee59b3911c81200f6a788c26a64c59))\n* **l10n:** Update translations from Transifex ([4972130](https://github.com/nextcloud/mail/commit/49721300d8b6c7e8bfe500eac98bb8832f2f9dda))\n* **l10n:** Update translations from Transifex ([33c0cd2](https://github.com/nextcloud/mail/commit/33c0cd26f19a919c78e2e9ecac9c2cd58c1b3ce5))\n* **l10n:** Update translations from Transifex ([d5925f1](https://github.com/nextcloud/mail/commit/d5925f1196e3c33238b4f209a5c55badd1a5a9bb))\n* **l10n:** Update translations from Transifex ([10a5069](https://github.com/nextcloud/mail/commit/10a5069f73f817cb0dff0a634b442639408d68b5))\n* **l10n:** Update translations from Transifex ([585d834](https://github.com/nextcloud/mail/commit/585d8341ebc2da215201521be0d306e234aecf68))\n* **l10n:** Update translations from Transifex ([170a047](https://github.com/nextcloud/mail/commit/170a0474eb3675045adf5904c3520e212fe15896))\n* **l10n:** Update translations from Transifex ([14a58b3](https://github.com/nextcloud/mail/commit/14a58b3dcfb35acbb8acbe3844af43ef16c37b75))\n* **l10n:** Update translations from Transifex ([922f463](https://github.com/nextcloud/mail/commit/922f463dea059458903632cc4cf2df4c361c2287))\n* **l10n:** Update translations from Transifex ([3a7078f](https://github.com/nextcloud/mail/commit/3a7078ffefecab15e789802ece4e81479f3abd6b))\n* **l10n:** Update translations from Transifex ([decd56d](https://github.com/nextcloud/mail/commit/decd56d201ee09bed9f49601d799e7fa6f00f34c))\n* **l10n:** Update translations from Transifex ([75705fc](https://github.com/nextcloud/mail/commit/75705fc3b1eb966fcf8eb0554595dd1dbffa3835))\n* **l10n:** Update translations from Transifex ([39ba202](https://github.com/nextcloud/mail/commit/39ba20204b4b36ef96ecdaaa439c5824c9c6b465))\n* **l10n:** Update translations from Transifex ([e3b0fa8](https://github.com/nextcloud/mail/commit/e3b0fa801195720c00f4a5e1d3c68dde55a23407))\n* **l10n:** Update translations from Transifex ([9d80c02](https://github.com/nextcloud/mail/commit/9d80c0282898167f34681d89e808933214c32a39))\n* **l10n:** Update translations from Transifex ([3dc2827](https://github.com/nextcloud/mail/commit/3dc28277a1c39cb3cff74d42742030ab371e4cf5))\n* **l10n:** Update translations from Transifex ([67d1d2a](https://github.com/nextcloud/mail/commit/67d1d2a2441f761d5076ec3c6b6cd199ed466a5b))\n* **l10n:** Update translations from Transifex ([65b822d](https://github.com/nextcloud/mail/commit/65b822db0b11b54c64a809eb612a0e0f5e6f1b4a))\n* **l10n:** Update translations from Transifex ([adf81ed](https://github.com/nextcloud/mail/commit/adf81edff2bc005bf943b7311c62aefa9d8fd00f))\n* **l10n:** Update translations from Transifex ([dd0b743](https://github.com/nextcloud/mail/commit/dd0b743a10b3ea749fad2037333daf4d40d5760d))\n* **l10n:** Update translations from Transifex ([2c49124](https://github.com/nextcloud/mail/commit/2c49124257d9b641e6fc021fbca09e949a6c4b3d))\n* **l10n:** Update translations from Transifex ([b46373a](https://github.com/nextcloud/mail/commit/b46373a80c695b83249e9b3931f2ed661d924994))\n* **l10n:** Update translations from Transifex ([2306934](https://github.com/nextcloud/mail/commit/2306934b4546131d02f4bee6d0660d20d9516d23))\n* **l10n:** Update translations from Transifex ([e40e483](https://github.com/nextcloud/mail/commit/e40e483b9d2aa17d46a5be084b284df3abc22f2f))\n* **l10n:** Update translations from Transifex ([684e75a](https://github.com/nextcloud/mail/commit/684e75a46d208bc6365b328e8c85df84e638354b))\n* **l10n:** Update translations from Transifex ([0e361f0](https://github.com/nextcloud/mail/commit/0e361f06b008d6738db6bbbad70e49312533a932))\n* **l10n:** Update translations from Transifex ([67b25e3](https://github.com/nextcloud/mail/commit/67b25e34a0dc9c8bce176817bc228e12e1f53821))\n* **l10n:** Update translations from Transifex ([0fab187](https://github.com/nextcloud/mail/commit/0fab187e0a70b82c5230e36cdea5291b1b247d1f))\n* **l10n:** Update translations from Transifex ([bff919e](https://github.com/nextcloud/mail/commit/bff919ee61c8b7e5905b285b25b60649242e7161))\n* **l10n:** Update translations from Transifex ([6ddcf65](https://github.com/nextcloud/mail/commit/6ddcf65c22b81621dc0546eb9beaa2331fce44eb))\n* **l10n:** Update translations from Transifex ([2ea9bf1](https://github.com/nextcloud/mail/commit/2ea9bf13cfd824930dde40847c538c2778bf759b))\n* **l10n:** Update translations from Transifex ([3cd6222](https://github.com/nextcloud/mail/commit/3cd62224a25cb01bd16fabf6e3b1ccbf93153df6))\n* **l10n:** Update translations from Transifex ([d972d43](https://github.com/nextcloud/mail/commit/d972d439a0eb2146e0104b065ea7d272f258f9a6))\n* **l10n:** Update translations from Transifex ([be650ef](https://github.com/nextcloud/mail/commit/be650ef147914afc875123146a9f308f1a10df2d))\n* **l10n:** Update translations from Transifex ([a3d8185](https://github.com/nextcloud/mail/commit/a3d81853bc79060c6c6364195053de8d775b53a0))\n* **l10n:** Update translations from Transifex ([a87aa56](https://github.com/nextcloud/mail/commit/a87aa56436750fd601f7609ed74eb582ccec5011))\n* **l10n:** Update translations from Transifex ([01f9f99](https://github.com/nextcloud/mail/commit/01f9f998114fade296d4fb8812d8c3aab1967719))\n* **l10n:** Update translations from Transifex ([f1368ab](https://github.com/nextcloud/mail/commit/f1368ab5642d49db7db972bfcba74eb1a3529e6e))\n* **l10n:** Update translations from Transifex ([d3ee1d5](https://github.com/nextcloud/mail/commit/d3ee1d5a2502ee7c406f0347271c8c9113825eb4))\n* **l10n:** Update translations from Transifex ([f201a19](https://github.com/nextcloud/mail/commit/f201a197242e6208ede2c6461370ebe0dc9ff2bd))\n* **l10n:** Update translations from Transifex ([2320679](https://github.com/nextcloud/mail/commit/2320679f03db9869f3cd01b7f6cdb9d29254dd1b))\n* **l10n:** Update translations from Transifex ([d164bcb](https://github.com/nextcloud/mail/commit/d164bcbef87f0a224b34cce675c0d83996323b89))\n* **l10n:** Update translations from Transifex ([b4a6221](https://github.com/nextcloud/mail/commit/b4a62211a44588abc9c8b623d268eacdfcd11a2c))\n* **l10n:** Update translations from Transifex ([46c94b3](https://github.com/nextcloud/mail/commit/46c94b3d469dfd86b2274b8f6b82ce6afeb66b33))\n* **l10n:** Update translations from Transifex ([428c205](https://github.com/nextcloud/mail/commit/428c2051be596be6a9f4c1964d55350163309d0e))\n* **l10n:** Update translations from Transifex ([6016da4](https://github.com/nextcloud/mail/commit/6016da44d22cf8769fa03a02f5cb4a8811c810fb))\n* **l10n:** Update translations from Transifex ([307a257](https://github.com/nextcloud/mail/commit/307a257a4d2fdb63c738458b2453b959af574467))\n* **l10n:** Update translations from Transifex ([c6e018b](https://github.com/nextcloud/mail/commit/c6e018bfe874bc9197f4f9ca4aeac49fa1cfd1ab))\n* **l10n:** Update translations from Transifex ([78ae7f4](https://github.com/nextcloud/mail/commit/78ae7f43a3588c9534e2cb3c60e470cbfbee86e7))\n* **l10n:** Update translations from Transifex ([b8124ae](https://github.com/nextcloud/mail/commit/b8124ae1a006ab52aa9af1e007cbe643f28f9783))\n* leftover design changes ([da0a40d](https://github.com/nextcloud/mail/commit/da0a40d67fc3ec32713254e44885249be5bf877c))\n* list separators depending on sort by date ([1af3195](https://github.com/nextcloud/mail/commit/1af3195ae5a730baef2c4bcf4d1e048fa1b9bc25))\n* mail pane resetting between layout changes ([73c34ff](https://github.com/nextcloud/mail/commit/73c34ff21d8e5fbdf51af6ddc1ef7ff63de7e153))\n* migrate mail_accounts.oauth_refresh_token to Types::TEXT ([0341d64](https://github.com/nextcloud/mail/commit/0341d64fad418803831cad77f237e00a4f180843))\n* **migration:** check if account service method exists ([4133178](https://github.com/nextcloud/mail/commit/41331785b627692f814c15fbfe43fe500f8f8516))\n* **migration:** guard repair stop for possibly missing method ([edd7634](https://github.com/nextcloud/mail/commit/edd76340c32e0a0a349b9f6b512efb78e7a46839))\n* **NewMessageModal:** keep formatting after minimizing ([63354f2](https://github.com/nextcloud/mail/commit/63354f29349cdeceb93ca239b157cfb2fe045329))\n* **psalm:** remove unnecessary var declarations ([af228f6](https://github.com/nextcloud/mail/commit/af228f6abb86878f4378cc86e3caa09fbb6c64b1))\n* **quick-actions:** adjust backend check for pinned actions order ([4251ca2](https://github.com/nextcloud/mail/commit/4251ca2dc6a0a09f23521ea72fb80380f9d7d9a3))\n* **quick-actions:** apply action to all messages in a thread ([5ccc6a6](https://github.com/nextcloud/mail/commit/5ccc6a6c9162c188587df5d42ee06bf965229ad6))\n* **quick-actions:** delete local steps ([08e379c](https://github.com/nextcloud/mail/commit/08e379c2dd0f44321726150609452ad20bfded3e))\n* **quick-actions:** pin mark as spam as a last actions step ([a28adde](https://github.com/nextcloud/mail/commit/a28adde92e50c3758c28b22088feddf3d3deb848))\n* **quickaction:** fix deleting quick action steps ([f8b67cf](https://github.com/nextcloud/mail/commit/f8b67cfb848d5f4420fafc795792796189f789ee))\n* **quickaction:** log js error to console ([da5eae9](https://github.com/nextcloud/mail/commit/da5eae94614816bb75c6fd31a95ac92b6b47a8d5))\n* render recipient info later ([03bee06](https://github.com/nextcloud/mail/commit/03bee066c6c168911151e0be71c16eb2dc2bbc4d))\n* restore color menu in text/background selector ([6de3bb1](https://github.com/nextcloud/mail/commit/6de3bb1ab9e21f28703648926f451c6f46b5dcc3))\n* schedule jobs on account provisioning ([5f9a313](https://github.com/nextcloud/mail/commit/5f9a3131ac6f31680255c616bc26e7938d1752a5))\n* schedule repair sync job when adding an account ([eb41283](https://github.com/nextcloud/mail/commit/eb41283573f85cbef11bcfe40059b7930bea9802))\n* **Settings:** redesign ([5448209](https://github.com/nextcloud/mail/commit/5448209267415ad71f877b104e420aaf0bd20ab9))\n* **setup:** log when invalid hosts are used ([b415ab6](https://github.com/nextcloud/mail/commit/b415ab6672c5d90138d8834763d9a3683b0c4331))\n* show user avatar in recipient info ([f67fd6b](https://github.com/nextcloud/mail/commit/f67fd6be188873e1a397829da7a1e82aa6cc42fe))\n* **sieve:** improve filter ui ([29c3d5e](https://github.com/nextcloud/mail/commit/29c3d5ed87547835886e9a0f47d75d206008bd98))\n* thread error message handling ([7593d60](https://github.com/nextcloud/mail/commit/7593d6099f254930fdbb63bc08398bcaa85c5e3d))\n* toolbar dropdown and height bug ([90e78c1](https://github.com/nextcloud/mail/commit/90e78c16ad80edec5209d527cebd9cd6968de016))\n* **ui:** Don't outline checkmark icons ([46e0a10](https://github.com/nextcloud/mail/commit/46e0a108843b3a3661d3da6eb4a793148b9c5a95)), closes [#11322](https://github.com/nextcloud/mail/issues/11322)\n* **ui:** escape envelope subject line ([36b5d21](https://github.com/nextcloud/mail/commit/36b5d211eedbaeb3e4b41aaa2b0fea59bd52e285))\n* **ui:** handle mailbox sorting of 'all' and unknown special use ([913342b](https://github.com/nextcloud/mail/commit/913342b0d2fd0be25186cb39b31916b72a188ced))\n* **ui:** migrate to the new radio groups for app settings ([cef6238](https://github.com/nextcloud/mail/commit/cef62387b304a927b3ffb5f8a4cfe124452e88c2))\n* **ui:** use filled icons for active navigation mailboxes ([2b78ce1](https://github.com/nextcloud/mail/commit/2b78ce1961414d2242dcc7f71b035e91d42c176a))\n* **ui:** use new NcKbd component ([65f6c61](https://github.com/nextcloud/mail/commit/65f6c61c686f0b89f25a5be16965abe29e4aeff2))\n* validate email address in recipient picker ([0d7ceb1](https://github.com/nextcloud/mail/commit/0d7ceb1fb77820595b799540e25d29649a3e7988))\n* warning for accounts that can't connect ([1ee0d5d](https://github.com/nextcloud/mail/commit/1ee0d5d76912fbe30e205f5a4c0768ef6960c5da))\n\n\n### Features\n\n* **composer:** send message on Ctrl+Enter ([0e848de](https://github.com/nextcloud/mail/commit/0e848deae3c4fadf7f70aebda3db001d554a420a))\n* **settings:** add bordered wrapper to signature editor for clearer boundary ([0675a17](https://github.com/nextcloud/mail/commit/0675a1756303159fa8b84f35eff52ee52c81c6ab))\n* show mail version in settings ([d206d4d](https://github.com/nextcloud/mail/commit/d206d4dfc68e589284418fbcfb82ea54e2000148))\n\n\n### Performance Improvements\n\n* switch webpack mode to lazy ([9d8f1f3](https://github.com/nextcloud/mail/commit/9d8f1f32219fbd21e61c66794b0ff64e2bf830f9))\n\n\n\n# [5.5.0-rc.1](https://github.com/nextcloud/mail/compare/v5.2.0-beta.1...v5.5.0-rc.1) (2025-09-11)\n\n\n### Bug Fixes\n\n* **ai-integration:** set the language explicitly for message summary ([ca141ee](https://github.com/nextcloud/mail/commit/ca141eeed5f90a5b1348c2f7c3d6b24680557edb))\n* **AliasSettings:** alignment ([84233ab](https://github.com/nextcloud/mail/commit/84233ab11532efd238c876f92d3f5b60e3faabad))\n* avoid polluting the logs in the task processing event listner ([ab9cd93](https://github.com/nextcloud/mail/commit/ab9cd9338b2de6bf6c2daee9d291c9c995ed7517))\n* ckeditor dropdown overlaping ([59904c2](https://github.com/nextcloud/mail/commit/59904c2c6b2d3476a4e3bb2cfdb23cdb44809bd3))\n* clear search icon should not be outline ([ab21936](https://github.com/nextcloud/mail/commit/ab2193695614d46132416effbe41b4bb5921896d))\n* **deps:** bump @iframe-resizer/child from 5.5.0 to ^5.5.1 (main) ([#11451](https://github.com/nextcloud/mail/issues/11451)) ([fbb7d7b](https://github.com/nextcloud/mail/commit/fbb7d7b61d0c666f984ec81de2da11139e1f211e))\n* **deps:** bump @iframe-resizer/child from 5.5.1 to ^5.5.2 ([ed1fbcb](https://github.com/nextcloud/mail/commit/ed1fbcb085d326fdcecdeb792f6833ca2b325967))\n* **deps:** bump @iframe-resizer/child from 5.5.2 to ^5.5.3 (main) ([#11583](https://github.com/nextcloud/mail/issues/11583)) ([03dedb7](https://github.com/nextcloud/mail/commit/03dedb7baf7205d8aac8429d05b0200f2672a5c0))\n* **deps:** bump @iframe-resizer/child from 5.5.3 to ^5.5.5 (main) ([#11612](https://github.com/nextcloud/mail/issues/11612)) ([0625a6f](https://github.com/nextcloud/mail/commit/0625a6f9d4216454dc5aaf9276e3091085920f40))\n* **deps:** bump @iframe-resizer/parent from 5.4.7 to ^5.5.1 (main) ([#11452](https://github.com/nextcloud/mail/issues/11452)) ([e7dd17a](https://github.com/nextcloud/mail/commit/e7dd17add842d88f5a05e2e1fcaaa92275208f07))\n* **deps:** bump @iframe-resizer/parent from 5.5.1 to ^5.5.2 (main) ([#11483](https://github.com/nextcloud/mail/issues/11483)) ([c563201](https://github.com/nextcloud/mail/commit/c563201340e02673d364e10efeef4bacc3050624))\n* **deps:** bump @iframe-resizer/parent from 5.5.2 to ^5.5.3 (main) ([#11584](https://github.com/nextcloud/mail/issues/11584)) ([67174a9](https://github.com/nextcloud/mail/commit/67174a9f80d80b8cf3cc2f28fbe5d72da11b541b))\n* **deps:** bump @iframe-resizer/parent from 5.5.3 to ^5.5.5 (main) ([#11613](https://github.com/nextcloud/mail/issues/11613)) ([5be27cf](https://github.com/nextcloud/mail/commit/5be27cf2cf00b72fcd4526f164ec2c773e46e00c))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.12.0 ([deef58a](https://github.com/nextcloud/mail/commit/deef58a71e8801dc0c5e515295d03686ece51ff3))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([4529411](https://github.com/nextcloud/mail/commit/452941193bd47e1deb5da403b9ef06ac12d05c25))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.28.0 ([88bdf89](https://github.com/nextcloud/mail/commit/88bdf891061228035dea3ddfe6d360a79a8cca33))\n* **deps:** bump @nextcloud/vue to ^8.30.0 ([f417737](https://github.com/nextcloud/mail/commit/f4177370703e0f9589ca11e89c72535a7782ee8b))\n* **deps:** bump core-js from 3.43.0 to ^3.45.0 ([4932f23](https://github.com/nextcloud/mail/commit/4932f23e4d0fc76c74b602a7cd7e631e77d7dab6))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([13f5e61](https://github.com/nextcloud/mail/commit/13f5e61ef534906b8c7dc1ebb5cd36c1c9b85a24))\n* **deps:** bump js-base64 from 3.7.7 to ^3.7.8 (main) ([#11501](https://github.com/nextcloud/mail/issues/11501)) ([ded3bda](https://github.com/nextcloud/mail/commit/ded3bda4d340bffd12adcdd52b6253b3c9170431))\n* **deps:** bump linkifyjs to v4.3.2 ([ec06a65](https://github.com/nextcloud/mail/commit/ec06a658d8fc89369dabedb2e70dc1818f48c245))\n* **deps:** bump p-limit from 5.0.0 to v6 ([4d6501a](https://github.com/nextcloud/mail/commit/4d6501ac9952a57bf9a38b47f497113d7af7e008))\n* **deps:** bump sabberworm/php-css-parser from 8.8.0 to ^8.9.0 (main) ([#11475](https://github.com/nextcloud/mail/issues/11475)) ([a96c15d](https://github.com/nextcloud/mail/commit/a96c15d684506a68817817f0e0c3ce6af567ec2c))\n* **deps:** bump sha.js from 2.4.11 to 2.4.12 ([461a9cf](https://github.com/nextcloud/mail/commit/461a9cfedcd62a89d236ae86421d9c3ffd519a18))\n* **deps:** bump stylelint from 16.20.0 to ^16.23.1 (main) ([#11476](https://github.com/nextcloud/mail/issues/11476)) ([eac87aa](https://github.com/nextcloud/mail/commit/eac87aa75304bd0ecfda0425c84ea27477d83bf3))\n* **deps:** bump uuid from 9.0.1 to v11 ([243172c](https://github.com/nextcloud/mail/commit/243172c9c8ebaaa2e0feb3907aa4dbe21842f133))\n* **deps:** bump youthweb/urllinker from 2.0.0 to ^2.1.0 (main) ([#11477](https://github.com/nextcloud/mail/issues/11477)) ([e4cc571](https://github.com/nextcloud/mail/commit/e4cc571bef4399dbc1ec66c4238857b087db08c1))\n* **deps:** update symfony/process to 5.4.46 ([569e6b9](https://github.com/nextcloud/mail/commit/569e6b9c5ce88c2874e969d9de55e176e0043b67))\n* **dns:** Update public suffix list ([c29ef10](https://github.com/nextcloud/mail/commit/c29ef10955207b12213bd3781bcea2870d1f51a4))\n* **dns:** Update public suffix list ([e9c9068](https://github.com/nextcloud/mail/commit/e9c90681350a547bb750f29b2f17da9d81f83e53))\n* envelope max height ([2e88454](https://github.com/nextcloud/mail/commit/2e88454c46fae764a42e8f43779f4d48241c52b5))\n* **Envelope:** fix oneline mode envelopes jumping when hovering avatars ([#11641](https://github.com/nextcloud/mail/issues/11641)) ([79e09a1](https://github.com/nextcloud/mail/commit/79e09a1d301ea3e762f9608aa62a30dec7d1cd6a))\n* **EnvelopeSkeleton:** make action hover area square again ([13cc096](https://github.com/nextcloud/mail/commit/13cc096a30ad19fb5a5aed1a23dca4a774f15d36))\n* imip cancelled icon should be filled ([222dad1](https://github.com/nextcloud/mail/commit/222dad14b866e40f8ad548a4784f7b7733b860c8))\n* improve the height and width of threads ([217f086](https://github.com/nextcloud/mail/commit/217f08620eaff42685933654bbcbbeadd94a1b0c))\n* **l10n:** Update translations from Transifex ([8cbc64b](https://github.com/nextcloud/mail/commit/8cbc64be123186ba8271c5684df1f685bb7f451d))\n* **l10n:** Update translations from Transifex ([14d2b10](https://github.com/nextcloud/mail/commit/14d2b105c7fce21368db46f58c93c68be349fd8c))\n* **l10n:** Update translations from Transifex ([d58c2b5](https://github.com/nextcloud/mail/commit/d58c2b5fcbad02d7becc6466ef21464e858ab5e4))\n* **l10n:** Update translations from Transifex ([3a3151a](https://github.com/nextcloud/mail/commit/3a3151af5f54767d7355a950c74477c8a46a63ce))\n* **l10n:** Update translations from Transifex ([d3fe84d](https://github.com/nextcloud/mail/commit/d3fe84d53f68598a93d2b44183d6233452e1a6dd))\n* **l10n:** Update translations from Transifex ([9290530](https://github.com/nextcloud/mail/commit/9290530f5f29e3a4a021ec91645a10042199b4f3))\n* **l10n:** Update translations from Transifex ([c9f26dc](https://github.com/nextcloud/mail/commit/c9f26dc55a3a6740fdb0daf2d2d18182ebcdcda6))\n* **l10n:** Update translations from Transifex ([90a0fd5](https://github.com/nextcloud/mail/commit/90a0fd51400150b678303c39a68dd4d40473f00b))\n* **l10n:** Update translations from Transifex ([36360a3](https://github.com/nextcloud/mail/commit/36360a3f71c96a209a4355dabb03b1380a7611c3))\n* **l10n:** Update translations from Transifex ([a102a6e](https://github.com/nextcloud/mail/commit/a102a6e36687e4e030a3848c044dc7c255de74e9))\n* **l10n:** Update translations from Transifex ([c5116a7](https://github.com/nextcloud/mail/commit/c5116a7d6e9214cc9b2ace7cd583388b16ef0731))\n* **l10n:** Update translations from Transifex ([b076b44](https://github.com/nextcloud/mail/commit/b076b4422b297d8c77249107320c8ef8a6b4547c))\n* **l10n:** Update translations from Transifex ([61df478](https://github.com/nextcloud/mail/commit/61df47864d09f0f3124e56b3e2f0241c84de83b6))\n* **l10n:** Update translations from Transifex ([7ca9af7](https://github.com/nextcloud/mail/commit/7ca9af720d5d837c9a8b29dc55b10dfd89bc9c4d))\n* **l10n:** Update translations from Transifex ([f9e8db7](https://github.com/nextcloud/mail/commit/f9e8db7ea23ff350e2a5cffdb49adbe6f2932293))\n* **l10n:** Update translations from Transifex ([12ed5be](https://github.com/nextcloud/mail/commit/12ed5be776b49a895399ce8a3bdd52733787217c))\n* **l10n:** Update translations from Transifex ([af95f12](https://github.com/nextcloud/mail/commit/af95f12cb147df5fd83e783fb3949684d4d9e314))\n* **l10n:** Update translations from Transifex ([607c73b](https://github.com/nextcloud/mail/commit/607c73ba81bf7c79de107fa56ac2bd861d9c1db0))\n* **l10n:** Update translations from Transifex ([a61e1b9](https://github.com/nextcloud/mail/commit/a61e1b93d8a4a085db1616d4a9cb14c407369f12))\n* **l10n:** Update translations from Transifex ([ee5e864](https://github.com/nextcloud/mail/commit/ee5e864bdf16649e594f74c0bb9bc114e466a1d0))\n* **l10n:** Update translations from Transifex ([70a04cd](https://github.com/nextcloud/mail/commit/70a04cd8aa2a23b56a655b94af8b34ccc0148b8e))\n* **l10n:** Update translations from Transifex ([7f023a0](https://github.com/nextcloud/mail/commit/7f023a06dc0db1fe403aa64a2ceb57d9b17147b9))\n* **l10n:** Update translations from Transifex ([e5e9ec8](https://github.com/nextcloud/mail/commit/e5e9ec8764bd26732f1ea6ad91b4e165011c25ac))\n* **l10n:** Update translations from Transifex ([3f9e474](https://github.com/nextcloud/mail/commit/3f9e474486e90d6e48d3e40b70a4c72611ea2dcf))\n* **l10n:** Update translations from Transifex ([3356ea2](https://github.com/nextcloud/mail/commit/3356ea2ebd5ee1ba344b60dfa5f40ae607e7ba19))\n* **l10n:** Update translations from Transifex ([eeced61](https://github.com/nextcloud/mail/commit/eeced61bcf4d4eaec87924f94c8160acafd0682a))\n* **l10n:** Update translations from Transifex ([2ad3966](https://github.com/nextcloud/mail/commit/2ad3966c3ea5606436387b67da1d4807eb47587a))\n* **l10n:** Update translations from Transifex ([cfdcf75](https://github.com/nextcloud/mail/commit/cfdcf757f2fe7a6936569d3c861bba1b1004fe05))\n* **l10n:** Update translations from Transifex ([697c69b](https://github.com/nextcloud/mail/commit/697c69b5841c01a25b8cf7b0e4fed67d3443188f))\n* **l10n:** Update translations from Transifex ([2f1c003](https://github.com/nextcloud/mail/commit/2f1c003418e40b7edad25f1f498e43e2b773a7d1))\n* **l10n:** Update translations from Transifex ([36f0e7f](https://github.com/nextcloud/mail/commit/36f0e7fd38568d944000736136c94bb1b7a261a3))\n* **l10n:** Update translations from Transifex ([e2c468f](https://github.com/nextcloud/mail/commit/e2c468fac3115bdd6d27c16b9009377421416c74))\n* **l10n:** Update translations from Transifex ([c8f646c](https://github.com/nextcloud/mail/commit/c8f646c09d5d0c405babdefa026cf6a5ac2b1d2f))\n* **l10n:** Update translations from Transifex ([3f1a40c](https://github.com/nextcloud/mail/commit/3f1a40c9b23ee7f9ba9ac3610cb877d8d8a59800))\n* **l10n:** Update translations from Transifex ([481be86](https://github.com/nextcloud/mail/commit/481be86a5abe74d2b6e11ee7823e1ff9997b7d4f))\n* Overwrite php-stemmer dependency from RubixML for PHP 8.4 compatibility ([cb94091](https://github.com/nextcloud/mail/commit/cb94091f38006b5bb1255edea7b5d836a5f647ba))\n* reply buttons spacing ([989f540](https://github.com/nextcloud/mail/commit/989f540d22e398bce6b58c467bda93932b5f06db))\n* **settings:** add missing mail settings heading ([a94cd4e](https://github.com/nextcloud/mail/commit/a94cd4e30cf2800d1e695dc805c549b6f1fae300))\n* specify which mailbox to load more from ([e196775](https://github.com/nextcloud/mail/commit/e1967756d49467085fbad138f7c67c0881b10146))\n* **text-blocks:** allow editing in composer and open api for non admin users ([d93d974](https://github.com/nextcloud/mail/commit/d93d974bf8642e80792402c23546391e2985561d))\n* thread heading alignment and participants ([ea01e40](https://github.com/nextcloud/mail/commit/ea01e402f79b90c0792771e03980abec73165781))\n* thread scrolls to middle of iframe ([77a91ad](https://github.com/nextcloud/mail/commit/77a91ad7765a9ec344c5987a8efe1834c9101343))\n* **translation:** respect llm admin setting ([0b0e279](https://github.com/nextcloud/mail/commit/0b0e27977a69a6315fca731f65f554ee758e2e9b))\n* **ui:** adapt setup page to fluid logo ([bff428d](https://github.com/nextcloud/mail/commit/bff428d7c78502008d296e232d998b0778eca37b))\n* **ui:** replace download/upload icons with tray icons ([fe6c15f](https://github.com/nextcloud/mail/commit/fe6c15fe67478664e0021707a0e450d4d3d7e75b))\n* **ui:** replace wrongly sized and jumping checkbox loading icon ([668f7b6](https://github.com/nextcloud/mail/commit/668f7b6c4b3017f0a65f486435d4ca81327d1399))\n* **ui:** resize action icons from 16px to 20px ([d6810da](https://github.com/nextcloud/mail/commit/d6810da2a5d1fc60d632234865542962acdf7ddb))\n* **ui:** resize action icons from 16px to 20px ([99fbdda](https://github.com/nextcloud/mail/commit/99fbdda306f7efd3c52bb98a4f4937f92eb2de2f))\n* **ui:** resize button icons from 16px to 20px ([9c059b8](https://github.com/nextcloud/mail/commit/9c059b85d13ca4161f793d9fc2de537de66b726b))\n* **ui:** resize inline icons from 16px to 20px ([e8a8d89](https://github.com/nextcloud/mail/commit/e8a8d89de6c92fd70fa2e1d5dbd9afe7c5837487))\n* **ui:** revert composer session close icon to filled variant ([e10d9da](https://github.com/nextcloud/mail/commit/e10d9da41655955376268d3c342a63260b574aa0))\n* **ui:** revert recipient delete icon to filled variant ([6468edb](https://github.com/nextcloud/mail/commit/6468edb42a4248312c91d3570dac4a133a610dcd))\n* **ui:** show box-shadow for fluid design button all the time ([03b5861](https://github.com/nextcloud/mail/commit/03b5861d70b854704caa47269cbb999f583fe057))\n* **ui:** use fluid background image for the setup view ([f88dec6](https://github.com/nextcloud/mail/commit/f88dec649b44f9ab8e38a767016a4e1c26ba7235))\n* **ui:** use gradient as fallback for themed fluid design ([b3ebb27](https://github.com/nextcloud/mail/commit/b3ebb2787814f4c075f495b1eb04ea66f00dee2a))\n* update wording for mailvelope ([b51ed32](https://github.com/nextcloud/mail/commit/b51ed32d53b4336ab7d7aa76d366a557f09738ce))\n* white space between section titles ([9469c7b](https://github.com/nextcloud/mail/commit/9469c7be51d0743cb722f110263700d126cb218c))\n\n\n### Features\n\n* adjust background sync on user activity ([febaba1](https://github.com/nextcloud/mail/commit/febaba187da4dd60410ccfad738fe80d5af619fa))\n* **ai-integration:** detect if message needs translation ([4a2b238](https://github.com/nextcloud/mail/commit/4a2b2389f31f084d8b7856f4a4bd84ed22c27f41))\n* **deps:** add Nextcloud 33 support ([df5795d](https://github.com/nextcloud/mail/commit/df5795dab59e95fd43a00e84c82544ada65a43ea))\n* introduce quick actions ([cc1047c](https://github.com/nextcloud/mail/commit/cc1047c7c884711144e229174914c102f8a5fd13))\n* make summary thread similar to normal thread style ([997c19e](https://github.com/nextcloud/mail/commit/997c19e0553c9ee7ecc244e778c006e849d2ea8f))\n* make thread elements have the same space around it ([ec2173c](https://github.com/nextcloud/mail/commit/ec2173c77ab9a6266dbb3499a32350df8b7d180f))\n* quick actions frontend ([97fb6a5](https://github.com/nextcloud/mail/commit/97fb6a516ba8510c054e9e7740f5bce72601f563))\n* reply message with meeting ([37be07c](https://github.com/nextcloud/mail/commit/37be07c664b5b3aad2c4d9135f9412766edd7cd1))\n* split envelopes by time of arrival ([eaa7405](https://github.com/nextcloud/mail/commit/eaa740528c1284b79aa3291bcbfd20f907608f64))\n* **ui:** add fluid design ([85f0628](https://github.com/nextcloud/mail/commit/85f06283836e7243496c20d37d2565aafcb0f6ea))\n\n\n\n# [5.2.0-beta.1](https://github.com/nextcloud/mail/compare/v5.2.0-alpha.1...v5.2.0-beta.1) (2025-08-04)\n\n\n### Bug Fixes\n\n* add html and source editing support ([ff1f7d8](https://github.com/nextcloud/mail/commit/ff1f7d885c3c06850e08e969c5b6b35af8bc8c81))\n* add translator note for account settings folder search ([a702a23](https://github.com/nextcloud/mail/commit/a702a233388163a3898b993bb0d5a43415e28192))\n* **avatar:** handle null bodies ([b8f452b](https://github.com/nextcloud/mail/commit/b8f452bba27a059681f33b7842aa2b5c0ab2cc57))\n* avoid invalid false return type ([d0f4b55](https://github.com/nextcloud/mail/commit/d0f4b556531a1271f11f3164093eb62699f48a28))\n* button aria label and roles ([e38d831](https://github.com/nextcloud/mail/commit/e38d831869cbf9ef38d951b3c2d6fa3da2c0790d))\n* **caldav:** invalid import of davclient ([376942d](https://github.com/nextcloud/mail/commit/376942d81cf95b462196aca6f629f7bfc258a24c))\n* **classification:** use global default for new messages too ([d4e171b](https://github.com/nextcloud/mail/commit/d4e171bdac87390067fe5f4b0db10adef1dfcbe7))\n* close modal when send is clicked ([3ef6947](https://github.com/nextcloud/mail/commit/3ef694729bfbba27767b70c5219d772e2553c8fa))\n* **composer:** allow attaching shared files again ([214680a](https://github.com/nextcloud/mail/commit/214680adb43fd6216dd7c8ab8da5595e48c8c718))\n* **deps:** Apply npm audit fix ([3c447b7](https://github.com/nextcloud/mail/commit/3c447b769a2b9e296ab8ac8adb91a1f15b0601a4))\n* **deps:** Apply npm audit fix ([3822226](https://github.com/nextcloud/mail/commit/3822226ff7cde3f6d616b3a904888517b452ab8c))\n* **deps:** Apply npm audit fix ([6e90100](https://github.com/nextcloud/mail/commit/6e9010004196f21b30da57773e4eb6ff688fc063))\n* **deps:** Apply npm audit fix ([f538159](https://github.com/nextcloud/mail/commit/f538159f3abf69672a4df4498862b88676bc9c92))\n* **deps:** bump @iframe-resizer/child from 5.4.6 to ^5.4.7 (main) ([#11374](https://github.com/nextcloud/mail/issues/11374)) ([41547fa](https://github.com/nextcloud/mail/commit/41547faa6bd9e9e672d49e5659e48b3f74aadf37))\n* **deps:** bump @iframe-resizer/child from 5.4.7 to ^5.5.0 (main) ([#11430](https://github.com/nextcloud/mail/issues/11430)) ([b0947e6](https://github.com/nextcloud/mail/commit/b0947e64704972de8e2229d3ad0c0c1446ce0d17))\n* **deps:** bump @iframe-resizer/parent from 5.4.6 to ^5.4.7 (main) ([#11375](https://github.com/nextcloud/mail/issues/11375)) ([c9fc35a](https://github.com/nextcloud/mail/commit/c9fc35aad941303316dada6e9508cf98d475b2e8))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 (main) ([#11376](https://github.com/nextcloud/mail/issues/11376)) ([c15e8c3](https://github.com/nextcloud/mail/commit/c15e8c308336cc7645934f090c70ceb069667145))\n* **deps:** bump @nextcloud/calendar-js from 8.1.2 to ^8.1.3 ([4c8363e](https://github.com/nextcloud/mail/commit/4c8363e9c3b36fef917b310e9c21092e37b52cb9))\n* **deps:** bump @nextcloud/calendar-js from 8.1.3 to ^8.1.4 ([378405e](https://github.com/nextcloud/mail/commit/378405e2a7967ad795507275a4753af0cbaaf622))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([08bff41](https://github.com/nextcloud/mail/commit/08bff4199ee5f1e3adfde894d4aaccbe7dafecdb))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 (main) ([#11409](https://github.com/nextcloud/mail/issues/11409)) ([2914a63](https://github.com/nextcloud/mail/commit/2914a6312556302b179eb602888bf31921d05d4d))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to v6 ([53cfc3e](https://github.com/nextcloud/mail/commit/53cfc3ef45446903a13c70cb3dae76bc5a878195))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.3.0 (main) ([#11227](https://github.com/nextcloud/mail/issues/11227)) ([ed941e8](https://github.com/nextcloud/mail/commit/ed941e86f1dcbc8e81da99417e406eb83ebb0649))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.0 (main) ([#11427](https://github.com/nextcloud/mail/issues/11427)) ([e9f785c](https://github.com/nextcloud/mail/commit/e9f785c9d532fe21fd77a52d288702f1cf9240e2))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 (main) ([#11410](https://github.com/nextcloud/mail/issues/11410)) ([29f0f8e](https://github.com/nextcloud/mail/commit/29f0f8ef908e2c70ebec94d0aac6e52795f565ef))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([f4f3535](https://github.com/nextcloud/mail/commit/f4f35358b044213e2938a1a9bf5412fed7f94323))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.27.0 ([ef701cb](https://github.com/nextcloud/mail/commit/ef701cbf0c216469ee16012e50bc08759e80658d))\n* **deps:** bump amphp/parallel and amphp/process for PHP8.4 compat ([8d0ef72](https://github.com/nextcloud/mail/commit/8d0ef72c8fe3b840a7a17c31159ee18d58453438))\n* **deps:** bump core-js from 3.42.0 to ^3.43.0 (main) ([#11256](https://github.com/nextcloud/mail/issues/11256)) ([8b9a531](https://github.com/nextcloud/mail/commit/8b9a531b9c7d8dfefe221a1bff30aaac0254d87d))\n* **deps:** bump dompurify from 3.2.5 to ^3.2.6 (main) ([#11180](https://github.com/nextcloud/mail/issues/11180)) ([fbbf4bf](https://github.com/nextcloud/mail/commit/fbbf4bfd15000113755fa37d76634683c10282d1))\n* **deps:** bump form-data to v4.0.4 ([71d52ca](https://github.com/nextcloud/mail/commit/71d52ca16c25bc19f5e84f54c41bca8433706d03))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 (main) ([#11343](https://github.com/nextcloud/mail/issues/11343)) ([10d46f5](https://github.com/nextcloud/mail/commit/10d46f5714f081a487a84cdae353e23fb266c7fc))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.3 to ^1.0.4 (main) ([#11181](https://github.com/nextcloud/mail/issues/11181)) ([cc4b6af](https://github.com/nextcloud/mail/commit/cc4b6afa0dca2559be3f7253c7d41598c833b5d3))\n* **deps:** bump ramda from 0.30.1 to ^0.31.3 ([0f5d1cb](https://github.com/nextcloud/mail/commit/0f5d1cba25f079fb36ca802ed37872c05b2f9d66))\n* **deps:** bump stylelint from 16.19.1 to ^16.20.0 (main) ([#11248](https://github.com/nextcloud/mail/issues/11248)) ([0d95338](https://github.com/nextcloud/mail/commit/0d95338d7597d7f77d691ea921a6bc8e295cd01c))\n* **deps:** bump webdav from 4.11.4 to v4.11.5 (main) ([#11246](https://github.com/nextcloud/mail/issues/11246)) ([6359d2b](https://github.com/nextcloud/mail/commit/6359d2b9e6e1c7ca9fa6b40343b62b9ee4cea1b4))\n* **dns:** Update public suffix list ([6096398](https://github.com/nextcloud/mail/commit/6096398a88ea3065ddf48afa895d1a70c6e9d4fd))\n* **dns:** Update public suffix list ([990031a](https://github.com/nextcloud/mail/commit/990031a8be090ff5fe55bab5647f8be921d0536f))\n* **dns:** Update public suffix list ([5ea2259](https://github.com/nextcloud/mail/commit/5ea2259e2963106d27fcdae78119b43fa322d0a5))\n* **dns:** Update public suffix list ([fb7762c](https://github.com/nextcloud/mail/commit/fb7762c3ac5fe23845b04540b0a7f63211055791))\n* **dns:** Update public suffix list ([f8bf4ec](https://github.com/nextcloud/mail/commit/f8bf4eccbd37a6a529d365e4d7e60889f9b56b08))\n* don't propagate click event on reply ([56ac6af](https://github.com/nextcloud/mail/commit/56ac6af0c3f2f738d64797538530c84f66c9a008))\n* **filters:** Use contains operator for from and to header ([8d79ff2](https://github.com/nextcloud/mail/commit/8d79ff231cec394d4e90b2b429f1df8e55650936))\n* html message alignment ([7fde440](https://github.com/nextcloud/mail/commit/7fde440d186faf3bf7724144d56b169db7f03ade))\n* **imip:** hide warning about email mismatch for imip replies ([aca57c4](https://github.com/nextcloud/mail/commit/aca57c45338b542899c25ec02c6172bca66982fa))\n* **imip:** process imip messages more frequently ([881c2a5](https://github.com/nextcloud/mail/commit/881c2a593dffa9dfe3c30cdb0a59103ed1f02623))\n* invitation title on small screen ([d268bb8](https://github.com/nextcloud/mail/commit/d268bb8f5e7e5b4c2f68020a7033f9b02fdecf8a))\n* **l10n:** remove trailing space and allow RTL for drafts ([a9acabc](https://github.com/nextcloud/mail/commit/a9acabca1240eeb2d96c32611beed708e5a958c6))\n* **l10n:** Update translations from Transifex ([f341e23](https://github.com/nextcloud/mail/commit/f341e236d868d252d930f90d5aa407a9d775598f))\n* **l10n:** Update translations from Transifex ([7520191](https://github.com/nextcloud/mail/commit/7520191dfbc3b848bb990fd0c8dab0fcebc2ca8c))\n* **l10n:** Update translations from Transifex ([c9eb41d](https://github.com/nextcloud/mail/commit/c9eb41d382944c6293b222f9daff982836437d6f))\n* **l10n:** Update translations from Transifex ([34ee755](https://github.com/nextcloud/mail/commit/34ee75530288bda133637101eb5a5dad1f22a82e))\n* **l10n:** Update translations from Transifex ([be60d8b](https://github.com/nextcloud/mail/commit/be60d8bd43af9455a44e678bd06359a7cb9532c2))\n* **l10n:** Update translations from Transifex ([b1d0931](https://github.com/nextcloud/mail/commit/b1d0931b0d85fec5d76740446836f5d086d929da))\n* **l10n:** Update translations from Transifex ([0911657](https://github.com/nextcloud/mail/commit/0911657911162a5fec675b22b38510bde70fdc18))\n* **l10n:** Update translations from Transifex ([b0aa0c8](https://github.com/nextcloud/mail/commit/b0aa0c8edbf4c77d061976a2513e6d17a8fc7944))\n* **l10n:** Update translations from Transifex ([8d02123](https://github.com/nextcloud/mail/commit/8d021232fc5a74ebe9f706e4bd0f0c9d0b165ae0))\n* **l10n:** Update translations from Transifex ([4e860ae](https://github.com/nextcloud/mail/commit/4e860aed21035bd4dc49ea699c1fd25436cd3c4b))\n* **l10n:** Update translations from Transifex ([fe04747](https://github.com/nextcloud/mail/commit/fe047476f447551da02d066ee5f0d4015ae0ab94))\n* **l10n:** Update translations from Transifex ([6568fd8](https://github.com/nextcloud/mail/commit/6568fd8858fac930eb67e45c0fbea675439c21c1))\n* **l10n:** Update translations from Transifex ([a79ef67](https://github.com/nextcloud/mail/commit/a79ef6780061910d8010a5fb5d881656202f2f5d))\n* **l10n:** Update translations from Transifex ([2590c76](https://github.com/nextcloud/mail/commit/2590c76c2dbb8ea52435f6e648a51d104c590a0b))\n* **l10n:** Update translations from Transifex ([b741e2d](https://github.com/nextcloud/mail/commit/b741e2d0da217a63bcfd3cdbe0edfe97357b1824))\n* **l10n:** Update translations from Transifex ([45cbe3f](https://github.com/nextcloud/mail/commit/45cbe3f8ef9c3e855ddbeed2487811d767c8c0a0))\n* **l10n:** Update translations from Transifex ([ee76fff](https://github.com/nextcloud/mail/commit/ee76fffca11451414c40b60bad49e4486e49de81))\n* **l10n:** Update translations from Transifex ([4dd274f](https://github.com/nextcloud/mail/commit/4dd274ffe670e752b8ccaf0415e866e9f16b2744))\n* **l10n:** Update translations from Transifex ([6002661](https://github.com/nextcloud/mail/commit/600266130fd8d931e46359c4b8c18ca94b248a83))\n* **l10n:** Update translations from Transifex ([c92032c](https://github.com/nextcloud/mail/commit/c92032c7f08fcc59a223dc621a2ac218e43aa208))\n* **l10n:** Update translations from Transifex ([5d4a2be](https://github.com/nextcloud/mail/commit/5d4a2becb7e8bbce8788579af155a712f4933a60))\n* **l10n:** Update translations from Transifex ([5b2695e](https://github.com/nextcloud/mail/commit/5b2695e63cbc07dd56eae99a51b36d6745a67e56))\n* **l10n:** Update translations from Transifex ([3f79191](https://github.com/nextcloud/mail/commit/3f79191fdf2a68f164ded7233fa7da7eac056945))\n* **l10n:** Update translations from Transifex ([4e381eb](https://github.com/nextcloud/mail/commit/4e381ebbaf99b182867efcadef2f00fb596768de))\n* **l10n:** Update translations from Transifex ([5d13aac](https://github.com/nextcloud/mail/commit/5d13aacd343883b2c7ace01db7280a0664c0a6e4))\n* **l10n:** Update translations from Transifex ([d82e8f3](https://github.com/nextcloud/mail/commit/d82e8f3c3398ad54c921217f5b1238dc8683bebc))\n* **l10n:** Update translations from Transifex ([b8bcc35](https://github.com/nextcloud/mail/commit/b8bcc35a47105712031485bd0660503c709bafa9))\n* **l10n:** Update translations from Transifex ([98f36b1](https://github.com/nextcloud/mail/commit/98f36b146dd5ccc8ba6a22717349185a0429759a))\n* **l10n:** Update translations from Transifex ([a64a503](https://github.com/nextcloud/mail/commit/a64a50389ccb64786ad7078641d453468b6da152))\n* **l10n:** Update translations from Transifex ([3a7babe](https://github.com/nextcloud/mail/commit/3a7babefc2c3c76c69cc89caf4eb88f89b3c14cf))\n* **l10n:** Update translations from Transifex ([7e8dfe2](https://github.com/nextcloud/mail/commit/7e8dfe265a2a5ad9d767bcd062ebcd7fa3810971))\n* **l10n:** Update translations from Transifex ([e5de9ef](https://github.com/nextcloud/mail/commit/e5de9ef94d16d1c7605dd93d1ef71ceabdeb9bf4))\n* **l10n:** Update translations from Transifex ([5e1fb1c](https://github.com/nextcloud/mail/commit/5e1fb1c549ee5436974393f2a5a957b3094847c6))\n* **l10n:** Update translations from Transifex ([0e37608](https://github.com/nextcloud/mail/commit/0e376080c9bc14146fd0b1db06472c5aa47b64ab))\n* **l10n:** Update translations from Transifex ([1ad5068](https://github.com/nextcloud/mail/commit/1ad5068566ed773876a7f6c7a92baab925438fe1))\n* **l10n:** Update translations from Transifex ([ebfc9c0](https://github.com/nextcloud/mail/commit/ebfc9c0b13e558e88cf7e11677fb32354931ba1d))\n* **l10n:** Update translations from Transifex ([ddd3fd3](https://github.com/nextcloud/mail/commit/ddd3fd3e0318fc102dcb2dfd14e348408cda6181))\n* **l10n:** Update translations from Transifex ([899046c](https://github.com/nextcloud/mail/commit/899046c5345fc682f11f2c938f1971789fe5e9fe))\n* **l10n:** Update translations from Transifex ([e21d952](https://github.com/nextcloud/mail/commit/e21d9529f8659534c0645ab9b056094af1dafbcb))\n* **l10n:** Update translations from Transifex ([6ee4694](https://github.com/nextcloud/mail/commit/6ee4694cad7f8605e1df3951b9e15b627c611e77))\n* **l10n:** Update translations from Transifex ([8ddec2b](https://github.com/nextcloud/mail/commit/8ddec2b73fee49c931f05fc3e80fd1aa2c369c88))\n* **l10n:** Update translations from Transifex ([7f67183](https://github.com/nextcloud/mail/commit/7f67183afb452d490f705124b98f3e4930c1e3dd))\n* **l10n:** Update translations from Transifex ([646c18a](https://github.com/nextcloud/mail/commit/646c18a82da017dc0d1a0dc86f54015a90932e32))\n* **l10n:** Update translations from Transifex ([ac1afec](https://github.com/nextcloud/mail/commit/ac1afec69835c489c4f71266d8cb66495a57ba4d))\n* **l10n:** Update translations from Transifex ([31a5a3c](https://github.com/nextcloud/mail/commit/31a5a3c4e321f891470bd9b42211d8a0f9280b74))\n* **l10n:** Update translations from Transifex ([d8e8c0a](https://github.com/nextcloud/mail/commit/d8e8c0a7d8b9d256faa8e76e6764ae3342970637))\n* **l10n:** Update translations from Transifex ([ddb6ffb](https://github.com/nextcloud/mail/commit/ddb6ffb4754cf6290aa814e88e89738a2dd1faf3))\n* **l10n:** Update translations from Transifex ([9ab75d1](https://github.com/nextcloud/mail/commit/9ab75d104a0fee24fa02aa31d216fc74b0351726))\n* **l10n:** Update translations from Transifex ([497cb7e](https://github.com/nextcloud/mail/commit/497cb7e54e77cc4c675b43a25aafd57e58b66157))\n* **l10n:** Update translations from Transifex ([b01ef9a](https://github.com/nextcloud/mail/commit/b01ef9ab50e6cdbf1e6a0060c20aaa9cd9ff6186))\n* **l10n:** Update translations from Transifex ([5f70139](https://github.com/nextcloud/mail/commit/5f70139b99c827130cb6c2b58d1b29990eb08762))\n* **l10n:** Update translations from Transifex ([8cc0405](https://github.com/nextcloud/mail/commit/8cc0405371a59dca96eafd2dc5242ddef334e53e))\n* **l10n:** Update translations from Transifex ([3e67a02](https://github.com/nextcloud/mail/commit/3e67a025d0f7d17f11e84384bff2da22091f92d7))\n* **l10n:** Update translations from Transifex ([2956088](https://github.com/nextcloud/mail/commit/29560884296487375d06376251ef50eb20621476))\n* **l10n:** Update translations from Transifex ([2065780](https://github.com/nextcloud/mail/commit/2065780937de85c82a9fcbb4da664689687dfdff))\n* **l10n:** Update translations from Transifex ([c4ddfe3](https://github.com/nextcloud/mail/commit/c4ddfe3aa011b9aec0651ee891b69aaf6ce0774e))\n* **l10n:** Update translations from Transifex ([fdabd4a](https://github.com/nextcloud/mail/commit/fdabd4a217c424faf3a3a84f47fc4836af84d6a9))\n* **l10n:** Update translations from Transifex ([d4f1083](https://github.com/nextcloud/mail/commit/d4f10833dc3f04b45db0027cf3c6804d2295739f))\n* **l10n:** Update translations from Transifex ([1835be7](https://github.com/nextcloud/mail/commit/1835be760385d968bb3b089a454e5c668630d10d))\n* **l10n:** Update translations from Transifex ([f366a5d](https://github.com/nextcloud/mail/commit/f366a5dd0fc3a308f679dfbc96876a70b2d0b081))\n* **l10n:** Update translations from Transifex ([dea6367](https://github.com/nextcloud/mail/commit/dea63678030c407b81d5aaa19bfeee938a3cbdc3))\n* **l10n:** Update translations from Transifex ([f559247](https://github.com/nextcloud/mail/commit/f559247a9a1f3ffc3be1ec9147a3005803796683))\n* **l10n:** Update translations from Transifex ([4535685](https://github.com/nextcloud/mail/commit/4535685d63e02cb95a65db799c7d6be760f7846c))\n* list layout height ([006fe78](https://github.com/nextcloud/mail/commit/006fe78cc1e666ecc57169bededb5cb2824d4514))\n* load-more button alignment ([1a56aa2](https://github.com/nextcloud/mail/commit/1a56aa29f790b9e4866fd3f161729524753a469f))\n* mail heading on settings shouldnt be skipped ([c34fb46](https://github.com/nextcloud/mail/commit/c34fb46e0cfbaf41a756948a8a8ac903ee5aaeeb))\n* mailvelope button colour text ([5aff985](https://github.com/nextcloud/mail/commit/5aff9858bc3096ce1010fa76a448bb1e0ee1b0f1))\n* make accounts property reactive ([6054a9a](https://github.com/nextcloud/mail/commit/6054a9a943dadfe177ff7418e6a1fafc078cbc40))\n* make saving account settings work again ([9740e56](https://github.com/nextcloud/mail/commit/9740e5618fef1b7d51831572dfa82f56f44204fd))\n* moving messages without a message id on servers without UIDPLUS ([1c8a90e](https://github.com/nextcloud/mail/commit/1c8a90ed5f526c05079efb1ffeca373bb0abb4c2))\n* **outbox:** outbox do not render ([31be037](https://github.com/nextcloud/mail/commit/31be037d648adc605e7ea1ec2d16648eea297ad1))\n* prevent invalid return type ([172de5e](https://github.com/nextcloud/mail/commit/172de5e3445b8be9b06ab118e9ebdf6e84a8a21c))\n* recipient length is undefined ([f0b07b8](https://github.com/nextcloud/mail/commit/f0b07b88d96834c3d1ba6b1417800c3ec9ced7ac))\n* remove redendant css ([afd7741](https://github.com/nextcloud/mail/commit/afd774184f731a751240cadcafcaee381180af39))\n* remove source editing plugin ([070013d](https://github.com/nextcloud/mail/commit/070013dc97d053083581305182b6a45e7fcde181))\n* remove unused and broken computed menu property ([2359051](https://github.com/nextcloud/mail/commit/23590514ccc7f8d1cefd6a20bbb7fae11aa6f7a7))\n* rename collapse label ([b36dfb6](https://github.com/nextcloud/mail/commit/b36dfb6b474bcdc231d0ca96ebcde685cdb6842e))\n* **smime:** only accept certificates and keys in file input ([9778add](https://github.com/nextcloud/mail/commit/9778addf9ce767645518c112693d5f6bd804ed46))\n* **smime:** persist sign preference per alias ([4863f96](https://github.com/nextcloud/mail/commit/4863f96d3b75d792d211f9ed28f25db049e9dca2))\n* text block wording / spelling ([891d4dd](https://github.com/nextcloud/mail/commit/891d4dd34b3ea102d6107220853d13bdbb711eb3))\n* **uid:** switch back from unread circle to dot ([0ee8f3c](https://github.com/nextcloud/mail/commit/0ee8f3cf790b722ca49defe5856fdb7c35e0601d))\n* **uid:** use outline erasor icon for clear mailbox action ([dd27fa5](https://github.com/nextcloud/mail/commit/dd27fa5cdb6c06af2cc4d47ff6131a52d3ff115f))\n* **ui:** flip unread icons for envelopes ([3b6f756](https://github.com/nextcloud/mail/commit/3b6f75682ce5686a57d774f55d06215e6dd21574))\n* **ui:** give file pickers a name ([a1a4ca0](https://github.com/nextcloud/mail/commit/a1a4ca0251939d03abd50becdeab23f63a92a61a))\n* **ui:** go back to filled icons for selection and confirmation icons ([1adecd1](https://github.com/nextcloud/mail/commit/1adecd1bd3ab449dd38b358ae8f695ba64798045))\n* **ui:** make composer link attachments icon size wider ([de6ab08](https://github.com/nextcloud/mail/commit/de6ab08dd3c3b6663872ee2c12e5e540e7c12790))\n* **ui:** replace deprecated iframe resizer attribute ([d74cf2d](https://github.com/nextcloud/mail/commit/d74cf2dd7938df3842ed5e85609a37550d55a60b))\n* **ui:** show only drafts with draft prefix ([edba111](https://github.com/nextcloud/mail/commit/edba1114aa1c223331776ea2f53ae330176105ec))\n* **ui:** use filled/outline icon for the important flag ([20c57d9](https://github.com/nextcloud/mail/commit/20c57d9cc273b52b8d0242327f8cab1cab8a96ff))\n* **ui:** use outline icon for archiving actions ([a2fb5d6](https://github.com/nextcloud/mail/commit/a2fb5d640678f3fc0f88acc910a22345abb7b46f))\n* update summarizeMessages-prompt to hide any introduction ([#11278](https://github.com/nextcloud/mail/issues/11278)) ([49c83e4](https://github.com/nextcloud/mail/commit/49c83e4ba32af8b86c9644da35ec9dedfaddec33))\n\n\n### Features\n\n* add more formatting features on ckeditor ([60d0ed6](https://github.com/nextcloud/mail/commit/60d0ed637f2ac15d7af6902bd4afe23af4b13007))\n* add OCS routes for mailbox and mail listing ([0b86510](https://github.com/nextcloud/mail/commit/0b86510877a97236c5f81bbad3bb3a1deb2e657c))\n* Allow disabling of threaded view ([084cc67](https://github.com/nextcloud/mail/commit/084cc6768aa3f118c4b233b68b57eee5d698818d))\n* change mailbox text to folder ([9287321](https://github.com/nextcloud/mail/commit/9287321f9bdf0e5ea9d50b38a0ea927b5061a9ee))\n* **composer:** suggest recipients from own identities ([6fc54b4](https://github.com/nextcloud/mail/commit/6fc54b4c246ce6083fe3b5755e44eb6a134f2132))\n* make message source modal larger ([e397eb3](https://github.com/nextcloud/mail/commit/e397eb385b101e8ed358f8f5fe10b965d3051c7a))\n* **sieve:** create a mail filter from a message ([11b2d07](https://github.com/nextcloud/mail/commit/11b2d070f661c852dfb4f1332e062be3f226bdbe))\n* start loading additional envelopes earlier ([3663164](https://github.com/nextcloud/mail/commit/36631649f354b8ff5d04cf24634de06586a067de))\n* text blocks ([fcbfc63](https://github.com/nextcloud/mail/commit/fcbfc63cca57f2f6bdb0d309b428606193ddca68))\n* thread list shouldnt reload when searching ([665b3dd](https://github.com/nextcloud/mail/commit/665b3dd000d244b450658fed64bc6231c1c25f25))\n* **ui:** switch to outline icons where possible ([e55bf97](https://github.com/nextcloud/mail/commit/e55bf97db580a14d9b218e87cf8f2f23b1be5242))\n\n\n### Performance Improvements\n\n* cache pre-fetched mailboxes on the HTTP level ([0c4ac27](https://github.com/nextcloud/mail/commit/0c4ac2724a525aa52924233713e7f9c5b458f1d0))\n* improve quota loading for accounts ([2a9b9ae](https://github.com/nextcloud/mail/commit/2a9b9aed4229ab702f08f966bd4cb3c2b7d53ea8))\n* prefetch other mailboxes in the background ([2957ec5](https://github.com/nextcloud/mail/commit/2957ec50b375e19633dd6ef4e0b936f160300de1))\n* reduce number of avatar requests ([9e08477](https://github.com/nextcloud/mail/commit/9e08477c5cb515edcdeed81944aca009e902b51d))\n\n\n\n# [5.2.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.0.0-dev.1...v5.2.0-alpha.1) (2025-05-20)\n\n\n### Bug Fixes\n\n* ckeditor buttons dont show up correctly ([567e8b0](https://github.com/nextcloud/mail/commit/567e8b0157793d3ae0e836331bba4ff78749cdcc))\n* **composer:** handling of plain and html bodies ([58c48ad](https://github.com/nextcloud/mail/commit/58c48ad0f20ac1487dcd0cf653b0a3a52506f45c))\n* define appName and app version ([1938df0](https://github.com/nextcloud/mail/commit/1938df0e62cced0244fb3ac364bbb279a86497d8))\n* **deps:** Apply npm audit fix ([c73ec4d](https://github.com/nextcloud/mail/commit/c73ec4d1596571bf08ee6d3e2b19cd55efba4217))\n* **deps:** bump @iframe-resizer/child from 5.4.2 to ^5.4.4 (main) ([#10981](https://github.com/nextcloud/mail/issues/10981)) ([42eaa20](https://github.com/nextcloud/mail/commit/42eaa20014667443471af4546c64b4ab5be14fd1))\n* **deps:** bump @iframe-resizer/child from 5.4.4 to ^5.4.5 (main) ([#11020](https://github.com/nextcloud/mail/issues/11020)) ([a40ed7b](https://github.com/nextcloud/mail/commit/a40ed7bbcef0c6d73f8ef805122f5942031a63d3))\n* **deps:** bump @iframe-resizer/child from 5.4.5 to ^5.4.6 (main) ([#11044](https://github.com/nextcloud/mail/issues/11044)) ([1059d5a](https://github.com/nextcloud/mail/commit/1059d5a241d9305d17ce7a1e6a26901c6c22f9f9))\n* **deps:** bump @iframe-resizer/parent from 5.4.3 to ^5.4.4 (main) ([#10982](https://github.com/nextcloud/mail/issues/10982)) ([e6b685c](https://github.com/nextcloud/mail/commit/e6b685c35676761d1201e743804ca6418c385234))\n* **deps:** bump @iframe-resizer/parent from 5.4.4 to ^5.4.5 (main) ([#11021](https://github.com/nextcloud/mail/issues/11021)) ([c9f315b](https://github.com/nextcloud/mail/commit/c9f315ba6073d98b57893d0f91a1296b118569a1))\n* **deps:** bump @iframe-resizer/parent from 5.4.5 to ^5.4.6 (main) ([#11045](https://github.com/nextcloud/mail/issues/11045)) ([6d3e064](https://github.com/nextcloud/mail/commit/6d3e06430f71f097670a611402d398797f36e960))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 (main) ([#11138](https://github.com/nextcloud/mail/issues/11138)) ([3377509](https://github.com/nextcloud/mail/commit/33775097ecf80c2ae0ef3eee89c209a24077b9d6))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.2.0 ([4fff529](https://github.com/nextcloud/mail/commit/4fff529156ca9c8892bb3c7dc93b230d07b92927))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 (main) ([#11098](https://github.com/nextcloud/mail/issues/11098)) ([2df3423](https://github.com/nextcloud/mail/commit/2df3423153dc8aad40dfc9a54227f049711f58a9))\n* **deps:** bump @nextcloud/vue from 8.23.1 to ^8.25.1 ([3d96e54](https://github.com/nextcloud/mail/commit/3d96e54a032a4e089aa70bdccad002246450aab9))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([986ca1c](https://github.com/nextcloud/mail/commit/986ca1c273427030d1c90b020b28d72a6bd77aaf))\n* **deps:** bump @nextcloud/vue from 8.26.0 to ^8.26.1 ([d66a6b0](https://github.com/nextcloud/mail/commit/d66a6b09eb906f7e7939fad6e089e7c3872e0db4))\n* **deps:** bump bytestream/horde-imap-client from 2.33.5 to ^2.33.6 (main) ([#11099](https://github.com/nextcloud/mail/issues/11099)) ([ebdb084](https://github.com/nextcloud/mail/commit/ebdb084abfb774d7f18554091c659585cf6b369d))\n* **deps:** bump calendar-js and timezones ([e8a79d7](https://github.com/nextcloud/mail/commit/e8a79d7b5cbf888fd242aac68468c930af382a9e))\n* **deps:** bump core-js from 3.41.0 to ^3.42.0 (main) ([#11092](https://github.com/nextcloud/mail/issues/11092)) ([c0c4beb](https://github.com/nextcloud/mail/commit/c0c4bebfc0fca4153023e639d6d49ae794c2745d))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.5 (main) ([#11005](https://github.com/nextcloud/mail/issues/11005)) ([6a72602](https://github.com/nextcloud/mail/commit/6a726028d9cc8412d4e969c1e12fbced0ab7a1f6))\n* **deps:** bump iframe-resizer from 5.3.3 to ^5.4.6 (main) ([#11093](https://github.com/nextcloud/mail/issues/11093)) ([e4f36be](https://github.com/nextcloud/mail/commit/e4f36be14c6b9d51a84f85c05ee949cf59d21abd))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.1 to ^6.4.0 (main) ([#11106](https://github.com/nextcloud/mail/issues/11106)) ([aaae668](https://github.com/nextcloud/mail/commit/aaae668160421df359e699641e9f7081b8a73483))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to v2 ([e716eea](https://github.com/nextcloud/mail/commit/e716eeaa04ef5618b824117e54a92b4b6e6207f8))\n* **deps:** bump stylelint from 16.16.0 to ^16.19.1 (main) ([#11102](https://github.com/nextcloud/mail/issues/11102)) ([eec3762](https://github.com/nextcloud/mail/commit/eec376250ee2b1a4042cb2268ae0005928b0a504))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 44.2.1 to 44.2.1 ([1684833](https://github.com/nextcloud/mail/commit/16848331e0896068e6858a863ffa77171e4edbe2))\n* **deps:** update ckeditor dev utils to 44 ([22a8e56](https://github.com/nextcloud/mail/commit/22a8e56dd32edb7bf973a4b91c300e33229c9c41))\n* **deps:** update vulnerable babel packages ([4c9d2c1](https://github.com/nextcloud/mail/commit/4c9d2c1de566ec41f38c71aef6c800223e48e994))\n* **dns:** Update public suffix list ([19806ea](https://github.com/nextcloud/mail/commit/19806ea55be671cad2f5050f804e3be7e651ce97))\n* **dns:** Update public suffix list ([495a20c](https://github.com/nextcloud/mail/commit/495a20cb6440b425cfcff96449ec20f5a0a7e51a))\n* **dns:** Update public suffix list ([228c719](https://github.com/nextcloud/mail/commit/228c71973ea28c614e5e8835b0426365fe031a7a))\n* don't show important or unread emails in trash ([ce2f949](https://github.com/nextcloud/mail/commit/ce2f9497f9a76c27d550a9bb9177eb4067a5eee9))\n* handle recurring events and show better message to user ([a7dce92](https://github.com/nextcloud/mail/commit/a7dce926c8a649b7c980394b29b52315a96d0c65))\n* **imap:** handle password decryption exception ([033433b](https://github.com/nextcloud/mail/commit/033433bc497ef14f33417ddbee93e6252578032a))\n* **imip:** use default calendar if possible ([3cdd8d3](https://github.com/nextcloud/mail/commit/3cdd8d3fcf92d0764f4c94c6014348aa0cf160dc))\n* **l10n:** Update translations from Transifex ([452383d](https://github.com/nextcloud/mail/commit/452383da63f708a1579fc691e4b891c14df9792a))\n* **l10n:** Update translations from Transifex ([df74690](https://github.com/nextcloud/mail/commit/df746905e779c8875c00ad5b929310e5333717be))\n* **l10n:** Update translations from Transifex ([6fbdad0](https://github.com/nextcloud/mail/commit/6fbdad0de9ec3c5175492a27d6f759f51aedd4a6))\n* **l10n:** Update translations from Transifex ([e8d3dbf](https://github.com/nextcloud/mail/commit/e8d3dbf6e5aba9be730f8fccd97bae7bb91de959))\n* **l10n:** Update translations from Transifex ([ccc4223](https://github.com/nextcloud/mail/commit/ccc422353ca91583ff63470f13c0c6c0993ef403))\n* **l10n:** Update translations from Transifex ([a51a5e0](https://github.com/nextcloud/mail/commit/a51a5e0fa825e5dcae81f92a08ce7dfef053c413))\n* **l10n:** Update translations from Transifex ([3de2615](https://github.com/nextcloud/mail/commit/3de2615c20d7e541b5706c2d5e221a09a4b6badf))\n* **l10n:** Update translations from Transifex ([a74e4d9](https://github.com/nextcloud/mail/commit/a74e4d93b0c9e4934eb12565133faf905df0e570))\n* **l10n:** Update translations from Transifex ([6c19578](https://github.com/nextcloud/mail/commit/6c195780892e916c360a07fd191ad1196e4878bf))\n* **l10n:** Update translations from Transifex ([0874560](https://github.com/nextcloud/mail/commit/08745605bbaa978259473cdccc5d3769d760b341))\n* **l10n:** Update translations from Transifex ([7bbcb29](https://github.com/nextcloud/mail/commit/7bbcb294612776ee56f685335b2376f0f682bc20))\n* **l10n:** Update translations from Transifex ([bae559f](https://github.com/nextcloud/mail/commit/bae559f86be5e14a01803ab14fd4e3d8620bb93c))\n* **l10n:** Update translations from Transifex ([20710d4](https://github.com/nextcloud/mail/commit/20710d41abedcf8a3a3fc0e05fd1a1fcfd1cb3a1))\n* **l10n:** Update translations from Transifex ([df20def](https://github.com/nextcloud/mail/commit/df20def233fe29f47a2a9f1a190a56a047ac88be))\n* **l10n:** Update translations from Transifex ([d07aed4](https://github.com/nextcloud/mail/commit/d07aed4ef3323e63d52b38eeb8caa429998d6ca1))\n* **l10n:** Update translations from Transifex ([ecbb3da](https://github.com/nextcloud/mail/commit/ecbb3dadf5ec8618e5dd539b2c229611c6a87a7f))\n* **l10n:** Update translations from Transifex ([cfce105](https://github.com/nextcloud/mail/commit/cfce1058c549eacb5b88f2baaaadc8dd37c8c35a))\n* **l10n:** Update translations from Transifex ([82fabe2](https://github.com/nextcloud/mail/commit/82fabe2fb5b1df86e12f9b7ac5c7b5df8a421fe0))\n* **l10n:** Update translations from Transifex ([a445ac0](https://github.com/nextcloud/mail/commit/a445ac09c8bdf5ae58e8a3ee9f6a4eb07b923159))\n* **l10n:** Update translations from Transifex ([c96ec6e](https://github.com/nextcloud/mail/commit/c96ec6e3fd719734c51430a42a680dbb7dc1b279))\n* **l10n:** Update translations from Transifex ([c59cf84](https://github.com/nextcloud/mail/commit/c59cf8449f9cef249443fcc911acb531bb386f0f))\n* **l10n:** Update translations from Transifex ([49fbc16](https://github.com/nextcloud/mail/commit/49fbc16089325d4a549a4a20e7c6f9a98c5dc1e4))\n* **l10n:** Update translations from Transifex ([a59c212](https://github.com/nextcloud/mail/commit/a59c212ebf9905bc10b12f706e1d096cc080e18d))\n* **l10n:** Update translations from Transifex ([fece38e](https://github.com/nextcloud/mail/commit/fece38e43091817273dbdfcfb75214e005fbed3f))\n* **l10n:** Update translations from Transifex ([abf1c6b](https://github.com/nextcloud/mail/commit/abf1c6b2b30939dc2ea742ae81653e537c336485))\n* **l10n:** Update translations from Transifex ([4a35bdd](https://github.com/nextcloud/mail/commit/4a35bdd379f1459228a47611ea0e03a37d28f41d))\n* **l10n:** Update translations from Transifex ([8a205d0](https://github.com/nextcloud/mail/commit/8a205d087885f74f7af092bf45d6e2d2d9ddc669))\n* **l10n:** Update translations from Transifex ([39faeeb](https://github.com/nextcloud/mail/commit/39faeebe71789e0c7babe62cad072d439e6e1622))\n* **l10n:** Update translations from Transifex ([835327e](https://github.com/nextcloud/mail/commit/835327eaa4b4fa33a060fcb8a2e760f36c7e0335))\n* mark envelope as unseen via shortcut ([35f1d1d](https://github.com/nextcloud/mail/commit/35f1d1dacada93a1198b82b3e32128467cfa45d2))\n* **mime:** ignore HTML parsing errors consistently ([0b682eb](https://github.com/nextcloud/mail/commit/0b682eb1ee1d5b61d818f478c4e457dd5391c3f7))\n* moving nested mailboxes ([41f3378](https://github.com/nextcloud/mail/commit/41f3378cbc6c2f10a6716e8d8f75eee2f3a5a878))\n* patchAccountiMutation is not defined ([a33f3b7](https://github.com/nextcloud/mail/commit/a33f3b7bdb085f0c9d8f14a1afcad7bead4858fa))\n* **phishing:** strip exactly 1 character from the end of a link string to remove brackets ([c646917](https://github.com/nextcloud/mail/commit/c64691795b497a1ab0961d4c7e9830153be43b2a))\n* prevent dragging mailboxes ([7b69ed3](https://github.com/nextcloud/mail/commit/7b69ed338b500233eb7f830a972b964c774977f0))\n* preview enhancement process job does not process messages ([680b90d](https://github.com/nextcloud/mail/commit/680b90dc7d5c7843f2755a9e60722eecc042f46d))\n* show submailboxes for filtering ([4874ee4](https://github.com/nextcloud/mail/commit/4874ee4bf7f3192e7dc98ee9165773d74e894c32))\n* show warning when creating a mailbox fails ([ecc47e0](https://github.com/nextcloud/mail/commit/ecc47e05331204f07e6ed8d4dc62eca1c55e6922))\n* **smime:** handle encoding properly when signing and encrypting ([f12ffe5](https://github.com/nextcloud/mail/commit/f12ffe50a6ebae6501d9aa798fb3959884693755))\n* **smime:** use proper binary encoding when signing messages ([646bdae](https://github.com/nextcloud/mail/commit/646bdae4ae7373783069eb6d83fa2c73d22f9ea5))\n* **ui:** handle error when saving email attachments to Files ([e4a625c](https://github.com/nextcloud/mail/commit/e4a625c459757f9622e0e31ab369ec10732f545d))\n* Undefined array key issue ([00e65cf](https://github.com/nextcloud/mail/commit/00e65cf8d8c167693662d3c7a9774988ae8f6cfe))\n* use alias name for from header ([c7a1724](https://github.com/nextcloud/mail/commit/c7a17248fd33d21cb745eda46b400faa24be2cb6))\n\n\n### Features\n\n* close modal on send ([073038d](https://github.com/nextcloud/mail/commit/073038dd4bb79c654e64167bd93416af908b4337))\n* enable account debugging for sieve ([3a9385e](https://github.com/nextcloud/mail/commit/3a9385e058d614e59dd56cb1dfdae64a7fac412c))\n* per account imap and smtp debugging ([95a96c5](https://github.com/nextcloud/mail/commit/95a96c51ea77244bb9a946a9a91a554e4907ac8f))\n\n\n### Performance Improvements\n\n* don't show skeleton for cached mailboxes ([d5b5ae5](https://github.com/nextcloud/mail/commit/d5b5ae5eb0b05b41be6656edebc9707b616d5974))\n* **imap:** avoid double login during mailbox sync ([221404a](https://github.com/nextcloud/mail/commit/221404a4108f09d3314535e3dcab80d046a01d7d))\n* reuse a single imap client for the whole send chain ([01ea8be](https://github.com/nextcloud/mail/commit/01ea8bed7188145b713dbab198fc974f8f20876b))\n* skip message skeleton if it is cached ([cd2603d](https://github.com/nextcloud/mail/commit/cd2603d7610c883785acca620fde2703668b0c8d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* **db:** Do not JOIN recipients when fetching the latest messages ([b6e5255](https://github.com/nextcloud/mail/commit/b6e52559fa1fec5eee700cd4a53d57f7390f1538))\n* **deps:** bump @iframe-resizer/child from 5.3.3 to ^5.4.2 (main) ([#10955](https://github.com/nextcloud/mail/issues/10955)) ([187a963](https://github.com/nextcloud/mail/commit/187a963720946c3ddfd734507efd1f9601c216c4))\n* **deps:** bump @iframe-resizer/parent from 5.3.3 to ^5.4.3 (main) ([#10956](https://github.com/nextcloud/mail/issues/10956)) ([b9a7373](https://github.com/nextcloud/mail/commit/b9a73732f10d9bf883c006b00a9fc6c55c0b5780))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 (main) ([#10926](https://github.com/nextcloud/mail/issues/10926)) ([9d384ce](https://github.com/nextcloud/mail/commit/9d384ce3b9e665b1b9e3f0c4167758ed955c5905))\n* **deps:** bump sabberworm/php-css-parser from 8.7.0 to ^8.8.0 (main) ([#10927](https://github.com/nextcloud/mail/issues/10927)) ([998aad8](https://github.com/nextcloud/mail/commit/998aad8167e5eeeb0f8bbaab8379d2a2318f9156))\n* **dns:** Update public suffix list ([0d2f328](https://github.com/nextcloud/mail/commit/0d2f32877025dd52b16aa06e99f4494c90ce7d89))\n* dont summerize empty messages ([24f44f4](https://github.com/nextcloud/mail/commit/24f44f48a8e0af3a26ad90cd038901da0ca8b9da))\n* **imap:** Avoid OOM when syncing sparse mailboxes ([4d288d1](https://github.com/nextcloud/mail/commit/4d288d1096bc8cec4ff2cde38735d09b6eab922c))\n* multiselect when you hold shift ([1e40683](https://github.com/nextcloud/mail/commit/1e40683ec09b02b0269d73fe2d0236691335b8cf))\n* printing email threads and singular emails ([3b22ed5](https://github.com/nextcloud/mail/commit/3b22ed5752c0065c50643eb8591661f41b06df65))\n* translation strings in printing feature ([#10944](https://github.com/nextcloud/mail/issues/10944)) ([b293310](https://github.com/nextcloud/mail/commit/b29331032977013e62cae510d531338922703037))\n\n\n### Features\n\n* **deps:** Add PHP8.4 support ([9ce0e6d](https://github.com/nextcloud/mail/commit/9ce0e6d5923ebbcf7dac6f2423d18f172b0d6bb8))\n* **deps:** Add PHP8.4 support ([eb75307](https://github.com/nextcloud/mail/commit/eb753074fa5e6b8efd2bac2366fc3336e597984d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* add title for composer actions ([d8095ff](https://github.com/nextcloud/mail/commit/d8095ffbc1f4f9987a939b51001b53a0777e3cd7))\n* Adjust TaskProcessingListener ([4ee353b](https://github.com/nextcloud/mail/commit/4ee353bea1476e2f9aeaacd5746dd7529efc0ca5))\n* Adjust TaskProcessingListener Again ([f0758c8](https://github.com/nextcloud/mail/commit/f0758c8ee6c9c9813abcc8eb54f6d912063da868))\n* allow to send attachment without setting disposition ([5fe5275](https://github.com/nextcloud/mail/commit/5fe5275c8b8b5ea648b39e346b0e1b88693e814b))\n* apostrophe issue ([032a0bf](https://github.com/nextcloud/mail/commit/032a0bf02617df793542156a0c1ded805b61d08b))\n* better help text when sieve is not enabled ([a7177b3](https://github.com/nextcloud/mail/commit/a7177b32fa882dcea0bb3ac2f015cfc8d8594073))\n* change status code from 404 to 204 for missing avatars ([92bf4ef](https://github.com/nextcloud/mail/commit/92bf4ef422c3d4fcdde0e3538dd81e020b008346))\n* **CKEditor:** show mentions ([974e964](https://github.com/nextcloud/mail/commit/974e96437796c6ba9f1c5c40886a2357f2b39f96))\n* **db:** Allow long references ([3814786](https://github.com/nextcloud/mail/commit/38147868b63719c666ba6dea05b9f55deef91c46))\n* **db:** Catch message IDs that are too long ([147d694](https://github.com/nextcloud/mail/commit/147d69436a56ee645880575cbaf0a458096d038c))\n* decoding preview texts ([945b4a2](https://github.com/nextcloud/mail/commit/945b4a2b3156ce13b4dc8c7fd4f86a121146a6c1))\n* deprecation warning ([9e6fd29](https://github.com/nextcloud/mail/commit/9e6fd2931d9c77e62658f2e491d963f663cfc622))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 (main) ([#10789](https://github.com/nextcloud/mail/issues/10789)) ([93f5fa1](https://github.com/nextcloud/mail/commit/93f5fa11823140870f6ce6b472d158a9b9628124))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.2 (main) ([#10595](https://github.com/nextcloud/mail/issues/10595)) ([77cf0ed](https://github.com/nextcloud/mail/commit/77cf0ed65e1f9b8b350b0ea06bbf1b57e690b897))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([7ab0d99](https://github.com/nextcloud/mail/commit/7ab0d996aee86ebb342cc0d32913191d59b11095))\n* **deps:** bump @pinia/testing from 0.1.7 to ^0.1.7 ([354d684](https://github.com/nextcloud/mail/commit/354d684e2ae3411b577178c613ce3a7d6fe7e3ef))\n* **deps:** bump address-rfc2822 from 2.2.2 to ^2.2.3 (main) ([#10597](https://github.com/nextcloud/mail/issues/10597)) ([d2d654d](https://github.com/nextcloud/mail/commit/d2d654d6dd18333610a3ba5e5f8df29d23c441e0))\n* **deps:** bump bytestream/horde-imap-client from 2.33.3 to ^2.33.4 (main) ([#10598](https://github.com/nextcloud/mail/issues/10598)) ([54150fd](https://github.com/nextcloud/mail/commit/54150fd0df374a258c19b0193781f48e82bd056c))\n* **deps:** bump bytestream/horde-imap-client from 2.33.4 to ^2.33.5 (main) ([#10828](https://github.com/nextcloud/mail/issues/10828)) ([984b3bf](https://github.com/nextcloud/mail/commit/984b3bf6d8e139f106c51840ab5489714ddf7a81))\n* **deps:** Bump ckeditor from 38.1.1 t0 39.0.2 ([0aee4df](https://github.com/nextcloud/mail/commit/0aee4dfd312620a3a197fa0787379f4cfb4031dc))\n* **deps:** bump ckeditor from v40 to v41 ([f7dac82](https://github.com/nextcloud/mail/commit/f7dac82d0dd6631d1f7f1ddabac0371e6a686b5a))\n* **deps:** bump ckeditor v41 to v43 ([5482184](https://github.com/nextcloud/mail/commit/5482184cd6c77060c19dcfdf1b49134f53fabf7b))\n* **deps:** bump ckeditor v43 to latest ([89d5a21](https://github.com/nextcloud/mail/commit/89d5a210ccdbe07dde8547cc766d5be42ae4547f))\n* **deps:** bump core-js from 3.39.0 to ^3.40.0 (main) ([#10623](https://github.com/nextcloud/mail/issues/10623)) ([f8d8b04](https://github.com/nextcloud/mail/commit/f8d8b040b0bc70ed6c7e369fb6cb5d329ab20b28))\n* **deps:** bump core-js from 3.40.0 to ^3.41.0 (main) ([#10819](https://github.com/nextcloud/mail/issues/10819)) ([e6bafb3](https://github.com/nextcloud/mail/commit/e6bafb371adac9e48f5443a812a91859b1125f99))\n* **deps:** bump dompurify from 3.2.3 to ^3.2.3 (main) ([#10618](https://github.com/nextcloud/mail/issues/10618)) ([7f28b26](https://github.com/nextcloud/mail/commit/7f28b267f5727e92a754eeadec5302bca3a413b0))\n* **deps:** bump dompurify from 3.2.3 to v3.2.4 (main) ([#10702](https://github.com/nextcloud/mail/issues/10702)) ([26f784f](https://github.com/nextcloud/mail/commit/26f784ff20ae107cdc5a29a310314ea4b2e96455))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.4 (main) ([#10790](https://github.com/nextcloud/mail/issues/10790)) ([58d636c](https://github.com/nextcloud/mail/commit/58d636c26f40ae77bf2bd99276dfd0167448199a))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 (main) ([#10619](https://github.com/nextcloud/mail/issues/10619)) ([18c6354](https://github.com/nextcloud/mail/commit/18c6354b9214d9e74c028d911231c8ffac78ae85))\n* **deps:** bump psr/log from 3.0.2 to ^3.0.2 (main) ([#10806](https://github.com/nextcloud/mail/issues/10806)) ([629cb59](https://github.com/nextcloud/mail/commit/629cb59f7204d21c3f6c1bcca139f844916695be))\n* **deps:** bump stylelint from 16.11.0 to ^16.15.0 (main) ([#10820](https://github.com/nextcloud/mail/issues/10820)) ([e8371d3](https://github.com/nextcloud/mail/commit/e8371d3faa11966de99e3d0fb61096473163a72b))\n* **deps:** bump stylelint from 16.15.0 to ^16.16.0 (main) ([#10908](https://github.com/nextcloud/mail/issues/10908)) ([9d66ff5](https://github.com/nextcloud/mail/commit/9d66ff53cd49521768f52e64545575188027b414))\n* **deps:** Do not ship psr/log ([2f8f9bd](https://github.com/nextcloud/mail/commit/2f8f9bdbd9ec6c40fd8fe26e340da9279d74097f))\n* detect imip messages from outlook.com ([b965355](https://github.com/nextcloud/mail/commit/b96535569a5ffdf59292f8032896f4e5e5662f4c))\n* **dns:** Update public suffix list ([76cc21f](https://github.com/nextcloud/mail/commit/76cc21f94b2af56064341774f2612325dd171647))\n* **dns:** Update public suffix list ([692512b](https://github.com/nextcloud/mail/commit/692512bf8f0994985c552c70e254dd301f947411))\n* **dns:** Update public suffix list ([e981844](https://github.com/nextcloud/mail/commit/e981844ec685867fccb35fe2075e9794c40a9d67))\n* go back warining discards the reply text ([72d6a53](https://github.com/nextcloud/mail/commit/72d6a532be1dd2852612a194801f2654257206de))\n* handle 204 response ([0014941](https://github.com/nextcloud/mail/commit/0014941d48c199ced1d23bdca05fb09af4c6e572))\n* handle utf-8 strings correctly in the link detection ([d219cee](https://github.com/nextcloud/mail/commit/d219cee47b6619e27300b8ce3238b834ea946e3b))\n* harden phishing detection against missing and malformed headers ([f8338e6](https://github.com/nextcloud/mail/commit/f8338e6fa6520b5d13823af38c0be704d141627c))\n* html5 errors ([fb4fae1](https://github.com/nextcloud/mail/commit/fb4fae1863ccea0aec70bd187748b02710f4bac0))\n* **imap:** Sync mailboxes without a status ([2317686](https://github.com/nextcloud/mail/commit/2317686c91a4ec85d7e7b63914b89934cb176bf3))\n* import for getTimezoneManager ([18589f7](https://github.com/nextcloud/mail/commit/18589f703ca24cbbd39d14abe972805b7d73bb1f))\n* **mention:** Do not force SAB ([bad5a00](https://github.com/nextcloud/mail/commit/bad5a00ac570ec6af41bf531acf8a78adf96ede9))\n* **message-summary:** respect admin config ([a7434c4](https://github.com/nextcloud/mail/commit/a7434c40ec59ef928c5baaebdd77cd51bcad0b6a))\n* messagen content escaping message element ([8089ccb](https://github.com/nextcloud/mail/commit/8089ccb0f3915d57520458ecf0ce8729341cfbd4))\n* migrate preferences to initial state ([0cfce5c](https://github.com/nextcloud/mail/commit/0cfce5ce991eb830d3953d870b957ac616d012cb))\n* **migration:** make misc migrations idempotent ([d856a60](https://github.com/nextcloud/mail/commit/d856a6005c453e2cd91666941897aed3ca9cbf33))\n* outbox message not being cleared after sending ([93a5c5a](https://github.com/nextcloud/mail/commit/93a5c5a1f7b5aa32a7269ff5f4a83fd0c5aa6ea2))\n* **phishing:** Do not force the SAB ([78c2c4c](https://github.com/nextcloud/mail/commit/78c2c4cdcc08e1440a8c1b5e1073f99037ef2b4b))\n* **phishing:** Uninitialized string offset error ([fdbbc62](https://github.com/nextcloud/mail/commit/fdbbc623637f94a326f1b90166f54be8d176d792))\n* recipient label should not contain email address ([3a0ab5a](https://github.com/nextcloud/mail/commit/3a0ab5a1f131a4ae039dd43da84793f8edfff9b1))\n* reloading recipeint info when you expand and collapse the composer ([9b213ec](https://github.com/nextcloud/mail/commit/9b213ecb7a85ec22856faf345bbd582bca43c5e3))\n* remove photo property from groups integration ([66ddbd3](https://github.com/nextcloud/mail/commit/66ddbd32d9deb88d46f8e7afbd9949107ed74f06))\n* reset filter does not work ([f0e847b](https://github.com/nextcloud/mail/commit/f0e847bb47d993ce1c7cfa2b00898da14aac36fb))\n* shorten ai summaries to fit in message list better ([b28777c](https://github.com/nextcloud/mail/commit/b28777c4d49abbcec62e8a5b4fbe0c2170c51e8c))\n* show the email address as subname ([0b50b3a](https://github.com/nextcloud/mail/commit/0b50b3abde5f600e905d9386c4a1b4c091e95409))\n* **summarizeMessages:** use TextToText ([40ab10f](https://github.com/nextcloud/mail/commit/40ab10fc71eeadc30f0c3d2fcc3f6fd18d9551d9))\n* **Thread:** add error message for emails not able to be opened ([691c33e](https://github.com/nextcloud/mail/commit/691c33e687fced93cda00dc926c2dbb316385990))\n* throwing errors in ai intergration frontend service ([d8e074c](https://github.com/nextcloud/mail/commit/d8e074c75a43f41867a9ed4595a59883a60a7ff8))\n* user must scroll to view most recent message in thread ([23a544b](https://github.com/nextcloud/mail/commit/23a544bc60c4d020a783ea303f0703985e913414))\n\n\n### Features\n\n* add warning when the message has no subject ([7eea2ac](https://github.com/nextcloud/mail/commit/7eea2ac3fce6da478dceef706148ce361dd0724c))\n* check connection performance of mail service ([800e964](https://github.com/nextcloud/mail/commit/800e964c110e38411c1d7478f43abec2b54934c6))\n* **deps:** Add Nextcloud 32 support ([2c026a0](https://github.com/nextcloud/mail/commit/2c026a0af96e9645198caa356b790926becfffb2))\n* **ocs:** list accounts and aliases of current user ([8122306](https://github.com/nextcloud/mail/commit/812230641b07d8de68985e222a7c0e2e6b726c7d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n* setup check for mail transport php-mail ([d24a009](https://github.com/nextcloud/mail/commit/d24a0090a3571961b2029a99508c13c3980afae1))\n\n\n\n# [4.2.0-beta3](https://github.com/nextcloud/mail/compare/v4.2.0-beta1...v4.2.0-beta3) (2025-01-16)\n\n\n### Bug Fixes\n\n* add ability to send alternate text (html and plain) ([3165f07](https://github.com/nextcloud/mail/commit/3165f07ffbb8fcd7f1d6feeacede0530641ce6b0))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.1 (main) ([#10566](https://github.com/nextcloud/mail/issues/10566)) ([44b0c76](https://github.com/nextcloud/mail/commit/44b0c765bd5678d71d22aa5ee4b7f7c4d78fc5bc))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([280b73b](https://github.com/nextcloud/mail/commit/280b73bedd386092b09743067925506d06e3b5e1))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([b72df2e](https://github.com/nextcloud/mail/commit/b72df2ec322eca7dbd58676be2c5b32035ab0b0d))\n* **dns:** Update public suffix list ([63f9e66](https://github.com/nextcloud/mail/commit/63f9e66a9878f28ed337e04a64aae12bbc68c782))\n* **translationService:** correct API reading ([19baf3e](https://github.com/nextcloud/mail/commit/19baf3e8b6191a4d39e1cf21f79c8718a5a025c9))\n\n\n\n# [4.2.0-beta1](https://github.com/nextcloud/mail/compare/v4.2.0-alpha2...v4.2.0-beta1) (2025-01-14)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([879476b](https://github.com/nextcloud/mail/commit/879476b228b6ca8830e4715f7afd04a294cf7006))\n* **deps:** Apply npm audit fix ([f4eaffb](https://github.com/nextcloud/mail/commit/f4eaffbfde5ebfe6724cfe8498cb157de126ce41))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.22.0 ([1c577e4](https://github.com/nextcloud/mail/commit/1c577e48eacc2206ea8cee427b9336fe2ea4e1b2))\n* empty content position ([bd9de95](https://github.com/nextcloud/mail/commit/bd9de953253505de1a13ec4493f7211752e98dc4))\n* Restrict allowed JSON response HTTP codes ([5620710](https://github.com/nextcloud/mail/commit/56207107a75947be74188779c1f6bd0bbd5958d9))\n\n\n### Features\n\n* Add translation capabilities to mail ([638ecc5](https://github.com/nextcloud/mail/commit/638ecc5df4a7d63a7b76e0abd1721a895bd80146))\n\n\n### Performance Improvements\n\n* **ui:** Load avatar URLs with low priority ([23551cf](https://github.com/nextcloud/mail/commit/23551cf8a8bd9a4986987c13e4903793bb63e2b7))\n\n\n\n# [4.2.0-alpha1](https://github.com/nextcloud/mail/compare/v4.0.0-beta2...v4.2.0-alpha1) (2025-01-03)\n\n\n### Bug Fixes\n\n* accept avatars with image/vnd.microsoft.icon mime types ([d6cf286](https://github.com/nextcloud/mail/commit/d6cf286531011d087344e5586c52be98a575fd73))\n* **AccountForm:** RTL support ([c4dd175](https://github.com/nextcloud/mail/commit/c4dd175f77cdaa6c276d1a67badceb4f1698ed38))\n* add null check for sender in imipservice ([2885f62](https://github.com/nextcloud/mail/commit/2885f62f36773d090d839368cc1ed28a92c122e7))\n* **avatar:** Use Nextcloud HTTP client for favicons ([eee2d6a](https://github.com/nextcloud/mail/commit/eee2d6a23bc65a8d687c8eb5eba8f59688492fb9))\n* Center envelope header avatar ([1324d1e](https://github.com/nextcloud/mail/commit/1324d1e98fbd1d3e697f511fc027dc4631f96301))\n* CKEditor translations ([22415b0](https://github.com/nextcloud/mail/commit/22415b020db15084db5c6f51c72e0e617f851e5f))\n* **Composer:** rtl support ([e16a6e1](https://github.com/nextcloud/mail/commit/e16a6e11749db28db11f4e04237adabea951891f))\n* **contactsintegration:** Limit number of matches ([ada36b8](https://github.com/nextcloud/mail/commit/ada36b8e804e51d39ff439965e579f949c4f6fd8))\n* **contactsintegration:** Limit number of search results ([b02921e](https://github.com/nextcloud/mail/commit/b02921e5ec724cb3de0b50e520ca780be703c42e))\n* create mailbox doesnt reset after saving ([e7da6c7](https://github.com/nextcloud/mail/commit/e7da6c7f9ff3b6f7cc89531e1595e7ebfdb91481))\n* **deps:** Apply npm audit fix ([91bbac9](https://github.com/nextcloud/mail/commit/91bbac944db78776bc98b2b28c8b35fb0e382b00))\n* **deps:** Apply npm audit fix ([a77c8e0](https://github.com/nextcloud/mail/commit/a77c8e0a7ee25c64e97ae71383472a757476ad14))\n* **deps:** Apply npm audit fix ([40c782b](https://github.com/nextcloud/mail/commit/40c782bf3114e4e3f4ca0b0ddce766ff90aebc9a))\n* **deps:** Apply npm audit fix ([dcd3c37](https://github.com/nextcloud/mail/commit/dcd3c3725e01c1353a4e8c31f4bd2410ab3452d5))\n* **deps:** Apply npm audit fix ([1c67e7d](https://github.com/nextcloud/mail/commit/1c67e7d93387089666bdc4cbc98ec5f391a12925))\n* **deps:** Apply npm audit fix ([84a6de9](https://github.com/nextcloud/mail/commit/84a6de9472a62db5200fb5e46c337a8a29840f87))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([8a8f6d4](https://github.com/nextcloud/mail/commit/8a8f6d4b9e55798caa9d44f497c231ba6b3afa04))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 (main) ([#10212](https://github.com/nextcloud/mail/issues/10212)) ([cfbda53](https://github.com/nextcloud/mail/commit/cfbda53f7c71dd799c5e0bae8ff654d181278e95))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 (main) ([#10265](https://github.com/nextcloud/mail/issues/10265)) ([e3ad554](https://github.com/nextcloud/mail/commit/e3ad55408648f12843a44098363d28205020c156))\n* **deps:** bump @nextcloud/dialogs from 5.3.6 to ^5.3.7 (main) ([#10061](https://github.com/nextcloud/mail/issues/10061)) ([c1965b1](https://github.com/nextcloud/mail/commit/c1965b19e1b2106221ff19e9fd480183297a9412))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to ^5.3.8 (main) ([#10354](https://github.com/nextcloud/mail/issues/10354)) ([066dda1](https://github.com/nextcloud/mail/commit/066dda15dbe2c50ea25682b860221598ecae6658))\n* **deps:** bump @nextcloud/files from 3.9.0 to ^3.9.0 (main) ([#10213](https://github.com/nextcloud/mail/issues/10213)) ([42816ed](https://github.com/nextcloud/mail/commit/42816ed37c4475856e137c435446cfd3d11a9978))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 (main) ([#10375](https://github.com/nextcloud/mail/issues/10375)) ([30a9617](https://github.com/nextcloud/mail/commit/30a96176b5160e8b00c645bc2ec05f438548c83b))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 (main) ([#10303](https://github.com/nextcloud/mail/issues/10303)) ([a03b721](https://github.com/nextcloud/mail/commit/a03b72138cf7c02b08e4a31771a19da5aa10e4e9))\n* **deps:** bump @nextcloud/vue from 8.16.0 to ^8.17.1 ([397ed27](https://github.com/nextcloud/mail/commit/397ed272d89eb04ec08e2c59476c59e35744fb8a))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([cf62083](https://github.com/nextcloud/mail/commit/cf6208310c94b5171f274a2746b6922044ed28ec))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.20.0 ([b52df89](https://github.com/nextcloud/mail/commit/b52df895ef03086cca566adc042c777e9340d28d))\n* **deps:** bump arthurhoaro/favicon from 2.0.0 to ^2.0.1 (main) ([#10304](https://github.com/nextcloud/mail/issues/10304)) ([a8976cc](https://github.com/nextcloud/mail/commit/a8976cc8f01032c9a8cc2c2c01b613d758794979))\n* **deps:** bump bytestream/horde-imap-client from 2.33.2 to ^2.33.3 (main) ([#10335](https://github.com/nextcloud/mail/issues/10335)) ([9c43e51](https://github.com/nextcloud/mail/commit/9c43e5195f9278fe05513559c3f37cd7229f638b))\n* **deps:** bump bytestream/horde-stream from 1.7.1 to ^1.7.2 (main) ([#10336](https://github.com/nextcloud/mail/issues/10336)) ([72ff480](https://github.com/nextcloud/mail/commit/72ff4801669708fef3d9155e8ed75892cfd9bfdd))\n* **deps:** bump bytestream/horde-util from 2.7.0 to ^2.8.0 (main) ([#10266](https://github.com/nextcloud/mail/issues/10266)) ([dea3c67](https://github.com/nextcloud/mail/commit/dea3c677e130098b7fbb8a90b6ed03d2f822f0a3))\n* **deps:** bump cerdic/css-tidy from 2.1.0 to v2.2.1 (main) ([#10401](https://github.com/nextcloud/mail/issues/10401)) ([6168da8](https://github.com/nextcloud/mail/commit/6168da8c3c2ff64690242a3efdba0e585967214f))\n* **deps:** bump dompurify from 3.1.6 to ^3.1.7 (main) ([#10239](https://github.com/nextcloud/mail/issues/10239)) ([b6f3726](https://github.com/nextcloud/mail/commit/b6f3726157f7e07d4c05c72bbf52af8f68a66c1b))\n* **deps:** bump dompurify from 3.1.7 to ^3.2.1 (main) ([#10402](https://github.com/nextcloud/mail/issues/10402)) ([4ef5e62](https://github.com/nextcloud/mail/commit/4ef5e624374082cb05d8a409227bc366c3b34692))\n* **deps:** bump ezyang/htmlpurifier from 4.17.0 to v4.18.0 (main) ([#10414](https://github.com/nextcloud/mail/issues/10414)) ([d7afc16](https://github.com/nextcloud/mail/commit/d7afc16198b2c61a08b692f302fb9ccc71cd37fe))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.0 to ^6.3.1 (main) ([#10372](https://github.com/nextcloud/mail/issues/10372)) ([5734a9e](https://github.com/nextcloud/mail/commit/5734a9e466852ce8bd0f57bf9d2bedad09e61f96))\n* **deps:** bump nextcloud/openapi-extractor from 1.0.0 to ^1.0.1 (main) ([#10256](https://github.com/nextcloud/mail/issues/10256)) ([2bd6c4f](https://github.com/nextcloud/mail/commit/2bd6c4fa8714059f856e252f300de4142c4f74a4))\n* **deps:** bump pinia from 2.2.0 to ^2.2.3 (main) ([#10028](https://github.com/nextcloud/mail/issues/10028)) ([5f851f1](https://github.com/nextcloud/mail/commit/5f851f1ab0401b1d5904ff976838586684513704))\n* **deps:** bump pinia from 2.2.3 to ^2.2.4 ([0439f04](https://github.com/nextcloud/mail/commit/0439f046eea92be97f67310a33b8dbce45d2d47b))\n* **deps:** bump pinia from 2.2.4 to ^2.2.5 (main) ([#10305](https://github.com/nextcloud/mail/issues/10305)) ([5084d6e](https://github.com/nextcloud/mail/commit/5084d6ef5356e8d13016b20c5ecaf594b269a8b3))\n* **deps:** bump pinia from 2.2.5 to ^2.2.6 (main) ([#10373](https://github.com/nextcloud/mail/issues/10373)) ([828b5cb](https://github.com/nextcloud/mail/commit/828b5cbd960de0d7dbc0a4f8e248a8c0428b3462))\n* **deps:** bump rubix/ml from 2.5.0 to v2.5.1 (main) ([#10096](https://github.com/nextcloud/mail/issues/10096)) ([45dc3f4](https://github.com/nextcloud/mail/commit/45dc3f41c163574584f36166f17ca76a7ae7b926))\n* **deps:** bump rubix/ml from 2.5.1 to v2.5.2 (main) ([#10374](https://github.com/nextcloud/mail/issues/10374)) ([62a0f24](https://github.com/nextcloud/mail/commit/62a0f24a80f9a21e4655e95ce148f76662e75dd4))\n* **deps:** bump sabberworm/php-css-parser from 8.6.0 to ^8.7.0 (main) ([#10306](https://github.com/nextcloud/mail/issues/10306)) ([15b9cba](https://github.com/nextcloud/mail/commit/15b9cbab6f1749fc2b5c00502258259672cddd53))\n* **deps:** bump stylelint from 16.3.1 to ^16.10.0 (main) ([#10284](https://github.com/nextcloud/mail/issues/10284)) ([b895441](https://github.com/nextcloud/mail/commit/b89544189022c8b49b10df3d25a37a44a9fad620))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([371ce44](https://github.com/nextcloud/mail/commit/371ce44ac6e21fe99e64ca740074d76f155249e9))\n* **deps:** bump webdav from 4.11.3 to v4.11.4 (main) ([#10127](https://github.com/nextcloud/mail/issues/10127)) ([129b066](https://github.com/nextcloud/mail/commit/129b066e69852e5d6da294d2e705024d9403a5b6))\n* **deps:** bump webpack from 5.91.0 to v5.94.0 (main) ([#10062](https://github.com/nextcloud/mail/issues/10062)) ([f66b05a](https://github.com/nextcloud/mail/commit/f66b05ac2f9d0c459c904ad32c3b72fc23ddc16e))\n* **dns:** Update public suffix list ([547b906](https://github.com/nextcloud/mail/commit/547b9064c3b65c5a5725a94a618fcd919dc361aa))\n* **dns:** Update public suffix list ([2e7ff02](https://github.com/nextcloud/mail/commit/2e7ff02bff6747d9054743d822b8c5e516123b94))\n* **dns:** Update public suffix list ([939830c](https://github.com/nextcloud/mail/commit/939830ce13842ce4e568b12400697be31429d82a))\n* **dns:** Update public suffix list ([70ecb76](https://github.com/nextcloud/mail/commit/70ecb760ebcc28feac135575cdf6a0afc284dc1c))\n* **dns:** Update public suffix list ([9e14c38](https://github.com/nextcloud/mail/commit/9e14c38d45d880e8f1f9cd186660736235799f49))\n* Encapsulate PGP/MIME encrypted emails ([3f821e3](https://github.com/nextcloud/mail/commit/3f821e38e37cda3c1ae165a141f1b38f62191fbe))\n* **Envelope:** RTL support ([8cd27ad](https://github.com/nextcloud/mail/commit/8cd27ad1ac2e41ef919733ff87a4439f776d7e69))\n* fetch attendance status when calendars are loaded ([44b9a36](https://github.com/nextcloud/mail/commit/44b9a36eea9e4e77dee04883b561804b9ca66016)), closes [/github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue#L49-L50](https://github.com//github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue/issues/L49-L50)\n* fix renaming mailbox hierarchy ([fd6229a](https://github.com/nextcloud/mail/commit/fd6229a8c1291dda099977b2bc98f2ec37e6bd2d))\n* Hand PGP/MIME-encrypted emails to Mailvelope ([971f910](https://github.com/nextcloud/mail/commit/971f9104ebb5a8434756149f317a938070af98bc))\n* hide show links button when not needed ([9351f0f](https://github.com/nextcloud/mail/commit/9351f0fa31cea520be18762beeacf76ace814a46))\n* **iframe:** scroll horizontally in case of overflow ([ee521d4](https://github.com/nextcloud/mail/commit/ee521d46ed0382d27882c302bf208038ffc445fc))\n* **imap:** Consider charset for preview text decoding ([625c579](https://github.com/nextcloud/mail/commit/625c579c82a06f2afaa21e130a4fd9f6c99c20ed))\n* **imap:** do a single full sync when QRESYNC is enabled ([73ceaf3](https://github.com/nextcloud/mail/commit/73ceaf3037d08f496e864183e0898983a9becf91))\n* **imap:** persist vanished messages immediately on EXAMINE commands ([3b577fe](https://github.com/nextcloud/mail/commit/3b577feb4d750fb2811e7488354d0663963c9840))\n* increase default SMTP timeout ([e7e62a3](https://github.com/nextcloud/mail/commit/e7e62a38c8bd15bc52b31a04c6b4595df5ec3cc4))\n* input icons and native datepicker ([db36047](https://github.com/nextcloud/mail/commit/db360471eee40465868be331c00858dfd280e08e))\n* Junk/NotJunk flags ([fb27d1e](https://github.com/nextcloud/mail/commit/fb27d1e9e3d00a0f4463bb08310933740f67e6d6))\n* link checking missing scheme ([9bb48cd](https://github.com/nextcloud/mail/commit/9bb48cda5bb74a1552d615ba57e0a4f29b96224b))\n* mailbox loading icon position ([16e95a1](https://github.com/nextcloud/mail/commit/16e95a13ee02546c329850370aa3e85b75499bbf))\n* **mailto:** Handle BCC recipients only ([970c3ac](https://github.com/nextcloud/mail/commit/970c3ac519c3659174c82ce5c46494b1354f6881))\n* make filter routes available for normal users ([95984e8](https://github.com/nextcloud/mail/commit/95984e88d8f5c87a06eaee93fc2ada63128ebf57))\n* new message button misalignment ([94ba7d3](https://github.com/nextcloud/mail/commit/94ba7d3015415743c9a13d14b7504f4ca0e55112))\n* **notifications:** Notifier::prepare() threw \\InvalidArgumentException which is deprecated ([37a2365](https://github.com/nextcloud/mail/commit/37a2365a9e008c2f838d419ffe0cf57ab70628d4))\n* open search buttons on focus and fix the wraping ([b469ce3](https://github.com/nextcloud/mail/commit/b469ce35206b82ea71d9d5b57a9cf6dedc5cf32b))\n* overlapping text on small screens ([04b8849](https://github.com/nextcloud/mail/commit/04b8849ad9caaf6830c61349098fedcb33f7fa0d))\n* phishing detection fixes ([dba8aff](https://github.com/nextcloud/mail/commit/dba8aff42fa07cea8412975c2b834c0482e2a9c2))\n* phishing warning layout ([2867a68](https://github.com/nextcloud/mail/commit/2867a68dbde60f379a2705c6756a09697924539f))\n* **PhishingDetection:** empty href ([ff608cc](https://github.com/nextcloud/mail/commit/ff608cc973798678e1b94c746958d9f17e22267c))\n* **psrlog:** Make the logger compatible with the upcoming bump to psr/log 3 in server ([0a22b3f](https://github.com/nextcloud/mail/commit/0a22b3f174056c7f2b2ebc3eb3e2acfc484cbe73))\n* **quick-search:** RTL support ([05e9ec7](https://github.com/nextcloud/mail/commit/05e9ec7af1763d3e4ffe505128ed92292e16184f))\n* recipient popover on thread display ([1244a69](https://github.com/nextcloud/mail/commit/1244a691c4c2a49efe833cfef8f54075cd747a4b))\n* **release:** Ignore unnecessary files ([0a66bdc](https://github.com/nextcloud/mail/commit/0a66bdcddf9182f0b8f033a6cf95a9dbfb6fa064))\n* **release:** Specify release committer ([9f4d57a](https://github.com/nextcloud/mail/commit/9f4d57aea1144bb912fddf4eeffabebe13576412))\n* remove depricated multiselect class ([31b11e5](https://github.com/nextcloud/mail/commit/31b11e5afd5c36758e89e7cb163b325cd42e2a53))\n* Replace tune icon with filter icon ([71af3f8](https://github.com/nextcloud/mail/commit/71af3f8fb6be790de082eb29c926f6941381da65))\n* Revive reply to sender only ([90c9298](https://github.com/nextcloud/mail/commit/90c9298550f0830b70daba05b0f334b14ec00d78))\n* **rtl:** phishing warning component ([6516398](https://github.com/nextcloud/mail/commit/6516398e9a2f7d12584cacbe63dea68f4ebc9983))\n* **rtl:** Thread title ([62583f8](https://github.com/nextcloud/mail/commit/62583f8fa1bec2a7b072c8c705880bc8d378b7b2))\n* **rtl:** userBubble rtl support ([e3b6729](https://github.com/nextcloud/mail/commit/e3b6729ae90b4e879a57dc51ceca76521f3c4f20))\n* search modal on small screen ([a3afdd4](https://github.com/nextcloud/mail/commit/a3afdd411c525e41e947ddac86e2146613f5136a))\n* select multiple envelopes by holding shift directly ([80f7153](https://github.com/nextcloud/mail/commit/80f71536fdc7ad33c15585bf218c8aa562be5065))\n* set content type parameters for attachments ([e3524c8](https://github.com/nextcloud/mail/commit/e3524c810ad82d7a5774bcda9ee4259ab8782a0e))\n* thread disappearing after refresh ([fe12a29](https://github.com/nextcloud/mail/commit/fe12a29439c2b3c376819b27d44a034ad8cc2fb6))\n* **threading:** Handle threads with duplicate send times ([341b655](https://github.com/nextcloud/mail/commit/341b655467ac672ec2463769ca3df284801f9a87))\n* **ui:** Add padding to primary evenlope actions ([63f31a2](https://github.com/nextcloud/mail/commit/63f31a2009e3c0a4aef9e56b9a471ddcaf40ea26))\n* **ui:** Remove padding from recipient bubble ([6026b1c](https://github.com/nextcloud/mail/commit/6026b1cc2111858b61077562f8ffe347f13eca8d))\n* **ui:** Restore account quota fetching ([6e58a2d](https://github.com/nextcloud/mail/commit/6e58a2d4d13ba1e500cf1048c9295cfe70baae8d))\n* **ui:** Restore message/thread styling ([1b94a14](https://github.com/nextcloud/mail/commit/1b94a14ce26608456560bec4955a3dc70852255e))\n* use single connection to sync all mailboxes ([57389ba](https://github.com/nextcloud/mail/commit/57389ba85c8842351302a51e963629ed89120d0f))\n* wrong path for itinerary executable ([43ed1ca](https://github.com/nextcloud/mail/commit/43ed1ca4f418806a768ef0df1cb9dc9b32170c36))\n\n\n### Features\n\n* add iMip Request Handling ([e8578ed](https://github.com/nextcloud/mail/commit/e8578edef275e434a2e2318808d0275d25fad378))\n* add mention to mail ([f089fad](https://github.com/nextcloud/mail/commit/f089fad6aa59b5927c9f4a96005a22711ae47c8d))\n* add recipient info on the right side of the composer ([efb0d60](https://github.com/nextcloud/mail/commit/efb0d605f2387ff426686eeb6339e79a3eeec91e))\n* add sieve utils ([9486987](https://github.com/nextcloud/mail/commit/948698742810bc3802340ff94ba55ec28e2583cb))\n* ai message summary ([e9286d2](https://github.com/nextcloud/mail/commit/e9286d20d4803cd1d4a3b7635f9c1dcf6fe4dcec))\n* classify emails by importance based on subjects ([1907ebc](https://github.com/nextcloud/mail/commit/1907ebc860f49de046640e00b523999a15028e66))\n* **deps:** Add Nextcloud 31 support ([bd306d8](https://github.com/nextcloud/mail/commit/bd306d8db5edf661c10b69eaf28ce095634ffab4))\n* fiter messages by mention ([fb946a2](https://github.com/nextcloud/mail/commit/fb946a2da61db01a6ab197d523fa95dd7dc6e57b))\n* implement periodic full sync job to repair cache inconsistencies ([c0bed86](https://github.com/nextcloud/mail/commit/c0bed86544f5a62fc3924839da669cfe5a6251c1))\n* mail filters ([d74c401](https://github.com/nextcloud/mail/commit/d74c401e6653be7d0713cb0c6d2ab358c9cf7516))\n* mail provider backend ([ce653d0](https://github.com/nextcloud/mail/commit/ce653d0f49fddc2afe916e5972e0e4642fed4ef6))\n* make multiselect menu more discoverable ([085af79](https://github.com/nextcloud/mail/commit/085af794d731d8585098e9c1fc620235a3d161f1))\n\n\n### Performance Improvements\n\n* don't loop the users without any provisioning configurations ([b76e68f](https://github.com/nextcloud/mail/commit/b76e68f37352f93dd28bc70c2addf1b9f75ee1af))\n* skip non-writable calendars ([4296585](https://github.com/nextcloud/mail/commit/42965856b0761038f699ea7e3092498336a7e439))\n\n\n### Reverts\n\n* Revert \"fix: CKEditor translations\" ([5a000da](https://github.com/nextcloud/mail/commit/5a000da5fc064bbbf132ad59fd13a2003cba9352))\n* Revert \"perf: bundle with vite\" ([6539d1d](https://github.com/nextcloud/mail/commit/6539d1da520a1531a3febeb27397527db8adb9a1))\n\n\n\n# [4.0.0-beta2](https://github.com/nextcloud/mail/compare/v4.0.0-alpha1...v4.0.0-beta2) (2024-08-27)\n\n\n### Bug Fixes\n\n* **.nextcloudignore:** Exclude php-stemmer tests from package ([aa79c29](https://github.com/nextcloud/mail/commit/aa79c2924e68893d3dbaae9deeb2b6a627d3c0ce)), closes [#9586](https://github.com/nextcloud/mail/issues/9586)\n* account deletion modal design ([091960a](https://github.com/nextcloud/mail/commit/091960ae1049393d7b9e538cf657b1068e4c6243))\n* **AccountForm:** Fix manual mail server buttons ([4d37cdc](https://github.com/nextcloud/mail/commit/4d37cdc0b746a434af41aa1aa999769c1e7f3bb2))\n* add repair job to deleted duplicated cached messages ([22b683c](https://github.com/nextcloud/mail/commit/22b683c0ad1abadef0c7dc267c973caa337b5e03))\n* align reply and attachment icon with subject ([8965b73](https://github.com/nextcloud/mail/commit/8965b739d76a27907b78b3632d3b000fc50fa87e))\n* **autoconfig:** Refactor DNS query for testing ([56faa48](https://github.com/nextcloud/mail/commit/56faa48b26c68d2a93bee0a8befa715047f60d6e))\n* **autoresponder:** enable immediately on an OutOfOfficeStartedEvent ([783263d](https://github.com/nextcloud/mail/commit/783263d2e91016f977db813ac5b5a965c6b88526))\n* background-color of outbox-button ([ca8310b](https://github.com/nextcloud/mail/commit/ca8310b6d1479a3009197b87e73bcb24ff10932a))\n* background-color of outbox-button ([5131682](https://github.com/nextcloud/mail/commit/51316823d2e6bffcf5f4c2b629d6243c9865d942))\n* case insesitive comparison for contact emails ([30d55f7](https://github.com/nextcloud/mail/commit/30d55f79a96519d281badcebd992ce691ad7e16d))\n* change appnavigation to appnavigationcaption for the email account ([4ffc09b](https://github.com/nextcloud/mail/commit/4ffc09b450787c882c9ca341798000e39b751215))\n* change format button icon ([9700cda](https://github.com/nextcloud/mail/commit/9700cda2fafa6bae5170176c01da260653cf5412))\n* Check if mailbox folder is selectable ([be8dcf4](https://github.com/nextcloud/mail/commit/be8dcf48e494c2594ca1a6ce2bdc599b977c3c84))\n* close smtp connection after sending or on error ([8f9a89b](https://github.com/nextcloud/mail/commit/8f9a89bfad9c5dedcb129892ca95bafd2594b0f9))\n* close the ncselect dropdown when clicked somewhere else ([d6daaef](https://github.com/nextcloud/mail/commit/d6daaef63b474fede424188f60ada7f3dad41be8))\n* composer session indicator height ([cd9a9f2](https://github.com/nextcloud/mail/commit/cd9a9f236b05b7b5022cf180b5dd7dee040eb420))\n* **composer:** Adjust expand/collapse cc/bcc icon size ([95803ba](https://github.com/nextcloud/mail/commit/95803ba920e60f87520dbf64f1fec60acf3091bb))\n* **composer:** Prevent leaving the tab with unsaved changes ([e57db7b](https://github.com/nextcloud/mail/commit/e57db7b01bd7b2bfd793ccb58fd464300cf8fd9d))\n* **composer:** Remove to/cc/bcc/subject separators ([a7983c5](https://github.com/nextcloud/mail/commit/a7983c5df04d48da90885e47e874c656169a1baf))\n* **composer:** Revive ckeditor translations ([c14cb78](https://github.com/nextcloud/mail/commit/c14cb784cfc7b3aee1de7ea30a4148652af87052))\n* create tasks from emails ([facc5bd](https://github.com/nextcloud/mail/commit/facc5bd581ebc344d0bb58f2ba6462b49ed16b15))\n* **dashboard:** Fix dashboard icon ([8a2b586](https://github.com/nextcloud/mail/commit/8a2b58615a1a10a123041232e4b9dd2018369bb4))\n* **db:** Delete recipients without sub query ([2545318](https://github.com/nextcloud/mail/commit/2545318697ee34c6a8112eeea7b1580af71e0568))\n* declare all properties in unit tests ([3955d51](https://github.com/nextcloud/mail/commit/3955d514f5b795c86ab1bb2866ba061f9382bc07))\n* Define \"isAddAttachmentsOpen\" ([ac97a28](https://github.com/nextcloud/mail/commit/ac97a284435299d5025d1d39b5151bb273cce27e))\n* **deps:** Apply npm audit fix ([9e53bbb](https://github.com/nextcloud/mail/commit/9e53bbb908da2edcbd39d3ac188794079ae86117))\n* **deps:** Apply npm audit fix ([7c2a1c1](https://github.com/nextcloud/mail/commit/7c2a1c1f7e2c9815eabd8ddb46d19d0c81f6e872))\n* **deps:** Apply npm audit fix ([7278f5b](https://github.com/nextcloud/mail/commit/7278f5b477df2b848d1d04922f357ca24f88552e))\n* **deps:** Apply npm audit fix ([2b0aa94](https://github.com/nextcloud/mail/commit/2b0aa94da03982a33cb0e0e55dccbe7f6d8a7ece))\n* **deps:** Apply npm audit fix ([7bb7859](https://github.com/nextcloud/mail/commit/7bb78591fef8ccb345c18b02838b4ceaba9f83af))\n* **deps:** bump @ckeditor/ckeditor5-editor-decoupled from 37.0.1 to v37.1.0 (main) ([#9480](https://github.com/nextcloud/mail/issues/9480)) ([1a63205](https://github.com/nextcloud/mail/commit/1a632052ff6c545c43274a6a7b4088b80b8b4614))\n* **deps:** bump @nextcloud/auth from 2.2.1 to ^2.3.0 (main) ([#9630](https://github.com/nextcloud/mail/issues/9630)) ([b9cecc4](https://github.com/nextcloud/mail/commit/b9cecc43ce7e0498939342edf183389c55923007))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.0 (main) ([#9631](https://github.com/nextcloud/mail/issues/9631)) ([8edd1d7](https://github.com/nextcloud/mail/commit/8edd1d7367e267e77fd7af4434dec734140b3b67))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 (main) ([#9777](https://github.com/nextcloud/mail/issues/9777)) ([309a4af](https://github.com/nextcloud/mail/commit/309a4aff5af910a4be790cc07459be29d3d995bf))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.0 (main) ([#9873](https://github.com/nextcloud/mail/issues/9873)) ([45de8bf](https://github.com/nextcloud/mail/commit/45de8bf43f4e3e54da1669da41875d653eabe897))\n* **deps:** bump @nextcloud/cdav-library from 1.5.0 to ^1.5.1 (main) ([#9906](https://github.com/nextcloud/mail/issues/9906)) ([97cd5f4](https://github.com/nextcloud/mail/commit/97cd5f49351036e653537d3b53c69ecb620d7db1))\n* **deps:** bump @nextcloud/dialogs from 5.2.0 to ^5.3.0 (main) ([#9572](https://github.com/nextcloud/mail/issues/9572)) ([9da3f56](https://github.com/nextcloud/mail/commit/9da3f5612965f343fcffa60fc592340bad572cde))\n* **deps:** bump @nextcloud/dialogs from 5.3.0 to ^5.3.1 (main) ([#9595](https://github.com/nextcloud/mail/issues/9595)) ([e2ce479](https://github.com/nextcloud/mail/commit/e2ce479480d71a2d6abfadcaa14007098c7e5554))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.3 (main) ([#9732](https://github.com/nextcloud/mail/issues/9732)) ([db4be0e](https://github.com/nextcloud/mail/commit/db4be0e1f7e9797a750b3438ac6011009c761bb7))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 (main) ([#9774](https://github.com/nextcloud/mail/issues/9774)) ([073aa64](https://github.com/nextcloud/mail/commit/073aa6432905fdfaec8657b8a390e3e05c2c4103))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 (main) ([#9821](https://github.com/nextcloud/mail/issues/9821)) ([b4c5e64](https://github.com/nextcloud/mail/commit/b4c5e64cdcb56bc9069ae10e13c43770377bd196))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.6 (main) ([#10027](https://github.com/nextcloud/mail/issues/10027)) ([b46c724](https://github.com/nextcloud/mail/commit/b46c724314a53da60c3454b3579c1fc7e7b89903))\n* **deps:** bump @nextcloud/files from 3.1.0 to ^3.1.1 (main) ([#9499](https://github.com/nextcloud/mail/issues/9499)) ([97fbbe9](https://github.com/nextcloud/mail/commit/97fbbe9c40235e618eea9e9068fd9ec2df19c4d6))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.2.1 (main) ([#9597](https://github.com/nextcloud/mail/issues/9597)) ([44af721](https://github.com/nextcloud/mail/commit/44af72138b06c017d285e25e4781f5e7ed0d5286))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.4.0 (main) ([#9681](https://github.com/nextcloud/mail/issues/9681)) ([b7c8d7b](https://github.com/nextcloud/mail/commit/b7c8d7bb96491a243e36dcfd5ac2aef0e903acf0))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.5.1 (main) ([#9775](https://github.com/nextcloud/mail/issues/9775)) ([56d8a98](https://github.com/nextcloud/mail/commit/56d8a987e82632551408bae217622d7bcc8d2296))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 (main) ([#9907](https://github.com/nextcloud/mail/issues/9907)) ([7b20678](https://github.com/nextcloud/mail/commit/7b206782fe300d120922b131babf390035bacbbb))\n* **deps:** bump @nextcloud/files from 3.6.0 to ^3.8.0 (main) ([#9948](https://github.com/nextcloud/mail/issues/9948)) ([6969d6e](https://github.com/nextcloud/mail/commit/6969d6eca3c3ed081ba1f8657a228f047faff789))\n* **deps:** bump @nextcloud/initial-state from 2.1.0 to ^2.2.0 (main) ([#9643](https://github.com/nextcloud/mail/issues/9643)) ([aefeb7f](https://github.com/nextcloud/mail/commit/aefeb7ffb70d52f50d6a01e94ebd6fac19aaedb4))\n* **deps:** bump @nextcloud/paths from 2.1.0 to ^2.2.0 (main) ([#9908](https://github.com/nextcloud/mail/issues/9908)) ([f296907](https://github.com/nextcloud/mail/commit/f2969072b4919a8cd37fabfa6e78d95741f97fa3))\n* **deps:** bump @nextcloud/paths from 2.2.0 to ^2.2.1 (main) ([#9947](https://github.com/nextcloud/mail/issues/9947)) ([436e983](https://github.com/nextcloud/mail/commit/436e9837b503cb766d10b4d48a4fbefcdf6b459c))\n* **deps:** bump @nextcloud/router from 3.0.0 to ^3.0.1 (main) ([#9596](https://github.com/nextcloud/mail/issues/9596)) ([cf9dd13](https://github.com/nextcloud/mail/commit/cf9dd13507befd1e45185e7aae1a0af5e3237655))\n* **deps:** bump @nextcloud/vue from 8.11.0 to ^8.11.1 ([e91bea8](https://github.com/nextcloud/mail/commit/e91bea82bc4c77f9b2aa56286d8209c1a87c2ec6))\n* **deps:** bump @nextcloud/vue from 8.11.1 to ^8.11.2 ([22a5ae4](https://github.com/nextcloud/mail/commit/22a5ae40b71057c1611a7773f34842d9ce38145c))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.13.0 ([facc8ab](https://github.com/nextcloud/mail/commit/facc8ab626acdf7e910a8a287565d13340cfe702))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([4ef4e64](https://github.com/nextcloud/mail/commit/4ef4e647d588d3514720fce7ebf946c82f63d6ad))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([8e50f95](https://github.com/nextcloud/mail/commit/8e50f95e40a214a8e419ff8162cbb57686021741))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([473069e](https://github.com/nextcloud/mail/commit/473069e4f2abcea0fbda41090719aef590a88419))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.16.0 ([73b56f1](https://github.com/nextcloud/mail/commit/73b56f12c2f3da8c3000287cc38436b77bb88de5))\n* **deps:** bump address-rfc2822 from 2.2.0 to ^2.2.1 (main) ([#9545](https://github.com/nextcloud/mail/issues/9545)) ([80e82ff](https://github.com/nextcloud/mail/commit/80e82ff3c3a6d920244e4d639e164da703d7e178))\n* **deps:** bump address-rfc2822 from 2.2.1 to ^2.2.2 (main) ([#9618](https://github.com/nextcloud/mail/issues/9618)) ([5be2d9f](https://github.com/nextcloud/mail/commit/5be2d9fd204280cdd77a56dd471ea633c7539029))\n* **deps:** bump bytestream/horde-mime from 2.13.0 to ^2.13.1 (main) ([#9704](https://github.com/nextcloud/mail/issues/9704)) ([4da6baa](https://github.com/nextcloud/mail/commit/4da6baaa2c5fa4acc6c0d55b905cab73b26c6a54))\n* **deps:** bump bytestream/horde-mime from 2.13.1 to ^2.13.2 (main) ([#9997](https://github.com/nextcloud/mail/issues/9997)) ([4c7f3f1](https://github.com/nextcloud/mail/commit/4c7f3f11ba672a500d394ead8e4942c20f3d3af8))\n* **deps:** bump core-js from 3.36.1 to ^3.37.1 (main) ([#9644](https://github.com/nextcloud/mail/issues/9644)) ([509d675](https://github.com/nextcloud/mail/commit/509d675bb71f7dc3d0cd6b887e1d74563e41301d))\n* **deps:** bump dompurify from 3.0.10 to ^3.0.11 ([94b5093](https://github.com/nextcloud/mail/commit/94b50936147d27097154e872bb9debda5a965ac7))\n* **deps:** bump dompurify from 3.0.11 to ^3.1.0 (main) ([#9546](https://github.com/nextcloud/mail/issues/9546)) ([1be5cce](https://github.com/nextcloud/mail/commit/1be5ccec727847914944ab1625b2f101c47cf046))\n* **deps:** bump dompurify from 3.1.0 to ^3.1.3 (main) ([#9619](https://github.com/nextcloud/mail/issues/9619)) ([1451a01](https://github.com/nextcloud/mail/commit/1451a01cbe8c0e8566a0ebb6307cd36a76ed65e1))\n* **deps:** bump dompurify from 3.1.3 to ^3.1.4 (main) ([#9680](https://github.com/nextcloud/mail/issues/9680)) ([981db11](https://github.com/nextcloud/mail/commit/981db11eb87ab737d08db59138405fb40859b4c3))\n* **deps:** bump dompurify from 3.1.4 to ^3.1.5 (main) ([#9705](https://github.com/nextcloud/mail/issues/9705)) ([77ce832](https://github.com/nextcloud/mail/commit/77ce83240067203b6d0ab88bc0337c1d91792586))\n* **deps:** bump dompurify from 3.1.5 to ^3.1.6 (main) ([#9822](https://github.com/nextcloud/mail/issues/9822)) ([f9a9a1c](https://github.com/nextcloud/mail/commit/f9a9a1c81df96fabd626b2c4a88da1b9fc611d2c))\n* **deps:** bump iframe-resizer from 4.3.11 to ^4.4.4 (main) ([#9794](https://github.com/nextcloud/mail/issues/9794)) ([ae39845](https://github.com/nextcloud/mail/commit/ae3984539f28fa2d5ea574182e3c818f2ea49726))\n* **deps:** bump iframe-resizer from 4.3.9 to ^4.3.11 (main) ([#9598](https://github.com/nextcloud/mail/issues/9598)) ([4b08392](https://github.com/nextcloud/mail/commit/4b0839274d0f604dd9a9e877bb15184697142862))\n* **deps:** bump iframe-resizer from 4.4.4 to ^4.4.5 (main) ([#9872](https://github.com/nextcloud/mail/issues/9872)) ([a537c49](https://github.com/nextcloud/mail/commit/a537c491cbc391d8ae1f66376409f8fcbc6fb4d8))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.2 to ^1.0.3 ([774ac9f](https://github.com/nextcloud/mail/commit/774ac9f5302a51d3526cc3811aa1fffc7448bcef))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to ^1.0.1 (main) ([#9974](https://github.com/nextcloud/mail/issues/9974)) ([c6cc2fa](https://github.com/nextcloud/mail/commit/c6cc2fa5f6ec7193c515181a80658f2e8c65b41a))\n* **deps:** bump pinia from 2.1.7 to ^2.2.0 (main) ([#9949](https://github.com/nextcloud/mail/issues/9949)) ([9e67025](https://github.com/nextcloud/mail/commit/9e67025c1a7035ad052259feb6041e8dc4b9c8f1))\n* **deps:** bump ramda from 0.29.1 to ^0.30.1 ([120def2](https://github.com/nextcloud/mail/commit/120def2ec0b1a81e169f5bc4e3a28fcfc358a8b7))\n* **deps:** bump rubix/ml from 2.4.0 to v2.5.0 (main) ([#9874](https://github.com/nextcloud/mail/issues/9874)) ([2f36913](https://github.com/nextcloud/mail/commit/2f369131b5e1dbcd6856fc3fa6b270f7686fd03f))\n* **deps:** bump sabberworm/php-css-parser from 8.5.1 to ^8.6.0 (main) ([#9909](https://github.com/nextcloud/mail/issues/9909)) ([08cc760](https://github.com/nextcloud/mail/commit/08cc760c7a5731704afb5ab422b0125a01bd9688))\n* **deps:** bump stylelint from 16.2.1 to ^16.3.1 ([06c5976](https://github.com/nextcloud/mail/commit/06c59764a33c847a6a1d03ed0a203d18e24a4ffd))\n* **deps:** bump webdav from 5.4.0 to ^5.5.0 ([8316cc7](https://github.com/nextcloud/mail/commit/8316cc729955e7c254a8ac703f36add04214e6e7))\n* **deps:** Replace @nextcloud/vue-dashboard with @nextcloud/vue ([c1cc553](https://github.com/nextcloud/mail/commit/c1cc553ac9e8ce46d8ed643abfcea3e0430782f8))\n* don't fail on missing mailbox stats ([1a613e8](https://github.com/nextcloud/mail/commit/1a613e80db91c58e814e212d897acf57dcf9575e))\n* duplicate uid repair job failing on postgres ([48a149b](https://github.com/nextcloud/mail/commit/48a149bab4a86d7af86c5b082bec9da57b807c70))\n* ellips the subject and position of the important icon ([7dcd2de](https://github.com/nextcloud/mail/commit/7dcd2de0453366462cd096acac33ca262d315146))\n* **files:** add static icon for unknown user ([bdb5d30](https://github.com/nextcloud/mail/commit/bdb5d30bf8abf5ebef099459b21929e0da609d24))\n* filter change icon to be shown only when the filter changes ([2e0ec87](https://github.com/nextcloud/mail/commit/2e0ec879b44e5be769ad7ba470b673d01fb47547))\n* Fine-tune thread summary box design ([b508915](https://github.com/nextcloud/mail/commit/b50891524b9beafea33e199a6beb9b791af5b574))\n* handle missing email in contact check ([eb11824](https://github.com/nextcloud/mail/commit/eb11824ea2091a930ef6aae95fc31834c53b62ba))\n* honour MDN requests ([752b012](https://github.com/nextcloud/mail/commit/752b0127afecbd85f105761a8c22a909ea68e679))\n* inconsistent encoding in saved sent messages ([a93b48e](https://github.com/nextcloud/mail/commit/a93b48eacf23490c9a4140a5028ebd81dfec9061))\n* **integration:** Honor sharing to group members restriction ([fb4ae5e](https://github.com/nextcloud/mail/commit/fb4ae5e5d47b7ef5d3a4b2bef66d6b982009b6c9))\n* **jobs:** Skip background jobs if no authentication is possible ([f1d3fda](https://github.com/nextcloud/mail/commit/f1d3fda3015c1ace393124a25cf588e37c879981))\n* **l10n:** Update mailbox button text from \"Edit name\" to \"Rename\" ([1edb630](https://github.com/nextcloud/mail/commit/1edb63067701db0132e2479eb3e5ae1835c42415)), closes [#9108](https://github.com/nextcloud/mail/issues/9108)\n* line ending for sieve scripts should be clrf ([1f54a38](https://github.com/nextcloud/mail/commit/1f54a387486d205703d9ec03692f200d3b7f021d)), closes [/www.rfc-editor.org/rfc/rfc5228#section-2](https://github.com//www.rfc-editor.org/rfc/rfc5228/issues/section-2)\n* lost focus in reference picker ([13ceb7a](https://github.com/nextcloud/mail/commit/13ceb7a22897d19074f3cf5d8f74c6519c32be84))\n* mailbox error empty content alignment ([4b73def](https://github.com/nextcloud/mail/commit/4b73defdc6a0b32812dfd1e52401072ad77975b0))\n* make sure inbound_password uses null as default ([443749f](https://github.com/nextcloud/mail/commit/443749f9e6d9fd1122f42ffd5f67ae8e07af2b63))\n* migrate advanced search to nc dialog ([558440f](https://github.com/nextcloud/mail/commit/558440f900a1591f637de0f34ba7df355b5a6d93))\n* move delete duplicate uids repair step to a job ([c361202](https://github.com/nextcloud/mail/commit/c3612021789b2574feab452d0b64624c369ed1ec))\n* **ocs-api:** fix attachment downloadUrl in ocs/v2.php/apps/mail/message/ID ([507ad47](https://github.com/nextcloud/mail/commit/507ad470145d961268e882c4c841e1f0d6889eec))\n* **outbox:** add status for messages ([7c59040](https://github.com/nextcloud/mail/commit/7c590407858fa4076e76407eeb545234bd3782ce))\n* **outbox:** handle indeterminate smtp errors ([a1daf35](https://github.com/nextcloud/mail/commit/a1daf351f83e27ea1fc4bac2d112966560f04501))\n* **outbox:** handle missing raw message gracefully ([66d5e60](https://github.com/nextcloud/mail/commit/66d5e602ac207a908a0931cb66abdc5c64ed2b3d))\n* **outbox:** Revive item subname ([25e6f60](https://github.com/nextcloud/mail/commit/25e6f6035b0909a1f267616194716d76dcaa8800))\n* PHP deprecations ([d62ac04](https://github.com/nextcloud/mail/commit/d62ac040c4a64501425e068553f54b3331f5d412))\n* php lint complaint ([6cda44b](https://github.com/nextcloud/mail/commit/6cda44bbd998b80b55f98210b41dfe4b1f469c02))\n* **pi:** load more button needs to be clicked twice ([b57eec0](https://github.com/nextcloud/mail/commit/b57eec0b651a21665b2a399eae5d43599f7d2e91))\n* **pi:** section title margins affected by global styles ([30abd01](https://github.com/nextcloud/mail/commit/30abd01dae8c2ab5bf53be814b4c1bde2a4a9303))\n* polish list item ([b48317d](https://github.com/nextcloud/mail/commit/b48317d7305298805d6e440b0692bfc0e1c99428))\n* **printing:** Fix long emails getting cut for print ([17e5e29](https://github.com/nextcloud/mail/commit/17e5e29f4a2f3336a420d03645fc7af9add2228c))\n* **provisioning:** Set master password for passwordless sessions ([43ee642](https://github.com/nextcloud/mail/commit/43ee6428013c32e21d3cb86e7b68c85aa5f298df))\n* remove deprecated prototype.substr() method ([2050173](https://github.com/nextcloud/mail/commit/20501734b0ba0e45dd095df61ea7a7a998d56317))\n* remove duplicated license info covered by SPDX/reuse ([30b3dcc](https://github.com/nextcloud/mail/commit/30b3dccc1d8a4af84f31b8b0d04c00c4272c42a9))\n* Remove instance name from share link add button ([e028f30](https://github.com/nextcloud/mail/commit/e028f30d32a922373bb9392b0fb6a6da2a567978))\n* remove the app navigation spacer ([50ed62d](https://github.com/nextcloud/mail/commit/50ed62db6c88c82cbe9adf12d689efc5994cca28))\n* remove the global styling from the composer list ([a45841d](https://github.com/nextcloud/mail/commit/a45841dcc046b827a3be7a1b93e19e73c6d7738d))\n* remove ununsed package ([01c4faf](https://github.com/nextcloud/mail/commit/01c4fafb933f2538cfda8a688eebb8d57695359b))\n* Sanitize forward slashes from name before generating url ([b29bfda](https://github.com/nextcloud/mail/commit/b29bfdadfac3be3bd5a9f8f2bfe2063c3a5f4719))\n* save horde cache backend on imap client logout ([cda9d73](https://github.com/nextcloud/mail/commit/cda9d737c4c2754e88108e51057c53123fa51277))\n* **search:** Improve quick search element alignment ([919c842](https://github.com/nextcloud/mail/commit/919c842ffa2056979e69e1a63b02f15980482a02))\n* **search:** Show placeholder for the mailbox search input ([aa16c44](https://github.com/nextcloud/mail/commit/aa16c44c07c41e541fc5f20771de15dd793d8234))\n* send imip when importing an event in mail ([880eca7](https://github.com/nextcloud/mail/commit/880eca7a8fe84706e57350d3f2ff01d804bdc117)), closes [/github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php#L245-L254](https://github.com//github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php/issues/L245-L254)\n* Separate quick search and threads list with a line ([62c32c5](https://github.com/nextcloud/mail/commit/62c32c501508a38923880c83a9fc133c07f06f37))\n* set link icon size explicitly ([4b7e433](https://github.com/nextcloud/mail/commit/4b7e4336c03ad5f04994311b02f527e76ad27c85))\n* show image colour on dark theme ([3430895](https://github.com/nextcloud/mail/commit/343089506eed4090b936996d5d5effe89a6cbf02))\n* Show message reply (all) action in toolbar ([5cd54bc](https://github.com/nextcloud/mail/commit/5cd54bca3ce721117c8047a7c1a04738b06da79a))\n* Show text in empty mailbox view ([bc04ae1](https://github.com/nextcloud/mail/commit/bc04ae15a7c3477d74081b4421edce8be34c2312))\n* smart reply button jump ([c29f6fe](https://github.com/nextcloud/mail/commit/c29f6fe6a568432308c128b37d6206b0e92949eb))\n* **smime:** use whole certificate chain ([c6e28fd](https://github.com/nextcloud/mail/commit/c6e28fd59188ded88c3688a2e3d4988fd09df508)), closes [#9190](https://github.com/nextcloud/mail/issues/9190)\n* **tags:** Hide Notjunk tag ([f81843d](https://github.com/nextcloud/mail/commit/f81843d41c759012e0d818463bee596e8b28bb90))\n* thread padding ([f019d55](https://github.com/nextcloud/mail/commit/f019d55ca3668e3bc0ce24d312160dc40372458b))\n* **threading:** Run manual garbage collection ([060923f](https://github.com/nextcloud/mail/commit/060923f2cb9634914f413e9f56c235b3715d9e83))\n* use correct type for button, type for prop ([25b7595](https://github.com/nextcloud/mail/commit/25b759590ae9602392e7da702fa944957e5343c3))\n* using shortcut to select drafts shouldnt open the composer ([6cd5628](https://github.com/nextcloud/mail/commit/6cd5628d39d0135ed7cf39df8b72d272e72e3885))\n\n\n### Features\n\n* add internal addresses ([aab2db9](https://github.com/nextcloud/mail/commit/aab2db92a618babc71fd285e56c11ddd7d2714d6))\n* add JSON to occ mail export ([6b725ac](https://github.com/nextcloud/mail/commit/6b725ac3e1f5ecfc1ff05ddaa57d06fa3faa50d0))\n* **composer:** Redesign inputs ([ff94dd9](https://github.com/nextcloud/mail/commit/ff94dd9c758f04d3fdb420dcdc6187e1e9977bec))\n* **deps:** Drop Nextcloud 26, add 30 support ([7101ad2](https://github.com/nextcloud/mail/commit/7101ad2e4feafc1093d24fc2e3a7f2c16091a361))\n* follow up reminders ([221ff11](https://github.com/nextcloud/mail/commit/221ff11205e703eb4757d3a7037959b80432d8b2))\n* implement admin setting to disable classification by default ([96c1259](https://github.com/nextcloud/mail/commit/96c12592e888327f939308266db2a7bf6ba7e74a))\n* improve the search bar icons ([9eb787c](https://github.com/nextcloud/mail/commit/9eb787c234e716f7bad9c216c1e9362374b99b0a))\n* increaze the min and max width for horizontal view ([cef3c44](https://github.com/nextcloud/mail/commit/cef3c44c69f5644ba8cb66bf25a0c75fd1a91fde))\n* Log AttachmentMissingError as a warning ([092c924](https://github.com/nextcloud/mail/commit/092c924fb70d0ac79cf823e660f09fdbe56d2388))\n* make sieve filter form only resizable vertically ([951774e](https://github.com/nextcloud/mail/commit/951774e20d6f6eef5e106c565fe4fb2c4187a621))\n* mark junk mail automatically as read and unimportant ([d9c20c5](https://github.com/nextcloud/mail/commit/d9c20c531b7bf3d13f03710867f3c31fe49450ce))\n* **ocs:** add OCS extractor and workflow ([e854dc7](https://github.com/nextcloud/mail/commit/e854dc7efc7f97b98c9e1e12be949de0acdc7b04))\n* **ocs:** document get api and amend return types ([929873d](https://github.com/nextcloud/mail/commit/929873db6bf6edd711030002606c63828c3ec7c6))\n* **ocs:** notify of new messages and provide API endpoint to retrieve its contents ([71dbc51](https://github.com/nextcloud/mail/commit/71dbc51dca58d51f419e09cc4bff7bed49adbbd4))\n* **ocs:** send a message via api ([253d0c8](https://github.com/nextcloud/mail/commit/253d0c81f4859b8e65d3940638d2e33ffed0ea27))\n* search on subject, to, from by default ([f93ca3c](https://github.com/nextcloud/mail/commit/f93ca3c665c9dd486044141534dd538062b75b37))\n* separate attachment from three-dot-menu ([3e6529c](https://github.com/nextcloud/mail/commit/3e6529c70b0ec7511ba6c6960266a36bffd9133a))\n* **utility:** make json methods work the same for ([bfa0d7b](https://github.com/nextcloud/mail/commit/bfa0d7b3013212e21782e27518c8d7c79749a24c))\n\n\n### Performance Improvements\n\n* Use local caches for avatars ([bd75d0a](https://github.com/nextcloud/mail/commit/bd75d0abc4a397b3618ff74af0a49742079ed85b))\n\n\n### Reverts\n\n* Revert \"Fix: generate event data fails for threads across multiple mailboxes\" ([09ded27](https://github.com/nextcloud/mail/commit/09ded27c2215a2516693702962c29a1b2cc2ae10))\n\n\n\n# [3.6.0-beta3](https://github.com/nextcloud/mail/compare/v3.6.0-beta2...v3.6.0-beta3) (2024-03-20)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([c5e76e6](https://github.com/nextcloud/mail/commit/c5e76e68d0f7efdbac2b922174e81507039ea67c))\n* **deps:** bump @nextcloud/cdav-library from 1.1.0 to ^1.3.0 (main) ([#9437](https://github.com/nextcloud/mail/issues/9437)) ([f26f421](https://github.com/nextcloud/mail/commit/f26f4218052238410e3e8441fe00133e12cf4cc3))\n* **deps:** bump @nextcloud/dialogs from 5.1.2 to ^5.2.0 (main) ([#9481](https://github.com/nextcloud/mail/issues/9481)) ([78308d9](https://github.com/nextcloud/mail/commit/78308d92ea25cad30dbd3fa134b8fd3127c62d18))\n* **deps:** bump @nextcloud/vue from 8.10.0 to ^8.11.0 ([481e00c](https://github.com/nextcloud/mail/commit/481e00cd8d2abf8e31b6219e5cc077baceb8d79a))\n* **deps:** bump bytestream/horde-imap-client from 2.33.1 to ^2.33.2 (main) ([#9460](https://github.com/nextcloud/mail/issues/9460)) ([6f4e2c5](https://github.com/nextcloud/mail/commit/6f4e2c52f3e070c09dd01fcbb3369731e42be54b))\n* **deps:** bump core-js from 3.36.0 to ^3.36.1 (main) ([#9475](https://github.com/nextcloud/mail/issues/9475)) ([6d1442d](https://github.com/nextcloud/mail/commit/6d1442d2e4b383000f27f48152c8009cd5bf88ee))\n* **deps:** bump dompurify from 3.0.9 to ^3.0.10 (main) ([#9476](https://github.com/nextcloud/mail/issues/9476)) ([aca2138](https://github.com/nextcloud/mail/commit/aca21388ebc5eb630a7ecb6e40306e6ddd546889))\n* display iCloud messages ([8417e52](https://github.com/nextcloud/mail/commit/8417e52e517bdad8003c9d63a2a66f0268bb4c9b))\n\n\n\n# [3.6.0-beta2](https://github.com/nextcloud/mail/compare/v3.6.0-beta1...v3.6.0-beta2) (2024-03-12)\n\n\n### Bug Fixes\n\n* add command to repair broken autoresponders ([60b199e](https://github.com/nextcloud/mail/commit/60b199ebcbd818652bafcfea0958d7b32b4ea5c6))\n* add name_hash as nullable ([d8de6d2](https://github.com/nextcloud/mail/commit/d8de6d2e30332a3a51d37225de680574c137f0ab))\n* Alien envelopes ([8dfae53](https://github.com/nextcloud/mail/commit/8dfae5396194f6b6613f9e6dafc946e682f03fe0))\n* allow syncing of mailboxes with a trailing space ([9783069](https://github.com/nextcloud/mail/commit/9783069f6b8bb36f57d0b3e65a8384cebadf93f2))\n* **autoresponder:** use subject placeholder instead of ooo short message ([5899ebe](https://github.com/nextcloud/mail/commit/5899ebe00a2911421160396c49a7e74c0d5fa780))\n* cache accounts by userId in AccountService ([c69c7d7](https://github.com/nextcloud/mail/commit/c69c7d724feb7ac943ff61c7ab57f93e2f1dde96))\n* **clean-up:** remove all outdated classifier not only 100 per day ([0e3fcce](https://github.com/nextcloud/mail/commit/0e3fccec8f9555cd8d1b2bf72092120d73005ba3))\n* **composer:** creating new options in recipient selects ([ffd78d5](https://github.com/nextcloud/mail/commit/ffd78d51c3bb46035ee705cb8a52de1699da98ba))\n* **composer:** duplicate label in to, cc and bcc selects ([5fec0d1](https://github.com/nextcloud/mail/commit/5fec0d1f19467dd2826e24c43e66cb114911a30b))\n* **db:** add version check for index with length ([2cafaa1](https://github.com/nextcloud/mail/commit/2cafaa1ae08185d46c81feef451a447a26c821ad))\n* **db:** Avoid dirty read for collected addresses ([66fdc0b](https://github.com/nextcloud/mail/commit/66fdc0bbe0b6497320eef449cc5ed644e91025fd))\n* **db:** Avoid dirty read for local message updates ([fff840a](https://github.com/nextcloud/mail/commit/fff840ac4f88c12cd484af0cd730a913e92e6865))\n* **db:** Avoid dirty reads while deleting messages by uid ([e92114e](https://github.com/nextcloud/mail/commit/e92114e90e7733d1a7eccfa94067fb5699df7075))\n* **deps:** Apply npm audit fix ([e97f337](https://github.com/nextcloud/mail/commit/e97f337049be90e03f28dddec57bcf5af0555410))\n* **deps:** bump @nextcloud/calendar-js from 6.0.1 to ^6.1.0 (main) ([#9068](https://github.com/nextcloud/mail/issues/9068)) ([00bf78b](https://github.com/nextcloud/mail/commit/00bf78bfed62af45678eeb6a08c130378a6d48f2))\n* **deps:** bump @nextcloud/dialogs from 4.1.0 to ^4.2.5 (main) ([#8797](https://github.com/nextcloud/mail/issues/8797)) ([cadad6e](https://github.com/nextcloud/mail/commit/cadad6e2245c6c5a6f47308a1cdf22eda6c3d4e7))\n* **deps:** bump @nextcloud/dialogs from 4.2.5 to ^4.2.6 (main) ([#9377](https://github.com/nextcloud/mail/issues/9377)) ([210d79c](https://github.com/nextcloud/mail/commit/210d79cc9d88e185298409b00c48fb0681f2d297))\n* **deps:** bump @nextcloud/dialogs from 4.2.6 to v5 ([4679883](https://github.com/nextcloud/mail/commit/4679883e2eabc871bd4fcd171a18a47262635b9a))\n* **deps:** bump @nextcloud/files from 2.1.0 to v3 ([2de7e60](https://github.com/nextcloud/mail/commit/2de7e60c13ca3eda51aa7159779e706b22690e6a))\n* **deps:** bump @nextcloud/moment from 1.2.2 to ^1.3.1 (main) ([#9396](https://github.com/nextcloud/mail/issues/9396)) ([1932e0f](https://github.com/nextcloud/mail/commit/1932e0f427993f2554597f4050fcdf18a3a77beb))\n* **deps:** bump @nextcloud/router from 2.2.0 to ^2.2.1 (main) ([#9360](https://github.com/nextcloud/mail/issues/9360)) ([9dd2149](https://github.com/nextcloud/mail/commit/9dd2149922af23b4b3fc8506e7a695fc37d252bd))\n* **deps:** bump @nextcloud/router from 2.2.1 to v3 ([b11cd98](https://github.com/nextcloud/mail/commit/b11cd9849916668db903cad34b0180cbe70fee44))\n* **deps:** bump @nextcloud/vue from 7.12.6 to ^7.12.7 ([6af3637](https://github.com/nextcloud/mail/commit/6af36374027ad41a7f1fd9b5f8737c035315b019))\n* **deps:** bump @nextcloud/vue from 8.5.0 to ^8.6.2 ([f68dd5a](https://github.com/nextcloud/mail/commit/f68dd5aead98d77dcf7914fa8dc2ba6e03406301))\n* **deps:** bump @nextcloud/vue from 8.6.2 to ^8.10.0 ([33a3e38](https://github.com/nextcloud/mail/commit/33a3e383a6494c16674f6907d4cfcbe8e22a99dd))\n* **deps:** bump address-rfc2822 from 2.1.0 to ^2.2.0 (main) ([#9405](https://github.com/nextcloud/mail/issues/9405)) ([584ed59](https://github.com/nextcloud/mail/commit/584ed59235b1c248decbca3238343498ed37a152))\n* **deps:** bump core-js from 3.33.2 to ^3.33.3 (main) ([#9083](https://github.com/nextcloud/mail/issues/9083)) ([1393394](https://github.com/nextcloud/mail/commit/13933946ba76d1e6ec8d53b191bc7f88e401a98f))\n* **deps:** bump core-js from 3.33.3 to ^3.34.0 (main) ([#9166](https://github.com/nextcloud/mail/issues/9166)) ([4ee62af](https://github.com/nextcloud/mail/commit/4ee62afe03553201a5ecef5036974b96af92e8c2))\n* **deps:** bump core-js from 3.34.0 to ^3.36.0 (main) ([#9406](https://github.com/nextcloud/mail/issues/9406)) ([4afd9d8](https://github.com/nextcloud/mail/commit/4afd9d85fda87194dd7b26e2c93dfe76623d58e2))\n* **deps:** bump dompurify from 3.0.6 to ^3.0.9 (main) ([#9270](https://github.com/nextcloud/mail/issues/9270)) ([f72b9f4](https://github.com/nextcloud/mail/commit/f72b9f427179e032096481df7e0a9c6a29ac6c03))\n* **deps:** bump ezyang/htmlpurifier from 4.16.0 to v4.17.0 (main) ([#9085](https://github.com/nextcloud/mail/issues/9085)) ([a1e4110](https://github.com/nextcloud/mail/commit/a1e41106258eadeb1d98d5bb58e815c04f49aa00))\n* **deps:** bump iframe-resizer from 4.3.7 to ^4.3.9 (main) ([#9084](https://github.com/nextcloud/mail/issues/9084)) ([68c9672](https://github.com/nextcloud/mail/commit/68c96723f491461c3e06325d43a3cf908c5d2d1f))\n* **deps:** bump js-base64 from 3.7.5 to ^3.7.6 (main) ([#9361](https://github.com/nextcloud/mail/issues/9361)) ([6eadbce](https://github.com/nextcloud/mail/commit/6eadbcefd7dcd8f230f23fb26a6c26e03c41ad50))\n* **deps:** bump js-base64 from 3.7.6 to ^3.7.7 (main) ([#9378](https://github.com/nextcloud/mail/issues/9378)) ([cbe62e4](https://github.com/nextcloud/mail/commit/cbe62e4890887650fde156d254d6891f482d24c5))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.0 to ^1.0.2 (main) ([#9379](https://github.com/nextcloud/mail/issues/9379)) ([2132361](https://github.com/nextcloud/mail/commit/2132361862dc2c4774993544afcfcfbe3820228e))\n* **deps:** bump p-limit from 4.0.0 to v5 ([2b99aba](https://github.com/nextcloud/mail/commit/2b99aba140a505c63f787298e0a410a45b7beda4))\n* **deps:** bump sabberworm/php-css-parser from 8.4.0 to ^8.5.1 (main) ([#9409](https://github.com/nextcloud/mail/issues/9409)) ([0a52127](https://github.com/nextcloud/mail/commit/0a521273f4916b02479b44284ff06f95535484f1))\n* **deps:** bump stylelint from 15.11.0 to v16 ([5238442](https://github.com/nextcloud/mail/commit/5238442d0cd3f34c6e11e2ece208b2519b25a47d))\n* **deps:** bump vue monorepo from 2.7.15 to ^2.7.16 (main) ([#9380](https://github.com/nextcloud/mail/issues/9380)) ([f2015c4](https://github.com/nextcloud/mail/commit/f2015c4a9f433d470b9b33b52145ef81581bb3b5))\n* **deps:** bump vue-material-design-icons from 5.2.0 to ^5.3.0 (main) ([#9407](https://github.com/nextcloud/mail/issues/9407)) ([3c2db50](https://github.com/nextcloud/mail/commit/3c2db50eb68f3e629f67ea4f6d9d9fb50dcf13ca))\n* **deps:** bump webdav from 4.11.3 to v5 ([184fba5](https://github.com/nextcloud/mail/commit/184fba5ad2a1960aac7905b905c17ab7c0878559))\n* **deps:** Switch KItinerary vendor ([736731f](https://github.com/nextcloud/mail/commit/736731f1b0169178a8e2fc79a2c8fa073cc42e8c))\n* **encoding:** better character encoding ([176e074](https://github.com/nextcloud/mail/commit/176e074df28a0a6d0c335ff141648743d3cb96c7))\n* Hack CSS to restore envelope styling ([d8c9f4e](https://github.com/nextcloud/mail/commit/d8c9f4edf898d11fb81e59273697a7cc3e663da6))\n* **imap:** Only rate limit actual auth errors ([b19918d](https://github.com/nextcloud/mail/commit/b19918dbd5d1f63aef32d6c738bc9a45117e2832))\n* **imap:** Pass flags as array for the STORE command ([4d1879d](https://github.com/nextcloud/mail/commit/4d1879d3e25777c69108ba8093d6c2888173e0da))\n* improve autoresponder time zone handling ([f0847be](https://github.com/nextcloud/mail/commit/f0847be20afb86850f57d40cd03ab0f052219846))\n* **integration:** Allow LLM event titles/agendas for non-admins ([2823ea2](https://github.com/nextcloud/mail/commit/2823ea27bf876b3e66750133f3ba8681fc2d00a6))\n* listen to more out-of-office events to prevent missed changes ([ee63978](https://github.com/nextcloud/mail/commit/ee639783bab0576eb12814f0c69d418ff83ea49e))\n* **message:** Translate task description label ([8887dbb](https://github.com/nextcloud/mail/commit/8887dbb3d1ddf5a320c4416daad2527d14d546d3))\n* **navigation:** Only make mailboxes with children collapsible ([ae43682](https://github.com/nextcloud/mail/commit/ae436822833038ec497db04836f6a63ce34310a0))\n* only load thread summary for threads with at least 3 messages. ([88ad956](https://github.com/nextcloud/mail/commit/88ad956d2e8dd059bde23daea9d076c695890b08))\n* **provisioning:** Clean up orphaned accounts ([ed228bb](https://github.com/nextcloud/mail/commit/ed228bb807db59a17b2250c92a20af7083c028fb))\n* **provisioning:** Do not require master password if disabled ([410e9bb](https://github.com/nextcloud/mail/commit/410e9bba356aa9d3508169be256ffe5d4f6c7244))\n* **quota:** don't divide by limit zero ([dd788e7](https://github.com/nextcloud/mail/commit/dd788e74df60acc4ca92afb0573a1de1e7d3797a))\n* **search:** Align advanced search UI elements better ([7b42142](https://github.com/nextcloud/mail/commit/7b4214215cd10b3ffea5a1eddfb2ba6435dd2646))\n* **search:** Reduce advanced search icon size ([6042454](https://github.com/nextcloud/mail/commit/60424542fbd8d2cf466506fbaaf28de0f6964d27))\n* **setup:** Fix rate limit annotation syntax ([#9216](https://github.com/nextcloud/mail/issues/9216)) ([a3f1970](https://github.com/nextcloud/mail/commit/a3f197033a8f3ed3636177a4af9310564157d3c2)), closes [nextcloud/mail#9170](https://github.com/nextcloud/mail/issues/9170) [/github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php#L66](https://github.com//github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php/issues/L66)\n* **setup:** Increase rate limit ([89876e1](https://github.com/nextcloud/mail/commit/89876e13b3e94082582c8fd466261c5c12319e43))\n* **setup:** Sort MX records by weight ([684a215](https://github.com/nextcloud/mail/commit/684a215e8119d4f30b826c1da63a1f83972fb3cd))\n* **setup:** Use MX record TLD for ISPDB lookup ([1b2f3a0](https://github.com/nextcloud/mail/commit/1b2f3a012fb8be2ac2ec6dc5fb4294bff9a4e618))\n* **setup:** Use MX sort result ([da9b578](https://github.com/nextcloud/mail/commit/da9b57815fe223468fbe60630346c38da920f934))\n* **smime:** alias to cert mapping in account settings ([ed7c152](https://github.com/nextcloud/mail/commit/ed7c15297f00c24e122d87c0eea029d23d670bbc))\n* **sync:** force full sync when the server reports QRESYNC ([eacd84c](https://github.com/nextcloud/mail/commit/eacd84c7b279e3b0659611f8e0fe9628ed3a207a))\n* Use property_exists for SimpleXMLElement checks ([3e8aeec](https://github.com/nextcloud/mail/commit/3e8aeec36a141961f31ae69d46a9e3cb123ce024))\n\n\n### Features\n\n* apply personal out-of-office data to the auto responder ([3cbdf1f](https://github.com/nextcloud/mail/commit/3cbdf1f302aa136db72feda1e32bbdb76f3622ee))\n* **composer:** Use editor toolbar instead of balloon ([e9f068f](https://github.com/nextcloud/mail/commit/e9f068fd0c225f48cbc031b929743edb4155e31a))\n* **deps:** Support Nextcloud 29 ([5b43ae2](https://github.com/nextcloud/mail/commit/5b43ae2a19ff88f463369e8e232d76cefd9fb86c))\n* **integration:** Combine all LLM feature flags ([8c934bd](https://github.com/nextcloud/mail/commit/8c934bd74785abc8b43fb2e5f33fcb8ba3f8ae86))\n* **integration:** Support DESCRPTION for events ([f80bef4](https://github.com/nextcloud/mail/commit/f80bef4dbb0426903dabe019b75f6ef6801b115b))\n* **integration:** Use LLM to fill event details ([eab26c4](https://github.com/nextcloud/mail/commit/eab26c477374cb2179f433e36d4ff0ace0ba9582))\n* move threads not messages in drag-and-drop ([c18a1e4](https://github.com/nextcloud/mail/commit/c18a1e46b389130d53140380c46f85b4216c9a76))\n* **smime:** allow selection of untrusted certs ([6111216](https://github.com/nextcloud/mail/commit/611121620e0d489216d2aa2de569ba54a397079a))\n\n\n### Performance Improvements\n\n* Add performance logger to clean up ([48550d6](https://github.com/nextcloud/mail/commit/48550d64dae9d7483fec21941cb4df7f4ae12e65))\n* **db:** Add message_id index for mail_messages table ([7e32031](https://github.com/nextcloud/mail/commit/7e32031d563a0437fbbe382807e9e8b1ca74f2e2))\n* **db:** optimise indices of mail tables ([4c356d6](https://github.com/nextcloud/mail/commit/4c356d6995d1ce6a38763f855e309dfb02e37eeb))\n* **sync:** Reduce db operations for accounts without CONDSTORE ([413dfbb](https://github.com/nextcloud/mail/commit/413dfbb6b0e772ebe0b44f75f6a6057582165b8f))\n\n\n\n# [3.5.0-beta3](https://github.com/nextcloud/mail/compare/v3.5.0-beta2...v3.5.0-beta3) (2023-11-14)\n\n\n### Features\n\n* **advanced-search:** allow date and recipient search ([8e12c63](https://github.com/nextcloud/mail/commit/8e12c633ddd3c20c70099c9ab94705d9eb44f7f0))\n\n\n\n# [3.5.0-beta2](https://github.com/nextcloud/mail/compare/v3.5.0-beta1...v3.5.0-beta2) (2023-11-09)\n\n\n### Bug Fixes\n\n* **accessibility:** Add arial-label to NcActionButtons without text ([7c440e1](https://github.com/nextcloud/mail/commit/7c440e130e6cb3ff4ca3cd76f01d0262a18c1d03))\n* add expiration for itinerary cache ([4c60847](https://github.com/nextcloud/mail/commit/4c608472c08c465713b9e14f32877dd23ce0e4e2))\n* Add missing background box for redirect page ([953998e](https://github.com/nextcloud/mail/commit/953998e0af98453f5f2cf3edfe7f10bc489c431c))\n* add preview enhancement job to new accounts joblist ([09ba345](https://github.com/nextcloud/mail/commit/09ba345edf21d6a13ca994b672af215dd37e3052))\n* Allow dynamic autoloading for classes added during upgrade ([d81bcca](https://github.com/nextcloud/mail/commit/d81bcca8c147019b506f6011ce9c8863f18814b3))\n* allow sending of messages with empty body content ([646ccfe](https://github.com/nextcloud/mail/commit/646ccfe38e54877d06de934ee61774a4688d1dfb))\n* archiving messages via shortcut ([0569444](https://github.com/nextcloud/mail/commit/0569444b2908b17198ba4419679ee0322dd639ac))\n* **attachments:** fetch message once when saving attachments in files ([f7921f1](https://github.com/nextcloud/mail/commit/f7921f19106b0e0584fccb5260b0c0a544706b4d))\n* **autocomplete:** make system address book searchable not just full matches ([d8be257](https://github.com/nextcloud/mail/commit/d8be2578ca29e272e334c7ec69467c9c5ea25edf))\n* **avatar:** Validate favicon hosts ([4d63219](https://github.com/nextcloud/mail/commit/4d6321962973c947b21181cc9ffb7e272d9cb926))\n* **bgJob:** Fix DB-Query for open drafts ([4530a34](https://github.com/nextcloud/mail/commit/4530a34ec5e69a4d94e3af62636f430760f29234))\n* button style ([6bb69c7](https://github.com/nextcloud/mail/commit/6bb69c7f0c5e61b40a31ce5a3bb1e3a3d8ef0932))\n* Check strict cookies for image proxy ([be36e3e](https://github.com/nextcloud/mail/commit/be36e3e342c0d889670ac80434f07c5cabba6159))\n* **classification:** Delete historic data ([8e1e5ea](https://github.com/nextcloud/mail/commit/8e1e5ea65f6db951a95cdec50f50d3f29880a554))\n* **classification:** refactor persistence ([a23dac9](https://github.com/nextcloud/mail/commit/a23dac94a52d98cd7c64d62944b7d217bb8a0170))\n* **cleanup:** clean up mail_message_tags and mail_tags ([68e0b9b](https://github.com/nextcloud/mail/commit/68e0b9b0c1efd1efe9b73daabd3d81a9ccf6dfc4))\n* **composer:** add gap between primary actions ([4a90cd8](https://github.com/nextcloud/mail/commit/4a90cd809c0e2e7f6e9ff652f1f885e3568cbb41))\n* **composer:** forward messages as attachments ([81fbc14](https://github.com/nextcloud/mail/commit/81fbc143aea28dbdf220c9e57390b4de11583eba))\n* Convert drafts to outbox messages before sending ([b74afd3](https://github.com/nextcloud/mail/commit/b74afd3fee114ff9b0e1460c12e95a20d2c71a09))\n* dashboard loading forever ([bac8f1a](https://github.com/nextcloud/mail/commit/bac8f1ae8ba32f2c3b69cc96258f907e9839f0d9)), closes [/github.com/browserify/node-util/issues/57#issuecomment-764436352](https://github.com//github.com/browserify/node-util/issues/57/issues/issuecomment-764436352)\n* **db:** Identify retention and snooze mailboxes uniquely ([af20473](https://github.com/nextcloud/mail/commit/af20473aa7ddd6c80235d33535ad9a8eb14b2fa3))\n* **db:** Run read-write-update of mailboxes in transaction ([f6154c5](https://github.com/nextcloud/mail/commit/f6154c528aadc43021987de967401682c9797563))\n* deprecation warning for drafts controller test ([07c15f2](https://github.com/nextcloud/mail/commit/07c15f2b26cb5f97654f57d80df767d735faac91))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 33.0.1 to v34 ([96d13ae](https://github.com/nextcloud/mail/commit/96d13ae7941c667f1a37e3f7eb7cf47f0c369116))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.0.2 to ~34.1.2 ([86242da](https://github.com/nextcloud/mail/commit/86242da8c90991f32dc8e6a9d7bd19b51519a632))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.2 to ~34.1.3 ([85fa23a](https://github.com/nextcloud/mail/commit/85fa23a4c9ab6e672db1071e87067c94af2fb145))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.3 to v35 ([092a0dd](https://github.com/nextcloud/mail/commit/092a0dd1d77c8739cbfa175cbf4112db572284e5))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.3 to ~35.0.6 ([99f336f](https://github.com/nextcloud/mail/commit/99f336f1015def3a7c24e6d8d81d5f2f0bf6b721))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.6 to v37 ([d7822c1](https://github.com/nextcloud/mail/commit/d7822c12b2eec3c88764b98042332da3a4be449f))\n* **deps:** bump @nextcloud/auth from 2.0.0 to ^2.1.0 ([d8855ce](https://github.com/nextcloud/mail/commit/d8855ce558315176129d9e2f6875921853a6eaff))\n* **deps:** bump @nextcloud/auth from 2.1.0 to ^2.2.1 (main) ([#8887](https://github.com/nextcloud/mail/issues/8887)) ([a3d2a77](https://github.com/nextcloud/mail/commit/a3d2a77d44b047fd304e76ad7f1833f39d5e31d8))\n* **deps:** bump @nextcloud/axios from 2.3.0 to ^2.4.0 ([eb29ab7](https://github.com/nextcloud/mail/commit/eb29ab77b38ef8b51c36cd6a94c6d587ac7d62ac))\n* **deps:** bump @nextcloud/calendar-js from 3.2.0 to v5 ([bcee50a](https://github.com/nextcloud/mail/commit/bcee50a852bae25850ec802d5378fd978d28b7df))\n* **deps:** bump @nextcloud/calendar-js from 5.0.3 to ^5.0.4 ([67d6099](https://github.com/nextcloud/mail/commit/67d6099971d5ba7fe619d95a36cb0e48ec8033f3))\n* **deps:** bump @nextcloud/calendar-js from 5.0.4 to ^5.0.5 ([a3df9dc](https://github.com/nextcloud/mail/commit/a3df9dcd7f17f53699a615b8f17fb85ebe4072a8))\n* **deps:** bump @nextcloud/calendar-js from 5.0.5 to v6 ([1bfce7e](https://github.com/nextcloud/mail/commit/1bfce7e8f794607e47b962ef83d499a40f52981d))\n* **deps:** bump @nextcloud/calendar-js from 6.0.0 to ^6.0.1 ([9da3cb1](https://github.com/nextcloud/mail/commit/9da3cb105b419c8155888f1681935ae4cfe9427d))\n* **deps:** bump @nextcloud/dialogs from 3.2.0 to v4 ([1086158](https://github.com/nextcloud/mail/commit/10861585a80b9d42955e196c167928a92ce6204b))\n* **deps:** bump @nextcloud/dialogs from 4.0.1 to ^4.1.0 (main) ([#8662](https://github.com/nextcloud/mail/issues/8662)) ([8e05e5c](https://github.com/nextcloud/mail/commit/8e05e5c1bc6f7e5b7c41bf315484918281eedd8d))\n* **deps:** bump @nextcloud/initial-state from 2.0.0 to ^2.1.0 (main) ([#8691](https://github.com/nextcloud/mail/issues/8691)) ([46f47ec](https://github.com/nextcloud/mail/commit/46f47ec7f94864caabcb27a69b2f851f84d2d105))\n* **deps:** bump @nextcloud/l10n from 2.1.0 to ^2.2.0 (main) ([#8833](https://github.com/nextcloud/mail/issues/8833)) ([34a1ca0](https://github.com/nextcloud/mail/commit/34a1ca02a0ac7989b108fdb02311d2222bb92a6b))\n* **deps:** bump @nextcloud/logger from 2.5.0 to ^2.7.0 (main) ([#8888](https://github.com/nextcloud/mail/issues/8888)) ([74b0576](https://github.com/nextcloud/mail/commit/74b05768d7f0caf5dac155552cffccbe51a56185))\n* **deps:** bump @nextcloud/moment from 1.2.1 to ^1.2.2 (main) ([#8970](https://github.com/nextcloud/mail/issues/8970)) ([027069e](https://github.com/nextcloud/mail/commit/027069eb7ab742ae5fff34a8da9688b1bd69566d))\n* **deps:** bump @nextcloud/router from 2.0.1 to ^2.1.1 ([83267ef](https://github.com/nextcloud/mail/commit/83267ef03d146e32bab35beb36424ddb1fdc82cd))\n* **deps:** bump @nextcloud/router from 2.1.1 to ^2.1.2 ([4bcf00b](https://github.com/nextcloud/mail/commit/4bcf00bb21d3ad519245f17e114ffe946137143f))\n* **deps:** bump @nextcloud/router from 2.1.2 to ^2.2.0 (main) ([#8999](https://github.com/nextcloud/mail/issues/8999)) ([0b9ccea](https://github.com/nextcloud/mail/commit/0b9ccea3abf7807faef10828ecbe03232900ff3e))\n* **deps:** bump @nextcloud/vue from 7.11.3 to ^7.11.4 ([756b508](https://github.com/nextcloud/mail/commit/756b50801c04fe4627175a8469824775003f833f))\n* **deps:** bump @nextcloud/vue from 7.11.4 to ^7.12.0 ([4f4c2e6](https://github.com/nextcloud/mail/commit/4f4c2e63835c8779fbd2baffcf834de5634388ae))\n* **deps:** bump @nextcloud/vue from 7.12.0 to ^7.12.1 ([d4ee8a1](https://github.com/nextcloud/mail/commit/d4ee8a129a68a512d4f2762b4e709439e8e968a2))\n* **deps:** bump @nextcloud/vue from 7.12.1 to ^7.12.2 ([2d6c7be](https://github.com/nextcloud/mail/commit/2d6c7be52b3214d151df19562fd9b7f44be35ac1))\n* **deps:** bump @nextcloud/vue from 7.12.2 to ^7.12.4 ([ef1f9b5](https://github.com/nextcloud/mail/commit/ef1f9b51407c5108bb5a5bb796ebd319896268eb))\n* **deps:** bump @nextcloud/vue from 7.12.4 to ^7.12.6 ([93d92ae](https://github.com/nextcloud/mail/commit/93d92ae227566595167cd989c65f2a899aa157cf))\n* **deps:** bump @nextcloud/vue from 7.5.0 to ~7.8.0 ([93d1016](https://github.com/nextcloud/mail/commit/93d1016a48435a6fbcc9165da126dbe9556a8907))\n* **deps:** bump @nextcloud/vue from 7.7.0 to ^7.7.1 ([6d012a3](https://github.com/nextcloud/mail/commit/6d012a3d0b316bd74e1f476280fbd68fb33bdf07))\n* **deps:** bump @nextcloud/vue from 7.8.0 to ^7.8.5 ([59d1982](https://github.com/nextcloud/mail/commit/59d1982e7b74f417a69c03643e15986be77d3d9c))\n* **deps:** bump @nextcloud/vue from 7.8.5 to ^7.11.3 ([ec4732b](https://github.com/nextcloud/mail/commit/ec4732bce76f6b1ea97e9f952f027459cf57acb0))\n* **deps:** bump @nextcloud/vue-dashboard from 2.0.1 to ^2.0.1 ([f636457](https://github.com/nextcloud/mail/commit/f63645707ac4d6e5478039ffc7f31e50f7717d55))\n* **deps:** bump arthurhoaro/favicon from 1.3.3 to ^1.3.4 (main) ([#8995](https://github.com/nextcloud/mail/issues/8995)) ([04fa7d0](https://github.com/nextcloud/mail/commit/04fa7d0d583b491c51cb9a87b357f03912904316))\n* **deps:** bump arthurhoaro/favicon from 1.3.4 to v2 ([88a6bf7](https://github.com/nextcloud/mail/commit/88a6bf7f0aade4fb0a153c1e6553c498d19e806d))\n* **deps:** bump bytestream/horde-imap-client from 2.32.0 to ^2.33.1 (main) ([#8862](https://github.com/nextcloud/mail/issues/8862)) ([4619663](https://github.com/nextcloud/mail/commit/4619663931caffae0c7da7eb7b0373b1ffcdafc1))\n* **deps:** bump cerdic/css-tidy from 2.0.3 to v2.1.0 (main) ([#8889](https://github.com/nextcloud/mail/issues/8889)) ([d88c084](https://github.com/nextcloud/mail/commit/d88c0845b47eb1a41be6fea7f1f6556813584015))\n* **deps:** bump christophwurst/kitinerary-bin from 0.3.0 to ^0.4 ([9e152bd](https://github.com/nextcloud/mail/commit/9e152bda26bc3d57c3e4c5b54b2fc0eaad74d9b6))\n* **deps:** bump christophwurst/kitinerary-sys from 0.2.0 to ^0.2.1 ([185760b](https://github.com/nextcloud/mail/commit/185760b914a995d0996ae502f8e14043140896a4))\n* **deps:** bump ckeditor family from 35.1.0 to v35.4.0 ([ecf545c](https://github.com/nextcloud/mail/commit/ecf545cf9d77c3d73512b4f07c522c9d33837785))\n* **deps:** bump ckeditor family from 35.4.0 to v37 ([baa8e33](https://github.com/nextcloud/mail/commit/baa8e33157f57fce5dec66f4e419567e74ff005a))\n* **deps:** bump ckeditor family from 37.0.1 to v37.1.0 ([ada9892](https://github.com/nextcloud/mail/commit/ada9892b482c18972cbe291ff2991a67b586122f))\n* **deps:** bump core-js from 3.28.0 to ^3.29.0 ([e9fdca5](https://github.com/nextcloud/mail/commit/e9fdca5c6969ac6fc25f8722e2c121c12a3bf6b5))\n* **deps:** bump core-js from 3.29.0 to ^3.29.1 ([0ae1b80](https://github.com/nextcloud/mail/commit/0ae1b809645babbe8a881863def49048c2444f98))\n* **deps:** bump core-js from 3.29.1 to ^3.30.1 ([a19e752](https://github.com/nextcloud/mail/commit/a19e7528a8b02819debde15b0013a590ee91dc66))\n* **deps:** bump core-js from 3.30.1 to ^3.30.2 ([b1f8354](https://github.com/nextcloud/mail/commit/b1f8354aa099f8bfcbc10bbc4960e5525b81f56c))\n* **deps:** bump core-js from 3.30.2 to ^3.31.0 (main) ([#8542](https://github.com/nextcloud/mail/issues/8542)) ([3f5cb32](https://github.com/nextcloud/mail/commit/3f5cb32ddec5c767ab647cc17c811409ab499cf6))\n* **deps:** bump core-js from 3.31.0 to ^3.31.1 (main) ([#8619](https://github.com/nextcloud/mail/issues/8619)) ([a204a78](https://github.com/nextcloud/mail/commit/a204a789a0f43e09c12f9133aee5937f56fc812c))\n* **deps:** bump core-js from 3.31.1 to ^3.32.2 (main) ([#8877](https://github.com/nextcloud/mail/issues/8877)) ([cd75e3c](https://github.com/nextcloud/mail/commit/cd75e3c3170564c4675c6a7a1b89a69032aa9189))\n* **deps:** bump core-js from 3.32.2 to ^3.33.0 (main) ([#8921](https://github.com/nextcloud/mail/issues/8921)) ([9591a27](https://github.com/nextcloud/mail/commit/9591a27f717b6b84a15e96c172aa52bba3fda20c))\n* **deps:** bump core-js from 3.33.0 to ^3.33.1 (main) ([#8996](https://github.com/nextcloud/mail/issues/8996)) ([1e1e05d](https://github.com/nextcloud/mail/commit/1e1e05d871ea92b2cb427a236ea1df97ef7b1484))\n* **deps:** bump core-js from 3.33.1 to ^3.33.2 (main) ([#9039](https://github.com/nextcloud/mail/issues/9039)) ([9f8935f](https://github.com/nextcloud/mail/commit/9f8935f9c8dca1ec1af3a2bbc8435a8a42481b30))\n* **deps:** bump dompurify from 2.4.4 to ^2.4.5 ([4666628](https://github.com/nextcloud/mail/commit/466662877a31a3ad9ed2fa69b1eb7cd8a6125e6a))\n* **deps:** bump dompurify from 2.4.5 to v3 ([aac1a47](https://github.com/nextcloud/mail/commit/aac1a47b8e3c6b308bf331ab1077283133eb04b6))\n* **deps:** bump dompurify from 3.0.1 to ^3.0.2 ([6b5e91f](https://github.com/nextcloud/mail/commit/6b5e91fbeae6539a86e1bcf59381fff19ba019fc))\n* **deps:** bump dompurify from 3.0.2 to ^3.0.3 ([36b38fc](https://github.com/nextcloud/mail/commit/36b38fcdee9d1bc54481515d844a2f2a8733e354))\n* **deps:** bump dompurify from 3.0.3 to ^3.0.5 (main) ([#8600](https://github.com/nextcloud/mail/issues/8600)) ([bd916f4](https://github.com/nextcloud/mail/commit/bd916f44b1e5efaa73f70b2a37f9270e7565b927))\n* **deps:** bump dompurify from 3.0.5 to ^3.0.6 (main) ([#8913](https://github.com/nextcloud/mail/issues/8913)) ([520b22b](https://github.com/nextcloud/mail/commit/520b22bd744086c22c7934ea29ba1fd6f9ca2403))\n* **deps:** bump html-to-text from 9.0.4 to ^9.0.5 ([bb50bd3](https://github.com/nextcloud/mail/commit/bb50bd3ee49028ee9882bcad5ddd1b59e94edcaf))\n* **deps:** bump iframe-resizer from 4.3.4 to ^4.3.5 ([292a4ed](https://github.com/nextcloud/mail/commit/292a4eda417ec841b61874db5b3ceb0c12f67c4a))\n* **deps:** bump iframe-resizer from 4.3.5 to ^4.3.6 ([1258c20](https://github.com/nextcloud/mail/commit/1258c204a8b18b5454b41654089d73075fa6e108))\n* **deps:** bump iframe-resizer from 4.3.6 to ^4.3.7 (main) ([#8876](https://github.com/nextcloud/mail/issues/8876)) ([a0e1b75](https://github.com/nextcloud/mail/commit/a0e1b758a5b7b6e3aae9d96c2a2292c0446cf47f))\n* **deps:** bump ramda from 0.28.0 to ^0.29.0 ([dc1b797](https://github.com/nextcloud/mail/commit/dc1b797b2e1bd9320b73d3725299c85e3636adde))\n* **deps:** bump ramda from 0.29.0 to ^0.29.1 ([a7da9c5](https://github.com/nextcloud/mail/commit/a7da9c57c8666f0192f1fa68f0358e9821263b2b))\n* **deps:** bump rubix/ml from 2.3.0 to v2.3.1 ([3f3b8ab](https://github.com/nextcloud/mail/commit/3f3b8abf08855042ff04d779607f30584597dd76))\n* **deps:** bump rubix/ml from 2.3.1 to v2.3.2 ([b1d0c39](https://github.com/nextcloud/mail/commit/b1d0c39f0e061caf8d15481f5f67326c5fc428ec))\n* **deps:** bump rubix/ml from 2.3.2 to v2.4.0 (main) ([#8878](https://github.com/nextcloud/mail/issues/8878)) ([2bf6339](https://github.com/nextcloud/mail/commit/2bf6339760d4d654883f0f4768ed3a3567755f1c))\n* **deps:** bump stylelint from 14.16.1 to v15 ([58cc279](https://github.com/nextcloud/mail/commit/58cc279cc100ebe7a146f970b912839a6f79f608))\n* **deps:** bump stylelint from 15.10.1 to ^15.10.2 (main) ([#8652](https://github.com/nextcloud/mail/issues/8652)) ([55071f1](https://github.com/nextcloud/mail/commit/55071f1bfcb319b93be867e2a9993fe945eca7ba))\n* **deps:** bump stylelint from 15.10.2 to ^15.10.3 (main) ([#8794](https://github.com/nextcloud/mail/issues/8794)) ([19fb7d1](https://github.com/nextcloud/mail/commit/19fb7d13a55f29a4de1ac60ffacfcbfca1662a75))\n* **deps:** bump stylelint from 15.10.3 to ^15.11.0 (main) ([#8972](https://github.com/nextcloud/mail/issues/8972)) ([029a85e](https://github.com/nextcloud/mail/commit/029a85ec6283b5a5f64d8109ba3a086c24213105))\n* **deps:** bump stylelint from 15.6.0 to ^15.6.1 ([bb01248](https://github.com/nextcloud/mail/commit/bb012480e1bcc746f2410f6a2c41241609839eb9))\n* **deps:** bump stylelint from 15.6.1 to ^15.6.2 ([36919f8](https://github.com/nextcloud/mail/commit/36919f817dc88d104aa7efd63ab571fae7024ab9))\n* **deps:** bump stylelint from 15.6.2 to v15.10.1 ([03a1960](https://github.com/nextcloud/mail/commit/03a19607efa299c92c51cbb53df7d75e0392db7f))\n* **deps:** bump uuid from 9.0.0 to ^9.0.1 (main) ([#8861](https://github.com/nextcloud/mail/issues/8861)) ([c127802](https://github.com/nextcloud/mail/commit/c1278020abf4b0b2dc42687913d527c02f889279))\n* **deps:** bump vue monorepo from 2.7.14 to ^2.7.15 (main) ([#8998](https://github.com/nextcloud/mail/issues/8998)) ([048cfcf](https://github.com/nextcloud/mail/commit/048cfcf180064f8b02fb5be08776055bc4b91e56))\n* **deps:** bump webdav from 4.11.2 to ^4.11.3 (main) ([#8832](https://github.com/nextcloud/mail/issues/8832)) ([6a3eb86](https://github.com/nextcloud/mail/commit/6a3eb86ac548e23d7dd032c2553873c8848f0661))\n* **deps:** bump webpack to v5.76.0 ([283751c](https://github.com/nextcloud/mail/commit/283751c36c014f0f550a9324870f0f10b7aa5dc2))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 37.0.1 to 37.0.1 ([97d3f99](https://github.com/nextcloud/mail/commit/97d3f99dcc5a75f1b9d6d71553db877ea5d6dd94))\n* **deps:** pin dependencies ([04f90aa](https://github.com/nextcloud/mail/commit/04f90aac8fa8e3406c5678e1176a5eccc167c9cc))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-utils to ~33.0.1 ([b6c05fb](https://github.com/nextcloud/mail/commit/b6c05fb41716eecefd6edb7a74907e82c30030bf))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-webpack-plugin to ~31.1.13 ([1a6df4d](https://github.com/nextcloud/mail/commit/1a6df4dccbeb528935b57b7823554330cde584c6))\n* **deps:** update dependency @nextcloud/calendar-js to ^3.2.0 ([34e890f](https://github.com/nextcloud/mail/commit/34e890f6b140b0d660eb063e54abf5d539aa430c))\n* **deps:** update dependency @nextcloud/l10n to ^2.1.0 ([9e02ddf](https://github.com/nextcloud/mail/commit/9e02ddf783442d446081c749e670ac8896b35e67))\n* **deps:** update dependency @nextcloud/logger to ^2.5.0 ([63fa8fc](https://github.com/nextcloud/mail/commit/63fa8fcd18fd3be24d59fc8877a52af33956dbf5))\n* **deps:** update dependency @nextcloud/router to ^2.0.1 ([640cb16](https://github.com/nextcloud/mail/commit/640cb16318de8b66d8594983696d0326eb04bdc5))\n* **deps:** update dependency arthurhoaro/favicon to ^1.3.3 ([3dd40d9](https://github.com/nextcloud/mail/commit/3dd40d9c983d230257c26033d56c609a885b2834))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.8.2 ([72a6c3d](https://github.com/nextcloud/mail/commit/72a6c3da4051f6fbe80dcf5f9fbca60e8e6a7902))\n* **deps:** update dependency bytestream/horde-exception to ^2.2.0 ([c6a22fb](https://github.com/nextcloud/mail/commit/c6a22fb5145f96cc6f0f1583b4a7712fe76dd5aa))\n* **deps:** update dependency bytestream/horde-imap-client to ^2.32.0 ([fd710ca](https://github.com/nextcloud/mail/commit/fd710caa1bc5c8e1d0273c50ad1af779e3779262))\n* **deps:** update dependency bytestream/horde-mail to ^2.7.1 ([e7f928a](https://github.com/nextcloud/mail/commit/e7f928aa0445e360a6c8148d3cd07b87c920b285))\n* **deps:** update dependency bytestream/horde-mime to ^2.13.0 ([9ba0faa](https://github.com/nextcloud/mail/commit/9ba0faaf21c7a488d7bd68b659d0bf0792ae4b57))\n* **deps:** update dependency bytestream/horde-stream to ^1.7.1 ([32dd650](https://github.com/nextcloud/mail/commit/32dd6505b093c91c688231f6297147d2f6462220))\n* **deps:** update dependency bytestream/horde-stringprep to ^1.2.1 ([6899089](https://github.com/nextcloud/mail/commit/6899089b54536f6887ac0ed8fb0bfd85c64e3dbe))\n* **deps:** update dependency bytestream/horde-support to ^2.4.0 ([0815416](https://github.com/nextcloud/mail/commit/0815416339873da5fcac33742d2e9564311a71c4))\n* **deps:** update dependency bytestream/horde-text-filter to ^2.5.0 ([c3e551a](https://github.com/nextcloud/mail/commit/c3e551ad07f1cfd0bae89b503526807c8d7dab5f))\n* **deps:** update dependency bytestream/horde-util to ^2.7.0 ([3189a16](https://github.com/nextcloud/mail/commit/3189a1662e5fc3473cb517a0bdc94d45773d154c))\n* **deps:** update dependency core-js to ^3.28.0 ([6024f02](https://github.com/nextcloud/mail/commit/6024f025b649fe714a36cd4544c706868e8cf403))\n* **deps:** update dependency dompurify to ^2.4.4 ([f5e1f7a](https://github.com/nextcloud/mail/commit/f5e1f7a322fe3324342f12a92c6df41352713950))\n* **deps:** update dependency html-to-text to ^9.0.4 ([8cd5302](https://github.com/nextcloud/mail/commit/8cd53027c1e893bcb5f3dc32cc03b3ccd8a85943))\n* **deps:** update dependency html2text/html2text to ^4.3.1 ([e7c6575](https://github.com/nextcloud/mail/commit/e7c65752296babeb30fb2ffce4d9be7755cff9e4))\n* **deps:** update dependency iframe-resizer to ^4.3.4 ([b0b5368](https://github.com/nextcloud/mail/commit/b0b536802116bc562b89b9e849253b34c98b0427))\n* **deps:** update dependency js-base64 to ^3.7.5 ([e0d0502](https://github.com/nextcloud/mail/commit/e0d0502a0f6c943022987ebafb70dd971557a0b0))\n* **deps:** update dependency nextcloud/horde-smtp to ^1.0.2 ([de218de](https://github.com/nextcloud/mail/commit/de218de8faf08072fd032ab7516efbd07f3b1969))\n* **deps:** update dependency sabberworm/php-css-parser to ^8.4.0 ([18dc8ca](https://github.com/nextcloud/mail/commit/18dc8cacc7d8d2d1c20f29e89a3f377276be0550))\n* **deps:** Update voku/* to fix PHP8.2 warnings ([5b816be](https://github.com/nextcloud/mail/commit/5b816be463bfb11b6306b33f89bb293930028150))\n* **deps:** Update wamania/php-stemmer and voku/portable-utf8 ([f176956](https://github.com/nextcloud/mail/commit/f176956aff7d299dc148b4865fccc0792be99556))\n* downgrade nextcloud/vue to 7.8.0 to fix envelope list ([7c7da66](https://github.com/nextcloud/mail/commit/7c7da66a3704846de3b5ab29ab3ba1f5d2fc3ce5))\n* **drafts:** delete old draft when saving new version ([d7a9370](https://github.com/nextcloud/mail/commit/d7a93709b8af95a1a153f805bf518bb4c498c201))\n* drop index on mail_messages_retention.message_id ([a884ebf](https://github.com/nextcloud/mail/commit/a884ebf2ea187c78c2d8a0837bc848c15a8b42e9))\n* drop unique index on mail_messages_snoozed.message_id ([d7e397e](https://github.com/nextcloud/mail/commit/d7e397e5844d47a23bb8cfa339560b76ac995049))\n* endless loop on mailbox initialization ([0048e40](https://github.com/nextcloud/mail/commit/0048e4002cf6c91680c8855b2a41c91708d85e1c))\n* **envelope menu:** prevent modals from closing automatically ([b0209f1](https://github.com/nextcloud/mail/commit/b0209f1aae8190812fa07ed275d44fd80e352c08))\n* handle attachments without transfer encoding properly ([8c3c248](https://github.com/nextcloud/mail/commit/8c3c248c585ba8da036cd8bc3cc2cdfc79ad02f3))\n* handling of envelope fetch error messages ([d4a5e8e](https://github.com/nextcloud/mail/commit/d4a5e8e9c697ad27c0c63f81e2872d33cfef3cb1))\n* Harden outbox/draft message retrieval of shared storage ([2eaa6eb](https://github.com/nextcloud/mail/commit/2eaa6eb145a6f856c402d71d4fe61869815ec6f3))\n* html-entitites via mb_convert_encoding was deprecated with php 8.2 ([71490a0](https://github.com/nextcloud/mail/commit/71490a0b02bbc0fd8844a5c39d44e609f4448986))\n* **i19n:** Changed grammar ([7a36cdb](https://github.com/nextcloud/mail/commit/7a36cdbbd2c02fa7254a6d53e28715bf827daec5))\n* **imap:** Chunk MessageMapper::findByIds by command length ([768d8f8](https://github.com/nextcloud/mail/commit/768d8f8ffc505c587686a13d97dbef017aaf23c7))\n* **imap:** Chunk UIDs by string length ([df9e386](https://github.com/nextcloud/mail/commit/df9e386bdd4e9b1d483acd07a94a9b04c6ac5dc2))\n* **imap:** Ignore no select mailboxes for MYRIGHTS ([426d51f](https://github.com/nextcloud/mail/commit/426d51f105d4103435a0a0875e25a0a635d33adf))\n* **imap:** Ignore non existent mailboxes (again) ([e5e6402](https://github.com/nextcloud/mail/commit/e5e640209fb140e6ff97b7bfaccd704801563764))\n* **imap:** Log exception of failed namespace fetch ([74159b2](https://github.com/nextcloud/mail/commit/74159b28a631567e6aa4582c09d84551e3a45ae1))\n* **imap:** Only fetch mailbox STATUS once ([9582004](https://github.com/nextcloud/mail/commit/9582004b27320a73ffe701e3fba6db9a2354ace3))\n* **mailbox cache:** Fix mailbox cache sync scope of current mailbox ([4d7c52d](https://github.com/nextcloud/mail/commit/4d7c52dc7069f7b940da31166cdfbede836a3fca))\n* **mailto:** show empty thread view on handler ([43bdb38](https://github.com/nextcloud/mail/commit/43bdb38ee501d3e884ac275b5dba4141643d1627))\n* **mailvelope:** hide the missing pgp key warning when mailevelope is disabled again ([ef2481f](https://github.com/nextcloud/mail/commit/ef2481f8b7bf7124fafc08ee4e36a5902828693f))\n* make nested toolbar working for signature editor ([8c0965c](https://github.com/nextcloud/mail/commit/8c0965c775ab672cf1a2c24f161bad35da71da4c))\n* Make no sent mailbox configurged exception readable ([7109f99](https://github.com/nextcloud/mail/commit/7109f998fa34e1920b917c1fb1e8859b957ba112))\n* Merge overlapping recipient popovers ([c2925f1](https://github.com/nextcloud/mail/commit/c2925f143385f6a7e0f76a3108e4173c7e1ef7a0))\n* **message-filter:** Show starred messages in Favourites again ([465d4e5](https://github.com/nextcloud/mail/commit/465d4e5d52d5cc847523641b554911095d2011cd))\n* move to.exact route option to a prop ([a10117c](https://github.com/nextcloud/mail/commit/a10117ced60837c8993f1e4f1b0a84a81f0d6f9d))\n* **outbox:** select correct account/alias when opening messages ([2471880](https://github.com/nextcloud/mail/commit/247188068f2c364939de10bfce92d25a93c590eb))\n* **php:** Fix ProvisioningMiddleware method return type ([aae086c](https://github.com/nextcloud/mail/commit/aae086cbcb408764d5c8279e17d4fe87f358248d))\n* Position thread envelope icons relative to avatar ([ae619aa](https://github.com/nextcloud/mail/commit/ae619aa46b950858b4bcff0ad545a4955f0c8d3e))\n* **preprocessing:** chunk message query ([62a1c98](https://github.com/nextcloud/mail/commit/62a1c98a83677b937dff8f890acd9db74e5c349a))\n* **provisioning:** Clear cache before returning ([961533d](https://github.com/nextcloud/mail/commit/961533db6b7d7633638d52cc862b638830929e64))\n* **provisioning:** Clear config cache after every mutation ([b6f7073](https://github.com/nextcloud/mail/commit/b6f707350de39c07728ab46f84e73d16c52fdc17))\n* **provisioning:** Return database ID of new configs ([81f35a2](https://github.com/nextcloud/mail/commit/81f35a2990c52c9aeda5b53ed48f34044a0d1beb))\n* **proxy:** Add image proxy rate limit ([18f886c](https://github.com/nextcloud/mail/commit/18f886c37bd48db00087143ae012e37405559c70))\n* **quota:** Rename placeholder and fix desktop notification ([cc87c54](https://github.com/nextcloud/mail/commit/cc87c54f02f6d084e7f3bd1ee7f1b3eecc15e515))\n* **Quota:** set job time insensitive and lower interval ([0e7f635](https://github.com/nextcloud/mail/commit/0e7f63572d47f6db021b22a333c29e0cff6ef951))\n* Rate-limit IMAP auth if the password is wrong ([6528dec](https://github.com/nextcloud/mail/commit/6528dec049e31b7718b9b03d08f0d672c84fb695))\n* regressions from ACL pulls ([6cde824](https://github.com/nextcloud/mail/commit/6cde82485907ddeb37c8edea497ebee9bd22fc45))\n* **retention:** properly clean orphans ([c99577d](https://github.com/nextcloud/mail/commit/c99577dccbccd39725dc29aba19e7b7c84ec454c))\n* Revert empty array checks in Horde Cache ([b780e7e](https://github.com/nextcloud/mail/commit/b780e7ea30f9db70c195d89a0de7307dc15523df))\n* saving preferences not extracting the returned value properly ([abe3205](https://github.com/nextcloud/mail/commit/abe3205d81848faeed9d95d63685a4289cd8e570))\n* **search:** Fix combining IMAP and DB search results ([3aabd7a](https://github.com/nextcloud/mail/commit/3aabd7a2a369ba4ab6f766d501045e959bdc6d5f))\n* **search:** Limit recipient joins to their types ([1bbb44b](https://github.com/nextcloud/mail/commit/1bbb44b6a888c697e5e241cd8abffa694f53c844))\n* **search:** URL-encode all parameters to preserve special characters ([1ef331c](https://github.com/nextcloud/mail/commit/1ef331c2707a1cf04183340ad78c067b3fbc4097))\n* **search:** Use corresponding table alias for recipient search ([2270a93](https://github.com/nextcloud/mail/commit/2270a931b5af7f2902b256a1471b2a251a917bfb))\n* **sender-details:** show contact names again ([b448594](https://github.com/nextcloud/mail/commit/b4485947b642af3b3751372ed0382808496db975))\n* **settings:** fix account settings modal close button ([dfbfaa3](https://github.com/nextcloud/mail/commit/dfbfaa3de38c5faf5a3040db72466ed2e0820c2d))\n* **setup:** Fix sending password for OAUTH accounts ([871ffc9](https://github.com/nextcloud/mail/commit/871ffc9b890555718d126b8e896ed0072acac72e))\n* **setup:** Fix storing password when we don't expect one ([964f665](https://github.com/nextcloud/mail/commit/964f665f1a935896a41f31b49916ad0facbc42b7))\n* **setup:** Rate limit auto config attempts ([a82b8ab](https://github.com/nextcloud/mail/commit/a82b8ab9cba4b17c0fdcd0a4ae4b2ac7744692cd))\n* share enumeration constraints on autocomplete ([1f4ad67](https://github.com/nextcloud/mail/commit/1f4ad67c6a23f053a8b8a3a3c669eabaf1753f49))\n* **sieve:** load sieve scipt on open settings ([5a7a04f](https://github.com/nextcloud/mail/commit/5a7a04f69f4ba8025bef4d68c64967c70eb2419e))\n* **sieve:** show feedback on syntax error ([3443da7](https://github.com/nextcloud/mail/commit/3443da78be8186fd12a1af94227afe607ef9fb25))\n* **smime:** add missing primary key to certificate table ([59e7728](https://github.com/nextcloud/mail/commit/59e77285e31e1d71f69763171e473dd7fed48b77))\n* **smime:** add missing ReturnTypeWillChange annotation ([6607f4d](https://github.com/nextcloud/mail/commit/6607f4df966a1557ac69c3dc4189e616fc0c9768))\n* **smime:** handle certificates with no emailAddress field ([3490178](https://github.com/nextcloud/mail/commit/3490178e3a5a2f96f383da297bcedf0bb83c789e))\n* **smime:** handle PKCS12 stores with multiple certificates ([1c445d0](https://github.com/nextcloud/mail/commit/1c445d0070e3562afff085fa302901305db8d0be))\n* **smime:** set primary key in first migration ([3a19298](https://github.com/nextcloud/mail/commit/3a1929879ad5fe190f6180c0d271ac9272e65e49))\n* **snooze:** Add cleanup orphan db entries ([bd184dd](https://github.com/nextcloud/mail/commit/bd184ddba9badf7cb808ee1143989b08996f1427))\n* **Snooze:** Add unsnooze action ([3f5f9dd](https://github.com/nextcloud/mail/commit/3f5f9ddd4ab193d0790a6bc88fd13c42f38ed17d))\n* **Snooze:** Allow snoozing gmail messages ([0a98404](https://github.com/nextcloud/mail/commit/0a984048ccdac67ac8bd0be0dd2e1a155ebd5bbd))\n* **snooze:** create snooze mailbox on first snooze ([d38e426](https://github.com/nextcloud/mail/commit/d38e4265d6de3f9d38fc386bedfc08cd8be4b733))\n* **snooze:** force sync of snooze mailbox ([4afdafc](https://github.com/nextcloud/mail/commit/4afdafcf1c802fff1b119b1ad073a8f4c1425c95))\n* **Snooze:** Move the message back to src mailbox on wake ([c5e2bee](https://github.com/nextcloud/mail/commit/c5e2bee1e463b2f8c2986837e939e42ec282c357))\n* **Snooze:** some minor changes ([326d48f](https://github.com/nextcloud/mail/commit/326d48fd85a2e6cafe6b27f63f0fb48976ae162f))\n* **Snooze:** Sort snooze mailbox as specialUse ([ad6b723](https://github.com/nextcloud/mail/commit/ad6b723e18f16c879b47d5dd051d0fe67718bb98))\n* **strings:** Explicit set/unset tag in TagModal ([51bc6a2](https://github.com/nextcloud/mail/commit/51bc6a2b221f7c7028079e0ad1584371357d6b94))\n* **strings:** Placeholders in SearchMessage comp ([80f7108](https://github.com/nextcloud/mail/commit/80f710835fa546105150de6aad5b8c4fe2612ea9))\n* **sync:** mailboxes not being synced due to short circuiting ([7c2c806](https://github.com/nextcloud/mail/commit/7c2c8063c8f7a4abb57ceb5e351efe1e8fe6e882))\n* **sync:** return if headers couldn't be parsed ([998bf34](https://github.com/nextcloud/mail/commit/998bf34b5c6f36d46c5e96237a79b77d9a09c737))\n* **tags:** Fix multiple tags with same label ([3773d0b](https://github.com/nextcloud/mail/commit/3773d0bcd263ac871d4bc518b4c18df6ecb2993b))\n* **tags:** Hide \"Has Cal\" tag ([87d3aa3](https://github.com/nextcloud/mail/commit/87d3aa3a54265e4aed44e0b561974c8a9a805a50))\n* **unsubscribe:** fix button style ([9142ada](https://github.com/nextcloud/mail/commit/9142ada5224cb23305f498cc709fd29395617471))\n* update interface to match implementation ([55f6c7e](https://github.com/nextcloud/mail/commit/55f6c7e131fa43eb9adde08df9343b2aa3cbb048))\n* update mocked time for new job interval ([1b83193](https://github.com/nextcloud/mail/commit/1b8319324eb1adcbb96c8f40d908763d483e109b))\n* use api to read input value ([89b3f9c](https://github.com/nextcloud/mail/commit/89b3f9ccc00dba84d7adb84684ed44f72749fe10))\n* **XOAUTH2:** Defer OAUTH account detection ([df69d19](https://github.com/nextcloud/mail/commit/df69d19ed22a6c7613c1843d931398c62c12b739))\n\n\n### Features\n\n* **acl:** check delete acl for move operation ([8d7a80b](https://github.com/nextcloud/mail/commit/8d7a80b8b1908244daa98b67f08f7eb7d46010ae))\n* **acl:** respect acl for MailboxInlinePicker ([83ff894](https://github.com/nextcloud/mail/commit/83ff89433031be3b0ea5953e302f9d88a2ef7b6d))\n* **acl:** Use shared folder icon for shared mailboxes ([c0687bf](https://github.com/nextcloud/mail/commit/c0687bf5f885e35f56a4ebc75cdd0c8520866eb0))\n* add snooze mvp ([e16b6a7](https://github.com/nextcloud/mail/commit/e16b6a75a4f5e24deacaa5a278d32f65062746f9))\n* add utility mailboxHasRights ([08d08bb](https://github.com/nextcloud/mail/commit/08d08bb6ba888b7277f8030f98d25316587a3e29))\n* Allow a configurable background sync interval ([89e009e](https://github.com/nextcloud/mail/commit/89e009ea22f1800008a9f12122d1b6392c5d2954))\n* **autoresponder:** implement subject placeholder ([42cae42](https://github.com/nextcloud/mail/commit/42cae425b6217c1173662db6aa1d3ca040a3f4a1)), closes [#7216](https://github.com/nextcloud/mail/issues/7216)\n* **classification:** refactor IExtractor::extractor ([1790f01](https://github.com/nextcloud/mail/commit/1790f01ba89d53e30730ce6bfc74e4db8d70d963))\n* compatibility layer for legacy exceptions ([118671f](https://github.com/nextcloud/mail/commit/118671f4d5d85f794f413592509cb7b23615777c))\n* delete tags ([50f0772](https://github.com/nextcloud/mail/commit/50f07725796317b00928c47e217f2c235eb37d69))\n* **deps:** Add Nextcloud 27 support ([aa32a2c](https://github.com/nextcloud/mail/commit/aa32a2c0b0fccead9cfb045085095bf0b3fc7613))\n* **deps:** Add Nextcloud 28 support ([6cc4d93](https://github.com/nextcloud/mail/commit/6cc4d930f935a717b505d1245ff41abaf92fab0e))\n* Easy unsubscribe from lists with http unsubscribe header ([491970a](https://github.com/nextcloud/mail/commit/491970abb12da520426b7a755f018281499bd35d))\n* Easy unsubscribe from lists with mailto unsubscribe header ([dc30fa6](https://github.com/nextcloud/mail/commit/dc30fa60adc173993c82436c24e71b184d5bc7f4))\n* exclude envelopes from junk from threading view ([4ddd3f6](https://github.com/nextcloud/mail/commit/4ddd3f635b10d082a39347c7d407fbbbd171e2af))\n* hide mailboxes when the user is not allowed to move something there ([fdca17f](https://github.com/nextcloud/mail/commit/fdca17fba11943da382cd8b56aac673fa5fc50cb))\n* **imap:** Persist if mailbox is shared or not ([4c27112](https://github.com/nextcloud/mail/commit/4c271120ff564c1ff9e728465c3d82bf92fa57c4))\n* implement trash retention ([de09050](https://github.com/nextcloud/mail/commit/de09050a3a03a3a762250566baa1c99ca400cf58))\n* load active sieve script on demand ([1a7fbc3](https://github.com/nextcloud/mail/commit/1a7fbc39fc791b175659250a5e24ed6a843dd418))\n* **mailbox sharing:** Read, cache and expose my ACL rights ([76d7d7c](https://github.com/nextcloud/mail/commit/76d7d7c9564000c9c52e7c43f7897458f326f34e))\n* move messages to junk folder ([45c5ab9](https://github.com/nextcloud/mail/commit/45c5ab9277ba50b2499ca05e7bf3e568d3ea1a44))\n* **occ:** Add ML prediction command ([98607e2](https://github.com/nextcloud/mail/commit/98607e26237d7c58ec5156421697b6a8ba3e7956))\n* One-click unsubscribe ([f2b61b3](https://github.com/nextcloud/mail/commit/f2b61b383b95cecaafd2fc078aa91999d8feb8f2))\n* parse mailto addresses ([6261efc](https://github.com/nextcloud/mail/commit/6261efcf2feffd37e0b11c6f2bc992235b9a0411))\n* plugin to insert smart picker links ([f34f69b](https://github.com/nextcloud/mail/commit/f34f69b3ab8d0be424cad49afbd70e8a0b93fd04))\n* remove cast to int ([fa5830b](https://github.com/nextcloud/mail/commit/fa5830b43af6bbea2622e5837d39a46aba1a4630))\n* remove toggle for move junk ([fd1437b](https://github.com/nextcloud/mail/commit/fd1437b7a2252e6cf7f62ac5775f2bc3e3f019fa))\n* Rework draft handling front-end ([f1f757e](https://github.com/nextcloud/mail/commit/f1f757e57bcf1fce74fa202c8e261eceb79a0dd4))\n* **search:** Match recipient labels too ([102a070](https://github.com/nextcloud/mail/commit/102a07060619432324729d7a50a56f7c5d5dfb91))\n* **search:** Use case-independent wildcard matches for recipients ([8955638](https://github.com/nextcloud/mail/commit/89556386b4a21fe37d879f93735caa95500342fe))\n* send multiple flags in a single request ([95319c0](https://github.com/nextcloud/mail/commit/95319c043bbafa32228b69fc0fa8626d056f31e8))\n* set app name for mail ([8005431](https://github.com/nextcloud/mail/commit/8005431d91a37d47223fbcd6a65a19790c6af6c1))\n* **settings:** add title to account settings modal ([9bd0f9f](https://github.com/nextcloud/mail/commit/9bd0f9f6bb8a43855cf0a885f6cac542984ce1af))\n* **smime:** decrypt incoming messages ([6fcb907](https://github.com/nextcloud/mail/commit/6fcb90796f4d0088d576aa56ada50bcc36b6ffc0))\n* **smime:** encrypt messages ([9c568b5](https://github.com/nextcloud/mail/commit/9c568b5e25d6f3eaf09d556e09825d5983d02077))\n* **smime:** import pkcs12 certificates ([5a1428a](https://github.com/nextcloud/mail/commit/5a1428ac3023ad93deedadf6565a8d6d8a643cbd))\n* **smime:** import smime certificates ([4c35589](https://github.com/nextcloud/mail/commit/4c35589f7cd52ca24cfec3b5630fbdc43d67e81d))\n* **smime:** show a warning when a signature is not verified ([e305db8](https://github.com/nextcloud/mail/commit/e305db89ac0b0480cd66cf105ec8dc6925700f73))\n* **smime:** sign outgoing emails ([c0db433](https://github.com/nextcloud/mail/commit/c0db433d75ec01b95fcbf629d6e6ceaf43ab57ec))\n* **smime:** verify signature of encrypted messages ([1efd801](https://github.com/nextcloud/mail/commit/1efd8013bcb241df128b1a5894308abe44e18edd))\n* **smime:** verify signed messages ([3ab22fa](https://github.com/nextcloud/mail/commit/3ab22fade847175938b4a39590bb6c63100461e0))\n* **snooze:** Disable snooze on AJAX cron ([49725af](https://github.com/nextcloud/mail/commit/49725af3a9365237168a15d4d11f3ab291d69bdd))\n* **unsubscribe:** validate dkim signature for one click unsubscribe ([448dabd](https://github.com/nextcloud/mail/commit/448dabd64427483f4bc3068c133ef20263e3ef6e))\n* use proper json response for getDkim ([35d824d](https://github.com/nextcloud/mail/commit/35d824dca070218bd492f118af431b9e841bff3f))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([1e28bc6](https://github.com/nextcloud/mail/commit/1e28bc60db0c0c3dac537b2422d37185299c2d4e))\n* **dashboard:** implement widget item api v2 ([19f21af](https://github.com/nextcloud/mail/commit/19f21af9914bc7cd338dc37e391bea75fb272aa3))\n* **frontend:** Load NewMessageModal async ([ab26e4b](https://github.com/nextcloud/mail/commit/ab26e4bb359c5fe9edd3f167ee0dd3e097904723))\n* **frontend:** Load the account settings modal async ([f7949b3](https://github.com/nextcloud/mail/commit/f7949b32320fc86b203a5ea8484deb00a9c0e907))\n* **imap:** Reduce number of STATUS commands for background mailbox sync ([f4b01d9](https://github.com/nextcloud/mail/commit/f4b01d9fa8adee1825abcc1c3a32268dc98c4856))\n* **PHP:** Use static closures where possible ([e02a205](https://github.com/nextcloud/mail/commit/e02a2051f517a10b9f0e521ce03759ed6652a3e7))\n\n\n### Reverts\n\n* Revert \"improve message preview\" ([04f1842](https://github.com/nextcloud/mail/commit/04f1842f105e4a57a4fdd9d16db4f5743dd054ce))\n* Revert \"fix(deps): update dependency @nextcloud/vue to ^7.7.0\" ([a5568e2](https://github.com/nextcloud/mail/commit/a5568e2cd49a8ef4ceb59dc6ee11f3bbff56b182))\n* Revert \"chore(deps): Enable renovate bumps on main\" ([255efb7](https://github.com/nextcloud/mail/commit/255efb7902349152cda31fa98fd1c711d6107393))\n* Revert \"Add Provision info to occ account:export command\" ([260dc4e](https://github.com/nextcloud/mail/commit/260dc4e2f9e09740a483e092fa5ef897f4adc56b))\n* Revert \"Explicitly specify Postgres 14 as NC25 isn't compatible with Postgres 15\" ([370c29e](https://github.com/nextcloud/mail/commit/370c29e27dc8c6f12aee4132df874f6792c20e85))\n\n\n\n# [2.0.0-RC1](https://github.com/nextcloud/mail/compare/v2.0.0-beta.7...v2.0.0-RC1) (2022-09-26)\n\n\n\n# [2.0.0-beta4](https://github.com/nextcloud/mail/compare/v2.0.0-beta3...v2.0.0-beta4) (2022-09-08)\n\n\n\n# [2.0.0-beta3](https://github.com/nextcloud/mail/compare/v2.0.0-beta1...v2.0.0-beta3) (2022-09-06)\n\n\n\n# [2.0.0-beta1](https://github.com/nextcloud/mail/compare/v1.14.0-beta1...v2.0.0-beta1) (2022-09-05)\n\n\n### Reverts\n\n* Revert \"Update vue to 5.4.0\" ([970bcc4](https://github.com/nextcloud/mail/commit/970bcc409e60f4abc6d0bf628cd5d60cd8995011))\n\n\n\n# [1.13.0-beta3](https://github.com/nextcloud/mail/compare/v1.13.0-beta1...v1.13.0-beta3) (2022-05-23)\n\n\n### Reverts\n\n* Revert \"Check account for currentness before reprovisioning it\" ([27fe297](https://github.com/nextcloud/mail/commit/27fe2975aac226aad344d7a54b0858d136565d91))\n\n\n\n# [1.12.0-rc.1](https://github.com/nextcloud/mail/compare/v1.11.0...v1.12.0-rc.1) (2022-04-14)\n\n\n### Reverts\n\n* Revert \"Add more logging to IMAP to DB conversion\" ([9ed5c3b](https://github.com/nextcloud/mail/commit/9ed5c3b2332137461d77da8b30cb66b02068a5ee))\n\n\n\n# [1.11.0](https://github.com/nextcloud/mail/compare/v1.11.0-rc1...v1.11.0) (2021-11-29)\n\n\n\n# [1.11.0-rc1](https://github.com/nextcloud/mail/compare/v1.10.0-RC.1...v1.11.0-rc1) (2021-11-18)\n\n\n### Bug Fixes\n\n* handle invalid imap message id ([b2cdc5a](https://github.com/nextcloud/mail/commit/b2cdc5a8ac1a061ed9521274d92a548074a0e1ca))\n\n\n\n# [1.10.0-RC.1](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.7...v1.10.0-RC.1) (2021-06-22)\n\n\n\n# [1.10.0-alpha.7](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.6...v1.10.0-alpha.7) (2021-06-10)\n\n\n\n# [1.10.0-alpha.6](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.4...v1.10.0-alpha.6) (2021-06-01)\n\n\n\n# [1.9.0](https://github.com/nextcloud/mail/compare/v1.9.0-alpha3...v1.9.0) (2021-03-03)\n\n\n\n# [1.9.0-alpha3](https://github.com/nextcloud/mail/compare/v1.9.0-alpha2...v1.9.0-alpha3) (2021-03-01)\n\n\n\n# [1.8.0](https://github.com/nextcloud/mail/compare/v1.7.0...v1.8.0) (2021-01-20)\n\n\n\n# [1.7.0](https://github.com/nextcloud/mail/compare/v1.6.0...v1.7.0) (2020-11-11)\n\n\n\n# [1.6.0](https://github.com/nextcloud/mail/compare/v1.5.0...v1.6.0) (2020-11-04)\n\n\n### Reverts\n\n* Revert \"Bump @ckeditor/ckeditor5-editor-balloon from 23.0.0 to 23.1.0\" ([fb1235c](https://github.com/nextcloud/mail/commit/fb1235cba31b12519f6b884e2774067eefe2a332))\n* Revert \"Bump @ckeditor/ckeditor5-alignment from 23.0.0 to 23.1.0\" ([f052364](https://github.com/nextcloud/mail/commit/f0523642f312727da08de1d5703992dd936868cf))\n* Revert \"Bump @ckeditor/ckeditor5-block-quote from 23.0.0 to 23.1.0\" ([edb4035](https://github.com/nextcloud/mail/commit/edb403518a06ec1ae47b5be9e070584f42b545ce))\n* Revert \"Bump @ckeditor/ckeditor5-heading from 23.0.0 to 23.1.0\" ([1a4c331](https://github.com/nextcloud/mail/commit/1a4c33165912d068d3003b3a6d859d9c8ae47682))\n\n\n\n# [1.5.0](https://github.com/nextcloud/mail/compare/v1.5.0-rc2...v1.5.0) (2020-10-02)\n\n\n\n# [1.5.0-rc2](https://github.com/nextcloud/mail/compare/v1.5.0-rc1...v1.5.0-rc2) (2020-10-02)\n\n\n\n# [1.5.0-rc1](https://github.com/nextcloud/mail/compare/v1.5.0-beta3...v1.5.0-rc1) (2020-09-29)\n\n\n\n# [1.5.0-beta2](https://github.com/nextcloud/mail/compare/v1.5.0-beta1...v1.5.0-beta2) (2020-09-22)\n\n\n\n# [1.5.0-beta1](https://github.com/nextcloud/mail/compare/v1.5.0-alpha3...v1.5.0-beta1) (2020-09-22)\n\n\n\n# [1.4.0-rc1](https://github.com/nextcloud/mail/compare/v1.4.0-beta2...v1.4.0-rc1) (2020-06-04)\n\n\n\n# [1.4.0-beta2](https://github.com/nextcloud/mail/compare/v1.4.0-beta1...v1.4.0-beta2) (2020-05-26)\n\n\n\n# [1.4.0-beta1](https://github.com/nextcloud/mail/compare/v1.3.3...v1.4.0-beta1) (2020-05-20)"}},"signatureDigest":"sha512"},{"version":"5.9.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.0-rc.2/mail-v5.9.0-rc.2.tar.gz","created":"2026-06-02T11:07:16.518548Z","licenses":["agpl"],"lastModified":"2026-06-02T11:07:16.615666Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"ezdURIy/XdEqnKNT0RWBQNzjSF+QpifLbZ95wzo+nI8ghxS1kPXhKReg63z8kHDFq9tl6yS4Tkjp69wGv8znhvM21sGeCuDiDhKHnFRfQpiISWLzQ/HnP2lhPevECHUChO/7guTHJrlqKw8ewAvsKl+UzbYSKYsmyJ0NxfM+2WbYy8aLhXjPaR5bsqv+BNQgHp+Su+kzyz+rk/dvUCPo9miToCeTghSwEzNLDUgf5/Km6MWfW0MnRaUYyB1CAYf4zI0zw4yql617iZZLd0HgNxW47eCmSHULWqWwQuwoPB166rhdxdsizHgc+b07n3/my4cAx05E8Z6ayRMpcMX0hXtuhppZmQqOIJtaAxAE7YdGnRUA2gTHz54vtNKhNcPAGPlt2bbELBwo8Vsap8EtsL7Z16zKecqU6t4sjhDY8Fef4XaiEkiTnyvBgOmHB1Pog0LrlsbZA+vGwVeYbqj860aer1EUCRN58KdaRkhN7KpIti0RQErRj9n3GKPHAb7C/gJd66pU3NXwHehkSjBTo4+x0PJVmk9wx9tz2FNJ1i2PynLikTZiekKkVk9eZjFPmgjyraQZAlCTovNE+gAia4WhOJbN56V2H4b03R8iD/XJ50vuAdvmLs0EyPovuo4U8ROUpiHhHus7oO0+X/KuGr9EX1QSPd10OxTuYXWIZJI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.9.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.0-rc.1/mail-v5.9.0-rc.1.tar.gz","created":"2026-05-27T06:30:26.969384Z","licenses":["agpl"],"lastModified":"2026-05-27T06:30:27.078337Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"pcoxO47XrCAARUnsUEWgpl3Kb0hl+bcgjYo6aNDArQS3oZwo1hkAv77Kn1wSNZf6xeOuRiPjJ202B0Fa/IV/JE3ALaed6J5zXT/dzNLIELrsTE21uZfJkFo1aaeL+yJhamNSNiogsO+f54eYMZNobvpPEDTaC4WFgxst4FLdfbmil56ucwb75g71JyBfZt/v4x9hJzD3JUyx5irl1MlC6sGNw2Jgq8f/p+JtpIMFu/K/R3+MdrlrJq3J+GL7H2TRxY10wklWGV6ropA7K8oSTIkborQxqST753+8DbPD2VVSzwB9NBkfW4xIZGlo7dDkutfobuPRq0lYMEDf1nUPVqAxZJNAUXHeGJLCvtaRIeTyLz6k4fBJl21eD+vwfV97yMrcpC5TV4ieg2ecYHdthEDUFLUnsjKqL4svmtExZtgd9LAAZKG/bkkFfTCOX5ui+BIAVfS4xjHb52fPimJ9pRwgB2zkrTFaL/J/9rPATTpnXQO0sT7OVz0LnnmlMHN8Ii5oMjwJYyx2CNnzPP1g2sLWAdscjKfCLIXUvhrf0G6qcGUB2mdixix2hW2Aj2z4rG9ylX5xYM1kMompxSIMK110b8CiDev2Tm/uJYT6pytvfCApK1y6+pC+OyZuNEupRkNUggll2223Umr6KOdtxiBkRuID3uRmnTdF793esR4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.9.0/mail-v5.9.0.tar.gz","created":"2026-06-03T06:41:26.661365Z","licenses":["agpl"],"lastModified":"2026-06-03T06:41:26.758455Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"fER+0R9sNrcZ5/DUtFiIaFyjR0zZ80tE4gamq7nMtyNVZWCFiYGjM8S2HZeOeyTWSCIIGeUhi7rV/TLdgmgizs77RE78QSU3fpBfEncb1AGAKWU+COHU7ihSF+oHB+zd207tvPqCQz9VQKxfRWN2AU5lOvKf6D3ni7/I/AvYrocAFs9Y1398lDv1oToSc9uUcbo4EG6h0cK0Bvsdu+OBPsMxBvp1MQe3nQI9rY19oVti0O4zo/IWa2A6GzMC/RAASRqfU9qBZF5Kbxni/Nk8aFNjQbMk7LBw0x2l08cSZi0uWlLjH0A/vwJEskiJQUr+SZiWYrurg3zwVgqw0fpnoNqG85S6OnsnGBnDwvjXGJwwPsX9F+FUtSDMbFe5s/un+XPbvjQ3eMnjNZZWt0yra5M760uB3MXuiz6UalDKhXQUQh6F8S1CFmLpxOuWjVkWGkJjys6c2uokEtv0+S0VWE4xvrXNLDnHrnkx9J96CQrXOR4dVd7muil4C9zDSlnTNWsRLIQ86NATWXgK+iPvy3J43x5Z6jl3M5VUQG/A+tgHs6AIV3jGwphVob/o42Zp/EI1jgGMFu6DqAsmpZ0kuUVkPxeRop0AcpqdXUNv7aQsFm9woNPvSNF8kkNkWmY0hq+jCR1UoJIdWSCWkKzfYcX7WiFfFJpIf0RM6mxclTQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.12.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.5/mail-v5.12.5.tar.gz","created":"2026-10-20T11:29:46.640202Z","licenses":["agpl"],"lastModified":"2026-10-20T11:29:46.747337Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"NTDlj6RxcfuQ51J32J6MgPdpVgTvW7YjOsit1B8Gp2pMa9N8J5oLZw6Ta8Hh68Uzfs6Q70+fN+jbme1bLdvmho02Pcog25JkoF98AEHHxV18wvmIuR2s9BfLs6flLfVKz1oEpYYm4HCZdZCHGwlx1fhSCNPqnffCR91viUdkmwpdujJkZYy0py4sdEmzcUpvGCP2qV11nui4YdyTJmQ3DaO69TqdBKTfkv1sD3ZJsK+6KTvHCVtwYIEwVEu4fv6zhnEOKvVZIdS0KOIH519JoDKJ9qjOWGz6gRtqbUrZlnO2yeKbuHs+e72IrNhHQuKuUMf+ngI4chJKE8v87t/k7gLxHRxDBJBWjGBd14ZT3NRzQ9A9GjMejtoj2WpM4XmioxvA4v/s9Li7Moz6qvZ07L4W9ljZO9jKLdPj/BNun/N+M25Xr/zyr5SO/OWHA3O5CHF1nGIg5e3w4vq0SJ77UFGjsn4sl1fdlA9ePpQcwCfkajPrb2B1dAZJG+G2fohcHF8poIQtsu3yMKHjHfCeSbpUVKmHPvpWO7oaQx+zyns2yOHqtttv65NE5jJ3WnTxW8hGrxHdJn0JQY1rJWgYGtzrJ4Q7uFf4OvzezSsa2qyt2LzNHqHtXQWia4+DFHIHGlNddi5QhADopaC5B5T8cgzIzm2CEH2PsBcUDv5St9w=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **contacts:** Prevent undefined array key when using ldap_contacts_backend app ([89f7591](https://github.com/nextcloud/mail/commit/89f7591eff7d35ff0728c697d69b06f91d2821eb))\n* **db:** bind tag ids as integers in tag search ([6a99430](https://github.com/nextcloud/mail/commit/6a994309ad50c3c510910487da63e48e5ce52c6d))\n* **db:** Use expression builder for JOIN conditions ([4129a4c](https://github.com/nextcloud/mail/commit/4129a4ce426c11c86020e56eeaedc401a911beae))\n* **deps:** bump dompurify from ^3.4.13 to v3.4.16 ([e9094b8](https://github.com/nextcloud/mail/commit/e9094b82c575fe7a636ce02cb9beecba92ad4311))\n* **deps:** Fix npm audit ([3c0fd96](https://github.com/nextcloud/mail/commit/3c0fd96489698aefb10815d43fcf04b866a70031))\n* **dns:** Update public suffix list ([2f703ee](https://github.com/nextcloud/mail/commit/2f703ee9ef0e840b5b5862a8361da085d3504536))\n* **drafts:** keep attachments when saving drafts to IMAP ([5e7e4de](https://github.com/nextcloud/mail/commit/5e7e4de19af32cb440396c1e3970302b707da85e))\n* **filters:** require at least one condition per mail filter ([8232447](https://github.com/nextcloud/mail/commit/823244782f76333083c4b480c0c4a2568fc60238))\n* handling attachment when it is the only part of the message ([663b12b](https://github.com/nextcloud/mail/commit/663b12b8367c0b87b906eff3e95cd9d15a57b9d1))\n* **l10n:** translate delete tag dialog title ([a60e003](https://github.com/nextcloud/mail/commit/a60e003c9f997980d66461b744b211afc8b4dac1))\n* **l10n:** Update translations from Transifex ([06072e1](https://github.com/nextcloud/mail/commit/06072e126b2332f97ba21e6adea31ea944fc6f3e))\n* **l10n:** Update translations from Transifex ([96f7f20](https://github.com/nextcloud/mail/commit/96f7f2004ef431dfdf4f93c16f5d899c2c3b8535))\n* **l10n:** Update translations from Transifex ([745b9e2](https://github.com/nextcloud/mail/commit/745b9e2fe92b9040e89ed02cd91a879de4dacd4f))\n* **l10n:** Update translations from Transifex ([c8afb97](https://github.com/nextcloud/mail/commit/c8afb9756fd5eb1faa38fb7daaa70682b2cb85d2))\n* **l10n:** Update translations from Transifex ([8ce1661](https://github.com/nextcloud/mail/commit/8ce16612f4abe5dc54a0b2d84369ca78ab0e17f0))\n* **l10n:** Update translations from Transifex ([9b41205](https://github.com/nextcloud/mail/commit/9b41205d4a68a34d37d7629c744ff8ab61e0e98c))\n* **l10n:** Update translations from Transifex ([85e185c](https://github.com/nextcloud/mail/commit/85e185cfc1eebedc9e257682d703001b3ba1bcc7))\n* **l10n:** Update translations from Transifex ([90bb1a2](https://github.com/nextcloud/mail/commit/90bb1a27c4fb814d95f538defafb5fb437203ea5))\n* **l10n:** Update translations from Transifex ([cd6d85f](https://github.com/nextcloud/mail/commit/cd6d85f7a5851038ff72d9d9f1cb76fe3b53b591))\n* **l10n:** Update translations from Transifex ([a279e05](https://github.com/nextcloud/mail/commit/a279e05216402077af004132c499e401d72f43d0))\n* **l10n:** Update translations from Transifex ([dbfd2d4](https://github.com/nextcloud/mail/commit/dbfd2d43a6b2593a33998d49d145560142488627))\n* **l10n:** Update translations from Transifex ([cab8db9](https://github.com/nextcloud/mail/commit/cab8db9eeceea57663b964612de0bd360fd2c975))\n* **l10n:** Update translations from Transifex ([92b93b6](https://github.com/nextcloud/mail/commit/92b93b6038c8e663b688751d04aba5c50813b431))\n* **l10n:** Update translations from Transifex ([5ffdf64](https://github.com/nextcloud/mail/commit/5ffdf6456647dd91b9d649c9693364096d43c83e))\n* **oauth:** store the rotated Microsoft refresh token ([a6add16](https://github.com/nextcloud/mail/commit/a6add16e99a9162535a531e486e824fb6f59fb72))\n* **ui:** remove redundant envelope fetch on mailbox switch ([9e6de6a](https://github.com/nextcloud/mail/commit/9e6de6a3548ab78de6649c0745805302f97f0151))\n* use pdf viewer instead of office ([0957f6b](https://github.com/nextcloud/mail/commit/0957f6bec906800ff839ce6e7209676145229fd2))\n\n\n### Performance Improvements\n\n* **db:** use subqueries for recipient and tag search ([d9fe475](https://github.com/nextcloud/mail/commit/d9fe475fee37939cc30f714d4f4d04f5a018c21a))"}},"signatureDigest":"sha512"},{"version":"5.12.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.4/mail-v5.12.4.tar.gz","created":"2026-10-06T17:55:49.051705Z","licenses":["agpl"],"lastModified":"2026-10-06T17:55:49.137363Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"SoK0/iznLUUAiE9sxUeYsBq9NP3qGllXoJ7l18nBdthAKan1ERsATC8oTuPVUsL1BMCN/sl4ER7f90LE7YFk6LFI1yiELa+F6GA2UsuDu0eBzVxGMuC+bLl+3ccuRYrZxXDW1Vd3Cmk1N0OsLM6ouVnzBKzWaaTtc6J99ptdLoHtKJMNsMp15D1khWfr0xDsKjSchXLgYdCUk0MmPGZBVUCkRO0yQcd6GF+JA3mvDAl5c5KVDGvE6+GpdsjdddVsNbe4J/bLUOSLe9ZNDDfd6vtjlri6DJeVvubc0mrmN5e9AH4QDpvxgU/I4kKxLdx+p7I6Q633qDIcyqdHtI42TLLpF+oCB/DJZK8jVH7FL+i/wpivc5uRcxBnVwT/APlvI/fUEYZP9tZo7sUQt8LVZsWsZSQZLgcV3L5gsa1zBvtmJ/BewEASI4djPbqfqG1kk1+M/Ayx7Ey2smydLQq1VqfEoxDt6CtUnoOAzVOjWz3jD+TzNvFNb9hx8x27cFDUgMz/TmaRCKDGEGCVonxrv+wAUVgz4sVL3KYOazDWvM6rJGhkT1X4u2n6iJaicIZuKDX4zMks9A8NXHUPFpFk5/hfeMeSoF2F+0R6olR+Twp8mAnw9S9+tdjbryyMec50BcXRVbp2X6poWBZz/x33YCHnTOrEhdIGHGyDoOPZUPk=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **ai:** back off exponentially after failed AI tasks ([7fa1aaa](https://github.com/nextcloud/mail/commit/7fa1aaac53756e445bf0e27f7a1c97f49190e286))\n* **aliases:** sort aliases by domain and localpart in store ([8b94f97](https://github.com/nextcloud/mail/commit/8b94f97c9dc14145c424e576ab93e4f7a4518021))\n* avatar endpoint doing user enumeration ([0ed3eba](https://github.com/nextcloud/mail/commit/0ed3eba378598e55798fad23f58a6dfef7cede46))\n* **dns:** Update public suffix list ([85af251](https://github.com/nextcloud/mail/commit/85af25148ceef42063895ff5efb4914df0141c61))\n* floating editor wide size ([42c14eb](https://github.com/nextcloud/mail/commit/42c14eba04b5c9c5e7786b6379d5b15d0e28efe9))\n* keep floating composer inside NcContent ([1510a30](https://github.com/nextcloud/mail/commit/1510a30b10373c8c4bb6f8eaf7aba61aaa762e5d))\n* **l10n:** Update translations from Transifex ([cc9ee02](https://github.com/nextcloud/mail/commit/cc9ee027f8c9231c0641492c451b1ae18bb418d0))\n* **l10n:** Update translations from Transifex ([9f48ac5](https://github.com/nextcloud/mail/commit/9f48ac50d01460fd99f03aff8c325ed124ff7085))\n* **l10n:** Update translations from Transifex ([1498828](https://github.com/nextcloud/mail/commit/14988288781e0eadad44b54625bb3cf894399186))\n* **l10n:** Update translations from Transifex ([94babff](https://github.com/nextcloud/mail/commit/94babff55f4950575fbffa6806bbd7af5eb8fd5b))\n* **l10n:** Update translations from Transifex ([7e0702b](https://github.com/nextcloud/mail/commit/7e0702b7af97eebc2b9df8bf20c2568dbbc223b1))\n* **l10n:** Update translations from Transifex ([70fbc34](https://github.com/nextcloud/mail/commit/70fbc345dfe4fa7c2a0aa4ab4c50317325db0fa7))\n* **l10n:** Update translations from Transifex ([0cf652b](https://github.com/nextcloud/mail/commit/0cf652b45163f22a1ebd3eb4b60782ed5eb9c173))"}},"signatureDigest":"sha512"},{"version":"5.12.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.3/mail-v5.12.3.tar.gz","created":"2026-09-29T19:05:00.945779Z","licenses":["agpl"],"lastModified":"2026-09-29T19:05:01.038990Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EHsCbeYU5v8ITDb1oe3eAav+1hlBxdWyleDMqXQShlDJZMrW2SRZyqTcRAWhn2xwDupnP1YATsfVIR5hsudWzW4FZl/mXjy4qE4J8FsXxieEoYCsf5MOAPktDfzVwGpTmnedVoED2OkH2zr0Q/HQwncVVZ2YUbZoBluMGVD1XsfOcjI4c9nS9R3xYWOotylLOjJhEfe2xogekEtZTJjgqym2h9lVGSkxbaUTjJ2POf7TQncSAtBh0ZAi17LmYJwChww4rUEspAlKx6rDWdYJld5J8PfYpJvJ/1F7f/BR5Y0t8+PWOhXHhLxWeCFNb94AxOFDW1wtIHe1sIFnFcR4VahhJ/loahALP12vF9V850TaLYGwZyjWsPbcGL14vW852idZP1SLYGnqHJxD05Fe+sakKNNWRrDWPfdtlJ20bzc92+cJSZ3hmYqT+DNSM/X44uzwQ0S+CCKM3oKRkJCy+ZUlpJI3IoYuN5Hm+aatne7f6peILfud93eKiEohv7z/7cCXgQSNERsUpZ8is0shxZLw6h1FEaDlYWwmEXGFrhW74T2DjWt0AWwVjryLF4tdcTLQ04MSrer0HYkPdlUYXzUP1WFfiRsdkPvj2yxDr3fAdyoVolylCzqKNOm0ZZu8qdh3m8QCPqR9/dU/3TXTnK6Q9c5A3auVVljzlWMIbT8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* detect octet-stream ICS attachments ([ad6075a](https://github.com/nextcloud/mail/commit/ad6075a4ae68e43631c5178078756e01fef223da))\n* **l10n:** Update translations from Transifex ([44aecd7](https://github.com/nextcloud/mail/commit/44aecd77ebb0c5ebfc4f7ebc0ade0e23080709fa))\n* **l10n:** Update translations from Transifex ([b501add](https://github.com/nextcloud/mail/commit/b501adde4a41995c9e606e98d5f20913593c9197))\n* **l10n:** Update translations from Transifex ([ff36bb4](https://github.com/nextcloud/mail/commit/ff36bb493f0f2a6a54e195362b904c1b5af5df0e))\n* Reset array after filtering ([c21efc1](https://github.com/nextcloud/mail/commit/c21efc12cf698a9029552150e802c21e7824f2c7))\n* **sync:** apply the search filter as a restriction ([d8dea32](https://github.com/nextcloud/mail/commit/d8dea321b2b05aedb0d67b1ebf5a70259e16e69e))\n\n\n### Performance Improvements\n\n* **db:** index the iMIP invitation scan ([dd695d0](https://github.com/nextcloud/mail/commit/dd695d0c21fbb0c830ac0b44c7ed4b9fe19f75db)), closes [#2](https://github.com/nextcloud/mail/issues/2)"}},"signatureDigest":"sha512"},{"version":"5.12.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.2/mail-v5.12.2.tar.gz","created":"2026-09-24T11:37:50.682242Z","licenses":["agpl"],"lastModified":"2026-09-24T11:37:50.800898Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"WNXmOmMbGHZJZ53bt2jOEl8ZdN/W4cEcm11VipjR3B+8V0OIXXrfQffYTlCzkPdpZ0NgZrD+gEluh0F5Fjc77/XmY02spX8f7B2O730L52EHpjd8uD25nZYYXFhJwkV/9IabFeks2b+vB02ThyupXk+yAx/2HQch7wjTQO/epL5ovue6zaIQMrkJzFQcCqCIwE6ocA7kYb4VaqoBCsL4EgMcbG0K97seu0wXBvLWlAmM/lUx0LG7QXRlPhgxdFnZkByUPuIAf9xkmFWISdEGAzPsY7YOgocGGd468/fLKyTWSqB1AEytaQfjcWpHU7V6Jitz1XfaY3vgYFSA6VCRrltqd9z9SkiJvyuPLc+RKn6BGTrR7p7kuSQrCrxn9Xn6kmEy3roJQFj2knf+0tT5CmJHKNflYEzsGHupm+1FsPn7leSPr6wop8YhM3/xmh36hw8YrS4AlgjJoVRL3eEpJM+IIQ2IiY9HIZWJ95ighYbg7aDMDzUrh5S6q2rHemcb/4/HEHwpTzl6YXRMeUoQPpJz6UxQR9+Uek+64a2TCJw4IdnxAlQK0eTFWBtkiAE3yIAdcrkQvbfG40lNnKVjvfVkX9RiujXpBoligF2sAu8hi4maEAATGuKxTLxAwWRmbbJusQ8kRKSFHWwRw8dy40tGPpB/xkxLJh4rje1Wt9Q=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **ai:** reduce summary tasks queued per user ([#13724](https://github.com/nextcloud/mail/issues/13724)) ([0e87da6](https://github.com/nextcloud/mail/commit/0e87da6a6ac038669450afe878480c78d62bf2f3))\n* **l10n:** Update translations from Transifex ([8780db5](https://github.com/nextcloud/mail/commit/8780db53a9e671dccdc6d77a14817555a109e01f))"}},"signatureDigest":"sha512"},{"version":"5.12.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.1/mail-v5.12.1.tar.gz","created":"2026-09-23T09:20:21.615359Z","licenses":["agpl"],"lastModified":"2026-09-23T09:20:21.735202Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"BDDpAAVzCMgir481Wlzfbj94u53HV73gJCvfK3WD/3B4pRsBYRDeDTYLHqac6pOXkBC7JNbQos5xegSOvldOEARIbGQlMuuAX3JplkKTKnA1XiR4QiIm6w+vJfdX2qKH6msleTFxFKO4zoEOBn9KkScw0RqDgML9nb6DjRnEt89mFHO/csmkEV2fzJmwVWIjd8JZasfQ+/9AYdqwtG/SkaW7/pjNL69eRMHm2FzZ1NTXBy+NSL9q7IsO4BauWAYcUNfSPIy1YUD1m3Sa1zL1Qld7bBbNqdDwSD0oJmrtzTHQRzDkwMP7cQ2kS3KH7Wu3Q1m/kAGATpMzbIKQzNDbF5uqMDubK7Qaiw6YeUbr3gAlJdywl5t9EeoNcVmzQwnDvxig6Se+Qcw5BEJxeC431Ed0T+O3nIcqT8VT9zKAecBtTUSYUwanRj8eu1OVAUuC8U9JnVCG0OHUx8wS4uxjBO1SP4jKXNv4hW8NaSax6J2j78iVuck1je/gVUYkSqY5gqHHPOqwqiwAKBeRtPoV3k1RUT99BA1upvnulrBWJxl5c9Icks7Tl6hmeiOo66DJyrFVNv6nO2LrCx834lfC2zXB8ep2dPBL0v09pIoVlyP3ixLnkrldPuiA0RC4bsF3V1rmLYIY4TEEk1PHBe1ZH72posSDk0bXqm5oYlw54lw=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **dns:** Update public suffix list ([91a956b](https://github.com/nextcloud/mail/commit/91a956b6e90d2c6d9155915efe51a9aa08b23b09))\n* **imap:** declare UTF-8 charset for IMAP search queries ([b500c6a](https://github.com/nextcloud/mail/commit/b500c6a507890dcf8867574e8d6cea33fb4d6564))\n* **l10n:** Update translations from Transifex ([8787bed](https://github.com/nextcloud/mail/commit/8787bed6807bb477944787bc4ff9e6659c844cd7))\n* **l10n:** Update translations from Transifex ([97f118b](https://github.com/nextcloud/mail/commit/97f118bbca568ca73fd1c51a1fc804818ae670d7))\n* **l10n:** Update translations from Transifex ([0e60045](https://github.com/nextcloud/mail/commit/0e600457cd77dcc769f658d3324ed819ffffdbe4))\n* **l10n:** Update translations from Transifex ([7825272](https://github.com/nextcloud/mail/commit/78252728fca5915e82bdd83085f49a357674f8df))\n* **l10n:** Update translations from Transifex ([69bbe25](https://github.com/nextcloud/mail/commit/69bbe2547f8fb378f9db1eb518e181b06bfc92fc))\n* **l10n:** Update translations from Transifex ([33c2b6d](https://github.com/nextcloud/mail/commit/33c2b6ded20d566715765f40a4d9372723f0bb63))\n* **l10n:** Update translations from Transifex ([23e1250](https://github.com/nextcloud/mail/commit/23e1250b3c4b5d5aeffb4a0aff344931926570f4))\n* **l10n:** Update translations from Transifex ([aa011de](https://github.com/nextcloud/mail/commit/aa011de8f0143dcba50f9998eb0a0fb923fee436))\n* **l10n:** Update translations from Transifex ([b20218d](https://github.com/nextcloud/mail/commit/b20218d810c741fba15ad9015df9946139128160))\n* **l10n:** Update translations from Transifex ([b4ab13b](https://github.com/nextcloud/mail/commit/b4ab13b48152de8cb3275d9563752a3b074905a2))\n* **l10n:** Update translations from Transifex ([10d051e](https://github.com/nextcloud/mail/commit/10d051e0991fc40792c59a5abf2dc5e9a962fc80))\n* **l10n:** Update translations from Transifex ([3614743](https://github.com/nextcloud/mail/commit/361474347f4daaf0cbe1b5198f00551406627484))\n* **l10n:** Update translations from Transifex ([aa47d03](https://github.com/nextcloud/mail/commit/aa47d03c169b2f5007bfd88509a13816b87eabb9))\n* **l10n:** Update translations from Transifex ([19ddafb](https://github.com/nextcloud/mail/commit/19ddafbda0f173a91639ae85376e347d312c0db1))\n* **l10n:** Update translations from Transifex ([3301faf](https://github.com/nextcloud/mail/commit/3301faf9846fef11bc2cbee08f4db571da0ca406))\n* **l10n:** Update translations from Transifex ([6dd5c08](https://github.com/nextcloud/mail/commit/6dd5c08cb5f4e429f04d273d6fa4adc8cfd54eea))\n* **provisioning:** Add support for Dovecot master user authentication ([e5057bb](https://github.com/nextcloud/mail/commit/e5057bbca0bf90646100c6b9022ee1e2046edb47))\n* **provisioning:** Flag port as faulty instead of host ([fd2966f](https://github.com/nextcloud/mail/commit/fd2966f9c4f99b94adc93a332bc52b33147802c0))\n* shareapi config key name ([7de29b2](https://github.com/nextcloud/mail/commit/7de29b2a0079c012902d122cbac52a49e1c26d8f))\n* **sieve:** Add redirect action ([c1ea978](https://github.com/nextcloud/mail/commit/c1ea978618dce0fe6e8cb42ce855cbacebd57a8f))\n* swap the FilePicker component for the builder ([70d2111](https://github.com/nextcloud/mail/commit/70d211191847e69589199ccde99e14b194f3b822))\n* **ui:** load more messages without scrolling ([05ea37d](https://github.com/nextcloud/mail/commit/05ea37dda6e93daf57db04b84e477897b7656c1e))\n* **ui:** move blocked images notice out of the message body ([57e8308](https://github.com/nextcloud/mail/commit/57e8308fc066c34e58937e20b1768b2f52d9c706))\n\n\n### Performance Improvements\n\n* **db:** load local-message children via PK join ([6da204c](https://github.com/nextcloud/mail/commit/6da204c5476c4e7c0dbad6d70204d94fe4fc8340))\n\n\n\n# [5.12.0-rc.1](https://github.com/nextcloud/mail/compare/v5.12.0-beta.2...v5.12.0-rc.1) (2026-09-03)\n\n\n### Bug Fixes\n\n* avatar size on hover ([7bfe6ca](https://github.com/nextcloud/mail/commit/7bfe6ca74dc9cd6d6841ab7cfd3b801e8adb22cd))\n* **delegation:** check if delegated user has access to destination mailbox ([5b97069](https://github.com/nextcloud/mail/commit/5b97069fefdea9cb7fdb7c10348a683287fb14e0))\n* **dns:** Update public suffix list ([17d604d](https://github.com/nextcloud/mail/commit/17d604d4a5af0fcea815a06bf20f8b1b949c67f9))\n* **imap:** handle korean Windows encoding ks_c_5601-1987/ks_c_5601-1989 ([5131dac](https://github.com/nextcloud/mail/commit/5131dac54956d6e0959ac3070b174133eafe343c))\n* **l10n:** Update translations from Transifex ([4f0c569](https://github.com/nextcloud/mail/commit/4f0c5697f3523d7f47899b52bd011c71fdec4c32))\n* **l10n:** Update translations from Transifex ([801e811](https://github.com/nextcloud/mail/commit/801e8116fa304af17010fa572135de24fe2ee58e))\n* **sieve:** terminate installed scripts with CRLF ([80ff3ce](https://github.com/nextcloud/mail/commit/80ff3ce715cdf3e52c71a4083fc75c3c426548af))\n\n\n### Features\n\n* ability to disable sync job by configuration ([3788f4d](https://github.com/nextcloud/mail/commit/3788f4d4d7d03936f6a7cd9354b2a5f7599321d4))\n\n\n### Performance Improvements\n\n* **db:** index the mailbox list sort ([d86b644](https://github.com/nextcloud/mail/commit/d86b644b8d2f8e225a4fb65ba489c76bbd0f0587))\n* **internal-address:** prefix userId in the idx ([f4b88ab](https://github.com/nextcloud/mail/commit/f4b88ab99bdbec9f3645e3aeaab5763668160932))\n\n\n\n# [5.12.0-beta.2](https://github.com/nextcloud/mail/compare/v5.12.0-beta.1...v5.12.0-beta.2) (2026-08-31)\n\n\n### Bug Fixes\n\n* **composer:** remove duplicate Cc/Bcc button ([1723209](https://github.com/nextcloud/mail/commit/1723209e396d7f1608ced1a2b209719cfc6b5962))\n* **deps:** bump @nextcloud/cdav-library from ^2.6.2 to ^2.7.0 ([#13562](https://github.com/nextcloud/mail/issues/13562)) ([477b331](https://github.com/nextcloud/mail/commit/477b33192f53e47be5e85e865f7c29dd29354861))\n* **deps:** bump @nextcloud/vue from ^8.40.0 to ^8.41.0 ([1d4c42f](https://github.com/nextcloud/mail/commit/1d4c42fc8de81b8312e21f60dd723229a4732c06))\n* **deps:** bump core-js from ^3.49.0 to ^3.50.0 ([#13563](https://github.com/nextcloud/mail/issues/13563)) ([695c1cd](https://github.com/nextcloud/mail/commit/695c1cdc0cddeaa2032f414b9ebc3c25aceb27d8))\n* **deps:** bump js-base64 from ^3.8.0 to ^3.9.3 ([#13564](https://github.com/nextcloud/mail/issues/13564)) ([51a6df8](https://github.com/nextcloud/mail/commit/51a6df865e4293fbccaa71668172f6b0b3531dda))\n* **deps:** bump rubix/ml from 2.5.4 to v2.5.5 ([#13573](https://github.com/nextcloud/mail/issues/13573)) ([23670fb](https://github.com/nextcloud/mail/commit/23670fba39fcc9fe7af26f8177fcaa3885cbf6e9))\n* **deps:** bump uuid from ^14.0.1 to ^14.0.2 ([#13575](https://github.com/nextcloud/mail/issues/13575)) ([f691568](https://github.com/nextcloud/mail/commit/f691568c6131c7241451a8be70334285400196f8))\n* draft reset when click outside ([30de189](https://github.com/nextcloud/mail/commit/30de1894127ea2269b8e7e7880a886b6cb0463f6))\n* **l10n:** Update translations from Transifex ([38ea343](https://github.com/nextcloud/mail/commit/38ea343f3d4ac96c810d070af381b8d05b3404ab))\n* **l10n:** Update translations from Transifex ([652c64f](https://github.com/nextcloud/mail/commit/652c64fc8f9f43f166380bf5b61de2bb5c15b7b1))\n* **l10n:** Update translations from Transifex ([098b0c4](https://github.com/nextcloud/mail/commit/098b0c46b009f17a7bcbe782a2f74869532c9665))\n* **l10n:** Update translations from Transifex ([081489c](https://github.com/nextcloud/mail/commit/081489cd9fb622364d7e85188ef1627a92cf39b6))\n* **l10n:** Update translations from Transifex ([12d4b0d](https://github.com/nextcloud/mail/commit/12d4b0daa422ed8268119687b044fd27e6504858))\n* **l10n:** Update translations from Transifex ([d6c81b8](https://github.com/nextcloud/mail/commit/d6c81b81dea6701fa6b6039b6981b86f6b6e8949))\n* mail printing with hidden images ([bbefc5f](https://github.com/nextcloud/mail/commit/bbefc5ff3508ed4b77f0fb4dd77fa6aee03d304d))\n* **translateText:** add termination condition ([a5e384a](https://github.com/nextcloud/mail/commit/a5e384a59e4bcb1d006940016b58080481c0a816))\n\n\n### Features\n\n* **deps:** add Nextcloud 36 support ([a758dd7](https://github.com/nextcloud/mail/commit/a758dd7f171f854b9ee735f4d62e9fadec147230))\n* **provisioning:** Add possibility to use LDAP attributes within provisioning templates ([a8312c6](https://github.com/nextcloud/mail/commit/a8312c6600045e812c603c29403026cc0e471111))\n\n\n\n# [5.12.0-beta.1](https://github.com/nextcloud/mail/compare/v5.11.0-beta.3...v5.12.0-beta.1) (2026-08-25)\n\n\n### Bug Fixes\n\n* actions for special folders ([#13498](https://github.com/nextcloud/mail/issues/13498)) ([10d335e](https://github.com/nextcloud/mail/commit/10d335e86a735851fc4c484f85a0dbd6f9fe345b)), closes [#9106](https://github.com/nextcloud/mail/issues/9106)\n* add sandbox for iframe ([90a74e4](https://github.com/nextcloud/mail/commit/90a74e45d1dd16fec953f5dbe48c598dc1177ea1))\n* allow scripts in message iframe sandbox so the body resizes ([34935aa](https://github.com/nextcloud/mail/commit/34935aa945cdef543e41bcf8d8810adfa08a6c1c)), closes [#13088](https://github.com/nextcloud/mail/issues/13088) [#13527](https://github.com/nextcloud/mail/issues/13527)\n* **attachments:** don't preview attachments when viewer app is disabled ([5cd0b5e](https://github.com/nextcloud/mail/commit/5cd0b5e94eb000c198e58f44fc90b5fa2e616c69))\n* buttons alignment and minor graphic fixes in signature editor ([e1f76c6](https://github.com/nextcloud/mail/commit/e1f76c62cd2cf5332354d20351dbd641922d0820))\n* checking permissions while selecting folder for quick action ([1faee39](https://github.com/nextcloud/mail/commit/1faee3910438975383e37b026dd501d495094948))\n* **composer:** keep resized image dimensions in sent messages ([c6ea817](https://github.com/nextcloud/mail/commit/c6ea817ea7b843507c14020f04970d01901b85ed))\n* **composer:** only warn about missing 'To' when cc/bcc are set ([6e414b2](https://github.com/nextcloud/mail/commit/6e414b213463f48fd838db524604f3f6029efe23))\n* **dav:** use the default webdav client instead of patching axios ([3d24f04](https://github.com/nextcloud/mail/commit/3d24f04c8aec6fb4abb17b538898009dfdae100a))\n* **deps:** bump @nextcloud/vue from ^8.39.0 to ^8.40.0 ([2408eeb](https://github.com/nextcloud/mail/commit/2408eeb5f7903b472a9f82b0d806d80b61a4b388))\n* **deps:** bump dompurify from ^3.4.11 to ^3.4.13 ([#13550](https://github.com/nextcloud/mail/issues/13550)) ([1f48475](https://github.com/nextcloud/mail/commit/1f48475246ae4ae757cb0434e84134041084b1af))\n* **deps:** bump dompurify from ^3.4.11 to v3.4.13 ([7a16787](https://github.com/nextcloud/mail/commit/7a16787f281665a0b993559b515b98f51345a0da))\n* **deps:** bump p-limit from ^7.3.0 to ^7.3.1 ([#13551](https://github.com/nextcloud/mail/issues/13551)) ([603cf91](https://github.com/nextcloud/mail/commit/603cf916383106f9d4f1daa0afed7f07f8b76e27))\n* **deps:** bump rubix/ml from 2.5.3 to v2.5.4 ([#13552](https://github.com/nextcloud/mail/issues/13552)) ([5b71bbb](https://github.com/nextcloud/mail/commit/5b71bbb2765f7d0f213bb219725e0dc9056a094c))\n* **deps:** bump stylelint from ^17.14.0 to ^17.14.1 ([#13553](https://github.com/nextcloud/mail/issues/13553)) ([826b024](https://github.com/nextcloud/mail/commit/826b0241468ae3eed77e13147fd598d10e57ba23))\n* **deps:** Fix npm audit ([3b9ba00](https://github.com/nextcloud/mail/commit/3b9ba000bd58bd2ed7bf22e0be53d4cbccf1bcde))\n* enabling html ids inside email body to permit css targetting ([3a0ce99](https://github.com/nextcloud/mail/commit/3a0ce99001b524b161a9126cd4fb07fe8d0c0c56))\n* **imap:** skip fetch results without a UID during sync ([6f9b14a](https://github.com/nextcloud/mail/commit/6f9b14af9a92a1f0f45eee780f9e5aa5fb8e3d3f))\n* **l10n:** Update translations from Transifex ([6ea9f42](https://github.com/nextcloud/mail/commit/6ea9f425ff4b1488431844ea5bd7e03b4b882520))\n* **l10n:** Update translations from Transifex ([c28e050](https://github.com/nextcloud/mail/commit/c28e0508bef04f70aa7cff07ca93694b747aafd8))\n* **l10n:** Update translations from Transifex ([c685cdf](https://github.com/nextcloud/mail/commit/c685cdf03b80e3e9502d54d0a7599f404bae096e))\n* **l10n:** Update translations from Transifex ([e5734fe](https://github.com/nextcloud/mail/commit/e5734fe250eba06776802c80bb0e52f3cb625673))\n* **l10n:** Update translations from Transifex ([c5a4760](https://github.com/nextcloud/mail/commit/c5a47603a5717403c5deab55dd7a1c980b773666))\n* **l10n:** Update translations from Transifex ([0a46907](https://github.com/nextcloud/mail/commit/0a469072c438fce4692b06e386e38aa77b3fe0ad))\n* **l10n:** Update translations from Transifex ([f3323dc](https://github.com/nextcloud/mail/commit/f3323dc8c8627a3a2f10a271ebf5523ef79703c5))\n* **l10n:** Update translations from Transifex ([7e34b55](https://github.com/nextcloud/mail/commit/7e34b552e8b221265dd557e97fbeaaa41decb8ed))\n* **l10n:** Update translations from Transifex ([3a7fb11](https://github.com/nextcloud/mail/commit/3a7fb110805364e2384419a7457a1a4c5f6ff934))\n* **l10n:** Update translations from Transifex ([c7cf4fb](https://github.com/nextcloud/mail/commit/c7cf4fba28f550c9b0d72745085fae41f96629ae))\n* **l10n:** Update translations from Transifex ([7ffc781](https://github.com/nextcloud/mail/commit/7ffc7816fc013eec7b9e99888f04da79680ecc4f))\n* **l10n:** Update translations from Transifex ([0261197](https://github.com/nextcloud/mail/commit/0261197a48ae0f2e3d8c6026db03eb59df983e4e))\n* **l10n:** Update translations from Transifex ([d77e439](https://github.com/nextcloud/mail/commit/d77e4399aeeb0f51c11d2e9f230f58c8b0da0bad))\n* **l10n:** Update translations from Transifex ([c385780](https://github.com/nextcloud/mail/commit/c3857804dce92fe05542cf57d23407d25eddf7c0))\n* **l10n:** Update translations from Transifex ([1968041](https://github.com/nextcloud/mail/commit/1968041ebcbd120bfce97be65d40fe636428252b))\n* **migration:** heal legacy non-bool appconfig values ([f4d0c12](https://github.com/nextcloud/mail/commit/f4d0c12af58acb85dac4bdc2839142ee434e3f45))\n* **migration:** support the new OCP DB schema API ([b5283cf](https://github.com/nextcloud/mail/commit/b5283cf1be092b55a4112e008b3e30c46b9669d4))\n* minor adjustment in moving messages, threads and folders ([4b7d231](https://github.com/nextcloud/mail/commit/4b7d2311886f41fbd44413e0e406ca970d2c4309))\n* **navigation:** show the unified inbox icon ([5b76052](https://github.com/nextcloud/mail/commit/5b76052296a7b53543dd9c93bad2f59af5d0390b))\n* **proxy:** preserve percent-encoded image URLs in proxy link ([6ee86ed](https://github.com/nextcloud/mail/commit/6ee86ed1cd2b90a09c2736c29f6c44eeca2be085))\n* **psalm:** resolve type issues ahead of the Psalm 6 upgrade ([ca95cb3](https://github.com/nextcloud/mail/commit/ca95cb3d554342d8f9dcfbe7cd828a711693f0f7)), closes [#11224](https://github.com/nextcloud/mail/issues/11224)\n* **settings:** mount account-settings dialog at app root ([6c9dc30](https://github.com/nextcloud/mail/commit/6c9dc306127fe25f31945b4b2033dc7127371399))\n* **signature:** insert \"-- \" separator for plain text only ([6ffd898](https://github.com/nextcloud/mail/commit/6ffd898e77305b99cfa75017ded9fb6805ed12bf)), closes [#3457](https://github.com/nextcloud/mail/issues/3457)\n* the hint that theres no to reciepient ([bb3e1e1](https://github.com/nextcloud/mail/commit/bb3e1e1aad71a352c9a281a96a946d68b523babb))\n* **translation:** detect message language in the browser ([d465e6b](https://github.com/nextcloud/mail/commit/d465e6b206eb1e57f444ae8138753f6addaf05eb))\n* **TranslationModal:** language code detection ([c7a993b](https://github.com/nextcloud/mail/commit/c7a993bb0bf0be691f5055a1e14b5a33c92761c5))\n* **ui:** restore virtual start mailbox too ([7bb70d1](https://github.com/nextcloud/mail/commit/7bb70d1cdec02cccfb44bbf2f7e8008790cde430))\n\n\n### Features\n\n* add hint that content is ai generated ([45f2e2c](https://github.com/nextcloud/mail/commit/45f2e2c70c8b34072c80800418a2a3fac28c2872))\n* **composer:** insert images from Files ([feb8e15](https://github.com/nextcloud/mail/commit/feb8e158d4ab37afac4cce9fb4708619b377e0dd))\n* **composer:** reflect the selection in the image picker button ([f82a541](https://github.com/nextcloud/mail/commit/f82a541aab70b154b74b15eee299d5d456112284))\n* do not autoreply to noreply@ and no-reply@ senders ([09ef38e](https://github.com/nextcloud/mail/commit/09ef38e503905137cf4600ddab9ae5a60a55c8e4))\n* floating composer editor ([e45f36c](https://github.com/nextcloud/mail/commit/e45f36c572b3fcba7ad09a4ec260205dd18b6dee))\n* warn users when sending email with empty to field ([71c316e](https://github.com/nextcloud/mail/commit/71c316e21ba287c76157825beb15b87d1db95d32))\n\n\n\n# [5.11.0-beta.3](https://github.com/nextcloud/mail/compare/v5.11.0-beta.2...v5.11.0-beta.3) (2026-08-10)\n\n\n### Bug Fixes\n\n* force user identifier when saving tags ([383ed96](https://github.com/nextcloud/mail/commit/383ed96cfa719d8c2ba3c6dbe508435c97dcb8d5))\n* handle empty replyTo array properly ([c6dfd90](https://github.com/nextcloud/mail/commit/c6dfd909901b4fe265d0732599e78add9bac9273))\n* **l10n:** Update translations from Transifex ([6aa70c5](https://github.com/nextcloud/mail/commit/6aa70c5ab8c826a7bff12997f0839576928bdf20))\n* **l10n:** Update translations from Transifex ([f0df881](https://github.com/nextcloud/mail/commit/f0df881b13e4d39832ff9fca03dafa10f1e3d89d))\n* **l10n:** Update translations from Transifex ([ee29ae6](https://github.com/nextcloud/mail/commit/ee29ae615d99099c5401e73cb753dc2967a210ee))\n* Rename messageId to uid ([9fb470f](https://github.com/nextcloud/mail/commit/9fb470f53a09bcb95eb3e1d3bcbedc4f4f712cd6))\n\n\n### Features\n\n* make some events webhook compatible ([759ea03](https://github.com/nextcloud/mail/commit/759ea030153f9e6dd7391c66fe0478aeb21d8824))\n* passing full reference to mailbox in BeforeMessageDeletedEvent ([7bbf139](https://github.com/nextcloud/mail/commit/7bbf139b83e06b0188389624f5afc405523d6f2f))\n* text blocks empty state ([b8dd79c](https://github.com/nextcloud/mail/commit/b8dd79c7e333a3d66cdb24317f0d242de55c345b))\n\n\n\n# [5.11.0-beta.2](https://github.com/nextcloud/mail/compare/v5.11.0-beta.1...v5.11.0-beta.2) (2026-08-06)\n\n\n### Bug Fixes\n\n* Adjust relative date display to also use timestamp for yesterday ([0f7dc0d](https://github.com/nextcloud/mail/commit/0f7dc0d9b70ba5f3285716c1da8e93e684ca3896))\n* **ai-integrations:** check for star/end email in message bodies and validate json output for smart replies ([bdc1c1c](https://github.com/nextcloud/mail/commit/bdc1c1cbb05ee4c915d97bc5353045c05f4e6238))\n* **composer:** keep signature images by switching to rich text ([e1ab04d](https://github.com/nextcloud/mail/commit/e1ab04dcdbd2f7b556c6f299715f7f5321b55e06))\n* configurable timeout for connectivity tester ([18217d0](https://github.com/nextcloud/mail/commit/18217d06de2bb0b80e4cbd2c76b067feea45b677))\n* Correct hasLocks() expiry check ([e5cfdaa](https://github.com/nextcloud/mail/commit/e5cfdaa1c38363fa3afc6cd012c82baa663becbf))\n* correct spelling errors in error messages and comments ([7e774ef](https://github.com/nextcloud/mail/commit/7e774ef3cafcf8589f411e180740ec7192defe83))\n* **deps:** bump postcss from ^8.5.16 to v8.5.18 ([#13365](https://github.com/nextcloud/mail/issues/13365)) ([e0a8523](https://github.com/nextcloud/mail/commit/e0a852320698ceefcaa447a7017c5c2186103dcd))\n* **deps:** bump postcss from ^8.5.16 to v8.5.23 ([#13419](https://github.com/nextcloud/mail/issues/13419)) ([ef2bf1c](https://github.com/nextcloud/mail/commit/ef2bf1c3e26bbf51edb4c8b133ea54d38c81a9ae))\n* **dns:** Update public suffix list ([eb88857](https://github.com/nextcloud/mail/commit/eb88857a98c164361209ddb3dfb1f48d8b6ed37d))\n* **html:** prevent invalid UTF-8 from blanking mail body ([05b3289](https://github.com/nextcloud/mail/commit/05b3289cb0c20f011ea5cd515079d50acb599693))\n* **html:** strip conditional markup from html mail bodies ([f90b646](https://github.com/nextcloud/mail/commit/f90b646d627a7dc36df6de18fc6bd5f9254b701a))\n* **imap:** use PEEK when fetching attachment/body content ([b4463ef](https://github.com/nextcloud/mail/commit/b4463ef02b11f8fda9158d77772cd80b28a28c32))\n* **imip:** log why an iMIP message was flagged as failed ([8121dd4](https://github.com/nextcloud/mail/commit/8121dd498f1e3afa714ab21465f152d5ec7c4e70))\n* **l10n:** Update translations from Transifex ([b65261f](https://github.com/nextcloud/mail/commit/b65261f4d641c902316aff07c75266b2aa7d37ff))\n* **l10n:** Update translations from Transifex ([54fc382](https://github.com/nextcloud/mail/commit/54fc382fd25634d9dfa3cdf5f5394dffbb44a42d))\n* **l10n:** Update translations from Transifex ([3e6d415](https://github.com/nextcloud/mail/commit/3e6d415172bb3bb7abef1d9784d2cf41c1ae8f74))\n* **l10n:** Update translations from Transifex ([d1cc084](https://github.com/nextcloud/mail/commit/d1cc084e2f3dbb46468dced01009063e4f77fe25))\n* **l10n:** Update translations from Transifex ([3d29118](https://github.com/nextcloud/mail/commit/3d291183730fc1deef02f6f80041e69cad8a8a92))\n* **l10n:** Update translations from Transifex ([ce89d03](https://github.com/nextcloud/mail/commit/ce89d03e87da330afa6ee01552cd7a7486713bb9))\n* **l10n:** Update translations from Transifex ([a064b99](https://github.com/nextcloud/mail/commit/a064b99606eaf83f73cda6afb4ba3268c177e49c))\n* **l10n:** Update translations from Transifex ([cd5c729](https://github.com/nextcloud/mail/commit/cd5c72999d00067c58c1e3e3659e4b1f764f999d))\n* **l10n:** Update translations from Transifex ([61e5828](https://github.com/nextcloud/mail/commit/61e5828a5af95ba1a2109d750bc0bf5d02e6b702))\n* **l10n:** Update translations from Transifex ([452e9c1](https://github.com/nextcloud/mail/commit/452e9c1de6e98097263eee3a16b4c2e77b38673c))\n* **l10n:** Update translations from Transifex ([88dbf02](https://github.com/nextcloud/mail/commit/88dbf027343a8abefa50de8efcc01c110e5e67c6))\n* **mailbox:** Flag shared mailboxes as shared ([2c71bdc](https://github.com/nextcloud/mail/commit/2c71bdcd6486eca2213964fc3896fc2595b35b32))\n* **mailbox:** Ignore prefix-less namespaces in shared detection ([e9061ca](https://github.com/nextcloud/mail/commit/e9061cad97e66a0804a4fb60334f964a6e2d9fc8))\n* **search:** use deep link ([7456e21](https://github.com/nextcloud/mail/commit/7456e21a946212ea4aee630a52ccc42e9ecfce57))\n* **settings:** Add loading states ([94c5159](https://github.com/nextcloud/mail/commit/94c51599fb00f778c47e0d8fa610ad2c10967560))\n* **settings:** bind signature editor to the account writing mode ([89f8bf0](https://github.com/nextcloud/mail/commit/89f8bf0a63085bea08ab8e749797e647bf84edd8))\n* **UI:** 2 columns for filtering checkboxes instead of 3 (better readability) ([46657fd](https://github.com/nextcloud/mail/commit/46657fd6e3521f0bc320e8a86bdabd561755d172))\n* unify mail printing ([d141a57](https://github.com/nextcloud/mail/commit/d141a5740d92a18ac1d66a3df121c2697f1c0a41))\n\n\n### Features\n\n* filtering folders in mailbox picker ([54fdfab](https://github.com/nextcloud/mail/commit/54fdfab8a2504f28c833a48d03d69b796735c9aa))\n* sync imap and smtp credentials while filling new account form ([08bad9d](https://github.com/nextcloud/mail/commit/08bad9d127ce6134670a6a2fc59d20ceb7f2fbae))\n* **ui:** Add options for auto mark as read delay ([e261143](https://github.com/nextcloud/mail/commit/e2611434bb5b00eeb97e5f2931f2c5bb59190adf))\n\n\n\n# [5.11.0-beta.1](https://github.com/nextcloud/mail/compare/v5.10.0-rc.1...v5.11.0-beta.1) (2026-07-23)\n\n\n### Bug Fixes\n\n* **a11y:** add missing ARIA labels to form inputs and buttons ([3023f78](https://github.com/nextcloud/mail/commit/3023f78b249417b66763bb9fa1151ecf82e5afcd))\n* account settings section font size ([9ad7042](https://github.com/nextcloud/mail/commit/9ad7042a6d9594329e1990d13249b9c032e146d1))\n* **AccountSettings:** overflow bug when using autoresponder checkbox ([768ff4c](https://github.com/nextcloud/mail/commit/768ff4c64bdfa277aef9775c1c51171de4ad60cc))\n* adjust sender details styling and alignment in thread view ([e50927b](https://github.com/nextcloud/mail/commit/e50927b8eac554959039e5e7b8ddcdcb6da0dfc9))\n* **ai:** migrate AiIntegrationsService off deprecated TextProcessing API ([2dc1683](https://github.com/nextcloud/mail/commit/2dc168355a9fe7edd4f1c29b970a18f91590533c))\n* **attachments:** store uploads under account owner for delegated sends ([d78ef2c](https://github.com/nextcloud/mail/commit/d78ef2ceb23181b7cae7bfde6e775eb71e4421db))\n* check tag while renaming ([cbc008d](https://github.com/nextcloud/mail/commit/cbc008df76f81a71a8fdf264c57b0ad96d7e4208))\n* **composer:** do not re-insert signature when opening a draft ([9e36af9](https://github.com/nextcloud/mail/commit/9e36af99933a54d85a0dd1e521bb8b306d08140e))\n* **delegation:** clean delegations on user deletion ([#13147](https://github.com/nextcloud/mail/issues/13147)) ([ef21807](https://github.com/nextcloud/mail/commit/ef21807e9debfa2a8e292437bd92315d23d3c283))\n* **delegation:** show delegates' display names instead of usernames ([de41602](https://github.com/nextcloud/mail/commit/de4160213cbf88657752097a8c50c9449d7c5d75))\n* **deps:** bump @nextcloud/cdav-library from ^2.2.0 to ^2.6.2 ([#13237](https://github.com/nextcloud/mail/issues/13237)) ([12a5919](https://github.com/nextcloud/mail/commit/12a5919db8f44dcda2dc754a8b940fc8075ac371))\n* **deps:** bump address-rfc2822 from ^2.2.3 to ^2.2.4 ([#13042](https://github.com/nextcloud/mail/issues/13042)) ([e6f4e54](https://github.com/nextcloud/mail/commit/e6f4e543494506c94391b38f028ff00560dbeea5))\n* **deps:** bump color-convert from ^2.0.1 to v3 ([cafd6ba](https://github.com/nextcloud/mail/commit/cafd6bafea53a35e385c4682177f7eb8df98e158))\n* **deps:** bump dompurify from ^3.4.11 to v3.4.12 ([#13335](https://github.com/nextcloud/mail/issues/13335)) ([5e2fe71](https://github.com/nextcloud/mail/commit/5e2fe71ffa9d94ebec113079d78eebe281627eaf))\n* **deps:** bump dompurify from ^3.4.8 to ^3.4.11 ([#13229](https://github.com/nextcloud/mail/issues/13229)) ([bea9841](https://github.com/nextcloud/mail/commit/bea98416790d07f411a938622fb72702f8bcb544))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.11 ([#13122](https://github.com/nextcloud/mail/issues/13122)) ([41eaf65](https://github.com/nextcloud/mail/commit/41eaf65f8f486326dfe636a481b499efccaefb2f))\n* **deps:** bump html-to-text from ^9.0.5 to v10 ([f88a29f](https://github.com/nextcloud/mail/commit/f88a29fd1c2598d7685229d5e3055b0b7703f108))\n* **deps:** bump js-base64 from ^3.7.8 to ^3.8.0 ([#13239](https://github.com/nextcloud/mail/issues/13239)) ([3172b34](https://github.com/nextcloud/mail/commit/3172b34a0eaa5557bcb0a66ffcaacab461bce1b5))\n* **deps:** bump p-limit from ^6.2.0 to v7 ([86621a1](https://github.com/nextcloud/mail/commit/86621a148eb4b719bc68b061e4e655a481d0f242))\n* **deps:** bump sabberworm/php-css-parser from ^9.3.0 to ^9.4.0 ([#13240](https://github.com/nextcloud/mail/issues/13240)) ([78b4966](https://github.com/nextcloud/mail/commit/78b49662074b46816b2cc66894a707baf3333431))\n* **deps:** bump stylelint from ^17.9.1 to ^17.14.0 ([#13241](https://github.com/nextcloud/mail/issues/13241)) ([9d2803b](https://github.com/nextcloud/mail/commit/9d2803b80b18f6cc69c25fcf367f1f8c01a4a19b))\n* **deps:** bump uuid from ^14.0.0 to ^14.0.1 ([#13230](https://github.com/nextcloud/mail/issues/13230)) ([94eb990](https://github.com/nextcloud/mail/commit/94eb9904afd968ea5811779859243f896b171c79))\n* **deps:** Fix npm audit ([dbf837c](https://github.com/nextcloud/mail/commit/dbf837c80b953ef68528eca30772b7dd0cf35bd4))\n* **deps:** Fix npm audit ([fd644ef](https://github.com/nextcloud/mail/commit/fd644ef6efc60653651e80384cbebd8865e02067))\n* **dns:** Update public suffix list ([a49706f](https://github.com/nextcloud/mail/commit/a49706f485a89eb7794684a6ffd1961251d2f340))\n* **dns:** Update public suffix list ([a33969f](https://github.com/nextcloud/mail/commit/a33969ffe1735c192eee341631173d3c65936534))\n* **drafts:** preserve Bcc header when saving drafts ([6e98d88](https://github.com/nextcloud/mail/commit/6e98d88aa5e30a7df1a1ee006e5ee8a493dfefc0))\n* **envelope:** show full summary on hover and refine AI notice ([2c27d7b](https://github.com/nextcloud/mail/commit/2c27d7b348bc856eb747236bc0044f244abdee23))\n* Exclude shared mailboxes from special mailbox auto-detection ([54dda27](https://github.com/nextcloud/mail/commit/54dda275692faf07381aaa0cb071a448b3bcbe8a))\n* fixed \"ORGANIZER\" in ICS generated by \"Reply with meeting\" and delivered to DAV endpoint ([13ef350](https://github.com/nextcloud/mail/commit/13ef35005c9599afe478ee5cd2f66973ab21bce2))\n* hide \"create task\" option when no task calendar is available ([4cac1b8](https://github.com/nextcloud/mail/commit/4cac1b861a0a8e62d81d70d8494c89bc3ab95daa))\n* **imap:** rate limit all IMAP server auth rejections ([99d9842](https://github.com/nextcloud/mail/commit/99d9842b0eebb795dc3c39257a7ea20dc95b21a6))\n* **imap:** render inline images referenced only by Content-ID ([0b35738](https://github.com/nextcloud/mail/commit/0b35738e8620d66707ceb8d49c060b1530e98717))\n* interactions in actions menu for mailboxes ([cf3350e](https://github.com/nextcloud/mail/commit/cf3350ee0ea3a23a6bbafc5efb5a9bed2d1043fa))\n* **l10n:** Update translations from Transifex ([bf70f13](https://github.com/nextcloud/mail/commit/bf70f13edd9b2c05fd8d0ba00288fae0ce584bef))\n* **l10n:** Update translations from Transifex ([93cfe2e](https://github.com/nextcloud/mail/commit/93cfe2e3526a853db1b28ee91d23938a279f697e))\n* **l10n:** Update translations from Transifex ([2501bbf](https://github.com/nextcloud/mail/commit/2501bbfbda9e66c18d235dc9e1ad5974a405aefa))\n* **l10n:** Update translations from Transifex ([da344a0](https://github.com/nextcloud/mail/commit/da344a0e2b9202b403bfc8075107cb275babaff0))\n* **l10n:** Update translations from Transifex ([e50eedf](https://github.com/nextcloud/mail/commit/e50eedf20f48f3ca52b2878ddae645070a79650b))\n* **l10n:** Update translations from Transifex ([1e1dd96](https://github.com/nextcloud/mail/commit/1e1dd96baba3c4524e2020b1473c78f4c841acab))\n* **l10n:** Update translations from Transifex ([979e6a9](https://github.com/nextcloud/mail/commit/979e6a9d0b9e3abd93aede88dfd4d9d852b9610d))\n* **l10n:** Update translations from Transifex ([4f229df](https://github.com/nextcloud/mail/commit/4f229df64c323f1f75efec9077d5083f8e461201))\n* **l10n:** Update translations from Transifex ([d64ec2a](https://github.com/nextcloud/mail/commit/d64ec2a98886bdbb3fbaa0c81be71607f6d7365f))\n* **l10n:** Update translations from Transifex ([4742cb1](https://github.com/nextcloud/mail/commit/4742cb11a73b5d6c8cef812be466c145c1bcb64b))\n* **l10n:** Update translations from Transifex ([fc2c216](https://github.com/nextcloud/mail/commit/fc2c2163cee3aa3e3e3094328a97f0b2bdf2566b))\n* **l10n:** Update translations from Transifex ([b017f4f](https://github.com/nextcloud/mail/commit/b017f4f7e1a7cf5d75d4d6d9e3c8fc894c335fc9))\n* **l10n:** Update translations from Transifex ([96ac3ed](https://github.com/nextcloud/mail/commit/96ac3ed6962f48defcc1344ad132a28a2b7aa0fb))\n* **l10n:** Update translations from Transifex ([97d2bc6](https://github.com/nextcloud/mail/commit/97d2bc6532cc97475c1e8b2bea50ceb71ace217f))\n* **l10n:** Update translations from Transifex ([0241d3b](https://github.com/nextcloud/mail/commit/0241d3b0513f5d0fc4250d8e826ac49c04a216ce))\n* **l10n:** Update translations from Transifex ([4662e6f](https://github.com/nextcloud/mail/commit/4662e6f65784eb60d52109bf9a11514dbe8001dd))\n* **l10n:** Update translations from Transifex ([b4b5e03](https://github.com/nextcloud/mail/commit/b4b5e033d03ecc4230997dad0dc57a2a733e8a08))\n* **l10n:** Update translations from Transifex ([b0a7e00](https://github.com/nextcloud/mail/commit/b0a7e005206e47b13233f92a2e0d319f0bcc03ce))\n* **l10n:** Update translations from Transifex ([5ed4a0a](https://github.com/nextcloud/mail/commit/5ed4a0a687af961936d2edfac015efd94e4597b4))\n* **l10n:** Update translations from Transifex ([d87b546](https://github.com/nextcloud/mail/commit/d87b546c6c29dd8290d56e860168a605216d622f))\n* **l10n:** Update translations from Transifex ([f1c577b](https://github.com/nextcloud/mail/commit/f1c577bdd3f3a779267cc09ea1c34d21ad423ab1))\n* **l10n:** Update translations from Transifex ([6043365](https://github.com/nextcloud/mail/commit/60433655ac772a8d89a64fbe12cb9d1d200aa239))\n* **l10n:** Update translations from Transifex ([3f45fe0](https://github.com/nextcloud/mail/commit/3f45fe0bea65f2b960d4398fe0cac2629e4d04fc))\n* **l10n:** Update translations from Transifex ([8868534](https://github.com/nextcloud/mail/commit/8868534ad2dacdf02189abd4d7e15b487cfa1697))\n* **l10n:** Update translations from Transifex ([ab5268b](https://github.com/nextcloud/mail/commit/ab5268b5dd527d924c4871e3b926312760f3c514))\n* **l10n:** Update translations from Transifex ([a0c1a95](https://github.com/nextcloud/mail/commit/a0c1a9522692a75b20126a05b0d95a5d0fe34879))\n* **l10n:** Update translations from Transifex ([19cb9ff](https://github.com/nextcloud/mail/commit/19cb9ffeb12558f1c9289d25f92fa17063eeb8bc))\n* moved \"Delete thread\" at the end of the contextual actions menu ([358fdf8](https://github.com/nextcloud/mail/commit/358fdf87e0377bbe536aae626bd682d769b858de))\n* **oauth:** generate state token server-side before redirect ([c2ed79f](https://github.com/nextcloud/mail/commit/c2ed79f87fd8508c868c4547d43dc78179b40e39))\n* Omit fileid for attachments ([c8e3de3](https://github.com/nextcloud/mail/commit/c8e3de38b1f3960588e70cdeef9ddf8cb1ccac0b))\n* only pin favorites when it s not part of the query ([726601c](https://github.com/nextcloud/mail/commit/726601c73fbba2c71c80b67899f84ad8251f194a))\n* **outbox:** reset status and failure flag on message update ([91fb1cc](https://github.com/nextcloud/mail/commit/91fb1cc0704abb2b02e4a5f9363582ba182ae934))\n* **psalm:** adapt to updated OCP dev-master return types ([67d20f2](https://github.com/nextcloud/mail/commit/67d20f263f0ebd63f32e2ccca1975ba5718c6b0a))\n* reply to own message addresses original recipient ([42eb49a](https://github.com/nextcloud/mail/commit/42eb49addb664bf4c9c2739f36e0446afb3911f4))\n* reply to sender only ([45766ae](https://github.com/nextcloud/mail/commit/45766aef5136e9a734aa47ce5805ad15985ada57))\n* resolve strict type issues flagged by Psalm 6 ([f86e2b8](https://github.com/nextcloud/mail/commit/f86e2b8091b82a01cefd9c1688e653604115e9c3)), closes [#11224](https://github.com/nextcloud/mail/issues/11224)\n* restore sender copy-to-clipboard and fix thread subject alignment ([b0420e3](https://github.com/nextcloud/mail/commit/b0420e335f9c4a5be0a711c59c42d73ca648ef72)), closes [#12952](https://github.com/nextcloud/mail/issues/12952) [#12946](https://github.com/nextcloud/mail/issues/12946) [#12666](https://github.com/nextcloud/mail/issues/12666)\n* search shortcut buttons having thier own space ([092567d](https://github.com/nextcloud/mail/commit/092567d6a639d0f0b7e1c86aa3a68f07ad160801))\n* **sending:** preserve Bcc header in Sent mailbox copy ([d5540c2](https://github.com/nextcloud/mail/commit/d5540c255e7873cd317ca78f49c31b343f6fb23c))\n* shortcut search buttons ([fabbf17](https://github.com/nextcloud/mail/commit/fabbf1770e169170190bf0b3071aa58770c12716))\n* signature editor on mobile, enlarged menu for formatting options ([62aaa2d](https://github.com/nextcloud/mail/commit/62aaa2d226716934724e4c63f7fa73b7968e0775))\n* small fix on the state of the action button to edit tags ([7610aa1](https://github.com/nextcloud/mail/commit/7610aa17a7cd8e6fea302190c22a9e63ef8d4e93))\n* sorting of items in \"Mail settings\" dialog ([7cfbeaf](https://github.com/nextcloud/mail/commit/7cfbeafb0f2269d08bb5994d80e906a9d898414d))\n* subfolder selection for quick actions ([f8dedb1](https://github.com/nextcloud/mail/commit/f8dedb197e67faa650ef896efa0d0981a22a3f52))\n* **tags:** add accessible title to tag modal ([0a6eb9d](https://github.com/nextcloud/mail/commit/0a6eb9da79c0960dd867fc0c838c654b9ca1d7b3))\n* **ui:** archive shortcut in unified mailboxes ([933a6da](https://github.com/nextcloud/mail/commit/933a6da3161b1928a9c9cc8009bd8a79110f6243))\n* **ui:** build valid search query when toggling favorites sort ([569dfa4](https://github.com/nextcloud/mail/commit/569dfa45c41af476a5ffa8828ab527b94f967d14))\n* **ui:** do not mount favorites list when sorting is off ([130e21f](https://github.com/nextcloud/mail/commit/130e21f7f124e136e230f9f613c2d86fce025132))\n* **ui:** harden error handling for AI summaries ([a2bd5c4](https://github.com/nextcloud/mail/commit/a2bd5c43e395a57da7d058773d12c45abaebe45c))\n* **ui:** improve quick actions modal design ([63d08c1](https://github.com/nextcloud/mail/commit/63d08c1ff86fc7f9050e54341eccbb43c44f7a8d))\n* **ui:** rename beforeUnmount hooks back to beforeDestroy ([6ba42aa](https://github.com/nextcloud/mail/commit/6ba42aa9c3334a543977a0a16a5afd8955a1d29d)), closes [#13031](https://github.com/nextcloud/mail/issues/13031)\n* **ui:** restore folder expand state after drag-and-drop ([de027b8](https://github.com/nextcloud/mail/commit/de027b8d00ce86f80f20a17e39028b58fd8dd388))\n* **ui:** restore message loading position and slow hint ([a01b2f1](https://github.com/nextcloud/mail/commit/a01b2f1992da2cf2dd984de0f633de6fccb17392))\n* **ui:** show favorites section based on the current folder ([72e4342](https://github.com/nextcloud/mail/commit/72e434212b9e6b94bc3a7892e3616e07c7b30335))\n* **ui:** unset error state after account setting update ([9231abe](https://github.com/nextcloud/mail/commit/9231abec91dea5fe2b67ca3ae6b06e676567049b))\n* validating email addresses from Contacts ([4f33d3f](https://github.com/nextcloud/mail/commit/4f33d3f08191d43d4e17fae63c48b154f7456eca))\n* visualization of multiple attachments ([ccb8a65](https://github.com/nextcloud/mail/commit/ccb8a652a4af456f5f08a60d6cbbde1d9f3c3f6f))\n* whitespaces in visualization of plaintext email ([9d297bd](https://github.com/nextcloud/mail/commit/9d297bdc2e13a8d2f2ccd9a1c9637aa36b9db96b))\n\n\n### Features\n\n* Add 'copy direct link' action to message menu ([1cb78a3](https://github.com/nextcloud/mail/commit/1cb78a309eb65ce01a3404f4325b4c3e57e8efd1))\n* adds drag, drop and pasting of attachments ([16d4a09](https://github.com/nextcloud/mail/commit/16d4a09889490fa243a8047e2f5b588972c42bc4))\n* adds heading shortcuts ([3a6ccd4](https://github.com/nextcloud/mail/commit/3a6ccd486a8ad731b4bca1fcc57ca5377904b907))\n* capturing Ctrl+S key on email composer to save draft ([b38b41f](https://github.com/nextcloud/mail/commit/b38b41fa77ecbdd016433545dd32f538c76cb7a9))\n* **editor:** preserve arbitrary font sizes and families in content ([cd3b8c5](https://github.com/nextcloud/mail/commit/cd3b8c5d6931867363b87da6e309a2b96fff8fac))\n* jmap support - initial ([61bfd97](https://github.com/nextcloud/mail/commit/61bfd975681afa6b4c969028b1f82a11124c9a11))\n* save email as .eml file in Files ([81ef139](https://github.com/nextcloud/mail/commit/81ef139b4a89990fa3b94460771b49e861439878))\n* unified attachments (as file and as link) from Files ([db12725](https://github.com/nextcloud/mail/commit/db127252cf61dd2b17e807a0a57f888b6282a081))\n\n\n### Performance Improvements\n\n* caching a bit missing avatars ([019854c](https://github.com/nextcloud/mail/commit/019854c300a5d03fd9f1ac902eb800b8f55c7f4c))\n* **frontend:** prevent overlapping background inbox syncs ([#13129](https://github.com/nextcloud/mail/issues/13129)) ([39fd543](https://github.com/nextcloud/mail/commit/39fd543dc6a3ab41a1fed54e97d5691516cc931c))\n* reduce multiple ID IMAP commands by Horde client ([64bf799](https://github.com/nextcloud/mail/commit/64bf799620b1d757115452c0ac57f9b8c1453cd8))\n\n\n\n# [5.10.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-rc.1...v5.10.0-rc.1) (2026-06-17)\n\n\n### Bug Fixes\n\n* **delegation:** missing mailbox id in audit log ([57c1d41](https://github.com/nextcloud/mail/commit/57c1d41b60064016f92ad2f79047dcbb8d177e51))\n* deleting a message should move the focus one below ([b2bbd4e](https://github.com/nextcloud/mail/commit/b2bbd4e29f13b774bacb963bedc44e4e6c2911a6))\n* **deps:** bump @nextcloud/vue from ^8.38.0 to ^8.39.0 ([cb6c2e2](https://github.com/nextcloud/mail/commit/cb6c2e23a72df9e6d5a983174a005ef99e848856))\n* **deps:** bump dompurify from ^3.4.2 to ^3.4.7 ([#13043](https://github.com/nextcloud/mail/issues/13043)) ([5845e27](https://github.com/nextcloud/mail/commit/5845e270b21757762b42d01aa5424a5718bdff17))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.9 ([3355ac5](https://github.com/nextcloud/mail/commit/3355ac532693504453f5b19d0ef4af38ffc3fc39))\n* **deps:** bump vitest from ^3.2.4 to v4 ([5e31000](https://github.com/nextcloud/mail/commit/5e3100021605ff4ba4c47a7e699b09673e6a9c58))\n* disable CSRF check for message-id deeplinks ([86a46a9](https://github.com/nextcloud/mail/commit/86a46a9c09c3983db1057151bb3bb30417613a4f))\n* **dns:** Update public suffix list ([b45cf9b](https://github.com/nextcloud/mail/commit/b45cf9b63fe21ea152c85e253a2441de6d900759))\n* **frontend:** log swallowed errors in catch blocks ([79629b6](https://github.com/nextcloud/mail/commit/79629b60cb1aa755b1361575e7d6f9c63ed3a3af))\n* **l10n:** Update translations from Transifex ([b133d88](https://github.com/nextcloud/mail/commit/b133d883fccc016048a1b2a243e4181274a2a17f))\n* **l10n:** Update translations from Transifex ([1e9d3e8](https://github.com/nextcloud/mail/commit/1e9d3e829c3d66c54dd4c5e15162b71ea7652779))\n* **l10n:** Update translations from Transifex ([35839ac](https://github.com/nextcloud/mail/commit/35839ac152de3e0221497743de668ad3aa44ca05))\n* **l10n:** Update translations from Transifex ([f68b723](https://github.com/nextcloud/mail/commit/f68b7238c24c1b9cd6f281a0a241abaed01a51ca))\n* **l10n:** Update translations from Transifex ([8f7f7c9](https://github.com/nextcloud/mail/commit/8f7f7c99f967d8a4c8b2f8919f0331bd2fb33656))\n* **l10n:** Update translations from Transifex ([4a4104b](https://github.com/nextcloud/mail/commit/4a4104b1d0ac52dfb104c66e8d7b72e74e3aa5dd))\n* **l10n:** Update translations from Transifex ([c9ee373](https://github.com/nextcloud/mail/commit/c9ee3732149ae62141e093633bca6c93a50eef1d))\n* **l10n:** Update translations from Transifex ([f9f5dde](https://github.com/nextcloud/mail/commit/f9f5dde5be1e759e30cebfe02d5022402c3b1919))\n* **l10n:** Update translations from Transifex ([b4764be](https://github.com/nextcloud/mail/commit/b4764bea3d51e2cdcc4915747e3301b66ea3f9cd))\n* **l10n:** Update translations from Transifex ([04d1a48](https://github.com/nextcloud/mail/commit/04d1a48007a67902441f8d65e3e133de19a67e2f))\n* **l10n:** Update translations from Transifex ([7e4eab6](https://github.com/nextcloud/mail/commit/7e4eab620aa9931d6141b1febab6d512653e5bf9))\n* **l10n:** Update translations from Transifex ([809d826](https://github.com/nextcloud/mail/commit/809d826ae9e7b08d289c4ae519a7982459b6464f))\n* **l10n:** Update translations from Transifex ([7551ba5](https://github.com/nextcloud/mail/commit/7551ba5e8af95a1019b34386eaac814b1a48774f))\n* **l10n:** Update translations from Transifex ([9d67a65](https://github.com/nextcloud/mail/commit/9d67a65f9ed59c6799687feab14236e917c8e9d0))\n* mail printing ([47820ad](https://github.com/nextcloud/mail/commit/47820ad24482622c1c9e5593186a76ccd09595a0))\n* **smtp:** handle non ascii sender names ([f9803f9](https://github.com/nextcloud/mail/commit/f9803f9fbd043de726b08f1bdc04a7795a8a7f00))\n* **ui:** prefer sans-serif over Noto Color Emoji for text rendering ([3473b1d](https://github.com/nextcloud/mail/commit/3473b1dfdb05602ea4baaee0e1a5c6e9c0e0bd75))\n* **ui:** prevent type error during shortkey usage ([c9cbc09](https://github.com/nextcloud/mail/commit/c9cbc098a0ea38db1ed2ab87b58a17e9865f3575))\n* **ui:** restore isSubscribed getter on mailbox update ([c44f12b](https://github.com/nextcloud/mail/commit/c44f12b2f294d04cac1c73b41b68d6f9ce8e9af1))\n* **ui:** sub-mailbox drops blocked by parent cascade ([0e81d91](https://github.com/nextcloud/mail/commit/0e81d91f3b4f2a86a2fa80e08f63907f104978f8))\n\n\n### Features\n\n* add ai hint on reply with meeting when ai is used ([fe60745](https://github.com/nextcloud/mail/commit/fe607453a5a320e8324e1c81a2c6f353bde4917a))\n* **ui:** add password change shortcut to server settings ([ac447f2](https://github.com/nextcloud/mail/commit/ac447f2e6e3acacbaeba28b585046ed253edaa6b))\n\n\n\n# [5.9.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-alpha.1...v5.9.0-rc.1) (2026-05-27)\n\n\n### Bug Fixes\n\n* **api:** validate targetPath is an existing folder on saveAttachment ([0f5d81c](https://github.com/nextcloud/mail/commit/0f5d81cf8ae5994f36d2364088c02834e18bce4e))\n* **deps:** Fix npm audit ([45b32cf](https://github.com/nextcloud/mail/commit/45b32cfb49e03a1bff58d6a08155cfacb691acef))\n* **dns:** Update public suffix list ([119a96b](https://github.com/nextcloud/mail/commit/119a96bec966268116776044c6866dc547a801ff))\n* **l10n:** Update translations from Transifex ([9b6ba58](https://github.com/nextcloud/mail/commit/9b6ba5871b0895c9a15e88131921d4228ee45200))\n* **l10n:** Update translations from Transifex ([fba5807](https://github.com/nextcloud/mail/commit/fba580735f9f0b89269b7885adb00a264c4ee397))\n* **l10n:** Update translations from Transifex ([b37655d](https://github.com/nextcloud/mail/commit/b37655d8d5fd9ad84f2ddb1ef94b2e60e7488140))\n* **l10n:** Update translations from Transifex ([0367a07](https://github.com/nextcloud/mail/commit/0367a07118c904d5522a9047520104145ec7f219))\n* **package:** exclude dev config and patch files from release tarball ([6d20e3f](https://github.com/nextcloud/mail/commit/6d20e3f06afb127e5e5f19fca8fd6a810747eb46))\n* **ui:** add NcModal name prop to SmimeCertificateModal for accessibility ([525c3ab](https://github.com/nextcloud/mail/commit/525c3ab9d53f19082c137cc0050f4038c54f0b70))\n* **ui:** use v-model for assistance setting switches ([9bbae7d](https://github.com/nextcloud/mail/commit/9bbae7d7d55a5e22f0c1f67e1d58f987ffe80233))\n\n\n### Features\n\n* add notifications for account delegation ([2e1ddae](https://github.com/nextcloud/mail/commit/2e1ddaec2d45636f69a70c338fe5caa7b659ffd2))\n* **deps:** Add Nextcloud 35 support ([e3dcc0e](https://github.com/nextcloud/mail/commit/e3dcc0e0ac3b644199abb36def63c6737a89919c))\n* **ui:** paste or copy several e-mail addresses into address fields at once ([98f6282](https://github.com/nextcloud/mail/commit/98f6282008460663bd312d66d4398ae01aa7c188))\n\n\n\n# [5.9.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.9.0-dev.1...v5.9.0-alpha.1) (2026-05-18)\n\n\n### Bug Fixes\n\n* **auth:** detect and warn about MS accounts without oauth setup ([836b36a](https://github.com/nextcloud/mail/commit/836b36afa096a89334986653fff2f8a3d3c69b9c))\n* correct favorite/unfavorite bulk action logic ([fcb160a](https://github.com/nextcloud/mail/commit/fcb160ac78f58e93df9c2cddcf2189a81b42c876)), closes [#12149](https://github.com/nextcloud/mail/issues/12149)\n* **deps:** Fix npm audit ([8df6bdf](https://github.com/nextcloud/mail/commit/8df6bdf5f161345ce4d64b472ff05fa6f1ac79a6))\n* **dns:** Update public suffix list ([23d0823](https://github.com/nextcloud/mail/commit/23d0823dd1d930fbaf72b93c089b30c6622e5661))\n* **imap:** log number of connections during CLI sync ([d9c240c](https://github.com/nextcloud/mail/commit/d9c240cac5ea17029c8272707614de1ae63a88d1))\n* **l10n:** Update translations from Transifex ([7838385](https://github.com/nextcloud/mail/commit/78383856e07df0c2a7ba0bd2f7f8e66b7ddcf69c))\n* **l10n:** Update translations from Transifex ([203ce36](https://github.com/nextcloud/mail/commit/203ce3603f6abf3640dbc4856e422162a55e5531))\n* **l10n:** Update translations from Transifex ([c6b89ed](https://github.com/nextcloud/mail/commit/c6b89edbcbe08ec9d9e7cadf3aa89d148728a4c2))\n* **l10n:** Update translations from Transifex ([8cb01dc](https://github.com/nextcloud/mail/commit/8cb01dc41e437aa9e0aeee6bf9cfe20cefd71b8f))\n* **l10n:** Update translations from Transifex ([17d048a](https://github.com/nextcloud/mail/commit/17d048a2deac844415f28d98e7bc5cd7bf3d3a3c))\n* **l10n:** Update translations from Transifex ([40cc7c2](https://github.com/nextcloud/mail/commit/40cc7c2469ef49a470cbbe2a9b5b5e9b574f26c7))\n* **l10n:** Update translations from Transifex ([af4c704](https://github.com/nextcloud/mail/commit/af4c704e8653a70b56784bb15a3c1a78b377078e))\n* **lint:** fix all lint errors introduced by recipient display changes ([f19e780](https://github.com/nextcloud/mail/commit/f19e780abfa5df2a01d4805707deee2c22a03ae0))\n* Load translations via filesystem path ([042cc1e](https://github.com/nextcloud/mail/commit/042cc1e468f771018a86c043141f1e61ebea8e17))\n* Modal open bug ([5f21187](https://github.com/nextcloud/mail/commit/5f21187f8458322e5be8ae3728cb4d9156eceff3))\n* **thread:** address PR review comments ([dcbf341](https://github.com/nextcloud/mail/commit/dcbf3414f3cf4973304aa64156ed6f23fcb1a6d2))\n* **thread:** address review feedback on recipient CSS ([478f2f6](https://github.com/nextcloud/mail/commit/478f2f6011ce1dae128de9a7a28fa0b065583322))\n* **thread:** collapse recipients by default behind toggle chevron ([13041d9](https://github.com/nextcloud/mail/commit/13041d9f913c8cea46adff73e028cb4a7977a964))\n* **thread:** move recipient bubbles outside router-link to fix click handling ([971a59d](https://github.com/nextcloud/mail/commit/971a59dec9534917cb608c90fd27a9adfe992e83))\n* **thread:** polish sender/recipients display in thread envelope ([d02a261](https://github.com/nextcloud/mail/commit/d02a2618bfabd715998110c14c4bdfb3aa64b374))\n* **thread:** size recipient bubbles to 24px via CSS overrides ([2add2e4](https://github.com/nextcloud/mail/commit/2add2e4f0800570122ffa492ff64a1e06df9a785))\n* **ui:** close attachment actions menu after clicking Download or Save to Files ([dade396](https://github.com/nextcloud/mail/commit/dade396308420d2507f75ab7491782572f18c85e))\n\n\n### Features\n\n* add delegation ([cf3bd8b](https://github.com/nextcloud/mail/commit/cf3bd8bf04307bcc91c28dc98928f171eca1a475))\n* add html and source editing support ([0eaad6f](https://github.com/nextcloud/mail/commit/0eaad6fb1f1408d1b17a3a3ceca27583f5b5fac2))\n* **Agents.md:** add styling instructions ([5dd4fd1](https://github.com/nextcloud/mail/commit/5dd4fd14cf85b420685a3e4915255d7167a40c03))\n* Keep inline images on forwarding ([bcf94f4](https://github.com/nextcloud/mail/commit/bcf94f40267edb19b96a3c1d03297cf28fd1e51b))\n* **thread:** match design spec from [#4258](https://github.com/nextcloud/mail/issues/4258) ([14fdd9a](https://github.com/nextcloud/mail/commit/14fdd9ab94d3fee82eff3ca71b4fd644094de49f))\n* **thread:** show per-message To/Cc/Bcc recipients in thread view ([332ffef](https://github.com/nextcloud/mail/commit/332ffefd5c42d6b387b00834d0d167b3531c173c)), closes [#11305](https://github.com/nextcloud/mail/issues/11305) [#9311](https://github.com/nextcloud/mail/issues/9311) [#4258](https://github.com/nextcloud/mail/issues/4258)\n\n\n### Performance Improvements\n\n* **imap:** reuse client connection during initial sync ([c0f3a79](https://github.com/nextcloud/mail/commit/c0f3a79ff0e5a4bf6ef022677bf1417e66be851e))\n\n\n\n# [5.9.0-dev.1](https://github.com/nextcloud/mail/compare/v5.8.0-alpha.1...v5.9.0-dev.1) (2026-05-06)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([e27a4ad](https://github.com/nextcloud/mail/commit/e27a4addb73ea82d3500844297658ac47447028b))\n\n\n\n# [5.8.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.7.0-rc.1...v5.8.0-alpha.1) (2026-05-05)\n\n\n### Bug Fixes\n\n* **AccountService:** Invalidate cache after account creation/change/deletion ([f205e15](https://github.com/nextcloud/mail/commit/f205e1529b55a5d199589e5e90d758e3019d3b23))\n* **account:** use classification state from account ([662eeff](https://github.com/nextcloud/mail/commit/662eeff58c7196b01dfe8ace35a9765bf86ca05d))\n* adding smart reply text when reply all ([1c32ab1](https://github.com/nextcloud/mail/commit/1c32ab15920853ad4c81056e1a58e5dd32ba200b))\n* **agents.md:** adjust license ([380a961](https://github.com/nextcloud/mail/commit/380a961ff60008270f1df98b071544e68e36643a))\n* **ai:** handle invalid JSON and possible null for smart replies ([27e443b](https://github.com/nextcloud/mail/commit/27e443b66369afbdb538cf9e9ce47f259bd1de61))\n* **attachementNames:** lower log level ([22a111f](https://github.com/nextcloud/mail/commit/22a111fd5051421279fd7237daac903e557a2293))\n* **attachements:** unify icons with the rest of nextcloud ([ea58f99](https://github.com/nextcloud/mail/commit/ea58f9963bd620e62e52ab9c78ecb20e8409d0f0))\n* **autocomplete:** respect privacy settings for sharing ([b7e6088](https://github.com/nextcloud/mail/commit/b7e608827e355c416069f3a3b6a306aee6d113f4))\n* Avoid undefined array key for address list ([f3497f8](https://github.com/nextcloud/mail/commit/f3497f824df3781400bb5ceb6ae4c40fddf03501))\n* Broken encryption with Mailvelope ([4b543b4](https://github.com/nextcloud/mail/commit/4b543b4719341f2e0cf0f01b325e88c37e138c51))\n* **cache:** expire the IMAP ratelimit keys via TTL ([f1ac885](https://github.com/nextcloud/mail/commit/f1ac8858927a560df03fc76e4950d8e24896219e))\n* **ckeditor:** Better matching for CKEditor translations ([990f94a](https://github.com/nextcloud/mail/commit/990f94ad09d646c27de6a3ed33c062b4d9f7ecc9))\n* clean text blocks on user deletion ([93b07d4](https://github.com/nextcloud/mail/commit/93b07d4c45cdaa2377d407d8b7944b0b321183d6))\n* compact view UI fixes ([d8cec2c](https://github.com/nextcloud/mail/commit/d8cec2c744fbf94fb4e255c9da229a0fd5c4f120))\n* **composer:** Adjust border color of vertical separator to be in line with other borders ([71d88f2](https://github.com/nextcloud/mail/commit/71d88f2c0b8b3d30bf60f84d7ed3db9862eff440))\n* **composer:** Adjust border colors of CKEditor element to be in line with other borders ([496b8f6](https://github.com/nextcloud/mail/commit/496b8f654953ef51ef2906165da55a6c32f59291))\n* **composer:** Don't show 'No results' dropdown when To/Cc/Bcc focused, only with search term put in ([6e78828](https://github.com/nextcloud/mail/commit/6e788289f2ab89dfe2191d377e477aa9f6e4bffb))\n* **composer:** Forwarding emails with attachments ([4dd6a0e](https://github.com/nextcloud/mail/commit/4dd6a0e766831ea1b91b01c2fc71335fb0e85705))\n* **composer:** handle missing message body gracefully ([1d40201](https://github.com/nextcloud/mail/commit/1d402012a443e7fd343f9412f511208fc2f1ca43))\n* **Composer:** make initial focus be on to field ([010f648](https://github.com/nextcloud/mail/commit/010f6485bad8fa9c2ad95616ba1b6d5ac5ad4f70))\n* **composer:** Use v-model for send later radio buttons ([bb99cfa](https://github.com/nextcloud/mail/commit/bb99cfa7404a08e80a543813c7d6511127bdf1b6))\n* **contactsIntegration:** avoid incorrect cache results ([ae4af81](https://github.com/nextcloud/mail/commit/ae4af81430e0cf0de04b771a20ef910bd01ab93c))\n* **contacts:** Use correct default for shareapi_allow_share_dialog_user_enumeration ([2e8ed36](https://github.com/nextcloud/mail/commit/2e8ed36f10f5f01c8ff3a26a4ac8949a4b4a2e6d))\n* Copilot suggestions ([3c7341f](https://github.com/nextcloud/mail/commit/3c7341f44b1760126846881586e16e168b9aed09))\n* **db:** add missing messages table index for Postgres ([747cf7d](https://github.com/nextcloud/mail/commit/747cf7dd6a7414a7e19b78fa4377ec9fd5789d6a))\n* **db:** refactor delete by alias to separate queries ([8f3fcd4](https://github.com/nextcloud/mail/commit/8f3fcd4f611770ebbf5bd485efa2236afbb54d35))\n* **db:** widen recipients table index for email+type+message_id ([19514ac](https://github.com/nextcloud/mail/commit/19514ac550a18741aef7dd8d8b15ef62c48d78ae))\n* **deps:** bump @iframe-resizer/child from 5.5.7 to ^5.5.8-beta.2 ([#12350](https://github.com/nextcloud/mail/issues/12350)) ([396b3ea](https://github.com/nextcloud/mail/commit/396b3eae4a32686f247c9bdf513f9d7dd88f10b1))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.8 ([#12377](https://github.com/nextcloud/mail/issues/12377)) ([7618a40](https://github.com/nextcloud/mail/commit/7618a40010869c826346ae76b0ee4e57fdc57ddc))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.9 ([#12444](https://github.com/nextcloud/mail/issues/12444)) ([912105c](https://github.com/nextcloud/mail/commit/912105cc5f3b311e41ab6b82fe170a3583be464c))\n* **deps:** bump @iframe-resizer/parent from 5.5.7 to ^5.5.8-beta.2 ([#12351](https://github.com/nextcloud/mail/issues/12351)) ([26ed10a](https://github.com/nextcloud/mail/commit/26ed10a41f56da1c860ab0260576fa320b821af7))\n* **deps:** bump @iframe-resizer/parent from 5.5.8 to ^5.5.8 ([#12389](https://github.com/nextcloud/mail/issues/12389)) ([0c6b4d1](https://github.com/nextcloud/mail/commit/0c6b4d13984810824eba8538f75800c776224cad))\n* **deps:** bump @iframe-resizer/parent from 5.5.9 to ^5.5.9 ([#12478](https://github.com/nextcloud/mail/issues/12478)) ([29cfec6](https://github.com/nextcloud/mail/commit/29cfec6cefdb1ca99391ca1c0e15d53bdb841d4f))\n* **deps:** bump @nextcloud/auth from 2.5.3 to ^2.6.0 ([#12758](https://github.com/nextcloud/mail/issues/12758)) ([789eb32](https://github.com/nextcloud/mail/commit/789eb321875d9bd9ca42012c3e2a9681f0091eb0))\n* **deps:** bump @nextcloud/axios from 2.5.2 to ^2.6.0 ([#12837](https://github.com/nextcloud/mail/issues/12837)) ([3b9474c](https://github.com/nextcloud/mail/commit/3b9474ccb57296ec12ef30de8c5089116dc904ee))\n* **deps:** bump @nextcloud/calendar-js from 8.1.4 to ^8.1.6 ([889e313](https://github.com/nextcloud/mail/commit/889e31327bcec9de65c1121b6b1c216a3a45d47a))\n* **deps:** bump @nextcloud/cdav-library from 2.1.1 to ^2.2.0 ([#12759](https://github.com/nextcloud/mail/issues/12759)) ([41d27cc](https://github.com/nextcloud/mail/commit/41d27cc6755cea0a501621051d25b5c32295c978))\n* **deps:** bump @nextcloud/sharing from 0.3.0 to ^0.4.0 ([efab69f](https://github.com/nextcloud/mail/commit/efab69fe258db00c1c7a3c191761fdb9a3e6f2a6))\n* **deps:** bump @nextcloud/timezones from 0.2.0 to v1 ([6eb78b9](https://github.com/nextcloud/mail/commit/6eb78b992297a72e9862367304b95facc9ffe368))\n* **deps:** bump @nextcloud/vue from 8.36.0 to ^8.36.0 ([d68bbc6](https://github.com/nextcloud/mail/commit/d68bbc69e069dc9767970ce00e127046b6e1e229))\n* **deps:** bump @nextcloud/vue from 8.37.0 to ^8.37.0 ([fdd6478](https://github.com/nextcloud/mail/commit/fdd6478797e818ace28eb2c2a88c5615d081c9d8))\n* **deps:** bump @nextcloud/vue from 8.38.0 to ^8.38.0 ([c142309](https://github.com/nextcloud/mail/commit/c142309f43496b6fe1a95da34baf355c3a91d94e))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.3 to ^1.9.1 ([#12847](https://github.com/nextcloud/mail/issues/12847)) ([cc683c1](https://github.com/nextcloud/mail/commit/cc683c181c76bd66cdfce3cdc7b9be1024cca9bb))\n* **deps:** bump bytestream/horde-imap-client from 2.33.6 to ^2.33.7 ([#12627](https://github.com/nextcloud/mail/issues/12627)) ([06fd337](https://github.com/nextcloud/mail/commit/06fd3372f0095de252f02f2c55664418699e12b7))\n* **deps:** bump bytestream/horde-imap-client from 2.33.7 to ^2.34.0 ([#12675](https://github.com/nextcloud/mail/issues/12675)) ([56e76df](https://github.com/nextcloud/mail/commit/56e76df878f2469128d8daf99e10a0a37d07b3eb))\n* **deps:** bump bytestream/horde-imap-client from 2.34.0 to ^2.34.1 ([#12798](https://github.com/nextcloud/mail/issues/12798)) ([834a0a6](https://github.com/nextcloud/mail/commit/834a0a65330b86a0a7030628b5c66e5530cc1df5))\n* **deps:** bump bytestream/horde-mime from 2.14.0 to ^2.14.1 ([87d83e8](https://github.com/nextcloud/mail/commit/87d83e897243e9c09731b116f72748551c790e0a))\n* **deps:** bump ckeditor from v45 to v46 ([6884f5b](https://github.com/nextcloud/mail/commit/6884f5b2512ed91c0d74cda8f4031da8c44156dc))\n* **deps:** bump ckeditor5 from 46.1.1 to v47 ([e6fc646](https://github.com/nextcloud/mail/commit/e6fc6467b48ff721a03d1666fc8afd48d90093bc))\n* **deps:** bump ckeditor5 from 47.6.1 to ^47.6.1 ([#12704](https://github.com/nextcloud/mail/issues/12704)) ([682ad03](https://github.com/nextcloud/mail/commit/682ad03814433a1ae2564a8373fda5b0d72179a1))\n* **deps:** bump ckeditor5 from 47.6.2 to ^47.6.2-alpha.0 ([#12730](https://github.com/nextcloud/mail/issues/12730)) ([cc00d75](https://github.com/nextcloud/mail/commit/cc00d75505b639c704e98633582b332eb317e18a))\n* **deps:** bump core-js from 3.48.0 to ^3.49.0 ([#12760](https://github.com/nextcloud/mail/issues/12760)) ([660f2ff](https://github.com/nextcloud/mail/commit/660f2fffac7aaaf957f26cae01838e6de4221fc1))\n* **deps:** bump dompurify from 3.3.1 to v3.3.2 ([#12521](https://github.com/nextcloud/mail/issues/12521)) ([68d4a79](https://github.com/nextcloud/mail/commit/68d4a799b84b27822cbca1fb1f0bd3a1ab5825ef))\n* **deps:** bump dompurify from 3.3.2 to ^3.3.3 ([#12653](https://github.com/nextcloud/mail/issues/12653)) ([1316686](https://github.com/nextcloud/mail/commit/1316686d5ac9aaa9437052f9660a2e765ccf2e5e))\n* **deps:** bump dompurify from 3.3.3 to v3.4.0 ([#12744](https://github.com/nextcloud/mail/issues/12744)) ([8a96e08](https://github.com/nextcloud/mail/commit/8a96e082cf4edc459350027a4628cd78135c66c1))\n* **deps:** bump dompurify from 3.4.0 to ^3.4.0 ([#12761](https://github.com/nextcloud/mail/issues/12761)) ([675d538](https://github.com/nextcloud/mail/commit/675d538a37c295ebf0020ccfeeff445f9a83b3f5))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.1 ([#12827](https://github.com/nextcloud/mail/issues/12827)) ([3c9adc6](https://github.com/nextcloud/mail/commit/3c9adc6aa80c7efa148c669a4153e41dc0ae731a))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.2 ([#12869](https://github.com/nextcloud/mail/issues/12869)) ([cf0f574](https://github.com/nextcloud/mail/commit/cf0f57409ada028d741c187db8391084a67bd5f1))\n* **deps:** bump flatted from 3.3.3 to 3.4.2 ([#12659](https://github.com/nextcloud/mail/issues/12659)) ([ff40a35](https://github.com/nextcloud/mail/commit/ff40a35d4c9398e09e1f9cc2f113071b0d0d903c))\n* **deps:** bump lodash from 4.17.23 to v4.18.1 ([#12693](https://github.com/nextcloud/mail/issues/12693)) ([3d45186](https://github.com/nextcloud/mail/commit/3d451865b93ad3742dd76f4bd6f86cc5d0d8f6e4))\n* **deps:** bump lodash from 4.18.1 to ^4.18.1 ([#12731](https://github.com/nextcloud/mail/issues/12731)) ([679effc](https://github.com/nextcloud/mail/commit/679effcb68a12bdb79d762afea51f9e21c905c04))\n* **deps:** bump node-forge from 1.3.3 to v1.4.0 ([#12663](https://github.com/nextcloud/mail/issues/12663)) ([fb5b0e6](https://github.com/nextcloud/mail/commit/fb5b0e602a1e2b265af862123cb254e6b7566b3f))\n* **deps:** bump node-forge from 1.4.0 to ^1.4.0 ([#12752](https://github.com/nextcloud/mail/issues/12752)) ([3330a0b](https://github.com/nextcloud/mail/commit/3330a0b45939edf348715741207f9929c2e753d5))\n* **deps:** bump rollup from 4.52.4 to 4.60.0 ([#12658](https://github.com/nextcloud/mail/issues/12658)) ([dfd6a36](https://github.com/nextcloud/mail/commit/dfd6a36b2277ec31d865fb7a5fca6e818dc7923f))\n* **deps:** bump sabberworm/php-css-parser from 8.9.0 to v9 ([d32bef1](https://github.com/nextcloud/mail/commit/d32bef15e529e6ba89cc594ad50f243749224e42))\n* **deps:** bump stylelint from 17.9.1 to ^17.8.0 ([#12851](https://github.com/nextcloud/mail/issues/12851)) ([dceef09](https://github.com/nextcloud/mail/commit/dceef09db387cc6daa55e51f5a0dd9c89a1b85a7))\n* **deps:** bump stylelint from 17.9.1 to ^17.9.1 ([#12870](https://github.com/nextcloud/mail/issues/12870)) ([0685aa5](https://github.com/nextcloud/mail/commit/0685aa5324cb671034e653ae482c11fab00d7b52))\n* **deps:** bump uuid from 11.1.0 to v14 ([6e98a10](https://github.com/nextcloud/mail/commit/6e98a10c7d15067b285895f4a1ae995a0503279a))\n* **deps:** Fix npm audit ([0c92bdb](https://github.com/nextcloud/mail/commit/0c92bdb20aa8e0a2c656f682bf4fdc348acfbcaf))\n* **deps:** Fix npm audit ([38e8a60](https://github.com/nextcloud/mail/commit/38e8a6059f31f16ce569bb89e2a9d80acd47e9f9))\n* **deps:** Fix npm audit ([3809bc3](https://github.com/nextcloud/mail/commit/3809bc35bfb9c3ad6d1fcc6077fb68d400fe89b1))\n* **deps:** Fix npm audit ([3bab2ea](https://github.com/nextcloud/mail/commit/3bab2eaa703c93e0370b37ece6cb042844efdd73))\n* **deps:** Update symfony/process to fix MSYS2 argument escaping vulnerability ([e1e288f](https://github.com/nextcloud/mail/commit/e1e288fb8427e2b3108f888fe869b0a07029c93e))\n* **deps:** update webpack-cli to v6 ([3b43ed9](https://github.com/nextcloud/mail/commit/3b43ed90afba2e6c541e2f0d67403c8f494cfa33))\n* **dns:** Update public suffix list ([7efd7f3](https://github.com/nextcloud/mail/commit/7efd7f39ca23deb268ab6918e31be047b9fe3b9e))\n* **dns:** Update public suffix list ([064b615](https://github.com/nextcloud/mail/commit/064b615d6ae879e57231fb115492e54f2a46e42d))\n* **dns:** Update public suffix list ([3e660c7](https://github.com/nextcloud/mail/commit/3e660c71ebbf740842038317c75263aca2ec75f9))\n* **dns:** Update public suffix list ([c46c0c0](https://github.com/nextcloud/mail/commit/c46c0c0eeae2bf9b09fbed0472ffa07b2e7811ce))\n* **dns:** Update public suffix list ([23d0ebf](https://github.com/nextcloud/mail/commit/23d0ebfc7ea82906b1647455fde6748e6e26999f))\n* **dns:** Update public suffix list ([c583ad5](https://github.com/nextcloud/mail/commit/c583ad5159a4de8a634d7f7da8516e1c3f17a96e))\n* Dont hijack mailto links ([3c025c9](https://github.com/nextcloud/mail/commit/3c025c94f6989364311a48f6f5aa1ebc45506ee9))\n* **drag-and-drop:** track all droppable-mailbox directive instances independently ([6729ad8](https://github.com/nextcloud/mail/commit/6729ad88d7e3c8d0a942e641b208f3398a0ebb09))\n* Fix deprecation warnings when using PHP >= 8.5 ([6f33f46](https://github.com/nextcloud/mail/commit/6f33f4673fbd3f12e519db8caaf3889d816ea996))\n* Handle SmimeDecryptException when getting attachments ([4e7e9e0](https://github.com/nextcloud/mail/commit/4e7e9e03cd40d06ea912b1ce215f09fe8fd47c18))\n* **http:** guard against more null users in controllers ([50cef92](https://github.com/nextcloud/mail/commit/50cef92ce36849d55a83f9c2c25d16a5cce0fbb0))\n* **http:** guard against null user in MailboxesController ([a602571](https://github.com/nextcloud/mail/commit/a60257198725ab372baa74e9e42630550a9378a6))\n* **http:** guard against null user in MessagesController ([3f6cad9](https://github.com/nextcloud/mail/commit/3f6cad922120259cc9039ef4697f26550028b5a8))\n* **http:** prevent NPE by non-null controller parameters ([8ab9849](https://github.com/nextcloud/mail/commit/8ab9849f929f38b2e8ca2bfc041e13d99b9bb9a7))\n* Ignore attachments without a name ([caba948](https://github.com/nextcloud/mail/commit/caba948c62f21f5dbf3eb0673e8331e5813faadd))\n* **imap:** avoid expanding UID ranges ([8af9849](https://github.com/nextcloud/mail/commit/8af9849d362260d03a7a68de928fef73b0f84017))\n* **IMAP:** don't add whitespaces to drafts ([d8b4a85](https://github.com/nextcloud/mail/commit/d8b4a859e7784b80906fc3e3686a8d5415128576))\n* **imap:** Handle unselectable mailboxe ([86d5fee](https://github.com/nextcloud/mail/commit/86d5feef879187f473df613490c0e10126e8137b))\n* **imap:** log details of the sync to debug OOMs ([432ec82](https://github.com/nextcloud/mail/commit/432ec829f94d0bf11214191c8b1f0ad9e4897851))\n* **imap:** log more sync details ([b9ff2d0](https://github.com/nextcloud/mail/commit/b9ff2d03bd1356e32c7cf7f1d02fca22b7cd0199))\n* **imap:** log partial sync criteria ([88eccd0](https://github.com/nextcloud/mail/commit/88eccd09404da76485e1284375f257b2bf57f965))\n* **imap:** prevent null HIGHESTMODSEQ after initial sync ([7980d9e](https://github.com/nextcloud/mail/commit/7980d9e4015c894c4c5a7215546e7c61f5abe1c3))\n* Invalid cache lookup for emails without attachment ([a76426e](https://github.com/nextcloud/mail/commit/a76426e2fb37bb315850e690f979955aaa39d3c5))\n* **js:** reset envelope lists to object, not array ([5d96714](https://github.com/nextcloud/mail/commit/5d967141f8cacc8a138f14ca23a7a13346039072))\n* Keep raw message on smtp/mime failure ([58c860e](https://github.com/nextcloud/mail/commit/58c860ed4a6e1b357028c50828a27347addccde7))\n* **l10n:** Update translations from Transifex ([64f21c6](https://github.com/nextcloud/mail/commit/64f21c6065987059fcd23f4d049eee318988a4f5))\n* **l10n:** Update translations from Transifex ([0c3ccf1](https://github.com/nextcloud/mail/commit/0c3ccf171784d88bfffabdfc2b74b9a5832fe730))\n* **l10n:** Update translations from Transifex ([b07f5a9](https://github.com/nextcloud/mail/commit/b07f5a9912795352155a9a3db07b52de7c692bd4))\n* **l10n:** Update translations from Transifex ([929b01c](https://github.com/nextcloud/mail/commit/929b01c6841913040f9ddd0c8d85d7dea1cf53e7))\n* **l10n:** Update translations from Transifex ([9d799da](https://github.com/nextcloud/mail/commit/9d799da288e845db089d69fc714f12d2d75c8fcc))\n* **l10n:** Update translations from Transifex ([0fc8509](https://github.com/nextcloud/mail/commit/0fc85095b70bff9334edcba38641cbf17deb7f7a))\n* **l10n:** Update translations from Transifex ([41b55e1](https://github.com/nextcloud/mail/commit/41b55e17969ce101b6ec8489ef4924a82cffd4a8))\n* **l10n:** Update translations from Transifex ([ca874d6](https://github.com/nextcloud/mail/commit/ca874d68a5964c7177506341865bb69d2387a4d3))\n* **l10n:** Update translations from Transifex ([361fcf7](https://github.com/nextcloud/mail/commit/361fcf755babcd8c25c65aa3eff6fa333e44f2b1))\n* **l10n:** Update translations from Transifex ([331d67a](https://github.com/nextcloud/mail/commit/331d67a1a288418a2bf70c23980e050682f4e733))\n* **l10n:** Update translations from Transifex ([1335815](https://github.com/nextcloud/mail/commit/1335815a1de24f9f4494d0f8f75991f9c852e372))\n* **l10n:** Update translations from Transifex ([31fe982](https://github.com/nextcloud/mail/commit/31fe982bce3533a2feaecce0f255aa2de7bf21b7))\n* **l10n:** Update translations from Transifex ([7b57369](https://github.com/nextcloud/mail/commit/7b57369afb7f3bda596ea0e90eaf995f43490f78))\n* **l10n:** Update translations from Transifex ([1e74c52](https://github.com/nextcloud/mail/commit/1e74c520a61df0854d05396a8fa803daa20b5362))\n* **l10n:** Update translations from Transifex ([3ddace2](https://github.com/nextcloud/mail/commit/3ddace263b82dc7504ea7346d6156c7d2f4e7868))\n* **l10n:** Update translations from Transifex ([1277bc8](https://github.com/nextcloud/mail/commit/1277bc892e45e34d78a2755bf7e3ed4dc59d0127))\n* **l10n:** Update translations from Transifex ([4c93f30](https://github.com/nextcloud/mail/commit/4c93f307e36007340b32f80e75b753ea87cc4c07))\n* **l10n:** Update translations from Transifex ([5db8d9a](https://github.com/nextcloud/mail/commit/5db8d9a72733c47019735044aaa6a2d1cc064a06))\n* **l10n:** Update translations from Transifex ([14e87a1](https://github.com/nextcloud/mail/commit/14e87a15b56ba40daeef8ff328637a80e93afc95))\n* **l10n:** Update translations from Transifex ([4211056](https://github.com/nextcloud/mail/commit/42110564979994a6fdbe8baefa2671640241acba))\n* **l10n:** Update translations from Transifex ([0eef59d](https://github.com/nextcloud/mail/commit/0eef59d49324b1a79a7ef8b7fcb20b8ed13778f3))\n* **l10n:** Update translations from Transifex ([6ce413b](https://github.com/nextcloud/mail/commit/6ce413bb6365d6b82b6d55a78160ea68b33d8359))\n* **l10n:** Update translations from Transifex ([0f90f19](https://github.com/nextcloud/mail/commit/0f90f19d946e0cdf0430a5ab973754b630884c99))\n* **l10n:** Update translations from Transifex ([5d1535d](https://github.com/nextcloud/mail/commit/5d1535d4a1d18cb658d69400a4c20822f553af2a))\n* **l10n:** Update translations from Transifex ([693771f](https://github.com/nextcloud/mail/commit/693771fae8887724bc3337b2bdb0b5137ede3090))\n* **l10n:** Update translations from Transifex ([2841421](https://github.com/nextcloud/mail/commit/28414219b5bc1b34c04a99d4623b986c7fd2514d))\n* **l10n:** Update translations from Transifex ([0a746cf](https://github.com/nextcloud/mail/commit/0a746cfef45de9707a9b866a3d591666b781cecb))\n* **l10n:** Update translations from Transifex ([4ee2065](https://github.com/nextcloud/mail/commit/4ee2065b1c16fdc3c2991eaeb16796f523ed1b11))\n* **l10n:** Update translations from Transifex ([8027c52](https://github.com/nextcloud/mail/commit/8027c5244ab9f6f2dda5f15d703206699a5a2654))\n* **l10n:** Update translations from Transifex ([8d84ac9](https://github.com/nextcloud/mail/commit/8d84ac90cc01dd50c0b02c36baf53829245eca31))\n* **l10n:** Update translations from Transifex ([1c088bb](https://github.com/nextcloud/mail/commit/1c088bbe13525a5aca1540ce1ed1e387a45e8751))\n* **l10n:** Update translations from Transifex ([3e6bc95](https://github.com/nextcloud/mail/commit/3e6bc95128afb3a00e570cba136814a5b681601b))\n* **l10n:** Update translations from Transifex ([5d0df22](https://github.com/nextcloud/mail/commit/5d0df22ddfd0dbb5b35f702700e3d7e9741523f4))\n* **l10n:** Update translations from Transifex ([ee2e98e](https://github.com/nextcloud/mail/commit/ee2e98e589c8e467aa15ececa50b80825e42582b))\n* **l10n:** Update translations from Transifex ([d4b222a](https://github.com/nextcloud/mail/commit/d4b222ad37d39e08f92c19590792196049ec3725))\n* **l10n:** Update translations from Transifex ([4301b55](https://github.com/nextcloud/mail/commit/4301b557c537da6a57bbe51df50c41e340017825))\n* **l10n:** Update translations from Transifex ([ff4f00c](https://github.com/nextcloud/mail/commit/ff4f00c8d0e6e15af9d2b3a68df891bfbcf20089))\n* **l10n:** Update translations from Transifex ([385edc0](https://github.com/nextcloud/mail/commit/385edc0e283226c295ebf10b20b79f2d35e5651f))\n* **l10n:** Update translations from Transifex ([2dbc479](https://github.com/nextcloud/mail/commit/2dbc479359d9c2a6851f49fdc283a2f1b7f1b8e4))\n* **l10n:** Update translations from Transifex ([35f1831](https://github.com/nextcloud/mail/commit/35f18314a61d61014f5f439aea66d255ad9db85d))\n* **l10n:** Update translations from Transifex ([9a1d23f](https://github.com/nextcloud/mail/commit/9a1d23fcf3d6167bf84374bb34ea8562505aed62))\n* **l10n:** Update translations from Transifex ([261dd36](https://github.com/nextcloud/mail/commit/261dd368c06fde0643a7e164ebf75587835fc062))\n* **l10n:** Update translations from Transifex ([966bdf9](https://github.com/nextcloud/mail/commit/966bdf9a283cf9695d8b5580e7d174a18d63f355))\n* **l10n:** Update translations from Transifex ([7a3f2b5](https://github.com/nextcloud/mail/commit/7a3f2b51a9e1dd41af78c8a3e364419c69373a3f))\n* **l10n:** Update translations from Transifex ([de92421](https://github.com/nextcloud/mail/commit/de924212f802c351ef708890c7b6a677f6a98402))\n* **l10n:** Update translations from Transifex ([4da1267](https://github.com/nextcloud/mail/commit/4da12670673bbde80c2f439702832d5947b8a238))\n* **l10n:** Update translations from Transifex ([a8bf321](https://github.com/nextcloud/mail/commit/a8bf321975cff3a310edb7ca33338431631d34a5))\n* **l10n:** Update translations from Transifex ([d387e38](https://github.com/nextcloud/mail/commit/d387e38620a26d00255627a1e52862a765b055a3))\n* **l10n:** Update translations from Transifex ([7b77cf1](https://github.com/nextcloud/mail/commit/7b77cf1fd39e04d3f853c39be5e9862fe4351b5f))\n* **l10n:** Update translations from Transifex ([100238a](https://github.com/nextcloud/mail/commit/100238a833bb77d2a3d9320630ab5027e2929e8c))\n* **l10n:** Update translations from Transifex ([4d38cbf](https://github.com/nextcloud/mail/commit/4d38cbf8b5abd9d5dbfefc7a688e2ed33f0c63f1))\n* **l10n:** Update translations from Transifex ([f6fcf2d](https://github.com/nextcloud/mail/commit/f6fcf2d9f529d5277d38bf6569f96e33f33628e7))\n* **l10n:** Update translations from Transifex ([32536d3](https://github.com/nextcloud/mail/commit/32536d36512288317e8d28c7d2e0976664224d13))\n* **l10n:** Update translations from Transifex ([3e37229](https://github.com/nextcloud/mail/commit/3e3722954b8966ce67d72c9a4692944b92d0be68))\n* **l10n:** Update translations from Transifex ([3653082](https://github.com/nextcloud/mail/commit/36530829bc02816a2a7d29af03863049c8c7539c))\n* **l10n:** Update translations from Transifex ([7ae6d85](https://github.com/nextcloud/mail/commit/7ae6d85fe7310e722dfbdb1162924d967243660f))\n* **l10n:** Update translations from Transifex ([9efbb1a](https://github.com/nextcloud/mail/commit/9efbb1a53708b4147049beb17dd4efd95ec2066b))\n* **l10n:** Update translations from Transifex ([e4fa916](https://github.com/nextcloud/mail/commit/e4fa916cfaec39d6205e192a2e3255269b204372))\n* **l10n:** Update translations from Transifex ([671a425](https://github.com/nextcloud/mail/commit/671a425f9c1ecfc16540c127eb07eadb65ecb9e1))\n* **l10n:** Update translations from Transifex ([d1a4df6](https://github.com/nextcloud/mail/commit/d1a4df62a8076c513ff042e2b407655fcc1f7cc7))\n* **l10n:** Update translations from Transifex ([bf96880](https://github.com/nextcloud/mail/commit/bf96880672ff4a077e5994263d686826bc50c2b9))\n* **l10n:** Update translations from Transifex ([f88feea](https://github.com/nextcloud/mail/commit/f88feea46903496a77ccc8842826008171f132e4))\n* **l10n:** Update translations from Transifex ([5112079](https://github.com/nextcloud/mail/commit/511207976608f7b2382da25242b757c681b4cbfb))\n* **l10n:** Update translations from Transifex ([a5e79e5](https://github.com/nextcloud/mail/commit/a5e79e5462bffd4cecdaff8152fe6beb0a6dca32))\n* **MailTransmission:** Handle clients/servers picky about empty headers ([f60fd3b](https://github.com/nextcloud/mail/commit/f60fd3bc101d6d7090bf74d8ca83cff881135d15))\n* make list rendering work on mobile ([fa921ec](https://github.com/nextcloud/mail/commit/fa921ecb68667dce91a001151a6f227690dbdfb3))\n* Match default tag colors with Thunderbird ([c755afb](https://github.com/nextcloud/mail/commit/c755afbf288f3852886e096c6a0d11cff3a5708f))\n* **mention:** custom range for usernames and error handling ([eacc8b5](https://github.com/nextcloud/mail/commit/eacc8b5b5fc6bbe80c38621e0620585f7c5b8d9b))\n* Normalize message IDs via RFC822 parser to handle malformed input ([d03c3f1](https://github.com/nextcloud/mail/commit/d03c3f1801c5d3bbb725426887e125b4983a78c3))\n* **oauth:** do not force a Microsoft 365 consent ([23216da](https://github.com/nextcloud/mail/commit/23216da8f4e30f0e8a154d53eb2e2c232415236e))\n* only showing classification check box in setup form ([9f6a675](https://github.com/nextcloud/mail/commit/9f6a675e44c992e6c51b956486e43f56a0a71f82))\n* **outbox:** Skip messages with status error ([438419b](https://github.com/nextcloud/mail/commit/438419b8e069aa657dc587fb5d66119e30e4cae8))\n* **OutOfOfficeForm:** datepicker overlapping with sidebar ([e92759d](https://github.com/nextcloud/mail/commit/e92759d6bdfb97596a8db09891bcdf475674df3a))\n* Pass actual message body to dompurify ([82000ac](https://github.com/nextcloud/mail/commit/82000acaa53a954e36e31c1feec7038cda4c9991))\n* Pass error message from response to error object ([1bd84f1](https://github.com/nextcloud/mail/commit/1bd84f1b15bf78c834e85e39d97ec9bc10e576b0))\n* **phishing:** change header property accessor ([db47778](https://github.com/nextcloud/mail/commit/db47778e3af93b4a3d178a489b9c7b825680ffbb))\n* **php:** avoid implicit throwable to string conversion ([c83ab66](https://github.com/nextcloud/mail/commit/c83ab6630837bc289b3e7c279800894f5db5ae63))\n* **php:** harden return-false-on-error type function result handling ([4dfc60e](https://github.com/nextcloud/mail/commit/4dfc60ea15c4adf72523c5528e72212674499d0d))\n* **php:** refactor int/float conversions ([029d589](https://github.com/nextcloud/mail/commit/029d589d06c0303823955b927249cbf27d1be729))\n* **php:** throw on json encode errors ([d501d21](https://github.com/nextcloud/mail/commit/d501d210f2c992ee30d7160d6c0cfe6ec88f3e9e))\n* **php:** use type-safe string concatenation ([c8b3c1b](https://github.com/nextcloud/mail/commit/c8b3c1bdc18c03b38f7d14b00942857d256d15e1))\n* **provisioning:** Do not provision users without access to mail app ([0c8864c](https://github.com/nextcloud/mail/commit/0c8864cf6f4adc765424ae237294d6c2ef4b68c0))\n* quick search filters ([fd59d5f](https://github.com/nextcloud/mail/commit/fd59d5f70c2066c33336fcd043a874c60d35fcdd))\n* Remove call to deprecated allowEvalScript ([77e7e3f](https://github.com/nextcloud/mail/commit/77e7e3fb89f5cc4a3e74768d9f96a282f4773eb1))\n* Remove unused proxy redirect route ([32a6d46](https://github.com/nextcloud/mail/commit/32a6d46999c4e50afc45c578997b7aada3e2e297))\n* Replace array with weakmap so lookup is O(1) instead of O(n^2) ([580fad6](https://github.com/nextcloud/mail/commit/580fad6f3a1668587aec2ffc32c55a0e1fb3a151))\n* replace deprecated and removed OC\\Server getters ([e157960](https://github.com/nextcloud/mail/commit/e157960f0d88ba82a51820c8d40a88755d429afe))\n* set createdAt timestamp for local attachments ([29f84a6](https://github.com/nextcloud/mail/commit/29f84a604cdc49a476759fbfe35c61eef5537470))\n* show indication that transaltion modal uses AI ([b1843d5](https://github.com/nextcloud/mail/commit/b1843d5b35e8f43a46c001470341cdb85d812964))\n* show loading inidcator when searching messages ([89a2c5a](https://github.com/nextcloud/mail/commit/89a2c5a9a55b8f96242663065ce57a73b1c6b240))\n* Skip iconv without a charset ([d28e6ce](https://github.com/nextcloud/mail/commit/d28e6ceff0589ddf2c53c817866e40982b03fd58))\n* Skip link check for empty message ([4c7db57](https://github.com/nextcloud/mail/commit/4c7db57b2e0624c2036b1fa30eef49057ba9ad55))\n* **smime:** parse email addresses from Subject Alternative Names ([#12486](https://github.com/nextcloud/mail/issues/12486)) ([b3d7c9a](https://github.com/nextcloud/mail/commit/b3d7c9a1374688b4536c9ea4ba91f4f00383c24c)), closes [nextcloud/mail#11738](https://github.com/nextcloud/mail/issues/11738)\n* **textblocks:** guard removal of non existing text block ([89df2c7](https://github.com/nextcloud/mail/commit/89df2c7a88bebab3d34147c056cb267f557b7522))\n* thread scrolling position ([7d4f1be](https://github.com/nextcloud/mail/commit/7d4f1be591dec2af5bacb0920ae145c0b3b3ae9c))\n* **Thread:** title printing ([e9d8f77](https://github.com/nextcloud/mail/commit/e9d8f7718dcfbd18abe679693739117a43d3e063))\n* **ui:** add missing @ to provisioning user ([cb11601](https://github.com/nextcloud/mail/commit/cb116018411a912c24738b362e731587a1dda3fc))\n* **ui:** fix paragraph end tag ([9d9a69f](https://github.com/nextcloud/mail/commit/9d9a69fb8160671c5a77720f52e77ce4b2d493fc))\n* **ui:** Handle focus trap through provide / inject ([197e25a](https://github.com/nextcloud/mail/commit/197e25ab54f621a17e2c48fb45b5f0b215203450))\n* unlock mailboxes after OOM ([789c7d0](https://github.com/nextcloud/mail/commit/789c7d04fc939b455ab395f968188676dcee6179))\n* use HMAC for proxied HTML iframe content ([b346f0b](https://github.com/nextcloud/mail/commit/b346f0bfa09a096c66fe1e020e57808edb736eb2))\n\n\n### Features\n\n* add ai hint for smart replys ([89c2fd6](https://github.com/nextcloud/mail/commit/89c2fd66a98371786219b3a9d1a8e5522e1d7263))\n* add rtl/ltr buttons to ckeditor toolbar ([4ac9c06](https://github.com/nextcloud/mail/commit/4ac9c063b52bb68be62eee54b567af6a98d755d7))\n* **deeplink:** implement message-id search and routing ([54ce486](https://github.com/nextcloud/mail/commit/54ce4865420afeedbb6cefa5bbfe8b87f163bb26))\n* improve follow up and PI ML note ([c952761](https://github.com/nextcloud/mail/commit/c952761657e420795745cb7879b86b62edf12985))\n\n\n### Performance Improvements\n\n* **imap:** reuse existing IMAP client/connection for mailbox sync ([08c5031](https://github.com/nextcloud/mail/commit/08c5031ac8ef83987c36cdebd9b12f35fdd3473c))\n\n\n\n# [5.7.0-rc.1](https://github.com/nextcloud/mail/compare/v5.7.0-beta.4...v5.7.0-rc.1) (2026-01-29)\n\n\n### Bug Fixes\n\n* action items icons on compact mode ([8b090ba](https://github.com/nextcloud/mail/commit/8b090ba2a827c47e3ffad4255b854b43e9e61b10))\n* **composer:** drop envelope from store when saving a draft ([a8db9ae](https://github.com/nextcloud/mail/commit/a8db9ae14e5d33c3f80ec2399b485f589fcb1dbf))\n* **deps:** bump @nextcloud/paths from 2.4.0 to v3 ([a511f5b](https://github.com/nextcloud/mail/commit/a511f5b9bfc172b91296d416ccc3b22f95d7fa2e))\n* **deps:** bump core-js from 3.47.0 to ^3.48.0 ([806b9a3](https://github.com/nextcloud/mail/commit/806b9a33b0fe9d1dd5522213cd0468eae5c8fd70))\n* **deps:** bump lodash from 4.17.23 to ^4.17.23 ([a1619ba](https://github.com/nextcloud/mail/commit/a1619ba3263647bc641f174c80f167699caf2337))\n* **deps:** bump PHPUnit to v9.6.33 ([d4e419e](https://github.com/nextcloud/mail/commit/d4e419e5a4f2058c892aaf406ae2ddf83e8cdb74))\n* **l10n:** Update translations from Transifex ([1d14470](https://github.com/nextcloud/mail/commit/1d1447052df63ee7e1bb98ecfdc857dfe56dfae0))\n* **l10n:** Update translations from Transifex ([5dc7d62](https://github.com/nextcloud/mail/commit/5dc7d626fd1e2301c08e52958833f53920371667))\n* **ui:** render HTML body error responses as blank pages ([a391aba](https://github.com/nextcloud/mail/commit/a391abad9560135bf159093371e432f7fc125b34))\n\n\n### Performance Improvements\n\n* **sync:** Reuse existing sync token ([cf8137a](https://github.com/nextcloud/mail/commit/cf8137a18d474fac99aa98e569374b8ed526a647))\n\n\n\n# [5.7.0-beta.4](https://github.com/nextcloud/mail/compare/v5.7.0-beta.3...v5.7.0-beta.4) (2026-01-27)\n\n\n### Bug Fixes\n\n* **admin-settings:** bring back the setting to disable classification by default ([2eb9f0c](https://github.com/nextcloud/mail/commit/2eb9f0c07d2e1f9b6e55e5d41d3d64b6d7268c62))\n* catch invalid URL exception in the HTML image proxy ([1767db6](https://github.com/nextcloud/mail/commit/1767db684ae4ee37c1ae7529c107e57798cdcc0d))\n* **classification:** log if classification was executed or skipped ([172b477](https://github.com/nextcloud/mail/commit/172b4779d55497f6c9a737681c04b810e960695b))\n* **deps:** bump @nextcloud/paths from 2.3.0 to ^2.4.0 ([#12286](https://github.com/nextcloud/mail/issues/12286)) ([ea43460](https://github.com/nextcloud/mail/commit/ea4346049b1b8bd899042c4861132d2fb712c697))\n* **deps:** bump @nextcloud/vue from 8.35.0 to ^8.35.3 ([98b9403](https://github.com/nextcloud/mail/commit/98b9403ce9b847a772c17e8d4a7d292f813cd2e0))\n* **deps:** bump lodash from 4.17.21 to v4.17.23 ([#12291](https://github.com/nextcloud/mail/issues/12291)) ([4d43742](https://github.com/nextcloud/mail/commit/4d4374223962d43b72e608d2298232e9ed86c1de))\n* **imap:** Add support for mail services that enforce a client id ([0f64a8b](https://github.com/nextcloud/mail/commit/0f64a8bc7a4a01704837310a1296c6573a8f0668))\n* **imap:** Send ID only when capability is announced ([820e7e3](https://github.com/nextcloud/mail/commit/820e7e37ec53b338342a535b1427cd71f15d2301))\n* **l10n:** Update translations from Transifex ([f162d15](https://github.com/nextcloud/mail/commit/f162d15efebd9db5fe2053a3f7334eb4a3836d19))\n* **l10n:** Update translations from Transifex ([b937da1](https://github.com/nextcloud/mail/commit/b937da1081e1260d107c9c2e29f085bd87e987da))\n* **l10n:** Update translations from Transifex ([b8e73c8](https://github.com/nextcloud/mail/commit/b8e73c87c3abeb519a7d2626a13db5f2a75cb702))\n* **l10n:** Update translations from Transifex ([85ec54f](https://github.com/nextcloud/mail/commit/85ec54f6e6f0650e64fe47736ced5f8f893742e5))\n* **l10n:** Update translations from Transifex ([8bccd39](https://github.com/nextcloud/mail/commit/8bccd397f9bb495eb729725b8e17e580a98036c0))\n* **l10n:** Update translations from Transifex ([b12a513](https://github.com/nextcloud/mail/commit/b12a5138244fff0179f49d2edd356ff4b68a2a77))\n* **l10n:** Update translations from Transifex ([01442f4](https://github.com/nextcloud/mail/commit/01442f49b764fbb4da3821295b0e7591d9e524c0))\n* **l10n:** Update translations from Transifex ([decb02c](https://github.com/nextcloud/mail/commit/decb02c680d7fad30aabdc5e8febd322c28f0946))\n* **MessageMapper:** Use message headers as fallback when processing MIME content ([7efe164](https://github.com/nextcloud/mail/commit/7efe1640c4d4d6bcabe5ffdd3ce24b66aa62f8b7))\n* **phishing:** compare links using lowercase ([2d437a9](https://github.com/nextcloud/mail/commit/2d437a9e1b71e674cc8bf1980995c485cc1de18b))\n* retrieve classification preference ([5eabb5e](https://github.com/nextcloud/mail/commit/5eabb5efd13e6370592cdad4c05894b97d9f3bf4))\n* **settings:** dont show acknowledgements twice ([b30d10e](https://github.com/nextcloud/mail/commit/b30d10e68f82803f1a86d1531edccd7e552a29d2))\n* **smtp:** log SMTP error code ([bd3a68e](https://github.com/nextcloud/mail/commit/bd3a68e78d71a6a60ca01f29ba34bd925fc65dbe))\n* **text-block:** revive sharing ([c76cea9](https://github.com/nextcloud/mail/commit/c76cea9f0a75e65a1d2a11fa28d0cfdbbe09c18d))\n\n\n### Features\n\n* add context chat provider ([#11150](https://github.com/nextcloud/mail/issues/11150)) ([0b4c310](https://github.com/nextcloud/mail/commit/0b4c3106943442ff95e272fdf9e668b7952c4859))\n* **deps:** add Nextcloud 34 support, remove 31 (EOL) ([4059a84](https://github.com/nextcloud/mail/commit/4059a84cfe3e6bc43a5fd1cd4ce0ba0a81b500bd))\n\n\n\n# [5.7.0-beta.3](https://github.com/nextcloud/mail/compare/v5.7.0-beta.2...v5.7.0-beta.3) (2026-01-19)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([a0302e7](https://github.com/nextcloud/mail/commit/a0302e7292c0a003311bc0ae13c93fdc66477034))\n* **l10n:** Update translations from Transifex ([301879c](https://github.com/nextcloud/mail/commit/301879cccc134ccdf0b57968264eba5b9e6af3d3))\n* **l10n:** Update translations from Transifex ([eb08d2d](https://github.com/nextcloud/mail/commit/eb08d2d6b8b46021982ed6d3eccfc95b45a2373a))\n\n\n### Features\n\n* automated appointment creation ([4fe0325](https://github.com/nextcloud/mail/commit/4fe03253203db6c3481e1fb5611b2291f2ac6476))\n\n\n\n# [5.7.0-beta.2](https://github.com/nextcloud/mail/compare/v5.7.0-beta.1...v5.7.0-beta.2) (2026-01-16)\n\n\n### Bug Fixes\n\n* **ColorPicker:** Use v-model for injecting selected color to color picker ([eee627a](https://github.com/nextcloud/mail/commit/eee627a613a3c3884af4ebc19f23d15ba5c4b1a4))\n* **DKIMValidator:** Add patch from upstream against broken canonical handling ([ddb30a9](https://github.com/nextcloud/mail/commit/ddb30a95fe8f106c2abebb323bc5c13bacfc0e0f))\n* ensure drafts folder exists ([c01706f](https://github.com/nextcloud/mail/commit/c01706f6dea5f3acd5ebfb5859026c4110a4a653))\n* Fix incorrect tag for MDN sent and hide junk flag used by Thunderbird ([5eb1709](https://github.com/nextcloud/mail/commit/5eb1709f405175c28060a0f85f1f8fedcfa8c45d))\n* **l10n:** Update translations from Transifex ([5e479aa](https://github.com/nextcloud/mail/commit/5e479aa5c3403ef8fa020236da9e0af81683eae1))\n* **l10n:** Update translations from Transifex ([e3d87b7](https://github.com/nextcloud/mail/commit/e3d87b737b08b0af46266bb5429ed8f3a18d9d7f))\n* **l10n:** Update translations from Transifex ([7f7046e](https://github.com/nextcloud/mail/commit/7f7046e664c2abccf59a77d51708b78792302ec1))\n* **l10n:** Update translations from Transifex ([3ec8cc7](https://github.com/nextcloud/mail/commit/3ec8cc741ca13b7f84de80f659ad1698f318d029))\n* **l10n:** Update translations from Transifex ([77fad89](https://github.com/nextcloud/mail/commit/77fad89b78dd4175557d7f0a6880db3b474d73fd))\n* **l10n:** Update translations from Transifex ([69c30ee](https://github.com/nextcloud/mail/commit/69c30ee6ed066f30cdb3dfc6043eb86cb0d3026c))\n* **mail-settings:** avoid duplicate api calls ([d43846f](https://github.com/nextcloud/mail/commit/d43846f3f39a1d4232dccb3c81953bd747d11e28))\n* outbox icon opacity ([8697eb7](https://github.com/nextcloud/mail/commit/8697eb72f1835a0c110ad0c0ccfef85c043f1ead))\n* **OutOfOfficeParser:** Exclude newsletters and mailing lists from auto responder ([4dd3824](https://github.com/nextcloud/mail/commit/4dd382487bc50b84076dace4c45b2a3c2f73b7c3))\n* revive mentioning in composer ([2658a3b](https://github.com/nextcloud/mail/commit/2658a3bbdaf4ebd6828493193fff8856ec058455))\n* safe-guard limit argument ([bd856c0](https://github.com/nextcloud/mail/commit/bd856c0f261df1fd8f73d1952cbeb5773fad0d8a))\n\n\n### Features\n\n* **deps:** add PHP8.5 support ([0cab661](https://github.com/nextcloud/mail/commit/0cab6615ab3575264fe5ad01622be13f40216e10))\n* list attachements ([7cb3b70](https://github.com/nextcloud/mail/commit/7cb3b70922d8ad9f0ab39388d0c5280aa7245b0c))\n* provide attachement names for messages ([aebeb8d](https://github.com/nextcloud/mail/commit/aebeb8de6c62a7a89f78247b5539d48ee6213d61))\n\n\n\n# [5.7.0-beta.1](https://github.com/nextcloud/mail/compare/v5.6.0-rc.1...v5.7.0-beta.1) (2026-01-09)\n\n\n### Bug Fixes\n\n* add Opt-out classification settings to account settings and setup ([773e9fd](https://github.com/nextcloud/mail/commit/773e9fda4ae667c7be730093f3b2b05f23e67936))\n* **auth:** show more specific error for denied authentication ([9887471](https://github.com/nextcloud/mail/commit/9887471c972f99103f18f8bd85ac945045886a33))\n* **database:** Add foreign key to *_mailbox_id fields in mail_accounts table ([d6e5430](https://github.com/nextcloud/mail/commit/d6e5430211bb0c70b047ef6eb6709f35a1692509))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.1 ([ea96397](https://github.com/nextcloud/mail/commit/ea96397ffc21590dacf241ff96a27507bd6d4160))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.2 ([#12194](https://github.com/nextcloud/mail/issues/12194)) ([e0bde6a](https://github.com/nextcloud/mail/commit/e0bde6a0df760b82906631a0b172e6da4083c23d))\n* **deps:** bump @nextcloud/files from 3.12.0 to ^3.12.2 ([#12180](https://github.com/nextcloud/mail/issues/12180)) ([2d31d47](https://github.com/nextcloud/mail/commit/2d31d47ef1b4977a0fc3a12465b310412aeb1231))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.1 ([#12054](https://github.com/nextcloud/mail/issues/12054)) ([9204207](https://github.com/nextcloud/mail/commit/92042075da02b2eb0cd104132f7e456353b4638d))\n* **deps:** bump @nextcloud/logger from 3.0.2 to ^3.0.3 ([#12181](https://github.com/nextcloud/mail/issues/12181)) ([a2cc94f](https://github.com/nextcloud/mail/commit/a2cc94fbf3df4b9acbb1151c2ef817a8236f4b1f))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.3.0 ([d79f091](https://github.com/nextcloud/mail/commit/d79f091deed13cc59551431faeaae31ad9667e98))\n* **deps:** bump @nextcloud/router from 3.0.1 to ^3.1.0 ([fecbbd4](https://github.com/nextcloud/mail/commit/fecbbd42eacbdb920e4e14f054474688bd211eca))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.2 to ^1.8.3 ([#12083](https://github.com/nextcloud/mail/issues/12083)) ([d768ec2](https://github.com/nextcloud/mail/commit/d768ec2e6fd19fc3164d304c41f3ffdd69f1c45c))\n* **deps:** bump core-js from 3.45.1 to ^3.47.0 ([10cb94d](https://github.com/nextcloud/mail/commit/10cb94d3abfe5fd61087c5a5fe76c5e469eb31ab))\n* **deps:** bump dompurify from 3.3.0 to ^3.3.1 ([#12153](https://github.com/nextcloud/mail/issues/12153)) ([8414b45](https://github.com/nextcloud/mail/commit/8414b459171e748b0bda9707c083dc4d457b8610))\n* **deps:** bump ezyang/htmlpurifier from 4.18.0 to v4.19.0 ([490c501](https://github.com/nextcloud/mail/commit/490c501838ea78db143064557b599a9d9b377a0d))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.6 to ^1.8.7 ([4ad219b](https://github.com/nextcloud/mail/commit/4ad219b224b20649ea2da3b288078a3fdba276ef))\n* **deps:** bump node-forge from 1.3.1 to ^1.3.2 ([#12084](https://github.com/nextcloud/mail/issues/12084)) ([1076149](https://github.com/nextcloud/mail/commit/1076149f447356f0d8256f8011e73a66bde45e76))\n* **deps:** bump node-forge from 1.3.2 to ^1.3.3 ([#12201](https://github.com/nextcloud/mail/issues/12201)) ([bf00dc9](https://github.com/nextcloud/mail/commit/bf00dc96b2486c6f1c74406f8f323306c420726e))\n* **deps:** bump ramda from 0.31.3 to ^0.32.0 ([99e93d3](https://github.com/nextcloud/mail/commit/99e93d350bb2ac7fb77b487ac7fcfc6a2923ba6d))\n* **deps:** bump stylelint from 16.25.0 to ^16.26.1 ([6f16930](https://github.com/nextcloud/mail/commit/6f16930cf5fef0ad4ee8747e186de58326000d80))\n* **deps:** Fix npm audit ([ba1c955](https://github.com/nextcloud/mail/commit/ba1c9555e04c9acc7f9b75ad9914062b16ef81ac))\n* **deps:** Fix npm audit ([94220b5](https://github.com/nextcloud/mail/commit/94220b5a296c07c0b1a5035685671e5fb34531c7))\n* **dns:** Update public suffix list ([8629a40](https://github.com/nextcloud/mail/commit/8629a403aa29dfad58955c07ac7575e86fb97dde))\n* **envelope:** apply read/unread for whole thread ([04141fb](https://github.com/nextcloud/mail/commit/04141fb8cb75893d93a4ab144e6c50acba78fc35))\n* handle imip failures properly ([3a200ac](https://github.com/nextcloud/mail/commit/3a200ac432e3a8d85eafa93b01f0b2d4ab1b3080))\n* **imap:** cache message body ([9d02d5a](https://github.com/nextcloud/mail/commit/9d02d5ab90fdcf2c9fd2e09a3a3e7547b74227c3))\n* **l10n:** Update translations from Transifex ([42b9b4d](https://github.com/nextcloud/mail/commit/42b9b4d9bf4c798930bb2714f546aac39c87c2b1))\n* **l10n:** Update translations from Transifex ([ed559d1](https://github.com/nextcloud/mail/commit/ed559d1e80ad7745eeaa1fa7eabf715b96594403))\n* **l10n:** Update translations from Transifex ([addd0f4](https://github.com/nextcloud/mail/commit/addd0f430807e08befd63f327857c33a379702e1))\n* **l10n:** Update translations from Transifex ([fb376e5](https://github.com/nextcloud/mail/commit/fb376e51cb9437c9621e6fca3287d5983e8ac00f))\n* **l10n:** Update translations from Transifex ([83c7bc8](https://github.com/nextcloud/mail/commit/83c7bc8f05ad4d4fc37e9d49a9aaf37e07c9f0fd))\n* **l10n:** Update translations from Transifex ([1003f6c](https://github.com/nextcloud/mail/commit/1003f6c59a6377c247f7ddcc1dff0a65120389c6))\n* **l10n:** Update translations from Transifex ([2dd51c8](https://github.com/nextcloud/mail/commit/2dd51c8bb9670998eb0ef5114ecdb0811ae17ab7))\n* **l10n:** Update translations from Transifex ([4d25ae4](https://github.com/nextcloud/mail/commit/4d25ae4430bf9278283d2f10007e5d8ea8f4a36f))\n* **l10n:** Update translations from Transifex ([6de0c2a](https://github.com/nextcloud/mail/commit/6de0c2a0df34804c008308cb2c7b490376f650d0))\n* **l10n:** Update translations from Transifex ([7f70324](https://github.com/nextcloud/mail/commit/7f70324ab39a463b09b5fbb96083a8fd94e97f66))\n* **l10n:** Update translations from Transifex ([8551ded](https://github.com/nextcloud/mail/commit/8551ded3ca1c3782404b2404bd5e21ec30ddedee))\n* **l10n:** Update translations from Transifex ([d1f55af](https://github.com/nextcloud/mail/commit/d1f55af88b2375550165db7edc0fbcab31c310a4))\n* **l10n:** Update translations from Transifex ([a6ea034](https://github.com/nextcloud/mail/commit/a6ea0343b0badc571c3d29d2a4efb31ef8bb05dc))\n* **l10n:** Update translations from Transifex ([a3416c7](https://github.com/nextcloud/mail/commit/a3416c7815ab1bb9947119d9a354bf3f4ad90860))\n* **l10n:** Update translations from Transifex ([d3e93a1](https://github.com/nextcloud/mail/commit/d3e93a1ced32dee98d09aa2e6ba7bddc3b369910))\n* **l10n:** Update translations from Transifex ([0ce95b3](https://github.com/nextcloud/mail/commit/0ce95b38c98ef7f3d6907e15862b71a1b5bfab2d))\n* **l10n:** Update translations from Transifex ([c771327](https://github.com/nextcloud/mail/commit/c7713273832adc78c0af6a00dbe6be80f01846f6))\n* **l10n:** Update translations from Transifex ([172f154](https://github.com/nextcloud/mail/commit/172f15485357e8602e2dfa5277baa26aaabe8455))\n* **l10n:** Update translations from Transifex ([b5a785c](https://github.com/nextcloud/mail/commit/b5a785c4e128a82181f200d72c0298e6bd8879e3))\n* **l10n:** Update translations from Transifex ([c37fc3e](https://github.com/nextcloud/mail/commit/c37fc3eab5db926794d33e19a7bd9ea21a55a0fa))\n* **l10n:** Update translations from Transifex ([dbafedc](https://github.com/nextcloud/mail/commit/dbafedc1533cb2c24f6b3638fd635ba6824c392b))\n* **l10n:** Update translations from Transifex ([dd44f8b](https://github.com/nextcloud/mail/commit/dd44f8bc4babdcfb171fc34b8a0b8d667e7c1031))\n* **l10n:** Update translations from Transifex ([26c72b0](https://github.com/nextcloud/mail/commit/26c72b0ba59f8d6e1bbde63a71cbf223466e5744))\n* **l10n:** Update translations from Transifex ([55eda0d](https://github.com/nextcloud/mail/commit/55eda0de06adce44f751f545bd02bbed3dfbe064))\n* **l10n:** Update translations from Transifex ([d3a945b](https://github.com/nextcloud/mail/commit/d3a945b2634924e2af5cc0e774d13719d9755484))\n* **l10n:** Update translations from Transifex ([76b9c96](https://github.com/nextcloud/mail/commit/76b9c966e0dec4cc2efb12be3a30483d56632d3a))\n* **l10n:** Update translations from Transifex ([76688a4](https://github.com/nextcloud/mail/commit/76688a4e62240200c84755a191358f437bf042b6))\n* **l10n:** Update translations from Transifex ([4eb03df](https://github.com/nextcloud/mail/commit/4eb03df9d408e24f6c168eebfdfb8f10469d4b62))\n* **l10n:** Update translations from Transifex ([7365ec4](https://github.com/nextcloud/mail/commit/7365ec43d8fbc1d72f1ca502a57916afe2a3e2aa))\n* **l10n:** Update translations from Transifex ([11779b5](https://github.com/nextcloud/mail/commit/11779b5623c5aa566e42c7bb6faa50f57eaefcb3))\n* **l10n:** Update translations from Transifex ([7836ba5](https://github.com/nextcloud/mail/commit/7836ba59530d27a1836ab8fdedcd9bb71d60deb2))\n* **l10n:** Update translations from Transifex ([333fa26](https://github.com/nextcloud/mail/commit/333fa26765abcda6c2fa957e9cbbeb6314051cd2))\n* **l10n:** Update translations from Transifex ([7bed24d](https://github.com/nextcloud/mail/commit/7bed24d426cf5fa35456f5d14375758a84c5e780))\n* **l10n:** Update translations from Transifex ([770b95a](https://github.com/nextcloud/mail/commit/770b95a67ef91a35e439c74ce361219bf0afd543))\n* **l10n:** Update translations from Transifex ([2a8d58b](https://github.com/nextcloud/mail/commit/2a8d58be6f25064dbe8a7ac4bbbc689af6aef267))\n* **l10n:** Update translations from Transifex ([1fbba54](https://github.com/nextcloud/mail/commit/1fbba545b28dace804e98eeb5418cd8508e070d1))\n* **l10n:** Update translations from Transifex ([2f6b08c](https://github.com/nextcloud/mail/commit/2f6b08ced35c3c103fdf20f9f127146f2d93cd95))\n* **l10n:** Update translations from Transifex ([27deb8e](https://github.com/nextcloud/mail/commit/27deb8ed2738a002736333535e88232e95d03481))\n* lost line breaks ([056e1cf](https://github.com/nextcloud/mail/commit/056e1cf6ba1116b47b60fd45d84bf75209c59f59))\n* **mailto:** populate body from mailto ([6e66374](https://github.com/nextcloud/mail/commit/6e663740308588aeefc6bc7db90d1ef24ba7cafd))\n* **NavigationMailbox:** reword ([8bd6dd8](https://github.com/nextcloud/mail/commit/8bd6dd804864cd2af42e76cff87f89b614a65a46))\n* **NewMessageModal:** remove null focus trap selectors ([0412d17](https://github.com/nextcloud/mail/commit/0412d17db83afb84b6a104c3c85de93cdbd60623))\n* **oauth:** close popup window in parent window ([1fdf307](https://github.com/nextcloud/mail/commit/1fdf307f4755ef43aedde1263c46d187b2995d5c))\n* search input field doesnt extend properly ([2581870](https://github.com/nextcloud/mail/commit/2581870a78cc5b7d3f6b3a5dbe2287e0302a75c1))\n* **search:** apply correct search query when fetching envelopes ([4fe8329](https://github.com/nextcloud/mail/commit/4fe8329e1e2fee7be6853df3ddf98fe9fb2a6e3b))\n* **Settings:** followup on redesign ([67dae9c](https://github.com/nextcloud/mail/commit/67dae9c9b70330ffe9742ab8660c3998423ef007))\n* **setup:** allow setup with ms oauth and no password ([899f6f4](https://github.com/nextcloud/mail/commit/899f6f4d71ff39ac9d54212c2cb6b165a2d48bc0))\n* **sieve:** allow system flags like seen ([226e2d3](https://github.com/nextcloud/mail/commit/226e2d35e10ee9183158b35fc8fd47f7c5dfeec6))\n* **sieve:** ensure the stop action is always last ([e3d43c4](https://github.com/nextcloud/mail/commit/e3d43c4b9fb2339b45ee813fc8089e040930c582))\n* **text-block:** preserve line breaks on plain text ([9d5d3a9](https://github.com/nextcloud/mail/commit/9d5d3a92f41100b76730837c39fece9a210e463e))\n* **ui:** bind attr to popover trigger ([b17e04c](https://github.com/nextcloud/mail/commit/b17e04c217d32d4be97fc249c8d062f8d730368b))\n\n\n### Features\n\n* add sort favorites user preference ([b22afd4](https://github.com/nextcloud/mail/commit/b22afd4a18a99d4ea84b45e73d1a677b02a7744a))\n* compact view for mail layouts ([7eb1ff0](https://github.com/nextcloud/mail/commit/7eb1ff092b27253583a29dfae9ab14a2cc07e677))\n* imporove search filter buttons ([a21c29b](https://github.com/nextcloud/mail/commit/a21c29b423a16eec1aa3aa4d25de4a191065851e))\n* improve the search filter shortcut buttons ([b0c3559](https://github.com/nextcloud/mail/commit/b0c355921a0fc8e31170a3314f28ffb4a22724de))\n* make email wide on phone ([09ada44](https://github.com/nextcloud/mail/commit/09ada44d35871db527c902c14210fa2e8181b252))\n* manually refresh folder list ([22c7181](https://github.com/nextcloud/mail/commit/22c71813ded17ab3ac26f3e3b993abce1fe9d729))\n* **PhishingDetection:** Add support for the $Phishing IMAP flag ([6c01c8a](https://github.com/nextcloud/mail/commit/6c01c8a2db557231bdf8a84d4b921ab9e80871b1))\n* pin favorites ([6718656](https://github.com/nextcloud/mail/commit/67186566f2f30025409a9948e0ae362ca3cd22f4))\n* support user migration ([cc7c592](https://github.com/nextcloud/mail/commit/cc7c5926d3cba10009d86db6b1ff2bf5a8172b49))\n\n\n### Performance Improvements\n\n* **quick-actions:** eliminate dublicate api calld for each envelope ([71cccdf](https://github.com/nextcloud/mail/commit/71cccdfef182a4dfaaf4b14e5f17d0e042ac7870))\n\n\n\n# [5.6.0-rc.1](https://github.com/nextcloud/mail/compare/v5.5.0-rc.1...v5.6.0-rc.1) (2025-11-18)\n\n\n### Bug Fixes\n\n* **AccountForm:** Allow localhost as valid email domain ([49cd198](https://github.com/nextcloud/mail/commit/49cd198e599eac4c2537efe07b19b56e272a48d1))\n* add jsdom ([c3c31cb](https://github.com/nextcloud/mail/commit/c3c31cb36cfd8ba757d56e448c3abaaf164bca00))\n* add the warning icon when account cannot connect ([ae2f15d](https://github.com/nextcloud/mail/commit/ae2f15d7720c0116e4f5e9a1486a617c56414947))\n* **ai-integration:** get user language for message summary ([431e445](https://github.com/nextcloud/mail/commit/431e445b2808b4f04ac9019a57fe854667ad8242))\n* align quick action settings button properly ([cd7bda7](https://github.com/nextcloud/mail/commit/cd7bda7ba70b3fcc459d73326de07bda26320c7a))\n* allow reloading the INBOX favorites page ([3322b1d](https://github.com/nextcloud/mail/commit/3322b1dd5e8dac3163d23914046452ef0685485f))\n* allow storing longer mailbox names ([9652e1a](https://github.com/nextcloud/mail/commit/9652e1a2e4be0d08ae1d6acb052e04c84a09e6e1))\n* also await onToggleJunk ([d79ccf8](https://github.com/nextcloud/mail/commit/d79ccf8b5cde2c5deb88529d2871b52c224f9963))\n* **AppSettingsMenu:** update text string in preparation for redesign ([66cce37](https://github.com/nextcloud/mail/commit/66cce37650fa93636e15922569ac2f4ae0e832fb))\n* check email in recipient picker ([935c9a4](https://github.com/nextcloud/mail/commit/935c9a44e2b158771227369ffd683452b5c28f10))\n* ckeditor color in darkmode ([50dce08](https://github.com/nextcloud/mail/commit/50dce0864c33946c3be8067275c69f4b80f728a1))\n* ckeditor not loading when no translations are used ([c2b48bf](https://github.com/nextcloud/mail/commit/c2b48bf5f0d2e4236a913784bed170b83ca74a1a))\n* **classification:** break large SQL IN queries into chunks ([61a1457](https://github.com/nextcloud/mail/commit/61a145766c933a2d29525088d785fda436df63e8))\n* contrast fixes for some elements ([4b40509](https://github.com/nextcloud/mail/commit/4b405090af36bd35d9f9e892361fbb7eb7e73307))\n* correct the default sort order value ([2486bf4](https://github.com/nextcloud/mail/commit/2486bf457b79b4f9521c09f6bd28da8969121876))\n* **db:** clean-up old mailboxes account_id+name index ([e77008b](https://github.com/nextcloud/mail/commit/e77008b7468a1785fce59f68c40f41500a75234e))\n* **db:** drop index on mail_mailboxes by columns instead of name ([068954f](https://github.com/nextcloud/mail/commit/068954fbbdd0b72bf55fa9c8c9588d0fa40a31e9))\n* **deps:** bump @iframe-resizer/child from 5.5.5 to ^5.5.6 ([#11702](https://github.com/nextcloud/mail/issues/11702)) ([cef93a2](https://github.com/nextcloud/mail/commit/cef93a236a662c1268fdb7e33e28f93809e1abfb))\n* **deps:** bump @iframe-resizer/child from 5.5.6 to ^5.5.7 ([#11732](https://github.com/nextcloud/mail/issues/11732)) ([6a2567a](https://github.com/nextcloud/mail/commit/6a2567a477019ad1c031c471dca0cfd225045f20))\n* **deps:** bump @iframe-resizer/parent from 5.5.5 to ^5.5.7 ([#11733](https://github.com/nextcloud/mail/issues/11733)) ([9adc913](https://github.com/nextcloud/mail/commit/9adc91368153574b8a76cf35b8a0df1807125921))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([#11894](https://github.com/nextcloud/mail/issues/11894)) ([3c3097c](https://github.com/nextcloud/mail/commit/3c3097c90e264c9d9b0dc621e89bdad5718c7f41))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([#11827](https://github.com/nextcloud/mail/issues/11827)) ([4add112](https://github.com/nextcloud/mail/commit/4add1121fb19d87844848460d2f0742d296004f5))\n* **deps:** bump @nextcloud/dialogs from 6.3.2 to ^6.3.2 ([#11834](https://github.com/nextcloud/mail/issues/11834)) ([8d3bba7](https://github.com/nextcloud/mail/commit/8d3bba7044a3580bf45946f425dd6b5b9e7c2aa5))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([feb565d](https://github.com/nextcloud/mail/commit/feb565d833b35f0ae82c434573e8a96aa43005dc))\n* **deps:** bump @nextcloud/vue from 8.33.0 to ^8.33.0 ([cbce84e](https://github.com/nextcloud/mail/commit/cbce84e7f5926c1817f992c831f39f36f03497a0))\n* **deps:** bump @nextcloud/vue to ^8.31.0 ([1104e90](https://github.com/nextcloud/mail/commit/1104e90832fc6f88a168ef09b266c0ef4dacc3a0))\n* **deps:** bump @vue/babel-preset-app from 5.0.8 to ^5.0.9 ([#11842](https://github.com/nextcloud/mail/issues/11842)) ([84b8524](https://github.com/nextcloud/mail/commit/84b85248420a50c660657f061d3b44a50f9f743b))\n* **deps:** bump core-js from 3.45.0 to ^3.45.1 ([#11849](https://github.com/nextcloud/mail/issues/11849)) ([a43410e](https://github.com/nextcloud/mail/commit/a43410e99bfe4787aaba6febba630f1a5c4b0cda))\n* **deps:** bump dompurify from 3.2.6 to ^3.3.0 ([#11858](https://github.com/nextcloud/mail/issues/11858)) ([b913e68](https://github.com/nextcloud/mail/commit/b913e68d82390cd6c11a383339adbe902595361e))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.1 to ^1.8.6 ([#11978](https://github.com/nextcloud/mail/issues/11978)) ([0e1617b](https://github.com/nextcloud/mail/commit/0e1617bd1d49e88ee94a556c2a3f6ec8fb4ec292))\n* **deps:** bump phpmailer/dkimvalidator from 0.3 to ^0.3.1 ([8648561](https://github.com/nextcloud/mail/commit/86485615579de92dbc16b3192fc622828a4c19b3))\n* **deps:** bump rubix/ml from 2.5.2 to v2.5.3 ([#11872](https://github.com/nextcloud/mail/issues/11872)) ([5427895](https://github.com/nextcloud/mail/commit/5427895a664362b93805f98a1d71bbe56602cc0f))\n* **deps:** bump stylelint from 16.23.1 to ^16.25.0 ([#11887](https://github.com/nextcloud/mail/issues/11887)) ([3159ca1](https://github.com/nextcloud/mail/commit/3159ca129b98d0c31a574b447ec47b2731952eeb))\n* **deps:** drop Nextcloud 30 support (EOL) ([4c1b2e2](https://github.com/nextcloud/mail/commit/4c1b2e284673ae9985e14a9c84d68262077f8400))\n* **deps:** Fix npm audit ([f841390](https://github.com/nextcloud/mail/commit/f8413906aae4bf3cc1eb602369db0e8b9ec0906a))\n* **deps:** update @nextcloud/dialogs ([a6cd9ec](https://github.com/nextcloud/mail/commit/a6cd9ecbd8343832c3f90193968cd4e5abb8702f))\n* **deps:** update axios ([f063106](https://github.com/nextcloud/mail/commit/f063106eb4116736214f9570d5d0689fb73cbdd8))\n* **deps:** update axios ([f7d36de](https://github.com/nextcloud/mail/commit/f7d36de29d0764044a23a6f744d0849c513946fb))\n* **deps:** update ckeditor to 45 (unified package) ([819c221](https://github.com/nextcloud/mail/commit/819c221524fb9550eee750f3f2863a80c6da4bc4))\n* display tooltip correctly ([fb4ab1c](https://github.com/nextcloud/mail/commit/fb4ab1c629623b1369f4862f7d88ed520a5f36d8))\n* **dns:** Update public suffix list ([9943f2a](https://github.com/nextcloud/mail/commit/9943f2aeb4e229999bf0fca0c739df5002bd5753))\n* **dns:** Update public suffix list ([1f676bb](https://github.com/nextcloud/mail/commit/1f676bbfb99413b7006fc5ebb829d12f152e0d88))\n* **dns:** Update public suffix list ([1db4751](https://github.com/nextcloud/mail/commit/1db4751c3b8ebe44b65ba501a42b88e3a7617273))\n* **dns:** Update public suffix list ([9a92557](https://github.com/nextcloud/mail/commit/9a92557326a281d1991df72bf52698e6404c39a7))\n* **emoji-picker:** ignore if first character is a space ([da0e2bc](https://github.com/nextcloud/mail/commit/da0e2bc922301fffa4bfaa8741f0288fb22bddde))\n* **EnvelopeSkeleton:** text shifting on hover ([7561a7c](https://github.com/nextcloud/mail/commit/7561a7c8bb2760b8f85f15232c2d0db453878c4a))\n* error in mounted hook ([0055669](https://github.com/nextcloud/mail/commit/0055669f84fd903370d3b502ebc9b8fb3bc9a9fc))\n* external address color ([b476bb6](https://github.com/nextcloud/mail/commit/b476bb6828586c52b49c694ffdf56b8cc50b2e4e))\n* flip email open and email icon in evelope actions ([fc59623](https://github.com/nextcloud/mail/commit/fc59623ed5998474b466dea0f8fb98e7593475d5))\n* **i18n:** improve l10n strings ([#12004](https://github.com/nextcloud/mail/issues/12004)) ([a2c5043](https://github.com/nextcloud/mail/commit/a2c5043b15bdc02c9223a67a9e6c088cf4e382dc))\n* **imap:** avoid Horde's LIST-STATUS optimization for STATUS ([da3b3fa](https://github.com/nextcloud/mail/commit/da3b3fa109d949a7e111b70fd683118ca604a7d2))\n* **imap:** make mailbox status errors debuggable ([faa70d4](https://github.com/nextcloud/mail/commit/faa70d40d6489a686844710472b3b0745b3caf46))\n* imip aliases and capitalization ([aebfa65](https://github.com/nextcloud/mail/commit/aebfa657b79bda16fb6020099a23ab405559fa1f))\n* **l10n:** Update translations from Transifex ([6a71cc9](https://github.com/nextcloud/mail/commit/6a71cc923280a2dec8f9a27d0d5756e54f653d43))\n* **l10n:** Update translations from Transifex ([4ed1117](https://github.com/nextcloud/mail/commit/4ed1117dc8dd934153f69ecf5ae05d465e98a28c))\n* **l10n:** Update translations from Transifex ([cd0053f](https://github.com/nextcloud/mail/commit/cd0053f6e8eb1e14ee4410b49555d46fbab21144))\n* **l10n:** Update translations from Transifex ([3706c56](https://github.com/nextcloud/mail/commit/3706c56db751841ea10ea5724f28fddd97d4a0de))\n* **l10n:** Update translations from Transifex ([ce5372c](https://github.com/nextcloud/mail/commit/ce5372c14b742b62a444af5c0f057126a9b7fd92))\n* **l10n:** Update translations from Transifex ([f36788d](https://github.com/nextcloud/mail/commit/f36788d0d7ee59b3911c81200f6a788c26a64c59))\n* **l10n:** Update translations from Transifex ([4972130](https://github.com/nextcloud/mail/commit/49721300d8b6c7e8bfe500eac98bb8832f2f9dda))\n* **l10n:** Update translations from Transifex ([33c0cd2](https://github.com/nextcloud/mail/commit/33c0cd26f19a919c78e2e9ecac9c2cd58c1b3ce5))\n* **l10n:** Update translations from Transifex ([d5925f1](https://github.com/nextcloud/mail/commit/d5925f1196e3c33238b4f209a5c55badd1a5a9bb))\n* **l10n:** Update translations from Transifex ([10a5069](https://github.com/nextcloud/mail/commit/10a5069f73f817cb0dff0a634b442639408d68b5))\n* **l10n:** Update translations from Transifex ([585d834](https://github.com/nextcloud/mail/commit/585d8341ebc2da215201521be0d306e234aecf68))\n* **l10n:** Update translations from Transifex ([170a047](https://github.com/nextcloud/mail/commit/170a0474eb3675045adf5904c3520e212fe15896))\n* **l10n:** Update translations from Transifex ([14a58b3](https://github.com/nextcloud/mail/commit/14a58b3dcfb35acbb8acbe3844af43ef16c37b75))\n* **l10n:** Update translations from Transifex ([922f463](https://github.com/nextcloud/mail/commit/922f463dea059458903632cc4cf2df4c361c2287))\n* **l10n:** Update translations from Transifex ([3a7078f](https://github.com/nextcloud/mail/commit/3a7078ffefecab15e789802ece4e81479f3abd6b))\n* **l10n:** Update translations from Transifex ([decd56d](https://github.com/nextcloud/mail/commit/decd56d201ee09bed9f49601d799e7fa6f00f34c))\n* **l10n:** Update translations from Transifex ([75705fc](https://github.com/nextcloud/mail/commit/75705fc3b1eb966fcf8eb0554595dd1dbffa3835))\n* **l10n:** Update translations from Transifex ([39ba202](https://github.com/nextcloud/mail/commit/39ba20204b4b36ef96ecdaaa439c5824c9c6b465))\n* **l10n:** Update translations from Transifex ([e3b0fa8](https://github.com/nextcloud/mail/commit/e3b0fa801195720c00f4a5e1d3c68dde55a23407))\n* **l10n:** Update translations from Transifex ([9d80c02](https://github.com/nextcloud/mail/commit/9d80c0282898167f34681d89e808933214c32a39))\n* **l10n:** Update translations from Transifex ([3dc2827](https://github.com/nextcloud/mail/commit/3dc28277a1c39cb3cff74d42742030ab371e4cf5))\n* **l10n:** Update translations from Transifex ([67d1d2a](https://github.com/nextcloud/mail/commit/67d1d2a2441f761d5076ec3c6b6cd199ed466a5b))\n* **l10n:** Update translations from Transifex ([65b822d](https://github.com/nextcloud/mail/commit/65b822db0b11b54c64a809eb612a0e0f5e6f1b4a))\n* **l10n:** Update translations from Transifex ([adf81ed](https://github.com/nextcloud/mail/commit/adf81edff2bc005bf943b7311c62aefa9d8fd00f))\n* **l10n:** Update translations from Transifex ([dd0b743](https://github.com/nextcloud/mail/commit/dd0b743a10b3ea749fad2037333daf4d40d5760d))\n* **l10n:** Update translations from Transifex ([2c49124](https://github.com/nextcloud/mail/commit/2c49124257d9b641e6fc021fbca09e949a6c4b3d))\n* **l10n:** Update translations from Transifex ([b46373a](https://github.com/nextcloud/mail/commit/b46373a80c695b83249e9b3931f2ed661d924994))\n* **l10n:** Update translations from Transifex ([2306934](https://github.com/nextcloud/mail/commit/2306934b4546131d02f4bee6d0660d20d9516d23))\n* **l10n:** Update translations from Transifex ([e40e483](https://github.com/nextcloud/mail/commit/e40e483b9d2aa17d46a5be084b284df3abc22f2f))\n* **l10n:** Update translations from Transifex ([684e75a](https://github.com/nextcloud/mail/commit/684e75a46d208bc6365b328e8c85df84e638354b))\n* **l10n:** Update translations from Transifex ([0e361f0](https://github.com/nextcloud/mail/commit/0e361f06b008d6738db6bbbad70e49312533a932))\n* **l10n:** Update translations from Transifex ([67b25e3](https://github.com/nextcloud/mail/commit/67b25e34a0dc9c8bce176817bc228e12e1f53821))\n* **l10n:** Update translations from Transifex ([0fab187](https://github.com/nextcloud/mail/commit/0fab187e0a70b82c5230e36cdea5291b1b247d1f))\n* **l10n:** Update translations from Transifex ([bff919e](https://github.com/nextcloud/mail/commit/bff919ee61c8b7e5905b285b25b60649242e7161))\n* **l10n:** Update translations from Transifex ([6ddcf65](https://github.com/nextcloud/mail/commit/6ddcf65c22b81621dc0546eb9beaa2331fce44eb))\n* **l10n:** Update translations from Transifex ([2ea9bf1](https://github.com/nextcloud/mail/commit/2ea9bf13cfd824930dde40847c538c2778bf759b))\n* **l10n:** Update translations from Transifex ([3cd6222](https://github.com/nextcloud/mail/commit/3cd62224a25cb01bd16fabf6e3b1ccbf93153df6))\n* **l10n:** Update translations from Transifex ([d972d43](https://github.com/nextcloud/mail/commit/d972d439a0eb2146e0104b065ea7d272f258f9a6))\n* **l10n:** Update translations from Transifex ([be650ef](https://github.com/nextcloud/mail/commit/be650ef147914afc875123146a9f308f1a10df2d))\n* **l10n:** Update translations from Transifex ([a3d8185](https://github.com/nextcloud/mail/commit/a3d81853bc79060c6c6364195053de8d775b53a0))\n* **l10n:** Update translations from Transifex ([a87aa56](https://github.com/nextcloud/mail/commit/a87aa56436750fd601f7609ed74eb582ccec5011))\n* **l10n:** Update translations from Transifex ([01f9f99](https://github.com/nextcloud/mail/commit/01f9f998114fade296d4fb8812d8c3aab1967719))\n* **l10n:** Update translations from Transifex ([f1368ab](https://github.com/nextcloud/mail/commit/f1368ab5642d49db7db972bfcba74eb1a3529e6e))\n* **l10n:** Update translations from Transifex ([d3ee1d5](https://github.com/nextcloud/mail/commit/d3ee1d5a2502ee7c406f0347271c8c9113825eb4))\n* **l10n:** Update translations from Transifex ([f201a19](https://github.com/nextcloud/mail/commit/f201a197242e6208ede2c6461370ebe0dc9ff2bd))\n* **l10n:** Update translations from Transifex ([2320679](https://github.com/nextcloud/mail/commit/2320679f03db9869f3cd01b7f6cdb9d29254dd1b))\n* **l10n:** Update translations from Transifex ([d164bcb](https://github.com/nextcloud/mail/commit/d164bcbef87f0a224b34cce675c0d83996323b89))\n* **l10n:** Update translations from Transifex ([b4a6221](https://github.com/nextcloud/mail/commit/b4a62211a44588abc9c8b623d268eacdfcd11a2c))\n* **l10n:** Update translations from Transifex ([46c94b3](https://github.com/nextcloud/mail/commit/46c94b3d469dfd86b2274b8f6b82ce6afeb66b33))\n* **l10n:** Update translations from Transifex ([428c205](https://github.com/nextcloud/mail/commit/428c2051be596be6a9f4c1964d55350163309d0e))\n* **l10n:** Update translations from Transifex ([6016da4](https://github.com/nextcloud/mail/commit/6016da44d22cf8769fa03a02f5cb4a8811c810fb))\n* **l10n:** Update translations from Transifex ([307a257](https://github.com/nextcloud/mail/commit/307a257a4d2fdb63c738458b2453b959af574467))\n* **l10n:** Update translations from Transifex ([c6e018b](https://github.com/nextcloud/mail/commit/c6e018bfe874bc9197f4f9ca4aeac49fa1cfd1ab))\n* **l10n:** Update translations from Transifex ([78ae7f4](https://github.com/nextcloud/mail/commit/78ae7f43a3588c9534e2cb3c60e470cbfbee86e7))\n* **l10n:** Update translations from Transifex ([b8124ae](https://github.com/nextcloud/mail/commit/b8124ae1a006ab52aa9af1e007cbe643f28f9783))\n* leftover design changes ([da0a40d](https://github.com/nextcloud/mail/commit/da0a40d67fc3ec32713254e44885249be5bf877c))\n* list separators depending on sort by date ([1af3195](https://github.com/nextcloud/mail/commit/1af3195ae5a730baef2c4bcf4d1e048fa1b9bc25))\n* mail pane resetting between layout changes ([73c34ff](https://github.com/nextcloud/mail/commit/73c34ff21d8e5fbdf51af6ddc1ef7ff63de7e153))\n* migrate mail_accounts.oauth_refresh_token to Types::TEXT ([0341d64](https://github.com/nextcloud/mail/commit/0341d64fad418803831cad77f237e00a4f180843))\n* **migration:** check if account service method exists ([4133178](https://github.com/nextcloud/mail/commit/41331785b627692f814c15fbfe43fe500f8f8516))\n* **migration:** guard repair stop for possibly missing method ([edd7634](https://github.com/nextcloud/mail/commit/edd76340c32e0a0a349b9f6b512efb78e7a46839))\n* **NewMessageModal:** keep formatting after minimizing ([63354f2](https://github.com/nextcloud/mail/commit/63354f29349cdeceb93ca239b157cfb2fe045329))\n* **psalm:** remove unnecessary var declarations ([af228f6](https://github.com/nextcloud/mail/commit/af228f6abb86878f4378cc86e3caa09fbb6c64b1))\n* **quick-actions:** adjust backend check for pinned actions order ([4251ca2](https://github.com/nextcloud/mail/commit/4251ca2dc6a0a09f23521ea72fb80380f9d7d9a3))\n* **quick-actions:** apply action to all messages in a thread ([5ccc6a6](https://github.com/nextcloud/mail/commit/5ccc6a6c9162c188587df5d42ee06bf965229ad6))\n* **quick-actions:** delete local steps ([08e379c](https://github.com/nextcloud/mail/commit/08e379c2dd0f44321726150609452ad20bfded3e))\n* **quick-actions:** pin mark as spam as a last actions step ([a28adde](https://github.com/nextcloud/mail/commit/a28adde92e50c3758c28b22088feddf3d3deb848))\n* **quickaction:** fix deleting quick action steps ([f8b67cf](https://github.com/nextcloud/mail/commit/f8b67cfb848d5f4420fafc795792796189f789ee))\n* **quickaction:** log js error to console ([da5eae9](https://github.com/nextcloud/mail/commit/da5eae94614816bb75c6fd31a95ac92b6b47a8d5))\n* render recipient info later ([03bee06](https://github.com/nextcloud/mail/commit/03bee066c6c168911151e0be71c16eb2dc2bbc4d))\n* restore color menu in text/background selector ([6de3bb1](https://github.com/nextcloud/mail/commit/6de3bb1ab9e21f28703648926f451c6f46b5dcc3))\n* schedule jobs on account provisioning ([5f9a313](https://github.com/nextcloud/mail/commit/5f9a3131ac6f31680255c616bc26e7938d1752a5))\n* schedule repair sync job when adding an account ([eb41283](https://github.com/nextcloud/mail/commit/eb41283573f85cbef11bcfe40059b7930bea9802))\n* **Settings:** redesign ([5448209](https://github.com/nextcloud/mail/commit/5448209267415ad71f877b104e420aaf0bd20ab9))\n* **setup:** log when invalid hosts are used ([b415ab6](https://github.com/nextcloud/mail/commit/b415ab6672c5d90138d8834763d9a3683b0c4331))\n* show user avatar in recipient info ([f67fd6b](https://github.com/nextcloud/mail/commit/f67fd6be188873e1a397829da7a1e82aa6cc42fe))\n* **sieve:** improve filter ui ([29c3d5e](https://github.com/nextcloud/mail/commit/29c3d5ed87547835886e9a0f47d75d206008bd98))\n* thread error message handling ([7593d60](https://github.com/nextcloud/mail/commit/7593d6099f254930fdbb63bc08398bcaa85c5e3d))\n* toolbar dropdown and height bug ([90e78c1](https://github.com/nextcloud/mail/commit/90e78c16ad80edec5209d527cebd9cd6968de016))\n* **ui:** Don't outline checkmark icons ([46e0a10](https://github.com/nextcloud/mail/commit/46e0a108843b3a3661d3da6eb4a793148b9c5a95)), closes [#11322](https://github.com/nextcloud/mail/issues/11322)\n* **ui:** escape envelope subject line ([36b5d21](https://github.com/nextcloud/mail/commit/36b5d211eedbaeb3e4b41aaa2b0fea59bd52e285))\n* **ui:** handle mailbox sorting of 'all' and unknown special use ([913342b](https://github.com/nextcloud/mail/commit/913342b0d2fd0be25186cb39b31916b72a188ced))\n* **ui:** migrate to the new radio groups for app settings ([cef6238](https://github.com/nextcloud/mail/commit/cef62387b304a927b3ffb5f8a4cfe124452e88c2))\n* **ui:** use filled icons for active navigation mailboxes ([2b78ce1](https://github.com/nextcloud/mail/commit/2b78ce1961414d2242dcc7f71b035e91d42c176a))\n* **ui:** use new NcKbd component ([65f6c61](https://github.com/nextcloud/mail/commit/65f6c61c686f0b89f25a5be16965abe29e4aeff2))\n* validate email address in recipient picker ([0d7ceb1](https://github.com/nextcloud/mail/commit/0d7ceb1fb77820595b799540e25d29649a3e7988))\n* warning for accounts that can't connect ([1ee0d5d](https://github.com/nextcloud/mail/commit/1ee0d5d76912fbe30e205f5a4c0768ef6960c5da))\n\n\n### Features\n\n* **composer:** send message on Ctrl+Enter ([0e848de](https://github.com/nextcloud/mail/commit/0e848deae3c4fadf7f70aebda3db001d554a420a))\n* **settings:** add bordered wrapper to signature editor for clearer boundary ([0675a17](https://github.com/nextcloud/mail/commit/0675a1756303159fa8b84f35eff52ee52c81c6ab))\n* show mail version in settings ([d206d4d](https://github.com/nextcloud/mail/commit/d206d4dfc68e589284418fbcfb82ea54e2000148))\n\n\n### Performance Improvements\n\n* switch webpack mode to lazy ([9d8f1f3](https://github.com/nextcloud/mail/commit/9d8f1f32219fbd21e61c66794b0ff64e2bf830f9))\n\n\n\n# [5.5.0-rc.1](https://github.com/nextcloud/mail/compare/v5.2.0-beta.1...v5.5.0-rc.1) (2025-09-11)\n\n\n### Bug Fixes\n\n* **ai-integration:** set the language explicitly for message summary ([ca141ee](https://github.com/nextcloud/mail/commit/ca141eeed5f90a5b1348c2f7c3d6b24680557edb))\n* **AliasSettings:** alignment ([84233ab](https://github.com/nextcloud/mail/commit/84233ab11532efd238c876f92d3f5b60e3faabad))\n* avoid polluting the logs in the task processing event listner ([ab9cd93](https://github.com/nextcloud/mail/commit/ab9cd9338b2de6bf6c2daee9d291c9c995ed7517))\n* ckeditor dropdown overlaping ([59904c2](https://github.com/nextcloud/mail/commit/59904c2c6b2d3476a4e3bb2cfdb23cdb44809bd3))\n* clear search icon should not be outline ([ab21936](https://github.com/nextcloud/mail/commit/ab2193695614d46132416effbe41b4bb5921896d))\n* **deps:** bump @iframe-resizer/child from 5.5.0 to ^5.5.1 (main) ([#11451](https://github.com/nextcloud/mail/issues/11451)) ([fbb7d7b](https://github.com/nextcloud/mail/commit/fbb7d7b61d0c666f984ec81de2da11139e1f211e))\n* **deps:** bump @iframe-resizer/child from 5.5.1 to ^5.5.2 ([ed1fbcb](https://github.com/nextcloud/mail/commit/ed1fbcb085d326fdcecdeb792f6833ca2b325967))\n* **deps:** bump @iframe-resizer/child from 5.5.2 to ^5.5.3 (main) ([#11583](https://github.com/nextcloud/mail/issues/11583)) ([03dedb7](https://github.com/nextcloud/mail/commit/03dedb7baf7205d8aac8429d05b0200f2672a5c0))\n* **deps:** bump @iframe-resizer/child from 5.5.3 to ^5.5.5 (main) ([#11612](https://github.com/nextcloud/mail/issues/11612)) ([0625a6f](https://github.com/nextcloud/mail/commit/0625a6f9d4216454dc5aaf9276e3091085920f40))\n* **deps:** bump @iframe-resizer/parent from 5.4.7 to ^5.5.1 (main) ([#11452](https://github.com/nextcloud/mail/issues/11452)) ([e7dd17a](https://github.com/nextcloud/mail/commit/e7dd17add842d88f5a05e2e1fcaaa92275208f07))\n* **deps:** bump @iframe-resizer/parent from 5.5.1 to ^5.5.2 (main) ([#11483](https://github.com/nextcloud/mail/issues/11483)) ([c563201](https://github.com/nextcloud/mail/commit/c563201340e02673d364e10efeef4bacc3050624))\n* **deps:** bump @iframe-resizer/parent from 5.5.2 to ^5.5.3 (main) ([#11584](https://github.com/nextcloud/mail/issues/11584)) ([67174a9](https://github.com/nextcloud/mail/commit/67174a9f80d80b8cf3cc2f28fbe5d72da11b541b))\n* **deps:** bump @iframe-resizer/parent from 5.5.3 to ^5.5.5 (main) ([#11613](https://github.com/nextcloud/mail/issues/11613)) ([5be27cf](https://github.com/nextcloud/mail/commit/5be27cf2cf00b72fcd4526f164ec2c773e46e00c))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.12.0 ([deef58a](https://github.com/nextcloud/mail/commit/deef58a71e8801dc0c5e515295d03686ece51ff3))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([4529411](https://github.com/nextcloud/mail/commit/452941193bd47e1deb5da403b9ef06ac12d05c25))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.28.0 ([88bdf89](https://github.com/nextcloud/mail/commit/88bdf891061228035dea3ddfe6d360a79a8cca33))\n* **deps:** bump @nextcloud/vue to ^8.30.0 ([f417737](https://github.com/nextcloud/mail/commit/f4177370703e0f9589ca11e89c72535a7782ee8b))\n* **deps:** bump core-js from 3.43.0 to ^3.45.0 ([4932f23](https://github.com/nextcloud/mail/commit/4932f23e4d0fc76c74b602a7cd7e631e77d7dab6))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([13f5e61](https://github.com/nextcloud/mail/commit/13f5e61ef534906b8c7dc1ebb5cd36c1c9b85a24))\n* **deps:** bump js-base64 from 3.7.7 to ^3.7.8 (main) ([#11501](https://github.com/nextcloud/mail/issues/11501)) ([ded3bda](https://github.com/nextcloud/mail/commit/ded3bda4d340bffd12adcdd52b6253b3c9170431))\n* **deps:** bump linkifyjs to v4.3.2 ([ec06a65](https://github.com/nextcloud/mail/commit/ec06a658d8fc89369dabedb2e70dc1818f48c245))\n* **deps:** bump p-limit from 5.0.0 to v6 ([4d6501a](https://github.com/nextcloud/mail/commit/4d6501ac9952a57bf9a38b47f497113d7af7e008))\n* **deps:** bump sabberworm/php-css-parser from 8.8.0 to ^8.9.0 (main) ([#11475](https://github.com/nextcloud/mail/issues/11475)) ([a96c15d](https://github.com/nextcloud/mail/commit/a96c15d684506a68817817f0e0c3ce6af567ec2c))\n* **deps:** bump sha.js from 2.4.11 to 2.4.12 ([461a9cf](https://github.com/nextcloud/mail/commit/461a9cfedcd62a89d236ae86421d9c3ffd519a18))\n* **deps:** bump stylelint from 16.20.0 to ^16.23.1 (main) ([#11476](https://github.com/nextcloud/mail/issues/11476)) ([eac87aa](https://github.com/nextcloud/mail/commit/eac87aa75304bd0ecfda0425c84ea27477d83bf3))\n* **deps:** bump uuid from 9.0.1 to v11 ([243172c](https://github.com/nextcloud/mail/commit/243172c9c8ebaaa2e0feb3907aa4dbe21842f133))\n* **deps:** bump youthweb/urllinker from 2.0.0 to ^2.1.0 (main) ([#11477](https://github.com/nextcloud/mail/issues/11477)) ([e4cc571](https://github.com/nextcloud/mail/commit/e4cc571bef4399dbc1ec66c4238857b087db08c1))\n* **deps:** update symfony/process to 5.4.46 ([569e6b9](https://github.com/nextcloud/mail/commit/569e6b9c5ce88c2874e969d9de55e176e0043b67))\n* **dns:** Update public suffix list ([c29ef10](https://github.com/nextcloud/mail/commit/c29ef10955207b12213bd3781bcea2870d1f51a4))\n* **dns:** Update public suffix list ([e9c9068](https://github.com/nextcloud/mail/commit/e9c90681350a547bb750f29b2f17da9d81f83e53))\n* envelope max height ([2e88454](https://github.com/nextcloud/mail/commit/2e88454c46fae764a42e8f43779f4d48241c52b5))\n* **Envelope:** fix oneline mode envelopes jumping when hovering avatars ([#11641](https://github.com/nextcloud/mail/issues/11641)) ([79e09a1](https://github.com/nextcloud/mail/commit/79e09a1d301ea3e762f9608aa62a30dec7d1cd6a))\n* **EnvelopeSkeleton:** make action hover area square again ([13cc096](https://github.com/nextcloud/mail/commit/13cc096a30ad19fb5a5aed1a23dca4a774f15d36))\n* imip cancelled icon should be filled ([222dad1](https://github.com/nextcloud/mail/commit/222dad14b866e40f8ad548a4784f7b7733b860c8))\n* improve the height and width of threads ([217f086](https://github.com/nextcloud/mail/commit/217f08620eaff42685933654bbcbbeadd94a1b0c))\n* **l10n:** Update translations from Transifex ([8cbc64b](https://github.com/nextcloud/mail/commit/8cbc64be123186ba8271c5684df1f685bb7f451d))\n* **l10n:** Update translations from Transifex ([14d2b10](https://github.com/nextcloud/mail/commit/14d2b105c7fce21368db46f58c93c68be349fd8c))\n* **l10n:** Update translations from Transifex ([d58c2b5](https://github.com/nextcloud/mail/commit/d58c2b5fcbad02d7becc6466ef21464e858ab5e4))\n* **l10n:** Update translations from Transifex ([3a3151a](https://github.com/nextcloud/mail/commit/3a3151af5f54767d7355a950c74477c8a46a63ce))\n* **l10n:** Update translations from Transifex ([d3fe84d](https://github.com/nextcloud/mail/commit/d3fe84d53f68598a93d2b44183d6233452e1a6dd))\n* **l10n:** Update translations from Transifex ([9290530](https://github.com/nextcloud/mail/commit/9290530f5f29e3a4a021ec91645a10042199b4f3))\n* **l10n:** Update translations from Transifex ([c9f26dc](https://github.com/nextcloud/mail/commit/c9f26dc55a3a6740fdb0daf2d2d18182ebcdcda6))\n* **l10n:** Update translations from Transifex ([90a0fd5](https://github.com/nextcloud/mail/commit/90a0fd51400150b678303c39a68dd4d40473f00b))\n* **l10n:** Update translations from Transifex ([36360a3](https://github.com/nextcloud/mail/commit/36360a3f71c96a209a4355dabb03b1380a7611c3))\n* **l10n:** Update translations from Transifex ([a102a6e](https://github.com/nextcloud/mail/commit/a102a6e36687e4e030a3848c044dc7c255de74e9))\n* **l10n:** Update translations from Transifex ([c5116a7](https://github.com/nextcloud/mail/commit/c5116a7d6e9214cc9b2ace7cd583388b16ef0731))\n* **l10n:** Update translations from Transifex ([b076b44](https://github.com/nextcloud/mail/commit/b076b4422b297d8c77249107320c8ef8a6b4547c))\n* **l10n:** Update translations from Transifex ([61df478](https://github.com/nextcloud/mail/commit/61df47864d09f0f3124e56b3e2f0241c84de83b6))\n* **l10n:** Update translations from Transifex ([7ca9af7](https://github.com/nextcloud/mail/commit/7ca9af720d5d837c9a8b29dc55b10dfd89bc9c4d))\n* **l10n:** Update translations from Transifex ([f9e8db7](https://github.com/nextcloud/mail/commit/f9e8db7ea23ff350e2a5cffdb49adbe6f2932293))\n* **l10n:** Update translations from Transifex ([12ed5be](https://github.com/nextcloud/mail/commit/12ed5be776b49a895399ce8a3bdd52733787217c))\n* **l10n:** Update translations from Transifex ([af95f12](https://github.com/nextcloud/mail/commit/af95f12cb147df5fd83e783fb3949684d4d9e314))\n* **l10n:** Update translations from Transifex ([607c73b](https://github.com/nextcloud/mail/commit/607c73ba81bf7c79de107fa56ac2bd861d9c1db0))\n* **l10n:** Update translations from Transifex ([a61e1b9](https://github.com/nextcloud/mail/commit/a61e1b93d8a4a085db1616d4a9cb14c407369f12))\n* **l10n:** Update translations from Transifex ([ee5e864](https://github.com/nextcloud/mail/commit/ee5e864bdf16649e594f74c0bb9bc114e466a1d0))\n* **l10n:** Update translations from Transifex ([70a04cd](https://github.com/nextcloud/mail/commit/70a04cd8aa2a23b56a655b94af8b34ccc0148b8e))\n* **l10n:** Update translations from Transifex ([7f023a0](https://github.com/nextcloud/mail/commit/7f023a06dc0db1fe403aa64a2ceb57d9b17147b9))\n* **l10n:** Update translations from Transifex ([e5e9ec8](https://github.com/nextcloud/mail/commit/e5e9ec8764bd26732f1ea6ad91b4e165011c25ac))\n* **l10n:** Update translations from Transifex ([3f9e474](https://github.com/nextcloud/mail/commit/3f9e474486e90d6e48d3e40b70a4c72611ea2dcf))\n* **l10n:** Update translations from Transifex ([3356ea2](https://github.com/nextcloud/mail/commit/3356ea2ebd5ee1ba344b60dfa5f40ae607e7ba19))\n* **l10n:** Update translations from Transifex ([eeced61](https://github.com/nextcloud/mail/commit/eeced61bcf4d4eaec87924f94c8160acafd0682a))\n* **l10n:** Update translations from Transifex ([2ad3966](https://github.com/nextcloud/mail/commit/2ad3966c3ea5606436387b67da1d4807eb47587a))\n* **l10n:** Update translations from Transifex ([cfdcf75](https://github.com/nextcloud/mail/commit/cfdcf757f2fe7a6936569d3c861bba1b1004fe05))\n* **l10n:** Update translations from Transifex ([697c69b](https://github.com/nextcloud/mail/commit/697c69b5841c01a25b8cf7b0e4fed67d3443188f))\n* **l10n:** Update translations from Transifex ([2f1c003](https://github.com/nextcloud/mail/commit/2f1c003418e40b7edad25f1f498e43e2b773a7d1))\n* **l10n:** Update translations from Transifex ([36f0e7f](https://github.com/nextcloud/mail/commit/36f0e7fd38568d944000736136c94bb1b7a261a3))\n* **l10n:** Update translations from Transifex ([e2c468f](https://github.com/nextcloud/mail/commit/e2c468fac3115bdd6d27c16b9009377421416c74))\n* **l10n:** Update translations from Transifex ([c8f646c](https://github.com/nextcloud/mail/commit/c8f646c09d5d0c405babdefa026cf6a5ac2b1d2f))\n* **l10n:** Update translations from Transifex ([3f1a40c](https://github.com/nextcloud/mail/commit/3f1a40c9b23ee7f9ba9ac3610cb877d8d8a59800))\n* **l10n:** Update translations from Transifex ([481be86](https://github.com/nextcloud/mail/commit/481be86a5abe74d2b6e11ee7823e1ff9997b7d4f))\n* Overwrite php-stemmer dependency from RubixML for PHP 8.4 compatibility ([cb94091](https://github.com/nextcloud/mail/commit/cb94091f38006b5bb1255edea7b5d836a5f647ba))\n* reply buttons spacing ([989f540](https://github.com/nextcloud/mail/commit/989f540d22e398bce6b58c467bda93932b5f06db))\n* **settings:** add missing mail settings heading ([a94cd4e](https://github.com/nextcloud/mail/commit/a94cd4e30cf2800d1e695dc805c549b6f1fae300))\n* specify which mailbox to load more from ([e196775](https://github.com/nextcloud/mail/commit/e1967756d49467085fbad138f7c67c0881b10146))\n* **text-blocks:** allow editing in composer and open api for non admin users ([d93d974](https://github.com/nextcloud/mail/commit/d93d974bf8642e80792402c23546391e2985561d))\n* thread heading alignment and participants ([ea01e40](https://github.com/nextcloud/mail/commit/ea01e402f79b90c0792771e03980abec73165781))\n* thread scrolls to middle of iframe ([77a91ad](https://github.com/nextcloud/mail/commit/77a91ad7765a9ec344c5987a8efe1834c9101343))\n* **translation:** respect llm admin setting ([0b0e279](https://github.com/nextcloud/mail/commit/0b0e27977a69a6315fca731f65f554ee758e2e9b))\n* **ui:** adapt setup page to fluid logo ([bff428d](https://github.com/nextcloud/mail/commit/bff428d7c78502008d296e232d998b0778eca37b))\n* **ui:** replace download/upload icons with tray icons ([fe6c15f](https://github.com/nextcloud/mail/commit/fe6c15fe67478664e0021707a0e450d4d3d7e75b))\n* **ui:** replace wrongly sized and jumping checkbox loading icon ([668f7b6](https://github.com/nextcloud/mail/commit/668f7b6c4b3017f0a65f486435d4ca81327d1399))\n* **ui:** resize action icons from 16px to 20px ([d6810da](https://github.com/nextcloud/mail/commit/d6810da2a5d1fc60d632234865542962acdf7ddb))\n* **ui:** resize action icons from 16px to 20px ([99fbdda](https://github.com/nextcloud/mail/commit/99fbdda306f7efd3c52bb98a4f4937f92eb2de2f))\n* **ui:** resize button icons from 16px to 20px ([9c059b8](https://github.com/nextcloud/mail/commit/9c059b85d13ca4161f793d9fc2de537de66b726b))\n* **ui:** resize inline icons from 16px to 20px ([e8a8d89](https://github.com/nextcloud/mail/commit/e8a8d89de6c92fd70fa2e1d5dbd9afe7c5837487))\n* **ui:** revert composer session close icon to filled variant ([e10d9da](https://github.com/nextcloud/mail/commit/e10d9da41655955376268d3c342a63260b574aa0))\n* **ui:** revert recipient delete icon to filled variant ([6468edb](https://github.com/nextcloud/mail/commit/6468edb42a4248312c91d3570dac4a133a610dcd))\n* **ui:** show box-shadow for fluid design button all the time ([03b5861](https://github.com/nextcloud/mail/commit/03b5861d70b854704caa47269cbb999f583fe057))\n* **ui:** use fluid background image for the setup view ([f88dec6](https://github.com/nextcloud/mail/commit/f88dec649b44f9ab8e38a767016a4e1c26ba7235))\n* **ui:** use gradient as fallback for themed fluid design ([b3ebb27](https://github.com/nextcloud/mail/commit/b3ebb2787814f4c075f495b1eb04ea66f00dee2a))\n* update wording for mailvelope ([b51ed32](https://github.com/nextcloud/mail/commit/b51ed32d53b4336ab7d7aa76d366a557f09738ce))\n* white space between section titles ([9469c7b](https://github.com/nextcloud/mail/commit/9469c7be51d0743cb722f110263700d126cb218c))\n\n\n### Features\n\n* adjust background sync on user activity ([febaba1](https://github.com/nextcloud/mail/commit/febaba187da4dd60410ccfad738fe80d5af619fa))\n* **ai-integration:** detect if message needs translation ([4a2b238](https://github.com/nextcloud/mail/commit/4a2b2389f31f084d8b7856f4a4bd84ed22c27f41))\n* **deps:** add Nextcloud 33 support ([df5795d](https://github.com/nextcloud/mail/commit/df5795dab59e95fd43a00e84c82544ada65a43ea))\n* introduce quick actions ([cc1047c](https://github.com/nextcloud/mail/commit/cc1047c7c884711144e229174914c102f8a5fd13))\n* make summary thread similar to normal thread style ([997c19e](https://github.com/nextcloud/mail/commit/997c19e0553c9ee7ecc244e778c006e849d2ea8f))\n* make thread elements have the same space around it ([ec2173c](https://github.com/nextcloud/mail/commit/ec2173c77ab9a6266dbb3499a32350df8b7d180f))\n* quick actions frontend ([97fb6a5](https://github.com/nextcloud/mail/commit/97fb6a516ba8510c054e9e7740f5bce72601f563))\n* reply message with meeting ([37be07c](https://github.com/nextcloud/mail/commit/37be07c664b5b3aad2c4d9135f9412766edd7cd1))\n* split envelopes by time of arrival ([eaa7405](https://github.com/nextcloud/mail/commit/eaa740528c1284b79aa3291bcbfd20f907608f64))\n* **ui:** add fluid design ([85f0628](https://github.com/nextcloud/mail/commit/85f06283836e7243496c20d37d2565aafcb0f6ea))\n\n\n\n# [5.2.0-beta.1](https://github.com/nextcloud/mail/compare/v5.2.0-alpha.1...v5.2.0-beta.1) (2025-08-04)\n\n\n### Bug Fixes\n\n* add html and source editing support ([ff1f7d8](https://github.com/nextcloud/mail/commit/ff1f7d885c3c06850e08e969c5b6b35af8bc8c81))\n* add translator note for account settings folder search ([a702a23](https://github.com/nextcloud/mail/commit/a702a233388163a3898b993bb0d5a43415e28192))\n* **avatar:** handle null bodies ([b8f452b](https://github.com/nextcloud/mail/commit/b8f452bba27a059681f33b7842aa2b5c0ab2cc57))\n* avoid invalid false return type ([d0f4b55](https://github.com/nextcloud/mail/commit/d0f4b556531a1271f11f3164093eb62699f48a28))\n* button aria label and roles ([e38d831](https://github.com/nextcloud/mail/commit/e38d831869cbf9ef38d951b3c2d6fa3da2c0790d))\n* **caldav:** invalid import of davclient ([376942d](https://github.com/nextcloud/mail/commit/376942d81cf95b462196aca6f629f7bfc258a24c))\n* **classification:** use global default for new messages too ([d4e171b](https://github.com/nextcloud/mail/commit/d4e171bdac87390067fe5f4b0db10adef1dfcbe7))\n* close modal when send is clicked ([3ef6947](https://github.com/nextcloud/mail/commit/3ef694729bfbba27767b70c5219d772e2553c8fa))\n* **composer:** allow attaching shared files again ([214680a](https://github.com/nextcloud/mail/commit/214680adb43fd6216dd7c8ab8da5595e48c8c718))\n* **deps:** Apply npm audit fix ([3c447b7](https://github.com/nextcloud/mail/commit/3c447b769a2b9e296ab8ac8adb91a1f15b0601a4))\n* **deps:** Apply npm audit fix ([3822226](https://github.com/nextcloud/mail/commit/3822226ff7cde3f6d616b3a904888517b452ab8c))\n* **deps:** Apply npm audit fix ([6e90100](https://github.com/nextcloud/mail/commit/6e9010004196f21b30da57773e4eb6ff688fc063))\n* **deps:** Apply npm audit fix ([f538159](https://github.com/nextcloud/mail/commit/f538159f3abf69672a4df4498862b88676bc9c92))\n* **deps:** bump @iframe-resizer/child from 5.4.6 to ^5.4.7 (main) ([#11374](https://github.com/nextcloud/mail/issues/11374)) ([41547fa](https://github.com/nextcloud/mail/commit/41547faa6bd9e9e672d49e5659e48b3f74aadf37))\n* **deps:** bump @iframe-resizer/child from 5.4.7 to ^5.5.0 (main) ([#11430](https://github.com/nextcloud/mail/issues/11430)) ([b0947e6](https://github.com/nextcloud/mail/commit/b0947e64704972de8e2229d3ad0c0c1446ce0d17))\n* **deps:** bump @iframe-resizer/parent from 5.4.6 to ^5.4.7 (main) ([#11375](https://github.com/nextcloud/mail/issues/11375)) ([c9fc35a](https://github.com/nextcloud/mail/commit/c9fc35aad941303316dada6e9508cf98d475b2e8))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 (main) ([#11376](https://github.com/nextcloud/mail/issues/11376)) ([c15e8c3](https://github.com/nextcloud/mail/commit/c15e8c308336cc7645934f090c70ceb069667145))\n* **deps:** bump @nextcloud/calendar-js from 8.1.2 to ^8.1.3 ([4c8363e](https://github.com/nextcloud/mail/commit/4c8363e9c3b36fef917b310e9c21092e37b52cb9))\n* **deps:** bump @nextcloud/calendar-js from 8.1.3 to ^8.1.4 ([378405e](https://github.com/nextcloud/mail/commit/378405e2a7967ad795507275a4753af0cbaaf622))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([08bff41](https://github.com/nextcloud/mail/commit/08bff4199ee5f1e3adfde894d4aaccbe7dafecdb))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 (main) ([#11409](https://github.com/nextcloud/mail/issues/11409)) ([2914a63](https://github.com/nextcloud/mail/commit/2914a6312556302b179eb602888bf31921d05d4d))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to v6 ([53cfc3e](https://github.com/nextcloud/mail/commit/53cfc3ef45446903a13c70cb3dae76bc5a878195))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.3.0 (main) ([#11227](https://github.com/nextcloud/mail/issues/11227)) ([ed941e8](https://github.com/nextcloud/mail/commit/ed941e86f1dcbc8e81da99417e406eb83ebb0649))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.0 (main) ([#11427](https://github.com/nextcloud/mail/issues/11427)) ([e9f785c](https://github.com/nextcloud/mail/commit/e9f785c9d532fe21fd77a52d288702f1cf9240e2))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 (main) ([#11410](https://github.com/nextcloud/mail/issues/11410)) ([29f0f8e](https://github.com/nextcloud/mail/commit/29f0f8ef908e2c70ebec94d0aac6e52795f565ef))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([f4f3535](https://github.com/nextcloud/mail/commit/f4f35358b044213e2938a1a9bf5412fed7f94323))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.27.0 ([ef701cb](https://github.com/nextcloud/mail/commit/ef701cbf0c216469ee16012e50bc08759e80658d))\n* **deps:** bump amphp/parallel and amphp/process for PHP8.4 compat ([8d0ef72](https://github.com/nextcloud/mail/commit/8d0ef72c8fe3b840a7a17c31159ee18d58453438))\n* **deps:** bump core-js from 3.42.0 to ^3.43.0 (main) ([#11256](https://github.com/nextcloud/mail/issues/11256)) ([8b9a531](https://github.com/nextcloud/mail/commit/8b9a531b9c7d8dfefe221a1bff30aaac0254d87d))\n* **deps:** bump dompurify from 3.2.5 to ^3.2.6 (main) ([#11180](https://github.com/nextcloud/mail/issues/11180)) ([fbbf4bf](https://github.com/nextcloud/mail/commit/fbbf4bfd15000113755fa37d76634683c10282d1))\n* **deps:** bump form-data to v4.0.4 ([71d52ca](https://github.com/nextcloud/mail/commit/71d52ca16c25bc19f5e84f54c41bca8433706d03))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 (main) ([#11343](https://github.com/nextcloud/mail/issues/11343)) ([10d46f5](https://github.com/nextcloud/mail/commit/10d46f5714f081a487a84cdae353e23fb266c7fc))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.3 to ^1.0.4 (main) ([#11181](https://github.com/nextcloud/mail/issues/11181)) ([cc4b6af](https://github.com/nextcloud/mail/commit/cc4b6afa0dca2559be3f7253c7d41598c833b5d3))\n* **deps:** bump ramda from 0.30.1 to ^0.31.3 ([0f5d1cb](https://github.com/nextcloud/mail/commit/0f5d1cba25f079fb36ca802ed37872c05b2f9d66))\n* **deps:** bump stylelint from 16.19.1 to ^16.20.0 (main) ([#11248](https://github.com/nextcloud/mail/issues/11248)) ([0d95338](https://github.com/nextcloud/mail/commit/0d95338d7597d7f77d691ea921a6bc8e295cd01c))\n* **deps:** bump webdav from 4.11.4 to v4.11.5 (main) ([#11246](https://github.com/nextcloud/mail/issues/11246)) ([6359d2b](https://github.com/nextcloud/mail/commit/6359d2b9e6e1c7ca9fa6b40343b62b9ee4cea1b4))\n* **dns:** Update public suffix list ([6096398](https://github.com/nextcloud/mail/commit/6096398a88ea3065ddf48afa895d1a70c6e9d4fd))\n* **dns:** Update public suffix list ([990031a](https://github.com/nextcloud/mail/commit/990031a8be090ff5fe55bab5647f8be921d0536f))\n* **dns:** Update public suffix list ([5ea2259](https://github.com/nextcloud/mail/commit/5ea2259e2963106d27fcdae78119b43fa322d0a5))\n* **dns:** Update public suffix list ([fb7762c](https://github.com/nextcloud/mail/commit/fb7762c3ac5fe23845b04540b0a7f63211055791))\n* **dns:** Update public suffix list ([f8bf4ec](https://github.com/nextcloud/mail/commit/f8bf4eccbd37a6a529d365e4d7e60889f9b56b08))\n* don't propagate click event on reply ([56ac6af](https://github.com/nextcloud/mail/commit/56ac6af0c3f2f738d64797538530c84f66c9a008))\n* **filters:** Use contains operator for from and to header ([8d79ff2](https://github.com/nextcloud/mail/commit/8d79ff231cec394d4e90b2b429f1df8e55650936))\n* html message alignment ([7fde440](https://github.com/nextcloud/mail/commit/7fde440d186faf3bf7724144d56b169db7f03ade))\n* **imip:** hide warning about email mismatch for imip replies ([aca57c4](https://github.com/nextcloud/mail/commit/aca57c45338b542899c25ec02c6172bca66982fa))\n* **imip:** process imip messages more frequently ([881c2a5](https://github.com/nextcloud/mail/commit/881c2a593dffa9dfe3c30cdb0a59103ed1f02623))\n* invitation title on small screen ([d268bb8](https://github.com/nextcloud/mail/commit/d268bb8f5e7e5b4c2f68020a7033f9b02fdecf8a))\n* **l10n:** remove trailing space and allow RTL for drafts ([a9acabc](https://github.com/nextcloud/mail/commit/a9acabca1240eeb2d96c32611beed708e5a958c6))\n* **l10n:** Update translations from Transifex ([f341e23](https://github.com/nextcloud/mail/commit/f341e236d868d252d930f90d5aa407a9d775598f))\n* **l10n:** Update translations from Transifex ([7520191](https://github.com/nextcloud/mail/commit/7520191dfbc3b848bb990fd0c8dab0fcebc2ca8c))\n* **l10n:** Update translations from Transifex ([c9eb41d](https://github.com/nextcloud/mail/commit/c9eb41d382944c6293b222f9daff982836437d6f))\n* **l10n:** Update translations from Transifex ([34ee755](https://github.com/nextcloud/mail/commit/34ee75530288bda133637101eb5a5dad1f22a82e))\n* **l10n:** Update translations from Transifex ([be60d8b](https://github.com/nextcloud/mail/commit/be60d8bd43af9455a44e678bd06359a7cb9532c2))\n* **l10n:** Update translations from Transifex ([b1d0931](https://github.com/nextcloud/mail/commit/b1d0931b0d85fec5d76740446836f5d086d929da))\n* **l10n:** Update translations from Transifex ([0911657](https://github.com/nextcloud/mail/commit/0911657911162a5fec675b22b38510bde70fdc18))\n* **l10n:** Update translations from Transifex ([b0aa0c8](https://github.com/nextcloud/mail/commit/b0aa0c8edbf4c77d061976a2513e6d17a8fc7944))\n* **l10n:** Update translations from Transifex ([8d02123](https://github.com/nextcloud/mail/commit/8d021232fc5a74ebe9f706e4bd0f0c9d0b165ae0))\n* **l10n:** Update translations from Transifex ([4e860ae](https://github.com/nextcloud/mail/commit/4e860aed21035bd4dc49ea699c1fd25436cd3c4b))\n* **l10n:** Update translations from Transifex ([fe04747](https://github.com/nextcloud/mail/commit/fe047476f447551da02d066ee5f0d4015ae0ab94))\n* **l10n:** Update translations from Transifex ([6568fd8](https://github.com/nextcloud/mail/commit/6568fd8858fac930eb67e45c0fbea675439c21c1))\n* **l10n:** Update translations from Transifex ([a79ef67](https://github.com/nextcloud/mail/commit/a79ef6780061910d8010a5fb5d881656202f2f5d))\n* **l10n:** Update translations from Transifex ([2590c76](https://github.com/nextcloud/mail/commit/2590c76c2dbb8ea52435f6e648a51d104c590a0b))\n* **l10n:** Update translations from Transifex ([b741e2d](https://github.com/nextcloud/mail/commit/b741e2d0da217a63bcfd3cdbe0edfe97357b1824))\n* **l10n:** Update translations from Transifex ([45cbe3f](https://github.com/nextcloud/mail/commit/45cbe3f8ef9c3e855ddbeed2487811d767c8c0a0))\n* **l10n:** Update translations from Transifex ([ee76fff](https://github.com/nextcloud/mail/commit/ee76fffca11451414c40b60bad49e4486e49de81))\n* **l10n:** Update translations from Transifex ([4dd274f](https://github.com/nextcloud/mail/commit/4dd274ffe670e752b8ccaf0415e866e9f16b2744))\n* **l10n:** Update translations from Transifex ([6002661](https://github.com/nextcloud/mail/commit/600266130fd8d931e46359c4b8c18ca94b248a83))\n* **l10n:** Update translations from Transifex ([c92032c](https://github.com/nextcloud/mail/commit/c92032c7f08fcc59a223dc621a2ac218e43aa208))\n* **l10n:** Update translations from Transifex ([5d4a2be](https://github.com/nextcloud/mail/commit/5d4a2becb7e8bbce8788579af155a712f4933a60))\n* **l10n:** Update translations from Transifex ([5b2695e](https://github.com/nextcloud/mail/commit/5b2695e63cbc07dd56eae99a51b36d6745a67e56))\n* **l10n:** Update translations from Transifex ([3f79191](https://github.com/nextcloud/mail/commit/3f79191fdf2a68f164ded7233fa7da7eac056945))\n* **l10n:** Update translations from Transifex ([4e381eb](https://github.com/nextcloud/mail/commit/4e381ebbaf99b182867efcadef2f00fb596768de))\n* **l10n:** Update translations from Transifex ([5d13aac](https://github.com/nextcloud/mail/commit/5d13aacd343883b2c7ace01db7280a0664c0a6e4))\n* **l10n:** Update translations from Transifex ([d82e8f3](https://github.com/nextcloud/mail/commit/d82e8f3c3398ad54c921217f5b1238dc8683bebc))\n* **l10n:** Update translations from Transifex ([b8bcc35](https://github.com/nextcloud/mail/commit/b8bcc35a47105712031485bd0660503c709bafa9))\n* **l10n:** Update translations from Transifex ([98f36b1](https://github.com/nextcloud/mail/commit/98f36b146dd5ccc8ba6a22717349185a0429759a))\n* **l10n:** Update translations from Transifex ([a64a503](https://github.com/nextcloud/mail/commit/a64a50389ccb64786ad7078641d453468b6da152))\n* **l10n:** Update translations from Transifex ([3a7babe](https://github.com/nextcloud/mail/commit/3a7babefc2c3c76c69cc89caf4eb88f89b3c14cf))\n* **l10n:** Update translations from Transifex ([7e8dfe2](https://github.com/nextcloud/mail/commit/7e8dfe265a2a5ad9d767bcd062ebcd7fa3810971))\n* **l10n:** Update translations from Transifex ([e5de9ef](https://github.com/nextcloud/mail/commit/e5de9ef94d16d1c7605dd93d1ef71ceabdeb9bf4))\n* **l10n:** Update translations from Transifex ([5e1fb1c](https://github.com/nextcloud/mail/commit/5e1fb1c549ee5436974393f2a5a957b3094847c6))\n* **l10n:** Update translations from Transifex ([0e37608](https://github.com/nextcloud/mail/commit/0e376080c9bc14146fd0b1db06472c5aa47b64ab))\n* **l10n:** Update translations from Transifex ([1ad5068](https://github.com/nextcloud/mail/commit/1ad5068566ed773876a7f6c7a92baab925438fe1))\n* **l10n:** Update translations from Transifex ([ebfc9c0](https://github.com/nextcloud/mail/commit/ebfc9c0b13e558e88cf7e11677fb32354931ba1d))\n* **l10n:** Update translations from Transifex ([ddd3fd3](https://github.com/nextcloud/mail/commit/ddd3fd3e0318fc102dcb2dfd14e348408cda6181))\n* **l10n:** Update translations from Transifex ([899046c](https://github.com/nextcloud/mail/commit/899046c5345fc682f11f2c938f1971789fe5e9fe))\n* **l10n:** Update translations from Transifex ([e21d952](https://github.com/nextcloud/mail/commit/e21d9529f8659534c0645ab9b056094af1dafbcb))\n* **l10n:** Update translations from Transifex ([6ee4694](https://github.com/nextcloud/mail/commit/6ee4694cad7f8605e1df3951b9e15b627c611e77))\n* **l10n:** Update translations from Transifex ([8ddec2b](https://github.com/nextcloud/mail/commit/8ddec2b73fee49c931f05fc3e80fd1aa2c369c88))\n* **l10n:** Update translations from Transifex ([7f67183](https://github.com/nextcloud/mail/commit/7f67183afb452d490f705124b98f3e4930c1e3dd))\n* **l10n:** Update translations from Transifex ([646c18a](https://github.com/nextcloud/mail/commit/646c18a82da017dc0d1a0dc86f54015a90932e32))\n* **l10n:** Update translations from Transifex ([ac1afec](https://github.com/nextcloud/mail/commit/ac1afec69835c489c4f71266d8cb66495a57ba4d))\n* **l10n:** Update translations from Transifex ([31a5a3c](https://github.com/nextcloud/mail/commit/31a5a3c4e321f891470bd9b42211d8a0f9280b74))\n* **l10n:** Update translations from Transifex ([d8e8c0a](https://github.com/nextcloud/mail/commit/d8e8c0a7d8b9d256faa8e76e6764ae3342970637))\n* **l10n:** Update translations from Transifex ([ddb6ffb](https://github.com/nextcloud/mail/commit/ddb6ffb4754cf6290aa814e88e89738a2dd1faf3))\n* **l10n:** Update translations from Transifex ([9ab75d1](https://github.com/nextcloud/mail/commit/9ab75d104a0fee24fa02aa31d216fc74b0351726))\n* **l10n:** Update translations from Transifex ([497cb7e](https://github.com/nextcloud/mail/commit/497cb7e54e77cc4c675b43a25aafd57e58b66157))\n* **l10n:** Update translations from Transifex ([b01ef9a](https://github.com/nextcloud/mail/commit/b01ef9ab50e6cdbf1e6a0060c20aaa9cd9ff6186))\n* **l10n:** Update translations from Transifex ([5f70139](https://github.com/nextcloud/mail/commit/5f70139b99c827130cb6c2b58d1b29990eb08762))\n* **l10n:** Update translations from Transifex ([8cc0405](https://github.com/nextcloud/mail/commit/8cc0405371a59dca96eafd2dc5242ddef334e53e))\n* **l10n:** Update translations from Transifex ([3e67a02](https://github.com/nextcloud/mail/commit/3e67a025d0f7d17f11e84384bff2da22091f92d7))\n* **l10n:** Update translations from Transifex ([2956088](https://github.com/nextcloud/mail/commit/29560884296487375d06376251ef50eb20621476))\n* **l10n:** Update translations from Transifex ([2065780](https://github.com/nextcloud/mail/commit/2065780937de85c82a9fcbb4da664689687dfdff))\n* **l10n:** Update translations from Transifex ([c4ddfe3](https://github.com/nextcloud/mail/commit/c4ddfe3aa011b9aec0651ee891b69aaf6ce0774e))\n* **l10n:** Update translations from Transifex ([fdabd4a](https://github.com/nextcloud/mail/commit/fdabd4a217c424faf3a3a84f47fc4836af84d6a9))\n* **l10n:** Update translations from Transifex ([d4f1083](https://github.com/nextcloud/mail/commit/d4f10833dc3f04b45db0027cf3c6804d2295739f))\n* **l10n:** Update translations from Transifex ([1835be7](https://github.com/nextcloud/mail/commit/1835be760385d968bb3b089a454e5c668630d10d))\n* **l10n:** Update translations from Transifex ([f366a5d](https://github.com/nextcloud/mail/commit/f366a5dd0fc3a308f679dfbc96876a70b2d0b081))\n* **l10n:** Update translations from Transifex ([dea6367](https://github.com/nextcloud/mail/commit/dea63678030c407b81d5aaa19bfeee938a3cbdc3))\n* **l10n:** Update translations from Transifex ([f559247](https://github.com/nextcloud/mail/commit/f559247a9a1f3ffc3be1ec9147a3005803796683))\n* **l10n:** Update translations from Transifex ([4535685](https://github.com/nextcloud/mail/commit/4535685d63e02cb95a65db799c7d6be760f7846c))\n* list layout height ([006fe78](https://github.com/nextcloud/mail/commit/006fe78cc1e666ecc57169bededb5cb2824d4514))\n* load-more button alignment ([1a56aa2](https://github.com/nextcloud/mail/commit/1a56aa29f790b9e4866fd3f161729524753a469f))\n* mail heading on settings shouldnt be skipped ([c34fb46](https://github.com/nextcloud/mail/commit/c34fb46e0cfbaf41a756948a8a8ac903ee5aaeeb))\n* mailvelope button colour text ([5aff985](https://github.com/nextcloud/mail/commit/5aff9858bc3096ce1010fa76a448bb1e0ee1b0f1))\n* make accounts property reactive ([6054a9a](https://github.com/nextcloud/mail/commit/6054a9a943dadfe177ff7418e6a1fafc078cbc40))\n* make saving account settings work again ([9740e56](https://github.com/nextcloud/mail/commit/9740e5618fef1b7d51831572dfa82f56f44204fd))\n* moving messages without a message id on servers without UIDPLUS ([1c8a90e](https://github.com/nextcloud/mail/commit/1c8a90ed5f526c05079efb1ffeca373bb0abb4c2))\n* **outbox:** outbox do not render ([31be037](https://github.com/nextcloud/mail/commit/31be037d648adc605e7ea1ec2d16648eea297ad1))\n* prevent invalid return type ([172de5e](https://github.com/nextcloud/mail/commit/172de5e3445b8be9b06ab118e9ebdf6e84a8a21c))\n* recipient length is undefined ([f0b07b8](https://github.com/nextcloud/mail/commit/f0b07b88d96834c3d1ba6b1417800c3ec9ced7ac))\n* remove redendant css ([afd7741](https://github.com/nextcloud/mail/commit/afd774184f731a751240cadcafcaee381180af39))\n* remove source editing plugin ([070013d](https://github.com/nextcloud/mail/commit/070013dc97d053083581305182b6a45e7fcde181))\n* remove unused and broken computed menu property ([2359051](https://github.com/nextcloud/mail/commit/23590514ccc7f8d1cefd6a20bbb7fae11aa6f7a7))\n* rename collapse label ([b36dfb6](https://github.com/nextcloud/mail/commit/b36dfb6b474bcdc231d0ca96ebcde685cdb6842e))\n* **smime:** only accept certificates and keys in file input ([9778add](https://github.com/nextcloud/mail/commit/9778addf9ce767645518c112693d5f6bd804ed46))\n* **smime:** persist sign preference per alias ([4863f96](https://github.com/nextcloud/mail/commit/4863f96d3b75d792d211f9ed28f25db049e9dca2))\n* text block wording / spelling ([891d4dd](https://github.com/nextcloud/mail/commit/891d4dd34b3ea102d6107220853d13bdbb711eb3))\n* **uid:** switch back from unread circle to dot ([0ee8f3c](https://github.com/nextcloud/mail/commit/0ee8f3cf790b722ca49defe5856fdb7c35e0601d))\n* **uid:** use outline erasor icon for clear mailbox action ([dd27fa5](https://github.com/nextcloud/mail/commit/dd27fa5cdb6c06af2cc4d47ff6131a52d3ff115f))\n* **ui:** flip unread icons for envelopes ([3b6f756](https://github.com/nextcloud/mail/commit/3b6f75682ce5686a57d774f55d06215e6dd21574))\n* **ui:** give file pickers a name ([a1a4ca0](https://github.com/nextcloud/mail/commit/a1a4ca0251939d03abd50becdeab23f63a92a61a))\n* **ui:** go back to filled icons for selection and confirmation icons ([1adecd1](https://github.com/nextcloud/mail/commit/1adecd1bd3ab449dd38b358ae8f695ba64798045))\n* **ui:** make composer link attachments icon size wider ([de6ab08](https://github.com/nextcloud/mail/commit/de6ab08dd3c3b6663872ee2c12e5e540e7c12790))\n* **ui:** replace deprecated iframe resizer attribute ([d74cf2d](https://github.com/nextcloud/mail/commit/d74cf2dd7938df3842ed5e85609a37550d55a60b))\n* **ui:** show only drafts with draft prefix ([edba111](https://github.com/nextcloud/mail/commit/edba1114aa1c223331776ea2f53ae330176105ec))\n* **ui:** use filled/outline icon for the important flag ([20c57d9](https://github.com/nextcloud/mail/commit/20c57d9cc273b52b8d0242327f8cab1cab8a96ff))\n* **ui:** use outline icon for archiving actions ([a2fb5d6](https://github.com/nextcloud/mail/commit/a2fb5d640678f3fc0f88acc910a22345abb7b46f))\n* update summarizeMessages-prompt to hide any introduction ([#11278](https://github.com/nextcloud/mail/issues/11278)) ([49c83e4](https://github.com/nextcloud/mail/commit/49c83e4ba32af8b86c9644da35ec9dedfaddec33))\n\n\n### Features\n\n* add more formatting features on ckeditor ([60d0ed6](https://github.com/nextcloud/mail/commit/60d0ed637f2ac15d7af6902bd4afe23af4b13007))\n* add OCS routes for mailbox and mail listing ([0b86510](https://github.com/nextcloud/mail/commit/0b86510877a97236c5f81bbad3bb3a1deb2e657c))\n* Allow disabling of threaded view ([084cc67](https://github.com/nextcloud/mail/commit/084cc6768aa3f118c4b233b68b57eee5d698818d))\n* change mailbox text to folder ([9287321](https://github.com/nextcloud/mail/commit/9287321f9bdf0e5ea9d50b38a0ea927b5061a9ee))\n* **composer:** suggest recipients from own identities ([6fc54b4](https://github.com/nextcloud/mail/commit/6fc54b4c246ce6083fe3b5755e44eb6a134f2132))\n* make message source modal larger ([e397eb3](https://github.com/nextcloud/mail/commit/e397eb385b101e8ed358f8f5fe10b965d3051c7a))\n* **sieve:** create a mail filter from a message ([11b2d07](https://github.com/nextcloud/mail/commit/11b2d070f661c852dfb4f1332e062be3f226bdbe))\n* start loading additional envelopes earlier ([3663164](https://github.com/nextcloud/mail/commit/36631649f354b8ff5d04cf24634de06586a067de))\n* text blocks ([fcbfc63](https://github.com/nextcloud/mail/commit/fcbfc63cca57f2f6bdb0d309b428606193ddca68))\n* thread list shouldnt reload when searching ([665b3dd](https://github.com/nextcloud/mail/commit/665b3dd000d244b450658fed64bc6231c1c25f25))\n* **ui:** switch to outline icons where possible ([e55bf97](https://github.com/nextcloud/mail/commit/e55bf97db580a14d9b218e87cf8f2f23b1be5242))\n\n\n### Performance Improvements\n\n* cache pre-fetched mailboxes on the HTTP level ([0c4ac27](https://github.com/nextcloud/mail/commit/0c4ac2724a525aa52924233713e7f9c5b458f1d0))\n* improve quota loading for accounts ([2a9b9ae](https://github.com/nextcloud/mail/commit/2a9b9aed4229ab702f08f966bd4cb3c2b7d53ea8))\n* prefetch other mailboxes in the background ([2957ec5](https://github.com/nextcloud/mail/commit/2957ec50b375e19633dd6ef4e0b936f160300de1))\n* reduce number of avatar requests ([9e08477](https://github.com/nextcloud/mail/commit/9e08477c5cb515edcdeed81944aca009e902b51d))\n\n\n\n# [5.2.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.0.0-dev.1...v5.2.0-alpha.1) (2025-05-20)\n\n\n### Bug Fixes\n\n* ckeditor buttons dont show up correctly ([567e8b0](https://github.com/nextcloud/mail/commit/567e8b0157793d3ae0e836331bba4ff78749cdcc))\n* **composer:** handling of plain and html bodies ([58c48ad](https://github.com/nextcloud/mail/commit/58c48ad0f20ac1487dcd0cf653b0a3a52506f45c))\n* define appName and app version ([1938df0](https://github.com/nextcloud/mail/commit/1938df0e62cced0244fb3ac364bbb279a86497d8))\n* **deps:** Apply npm audit fix ([c73ec4d](https://github.com/nextcloud/mail/commit/c73ec4d1596571bf08ee6d3e2b19cd55efba4217))\n* **deps:** bump @iframe-resizer/child from 5.4.2 to ^5.4.4 (main) ([#10981](https://github.com/nextcloud/mail/issues/10981)) ([42eaa20](https://github.com/nextcloud/mail/commit/42eaa20014667443471af4546c64b4ab5be14fd1))\n* **deps:** bump @iframe-resizer/child from 5.4.4 to ^5.4.5 (main) ([#11020](https://github.com/nextcloud/mail/issues/11020)) ([a40ed7b](https://github.com/nextcloud/mail/commit/a40ed7bbcef0c6d73f8ef805122f5942031a63d3))\n* **deps:** bump @iframe-resizer/child from 5.4.5 to ^5.4.6 (main) ([#11044](https://github.com/nextcloud/mail/issues/11044)) ([1059d5a](https://github.com/nextcloud/mail/commit/1059d5a241d9305d17ce7a1e6a26901c6c22f9f9))\n* **deps:** bump @iframe-resizer/parent from 5.4.3 to ^5.4.4 (main) ([#10982](https://github.com/nextcloud/mail/issues/10982)) ([e6b685c](https://github.com/nextcloud/mail/commit/e6b685c35676761d1201e743804ca6418c385234))\n* **deps:** bump @iframe-resizer/parent from 5.4.4 to ^5.4.5 (main) ([#11021](https://github.com/nextcloud/mail/issues/11021)) ([c9f315b](https://github.com/nextcloud/mail/commit/c9f315ba6073d98b57893d0f91a1296b118569a1))\n* **deps:** bump @iframe-resizer/parent from 5.4.5 to ^5.4.6 (main) ([#11045](https://github.com/nextcloud/mail/issues/11045)) ([6d3e064](https://github.com/nextcloud/mail/commit/6d3e06430f71f097670a611402d398797f36e960))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 (main) ([#11138](https://github.com/nextcloud/mail/issues/11138)) ([3377509](https://github.com/nextcloud/mail/commit/33775097ecf80c2ae0ef3eee89c209a24077b9d6))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.2.0 ([4fff529](https://github.com/nextcloud/mail/commit/4fff529156ca9c8892bb3c7dc93b230d07b92927))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 (main) ([#11098](https://github.com/nextcloud/mail/issues/11098)) ([2df3423](https://github.com/nextcloud/mail/commit/2df3423153dc8aad40dfc9a54227f049711f58a9))\n* **deps:** bump @nextcloud/vue from 8.23.1 to ^8.25.1 ([3d96e54](https://github.com/nextcloud/mail/commit/3d96e54a032a4e089aa70bdccad002246450aab9))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([986ca1c](https://github.com/nextcloud/mail/commit/986ca1c273427030d1c90b020b28d72a6bd77aaf))\n* **deps:** bump @nextcloud/vue from 8.26.0 to ^8.26.1 ([d66a6b0](https://github.com/nextcloud/mail/commit/d66a6b09eb906f7e7939fad6e089e7c3872e0db4))\n* **deps:** bump bytestream/horde-imap-client from 2.33.5 to ^2.33.6 (main) ([#11099](https://github.com/nextcloud/mail/issues/11099)) ([ebdb084](https://github.com/nextcloud/mail/commit/ebdb084abfb774d7f18554091c659585cf6b369d))\n* **deps:** bump calendar-js and timezones ([e8a79d7](https://github.com/nextcloud/mail/commit/e8a79d7b5cbf888fd242aac68468c930af382a9e))\n* **deps:** bump core-js from 3.41.0 to ^3.42.0 (main) ([#11092](https://github.com/nextcloud/mail/issues/11092)) ([c0c4beb](https://github.com/nextcloud/mail/commit/c0c4bebfc0fca4153023e639d6d49ae794c2745d))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.5 (main) ([#11005](https://github.com/nextcloud/mail/issues/11005)) ([6a72602](https://github.com/nextcloud/mail/commit/6a726028d9cc8412d4e969c1e12fbced0ab7a1f6))\n* **deps:** bump iframe-resizer from 5.3.3 to ^5.4.6 (main) ([#11093](https://github.com/nextcloud/mail/issues/11093)) ([e4f36be](https://github.com/nextcloud/mail/commit/e4f36be14c6b9d51a84f85c05ee949cf59d21abd))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.1 to ^6.4.0 (main) ([#11106](https://github.com/nextcloud/mail/issues/11106)) ([aaae668](https://github.com/nextcloud/mail/commit/aaae668160421df359e699641e9f7081b8a73483))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to v2 ([e716eea](https://github.com/nextcloud/mail/commit/e716eeaa04ef5618b824117e54a92b4b6e6207f8))\n* **deps:** bump stylelint from 16.16.0 to ^16.19.1 (main) ([#11102](https://github.com/nextcloud/mail/issues/11102)) ([eec3762](https://github.com/nextcloud/mail/commit/eec376250ee2b1a4042cb2268ae0005928b0a504))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 44.2.1 to 44.2.1 ([1684833](https://github.com/nextcloud/mail/commit/16848331e0896068e6858a863ffa77171e4edbe2))\n* **deps:** update ckeditor dev utils to 44 ([22a8e56](https://github.com/nextcloud/mail/commit/22a8e56dd32edb7bf973a4b91c300e33229c9c41))\n* **deps:** update vulnerable babel packages ([4c9d2c1](https://github.com/nextcloud/mail/commit/4c9d2c1de566ec41f38c71aef6c800223e48e994))\n* **dns:** Update public suffix list ([19806ea](https://github.com/nextcloud/mail/commit/19806ea55be671cad2f5050f804e3be7e651ce97))\n* **dns:** Update public suffix list ([495a20c](https://github.com/nextcloud/mail/commit/495a20cb6440b425cfcff96449ec20f5a0a7e51a))\n* **dns:** Update public suffix list ([228c719](https://github.com/nextcloud/mail/commit/228c71973ea28c614e5e8835b0426365fe031a7a))\n* don't show important or unread emails in trash ([ce2f949](https://github.com/nextcloud/mail/commit/ce2f9497f9a76c27d550a9bb9177eb4067a5eee9))\n* handle recurring events and show better message to user ([a7dce92](https://github.com/nextcloud/mail/commit/a7dce926c8a649b7c980394b29b52315a96d0c65))\n* **imap:** handle password decryption exception ([033433b](https://github.com/nextcloud/mail/commit/033433bc497ef14f33417ddbee93e6252578032a))\n* **imip:** use default calendar if possible ([3cdd8d3](https://github.com/nextcloud/mail/commit/3cdd8d3fcf92d0764f4c94c6014348aa0cf160dc))\n* **l10n:** Update translations from Transifex ([452383d](https://github.com/nextcloud/mail/commit/452383da63f708a1579fc691e4b891c14df9792a))\n* **l10n:** Update translations from Transifex ([df74690](https://github.com/nextcloud/mail/commit/df746905e779c8875c00ad5b929310e5333717be))\n* **l10n:** Update translations from Transifex ([6fbdad0](https://github.com/nextcloud/mail/commit/6fbdad0de9ec3c5175492a27d6f759f51aedd4a6))\n* **l10n:** Update translations from Transifex ([e8d3dbf](https://github.com/nextcloud/mail/commit/e8d3dbf6e5aba9be730f8fccd97bae7bb91de959))\n* **l10n:** Update translations from Transifex ([ccc4223](https://github.com/nextcloud/mail/commit/ccc422353ca91583ff63470f13c0c6c0993ef403))\n* **l10n:** Update translations from Transifex ([a51a5e0](https://github.com/nextcloud/mail/commit/a51a5e0fa825e5dcae81f92a08ce7dfef053c413))\n* **l10n:** Update translations from Transifex ([3de2615](https://github.com/nextcloud/mail/commit/3de2615c20d7e541b5706c2d5e221a09a4b6badf))\n* **l10n:** Update translations from Transifex ([a74e4d9](https://github.com/nextcloud/mail/commit/a74e4d93b0c9e4934eb12565133faf905df0e570))\n* **l10n:** Update translations from Transifex ([6c19578](https://github.com/nextcloud/mail/commit/6c195780892e916c360a07fd191ad1196e4878bf))\n* **l10n:** Update translations from Transifex ([0874560](https://github.com/nextcloud/mail/commit/08745605bbaa978259473cdccc5d3769d760b341))\n* **l10n:** Update translations from Transifex ([7bbcb29](https://github.com/nextcloud/mail/commit/7bbcb294612776ee56f685335b2376f0f682bc20))\n* **l10n:** Update translations from Transifex ([bae559f](https://github.com/nextcloud/mail/commit/bae559f86be5e14a01803ab14fd4e3d8620bb93c))\n* **l10n:** Update translations from Transifex ([20710d4](https://github.com/nextcloud/mail/commit/20710d41abedcf8a3a3fc0e05fd1a1fcfd1cb3a1))\n* **l10n:** Update translations from Transifex ([df20def](https://github.com/nextcloud/mail/commit/df20def233fe29f47a2a9f1a190a56a047ac88be))\n* **l10n:** Update translations from Transifex ([d07aed4](https://github.com/nextcloud/mail/commit/d07aed4ef3323e63d52b38eeb8caa429998d6ca1))\n* **l10n:** Update translations from Transifex ([ecbb3da](https://github.com/nextcloud/mail/commit/ecbb3dadf5ec8618e5dd539b2c229611c6a87a7f))\n* **l10n:** Update translations from Transifex ([cfce105](https://github.com/nextcloud/mail/commit/cfce1058c549eacb5b88f2baaaadc8dd37c8c35a))\n* **l10n:** Update translations from Transifex ([82fabe2](https://github.com/nextcloud/mail/commit/82fabe2fb5b1df86e12f9b7ac5c7b5df8a421fe0))\n* **l10n:** Update translations from Transifex ([a445ac0](https://github.com/nextcloud/mail/commit/a445ac09c8bdf5ae58e8a3ee9f6a4eb07b923159))\n* **l10n:** Update translations from Transifex ([c96ec6e](https://github.com/nextcloud/mail/commit/c96ec6e3fd719734c51430a42a680dbb7dc1b279))\n* **l10n:** Update translations from Transifex ([c59cf84](https://github.com/nextcloud/mail/commit/c59cf8449f9cef249443fcc911acb531bb386f0f))\n* **l10n:** Update translations from Transifex ([49fbc16](https://github.com/nextcloud/mail/commit/49fbc16089325d4a549a4a20e7c6f9a98c5dc1e4))\n* **l10n:** Update translations from Transifex ([a59c212](https://github.com/nextcloud/mail/commit/a59c212ebf9905bc10b12f706e1d096cc080e18d))\n* **l10n:** Update translations from Transifex ([fece38e](https://github.com/nextcloud/mail/commit/fece38e43091817273dbdfcfb75214e005fbed3f))\n* **l10n:** Update translations from Transifex ([abf1c6b](https://github.com/nextcloud/mail/commit/abf1c6b2b30939dc2ea742ae81653e537c336485))\n* **l10n:** Update translations from Transifex ([4a35bdd](https://github.com/nextcloud/mail/commit/4a35bdd379f1459228a47611ea0e03a37d28f41d))\n* **l10n:** Update translations from Transifex ([8a205d0](https://github.com/nextcloud/mail/commit/8a205d087885f74f7af092bf45d6e2d2d9ddc669))\n* **l10n:** Update translations from Transifex ([39faeeb](https://github.com/nextcloud/mail/commit/39faeebe71789e0c7babe62cad072d439e6e1622))\n* **l10n:** Update translations from Transifex ([835327e](https://github.com/nextcloud/mail/commit/835327eaa4b4fa33a060fcb8a2e760f36c7e0335))\n* mark envelope as unseen via shortcut ([35f1d1d](https://github.com/nextcloud/mail/commit/35f1d1dacada93a1198b82b3e32128467cfa45d2))\n* **mime:** ignore HTML parsing errors consistently ([0b682eb](https://github.com/nextcloud/mail/commit/0b682eb1ee1d5b61d818f478c4e457dd5391c3f7))\n* moving nested mailboxes ([41f3378](https://github.com/nextcloud/mail/commit/41f3378cbc6c2f10a6716e8d8f75eee2f3a5a878))\n* patchAccountiMutation is not defined ([a33f3b7](https://github.com/nextcloud/mail/commit/a33f3b7bdb085f0c9d8f14a1afcad7bead4858fa))\n* **phishing:** strip exactly 1 character from the end of a link string to remove brackets ([c646917](https://github.com/nextcloud/mail/commit/c64691795b497a1ab0961d4c7e9830153be43b2a))\n* prevent dragging mailboxes ([7b69ed3](https://github.com/nextcloud/mail/commit/7b69ed338b500233eb7f830a972b964c774977f0))\n* preview enhancement process job does not process messages ([680b90d](https://github.com/nextcloud/mail/commit/680b90dc7d5c7843f2755a9e60722eecc042f46d))\n* show submailboxes for filtering ([4874ee4](https://github.com/nextcloud/mail/commit/4874ee4bf7f3192e7dc98ee9165773d74e894c32))\n* show warning when creating a mailbox fails ([ecc47e0](https://github.com/nextcloud/mail/commit/ecc47e05331204f07e6ed8d4dc62eca1c55e6922))\n* **smime:** handle encoding properly when signing and encrypting ([f12ffe5](https://github.com/nextcloud/mail/commit/f12ffe50a6ebae6501d9aa798fb3959884693755))\n* **smime:** use proper binary encoding when signing messages ([646bdae](https://github.com/nextcloud/mail/commit/646bdae4ae7373783069eb6d83fa2c73d22f9ea5))\n* **ui:** handle error when saving email attachments to Files ([e4a625c](https://github.com/nextcloud/mail/commit/e4a625c459757f9622e0e31ab369ec10732f545d))\n* Undefined array key issue ([00e65cf](https://github.com/nextcloud/mail/commit/00e65cf8d8c167693662d3c7a9774988ae8f6cfe))\n* use alias name for from header ([c7a1724](https://github.com/nextcloud/mail/commit/c7a17248fd33d21cb745eda46b400faa24be2cb6))\n\n\n### Features\n\n* close modal on send ([073038d](https://github.com/nextcloud/mail/commit/073038dd4bb79c654e64167bd93416af908b4337))\n* enable account debugging for sieve ([3a9385e](https://github.com/nextcloud/mail/commit/3a9385e058d614e59dd56cb1dfdae64a7fac412c))\n* per account imap and smtp debugging ([95a96c5](https://github.com/nextcloud/mail/commit/95a96c51ea77244bb9a946a9a91a554e4907ac8f))\n\n\n### Performance Improvements\n\n* don't show skeleton for cached mailboxes ([d5b5ae5](https://github.com/nextcloud/mail/commit/d5b5ae5eb0b05b41be6656edebc9707b616d5974))\n* **imap:** avoid double login during mailbox sync ([221404a](https://github.com/nextcloud/mail/commit/221404a4108f09d3314535e3dcab80d046a01d7d))\n* reuse a single imap client for the whole send chain ([01ea8be](https://github.com/nextcloud/mail/commit/01ea8bed7188145b713dbab198fc974f8f20876b))\n* skip message skeleton if it is cached ([cd2603d](https://github.com/nextcloud/mail/commit/cd2603d7610c883785acca620fde2703668b0c8d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* **db:** Do not JOIN recipients when fetching the latest messages ([b6e5255](https://github.com/nextcloud/mail/commit/b6e52559fa1fec5eee700cd4a53d57f7390f1538))\n* **deps:** bump @iframe-resizer/child from 5.3.3 to ^5.4.2 (main) ([#10955](https://github.com/nextcloud/mail/issues/10955)) ([187a963](https://github.com/nextcloud/mail/commit/187a963720946c3ddfd734507efd1f9601c216c4))\n* **deps:** bump @iframe-resizer/parent from 5.3.3 to ^5.4.3 (main) ([#10956](https://github.com/nextcloud/mail/issues/10956)) ([b9a7373](https://github.com/nextcloud/mail/commit/b9a73732f10d9bf883c006b00a9fc6c55c0b5780))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 (main) ([#10926](https://github.com/nextcloud/mail/issues/10926)) ([9d384ce](https://github.com/nextcloud/mail/commit/9d384ce3b9e665b1b9e3f0c4167758ed955c5905))\n* **deps:** bump sabberworm/php-css-parser from 8.7.0 to ^8.8.0 (main) ([#10927](https://github.com/nextcloud/mail/issues/10927)) ([998aad8](https://github.com/nextcloud/mail/commit/998aad8167e5eeeb0f8bbaab8379d2a2318f9156))\n* **dns:** Update public suffix list ([0d2f328](https://github.com/nextcloud/mail/commit/0d2f32877025dd52b16aa06e99f4494c90ce7d89))\n* dont summerize empty messages ([24f44f4](https://github.com/nextcloud/mail/commit/24f44f48a8e0af3a26ad90cd038901da0ca8b9da))\n* **imap:** Avoid OOM when syncing sparse mailboxes ([4d288d1](https://github.com/nextcloud/mail/commit/4d288d1096bc8cec4ff2cde38735d09b6eab922c))\n* multiselect when you hold shift ([1e40683](https://github.com/nextcloud/mail/commit/1e40683ec09b02b0269d73fe2d0236691335b8cf))\n* printing email threads and singular emails ([3b22ed5](https://github.com/nextcloud/mail/commit/3b22ed5752c0065c50643eb8591661f41b06df65))\n* translation strings in printing feature ([#10944](https://github.com/nextcloud/mail/issues/10944)) ([b293310](https://github.com/nextcloud/mail/commit/b29331032977013e62cae510d531338922703037))\n\n\n### Features\n\n* **deps:** Add PHP8.4 support ([9ce0e6d](https://github.com/nextcloud/mail/commit/9ce0e6d5923ebbcf7dac6f2423d18f172b0d6bb8))\n* **deps:** Add PHP8.4 support ([eb75307](https://github.com/nextcloud/mail/commit/eb753074fa5e6b8efd2bac2366fc3336e597984d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* add title for composer actions ([d8095ff](https://github.com/nextcloud/mail/commit/d8095ffbc1f4f9987a939b51001b53a0777e3cd7))\n* Adjust TaskProcessingListener ([4ee353b](https://github.com/nextcloud/mail/commit/4ee353bea1476e2f9aeaacd5746dd7529efc0ca5))\n* Adjust TaskProcessingListener Again ([f0758c8](https://github.com/nextcloud/mail/commit/f0758c8ee6c9c9813abcc8eb54f6d912063da868))\n* allow to send attachment without setting disposition ([5fe5275](https://github.com/nextcloud/mail/commit/5fe5275c8b8b5ea648b39e346b0e1b88693e814b))\n* apostrophe issue ([032a0bf](https://github.com/nextcloud/mail/commit/032a0bf02617df793542156a0c1ded805b61d08b))\n* better help text when sieve is not enabled ([a7177b3](https://github.com/nextcloud/mail/commit/a7177b32fa882dcea0bb3ac2f015cfc8d8594073))\n* change status code from 404 to 204 for missing avatars ([92bf4ef](https://github.com/nextcloud/mail/commit/92bf4ef422c3d4fcdde0e3538dd81e020b008346))\n* **CKEditor:** show mentions ([974e964](https://github.com/nextcloud/mail/commit/974e96437796c6ba9f1c5c40886a2357f2b39f96))\n* **db:** Allow long references ([3814786](https://github.com/nextcloud/mail/commit/38147868b63719c666ba6dea05b9f55deef91c46))\n* **db:** Catch message IDs that are too long ([147d694](https://github.com/nextcloud/mail/commit/147d69436a56ee645880575cbaf0a458096d038c))\n* decoding preview texts ([945b4a2](https://github.com/nextcloud/mail/commit/945b4a2b3156ce13b4dc8c7fd4f86a121146a6c1))\n* deprecation warning ([9e6fd29](https://github.com/nextcloud/mail/commit/9e6fd2931d9c77e62658f2e491d963f663cfc622))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 (main) ([#10789](https://github.com/nextcloud/mail/issues/10789)) ([93f5fa1](https://github.com/nextcloud/mail/commit/93f5fa11823140870f6ce6b472d158a9b9628124))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.2 (main) ([#10595](https://github.com/nextcloud/mail/issues/10595)) ([77cf0ed](https://github.com/nextcloud/mail/commit/77cf0ed65e1f9b8b350b0ea06bbf1b57e690b897))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([7ab0d99](https://github.com/nextcloud/mail/commit/7ab0d996aee86ebb342cc0d32913191d59b11095))\n* **deps:** bump @pinia/testing from 0.1.7 to ^0.1.7 ([354d684](https://github.com/nextcloud/mail/commit/354d684e2ae3411b577178c613ce3a7d6fe7e3ef))\n* **deps:** bump address-rfc2822 from 2.2.2 to ^2.2.3 (main) ([#10597](https://github.com/nextcloud/mail/issues/10597)) ([d2d654d](https://github.com/nextcloud/mail/commit/d2d654d6dd18333610a3ba5e5f8df29d23c441e0))\n* **deps:** bump bytestream/horde-imap-client from 2.33.3 to ^2.33.4 (main) ([#10598](https://github.com/nextcloud/mail/issues/10598)) ([54150fd](https://github.com/nextcloud/mail/commit/54150fd0df374a258c19b0193781f48e82bd056c))\n* **deps:** bump bytestream/horde-imap-client from 2.33.4 to ^2.33.5 (main) ([#10828](https://github.com/nextcloud/mail/issues/10828)) ([984b3bf](https://github.com/nextcloud/mail/commit/984b3bf6d8e139f106c51840ab5489714ddf7a81))\n* **deps:** Bump ckeditor from 38.1.1 t0 39.0.2 ([0aee4df](https://github.com/nextcloud/mail/commit/0aee4dfd312620a3a197fa0787379f4cfb4031dc))\n* **deps:** bump ckeditor from v40 to v41 ([f7dac82](https://github.com/nextcloud/mail/commit/f7dac82d0dd6631d1f7f1ddabac0371e6a686b5a))\n* **deps:** bump ckeditor v41 to v43 ([5482184](https://github.com/nextcloud/mail/commit/5482184cd6c77060c19dcfdf1b49134f53fabf7b))\n* **deps:** bump ckeditor v43 to latest ([89d5a21](https://github.com/nextcloud/mail/commit/89d5a210ccdbe07dde8547cc766d5be42ae4547f))\n* **deps:** bump core-js from 3.39.0 to ^3.40.0 (main) ([#10623](https://github.com/nextcloud/mail/issues/10623)) ([f8d8b04](https://github.com/nextcloud/mail/commit/f8d8b040b0bc70ed6c7e369fb6cb5d329ab20b28))\n* **deps:** bump core-js from 3.40.0 to ^3.41.0 (main) ([#10819](https://github.com/nextcloud/mail/issues/10819)) ([e6bafb3](https://github.com/nextcloud/mail/commit/e6bafb371adac9e48f5443a812a91859b1125f99))\n* **deps:** bump dompurify from 3.2.3 to ^3.2.3 (main) ([#10618](https://github.com/nextcloud/mail/issues/10618)) ([7f28b26](https://github.com/nextcloud/mail/commit/7f28b267f5727e92a754eeadec5302bca3a413b0))\n* **deps:** bump dompurify from 3.2.3 to v3.2.4 (main) ([#10702](https://github.com/nextcloud/mail/issues/10702)) ([26f784f](https://github.com/nextcloud/mail/commit/26f784ff20ae107cdc5a29a310314ea4b2e96455))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.4 (main) ([#10790](https://github.com/nextcloud/mail/issues/10790)) ([58d636c](https://github.com/nextcloud/mail/commit/58d636c26f40ae77bf2bd99276dfd0167448199a))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 (main) ([#10619](https://github.com/nextcloud/mail/issues/10619)) ([18c6354](https://github.com/nextcloud/mail/commit/18c6354b9214d9e74c028d911231c8ffac78ae85))\n* **deps:** bump psr/log from 3.0.2 to ^3.0.2 (main) ([#10806](https://github.com/nextcloud/mail/issues/10806)) ([629cb59](https://github.com/nextcloud/mail/commit/629cb59f7204d21c3f6c1bcca139f844916695be))\n* **deps:** bump stylelint from 16.11.0 to ^16.15.0 (main) ([#10820](https://github.com/nextcloud/mail/issues/10820)) ([e8371d3](https://github.com/nextcloud/mail/commit/e8371d3faa11966de99e3d0fb61096473163a72b))\n* **deps:** bump stylelint from 16.15.0 to ^16.16.0 (main) ([#10908](https://github.com/nextcloud/mail/issues/10908)) ([9d66ff5](https://github.com/nextcloud/mail/commit/9d66ff53cd49521768f52e64545575188027b414))\n* **deps:** Do not ship psr/log ([2f8f9bd](https://github.com/nextcloud/mail/commit/2f8f9bdbd9ec6c40fd8fe26e340da9279d74097f))\n* detect imip messages from outlook.com ([b965355](https://github.com/nextcloud/mail/commit/b96535569a5ffdf59292f8032896f4e5e5662f4c))\n* **dns:** Update public suffix list ([76cc21f](https://github.com/nextcloud/mail/commit/76cc21f94b2af56064341774f2612325dd171647))\n* **dns:** Update public suffix list ([692512b](https://github.com/nextcloud/mail/commit/692512bf8f0994985c552c70e254dd301f947411))\n* **dns:** Update public suffix list ([e981844](https://github.com/nextcloud/mail/commit/e981844ec685867fccb35fe2075e9794c40a9d67))\n* go back warining discards the reply text ([72d6a53](https://github.com/nextcloud/mail/commit/72d6a532be1dd2852612a194801f2654257206de))\n* handle 204 response ([0014941](https://github.com/nextcloud/mail/commit/0014941d48c199ced1d23bdca05fb09af4c6e572))\n* handle utf-8 strings correctly in the link detection ([d219cee](https://github.com/nextcloud/mail/commit/d219cee47b6619e27300b8ce3238b834ea946e3b))\n* harden phishing detection against missing and malformed headers ([f8338e6](https://github.com/nextcloud/mail/commit/f8338e6fa6520b5d13823af38c0be704d141627c))\n* html5 errors ([fb4fae1](https://github.com/nextcloud/mail/commit/fb4fae1863ccea0aec70bd187748b02710f4bac0))\n* **imap:** Sync mailboxes without a status ([2317686](https://github.com/nextcloud/mail/commit/2317686c91a4ec85d7e7b63914b89934cb176bf3))\n* import for getTimezoneManager ([18589f7](https://github.com/nextcloud/mail/commit/18589f703ca24cbbd39d14abe972805b7d73bb1f))\n* **mention:** Do not force SAB ([bad5a00](https://github.com/nextcloud/mail/commit/bad5a00ac570ec6af41bf531acf8a78adf96ede9))\n* **message-summary:** respect admin config ([a7434c4](https://github.com/nextcloud/mail/commit/a7434c40ec59ef928c5baaebdd77cd51bcad0b6a))\n* messagen content escaping message element ([8089ccb](https://github.com/nextcloud/mail/commit/8089ccb0f3915d57520458ecf0ce8729341cfbd4))\n* migrate preferences to initial state ([0cfce5c](https://github.com/nextcloud/mail/commit/0cfce5ce991eb830d3953d870b957ac616d012cb))\n* **migration:** make misc migrations idempotent ([d856a60](https://github.com/nextcloud/mail/commit/d856a6005c453e2cd91666941897aed3ca9cbf33))\n* outbox message not being cleared after sending ([93a5c5a](https://github.com/nextcloud/mail/commit/93a5c5a1f7b5aa32a7269ff5f4a83fd0c5aa6ea2))\n* **phishing:** Do not force the SAB ([78c2c4c](https://github.com/nextcloud/mail/commit/78c2c4cdcc08e1440a8c1b5e1073f99037ef2b4b))\n* **phishing:** Uninitialized string offset error ([fdbbc62](https://github.com/nextcloud/mail/commit/fdbbc623637f94a326f1b90166f54be8d176d792))\n* recipient label should not contain email address ([3a0ab5a](https://github.com/nextcloud/mail/commit/3a0ab5a1f131a4ae039dd43da84793f8edfff9b1))\n* reloading recipeint info when you expand and collapse the composer ([9b213ec](https://github.com/nextcloud/mail/commit/9b213ecb7a85ec22856faf345bbd582bca43c5e3))\n* remove photo property from groups integration ([66ddbd3](https://github.com/nextcloud/mail/commit/66ddbd32d9deb88d46f8e7afbd9949107ed74f06))\n* reset filter does not work ([f0e847b](https://github.com/nextcloud/mail/commit/f0e847bb47d993ce1c7cfa2b00898da14aac36fb))\n* shorten ai summaries to fit in message list better ([b28777c](https://github.com/nextcloud/mail/commit/b28777c4d49abbcec62e8a5b4fbe0c2170c51e8c))\n* show the email address as subname ([0b50b3a](https://github.com/nextcloud/mail/commit/0b50b3abde5f600e905d9386c4a1b4c091e95409))\n* **summarizeMessages:** use TextToText ([40ab10f](https://github.com/nextcloud/mail/commit/40ab10fc71eeadc30f0c3d2fcc3f6fd18d9551d9))\n* **Thread:** add error message for emails not able to be opened ([691c33e](https://github.com/nextcloud/mail/commit/691c33e687fced93cda00dc926c2dbb316385990))\n* throwing errors in ai intergration frontend service ([d8e074c](https://github.com/nextcloud/mail/commit/d8e074c75a43f41867a9ed4595a59883a60a7ff8))\n* user must scroll to view most recent message in thread ([23a544b](https://github.com/nextcloud/mail/commit/23a544bc60c4d020a783ea303f0703985e913414))\n\n\n### Features\n\n* add warning when the message has no subject ([7eea2ac](https://github.com/nextcloud/mail/commit/7eea2ac3fce6da478dceef706148ce361dd0724c))\n* check connection performance of mail service ([800e964](https://github.com/nextcloud/mail/commit/800e964c110e38411c1d7478f43abec2b54934c6))\n* **deps:** Add Nextcloud 32 support ([2c026a0](https://github.com/nextcloud/mail/commit/2c026a0af96e9645198caa356b790926becfffb2))\n* **ocs:** list accounts and aliases of current user ([8122306](https://github.com/nextcloud/mail/commit/812230641b07d8de68985e222a7c0e2e6b726c7d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n* setup check for mail transport php-mail ([d24a009](https://github.com/nextcloud/mail/commit/d24a0090a3571961b2029a99508c13c3980afae1))\n\n\n\n# [4.2.0-beta3](https://github.com/nextcloud/mail/compare/v4.2.0-beta1...v4.2.0-beta3) (2025-01-16)\n\n\n### Bug Fixes\n\n* add ability to send alternate text (html and plain) ([3165f07](https://github.com/nextcloud/mail/commit/3165f07ffbb8fcd7f1d6feeacede0530641ce6b0))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.1 (main) ([#10566](https://github.com/nextcloud/mail/issues/10566)) ([44b0c76](https://github.com/nextcloud/mail/commit/44b0c765bd5678d71d22aa5ee4b7f7c4d78fc5bc))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([280b73b](https://github.com/nextcloud/mail/commit/280b73bedd386092b09743067925506d06e3b5e1))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([b72df2e](https://github.com/nextcloud/mail/commit/b72df2ec322eca7dbd58676be2c5b32035ab0b0d))\n* **dns:** Update public suffix list ([63f9e66](https://github.com/nextcloud/mail/commit/63f9e66a9878f28ed337e04a64aae12bbc68c782))\n* **translationService:** correct API reading ([19baf3e](https://github.com/nextcloud/mail/commit/19baf3e8b6191a4d39e1cf21f79c8718a5a025c9))\n\n\n\n# [4.2.0-beta1](https://github.com/nextcloud/mail/compare/v4.2.0-alpha2...v4.2.0-beta1) (2025-01-14)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([879476b](https://github.com/nextcloud/mail/commit/879476b228b6ca8830e4715f7afd04a294cf7006))\n* **deps:** Apply npm audit fix ([f4eaffb](https://github.com/nextcloud/mail/commit/f4eaffbfde5ebfe6724cfe8498cb157de126ce41))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.22.0 ([1c577e4](https://github.com/nextcloud/mail/commit/1c577e48eacc2206ea8cee427b9336fe2ea4e1b2))\n* empty content position ([bd9de95](https://github.com/nextcloud/mail/commit/bd9de953253505de1a13ec4493f7211752e98dc4))\n* Restrict allowed JSON response HTTP codes ([5620710](https://github.com/nextcloud/mail/commit/56207107a75947be74188779c1f6bd0bbd5958d9))\n\n\n### Features\n\n* Add translation capabilities to mail ([638ecc5](https://github.com/nextcloud/mail/commit/638ecc5df4a7d63a7b76e0abd1721a895bd80146))\n\n\n### Performance Improvements\n\n* **ui:** Load avatar URLs with low priority ([23551cf](https://github.com/nextcloud/mail/commit/23551cf8a8bd9a4986987c13e4903793bb63e2b7))\n\n\n\n# [4.2.0-alpha1](https://github.com/nextcloud/mail/compare/v4.0.0-beta2...v4.2.0-alpha1) (2025-01-03)\n\n\n### Bug Fixes\n\n* accept avatars with image/vnd.microsoft.icon mime types ([d6cf286](https://github.com/nextcloud/mail/commit/d6cf286531011d087344e5586c52be98a575fd73))\n* **AccountForm:** RTL support ([c4dd175](https://github.com/nextcloud/mail/commit/c4dd175f77cdaa6c276d1a67badceb4f1698ed38))\n* add null check for sender in imipservice ([2885f62](https://github.com/nextcloud/mail/commit/2885f62f36773d090d839368cc1ed28a92c122e7))\n* **avatar:** Use Nextcloud HTTP client for favicons ([eee2d6a](https://github.com/nextcloud/mail/commit/eee2d6a23bc65a8d687c8eb5eba8f59688492fb9))\n* Center envelope header avatar ([1324d1e](https://github.com/nextcloud/mail/commit/1324d1e98fbd1d3e697f511fc027dc4631f96301))\n* CKEditor translations ([22415b0](https://github.com/nextcloud/mail/commit/22415b020db15084db5c6f51c72e0e617f851e5f))\n* **Composer:** rtl support ([e16a6e1](https://github.com/nextcloud/mail/commit/e16a6e11749db28db11f4e04237adabea951891f))\n* **contactsintegration:** Limit number of matches ([ada36b8](https://github.com/nextcloud/mail/commit/ada36b8e804e51d39ff439965e579f949c4f6fd8))\n* **contactsintegration:** Limit number of search results ([b02921e](https://github.com/nextcloud/mail/commit/b02921e5ec724cb3de0b50e520ca780be703c42e))\n* create mailbox doesnt reset after saving ([e7da6c7](https://github.com/nextcloud/mail/commit/e7da6c7f9ff3b6f7cc89531e1595e7ebfdb91481))\n* **deps:** Apply npm audit fix ([91bbac9](https://github.com/nextcloud/mail/commit/91bbac944db78776bc98b2b28c8b35fb0e382b00))\n* **deps:** Apply npm audit fix ([a77c8e0](https://github.com/nextcloud/mail/commit/a77c8e0a7ee25c64e97ae71383472a757476ad14))\n* **deps:** Apply npm audit fix ([40c782b](https://github.com/nextcloud/mail/commit/40c782bf3114e4e3f4ca0b0ddce766ff90aebc9a))\n* **deps:** Apply npm audit fix ([dcd3c37](https://github.com/nextcloud/mail/commit/dcd3c3725e01c1353a4e8c31f4bd2410ab3452d5))\n* **deps:** Apply npm audit fix ([1c67e7d](https://github.com/nextcloud/mail/commit/1c67e7d93387089666bdc4cbc98ec5f391a12925))\n* **deps:** Apply npm audit fix ([84a6de9](https://github.com/nextcloud/mail/commit/84a6de9472a62db5200fb5e46c337a8a29840f87))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([8a8f6d4](https://github.com/nextcloud/mail/commit/8a8f6d4b9e55798caa9d44f497c231ba6b3afa04))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 (main) ([#10212](https://github.com/nextcloud/mail/issues/10212)) ([cfbda53](https://github.com/nextcloud/mail/commit/cfbda53f7c71dd799c5e0bae8ff654d181278e95))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 (main) ([#10265](https://github.com/nextcloud/mail/issues/10265)) ([e3ad554](https://github.com/nextcloud/mail/commit/e3ad55408648f12843a44098363d28205020c156))\n* **deps:** bump @nextcloud/dialogs from 5.3.6 to ^5.3.7 (main) ([#10061](https://github.com/nextcloud/mail/issues/10061)) ([c1965b1](https://github.com/nextcloud/mail/commit/c1965b19e1b2106221ff19e9fd480183297a9412))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to ^5.3.8 (main) ([#10354](https://github.com/nextcloud/mail/issues/10354)) ([066dda1](https://github.com/nextcloud/mail/commit/066dda15dbe2c50ea25682b860221598ecae6658))\n* **deps:** bump @nextcloud/files from 3.9.0 to ^3.9.0 (main) ([#10213](https://github.com/nextcloud/mail/issues/10213)) ([42816ed](https://github.com/nextcloud/mail/commit/42816ed37c4475856e137c435446cfd3d11a9978))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 (main) ([#10375](https://github.com/nextcloud/mail/issues/10375)) ([30a9617](https://github.com/nextcloud/mail/commit/30a96176b5160e8b00c645bc2ec05f438548c83b))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 (main) ([#10303](https://github.com/nextcloud/mail/issues/10303)) ([a03b721](https://github.com/nextcloud/mail/commit/a03b72138cf7c02b08e4a31771a19da5aa10e4e9))\n* **deps:** bump @nextcloud/vue from 8.16.0 to ^8.17.1 ([397ed27](https://github.com/nextcloud/mail/commit/397ed272d89eb04ec08e2c59476c59e35744fb8a))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([cf62083](https://github.com/nextcloud/mail/commit/cf6208310c94b5171f274a2746b6922044ed28ec))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.20.0 ([b52df89](https://github.com/nextcloud/mail/commit/b52df895ef03086cca566adc042c777e9340d28d))\n* **deps:** bump arthurhoaro/favicon from 2.0.0 to ^2.0.1 (main) ([#10304](https://github.com/nextcloud/mail/issues/10304)) ([a8976cc](https://github.com/nextcloud/mail/commit/a8976cc8f01032c9a8cc2c2c01b613d758794979))\n* **deps:** bump bytestream/horde-imap-client from 2.33.2 to ^2.33.3 (main) ([#10335](https://github.com/nextcloud/mail/issues/10335)) ([9c43e51](https://github.com/nextcloud/mail/commit/9c43e5195f9278fe05513559c3f37cd7229f638b))\n* **deps:** bump bytestream/horde-stream from 1.7.1 to ^1.7.2 (main) ([#10336](https://github.com/nextcloud/mail/issues/10336)) ([72ff480](https://github.com/nextcloud/mail/commit/72ff4801669708fef3d9155e8ed75892cfd9bfdd))\n* **deps:** bump bytestream/horde-util from 2.7.0 to ^2.8.0 (main) ([#10266](https://github.com/nextcloud/mail/issues/10266)) ([dea3c67](https://github.com/nextcloud/mail/commit/dea3c677e130098b7fbb8a90b6ed03d2f822f0a3))\n* **deps:** bump cerdic/css-tidy from 2.1.0 to v2.2.1 (main) ([#10401](https://github.com/nextcloud/mail/issues/10401)) ([6168da8](https://github.com/nextcloud/mail/commit/6168da8c3c2ff64690242a3efdba0e585967214f))\n* **deps:** bump dompurify from 3.1.6 to ^3.1.7 (main) ([#10239](https://github.com/nextcloud/mail/issues/10239)) ([b6f3726](https://github.com/nextcloud/mail/commit/b6f3726157f7e07d4c05c72bbf52af8f68a66c1b))\n* **deps:** bump dompurify from 3.1.7 to ^3.2.1 (main) ([#10402](https://github.com/nextcloud/mail/issues/10402)) ([4ef5e62](https://github.com/nextcloud/mail/commit/4ef5e624374082cb05d8a409227bc366c3b34692))\n* **deps:** bump ezyang/htmlpurifier from 4.17.0 to v4.18.0 (main) ([#10414](https://github.com/nextcloud/mail/issues/10414)) ([d7afc16](https://github.com/nextcloud/mail/commit/d7afc16198b2c61a08b692f302fb9ccc71cd37fe))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.0 to ^6.3.1 (main) ([#10372](https://github.com/nextcloud/mail/issues/10372)) ([5734a9e](https://github.com/nextcloud/mail/commit/5734a9e466852ce8bd0f57bf9d2bedad09e61f96))\n* **deps:** bump nextcloud/openapi-extractor from 1.0.0 to ^1.0.1 (main) ([#10256](https://github.com/nextcloud/mail/issues/10256)) ([2bd6c4f](https://github.com/nextcloud/mail/commit/2bd6c4fa8714059f856e252f300de4142c4f74a4))\n* **deps:** bump pinia from 2.2.0 to ^2.2.3 (main) ([#10028](https://github.com/nextcloud/mail/issues/10028)) ([5f851f1](https://github.com/nextcloud/mail/commit/5f851f1ab0401b1d5904ff976838586684513704))\n* **deps:** bump pinia from 2.2.3 to ^2.2.4 ([0439f04](https://github.com/nextcloud/mail/commit/0439f046eea92be97f67310a33b8dbce45d2d47b))\n* **deps:** bump pinia from 2.2.4 to ^2.2.5 (main) ([#10305](https://github.com/nextcloud/mail/issues/10305)) ([5084d6e](https://github.com/nextcloud/mail/commit/5084d6ef5356e8d13016b20c5ecaf594b269a8b3))\n* **deps:** bump pinia from 2.2.5 to ^2.2.6 (main) ([#10373](https://github.com/nextcloud/mail/issues/10373)) ([828b5cb](https://github.com/nextcloud/mail/commit/828b5cbd960de0d7dbc0a4f8e248a8c0428b3462))\n* **deps:** bump rubix/ml from 2.5.0 to v2.5.1 (main) ([#10096](https://github.com/nextcloud/mail/issues/10096)) ([45dc3f4](https://github.com/nextcloud/mail/commit/45dc3f41c163574584f36166f17ca76a7ae7b926))\n* **deps:** bump rubix/ml from 2.5.1 to v2.5.2 (main) ([#10374](https://github.com/nextcloud/mail/issues/10374)) ([62a0f24](https://github.com/nextcloud/mail/commit/62a0f24a80f9a21e4655e95ce148f76662e75dd4))\n* **deps:** bump sabberworm/php-css-parser from 8.6.0 to ^8.7.0 (main) ([#10306](https://github.com/nextcloud/mail/issues/10306)) ([15b9cba](https://github.com/nextcloud/mail/commit/15b9cbab6f1749fc2b5c00502258259672cddd53))\n* **deps:** bump stylelint from 16.3.1 to ^16.10.0 (main) ([#10284](https://github.com/nextcloud/mail/issues/10284)) ([b895441](https://github.com/nextcloud/mail/commit/b89544189022c8b49b10df3d25a37a44a9fad620))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([371ce44](https://github.com/nextcloud/mail/commit/371ce44ac6e21fe99e64ca740074d76f155249e9))\n* **deps:** bump webdav from 4.11.3 to v4.11.4 (main) ([#10127](https://github.com/nextcloud/mail/issues/10127)) ([129b066](https://github.com/nextcloud/mail/commit/129b066e69852e5d6da294d2e705024d9403a5b6))\n* **deps:** bump webpack from 5.91.0 to v5.94.0 (main) ([#10062](https://github.com/nextcloud/mail/issues/10062)) ([f66b05a](https://github.com/nextcloud/mail/commit/f66b05ac2f9d0c459c904ad32c3b72fc23ddc16e))\n* **dns:** Update public suffix list ([547b906](https://github.com/nextcloud/mail/commit/547b9064c3b65c5a5725a94a618fcd919dc361aa))\n* **dns:** Update public suffix list ([2e7ff02](https://github.com/nextcloud/mail/commit/2e7ff02bff6747d9054743d822b8c5e516123b94))\n* **dns:** Update public suffix list ([939830c](https://github.com/nextcloud/mail/commit/939830ce13842ce4e568b12400697be31429d82a))\n* **dns:** Update public suffix list ([70ecb76](https://github.com/nextcloud/mail/commit/70ecb760ebcc28feac135575cdf6a0afc284dc1c))\n* **dns:** Update public suffix list ([9e14c38](https://github.com/nextcloud/mail/commit/9e14c38d45d880e8f1f9cd186660736235799f49))\n* Encapsulate PGP/MIME encrypted emails ([3f821e3](https://github.com/nextcloud/mail/commit/3f821e38e37cda3c1ae165a141f1b38f62191fbe))\n* **Envelope:** RTL support ([8cd27ad](https://github.com/nextcloud/mail/commit/8cd27ad1ac2e41ef919733ff87a4439f776d7e69))\n* fetch attendance status when calendars are loaded ([44b9a36](https://github.com/nextcloud/mail/commit/44b9a36eea9e4e77dee04883b561804b9ca66016)), closes [/github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue#L49-L50](https://github.com//github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue/issues/L49-L50)\n* fix renaming mailbox hierarchy ([fd6229a](https://github.com/nextcloud/mail/commit/fd6229a8c1291dda099977b2bc98f2ec37e6bd2d))\n* Hand PGP/MIME-encrypted emails to Mailvelope ([971f910](https://github.com/nextcloud/mail/commit/971f9104ebb5a8434756149f317a938070af98bc))\n* hide show links button when not needed ([9351f0f](https://github.com/nextcloud/mail/commit/9351f0fa31cea520be18762beeacf76ace814a46))\n* **iframe:** scroll horizontally in case of overflow ([ee521d4](https://github.com/nextcloud/mail/commit/ee521d46ed0382d27882c302bf208038ffc445fc))\n* **imap:** Consider charset for preview text decoding ([625c579](https://github.com/nextcloud/mail/commit/625c579c82a06f2afaa21e130a4fd9f6c99c20ed))\n* **imap:** do a single full sync when QRESYNC is enabled ([73ceaf3](https://github.com/nextcloud/mail/commit/73ceaf3037d08f496e864183e0898983a9becf91))\n* **imap:** persist vanished messages immediately on EXAMINE commands ([3b577fe](https://github.com/nextcloud/mail/commit/3b577feb4d750fb2811e7488354d0663963c9840))\n* increase default SMTP timeout ([e7e62a3](https://github.com/nextcloud/mail/commit/e7e62a38c8bd15bc52b31a04c6b4595df5ec3cc4))\n* input icons and native datepicker ([db36047](https://github.com/nextcloud/mail/commit/db360471eee40465868be331c00858dfd280e08e))\n* Junk/NotJunk flags ([fb27d1e](https://github.com/nextcloud/mail/commit/fb27d1e9e3d00a0f4463bb08310933740f67e6d6))\n* link checking missing scheme ([9bb48cd](https://github.com/nextcloud/mail/commit/9bb48cda5bb74a1552d615ba57e0a4f29b96224b))\n* mailbox loading icon position ([16e95a1](https://github.com/nextcloud/mail/commit/16e95a13ee02546c329850370aa3e85b75499bbf))\n* **mailto:** Handle BCC recipients only ([970c3ac](https://github.com/nextcloud/mail/commit/970c3ac519c3659174c82ce5c46494b1354f6881))\n* make filter routes available for normal users ([95984e8](https://github.com/nextcloud/mail/commit/95984e88d8f5c87a06eaee93fc2ada63128ebf57))\n* new message button misalignment ([94ba7d3](https://github.com/nextcloud/mail/commit/94ba7d3015415743c9a13d14b7504f4ca0e55112))\n* **notifications:** Notifier::prepare() threw \\InvalidArgumentException which is deprecated ([37a2365](https://github.com/nextcloud/mail/commit/37a2365a9e008c2f838d419ffe0cf57ab70628d4))\n* open search buttons on focus and fix the wraping ([b469ce3](https://github.com/nextcloud/mail/commit/b469ce35206b82ea71d9d5b57a9cf6dedc5cf32b))\n* overlapping text on small screens ([04b8849](https://github.com/nextcloud/mail/commit/04b8849ad9caaf6830c61349098fedcb33f7fa0d))\n* phishing detection fixes ([dba8aff](https://github.com/nextcloud/mail/commit/dba8aff42fa07cea8412975c2b834c0482e2a9c2))\n* phishing warning layout ([2867a68](https://github.com/nextcloud/mail/commit/2867a68dbde60f379a2705c6756a09697924539f))\n* **PhishingDetection:** empty href ([ff608cc](https://github.com/nextcloud/mail/commit/ff608cc973798678e1b94c746958d9f17e22267c))\n* **psrlog:** Make the logger compatible with the upcoming bump to psr/log 3 in server ([0a22b3f](https://github.com/nextcloud/mail/commit/0a22b3f174056c7f2b2ebc3eb3e2acfc484cbe73))\n* **quick-search:** RTL support ([05e9ec7](https://github.com/nextcloud/mail/commit/05e9ec7af1763d3e4ffe505128ed92292e16184f))\n* recipient popover on thread display ([1244a69](https://github.com/nextcloud/mail/commit/1244a691c4c2a49efe833cfef8f54075cd747a4b))\n* **release:** Ignore unnecessary files ([0a66bdc](https://github.com/nextcloud/mail/commit/0a66bdcddf9182f0b8f033a6cf95a9dbfb6fa064))\n* **release:** Specify release committer ([9f4d57a](https://github.com/nextcloud/mail/commit/9f4d57aea1144bb912fddf4eeffabebe13576412))\n* remove depricated multiselect class ([31b11e5](https://github.com/nextcloud/mail/commit/31b11e5afd5c36758e89e7cb163b325cd42e2a53))\n* Replace tune icon with filter icon ([71af3f8](https://github.com/nextcloud/mail/commit/71af3f8fb6be790de082eb29c926f6941381da65))\n* Revive reply to sender only ([90c9298](https://github.com/nextcloud/mail/commit/90c9298550f0830b70daba05b0f334b14ec00d78))\n* **rtl:** phishing warning component ([6516398](https://github.com/nextcloud/mail/commit/6516398e9a2f7d12584cacbe63dea68f4ebc9983))\n* **rtl:** Thread title ([62583f8](https://github.com/nextcloud/mail/commit/62583f8fa1bec2a7b072c8c705880bc8d378b7b2))\n* **rtl:** userBubble rtl support ([e3b6729](https://github.com/nextcloud/mail/commit/e3b6729ae90b4e879a57dc51ceca76521f3c4f20))\n* search modal on small screen ([a3afdd4](https://github.com/nextcloud/mail/commit/a3afdd411c525e41e947ddac86e2146613f5136a))\n* select multiple envelopes by holding shift directly ([80f7153](https://github.com/nextcloud/mail/commit/80f71536fdc7ad33c15585bf218c8aa562be5065))\n* set content type parameters for attachments ([e3524c8](https://github.com/nextcloud/mail/commit/e3524c810ad82d7a5774bcda9ee4259ab8782a0e))\n* thread disappearing after refresh ([fe12a29](https://github.com/nextcloud/mail/commit/fe12a29439c2b3c376819b27d44a034ad8cc2fb6))\n* **threading:** Handle threads with duplicate send times ([341b655](https://github.com/nextcloud/mail/commit/341b655467ac672ec2463769ca3df284801f9a87))\n* **ui:** Add padding to primary evenlope actions ([63f31a2](https://github.com/nextcloud/mail/commit/63f31a2009e3c0a4aef9e56b9a471ddcaf40ea26))\n* **ui:** Remove padding from recipient bubble ([6026b1c](https://github.com/nextcloud/mail/commit/6026b1cc2111858b61077562f8ffe347f13eca8d))\n* **ui:** Restore account quota fetching ([6e58a2d](https://github.com/nextcloud/mail/commit/6e58a2d4d13ba1e500cf1048c9295cfe70baae8d))\n* **ui:** Restore message/thread styling ([1b94a14](https://github.com/nextcloud/mail/commit/1b94a14ce26608456560bec4955a3dc70852255e))\n* use single connection to sync all mailboxes ([57389ba](https://github.com/nextcloud/mail/commit/57389ba85c8842351302a51e963629ed89120d0f))\n* wrong path for itinerary executable ([43ed1ca](https://github.com/nextcloud/mail/commit/43ed1ca4f418806a768ef0df1cb9dc9b32170c36))\n\n\n### Features\n\n* add iMip Request Handling ([e8578ed](https://github.com/nextcloud/mail/commit/e8578edef275e434a2e2318808d0275d25fad378))\n* add mention to mail ([f089fad](https://github.com/nextcloud/mail/commit/f089fad6aa59b5927c9f4a96005a22711ae47c8d))\n* add recipient info on the right side of the composer ([efb0d60](https://github.com/nextcloud/mail/commit/efb0d605f2387ff426686eeb6339e79a3eeec91e))\n* add sieve utils ([9486987](https://github.com/nextcloud/mail/commit/948698742810bc3802340ff94ba55ec28e2583cb))\n* ai message summary ([e9286d2](https://github.com/nextcloud/mail/commit/e9286d20d4803cd1d4a3b7635f9c1dcf6fe4dcec))\n* classify emails by importance based on subjects ([1907ebc](https://github.com/nextcloud/mail/commit/1907ebc860f49de046640e00b523999a15028e66))\n* **deps:** Add Nextcloud 31 support ([bd306d8](https://github.com/nextcloud/mail/commit/bd306d8db5edf661c10b69eaf28ce095634ffab4))\n* fiter messages by mention ([fb946a2](https://github.com/nextcloud/mail/commit/fb946a2da61db01a6ab197d523fa95dd7dc6e57b))\n* implement periodic full sync job to repair cache inconsistencies ([c0bed86](https://github.com/nextcloud/mail/commit/c0bed86544f5a62fc3924839da669cfe5a6251c1))\n* mail filters ([d74c401](https://github.com/nextcloud/mail/commit/d74c401e6653be7d0713cb0c6d2ab358c9cf7516))\n* mail provider backend ([ce653d0](https://github.com/nextcloud/mail/commit/ce653d0f49fddc2afe916e5972e0e4642fed4ef6))\n* make multiselect menu more discoverable ([085af79](https://github.com/nextcloud/mail/commit/085af794d731d8585098e9c1fc620235a3d161f1))\n\n\n### Performance Improvements\n\n* don't loop the users without any provisioning configurations ([b76e68f](https://github.com/nextcloud/mail/commit/b76e68f37352f93dd28bc70c2addf1b9f75ee1af))\n* skip non-writable calendars ([4296585](https://github.com/nextcloud/mail/commit/42965856b0761038f699ea7e3092498336a7e439))\n\n\n### Reverts\n\n* Revert \"fix: CKEditor translations\" ([5a000da](https://github.com/nextcloud/mail/commit/5a000da5fc064bbbf132ad59fd13a2003cba9352))\n* Revert \"perf: bundle with vite\" ([6539d1d](https://github.com/nextcloud/mail/commit/6539d1da520a1531a3febeb27397527db8adb9a1))\n\n\n\n# [4.0.0-beta2](https://github.com/nextcloud/mail/compare/v4.0.0-alpha1...v4.0.0-beta2) (2024-08-27)\n\n\n### Bug Fixes\n\n* **.nextcloudignore:** Exclude php-stemmer tests from package ([aa79c29](https://github.com/nextcloud/mail/commit/aa79c2924e68893d3dbaae9deeb2b6a627d3c0ce)), closes [#9586](https://github.com/nextcloud/mail/issues/9586)\n* account deletion modal design ([091960a](https://github.com/nextcloud/mail/commit/091960ae1049393d7b9e538cf657b1068e4c6243))\n* **AccountForm:** Fix manual mail server buttons ([4d37cdc](https://github.com/nextcloud/mail/commit/4d37cdc0b746a434af41aa1aa999769c1e7f3bb2))\n* add repair job to deleted duplicated cached messages ([22b683c](https://github.com/nextcloud/mail/commit/22b683c0ad1abadef0c7dc267c973caa337b5e03))\n* align reply and attachment icon with subject ([8965b73](https://github.com/nextcloud/mail/commit/8965b739d76a27907b78b3632d3b000fc50fa87e))\n* **autoconfig:** Refactor DNS query for testing ([56faa48](https://github.com/nextcloud/mail/commit/56faa48b26c68d2a93bee0a8befa715047f60d6e))\n* **autoresponder:** enable immediately on an OutOfOfficeStartedEvent ([783263d](https://github.com/nextcloud/mail/commit/783263d2e91016f977db813ac5b5a965c6b88526))\n* background-color of outbox-button ([ca8310b](https://github.com/nextcloud/mail/commit/ca8310b6d1479a3009197b87e73bcb24ff10932a))\n* background-color of outbox-button ([5131682](https://github.com/nextcloud/mail/commit/51316823d2e6bffcf5f4c2b629d6243c9865d942))\n* case insesitive comparison for contact emails ([30d55f7](https://github.com/nextcloud/mail/commit/30d55f79a96519d281badcebd992ce691ad7e16d))\n* change appnavigation to appnavigationcaption for the email account ([4ffc09b](https://github.com/nextcloud/mail/commit/4ffc09b450787c882c9ca341798000e39b751215))\n* change format button icon ([9700cda](https://github.com/nextcloud/mail/commit/9700cda2fafa6bae5170176c01da260653cf5412))\n* Check if mailbox folder is selectable ([be8dcf4](https://github.com/nextcloud/mail/commit/be8dcf48e494c2594ca1a6ce2bdc599b977c3c84))\n* close smtp connection after sending or on error ([8f9a89b](https://github.com/nextcloud/mail/commit/8f9a89bfad9c5dedcb129892ca95bafd2594b0f9))\n* close the ncselect dropdown when clicked somewhere else ([d6daaef](https://github.com/nextcloud/mail/commit/d6daaef63b474fede424188f60ada7f3dad41be8))\n* composer session indicator height ([cd9a9f2](https://github.com/nextcloud/mail/commit/cd9a9f236b05b7b5022cf180b5dd7dee040eb420))\n* **composer:** Adjust expand/collapse cc/bcc icon size ([95803ba](https://github.com/nextcloud/mail/commit/95803ba920e60f87520dbf64f1fec60acf3091bb))\n* **composer:** Prevent leaving the tab with unsaved changes ([e57db7b](https://github.com/nextcloud/mail/commit/e57db7b01bd7b2bfd793ccb58fd464300cf8fd9d))\n* **composer:** Remove to/cc/bcc/subject separators ([a7983c5](https://github.com/nextcloud/mail/commit/a7983c5df04d48da90885e47e874c656169a1baf))\n* **composer:** Revive ckeditor translations ([c14cb78](https://github.com/nextcloud/mail/commit/c14cb784cfc7b3aee1de7ea30a4148652af87052))\n* create tasks from emails ([facc5bd](https://github.com/nextcloud/mail/commit/facc5bd581ebc344d0bb58f2ba6462b49ed16b15))\n* **dashboard:** Fix dashboard icon ([8a2b586](https://github.com/nextcloud/mail/commit/8a2b58615a1a10a123041232e4b9dd2018369bb4))\n* **db:** Delete recipients without sub query ([2545318](https://github.com/nextcloud/mail/commit/2545318697ee34c6a8112eeea7b1580af71e0568))\n* declare all properties in unit tests ([3955d51](https://github.com/nextcloud/mail/commit/3955d514f5b795c86ab1bb2866ba061f9382bc07))\n* Define \"isAddAttachmentsOpen\" ([ac97a28](https://github.com/nextcloud/mail/commit/ac97a284435299d5025d1d39b5151bb273cce27e))\n* **deps:** Apply npm audit fix ([9e53bbb](https://github.com/nextcloud/mail/commit/9e53bbb908da2edcbd39d3ac188794079ae86117))\n* **deps:** Apply npm audit fix ([7c2a1c1](https://github.com/nextcloud/mail/commit/7c2a1c1f7e2c9815eabd8ddb46d19d0c81f6e872))\n* **deps:** Apply npm audit fix ([7278f5b](https://github.com/nextcloud/mail/commit/7278f5b477df2b848d1d04922f357ca24f88552e))\n* **deps:** Apply npm audit fix ([2b0aa94](https://github.com/nextcloud/mail/commit/2b0aa94da03982a33cb0e0e55dccbe7f6d8a7ece))\n* **deps:** Apply npm audit fix ([7bb7859](https://github.com/nextcloud/mail/commit/7bb78591fef8ccb345c18b02838b4ceaba9f83af))\n* **deps:** bump @ckeditor/ckeditor5-editor-decoupled from 37.0.1 to v37.1.0 (main) ([#9480](https://github.com/nextcloud/mail/issues/9480)) ([1a63205](https://github.com/nextcloud/mail/commit/1a632052ff6c545c43274a6a7b4088b80b8b4614))\n* **deps:** bump @nextcloud/auth from 2.2.1 to ^2.3.0 (main) ([#9630](https://github.com/nextcloud/mail/issues/9630)) ([b9cecc4](https://github.com/nextcloud/mail/commit/b9cecc43ce7e0498939342edf183389c55923007))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.0 (main) ([#9631](https://github.com/nextcloud/mail/issues/9631)) ([8edd1d7](https://github.com/nextcloud/mail/commit/8edd1d7367e267e77fd7af4434dec734140b3b67))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 (main) ([#9777](https://github.com/nextcloud/mail/issues/9777)) ([309a4af](https://github.com/nextcloud/mail/commit/309a4aff5af910a4be790cc07459be29d3d995bf))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.0 (main) ([#9873](https://github.com/nextcloud/mail/issues/9873)) ([45de8bf](https://github.com/nextcloud/mail/commit/45de8bf43f4e3e54da1669da41875d653eabe897))\n* **deps:** bump @nextcloud/cdav-library from 1.5.0 to ^1.5.1 (main) ([#9906](https://github.com/nextcloud/mail/issues/9906)) ([97cd5f4](https://github.com/nextcloud/mail/commit/97cd5f49351036e653537d3b53c69ecb620d7db1))\n* **deps:** bump @nextcloud/dialogs from 5.2.0 to ^5.3.0 (main) ([#9572](https://github.com/nextcloud/mail/issues/9572)) ([9da3f56](https://github.com/nextcloud/mail/commit/9da3f5612965f343fcffa60fc592340bad572cde))\n* **deps:** bump @nextcloud/dialogs from 5.3.0 to ^5.3.1 (main) ([#9595](https://github.com/nextcloud/mail/issues/9595)) ([e2ce479](https://github.com/nextcloud/mail/commit/e2ce479480d71a2d6abfadcaa14007098c7e5554))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.3 (main) ([#9732](https://github.com/nextcloud/mail/issues/9732)) ([db4be0e](https://github.com/nextcloud/mail/commit/db4be0e1f7e9797a750b3438ac6011009c761bb7))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 (main) ([#9774](https://github.com/nextcloud/mail/issues/9774)) ([073aa64](https://github.com/nextcloud/mail/commit/073aa6432905fdfaec8657b8a390e3e05c2c4103))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 (main) ([#9821](https://github.com/nextcloud/mail/issues/9821)) ([b4c5e64](https://github.com/nextcloud/mail/commit/b4c5e64cdcb56bc9069ae10e13c43770377bd196))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.6 (main) ([#10027](https://github.com/nextcloud/mail/issues/10027)) ([b46c724](https://github.com/nextcloud/mail/commit/b46c724314a53da60c3454b3579c1fc7e7b89903))\n* **deps:** bump @nextcloud/files from 3.1.0 to ^3.1.1 (main) ([#9499](https://github.com/nextcloud/mail/issues/9499)) ([97fbbe9](https://github.com/nextcloud/mail/commit/97fbbe9c40235e618eea9e9068fd9ec2df19c4d6))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.2.1 (main) ([#9597](https://github.com/nextcloud/mail/issues/9597)) ([44af721](https://github.com/nextcloud/mail/commit/44af72138b06c017d285e25e4781f5e7ed0d5286))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.4.0 (main) ([#9681](https://github.com/nextcloud/mail/issues/9681)) ([b7c8d7b](https://github.com/nextcloud/mail/commit/b7c8d7bb96491a243e36dcfd5ac2aef0e903acf0))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.5.1 (main) ([#9775](https://github.com/nextcloud/mail/issues/9775)) ([56d8a98](https://github.com/nextcloud/mail/commit/56d8a987e82632551408bae217622d7bcc8d2296))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 (main) ([#9907](https://github.com/nextcloud/mail/issues/9907)) ([7b20678](https://github.com/nextcloud/mail/commit/7b206782fe300d120922b131babf390035bacbbb))\n* **deps:** bump @nextcloud/files from 3.6.0 to ^3.8.0 (main) ([#9948](https://github.com/nextcloud/mail/issues/9948)) ([6969d6e](https://github.com/nextcloud/mail/commit/6969d6eca3c3ed081ba1f8657a228f047faff789))\n* **deps:** bump @nextcloud/initial-state from 2.1.0 to ^2.2.0 (main) ([#9643](https://github.com/nextcloud/mail/issues/9643)) ([aefeb7f](https://github.com/nextcloud/mail/commit/aefeb7ffb70d52f50d6a01e94ebd6fac19aaedb4))\n* **deps:** bump @nextcloud/paths from 2.1.0 to ^2.2.0 (main) ([#9908](https://github.com/nextcloud/mail/issues/9908)) ([f296907](https://github.com/nextcloud/mail/commit/f2969072b4919a8cd37fabfa6e78d95741f97fa3))\n* **deps:** bump @nextcloud/paths from 2.2.0 to ^2.2.1 (main) ([#9947](https://github.com/nextcloud/mail/issues/9947)) ([436e983](https://github.com/nextcloud/mail/commit/436e9837b503cb766d10b4d48a4fbefcdf6b459c))\n* **deps:** bump @nextcloud/router from 3.0.0 to ^3.0.1 (main) ([#9596](https://github.com/nextcloud/mail/issues/9596)) ([cf9dd13](https://github.com/nextcloud/mail/commit/cf9dd13507befd1e45185e7aae1a0af5e3237655))\n* **deps:** bump @nextcloud/vue from 8.11.0 to ^8.11.1 ([e91bea8](https://github.com/nextcloud/mail/commit/e91bea82bc4c77f9b2aa56286d8209c1a87c2ec6))\n* **deps:** bump @nextcloud/vue from 8.11.1 to ^8.11.2 ([22a5ae4](https://github.com/nextcloud/mail/commit/22a5ae40b71057c1611a7773f34842d9ce38145c))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.13.0 ([facc8ab](https://github.com/nextcloud/mail/commit/facc8ab626acdf7e910a8a287565d13340cfe702))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([4ef4e64](https://github.com/nextcloud/mail/commit/4ef4e647d588d3514720fce7ebf946c82f63d6ad))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([8e50f95](https://github.com/nextcloud/mail/commit/8e50f95e40a214a8e419ff8162cbb57686021741))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([473069e](https://github.com/nextcloud/mail/commit/473069e4f2abcea0fbda41090719aef590a88419))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.16.0 ([73b56f1](https://github.com/nextcloud/mail/commit/73b56f12c2f3da8c3000287cc38436b77bb88de5))\n* **deps:** bump address-rfc2822 from 2.2.0 to ^2.2.1 (main) ([#9545](https://github.com/nextcloud/mail/issues/9545)) ([80e82ff](https://github.com/nextcloud/mail/commit/80e82ff3c3a6d920244e4d639e164da703d7e178))\n* **deps:** bump address-rfc2822 from 2.2.1 to ^2.2.2 (main) ([#9618](https://github.com/nextcloud/mail/issues/9618)) ([5be2d9f](https://github.com/nextcloud/mail/commit/5be2d9fd204280cdd77a56dd471ea633c7539029))\n* **deps:** bump bytestream/horde-mime from 2.13.0 to ^2.13.1 (main) ([#9704](https://github.com/nextcloud/mail/issues/9704)) ([4da6baa](https://github.com/nextcloud/mail/commit/4da6baaa2c5fa4acc6c0d55b905cab73b26c6a54))\n* **deps:** bump bytestream/horde-mime from 2.13.1 to ^2.13.2 (main) ([#9997](https://github.com/nextcloud/mail/issues/9997)) ([4c7f3f1](https://github.com/nextcloud/mail/commit/4c7f3f11ba672a500d394ead8e4942c20f3d3af8))\n* **deps:** bump core-js from 3.36.1 to ^3.37.1 (main) ([#9644](https://github.com/nextcloud/mail/issues/9644)) ([509d675](https://github.com/nextcloud/mail/commit/509d675bb71f7dc3d0cd6b887e1d74563e41301d))\n* **deps:** bump dompurify from 3.0.10 to ^3.0.11 ([94b5093](https://github.com/nextcloud/mail/commit/94b50936147d27097154e872bb9debda5a965ac7))\n* **deps:** bump dompurify from 3.0.11 to ^3.1.0 (main) ([#9546](https://github.com/nextcloud/mail/issues/9546)) ([1be5cce](https://github.com/nextcloud/mail/commit/1be5ccec727847914944ab1625b2f101c47cf046))\n* **deps:** bump dompurify from 3.1.0 to ^3.1.3 (main) ([#9619](https://github.com/nextcloud/mail/issues/9619)) ([1451a01](https://github.com/nextcloud/mail/commit/1451a01cbe8c0e8566a0ebb6307cd36a76ed65e1))\n* **deps:** bump dompurify from 3.1.3 to ^3.1.4 (main) ([#9680](https://github.com/nextcloud/mail/issues/9680)) ([981db11](https://github.com/nextcloud/mail/commit/981db11eb87ab737d08db59138405fb40859b4c3))\n* **deps:** bump dompurify from 3.1.4 to ^3.1.5 (main) ([#9705](https://github.com/nextcloud/mail/issues/9705)) ([77ce832](https://github.com/nextcloud/mail/commit/77ce83240067203b6d0ab88bc0337c1d91792586))\n* **deps:** bump dompurify from 3.1.5 to ^3.1.6 (main) ([#9822](https://github.com/nextcloud/mail/issues/9822)) ([f9a9a1c](https://github.com/nextcloud/mail/commit/f9a9a1c81df96fabd626b2c4a88da1b9fc611d2c))\n* **deps:** bump iframe-resizer from 4.3.11 to ^4.4.4 (main) ([#9794](https://github.com/nextcloud/mail/issues/9794)) ([ae39845](https://github.com/nextcloud/mail/commit/ae3984539f28fa2d5ea574182e3c818f2ea49726))\n* **deps:** bump iframe-resizer from 4.3.9 to ^4.3.11 (main) ([#9598](https://github.com/nextcloud/mail/issues/9598)) ([4b08392](https://github.com/nextcloud/mail/commit/4b0839274d0f604dd9a9e877bb15184697142862))\n* **deps:** bump iframe-resizer from 4.4.4 to ^4.4.5 (main) ([#9872](https://github.com/nextcloud/mail/issues/9872)) ([a537c49](https://github.com/nextcloud/mail/commit/a537c491cbc391d8ae1f66376409f8fcbc6fb4d8))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.2 to ^1.0.3 ([774ac9f](https://github.com/nextcloud/mail/commit/774ac9f5302a51d3526cc3811aa1fffc7448bcef))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to ^1.0.1 (main) ([#9974](https://github.com/nextcloud/mail/issues/9974)) ([c6cc2fa](https://github.com/nextcloud/mail/commit/c6cc2fa5f6ec7193c515181a80658f2e8c65b41a))\n* **deps:** bump pinia from 2.1.7 to ^2.2.0 (main) ([#9949](https://github.com/nextcloud/mail/issues/9949)) ([9e67025](https://github.com/nextcloud/mail/commit/9e67025c1a7035ad052259feb6041e8dc4b9c8f1))\n* **deps:** bump ramda from 0.29.1 to ^0.30.1 ([120def2](https://github.com/nextcloud/mail/commit/120def2ec0b1a81e169f5bc4e3a28fcfc358a8b7))\n* **deps:** bump rubix/ml from 2.4.0 to v2.5.0 (main) ([#9874](https://github.com/nextcloud/mail/issues/9874)) ([2f36913](https://github.com/nextcloud/mail/commit/2f369131b5e1dbcd6856fc3fa6b270f7686fd03f))\n* **deps:** bump sabberworm/php-css-parser from 8.5.1 to ^8.6.0 (main) ([#9909](https://github.com/nextcloud/mail/issues/9909)) ([08cc760](https://github.com/nextcloud/mail/commit/08cc760c7a5731704afb5ab422b0125a01bd9688))\n* **deps:** bump stylelint from 16.2.1 to ^16.3.1 ([06c5976](https://github.com/nextcloud/mail/commit/06c59764a33c847a6a1d03ed0a203d18e24a4ffd))\n* **deps:** bump webdav from 5.4.0 to ^5.5.0 ([8316cc7](https://github.com/nextcloud/mail/commit/8316cc729955e7c254a8ac703f36add04214e6e7))\n* **deps:** Replace @nextcloud/vue-dashboard with @nextcloud/vue ([c1cc553](https://github.com/nextcloud/mail/commit/c1cc553ac9e8ce46d8ed643abfcea3e0430782f8))\n* don't fail on missing mailbox stats ([1a613e8](https://github.com/nextcloud/mail/commit/1a613e80db91c58e814e212d897acf57dcf9575e))\n* duplicate uid repair job failing on postgres ([48a149b](https://github.com/nextcloud/mail/commit/48a149bab4a86d7af86c5b082bec9da57b807c70))\n* ellips the subject and position of the important icon ([7dcd2de](https://github.com/nextcloud/mail/commit/7dcd2de0453366462cd096acac33ca262d315146))\n* **files:** add static icon for unknown user ([bdb5d30](https://github.com/nextcloud/mail/commit/bdb5d30bf8abf5ebef099459b21929e0da609d24))\n* filter change icon to be shown only when the filter changes ([2e0ec87](https://github.com/nextcloud/mail/commit/2e0ec879b44e5be769ad7ba470b673d01fb47547))\n* Fine-tune thread summary box design ([b508915](https://github.com/nextcloud/mail/commit/b50891524b9beafea33e199a6beb9b791af5b574))\n* handle missing email in contact check ([eb11824](https://github.com/nextcloud/mail/commit/eb11824ea2091a930ef6aae95fc31834c53b62ba))\n* honour MDN requests ([752b012](https://github.com/nextcloud/mail/commit/752b0127afecbd85f105761a8c22a909ea68e679))\n* inconsistent encoding in saved sent messages ([a93b48e](https://github.com/nextcloud/mail/commit/a93b48eacf23490c9a4140a5028ebd81dfec9061))\n* **integration:** Honor sharing to group members restriction ([fb4ae5e](https://github.com/nextcloud/mail/commit/fb4ae5e5d47b7ef5d3a4b2bef66d6b982009b6c9))\n* **jobs:** Skip background jobs if no authentication is possible ([f1d3fda](https://github.com/nextcloud/mail/commit/f1d3fda3015c1ace393124a25cf588e37c879981))\n* **l10n:** Update mailbox button text from \"Edit name\" to \"Rename\" ([1edb630](https://github.com/nextcloud/mail/commit/1edb63067701db0132e2479eb3e5ae1835c42415)), closes [#9108](https://github.com/nextcloud/mail/issues/9108)\n* line ending for sieve scripts should be clrf ([1f54a38](https://github.com/nextcloud/mail/commit/1f54a387486d205703d9ec03692f200d3b7f021d)), closes [/www.rfc-editor.org/rfc/rfc5228#section-2](https://github.com//www.rfc-editor.org/rfc/rfc5228/issues/section-2)\n* lost focus in reference picker ([13ceb7a](https://github.com/nextcloud/mail/commit/13ceb7a22897d19074f3cf5d8f74c6519c32be84))\n* mailbox error empty content alignment ([4b73def](https://github.com/nextcloud/mail/commit/4b73defdc6a0b32812dfd1e52401072ad77975b0))\n* make sure inbound_password uses null as default ([443749f](https://github.com/nextcloud/mail/commit/443749f9e6d9fd1122f42ffd5f67ae8e07af2b63))\n* migrate advanced search to nc dialog ([558440f](https://github.com/nextcloud/mail/commit/558440f900a1591f637de0f34ba7df355b5a6d93))\n* move delete duplicate uids repair step to a job ([c361202](https://github.com/nextcloud/mail/commit/c3612021789b2574feab452d0b64624c369ed1ec))\n* **ocs-api:** fix attachment downloadUrl in ocs/v2.php/apps/mail/message/ID ([507ad47](https://github.com/nextcloud/mail/commit/507ad470145d961268e882c4c841e1f0d6889eec))\n* **outbox:** add status for messages ([7c59040](https://github.com/nextcloud/mail/commit/7c590407858fa4076e76407eeb545234bd3782ce))\n* **outbox:** handle indeterminate smtp errors ([a1daf35](https://github.com/nextcloud/mail/commit/a1daf351f83e27ea1fc4bac2d112966560f04501))\n* **outbox:** handle missing raw message gracefully ([66d5e60](https://github.com/nextcloud/mail/commit/66d5e602ac207a908a0931cb66abdc5c64ed2b3d))\n* **outbox:** Revive item subname ([25e6f60](https://github.com/nextcloud/mail/commit/25e6f6035b0909a1f267616194716d76dcaa8800))\n* PHP deprecations ([d62ac04](https://github.com/nextcloud/mail/commit/d62ac040c4a64501425e068553f54b3331f5d412))\n* php lint complaint ([6cda44b](https://github.com/nextcloud/mail/commit/6cda44bbd998b80b55f98210b41dfe4b1f469c02))\n* **pi:** load more button needs to be clicked twice ([b57eec0](https://github.com/nextcloud/mail/commit/b57eec0b651a21665b2a399eae5d43599f7d2e91))\n* **pi:** section title margins affected by global styles ([30abd01](https://github.com/nextcloud/mail/commit/30abd01dae8c2ab5bf53be814b4c1bde2a4a9303))\n* polish list item ([b48317d](https://github.com/nextcloud/mail/commit/b48317d7305298805d6e440b0692bfc0e1c99428))\n* **printing:** Fix long emails getting cut for print ([17e5e29](https://github.com/nextcloud/mail/commit/17e5e29f4a2f3336a420d03645fc7af9add2228c))\n* **provisioning:** Set master password for passwordless sessions ([43ee642](https://github.com/nextcloud/mail/commit/43ee6428013c32e21d3cb86e7b68c85aa5f298df))\n* remove deprecated prototype.substr() method ([2050173](https://github.com/nextcloud/mail/commit/20501734b0ba0e45dd095df61ea7a7a998d56317))\n* remove duplicated license info covered by SPDX/reuse ([30b3dcc](https://github.com/nextcloud/mail/commit/30b3dccc1d8a4af84f31b8b0d04c00c4272c42a9))\n* Remove instance name from share link add button ([e028f30](https://github.com/nextcloud/mail/commit/e028f30d32a922373bb9392b0fb6a6da2a567978))\n* remove the app navigation spacer ([50ed62d](https://github.com/nextcloud/mail/commit/50ed62db6c88c82cbe9adf12d689efc5994cca28))\n* remove the global styling from the composer list ([a45841d](https://github.com/nextcloud/mail/commit/a45841dcc046b827a3be7a1b93e19e73c6d7738d))\n* remove ununsed package ([01c4faf](https://github.com/nextcloud/mail/commit/01c4fafb933f2538cfda8a688eebb8d57695359b))\n* Sanitize forward slashes from name before generating url ([b29bfda](https://github.com/nextcloud/mail/commit/b29bfdadfac3be3bd5a9f8f2bfe2063c3a5f4719))\n* save horde cache backend on imap client logout ([cda9d73](https://github.com/nextcloud/mail/commit/cda9d737c4c2754e88108e51057c53123fa51277))\n* **search:** Improve quick search element alignment ([919c842](https://github.com/nextcloud/mail/commit/919c842ffa2056979e69e1a63b02f15980482a02))\n* **search:** Show placeholder for the mailbox search input ([aa16c44](https://github.com/nextcloud/mail/commit/aa16c44c07c41e541fc5f20771de15dd793d8234))\n* send imip when importing an event in mail ([880eca7](https://github.com/nextcloud/mail/commit/880eca7a8fe84706e57350d3f2ff01d804bdc117)), closes [/github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php#L245-L254](https://github.com//github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php/issues/L245-L254)\n* Separate quick search and threads list with a line ([62c32c5](https://github.com/nextcloud/mail/commit/62c32c501508a38923880c83a9fc133c07f06f37))\n* set link icon size explicitly ([4b7e433](https://github.com/nextcloud/mail/commit/4b7e4336c03ad5f04994311b02f527e76ad27c85))\n* show image colour on dark theme ([3430895](https://github.com/nextcloud/mail/commit/343089506eed4090b936996d5d5effe89a6cbf02))\n* Show message reply (all) action in toolbar ([5cd54bc](https://github.com/nextcloud/mail/commit/5cd54bca3ce721117c8047a7c1a04738b06da79a))\n* Show text in empty mailbox view ([bc04ae1](https://github.com/nextcloud/mail/commit/bc04ae15a7c3477d74081b4421edce8be34c2312))\n* smart reply button jump ([c29f6fe](https://github.com/nextcloud/mail/commit/c29f6fe6a568432308c128b37d6206b0e92949eb))\n* **smime:** use whole certificate chain ([c6e28fd](https://github.com/nextcloud/mail/commit/c6e28fd59188ded88c3688a2e3d4988fd09df508)), closes [#9190](https://github.com/nextcloud/mail/issues/9190)\n* **tags:** Hide Notjunk tag ([f81843d](https://github.com/nextcloud/mail/commit/f81843d41c759012e0d818463bee596e8b28bb90))\n* thread padding ([f019d55](https://github.com/nextcloud/mail/commit/f019d55ca3668e3bc0ce24d312160dc40372458b))\n* **threading:** Run manual garbage collection ([060923f](https://github.com/nextcloud/mail/commit/060923f2cb9634914f413e9f56c235b3715d9e83))\n* use correct type for button, type for prop ([25b7595](https://github.com/nextcloud/mail/commit/25b759590ae9602392e7da702fa944957e5343c3))\n* using shortcut to select drafts shouldnt open the composer ([6cd5628](https://github.com/nextcloud/mail/commit/6cd5628d39d0135ed7cf39df8b72d272e72e3885))\n\n\n### Features\n\n* add internal addresses ([aab2db9](https://github.com/nextcloud/mail/commit/aab2db92a618babc71fd285e56c11ddd7d2714d6))\n* add JSON to occ mail export ([6b725ac](https://github.com/nextcloud/mail/commit/6b725ac3e1f5ecfc1ff05ddaa57d06fa3faa50d0))\n* **composer:** Redesign inputs ([ff94dd9](https://github.com/nextcloud/mail/commit/ff94dd9c758f04d3fdb420dcdc6187e1e9977bec))\n* **deps:** Drop Nextcloud 26, add 30 support ([7101ad2](https://github.com/nextcloud/mail/commit/7101ad2e4feafc1093d24fc2e3a7f2c16091a361))\n* follow up reminders ([221ff11](https://github.com/nextcloud/mail/commit/221ff11205e703eb4757d3a7037959b80432d8b2))\n* implement admin setting to disable classification by default ([96c1259](https://github.com/nextcloud/mail/commit/96c12592e888327f939308266db2a7bf6ba7e74a))\n* improve the search bar icons ([9eb787c](https://github.com/nextcloud/mail/commit/9eb787c234e716f7bad9c216c1e9362374b99b0a))\n* increaze the min and max width for horizontal view ([cef3c44](https://github.com/nextcloud/mail/commit/cef3c44c69f5644ba8cb66bf25a0c75fd1a91fde))\n* Log AttachmentMissingError as a warning ([092c924](https://github.com/nextcloud/mail/commit/092c924fb70d0ac79cf823e660f09fdbe56d2388))\n* make sieve filter form only resizable vertically ([951774e](https://github.com/nextcloud/mail/commit/951774e20d6f6eef5e106c565fe4fb2c4187a621))\n* mark junk mail automatically as read and unimportant ([d9c20c5](https://github.com/nextcloud/mail/commit/d9c20c531b7bf3d13f03710867f3c31fe49450ce))\n* **ocs:** add OCS extractor and workflow ([e854dc7](https://github.com/nextcloud/mail/commit/e854dc7efc7f97b98c9e1e12be949de0acdc7b04))\n* **ocs:** document get api and amend return types ([929873d](https://github.com/nextcloud/mail/commit/929873db6bf6edd711030002606c63828c3ec7c6))\n* **ocs:** notify of new messages and provide API endpoint to retrieve its contents ([71dbc51](https://github.com/nextcloud/mail/commit/71dbc51dca58d51f419e09cc4bff7bed49adbbd4))\n* **ocs:** send a message via api ([253d0c8](https://github.com/nextcloud/mail/commit/253d0c81f4859b8e65d3940638d2e33ffed0ea27))\n* search on subject, to, from by default ([f93ca3c](https://github.com/nextcloud/mail/commit/f93ca3c665c9dd486044141534dd538062b75b37))\n* separate attachment from three-dot-menu ([3e6529c](https://github.com/nextcloud/mail/commit/3e6529c70b0ec7511ba6c6960266a36bffd9133a))\n* **utility:** make json methods work the same for ([bfa0d7b](https://github.com/nextcloud/mail/commit/bfa0d7b3013212e21782e27518c8d7c79749a24c))\n\n\n### Performance Improvements\n\n* Use local caches for avatars ([bd75d0a](https://github.com/nextcloud/mail/commit/bd75d0abc4a397b3618ff74af0a49742079ed85b))\n\n\n### Reverts\n\n* Revert \"Fix: generate event data fails for threads across multiple mailboxes\" ([09ded27](https://github.com/nextcloud/mail/commit/09ded27c2215a2516693702962c29a1b2cc2ae10))\n\n\n\n# [3.6.0-beta3](https://github.com/nextcloud/mail/compare/v3.6.0-beta2...v3.6.0-beta3) (2024-03-20)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([c5e76e6](https://github.com/nextcloud/mail/commit/c5e76e68d0f7efdbac2b922174e81507039ea67c))\n* **deps:** bump @nextcloud/cdav-library from 1.1.0 to ^1.3.0 (main) ([#9437](https://github.com/nextcloud/mail/issues/9437)) ([f26f421](https://github.com/nextcloud/mail/commit/f26f4218052238410e3e8441fe00133e12cf4cc3))\n* **deps:** bump @nextcloud/dialogs from 5.1.2 to ^5.2.0 (main) ([#9481](https://github.com/nextcloud/mail/issues/9481)) ([78308d9](https://github.com/nextcloud/mail/commit/78308d92ea25cad30dbd3fa134b8fd3127c62d18))\n* **deps:** bump @nextcloud/vue from 8.10.0 to ^8.11.0 ([481e00c](https://github.com/nextcloud/mail/commit/481e00cd8d2abf8e31b6219e5cc077baceb8d79a))\n* **deps:** bump bytestream/horde-imap-client from 2.33.1 to ^2.33.2 (main) ([#9460](https://github.com/nextcloud/mail/issues/9460)) ([6f4e2c5](https://github.com/nextcloud/mail/commit/6f4e2c52f3e070c09dd01fcbb3369731e42be54b))\n* **deps:** bump core-js from 3.36.0 to ^3.36.1 (main) ([#9475](https://github.com/nextcloud/mail/issues/9475)) ([6d1442d](https://github.com/nextcloud/mail/commit/6d1442d2e4b383000f27f48152c8009cd5bf88ee))\n* **deps:** bump dompurify from 3.0.9 to ^3.0.10 (main) ([#9476](https://github.com/nextcloud/mail/issues/9476)) ([aca2138](https://github.com/nextcloud/mail/commit/aca21388ebc5eb630a7ecb6e40306e6ddd546889))\n* display iCloud messages ([8417e52](https://github.com/nextcloud/mail/commit/8417e52e517bdad8003c9d63a2a66f0268bb4c9b))\n\n\n\n# [3.6.0-beta2](https://github.com/nextcloud/mail/compare/v3.6.0-beta1...v3.6.0-beta2) (2024-03-12)\n\n\n### Bug Fixes\n\n* add command to repair broken autoresponders ([60b199e](https://github.com/nextcloud/mail/commit/60b199ebcbd818652bafcfea0958d7b32b4ea5c6))\n* add name_hash as nullable ([d8de6d2](https://github.com/nextcloud/mail/commit/d8de6d2e30332a3a51d37225de680574c137f0ab))\n* Alien envelopes ([8dfae53](https://github.com/nextcloud/mail/commit/8dfae5396194f6b6613f9e6dafc946e682f03fe0))\n* allow syncing of mailboxes with a trailing space ([9783069](https://github.com/nextcloud/mail/commit/9783069f6b8bb36f57d0b3e65a8384cebadf93f2))\n* **autoresponder:** use subject placeholder instead of ooo short message ([5899ebe](https://github.com/nextcloud/mail/commit/5899ebe00a2911421160396c49a7e74c0d5fa780))\n* cache accounts by userId in AccountService ([c69c7d7](https://github.com/nextcloud/mail/commit/c69c7d724feb7ac943ff61c7ab57f93e2f1dde96))\n* **clean-up:** remove all outdated classifier not only 100 per day ([0e3fcce](https://github.com/nextcloud/mail/commit/0e3fccec8f9555cd8d1b2bf72092120d73005ba3))\n* **composer:** creating new options in recipient selects ([ffd78d5](https://github.com/nextcloud/mail/commit/ffd78d51c3bb46035ee705cb8a52de1699da98ba))\n* **composer:** duplicate label in to, cc and bcc selects ([5fec0d1](https://github.com/nextcloud/mail/commit/5fec0d1f19467dd2826e24c43e66cb114911a30b))\n* **db:** add version check for index with length ([2cafaa1](https://github.com/nextcloud/mail/commit/2cafaa1ae08185d46c81feef451a447a26c821ad))\n* **db:** Avoid dirty read for collected addresses ([66fdc0b](https://github.com/nextcloud/mail/commit/66fdc0bbe0b6497320eef449cc5ed644e91025fd))\n* **db:** Avoid dirty read for local message updates ([fff840a](https://github.com/nextcloud/mail/commit/fff840ac4f88c12cd484af0cd730a913e92e6865))\n* **db:** Avoid dirty reads while deleting messages by uid ([e92114e](https://github.com/nextcloud/mail/commit/e92114e90e7733d1a7eccfa94067fb5699df7075))\n* **deps:** Apply npm audit fix ([e97f337](https://github.com/nextcloud/mail/commit/e97f337049be90e03f28dddec57bcf5af0555410))\n* **deps:** bump @nextcloud/calendar-js from 6.0.1 to ^6.1.0 (main) ([#9068](https://github.com/nextcloud/mail/issues/9068)) ([00bf78b](https://github.com/nextcloud/mail/commit/00bf78bfed62af45678eeb6a08c130378a6d48f2))\n* **deps:** bump @nextcloud/dialogs from 4.1.0 to ^4.2.5 (main) ([#8797](https://github.com/nextcloud/mail/issues/8797)) ([cadad6e](https://github.com/nextcloud/mail/commit/cadad6e2245c6c5a6f47308a1cdf22eda6c3d4e7))\n* **deps:** bump @nextcloud/dialogs from 4.2.5 to ^4.2.6 (main) ([#9377](https://github.com/nextcloud/mail/issues/9377)) ([210d79c](https://github.com/nextcloud/mail/commit/210d79cc9d88e185298409b00c48fb0681f2d297))\n* **deps:** bump @nextcloud/dialogs from 4.2.6 to v5 ([4679883](https://github.com/nextcloud/mail/commit/4679883e2eabc871bd4fcd171a18a47262635b9a))\n* **deps:** bump @nextcloud/files from 2.1.0 to v3 ([2de7e60](https://github.com/nextcloud/mail/commit/2de7e60c13ca3eda51aa7159779e706b22690e6a))\n* **deps:** bump @nextcloud/moment from 1.2.2 to ^1.3.1 (main) ([#9396](https://github.com/nextcloud/mail/issues/9396)) ([1932e0f](https://github.com/nextcloud/mail/commit/1932e0f427993f2554597f4050fcdf18a3a77beb))\n* **deps:** bump @nextcloud/router from 2.2.0 to ^2.2.1 (main) ([#9360](https://github.com/nextcloud/mail/issues/9360)) ([9dd2149](https://github.com/nextcloud/mail/commit/9dd2149922af23b4b3fc8506e7a695fc37d252bd))\n* **deps:** bump @nextcloud/router from 2.2.1 to v3 ([b11cd98](https://github.com/nextcloud/mail/commit/b11cd9849916668db903cad34b0180cbe70fee44))\n* **deps:** bump @nextcloud/vue from 7.12.6 to ^7.12.7 ([6af3637](https://github.com/nextcloud/mail/commit/6af36374027ad41a7f1fd9b5f8737c035315b019))\n* **deps:** bump @nextcloud/vue from 8.5.0 to ^8.6.2 ([f68dd5a](https://github.com/nextcloud/mail/commit/f68dd5aead98d77dcf7914fa8dc2ba6e03406301))\n* **deps:** bump @nextcloud/vue from 8.6.2 to ^8.10.0 ([33a3e38](https://github.com/nextcloud/mail/commit/33a3e383a6494c16674f6907d4cfcbe8e22a99dd))\n* **deps:** bump address-rfc2822 from 2.1.0 to ^2.2.0 (main) ([#9405](https://github.com/nextcloud/mail/issues/9405)) ([584ed59](https://github.com/nextcloud/mail/commit/584ed59235b1c248decbca3238343498ed37a152))\n* **deps:** bump core-js from 3.33.2 to ^3.33.3 (main) ([#9083](https://github.com/nextcloud/mail/issues/9083)) ([1393394](https://github.com/nextcloud/mail/commit/13933946ba76d1e6ec8d53b191bc7f88e401a98f))\n* **deps:** bump core-js from 3.33.3 to ^3.34.0 (main) ([#9166](https://github.com/nextcloud/mail/issues/9166)) ([4ee62af](https://github.com/nextcloud/mail/commit/4ee62afe03553201a5ecef5036974b96af92e8c2))\n* **deps:** bump core-js from 3.34.0 to ^3.36.0 (main) ([#9406](https://github.com/nextcloud/mail/issues/9406)) ([4afd9d8](https://github.com/nextcloud/mail/commit/4afd9d85fda87194dd7b26e2c93dfe76623d58e2))\n* **deps:** bump dompurify from 3.0.6 to ^3.0.9 (main) ([#9270](https://github.com/nextcloud/mail/issues/9270)) ([f72b9f4](https://github.com/nextcloud/mail/commit/f72b9f427179e032096481df7e0a9c6a29ac6c03))\n* **deps:** bump ezyang/htmlpurifier from 4.16.0 to v4.17.0 (main) ([#9085](https://github.com/nextcloud/mail/issues/9085)) ([a1e4110](https://github.com/nextcloud/mail/commit/a1e41106258eadeb1d98d5bb58e815c04f49aa00))\n* **deps:** bump iframe-resizer from 4.3.7 to ^4.3.9 (main) ([#9084](https://github.com/nextcloud/mail/issues/9084)) ([68c9672](https://github.com/nextcloud/mail/commit/68c96723f491461c3e06325d43a3cf908c5d2d1f))\n* **deps:** bump js-base64 from 3.7.5 to ^3.7.6 (main) ([#9361](https://github.com/nextcloud/mail/issues/9361)) ([6eadbce](https://github.com/nextcloud/mail/commit/6eadbcefd7dcd8f230f23fb26a6c26e03c41ad50))\n* **deps:** bump js-base64 from 3.7.6 to ^3.7.7 (main) ([#9378](https://github.com/nextcloud/mail/issues/9378)) ([cbe62e4](https://github.com/nextcloud/mail/commit/cbe62e4890887650fde156d254d6891f482d24c5))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.0 to ^1.0.2 (main) ([#9379](https://github.com/nextcloud/mail/issues/9379)) ([2132361](https://github.com/nextcloud/mail/commit/2132361862dc2c4774993544afcfcfbe3820228e))\n* **deps:** bump p-limit from 4.0.0 to v5 ([2b99aba](https://github.com/nextcloud/mail/commit/2b99aba140a505c63f787298e0a410a45b7beda4))\n* **deps:** bump sabberworm/php-css-parser from 8.4.0 to ^8.5.1 (main) ([#9409](https://github.com/nextcloud/mail/issues/9409)) ([0a52127](https://github.com/nextcloud/mail/commit/0a521273f4916b02479b44284ff06f95535484f1))\n* **deps:** bump stylelint from 15.11.0 to v16 ([5238442](https://github.com/nextcloud/mail/commit/5238442d0cd3f34c6e11e2ece208b2519b25a47d))\n* **deps:** bump vue monorepo from 2.7.15 to ^2.7.16 (main) ([#9380](https://github.com/nextcloud/mail/issues/9380)) ([f2015c4](https://github.com/nextcloud/mail/commit/f2015c4a9f433d470b9b33b52145ef81581bb3b5))\n* **deps:** bump vue-material-design-icons from 5.2.0 to ^5.3.0 (main) ([#9407](https://github.com/nextcloud/mail/issues/9407)) ([3c2db50](https://github.com/nextcloud/mail/commit/3c2db50eb68f3e629f67ea4f6d9d9fb50dcf13ca))\n* **deps:** bump webdav from 4.11.3 to v5 ([184fba5](https://github.com/nextcloud/mail/commit/184fba5ad2a1960aac7905b905c17ab7c0878559))\n* **deps:** Switch KItinerary vendor ([736731f](https://github.com/nextcloud/mail/commit/736731f1b0169178a8e2fc79a2c8fa073cc42e8c))\n* **encoding:** better character encoding ([176e074](https://github.com/nextcloud/mail/commit/176e074df28a0a6d0c335ff141648743d3cb96c7))\n* Hack CSS to restore envelope styling ([d8c9f4e](https://github.com/nextcloud/mail/commit/d8c9f4edf898d11fb81e59273697a7cc3e663da6))\n* **imap:** Only rate limit actual auth errors ([b19918d](https://github.com/nextcloud/mail/commit/b19918dbd5d1f63aef32d6c738bc9a45117e2832))\n* **imap:** Pass flags as array for the STORE command ([4d1879d](https://github.com/nextcloud/mail/commit/4d1879d3e25777c69108ba8093d6c2888173e0da))\n* improve autoresponder time zone handling ([f0847be](https://github.com/nextcloud/mail/commit/f0847be20afb86850f57d40cd03ab0f052219846))\n* **integration:** Allow LLM event titles/agendas for non-admins ([2823ea2](https://github.com/nextcloud/mail/commit/2823ea27bf876b3e66750133f3ba8681fc2d00a6))\n* listen to more out-of-office events to prevent missed changes ([ee63978](https://github.com/nextcloud/mail/commit/ee639783bab0576eb12814f0c69d418ff83ea49e))\n* **message:** Translate task description label ([8887dbb](https://github.com/nextcloud/mail/commit/8887dbb3d1ddf5a320c4416daad2527d14d546d3))\n* **navigation:** Only make mailboxes with children collapsible ([ae43682](https://github.com/nextcloud/mail/commit/ae436822833038ec497db04836f6a63ce34310a0))\n* only load thread summary for threads with at least 3 messages. ([88ad956](https://github.com/nextcloud/mail/commit/88ad956d2e8dd059bde23daea9d076c695890b08))\n* **provisioning:** Clean up orphaned accounts ([ed228bb](https://github.com/nextcloud/mail/commit/ed228bb807db59a17b2250c92a20af7083c028fb))\n* **provisioning:** Do not require master password if disabled ([410e9bb](https://github.com/nextcloud/mail/commit/410e9bba356aa9d3508169be256ffe5d4f6c7244))\n* **quota:** don't divide by limit zero ([dd788e7](https://github.com/nextcloud/mail/commit/dd788e74df60acc4ca92afb0573a1de1e7d3797a))\n* **search:** Align advanced search UI elements better ([7b42142](https://github.com/nextcloud/mail/commit/7b4214215cd10b3ffea5a1eddfb2ba6435dd2646))\n* **search:** Reduce advanced search icon size ([6042454](https://github.com/nextcloud/mail/commit/60424542fbd8d2cf466506fbaaf28de0f6964d27))\n* **setup:** Fix rate limit annotation syntax ([#9216](https://github.com/nextcloud/mail/issues/9216)) ([a3f1970](https://github.com/nextcloud/mail/commit/a3f197033a8f3ed3636177a4af9310564157d3c2)), closes [nextcloud/mail#9170](https://github.com/nextcloud/mail/issues/9170) [/github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php#L66](https://github.com//github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php/issues/L66)\n* **setup:** Increase rate limit ([89876e1](https://github.com/nextcloud/mail/commit/89876e13b3e94082582c8fd466261c5c12319e43))\n* **setup:** Sort MX records by weight ([684a215](https://github.com/nextcloud/mail/commit/684a215e8119d4f30b826c1da63a1f83972fb3cd))\n* **setup:** Use MX record TLD for ISPDB lookup ([1b2f3a0](https://github.com/nextcloud/mail/commit/1b2f3a012fb8be2ac2ec6dc5fb4294bff9a4e618))\n* **setup:** Use MX sort result ([da9b578](https://github.com/nextcloud/mail/commit/da9b57815fe223468fbe60630346c38da920f934))\n* **smime:** alias to cert mapping in account settings ([ed7c152](https://github.com/nextcloud/mail/commit/ed7c15297f00c24e122d87c0eea029d23d670bbc))\n* **sync:** force full sync when the server reports QRESYNC ([eacd84c](https://github.com/nextcloud/mail/commit/eacd84c7b279e3b0659611f8e0fe9628ed3a207a))\n* Use property_exists for SimpleXMLElement checks ([3e8aeec](https://github.com/nextcloud/mail/commit/3e8aeec36a141961f31ae69d46a9e3cb123ce024))\n\n\n### Features\n\n* apply personal out-of-office data to the auto responder ([3cbdf1f](https://github.com/nextcloud/mail/commit/3cbdf1f302aa136db72feda1e32bbdb76f3622ee))\n* **composer:** Use editor toolbar instead of balloon ([e9f068f](https://github.com/nextcloud/mail/commit/e9f068fd0c225f48cbc031b929743edb4155e31a))\n* **deps:** Support Nextcloud 29 ([5b43ae2](https://github.com/nextcloud/mail/commit/5b43ae2a19ff88f463369e8e232d76cefd9fb86c))\n* **integration:** Combine all LLM feature flags ([8c934bd](https://github.com/nextcloud/mail/commit/8c934bd74785abc8b43fb2e5f33fcb8ba3f8ae86))\n* **integration:** Support DESCRPTION for events ([f80bef4](https://github.com/nextcloud/mail/commit/f80bef4dbb0426903dabe019b75f6ef6801b115b))\n* **integration:** Use LLM to fill event details ([eab26c4](https://github.com/nextcloud/mail/commit/eab26c477374cb2179f433e36d4ff0ace0ba9582))\n* move threads not messages in drag-and-drop ([c18a1e4](https://github.com/nextcloud/mail/commit/c18a1e46b389130d53140380c46f85b4216c9a76))\n* **smime:** allow selection of untrusted certs ([6111216](https://github.com/nextcloud/mail/commit/611121620e0d489216d2aa2de569ba54a397079a))\n\n\n### Performance Improvements\n\n* Add performance logger to clean up ([48550d6](https://github.com/nextcloud/mail/commit/48550d64dae9d7483fec21941cb4df7f4ae12e65))\n* **db:** Add message_id index for mail_messages table ([7e32031](https://github.com/nextcloud/mail/commit/7e32031d563a0437fbbe382807e9e8b1ca74f2e2))\n* **db:** optimise indices of mail tables ([4c356d6](https://github.com/nextcloud/mail/commit/4c356d6995d1ce6a38763f855e309dfb02e37eeb))\n* **sync:** Reduce db operations for accounts without CONDSTORE ([413dfbb](https://github.com/nextcloud/mail/commit/413dfbb6b0e772ebe0b44f75f6a6057582165b8f))\n\n\n\n# [3.5.0-beta3](https://github.com/nextcloud/mail/compare/v3.5.0-beta2...v3.5.0-beta3) (2023-11-14)\n\n\n### Features\n\n* **advanced-search:** allow date and recipient search ([8e12c63](https://github.com/nextcloud/mail/commit/8e12c633ddd3c20c70099c9ab94705d9eb44f7f0))\n\n\n\n# [3.5.0-beta2](https://github.com/nextcloud/mail/compare/v3.5.0-beta1...v3.5.0-beta2) (2023-11-09)\n\n\n### Bug Fixes\n\n* **accessibility:** Add arial-label to NcActionButtons without text ([7c440e1](https://github.com/nextcloud/mail/commit/7c440e130e6cb3ff4ca3cd76f01d0262a18c1d03))\n* add expiration for itinerary cache ([4c60847](https://github.com/nextcloud/mail/commit/4c608472c08c465713b9e14f32877dd23ce0e4e2))\n* Add missing background box for redirect page ([953998e](https://github.com/nextcloud/mail/commit/953998e0af98453f5f2cf3edfe7f10bc489c431c))\n* add preview enhancement job to new accounts joblist ([09ba345](https://github.com/nextcloud/mail/commit/09ba345edf21d6a13ca994b672af215dd37e3052))\n* Allow dynamic autoloading for classes added during upgrade ([d81bcca](https://github.com/nextcloud/mail/commit/d81bcca8c147019b506f6011ce9c8863f18814b3))\n* allow sending of messages with empty body content ([646ccfe](https://github.com/nextcloud/mail/commit/646ccfe38e54877d06de934ee61774a4688d1dfb))\n* archiving messages via shortcut ([0569444](https://github.com/nextcloud/mail/commit/0569444b2908b17198ba4419679ee0322dd639ac))\n* **attachments:** fetch message once when saving attachments in files ([f7921f1](https://github.com/nextcloud/mail/commit/f7921f19106b0e0584fccb5260b0c0a544706b4d))\n* **autocomplete:** make system address book searchable not just full matches ([d8be257](https://github.com/nextcloud/mail/commit/d8be2578ca29e272e334c7ec69467c9c5ea25edf))\n* **avatar:** Validate favicon hosts ([4d63219](https://github.com/nextcloud/mail/commit/4d6321962973c947b21181cc9ffb7e272d9cb926))\n* **bgJob:** Fix DB-Query for open drafts ([4530a34](https://github.com/nextcloud/mail/commit/4530a34ec5e69a4d94e3af62636f430760f29234))\n* button style ([6bb69c7](https://github.com/nextcloud/mail/commit/6bb69c7f0c5e61b40a31ce5a3bb1e3a3d8ef0932))\n* Check strict cookies for image proxy ([be36e3e](https://github.com/nextcloud/mail/commit/be36e3e342c0d889670ac80434f07c5cabba6159))\n* **classification:** Delete historic data ([8e1e5ea](https://github.com/nextcloud/mail/commit/8e1e5ea65f6db951a95cdec50f50d3f29880a554))\n* **classification:** refactor persistence ([a23dac9](https://github.com/nextcloud/mail/commit/a23dac94a52d98cd7c64d62944b7d217bb8a0170))\n* **cleanup:** clean up mail_message_tags and mail_tags ([68e0b9b](https://github.com/nextcloud/mail/commit/68e0b9b0c1efd1efe9b73daabd3d81a9ccf6dfc4))\n* **composer:** add gap between primary actions ([4a90cd8](https://github.com/nextcloud/mail/commit/4a90cd809c0e2e7f6e9ff652f1f885e3568cbb41))\n* **composer:** forward messages as attachments ([81fbc14](https://github.com/nextcloud/mail/commit/81fbc143aea28dbdf220c9e57390b4de11583eba))\n* Convert drafts to outbox messages before sending ([b74afd3](https://github.com/nextcloud/mail/commit/b74afd3fee114ff9b0e1460c12e95a20d2c71a09))\n* dashboard loading forever ([bac8f1a](https://github.com/nextcloud/mail/commit/bac8f1ae8ba32f2c3b69cc96258f907e9839f0d9)), closes [/github.com/browserify/node-util/issues/57#issuecomment-764436352](https://github.com//github.com/browserify/node-util/issues/57/issues/issuecomment-764436352)\n* **db:** Identify retention and snooze mailboxes uniquely ([af20473](https://github.com/nextcloud/mail/commit/af20473aa7ddd6c80235d33535ad9a8eb14b2fa3))\n* **db:** Run read-write-update of mailboxes in transaction ([f6154c5](https://github.com/nextcloud/mail/commit/f6154c528aadc43021987de967401682c9797563))\n* deprecation warning for drafts controller test ([07c15f2](https://github.com/nextcloud/mail/commit/07c15f2b26cb5f97654f57d80df767d735faac91))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 33.0.1 to v34 ([96d13ae](https://github.com/nextcloud/mail/commit/96d13ae7941c667f1a37e3f7eb7cf47f0c369116))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.0.2 to ~34.1.2 ([86242da](https://github.com/nextcloud/mail/commit/86242da8c90991f32dc8e6a9d7bd19b51519a632))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.2 to ~34.1.3 ([85fa23a](https://github.com/nextcloud/mail/commit/85fa23a4c9ab6e672db1071e87067c94af2fb145))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.3 to v35 ([092a0dd](https://github.com/nextcloud/mail/commit/092a0dd1d77c8739cbfa175cbf4112db572284e5))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.3 to ~35.0.6 ([99f336f](https://github.com/nextcloud/mail/commit/99f336f1015def3a7c24e6d8d81d5f2f0bf6b721))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.6 to v37 ([d7822c1](https://github.com/nextcloud/mail/commit/d7822c12b2eec3c88764b98042332da3a4be449f))\n* **deps:** bump @nextcloud/auth from 2.0.0 to ^2.1.0 ([d8855ce](https://github.com/nextcloud/mail/commit/d8855ce558315176129d9e2f6875921853a6eaff))\n* **deps:** bump @nextcloud/auth from 2.1.0 to ^2.2.1 (main) ([#8887](https://github.com/nextcloud/mail/issues/8887)) ([a3d2a77](https://github.com/nextcloud/mail/commit/a3d2a77d44b047fd304e76ad7f1833f39d5e31d8))\n* **deps:** bump @nextcloud/axios from 2.3.0 to ^2.4.0 ([eb29ab7](https://github.com/nextcloud/mail/commit/eb29ab77b38ef8b51c36cd6a94c6d587ac7d62ac))\n* **deps:** bump @nextcloud/calendar-js from 3.2.0 to v5 ([bcee50a](https://github.com/nextcloud/mail/commit/bcee50a852bae25850ec802d5378fd978d28b7df))\n* **deps:** bump @nextcloud/calendar-js from 5.0.3 to ^5.0.4 ([67d6099](https://github.com/nextcloud/mail/commit/67d6099971d5ba7fe619d95a36cb0e48ec8033f3))\n* **deps:** bump @nextcloud/calendar-js from 5.0.4 to ^5.0.5 ([a3df9dc](https://github.com/nextcloud/mail/commit/a3df9dcd7f17f53699a615b8f17fb85ebe4072a8))\n* **deps:** bump @nextcloud/calendar-js from 5.0.5 to v6 ([1bfce7e](https://github.com/nextcloud/mail/commit/1bfce7e8f794607e47b962ef83d499a40f52981d))\n* **deps:** bump @nextcloud/calendar-js from 6.0.0 to ^6.0.1 ([9da3cb1](https://github.com/nextcloud/mail/commit/9da3cb105b419c8155888f1681935ae4cfe9427d))\n* **deps:** bump @nextcloud/dialogs from 3.2.0 to v4 ([1086158](https://github.com/nextcloud/mail/commit/10861585a80b9d42955e196c167928a92ce6204b))\n* **deps:** bump @nextcloud/dialogs from 4.0.1 to ^4.1.0 (main) ([#8662](https://github.com/nextcloud/mail/issues/8662)) ([8e05e5c](https://github.com/nextcloud/mail/commit/8e05e5c1bc6f7e5b7c41bf315484918281eedd8d))\n* **deps:** bump @nextcloud/initial-state from 2.0.0 to ^2.1.0 (main) ([#8691](https://github.com/nextcloud/mail/issues/8691)) ([46f47ec](https://github.com/nextcloud/mail/commit/46f47ec7f94864caabcb27a69b2f851f84d2d105))\n* **deps:** bump @nextcloud/l10n from 2.1.0 to ^2.2.0 (main) ([#8833](https://github.com/nextcloud/mail/issues/8833)) ([34a1ca0](https://github.com/nextcloud/mail/commit/34a1ca02a0ac7989b108fdb02311d2222bb92a6b))\n* **deps:** bump @nextcloud/logger from 2.5.0 to ^2.7.0 (main) ([#8888](https://github.com/nextcloud/mail/issues/8888)) ([74b0576](https://github.com/nextcloud/mail/commit/74b05768d7f0caf5dac155552cffccbe51a56185))\n* **deps:** bump @nextcloud/moment from 1.2.1 to ^1.2.2 (main) ([#8970](https://github.com/nextcloud/mail/issues/8970)) ([027069e](https://github.com/nextcloud/mail/commit/027069eb7ab742ae5fff34a8da9688b1bd69566d))\n* **deps:** bump @nextcloud/router from 2.0.1 to ^2.1.1 ([83267ef](https://github.com/nextcloud/mail/commit/83267ef03d146e32bab35beb36424ddb1fdc82cd))\n* **deps:** bump @nextcloud/router from 2.1.1 to ^2.1.2 ([4bcf00b](https://github.com/nextcloud/mail/commit/4bcf00bb21d3ad519245f17e114ffe946137143f))\n* **deps:** bump @nextcloud/router from 2.1.2 to ^2.2.0 (main) ([#8999](https://github.com/nextcloud/mail/issues/8999)) ([0b9ccea](https://github.com/nextcloud/mail/commit/0b9ccea3abf7807faef10828ecbe03232900ff3e))\n* **deps:** bump @nextcloud/vue from 7.11.3 to ^7.11.4 ([756b508](https://github.com/nextcloud/mail/commit/756b50801c04fe4627175a8469824775003f833f))\n* **deps:** bump @nextcloud/vue from 7.11.4 to ^7.12.0 ([4f4c2e6](https://github.com/nextcloud/mail/commit/4f4c2e63835c8779fbd2baffcf834de5634388ae))\n* **deps:** bump @nextcloud/vue from 7.12.0 to ^7.12.1 ([d4ee8a1](https://github.com/nextcloud/mail/commit/d4ee8a129a68a512d4f2762b4e709439e8e968a2))\n* **deps:** bump @nextcloud/vue from 7.12.1 to ^7.12.2 ([2d6c7be](https://github.com/nextcloud/mail/commit/2d6c7be52b3214d151df19562fd9b7f44be35ac1))\n* **deps:** bump @nextcloud/vue from 7.12.2 to ^7.12.4 ([ef1f9b5](https://github.com/nextcloud/mail/commit/ef1f9b51407c5108bb5a5bb796ebd319896268eb))\n* **deps:** bump @nextcloud/vue from 7.12.4 to ^7.12.6 ([93d92ae](https://github.com/nextcloud/mail/commit/93d92ae227566595167cd989c65f2a899aa157cf))\n* **deps:** bump @nextcloud/vue from 7.5.0 to ~7.8.0 ([93d1016](https://github.com/nextcloud/mail/commit/93d1016a48435a6fbcc9165da126dbe9556a8907))\n* **deps:** bump @nextcloud/vue from 7.7.0 to ^7.7.1 ([6d012a3](https://github.com/nextcloud/mail/commit/6d012a3d0b316bd74e1f476280fbd68fb33bdf07))\n* **deps:** bump @nextcloud/vue from 7.8.0 to ^7.8.5 ([59d1982](https://github.com/nextcloud/mail/commit/59d1982e7b74f417a69c03643e15986be77d3d9c))\n* **deps:** bump @nextcloud/vue from 7.8.5 to ^7.11.3 ([ec4732b](https://github.com/nextcloud/mail/commit/ec4732bce76f6b1ea97e9f952f027459cf57acb0))\n* **deps:** bump @nextcloud/vue-dashboard from 2.0.1 to ^2.0.1 ([f636457](https://github.com/nextcloud/mail/commit/f63645707ac4d6e5478039ffc7f31e50f7717d55))\n* **deps:** bump arthurhoaro/favicon from 1.3.3 to ^1.3.4 (main) ([#8995](https://github.com/nextcloud/mail/issues/8995)) ([04fa7d0](https://github.com/nextcloud/mail/commit/04fa7d0d583b491c51cb9a87b357f03912904316))\n* **deps:** bump arthurhoaro/favicon from 1.3.4 to v2 ([88a6bf7](https://github.com/nextcloud/mail/commit/88a6bf7f0aade4fb0a153c1e6553c498d19e806d))\n* **deps:** bump bytestream/horde-imap-client from 2.32.0 to ^2.33.1 (main) ([#8862](https://github.com/nextcloud/mail/issues/8862)) ([4619663](https://github.com/nextcloud/mail/commit/4619663931caffae0c7da7eb7b0373b1ffcdafc1))\n* **deps:** bump cerdic/css-tidy from 2.0.3 to v2.1.0 (main) ([#8889](https://github.com/nextcloud/mail/issues/8889)) ([d88c084](https://github.com/nextcloud/mail/commit/d88c0845b47eb1a41be6fea7f1f6556813584015))\n* **deps:** bump christophwurst/kitinerary-bin from 0.3.0 to ^0.4 ([9e152bd](https://github.com/nextcloud/mail/commit/9e152bda26bc3d57c3e4c5b54b2fc0eaad74d9b6))\n* **deps:** bump christophwurst/kitinerary-sys from 0.2.0 to ^0.2.1 ([185760b](https://github.com/nextcloud/mail/commit/185760b914a995d0996ae502f8e14043140896a4))\n* **deps:** bump ckeditor family from 35.1.0 to v35.4.0 ([ecf545c](https://github.com/nextcloud/mail/commit/ecf545cf9d77c3d73512b4f07c522c9d33837785))\n* **deps:** bump ckeditor family from 35.4.0 to v37 ([baa8e33](https://github.com/nextcloud/mail/commit/baa8e33157f57fce5dec66f4e419567e74ff005a))\n* **deps:** bump ckeditor family from 37.0.1 to v37.1.0 ([ada9892](https://github.com/nextcloud/mail/commit/ada9892b482c18972cbe291ff2991a67b586122f))\n* **deps:** bump core-js from 3.28.0 to ^3.29.0 ([e9fdca5](https://github.com/nextcloud/mail/commit/e9fdca5c6969ac6fc25f8722e2c121c12a3bf6b5))\n* **deps:** bump core-js from 3.29.0 to ^3.29.1 ([0ae1b80](https://github.com/nextcloud/mail/commit/0ae1b809645babbe8a881863def49048c2444f98))\n* **deps:** bump core-js from 3.29.1 to ^3.30.1 ([a19e752](https://github.com/nextcloud/mail/commit/a19e7528a8b02819debde15b0013a590ee91dc66))\n* **deps:** bump core-js from 3.30.1 to ^3.30.2 ([b1f8354](https://github.com/nextcloud/mail/commit/b1f8354aa099f8bfcbc10bbc4960e5525b81f56c))\n* **deps:** bump core-js from 3.30.2 to ^3.31.0 (main) ([#8542](https://github.com/nextcloud/mail/issues/8542)) ([3f5cb32](https://github.com/nextcloud/mail/commit/3f5cb32ddec5c767ab647cc17c811409ab499cf6))\n* **deps:** bump core-js from 3.31.0 to ^3.31.1 (main) ([#8619](https://github.com/nextcloud/mail/issues/8619)) ([a204a78](https://github.com/nextcloud/mail/commit/a204a789a0f43e09c12f9133aee5937f56fc812c))\n* **deps:** bump core-js from 3.31.1 to ^3.32.2 (main) ([#8877](https://github.com/nextcloud/mail/issues/8877)) ([cd75e3c](https://github.com/nextcloud/mail/commit/cd75e3c3170564c4675c6a7a1b89a69032aa9189))\n* **deps:** bump core-js from 3.32.2 to ^3.33.0 (main) ([#8921](https://github.com/nextcloud/mail/issues/8921)) ([9591a27](https://github.com/nextcloud/mail/commit/9591a27f717b6b84a15e96c172aa52bba3fda20c))\n* **deps:** bump core-js from 3.33.0 to ^3.33.1 (main) ([#8996](https://github.com/nextcloud/mail/issues/8996)) ([1e1e05d](https://github.com/nextcloud/mail/commit/1e1e05d871ea92b2cb427a236ea1df97ef7b1484))\n* **deps:** bump core-js from 3.33.1 to ^3.33.2 (main) ([#9039](https://github.com/nextcloud/mail/issues/9039)) ([9f8935f](https://github.com/nextcloud/mail/commit/9f8935f9c8dca1ec1af3a2bbc8435a8a42481b30))\n* **deps:** bump dompurify from 2.4.4 to ^2.4.5 ([4666628](https://github.com/nextcloud/mail/commit/466662877a31a3ad9ed2fa69b1eb7cd8a6125e6a))\n* **deps:** bump dompurify from 2.4.5 to v3 ([aac1a47](https://github.com/nextcloud/mail/commit/aac1a47b8e3c6b308bf331ab1077283133eb04b6))\n* **deps:** bump dompurify from 3.0.1 to ^3.0.2 ([6b5e91f](https://github.com/nextcloud/mail/commit/6b5e91fbeae6539a86e1bcf59381fff19ba019fc))\n* **deps:** bump dompurify from 3.0.2 to ^3.0.3 ([36b38fc](https://github.com/nextcloud/mail/commit/36b38fcdee9d1bc54481515d844a2f2a8733e354))\n* **deps:** bump dompurify from 3.0.3 to ^3.0.5 (main) ([#8600](https://github.com/nextcloud/mail/issues/8600)) ([bd916f4](https://github.com/nextcloud/mail/commit/bd916f44b1e5efaa73f70b2a37f9270e7565b927))\n* **deps:** bump dompurify from 3.0.5 to ^3.0.6 (main) ([#8913](https://github.com/nextcloud/mail/issues/8913)) ([520b22b](https://github.com/nextcloud/mail/commit/520b22bd744086c22c7934ea29ba1fd6f9ca2403))\n* **deps:** bump html-to-text from 9.0.4 to ^9.0.5 ([bb50bd3](https://github.com/nextcloud/mail/commit/bb50bd3ee49028ee9882bcad5ddd1b59e94edcaf))\n* **deps:** bump iframe-resizer from 4.3.4 to ^4.3.5 ([292a4ed](https://github.com/nextcloud/mail/commit/292a4eda417ec841b61874db5b3ceb0c12f67c4a))\n* **deps:** bump iframe-resizer from 4.3.5 to ^4.3.6 ([1258c20](https://github.com/nextcloud/mail/commit/1258c204a8b18b5454b41654089d73075fa6e108))\n* **deps:** bump iframe-resizer from 4.3.6 to ^4.3.7 (main) ([#8876](https://github.com/nextcloud/mail/issues/8876)) ([a0e1b75](https://github.com/nextcloud/mail/commit/a0e1b758a5b7b6e3aae9d96c2a2292c0446cf47f))\n* **deps:** bump ramda from 0.28.0 to ^0.29.0 ([dc1b797](https://github.com/nextcloud/mail/commit/dc1b797b2e1bd9320b73d3725299c85e3636adde))\n* **deps:** bump ramda from 0.29.0 to ^0.29.1 ([a7da9c5](https://github.com/nextcloud/mail/commit/a7da9c57c8666f0192f1fa68f0358e9821263b2b))\n* **deps:** bump rubix/ml from 2.3.0 to v2.3.1 ([3f3b8ab](https://github.com/nextcloud/mail/commit/3f3b8abf08855042ff04d779607f30584597dd76))\n* **deps:** bump rubix/ml from 2.3.1 to v2.3.2 ([b1d0c39](https://github.com/nextcloud/mail/commit/b1d0c39f0e061caf8d15481f5f67326c5fc428ec))\n* **deps:** bump rubix/ml from 2.3.2 to v2.4.0 (main) ([#8878](https://github.com/nextcloud/mail/issues/8878)) ([2bf6339](https://github.com/nextcloud/mail/commit/2bf6339760d4d654883f0f4768ed3a3567755f1c))\n* **deps:** bump stylelint from 14.16.1 to v15 ([58cc279](https://github.com/nextcloud/mail/commit/58cc279cc100ebe7a146f970b912839a6f79f608))\n* **deps:** bump stylelint from 15.10.1 to ^15.10.2 (main) ([#8652](https://github.com/nextcloud/mail/issues/8652)) ([55071f1](https://github.com/nextcloud/mail/commit/55071f1bfcb319b93be867e2a9993fe945eca7ba))\n* **deps:** bump stylelint from 15.10.2 to ^15.10.3 (main) ([#8794](https://github.com/nextcloud/mail/issues/8794)) ([19fb7d1](https://github.com/nextcloud/mail/commit/19fb7d13a55f29a4de1ac60ffacfcbfca1662a75))\n* **deps:** bump stylelint from 15.10.3 to ^15.11.0 (main) ([#8972](https://github.com/nextcloud/mail/issues/8972)) ([029a85e](https://github.com/nextcloud/mail/commit/029a85ec6283b5a5f64d8109ba3a086c24213105))\n* **deps:** bump stylelint from 15.6.0 to ^15.6.1 ([bb01248](https://github.com/nextcloud/mail/commit/bb012480e1bcc746f2410f6a2c41241609839eb9))\n* **deps:** bump stylelint from 15.6.1 to ^15.6.2 ([36919f8](https://github.com/nextcloud/mail/commit/36919f817dc88d104aa7efd63ab571fae7024ab9))\n* **deps:** bump stylelint from 15.6.2 to v15.10.1 ([03a1960](https://github.com/nextcloud/mail/commit/03a19607efa299c92c51cbb53df7d75e0392db7f))\n* **deps:** bump uuid from 9.0.0 to ^9.0.1 (main) ([#8861](https://github.com/nextcloud/mail/issues/8861)) ([c127802](https://github.com/nextcloud/mail/commit/c1278020abf4b0b2dc42687913d527c02f889279))\n* **deps:** bump vue monorepo from 2.7.14 to ^2.7.15 (main) ([#8998](https://github.com/nextcloud/mail/issues/8998)) ([048cfcf](https://github.com/nextcloud/mail/commit/048cfcf180064f8b02fb5be08776055bc4b91e56))\n* **deps:** bump webdav from 4.11.2 to ^4.11.3 (main) ([#8832](https://github.com/nextcloud/mail/issues/8832)) ([6a3eb86](https://github.com/nextcloud/mail/commit/6a3eb86ac548e23d7dd032c2553873c8848f0661))\n* **deps:** bump webpack to v5.76.0 ([283751c](https://github.com/nextcloud/mail/commit/283751c36c014f0f550a9324870f0f10b7aa5dc2))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 37.0.1 to 37.0.1 ([97d3f99](https://github.com/nextcloud/mail/commit/97d3f99dcc5a75f1b9d6d71553db877ea5d6dd94))\n* **deps:** pin dependencies ([04f90aa](https://github.com/nextcloud/mail/commit/04f90aac8fa8e3406c5678e1176a5eccc167c9cc))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-utils to ~33.0.1 ([b6c05fb](https://github.com/nextcloud/mail/commit/b6c05fb41716eecefd6edb7a74907e82c30030bf))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-webpack-plugin to ~31.1.13 ([1a6df4d](https://github.com/nextcloud/mail/commit/1a6df4dccbeb528935b57b7823554330cde584c6))\n* **deps:** update dependency @nextcloud/calendar-js to ^3.2.0 ([34e890f](https://github.com/nextcloud/mail/commit/34e890f6b140b0d660eb063e54abf5d539aa430c))\n* **deps:** update dependency @nextcloud/l10n to ^2.1.0 ([9e02ddf](https://github.com/nextcloud/mail/commit/9e02ddf783442d446081c749e670ac8896b35e67))\n* **deps:** update dependency @nextcloud/logger to ^2.5.0 ([63fa8fc](https://github.com/nextcloud/mail/commit/63fa8fcd18fd3be24d59fc8877a52af33956dbf5))\n* **deps:** update dependency @nextcloud/router to ^2.0.1 ([640cb16](https://github.com/nextcloud/mail/commit/640cb16318de8b66d8594983696d0326eb04bdc5))\n* **deps:** update dependency arthurhoaro/favicon to ^1.3.3 ([3dd40d9](https://github.com/nextcloud/mail/commit/3dd40d9c983d230257c26033d56c609a885b2834))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.8.2 ([72a6c3d](https://github.com/nextcloud/mail/commit/72a6c3da4051f6fbe80dcf5f9fbca60e8e6a7902))\n* **deps:** update dependency bytestream/horde-exception to ^2.2.0 ([c6a22fb](https://github.com/nextcloud/mail/commit/c6a22fb5145f96cc6f0f1583b4a7712fe76dd5aa))\n* **deps:** update dependency bytestream/horde-imap-client to ^2.32.0 ([fd710ca](https://github.com/nextcloud/mail/commit/fd710caa1bc5c8e1d0273c50ad1af779e3779262))\n* **deps:** update dependency bytestream/horde-mail to ^2.7.1 ([e7f928a](https://github.com/nextcloud/mail/commit/e7f928aa0445e360a6c8148d3cd07b87c920b285))\n* **deps:** update dependency bytestream/horde-mime to ^2.13.0 ([9ba0faa](https://github.com/nextcloud/mail/commit/9ba0faaf21c7a488d7bd68b659d0bf0792ae4b57))\n* **deps:** update dependency bytestream/horde-stream to ^1.7.1 ([32dd650](https://github.com/nextcloud/mail/commit/32dd6505b093c91c688231f6297147d2f6462220))\n* **deps:** update dependency bytestream/horde-stringprep to ^1.2.1 ([6899089](https://github.com/nextcloud/mail/commit/6899089b54536f6887ac0ed8fb0bfd85c64e3dbe))\n* **deps:** update dependency bytestream/horde-support to ^2.4.0 ([0815416](https://github.com/nextcloud/mail/commit/0815416339873da5fcac33742d2e9564311a71c4))\n* **deps:** update dependency bytestream/horde-text-filter to ^2.5.0 ([c3e551a](https://github.com/nextcloud/mail/commit/c3e551ad07f1cfd0bae89b503526807c8d7dab5f))\n* **deps:** update dependency bytestream/horde-util to ^2.7.0 ([3189a16](https://github.com/nextcloud/mail/commit/3189a1662e5fc3473cb517a0bdc94d45773d154c))\n* **deps:** update dependency core-js to ^3.28.0 ([6024f02](https://github.com/nextcloud/mail/commit/6024f025b649fe714a36cd4544c706868e8cf403))\n* **deps:** update dependency dompurify to ^2.4.4 ([f5e1f7a](https://github.com/nextcloud/mail/commit/f5e1f7a322fe3324342f12a92c6df41352713950))\n* **deps:** update dependency html-to-text to ^9.0.4 ([8cd5302](https://github.com/nextcloud/mail/commit/8cd53027c1e893bcb5f3dc32cc03b3ccd8a85943))\n* **deps:** update dependency html2text/html2text to ^4.3.1 ([e7c6575](https://github.com/nextcloud/mail/commit/e7c65752296babeb30fb2ffce4d9be7755cff9e4))\n* **deps:** update dependency iframe-resizer to ^4.3.4 ([b0b5368](https://github.com/nextcloud/mail/commit/b0b536802116bc562b89b9e849253b34c98b0427))\n* **deps:** update dependency js-base64 to ^3.7.5 ([e0d0502](https://github.com/nextcloud/mail/commit/e0d0502a0f6c943022987ebafb70dd971557a0b0))\n* **deps:** update dependency nextcloud/horde-smtp to ^1.0.2 ([de218de](https://github.com/nextcloud/mail/commit/de218de8faf08072fd032ab7516efbd07f3b1969))\n* **deps:** update dependency sabberworm/php-css-parser to ^8.4.0 ([18dc8ca](https://github.com/nextcloud/mail/commit/18dc8cacc7d8d2d1c20f29e89a3f377276be0550))\n* **deps:** Update voku/* to fix PHP8.2 warnings ([5b816be](https://github.com/nextcloud/mail/commit/5b816be463bfb11b6306b33f89bb293930028150))\n* **deps:** Update wamania/php-stemmer and voku/portable-utf8 ([f176956](https://github.com/nextcloud/mail/commit/f176956aff7d299dc148b4865fccc0792be99556))\n* downgrade nextcloud/vue to 7.8.0 to fix envelope list ([7c7da66](https://github.com/nextcloud/mail/commit/7c7da66a3704846de3b5ab29ab3ba1f5d2fc3ce5))\n* **drafts:** delete old draft when saving new version ([d7a9370](https://github.com/nextcloud/mail/commit/d7a93709b8af95a1a153f805bf518bb4c498c201))\n* drop index on mail_messages_retention.message_id ([a884ebf](https://github.com/nextcloud/mail/commit/a884ebf2ea187c78c2d8a0837bc848c15a8b42e9))\n* drop unique index on mail_messages_snoozed.message_id ([d7e397e](https://github.com/nextcloud/mail/commit/d7e397e5844d47a23bb8cfa339560b76ac995049))\n* endless loop on mailbox initialization ([0048e40](https://github.com/nextcloud/mail/commit/0048e4002cf6c91680c8855b2a41c91708d85e1c))\n* **envelope menu:** prevent modals from closing automatically ([b0209f1](https://github.com/nextcloud/mail/commit/b0209f1aae8190812fa07ed275d44fd80e352c08))\n* handle attachments without transfer encoding properly ([8c3c248](https://github.com/nextcloud/mail/commit/8c3c248c585ba8da036cd8bc3cc2cdfc79ad02f3))\n* handling of envelope fetch error messages ([d4a5e8e](https://github.com/nextcloud/mail/commit/d4a5e8e9c697ad27c0c63f81e2872d33cfef3cb1))\n* Harden outbox/draft message retrieval of shared storage ([2eaa6eb](https://github.com/nextcloud/mail/commit/2eaa6eb145a6f856c402d71d4fe61869815ec6f3))\n* html-entitites via mb_convert_encoding was deprecated with php 8.2 ([71490a0](https://github.com/nextcloud/mail/commit/71490a0b02bbc0fd8844a5c39d44e609f4448986))\n* **i19n:** Changed grammar ([7a36cdb](https://github.com/nextcloud/mail/commit/7a36cdbbd2c02fa7254a6d53e28715bf827daec5))\n* **imap:** Chunk MessageMapper::findByIds by command length ([768d8f8](https://github.com/nextcloud/mail/commit/768d8f8ffc505c587686a13d97dbef017aaf23c7))\n* **imap:** Chunk UIDs by string length ([df9e386](https://github.com/nextcloud/mail/commit/df9e386bdd4e9b1d483acd07a94a9b04c6ac5dc2))\n* **imap:** Ignore no select mailboxes for MYRIGHTS ([426d51f](https://github.com/nextcloud/mail/commit/426d51f105d4103435a0a0875e25a0a635d33adf))\n* **imap:** Ignore non existent mailboxes (again) ([e5e6402](https://github.com/nextcloud/mail/commit/e5e640209fb140e6ff97b7bfaccd704801563764))\n* **imap:** Log exception of failed namespace fetch ([74159b2](https://github.com/nextcloud/mail/commit/74159b28a631567e6aa4582c09d84551e3a45ae1))\n* **imap:** Only fetch mailbox STATUS once ([9582004](https://github.com/nextcloud/mail/commit/9582004b27320a73ffe701e3fba6db9a2354ace3))\n* **mailbox cache:** Fix mailbox cache sync scope of current mailbox ([4d7c52d](https://github.com/nextcloud/mail/commit/4d7c52dc7069f7b940da31166cdfbede836a3fca))\n* **mailto:** show empty thread view on handler ([43bdb38](https://github.com/nextcloud/mail/commit/43bdb38ee501d3e884ac275b5dba4141643d1627))\n* **mailvelope:** hide the missing pgp key warning when mailevelope is disabled again ([ef2481f](https://github.com/nextcloud/mail/commit/ef2481f8b7bf7124fafc08ee4e36a5902828693f))\n* make nested toolbar working for signature editor ([8c0965c](https://github.com/nextcloud/mail/commit/8c0965c775ab672cf1a2c24f161bad35da71da4c))\n* Make no sent mailbox configurged exception readable ([7109f99](https://github.com/nextcloud/mail/commit/7109f998fa34e1920b917c1fb1e8859b957ba112))\n* Merge overlapping recipient popovers ([c2925f1](https://github.com/nextcloud/mail/commit/c2925f143385f6a7e0f76a3108e4173c7e1ef7a0))\n* **message-filter:** Show starred messages in Favourites again ([465d4e5](https://github.com/nextcloud/mail/commit/465d4e5d52d5cc847523641b554911095d2011cd))\n* move to.exact route option to a prop ([a10117c](https://github.com/nextcloud/mail/commit/a10117ced60837c8993f1e4f1b0a84a81f0d6f9d))\n* **outbox:** select correct account/alias when opening messages ([2471880](https://github.com/nextcloud/mail/commit/247188068f2c364939de10bfce92d25a93c590eb))\n* **php:** Fix ProvisioningMiddleware method return type ([aae086c](https://github.com/nextcloud/mail/commit/aae086cbcb408764d5c8279e17d4fe87f358248d))\n* Position thread envelope icons relative to avatar ([ae619aa](https://github.com/nextcloud/mail/commit/ae619aa46b950858b4bcff0ad545a4955f0c8d3e))\n* **preprocessing:** chunk message query ([62a1c98](https://github.com/nextcloud/mail/commit/62a1c98a83677b937dff8f890acd9db74e5c349a))\n* **provisioning:** Clear cache before returning ([961533d](https://github.com/nextcloud/mail/commit/961533db6b7d7633638d52cc862b638830929e64))\n* **provisioning:** Clear config cache after every mutation ([b6f7073](https://github.com/nextcloud/mail/commit/b6f707350de39c07728ab46f84e73d16c52fdc17))\n* **provisioning:** Return database ID of new configs ([81f35a2](https://github.com/nextcloud/mail/commit/81f35a2990c52c9aeda5b53ed48f34044a0d1beb))\n* **proxy:** Add image proxy rate limit ([18f886c](https://github.com/nextcloud/mail/commit/18f886c37bd48db00087143ae012e37405559c70))\n* **quota:** Rename placeholder and fix desktop notification ([cc87c54](https://github.com/nextcloud/mail/commit/cc87c54f02f6d084e7f3bd1ee7f1b3eecc15e515))\n* **Quota:** set job time insensitive and lower interval ([0e7f635](https://github.com/nextcloud/mail/commit/0e7f63572d47f6db021b22a333c29e0cff6ef951))\n* Rate-limit IMAP auth if the password is wrong ([6528dec](https://github.com/nextcloud/mail/commit/6528dec049e31b7718b9b03d08f0d672c84fb695))\n* regressions from ACL pulls ([6cde824](https://github.com/nextcloud/mail/commit/6cde82485907ddeb37c8edea497ebee9bd22fc45))\n* **retention:** properly clean orphans ([c99577d](https://github.com/nextcloud/mail/commit/c99577dccbccd39725dc29aba19e7b7c84ec454c))\n* Revert empty array checks in Horde Cache ([b780e7e](https://github.com/nextcloud/mail/commit/b780e7ea30f9db70c195d89a0de7307dc15523df))\n* saving preferences not extracting the returned value properly ([abe3205](https://github.com/nextcloud/mail/commit/abe3205d81848faeed9d95d63685a4289cd8e570))\n* **search:** Fix combining IMAP and DB search results ([3aabd7a](https://github.com/nextcloud/mail/commit/3aabd7a2a369ba4ab6f766d501045e959bdc6d5f))\n* **search:** Limit recipient joins to their types ([1bbb44b](https://github.com/nextcloud/mail/commit/1bbb44b6a888c697e5e241cd8abffa694f53c844))\n* **search:** URL-encode all parameters to preserve special characters ([1ef331c](https://github.com/nextcloud/mail/commit/1ef331c2707a1cf04183340ad78c067b3fbc4097))\n* **search:** Use corresponding table alias for recipient search ([2270a93](https://github.com/nextcloud/mail/commit/2270a931b5af7f2902b256a1471b2a251a917bfb))\n* **sender-details:** show contact names again ([b448594](https://github.com/nextcloud/mail/commit/b4485947b642af3b3751372ed0382808496db975))\n* **settings:** fix account settings modal close button ([dfbfaa3](https://github.com/nextcloud/mail/commit/dfbfaa3de38c5faf5a3040db72466ed2e0820c2d))\n* **setup:** Fix sending password for OAUTH accounts ([871ffc9](https://github.com/nextcloud/mail/commit/871ffc9b890555718d126b8e896ed0072acac72e))\n* **setup:** Fix storing password when we don't expect one ([964f665](https://github.com/nextcloud/mail/commit/964f665f1a935896a41f31b49916ad0facbc42b7))\n* **setup:** Rate limit auto config attempts ([a82b8ab](https://github.com/nextcloud/mail/commit/a82b8ab9cba4b17c0fdcd0a4ae4b2ac7744692cd))\n* share enumeration constraints on autocomplete ([1f4ad67](https://github.com/nextcloud/mail/commit/1f4ad67c6a23f053a8b8a3a3c669eabaf1753f49))\n* **sieve:** load sieve scipt on open settings ([5a7a04f](https://github.com/nextcloud/mail/commit/5a7a04f69f4ba8025bef4d68c64967c70eb2419e))\n* **sieve:** show feedback on syntax error ([3443da7](https://github.com/nextcloud/mail/commit/3443da78be8186fd12a1af94227afe607ef9fb25))\n* **smime:** add missing primary key to certificate table ([59e7728](https://github.com/nextcloud/mail/commit/59e77285e31e1d71f69763171e473dd7fed48b77))\n* **smime:** add missing ReturnTypeWillChange annotation ([6607f4d](https://github.com/nextcloud/mail/commit/6607f4df966a1557ac69c3dc4189e616fc0c9768))\n* **smime:** handle certificates with no emailAddress field ([3490178](https://github.com/nextcloud/mail/commit/3490178e3a5a2f96f383da297bcedf0bb83c789e))\n* **smime:** handle PKCS12 stores with multiple certificates ([1c445d0](https://github.com/nextcloud/mail/commit/1c445d0070e3562afff085fa302901305db8d0be))\n* **smime:** set primary key in first migration ([3a19298](https://github.com/nextcloud/mail/commit/3a1929879ad5fe190f6180c0d271ac9272e65e49))\n* **snooze:** Add cleanup orphan db entries ([bd184dd](https://github.com/nextcloud/mail/commit/bd184ddba9badf7cb808ee1143989b08996f1427))\n* **Snooze:** Add unsnooze action ([3f5f9dd](https://github.com/nextcloud/mail/commit/3f5f9ddd4ab193d0790a6bc88fd13c42f38ed17d))\n* **Snooze:** Allow snoozing gmail messages ([0a98404](https://github.com/nextcloud/mail/commit/0a984048ccdac67ac8bd0be0dd2e1a155ebd5bbd))\n* **snooze:** create snooze mailbox on first snooze ([d38e426](https://github.com/nextcloud/mail/commit/d38e4265d6de3f9d38fc386bedfc08cd8be4b733))\n* **snooze:** force sync of snooze mailbox ([4afdafc](https://github.com/nextcloud/mail/commit/4afdafcf1c802fff1b119b1ad073a8f4c1425c95))\n* **Snooze:** Move the message back to src mailbox on wake ([c5e2bee](https://github.com/nextcloud/mail/commit/c5e2bee1e463b2f8c2986837e939e42ec282c357))\n* **Snooze:** some minor changes ([326d48f](https://github.com/nextcloud/mail/commit/326d48fd85a2e6cafe6b27f63f0fb48976ae162f))\n* **Snooze:** Sort snooze mailbox as specialUse ([ad6b723](https://github.com/nextcloud/mail/commit/ad6b723e18f16c879b47d5dd051d0fe67718bb98))\n* **strings:** Explicit set/unset tag in TagModal ([51bc6a2](https://github.com/nextcloud/mail/commit/51bc6a2b221f7c7028079e0ad1584371357d6b94))\n* **strings:** Placeholders in SearchMessage comp ([80f7108](https://github.com/nextcloud/mail/commit/80f710835fa546105150de6aad5b8c4fe2612ea9))\n* **sync:** mailboxes not being synced due to short circuiting ([7c2c806](https://github.com/nextcloud/mail/commit/7c2c8063c8f7a4abb57ceb5e351efe1e8fe6e882))\n* **sync:** return if headers couldn't be parsed ([998bf34](https://github.com/nextcloud/mail/commit/998bf34b5c6f36d46c5e96237a79b77d9a09c737))\n* **tags:** Fix multiple tags with same label ([3773d0b](https://github.com/nextcloud/mail/commit/3773d0bcd263ac871d4bc518b4c18df6ecb2993b))\n* **tags:** Hide \"Has Cal\" tag ([87d3aa3](https://github.com/nextcloud/mail/commit/87d3aa3a54265e4aed44e0b561974c8a9a805a50))\n* **unsubscribe:** fix button style ([9142ada](https://github.com/nextcloud/mail/commit/9142ada5224cb23305f498cc709fd29395617471))\n* update interface to match implementation ([55f6c7e](https://github.com/nextcloud/mail/commit/55f6c7e131fa43eb9adde08df9343b2aa3cbb048))\n* update mocked time for new job interval ([1b83193](https://github.com/nextcloud/mail/commit/1b8319324eb1adcbb96c8f40d908763d483e109b))\n* use api to read input value ([89b3f9c](https://github.com/nextcloud/mail/commit/89b3f9ccc00dba84d7adb84684ed44f72749fe10))\n* **XOAUTH2:** Defer OAUTH account detection ([df69d19](https://github.com/nextcloud/mail/commit/df69d19ed22a6c7613c1843d931398c62c12b739))\n\n\n### Features\n\n* **acl:** check delete acl for move operation ([8d7a80b](https://github.com/nextcloud/mail/commit/8d7a80b8b1908244daa98b67f08f7eb7d46010ae))\n* **acl:** respect acl for MailboxInlinePicker ([83ff894](https://github.com/nextcloud/mail/commit/83ff89433031be3b0ea5953e302f9d88a2ef7b6d))\n* **acl:** Use shared folder icon for shared mailboxes ([c0687bf](https://github.com/nextcloud/mail/commit/c0687bf5f885e35f56a4ebc75cdd0c8520866eb0))\n* add snooze mvp ([e16b6a7](https://github.com/nextcloud/mail/commit/e16b6a75a4f5e24deacaa5a278d32f65062746f9))\n* add utility mailboxHasRights ([08d08bb](https://github.com/nextcloud/mail/commit/08d08bb6ba888b7277f8030f98d25316587a3e29))\n* Allow a configurable background sync interval ([89e009e](https://github.com/nextcloud/mail/commit/89e009ea22f1800008a9f12122d1b6392c5d2954))\n* **autoresponder:** implement subject placeholder ([42cae42](https://github.com/nextcloud/mail/commit/42cae425b6217c1173662db6aa1d3ca040a3f4a1)), closes [#7216](https://github.com/nextcloud/mail/issues/7216)\n* **classification:** refactor IExtractor::extractor ([1790f01](https://github.com/nextcloud/mail/commit/1790f01ba89d53e30730ce6bfc74e4db8d70d963))\n* compatibility layer for legacy exceptions ([118671f](https://github.com/nextcloud/mail/commit/118671f4d5d85f794f413592509cb7b23615777c))\n* delete tags ([50f0772](https://github.com/nextcloud/mail/commit/50f07725796317b00928c47e217f2c235eb37d69))\n* **deps:** Add Nextcloud 27 support ([aa32a2c](https://github.com/nextcloud/mail/commit/aa32a2c0b0fccead9cfb045085095bf0b3fc7613))\n* **deps:** Add Nextcloud 28 support ([6cc4d93](https://github.com/nextcloud/mail/commit/6cc4d930f935a717b505d1245ff41abaf92fab0e))\n* Easy unsubscribe from lists with http unsubscribe header ([491970a](https://github.com/nextcloud/mail/commit/491970abb12da520426b7a755f018281499bd35d))\n* Easy unsubscribe from lists with mailto unsubscribe header ([dc30fa6](https://github.com/nextcloud/mail/commit/dc30fa60adc173993c82436c24e71b184d5bc7f4))\n* exclude envelopes from junk from threading view ([4ddd3f6](https://github.com/nextcloud/mail/commit/4ddd3f635b10d082a39347c7d407fbbbd171e2af))\n* hide mailboxes when the user is not allowed to move something there ([fdca17f](https://github.com/nextcloud/mail/commit/fdca17fba11943da382cd8b56aac673fa5fc50cb))\n* **imap:** Persist if mailbox is shared or not ([4c27112](https://github.com/nextcloud/mail/commit/4c271120ff564c1ff9e728465c3d82bf92fa57c4))\n* implement trash retention ([de09050](https://github.com/nextcloud/mail/commit/de09050a3a03a3a762250566baa1c99ca400cf58))\n* load active sieve script on demand ([1a7fbc3](https://github.com/nextcloud/mail/commit/1a7fbc39fc791b175659250a5e24ed6a843dd418))\n* **mailbox sharing:** Read, cache and expose my ACL rights ([76d7d7c](https://github.com/nextcloud/mail/commit/76d7d7c9564000c9c52e7c43f7897458f326f34e))\n* move messages to junk folder ([45c5ab9](https://github.com/nextcloud/mail/commit/45c5ab9277ba50b2499ca05e7bf3e568d3ea1a44))\n* **occ:** Add ML prediction command ([98607e2](https://github.com/nextcloud/mail/commit/98607e26237d7c58ec5156421697b6a8ba3e7956))\n* One-click unsubscribe ([f2b61b3](https://github.com/nextcloud/mail/commit/f2b61b383b95cecaafd2fc078aa91999d8feb8f2))\n* parse mailto addresses ([6261efc](https://github.com/nextcloud/mail/commit/6261efcf2feffd37e0b11c6f2bc992235b9a0411))\n* plugin to insert smart picker links ([f34f69b](https://github.com/nextcloud/mail/commit/f34f69b3ab8d0be424cad49afbd70e8a0b93fd04))\n* remove cast to int ([fa5830b](https://github.com/nextcloud/mail/commit/fa5830b43af6bbea2622e5837d39a46aba1a4630))\n* remove toggle for move junk ([fd1437b](https://github.com/nextcloud/mail/commit/fd1437b7a2252e6cf7f62ac5775f2bc3e3f019fa))\n* Rework draft handling front-end ([f1f757e](https://github.com/nextcloud/mail/commit/f1f757e57bcf1fce74fa202c8e261eceb79a0dd4))\n* **search:** Match recipient labels too ([102a070](https://github.com/nextcloud/mail/commit/102a07060619432324729d7a50a56f7c5d5dfb91))\n* **search:** Use case-independent wildcard matches for recipients ([8955638](https://github.com/nextcloud/mail/commit/89556386b4a21fe37d879f93735caa95500342fe))\n* send multiple flags in a single request ([95319c0](https://github.com/nextcloud/mail/commit/95319c043bbafa32228b69fc0fa8626d056f31e8))\n* set app name for mail ([8005431](https://github.com/nextcloud/mail/commit/8005431d91a37d47223fbcd6a65a19790c6af6c1))\n* **settings:** add title to account settings modal ([9bd0f9f](https://github.com/nextcloud/mail/commit/9bd0f9f6bb8a43855cf0a885f6cac542984ce1af))\n* **smime:** decrypt incoming messages ([6fcb907](https://github.com/nextcloud/mail/commit/6fcb90796f4d0088d576aa56ada50bcc36b6ffc0))\n* **smime:** encrypt messages ([9c568b5](https://github.com/nextcloud/mail/commit/9c568b5e25d6f3eaf09d556e09825d5983d02077))\n* **smime:** import pkcs12 certificates ([5a1428a](https://github.com/nextcloud/mail/commit/5a1428ac3023ad93deedadf6565a8d6d8a643cbd))\n* **smime:** import smime certificates ([4c35589](https://github.com/nextcloud/mail/commit/4c35589f7cd52ca24cfec3b5630fbdc43d67e81d))\n* **smime:** show a warning when a signature is not verified ([e305db8](https://github.com/nextcloud/mail/commit/e305db89ac0b0480cd66cf105ec8dc6925700f73))\n* **smime:** sign outgoing emails ([c0db433](https://github.com/nextcloud/mail/commit/c0db433d75ec01b95fcbf629d6e6ceaf43ab57ec))\n* **smime:** verify signature of encrypted messages ([1efd801](https://github.com/nextcloud/mail/commit/1efd8013bcb241df128b1a5894308abe44e18edd))\n* **smime:** verify signed messages ([3ab22fa](https://github.com/nextcloud/mail/commit/3ab22fade847175938b4a39590bb6c63100461e0))\n* **snooze:** Disable snooze on AJAX cron ([49725af](https://github.com/nextcloud/mail/commit/49725af3a9365237168a15d4d11f3ab291d69bdd))\n* **unsubscribe:** validate dkim signature for one click unsubscribe ([448dabd](https://github.com/nextcloud/mail/commit/448dabd64427483f4bc3068c133ef20263e3ef6e))\n* use proper json response for getDkim ([35d824d](https://github.com/nextcloud/mail/commit/35d824dca070218bd492f118af431b9e841bff3f))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([1e28bc6](https://github.com/nextcloud/mail/commit/1e28bc60db0c0c3dac537b2422d37185299c2d4e))\n* **dashboard:** implement widget item api v2 ([19f21af](https://github.com/nextcloud/mail/commit/19f21af9914bc7cd338dc37e391bea75fb272aa3))\n* **frontend:** Load NewMessageModal async ([ab26e4b](https://github.com/nextcloud/mail/commit/ab26e4bb359c5fe9edd3f167ee0dd3e097904723))\n* **frontend:** Load the account settings modal async ([f7949b3](https://github.com/nextcloud/mail/commit/f7949b32320fc86b203a5ea8484deb00a9c0e907))\n* **imap:** Reduce number of STATUS commands for background mailbox sync ([f4b01d9](https://github.com/nextcloud/mail/commit/f4b01d9fa8adee1825abcc1c3a32268dc98c4856))\n* **PHP:** Use static closures where possible ([e02a205](https://github.com/nextcloud/mail/commit/e02a2051f517a10b9f0e521ce03759ed6652a3e7))\n\n\n### Reverts\n\n* Revert \"improve message preview\" ([04f1842](https://github.com/nextcloud/mail/commit/04f1842f105e4a57a4fdd9d16db4f5743dd054ce))\n* Revert \"fix(deps): update dependency @nextcloud/vue to ^7.7.0\" ([a5568e2](https://github.com/nextcloud/mail/commit/a5568e2cd49a8ef4ceb59dc6ee11f3bbff56b182))\n* Revert \"chore(deps): Enable renovate bumps on main\" ([255efb7](https://github.com/nextcloud/mail/commit/255efb7902349152cda31fa98fd1c711d6107393))\n* Revert \"Add Provision info to occ account:export command\" ([260dc4e](https://github.com/nextcloud/mail/commit/260dc4e2f9e09740a483e092fa5ef897f4adc56b))\n* Revert \"Explicitly specify Postgres 14 as NC25 isn't compatible with Postgres 15\" ([370c29e](https://github.com/nextcloud/mail/commit/370c29e27dc8c6f12aee4132df874f6792c20e85))\n\n\n\n# [2.0.0-RC1](https://github.com/nextcloud/mail/compare/v2.0.0-beta.7...v2.0.0-RC1) (2022-09-26)\n\n\n\n# [2.0.0-beta4](https://github.com/nextcloud/mail/compare/v2.0.0-beta3...v2.0.0-beta4) (2022-09-08)\n\n\n\n# [2.0.0-beta3](https://github.com/nextcloud/mail/compare/v2.0.0-beta1...v2.0.0-beta3) (2022-09-06)\n\n\n\n# [2.0.0-beta1](https://github.com/nextcloud/mail/compare/v1.14.0-beta1...v2.0.0-beta1) (2022-09-05)\n\n\n### Reverts\n\n* Revert \"Update vue to 5.4.0\" ([970bcc4](https://github.com/nextcloud/mail/commit/970bcc409e60f4abc6d0bf628cd5d60cd8995011))\n\n\n\n# [1.13.0-beta3](https://github.com/nextcloud/mail/compare/v1.13.0-beta1...v1.13.0-beta3) (2022-05-23)\n\n\n### Reverts\n\n* Revert \"Check account for currentness before reprovisioning it\" ([27fe297](https://github.com/nextcloud/mail/commit/27fe2975aac226aad344d7a54b0858d136565d91))\n\n\n\n# [1.12.0-rc.1](https://github.com/nextcloud/mail/compare/v1.11.0...v1.12.0-rc.1) (2022-04-14)\n\n\n### Reverts\n\n* Revert \"Add more logging to IMAP to DB conversion\" ([9ed5c3b](https://github.com/nextcloud/mail/commit/9ed5c3b2332137461d77da8b30cb66b02068a5ee))\n\n\n\n# [1.11.0](https://github.com/nextcloud/mail/compare/v1.11.0-rc1...v1.11.0) (2021-11-29)\n\n\n\n# [1.11.0-rc1](https://github.com/nextcloud/mail/compare/v1.10.0-RC.1...v1.11.0-rc1) (2021-11-18)\n\n\n### Bug Fixes\n\n* handle invalid imap message id ([b2cdc5a](https://github.com/nextcloud/mail/commit/b2cdc5a8ac1a061ed9521274d92a548074a0e1ca))\n\n\n\n# [1.10.0-RC.1](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.7...v1.10.0-RC.1) (2021-06-22)\n\n\n\n# [1.10.0-alpha.7](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.6...v1.10.0-alpha.7) (2021-06-10)\n\n\n\n# [1.10.0-alpha.6](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.4...v1.10.0-alpha.6) (2021-06-01)\n\n\n\n# [1.9.0](https://github.com/nextcloud/mail/compare/v1.9.0-alpha3...v1.9.0) (2021-03-03)\n\n\n\n# [1.9.0-alpha3](https://github.com/nextcloud/mail/compare/v1.9.0-alpha2...v1.9.0-alpha3) (2021-03-01)\n\n\n\n# [1.8.0](https://github.com/nextcloud/mail/compare/v1.7.0...v1.8.0) (2021-01-20)\n\n\n\n# [1.7.0](https://github.com/nextcloud/mail/compare/v1.6.0...v1.7.0) (2020-11-11)\n\n\n\n# [1.6.0](https://github.com/nextcloud/mail/compare/v1.5.0...v1.6.0) (2020-11-04)\n\n\n### Reverts\n\n* Revert \"Bump @ckeditor/ckeditor5-editor-balloon from 23.0.0 to 23.1.0\" ([fb1235c](https://github.com/nextcloud/mail/commit/fb1235cba31b12519f6b884e2774067eefe2a332))\n* Revert \"Bump @ckeditor/ckeditor5-alignment from 23.0.0 to 23.1.0\" ([f052364](https://github.com/nextcloud/mail/commit/f0523642f312727da08de1d5703992dd936868cf))\n* Revert \"Bump @ckeditor/ckeditor5-block-quote from 23.0.0 to 23.1.0\" ([edb4035](https://github.com/nextcloud/mail/commit/edb403518a06ec1ae47b5be9e070584f42b545ce))\n* Revert \"Bump @ckeditor/ckeditor5-heading from 23.0.0 to 23.1.0\" ([1a4c331](https://github.com/nextcloud/mail/commit/1a4c33165912d068d3003b3a6d859d9c8ae47682))\n\n\n\n# [1.5.0](https://github.com/nextcloud/mail/compare/v1.5.0-rc2...v1.5.0) (2020-10-02)\n\n\n\n# [1.5.0-rc2](https://github.com/nextcloud/mail/compare/v1.5.0-rc1...v1.5.0-rc2) (2020-10-02)\n\n\n\n# [1.5.0-rc1](https://github.com/nextcloud/mail/compare/v1.5.0-beta3...v1.5.0-rc1) (2020-09-29)\n\n\n\n# [1.5.0-beta2](https://github.com/nextcloud/mail/compare/v1.5.0-beta1...v1.5.0-beta2) (2020-09-22)\n\n\n\n# [1.5.0-beta1](https://github.com/nextcloud/mail/compare/v1.5.0-alpha3...v1.5.0-beta1) (2020-09-22)\n\n\n\n# [1.4.0-rc1](https://github.com/nextcloud/mail/compare/v1.4.0-beta2...v1.4.0-rc1) (2020-06-04)\n\n\n\n# [1.4.0-beta2](https://github.com/nextcloud/mail/compare/v1.4.0-beta1...v1.4.0-beta2) (2020-05-26)\n\n\n\n# [1.4.0-beta1](https://github.com/nextcloud/mail/compare/v1.3.3...v1.4.0-beta1) (2020-05-20)"}},"signatureDigest":"sha512"},{"version":"5.12.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.0-rc.2/mail-v5.12.0-rc.2.tar.gz","created":"2026-09-08T20:57:45.212861Z","licenses":["agpl"],"lastModified":"2026-09-08T20:57:45.304617Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"c3nwqWsWy7AwS8X4aXGDKdpg4zsNXBf7lN1yOW/+FuCGCuG5ydJRaGlI43IAyHhNO0YmS+9gBS+cldKySTGqLCsLeZHEAOVqrBdALHvJ52wX6Cbwq9gnBIsYaLPSy7z3ltXw3BjnI6Vi3a01qh/MIeCtVH/tvtbRGPhekh7yOyAmfQJURHyK01xb8N5f1o3kgvSalWFKRU1IaJ3Gj2mSxsflJmuDpKz1MmXSl9w0S73E+FsJzJclPyizW7lcbE/gF9TnWQSy7HbaVPLQ8Q7V2mq5IMahZQSRw0oQVl84Apq+4s4vjEn5JNAayUFLRVeHBqZ1jgBGhUACSou/etdvTIFJavDHRnwzVAcVf/fP1UegQ6Ba5n70iAOqKyV26j463T8QtH4tWlgO49Xy4qxQuOgzW6TxIDMBpATor8iidZFtEhlb7uOkDxRS365E9xdnOOCy+gHRVvMIkrf8NXvy7nYPHl9t3Ghu2rMZBKAqSRLZHDUPpYRBNIdOG5poI4cJ+wok85mBiqkzkaxbJQGEmoMLvu8vh3HoBH9vJsOKxGBCdUV5w12i9ai2qxVGMS/idCkslmBzJ29+D8HbvIXL78Lk696AKqCZ5jRkKiorMH3TkadsFkqrewPXC60ywDR+n8LFRR0SwUAFO+9AEN4bRcN7Ia/xEbOizgwQc+oCOsQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.12.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.0-rc.1/mail-v5.12.0-rc.1.tar.gz","created":"2026-09-03T07:11:30.553154Z","licenses":["agpl"],"lastModified":"2026-09-03T07:11:30.644119Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"f9lQi09KhgS62yuMhPXFy6ALwRfIWC2O69TWicOykZEblxZdPtWw+Drv2+FAuEAN9j1iBt+NQYemmf+r/EsFy1/vjdEQHdcpTqCO+hSAq7SE9G6ljJPX6v+91C14wJwjSN2CQyilItAOtVMuvB0bQUWz6BeFysSfBbi+m6XoWX2+1tPnX3If7cyspD3AT7DlqpzKqs9qU447P4Z6R2pDJwohyRm7iiwQVwrAfDv5loSWB84c5kvHojMi6+1Nns1y0TtgwRBO9jDVkGoCDoif0fOcbUj0ArrPWLLMUA2y0eSqgDhmbOFhmYuFFd6ekjW4iVb726xW0Hgv3xzTafiDouSkCoKAvznXbq7WYJ648+kWEYLXFLRWsi7MxN9pJwGtY2XY/p2OMyewIiXpEAEd2YuPx9B1UEd5gDtGJ6WSKY2/X52pe/Ce3bOUdjPxER96PhBVmKUjKqX9hBIH88jJMk0L1lopyj1kuHmTOKMEWTU3aXyvQ1pJAY3Nwx5d7ViRPLnMtfZxNwxV/pCObpDYnIVqUYWiXF1AcrAgoUnz22vL3iLNsgSo4+CU7JRv8eW+lCIJVX9PFc0mNOSOYjPDjBmEEfY3rfhvK5V0ON3kVK7lx0fBqCiz7bi3FtPkoYHRGBJc9Lphc+SMITqNyv8dGvadgpF1NlcpfFkTKbG4dEI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.12.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.0-beta.2/mail-v5.12.0-beta.2.tar.gz","created":"2026-08-31T06:40:20.011958Z","licenses":["agpl"],"lastModified":"2026-08-31T06:40:20.101122Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=36","signature":"pDicuPYagw9lV2rzvHuX97/UtbW7o+mnF5kEIyWG2y9hFv0bCLKJbDjzmFmm2UMQB8wYxWkt/suWBhz88JF44Z4aafg05xzn1roZuXYIZiDrf7eqGI4eX5fWhgaTJpM7vsNJKVQ6P2fnVmSYkLIicxDCX3o7Wi5bwbAKxZYvDSNw8681n5YO16FxcBN2OM5/GVjZFwZnHTeEzmh5sG1Y6pnOUPLLUQDvEwLbEPzGUfg3AtMD4tDXlnnbuvC5gBKMJnWYa9uoA2xC80rimohkoq0c05X2dFVgYxlr48h6P1TcTTDsI4A/gRI4glAJNQL3n45UH9FijXYPK/Guwr5Q07CQBX7IqQTOGg5+C5/VyS0zAB9NyqUILwNnAHE6zIHwmei70pY2cgmduz3iF/HzexHg+n1t9hDJPBtYc0ppHUmmL4IBMXr0p/mx0V5HPI8swZmppUVGfQ/LWXLGQOP+tshE46wI7/yhGzdyY/UnOeppxbyYWmbZbgALhCZidxdzkHdJu0Pa7Xi2/wt6GjhftM7ZzByFpZPqfP+NlVa8ErMOls+s5dSElWuJIs11C+w+pNU1yi0n5qMMYiCK0POyI/cRSiCD+cW7TEOYbC+8bQglZ10hQYVsfSCx6SI+VsNr8qo93/DniRvM08NtvKRDtiakfffCG44FzwFzNXS6/c0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.12.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.0-beta.1/mail-v5.12.0-beta.1.tar.gz","created":"2026-08-25T10:47:46.541784Z","licenses":["agpl"],"lastModified":"2026-08-25T10:47:46.629676Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"OnB33CIDFn3iS4jlJZoH0S9gT1h6UdyCgNGGVsfRBEHaZDKEYReP7hAPoIvkaNu12SlBDRcMTI6pGbk4zUxQtjuwBBI8vE8fr8bU5PRO5V9PZSk/Xbh3RLxBgzMGGSjAxAEjkVaeH+DP98i97t9yrUwJlVDVuzoW4G5PU7TiPPZ07ws4Fn68uOxlvK9d0IHCAmU44T0f0g17I4zhmceP6XZc4wiIaxZcF/yXh/0J54BleYXafYcBI8JA6BDz5eFnSDr1HMrrUfLVgkTyOw2j51mPVAmdKVl/nwjiesqdu5zgqYHfqIKAfPwLfxdk+nudJJJD2/00+dAY4M+KzmLrioYkqmBXpp3VYSO4/a22vTGVZOtmfjK97GrPV/vLDKXKaEx0KhNBhMAljzqQTpKL2GfkSPawRFLQiBFToZbFKQEgxpUyHlzj9S5Q0/D9m+I4nPEVtTebWUMZbzZ+A3zYJBuv8MrusUvL5h3U+wope5sN9k4RhlLDVUGedvW/bPKuB/qnJX6Mug2uiLLu2Ns0sJ/wYjGkpHozeDD81xzSsTjlr8hz9Bjn3nt7bn5jc2tFRTU8ib9o3XKaZCUVcCwqbErrf30yYsNHmyXHdh5tfwzATgsSyviL/24EcIYtI2S/MMNOb1OEa/kz3C3z7jxALSFvQsdxjzOBVCr8ILyTgYg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.12.0/mail-v5.12.0.tar.gz","created":"2026-09-15T17:13:26.150505Z","licenses":["agpl"],"lastModified":"2026-09-15T17:13:26.271574Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"JfJQR4M/FJVcfYff6itGb+zG5apK30lOzYFXEwHf9ffW0QU9daXwnbxqbBJgjAmOdft7F9eKbzyE+y+1aOelhtALnEXPmRerDVlQz2+7dRgBJTW6XduH3q3dMQtAqiPVIeyE3TMvL6Md+FT8f6WHUuTG1Gq7fAEvPJYkR3/SDWc/L22Fy6ZF29gCI8oaU1WTccg0vYslsJ9xPhj67ej8xn1RbRIcxy+845dF+9lfKAmwv1JdGpph389vFUZYZb40bmP8IJuE2qqpu6421LW7yFzWfm+W59hJCGMsMmmYGE4UPr4D+Bg9p4kE8OkBb1Mp/xFmZMOuh8zvnSpVsHsPyJftIyL5pbwt0FcJg8nXG008oa2t0RlDu9KK9CW70afEHslDOFY5kJ6OhzTHkFyRYwK5YhgcKsxliWOpyq5chmmtOkCvcZtXweloNDIOcDt3jbtbUDR6PsY/obmyg2CULKgUOs6Nsc1Tkl1+ZcYob0m07qRGWvehWrGlFWr4emzhucHpHw0p+ILR2mSBIb1FE96/1zQuJxIhLRyovlK92ocpp7rBc9QfPQBxkfMmgXv/6k9WQ48mz4sGTEL9SeXjHoh3yp2nYQQhAcWDBLBkTFaZpciI4IvjNsOA4rOwBh7ih4Oq37i96svkH6o7ESttIuGWpVxJs5Z/YpvNx95IhjY=","translations":{"en":{"changelog":"### Added\n* Insert images from Files in the composer\n* Floating composer editor\n* Warn when sending an email with an empty recipient\n* Do not auto-reply to noreply@ and no-reply@ senders\n* Hint when message content is AI generated\n* Nextcloud 36 support\n* Disable the background sync job via configuration\n* Use LDAP attributes in provisioning templates\n* Add support for Dovecot master user authentication\n### Changed\n* Translations\n### Performance\n* Prefix the internal-address index with the user id\n* Load local-message children via PK join\n### Fixed\n* Quick actions for special folders\n* Show the unified inbox icon\n* Detect message language in the browser for translation\n* Skip IMAP fetch results without a UID during sync\n* Allow HTML ids inside the email body for CSS targeting\n* Button alignment and graphics in the signature editor\n* Moving messages, threads and folders\n* Mount the account settings dialog at the app root\n* Check permissions when selecting a folder for a quick action\n* Remove the duplicate Cc/Bcc button in the composer\n* Keep the draft when clicking outside the composer\n* Termination condition when translating text\n* Declare UTF-8 charset for IMAP search queries\n* Filters: Redirect a message"}},"signatureDigest":"sha512"},{"version":"5.11.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.7/mail-v5.11.7.tar.gz","created":"2026-09-23T09:19:16.129515Z","licenses":["agpl"],"lastModified":"2026-09-23T09:19:16.218751Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Di1zAA79nrkZuRlIJp9HafWz5PF2mFJXICpqtLTY9Yy/Ma60kj0UE7rTR5mW7k+n7fb+BQy7wkC2TX6roV1RlCowsef8VLskgzmOzq/KEkIqgd3EmsNLO93tV7y1/TiBezaXNNmitE0ofLC3OqPUDwMdERC6BIc8OW6pxSAu7djQMoOqMsY1m4iemsIsWziySHsHu6GfkueU3iTsXLkKoZ6qbsW0SqnKLD+OsA6LuRJcTFyYRnLK0ugOC5BfrW6m7LshoRbKT1O0EnqozSdoTc4JSKveOAFEOnNDaJGnJ1yhSaUH+JMO5kG2GXpmJF3DuUfs+sqjDPCbZarGqRMshpl59t/WFIIAurxzmm9sTto+KMQBMZ1jz9DdyCGVLymBI5VmIo2qbnUKmUmXrioJzCk/3MhF4Qnn+xZkM+Ma7ykOdUpBL0Fbc06cTnjhognt1RDBFh1VN0GHMhM1tVapehwHFTI8fznVEnqNxNmuM0xekOrri8p4NcTY+s7tN8/ODfsagKLaoROevxCEBwLj1Fo0fHcg9jSE+BGjWnsVRFvIrERGbNKbnG/aXM5itLfnNTPyn2ScytcN/JlMLkdjjHjZ/RjpVYKLQIMVRDPXymnEQdAzen+xMuerYKywoWmZbtjMqGoPeMytyZzz5iqj9kz0qiEsOXmvt2U0V8NQp9Y=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([76793e2](https://github.com/nextcloud/mail/commit/76793e2fe915b06c4d9e323a899ca0a2755dd113))\n* **l10n:** Update translations from Transifex ([fc953a9](https://github.com/nextcloud/mail/commit/fc953a9c8f054378a2787e413fa291ee8daf56dd))\n* **l10n:** Update translations from Transifex ([ce5b74f](https://github.com/nextcloud/mail/commit/ce5b74f2f9dcbeb2bdbc70d3d6e23c93b0430987))\n* **l10n:** Update translations from Transifex ([bf17002](https://github.com/nextcloud/mail/commit/bf1700229c4ae77d7632a2ee147fe33d2503a9cd))\n* **l10n:** Update translations from Transifex ([3ba8770](https://github.com/nextcloud/mail/commit/3ba8770457765bf5eb9d3a073bf5fc3488c9bced))\n* **l10n:** Update translations from Transifex ([939130e](https://github.com/nextcloud/mail/commit/939130e5ac90beeaf168bcf34059373983765c21))\n* **l10n:** Update translations from Transifex ([1a767ac](https://github.com/nextcloud/mail/commit/1a767ac300ef6b09fa658a8c69982056e52b90be))\n* shareapi config key name ([c286c8d](https://github.com/nextcloud/mail/commit/c286c8d970f6a10c6bfa54a8408c1c210e8de6aa))\n* swap the FilePicker component for the builder ([9cfc5d7](https://github.com/nextcloud/mail/commit/9cfc5d7c8efd401cd272c067cf2ecf619ffae569))"}},"signatureDigest":"sha512"},{"version":"5.11.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.6/mail-v5.11.6.tar.gz","created":"2026-09-15T17:18:03.213361Z","licenses":["agpl"],"lastModified":"2026-09-15T17:18:03.288964Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"cwFAE9pSyLWE9LmKWRpZS/R6o88JwTdSPE4qzJgSC8B0S79vTOb1PlU71YmivTVJvg0KVIt9DzG2cnpIdOxdnfW5DSfQFbziIX8Js+Axh8+yxpekfawUU1lA9jj6Bp9aqRhMd8XjKBlcVJQpT+tgdnriCaUiqCv2zf9t2kWCYx7GzhaXertlQllk0H282k8ODhRodsylJKyAcdjChi4P1i7tVE8nsVYjH9xu4TdNymIJjVzaf7Y4PSJveC7Qb6p6K84HvuRVXkhqCbvWtACJVKWk6Z3UY/XAbLcoaobt/99OH4IFSEYmTDNoTDGfEth2GFD7AHb9EVVS1DUMjZF3FO0eRuh4BdRUsPQb20qQ0Uf567NZZXYGby7uXRzGXszcudvnvvSuN0fcpFsBz6qKrjkPjQ6hk8MMwF+CWOzJvWxHgg9u5St0YEwLlLbVKInpPLOOVuZZHWfT5eTtx/GISlqxSUWPJggq4I6A+Ef0BLiJGZfMDWnhIlOXhZU/I3bZA3mMWuoffm2Q3JKmIMuHn8szI+vGIb7+eZWCDGFA2xCQNNI2MZRlfc9bF+9h0Jog8F07ore0jrqFzT3J/X/EkXVJWVLbHq3Ie2im8GZgxSlqfKjl/PoTVH4uO83by5ows6sidZV/vX5Nk6G8JnslPQPxvgsxsAKWi3Hc9A0VJbw=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** bump vitest from ^4.1.9 to v4.1.11 ([a891668](https://github.com/nextcloud/mail/commit/a8916687190b3aee0961da5dde1bbec578755158))\n* **dns:** Update public suffix list ([9232367](https://github.com/nextcloud/mail/commit/9232367273a69b5216d4e4951d199603308a16f1))\n* **imap:** declare UTF-8 charset for IMAP search queries ([5e4c97a](https://github.com/nextcloud/mail/commit/5e4c97aa62f64582c1ad29f2f73ba7a2e2a7fa67))\n* **l10n:** Update translations from Transifex ([372246a](https://github.com/nextcloud/mail/commit/372246a2d2dd104c556bfe138d650c0a42ba6400))\n* **l10n:** Update translations from Transifex ([40ae8d2](https://github.com/nextcloud/mail/commit/40ae8d27a4d021e54b4e68f9badc9ae6e42776f3))\n* **l10n:** Update translations from Transifex ([cf57099](https://github.com/nextcloud/mail/commit/cf57099c1b45876a1f28b913fc88e0004dbddc76))\n* **l10n:** Update translations from Transifex ([694bd80](https://github.com/nextcloud/mail/commit/694bd80a88abee33991ef092ce6c1a3d04b4e828))\n* **l10n:** Update translations from Transifex ([2098418](https://github.com/nextcloud/mail/commit/2098418e59514fc5211726b731de0659cc9b9b7f))\n* **l10n:** Update translations from Transifex ([bba6c8a](https://github.com/nextcloud/mail/commit/bba6c8abe2c9df3e7cb5e27024bdf43d5244ae18))\n* **l10n:** Update translations from Transifex ([115ccdc](https://github.com/nextcloud/mail/commit/115ccdc685cb06c75a5b93d23428c2d8e0de2732))\n* **l10n:** Update translations from Transifex ([0701b14](https://github.com/nextcloud/mail/commit/0701b147e1c5e3f80b27af58b5bacda5cea2385d))\n* **l10n:** Update translations from Transifex ([65fb728](https://github.com/nextcloud/mail/commit/65fb728688be5fb2f4ae0ef70ef7b9b23f7075a0))\n* **l10n:** Update translations from Transifex ([8e8d270](https://github.com/nextcloud/mail/commit/8e8d270d739dcb2a46dd4f51d223f7658770ff5f))\n\n\n### Performance Improvements\n\n* **db:** load local-message children via PK join ([fccc12f](https://github.com/nextcloud/mail/commit/fccc12fdbbb3fa5e5f0e299cc942bff866e7a6d1))"}},"signatureDigest":"sha512"},{"version":"5.11.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.5/mail-v5.11.5.tar.gz","created":"2026-09-02T05:43:01.594564Z","licenses":["agpl"],"lastModified":"2026-09-02T05:43:01.684339Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Mm5ZRKwYmKpFaWa2kW4b6XaJ7wQC71D9ZILpfM/dAxtNJKgQRg1xocek1jUYbe6M4aJDoETOwq4oNdtF74FRBpBnmkZ4qR5x4pwp5PaReQEGV/3xq1lNSJCjlMa1pQtPmWCNmnxT2pYRl1VmqGPRVKAYXjaVv4AWS/YCSpNJyhzidNPtYEjH57R+I3lvb//gyiFoI7DVQzBXwgVMk+RD+PPiH+m3MVpwQYs7y8PdEtRHLiderUcFCfZRRbv/6R54XocdpUGGxqgyrMU+6vZDkNNqgNsi92n2d+Hd1gwtqn4gMmIhQ9HsWDAk9ygbBHkawAI2/EQelxzgn4H83hVOw78e9mdG/ix5HV+mdnfsG+VDc8oJwTNaOuz/PBhL3QlqpeHhIpik0Ue1snaFXvSuI0lsQaSPTWZ2q+MYjNXt+cPAU4pR8+Y75fguNi51Xs+9W4p5FKQV6uIluNiKVRFebjPC9ZGnf6nv91I3PYQsbrSYIclmgaKaypoufGbH+Qly489ne1Yr+TvOqHy2bx4ZCCv6dPDUGDoYRbvFx/75mvr3/JmnfysTUQwPFh6TuPJbn7J/g6jetn1JGuLL79R1dQmQLgJidmJuIx3ZZLr/5Q1NHtkB1xdm+vtyrmlo3t07282mV3sd7xTP//4JnKCvYbSubOZaJHx/WtvlmjYnsqY=","translations":{"en":{"changelog":"### Bug Fixes\n\n* avatar size on hover ([7a53301](https://github.com/nextcloud/mail/commit/7a53301a3740a7b355acb70fb6063f9fa6bc405c))\n* **delegation:** check if delegated user has access to destination mailbox ([#13605](https://github.com/nextcloud/mail/issues/13605)) ([bf31b55](https://github.com/nextcloud/mail/commit/bf31b5516e9c8351cc672841b2a6d205eb84066a))\n* **deps:** Fix npm audit ([d7f8447](https://github.com/nextcloud/mail/commit/d7f8447c67432f33cc7cc2f2aaf3de2ea55d1e60))\n* **dns:** Update public suffix list ([a2b7afd](https://github.com/nextcloud/mail/commit/a2b7afd61935933295a48597b3e0a5e4fff1eb0f))\n* **imap:** handle korean Windows encoding ks_c_5601-1987/ks_c_5601-1989 ([181fbe3](https://github.com/nextcloud/mail/commit/181fbe351a1e2907844dbfa9f12fdf9967df7de0))\n* **imap:** skip fetch results without a UID during sync ([f810923](https://github.com/nextcloud/mail/commit/f81092326420d70dd67f29a4a4606152cf68f201))\n* **l10n:** Update translations from Transifex ([9056ac6](https://github.com/nextcloud/mail/commit/9056ac69d0c36633d987e6923425d6ede4fddecd))\n* **sieve:** terminate installed scripts with CRLF ([62f11dc](https://github.com/nextcloud/mail/commit/62f11dc898211f52a12a7f5d4503a7799a139ca8))\n\n\n### Performance Improvements\n\n* **db:** index the mailbox list sort ([e37dceb](https://github.com/nextcloud/mail/commit/e37dceb40b2e275cf9f0946d6054f39467810380))"}},"signatureDigest":"sha512"},{"version":"5.11.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.4/mail-v5.11.4.tar.gz","created":"2026-08-31T06:41:57.032500Z","licenses":["agpl"],"lastModified":"2026-08-31T06:41:57.105891Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"PlA2CjGOu8qrkcZWqZCwQvchHYpS0PGnKh3VN3zGvAOd2B5DUa6ooAwMOUqqkF1G0GRKQm3ASrPeVO+38O9P76v5Sxchtd8QiAtcVTJH7WHMkW2ijVKXJZpNGohsciPKgEIFdGG8kB7cCUaT9wg1Ysd9TSsdCXdHso1wdERmrwEKwh3DpIvFCsqvK4AW5VByOSpnlUKYoA7zoCgL+QcWwxggEz/YG/wStJcLOacyn1DSJ0+zXTPV+qBokc/iJahiwrx9bQKxz+CqRHr7ZQMne21ttPUJzZ88MQjWCW4CU+SsX0Rx91mBtErYfyg4k0C9UQDcrjH5AT1M3pmq8Jsvrc2A+mqE8H1C/m1432Hsh/CjDxrHkq200zXORm9zI+v/rLy7eSqRDgxDYZ+rG/o/nKbe2nw1iX8WAjIIwcDl3W6jV1Jn+oblr8kKidnGnViqFSMsiXMwlS0j8EmShh9kuF36n/u8dlITDafKxXs5av35ZYMJ5LkpIXAS3H/wggcvzcViJ+H67eGQPq/W7sLuKtoaAdxvl46NxPgBrViJdwgeC2axFFRYugTac+NIpIPgVWFvVF4a/9BjT4wEgyx5vWvKC2NoMXZWxpGLOfll4CODehIfRJdc4s0N+vwFutUVEvCIwdbeA6qmAUndqbNn98uuO5HmS1tMZVUfppY+LgA=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([0427ebd](https://github.com/nextcloud/mail/commit/0427ebd3109bdbeea098a9ca3d6bebacd12bcf67))\n* **l10n:** Update translations from Transifex ([112331c](https://github.com/nextcloud/mail/commit/112331c69321bfb2bf627745646bdd212ab39d09))\n* **l10n:** Update translations from Transifex ([a7a0edb](https://github.com/nextcloud/mail/commit/a7a0edbe7105a4896be5e8751856563f2ba178a2))\n* **l10n:** Update translations from Transifex ([f8e45c5](https://github.com/nextcloud/mail/commit/f8e45c58188e49f486b09ec2588f9b5e6b3fffa9))\n* **l10n:** Update translations from Transifex ([b03befb](https://github.com/nextcloud/mail/commit/b03befbf3bbaba61346adfb9999b5b8d5f5a57dd))\n* **l10n:** Update translations from Transifex ([5b97c8e](https://github.com/nextcloud/mail/commit/5b97c8ede4cc30238a169a0e234f90b80e5732e6))\n* mail printing with hidden images ([115b5dc](https://github.com/nextcloud/mail/commit/115b5dcd6809c0717e49e412b8e9e0740afbca12))"}},"signatureDigest":"sha512"},{"version":"5.11.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.3/mail-v5.11.3.tar.gz","created":"2026-08-25T11:09:50.305173Z","licenses":["agpl"],"lastModified":"2026-08-25T11:09:50.427707Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"ZnofBqUqjNUjogPJs/DXu9Kxqz6vUVyu5xL0b9yqv3dIIfyhmk+JA+4YiA7+Y2yk8Pn9KMwzk/fXXfD0VYlyNEdDmrt7R7rp0vXv9GC9taK9rjrqmfiC1WmN1PgOxLHNiaUMlRDUbB5MWCWA2l1MJh6lMIULlRozI4Enn+OEO+EAmPs2t9chEkiDh/sO0L0fvEZELGkBepeDUE1uLsF5gcuES21QefxM2EVYguvVxP+B1gW66/4a7+6IQ1QMTb/1CcHObdjLEukIDAb8xyQ0kIgc+R+IrsKYtlB6kZa6/T8Jg6LvGM5wMF0uZNQKogx0Jfr7LD5s3/Hw4dwCuhv9HfMkawdcSImoJgZ3xVgt5wpjJsNGYT+L7sC0yYi1C0ffJSai9Wszr32RJM7BHEB4Uh902M4Myeqk7PD15IMgt0D45F4MP6TOz00/mtvLaUGTbDxlCwCjRrzsor+gZwind93c4pXV77l51j0dVMjOIdBfhNobEjXa3nftyH18XG+znSQiVSE0v+Hz5bJsmF9tIU989WJGm4Qs7QXp30mdRHQVI6iVLeohIgpqp5zs6NYRQ/rgtyZyjF9/hmkSx57b2aEvOLNffGuK5vVJVpy9riY36jQRG+LivSmpI75C1Hm0PJt/bopS/UMLYq8niTZnEbG9NieuHFXI8NSiVeFdHf4=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** Fix npm audit ([0267250](https://github.com/nextcloud/mail/commit/0267250aaf6bd521f7ff869066199de2477dcdd6))\n* **l10n:** Update translations from Transifex ([e46b107](https://github.com/nextcloud/mail/commit/e46b1074dd97a98d1fb1babe7255c45f6a737875))\n* **l10n:** Update translations from Transifex ([8be5861](https://github.com/nextcloud/mail/commit/8be5861caf17cd525201ac69b39fc0030e15123f))\n* **l10n:** Update translations from Transifex ([f92d279](https://github.com/nextcloud/mail/commit/f92d279c5ff9bea35df9d2beafcded2237307e09))\n* **l10n:** Update translations from Transifex ([84e14c2](https://github.com/nextcloud/mail/commit/84e14c221584d70776d3756c18769e76f71cc01a))\n* **signature:** insert \"-- \" separator for plain text only ([9f5f14c](https://github.com/nextcloud/mail/commit/9f5f14cd134af94e76f485e1a5f5946991a2552e)), closes [#3457](https://github.com/nextcloud/mail/issues/3457)"}},"signatureDigest":"sha512"},{"version":"5.11.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.2/mail-v5.11.2.tar.gz","created":"2026-08-21T13:24:50.483121Z","licenses":["agpl"],"lastModified":"2026-08-21T13:24:50.606465Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"g91O3wonIN5YceLdXZf8QlFEIfFpl4Vt9LsYJO4M9HUOrj1WNzEnropQ5uwI2A+fToBSTXF1xlQJWMHmDonsO+JIDK0dHMiYpBLBoIZdhItQ0YC6k5p+ivE+Y9Yv9PyrE2VlWkms2wv3la8shFi0JmkJSX6uRv87SEwcUluuxJyonL6leZQH+7B2xWc4FbgsdAeUDoQUqvX+HKhBnP45+MHAtRdTOZJFJWvw8J6XLzW6QnYhzX2jE77Ufmm0UjPu4AQUqrIYZJoYbq0KGvQZn/4vwOR29NR4YgjocGcSrk+kFQDT7g4ORyY8AjYF593FB4nfoLY7vUZrpdW4QFi65qE4Eg6Aq60tfpMhNw920o3x11KVbFHMMzHvqixLamo5Q5lloQ09edXz41vJSNQYivmq782HhlNr51u0qewAIY9wHLmHT4FanIBwM7rkJPpLk+WbvFXGfsfWWN5SJoyFhSyC0ENzFx6HajfPPc/xoJyi641946/uZu5+WA92DVXqMRSYTaraOY/ST8gL+PrN3AMFZL5jw/+KyCbyBT3QKGz0lCM0v9NKcpafNlnfwppVdKl5lR1CpBwFl63Lkdt3ABVZTPYsXtoKMUHT1GShRqhrk+91cFc10gwsMoljpOUwkEYdjU42vJYTkBmTx32CvsM8AQQexLBzXRpVUiM0Yhw=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([c1cc069](https://github.com/nextcloud/mail/commit/c1cc0691e9b1a8b357176a5b9b6f11eb528fa57f))\n* **migration:** heal legacy non-bool appconfig values ([e84149b](https://github.com/nextcloud/mail/commit/e84149bd3cc7bd22d1c0bf0b415c5bab8e890440))\n* **proxy:** preserve percent-encoded image URLs in proxy link ([23ed0bd](https://github.com/nextcloud/mail/commit/23ed0bdbcc759cdb1c6fd839b91351e2fd79f37b))\n* **ui:** restore virtual start mailbox too ([9d1f01d](https://github.com/nextcloud/mail/commit/9d1f01d0e56d8813e421217c4743a4e43f0a9123))"}},"signatureDigest":"sha512"},{"version":"5.11.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.1/mail-v5.11.1.tar.gz","created":"2026-08-20T11:23:57.756074Z","licenses":["agpl"],"lastModified":"2026-08-20T11:23:57.890775Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"hT3rBHO74efOkvvI5oZW0S/Zdaem0V1VCXkG4Jfm6KYzBMHJg6SnGjW2bO6KcJ2zqa7xBpCEwBx2GSLDpMX00fantMtIeaIL51QAvghdec/J1sBlpTH1z6Ih0kGrFud4qiBbCXy3XdaZe9NF87Hb0INNPIDHykQPydeMmzgXP2Lt5TowLnmB3RydcOo4XLhgWrs7sdGK1M3h9MMlKMdyO+yx77kSrRQA3HELewjD14xnmyrWt0mJZI18a5aPktVHgqS2JN3lkrrcZYtOM45xlQjXwmt5bAB9m5i+QGwKhOt/Xt9W4dxVm7thwwjtCepNTn3E+teTC7QWASnGaLwBkYrOlr0lCN0Hyi5+ylCB8HOMepyWvWXfyNRhyczt7GIT5ISrDzTTfykjWoJGFRfk2Iks08ltNo/QkRZAE2bp2WdkbWgYapwsW0ymyCpkyVR8hT6a1ERlrjzZyVHS+HxJPv2mQWhCT9nN2CvgCwOOT9gHttAYEm24gPQtgqzhGkbE+wyXW/nFZt5H0g1XqwSHUXpIpF+o/JDD4WmhrMJnev82I9xrK7roX8Lo/Fi3DY2sFkEFSE0QA5LlQSjFamvoGQIIFAlv6AbfkKpuPPiylkOhPIXDsEUfSBLF7SrOYZBQi9GZL/32bPNcSZjmI6iKzc+0iTCvUmqVU3zg71GcgeY=","translations":{"en":{"changelog":"### Bug Fixes\n\n* allow scripts in message iframe sandbox so the body resizes ([400a4aa](https://github.com/nextcloud/mail/commit/400a4aa866f9e1c3709347a55d1b6960561109ec)), closes [#13088](https://github.com/nextcloud/mail/issues/13088) [#13527](https://github.com/nextcloud/mail/issues/13527)\n\n\n\n# [5.11.0](https://github.com/nextcloud/mail/compare/v5.11.0-rc.2...v5.11.0) (2026-08-20)\n\n\n### Bug Fixes\n\n* add sandbox for iframe ([823e6ae](https://github.com/nextcloud/mail/commit/823e6aef9d35509fa90dafcb47b4a95afb3df93f))\n* **attachments:** don't preview attachments when viewer app is disabled ([2a8f841](https://github.com/nextcloud/mail/commit/2a8f841e6b613814ff21e8096b956907faf95f6f))\n* **composer:** keep resized image dimensions in sent messages ([ee35cf4](https://github.com/nextcloud/mail/commit/ee35cf4dea1805a43f309555d09fd755f3a1cb01))\n* **deps:** bump dompurify from ^3.4.11 to v3.4.13 ([5b658c3](https://github.com/nextcloud/mail/commit/5b658c36d06d547c10332d1daac8c7aeea26a898))\n* **l10n:** Update translations from Transifex ([b218981](https://github.com/nextcloud/mail/commit/b2189816f67fdc57c4fcafacb504665c0e364479))\n\n\n\n# [5.11.0-rc.2](https://github.com/nextcloud/mail/compare/v5.11.0-rc.1...v5.11.0-rc.2) (2026-08-19)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([83739be](https://github.com/nextcloud/mail/commit/83739beddc349e8ae144e4f61959b278d7bed819))\n* **migration:** support the new OCP DB schema API ([6ebcbca](https://github.com/nextcloud/mail/commit/6ebcbcaa27c131145d7024006edd030bbb9a4b84))\n\n\n\n# [5.11.0-rc.1](https://github.com/nextcloud/mail/compare/v5.11.0-beta.3...v5.11.0-rc.1) (2026-08-18)\n\n\n### Bug Fixes\n\n* **dav:** use the default webdav client instead of patching axios ([2226b57](https://github.com/nextcloud/mail/commit/2226b579564eccb1081d224386dac0247d081492))\n* **l10n:** Update translations from Transifex ([3353f51](https://github.com/nextcloud/mail/commit/3353f5166623c3a8cfecc738b87277a6f9a969c5))\n* **l10n:** Update translations from Transifex ([f757709](https://github.com/nextcloud/mail/commit/f757709f3fd2a1bfbbfee08d27f37b80fd3bde34))\n* **l10n:** Update translations from Transifex ([6c58de0](https://github.com/nextcloud/mail/commit/6c58de0b4c9dd66a39a3f9ba269d14f90bf016eb))\n* **l10n:** Update translations from Transifex ([12146a1](https://github.com/nextcloud/mail/commit/12146a12d3b595df934fe06fdde551df91906380))\n* **l10n:** Update translations from Transifex ([d673308](https://github.com/nextcloud/mail/commit/d673308a267bbfbb6527118794eb57b453d35afb))\n* **l10n:** Update translations from Transifex ([bb652d3](https://github.com/nextcloud/mail/commit/bb652d32eed33aa48a0cf3cec0c91dfecb8952f8))\n* **l10n:** Update translations from Transifex ([84f2000](https://github.com/nextcloud/mail/commit/84f20004178bce4854e6b9b740894ee11f6b9ba9))\n* **l10n:** Update translations from Transifex ([162a8dc](https://github.com/nextcloud/mail/commit/162a8dc972a14efc92170b35edac4cfd0e92f855))\n\n\n\n# [5.11.0-beta.3](https://github.com/nextcloud/mail/compare/v5.11.0-beta.2...v5.11.0-beta.3) (2026-08-10)\n\n\n### Bug Fixes\n\n* force user identifier when saving tags ([383ed96](https://github.com/nextcloud/mail/commit/383ed96cfa719d8c2ba3c6dbe508435c97dcb8d5))\n* handle empty replyTo array properly ([c6dfd90](https://github.com/nextcloud/mail/commit/c6dfd909901b4fe265d0732599e78add9bac9273))\n* **l10n:** Update translations from Transifex ([6aa70c5](https://github.com/nextcloud/mail/commit/6aa70c5ab8c826a7bff12997f0839576928bdf20))\n* **l10n:** Update translations from Transifex ([f0df881](https://github.com/nextcloud/mail/commit/f0df881b13e4d39832ff9fca03dafa10f1e3d89d))\n* **l10n:** Update translations from Transifex ([ee29ae6](https://github.com/nextcloud/mail/commit/ee29ae615d99099c5401e73cb753dc2967a210ee))\n* Rename messageId to uid ([9fb470f](https://github.com/nextcloud/mail/commit/9fb470f53a09bcb95eb3e1d3bcbedc4f4f712cd6))\n\n\n### Features\n\n* make some events webhook compatible ([759ea03](https://github.com/nextcloud/mail/commit/759ea030153f9e6dd7391c66fe0478aeb21d8824))\n* passing full reference to mailbox in BeforeMessageDeletedEvent ([7bbf139](https://github.com/nextcloud/mail/commit/7bbf139b83e06b0188389624f5afc405523d6f2f))\n* text blocks empty state ([b8dd79c](https://github.com/nextcloud/mail/commit/b8dd79c7e333a3d66cdb24317f0d242de55c345b))\n\n\n\n# [5.11.0-beta.2](https://github.com/nextcloud/mail/compare/v5.11.0-beta.1...v5.11.0-beta.2) (2026-08-06)\n\n\n### Bug Fixes\n\n* Adjust relative date display to also use timestamp for yesterday ([0f7dc0d](https://github.com/nextcloud/mail/commit/0f7dc0d9b70ba5f3285716c1da8e93e684ca3896))\n* **ai-integrations:** check for star/end email in message bodies and validate json output for smart replies ([bdc1c1c](https://github.com/nextcloud/mail/commit/bdc1c1cbb05ee4c915d97bc5353045c05f4e6238))\n* **composer:** keep signature images by switching to rich text ([e1ab04d](https://github.com/nextcloud/mail/commit/e1ab04dcdbd2f7b556c6f299715f7f5321b55e06))\n* configurable timeout for connectivity tester ([18217d0](https://github.com/nextcloud/mail/commit/18217d06de2bb0b80e4cbd2c76b067feea45b677))\n* Correct hasLocks() expiry check ([e5cfdaa](https://github.com/nextcloud/mail/commit/e5cfdaa1c38363fa3afc6cd012c82baa663becbf))\n* correct spelling errors in error messages and comments ([7e774ef](https://github.com/nextcloud/mail/commit/7e774ef3cafcf8589f411e180740ec7192defe83))\n* **deps:** bump postcss from ^8.5.16 to v8.5.18 ([#13365](https://github.com/nextcloud/mail/issues/13365)) ([e0a8523](https://github.com/nextcloud/mail/commit/e0a852320698ceefcaa447a7017c5c2186103dcd))\n* **deps:** bump postcss from ^8.5.16 to v8.5.23 ([#13419](https://github.com/nextcloud/mail/issues/13419)) ([ef2bf1c](https://github.com/nextcloud/mail/commit/ef2bf1c3e26bbf51edb4c8b133ea54d38c81a9ae))\n* **dns:** Update public suffix list ([eb88857](https://github.com/nextcloud/mail/commit/eb88857a98c164361209ddb3dfb1f48d8b6ed37d))\n* **html:** prevent invalid UTF-8 from blanking mail body ([05b3289](https://github.com/nextcloud/mail/commit/05b3289cb0c20f011ea5cd515079d50acb599693))\n* **html:** strip conditional markup from html mail bodies ([f90b646](https://github.com/nextcloud/mail/commit/f90b646d627a7dc36df6de18fc6bd5f9254b701a))\n* **imap:** use PEEK when fetching attachment/body content ([b4463ef](https://github.com/nextcloud/mail/commit/b4463ef02b11f8fda9158d77772cd80b28a28c32))\n* **imip:** log why an iMIP message was flagged as failed ([8121dd4](https://github.com/nextcloud/mail/commit/8121dd498f1e3afa714ab21465f152d5ec7c4e70))\n* **l10n:** Update translations from Transifex ([b65261f](https://github.com/nextcloud/mail/commit/b65261f4d641c902316aff07c75266b2aa7d37ff))\n* **l10n:** Update translations from Transifex ([54fc382](https://github.com/nextcloud/mail/commit/54fc382fd25634d9dfa3cdf5f5394dffbb44a42d))\n* **l10n:** Update translations from Transifex ([3e6d415](https://github.com/nextcloud/mail/commit/3e6d415172bb3bb7abef1d9784d2cf41c1ae8f74))\n* **l10n:** Update translations from Transifex ([d1cc084](https://github.com/nextcloud/mail/commit/d1cc084e2f3dbb46468dced01009063e4f77fe25))\n* **l10n:** Update translations from Transifex ([3d29118](https://github.com/nextcloud/mail/commit/3d291183730fc1deef02f6f80041e69cad8a8a92))\n* **l10n:** Update translations from Transifex ([ce89d03](https://github.com/nextcloud/mail/commit/ce89d03e87da330afa6ee01552cd7a7486713bb9))\n* **l10n:** Update translations from Transifex ([a064b99](https://github.com/nextcloud/mail/commit/a064b99606eaf83f73cda6afb4ba3268c177e49c))\n* **l10n:** Update translations from Transifex ([cd5c729](https://github.com/nextcloud/mail/commit/cd5c72999d00067c58c1e3e3659e4b1f764f999d))\n* **l10n:** Update translations from Transifex ([61e5828](https://github.com/nextcloud/mail/commit/61e5828a5af95ba1a2109d750bc0bf5d02e6b702))\n* **l10n:** Update translations from Transifex ([452e9c1](https://github.com/nextcloud/mail/commit/452e9c1de6e98097263eee3a16b4c2e77b38673c))\n* **l10n:** Update translations from Transifex ([88dbf02](https://github.com/nextcloud/mail/commit/88dbf027343a8abefa50de8efcc01c110e5e67c6))\n* **mailbox:** Flag shared mailboxes as shared ([2c71bdc](https://github.com/nextcloud/mail/commit/2c71bdcd6486eca2213964fc3896fc2595b35b32))\n* **mailbox:** Ignore prefix-less namespaces in shared detection ([e9061ca](https://github.com/nextcloud/mail/commit/e9061cad97e66a0804a4fb60334f964a6e2d9fc8))\n* **search:** use deep link ([7456e21](https://github.com/nextcloud/mail/commit/7456e21a946212ea4aee630a52ccc42e9ecfce57))\n* **settings:** Add loading states ([94c5159](https://github.com/nextcloud/mail/commit/94c51599fb00f778c47e0d8fa610ad2c10967560))\n* **settings:** bind signature editor to the account writing mode ([89f8bf0](https://github.com/nextcloud/mail/commit/89f8bf0a63085bea08ab8e749797e647bf84edd8))\n* **UI:** 2 columns for filtering checkboxes instead of 3 (better readability) ([46657fd](https://github.com/nextcloud/mail/commit/46657fd6e3521f0bc320e8a86bdabd561755d172))\n* unify mail printing ([d141a57](https://github.com/nextcloud/mail/commit/d141a5740d92a18ac1d66a3df121c2697f1c0a41))\n\n\n### Features\n\n* filtering folders in mailbox picker ([54fdfab](https://github.com/nextcloud/mail/commit/54fdfab8a2504f28c833a48d03d69b796735c9aa))\n* sync imap and smtp credentials while filling new account form ([08bad9d](https://github.com/nextcloud/mail/commit/08bad9d127ce6134670a6a2fc59d20ceb7f2fbae))\n* **ui:** Add options for auto mark as read delay ([e261143](https://github.com/nextcloud/mail/commit/e2611434bb5b00eeb97e5f2931f2c5bb59190adf))\n\n\n\n# [5.11.0-beta.1](https://github.com/nextcloud/mail/compare/v5.10.0-rc.1...v5.11.0-beta.1) (2026-07-23)\n\n\n### Bug Fixes\n\n* **a11y:** add missing ARIA labels to form inputs and buttons ([3023f78](https://github.com/nextcloud/mail/commit/3023f78b249417b66763bb9fa1151ecf82e5afcd))\n* account settings section font size ([9ad7042](https://github.com/nextcloud/mail/commit/9ad7042a6d9594329e1990d13249b9c032e146d1))\n* **AccountSettings:** overflow bug when using autoresponder checkbox ([768ff4c](https://github.com/nextcloud/mail/commit/768ff4c64bdfa277aef9775c1c51171de4ad60cc))\n* adjust sender details styling and alignment in thread view ([e50927b](https://github.com/nextcloud/mail/commit/e50927b8eac554959039e5e7b8ddcdcb6da0dfc9))\n* **ai:** migrate AiIntegrationsService off deprecated TextProcessing API ([2dc1683](https://github.com/nextcloud/mail/commit/2dc168355a9fe7edd4f1c29b970a18f91590533c))\n* **attachments:** store uploads under account owner for delegated sends ([d78ef2c](https://github.com/nextcloud/mail/commit/d78ef2ceb23181b7cae7bfde6e775eb71e4421db))\n* check tag while renaming ([cbc008d](https://github.com/nextcloud/mail/commit/cbc008df76f81a71a8fdf264c57b0ad96d7e4208))\n* **composer:** do not re-insert signature when opening a draft ([9e36af9](https://github.com/nextcloud/mail/commit/9e36af99933a54d85a0dd1e521bb8b306d08140e))\n* **delegation:** clean delegations on user deletion ([#13147](https://github.com/nextcloud/mail/issues/13147)) ([ef21807](https://github.com/nextcloud/mail/commit/ef21807e9debfa2a8e292437bd92315d23d3c283))\n* **delegation:** show delegates' display names instead of usernames ([de41602](https://github.com/nextcloud/mail/commit/de4160213cbf88657752097a8c50c9449d7c5d75))\n* **deps:** bump @nextcloud/cdav-library from ^2.2.0 to ^2.6.2 ([#13237](https://github.com/nextcloud/mail/issues/13237)) ([12a5919](https://github.com/nextcloud/mail/commit/12a5919db8f44dcda2dc754a8b940fc8075ac371))\n* **deps:** bump address-rfc2822 from ^2.2.3 to ^2.2.4 ([#13042](https://github.com/nextcloud/mail/issues/13042)) ([e6f4e54](https://github.com/nextcloud/mail/commit/e6f4e543494506c94391b38f028ff00560dbeea5))\n* **deps:** bump color-convert from ^2.0.1 to v3 ([cafd6ba](https://github.com/nextcloud/mail/commit/cafd6bafea53a35e385c4682177f7eb8df98e158))\n* **deps:** bump dompurify from ^3.4.11 to v3.4.12 ([#13335](https://github.com/nextcloud/mail/issues/13335)) ([5e2fe71](https://github.com/nextcloud/mail/commit/5e2fe71ffa9d94ebec113079d78eebe281627eaf))\n* **deps:** bump dompurify from ^3.4.8 to ^3.4.11 ([#13229](https://github.com/nextcloud/mail/issues/13229)) ([bea9841](https://github.com/nextcloud/mail/commit/bea98416790d07f411a938622fb72702f8bcb544))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.11 ([#13122](https://github.com/nextcloud/mail/issues/13122)) ([41eaf65](https://github.com/nextcloud/mail/commit/41eaf65f8f486326dfe636a481b499efccaefb2f))\n* **deps:** bump html-to-text from ^9.0.5 to v10 ([f88a29f](https://github.com/nextcloud/mail/commit/f88a29fd1c2598d7685229d5e3055b0b7703f108))\n* **deps:** bump js-base64 from ^3.7.8 to ^3.8.0 ([#13239](https://github.com/nextcloud/mail/issues/13239)) ([3172b34](https://github.com/nextcloud/mail/commit/3172b34a0eaa5557bcb0a66ffcaacab461bce1b5))\n* **deps:** bump p-limit from ^6.2.0 to v7 ([86621a1](https://github.com/nextcloud/mail/commit/86621a148eb4b719bc68b061e4e655a481d0f242))\n* **deps:** bump sabberworm/php-css-parser from ^9.3.0 to ^9.4.0 ([#13240](https://github.com/nextcloud/mail/issues/13240)) ([78b4966](https://github.com/nextcloud/mail/commit/78b49662074b46816b2cc66894a707baf3333431))\n* **deps:** bump stylelint from ^17.9.1 to ^17.14.0 ([#13241](https://github.com/nextcloud/mail/issues/13241)) ([9d2803b](https://github.com/nextcloud/mail/commit/9d2803b80b18f6cc69c25fcf367f1f8c01a4a19b))\n* **deps:** bump uuid from ^14.0.0 to ^14.0.1 ([#13230](https://github.com/nextcloud/mail/issues/13230)) ([94eb990](https://github.com/nextcloud/mail/commit/94eb9904afd968ea5811779859243f896b171c79))\n* **deps:** Fix npm audit ([dbf837c](https://github.com/nextcloud/mail/commit/dbf837c80b953ef68528eca30772b7dd0cf35bd4))\n* **deps:** Fix npm audit ([fd644ef](https://github.com/nextcloud/mail/commit/fd644ef6efc60653651e80384cbebd8865e02067))\n* **dns:** Update public suffix list ([a49706f](https://github.com/nextcloud/mail/commit/a49706f485a89eb7794684a6ffd1961251d2f340))\n* **dns:** Update public suffix list ([a33969f](https://github.com/nextcloud/mail/commit/a33969ffe1735c192eee341631173d3c65936534))\n* **drafts:** preserve Bcc header when saving drafts ([6e98d88](https://github.com/nextcloud/mail/commit/6e98d88aa5e30a7df1a1ee006e5ee8a493dfefc0))\n* **envelope:** show full summary on hover and refine AI notice ([2c27d7b](https://github.com/nextcloud/mail/commit/2c27d7b348bc856eb747236bc0044f244abdee23))\n* Exclude shared mailboxes from special mailbox auto-detection ([54dda27](https://github.com/nextcloud/mail/commit/54dda275692faf07381aaa0cb071a448b3bcbe8a))\n* fixed \"ORGANIZER\" in ICS generated by \"Reply with meeting\" and delivered to DAV endpoint ([13ef350](https://github.com/nextcloud/mail/commit/13ef35005c9599afe478ee5cd2f66973ab21bce2))\n* hide \"create task\" option when no task calendar is available ([4cac1b8](https://github.com/nextcloud/mail/commit/4cac1b861a0a8e62d81d70d8494c89bc3ab95daa))\n* **imap:** rate limit all IMAP server auth rejections ([99d9842](https://github.com/nextcloud/mail/commit/99d9842b0eebb795dc3c39257a7ea20dc95b21a6))\n* **imap:** render inline images referenced only by Content-ID ([0b35738](https://github.com/nextcloud/mail/commit/0b35738e8620d66707ceb8d49c060b1530e98717))\n* interactions in actions menu for mailboxes ([cf3350e](https://github.com/nextcloud/mail/commit/cf3350ee0ea3a23a6bbafc5efb5a9bed2d1043fa))\n* **l10n:** Update translations from Transifex ([bf70f13](https://github.com/nextcloud/mail/commit/bf70f13edd9b2c05fd8d0ba00288fae0ce584bef))\n* **l10n:** Update translations from Transifex ([93cfe2e](https://github.com/nextcloud/mail/commit/93cfe2e3526a853db1b28ee91d23938a279f697e))\n* **l10n:** Update translations from Transifex ([2501bbf](https://github.com/nextcloud/mail/commit/2501bbfbda9e66c18d235dc9e1ad5974a405aefa))\n* **l10n:** Update translations from Transifex ([da344a0](https://github.com/nextcloud/mail/commit/da344a0e2b9202b403bfc8075107cb275babaff0))\n* **l10n:** Update translations from Transifex ([e50eedf](https://github.com/nextcloud/mail/commit/e50eedf20f48f3ca52b2878ddae645070a79650b))\n* **l10n:** Update translations from Transifex ([1e1dd96](https://github.com/nextcloud/mail/commit/1e1dd96baba3c4524e2020b1473c78f4c841acab))\n* **l10n:** Update translations from Transifex ([979e6a9](https://github.com/nextcloud/mail/commit/979e6a9d0b9e3abd93aede88dfd4d9d852b9610d))\n* **l10n:** Update translations from Transifex ([4f229df](https://github.com/nextcloud/mail/commit/4f229df64c323f1f75efec9077d5083f8e461201))\n* **l10n:** Update translations from Transifex ([d64ec2a](https://github.com/nextcloud/mail/commit/d64ec2a98886bdbb3fbaa0c81be71607f6d7365f))\n* **l10n:** Update translations from Transifex ([4742cb1](https://github.com/nextcloud/mail/commit/4742cb11a73b5d6c8cef812be466c145c1bcb64b))\n* **l10n:** Update translations from Transifex ([fc2c216](https://github.com/nextcloud/mail/commit/fc2c2163cee3aa3e3e3094328a97f0b2bdf2566b))\n* **l10n:** Update translations from Transifex ([b017f4f](https://github.com/nextcloud/mail/commit/b017f4f7e1a7cf5d75d4d6d9e3c8fc894c335fc9))\n* **l10n:** Update translations from Transifex ([96ac3ed](https://github.com/nextcloud/mail/commit/96ac3ed6962f48defcc1344ad132a28a2b7aa0fb))\n* **l10n:** Update translations from Transifex ([97d2bc6](https://github.com/nextcloud/mail/commit/97d2bc6532cc97475c1e8b2bea50ceb71ace217f))\n* **l10n:** Update translations from Transifex ([0241d3b](https://github.com/nextcloud/mail/commit/0241d3b0513f5d0fc4250d8e826ac49c04a216ce))\n* **l10n:** Update translations from Transifex ([4662e6f](https://github.com/nextcloud/mail/commit/4662e6f65784eb60d52109bf9a11514dbe8001dd))\n* **l10n:** Update translations from Transifex ([b4b5e03](https://github.com/nextcloud/mail/commit/b4b5e033d03ecc4230997dad0dc57a2a733e8a08))\n* **l10n:** Update translations from Transifex ([b0a7e00](https://github.com/nextcloud/mail/commit/b0a7e005206e47b13233f92a2e0d319f0bcc03ce))\n* **l10n:** Update translations from Transifex ([5ed4a0a](https://github.com/nextcloud/mail/commit/5ed4a0a687af961936d2edfac015efd94e4597b4))\n* **l10n:** Update translations from Transifex ([d87b546](https://github.com/nextcloud/mail/commit/d87b546c6c29dd8290d56e860168a605216d622f))\n* **l10n:** Update translations from Transifex ([f1c577b](https://github.com/nextcloud/mail/commit/f1c577bdd3f3a779267cc09ea1c34d21ad423ab1))\n* **l10n:** Update translations from Transifex ([6043365](https://github.com/nextcloud/mail/commit/60433655ac772a8d89a64fbe12cb9d1d200aa239))\n* **l10n:** Update translations from Transifex ([3f45fe0](https://github.com/nextcloud/mail/commit/3f45fe0bea65f2b960d4398fe0cac2629e4d04fc))\n* **l10n:** Update translations from Transifex ([8868534](https://github.com/nextcloud/mail/commit/8868534ad2dacdf02189abd4d7e15b487cfa1697))\n* **l10n:** Update translations from Transifex ([ab5268b](https://github.com/nextcloud/mail/commit/ab5268b5dd527d924c4871e3b926312760f3c514))\n* **l10n:** Update translations from Transifex ([a0c1a95](https://github.com/nextcloud/mail/commit/a0c1a9522692a75b20126a05b0d95a5d0fe34879))\n* **l10n:** Update translations from Transifex ([19cb9ff](https://github.com/nextcloud/mail/commit/19cb9ffeb12558f1c9289d25f92fa17063eeb8bc))\n* moved \"Delete thread\" at the end of the contextual actions menu ([358fdf8](https://github.com/nextcloud/mail/commit/358fdf87e0377bbe536aae626bd682d769b858de))\n* **oauth:** generate state token server-side before redirect ([c2ed79f](https://github.com/nextcloud/mail/commit/c2ed79f87fd8508c868c4547d43dc78179b40e39))\n* Omit fileid for attachments ([c8e3de3](https://github.com/nextcloud/mail/commit/c8e3de38b1f3960588e70cdeef9ddf8cb1ccac0b))\n* only pin favorites when it s not part of the query ([726601c](https://github.com/nextcloud/mail/commit/726601c73fbba2c71c80b67899f84ad8251f194a))\n* **outbox:** reset status and failure flag on message update ([91fb1cc](https://github.com/nextcloud/mail/commit/91fb1cc0704abb2b02e4a5f9363582ba182ae934))\n* **psalm:** adapt to updated OCP dev-master return types ([67d20f2](https://github.com/nextcloud/mail/commit/67d20f263f0ebd63f32e2ccca1975ba5718c6b0a))\n* reply to own message addresses original recipient ([42eb49a](https://github.com/nextcloud/mail/commit/42eb49addb664bf4c9c2739f36e0446afb3911f4))\n* reply to sender only ([45766ae](https://github.com/nextcloud/mail/commit/45766aef5136e9a734aa47ce5805ad15985ada57))\n* resolve strict type issues flagged by Psalm 6 ([f86e2b8](https://github.com/nextcloud/mail/commit/f86e2b8091b82a01cefd9c1688e653604115e9c3)), closes [#11224](https://github.com/nextcloud/mail/issues/11224)\n* restore sender copy-to-clipboard and fix thread subject alignment ([b0420e3](https://github.com/nextcloud/mail/commit/b0420e335f9c4a5be0a711c59c42d73ca648ef72)), closes [#12952](https://github.com/nextcloud/mail/issues/12952) [#12946](https://github.com/nextcloud/mail/issues/12946) [#12666](https://github.com/nextcloud/mail/issues/12666)\n* search shortcut buttons having thier own space ([092567d](https://github.com/nextcloud/mail/commit/092567d6a639d0f0b7e1c86aa3a68f07ad160801))\n* **sending:** preserve Bcc header in Sent mailbox copy ([d5540c2](https://github.com/nextcloud/mail/commit/d5540c255e7873cd317ca78f49c31b343f6fb23c))\n* shortcut search buttons ([fabbf17](https://github.com/nextcloud/mail/commit/fabbf1770e169170190bf0b3071aa58770c12716))\n* signature editor on mobile, enlarged menu for formatting options ([62aaa2d](https://github.com/nextcloud/mail/commit/62aaa2d226716934724e4c63f7fa73b7968e0775))\n* small fix on the state of the action button to edit tags ([7610aa1](https://github.com/nextcloud/mail/commit/7610aa17a7cd8e6fea302190c22a9e63ef8d4e93))\n* sorting of items in \"Mail settings\" dialog ([7cfbeaf](https://github.com/nextcloud/mail/commit/7cfbeafb0f2269d08bb5994d80e906a9d898414d))\n* subfolder selection for quick actions ([f8dedb1](https://github.com/nextcloud/mail/commit/f8dedb197e67faa650ef896efa0d0981a22a3f52))\n* **tags:** add accessible title to tag modal ([0a6eb9d](https://github.com/nextcloud/mail/commit/0a6eb9da79c0960dd867fc0c838c654b9ca1d7b3))\n* **ui:** archive shortcut in unified mailboxes ([933a6da](https://github.com/nextcloud/mail/commit/933a6da3161b1928a9c9cc8009bd8a79110f6243))\n* **ui:** build valid search query when toggling favorites sort ([569dfa4](https://github.com/nextcloud/mail/commit/569dfa45c41af476a5ffa8828ab527b94f967d14))\n* **ui:** do not mount favorites list when sorting is off ([130e21f](https://github.com/nextcloud/mail/commit/130e21f7f124e136e230f9f613c2d86fce025132))\n* **ui:** harden error handling for AI summaries ([a2bd5c4](https://github.com/nextcloud/mail/commit/a2bd5c43e395a57da7d058773d12c45abaebe45c))\n* **ui:** improve quick actions modal design ([63d08c1](https://github.com/nextcloud/mail/commit/63d08c1ff86fc7f9050e54341eccbb43c44f7a8d))\n* **ui:** rename beforeUnmount hooks back to beforeDestroy ([6ba42aa](https://github.com/nextcloud/mail/commit/6ba42aa9c3334a543977a0a16a5afd8955a1d29d)), closes [#13031](https://github.com/nextcloud/mail/issues/13031)\n* **ui:** restore folder expand state after drag-and-drop ([de027b8](https://github.com/nextcloud/mail/commit/de027b8d00ce86f80f20a17e39028b58fd8dd388))\n* **ui:** restore message loading position and slow hint ([a01b2f1](https://github.com/nextcloud/mail/commit/a01b2f1992da2cf2dd984de0f633de6fccb17392))\n* **ui:** show favorites section based on the current folder ([72e4342](https://github.com/nextcloud/mail/commit/72e434212b9e6b94bc3a7892e3616e07c7b30335))\n* **ui:** unset error state after account setting update ([9231abe](https://github.com/nextcloud/mail/commit/9231abec91dea5fe2b67ca3ae6b06e676567049b))\n* validating email addresses from Contacts ([4f33d3f](https://github.com/nextcloud/mail/commit/4f33d3f08191d43d4e17fae63c48b154f7456eca))\n* visualization of multiple attachments ([ccb8a65](https://github.com/nextcloud/mail/commit/ccb8a652a4af456f5f08a60d6cbbde1d9f3c3f6f))\n* whitespaces in visualization of plaintext email ([9d297bd](https://github.com/nextcloud/mail/commit/9d297bdc2e13a8d2f2ccd9a1c9637aa36b9db96b))\n\n\n### Features\n\n* Add 'copy direct link' action to message menu ([1cb78a3](https://github.com/nextcloud/mail/commit/1cb78a309eb65ce01a3404f4325b4c3e57e8efd1))\n* adds drag, drop and pasting of attachments ([16d4a09](https://github.com/nextcloud/mail/commit/16d4a09889490fa243a8047e2f5b588972c42bc4))\n* adds heading shortcuts ([3a6ccd4](https://github.com/nextcloud/mail/commit/3a6ccd486a8ad731b4bca1fcc57ca5377904b907))\n* capturing Ctrl+S key on email composer to save draft ([b38b41f](https://github.com/nextcloud/mail/commit/b38b41fa77ecbdd016433545dd32f538c76cb7a9))\n* **editor:** preserve arbitrary font sizes and families in content ([cd3b8c5](https://github.com/nextcloud/mail/commit/cd3b8c5d6931867363b87da6e309a2b96fff8fac))\n* jmap support - initial ([61bfd97](https://github.com/nextcloud/mail/commit/61bfd975681afa6b4c969028b1f82a11124c9a11))\n* save email as .eml file in Files ([81ef139](https://github.com/nextcloud/mail/commit/81ef139b4a89990fa3b94460771b49e861439878))\n* unified attachments (as file and as link) from Files ([db12725](https://github.com/nextcloud/mail/commit/db127252cf61dd2b17e807a0a57f888b6282a081))\n\n\n### Performance Improvements\n\n* caching a bit missing avatars ([019854c](https://github.com/nextcloud/mail/commit/019854c300a5d03fd9f1ac902eb800b8f55c7f4c))\n* **frontend:** prevent overlapping background inbox syncs ([#13129](https://github.com/nextcloud/mail/issues/13129)) ([39fd543](https://github.com/nextcloud/mail/commit/39fd543dc6a3ab41a1fed54e97d5691516cc931c))\n* reduce multiple ID IMAP commands by Horde client ([64bf799](https://github.com/nextcloud/mail/commit/64bf799620b1d757115452c0ac57f9b8c1453cd8))\n\n\n\n# [5.10.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-rc.1...v5.10.0-rc.1) (2026-06-17)\n\n\n### Bug Fixes\n\n* **delegation:** missing mailbox id in audit log ([57c1d41](https://github.com/nextcloud/mail/commit/57c1d41b60064016f92ad2f79047dcbb8d177e51))\n* deleting a message should move the focus one below ([b2bbd4e](https://github.com/nextcloud/mail/commit/b2bbd4e29f13b774bacb963bedc44e4e6c2911a6))\n* **deps:** bump @nextcloud/vue from ^8.38.0 to ^8.39.0 ([cb6c2e2](https://github.com/nextcloud/mail/commit/cb6c2e23a72df9e6d5a983174a005ef99e848856))\n* **deps:** bump dompurify from ^3.4.2 to ^3.4.7 ([#13043](https://github.com/nextcloud/mail/issues/13043)) ([5845e27](https://github.com/nextcloud/mail/commit/5845e270b21757762b42d01aa5424a5718bdff17))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.9 ([3355ac5](https://github.com/nextcloud/mail/commit/3355ac532693504453f5b19d0ef4af38ffc3fc39))\n* **deps:** bump vitest from ^3.2.4 to v4 ([5e31000](https://github.com/nextcloud/mail/commit/5e3100021605ff4ba4c47a7e699b09673e6a9c58))\n* disable CSRF check for message-id deeplinks ([86a46a9](https://github.com/nextcloud/mail/commit/86a46a9c09c3983db1057151bb3bb30417613a4f))\n* **dns:** Update public suffix list ([b45cf9b](https://github.com/nextcloud/mail/commit/b45cf9b63fe21ea152c85e253a2441de6d900759))\n* **frontend:** log swallowed errors in catch blocks ([79629b6](https://github.com/nextcloud/mail/commit/79629b60cb1aa755b1361575e7d6f9c63ed3a3af))\n* **l10n:** Update translations from Transifex ([b133d88](https://github.com/nextcloud/mail/commit/b133d883fccc016048a1b2a243e4181274a2a17f))\n* **l10n:** Update translations from Transifex ([1e9d3e8](https://github.com/nextcloud/mail/commit/1e9d3e829c3d66c54dd4c5e15162b71ea7652779))\n* **l10n:** Update translations from Transifex ([35839ac](https://github.com/nextcloud/mail/commit/35839ac152de3e0221497743de668ad3aa44ca05))\n* **l10n:** Update translations from Transifex ([f68b723](https://github.com/nextcloud/mail/commit/f68b7238c24c1b9cd6f281a0a241abaed01a51ca))\n* **l10n:** Update translations from Transifex ([8f7f7c9](https://github.com/nextcloud/mail/commit/8f7f7c99f967d8a4c8b2f8919f0331bd2fb33656))\n* **l10n:** Update translations from Transifex ([4a4104b](https://github.com/nextcloud/mail/commit/4a4104b1d0ac52dfb104c66e8d7b72e74e3aa5dd))\n* **l10n:** Update translations from Transifex ([c9ee373](https://github.com/nextcloud/mail/commit/c9ee3732149ae62141e093633bca6c93a50eef1d))\n* **l10n:** Update translations from Transifex ([f9f5dde](https://github.com/nextcloud/mail/commit/f9f5dde5be1e759e30cebfe02d5022402c3b1919))\n* **l10n:** Update translations from Transifex ([b4764be](https://github.com/nextcloud/mail/commit/b4764bea3d51e2cdcc4915747e3301b66ea3f9cd))\n* **l10n:** Update translations from Transifex ([04d1a48](https://github.com/nextcloud/mail/commit/04d1a48007a67902441f8d65e3e133de19a67e2f))\n* **l10n:** Update translations from Transifex ([7e4eab6](https://github.com/nextcloud/mail/commit/7e4eab620aa9931d6141b1febab6d512653e5bf9))\n* **l10n:** Update translations from Transifex ([809d826](https://github.com/nextcloud/mail/commit/809d826ae9e7b08d289c4ae519a7982459b6464f))\n* **l10n:** Update translations from Transifex ([7551ba5](https://github.com/nextcloud/mail/commit/7551ba5e8af95a1019b34386eaac814b1a48774f))\n* **l10n:** Update translations from Transifex ([9d67a65](https://github.com/nextcloud/mail/commit/9d67a65f9ed59c6799687feab14236e917c8e9d0))\n* mail printing ([47820ad](https://github.com/nextcloud/mail/commit/47820ad24482622c1c9e5593186a76ccd09595a0))\n* **smtp:** handle non ascii sender names ([f9803f9](https://github.com/nextcloud/mail/commit/f9803f9fbd043de726b08f1bdc04a7795a8a7f00))\n* **ui:** prefer sans-serif over Noto Color Emoji for text rendering ([3473b1d](https://github.com/nextcloud/mail/commit/3473b1dfdb05602ea4baaee0e1a5c6e9c0e0bd75))\n* **ui:** prevent type error during shortkey usage ([c9cbc09](https://github.com/nextcloud/mail/commit/c9cbc098a0ea38db1ed2ab87b58a17e9865f3575))\n* **ui:** restore isSubscribed getter on mailbox update ([c44f12b](https://github.com/nextcloud/mail/commit/c44f12b2f294d04cac1c73b41b68d6f9ce8e9af1))\n* **ui:** sub-mailbox drops blocked by parent cascade ([0e81d91](https://github.com/nextcloud/mail/commit/0e81d91f3b4f2a86a2fa80e08f63907f104978f8))\n\n\n### Features\n\n* add ai hint on reply with meeting when ai is used ([fe60745](https://github.com/nextcloud/mail/commit/fe607453a5a320e8324e1c81a2c6f353bde4917a))\n* **ui:** add password change shortcut to server settings ([ac447f2](https://github.com/nextcloud/mail/commit/ac447f2e6e3acacbaeba28b585046ed253edaa6b))\n\n\n\n# [5.9.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-alpha.1...v5.9.0-rc.1) (2026-05-27)\n\n\n### Bug Fixes\n\n* **api:** validate targetPath is an existing folder on saveAttachment ([0f5d81c](https://github.com/nextcloud/mail/commit/0f5d81cf8ae5994f36d2364088c02834e18bce4e))\n* **deps:** Fix npm audit ([45b32cf](https://github.com/nextcloud/mail/commit/45b32cfb49e03a1bff58d6a08155cfacb691acef))\n* **dns:** Update public suffix list ([119a96b](https://github.com/nextcloud/mail/commit/119a96bec966268116776044c6866dc547a801ff))\n* **l10n:** Update translations from Transifex ([9b6ba58](https://github.com/nextcloud/mail/commit/9b6ba5871b0895c9a15e88131921d4228ee45200))\n* **l10n:** Update translations from Transifex ([fba5807](https://github.com/nextcloud/mail/commit/fba580735f9f0b89269b7885adb00a264c4ee397))\n* **l10n:** Update translations from Transifex ([b37655d](https://github.com/nextcloud/mail/commit/b37655d8d5fd9ad84f2ddb1ef94b2e60e7488140))\n* **l10n:** Update translations from Transifex ([0367a07](https://github.com/nextcloud/mail/commit/0367a07118c904d5522a9047520104145ec7f219))\n* **package:** exclude dev config and patch files from release tarball ([6d20e3f](https://github.com/nextcloud/mail/commit/6d20e3f06afb127e5e5f19fca8fd6a810747eb46))\n* **ui:** add NcModal name prop to SmimeCertificateModal for accessibility ([525c3ab](https://github.com/nextcloud/mail/commit/525c3ab9d53f19082c137cc0050f4038c54f0b70))\n* **ui:** use v-model for assistance setting switches ([9bbae7d](https://github.com/nextcloud/mail/commit/9bbae7d7d55a5e22f0c1f67e1d58f987ffe80233))\n\n\n### Features\n\n* add notifications for account delegation ([2e1ddae](https://github.com/nextcloud/mail/commit/2e1ddaec2d45636f69a70c338fe5caa7b659ffd2))\n* **deps:** Add Nextcloud 35 support ([e3dcc0e](https://github.com/nextcloud/mail/commit/e3dcc0e0ac3b644199abb36def63c6737a89919c))\n* **ui:** paste or copy several e-mail addresses into address fields at once ([98f6282](https://github.com/nextcloud/mail/commit/98f6282008460663bd312d66d4398ae01aa7c188))\n\n\n\n# [5.9.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.9.0-dev.1...v5.9.0-alpha.1) (2026-05-18)\n\n\n### Bug Fixes\n\n* **auth:** detect and warn about MS accounts without oauth setup ([836b36a](https://github.com/nextcloud/mail/commit/836b36afa096a89334986653fff2f8a3d3c69b9c))\n* correct favorite/unfavorite bulk action logic ([fcb160a](https://github.com/nextcloud/mail/commit/fcb160ac78f58e93df9c2cddcf2189a81b42c876)), closes [#12149](https://github.com/nextcloud/mail/issues/12149)\n* **deps:** Fix npm audit ([8df6bdf](https://github.com/nextcloud/mail/commit/8df6bdf5f161345ce4d64b472ff05fa6f1ac79a6))\n* **dns:** Update public suffix list ([23d0823](https://github.com/nextcloud/mail/commit/23d0823dd1d930fbaf72b93c089b30c6622e5661))\n* **imap:** log number of connections during CLI sync ([d9c240c](https://github.com/nextcloud/mail/commit/d9c240cac5ea17029c8272707614de1ae63a88d1))\n* **l10n:** Update translations from Transifex ([7838385](https://github.com/nextcloud/mail/commit/78383856e07df0c2a7ba0bd2f7f8e66b7ddcf69c))\n* **l10n:** Update translations from Transifex ([203ce36](https://github.com/nextcloud/mail/commit/203ce3603f6abf3640dbc4856e422162a55e5531))\n* **l10n:** Update translations from Transifex ([c6b89ed](https://github.com/nextcloud/mail/commit/c6b89edbcbe08ec9d9e7cadf3aa89d148728a4c2))\n* **l10n:** Update translations from Transifex ([8cb01dc](https://github.com/nextcloud/mail/commit/8cb01dc41e437aa9e0aeee6bf9cfe20cefd71b8f))\n* **l10n:** Update translations from Transifex ([17d048a](https://github.com/nextcloud/mail/commit/17d048a2deac844415f28d98e7bc5cd7bf3d3a3c))\n* **l10n:** Update translations from Transifex ([40cc7c2](https://github.com/nextcloud/mail/commit/40cc7c2469ef49a470cbbe2a9b5b5e9b574f26c7))\n* **l10n:** Update translations from Transifex ([af4c704](https://github.com/nextcloud/mail/commit/af4c704e8653a70b56784bb15a3c1a78b377078e))\n* **lint:** fix all lint errors introduced by recipient display changes ([f19e780](https://github.com/nextcloud/mail/commit/f19e780abfa5df2a01d4805707deee2c22a03ae0))\n* Load translations via filesystem path ([042cc1e](https://github.com/nextcloud/mail/commit/042cc1e468f771018a86c043141f1e61ebea8e17))\n* Modal open bug ([5f21187](https://github.com/nextcloud/mail/commit/5f21187f8458322e5be8ae3728cb4d9156eceff3))\n* **thread:** address PR review comments ([dcbf341](https://github.com/nextcloud/mail/commit/dcbf3414f3cf4973304aa64156ed6f23fcb1a6d2))\n* **thread:** address review feedback on recipient CSS ([478f2f6](https://github.com/nextcloud/mail/commit/478f2f6011ce1dae128de9a7a28fa0b065583322))\n* **thread:** collapse recipients by default behind toggle chevron ([13041d9](https://github.com/nextcloud/mail/commit/13041d9f913c8cea46adff73e028cb4a7977a964))\n* **thread:** move recipient bubbles outside router-link to fix click handling ([971a59d](https://github.com/nextcloud/mail/commit/971a59dec9534917cb608c90fd27a9adfe992e83))\n* **thread:** polish sender/recipients display in thread envelope ([d02a261](https://github.com/nextcloud/mail/commit/d02a2618bfabd715998110c14c4bdfb3aa64b374))\n* **thread:** size recipient bubbles to 24px via CSS overrides ([2add2e4](https://github.com/nextcloud/mail/commit/2add2e4f0800570122ffa492ff64a1e06df9a785))\n* **ui:** close attachment actions menu after clicking Download or Save to Files ([dade396](https://github.com/nextcloud/mail/commit/dade396308420d2507f75ab7491782572f18c85e))\n\n\n### Features\n\n* add delegation ([cf3bd8b](https://github.com/nextcloud/mail/commit/cf3bd8bf04307bcc91c28dc98928f171eca1a475))\n* add html and source editing support ([0eaad6f](https://github.com/nextcloud/mail/commit/0eaad6fb1f1408d1b17a3a3ceca27583f5b5fac2))\n* **Agents.md:** add styling instructions ([5dd4fd1](https://github.com/nextcloud/mail/commit/5dd4fd14cf85b420685a3e4915255d7167a40c03))\n* Keep inline images on forwarding ([bcf94f4](https://github.com/nextcloud/mail/commit/bcf94f40267edb19b96a3c1d03297cf28fd1e51b))\n* **thread:** match design spec from [#4258](https://github.com/nextcloud/mail/issues/4258) ([14fdd9a](https://github.com/nextcloud/mail/commit/14fdd9ab94d3fee82eff3ca71b4fd644094de49f))\n* **thread:** show per-message To/Cc/Bcc recipients in thread view ([332ffef](https://github.com/nextcloud/mail/commit/332ffefd5c42d6b387b00834d0d167b3531c173c)), closes [#11305](https://github.com/nextcloud/mail/issues/11305) [#9311](https://github.com/nextcloud/mail/issues/9311) [#4258](https://github.com/nextcloud/mail/issues/4258)\n\n\n### Performance Improvements\n\n* **imap:** reuse client connection during initial sync ([c0f3a79](https://github.com/nextcloud/mail/commit/c0f3a79ff0e5a4bf6ef022677bf1417e66be851e))\n\n\n\n# [5.9.0-dev.1](https://github.com/nextcloud/mail/compare/v5.8.0-alpha.1...v5.9.0-dev.1) (2026-05-06)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([e27a4ad](https://github.com/nextcloud/mail/commit/e27a4addb73ea82d3500844297658ac47447028b))\n\n\n\n# [5.8.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.7.0-rc.1...v5.8.0-alpha.1) (2026-05-05)\n\n\n### Bug Fixes\n\n* **AccountService:** Invalidate cache after account creation/change/deletion ([f205e15](https://github.com/nextcloud/mail/commit/f205e1529b55a5d199589e5e90d758e3019d3b23))\n* **account:** use classification state from account ([662eeff](https://github.com/nextcloud/mail/commit/662eeff58c7196b01dfe8ace35a9765bf86ca05d))\n* adding smart reply text when reply all ([1c32ab1](https://github.com/nextcloud/mail/commit/1c32ab15920853ad4c81056e1a58e5dd32ba200b))\n* **agents.md:** adjust license ([380a961](https://github.com/nextcloud/mail/commit/380a961ff60008270f1df98b071544e68e36643a))\n* **ai:** handle invalid JSON and possible null for smart replies ([27e443b](https://github.com/nextcloud/mail/commit/27e443b66369afbdb538cf9e9ce47f259bd1de61))\n* **attachementNames:** lower log level ([22a111f](https://github.com/nextcloud/mail/commit/22a111fd5051421279fd7237daac903e557a2293))\n* **attachements:** unify icons with the rest of nextcloud ([ea58f99](https://github.com/nextcloud/mail/commit/ea58f9963bd620e62e52ab9c78ecb20e8409d0f0))\n* **autocomplete:** respect privacy settings for sharing ([b7e6088](https://github.com/nextcloud/mail/commit/b7e608827e355c416069f3a3b6a306aee6d113f4))\n* Avoid undefined array key for address list ([f3497f8](https://github.com/nextcloud/mail/commit/f3497f824df3781400bb5ceb6ae4c40fddf03501))\n* Broken encryption with Mailvelope ([4b543b4](https://github.com/nextcloud/mail/commit/4b543b4719341f2e0cf0f01b325e88c37e138c51))\n* **cache:** expire the IMAP ratelimit keys via TTL ([f1ac885](https://github.com/nextcloud/mail/commit/f1ac8858927a560df03fc76e4950d8e24896219e))\n* **ckeditor:** Better matching for CKEditor translations ([990f94a](https://github.com/nextcloud/mail/commit/990f94ad09d646c27de6a3ed33c062b4d9f7ecc9))\n* clean text blocks on user deletion ([93b07d4](https://github.com/nextcloud/mail/commit/93b07d4c45cdaa2377d407d8b7944b0b321183d6))\n* compact view UI fixes ([d8cec2c](https://github.com/nextcloud/mail/commit/d8cec2c744fbf94fb4e255c9da229a0fd5c4f120))\n* **composer:** Adjust border color of vertical separator to be in line with other borders ([71d88f2](https://github.com/nextcloud/mail/commit/71d88f2c0b8b3d30bf60f84d7ed3db9862eff440))\n* **composer:** Adjust border colors of CKEditor element to be in line with other borders ([496b8f6](https://github.com/nextcloud/mail/commit/496b8f654953ef51ef2906165da55a6c32f59291))\n* **composer:** Don't show 'No results' dropdown when To/Cc/Bcc focused, only with search term put in ([6e78828](https://github.com/nextcloud/mail/commit/6e788289f2ab89dfe2191d377e477aa9f6e4bffb))\n* **composer:** Forwarding emails with attachments ([4dd6a0e](https://github.com/nextcloud/mail/commit/4dd6a0e766831ea1b91b01c2fc71335fb0e85705))\n* **composer:** handle missing message body gracefully ([1d40201](https://github.com/nextcloud/mail/commit/1d402012a443e7fd343f9412f511208fc2f1ca43))\n* **Composer:** make initial focus be on to field ([010f648](https://github.com/nextcloud/mail/commit/010f6485bad8fa9c2ad95616ba1b6d5ac5ad4f70))\n* **composer:** Use v-model for send later radio buttons ([bb99cfa](https://github.com/nextcloud/mail/commit/bb99cfa7404a08e80a543813c7d6511127bdf1b6))\n* **contactsIntegration:** avoid incorrect cache results ([ae4af81](https://github.com/nextcloud/mail/commit/ae4af81430e0cf0de04b771a20ef910bd01ab93c))\n* **contacts:** Use correct default for shareapi_allow_share_dialog_user_enumeration ([2e8ed36](https://github.com/nextcloud/mail/commit/2e8ed36f10f5f01c8ff3a26a4ac8949a4b4a2e6d))\n* Copilot suggestions ([3c7341f](https://github.com/nextcloud/mail/commit/3c7341f44b1760126846881586e16e168b9aed09))\n* **db:** add missing messages table index for Postgres ([747cf7d](https://github.com/nextcloud/mail/commit/747cf7dd6a7414a7e19b78fa4377ec9fd5789d6a))\n* **db:** refactor delete by alias to separate queries ([8f3fcd4](https://github.com/nextcloud/mail/commit/8f3fcd4f611770ebbf5bd485efa2236afbb54d35))\n* **db:** widen recipients table index for email+type+message_id ([19514ac](https://github.com/nextcloud/mail/commit/19514ac550a18741aef7dd8d8b15ef62c48d78ae))\n* **deps:** bump @iframe-resizer/child from 5.5.7 to ^5.5.8-beta.2 ([#12350](https://github.com/nextcloud/mail/issues/12350)) ([396b3ea](https://github.com/nextcloud/mail/commit/396b3eae4a32686f247c9bdf513f9d7dd88f10b1))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.8 ([#12377](https://github.com/nextcloud/mail/issues/12377)) ([7618a40](https://github.com/nextcloud/mail/commit/7618a40010869c826346ae76b0ee4e57fdc57ddc))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.9 ([#12444](https://github.com/nextcloud/mail/issues/12444)) ([912105c](https://github.com/nextcloud/mail/commit/912105cc5f3b311e41ab6b82fe170a3583be464c))\n* **deps:** bump @iframe-resizer/parent from 5.5.7 to ^5.5.8-beta.2 ([#12351](https://github.com/nextcloud/mail/issues/12351)) ([26ed10a](https://github.com/nextcloud/mail/commit/26ed10a41f56da1c860ab0260576fa320b821af7))\n* **deps:** bump @iframe-resizer/parent from 5.5.8 to ^5.5.8 ([#12389](https://github.com/nextcloud/mail/issues/12389)) ([0c6b4d1](https://github.com/nextcloud/mail/commit/0c6b4d13984810824eba8538f75800c776224cad))\n* **deps:** bump @iframe-resizer/parent from 5.5.9 to ^5.5.9 ([#12478](https://github.com/nextcloud/mail/issues/12478)) ([29cfec6](https://github.com/nextcloud/mail/commit/29cfec6cefdb1ca99391ca1c0e15d53bdb841d4f))\n* **deps:** bump @nextcloud/auth from 2.5.3 to ^2.6.0 ([#12758](https://github.com/nextcloud/mail/issues/12758)) ([789eb32](https://github.com/nextcloud/mail/commit/789eb321875d9bd9ca42012c3e2a9681f0091eb0))\n* **deps:** bump @nextcloud/axios from 2.5.2 to ^2.6.0 ([#12837](https://github.com/nextcloud/mail/issues/12837)) ([3b9474c](https://github.com/nextcloud/mail/commit/3b9474ccb57296ec12ef30de8c5089116dc904ee))\n* **deps:** bump @nextcloud/calendar-js from 8.1.4 to ^8.1.6 ([889e313](https://github.com/nextcloud/mail/commit/889e31327bcec9de65c1121b6b1c216a3a45d47a))\n* **deps:** bump @nextcloud/cdav-library from 2.1.1 to ^2.2.0 ([#12759](https://github.com/nextcloud/mail/issues/12759)) ([41d27cc](https://github.com/nextcloud/mail/commit/41d27cc6755cea0a501621051d25b5c32295c978))\n* **deps:** bump @nextcloud/sharing from 0.3.0 to ^0.4.0 ([efab69f](https://github.com/nextcloud/mail/commit/efab69fe258db00c1c7a3c191761fdb9a3e6f2a6))\n* **deps:** bump @nextcloud/timezones from 0.2.0 to v1 ([6eb78b9](https://github.com/nextcloud/mail/commit/6eb78b992297a72e9862367304b95facc9ffe368))\n* **deps:** bump @nextcloud/vue from 8.36.0 to ^8.36.0 ([d68bbc6](https://github.com/nextcloud/mail/commit/d68bbc69e069dc9767970ce00e127046b6e1e229))\n* **deps:** bump @nextcloud/vue from 8.37.0 to ^8.37.0 ([fdd6478](https://github.com/nextcloud/mail/commit/fdd6478797e818ace28eb2c2a88c5615d081c9d8))\n* **deps:** bump @nextcloud/vue from 8.38.0 to ^8.38.0 ([c142309](https://github.com/nextcloud/mail/commit/c142309f43496b6fe1a95da34baf355c3a91d94e))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.3 to ^1.9.1 ([#12847](https://github.com/nextcloud/mail/issues/12847)) ([cc683c1](https://github.com/nextcloud/mail/commit/cc683c181c76bd66cdfce3cdc7b9be1024cca9bb))\n* **deps:** bump bytestream/horde-imap-client from 2.33.6 to ^2.33.7 ([#12627](https://github.com/nextcloud/mail/issues/12627)) ([06fd337](https://github.com/nextcloud/mail/commit/06fd3372f0095de252f02f2c55664418699e12b7))\n* **deps:** bump bytestream/horde-imap-client from 2.33.7 to ^2.34.0 ([#12675](https://github.com/nextcloud/mail/issues/12675)) ([56e76df](https://github.com/nextcloud/mail/commit/56e76df878f2469128d8daf99e10a0a37d07b3eb))\n* **deps:** bump bytestream/horde-imap-client from 2.34.0 to ^2.34.1 ([#12798](https://github.com/nextcloud/mail/issues/12798)) ([834a0a6](https://github.com/nextcloud/mail/commit/834a0a65330b86a0a7030628b5c66e5530cc1df5))\n* **deps:** bump bytestream/horde-mime from 2.14.0 to ^2.14.1 ([87d83e8](https://github.com/nextcloud/mail/commit/87d83e897243e9c09731b116f72748551c790e0a))\n* **deps:** bump ckeditor from v45 to v46 ([6884f5b](https://github.com/nextcloud/mail/commit/6884f5b2512ed91c0d74cda8f4031da8c44156dc))\n* **deps:** bump ckeditor5 from 46.1.1 to v47 ([e6fc646](https://github.com/nextcloud/mail/commit/e6fc6467b48ff721a03d1666fc8afd48d90093bc))\n* **deps:** bump ckeditor5 from 47.6.1 to ^47.6.1 ([#12704](https://github.com/nextcloud/mail/issues/12704)) ([682ad03](https://github.com/nextcloud/mail/commit/682ad03814433a1ae2564a8373fda5b0d72179a1))\n* **deps:** bump ckeditor5 from 47.6.2 to ^47.6.2-alpha.0 ([#12730](https://github.com/nextcloud/mail/issues/12730)) ([cc00d75](https://github.com/nextcloud/mail/commit/cc00d75505b639c704e98633582b332eb317e18a))\n* **deps:** bump core-js from 3.48.0 to ^3.49.0 ([#12760](https://github.com/nextcloud/mail/issues/12760)) ([660f2ff](https://github.com/nextcloud/mail/commit/660f2fffac7aaaf957f26cae01838e6de4221fc1))\n* **deps:** bump dompurify from 3.3.1 to v3.3.2 ([#12521](https://github.com/nextcloud/mail/issues/12521)) ([68d4a79](https://github.com/nextcloud/mail/commit/68d4a799b84b27822cbca1fb1f0bd3a1ab5825ef))\n* **deps:** bump dompurify from 3.3.2 to ^3.3.3 ([#12653](https://github.com/nextcloud/mail/issues/12653)) ([1316686](https://github.com/nextcloud/mail/commit/1316686d5ac9aaa9437052f9660a2e765ccf2e5e))\n* **deps:** bump dompurify from 3.3.3 to v3.4.0 ([#12744](https://github.com/nextcloud/mail/issues/12744)) ([8a96e08](https://github.com/nextcloud/mail/commit/8a96e082cf4edc459350027a4628cd78135c66c1))\n* **deps:** bump dompurify from 3.4.0 to ^3.4.0 ([#12761](https://github.com/nextcloud/mail/issues/12761)) ([675d538](https://github.com/nextcloud/mail/commit/675d538a37c295ebf0020ccfeeff445f9a83b3f5))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.1 ([#12827](https://github.com/nextcloud/mail/issues/12827)) ([3c9adc6](https://github.com/nextcloud/mail/commit/3c9adc6aa80c7efa148c669a4153e41dc0ae731a))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.2 ([#12869](https://github.com/nextcloud/mail/issues/12869)) ([cf0f574](https://github.com/nextcloud/mail/commit/cf0f57409ada028d741c187db8391084a67bd5f1))\n* **deps:** bump flatted from 3.3.3 to 3.4.2 ([#12659](https://github.com/nextcloud/mail/issues/12659)) ([ff40a35](https://github.com/nextcloud/mail/commit/ff40a35d4c9398e09e1f9cc2f113071b0d0d903c))\n* **deps:** bump lodash from 4.17.23 to v4.18.1 ([#12693](https://github.com/nextcloud/mail/issues/12693)) ([3d45186](https://github.com/nextcloud/mail/commit/3d451865b93ad3742dd76f4bd6f86cc5d0d8f6e4))\n* **deps:** bump lodash from 4.18.1 to ^4.18.1 ([#12731](https://github.com/nextcloud/mail/issues/12731)) ([679effc](https://github.com/nextcloud/mail/commit/679effcb68a12bdb79d762afea51f9e21c905c04))\n* **deps:** bump node-forge from 1.3.3 to v1.4.0 ([#12663](https://github.com/nextcloud/mail/issues/12663)) ([fb5b0e6](https://github.com/nextcloud/mail/commit/fb5b0e602a1e2b265af862123cb254e6b7566b3f))\n* **deps:** bump node-forge from 1.4.0 to ^1.4.0 ([#12752](https://github.com/nextcloud/mail/issues/12752)) ([3330a0b](https://github.com/nextcloud/mail/commit/3330a0b45939edf348715741207f9929c2e753d5))\n* **deps:** bump rollup from 4.52.4 to 4.60.0 ([#12658](https://github.com/nextcloud/mail/issues/12658)) ([dfd6a36](https://github.com/nextcloud/mail/commit/dfd6a36b2277ec31d865fb7a5fca6e818dc7923f))\n* **deps:** bump sabberworm/php-css-parser from 8.9.0 to v9 ([d32bef1](https://github.com/nextcloud/mail/commit/d32bef15e529e6ba89cc594ad50f243749224e42))\n* **deps:** bump stylelint from 17.9.1 to ^17.8.0 ([#12851](https://github.com/nextcloud/mail/issues/12851)) ([dceef09](https://github.com/nextcloud/mail/commit/dceef09db387cc6daa55e51f5a0dd9c89a1b85a7))\n* **deps:** bump stylelint from 17.9.1 to ^17.9.1 ([#12870](https://github.com/nextcloud/mail/issues/12870)) ([0685aa5](https://github.com/nextcloud/mail/commit/0685aa5324cb671034e653ae482c11fab00d7b52))\n* **deps:** bump uuid from 11.1.0 to v14 ([6e98a10](https://github.com/nextcloud/mail/commit/6e98a10c7d15067b285895f4a1ae995a0503279a))\n* **deps:** Fix npm audit ([0c92bdb](https://github.com/nextcloud/mail/commit/0c92bdb20aa8e0a2c656f682bf4fdc348acfbcaf))\n* **deps:** Fix npm audit ([38e8a60](https://github.com/nextcloud/mail/commit/38e8a6059f31f16ce569bb89e2a9d80acd47e9f9))\n* **deps:** Fix npm audit ([3809bc3](https://github.com/nextcloud/mail/commit/3809bc35bfb9c3ad6d1fcc6077fb68d400fe89b1))\n* **deps:** Fix npm audit ([3bab2ea](https://github.com/nextcloud/mail/commit/3bab2eaa703c93e0370b37ece6cb042844efdd73))\n* **deps:** Update symfony/process to fix MSYS2 argument escaping vulnerability ([e1e288f](https://github.com/nextcloud/mail/commit/e1e288fb8427e2b3108f888fe869b0a07029c93e))\n* **deps:** update webpack-cli to v6 ([3b43ed9](https://github.com/nextcloud/mail/commit/3b43ed90afba2e6c541e2f0d67403c8f494cfa33))\n* **dns:** Update public suffix list ([7efd7f3](https://github.com/nextcloud/mail/commit/7efd7f39ca23deb268ab6918e31be047b9fe3b9e))\n* **dns:** Update public suffix list ([064b615](https://github.com/nextcloud/mail/commit/064b615d6ae879e57231fb115492e54f2a46e42d))\n* **dns:** Update public suffix list ([3e660c7](https://github.com/nextcloud/mail/commit/3e660c71ebbf740842038317c75263aca2ec75f9))\n* **dns:** Update public suffix list ([c46c0c0](https://github.com/nextcloud/mail/commit/c46c0c0eeae2bf9b09fbed0472ffa07b2e7811ce))\n* **dns:** Update public suffix list ([23d0ebf](https://github.com/nextcloud/mail/commit/23d0ebfc7ea82906b1647455fde6748e6e26999f))\n* **dns:** Update public suffix list ([c583ad5](https://github.com/nextcloud/mail/commit/c583ad5159a4de8a634d7f7da8516e1c3f17a96e))\n* Dont hijack mailto links ([3c025c9](https://github.com/nextcloud/mail/commit/3c025c94f6989364311a48f6f5aa1ebc45506ee9))\n* **drag-and-drop:** track all droppable-mailbox directive instances independently ([6729ad8](https://github.com/nextcloud/mail/commit/6729ad88d7e3c8d0a942e641b208f3398a0ebb09))\n* Fix deprecation warnings when using PHP >= 8.5 ([6f33f46](https://github.com/nextcloud/mail/commit/6f33f4673fbd3f12e519db8caaf3889d816ea996))\n* Handle SmimeDecryptException when getting attachments ([4e7e9e0](https://github.com/nextcloud/mail/commit/4e7e9e03cd40d06ea912b1ce215f09fe8fd47c18))\n* **http:** guard against more null users in controllers ([50cef92](https://github.com/nextcloud/mail/commit/50cef92ce36849d55a83f9c2c25d16a5cce0fbb0))\n* **http:** guard against null user in MailboxesController ([a602571](https://github.com/nextcloud/mail/commit/a60257198725ab372baa74e9e42630550a9378a6))\n* **http:** guard against null user in MessagesController ([3f6cad9](https://github.com/nextcloud/mail/commit/3f6cad922120259cc9039ef4697f26550028b5a8))\n* **http:** prevent NPE by non-null controller parameters ([8ab9849](https://github.com/nextcloud/mail/commit/8ab9849f929f38b2e8ca2bfc041e13d99b9bb9a7))\n* Ignore attachments without a name ([caba948](https://github.com/nextcloud/mail/commit/caba948c62f21f5dbf3eb0673e8331e5813faadd))\n* **imap:** avoid expanding UID ranges ([8af9849](https://github.com/nextcloud/mail/commit/8af9849d362260d03a7a68de928fef73b0f84017))\n* **IMAP:** don't add whitespaces to drafts ([d8b4a85](https://github.com/nextcloud/mail/commit/d8b4a859e7784b80906fc3e3686a8d5415128576))\n* **imap:** Handle unselectable mailboxe ([86d5fee](https://github.com/nextcloud/mail/commit/86d5feef879187f473df613490c0e10126e8137b))\n* **imap:** log details of the sync to debug OOMs ([432ec82](https://github.com/nextcloud/mail/commit/432ec829f94d0bf11214191c8b1f0ad9e4897851))\n* **imap:** log more sync details ([b9ff2d0](https://github.com/nextcloud/mail/commit/b9ff2d03bd1356e32c7cf7f1d02fca22b7cd0199))\n* **imap:** log partial sync criteria ([88eccd0](https://github.com/nextcloud/mail/commit/88eccd09404da76485e1284375f257b2bf57f965))\n* **imap:** prevent null HIGHESTMODSEQ after initial sync ([7980d9e](https://github.com/nextcloud/mail/commit/7980d9e4015c894c4c5a7215546e7c61f5abe1c3))\n* Invalid cache lookup for emails without attachment ([a76426e](https://github.com/nextcloud/mail/commit/a76426e2fb37bb315850e690f979955aaa39d3c5))\n* **js:** reset envelope lists to object, not array ([5d96714](https://github.com/nextcloud/mail/commit/5d967141f8cacc8a138f14ca23a7a13346039072))\n* Keep raw message on smtp/mime failure ([58c860e](https://github.com/nextcloud/mail/commit/58c860ed4a6e1b357028c50828a27347addccde7))\n* **l10n:** Update translations from Transifex ([64f21c6](https://github.com/nextcloud/mail/commit/64f21c6065987059fcd23f4d049eee318988a4f5))\n* **l10n:** Update translations from Transifex ([0c3ccf1](https://github.com/nextcloud/mail/commit/0c3ccf171784d88bfffabdfc2b74b9a5832fe730))\n* **l10n:** Update translations from Transifex ([b07f5a9](https://github.com/nextcloud/mail/commit/b07f5a9912795352155a9a3db07b52de7c692bd4))\n* **l10n:** Update translations from Transifex ([929b01c](https://github.com/nextcloud/mail/commit/929b01c6841913040f9ddd0c8d85d7dea1cf53e7))\n* **l10n:** Update translations from Transifex ([9d799da](https://github.com/nextcloud/mail/commit/9d799da288e845db089d69fc714f12d2d75c8fcc))\n* **l10n:** Update translations from Transifex ([0fc8509](https://github.com/nextcloud/mail/commit/0fc85095b70bff9334edcba38641cbf17deb7f7a))\n* **l10n:** Update translations from Transifex ([41b55e1](https://github.com/nextcloud/mail/commit/41b55e17969ce101b6ec8489ef4924a82cffd4a8))\n* **l10n:** Update translations from Transifex ([ca874d6](https://github.com/nextcloud/mail/commit/ca874d68a5964c7177506341865bb69d2387a4d3))\n* **l10n:** Update translations from Transifex ([361fcf7](https://github.com/nextcloud/mail/commit/361fcf755babcd8c25c65aa3eff6fa333e44f2b1))\n* **l10n:** Update translations from Transifex ([331d67a](https://github.com/nextcloud/mail/commit/331d67a1a288418a2bf70c23980e050682f4e733))\n* **l10n:** Update translations from Transifex ([1335815](https://github.com/nextcloud/mail/commit/1335815a1de24f9f4494d0f8f75991f9c852e372))\n* **l10n:** Update translations from Transifex ([31fe982](https://github.com/nextcloud/mail/commit/31fe982bce3533a2feaecce0f255aa2de7bf21b7))\n* **l10n:** Update translations from Transifex ([7b57369](https://github.com/nextcloud/mail/commit/7b57369afb7f3bda596ea0e90eaf995f43490f78))\n* **l10n:** Update translations from Transifex ([1e74c52](https://github.com/nextcloud/mail/commit/1e74c520a61df0854d05396a8fa803daa20b5362))\n* **l10n:** Update translations from Transifex ([3ddace2](https://github.com/nextcloud/mail/commit/3ddace263b82dc7504ea7346d6156c7d2f4e7868))\n* **l10n:** Update translations from Transifex ([1277bc8](https://github.com/nextcloud/mail/commit/1277bc892e45e34d78a2755bf7e3ed4dc59d0127))\n* **l10n:** Update translations from Transifex ([4c93f30](https://github.com/nextcloud/mail/commit/4c93f307e36007340b32f80e75b753ea87cc4c07))\n* **l10n:** Update translations from Transifex ([5db8d9a](https://github.com/nextcloud/mail/commit/5db8d9a72733c47019735044aaa6a2d1cc064a06))\n* **l10n:** Update translations from Transifex ([14e87a1](https://github.com/nextcloud/mail/commit/14e87a15b56ba40daeef8ff328637a80e93afc95))\n* **l10n:** Update translations from Transifex ([4211056](https://github.com/nextcloud/mail/commit/42110564979994a6fdbe8baefa2671640241acba))\n* **l10n:** Update translations from Transifex ([0eef59d](https://github.com/nextcloud/mail/commit/0eef59d49324b1a79a7ef8b7fcb20b8ed13778f3))\n* **l10n:** Update translations from Transifex ([6ce413b](https://github.com/nextcloud/mail/commit/6ce413bb6365d6b82b6d55a78160ea68b33d8359))\n* **l10n:** Update translations from Transifex ([0f90f19](https://github.com/nextcloud/mail/commit/0f90f19d946e0cdf0430a5ab973754b630884c99))\n* **l10n:** Update translations from Transifex ([5d1535d](https://github.com/nextcloud/mail/commit/5d1535d4a1d18cb658d69400a4c20822f553af2a))\n* **l10n:** Update translations from Transifex ([693771f](https://github.com/nextcloud/mail/commit/693771fae8887724bc3337b2bdb0b5137ede3090))\n* **l10n:** Update translations from Transifex ([2841421](https://github.com/nextcloud/mail/commit/28414219b5bc1b34c04a99d4623b986c7fd2514d))\n* **l10n:** Update translations from Transifex ([0a746cf](https://github.com/nextcloud/mail/commit/0a746cfef45de9707a9b866a3d591666b781cecb))\n* **l10n:** Update translations from Transifex ([4ee2065](https://github.com/nextcloud/mail/commit/4ee2065b1c16fdc3c2991eaeb16796f523ed1b11))\n* **l10n:** Update translations from Transifex ([8027c52](https://github.com/nextcloud/mail/commit/8027c5244ab9f6f2dda5f15d703206699a5a2654))\n* **l10n:** Update translations from Transifex ([8d84ac9](https://github.com/nextcloud/mail/commit/8d84ac90cc01dd50c0b02c36baf53829245eca31))\n* **l10n:** Update translations from Transifex ([1c088bb](https://github.com/nextcloud/mail/commit/1c088bbe13525a5aca1540ce1ed1e387a45e8751))\n* **l10n:** Update translations from Transifex ([3e6bc95](https://github.com/nextcloud/mail/commit/3e6bc95128afb3a00e570cba136814a5b681601b))\n* **l10n:** Update translations from Transifex ([5d0df22](https://github.com/nextcloud/mail/commit/5d0df22ddfd0dbb5b35f702700e3d7e9741523f4))\n* **l10n:** Update translations from Transifex ([ee2e98e](https://github.com/nextcloud/mail/commit/ee2e98e589c8e467aa15ececa50b80825e42582b))\n* **l10n:** Update translations from Transifex ([d4b222a](https://github.com/nextcloud/mail/commit/d4b222ad37d39e08f92c19590792196049ec3725))\n* **l10n:** Update translations from Transifex ([4301b55](https://github.com/nextcloud/mail/commit/4301b557c537da6a57bbe51df50c41e340017825))\n* **l10n:** Update translations from Transifex ([ff4f00c](https://github.com/nextcloud/mail/commit/ff4f00c8d0e6e15af9d2b3a68df891bfbcf20089))\n* **l10n:** Update translations from Transifex ([385edc0](https://github.com/nextcloud/mail/commit/385edc0e283226c295ebf10b20b79f2d35e5651f))\n* **l10n:** Update translations from Transifex ([2dbc479](https://github.com/nextcloud/mail/commit/2dbc479359d9c2a6851f49fdc283a2f1b7f1b8e4))\n* **l10n:** Update translations from Transifex ([35f1831](https://github.com/nextcloud/mail/commit/35f18314a61d61014f5f439aea66d255ad9db85d))\n* **l10n:** Update translations from Transifex ([9a1d23f](https://github.com/nextcloud/mail/commit/9a1d23fcf3d6167bf84374bb34ea8562505aed62))\n* **l10n:** Update translations from Transifex ([261dd36](https://github.com/nextcloud/mail/commit/261dd368c06fde0643a7e164ebf75587835fc062))\n* **l10n:** Update translations from Transifex ([966bdf9](https://github.com/nextcloud/mail/commit/966bdf9a283cf9695d8b5580e7d174a18d63f355))\n* **l10n:** Update translations from Transifex ([7a3f2b5](https://github.com/nextcloud/mail/commit/7a3f2b51a9e1dd41af78c8a3e364419c69373a3f))\n* **l10n:** Update translations from Transifex ([de92421](https://github.com/nextcloud/mail/commit/de924212f802c351ef708890c7b6a677f6a98402))\n* **l10n:** Update translations from Transifex ([4da1267](https://github.com/nextcloud/mail/commit/4da12670673bbde80c2f439702832d5947b8a238))\n* **l10n:** Update translations from Transifex ([a8bf321](https://github.com/nextcloud/mail/commit/a8bf321975cff3a310edb7ca33338431631d34a5))\n* **l10n:** Update translations from Transifex ([d387e38](https://github.com/nextcloud/mail/commit/d387e38620a26d00255627a1e52862a765b055a3))\n* **l10n:** Update translations from Transifex ([7b77cf1](https://github.com/nextcloud/mail/commit/7b77cf1fd39e04d3f853c39be5e9862fe4351b5f))\n* **l10n:** Update translations from Transifex ([100238a](https://github.com/nextcloud/mail/commit/100238a833bb77d2a3d9320630ab5027e2929e8c))\n* **l10n:** Update translations from Transifex ([4d38cbf](https://github.com/nextcloud/mail/commit/4d38cbf8b5abd9d5dbfefc7a688e2ed33f0c63f1))\n* **l10n:** Update translations from Transifex ([f6fcf2d](https://github.com/nextcloud/mail/commit/f6fcf2d9f529d5277d38bf6569f96e33f33628e7))\n* **l10n:** Update translations from Transifex ([32536d3](https://github.com/nextcloud/mail/commit/32536d36512288317e8d28c7d2e0976664224d13))\n* **l10n:** Update translations from Transifex ([3e37229](https://github.com/nextcloud/mail/commit/3e3722954b8966ce67d72c9a4692944b92d0be68))\n* **l10n:** Update translations from Transifex ([3653082](https://github.com/nextcloud/mail/commit/36530829bc02816a2a7d29af03863049c8c7539c))\n* **l10n:** Update translations from Transifex ([7ae6d85](https://github.com/nextcloud/mail/commit/7ae6d85fe7310e722dfbdb1162924d967243660f))\n* **l10n:** Update translations from Transifex ([9efbb1a](https://github.com/nextcloud/mail/commit/9efbb1a53708b4147049beb17dd4efd95ec2066b))\n* **l10n:** Update translations from Transifex ([e4fa916](https://github.com/nextcloud/mail/commit/e4fa916cfaec39d6205e192a2e3255269b204372))\n* **l10n:** Update translations from Transifex ([671a425](https://github.com/nextcloud/mail/commit/671a425f9c1ecfc16540c127eb07eadb65ecb9e1))\n* **l10n:** Update translations from Transifex ([d1a4df6](https://github.com/nextcloud/mail/commit/d1a4df62a8076c513ff042e2b407655fcc1f7cc7))\n* **l10n:** Update translations from Transifex ([bf96880](https://github.com/nextcloud/mail/commit/bf96880672ff4a077e5994263d686826bc50c2b9))\n* **l10n:** Update translations from Transifex ([f88feea](https://github.com/nextcloud/mail/commit/f88feea46903496a77ccc8842826008171f132e4))\n* **l10n:** Update translations from Transifex ([5112079](https://github.com/nextcloud/mail/commit/511207976608f7b2382da25242b757c681b4cbfb))\n* **l10n:** Update translations from Transifex ([a5e79e5](https://github.com/nextcloud/mail/commit/a5e79e5462bffd4cecdaff8152fe6beb0a6dca32))\n* **MailTransmission:** Handle clients/servers picky about empty headers ([f60fd3b](https://github.com/nextcloud/mail/commit/f60fd3bc101d6d7090bf74d8ca83cff881135d15))\n* make list rendering work on mobile ([fa921ec](https://github.com/nextcloud/mail/commit/fa921ecb68667dce91a001151a6f227690dbdfb3))\n* Match default tag colors with Thunderbird ([c755afb](https://github.com/nextcloud/mail/commit/c755afbf288f3852886e096c6a0d11cff3a5708f))\n* **mention:** custom range for usernames and error handling ([eacc8b5](https://github.com/nextcloud/mail/commit/eacc8b5b5fc6bbe80c38621e0620585f7c5b8d9b))\n* Normalize message IDs via RFC822 parser to handle malformed input ([d03c3f1](https://github.com/nextcloud/mail/commit/d03c3f1801c5d3bbb725426887e125b4983a78c3))\n* **oauth:** do not force a Microsoft 365 consent ([23216da](https://github.com/nextcloud/mail/commit/23216da8f4e30f0e8a154d53eb2e2c232415236e))\n* only showing classification check box in setup form ([9f6a675](https://github.com/nextcloud/mail/commit/9f6a675e44c992e6c51b956486e43f56a0a71f82))\n* **outbox:** Skip messages with status error ([438419b](https://github.com/nextcloud/mail/commit/438419b8e069aa657dc587fb5d66119e30e4cae8))\n* **OutOfOfficeForm:** datepicker overlapping with sidebar ([e92759d](https://github.com/nextcloud/mail/commit/e92759d6bdfb97596a8db09891bcdf475674df3a))\n* Pass actual message body to dompurify ([82000ac](https://github.com/nextcloud/mail/commit/82000acaa53a954e36e31c1feec7038cda4c9991))\n* Pass error message from response to error object ([1bd84f1](https://github.com/nextcloud/mail/commit/1bd84f1b15bf78c834e85e39d97ec9bc10e576b0))\n* **phishing:** change header property accessor ([db47778](https://github.com/nextcloud/mail/commit/db47778e3af93b4a3d178a489b9c7b825680ffbb))\n* **php:** avoid implicit throwable to string conversion ([c83ab66](https://github.com/nextcloud/mail/commit/c83ab6630837bc289b3e7c279800894f5db5ae63))\n* **php:** harden return-false-on-error type function result handling ([4dfc60e](https://github.com/nextcloud/mail/commit/4dfc60ea15c4adf72523c5528e72212674499d0d))\n* **php:** refactor int/float conversions ([029d589](https://github.com/nextcloud/mail/commit/029d589d06c0303823955b927249cbf27d1be729))\n* **php:** throw on json encode errors ([d501d21](https://github.com/nextcloud/mail/commit/d501d210f2c992ee30d7160d6c0cfe6ec88f3e9e))\n* **php:** use type-safe string concatenation ([c8b3c1b](https://github.com/nextcloud/mail/commit/c8b3c1bdc18c03b38f7d14b00942857d256d15e1))\n* **provisioning:** Do not provision users without access to mail app ([0c8864c](https://github.com/nextcloud/mail/commit/0c8864cf6f4adc765424ae237294d6c2ef4b68c0))\n* quick search filters ([fd59d5f](https://github.com/nextcloud/mail/commit/fd59d5f70c2066c33336fcd043a874c60d35fcdd))\n* Remove call to deprecated allowEvalScript ([77e7e3f](https://github.com/nextcloud/mail/commit/77e7e3fb89f5cc4a3e74768d9f96a282f4773eb1))\n* Remove unused proxy redirect route ([32a6d46](https://github.com/nextcloud/mail/commit/32a6d46999c4e50afc45c578997b7aada3e2e297))\n* Replace array with weakmap so lookup is O(1) instead of O(n^2) ([580fad6](https://github.com/nextcloud/mail/commit/580fad6f3a1668587aec2ffc32c55a0e1fb3a151))\n* replace deprecated and removed OC\\Server getters ([e157960](https://github.com/nextcloud/mail/commit/e157960f0d88ba82a51820c8d40a88755d429afe))\n* set createdAt timestamp for local attachments ([29f84a6](https://github.com/nextcloud/mail/commit/29f84a604cdc49a476759fbfe35c61eef5537470))\n* show indication that transaltion modal uses AI ([b1843d5](https://github.com/nextcloud/mail/commit/b1843d5b35e8f43a46c001470341cdb85d812964))\n* show loading inidcator when searching messages ([89a2c5a](https://github.com/nextcloud/mail/commit/89a2c5a9a55b8f96242663065ce57a73b1c6b240))\n* Skip iconv without a charset ([d28e6ce](https://github.com/nextcloud/mail/commit/d28e6ceff0589ddf2c53c817866e40982b03fd58))\n* Skip link check for empty message ([4c7db57](https://github.com/nextcloud/mail/commit/4c7db57b2e0624c2036b1fa30eef49057ba9ad55))\n* **smime:** parse email addresses from Subject Alternative Names ([#12486](https://github.com/nextcloud/mail/issues/12486)) ([b3d7c9a](https://github.com/nextcloud/mail/commit/b3d7c9a1374688b4536c9ea4ba91f4f00383c24c)), closes [nextcloud/mail#11738](https://github.com/nextcloud/mail/issues/11738)\n* **textblocks:** guard removal of non existing text block ([89df2c7](https://github.com/nextcloud/mail/commit/89df2c7a88bebab3d34147c056cb267f557b7522))\n* thread scrolling position ([7d4f1be](https://github.com/nextcloud/mail/commit/7d4f1be591dec2af5bacb0920ae145c0b3b3ae9c))\n* **Thread:** title printing ([e9d8f77](https://github.com/nextcloud/mail/commit/e9d8f7718dcfbd18abe679693739117a43d3e063))\n* **ui:** add missing @ to provisioning user ([cb11601](https://github.com/nextcloud/mail/commit/cb116018411a912c24738b362e731587a1dda3fc))\n* **ui:** fix paragraph end tag ([9d9a69f](https://github.com/nextcloud/mail/commit/9d9a69fb8160671c5a77720f52e77ce4b2d493fc))\n* **ui:** Handle focus trap through provide / inject ([197e25a](https://github.com/nextcloud/mail/commit/197e25ab54f621a17e2c48fb45b5f0b215203450))\n* unlock mailboxes after OOM ([789c7d0](https://github.com/nextcloud/mail/commit/789c7d04fc939b455ab395f968188676dcee6179))\n* use HMAC for proxied HTML iframe content ([b346f0b](https://github.com/nextcloud/mail/commit/b346f0bfa09a096c66fe1e020e57808edb736eb2))\n\n\n### Features\n\n* add ai hint for smart replys ([89c2fd6](https://github.com/nextcloud/mail/commit/89c2fd66a98371786219b3a9d1a8e5522e1d7263))\n* add rtl/ltr buttons to ckeditor toolbar ([4ac9c06](https://github.com/nextcloud/mail/commit/4ac9c063b52bb68be62eee54b567af6a98d755d7))\n* **deeplink:** implement message-id search and routing ([54ce486](https://github.com/nextcloud/mail/commit/54ce4865420afeedbb6cefa5bbfe8b87f163bb26))\n* improve follow up and PI ML note ([c952761](https://github.com/nextcloud/mail/commit/c952761657e420795745cb7879b86b62edf12985))\n\n\n### Performance Improvements\n\n* **imap:** reuse existing IMAP client/connection for mailbox sync ([08c5031](https://github.com/nextcloud/mail/commit/08c5031ac8ef83987c36cdebd9b12f35fdd3473c))\n\n\n\n# [5.7.0-rc.1](https://github.com/nextcloud/mail/compare/v5.7.0-beta.4...v5.7.0-rc.1) (2026-01-29)\n\n\n### Bug Fixes\n\n* action items icons on compact mode ([8b090ba](https://github.com/nextcloud/mail/commit/8b090ba2a827c47e3ffad4255b854b43e9e61b10))\n* **composer:** drop envelope from store when saving a draft ([a8db9ae](https://github.com/nextcloud/mail/commit/a8db9ae14e5d33c3f80ec2399b485f589fcb1dbf))\n* **deps:** bump @nextcloud/paths from 2.4.0 to v3 ([a511f5b](https://github.com/nextcloud/mail/commit/a511f5b9bfc172b91296d416ccc3b22f95d7fa2e))\n* **deps:** bump core-js from 3.47.0 to ^3.48.0 ([806b9a3](https://github.com/nextcloud/mail/commit/806b9a33b0fe9d1dd5522213cd0468eae5c8fd70))\n* **deps:** bump lodash from 4.17.23 to ^4.17.23 ([a1619ba](https://github.com/nextcloud/mail/commit/a1619ba3263647bc641f174c80f167699caf2337))\n* **deps:** bump PHPUnit to v9.6.33 ([d4e419e](https://github.com/nextcloud/mail/commit/d4e419e5a4f2058c892aaf406ae2ddf83e8cdb74))\n* **l10n:** Update translations from Transifex ([1d14470](https://github.com/nextcloud/mail/commit/1d1447052df63ee7e1bb98ecfdc857dfe56dfae0))\n* **l10n:** Update translations from Transifex ([5dc7d62](https://github.com/nextcloud/mail/commit/5dc7d626fd1e2301c08e52958833f53920371667))\n* **ui:** render HTML body error responses as blank pages ([a391aba](https://github.com/nextcloud/mail/commit/a391abad9560135bf159093371e432f7fc125b34))\n\n\n### Performance Improvements\n\n* **sync:** Reuse existing sync token ([cf8137a](https://github.com/nextcloud/mail/commit/cf8137a18d474fac99aa98e569374b8ed526a647))\n\n\n\n# [5.7.0-beta.4](https://github.com/nextcloud/mail/compare/v5.7.0-beta.3...v5.7.0-beta.4) (2026-01-27)\n\n\n### Bug Fixes\n\n* **admin-settings:** bring back the setting to disable classification by default ([2eb9f0c](https://github.com/nextcloud/mail/commit/2eb9f0c07d2e1f9b6e55e5d41d3d64b6d7268c62))\n* catch invalid URL exception in the HTML image proxy ([1767db6](https://github.com/nextcloud/mail/commit/1767db684ae4ee37c1ae7529c107e57798cdcc0d))\n* **classification:** log if classification was executed or skipped ([172b477](https://github.com/nextcloud/mail/commit/172b4779d55497f6c9a737681c04b810e960695b))\n* **deps:** bump @nextcloud/paths from 2.3.0 to ^2.4.0 ([#12286](https://github.com/nextcloud/mail/issues/12286)) ([ea43460](https://github.com/nextcloud/mail/commit/ea4346049b1b8bd899042c4861132d2fb712c697))\n* **deps:** bump @nextcloud/vue from 8.35.0 to ^8.35.3 ([98b9403](https://github.com/nextcloud/mail/commit/98b9403ce9b847a772c17e8d4a7d292f813cd2e0))\n* **deps:** bump lodash from 4.17.21 to v4.17.23 ([#12291](https://github.com/nextcloud/mail/issues/12291)) ([4d43742](https://github.com/nextcloud/mail/commit/4d4374223962d43b72e608d2298232e9ed86c1de))\n* **imap:** Add support for mail services that enforce a client id ([0f64a8b](https://github.com/nextcloud/mail/commit/0f64a8bc7a4a01704837310a1296c6573a8f0668))\n* **imap:** Send ID only when capability is announced ([820e7e3](https://github.com/nextcloud/mail/commit/820e7e37ec53b338342a535b1427cd71f15d2301))\n* **l10n:** Update translations from Transifex ([f162d15](https://github.com/nextcloud/mail/commit/f162d15efebd9db5fe2053a3f7334eb4a3836d19))\n* **l10n:** Update translations from Transifex ([b937da1](https://github.com/nextcloud/mail/commit/b937da1081e1260d107c9c2e29f085bd87e987da))\n* **l10n:** Update translations from Transifex ([b8e73c8](https://github.com/nextcloud/mail/commit/b8e73c87c3abeb519a7d2626a13db5f2a75cb702))\n* **l10n:** Update translations from Transifex ([85ec54f](https://github.com/nextcloud/mail/commit/85ec54f6e6f0650e64fe47736ced5f8f893742e5))\n* **l10n:** Update translations from Transifex ([8bccd39](https://github.com/nextcloud/mail/commit/8bccd397f9bb495eb729725b8e17e580a98036c0))\n* **l10n:** Update translations from Transifex ([b12a513](https://github.com/nextcloud/mail/commit/b12a5138244fff0179f49d2edd356ff4b68a2a77))\n* **l10n:** Update translations from Transifex ([01442f4](https://github.com/nextcloud/mail/commit/01442f49b764fbb4da3821295b0e7591d9e524c0))\n* **l10n:** Update translations from Transifex ([decb02c](https://github.com/nextcloud/mail/commit/decb02c680d7fad30aabdc5e8febd322c28f0946))\n* **MessageMapper:** Use message headers as fallback when processing MIME content ([7efe164](https://github.com/nextcloud/mail/commit/7efe1640c4d4d6bcabe5ffdd3ce24b66aa62f8b7))\n* **phishing:** compare links using lowercase ([2d437a9](https://github.com/nextcloud/mail/commit/2d437a9e1b71e674cc8bf1980995c485cc1de18b))\n* retrieve classification preference ([5eabb5e](https://github.com/nextcloud/mail/commit/5eabb5efd13e6370592cdad4c05894b97d9f3bf4))\n* **settings:** dont show acknowledgements twice ([b30d10e](https://github.com/nextcloud/mail/commit/b30d10e68f82803f1a86d1531edccd7e552a29d2))\n* **smtp:** log SMTP error code ([bd3a68e](https://github.com/nextcloud/mail/commit/bd3a68e78d71a6a60ca01f29ba34bd925fc65dbe))\n* **text-block:** revive sharing ([c76cea9](https://github.com/nextcloud/mail/commit/c76cea9f0a75e65a1d2a11fa28d0cfdbbe09c18d))\n\n\n### Features\n\n* add context chat provider ([#11150](https://github.com/nextcloud/mail/issues/11150)) ([0b4c310](https://github.com/nextcloud/mail/commit/0b4c3106943442ff95e272fdf9e668b7952c4859))\n* **deps:** add Nextcloud 34 support, remove 31 (EOL) ([4059a84](https://github.com/nextcloud/mail/commit/4059a84cfe3e6bc43a5fd1cd4ce0ba0a81b500bd))\n\n\n\n# [5.7.0-beta.3](https://github.com/nextcloud/mail/compare/v5.7.0-beta.2...v5.7.0-beta.3) (2026-01-19)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([a0302e7](https://github.com/nextcloud/mail/commit/a0302e7292c0a003311bc0ae13c93fdc66477034))\n* **l10n:** Update translations from Transifex ([301879c](https://github.com/nextcloud/mail/commit/301879cccc134ccdf0b57968264eba5b9e6af3d3))\n* **l10n:** Update translations from Transifex ([eb08d2d](https://github.com/nextcloud/mail/commit/eb08d2d6b8b46021982ed6d3eccfc95b45a2373a))\n\n\n### Features\n\n* automated appointment creation ([4fe0325](https://github.com/nextcloud/mail/commit/4fe03253203db6c3481e1fb5611b2291f2ac6476))\n\n\n\n# [5.7.0-beta.2](https://github.com/nextcloud/mail/compare/v5.7.0-beta.1...v5.7.0-beta.2) (2026-01-16)\n\n\n### Bug Fixes\n\n* **ColorPicker:** Use v-model for injecting selected color to color picker ([eee627a](https://github.com/nextcloud/mail/commit/eee627a613a3c3884af4ebc19f23d15ba5c4b1a4))\n* **DKIMValidator:** Add patch from upstream against broken canonical handling ([ddb30a9](https://github.com/nextcloud/mail/commit/ddb30a95fe8f106c2abebb323bc5c13bacfc0e0f))\n* ensure drafts folder exists ([c01706f](https://github.com/nextcloud/mail/commit/c01706f6dea5f3acd5ebfb5859026c4110a4a653))\n* Fix incorrect tag for MDN sent and hide junk flag used by Thunderbird ([5eb1709](https://github.com/nextcloud/mail/commit/5eb1709f405175c28060a0f85f1f8fedcfa8c45d))\n* **l10n:** Update translations from Transifex ([5e479aa](https://github.com/nextcloud/mail/commit/5e479aa5c3403ef8fa020236da9e0af81683eae1))\n* **l10n:** Update translations from Transifex ([e3d87b7](https://github.com/nextcloud/mail/commit/e3d87b737b08b0af46266bb5429ed8f3a18d9d7f))\n* **l10n:** Update translations from Transifex ([7f7046e](https://github.com/nextcloud/mail/commit/7f7046e664c2abccf59a77d51708b78792302ec1))\n* **l10n:** Update translations from Transifex ([3ec8cc7](https://github.com/nextcloud/mail/commit/3ec8cc741ca13b7f84de80f659ad1698f318d029))\n* **l10n:** Update translations from Transifex ([77fad89](https://github.com/nextcloud/mail/commit/77fad89b78dd4175557d7f0a6880db3b474d73fd))\n* **l10n:** Update translations from Transifex ([69c30ee](https://github.com/nextcloud/mail/commit/69c30ee6ed066f30cdb3dfc6043eb86cb0d3026c))\n* **mail-settings:** avoid duplicate api calls ([d43846f](https://github.com/nextcloud/mail/commit/d43846f3f39a1d4232dccb3c81953bd747d11e28))\n* outbox icon opacity ([8697eb7](https://github.com/nextcloud/mail/commit/8697eb72f1835a0c110ad0c0ccfef85c043f1ead))\n* **OutOfOfficeParser:** Exclude newsletters and mailing lists from auto responder ([4dd3824](https://github.com/nextcloud/mail/commit/4dd382487bc50b84076dace4c45b2a3c2f73b7c3))\n* revive mentioning in composer ([2658a3b](https://github.com/nextcloud/mail/commit/2658a3bbdaf4ebd6828493193fff8856ec058455))\n* safe-guard limit argument ([bd856c0](https://github.com/nextcloud/mail/commit/bd856c0f261df1fd8f73d1952cbeb5773fad0d8a))\n\n\n### Features\n\n* **deps:** add PHP8.5 support ([0cab661](https://github.com/nextcloud/mail/commit/0cab6615ab3575264fe5ad01622be13f40216e10))\n* list attachements ([7cb3b70](https://github.com/nextcloud/mail/commit/7cb3b70922d8ad9f0ab39388d0c5280aa7245b0c))\n* provide attachement names for messages ([aebeb8d](https://github.com/nextcloud/mail/commit/aebeb8de6c62a7a89f78247b5539d48ee6213d61))\n\n\n\n# [5.7.0-beta.1](https://github.com/nextcloud/mail/compare/v5.6.0-rc.1...v5.7.0-beta.1) (2026-01-09)\n\n\n### Bug Fixes\n\n* add Opt-out classification settings to account settings and setup ([773e9fd](https://github.com/nextcloud/mail/commit/773e9fda4ae667c7be730093f3b2b05f23e67936))\n* **auth:** show more specific error for denied authentication ([9887471](https://github.com/nextcloud/mail/commit/9887471c972f99103f18f8bd85ac945045886a33))\n* **database:** Add foreign key to *_mailbox_id fields in mail_accounts table ([d6e5430](https://github.com/nextcloud/mail/commit/d6e5430211bb0c70b047ef6eb6709f35a1692509))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.1 ([ea96397](https://github.com/nextcloud/mail/commit/ea96397ffc21590dacf241ff96a27507bd6d4160))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.2 ([#12194](https://github.com/nextcloud/mail/issues/12194)) ([e0bde6a](https://github.com/nextcloud/mail/commit/e0bde6a0df760b82906631a0b172e6da4083c23d))\n* **deps:** bump @nextcloud/files from 3.12.0 to ^3.12.2 ([#12180](https://github.com/nextcloud/mail/issues/12180)) ([2d31d47](https://github.com/nextcloud/mail/commit/2d31d47ef1b4977a0fc3a12465b310412aeb1231))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.1 ([#12054](https://github.com/nextcloud/mail/issues/12054)) ([9204207](https://github.com/nextcloud/mail/commit/92042075da02b2eb0cd104132f7e456353b4638d))\n* **deps:** bump @nextcloud/logger from 3.0.2 to ^3.0.3 ([#12181](https://github.com/nextcloud/mail/issues/12181)) ([a2cc94f](https://github.com/nextcloud/mail/commit/a2cc94fbf3df4b9acbb1151c2ef817a8236f4b1f))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.3.0 ([d79f091](https://github.com/nextcloud/mail/commit/d79f091deed13cc59551431faeaae31ad9667e98))\n* **deps:** bump @nextcloud/router from 3.0.1 to ^3.1.0 ([fecbbd4](https://github.com/nextcloud/mail/commit/fecbbd42eacbdb920e4e14f054474688bd211eca))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.2 to ^1.8.3 ([#12083](https://github.com/nextcloud/mail/issues/12083)) ([d768ec2](https://github.com/nextcloud/mail/commit/d768ec2e6fd19fc3164d304c41f3ffdd69f1c45c))\n* **deps:** bump core-js from 3.45.1 to ^3.47.0 ([10cb94d](https://github.com/nextcloud/mail/commit/10cb94d3abfe5fd61087c5a5fe76c5e469eb31ab))\n* **deps:** bump dompurify from 3.3.0 to ^3.3.1 ([#12153](https://github.com/nextcloud/mail/issues/12153)) ([8414b45](https://github.com/nextcloud/mail/commit/8414b459171e748b0bda9707c083dc4d457b8610))\n* **deps:** bump ezyang/htmlpurifier from 4.18.0 to v4.19.0 ([490c501](https://github.com/nextcloud/mail/commit/490c501838ea78db143064557b599a9d9b377a0d))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.6 to ^1.8.7 ([4ad219b](https://github.com/nextcloud/mail/commit/4ad219b224b20649ea2da3b288078a3fdba276ef))\n* **deps:** bump node-forge from 1.3.1 to ^1.3.2 ([#12084](https://github.com/nextcloud/mail/issues/12084)) ([1076149](https://github.com/nextcloud/mail/commit/1076149f447356f0d8256f8011e73a66bde45e76))\n* **deps:** bump node-forge from 1.3.2 to ^1.3.3 ([#12201](https://github.com/nextcloud/mail/issues/12201)) ([bf00dc9](https://github.com/nextcloud/mail/commit/bf00dc96b2486c6f1c74406f8f323306c420726e))\n* **deps:** bump ramda from 0.31.3 to ^0.32.0 ([99e93d3](https://github.com/nextcloud/mail/commit/99e93d350bb2ac7fb77b487ac7fcfc6a2923ba6d))\n* **deps:** bump stylelint from 16.25.0 to ^16.26.1 ([6f16930](https://github.com/nextcloud/mail/commit/6f16930cf5fef0ad4ee8747e186de58326000d80))\n* **deps:** Fix npm audit ([ba1c955](https://github.com/nextcloud/mail/commit/ba1c9555e04c9acc7f9b75ad9914062b16ef81ac))\n* **deps:** Fix npm audit ([94220b5](https://github.com/nextcloud/mail/commit/94220b5a296c07c0b1a5035685671e5fb34531c7))\n* **dns:** Update public suffix list ([8629a40](https://github.com/nextcloud/mail/commit/8629a403aa29dfad58955c07ac7575e86fb97dde))\n* **envelope:** apply read/unread for whole thread ([04141fb](https://github.com/nextcloud/mail/commit/04141fb8cb75893d93a4ab144e6c50acba78fc35))\n* handle imip failures properly ([3a200ac](https://github.com/nextcloud/mail/commit/3a200ac432e3a8d85eafa93b01f0b2d4ab1b3080))\n* **imap:** cache message body ([9d02d5a](https://github.com/nextcloud/mail/commit/9d02d5ab90fdcf2c9fd2e09a3a3e7547b74227c3))\n* **l10n:** Update translations from Transifex ([42b9b4d](https://github.com/nextcloud/mail/commit/42b9b4d9bf4c798930bb2714f546aac39c87c2b1))\n* **l10n:** Update translations from Transifex ([ed559d1](https://github.com/nextcloud/mail/commit/ed559d1e80ad7745eeaa1fa7eabf715b96594403))\n* **l10n:** Update translations from Transifex ([addd0f4](https://github.com/nextcloud/mail/commit/addd0f430807e08befd63f327857c33a379702e1))\n* **l10n:** Update translations from Transifex ([fb376e5](https://github.com/nextcloud/mail/commit/fb376e51cb9437c9621e6fca3287d5983e8ac00f))\n* **l10n:** Update translations from Transifex ([83c7bc8](https://github.com/nextcloud/mail/commit/83c7bc8f05ad4d4fc37e9d49a9aaf37e07c9f0fd))\n* **l10n:** Update translations from Transifex ([1003f6c](https://github.com/nextcloud/mail/commit/1003f6c59a6377c247f7ddcc1dff0a65120389c6))\n* **l10n:** Update translations from Transifex ([2dd51c8](https://github.com/nextcloud/mail/commit/2dd51c8bb9670998eb0ef5114ecdb0811ae17ab7))\n* **l10n:** Update translations from Transifex ([4d25ae4](https://github.com/nextcloud/mail/commit/4d25ae4430bf9278283d2f10007e5d8ea8f4a36f))\n* **l10n:** Update translations from Transifex ([6de0c2a](https://github.com/nextcloud/mail/commit/6de0c2a0df34804c008308cb2c7b490376f650d0))\n* **l10n:** Update translations from Transifex ([7f70324](https://github.com/nextcloud/mail/commit/7f70324ab39a463b09b5fbb96083a8fd94e97f66))\n* **l10n:** Update translations from Transifex ([8551ded](https://github.com/nextcloud/mail/commit/8551ded3ca1c3782404b2404bd5e21ec30ddedee))\n* **l10n:** Update translations from Transifex ([d1f55af](https://github.com/nextcloud/mail/commit/d1f55af88b2375550165db7edc0fbcab31c310a4))\n* **l10n:** Update translations from Transifex ([a6ea034](https://github.com/nextcloud/mail/commit/a6ea0343b0badc571c3d29d2a4efb31ef8bb05dc))\n* **l10n:** Update translations from Transifex ([a3416c7](https://github.com/nextcloud/mail/commit/a3416c7815ab1bb9947119d9a354bf3f4ad90860))\n* **l10n:** Update translations from Transifex ([d3e93a1](https://github.com/nextcloud/mail/commit/d3e93a1ced32dee98d09aa2e6ba7bddc3b369910))\n* **l10n:** Update translations from Transifex ([0ce95b3](https://github.com/nextcloud/mail/commit/0ce95b38c98ef7f3d6907e15862b71a1b5bfab2d))\n* **l10n:** Update translations from Transifex ([c771327](https://github.com/nextcloud/mail/commit/c7713273832adc78c0af6a00dbe6be80f01846f6))\n* **l10n:** Update translations from Transifex ([172f154](https://github.com/nextcloud/mail/commit/172f15485357e8602e2dfa5277baa26aaabe8455))\n* **l10n:** Update translations from Transifex ([b5a785c](https://github.com/nextcloud/mail/commit/b5a785c4e128a82181f200d72c0298e6bd8879e3))\n* **l10n:** Update translations from Transifex ([c37fc3e](https://github.com/nextcloud/mail/commit/c37fc3eab5db926794d33e19a7bd9ea21a55a0fa))\n* **l10n:** Update translations from Transifex ([dbafedc](https://github.com/nextcloud/mail/commit/dbafedc1533cb2c24f6b3638fd635ba6824c392b))\n* **l10n:** Update translations from Transifex ([dd44f8b](https://github.com/nextcloud/mail/commit/dd44f8bc4babdcfb171fc34b8a0b8d667e7c1031))\n* **l10n:** Update translations from Transifex ([26c72b0](https://github.com/nextcloud/mail/commit/26c72b0ba59f8d6e1bbde63a71cbf223466e5744))\n* **l10n:** Update translations from Transifex ([55eda0d](https://github.com/nextcloud/mail/commit/55eda0de06adce44f751f545bd02bbed3dfbe064))\n* **l10n:** Update translations from Transifex ([d3a945b](https://github.com/nextcloud/mail/commit/d3a945b2634924e2af5cc0e774d13719d9755484))\n* **l10n:** Update translations from Transifex ([76b9c96](https://github.com/nextcloud/mail/commit/76b9c966e0dec4cc2efb12be3a30483d56632d3a))\n* **l10n:** Update translations from Transifex ([76688a4](https://github.com/nextcloud/mail/commit/76688a4e62240200c84755a191358f437bf042b6))\n* **l10n:** Update translations from Transifex ([4eb03df](https://github.com/nextcloud/mail/commit/4eb03df9d408e24f6c168eebfdfb8f10469d4b62))\n* **l10n:** Update translations from Transifex ([7365ec4](https://github.com/nextcloud/mail/commit/7365ec43d8fbc1d72f1ca502a57916afe2a3e2aa))\n* **l10n:** Update translations from Transifex ([11779b5](https://github.com/nextcloud/mail/commit/11779b5623c5aa566e42c7bb6faa50f57eaefcb3))\n* **l10n:** Update translations from Transifex ([7836ba5](https://github.com/nextcloud/mail/commit/7836ba59530d27a1836ab8fdedcd9bb71d60deb2))\n* **l10n:** Update translations from Transifex ([333fa26](https://github.com/nextcloud/mail/commit/333fa26765abcda6c2fa957e9cbbeb6314051cd2))\n* **l10n:** Update translations from Transifex ([7bed24d](https://github.com/nextcloud/mail/commit/7bed24d426cf5fa35456f5d14375758a84c5e780))\n* **l10n:** Update translations from Transifex ([770b95a](https://github.com/nextcloud/mail/commit/770b95a67ef91a35e439c74ce361219bf0afd543))\n* **l10n:** Update translations from Transifex ([2a8d58b](https://github.com/nextcloud/mail/commit/2a8d58be6f25064dbe8a7ac4bbbc689af6aef267))\n* **l10n:** Update translations from Transifex ([1fbba54](https://github.com/nextcloud/mail/commit/1fbba545b28dace804e98eeb5418cd8508e070d1))\n* **l10n:** Update translations from Transifex ([2f6b08c](https://github.com/nextcloud/mail/commit/2f6b08ced35c3c103fdf20f9f127146f2d93cd95))\n* **l10n:** Update translations from Transifex ([27deb8e](https://github.com/nextcloud/mail/commit/27deb8ed2738a002736333535e88232e95d03481))\n* lost line breaks ([056e1cf](https://github.com/nextcloud/mail/commit/056e1cf6ba1116b47b60fd45d84bf75209c59f59))\n* **mailto:** populate body from mailto ([6e66374](https://github.com/nextcloud/mail/commit/6e663740308588aeefc6bc7db90d1ef24ba7cafd))\n* **NavigationMailbox:** reword ([8bd6dd8](https://github.com/nextcloud/mail/commit/8bd6dd804864cd2af42e76cff87f89b614a65a46))\n* **NewMessageModal:** remove null focus trap selectors ([0412d17](https://github.com/nextcloud/mail/commit/0412d17db83afb84b6a104c3c85de93cdbd60623))\n* **oauth:** close popup window in parent window ([1fdf307](https://github.com/nextcloud/mail/commit/1fdf307f4755ef43aedde1263c46d187b2995d5c))\n* search input field doesnt extend properly ([2581870](https://github.com/nextcloud/mail/commit/2581870a78cc5b7d3f6b3a5dbe2287e0302a75c1))\n* **search:** apply correct search query when fetching envelopes ([4fe8329](https://github.com/nextcloud/mail/commit/4fe8329e1e2fee7be6853df3ddf98fe9fb2a6e3b))\n* **Settings:** followup on redesign ([67dae9c](https://github.com/nextcloud/mail/commit/67dae9c9b70330ffe9742ab8660c3998423ef007))\n* **setup:** allow setup with ms oauth and no password ([899f6f4](https://github.com/nextcloud/mail/commit/899f6f4d71ff39ac9d54212c2cb6b165a2d48bc0))\n* **sieve:** allow system flags like seen ([226e2d3](https://github.com/nextcloud/mail/commit/226e2d35e10ee9183158b35fc8fd47f7c5dfeec6))\n* **sieve:** ensure the stop action is always last ([e3d43c4](https://github.com/nextcloud/mail/commit/e3d43c4b9fb2339b45ee813fc8089e040930c582))\n* **text-block:** preserve line breaks on plain text ([9d5d3a9](https://github.com/nextcloud/mail/commit/9d5d3a92f41100b76730837c39fece9a210e463e))\n* **ui:** bind attr to popover trigger ([b17e04c](https://github.com/nextcloud/mail/commit/b17e04c217d32d4be97fc249c8d062f8d730368b))\n\n\n### Features\n\n* add sort favorites user preference ([b22afd4](https://github.com/nextcloud/mail/commit/b22afd4a18a99d4ea84b45e73d1a677b02a7744a))\n* compact view for mail layouts ([7eb1ff0](https://github.com/nextcloud/mail/commit/7eb1ff092b27253583a29dfae9ab14a2cc07e677))\n* imporove search filter buttons ([a21c29b](https://github.com/nextcloud/mail/commit/a21c29b423a16eec1aa3aa4d25de4a191065851e))\n* improve the search filter shortcut buttons ([b0c3559](https://github.com/nextcloud/mail/commit/b0c355921a0fc8e31170a3314f28ffb4a22724de))\n* make email wide on phone ([09ada44](https://github.com/nextcloud/mail/commit/09ada44d35871db527c902c14210fa2e8181b252))\n* manually refresh folder list ([22c7181](https://github.com/nextcloud/mail/commit/22c71813ded17ab3ac26f3e3b993abce1fe9d729))\n* **PhishingDetection:** Add support for the $Phishing IMAP flag ([6c01c8a](https://github.com/nextcloud/mail/commit/6c01c8a2db557231bdf8a84d4b921ab9e80871b1))\n* pin favorites ([6718656](https://github.com/nextcloud/mail/commit/67186566f2f30025409a9948e0ae362ca3cd22f4))\n* support user migration ([cc7c592](https://github.com/nextcloud/mail/commit/cc7c5926d3cba10009d86db6b1ff2bf5a8172b49))\n\n\n### Performance Improvements\n\n* **quick-actions:** eliminate dublicate api calld for each envelope ([71cccdf](https://github.com/nextcloud/mail/commit/71cccdfef182a4dfaaf4b14e5f17d0e042ac7870))\n\n\n\n# [5.6.0-rc.1](https://github.com/nextcloud/mail/compare/v5.5.0-rc.1...v5.6.0-rc.1) (2025-11-18)\n\n\n### Bug Fixes\n\n* **AccountForm:** Allow localhost as valid email domain ([49cd198](https://github.com/nextcloud/mail/commit/49cd198e599eac4c2537efe07b19b56e272a48d1))\n* add jsdom ([c3c31cb](https://github.com/nextcloud/mail/commit/c3c31cb36cfd8ba757d56e448c3abaaf164bca00))\n* add the warning icon when account cannot connect ([ae2f15d](https://github.com/nextcloud/mail/commit/ae2f15d7720c0116e4f5e9a1486a617c56414947))\n* **ai-integration:** get user language for message summary ([431e445](https://github.com/nextcloud/mail/commit/431e445b2808b4f04ac9019a57fe854667ad8242))\n* align quick action settings button properly ([cd7bda7](https://github.com/nextcloud/mail/commit/cd7bda7ba70b3fcc459d73326de07bda26320c7a))\n* allow reloading the INBOX favorites page ([3322b1d](https://github.com/nextcloud/mail/commit/3322b1dd5e8dac3163d23914046452ef0685485f))\n* allow storing longer mailbox names ([9652e1a](https://github.com/nextcloud/mail/commit/9652e1a2e4be0d08ae1d6acb052e04c84a09e6e1))\n* also await onToggleJunk ([d79ccf8](https://github.com/nextcloud/mail/commit/d79ccf8b5cde2c5deb88529d2871b52c224f9963))\n* **AppSettingsMenu:** update text string in preparation for redesign ([66cce37](https://github.com/nextcloud/mail/commit/66cce37650fa93636e15922569ac2f4ae0e832fb))\n* check email in recipient picker ([935c9a4](https://github.com/nextcloud/mail/commit/935c9a44e2b158771227369ffd683452b5c28f10))\n* ckeditor color in darkmode ([50dce08](https://github.com/nextcloud/mail/commit/50dce0864c33946c3be8067275c69f4b80f728a1))\n* ckeditor not loading when no translations are used ([c2b48bf](https://github.com/nextcloud/mail/commit/c2b48bf5f0d2e4236a913784bed170b83ca74a1a))\n* **classification:** break large SQL IN queries into chunks ([61a1457](https://github.com/nextcloud/mail/commit/61a145766c933a2d29525088d785fda436df63e8))\n* contrast fixes for some elements ([4b40509](https://github.com/nextcloud/mail/commit/4b405090af36bd35d9f9e892361fbb7eb7e73307))\n* correct the default sort order value ([2486bf4](https://github.com/nextcloud/mail/commit/2486bf457b79b4f9521c09f6bd28da8969121876))\n* **db:** clean-up old mailboxes account_id+name index ([e77008b](https://github.com/nextcloud/mail/commit/e77008b7468a1785fce59f68c40f41500a75234e))\n* **db:** drop index on mail_mailboxes by columns instead of name ([068954f](https://github.com/nextcloud/mail/commit/068954fbbdd0b72bf55fa9c8c9588d0fa40a31e9))\n* **deps:** bump @iframe-resizer/child from 5.5.5 to ^5.5.6 ([#11702](https://github.com/nextcloud/mail/issues/11702)) ([cef93a2](https://github.com/nextcloud/mail/commit/cef93a236a662c1268fdb7e33e28f93809e1abfb))\n* **deps:** bump @iframe-resizer/child from 5.5.6 to ^5.5.7 ([#11732](https://github.com/nextcloud/mail/issues/11732)) ([6a2567a](https://github.com/nextcloud/mail/commit/6a2567a477019ad1c031c471dca0cfd225045f20))\n* **deps:** bump @iframe-resizer/parent from 5.5.5 to ^5.5.7 ([#11733](https://github.com/nextcloud/mail/issues/11733)) ([9adc913](https://github.com/nextcloud/mail/commit/9adc91368153574b8a76cf35b8a0df1807125921))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([#11894](https://github.com/nextcloud/mail/issues/11894)) ([3c3097c](https://github.com/nextcloud/mail/commit/3c3097c90e264c9d9b0dc621e89bdad5718c7f41))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([#11827](https://github.com/nextcloud/mail/issues/11827)) ([4add112](https://github.com/nextcloud/mail/commit/4add1121fb19d87844848460d2f0742d296004f5))\n* **deps:** bump @nextcloud/dialogs from 6.3.2 to ^6.3.2 ([#11834](https://github.com/nextcloud/mail/issues/11834)) ([8d3bba7](https://github.com/nextcloud/mail/commit/8d3bba7044a3580bf45946f425dd6b5b9e7c2aa5))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([feb565d](https://github.com/nextcloud/mail/commit/feb565d833b35f0ae82c434573e8a96aa43005dc))\n* **deps:** bump @nextcloud/vue from 8.33.0 to ^8.33.0 ([cbce84e](https://github.com/nextcloud/mail/commit/cbce84e7f5926c1817f992c831f39f36f03497a0))\n* **deps:** bump @nextcloud/vue to ^8.31.0 ([1104e90](https://github.com/nextcloud/mail/commit/1104e90832fc6f88a168ef09b266c0ef4dacc3a0))\n* **deps:** bump @vue/babel-preset-app from 5.0.8 to ^5.0.9 ([#11842](https://github.com/nextcloud/mail/issues/11842)) ([84b8524](https://github.com/nextcloud/mail/commit/84b85248420a50c660657f061d3b44a50f9f743b))\n* **deps:** bump core-js from 3.45.0 to ^3.45.1 ([#11849](https://github.com/nextcloud/mail/issues/11849)) ([a43410e](https://github.com/nextcloud/mail/commit/a43410e99bfe4787aaba6febba630f1a5c4b0cda))\n* **deps:** bump dompurify from 3.2.6 to ^3.3.0 ([#11858](https://github.com/nextcloud/mail/issues/11858)) ([b913e68](https://github.com/nextcloud/mail/commit/b913e68d82390cd6c11a383339adbe902595361e))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.1 to ^1.8.6 ([#11978](https://github.com/nextcloud/mail/issues/11978)) ([0e1617b](https://github.com/nextcloud/mail/commit/0e1617bd1d49e88ee94a556c2a3f6ec8fb4ec292))\n* **deps:** bump phpmailer/dkimvalidator from 0.3 to ^0.3.1 ([8648561](https://github.com/nextcloud/mail/commit/86485615579de92dbc16b3192fc622828a4c19b3))\n* **deps:** bump rubix/ml from 2.5.2 to v2.5.3 ([#11872](https://github.com/nextcloud/mail/issues/11872)) ([5427895](https://github.com/nextcloud/mail/commit/5427895a664362b93805f98a1d71bbe56602cc0f))\n* **deps:** bump stylelint from 16.23.1 to ^16.25.0 ([#11887](https://github.com/nextcloud/mail/issues/11887)) ([3159ca1](https://github.com/nextcloud/mail/commit/3159ca129b98d0c31a574b447ec47b2731952eeb))\n* **deps:** drop Nextcloud 30 support (EOL) ([4c1b2e2](https://github.com/nextcloud/mail/commit/4c1b2e284673ae9985e14a9c84d68262077f8400))\n* **deps:** Fix npm audit ([f841390](https://github.com/nextcloud/mail/commit/f8413906aae4bf3cc1eb602369db0e8b9ec0906a))\n* **deps:** update @nextcloud/dialogs ([a6cd9ec](https://github.com/nextcloud/mail/commit/a6cd9ecbd8343832c3f90193968cd4e5abb8702f))\n* **deps:** update axios ([f063106](https://github.com/nextcloud/mail/commit/f063106eb4116736214f9570d5d0689fb73cbdd8))\n* **deps:** update axios ([f7d36de](https://github.com/nextcloud/mail/commit/f7d36de29d0764044a23a6f744d0849c513946fb))\n* **deps:** update ckeditor to 45 (unified package) ([819c221](https://github.com/nextcloud/mail/commit/819c221524fb9550eee750f3f2863a80c6da4bc4))\n* display tooltip correctly ([fb4ab1c](https://github.com/nextcloud/mail/commit/fb4ab1c629623b1369f4862f7d88ed520a5f36d8))\n* **dns:** Update public suffix list ([9943f2a](https://github.com/nextcloud/mail/commit/9943f2aeb4e229999bf0fca0c739df5002bd5753))\n* **dns:** Update public suffix list ([1f676bb](https://github.com/nextcloud/mail/commit/1f676bbfb99413b7006fc5ebb829d12f152e0d88))\n* **dns:** Update public suffix list ([1db4751](https://github.com/nextcloud/mail/commit/1db4751c3b8ebe44b65ba501a42b88e3a7617273))\n* **dns:** Update public suffix list ([9a92557](https://github.com/nextcloud/mail/commit/9a92557326a281d1991df72bf52698e6404c39a7))\n* **emoji-picker:** ignore if first character is a space ([da0e2bc](https://github.com/nextcloud/mail/commit/da0e2bc922301fffa4bfaa8741f0288fb22bddde))\n* **EnvelopeSkeleton:** text shifting on hover ([7561a7c](https://github.com/nextcloud/mail/commit/7561a7c8bb2760b8f85f15232c2d0db453878c4a))\n* error in mounted hook ([0055669](https://github.com/nextcloud/mail/commit/0055669f84fd903370d3b502ebc9b8fb3bc9a9fc))\n* external address color ([b476bb6](https://github.com/nextcloud/mail/commit/b476bb6828586c52b49c694ffdf56b8cc50b2e4e))\n* flip email open and email icon in evelope actions ([fc59623](https://github.com/nextcloud/mail/commit/fc59623ed5998474b466dea0f8fb98e7593475d5))\n* **i18n:** improve l10n strings ([#12004](https://github.com/nextcloud/mail/issues/12004)) ([a2c5043](https://github.com/nextcloud/mail/commit/a2c5043b15bdc02c9223a67a9e6c088cf4e382dc))\n* **imap:** avoid Horde's LIST-STATUS optimization for STATUS ([da3b3fa](https://github.com/nextcloud/mail/commit/da3b3fa109d949a7e111b70fd683118ca604a7d2))\n* **imap:** make mailbox status errors debuggable ([faa70d4](https://github.com/nextcloud/mail/commit/faa70d40d6489a686844710472b3b0745b3caf46))\n* imip aliases and capitalization ([aebfa65](https://github.com/nextcloud/mail/commit/aebfa657b79bda16fb6020099a23ab405559fa1f))\n* **l10n:** Update translations from Transifex ([6a71cc9](https://github.com/nextcloud/mail/commit/6a71cc923280a2dec8f9a27d0d5756e54f653d43))\n* **l10n:** Update translations from Transifex ([4ed1117](https://github.com/nextcloud/mail/commit/4ed1117dc8dd934153f69ecf5ae05d465e98a28c))\n* **l10n:** Update translations from Transifex ([cd0053f](https://github.com/nextcloud/mail/commit/cd0053f6e8eb1e14ee4410b49555d46fbab21144))\n* **l10n:** Update translations from Transifex ([3706c56](https://github.com/nextcloud/mail/commit/3706c56db751841ea10ea5724f28fddd97d4a0de))\n* **l10n:** Update translations from Transifex ([ce5372c](https://github.com/nextcloud/mail/commit/ce5372c14b742b62a444af5c0f057126a9b7fd92))\n* **l10n:** Update translations from Transifex ([f36788d](https://github.com/nextcloud/mail/commit/f36788d0d7ee59b3911c81200f6a788c26a64c59))\n* **l10n:** Update translations from Transifex ([4972130](https://github.com/nextcloud/mail/commit/49721300d8b6c7e8bfe500eac98bb8832f2f9dda))\n* **l10n:** Update translations from Transifex ([33c0cd2](https://github.com/nextcloud/mail/commit/33c0cd26f19a919c78e2e9ecac9c2cd58c1b3ce5))\n* **l10n:** Update translations from Transifex ([d5925f1](https://github.com/nextcloud/mail/commit/d5925f1196e3c33238b4f209a5c55badd1a5a9bb))\n* **l10n:** Update translations from Transifex ([10a5069](https://github.com/nextcloud/mail/commit/10a5069f73f817cb0dff0a634b442639408d68b5))\n* **l10n:** Update translations from Transifex ([585d834](https://github.com/nextcloud/mail/commit/585d8341ebc2da215201521be0d306e234aecf68))\n* **l10n:** Update translations from Transifex ([170a047](https://github.com/nextcloud/mail/commit/170a0474eb3675045adf5904c3520e212fe15896))\n* **l10n:** Update translations from Transifex ([14a58b3](https://github.com/nextcloud/mail/commit/14a58b3dcfb35acbb8acbe3844af43ef16c37b75))\n* **l10n:** Update translations from Transifex ([922f463](https://github.com/nextcloud/mail/commit/922f463dea059458903632cc4cf2df4c361c2287))\n* **l10n:** Update translations from Transifex ([3a7078f](https://github.com/nextcloud/mail/commit/3a7078ffefecab15e789802ece4e81479f3abd6b))\n* **l10n:** Update translations from Transifex ([decd56d](https://github.com/nextcloud/mail/commit/decd56d201ee09bed9f49601d799e7fa6f00f34c))\n* **l10n:** Update translations from Transifex ([75705fc](https://github.com/nextcloud/mail/commit/75705fc3b1eb966fcf8eb0554595dd1dbffa3835))\n* **l10n:** Update translations from Transifex ([39ba202](https://github.com/nextcloud/mail/commit/39ba20204b4b36ef96ecdaaa439c5824c9c6b465))\n* **l10n:** Update translations from Transifex ([e3b0fa8](https://github.com/nextcloud/mail/commit/e3b0fa801195720c00f4a5e1d3c68dde55a23407))\n* **l10n:** Update translations from Transifex ([9d80c02](https://github.com/nextcloud/mail/commit/9d80c0282898167f34681d89e808933214c32a39))\n* **l10n:** Update translations from Transifex ([3dc2827](https://github.com/nextcloud/mail/commit/3dc28277a1c39cb3cff74d42742030ab371e4cf5))\n* **l10n:** Update translations from Transifex ([67d1d2a](https://github.com/nextcloud/mail/commit/67d1d2a2441f761d5076ec3c6b6cd199ed466a5b))\n* **l10n:** Update translations from Transifex ([65b822d](https://github.com/nextcloud/mail/commit/65b822db0b11b54c64a809eb612a0e0f5e6f1b4a))\n* **l10n:** Update translations from Transifex ([adf81ed](https://github.com/nextcloud/mail/commit/adf81edff2bc005bf943b7311c62aefa9d8fd00f))\n* **l10n:** Update translations from Transifex ([dd0b743](https://github.com/nextcloud/mail/commit/dd0b743a10b3ea749fad2037333daf4d40d5760d))\n* **l10n:** Update translations from Transifex ([2c49124](https://github.com/nextcloud/mail/commit/2c49124257d9b641e6fc021fbca09e949a6c4b3d))\n* **l10n:** Update translations from Transifex ([b46373a](https://github.com/nextcloud/mail/commit/b46373a80c695b83249e9b3931f2ed661d924994))\n* **l10n:** Update translations from Transifex ([2306934](https://github.com/nextcloud/mail/commit/2306934b4546131d02f4bee6d0660d20d9516d23))\n* **l10n:** Update translations from Transifex ([e40e483](https://github.com/nextcloud/mail/commit/e40e483b9d2aa17d46a5be084b284df3abc22f2f))\n* **l10n:** Update translations from Transifex ([684e75a](https://github.com/nextcloud/mail/commit/684e75a46d208bc6365b328e8c85df84e638354b))\n* **l10n:** Update translations from Transifex ([0e361f0](https://github.com/nextcloud/mail/commit/0e361f06b008d6738db6bbbad70e49312533a932))\n* **l10n:** Update translations from Transifex ([67b25e3](https://github.com/nextcloud/mail/commit/67b25e34a0dc9c8bce176817bc228e12e1f53821))\n* **l10n:** Update translations from Transifex ([0fab187](https://github.com/nextcloud/mail/commit/0fab187e0a70b82c5230e36cdea5291b1b247d1f))\n* **l10n:** Update translations from Transifex ([bff919e](https://github.com/nextcloud/mail/commit/bff919ee61c8b7e5905b285b25b60649242e7161))\n* **l10n:** Update translations from Transifex ([6ddcf65](https://github.com/nextcloud/mail/commit/6ddcf65c22b81621dc0546eb9beaa2331fce44eb))\n* **l10n:** Update translations from Transifex ([2ea9bf1](https://github.com/nextcloud/mail/commit/2ea9bf13cfd824930dde40847c538c2778bf759b))\n* **l10n:** Update translations from Transifex ([3cd6222](https://github.com/nextcloud/mail/commit/3cd62224a25cb01bd16fabf6e3b1ccbf93153df6))\n* **l10n:** Update translations from Transifex ([d972d43](https://github.com/nextcloud/mail/commit/d972d439a0eb2146e0104b065ea7d272f258f9a6))\n* **l10n:** Update translations from Transifex ([be650ef](https://github.com/nextcloud/mail/commit/be650ef147914afc875123146a9f308f1a10df2d))\n* **l10n:** Update translations from Transifex ([a3d8185](https://github.com/nextcloud/mail/commit/a3d81853bc79060c6c6364195053de8d775b53a0))\n* **l10n:** Update translations from Transifex ([a87aa56](https://github.com/nextcloud/mail/commit/a87aa56436750fd601f7609ed74eb582ccec5011))\n* **l10n:** Update translations from Transifex ([01f9f99](https://github.com/nextcloud/mail/commit/01f9f998114fade296d4fb8812d8c3aab1967719))\n* **l10n:** Update translations from Transifex ([f1368ab](https://github.com/nextcloud/mail/commit/f1368ab5642d49db7db972bfcba74eb1a3529e6e))\n* **l10n:** Update translations from Transifex ([d3ee1d5](https://github.com/nextcloud/mail/commit/d3ee1d5a2502ee7c406f0347271c8c9113825eb4))\n* **l10n:** Update translations from Transifex ([f201a19](https://github.com/nextcloud/mail/commit/f201a197242e6208ede2c6461370ebe0dc9ff2bd))\n* **l10n:** Update translations from Transifex ([2320679](https://github.com/nextcloud/mail/commit/2320679f03db9869f3cd01b7f6cdb9d29254dd1b))\n* **l10n:** Update translations from Transifex ([d164bcb](https://github.com/nextcloud/mail/commit/d164bcbef87f0a224b34cce675c0d83996323b89))\n* **l10n:** Update translations from Transifex ([b4a6221](https://github.com/nextcloud/mail/commit/b4a62211a44588abc9c8b623d268eacdfcd11a2c))\n* **l10n:** Update translations from Transifex ([46c94b3](https://github.com/nextcloud/mail/commit/46c94b3d469dfd86b2274b8f6b82ce6afeb66b33))\n* **l10n:** Update translations from Transifex ([428c205](https://github.com/nextcloud/mail/commit/428c2051be596be6a9f4c1964d55350163309d0e))\n* **l10n:** Update translations from Transifex ([6016da4](https://github.com/nextcloud/mail/commit/6016da44d22cf8769fa03a02f5cb4a8811c810fb))\n* **l10n:** Update translations from Transifex ([307a257](https://github.com/nextcloud/mail/commit/307a257a4d2fdb63c738458b2453b959af574467))\n* **l10n:** Update translations from Transifex ([c6e018b](https://github.com/nextcloud/mail/commit/c6e018bfe874bc9197f4f9ca4aeac49fa1cfd1ab))\n* **l10n:** Update translations from Transifex ([78ae7f4](https://github.com/nextcloud/mail/commit/78ae7f43a3588c9534e2cb3c60e470cbfbee86e7))\n* **l10n:** Update translations from Transifex ([b8124ae](https://github.com/nextcloud/mail/commit/b8124ae1a006ab52aa9af1e007cbe643f28f9783))\n* leftover design changes ([da0a40d](https://github.com/nextcloud/mail/commit/da0a40d67fc3ec32713254e44885249be5bf877c))\n* list separators depending on sort by date ([1af3195](https://github.com/nextcloud/mail/commit/1af3195ae5a730baef2c4bcf4d1e048fa1b9bc25))\n* mail pane resetting between layout changes ([73c34ff](https://github.com/nextcloud/mail/commit/73c34ff21d8e5fbdf51af6ddc1ef7ff63de7e153))\n* migrate mail_accounts.oauth_refresh_token to Types::TEXT ([0341d64](https://github.com/nextcloud/mail/commit/0341d64fad418803831cad77f237e00a4f180843))\n* **migration:** check if account service method exists ([4133178](https://github.com/nextcloud/mail/commit/41331785b627692f814c15fbfe43fe500f8f8516))\n* **migration:** guard repair stop for possibly missing method ([edd7634](https://github.com/nextcloud/mail/commit/edd76340c32e0a0a349b9f6b512efb78e7a46839))\n* **NewMessageModal:** keep formatting after minimizing ([63354f2](https://github.com/nextcloud/mail/commit/63354f29349cdeceb93ca239b157cfb2fe045329))\n* **psalm:** remove unnecessary var declarations ([af228f6](https://github.com/nextcloud/mail/commit/af228f6abb86878f4378cc86e3caa09fbb6c64b1))\n* **quick-actions:** adjust backend check for pinned actions order ([4251ca2](https://github.com/nextcloud/mail/commit/4251ca2dc6a0a09f23521ea72fb80380f9d7d9a3))\n* **quick-actions:** apply action to all messages in a thread ([5ccc6a6](https://github.com/nextcloud/mail/commit/5ccc6a6c9162c188587df5d42ee06bf965229ad6))\n* **quick-actions:** delete local steps ([08e379c](https://github.com/nextcloud/mail/commit/08e379c2dd0f44321726150609452ad20bfded3e))\n* **quick-actions:** pin mark as spam as a last actions step ([a28adde](https://github.com/nextcloud/mail/commit/a28adde92e50c3758c28b22088feddf3d3deb848))\n* **quickaction:** fix deleting quick action steps ([f8b67cf](https://github.com/nextcloud/mail/commit/f8b67cfb848d5f4420fafc795792796189f789ee))\n* **quickaction:** log js error to console ([da5eae9](https://github.com/nextcloud/mail/commit/da5eae94614816bb75c6fd31a95ac92b6b47a8d5))\n* render recipient info later ([03bee06](https://github.com/nextcloud/mail/commit/03bee066c6c168911151e0be71c16eb2dc2bbc4d))\n* restore color menu in text/background selector ([6de3bb1](https://github.com/nextcloud/mail/commit/6de3bb1ab9e21f28703648926f451c6f46b5dcc3))\n* schedule jobs on account provisioning ([5f9a313](https://github.com/nextcloud/mail/commit/5f9a3131ac6f31680255c616bc26e7938d1752a5))\n* schedule repair sync job when adding an account ([eb41283](https://github.com/nextcloud/mail/commit/eb41283573f85cbef11bcfe40059b7930bea9802))\n* **Settings:** redesign ([5448209](https://github.com/nextcloud/mail/commit/5448209267415ad71f877b104e420aaf0bd20ab9))\n* **setup:** log when invalid hosts are used ([b415ab6](https://github.com/nextcloud/mail/commit/b415ab6672c5d90138d8834763d9a3683b0c4331))\n* show user avatar in recipient info ([f67fd6b](https://github.com/nextcloud/mail/commit/f67fd6be188873e1a397829da7a1e82aa6cc42fe))\n* **sieve:** improve filter ui ([29c3d5e](https://github.com/nextcloud/mail/commit/29c3d5ed87547835886e9a0f47d75d206008bd98))\n* thread error message handling ([7593d60](https://github.com/nextcloud/mail/commit/7593d6099f254930fdbb63bc08398bcaa85c5e3d))\n* toolbar dropdown and height bug ([90e78c1](https://github.com/nextcloud/mail/commit/90e78c16ad80edec5209d527cebd9cd6968de016))\n* **ui:** Don't outline checkmark icons ([46e0a10](https://github.com/nextcloud/mail/commit/46e0a108843b3a3661d3da6eb4a793148b9c5a95)), closes [#11322](https://github.com/nextcloud/mail/issues/11322)\n* **ui:** escape envelope subject line ([36b5d21](https://github.com/nextcloud/mail/commit/36b5d211eedbaeb3e4b41aaa2b0fea59bd52e285))\n* **ui:** handle mailbox sorting of 'all' and unknown special use ([913342b](https://github.com/nextcloud/mail/commit/913342b0d2fd0be25186cb39b31916b72a188ced))\n* **ui:** migrate to the new radio groups for app settings ([cef6238](https://github.com/nextcloud/mail/commit/cef62387b304a927b3ffb5f8a4cfe124452e88c2))\n* **ui:** use filled icons for active navigation mailboxes ([2b78ce1](https://github.com/nextcloud/mail/commit/2b78ce1961414d2242dcc7f71b035e91d42c176a))\n* **ui:** use new NcKbd component ([65f6c61](https://github.com/nextcloud/mail/commit/65f6c61c686f0b89f25a5be16965abe29e4aeff2))\n* validate email address in recipient picker ([0d7ceb1](https://github.com/nextcloud/mail/commit/0d7ceb1fb77820595b799540e25d29649a3e7988))\n* warning for accounts that can't connect ([1ee0d5d](https://github.com/nextcloud/mail/commit/1ee0d5d76912fbe30e205f5a4c0768ef6960c5da))\n\n\n### Features\n\n* **composer:** send message on Ctrl+Enter ([0e848de](https://github.com/nextcloud/mail/commit/0e848deae3c4fadf7f70aebda3db001d554a420a))\n* **settings:** add bordered wrapper to signature editor for clearer boundary ([0675a17](https://github.com/nextcloud/mail/commit/0675a1756303159fa8b84f35eff52ee52c81c6ab))\n* show mail version in settings ([d206d4d](https://github.com/nextcloud/mail/commit/d206d4dfc68e589284418fbcfb82ea54e2000148))\n\n\n### Performance Improvements\n\n* switch webpack mode to lazy ([9d8f1f3](https://github.com/nextcloud/mail/commit/9d8f1f32219fbd21e61c66794b0ff64e2bf830f9))\n\n\n\n# [5.5.0-rc.1](https://github.com/nextcloud/mail/compare/v5.2.0-beta.1...v5.5.0-rc.1) (2025-09-11)\n\n\n### Bug Fixes\n\n* **ai-integration:** set the language explicitly for message summary ([ca141ee](https://github.com/nextcloud/mail/commit/ca141eeed5f90a5b1348c2f7c3d6b24680557edb))\n* **AliasSettings:** alignment ([84233ab](https://github.com/nextcloud/mail/commit/84233ab11532efd238c876f92d3f5b60e3faabad))\n* avoid polluting the logs in the task processing event listner ([ab9cd93](https://github.com/nextcloud/mail/commit/ab9cd9338b2de6bf6c2daee9d291c9c995ed7517))\n* ckeditor dropdown overlaping ([59904c2](https://github.com/nextcloud/mail/commit/59904c2c6b2d3476a4e3bb2cfdb23cdb44809bd3))\n* clear search icon should not be outline ([ab21936](https://github.com/nextcloud/mail/commit/ab2193695614d46132416effbe41b4bb5921896d))\n* **deps:** bump @iframe-resizer/child from 5.5.0 to ^5.5.1 (main) ([#11451](https://github.com/nextcloud/mail/issues/11451)) ([fbb7d7b](https://github.com/nextcloud/mail/commit/fbb7d7b61d0c666f984ec81de2da11139e1f211e))\n* **deps:** bump @iframe-resizer/child from 5.5.1 to ^5.5.2 ([ed1fbcb](https://github.com/nextcloud/mail/commit/ed1fbcb085d326fdcecdeb792f6833ca2b325967))\n* **deps:** bump @iframe-resizer/child from 5.5.2 to ^5.5.3 (main) ([#11583](https://github.com/nextcloud/mail/issues/11583)) ([03dedb7](https://github.com/nextcloud/mail/commit/03dedb7baf7205d8aac8429d05b0200f2672a5c0))\n* **deps:** bump @iframe-resizer/child from 5.5.3 to ^5.5.5 (main) ([#11612](https://github.com/nextcloud/mail/issues/11612)) ([0625a6f](https://github.com/nextcloud/mail/commit/0625a6f9d4216454dc5aaf9276e3091085920f40))\n* **deps:** bump @iframe-resizer/parent from 5.4.7 to ^5.5.1 (main) ([#11452](https://github.com/nextcloud/mail/issues/11452)) ([e7dd17a](https://github.com/nextcloud/mail/commit/e7dd17add842d88f5a05e2e1fcaaa92275208f07))\n* **deps:** bump @iframe-resizer/parent from 5.5.1 to ^5.5.2 (main) ([#11483](https://github.com/nextcloud/mail/issues/11483)) ([c563201](https://github.com/nextcloud/mail/commit/c563201340e02673d364e10efeef4bacc3050624))\n* **deps:** bump @iframe-resizer/parent from 5.5.2 to ^5.5.3 (main) ([#11584](https://github.com/nextcloud/mail/issues/11584)) ([67174a9](https://github.com/nextcloud/mail/commit/67174a9f80d80b8cf3cc2f28fbe5d72da11b541b))\n* **deps:** bump @iframe-resizer/parent from 5.5.3 to ^5.5.5 (main) ([#11613](https://github.com/nextcloud/mail/issues/11613)) ([5be27cf](https://github.com/nextcloud/mail/commit/5be27cf2cf00b72fcd4526f164ec2c773e46e00c))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.12.0 ([deef58a](https://github.com/nextcloud/mail/commit/deef58a71e8801dc0c5e515295d03686ece51ff3))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([4529411](https://github.com/nextcloud/mail/commit/452941193bd47e1deb5da403b9ef06ac12d05c25))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.28.0 ([88bdf89](https://github.com/nextcloud/mail/commit/88bdf891061228035dea3ddfe6d360a79a8cca33))\n* **deps:** bump @nextcloud/vue to ^8.30.0 ([f417737](https://github.com/nextcloud/mail/commit/f4177370703e0f9589ca11e89c72535a7782ee8b))\n* **deps:** bump core-js from 3.43.0 to ^3.45.0 ([4932f23](https://github.com/nextcloud/mail/commit/4932f23e4d0fc76c74b602a7cd7e631e77d7dab6))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([13f5e61](https://github.com/nextcloud/mail/commit/13f5e61ef534906b8c7dc1ebb5cd36c1c9b85a24))\n* **deps:** bump js-base64 from 3.7.7 to ^3.7.8 (main) ([#11501](https://github.com/nextcloud/mail/issues/11501)) ([ded3bda](https://github.com/nextcloud/mail/commit/ded3bda4d340bffd12adcdd52b6253b3c9170431))\n* **deps:** bump linkifyjs to v4.3.2 ([ec06a65](https://github.com/nextcloud/mail/commit/ec06a658d8fc89369dabedb2e70dc1818f48c245))\n* **deps:** bump p-limit from 5.0.0 to v6 ([4d6501a](https://github.com/nextcloud/mail/commit/4d6501ac9952a57bf9a38b47f497113d7af7e008))\n* **deps:** bump sabberworm/php-css-parser from 8.8.0 to ^8.9.0 (main) ([#11475](https://github.com/nextcloud/mail/issues/11475)) ([a96c15d](https://github.com/nextcloud/mail/commit/a96c15d684506a68817817f0e0c3ce6af567ec2c))\n* **deps:** bump sha.js from 2.4.11 to 2.4.12 ([461a9cf](https://github.com/nextcloud/mail/commit/461a9cfedcd62a89d236ae86421d9c3ffd519a18))\n* **deps:** bump stylelint from 16.20.0 to ^16.23.1 (main) ([#11476](https://github.com/nextcloud/mail/issues/11476)) ([eac87aa](https://github.com/nextcloud/mail/commit/eac87aa75304bd0ecfda0425c84ea27477d83bf3))\n* **deps:** bump uuid from 9.0.1 to v11 ([243172c](https://github.com/nextcloud/mail/commit/243172c9c8ebaaa2e0feb3907aa4dbe21842f133))\n* **deps:** bump youthweb/urllinker from 2.0.0 to ^2.1.0 (main) ([#11477](https://github.com/nextcloud/mail/issues/11477)) ([e4cc571](https://github.com/nextcloud/mail/commit/e4cc571bef4399dbc1ec66c4238857b087db08c1))\n* **deps:** update symfony/process to 5.4.46 ([569e6b9](https://github.com/nextcloud/mail/commit/569e6b9c5ce88c2874e969d9de55e176e0043b67))\n* **dns:** Update public suffix list ([c29ef10](https://github.com/nextcloud/mail/commit/c29ef10955207b12213bd3781bcea2870d1f51a4))\n* **dns:** Update public suffix list ([e9c9068](https://github.com/nextcloud/mail/commit/e9c90681350a547bb750f29b2f17da9d81f83e53))\n* envelope max height ([2e88454](https://github.com/nextcloud/mail/commit/2e88454c46fae764a42e8f43779f4d48241c52b5))\n* **Envelope:** fix oneline mode envelopes jumping when hovering avatars ([#11641](https://github.com/nextcloud/mail/issues/11641)) ([79e09a1](https://github.com/nextcloud/mail/commit/79e09a1d301ea3e762f9608aa62a30dec7d1cd6a))\n* **EnvelopeSkeleton:** make action hover area square again ([13cc096](https://github.com/nextcloud/mail/commit/13cc096a30ad19fb5a5aed1a23dca4a774f15d36))\n* imip cancelled icon should be filled ([222dad1](https://github.com/nextcloud/mail/commit/222dad14b866e40f8ad548a4784f7b7733b860c8))\n* improve the height and width of threads ([217f086](https://github.com/nextcloud/mail/commit/217f08620eaff42685933654bbcbbeadd94a1b0c))\n* **l10n:** Update translations from Transifex ([8cbc64b](https://github.com/nextcloud/mail/commit/8cbc64be123186ba8271c5684df1f685bb7f451d))\n* **l10n:** Update translations from Transifex ([14d2b10](https://github.com/nextcloud/mail/commit/14d2b105c7fce21368db46f58c93c68be349fd8c))\n* **l10n:** Update translations from Transifex ([d58c2b5](https://github.com/nextcloud/mail/commit/d58c2b5fcbad02d7becc6466ef21464e858ab5e4))\n* **l10n:** Update translations from Transifex ([3a3151a](https://github.com/nextcloud/mail/commit/3a3151af5f54767d7355a950c74477c8a46a63ce))\n* **l10n:** Update translations from Transifex ([d3fe84d](https://github.com/nextcloud/mail/commit/d3fe84d53f68598a93d2b44183d6233452e1a6dd))\n* **l10n:** Update translations from Transifex ([9290530](https://github.com/nextcloud/mail/commit/9290530f5f29e3a4a021ec91645a10042199b4f3))\n* **l10n:** Update translations from Transifex ([c9f26dc](https://github.com/nextcloud/mail/commit/c9f26dc55a3a6740fdb0daf2d2d18182ebcdcda6))\n* **l10n:** Update translations from Transifex ([90a0fd5](https://github.com/nextcloud/mail/commit/90a0fd51400150b678303c39a68dd4d40473f00b))\n* **l10n:** Update translations from Transifex ([36360a3](https://github.com/nextcloud/mail/commit/36360a3f71c96a209a4355dabb03b1380a7611c3))\n* **l10n:** Update translations from Transifex ([a102a6e](https://github.com/nextcloud/mail/commit/a102a6e36687e4e030a3848c044dc7c255de74e9))\n* **l10n:** Update translations from Transifex ([c5116a7](https://github.com/nextcloud/mail/commit/c5116a7d6e9214cc9b2ace7cd583388b16ef0731))\n* **l10n:** Update translations from Transifex ([b076b44](https://github.com/nextcloud/mail/commit/b076b4422b297d8c77249107320c8ef8a6b4547c))\n* **l10n:** Update translations from Transifex ([61df478](https://github.com/nextcloud/mail/commit/61df47864d09f0f3124e56b3e2f0241c84de83b6))\n* **l10n:** Update translations from Transifex ([7ca9af7](https://github.com/nextcloud/mail/commit/7ca9af720d5d837c9a8b29dc55b10dfd89bc9c4d))\n* **l10n:** Update translations from Transifex ([f9e8db7](https://github.com/nextcloud/mail/commit/f9e8db7ea23ff350e2a5cffdb49adbe6f2932293))\n* **l10n:** Update translations from Transifex ([12ed5be](https://github.com/nextcloud/mail/commit/12ed5be776b49a895399ce8a3bdd52733787217c))\n* **l10n:** Update translations from Transifex ([af95f12](https://github.com/nextcloud/mail/commit/af95f12cb147df5fd83e783fb3949684d4d9e314))\n* **l10n:** Update translations from Transifex ([607c73b](https://github.com/nextcloud/mail/commit/607c73ba81bf7c79de107fa56ac2bd861d9c1db0))\n* **l10n:** Update translations from Transifex ([a61e1b9](https://github.com/nextcloud/mail/commit/a61e1b93d8a4a085db1616d4a9cb14c407369f12))\n* **l10n:** Update translations from Transifex ([ee5e864](https://github.com/nextcloud/mail/commit/ee5e864bdf16649e594f74c0bb9bc114e466a1d0))\n* **l10n:** Update translations from Transifex ([70a04cd](https://github.com/nextcloud/mail/commit/70a04cd8aa2a23b56a655b94af8b34ccc0148b8e))\n* **l10n:** Update translations from Transifex ([7f023a0](https://github.com/nextcloud/mail/commit/7f023a06dc0db1fe403aa64a2ceb57d9b17147b9))\n* **l10n:** Update translations from Transifex ([e5e9ec8](https://github.com/nextcloud/mail/commit/e5e9ec8764bd26732f1ea6ad91b4e165011c25ac))\n* **l10n:** Update translations from Transifex ([3f9e474](https://github.com/nextcloud/mail/commit/3f9e474486e90d6e48d3e40b70a4c72611ea2dcf))\n* **l10n:** Update translations from Transifex ([3356ea2](https://github.com/nextcloud/mail/commit/3356ea2ebd5ee1ba344b60dfa5f40ae607e7ba19))\n* **l10n:** Update translations from Transifex ([eeced61](https://github.com/nextcloud/mail/commit/eeced61bcf4d4eaec87924f94c8160acafd0682a))\n* **l10n:** Update translations from Transifex ([2ad3966](https://github.com/nextcloud/mail/commit/2ad3966c3ea5606436387b67da1d4807eb47587a))\n* **l10n:** Update translations from Transifex ([cfdcf75](https://github.com/nextcloud/mail/commit/cfdcf757f2fe7a6936569d3c861bba1b1004fe05))\n* **l10n:** Update translations from Transifex ([697c69b](https://github.com/nextcloud/mail/commit/697c69b5841c01a25b8cf7b0e4fed67d3443188f))\n* **l10n:** Update translations from Transifex ([2f1c003](https://github.com/nextcloud/mail/commit/2f1c003418e40b7edad25f1f498e43e2b773a7d1))\n* **l10n:** Update translations from Transifex ([36f0e7f](https://github.com/nextcloud/mail/commit/36f0e7fd38568d944000736136c94bb1b7a261a3))\n* **l10n:** Update translations from Transifex ([e2c468f](https://github.com/nextcloud/mail/commit/e2c468fac3115bdd6d27c16b9009377421416c74))\n* **l10n:** Update translations from Transifex ([c8f646c](https://github.com/nextcloud/mail/commit/c8f646c09d5d0c405babdefa026cf6a5ac2b1d2f))\n* **l10n:** Update translations from Transifex ([3f1a40c](https://github.com/nextcloud/mail/commit/3f1a40c9b23ee7f9ba9ac3610cb877d8d8a59800))\n* **l10n:** Update translations from Transifex ([481be86](https://github.com/nextcloud/mail/commit/481be86a5abe74d2b6e11ee7823e1ff9997b7d4f))\n* Overwrite php-stemmer dependency from RubixML for PHP 8.4 compatibility ([cb94091](https://github.com/nextcloud/mail/commit/cb94091f38006b5bb1255edea7b5d836a5f647ba))\n* reply buttons spacing ([989f540](https://github.com/nextcloud/mail/commit/989f540d22e398bce6b58c467bda93932b5f06db))\n* **settings:** add missing mail settings heading ([a94cd4e](https://github.com/nextcloud/mail/commit/a94cd4e30cf2800d1e695dc805c549b6f1fae300))\n* specify which mailbox to load more from ([e196775](https://github.com/nextcloud/mail/commit/e1967756d49467085fbad138f7c67c0881b10146))\n* **text-blocks:** allow editing in composer and open api for non admin users ([d93d974](https://github.com/nextcloud/mail/commit/d93d974bf8642e80792402c23546391e2985561d))\n* thread heading alignment and participants ([ea01e40](https://github.com/nextcloud/mail/commit/ea01e402f79b90c0792771e03980abec73165781))\n* thread scrolls to middle of iframe ([77a91ad](https://github.com/nextcloud/mail/commit/77a91ad7765a9ec344c5987a8efe1834c9101343))\n* **translation:** respect llm admin setting ([0b0e279](https://github.com/nextcloud/mail/commit/0b0e27977a69a6315fca731f65f554ee758e2e9b))\n* **ui:** adapt setup page to fluid logo ([bff428d](https://github.com/nextcloud/mail/commit/bff428d7c78502008d296e232d998b0778eca37b))\n* **ui:** replace download/upload icons with tray icons ([fe6c15f](https://github.com/nextcloud/mail/commit/fe6c15fe67478664e0021707a0e450d4d3d7e75b))\n* **ui:** replace wrongly sized and jumping checkbox loading icon ([668f7b6](https://github.com/nextcloud/mail/commit/668f7b6c4b3017f0a65f486435d4ca81327d1399))\n* **ui:** resize action icons from 16px to 20px ([d6810da](https://github.com/nextcloud/mail/commit/d6810da2a5d1fc60d632234865542962acdf7ddb))\n* **ui:** resize action icons from 16px to 20px ([99fbdda](https://github.com/nextcloud/mail/commit/99fbdda306f7efd3c52bb98a4f4937f92eb2de2f))\n* **ui:** resize button icons from 16px to 20px ([9c059b8](https://github.com/nextcloud/mail/commit/9c059b85d13ca4161f793d9fc2de537de66b726b))\n* **ui:** resize inline icons from 16px to 20px ([e8a8d89](https://github.com/nextcloud/mail/commit/e8a8d89de6c92fd70fa2e1d5dbd9afe7c5837487))\n* **ui:** revert composer session close icon to filled variant ([e10d9da](https://github.com/nextcloud/mail/commit/e10d9da41655955376268d3c342a63260b574aa0))\n* **ui:** revert recipient delete icon to filled variant ([6468edb](https://github.com/nextcloud/mail/commit/6468edb42a4248312c91d3570dac4a133a610dcd))\n* **ui:** show box-shadow for fluid design button all the time ([03b5861](https://github.com/nextcloud/mail/commit/03b5861d70b854704caa47269cbb999f583fe057))\n* **ui:** use fluid background image for the setup view ([f88dec6](https://github.com/nextcloud/mail/commit/f88dec649b44f9ab8e38a767016a4e1c26ba7235))\n* **ui:** use gradient as fallback for themed fluid design ([b3ebb27](https://github.com/nextcloud/mail/commit/b3ebb2787814f4c075f495b1eb04ea66f00dee2a))\n* update wording for mailvelope ([b51ed32](https://github.com/nextcloud/mail/commit/b51ed32d53b4336ab7d7aa76d366a557f09738ce))\n* white space between section titles ([9469c7b](https://github.com/nextcloud/mail/commit/9469c7be51d0743cb722f110263700d126cb218c))\n\n\n### Features\n\n* adjust background sync on user activity ([febaba1](https://github.com/nextcloud/mail/commit/febaba187da4dd60410ccfad738fe80d5af619fa))\n* **ai-integration:** detect if message needs translation ([4a2b238](https://github.com/nextcloud/mail/commit/4a2b2389f31f084d8b7856f4a4bd84ed22c27f41))\n* **deps:** add Nextcloud 33 support ([df5795d](https://github.com/nextcloud/mail/commit/df5795dab59e95fd43a00e84c82544ada65a43ea))\n* introduce quick actions ([cc1047c](https://github.com/nextcloud/mail/commit/cc1047c7c884711144e229174914c102f8a5fd13))\n* make summary thread similar to normal thread style ([997c19e](https://github.com/nextcloud/mail/commit/997c19e0553c9ee7ecc244e778c006e849d2ea8f))\n* make thread elements have the same space around it ([ec2173c](https://github.com/nextcloud/mail/commit/ec2173c77ab9a6266dbb3499a32350df8b7d180f))\n* quick actions frontend ([97fb6a5](https://github.com/nextcloud/mail/commit/97fb6a516ba8510c054e9e7740f5bce72601f563))\n* reply message with meeting ([37be07c](https://github.com/nextcloud/mail/commit/37be07c664b5b3aad2c4d9135f9412766edd7cd1))\n* split envelopes by time of arrival ([eaa7405](https://github.com/nextcloud/mail/commit/eaa740528c1284b79aa3291bcbfd20f907608f64))\n* **ui:** add fluid design ([85f0628](https://github.com/nextcloud/mail/commit/85f06283836e7243496c20d37d2565aafcb0f6ea))\n\n\n\n# [5.2.0-beta.1](https://github.com/nextcloud/mail/compare/v5.2.0-alpha.1...v5.2.0-beta.1) (2025-08-04)\n\n\n### Bug Fixes\n\n* add html and source editing support ([ff1f7d8](https://github.com/nextcloud/mail/commit/ff1f7d885c3c06850e08e969c5b6b35af8bc8c81))\n* add translator note for account settings folder search ([a702a23](https://github.com/nextcloud/mail/commit/a702a233388163a3898b993bb0d5a43415e28192))\n* **avatar:** handle null bodies ([b8f452b](https://github.com/nextcloud/mail/commit/b8f452bba27a059681f33b7842aa2b5c0ab2cc57))\n* avoid invalid false return type ([d0f4b55](https://github.com/nextcloud/mail/commit/d0f4b556531a1271f11f3164093eb62699f48a28))\n* button aria label and roles ([e38d831](https://github.com/nextcloud/mail/commit/e38d831869cbf9ef38d951b3c2d6fa3da2c0790d))\n* **caldav:** invalid import of davclient ([376942d](https://github.com/nextcloud/mail/commit/376942d81cf95b462196aca6f629f7bfc258a24c))\n* **classification:** use global default for new messages too ([d4e171b](https://github.com/nextcloud/mail/commit/d4e171bdac87390067fe5f4b0db10adef1dfcbe7))\n* close modal when send is clicked ([3ef6947](https://github.com/nextcloud/mail/commit/3ef694729bfbba27767b70c5219d772e2553c8fa))\n* **composer:** allow attaching shared files again ([214680a](https://github.com/nextcloud/mail/commit/214680adb43fd6216dd7c8ab8da5595e48c8c718))\n* **deps:** Apply npm audit fix ([3c447b7](https://github.com/nextcloud/mail/commit/3c447b769a2b9e296ab8ac8adb91a1f15b0601a4))\n* **deps:** Apply npm audit fix ([3822226](https://github.com/nextcloud/mail/commit/3822226ff7cde3f6d616b3a904888517b452ab8c))\n* **deps:** Apply npm audit fix ([6e90100](https://github.com/nextcloud/mail/commit/6e9010004196f21b30da57773e4eb6ff688fc063))\n* **deps:** Apply npm audit fix ([f538159](https://github.com/nextcloud/mail/commit/f538159f3abf69672a4df4498862b88676bc9c92))\n* **deps:** bump @iframe-resizer/child from 5.4.6 to ^5.4.7 (main) ([#11374](https://github.com/nextcloud/mail/issues/11374)) ([41547fa](https://github.com/nextcloud/mail/commit/41547faa6bd9e9e672d49e5659e48b3f74aadf37))\n* **deps:** bump @iframe-resizer/child from 5.4.7 to ^5.5.0 (main) ([#11430](https://github.com/nextcloud/mail/issues/11430)) ([b0947e6](https://github.com/nextcloud/mail/commit/b0947e64704972de8e2229d3ad0c0c1446ce0d17))\n* **deps:** bump @iframe-resizer/parent from 5.4.6 to ^5.4.7 (main) ([#11375](https://github.com/nextcloud/mail/issues/11375)) ([c9fc35a](https://github.com/nextcloud/mail/commit/c9fc35aad941303316dada6e9508cf98d475b2e8))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 (main) ([#11376](https://github.com/nextcloud/mail/issues/11376)) ([c15e8c3](https://github.com/nextcloud/mail/commit/c15e8c308336cc7645934f090c70ceb069667145))\n* **deps:** bump @nextcloud/calendar-js from 8.1.2 to ^8.1.3 ([4c8363e](https://github.com/nextcloud/mail/commit/4c8363e9c3b36fef917b310e9c21092e37b52cb9))\n* **deps:** bump @nextcloud/calendar-js from 8.1.3 to ^8.1.4 ([378405e](https://github.com/nextcloud/mail/commit/378405e2a7967ad795507275a4753af0cbaaf622))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([08bff41](https://github.com/nextcloud/mail/commit/08bff4199ee5f1e3adfde894d4aaccbe7dafecdb))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 (main) ([#11409](https://github.com/nextcloud/mail/issues/11409)) ([2914a63](https://github.com/nextcloud/mail/commit/2914a6312556302b179eb602888bf31921d05d4d))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to v6 ([53cfc3e](https://github.com/nextcloud/mail/commit/53cfc3ef45446903a13c70cb3dae76bc5a878195))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.3.0 (main) ([#11227](https://github.com/nextcloud/mail/issues/11227)) ([ed941e8](https://github.com/nextcloud/mail/commit/ed941e86f1dcbc8e81da99417e406eb83ebb0649))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.0 (main) ([#11427](https://github.com/nextcloud/mail/issues/11427)) ([e9f785c](https://github.com/nextcloud/mail/commit/e9f785c9d532fe21fd77a52d288702f1cf9240e2))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 (main) ([#11410](https://github.com/nextcloud/mail/issues/11410)) ([29f0f8e](https://github.com/nextcloud/mail/commit/29f0f8ef908e2c70ebec94d0aac6e52795f565ef))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([f4f3535](https://github.com/nextcloud/mail/commit/f4f35358b044213e2938a1a9bf5412fed7f94323))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.27.0 ([ef701cb](https://github.com/nextcloud/mail/commit/ef701cbf0c216469ee16012e50bc08759e80658d))\n* **deps:** bump amphp/parallel and amphp/process for PHP8.4 compat ([8d0ef72](https://github.com/nextcloud/mail/commit/8d0ef72c8fe3b840a7a17c31159ee18d58453438))\n* **deps:** bump core-js from 3.42.0 to ^3.43.0 (main) ([#11256](https://github.com/nextcloud/mail/issues/11256)) ([8b9a531](https://github.com/nextcloud/mail/commit/8b9a531b9c7d8dfefe221a1bff30aaac0254d87d))\n* **deps:** bump dompurify from 3.2.5 to ^3.2.6 (main) ([#11180](https://github.com/nextcloud/mail/issues/11180)) ([fbbf4bf](https://github.com/nextcloud/mail/commit/fbbf4bfd15000113755fa37d76634683c10282d1))\n* **deps:** bump form-data to v4.0.4 ([71d52ca](https://github.com/nextcloud/mail/commit/71d52ca16c25bc19f5e84f54c41bca8433706d03))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 (main) ([#11343](https://github.com/nextcloud/mail/issues/11343)) ([10d46f5](https://github.com/nextcloud/mail/commit/10d46f5714f081a487a84cdae353e23fb266c7fc))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.3 to ^1.0.4 (main) ([#11181](https://github.com/nextcloud/mail/issues/11181)) ([cc4b6af](https://github.com/nextcloud/mail/commit/cc4b6afa0dca2559be3f7253c7d41598c833b5d3))\n* **deps:** bump ramda from 0.30.1 to ^0.31.3 ([0f5d1cb](https://github.com/nextcloud/mail/commit/0f5d1cba25f079fb36ca802ed37872c05b2f9d66))\n* **deps:** bump stylelint from 16.19.1 to ^16.20.0 (main) ([#11248](https://github.com/nextcloud/mail/issues/11248)) ([0d95338](https://github.com/nextcloud/mail/commit/0d95338d7597d7f77d691ea921a6bc8e295cd01c))\n* **deps:** bump webdav from 4.11.4 to v4.11.5 (main) ([#11246](https://github.com/nextcloud/mail/issues/11246)) ([6359d2b](https://github.com/nextcloud/mail/commit/6359d2b9e6e1c7ca9fa6b40343b62b9ee4cea1b4))\n* **dns:** Update public suffix list ([6096398](https://github.com/nextcloud/mail/commit/6096398a88ea3065ddf48afa895d1a70c6e9d4fd))\n* **dns:** Update public suffix list ([990031a](https://github.com/nextcloud/mail/commit/990031a8be090ff5fe55bab5647f8be921d0536f))\n* **dns:** Update public suffix list ([5ea2259](https://github.com/nextcloud/mail/commit/5ea2259e2963106d27fcdae78119b43fa322d0a5))\n* **dns:** Update public suffix list ([fb7762c](https://github.com/nextcloud/mail/commit/fb7762c3ac5fe23845b04540b0a7f63211055791))\n* **dns:** Update public suffix list ([f8bf4ec](https://github.com/nextcloud/mail/commit/f8bf4eccbd37a6a529d365e4d7e60889f9b56b08))\n* don't propagate click event on reply ([56ac6af](https://github.com/nextcloud/mail/commit/56ac6af0c3f2f738d64797538530c84f66c9a008))\n* **filters:** Use contains operator for from and to header ([8d79ff2](https://github.com/nextcloud/mail/commit/8d79ff231cec394d4e90b2b429f1df8e55650936))\n* html message alignment ([7fde440](https://github.com/nextcloud/mail/commit/7fde440d186faf3bf7724144d56b169db7f03ade))\n* **imip:** hide warning about email mismatch for imip replies ([aca57c4](https://github.com/nextcloud/mail/commit/aca57c45338b542899c25ec02c6172bca66982fa))\n* **imip:** process imip messages more frequently ([881c2a5](https://github.com/nextcloud/mail/commit/881c2a593dffa9dfe3c30cdb0a59103ed1f02623))\n* invitation title on small screen ([d268bb8](https://github.com/nextcloud/mail/commit/d268bb8f5e7e5b4c2f68020a7033f9b02fdecf8a))\n* **l10n:** remove trailing space and allow RTL for drafts ([a9acabc](https://github.com/nextcloud/mail/commit/a9acabca1240eeb2d96c32611beed708e5a958c6))\n* **l10n:** Update translations from Transifex ([f341e23](https://github.com/nextcloud/mail/commit/f341e236d868d252d930f90d5aa407a9d775598f))\n* **l10n:** Update translations from Transifex ([7520191](https://github.com/nextcloud/mail/commit/7520191dfbc3b848bb990fd0c8dab0fcebc2ca8c))\n* **l10n:** Update translations from Transifex ([c9eb41d](https://github.com/nextcloud/mail/commit/c9eb41d382944c6293b222f9daff982836437d6f))\n* **l10n:** Update translations from Transifex ([34ee755](https://github.com/nextcloud/mail/commit/34ee75530288bda133637101eb5a5dad1f22a82e))\n* **l10n:** Update translations from Transifex ([be60d8b](https://github.com/nextcloud/mail/commit/be60d8bd43af9455a44e678bd06359a7cb9532c2))\n* **l10n:** Update translations from Transifex ([b1d0931](https://github.com/nextcloud/mail/commit/b1d0931b0d85fec5d76740446836f5d086d929da))\n* **l10n:** Update translations from Transifex ([0911657](https://github.com/nextcloud/mail/commit/0911657911162a5fec675b22b38510bde70fdc18))\n* **l10n:** Update translations from Transifex ([b0aa0c8](https://github.com/nextcloud/mail/commit/b0aa0c8edbf4c77d061976a2513e6d17a8fc7944))\n* **l10n:** Update translations from Transifex ([8d02123](https://github.com/nextcloud/mail/commit/8d021232fc5a74ebe9f706e4bd0f0c9d0b165ae0))\n* **l10n:** Update translations from Transifex ([4e860ae](https://github.com/nextcloud/mail/commit/4e860aed21035bd4dc49ea699c1fd25436cd3c4b))\n* **l10n:** Update translations from Transifex ([fe04747](https://github.com/nextcloud/mail/commit/fe047476f447551da02d066ee5f0d4015ae0ab94))\n* **l10n:** Update translations from Transifex ([6568fd8](https://github.com/nextcloud/mail/commit/6568fd8858fac930eb67e45c0fbea675439c21c1))\n* **l10n:** Update translations from Transifex ([a79ef67](https://github.com/nextcloud/mail/commit/a79ef6780061910d8010a5fb5d881656202f2f5d))\n* **l10n:** Update translations from Transifex ([2590c76](https://github.com/nextcloud/mail/commit/2590c76c2dbb8ea52435f6e648a51d104c590a0b))\n* **l10n:** Update translations from Transifex ([b741e2d](https://github.com/nextcloud/mail/commit/b741e2d0da217a63bcfd3cdbe0edfe97357b1824))\n* **l10n:** Update translations from Transifex ([45cbe3f](https://github.com/nextcloud/mail/commit/45cbe3f8ef9c3e855ddbeed2487811d767c8c0a0))\n* **l10n:** Update translations from Transifex ([ee76fff](https://github.com/nextcloud/mail/commit/ee76fffca11451414c40b60bad49e4486e49de81))\n* **l10n:** Update translations from Transifex ([4dd274f](https://github.com/nextcloud/mail/commit/4dd274ffe670e752b8ccaf0415e866e9f16b2744))\n* **l10n:** Update translations from Transifex ([6002661](https://github.com/nextcloud/mail/commit/600266130fd8d931e46359c4b8c18ca94b248a83))\n* **l10n:** Update translations from Transifex ([c92032c](https://github.com/nextcloud/mail/commit/c92032c7f08fcc59a223dc621a2ac218e43aa208))\n* **l10n:** Update translations from Transifex ([5d4a2be](https://github.com/nextcloud/mail/commit/5d4a2becb7e8bbce8788579af155a712f4933a60))\n* **l10n:** Update translations from Transifex ([5b2695e](https://github.com/nextcloud/mail/commit/5b2695e63cbc07dd56eae99a51b36d6745a67e56))\n* **l10n:** Update translations from Transifex ([3f79191](https://github.com/nextcloud/mail/commit/3f79191fdf2a68f164ded7233fa7da7eac056945))\n* **l10n:** Update translations from Transifex ([4e381eb](https://github.com/nextcloud/mail/commit/4e381ebbaf99b182867efcadef2f00fb596768de))\n* **l10n:** Update translations from Transifex ([5d13aac](https://github.com/nextcloud/mail/commit/5d13aacd343883b2c7ace01db7280a0664c0a6e4))\n* **l10n:** Update translations from Transifex ([d82e8f3](https://github.com/nextcloud/mail/commit/d82e8f3c3398ad54c921217f5b1238dc8683bebc))\n* **l10n:** Update translations from Transifex ([b8bcc35](https://github.com/nextcloud/mail/commit/b8bcc35a47105712031485bd0660503c709bafa9))\n* **l10n:** Update translations from Transifex ([98f36b1](https://github.com/nextcloud/mail/commit/98f36b146dd5ccc8ba6a22717349185a0429759a))\n* **l10n:** Update translations from Transifex ([a64a503](https://github.com/nextcloud/mail/commit/a64a50389ccb64786ad7078641d453468b6da152))\n* **l10n:** Update translations from Transifex ([3a7babe](https://github.com/nextcloud/mail/commit/3a7babefc2c3c76c69cc89caf4eb88f89b3c14cf))\n* **l10n:** Update translations from Transifex ([7e8dfe2](https://github.com/nextcloud/mail/commit/7e8dfe265a2a5ad9d767bcd062ebcd7fa3810971))\n* **l10n:** Update translations from Transifex ([e5de9ef](https://github.com/nextcloud/mail/commit/e5de9ef94d16d1c7605dd93d1ef71ceabdeb9bf4))\n* **l10n:** Update translations from Transifex ([5e1fb1c](https://github.com/nextcloud/mail/commit/5e1fb1c549ee5436974393f2a5a957b3094847c6))\n* **l10n:** Update translations from Transifex ([0e37608](https://github.com/nextcloud/mail/commit/0e376080c9bc14146fd0b1db06472c5aa47b64ab))\n* **l10n:** Update translations from Transifex ([1ad5068](https://github.com/nextcloud/mail/commit/1ad5068566ed773876a7f6c7a92baab925438fe1))\n* **l10n:** Update translations from Transifex ([ebfc9c0](https://github.com/nextcloud/mail/commit/ebfc9c0b13e558e88cf7e11677fb32354931ba1d))\n* **l10n:** Update translations from Transifex ([ddd3fd3](https://github.com/nextcloud/mail/commit/ddd3fd3e0318fc102dcb2dfd14e348408cda6181))\n* **l10n:** Update translations from Transifex ([899046c](https://github.com/nextcloud/mail/commit/899046c5345fc682f11f2c938f1971789fe5e9fe))\n* **l10n:** Update translations from Transifex ([e21d952](https://github.com/nextcloud/mail/commit/e21d9529f8659534c0645ab9b056094af1dafbcb))\n* **l10n:** Update translations from Transifex ([6ee4694](https://github.com/nextcloud/mail/commit/6ee4694cad7f8605e1df3951b9e15b627c611e77))\n* **l10n:** Update translations from Transifex ([8ddec2b](https://github.com/nextcloud/mail/commit/8ddec2b73fee49c931f05fc3e80fd1aa2c369c88))\n* **l10n:** Update translations from Transifex ([7f67183](https://github.com/nextcloud/mail/commit/7f67183afb452d490f705124b98f3e4930c1e3dd))\n* **l10n:** Update translations from Transifex ([646c18a](https://github.com/nextcloud/mail/commit/646c18a82da017dc0d1a0dc86f54015a90932e32))\n* **l10n:** Update translations from Transifex ([ac1afec](https://github.com/nextcloud/mail/commit/ac1afec69835c489c4f71266d8cb66495a57ba4d))\n* **l10n:** Update translations from Transifex ([31a5a3c](https://github.com/nextcloud/mail/commit/31a5a3c4e321f891470bd9b42211d8a0f9280b74))\n* **l10n:** Update translations from Transifex ([d8e8c0a](https://github.com/nextcloud/mail/commit/d8e8c0a7d8b9d256faa8e76e6764ae3342970637))\n* **l10n:** Update translations from Transifex ([ddb6ffb](https://github.com/nextcloud/mail/commit/ddb6ffb4754cf6290aa814e88e89738a2dd1faf3))\n* **l10n:** Update translations from Transifex ([9ab75d1](https://github.com/nextcloud/mail/commit/9ab75d104a0fee24fa02aa31d216fc74b0351726))\n* **l10n:** Update translations from Transifex ([497cb7e](https://github.com/nextcloud/mail/commit/497cb7e54e77cc4c675b43a25aafd57e58b66157))\n* **l10n:** Update translations from Transifex ([b01ef9a](https://github.com/nextcloud/mail/commit/b01ef9ab50e6cdbf1e6a0060c20aaa9cd9ff6186))\n* **l10n:** Update translations from Transifex ([5f70139](https://github.com/nextcloud/mail/commit/5f70139b99c827130cb6c2b58d1b29990eb08762))\n* **l10n:** Update translations from Transifex ([8cc0405](https://github.com/nextcloud/mail/commit/8cc0405371a59dca96eafd2dc5242ddef334e53e))\n* **l10n:** Update translations from Transifex ([3e67a02](https://github.com/nextcloud/mail/commit/3e67a025d0f7d17f11e84384bff2da22091f92d7))\n* **l10n:** Update translations from Transifex ([2956088](https://github.com/nextcloud/mail/commit/29560884296487375d06376251ef50eb20621476))\n* **l10n:** Update translations from Transifex ([2065780](https://github.com/nextcloud/mail/commit/2065780937de85c82a9fcbb4da664689687dfdff))\n* **l10n:** Update translations from Transifex ([c4ddfe3](https://github.com/nextcloud/mail/commit/c4ddfe3aa011b9aec0651ee891b69aaf6ce0774e))\n* **l10n:** Update translations from Transifex ([fdabd4a](https://github.com/nextcloud/mail/commit/fdabd4a217c424faf3a3a84f47fc4836af84d6a9))\n* **l10n:** Update translations from Transifex ([d4f1083](https://github.com/nextcloud/mail/commit/d4f10833dc3f04b45db0027cf3c6804d2295739f))\n* **l10n:** Update translations from Transifex ([1835be7](https://github.com/nextcloud/mail/commit/1835be760385d968bb3b089a454e5c668630d10d))\n* **l10n:** Update translations from Transifex ([f366a5d](https://github.com/nextcloud/mail/commit/f366a5dd0fc3a308f679dfbc96876a70b2d0b081))\n* **l10n:** Update translations from Transifex ([dea6367](https://github.com/nextcloud/mail/commit/dea63678030c407b81d5aaa19bfeee938a3cbdc3))\n* **l10n:** Update translations from Transifex ([f559247](https://github.com/nextcloud/mail/commit/f559247a9a1f3ffc3be1ec9147a3005803796683))\n* **l10n:** Update translations from Transifex ([4535685](https://github.com/nextcloud/mail/commit/4535685d63e02cb95a65db799c7d6be760f7846c))\n* list layout height ([006fe78](https://github.com/nextcloud/mail/commit/006fe78cc1e666ecc57169bededb5cb2824d4514))\n* load-more button alignment ([1a56aa2](https://github.com/nextcloud/mail/commit/1a56aa29f790b9e4866fd3f161729524753a469f))\n* mail heading on settings shouldnt be skipped ([c34fb46](https://github.com/nextcloud/mail/commit/c34fb46e0cfbaf41a756948a8a8ac903ee5aaeeb))\n* mailvelope button colour text ([5aff985](https://github.com/nextcloud/mail/commit/5aff9858bc3096ce1010fa76a448bb1e0ee1b0f1))\n* make accounts property reactive ([6054a9a](https://github.com/nextcloud/mail/commit/6054a9a943dadfe177ff7418e6a1fafc078cbc40))\n* make saving account settings work again ([9740e56](https://github.com/nextcloud/mail/commit/9740e5618fef1b7d51831572dfa82f56f44204fd))\n* moving messages without a message id on servers without UIDPLUS ([1c8a90e](https://github.com/nextcloud/mail/commit/1c8a90ed5f526c05079efb1ffeca373bb0abb4c2))\n* **outbox:** outbox do not render ([31be037](https://github.com/nextcloud/mail/commit/31be037d648adc605e7ea1ec2d16648eea297ad1))\n* prevent invalid return type ([172de5e](https://github.com/nextcloud/mail/commit/172de5e3445b8be9b06ab118e9ebdf6e84a8a21c))\n* recipient length is undefined ([f0b07b8](https://github.com/nextcloud/mail/commit/f0b07b88d96834c3d1ba6b1417800c3ec9ced7ac))\n* remove redendant css ([afd7741](https://github.com/nextcloud/mail/commit/afd774184f731a751240cadcafcaee381180af39))\n* remove source editing plugin ([070013d](https://github.com/nextcloud/mail/commit/070013dc97d053083581305182b6a45e7fcde181))\n* remove unused and broken computed menu property ([2359051](https://github.com/nextcloud/mail/commit/23590514ccc7f8d1cefd6a20bbb7fae11aa6f7a7))\n* rename collapse label ([b36dfb6](https://github.com/nextcloud/mail/commit/b36dfb6b474bcdc231d0ca96ebcde685cdb6842e))\n* **smime:** only accept certificates and keys in file input ([9778add](https://github.com/nextcloud/mail/commit/9778addf9ce767645518c112693d5f6bd804ed46))\n* **smime:** persist sign preference per alias ([4863f96](https://github.com/nextcloud/mail/commit/4863f96d3b75d792d211f9ed28f25db049e9dca2))\n* text block wording / spelling ([891d4dd](https://github.com/nextcloud/mail/commit/891d4dd34b3ea102d6107220853d13bdbb711eb3))\n* **uid:** switch back from unread circle to dot ([0ee8f3c](https://github.com/nextcloud/mail/commit/0ee8f3cf790b722ca49defe5856fdb7c35e0601d))\n* **uid:** use outline erasor icon for clear mailbox action ([dd27fa5](https://github.com/nextcloud/mail/commit/dd27fa5cdb6c06af2cc4d47ff6131a52d3ff115f))\n* **ui:** flip unread icons for envelopes ([3b6f756](https://github.com/nextcloud/mail/commit/3b6f75682ce5686a57d774f55d06215e6dd21574))\n* **ui:** give file pickers a name ([a1a4ca0](https://github.com/nextcloud/mail/commit/a1a4ca0251939d03abd50becdeab23f63a92a61a))\n* **ui:** go back to filled icons for selection and confirmation icons ([1adecd1](https://github.com/nextcloud/mail/commit/1adecd1bd3ab449dd38b358ae8f695ba64798045))\n* **ui:** make composer link attachments icon size wider ([de6ab08](https://github.com/nextcloud/mail/commit/de6ab08dd3c3b6663872ee2c12e5e540e7c12790))\n* **ui:** replace deprecated iframe resizer attribute ([d74cf2d](https://github.com/nextcloud/mail/commit/d74cf2dd7938df3842ed5e85609a37550d55a60b))\n* **ui:** show only drafts with draft prefix ([edba111](https://github.com/nextcloud/mail/commit/edba1114aa1c223331776ea2f53ae330176105ec))\n* **ui:** use filled/outline icon for the important flag ([20c57d9](https://github.com/nextcloud/mail/commit/20c57d9cc273b52b8d0242327f8cab1cab8a96ff))\n* **ui:** use outline icon for archiving actions ([a2fb5d6](https://github.com/nextcloud/mail/commit/a2fb5d640678f3fc0f88acc910a22345abb7b46f))\n* update summarizeMessages-prompt to hide any introduction ([#11278](https://github.com/nextcloud/mail/issues/11278)) ([49c83e4](https://github.com/nextcloud/mail/commit/49c83e4ba32af8b86c9644da35ec9dedfaddec33))\n\n\n### Features\n\n* add more formatting features on ckeditor ([60d0ed6](https://github.com/nextcloud/mail/commit/60d0ed637f2ac15d7af6902bd4afe23af4b13007))\n* add OCS routes for mailbox and mail listing ([0b86510](https://github.com/nextcloud/mail/commit/0b86510877a97236c5f81bbad3bb3a1deb2e657c))\n* Allow disabling of threaded view ([084cc67](https://github.com/nextcloud/mail/commit/084cc6768aa3f118c4b233b68b57eee5d698818d))\n* change mailbox text to folder ([9287321](https://github.com/nextcloud/mail/commit/9287321f9bdf0e5ea9d50b38a0ea927b5061a9ee))\n* **composer:** suggest recipients from own identities ([6fc54b4](https://github.com/nextcloud/mail/commit/6fc54b4c246ce6083fe3b5755e44eb6a134f2132))\n* make message source modal larger ([e397eb3](https://github.com/nextcloud/mail/commit/e397eb385b101e8ed358f8f5fe10b965d3051c7a))\n* **sieve:** create a mail filter from a message ([11b2d07](https://github.com/nextcloud/mail/commit/11b2d070f661c852dfb4f1332e062be3f226bdbe))\n* start loading additional envelopes earlier ([3663164](https://github.com/nextcloud/mail/commit/36631649f354b8ff5d04cf24634de06586a067de))\n* text blocks ([fcbfc63](https://github.com/nextcloud/mail/commit/fcbfc63cca57f2f6bdb0d309b428606193ddca68))\n* thread list shouldnt reload when searching ([665b3dd](https://github.com/nextcloud/mail/commit/665b3dd000d244b450658fed64bc6231c1c25f25))\n* **ui:** switch to outline icons where possible ([e55bf97](https://github.com/nextcloud/mail/commit/e55bf97db580a14d9b218e87cf8f2f23b1be5242))\n\n\n### Performance Improvements\n\n* cache pre-fetched mailboxes on the HTTP level ([0c4ac27](https://github.com/nextcloud/mail/commit/0c4ac2724a525aa52924233713e7f9c5b458f1d0))\n* improve quota loading for accounts ([2a9b9ae](https://github.com/nextcloud/mail/commit/2a9b9aed4229ab702f08f966bd4cb3c2b7d53ea8))\n* prefetch other mailboxes in the background ([2957ec5](https://github.com/nextcloud/mail/commit/2957ec50b375e19633dd6ef4e0b936f160300de1))\n* reduce number of avatar requests ([9e08477](https://github.com/nextcloud/mail/commit/9e08477c5cb515edcdeed81944aca009e902b51d))\n\n\n\n# [5.2.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.0.0-dev.1...v5.2.0-alpha.1) (2025-05-20)\n\n\n### Bug Fixes\n\n* ckeditor buttons dont show up correctly ([567e8b0](https://github.com/nextcloud/mail/commit/567e8b0157793d3ae0e836331bba4ff78749cdcc))\n* **composer:** handling of plain and html bodies ([58c48ad](https://github.com/nextcloud/mail/commit/58c48ad0f20ac1487dcd0cf653b0a3a52506f45c))\n* define appName and app version ([1938df0](https://github.com/nextcloud/mail/commit/1938df0e62cced0244fb3ac364bbb279a86497d8))\n* **deps:** Apply npm audit fix ([c73ec4d](https://github.com/nextcloud/mail/commit/c73ec4d1596571bf08ee6d3e2b19cd55efba4217))\n* **deps:** bump @iframe-resizer/child from 5.4.2 to ^5.4.4 (main) ([#10981](https://github.com/nextcloud/mail/issues/10981)) ([42eaa20](https://github.com/nextcloud/mail/commit/42eaa20014667443471af4546c64b4ab5be14fd1))\n* **deps:** bump @iframe-resizer/child from 5.4.4 to ^5.4.5 (main) ([#11020](https://github.com/nextcloud/mail/issues/11020)) ([a40ed7b](https://github.com/nextcloud/mail/commit/a40ed7bbcef0c6d73f8ef805122f5942031a63d3))\n* **deps:** bump @iframe-resizer/child from 5.4.5 to ^5.4.6 (main) ([#11044](https://github.com/nextcloud/mail/issues/11044)) ([1059d5a](https://github.com/nextcloud/mail/commit/1059d5a241d9305d17ce7a1e6a26901c6c22f9f9))\n* **deps:** bump @iframe-resizer/parent from 5.4.3 to ^5.4.4 (main) ([#10982](https://github.com/nextcloud/mail/issues/10982)) ([e6b685c](https://github.com/nextcloud/mail/commit/e6b685c35676761d1201e743804ca6418c385234))\n* **deps:** bump @iframe-resizer/parent from 5.4.4 to ^5.4.5 (main) ([#11021](https://github.com/nextcloud/mail/issues/11021)) ([c9f315b](https://github.com/nextcloud/mail/commit/c9f315ba6073d98b57893d0f91a1296b118569a1))\n* **deps:** bump @iframe-resizer/parent from 5.4.5 to ^5.4.6 (main) ([#11045](https://github.com/nextcloud/mail/issues/11045)) ([6d3e064](https://github.com/nextcloud/mail/commit/6d3e06430f71f097670a611402d398797f36e960))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 (main) ([#11138](https://github.com/nextcloud/mail/issues/11138)) ([3377509](https://github.com/nextcloud/mail/commit/33775097ecf80c2ae0ef3eee89c209a24077b9d6))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.2.0 ([4fff529](https://github.com/nextcloud/mail/commit/4fff529156ca9c8892bb3c7dc93b230d07b92927))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 (main) ([#11098](https://github.com/nextcloud/mail/issues/11098)) ([2df3423](https://github.com/nextcloud/mail/commit/2df3423153dc8aad40dfc9a54227f049711f58a9))\n* **deps:** bump @nextcloud/vue from 8.23.1 to ^8.25.1 ([3d96e54](https://github.com/nextcloud/mail/commit/3d96e54a032a4e089aa70bdccad002246450aab9))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([986ca1c](https://github.com/nextcloud/mail/commit/986ca1c273427030d1c90b020b28d72a6bd77aaf))\n* **deps:** bump @nextcloud/vue from 8.26.0 to ^8.26.1 ([d66a6b0](https://github.com/nextcloud/mail/commit/d66a6b09eb906f7e7939fad6e089e7c3872e0db4))\n* **deps:** bump bytestream/horde-imap-client from 2.33.5 to ^2.33.6 (main) ([#11099](https://github.com/nextcloud/mail/issues/11099)) ([ebdb084](https://github.com/nextcloud/mail/commit/ebdb084abfb774d7f18554091c659585cf6b369d))\n* **deps:** bump calendar-js and timezones ([e8a79d7](https://github.com/nextcloud/mail/commit/e8a79d7b5cbf888fd242aac68468c930af382a9e))\n* **deps:** bump core-js from 3.41.0 to ^3.42.0 (main) ([#11092](https://github.com/nextcloud/mail/issues/11092)) ([c0c4beb](https://github.com/nextcloud/mail/commit/c0c4bebfc0fca4153023e639d6d49ae794c2745d))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.5 (main) ([#11005](https://github.com/nextcloud/mail/issues/11005)) ([6a72602](https://github.com/nextcloud/mail/commit/6a726028d9cc8412d4e969c1e12fbced0ab7a1f6))\n* **deps:** bump iframe-resizer from 5.3.3 to ^5.4.6 (main) ([#11093](https://github.com/nextcloud/mail/issues/11093)) ([e4f36be](https://github.com/nextcloud/mail/commit/e4f36be14c6b9d51a84f85c05ee949cf59d21abd))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.1 to ^6.4.0 (main) ([#11106](https://github.com/nextcloud/mail/issues/11106)) ([aaae668](https://github.com/nextcloud/mail/commit/aaae668160421df359e699641e9f7081b8a73483))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to v2 ([e716eea](https://github.com/nextcloud/mail/commit/e716eeaa04ef5618b824117e54a92b4b6e6207f8))\n* **deps:** bump stylelint from 16.16.0 to ^16.19.1 (main) ([#11102](https://github.com/nextcloud/mail/issues/11102)) ([eec3762](https://github.com/nextcloud/mail/commit/eec376250ee2b1a4042cb2268ae0005928b0a504))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 44.2.1 to 44.2.1 ([1684833](https://github.com/nextcloud/mail/commit/16848331e0896068e6858a863ffa77171e4edbe2))\n* **deps:** update ckeditor dev utils to 44 ([22a8e56](https://github.com/nextcloud/mail/commit/22a8e56dd32edb7bf973a4b91c300e33229c9c41))\n* **deps:** update vulnerable babel packages ([4c9d2c1](https://github.com/nextcloud/mail/commit/4c9d2c1de566ec41f38c71aef6c800223e48e994))\n* **dns:** Update public suffix list ([19806ea](https://github.com/nextcloud/mail/commit/19806ea55be671cad2f5050f804e3be7e651ce97))\n* **dns:** Update public suffix list ([495a20c](https://github.com/nextcloud/mail/commit/495a20cb6440b425cfcff96449ec20f5a0a7e51a))\n* **dns:** Update public suffix list ([228c719](https://github.com/nextcloud/mail/commit/228c71973ea28c614e5e8835b0426365fe031a7a))\n* don't show important or unread emails in trash ([ce2f949](https://github.com/nextcloud/mail/commit/ce2f9497f9a76c27d550a9bb9177eb4067a5eee9))\n* handle recurring events and show better message to user ([a7dce92](https://github.com/nextcloud/mail/commit/a7dce926c8a649b7c980394b29b52315a96d0c65))\n* **imap:** handle password decryption exception ([033433b](https://github.com/nextcloud/mail/commit/033433bc497ef14f33417ddbee93e6252578032a))\n* **imip:** use default calendar if possible ([3cdd8d3](https://github.com/nextcloud/mail/commit/3cdd8d3fcf92d0764f4c94c6014348aa0cf160dc))\n* **l10n:** Update translations from Transifex ([452383d](https://github.com/nextcloud/mail/commit/452383da63f708a1579fc691e4b891c14df9792a))\n* **l10n:** Update translations from Transifex ([df74690](https://github.com/nextcloud/mail/commit/df746905e779c8875c00ad5b929310e5333717be))\n* **l10n:** Update translations from Transifex ([6fbdad0](https://github.com/nextcloud/mail/commit/6fbdad0de9ec3c5175492a27d6f759f51aedd4a6))\n* **l10n:** Update translations from Transifex ([e8d3dbf](https://github.com/nextcloud/mail/commit/e8d3dbf6e5aba9be730f8fccd97bae7bb91de959))\n* **l10n:** Update translations from Transifex ([ccc4223](https://github.com/nextcloud/mail/commit/ccc422353ca91583ff63470f13c0c6c0993ef403))\n* **l10n:** Update translations from Transifex ([a51a5e0](https://github.com/nextcloud/mail/commit/a51a5e0fa825e5dcae81f92a08ce7dfef053c413))\n* **l10n:** Update translations from Transifex ([3de2615](https://github.com/nextcloud/mail/commit/3de2615c20d7e541b5706c2d5e221a09a4b6badf))\n* **l10n:** Update translations from Transifex ([a74e4d9](https://github.com/nextcloud/mail/commit/a74e4d93b0c9e4934eb12565133faf905df0e570))\n* **l10n:** Update translations from Transifex ([6c19578](https://github.com/nextcloud/mail/commit/6c195780892e916c360a07fd191ad1196e4878bf))\n* **l10n:** Update translations from Transifex ([0874560](https://github.com/nextcloud/mail/commit/08745605bbaa978259473cdccc5d3769d760b341))\n* **l10n:** Update translations from Transifex ([7bbcb29](https://github.com/nextcloud/mail/commit/7bbcb294612776ee56f685335b2376f0f682bc20))\n* **l10n:** Update translations from Transifex ([bae559f](https://github.com/nextcloud/mail/commit/bae559f86be5e14a01803ab14fd4e3d8620bb93c))\n* **l10n:** Update translations from Transifex ([20710d4](https://github.com/nextcloud/mail/commit/20710d41abedcf8a3a3fc0e05fd1a1fcfd1cb3a1))\n* **l10n:** Update translations from Transifex ([df20def](https://github.com/nextcloud/mail/commit/df20def233fe29f47a2a9f1a190a56a047ac88be))\n* **l10n:** Update translations from Transifex ([d07aed4](https://github.com/nextcloud/mail/commit/d07aed4ef3323e63d52b38eeb8caa429998d6ca1))\n* **l10n:** Update translations from Transifex ([ecbb3da](https://github.com/nextcloud/mail/commit/ecbb3dadf5ec8618e5dd539b2c229611c6a87a7f))\n* **l10n:** Update translations from Transifex ([cfce105](https://github.com/nextcloud/mail/commit/cfce1058c549eacb5b88f2baaaadc8dd37c8c35a))\n* **l10n:** Update translations from Transifex ([82fabe2](https://github.com/nextcloud/mail/commit/82fabe2fb5b1df86e12f9b7ac5c7b5df8a421fe0))\n* **l10n:** Update translations from Transifex ([a445ac0](https://github.com/nextcloud/mail/commit/a445ac09c8bdf5ae58e8a3ee9f6a4eb07b923159))\n* **l10n:** Update translations from Transifex ([c96ec6e](https://github.com/nextcloud/mail/commit/c96ec6e3fd719734c51430a42a680dbb7dc1b279))\n* **l10n:** Update translations from Transifex ([c59cf84](https://github.com/nextcloud/mail/commit/c59cf8449f9cef249443fcc911acb531bb386f0f))\n* **l10n:** Update translations from Transifex ([49fbc16](https://github.com/nextcloud/mail/commit/49fbc16089325d4a549a4a20e7c6f9a98c5dc1e4))\n* **l10n:** Update translations from Transifex ([a59c212](https://github.com/nextcloud/mail/commit/a59c212ebf9905bc10b12f706e1d096cc080e18d))\n* **l10n:** Update translations from Transifex ([fece38e](https://github.com/nextcloud/mail/commit/fece38e43091817273dbdfcfb75214e005fbed3f))\n* **l10n:** Update translations from Transifex ([abf1c6b](https://github.com/nextcloud/mail/commit/abf1c6b2b30939dc2ea742ae81653e537c336485))\n* **l10n:** Update translations from Transifex ([4a35bdd](https://github.com/nextcloud/mail/commit/4a35bdd379f1459228a47611ea0e03a37d28f41d))\n* **l10n:** Update translations from Transifex ([8a205d0](https://github.com/nextcloud/mail/commit/8a205d087885f74f7af092bf45d6e2d2d9ddc669))\n* **l10n:** Update translations from Transifex ([39faeeb](https://github.com/nextcloud/mail/commit/39faeebe71789e0c7babe62cad072d439e6e1622))\n* **l10n:** Update translations from Transifex ([835327e](https://github.com/nextcloud/mail/commit/835327eaa4b4fa33a060fcb8a2e760f36c7e0335))\n* mark envelope as unseen via shortcut ([35f1d1d](https://github.com/nextcloud/mail/commit/35f1d1dacada93a1198b82b3e32128467cfa45d2))\n* **mime:** ignore HTML parsing errors consistently ([0b682eb](https://github.com/nextcloud/mail/commit/0b682eb1ee1d5b61d818f478c4e457dd5391c3f7))\n* moving nested mailboxes ([41f3378](https://github.com/nextcloud/mail/commit/41f3378cbc6c2f10a6716e8d8f75eee2f3a5a878))\n* patchAccountiMutation is not defined ([a33f3b7](https://github.com/nextcloud/mail/commit/a33f3b7bdb085f0c9d8f14a1afcad7bead4858fa))\n* **phishing:** strip exactly 1 character from the end of a link string to remove brackets ([c646917](https://github.com/nextcloud/mail/commit/c64691795b497a1ab0961d4c7e9830153be43b2a))\n* prevent dragging mailboxes ([7b69ed3](https://github.com/nextcloud/mail/commit/7b69ed338b500233eb7f830a972b964c774977f0))\n* preview enhancement process job does not process messages ([680b90d](https://github.com/nextcloud/mail/commit/680b90dc7d5c7843f2755a9e60722eecc042f46d))\n* show submailboxes for filtering ([4874ee4](https://github.com/nextcloud/mail/commit/4874ee4bf7f3192e7dc98ee9165773d74e894c32))\n* show warning when creating a mailbox fails ([ecc47e0](https://github.com/nextcloud/mail/commit/ecc47e05331204f07e6ed8d4dc62eca1c55e6922))\n* **smime:** handle encoding properly when signing and encrypting ([f12ffe5](https://github.com/nextcloud/mail/commit/f12ffe50a6ebae6501d9aa798fb3959884693755))\n* **smime:** use proper binary encoding when signing messages ([646bdae](https://github.com/nextcloud/mail/commit/646bdae4ae7373783069eb6d83fa2c73d22f9ea5))\n* **ui:** handle error when saving email attachments to Files ([e4a625c](https://github.com/nextcloud/mail/commit/e4a625c459757f9622e0e31ab369ec10732f545d))\n* Undefined array key issue ([00e65cf](https://github.com/nextcloud/mail/commit/00e65cf8d8c167693662d3c7a9774988ae8f6cfe))\n* use alias name for from header ([c7a1724](https://github.com/nextcloud/mail/commit/c7a17248fd33d21cb745eda46b400faa24be2cb6))\n\n\n### Features\n\n* close modal on send ([073038d](https://github.com/nextcloud/mail/commit/073038dd4bb79c654e64167bd93416af908b4337))\n* enable account debugging for sieve ([3a9385e](https://github.com/nextcloud/mail/commit/3a9385e058d614e59dd56cb1dfdae64a7fac412c))\n* per account imap and smtp debugging ([95a96c5](https://github.com/nextcloud/mail/commit/95a96c51ea77244bb9a946a9a91a554e4907ac8f))\n\n\n### Performance Improvements\n\n* don't show skeleton for cached mailboxes ([d5b5ae5](https://github.com/nextcloud/mail/commit/d5b5ae5eb0b05b41be6656edebc9707b616d5974))\n* **imap:** avoid double login during mailbox sync ([221404a](https://github.com/nextcloud/mail/commit/221404a4108f09d3314535e3dcab80d046a01d7d))\n* reuse a single imap client for the whole send chain ([01ea8be](https://github.com/nextcloud/mail/commit/01ea8bed7188145b713dbab198fc974f8f20876b))\n* skip message skeleton if it is cached ([cd2603d](https://github.com/nextcloud/mail/commit/cd2603d7610c883785acca620fde2703668b0c8d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* **db:** Do not JOIN recipients when fetching the latest messages ([b6e5255](https://github.com/nextcloud/mail/commit/b6e52559fa1fec5eee700cd4a53d57f7390f1538))\n* **deps:** bump @iframe-resizer/child from 5.3.3 to ^5.4.2 (main) ([#10955](https://github.com/nextcloud/mail/issues/10955)) ([187a963](https://github.com/nextcloud/mail/commit/187a963720946c3ddfd734507efd1f9601c216c4))\n* **deps:** bump @iframe-resizer/parent from 5.3.3 to ^5.4.3 (main) ([#10956](https://github.com/nextcloud/mail/issues/10956)) ([b9a7373](https://github.com/nextcloud/mail/commit/b9a73732f10d9bf883c006b00a9fc6c55c0b5780))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 (main) ([#10926](https://github.com/nextcloud/mail/issues/10926)) ([9d384ce](https://github.com/nextcloud/mail/commit/9d384ce3b9e665b1b9e3f0c4167758ed955c5905))\n* **deps:** bump sabberworm/php-css-parser from 8.7.0 to ^8.8.0 (main) ([#10927](https://github.com/nextcloud/mail/issues/10927)) ([998aad8](https://github.com/nextcloud/mail/commit/998aad8167e5eeeb0f8bbaab8379d2a2318f9156))\n* **dns:** Update public suffix list ([0d2f328](https://github.com/nextcloud/mail/commit/0d2f32877025dd52b16aa06e99f4494c90ce7d89))\n* dont summerize empty messages ([24f44f4](https://github.com/nextcloud/mail/commit/24f44f48a8e0af3a26ad90cd038901da0ca8b9da))\n* **imap:** Avoid OOM when syncing sparse mailboxes ([4d288d1](https://github.com/nextcloud/mail/commit/4d288d1096bc8cec4ff2cde38735d09b6eab922c))\n* multiselect when you hold shift ([1e40683](https://github.com/nextcloud/mail/commit/1e40683ec09b02b0269d73fe2d0236691335b8cf))\n* printing email threads and singular emails ([3b22ed5](https://github.com/nextcloud/mail/commit/3b22ed5752c0065c50643eb8591661f41b06df65))\n* translation strings in printing feature ([#10944](https://github.com/nextcloud/mail/issues/10944)) ([b293310](https://github.com/nextcloud/mail/commit/b29331032977013e62cae510d531338922703037))\n\n\n### Features\n\n* **deps:** Add PHP8.4 support ([9ce0e6d](https://github.com/nextcloud/mail/commit/9ce0e6d5923ebbcf7dac6f2423d18f172b0d6bb8))\n* **deps:** Add PHP8.4 support ([eb75307](https://github.com/nextcloud/mail/commit/eb753074fa5e6b8efd2bac2366fc3336e597984d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* add title for composer actions ([d8095ff](https://github.com/nextcloud/mail/commit/d8095ffbc1f4f9987a939b51001b53a0777e3cd7))\n* Adjust TaskProcessingListener ([4ee353b](https://github.com/nextcloud/mail/commit/4ee353bea1476e2f9aeaacd5746dd7529efc0ca5))\n* Adjust TaskProcessingListener Again ([f0758c8](https://github.com/nextcloud/mail/commit/f0758c8ee6c9c9813abcc8eb54f6d912063da868))\n* allow to send attachment without setting disposition ([5fe5275](https://github.com/nextcloud/mail/commit/5fe5275c8b8b5ea648b39e346b0e1b88693e814b))\n* apostrophe issue ([032a0bf](https://github.com/nextcloud/mail/commit/032a0bf02617df793542156a0c1ded805b61d08b))\n* better help text when sieve is not enabled ([a7177b3](https://github.com/nextcloud/mail/commit/a7177b32fa882dcea0bb3ac2f015cfc8d8594073))\n* change status code from 404 to 204 for missing avatars ([92bf4ef](https://github.com/nextcloud/mail/commit/92bf4ef422c3d4fcdde0e3538dd81e020b008346))\n* **CKEditor:** show mentions ([974e964](https://github.com/nextcloud/mail/commit/974e96437796c6ba9f1c5c40886a2357f2b39f96))\n* **db:** Allow long references ([3814786](https://github.com/nextcloud/mail/commit/38147868b63719c666ba6dea05b9f55deef91c46))\n* **db:** Catch message IDs that are too long ([147d694](https://github.com/nextcloud/mail/commit/147d69436a56ee645880575cbaf0a458096d038c))\n* decoding preview texts ([945b4a2](https://github.com/nextcloud/mail/commit/945b4a2b3156ce13b4dc8c7fd4f86a121146a6c1))\n* deprecation warning ([9e6fd29](https://github.com/nextcloud/mail/commit/9e6fd2931d9c77e62658f2e491d963f663cfc622))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 (main) ([#10789](https://github.com/nextcloud/mail/issues/10789)) ([93f5fa1](https://github.com/nextcloud/mail/commit/93f5fa11823140870f6ce6b472d158a9b9628124))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.2 (main) ([#10595](https://github.com/nextcloud/mail/issues/10595)) ([77cf0ed](https://github.com/nextcloud/mail/commit/77cf0ed65e1f9b8b350b0ea06bbf1b57e690b897))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([7ab0d99](https://github.com/nextcloud/mail/commit/7ab0d996aee86ebb342cc0d32913191d59b11095))\n* **deps:** bump @pinia/testing from 0.1.7 to ^0.1.7 ([354d684](https://github.com/nextcloud/mail/commit/354d684e2ae3411b577178c613ce3a7d6fe7e3ef))\n* **deps:** bump address-rfc2822 from 2.2.2 to ^2.2.3 (main) ([#10597](https://github.com/nextcloud/mail/issues/10597)) ([d2d654d](https://github.com/nextcloud/mail/commit/d2d654d6dd18333610a3ba5e5f8df29d23c441e0))\n* **deps:** bump bytestream/horde-imap-client from 2.33.3 to ^2.33.4 (main) ([#10598](https://github.com/nextcloud/mail/issues/10598)) ([54150fd](https://github.com/nextcloud/mail/commit/54150fd0df374a258c19b0193781f48e82bd056c))\n* **deps:** bump bytestream/horde-imap-client from 2.33.4 to ^2.33.5 (main) ([#10828](https://github.com/nextcloud/mail/issues/10828)) ([984b3bf](https://github.com/nextcloud/mail/commit/984b3bf6d8e139f106c51840ab5489714ddf7a81))\n* **deps:** Bump ckeditor from 38.1.1 t0 39.0.2 ([0aee4df](https://github.com/nextcloud/mail/commit/0aee4dfd312620a3a197fa0787379f4cfb4031dc))\n* **deps:** bump ckeditor from v40 to v41 ([f7dac82](https://github.com/nextcloud/mail/commit/f7dac82d0dd6631d1f7f1ddabac0371e6a686b5a))\n* **deps:** bump ckeditor v41 to v43 ([5482184](https://github.com/nextcloud/mail/commit/5482184cd6c77060c19dcfdf1b49134f53fabf7b))\n* **deps:** bump ckeditor v43 to latest ([89d5a21](https://github.com/nextcloud/mail/commit/89d5a210ccdbe07dde8547cc766d5be42ae4547f))\n* **deps:** bump core-js from 3.39.0 to ^3.40.0 (main) ([#10623](https://github.com/nextcloud/mail/issues/10623)) ([f8d8b04](https://github.com/nextcloud/mail/commit/f8d8b040b0bc70ed6c7e369fb6cb5d329ab20b28))\n* **deps:** bump core-js from 3.40.0 to ^3.41.0 (main) ([#10819](https://github.com/nextcloud/mail/issues/10819)) ([e6bafb3](https://github.com/nextcloud/mail/commit/e6bafb371adac9e48f5443a812a91859b1125f99))\n* **deps:** bump dompurify from 3.2.3 to ^3.2.3 (main) ([#10618](https://github.com/nextcloud/mail/issues/10618)) ([7f28b26](https://github.com/nextcloud/mail/commit/7f28b267f5727e92a754eeadec5302bca3a413b0))\n* **deps:** bump dompurify from 3.2.3 to v3.2.4 (main) ([#10702](https://github.com/nextcloud/mail/issues/10702)) ([26f784f](https://github.com/nextcloud/mail/commit/26f784ff20ae107cdc5a29a310314ea4b2e96455))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.4 (main) ([#10790](https://github.com/nextcloud/mail/issues/10790)) ([58d636c](https://github.com/nextcloud/mail/commit/58d636c26f40ae77bf2bd99276dfd0167448199a))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 (main) ([#10619](https://github.com/nextcloud/mail/issues/10619)) ([18c6354](https://github.com/nextcloud/mail/commit/18c6354b9214d9e74c028d911231c8ffac78ae85))\n* **deps:** bump psr/log from 3.0.2 to ^3.0.2 (main) ([#10806](https://github.com/nextcloud/mail/issues/10806)) ([629cb59](https://github.com/nextcloud/mail/commit/629cb59f7204d21c3f6c1bcca139f844916695be))\n* **deps:** bump stylelint from 16.11.0 to ^16.15.0 (main) ([#10820](https://github.com/nextcloud/mail/issues/10820)) ([e8371d3](https://github.com/nextcloud/mail/commit/e8371d3faa11966de99e3d0fb61096473163a72b))\n* **deps:** bump stylelint from 16.15.0 to ^16.16.0 (main) ([#10908](https://github.com/nextcloud/mail/issues/10908)) ([9d66ff5](https://github.com/nextcloud/mail/commit/9d66ff53cd49521768f52e64545575188027b414))\n* **deps:** Do not ship psr/log ([2f8f9bd](https://github.com/nextcloud/mail/commit/2f8f9bdbd9ec6c40fd8fe26e340da9279d74097f))\n* detect imip messages from outlook.com ([b965355](https://github.com/nextcloud/mail/commit/b96535569a5ffdf59292f8032896f4e5e5662f4c))\n* **dns:** Update public suffix list ([76cc21f](https://github.com/nextcloud/mail/commit/76cc21f94b2af56064341774f2612325dd171647))\n* **dns:** Update public suffix list ([692512b](https://github.com/nextcloud/mail/commit/692512bf8f0994985c552c70e254dd301f947411))\n* **dns:** Update public suffix list ([e981844](https://github.com/nextcloud/mail/commit/e981844ec685867fccb35fe2075e9794c40a9d67))\n* go back warining discards the reply text ([72d6a53](https://github.com/nextcloud/mail/commit/72d6a532be1dd2852612a194801f2654257206de))\n* handle 204 response ([0014941](https://github.com/nextcloud/mail/commit/0014941d48c199ced1d23bdca05fb09af4c6e572))\n* handle utf-8 strings correctly in the link detection ([d219cee](https://github.com/nextcloud/mail/commit/d219cee47b6619e27300b8ce3238b834ea946e3b))\n* harden phishing detection against missing and malformed headers ([f8338e6](https://github.com/nextcloud/mail/commit/f8338e6fa6520b5d13823af38c0be704d141627c))\n* html5 errors ([fb4fae1](https://github.com/nextcloud/mail/commit/fb4fae1863ccea0aec70bd187748b02710f4bac0))\n* **imap:** Sync mailboxes without a status ([2317686](https://github.com/nextcloud/mail/commit/2317686c91a4ec85d7e7b63914b89934cb176bf3))\n* import for getTimezoneManager ([18589f7](https://github.com/nextcloud/mail/commit/18589f703ca24cbbd39d14abe972805b7d73bb1f))\n* **mention:** Do not force SAB ([bad5a00](https://github.com/nextcloud/mail/commit/bad5a00ac570ec6af41bf531acf8a78adf96ede9))\n* **message-summary:** respect admin config ([a7434c4](https://github.com/nextcloud/mail/commit/a7434c40ec59ef928c5baaebdd77cd51bcad0b6a))\n* messagen content escaping message element ([8089ccb](https://github.com/nextcloud/mail/commit/8089ccb0f3915d57520458ecf0ce8729341cfbd4))\n* migrate preferences to initial state ([0cfce5c](https://github.com/nextcloud/mail/commit/0cfce5ce991eb830d3953d870b957ac616d012cb))\n* **migration:** make misc migrations idempotent ([d856a60](https://github.com/nextcloud/mail/commit/d856a6005c453e2cd91666941897aed3ca9cbf33))\n* outbox message not being cleared after sending ([93a5c5a](https://github.com/nextcloud/mail/commit/93a5c5a1f7b5aa32a7269ff5f4a83fd0c5aa6ea2))\n* **phishing:** Do not force the SAB ([78c2c4c](https://github.com/nextcloud/mail/commit/78c2c4cdcc08e1440a8c1b5e1073f99037ef2b4b))\n* **phishing:** Uninitialized string offset error ([fdbbc62](https://github.com/nextcloud/mail/commit/fdbbc623637f94a326f1b90166f54be8d176d792))\n* recipient label should not contain email address ([3a0ab5a](https://github.com/nextcloud/mail/commit/3a0ab5a1f131a4ae039dd43da84793f8edfff9b1))\n* reloading recipeint info when you expand and collapse the composer ([9b213ec](https://github.com/nextcloud/mail/commit/9b213ecb7a85ec22856faf345bbd582bca43c5e3))\n* remove photo property from groups integration ([66ddbd3](https://github.com/nextcloud/mail/commit/66ddbd32d9deb88d46f8e7afbd9949107ed74f06))\n* reset filter does not work ([f0e847b](https://github.com/nextcloud/mail/commit/f0e847bb47d993ce1c7cfa2b00898da14aac36fb))\n* shorten ai summaries to fit in message list better ([b28777c](https://github.com/nextcloud/mail/commit/b28777c4d49abbcec62e8a5b4fbe0c2170c51e8c))\n* show the email address as subname ([0b50b3a](https://github.com/nextcloud/mail/commit/0b50b3abde5f600e905d9386c4a1b4c091e95409))\n* **summarizeMessages:** use TextToText ([40ab10f](https://github.com/nextcloud/mail/commit/40ab10fc71eeadc30f0c3d2fcc3f6fd18d9551d9))\n* **Thread:** add error message for emails not able to be opened ([691c33e](https://github.com/nextcloud/mail/commit/691c33e687fced93cda00dc926c2dbb316385990))\n* throwing errors in ai intergration frontend service ([d8e074c](https://github.com/nextcloud/mail/commit/d8e074c75a43f41867a9ed4595a59883a60a7ff8))\n* user must scroll to view most recent message in thread ([23a544b](https://github.com/nextcloud/mail/commit/23a544bc60c4d020a783ea303f0703985e913414))\n\n\n### Features\n\n* add warning when the message has no subject ([7eea2ac](https://github.com/nextcloud/mail/commit/7eea2ac3fce6da478dceef706148ce361dd0724c))\n* check connection performance of mail service ([800e964](https://github.com/nextcloud/mail/commit/800e964c110e38411c1d7478f43abec2b54934c6))\n* **deps:** Add Nextcloud 32 support ([2c026a0](https://github.com/nextcloud/mail/commit/2c026a0af96e9645198caa356b790926becfffb2))\n* **ocs:** list accounts and aliases of current user ([8122306](https://github.com/nextcloud/mail/commit/812230641b07d8de68985e222a7c0e2e6b726c7d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n* setup check for mail transport php-mail ([d24a009](https://github.com/nextcloud/mail/commit/d24a0090a3571961b2029a99508c13c3980afae1))\n\n\n\n# [4.2.0-beta3](https://github.com/nextcloud/mail/compare/v4.2.0-beta1...v4.2.0-beta3) (2025-01-16)\n\n\n### Bug Fixes\n\n* add ability to send alternate text (html and plain) ([3165f07](https://github.com/nextcloud/mail/commit/3165f07ffbb8fcd7f1d6feeacede0530641ce6b0))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.1 (main) ([#10566](https://github.com/nextcloud/mail/issues/10566)) ([44b0c76](https://github.com/nextcloud/mail/commit/44b0c765bd5678d71d22aa5ee4b7f7c4d78fc5bc))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([280b73b](https://github.com/nextcloud/mail/commit/280b73bedd386092b09743067925506d06e3b5e1))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([b72df2e](https://github.com/nextcloud/mail/commit/b72df2ec322eca7dbd58676be2c5b32035ab0b0d))\n* **dns:** Update public suffix list ([63f9e66](https://github.com/nextcloud/mail/commit/63f9e66a9878f28ed337e04a64aae12bbc68c782))\n* **translationService:** correct API reading ([19baf3e](https://github.com/nextcloud/mail/commit/19baf3e8b6191a4d39e1cf21f79c8718a5a025c9))\n\n\n\n# [4.2.0-beta1](https://github.com/nextcloud/mail/compare/v4.2.0-alpha2...v4.2.0-beta1) (2025-01-14)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([879476b](https://github.com/nextcloud/mail/commit/879476b228b6ca8830e4715f7afd04a294cf7006))\n* **deps:** Apply npm audit fix ([f4eaffb](https://github.com/nextcloud/mail/commit/f4eaffbfde5ebfe6724cfe8498cb157de126ce41))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.22.0 ([1c577e4](https://github.com/nextcloud/mail/commit/1c577e48eacc2206ea8cee427b9336fe2ea4e1b2))\n* empty content position ([bd9de95](https://github.com/nextcloud/mail/commit/bd9de953253505de1a13ec4493f7211752e98dc4))\n* Restrict allowed JSON response HTTP codes ([5620710](https://github.com/nextcloud/mail/commit/56207107a75947be74188779c1f6bd0bbd5958d9))\n\n\n### Features\n\n* Add translation capabilities to mail ([638ecc5](https://github.com/nextcloud/mail/commit/638ecc5df4a7d63a7b76e0abd1721a895bd80146))\n\n\n### Performance Improvements\n\n* **ui:** Load avatar URLs with low priority ([23551cf](https://github.com/nextcloud/mail/commit/23551cf8a8bd9a4986987c13e4903793bb63e2b7))\n\n\n\n# [4.2.0-alpha1](https://github.com/nextcloud/mail/compare/v4.0.0-beta2...v4.2.0-alpha1) (2025-01-03)\n\n\n### Bug Fixes\n\n* accept avatars with image/vnd.microsoft.icon mime types ([d6cf286](https://github.com/nextcloud/mail/commit/d6cf286531011d087344e5586c52be98a575fd73))\n* **AccountForm:** RTL support ([c4dd175](https://github.com/nextcloud/mail/commit/c4dd175f77cdaa6c276d1a67badceb4f1698ed38))\n* add null check for sender in imipservice ([2885f62](https://github.com/nextcloud/mail/commit/2885f62f36773d090d839368cc1ed28a92c122e7))\n* **avatar:** Use Nextcloud HTTP client for favicons ([eee2d6a](https://github.com/nextcloud/mail/commit/eee2d6a23bc65a8d687c8eb5eba8f59688492fb9))\n* Center envelope header avatar ([1324d1e](https://github.com/nextcloud/mail/commit/1324d1e98fbd1d3e697f511fc027dc4631f96301))\n* CKEditor translations ([22415b0](https://github.com/nextcloud/mail/commit/22415b020db15084db5c6f51c72e0e617f851e5f))\n* **Composer:** rtl support ([e16a6e1](https://github.com/nextcloud/mail/commit/e16a6e11749db28db11f4e04237adabea951891f))\n* **contactsintegration:** Limit number of matches ([ada36b8](https://github.com/nextcloud/mail/commit/ada36b8e804e51d39ff439965e579f949c4f6fd8))\n* **contactsintegration:** Limit number of search results ([b02921e](https://github.com/nextcloud/mail/commit/b02921e5ec724cb3de0b50e520ca780be703c42e))\n* create mailbox doesnt reset after saving ([e7da6c7](https://github.com/nextcloud/mail/commit/e7da6c7f9ff3b6f7cc89531e1595e7ebfdb91481))\n* **deps:** Apply npm audit fix ([91bbac9](https://github.com/nextcloud/mail/commit/91bbac944db78776bc98b2b28c8b35fb0e382b00))\n* **deps:** Apply npm audit fix ([a77c8e0](https://github.com/nextcloud/mail/commit/a77c8e0a7ee25c64e97ae71383472a757476ad14))\n* **deps:** Apply npm audit fix ([40c782b](https://github.com/nextcloud/mail/commit/40c782bf3114e4e3f4ca0b0ddce766ff90aebc9a))\n* **deps:** Apply npm audit fix ([dcd3c37](https://github.com/nextcloud/mail/commit/dcd3c3725e01c1353a4e8c31f4bd2410ab3452d5))\n* **deps:** Apply npm audit fix ([1c67e7d](https://github.com/nextcloud/mail/commit/1c67e7d93387089666bdc4cbc98ec5f391a12925))\n* **deps:** Apply npm audit fix ([84a6de9](https://github.com/nextcloud/mail/commit/84a6de9472a62db5200fb5e46c337a8a29840f87))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([8a8f6d4](https://github.com/nextcloud/mail/commit/8a8f6d4b9e55798caa9d44f497c231ba6b3afa04))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 (main) ([#10212](https://github.com/nextcloud/mail/issues/10212)) ([cfbda53](https://github.com/nextcloud/mail/commit/cfbda53f7c71dd799c5e0bae8ff654d181278e95))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 (main) ([#10265](https://github.com/nextcloud/mail/issues/10265)) ([e3ad554](https://github.com/nextcloud/mail/commit/e3ad55408648f12843a44098363d28205020c156))\n* **deps:** bump @nextcloud/dialogs from 5.3.6 to ^5.3.7 (main) ([#10061](https://github.com/nextcloud/mail/issues/10061)) ([c1965b1](https://github.com/nextcloud/mail/commit/c1965b19e1b2106221ff19e9fd480183297a9412))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to ^5.3.8 (main) ([#10354](https://github.com/nextcloud/mail/issues/10354)) ([066dda1](https://github.com/nextcloud/mail/commit/066dda15dbe2c50ea25682b860221598ecae6658))\n* **deps:** bump @nextcloud/files from 3.9.0 to ^3.9.0 (main) ([#10213](https://github.com/nextcloud/mail/issues/10213)) ([42816ed](https://github.com/nextcloud/mail/commit/42816ed37c4475856e137c435446cfd3d11a9978))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 (main) ([#10375](https://github.com/nextcloud/mail/issues/10375)) ([30a9617](https://github.com/nextcloud/mail/commit/30a96176b5160e8b00c645bc2ec05f438548c83b))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 (main) ([#10303](https://github.com/nextcloud/mail/issues/10303)) ([a03b721](https://github.com/nextcloud/mail/commit/a03b72138cf7c02b08e4a31771a19da5aa10e4e9))\n* **deps:** bump @nextcloud/vue from 8.16.0 to ^8.17.1 ([397ed27](https://github.com/nextcloud/mail/commit/397ed272d89eb04ec08e2c59476c59e35744fb8a))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([cf62083](https://github.com/nextcloud/mail/commit/cf6208310c94b5171f274a2746b6922044ed28ec))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.20.0 ([b52df89](https://github.com/nextcloud/mail/commit/b52df895ef03086cca566adc042c777e9340d28d))\n* **deps:** bump arthurhoaro/favicon from 2.0.0 to ^2.0.1 (main) ([#10304](https://github.com/nextcloud/mail/issues/10304)) ([a8976cc](https://github.com/nextcloud/mail/commit/a8976cc8f01032c9a8cc2c2c01b613d758794979))\n* **deps:** bump bytestream/horde-imap-client from 2.33.2 to ^2.33.3 (main) ([#10335](https://github.com/nextcloud/mail/issues/10335)) ([9c43e51](https://github.com/nextcloud/mail/commit/9c43e5195f9278fe05513559c3f37cd7229f638b))\n* **deps:** bump bytestream/horde-stream from 1.7.1 to ^1.7.2 (main) ([#10336](https://github.com/nextcloud/mail/issues/10336)) ([72ff480](https://github.com/nextcloud/mail/commit/72ff4801669708fef3d9155e8ed75892cfd9bfdd))\n* **deps:** bump bytestream/horde-util from 2.7.0 to ^2.8.0 (main) ([#10266](https://github.com/nextcloud/mail/issues/10266)) ([dea3c67](https://github.com/nextcloud/mail/commit/dea3c677e130098b7fbb8a90b6ed03d2f822f0a3))\n* **deps:** bump cerdic/css-tidy from 2.1.0 to v2.2.1 (main) ([#10401](https://github.com/nextcloud/mail/issues/10401)) ([6168da8](https://github.com/nextcloud/mail/commit/6168da8c3c2ff64690242a3efdba0e585967214f))\n* **deps:** bump dompurify from 3.1.6 to ^3.1.7 (main) ([#10239](https://github.com/nextcloud/mail/issues/10239)) ([b6f3726](https://github.com/nextcloud/mail/commit/b6f3726157f7e07d4c05c72bbf52af8f68a66c1b))\n* **deps:** bump dompurify from 3.1.7 to ^3.2.1 (main) ([#10402](https://github.com/nextcloud/mail/issues/10402)) ([4ef5e62](https://github.com/nextcloud/mail/commit/4ef5e624374082cb05d8a409227bc366c3b34692))\n* **deps:** bump ezyang/htmlpurifier from 4.17.0 to v4.18.0 (main) ([#10414](https://github.com/nextcloud/mail/issues/10414)) ([d7afc16](https://github.com/nextcloud/mail/commit/d7afc16198b2c61a08b692f302fb9ccc71cd37fe))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.0 to ^6.3.1 (main) ([#10372](https://github.com/nextcloud/mail/issues/10372)) ([5734a9e](https://github.com/nextcloud/mail/commit/5734a9e466852ce8bd0f57bf9d2bedad09e61f96))\n* **deps:** bump nextcloud/openapi-extractor from 1.0.0 to ^1.0.1 (main) ([#10256](https://github.com/nextcloud/mail/issues/10256)) ([2bd6c4f](https://github.com/nextcloud/mail/commit/2bd6c4fa8714059f856e252f300de4142c4f74a4))\n* **deps:** bump pinia from 2.2.0 to ^2.2.3 (main) ([#10028](https://github.com/nextcloud/mail/issues/10028)) ([5f851f1](https://github.com/nextcloud/mail/commit/5f851f1ab0401b1d5904ff976838586684513704))\n* **deps:** bump pinia from 2.2.3 to ^2.2.4 ([0439f04](https://github.com/nextcloud/mail/commit/0439f046eea92be97f67310a33b8dbce45d2d47b))\n* **deps:** bump pinia from 2.2.4 to ^2.2.5 (main) ([#10305](https://github.com/nextcloud/mail/issues/10305)) ([5084d6e](https://github.com/nextcloud/mail/commit/5084d6ef5356e8d13016b20c5ecaf594b269a8b3))\n* **deps:** bump pinia from 2.2.5 to ^2.2.6 (main) ([#10373](https://github.com/nextcloud/mail/issues/10373)) ([828b5cb](https://github.com/nextcloud/mail/commit/828b5cbd960de0d7dbc0a4f8e248a8c0428b3462))\n* **deps:** bump rubix/ml from 2.5.0 to v2.5.1 (main) ([#10096](https://github.com/nextcloud/mail/issues/10096)) ([45dc3f4](https://github.com/nextcloud/mail/commit/45dc3f41c163574584f36166f17ca76a7ae7b926))\n* **deps:** bump rubix/ml from 2.5.1 to v2.5.2 (main) ([#10374](https://github.com/nextcloud/mail/issues/10374)) ([62a0f24](https://github.com/nextcloud/mail/commit/62a0f24a80f9a21e4655e95ce148f76662e75dd4))\n* **deps:** bump sabberworm/php-css-parser from 8.6.0 to ^8.7.0 (main) ([#10306](https://github.com/nextcloud/mail/issues/10306)) ([15b9cba](https://github.com/nextcloud/mail/commit/15b9cbab6f1749fc2b5c00502258259672cddd53))\n* **deps:** bump stylelint from 16.3.1 to ^16.10.0 (main) ([#10284](https://github.com/nextcloud/mail/issues/10284)) ([b895441](https://github.com/nextcloud/mail/commit/b89544189022c8b49b10df3d25a37a44a9fad620))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([371ce44](https://github.com/nextcloud/mail/commit/371ce44ac6e21fe99e64ca740074d76f155249e9))\n* **deps:** bump webdav from 4.11.3 to v4.11.4 (main) ([#10127](https://github.com/nextcloud/mail/issues/10127)) ([129b066](https://github.com/nextcloud/mail/commit/129b066e69852e5d6da294d2e705024d9403a5b6))\n* **deps:** bump webpack from 5.91.0 to v5.94.0 (main) ([#10062](https://github.com/nextcloud/mail/issues/10062)) ([f66b05a](https://github.com/nextcloud/mail/commit/f66b05ac2f9d0c459c904ad32c3b72fc23ddc16e))\n* **dns:** Update public suffix list ([547b906](https://github.com/nextcloud/mail/commit/547b9064c3b65c5a5725a94a618fcd919dc361aa))\n* **dns:** Update public suffix list ([2e7ff02](https://github.com/nextcloud/mail/commit/2e7ff02bff6747d9054743d822b8c5e516123b94))\n* **dns:** Update public suffix list ([939830c](https://github.com/nextcloud/mail/commit/939830ce13842ce4e568b12400697be31429d82a))\n* **dns:** Update public suffix list ([70ecb76](https://github.com/nextcloud/mail/commit/70ecb760ebcc28feac135575cdf6a0afc284dc1c))\n* **dns:** Update public suffix list ([9e14c38](https://github.com/nextcloud/mail/commit/9e14c38d45d880e8f1f9cd186660736235799f49))\n* Encapsulate PGP/MIME encrypted emails ([3f821e3](https://github.com/nextcloud/mail/commit/3f821e38e37cda3c1ae165a141f1b38f62191fbe))\n* **Envelope:** RTL support ([8cd27ad](https://github.com/nextcloud/mail/commit/8cd27ad1ac2e41ef919733ff87a4439f776d7e69))\n* fetch attendance status when calendars are loaded ([44b9a36](https://github.com/nextcloud/mail/commit/44b9a36eea9e4e77dee04883b561804b9ca66016)), closes [/github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue#L49-L50](https://github.com//github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue/issues/L49-L50)\n* fix renaming mailbox hierarchy ([fd6229a](https://github.com/nextcloud/mail/commit/fd6229a8c1291dda099977b2bc98f2ec37e6bd2d))\n* Hand PGP/MIME-encrypted emails to Mailvelope ([971f910](https://github.com/nextcloud/mail/commit/971f9104ebb5a8434756149f317a938070af98bc))\n* hide show links button when not needed ([9351f0f](https://github.com/nextcloud/mail/commit/9351f0fa31cea520be18762beeacf76ace814a46))\n* **iframe:** scroll horizontally in case of overflow ([ee521d4](https://github.com/nextcloud/mail/commit/ee521d46ed0382d27882c302bf208038ffc445fc))\n* **imap:** Consider charset for preview text decoding ([625c579](https://github.com/nextcloud/mail/commit/625c579c82a06f2afaa21e130a4fd9f6c99c20ed))\n* **imap:** do a single full sync when QRESYNC is enabled ([73ceaf3](https://github.com/nextcloud/mail/commit/73ceaf3037d08f496e864183e0898983a9becf91))\n* **imap:** persist vanished messages immediately on EXAMINE commands ([3b577fe](https://github.com/nextcloud/mail/commit/3b577feb4d750fb2811e7488354d0663963c9840))\n* increase default SMTP timeout ([e7e62a3](https://github.com/nextcloud/mail/commit/e7e62a38c8bd15bc52b31a04c6b4595df5ec3cc4))\n* input icons and native datepicker ([db36047](https://github.com/nextcloud/mail/commit/db360471eee40465868be331c00858dfd280e08e))\n* Junk/NotJunk flags ([fb27d1e](https://github.com/nextcloud/mail/commit/fb27d1e9e3d00a0f4463bb08310933740f67e6d6))\n* link checking missing scheme ([9bb48cd](https://github.com/nextcloud/mail/commit/9bb48cda5bb74a1552d615ba57e0a4f29b96224b))\n* mailbox loading icon position ([16e95a1](https://github.com/nextcloud/mail/commit/16e95a13ee02546c329850370aa3e85b75499bbf))\n* **mailto:** Handle BCC recipients only ([970c3ac](https://github.com/nextcloud/mail/commit/970c3ac519c3659174c82ce5c46494b1354f6881))\n* make filter routes available for normal users ([95984e8](https://github.com/nextcloud/mail/commit/95984e88d8f5c87a06eaee93fc2ada63128ebf57))\n* new message button misalignment ([94ba7d3](https://github.com/nextcloud/mail/commit/94ba7d3015415743c9a13d14b7504f4ca0e55112))\n* **notifications:** Notifier::prepare() threw \\InvalidArgumentException which is deprecated ([37a2365](https://github.com/nextcloud/mail/commit/37a2365a9e008c2f838d419ffe0cf57ab70628d4))\n* open search buttons on focus and fix the wraping ([b469ce3](https://github.com/nextcloud/mail/commit/b469ce35206b82ea71d9d5b57a9cf6dedc5cf32b))\n* overlapping text on small screens ([04b8849](https://github.com/nextcloud/mail/commit/04b8849ad9caaf6830c61349098fedcb33f7fa0d))\n* phishing detection fixes ([dba8aff](https://github.com/nextcloud/mail/commit/dba8aff42fa07cea8412975c2b834c0482e2a9c2))\n* phishing warning layout ([2867a68](https://github.com/nextcloud/mail/commit/2867a68dbde60f379a2705c6756a09697924539f))\n* **PhishingDetection:** empty href ([ff608cc](https://github.com/nextcloud/mail/commit/ff608cc973798678e1b94c746958d9f17e22267c))\n* **psrlog:** Make the logger compatible with the upcoming bump to psr/log 3 in server ([0a22b3f](https://github.com/nextcloud/mail/commit/0a22b3f174056c7f2b2ebc3eb3e2acfc484cbe73))\n* **quick-search:** RTL support ([05e9ec7](https://github.com/nextcloud/mail/commit/05e9ec7af1763d3e4ffe505128ed92292e16184f))\n* recipient popover on thread display ([1244a69](https://github.com/nextcloud/mail/commit/1244a691c4c2a49efe833cfef8f54075cd747a4b))\n* **release:** Ignore unnecessary files ([0a66bdc](https://github.com/nextcloud/mail/commit/0a66bdcddf9182f0b8f033a6cf95a9dbfb6fa064))\n* **release:** Specify release committer ([9f4d57a](https://github.com/nextcloud/mail/commit/9f4d57aea1144bb912fddf4eeffabebe13576412))\n* remove depricated multiselect class ([31b11e5](https://github.com/nextcloud/mail/commit/31b11e5afd5c36758e89e7cb163b325cd42e2a53))\n* Replace tune icon with filter icon ([71af3f8](https://github.com/nextcloud/mail/commit/71af3f8fb6be790de082eb29c926f6941381da65))\n* Revive reply to sender only ([90c9298](https://github.com/nextcloud/mail/commit/90c9298550f0830b70daba05b0f334b14ec00d78))\n* **rtl:** phishing warning component ([6516398](https://github.com/nextcloud/mail/commit/6516398e9a2f7d12584cacbe63dea68f4ebc9983))\n* **rtl:** Thread title ([62583f8](https://github.com/nextcloud/mail/commit/62583f8fa1bec2a7b072c8c705880bc8d378b7b2))\n* **rtl:** userBubble rtl support ([e3b6729](https://github.com/nextcloud/mail/commit/e3b6729ae90b4e879a57dc51ceca76521f3c4f20))\n* search modal on small screen ([a3afdd4](https://github.com/nextcloud/mail/commit/a3afdd411c525e41e947ddac86e2146613f5136a))\n* select multiple envelopes by holding shift directly ([80f7153](https://github.com/nextcloud/mail/commit/80f71536fdc7ad33c15585bf218c8aa562be5065))\n* set content type parameters for attachments ([e3524c8](https://github.com/nextcloud/mail/commit/e3524c810ad82d7a5774bcda9ee4259ab8782a0e))\n* thread disappearing after refresh ([fe12a29](https://github.com/nextcloud/mail/commit/fe12a29439c2b3c376819b27d44a034ad8cc2fb6))\n* **threading:** Handle threads with duplicate send times ([341b655](https://github.com/nextcloud/mail/commit/341b655467ac672ec2463769ca3df284801f9a87))\n* **ui:** Add padding to primary evenlope actions ([63f31a2](https://github.com/nextcloud/mail/commit/63f31a2009e3c0a4aef9e56b9a471ddcaf40ea26))\n* **ui:** Remove padding from recipient bubble ([6026b1c](https://github.com/nextcloud/mail/commit/6026b1cc2111858b61077562f8ffe347f13eca8d))\n* **ui:** Restore account quota fetching ([6e58a2d](https://github.com/nextcloud/mail/commit/6e58a2d4d13ba1e500cf1048c9295cfe70baae8d))\n* **ui:** Restore message/thread styling ([1b94a14](https://github.com/nextcloud/mail/commit/1b94a14ce26608456560bec4955a3dc70852255e))\n* use single connection to sync all mailboxes ([57389ba](https://github.com/nextcloud/mail/commit/57389ba85c8842351302a51e963629ed89120d0f))\n* wrong path for itinerary executable ([43ed1ca](https://github.com/nextcloud/mail/commit/43ed1ca4f418806a768ef0df1cb9dc9b32170c36))\n\n\n### Features\n\n* add iMip Request Handling ([e8578ed](https://github.com/nextcloud/mail/commit/e8578edef275e434a2e2318808d0275d25fad378))\n* add mention to mail ([f089fad](https://github.com/nextcloud/mail/commit/f089fad6aa59b5927c9f4a96005a22711ae47c8d))\n* add recipient info on the right side of the composer ([efb0d60](https://github.com/nextcloud/mail/commit/efb0d605f2387ff426686eeb6339e79a3eeec91e))\n* add sieve utils ([9486987](https://github.com/nextcloud/mail/commit/948698742810bc3802340ff94ba55ec28e2583cb))\n* ai message summary ([e9286d2](https://github.com/nextcloud/mail/commit/e9286d20d4803cd1d4a3b7635f9c1dcf6fe4dcec))\n* classify emails by importance based on subjects ([1907ebc](https://github.com/nextcloud/mail/commit/1907ebc860f49de046640e00b523999a15028e66))\n* **deps:** Add Nextcloud 31 support ([bd306d8](https://github.com/nextcloud/mail/commit/bd306d8db5edf661c10b69eaf28ce095634ffab4))\n* fiter messages by mention ([fb946a2](https://github.com/nextcloud/mail/commit/fb946a2da61db01a6ab197d523fa95dd7dc6e57b))\n* implement periodic full sync job to repair cache inconsistencies ([c0bed86](https://github.com/nextcloud/mail/commit/c0bed86544f5a62fc3924839da669cfe5a6251c1))\n* mail filters ([d74c401](https://github.com/nextcloud/mail/commit/d74c401e6653be7d0713cb0c6d2ab358c9cf7516))\n* mail provider backend ([ce653d0](https://github.com/nextcloud/mail/commit/ce653d0f49fddc2afe916e5972e0e4642fed4ef6))\n* make multiselect menu more discoverable ([085af79](https://github.com/nextcloud/mail/commit/085af794d731d8585098e9c1fc620235a3d161f1))\n\n\n### Performance Improvements\n\n* don't loop the users without any provisioning configurations ([b76e68f](https://github.com/nextcloud/mail/commit/b76e68f37352f93dd28bc70c2addf1b9f75ee1af))\n* skip non-writable calendars ([4296585](https://github.com/nextcloud/mail/commit/42965856b0761038f699ea7e3092498336a7e439))\n\n\n### Reverts\n\n* Revert \"fix: CKEditor translations\" ([5a000da](https://github.com/nextcloud/mail/commit/5a000da5fc064bbbf132ad59fd13a2003cba9352))\n* Revert \"perf: bundle with vite\" ([6539d1d](https://github.com/nextcloud/mail/commit/6539d1da520a1531a3febeb27397527db8adb9a1))\n\n\n\n# [4.0.0-beta2](https://github.com/nextcloud/mail/compare/v4.0.0-alpha1...v4.0.0-beta2) (2024-08-27)\n\n\n### Bug Fixes\n\n* **.nextcloudignore:** Exclude php-stemmer tests from package ([aa79c29](https://github.com/nextcloud/mail/commit/aa79c2924e68893d3dbaae9deeb2b6a627d3c0ce)), closes [#9586](https://github.com/nextcloud/mail/issues/9586)\n* account deletion modal design ([091960a](https://github.com/nextcloud/mail/commit/091960ae1049393d7b9e538cf657b1068e4c6243))\n* **AccountForm:** Fix manual mail server buttons ([4d37cdc](https://github.com/nextcloud/mail/commit/4d37cdc0b746a434af41aa1aa999769c1e7f3bb2))\n* add repair job to deleted duplicated cached messages ([22b683c](https://github.com/nextcloud/mail/commit/22b683c0ad1abadef0c7dc267c973caa337b5e03))\n* align reply and attachment icon with subject ([8965b73](https://github.com/nextcloud/mail/commit/8965b739d76a27907b78b3632d3b000fc50fa87e))\n* **autoconfig:** Refactor DNS query for testing ([56faa48](https://github.com/nextcloud/mail/commit/56faa48b26c68d2a93bee0a8befa715047f60d6e))\n* **autoresponder:** enable immediately on an OutOfOfficeStartedEvent ([783263d](https://github.com/nextcloud/mail/commit/783263d2e91016f977db813ac5b5a965c6b88526))\n* background-color of outbox-button ([ca8310b](https://github.com/nextcloud/mail/commit/ca8310b6d1479a3009197b87e73bcb24ff10932a))\n* background-color of outbox-button ([5131682](https://github.com/nextcloud/mail/commit/51316823d2e6bffcf5f4c2b629d6243c9865d942))\n* case insesitive comparison for contact emails ([30d55f7](https://github.com/nextcloud/mail/commit/30d55f79a96519d281badcebd992ce691ad7e16d))\n* change appnavigation to appnavigationcaption for the email account ([4ffc09b](https://github.com/nextcloud/mail/commit/4ffc09b450787c882c9ca341798000e39b751215))\n* change format button icon ([9700cda](https://github.com/nextcloud/mail/commit/9700cda2fafa6bae5170176c01da260653cf5412))\n* Check if mailbox folder is selectable ([be8dcf4](https://github.com/nextcloud/mail/commit/be8dcf48e494c2594ca1a6ce2bdc599b977c3c84))\n* close smtp connection after sending or on error ([8f9a89b](https://github.com/nextcloud/mail/commit/8f9a89bfad9c5dedcb129892ca95bafd2594b0f9))\n* close the ncselect dropdown when clicked somewhere else ([d6daaef](https://github.com/nextcloud/mail/commit/d6daaef63b474fede424188f60ada7f3dad41be8))\n* composer session indicator height ([cd9a9f2](https://github.com/nextcloud/mail/commit/cd9a9f236b05b7b5022cf180b5dd7dee040eb420))\n* **composer:** Adjust expand/collapse cc/bcc icon size ([95803ba](https://github.com/nextcloud/mail/commit/95803ba920e60f87520dbf64f1fec60acf3091bb))\n* **composer:** Prevent leaving the tab with unsaved changes ([e57db7b](https://github.com/nextcloud/mail/commit/e57db7b01bd7b2bfd793ccb58fd464300cf8fd9d))\n* **composer:** Remove to/cc/bcc/subject separators ([a7983c5](https://github.com/nextcloud/mail/commit/a7983c5df04d48da90885e47e874c656169a1baf))\n* **composer:** Revive ckeditor translations ([c14cb78](https://github.com/nextcloud/mail/commit/c14cb784cfc7b3aee1de7ea30a4148652af87052))\n* create tasks from emails ([facc5bd](https://github.com/nextcloud/mail/commit/facc5bd581ebc344d0bb58f2ba6462b49ed16b15))\n* **dashboard:** Fix dashboard icon ([8a2b586](https://github.com/nextcloud/mail/commit/8a2b58615a1a10a123041232e4b9dd2018369bb4))\n* **db:** Delete recipients without sub query ([2545318](https://github.com/nextcloud/mail/commit/2545318697ee34c6a8112eeea7b1580af71e0568))\n* declare all properties in unit tests ([3955d51](https://github.com/nextcloud/mail/commit/3955d514f5b795c86ab1bb2866ba061f9382bc07))\n* Define \"isAddAttachmentsOpen\" ([ac97a28](https://github.com/nextcloud/mail/commit/ac97a284435299d5025d1d39b5151bb273cce27e))\n* **deps:** Apply npm audit fix ([9e53bbb](https://github.com/nextcloud/mail/commit/9e53bbb908da2edcbd39d3ac188794079ae86117))\n* **deps:** Apply npm audit fix ([7c2a1c1](https://github.com/nextcloud/mail/commit/7c2a1c1f7e2c9815eabd8ddb46d19d0c81f6e872))\n* **deps:** Apply npm audit fix ([7278f5b](https://github.com/nextcloud/mail/commit/7278f5b477df2b848d1d04922f357ca24f88552e))\n* **deps:** Apply npm audit fix ([2b0aa94](https://github.com/nextcloud/mail/commit/2b0aa94da03982a33cb0e0e55dccbe7f6d8a7ece))\n* **deps:** Apply npm audit fix ([7bb7859](https://github.com/nextcloud/mail/commit/7bb78591fef8ccb345c18b02838b4ceaba9f83af))\n* **deps:** bump @ckeditor/ckeditor5-editor-decoupled from 37.0.1 to v37.1.0 (main) ([#9480](https://github.com/nextcloud/mail/issues/9480)) ([1a63205](https://github.com/nextcloud/mail/commit/1a632052ff6c545c43274a6a7b4088b80b8b4614))\n* **deps:** bump @nextcloud/auth from 2.2.1 to ^2.3.0 (main) ([#9630](https://github.com/nextcloud/mail/issues/9630)) ([b9cecc4](https://github.com/nextcloud/mail/commit/b9cecc43ce7e0498939342edf183389c55923007))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.0 (main) ([#9631](https://github.com/nextcloud/mail/issues/9631)) ([8edd1d7](https://github.com/nextcloud/mail/commit/8edd1d7367e267e77fd7af4434dec734140b3b67))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 (main) ([#9777](https://github.com/nextcloud/mail/issues/9777)) ([309a4af](https://github.com/nextcloud/mail/commit/309a4aff5af910a4be790cc07459be29d3d995bf))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.0 (main) ([#9873](https://github.com/nextcloud/mail/issues/9873)) ([45de8bf](https://github.com/nextcloud/mail/commit/45de8bf43f4e3e54da1669da41875d653eabe897))\n* **deps:** bump @nextcloud/cdav-library from 1.5.0 to ^1.5.1 (main) ([#9906](https://github.com/nextcloud/mail/issues/9906)) ([97cd5f4](https://github.com/nextcloud/mail/commit/97cd5f49351036e653537d3b53c69ecb620d7db1))\n* **deps:** bump @nextcloud/dialogs from 5.2.0 to ^5.3.0 (main) ([#9572](https://github.com/nextcloud/mail/issues/9572)) ([9da3f56](https://github.com/nextcloud/mail/commit/9da3f5612965f343fcffa60fc592340bad572cde))\n* **deps:** bump @nextcloud/dialogs from 5.3.0 to ^5.3.1 (main) ([#9595](https://github.com/nextcloud/mail/issues/9595)) ([e2ce479](https://github.com/nextcloud/mail/commit/e2ce479480d71a2d6abfadcaa14007098c7e5554))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.3 (main) ([#9732](https://github.com/nextcloud/mail/issues/9732)) ([db4be0e](https://github.com/nextcloud/mail/commit/db4be0e1f7e9797a750b3438ac6011009c761bb7))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 (main) ([#9774](https://github.com/nextcloud/mail/issues/9774)) ([073aa64](https://github.com/nextcloud/mail/commit/073aa6432905fdfaec8657b8a390e3e05c2c4103))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 (main) ([#9821](https://github.com/nextcloud/mail/issues/9821)) ([b4c5e64](https://github.com/nextcloud/mail/commit/b4c5e64cdcb56bc9069ae10e13c43770377bd196))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.6 (main) ([#10027](https://github.com/nextcloud/mail/issues/10027)) ([b46c724](https://github.com/nextcloud/mail/commit/b46c724314a53da60c3454b3579c1fc7e7b89903))\n* **deps:** bump @nextcloud/files from 3.1.0 to ^3.1.1 (main) ([#9499](https://github.com/nextcloud/mail/issues/9499)) ([97fbbe9](https://github.com/nextcloud/mail/commit/97fbbe9c40235e618eea9e9068fd9ec2df19c4d6))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.2.1 (main) ([#9597](https://github.com/nextcloud/mail/issues/9597)) ([44af721](https://github.com/nextcloud/mail/commit/44af72138b06c017d285e25e4781f5e7ed0d5286))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.4.0 (main) ([#9681](https://github.com/nextcloud/mail/issues/9681)) ([b7c8d7b](https://github.com/nextcloud/mail/commit/b7c8d7bb96491a243e36dcfd5ac2aef0e903acf0))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.5.1 (main) ([#9775](https://github.com/nextcloud/mail/issues/9775)) ([56d8a98](https://github.com/nextcloud/mail/commit/56d8a987e82632551408bae217622d7bcc8d2296))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 (main) ([#9907](https://github.com/nextcloud/mail/issues/9907)) ([7b20678](https://github.com/nextcloud/mail/commit/7b206782fe300d120922b131babf390035bacbbb))\n* **deps:** bump @nextcloud/files from 3.6.0 to ^3.8.0 (main) ([#9948](https://github.com/nextcloud/mail/issues/9948)) ([6969d6e](https://github.com/nextcloud/mail/commit/6969d6eca3c3ed081ba1f8657a228f047faff789))\n* **deps:** bump @nextcloud/initial-state from 2.1.0 to ^2.2.0 (main) ([#9643](https://github.com/nextcloud/mail/issues/9643)) ([aefeb7f](https://github.com/nextcloud/mail/commit/aefeb7ffb70d52f50d6a01e94ebd6fac19aaedb4))\n* **deps:** bump @nextcloud/paths from 2.1.0 to ^2.2.0 (main) ([#9908](https://github.com/nextcloud/mail/issues/9908)) ([f296907](https://github.com/nextcloud/mail/commit/f2969072b4919a8cd37fabfa6e78d95741f97fa3))\n* **deps:** bump @nextcloud/paths from 2.2.0 to ^2.2.1 (main) ([#9947](https://github.com/nextcloud/mail/issues/9947)) ([436e983](https://github.com/nextcloud/mail/commit/436e9837b503cb766d10b4d48a4fbefcdf6b459c))\n* **deps:** bump @nextcloud/router from 3.0.0 to ^3.0.1 (main) ([#9596](https://github.com/nextcloud/mail/issues/9596)) ([cf9dd13](https://github.com/nextcloud/mail/commit/cf9dd13507befd1e45185e7aae1a0af5e3237655))\n* **deps:** bump @nextcloud/vue from 8.11.0 to ^8.11.1 ([e91bea8](https://github.com/nextcloud/mail/commit/e91bea82bc4c77f9b2aa56286d8209c1a87c2ec6))\n* **deps:** bump @nextcloud/vue from 8.11.1 to ^8.11.2 ([22a5ae4](https://github.com/nextcloud/mail/commit/22a5ae40b71057c1611a7773f34842d9ce38145c))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.13.0 ([facc8ab](https://github.com/nextcloud/mail/commit/facc8ab626acdf7e910a8a287565d13340cfe702))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([4ef4e64](https://github.com/nextcloud/mail/commit/4ef4e647d588d3514720fce7ebf946c82f63d6ad))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([8e50f95](https://github.com/nextcloud/mail/commit/8e50f95e40a214a8e419ff8162cbb57686021741))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([473069e](https://github.com/nextcloud/mail/commit/473069e4f2abcea0fbda41090719aef590a88419))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.16.0 ([73b56f1](https://github.com/nextcloud/mail/commit/73b56f12c2f3da8c3000287cc38436b77bb88de5))\n* **deps:** bump address-rfc2822 from 2.2.0 to ^2.2.1 (main) ([#9545](https://github.com/nextcloud/mail/issues/9545)) ([80e82ff](https://github.com/nextcloud/mail/commit/80e82ff3c3a6d920244e4d639e164da703d7e178))\n* **deps:** bump address-rfc2822 from 2.2.1 to ^2.2.2 (main) ([#9618](https://github.com/nextcloud/mail/issues/9618)) ([5be2d9f](https://github.com/nextcloud/mail/commit/5be2d9fd204280cdd77a56dd471ea633c7539029))\n* **deps:** bump bytestream/horde-mime from 2.13.0 to ^2.13.1 (main) ([#9704](https://github.com/nextcloud/mail/issues/9704)) ([4da6baa](https://github.com/nextcloud/mail/commit/4da6baaa2c5fa4acc6c0d55b905cab73b26c6a54))\n* **deps:** bump bytestream/horde-mime from 2.13.1 to ^2.13.2 (main) ([#9997](https://github.com/nextcloud/mail/issues/9997)) ([4c7f3f1](https://github.com/nextcloud/mail/commit/4c7f3f11ba672a500d394ead8e4942c20f3d3af8))\n* **deps:** bump core-js from 3.36.1 to ^3.37.1 (main) ([#9644](https://github.com/nextcloud/mail/issues/9644)) ([509d675](https://github.com/nextcloud/mail/commit/509d675bb71f7dc3d0cd6b887e1d74563e41301d))\n* **deps:** bump dompurify from 3.0.10 to ^3.0.11 ([94b5093](https://github.com/nextcloud/mail/commit/94b50936147d27097154e872bb9debda5a965ac7))\n* **deps:** bump dompurify from 3.0.11 to ^3.1.0 (main) ([#9546](https://github.com/nextcloud/mail/issues/9546)) ([1be5cce](https://github.com/nextcloud/mail/commit/1be5ccec727847914944ab1625b2f101c47cf046))\n* **deps:** bump dompurify from 3.1.0 to ^3.1.3 (main) ([#9619](https://github.com/nextcloud/mail/issues/9619)) ([1451a01](https://github.com/nextcloud/mail/commit/1451a01cbe8c0e8566a0ebb6307cd36a76ed65e1))\n* **deps:** bump dompurify from 3.1.3 to ^3.1.4 (main) ([#9680](https://github.com/nextcloud/mail/issues/9680)) ([981db11](https://github.com/nextcloud/mail/commit/981db11eb87ab737d08db59138405fb40859b4c3))\n* **deps:** bump dompurify from 3.1.4 to ^3.1.5 (main) ([#9705](https://github.com/nextcloud/mail/issues/9705)) ([77ce832](https://github.com/nextcloud/mail/commit/77ce83240067203b6d0ab88bc0337c1d91792586))\n* **deps:** bump dompurify from 3.1.5 to ^3.1.6 (main) ([#9822](https://github.com/nextcloud/mail/issues/9822)) ([f9a9a1c](https://github.com/nextcloud/mail/commit/f9a9a1c81df96fabd626b2c4a88da1b9fc611d2c))\n* **deps:** bump iframe-resizer from 4.3.11 to ^4.4.4 (main) ([#9794](https://github.com/nextcloud/mail/issues/9794)) ([ae39845](https://github.com/nextcloud/mail/commit/ae3984539f28fa2d5ea574182e3c818f2ea49726))\n* **deps:** bump iframe-resizer from 4.3.9 to ^4.3.11 (main) ([#9598](https://github.com/nextcloud/mail/issues/9598)) ([4b08392](https://github.com/nextcloud/mail/commit/4b0839274d0f604dd9a9e877bb15184697142862))\n* **deps:** bump iframe-resizer from 4.4.4 to ^4.4.5 (main) ([#9872](https://github.com/nextcloud/mail/issues/9872)) ([a537c49](https://github.com/nextcloud/mail/commit/a537c491cbc391d8ae1f66376409f8fcbc6fb4d8))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.2 to ^1.0.3 ([774ac9f](https://github.com/nextcloud/mail/commit/774ac9f5302a51d3526cc3811aa1fffc7448bcef))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to ^1.0.1 (main) ([#9974](https://github.com/nextcloud/mail/issues/9974)) ([c6cc2fa](https://github.com/nextcloud/mail/commit/c6cc2fa5f6ec7193c515181a80658f2e8c65b41a))\n* **deps:** bump pinia from 2.1.7 to ^2.2.0 (main) ([#9949](https://github.com/nextcloud/mail/issues/9949)) ([9e67025](https://github.com/nextcloud/mail/commit/9e67025c1a7035ad052259feb6041e8dc4b9c8f1))\n* **deps:** bump ramda from 0.29.1 to ^0.30.1 ([120def2](https://github.com/nextcloud/mail/commit/120def2ec0b1a81e169f5bc4e3a28fcfc358a8b7))\n* **deps:** bump rubix/ml from 2.4.0 to v2.5.0 (main) ([#9874](https://github.com/nextcloud/mail/issues/9874)) ([2f36913](https://github.com/nextcloud/mail/commit/2f369131b5e1dbcd6856fc3fa6b270f7686fd03f))\n* **deps:** bump sabberworm/php-css-parser from 8.5.1 to ^8.6.0 (main) ([#9909](https://github.com/nextcloud/mail/issues/9909)) ([08cc760](https://github.com/nextcloud/mail/commit/08cc760c7a5731704afb5ab422b0125a01bd9688))\n* **deps:** bump stylelint from 16.2.1 to ^16.3.1 ([06c5976](https://github.com/nextcloud/mail/commit/06c59764a33c847a6a1d03ed0a203d18e24a4ffd))\n* **deps:** bump webdav from 5.4.0 to ^5.5.0 ([8316cc7](https://github.com/nextcloud/mail/commit/8316cc729955e7c254a8ac703f36add04214e6e7))\n* **deps:** Replace @nextcloud/vue-dashboard with @nextcloud/vue ([c1cc553](https://github.com/nextcloud/mail/commit/c1cc553ac9e8ce46d8ed643abfcea3e0430782f8))\n* don't fail on missing mailbox stats ([1a613e8](https://github.com/nextcloud/mail/commit/1a613e80db91c58e814e212d897acf57dcf9575e))\n* duplicate uid repair job failing on postgres ([48a149b](https://github.com/nextcloud/mail/commit/48a149bab4a86d7af86c5b082bec9da57b807c70))\n* ellips the subject and position of the important icon ([7dcd2de](https://github.com/nextcloud/mail/commit/7dcd2de0453366462cd096acac33ca262d315146))\n* **files:** add static icon for unknown user ([bdb5d30](https://github.com/nextcloud/mail/commit/bdb5d30bf8abf5ebef099459b21929e0da609d24))\n* filter change icon to be shown only when the filter changes ([2e0ec87](https://github.com/nextcloud/mail/commit/2e0ec879b44e5be769ad7ba470b673d01fb47547))\n* Fine-tune thread summary box design ([b508915](https://github.com/nextcloud/mail/commit/b50891524b9beafea33e199a6beb9b791af5b574))\n* handle missing email in contact check ([eb11824](https://github.com/nextcloud/mail/commit/eb11824ea2091a930ef6aae95fc31834c53b62ba))\n* honour MDN requests ([752b012](https://github.com/nextcloud/mail/commit/752b0127afecbd85f105761a8c22a909ea68e679))\n* inconsistent encoding in saved sent messages ([a93b48e](https://github.com/nextcloud/mail/commit/a93b48eacf23490c9a4140a5028ebd81dfec9061))\n* **integration:** Honor sharing to group members restriction ([fb4ae5e](https://github.com/nextcloud/mail/commit/fb4ae5e5d47b7ef5d3a4b2bef66d6b982009b6c9))\n* **jobs:** Skip background jobs if no authentication is possible ([f1d3fda](https://github.com/nextcloud/mail/commit/f1d3fda3015c1ace393124a25cf588e37c879981))\n* **l10n:** Update mailbox button text from \"Edit name\" to \"Rename\" ([1edb630](https://github.com/nextcloud/mail/commit/1edb63067701db0132e2479eb3e5ae1835c42415)), closes [#9108](https://github.com/nextcloud/mail/issues/9108)\n* line ending for sieve scripts should be clrf ([1f54a38](https://github.com/nextcloud/mail/commit/1f54a387486d205703d9ec03692f200d3b7f021d)), closes [/www.rfc-editor.org/rfc/rfc5228#section-2](https://github.com//www.rfc-editor.org/rfc/rfc5228/issues/section-2)\n* lost focus in reference picker ([13ceb7a](https://github.com/nextcloud/mail/commit/13ceb7a22897d19074f3cf5d8f74c6519c32be84))\n* mailbox error empty content alignment ([4b73def](https://github.com/nextcloud/mail/commit/4b73defdc6a0b32812dfd1e52401072ad77975b0))\n* make sure inbound_password uses null as default ([443749f](https://github.com/nextcloud/mail/commit/443749f9e6d9fd1122f42ffd5f67ae8e07af2b63))\n* migrate advanced search to nc dialog ([558440f](https://github.com/nextcloud/mail/commit/558440f900a1591f637de0f34ba7df355b5a6d93))\n* move delete duplicate uids repair step to a job ([c361202](https://github.com/nextcloud/mail/commit/c3612021789b2574feab452d0b64624c369ed1ec))\n* **ocs-api:** fix attachment downloadUrl in ocs/v2.php/apps/mail/message/ID ([507ad47](https://github.com/nextcloud/mail/commit/507ad470145d961268e882c4c841e1f0d6889eec))\n* **outbox:** add status for messages ([7c59040](https://github.com/nextcloud/mail/commit/7c590407858fa4076e76407eeb545234bd3782ce))\n* **outbox:** handle indeterminate smtp errors ([a1daf35](https://github.com/nextcloud/mail/commit/a1daf351f83e27ea1fc4bac2d112966560f04501))\n* **outbox:** handle missing raw message gracefully ([66d5e60](https://github.com/nextcloud/mail/commit/66d5e602ac207a908a0931cb66abdc5c64ed2b3d))\n* **outbox:** Revive item subname ([25e6f60](https://github.com/nextcloud/mail/commit/25e6f6035b0909a1f267616194716d76dcaa8800))\n* PHP deprecations ([d62ac04](https://github.com/nextcloud/mail/commit/d62ac040c4a64501425e068553f54b3331f5d412))\n* php lint complaint ([6cda44b](https://github.com/nextcloud/mail/commit/6cda44bbd998b80b55f98210b41dfe4b1f469c02))\n* **pi:** load more button needs to be clicked twice ([b57eec0](https://github.com/nextcloud/mail/commit/b57eec0b651a21665b2a399eae5d43599f7d2e91))\n* **pi:** section title margins affected by global styles ([30abd01](https://github.com/nextcloud/mail/commit/30abd01dae8c2ab5bf53be814b4c1bde2a4a9303))\n* polish list item ([b48317d](https://github.com/nextcloud/mail/commit/b48317d7305298805d6e440b0692bfc0e1c99428))\n* **printing:** Fix long emails getting cut for print ([17e5e29](https://github.com/nextcloud/mail/commit/17e5e29f4a2f3336a420d03645fc7af9add2228c))\n* **provisioning:** Set master password for passwordless sessions ([43ee642](https://github.com/nextcloud/mail/commit/43ee6428013c32e21d3cb86e7b68c85aa5f298df))\n* remove deprecated prototype.substr() method ([2050173](https://github.com/nextcloud/mail/commit/20501734b0ba0e45dd095df61ea7a7a998d56317))\n* remove duplicated license info covered by SPDX/reuse ([30b3dcc](https://github.com/nextcloud/mail/commit/30b3dccc1d8a4af84f31b8b0d04c00c4272c42a9))\n* Remove instance name from share link add button ([e028f30](https://github.com/nextcloud/mail/commit/e028f30d32a922373bb9392b0fb6a6da2a567978))\n* remove the app navigation spacer ([50ed62d](https://github.com/nextcloud/mail/commit/50ed62db6c88c82cbe9adf12d689efc5994cca28))\n* remove the global styling from the composer list ([a45841d](https://github.com/nextcloud/mail/commit/a45841dcc046b827a3be7a1b93e19e73c6d7738d))\n* remove ununsed package ([01c4faf](https://github.com/nextcloud/mail/commit/01c4fafb933f2538cfda8a688eebb8d57695359b))\n* Sanitize forward slashes from name before generating url ([b29bfda](https://github.com/nextcloud/mail/commit/b29bfdadfac3be3bd5a9f8f2bfe2063c3a5f4719))\n* save horde cache backend on imap client logout ([cda9d73](https://github.com/nextcloud/mail/commit/cda9d737c4c2754e88108e51057c53123fa51277))\n* **search:** Improve quick search element alignment ([919c842](https://github.com/nextcloud/mail/commit/919c842ffa2056979e69e1a63b02f15980482a02))\n* **search:** Show placeholder for the mailbox search input ([aa16c44](https://github.com/nextcloud/mail/commit/aa16c44c07c41e541fc5f20771de15dd793d8234))\n* send imip when importing an event in mail ([880eca7](https://github.com/nextcloud/mail/commit/880eca7a8fe84706e57350d3f2ff01d804bdc117)), closes [/github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php#L245-L254](https://github.com//github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php/issues/L245-L254)\n* Separate quick search and threads list with a line ([62c32c5](https://github.com/nextcloud/mail/commit/62c32c501508a38923880c83a9fc133c07f06f37))\n* set link icon size explicitly ([4b7e433](https://github.com/nextcloud/mail/commit/4b7e4336c03ad5f04994311b02f527e76ad27c85))\n* show image colour on dark theme ([3430895](https://github.com/nextcloud/mail/commit/343089506eed4090b936996d5d5effe89a6cbf02))\n* Show message reply (all) action in toolbar ([5cd54bc](https://github.com/nextcloud/mail/commit/5cd54bca3ce721117c8047a7c1a04738b06da79a))\n* Show text in empty mailbox view ([bc04ae1](https://github.com/nextcloud/mail/commit/bc04ae15a7c3477d74081b4421edce8be34c2312))\n* smart reply button jump ([c29f6fe](https://github.com/nextcloud/mail/commit/c29f6fe6a568432308c128b37d6206b0e92949eb))\n* **smime:** use whole certificate chain ([c6e28fd](https://github.com/nextcloud/mail/commit/c6e28fd59188ded88c3688a2e3d4988fd09df508)), closes [#9190](https://github.com/nextcloud/mail/issues/9190)\n* **tags:** Hide Notjunk tag ([f81843d](https://github.com/nextcloud/mail/commit/f81843d41c759012e0d818463bee596e8b28bb90))\n* thread padding ([f019d55](https://github.com/nextcloud/mail/commit/f019d55ca3668e3bc0ce24d312160dc40372458b))\n* **threading:** Run manual garbage collection ([060923f](https://github.com/nextcloud/mail/commit/060923f2cb9634914f413e9f56c235b3715d9e83))\n* use correct type for button, type for prop ([25b7595](https://github.com/nextcloud/mail/commit/25b759590ae9602392e7da702fa944957e5343c3))\n* using shortcut to select drafts shouldnt open the composer ([6cd5628](https://github.com/nextcloud/mail/commit/6cd5628d39d0135ed7cf39df8b72d272e72e3885))\n\n\n### Features\n\n* add internal addresses ([aab2db9](https://github.com/nextcloud/mail/commit/aab2db92a618babc71fd285e56c11ddd7d2714d6))\n* add JSON to occ mail export ([6b725ac](https://github.com/nextcloud/mail/commit/6b725ac3e1f5ecfc1ff05ddaa57d06fa3faa50d0))\n* **composer:** Redesign inputs ([ff94dd9](https://github.com/nextcloud/mail/commit/ff94dd9c758f04d3fdb420dcdc6187e1e9977bec))\n* **deps:** Drop Nextcloud 26, add 30 support ([7101ad2](https://github.com/nextcloud/mail/commit/7101ad2e4feafc1093d24fc2e3a7f2c16091a361))\n* follow up reminders ([221ff11](https://github.com/nextcloud/mail/commit/221ff11205e703eb4757d3a7037959b80432d8b2))\n* implement admin setting to disable classification by default ([96c1259](https://github.com/nextcloud/mail/commit/96c12592e888327f939308266db2a7bf6ba7e74a))\n* improve the search bar icons ([9eb787c](https://github.com/nextcloud/mail/commit/9eb787c234e716f7bad9c216c1e9362374b99b0a))\n* increaze the min and max width for horizontal view ([cef3c44](https://github.com/nextcloud/mail/commit/cef3c44c69f5644ba8cb66bf25a0c75fd1a91fde))\n* Log AttachmentMissingError as a warning ([092c924](https://github.com/nextcloud/mail/commit/092c924fb70d0ac79cf823e660f09fdbe56d2388))\n* make sieve filter form only resizable vertically ([951774e](https://github.com/nextcloud/mail/commit/951774e20d6f6eef5e106c565fe4fb2c4187a621))\n* mark junk mail automatically as read and unimportant ([d9c20c5](https://github.com/nextcloud/mail/commit/d9c20c531b7bf3d13f03710867f3c31fe49450ce))\n* **ocs:** add OCS extractor and workflow ([e854dc7](https://github.com/nextcloud/mail/commit/e854dc7efc7f97b98c9e1e12be949de0acdc7b04))\n* **ocs:** document get api and amend return types ([929873d](https://github.com/nextcloud/mail/commit/929873db6bf6edd711030002606c63828c3ec7c6))\n* **ocs:** notify of new messages and provide API endpoint to retrieve its contents ([71dbc51](https://github.com/nextcloud/mail/commit/71dbc51dca58d51f419e09cc4bff7bed49adbbd4))\n* **ocs:** send a message via api ([253d0c8](https://github.com/nextcloud/mail/commit/253d0c81f4859b8e65d3940638d2e33ffed0ea27))\n* search on subject, to, from by default ([f93ca3c](https://github.com/nextcloud/mail/commit/f93ca3c665c9dd486044141534dd538062b75b37))\n* separate attachment from three-dot-menu ([3e6529c](https://github.com/nextcloud/mail/commit/3e6529c70b0ec7511ba6c6960266a36bffd9133a))\n* **utility:** make json methods work the same for ([bfa0d7b](https://github.com/nextcloud/mail/commit/bfa0d7b3013212e21782e27518c8d7c79749a24c))\n\n\n### Performance Improvements\n\n* Use local caches for avatars ([bd75d0a](https://github.com/nextcloud/mail/commit/bd75d0abc4a397b3618ff74af0a49742079ed85b))\n\n\n### Reverts\n\n* Revert \"Fix: generate event data fails for threads across multiple mailboxes\" ([09ded27](https://github.com/nextcloud/mail/commit/09ded27c2215a2516693702962c29a1b2cc2ae10))\n\n\n\n# [3.6.0-beta3](https://github.com/nextcloud/mail/compare/v3.6.0-beta2...v3.6.0-beta3) (2024-03-20)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([c5e76e6](https://github.com/nextcloud/mail/commit/c5e76e68d0f7efdbac2b922174e81507039ea67c))\n* **deps:** bump @nextcloud/cdav-library from 1.1.0 to ^1.3.0 (main) ([#9437](https://github.com/nextcloud/mail/issues/9437)) ([f26f421](https://github.com/nextcloud/mail/commit/f26f4218052238410e3e8441fe00133e12cf4cc3))\n* **deps:** bump @nextcloud/dialogs from 5.1.2 to ^5.2.0 (main) ([#9481](https://github.com/nextcloud/mail/issues/9481)) ([78308d9](https://github.com/nextcloud/mail/commit/78308d92ea25cad30dbd3fa134b8fd3127c62d18))\n* **deps:** bump @nextcloud/vue from 8.10.0 to ^8.11.0 ([481e00c](https://github.com/nextcloud/mail/commit/481e00cd8d2abf8e31b6219e5cc077baceb8d79a))\n* **deps:** bump bytestream/horde-imap-client from 2.33.1 to ^2.33.2 (main) ([#9460](https://github.com/nextcloud/mail/issues/9460)) ([6f4e2c5](https://github.com/nextcloud/mail/commit/6f4e2c52f3e070c09dd01fcbb3369731e42be54b))\n* **deps:** bump core-js from 3.36.0 to ^3.36.1 (main) ([#9475](https://github.com/nextcloud/mail/issues/9475)) ([6d1442d](https://github.com/nextcloud/mail/commit/6d1442d2e4b383000f27f48152c8009cd5bf88ee))\n* **deps:** bump dompurify from 3.0.9 to ^3.0.10 (main) ([#9476](https://github.com/nextcloud/mail/issues/9476)) ([aca2138](https://github.com/nextcloud/mail/commit/aca21388ebc5eb630a7ecb6e40306e6ddd546889))\n* display iCloud messages ([8417e52](https://github.com/nextcloud/mail/commit/8417e52e517bdad8003c9d63a2a66f0268bb4c9b))\n\n\n\n# [3.6.0-beta2](https://github.com/nextcloud/mail/compare/v3.6.0-beta1...v3.6.0-beta2) (2024-03-12)\n\n\n### Bug Fixes\n\n* add command to repair broken autoresponders ([60b199e](https://github.com/nextcloud/mail/commit/60b199ebcbd818652bafcfea0958d7b32b4ea5c6))\n* add name_hash as nullable ([d8de6d2](https://github.com/nextcloud/mail/commit/d8de6d2e30332a3a51d37225de680574c137f0ab))\n* Alien envelopes ([8dfae53](https://github.com/nextcloud/mail/commit/8dfae5396194f6b6613f9e6dafc946e682f03fe0))\n* allow syncing of mailboxes with a trailing space ([9783069](https://github.com/nextcloud/mail/commit/9783069f6b8bb36f57d0b3e65a8384cebadf93f2))\n* **autoresponder:** use subject placeholder instead of ooo short message ([5899ebe](https://github.com/nextcloud/mail/commit/5899ebe00a2911421160396c49a7e74c0d5fa780))\n* cache accounts by userId in AccountService ([c69c7d7](https://github.com/nextcloud/mail/commit/c69c7d724feb7ac943ff61c7ab57f93e2f1dde96))\n* **clean-up:** remove all outdated classifier not only 100 per day ([0e3fcce](https://github.com/nextcloud/mail/commit/0e3fccec8f9555cd8d1b2bf72092120d73005ba3))\n* **composer:** creating new options in recipient selects ([ffd78d5](https://github.com/nextcloud/mail/commit/ffd78d51c3bb46035ee705cb8a52de1699da98ba))\n* **composer:** duplicate label in to, cc and bcc selects ([5fec0d1](https://github.com/nextcloud/mail/commit/5fec0d1f19467dd2826e24c43e66cb114911a30b))\n* **db:** add version check for index with length ([2cafaa1](https://github.com/nextcloud/mail/commit/2cafaa1ae08185d46c81feef451a447a26c821ad))\n* **db:** Avoid dirty read for collected addresses ([66fdc0b](https://github.com/nextcloud/mail/commit/66fdc0bbe0b6497320eef449cc5ed644e91025fd))\n* **db:** Avoid dirty read for local message updates ([fff840a](https://github.com/nextcloud/mail/commit/fff840ac4f88c12cd484af0cd730a913e92e6865))\n* **db:** Avoid dirty reads while deleting messages by uid ([e92114e](https://github.com/nextcloud/mail/commit/e92114e90e7733d1a7eccfa94067fb5699df7075))\n* **deps:** Apply npm audit fix ([e97f337](https://github.com/nextcloud/mail/commit/e97f337049be90e03f28dddec57bcf5af0555410))\n* **deps:** bump @nextcloud/calendar-js from 6.0.1 to ^6.1.0 (main) ([#9068](https://github.com/nextcloud/mail/issues/9068)) ([00bf78b](https://github.com/nextcloud/mail/commit/00bf78bfed62af45678eeb6a08c130378a6d48f2))\n* **deps:** bump @nextcloud/dialogs from 4.1.0 to ^4.2.5 (main) ([#8797](https://github.com/nextcloud/mail/issues/8797)) ([cadad6e](https://github.com/nextcloud/mail/commit/cadad6e2245c6c5a6f47308a1cdf22eda6c3d4e7))\n* **deps:** bump @nextcloud/dialogs from 4.2.5 to ^4.2.6 (main) ([#9377](https://github.com/nextcloud/mail/issues/9377)) ([210d79c](https://github.com/nextcloud/mail/commit/210d79cc9d88e185298409b00c48fb0681f2d297))\n* **deps:** bump @nextcloud/dialogs from 4.2.6 to v5 ([4679883](https://github.com/nextcloud/mail/commit/4679883e2eabc871bd4fcd171a18a47262635b9a))\n* **deps:** bump @nextcloud/files from 2.1.0 to v3 ([2de7e60](https://github.com/nextcloud/mail/commit/2de7e60c13ca3eda51aa7159779e706b22690e6a))\n* **deps:** bump @nextcloud/moment from 1.2.2 to ^1.3.1 (main) ([#9396](https://github.com/nextcloud/mail/issues/9396)) ([1932e0f](https://github.com/nextcloud/mail/commit/1932e0f427993f2554597f4050fcdf18a3a77beb))\n* **deps:** bump @nextcloud/router from 2.2.0 to ^2.2.1 (main) ([#9360](https://github.com/nextcloud/mail/issues/9360)) ([9dd2149](https://github.com/nextcloud/mail/commit/9dd2149922af23b4b3fc8506e7a695fc37d252bd))\n* **deps:** bump @nextcloud/router from 2.2.1 to v3 ([b11cd98](https://github.com/nextcloud/mail/commit/b11cd9849916668db903cad34b0180cbe70fee44))\n* **deps:** bump @nextcloud/vue from 7.12.6 to ^7.12.7 ([6af3637](https://github.com/nextcloud/mail/commit/6af36374027ad41a7f1fd9b5f8737c035315b019))\n* **deps:** bump @nextcloud/vue from 8.5.0 to ^8.6.2 ([f68dd5a](https://github.com/nextcloud/mail/commit/f68dd5aead98d77dcf7914fa8dc2ba6e03406301))\n* **deps:** bump @nextcloud/vue from 8.6.2 to ^8.10.0 ([33a3e38](https://github.com/nextcloud/mail/commit/33a3e383a6494c16674f6907d4cfcbe8e22a99dd))\n* **deps:** bump address-rfc2822 from 2.1.0 to ^2.2.0 (main) ([#9405](https://github.com/nextcloud/mail/issues/9405)) ([584ed59](https://github.com/nextcloud/mail/commit/584ed59235b1c248decbca3238343498ed37a152))\n* **deps:** bump core-js from 3.33.2 to ^3.33.3 (main) ([#9083](https://github.com/nextcloud/mail/issues/9083)) ([1393394](https://github.com/nextcloud/mail/commit/13933946ba76d1e6ec8d53b191bc7f88e401a98f))\n* **deps:** bump core-js from 3.33.3 to ^3.34.0 (main) ([#9166](https://github.com/nextcloud/mail/issues/9166)) ([4ee62af](https://github.com/nextcloud/mail/commit/4ee62afe03553201a5ecef5036974b96af92e8c2))\n* **deps:** bump core-js from 3.34.0 to ^3.36.0 (main) ([#9406](https://github.com/nextcloud/mail/issues/9406)) ([4afd9d8](https://github.com/nextcloud/mail/commit/4afd9d85fda87194dd7b26e2c93dfe76623d58e2))\n* **deps:** bump dompurify from 3.0.6 to ^3.0.9 (main) ([#9270](https://github.com/nextcloud/mail/issues/9270)) ([f72b9f4](https://github.com/nextcloud/mail/commit/f72b9f427179e032096481df7e0a9c6a29ac6c03))\n* **deps:** bump ezyang/htmlpurifier from 4.16.0 to v4.17.0 (main) ([#9085](https://github.com/nextcloud/mail/issues/9085)) ([a1e4110](https://github.com/nextcloud/mail/commit/a1e41106258eadeb1d98d5bb58e815c04f49aa00))\n* **deps:** bump iframe-resizer from 4.3.7 to ^4.3.9 (main) ([#9084](https://github.com/nextcloud/mail/issues/9084)) ([68c9672](https://github.com/nextcloud/mail/commit/68c96723f491461c3e06325d43a3cf908c5d2d1f))\n* **deps:** bump js-base64 from 3.7.5 to ^3.7.6 (main) ([#9361](https://github.com/nextcloud/mail/issues/9361)) ([6eadbce](https://github.com/nextcloud/mail/commit/6eadbcefd7dcd8f230f23fb26a6c26e03c41ad50))\n* **deps:** bump js-base64 from 3.7.6 to ^3.7.7 (main) ([#9378](https://github.com/nextcloud/mail/issues/9378)) ([cbe62e4](https://github.com/nextcloud/mail/commit/cbe62e4890887650fde156d254d6891f482d24c5))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.0 to ^1.0.2 (main) ([#9379](https://github.com/nextcloud/mail/issues/9379)) ([2132361](https://github.com/nextcloud/mail/commit/2132361862dc2c4774993544afcfcfbe3820228e))\n* **deps:** bump p-limit from 4.0.0 to v5 ([2b99aba](https://github.com/nextcloud/mail/commit/2b99aba140a505c63f787298e0a410a45b7beda4))\n* **deps:** bump sabberworm/php-css-parser from 8.4.0 to ^8.5.1 (main) ([#9409](https://github.com/nextcloud/mail/issues/9409)) ([0a52127](https://github.com/nextcloud/mail/commit/0a521273f4916b02479b44284ff06f95535484f1))\n* **deps:** bump stylelint from 15.11.0 to v16 ([5238442](https://github.com/nextcloud/mail/commit/5238442d0cd3f34c6e11e2ece208b2519b25a47d))\n* **deps:** bump vue monorepo from 2.7.15 to ^2.7.16 (main) ([#9380](https://github.com/nextcloud/mail/issues/9380)) ([f2015c4](https://github.com/nextcloud/mail/commit/f2015c4a9f433d470b9b33b52145ef81581bb3b5))\n* **deps:** bump vue-material-design-icons from 5.2.0 to ^5.3.0 (main) ([#9407](https://github.com/nextcloud/mail/issues/9407)) ([3c2db50](https://github.com/nextcloud/mail/commit/3c2db50eb68f3e629f67ea4f6d9d9fb50dcf13ca))\n* **deps:** bump webdav from 4.11.3 to v5 ([184fba5](https://github.com/nextcloud/mail/commit/184fba5ad2a1960aac7905b905c17ab7c0878559))\n* **deps:** Switch KItinerary vendor ([736731f](https://github.com/nextcloud/mail/commit/736731f1b0169178a8e2fc79a2c8fa073cc42e8c))\n* **encoding:** better character encoding ([176e074](https://github.com/nextcloud/mail/commit/176e074df28a0a6d0c335ff141648743d3cb96c7))\n* Hack CSS to restore envelope styling ([d8c9f4e](https://github.com/nextcloud/mail/commit/d8c9f4edf898d11fb81e59273697a7cc3e663da6))\n* **imap:** Only rate limit actual auth errors ([b19918d](https://github.com/nextcloud/mail/commit/b19918dbd5d1f63aef32d6c738bc9a45117e2832))\n* **imap:** Pass flags as array for the STORE command ([4d1879d](https://github.com/nextcloud/mail/commit/4d1879d3e25777c69108ba8093d6c2888173e0da))\n* improve autoresponder time zone handling ([f0847be](https://github.com/nextcloud/mail/commit/f0847be20afb86850f57d40cd03ab0f052219846))\n* **integration:** Allow LLM event titles/agendas for non-admins ([2823ea2](https://github.com/nextcloud/mail/commit/2823ea27bf876b3e66750133f3ba8681fc2d00a6))\n* listen to more out-of-office events to prevent missed changes ([ee63978](https://github.com/nextcloud/mail/commit/ee639783bab0576eb12814f0c69d418ff83ea49e))\n* **message:** Translate task description label ([8887dbb](https://github.com/nextcloud/mail/commit/8887dbb3d1ddf5a320c4416daad2527d14d546d3))\n* **navigation:** Only make mailboxes with children collapsible ([ae43682](https://github.com/nextcloud/mail/commit/ae436822833038ec497db04836f6a63ce34310a0))\n* only load thread summary for threads with at least 3 messages. ([88ad956](https://github.com/nextcloud/mail/commit/88ad956d2e8dd059bde23daea9d076c695890b08))\n* **provisioning:** Clean up orphaned accounts ([ed228bb](https://github.com/nextcloud/mail/commit/ed228bb807db59a17b2250c92a20af7083c028fb))\n* **provisioning:** Do not require master password if disabled ([410e9bb](https://github.com/nextcloud/mail/commit/410e9bba356aa9d3508169be256ffe5d4f6c7244))\n* **quota:** don't divide by limit zero ([dd788e7](https://github.com/nextcloud/mail/commit/dd788e74df60acc4ca92afb0573a1de1e7d3797a))\n* **search:** Align advanced search UI elements better ([7b42142](https://github.com/nextcloud/mail/commit/7b4214215cd10b3ffea5a1eddfb2ba6435dd2646))\n* **search:** Reduce advanced search icon size ([6042454](https://github.com/nextcloud/mail/commit/60424542fbd8d2cf466506fbaaf28de0f6964d27))\n* **setup:** Fix rate limit annotation syntax ([#9216](https://github.com/nextcloud/mail/issues/9216)) ([a3f1970](https://github.com/nextcloud/mail/commit/a3f197033a8f3ed3636177a4af9310564157d3c2)), closes [nextcloud/mail#9170](https://github.com/nextcloud/mail/issues/9170) [/github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php#L66](https://github.com//github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php/issues/L66)\n* **setup:** Increase rate limit ([89876e1](https://github.com/nextcloud/mail/commit/89876e13b3e94082582c8fd466261c5c12319e43))\n* **setup:** Sort MX records by weight ([684a215](https://github.com/nextcloud/mail/commit/684a215e8119d4f30b826c1da63a1f83972fb3cd))\n* **setup:** Use MX record TLD for ISPDB lookup ([1b2f3a0](https://github.com/nextcloud/mail/commit/1b2f3a012fb8be2ac2ec6dc5fb4294bff9a4e618))\n* **setup:** Use MX sort result ([da9b578](https://github.com/nextcloud/mail/commit/da9b57815fe223468fbe60630346c38da920f934))\n* **smime:** alias to cert mapping in account settings ([ed7c152](https://github.com/nextcloud/mail/commit/ed7c15297f00c24e122d87c0eea029d23d670bbc))\n* **sync:** force full sync when the server reports QRESYNC ([eacd84c](https://github.com/nextcloud/mail/commit/eacd84c7b279e3b0659611f8e0fe9628ed3a207a))\n* Use property_exists for SimpleXMLElement checks ([3e8aeec](https://github.com/nextcloud/mail/commit/3e8aeec36a141961f31ae69d46a9e3cb123ce024))\n\n\n### Features\n\n* apply personal out-of-office data to the auto responder ([3cbdf1f](https://github.com/nextcloud/mail/commit/3cbdf1f302aa136db72feda1e32bbdb76f3622ee))\n* **composer:** Use editor toolbar instead of balloon ([e9f068f](https://github.com/nextcloud/mail/commit/e9f068fd0c225f48cbc031b929743edb4155e31a))\n* **deps:** Support Nextcloud 29 ([5b43ae2](https://github.com/nextcloud/mail/commit/5b43ae2a19ff88f463369e8e232d76cefd9fb86c))\n* **integration:** Combine all LLM feature flags ([8c934bd](https://github.com/nextcloud/mail/commit/8c934bd74785abc8b43fb2e5f33fcb8ba3f8ae86))\n* **integration:** Support DESCRPTION for events ([f80bef4](https://github.com/nextcloud/mail/commit/f80bef4dbb0426903dabe019b75f6ef6801b115b))\n* **integration:** Use LLM to fill event details ([eab26c4](https://github.com/nextcloud/mail/commit/eab26c477374cb2179f433e36d4ff0ace0ba9582))\n* move threads not messages in drag-and-drop ([c18a1e4](https://github.com/nextcloud/mail/commit/c18a1e46b389130d53140380c46f85b4216c9a76))\n* **smime:** allow selection of untrusted certs ([6111216](https://github.com/nextcloud/mail/commit/611121620e0d489216d2aa2de569ba54a397079a))\n\n\n### Performance Improvements\n\n* Add performance logger to clean up ([48550d6](https://github.com/nextcloud/mail/commit/48550d64dae9d7483fec21941cb4df7f4ae12e65))\n* **db:** Add message_id index for mail_messages table ([7e32031](https://github.com/nextcloud/mail/commit/7e32031d563a0437fbbe382807e9e8b1ca74f2e2))\n* **db:** optimise indices of mail tables ([4c356d6](https://github.com/nextcloud/mail/commit/4c356d6995d1ce6a38763f855e309dfb02e37eeb))\n* **sync:** Reduce db operations for accounts without CONDSTORE ([413dfbb](https://github.com/nextcloud/mail/commit/413dfbb6b0e772ebe0b44f75f6a6057582165b8f))\n\n\n\n# [3.5.0-beta3](https://github.com/nextcloud/mail/compare/v3.5.0-beta2...v3.5.0-beta3) (2023-11-14)\n\n\n### Features\n\n* **advanced-search:** allow date and recipient search ([8e12c63](https://github.com/nextcloud/mail/commit/8e12c633ddd3c20c70099c9ab94705d9eb44f7f0))\n\n\n\n# [3.5.0-beta2](https://github.com/nextcloud/mail/compare/v3.5.0-beta1...v3.5.0-beta2) (2023-11-09)\n\n\n### Bug Fixes\n\n* **accessibility:** Add arial-label to NcActionButtons without text ([7c440e1](https://github.com/nextcloud/mail/commit/7c440e130e6cb3ff4ca3cd76f01d0262a18c1d03))\n* add expiration for itinerary cache ([4c60847](https://github.com/nextcloud/mail/commit/4c608472c08c465713b9e14f32877dd23ce0e4e2))\n* Add missing background box for redirect page ([953998e](https://github.com/nextcloud/mail/commit/953998e0af98453f5f2cf3edfe7f10bc489c431c))\n* add preview enhancement job to new accounts joblist ([09ba345](https://github.com/nextcloud/mail/commit/09ba345edf21d6a13ca994b672af215dd37e3052))\n* Allow dynamic autoloading for classes added during upgrade ([d81bcca](https://github.com/nextcloud/mail/commit/d81bcca8c147019b506f6011ce9c8863f18814b3))\n* allow sending of messages with empty body content ([646ccfe](https://github.com/nextcloud/mail/commit/646ccfe38e54877d06de934ee61774a4688d1dfb))\n* archiving messages via shortcut ([0569444](https://github.com/nextcloud/mail/commit/0569444b2908b17198ba4419679ee0322dd639ac))\n* **attachments:** fetch message once when saving attachments in files ([f7921f1](https://github.com/nextcloud/mail/commit/f7921f19106b0e0584fccb5260b0c0a544706b4d))\n* **autocomplete:** make system address book searchable not just full matches ([d8be257](https://github.com/nextcloud/mail/commit/d8be2578ca29e272e334c7ec69467c9c5ea25edf))\n* **avatar:** Validate favicon hosts ([4d63219](https://github.com/nextcloud/mail/commit/4d6321962973c947b21181cc9ffb7e272d9cb926))\n* **bgJob:** Fix DB-Query for open drafts ([4530a34](https://github.com/nextcloud/mail/commit/4530a34ec5e69a4d94e3af62636f430760f29234))\n* button style ([6bb69c7](https://github.com/nextcloud/mail/commit/6bb69c7f0c5e61b40a31ce5a3bb1e3a3d8ef0932))\n* Check strict cookies for image proxy ([be36e3e](https://github.com/nextcloud/mail/commit/be36e3e342c0d889670ac80434f07c5cabba6159))\n* **classification:** Delete historic data ([8e1e5ea](https://github.com/nextcloud/mail/commit/8e1e5ea65f6db951a95cdec50f50d3f29880a554))\n* **classification:** refactor persistence ([a23dac9](https://github.com/nextcloud/mail/commit/a23dac94a52d98cd7c64d62944b7d217bb8a0170))\n* **cleanup:** clean up mail_message_tags and mail_tags ([68e0b9b](https://github.com/nextcloud/mail/commit/68e0b9b0c1efd1efe9b73daabd3d81a9ccf6dfc4))\n* **composer:** add gap between primary actions ([4a90cd8](https://github.com/nextcloud/mail/commit/4a90cd809c0e2e7f6e9ff652f1f885e3568cbb41))\n* **composer:** forward messages as attachments ([81fbc14](https://github.com/nextcloud/mail/commit/81fbc143aea28dbdf220c9e57390b4de11583eba))\n* Convert drafts to outbox messages before sending ([b74afd3](https://github.com/nextcloud/mail/commit/b74afd3fee114ff9b0e1460c12e95a20d2c71a09))\n* dashboard loading forever ([bac8f1a](https://github.com/nextcloud/mail/commit/bac8f1ae8ba32f2c3b69cc96258f907e9839f0d9)), closes [/github.com/browserify/node-util/issues/57#issuecomment-764436352](https://github.com//github.com/browserify/node-util/issues/57/issues/issuecomment-764436352)\n* **db:** Identify retention and snooze mailboxes uniquely ([af20473](https://github.com/nextcloud/mail/commit/af20473aa7ddd6c80235d33535ad9a8eb14b2fa3))\n* **db:** Run read-write-update of mailboxes in transaction ([f6154c5](https://github.com/nextcloud/mail/commit/f6154c528aadc43021987de967401682c9797563))\n* deprecation warning for drafts controller test ([07c15f2](https://github.com/nextcloud/mail/commit/07c15f2b26cb5f97654f57d80df767d735faac91))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 33.0.1 to v34 ([96d13ae](https://github.com/nextcloud/mail/commit/96d13ae7941c667f1a37e3f7eb7cf47f0c369116))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.0.2 to ~34.1.2 ([86242da](https://github.com/nextcloud/mail/commit/86242da8c90991f32dc8e6a9d7bd19b51519a632))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.2 to ~34.1.3 ([85fa23a](https://github.com/nextcloud/mail/commit/85fa23a4c9ab6e672db1071e87067c94af2fb145))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.3 to v35 ([092a0dd](https://github.com/nextcloud/mail/commit/092a0dd1d77c8739cbfa175cbf4112db572284e5))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.3 to ~35.0.6 ([99f336f](https://github.com/nextcloud/mail/commit/99f336f1015def3a7c24e6d8d81d5f2f0bf6b721))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.6 to v37 ([d7822c1](https://github.com/nextcloud/mail/commit/d7822c12b2eec3c88764b98042332da3a4be449f))\n* **deps:** bump @nextcloud/auth from 2.0.0 to ^2.1.0 ([d8855ce](https://github.com/nextcloud/mail/commit/d8855ce558315176129d9e2f6875921853a6eaff))\n* **deps:** bump @nextcloud/auth from 2.1.0 to ^2.2.1 (main) ([#8887](https://github.com/nextcloud/mail/issues/8887)) ([a3d2a77](https://github.com/nextcloud/mail/commit/a3d2a77d44b047fd304e76ad7f1833f39d5e31d8))\n* **deps:** bump @nextcloud/axios from 2.3.0 to ^2.4.0 ([eb29ab7](https://github.com/nextcloud/mail/commit/eb29ab77b38ef8b51c36cd6a94c6d587ac7d62ac))\n* **deps:** bump @nextcloud/calendar-js from 3.2.0 to v5 ([bcee50a](https://github.com/nextcloud/mail/commit/bcee50a852bae25850ec802d5378fd978d28b7df))\n* **deps:** bump @nextcloud/calendar-js from 5.0.3 to ^5.0.4 ([67d6099](https://github.com/nextcloud/mail/commit/67d6099971d5ba7fe619d95a36cb0e48ec8033f3))\n* **deps:** bump @nextcloud/calendar-js from 5.0.4 to ^5.0.5 ([a3df9dc](https://github.com/nextcloud/mail/commit/a3df9dcd7f17f53699a615b8f17fb85ebe4072a8))\n* **deps:** bump @nextcloud/calendar-js from 5.0.5 to v6 ([1bfce7e](https://github.com/nextcloud/mail/commit/1bfce7e8f794607e47b962ef83d499a40f52981d))\n* **deps:** bump @nextcloud/calendar-js from 6.0.0 to ^6.0.1 ([9da3cb1](https://github.com/nextcloud/mail/commit/9da3cb105b419c8155888f1681935ae4cfe9427d))\n* **deps:** bump @nextcloud/dialogs from 3.2.0 to v4 ([1086158](https://github.com/nextcloud/mail/commit/10861585a80b9d42955e196c167928a92ce6204b))\n* **deps:** bump @nextcloud/dialogs from 4.0.1 to ^4.1.0 (main) ([#8662](https://github.com/nextcloud/mail/issues/8662)) ([8e05e5c](https://github.com/nextcloud/mail/commit/8e05e5c1bc6f7e5b7c41bf315484918281eedd8d))\n* **deps:** bump @nextcloud/initial-state from 2.0.0 to ^2.1.0 (main) ([#8691](https://github.com/nextcloud/mail/issues/8691)) ([46f47ec](https://github.com/nextcloud/mail/commit/46f47ec7f94864caabcb27a69b2f851f84d2d105))\n* **deps:** bump @nextcloud/l10n from 2.1.0 to ^2.2.0 (main) ([#8833](https://github.com/nextcloud/mail/issues/8833)) ([34a1ca0](https://github.com/nextcloud/mail/commit/34a1ca02a0ac7989b108fdb02311d2222bb92a6b))\n* **deps:** bump @nextcloud/logger from 2.5.0 to ^2.7.0 (main) ([#8888](https://github.com/nextcloud/mail/issues/8888)) ([74b0576](https://github.com/nextcloud/mail/commit/74b05768d7f0caf5dac155552cffccbe51a56185))\n* **deps:** bump @nextcloud/moment from 1.2.1 to ^1.2.2 (main) ([#8970](https://github.com/nextcloud/mail/issues/8970)) ([027069e](https://github.com/nextcloud/mail/commit/027069eb7ab742ae5fff34a8da9688b1bd69566d))\n* **deps:** bump @nextcloud/router from 2.0.1 to ^2.1.1 ([83267ef](https://github.com/nextcloud/mail/commit/83267ef03d146e32bab35beb36424ddb1fdc82cd))\n* **deps:** bump @nextcloud/router from 2.1.1 to ^2.1.2 ([4bcf00b](https://github.com/nextcloud/mail/commit/4bcf00bb21d3ad519245f17e114ffe946137143f))\n* **deps:** bump @nextcloud/router from 2.1.2 to ^2.2.0 (main) ([#8999](https://github.com/nextcloud/mail/issues/8999)) ([0b9ccea](https://github.com/nextcloud/mail/commit/0b9ccea3abf7807faef10828ecbe03232900ff3e))\n* **deps:** bump @nextcloud/vue from 7.11.3 to ^7.11.4 ([756b508](https://github.com/nextcloud/mail/commit/756b50801c04fe4627175a8469824775003f833f))\n* **deps:** bump @nextcloud/vue from 7.11.4 to ^7.12.0 ([4f4c2e6](https://github.com/nextcloud/mail/commit/4f4c2e63835c8779fbd2baffcf834de5634388ae))\n* **deps:** bump @nextcloud/vue from 7.12.0 to ^7.12.1 ([d4ee8a1](https://github.com/nextcloud/mail/commit/d4ee8a129a68a512d4f2762b4e709439e8e968a2))\n* **deps:** bump @nextcloud/vue from 7.12.1 to ^7.12.2 ([2d6c7be](https://github.com/nextcloud/mail/commit/2d6c7be52b3214d151df19562fd9b7f44be35ac1))\n* **deps:** bump @nextcloud/vue from 7.12.2 to ^7.12.4 ([ef1f9b5](https://github.com/nextcloud/mail/commit/ef1f9b51407c5108bb5a5bb796ebd319896268eb))\n* **deps:** bump @nextcloud/vue from 7.12.4 to ^7.12.6 ([93d92ae](https://github.com/nextcloud/mail/commit/93d92ae227566595167cd989c65f2a899aa157cf))\n* **deps:** bump @nextcloud/vue from 7.5.0 to ~7.8.0 ([93d1016](https://github.com/nextcloud/mail/commit/93d1016a48435a6fbcc9165da126dbe9556a8907))\n* **deps:** bump @nextcloud/vue from 7.7.0 to ^7.7.1 ([6d012a3](https://github.com/nextcloud/mail/commit/6d012a3d0b316bd74e1f476280fbd68fb33bdf07))\n* **deps:** bump @nextcloud/vue from 7.8.0 to ^7.8.5 ([59d1982](https://github.com/nextcloud/mail/commit/59d1982e7b74f417a69c03643e15986be77d3d9c))\n* **deps:** bump @nextcloud/vue from 7.8.5 to ^7.11.3 ([ec4732b](https://github.com/nextcloud/mail/commit/ec4732bce76f6b1ea97e9f952f027459cf57acb0))\n* **deps:** bump @nextcloud/vue-dashboard from 2.0.1 to ^2.0.1 ([f636457](https://github.com/nextcloud/mail/commit/f63645707ac4d6e5478039ffc7f31e50f7717d55))\n* **deps:** bump arthurhoaro/favicon from 1.3.3 to ^1.3.4 (main) ([#8995](https://github.com/nextcloud/mail/issues/8995)) ([04fa7d0](https://github.com/nextcloud/mail/commit/04fa7d0d583b491c51cb9a87b357f03912904316))\n* **deps:** bump arthurhoaro/favicon from 1.3.4 to v2 ([88a6bf7](https://github.com/nextcloud/mail/commit/88a6bf7f0aade4fb0a153c1e6553c498d19e806d))\n* **deps:** bump bytestream/horde-imap-client from 2.32.0 to ^2.33.1 (main) ([#8862](https://github.com/nextcloud/mail/issues/8862)) ([4619663](https://github.com/nextcloud/mail/commit/4619663931caffae0c7da7eb7b0373b1ffcdafc1))\n* **deps:** bump cerdic/css-tidy from 2.0.3 to v2.1.0 (main) ([#8889](https://github.com/nextcloud/mail/issues/8889)) ([d88c084](https://github.com/nextcloud/mail/commit/d88c0845b47eb1a41be6fea7f1f6556813584015))\n* **deps:** bump christophwurst/kitinerary-bin from 0.3.0 to ^0.4 ([9e152bd](https://github.com/nextcloud/mail/commit/9e152bda26bc3d57c3e4c5b54b2fc0eaad74d9b6))\n* **deps:** bump christophwurst/kitinerary-sys from 0.2.0 to ^0.2.1 ([185760b](https://github.com/nextcloud/mail/commit/185760b914a995d0996ae502f8e14043140896a4))\n* **deps:** bump ckeditor family from 35.1.0 to v35.4.0 ([ecf545c](https://github.com/nextcloud/mail/commit/ecf545cf9d77c3d73512b4f07c522c9d33837785))\n* **deps:** bump ckeditor family from 35.4.0 to v37 ([baa8e33](https://github.com/nextcloud/mail/commit/baa8e33157f57fce5dec66f4e419567e74ff005a))\n* **deps:** bump ckeditor family from 37.0.1 to v37.1.0 ([ada9892](https://github.com/nextcloud/mail/commit/ada9892b482c18972cbe291ff2991a67b586122f))\n* **deps:** bump core-js from 3.28.0 to ^3.29.0 ([e9fdca5](https://github.com/nextcloud/mail/commit/e9fdca5c6969ac6fc25f8722e2c121c12a3bf6b5))\n* **deps:** bump core-js from 3.29.0 to ^3.29.1 ([0ae1b80](https://github.com/nextcloud/mail/commit/0ae1b809645babbe8a881863def49048c2444f98))\n* **deps:** bump core-js from 3.29.1 to ^3.30.1 ([a19e752](https://github.com/nextcloud/mail/commit/a19e7528a8b02819debde15b0013a590ee91dc66))\n* **deps:** bump core-js from 3.30.1 to ^3.30.2 ([b1f8354](https://github.com/nextcloud/mail/commit/b1f8354aa099f8bfcbc10bbc4960e5525b81f56c))\n* **deps:** bump core-js from 3.30.2 to ^3.31.0 (main) ([#8542](https://github.com/nextcloud/mail/issues/8542)) ([3f5cb32](https://github.com/nextcloud/mail/commit/3f5cb32ddec5c767ab647cc17c811409ab499cf6))\n* **deps:** bump core-js from 3.31.0 to ^3.31.1 (main) ([#8619](https://github.com/nextcloud/mail/issues/8619)) ([a204a78](https://github.com/nextcloud/mail/commit/a204a789a0f43e09c12f9133aee5937f56fc812c))\n* **deps:** bump core-js from 3.31.1 to ^3.32.2 (main) ([#8877](https://github.com/nextcloud/mail/issues/8877)) ([cd75e3c](https://github.com/nextcloud/mail/commit/cd75e3c3170564c4675c6a7a1b89a69032aa9189))\n* **deps:** bump core-js from 3.32.2 to ^3.33.0 (main) ([#8921](https://github.com/nextcloud/mail/issues/8921)) ([9591a27](https://github.com/nextcloud/mail/commit/9591a27f717b6b84a15e96c172aa52bba3fda20c))\n* **deps:** bump core-js from 3.33.0 to ^3.33.1 (main) ([#8996](https://github.com/nextcloud/mail/issues/8996)) ([1e1e05d](https://github.com/nextcloud/mail/commit/1e1e05d871ea92b2cb427a236ea1df97ef7b1484))\n* **deps:** bump core-js from 3.33.1 to ^3.33.2 (main) ([#9039](https://github.com/nextcloud/mail/issues/9039)) ([9f8935f](https://github.com/nextcloud/mail/commit/9f8935f9c8dca1ec1af3a2bbc8435a8a42481b30))\n* **deps:** bump dompurify from 2.4.4 to ^2.4.5 ([4666628](https://github.com/nextcloud/mail/commit/466662877a31a3ad9ed2fa69b1eb7cd8a6125e6a))\n* **deps:** bump dompurify from 2.4.5 to v3 ([aac1a47](https://github.com/nextcloud/mail/commit/aac1a47b8e3c6b308bf331ab1077283133eb04b6))\n* **deps:** bump dompurify from 3.0.1 to ^3.0.2 ([6b5e91f](https://github.com/nextcloud/mail/commit/6b5e91fbeae6539a86e1bcf59381fff19ba019fc))\n* **deps:** bump dompurify from 3.0.2 to ^3.0.3 ([36b38fc](https://github.com/nextcloud/mail/commit/36b38fcdee9d1bc54481515d844a2f2a8733e354))\n* **deps:** bump dompurify from 3.0.3 to ^3.0.5 (main) ([#8600](https://github.com/nextcloud/mail/issues/8600)) ([bd916f4](https://github.com/nextcloud/mail/commit/bd916f44b1e5efaa73f70b2a37f9270e7565b927))\n* **deps:** bump dompurify from 3.0.5 to ^3.0.6 (main) ([#8913](https://github.com/nextcloud/mail/issues/8913)) ([520b22b](https://github.com/nextcloud/mail/commit/520b22bd744086c22c7934ea29ba1fd6f9ca2403))\n* **deps:** bump html-to-text from 9.0.4 to ^9.0.5 ([bb50bd3](https://github.com/nextcloud/mail/commit/bb50bd3ee49028ee9882bcad5ddd1b59e94edcaf))\n* **deps:** bump iframe-resizer from 4.3.4 to ^4.3.5 ([292a4ed](https://github.com/nextcloud/mail/commit/292a4eda417ec841b61874db5b3ceb0c12f67c4a))\n* **deps:** bump iframe-resizer from 4.3.5 to ^4.3.6 ([1258c20](https://github.com/nextcloud/mail/commit/1258c204a8b18b5454b41654089d73075fa6e108))\n* **deps:** bump iframe-resizer from 4.3.6 to ^4.3.7 (main) ([#8876](https://github.com/nextcloud/mail/issues/8876)) ([a0e1b75](https://github.com/nextcloud/mail/commit/a0e1b758a5b7b6e3aae9d96c2a2292c0446cf47f))\n* **deps:** bump ramda from 0.28.0 to ^0.29.0 ([dc1b797](https://github.com/nextcloud/mail/commit/dc1b797b2e1bd9320b73d3725299c85e3636adde))\n* **deps:** bump ramda from 0.29.0 to ^0.29.1 ([a7da9c5](https://github.com/nextcloud/mail/commit/a7da9c57c8666f0192f1fa68f0358e9821263b2b))\n* **deps:** bump rubix/ml from 2.3.0 to v2.3.1 ([3f3b8ab](https://github.com/nextcloud/mail/commit/3f3b8abf08855042ff04d779607f30584597dd76))\n* **deps:** bump rubix/ml from 2.3.1 to v2.3.2 ([b1d0c39](https://github.com/nextcloud/mail/commit/b1d0c39f0e061caf8d15481f5f67326c5fc428ec))\n* **deps:** bump rubix/ml from 2.3.2 to v2.4.0 (main) ([#8878](https://github.com/nextcloud/mail/issues/8878)) ([2bf6339](https://github.com/nextcloud/mail/commit/2bf6339760d4d654883f0f4768ed3a3567755f1c))\n* **deps:** bump stylelint from 14.16.1 to v15 ([58cc279](https://github.com/nextcloud/mail/commit/58cc279cc100ebe7a146f970b912839a6f79f608))\n* **deps:** bump stylelint from 15.10.1 to ^15.10.2 (main) ([#8652](https://github.com/nextcloud/mail/issues/8652)) ([55071f1](https://github.com/nextcloud/mail/commit/55071f1bfcb319b93be867e2a9993fe945eca7ba))\n* **deps:** bump stylelint from 15.10.2 to ^15.10.3 (main) ([#8794](https://github.com/nextcloud/mail/issues/8794)) ([19fb7d1](https://github.com/nextcloud/mail/commit/19fb7d13a55f29a4de1ac60ffacfcbfca1662a75))\n* **deps:** bump stylelint from 15.10.3 to ^15.11.0 (main) ([#8972](https://github.com/nextcloud/mail/issues/8972)) ([029a85e](https://github.com/nextcloud/mail/commit/029a85ec6283b5a5f64d8109ba3a086c24213105))\n* **deps:** bump stylelint from 15.6.0 to ^15.6.1 ([bb01248](https://github.com/nextcloud/mail/commit/bb012480e1bcc746f2410f6a2c41241609839eb9))\n* **deps:** bump stylelint from 15.6.1 to ^15.6.2 ([36919f8](https://github.com/nextcloud/mail/commit/36919f817dc88d104aa7efd63ab571fae7024ab9))\n* **deps:** bump stylelint from 15.6.2 to v15.10.1 ([03a1960](https://github.com/nextcloud/mail/commit/03a19607efa299c92c51cbb53df7d75e0392db7f))\n* **deps:** bump uuid from 9.0.0 to ^9.0.1 (main) ([#8861](https://github.com/nextcloud/mail/issues/8861)) ([c127802](https://github.com/nextcloud/mail/commit/c1278020abf4b0b2dc42687913d527c02f889279))\n* **deps:** bump vue monorepo from 2.7.14 to ^2.7.15 (main) ([#8998](https://github.com/nextcloud/mail/issues/8998)) ([048cfcf](https://github.com/nextcloud/mail/commit/048cfcf180064f8b02fb5be08776055bc4b91e56))\n* **deps:** bump webdav from 4.11.2 to ^4.11.3 (main) ([#8832](https://github.com/nextcloud/mail/issues/8832)) ([6a3eb86](https://github.com/nextcloud/mail/commit/6a3eb86ac548e23d7dd032c2553873c8848f0661))\n* **deps:** bump webpack to v5.76.0 ([283751c](https://github.com/nextcloud/mail/commit/283751c36c014f0f550a9324870f0f10b7aa5dc2))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 37.0.1 to 37.0.1 ([97d3f99](https://github.com/nextcloud/mail/commit/97d3f99dcc5a75f1b9d6d71553db877ea5d6dd94))\n* **deps:** pin dependencies ([04f90aa](https://github.com/nextcloud/mail/commit/04f90aac8fa8e3406c5678e1176a5eccc167c9cc))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-utils to ~33.0.1 ([b6c05fb](https://github.com/nextcloud/mail/commit/b6c05fb41716eecefd6edb7a74907e82c30030bf))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-webpack-plugin to ~31.1.13 ([1a6df4d](https://github.com/nextcloud/mail/commit/1a6df4dccbeb528935b57b7823554330cde584c6))\n* **deps:** update dependency @nextcloud/calendar-js to ^3.2.0 ([34e890f](https://github.com/nextcloud/mail/commit/34e890f6b140b0d660eb063e54abf5d539aa430c))\n* **deps:** update dependency @nextcloud/l10n to ^2.1.0 ([9e02ddf](https://github.com/nextcloud/mail/commit/9e02ddf783442d446081c749e670ac8896b35e67))\n* **deps:** update dependency @nextcloud/logger to ^2.5.0 ([63fa8fc](https://github.com/nextcloud/mail/commit/63fa8fcd18fd3be24d59fc8877a52af33956dbf5))\n* **deps:** update dependency @nextcloud/router to ^2.0.1 ([640cb16](https://github.com/nextcloud/mail/commit/640cb16318de8b66d8594983696d0326eb04bdc5))\n* **deps:** update dependency arthurhoaro/favicon to ^1.3.3 ([3dd40d9](https://github.com/nextcloud/mail/commit/3dd40d9c983d230257c26033d56c609a885b2834))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.8.2 ([72a6c3d](https://github.com/nextcloud/mail/commit/72a6c3da4051f6fbe80dcf5f9fbca60e8e6a7902))\n* **deps:** update dependency bytestream/horde-exception to ^2.2.0 ([c6a22fb](https://github.com/nextcloud/mail/commit/c6a22fb5145f96cc6f0f1583b4a7712fe76dd5aa))\n* **deps:** update dependency bytestream/horde-imap-client to ^2.32.0 ([fd710ca](https://github.com/nextcloud/mail/commit/fd710caa1bc5c8e1d0273c50ad1af779e3779262))\n* **deps:** update dependency bytestream/horde-mail to ^2.7.1 ([e7f928a](https://github.com/nextcloud/mail/commit/e7f928aa0445e360a6c8148d3cd07b87c920b285))\n* **deps:** update dependency bytestream/horde-mime to ^2.13.0 ([9ba0faa](https://github.com/nextcloud/mail/commit/9ba0faaf21c7a488d7bd68b659d0bf0792ae4b57))\n* **deps:** update dependency bytestream/horde-stream to ^1.7.1 ([32dd650](https://github.com/nextcloud/mail/commit/32dd6505b093c91c688231f6297147d2f6462220))\n* **deps:** update dependency bytestream/horde-stringprep to ^1.2.1 ([6899089](https://github.com/nextcloud/mail/commit/6899089b54536f6887ac0ed8fb0bfd85c64e3dbe))\n* **deps:** update dependency bytestream/horde-support to ^2.4.0 ([0815416](https://github.com/nextcloud/mail/commit/0815416339873da5fcac33742d2e9564311a71c4))\n* **deps:** update dependency bytestream/horde-text-filter to ^2.5.0 ([c3e551a](https://github.com/nextcloud/mail/commit/c3e551ad07f1cfd0bae89b503526807c8d7dab5f))\n* **deps:** update dependency bytestream/horde-util to ^2.7.0 ([3189a16](https://github.com/nextcloud/mail/commit/3189a1662e5fc3473cb517a0bdc94d45773d154c))\n* **deps:** update dependency core-js to ^3.28.0 ([6024f02](https://github.com/nextcloud/mail/commit/6024f025b649fe714a36cd4544c706868e8cf403))\n* **deps:** update dependency dompurify to ^2.4.4 ([f5e1f7a](https://github.com/nextcloud/mail/commit/f5e1f7a322fe3324342f12a92c6df41352713950))\n* **deps:** update dependency html-to-text to ^9.0.4 ([8cd5302](https://github.com/nextcloud/mail/commit/8cd53027c1e893bcb5f3dc32cc03b3ccd8a85943))\n* **deps:** update dependency html2text/html2text to ^4.3.1 ([e7c6575](https://github.com/nextcloud/mail/commit/e7c65752296babeb30fb2ffce4d9be7755cff9e4))\n* **deps:** update dependency iframe-resizer to ^4.3.4 ([b0b5368](https://github.com/nextcloud/mail/commit/b0b536802116bc562b89b9e849253b34c98b0427))\n* **deps:** update dependency js-base64 to ^3.7.5 ([e0d0502](https://github.com/nextcloud/mail/commit/e0d0502a0f6c943022987ebafb70dd971557a0b0))\n* **deps:** update dependency nextcloud/horde-smtp to ^1.0.2 ([de218de](https://github.com/nextcloud/mail/commit/de218de8faf08072fd032ab7516efbd07f3b1969))\n* **deps:** update dependency sabberworm/php-css-parser to ^8.4.0 ([18dc8ca](https://github.com/nextcloud/mail/commit/18dc8cacc7d8d2d1c20f29e89a3f377276be0550))\n* **deps:** Update voku/* to fix PHP8.2 warnings ([5b816be](https://github.com/nextcloud/mail/commit/5b816be463bfb11b6306b33f89bb293930028150))\n* **deps:** Update wamania/php-stemmer and voku/portable-utf8 ([f176956](https://github.com/nextcloud/mail/commit/f176956aff7d299dc148b4865fccc0792be99556))\n* downgrade nextcloud/vue to 7.8.0 to fix envelope list ([7c7da66](https://github.com/nextcloud/mail/commit/7c7da66a3704846de3b5ab29ab3ba1f5d2fc3ce5))\n* **drafts:** delete old draft when saving new version ([d7a9370](https://github.com/nextcloud/mail/commit/d7a93709b8af95a1a153f805bf518bb4c498c201))\n* drop index on mail_messages_retention.message_id ([a884ebf](https://github.com/nextcloud/mail/commit/a884ebf2ea187c78c2d8a0837bc848c15a8b42e9))\n* drop unique index on mail_messages_snoozed.message_id ([d7e397e](https://github.com/nextcloud/mail/commit/d7e397e5844d47a23bb8cfa339560b76ac995049))\n* endless loop on mailbox initialization ([0048e40](https://github.com/nextcloud/mail/commit/0048e4002cf6c91680c8855b2a41c91708d85e1c))\n* **envelope menu:** prevent modals from closing automatically ([b0209f1](https://github.com/nextcloud/mail/commit/b0209f1aae8190812fa07ed275d44fd80e352c08))\n* handle attachments without transfer encoding properly ([8c3c248](https://github.com/nextcloud/mail/commit/8c3c248c585ba8da036cd8bc3cc2cdfc79ad02f3))\n* handling of envelope fetch error messages ([d4a5e8e](https://github.com/nextcloud/mail/commit/d4a5e8e9c697ad27c0c63f81e2872d33cfef3cb1))\n* Harden outbox/draft message retrieval of shared storage ([2eaa6eb](https://github.com/nextcloud/mail/commit/2eaa6eb145a6f856c402d71d4fe61869815ec6f3))\n* html-entitites via mb_convert_encoding was deprecated with php 8.2 ([71490a0](https://github.com/nextcloud/mail/commit/71490a0b02bbc0fd8844a5c39d44e609f4448986))\n* **i19n:** Changed grammar ([7a36cdb](https://github.com/nextcloud/mail/commit/7a36cdbbd2c02fa7254a6d53e28715bf827daec5))\n* **imap:** Chunk MessageMapper::findByIds by command length ([768d8f8](https://github.com/nextcloud/mail/commit/768d8f8ffc505c587686a13d97dbef017aaf23c7))\n* **imap:** Chunk UIDs by string length ([df9e386](https://github.com/nextcloud/mail/commit/df9e386bdd4e9b1d483acd07a94a9b04c6ac5dc2))\n* **imap:** Ignore no select mailboxes for MYRIGHTS ([426d51f](https://github.com/nextcloud/mail/commit/426d51f105d4103435a0a0875e25a0a635d33adf))\n* **imap:** Ignore non existent mailboxes (again) ([e5e6402](https://github.com/nextcloud/mail/commit/e5e640209fb140e6ff97b7bfaccd704801563764))\n* **imap:** Log exception of failed namespace fetch ([74159b2](https://github.com/nextcloud/mail/commit/74159b28a631567e6aa4582c09d84551e3a45ae1))\n* **imap:** Only fetch mailbox STATUS once ([9582004](https://github.com/nextcloud/mail/commit/9582004b27320a73ffe701e3fba6db9a2354ace3))\n* **mailbox cache:** Fix mailbox cache sync scope of current mailbox ([4d7c52d](https://github.com/nextcloud/mail/commit/4d7c52dc7069f7b940da31166cdfbede836a3fca))\n* **mailto:** show empty thread view on handler ([43bdb38](https://github.com/nextcloud/mail/commit/43bdb38ee501d3e884ac275b5dba4141643d1627))\n* **mailvelope:** hide the missing pgp key warning when mailevelope is disabled again ([ef2481f](https://github.com/nextcloud/mail/commit/ef2481f8b7bf7124fafc08ee4e36a5902828693f))\n* make nested toolbar working for signature editor ([8c0965c](https://github.com/nextcloud/mail/commit/8c0965c775ab672cf1a2c24f161bad35da71da4c))\n* Make no sent mailbox configurged exception readable ([7109f99](https://github.com/nextcloud/mail/commit/7109f998fa34e1920b917c1fb1e8859b957ba112))\n* Merge overlapping recipient popovers ([c2925f1](https://github.com/nextcloud/mail/commit/c2925f143385f6a7e0f76a3108e4173c7e1ef7a0))\n* **message-filter:** Show starred messages in Favourites again ([465d4e5](https://github.com/nextcloud/mail/commit/465d4e5d52d5cc847523641b554911095d2011cd))\n* move to.exact route option to a prop ([a10117c](https://github.com/nextcloud/mail/commit/a10117ced60837c8993f1e4f1b0a84a81f0d6f9d))\n* **outbox:** select correct account/alias when opening messages ([2471880](https://github.com/nextcloud/mail/commit/247188068f2c364939de10bfce92d25a93c590eb))\n* **php:** Fix ProvisioningMiddleware method return type ([aae086c](https://github.com/nextcloud/mail/commit/aae086cbcb408764d5c8279e17d4fe87f358248d))\n* Position thread envelope icons relative to avatar ([ae619aa](https://github.com/nextcloud/mail/commit/ae619aa46b950858b4bcff0ad545a4955f0c8d3e))\n* **preprocessing:** chunk message query ([62a1c98](https://github.com/nextcloud/mail/commit/62a1c98a83677b937dff8f890acd9db74e5c349a))\n* **provisioning:** Clear cache before returning ([961533d](https://github.com/nextcloud/mail/commit/961533db6b7d7633638d52cc862b638830929e64))\n* **provisioning:** Clear config cache after every mutation ([b6f7073](https://github.com/nextcloud/mail/commit/b6f707350de39c07728ab46f84e73d16c52fdc17))\n* **provisioning:** Return database ID of new configs ([81f35a2](https://github.com/nextcloud/mail/commit/81f35a2990c52c9aeda5b53ed48f34044a0d1beb))\n* **proxy:** Add image proxy rate limit ([18f886c](https://github.com/nextcloud/mail/commit/18f886c37bd48db00087143ae012e37405559c70))\n* **quota:** Rename placeholder and fix desktop notification ([cc87c54](https://github.com/nextcloud/mail/commit/cc87c54f02f6d084e7f3bd1ee7f1b3eecc15e515))\n* **Quota:** set job time insensitive and lower interval ([0e7f635](https://github.com/nextcloud/mail/commit/0e7f63572d47f6db021b22a333c29e0cff6ef951))\n* Rate-limit IMAP auth if the password is wrong ([6528dec](https://github.com/nextcloud/mail/commit/6528dec049e31b7718b9b03d08f0d672c84fb695))\n* regressions from ACL pulls ([6cde824](https://github.com/nextcloud/mail/commit/6cde82485907ddeb37c8edea497ebee9bd22fc45))\n* **retention:** properly clean orphans ([c99577d](https://github.com/nextcloud/mail/commit/c99577dccbccd39725dc29aba19e7b7c84ec454c))\n* Revert empty array checks in Horde Cache ([b780e7e](https://github.com/nextcloud/mail/commit/b780e7ea30f9db70c195d89a0de7307dc15523df))\n* saving preferences not extracting the returned value properly ([abe3205](https://github.com/nextcloud/mail/commit/abe3205d81848faeed9d95d63685a4289cd8e570))\n* **search:** Fix combining IMAP and DB search results ([3aabd7a](https://github.com/nextcloud/mail/commit/3aabd7a2a369ba4ab6f766d501045e959bdc6d5f))\n* **search:** Limit recipient joins to their types ([1bbb44b](https://github.com/nextcloud/mail/commit/1bbb44b6a888c697e5e241cd8abffa694f53c844))\n* **search:** URL-encode all parameters to preserve special characters ([1ef331c](https://github.com/nextcloud/mail/commit/1ef331c2707a1cf04183340ad78c067b3fbc4097))\n* **search:** Use corresponding table alias for recipient search ([2270a93](https://github.com/nextcloud/mail/commit/2270a931b5af7f2902b256a1471b2a251a917bfb))\n* **sender-details:** show contact names again ([b448594](https://github.com/nextcloud/mail/commit/b4485947b642af3b3751372ed0382808496db975))\n* **settings:** fix account settings modal close button ([dfbfaa3](https://github.com/nextcloud/mail/commit/dfbfaa3de38c5faf5a3040db72466ed2e0820c2d))\n* **setup:** Fix sending password for OAUTH accounts ([871ffc9](https://github.com/nextcloud/mail/commit/871ffc9b890555718d126b8e896ed0072acac72e))\n* **setup:** Fix storing password when we don't expect one ([964f665](https://github.com/nextcloud/mail/commit/964f665f1a935896a41f31b49916ad0facbc42b7))\n* **setup:** Rate limit auto config attempts ([a82b8ab](https://github.com/nextcloud/mail/commit/a82b8ab9cba4b17c0fdcd0a4ae4b2ac7744692cd))\n* share enumeration constraints on autocomplete ([1f4ad67](https://github.com/nextcloud/mail/commit/1f4ad67c6a23f053a8b8a3a3c669eabaf1753f49))\n* **sieve:** load sieve scipt on open settings ([5a7a04f](https://github.com/nextcloud/mail/commit/5a7a04f69f4ba8025bef4d68c64967c70eb2419e))\n* **sieve:** show feedback on syntax error ([3443da7](https://github.com/nextcloud/mail/commit/3443da78be8186fd12a1af94227afe607ef9fb25))\n* **smime:** add missing primary key to certificate table ([59e7728](https://github.com/nextcloud/mail/commit/59e77285e31e1d71f69763171e473dd7fed48b77))\n* **smime:** add missing ReturnTypeWillChange annotation ([6607f4d](https://github.com/nextcloud/mail/commit/6607f4df966a1557ac69c3dc4189e616fc0c9768))\n* **smime:** handle certificates with no emailAddress field ([3490178](https://github.com/nextcloud/mail/commit/3490178e3a5a2f96f383da297bcedf0bb83c789e))\n* **smime:** handle PKCS12 stores with multiple certificates ([1c445d0](https://github.com/nextcloud/mail/commit/1c445d0070e3562afff085fa302901305db8d0be))\n* **smime:** set primary key in first migration ([3a19298](https://github.com/nextcloud/mail/commit/3a1929879ad5fe190f6180c0d271ac9272e65e49))\n* **snooze:** Add cleanup orphan db entries ([bd184dd](https://github.com/nextcloud/mail/commit/bd184ddba9badf7cb808ee1143989b08996f1427))\n* **Snooze:** Add unsnooze action ([3f5f9dd](https://github.com/nextcloud/mail/commit/3f5f9ddd4ab193d0790a6bc88fd13c42f38ed17d))\n* **Snooze:** Allow snoozing gmail messages ([0a98404](https://github.com/nextcloud/mail/commit/0a984048ccdac67ac8bd0be0dd2e1a155ebd5bbd))\n* **snooze:** create snooze mailbox on first snooze ([d38e426](https://github.com/nextcloud/mail/commit/d38e4265d6de3f9d38fc386bedfc08cd8be4b733))\n* **snooze:** force sync of snooze mailbox ([4afdafc](https://github.com/nextcloud/mail/commit/4afdafcf1c802fff1b119b1ad073a8f4c1425c95))\n* **Snooze:** Move the message back to src mailbox on wake ([c5e2bee](https://github.com/nextcloud/mail/commit/c5e2bee1e463b2f8c2986837e939e42ec282c357))\n* **Snooze:** some minor changes ([326d48f](https://github.com/nextcloud/mail/commit/326d48fd85a2e6cafe6b27f63f0fb48976ae162f))\n* **Snooze:** Sort snooze mailbox as specialUse ([ad6b723](https://github.com/nextcloud/mail/commit/ad6b723e18f16c879b47d5dd051d0fe67718bb98))\n* **strings:** Explicit set/unset tag in TagModal ([51bc6a2](https://github.com/nextcloud/mail/commit/51bc6a2b221f7c7028079e0ad1584371357d6b94))\n* **strings:** Placeholders in SearchMessage comp ([80f7108](https://github.com/nextcloud/mail/commit/80f710835fa546105150de6aad5b8c4fe2612ea9))\n* **sync:** mailboxes not being synced due to short circuiting ([7c2c806](https://github.com/nextcloud/mail/commit/7c2c8063c8f7a4abb57ceb5e351efe1e8fe6e882))\n* **sync:** return if headers couldn't be parsed ([998bf34](https://github.com/nextcloud/mail/commit/998bf34b5c6f36d46c5e96237a79b77d9a09c737))\n* **tags:** Fix multiple tags with same label ([3773d0b](https://github.com/nextcloud/mail/commit/3773d0bcd263ac871d4bc518b4c18df6ecb2993b))\n* **tags:** Hide \"Has Cal\" tag ([87d3aa3](https://github.com/nextcloud/mail/commit/87d3aa3a54265e4aed44e0b561974c8a9a805a50))\n* **unsubscribe:** fix button style ([9142ada](https://github.com/nextcloud/mail/commit/9142ada5224cb23305f498cc709fd29395617471))\n* update interface to match implementation ([55f6c7e](https://github.com/nextcloud/mail/commit/55f6c7e131fa43eb9adde08df9343b2aa3cbb048))\n* update mocked time for new job interval ([1b83193](https://github.com/nextcloud/mail/commit/1b8319324eb1adcbb96c8f40d908763d483e109b))\n* use api to read input value ([89b3f9c](https://github.com/nextcloud/mail/commit/89b3f9ccc00dba84d7adb84684ed44f72749fe10))\n* **XOAUTH2:** Defer OAUTH account detection ([df69d19](https://github.com/nextcloud/mail/commit/df69d19ed22a6c7613c1843d931398c62c12b739))\n\n\n### Features\n\n* **acl:** check delete acl for move operation ([8d7a80b](https://github.com/nextcloud/mail/commit/8d7a80b8b1908244daa98b67f08f7eb7d46010ae))\n* **acl:** respect acl for MailboxInlinePicker ([83ff894](https://github.com/nextcloud/mail/commit/83ff89433031be3b0ea5953e302f9d88a2ef7b6d))\n* **acl:** Use shared folder icon for shared mailboxes ([c0687bf](https://github.com/nextcloud/mail/commit/c0687bf5f885e35f56a4ebc75cdd0c8520866eb0))\n* add snooze mvp ([e16b6a7](https://github.com/nextcloud/mail/commit/e16b6a75a4f5e24deacaa5a278d32f65062746f9))\n* add utility mailboxHasRights ([08d08bb](https://github.com/nextcloud/mail/commit/08d08bb6ba888b7277f8030f98d25316587a3e29))\n* Allow a configurable background sync interval ([89e009e](https://github.com/nextcloud/mail/commit/89e009ea22f1800008a9f12122d1b6392c5d2954))\n* **autoresponder:** implement subject placeholder ([42cae42](https://github.com/nextcloud/mail/commit/42cae425b6217c1173662db6aa1d3ca040a3f4a1)), closes [#7216](https://github.com/nextcloud/mail/issues/7216)\n* **classification:** refactor IExtractor::extractor ([1790f01](https://github.com/nextcloud/mail/commit/1790f01ba89d53e30730ce6bfc74e4db8d70d963))\n* compatibility layer for legacy exceptions ([118671f](https://github.com/nextcloud/mail/commit/118671f4d5d85f794f413592509cb7b23615777c))\n* delete tags ([50f0772](https://github.com/nextcloud/mail/commit/50f07725796317b00928c47e217f2c235eb37d69))\n* **deps:** Add Nextcloud 27 support ([aa32a2c](https://github.com/nextcloud/mail/commit/aa32a2c0b0fccead9cfb045085095bf0b3fc7613))\n* **deps:** Add Nextcloud 28 support ([6cc4d93](https://github.com/nextcloud/mail/commit/6cc4d930f935a717b505d1245ff41abaf92fab0e))\n* Easy unsubscribe from lists with http unsubscribe header ([491970a](https://github.com/nextcloud/mail/commit/491970abb12da520426b7a755f018281499bd35d))\n* Easy unsubscribe from lists with mailto unsubscribe header ([dc30fa6](https://github.com/nextcloud/mail/commit/dc30fa60adc173993c82436c24e71b184d5bc7f4))\n* exclude envelopes from junk from threading view ([4ddd3f6](https://github.com/nextcloud/mail/commit/4ddd3f635b10d082a39347c7d407fbbbd171e2af))\n* hide mailboxes when the user is not allowed to move something there ([fdca17f](https://github.com/nextcloud/mail/commit/fdca17fba11943da382cd8b56aac673fa5fc50cb))\n* **imap:** Persist if mailbox is shared or not ([4c27112](https://github.com/nextcloud/mail/commit/4c271120ff564c1ff9e728465c3d82bf92fa57c4))\n* implement trash retention ([de09050](https://github.com/nextcloud/mail/commit/de09050a3a03a3a762250566baa1c99ca400cf58))\n* load active sieve script on demand ([1a7fbc3](https://github.com/nextcloud/mail/commit/1a7fbc39fc791b175659250a5e24ed6a843dd418))\n* **mailbox sharing:** Read, cache and expose my ACL rights ([76d7d7c](https://github.com/nextcloud/mail/commit/76d7d7c9564000c9c52e7c43f7897458f326f34e))\n* move messages to junk folder ([45c5ab9](https://github.com/nextcloud/mail/commit/45c5ab9277ba50b2499ca05e7bf3e568d3ea1a44))\n* **occ:** Add ML prediction command ([98607e2](https://github.com/nextcloud/mail/commit/98607e26237d7c58ec5156421697b6a8ba3e7956))\n* One-click unsubscribe ([f2b61b3](https://github.com/nextcloud/mail/commit/f2b61b383b95cecaafd2fc078aa91999d8feb8f2))\n* parse mailto addresses ([6261efc](https://github.com/nextcloud/mail/commit/6261efcf2feffd37e0b11c6f2bc992235b9a0411))\n* plugin to insert smart picker links ([f34f69b](https://github.com/nextcloud/mail/commit/f34f69b3ab8d0be424cad49afbd70e8a0b93fd04))\n* remove cast to int ([fa5830b](https://github.com/nextcloud/mail/commit/fa5830b43af6bbea2622e5837d39a46aba1a4630))\n* remove toggle for move junk ([fd1437b](https://github.com/nextcloud/mail/commit/fd1437b7a2252e6cf7f62ac5775f2bc3e3f019fa))\n* Rework draft handling front-end ([f1f757e](https://github.com/nextcloud/mail/commit/f1f757e57bcf1fce74fa202c8e261eceb79a0dd4))\n* **search:** Match recipient labels too ([102a070](https://github.com/nextcloud/mail/commit/102a07060619432324729d7a50a56f7c5d5dfb91))\n* **search:** Use case-independent wildcard matches for recipients ([8955638](https://github.com/nextcloud/mail/commit/89556386b4a21fe37d879f93735caa95500342fe))\n* send multiple flags in a single request ([95319c0](https://github.com/nextcloud/mail/commit/95319c043bbafa32228b69fc0fa8626d056f31e8))\n* set app name for mail ([8005431](https://github.com/nextcloud/mail/commit/8005431d91a37d47223fbcd6a65a19790c6af6c1))\n* **settings:** add title to account settings modal ([9bd0f9f](https://github.com/nextcloud/mail/commit/9bd0f9f6bb8a43855cf0a885f6cac542984ce1af))\n* **smime:** decrypt incoming messages ([6fcb907](https://github.com/nextcloud/mail/commit/6fcb90796f4d0088d576aa56ada50bcc36b6ffc0))\n* **smime:** encrypt messages ([9c568b5](https://github.com/nextcloud/mail/commit/9c568b5e25d6f3eaf09d556e09825d5983d02077))\n* **smime:** import pkcs12 certificates ([5a1428a](https://github.com/nextcloud/mail/commit/5a1428ac3023ad93deedadf6565a8d6d8a643cbd))\n* **smime:** import smime certificates ([4c35589](https://github.com/nextcloud/mail/commit/4c35589f7cd52ca24cfec3b5630fbdc43d67e81d))\n* **smime:** show a warning when a signature is not verified ([e305db8](https://github.com/nextcloud/mail/commit/e305db89ac0b0480cd66cf105ec8dc6925700f73))\n* **smime:** sign outgoing emails ([c0db433](https://github.com/nextcloud/mail/commit/c0db433d75ec01b95fcbf629d6e6ceaf43ab57ec))\n* **smime:** verify signature of encrypted messages ([1efd801](https://github.com/nextcloud/mail/commit/1efd8013bcb241df128b1a5894308abe44e18edd))\n* **smime:** verify signed messages ([3ab22fa](https://github.com/nextcloud/mail/commit/3ab22fade847175938b4a39590bb6c63100461e0))\n* **snooze:** Disable snooze on AJAX cron ([49725af](https://github.com/nextcloud/mail/commit/49725af3a9365237168a15d4d11f3ab291d69bdd))\n* **unsubscribe:** validate dkim signature for one click unsubscribe ([448dabd](https://github.com/nextcloud/mail/commit/448dabd64427483f4bc3068c133ef20263e3ef6e))\n* use proper json response for getDkim ([35d824d](https://github.com/nextcloud/mail/commit/35d824dca070218bd492f118af431b9e841bff3f))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([1e28bc6](https://github.com/nextcloud/mail/commit/1e28bc60db0c0c3dac537b2422d37185299c2d4e))\n* **dashboard:** implement widget item api v2 ([19f21af](https://github.com/nextcloud/mail/commit/19f21af9914bc7cd338dc37e391bea75fb272aa3))\n* **frontend:** Load NewMessageModal async ([ab26e4b](https://github.com/nextcloud/mail/commit/ab26e4bb359c5fe9edd3f167ee0dd3e097904723))\n* **frontend:** Load the account settings modal async ([f7949b3](https://github.com/nextcloud/mail/commit/f7949b32320fc86b203a5ea8484deb00a9c0e907))\n* **imap:** Reduce number of STATUS commands for background mailbox sync ([f4b01d9](https://github.com/nextcloud/mail/commit/f4b01d9fa8adee1825abcc1c3a32268dc98c4856))\n* **PHP:** Use static closures where possible ([e02a205](https://github.com/nextcloud/mail/commit/e02a2051f517a10b9f0e521ce03759ed6652a3e7))\n\n\n### Reverts\n\n* Revert \"improve message preview\" ([04f1842](https://github.com/nextcloud/mail/commit/04f1842f105e4a57a4fdd9d16db4f5743dd054ce))\n* Revert \"fix(deps): update dependency @nextcloud/vue to ^7.7.0\" ([a5568e2](https://github.com/nextcloud/mail/commit/a5568e2cd49a8ef4ceb59dc6ee11f3bbff56b182))\n* Revert \"chore(deps): Enable renovate bumps on main\" ([255efb7](https://github.com/nextcloud/mail/commit/255efb7902349152cda31fa98fd1c711d6107393))\n* Revert \"Add Provision info to occ account:export command\" ([260dc4e](https://github.com/nextcloud/mail/commit/260dc4e2f9e09740a483e092fa5ef897f4adc56b))\n* Revert \"Explicitly specify Postgres 14 as NC25 isn't compatible with Postgres 15\" ([370c29e](https://github.com/nextcloud/mail/commit/370c29e27dc8c6f12aee4132df874f6792c20e85))\n\n\n\n# [2.0.0-RC1](https://github.com/nextcloud/mail/compare/v2.0.0-beta.7...v2.0.0-RC1) (2022-09-26)\n\n\n\n# [2.0.0-beta4](https://github.com/nextcloud/mail/compare/v2.0.0-beta3...v2.0.0-beta4) (2022-09-08)\n\n\n\n# [2.0.0-beta3](https://github.com/nextcloud/mail/compare/v2.0.0-beta1...v2.0.0-beta3) (2022-09-06)\n\n\n\n# [2.0.0-beta1](https://github.com/nextcloud/mail/compare/v1.14.0-beta1...v2.0.0-beta1) (2022-09-05)\n\n\n### Reverts\n\n* Revert \"Update vue to 5.4.0\" ([970bcc4](https://github.com/nextcloud/mail/commit/970bcc409e60f4abc6d0bf628cd5d60cd8995011))\n\n\n\n# [1.13.0-beta3](https://github.com/nextcloud/mail/compare/v1.13.0-beta1...v1.13.0-beta3) (2022-05-23)\n\n\n### Reverts\n\n* Revert \"Check account for currentness before reprovisioning it\" ([27fe297](https://github.com/nextcloud/mail/commit/27fe2975aac226aad344d7a54b0858d136565d91))\n\n\n\n# [1.12.0-rc.1](https://github.com/nextcloud/mail/compare/v1.11.0...v1.12.0-rc.1) (2022-04-14)\n\n\n### Reverts\n\n* Revert \"Add more logging to IMAP to DB conversion\" ([9ed5c3b](https://github.com/nextcloud/mail/commit/9ed5c3b2332137461d77da8b30cb66b02068a5ee))\n\n\n\n# [1.11.0](https://github.com/nextcloud/mail/compare/v1.11.0-rc1...v1.11.0) (2021-11-29)\n\n\n\n# [1.11.0-rc1](https://github.com/nextcloud/mail/compare/v1.10.0-RC.1...v1.11.0-rc1) (2021-11-18)\n\n\n### Bug Fixes\n\n* handle invalid imap message id ([b2cdc5a](https://github.com/nextcloud/mail/commit/b2cdc5a8ac1a061ed9521274d92a548074a0e1ca))\n\n\n\n# [1.10.0-RC.1](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.7...v1.10.0-RC.1) (2021-06-22)\n\n\n\n# [1.10.0-alpha.7](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.6...v1.10.0-alpha.7) (2021-06-10)\n\n\n\n# [1.10.0-alpha.6](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.4...v1.10.0-alpha.6) (2021-06-01)\n\n\n\n# [1.9.0](https://github.com/nextcloud/mail/compare/v1.9.0-alpha3...v1.9.0) (2021-03-03)\n\n\n\n# [1.9.0-alpha3](https://github.com/nextcloud/mail/compare/v1.9.0-alpha2...v1.9.0-alpha3) (2021-03-01)\n\n\n\n# [1.8.0](https://github.com/nextcloud/mail/compare/v1.7.0...v1.8.0) (2021-01-20)\n\n\n\n# [1.7.0](https://github.com/nextcloud/mail/compare/v1.6.0...v1.7.0) (2020-11-11)\n\n\n\n# [1.6.0](https://github.com/nextcloud/mail/compare/v1.5.0...v1.6.0) (2020-11-04)\n\n\n### Reverts\n\n* Revert \"Bump @ckeditor/ckeditor5-editor-balloon from 23.0.0 to 23.1.0\" ([fb1235c](https://github.com/nextcloud/mail/commit/fb1235cba31b12519f6b884e2774067eefe2a332))\n* Revert \"Bump @ckeditor/ckeditor5-alignment from 23.0.0 to 23.1.0\" ([f052364](https://github.com/nextcloud/mail/commit/f0523642f312727da08de1d5703992dd936868cf))\n* Revert \"Bump @ckeditor/ckeditor5-block-quote from 23.0.0 to 23.1.0\" ([edb4035](https://github.com/nextcloud/mail/commit/edb403518a06ec1ae47b5be9e070584f42b545ce))\n* Revert \"Bump @ckeditor/ckeditor5-heading from 23.0.0 to 23.1.0\" ([1a4c331](https://github.com/nextcloud/mail/commit/1a4c33165912d068d3003b3a6d859d9c8ae47682))\n\n\n\n# [1.5.0](https://github.com/nextcloud/mail/compare/v1.5.0-rc2...v1.5.0) (2020-10-02)\n\n\n\n# [1.5.0-rc2](https://github.com/nextcloud/mail/compare/v1.5.0-rc1...v1.5.0-rc2) (2020-10-02)\n\n\n\n# [1.5.0-rc1](https://github.com/nextcloud/mail/compare/v1.5.0-beta3...v1.5.0-rc1) (2020-09-29)\n\n\n\n# [1.5.0-beta2](https://github.com/nextcloud/mail/compare/v1.5.0-beta1...v1.5.0-beta2) (2020-09-22)\n\n\n\n# [1.5.0-beta1](https://github.com/nextcloud/mail/compare/v1.5.0-alpha3...v1.5.0-beta1) (2020-09-22)\n\n\n\n# [1.4.0-rc1](https://github.com/nextcloud/mail/compare/v1.4.0-beta2...v1.4.0-rc1) (2020-06-04)\n\n\n\n# [1.4.0-beta2](https://github.com/nextcloud/mail/compare/v1.4.0-beta1...v1.4.0-beta2) (2020-05-26)\n\n\n\n# [1.4.0-beta1](https://github.com/nextcloud/mail/compare/v1.3.3...v1.4.0-beta1) (2020-05-20)"}},"signatureDigest":"sha512"},{"version":"5.11.0-rc.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0-rc.2/mail-v5.11.0-rc.2.tar.gz","created":"2026-08-19T06:11:23.444514Z","licenses":["agpl"],"lastModified":"2026-08-19T06:11:23.522719Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"IPEX5OgJLHXs1FWdYUWR2tUbUS3nJf2u8SB64seDlaPJ8Oao4P4G7ArX3OM54C7ApkSOYGA/eON42Szg4M+ArmZzpyrrfGkjETBALT2N86dR5cfsCqx8CUpuDDNjfFvHvXy96sZ1qHTagjLvVcSftICqoZ8iqGoZxD+FYlN1LuVCsg7lHlTp3D66uAbJOGq5DX/rLvBeML6U7ir8e0stvW/bZ8+wfFKurpHlclkcQsuVydGjZZQUFPk2D9Xw58sp6wZzZJRAInsRGr0zpBnn8J/mmT79BqLpZBnmabaC1x1zrgMo7Uh2HZsaE07ZEhzpba0/sASES2kEEz2WAgOq1FzbxB+lKw1eksaIGWiC++hmPeQmMLy3zU4ReKtvSkSNtNAqZ4VvSVmGQDuaZTct375my8gYMBsAz6yqWLXTR6ud/rXmnnn1Q8mEojLEeBilt5umjTwA/YPlVEceST+cIA945EEtzO37J8rRfFOSMd4MPr1cMRt1DxJ7JWKnwebtF/nhVMnKaEnzvGoC4BieM54N35ZWUuIi2QPGRf3LE9xHsxZBB8dpntE/d/OogGueWEJMb6CjuXQmphjHk7lmKyWoBRuW0pqAqN+AaAhnHHVb2G28ajiUUQojMh+by2u6SF6B7ySpnS9Bn/WhpoA8O1HCKtsvWxVDqG0bWVHqtVg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.11.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0-rc.1/mail-v5.11.0-rc.1.tar.gz","created":"2026-08-18T09:51:53.514917Z","licenses":["agpl"],"lastModified":"2026-08-18T09:51:53.600138Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"RUXW5ayvL/EHHDsyupqZdm3SkBbUWmg7CisUx++fvnpjobxIt8Sbfn70Skfi7zK6M0jmdDiMjQqioDnHo9rXdp9u9SKB+4hBOxctti7DV57EV9EefWxJJngIU7Je/ut37ralJMAn46MAmvHsstfRVyqA80UwyczHpsHg14Pb6pbP6z1Ntd7vKHHUWdQCVNE4Z5innRWdugoXBPZaBFeUPBcXfMVCsSQqiYZ29kDYFY92yihglNIV2f5rM5VORjT8m9rt4YoULLj8e5Tp1+FZJ+lbmqCZaY7M2/28vZPWROmEC0nWSJaG8lQ+A97gtGN8Lzqd+uvdppYUj/NLDxlsoDQndtwpiulZJW3ivajEWoPWcVsGktSfP6tK3ZcZM3zOVCwFPagYFrOGcnrCgVpG8L/LkuCyv/Ki5jCg9zXNTysv7hMMOTMXZFSKjjhSBHta2297zcGoRs4+RwzFf2Uy3qpPqAHUeEu6hl6A31oW0PkS6ZboLkg/Kaz1herG9penMmflOBmSr/dCiSmzHJo8/Ags7z+b7MusoJuflxY6CEBeah9spn7PRyj+RKdaoO8qvZnpI3ikQVGHLeMp+lhiOm/C1G2VVrkLRkUPcCuiThfPAPEgj6BNdj3gCkiQTLrmrKdafyZtaAqhbD8ktAunzAk2NZc5VVm82qAqWsowuTY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.11.0-beta.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0-beta.3/mail-v5.11.0-beta.3.tar.gz","created":"2026-08-10T07:55:55.553789Z","licenses":["agpl"],"lastModified":"2026-08-10T07:55:55.639604Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"OtUotltkFpFmCsJqX+Suv+lm5idyruRgtIwzvA0FCiF3N5HVdfPVY+AqYvuaZhd1FG9TwFcTRaESEYRcIhK95VRRp9aUpybLNXY85cSXRxahOe2Xn37YReB8IVsJPM2wOa/LJJDKKKkhYHnEcmbBfIevklTH8Ea1xu7zv3hb9x022CY0EDpS1IhK441jNI4SyBtRXMefcOAhlxyWG5LUFOmvjwhgizRvvIJAgBY5LvxRNAfKVxFpq3XjheCGIIvxYStJlD7Yn8oKRA5+liYxPqnNajCdC5+ftZCivHNXwLEevmXIH0pBZtNUZLPmjPC53GPFDxDSA8e17WBhds6F4i2lWa5/bXBIaio8RLhqgrur3qUT4HSuyoDJOXHlKc8hnhJ7OK4GdbUzqU/JNZmOiwGCgYKZsJzZLhF1DgFiCxKlAj3znmdqe1DIghak6KXMg3FKwZ657Hjr4FVQ1/WA/SjjeDQB0mps4/hLomHeGgdY0SDiT4ienVcLeNtSNroFH2DQ9aEpU0j3Xh7MSXDKZ0dv30UTnhlNt+D3OJopSfhQfsWfsWtIolg24JrcUV9PUEH33RElDkyUFZCUgY4A+RI44z5l1Tcdo3c5Xk+XwLaqINWK7wCGKqUOA0wLvJSSD2mYWBAKq4DOxB6vs6Qlxn7FRkx0a1F6lCC8GzCU/Dc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.11.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0-beta.2/mail-v5.11.0-beta.2.tar.gz","created":"2026-08-06T11:40:22.999903Z","licenses":["agpl"],"lastModified":"2026-08-06T11:40:23.090098Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"gjkE8eOGL/WbgFBs0prRTLhYWz67sbpm9UP61uec8sFA8Of0w1lh1ro8P7xof5enS/o/OwDmeyAaThDUgWiKvA2GcqH4VaEgejFJJG9E3iCWXpb4tLX4615iSq9vAybgwgRUxL2Byym6aRXSaDycWKhx7byYXgSX4WuETEMEMRYU9cQnL3RogbQG5Ei2s1Uj1zzIEVvHxx2IPQ5BvdzcxBx/oKlN59qDHB/GeSGE5JHO32TTuYUEEGgtGzk1X9HflTxF3Wtx8nh60OQudv70Uc0/U0llPJQsw+vk3iDpoAdI1pgsnxPJxqZ6NQ8U/GLK2jTrsov/fE6RGLh0ni2cj2MpigSBl53I3BLql2f8k7SUvaFFmroahAHLW8Ab50X9FnJ+06F57BFU8wWyzuNhPqOYdAZeCAHgJ08ryTUewMMMw/oF77pPluwKSQpMzyYyGFxhxveviI5HbFtsgj2ZOXc7tb0vMg+TASslDCi216R3Lym04xQmzIGnWa8uiWXiftWUtBv5Oc0eHRhyMUM8vO0aoOZqq+tSg0dn6m6vkz1LGSdenkgNf1PaQVqcKXiMuBAAeBpX4Jk5Duuv14gTfV4wJD0FwN84iOHvyd1Nn7LB7cxW+qwiMX4ua2uV/bc+vdo+CZBGUSFOdh3WRmt5Ax/tzWHliEkNcWnBsUSg3mI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.11.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0-beta.1/mail-v5.11.0-beta.1.tar.gz","created":"2026-07-23T06:19:56.768715Z","licenses":["agpl"],"lastModified":"2026-07-23T06:19:56.879301Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"BQia0gBoGr/UaDPM0b1+8QHEE+kom94O9q0ToNrd9p6QIcPaifBQR8Si49/zAEQXP1oSuHpwxl2VYp3B2+At3OnLqDu5OnFc3MC7u6nBYH3BsYPxO+Ry8si1c8P1Gc4zV4zw8WEduwdenYSEXgTMarBRHlslp6Hi7KbzDv/r7aN0Ai8qVo1u7BJCrC59Vh038CSZenDK50ktho4yCz5J9NzisoCW3A+XvaJvSpaFWryV9ingv5BTwRGoZaYBlysZqw/zc4RGOBNf88fUlE+j5aiYhTrQL1azE1KdBL17Pb1drjc9DgT8GOX/eOUaq9CRxqHLNWTnviZ/GIa9DYwG1+50+qYcOt+C2rPA0qkZ67UcgbgBej7D4JESElvqBoOoiYcA7RM2P6KJkQvlLn7fRMkbvXlg/oaZ92X5FerLxmTQlJqltkp9Z45f8ZEgkExH/OR2PndQg07jmf4GBgxwF+MlGlMvG+3VSEhrtSUwQQGvcqoTzDwA3qYigGWQlERgd4c0oLbJD2h08iieqPT6NGSZ/FCzKUeupjs+QPYT1Zx+USf01kJ9MrJX6ENCi2iQGspc+XVOFXGEbRxbTemDzgThl0U3y1EOXtqroD3sLkZpCgv02INtcNNfvHfZlSPdYBO1WShO0AWWdrmxHSO7aqKkTKmX2qZTVj1eqEKn+Lw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.11.0/mail-v5.11.0.tar.gz","created":"2026-08-20T07:48:00.555644Z","licenses":["agpl"],"lastModified":"2026-08-20T07:48:00.656351Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"f+u5+WabppUhtYLtodtojuBCr9Hnuvjlx1lRzuK0htksCV5A0LyEgdzclvec3CS1mfjQR8tBzz8v8hqhN/0QPmMsyMjyL0FBMDg91LxoCaKQ6Y3Qmdvz8CY95aGGnBceibyG19LyE/aoSKtkk2jv//9qrOlVbZRuYD7W82hItsMXTnxnI7NhDksK3uj6OaKtcwB4VocB1i1GGttZUb6AQ/s0zocmmiITC72mNRvhI/mScNq850tCIqLjYmZvQ+Fvq8ShEHIN9htX4ru9aBOVEGGoyigz6yqnt0G/dLZkhqCfh3qG0BKnOZyft23wh4n6tVMZoi4nrdyYzG4BK6fVPyQ0VflBfh1chip/UIsxvh6x5x/7Wrqaqnn29bh54ZXx7WOwyVsQdrKhhzbTEM38VY1K5keBZ6gS36shwSGPH14iTaD04A8kfrXeakcql195Lc7WnAhG4bIEK5T//r65SCCu+s3lvfeOiD738gbETF4bLVaXL5uBA2UdTSeEiZkSju/jPTM8rlV5IZLFZIUNviTN7czA/nbf9Bu7QkZYXNC1eRILp5+P7Nf2znztzqhrA87oPJBOMI3t4OZvD2al6PG72e/E1Bdtj1ci6KafC/gcZ1B76Q6rVsbBMEG/k7L8sD2xlbm9ysJT7SwwEs11+vPRMt9drJ73cpcaMNgGYQA=","translations":{"en":{"changelog":"### Added\n* Initial JMAP protocol support\n* Attach files from Files as an attachment or as a link\n* Drag, drop and paste attachments into the composer\n* Save an email as an .eml file in Files\n* \"Copy direct link\" action in the message menu\n* Heading shortcuts in the editor\n* Save draft with Ctrl+S in the composer\n* Preserve custom font sizes and families in the editor\n* Configurable auto mark-as-read delay\n* Sync IMAP and SMTP credentials while filling in the new account form\n* Filter folders in the mailbox picker\n* Empty state for text blocks\n* Webhook-compatible events\n### Changed\n* Translations\n### Fixed\n* Reply to sender only\n* Replying to your own message now addresses the original recipient\n* Rate limit all IMAP server authentication rejections\n* Favorites list no longer mounted when sorting is off\n* Search shortcut buttons no longer taking up their own space\n* Open messages from search via deep link\n* Handle empty reply-to address list properly\n* Attaching files from Files and listing calendars broken by the webdav 5 upgrade\n* Database migrations broken on Nextcloud 35 by the new schema API\n* Preserve resized image dimensions in sent messages\n* Attachment preview no longer offered when the Viewer app is disabled\n* Sandbox iframes in rendered HTML messages"}},"signatureDigest":"sha512"},{"version":"5.10.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.9/mail-v5.10.9.tar.gz","created":"2026-07-21T11:18:37.923651Z","licenses":["agpl"],"lastModified":"2026-07-21T11:18:38.063293Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"oFV/BLHT6307bezbJP8SwxDjLdhSB94isjz3zfUo+rYDdNGgAWcR90fKRddRdoszIr9/rjZwhQ+vhY2swokiwyCEShZ9hMC3K8bzhd6oNVGHxLzz7k+67fsGFrLqw5XDAETm2kLdx9V1vRZY6QcvBMWv1cUdye6xvfIU4JL3loJLrEFfLQe9j1PQurLl35bf53TKYkgCU3r+eyO88poHz+3nv2ioVwKPdTpRX6IMw50P+i92rb+NM4BWAoXiDnZ7afl+BBmTejn7d0z0bMvLGUc2cJk/XBwmQj0QWzQ8BhlV4Umedlw05I9Ol4rlB00UnvXzaBj+Gsyo5YmiaAMAm3ruia4NOsrKLuaaltrE8L8QfF1uPbsKUKX6SwYjkrKgtv7hW+PcgDyrHfKs6troXiQ4P9p8FbXxPuZtxQxcFdps3ba6rcPgyPByHyeugwwKi4rh1v+eNTGnnOjiTsI9lnooxNnWXS7KhdCC/cWoOMf/lfbPTSkXdIfEvZ6RDexgmncXv5Ubnl6gLPc9Xdi7n+rD0Af2896JEA/HPmpL20lpig4YlxRVO+OzohUgBfzJiFPA58xLDvl8z4XFSlsX3aV/pltFLk7hsP04/QDqHpfsvEA5KufwhFM5fPC6xhytpgDRuEHCEEVo9aiCnH/vvl11xbqUfmAhBwE0tg9BTlg=","translations":{"en":{"changelog":"### Bug Fixes\n\n* check tag while renaming ([82a3150](https://github.com/nextcloud/mail/commit/82a3150a5db77fcbbffd51292d6d596717729d66))\n* **deps:** Fix npm audit ([0d77d28](https://github.com/nextcloud/mail/commit/0d77d28236e8f2138c6db2e716f84dd0562b1df5))\n* **dns:** Update public suffix list ([455d3e5](https://github.com/nextcloud/mail/commit/455d3e588718a476249cba9b05340947cb6a8c30))\n* **envelope:** show full summary on hover and refine AI notice ([be974ea](https://github.com/nextcloud/mail/commit/be974ea99b00f2e9ea467863a9c74e41cc5820cc))\n* **l10n:** Update translations from Transifex ([3d6486c](https://github.com/nextcloud/mail/commit/3d6486c8f0c289fb8dcd5231b69f5da2ab7d0191))\n* **l10n:** Update translations from Transifex ([82ceb25](https://github.com/nextcloud/mail/commit/82ceb254e35046392fcfd2fe960e539fc0d6b2e1))\n* **l10n:** Update translations from Transifex ([6a81d5c](https://github.com/nextcloud/mail/commit/6a81d5cb70133358939cd623957ab2c72475bc79))\n* signature editor on mobile, enlarged menu for formatting options ([685f5c8](https://github.com/nextcloud/mail/commit/685f5c8ebdfd473d8e3a937876a4bbdef230fde2))\n* subfolder selection for quick actions ([dc214ed](https://github.com/nextcloud/mail/commit/dc214edefc6a67e8c9b4a28cabfc9a54625a362f))\n* **tags:** add accessible title to tag modal ([be07280](https://github.com/nextcloud/mail/commit/be07280dcd39cbfa3141711be3754e5c3c7ee834))\n* **ui:** archive shortcut in unified mailboxes ([dcf4dbb](https://github.com/nextcloud/mail/commit/dcf4dbb678d4f1886c5b880c17f1bdad224d1f6c))\n* **ui:** build valid search query when toggling favorites sort ([486401e](https://github.com/nextcloud/mail/commit/486401e473251b0313bc840560c21f2f0629ed7b))\n* **ui:** improve quick actions modal design ([92422f2](https://github.com/nextcloud/mail/commit/92422f2e92a1b9d4e31c4c80ea8f12c821fc307a))\n* visualization of multiple attachments ([d228fd3](https://github.com/nextcloud/mail/commit/d228fd393fb9247470761709bddc1b82cd47e33a))"}},"signatureDigest":"sha512"},{"version":"5.10.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.8/mail-v5.10.8.tar.gz","created":"2026-07-14T11:30:11.675654Z","licenses":["agpl"],"lastModified":"2026-07-14T11:30:11.884821Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EzpMf/Sj5jfK/rVRw+SWMQsxPPxKMh3BNuuDhIp7XhJd/rOFWhPTWfpNj/6ZaI09aEudqa8XSQflg1+fZB6eebPdBnsLBaVMi3/XWhyJ4hqGTaAso+/6jpMuFFmOzmcwV5VBnp2+8pJjVxKZVujJL85nMLjw1YsKnBOXvQdkIopKvwIpwoE8/eqFjC9Cl2BbZEIs6GdX/NicRtR0L0wVFDMX65mIhmgzriOs0lXqDvqx2nc+pFvstEZ43Yb/+huG5OPwmdm4s3QON4RNoLtAaWHItrOWbOwTUhMGj1wyBT3rl4MjhAN+zTsxW02lCOuxN7w+28XPt4zK70mh1Prnjbw5cl+8uq7ymXXRj5GOULF16zi7FpUURNxL58+IrjdNL6C+83vODIY82S72SW5PFYmcFmwuJXJt8OhS4fkzI48cBiHXUIcv09DukG8OzsuOwtCPXQ+fh6px+gkZB9ItPBIVUf8ZiFrLRaxO6CaNgesXGu52+OCFQtv9wy5AKqc0GSSArJugj4JWRs96mruXGdjDqGffPN6qk5C0mvG80cYNPZrXk9hAckHwzBOTq9ElNF1AcyT6YxhFzraErKAjskb8wIXt7Jy7iGVYmMul8JNwTkFJUSxLnkXmasxiFVaoCCP6VZWTe13YFlqeo5ccWhDyqi4uSaMkC1UW86BuJBc=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** Fix npm audit ([ac88d31](https://github.com/nextcloud/mail/commit/ac88d31f42f98eb0bedb82b72c462dc82eedcd9b))\n* **drafts:** preserve Bcc header when saving drafts ([5e0117e](https://github.com/nextcloud/mail/commit/5e0117e5c84544e00e3c893c26a88cb41f416e77))\n* Exclude shared mailboxes from special mailbox auto-detection ([aea9e4b](https://github.com/nextcloud/mail/commit/aea9e4b50538526891fd0625a0eca383a48c9db1))\n* fixed \"ORGANIZER\" in ICS generated by \"Reply with meeting\" and delivered to DAV endpoint ([7116159](https://github.com/nextcloud/mail/commit/7116159fa08523dfc29328d4c623f1573cb37460))\n* hide \"create task\" option when no task calendar is available ([67e21a1](https://github.com/nextcloud/mail/commit/67e21a12b1ba384dfb30991669fb740b9d01bce6))\n* **l10n:** Update translations from Transifex ([b4606f0](https://github.com/nextcloud/mail/commit/b4606f08ddcbd45e174d5a4d2c9819cdb8f82d8b))\n* **l10n:** Update translations from Transifex ([73a0dd9](https://github.com/nextcloud/mail/commit/73a0dd92e1a904101c8d201757e3505ad656c7ae))\n* **l10n:** Update translations from Transifex ([6944219](https://github.com/nextcloud/mail/commit/69442196cddfc6cdc3685c287dee09e6cffa09d2))\n* **l10n:** Update translations from Transifex ([24518c6](https://github.com/nextcloud/mail/commit/24518c621fb33eca47e5c9497f20bc9365c54995))\n* **l10n:** Update translations from Transifex ([2919106](https://github.com/nextcloud/mail/commit/2919106e599e04a962eee8399c323c596dde27d6))\n* moved \"Delete thread\" at the end of the contextual actions menu ([997f5ab](https://github.com/nextcloud/mail/commit/997f5ab7c8e064370a978174f35ce375d2978595))\n* only pin favorites when it s not part of the query ([3e4e22f](https://github.com/nextcloud/mail/commit/3e4e22faa90c035189f940a3dfd68312f090e718))\n* restore sender copy-to-clipboard and fix thread subject alignment ([02d21de](https://github.com/nextcloud/mail/commit/02d21de6eaabba2e4bf61e3339d69c291545b463)), closes [#12952](https://github.com/nextcloud/mail/issues/12952) [#12946](https://github.com/nextcloud/mail/issues/12946) [#12666](https://github.com/nextcloud/mail/issues/12666)\n* sorting of items in \"Mail settings\" dialog ([0184f58](https://github.com/nextcloud/mail/commit/0184f58657bd3ea0490b1da3364eb5875bd7afc5))\n\n\n### Performance Improvements\n\n* caching a bit missing avatars ([b597d42](https://github.com/nextcloud/mail/commit/b597d42a724b61e4e03993e00b3ec6785714a229))\n* **frontend:** prevent overlapping background inbox syncs ([7228653](https://github.com/nextcloud/mail/commit/7228653dca84ab71797278b7f0c704f47b0cb1aa))\n* reduce multiple ID IMAP commands by Horde client ([c960268](https://github.com/nextcloud/mail/commit/c960268f8b0a1dcabb2f325ebbe48742a0a8b075))"}},"signatureDigest":"sha512"},{"version":"5.10.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.7/mail-v5.10.7.tar.gz","created":"2026-07-07T12:47:55.807872Z","licenses":["agpl"],"lastModified":"2026-07-07T12:47:55.917939Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"SwT8N7w/6zfFm71jY3y+1Vh51KtYGMZauRQ4wQQkiqaOR2dcql/gNW3yqW4l75fPkarIrgbbVKOsDegQB1cwrD3+VOu0eAZxZe0G9j2qbWi5QOBhzOlDW9nB62XYE/RFxcPxcKlu3PNmMgNobojezkRULz8QtkH+mdvcqm4461NmlkSqnIYyUDQ9R2xjpGC44oRf6X7NC461IG4At06G1x8q795wZwhwORUZH6dCW7PLCZFpNyBIBMS1d8OHcQD1JhRMoDktexleXcVU8KisOCRMKz7ZBO31vK3oHC7VU/Bh7OelYMJYXBlujUVeQGDLsP8x9SALi7nAVuDJtd8jJMSgZxfEzJyRkS1Upi/bUz5wrANtQZzFjgUQXX4tMxcNESkEJyGaFThQ7ZPGGobVRCMdnpNl7QwIa0TI68U0Kzj9JhFiA349bHQfVUMuR0k8VyAy770PooCOJbn9vcUqKCMaiCB8fC6psmQ5XmPsAxxXxjuf5ihQioxdQ66iNCZx0ze5eszsnOWIzvoFhWhnAN/+7jHu0S/xO4a17BZA6gnL3d9SJnnJNhEp5LITpRFHCFYZUCm7EU7QJV1Zqs5KPV2DX/q3o4I0lF7MMvuwFB69a3sOqtEr7yA5TDiZvwqScHbYiM10qW+4e+nuKB6K5RhlqhuPvZ1vNRamusTVw0E=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **sending:** preserve Bcc header in Sent mailbox copy ([abeaf95](https://github.com/nextcloud/mail/commit/abeaf9517e9f8a37ef0b77a0e8fbcbfbb61704b0))"}},"signatureDigest":"sha512"},{"version":"5.10.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.6/mail-v5.10.6.tar.gz","created":"2026-07-07T11:08:15.971903Z","licenses":["agpl"],"lastModified":"2026-07-07T11:08:16.096155Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"P8qoAefJPPtb0UY15ptctiOBC/7IUxJNOYw+pLMwjSw4heyxN1MpqmBOlP/mx9JpQbBRyYnBOk0OwH75xSa/jQ2elq/7TaiJRTTDn/WSNlFyulofyMsIeQZH25a97RRPK8BHUwI9S7vSswwtgn6tVorpE7wKO15o7rC4JUpqIuqby+yPzj6CWDOMGp3xFoW+dw1j1ZHH3nERFrZVPZ3jcPtIrLNfoNPY8DKDQfyaWoEXo5nYa1VmN8MzEtnB2PhTFyT794Sjc8IraWpN6HY7Aj46i7xwzkxb7ckELgihAPX+CdlPkwKaGP2AEo8EbRWIkZWfQmWVwIMecS6oy9dfOGjEjKZyPjAbvh3kZtWFh+Cg6wISkI893bItj4MsTEceR2SuLRZQHEzj7o6votijxQ+XRpZ1XneBqEpLTvnHypOkyMrHEvrtgIF07KH2D4BIRDJsNYw5q7LYa30rUE6sYuODeZbGWuGxMDzVtlFwsjdm8MBJP+F4uHdEtQV9ovw4nmPJuRCI9s7NqV8GAdukV8/UrdxX78KanohoZOcOLDcOwx+hmoYsa2SgJ0eAFKZfJ5alq/wJOThv4KMJX1N1kXP9+5sH2HkxPKA7o6hFcosZdBOccRbKFX5FsBkTvu2QCTnK1QxNgpCQAnVwQcZVMP+Z3FbEGxQR+5h5slordj8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **attachments:** store uploads under account owner for delegated sends ([5650650](https://github.com/nextcloud/mail/commit/56506506dcb8121c37adfe63517cfd263c15dcc2))\n* **deps:** Fix npm audit ([db30b50](https://github.com/nextcloud/mail/commit/db30b50e5128fe44b3164d44c525fb1a1bfbf974))\n* **l10n:** Update translations from Transifex ([2202d7e](https://github.com/nextcloud/mail/commit/2202d7e49faf6cae0cb22ed6750ff330d8228f4d))\n* **l10n:** Update translations from Transifex ([034e773](https://github.com/nextcloud/mail/commit/034e773de7b2098fe706a54e1ee9aa5532b3eeea))\n* **l10n:** Update translations from Transifex ([c399ddf](https://github.com/nextcloud/mail/commit/c399ddfd69ae0efd77f42cee47e9352e0762856f))\n* **l10n:** Update translations from Transifex ([e754c03](https://github.com/nextcloud/mail/commit/e754c03ca44231411ca4a22d6331eb1ee6d003fc))\n* small fix on the state of the action button to edit tags ([f916f7a](https://github.com/nextcloud/mail/commit/f916f7a7d1b3825b27b8a910e815956e7552407b))\n* **ui:** restore message loading position and slow hint ([633d6c1](https://github.com/nextcloud/mail/commit/633d6c1888362765e677315a7d49584ce4b2850f))\n* **ui:** show favorites section based on the current folder ([74b083c](https://github.com/nextcloud/mail/commit/74b083cbadab5369ca8de649743f74440c513c14))\n* validating email addresses from Contacts ([2584d84](https://github.com/nextcloud/mail/commit/2584d84b3d1b9b1c1ea933aab56e0e15ff476bcd))\n* whitespaces in visualization of plaintext email ([f74d4ba](https://github.com/nextcloud/mail/commit/f74d4ba901d6bbbcd210440b4978c6c74b2340d4))"}},"signatureDigest":"sha512"},{"version":"5.10.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.5/mail-v5.10.5.tar.gz","created":"2026-07-01T12:47:52.952864Z","licenses":["agpl"],"lastModified":"2026-07-01T12:47:53.070538Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Tl6fkpnZ7NxGpgnhghjj9AxP/aNRyinzkbJgGTYWuPDrMOXD/Ye7PlKdHXvPS0I77WXwfZQo5O34wTfQbW09xDyZm3pgncpWYKTQ7naaXWN3mz/rFq2HjGjlBHdSWOaxTWrfdU4qLksmQ8HRDN6a0uQ7FDRv9mzHGYG3VjKmuyZFuIpiy3cMAVFFWY1MDQfk3J+pOF+8ZGBtfQNc93JBPbo1qAG+MDWF4P6xunZNsHwSBLJQvTvL38TmOn+wxPkYD19aVhvejUB6v+6NAxMIhzDRIH3G4qdNZLDHXITrSs6h1w0AET2YjzHMq9hb8bxjsN5cS9Ti/lPWUS9JhseX55i5mNgY2fY5yBvTbMTXvZwziWKotAlKxANMb69lgwbv+hZe9jOjZc6GpGkcON7ShGCTBS3eWrm3AtSRX9PLS9SVKpZ/w050g8142b5qLX7zhZ0BOi7RObGshKz+BprPc3ahYPP9wtjiYtVJ/xpDslJ/OnuWxScX9VxpccDJ6DjVKXp8ta0pQ9w83HD21TToRg9VrcHEGkRi4PqbidGta28YQuALDTeMMfwILAyRNc5Q/hQ+ylkDreZDEa/vX6vUkusTXmj7CtTiLjDYFEK+rjFTePPXRYEqdKiocNBOE9JxNpHtgeuNEzP5G1gGj/C/L9HxUwTK7ee79t7XDPLFt8c=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **dns:** Update public suffix list ([1f2c293](https://github.com/nextcloud/mail/commit/1f2c2936a8be72f70bc0cda43279fd3d225497f6))\n* **l10n:** Update translations from Transifex ([1915989](https://github.com/nextcloud/mail/commit/191598949f05a40e9cde86d3551d9a59405a10cf))\n* **oauth:** generate state token server-side before redirect ([323cd29](https://github.com/nextcloud/mail/commit/323cd29fa5558af0ea72f6c9edc1e89864da7287))\n* **ui:** restore folder expand state after drag-and-drop ([c00589e](https://github.com/nextcloud/mail/commit/c00589e876c84ad0d9daf4a745f8b9f3b50a32d8))"}},"signatureDigest":"sha512"},{"version":"5.10.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.4/mail-v5.10.4.tar.gz","created":"2026-06-30T11:18:40.146062Z","licenses":["agpl"],"lastModified":"2026-06-30T11:18:40.256835Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"J99Rlmb8g3DTtpOdk+AuhnnLio++emG9jHQZtNB1S4qDgG5rLcUSWytQ+mpCIlyKgB6yQgWEDGLworomS/Ebi1CUh2X1oCwJAwM4vOBav/diCzalQYZOhINbl+sBEV0TEGgPFLZRpzyfSMXNY2LwowYiSK0BRPklr4Fm5Ic2IXto02btLH0KMaBaBEtmr2kdQvCRuZbkEjBfy3xywaUQJrEvV53id5KFHfO0BnyUzE6k6zXMjl7Nrc6T85lvgrQFB1H6qX/d9TEjyWheWkkKLMYsOE8GLWC2q4UUlFK+gl9qnMLyYm4p1o90vXoKlVTRY+E+wBNReNGuUxo5UYptvxFnvXGZ/471EoNd0XnmKbuijj+kbZJp+2xkoDr/gU04UI3zm+eK+kNJYApJkc2JL9mimsVve2JSkx3bYSdkbKh585dUlewqzueo5C69lDqEwE8luuU5hXUaerlvP9jZRCBxd1fIM02mI9ZZKEoHnrVvZuQcaAN3ahXbsfL0LDo1/pShkGCfUBAG2ZZHH0evvNR7zmgI+pEBjU6jJZo7ZOS8eBHAYfDecYqPhVUPgx7FvPaDziJOjla9ys/qJ5wn8t10+NqhiMFQdZa5yUAsxvbFtBvqyHP8ISeoipOAKc9qKa3z+Q+2zqnPvzAZb6pUuWwIbPiLuFbJAf8yWEtOC20=","translations":{"en":{"changelog":"### Bug Fixes\n\n* adjust sender details styling and alignment in thread view ([f7c640a](https://github.com/nextcloud/mail/commit/f7c640a5ff1ca9e926b055858c6adf85eb4617d5))\n* **composer:** do not re-insert signature when opening a draft ([348b87f](https://github.com/nextcloud/mail/commit/348b87fd12db2c17b6ae5b7a4f38874c94da949a))\n* **deps:** Fix npm audit ([8baf24a](https://github.com/nextcloud/mail/commit/8baf24af9c7445236f851ced595380994a60c4ec))\n* **imap:** render inline images referenced only by Content-ID ([64ebf76](https://github.com/nextcloud/mail/commit/64ebf76cc7221498bcd79ef6bf1dd82f08381d61))\n* **l10n:** Update translations from Transifex ([13b66be](https://github.com/nextcloud/mail/commit/13b66be714ae2f45d4d40af646c084be0b48d2d4))\n* **l10n:** Update translations from Transifex ([27ffd61](https://github.com/nextcloud/mail/commit/27ffd61c7faaa68fecf80f5dfb0610de9597d486))\n* **l10n:** Update translations from Transifex ([6231584](https://github.com/nextcloud/mail/commit/6231584989b9992e55920021b08014edcb7e0e32))\n* **l10n:** Update translations from Transifex ([b5e7b8c](https://github.com/nextcloud/mail/commit/b5e7b8c6b52713eeccae5e497583e7c9735319cb))\n* **l10n:** Update translations from Transifex ([2b5ce4c](https://github.com/nextcloud/mail/commit/2b5ce4ccf9157fa2d37345772726bee03e8640b8))\n* **l10n:** Update translations from Transifex ([6376e81](https://github.com/nextcloud/mail/commit/6376e81086893ae5cd03121c151b995ba94edee7))"}},"signatureDigest":"sha512"},{"version":"5.10.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.3/mail-v5.10.3.tar.gz","created":"2026-06-24T10:21:08.321144Z","licenses":["agpl"],"lastModified":"2026-06-24T10:21:08.429081Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"UvKyx/650a9e65+jUQ5gzvg6YE1pbSYoVu6EyPJ+YHCCey4iCw90nCowOLDbW/fwlTC8yaLdbLbL3HtGtPcoJ9ZsYi+UyTeAsB1Dn6igaFykoZVApioEoNzTrCna6RPPsbmLNTxGBwmoeuiMgIxhqT+GmQbTFEZrITMoBXhYF+fd5MoUqtg5NRusFaMYeYjAqvrdz9Y5r3J778Tr6j2cZMUuXvUtZCYysXWt/fTt9FUymhOPZMz697NTDywkHlPMFb4eoPWWCduagzDqJJFCyYUAq6+JmX6DehrVZkSt046E+JF9Qx39jV+yNT0S/22bbojy4mKKolwB++T6sevSAswsiv5Foyc29as48DwpL9sYQ18UEZQ/EcZkdhOtduCyZvfmUc3B7z2yuVVCAi5XwFoYn93L9zeO8k3y80WTg3USelieivIhOZ5Tzab0T6w3UeptzfAnttS+1YICECS9fz8SwNi71+jrzEdtd8TrlLisVC+1Qxq1uBvL4pYWGUbwuRdlsP8YwCVqnv3r3Qca8d3og4YqRKBVmRjE1mnvS5ciYpagbYocyEUbbC14Np8Z+26umyoPriqhOHjfTX1lN5pU7yqkuWmsjdAYRoW2r70imbtZ6+ipBGki7oeImuKo+O2tQ5lrNWx15/ysdcf+DDvKjv1vBkkMnq0QT6hmaAM=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([3095472](https://github.com/nextcloud/mail/commit/3095472677c73d7d7dae43da333cadf94cf697da))"}},"signatureDigest":"sha512"},{"version":"5.10.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.2/mail-v5.10.2.tar.gz","created":"2026-06-23T11:10:21.037116Z","licenses":["agpl"],"lastModified":"2026-06-23T11:10:21.181050Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"GnP6pvLkwYZcXJ1Y7uE+L0TJwQ2caBmn6WI8Kp+mnkVPpxSL+eXfKVWw7fKZ1j6sLFZIoeVtlcvgR2ROYz2rQcuaiq+umZCFupwE8tFCajsBGzPrPicmJ26dHNy4VL/jBU/E8VYs+++xje6xVaJro/OtYujBS1P1FRdNE5udjTLPTtiPwEKNxI3tkGCVbIqmLeZJBquIAgUnemCcd5yezFWzfHhBcyzi5PrXYfLp/6Z8VRnECoU9kFo5YVJbUA63K9y7pwavA7GsZ5/oeTPkC7/b6x9vsVjq7Fl49AWx5XFGhmYdKBEQU92xcm+nqpVppjeQhJqSlKBsAxmtJUvcEpanZxDnNsa+No22SbL9zG+On1PPo1AL4g5uCoyYXIvuvRPaLFEfvOH5q9fsKz0cBba7fZYZWOWeLxq4ND7gSXVkDppnI+XJcG4LKiAXOEewhplCtha5I8aaWBsDl8r6HV3rDNaKKSp+FMK3siDvFcjQYHc0qVCV7UVoJUKSBYLNLhFG8YSaQDEkOucgIBmiUzN59Qvt9bhLBTCSTItVmT7wyrB8x44oKqRgTES8j+IYl4uwkKKXOK23dhT+kgDmH1MCcp1QCM+3jxenWjeyrHtzeKDhJ/lyNAglhIence6k0b2FmYoIbWa2wJr3g3WUGoalIg67IpZSl0BSD3hYAcQ=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **a11y:** add missing ARIA labels to form inputs and buttons ([8adbda4](https://github.com/nextcloud/mail/commit/8adbda4f1695c3d50d9ae54d33e0494c772fc88c))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.11 ([6108959](https://github.com/nextcloud/mail/commit/6108959d6388f62d993c200103b8c81c609d02ab))\n* **deps:** Fix npm audit ([6cf41c0](https://github.com/nextcloud/mail/commit/6cf41c02f783698855132f247786283279c4c2fd))\n* **l10n:** Update translations from Transifex ([0ce1ab9](https://github.com/nextcloud/mail/commit/0ce1ab97f944fd4c6535af0867225339d80b159a))\n* **l10n:** Update translations from Transifex ([4328b25](https://github.com/nextcloud/mail/commit/4328b25153baeb4b9e02df43e809a4569b46263f))\n* **l10n:** Update translations from Transifex ([a5bc9fd](https://github.com/nextcloud/mail/commit/a5bc9fda6fa9ee49844cb747de2885834c4c5c47))\n* Omit fileid for attachments ([f561ea0](https://github.com/nextcloud/mail/commit/f561ea045589c40ce9315cae79d237e03dc9f2d6))\n* **outbox:** reset status and failure flag on message update ([6e3c00b](https://github.com/nextcloud/mail/commit/6e3c00b5e16c3cd1966eb53223246e4a4ce0faad))"}},"signatureDigest":"sha512"},{"version":"5.10.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.14/mail-v5.10.14.tar.gz","created":"2026-08-20T08:00:21.409662Z","licenses":["agpl"],"lastModified":"2026-08-20T08:00:21.522417Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"BC4z1eUOG92ciMHWggdfpB2j6oV3bd0/zdQ0FEC4jx+gO9YwslpESUKEc4DX5IN8M6hMt7LLNm4M8n22oHxf+z6BlGdeqBRiwawRoG3kbkDGwAZ0/L7bySwKb6vHVk5nKjH37kYxSD/q/d3RwRU6aDeZwhqxe0XDdDyQO7/rBPrGIjWUoU1Jrm3SYYMkz3OR5lqjVI8djrnZdH16G+YiDvyQa9Yl6h+fwQp4QHYRBi7K3DuhmJ7wo6Cz7jJbSUMrl7URmMSeqAKXh74HoLY8qgmQ+Dt8TU6io1yziLzY8CqYbjqnf2Z0qPIMQVIH8PO7N0fo/Ad6zuVSxBN1vnUV+4rv4nrk9ongRvuCr4nKXt6PPthdAKuD9sdkyBx7jh0aOnE7qyZUhFJ7vjOgOCVE7z+0LSjcZBmwOBBOgPUPePBofBNWiPPsQnRNkMFoKx2/BGG78vYVf6xU2Q5hTyxV0ZFvqrgMSiaWhnraphfYrrUVqWPLdqumNKKD/YeIwO6HkieP9JaLbujzLGD/slxZ5nqR1NY7FYOHeAKEAwf/Opkh2s6QpGcppDXHb/SQiO3ilPkoCf56VU/PzYuZvUEOrBkafC52PPjqFsHDc+E9405diZmkVZeRIP5M6G2Gwj8YM+2WJJLLUyp7L1siBPKgYF5TR7cHNiSBX4tMq/7ux2k=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **deps:** Fix npm audit ([1f10d3a](https://github.com/nextcloud/mail/commit/1f10d3a9c7b901c32368f69c78dfe01674b01fe5))\n* **l10n:** Update translations from Transifex ([38799b6](https://github.com/nextcloud/mail/commit/38799b639cc29948c1b6f4ad21e4138aaec2276e))\n* **l10n:** Update translations from Transifex ([9fe1f74](https://github.com/nextcloud/mail/commit/9fe1f749983a1ccf1cf932f2a9a2df30b33d58b0))\n* **migration:** support the new OCP DB schema API ([#13513](https://github.com/nextcloud/mail/issues/13513)) ([5edddf5](https://github.com/nextcloud/mail/commit/5edddf5d5f0bb0458d586e35b59bbbeac060ee4e))\n* reply to sender only ([4aba67a](https://github.com/nextcloud/mail/commit/4aba67ac0dc3fb3844e11b4f60bb07406d19ab8f))"}},"signatureDigest":"sha512"},{"version":"5.10.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.13/mail-v5.10.13.tar.gz","created":"2026-08-18T10:00:29.236387Z","licenses":["agpl"],"lastModified":"2026-08-18T10:00:29.315186Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DFKAdgNToj2AFuoT9QabxRC7dyf6zTI6NKtz+0qcf86IcU6d8QZAYL1Ivo/JohVpPjMIU4a5sVuII5+bZFgiYbtpK60Dn39y5n8nPtk8pXK2sjkZXGNbaFqsedloYTtDqT5mOO9/2aWrzhnQRzhGX1POSQWeLfCdFT5aiw7QSyz1sTe9w1K8I5bQiTDPT+SfU7YEatSRQgbnIccY5s1nGviHijPq1fq4HeQksaltBdcyg3ipPIhlodbY8/d/V9FE1VwHdH4EE9q/HJDo2QhySrpequn7aASm5DFWYWvtKCU7Fcl5Iu6NxsRlOrnB2O3ExJJq+EQ8N8TrACuINFH6/LO948ezyA5t03sPONafsfrzkIGhzEGxAORqurj2UUIvEKfUTyLylr+rlmgnyI43wrHernPZqw1SVkYkOjWzsaVdQULzRGTB6GGqbvqyy5O+ZSwyYbLMAmhXZmQEmLKtzk7JX8VuUdzIU1Ctk3ukNVhhg8DINMmQVLnkq7za+A7vtuR+5Mx8Cu9if4Uw+eMO2d3+/9MoWylAorT+8ut1vvV21csGeaP3heK+dMJ4jFnM91P65ioeSky/XBohia6BWurJolxReWWhYZ2Vp8IoQbgwdbnLt8w8iaTDjpzn1vu2OV7h91PWQdoJBwUtShrqnaqsldIIZXoy/yh1Y0k8idk=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([c4351e2](https://github.com/nextcloud/mail/commit/c4351e2a0e35a253fff6a84ad5ace945afe1ce70))\n* **l10n:** Update translations from Transifex ([ccceb28](https://github.com/nextcloud/mail/commit/ccceb28be5635dce16a08ec2778e3feeeef21129))\n* **l10n:** Update translations from Transifex ([b0ca679](https://github.com/nextcloud/mail/commit/b0ca679b7c8bbd1169f8e1656c1985a8b5cdb4d9))\n* **l10n:** Update translations from Transifex ([8421d04](https://github.com/nextcloud/mail/commit/8421d042d885e4605c5f24a1ff62009a0fbe3906))\n* **l10n:** Update translations from Transifex ([8fc47d5](https://github.com/nextcloud/mail/commit/8fc47d5937f0db8dc5db525bc3c1ba63902c243c))\n* **l10n:** Update translations from Transifex ([cb04b1b](https://github.com/nextcloud/mail/commit/cb04b1b2b93066af644fe8c7f479c77a050d8825))\n* **l10n:** Update translations from Transifex ([7161e12](https://github.com/nextcloud/mail/commit/7161e1204fc9f943721cd9fddde852280e1f8986))"}},"signatureDigest":"sha512"},{"version":"5.10.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.12/mail-v5.10.12.tar.gz","created":"2026-08-11T11:32:51.516870Z","licenses":["agpl"],"lastModified":"2026-08-11T11:32:51.596863Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"YW3N39aod4J771tGAwhGR5ifbVhRWNj47xTwG0IMp3YchvojD273cRctJdUjpipZNsUENqGYvWsIa81ZVOwRWMmyximOxJk20pAt95Zf7N52tILlbF3c9s7krL9IxXNaQVqjkq0Orwxc0YbVD1z0R/7lcwEduVMvd8D69QhjSwR0ZaSQ2EsDSB0XHp2aLfPpsqpEJj8spkIrqE2qlbQmxXfj4yGT26kSpUz8qBC8Dg/OgWt8t8H9qwUYVRA0tUWlVoxPxHT6t/318RX1MLrPUJUE5DYS+SmntNTaBU9w3g0hf7tNY6EmGAo8EH15n/pp4UyniUUxE+23Nm91ue4g0FMEtMZJagwa4U0jhnSiLi/tz51cwTVMmLJcLh0nQ0RnjtgBVT2zqU02tOxIhpisMhW1TyZ3H25/Hrb7FnLGoIM/mH9mB91XQ/zixR32U46zbCJO8RF7GfuaJovbSKmR99DCeauL8CoQ359fLS9cn+O8pGRtZpPK4fq3smfNE+RvT6rcbxYeyGofb0SDN7XkbNeI5usxhrSPQUkqoJF4T6aHu5XV5IyOHDOddh+3CNUmmyjkvBWlCoeRMYQRBCeNjaO9CUjxLysM8ETqZOh9dcALxdG9WS9otfqrDy4qqF/9IGk5E4YWkebT8+cy56eRjHDihMQuayt99lJc5u8a2N4=","translations":{"en":{"changelog":"### Bug Fixes\n\n* configurable timeout for connectivity tester ([785d996](https://github.com/nextcloud/mail/commit/785d996f2bea6a34df7cde7ec59f05c12223fffd))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.13 ([51dc6c6](https://github.com/nextcloud/mail/commit/51dc6c651d476bcec6177eeb49da808b02d8cd9b))\n* **deps:** bump postcss from ^8.5.13 to v8.5.23 ([1bc535e](https://github.com/nextcloud/mail/commit/1bc535e1c838fd7bdf122ef286cfd4616dc8dcea))\n* force user identifier when saving tags ([b941a44](https://github.com/nextcloud/mail/commit/b941a447480ef9f7c760ab404f4381ac8441a13e))\n* **html:** strip conditional markup from html mail bodies ([ef746a3](https://github.com/nextcloud/mail/commit/ef746a3ecca0019c1ba96007c4ddf59de5e900f8))\n* **l10n:** Update translations from Transifex ([36385c5](https://github.com/nextcloud/mail/commit/36385c5b6f3e1f71372a1e9cd9f1867e21aab7e6))\n* **l10n:** Update translations from Transifex ([e769da7](https://github.com/nextcloud/mail/commit/e769da73169865fc9afc1b83df7cf0d24bafbd94))\n* **l10n:** Update translations from Transifex ([e6650bf](https://github.com/nextcloud/mail/commit/e6650bf4f1b503a2b0a523189e3778aa5333a1c8))\n* **l10n:** Update translations from Transifex ([6933eb0](https://github.com/nextcloud/mail/commit/6933eb00e95f07085486b8c5f4321f3190fc2d56))\n* **l10n:** Update translations from Transifex ([e445a34](https://github.com/nextcloud/mail/commit/e445a34154c6be7498497858d94701dd985e0d91))\n* **l10n:** Update translations from Transifex ([9200acd](https://github.com/nextcloud/mail/commit/9200acdf87920caa59441fb694744e0faaa00300))"}},"signatureDigest":"sha512"},{"version":"5.10.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.11/mail-v5.10.11.tar.gz","created":"2026-08-04T15:57:38.434329Z","licenses":["agpl"],"lastModified":"2026-08-04T15:57:38.527721Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"L5IRrxr58/8ERR2pmRy7ee9zIXzI4DUCXiP+L6Zuc54gq/G4ltXOdEvEq6fpNuomLOLtwTp43qFXUW+VWUClXtP3gSy6/enUij73lsk/itMil9UiipUjvVXBpa5InQ1csKtOwg/JeV1QOhI+JxUDwrAahIZW/c8nSxz/ZdrM5Vhgm9D4xRfEL8NZYs4/1giu3/auBETVbbqSMITnYmv5sFhx1G1WNZtrdRjq+EABfQBRuw0LmoJvs7JNXy9kIWxbYMQGAsJ2534bPLdBcEj0wOlQ74Ui07C8hM0L+f26TeJ34AQFs27szwVvCoBuKEGC/DwP39Wov5XbWbb9yGKEZrdbjgN6/wG4osYJpdN99gVQO5I462VGXKS1/VBvoVqI/t2eoe016NCm+52kTqKAdWgm0g1a5GvYfzo4vucVTib/8I+v84Qy36lQuoBDhbEKOKQysx5FNcn6KK5VzxLYWVO1q/NCl4H1e3zvXdvUCjwUW56H8knH4KMt16z6fXOEld2MiZFUGYAgsR1keNAhphV/1+PXoz9gP3UTozthc23uoo4kbqPQRanPwFDqgK5jNvcPaYb6kpPAwmRASWOZxaLqAdEbx2SvhrA21/VJGNd8XVo5k2gUokoRd1kzCqchDHFiCuxDD/15l3j7wkgUX91t2rVHvKpRG93uV43oWF8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **composer:** keep signature images by switching to rich text ([15ffd98](https://github.com/nextcloud/mail/commit/15ffd9814afe59283f3eac810c53578905431c1f))\n* **dns:** Update public suffix list ([5addb4c](https://github.com/nextcloud/mail/commit/5addb4c35dce898780fd5384a90353a41fe782f4))\n* **imap:** use PEEK when fetching attachment/body content ([2199647](https://github.com/nextcloud/mail/commit/21996476643ad42391e80707e59baf0229bea266))\n* **imip:** log why an iMIP message was flagged as failed ([1d1adc0](https://github.com/nextcloud/mail/commit/1d1adc0e2e381125efe9c2e8040b9299116ad595))\n* **l10n:** Update translations from Transifex ([9f6f710](https://github.com/nextcloud/mail/commit/9f6f710807c4498165ca7ddeb621c031fd6bcc65))\n* **l10n:** Update translations from Transifex ([10d2c69](https://github.com/nextcloud/mail/commit/10d2c69064938bce660936c85342fe26425cdac2))\n* **l10n:** Update translations from Transifex ([b41564e](https://github.com/nextcloud/mail/commit/b41564e171221193e41246a7ebf8804d7d2a9274))\n* **l10n:** Update translations from Transifex ([7e741df](https://github.com/nextcloud/mail/commit/7e741df3a56c6e4ebfa7e5217af59c52c06c697e))\n* **l10n:** Update translations from Transifex ([c6df005](https://github.com/nextcloud/mail/commit/c6df005fe178d2da49e98306d73567d2da4e4e8c))\n* **mailbox:** Flag shared mailboxes as shared ([bdab249](https://github.com/nextcloud/mail/commit/bdab2499484c0e5edd5ad05425ce306098f64cf9))\n* **mailbox:** Ignore prefix-less namespaces in shared detection ([e87ae9f](https://github.com/nextcloud/mail/commit/e87ae9f8f0616701cf34ccf8981fdf34b41a36e9))\n* **settings:** bind signature editor to the account writing mode ([c9acf09](https://github.com/nextcloud/mail/commit/c9acf09cee21b34efe32bf6b0a65eaf20adbd1d6))\n* unify mail printing ([5350aac](https://github.com/nextcloud/mail/commit/5350aace31c02c6549ec3b4dde359e08481d420f))"}},"signatureDigest":"sha512"},{"version":"5.10.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.10/mail-v5.10.10.tar.gz","created":"2026-07-28T13:25:33.787114Z","licenses":["agpl"],"lastModified":"2026-07-28T13:25:33.875800Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"QxJFkQrVZ8cHrS6VW5vEllahJEiGu8CTiehUDuRU3jBTde8kQ2djNZp5zmqsSyyz2oB0KCL6ANhpF2NQ9p/Ydr2UNwlDSjXa1LHu0E3WZGrMXeoC4WqjDVM0UNKlLzXpemhxr8PtaVMn52DbaPm7pUwjY6iqh+9aVyYdFBAUBlMb9Rhzxh+uIKsyGvG8/QNW+Ri55yDbvpVan7IalywY2UGr+Tj2WMT569du3Lt0e/IM/Jki68VjebrQwW9WkfeXDwOnt5mAa8Q4dId+uGkh1aZreSPx8J0a6ogKzUsojJD02dJnhfcnMp0WHRXB4mrwlQxibNKPYR8XtUdLa86gqcj+YlRnzS9My/+3WiM05BnbVkeX60TPIXkbWaJFPNJej6a9Xg/nEdyNuRkP0i2hP3/7OTU6z7ushtGX6T8x0px153N01FI2WHyLqBWUlDoR1/7qaacQvr8p9f8gLAO0ay+auRt3DeD+uscDP3PJ/8AZZRbDiPz2NvnTjSm/F8WeeS6GSf32XfvRRO4gSE2RhXU6u2Xivceby7VE3RIGod0uPvAzbebbIBNCywg/+MuIfoCn7HqfXGP6i6851JbYpHC0/KYlJvI5VmAP9Nq0lciYoGfBaeEK8tfNJs1l19K0dAAuK7FkmSBEJxrmjTZSOKeZnavw6vB4TIWjHGe99N8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* Adjust relative date display to also use timestamp for yesterday ([5d69b84](https://github.com/nextcloud/mail/commit/5d69b84fa2b8d4a891d0634d48f85c3f00a4427d))\n* **ai-integrations:** check for star/end email in message bodies and validate json output for smart replies ([9f6bfdd](https://github.com/nextcloud/mail/commit/9f6bfddef84608032cd4eeb8dbe5afa9b587a765))\n* **ai:** migrate AiIntegrationsService off deprecated TextProcessing API ([6b31c6b](https://github.com/nextcloud/mail/commit/6b31c6b08d599718faa84eeb1a0759dd662defd4))\n* Correct hasLocks() expiry check ([a5b7b9d](https://github.com/nextcloud/mail/commit/a5b7b9de78f16f4a1ffde942a8830dddf904fc21))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.12 ([dd77514](https://github.com/nextcloud/mail/commit/dd77514aa3489a5ff6c0585a9b4a357631516c1b))\n* **html:** prevent invalid UTF-8 from blanking mail body ([f9412e9](https://github.com/nextcloud/mail/commit/f9412e992a3b8d83f6431daf4db029f3c41b82e3))\n* interactions in actions menu for mailboxes ([0d87e95](https://github.com/nextcloud/mail/commit/0d87e95c50300a561440b663caca9f0a5f21a5e2))\n* **l10n:** Update translations from Transifex ([4660892](https://github.com/nextcloud/mail/commit/4660892e6a3afc3a986f9cb86c184a7babdc7293))\n* **l10n:** Update translations from Transifex ([8fc91b4](https://github.com/nextcloud/mail/commit/8fc91b4fc50d961d62d51ed6a909f16b09af6246))\n* **l10n:** Update translations from Transifex ([f71de6f](https://github.com/nextcloud/mail/commit/f71de6ff0a62f65a53dc1af6338231e44d67538d))\n* **l10n:** Update translations from Transifex ([7e7fa2f](https://github.com/nextcloud/mail/commit/7e7fa2f452377b7aa5c492ae46e5a5de0214a16e))\n* **l10n:** Update translations from Transifex ([bbdb0fe](https://github.com/nextcloud/mail/commit/bbdb0fea7a5732d2a6680d2107b9b9f8ef29e77a))\n* **l10n:** Update translations from Transifex ([e2afe9e](https://github.com/nextcloud/mail/commit/e2afe9e92da71164085fa9b51019f0a5f0ee565a))\n* **settings:** Add loading states ([340cfd3](https://github.com/nextcloud/mail/commit/340cfd3cfeff801a80ae7796829bda285aa01793))\n* **ui:** do not mount favorites list when sorting is off ([6623287](https://github.com/nextcloud/mail/commit/6623287e06b71a9b9970b6c1b5d604c68c6442b1))\n* **ui:** rename beforeUnmount hooks back to beforeDestroy ([c85bfbe](https://github.com/nextcloud/mail/commit/c85bfbe9e176eb815dd1e39138d21577f3984ec1)), closes [#13031](https://github.com/nextcloud/mail/issues/13031)"}},"signatureDigest":"sha512"},{"version":"5.10.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.1/mail-v5.10.1.tar.gz","created":"2026-06-19T09:26:29.612903Z","licenses":["agpl"],"lastModified":"2026-06-19T09:26:29.736429Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"LYNuV/6iU+N8eAR8ax7gd8VQf1IswtyXP97kO1Tr1Hko2GfU1XnY7BnRGqtZo8QbdGgpbuzjZIkZahtgBM1gBuG0RoEyTwFPr4d8XH0p8jLUhmwXql2saJGlhkl5i5VwrWdgU8iNfiVjtN9g621v6IkkZ8uOhbz/T6sB42d4Hnqj3fxaPHCx/UYdNt1pEyP8NK9Q5dGgAxdB5oT/gDoBdvOOkKMaJCtUrw5DTRcXxHpetwsB7P8NZE4QhMud4lQbACSOAjQEI7MXxxzsjwsFL5N3qvnwmeQqwFlix71+jINj6sY8IwNxbxaUYx4YM39ykfhVSutnN41CoMS4Yh7jXhRxy39+iKLqUUuzFNXqq1VhhjPUTOxE0pdFyRmThy4DMOSTnDyQiUM6BEVQO1lwvanX8Fjrdte8Lk9Zkpr7dMUt0B6M+CRiUvFTbxZoYvTcyXk085R/zuI0xgSmkgGtxdsTWyIZBvUU/rpjWe44Nei4IIT2rX9M0A31m33V6uWaYoyyB7WgnmX9SnWVNKRrTR26klOFKNgSMo8RrKJwPgP48BHRv9kFeq0vuddiAlMbm9158sOwihJJrzxSMaK81loPJ/KIHHLmJ8lCe8AKLKhMAyF3uSE0BQqH38L/1dJGiuL+6IUrujIdYY95zUv+tUmvFZW3MZO+Oq0BvYTNi5E=","translations":{"en":{"changelog":"### Bug Fixes\n\n* account settings section font size ([2eb0ba8](https://github.com/nextcloud/mail/commit/2eb0ba82b9bb452b10bef698fb18a09c6db4a0ee))\n* **AccountSettings:** overflow bug when using autoresponder checkbox ([3343cfd](https://github.com/nextcloud/mail/commit/3343cfdc6211b5ff3624a16f784ddfb6f4339f2b))\n* **delegation:** show delegates' display names instead of usernames ([557a51e](https://github.com/nextcloud/mail/commit/557a51e3e945a0c4538caaf0af31f1eacd48750e))\n* **l10n:** Update translations from Transifex ([5137bf5](https://github.com/nextcloud/mail/commit/5137bf5fd120cc3ae5b95568faacd516de854973))\n* shortcut search buttons ([df91057](https://github.com/nextcloud/mail/commit/df91057374a25577f305af5a1bcf0845ce159606))\n* **ui:** harden error handling for AI summaries ([9793f89](https://github.com/nextcloud/mail/commit/9793f8927a7aa4d1be959eaee9c6e545fd1bbf49))\n* **ui:** unset error state after account setting update ([e56cd98](https://github.com/nextcloud/mail/commit/e56cd98c34dc759538ff069f5a1fc454889e5951))\n\n\n\n# [5.10.0](https://github.com/nextcloud/mail/compare/v5.10.0-rc.1...v5.10.0) (2026-06-18)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([f28d17d](https://github.com/nextcloud/mail/commit/f28d17d05a12ec10a8faf2a16a107ca1d9a3051a))\n* **psalm:** adapt to updated OCP dev-master return types ([94e2d86](https://github.com/nextcloud/mail/commit/94e2d86e2e467f6dd61bada686906f57624bcd0a))\n\n\n\n# [5.10.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-rc.1...v5.10.0-rc.1) (2026-06-17)\n\n\n### Bug Fixes\n\n* **delegation:** missing mailbox id in audit log ([57c1d41](https://github.com/nextcloud/mail/commit/57c1d41b60064016f92ad2f79047dcbb8d177e51))\n* deleting a message should move the focus one below ([b2bbd4e](https://github.com/nextcloud/mail/commit/b2bbd4e29f13b774bacb963bedc44e4e6c2911a6))\n* **deps:** bump @nextcloud/vue from ^8.38.0 to ^8.39.0 ([cb6c2e2](https://github.com/nextcloud/mail/commit/cb6c2e23a72df9e6d5a983174a005ef99e848856))\n* **deps:** bump dompurify from ^3.4.2 to ^3.4.7 ([#13043](https://github.com/nextcloud/mail/issues/13043)) ([5845e27](https://github.com/nextcloud/mail/commit/5845e270b21757762b42d01aa5424a5718bdff17))\n* **deps:** bump dompurify from ^3.4.8 to v3.4.9 ([3355ac5](https://github.com/nextcloud/mail/commit/3355ac532693504453f5b19d0ef4af38ffc3fc39))\n* **deps:** bump vitest from ^3.2.4 to v4 ([5e31000](https://github.com/nextcloud/mail/commit/5e3100021605ff4ba4c47a7e699b09673e6a9c58))\n* disable CSRF check for message-id deeplinks ([86a46a9](https://github.com/nextcloud/mail/commit/86a46a9c09c3983db1057151bb3bb30417613a4f))\n* **dns:** Update public suffix list ([b45cf9b](https://github.com/nextcloud/mail/commit/b45cf9b63fe21ea152c85e253a2441de6d900759))\n* **frontend:** log swallowed errors in catch blocks ([79629b6](https://github.com/nextcloud/mail/commit/79629b60cb1aa755b1361575e7d6f9c63ed3a3af))\n* **l10n:** Update translations from Transifex ([b133d88](https://github.com/nextcloud/mail/commit/b133d883fccc016048a1b2a243e4181274a2a17f))\n* **l10n:** Update translations from Transifex ([1e9d3e8](https://github.com/nextcloud/mail/commit/1e9d3e829c3d66c54dd4c5e15162b71ea7652779))\n* **l10n:** Update translations from Transifex ([35839ac](https://github.com/nextcloud/mail/commit/35839ac152de3e0221497743de668ad3aa44ca05))\n* **l10n:** Update translations from Transifex ([f68b723](https://github.com/nextcloud/mail/commit/f68b7238c24c1b9cd6f281a0a241abaed01a51ca))\n* **l10n:** Update translations from Transifex ([8f7f7c9](https://github.com/nextcloud/mail/commit/8f7f7c99f967d8a4c8b2f8919f0331bd2fb33656))\n* **l10n:** Update translations from Transifex ([4a4104b](https://github.com/nextcloud/mail/commit/4a4104b1d0ac52dfb104c66e8d7b72e74e3aa5dd))\n* **l10n:** Update translations from Transifex ([c9ee373](https://github.com/nextcloud/mail/commit/c9ee3732149ae62141e093633bca6c93a50eef1d))\n* **l10n:** Update translations from Transifex ([f9f5dde](https://github.com/nextcloud/mail/commit/f9f5dde5be1e759e30cebfe02d5022402c3b1919))\n* **l10n:** Update translations from Transifex ([b4764be](https://github.com/nextcloud/mail/commit/b4764bea3d51e2cdcc4915747e3301b66ea3f9cd))\n* **l10n:** Update translations from Transifex ([04d1a48](https://github.com/nextcloud/mail/commit/04d1a48007a67902441f8d65e3e133de19a67e2f))\n* **l10n:** Update translations from Transifex ([7e4eab6](https://github.com/nextcloud/mail/commit/7e4eab620aa9931d6141b1febab6d512653e5bf9))\n* **l10n:** Update translations from Transifex ([809d826](https://github.com/nextcloud/mail/commit/809d826ae9e7b08d289c4ae519a7982459b6464f))\n* **l10n:** Update translations from Transifex ([7551ba5](https://github.com/nextcloud/mail/commit/7551ba5e8af95a1019b34386eaac814b1a48774f))\n* **l10n:** Update translations from Transifex ([9d67a65](https://github.com/nextcloud/mail/commit/9d67a65f9ed59c6799687feab14236e917c8e9d0))\n* mail printing ([47820ad](https://github.com/nextcloud/mail/commit/47820ad24482622c1c9e5593186a76ccd09595a0))\n* **smtp:** handle non ascii sender names ([f9803f9](https://github.com/nextcloud/mail/commit/f9803f9fbd043de726b08f1bdc04a7795a8a7f00))\n* **ui:** prefer sans-serif over Noto Color Emoji for text rendering ([3473b1d](https://github.com/nextcloud/mail/commit/3473b1dfdb05602ea4baaee0e1a5c6e9c0e0bd75))\n* **ui:** prevent type error during shortkey usage ([c9cbc09](https://github.com/nextcloud/mail/commit/c9cbc098a0ea38db1ed2ab87b58a17e9865f3575))\n* **ui:** restore isSubscribed getter on mailbox update ([c44f12b](https://github.com/nextcloud/mail/commit/c44f12b2f294d04cac1c73b41b68d6f9ce8e9af1))\n* **ui:** sub-mailbox drops blocked by parent cascade ([0e81d91](https://github.com/nextcloud/mail/commit/0e81d91f3b4f2a86a2fa80e08f63907f104978f8))\n\n\n### Features\n\n* add ai hint on reply with meeting when ai is used ([fe60745](https://github.com/nextcloud/mail/commit/fe607453a5a320e8324e1c81a2c6f353bde4917a))\n* **ui:** add password change shortcut to server settings ([ac447f2](https://github.com/nextcloud/mail/commit/ac447f2e6e3acacbaeba28b585046ed253edaa6b))\n\n\n\n# [5.9.0-rc.1](https://github.com/nextcloud/mail/compare/v5.9.0-alpha.1...v5.9.0-rc.1) (2026-05-27)\n\n\n### Bug Fixes\n\n* **api:** validate targetPath is an existing folder on saveAttachment ([0f5d81c](https://github.com/nextcloud/mail/commit/0f5d81cf8ae5994f36d2364088c02834e18bce4e))\n* **deps:** Fix npm audit ([45b32cf](https://github.com/nextcloud/mail/commit/45b32cfb49e03a1bff58d6a08155cfacb691acef))\n* **dns:** Update public suffix list ([119a96b](https://github.com/nextcloud/mail/commit/119a96bec966268116776044c6866dc547a801ff))\n* **l10n:** Update translations from Transifex ([9b6ba58](https://github.com/nextcloud/mail/commit/9b6ba5871b0895c9a15e88131921d4228ee45200))\n* **l10n:** Update translations from Transifex ([fba5807](https://github.com/nextcloud/mail/commit/fba580735f9f0b89269b7885adb00a264c4ee397))\n* **l10n:** Update translations from Transifex ([b37655d](https://github.com/nextcloud/mail/commit/b37655d8d5fd9ad84f2ddb1ef94b2e60e7488140))\n* **l10n:** Update translations from Transifex ([0367a07](https://github.com/nextcloud/mail/commit/0367a07118c904d5522a9047520104145ec7f219))\n* **package:** exclude dev config and patch files from release tarball ([6d20e3f](https://github.com/nextcloud/mail/commit/6d20e3f06afb127e5e5f19fca8fd6a810747eb46))\n* **ui:** add NcModal name prop to SmimeCertificateModal for accessibility ([525c3ab](https://github.com/nextcloud/mail/commit/525c3ab9d53f19082c137cc0050f4038c54f0b70))\n* **ui:** use v-model for assistance setting switches ([9bbae7d](https://github.com/nextcloud/mail/commit/9bbae7d7d55a5e22f0c1f67e1d58f987ffe80233))\n\n\n### Features\n\n* add notifications for account delegation ([2e1ddae](https://github.com/nextcloud/mail/commit/2e1ddaec2d45636f69a70c338fe5caa7b659ffd2))\n* **deps:** Add Nextcloud 35 support ([e3dcc0e](https://github.com/nextcloud/mail/commit/e3dcc0e0ac3b644199abb36def63c6737a89919c))\n* **ui:** paste or copy several e-mail addresses into address fields at once ([98f6282](https://github.com/nextcloud/mail/commit/98f6282008460663bd312d66d4398ae01aa7c188))\n\n\n\n# [5.9.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.9.0-dev.1...v5.9.0-alpha.1) (2026-05-18)\n\n\n### Bug Fixes\n\n* **auth:** detect and warn about MS accounts without oauth setup ([836b36a](https://github.com/nextcloud/mail/commit/836b36afa096a89334986653fff2f8a3d3c69b9c))\n* correct favorite/unfavorite bulk action logic ([fcb160a](https://github.com/nextcloud/mail/commit/fcb160ac78f58e93df9c2cddcf2189a81b42c876)), closes [#12149](https://github.com/nextcloud/mail/issues/12149)\n* **deps:** Fix npm audit ([8df6bdf](https://github.com/nextcloud/mail/commit/8df6bdf5f161345ce4d64b472ff05fa6f1ac79a6))\n* **dns:** Update public suffix list ([23d0823](https://github.com/nextcloud/mail/commit/23d0823dd1d930fbaf72b93c089b30c6622e5661))\n* **imap:** log number of connections during CLI sync ([d9c240c](https://github.com/nextcloud/mail/commit/d9c240cac5ea17029c8272707614de1ae63a88d1))\n* **l10n:** Update translations from Transifex ([7838385](https://github.com/nextcloud/mail/commit/78383856e07df0c2a7ba0bd2f7f8e66b7ddcf69c))\n* **l10n:** Update translations from Transifex ([203ce36](https://github.com/nextcloud/mail/commit/203ce3603f6abf3640dbc4856e422162a55e5531))\n* **l10n:** Update translations from Transifex ([c6b89ed](https://github.com/nextcloud/mail/commit/c6b89edbcbe08ec9d9e7cadf3aa89d148728a4c2))\n* **l10n:** Update translations from Transifex ([8cb01dc](https://github.com/nextcloud/mail/commit/8cb01dc41e437aa9e0aeee6bf9cfe20cefd71b8f))\n* **l10n:** Update translations from Transifex ([17d048a](https://github.com/nextcloud/mail/commit/17d048a2deac844415f28d98e7bc5cd7bf3d3a3c))\n* **l10n:** Update translations from Transifex ([40cc7c2](https://github.com/nextcloud/mail/commit/40cc7c2469ef49a470cbbe2a9b5b5e9b574f26c7))\n* **l10n:** Update translations from Transifex ([af4c704](https://github.com/nextcloud/mail/commit/af4c704e8653a70b56784bb15a3c1a78b377078e))\n* **lint:** fix all lint errors introduced by recipient display changes ([f19e780](https://github.com/nextcloud/mail/commit/f19e780abfa5df2a01d4805707deee2c22a03ae0))\n* Load translations via filesystem path ([042cc1e](https://github.com/nextcloud/mail/commit/042cc1e468f771018a86c043141f1e61ebea8e17))\n* Modal open bug ([5f21187](https://github.com/nextcloud/mail/commit/5f21187f8458322e5be8ae3728cb4d9156eceff3))\n* **thread:** address PR review comments ([dcbf341](https://github.com/nextcloud/mail/commit/dcbf3414f3cf4973304aa64156ed6f23fcb1a6d2))\n* **thread:** address review feedback on recipient CSS ([478f2f6](https://github.com/nextcloud/mail/commit/478f2f6011ce1dae128de9a7a28fa0b065583322))\n* **thread:** collapse recipients by default behind toggle chevron ([13041d9](https://github.com/nextcloud/mail/commit/13041d9f913c8cea46adff73e028cb4a7977a964))\n* **thread:** move recipient bubbles outside router-link to fix click handling ([971a59d](https://github.com/nextcloud/mail/commit/971a59dec9534917cb608c90fd27a9adfe992e83))\n* **thread:** polish sender/recipients display in thread envelope ([d02a261](https://github.com/nextcloud/mail/commit/d02a2618bfabd715998110c14c4bdfb3aa64b374))\n* **thread:** size recipient bubbles to 24px via CSS overrides ([2add2e4](https://github.com/nextcloud/mail/commit/2add2e4f0800570122ffa492ff64a1e06df9a785))\n* **ui:** close attachment actions menu after clicking Download or Save to Files ([dade396](https://github.com/nextcloud/mail/commit/dade396308420d2507f75ab7491782572f18c85e))\n\n\n### Features\n\n* add delegation ([cf3bd8b](https://github.com/nextcloud/mail/commit/cf3bd8bf04307bcc91c28dc98928f171eca1a475))\n* add html and source editing support ([0eaad6f](https://github.com/nextcloud/mail/commit/0eaad6fb1f1408d1b17a3a3ceca27583f5b5fac2))\n* **Agents.md:** add styling instructions ([5dd4fd1](https://github.com/nextcloud/mail/commit/5dd4fd14cf85b420685a3e4915255d7167a40c03))\n* Keep inline images on forwarding ([bcf94f4](https://github.com/nextcloud/mail/commit/bcf94f40267edb19b96a3c1d03297cf28fd1e51b))\n* **thread:** match design spec from [#4258](https://github.com/nextcloud/mail/issues/4258) ([14fdd9a](https://github.com/nextcloud/mail/commit/14fdd9ab94d3fee82eff3ca71b4fd644094de49f))\n* **thread:** show per-message To/Cc/Bcc recipients in thread view ([332ffef](https://github.com/nextcloud/mail/commit/332ffefd5c42d6b387b00834d0d167b3531c173c)), closes [#11305](https://github.com/nextcloud/mail/issues/11305) [#9311](https://github.com/nextcloud/mail/issues/9311) [#4258](https://github.com/nextcloud/mail/issues/4258)\n\n\n### Performance Improvements\n\n* **imap:** reuse client connection during initial sync ([c0f3a79](https://github.com/nextcloud/mail/commit/c0f3a79ff0e5a4bf6ef022677bf1417e66be851e))\n\n\n\n# [5.9.0-dev.1](https://github.com/nextcloud/mail/compare/v5.8.0-alpha.1...v5.9.0-dev.1) (2026-05-06)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([e27a4ad](https://github.com/nextcloud/mail/commit/e27a4addb73ea82d3500844297658ac47447028b))\n\n\n\n# [5.8.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.7.0-rc.1...v5.8.0-alpha.1) (2026-05-05)\n\n\n### Bug Fixes\n\n* **AccountService:** Invalidate cache after account creation/change/deletion ([f205e15](https://github.com/nextcloud/mail/commit/f205e1529b55a5d199589e5e90d758e3019d3b23))\n* **account:** use classification state from account ([662eeff](https://github.com/nextcloud/mail/commit/662eeff58c7196b01dfe8ace35a9765bf86ca05d))\n* adding smart reply text when reply all ([1c32ab1](https://github.com/nextcloud/mail/commit/1c32ab15920853ad4c81056e1a58e5dd32ba200b))\n* **agents.md:** adjust license ([380a961](https://github.com/nextcloud/mail/commit/380a961ff60008270f1df98b071544e68e36643a))\n* **ai:** handle invalid JSON and possible null for smart replies ([27e443b](https://github.com/nextcloud/mail/commit/27e443b66369afbdb538cf9e9ce47f259bd1de61))\n* **attachementNames:** lower log level ([22a111f](https://github.com/nextcloud/mail/commit/22a111fd5051421279fd7237daac903e557a2293))\n* **attachements:** unify icons with the rest of nextcloud ([ea58f99](https://github.com/nextcloud/mail/commit/ea58f9963bd620e62e52ab9c78ecb20e8409d0f0))\n* **autocomplete:** respect privacy settings for sharing ([b7e6088](https://github.com/nextcloud/mail/commit/b7e608827e355c416069f3a3b6a306aee6d113f4))\n* Avoid undefined array key for address list ([f3497f8](https://github.com/nextcloud/mail/commit/f3497f824df3781400bb5ceb6ae4c40fddf03501))\n* Broken encryption with Mailvelope ([4b543b4](https://github.com/nextcloud/mail/commit/4b543b4719341f2e0cf0f01b325e88c37e138c51))\n* **cache:** expire the IMAP ratelimit keys via TTL ([f1ac885](https://github.com/nextcloud/mail/commit/f1ac8858927a560df03fc76e4950d8e24896219e))\n* **ckeditor:** Better matching for CKEditor translations ([990f94a](https://github.com/nextcloud/mail/commit/990f94ad09d646c27de6a3ed33c062b4d9f7ecc9))\n* clean text blocks on user deletion ([93b07d4](https://github.com/nextcloud/mail/commit/93b07d4c45cdaa2377d407d8b7944b0b321183d6))\n* compact view UI fixes ([d8cec2c](https://github.com/nextcloud/mail/commit/d8cec2c744fbf94fb4e255c9da229a0fd5c4f120))\n* **composer:** Adjust border color of vertical separator to be in line with other borders ([71d88f2](https://github.com/nextcloud/mail/commit/71d88f2c0b8b3d30bf60f84d7ed3db9862eff440))\n* **composer:** Adjust border colors of CKEditor element to be in line with other borders ([496b8f6](https://github.com/nextcloud/mail/commit/496b8f654953ef51ef2906165da55a6c32f59291))\n* **composer:** Don't show 'No results' dropdown when To/Cc/Bcc focused, only with search term put in ([6e78828](https://github.com/nextcloud/mail/commit/6e788289f2ab89dfe2191d377e477aa9f6e4bffb))\n* **composer:** Forwarding emails with attachments ([4dd6a0e](https://github.com/nextcloud/mail/commit/4dd6a0e766831ea1b91b01c2fc71335fb0e85705))\n* **composer:** handle missing message body gracefully ([1d40201](https://github.com/nextcloud/mail/commit/1d402012a443e7fd343f9412f511208fc2f1ca43))\n* **Composer:** make initial focus be on to field ([010f648](https://github.com/nextcloud/mail/commit/010f6485bad8fa9c2ad95616ba1b6d5ac5ad4f70))\n* **composer:** Use v-model for send later radio buttons ([bb99cfa](https://github.com/nextcloud/mail/commit/bb99cfa7404a08e80a543813c7d6511127bdf1b6))\n* **contactsIntegration:** avoid incorrect cache results ([ae4af81](https://github.com/nextcloud/mail/commit/ae4af81430e0cf0de04b771a20ef910bd01ab93c))\n* **contacts:** Use correct default for shareapi_allow_share_dialog_user_enumeration ([2e8ed36](https://github.com/nextcloud/mail/commit/2e8ed36f10f5f01c8ff3a26a4ac8949a4b4a2e6d))\n* Copilot suggestions ([3c7341f](https://github.com/nextcloud/mail/commit/3c7341f44b1760126846881586e16e168b9aed09))\n* **db:** add missing messages table index for Postgres ([747cf7d](https://github.com/nextcloud/mail/commit/747cf7dd6a7414a7e19b78fa4377ec9fd5789d6a))\n* **db:** refactor delete by alias to separate queries ([8f3fcd4](https://github.com/nextcloud/mail/commit/8f3fcd4f611770ebbf5bd485efa2236afbb54d35))\n* **db:** widen recipients table index for email+type+message_id ([19514ac](https://github.com/nextcloud/mail/commit/19514ac550a18741aef7dd8d8b15ef62c48d78ae))\n* **deps:** bump @iframe-resizer/child from 5.5.7 to ^5.5.8-beta.2 ([#12350](https://github.com/nextcloud/mail/issues/12350)) ([396b3ea](https://github.com/nextcloud/mail/commit/396b3eae4a32686f247c9bdf513f9d7dd88f10b1))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.8 ([#12377](https://github.com/nextcloud/mail/issues/12377)) ([7618a40](https://github.com/nextcloud/mail/commit/7618a40010869c826346ae76b0ee4e57fdc57ddc))\n* **deps:** bump @iframe-resizer/child from 5.5.8 to ^5.5.9 ([#12444](https://github.com/nextcloud/mail/issues/12444)) ([912105c](https://github.com/nextcloud/mail/commit/912105cc5f3b311e41ab6b82fe170a3583be464c))\n* **deps:** bump @iframe-resizer/parent from 5.5.7 to ^5.5.8-beta.2 ([#12351](https://github.com/nextcloud/mail/issues/12351)) ([26ed10a](https://github.com/nextcloud/mail/commit/26ed10a41f56da1c860ab0260576fa320b821af7))\n* **deps:** bump @iframe-resizer/parent from 5.5.8 to ^5.5.8 ([#12389](https://github.com/nextcloud/mail/issues/12389)) ([0c6b4d1](https://github.com/nextcloud/mail/commit/0c6b4d13984810824eba8538f75800c776224cad))\n* **deps:** bump @iframe-resizer/parent from 5.5.9 to ^5.5.9 ([#12478](https://github.com/nextcloud/mail/issues/12478)) ([29cfec6](https://github.com/nextcloud/mail/commit/29cfec6cefdb1ca99391ca1c0e15d53bdb841d4f))\n* **deps:** bump @nextcloud/auth from 2.5.3 to ^2.6.0 ([#12758](https://github.com/nextcloud/mail/issues/12758)) ([789eb32](https://github.com/nextcloud/mail/commit/789eb321875d9bd9ca42012c3e2a9681f0091eb0))\n* **deps:** bump @nextcloud/axios from 2.5.2 to ^2.6.0 ([#12837](https://github.com/nextcloud/mail/issues/12837)) ([3b9474c](https://github.com/nextcloud/mail/commit/3b9474ccb57296ec12ef30de8c5089116dc904ee))\n* **deps:** bump @nextcloud/calendar-js from 8.1.4 to ^8.1.6 ([889e313](https://github.com/nextcloud/mail/commit/889e31327bcec9de65c1121b6b1c216a3a45d47a))\n* **deps:** bump @nextcloud/cdav-library from 2.1.1 to ^2.2.0 ([#12759](https://github.com/nextcloud/mail/issues/12759)) ([41d27cc](https://github.com/nextcloud/mail/commit/41d27cc6755cea0a501621051d25b5c32295c978))\n* **deps:** bump @nextcloud/sharing from 0.3.0 to ^0.4.0 ([efab69f](https://github.com/nextcloud/mail/commit/efab69fe258db00c1c7a3c191761fdb9a3e6f2a6))\n* **deps:** bump @nextcloud/timezones from 0.2.0 to v1 ([6eb78b9](https://github.com/nextcloud/mail/commit/6eb78b992297a72e9862367304b95facc9ffe368))\n* **deps:** bump @nextcloud/vue from 8.36.0 to ^8.36.0 ([d68bbc6](https://github.com/nextcloud/mail/commit/d68bbc69e069dc9767970ce00e127046b6e1e229))\n* **deps:** bump @nextcloud/vue from 8.37.0 to ^8.37.0 ([fdd6478](https://github.com/nextcloud/mail/commit/fdd6478797e818ace28eb2c2a88c5615d081c9d8))\n* **deps:** bump @nextcloud/vue from 8.38.0 to ^8.38.0 ([c142309](https://github.com/nextcloud/mail/commit/c142309f43496b6fe1a95da34baf355c3a91d94e))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.3 to ^1.9.1 ([#12847](https://github.com/nextcloud/mail/issues/12847)) ([cc683c1](https://github.com/nextcloud/mail/commit/cc683c181c76bd66cdfce3cdc7b9be1024cca9bb))\n* **deps:** bump bytestream/horde-imap-client from 2.33.6 to ^2.33.7 ([#12627](https://github.com/nextcloud/mail/issues/12627)) ([06fd337](https://github.com/nextcloud/mail/commit/06fd3372f0095de252f02f2c55664418699e12b7))\n* **deps:** bump bytestream/horde-imap-client from 2.33.7 to ^2.34.0 ([#12675](https://github.com/nextcloud/mail/issues/12675)) ([56e76df](https://github.com/nextcloud/mail/commit/56e76df878f2469128d8daf99e10a0a37d07b3eb))\n* **deps:** bump bytestream/horde-imap-client from 2.34.0 to ^2.34.1 ([#12798](https://github.com/nextcloud/mail/issues/12798)) ([834a0a6](https://github.com/nextcloud/mail/commit/834a0a65330b86a0a7030628b5c66e5530cc1df5))\n* **deps:** bump bytestream/horde-mime from 2.14.0 to ^2.14.1 ([87d83e8](https://github.com/nextcloud/mail/commit/87d83e897243e9c09731b116f72748551c790e0a))\n* **deps:** bump ckeditor from v45 to v46 ([6884f5b](https://github.com/nextcloud/mail/commit/6884f5b2512ed91c0d74cda8f4031da8c44156dc))\n* **deps:** bump ckeditor5 from 46.1.1 to v47 ([e6fc646](https://github.com/nextcloud/mail/commit/e6fc6467b48ff721a03d1666fc8afd48d90093bc))\n* **deps:** bump ckeditor5 from 47.6.1 to ^47.6.1 ([#12704](https://github.com/nextcloud/mail/issues/12704)) ([682ad03](https://github.com/nextcloud/mail/commit/682ad03814433a1ae2564a8373fda5b0d72179a1))\n* **deps:** bump ckeditor5 from 47.6.2 to ^47.6.2-alpha.0 ([#12730](https://github.com/nextcloud/mail/issues/12730)) ([cc00d75](https://github.com/nextcloud/mail/commit/cc00d75505b639c704e98633582b332eb317e18a))\n* **deps:** bump core-js from 3.48.0 to ^3.49.0 ([#12760](https://github.com/nextcloud/mail/issues/12760)) ([660f2ff](https://github.com/nextcloud/mail/commit/660f2fffac7aaaf957f26cae01838e6de4221fc1))\n* **deps:** bump dompurify from 3.3.1 to v3.3.2 ([#12521](https://github.com/nextcloud/mail/issues/12521)) ([68d4a79](https://github.com/nextcloud/mail/commit/68d4a799b84b27822cbca1fb1f0bd3a1ab5825ef))\n* **deps:** bump dompurify from 3.3.2 to ^3.3.3 ([#12653](https://github.com/nextcloud/mail/issues/12653)) ([1316686](https://github.com/nextcloud/mail/commit/1316686d5ac9aaa9437052f9660a2e765ccf2e5e))\n* **deps:** bump dompurify from 3.3.3 to v3.4.0 ([#12744](https://github.com/nextcloud/mail/issues/12744)) ([8a96e08](https://github.com/nextcloud/mail/commit/8a96e082cf4edc459350027a4628cd78135c66c1))\n* **deps:** bump dompurify from 3.4.0 to ^3.4.0 ([#12761](https://github.com/nextcloud/mail/issues/12761)) ([675d538](https://github.com/nextcloud/mail/commit/675d538a37c295ebf0020ccfeeff445f9a83b3f5))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.1 ([#12827](https://github.com/nextcloud/mail/issues/12827)) ([3c9adc6](https://github.com/nextcloud/mail/commit/3c9adc6aa80c7efa148c669a4153e41dc0ae731a))\n* **deps:** bump dompurify from 3.4.1 to ^3.4.2 ([#12869](https://github.com/nextcloud/mail/issues/12869)) ([cf0f574](https://github.com/nextcloud/mail/commit/cf0f57409ada028d741c187db8391084a67bd5f1))\n* **deps:** bump flatted from 3.3.3 to 3.4.2 ([#12659](https://github.com/nextcloud/mail/issues/12659)) ([ff40a35](https://github.com/nextcloud/mail/commit/ff40a35d4c9398e09e1f9cc2f113071b0d0d903c))\n* **deps:** bump lodash from 4.17.23 to v4.18.1 ([#12693](https://github.com/nextcloud/mail/issues/12693)) ([3d45186](https://github.com/nextcloud/mail/commit/3d451865b93ad3742dd76f4bd6f86cc5d0d8f6e4))\n* **deps:** bump lodash from 4.18.1 to ^4.18.1 ([#12731](https://github.com/nextcloud/mail/issues/12731)) ([679effc](https://github.com/nextcloud/mail/commit/679effcb68a12bdb79d762afea51f9e21c905c04))\n* **deps:** bump node-forge from 1.3.3 to v1.4.0 ([#12663](https://github.com/nextcloud/mail/issues/12663)) ([fb5b0e6](https://github.com/nextcloud/mail/commit/fb5b0e602a1e2b265af862123cb254e6b7566b3f))\n* **deps:** bump node-forge from 1.4.0 to ^1.4.0 ([#12752](https://github.com/nextcloud/mail/issues/12752)) ([3330a0b](https://github.com/nextcloud/mail/commit/3330a0b45939edf348715741207f9929c2e753d5))\n* **deps:** bump rollup from 4.52.4 to 4.60.0 ([#12658](https://github.com/nextcloud/mail/issues/12658)) ([dfd6a36](https://github.com/nextcloud/mail/commit/dfd6a36b2277ec31d865fb7a5fca6e818dc7923f))\n* **deps:** bump sabberworm/php-css-parser from 8.9.0 to v9 ([d32bef1](https://github.com/nextcloud/mail/commit/d32bef15e529e6ba89cc594ad50f243749224e42))\n* **deps:** bump stylelint from 17.9.1 to ^17.8.0 ([#12851](https://github.com/nextcloud/mail/issues/12851)) ([dceef09](https://github.com/nextcloud/mail/commit/dceef09db387cc6daa55e51f5a0dd9c89a1b85a7))\n* **deps:** bump stylelint from 17.9.1 to ^17.9.1 ([#12870](https://github.com/nextcloud/mail/issues/12870)) ([0685aa5](https://github.com/nextcloud/mail/commit/0685aa5324cb671034e653ae482c11fab00d7b52))\n* **deps:** bump uuid from 11.1.0 to v14 ([6e98a10](https://github.com/nextcloud/mail/commit/6e98a10c7d15067b285895f4a1ae995a0503279a))\n* **deps:** Fix npm audit ([0c92bdb](https://github.com/nextcloud/mail/commit/0c92bdb20aa8e0a2c656f682bf4fdc348acfbcaf))\n* **deps:** Fix npm audit ([38e8a60](https://github.com/nextcloud/mail/commit/38e8a6059f31f16ce569bb89e2a9d80acd47e9f9))\n* **deps:** Fix npm audit ([3809bc3](https://github.com/nextcloud/mail/commit/3809bc35bfb9c3ad6d1fcc6077fb68d400fe89b1))\n* **deps:** Fix npm audit ([3bab2ea](https://github.com/nextcloud/mail/commit/3bab2eaa703c93e0370b37ece6cb042844efdd73))\n* **deps:** Update symfony/process to fix MSYS2 argument escaping vulnerability ([e1e288f](https://github.com/nextcloud/mail/commit/e1e288fb8427e2b3108f888fe869b0a07029c93e))\n* **deps:** update webpack-cli to v6 ([3b43ed9](https://github.com/nextcloud/mail/commit/3b43ed90afba2e6c541e2f0d67403c8f494cfa33))\n* **dns:** Update public suffix list ([7efd7f3](https://github.com/nextcloud/mail/commit/7efd7f39ca23deb268ab6918e31be047b9fe3b9e))\n* **dns:** Update public suffix list ([064b615](https://github.com/nextcloud/mail/commit/064b615d6ae879e57231fb115492e54f2a46e42d))\n* **dns:** Update public suffix list ([3e660c7](https://github.com/nextcloud/mail/commit/3e660c71ebbf740842038317c75263aca2ec75f9))\n* **dns:** Update public suffix list ([c46c0c0](https://github.com/nextcloud/mail/commit/c46c0c0eeae2bf9b09fbed0472ffa07b2e7811ce))\n* **dns:** Update public suffix list ([23d0ebf](https://github.com/nextcloud/mail/commit/23d0ebfc7ea82906b1647455fde6748e6e26999f))\n* **dns:** Update public suffix list ([c583ad5](https://github.com/nextcloud/mail/commit/c583ad5159a4de8a634d7f7da8516e1c3f17a96e))\n* Dont hijack mailto links ([3c025c9](https://github.com/nextcloud/mail/commit/3c025c94f6989364311a48f6f5aa1ebc45506ee9))\n* **drag-and-drop:** track all droppable-mailbox directive instances independently ([6729ad8](https://github.com/nextcloud/mail/commit/6729ad88d7e3c8d0a942e641b208f3398a0ebb09))\n* Fix deprecation warnings when using PHP >= 8.5 ([6f33f46](https://github.com/nextcloud/mail/commit/6f33f4673fbd3f12e519db8caaf3889d816ea996))\n* Handle SmimeDecryptException when getting attachments ([4e7e9e0](https://github.com/nextcloud/mail/commit/4e7e9e03cd40d06ea912b1ce215f09fe8fd47c18))\n* **http:** guard against more null users in controllers ([50cef92](https://github.com/nextcloud/mail/commit/50cef92ce36849d55a83f9c2c25d16a5cce0fbb0))\n* **http:** guard against null user in MailboxesController ([a602571](https://github.com/nextcloud/mail/commit/a60257198725ab372baa74e9e42630550a9378a6))\n* **http:** guard against null user in MessagesController ([3f6cad9](https://github.com/nextcloud/mail/commit/3f6cad922120259cc9039ef4697f26550028b5a8))\n* **http:** prevent NPE by non-null controller parameters ([8ab9849](https://github.com/nextcloud/mail/commit/8ab9849f929f38b2e8ca2bfc041e13d99b9bb9a7))\n* Ignore attachments without a name ([caba948](https://github.com/nextcloud/mail/commit/caba948c62f21f5dbf3eb0673e8331e5813faadd))\n* **imap:** avoid expanding UID ranges ([8af9849](https://github.com/nextcloud/mail/commit/8af9849d362260d03a7a68de928fef73b0f84017))\n* **IMAP:** don't add whitespaces to drafts ([d8b4a85](https://github.com/nextcloud/mail/commit/d8b4a859e7784b80906fc3e3686a8d5415128576))\n* **imap:** Handle unselectable mailboxe ([86d5fee](https://github.com/nextcloud/mail/commit/86d5feef879187f473df613490c0e10126e8137b))\n* **imap:** log details of the sync to debug OOMs ([432ec82](https://github.com/nextcloud/mail/commit/432ec829f94d0bf11214191c8b1f0ad9e4897851))\n* **imap:** log more sync details ([b9ff2d0](https://github.com/nextcloud/mail/commit/b9ff2d03bd1356e32c7cf7f1d02fca22b7cd0199))\n* **imap:** log partial sync criteria ([88eccd0](https://github.com/nextcloud/mail/commit/88eccd09404da76485e1284375f257b2bf57f965))\n* **imap:** prevent null HIGHESTMODSEQ after initial sync ([7980d9e](https://github.com/nextcloud/mail/commit/7980d9e4015c894c4c5a7215546e7c61f5abe1c3))\n* Invalid cache lookup for emails without attachment ([a76426e](https://github.com/nextcloud/mail/commit/a76426e2fb37bb315850e690f979955aaa39d3c5))\n* **js:** reset envelope lists to object, not array ([5d96714](https://github.com/nextcloud/mail/commit/5d967141f8cacc8a138f14ca23a7a13346039072))\n* Keep raw message on smtp/mime failure ([58c860e](https://github.com/nextcloud/mail/commit/58c860ed4a6e1b357028c50828a27347addccde7))\n* **l10n:** Update translations from Transifex ([64f21c6](https://github.com/nextcloud/mail/commit/64f21c6065987059fcd23f4d049eee318988a4f5))\n* **l10n:** Update translations from Transifex ([0c3ccf1](https://github.com/nextcloud/mail/commit/0c3ccf171784d88bfffabdfc2b74b9a5832fe730))\n* **l10n:** Update translations from Transifex ([b07f5a9](https://github.com/nextcloud/mail/commit/b07f5a9912795352155a9a3db07b52de7c692bd4))\n* **l10n:** Update translations from Transifex ([929b01c](https://github.com/nextcloud/mail/commit/929b01c6841913040f9ddd0c8d85d7dea1cf53e7))\n* **l10n:** Update translations from Transifex ([9d799da](https://github.com/nextcloud/mail/commit/9d799da288e845db089d69fc714f12d2d75c8fcc))\n* **l10n:** Update translations from Transifex ([0fc8509](https://github.com/nextcloud/mail/commit/0fc85095b70bff9334edcba38641cbf17deb7f7a))\n* **l10n:** Update translations from Transifex ([41b55e1](https://github.com/nextcloud/mail/commit/41b55e17969ce101b6ec8489ef4924a82cffd4a8))\n* **l10n:** Update translations from Transifex ([ca874d6](https://github.com/nextcloud/mail/commit/ca874d68a5964c7177506341865bb69d2387a4d3))\n* **l10n:** Update translations from Transifex ([361fcf7](https://github.com/nextcloud/mail/commit/361fcf755babcd8c25c65aa3eff6fa333e44f2b1))\n* **l10n:** Update translations from Transifex ([331d67a](https://github.com/nextcloud/mail/commit/331d67a1a288418a2bf70c23980e050682f4e733))\n* **l10n:** Update translations from Transifex ([1335815](https://github.com/nextcloud/mail/commit/1335815a1de24f9f4494d0f8f75991f9c852e372))\n* **l10n:** Update translations from Transifex ([31fe982](https://github.com/nextcloud/mail/commit/31fe982bce3533a2feaecce0f255aa2de7bf21b7))\n* **l10n:** Update translations from Transifex ([7b57369](https://github.com/nextcloud/mail/commit/7b57369afb7f3bda596ea0e90eaf995f43490f78))\n* **l10n:** Update translations from Transifex ([1e74c52](https://github.com/nextcloud/mail/commit/1e74c520a61df0854d05396a8fa803daa20b5362))\n* **l10n:** Update translations from Transifex ([3ddace2](https://github.com/nextcloud/mail/commit/3ddace263b82dc7504ea7346d6156c7d2f4e7868))\n* **l10n:** Update translations from Transifex ([1277bc8](https://github.com/nextcloud/mail/commit/1277bc892e45e34d78a2755bf7e3ed4dc59d0127))\n* **l10n:** Update translations from Transifex ([4c93f30](https://github.com/nextcloud/mail/commit/4c93f307e36007340b32f80e75b753ea87cc4c07))\n* **l10n:** Update translations from Transifex ([5db8d9a](https://github.com/nextcloud/mail/commit/5db8d9a72733c47019735044aaa6a2d1cc064a06))\n* **l10n:** Update translations from Transifex ([14e87a1](https://github.com/nextcloud/mail/commit/14e87a15b56ba40daeef8ff328637a80e93afc95))\n* **l10n:** Update translations from Transifex ([4211056](https://github.com/nextcloud/mail/commit/42110564979994a6fdbe8baefa2671640241acba))\n* **l10n:** Update translations from Transifex ([0eef59d](https://github.com/nextcloud/mail/commit/0eef59d49324b1a79a7ef8b7fcb20b8ed13778f3))\n* **l10n:** Update translations from Transifex ([6ce413b](https://github.com/nextcloud/mail/commit/6ce413bb6365d6b82b6d55a78160ea68b33d8359))\n* **l10n:** Update translations from Transifex ([0f90f19](https://github.com/nextcloud/mail/commit/0f90f19d946e0cdf0430a5ab973754b630884c99))\n* **l10n:** Update translations from Transifex ([5d1535d](https://github.com/nextcloud/mail/commit/5d1535d4a1d18cb658d69400a4c20822f553af2a))\n* **l10n:** Update translations from Transifex ([693771f](https://github.com/nextcloud/mail/commit/693771fae8887724bc3337b2bdb0b5137ede3090))\n* **l10n:** Update translations from Transifex ([2841421](https://github.com/nextcloud/mail/commit/28414219b5bc1b34c04a99d4623b986c7fd2514d))\n* **l10n:** Update translations from Transifex ([0a746cf](https://github.com/nextcloud/mail/commit/0a746cfef45de9707a9b866a3d591666b781cecb))\n* **l10n:** Update translations from Transifex ([4ee2065](https://github.com/nextcloud/mail/commit/4ee2065b1c16fdc3c2991eaeb16796f523ed1b11))\n* **l10n:** Update translations from Transifex ([8027c52](https://github.com/nextcloud/mail/commit/8027c5244ab9f6f2dda5f15d703206699a5a2654))\n* **l10n:** Update translations from Transifex ([8d84ac9](https://github.com/nextcloud/mail/commit/8d84ac90cc01dd50c0b02c36baf53829245eca31))\n* **l10n:** Update translations from Transifex ([1c088bb](https://github.com/nextcloud/mail/commit/1c088bbe13525a5aca1540ce1ed1e387a45e8751))\n* **l10n:** Update translations from Transifex ([3e6bc95](https://github.com/nextcloud/mail/commit/3e6bc95128afb3a00e570cba136814a5b681601b))\n* **l10n:** Update translations from Transifex ([5d0df22](https://github.com/nextcloud/mail/commit/5d0df22ddfd0dbb5b35f702700e3d7e9741523f4))\n* **l10n:** Update translations from Transifex ([ee2e98e](https://github.com/nextcloud/mail/commit/ee2e98e589c8e467aa15ececa50b80825e42582b))\n* **l10n:** Update translations from Transifex ([d4b222a](https://github.com/nextcloud/mail/commit/d4b222ad37d39e08f92c19590792196049ec3725))\n* **l10n:** Update translations from Transifex ([4301b55](https://github.com/nextcloud/mail/commit/4301b557c537da6a57bbe51df50c41e340017825))\n* **l10n:** Update translations from Transifex ([ff4f00c](https://github.com/nextcloud/mail/commit/ff4f00c8d0e6e15af9d2b3a68df891bfbcf20089))\n* **l10n:** Update translations from Transifex ([385edc0](https://github.com/nextcloud/mail/commit/385edc0e283226c295ebf10b20b79f2d35e5651f))\n* **l10n:** Update translations from Transifex ([2dbc479](https://github.com/nextcloud/mail/commit/2dbc479359d9c2a6851f49fdc283a2f1b7f1b8e4))\n* **l10n:** Update translations from Transifex ([35f1831](https://github.com/nextcloud/mail/commit/35f18314a61d61014f5f439aea66d255ad9db85d))\n* **l10n:** Update translations from Transifex ([9a1d23f](https://github.com/nextcloud/mail/commit/9a1d23fcf3d6167bf84374bb34ea8562505aed62))\n* **l10n:** Update translations from Transifex ([261dd36](https://github.com/nextcloud/mail/commit/261dd368c06fde0643a7e164ebf75587835fc062))\n* **l10n:** Update translations from Transifex ([966bdf9](https://github.com/nextcloud/mail/commit/966bdf9a283cf9695d8b5580e7d174a18d63f355))\n* **l10n:** Update translations from Transifex ([7a3f2b5](https://github.com/nextcloud/mail/commit/7a3f2b51a9e1dd41af78c8a3e364419c69373a3f))\n* **l10n:** Update translations from Transifex ([de92421](https://github.com/nextcloud/mail/commit/de924212f802c351ef708890c7b6a677f6a98402))\n* **l10n:** Update translations from Transifex ([4da1267](https://github.com/nextcloud/mail/commit/4da12670673bbde80c2f439702832d5947b8a238))\n* **l10n:** Update translations from Transifex ([a8bf321](https://github.com/nextcloud/mail/commit/a8bf321975cff3a310edb7ca33338431631d34a5))\n* **l10n:** Update translations from Transifex ([d387e38](https://github.com/nextcloud/mail/commit/d387e38620a26d00255627a1e52862a765b055a3))\n* **l10n:** Update translations from Transifex ([7b77cf1](https://github.com/nextcloud/mail/commit/7b77cf1fd39e04d3f853c39be5e9862fe4351b5f))\n* **l10n:** Update translations from Transifex ([100238a](https://github.com/nextcloud/mail/commit/100238a833bb77d2a3d9320630ab5027e2929e8c))\n* **l10n:** Update translations from Transifex ([4d38cbf](https://github.com/nextcloud/mail/commit/4d38cbf8b5abd9d5dbfefc7a688e2ed33f0c63f1))\n* **l10n:** Update translations from Transifex ([f6fcf2d](https://github.com/nextcloud/mail/commit/f6fcf2d9f529d5277d38bf6569f96e33f33628e7))\n* **l10n:** Update translations from Transifex ([32536d3](https://github.com/nextcloud/mail/commit/32536d36512288317e8d28c7d2e0976664224d13))\n* **l10n:** Update translations from Transifex ([3e37229](https://github.com/nextcloud/mail/commit/3e3722954b8966ce67d72c9a4692944b92d0be68))\n* **l10n:** Update translations from Transifex ([3653082](https://github.com/nextcloud/mail/commit/36530829bc02816a2a7d29af03863049c8c7539c))\n* **l10n:** Update translations from Transifex ([7ae6d85](https://github.com/nextcloud/mail/commit/7ae6d85fe7310e722dfbdb1162924d967243660f))\n* **l10n:** Update translations from Transifex ([9efbb1a](https://github.com/nextcloud/mail/commit/9efbb1a53708b4147049beb17dd4efd95ec2066b))\n* **l10n:** Update translations from Transifex ([e4fa916](https://github.com/nextcloud/mail/commit/e4fa916cfaec39d6205e192a2e3255269b204372))\n* **l10n:** Update translations from Transifex ([671a425](https://github.com/nextcloud/mail/commit/671a425f9c1ecfc16540c127eb07eadb65ecb9e1))\n* **l10n:** Update translations from Transifex ([d1a4df6](https://github.com/nextcloud/mail/commit/d1a4df62a8076c513ff042e2b407655fcc1f7cc7))\n* **l10n:** Update translations from Transifex ([bf96880](https://github.com/nextcloud/mail/commit/bf96880672ff4a077e5994263d686826bc50c2b9))\n* **l10n:** Update translations from Transifex ([f88feea](https://github.com/nextcloud/mail/commit/f88feea46903496a77ccc8842826008171f132e4))\n* **l10n:** Update translations from Transifex ([5112079](https://github.com/nextcloud/mail/commit/511207976608f7b2382da25242b757c681b4cbfb))\n* **l10n:** Update translations from Transifex ([a5e79e5](https://github.com/nextcloud/mail/commit/a5e79e5462bffd4cecdaff8152fe6beb0a6dca32))\n* **MailTransmission:** Handle clients/servers picky about empty headers ([f60fd3b](https://github.com/nextcloud/mail/commit/f60fd3bc101d6d7090bf74d8ca83cff881135d15))\n* make list rendering work on mobile ([fa921ec](https://github.com/nextcloud/mail/commit/fa921ecb68667dce91a001151a6f227690dbdfb3))\n* Match default tag colors with Thunderbird ([c755afb](https://github.com/nextcloud/mail/commit/c755afbf288f3852886e096c6a0d11cff3a5708f))\n* **mention:** custom range for usernames and error handling ([eacc8b5](https://github.com/nextcloud/mail/commit/eacc8b5b5fc6bbe80c38621e0620585f7c5b8d9b))\n* Normalize message IDs via RFC822 parser to handle malformed input ([d03c3f1](https://github.com/nextcloud/mail/commit/d03c3f1801c5d3bbb725426887e125b4983a78c3))\n* **oauth:** do not force a Microsoft 365 consent ([23216da](https://github.com/nextcloud/mail/commit/23216da8f4e30f0e8a154d53eb2e2c232415236e))\n* only showing classification check box in setup form ([9f6a675](https://github.com/nextcloud/mail/commit/9f6a675e44c992e6c51b956486e43f56a0a71f82))\n* **outbox:** Skip messages with status error ([438419b](https://github.com/nextcloud/mail/commit/438419b8e069aa657dc587fb5d66119e30e4cae8))\n* **OutOfOfficeForm:** datepicker overlapping with sidebar ([e92759d](https://github.com/nextcloud/mail/commit/e92759d6bdfb97596a8db09891bcdf475674df3a))\n* Pass actual message body to dompurify ([82000ac](https://github.com/nextcloud/mail/commit/82000acaa53a954e36e31c1feec7038cda4c9991))\n* Pass error message from response to error object ([1bd84f1](https://github.com/nextcloud/mail/commit/1bd84f1b15bf78c834e85e39d97ec9bc10e576b0))\n* **phishing:** change header property accessor ([db47778](https://github.com/nextcloud/mail/commit/db47778e3af93b4a3d178a489b9c7b825680ffbb))\n* **php:** avoid implicit throwable to string conversion ([c83ab66](https://github.com/nextcloud/mail/commit/c83ab6630837bc289b3e7c279800894f5db5ae63))\n* **php:** harden return-false-on-error type function result handling ([4dfc60e](https://github.com/nextcloud/mail/commit/4dfc60ea15c4adf72523c5528e72212674499d0d))\n* **php:** refactor int/float conversions ([029d589](https://github.com/nextcloud/mail/commit/029d589d06c0303823955b927249cbf27d1be729))\n* **php:** throw on json encode errors ([d501d21](https://github.com/nextcloud/mail/commit/d501d210f2c992ee30d7160d6c0cfe6ec88f3e9e))\n* **php:** use type-safe string concatenation ([c8b3c1b](https://github.com/nextcloud/mail/commit/c8b3c1bdc18c03b38f7d14b00942857d256d15e1))\n* **provisioning:** Do not provision users without access to mail app ([0c8864c](https://github.com/nextcloud/mail/commit/0c8864cf6f4adc765424ae237294d6c2ef4b68c0))\n* quick search filters ([fd59d5f](https://github.com/nextcloud/mail/commit/fd59d5f70c2066c33336fcd043a874c60d35fcdd))\n* Remove call to deprecated allowEvalScript ([77e7e3f](https://github.com/nextcloud/mail/commit/77e7e3fb89f5cc4a3e74768d9f96a282f4773eb1))\n* Remove unused proxy redirect route ([32a6d46](https://github.com/nextcloud/mail/commit/32a6d46999c4e50afc45c578997b7aada3e2e297))\n* Replace array with weakmap so lookup is O(1) instead of O(n^2) ([580fad6](https://github.com/nextcloud/mail/commit/580fad6f3a1668587aec2ffc32c55a0e1fb3a151))\n* replace deprecated and removed OC\\Server getters ([e157960](https://github.com/nextcloud/mail/commit/e157960f0d88ba82a51820c8d40a88755d429afe))\n* set createdAt timestamp for local attachments ([29f84a6](https://github.com/nextcloud/mail/commit/29f84a604cdc49a476759fbfe35c61eef5537470))\n* show indication that transaltion modal uses AI ([b1843d5](https://github.com/nextcloud/mail/commit/b1843d5b35e8f43a46c001470341cdb85d812964))\n* show loading inidcator when searching messages ([89a2c5a](https://github.com/nextcloud/mail/commit/89a2c5a9a55b8f96242663065ce57a73b1c6b240))\n* Skip iconv without a charset ([d28e6ce](https://github.com/nextcloud/mail/commit/d28e6ceff0589ddf2c53c817866e40982b03fd58))\n* Skip link check for empty message ([4c7db57](https://github.com/nextcloud/mail/commit/4c7db57b2e0624c2036b1fa30eef49057ba9ad55))\n* **smime:** parse email addresses from Subject Alternative Names ([#12486](https://github.com/nextcloud/mail/issues/12486)) ([b3d7c9a](https://github.com/nextcloud/mail/commit/b3d7c9a1374688b4536c9ea4ba91f4f00383c24c)), closes [nextcloud/mail#11738](https://github.com/nextcloud/mail/issues/11738)\n* **textblocks:** guard removal of non existing text block ([89df2c7](https://github.com/nextcloud/mail/commit/89df2c7a88bebab3d34147c056cb267f557b7522))\n* thread scrolling position ([7d4f1be](https://github.com/nextcloud/mail/commit/7d4f1be591dec2af5bacb0920ae145c0b3b3ae9c))\n* **Thread:** title printing ([e9d8f77](https://github.com/nextcloud/mail/commit/e9d8f7718dcfbd18abe679693739117a43d3e063))\n* **ui:** add missing @ to provisioning user ([cb11601](https://github.com/nextcloud/mail/commit/cb116018411a912c24738b362e731587a1dda3fc))\n* **ui:** fix paragraph end tag ([9d9a69f](https://github.com/nextcloud/mail/commit/9d9a69fb8160671c5a77720f52e77ce4b2d493fc))\n* **ui:** Handle focus trap through provide / inject ([197e25a](https://github.com/nextcloud/mail/commit/197e25ab54f621a17e2c48fb45b5f0b215203450))\n* unlock mailboxes after OOM ([789c7d0](https://github.com/nextcloud/mail/commit/789c7d04fc939b455ab395f968188676dcee6179))\n* use HMAC for proxied HTML iframe content ([b346f0b](https://github.com/nextcloud/mail/commit/b346f0bfa09a096c66fe1e020e57808edb736eb2))\n\n\n### Features\n\n* add ai hint for smart replys ([89c2fd6](https://github.com/nextcloud/mail/commit/89c2fd66a98371786219b3a9d1a8e5522e1d7263))\n* add rtl/ltr buttons to ckeditor toolbar ([4ac9c06](https://github.com/nextcloud/mail/commit/4ac9c063b52bb68be62eee54b567af6a98d755d7))\n* **deeplink:** implement message-id search and routing ([54ce486](https://github.com/nextcloud/mail/commit/54ce4865420afeedbb6cefa5bbfe8b87f163bb26))\n* improve follow up and PI ML note ([c952761](https://github.com/nextcloud/mail/commit/c952761657e420795745cb7879b86b62edf12985))\n\n\n### Performance Improvements\n\n* **imap:** reuse existing IMAP client/connection for mailbox sync ([08c5031](https://github.com/nextcloud/mail/commit/08c5031ac8ef83987c36cdebd9b12f35fdd3473c))\n\n\n\n# [5.7.0-rc.1](https://github.com/nextcloud/mail/compare/v5.7.0-beta.4...v5.7.0-rc.1) (2026-01-29)\n\n\n### Bug Fixes\n\n* action items icons on compact mode ([8b090ba](https://github.com/nextcloud/mail/commit/8b090ba2a827c47e3ffad4255b854b43e9e61b10))\n* **composer:** drop envelope from store when saving a draft ([a8db9ae](https://github.com/nextcloud/mail/commit/a8db9ae14e5d33c3f80ec2399b485f589fcb1dbf))\n* **deps:** bump @nextcloud/paths from 2.4.0 to v3 ([a511f5b](https://github.com/nextcloud/mail/commit/a511f5b9bfc172b91296d416ccc3b22f95d7fa2e))\n* **deps:** bump core-js from 3.47.0 to ^3.48.0 ([806b9a3](https://github.com/nextcloud/mail/commit/806b9a33b0fe9d1dd5522213cd0468eae5c8fd70))\n* **deps:** bump lodash from 4.17.23 to ^4.17.23 ([a1619ba](https://github.com/nextcloud/mail/commit/a1619ba3263647bc641f174c80f167699caf2337))\n* **deps:** bump PHPUnit to v9.6.33 ([d4e419e](https://github.com/nextcloud/mail/commit/d4e419e5a4f2058c892aaf406ae2ddf83e8cdb74))\n* **l10n:** Update translations from Transifex ([1d14470](https://github.com/nextcloud/mail/commit/1d1447052df63ee7e1bb98ecfdc857dfe56dfae0))\n* **l10n:** Update translations from Transifex ([5dc7d62](https://github.com/nextcloud/mail/commit/5dc7d626fd1e2301c08e52958833f53920371667))\n* **ui:** render HTML body error responses as blank pages ([a391aba](https://github.com/nextcloud/mail/commit/a391abad9560135bf159093371e432f7fc125b34))\n\n\n### Performance Improvements\n\n* **sync:** Reuse existing sync token ([cf8137a](https://github.com/nextcloud/mail/commit/cf8137a18d474fac99aa98e569374b8ed526a647))\n\n\n\n# [5.7.0-beta.4](https://github.com/nextcloud/mail/compare/v5.7.0-beta.3...v5.7.0-beta.4) (2026-01-27)\n\n\n### Bug Fixes\n\n* **admin-settings:** bring back the setting to disable classification by default ([2eb9f0c](https://github.com/nextcloud/mail/commit/2eb9f0c07d2e1f9b6e55e5d41d3d64b6d7268c62))\n* catch invalid URL exception in the HTML image proxy ([1767db6](https://github.com/nextcloud/mail/commit/1767db684ae4ee37c1ae7529c107e57798cdcc0d))\n* **classification:** log if classification was executed or skipped ([172b477](https://github.com/nextcloud/mail/commit/172b4779d55497f6c9a737681c04b810e960695b))\n* **deps:** bump @nextcloud/paths from 2.3.0 to ^2.4.0 ([#12286](https://github.com/nextcloud/mail/issues/12286)) ([ea43460](https://github.com/nextcloud/mail/commit/ea4346049b1b8bd899042c4861132d2fb712c697))\n* **deps:** bump @nextcloud/vue from 8.35.0 to ^8.35.3 ([98b9403](https://github.com/nextcloud/mail/commit/98b9403ce9b847a772c17e8d4a7d292f813cd2e0))\n* **deps:** bump lodash from 4.17.21 to v4.17.23 ([#12291](https://github.com/nextcloud/mail/issues/12291)) ([4d43742](https://github.com/nextcloud/mail/commit/4d4374223962d43b72e608d2298232e9ed86c1de))\n* **imap:** Add support for mail services that enforce a client id ([0f64a8b](https://github.com/nextcloud/mail/commit/0f64a8bc7a4a01704837310a1296c6573a8f0668))\n* **imap:** Send ID only when capability is announced ([820e7e3](https://github.com/nextcloud/mail/commit/820e7e37ec53b338342a535b1427cd71f15d2301))\n* **l10n:** Update translations from Transifex ([f162d15](https://github.com/nextcloud/mail/commit/f162d15efebd9db5fe2053a3f7334eb4a3836d19))\n* **l10n:** Update translations from Transifex ([b937da1](https://github.com/nextcloud/mail/commit/b937da1081e1260d107c9c2e29f085bd87e987da))\n* **l10n:** Update translations from Transifex ([b8e73c8](https://github.com/nextcloud/mail/commit/b8e73c87c3abeb519a7d2626a13db5f2a75cb702))\n* **l10n:** Update translations from Transifex ([85ec54f](https://github.com/nextcloud/mail/commit/85ec54f6e6f0650e64fe47736ced5f8f893742e5))\n* **l10n:** Update translations from Transifex ([8bccd39](https://github.com/nextcloud/mail/commit/8bccd397f9bb495eb729725b8e17e580a98036c0))\n* **l10n:** Update translations from Transifex ([b12a513](https://github.com/nextcloud/mail/commit/b12a5138244fff0179f49d2edd356ff4b68a2a77))\n* **l10n:** Update translations from Transifex ([01442f4](https://github.com/nextcloud/mail/commit/01442f49b764fbb4da3821295b0e7591d9e524c0))\n* **l10n:** Update translations from Transifex ([decb02c](https://github.com/nextcloud/mail/commit/decb02c680d7fad30aabdc5e8febd322c28f0946))\n* **MessageMapper:** Use message headers as fallback when processing MIME content ([7efe164](https://github.com/nextcloud/mail/commit/7efe1640c4d4d6bcabe5ffdd3ce24b66aa62f8b7))\n* **phishing:** compare links using lowercase ([2d437a9](https://github.com/nextcloud/mail/commit/2d437a9e1b71e674cc8bf1980995c485cc1de18b))\n* retrieve classification preference ([5eabb5e](https://github.com/nextcloud/mail/commit/5eabb5efd13e6370592cdad4c05894b97d9f3bf4))\n* **settings:** dont show acknowledgements twice ([b30d10e](https://github.com/nextcloud/mail/commit/b30d10e68f82803f1a86d1531edccd7e552a29d2))\n* **smtp:** log SMTP error code ([bd3a68e](https://github.com/nextcloud/mail/commit/bd3a68e78d71a6a60ca01f29ba34bd925fc65dbe))\n* **text-block:** revive sharing ([c76cea9](https://github.com/nextcloud/mail/commit/c76cea9f0a75e65a1d2a11fa28d0cfdbbe09c18d))\n\n\n### Features\n\n* add context chat provider ([#11150](https://github.com/nextcloud/mail/issues/11150)) ([0b4c310](https://github.com/nextcloud/mail/commit/0b4c3106943442ff95e272fdf9e668b7952c4859))\n* **deps:** add Nextcloud 34 support, remove 31 (EOL) ([4059a84](https://github.com/nextcloud/mail/commit/4059a84cfe3e6bc43a5fd1cd4ce0ba0a81b500bd))\n\n\n\n# [5.7.0-beta.3](https://github.com/nextcloud/mail/compare/v5.7.0-beta.2...v5.7.0-beta.3) (2026-01-19)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([a0302e7](https://github.com/nextcloud/mail/commit/a0302e7292c0a003311bc0ae13c93fdc66477034))\n* **l10n:** Update translations from Transifex ([301879c](https://github.com/nextcloud/mail/commit/301879cccc134ccdf0b57968264eba5b9e6af3d3))\n* **l10n:** Update translations from Transifex ([eb08d2d](https://github.com/nextcloud/mail/commit/eb08d2d6b8b46021982ed6d3eccfc95b45a2373a))\n\n\n### Features\n\n* automated appointment creation ([4fe0325](https://github.com/nextcloud/mail/commit/4fe03253203db6c3481e1fb5611b2291f2ac6476))\n\n\n\n# [5.7.0-beta.2](https://github.com/nextcloud/mail/compare/v5.7.0-beta.1...v5.7.0-beta.2) (2026-01-16)\n\n\n### Bug Fixes\n\n* **ColorPicker:** Use v-model for injecting selected color to color picker ([eee627a](https://github.com/nextcloud/mail/commit/eee627a613a3c3884af4ebc19f23d15ba5c4b1a4))\n* **DKIMValidator:** Add patch from upstream against broken canonical handling ([ddb30a9](https://github.com/nextcloud/mail/commit/ddb30a95fe8f106c2abebb323bc5c13bacfc0e0f))\n* ensure drafts folder exists ([c01706f](https://github.com/nextcloud/mail/commit/c01706f6dea5f3acd5ebfb5859026c4110a4a653))\n* Fix incorrect tag for MDN sent and hide junk flag used by Thunderbird ([5eb1709](https://github.com/nextcloud/mail/commit/5eb1709f405175c28060a0f85f1f8fedcfa8c45d))\n* **l10n:** Update translations from Transifex ([5e479aa](https://github.com/nextcloud/mail/commit/5e479aa5c3403ef8fa020236da9e0af81683eae1))\n* **l10n:** Update translations from Transifex ([e3d87b7](https://github.com/nextcloud/mail/commit/e3d87b737b08b0af46266bb5429ed8f3a18d9d7f))\n* **l10n:** Update translations from Transifex ([7f7046e](https://github.com/nextcloud/mail/commit/7f7046e664c2abccf59a77d51708b78792302ec1))\n* **l10n:** Update translations from Transifex ([3ec8cc7](https://github.com/nextcloud/mail/commit/3ec8cc741ca13b7f84de80f659ad1698f318d029))\n* **l10n:** Update translations from Transifex ([77fad89](https://github.com/nextcloud/mail/commit/77fad89b78dd4175557d7f0a6880db3b474d73fd))\n* **l10n:** Update translations from Transifex ([69c30ee](https://github.com/nextcloud/mail/commit/69c30ee6ed066f30cdb3dfc6043eb86cb0d3026c))\n* **mail-settings:** avoid duplicate api calls ([d43846f](https://github.com/nextcloud/mail/commit/d43846f3f39a1d4232dccb3c81953bd747d11e28))\n* outbox icon opacity ([8697eb7](https://github.com/nextcloud/mail/commit/8697eb72f1835a0c110ad0c0ccfef85c043f1ead))\n* **OutOfOfficeParser:** Exclude newsletters and mailing lists from auto responder ([4dd3824](https://github.com/nextcloud/mail/commit/4dd382487bc50b84076dace4c45b2a3c2f73b7c3))\n* revive mentioning in composer ([2658a3b](https://github.com/nextcloud/mail/commit/2658a3bbdaf4ebd6828493193fff8856ec058455))\n* safe-guard limit argument ([bd856c0](https://github.com/nextcloud/mail/commit/bd856c0f261df1fd8f73d1952cbeb5773fad0d8a))\n\n\n### Features\n\n* **deps:** add PHP8.5 support ([0cab661](https://github.com/nextcloud/mail/commit/0cab6615ab3575264fe5ad01622be13f40216e10))\n* list attachements ([7cb3b70](https://github.com/nextcloud/mail/commit/7cb3b70922d8ad9f0ab39388d0c5280aa7245b0c))\n* provide attachement names for messages ([aebeb8d](https://github.com/nextcloud/mail/commit/aebeb8de6c62a7a89f78247b5539d48ee6213d61))\n\n\n\n# [5.7.0-beta.1](https://github.com/nextcloud/mail/compare/v5.6.0-rc.1...v5.7.0-beta.1) (2026-01-09)\n\n\n### Bug Fixes\n\n* add Opt-out classification settings to account settings and setup ([773e9fd](https://github.com/nextcloud/mail/commit/773e9fda4ae667c7be730093f3b2b05f23e67936))\n* **auth:** show more specific error for denied authentication ([9887471](https://github.com/nextcloud/mail/commit/9887471c972f99103f18f8bd85ac945045886a33))\n* **database:** Add foreign key to *_mailbox_id fields in mail_accounts table ([d6e5430](https://github.com/nextcloud/mail/commit/d6e5430211bb0c70b047ef6eb6709f35a1692509))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.1 ([ea96397](https://github.com/nextcloud/mail/commit/ea96397ffc21590dacf241ff96a27507bd6d4160))\n* **deps:** bump @nextcloud/dialogs from 6.4.1 to ^6.4.2 ([#12194](https://github.com/nextcloud/mail/issues/12194)) ([e0bde6a](https://github.com/nextcloud/mail/commit/e0bde6a0df760b82906631a0b172e6da4083c23d))\n* **deps:** bump @nextcloud/files from 3.12.0 to ^3.12.2 ([#12180](https://github.com/nextcloud/mail/issues/12180)) ([2d31d47](https://github.com/nextcloud/mail/commit/2d31d47ef1b4977a0fc3a12465b310412aeb1231))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.1 ([#12054](https://github.com/nextcloud/mail/issues/12054)) ([9204207](https://github.com/nextcloud/mail/commit/92042075da02b2eb0cd104132f7e456353b4638d))\n* **deps:** bump @nextcloud/logger from 3.0.2 to ^3.0.3 ([#12181](https://github.com/nextcloud/mail/issues/12181)) ([a2cc94f](https://github.com/nextcloud/mail/commit/a2cc94fbf3df4b9acbb1151c2ef817a8236f4b1f))\n* **deps:** bump @nextcloud/paths from 2.2.1 to ^2.3.0 ([d79f091](https://github.com/nextcloud/mail/commit/d79f091deed13cc59551431faeaae31ad9667e98))\n* **deps:** bump @nextcloud/router from 3.0.1 to ^3.1.0 ([fecbbd4](https://github.com/nextcloud/mail/commit/fecbbd42eacbdb920e4e14f054474688bd211eca))\n* **deps:** bump bamarni/composer-bin-plugin from 1.8.2 to ^1.8.3 ([#12083](https://github.com/nextcloud/mail/issues/12083)) ([d768ec2](https://github.com/nextcloud/mail/commit/d768ec2e6fd19fc3164d304c41f3ffdd69f1c45c))\n* **deps:** bump core-js from 3.45.1 to ^3.47.0 ([10cb94d](https://github.com/nextcloud/mail/commit/10cb94d3abfe5fd61087c5a5fe76c5e469eb31ab))\n* **deps:** bump dompurify from 3.3.0 to ^3.3.1 ([#12153](https://github.com/nextcloud/mail/issues/12153)) ([8414b45](https://github.com/nextcloud/mail/commit/8414b459171e748b0bda9707c083dc4d457b8610))\n* **deps:** bump ezyang/htmlpurifier from 4.18.0 to v4.19.0 ([490c501](https://github.com/nextcloud/mail/commit/490c501838ea78db143064557b599a9d9b377a0d))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.6 to ^1.8.7 ([4ad219b](https://github.com/nextcloud/mail/commit/4ad219b224b20649ea2da3b288078a3fdba276ef))\n* **deps:** bump node-forge from 1.3.1 to ^1.3.2 ([#12084](https://github.com/nextcloud/mail/issues/12084)) ([1076149](https://github.com/nextcloud/mail/commit/1076149f447356f0d8256f8011e73a66bde45e76))\n* **deps:** bump node-forge from 1.3.2 to ^1.3.3 ([#12201](https://github.com/nextcloud/mail/issues/12201)) ([bf00dc9](https://github.com/nextcloud/mail/commit/bf00dc96b2486c6f1c74406f8f323306c420726e))\n* **deps:** bump ramda from 0.31.3 to ^0.32.0 ([99e93d3](https://github.com/nextcloud/mail/commit/99e93d350bb2ac7fb77b487ac7fcfc6a2923ba6d))\n* **deps:** bump stylelint from 16.25.0 to ^16.26.1 ([6f16930](https://github.com/nextcloud/mail/commit/6f16930cf5fef0ad4ee8747e186de58326000d80))\n* **deps:** Fix npm audit ([ba1c955](https://github.com/nextcloud/mail/commit/ba1c9555e04c9acc7f9b75ad9914062b16ef81ac))\n* **deps:** Fix npm audit ([94220b5](https://github.com/nextcloud/mail/commit/94220b5a296c07c0b1a5035685671e5fb34531c7))\n* **dns:** Update public suffix list ([8629a40](https://github.com/nextcloud/mail/commit/8629a403aa29dfad58955c07ac7575e86fb97dde))\n* **envelope:** apply read/unread for whole thread ([04141fb](https://github.com/nextcloud/mail/commit/04141fb8cb75893d93a4ab144e6c50acba78fc35))\n* handle imip failures properly ([3a200ac](https://github.com/nextcloud/mail/commit/3a200ac432e3a8d85eafa93b01f0b2d4ab1b3080))\n* **imap:** cache message body ([9d02d5a](https://github.com/nextcloud/mail/commit/9d02d5ab90fdcf2c9fd2e09a3a3e7547b74227c3))\n* **l10n:** Update translations from Transifex ([42b9b4d](https://github.com/nextcloud/mail/commit/42b9b4d9bf4c798930bb2714f546aac39c87c2b1))\n* **l10n:** Update translations from Transifex ([ed559d1](https://github.com/nextcloud/mail/commit/ed559d1e80ad7745eeaa1fa7eabf715b96594403))\n* **l10n:** Update translations from Transifex ([addd0f4](https://github.com/nextcloud/mail/commit/addd0f430807e08befd63f327857c33a379702e1))\n* **l10n:** Update translations from Transifex ([fb376e5](https://github.com/nextcloud/mail/commit/fb376e51cb9437c9621e6fca3287d5983e8ac00f))\n* **l10n:** Update translations from Transifex ([83c7bc8](https://github.com/nextcloud/mail/commit/83c7bc8f05ad4d4fc37e9d49a9aaf37e07c9f0fd))\n* **l10n:** Update translations from Transifex ([1003f6c](https://github.com/nextcloud/mail/commit/1003f6c59a6377c247f7ddcc1dff0a65120389c6))\n* **l10n:** Update translations from Transifex ([2dd51c8](https://github.com/nextcloud/mail/commit/2dd51c8bb9670998eb0ef5114ecdb0811ae17ab7))\n* **l10n:** Update translations from Transifex ([4d25ae4](https://github.com/nextcloud/mail/commit/4d25ae4430bf9278283d2f10007e5d8ea8f4a36f))\n* **l10n:** Update translations from Transifex ([6de0c2a](https://github.com/nextcloud/mail/commit/6de0c2a0df34804c008308cb2c7b490376f650d0))\n* **l10n:** Update translations from Transifex ([7f70324](https://github.com/nextcloud/mail/commit/7f70324ab39a463b09b5fbb96083a8fd94e97f66))\n* **l10n:** Update translations from Transifex ([8551ded](https://github.com/nextcloud/mail/commit/8551ded3ca1c3782404b2404bd5e21ec30ddedee))\n* **l10n:** Update translations from Transifex ([d1f55af](https://github.com/nextcloud/mail/commit/d1f55af88b2375550165db7edc0fbcab31c310a4))\n* **l10n:** Update translations from Transifex ([a6ea034](https://github.com/nextcloud/mail/commit/a6ea0343b0badc571c3d29d2a4efb31ef8bb05dc))\n* **l10n:** Update translations from Transifex ([a3416c7](https://github.com/nextcloud/mail/commit/a3416c7815ab1bb9947119d9a354bf3f4ad90860))\n* **l10n:** Update translations from Transifex ([d3e93a1](https://github.com/nextcloud/mail/commit/d3e93a1ced32dee98d09aa2e6ba7bddc3b369910))\n* **l10n:** Update translations from Transifex ([0ce95b3](https://github.com/nextcloud/mail/commit/0ce95b38c98ef7f3d6907e15862b71a1b5bfab2d))\n* **l10n:** Update translations from Transifex ([c771327](https://github.com/nextcloud/mail/commit/c7713273832adc78c0af6a00dbe6be80f01846f6))\n* **l10n:** Update translations from Transifex ([172f154](https://github.com/nextcloud/mail/commit/172f15485357e8602e2dfa5277baa26aaabe8455))\n* **l10n:** Update translations from Transifex ([b5a785c](https://github.com/nextcloud/mail/commit/b5a785c4e128a82181f200d72c0298e6bd8879e3))\n* **l10n:** Update translations from Transifex ([c37fc3e](https://github.com/nextcloud/mail/commit/c37fc3eab5db926794d33e19a7bd9ea21a55a0fa))\n* **l10n:** Update translations from Transifex ([dbafedc](https://github.com/nextcloud/mail/commit/dbafedc1533cb2c24f6b3638fd635ba6824c392b))\n* **l10n:** Update translations from Transifex ([dd44f8b](https://github.com/nextcloud/mail/commit/dd44f8bc4babdcfb171fc34b8a0b8d667e7c1031))\n* **l10n:** Update translations from Transifex ([26c72b0](https://github.com/nextcloud/mail/commit/26c72b0ba59f8d6e1bbde63a71cbf223466e5744))\n* **l10n:** Update translations from Transifex ([55eda0d](https://github.com/nextcloud/mail/commit/55eda0de06adce44f751f545bd02bbed3dfbe064))\n* **l10n:** Update translations from Transifex ([d3a945b](https://github.com/nextcloud/mail/commit/d3a945b2634924e2af5cc0e774d13719d9755484))\n* **l10n:** Update translations from Transifex ([76b9c96](https://github.com/nextcloud/mail/commit/76b9c966e0dec4cc2efb12be3a30483d56632d3a))\n* **l10n:** Update translations from Transifex ([76688a4](https://github.com/nextcloud/mail/commit/76688a4e62240200c84755a191358f437bf042b6))\n* **l10n:** Update translations from Transifex ([4eb03df](https://github.com/nextcloud/mail/commit/4eb03df9d408e24f6c168eebfdfb8f10469d4b62))\n* **l10n:** Update translations from Transifex ([7365ec4](https://github.com/nextcloud/mail/commit/7365ec43d8fbc1d72f1ca502a57916afe2a3e2aa))\n* **l10n:** Update translations from Transifex ([11779b5](https://github.com/nextcloud/mail/commit/11779b5623c5aa566e42c7bb6faa50f57eaefcb3))\n* **l10n:** Update translations from Transifex ([7836ba5](https://github.com/nextcloud/mail/commit/7836ba59530d27a1836ab8fdedcd9bb71d60deb2))\n* **l10n:** Update translations from Transifex ([333fa26](https://github.com/nextcloud/mail/commit/333fa26765abcda6c2fa957e9cbbeb6314051cd2))\n* **l10n:** Update translations from Transifex ([7bed24d](https://github.com/nextcloud/mail/commit/7bed24d426cf5fa35456f5d14375758a84c5e780))\n* **l10n:** Update translations from Transifex ([770b95a](https://github.com/nextcloud/mail/commit/770b95a67ef91a35e439c74ce361219bf0afd543))\n* **l10n:** Update translations from Transifex ([2a8d58b](https://github.com/nextcloud/mail/commit/2a8d58be6f25064dbe8a7ac4bbbc689af6aef267))\n* **l10n:** Update translations from Transifex ([1fbba54](https://github.com/nextcloud/mail/commit/1fbba545b28dace804e98eeb5418cd8508e070d1))\n* **l10n:** Update translations from Transifex ([2f6b08c](https://github.com/nextcloud/mail/commit/2f6b08ced35c3c103fdf20f9f127146f2d93cd95))\n* **l10n:** Update translations from Transifex ([27deb8e](https://github.com/nextcloud/mail/commit/27deb8ed2738a002736333535e88232e95d03481))\n* lost line breaks ([056e1cf](https://github.com/nextcloud/mail/commit/056e1cf6ba1116b47b60fd45d84bf75209c59f59))\n* **mailto:** populate body from mailto ([6e66374](https://github.com/nextcloud/mail/commit/6e663740308588aeefc6bc7db90d1ef24ba7cafd))\n* **NavigationMailbox:** reword ([8bd6dd8](https://github.com/nextcloud/mail/commit/8bd6dd804864cd2af42e76cff87f89b614a65a46))\n* **NewMessageModal:** remove null focus trap selectors ([0412d17](https://github.com/nextcloud/mail/commit/0412d17db83afb84b6a104c3c85de93cdbd60623))\n* **oauth:** close popup window in parent window ([1fdf307](https://github.com/nextcloud/mail/commit/1fdf307f4755ef43aedde1263c46d187b2995d5c))\n* search input field doesnt extend properly ([2581870](https://github.com/nextcloud/mail/commit/2581870a78cc5b7d3f6b3a5dbe2287e0302a75c1))\n* **search:** apply correct search query when fetching envelopes ([4fe8329](https://github.com/nextcloud/mail/commit/4fe8329e1e2fee7be6853df3ddf98fe9fb2a6e3b))\n* **Settings:** followup on redesign ([67dae9c](https://github.com/nextcloud/mail/commit/67dae9c9b70330ffe9742ab8660c3998423ef007))\n* **setup:** allow setup with ms oauth and no password ([899f6f4](https://github.com/nextcloud/mail/commit/899f6f4d71ff39ac9d54212c2cb6b165a2d48bc0))\n* **sieve:** allow system flags like seen ([226e2d3](https://github.com/nextcloud/mail/commit/226e2d35e10ee9183158b35fc8fd47f7c5dfeec6))\n* **sieve:** ensure the stop action is always last ([e3d43c4](https://github.com/nextcloud/mail/commit/e3d43c4b9fb2339b45ee813fc8089e040930c582))\n* **text-block:** preserve line breaks on plain text ([9d5d3a9](https://github.com/nextcloud/mail/commit/9d5d3a92f41100b76730837c39fece9a210e463e))\n* **ui:** bind attr to popover trigger ([b17e04c](https://github.com/nextcloud/mail/commit/b17e04c217d32d4be97fc249c8d062f8d730368b))\n\n\n### Features\n\n* add sort favorites user preference ([b22afd4](https://github.com/nextcloud/mail/commit/b22afd4a18a99d4ea84b45e73d1a677b02a7744a))\n* compact view for mail layouts ([7eb1ff0](https://github.com/nextcloud/mail/commit/7eb1ff092b27253583a29dfae9ab14a2cc07e677))\n* imporove search filter buttons ([a21c29b](https://github.com/nextcloud/mail/commit/a21c29b423a16eec1aa3aa4d25de4a191065851e))\n* improve the search filter shortcut buttons ([b0c3559](https://github.com/nextcloud/mail/commit/b0c355921a0fc8e31170a3314f28ffb4a22724de))\n* make email wide on phone ([09ada44](https://github.com/nextcloud/mail/commit/09ada44d35871db527c902c14210fa2e8181b252))\n* manually refresh folder list ([22c7181](https://github.com/nextcloud/mail/commit/22c71813ded17ab3ac26f3e3b993abce1fe9d729))\n* **PhishingDetection:** Add support for the $Phishing IMAP flag ([6c01c8a](https://github.com/nextcloud/mail/commit/6c01c8a2db557231bdf8a84d4b921ab9e80871b1))\n* pin favorites ([6718656](https://github.com/nextcloud/mail/commit/67186566f2f30025409a9948e0ae362ca3cd22f4))\n* support user migration ([cc7c592](https://github.com/nextcloud/mail/commit/cc7c5926d3cba10009d86db6b1ff2bf5a8172b49))\n\n\n### Performance Improvements\n\n* **quick-actions:** eliminate dublicate api calld for each envelope ([71cccdf](https://github.com/nextcloud/mail/commit/71cccdfef182a4dfaaf4b14e5f17d0e042ac7870))\n\n\n\n# [5.6.0-rc.1](https://github.com/nextcloud/mail/compare/v5.5.0-rc.1...v5.6.0-rc.1) (2025-11-18)\n\n\n### Bug Fixes\n\n* **AccountForm:** Allow localhost as valid email domain ([49cd198](https://github.com/nextcloud/mail/commit/49cd198e599eac4c2537efe07b19b56e272a48d1))\n* add jsdom ([c3c31cb](https://github.com/nextcloud/mail/commit/c3c31cb36cfd8ba757d56e448c3abaaf164bca00))\n* add the warning icon when account cannot connect ([ae2f15d](https://github.com/nextcloud/mail/commit/ae2f15d7720c0116e4f5e9a1486a617c56414947))\n* **ai-integration:** get user language for message summary ([431e445](https://github.com/nextcloud/mail/commit/431e445b2808b4f04ac9019a57fe854667ad8242))\n* align quick action settings button properly ([cd7bda7](https://github.com/nextcloud/mail/commit/cd7bda7ba70b3fcc459d73326de07bda26320c7a))\n* allow reloading the INBOX favorites page ([3322b1d](https://github.com/nextcloud/mail/commit/3322b1dd5e8dac3163d23914046452ef0685485f))\n* allow storing longer mailbox names ([9652e1a](https://github.com/nextcloud/mail/commit/9652e1a2e4be0d08ae1d6acb052e04c84a09e6e1))\n* also await onToggleJunk ([d79ccf8](https://github.com/nextcloud/mail/commit/d79ccf8b5cde2c5deb88529d2871b52c224f9963))\n* **AppSettingsMenu:** update text string in preparation for redesign ([66cce37](https://github.com/nextcloud/mail/commit/66cce37650fa93636e15922569ac2f4ae0e832fb))\n* check email in recipient picker ([935c9a4](https://github.com/nextcloud/mail/commit/935c9a44e2b158771227369ffd683452b5c28f10))\n* ckeditor color in darkmode ([50dce08](https://github.com/nextcloud/mail/commit/50dce0864c33946c3be8067275c69f4b80f728a1))\n* ckeditor not loading when no translations are used ([c2b48bf](https://github.com/nextcloud/mail/commit/c2b48bf5f0d2e4236a913784bed170b83ca74a1a))\n* **classification:** break large SQL IN queries into chunks ([61a1457](https://github.com/nextcloud/mail/commit/61a145766c933a2d29525088d785fda436df63e8))\n* contrast fixes for some elements ([4b40509](https://github.com/nextcloud/mail/commit/4b405090af36bd35d9f9e892361fbb7eb7e73307))\n* correct the default sort order value ([2486bf4](https://github.com/nextcloud/mail/commit/2486bf457b79b4f9521c09f6bd28da8969121876))\n* **db:** clean-up old mailboxes account_id+name index ([e77008b](https://github.com/nextcloud/mail/commit/e77008b7468a1785fce59f68c40f41500a75234e))\n* **db:** drop index on mail_mailboxes by columns instead of name ([068954f](https://github.com/nextcloud/mail/commit/068954fbbdd0b72bf55fa9c8c9588d0fa40a31e9))\n* **deps:** bump @iframe-resizer/child from 5.5.5 to ^5.5.6 ([#11702](https://github.com/nextcloud/mail/issues/11702)) ([cef93a2](https://github.com/nextcloud/mail/commit/cef93a236a662c1268fdb7e33e28f93809e1abfb))\n* **deps:** bump @iframe-resizer/child from 5.5.6 to ^5.5.7 ([#11732](https://github.com/nextcloud/mail/issues/11732)) ([6a2567a](https://github.com/nextcloud/mail/commit/6a2567a477019ad1c031c471dca0cfd225045f20))\n* **deps:** bump @iframe-resizer/parent from 5.5.5 to ^5.5.7 ([#11733](https://github.com/nextcloud/mail/issues/11733)) ([9adc913](https://github.com/nextcloud/mail/commit/9adc91368153574b8a76cf35b8a0df1807125921))\n* **deps:** bump @nextcloud/auth from 2.5.2 to ^2.5.3 ([#11894](https://github.com/nextcloud/mail/issues/11894)) ([3c3097c](https://github.com/nextcloud/mail/commit/3c3097c90e264c9d9b0dc621e89bdad5718c7f41))\n* **deps:** bump @nextcloud/axios from 2.5.1 to ^2.5.2 ([#11827](https://github.com/nextcloud/mail/issues/11827)) ([4add112](https://github.com/nextcloud/mail/commit/4add1121fb19d87844848460d2f0742d296004f5))\n* **deps:** bump @nextcloud/dialogs from 6.3.2 to ^6.3.2 ([#11834](https://github.com/nextcloud/mail/issues/11834)) ([8d3bba7](https://github.com/nextcloud/mail/commit/8d3bba7044a3580bf45946f425dd6b5b9e7c2aa5))\n* **deps:** bump @nextcloud/sharing from 0.2.5 to ^0.3.0 ([feb565d](https://github.com/nextcloud/mail/commit/feb565d833b35f0ae82c434573e8a96aa43005dc))\n* **deps:** bump @nextcloud/vue from 8.33.0 to ^8.33.0 ([cbce84e](https://github.com/nextcloud/mail/commit/cbce84e7f5926c1817f992c831f39f36f03497a0))\n* **deps:** bump @nextcloud/vue to ^8.31.0 ([1104e90](https://github.com/nextcloud/mail/commit/1104e90832fc6f88a168ef09b266c0ef4dacc3a0))\n* **deps:** bump @vue/babel-preset-app from 5.0.8 to ^5.0.9 ([#11842](https://github.com/nextcloud/mail/issues/11842)) ([84b8524](https://github.com/nextcloud/mail/commit/84b85248420a50c660657f061d3b44a50f9f743b))\n* **deps:** bump core-js from 3.45.0 to ^3.45.1 ([#11849](https://github.com/nextcloud/mail/issues/11849)) ([a43410e](https://github.com/nextcloud/mail/commit/a43410e99bfe4787aaba6febba630f1a5c4b0cda))\n* **deps:** bump dompurify from 3.2.6 to ^3.3.0 ([#11858](https://github.com/nextcloud/mail/issues/11858)) ([b913e68](https://github.com/nextcloud/mail/commit/b913e68d82390cd6c11a383339adbe902595361e))\n* **deps:** bump nextcloud/openapi-extractor from 1.8.1 to ^1.8.6 ([#11978](https://github.com/nextcloud/mail/issues/11978)) ([0e1617b](https://github.com/nextcloud/mail/commit/0e1617bd1d49e88ee94a556c2a3f6ec8fb4ec292))\n* **deps:** bump phpmailer/dkimvalidator from 0.3 to ^0.3.1 ([8648561](https://github.com/nextcloud/mail/commit/86485615579de92dbc16b3192fc622828a4c19b3))\n* **deps:** bump rubix/ml from 2.5.2 to v2.5.3 ([#11872](https://github.com/nextcloud/mail/issues/11872)) ([5427895](https://github.com/nextcloud/mail/commit/5427895a664362b93805f98a1d71bbe56602cc0f))\n* **deps:** bump stylelint from 16.23.1 to ^16.25.0 ([#11887](https://github.com/nextcloud/mail/issues/11887)) ([3159ca1](https://github.com/nextcloud/mail/commit/3159ca129b98d0c31a574b447ec47b2731952eeb))\n* **deps:** drop Nextcloud 30 support (EOL) ([4c1b2e2](https://github.com/nextcloud/mail/commit/4c1b2e284673ae9985e14a9c84d68262077f8400))\n* **deps:** Fix npm audit ([f841390](https://github.com/nextcloud/mail/commit/f8413906aae4bf3cc1eb602369db0e8b9ec0906a))\n* **deps:** update @nextcloud/dialogs ([a6cd9ec](https://github.com/nextcloud/mail/commit/a6cd9ecbd8343832c3f90193968cd4e5abb8702f))\n* **deps:** update axios ([f063106](https://github.com/nextcloud/mail/commit/f063106eb4116736214f9570d5d0689fb73cbdd8))\n* **deps:** update axios ([f7d36de](https://github.com/nextcloud/mail/commit/f7d36de29d0764044a23a6f744d0849c513946fb))\n* **deps:** update ckeditor to 45 (unified package) ([819c221](https://github.com/nextcloud/mail/commit/819c221524fb9550eee750f3f2863a80c6da4bc4))\n* display tooltip correctly ([fb4ab1c](https://github.com/nextcloud/mail/commit/fb4ab1c629623b1369f4862f7d88ed520a5f36d8))\n* **dns:** Update public suffix list ([9943f2a](https://github.com/nextcloud/mail/commit/9943f2aeb4e229999bf0fca0c739df5002bd5753))\n* **dns:** Update public suffix list ([1f676bb](https://github.com/nextcloud/mail/commit/1f676bbfb99413b7006fc5ebb829d12f152e0d88))\n* **dns:** Update public suffix list ([1db4751](https://github.com/nextcloud/mail/commit/1db4751c3b8ebe44b65ba501a42b88e3a7617273))\n* **dns:** Update public suffix list ([9a92557](https://github.com/nextcloud/mail/commit/9a92557326a281d1991df72bf52698e6404c39a7))\n* **emoji-picker:** ignore if first character is a space ([da0e2bc](https://github.com/nextcloud/mail/commit/da0e2bc922301fffa4bfaa8741f0288fb22bddde))\n* **EnvelopeSkeleton:** text shifting on hover ([7561a7c](https://github.com/nextcloud/mail/commit/7561a7c8bb2760b8f85f15232c2d0db453878c4a))\n* error in mounted hook ([0055669](https://github.com/nextcloud/mail/commit/0055669f84fd903370d3b502ebc9b8fb3bc9a9fc))\n* external address color ([b476bb6](https://github.com/nextcloud/mail/commit/b476bb6828586c52b49c694ffdf56b8cc50b2e4e))\n* flip email open and email icon in evelope actions ([fc59623](https://github.com/nextcloud/mail/commit/fc59623ed5998474b466dea0f8fb98e7593475d5))\n* **i18n:** improve l10n strings ([#12004](https://github.com/nextcloud/mail/issues/12004)) ([a2c5043](https://github.com/nextcloud/mail/commit/a2c5043b15bdc02c9223a67a9e6c088cf4e382dc))\n* **imap:** avoid Horde's LIST-STATUS optimization for STATUS ([da3b3fa](https://github.com/nextcloud/mail/commit/da3b3fa109d949a7e111b70fd683118ca604a7d2))\n* **imap:** make mailbox status errors debuggable ([faa70d4](https://github.com/nextcloud/mail/commit/faa70d40d6489a686844710472b3b0745b3caf46))\n* imip aliases and capitalization ([aebfa65](https://github.com/nextcloud/mail/commit/aebfa657b79bda16fb6020099a23ab405559fa1f))\n* **l10n:** Update translations from Transifex ([6a71cc9](https://github.com/nextcloud/mail/commit/6a71cc923280a2dec8f9a27d0d5756e54f653d43))\n* **l10n:** Update translations from Transifex ([4ed1117](https://github.com/nextcloud/mail/commit/4ed1117dc8dd934153f69ecf5ae05d465e98a28c))\n* **l10n:** Update translations from Transifex ([cd0053f](https://github.com/nextcloud/mail/commit/cd0053f6e8eb1e14ee4410b49555d46fbab21144))\n* **l10n:** Update translations from Transifex ([3706c56](https://github.com/nextcloud/mail/commit/3706c56db751841ea10ea5724f28fddd97d4a0de))\n* **l10n:** Update translations from Transifex ([ce5372c](https://github.com/nextcloud/mail/commit/ce5372c14b742b62a444af5c0f057126a9b7fd92))\n* **l10n:** Update translations from Transifex ([f36788d](https://github.com/nextcloud/mail/commit/f36788d0d7ee59b3911c81200f6a788c26a64c59))\n* **l10n:** Update translations from Transifex ([4972130](https://github.com/nextcloud/mail/commit/49721300d8b6c7e8bfe500eac98bb8832f2f9dda))\n* **l10n:** Update translations from Transifex ([33c0cd2](https://github.com/nextcloud/mail/commit/33c0cd26f19a919c78e2e9ecac9c2cd58c1b3ce5))\n* **l10n:** Update translations from Transifex ([d5925f1](https://github.com/nextcloud/mail/commit/d5925f1196e3c33238b4f209a5c55badd1a5a9bb))\n* **l10n:** Update translations from Transifex ([10a5069](https://github.com/nextcloud/mail/commit/10a5069f73f817cb0dff0a634b442639408d68b5))\n* **l10n:** Update translations from Transifex ([585d834](https://github.com/nextcloud/mail/commit/585d8341ebc2da215201521be0d306e234aecf68))\n* **l10n:** Update translations from Transifex ([170a047](https://github.com/nextcloud/mail/commit/170a0474eb3675045adf5904c3520e212fe15896))\n* **l10n:** Update translations from Transifex ([14a58b3](https://github.com/nextcloud/mail/commit/14a58b3dcfb35acbb8acbe3844af43ef16c37b75))\n* **l10n:** Update translations from Transifex ([922f463](https://github.com/nextcloud/mail/commit/922f463dea059458903632cc4cf2df4c361c2287))\n* **l10n:** Update translations from Transifex ([3a7078f](https://github.com/nextcloud/mail/commit/3a7078ffefecab15e789802ece4e81479f3abd6b))\n* **l10n:** Update translations from Transifex ([decd56d](https://github.com/nextcloud/mail/commit/decd56d201ee09bed9f49601d799e7fa6f00f34c))\n* **l10n:** Update translations from Transifex ([75705fc](https://github.com/nextcloud/mail/commit/75705fc3b1eb966fcf8eb0554595dd1dbffa3835))\n* **l10n:** Update translations from Transifex ([39ba202](https://github.com/nextcloud/mail/commit/39ba20204b4b36ef96ecdaaa439c5824c9c6b465))\n* **l10n:** Update translations from Transifex ([e3b0fa8](https://github.com/nextcloud/mail/commit/e3b0fa801195720c00f4a5e1d3c68dde55a23407))\n* **l10n:** Update translations from Transifex ([9d80c02](https://github.com/nextcloud/mail/commit/9d80c0282898167f34681d89e808933214c32a39))\n* **l10n:** Update translations from Transifex ([3dc2827](https://github.com/nextcloud/mail/commit/3dc28277a1c39cb3cff74d42742030ab371e4cf5))\n* **l10n:** Update translations from Transifex ([67d1d2a](https://github.com/nextcloud/mail/commit/67d1d2a2441f761d5076ec3c6b6cd199ed466a5b))\n* **l10n:** Update translations from Transifex ([65b822d](https://github.com/nextcloud/mail/commit/65b822db0b11b54c64a809eb612a0e0f5e6f1b4a))\n* **l10n:** Update translations from Transifex ([adf81ed](https://github.com/nextcloud/mail/commit/adf81edff2bc005bf943b7311c62aefa9d8fd00f))\n* **l10n:** Update translations from Transifex ([dd0b743](https://github.com/nextcloud/mail/commit/dd0b743a10b3ea749fad2037333daf4d40d5760d))\n* **l10n:** Update translations from Transifex ([2c49124](https://github.com/nextcloud/mail/commit/2c49124257d9b641e6fc021fbca09e949a6c4b3d))\n* **l10n:** Update translations from Transifex ([b46373a](https://github.com/nextcloud/mail/commit/b46373a80c695b83249e9b3931f2ed661d924994))\n* **l10n:** Update translations from Transifex ([2306934](https://github.com/nextcloud/mail/commit/2306934b4546131d02f4bee6d0660d20d9516d23))\n* **l10n:** Update translations from Transifex ([e40e483](https://github.com/nextcloud/mail/commit/e40e483b9d2aa17d46a5be084b284df3abc22f2f))\n* **l10n:** Update translations from Transifex ([684e75a](https://github.com/nextcloud/mail/commit/684e75a46d208bc6365b328e8c85df84e638354b))\n* **l10n:** Update translations from Transifex ([0e361f0](https://github.com/nextcloud/mail/commit/0e361f06b008d6738db6bbbad70e49312533a932))\n* **l10n:** Update translations from Transifex ([67b25e3](https://github.com/nextcloud/mail/commit/67b25e34a0dc9c8bce176817bc228e12e1f53821))\n* **l10n:** Update translations from Transifex ([0fab187](https://github.com/nextcloud/mail/commit/0fab187e0a70b82c5230e36cdea5291b1b247d1f))\n* **l10n:** Update translations from Transifex ([bff919e](https://github.com/nextcloud/mail/commit/bff919ee61c8b7e5905b285b25b60649242e7161))\n* **l10n:** Update translations from Transifex ([6ddcf65](https://github.com/nextcloud/mail/commit/6ddcf65c22b81621dc0546eb9beaa2331fce44eb))\n* **l10n:** Update translations from Transifex ([2ea9bf1](https://github.com/nextcloud/mail/commit/2ea9bf13cfd824930dde40847c538c2778bf759b))\n* **l10n:** Update translations from Transifex ([3cd6222](https://github.com/nextcloud/mail/commit/3cd62224a25cb01bd16fabf6e3b1ccbf93153df6))\n* **l10n:** Update translations from Transifex ([d972d43](https://github.com/nextcloud/mail/commit/d972d439a0eb2146e0104b065ea7d272f258f9a6))\n* **l10n:** Update translations from Transifex ([be650ef](https://github.com/nextcloud/mail/commit/be650ef147914afc875123146a9f308f1a10df2d))\n* **l10n:** Update translations from Transifex ([a3d8185](https://github.com/nextcloud/mail/commit/a3d81853bc79060c6c6364195053de8d775b53a0))\n* **l10n:** Update translations from Transifex ([a87aa56](https://github.com/nextcloud/mail/commit/a87aa56436750fd601f7609ed74eb582ccec5011))\n* **l10n:** Update translations from Transifex ([01f9f99](https://github.com/nextcloud/mail/commit/01f9f998114fade296d4fb8812d8c3aab1967719))\n* **l10n:** Update translations from Transifex ([f1368ab](https://github.com/nextcloud/mail/commit/f1368ab5642d49db7db972bfcba74eb1a3529e6e))\n* **l10n:** Update translations from Transifex ([d3ee1d5](https://github.com/nextcloud/mail/commit/d3ee1d5a2502ee7c406f0347271c8c9113825eb4))\n* **l10n:** Update translations from Transifex ([f201a19](https://github.com/nextcloud/mail/commit/f201a197242e6208ede2c6461370ebe0dc9ff2bd))\n* **l10n:** Update translations from Transifex ([2320679](https://github.com/nextcloud/mail/commit/2320679f03db9869f3cd01b7f6cdb9d29254dd1b))\n* **l10n:** Update translations from Transifex ([d164bcb](https://github.com/nextcloud/mail/commit/d164bcbef87f0a224b34cce675c0d83996323b89))\n* **l10n:** Update translations from Transifex ([b4a6221](https://github.com/nextcloud/mail/commit/b4a62211a44588abc9c8b623d268eacdfcd11a2c))\n* **l10n:** Update translations from Transifex ([46c94b3](https://github.com/nextcloud/mail/commit/46c94b3d469dfd86b2274b8f6b82ce6afeb66b33))\n* **l10n:** Update translations from Transifex ([428c205](https://github.com/nextcloud/mail/commit/428c2051be596be6a9f4c1964d55350163309d0e))\n* **l10n:** Update translations from Transifex ([6016da4](https://github.com/nextcloud/mail/commit/6016da44d22cf8769fa03a02f5cb4a8811c810fb))\n* **l10n:** Update translations from Transifex ([307a257](https://github.com/nextcloud/mail/commit/307a257a4d2fdb63c738458b2453b959af574467))\n* **l10n:** Update translations from Transifex ([c6e018b](https://github.com/nextcloud/mail/commit/c6e018bfe874bc9197f4f9ca4aeac49fa1cfd1ab))\n* **l10n:** Update translations from Transifex ([78ae7f4](https://github.com/nextcloud/mail/commit/78ae7f43a3588c9534e2cb3c60e470cbfbee86e7))\n* **l10n:** Update translations from Transifex ([b8124ae](https://github.com/nextcloud/mail/commit/b8124ae1a006ab52aa9af1e007cbe643f28f9783))\n* leftover design changes ([da0a40d](https://github.com/nextcloud/mail/commit/da0a40d67fc3ec32713254e44885249be5bf877c))\n* list separators depending on sort by date ([1af3195](https://github.com/nextcloud/mail/commit/1af3195ae5a730baef2c4bcf4d1e048fa1b9bc25))\n* mail pane resetting between layout changes ([73c34ff](https://github.com/nextcloud/mail/commit/73c34ff21d8e5fbdf51af6ddc1ef7ff63de7e153))\n* migrate mail_accounts.oauth_refresh_token to Types::TEXT ([0341d64](https://github.com/nextcloud/mail/commit/0341d64fad418803831cad77f237e00a4f180843))\n* **migration:** check if account service method exists ([4133178](https://github.com/nextcloud/mail/commit/41331785b627692f814c15fbfe43fe500f8f8516))\n* **migration:** guard repair stop for possibly missing method ([edd7634](https://github.com/nextcloud/mail/commit/edd76340c32e0a0a349b9f6b512efb78e7a46839))\n* **NewMessageModal:** keep formatting after minimizing ([63354f2](https://github.com/nextcloud/mail/commit/63354f29349cdeceb93ca239b157cfb2fe045329))\n* **psalm:** remove unnecessary var declarations ([af228f6](https://github.com/nextcloud/mail/commit/af228f6abb86878f4378cc86e3caa09fbb6c64b1))\n* **quick-actions:** adjust backend check for pinned actions order ([4251ca2](https://github.com/nextcloud/mail/commit/4251ca2dc6a0a09f23521ea72fb80380f9d7d9a3))\n* **quick-actions:** apply action to all messages in a thread ([5ccc6a6](https://github.com/nextcloud/mail/commit/5ccc6a6c9162c188587df5d42ee06bf965229ad6))\n* **quick-actions:** delete local steps ([08e379c](https://github.com/nextcloud/mail/commit/08e379c2dd0f44321726150609452ad20bfded3e))\n* **quick-actions:** pin mark as spam as a last actions step ([a28adde](https://github.com/nextcloud/mail/commit/a28adde92e50c3758c28b22088feddf3d3deb848))\n* **quickaction:** fix deleting quick action steps ([f8b67cf](https://github.com/nextcloud/mail/commit/f8b67cfb848d5f4420fafc795792796189f789ee))\n* **quickaction:** log js error to console ([da5eae9](https://github.com/nextcloud/mail/commit/da5eae94614816bb75c6fd31a95ac92b6b47a8d5))\n* render recipient info later ([03bee06](https://github.com/nextcloud/mail/commit/03bee066c6c168911151e0be71c16eb2dc2bbc4d))\n* restore color menu in text/background selector ([6de3bb1](https://github.com/nextcloud/mail/commit/6de3bb1ab9e21f28703648926f451c6f46b5dcc3))\n* schedule jobs on account provisioning ([5f9a313](https://github.com/nextcloud/mail/commit/5f9a3131ac6f31680255c616bc26e7938d1752a5))\n* schedule repair sync job when adding an account ([eb41283](https://github.com/nextcloud/mail/commit/eb41283573f85cbef11bcfe40059b7930bea9802))\n* **Settings:** redesign ([5448209](https://github.com/nextcloud/mail/commit/5448209267415ad71f877b104e420aaf0bd20ab9))\n* **setup:** log when invalid hosts are used ([b415ab6](https://github.com/nextcloud/mail/commit/b415ab6672c5d90138d8834763d9a3683b0c4331))\n* show user avatar in recipient info ([f67fd6b](https://github.com/nextcloud/mail/commit/f67fd6be188873e1a397829da7a1e82aa6cc42fe))\n* **sieve:** improve filter ui ([29c3d5e](https://github.com/nextcloud/mail/commit/29c3d5ed87547835886e9a0f47d75d206008bd98))\n* thread error message handling ([7593d60](https://github.com/nextcloud/mail/commit/7593d6099f254930fdbb63bc08398bcaa85c5e3d))\n* toolbar dropdown and height bug ([90e78c1](https://github.com/nextcloud/mail/commit/90e78c16ad80edec5209d527cebd9cd6968de016))\n* **ui:** Don't outline checkmark icons ([46e0a10](https://github.com/nextcloud/mail/commit/46e0a108843b3a3661d3da6eb4a793148b9c5a95)), closes [#11322](https://github.com/nextcloud/mail/issues/11322)\n* **ui:** escape envelope subject line ([36b5d21](https://github.com/nextcloud/mail/commit/36b5d211eedbaeb3e4b41aaa2b0fea59bd52e285))\n* **ui:** handle mailbox sorting of 'all' and unknown special use ([913342b](https://github.com/nextcloud/mail/commit/913342b0d2fd0be25186cb39b31916b72a188ced))\n* **ui:** migrate to the new radio groups for app settings ([cef6238](https://github.com/nextcloud/mail/commit/cef62387b304a927b3ffb5f8a4cfe124452e88c2))\n* **ui:** use filled icons for active navigation mailboxes ([2b78ce1](https://github.com/nextcloud/mail/commit/2b78ce1961414d2242dcc7f71b035e91d42c176a))\n* **ui:** use new NcKbd component ([65f6c61](https://github.com/nextcloud/mail/commit/65f6c61c686f0b89f25a5be16965abe29e4aeff2))\n* validate email address in recipient picker ([0d7ceb1](https://github.com/nextcloud/mail/commit/0d7ceb1fb77820595b799540e25d29649a3e7988))\n* warning for accounts that can't connect ([1ee0d5d](https://github.com/nextcloud/mail/commit/1ee0d5d76912fbe30e205f5a4c0768ef6960c5da))\n\n\n### Features\n\n* **composer:** send message on Ctrl+Enter ([0e848de](https://github.com/nextcloud/mail/commit/0e848deae3c4fadf7f70aebda3db001d554a420a))\n* **settings:** add bordered wrapper to signature editor for clearer boundary ([0675a17](https://github.com/nextcloud/mail/commit/0675a1756303159fa8b84f35eff52ee52c81c6ab))\n* show mail version in settings ([d206d4d](https://github.com/nextcloud/mail/commit/d206d4dfc68e589284418fbcfb82ea54e2000148))\n\n\n### Performance Improvements\n\n* switch webpack mode to lazy ([9d8f1f3](https://github.com/nextcloud/mail/commit/9d8f1f32219fbd21e61c66794b0ff64e2bf830f9))\n\n\n\n# [5.5.0-rc.1](https://github.com/nextcloud/mail/compare/v5.2.0-beta.1...v5.5.0-rc.1) (2025-09-11)\n\n\n### Bug Fixes\n\n* **ai-integration:** set the language explicitly for message summary ([ca141ee](https://github.com/nextcloud/mail/commit/ca141eeed5f90a5b1348c2f7c3d6b24680557edb))\n* **AliasSettings:** alignment ([84233ab](https://github.com/nextcloud/mail/commit/84233ab11532efd238c876f92d3f5b60e3faabad))\n* avoid polluting the logs in the task processing event listner ([ab9cd93](https://github.com/nextcloud/mail/commit/ab9cd9338b2de6bf6c2daee9d291c9c995ed7517))\n* ckeditor dropdown overlaping ([59904c2](https://github.com/nextcloud/mail/commit/59904c2c6b2d3476a4e3bb2cfdb23cdb44809bd3))\n* clear search icon should not be outline ([ab21936](https://github.com/nextcloud/mail/commit/ab2193695614d46132416effbe41b4bb5921896d))\n* **deps:** bump @iframe-resizer/child from 5.5.0 to ^5.5.1 (main) ([#11451](https://github.com/nextcloud/mail/issues/11451)) ([fbb7d7b](https://github.com/nextcloud/mail/commit/fbb7d7b61d0c666f984ec81de2da11139e1f211e))\n* **deps:** bump @iframe-resizer/child from 5.5.1 to ^5.5.2 ([ed1fbcb](https://github.com/nextcloud/mail/commit/ed1fbcb085d326fdcecdeb792f6833ca2b325967))\n* **deps:** bump @iframe-resizer/child from 5.5.2 to ^5.5.3 (main) ([#11583](https://github.com/nextcloud/mail/issues/11583)) ([03dedb7](https://github.com/nextcloud/mail/commit/03dedb7baf7205d8aac8429d05b0200f2672a5c0))\n* **deps:** bump @iframe-resizer/child from 5.5.3 to ^5.5.5 (main) ([#11612](https://github.com/nextcloud/mail/issues/11612)) ([0625a6f](https://github.com/nextcloud/mail/commit/0625a6f9d4216454dc5aaf9276e3091085920f40))\n* **deps:** bump @iframe-resizer/parent from 5.4.7 to ^5.5.1 (main) ([#11452](https://github.com/nextcloud/mail/issues/11452)) ([e7dd17a](https://github.com/nextcloud/mail/commit/e7dd17add842d88f5a05e2e1fcaaa92275208f07))\n* **deps:** bump @iframe-resizer/parent from 5.5.1 to ^5.5.2 (main) ([#11483](https://github.com/nextcloud/mail/issues/11483)) ([c563201](https://github.com/nextcloud/mail/commit/c563201340e02673d364e10efeef4bacc3050624))\n* **deps:** bump @iframe-resizer/parent from 5.5.2 to ^5.5.3 (main) ([#11584](https://github.com/nextcloud/mail/issues/11584)) ([67174a9](https://github.com/nextcloud/mail/commit/67174a9f80d80b8cf3cc2f28fbe5d72da11b541b))\n* **deps:** bump @iframe-resizer/parent from 5.5.3 to ^5.5.5 (main) ([#11613](https://github.com/nextcloud/mail/issues/11613)) ([5be27cf](https://github.com/nextcloud/mail/commit/5be27cf2cf00b72fcd4526f164ec2c773e46e00c))\n* **deps:** bump @nextcloud/files from 3.10.2 to ^3.12.0 ([deef58a](https://github.com/nextcloud/mail/commit/deef58a71e8801dc0c5e515295d03686ece51ff3))\n* **deps:** bump @nextcloud/initial-state from 2.2.0 to v3 ([4529411](https://github.com/nextcloud/mail/commit/452941193bd47e1deb5da403b9ef06ac12d05c25))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.28.0 ([88bdf89](https://github.com/nextcloud/mail/commit/88bdf891061228035dea3ddfe6d360a79a8cca33))\n* **deps:** bump @nextcloud/vue to ^8.30.0 ([f417737](https://github.com/nextcloud/mail/commit/f4177370703e0f9589ca11e89c72535a7782ee8b))\n* **deps:** bump core-js from 3.43.0 to ^3.45.0 ([4932f23](https://github.com/nextcloud/mail/commit/4932f23e4d0fc76c74b602a7cd7e631e77d7dab6))\n* **deps:** bump ical.js from 2.2.0 to ^2.2.1 ([13f5e61](https://github.com/nextcloud/mail/commit/13f5e61ef534906b8c7dc1ebb5cd36c1c9b85a24))\n* **deps:** bump js-base64 from 3.7.7 to ^3.7.8 (main) ([#11501](https://github.com/nextcloud/mail/issues/11501)) ([ded3bda](https://github.com/nextcloud/mail/commit/ded3bda4d340bffd12adcdd52b6253b3c9170431))\n* **deps:** bump linkifyjs to v4.3.2 ([ec06a65](https://github.com/nextcloud/mail/commit/ec06a658d8fc89369dabedb2e70dc1818f48c245))\n* **deps:** bump p-limit from 5.0.0 to v6 ([4d6501a](https://github.com/nextcloud/mail/commit/4d6501ac9952a57bf9a38b47f497113d7af7e008))\n* **deps:** bump sabberworm/php-css-parser from 8.8.0 to ^8.9.0 (main) ([#11475](https://github.com/nextcloud/mail/issues/11475)) ([a96c15d](https://github.com/nextcloud/mail/commit/a96c15d684506a68817817f0e0c3ce6af567ec2c))\n* **deps:** bump sha.js from 2.4.11 to 2.4.12 ([461a9cf](https://github.com/nextcloud/mail/commit/461a9cfedcd62a89d236ae86421d9c3ffd519a18))\n* **deps:** bump stylelint from 16.20.0 to ^16.23.1 (main) ([#11476](https://github.com/nextcloud/mail/issues/11476)) ([eac87aa](https://github.com/nextcloud/mail/commit/eac87aa75304bd0ecfda0425c84ea27477d83bf3))\n* **deps:** bump uuid from 9.0.1 to v11 ([243172c](https://github.com/nextcloud/mail/commit/243172c9c8ebaaa2e0feb3907aa4dbe21842f133))\n* **deps:** bump youthweb/urllinker from 2.0.0 to ^2.1.0 (main) ([#11477](https://github.com/nextcloud/mail/issues/11477)) ([e4cc571](https://github.com/nextcloud/mail/commit/e4cc571bef4399dbc1ec66c4238857b087db08c1))\n* **deps:** update symfony/process to 5.4.46 ([569e6b9](https://github.com/nextcloud/mail/commit/569e6b9c5ce88c2874e969d9de55e176e0043b67))\n* **dns:** Update public suffix list ([c29ef10](https://github.com/nextcloud/mail/commit/c29ef10955207b12213bd3781bcea2870d1f51a4))\n* **dns:** Update public suffix list ([e9c9068](https://github.com/nextcloud/mail/commit/e9c90681350a547bb750f29b2f17da9d81f83e53))\n* envelope max height ([2e88454](https://github.com/nextcloud/mail/commit/2e88454c46fae764a42e8f43779f4d48241c52b5))\n* **Envelope:** fix oneline mode envelopes jumping when hovering avatars ([#11641](https://github.com/nextcloud/mail/issues/11641)) ([79e09a1](https://github.com/nextcloud/mail/commit/79e09a1d301ea3e762f9608aa62a30dec7d1cd6a))\n* **EnvelopeSkeleton:** make action hover area square again ([13cc096](https://github.com/nextcloud/mail/commit/13cc096a30ad19fb5a5aed1a23dca4a774f15d36))\n* imip cancelled icon should be filled ([222dad1](https://github.com/nextcloud/mail/commit/222dad14b866e40f8ad548a4784f7b7733b860c8))\n* improve the height and width of threads ([217f086](https://github.com/nextcloud/mail/commit/217f08620eaff42685933654bbcbbeadd94a1b0c))\n* **l10n:** Update translations from Transifex ([8cbc64b](https://github.com/nextcloud/mail/commit/8cbc64be123186ba8271c5684df1f685bb7f451d))\n* **l10n:** Update translations from Transifex ([14d2b10](https://github.com/nextcloud/mail/commit/14d2b105c7fce21368db46f58c93c68be349fd8c))\n* **l10n:** Update translations from Transifex ([d58c2b5](https://github.com/nextcloud/mail/commit/d58c2b5fcbad02d7becc6466ef21464e858ab5e4))\n* **l10n:** Update translations from Transifex ([3a3151a](https://github.com/nextcloud/mail/commit/3a3151af5f54767d7355a950c74477c8a46a63ce))\n* **l10n:** Update translations from Transifex ([d3fe84d](https://github.com/nextcloud/mail/commit/d3fe84d53f68598a93d2b44183d6233452e1a6dd))\n* **l10n:** Update translations from Transifex ([9290530](https://github.com/nextcloud/mail/commit/9290530f5f29e3a4a021ec91645a10042199b4f3))\n* **l10n:** Update translations from Transifex ([c9f26dc](https://github.com/nextcloud/mail/commit/c9f26dc55a3a6740fdb0daf2d2d18182ebcdcda6))\n* **l10n:** Update translations from Transifex ([90a0fd5](https://github.com/nextcloud/mail/commit/90a0fd51400150b678303c39a68dd4d40473f00b))\n* **l10n:** Update translations from Transifex ([36360a3](https://github.com/nextcloud/mail/commit/36360a3f71c96a209a4355dabb03b1380a7611c3))\n* **l10n:** Update translations from Transifex ([a102a6e](https://github.com/nextcloud/mail/commit/a102a6e36687e4e030a3848c044dc7c255de74e9))\n* **l10n:** Update translations from Transifex ([c5116a7](https://github.com/nextcloud/mail/commit/c5116a7d6e9214cc9b2ace7cd583388b16ef0731))\n* **l10n:** Update translations from Transifex ([b076b44](https://github.com/nextcloud/mail/commit/b076b4422b297d8c77249107320c8ef8a6b4547c))\n* **l10n:** Update translations from Transifex ([61df478](https://github.com/nextcloud/mail/commit/61df47864d09f0f3124e56b3e2f0241c84de83b6))\n* **l10n:** Update translations from Transifex ([7ca9af7](https://github.com/nextcloud/mail/commit/7ca9af720d5d837c9a8b29dc55b10dfd89bc9c4d))\n* **l10n:** Update translations from Transifex ([f9e8db7](https://github.com/nextcloud/mail/commit/f9e8db7ea23ff350e2a5cffdb49adbe6f2932293))\n* **l10n:** Update translations from Transifex ([12ed5be](https://github.com/nextcloud/mail/commit/12ed5be776b49a895399ce8a3bdd52733787217c))\n* **l10n:** Update translations from Transifex ([af95f12](https://github.com/nextcloud/mail/commit/af95f12cb147df5fd83e783fb3949684d4d9e314))\n* **l10n:** Update translations from Transifex ([607c73b](https://github.com/nextcloud/mail/commit/607c73ba81bf7c79de107fa56ac2bd861d9c1db0))\n* **l10n:** Update translations from Transifex ([a61e1b9](https://github.com/nextcloud/mail/commit/a61e1b93d8a4a085db1616d4a9cb14c407369f12))\n* **l10n:** Update translations from Transifex ([ee5e864](https://github.com/nextcloud/mail/commit/ee5e864bdf16649e594f74c0bb9bc114e466a1d0))\n* **l10n:** Update translations from Transifex ([70a04cd](https://github.com/nextcloud/mail/commit/70a04cd8aa2a23b56a655b94af8b34ccc0148b8e))\n* **l10n:** Update translations from Transifex ([7f023a0](https://github.com/nextcloud/mail/commit/7f023a06dc0db1fe403aa64a2ceb57d9b17147b9))\n* **l10n:** Update translations from Transifex ([e5e9ec8](https://github.com/nextcloud/mail/commit/e5e9ec8764bd26732f1ea6ad91b4e165011c25ac))\n* **l10n:** Update translations from Transifex ([3f9e474](https://github.com/nextcloud/mail/commit/3f9e474486e90d6e48d3e40b70a4c72611ea2dcf))\n* **l10n:** Update translations from Transifex ([3356ea2](https://github.com/nextcloud/mail/commit/3356ea2ebd5ee1ba344b60dfa5f40ae607e7ba19))\n* **l10n:** Update translations from Transifex ([eeced61](https://github.com/nextcloud/mail/commit/eeced61bcf4d4eaec87924f94c8160acafd0682a))\n* **l10n:** Update translations from Transifex ([2ad3966](https://github.com/nextcloud/mail/commit/2ad3966c3ea5606436387b67da1d4807eb47587a))\n* **l10n:** Update translations from Transifex ([cfdcf75](https://github.com/nextcloud/mail/commit/cfdcf757f2fe7a6936569d3c861bba1b1004fe05))\n* **l10n:** Update translations from Transifex ([697c69b](https://github.com/nextcloud/mail/commit/697c69b5841c01a25b8cf7b0e4fed67d3443188f))\n* **l10n:** Update translations from Transifex ([2f1c003](https://github.com/nextcloud/mail/commit/2f1c003418e40b7edad25f1f498e43e2b773a7d1))\n* **l10n:** Update translations from Transifex ([36f0e7f](https://github.com/nextcloud/mail/commit/36f0e7fd38568d944000736136c94bb1b7a261a3))\n* **l10n:** Update translations from Transifex ([e2c468f](https://github.com/nextcloud/mail/commit/e2c468fac3115bdd6d27c16b9009377421416c74))\n* **l10n:** Update translations from Transifex ([c8f646c](https://github.com/nextcloud/mail/commit/c8f646c09d5d0c405babdefa026cf6a5ac2b1d2f))\n* **l10n:** Update translations from Transifex ([3f1a40c](https://github.com/nextcloud/mail/commit/3f1a40c9b23ee7f9ba9ac3610cb877d8d8a59800))\n* **l10n:** Update translations from Transifex ([481be86](https://github.com/nextcloud/mail/commit/481be86a5abe74d2b6e11ee7823e1ff9997b7d4f))\n* Overwrite php-stemmer dependency from RubixML for PHP 8.4 compatibility ([cb94091](https://github.com/nextcloud/mail/commit/cb94091f38006b5bb1255edea7b5d836a5f647ba))\n* reply buttons spacing ([989f540](https://github.com/nextcloud/mail/commit/989f540d22e398bce6b58c467bda93932b5f06db))\n* **settings:** add missing mail settings heading ([a94cd4e](https://github.com/nextcloud/mail/commit/a94cd4e30cf2800d1e695dc805c549b6f1fae300))\n* specify which mailbox to load more from ([e196775](https://github.com/nextcloud/mail/commit/e1967756d49467085fbad138f7c67c0881b10146))\n* **text-blocks:** allow editing in composer and open api for non admin users ([d93d974](https://github.com/nextcloud/mail/commit/d93d974bf8642e80792402c23546391e2985561d))\n* thread heading alignment and participants ([ea01e40](https://github.com/nextcloud/mail/commit/ea01e402f79b90c0792771e03980abec73165781))\n* thread scrolls to middle of iframe ([77a91ad](https://github.com/nextcloud/mail/commit/77a91ad7765a9ec344c5987a8efe1834c9101343))\n* **translation:** respect llm admin setting ([0b0e279](https://github.com/nextcloud/mail/commit/0b0e27977a69a6315fca731f65f554ee758e2e9b))\n* **ui:** adapt setup page to fluid logo ([bff428d](https://github.com/nextcloud/mail/commit/bff428d7c78502008d296e232d998b0778eca37b))\n* **ui:** replace download/upload icons with tray icons ([fe6c15f](https://github.com/nextcloud/mail/commit/fe6c15fe67478664e0021707a0e450d4d3d7e75b))\n* **ui:** replace wrongly sized and jumping checkbox loading icon ([668f7b6](https://github.com/nextcloud/mail/commit/668f7b6c4b3017f0a65f486435d4ca81327d1399))\n* **ui:** resize action icons from 16px to 20px ([d6810da](https://github.com/nextcloud/mail/commit/d6810da2a5d1fc60d632234865542962acdf7ddb))\n* **ui:** resize action icons from 16px to 20px ([99fbdda](https://github.com/nextcloud/mail/commit/99fbdda306f7efd3c52bb98a4f4937f92eb2de2f))\n* **ui:** resize button icons from 16px to 20px ([9c059b8](https://github.com/nextcloud/mail/commit/9c059b85d13ca4161f793d9fc2de537de66b726b))\n* **ui:** resize inline icons from 16px to 20px ([e8a8d89](https://github.com/nextcloud/mail/commit/e8a8d89de6c92fd70fa2e1d5dbd9afe7c5837487))\n* **ui:** revert composer session close icon to filled variant ([e10d9da](https://github.com/nextcloud/mail/commit/e10d9da41655955376268d3c342a63260b574aa0))\n* **ui:** revert recipient delete icon to filled variant ([6468edb](https://github.com/nextcloud/mail/commit/6468edb42a4248312c91d3570dac4a133a610dcd))\n* **ui:** show box-shadow for fluid design button all the time ([03b5861](https://github.com/nextcloud/mail/commit/03b5861d70b854704caa47269cbb999f583fe057))\n* **ui:** use fluid background image for the setup view ([f88dec6](https://github.com/nextcloud/mail/commit/f88dec649b44f9ab8e38a767016a4e1c26ba7235))\n* **ui:** use gradient as fallback for themed fluid design ([b3ebb27](https://github.com/nextcloud/mail/commit/b3ebb2787814f4c075f495b1eb04ea66f00dee2a))\n* update wording for mailvelope ([b51ed32](https://github.com/nextcloud/mail/commit/b51ed32d53b4336ab7d7aa76d366a557f09738ce))\n* white space between section titles ([9469c7b](https://github.com/nextcloud/mail/commit/9469c7be51d0743cb722f110263700d126cb218c))\n\n\n### Features\n\n* adjust background sync on user activity ([febaba1](https://github.com/nextcloud/mail/commit/febaba187da4dd60410ccfad738fe80d5af619fa))\n* **ai-integration:** detect if message needs translation ([4a2b238](https://github.com/nextcloud/mail/commit/4a2b2389f31f084d8b7856f4a4bd84ed22c27f41))\n* **deps:** add Nextcloud 33 support ([df5795d](https://github.com/nextcloud/mail/commit/df5795dab59e95fd43a00e84c82544ada65a43ea))\n* introduce quick actions ([cc1047c](https://github.com/nextcloud/mail/commit/cc1047c7c884711144e229174914c102f8a5fd13))\n* make summary thread similar to normal thread style ([997c19e](https://github.com/nextcloud/mail/commit/997c19e0553c9ee7ecc244e778c006e849d2ea8f))\n* make thread elements have the same space around it ([ec2173c](https://github.com/nextcloud/mail/commit/ec2173c77ab9a6266dbb3499a32350df8b7d180f))\n* quick actions frontend ([97fb6a5](https://github.com/nextcloud/mail/commit/97fb6a516ba8510c054e9e7740f5bce72601f563))\n* reply message with meeting ([37be07c](https://github.com/nextcloud/mail/commit/37be07c664b5b3aad2c4d9135f9412766edd7cd1))\n* split envelopes by time of arrival ([eaa7405](https://github.com/nextcloud/mail/commit/eaa740528c1284b79aa3291bcbfd20f907608f64))\n* **ui:** add fluid design ([85f0628](https://github.com/nextcloud/mail/commit/85f06283836e7243496c20d37d2565aafcb0f6ea))\n\n\n\n# [5.2.0-beta.1](https://github.com/nextcloud/mail/compare/v5.2.0-alpha.1...v5.2.0-beta.1) (2025-08-04)\n\n\n### Bug Fixes\n\n* add html and source editing support ([ff1f7d8](https://github.com/nextcloud/mail/commit/ff1f7d885c3c06850e08e969c5b6b35af8bc8c81))\n* add translator note for account settings folder search ([a702a23](https://github.com/nextcloud/mail/commit/a702a233388163a3898b993bb0d5a43415e28192))\n* **avatar:** handle null bodies ([b8f452b](https://github.com/nextcloud/mail/commit/b8f452bba27a059681f33b7842aa2b5c0ab2cc57))\n* avoid invalid false return type ([d0f4b55](https://github.com/nextcloud/mail/commit/d0f4b556531a1271f11f3164093eb62699f48a28))\n* button aria label and roles ([e38d831](https://github.com/nextcloud/mail/commit/e38d831869cbf9ef38d951b3c2d6fa3da2c0790d))\n* **caldav:** invalid import of davclient ([376942d](https://github.com/nextcloud/mail/commit/376942d81cf95b462196aca6f629f7bfc258a24c))\n* **classification:** use global default for new messages too ([d4e171b](https://github.com/nextcloud/mail/commit/d4e171bdac87390067fe5f4b0db10adef1dfcbe7))\n* close modal when send is clicked ([3ef6947](https://github.com/nextcloud/mail/commit/3ef694729bfbba27767b70c5219d772e2553c8fa))\n* **composer:** allow attaching shared files again ([214680a](https://github.com/nextcloud/mail/commit/214680adb43fd6216dd7c8ab8da5595e48c8c718))\n* **deps:** Apply npm audit fix ([3c447b7](https://github.com/nextcloud/mail/commit/3c447b769a2b9e296ab8ac8adb91a1f15b0601a4))\n* **deps:** Apply npm audit fix ([3822226](https://github.com/nextcloud/mail/commit/3822226ff7cde3f6d616b3a904888517b452ab8c))\n* **deps:** Apply npm audit fix ([6e90100](https://github.com/nextcloud/mail/commit/6e9010004196f21b30da57773e4eb6ff688fc063))\n* **deps:** Apply npm audit fix ([f538159](https://github.com/nextcloud/mail/commit/f538159f3abf69672a4df4498862b88676bc9c92))\n* **deps:** bump @iframe-resizer/child from 5.4.6 to ^5.4.7 (main) ([#11374](https://github.com/nextcloud/mail/issues/11374)) ([41547fa](https://github.com/nextcloud/mail/commit/41547faa6bd9e9e672d49e5659e48b3f74aadf37))\n* **deps:** bump @iframe-resizer/child from 5.4.7 to ^5.5.0 (main) ([#11430](https://github.com/nextcloud/mail/issues/11430)) ([b0947e6](https://github.com/nextcloud/mail/commit/b0947e64704972de8e2229d3ad0c0c1446ce0d17))\n* **deps:** bump @iframe-resizer/parent from 5.4.6 to ^5.4.7 (main) ([#11375](https://github.com/nextcloud/mail/issues/11375)) ([c9fc35a](https://github.com/nextcloud/mail/commit/c9fc35aad941303316dada6e9508cf98d475b2e8))\n* **deps:** bump @nextcloud/auth from 2.5.1 to ^2.5.2 (main) ([#11376](https://github.com/nextcloud/mail/issues/11376)) ([c15e8c3](https://github.com/nextcloud/mail/commit/c15e8c308336cc7645934f090c70ceb069667145))\n* **deps:** bump @nextcloud/calendar-js from 8.1.2 to ^8.1.3 ([4c8363e](https://github.com/nextcloud/mail/commit/4c8363e9c3b36fef917b310e9c21092e37b52cb9))\n* **deps:** bump @nextcloud/calendar-js from 8.1.3 to ^8.1.4 ([378405e](https://github.com/nextcloud/mail/commit/378405e2a7967ad795507275a4753af0cbaaf622))\n* **deps:** bump @nextcloud/cdav-library from 1.5.3 to v2 ([08bff41](https://github.com/nextcloud/mail/commit/08bff4199ee5f1e3adfde894d4aaccbe7dafecdb))\n* **deps:** bump @nextcloud/cdav-library from 2.1.0 to ^2.1.1 (main) ([#11409](https://github.com/nextcloud/mail/issues/11409)) ([2914a63](https://github.com/nextcloud/mail/commit/2914a6312556302b179eb602888bf31921d05d4d))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to v6 ([53cfc3e](https://github.com/nextcloud/mail/commit/53cfc3ef45446903a13c70cb3dae76bc5a878195))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.3.0 (main) ([#11227](https://github.com/nextcloud/mail/issues/11227)) ([ed941e8](https://github.com/nextcloud/mail/commit/ed941e86f1dcbc8e81da99417e406eb83ebb0649))\n* **deps:** bump @nextcloud/l10n from 3.4.0 to ^3.4.0 (main) ([#11427](https://github.com/nextcloud/mail/issues/11427)) ([e9f785c](https://github.com/nextcloud/mail/commit/e9f785c9d532fe21fd77a52d288702f1cf9240e2))\n* **deps:** bump @nextcloud/moment from 1.3.4 to ^1.3.5 (main) ([#11410](https://github.com/nextcloud/mail/issues/11410)) ([29f0f8e](https://github.com/nextcloud/mail/commit/29f0f8ef908e2c70ebec94d0aac6e52795f565ef))\n* **deps:** bump @nextcloud/sharing from 0.2.4 to ^0.2.5 ([f4f3535](https://github.com/nextcloud/mail/commit/f4f35358b044213e2938a1a9bf5412fed7f94323))\n* **deps:** bump @nextcloud/vue from 8.27.0 to ^8.27.0 ([ef701cb](https://github.com/nextcloud/mail/commit/ef701cbf0c216469ee16012e50bc08759e80658d))\n* **deps:** bump amphp/parallel and amphp/process for PHP8.4 compat ([8d0ef72](https://github.com/nextcloud/mail/commit/8d0ef72c8fe3b840a7a17c31159ee18d58453438))\n* **deps:** bump core-js from 3.42.0 to ^3.43.0 (main) ([#11256](https://github.com/nextcloud/mail/issues/11256)) ([8b9a531](https://github.com/nextcloud/mail/commit/8b9a531b9c7d8dfefe221a1bff30aaac0254d87d))\n* **deps:** bump dompurify from 3.2.5 to ^3.2.6 (main) ([#11180](https://github.com/nextcloud/mail/issues/11180)) ([fbbf4bf](https://github.com/nextcloud/mail/commit/fbbf4bfd15000113755fa37d76634683c10282d1))\n* **deps:** bump form-data to v4.0.4 ([71d52ca](https://github.com/nextcloud/mail/commit/71d52ca16c25bc19f5e84f54c41bca8433706d03))\n* **deps:** bump ical.js from 2.1.0 to ^2.2.0 (main) ([#11343](https://github.com/nextcloud/mail/issues/11343)) ([10d46f5](https://github.com/nextcloud/mail/commit/10d46f5714f081a487a84cdae353e23fb266c7fc))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.3 to ^1.0.4 (main) ([#11181](https://github.com/nextcloud/mail/issues/11181)) ([cc4b6af](https://github.com/nextcloud/mail/commit/cc4b6afa0dca2559be3f7253c7d41598c833b5d3))\n* **deps:** bump ramda from 0.30.1 to ^0.31.3 ([0f5d1cb](https://github.com/nextcloud/mail/commit/0f5d1cba25f079fb36ca802ed37872c05b2f9d66))\n* **deps:** bump stylelint from 16.19.1 to ^16.20.0 (main) ([#11248](https://github.com/nextcloud/mail/issues/11248)) ([0d95338](https://github.com/nextcloud/mail/commit/0d95338d7597d7f77d691ea921a6bc8e295cd01c))\n* **deps:** bump webdav from 4.11.4 to v4.11.5 (main) ([#11246](https://github.com/nextcloud/mail/issues/11246)) ([6359d2b](https://github.com/nextcloud/mail/commit/6359d2b9e6e1c7ca9fa6b40343b62b9ee4cea1b4))\n* **dns:** Update public suffix list ([6096398](https://github.com/nextcloud/mail/commit/6096398a88ea3065ddf48afa895d1a70c6e9d4fd))\n* **dns:** Update public suffix list ([990031a](https://github.com/nextcloud/mail/commit/990031a8be090ff5fe55bab5647f8be921d0536f))\n* **dns:** Update public suffix list ([5ea2259](https://github.com/nextcloud/mail/commit/5ea2259e2963106d27fcdae78119b43fa322d0a5))\n* **dns:** Update public suffix list ([fb7762c](https://github.com/nextcloud/mail/commit/fb7762c3ac5fe23845b04540b0a7f63211055791))\n* **dns:** Update public suffix list ([f8bf4ec](https://github.com/nextcloud/mail/commit/f8bf4eccbd37a6a529d365e4d7e60889f9b56b08))\n* don't propagate click event on reply ([56ac6af](https://github.com/nextcloud/mail/commit/56ac6af0c3f2f738d64797538530c84f66c9a008))\n* **filters:** Use contains operator for from and to header ([8d79ff2](https://github.com/nextcloud/mail/commit/8d79ff231cec394d4e90b2b429f1df8e55650936))\n* html message alignment ([7fde440](https://github.com/nextcloud/mail/commit/7fde440d186faf3bf7724144d56b169db7f03ade))\n* **imip:** hide warning about email mismatch for imip replies ([aca57c4](https://github.com/nextcloud/mail/commit/aca57c45338b542899c25ec02c6172bca66982fa))\n* **imip:** process imip messages more frequently ([881c2a5](https://github.com/nextcloud/mail/commit/881c2a593dffa9dfe3c30cdb0a59103ed1f02623))\n* invitation title on small screen ([d268bb8](https://github.com/nextcloud/mail/commit/d268bb8f5e7e5b4c2f68020a7033f9b02fdecf8a))\n* **l10n:** remove trailing space and allow RTL for drafts ([a9acabc](https://github.com/nextcloud/mail/commit/a9acabca1240eeb2d96c32611beed708e5a958c6))\n* **l10n:** Update translations from Transifex ([f341e23](https://github.com/nextcloud/mail/commit/f341e236d868d252d930f90d5aa407a9d775598f))\n* **l10n:** Update translations from Transifex ([7520191](https://github.com/nextcloud/mail/commit/7520191dfbc3b848bb990fd0c8dab0fcebc2ca8c))\n* **l10n:** Update translations from Transifex ([c9eb41d](https://github.com/nextcloud/mail/commit/c9eb41d382944c6293b222f9daff982836437d6f))\n* **l10n:** Update translations from Transifex ([34ee755](https://github.com/nextcloud/mail/commit/34ee75530288bda133637101eb5a5dad1f22a82e))\n* **l10n:** Update translations from Transifex ([be60d8b](https://github.com/nextcloud/mail/commit/be60d8bd43af9455a44e678bd06359a7cb9532c2))\n* **l10n:** Update translations from Transifex ([b1d0931](https://github.com/nextcloud/mail/commit/b1d0931b0d85fec5d76740446836f5d086d929da))\n* **l10n:** Update translations from Transifex ([0911657](https://github.com/nextcloud/mail/commit/0911657911162a5fec675b22b38510bde70fdc18))\n* **l10n:** Update translations from Transifex ([b0aa0c8](https://github.com/nextcloud/mail/commit/b0aa0c8edbf4c77d061976a2513e6d17a8fc7944))\n* **l10n:** Update translations from Transifex ([8d02123](https://github.com/nextcloud/mail/commit/8d021232fc5a74ebe9f706e4bd0f0c9d0b165ae0))\n* **l10n:** Update translations from Transifex ([4e860ae](https://github.com/nextcloud/mail/commit/4e860aed21035bd4dc49ea699c1fd25436cd3c4b))\n* **l10n:** Update translations from Transifex ([fe04747](https://github.com/nextcloud/mail/commit/fe047476f447551da02d066ee5f0d4015ae0ab94))\n* **l10n:** Update translations from Transifex ([6568fd8](https://github.com/nextcloud/mail/commit/6568fd8858fac930eb67e45c0fbea675439c21c1))\n* **l10n:** Update translations from Transifex ([a79ef67](https://github.com/nextcloud/mail/commit/a79ef6780061910d8010a5fb5d881656202f2f5d))\n* **l10n:** Update translations from Transifex ([2590c76](https://github.com/nextcloud/mail/commit/2590c76c2dbb8ea52435f6e648a51d104c590a0b))\n* **l10n:** Update translations from Transifex ([b741e2d](https://github.com/nextcloud/mail/commit/b741e2d0da217a63bcfd3cdbe0edfe97357b1824))\n* **l10n:** Update translations from Transifex ([45cbe3f](https://github.com/nextcloud/mail/commit/45cbe3f8ef9c3e855ddbeed2487811d767c8c0a0))\n* **l10n:** Update translations from Transifex ([ee76fff](https://github.com/nextcloud/mail/commit/ee76fffca11451414c40b60bad49e4486e49de81))\n* **l10n:** Update translations from Transifex ([4dd274f](https://github.com/nextcloud/mail/commit/4dd274ffe670e752b8ccaf0415e866e9f16b2744))\n* **l10n:** Update translations from Transifex ([6002661](https://github.com/nextcloud/mail/commit/600266130fd8d931e46359c4b8c18ca94b248a83))\n* **l10n:** Update translations from Transifex ([c92032c](https://github.com/nextcloud/mail/commit/c92032c7f08fcc59a223dc621a2ac218e43aa208))\n* **l10n:** Update translations from Transifex ([5d4a2be](https://github.com/nextcloud/mail/commit/5d4a2becb7e8bbce8788579af155a712f4933a60))\n* **l10n:** Update translations from Transifex ([5b2695e](https://github.com/nextcloud/mail/commit/5b2695e63cbc07dd56eae99a51b36d6745a67e56))\n* **l10n:** Update translations from Transifex ([3f79191](https://github.com/nextcloud/mail/commit/3f79191fdf2a68f164ded7233fa7da7eac056945))\n* **l10n:** Update translations from Transifex ([4e381eb](https://github.com/nextcloud/mail/commit/4e381ebbaf99b182867efcadef2f00fb596768de))\n* **l10n:** Update translations from Transifex ([5d13aac](https://github.com/nextcloud/mail/commit/5d13aacd343883b2c7ace01db7280a0664c0a6e4))\n* **l10n:** Update translations from Transifex ([d82e8f3](https://github.com/nextcloud/mail/commit/d82e8f3c3398ad54c921217f5b1238dc8683bebc))\n* **l10n:** Update translations from Transifex ([b8bcc35](https://github.com/nextcloud/mail/commit/b8bcc35a47105712031485bd0660503c709bafa9))\n* **l10n:** Update translations from Transifex ([98f36b1](https://github.com/nextcloud/mail/commit/98f36b146dd5ccc8ba6a22717349185a0429759a))\n* **l10n:** Update translations from Transifex ([a64a503](https://github.com/nextcloud/mail/commit/a64a50389ccb64786ad7078641d453468b6da152))\n* **l10n:** Update translations from Transifex ([3a7babe](https://github.com/nextcloud/mail/commit/3a7babefc2c3c76c69cc89caf4eb88f89b3c14cf))\n* **l10n:** Update translations from Transifex ([7e8dfe2](https://github.com/nextcloud/mail/commit/7e8dfe265a2a5ad9d767bcd062ebcd7fa3810971))\n* **l10n:** Update translations from Transifex ([e5de9ef](https://github.com/nextcloud/mail/commit/e5de9ef94d16d1c7605dd93d1ef71ceabdeb9bf4))\n* **l10n:** Update translations from Transifex ([5e1fb1c](https://github.com/nextcloud/mail/commit/5e1fb1c549ee5436974393f2a5a957b3094847c6))\n* **l10n:** Update translations from Transifex ([0e37608](https://github.com/nextcloud/mail/commit/0e376080c9bc14146fd0b1db06472c5aa47b64ab))\n* **l10n:** Update translations from Transifex ([1ad5068](https://github.com/nextcloud/mail/commit/1ad5068566ed773876a7f6c7a92baab925438fe1))\n* **l10n:** Update translations from Transifex ([ebfc9c0](https://github.com/nextcloud/mail/commit/ebfc9c0b13e558e88cf7e11677fb32354931ba1d))\n* **l10n:** Update translations from Transifex ([ddd3fd3](https://github.com/nextcloud/mail/commit/ddd3fd3e0318fc102dcb2dfd14e348408cda6181))\n* **l10n:** Update translations from Transifex ([899046c](https://github.com/nextcloud/mail/commit/899046c5345fc682f11f2c938f1971789fe5e9fe))\n* **l10n:** Update translations from Transifex ([e21d952](https://github.com/nextcloud/mail/commit/e21d9529f8659534c0645ab9b056094af1dafbcb))\n* **l10n:** Update translations from Transifex ([6ee4694](https://github.com/nextcloud/mail/commit/6ee4694cad7f8605e1df3951b9e15b627c611e77))\n* **l10n:** Update translations from Transifex ([8ddec2b](https://github.com/nextcloud/mail/commit/8ddec2b73fee49c931f05fc3e80fd1aa2c369c88))\n* **l10n:** Update translations from Transifex ([7f67183](https://github.com/nextcloud/mail/commit/7f67183afb452d490f705124b98f3e4930c1e3dd))\n* **l10n:** Update translations from Transifex ([646c18a](https://github.com/nextcloud/mail/commit/646c18a82da017dc0d1a0dc86f54015a90932e32))\n* **l10n:** Update translations from Transifex ([ac1afec](https://github.com/nextcloud/mail/commit/ac1afec69835c489c4f71266d8cb66495a57ba4d))\n* **l10n:** Update translations from Transifex ([31a5a3c](https://github.com/nextcloud/mail/commit/31a5a3c4e321f891470bd9b42211d8a0f9280b74))\n* **l10n:** Update translations from Transifex ([d8e8c0a](https://github.com/nextcloud/mail/commit/d8e8c0a7d8b9d256faa8e76e6764ae3342970637))\n* **l10n:** Update translations from Transifex ([ddb6ffb](https://github.com/nextcloud/mail/commit/ddb6ffb4754cf6290aa814e88e89738a2dd1faf3))\n* **l10n:** Update translations from Transifex ([9ab75d1](https://github.com/nextcloud/mail/commit/9ab75d104a0fee24fa02aa31d216fc74b0351726))\n* **l10n:** Update translations from Transifex ([497cb7e](https://github.com/nextcloud/mail/commit/497cb7e54e77cc4c675b43a25aafd57e58b66157))\n* **l10n:** Update translations from Transifex ([b01ef9a](https://github.com/nextcloud/mail/commit/b01ef9ab50e6cdbf1e6a0060c20aaa9cd9ff6186))\n* **l10n:** Update translations from Transifex ([5f70139](https://github.com/nextcloud/mail/commit/5f70139b99c827130cb6c2b58d1b29990eb08762))\n* **l10n:** Update translations from Transifex ([8cc0405](https://github.com/nextcloud/mail/commit/8cc0405371a59dca96eafd2dc5242ddef334e53e))\n* **l10n:** Update translations from Transifex ([3e67a02](https://github.com/nextcloud/mail/commit/3e67a025d0f7d17f11e84384bff2da22091f92d7))\n* **l10n:** Update translations from Transifex ([2956088](https://github.com/nextcloud/mail/commit/29560884296487375d06376251ef50eb20621476))\n* **l10n:** Update translations from Transifex ([2065780](https://github.com/nextcloud/mail/commit/2065780937de85c82a9fcbb4da664689687dfdff))\n* **l10n:** Update translations from Transifex ([c4ddfe3](https://github.com/nextcloud/mail/commit/c4ddfe3aa011b9aec0651ee891b69aaf6ce0774e))\n* **l10n:** Update translations from Transifex ([fdabd4a](https://github.com/nextcloud/mail/commit/fdabd4a217c424faf3a3a84f47fc4836af84d6a9))\n* **l10n:** Update translations from Transifex ([d4f1083](https://github.com/nextcloud/mail/commit/d4f10833dc3f04b45db0027cf3c6804d2295739f))\n* **l10n:** Update translations from Transifex ([1835be7](https://github.com/nextcloud/mail/commit/1835be760385d968bb3b089a454e5c668630d10d))\n* **l10n:** Update translations from Transifex ([f366a5d](https://github.com/nextcloud/mail/commit/f366a5dd0fc3a308f679dfbc96876a70b2d0b081))\n* **l10n:** Update translations from Transifex ([dea6367](https://github.com/nextcloud/mail/commit/dea63678030c407b81d5aaa19bfeee938a3cbdc3))\n* **l10n:** Update translations from Transifex ([f559247](https://github.com/nextcloud/mail/commit/f559247a9a1f3ffc3be1ec9147a3005803796683))\n* **l10n:** Update translations from Transifex ([4535685](https://github.com/nextcloud/mail/commit/4535685d63e02cb95a65db799c7d6be760f7846c))\n* list layout height ([006fe78](https://github.com/nextcloud/mail/commit/006fe78cc1e666ecc57169bededb5cb2824d4514))\n* load-more button alignment ([1a56aa2](https://github.com/nextcloud/mail/commit/1a56aa29f790b9e4866fd3f161729524753a469f))\n* mail heading on settings shouldnt be skipped ([c34fb46](https://github.com/nextcloud/mail/commit/c34fb46e0cfbaf41a756948a8a8ac903ee5aaeeb))\n* mailvelope button colour text ([5aff985](https://github.com/nextcloud/mail/commit/5aff9858bc3096ce1010fa76a448bb1e0ee1b0f1))\n* make accounts property reactive ([6054a9a](https://github.com/nextcloud/mail/commit/6054a9a943dadfe177ff7418e6a1fafc078cbc40))\n* make saving account settings work again ([9740e56](https://github.com/nextcloud/mail/commit/9740e5618fef1b7d51831572dfa82f56f44204fd))\n* moving messages without a message id on servers without UIDPLUS ([1c8a90e](https://github.com/nextcloud/mail/commit/1c8a90ed5f526c05079efb1ffeca373bb0abb4c2))\n* **outbox:** outbox do not render ([31be037](https://github.com/nextcloud/mail/commit/31be037d648adc605e7ea1ec2d16648eea297ad1))\n* prevent invalid return type ([172de5e](https://github.com/nextcloud/mail/commit/172de5e3445b8be9b06ab118e9ebdf6e84a8a21c))\n* recipient length is undefined ([f0b07b8](https://github.com/nextcloud/mail/commit/f0b07b88d96834c3d1ba6b1417800c3ec9ced7ac))\n* remove redendant css ([afd7741](https://github.com/nextcloud/mail/commit/afd774184f731a751240cadcafcaee381180af39))\n* remove source editing plugin ([070013d](https://github.com/nextcloud/mail/commit/070013dc97d053083581305182b6a45e7fcde181))\n* remove unused and broken computed menu property ([2359051](https://github.com/nextcloud/mail/commit/23590514ccc7f8d1cefd6a20bbb7fae11aa6f7a7))\n* rename collapse label ([b36dfb6](https://github.com/nextcloud/mail/commit/b36dfb6b474bcdc231d0ca96ebcde685cdb6842e))\n* **smime:** only accept certificates and keys in file input ([9778add](https://github.com/nextcloud/mail/commit/9778addf9ce767645518c112693d5f6bd804ed46))\n* **smime:** persist sign preference per alias ([4863f96](https://github.com/nextcloud/mail/commit/4863f96d3b75d792d211f9ed28f25db049e9dca2))\n* text block wording / spelling ([891d4dd](https://github.com/nextcloud/mail/commit/891d4dd34b3ea102d6107220853d13bdbb711eb3))\n* **uid:** switch back from unread circle to dot ([0ee8f3c](https://github.com/nextcloud/mail/commit/0ee8f3cf790b722ca49defe5856fdb7c35e0601d))\n* **uid:** use outline erasor icon for clear mailbox action ([dd27fa5](https://github.com/nextcloud/mail/commit/dd27fa5cdb6c06af2cc4d47ff6131a52d3ff115f))\n* **ui:** flip unread icons for envelopes ([3b6f756](https://github.com/nextcloud/mail/commit/3b6f75682ce5686a57d774f55d06215e6dd21574))\n* **ui:** give file pickers a name ([a1a4ca0](https://github.com/nextcloud/mail/commit/a1a4ca0251939d03abd50becdeab23f63a92a61a))\n* **ui:** go back to filled icons for selection and confirmation icons ([1adecd1](https://github.com/nextcloud/mail/commit/1adecd1bd3ab449dd38b358ae8f695ba64798045))\n* **ui:** make composer link attachments icon size wider ([de6ab08](https://github.com/nextcloud/mail/commit/de6ab08dd3c3b6663872ee2c12e5e540e7c12790))\n* **ui:** replace deprecated iframe resizer attribute ([d74cf2d](https://github.com/nextcloud/mail/commit/d74cf2dd7938df3842ed5e85609a37550d55a60b))\n* **ui:** show only drafts with draft prefix ([edba111](https://github.com/nextcloud/mail/commit/edba1114aa1c223331776ea2f53ae330176105ec))\n* **ui:** use filled/outline icon for the important flag ([20c57d9](https://github.com/nextcloud/mail/commit/20c57d9cc273b52b8d0242327f8cab1cab8a96ff))\n* **ui:** use outline icon for archiving actions ([a2fb5d6](https://github.com/nextcloud/mail/commit/a2fb5d640678f3fc0f88acc910a22345abb7b46f))\n* update summarizeMessages-prompt to hide any introduction ([#11278](https://github.com/nextcloud/mail/issues/11278)) ([49c83e4](https://github.com/nextcloud/mail/commit/49c83e4ba32af8b86c9644da35ec9dedfaddec33))\n\n\n### Features\n\n* add more formatting features on ckeditor ([60d0ed6](https://github.com/nextcloud/mail/commit/60d0ed637f2ac15d7af6902bd4afe23af4b13007))\n* add OCS routes for mailbox and mail listing ([0b86510](https://github.com/nextcloud/mail/commit/0b86510877a97236c5f81bbad3bb3a1deb2e657c))\n* Allow disabling of threaded view ([084cc67](https://github.com/nextcloud/mail/commit/084cc6768aa3f118c4b233b68b57eee5d698818d))\n* change mailbox text to folder ([9287321](https://github.com/nextcloud/mail/commit/9287321f9bdf0e5ea9d50b38a0ea927b5061a9ee))\n* **composer:** suggest recipients from own identities ([6fc54b4](https://github.com/nextcloud/mail/commit/6fc54b4c246ce6083fe3b5755e44eb6a134f2132))\n* make message source modal larger ([e397eb3](https://github.com/nextcloud/mail/commit/e397eb385b101e8ed358f8f5fe10b965d3051c7a))\n* **sieve:** create a mail filter from a message ([11b2d07](https://github.com/nextcloud/mail/commit/11b2d070f661c852dfb4f1332e062be3f226bdbe))\n* start loading additional envelopes earlier ([3663164](https://github.com/nextcloud/mail/commit/36631649f354b8ff5d04cf24634de06586a067de))\n* text blocks ([fcbfc63](https://github.com/nextcloud/mail/commit/fcbfc63cca57f2f6bdb0d309b428606193ddca68))\n* thread list shouldnt reload when searching ([665b3dd](https://github.com/nextcloud/mail/commit/665b3dd000d244b450658fed64bc6231c1c25f25))\n* **ui:** switch to outline icons where possible ([e55bf97](https://github.com/nextcloud/mail/commit/e55bf97db580a14d9b218e87cf8f2f23b1be5242))\n\n\n### Performance Improvements\n\n* cache pre-fetched mailboxes on the HTTP level ([0c4ac27](https://github.com/nextcloud/mail/commit/0c4ac2724a525aa52924233713e7f9c5b458f1d0))\n* improve quota loading for accounts ([2a9b9ae](https://github.com/nextcloud/mail/commit/2a9b9aed4229ab702f08f966bd4cb3c2b7d53ea8))\n* prefetch other mailboxes in the background ([2957ec5](https://github.com/nextcloud/mail/commit/2957ec50b375e19633dd6ef4e0b936f160300de1))\n* reduce number of avatar requests ([9e08477](https://github.com/nextcloud/mail/commit/9e08477c5cb515edcdeed81944aca009e902b51d))\n\n\n\n# [5.2.0-alpha.1](https://github.com/nextcloud/mail/compare/v5.0.0-dev.1...v5.2.0-alpha.1) (2025-05-20)\n\n\n### Bug Fixes\n\n* ckeditor buttons dont show up correctly ([567e8b0](https://github.com/nextcloud/mail/commit/567e8b0157793d3ae0e836331bba4ff78749cdcc))\n* **composer:** handling of plain and html bodies ([58c48ad](https://github.com/nextcloud/mail/commit/58c48ad0f20ac1487dcd0cf653b0a3a52506f45c))\n* define appName and app version ([1938df0](https://github.com/nextcloud/mail/commit/1938df0e62cced0244fb3ac364bbb279a86497d8))\n* **deps:** Apply npm audit fix ([c73ec4d](https://github.com/nextcloud/mail/commit/c73ec4d1596571bf08ee6d3e2b19cd55efba4217))\n* **deps:** bump @iframe-resizer/child from 5.4.2 to ^5.4.4 (main) ([#10981](https://github.com/nextcloud/mail/issues/10981)) ([42eaa20](https://github.com/nextcloud/mail/commit/42eaa20014667443471af4546c64b4ab5be14fd1))\n* **deps:** bump @iframe-resizer/child from 5.4.4 to ^5.4.5 (main) ([#11020](https://github.com/nextcloud/mail/issues/11020)) ([a40ed7b](https://github.com/nextcloud/mail/commit/a40ed7bbcef0c6d73f8ef805122f5942031a63d3))\n* **deps:** bump @iframe-resizer/child from 5.4.5 to ^5.4.6 (main) ([#11044](https://github.com/nextcloud/mail/issues/11044)) ([1059d5a](https://github.com/nextcloud/mail/commit/1059d5a241d9305d17ce7a1e6a26901c6c22f9f9))\n* **deps:** bump @iframe-resizer/parent from 5.4.3 to ^5.4.4 (main) ([#10982](https://github.com/nextcloud/mail/issues/10982)) ([e6b685c](https://github.com/nextcloud/mail/commit/e6b685c35676761d1201e743804ca6418c385234))\n* **deps:** bump @iframe-resizer/parent from 5.4.4 to ^5.4.5 (main) ([#11021](https://github.com/nextcloud/mail/issues/11021)) ([c9f315b](https://github.com/nextcloud/mail/commit/c9f315ba6073d98b57893d0f91a1296b118569a1))\n* **deps:** bump @iframe-resizer/parent from 5.4.5 to ^5.4.6 (main) ([#11045](https://github.com/nextcloud/mail/issues/11045)) ([6d3e064](https://github.com/nextcloud/mail/commit/6d3e06430f71f097670a611402d398797f36e960))\n* **deps:** bump @nextcloud/auth from 2.4.0 to ^2.5.1 (main) ([#11138](https://github.com/nextcloud/mail/issues/11138)) ([3377509](https://github.com/nextcloud/mail/commit/33775097ecf80c2ae0ef3eee89c209a24077b9d6))\n* **deps:** bump @nextcloud/l10n from 3.2.0 to ^3.2.0 ([4fff529](https://github.com/nextcloud/mail/commit/4fff529156ca9c8892bb3c7dc93b230d07b92927))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.4 (main) ([#11098](https://github.com/nextcloud/mail/issues/11098)) ([2df3423](https://github.com/nextcloud/mail/commit/2df3423153dc8aad40dfc9a54227f049711f58a9))\n* **deps:** bump @nextcloud/vue from 8.23.1 to ^8.25.1 ([3d96e54](https://github.com/nextcloud/mail/commit/3d96e54a032a4e089aa70bdccad002246450aab9))\n* **deps:** bump @nextcloud/vue from 8.25.1 to ^8.26.0 ([986ca1c](https://github.com/nextcloud/mail/commit/986ca1c273427030d1c90b020b28d72a6bd77aaf))\n* **deps:** bump @nextcloud/vue from 8.26.0 to ^8.26.1 ([d66a6b0](https://github.com/nextcloud/mail/commit/d66a6b09eb906f7e7939fad6e089e7c3872e0db4))\n* **deps:** bump bytestream/horde-imap-client from 2.33.5 to ^2.33.6 (main) ([#11099](https://github.com/nextcloud/mail/issues/11099)) ([ebdb084](https://github.com/nextcloud/mail/commit/ebdb084abfb774d7f18554091c659585cf6b369d))\n* **deps:** bump calendar-js and timezones ([e8a79d7](https://github.com/nextcloud/mail/commit/e8a79d7b5cbf888fd242aac68468c930af382a9e))\n* **deps:** bump core-js from 3.41.0 to ^3.42.0 (main) ([#11092](https://github.com/nextcloud/mail/issues/11092)) ([c0c4beb](https://github.com/nextcloud/mail/commit/c0c4bebfc0fca4153023e639d6d49ae794c2745d))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.5 (main) ([#11005](https://github.com/nextcloud/mail/issues/11005)) ([6a72602](https://github.com/nextcloud/mail/commit/6a726028d9cc8412d4e969c1e12fbced0ab7a1f6))\n* **deps:** bump iframe-resizer from 5.3.3 to ^5.4.6 (main) ([#11093](https://github.com/nextcloud/mail/issues/11093)) ([e4f36be](https://github.com/nextcloud/mail/commit/e4f36be14c6b9d51a84f85c05ee949cf59d21abd))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.1 to ^6.4.0 (main) ([#11106](https://github.com/nextcloud/mail/issues/11106)) ([aaae668](https://github.com/nextcloud/mail/commit/aaae668160421df359e699641e9f7081b8a73483))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to v2 ([e716eea](https://github.com/nextcloud/mail/commit/e716eeaa04ef5618b824117e54a92b4b6e6207f8))\n* **deps:** bump stylelint from 16.16.0 to ^16.19.1 (main) ([#11102](https://github.com/nextcloud/mail/issues/11102)) ([eec3762](https://github.com/nextcloud/mail/commit/eec376250ee2b1a4042cb2268ae0005928b0a504))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 44.2.1 to 44.2.1 ([1684833](https://github.com/nextcloud/mail/commit/16848331e0896068e6858a863ffa77171e4edbe2))\n* **deps:** update ckeditor dev utils to 44 ([22a8e56](https://github.com/nextcloud/mail/commit/22a8e56dd32edb7bf973a4b91c300e33229c9c41))\n* **deps:** update vulnerable babel packages ([4c9d2c1](https://github.com/nextcloud/mail/commit/4c9d2c1de566ec41f38c71aef6c800223e48e994))\n* **dns:** Update public suffix list ([19806ea](https://github.com/nextcloud/mail/commit/19806ea55be671cad2f5050f804e3be7e651ce97))\n* **dns:** Update public suffix list ([495a20c](https://github.com/nextcloud/mail/commit/495a20cb6440b425cfcff96449ec20f5a0a7e51a))\n* **dns:** Update public suffix list ([228c719](https://github.com/nextcloud/mail/commit/228c71973ea28c614e5e8835b0426365fe031a7a))\n* don't show important or unread emails in trash ([ce2f949](https://github.com/nextcloud/mail/commit/ce2f9497f9a76c27d550a9bb9177eb4067a5eee9))\n* handle recurring events and show better message to user ([a7dce92](https://github.com/nextcloud/mail/commit/a7dce926c8a649b7c980394b29b52315a96d0c65))\n* **imap:** handle password decryption exception ([033433b](https://github.com/nextcloud/mail/commit/033433bc497ef14f33417ddbee93e6252578032a))\n* **imip:** use default calendar if possible ([3cdd8d3](https://github.com/nextcloud/mail/commit/3cdd8d3fcf92d0764f4c94c6014348aa0cf160dc))\n* **l10n:** Update translations from Transifex ([452383d](https://github.com/nextcloud/mail/commit/452383da63f708a1579fc691e4b891c14df9792a))\n* **l10n:** Update translations from Transifex ([df74690](https://github.com/nextcloud/mail/commit/df746905e779c8875c00ad5b929310e5333717be))\n* **l10n:** Update translations from Transifex ([6fbdad0](https://github.com/nextcloud/mail/commit/6fbdad0de9ec3c5175492a27d6f759f51aedd4a6))\n* **l10n:** Update translations from Transifex ([e8d3dbf](https://github.com/nextcloud/mail/commit/e8d3dbf6e5aba9be730f8fccd97bae7bb91de959))\n* **l10n:** Update translations from Transifex ([ccc4223](https://github.com/nextcloud/mail/commit/ccc422353ca91583ff63470f13c0c6c0993ef403))\n* **l10n:** Update translations from Transifex ([a51a5e0](https://github.com/nextcloud/mail/commit/a51a5e0fa825e5dcae81f92a08ce7dfef053c413))\n* **l10n:** Update translations from Transifex ([3de2615](https://github.com/nextcloud/mail/commit/3de2615c20d7e541b5706c2d5e221a09a4b6badf))\n* **l10n:** Update translations from Transifex ([a74e4d9](https://github.com/nextcloud/mail/commit/a74e4d93b0c9e4934eb12565133faf905df0e570))\n* **l10n:** Update translations from Transifex ([6c19578](https://github.com/nextcloud/mail/commit/6c195780892e916c360a07fd191ad1196e4878bf))\n* **l10n:** Update translations from Transifex ([0874560](https://github.com/nextcloud/mail/commit/08745605bbaa978259473cdccc5d3769d760b341))\n* **l10n:** Update translations from Transifex ([7bbcb29](https://github.com/nextcloud/mail/commit/7bbcb294612776ee56f685335b2376f0f682bc20))\n* **l10n:** Update translations from Transifex ([bae559f](https://github.com/nextcloud/mail/commit/bae559f86be5e14a01803ab14fd4e3d8620bb93c))\n* **l10n:** Update translations from Transifex ([20710d4](https://github.com/nextcloud/mail/commit/20710d41abedcf8a3a3fc0e05fd1a1fcfd1cb3a1))\n* **l10n:** Update translations from Transifex ([df20def](https://github.com/nextcloud/mail/commit/df20def233fe29f47a2a9f1a190a56a047ac88be))\n* **l10n:** Update translations from Transifex ([d07aed4](https://github.com/nextcloud/mail/commit/d07aed4ef3323e63d52b38eeb8caa429998d6ca1))\n* **l10n:** Update translations from Transifex ([ecbb3da](https://github.com/nextcloud/mail/commit/ecbb3dadf5ec8618e5dd539b2c229611c6a87a7f))\n* **l10n:** Update translations from Transifex ([cfce105](https://github.com/nextcloud/mail/commit/cfce1058c549eacb5b88f2baaaadc8dd37c8c35a))\n* **l10n:** Update translations from Transifex ([82fabe2](https://github.com/nextcloud/mail/commit/82fabe2fb5b1df86e12f9b7ac5c7b5df8a421fe0))\n* **l10n:** Update translations from Transifex ([a445ac0](https://github.com/nextcloud/mail/commit/a445ac09c8bdf5ae58e8a3ee9f6a4eb07b923159))\n* **l10n:** Update translations from Transifex ([c96ec6e](https://github.com/nextcloud/mail/commit/c96ec6e3fd719734c51430a42a680dbb7dc1b279))\n* **l10n:** Update translations from Transifex ([c59cf84](https://github.com/nextcloud/mail/commit/c59cf8449f9cef249443fcc911acb531bb386f0f))\n* **l10n:** Update translations from Transifex ([49fbc16](https://github.com/nextcloud/mail/commit/49fbc16089325d4a549a4a20e7c6f9a98c5dc1e4))\n* **l10n:** Update translations from Transifex ([a59c212](https://github.com/nextcloud/mail/commit/a59c212ebf9905bc10b12f706e1d096cc080e18d))\n* **l10n:** Update translations from Transifex ([fece38e](https://github.com/nextcloud/mail/commit/fece38e43091817273dbdfcfb75214e005fbed3f))\n* **l10n:** Update translations from Transifex ([abf1c6b](https://github.com/nextcloud/mail/commit/abf1c6b2b30939dc2ea742ae81653e537c336485))\n* **l10n:** Update translations from Transifex ([4a35bdd](https://github.com/nextcloud/mail/commit/4a35bdd379f1459228a47611ea0e03a37d28f41d))\n* **l10n:** Update translations from Transifex ([8a205d0](https://github.com/nextcloud/mail/commit/8a205d087885f74f7af092bf45d6e2d2d9ddc669))\n* **l10n:** Update translations from Transifex ([39faeeb](https://github.com/nextcloud/mail/commit/39faeebe71789e0c7babe62cad072d439e6e1622))\n* **l10n:** Update translations from Transifex ([835327e](https://github.com/nextcloud/mail/commit/835327eaa4b4fa33a060fcb8a2e760f36c7e0335))\n* mark envelope as unseen via shortcut ([35f1d1d](https://github.com/nextcloud/mail/commit/35f1d1dacada93a1198b82b3e32128467cfa45d2))\n* **mime:** ignore HTML parsing errors consistently ([0b682eb](https://github.com/nextcloud/mail/commit/0b682eb1ee1d5b61d818f478c4e457dd5391c3f7))\n* moving nested mailboxes ([41f3378](https://github.com/nextcloud/mail/commit/41f3378cbc6c2f10a6716e8d8f75eee2f3a5a878))\n* patchAccountiMutation is not defined ([a33f3b7](https://github.com/nextcloud/mail/commit/a33f3b7bdb085f0c9d8f14a1afcad7bead4858fa))\n* **phishing:** strip exactly 1 character from the end of a link string to remove brackets ([c646917](https://github.com/nextcloud/mail/commit/c64691795b497a1ab0961d4c7e9830153be43b2a))\n* prevent dragging mailboxes ([7b69ed3](https://github.com/nextcloud/mail/commit/7b69ed338b500233eb7f830a972b964c774977f0))\n* preview enhancement process job does not process messages ([680b90d](https://github.com/nextcloud/mail/commit/680b90dc7d5c7843f2755a9e60722eecc042f46d))\n* show submailboxes for filtering ([4874ee4](https://github.com/nextcloud/mail/commit/4874ee4bf7f3192e7dc98ee9165773d74e894c32))\n* show warning when creating a mailbox fails ([ecc47e0](https://github.com/nextcloud/mail/commit/ecc47e05331204f07e6ed8d4dc62eca1c55e6922))\n* **smime:** handle encoding properly when signing and encrypting ([f12ffe5](https://github.com/nextcloud/mail/commit/f12ffe50a6ebae6501d9aa798fb3959884693755))\n* **smime:** use proper binary encoding when signing messages ([646bdae](https://github.com/nextcloud/mail/commit/646bdae4ae7373783069eb6d83fa2c73d22f9ea5))\n* **ui:** handle error when saving email attachments to Files ([e4a625c](https://github.com/nextcloud/mail/commit/e4a625c459757f9622e0e31ab369ec10732f545d))\n* Undefined array key issue ([00e65cf](https://github.com/nextcloud/mail/commit/00e65cf8d8c167693662d3c7a9774988ae8f6cfe))\n* use alias name for from header ([c7a1724](https://github.com/nextcloud/mail/commit/c7a17248fd33d21cb745eda46b400faa24be2cb6))\n\n\n### Features\n\n* close modal on send ([073038d](https://github.com/nextcloud/mail/commit/073038dd4bb79c654e64167bd93416af908b4337))\n* enable account debugging for sieve ([3a9385e](https://github.com/nextcloud/mail/commit/3a9385e058d614e59dd56cb1dfdae64a7fac412c))\n* per account imap and smtp debugging ([95a96c5](https://github.com/nextcloud/mail/commit/95a96c51ea77244bb9a946a9a91a554e4907ac8f))\n\n\n### Performance Improvements\n\n* don't show skeleton for cached mailboxes ([d5b5ae5](https://github.com/nextcloud/mail/commit/d5b5ae5eb0b05b41be6656edebc9707b616d5974))\n* **imap:** avoid double login during mailbox sync ([221404a](https://github.com/nextcloud/mail/commit/221404a4108f09d3314535e3dcab80d046a01d7d))\n* reuse a single imap client for the whole send chain ([01ea8be](https://github.com/nextcloud/mail/commit/01ea8bed7188145b713dbab198fc974f8f20876b))\n* skip message skeleton if it is cached ([cd2603d](https://github.com/nextcloud/mail/commit/cd2603d7610c883785acca620fde2703668b0c8d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* **db:** Do not JOIN recipients when fetching the latest messages ([b6e5255](https://github.com/nextcloud/mail/commit/b6e52559fa1fec5eee700cd4a53d57f7390f1538))\n* **deps:** bump @iframe-resizer/child from 5.3.3 to ^5.4.2 (main) ([#10955](https://github.com/nextcloud/mail/issues/10955)) ([187a963](https://github.com/nextcloud/mail/commit/187a963720946c3ddfd734507efd1f9601c216c4))\n* **deps:** bump @iframe-resizer/parent from 5.3.3 to ^5.4.3 (main) ([#10956](https://github.com/nextcloud/mail/issues/10956)) ([b9a7373](https://github.com/nextcloud/mail/commit/b9a73732f10d9bf883c006b00a9fc6c55c0b5780))\n* **deps:** bump @nextcloud/cdav-library from 1.5.2 to ^1.5.3 (main) ([#10926](https://github.com/nextcloud/mail/issues/10926)) ([9d384ce](https://github.com/nextcloud/mail/commit/9d384ce3b9e665b1b9e3f0c4167758ed955c5905))\n* **deps:** bump sabberworm/php-css-parser from 8.7.0 to ^8.8.0 (main) ([#10927](https://github.com/nextcloud/mail/issues/10927)) ([998aad8](https://github.com/nextcloud/mail/commit/998aad8167e5eeeb0f8bbaab8379d2a2318f9156))\n* **dns:** Update public suffix list ([0d2f328](https://github.com/nextcloud/mail/commit/0d2f32877025dd52b16aa06e99f4494c90ce7d89))\n* dont summerize empty messages ([24f44f4](https://github.com/nextcloud/mail/commit/24f44f48a8e0af3a26ad90cd038901da0ca8b9da))\n* **imap:** Avoid OOM when syncing sparse mailboxes ([4d288d1](https://github.com/nextcloud/mail/commit/4d288d1096bc8cec4ff2cde38735d09b6eab922c))\n* multiselect when you hold shift ([1e40683](https://github.com/nextcloud/mail/commit/1e40683ec09b02b0269d73fe2d0236691335b8cf))\n* printing email threads and singular emails ([3b22ed5](https://github.com/nextcloud/mail/commit/3b22ed5752c0065c50643eb8591661f41b06df65))\n* translation strings in printing feature ([#10944](https://github.com/nextcloud/mail/issues/10944)) ([b293310](https://github.com/nextcloud/mail/commit/b29331032977013e62cae510d531338922703037))\n\n\n### Features\n\n* **deps:** Add PHP8.4 support ([9ce0e6d](https://github.com/nextcloud/mail/commit/9ce0e6d5923ebbcf7dac6f2423d18f172b0d6bb8))\n* **deps:** Add PHP8.4 support ([eb75307](https://github.com/nextcloud/mail/commit/eb753074fa5e6b8efd2bac2366fc3336e597984d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n\n\n\n# [5.1.0-dev.1](https://github.com/nextcloud/mail/compare/v4.2.0-beta4...v5.1.0-dev.1) (2025-03-26)\n\n\n### Bug Fixes\n\n* add title for composer actions ([d8095ff](https://github.com/nextcloud/mail/commit/d8095ffbc1f4f9987a939b51001b53a0777e3cd7))\n* Adjust TaskProcessingListener ([4ee353b](https://github.com/nextcloud/mail/commit/4ee353bea1476e2f9aeaacd5746dd7529efc0ca5))\n* Adjust TaskProcessingListener Again ([f0758c8](https://github.com/nextcloud/mail/commit/f0758c8ee6c9c9813abcc8eb54f6d912063da868))\n* allow to send attachment without setting disposition ([5fe5275](https://github.com/nextcloud/mail/commit/5fe5275c8b8b5ea648b39e346b0e1b88693e814b))\n* apostrophe issue ([032a0bf](https://github.com/nextcloud/mail/commit/032a0bf02617df793542156a0c1ded805b61d08b))\n* better help text when sieve is not enabled ([a7177b3](https://github.com/nextcloud/mail/commit/a7177b32fa882dcea0bb3ac2f015cfc8d8594073))\n* change status code from 404 to 204 for missing avatars ([92bf4ef](https://github.com/nextcloud/mail/commit/92bf4ef422c3d4fcdde0e3538dd81e020b008346))\n* **CKEditor:** show mentions ([974e964](https://github.com/nextcloud/mail/commit/974e96437796c6ba9f1c5c40886a2357f2b39f96))\n* **db:** Allow long references ([3814786](https://github.com/nextcloud/mail/commit/38147868b63719c666ba6dea05b9f55deef91c46))\n* **db:** Catch message IDs that are too long ([147d694](https://github.com/nextcloud/mail/commit/147d69436a56ee645880575cbaf0a458096d038c))\n* decoding preview texts ([945b4a2](https://github.com/nextcloud/mail/commit/945b4a2b3156ce13b4dc8c7fd4f86a121146a6c1))\n* deprecation warning ([9e6fd29](https://github.com/nextcloud/mail/commit/9e6fd2931d9c77e62658f2e491d963f663cfc622))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.2 (main) ([#10789](https://github.com/nextcloud/mail/issues/10789)) ([93f5fa1](https://github.com/nextcloud/mail/commit/93f5fa11823140870f6ce6b472d158a9b9628124))\n* **deps:** bump @nextcloud/moment from 1.3.2 to ^1.3.2 (main) ([#10595](https://github.com/nextcloud/mail/issues/10595)) ([77cf0ed](https://github.com/nextcloud/mail/commit/77cf0ed65e1f9b8b350b0ea06bbf1b57e690b897))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.23.1 ([7ab0d99](https://github.com/nextcloud/mail/commit/7ab0d996aee86ebb342cc0d32913191d59b11095))\n* **deps:** bump @pinia/testing from 0.1.7 to ^0.1.7 ([354d684](https://github.com/nextcloud/mail/commit/354d684e2ae3411b577178c613ce3a7d6fe7e3ef))\n* **deps:** bump address-rfc2822 from 2.2.2 to ^2.2.3 (main) ([#10597](https://github.com/nextcloud/mail/issues/10597)) ([d2d654d](https://github.com/nextcloud/mail/commit/d2d654d6dd18333610a3ba5e5f8df29d23c441e0))\n* **deps:** bump bytestream/horde-imap-client from 2.33.3 to ^2.33.4 (main) ([#10598](https://github.com/nextcloud/mail/issues/10598)) ([54150fd](https://github.com/nextcloud/mail/commit/54150fd0df374a258c19b0193781f48e82bd056c))\n* **deps:** bump bytestream/horde-imap-client from 2.33.4 to ^2.33.5 (main) ([#10828](https://github.com/nextcloud/mail/issues/10828)) ([984b3bf](https://github.com/nextcloud/mail/commit/984b3bf6d8e139f106c51840ab5489714ddf7a81))\n* **deps:** Bump ckeditor from 38.1.1 t0 39.0.2 ([0aee4df](https://github.com/nextcloud/mail/commit/0aee4dfd312620a3a197fa0787379f4cfb4031dc))\n* **deps:** bump ckeditor from v40 to v41 ([f7dac82](https://github.com/nextcloud/mail/commit/f7dac82d0dd6631d1f7f1ddabac0371e6a686b5a))\n* **deps:** bump ckeditor v41 to v43 ([5482184](https://github.com/nextcloud/mail/commit/5482184cd6c77060c19dcfdf1b49134f53fabf7b))\n* **deps:** bump ckeditor v43 to latest ([89d5a21](https://github.com/nextcloud/mail/commit/89d5a210ccdbe07dde8547cc766d5be42ae4547f))\n* **deps:** bump core-js from 3.39.0 to ^3.40.0 (main) ([#10623](https://github.com/nextcloud/mail/issues/10623)) ([f8d8b04](https://github.com/nextcloud/mail/commit/f8d8b040b0bc70ed6c7e369fb6cb5d329ab20b28))\n* **deps:** bump core-js from 3.40.0 to ^3.41.0 (main) ([#10819](https://github.com/nextcloud/mail/issues/10819)) ([e6bafb3](https://github.com/nextcloud/mail/commit/e6bafb371adac9e48f5443a812a91859b1125f99))\n* **deps:** bump dompurify from 3.2.3 to ^3.2.3 (main) ([#10618](https://github.com/nextcloud/mail/issues/10618)) ([7f28b26](https://github.com/nextcloud/mail/commit/7f28b267f5727e92a754eeadec5302bca3a413b0))\n* **deps:** bump dompurify from 3.2.3 to v3.2.4 (main) ([#10702](https://github.com/nextcloud/mail/issues/10702)) ([26f784f](https://github.com/nextcloud/mail/commit/26f784ff20ae107cdc5a29a310314ea4b2e96455))\n* **deps:** bump dompurify from 3.2.4 to ^3.2.4 (main) ([#10790](https://github.com/nextcloud/mail/issues/10790)) ([58d636c](https://github.com/nextcloud/mail/commit/58d636c26f40ae77bf2bd99276dfd0167448199a))\n* **deps:** bump pinia from 2.3.0 to ^2.3.1 (main) ([#10619](https://github.com/nextcloud/mail/issues/10619)) ([18c6354](https://github.com/nextcloud/mail/commit/18c6354b9214d9e74c028d911231c8ffac78ae85))\n* **deps:** bump psr/log from 3.0.2 to ^3.0.2 (main) ([#10806](https://github.com/nextcloud/mail/issues/10806)) ([629cb59](https://github.com/nextcloud/mail/commit/629cb59f7204d21c3f6c1bcca139f844916695be))\n* **deps:** bump stylelint from 16.11.0 to ^16.15.0 (main) ([#10820](https://github.com/nextcloud/mail/issues/10820)) ([e8371d3](https://github.com/nextcloud/mail/commit/e8371d3faa11966de99e3d0fb61096473163a72b))\n* **deps:** bump stylelint from 16.15.0 to ^16.16.0 (main) ([#10908](https://github.com/nextcloud/mail/issues/10908)) ([9d66ff5](https://github.com/nextcloud/mail/commit/9d66ff53cd49521768f52e64545575188027b414))\n* **deps:** Do not ship psr/log ([2f8f9bd](https://github.com/nextcloud/mail/commit/2f8f9bdbd9ec6c40fd8fe26e340da9279d74097f))\n* detect imip messages from outlook.com ([b965355](https://github.com/nextcloud/mail/commit/b96535569a5ffdf59292f8032896f4e5e5662f4c))\n* **dns:** Update public suffix list ([76cc21f](https://github.com/nextcloud/mail/commit/76cc21f94b2af56064341774f2612325dd171647))\n* **dns:** Update public suffix list ([692512b](https://github.com/nextcloud/mail/commit/692512bf8f0994985c552c70e254dd301f947411))\n* **dns:** Update public suffix list ([e981844](https://github.com/nextcloud/mail/commit/e981844ec685867fccb35fe2075e9794c40a9d67))\n* go back warining discards the reply text ([72d6a53](https://github.com/nextcloud/mail/commit/72d6a532be1dd2852612a194801f2654257206de))\n* handle 204 response ([0014941](https://github.com/nextcloud/mail/commit/0014941d48c199ced1d23bdca05fb09af4c6e572))\n* handle utf-8 strings correctly in the link detection ([d219cee](https://github.com/nextcloud/mail/commit/d219cee47b6619e27300b8ce3238b834ea946e3b))\n* harden phishing detection against missing and malformed headers ([f8338e6](https://github.com/nextcloud/mail/commit/f8338e6fa6520b5d13823af38c0be704d141627c))\n* html5 errors ([fb4fae1](https://github.com/nextcloud/mail/commit/fb4fae1863ccea0aec70bd187748b02710f4bac0))\n* **imap:** Sync mailboxes without a status ([2317686](https://github.com/nextcloud/mail/commit/2317686c91a4ec85d7e7b63914b89934cb176bf3))\n* import for getTimezoneManager ([18589f7](https://github.com/nextcloud/mail/commit/18589f703ca24cbbd39d14abe972805b7d73bb1f))\n* **mention:** Do not force SAB ([bad5a00](https://github.com/nextcloud/mail/commit/bad5a00ac570ec6af41bf531acf8a78adf96ede9))\n* **message-summary:** respect admin config ([a7434c4](https://github.com/nextcloud/mail/commit/a7434c40ec59ef928c5baaebdd77cd51bcad0b6a))\n* messagen content escaping message element ([8089ccb](https://github.com/nextcloud/mail/commit/8089ccb0f3915d57520458ecf0ce8729341cfbd4))\n* migrate preferences to initial state ([0cfce5c](https://github.com/nextcloud/mail/commit/0cfce5ce991eb830d3953d870b957ac616d012cb))\n* **migration:** make misc migrations idempotent ([d856a60](https://github.com/nextcloud/mail/commit/d856a6005c453e2cd91666941897aed3ca9cbf33))\n* outbox message not being cleared after sending ([93a5c5a](https://github.com/nextcloud/mail/commit/93a5c5a1f7b5aa32a7269ff5f4a83fd0c5aa6ea2))\n* **phishing:** Do not force the SAB ([78c2c4c](https://github.com/nextcloud/mail/commit/78c2c4cdcc08e1440a8c1b5e1073f99037ef2b4b))\n* **phishing:** Uninitialized string offset error ([fdbbc62](https://github.com/nextcloud/mail/commit/fdbbc623637f94a326f1b90166f54be8d176d792))\n* recipient label should not contain email address ([3a0ab5a](https://github.com/nextcloud/mail/commit/3a0ab5a1f131a4ae039dd43da84793f8edfff9b1))\n* reloading recipeint info when you expand and collapse the composer ([9b213ec](https://github.com/nextcloud/mail/commit/9b213ecb7a85ec22856faf345bbd582bca43c5e3))\n* remove photo property from groups integration ([66ddbd3](https://github.com/nextcloud/mail/commit/66ddbd32d9deb88d46f8e7afbd9949107ed74f06))\n* reset filter does not work ([f0e847b](https://github.com/nextcloud/mail/commit/f0e847bb47d993ce1c7cfa2b00898da14aac36fb))\n* shorten ai summaries to fit in message list better ([b28777c](https://github.com/nextcloud/mail/commit/b28777c4d49abbcec62e8a5b4fbe0c2170c51e8c))\n* show the email address as subname ([0b50b3a](https://github.com/nextcloud/mail/commit/0b50b3abde5f600e905d9386c4a1b4c091e95409))\n* **summarizeMessages:** use TextToText ([40ab10f](https://github.com/nextcloud/mail/commit/40ab10fc71eeadc30f0c3d2fcc3f6fd18d9551d9))\n* **Thread:** add error message for emails not able to be opened ([691c33e](https://github.com/nextcloud/mail/commit/691c33e687fced93cda00dc926c2dbb316385990))\n* throwing errors in ai intergration frontend service ([d8e074c](https://github.com/nextcloud/mail/commit/d8e074c75a43f41867a9ed4595a59883a60a7ff8))\n* user must scroll to view most recent message in thread ([23a544b](https://github.com/nextcloud/mail/commit/23a544bc60c4d020a783ea303f0703985e913414))\n\n\n### Features\n\n* add warning when the message has no subject ([7eea2ac](https://github.com/nextcloud/mail/commit/7eea2ac3fce6da478dceef706148ce361dd0724c))\n* check connection performance of mail service ([800e964](https://github.com/nextcloud/mail/commit/800e964c110e38411c1d7478f43abec2b54934c6))\n* **deps:** Add Nextcloud 32 support ([2c026a0](https://github.com/nextcloud/mail/commit/2c026a0af96e9645198caa356b790926becfffb2))\n* **ocs:** list accounts and aliases of current user ([8122306](https://github.com/nextcloud/mail/commit/812230641b07d8de68985e222a7c0e2e6b726c7d))\n* save the composer state per account ([b19b265](https://github.com/nextcloud/mail/commit/b19b2656a4e18871d77383fd438373adf4b0165d))\n* setup check for mail transport php-mail ([d24a009](https://github.com/nextcloud/mail/commit/d24a0090a3571961b2029a99508c13c3980afae1))\n\n\n\n# [4.2.0-beta3](https://github.com/nextcloud/mail/compare/v4.2.0-beta1...v4.2.0-beta3) (2025-01-16)\n\n\n### Bug Fixes\n\n* add ability to send alternate text (html and plain) ([3165f07](https://github.com/nextcloud/mail/commit/3165f07ffbb8fcd7f1d6feeacede0530641ce6b0))\n* **deps:** bump @nextcloud/files from 3.10.1 to ^3.10.1 (main) ([#10566](https://github.com/nextcloud/mail/issues/10566)) ([44b0c76](https://github.com/nextcloud/mail/commit/44b0c765bd5678d71d22aa5ee4b7f7c4d78fc5bc))\n* **deps:** bump @nextcloud/l10n from 2.2.0 to v3 ([280b73b](https://github.com/nextcloud/mail/commit/280b73bedd386092b09743067925506d06e3b5e1))\n* **deps:** bump @nextcloud/logger from 2.7.0 to v3 ([b72df2e](https://github.com/nextcloud/mail/commit/b72df2ec322eca7dbd58676be2c5b32035ab0b0d))\n* **dns:** Update public suffix list ([63f9e66](https://github.com/nextcloud/mail/commit/63f9e66a9878f28ed337e04a64aae12bbc68c782))\n* **translationService:** correct API reading ([19baf3e](https://github.com/nextcloud/mail/commit/19baf3e8b6191a4d39e1cf21f79c8718a5a025c9))\n\n\n\n# [4.2.0-beta1](https://github.com/nextcloud/mail/compare/v4.2.0-alpha2...v4.2.0-beta1) (2025-01-14)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([879476b](https://github.com/nextcloud/mail/commit/879476b228b6ca8830e4715f7afd04a294cf7006))\n* **deps:** Apply npm audit fix ([f4eaffb](https://github.com/nextcloud/mail/commit/f4eaffbfde5ebfe6724cfe8498cb157de126ce41))\n* **deps:** bump @nextcloud/vue from 8.22.0 to ^8.22.0 ([1c577e4](https://github.com/nextcloud/mail/commit/1c577e48eacc2206ea8cee427b9336fe2ea4e1b2))\n* empty content position ([bd9de95](https://github.com/nextcloud/mail/commit/bd9de953253505de1a13ec4493f7211752e98dc4))\n* Restrict allowed JSON response HTTP codes ([5620710](https://github.com/nextcloud/mail/commit/56207107a75947be74188779c1f6bd0bbd5958d9))\n\n\n### Features\n\n* Add translation capabilities to mail ([638ecc5](https://github.com/nextcloud/mail/commit/638ecc5df4a7d63a7b76e0abd1721a895bd80146))\n\n\n### Performance Improvements\n\n* **ui:** Load avatar URLs with low priority ([23551cf](https://github.com/nextcloud/mail/commit/23551cf8a8bd9a4986987c13e4903793bb63e2b7))\n\n\n\n# [4.2.0-alpha1](https://github.com/nextcloud/mail/compare/v4.0.0-beta2...v4.2.0-alpha1) (2025-01-03)\n\n\n### Bug Fixes\n\n* accept avatars with image/vnd.microsoft.icon mime types ([d6cf286](https://github.com/nextcloud/mail/commit/d6cf286531011d087344e5586c52be98a575fd73))\n* **AccountForm:** RTL support ([c4dd175](https://github.com/nextcloud/mail/commit/c4dd175f77cdaa6c276d1a67badceb4f1698ed38))\n* add null check for sender in imipservice ([2885f62](https://github.com/nextcloud/mail/commit/2885f62f36773d090d839368cc1ed28a92c122e7))\n* **avatar:** Use Nextcloud HTTP client for favicons ([eee2d6a](https://github.com/nextcloud/mail/commit/eee2d6a23bc65a8d687c8eb5eba8f59688492fb9))\n* Center envelope header avatar ([1324d1e](https://github.com/nextcloud/mail/commit/1324d1e98fbd1d3e697f511fc027dc4631f96301))\n* CKEditor translations ([22415b0](https://github.com/nextcloud/mail/commit/22415b020db15084db5c6f51c72e0e617f851e5f))\n* **Composer:** rtl support ([e16a6e1](https://github.com/nextcloud/mail/commit/e16a6e11749db28db11f4e04237adabea951891f))\n* **contactsintegration:** Limit number of matches ([ada36b8](https://github.com/nextcloud/mail/commit/ada36b8e804e51d39ff439965e579f949c4f6fd8))\n* **contactsintegration:** Limit number of search results ([b02921e](https://github.com/nextcloud/mail/commit/b02921e5ec724cb3de0b50e520ca780be703c42e))\n* create mailbox doesnt reset after saving ([e7da6c7](https://github.com/nextcloud/mail/commit/e7da6c7f9ff3b6f7cc89531e1595e7ebfdb91481))\n* **deps:** Apply npm audit fix ([91bbac9](https://github.com/nextcloud/mail/commit/91bbac944db78776bc98b2b28c8b35fb0e382b00))\n* **deps:** Apply npm audit fix ([a77c8e0](https://github.com/nextcloud/mail/commit/a77c8e0a7ee25c64e97ae71383472a757476ad14))\n* **deps:** Apply npm audit fix ([40c782b](https://github.com/nextcloud/mail/commit/40c782bf3114e4e3f4ca0b0ddce766ff90aebc9a))\n* **deps:** Apply npm audit fix ([dcd3c37](https://github.com/nextcloud/mail/commit/dcd3c3725e01c1353a4e8c31f4bd2410ab3452d5))\n* **deps:** Apply npm audit fix ([1c67e7d](https://github.com/nextcloud/mail/commit/1c67e7d93387089666bdc4cbc98ec5f391a12925))\n* **deps:** Apply npm audit fix ([84a6de9](https://github.com/nextcloud/mail/commit/84a6de9472a62db5200fb5e46c337a8a29840f87))\n* **deps:** bump @nextcloud/auth from 2.3.0 to ^2.4.0 ([8a8f6d4](https://github.com/nextcloud/mail/commit/8a8f6d4b9e55798caa9d44f497c231ba6b3afa04))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.1 (main) ([#10212](https://github.com/nextcloud/mail/issues/10212)) ([cfbda53](https://github.com/nextcloud/mail/commit/cfbda53f7c71dd799c5e0bae8ff654d181278e95))\n* **deps:** bump @nextcloud/cdav-library from 1.5.1 to ^1.5.2 (main) ([#10265](https://github.com/nextcloud/mail/issues/10265)) ([e3ad554](https://github.com/nextcloud/mail/commit/e3ad55408648f12843a44098363d28205020c156))\n* **deps:** bump @nextcloud/dialogs from 5.3.6 to ^5.3.7 (main) ([#10061](https://github.com/nextcloud/mail/issues/10061)) ([c1965b1](https://github.com/nextcloud/mail/commit/c1965b19e1b2106221ff19e9fd480183297a9412))\n* **deps:** bump @nextcloud/dialogs from 5.3.8 to ^5.3.8 (main) ([#10354](https://github.com/nextcloud/mail/issues/10354)) ([066dda1](https://github.com/nextcloud/mail/commit/066dda15dbe2c50ea25682b860221598ecae6658))\n* **deps:** bump @nextcloud/files from 3.9.0 to ^3.9.0 (main) ([#10213](https://github.com/nextcloud/mail/issues/10213)) ([42816ed](https://github.com/nextcloud/mail/commit/42816ed37c4475856e137c435446cfd3d11a9978))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.10.0 (main) ([#10375](https://github.com/nextcloud/mail/issues/10375)) ([30a9617](https://github.com/nextcloud/mail/commit/30a96176b5160e8b00c645bc2ec05f438548c83b))\n* **deps:** bump @nextcloud/files from 3.9.1 to ^3.9.1 (main) ([#10303](https://github.com/nextcloud/mail/issues/10303)) ([a03b721](https://github.com/nextcloud/mail/commit/a03b72138cf7c02b08e4a31771a19da5aa10e4e9))\n* **deps:** bump @nextcloud/vue from 8.16.0 to ^8.17.1 ([397ed27](https://github.com/nextcloud/mail/commit/397ed272d89eb04ec08e2c59476c59e35744fb8a))\n* **deps:** bump @nextcloud/vue from 8.18.0 to ^8.19.0 ([cf62083](https://github.com/nextcloud/mail/commit/cf6208310c94b5171f274a2746b6922044ed28ec))\n* **deps:** bump @nextcloud/vue from 8.19.0 to ^8.20.0 ([b52df89](https://github.com/nextcloud/mail/commit/b52df895ef03086cca566adc042c777e9340d28d))\n* **deps:** bump arthurhoaro/favicon from 2.0.0 to ^2.0.1 (main) ([#10304](https://github.com/nextcloud/mail/issues/10304)) ([a8976cc](https://github.com/nextcloud/mail/commit/a8976cc8f01032c9a8cc2c2c01b613d758794979))\n* **deps:** bump bytestream/horde-imap-client from 2.33.2 to ^2.33.3 (main) ([#10335](https://github.com/nextcloud/mail/issues/10335)) ([9c43e51](https://github.com/nextcloud/mail/commit/9c43e5195f9278fe05513559c3f37cd7229f638b))\n* **deps:** bump bytestream/horde-stream from 1.7.1 to ^1.7.2 (main) ([#10336](https://github.com/nextcloud/mail/issues/10336)) ([72ff480](https://github.com/nextcloud/mail/commit/72ff4801669708fef3d9155e8ed75892cfd9bfdd))\n* **deps:** bump bytestream/horde-util from 2.7.0 to ^2.8.0 (main) ([#10266](https://github.com/nextcloud/mail/issues/10266)) ([dea3c67](https://github.com/nextcloud/mail/commit/dea3c677e130098b7fbb8a90b6ed03d2f822f0a3))\n* **deps:** bump cerdic/css-tidy from 2.1.0 to v2.2.1 (main) ([#10401](https://github.com/nextcloud/mail/issues/10401)) ([6168da8](https://github.com/nextcloud/mail/commit/6168da8c3c2ff64690242a3efdba0e585967214f))\n* **deps:** bump dompurify from 3.1.6 to ^3.1.7 (main) ([#10239](https://github.com/nextcloud/mail/issues/10239)) ([b6f3726](https://github.com/nextcloud/mail/commit/b6f3726157f7e07d4c05c72bbf52af8f68a66c1b))\n* **deps:** bump dompurify from 3.1.7 to ^3.2.1 (main) ([#10402](https://github.com/nextcloud/mail/issues/10402)) ([4ef5e62](https://github.com/nextcloud/mail/commit/4ef5e624374082cb05d8a409227bc366c3b34692))\n* **deps:** bump ezyang/htmlpurifier from 4.17.0 to v4.18.0 (main) ([#10414](https://github.com/nextcloud/mail/issues/10414)) ([d7afc16](https://github.com/nextcloud/mail/commit/d7afc16198b2c61a08b692f302fb9ccc71cd37fe))\n* **deps:** bump jeremykendall/php-domain-parser from 6.3.0 to ^6.3.1 (main) ([#10372](https://github.com/nextcloud/mail/issues/10372)) ([5734a9e](https://github.com/nextcloud/mail/commit/5734a9e466852ce8bd0f57bf9d2bedad09e61f96))\n* **deps:** bump nextcloud/openapi-extractor from 1.0.0 to ^1.0.1 (main) ([#10256](https://github.com/nextcloud/mail/issues/10256)) ([2bd6c4f](https://github.com/nextcloud/mail/commit/2bd6c4fa8714059f856e252f300de4142c4f74a4))\n* **deps:** bump pinia from 2.2.0 to ^2.2.3 (main) ([#10028](https://github.com/nextcloud/mail/issues/10028)) ([5f851f1](https://github.com/nextcloud/mail/commit/5f851f1ab0401b1d5904ff976838586684513704))\n* **deps:** bump pinia from 2.2.3 to ^2.2.4 ([0439f04](https://github.com/nextcloud/mail/commit/0439f046eea92be97f67310a33b8dbce45d2d47b))\n* **deps:** bump pinia from 2.2.4 to ^2.2.5 (main) ([#10305](https://github.com/nextcloud/mail/issues/10305)) ([5084d6e](https://github.com/nextcloud/mail/commit/5084d6ef5356e8d13016b20c5ecaf594b269a8b3))\n* **deps:** bump pinia from 2.2.5 to ^2.2.6 (main) ([#10373](https://github.com/nextcloud/mail/issues/10373)) ([828b5cb](https://github.com/nextcloud/mail/commit/828b5cbd960de0d7dbc0a4f8e248a8c0428b3462))\n* **deps:** bump rubix/ml from 2.5.0 to v2.5.1 (main) ([#10096](https://github.com/nextcloud/mail/issues/10096)) ([45dc3f4](https://github.com/nextcloud/mail/commit/45dc3f41c163574584f36166f17ca76a7ae7b926))\n* **deps:** bump rubix/ml from 2.5.1 to v2.5.2 (main) ([#10374](https://github.com/nextcloud/mail/issues/10374)) ([62a0f24](https://github.com/nextcloud/mail/commit/62a0f24a80f9a21e4655e95ce148f76662e75dd4))\n* **deps:** bump sabberworm/php-css-parser from 8.6.0 to ^8.7.0 (main) ([#10306](https://github.com/nextcloud/mail/issues/10306)) ([15b9cba](https://github.com/nextcloud/mail/commit/15b9cbab6f1749fc2b5c00502258259672cddd53))\n* **deps:** bump stylelint from 16.3.1 to ^16.10.0 (main) ([#10284](https://github.com/nextcloud/mail/issues/10284)) ([b895441](https://github.com/nextcloud/mail/commit/b89544189022c8b49b10df3d25a37a44a9fad620))\n* **deps:** bump vue-material-design-icons from 5.3.0 to ^5.3.1 ([371ce44](https://github.com/nextcloud/mail/commit/371ce44ac6e21fe99e64ca740074d76f155249e9))\n* **deps:** bump webdav from 4.11.3 to v4.11.4 (main) ([#10127](https://github.com/nextcloud/mail/issues/10127)) ([129b066](https://github.com/nextcloud/mail/commit/129b066e69852e5d6da294d2e705024d9403a5b6))\n* **deps:** bump webpack from 5.91.0 to v5.94.0 (main) ([#10062](https://github.com/nextcloud/mail/issues/10062)) ([f66b05a](https://github.com/nextcloud/mail/commit/f66b05ac2f9d0c459c904ad32c3b72fc23ddc16e))\n* **dns:** Update public suffix list ([547b906](https://github.com/nextcloud/mail/commit/547b9064c3b65c5a5725a94a618fcd919dc361aa))\n* **dns:** Update public suffix list ([2e7ff02](https://github.com/nextcloud/mail/commit/2e7ff02bff6747d9054743d822b8c5e516123b94))\n* **dns:** Update public suffix list ([939830c](https://github.com/nextcloud/mail/commit/939830ce13842ce4e568b12400697be31429d82a))\n* **dns:** Update public suffix list ([70ecb76](https://github.com/nextcloud/mail/commit/70ecb760ebcc28feac135575cdf6a0afc284dc1c))\n* **dns:** Update public suffix list ([9e14c38](https://github.com/nextcloud/mail/commit/9e14c38d45d880e8f1f9cd186660736235799f49))\n* Encapsulate PGP/MIME encrypted emails ([3f821e3](https://github.com/nextcloud/mail/commit/3f821e38e37cda3c1ae165a141f1b38f62191fbe))\n* **Envelope:** RTL support ([8cd27ad](https://github.com/nextcloud/mail/commit/8cd27ad1ac2e41ef919733ff87a4439f776d7e69))\n* fetch attendance status when calendars are loaded ([44b9a36](https://github.com/nextcloud/mail/commit/44b9a36eea9e4e77dee04883b561804b9ca66016)), closes [/github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue#L49-L50](https://github.com//github.com/nextcloud/mail/blob/6fc45eb0630b9065f9ccb4c1da5cc9557f7df834/src/App.vue/issues/L49-L50)\n* fix renaming mailbox hierarchy ([fd6229a](https://github.com/nextcloud/mail/commit/fd6229a8c1291dda099977b2bc98f2ec37e6bd2d))\n* Hand PGP/MIME-encrypted emails to Mailvelope ([971f910](https://github.com/nextcloud/mail/commit/971f9104ebb5a8434756149f317a938070af98bc))\n* hide show links button when not needed ([9351f0f](https://github.com/nextcloud/mail/commit/9351f0fa31cea520be18762beeacf76ace814a46))\n* **iframe:** scroll horizontally in case of overflow ([ee521d4](https://github.com/nextcloud/mail/commit/ee521d46ed0382d27882c302bf208038ffc445fc))\n* **imap:** Consider charset for preview text decoding ([625c579](https://github.com/nextcloud/mail/commit/625c579c82a06f2afaa21e130a4fd9f6c99c20ed))\n* **imap:** do a single full sync when QRESYNC is enabled ([73ceaf3](https://github.com/nextcloud/mail/commit/73ceaf3037d08f496e864183e0898983a9becf91))\n* **imap:** persist vanished messages immediately on EXAMINE commands ([3b577fe](https://github.com/nextcloud/mail/commit/3b577feb4d750fb2811e7488354d0663963c9840))\n* increase default SMTP timeout ([e7e62a3](https://github.com/nextcloud/mail/commit/e7e62a38c8bd15bc52b31a04c6b4595df5ec3cc4))\n* input icons and native datepicker ([db36047](https://github.com/nextcloud/mail/commit/db360471eee40465868be331c00858dfd280e08e))\n* Junk/NotJunk flags ([fb27d1e](https://github.com/nextcloud/mail/commit/fb27d1e9e3d00a0f4463bb08310933740f67e6d6))\n* link checking missing scheme ([9bb48cd](https://github.com/nextcloud/mail/commit/9bb48cda5bb74a1552d615ba57e0a4f29b96224b))\n* mailbox loading icon position ([16e95a1](https://github.com/nextcloud/mail/commit/16e95a13ee02546c329850370aa3e85b75499bbf))\n* **mailto:** Handle BCC recipients only ([970c3ac](https://github.com/nextcloud/mail/commit/970c3ac519c3659174c82ce5c46494b1354f6881))\n* make filter routes available for normal users ([95984e8](https://github.com/nextcloud/mail/commit/95984e88d8f5c87a06eaee93fc2ada63128ebf57))\n* new message button misalignment ([94ba7d3](https://github.com/nextcloud/mail/commit/94ba7d3015415743c9a13d14b7504f4ca0e55112))\n* **notifications:** Notifier::prepare() threw \\InvalidArgumentException which is deprecated ([37a2365](https://github.com/nextcloud/mail/commit/37a2365a9e008c2f838d419ffe0cf57ab70628d4))\n* open search buttons on focus and fix the wraping ([b469ce3](https://github.com/nextcloud/mail/commit/b469ce35206b82ea71d9d5b57a9cf6dedc5cf32b))\n* overlapping text on small screens ([04b8849](https://github.com/nextcloud/mail/commit/04b8849ad9caaf6830c61349098fedcb33f7fa0d))\n* phishing detection fixes ([dba8aff](https://github.com/nextcloud/mail/commit/dba8aff42fa07cea8412975c2b834c0482e2a9c2))\n* phishing warning layout ([2867a68](https://github.com/nextcloud/mail/commit/2867a68dbde60f379a2705c6756a09697924539f))\n* **PhishingDetection:** empty href ([ff608cc](https://github.com/nextcloud/mail/commit/ff608cc973798678e1b94c746958d9f17e22267c))\n* **psrlog:** Make the logger compatible with the upcoming bump to psr/log 3 in server ([0a22b3f](https://github.com/nextcloud/mail/commit/0a22b3f174056c7f2b2ebc3eb3e2acfc484cbe73))\n* **quick-search:** RTL support ([05e9ec7](https://github.com/nextcloud/mail/commit/05e9ec7af1763d3e4ffe505128ed92292e16184f))\n* recipient popover on thread display ([1244a69](https://github.com/nextcloud/mail/commit/1244a691c4c2a49efe833cfef8f54075cd747a4b))\n* **release:** Ignore unnecessary files ([0a66bdc](https://github.com/nextcloud/mail/commit/0a66bdcddf9182f0b8f033a6cf95a9dbfb6fa064))\n* **release:** Specify release committer ([9f4d57a](https://github.com/nextcloud/mail/commit/9f4d57aea1144bb912fddf4eeffabebe13576412))\n* remove depricated multiselect class ([31b11e5](https://github.com/nextcloud/mail/commit/31b11e5afd5c36758e89e7cb163b325cd42e2a53))\n* Replace tune icon with filter icon ([71af3f8](https://github.com/nextcloud/mail/commit/71af3f8fb6be790de082eb29c926f6941381da65))\n* Revive reply to sender only ([90c9298](https://github.com/nextcloud/mail/commit/90c9298550f0830b70daba05b0f334b14ec00d78))\n* **rtl:** phishing warning component ([6516398](https://github.com/nextcloud/mail/commit/6516398e9a2f7d12584cacbe63dea68f4ebc9983))\n* **rtl:** Thread title ([62583f8](https://github.com/nextcloud/mail/commit/62583f8fa1bec2a7b072c8c705880bc8d378b7b2))\n* **rtl:** userBubble rtl support ([e3b6729](https://github.com/nextcloud/mail/commit/e3b6729ae90b4e879a57dc51ceca76521f3c4f20))\n* search modal on small screen ([a3afdd4](https://github.com/nextcloud/mail/commit/a3afdd411c525e41e947ddac86e2146613f5136a))\n* select multiple envelopes by holding shift directly ([80f7153](https://github.com/nextcloud/mail/commit/80f71536fdc7ad33c15585bf218c8aa562be5065))\n* set content type parameters for attachments ([e3524c8](https://github.com/nextcloud/mail/commit/e3524c810ad82d7a5774bcda9ee4259ab8782a0e))\n* thread disappearing after refresh ([fe12a29](https://github.com/nextcloud/mail/commit/fe12a29439c2b3c376819b27d44a034ad8cc2fb6))\n* **threading:** Handle threads with duplicate send times ([341b655](https://github.com/nextcloud/mail/commit/341b655467ac672ec2463769ca3df284801f9a87))\n* **ui:** Add padding to primary evenlope actions ([63f31a2](https://github.com/nextcloud/mail/commit/63f31a2009e3c0a4aef9e56b9a471ddcaf40ea26))\n* **ui:** Remove padding from recipient bubble ([6026b1c](https://github.com/nextcloud/mail/commit/6026b1cc2111858b61077562f8ffe347f13eca8d))\n* **ui:** Restore account quota fetching ([6e58a2d](https://github.com/nextcloud/mail/commit/6e58a2d4d13ba1e500cf1048c9295cfe70baae8d))\n* **ui:** Restore message/thread styling ([1b94a14](https://github.com/nextcloud/mail/commit/1b94a14ce26608456560bec4955a3dc70852255e))\n* use single connection to sync all mailboxes ([57389ba](https://github.com/nextcloud/mail/commit/57389ba85c8842351302a51e963629ed89120d0f))\n* wrong path for itinerary executable ([43ed1ca](https://github.com/nextcloud/mail/commit/43ed1ca4f418806a768ef0df1cb9dc9b32170c36))\n\n\n### Features\n\n* add iMip Request Handling ([e8578ed](https://github.com/nextcloud/mail/commit/e8578edef275e434a2e2318808d0275d25fad378))\n* add mention to mail ([f089fad](https://github.com/nextcloud/mail/commit/f089fad6aa59b5927c9f4a96005a22711ae47c8d))\n* add recipient info on the right side of the composer ([efb0d60](https://github.com/nextcloud/mail/commit/efb0d605f2387ff426686eeb6339e79a3eeec91e))\n* add sieve utils ([9486987](https://github.com/nextcloud/mail/commit/948698742810bc3802340ff94ba55ec28e2583cb))\n* ai message summary ([e9286d2](https://github.com/nextcloud/mail/commit/e9286d20d4803cd1d4a3b7635f9c1dcf6fe4dcec))\n* classify emails by importance based on subjects ([1907ebc](https://github.com/nextcloud/mail/commit/1907ebc860f49de046640e00b523999a15028e66))\n* **deps:** Add Nextcloud 31 support ([bd306d8](https://github.com/nextcloud/mail/commit/bd306d8db5edf661c10b69eaf28ce095634ffab4))\n* fiter messages by mention ([fb946a2](https://github.com/nextcloud/mail/commit/fb946a2da61db01a6ab197d523fa95dd7dc6e57b))\n* implement periodic full sync job to repair cache inconsistencies ([c0bed86](https://github.com/nextcloud/mail/commit/c0bed86544f5a62fc3924839da669cfe5a6251c1))\n* mail filters ([d74c401](https://github.com/nextcloud/mail/commit/d74c401e6653be7d0713cb0c6d2ab358c9cf7516))\n* mail provider backend ([ce653d0](https://github.com/nextcloud/mail/commit/ce653d0f49fddc2afe916e5972e0e4642fed4ef6))\n* make multiselect menu more discoverable ([085af79](https://github.com/nextcloud/mail/commit/085af794d731d8585098e9c1fc620235a3d161f1))\n\n\n### Performance Improvements\n\n* don't loop the users without any provisioning configurations ([b76e68f](https://github.com/nextcloud/mail/commit/b76e68f37352f93dd28bc70c2addf1b9f75ee1af))\n* skip non-writable calendars ([4296585](https://github.com/nextcloud/mail/commit/42965856b0761038f699ea7e3092498336a7e439))\n\n\n### Reverts\n\n* Revert \"fix: CKEditor translations\" ([5a000da](https://github.com/nextcloud/mail/commit/5a000da5fc064bbbf132ad59fd13a2003cba9352))\n* Revert \"perf: bundle with vite\" ([6539d1d](https://github.com/nextcloud/mail/commit/6539d1da520a1531a3febeb27397527db8adb9a1))\n\n\n\n# [4.0.0-beta2](https://github.com/nextcloud/mail/compare/v4.0.0-alpha1...v4.0.0-beta2) (2024-08-27)\n\n\n### Bug Fixes\n\n* **.nextcloudignore:** Exclude php-stemmer tests from package ([aa79c29](https://github.com/nextcloud/mail/commit/aa79c2924e68893d3dbaae9deeb2b6a627d3c0ce)), closes [#9586](https://github.com/nextcloud/mail/issues/9586)\n* account deletion modal design ([091960a](https://github.com/nextcloud/mail/commit/091960ae1049393d7b9e538cf657b1068e4c6243))\n* **AccountForm:** Fix manual mail server buttons ([4d37cdc](https://github.com/nextcloud/mail/commit/4d37cdc0b746a434af41aa1aa999769c1e7f3bb2))\n* add repair job to deleted duplicated cached messages ([22b683c](https://github.com/nextcloud/mail/commit/22b683c0ad1abadef0c7dc267c973caa337b5e03))\n* align reply and attachment icon with subject ([8965b73](https://github.com/nextcloud/mail/commit/8965b739d76a27907b78b3632d3b000fc50fa87e))\n* **autoconfig:** Refactor DNS query for testing ([56faa48](https://github.com/nextcloud/mail/commit/56faa48b26c68d2a93bee0a8befa715047f60d6e))\n* **autoresponder:** enable immediately on an OutOfOfficeStartedEvent ([783263d](https://github.com/nextcloud/mail/commit/783263d2e91016f977db813ac5b5a965c6b88526))\n* background-color of outbox-button ([ca8310b](https://github.com/nextcloud/mail/commit/ca8310b6d1479a3009197b87e73bcb24ff10932a))\n* background-color of outbox-button ([5131682](https://github.com/nextcloud/mail/commit/51316823d2e6bffcf5f4c2b629d6243c9865d942))\n* case insesitive comparison for contact emails ([30d55f7](https://github.com/nextcloud/mail/commit/30d55f79a96519d281badcebd992ce691ad7e16d))\n* change appnavigation to appnavigationcaption for the email account ([4ffc09b](https://github.com/nextcloud/mail/commit/4ffc09b450787c882c9ca341798000e39b751215))\n* change format button icon ([9700cda](https://github.com/nextcloud/mail/commit/9700cda2fafa6bae5170176c01da260653cf5412))\n* Check if mailbox folder is selectable ([be8dcf4](https://github.com/nextcloud/mail/commit/be8dcf48e494c2594ca1a6ce2bdc599b977c3c84))\n* close smtp connection after sending or on error ([8f9a89b](https://github.com/nextcloud/mail/commit/8f9a89bfad9c5dedcb129892ca95bafd2594b0f9))\n* close the ncselect dropdown when clicked somewhere else ([d6daaef](https://github.com/nextcloud/mail/commit/d6daaef63b474fede424188f60ada7f3dad41be8))\n* composer session indicator height ([cd9a9f2](https://github.com/nextcloud/mail/commit/cd9a9f236b05b7b5022cf180b5dd7dee040eb420))\n* **composer:** Adjust expand/collapse cc/bcc icon size ([95803ba](https://github.com/nextcloud/mail/commit/95803ba920e60f87520dbf64f1fec60acf3091bb))\n* **composer:** Prevent leaving the tab with unsaved changes ([e57db7b](https://github.com/nextcloud/mail/commit/e57db7b01bd7b2bfd793ccb58fd464300cf8fd9d))\n* **composer:** Remove to/cc/bcc/subject separators ([a7983c5](https://github.com/nextcloud/mail/commit/a7983c5df04d48da90885e47e874c656169a1baf))\n* **composer:** Revive ckeditor translations ([c14cb78](https://github.com/nextcloud/mail/commit/c14cb784cfc7b3aee1de7ea30a4148652af87052))\n* create tasks from emails ([facc5bd](https://github.com/nextcloud/mail/commit/facc5bd581ebc344d0bb58f2ba6462b49ed16b15))\n* **dashboard:** Fix dashboard icon ([8a2b586](https://github.com/nextcloud/mail/commit/8a2b58615a1a10a123041232e4b9dd2018369bb4))\n* **db:** Delete recipients without sub query ([2545318](https://github.com/nextcloud/mail/commit/2545318697ee34c6a8112eeea7b1580af71e0568))\n* declare all properties in unit tests ([3955d51](https://github.com/nextcloud/mail/commit/3955d514f5b795c86ab1bb2866ba061f9382bc07))\n* Define \"isAddAttachmentsOpen\" ([ac97a28](https://github.com/nextcloud/mail/commit/ac97a284435299d5025d1d39b5151bb273cce27e))\n* **deps:** Apply npm audit fix ([9e53bbb](https://github.com/nextcloud/mail/commit/9e53bbb908da2edcbd39d3ac188794079ae86117))\n* **deps:** Apply npm audit fix ([7c2a1c1](https://github.com/nextcloud/mail/commit/7c2a1c1f7e2c9815eabd8ddb46d19d0c81f6e872))\n* **deps:** Apply npm audit fix ([7278f5b](https://github.com/nextcloud/mail/commit/7278f5b477df2b848d1d04922f357ca24f88552e))\n* **deps:** Apply npm audit fix ([2b0aa94](https://github.com/nextcloud/mail/commit/2b0aa94da03982a33cb0e0e55dccbe7f6d8a7ece))\n* **deps:** Apply npm audit fix ([7bb7859](https://github.com/nextcloud/mail/commit/7bb78591fef8ccb345c18b02838b4ceaba9f83af))\n* **deps:** bump @ckeditor/ckeditor5-editor-decoupled from 37.0.1 to v37.1.0 (main) ([#9480](https://github.com/nextcloud/mail/issues/9480)) ([1a63205](https://github.com/nextcloud/mail/commit/1a632052ff6c545c43274a6a7b4088b80b8b4614))\n* **deps:** bump @nextcloud/auth from 2.2.1 to ^2.3.0 (main) ([#9630](https://github.com/nextcloud/mail/issues/9630)) ([b9cecc4](https://github.com/nextcloud/mail/commit/b9cecc43ce7e0498939342edf183389c55923007))\n* **deps:** bump @nextcloud/axios from 2.5.0 to ^2.5.0 (main) ([#9631](https://github.com/nextcloud/mail/issues/9631)) ([8edd1d7](https://github.com/nextcloud/mail/commit/8edd1d7367e267e77fd7af4434dec734140b3b67))\n* **deps:** bump @nextcloud/cdav-library from 1.3.0 to ^1.4.0 (main) ([#9777](https://github.com/nextcloud/mail/issues/9777)) ([309a4af](https://github.com/nextcloud/mail/commit/309a4aff5af910a4be790cc07459be29d3d995bf))\n* **deps:** bump @nextcloud/cdav-library from 1.4.0 to ^1.5.0 (main) ([#9873](https://github.com/nextcloud/mail/issues/9873)) ([45de8bf](https://github.com/nextcloud/mail/commit/45de8bf43f4e3e54da1669da41875d653eabe897))\n* **deps:** bump @nextcloud/cdav-library from 1.5.0 to ^1.5.1 (main) ([#9906](https://github.com/nextcloud/mail/issues/9906)) ([97cd5f4](https://github.com/nextcloud/mail/commit/97cd5f49351036e653537d3b53c69ecb620d7db1))\n* **deps:** bump @nextcloud/dialogs from 5.2.0 to ^5.3.0 (main) ([#9572](https://github.com/nextcloud/mail/issues/9572)) ([9da3f56](https://github.com/nextcloud/mail/commit/9da3f5612965f343fcffa60fc592340bad572cde))\n* **deps:** bump @nextcloud/dialogs from 5.3.0 to ^5.3.1 (main) ([#9595](https://github.com/nextcloud/mail/issues/9595)) ([e2ce479](https://github.com/nextcloud/mail/commit/e2ce479480d71a2d6abfadcaa14007098c7e5554))\n* **deps:** bump @nextcloud/dialogs from 5.3.1 to ^5.3.3 (main) ([#9732](https://github.com/nextcloud/mail/issues/9732)) ([db4be0e](https://github.com/nextcloud/mail/commit/db4be0e1f7e9797a750b3438ac6011009c761bb7))\n* **deps:** bump @nextcloud/dialogs from 5.3.3 to ^5.3.4 (main) ([#9774](https://github.com/nextcloud/mail/issues/9774)) ([073aa64](https://github.com/nextcloud/mail/commit/073aa6432905fdfaec8657b8a390e3e05c2c4103))\n* **deps:** bump @nextcloud/dialogs from 5.3.4 to ^5.3.5 (main) ([#9821](https://github.com/nextcloud/mail/issues/9821)) ([b4c5e64](https://github.com/nextcloud/mail/commit/b4c5e64cdcb56bc9069ae10e13c43770377bd196))\n* **deps:** bump @nextcloud/dialogs from 5.3.5 to ^5.3.6 (main) ([#10027](https://github.com/nextcloud/mail/issues/10027)) ([b46c724](https://github.com/nextcloud/mail/commit/b46c724314a53da60c3454b3579c1fc7e7b89903))\n* **deps:** bump @nextcloud/files from 3.1.0 to ^3.1.1 (main) ([#9499](https://github.com/nextcloud/mail/issues/9499)) ([97fbbe9](https://github.com/nextcloud/mail/commit/97fbbe9c40235e618eea9e9068fd9ec2df19c4d6))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.2.1 (main) ([#9597](https://github.com/nextcloud/mail/issues/9597)) ([44af721](https://github.com/nextcloud/mail/commit/44af72138b06c017d285e25e4781f5e7ed0d5286))\n* **deps:** bump @nextcloud/files from 3.2.1 to ^3.4.0 (main) ([#9681](https://github.com/nextcloud/mail/issues/9681)) ([b7c8d7b](https://github.com/nextcloud/mail/commit/b7c8d7bb96491a243e36dcfd5ac2aef0e903acf0))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.5.1 (main) ([#9775](https://github.com/nextcloud/mail/issues/9775)) ([56d8a98](https://github.com/nextcloud/mail/commit/56d8a987e82632551408bae217622d7bcc8d2296))\n* **deps:** bump @nextcloud/files from 3.5.1 to ^3.6.0 (main) ([#9907](https://github.com/nextcloud/mail/issues/9907)) ([7b20678](https://github.com/nextcloud/mail/commit/7b206782fe300d120922b131babf390035bacbbb))\n* **deps:** bump @nextcloud/files from 3.6.0 to ^3.8.0 (main) ([#9948](https://github.com/nextcloud/mail/issues/9948)) ([6969d6e](https://github.com/nextcloud/mail/commit/6969d6eca3c3ed081ba1f8657a228f047faff789))\n* **deps:** bump @nextcloud/initial-state from 2.1.0 to ^2.2.0 (main) ([#9643](https://github.com/nextcloud/mail/issues/9643)) ([aefeb7f](https://github.com/nextcloud/mail/commit/aefeb7ffb70d52f50d6a01e94ebd6fac19aaedb4))\n* **deps:** bump @nextcloud/paths from 2.1.0 to ^2.2.0 (main) ([#9908](https://github.com/nextcloud/mail/issues/9908)) ([f296907](https://github.com/nextcloud/mail/commit/f2969072b4919a8cd37fabfa6e78d95741f97fa3))\n* **deps:** bump @nextcloud/paths from 2.2.0 to ^2.2.1 (main) ([#9947](https://github.com/nextcloud/mail/issues/9947)) ([436e983](https://github.com/nextcloud/mail/commit/436e9837b503cb766d10b4d48a4fbefcdf6b459c))\n* **deps:** bump @nextcloud/router from 3.0.0 to ^3.0.1 (main) ([#9596](https://github.com/nextcloud/mail/issues/9596)) ([cf9dd13](https://github.com/nextcloud/mail/commit/cf9dd13507befd1e45185e7aae1a0af5e3237655))\n* **deps:** bump @nextcloud/vue from 8.11.0 to ^8.11.1 ([e91bea8](https://github.com/nextcloud/mail/commit/e91bea82bc4c77f9b2aa56286d8209c1a87c2ec6))\n* **deps:** bump @nextcloud/vue from 8.11.1 to ^8.11.2 ([22a5ae4](https://github.com/nextcloud/mail/commit/22a5ae40b71057c1611a7773f34842d9ce38145c))\n* **deps:** bump @nextcloud/vue from 8.11.2 to ^8.13.0 ([facc8ab](https://github.com/nextcloud/mail/commit/facc8ab626acdf7e910a8a287565d13340cfe702))\n* **deps:** bump @nextcloud/vue from 8.13.0 to ^8.14.0 ([4ef4e64](https://github.com/nextcloud/mail/commit/4ef4e647d588d3514720fce7ebf946c82f63d6ad))\n* **deps:** bump @nextcloud/vue from 8.14.0 to ^8.15.0 ([8e50f95](https://github.com/nextcloud/mail/commit/8e50f95e40a214a8e419ff8162cbb57686021741))\n* **deps:** bump @nextcloud/vue from 8.15.0 to ^8.15.1 ([473069e](https://github.com/nextcloud/mail/commit/473069e4f2abcea0fbda41090719aef590a88419))\n* **deps:** bump @nextcloud/vue from 8.15.1 to ^8.16.0 ([73b56f1](https://github.com/nextcloud/mail/commit/73b56f12c2f3da8c3000287cc38436b77bb88de5))\n* **deps:** bump address-rfc2822 from 2.2.0 to ^2.2.1 (main) ([#9545](https://github.com/nextcloud/mail/issues/9545)) ([80e82ff](https://github.com/nextcloud/mail/commit/80e82ff3c3a6d920244e4d639e164da703d7e178))\n* **deps:** bump address-rfc2822 from 2.2.1 to ^2.2.2 (main) ([#9618](https://github.com/nextcloud/mail/issues/9618)) ([5be2d9f](https://github.com/nextcloud/mail/commit/5be2d9fd204280cdd77a56dd471ea633c7539029))\n* **deps:** bump bytestream/horde-mime from 2.13.0 to ^2.13.1 (main) ([#9704](https://github.com/nextcloud/mail/issues/9704)) ([4da6baa](https://github.com/nextcloud/mail/commit/4da6baaa2c5fa4acc6c0d55b905cab73b26c6a54))\n* **deps:** bump bytestream/horde-mime from 2.13.1 to ^2.13.2 (main) ([#9997](https://github.com/nextcloud/mail/issues/9997)) ([4c7f3f1](https://github.com/nextcloud/mail/commit/4c7f3f11ba672a500d394ead8e4942c20f3d3af8))\n* **deps:** bump core-js from 3.36.1 to ^3.37.1 (main) ([#9644](https://github.com/nextcloud/mail/issues/9644)) ([509d675](https://github.com/nextcloud/mail/commit/509d675bb71f7dc3d0cd6b887e1d74563e41301d))\n* **deps:** bump dompurify from 3.0.10 to ^3.0.11 ([94b5093](https://github.com/nextcloud/mail/commit/94b50936147d27097154e872bb9debda5a965ac7))\n* **deps:** bump dompurify from 3.0.11 to ^3.1.0 (main) ([#9546](https://github.com/nextcloud/mail/issues/9546)) ([1be5cce](https://github.com/nextcloud/mail/commit/1be5ccec727847914944ab1625b2f101c47cf046))\n* **deps:** bump dompurify from 3.1.0 to ^3.1.3 (main) ([#9619](https://github.com/nextcloud/mail/issues/9619)) ([1451a01](https://github.com/nextcloud/mail/commit/1451a01cbe8c0e8566a0ebb6307cd36a76ed65e1))\n* **deps:** bump dompurify from 3.1.3 to ^3.1.4 (main) ([#9680](https://github.com/nextcloud/mail/issues/9680)) ([981db11](https://github.com/nextcloud/mail/commit/981db11eb87ab737d08db59138405fb40859b4c3))\n* **deps:** bump dompurify from 3.1.4 to ^3.1.5 (main) ([#9705](https://github.com/nextcloud/mail/issues/9705)) ([77ce832](https://github.com/nextcloud/mail/commit/77ce83240067203b6d0ab88bc0337c1d91792586))\n* **deps:** bump dompurify from 3.1.5 to ^3.1.6 (main) ([#9822](https://github.com/nextcloud/mail/issues/9822)) ([f9a9a1c](https://github.com/nextcloud/mail/commit/f9a9a1c81df96fabd626b2c4a88da1b9fc611d2c))\n* **deps:** bump iframe-resizer from 4.3.11 to ^4.4.4 (main) ([#9794](https://github.com/nextcloud/mail/issues/9794)) ([ae39845](https://github.com/nextcloud/mail/commit/ae3984539f28fa2d5ea574182e3c818f2ea49726))\n* **deps:** bump iframe-resizer from 4.3.9 to ^4.3.11 (main) ([#9598](https://github.com/nextcloud/mail/issues/9598)) ([4b08392](https://github.com/nextcloud/mail/commit/4b0839274d0f604dd9a9e877bb15184697142862))\n* **deps:** bump iframe-resizer from 4.4.4 to ^4.4.5 (main) ([#9872](https://github.com/nextcloud/mail/issues/9872)) ([a537c49](https://github.com/nextcloud/mail/commit/a537c491cbc391d8ae1f66376409f8fcbc6fb4d8))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.2 to ^1.0.3 ([774ac9f](https://github.com/nextcloud/mail/commit/774ac9f5302a51d3526cc3811aa1fffc7448bcef))\n* **deps:** bump nextcloud/kitinerary-sys from 1.0.1 to ^1.0.1 (main) ([#9974](https://github.com/nextcloud/mail/issues/9974)) ([c6cc2fa](https://github.com/nextcloud/mail/commit/c6cc2fa5f6ec7193c515181a80658f2e8c65b41a))\n* **deps:** bump pinia from 2.1.7 to ^2.2.0 (main) ([#9949](https://github.com/nextcloud/mail/issues/9949)) ([9e67025](https://github.com/nextcloud/mail/commit/9e67025c1a7035ad052259feb6041e8dc4b9c8f1))\n* **deps:** bump ramda from 0.29.1 to ^0.30.1 ([120def2](https://github.com/nextcloud/mail/commit/120def2ec0b1a81e169f5bc4e3a28fcfc358a8b7))\n* **deps:** bump rubix/ml from 2.4.0 to v2.5.0 (main) ([#9874](https://github.com/nextcloud/mail/issues/9874)) ([2f36913](https://github.com/nextcloud/mail/commit/2f369131b5e1dbcd6856fc3fa6b270f7686fd03f))\n* **deps:** bump sabberworm/php-css-parser from 8.5.1 to ^8.6.0 (main) ([#9909](https://github.com/nextcloud/mail/issues/9909)) ([08cc760](https://github.com/nextcloud/mail/commit/08cc760c7a5731704afb5ab422b0125a01bd9688))\n* **deps:** bump stylelint from 16.2.1 to ^16.3.1 ([06c5976](https://github.com/nextcloud/mail/commit/06c59764a33c847a6a1d03ed0a203d18e24a4ffd))\n* **deps:** bump webdav from 5.4.0 to ^5.5.0 ([8316cc7](https://github.com/nextcloud/mail/commit/8316cc729955e7c254a8ac703f36add04214e6e7))\n* **deps:** Replace @nextcloud/vue-dashboard with @nextcloud/vue ([c1cc553](https://github.com/nextcloud/mail/commit/c1cc553ac9e8ce46d8ed643abfcea3e0430782f8))\n* don't fail on missing mailbox stats ([1a613e8](https://github.com/nextcloud/mail/commit/1a613e80db91c58e814e212d897acf57dcf9575e))\n* duplicate uid repair job failing on postgres ([48a149b](https://github.com/nextcloud/mail/commit/48a149bab4a86d7af86c5b082bec9da57b807c70))\n* ellips the subject and position of the important icon ([7dcd2de](https://github.com/nextcloud/mail/commit/7dcd2de0453366462cd096acac33ca262d315146))\n* **files:** add static icon for unknown user ([bdb5d30](https://github.com/nextcloud/mail/commit/bdb5d30bf8abf5ebef099459b21929e0da609d24))\n* filter change icon to be shown only when the filter changes ([2e0ec87](https://github.com/nextcloud/mail/commit/2e0ec879b44e5be769ad7ba470b673d01fb47547))\n* Fine-tune thread summary box design ([b508915](https://github.com/nextcloud/mail/commit/b50891524b9beafea33e199a6beb9b791af5b574))\n* handle missing email in contact check ([eb11824](https://github.com/nextcloud/mail/commit/eb11824ea2091a930ef6aae95fc31834c53b62ba))\n* honour MDN requests ([752b012](https://github.com/nextcloud/mail/commit/752b0127afecbd85f105761a8c22a909ea68e679))\n* inconsistent encoding in saved sent messages ([a93b48e](https://github.com/nextcloud/mail/commit/a93b48eacf23490c9a4140a5028ebd81dfec9061))\n* **integration:** Honor sharing to group members restriction ([fb4ae5e](https://github.com/nextcloud/mail/commit/fb4ae5e5d47b7ef5d3a4b2bef66d6b982009b6c9))\n* **jobs:** Skip background jobs if no authentication is possible ([f1d3fda](https://github.com/nextcloud/mail/commit/f1d3fda3015c1ace393124a25cf588e37c879981))\n* **l10n:** Update mailbox button text from \"Edit name\" to \"Rename\" ([1edb630](https://github.com/nextcloud/mail/commit/1edb63067701db0132e2479eb3e5ae1835c42415)), closes [#9108](https://github.com/nextcloud/mail/issues/9108)\n* line ending for sieve scripts should be clrf ([1f54a38](https://github.com/nextcloud/mail/commit/1f54a387486d205703d9ec03692f200d3b7f021d)), closes [/www.rfc-editor.org/rfc/rfc5228#section-2](https://github.com//www.rfc-editor.org/rfc/rfc5228/issues/section-2)\n* lost focus in reference picker ([13ceb7a](https://github.com/nextcloud/mail/commit/13ceb7a22897d19074f3cf5d8f74c6519c32be84))\n* mailbox error empty content alignment ([4b73def](https://github.com/nextcloud/mail/commit/4b73defdc6a0b32812dfd1e52401072ad77975b0))\n* make sure inbound_password uses null as default ([443749f](https://github.com/nextcloud/mail/commit/443749f9e6d9fd1122f42ffd5f67ae8e07af2b63))\n* migrate advanced search to nc dialog ([558440f](https://github.com/nextcloud/mail/commit/558440f900a1591f637de0f34ba7df355b5a6d93))\n* move delete duplicate uids repair step to a job ([c361202](https://github.com/nextcloud/mail/commit/c3612021789b2574feab452d0b64624c369ed1ec))\n* **ocs-api:** fix attachment downloadUrl in ocs/v2.php/apps/mail/message/ID ([507ad47](https://github.com/nextcloud/mail/commit/507ad470145d961268e882c4c841e1f0d6889eec))\n* **outbox:** add status for messages ([7c59040](https://github.com/nextcloud/mail/commit/7c590407858fa4076e76407eeb545234bd3782ce))\n* **outbox:** handle indeterminate smtp errors ([a1daf35](https://github.com/nextcloud/mail/commit/a1daf351f83e27ea1fc4bac2d112966560f04501))\n* **outbox:** handle missing raw message gracefully ([66d5e60](https://github.com/nextcloud/mail/commit/66d5e602ac207a908a0931cb66abdc5c64ed2b3d))\n* **outbox:** Revive item subname ([25e6f60](https://github.com/nextcloud/mail/commit/25e6f6035b0909a1f267616194716d76dcaa8800))\n* PHP deprecations ([d62ac04](https://github.com/nextcloud/mail/commit/d62ac040c4a64501425e068553f54b3331f5d412))\n* php lint complaint ([6cda44b](https://github.com/nextcloud/mail/commit/6cda44bbd998b80b55f98210b41dfe4b1f469c02))\n* **pi:** load more button needs to be clicked twice ([b57eec0](https://github.com/nextcloud/mail/commit/b57eec0b651a21665b2a399eae5d43599f7d2e91))\n* **pi:** section title margins affected by global styles ([30abd01](https://github.com/nextcloud/mail/commit/30abd01dae8c2ab5bf53be814b4c1bde2a4a9303))\n* polish list item ([b48317d](https://github.com/nextcloud/mail/commit/b48317d7305298805d6e440b0692bfc0e1c99428))\n* **printing:** Fix long emails getting cut for print ([17e5e29](https://github.com/nextcloud/mail/commit/17e5e29f4a2f3336a420d03645fc7af9add2228c))\n* **provisioning:** Set master password for passwordless sessions ([43ee642](https://github.com/nextcloud/mail/commit/43ee6428013c32e21d3cb86e7b68c85aa5f298df))\n* remove deprecated prototype.substr() method ([2050173](https://github.com/nextcloud/mail/commit/20501734b0ba0e45dd095df61ea7a7a998d56317))\n* remove duplicated license info covered by SPDX/reuse ([30b3dcc](https://github.com/nextcloud/mail/commit/30b3dccc1d8a4af84f31b8b0d04c00c4272c42a9))\n* Remove instance name from share link add button ([e028f30](https://github.com/nextcloud/mail/commit/e028f30d32a922373bb9392b0fb6a6da2a567978))\n* remove the app navigation spacer ([50ed62d](https://github.com/nextcloud/mail/commit/50ed62db6c88c82cbe9adf12d689efc5994cca28))\n* remove the global styling from the composer list ([a45841d](https://github.com/nextcloud/mail/commit/a45841dcc046b827a3be7a1b93e19e73c6d7738d))\n* remove ununsed package ([01c4faf](https://github.com/nextcloud/mail/commit/01c4fafb933f2538cfda8a688eebb8d57695359b))\n* Sanitize forward slashes from name before generating url ([b29bfda](https://github.com/nextcloud/mail/commit/b29bfdadfac3be3bd5a9f8f2bfe2063c3a5f4719))\n* save horde cache backend on imap client logout ([cda9d73](https://github.com/nextcloud/mail/commit/cda9d737c4c2754e88108e51057c53123fa51277))\n* **search:** Improve quick search element alignment ([919c842](https://github.com/nextcloud/mail/commit/919c842ffa2056979e69e1a63b02f15980482a02))\n* **search:** Show placeholder for the mailbox search input ([aa16c44](https://github.com/nextcloud/mail/commit/aa16c44c07c41e541fc5f20771de15dd793d8234))\n* send imip when importing an event in mail ([880eca7](https://github.com/nextcloud/mail/commit/880eca7a8fe84706e57350d3f2ff01d804bdc117)), closes [/github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php#L245-L254](https://github.com//github.com/nextcloud/3rdparty/blob/ea2fabbd358c9e0f9dae43bcb242b0cf8ee0d178/sabre/vobject/lib/ITip/Broker.php/issues/L245-L254)\n* Separate quick search and threads list with a line ([62c32c5](https://github.com/nextcloud/mail/commit/62c32c501508a38923880c83a9fc133c07f06f37))\n* set link icon size explicitly ([4b7e433](https://github.com/nextcloud/mail/commit/4b7e4336c03ad5f04994311b02f527e76ad27c85))\n* show image colour on dark theme ([3430895](https://github.com/nextcloud/mail/commit/343089506eed4090b936996d5d5effe89a6cbf02))\n* Show message reply (all) action in toolbar ([5cd54bc](https://github.com/nextcloud/mail/commit/5cd54bca3ce721117c8047a7c1a04738b06da79a))\n* Show text in empty mailbox view ([bc04ae1](https://github.com/nextcloud/mail/commit/bc04ae15a7c3477d74081b4421edce8be34c2312))\n* smart reply button jump ([c29f6fe](https://github.com/nextcloud/mail/commit/c29f6fe6a568432308c128b37d6206b0e92949eb))\n* **smime:** use whole certificate chain ([c6e28fd](https://github.com/nextcloud/mail/commit/c6e28fd59188ded88c3688a2e3d4988fd09df508)), closes [#9190](https://github.com/nextcloud/mail/issues/9190)\n* **tags:** Hide Notjunk tag ([f81843d](https://github.com/nextcloud/mail/commit/f81843d41c759012e0d818463bee596e8b28bb90))\n* thread padding ([f019d55](https://github.com/nextcloud/mail/commit/f019d55ca3668e3bc0ce24d312160dc40372458b))\n* **threading:** Run manual garbage collection ([060923f](https://github.com/nextcloud/mail/commit/060923f2cb9634914f413e9f56c235b3715d9e83))\n* use correct type for button, type for prop ([25b7595](https://github.com/nextcloud/mail/commit/25b759590ae9602392e7da702fa944957e5343c3))\n* using shortcut to select drafts shouldnt open the composer ([6cd5628](https://github.com/nextcloud/mail/commit/6cd5628d39d0135ed7cf39df8b72d272e72e3885))\n\n\n### Features\n\n* add internal addresses ([aab2db9](https://github.com/nextcloud/mail/commit/aab2db92a618babc71fd285e56c11ddd7d2714d6))\n* add JSON to occ mail export ([6b725ac](https://github.com/nextcloud/mail/commit/6b725ac3e1f5ecfc1ff05ddaa57d06fa3faa50d0))\n* **composer:** Redesign inputs ([ff94dd9](https://github.com/nextcloud/mail/commit/ff94dd9c758f04d3fdb420dcdc6187e1e9977bec))\n* **deps:** Drop Nextcloud 26, add 30 support ([7101ad2](https://github.com/nextcloud/mail/commit/7101ad2e4feafc1093d24fc2e3a7f2c16091a361))\n* follow up reminders ([221ff11](https://github.com/nextcloud/mail/commit/221ff11205e703eb4757d3a7037959b80432d8b2))\n* implement admin setting to disable classification by default ([96c1259](https://github.com/nextcloud/mail/commit/96c12592e888327f939308266db2a7bf6ba7e74a))\n* improve the search bar icons ([9eb787c](https://github.com/nextcloud/mail/commit/9eb787c234e716f7bad9c216c1e9362374b99b0a))\n* increaze the min and max width for horizontal view ([cef3c44](https://github.com/nextcloud/mail/commit/cef3c44c69f5644ba8cb66bf25a0c75fd1a91fde))\n* Log AttachmentMissingError as a warning ([092c924](https://github.com/nextcloud/mail/commit/092c924fb70d0ac79cf823e660f09fdbe56d2388))\n* make sieve filter form only resizable vertically ([951774e](https://github.com/nextcloud/mail/commit/951774e20d6f6eef5e106c565fe4fb2c4187a621))\n* mark junk mail automatically as read and unimportant ([d9c20c5](https://github.com/nextcloud/mail/commit/d9c20c531b7bf3d13f03710867f3c31fe49450ce))\n* **ocs:** add OCS extractor and workflow ([e854dc7](https://github.com/nextcloud/mail/commit/e854dc7efc7f97b98c9e1e12be949de0acdc7b04))\n* **ocs:** document get api and amend return types ([929873d](https://github.com/nextcloud/mail/commit/929873db6bf6edd711030002606c63828c3ec7c6))\n* **ocs:** notify of new messages and provide API endpoint to retrieve its contents ([71dbc51](https://github.com/nextcloud/mail/commit/71dbc51dca58d51f419e09cc4bff7bed49adbbd4))\n* **ocs:** send a message via api ([253d0c8](https://github.com/nextcloud/mail/commit/253d0c81f4859b8e65d3940638d2e33ffed0ea27))\n* search on subject, to, from by default ([f93ca3c](https://github.com/nextcloud/mail/commit/f93ca3c665c9dd486044141534dd538062b75b37))\n* separate attachment from three-dot-menu ([3e6529c](https://github.com/nextcloud/mail/commit/3e6529c70b0ec7511ba6c6960266a36bffd9133a))\n* **utility:** make json methods work the same for ([bfa0d7b](https://github.com/nextcloud/mail/commit/bfa0d7b3013212e21782e27518c8d7c79749a24c))\n\n\n### Performance Improvements\n\n* Use local caches for avatars ([bd75d0a](https://github.com/nextcloud/mail/commit/bd75d0abc4a397b3618ff74af0a49742079ed85b))\n\n\n### Reverts\n\n* Revert \"Fix: generate event data fails for threads across multiple mailboxes\" ([09ded27](https://github.com/nextcloud/mail/commit/09ded27c2215a2516693702962c29a1b2cc2ae10))\n\n\n\n# [3.6.0-beta3](https://github.com/nextcloud/mail/compare/v3.6.0-beta2...v3.6.0-beta3) (2024-03-20)\n\n\n### Bug Fixes\n\n* **deps:** Apply npm audit fix ([c5e76e6](https://github.com/nextcloud/mail/commit/c5e76e68d0f7efdbac2b922174e81507039ea67c))\n* **deps:** bump @nextcloud/cdav-library from 1.1.0 to ^1.3.0 (main) ([#9437](https://github.com/nextcloud/mail/issues/9437)) ([f26f421](https://github.com/nextcloud/mail/commit/f26f4218052238410e3e8441fe00133e12cf4cc3))\n* **deps:** bump @nextcloud/dialogs from 5.1.2 to ^5.2.0 (main) ([#9481](https://github.com/nextcloud/mail/issues/9481)) ([78308d9](https://github.com/nextcloud/mail/commit/78308d92ea25cad30dbd3fa134b8fd3127c62d18))\n* **deps:** bump @nextcloud/vue from 8.10.0 to ^8.11.0 ([481e00c](https://github.com/nextcloud/mail/commit/481e00cd8d2abf8e31b6219e5cc077baceb8d79a))\n* **deps:** bump bytestream/horde-imap-client from 2.33.1 to ^2.33.2 (main) ([#9460](https://github.com/nextcloud/mail/issues/9460)) ([6f4e2c5](https://github.com/nextcloud/mail/commit/6f4e2c52f3e070c09dd01fcbb3369731e42be54b))\n* **deps:** bump core-js from 3.36.0 to ^3.36.1 (main) ([#9475](https://github.com/nextcloud/mail/issues/9475)) ([6d1442d](https://github.com/nextcloud/mail/commit/6d1442d2e4b383000f27f48152c8009cd5bf88ee))\n* **deps:** bump dompurify from 3.0.9 to ^3.0.10 (main) ([#9476](https://github.com/nextcloud/mail/issues/9476)) ([aca2138](https://github.com/nextcloud/mail/commit/aca21388ebc5eb630a7ecb6e40306e6ddd546889))\n* display iCloud messages ([8417e52](https://github.com/nextcloud/mail/commit/8417e52e517bdad8003c9d63a2a66f0268bb4c9b))\n\n\n\n# [3.6.0-beta2](https://github.com/nextcloud/mail/compare/v3.6.0-beta1...v3.6.0-beta2) (2024-03-12)\n\n\n### Bug Fixes\n\n* add command to repair broken autoresponders ([60b199e](https://github.com/nextcloud/mail/commit/60b199ebcbd818652bafcfea0958d7b32b4ea5c6))\n* add name_hash as nullable ([d8de6d2](https://github.com/nextcloud/mail/commit/d8de6d2e30332a3a51d37225de680574c137f0ab))\n* Alien envelopes ([8dfae53](https://github.com/nextcloud/mail/commit/8dfae5396194f6b6613f9e6dafc946e682f03fe0))\n* allow syncing of mailboxes with a trailing space ([9783069](https://github.com/nextcloud/mail/commit/9783069f6b8bb36f57d0b3e65a8384cebadf93f2))\n* **autoresponder:** use subject placeholder instead of ooo short message ([5899ebe](https://github.com/nextcloud/mail/commit/5899ebe00a2911421160396c49a7e74c0d5fa780))\n* cache accounts by userId in AccountService ([c69c7d7](https://github.com/nextcloud/mail/commit/c69c7d724feb7ac943ff61c7ab57f93e2f1dde96))\n* **clean-up:** remove all outdated classifier not only 100 per day ([0e3fcce](https://github.com/nextcloud/mail/commit/0e3fccec8f9555cd8d1b2bf72092120d73005ba3))\n* **composer:** creating new options in recipient selects ([ffd78d5](https://github.com/nextcloud/mail/commit/ffd78d51c3bb46035ee705cb8a52de1699da98ba))\n* **composer:** duplicate label in to, cc and bcc selects ([5fec0d1](https://github.com/nextcloud/mail/commit/5fec0d1f19467dd2826e24c43e66cb114911a30b))\n* **db:** add version check for index with length ([2cafaa1](https://github.com/nextcloud/mail/commit/2cafaa1ae08185d46c81feef451a447a26c821ad))\n* **db:** Avoid dirty read for collected addresses ([66fdc0b](https://github.com/nextcloud/mail/commit/66fdc0bbe0b6497320eef449cc5ed644e91025fd))\n* **db:** Avoid dirty read for local message updates ([fff840a](https://github.com/nextcloud/mail/commit/fff840ac4f88c12cd484af0cd730a913e92e6865))\n* **db:** Avoid dirty reads while deleting messages by uid ([e92114e](https://github.com/nextcloud/mail/commit/e92114e90e7733d1a7eccfa94067fb5699df7075))\n* **deps:** Apply npm audit fix ([e97f337](https://github.com/nextcloud/mail/commit/e97f337049be90e03f28dddec57bcf5af0555410))\n* **deps:** bump @nextcloud/calendar-js from 6.0.1 to ^6.1.0 (main) ([#9068](https://github.com/nextcloud/mail/issues/9068)) ([00bf78b](https://github.com/nextcloud/mail/commit/00bf78bfed62af45678eeb6a08c130378a6d48f2))\n* **deps:** bump @nextcloud/dialogs from 4.1.0 to ^4.2.5 (main) ([#8797](https://github.com/nextcloud/mail/issues/8797)) ([cadad6e](https://github.com/nextcloud/mail/commit/cadad6e2245c6c5a6f47308a1cdf22eda6c3d4e7))\n* **deps:** bump @nextcloud/dialogs from 4.2.5 to ^4.2.6 (main) ([#9377](https://github.com/nextcloud/mail/issues/9377)) ([210d79c](https://github.com/nextcloud/mail/commit/210d79cc9d88e185298409b00c48fb0681f2d297))\n* **deps:** bump @nextcloud/dialogs from 4.2.6 to v5 ([4679883](https://github.com/nextcloud/mail/commit/4679883e2eabc871bd4fcd171a18a47262635b9a))\n* **deps:** bump @nextcloud/files from 2.1.0 to v3 ([2de7e60](https://github.com/nextcloud/mail/commit/2de7e60c13ca3eda51aa7159779e706b22690e6a))\n* **deps:** bump @nextcloud/moment from 1.2.2 to ^1.3.1 (main) ([#9396](https://github.com/nextcloud/mail/issues/9396)) ([1932e0f](https://github.com/nextcloud/mail/commit/1932e0f427993f2554597f4050fcdf18a3a77beb))\n* **deps:** bump @nextcloud/router from 2.2.0 to ^2.2.1 (main) ([#9360](https://github.com/nextcloud/mail/issues/9360)) ([9dd2149](https://github.com/nextcloud/mail/commit/9dd2149922af23b4b3fc8506e7a695fc37d252bd))\n* **deps:** bump @nextcloud/router from 2.2.1 to v3 ([b11cd98](https://github.com/nextcloud/mail/commit/b11cd9849916668db903cad34b0180cbe70fee44))\n* **deps:** bump @nextcloud/vue from 7.12.6 to ^7.12.7 ([6af3637](https://github.com/nextcloud/mail/commit/6af36374027ad41a7f1fd9b5f8737c035315b019))\n* **deps:** bump @nextcloud/vue from 8.5.0 to ^8.6.2 ([f68dd5a](https://github.com/nextcloud/mail/commit/f68dd5aead98d77dcf7914fa8dc2ba6e03406301))\n* **deps:** bump @nextcloud/vue from 8.6.2 to ^8.10.0 ([33a3e38](https://github.com/nextcloud/mail/commit/33a3e383a6494c16674f6907d4cfcbe8e22a99dd))\n* **deps:** bump address-rfc2822 from 2.1.0 to ^2.2.0 (main) ([#9405](https://github.com/nextcloud/mail/issues/9405)) ([584ed59](https://github.com/nextcloud/mail/commit/584ed59235b1c248decbca3238343498ed37a152))\n* **deps:** bump core-js from 3.33.2 to ^3.33.3 (main) ([#9083](https://github.com/nextcloud/mail/issues/9083)) ([1393394](https://github.com/nextcloud/mail/commit/13933946ba76d1e6ec8d53b191bc7f88e401a98f))\n* **deps:** bump core-js from 3.33.3 to ^3.34.0 (main) ([#9166](https://github.com/nextcloud/mail/issues/9166)) ([4ee62af](https://github.com/nextcloud/mail/commit/4ee62afe03553201a5ecef5036974b96af92e8c2))\n* **deps:** bump core-js from 3.34.0 to ^3.36.0 (main) ([#9406](https://github.com/nextcloud/mail/issues/9406)) ([4afd9d8](https://github.com/nextcloud/mail/commit/4afd9d85fda87194dd7b26e2c93dfe76623d58e2))\n* **deps:** bump dompurify from 3.0.6 to ^3.0.9 (main) ([#9270](https://github.com/nextcloud/mail/issues/9270)) ([f72b9f4](https://github.com/nextcloud/mail/commit/f72b9f427179e032096481df7e0a9c6a29ac6c03))\n* **deps:** bump ezyang/htmlpurifier from 4.16.0 to v4.17.0 (main) ([#9085](https://github.com/nextcloud/mail/issues/9085)) ([a1e4110](https://github.com/nextcloud/mail/commit/a1e41106258eadeb1d98d5bb58e815c04f49aa00))\n* **deps:** bump iframe-resizer from 4.3.7 to ^4.3.9 (main) ([#9084](https://github.com/nextcloud/mail/issues/9084)) ([68c9672](https://github.com/nextcloud/mail/commit/68c96723f491461c3e06325d43a3cf908c5d2d1f))\n* **deps:** bump js-base64 from 3.7.5 to ^3.7.6 (main) ([#9361](https://github.com/nextcloud/mail/issues/9361)) ([6eadbce](https://github.com/nextcloud/mail/commit/6eadbcefd7dcd8f230f23fb26a6c26e03c41ad50))\n* **deps:** bump js-base64 from 3.7.6 to ^3.7.7 (main) ([#9378](https://github.com/nextcloud/mail/issues/9378)) ([cbe62e4](https://github.com/nextcloud/mail/commit/cbe62e4890887650fde156d254d6891f482d24c5))\n* **deps:** bump nextcloud/kitinerary-bin from 1.0.0 to ^1.0.2 (main) ([#9379](https://github.com/nextcloud/mail/issues/9379)) ([2132361](https://github.com/nextcloud/mail/commit/2132361862dc2c4774993544afcfcfbe3820228e))\n* **deps:** bump p-limit from 4.0.0 to v5 ([2b99aba](https://github.com/nextcloud/mail/commit/2b99aba140a505c63f787298e0a410a45b7beda4))\n* **deps:** bump sabberworm/php-css-parser from 8.4.0 to ^8.5.1 (main) ([#9409](https://github.com/nextcloud/mail/issues/9409)) ([0a52127](https://github.com/nextcloud/mail/commit/0a521273f4916b02479b44284ff06f95535484f1))\n* **deps:** bump stylelint from 15.11.0 to v16 ([5238442](https://github.com/nextcloud/mail/commit/5238442d0cd3f34c6e11e2ece208b2519b25a47d))\n* **deps:** bump vue monorepo from 2.7.15 to ^2.7.16 (main) ([#9380](https://github.com/nextcloud/mail/issues/9380)) ([f2015c4](https://github.com/nextcloud/mail/commit/f2015c4a9f433d470b9b33b52145ef81581bb3b5))\n* **deps:** bump vue-material-design-icons from 5.2.0 to ^5.3.0 (main) ([#9407](https://github.com/nextcloud/mail/issues/9407)) ([3c2db50](https://github.com/nextcloud/mail/commit/3c2db50eb68f3e629f67ea4f6d9d9fb50dcf13ca))\n* **deps:** bump webdav from 4.11.3 to v5 ([184fba5](https://github.com/nextcloud/mail/commit/184fba5ad2a1960aac7905b905c17ab7c0878559))\n* **deps:** Switch KItinerary vendor ([736731f](https://github.com/nextcloud/mail/commit/736731f1b0169178a8e2fc79a2c8fa073cc42e8c))\n* **encoding:** better character encoding ([176e074](https://github.com/nextcloud/mail/commit/176e074df28a0a6d0c335ff141648743d3cb96c7))\n* Hack CSS to restore envelope styling ([d8c9f4e](https://github.com/nextcloud/mail/commit/d8c9f4edf898d11fb81e59273697a7cc3e663da6))\n* **imap:** Only rate limit actual auth errors ([b19918d](https://github.com/nextcloud/mail/commit/b19918dbd5d1f63aef32d6c738bc9a45117e2832))\n* **imap:** Pass flags as array for the STORE command ([4d1879d](https://github.com/nextcloud/mail/commit/4d1879d3e25777c69108ba8093d6c2888173e0da))\n* improve autoresponder time zone handling ([f0847be](https://github.com/nextcloud/mail/commit/f0847be20afb86850f57d40cd03ab0f052219846))\n* **integration:** Allow LLM event titles/agendas for non-admins ([2823ea2](https://github.com/nextcloud/mail/commit/2823ea27bf876b3e66750133f3ba8681fc2d00a6))\n* listen to more out-of-office events to prevent missed changes ([ee63978](https://github.com/nextcloud/mail/commit/ee639783bab0576eb12814f0c69d418ff83ea49e))\n* **message:** Translate task description label ([8887dbb](https://github.com/nextcloud/mail/commit/8887dbb3d1ddf5a320c4416daad2527d14d546d3))\n* **navigation:** Only make mailboxes with children collapsible ([ae43682](https://github.com/nextcloud/mail/commit/ae436822833038ec497db04836f6a63ce34310a0))\n* only load thread summary for threads with at least 3 messages. ([88ad956](https://github.com/nextcloud/mail/commit/88ad956d2e8dd059bde23daea9d076c695890b08))\n* **provisioning:** Clean up orphaned accounts ([ed228bb](https://github.com/nextcloud/mail/commit/ed228bb807db59a17b2250c92a20af7083c028fb))\n* **provisioning:** Do not require master password if disabled ([410e9bb](https://github.com/nextcloud/mail/commit/410e9bba356aa9d3508169be256ffe5d4f6c7244))\n* **quota:** don't divide by limit zero ([dd788e7](https://github.com/nextcloud/mail/commit/dd788e74df60acc4ca92afb0573a1de1e7d3797a))\n* **search:** Align advanced search UI elements better ([7b42142](https://github.com/nextcloud/mail/commit/7b4214215cd10b3ffea5a1eddfb2ba6435dd2646))\n* **search:** Reduce advanced search icon size ([6042454](https://github.com/nextcloud/mail/commit/60424542fbd8d2cf466506fbaaf28de0f6964d27))\n* **setup:** Fix rate limit annotation syntax ([#9216](https://github.com/nextcloud/mail/issues/9216)) ([a3f1970](https://github.com/nextcloud/mail/commit/a3f197033a8f3ed3636177a4af9310564157d3c2)), closes [nextcloud/mail#9170](https://github.com/nextcloud/mail/issues/9170) [/github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php#L66](https://github.com//github.com/nextcloud/server/blob/7502c19ddd43853c3b4fad1e2df91aed19e6b626/lib/private/AppFramework/Utility/ControllerMethodReflector.php/issues/L66)\n* **setup:** Increase rate limit ([89876e1](https://github.com/nextcloud/mail/commit/89876e13b3e94082582c8fd466261c5c12319e43))\n* **setup:** Sort MX records by weight ([684a215](https://github.com/nextcloud/mail/commit/684a215e8119d4f30b826c1da63a1f83972fb3cd))\n* **setup:** Use MX record TLD for ISPDB lookup ([1b2f3a0](https://github.com/nextcloud/mail/commit/1b2f3a012fb8be2ac2ec6dc5fb4294bff9a4e618))\n* **setup:** Use MX sort result ([da9b578](https://github.com/nextcloud/mail/commit/da9b57815fe223468fbe60630346c38da920f934))\n* **smime:** alias to cert mapping in account settings ([ed7c152](https://github.com/nextcloud/mail/commit/ed7c15297f00c24e122d87c0eea029d23d670bbc))\n* **sync:** force full sync when the server reports QRESYNC ([eacd84c](https://github.com/nextcloud/mail/commit/eacd84c7b279e3b0659611f8e0fe9628ed3a207a))\n* Use property_exists for SimpleXMLElement checks ([3e8aeec](https://github.com/nextcloud/mail/commit/3e8aeec36a141961f31ae69d46a9e3cb123ce024))\n\n\n### Features\n\n* apply personal out-of-office data to the auto responder ([3cbdf1f](https://github.com/nextcloud/mail/commit/3cbdf1f302aa136db72feda1e32bbdb76f3622ee))\n* **composer:** Use editor toolbar instead of balloon ([e9f068f](https://github.com/nextcloud/mail/commit/e9f068fd0c225f48cbc031b929743edb4155e31a))\n* **deps:** Support Nextcloud 29 ([5b43ae2](https://github.com/nextcloud/mail/commit/5b43ae2a19ff88f463369e8e232d76cefd9fb86c))\n* **integration:** Combine all LLM feature flags ([8c934bd](https://github.com/nextcloud/mail/commit/8c934bd74785abc8b43fb2e5f33fcb8ba3f8ae86))\n* **integration:** Support DESCRPTION for events ([f80bef4](https://github.com/nextcloud/mail/commit/f80bef4dbb0426903dabe019b75f6ef6801b115b))\n* **integration:** Use LLM to fill event details ([eab26c4](https://github.com/nextcloud/mail/commit/eab26c477374cb2179f433e36d4ff0ace0ba9582))\n* move threads not messages in drag-and-drop ([c18a1e4](https://github.com/nextcloud/mail/commit/c18a1e46b389130d53140380c46f85b4216c9a76))\n* **smime:** allow selection of untrusted certs ([6111216](https://github.com/nextcloud/mail/commit/611121620e0d489216d2aa2de569ba54a397079a))\n\n\n### Performance Improvements\n\n* Add performance logger to clean up ([48550d6](https://github.com/nextcloud/mail/commit/48550d64dae9d7483fec21941cb4df7f4ae12e65))\n* **db:** Add message_id index for mail_messages table ([7e32031](https://github.com/nextcloud/mail/commit/7e32031d563a0437fbbe382807e9e8b1ca74f2e2))\n* **db:** optimise indices of mail tables ([4c356d6](https://github.com/nextcloud/mail/commit/4c356d6995d1ce6a38763f855e309dfb02e37eeb))\n* **sync:** Reduce db operations for accounts without CONDSTORE ([413dfbb](https://github.com/nextcloud/mail/commit/413dfbb6b0e772ebe0b44f75f6a6057582165b8f))\n\n\n\n# [3.5.0-beta3](https://github.com/nextcloud/mail/compare/v3.5.0-beta2...v3.5.0-beta3) (2023-11-14)\n\n\n### Features\n\n* **advanced-search:** allow date and recipient search ([8e12c63](https://github.com/nextcloud/mail/commit/8e12c633ddd3c20c70099c9ab94705d9eb44f7f0))\n\n\n\n# [3.5.0-beta2](https://github.com/nextcloud/mail/compare/v3.5.0-beta1...v3.5.0-beta2) (2023-11-09)\n\n\n### Bug Fixes\n\n* **accessibility:** Add arial-label to NcActionButtons without text ([7c440e1](https://github.com/nextcloud/mail/commit/7c440e130e6cb3ff4ca3cd76f01d0262a18c1d03))\n* add expiration for itinerary cache ([4c60847](https://github.com/nextcloud/mail/commit/4c608472c08c465713b9e14f32877dd23ce0e4e2))\n* Add missing background box for redirect page ([953998e](https://github.com/nextcloud/mail/commit/953998e0af98453f5f2cf3edfe7f10bc489c431c))\n* add preview enhancement job to new accounts joblist ([09ba345](https://github.com/nextcloud/mail/commit/09ba345edf21d6a13ca994b672af215dd37e3052))\n* Allow dynamic autoloading for classes added during upgrade ([d81bcca](https://github.com/nextcloud/mail/commit/d81bcca8c147019b506f6011ce9c8863f18814b3))\n* allow sending of messages with empty body content ([646ccfe](https://github.com/nextcloud/mail/commit/646ccfe38e54877d06de934ee61774a4688d1dfb))\n* archiving messages via shortcut ([0569444](https://github.com/nextcloud/mail/commit/0569444b2908b17198ba4419679ee0322dd639ac))\n* **attachments:** fetch message once when saving attachments in files ([f7921f1](https://github.com/nextcloud/mail/commit/f7921f19106b0e0584fccb5260b0c0a544706b4d))\n* **autocomplete:** make system address book searchable not just full matches ([d8be257](https://github.com/nextcloud/mail/commit/d8be2578ca29e272e334c7ec69467c9c5ea25edf))\n* **avatar:** Validate favicon hosts ([4d63219](https://github.com/nextcloud/mail/commit/4d6321962973c947b21181cc9ffb7e272d9cb926))\n* **bgJob:** Fix DB-Query for open drafts ([4530a34](https://github.com/nextcloud/mail/commit/4530a34ec5e69a4d94e3af62636f430760f29234))\n* button style ([6bb69c7](https://github.com/nextcloud/mail/commit/6bb69c7f0c5e61b40a31ce5a3bb1e3a3d8ef0932))\n* Check strict cookies for image proxy ([be36e3e](https://github.com/nextcloud/mail/commit/be36e3e342c0d889670ac80434f07c5cabba6159))\n* **classification:** Delete historic data ([8e1e5ea](https://github.com/nextcloud/mail/commit/8e1e5ea65f6db951a95cdec50f50d3f29880a554))\n* **classification:** refactor persistence ([a23dac9](https://github.com/nextcloud/mail/commit/a23dac94a52d98cd7c64d62944b7d217bb8a0170))\n* **cleanup:** clean up mail_message_tags and mail_tags ([68e0b9b](https://github.com/nextcloud/mail/commit/68e0b9b0c1efd1efe9b73daabd3d81a9ccf6dfc4))\n* **composer:** add gap between primary actions ([4a90cd8](https://github.com/nextcloud/mail/commit/4a90cd809c0e2e7f6e9ff652f1f885e3568cbb41))\n* **composer:** forward messages as attachments ([81fbc14](https://github.com/nextcloud/mail/commit/81fbc143aea28dbdf220c9e57390b4de11583eba))\n* Convert drafts to outbox messages before sending ([b74afd3](https://github.com/nextcloud/mail/commit/b74afd3fee114ff9b0e1460c12e95a20d2c71a09))\n* dashboard loading forever ([bac8f1a](https://github.com/nextcloud/mail/commit/bac8f1ae8ba32f2c3b69cc96258f907e9839f0d9)), closes [/github.com/browserify/node-util/issues/57#issuecomment-764436352](https://github.com//github.com/browserify/node-util/issues/57/issues/issuecomment-764436352)\n* **db:** Identify retention and snooze mailboxes uniquely ([af20473](https://github.com/nextcloud/mail/commit/af20473aa7ddd6c80235d33535ad9a8eb14b2fa3))\n* **db:** Run read-write-update of mailboxes in transaction ([f6154c5](https://github.com/nextcloud/mail/commit/f6154c528aadc43021987de967401682c9797563))\n* deprecation warning for drafts controller test ([07c15f2](https://github.com/nextcloud/mail/commit/07c15f2b26cb5f97654f57d80df767d735faac91))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 33.0.1 to v34 ([96d13ae](https://github.com/nextcloud/mail/commit/96d13ae7941c667f1a37e3f7eb7cf47f0c369116))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.0.2 to ~34.1.2 ([86242da](https://github.com/nextcloud/mail/commit/86242da8c90991f32dc8e6a9d7bd19b51519a632))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.2 to ~34.1.3 ([85fa23a](https://github.com/nextcloud/mail/commit/85fa23a4c9ab6e672db1071e87067c94af2fb145))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 34.1.3 to v35 ([092a0dd](https://github.com/nextcloud/mail/commit/092a0dd1d77c8739cbfa175cbf4112db572284e5))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.3 to ~35.0.6 ([99f336f](https://github.com/nextcloud/mail/commit/99f336f1015def3a7c24e6d8d81d5f2f0bf6b721))\n* **deps:** bump @ckeditor/ckeditor5-dev-utils from 35.0.6 to v37 ([d7822c1](https://github.com/nextcloud/mail/commit/d7822c12b2eec3c88764b98042332da3a4be449f))\n* **deps:** bump @nextcloud/auth from 2.0.0 to ^2.1.0 ([d8855ce](https://github.com/nextcloud/mail/commit/d8855ce558315176129d9e2f6875921853a6eaff))\n* **deps:** bump @nextcloud/auth from 2.1.0 to ^2.2.1 (main) ([#8887](https://github.com/nextcloud/mail/issues/8887)) ([a3d2a77](https://github.com/nextcloud/mail/commit/a3d2a77d44b047fd304e76ad7f1833f39d5e31d8))\n* **deps:** bump @nextcloud/axios from 2.3.0 to ^2.4.0 ([eb29ab7](https://github.com/nextcloud/mail/commit/eb29ab77b38ef8b51c36cd6a94c6d587ac7d62ac))\n* **deps:** bump @nextcloud/calendar-js from 3.2.0 to v5 ([bcee50a](https://github.com/nextcloud/mail/commit/bcee50a852bae25850ec802d5378fd978d28b7df))\n* **deps:** bump @nextcloud/calendar-js from 5.0.3 to ^5.0.4 ([67d6099](https://github.com/nextcloud/mail/commit/67d6099971d5ba7fe619d95a36cb0e48ec8033f3))\n* **deps:** bump @nextcloud/calendar-js from 5.0.4 to ^5.0.5 ([a3df9dc](https://github.com/nextcloud/mail/commit/a3df9dcd7f17f53699a615b8f17fb85ebe4072a8))\n* **deps:** bump @nextcloud/calendar-js from 5.0.5 to v6 ([1bfce7e](https://github.com/nextcloud/mail/commit/1bfce7e8f794607e47b962ef83d499a40f52981d))\n* **deps:** bump @nextcloud/calendar-js from 6.0.0 to ^6.0.1 ([9da3cb1](https://github.com/nextcloud/mail/commit/9da3cb105b419c8155888f1681935ae4cfe9427d))\n* **deps:** bump @nextcloud/dialogs from 3.2.0 to v4 ([1086158](https://github.com/nextcloud/mail/commit/10861585a80b9d42955e196c167928a92ce6204b))\n* **deps:** bump @nextcloud/dialogs from 4.0.1 to ^4.1.0 (main) ([#8662](https://github.com/nextcloud/mail/issues/8662)) ([8e05e5c](https://github.com/nextcloud/mail/commit/8e05e5c1bc6f7e5b7c41bf315484918281eedd8d))\n* **deps:** bump @nextcloud/initial-state from 2.0.0 to ^2.1.0 (main) ([#8691](https://github.com/nextcloud/mail/issues/8691)) ([46f47ec](https://github.com/nextcloud/mail/commit/46f47ec7f94864caabcb27a69b2f851f84d2d105))\n* **deps:** bump @nextcloud/l10n from 2.1.0 to ^2.2.0 (main) ([#8833](https://github.com/nextcloud/mail/issues/8833)) ([34a1ca0](https://github.com/nextcloud/mail/commit/34a1ca02a0ac7989b108fdb02311d2222bb92a6b))\n* **deps:** bump @nextcloud/logger from 2.5.0 to ^2.7.0 (main) ([#8888](https://github.com/nextcloud/mail/issues/8888)) ([74b0576](https://github.com/nextcloud/mail/commit/74b05768d7f0caf5dac155552cffccbe51a56185))\n* **deps:** bump @nextcloud/moment from 1.2.1 to ^1.2.2 (main) ([#8970](https://github.com/nextcloud/mail/issues/8970)) ([027069e](https://github.com/nextcloud/mail/commit/027069eb7ab742ae5fff34a8da9688b1bd69566d))\n* **deps:** bump @nextcloud/router from 2.0.1 to ^2.1.1 ([83267ef](https://github.com/nextcloud/mail/commit/83267ef03d146e32bab35beb36424ddb1fdc82cd))\n* **deps:** bump @nextcloud/router from 2.1.1 to ^2.1.2 ([4bcf00b](https://github.com/nextcloud/mail/commit/4bcf00bb21d3ad519245f17e114ffe946137143f))\n* **deps:** bump @nextcloud/router from 2.1.2 to ^2.2.0 (main) ([#8999](https://github.com/nextcloud/mail/issues/8999)) ([0b9ccea](https://github.com/nextcloud/mail/commit/0b9ccea3abf7807faef10828ecbe03232900ff3e))\n* **deps:** bump @nextcloud/vue from 7.11.3 to ^7.11.4 ([756b508](https://github.com/nextcloud/mail/commit/756b50801c04fe4627175a8469824775003f833f))\n* **deps:** bump @nextcloud/vue from 7.11.4 to ^7.12.0 ([4f4c2e6](https://github.com/nextcloud/mail/commit/4f4c2e63835c8779fbd2baffcf834de5634388ae))\n* **deps:** bump @nextcloud/vue from 7.12.0 to ^7.12.1 ([d4ee8a1](https://github.com/nextcloud/mail/commit/d4ee8a129a68a512d4f2762b4e709439e8e968a2))\n* **deps:** bump @nextcloud/vue from 7.12.1 to ^7.12.2 ([2d6c7be](https://github.com/nextcloud/mail/commit/2d6c7be52b3214d151df19562fd9b7f44be35ac1))\n* **deps:** bump @nextcloud/vue from 7.12.2 to ^7.12.4 ([ef1f9b5](https://github.com/nextcloud/mail/commit/ef1f9b51407c5108bb5a5bb796ebd319896268eb))\n* **deps:** bump @nextcloud/vue from 7.12.4 to ^7.12.6 ([93d92ae](https://github.com/nextcloud/mail/commit/93d92ae227566595167cd989c65f2a899aa157cf))\n* **deps:** bump @nextcloud/vue from 7.5.0 to ~7.8.0 ([93d1016](https://github.com/nextcloud/mail/commit/93d1016a48435a6fbcc9165da126dbe9556a8907))\n* **deps:** bump @nextcloud/vue from 7.7.0 to ^7.7.1 ([6d012a3](https://github.com/nextcloud/mail/commit/6d012a3d0b316bd74e1f476280fbd68fb33bdf07))\n* **deps:** bump @nextcloud/vue from 7.8.0 to ^7.8.5 ([59d1982](https://github.com/nextcloud/mail/commit/59d1982e7b74f417a69c03643e15986be77d3d9c))\n* **deps:** bump @nextcloud/vue from 7.8.5 to ^7.11.3 ([ec4732b](https://github.com/nextcloud/mail/commit/ec4732bce76f6b1ea97e9f952f027459cf57acb0))\n* **deps:** bump @nextcloud/vue-dashboard from 2.0.1 to ^2.0.1 ([f636457](https://github.com/nextcloud/mail/commit/f63645707ac4d6e5478039ffc7f31e50f7717d55))\n* **deps:** bump arthurhoaro/favicon from 1.3.3 to ^1.3.4 (main) ([#8995](https://github.com/nextcloud/mail/issues/8995)) ([04fa7d0](https://github.com/nextcloud/mail/commit/04fa7d0d583b491c51cb9a87b357f03912904316))\n* **deps:** bump arthurhoaro/favicon from 1.3.4 to v2 ([88a6bf7](https://github.com/nextcloud/mail/commit/88a6bf7f0aade4fb0a153c1e6553c498d19e806d))\n* **deps:** bump bytestream/horde-imap-client from 2.32.0 to ^2.33.1 (main) ([#8862](https://github.com/nextcloud/mail/issues/8862)) ([4619663](https://github.com/nextcloud/mail/commit/4619663931caffae0c7da7eb7b0373b1ffcdafc1))\n* **deps:** bump cerdic/css-tidy from 2.0.3 to v2.1.0 (main) ([#8889](https://github.com/nextcloud/mail/issues/8889)) ([d88c084](https://github.com/nextcloud/mail/commit/d88c0845b47eb1a41be6fea7f1f6556813584015))\n* **deps:** bump christophwurst/kitinerary-bin from 0.3.0 to ^0.4 ([9e152bd](https://github.com/nextcloud/mail/commit/9e152bda26bc3d57c3e4c5b54b2fc0eaad74d9b6))\n* **deps:** bump christophwurst/kitinerary-sys from 0.2.0 to ^0.2.1 ([185760b](https://github.com/nextcloud/mail/commit/185760b914a995d0996ae502f8e14043140896a4))\n* **deps:** bump ckeditor family from 35.1.0 to v35.4.0 ([ecf545c](https://github.com/nextcloud/mail/commit/ecf545cf9d77c3d73512b4f07c522c9d33837785))\n* **deps:** bump ckeditor family from 35.4.0 to v37 ([baa8e33](https://github.com/nextcloud/mail/commit/baa8e33157f57fce5dec66f4e419567e74ff005a))\n* **deps:** bump ckeditor family from 37.0.1 to v37.1.0 ([ada9892](https://github.com/nextcloud/mail/commit/ada9892b482c18972cbe291ff2991a67b586122f))\n* **deps:** bump core-js from 3.28.0 to ^3.29.0 ([e9fdca5](https://github.com/nextcloud/mail/commit/e9fdca5c6969ac6fc25f8722e2c121c12a3bf6b5))\n* **deps:** bump core-js from 3.29.0 to ^3.29.1 ([0ae1b80](https://github.com/nextcloud/mail/commit/0ae1b809645babbe8a881863def49048c2444f98))\n* **deps:** bump core-js from 3.29.1 to ^3.30.1 ([a19e752](https://github.com/nextcloud/mail/commit/a19e7528a8b02819debde15b0013a590ee91dc66))\n* **deps:** bump core-js from 3.30.1 to ^3.30.2 ([b1f8354](https://github.com/nextcloud/mail/commit/b1f8354aa099f8bfcbc10bbc4960e5525b81f56c))\n* **deps:** bump core-js from 3.30.2 to ^3.31.0 (main) ([#8542](https://github.com/nextcloud/mail/issues/8542)) ([3f5cb32](https://github.com/nextcloud/mail/commit/3f5cb32ddec5c767ab647cc17c811409ab499cf6))\n* **deps:** bump core-js from 3.31.0 to ^3.31.1 (main) ([#8619](https://github.com/nextcloud/mail/issues/8619)) ([a204a78](https://github.com/nextcloud/mail/commit/a204a789a0f43e09c12f9133aee5937f56fc812c))\n* **deps:** bump core-js from 3.31.1 to ^3.32.2 (main) ([#8877](https://github.com/nextcloud/mail/issues/8877)) ([cd75e3c](https://github.com/nextcloud/mail/commit/cd75e3c3170564c4675c6a7a1b89a69032aa9189))\n* **deps:** bump core-js from 3.32.2 to ^3.33.0 (main) ([#8921](https://github.com/nextcloud/mail/issues/8921)) ([9591a27](https://github.com/nextcloud/mail/commit/9591a27f717b6b84a15e96c172aa52bba3fda20c))\n* **deps:** bump core-js from 3.33.0 to ^3.33.1 (main) ([#8996](https://github.com/nextcloud/mail/issues/8996)) ([1e1e05d](https://github.com/nextcloud/mail/commit/1e1e05d871ea92b2cb427a236ea1df97ef7b1484))\n* **deps:** bump core-js from 3.33.1 to ^3.33.2 (main) ([#9039](https://github.com/nextcloud/mail/issues/9039)) ([9f8935f](https://github.com/nextcloud/mail/commit/9f8935f9c8dca1ec1af3a2bbc8435a8a42481b30))\n* **deps:** bump dompurify from 2.4.4 to ^2.4.5 ([4666628](https://github.com/nextcloud/mail/commit/466662877a31a3ad9ed2fa69b1eb7cd8a6125e6a))\n* **deps:** bump dompurify from 2.4.5 to v3 ([aac1a47](https://github.com/nextcloud/mail/commit/aac1a47b8e3c6b308bf331ab1077283133eb04b6))\n* **deps:** bump dompurify from 3.0.1 to ^3.0.2 ([6b5e91f](https://github.com/nextcloud/mail/commit/6b5e91fbeae6539a86e1bcf59381fff19ba019fc))\n* **deps:** bump dompurify from 3.0.2 to ^3.0.3 ([36b38fc](https://github.com/nextcloud/mail/commit/36b38fcdee9d1bc54481515d844a2f2a8733e354))\n* **deps:** bump dompurify from 3.0.3 to ^3.0.5 (main) ([#8600](https://github.com/nextcloud/mail/issues/8600)) ([bd916f4](https://github.com/nextcloud/mail/commit/bd916f44b1e5efaa73f70b2a37f9270e7565b927))\n* **deps:** bump dompurify from 3.0.5 to ^3.0.6 (main) ([#8913](https://github.com/nextcloud/mail/issues/8913)) ([520b22b](https://github.com/nextcloud/mail/commit/520b22bd744086c22c7934ea29ba1fd6f9ca2403))\n* **deps:** bump html-to-text from 9.0.4 to ^9.0.5 ([bb50bd3](https://github.com/nextcloud/mail/commit/bb50bd3ee49028ee9882bcad5ddd1b59e94edcaf))\n* **deps:** bump iframe-resizer from 4.3.4 to ^4.3.5 ([292a4ed](https://github.com/nextcloud/mail/commit/292a4eda417ec841b61874db5b3ceb0c12f67c4a))\n* **deps:** bump iframe-resizer from 4.3.5 to ^4.3.6 ([1258c20](https://github.com/nextcloud/mail/commit/1258c204a8b18b5454b41654089d73075fa6e108))\n* **deps:** bump iframe-resizer from 4.3.6 to ^4.3.7 (main) ([#8876](https://github.com/nextcloud/mail/issues/8876)) ([a0e1b75](https://github.com/nextcloud/mail/commit/a0e1b758a5b7b6e3aae9d96c2a2292c0446cf47f))\n* **deps:** bump ramda from 0.28.0 to ^0.29.0 ([dc1b797](https://github.com/nextcloud/mail/commit/dc1b797b2e1bd9320b73d3725299c85e3636adde))\n* **deps:** bump ramda from 0.29.0 to ^0.29.1 ([a7da9c5](https://github.com/nextcloud/mail/commit/a7da9c57c8666f0192f1fa68f0358e9821263b2b))\n* **deps:** bump rubix/ml from 2.3.0 to v2.3.1 ([3f3b8ab](https://github.com/nextcloud/mail/commit/3f3b8abf08855042ff04d779607f30584597dd76))\n* **deps:** bump rubix/ml from 2.3.1 to v2.3.2 ([b1d0c39](https://github.com/nextcloud/mail/commit/b1d0c39f0e061caf8d15481f5f67326c5fc428ec))\n* **deps:** bump rubix/ml from 2.3.2 to v2.4.0 (main) ([#8878](https://github.com/nextcloud/mail/issues/8878)) ([2bf6339](https://github.com/nextcloud/mail/commit/2bf6339760d4d654883f0f4768ed3a3567755f1c))\n* **deps:** bump stylelint from 14.16.1 to v15 ([58cc279](https://github.com/nextcloud/mail/commit/58cc279cc100ebe7a146f970b912839a6f79f608))\n* **deps:** bump stylelint from 15.10.1 to ^15.10.2 (main) ([#8652](https://github.com/nextcloud/mail/issues/8652)) ([55071f1](https://github.com/nextcloud/mail/commit/55071f1bfcb319b93be867e2a9993fe945eca7ba))\n* **deps:** bump stylelint from 15.10.2 to ^15.10.3 (main) ([#8794](https://github.com/nextcloud/mail/issues/8794)) ([19fb7d1](https://github.com/nextcloud/mail/commit/19fb7d13a55f29a4de1ac60ffacfcbfca1662a75))\n* **deps:** bump stylelint from 15.10.3 to ^15.11.0 (main) ([#8972](https://github.com/nextcloud/mail/issues/8972)) ([029a85e](https://github.com/nextcloud/mail/commit/029a85ec6283b5a5f64d8109ba3a086c24213105))\n* **deps:** bump stylelint from 15.6.0 to ^15.6.1 ([bb01248](https://github.com/nextcloud/mail/commit/bb012480e1bcc746f2410f6a2c41241609839eb9))\n* **deps:** bump stylelint from 15.6.1 to ^15.6.2 ([36919f8](https://github.com/nextcloud/mail/commit/36919f817dc88d104aa7efd63ab571fae7024ab9))\n* **deps:** bump stylelint from 15.6.2 to v15.10.1 ([03a1960](https://github.com/nextcloud/mail/commit/03a19607efa299c92c51cbb53df7d75e0392db7f))\n* **deps:** bump uuid from 9.0.0 to ^9.0.1 (main) ([#8861](https://github.com/nextcloud/mail/issues/8861)) ([c127802](https://github.com/nextcloud/mail/commit/c1278020abf4b0b2dc42687913d527c02f889279))\n* **deps:** bump vue monorepo from 2.7.14 to ^2.7.15 (main) ([#8998](https://github.com/nextcloud/mail/issues/8998)) ([048cfcf](https://github.com/nextcloud/mail/commit/048cfcf180064f8b02fb5be08776055bc4b91e56))\n* **deps:** bump webdav from 4.11.2 to ^4.11.3 (main) ([#8832](https://github.com/nextcloud/mail/issues/8832)) ([6a3eb86](https://github.com/nextcloud/mail/commit/6a3eb86ac548e23d7dd032c2553873c8848f0661))\n* **deps:** bump webpack to v5.76.0 ([283751c](https://github.com/nextcloud/mail/commit/283751c36c014f0f550a9324870f0f10b7aa5dc2))\n* **deps:** pin @ckeditor/ckeditor5-dev-utils from 37.0.1 to 37.0.1 ([97d3f99](https://github.com/nextcloud/mail/commit/97d3f99dcc5a75f1b9d6d71553db877ea5d6dd94))\n* **deps:** pin dependencies ([04f90aa](https://github.com/nextcloud/mail/commit/04f90aac8fa8e3406c5678e1176a5eccc167c9cc))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-utils to ~33.0.1 ([b6c05fb](https://github.com/nextcloud/mail/commit/b6c05fb41716eecefd6edb7a74907e82c30030bf))\n* **deps:** update dependency @ckeditor/ckeditor5-dev-webpack-plugin to ~31.1.13 ([1a6df4d](https://github.com/nextcloud/mail/commit/1a6df4dccbeb528935b57b7823554330cde584c6))\n* **deps:** update dependency @nextcloud/calendar-js to ^3.2.0 ([34e890f](https://github.com/nextcloud/mail/commit/34e890f6b140b0d660eb063e54abf5d539aa430c))\n* **deps:** update dependency @nextcloud/l10n to ^2.1.0 ([9e02ddf](https://github.com/nextcloud/mail/commit/9e02ddf783442d446081c749e670ac8896b35e67))\n* **deps:** update dependency @nextcloud/logger to ^2.5.0 ([63fa8fc](https://github.com/nextcloud/mail/commit/63fa8fcd18fd3be24d59fc8877a52af33956dbf5))\n* **deps:** update dependency @nextcloud/router to ^2.0.1 ([640cb16](https://github.com/nextcloud/mail/commit/640cb16318de8b66d8594983696d0326eb04bdc5))\n* **deps:** update dependency arthurhoaro/favicon to ^1.3.3 ([3dd40d9](https://github.com/nextcloud/mail/commit/3dd40d9c983d230257c26033d56c609a885b2834))\n* **deps:** update dependency bamarni/composer-bin-plugin to ^1.8.2 ([72a6c3d](https://github.com/nextcloud/mail/commit/72a6c3da4051f6fbe80dcf5f9fbca60e8e6a7902))\n* **deps:** update dependency bytestream/horde-exception to ^2.2.0 ([c6a22fb](https://github.com/nextcloud/mail/commit/c6a22fb5145f96cc6f0f1583b4a7712fe76dd5aa))\n* **deps:** update dependency bytestream/horde-imap-client to ^2.32.0 ([fd710ca](https://github.com/nextcloud/mail/commit/fd710caa1bc5c8e1d0273c50ad1af779e3779262))\n* **deps:** update dependency bytestream/horde-mail to ^2.7.1 ([e7f928a](https://github.com/nextcloud/mail/commit/e7f928aa0445e360a6c8148d3cd07b87c920b285))\n* **deps:** update dependency bytestream/horde-mime to ^2.13.0 ([9ba0faa](https://github.com/nextcloud/mail/commit/9ba0faaf21c7a488d7bd68b659d0bf0792ae4b57))\n* **deps:** update dependency bytestream/horde-stream to ^1.7.1 ([32dd650](https://github.com/nextcloud/mail/commit/32dd6505b093c91c688231f6297147d2f6462220))\n* **deps:** update dependency bytestream/horde-stringprep to ^1.2.1 ([6899089](https://github.com/nextcloud/mail/commit/6899089b54536f6887ac0ed8fb0bfd85c64e3dbe))\n* **deps:** update dependency bytestream/horde-support to ^2.4.0 ([0815416](https://github.com/nextcloud/mail/commit/0815416339873da5fcac33742d2e9564311a71c4))\n* **deps:** update dependency bytestream/horde-text-filter to ^2.5.0 ([c3e551a](https://github.com/nextcloud/mail/commit/c3e551ad07f1cfd0bae89b503526807c8d7dab5f))\n* **deps:** update dependency bytestream/horde-util to ^2.7.0 ([3189a16](https://github.com/nextcloud/mail/commit/3189a1662e5fc3473cb517a0bdc94d45773d154c))\n* **deps:** update dependency core-js to ^3.28.0 ([6024f02](https://github.com/nextcloud/mail/commit/6024f025b649fe714a36cd4544c706868e8cf403))\n* **deps:** update dependency dompurify to ^2.4.4 ([f5e1f7a](https://github.com/nextcloud/mail/commit/f5e1f7a322fe3324342f12a92c6df41352713950))\n* **deps:** update dependency html-to-text to ^9.0.4 ([8cd5302](https://github.com/nextcloud/mail/commit/8cd53027c1e893bcb5f3dc32cc03b3ccd8a85943))\n* **deps:** update dependency html2text/html2text to ^4.3.1 ([e7c6575](https://github.com/nextcloud/mail/commit/e7c65752296babeb30fb2ffce4d9be7755cff9e4))\n* **deps:** update dependency iframe-resizer to ^4.3.4 ([b0b5368](https://github.com/nextcloud/mail/commit/b0b536802116bc562b89b9e849253b34c98b0427))\n* **deps:** update dependency js-base64 to ^3.7.5 ([e0d0502](https://github.com/nextcloud/mail/commit/e0d0502a0f6c943022987ebafb70dd971557a0b0))\n* **deps:** update dependency nextcloud/horde-smtp to ^1.0.2 ([de218de](https://github.com/nextcloud/mail/commit/de218de8faf08072fd032ab7516efbd07f3b1969))\n* **deps:** update dependency sabberworm/php-css-parser to ^8.4.0 ([18dc8ca](https://github.com/nextcloud/mail/commit/18dc8cacc7d8d2d1c20f29e89a3f377276be0550))\n* **deps:** Update voku/* to fix PHP8.2 warnings ([5b816be](https://github.com/nextcloud/mail/commit/5b816be463bfb11b6306b33f89bb293930028150))\n* **deps:** Update wamania/php-stemmer and voku/portable-utf8 ([f176956](https://github.com/nextcloud/mail/commit/f176956aff7d299dc148b4865fccc0792be99556))\n* downgrade nextcloud/vue to 7.8.0 to fix envelope list ([7c7da66](https://github.com/nextcloud/mail/commit/7c7da66a3704846de3b5ab29ab3ba1f5d2fc3ce5))\n* **drafts:** delete old draft when saving new version ([d7a9370](https://github.com/nextcloud/mail/commit/d7a93709b8af95a1a153f805bf518bb4c498c201))\n* drop index on mail_messages_retention.message_id ([a884ebf](https://github.com/nextcloud/mail/commit/a884ebf2ea187c78c2d8a0837bc848c15a8b42e9))\n* drop unique index on mail_messages_snoozed.message_id ([d7e397e](https://github.com/nextcloud/mail/commit/d7e397e5844d47a23bb8cfa339560b76ac995049))\n* endless loop on mailbox initialization ([0048e40](https://github.com/nextcloud/mail/commit/0048e4002cf6c91680c8855b2a41c91708d85e1c))\n* **envelope menu:** prevent modals from closing automatically ([b0209f1](https://github.com/nextcloud/mail/commit/b0209f1aae8190812fa07ed275d44fd80e352c08))\n* handle attachments without transfer encoding properly ([8c3c248](https://github.com/nextcloud/mail/commit/8c3c248c585ba8da036cd8bc3cc2cdfc79ad02f3))\n* handling of envelope fetch error messages ([d4a5e8e](https://github.com/nextcloud/mail/commit/d4a5e8e9c697ad27c0c63f81e2872d33cfef3cb1))\n* Harden outbox/draft message retrieval of shared storage ([2eaa6eb](https://github.com/nextcloud/mail/commit/2eaa6eb145a6f856c402d71d4fe61869815ec6f3))\n* html-entitites via mb_convert_encoding was deprecated with php 8.2 ([71490a0](https://github.com/nextcloud/mail/commit/71490a0b02bbc0fd8844a5c39d44e609f4448986))\n* **i19n:** Changed grammar ([7a36cdb](https://github.com/nextcloud/mail/commit/7a36cdbbd2c02fa7254a6d53e28715bf827daec5))\n* **imap:** Chunk MessageMapper::findByIds by command length ([768d8f8](https://github.com/nextcloud/mail/commit/768d8f8ffc505c587686a13d97dbef017aaf23c7))\n* **imap:** Chunk UIDs by string length ([df9e386](https://github.com/nextcloud/mail/commit/df9e386bdd4e9b1d483acd07a94a9b04c6ac5dc2))\n* **imap:** Ignore no select mailboxes for MYRIGHTS ([426d51f](https://github.com/nextcloud/mail/commit/426d51f105d4103435a0a0875e25a0a635d33adf))\n* **imap:** Ignore non existent mailboxes (again) ([e5e6402](https://github.com/nextcloud/mail/commit/e5e640209fb140e6ff97b7bfaccd704801563764))\n* **imap:** Log exception of failed namespace fetch ([74159b2](https://github.com/nextcloud/mail/commit/74159b28a631567e6aa4582c09d84551e3a45ae1))\n* **imap:** Only fetch mailbox STATUS once ([9582004](https://github.com/nextcloud/mail/commit/9582004b27320a73ffe701e3fba6db9a2354ace3))\n* **mailbox cache:** Fix mailbox cache sync scope of current mailbox ([4d7c52d](https://github.com/nextcloud/mail/commit/4d7c52dc7069f7b940da31166cdfbede836a3fca))\n* **mailto:** show empty thread view on handler ([43bdb38](https://github.com/nextcloud/mail/commit/43bdb38ee501d3e884ac275b5dba4141643d1627))\n* **mailvelope:** hide the missing pgp key warning when mailevelope is disabled again ([ef2481f](https://github.com/nextcloud/mail/commit/ef2481f8b7bf7124fafc08ee4e36a5902828693f))\n* make nested toolbar working for signature editor ([8c0965c](https://github.com/nextcloud/mail/commit/8c0965c775ab672cf1a2c24f161bad35da71da4c))\n* Make no sent mailbox configurged exception readable ([7109f99](https://github.com/nextcloud/mail/commit/7109f998fa34e1920b917c1fb1e8859b957ba112))\n* Merge overlapping recipient popovers ([c2925f1](https://github.com/nextcloud/mail/commit/c2925f143385f6a7e0f76a3108e4173c7e1ef7a0))\n* **message-filter:** Show starred messages in Favourites again ([465d4e5](https://github.com/nextcloud/mail/commit/465d4e5d52d5cc847523641b554911095d2011cd))\n* move to.exact route option to a prop ([a10117c](https://github.com/nextcloud/mail/commit/a10117ced60837c8993f1e4f1b0a84a81f0d6f9d))\n* **outbox:** select correct account/alias when opening messages ([2471880](https://github.com/nextcloud/mail/commit/247188068f2c364939de10bfce92d25a93c590eb))\n* **php:** Fix ProvisioningMiddleware method return type ([aae086c](https://github.com/nextcloud/mail/commit/aae086cbcb408764d5c8279e17d4fe87f358248d))\n* Position thread envelope icons relative to avatar ([ae619aa](https://github.com/nextcloud/mail/commit/ae619aa46b950858b4bcff0ad545a4955f0c8d3e))\n* **preprocessing:** chunk message query ([62a1c98](https://github.com/nextcloud/mail/commit/62a1c98a83677b937dff8f890acd9db74e5c349a))\n* **provisioning:** Clear cache before returning ([961533d](https://github.com/nextcloud/mail/commit/961533db6b7d7633638d52cc862b638830929e64))\n* **provisioning:** Clear config cache after every mutation ([b6f7073](https://github.com/nextcloud/mail/commit/b6f707350de39c07728ab46f84e73d16c52fdc17))\n* **provisioning:** Return database ID of new configs ([81f35a2](https://github.com/nextcloud/mail/commit/81f35a2990c52c9aeda5b53ed48f34044a0d1beb))\n* **proxy:** Add image proxy rate limit ([18f886c](https://github.com/nextcloud/mail/commit/18f886c37bd48db00087143ae012e37405559c70))\n* **quota:** Rename placeholder and fix desktop notification ([cc87c54](https://github.com/nextcloud/mail/commit/cc87c54f02f6d084e7f3bd1ee7f1b3eecc15e515))\n* **Quota:** set job time insensitive and lower interval ([0e7f635](https://github.com/nextcloud/mail/commit/0e7f63572d47f6db021b22a333c29e0cff6ef951))\n* Rate-limit IMAP auth if the password is wrong ([6528dec](https://github.com/nextcloud/mail/commit/6528dec049e31b7718b9b03d08f0d672c84fb695))\n* regressions from ACL pulls ([6cde824](https://github.com/nextcloud/mail/commit/6cde82485907ddeb37c8edea497ebee9bd22fc45))\n* **retention:** properly clean orphans ([c99577d](https://github.com/nextcloud/mail/commit/c99577dccbccd39725dc29aba19e7b7c84ec454c))\n* Revert empty array checks in Horde Cache ([b780e7e](https://github.com/nextcloud/mail/commit/b780e7ea30f9db70c195d89a0de7307dc15523df))\n* saving preferences not extracting the returned value properly ([abe3205](https://github.com/nextcloud/mail/commit/abe3205d81848faeed9d95d63685a4289cd8e570))\n* **search:** Fix combining IMAP and DB search results ([3aabd7a](https://github.com/nextcloud/mail/commit/3aabd7a2a369ba4ab6f766d501045e959bdc6d5f))\n* **search:** Limit recipient joins to their types ([1bbb44b](https://github.com/nextcloud/mail/commit/1bbb44b6a888c697e5e241cd8abffa694f53c844))\n* **search:** URL-encode all parameters to preserve special characters ([1ef331c](https://github.com/nextcloud/mail/commit/1ef331c2707a1cf04183340ad78c067b3fbc4097))\n* **search:** Use corresponding table alias for recipient search ([2270a93](https://github.com/nextcloud/mail/commit/2270a931b5af7f2902b256a1471b2a251a917bfb))\n* **sender-details:** show contact names again ([b448594](https://github.com/nextcloud/mail/commit/b4485947b642af3b3751372ed0382808496db975))\n* **settings:** fix account settings modal close button ([dfbfaa3](https://github.com/nextcloud/mail/commit/dfbfaa3de38c5faf5a3040db72466ed2e0820c2d))\n* **setup:** Fix sending password for OAUTH accounts ([871ffc9](https://github.com/nextcloud/mail/commit/871ffc9b890555718d126b8e896ed0072acac72e))\n* **setup:** Fix storing password when we don't expect one ([964f665](https://github.com/nextcloud/mail/commit/964f665f1a935896a41f31b49916ad0facbc42b7))\n* **setup:** Rate limit auto config attempts ([a82b8ab](https://github.com/nextcloud/mail/commit/a82b8ab9cba4b17c0fdcd0a4ae4b2ac7744692cd))\n* share enumeration constraints on autocomplete ([1f4ad67](https://github.com/nextcloud/mail/commit/1f4ad67c6a23f053a8b8a3a3c669eabaf1753f49))\n* **sieve:** load sieve scipt on open settings ([5a7a04f](https://github.com/nextcloud/mail/commit/5a7a04f69f4ba8025bef4d68c64967c70eb2419e))\n* **sieve:** show feedback on syntax error ([3443da7](https://github.com/nextcloud/mail/commit/3443da78be8186fd12a1af94227afe607ef9fb25))\n* **smime:** add missing primary key to certificate table ([59e7728](https://github.com/nextcloud/mail/commit/59e77285e31e1d71f69763171e473dd7fed48b77))\n* **smime:** add missing ReturnTypeWillChange annotation ([6607f4d](https://github.com/nextcloud/mail/commit/6607f4df966a1557ac69c3dc4189e616fc0c9768))\n* **smime:** handle certificates with no emailAddress field ([3490178](https://github.com/nextcloud/mail/commit/3490178e3a5a2f96f383da297bcedf0bb83c789e))\n* **smime:** handle PKCS12 stores with multiple certificates ([1c445d0](https://github.com/nextcloud/mail/commit/1c445d0070e3562afff085fa302901305db8d0be))\n* **smime:** set primary key in first migration ([3a19298](https://github.com/nextcloud/mail/commit/3a1929879ad5fe190f6180c0d271ac9272e65e49))\n* **snooze:** Add cleanup orphan db entries ([bd184dd](https://github.com/nextcloud/mail/commit/bd184ddba9badf7cb808ee1143989b08996f1427))\n* **Snooze:** Add unsnooze action ([3f5f9dd](https://github.com/nextcloud/mail/commit/3f5f9ddd4ab193d0790a6bc88fd13c42f38ed17d))\n* **Snooze:** Allow snoozing gmail messages ([0a98404](https://github.com/nextcloud/mail/commit/0a984048ccdac67ac8bd0be0dd2e1a155ebd5bbd))\n* **snooze:** create snooze mailbox on first snooze ([d38e426](https://github.com/nextcloud/mail/commit/d38e4265d6de3f9d38fc386bedfc08cd8be4b733))\n* **snooze:** force sync of snooze mailbox ([4afdafc](https://github.com/nextcloud/mail/commit/4afdafcf1c802fff1b119b1ad073a8f4c1425c95))\n* **Snooze:** Move the message back to src mailbox on wake ([c5e2bee](https://github.com/nextcloud/mail/commit/c5e2bee1e463b2f8c2986837e939e42ec282c357))\n* **Snooze:** some minor changes ([326d48f](https://github.com/nextcloud/mail/commit/326d48fd85a2e6cafe6b27f63f0fb48976ae162f))\n* **Snooze:** Sort snooze mailbox as specialUse ([ad6b723](https://github.com/nextcloud/mail/commit/ad6b723e18f16c879b47d5dd051d0fe67718bb98))\n* **strings:** Explicit set/unset tag in TagModal ([51bc6a2](https://github.com/nextcloud/mail/commit/51bc6a2b221f7c7028079e0ad1584371357d6b94))\n* **strings:** Placeholders in SearchMessage comp ([80f7108](https://github.com/nextcloud/mail/commit/80f710835fa546105150de6aad5b8c4fe2612ea9))\n* **sync:** mailboxes not being synced due to short circuiting ([7c2c806](https://github.com/nextcloud/mail/commit/7c2c8063c8f7a4abb57ceb5e351efe1e8fe6e882))\n* **sync:** return if headers couldn't be parsed ([998bf34](https://github.com/nextcloud/mail/commit/998bf34b5c6f36d46c5e96237a79b77d9a09c737))\n* **tags:** Fix multiple tags with same label ([3773d0b](https://github.com/nextcloud/mail/commit/3773d0bcd263ac871d4bc518b4c18df6ecb2993b))\n* **tags:** Hide \"Has Cal\" tag ([87d3aa3](https://github.com/nextcloud/mail/commit/87d3aa3a54265e4aed44e0b561974c8a9a805a50))\n* **unsubscribe:** fix button style ([9142ada](https://github.com/nextcloud/mail/commit/9142ada5224cb23305f498cc709fd29395617471))\n* update interface to match implementation ([55f6c7e](https://github.com/nextcloud/mail/commit/55f6c7e131fa43eb9adde08df9343b2aa3cbb048))\n* update mocked time for new job interval ([1b83193](https://github.com/nextcloud/mail/commit/1b8319324eb1adcbb96c8f40d908763d483e109b))\n* use api to read input value ([89b3f9c](https://github.com/nextcloud/mail/commit/89b3f9ccc00dba84d7adb84684ed44f72749fe10))\n* **XOAUTH2:** Defer OAUTH account detection ([df69d19](https://github.com/nextcloud/mail/commit/df69d19ed22a6c7613c1843d931398c62c12b739))\n\n\n### Features\n\n* **acl:** check delete acl for move operation ([8d7a80b](https://github.com/nextcloud/mail/commit/8d7a80b8b1908244daa98b67f08f7eb7d46010ae))\n* **acl:** respect acl for MailboxInlinePicker ([83ff894](https://github.com/nextcloud/mail/commit/83ff89433031be3b0ea5953e302f9d88a2ef7b6d))\n* **acl:** Use shared folder icon for shared mailboxes ([c0687bf](https://github.com/nextcloud/mail/commit/c0687bf5f885e35f56a4ebc75cdd0c8520866eb0))\n* add snooze mvp ([e16b6a7](https://github.com/nextcloud/mail/commit/e16b6a75a4f5e24deacaa5a278d32f65062746f9))\n* add utility mailboxHasRights ([08d08bb](https://github.com/nextcloud/mail/commit/08d08bb6ba888b7277f8030f98d25316587a3e29))\n* Allow a configurable background sync interval ([89e009e](https://github.com/nextcloud/mail/commit/89e009ea22f1800008a9f12122d1b6392c5d2954))\n* **autoresponder:** implement subject placeholder ([42cae42](https://github.com/nextcloud/mail/commit/42cae425b6217c1173662db6aa1d3ca040a3f4a1)), closes [#7216](https://github.com/nextcloud/mail/issues/7216)\n* **classification:** refactor IExtractor::extractor ([1790f01](https://github.com/nextcloud/mail/commit/1790f01ba89d53e30730ce6bfc74e4db8d70d963))\n* compatibility layer for legacy exceptions ([118671f](https://github.com/nextcloud/mail/commit/118671f4d5d85f794f413592509cb7b23615777c))\n* delete tags ([50f0772](https://github.com/nextcloud/mail/commit/50f07725796317b00928c47e217f2c235eb37d69))\n* **deps:** Add Nextcloud 27 support ([aa32a2c](https://github.com/nextcloud/mail/commit/aa32a2c0b0fccead9cfb045085095bf0b3fc7613))\n* **deps:** Add Nextcloud 28 support ([6cc4d93](https://github.com/nextcloud/mail/commit/6cc4d930f935a717b505d1245ff41abaf92fab0e))\n* Easy unsubscribe from lists with http unsubscribe header ([491970a](https://github.com/nextcloud/mail/commit/491970abb12da520426b7a755f018281499bd35d))\n* Easy unsubscribe from lists with mailto unsubscribe header ([dc30fa6](https://github.com/nextcloud/mail/commit/dc30fa60adc173993c82436c24e71b184d5bc7f4))\n* exclude envelopes from junk from threading view ([4ddd3f6](https://github.com/nextcloud/mail/commit/4ddd3f635b10d082a39347c7d407fbbbd171e2af))\n* hide mailboxes when the user is not allowed to move something there ([fdca17f](https://github.com/nextcloud/mail/commit/fdca17fba11943da382cd8b56aac673fa5fc50cb))\n* **imap:** Persist if mailbox is shared or not ([4c27112](https://github.com/nextcloud/mail/commit/4c271120ff564c1ff9e728465c3d82bf92fa57c4))\n* implement trash retention ([de09050](https://github.com/nextcloud/mail/commit/de09050a3a03a3a762250566baa1c99ca400cf58))\n* load active sieve script on demand ([1a7fbc3](https://github.com/nextcloud/mail/commit/1a7fbc39fc791b175659250a5e24ed6a843dd418))\n* **mailbox sharing:** Read, cache and expose my ACL rights ([76d7d7c](https://github.com/nextcloud/mail/commit/76d7d7c9564000c9c52e7c43f7897458f326f34e))\n* move messages to junk folder ([45c5ab9](https://github.com/nextcloud/mail/commit/45c5ab9277ba50b2499ca05e7bf3e568d3ea1a44))\n* **occ:** Add ML prediction command ([98607e2](https://github.com/nextcloud/mail/commit/98607e26237d7c58ec5156421697b6a8ba3e7956))\n* One-click unsubscribe ([f2b61b3](https://github.com/nextcloud/mail/commit/f2b61b383b95cecaafd2fc078aa91999d8feb8f2))\n* parse mailto addresses ([6261efc](https://github.com/nextcloud/mail/commit/6261efcf2feffd37e0b11c6f2bc992235b9a0411))\n* plugin to insert smart picker links ([f34f69b](https://github.com/nextcloud/mail/commit/f34f69b3ab8d0be424cad49afbd70e8a0b93fd04))\n* remove cast to int ([fa5830b](https://github.com/nextcloud/mail/commit/fa5830b43af6bbea2622e5837d39a46aba1a4630))\n* remove toggle for move junk ([fd1437b](https://github.com/nextcloud/mail/commit/fd1437b7a2252e6cf7f62ac5775f2bc3e3f019fa))\n* Rework draft handling front-end ([f1f757e](https://github.com/nextcloud/mail/commit/f1f757e57bcf1fce74fa202c8e261eceb79a0dd4))\n* **search:** Match recipient labels too ([102a070](https://github.com/nextcloud/mail/commit/102a07060619432324729d7a50a56f7c5d5dfb91))\n* **search:** Use case-independent wildcard matches for recipients ([8955638](https://github.com/nextcloud/mail/commit/89556386b4a21fe37d879f93735caa95500342fe))\n* send multiple flags in a single request ([95319c0](https://github.com/nextcloud/mail/commit/95319c043bbafa32228b69fc0fa8626d056f31e8))\n* set app name for mail ([8005431](https://github.com/nextcloud/mail/commit/8005431d91a37d47223fbcd6a65a19790c6af6c1))\n* **settings:** add title to account settings modal ([9bd0f9f](https://github.com/nextcloud/mail/commit/9bd0f9f6bb8a43855cf0a885f6cac542984ce1af))\n* **smime:** decrypt incoming messages ([6fcb907](https://github.com/nextcloud/mail/commit/6fcb90796f4d0088d576aa56ada50bcc36b6ffc0))\n* **smime:** encrypt messages ([9c568b5](https://github.com/nextcloud/mail/commit/9c568b5e25d6f3eaf09d556e09825d5983d02077))\n* **smime:** import pkcs12 certificates ([5a1428a](https://github.com/nextcloud/mail/commit/5a1428ac3023ad93deedadf6565a8d6d8a643cbd))\n* **smime:** import smime certificates ([4c35589](https://github.com/nextcloud/mail/commit/4c35589f7cd52ca24cfec3b5630fbdc43d67e81d))\n* **smime:** show a warning when a signature is not verified ([e305db8](https://github.com/nextcloud/mail/commit/e305db89ac0b0480cd66cf105ec8dc6925700f73))\n* **smime:** sign outgoing emails ([c0db433](https://github.com/nextcloud/mail/commit/c0db433d75ec01b95fcbf629d6e6ceaf43ab57ec))\n* **smime:** verify signature of encrypted messages ([1efd801](https://github.com/nextcloud/mail/commit/1efd8013bcb241df128b1a5894308abe44e18edd))\n* **smime:** verify signed messages ([3ab22fa](https://github.com/nextcloud/mail/commit/3ab22fade847175938b4a39590bb6c63100461e0))\n* **snooze:** Disable snooze on AJAX cron ([49725af](https://github.com/nextcloud/mail/commit/49725af3a9365237168a15d4d11f3ab291d69bdd))\n* **unsubscribe:** validate dkim signature for one click unsubscribe ([448dabd](https://github.com/nextcloud/mail/commit/448dabd64427483f4bc3068c133ef20263e3ef6e))\n* use proper json response for getDkim ([35d824d](https://github.com/nextcloud/mail/commit/35d824dca070218bd492f118af431b9e841bff3f))\n\n\n### Performance Improvements\n\n* **autoloader:** Use Composer's authoritative classmap ([1e28bc6](https://github.com/nextcloud/mail/commit/1e28bc60db0c0c3dac537b2422d37185299c2d4e))\n* **dashboard:** implement widget item api v2 ([19f21af](https://github.com/nextcloud/mail/commit/19f21af9914bc7cd338dc37e391bea75fb272aa3))\n* **frontend:** Load NewMessageModal async ([ab26e4b](https://github.com/nextcloud/mail/commit/ab26e4bb359c5fe9edd3f167ee0dd3e097904723))\n* **frontend:** Load the account settings modal async ([f7949b3](https://github.com/nextcloud/mail/commit/f7949b32320fc86b203a5ea8484deb00a9c0e907))\n* **imap:** Reduce number of STATUS commands for background mailbox sync ([f4b01d9](https://github.com/nextcloud/mail/commit/f4b01d9fa8adee1825abcc1c3a32268dc98c4856))\n* **PHP:** Use static closures where possible ([e02a205](https://github.com/nextcloud/mail/commit/e02a2051f517a10b9f0e521ce03759ed6652a3e7))\n\n\n### Reverts\n\n* Revert \"improve message preview\" ([04f1842](https://github.com/nextcloud/mail/commit/04f1842f105e4a57a4fdd9d16db4f5743dd054ce))\n* Revert \"fix(deps): update dependency @nextcloud/vue to ^7.7.0\" ([a5568e2](https://github.com/nextcloud/mail/commit/a5568e2cd49a8ef4ceb59dc6ee11f3bbff56b182))\n* Revert \"chore(deps): Enable renovate bumps on main\" ([255efb7](https://github.com/nextcloud/mail/commit/255efb7902349152cda31fa98fd1c711d6107393))\n* Revert \"Add Provision info to occ account:export command\" ([260dc4e](https://github.com/nextcloud/mail/commit/260dc4e2f9e09740a483e092fa5ef897f4adc56b))\n* Revert \"Explicitly specify Postgres 14 as NC25 isn't compatible with Postgres 15\" ([370c29e](https://github.com/nextcloud/mail/commit/370c29e27dc8c6f12aee4132df874f6792c20e85))\n\n\n\n# [2.0.0-RC1](https://github.com/nextcloud/mail/compare/v2.0.0-beta.7...v2.0.0-RC1) (2022-09-26)\n\n\n\n# [2.0.0-beta4](https://github.com/nextcloud/mail/compare/v2.0.0-beta3...v2.0.0-beta4) (2022-09-08)\n\n\n\n# [2.0.0-beta3](https://github.com/nextcloud/mail/compare/v2.0.0-beta1...v2.0.0-beta3) (2022-09-06)\n\n\n\n# [2.0.0-beta1](https://github.com/nextcloud/mail/compare/v1.14.0-beta1...v2.0.0-beta1) (2022-09-05)\n\n\n### Reverts\n\n* Revert \"Update vue to 5.4.0\" ([970bcc4](https://github.com/nextcloud/mail/commit/970bcc409e60f4abc6d0bf628cd5d60cd8995011))\n\n\n\n# [1.13.0-beta3](https://github.com/nextcloud/mail/compare/v1.13.0-beta1...v1.13.0-beta3) (2022-05-23)\n\n\n### Reverts\n\n* Revert \"Check account for currentness before reprovisioning it\" ([27fe297](https://github.com/nextcloud/mail/commit/27fe2975aac226aad344d7a54b0858d136565d91))\n\n\n\n# [1.12.0-rc.1](https://github.com/nextcloud/mail/compare/v1.11.0...v1.12.0-rc.1) (2022-04-14)\n\n\n### Reverts\n\n* Revert \"Add more logging to IMAP to DB conversion\" ([9ed5c3b](https://github.com/nextcloud/mail/commit/9ed5c3b2332137461d77da8b30cb66b02068a5ee))\n\n\n\n# [1.11.0](https://github.com/nextcloud/mail/compare/v1.11.0-rc1...v1.11.0) (2021-11-29)\n\n\n\n# [1.11.0-rc1](https://github.com/nextcloud/mail/compare/v1.10.0-RC.1...v1.11.0-rc1) (2021-11-18)\n\n\n### Bug Fixes\n\n* handle invalid imap message id ([b2cdc5a](https://github.com/nextcloud/mail/commit/b2cdc5a8ac1a061ed9521274d92a548074a0e1ca))\n\n\n\n# [1.10.0-RC.1](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.7...v1.10.0-RC.1) (2021-06-22)\n\n\n\n# [1.10.0-alpha.7](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.6...v1.10.0-alpha.7) (2021-06-10)\n\n\n\n# [1.10.0-alpha.6](https://github.com/nextcloud/mail/compare/v1.10.0-alpha.4...v1.10.0-alpha.6) (2021-06-01)\n\n\n\n# [1.9.0](https://github.com/nextcloud/mail/compare/v1.9.0-alpha3...v1.9.0) (2021-03-03)\n\n\n\n# [1.9.0-alpha3](https://github.com/nextcloud/mail/compare/v1.9.0-alpha2...v1.9.0-alpha3) (2021-03-01)\n\n\n\n# [1.8.0](https://github.com/nextcloud/mail/compare/v1.7.0...v1.8.0) (2021-01-20)\n\n\n\n# [1.7.0](https://github.com/nextcloud/mail/compare/v1.6.0...v1.7.0) (2020-11-11)\n\n\n\n# [1.6.0](https://github.com/nextcloud/mail/compare/v1.5.0...v1.6.0) (2020-11-04)\n\n\n### Reverts\n\n* Revert \"Bump @ckeditor/ckeditor5-editor-balloon from 23.0.0 to 23.1.0\" ([fb1235c](https://github.com/nextcloud/mail/commit/fb1235cba31b12519f6b884e2774067eefe2a332))\n* Revert \"Bump @ckeditor/ckeditor5-alignment from 23.0.0 to 23.1.0\" ([f052364](https://github.com/nextcloud/mail/commit/f0523642f312727da08de1d5703992dd936868cf))\n* Revert \"Bump @ckeditor/ckeditor5-block-quote from 23.0.0 to 23.1.0\" ([edb4035](https://github.com/nextcloud/mail/commit/edb403518a06ec1ae47b5be9e070584f42b545ce))\n* Revert \"Bump @ckeditor/ckeditor5-heading from 23.0.0 to 23.1.0\" ([1a4c331](https://github.com/nextcloud/mail/commit/1a4c33165912d068d3003b3a6d859d9c8ae47682))\n\n\n\n# [1.5.0](https://github.com/nextcloud/mail/compare/v1.5.0-rc2...v1.5.0) (2020-10-02)\n\n\n\n# [1.5.0-rc2](https://github.com/nextcloud/mail/compare/v1.5.0-rc1...v1.5.0-rc2) (2020-10-02)\n\n\n\n# [1.5.0-rc1](https://github.com/nextcloud/mail/compare/v1.5.0-beta3...v1.5.0-rc1) (2020-09-29)\n\n\n\n# [1.5.0-beta2](https://github.com/nextcloud/mail/compare/v1.5.0-beta1...v1.5.0-beta2) (2020-09-22)\n\n\n\n# [1.5.0-beta1](https://github.com/nextcloud/mail/compare/v1.5.0-alpha3...v1.5.0-beta1) (2020-09-22)\n\n\n\n# [1.4.0-rc1](https://github.com/nextcloud/mail/compare/v1.4.0-beta2...v1.4.0-rc1) (2020-06-04)\n\n\n\n# [1.4.0-beta2](https://github.com/nextcloud/mail/compare/v1.4.0-beta1...v1.4.0-beta2) (2020-05-26)\n\n\n\n# [1.4.0-beta1](https://github.com/nextcloud/mail/compare/v1.3.3...v1.4.0-beta1) (2020-05-20)"}},"signatureDigest":"sha512"},{"version":"5.10.0-rc.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.0-rc.1/mail-v5.10.0-rc.1.tar.gz","created":"2026-06-17T15:13:56.973663Z","licenses":["agpl"],"lastModified":"2026-06-17T15:13:57.048163Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"pW3A5LQoT0vrX1W3NBqtjsYrJEnAtJiKn/8UWPpZ0BXXFkWF+mlfafkKvZ/ZZAriCl/8pLdsSTRrI8BSn+j9i0wma42Sg+f9+pBy59j6CkQK2C6dhtRM5S2E222lIdT9LKoibRNw+oKp+p+SCI1A2M2nfS5pFLvUcq3FXCEKhNYZm84ab0C05eOOHKWptpqScixechdzYjeQQbC2ZpP+u48rlDaRaaOoTDrg2kCFoWKUdHh91ppzB+sv0wHIVIUwyjb/6p5D7zONcn/dQdDcFMIKZKbOsjfv+Afg5qjyeNvBZ1z7CFFJ6UiM2VjdYPbHAauu6ZuaEjVx3gvZazPxZ6+T9yFQn1MfGckIB9pRzEWP6JtpeM2HgUpTpRzWeYjKdbANNchfjmPZZ8d90hxDsHnFT3cpKPB77FcxGQZu0JwaxIzGmYw1jSB7oOy5I899y+CJs951pgBqvn8QPm3UtaqB97uG+f/3D/YwSrLrsgXkGfgY2GK4i6WLKFTojpRwerfdShKob93RYVQJy9KaL4Bahx4aeg6+BkcpDCOfLpUw3qoUha6NYYBIjtQhYtyrCYGz4iNO03Ojw5yzvprJ4nU3EcQjvrm2w/9ydj5a3vykZJZJvJG3kaCsN29eMZTp1pjFFhSTndijDnNrVNnSDB8i3StI+stRGr35CR6piyA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"5.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/mail/releases/download/v5.10.0/mail-v5.10.0.tar.gz","created":"2026-06-18T07:46:36.639619Z","licenses":["agpl"],"lastModified":"2026-06-18T07:46:36.743252Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"AVh4/9ZJVxP9Ebj8JJuUNdr6qH1yH0uIr9uQ00kXQ64+/32ZnHLYVQ8GJQcNxyzotxcliWl0RxqtoftodAqdVgLnnVM6E8bGTZWzPe2c06H/8aPpQZxY5BUvuTGNnpWcomWC3otnW/7uxFUvFJjarIRI/ILD2RMvZWMqJJu0ogZGWqgBGuBujtV+mQ7EH/7f1XiQR7YWic7ndCYFPlk28G3IMmfpkmM8ejoMr7Xld1rxLCBSjpKKc2LEjSZb2JkYK7du9VdBkMlQFLQsqYkLIIN2TLbktkUsTKtPiSWpSQODr2EfTLT5ToTO7f4RM+MLUl6YuR0OuYtVs/b1o8KRprFDezJJFflleAm94yHtEwQUVQiTs2o9N+GE2VOHz1mZBdBxemWb4gqr2knwuICQLaUqUF94IUwa+ktM06sSrlhWa/6vUvWfhEy7ZlspdNPFEBWdfSdWtHELEJ4dS0jpt0BCgCQ8/BEqe2XEB4yIZM76gTzq17cIyOwZ476F7Umr9BviJ9ujGRhzQnAhQzYdACEFZZ9OSyxkVD+EbMy55yFA2iSIpp6IBkccBFq6FPC101pbQfTXIIeBv/A4ArsDtmGbmvlFpVf3+RVN3Eivlh4gZJkxOKz6Rna/5vtTs7cdQ8K39NAoEHT9nyejOUzEuOlcb3jlqpDcbWFVE8ui86Q=","translations":{"en":{"changelog":"### Added\n* Shortcut to change the password in account server settings\n* AI hint when replying with a meeting\n### Changed\n* Translations\n### Fixed\n* Printing messages\n* Drag and drop into sub-mailboxes blocked by a disabled parent mailbox\n* Prefer sans-serif font over Noto Color Emoji for text rendering"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTI3Mjg5NzQvMjY2MjcwMjI3LTg2Yjk5YmJiLTAzZWEtNDY4Yi04NDA4LWUyNDhlMTczMGJlZC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Mail","summary":"💌 A mail app for Nextcloud","description":"**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://www.horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟢/🟡/🟠/🔴\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/)."}},"isFeatured":true,"authors":[{"name":"kesselb","mail":"","homepage":"https://github.com/kesselb"},{"name":"Christoph Wurst","mail":"","homepage":"https://github.com/ChristophWurst"},{"name":"GretaD","mail":"","homepage":"https://github.com/GretaD"}],"ratingRecent":0.5,"ratingOverall":0.5476190476190477,"ratingNumRecent":0,"ratingNumOverall":84,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIID/zCCAucCAhAVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDE5MTkzMDM0WhcNMjcwMTI1MTkzMDM0WjAPMQ0wCwYD\r\nVQQDDARtYWlsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp++RuliQ\r\nlBeeiPtP0ecBn00OaU1UCpft/NVI5pnSiT9nU4l2kc5IvKjA8UxDB3gWfYTOeBFh\r\ntUHQ2P6UKCmHZT9sApHhqLu2n0V+YhlFIViuaxndSID/M414cl56xOYQusV3Pcae\r\no2dOSeRRzLab3tEaVHlkBSFkGmAwPZItsmTklvV3h1sUysDicYgfXPCkf7K+JgWA\r\nBP7vsWC8B7MDRhcB3enYv5tTcpsyvtGX7bb1oTIWVypcmKsGYfTX12VNBxKzNBIG\r\n8pwdb8Xo0o14TytWsWN7mSHf1XbwfwYMjDWOlMqiRc+mcoKMBH41TfM/CXslSivI\r\nsyvxasEaFdlj8lmKPENdzw1OfYRs43usIf4szwyt4rb8ocXfDipnY3P2hccN6YcZ\r\nl8y8Vsr69ASluDj2A2Pl5vH6xp6tNybZRnN5G6sghhaYaLNDU/TdMyYzz4AY33Ra\r\nHSaMypfcXjd76Aj8jZvcwk1BH+ZsvFqNK7ZKCb7WVcMH8KRcU1sxZ4rp9vviM2fL\r\nL7EVtznm3bSI9jjHXbiwq7RvNRRy+F6YRpAdWGwTU8uUkDabPFi41FikYyzNWauK\r\nJhlDJXl514XjKyMVBjAZYVr5gZZkO1J7C4XzLFbC5UzYNSzW5Iwx/1j5OeYJRxh6\r\n5rhiUwR+COT1wdVsl6khMC8MfBR4unSd338CAwEAATANBgkqhkiG9w0BAQsFAAOC\r\nAQEATBvpqz75PUOFPy7Tsj9bJPaKOlvBSklHH7s43fDDmQbJwswXarZi3gNdKf8D\r\nyO/ACZvO8ANWAWL/WahkOyQtKOYzffaABGcEIP7636jzBdKtgwSGzW3fMwDghG10\r\nqBr2dE6ruOEdSpuZxgMgh2EulgknZUXaHAMI2HjjtAMOBScLQVjOgUqiOHmICrXy\r\nZETmzhx0BXDt5enJYs8R2KMYJNIme1easQRYmWKliXogNY09W7ifT9FHtVW1HX+K\r\nxRS4JXbapjolkxyGSpP+iYSgItVnYzl6o9KZResR4yDsBv7G/8fpV4GQU9IS3zLD\r\nPiZOosVHWJdpUKCw9V4P1prGTQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"passwords_handbook","categories":["tools"],"userDocs":"","adminDocs":"https://git.mdns.eu/nextcloud/passwords/wikis/administrators/index","developerDocs":"","issueTracker":"https://help.nextcloud.com/c/apps/passwords","website":"","created":"2022-01-09T16:43:45.949358Z","lastModified":"2026-10-03T15:00:00.755697Z","releases":[{"version":"2026.9.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.9.0/passwords-handbook.tar.gz","created":"2026-09-15T19:05:51.324701Z","licenses":["agpl"],"lastModified":"2026-09-15T19:05:51.401931Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"qC8CenvTOIouLdHsS45qd/TyPCCi+PwJCAxO8IFl0X97sshASO8sp2ev1uX0ZWTN/T33JoGXgu/gnXRWhOsKxESSWPSyeXFc5wDH90eWA5beivn+E1f0CymZyAhnLgm5aK/L1vHMTyXSBX0cClImM7249KLFuQqA/zEclqe+p3gwwHcd5DpQQuKj+whgvFPG5gCEQ+H3v03q3G6sLsOCbAJw608s7kDsg6Dg7sJqU0ySLpsZEAEqK9L/0ywxlmWAABM3qbLHPNV7Glw/MqlZdriqYYVE029/+XAxhOTkWoDhI1bP6Gi1P0Yj8/8a77q61uP0aXCJT8jJm1RbYYc5kQScVbt+YMmXR0jN1bBM77BF0bDN3Uts67gLh+6tBkOKwe6pINBysyNTdkZvje25ZvCBRoqQFrYNyQKROfEkk9QS7ACBIeshYYLGtzG8LpcJPkZ1RSMymAZoSjbyL6Lg0fDoScUke4h4m3yEC1kE+W/0h3jgbTjEEuTy5dUeYhUa323iydTvpmr62DKZIT00wITUqgFrrLaGbnypcpbP6tmaydT7BgnYSUaDrO5+zwx2lTJw/D0t+18PcQbbCjYrAVH9G1MyfDA7egEkx5XIjOv6tj+nmt0MkmynADeii4jQLxaJviVjHZeZqpYH8FXHr/5t+ecUGxdlZ0M3X7PJUXc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.7.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.7.0/passwords-handbook.tar.gz","created":"2026-07-12T10:53:39.472880Z","licenses":["agpl"],"lastModified":"2026-09-15T18:58:43.098619Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"Ekj4U+eJO5GQHqAWG3nDn7a5nD2GYCrqtaiGpbL80O4Sl2zb+uxazt2/Hpkm41z7OvwhwY25BXPLO9etW1MS/31CmfuY7fisi5eONfa4lSz1qrZ/PeVq5HM3DmKpJhnlN+oU0T17ceQJVMup1FcLu+4ddUTd4NS3xrKkbtiKgiQoMUNC4Z2Dq2EGTzZps/GhiDdWYjA1zi0qmhGrQCvLF0xrJmoeRkhXe0pJG+vpj+EeP5HKk5WwTJhugeNjzp+/rOnF1XBAKMdcFrZh7yL90MT1QGpEVyybWhwiGFEHYPXQuNfvrVPhEOxAA27f2KOQnkMX8TSOSf4ea8GikOTVilPSJgIVd1Xo13DjzOWMeLr9wDDclLsx4xdZ7R9Rm2pKTbLKon8dqpZejHoBftsPM4T/6O3GzReHASRzu3vjczZa1jcgkV8Jk9ew8qHRgTN7JgpJ8hv/WnsEdCDDz+X/iEDKlEPqgki4LwN3ITRzjF32OyYmyBLMkf/rr/ePPkEBBHnY8bM9Wa8VvjOSke/GtE9XIKN1auQJIqXFDTPctPqWqC/FQzpZ6lHh5OfIZ62KLwrWhV7VPeaWLWtUekXsxsc3CrPf8/Vnvs0PzjriB2TW8TSKEaLFipfMOIyFyGoJqTNgFEcSEDWmY681so4YcUQkQm8tKuEwZjGxIxxftaI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.6.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.6.0/passwords-handbook.tar.gz","created":"2026-06-09T18:07:36.399562Z","licenses":["agpl"],"lastModified":"2026-06-09T18:07:36.494539Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"D2fuGfxTsNl2JkiT91wZ5up4TPtlt3zbQZ6iO8WzG5tHQ8LWEdBSa1EM2EJHMewiF9pKgsmAsScC0IJJAAqps70rB+KU0hhrcxqeXdQFjt4FQyDmjQnfAT8iCAbL1T5ExbMFFywMJ4WquoIU7f3/h7rUTO0O5IQMq+OJQkQIEvcWadotC54wZmtWfJowwzQEf2hL2z6RH8z407mIHZvnwz9zRECO5+uqvRMVWExBAgqmSrYa8TydPZH3suNqsyp8lOkijfjB3BXf/8CJCrK2oA2vWHbEArFbmqpcGldO+wldhlB/J7TLWdl9oNB8dKW+wntfyh9iz8dlxHZ7GGUuc88/ZNO1hDCCAdohxaZKCiwPr5bJJP3YVFtvR9SuKwrYzuhqCnInou+kY0RahNRsvcpfUBl49Q7cc9q5V53jTAc9OpA1+TbLdXRdb08w/5kLtL+00A57f6EbYeJQWTeXWRcAlXRWnn6MLd8a3QAOpFZnF1HZS3xqR750v1BQHPd+Z1RNMGGrgNi1Aig4JGZB+YNO/BazjEC7OYA9mmswbtnShJvBl9yMdEbXqPlPLeSD6lIo0UFBNpmsKQdRaQl0LtRfMWriT9qdJsY+99mQEHfGqsgMA3ZwvrEl6YD3y9uAFH6GaNJjaCqAEzrZvmjRjIj55B6Ws2Q+jjCA5tbTCek=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.5.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.5.0/passwords-handbook.tar.gz","created":"2026-05-01T12:31:55.540614Z","licenses":["agpl"],"lastModified":"2026-05-01T12:31:55.644286Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"gpXToBY607yGmp0eQM6TFt5rOd7GH5+XJ/lw66nKxX/jHgs6p5MtEYp0cjyGBkJ6o/5MKLpzN8vimYv0XeS9NMYyfwYBwevH82Kmp44X7yNxbP/xF1jPILxCV2T328k1UGlU/viBmjE3gQTDMmYlBMahN1tP4nDTsH4XqsygVro4bhbpmSLLyX31nBfD7PDYXJVLH2N+3KNGfQDVKxRgA4WzMkXcu1tK8ByZPIi4Mjz9zyOjMNdir15rleaYt2vSv7sf/CVPo3JQ05nt3PKY3zOQyVFBtV1ha5FVGdwucr5leyBWI+phQfRPPB1W1HSFAZT2cqcik/YzsMqZbhdqk79YlP8S9EcOH8zU6DaNg7M1F5otV4Nh7autp23gDvJxqhIfHwZKwsd27mmeghHjIrA/UYerlgmEFavKRJ+FUpjrJIXSImXI2PRNhtTtP+1CVm8BTxeAfiRzywp+uModnTP6yUkOpyra48zsZ9GZPP/1FK8UhN8qqPe+MawqjOqt2Vgoug+f5UtnJQphaMwzsGlKA8yBpPZqhS4NgsNOu9VRUvs3ogwFoEToeykKhDp1vPO2LjVkZJkFQRakwh3Ntg+8GrMxJiKnk2rKNamSRKuy42e5vsNOZ8BJc4c26Buu1ONfyXdI0lTAXdJBT6x5xc+3hSNm9nBtdTC6XeK3XeU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.3.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.3.1/passwords-handbook.tar.gz","created":"2026-03-30T21:24:01.289098Z","licenses":["agpl"],"lastModified":"2026-03-30T21:24:01.406092Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"gfsY6JlhHCEvy5tCOPAma4fQladixFYsM4i06F3gTuMvwaUd+yNbYLFp75oOLbCsdSA4u8gbRKmA7B31I78X/BaXOO9DhORWmHlwCMDEVwNQfalPruBjDUsgF8T3SQ3JEHrV7LtkbvDHnRdzYtM3qeWOG+cDknIPdE/26uRTMNIHaBGs2FFZrqXLjd054i9NVcdILpdZk3zZXwZn7yEjkzZiUAU0co0F+HDKZn0fXSaHnRmsxJpTojECmbXzRBzAV3sa/2XkmuoBeQuHMhF2WoRqpisyMXTjRQWRYbheYRZSkx72FOOdGh2BNy8/edVm2a2JUuDprgZaZjdljEw8tBpYAbNg2x18m+vM+/s6rhC7ihr/cg8c9jU4GcGLKRYJI12DZTeTNq3B5U0rZdhmerM1CsMxbv+wTrMwa47Xx40lQiB+LuDEaQb3vrz6cl6/s35ez+gvFJTnuYqBKQRG/VNi/5EvdZJSvjLwicwciDRvxlpJkwpnL9dZJUHdYF28dDXLErzBjpIloIqLR4TtJIW5JYkkRTo328XQ+Bjb/VkbHheXtZELyzCwOucw4+fFbReZZ2CFB8Jo/fkb3fJSleToDRgGsvjGHkymskFFUd0V7WAe9g1jaFdtmIO5mn1f9m8PsWWMgq78vTdMC+xRQuQXaHJa0dOXqb5RJ53AlRs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.3.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.3.0/passwords-handbook.tar.gz","created":"2026-03-23T09:22:02.019987Z","licenses":["agpl"],"lastModified":"2026-03-23T09:22:02.122129Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"m56QZfztJJVounvkeEmTTHkaziSKFIJIzNJBwcpscPsaUSOoC64XBQ0xrPj0BtFLzuIwGwRDcqtiq96ZWJtLZdpKdA7e9LcPuCuxjgpOa9D1wJgtUt37bxjRem2TZPDpTQx4YDdVJTV/KHuusibfXifynvaHI+aPMtaAtwAERPKr5xIBlT5FfMcB3JqAv1DGaPfkTnnJoZO+VpjaMf1YycsHwrurz7e/7bZezLMSfQIejOlxyFCpfHG+qRDd1qtMhvcEZWRs+gYG++FOQOZEmCcQokquWueCT8iV7k0tQkBrcY7aaa2mnZwvvwpvvHBvr4oeUdRIpOQQcW61xoy8dvcJ53Vclbs48h6s7XuN048WXMH9dV7+buODaUqTBpHZbIWUEUnuKuRkuGrLXfD1KLLUJSjl5SHYD6Fg024orOEk7as73P9wQ2OtGAjv6coCdOvJJtboGpS/43aZJPNDHnlU6j6ifmVYO7tZpJPHEp3k3NmiacXdQzX2SlE/xXNjCuWM3jOMJPR0w5lt0NJHkYwDg+wUfYS20aRaEjlL12mtNfHTda056RnT1fc6MqPdD0tRG9EhM2uA3Q6TsS3VPEJJ2u8zqol8UZyENaSILnALJy3U9+0TbrNjMw5ZWZ7BCdPK5AG41kVThtC3PL3LK5tHGoRrCuLgVhFDPeNdX3M=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.2.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.2.0/passwords-handbook.tar.gz","created":"2026-03-01T09:54:40.135207Z","licenses":["agpl"],"lastModified":"2026-03-01T09:54:40.232834Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"rRfvsurfJVJ4MizzgI/+UAjgDqAWlwIsPoOsDIzOfRyJwPaAxao4n+NqIEQDnhMrA7ZQRrOZYnIG0LbDttMBspRPG2UiKGS2h3rtTHuci6/mOuLkPREjQmEeMoOzM6noqMwguIij4EDAH2wPTulz3DLDCLb3Dvp8zI1bJsJ2cGZSkr+ZxwWIdXt6e7j10mXK2T2gCv0NPxEpiI90IWRVjVXqPUtCl6mqwhIYov2ggetJnmlTj6g29gEaUnz913hCDWX7/pZe5xAZE4rPCJSU0fIplodTZKLCs5xNQ07ubMSkiYrXxAhM2O4ZHcMoPVuwJzHxalPch8HeE8TfigjLFThzODYn0OxERpn2/nLH+kwNsV3pn8qSy5l7fs2lPmU7WwuTkcpyd4Uq8j3aHpA3B6hgWriVEmAy/LTEXyVRV7AGMUtUWEpQ/00pwJzcqb2/ZZjvIqAkpPJphyi6PiyjNLU/ZYGH85ClzKBS0ZAROTq9RQaLL3bzumTzPWEZ/XpCGSCcoPKv1WWVZ48T2q5xGmBS8t6aApO1XdeXyksNi/+10Q+4n6EokOWLcRbujuWCsZMvyljyz+YdQkAz0ogNZ68hDzGmWDXLig4GnEygfXfD1FUTd4dvHGWh+8lRzHAW2dg5sfPb7fd7yYIkwDGIkFVG5SDzmtxOPbebOti8b6E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2026.10.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2026.10.0/passwords-handbook.tar.gz","created":"2026-10-03T15:00:00.718918Z","licenses":["agpl"],"lastModified":"2026-10-03T15:00:00.795743Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"NOyN7zwWOoENEB0Paxabw04suHvOHrWvsKXprNkjmddJ/4n8UpGn9mK29SvszQ18bX2lCTnHMSTsQ7reNY/FFxNYTo0fGjQf7PgT1KO0TgiXIg7fS/Kp1CI815KHbSATrf7BDKVx2beGmQdmtwfLVapM+6nzGLP+3R6ESfn/2HgGAunJSaC7oeCN4aBbMaD0V/P0Vy9x83xA/EBNiLYSoSFwhox4wQyxfkDv0n7YyQq4g8dzoi3iQFIK2i0rpHtCUHqlPPPtfZZ9SYZwsawuIbwCblKS+Eepuv+iiwG9u0PDQhugayB1VD7fexL1dvIw4kp9RCKKdTFd1ac8V9FxjhrOCJfiJfExDF+3/7vuN1HEMmdk/9Nh0uspRtWnm+f3MnDojVV6TZki0hUuxHeltWV5UhfCOkmLAJ9hUFfo8r3tgUjoq14IqrW4dak5tgGDW2xBxSj3sqJUEWxFSLPzU4g7nUbx+aaxpfEKQPf7EXCyW+EnbpW/Sj+yKvIGT6gXOxEvQhyAmwvniZRxx4BWy1K1djgiX8kXX/BOfJZEm+4UqdZtmgRcl9OHMmP95Vdyklb/1w8X7QrlC63TEiQ/NykFPjNQ9vGNm5svxYyXJVfohU0+kVtD0L9rizqQpuMPWiSLPC5G8/9pXN+p86TqtjHNIPPKQA+ZbQ5R+gLg9iU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.9.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.9.0/passwords-handbook.tar.gz","created":"2025-09-13T10:53:13.056681Z","licenses":["agpl"],"lastModified":"2025-09-13T10:53:13.130140Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"DyuBBsq0JIG/EezEUermb7HfrG0ML7raA9tiTok5CWyAEFFlYpdlC1lufXgDRc1nlRLJsg7+H/86BhmzLCCCG91eX+vF0evyHF5TFNvQbZPBXV+ENfkeXe5PqTV5Xu8wxzNpecSMhW5g+z7DTxGmh6RAswHu/xDYUAnL7h8XyQGYJA+5RUMq42d879UNipQyb4AzlGksnMq7OvomwS04TiRfQKmhbWs3SqwrlmTooiW+QKwUSOqNiqD5RcGf3eOVNT/haUmx36oqUMK0FbgSkYhoHQoLOaXJYu72LV9smePk8WMnLfDNSXeuXzaZ15PFABGEvLc5IwIETGqCycQKc8Qi9E9p4df8M9FgQNLzAlQdl1iFJ7MtJGSER8ZkyR32Xed+lM/sPTZHV48zFJSs2Xx0KoUjO6U8jG9NIO+tk++e0+LCWaSSXuMz1trFuKkfZZYG0GIZtYPKCBfvE17+u8C0RN5gwiZ9xn/MJpr+bw6kIgZJBbsaEx4BwneX0pFN6gPkERvlRm5Dse+2VuyMYSzLtcYJssagi+mbRdCp6rIAjtKCu85KRd2fSZAKcN9JKGRgA9GZdtBHOeenPQK+iCLb9avZXf5hZXs3mUOhD9jOxHqEVl0kgskhL7GqAS64N7koqduCjUgWjtITZukYeSJ4/CY4SZET3zUJIZ3t9yw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.7.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.7.0/passwords-handbook.tar.gz","created":"2025-07-06T11:52:39.899725Z","licenses":["agpl"],"lastModified":"2025-07-06T11:52:39.983351Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"E5qxVGXrfmdeGwC9uNJSfE4XpGqliRqthiKfl/oBt2+c/lKQb9gQbIVjBl/NYXWbC5PtlqjSme/riCyZhVIY8D6ZPncHgFU8/vhmgU9PuXBZe4PTMCERzgIrkhtyk/iabJPCC5MS81Lvi82Sl2nOmb7GeIFqs74uYA5Rv4bEAE2NIP7KWbMFuzNDOx27aS9/Tv5IH0JTnhzKx393d15rR5iFx1WX1xV3TAF8jC8wh39x8yaZO50txS+dnNoCqF25qbPZegkSceIkjSdpZnVmA2+m59XD7XdD+vwBYx14brXm1NYEocUpNGM5wvUpuAacXDvr2AlVzLy7EmICzp3P7QbBLwgFTfGR8ay11Glyl0bzY6xSICBMjV31ZE/mEyXcYW7Jp7xZPqlwuARqfL9S63oFRZCMxThn6oub3hJuSmGVaU0Z6ksHOv0vuzrOyTbZaHny0pF+rZJ0AdSqNHSlT2q66cDAL8onlcADkbNyEzxdM2zLBvg7yrbfP5DZyu6J4ABPyTogSWfH5xZXMNcLUYb3N0LlOW8Ab/50prX/9/1Wk/2DkGlrIVUbceXgOaNx21v9fJfEdF3D8oIdRz5eHOAQAx10SpsnpdNGG3Zizex/5n1VVZps64X1WtM5P5IGL1cP3fxwLljphUW7CleQKC9d1Jq39/WPWdaTXs4HRow=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.5.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.5.1/passwords-handbook.tar.gz","created":"2025-05-11T18:39:05.864182Z","licenses":["agpl"],"lastModified":"2025-05-11T18:39:05.936776Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"AxIMWhf3BupiV6ftlRSTKxOKbGey6EBx0JGvTMMyBECBCL+HlWNNcNb5boQZNQxlBLOILIReJsV2nQ8EQBQqdIv8uq0Z61QMKTn3jPf4Ni8ut1V+9ISATjPkI23V0UNIgFRpA2aKbiVel50VhG9VFJRrFypJ8y+dgKub9/70hfLcyDheNwUMokW5wGKoN5ataKY+pBOQ8dl5radBXEi/3jad+xcE6sZumn3UR8ZFuvSFM/Xjv5eyy6QAHrVbzi0+vW5Wo/pB2dyGr8FuEYygVDBwyzuxg4TuRjwS6VB2ApnwQJ4XLaHMeZIPQe6iKz9WNe9InXMYj9bN3MW4q/FVXEGVhIEODPV+wNvgfDIk+QVscIkvDC2q6LQPgbo8p3VNA+UuZ4oGvSyVszWdvgSHsKfrAKxSROKvGHFLRpH8WC4eEG+wDKD08UtZPiEncQFcSotMh634GR1F9XvhisVdfxoZQtlzCjHpG6K20KfkdwildcNako37rd3r/GlIgx8Z6BRKStoLYSuxgnzo0uX0fIR+R2g2ibnYoqiUL+R4LfhH8v5pXyNmmlqjsNIGf4YE4A5xfEn0hdFv1FvCskGsUaCFvdLtw1DPEUOyiyRo8D3DeJxjtvRINhSrWf8lGyuE8atoCFuMk9j2HkeVYcic4S2cy7oJ9RerRQn+jqKOSHA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.5.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.5.0/passwords-handbook.tar.gz","created":"2025-05-11T10:00:09.821019Z","licenses":["agpl"],"lastModified":"2025-05-11T10:00:09.908346Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"a7TVEkNDkUAfmoKwc4F3neShwxFau/ci2YZJu9vOVMJQnO0kpG8cWVwSOfcVv5EbGKHwZFLgd5jL2r0+bUJynEbuT7XayUdjAgWK4sT2UaZSurhpjFjMbIxfFPw07VIr/WTrnHPhXO2imng4FIB2cXiZQWXYw+2mWsLWVbqntkuiI645FPtYWzvz6MIyTA2YwnTDyouOWOzca4Z/xz1IuewFS973Y6CdTVQnrcB1tKMyNzSMuBpVT6ZhYteHYjJ1Nx9Xy1gmIGWTZiU34y9ZgIci9dKfDymm+AfAV1nUvu2ZKv1h4eUetopsdsprHzOl6N/CcJDSgPHB9eJwRkYkhWhZEwNM663U2IhAkKfDFK48gYTjIv4J0VriqWzqWuyyjAvJLgaaSbZag/80qlHB2bSQdhmNDffg3tL6S6TO35+A4z9UX566ZVkWQI/atDup3kUIRhQg/ryffQfGQwYK6IEbWxZjXmv1IItBJmFWDjcwGovmRSopigvVtFV8v+GUdg04dg7B1UHRJJjdTzxHiaUfTl5t1VZwmY9ieh4X+IdkD+sQwNoqlpQeFrBP0HxCBrEjw9wg3C27nahk0pMs8J0G6CIWSZUAZZ4kpHjWA0h4AJkKbFOClge+SwjDMbiMo7Ihzk6/lY1OokFJ30irXt2dsujNZAUMtp5cNOkIVYE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.4.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.4.0/passwords-handbook.tar.gz","created":"2025-04-08T10:26:44.745156Z","licenses":["agpl"],"lastModified":"2025-04-08T10:26:44.850934Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"H1jXsSAMKnsKXZOeWhdT3IS1UzapKkK9S0WqqkDgOROAgJPa4+8tyV3M/HCh5l6MAmWssLHmD5fFhUl/jjfquAA1rxoj53pzdpqghbmA2o4on1HzLRr9u1ETqaUapBjsJBm7b3gH6JSsu9SPd8tsAaLBi/vc7JPhR4ESfH1C+WIPcZF6CQcFgAF9MKyTi9O8oHmVI6D88Lu5BvXBCnukrUZBdwwMrbSXqZHy4gu6kv8JzmNVI/mY+VvEoGzsit9VDwkj6a3YtCGSHY6RuKGHHr9J2EiiL+bsLpCb/VKDpSNjChznMWUfeuRFXPop/hAwBmr7Us/ZqA9scbQixsFdHreFHQmS/RfbP8yS7SCwnMgg/ubjnRWAGycnsaarF4HNapU/6rzOa2KjqoTGQGE7Tgcg9FqNFSW7JlJTuQEcb9arWt77ytk2itTn+cn9lo+4NQA28I7my9BlVIHjcGPREvIEWddmLXpkL7VXhRVBu/pBtJWjMcMAMTN0uDja9NCqKSc5Q4tKrA6UsiYFSLvZBG5OBF87zZ23hNNDjwwEAEf0tOh+vmyUlnhTmtv2pfw0GII6H7cDd+BnXxz6OSmOgObBg6zePaK10ZMJYuuPCCm/2zXPzSDdc6fm/nKKVikjjegttU1zhK8SKzSc2cwXoOcSbtGyMQ4ieXOzda4ouEc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.2.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.2.0/passwords-handbook.tar.gz","created":"2025-02-26T18:53:52.126236Z","licenses":["agpl"],"lastModified":"2025-02-26T18:53:52.235413Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"wjMEQaAMt/xE4YrdbaYJdBSqrNCIZimEo3MEujBok2zmqkNbwN/FpNTYZ2S5MN5ZuceJv6cav05VVmfwWJAlcmIq3Dg8k2rOYknjaVkdH9Yrvl/fBkbPffgfHUAg8ksfRHDHltc7eoOpvhdxoQYItbkNqP8+3Thuq6gHBrOSoTze/AXw1LdGI4gznCwAch+HWVVj7fQ5sSJ1MOUUlOcyjY9hXqpsl72PmM2WD4JXBZ5GgclBuFq0KCsw/7KyKmiRJSboMKjNOhlnP1houvnhwEVugeUbmGl0RxPmgIDuHDV6qVt4UL+xEccpvo3xLys2bIkZpQgnSQfk4hcqCmNK+zTztXI+5L8bSARL5NB1rAxfEzGDBcPa+3uajKyW7TR8KDp64YC13YXzGOevjuE9XOr5yoRY1nJo77UMCkgIvWzMN2FWvhLrS1WFu/Al7WBUF3+I8Tcrteojo1FIaopLRBtkjrGmdFpC0NjaEzIKPD8j+EiKUq+YMORURdmbt8Lq5zXWkSKEOnBUKnOw2SGPG9zkxDsijGibT1yJm7g0NRNJOcd3M757M5Ff9SDqYCxm0MfG/0dvSiQ4Rfk+jx8FnRLyY7nRlffDfI8Oxrl+TvnhqzAcJ1zc+seWOfmpHjWW3p2/Slr8Uw4t4tMHjMYpR+P4luny8KQr5mt31waMLVQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.12.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.12.1/passwords-handbook.tar.gz","created":"2025-12-19T10:37:15.584172Z","licenses":["agpl"],"lastModified":"2025-12-19T10:37:15.662277Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"xguT1po4DK5LdQVKFusK4oAdzNz3rYdHxwhOy5c0TY3/O/592sa7PTPdhs7emgfkARTgH7nRcyrWQpirP/QxSABpSIfwkPS0iq7RmHQehFweVPIW3hn9W31xeCFw5zSh1cFHrr1Rht1Pn1n/RET2hMIuISVkwsYV1b5I5jOww05i/YChGTDlLcxeEFZJBG0AljOEML1JbkvVCygmxzI9Nf3h9aVchIXP1HiEbUE3yV+8CTX3Hsz860zk3r+oIOLw4KZvP6hO/7sS38rPhWn9ew0tb3LyGm5FGEGftmh2tQ9MnHyuKL4RlHtBtwVcLmsanoUDT8C8i27ytGNQPb5456Nkz/UDiHuuithvyFh0ssOq3xkg5Bca3SA8XsgztCUFNdQHqaPngGfLGL/MmBnQwtic2SYwWjlExCrwmBo3JcQx+ZEKMK2+ZoiAAJW1o6NbXBLa6pt7makXsDoolRZSbg+L/4nJtI+hjFsleLkHkwiL63tmBjT6cp3BoOqK94DNsKRj0UK92Lwiy67/VFq7cEmAjCxCvSspwi8YRh5Tsb1czbPgA2SkW1Gl5jHNUikv7QuCZCYlueHKFK80RTpjn1UwcxRJn2IOlRw0Yh4eumNFcNlJp8qQXu7MgAxhvtrEwefASdlp+tlL7AesjmC7jPhWrTTIALQKJUVmEWssJqU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.12.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.12.0/passwords-handbook.tar.gz","created":"2025-12-07T10:50:23.498748Z","licenses":["agpl"],"lastModified":"2025-12-07T10:50:23.575531Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"MpnvMi45vmc9lSZfESQvqc4Dv07XHIKVOtKFYO7pcmCmNeCMraupfDrhcj6NlrLmenarUW/z4RFeSiiJboDa7F+2HqihDyd07BNlGMT+MZZhT7V/BMQV9HkJeNC5C7fPu2bimXDNgdFd4V17t0k31+imSJJAqZOw3+V1AohOYIeUXX4Ykkfav5OJmsxzDTeXfPShsmVfjAJg/QFno3/271oivFrig+y/XuaSHlWLv654ioPu6S9f7Mz5DFwd1ZuaUOzhGeM6EyULTZZBvtYQjJ5HFEaA9S9xI6S8uTMqpPAEk/6X0IXbybqsjcG95R95U0yoVRuFYu+ZPOWmJGcm6nZRUo00pafGjtHCRCj29c6YMSDOGHAFWfe26BiXbK1sa4w0Jb/N3k058gSsez6muYPqp4AsOboLIdMauSxkNCivHzF+g8f7uwEDt9wfXzRDuffoUGD2M6Lya1Ff2mc0gHMPnzv6fJNdpv3h98dhKdS8XxNWbfCA0le/zrEiLtT71kokBMvytuzmKTa2E4Z/ctBXMudzY+PRM9p9e0cntQpdQn1ZgwIpuFbgCXVYEA+vXzzOCz29+K7b31knAohGd+D518dv4Q58BSPp9D77NXAK9qqZ2vCcj4ivkjQQWxh1ssS1w5hi4smejKkw8L7iTckU4o8OZvLh0Nb2f7cirOU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.11.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.11.0/passwords-handbook.tar.gz","created":"2025-10-30T21:23:14.474793Z","licenses":["agpl"],"lastModified":"2025-10-30T21:23:14.555157Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"Bg1EVcfE82qS7EFe/16qHsz0lUPFW3ZKx32KgUbaIY2nOQrGdWyVFNNxLY5LeUjueBVqw8s/2gpwJxHkvaZK4+2rlyjc2sTCtKfzPPtarInq77z1R+IuTXB09n7ipZLVbMPIZLj866oVTfCbPKqXthdyilhreTnd5wZMkVpKfeg6COaDvniuvU0xmSFTX5zaTNYRPm8XoF4IkMvxb4juVkSl5FMjBioqsWBRDFjwqg2En97PSk4RaD6erHjwjZoKpgCPHOG5L+rJ4yI3uBt3U2C8SrjFPXkVlec5v2FiTsT2ag3h/1FowhKkZBJSyIKtKWcmW36LgWlayUYFtxs6ZePt5j+ElMY73dFFzkmOxdUlbu4xE/AeZ/+xbvm5nB8H9iv/1Li6W253yova4q8rv8ZjqHOv8RXrD9dPuQvEPJQodGRvZ4UqRRLYGrV7yXizUmy9gqevzZdvEvz68A/L3pCYPFwvgil0c4actGDJhsp11z6WL6tZpgjJ+hnG4ieGp/Rc68c38jzmMmmvlCQ/yYWJ5joCFX7J/5ArswsqcOXXY5HnFGSAt2WYYDbfd8qvg9wrDUXdAcZQT/kxGrxElXVVQUZRA+bwB+9lB1dvIr/zHV/ni7ncxetwdVrWYYUzp4VsHeyKwoUn3Sv38LDKI5CkBqc5GWF5gUv9pqqb8ik=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2025.10.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2025.10.0/passwords-handbook.tar.gz","created":"2025-10-01T18:45:47.187153Z","licenses":["agpl"],"lastModified":"2025-10-30T10:21:18.206603Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"VDXPFX8X3aNd95kPBVtVvK6a4/KmfFFAxYm2Bqx4kryAN+DhsXanMPFmwG0QBBE8v0srcZi5TiT9MFrEzrX7GNlNq3gba0jniMNCsBnZBtkMkTNzvHZ218ltXOoN6duRhflZgQRFlxrmQJE6vOERH7weg/gXdlnLyRpLPXnWZlYzf0/tQ43cGU5YdnGFMy70xff0LPKwXdXPijojgbDYVfOSSBiJhUVhw9YeFdojRnip8g3dbphWhXnMlYiAphf7HCXjp8EIpTcK7aIiXoMWDO1+C47P/Dzly8upp1DyKYyUdeAkG21A7gL3et1N9Kgrz2t+jtrRNvw0eqUSAlAm/dN9TQ0M6KCvW2pPCskMmQ3xquiIpT6+/tgcOUO9TSZYbd0Zmqp+WPe2sNhKwLHHwfCMdhXLOmu40x0dQWajTwoIyryf434YB2AwXqHq/ngR5EzFvytasTxw+8cYjcyc4fgtYwtnCV6VIxxzXq/xuogssS02DeUbNDBKZcWgHTsEYwGONR+m0UXoi/0xl+6yKxNaGn2viu6duSFWGXbymoizZsP4mXplhPa1FPhuzLiiy085aKbBXK1FaRWTC76xp06dlE8ShEA69ySTgcVafGZn2vbshQpSEzZLnL6HI3+q9+EljRMepvvDOB+RPvkX/D66dAV17KIQr0KPt9nWCtw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.9.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.9.0/passwords-handbook.tar.gz","created":"2024-09-15T22:28:54.970528Z","licenses":["agpl"],"lastModified":"2024-09-15T22:28:55.044002Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"NTCuKpU+yQQTHiBTsi0rSjO4Op3llgb3HkA/aJmq8+hbC7+fncl2+ySwLDQLf4QHqdJW3pc9A/RCvjwHI9HeYDhYuGAOznvfizNNQklI3ZBGghASXzUudKiD+ZFTyG30PJAVAT4sRlOGLrSS/oi4i14UfoGcpXUt2jg//mkoJv196kC9m2Tu94P36TgWj1sXsEwSHyzLphVdYiBxbtoXpMdEPSLBJGLA4ADCpbERXENZJSH/j58gUwFLrAEjO47rBEuQACivlZF4JtQsI3qrmrTJh2MA3nt8ga1j3A0192SxYMYdzJzgH8SnO7NejVIlzE0AP7nQ7S5vZF+DsCK+tUMMd77OiZbTxps3ukILnxmmYijatsx51B9vw+p1Kai4aH4wEkhnNb7RQIyDJQIiuysxShnP8VuwV6VEoDOhnZCWspZVeLLs5XYOrAw6YtVWxRnRg+Ja8TY558ahWbONKEh0PqNQxKc0uYmCuL46sLaUuQEMhqa6jCtBN1bqY+ucW8F1RpVsxg7dpHSVMzNKknNUIOCUifBLQXxv/THwbpCvSaXgNUC6qZgETb8qzDLyz4513pAcIJw6XjhT8qxZFY76TF6JZ5CHiLC/NA0obuMmsWDWPv3QZtjX3pSpY5nLFWeKCx0I6lTPPvvJ+22wzFaONRWqN3HMato97FZTYlQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.7.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.7.0/passwords-handbook.tar.gz","created":"2024-07-08T05:51:26.681411Z","licenses":["agpl"],"lastModified":"2024-07-08T05:51:27.119806Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"OfFARVApt8OLTglthJPO2sa7A32SZTKdSmqAJsurordWsLMGSD3jxgfw1I/yscP21AY1vbyqc9NForw8I9M7wtedsGvUZTcVZF85aiaRseKgI7FRrZyW0PxAHBI/38J15YQZwfBMcSsFF27dlL3w+8OdcVcYjgRcqEvFGLyfU6UKUTzQuapu8rqV6Vt/2B3wweHfgqwHSJ7p4RQZMRkL4IzqS7C0bt58rdNdppNVBVnqCwVhCIqV0qJ8YCyXlg1k1+mIXt/0EdSyHveMLrsx+oXCKdDvLQY19TbS1D8H0OCjraBTpnLOECsr8Vy8CJ5V+L/0ITTTg7Z3vq4zElZ+lP85aTSo+U0lsRsBlJHqgJcCBjZqsflwSQqp0dxpg9mEPFTEHjJHkBe62ATGGnQEzQrUrN4mYCTLg0ZA+K2qhzHgpA+c2vlSOp6To2j4vb7/KLo97YF4GOLJ+Eww5mNRuVdH5o/TwFgCfEd+ZimRUTaqToJYN1F1dPM4K35hdWYlFvqwcf0E3+uJnjXKZzC81v+gvRAli75EC9JgCkYIM3TehnvZyiq+AHjIXF/5odby9MIG2SFTjriiUT3lDckypmg7dROJDR150G2S3+vXI4cd+KxtJ9yOCCRsDv7O8lk/3PhkpMy0deaUB6vECgrOyQr/eiLwvUcrU9IjyQV1GdM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.5.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.5.0/passwords-handbook.tar.gz","created":"2024-05-04T09:15:13.359436Z","licenses":["agpl"],"lastModified":"2024-05-04T09:15:13.902908Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"UpuoHKOHK10o+FSC2MVuav5sZCn9XijyFdGjSY/pMpUG18XScVm652gim9FjM3WyjfcaOkzI16adrYjoZVMx44Y1fxNuwS6siTEOyEl6OPU0FgBpEGdGdzWX3eSEPVtQ5UDkE6H6lz7u6uubUg1Ru3ph7Rw0ePVR02ovmw1gM+qRQ6PFxjjXTaesAFQaUU2mxtatB41FWBo7jjgxJkJkn95gdMkzBs3E9DlYquo1BfQ3cfy9AaEExe1ohKdBMDddBsR8Le5fGywmeryxT2rlLq+5fFDouUnRmfbP49GRb91Xu+YS5qTWPazv8i6OOE7QNR4hcp/11aIy9YLrdULGg2bxzIv7MzR0fm8hy4i/VsxJPvZtn7OxOH3mpM0BSLF9XYVH3Va70RGsi6N9GgObsBK4YszxhzSYmqO/0ZjB7WG30ZMGhK54hvm86CGdyqTl3MFUW1CT4tUB3RYwVY/7xPJ/fNHpBR4eK39OTUaEbB/q7RGWFH7I/iL4hVtuOCg/7XlbDc5Tiu+Rv2kCKwLZPqjO+gempYCUGr+6vbzKmBAjuhIYAZfECuoFopyOLluktp5OvjisBinzt4LWzOslFXFRDMUBiPQ8heGtdLAfXyRDzk5OtgDpXPGw1zQclnYk2KHysiNDhZRiUhk3q1qDhdXdzVDt+NKJXSUZZwNWVA8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.4.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.4.1/passwords-handbook.tar.gz","created":"2024-04-12T16:41:32.733845Z","licenses":["agpl"],"lastModified":"2024-04-12T16:41:32.870361Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"kHL2TMK03OjOq0GaIUxq7bY7XI5ySHAl74LftZzNkMTlqv67b6NN5UmfKwrYbu/tSLKWoZZkl/MO37LiIxaLcJfl/LZfaseGKKFN0U24tBSvfb9pmmUZQ0kvWAtfXG2wEnj8HqS5BOiOrxAVcnpqDwkS9W55KnVv/ZlTuTplyT6+2ueW6SG9n+vql2rMaXtly11X8CD8sTM5T0dCa8WXfCrrEzkl94NvrgJ52VLe74eKd4kBiF7/NYPSM6X/FZFeBHXeIcpP7jHDSpvKICdAoZqdovs+RDXnlbPYxFqFKO5c+SLRzRNsjFiY6+tZHORFwnG78hjZCautU6b0M8p7fWrWN1b1V5tnLBrJ1z5LoX3FSO45LuqCd6/Yb7WTkEG5roZk01IjBLwnMAiFd16vDlhe17twpVbRlxHgjUfwXBCW/aRwZCUGhdcKB5CWlvrZtB/2WKco4Fp5AxAvirdSJGyChwyQH6nzhIL1vM5zOaDXACl5bImFGk6ZYfk7qCJWFXwjLy/pwxiIOQ3avP6gsGDayDD7PhXq6ZoiVzLkaBFOhHIlZw3BCi/MadSTDiMsJtf6wHNIw9EcaHO11md2dfY+TDiZ/WbYtX7k0pilk0sKcfLOngvsCJJrJGwG//HrQeDneVLel3/ctQlo6YUS3vk44VDOhJFdYX/VpIF9dRk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.4.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.4.0/passwords-handbook.tar.gz","created":"2024-04-05T23:05:18.197320Z","licenses":["agpl"],"lastModified":"2024-04-05T23:05:18.424330Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"xvBHtb4dFxO7mguTDIDfP2PDj4shpHLE8ceyPSi+PpARnmp8QaHCUKQwU6yMPdKPjKk2x+xv54HEdRA/M/1Qk7ESNIhO2UNrZZxSmgrKPKvx3qEFCN8N037vxSdBsIxQCRPdzO7nSvnrczbzVAjhV+vSxqk9J3oebHaeYIMY8fBHbBbHsuEqj/5j9/DEqgyzwSt7c0h6W/zwQjzqTvERNAZXIiE6E/CjWMCbusZM28N/jJIB8yJoUEElDtHyjvgkRrSdQujty5rb4xDH1rVIS1wJ+2a0ihQ6SXpnSbudrIJQVnrYnJCq7TFm6SCYuuLaBsAjo6vkHVWSHWt3Bn4olXbyjGu5YgbwPf1hWnzUxpZT7wnVgzIAVnCHq6ANLVpj5/nvzPgi1s54tH8RP24mfWU+ppSNK3fc1QeRPewLqGeZB8lt8MoWGX59LlkycEHHpUwkizIqtKU29shmeIk1tbitbO1j5oudxVLFdaNKpdC8WNY3AZNcLLqkTCeiayD7Dau+90AoXU3G8ojefmdvyWc9T8tsoRqkT7MdpVzENTSL0fywn1PVnp00nwmFubqIJE+tbwiprON/WulQ0ms1aBCpD0Nl53mnc7ayXNe9Qd78jhBYcJHlXsI0mpRvNH4dixfTI3ZVDYFxaEIe1aqAiMp6buGOGUqGtIvbaBW0f34=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.3.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.3.0/passwords-handbook.tar.gz","created":"2024-03-02T11:00:45.883764Z","licenses":["agpl"],"lastModified":"2024-03-02T11:00:45.994183Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"Q1LULniYylfS8aJCxZo7QOT4/HSsaWNQJb/l29SMYP79LYdpGKYr5tixbO5ZCiJ/FI0igJeag33qhLJ7bHCXThEXGKWueFfpYA2rIldXH+NhxB/BcxlfaxuP5SU7b6gGwQs4lxj4Ho0geaXudPV3ItnK+OI9hoBUUF1Wkk5OgKRZJlenPE2wlDP1xhCsmyhAhVOn7Vrk1QI7tPsCh4N4T4Va9nyD6QSaTPy5io1N2gpgZgCJ9mUsxhsnKn6w9IMeA7I2WT86rqRQwlmOEWCdYPDJyv+fPa+SQd3GtZfIWRqyCBSpkIOEn5ypy+25GYWUZIdokL7mOYFpobHF76WYJqP/c9Z5cwYEPnIDtaPsgHWRjMV9JpEAVKvwD3maWU/BLSyIz96g9pnhgGnweaIVAleBZlMtmfoSNv1Wc1fKFnuVv0igY2Op6/mt69TkNKSd0Yd99XOIlMlhncECPe+b2fBwfjYOohh9SAmm7RHtmYZ9cmA2KceAcUqyloVrY48Np6ap/MXPwuetxvBEJ4CWu/gwdknxfY2Aclf9HPAXgYyeQoyaTzAHO0xNfrBshzxWWVduda982Gz7d/Ffd4YPiC6UhmqEUIvfENYG2CpE4L9XqAOFqIwOAhVnW+I5A6vPo8bn1vWZW8Kf8RJLpSGU0yzcsyiXsClQmOk3mICrNvg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.2.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.2.1/passwords-handbook.tar.gz","created":"2024-02-16T22:27:22.992339Z","licenses":["agpl"],"lastModified":"2024-02-16T22:27:23.187068Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"SsVNbq3ZGtjKu9szBw80JEk2fWcVtvmXDbMyaiQXJwah//3em7l1ZZsSNSQUPTi3ck3bKay59QIYje3T1tjo31C/LjFdF91ZvDuqnPJr7zUK1RAOvgGv1W3jDQHslQkur8dnJUz3O1F4W9o4M1jbboWnSONJU7wQFY0xF/WRflXtQFyOpsTnQPkJP7cZcqVUMPmx+Ko/ExNkNasNqk9/mzPpokYKQ5OmMubKbb322jKABfaCJuoJhTLIndP7sDGvcD8tjZswqZ28I2ifWE8WxRUOsAe4TpkLuqE5JmybZxl3zrpOBEx7Qo4lHbxpl4e3oU5cEsVb96oZkYEavX/FMPaGrJAtSflMLZ6bFj4zgMyOza9ThnTU63Dm38cwhBc1R7AaqummSFvWEbFXrS0m0GJ79CbqkG7qvXkH0NiHHWNjgqB78PMv7pxUCXlmwFvbSModDgAOTb/6p6bOB6rTAagmftMWJHBVTsrB99GE/Kl3fag+NEdk7p+cCWd4KDk119TmEfnGQS9nz36SZB3v5w0Eoc0wue2q6cqmmAaIV4gNwr5u32FYcG4mvXTYS+V7piKV3ZUP9ZX6lyO8WrD4MpXKhaCJ5NGtu4eODkprPS0PI6K0/iq2/CZKdxvJE0JjOrhc2ArCufvNaFOpNHZc3EdyWDhWJiUCW0E8r1VcEQU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.2.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.2.0/passwords-handbook.tar.gz","created":"2024-02-04T19:40:54.840262Z","licenses":["agpl"],"lastModified":"2024-02-04T19:40:54.960010Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"uFlL/in5vIKQYffVItXSjSVHDS2g9PcKNBB+gfpEc958PDwki49isYKHWoCs5J3mYIoMkQKhXsLCzVtgH22IlEqEtTq5nHZ21vH9t6VyZuuK3MW8VCNKKjvjQ6Cu111I149xvcThlZTq6DGYTl6J3vlq+aDqsP/cMFcGumO9pYJfxgGRRPhN34iq1b6KCReWI71E4DgEZHkcraws+YhHK9oyvdrQSVaUtnDgQjsNpbgUMTV7xqPeGrrJ1ziqIeJSEIgmU8v4cCpYYzU1+/a/KUNfIO3CNYBE3RoJT6gW47BzCPab4zJMH1o2nTkUbnhctJXlZ3g2v+ai09oOnkHNfwVxkAXWwsgJCAJghIQdGU3NvCE7jg+eAxzC8rXvKO4VH4ju8pKhGJQCTDbdeCxQbhnQxNniGQckA/R3yusidbeIItChOoGdlbY+8MlIRtUY3e2zyD4lUl9BLJUl7It3Ex2G2YnAAqdAiUe7FsyHkzW7tgSsjYUXH7iB3I1PwDPrKqKLyi3dhHdce9vtaePVQTQUCnNvYuEe5OeaAXq0MUJp9xu139PAx9HOTvZp/YdEi7g66W1QO4mlK5SbJb51YguB8O/uhOUH1jpEK1sNSwt50PjW5cJAcReCQ+7sVorCiTUixamS8OUzJ33fOUCBr7FjgR0UN173EYWt99+OnmE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.12.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.12.1/passwords-handbook.tar.gz","created":"2024-12-09T23:16:47.460448Z","licenses":["agpl"],"lastModified":"2024-12-09T23:16:47.555486Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"vCHYzyaGtz+MsYn6O69NpAOMx/Cehtza8RlziFurk9M0aN6w5R91AVu0L/onhAi6zUOOHS75PzmazhEt0pFFd235p1QVXdIaESTqIQZVXE6WnIiejBCaijfzRT+1gq7yHPwW1fPTmnsDXVg22NOZ9bPuqbgnr3EpfEe4fZQgKrFKX1QSD7t3t0qsr7F12VBtLHnE+j/V26zt471j7xc/h0nblJ5d3ZPAtI4In/DaOmqYWPhGfrxE8Ircn719pAd8btA/E52T1wp7qmI2gMBop1MtdlN7eBRWOXJw8qtYSx+IxK/Vso0UqP0Rta6C7GNuQbvuHmYEEWv76R0W+LXp+BxAErJBX5hh/3eGDqLlgw2jrRfXefrYXzRy3LoaDg45csJE/lt7YgkXKZ9rRG3NH69RcLfy1mJEI9mzuJtzDX4CDd6UmvCqgh7eMpyzckjl6cloPrV6Lv+48nOqtJBaV/TxKWch4xggCtv4kCZVk9eFS4yLSqL4nqbAwG1MZHQzetDZ3sfxvLuAcSoiiU30QGH9eeF2kyqEoVAQ/hqpniHncMhyMCjllPoZ6v+wSydmM6ilTcend8iC1WpPGVbxcjaIjHTldkMcEolNl7uimCMthw4EXDx7LHaDYH1i4fc6pNIWilKD5YDGuTc8OMt6GsmJjePi4csHKWZATvQbb0g=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.12.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.12.0/passwords-handbook.tar.gz","created":"2024-12-06T12:25:45.124264Z","licenses":["agpl"],"lastModified":"2024-12-06T12:25:45.209983Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"QnRhOY0Jx+so2Sl/FKnQ5Ob3swlyO7t7IOTDP75adL16PfQAO9UBfW78KaprsIePiY5+UroAYCNOG8z99IjAmMiJJHfu2Ro93IsyVJ6OKhX8V0U61z/coqG3jW64YR5MX1JJtE6v9XpL3ZWSpAVkoYmhwwEcFgB3BnlhBKjL//BVhJ7A6U6hT0MRQFcKWFIS0rz++Gs0N7GJzC0vE7sPaYuLOZz6LzeSUZmgRAk304tjCldKiZsjBTPz+I+8g5xtvcQc0YbzhyplfWnvBn8nGmLWv1l2WbPsJUJY9wR0jWanMWoWo3VpxhxrdgbX6XLnj5y2rt4w+yQOEElxVkQzqpj6Wx4DP4kwpcz39I92J1R+OILwTyR+VUU4GDbGUqtbeiqexlHIzQ76PkGKTCGX294xDMy+36lbaYEXfUXLS4j6CQ8N1XQQn8ZIQMi1uUYxKIdGMcKJtOclWbboiI0kAAUoazH3oa+bt9DD4W9+G6Gy8Rl5eoCqGkWK/aFc85doiRj3IRkQo5+q5ULvSoegWkf6za3NY7dhYtREeybP+xf90JZu9sMlZP0su1YAGORLnkd9ITpCUA9Z7zAR3Vw+oCmtvDE4+5Ia/Vaexx7F5OCBdCU0+1FCK4zicrtkwOybNB7cPo6KChmtgbNma8RH5AiENv7lev9AkKNYtksnbZ0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2024.11.20","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.10.0","platformVersionSpec":">=28.0.0 <40.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/58/packages/generic/passwords-handbook/2024.11.0/passwords-handbook.tar.gz","created":"2024-11-09T20:24:49.522251Z","licenses":["agpl"],"lastModified":"2024-11-09T20:24:49.600546Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.9","rawPlatformVersionSpec":">=28 <=39","signature":"d4y04lG+8Gvea6mdnIFaTW3QvTDRlLgvDENEb7LnUIaTjB+sNCb8zInQul1OaSrPmg1En6F2+Qa8dGN3JsnTccZS6e/DiNuvi+QQbh+9Iec4K5OSXjhGKCXCTCIO7Mm/2kYz7szq8rJQvSbHzTvXuP2vg1OeSdumEYlxsutPx+ZNHyLEwzeHffUsKP1oByUc4XkvsN/BHTY1Hd5/w6q19gz7pxzxxlMxPWUgUxYSP7/NaIausQ7lNtH+D3o1LMMvP+bVCOWyn8BvEo/UgaRWMS4t6Bv602oDnB7H4nTygcIGWAFo3tG3zC2dc39Ro31uduA3+rKu7NnGvlxuGcXoqlLva4MHuIFtd+9nA8M/C/j9Xm0ZF6wR7xtTrIhnRa/g0cTGNsfVUf3VJxFQidZDPYxGOCn3j2L1CVXQHxgcan9HngWYpB73eOM3uaLIXdgqy+bhttGD/d1f6N6tZi5Fz3a82oEpy9odfVFOsST26dOVR9osqduViq835uL/HyVfEcCkvdySiROgoW+a93s3OYTBAnyYg4urZosROlNZ7pQH3sZUnIrrLNQX/zS/L+BVYRk7pIps4RdyPejbJmrWtxzg7/GDNIdAeyqW8OP5lLivjD9UbensOH6eCUGxEafycr6cKT/Bh2JAIlXdvmUfYwIyh4SrrglPTvuPmUOQuJ8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dpa2kvbWFyaXVzLXdpZXNjaG9sbGVrL3Bhc3N3b3Jkcy9Vc2Vycy9fZmlsZXMvaGFuZGJvb2stc2VjdGlvbi5wbmcKICAgIA==","smallThumbnail":"https://raw.githubusercontent.com/wiki/marius-wieschollek/passwords/Users/_files/_previews/handbook-section.jpg"}],"videos":[],"translations":{"en":{"name":"Passwords Handbook","summary":"Host the handbook for the passwords app on the nextcloud server","description":"With this app you can host the in app user handbook for the Passwords app for Nextcloud on your own Nextcloud instance instead of using the sources on Github or a custom server.\nThis improves user privacy and enables using the handbook in networks where Github may not be available."},"de":{"name":"Handbuch für Passwörter","summary":"Stellen Sie das Handbuch für die Passwörter App selbst bereit","description":"Diese App ermöglicht es, das In-App-Benutzerhandbuch der Passwörter App für Nextcloud über die eigene Nextcloud bereitzustellen anstatt es von Github oder einem eigenen Server zu holen.\nDadurch wird die Privatsphäre der Nutzer verbessert und die Nutzung des Handbuchs in Netzwerken in denen Github nicht verfügbar ist ermöglicht."}},"isFeatured":false,"authors":[{"name":"Marius David Wieschollek","mail":"","homepage":"https://git.mdns.eu/nextcloud/passwords-handbook"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhGwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwMTA2MTQzNzA3WhcNMzIwNDEzMTQzNzA3WjAdMRswGQYD\nVQQDDBJwYXNzd29yZHNfaGFuZGJvb2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDOv8DtMpyKW1vc8m/JNbJ4eOt/ToS4K4mbb3SpmwD7+QFSJI0ZsIqX\n2m21JXJ4p79wgavld/0pGI/yD53ksk4VpqtF9/f6grsL8mGlDlGkps/Fya9+5a8L\nvukq8foqgW1zcfIvXtvQ5Mt6S71Rxz67E5B1ZH+XYC/mmBdelwA3gXyXVT+zYx8/\nNx6BrO+X3QFcLtUKzrcEcPn9gu+EhBPaP+UhwBuGGoKFPspkfZmnStXIybeSQAT1\nkD3jDXEvj+XGMyvLvSF+82GyNUx2Fek4+B1Pe4YPp9tY3k5o2bfWBQ9jOdgwf49P\nX62lpVShOzKznRtAvjZmo9+mcJVg3rG7GOF7BDFooxh6tU0GA3BeoIH/GiCFX7vU\nZvH+0rKGHFjFCxc6EBPDVTrzypdE4IxC8G23EiJ24uSuC8nRT3SyRwntlxbgEKWp\nWcJs1az3Verp49oIMwncSpoD/+LpIDxX+eqy5piIZkuIj+ENnnwdUXaiQbFFISiO\nFZdmhntcVpkr/fFZ0inIgulvGTCu+SL1it9VwfBE6CEhFzKHy3bfBoPtuEF3Xh0N\nMRyqltD6TJZbRSXnZqkKaVRzb9jwziaUDD5wgXBkatikD10wBwxnLEcc2gOz6k8F\nV7ruOTvpMTKHEO65nn+GJs83KOUrU6jChMLEw4r0J2ihmRh4CsFVrwIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQBOqvr2+KnbFyqDAjSVrcIRR5UMR233P0rY/TyTFSyZ\nMwRWuUpk0LG0kNXSxQdmAI4W2QtdyvceRMIS0o7COOzx0vd0fgM0cJkOSIBNpu2c\nMEUl7fDNAdk80l6lTFJaeJecvlWxMn6sl/JU3YKBEnEhAllmh3X+N1xOCLBUYlp7\nqKJ5KHwAjWVEA+C2Bejng56q0dHgoaUZD6DDqrp9GqYE0+8dau9/MDhuFlvxEpab\nmU9Cs9IDDp8Uo/e7CAruXNAC+H3ulaP6rxb1voEEc/9rOeHfyY8/OB2H1jLX3YWp\nfISB8j/ZjHJsUquo7ReBC/raWyDQdFI+eyOxfVZh3Wf+\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/tag/passwords-app"},{"id":"eidlogin","categories":["security"],"userDocs":"https://eID.services/eidlogin/nextcloud/userdocs?lang=en","adminDocs":"https://eID.services/eidlogin/nextcloud/admindocs?lang=en","developerDocs":"https://eID.services/eidlogin/nextcloud/devdocs?lang=en","issueTracker":"https://eID.services/eidlogin/nextcloud/bugs","website":"https://eID.services/eidlogin/nextcloud","created":"2021-06-04T11:30:33.055645Z","lastModified":"2026-09-07T14:10:07.610023Z","releases":[{"version":"1.0.23","phpExtensions":[{"id":"openssl","versionSpec":"*","rawVersionSpec":"*"}],"databases":[{"id":"pgsql","versionSpec":">=11.9.0","rawVersionSpec":">=11.9"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8"}],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/eid-login/eid-login-nextcloud/releases/download/1.0.23/eidlogin.tar.gz","created":"2026-09-07T14:10:07.595647Z","licenses":["agpl"],"lastModified":"2026-09-07T14:10:07.692366Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=33 <=35","signature":"otEs49xmOnsBvLZduNOl0HM/lT3/b8khnuRK9keQ+tUR+IlXR2lHwO/eYrmAdWB/\nDx6Q0LBny6J/GohpzEVc9sZi6MhJJ0iE7hf3/jSXxtlQfIHcC+SbvX6GyreXGGxw\nLl6UrooEYbO1TflNk6f9MLgwJx9pshi/NO7aH14WiB8A+sp/83Nzn1FaBh6Z2ci1\nv+MF6ZGR7Ev619QN6lMrVVo+DgRoNbiv3OHuxfBDbxPaejJVpyZrwRpASSdegIjN\nwOzctvaEZWht4TfeMxuZyGScnZCGzNBsL+mGKVFxubRSgkdoncRIREGALDvzkYxf\nzxmtO5Jrq/aUhngBdjkS3sjbc68y8i89Zl6t4MHtB1/oxiMOtNas3hUnbdVpzHaq\nFiFUwJJ21INj07A3bWZxqtMAf4c5qY4+owpNM4IKqHXyoQJnD00JDE1+5n1Ri8Ks\nYO+XMw/F8PlmazoyLBegmM0xQTi7VajwkKlZiRbaaqOawj/bMB5jyvgJj9cMfN/+\naKJB9w6E9fltP0M1z7wHzlDqIAZUD4f5QxnCpFqo30iDB0xQbup/+SgQw2kIBRbB\nhwJrblJ4npotR4s6LG76q6I/ESIUldNNoKqzCzMyqN+3aReNBRmpIl62uLAkXcwS\nwaFT5AtSv6TaUzpW5e0xigmRGloDTtTTAmMWWRVAgik=","translations":{"en":{"changelog":"### Added\n- Support for Nextcloud 35\n### Removed\n- Support for Nextcloud 32\n### Changed\n- Drop the hard dependency on the notifications app (by @mband008)\n- Do not translate the stored SAML message (by @mband008)\n- Fix typo in resume route (by @mband008)\n- Update npm dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9lSUQuc2VydmljZXMvYXNzZXRzL2ltZy9UaXRsZS1OZXh0Y2xvdWQtZGUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9lSUQuc2VydmljZXMvYXNzZXRzL2ltZy9uZXh0Y2xvdWQtYXBwc3RvcmUvTG9naW4tTmV4dGNsb3VkLWRlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9lSUQuc2VydmljZXMvYXNzZXRzL2ltZy9uZXh0Y2xvdWQtYXBwc3RvcmUvV2l6YXJkLU5leHRjbG91ZC1kZS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"eID-Login","summary":"Integration of mobile electronic identities at a substantial security level","description":"The eID-Login App allows to use the German eID-card and similar electronic identity documents for secure and privacy-friendly login to Nextcloud. For this purpose, a so-called eID-Client, such as the AusweisApp2 or the Open eCard App and eID-Service are required. In the default configuration a suitable eID-Service is provided without any additional costs."},"de":{"name":"eID-Login","summary":"Integration of mobile electronic identities at a substantial security level","description":"Mit der eID-Login App kann die Online-Ausweisfunktion (u.a. vom Personalausweis) für eine sichere und datenschutzfreundliche Anmeldung an Nextcloud verwendet werden. Hierfür wird auf dem System des Benutzers ein so genannter eID-Client, wie z.B. die AusweisApp2 oder die Open eCard App, und ein eID-Service benötigt. In der Standardkonfiguration steht ein geeigneter eID-Service kostenfrei zur Verfügung."}},"isFeatured":false,"authors":[{"name":"ecsec GmbH","mail":"eID-Login@ecsec.de","homepage":"https://ecsec.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhGDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNTI1MTQ0NDIxWhcNMzEwODMxMTQ0NDIxWjATMREwDwYD\nVQQDDAhlaWRsb2dpbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALUA\nUZEt6DJDqodiiUM9EXV/M7D7sJ4GM2bYHOJSOv2C/Wr5b7ZI7K1HPl3AnbNT9BD3\n2ztYkFBBUkQqSzqf7pIJmJ9aBg5v66wWxcjWoTbf0uFKrek/NkpxSTVkTlHB18rj\nETY9JF5CJ+JUq6/YJdJRbYLSfJ17CrbgwcAF8FTejSwnFm4MjXNxGbv791CR7g36\nUZNgrbTTDZzC6UzPyX4gEHXCat1H5SzV92NryDNaqbUF6HzRM30FBUiA7biqWL7E\nEDx3f3G+a1gLoUZgvhuZUL8g37PU5vyBADO7L/SaUUjPe4gsypGHSGYAPfEFxOdG\nD8IGIzjfgBAGm70L3aNRpI7XE5C3QqxOoAKN05GxetslCRFSmlBRneS0S52gVfo2\nVMDiCnsDma41ZfmqeniNCCEYt7A/gbd/UBPnAcjb/fyevUZ9S+A2qPtlllmip1Zz\n6lAzPMaIahr+2akOSRqKTBRxpd+Ewm2OlMbQgzzRD+wF8kCXML5/MAHVYNzcYwCJ\ncGbm3ZjXFiuOHyAjuxJic0dvcexRAGyTOq4Ql/yMWw7eRGA21KEjW6yzq4pLpFCT\n2xT31S3Fwn3ygrnW9NmbynFCS6faxpMo32nsYM2VFDbd9lyxd/7y8+gCb9fuy3HY\nd2btu58A7AqGskUVJh03Uakh23MSIxL8jkKuW58/AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABAiciKcUu46oCw9Yp2+ulKJJyYSRdM3tSEFhpIhDytoGAmsEMh+P75r\nkgtAGpqqoMd93xTaPJulj8DQXJQ0iiHs1r0nrTN9PEFqKaLYJCDhXVt8olPFx1lG\nTtAlVnzSIaH8SmO5/ve2aBUuwoX8R7geX19zAQvtvw3DaC2hcD+aQLYHa9vJEiA+\nPgYJRcdXmhu5xvIp6dHiQPRKjXj6xTAj95op2tn8JOCSUDHPntmFU0mx+1N3WZi0\nC1FdLYUFzsWPqbzC2mehJ0JfNtP0hSazLfnOHnIJA969Wcu7vlEED1X2SeApNP98\nI/qqDhi52WXjpsIH8aG1LCYwtMmsiQI=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"forum","categories":["social"],"userDocs":"https://github.com/chenasraf/nextcloud-forum/wiki/Users","adminDocs":"https://github.com/chenasraf/nextcloud-forum/wiki/Administration","developerDocs":"https://github.com/chenasraf/nextcloud-forum#development","issueTracker":"https://github.com/chenasraf/nextcloud-forum/issues","website":"https://github.com/chenasraf/nextcloud-forum","created":"2025-11-14T18:32:54.631198Z","lastModified":"2026-10-19T06:47:24.431084Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-forum/releases/download/v1.5.0/forum-v1.5.0.tar.gz","created":"2026-10-19T06:47:24.419968Z","licenses":["agpl"],"lastModified":"2026-10-19T06:47:24.473613Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"ABnu4CiBziXyl5FrVsLf7jWAW2KPVCHYJy+QHLWyfKGuShyCakLpWxCCCGpzq+aMijjlYd/M+DsaW/xCtgBC6iL6MPlTB9brEgbdPzXTOiQ0j9ULDuoMuyHaTruZy1xz5kcAvnkPXCvWMNjQF9jHSDnbfL9WIcOWu7wVW8eD3zSDN7Y/mpxyQQnHCUxzTba1mfQPAzVeRIlUWSakBRW7rFMetdPvF3XgOZ1B6IB0k14NTYqrU6V2Y+1jgNYUyzyMJ4/ftLlhOAO5+Hkxpu4opWTOkL2ZRC3ZTm+hkVFX4MDZaaCmMgJaelllFYrpAkWnH7nHfnHb1pIMP3KAteTZD4GbdpyDXl0ocwupcmuaqnfpVzEgSZlbrsVAXznkYEAYQsQtS1gBCTyIxk3klOjp/wJi0koeUFC9cqySF2tTHLsNCL50962QJQZi5nsR5Oap7iZ1QsZkGCoccVYRCJhX5qUllOvOgjtOPGFMpAXypy2OWxZythBwMBLQtMvX84SMZRg8m6CpztHnQe2yUdZwRlU6fl07Xvxio50F4ZcSkRSuKfBC4ioL+wCU3Co51W/G8ogDyRq1rSIL4X2sCO8t+cPwqAN1hTOkoP8Pr8/VCdici6g9CNrMmYT21ogrOa6YhOJWDk0bCCZeCYsuYeoAF01z5mcdTk1f+u/sIRMEbLk=","translations":{"en":{"changelog":"### Features\n\n* **nav:** collapsible category tree with unread counters ([4982c24](https://github.com/chenasraf/nextcloud-forum/commit/4982c249a73f753087c31a2010b8f810fd9d33a5))\n* **posts:** nested replies ([24340f4](https://github.com/chenasraf/nextcloud-forum/commit/24340f4df94ec18cfcad4ac1418da39b2cfe9eb9))\n* **threads:** summarize thread with Nextcloud Assistant ([#346](https://github.com/chenasraf/nextcloud-forum/issues/346)) ([2d390a0](https://github.com/chenasraf/nextcloud-forum/commit/2d390a09ddd66a8d55fae2fd991c8f2af7059f40))\n* **unread:** unread counts on cards and mark category as read ([fad93dc](https://github.com/chenasraf/nextcloud-forum/commit/fad93dc98d5f832b4929242ae9dec62f6d6f020d))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([d479f40](https://github.com/chenasraf/nextcloud-forum/commit/d479f40b63a765aee2c270d6dcbcdd0ffee7f66f))\n* **l10n:** Update translations from Transifex ([0dc8424](https://github.com/chenasraf/nextcloud-forum/commit/0dc8424092a336a068761db8df5dc02905c63612))\n* **l10n:** Update translations from Transifex ([cf50d3a](https://github.com/chenasraf/nextcloud-forum/commit/cf50d3a6d388ecfb517cf47685abdc88411f11c1))\n* **l10n:** Update translations from Transifex ([c2ce34d](https://github.com/chenasraf/nextcloud-forum/commit/c2ce34d42adb422f5b08b2ed1e14b25a6b14f1c2))\n* **l10n:** Update translations from Transifex ([b0d0dd5](https://github.com/chenasraf/nextcloud-forum/commit/b0d0dd5a8781ad9410d347d77ee6f4511e914436))\n* **l10n:** Update translations from Transifex ([0a37ae8](https://github.com/chenasraf/nextcloud-forum/commit/0a37ae8691efdb34c520b98c6fc97483e575b027))\n* **l10n:** Update translations from Transifex ([f724c99](https://github.com/chenasraf/nextcloud-forum/commit/f724c9961641b8f1356ed6027176ee725b97ed9a))\n* **l10n:** Update translations from Transifex ([cd57b66](https://github.com/chenasraf/nextcloud-forum/commit/cd57b669bca5429e7517e11376df2b23f39fe3cb))\n* **l10n:** Update translations from Transifex ([56184df](https://github.com/chenasraf/nextcloud-forum/commit/56184dfecdb3dfb34de8265509a20eafcba4fd6f))\n* **l10n:** Update translations from Transifex ([be5639a](https://github.com/chenasraf/nextcloud-forum/commit/be5639a1d74164dcca8df6a072fb56feb40b8406))\n* **l10n:** Update translations from Transifex ([16d6136](https://github.com/chenasraf/nextcloud-forum/commit/16d61362cf0bbc68773be7c85c74fb8f6adb969f))\n* **l10n:** Update translations from Transifex ([63e088f](https://github.com/chenasraf/nextcloud-forum/commit/63e088f84f661329eb80438370b958a49f614460))\n* **l10n:** Update translations from Transifex ([1c54f47](https://github.com/chenasraf/nextcloud-forum/commit/1c54f478befa3ece3f4001e094310b5d69b0b9cd))\n* **l10n:** Update translations from Transifex ([22f16bb](https://github.com/chenasraf/nextcloud-forum/commit/22f16bb63e8f117920532c57832840fec78d39ad))\n* **l10n:** Update translations from Transifex ([5e4b025](https://github.com/chenasraf/nextcloud-forum/commit/5e4b025a42ea9f153ad528ce288fb1b87fc92c5b))\n* **l10n:** Update translations from Transifex ([4737856](https://github.com/chenasraf/nextcloud-forum/commit/4737856e776cdd994af6773f8f2c6c62bd17d14c))\n* **l10n:** Update translations from Transifex ([8a5aa18](https://github.com/chenasraf/nextcloud-forum/commit/8a5aa18fc3a3a26f1df14f6042a227c6828dd46b))\n* **l10n:** Update translations from Transifex ([7ab0f5f](https://github.com/chenasraf/nextcloud-forum/commit/7ab0f5fb91fb8350c1e215831c5fb51627b1de7d))\n* **seed:** resolve l10n via IFactory on Nextcloud 36 ([db7aa6c](https://github.com/chenasraf/nextcloud-forum/commit/db7aa6c1bf48a0f73770399bf39e0c7c7c327744))"}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-forum/releases/download/v1.4.2/forum-v1.4.2.tar.gz","created":"2026-09-17T06:51:51.681841Z","licenses":["agpl"],"lastModified":"2026-09-17T06:51:51.736905Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"i1ALI1QT7WnhMqdcOan/vJuui9ou5ghp1KRaiyRJkvDuhDnqMgB/QJw1YNZwKewuR6FU4AdvBHP1T/nzCDfLhZBY5HAlDpJQoWErvncKLxbm+Zq2O7yGPem9kRc/J59LaahVR8iHjUbmdN5IzpkDdWwjgEI7nxeGdsaCdZMjMMVPZgZSztR93euigMH5oFzYFJPpu+uLV2DnwhhdyZyPzZJoZRKGc4mFWFxrQfYyKkggG6YVgJ5LT0WNjXuYJqiL9RiPIDhzdnHa3zpMwoZJ2EjrNPv/koje3H4Vl4cQ68Dc4DX5ak/IwhILVB+06OU/JhGFQX+gkj5MFKQ2V5jHRYDYRoycFbH1ij0AUdoRuSPsl/e16WJN8kGBMvRD32gVPz1HuPYc3hK+J7CwhvkzBkhyk9B0TYp1qqRTqcNawqjQhd5TIyi3AbTV3TxgdMl5aomzvio6m5qErnB8bjQhP6Hzrufk4Fa4oXroUnPWgh6ufyBxLYF74p/aR7d0PKshLUMI30kp2n541AyDaQ+3Zo92dvOHt27SHdBaRaNDBJLWp67yDcPgQut/h0S9R20ENJEv1oMRy5JhP4k+eTaoT0IPcWUf0Fs7427B7zhGgJvcOjYJ3U3QSOt+Zw2C9kHmI9M/QMcRvketXahDijVPRRRm00mayxE5ssy8UISkojM=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([8c1bb07](https://github.com/chenasraf/nextcloud-forum/commit/8c1bb07ece405f9c72ddc173e1fc800ae7b00a83))\n* **l10n:** Update translations from Transifex ([3fedfd7](https://github.com/chenasraf/nextcloud-forum/commit/3fedfd754ea480c5ae3f490debc72f80a0ebc482))\n* **l10n:** Update translations from Transifex ([14a927b](https://github.com/chenasraf/nextcloud-forum/commit/14a927ba22060b9feda3a618a710cfe39a990010))\n* **l10n:** Update translations from Transifex ([eb15fcb](https://github.com/chenasraf/nextcloud-forum/commit/eb15fcb0981f58679a3158ff30ae58e3fc3a3939))\n* **l10n:** Update translations from Transifex ([1c02cf3](https://github.com/chenasraf/nextcloud-forum/commit/1c02cf35a150aa35e11f28600988d706ee2eccab))\n* **l10n:** Update translations from Transifex ([1544674](https://github.com/chenasraf/nextcloud-forum/commit/154467414cc66e08d31d2cae17803d43f5363d96))\n* **l10n:** Update translations from Transifex ([571c18c](https://github.com/chenasraf/nextcloud-forum/commit/571c18ceca84061f0127be48ae9695dce0a674c5))\n* **l10n:** Update translations from Transifex ([8f67f46](https://github.com/chenasraf/nextcloud-forum/commit/8f67f46ffc3aae0d1447293711606dbbad134d8c))\n* **l10n:** Update translations from Transifex ([055c9b9](https://github.com/chenasraf/nextcloud-forum/commit/055c9b9b850ad0f14e1e9da170e3261d914ee228))\n* **l10n:** Update translations from Transifex ([9b3a085](https://github.com/chenasraf/nextcloud-forum/commit/9b3a0857870c66b991600a6be66f07a939942e01))\n* **l10n:** Update translations from Transifex ([add7f70](https://github.com/chenasraf/nextcloud-forum/commit/add7f70be2275aa4eab142e94c79ccae4061818b))\n* **l10n:** Update translations from Transifex ([1e6e8da](https://github.com/chenasraf/nextcloud-forum/commit/1e6e8dabd4a42a80e2371b7c0e73790cbbb6a273))\n* **l10n:** Update translations from Transifex ([06d7d19](https://github.com/chenasraf/nextcloud-forum/commit/06d7d1939ee697a98a1eaec6d6e71f81d66f1e4a))"}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-forum/releases/download/v1.4.1/forum-v1.4.1.tar.gz","created":"2026-08-27T17:10:22.240187Z","licenses":["agpl"],"lastModified":"2026-08-27T17:10:22.305446Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"ATvz1jVvj2TDhqU2O9T5zPrWz1Ze4qyQiKHR2GYiSzTaxWfrSSF9Uch6eF0dho9jOXLjQqeZuBDxs5S4dDi9WTztv0rRaC8oIXXJt373JorpEADabOfowU6K/S94aGOnrhKo3+Wg7GMM3Feb4EXKuC9unkdkHQLPwG1wuJaERnxowfKz6se/zCZF6w2si7VFt+0jgFZEjerxhBZA6DiWSSLfdenEn+qklfafRiTrNom3s3AzKeTPDPtq6YtgXH/A+6AVKR1hf8hzC9IdicmaieMYwO1kVfU9UC/xwTcHj8uwHN4fsO+jGl++/9TJ2Ebndx5PiuwzsGQMx3S3OThn/gmjyC0uPwrLSPo/PwAbZyJb9jM4PK3L5KXpHB6MlhqEC5vgqHSJ1YGjpLuQeQ+25Mfvy5ytlvBAegi0mUpUY0o9uEzTrLUqGBu12XMhEvGyHIrqjbQO75jAsWRsT1h1cIn9ALyXOYcYGmAs8kDTOp5yHdaKACIsHil7IRFbJm+VvsHy4pHk1vTF7ot7O3UIe+Zlph+vVQ0aYZyW+4Oqrk2C7/0JyRZpE1KIwrcaaSU09a2WPj2qM/novlDn7V9G4in7Z2hgk4tjlNFRQtstoSq4ZgS4I4Yx88bCNSOOtrZ2gHWgc/JKzbR5RSVMSCk4zUewDYCobtgNSR2Cy1EGSt8=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([733ce7c](https://github.com/chenasraf/nextcloud-forum/commit/733ce7c77c6be1d874b87c3dfd8c2bd0d61723fc))\n* **l10n:** Update translations from Transifex ([10a5c21](https://github.com/chenasraf/nextcloud-forum/commit/10a5c21700fbcb2008267852546bd4176ed4c899))\n* **l10n:** Update translations from Transifex ([65f39f1](https://github.com/chenasraf/nextcloud-forum/commit/65f39f1dfb39f7e7d43b2a48f57251c8c823ff71))\n* **l10n:** Update translations from Transifex ([49e0e5b](https://github.com/chenasraf/nextcloud-forum/commit/49e0e5bd306cd9584e944c26aa6ea31309939f80))\n* **l10n:** Update translations from Transifex ([79299dc](https://github.com/chenasraf/nextcloud-forum/commit/79299dc341d609bc90b60c998ce724dab1d2177f))\n* **preferences:** stringify defaults passed to getUserValue ([048f231](https://github.com/chenasraf/nextcloud-forum/commit/048f231b988ee12e95467c49255a2fa54b3ac29e)), closes [#336](https://github.com/chenasraf/nextcloud-forum/issues/336)"}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-forum/releases/download/v1.4.0/forum-v1.4.0.tar.gz","created":"2026-08-17T11:13:38.746710Z","licenses":["agpl"],"lastModified":"2026-08-17T11:13:38.824578Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"eiiok88ykAibv0j56zgFdTkj97opVcUpiKfw18ylzlA6OZvWFUdg2fPqpJ1lX2Cnp/dgjiLT3kedNkSjcy3IXNHAIAVtn3dwqTrdirYmZq70C8ymDzH15PP11wjBiUj9XVEz2mSemfv9Jo/dJ934jYGYftmywS9g6Zp4mGCXKOtuooowugT89fMG0ySey03GrN57jkNmJCrjpkY0uhcEGh6e3FIoiqFo1t5Yb3QR27Su5IrtR1LY2+4Hc/p60X/tSv7jaCayvNmG05G3Q4MsvQH8bg7Nv7h725HDsp0Rr4qMipeS3Z5mBQJ4egG1Xy3RkRj6kULqqmpZ8eJ1bw+tVrT7fWInvrBh9/zRGlw2jWsGyLwNDZfiP2IEE3R/CxC54IFA7ekkPFzyZRKLcUw0yLXA+agMZwVXKrMz0Lw6B3KP8hC3mpLsF6xVRdOr12ftcvJ9dzhaPIOBbfYVDVM69IcNUeCxM8mzGPlD82qq6UOLXWIIwsvBNKQTEMoth+IekFnpqXRr7Ks8ZrJ9hroSwhDc8EANiSloWpMjgjcry+c+eQZ9BY0pE4A1p5CJjhWiYLXhTaFxPd6WSgftzVmU9QSM6jzlQIBO/QnGofL0qp+8EkDKNmBEiVNr2ZxlhcHZEo6Ooq30fPyMRI19u7rJAb8mKYkOjUsr4Nci2j7IvI8=","translations":{"en":{"changelog":"### Features\n\n* add nextcloud 35 support ([40030c8](https://github.com/chenasraf/nextcloud-forum/commit/40030c8af15e6fb74c1ef09895898f3dcb2ef11b))\n* **moderation:** bulk permanent deletion via multi-select ([89e7a37](https://github.com/chenasraf/nextcloud-forum/commit/89e7a375b998ff160b50a3a064dd982493203c6f))\n* **moderation:** permanently delete threads and replies ([addf0e2](https://github.com/chenasraf/nextcloud-forum/commit/addf0e2f1306b754f4eb480c049ce84c3bea92c0))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([7c39514](https://github.com/chenasraf/nextcloud-forum/commit/7c39514b10165e03586e2004c79c41444efb9696))\n* **l10n:** Update translations from Transifex ([4aecf02](https://github.com/chenasraf/nextcloud-forum/commit/4aecf024941a63c80ab1e7132be9ae46006a8324))\n* **l10n:** Update translations from Transifex ([2218f24](https://github.com/chenasraf/nextcloud-forum/commit/2218f24188c9987ab9a44091d6cef54c8173cee3))\n* **l10n:** Update translations from Transifex ([8c0bb72](https://github.com/chenasraf/nextcloud-forum/commit/8c0bb72059395f702a1cf355f2e0b3feb269ee99))\n* **l10n:** Update translations from Transifex ([52ca95c](https://github.com/chenasraf/nextcloud-forum/commit/52ca95c1e20d921c5267d8b534ca7b5e6067fc5d))\n* **l10n:** Update translations from Transifex ([71aeab5](https://github.com/chenasraf/nextcloud-forum/commit/71aeab598357aa4ffd53459640e90a8acfc5b410))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZW5hc3JhZi9uZXh0Y2xvdWQtZm9ydW0vcmVmcy9oZWFkcy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC0wMS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Forum","summary":"A community-driven forum built right into your Nextcloud instance","description":"Create discussions, share ideas, and collaborate with your community directly in Nextcloud.\n\n**Key features:**\n- **Threaded Discussions** - Create and reply to organized discussion threads with pagination\n- **Category Organization** - Structure your forum with customizable categories, headers, colors, and drag-and-drop reordering\n- **Rich Text Formatting** - BBCode formatting with built-in and custom tags, toolbar with overflow menu\n- **File Attachments** - Attach files from your Nextcloud storage or upload via drag-and-drop\n- **Notifications** - Subscribe to threads and get notified on replies and @mentions\n- **Post Reactions** - React to posts with emoji reactions\n- **Read/Unread Tracking** - Track unread posts at thread and category level\n- **Thread Summaries** - Summarize a thread or its unread replies with the AI provider configured in Nextcloud\n- **Bookmarks** - Save threads for quick access\n- **Search** - Advanced search with boolean operators and category filtering\n- **User Profiles** - View post history, statistics, and role badges\n- **Roles and Teams** - Fine-grained permissions per role or Nextcloud Team, per category\n- **Guest Access** - Optional public access for unauthenticated visitors with configurable permissions\n- **Edit History** - View post revision history with configurable visibility and per-account privacy controls\n- **Reusable Templates** - Save and insert frequently used content snippets\n- **Signatures** - BBCode-formatted signatures on posts\n- **Thread Drafts** - Auto-saved drafts per category\n- **Dashboard Widgets** - Recent activity, top threads, and top categories on the Nextcloud dashboard\n- **Direct Post Links** - Link directly to a specific post within a thread\n- **Moderation Tools** - Pin, lock, hide, and move threads; review and restore deleted content\n- **Management Tools** - Manage categories, roles, BBCodes, and forum settings with granular permissions\n- **Server Administration** - Repair seeds, rebuild statistics, and assign roles from the Nextcloud admin panel\n\n**Perfect for:**\n- Team discussions and collaboration\n- Community forums\n- Support channels\n- Knowledge bases\n- Project discussions\n- Internal communication\n\nThe forum integrates seamlessly with your Nextcloud instance, using your existing accounts and teams for authentication and access control."}},"isFeatured":false,"authors":[{"name":"Chen Asraf","mail":"contact@casraf.dev","homepage":"https://casraf.dev"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhLPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTE0MTYwNTU4WhcNMzYwMjIwMTYwNTU4WjAQMQ4wDAYD\nVQQDDAVmb3J1bTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKUeYdt7\nR23UjxDnioXBS3/bCD1H4qmN+zfD0gBITrqYG/8lYWuyj7CpdoAGPBxs5+IzIEuT\nOjOVaCtOrFDXZAZlXeAfxjxnxHx/vav1vRQ9lS1gLGvfVg+8MuSRL9IlFB8UDsVR\nWcXrQRgioYCIBptg1F+GH2uD6tA1+915/jGMqDjFvrnByt09quKpz/gFPH4o+74U\nP/m1b14qaEXZPOxXMJk8E1GlbD/AsIKYioO92k+TDHk8kWJWprmN7vMh+qECpkq6\nsMqBJcnfmXxHQlHhb2aS2eLf4RZo8tBuazsNjgVNSDXne/VZWiPy5QnIQQwLDSjZ\n6T/nPo+/JJS4dk8VzD9Q/kuBlW7uZ11tdiouKOlC5BU1CYSH9eAzxE0h4rwULMoJ\nNEn/4hhexoUPxZ3oD624A3j7pQLVvxIu2PjWSUreedVBrULiikfKCG916cTu9Zz7\ndKIMTUkZ+9MdS+w9YERK/tKOjffW/6C+M6EScsI9eHgN8i26vzVpCCPHOLYiRCpE\naVBgL9lJBLycQsPriieQVVTyoKxMJGrEO9SO51wNizXYTpCh0wYTsnz2liNROWat\ncv0YDpm0pDCFv9C3nTc5YC0fPFEdeRL7Qo9/SFvPBnQrYXpcQYDViSyC/km2RDJg\n1R/UC0bzgNVFUwNJiWTRkEwsVJHML4fz2gZtAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAFkQG+fJomucPGCbM/HRaD+rsn7+CRJ6ftjl8gaLIcFesepWDyeUNsHLUkK9\nZkIQlDKPPLi3+VuSMjknDt0JIGLLfqeLimwpX8Fn8/+XnyBNSKytlj4/0CERvdnZ\nfXEm2YuCYDPTKtFZZmGzjCO3RWwZ38cyn+j5pnDAZkMAzLCwwFZ/GC2HMXY6s52W\nRXoYNJGtNJuKx3Y7GpKC+rlk8MGbZ2vyB/seLKsyZegRFB0wjykll1KtnM1PO9CY\nZpTuJkbOewYFOUTJOIy3PQR0Mg1dASUuqbWG/CVAokfCa6rGo0VXZKazblUnhE7b\nVlsPphOtpIidOrGu9/r2cAWTOls=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"introvox","categories":["dashboard","integration","tools"],"userDocs":"https://github.com/nextcloud/IntroVox/blob/main/docs/user/overview.md","adminDocs":"https://github.com/nextcloud/IntroVox/blob/main/docs/admin/guide.md","developerDocs":"https://github.com/nextcloud/IntroVox/blob/main/docs/architecture/overview.md","issueTracker":"https://github.com/nextcloud/IntroVox/issues","website":"https://voxcloud.nl","created":"2025-11-04T05:55:10.137955Z","lastModified":"2026-10-21T08:10:59.281300Z","releases":[{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntroVox/releases/download/v2.0.0/introvox-2.0.0.tar.gz","created":"2026-10-21T08:10:59.273167Z","licenses":["agpl"],"lastModified":"2026-10-21T08:10:59.333400Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"KmXOks1ALk7EfFUOHNU+p6RFjG7J7DezBr8Aa1KFAb4vUL8Mlw+zlaCK7LakXwiWEcH9V2JN+o36dED6w/dlXpBMx5vE2nakfAyfblTreB72lgP6lRMKugYvv2XQYOgLCr5sbJBowVMdJzCII5eliPZkL/lW5lU+Ng5zK8YuD/YFAQ5FLxYMcGyS51Y0YeXFWc8u0DAYoRiCV7V+/wZbs0pxZj8oOiaKEoeqLDWO7tq3Dpuis2IiAWm9eUAgqHHUBTyqw9sGQ+NWP9K5m3MKpp5HWg/0C7KwfMcJTUlBZc/sGg3v61R/NboCV37vCX/W47+6pUjJaX9YLSmE/0FYWCD/JOxEBk+ffXBxvmMZbty67emRRST/9Ca5Fd51s2xJsYOHQZE5ss/twBLC1cUIWGoxp/JLjKicsT/4EmEAcbM6UWcTNOoDe9i5pzb9/fLQJPUmi2RqbphuMYHWsvM4ZpQj90ORQSd2wiejZ6+zWHcPuxJXferHYNG90XVTI+ANmKZ+R+yd/kh2ddFexz9yqgxsxQB3Jk/CfhqbrXTFqy2TQKAy5IhGTPqilEOEEoyzRDlx7dmSYlwdovehRfDQ5HXNYkUIlSRhI5sBTCzvyTuBCCv+8fzvu2oIVgJm58H9GCXv8FTviv2QQl4fXVzt71nnhWoRW2fY5vTAk4hdRBM=","translations":{"en":{"changelog":"IntroVox grows from one welcome tour into tours for Nextcloud and its apps. The major version marks that, and a few changes to the app's HTTP routes that a script outside the app could notice; the stored tours, steps and settings carry over as they are.\n\n### Upgrade notes\n\n- **Nothing new reaches users until an admin switches it on.** App tours, the built-in tours for Files, Talk, Deck and Calendar, and the Dashboard checklist all start switched off. The one exception is **Tours** in the user menu, which everyone sees; hide it under **Settings**.\n- **The personal \"disable the tour\" switch now covers every tour.** A repair step (`IntroduceTours`) turns tours off for people who had switched the welcome tour off without finishing it; people who finished or skipped it will get app tours once an admin switches one on.\n- **Telemetry waits for an admin.** It is sent only after an admin has opened IntroVox's settings and been asked, once per instance. Until then an updated instance sends nothing.\n- **Changes for scripts that call IntroVox's routes directly:**\n  - `POST /admin/step`, `PUT /admin/step/{id}` and `DELETE /admin/step/{id}` are gone; use `POST /admin/steps` (see Removed).\n  - `GET /api/steps` needs a logged-in user and the CSRF request token; it was public.\n  - The admin `GET` routes, the personal settings and `POST /api/wizard/{start,complete,skip}` need the request token too.\n  - `POST /admin/settings` ignores `showToAll`; use `POST /admin/tours/welcome/reshow`.\n- **Older step exports still import**, but a step is now checked like one saved in the editor: an id of letters, digits, `_`, `.` and `-`, a title of at most 500 characters, a known position, and a file of at most 1 MB. Exports made with IntroVox pass; a hand-made file may be refused.\n\n### Added\n\n- **Tours for apps and pages.** Besides the welcome tour, an admin can make a short tour that starts the first time someone opens an app, such as Talk or Deck, or another page of Nextcloud. Each tour has its own steps and languages, can be limited to groups, and can go to everyone or only to people who log in for the first time after it was switched on. It starts once per user, once the app has loaded, and never on top of another tour: someone new gets the welcome tour first. A new tour starts switched off. See [Tours](docs/admin/tours.md).\n- **Users can start every tour themselves**, from a list in their personal settings that says which ones they have seen.\n- **Statistics per tour, and how far people get.** The Statistics pane shows each tour on its own: how many people started, finished and skipped it, and for every step how many got at least that far, so you can see where people stop. Counted per person, only for runs that started by themselves, and only as totals; none of it is sent with the usage statistics. See [Statistics](docs/admin/tours.md#statistics).\n- **Move a whole tour to another Nextcloud.** **Export tour** downloads one `.zip` with the tour's settings, its steps in every language and its images and videos; **Import tour** adds it as a new tour, switched off, uploaded or from your own Files. Groups and media this Nextcloud cannot take are left out and named. A package is checked as strictly as an upload. See [Move a tour to another Nextcloud](docs/admin/tours.md#move-a-tour-to-another-nextcloud).\n- **Built-in tours for Files, Talk, Deck and Calendar**, switched off until you switch them on, and translated like the welcome tour. Each lets users do the app's main job once with their own work (make and share a folder, set up a team conversation, add a card with a due date, plan an event) and then shows what matters most at work, in 11 steps, written from the Nextcloud documentation and reviewed for adoption, accuracy and robust selectors. Their steps can be changed per language and reset; who gets them and when can be set like for any tour. See [Built-in tours](docs/admin/tours.md#built-in-tours).\n- **Share a tour with a link.** **Copy link** in a tour's menu gives a link that opens the tour's page and starts the tour there, for a welcome mail or a message to a team. It works like a start by hand: also for people who saw the tour, only for people who may get it, and not counted in the statistics. While the tour is switched off, **Copy link** says the link starts nothing yet. See [Share a tour with a link](docs/admin/tours.md#share-a-tour-with-a-link).\n- **\"Tours\" in the user menu**, just above Help, leads everyone to their tours in the personal settings. An admin can hide it under Settings.\n- **When a tour starts by itself:** not before a number of days after someone's first login, and only between two dates. Starting it by hand or with a link always works.\n- **Tours that start anywhere**, on whichever page someone opens next: with a number of days, a tip that comes once someone has found their way.\n- **Steps that wait for the user.** A step whose element only appears after the user did something (a conversation they create, a file's sharing they open) stands aside in the corner, leaves the page usable, and moves to the element as soon as it is there. Together with \"Click on the element\", a tour can now lead someone through creating a conversation and adding people, in any app. The element picker says so when the element was reached by using the page. **Continue with: Filling in the field** keeps Next off until a field has text, such as a new conversation's name. The element a step points at has a clear outline and a blinking arrow, also inside dialogs. See [Steps that wait for the user](docs/admin/managing-steps.md#steps-that-wait-for-the-user).\n- **\"Getting started\" on the Dashboard.** An admin can offer everyone a checklist of first things to do: take the welcome tour, upload a file, add a profile picture, install the app, send a message in Talk, secure the account with two-factor authentication. Each task links to where it is done and ticks itself off once the user did it. Admins can add tasks of their own, such as \"Open Talk\" or the folder with the handbook, ticked off once opened from the list. Off by default; the admin picks the tasks and can put the list on every Dashboard, and everyone can remove it under Customize. See [Checklist on the Dashboard](docs/admin/settings.md#checklist-on-the-dashboard).\n- **Translate a tour, or write its steps, with AI.** With a provider for the Nextcloud Assistant set up, **Translate with AI** translates a tour's steps into other languages, words only, and **Write steps with AI** writes new steps from a description. You check and can change every step before it is saved. See [Write or translate steps with AI](docs/admin/tours.md#write-or-translate-steps-with-ai).\n- **Images, GIFs and videos in steps.** A step can show one image (PNG, JPEG), animated GIF or video (MP4, WebM) above its text: uploaded, chosen from the admin's own Files, or pasted as a screenshot. A description is required unless the image is decorative; videos play with a play button or silently like a GIF, and can have captions. Anything that moves can be paused, and stays still for people with reduced motion. Only files from this Nextcloud: IntroVox keeps its own copy, checks the real file type and strips metadata such as location, and only users who get the step can load the file. See [Image or video](docs/admin/managing-steps.md#image-or-video) and the [threat model](docs/security/media.md).\n\n- **Pick the element a step points at instead of typing a CSS selector.** **Pick element** in the step editor opens Nextcloud full-screen on the settings page: click the element, and a selector that survives reloads, other languages and most updates is filled in, with a matching tooltip position. To pick something inside a menu, open the menu in Browse mode and Shift-click the item; the step then opens that menu itself before it shows (new **Open first** field).\n\n- **Tours can span apps.** A step can belong to a page, such as `/apps/spreed/` for Talk; the tour opens that app when it gets there and carries on, with Back working the same way. Pick element fills the page in. Steps in an app a user can't open are skipped, and a tour that went to other apps returns to the homepage on Done.\n\n- **Steps that continue on a click.** With **Continue with: Click on the element**, users click the highlighted element (\"Click New conversation\") instead of a Next button, and the step tells them so. If the element is missing, a Next button appears instead.\n\n- **Preview the tour before users get it.** **Preview tour** runs the tour for the language being edited, optionally as a member of one group; **Test this step** shows a single step, unsaved edits included. A preview is not counted in the statistics and does not mark the tour as seen for the admin.\n\n- **Step texts are written with formatting instead of HTML.** The **Text** field is an editor that shows the text as the tour will, with a toolbar for bold, italic, a heading, lists, links, code and emoji; the title has an emoji button too. Links open in a new tab, so the tour stays where it is. **Edit as HTML** shows the HTML itself. HTML that users never see, because the tour removes it, is left out of the editor with a line saying what; it only goes from the stored text once the text is changed. Texts are still stored as HTML: exports, imports and the translated default steps are unaffected.\n\n- **A short tour of the admin page for every admin**, the first time they open IntroVox's settings: the parts of the page, languages, how to make a step in four moves, the preview, and a link to the manual. It uses the same tour users get. **Show the admin tour again** under **Support** runs it again.\n\n- **Steps can be reordered without a mouse.** Every step has **Move up** and **Move down** buttons beside the drag handle. Reordering was drag-only, so it could not be done from the keyboard or with a screen reader at all — the two buttons save the new order the same way a drag does.\n\n- **Translations in 105 languages**, from Transifex as they stood on release day. Danish is complete; Spanish, Dutch and French are largely translated, partly by machine and not yet reviewed by their language teams. Languages with only a few translated strings are included too: what is not translated shows in English.\n\n### Changed\n\n- **The Steps pane is now Tours**: a list of the tours, each with a switch, **Edit steps**, a preview, **Show again to everyone** and, for app tours, **Delete**. The step editor opens from there. The main switch is called **Tours for everyone**.\n- **\"Permanently disable the introduction tour\" in the personal settings is now \"Start tours by themselves\"**, and covers every tour. Users who had switched the tour off there keep tours off after the update; users who finished or skipped it get app tours.\n- **Show wizard to all users is now Show again to everyone**, in the welcome tour's menu under **Tours**, like for every other tour. It no longer overrides people who switched tours off; everyone else who saw the welcome tour gets it again, as before.\n- **The Statistics pane counts people, not clicks**, for skipping too: \"Times skipped\" is now \"Users skipped\".\n- **Pages load less.** The script every page loads is 18 KB instead of 252 KB, and asks the server nothing: it decides from what the page already carries whether a tour starts, and only then loads the tour itself.\n- **A same-origin frame of another app starts no tour inside it.**\n- **Wording follows Nextcloud's own terms**: people and accounts instead of \"users\" where it means everyone, and no contractions such as \"don't\" in the new strings.\n- **The English source strings use American spelling**, as Nextcloud itself does: \"customise\" became \"customize\". Until translators catch up, that one string shows in English in the languages that had it translated.\n\n- **Every change to the steps is saved straight away**: saving a step, deleting, reordering and switching a step on or off. The **Save changes** button only appears to retry a save that failed. The personal \"disable the tour\" switch saves straight away too.\n\n- **Steps are edited in a dialog, a page at a time**: content, element, behavior and who sees it. New steps walk through the pages; existing ones can be saved from any page. Element, page and menu are summarised next to **Pick element**, with the fields folded away under **Edit by hand**. The step list itself no longer expands an editor.\n\n- **The admin and personal settings pages use Nextcloud's own components and icons** instead of emoji buttons and plain form fields. Buttons show their intended colours again; with @nextcloud/vue 9 every one of them had rendered as a plain grey button.\n\n- **The tabs across the top of the admin page are Nextcloud's own pane switcher**, the control core uses for a settings page with several parts. They were hand-built buttons: a screen reader heard four loose buttons with nothing saying they belonged together or which one was open. On a phone the row no longer runs off the side of the screen — the fourth tab used to be unreachable, because the page does not scroll sideways.\n\n- **Text in the tour and on both settings pages follows the sizes the theme sets.** Sizes were fixed in the code, four of them smaller than Nextcloud's smallest — a size no display setting could enlarge. They now scale with the rest of the interface.\n\n- **Lists in a step show bullets.** Nextcloud's stylesheet takes them off every list, so a list in the tour looked like a column of indented lines. This shows in the default steps too.\n\n- **Telemetry is only sent once an admin has been asked.** The admin tour ends with the question, with a list of what is sent; it is asked once per instance. After that telemetry is on unless an admin chose not to share, as before. Instances where nobody opened IntroVox's settings since the update send nothing. The list of what is sent now also names the tour counts, the country, Docker and the license key.\n\n### Removed\n\n- **Three unused admin endpoints**: `POST /admin/step`, `PUT /admin/step/{id}` and `DELETE /admin/step/{id}`. The app has always saved the step list as a whole through `POST /admin/steps`; nothing called these. Anything outside the app that did call them must move to `POST /admin/steps`.\n\n### Fixed\n\n- **A fallback selector won over the main one**: with an element such as `.cards, #navigation a`, a step pointed at whichever came first in the page, here the navigation. The selectors are now tried in the order they were written.\n- **People with a regional language, such as `pt_BR`, `zh_CN` or `es_419`, got the welcome tour in English**: only the first two letters of a language were used, so a translation or an administrator's own steps for the full language were never shown. Now the full language comes first, then its base language.\n- **A welcome tour with every step switched off, or only with steps for other groups, showed the built-in steps** to the people it was meant to show nothing. It shows nothing now.\n\n- **Edited and new steps were gone after a reload.** Save in the step editor only updated the list in the browser; nothing reached the server until a separate Save changes button at the top of the list was clicked, and leaving the page did not warn.\n\n- **Cancel deleted saved steps.** Cancelling the editor removed any step that had once been created with Add step, even one saved long before.\n\n- **The tour started about ten seconds late on Nextcloud 34 and 35**, also after \"Restart tour now\". It waited for the inline app bar of older versions, which no longer exists, until a timeout.\n\n- **A new element for the Files, Search or Settings default step was ignored**; the tour kept pointing at the built-in one.\n\n- **Steps pointing into the apps menu lost it as soon as the mouse moved** to the tour's tooltip: Nextcloud 35 closes that menu 180 ms after the pointer leaves it. The tour now keeps the menu open for as long as the step shows. This affected the built-in Files step too.\n\n- **On instances installed in a subdirectory or without pretty URLs, users could get the built-in tour instead of the admin's.** The tour fetched its steps from a hard-coded address that does not exist there, and fell back to the bundled defaults.\n\n- **Bold words in a step looked like links.** They were shown in the same blue as a real link, so in the built-in \"Important features\" step \"apps menu\", \"avatar\" and \"search bar\" invited a click that did nothing. Bold is now bold: the colour is the text colour, and blue again means a link. This applies to every step, including ones written by an admin or a translator.\n\n- **The highlight around the element a step points at follows the server's colour.** It was always Nextcloud blue, so on an instance with its own brand colour the outline took the brand colour and the glow around it stayed blue.\n\n- **The language picker in the step editor had no name a screen reader could read.** It is labelled \"Language\" now, as is the one in the **Add language override** dialog.\n\n- **The close button in the tour showed its own tooltip on hover**, which repeated the label a screen reader already reads and could not be dismissed with Escape. The button keeps its name; the extra tooltip is gone.\n\n- **The tour dialog and the settings pages line up with the rest of Nextcloud again.** The tour's header was a grey band with a blue title; the tabs, the step list and the Support page each started at a different distance from the left edge of the page.\n\n- **A failed load of the step list looked like an empty tour.** Adding a step to it would have replaced the whole tour for that language. The admin page now shows an error with a Try again button, and adding steps or previewing waits until the list has loaded.\n\n- **The text field of a step showed \"HTML content placeholder\" as its placeholder**, a translation key that never got a text.\n\n- **Less motion where people asked for it.** With reduced motion switched on, the tour and the step list jump to a step instead of scrolling smoothly. The arrow and the outline around a step's element blink a few times and then stay still, for everyone, instead of blinking for as long as the step shows.\n\n- **The full-screen Nextcloud page of Pick element and Preview tour kept the admin page reachable**: Tab and a screen reader could leave the overlay for the page underneath. That page is now out of reach until the overlay closes.\n\n- **The pause button of a GIF or video kept a blue tint after a click**, and showed a tooltip that repeated its label.\n\n- **The app's icon was a solid disc in the app list**, and white on white where Nextcloud shows it on a light background. It is drawn again from filled shapes, for 20 pixels.\n\n### Security\n\n- **Media in steps is checked by its content.** The type of an image or video is taken from its bytes, never from its name; SVG, HTML and every type other than PNG, JPEG, GIF, MP4, WebM and WebVTT captions are refused. Location and other metadata are stripped before the file is stored, and size, pixels, frames and total storage are limited. See the [threat model](docs/security/media.md).\n- **Media is only served to people who get the step**, as a download that can do nothing on its own: `nosniff`, `Content-Security-Policy: default-src 'none'; sandbox` and `Cross-Origin-Resource-Policy: same-origin`.\n- **Step text is sanitized in the browser as well**, with DOMPurify and a strict allowlist, wherever it is shown as HTML: in the tour, in the step list and in the AI review.\n- **Tour packages trust nothing.** File names, sizes and the number of files are checked before anything is unpacked, and every tour, step and file goes through the same checks as one made in the editor.\n- **Rate limits** on the tracking routes and on the AI routes.\n- **Every route needs the CSRF request token**, also the ones that only read, except two that cannot send one and only read or redirect: `GET /media/{file}`, which an `<img>` or `<video>` loads, and `GET /tour/{id}`, a tour's share link."}},"signatureDigest":"sha512"},{"version":"1.7.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntroVox/releases/download/v1.7.9/introvox-1.7.9.tar.gz","created":"2026-09-26T09:21:35.624595Z","licenses":["agpl"],"lastModified":"2026-09-26T09:21:35.663779Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"XxbVA3E98OI8JKf9srCuPsSzZvy++sCKLI+7JpmM3+DCvgSRwfqs2Aa6rxaSkErHzhM1EQkjvqY9ikqBuwTzdFs0X5fMVphRPTTqLUGdocNsRbzctbYXGgwQKezqp49U/3ps2pv51cxv7fvHEpPJhSVW3Yz5OqiEXrcas1T2AKvIgWndULuaEauGAMpFGFXbMOqi2XlSj0Gb5S8oydIWf0Dfvh7Pv1wNS2RI/r4sD5oSmsvuTVaboI+1IQeIFlJ5tAocbnQfW4ORc/5Ezw8V1cMr+WoC5xMJOca4tDi6oFyyQtmQR+23O+h60pcBRrZQuuGsPUz39XwOgFCQlQ+My0WEn3MivXTbEbLL9w51KRQbZXMY+DrgVD1/J6nIVPT9o/v9d+t+QvU2aPPPWnmBhETQUMHLzp+OaRwx61tA5I22E/UfcLCBDLFIkkvvE4/AM7NW6CbJOFpHsXrVebPr+E3ZoXDgDujzcFMFWy+bqDelk6/d8taDbaPhYY2ADgA4JtjscAQM6WXfdPlpdFa7QsC8PXsax9cTILVidngUVNVt/wDu0QzkQEkxb3wfGX4mF8DfuZY2P8wMLVdtsE79igcork3V2w170allGLmiTfXEMrQHrYdePOJRA0PqtS8R4hDbiGBdCV5szoBYzxEL9gqVxPfEZXXP/FpK0LWBdzA=","translations":{"en":{"changelog":"### Fixed\n\n- **The admin and personal settings pages were stuck in English,** whatever language the account used. The tour itself translated correctly, which made the screens look half-finished: a French tour wrapped in an English settings page. 120 of the app's 207 texts had never reached the translators at all — the tabs, \"Global settings\", \"Enable wizard for all users\" and every confirmation and error message on those pages. All 205 translatable texts are now in the template, and the newly exposed ones will appear language by language as translators work through them.\n\n- **Seven messages in the admin settings showed a literal `%s`** instead of the value they were meant to insert: importing a tour reported `Successfully imported %s steps for language %s` rather than the number of steps and the language, and the four error messages on that page ended in a bare `%s` where the reason for the failure should have been. All seven now show the actual values.\n\n### Added\n\n- **A continuous-integration pipeline runs on every push:** a PHP syntax check, the JavaScript unit tests, a production build, a security scan of the backend, and guards that assert every text the settings screens use is actually collected for translation. The failure fixed above went unnoticed for three months because nothing ever checked it.\n\n### Changed\n\n- **Nine texts were reworded** for the Nextcloud style guidelines: a non-breaking space before an ellipsis so the dots never wrap onto their own line (\"Saving …\", \"Loading …\"), sentence case for \"Anonymous usage statistics\", and no more \"successfully\" in success messages, which appear in a success-styled notification anyway. The import message became `Imported {count} steps ({language})`. Texts that had translations revert to English until translators pick up the new wording.\n\n- **Two more languages: Indonesian and Slovak,** both fully translated. They were available from the translation service but had been left out of the shipped set by an oversight in the previous release. The app ships languages that pass the 25% translation threshold."}},"signatureDigest":"sha512"},{"version":"1.7.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntroVox/releases/download/v1.7.8/introvox-1.7.8.tar.gz","created":"2026-08-27T08:00:03.805248Z","licenses":["agpl"],"lastModified":"2026-08-27T08:00:03.933083Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"S2/3mYUxHyZ/Z5VCPhYXXvXrpnAOJ2jtNKV2lQW6aXQlgfMx4kzc+B30JDTWZIiEEDMw8Dan6LM7fT8alzGOtg5/7+BvyQ7vZFaezfeYYfqz6Te0ghSkpKuDNLno1io5A2j4wxX+Her6LneCrELhzIZs0eMGD2s7ert9x+EQP3Zb6/TTzuWAbNTINr1A4fZSbhDk399csWOB1CJt7NWMRi3LcN2d/LQH7vmpvg0B2yUFcpA/DHWHKbxq4mjBV88Y8uL71Bto9EeL7YovPdMLUbfo5oGQe3d7eFX8v//kMrUycaunJ0tdESywSl00grwMEFdXjOo7nkbErg6dqFxjjARP9JZb5fAZIk6OtstiO28zp8JzbCg+SeioWMZwt+2WhGhJgOPv4C1+4pPWTFyibPA4wf2NzPv+i7vRhDcK019llNraH/WrIt6fMKF/ABprAdYiGRMHXsGYkMwanXqSZxetoDLjsT/pOQKSKtWCDMV5cHuXfWS+PApCbmx0sHVDyMvbKNI1byVlCRrR35ICyXYsggRXeYHUyQykcaoGC1l0+03mrlWvM4N29fObn3Xz8FVlt4C5v3T1uxz1Uth+Zrlyg9TDtlhaeIb8rSz2iqrwvpiBOR3AtqDUh5jZhY8a0Q8bd3qy4XL+eYas8dDEP3YFaPsOIT09uYMElb+DaIo=","translations":{"en":{"changelog":"### Added\n\n- **More translated strings** in Danish, German (both variants), Estonian and Brazilian Portuguese — mostly the Support tab introduced in 1.7.7.\n\n### Fixed\n\n- **A customized tour showed default steps the admin had deleted.** An admin who removed default steps from their tour — say `search`, `settings` and `intro` — still saw them appear in the running tour, in the bundled default wording rather than their own. The steps were re-inserted in the browser: `enrichSteps()` re-attached the behavioral fields the API cannot send (function selectors, `beforeShowPromise`, `when`) and, while doing so, also injected every bundled default step whose id was absent from the API response. Because they were spliced in after the step preceding them in the *default* order, they surfaced as a block in the middle of the tour, with default copy and default tone-of-voice — an informal address in languages that distinguish it. The API was right all along: it returned only the configured steps, with `useDefault: false`. The injection is gone; the server is now solely authoritative over which steps exist and in what order, and `enrichSteps()` only restores behaviors onto steps the server actually sent. Removing a default step is now what it looks like. Introduced in 1.7.4; 1.7.4 through 1.7.7 are affected.\n\n- **The \"Your account & settings\" step highlighted the wrong area on Nextcloud 32 and 33.** Its selector chain led with `.header-menu__trigger`, a class Nextcloud 34 introduced. On 32 and 33 that class does not exist (the markup is `#user-menu.account-menu > button > .account-menu__avatar`), so every specific link in the chain missed and it fell through to the bare `#user-menu` wrapper — putting the spotlight around the whole header container instead of the avatar. The chain now tries the avatar itself before falling back, which is the same class on 32 through 35. The English-only `[aria-label=\"Settings menu\"]` match was also demoted: core renders that label through the translation layer, so it never matched on a non-English instance anyway. Nextcloud 34 and 35 keep using the trigger they always did. Fixed in both the bundled tour and the server-side defaults. Introduced in 1.7.4.\n\n- **Usage reporting could count one server as two,** which left the figures on the licence server stale. Affected instances correct themselves at the next report; nothing needs to be reconfigured. Reporting only — nothing in the app behaves differently."}},"signatureDigest":"sha512"},{"version":"1.7.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/IntroVox/releases/download/v1.7.7/introvox-1.7.7.tar.gz","created":"2026-08-26T05:54:11.481874Z","licenses":["agpl"],"lastModified":"2026-08-26T05:54:11.543972Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"p+WKP4JJMuBMSZCrSIS476Xkk39Cbcch5njgEEtupbe0VrcNWVbRMB23YczmKXQKykITHumfho9hGCi21oiGj2EU3tnOVbTTz+08yTAlX/6JTuZ5KuImdn3CeZIsmkZvuxYcqxrm8VDGdgPsZfVzm3jDq2gqArULXBd7eAzK0vuvVYiL09b4WvVu4ijz/MB3OeKZ98h55P2NbNMgIG6gZCSs+MvK9Ce50p1KNTChy7hdKg07pNGIapv0xfsJRQKzj/Y39IqRnhi0ioOTR4bIWQdrvAQbovco8oNIe8Zy/LnY2nWB6v5m3DdNeXzKM4kQin7PM0I7dsyhU/pjWqoCUbw42NxcRCCyoIqsfz14spp0KMuAhpjyLI58Fc/cH217AvN/pc+VbDB8iZstXv1qwoigX27PTmg+nH7uHChENyMgMZFPVAuBG6W5CdHSA4pyk3UMH6sLnWWCAchf/5C3WRROWaxofA/fABMgSlGrVHAj9fgeHqRJsAWXY+K1Y1j7fTUUfjuI6/cNYgopROs6ngYaAtuP1Z5e899LTXIzh4Vvnaib9MN+a2ZtNOqQHs/U4zj4BCfxdQ3NXhWiSIYIEcCiKnx7Nwed+LrBCWDq9eg72DWGlTvfLMaDs9UNrJbo2rjpXIyVZht4pI7oJYty5mr5Etshfh7wM4VL24T42s0=","translations":{"en":{"changelog":"### Added\n\n- **Nextcloud 35 support.** `max-version` raised from 34 to 35 so the app installs on Nextcloud 35. Nextcloud 32 remains the minimum — 32, 33 and 34 are all still maintained, and PHP stays at 8.1 because Nextcloud 32 runs on it (Nextcloud 35 enforces PHP 8.3 itself).\n\n### Changed\n\n- **Controller access rules now use PHP attributes.** All 19 PHPDoc annotations (`@NoAdminRequired`, `@NoCSRFRequired`, `@PublicPage`) became `#[NoAdminRequired]`, `#[NoCSRFRequired]` and `#[PublicPage]`. Nextcloud 35 still reads the old annotations, so this changes no behaviour today — it is the form that will keep working. Verified per method that every endpoint kept exactly the same access rules.\n\n- **IntroVox is free, and the Support tab now says so.** The tab offered a subscription key, per-language progress bars (\"0 / 10 steps\") and a warning that new steps required a subscription. None of that reflected reality — IntroVox is free at every tier and no code path ever blocked a save — so the key field, the progress bars and the limit warning are gone. In their place: what the app is (free, open source, no user limit, no paid features), a pointer to the other VoxCloud apps for Nextcloud, and where to get help. Step counts per language remain visible on the **Steps** tab. Existing installations with a stored subscription key are unaffected; the licensing endpoints still exist and simply have no UI.\n\n### Fixed\n\n- **The tour named a specific Nextcloud version.** The Files step read \"On Nextcloud 34 it lives in the apps menu\", which was simply wrong on Nextcloud 35. The layout is identical on 34 and 35, so the version number is gone: \"You will find it in the apps menu (top left)\". The admin hint about selectors lost its version reference too.\n\n- **Telemetry logged an hourly warning that said nothing.** `TelemetryJob: Telemetry report failed` appeared every hour with no reason attached, because both failure paths in `sendReport()` returned silently. The cause turned out to be the license server's rate limit: it accepts one report per instance per hour and answers HTTP 429, while the job runs more often. That expected case is now a debug line instead of a warning, and every *real* failure logs what actually went wrong (status code plus response, or the exception).\n\n- **Telemetry mis-detected Nextcloud Enterprise.** The subscription check read the *Extended Support* add-on rather than the subscription itself, so instances with a plain Enterprise subscription were reported as Community. It now uses `IRegistry::delegateHasValidSubscription()` (public API since NC 17). This only affects the usage figures reported back to VoxCloud; nothing in the app behaves differently."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyb1ZveC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvd2VsY29tZS1zdGVwLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyb1ZveC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9JbnRyb1ZveC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvcGVyc29uYWwtc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"IntroVox","summary":"Guided tours for Nextcloud and its apps","description":"IntroVox shows people around Nextcloud. New users get a welcome tour after their first login, and a short tour the first time they open an app such as Files, Talk, Deck or Calendar.\n\n**For users:**\n* A welcome tour after the first login, in their own language\n* Short tours the first time they open an app or a page, or a tip on any page after a few days\n* Steps that go on when they click the element or fill in a field; a step whose element is not there yet waits aside until it appears\n* Images, GIFs and videos in steps, with descriptions and captions\n* Every tour can be started again from the personal settings, also through Tours in the user menu, and tours that start by themselves can be switched off\n* An optional \"Getting started\" checklist on the Dashboard that ticks itself off\n\n**For administrators:**\n* Built-in tours for Files, Talk, Deck and Calendar, and tours of your own for an app, a page, or anywhere\n* Translated default steps via Transifex (every translated language is available automatically), with your own steps per language where you want them\n* Groups per step and per tour\n* Who gets a tour and when: everyone or new accounts only, a number of days after the first login, between two dates\n* Share links that start a tour, for a welcome mail or a message to a team\n* Statistics per tour: how many people started, completed and skipped it, and how far people get\n* Export and import of a whole tour, with its steps in every language and its images and videos\n* Translate a tour or write its steps with AI, through the Nextcloud Assistant; you check every step before it is saved\n* Optional anonymous telemetry reporting\n* Automatically adapts to your Nextcloud theme (light, dark, high contrast)\n\nBuilt with Vue 3 and Shepherd.js."}},"isFeatured":false,"authors":[{"name":"Rik Dekker","mail":"info@voxcloud.nl","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhLHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUxMTAzMTkxNzE0WhcNMzYwMjA5MTkxNzE0WjATMREwDwYD\r\nVQQDDAhpbnRyb3ZveDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMtM\r\nAMZDlX5HabcqoMolL7vQ9XUZgujUkogQm+/ZuPSnuk0lQD3H1RGFYCl/2M7o+kMy\r\nkBeEJmy/B8S3kbcGZVhBmoNpDlSfLk/zENPaBMJ+OS3iSFPOXRwP+oXUjvSLiUk7\r\nE4a+foTxVraU08gZJQTNbkcAeJV5AJTzy7S78iYS57o9PB5ZwRQamqSQ70VsgQv/\r\nFlhggtQ4D8xVJH7ErVgua0jPcLW7lqthBFuD8OlYkxwksJaqRvONPrYQrkNUxiNE\r\nX2FK6+rdmsEea1NAPU3hDR4EJKRheSlCCrpyK6BZ75rQRl9agm0WfynVjRjWyirE\r\ncQSe6L5QmtanzEacd24w4jMoCe6PCFJZmdM8A5YCsnKPnyJWLeGyZnzzvvP5Qpez\r\nSJg0isItHR+UzEu6TYN6mh0WPMxc1uIINIRXrLdtrZGMMgknBYSFxugn/D0cgugF\r\neNubz4663X2AnkuS1KgLJcQd9b6tYzVpFzrii0xUUbspKXxD1l19C/YRuPWnTqaQ\r\noFlieVAfB2rSxn/pdOjC1E2cxAXHHsGanoSSCv0RevgO45QvZZzdbOj6vucp+837\r\n+PV/YyppWI+fNu0SfxRV9fxhMe5u1isW3CVolxHJsq5jyoUdmdvEZsH2Dej3hxdK\r\n/BlCgQMdCdM/sN0NjtJvnVXSOsX4Gf93f9zcBMYlAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBADucER0c+mq8wl3cFEwfBu/nSZy059g10Hh1hb1U0vGjop/A30iezfEY\r\nCde5K85NesN/jRG8wSl7uaUtPcBLgSOQ688SfvY9dOfBrHNAJOXShXA7XF2gf0I8\r\nvn0iO2Cm9Di7v+z5N2jWsD3OO/2VVUsuWLZWJK/QKB37TI1MkyJKW2tt/4p6jIcD\r\nk5IAAk5i1Mv/pqBfFx1h1wWZ/BHjSVH1b5xCIqwIJJizpvA2X9Lwrp+kxFcrWlQ6\r\nGsx93TGXMQdtGnApX8EZBMF/yIH1BzL8OZ5VZa3D7qAchCXqCokYXb6zmiiRNiEt\r\nS/Uxq9Vhiclcf7p0tzKWYm+9ugq9TaQ=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_zip","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_zip/issues","website":"https://github.com/nextcloud/files_zip","created":"2021-07-26T14:45:31.454657Z","lastModified":"2026-07-23T10:31:18.262460Z","releases":[{"version":"3.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_zip/releases/download/v3.0.1/files_zip-v3.0.1.tar.gz","created":"2026-07-23T10:31:18.226022Z","licenses":["agpl"],"lastModified":"2026-07-23T10:31:18.315440Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"v/U3mcXCkCcr4XRsEyKv6KBsDD6FZYa1mMe3E5dQmH/s+9iQMQ/tOhPSpr9hji6hWIJ4Fjyp2alfibxThAFuFSg/sp8+6b1lUC2aOFBDONqnpUoHtSDOk8RbFAKZsgN+wRSWkUMUSBWPsgSh0kKuZPuENwrMoRxqDqJv29sFrFMkfFzapsukiWGFnd2rqkZKffr9SOQotzjVxBe+xIdTcghAzyRMuujarl7d/J5kYFxo4V9Wvzdi2ma4EzfwRnoOAqA0lPWfmpHj3UF+wi06dk1AYQcnBOZQXl0Qren42snqJiNTs1m2tA49l2RFJwkb9jqQkaH2tXQgBUBE7BZ37wKuxANEsyuzt81tlHT6Cc7T1WIanj6QsZkA0th2dFCMr7wEQ+XHcl0du94vHDRIF8A1EwTjiagZfXE92B3mxyoAd+puvTKrqpJ1HpyDkkVmGYplU4ml8+YEF5Bc9k3mv+kdFhwRQ+DbB4h7y3bVuW7ZXod/hRlmtyP7XBuLajrQO1lpwHfZg/gEpY5lq4/UVI4ICFCuOGaVFHORMKXMCCjkYccqaeC0nslXmP+051F21c6m3iLCisbejE3quuOkZCoP6r5iHbsm8BH4IcjEH52VV2nDKuGOuGYuVfZJYqj78DZ94Iv7fYRDSf7R6VCW9Sx18D/Oi0SH7n7mZsWfNXE=","translations":{"en":{"changelog":"### Fixed\n\n- Do not show \"Compress to Zip: done\" message from file list @danxuliu [#451](https://github.com/nextcloud/files_zip/pull/451)"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Zipper","summary":"Zip files in your Nextcloud","description":"Allow zipping files directly in your Nextcloud!"}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""},{"name":"Julius Haertl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBDCCAuwCAhGRMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwNzI2MTMxOTM1WhcNMzExMTAxMTMxOTM1WjAUMRIwEAYD\r\nVQQDDAlmaWxlc196aXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC\r\ndnc/ru5L8gMMerUM8Tyt5JJtK5SgSsEW5iZPavatqKF8JZ1BOAcYw4dLE/3WMPdx\r\nGTq4hqSZEN9z8QAr2N8OtTzwZmpm861j809WLWfcPMstIDWegDSEd1bIb019fgWy\r\nH+Xd3QsWtec+uYUJMoC47KayD1uEc2rUenpGEXKD0Ju7Xuy25SXA/1zhiO9m7+fX\r\nnZei9ED5vQXsVT/6B/vQOUPb887CnJ3wlXvic0jqzMzHTLVPG7m1QKbM3/AiilL/\r\n3CQlGVeWddcrMmkCwShWnERYG2ZmSCkrhTai3mYC+jb8RNHpYCO8qymuUlWJNmhO\r\nXC8bWIVCbZgiIFjAJyQT1Fy3H/Boq25HKyc1iH45JDZa7ggSCcBy/Pq0kBPkCrXf\r\ndh33TrJM8kgacCEaM3sK+n1f2YBx1M26ryrte/dTfh5R2I7TI/PyJevk1ZOBbf/u\r\n/If2ZT1PsVRbpVf3MxSCRT5vdDCBYmAnt9ArxYXrIwtFGoGp+Ozq4ME2m4F8cOYU\r\n7a8IHh5doaaNYLza/2nw6lHvtNZL+wrkkvhyhl0AIByTcifGJD2/s9LYwGROZ4RA\r\n/7ardSB6WxdnmL9qWLN5d3ESWT9OpPRxoV9PO0ajsQsgRKBe8Z5m9T8DgHGViaH4\r\nyje5khJxQqqXa070+4bEhcl5404PItHXLYQNdEG4zwIDAQABMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQBWrgRIZQtpyZ11c+vhqAhQdHMuUWN1eRXZNg+mLEgm6V+UIa6GpTYq\r\nh0LmMxkciq9xGSDPPVOe31B3Z1Pkynr9jkkzi+W3cPHg1nE+uGDcMChhAXECJUPJ\r\ncObBZL5+7N5XBioW0T13Hr894qX7Azf/4/X2CR2+Ydr7lxbU2P9gw2M0ZP8dqZW1\r\nSnIBDsAymG9VO6c9stguM5/Zqo6mzwjSF+2RUPW5HpPL9lMr+/dSBfmGITIFktDF\r\nn4bcXgi6sZduo/AZPUhoMS+a1fu6rSlslPkSUYVH9/77MmbhdiMjhlW6EZ/N7tLP\r\nNUXI+Oj0zHYQXAF0dA511WowhlgUiEa0\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"remotestorage","categories":["files","integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/jonocodes/nextcloud-remotestorage/issues","website":"https://github.com/jonocodes/nextcloud-remotestorage","created":"2026-10-14T21:46:23.563403Z","lastModified":"2026-10-14T21:49:23.411505Z","releases":[{"version":"0.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/jonocodes/nextcloud-remotestorage/releases/download/v0.3.2/remotestorage.tar.gz","created":"2026-10-14T21:49:23.404230Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T21:49:23.464664Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=35","signature":"bMZbtGvHk+DI83+6CjM0ewRcpGXPL7wmpO7yASm1VZ1vgY08hU7E+RtzDmmVCF2x\noFYH9BtNV2Kc/RmcMoDuzkjDIcY7db14OAIEC7KqA7mYWUPcWJ1vE5MT/IoLrnNK\n1TQqU1nqSkePLWYZk5mGFoFdHsIAzW7DqC0N+ObLDgO0nagI3ZHU8kTP7JdSz4ow\nTYEdMmAfRPgfJ2zkUDBGvAfAWpTESZHXYl6RBYDzRoflVeCWNTren22CItFbFHu6\nvnoV5rKf3oTTR771QqBvqeA4+tWsS4+9iUVwYP0ygRP83pnuripI4DhwLgXCR+0N\nDo5+1mbmDol3k8QAKMTzF/kZFL6mU9eKQ2IV/AsSEftBO3yr9HJgUPp8Rqw4GS43\n6yguwL3X8+YYgF2wqXXla+DROH92OImlYFBTAgdBm3ZBbhgwcr2p7t80YXvzZ5Xn\nGIjYJ3IFMNGnI1ioxpwI2i8Vj37Agul54Z9mzcjHfEGHlntkJ9c9mli4T2Xkzq0J\nIWixv9MPwUGCiF5DB/HcWGpSyEay5dYaIM1uGVnT01xwoiyczt4H3b9qEB4g/WWs\nktwNJyP6F53Uq6Xkk37cL2NOh0+6VRIqTMKklIkJrNHwQivvtAHWu5uIS/9epoba\nBnf1LANIUfX3r1mV3W292do13pqr8H2S4vjvdHDrYoc=","translations":{"en":{"changelog":"### Fixed\n- Nextcloud's first-run wizard no longer covers the consent page (for new users, and for every\n  user after a major upgrade): the OAuth consent and error pages are rendered standalone, like\n  core's own client login grant page."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvbm9jb2Rlcy9uZXh0Y2xvdWQtcmVtb3Rlc3RvcmFnZS9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvY29uc2VudC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvbm9jb2Rlcy9uZXh0Y2xvdWQtcmVtb3Rlc3RvcmFnZS9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"remoteStorage","summary":"Use your Nextcloud as remoteStorage for any remoteStorage app","description":"Makes Nextcloud a [remoteStorage](https://remotestorage.io) server. Users connect any remoteStorage app with their address `user@your-nextcloud`, approve the access it asks for, and the app's data is stored as normal files in their Nextcloud.\n\nThe app only fills the gaps: WebFinger discovery, an OAuth consent page with per-folder scopes, and remoteStorage folder listings and CORS on Nextcloud's own WebDAV. All file operations, ETags, versions, quotas and trash are Nextcloud's."}},"isFeatured":false,"authors":[{"name":"Jono","mail":"","homepage":"https://github.com/jonocodes"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhRtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE0MDkwODIwWhcNMzcwMTE5MDkwODIwWjAYMRYwFAYD\nVQQDDA1yZW1vdGVzdG9yYWdlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnz6IWXSpqjpGYvz4EOoTKjdTELvtfq85+gS4rFKvisOqq7IZ1/svZ3rJ5Ru+\nDD5kGKRscq34huZeeN4B5R7hkKc9BDN3azYxfqxC38+FFlwvtPqU1LpXg0IHYMD9\nXJgSXRp0bAg9QESVIP0nkBDkgsfh2GL+y1/lg355nt1rDdsDPPnpQJpm5tEhdCaL\n5d0b0rQyf8ZlB76fCtcVB/NKtIFqFcNJikUwUkS/lZLyfVqgpOxgYueyq/tQxMMU\nczhnyC6NX0S9bM3wEhbaSz7X1w1JuHkyQRfX51nLq+nSwytjQBl5lndjnL7cLx6Z\nOzGgzW3+xy7uCosuGXifQhSSEMtTZiMaDsDO8GelH6rKD99l2GbG6N9xnqnR0SLI\ntpRyDK49UGeGlj1LNI73cVSI2aD8h9c/uqCjWCzi7mcoB58bocoh489Y/mnPWCEL\nsywYc5vV9HTmNi9lu5Z7t6sHeTGS+CsRsM5OsLLei6DptoNEZEdavIbeNAint2/z\nAbt8xebkhb3nf8m9nLX1wzJbuYMJDlRV8roWhZbmReqrl0PKtKjnjVj6ERZCyPwD\niDMz1n32Q3J542VdXrW9fK+76SzLpVWohrM2n9XN0YIVEfVYetPSRxslyMT/NTUr\nFighPkpdXG1okWp3Fh6jNjdxUPFPJfQkmFnListafZkr04UCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAW1PVNFG8tQaxPHJOAzCieu8YaE2IKtaBPqx1Q0xcSeNCWprE\n8bqD/NU+q7vGOOLYna7Nkx0PysfJCJPpvVfL6DP7R1Kf1Gc1mYwQefxsm1ieHXPn\nCk+YpPQrhI6Bss8Sdq9gPEY6lLabeS25MCAT1d7xQhZBfJBAte7e9XNC88dvjdQ6\nroYVwyHiRpKK8B3aCPkazF/p1eZwPwE4DISt+uqgQJ0XRFWXyMSfDY0BI/YsFWxU\nWfTM1Czvlbdn4VpOjyyX7HCNwkkBcLYYSRy1hCseBaVO94OExz0/2j7YZvNNPf7L\niyeiaFzoEVKpCkQmG7R3la0N73BUAe+TYnnwEA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"elementaryenglish","categories":["games","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/John-ccsengrs/elementaryenglish/issues","website":"https://www.ccsengrs.com","created":"2026-07-08T15:27:05.641425Z","lastModified":"2026-07-08T15:28:51.956283Z","releases":[{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/John-ccsengrs/elementaryenglish/releases/download/v0.4.1/elementaryenglish-nextcloud-app-v0.4.1.tar.gz","created":"2026-07-08T15:28:51.936804Z","licenses":["MIT"],"lastModified":"2026-07-08T15:28:52.019695Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"STlYnV2Gh/6AbamoDzgfEMcngbwWvIzZ+dXjci2Kp90QuU5YaJg+E9JWkfyVc2bE\n9z8Evvv75mdQ0M+tj8u+aFt967KXdFOAGDZw4TCvU6PRXz9xD986iorYpqGBfbqU\npIh30NUCoR9jLdvd7tfMJeOLEn2dEaO0/6I1iRNj3mBVrUfQstdQzvZRj4MKw1ph\n7TwF8ruh0DTVceYtNCw+CpkxGXCwjSnDlqLW+A1wfLnYMKN0Oi/HgxVc+Kh243NA\nOAKdqmZW++1yR0saDyeJhmO1cmf+C2aIFuvW6OIcj144LOTinC/JB7VpZn7+cn0Y\nB7CRn1ROfz2adqh+nOaQD4pAgJA/MayHPM6UeKVlAPb+WWXECuzcuk0vpwUZQEcG\n6t5tkdc+lqd3VCr3CoQ/e/QQR81d9RS7YCLFYIUIGPmPMrcDSTeWHiVUVqtFq6rT\nuqdmKMgodyi4TkSv1uBTRCnPkic3RM+yoEQgHe4sQCajTFA6dxjYgioO9GTVCikt\nC9OowRLyi3U3wi0tdCBYVBD6j/eYNdVt/kIIEI3UFcchzkeij8SwSprEDfdESrIy\nxDfoLTL+KSEHoYMpuAw8Q1DnLahpZQVK3hzz1qWLnX867E08PUiggr5IRMrK4qNu\nnPGXbnP7bRpdkTMTEP2wmJzi1jUOvvJpffVeBgXW4oQ=","translations":{"en":{"changelog":"- Added a direct CSV download endpoint at `/api/v1/reports/usage.csv` for Excel imports.\n- Documented the `/index.php/apps/...` curl path needed on Nextcloud installs without pretty URLs."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeWVuZ2xpc2gvbWFpbi9zY3JlZW5zaG90cy9wcmFjdGljZS1pcGFkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeWVuZ2xpc2gvbWFpbi9zY3JlZW5zaG90cy9wcmFjdGljZS1pcGhvbmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvaG4tY2NzZW5ncnMvZWxlbWVudGFyeWVuZ2xpc2gvbWFpbi9zY3JlZW5zaG90cy9wcm9ncmVzcy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Elementary English","summary":"Friendly elementary school reading and grammar practice inside Nextcloud","description":"Elementary English gives students short, focused reading and grammar practice with hints, streaks, challenge rounds, badges, progress tracking, and parent/teacher usage reports shaped to pair with Elementary Math."}},"isFeatured":false,"authors":[{"name":"John-ccsengrs","mail":"","homepage":"https://github.com/John-ccsengrs"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhOMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzA3MTAyMTIwWhcNMzYxMDEyMTAyMTIwWjAcMRowGAYD\nVQQDDBFlbGVtZW50YXJ5ZW5nbGlzaDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAK72g4FMG6TNRy3wYNpM2cNnoU5kmAj2of44gDwMQ+pyLiz703avAi6b\nsH1zjrl3+z5pzSR+KBkAbdaTLM70XSjF+HHTXDiLRccVMVJ0AbqZ5tsFxpxOwDs1\nXM0kFkPTiR3ifX/EsN/90x9MMunv0nnVnTvDcjMqF++VGIUva9puCqP5vp7SvdXV\nh6nNmAtRzB62uGnII3wimXrv93onQTIj4qpxmC/SKGw5N13EQIP3MgVTE03R008E\nBSEnfvqcTCfbfya8ZhQrD1QJK0RJvryp7qvZb4MbeY1roDLpL5cKKB6w4/MtNvAi\ntMRB90WLo/vxjGaiXoE4MNen1hV92uA9NQCzSAqR0lGjz0RMPXBbF3jC7cO+WQmd\nHwu7IFxpOSI8x2TfKudd4hndzUFD8iOfEZIkOp1H6yy8fiioCj302t6oQg7Jt9Mq\nmIN1vEG5279nuBNGfnRwT1JSQ8VALJ4048U9VpLNpAPkDEBW2eWUDkJZ+bAyPzC8\n/1gtsydqdJIPHQCzitTLqoYsSZk+3jDRie/mg64cWpBJ0TRFyQY/sr9bSkEYiUak\n+H7v0tA31FzylfULSxS5S8bAp7qsMncQyrBewWt2tHAqF6Yrnh1iYivNVO5QY158\nYftJmrhTP/ZlunJTbG6wy/j22Zwv5Q3w2ZHwz5XAL+3cY3IE8s8rAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBABy3QwUE2A9rpfqiA3sS+zh4xYBgCQ1kOcd4m9Capu0r\niz1b3BopBhHnzgohxrsMoVvgSi4r51ylEfBX5JczvjzoTOEi+UcH5nqxk69ciePj\nVxF8wNC383wHP5UN9bU0/eiDy42oZWK+Xw7ANYt+CFD8rY9v9qLB1+ezfiQPVUcI\n+WLxNRRqizSo5LeUHeHejrU0UgJSYdI2ncIL1YP6q4o1SaAeJZMAi1DirxGQUAos\nVUjk66tb/nUMsTDzqkgIUdSciY5+BKcQJ6mmwnwA1OhcIXYClKB8V9hQ9L/r8rY+\nfcyUVkNrbeohPE0aUQxVkT+sG4Rolx/5HCyRtVEnZcA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_isdoc","categories":["files","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/synetix-code/files_isdoc/issues","website":"https://github.com/synetix-code/files_isdoc","created":"2026-06-15T21:22:54.733027Z","lastModified":"2026-09-22T14:37:48.013816Z","releases":[{"version":"0.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/synetix-code/files_isdoc/releases/download/v0.6.2/files_isdoc-0.6.2.tar.gz","created":"2026-09-22T14:37:47.995343Z","licenses":["agpl"],"lastModified":"2026-09-22T14:37:48.077629Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"SMaIT9vdPsJek5pjauL0pLbJvfUCtrMTJMi0BqciQ28rAQVlXKZ6Sd4YG/NXSeDuIK0PtNYoUUfflDcDxicfK1E8eM9AilkksNVXRcc8ul0mg3a5pagQwe5PwDITQLLdYd3SMkJRr/7SZGdl9uDjrcXMn+Wu5zfKfdtT4oXJ3+BiGX848FnEMZ3qT8VY9y7YeqK62R6fm3zj4cmLPBsEhn2sEFi8ZV/9BUiVXWZxxRMRFRNt0rJsZvXUn/dO47SnvjdWsmHkl8vvnQCEnjD6BtpGkmqYbWSaXPDbwv4B6BoUqhkLgq0SFnAFjUfEYoS9kBcBi7XX755TtgAdMcAXFSTLLHgsZzWHs0lE8b3GL8t0uWN6UBR+4Dow9wrBd7oWVoUAqJpuZ0uR/p2ZdH2Wwc0UnHkuV1T/04eCdUd+YQX4I3EjO/TDUPWCzXMHBFjzZ4fPESUnxl+TUTIEPEqR4FwkYJ8Bttm/GUQn7eKx7sTyKVcPIyp9PMO+6y6vCD0NgSvw2pVNQ34iVKDVqJtYO98pRtRoUciu2RmvWknUVSgC+m8T2Zshh8JJqH2vUhurf1gUObZR/ite997YOm4wXaJOqbyLDdvBhvXZaocx7PNFEAdq8cJu0TBsxKldOI1s7oANpCh/wPEFopKgVS1TIdslv1EjyWp5V4VfoUQv1ZQ=","translations":{"en":{"changelog":"### Changed\n\n- Raised the maximum supported Nextcloud version to 35. Verified against\n  Nextcloud 34.0.2 with Viewer 7 (still Vue 2.7, handler API unchanged);\n  Nextcloud 35 is declared ahead of its release.\n\n### Fixed\n\n- The install/update repair step no longer assumes `IMimeTypeLoader::\n  updateFilecache()` exists — it was only added to the interface in Nextcloud\n  32, while the app declares support from Nextcloud 28."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3N5bmV0aXgtY29kZS9maWxlc19pc2RvYy9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QucG5n","smallThumbnail":""}],"videos":[],"translations":{"cs":{"name":"ISDOC Viewer","summary":"Náhled českých e-faktur ISDOC (.isdoc/.isdocx) ve Vieweru","description":"Náhled českých e-faktur ve formátu ISDOC (.isdoc, .isdocx) přímo v aplikaci Nextcloud Viewer. Po kliknutí na soubor se faktura zobrazí jako čitelný doklad namísto nezpracovaného XML.\n\nPodporuje standard ISDOC 6.x (viz https://isdoc.cz) včetně kontejnerového formátu .isdocx (ZIP)."},"en":{"name":"ISDOC Viewer","summary":"Preview Czech ISDOC e-invoices (.isdoc/.isdocx) in the Viewer","description":"Preview Czech ISDOC e-invoices (.isdoc, .isdocx) directly in the Nextcloud Viewer. Click a file and the invoice renders as a readable document instead of raw XML.\n\nSupports the ISDOC 6.x standard (see https://isdoc.cz) including the .isdocx ZIP container format."}},"isFeatured":false,"authors":[{"name":"Synetix","mail":"jelinek@synetix.cz","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhNrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjE1MDkyMTAwWhcNMzYwOTIwMDkyMTAwWjAWMRQwEgYD\nVQQDDAtmaWxlc19pc2RvYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAOUed+zpmZi++uA2f6YkwYzCU+H5ebjk8YGe/wfbDxBXTt1rMOtjtMQB38ZLge9s\nF6xw/iQ2+qz2+qelR1FvLEVQqnldDwSXDSYJTRNxY8TCGKkihfzvj/tufsKWGBW1\nSmqhuq51rvIpxgVFew0eLpbhq/Tx7BA9/a42n9vUo00lam+tJEXHZykrKa91L0nJ\nvt9ll78S7t7yVCUnKosh7ebFHR3qY20dCzIoJgs/BDd032bFu8WWcRP1RsVACB+i\nr9J+iK6XCGcEOBSX2ETqF6hGnQk1CVJWu+fy1fHfoHDMn/6tYbdAVmYu04UNPORK\n6tPneb9Usur98b1V3I83V77vqXYygj8XwG61S5dyaAeKZE8qGAndR052aPbTpW8T\nEvpKI66HWYowj11WEVWOwp7vI3db4xzTJWVzjLgYQq0/KoDEmwerDCtwzUTtFjzw\ni6bXtHY/sjrNX7TmrtjkbkhSkJvTmbhbJ8jlbPg8tTRxE1IsYkABMUBEjVGWAq9i\np9lkpDFpYNmsG7RBMPV4BcxqlRVYpPVoKlO82DlgZ/HBPOBNtVa8PjQRRsYvd4c2\nfOfZTXfdx3a125dJQTaBmyqCNnvvbqW2M7yUnPaPjpvrq56wF1OGmD5gpKjQ30B0\nNvhACWj7rbLdB2BbAbRIZDauAMZk1RDcr3CdgQteSbvDAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAHbVx4NuAv59GoU7gz8/4MEtEoye5+0EJEYz0fhng1K4v7+RXtPr\nRtMzi48ZHCLiqR8QMgNL49PoRTSNtjzAlkyuCEV79CeIrFLI2HIBrGe6Gw4SVWU2\nprkPdextEKFaXjEGvPxTPgHf++CbVbFKCmZPCpX1ihnKqQJWQNfFiddWrJ1VMG+N\nWjvbgoMzCBFWGXWXdDr0Mx3M0VJQY4bUB3SHinHMxJvcATc/otBfnvjP0QACHSoR\nsoMot5NxsKquPqLLV5qyHQQaF882g4TPU51gP08GV2sb6c6/YA3Q5zftXhYNDz9x\n7UVyy2p2sntsKLNDIcMURHPcdHJXQ1GyuVc=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_grist","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_grist","website":"","created":"2026-06-22T15:06:28.302545Z","lastModified":"2026-06-22T15:21:20.740878Z","releases":[{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_grist/releases/download/v1.0.2/integration_grist-v1.0.2.tar.gz","created":"2026-06-22T15:21:20.703041Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-22T15:21:20.788209Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"ouQvmLwmsdBc0tl7Hf35AqZlB6LxT1E5YZNSV+5U1Kf6ZXCiNHHhuSAUuTRYrAU3Prc2d7vcjb+4pXSgJgNG4GIPd3vbVV92saKtID4XFpZUhzZdu/LxH754otBnJgGBdG4mLBDFvuPwx+dDtBu5QBF25DrLEFw402JhcXPL9oCQ4F6EoNVqGXwT3gU8lOLh6SMINfKYZhRyiPfXyK0KZM4fcCmWHBSPGQKOn/0sCRqiyoreYFLrg9SacDon54Ukyh+XBgTsrBU4mH5i49vpF8e4VHTyEp9Fvala2keJ+CO0riVulJgkgE9NfoSc3SbvF3TMjI3k1prwM/zrOOnw9SHOCrO576DcONBpiujzmu+CqaSWHTJS7xwhiqPJFJ19hRIdWen3Fero5ZcRnEefWNltBbIy+JjKhAGVk7tXle5dJKpotBfz2T+m5wQwRVDLU6oAqRsR9AkoEIT6GWOeuVPaJMN9wGiBo+ZVaR99MUf/wzluLOxH0onn0XPNWqI8GvB0Gu768uCkazl2caGCOU7hCfbbUkW9fJRuugEux+WX4WNEShAaqTE4u30cXBs/8XVgwwZ8l/+Tk4Bkm6iluw7PVDiVB5HGf61VvwDThH9BGgI0e3n7JM7aM/5NTpjMpcggRC47EGdha3hKd9q8lWC1GnHpc4Th4yv+hH3z5Ok=","translations":{"en":{"changelog":"### Added\n\n- First release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ncmlzdC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9ncmlzdC9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Grist Integration","summary":"Connect to your Grist instance to search for documents and add links via Smart Picker","description":"The Grist integration connects Nextcloud to a self-hosted or vendor-hosted Grist account, providing a \n\tunified search provider and a smart picker component for documents."}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"jana.peper@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhN1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNjIyMTQzMjM0WhcNMzYwOTI3MTQzMjM0WjAcMRowGAYD\r\nVQQDDBFpbnRlZ3JhdGlvbl9ncmlzdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBAMGyzYoOiubJ7ti5RofekIlXPYT+3YWTPrkyvfXMjpzQ+hvvXnshyX+1\r\nlK5vKdIXbO7UrHjTu+I2qWtBxnEO/1joQZF46PPWsLZLQ4KAMbgpriv0KR+/MKj2\r\nU+flM82ER/t9xDhCITvIWl+Xkfeq72k6NGWwBEcFZFvpLfYfX7rqRUrjDpJcySW2\r\n3OgXOsTJE2IF5YwGtYjaoSBIHVvUim6fYyJ3pTM6DNA9fnqqTumj60KGwKeTBdyg\r\nai+o+pLVTFNnUYd2GgCe3aW0Ol/PYNimc45t3u8WPUhazShKy5EodVz4k/CdZZEN\r\nAEBEEtOfc8enQxMoMv6/q1QH6UjKm+xfhp0rQ3bDcDp9Pz3ah5oovHLmsfoGXj54\r\nlw+ZKSAiskKGoeHlcVFgtVCL/BVr/ake2rnidFN1xw+lLewxs6sro98h8xTFQwpD\r\nUXaRX3ZFwD0IQfycorJbhUNm44b0wqRQPwPNPBV/jZtrXfmdChbjF8Jav0lLOEAv\r\ndzHHEmeCRlq1p3pNcjo4OimT/+IBNyx7WMauOfdeaXwiu9wHmSpRsO0XUQcRYznK\r\nfOQdjzkHH9yg1VLfJY/9v1OztQpVOUCSR83jIafR5s4Fm+ivLl/6aO7sThMgiciF\r\nCC4sxH3CcICh9MhGEe6VeUO7odKSbcohISmAl/17BCEDVz2gwT1rAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBAAqncrdfYywYJmCkNSJAMzXdBRjFyixQup5o/pcXiO9F\r\njuPkyMN4WLkGVLv/Nj5t1LyhwHQAUbM48jOOrFiCW3eo6FM3Mr0FPA98cOemSpdo\r\nZvMqRYacjV+rxd8uMzJyogTnqxWmM6eptf3hnei6YVv/u/wwVNK5O4Bk/CrfVFcM\r\n5cBp4tVN9UuQiXTYlmDdZ2H4izlj2snah2HHFMUE6xScb0ys+z1UF7OiH5YKsSny\r\n0A+IrJvfOrH4J6HgKYvUL+yXKGGXvSXqRYD/xhYk6WeQnbciVKvZQ6EivVF3B2SI\r\nCjSnNzyzx//W/iRrE3VN2LWbzv8zJwEOd5WuY/svFR4=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"analytics","categories":["dashboard","office","workflow"],"userDocs":"https://github.com/Rello/analytics/wiki","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Rello/analytics/issues","website":"https://rello.github.io/analytics/","created":"2019-12-01T20:23:30.819585Z","lastModified":"2026-10-21T19:03:15.913906Z","releases":[{"version":"7.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/7.1.0/analytics.tar.gz","created":"2026-10-21T19:03:15.897345Z","licenses":["agpl"],"lastModified":"2026-10-21T19:03:15.957731Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"is2sVY9bP8MDK1/G/ZO4nynBO/uTJBLlu1hv7bus4k+Nko4Dxfy1CKS21DLjqex4Mr5U+c7bx8KeYw/EVnxI92Xfp+frDkxm9hxWzexfZfyfJl85mPfbdyhdXL8MA610u8QNcPabifFd7nKJrwA3HlB1OKkBuJED6AonmbNlZCd+gbb7Q5CXMt7QBgXrGxS8e9hHvL548/ydXs4hcxHFPySIDihdSsjWMQp5pdVCGfrq/DtpQxGDWxJ4DPOL1z7fCC4VaE5FsVPP44ktgTXZafsk2rL4zxxOM9HW5+YAuAgTwsPJKaTiMFaaoBEcD/O8Wn52GPXDfuZny3oCny51kiWyAQi0ms7BnYq3CNbq5XlbKUtHF0CsY+RVw/tPUeqvC/qXZkQw50qYzCSzIES0ndBH7ilwRKPzgDvFYY4sQExNe0Mlbt3waBLA6dRfSFGYwg6qewPZxgzBui7J6f/uchEFVcOpYbKATMb+yZqrJX4895MZqNEtCVempYKeCA/+TME1DSRFCUA67WZYocWyo4m4bXSYKT1hheq99HRzfAXLV5W1DYObKmMt5cwKYz0ensAuyqxOBFo8DVVVK1oTfJBwHd0ZNQMuHjOhRZ0xAMVkLOtmeqmMyMy8k3Vit+B5WSuiJgb55X9jbhYVBfvbGJK1p5vn5qIaS2sPrkVoyIw=","translations":{"en":{"changelog":"### Added\n- Visual field picker for JSON datasources, with a browsable hierarchy and selection preview.\n- Preview live datasource data from the report wizard and sidebar before saving.\n- OCS endpoints to list accessible reports and owned datasets, retrieve report metadata and filtered data including shared reports, and add or delete dataset rows.\n\n### Changed\n- Clarify ambiguous report actions, chart and data terminology, and placeholders with translator comments.\n- Simplify folder navigation and icons, using the URL to select content and keeping Overview groups collapsed.\n\n### Fixed\n- Fit report title, subheader, and group fields to the report wizard's left column.\n- Update bundled Moment.js to 2.31.0 and PhpSpreadsheet to 5.10.0 to address security vulnerabilities, including CVE-2026-17495 in Moment.js.\n- Restore report tiles for recipients of shared panoramas."}},"signatureDigest":"sha512"},{"version":"7.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/7.0.2/analytics.tar.gz","created":"2026-10-12T08:58:45.931308Z","licenses":["agpl"],"lastModified":"2026-10-12T08:58:45.985684Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"Xc4UynEZChmSaoDWLVmFI3JdkuDxMw3PeyJp22M2QahrWtdebfgSQwofT2O+bc1XBouL9GwcC4ndvwSt3OZk09R5kWC5OsNjHBj84sSsVtWYnoawxC57D7BYHHJRlOfmfOWdTqgCxdMbSF7Pn1FNyvvCup9PhYqrRf4iy3w/qMKjPxr0+GN7gTMgGPC9BCPhHce0A1xlfxqTg/E4z4PUTi0/pp5FWMfgPRexOwZqF8qa/ICYgfTIk69rNxUf32qXJAdY1OWaiw3wLj6DDcS3N/R32xhNZf8bZq9cyMRZR2oaWpn+200ypBfYy6Uq+JKIryLwYZRCbnPoqDITvCop9AptNlNKu4V0g97G4MrpLzPoilz0Sx/08s0477Y4kqQ6ZyBAtJlISVRwa1iUXkn5Dos2p8nFCdb1Lq8rosjM65DqFie2XhgS6VyEG8mOtnWFrp23ySTMaBj0fYS8mToo+QzAA1ojLAp7twS5an7RJMomvap5WOIqFx66AakPvAK9eX1qjqA6KnyHXXK22xyJJa2FteyCGKeQqfb6tJBLXZn5RDLxYVWgVIinsK76SgnmMTllfJmOk9LOrb3/yHukIOL/xs1MF04bqTeeF0ZRVj9xUtG4vK7XafH2lIaz+Nj6sl6N9oggkDQwT7nyZSpDSQikC/5SJsbHYB8+3WbntmM=","translations":{"en":{"changelog":"### Fixed\n- Restore panorama tiles for saved layouts using the original page header markup."}},"signatureDigest":"sha512"},{"version":"7.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/7.0.1/analytics.tar.gz","created":"2026-10-12T08:05:25.633883Z","licenses":["agpl"],"lastModified":"2026-10-12T08:05:25.793868Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"uytzIOtNFL0CQl4xsJOotOWDc+b+I8kKHizWfp1SzP3vKtUUcyBqB2/7nmcsHWbdJXGu2Wav4At0xFUf+pJYKPyDKKzcVg8FHRlY8me5ePYBSGNbhRLrOO0Ii0JPK+ZCx0Y8BXikWdqLdhPMpLMSQcBDJ7x9UzaBadU8k3XbpeCO/fu0a2NUcEk/GBSMLU9umhFd9vzCqciZEphR0gSY+VSSh9OinKjVy7usR8XlgBfxZ7rE/2pOXB2f1LHk3F1AeVUsT8WV9ZK2V9O6REY8Y+0ghPFp6YMIxqdnYzc/kJpXL49XgwebrIPjNNx40pIjDAy1tMS4n77s6Fbph2rOkXBXiC2dPLI5IGKYNN7wuMqhsUKDfXiDl3oS5mWYrQOQpiKZObpdeYChr8YWegCnyFTgnCGcbTRXyNJ4gSoUzyMzkUEgQ3fBw+Eh2wC0K1C+hQKHZ73BQO3Ut7yeoS06pifMsiq0ogPF+pZ7Uj5EX6jYySIXaQaXDtGk0TmhhaE9kM+/rC1W+nem1vYydxzBm6y4hPvSKn4bhYqkFVUWUbwBVH0jQ91kQcyV9PCmdJETa9ygQmUHQynEVvSaUnQnzaNuGu7TpcpkzX4b9l6OJRG4MLyWOSzEWnjwsSek0NcaXHW2jPMGdcXtY0Qi+ayq8ySiB1QCPxDbOFl2at4hrNI=","translations":{"en":{"changelog":"### Fixed\n- Restore existing external reports after upgrading by clearing obsolete internal dataset references."}},"signatureDigest":"sha512"},{"version":"7.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/7.0.0/analytics.tar.gz","created":"2026-10-12T07:11:08.214029Z","licenses":["agpl"],"lastModified":"2026-10-12T07:11:08.284615Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"smlwzyHWYc0E8xKUpljY+NhINJpEZsvuF8T0Bc1zC2qgLFyfbGv6nV9AozcOTN/3CKu5BCKHZIbbnlu9ghAKtmYdoTIw52D2WsIGCptwFZDDdst4rg88t43qz6HkwtR0kxzRpgGQQmEUeguVC1mO0uLewO7CMmxZyHAL6FwbPxHepl6b0rJmlVnGyfP/Or2WJcNZIZOSr0+MNnyX0mIc0W3GBbZ0UCUv/+FNUllRHz2bpHHRAE94WlEw8mKgobDpEmVNxHd5cQBml7tWyp4rdS4qrDEI55OawkYMm22jlETqFZ9S0YYMbNeMZFMxxNP9H1BPLwN3/2S8QVzZ2xCL3wgqGS28JnHduNmMlLK14tyPrUh0jxuS0ccXiTAMhHWlqvo8uGYuyBChai1LD3oHteBbk+jTjafcfSnTPB1EizBNtJ/5j6XvCgMhvtIgDeUeBoPopu4b7IPobYCEYSiZ6vPuy+v1nN3XdnF8+0Tl4EU+P1ARVs35M+IhT8sX9x506pHPWKAI5ZVA3NJmyWnCsYilww0yzO34j9MNn+X1IteHNBnWHAHOufQ8Z+ZlwVPdY4DXwXAjhumN4vke4lwmPJsxaRo9CjTVCt2p0FI8q+40zCZ1ylIIP5Z8wHlWOabNzhbg0HdtOSl8+Tfau13pbBlUV1slMVGZ5rf7DLqxcOU=","translations":{"en":{"changelog":"### Added\n- Smart Picker can show live report charts and tables.\n- New interactive chart and table configuration with live-preview.\n- Spreadsheet: Select a worksheet from a dropdown.\n- API endpoint for deleting legacy dataset rows.\n- Persist aggregation and disaggregation chart functions.\n- More complex demo reports.\n\n### Changed\n- Match navigation hover and selection styling to Nextcloud 35, preserving indentation and a rounded selection stripe.\n- Simplify navigation icons.\n- Configure sorting in Columns; remove the duplicate Sort order dialog.\n- Update bundled DataTables to v3.0.3 and remove the jQuery dependency.\n- Store report option data as longtext instead of varchar(1000).\n- Various UI and UX improvements\n\n### Fixed\n- Show the panorama save icon after adding or editing text in a tile.\n- Match dashboard last values to the report's number formatting, including integer zero and saved column formats.\n- Show the Chart options menu indicator when custom appearance, field mapping, model, or series settings are saved.\n- Prevent incompatible Top N and calculated-measure settings and show report errors without getting stuck loading.\n- Preserve descending and ascending sorting when a dimension is excluded from a report.\n- Keep panorama PDF titles and subtitles clear of the exported charts.\n- Make report dialogs and wizard navigation operable by keyboard, with focus restoration and Escape to close, while preserving toolbar icon spacing.\n- Fit report creation fields and guidance within narrow mobile screens.\n- Selecting a distinct value with spaces in a report dropdown no longer adds quotes when saving data.\n- Preserve External JSON table text and numeric values when another row contains a date-like string #590.\n- Keep panorama PDF cloud exports in the selected folder and prevent overwriting existing files.\n- Restore table footer totals and saving table options with DataTables 3.\n- Enable panorama layout changes and page deletion only while editing.\n- Scale panoramas on mobile screens and align page headers with their tiles.\n- Restore access to the Analytics navigation on mobile browsers, including the Overview dashboard #592.\n- Normalize spreadsheet dates for reliable chart parsing and render them in the viewer's local format #589.\n- Make aggregation and disaggregation series labels available for translation #593.\n- Require HTTPS when using Basic Authentication with external JSON data sources.\n- Match navigation and navigation-menu icon colors to their labels in light and dark themes.\n- Export panoramas using a consistent light theme in PDFs.\n- Use the standard Analytics dialogs for choosing panorama reports and layouts, with all layout previews visible.\n- Ask for confirmation before deleting the current panorama page.\n- Normalize primary and secondary button colors and action ordering across screens and dialogs.\n- Update the browser title when selecting a panorama.\n- Preserve slashes in Nextcloud Tables names and ignore malformed entries in the grouped data source selector."}},"signatureDigest":"sha512"},{"version":"6.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.8.1/analytics.tar.gz","created":"2026-08-27T16:01:12.397474Z","licenses":["agpl"],"lastModified":"2026-08-27T16:01:12.459030Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"JF8Akx/qJZbGQnBCGH2RPo/zknhGmsz0CO7ES6fpKCbAOMapKAzPIowfqJ9NTVo0UtYlIBbuw/fIY60EVXFAI+A9yzWECexU5I/vjAIbL5DVUw6jttEYr0M7jclveVk3sHSYsM6NRKM/rtv1Pge/Bal7OCy+k/zJSBIrjxxigrVd/lHKwe15/3laMpHdWb5ccOPaiCb6Ghx8k50HhD/Hrxa/ghGtbqYBde3ONhB1jfUJk67mNLzYOjVnrGP5Vedr4rJ6x19dGdNY3TuTb+jZR08FO1wDOLI4DCB2/OkhG31D0EYxggIQ+TvAjATgcHDwN3Rc1PyaKFCwyYpZiAaO3XH8d8kOjnkvMlXitWK35svTxTJl5JKbOc4pAdYvQz/Fbk6drrBNnoDQPyBy3/VEpaGk2JQy1EGi4I1X8CtzqT/NNspCvlpMKc8CrgAdmJTPOIUS1gzYJDwYivqP1hfc35owrEmipEwMDbUyE6q7KqRqd3FT44ugwROWcxMUfsC4j0DtRIRyVsJcg8Gi3hS+72L/qGeyTYhxcsDbdS9S1fl1UckWUvrhrb7NYbX1APr06ueFXfC5tIlH8/VM9nRw6zOABL59DVqfrmLvc/IxXTWJ+avX5LcbAnOL9SJj4fqjCkTgkdeFKRMsdUnt2lT2mzG+c32S2c2e5AEeor/K7L4=","translations":{"en":{"changelog":"### Fixed\n- Restore visualizations on Nextcloud 35 without relying on the removed global Underscore library.\n- Load the bundled Moment library before Analytics dashboard widgets on Nextcloud 35.\n- Restore panorama picture selection without relying on the removed `OC.Files.Client` API."}},"signatureDigest":"sha512"},{"version":"6.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.8.0/analytics.tar.gz","created":"2026-08-26T05:32:33.834786Z","licenses":["agpl"],"lastModified":"2026-08-26T05:32:34.494050Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"tN3RJU5eI7gr22LFxY8lKuxl+BnqYRZEh04xizEVBYlKSRcHu5fTl+OKd67zHSOXj0eUaMi67U9CoMBSBEvHm6jG9kGe8H5hnmqeEJXczeSz3AW1b+JZtXUs6bFT4AXXbSH93TluaPT3KYsW0wLfI4tenekPeBr3tFXB1Cwabzb69Jtzfi4i9T7P+p66QEaSLNPY3KZ7gffJpw6WzJ31AHpyoLjHI90rWSNqxnnVVoRk3Pv/caRDW+pCBHbgcIuA0kQsU3l10+mjqV4P5AdbSfr1xTfcvvv2swgZYMkMCePkoTrVvD0TedKdZhI5tZs39+i+Cz2+kJ8OPsxEiERwFYeddcDRC58rZj/1NRBrfdJBhwLGfIluYNv6jnDrDbkH//dw6Y7CLHERKp+FP+B7Bfg9VHwUzLh9lx+OUExR87MoMF9jJx37vlHiUiVipoteneBvCGIGUKGiQdKgZOOPHKkpzrtMRxYIMlMEn00kZl4+rnNMs7rJwgRoxROPOpLV6MRjYdXNmELD1hW4zgJASdIPUX6npLNQCN6JdkWOL/tG908hpyuV3Ap403oCHaDemw/diM4KTix/jPtAZUXTyvp8QcMokOkezGuJSpMgxI/NJGPnNh93pF5zb5irojgldluWyHn0Ty/lZxgk9tlOp7oyP7xB0VJCugYsdcfwj0c=","translations":{"en":{"changelog":"### Changed\n- Group Nextcloud Tables and their views in the data source selector, showing the table name when collapsed and \"Entire table\" in the open menu.\n- Respect Nextcloud's administrator setting for external data sources hosted on the local network #579.\n\n### Fixed\n- Restore PDF export for panoramas #584.\n- Open the column picker for empty data sources and show their columns without preview values.\n- Load the bundled Moment library before visualizations on Nextcloud 35."}},"signatureDigest":"sha512"},{"version":"6.7.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.7.2/analytics.tar.gz","created":"2026-08-14T05:58:11.972724Z","licenses":["agpl"],"lastModified":"2026-08-14T05:58:12.050663Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"tbzJdl5vHMRIKpnxDi2++ki5VcmOilCC+aq4RgLD9QzVEKNkTYZbcQLW1FEiFD+qHPLCJm4IE/whgd39D4GKhV9GBg34WYXv3QyZ4jcK8SIrwHk2p4Iza1iRAVITlSG+LChx3NEC1LPNgF89YbQH2EcK0g6fV7oPrjSjNSV77VtY6gTNpC1eAAA3D1WHjb11NSyIo1py9ojHCjcV4B3dXoAQ3FKgBFfx0USSefX15l9jQ39CpNDU1Zp6RWxbGD5LpGStsrYlWVO+ZfwRKzO6mnd0XMV99BGjLg8Hvq5tiDzGhfgx0D7xftdljQT56dTNsvJBTJi0Y9pbPek8QeAgEeAIV2wREmA2i1UrJD4EVgg3q9g1jdWOpwxotGYWyh8mI7UdSTXztxEGMUPK+G4IRIMyPVJwXCw0lG377uV089tDAu2ek5EsQc92oTZJySsbia40BDdB1/7cTxR9UnYeyXjti1Wl5SUfWFQNge12iQ6YNUNzTryWyDWNbN/CQDD/8O5WXheTJZ3pNMFhwXZ/Xaa8o2RoiaG6BdmK5CjTxpXcIZOKNA/BWX/LCk3BWwpjDNwiWmBAvv2ORPYGFGaoBez6r9VXu9mdEbi8Ph0NpL/iPNVhjkCndtsKZAWrs/A7U0+5VgzBxKDr7FN7tPehap5JDVFuQYD973/uFQ8IvgY=","translations":{"en":{"changelog":"### Fixed\n- NC35 command signature"}},"signatureDigest":"sha512"},{"version":"6.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.7.1/analytics.tar.gz","created":"2026-07-19T19:19:57.170007Z","licenses":["agpl"],"lastModified":"2026-07-19T19:19:57.264147Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"TbBHUe4sd08ALzkR+uMaF+4XcU8C5SilyDpkNUc6B43ohzjvkXh/DH0w/Qxdz/aRrNgUFS1nCI0SRDJPKSSH57YP7rupOhnMiQAd15U/NfDl2ZoAovz/CEZEHw/0hAl313ze4VSNKiYIfahO+6SAL9fyvkKqBuKGhvdh6WG+VVB5KCw91G5oDytno0t1Vt/+57+RDkaAJR6Nr3jhmt7EH/HDVtCiboqGxwDEzofM0g6oTx9Mw+FrUlIRZ65mYXprKmBYWygOPzMVLgDm4671tPwVMR+TWSVr2a50AZqgI9bnTR0mh8WhEpXnwghYZjeaZBE8/Fuyv/UOlDDPNeaAxaGoMSrW2/nW5n7FrenPmjCFz7mSFUUQiVackAM9n1vzK6Wgyq6RLdyBHVHqk2mu1jcsJgHDhKOJ3HiAbwltk845KbRj5cd2yXgxURqb3aNyTlgdcXgfqon1/MaTJOT9sLVo0yYs9q0YywkdHiBw3jziase9JGr7j16LpeB/hWTo7dOIg/PG+VEg5OM60O+3ujM0DRDPNMa6VY/sxJDKjHYJVfivUQhAERBBVd2SyZ3Fv1HsC6ccfyfckllHpdOPsKh0du2Cy7qu2Ed/CfhXh0/iGOpnxeZHo90nt6VrdFJZcXe4I+LSfCLZoTaBuzNeb/hZSt/d+rV0N36UgXPmhPQ=","translations":{"en":{"changelog":"### Fixed\n- Keep table footer totals aligned with their columns after column reordering.\n- Evaluate table calculated columns after the selected row or pivot layout without changing references during column reordering.\n- Improve chart and report table contrast when using dark mode.\n- Keep the report wizard navigation arrows visible with customized theme colors.\n- Preserve matching headers and rows when local CSV data sources contain only two columns.\n- Invalidate cached external report layouts when saved report options change.\n- Persist chart legend visibility and trigger report saving for all legend selections."}},"signatureDigest":"sha512"},{"version":"6.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.7.0/analytics.tar.gz","created":"2026-07-13T22:04:42.560778Z","licenses":["agpl"],"lastModified":"2026-07-13T22:04:42.642699Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=29 <=99","signature":"Wt5PVCobkyyUelrI/8yKFbu/Ege5AaUxLXyEyYv7cLC+8cJc+dQnyFMn8fzOITexMXN0yIU5ld9PRhhuLu/Rpm4N0qpHFcpTLTjB+cbN+QL+HiJI6vBpZJIqr1cM/yKVdoIQ1Tkr7KhLW4KOedA9GzRdv+1s/b5Ul2LH4ptW9usp9cXrnaqhwfMAUQ9ntFg5KHSpt9HQ1ySaXIfW6iaZil73j4hqaA10ok2y1ihFuvZqB8a6+cm1k8OBeTFz1Dz7D0It9oBmND4csu2BmcOFQelogUs452+p3Pd03m1NGgzer1xYs80FA5b2zdEKl86T88c0LJKYWPZYbPN18jwEabC9r5FSOmB1WPD3wS/CTsmoHY8jYxgvuKRiMDz7Jh6YWPxfwxaKdvtHWnJ6QbeFPrLhjikma/HJs1QZLMIU2G5rv87lZVKaYECJhV5LvDbcOmpFZDsi70vaqIWtQ3ThrbGBykdvaoOiADGbmeSsegavKJkLrBY1eNW6sr6u+Y6Fwk2nIn5TZa3qjxYn9sxH75OWUO9KAKk3lapGzAUzv9zErxyqb8v8YtxF1KiMCiwKR1VWqZXhdJH4DKo3BWLikGi6EAinIw+e37ebYJAXBRS/udOxLTXJmSznv2jq+z5kU/YKVccCp6LmuQ+HU4D3FBIBwz7coM8JOj4625moE0A=","translations":{"en":{"changelog":"### Added\n- Custom calculated-column formulas can round values with ROUND(value) or ROUND(value, decimals).\n- Local datasource file paths can use date text variables and formatting through an opt-in filename editor.\n- Reusable script for generating the CycloneDX SBOM from the bundled dependencies.\n\n### Changed\n- Allow calculated columns to be positioned in the table layout dialog.\n- Update PhpSpreadsheet to the 5.x release line.\n- Update bundled jsPDF to v4.2.1.\n- Only send scheduled data load error notifications when the complete load fails.\n\n### Fixed\n- Make the OK action in delete confirmation dialogs the default keyboard action.\n- Reject oversized spreadsheet ranges before PhpSpreadsheet parses their coordinates.\n- Preserve custom chart-series colors when saving charts without legend items.\n- Return a readable simulation error when a dynamic local datasource file does not exist.\n- Preserve unsaved per-series chart options when changing the analytics model.\n- Various security hardenings"}},"signatureDigest":"sha512"},{"version":"6.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.6.0/analytics.tar.gz","created":"2026-07-07T13:21:26.941296Z","licenses":["agpl"],"lastModified":"2026-07-07T13:21:26.999026Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"mxrH24UDb/PcjbRgcTkOTXgzKgnG/S6HbYRZNk2X3BkVIjVbDRq2gxaWSl8CmLSq53qVB7D2nyLqnWKXoFebD7d7YcRJEjrMgV3zD1cltRsl+jt6TxQ4dplMaGOK7HcNLjedrivRmyYnxZ58W91rLBFDnxnRw5jqHw/R89ezYdEqSGBNl7ADrpm3ihXYTdNpNAnxfViR8x6ACRzPGWu7qh0yFmIEZ3kir6WYDfUERb1o1qzoh1GFqHXKWZQVaDQxbUwEdU9CI1n7Cy70De8rLM0Gj2AAWKarbZwCfOfCt9cgaVCw4BVpURmA+ktrH38YHiDO/Ef71CXWH4OrfRMAfi+CM8fsit0V0uQ/jf/6QbLixLuCFWHy8Yi8li+YpHa1du36Vw2fQNFVucHRRoSIrFtxqAP9GrJfPTlVIKOZV6vtIkGP/7dQR/9rtbudygiwWwJn1usREUGElzDUTW5aM0Hw7IZuoGIaxFw+xvG+UMyDnlLF1njKQYfCL7BONmSnif0gClDLR2PYTgJdXypvT28xWRJ9H2YFiLgwqimyIRxpLhgKlBSscFyJqHbdqJPR+Cv7MLI8/1ibBvoJnSANJ+FkZll5pwcQ+u6dA8SB4eHCT0V22veV5YBki5FZhwSeeXr+C/YyuUUcBMOxy5lD1u6o9vDt8MahZuY/N65c7fY=","translations":{"en":{"changelog":"### Added\n- Calculated columns can use fixed-value formulas and appear as chart series for the time-series chart model.\n\n### Fixed\n- Allow historical database migrations to run on Nextcloud 33.\n- Keep dataload execution successful when optional context chat indexing fails.\n- Respect Analytics app group restrictions when publishing and rendering activity entries."}},"signatureDigest":"sha512"},{"version":"6.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.5.1/analytics.tar.gz","created":"2026-06-25T18:31:15.974352Z","licenses":["agpl"],"lastModified":"2026-06-25T18:31:16.038969Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"n3xxuDuHSG/A5hqcX/o+0KcVNXjiCzeOHQTEzbcalD/HBRjABS5ZUAC6iCA5+QkJklKGowB6zsElXYxIW2Fc8965y21Zpqrr2wuxE25uFvjGWA2M4GP7k47FK8cRGFWZfi0unKJQewr7jh3fP9FPBq82naAxYI0Izx09dssTowf3GYLduOaoCWD0Sz6nC/jt7jkshwWx9HF96BUs6m9hD/7+IxZVyaKqjyEfXyR1ULFhRUOYFrX3KA6dWXAfJGc7TZjZJHRzkbx/9vcYfP/VmlVhOJJZ/4qxc5zun4nrRCFQyJBIJGimhYlHOtKt06IebvPURA0n0TxRX+0HURchY855Ux3KQprpr4ZTOSaZQOl4J/Db2qJ1E5IzGytjVqQwwBtK8l2eXV4GDBtQpF3AA5ZVkMQQwGWGL3qL6lPO9kuizN/m7l83M24W9W23pFfLEuDUFuveXH+oCZ/BW9azVEaoFQZKGXwZxNv2KpnT59M/s5aAoWRhFfcr0Zbq2psWDAARDyRHi3xe8MUsL8dClvEOV5Z2lEWU2/I7rVAw64QHjn5TBV5OljhOI7cRexuVRlHcx8Xh6WAp3FFs6cO952lHppCxcvRtUnOQlhphK8dMMXwMDQep0LbQ7XzTKnxh5K7q46sNuOsasYShpODEMFIoOQPPpdYzf9jjWjTHXzs=","translations":{"en":{"changelog":"### Added\n- GitHub datasource can query container package metadata with tags.\n\n### Fixed\n- Harden ownership checks and external datasource handling for security audit findings.\n- Show GitHub 403 API errors instead of always reporting rate limits.\n- Allow same-column negative filters to exclude rows from positive filter matches."}},"signatureDigest":"sha512"},{"version":"6.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.5.0/analytics.tar.gz","created":"2026-06-17T09:40:06.371452Z","licenses":["agpl"],"lastModified":"2026-06-17T09:40:06.442467Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"dFzMubRaTqab6D2FN9U16vAYMJTOx/wtolSU11/pT19hGwFNLWiFwytWmDJwQ7KrtEiZxJ7MY2vRCKnIaE3XFfkMGL0sRDQJqWo3PzDWmTU//E/u5ypf8DnDDP8LQUFN3ggkcD2RzIQUIp/dM5QMlhXQ7Y/lKoaZeyKjMxc4+s67bq+D1RvI/+mmkxNS0RYeM4UJwiyKeIdpYG7uNojniCQPJc7ct0Ew0K/vIQ5NKKNeULTF41Uwfq6QOlfr//K3kfsvAFfN5HYD3jS0ZCOUda6sCJyWf4eBXLCSRJxmntPaa6ditlYNsau+7luzEzsD/7TvgzJD3pIwVLBGaKaub7PvvzKIeolDjA8vszswG3rcVtXRQJf6hDOQ8Oalt7IK71a/TnVQFpEq6U40RRXggnNkhEgi/7//ZTi01YNt5XG9JIE51eW2adjvLFtke3t3Xy5yntM3+HoH+i8js1cSwrPkPBJbbPZk319MDSGutiL0n4qle1v/aMoNYBm2ezvpIPg/OP4yuvGU+Yem785c5dS4rPP6QFH61/ttuVIBqnVFbtgkq2BDuf2/7kVbfJfT0BJ42lQY8vD2ZwjCBedbG3SdwwvTWChf0xw8OOYniT/Yew+PT6mpL4c5a7406gB97VVRhkai/R8kH/Kt0+TCXnx4x2+8JVGnrXwLDYtdAxk=","translations":{"en":{"changelog":"### Fixed\n- Add composite database indexes for filtered facts queries.\n- Lazy loading for external data source metadata.\n- Allow user migration imports when older archives do not contain Analytics migrator metadata.\n- Show all chart series values for the hovered column with Chart.js 4 tooltips."}},"signatureDigest":"sha512"},{"version":"6.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.4.0/analytics.tar.gz","created":"2026-06-04T19:42:28.494770Z","licenses":["agpl"],"lastModified":"2026-06-04T19:42:28.560157Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"KZQ44RKU+eFVIiSAkT91EcmquCahJ4QWd5I+Hq98bxdz1/XcJgPMpWRQlQ28N3AsBDNlYkWX3XOZp/76q2DbJdoSeuIUGDkApKMpvENiTlxNSaFSK1I7aAChrrBYxe7OzaGWZ6lrTZ1o+k6+AKnDnQieJLy7dF0vnk7hVDbGwkoPKKS+Cnf//Ib3OXFYayqAM9wmtAVFIpo5eq+SzSnfUgNLXSSX66WhOYdUtLC7/uH5PflWiOiDvKYPE/KSeECYRozDL0L4vdZVHCIZD/iSvwaCV1b4fQNb0NUgEysuXf8k6fDw2GaBhWON8USNBCW9El7FBc/eozuEybV/UnuMi/Xt89TfTX31LEd3yjifJ4WvdAWWbx81dCBl0yx5qCELTyDCdf7acRZB2AD4o1qV1NoIQaN4xVkdf8R1pBvNrcE8r675Z7ocvZDe3C9zUMH0sY3zbHMNV1yLC0ktFg8LRc6Fk+kCo40x52pxtZwJzcQp0uNcyfvdWfByBEnYcJIrVyE7WyTKkKMYmnc2VhT/2W4d3rWB2deE4Ot10Hvy9tEy6k5Xxr+UPco8oVFQNancwENCpdgip8Dtw5CFXguZ79wm7RQzkn7koosHQ7zIP6pRTeR0nVcw5axT7DTgN7iWwRnmFwubuMxCxIw8f64+8dxVQ9MPGl+Jr7FRGDwoYsk=","translations":{"en":{"changelog":"### Added\n- Flow operations can trigger a dataload and pass the file name.\n- Timestamp for local CSV and JSON data loads can be read from filename.\n\n### Fixed\n- activity and notification deprecation warning for unhandled events.\n- Restore the PHPUnit configuration required by the local unit test wrapper.\n- Keep the startup splash screen inside the content frame.\n- Nextcloud Dashboard does not show the Analytics reports #573\n- API returns error code 9003 when using v3.0 or v4.0 #572\n- Allow multiple report filters for the same dimension to be combined."}},"signatureDigest":"sha512"},{"version":"6.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.3.4/analytics.tar.gz","created":"2026-05-15T17:31:36.507191Z","licenses":["agpl"],"lastModified":"2026-05-15T17:31:36.586604Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"euJySKx3puos6b70bUEBFKkFXcUJN0nL0gCV6JDcl5wpWkrE6fdc0udLTCOGFDYgEH8Qogj+IlWxQlElUujE+6jj2Q8qnLZwM2Czk7eU+sO7albFUYK4/r4tD/pOF2eiDS+iCIYrK1bJRlaeeDzKFgcl5s/LHTeF4kHad8wkpzAkeQMad3hRmEMU0IZnc+SAOmq5M8uzbQoHsOLX63QR7IWPvSB52kK7n+2nSbe6jBgXmHHMpzL3RRqLzk6oYnPfvvceA950/mr5sQDVGGIey5EB1z46zZxgSFyA6aVMFFyZWQ85UXBbs2iXkwkYVahQ2SPgFd+Oo5ynU8WHJzEKmrEQqsCusZc1q+ZA7wcXGubn178IdzJZihKY1tadLye0Xo71bwBZ37fQ358GU9xUn5GSmFZHVM55vfA8rkNTA61iZVhVRzDsMlKUrOOlEluEocm10q5YVpePixmNlI1AuetY8igceA9nCTL4AN9s8eV3ZqucJxEI27u3x8ikwPmPU5U4H/x/Y7ou/M6HZD8uede+Kw6X+ahwebut/GTVbgjhEev2BjCMrSKOne//MlrZKdQqGC8D9G2zBOBh6vljEFRXdR+wITY2wVNEwFu8AF0vPfRRvku86FV8XcfVHhkzq0xPi8Anedvo5QB+e/CbDztTJRjDgQhjpPWBx0utwiI=","translations":{"en":{"changelog":"### Changed\n- Update bundled DataTables to v2.3.8.\n- Include own jQuery v4.0\n\n### Fixed\n- Register the notification notifier through the bootstrap context for Nextcloud 34 compatibility.\n- Remove remaining jQuery shorthand usage from user guidance scripts."}},"signatureDigest":"sha512"},{"version":"6.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.3.3/analytics.tar.gz","created":"2026-05-12T11:32:28.023485Z","licenses":["agpl"],"lastModified":"2026-05-12T11:32:28.104289Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"dbNOzKzMkHvvQCe8s+YPEUy4oMeSgeh/0Ur32hZZzMYkJlxOLlrCp4Amjw4PhCxYdAevboq/M4s62l7CDqgMhD/crOl7ka/wSGd13JIrWttBF05Lhtw71PglZHSJwnhSgWO6cHKCrtU2mo6rjwtBhrsUlHEbJs/JB/U1pIN/nEMpVv/uJrlnlTUy7R370wqhNJ/wCFo44SQx/8LC36N9Nmd/VJhHDq1mazt89/ra0cwxQXsJmoEVETV5AM+kXiM5U/YZ04xurHo8UfXw9pH+CgFu1pAx/P3o2ybh7vGg7Ysfl4pjUAs3dD4YWiCri4uwKKupTOyvmO/h025rJ05CS5hPorcgdH57zeeQHa4aSOwS0q2j1OXGSaD3hh4RDxVpcvVImjpWLjh9KOHdMoy+YoBdJO3vRTmJIjiPXgXZLGUpfM+Wl8osS7bzLCn1xcocdbYt97uU0eyJk4RZ5krVqhp9aArU3K9kT4/4FbBm/fUOhnih6NA/fNwmqJAMlCnnKUIqu861xkmfIKfHEjmQ45ChuCOYoI8uEHZUJiJDPkbxtf2oCOa10WiM7qt6uO/lYYzwOPK8L7xZ9TbHHaX7+rsO8CECUhVcGLBWst9QKB2kOO+jIU9zPirxG7uSnmbDea/8KHM7n5jAQPJkOnIYNeaq5KgJOwQe76OPSYVnD3Y=","translations":{"en":{"changelog":"### Fixed\n- Prevent template rendering errors on Nextcloud 34 by using the documented `image_path()` helper.\n- Fix share link rendering on Nextcloud versions where deprecated `OC` host helpers are removed."}},"signatureDigest":"sha512"},{"version":"6.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.3.2/analytics.tar.gz","created":"2026-05-02T16:02:25.952009Z","licenses":["agpl"],"lastModified":"2026-05-02T16:02:26.057524Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rh0Rk2jwkf38E2an/ELqUxCjiKQIhqYMMmd0HAxfSAICIkDorahvp7ESrSiyfQAzkFVduiCcKPdnm8UxwyOVXT9Tkux9+oVxTO/DmLAFJIcDCr65GH5Rhe06InmcR0zRtjK+Oe+zrS5Ca89qh6HP7S/nCXXjauFppPSBvKi5I9IANEbTq8SFmPU4ABqGDaYvJ7ztG/DxfFDbVgm1T5R3HZ46TDC2mnvst0yo/FV7VpsGHfKr4llhZzGkU9myYNW0UMIo5iX2oCMurwpq1OxLHdzonFjjGZE21FA7nWYDcrqaTS963yR8dih5oKhayFbQiv0Fjd4xJwZ3gs4IMCnIs3Mce/0Yk3//MK8QLbokw7mgE5VLEP+mJEQcNEA9bwCmv+pvUcBOKDEiOCHSzr0V2TVGifWdfL3e2v9HhCVvHj6Ng5yKlojWaDjCz6Zalr2qCfN4WDmJMdmYpwdp7Ld4JBQsXgj0UcOB+ogQ9LR0wkwElTtQaNWqZAl9q0iDWHX2Eqni5DEietN72lMB6kHTmWxPTW1mXcYI4pK1D2ctZpovitZxfwAk1Mtd/b4PDSg2R63GLGWXCQrHWcWEciHROxfwJX/1xXu9z5M6lF0TZnMCJOHwdK2qjZGNkwoFyhhdhmINw0xesZayLNuWj2hTU3FySteEhQgqXWzU7Cl+5mg=","translations":{"en":{"changelog":"### Added\n- UI for custom columns in the column picker.\n\n### Fixed\n- Seed new report cache versions to prevent stale browser cache hits.\n- Sidebar data load not responding.\n- Render table values formatted as URLs or `Title (URL)` text as clickable links."}},"signatureDigest":"sha512"},{"version":"6.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.3.1/analytics.tar.gz","created":"2026-04-10T13:25:26.459139Z","licenses":["agpl"],"lastModified":"2026-04-10T13:25:26.528510Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"HD7P77W4VoL892i9ltCHI5K0h5xL/bdRX5IkGQzxHeJ8r2SOPorREsIyx31pApoZzsPID7nOtZyCK46I8EgFGBGl7hx+GR76tC5eiOfVTKb9N7TGrZ16s0QLoE+w9d+lkcezZ5rK3tGmzbZ9GcGUfqC7JekCJ3191fl1thl7jGbaY6hadsUJVGsP2vIW7teUjhEtbF0mOPOHZrxYZyM3OfpXgw5ITJ/c09GnlwSZsdGEWwt3iQOirJbgFQN46PHo82EFO8CByBaTd1FKqvvcLyF8uhdd97dOzucS+tt8R2PWhshbZuKQ2BEDHo6e2QaLkD7YbTQJhFoKNvDKMnt8BNV4nERHP6JLE9mq39bw5a2OBB+E5q3hwA7v7A8GhT8o7/smfFpQSQPffj24Emmn7f1+fIJtPwhq0XQ/fRqrU7uvu7Tj3TWYysyHIlWeArfPPi8QNmB8imudYFUJeMrLlwSDaSTcKMZZ0OH95dfHlPPr0LoalNo/9LwHs653XhLg7tyHO7p+Kj7sMurRIhtkvyt9gbSgtUJSvNjU+Ld5MwhZYeAq4yz7BL5NirjC1Tw2dCvbZ6TRs8KVuLjXcaYaz/CyK728B3GZ3jM8LXIXhFuZZr7l29m18kuERBQJg+8pzjFlsgN5vbR/zLWGJLCDIG/BlRoxCoR14vQQiomoniA=","translations":{"en":{"changelog":"### Fixed\n- user migration ignored data loads\n- favorites error\n- test case fixes\n- code hardening"}},"signatureDigest":"sha512"},{"version":"6.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.3.0/analytics.tar.gz","created":"2026-04-08T12:55:39.636705Z","licenses":["agpl"],"lastModified":"2026-04-08T12:55:39.699856Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"M4qW2k6+z5sSY5LE932u8FuXvtNLgfElrqJ22EAlwPyI0iyIPpLvfxoOjN47vXUt++1lwwOiBav6l/9JjRupoCQYTbO+03AWKfRrEIoJUEI88Lk7Tl2k8VPxGDhqv+TQ4cTy8La7v87zDqppq0Ehyju10Ue3P7tS91ETi2j7jaJu21wTYKrbraEpvM+Oahvndazef9kA3ZP2YtxGbDg4FMJFDKLb8K9tIUmWxs1n1pv1ASM6Td9WrLYTPQRYfi/c7BLf+CChha00F8gA0XdCHu9trMMvh2stX9xfro86vneAtQ/CYoNkWvd2BQqqHqzFtiDzsCbz9jipxTjQLWUTY9M5rFuRwCLt5pp5MedYuCDDbQ5KlEFhZdnNQVRCWo5i/3UvYOkdZwl933LYtUWJH/tQDIyP82oX5/QM309S7F00uXMyrCt7FcE0RZkPiA/cinjSP0UtAS5Qig/Ps8KTIva5ihfym1pwoYf5DtccCSBUiFIu5TLqAtMU7fxIjsyXwPYuNDUk9DrGtAYjh3bsK1yx9/Q9ulAkIAVOtq14iGwdwN+c6G1DHORA1bLCqbLFP/L2mQCkE6TJAT0DxsMDIfD2pS2j7ypmICZdrQ83XCagSu/XMGfv5PpJI3D6dRwijbtI930OeU7cAMtHrr1vCHFE2gvV3NkHOiftB1vOUoI=","translations":{"en":{"changelog":"### Added\n- visual UI for creating calculated columns\n- `not contains` report filter operator with wildcard support for excluding matches\n- migration of Selenium to Playwright UI lifecycle coverage\n\n### Changed\n- new layouts for chart and table option dialogs\n- UI unification\n- code hardening\n\n### Fixed\n- Can't change report title after copying #571\n- Restore the collapsed sidebar section right-arrow icon by shipping the missing asset again\n- Render the filter dialog Wiki help text as a clickable link instead of showing raw placeholders\n- Run first-start demo imports sequentially to avoid false import-failed errors after creating the sample reports\n- Prevent duplicate favorite widgets on the start screen when overlapping favorites loads complete out of order"}},"signatureDigest":"sha512"},{"version":"6.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.2.1/analytics-6.2.1.tar.gz","created":"2026-03-17T20:00:56.941756Z","licenses":["agpl"],"lastModified":"2026-03-17T20:00:57.012537Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"NwuBLwc0CkWCOZJLORLqUQbuPpnJueLv+cCKGZXIRNoKYmPLsbFIHN1XfGUjk/Bqo1sCMv1E8ZiMI2jGuDvwkOay5WxUCQt9695bU1pxn5e8ggTl/ntSPSUFx3hchlj85rfzJhJo4NMLxZ0O+zgOW9o3wE4xnaBUyt+ZC9QuPhTm4aCF4Hv8E3VGQUVUjIIvR6bW5I3S8sQZbgtzgV5PzfvbsHuVpuarB453Sr+UGkBlH+ooFckkklfTFxN5rSmXfeFqanmR0jmzBuiNgfrMM2+/bifLUchv9tJbUmjd/hK00QA0GNcAzJcjcIhyZLH9TcRFLyxZn9+ruMsssFY7TInJHVQpXlU44qphjKNDAEQODbrlEtRhMl6QEN2o1JlwVycz69DLiIqlCnKS3A/yopm8O4FI/Ub+MM/VkJGoUd7Q2kclEOXMhvwAqQazquBa5Es2W2QCtCU58I5rVGnXPPXdRUV9uJkBxlbGXgPXrA/D5zppqwTGZrG27zDVqfrhbf3vRuusD6kQ2GFV/cS6DE4FODM2e2D80yHssR8V4tNWVIt6UnDrChyqZfPbanxKUbbG4UwUEhB/tGpvgHmbDbP8qqIvMvxE9QGIdcpXfzv78Wtr9iKcX4bQ6d8N8tiGj6B/TB0D/lCM88RIgvsL3Le+QlfxmA2Lov19206aX3Q=","translations":{"en":{"changelog":"### Fixed\n- Fix `/whatsnew` crashes on Nextcloud 33 by using `executeQuery()` in `WhatsNewMapper`\n- Persist wizard dismissal for demo imports to prevent re-importing demo reports on every startup"}},"signatureDigest":"sha512"},{"version":"6.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.2.0/analytics-6.2.0.tar.gz","created":"2026-03-15T21:00:32.647692Z","licenses":["agpl"],"lastModified":"2026-03-15T21:00:32.725592Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"RNo0M9GUN/lA3/VUUGixfNhvkmlJhJgMqcupjjuyHXTQbaWPubu0pIuFQNMv9HizpYAUZlzRuKYBSXPquw3ejyylEpvCOiA3ZQVAK8LziUrNxUeXguolsdL/Xvkh71OTxQig1/nS+c810ySdO15BzZeIpAphyG9Xd6c/fFB6QEqVTZLaSzSfAVSAp2neViazUJ99br5LXvXadJjj3444ts2syx6hLrVWFuM0kg6fpGX7ZEDxity4duCC56ZO4Lj5GVmYw90elelj9JLc4r0HX0t5bKz+Ywy/u3/5PgUX0hdWwh/P7ATw1SmYnpPY1Jj+l6pdYLzcdRTXVGdr5AoEuoIBySGFDPS58L/UCIsz/T3qy5Qis36Or5HWJyJdIWaNjT6u6zddo3ukg11bx6LAHuxuISn6K2+2jYPd302AfXRUN1l2NMl2G3HV1l84/1OQ9C4CNFB1Lqj0uqGdfvF4tPcIa3T3wYx5r3K0WvuaWcCtTZuw1mBKg6b8DqBV5TsGSU3WSXOghHbEj7nDBwPfGy8UzS3p+O6rATU0sqcUZ/eivgj2H9vEfEYueKcezEqU8V2VA5SUyZ1G4ryfElk6lqJvWqE3IId2SEGMgEYauCB/9eZz/gAQ1acs95xRXmXpbEhpT/AknxCDlVyVejRoIcN8xDHgZRKQn0XW9Nv7HOw=","translations":{"en":{"changelog":"### Added\n- Data sources can offer report templates within the wizard\n- Startup splash screen\n- Playwright UI and PHPUnit and testing\n- Reusable REUSE lint wrapper script for local test runs\n\n### Changed\n- Automatically import demo reports on first app start for each user\n- Open the layout chooser immediately after creating a new panorama\n- Enter panorama edit mode automatically after selecting the first layout on a newly created panorama\n- Enable/disable data aggregation in the column selection dialog\n- Add a template/own-report chooser as the first report wizard step\n- Shorten time aggregation labels to the relevant year/month/day granularity\n\n### Fixed\n- Prevent new panoramas from reusing page content/layout from previously edited panoramas\n- Keep aggregated numeric values when rows with empty/null values are merged after removing columns\n- Ignore stale drilldown column-selection indices that no longer map to dimensions after report dimension changes\n- Normalize GitHub datasource HTTP error payloads to always return an empty data array\n- Stop report loading spinner and show an explicit error when `/data` requests fail"}},"signatureDigest":"sha512"},{"version":"6.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.1.0/analytics-6.1.0.tar.gz","created":"2026-02-18T06:52:41.065069Z","licenses":["agpl"],"lastModified":"2026-02-18T06:52:41.126431Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"DdToYvmPChzyNAzhdoJklRnDsX7qZEjRsOTJKqAYFlPUPDzflZVIx1khVI0OQPxCqMZUINogEzln2qb9sP6o+4loV6wibb1BOwH88XCQ5PZMHJH1G6noZjnjkNp0ObBfBQWg6jd2qw1Yp9mD8wXZi3A5oJvkom3QNPRvZxUwRVhPv1DWMVlt5XJV4ls8QYUKFN2NdmiVazy0CGf5F67Xa5thld2QvOMx8XsOeT70sBEa8kxK1AivGXVTPHulOsTpIMT8LwTtbId0RnkWQLrCMlEk+qvJYkEZF2AZ/tqIizbX+GtHcNIVc5opo7aqsue8wwayCQlvBbCQj7qYYdST9RoEc3AMjC34U2Dm+6RaN9NsKIuZdnsxyqeLu9Y6K12asVn7uBx/5f8U/ZL7EWO6oWSMYejBNCAelGG+0eLs6jVWAN9WnzsYCOQN2fOGPL3v84hucx/SJ+rask8CQjDSoo0f+Lbijg/348yj82E82bRdemTnGT4xVjOcrLcIM2QOJQDQ8oQSiiXuwZSkwjAy8F17nMrx0LwFU9qKYTVGzM/mOy/zTT2H8fxpYfoI2CXk9brBzIw1ExXRRjdFO/XvysVDMGWSttZmnx6b8pNhMo4CXsIQjwe/yL2XggzR/Gx+QAwsN0M70R4LOWaQwQvvhA3wnUgGwryPmgrLDuOfI2U=","translations":{"en":{"changelog":"### Added\n- Caching also for data sources. (Can be implemented by data source owner)\n- TTL based caching for GitHub, External CSV and External JSON\n- File-change based caching for local Spreadsheet, CSV and JSON datasources\n- Chart options now include a doughnut label style setting (percentage vs. absolute value)\n- Use native color picker inputs in chart options for data series colors\n\n### Fixes\n- Dark Mode: Settings element does not adapt text color #565\n- Harden filter column handling to block unsupported identifiers\n- Fix public chart only link\n- Preserve chart option callback functions (e.g. datalabel formatters) during option composition\n- Harden panorama ownership checks to prevent unauthorized read/update/delete access\n- Guard browser cache access when localStorage is unavailable (e.g. Android WebView)\n\n### Changed\n- Prepare chart option handling for future enhancements"}},"signatureDigest":"sha512"},{"version":"6.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.0.2/analytics-6.0.2.tar.gz","created":"2025-12-30T16:47:40.967750Z","licenses":["agpl"],"lastModified":"2025-12-30T16:47:41.029782Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"jCXoIbKtN6AQrY5LHV/mmDHUkg4ywepshCw6zm37xYdWm6lZT2joqQBq7/dWqCEb0HG9ZcjM+jZ62h66MBrIdt3vRxaLSMCE4g77jGGDpueH9oZqWWPdPZwi39u5enkRWQKJb4XWkWk9BmQSKRJSB0tMduy6W3/6+ZUZ3RIwhhlt1gTF7l/HqWei3OwqgReJSGKPZxPB29McYDxJDRSpTHB8ykxcUoOvkraiOBVmFaZkCQcX4nuzDtud+MRMyh6mWVmq3zMk39jaU/CbMAoAK/b9KaWhDr+1S37q5MhtzwATXaYUsPlohZC3IYn9+utp5AjJObgqQ1lyBe1uLK7FqbStPzk+i8XB1y5GO2xkHqV/hhkagwY4+UOaP62noOCua3W8Hcehh3AL9kJw4vXFW3K+cm4ONZAyETuEd3K5yRIu6GTZpNblo6SjuMhaVXlzUFScctYG+se5an7/Te+cctgX6YDo6qqR/3ZsiJpflpYO8eIDhT6vlMVwdHgzlS1HMUjoqeWL06vS32gNl9CnE4cwOsDl4BXDV+rS1lRf0nCYnLXq//w3d38NdQ+si/xaUvzJmByVpIElZ0t4UpHQ0qncGPSLfU+yy3jSoICxOdUHfafIcSl9E9JSpeD5I+FaAbpVB++sq+luGQ86K4kyuE3e8kcVEvgUBfzJc+xJIpQ=","translations":{"en":{"changelog":"### Fixed\n- php 8.5 compatibility fix\n- Prevent double submissions by showing busy indicators during report and data imports\n- Nullpointer in DataloadController::importFile() #560 #555\n- Extend filter variable replacement tests with multiple filter cases\n- Update filter option handling for BETWEEN case #559 @[joleaf](https://github.com/joleaf)\n- XSS protection\n- file import cause double reports #554\n- Cache not use for dashboard\n- Icon fixes"}},"signatureDigest":"sha512"},{"version":"6.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.0.1/analytics-6.0.1.tar.gz","created":"2025-09-19T06:03:21.549088Z","licenses":["agpl"],"lastModified":"2025-09-19T06:03:21.600678Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"svCoPledGUBQk1y9hAj943nfVTkxVoExfobQ3Q+pXQNWZJD1FwfRo9mO1eV5OifQ2E8Qw+5+jID3zTwbCzLvBmYt588RJ3hsFodlTUDKK7yFNBA5/bIBMwutd9Iu4bml9gJ0+8umCe6gaZjKE+ax4FKfeavNJr8H8EeWI44/Uw8gg5zyebR+FqWyL5WbudvMfe+ife6gnR6ouARnN3b14qh4AVK+LTs33qnRVuConNcK8IU/rhMMbTbhZyrz5oToGXbrqCOYiaa49hdPrhBN3cdhXwLD1Y4ZfCqW3t5SYPFEkL1H/nay+6Mc824oG8iYLhfeFkqYjxLCCTSGxPvIRRaM75d6Bugu/znYmVK77Y1FBfnWP5eZVUoDHLscGfQ3cwA7GJZkOn+zx4NyDm4T7AkVDJYBnXMOhfm78tqr6byfN2xGpBAPjtXRR22wuZCpdVXlHrquAZhM1CFsUGZqfQSLRl12rwlYcwcG4b3p0rWUHoFYi30DsZxSC1Q8qdcMu+Fk7QH2S4vkCQ77K3ukSfL8GYjZKj91f0yUrLyM7CANqbj7ikhS7XruXHMBo2g9rR3tHcabmtrYTqwe3DV544QxOnqCNit32WPsCQd1vYWMuWang86Bn/8VdikwEbj+PxxbtsMl8NmiSFFchS0EgTxo/A8WqGlxGfay61LfD8U=","translations":{"en":{"changelog":"### Fixed\n- NC32 compatibility"}},"signatureDigest":"sha512"},{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/6.0.0/analytics-6.0.0.tar.gz","created":"2025-09-18T10:44:00.722911Z","licenses":["agpl"],"lastModified":"2025-09-18T10:44:00.781559Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"pWsHhmh0PA/P/oNlcSXaKL0MUzf1ccnSqboBpIJ7ygnZaQRUxJP+FDXQt8Qon4V0vqT82mCn3nvpX6oQaIBE52TnbPAvvSMSia8oYbsyzwrOxT8nL/g91PIH2Va8zFw3TUXJMKOnmEUGKijFc6+BZwTGLPhmBWl+AH3mvfND1Mxz/+Bvl5Mh5bz9UAoZRXXULB5kzAO1Y1vlYbhel8i85N0Pkke7MrmaI+Oxz5m0VAe3s9yBrbvFcOXqjLiKrNMh/jfcGsgs5lVSBqYLymfCa4BUzhN7ozJmTVn5jZegU/bs27UJH0w4i2MlFbCG2xf1ZO9FZenyIeFkVe22STv+y9L4Sjmy/FyWmW5qz33fUPriepjDMNAyoFcqLdpSZi6WvHUGcTBzJ9IEUT2fD7ZCUoBQKW10XulGNBcpLCY3hrImRRPVvJCHGa54TSPIw04GWRzC7p+RXuYOJ5bU/E5QaUbZzjrHVfB8oSRo9wEQD/ANqeEcbLj6imbkOsGoZDbuX0L6zbyvnKy5bE16kwAMaVYRCv1qjWGNBIP+IdMeHdsjTxEectUczEIB1gR8ykJ17hMQVN1s4bq408UtA+z5IRD+VeErrAMN4zM0MwKRQHThYGdPxRSy/XowM5rzOpRIeJk5rc+qc5Ru0K7V7IsF34nOeNkzcpvxjSXu9ig7c/U=","translations":{"en":{"changelog":"### Added\n- Performance: Cache report data in the browser (using ETag & If-None-Match) #535\n- Warn about unsaved changes before leaving a report\n- OCS endpoint to create reports from csv files via files clients\n\n### Changed\n- Time aggregation on all key figures and not only the last one\n\n### Fixed\n- Hide menu bar and show loading spinner while reports are loading\n- Fix PHP 8.4 deprecation warnings #534 @[robertoschwald](https://github.com/robertoschwald)\n- Date formatting on all table rows (not stopping after empty cells)\n- Fix double report execution after wizard close\n- Correct drilldown aggregation for numeric dimension indices\n- Fix threshold copying when saving report as copy"}},"signatureDigest":"sha512"},{"version":"5.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.8.0/analytics-5.8.0.tar.gz","created":"2025-07-29T17:10:19.310157Z","licenses":["agpl"],"lastModified":"2025-07-29T17:10:19.372035Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"o03PERI9ijGJIbWj+KURGaw6F9ASIn0YvqUTKjxu8omlVSfClgN0lRLavyGVbyUACQuLV//lUMXf2F6ichMGtQCLbhNyl8ieCjTgaoetJiJwv0pmAgC3LvWyx3qDJF2rhBbwdw4Ldt1v9bZlkPVQUkekGwJlAZ5a1NQ184sTc8At83IZC9zj2f9s2MgyuKgUotkzUCqdCQPLSTgNJAWPuExkR4+0a5t1/Ik/ClbYB82Kn4PlSmmVVI4pSOV5P/92yNIrNlYV0N+Gk8AoNUBR3wbxAT2DCqNSpbTo9nhLh1O+oFqkwdCni3eRrwcopiIOag/L0F/iGgVEkXqBYzz7b0tSrUjPaekawdrluzw91YZiWdNHCkHjS9QGw2FJfzj8/1wiIu9SgYR1VqB/JAwiCdYBuyoZIkzM4f/Cw+yGqlL4Un0m7br4VA6zbFhpGHWRrleEh1DfdBXnIEQjAqREVw6oSywNDvK1EvPp2pG7r4TMcoBtXUFQQGSP3ilAesn6lE3exya3126X4VqDPDp+TlnFUHmlVrW8e5fxusE68GHjmPO87o3BofPH3Kxj0CVz9R/DD1OK3IJJ6XLLxcXGFfoC7qGJKsVS/R8r7zlWNXnT5wBmzUqq3pXlx578a7x7dVAyqvdmvmwEKs4irp0DOa48mhhfHXNSNhkmKkEFA8E=","translations":{"en":{"changelog":"### Added\n- Threshold lines in charts using Chart.js annotation plugin\n- Show installed version in navigation bar\n- Inline rename for all navigation items\n- Group sharing for panoramas\n- Smart picker shows panoramas and reports\n\n### Changed\n- Performance tweaks\n- Threshold configuration moved to report menu\n\n### Fixed\n- Localized numbers with comma separators now evaluate correctly in thresholds"}},"signatureDigest":"sha512"},{"version":"5.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.7.1/analytics-5.7.1.tar.gz","created":"2025-07-15T20:49:27.134965Z","licenses":["agpl"],"lastModified":"2025-07-15T20:49:27.193946Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"X1GHa4vj8b8zPM5sMO8aHSyzuRX5VGGh076lTMIijZ0KDL0iiYcbrsOrJtVpUSLL3ffst1jBnpkEsP6W6sIKlEmCl84FryXURc9Ju12/a85HUshdjgTOW4QSn/np9byh87ZS0IjSskAmoQh7O1Kdwse+gr8NKXw+CTmFLvabYyUpACZ7zqS0n2itbSuSs4Q7VsQt3ZhGOZnkc9aybyk7L6cT+mx3Y7rO7sJw5UFy/jI7ixhpn63ssdBKWp7dyXzmIYCYLKzl2IJCTgJ+5jjoniVEoriGm6yZa7IDX0fS25tEgfQH/jcWe8AP+3qk5AkQYljokLQG329m7RNAnFNVHoehkpt4cyrzf5PJsNL1hm8Oe0qhXNQdJChU4BLS6mOC8dDm2dQMHI7xy7D/V7cocRigbTGLdtlzzGTFCYaOUSnJ999PfU/THGDKu/bEhs0C2pJloxkwlTWWQWhQqlg+Vq35Pvc6/WrXfdotf0f55KFPyaUOGqlKLZNwPpNGWJ1tgxPFFCK1sZO+Gu+lTGgw9/f75VUhL1W1UFTOC3/DjVU0hx5oRajUD3jYvfCQG4TFw0+wy/tb80Q8QygNJ4qhATXGuvWLFrdE8A/0hKs3VF0jKKe+ItdK3mwCblLDHTWSPBKZosx9SJa23DNrC/rU7JTA+XP7YjcqImffTzvKpvs=","translations":{"en":{"changelog":"### Fixed\n- Analytics not starting due to not executed migration #514\n- Smart picker not working #513\n- Context Chat issue\n- Favorite reports in subfolders appearing twice"}},"signatureDigest":"sha512"},{"version":"5.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.7.0/analytics-5.7.0.tar.gz","created":"2025-07-11T19:59:59.832442Z","licenses":["agpl"],"lastModified":"2025-07-11T19:59:59.890055Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"lxfU1cLwg50KRX60PY7ceTRsEyO+y+HAPGfAIGZi8vBjfvV/rI6OxwZTYK7Gac+oQSN5bwKM/0hpQoJWI/fg1DvrlyJkHTI1toqTexlLFsg8GOVW+8xgm1lhI26cjL+KGR5SBG9J9vNCC2MLutIEoJt5xJdH7WtrOhIW8uKn3XgtOzCvSps/WMyW6CFSnxshzbi1XnPMqqQZc9Is2cy0dR609OSvn+iYO3U8uFU4CkGEO1zQt4+u5GCChe9yvJx+JGMQvN4g4p1Cqe7N3NPkbZtSN9gPUkQFzpU5EvZLzoG2dzvWW7olWr+PebC+uAaVRB7c+O3VZH6uGBWMmNgRkljP4QCmziVsIVxeyTRJ6gzENnKZTkS+G+eVAiEueUJO4eV82/25vxqRKMEDvPwV0V+Ps8Z9dOcVAaz5Fw+Oi6LKxkIHpyTQPX3YbGQc+JcFVEYitXvlqwyg5eEkt5n7qIB/KnyZqVKj97+ceL5dipv37GjTWeN6acXvSo/9nH6sklj0ULZ8dWWD75ybQovkfQPOHaDqJDB3AI7zBXVgXUnlpEDmB7O42x9bA0knQSSDTwOXnOZLaQuMZGJa7d6Hh6Ic3KV3cAvZLiZ0jL58PBNkr6LMHWOWQkJmkQcrKHMZmmvx/BmszcJm/EUQh3eNhktq3/F4MnBMFpotV0/hKYc=","translations":{"en":{"changelog":"### Added\n- Unified navigation showing panoramas and reports together\n- Collapsible sections for favorites, panoramas and reports\n- Improved CSS styling for multi-level navigation\n- Persist navigation open state\n- Dashboard favorites list now also shows panoramas\n\n### Changed\n- UI cleanup\n- Refreshed modal dialog styling with subtle animations\n- \"New report\" button renamed to a generic \"New\" selector with type options\n- Move share dialog from sidebar to own popup\n- Only one navigation section can be open at a time\n- Favorites are fetched in parallel for improved load times\n- New icons\n- Bigger tooltip hover distance #492\n\n### Fixed\n- Navigation updates instantly when items are created or deleted without reloading\n- Navigation keeps Favorites open and only one other section expands at a time\n- Newly created items open immediately and appear in the correct navigation section"}},"signatureDigest":"sha512"},{"version":"5.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.6.2/analytics-5.6.2.tar.gz","created":"2025-06-10T20:31:32.949752Z","licenses":["agpl"],"lastModified":"2025-06-10T20:31:33.010603Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"dRBvu0uhlHTzxK9YSt0QDzM0Rao4dGumhtaa17DhOX80D+j1djii2LvdxctTTjfm879uVwZiK8dWfC7yDw9pcr+iUogxS/Yx/CgKf3UdAIkHq7TlAXGP+QImffnqnDxraE9XTEjtpTPxFBW1u1WNSZQAyNfdoxwxGgjUUTR79Vpd52I2Xm8cAa1SqIiee8USJ34zJVpX/1Y14GkQgzjA3SXwf7AOBXSK+DMW7DU8LKdZi28wFJUjno33uoeO3hEVvrqARWl0dZuaFH0dkdm61ZPF0kzE/xAd3rBEdnzmRnHN7VRM0l09RSuTFkKdP08vna0hn1vcTUIswo4KoA+PeBW3K0cjo9StPeiH5AQBhbo/1tZnl99WE3y7wEqUnSuezSzSW5s7fWQtKGbI0aWrrN1mv1UAa+L+64y8gZZHiK5Gn5lz90Hrwf3TRX29mA6fBeoFHhtSRYF4e0jcAjHOrAIzYDuI6MUN6VJn8YSBaQ0xCQL8d+uHy65LeQbQ3PP26nCWzo+spY2Dh5xrmx1bigONr4twbaoGEC8aKf/MABiQc0PopwPRlxk5L04V+07bzfjzLEzU0aXJGpMEKGnOa5t/K8tIBc2pKQAIxvD3gr3Qk5mWG1ZsWCVyi6Q4+nTLpzKtqkEIvxjoSIQhU1vyE9GxjrhdGo2Df2fW/asWwaQ=","translations":{"en":{"changelog":"### Fixed\n- Date thresholds now evaluate correctly in tables\n- Reload report after threshold modifications\n- Highlight selected threshold row in sidebar"}},"signatureDigest":"sha512"},{"version":"5.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.6.1/analytics-5.6.1.tar.gz","created":"2025-06-09T18:11:49.816879Z","licenses":["agpl"],"lastModified":"2025-06-09T18:11:49.889131Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"NwbFt3jH+1yhczrnz9I963suAhRZ9WDCIPaHy1P4qNfLANgV4I0CeM8idSfiA7PqO66CXFYyDhVjwUNqCXcddzftsQ32HylSda/bmSNPo4s3bxaz/tBOO0LWhEFMmpDF5Lfbd/KoDEsCssCU0tuLlxRs+zhmuculHTYhXPv2N7j2HzN6ihs/f00yXnhyq6rFSNir3kspx4ZNuN5S7lqV/6DF+m3wlK5a/JaLLZ5AtNHUqb3DMmZflBJkdsO8wvYnBZyh/DVZjsg7J2OmSJ6ZqddY2yHif0y7523DrN9hZ3zGMIuss80P5Oai0dkLvx81hfsUM8yLAfHthaebECewRZYtbjshSgYHIPKaIQT8/hzgOGLttmqjmjS79iCasvbkpGMssIS7DMjW4QBapTilIngUzoxFZBioWfQbcBWAaoX1AQRSonZxC5TxSSWETFhIDUwxLSuIaM746AKOQlZfZxBUqUaSehVb2hwLbUpA6wNJgKDf/sDBHsSc/AQEzwRQhX3gTr7xZFuEJkeudKhuuPOeaXneeBCK7FmZ2ueqiBBdoumoRYc+L6sDW2vkUFVMRABipy10e0zZJWCGtJm/ZtleMrXOT7QsOhd/e3EQEgp1cxtswIc657OCXMu/TyTm2Zy6xY6hwwOYx7SvUr5yAY/PICjHSD5G7fOTHb+y+1w=","translations":{"en":{"changelog":"### Fixed\n- Threshold validation for numbers with thousands separator"}},"signatureDigest":"sha512"},{"version":"5.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.6.0/analytics-5.6.0.tar.gz","created":"2025-06-09T12:27:37.690907Z","licenses":["agpl"],"lastModified":"2025-06-09T12:27:37.759738Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"nJ0kEUgEJuBBNmFYkE3PDQ/pIo6PAyf4AALvFRGMOvGj95xhnzyJX9J9IzjbitEGU8CaQVoIcGTq5QZ4NXnlbmkE4ZtZ3omiK0af8yvlDsMdOJ402sx1X3L0QgFSLbFI1DZzG963YQABStjOxIMYpYBMBj+8P+xV9MSIzqaml9wELJcjNoHamqaN9p2YEIh7++sEKCzyPsZjK/c+4KTKcF7+wC7l4GR23TAo3NAsRV8JRki8YBocDu79bk0EYlFvprKDfQ+ei0VL98jnbZhVzKqP53O1t5gHcREfVPiL6b0ZgNBY4kxwAqW6FhLJq9dQSFJW4kuqEPtdB5G5yDKjzctLnykQoRfi/DqQcdexAR28VxNSjX0sMxi5SD3DzvhFNHXbV5Ce9iXhs6rKJ4SWFVW1eQxdOWpVpedlnAWD/wY0e5AMAk9oacwnGxHFIjuR+2eIYvog9ErPVhIzH/8JDF7/yqd3/sgWdy4Y4dTk+IenrYaYKZgCFMqPMJYGG7qKJhbpI5yinueHMbQfBsC30VCpQPCPwgDNoaQsYuPG21yP6yRdocq8CvQkPWxaRruSgt/zoEl/I/3sqYm3jswCTRxp2TeoVUCwixCTurcsxEaefNEtJ30u5Zqr2D1ddAz+/9MBt02ZtnlqhWjlBjnq5PI2wYCjdlsWoKAzzB0YuC0=","translations":{"en":{"changelog":"### Added\n- Ordering of thresholds (validation sequence) #479\n- Enable editing of existing thresholds #477\n- Add legend selection for reports in panoramas #482\n- Add timeSeries data model for e.g. Health data #483\n- Add active option indicators in report menu #485\n- Various unit tests\n\n### Changed\n- Allow thresholds on any column #474\n- **Attention**: existing thresholds are affected. See change [here](https://github.com/Rello/analytics/pull/474) for details\n- API v4 for will add %currentDate% as Y-m-d - see wiki\n- Change HTML grabber datasource to curl\n- Highlight selected report in panorama modal #484\n\n### Fixed\n- legend \"undefined\" in doughnut chart"}},"signatureDigest":"sha512"},{"version":"5.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.5.0/analytics-5.5.0.tar.gz","created":"2025-05-26T17:43:18.432213Z","licenses":["agpl"],"lastModified":"2025-05-26T17:43:18.494411Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"SPicgpTSkd0bPZFKdz7YrxrMpsBpNWiYp4tXjuASfCjb9i4yDHsl5Z6FQj1lyCI4fh2QfJAtjOEY5P4l4QGhORAuNkfgy3Rg1sjKAiiVhnugdfbdyb4Yeb9o9PVLWGRvtYAaHKrV1GZxUEsi4HNWDU5uCypS/QrThwA7HV/VViPySaBBDSO+TV9xddbj3nBs1iif9kUVeOGSawNinPo1wdgBPMcNGIjF6CmNbktkqN46w4nn/IiFWCQu53Vy8SiKoeiRIm5OjKqW4nu6hPHUZKBYNi+NSUdmA3EYuvusqaAPYrbKVQ4Vbt6+aE7glE803B1gPA9bciJ3uN5/7vLkByPMaoi0B8w7DI0R5pLEWCuhjvIjhzAtOoCJkHqup1dDpV64qHllW6X8lfN9KJcdRYf8ZjsT+CNzMkGYSxS6yLigqswrdEQQFg0AWvvxK4rFY0gMGBfDl9i65QTq8WPu1ALB6TYOsqaIkmSU5+u/UCeeu9bwMfGZTyvuYdK0AfzW5X6gzoA8m7wc3ScJv3YCAk4h0Kjd8xQbQ4G3ruVkqm8mq0rAHwiP2wciYQjGTfdjMBJlyoHCbu0EVOKg4y8vLFHIsJmCpRET7Mwa9l5VYIHrOLU4O8Mq3KglrKaXRa7EjHTU2e4ttzQPgn/G1aytmXnmTtMZPXtaJr3JVOyCwMM=","translations":{"en":{"changelog":"### Added\n- dynamic filter for quarters (e.g. %last quarter%)\n- Add Top N +others grouping #460\n- Add time grouping feature #464\n- Show all button in chart legend #473\n- Support multiple rows in filter dialog #472\n\n### Changed\n- JSON data source: remove column limit\n- Refactor filter dialog to use Notification framework #452\n- Refactor drilldown dialog to use Notification framework #462\n- Limit filter removal action to icon #470\n\n### Fixed\n- fix warning for importing less than 3 columns\n- new Panorama page button not working\n- Filter not working when text has \",\" #441\n- Adjust chart height when table hidden #445d\n- Shared Panorama permission handling #428\n- Print layout #302\n- Activities not shown correctly"}},"signatureDigest":"sha512"},{"version":"5.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.4.0/analytics-5.4.0.tar.gz","created":"2025-04-29T13:16:01.104796Z","licenses":["agpl"],"lastModified":"2025-04-29T13:16:01.159097Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"jSqoYH/8xIcz+Wdzf94HHLSbu6WR2xmq1NVMmPe1gqO6XBgquX5ah7MYZ1v+pgEUj+jQjIoSXnLwg8xCom0t4pMHzI/Kea5sV9QdmAq9rTT5YzOd/rn9maCJrVS84cYraNMvaj6X81j3BQRXbWMp77GeQcP30qnfQK2Z48Dk7YXsNY00ksUQ+Q5bSJOmeyndghn6HA2fm0cMZhUAqe4rCJ/btqNK5/mQwy+YRR2+GKjFQ2LvbbwwD0/oTWEFROFtURhoP1GqJJMyslNuuqBVI3d4dL9P2D5iHHlvadPNTfspMVCn6yS4MwaCLQDL7OhXDNZmqooRqg+B97Gn6kD6Sz+Q7rpA1dU1yobIGoTDCiBrdE8YHlms4pUUOVf6ZbH2SrqXoMRTKICZwgx9m645DLI92SHHuG/d4LjrtKRBWvQFTyUgN8A0gdK9Jo72hyT8K0GmWB+kJk+a8Izag0KPEUsVkQJDCGrII19Zqh4VOpX+in0A+5W3sBgjYF0X0bdnWIiULAS3UgiMJ3+Q0fJYnEqgOFkJcbcXtfrFk5+Wp4z1bj5kCBw5JyNLr2isai8ynhNCpzFL+6nK2bZSFEj2kK+BlNY2AH9BnX9R9XiiVDcGZdp1w9yRqM3pwcV3QSmKrDkk406+cmlF+Bm4nT4qlZ0VMCJtKkSw9C2CfD0LPJY=","translations":{"en":{"changelog":"### Added\n- funnel chart type\n- option to sort by any column\n\n### Changed\n- Chart.js  v4.4.9\n\n### Fixed\n- incorrect aggregation of Nextcloud Table data\n- dynamic font color in colored input fields\n- aggregated values not shown correctly\n- Undefined array key \"operation\" FlowOperation #440"}},"signatureDigest":"sha512"},{"version":"5.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.3.0/analytics-5.3.0.tar.gz","created":"2025-03-20T21:26:46.035951Z","licenses":["agpl"],"lastModified":"2025-03-20T21:26:46.096970Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"UaFoa4+tMr1cieFQHePwnXtXY+zmqX0kS8JuOX3Yj5M9+5ERnEJKCgjz8hM0DLtQcYvt3m4KJxQ++1k9rxrTzIMksO/1yOm8jLoUAtnxxCRF3PFszuP7aP4Vlm/RaR/CFv8jWX74IST8iRdhb7ZNfHpnpqAEy5He125YkFLAtDWZOQkJFMlZ1N9dAxcknyP7a13TGA08be5WM/8QDJmtjc0mty5i2yCwT40Z9vEKdfW5rSOQF6civpNpAD9btx+50mbXYufTxQdYnHmeu+lE0VoPJr88sqh8KsRR8Mzn8eJTf2xB+iHLiomjxIFq+vkhxf5Cy2T8k0ZYRsMFcsqvYWwlayWJlLxfN7jbOOZ0ourTeGH1tWOdkw1G3jQ2h0bmyIQrCsOGIGcWMpOw4WxOstqfcnaD/HGbrTGJ/Zc3jp/5R2qNJDkXcBAxgRWMXBrAmcjkV4vGvCaV6dfIrkdAERT6maiKObkkaj4PflGs2pSRTIVdf9HqyWzZCrZGP8w8E/c28QxRPBWNGoiV+J4Y+t66BXbDnM4u/ZLtT/6zGGBhs4EFFAn/um4A3nNBSH9oUAq3G5XZ4CGRuczNuv0ZixjG7Gl8THx8S8GlcEG5YRDSEJKZ6SIUgZc4uwHU8v50/YFkA7JNJLFPn3VbQwGNVnUrLQoWKm9P85O1530sBY0=","translations":{"en":{"changelog":"### Added\n- Beta: Compact visualization for table (for usage in panorama)\n\n### Fixed\n- reading the third level in a json array #434\n- undefined array key 2 at DataloadService.php#494 #433\n- panorama pdf export layout\n- aggregate data also without value column"}},"signatureDigest":"sha512"},{"version":"5.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.2.4/analytics-5.2.4.tar.gz","created":"2025-01-20T22:28:32.986990Z","licenses":["agpl"],"lastModified":"2025-01-20T22:28:33.040915Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rjRbpv71ZApODVeBIzWyO5bMUCru4vIrc0+BufbRiQMBFh+gIYqT3QD5pw1Y5tUjBN0qLufssUR9TC8+qDozGL4TnX0YlR/XxsE9KHVEp2pKJlyb5g7O8RnVQ+ZWblo4LIQcsyYKbcLnb9SWECFfT9yoYcdWS+9foPV3uYKfQ2gfN1t9Jcomb6ex7xbTEkU2bi5Y4ziZS+eukgSBZWBqUKu/kdvVjg+Cg4ufDdveVa0LiCsWlREm0bf7nu9zM2I+kayUN3qmw3iu7TgrwC8Ub455zKGqvoCzS5myYg9ENDuZcxPBxt95c2FxF92+STeK4PkpPJIP6kSPAtbEEMajKZO4zxUqM64bXFzkGvypPPcaPiaQgEcXY/Q0EqrI9LAtCYvU+Je0n3MQRWUFlCm3ZV+g2FVM7T9hsOcPQDTsjCpyTjhVHXnVoYsOQOZ/Rh1R6jqf3G5DIEswzp0A/LRn4TXulm0SSte7mL3Q8w8HPuXX93RmdkSAUE4oGD+wvz/BXCumzHJuLgixOqqF150rBL4DV9PE1j2c58d/tmu4Ml6VY/erI77IKv9/q1zJ7xqJ8WQaHXhwpYPnA4v96VwENKzOFMeEUHt8FJ7tisn2B4EP/J9/CHozB23fzY61DVP/H/1ahfuZ7AS8eKoVEC8ZSlhB/N/PgFLHL168S1mEkFc=","translations":{"en":{"changelog":"### Fixed\n- dark mode issues\n- align border in filter dialog\n- indicate more values (...) in filter dialog\n- catch sting column in tables data source\n- load only required data source details in sidebar"}},"signatureDigest":"sha512"},{"version":"5.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.2.3/analytics-5.2.3.tar.gz","created":"2025-01-14T15:03:58.000289Z","licenses":["agpl"],"lastModified":"2025-01-14T15:03:58.057077Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"aeis5+0tON+UbeSIc7xxzRyx3oC918AppKysBbfn5dETjSyOiQq8Jlolhduhg1RomnYu/9avhn6RErt8JMV+D1H+BSbLU/CM+nVBlC/SKidxPaSpIxIlHiZJDFTdzbYutWQnY40YvKYBkpv6E87N/ZYO3wUry1FhdovQsnRKl7eSrLQYiCtHxDbF0vmt01V1KXzhkXTgQQ1DI1x0/mwYSHPKKR+pAeKS3JUNJpTo3y2j9chYITHt/foQPd8DqtJhXsioeGdETa4xBstl142ofaIzQp75hHcdXs9xTmEMbCd22wYhPCQq1CoYOBywKsTRVSZ0Sq29MRHixFvha/MM4bYQhHS4Wbm6IDd9HDoHWH1H6tJIV3YEykU4jYX10HsRP5YB/PozQNV6/d6e178uidNuqrhSTuKcLFYMAGP09WZs95dQaqU3Q9sHRlfeuzDEQUg4KvJcN/xml2guNboZE5Q77r1UC13dV8FRnfhNsyj62QPhQhIB5+8qNcyppGE+A9fjKI8moR8UGc3E/RuI9TMskzB+CbsFvsWSIIDijgRyu+XvA+k/QCM8EMo94cUuVXiiITsZX8jUR/FPmhyDHG+ZcWuBl71GUIJI1CxBqaqCgWzotPXFVkGEWBLfQfv/I6AKeUsoF+tjsoPIOCbLAC5U7wJ/tUZMwLoBY9VVKeU=","translations":{"en":{"changelog":"### Added\n- KPI widget for Panorama #427\n\n### Fixed\n- calculated columns: correct percentage formula in total row\n- report copy is not taking over all properties\n- empty columns (e.g. manual input) need to be handled as null during database update"}},"signatureDigest":"sha512"},{"version":"5.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.2.2/analytics-5.2.2.tar.gz","created":"2025-01-05T18:04:27.983650Z","licenses":["agpl"],"lastModified":"2025-01-05T18:04:28.026574Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"OpeB7P6Bf01x8vkrKxaE3Iflbp/9lYYXJTcin2ANveTlrVKtJc5SN/GKUSTOUWBngzxw5jzS6gMJawuzryZbZdqzUzpYoePL7ujBXp5DtU0Vc3qZgSjnbiU54FLodzAIItDiNHZ8w7yUlNLBNYoNMW3Y08fqRkzbO3E4KdS2F5z74j8qXXD1SPHmCo6n6VQKd/siUXPeL5W88PMmjkjGAOGncMSaMz5rMcfyVu/1d2SMw+aiybxwkyUlDoTKUK7y98N3frAf2mAGOew3fWuxQ6nadfttAw1e78ffyr+NG+Mo/xuGH5JGNyPWEfp0eiLq8mHHR7Gs4XAw55gs2+s6K0fDHOt078ze/6GtYOvwlWeHpVrE/n1YWradxfIogdVdMrffEetHa26PzBN5IYDKSiQ/RVsPcDvmsXluOtUMFvyZp9kiWCSxExO2j/9T0sGSpwrM9Qnvi5vRTsQmTy0NFyrAY7PdWpUCY/JZB4xrfrgXhGSxX9tAUUGOakggSrqBxiXxAxdVnHuF3cCdPPQQL1x9zE7/4UxleVtGrpy56oi7YvR/anXyMF4GztDgY37QQS4SSHEKdtk6YF2k46mWE9eMbX0Z8ejT300HW9+A8/Mwgblyfz7l5rWQOiK7WeWK8E/zvhHMJ+JFjTpVUBOyQpAEUn5NGJKaJ9duJjQ8eK4=","translations":{"en":{"changelog":"### Added\n- GitHub: personal access token to avoid rate limit\n\n### Fixed\n- report not displayed in panorama\n- header missing in github report\n- handling github rate limit error"}},"signatureDigest":"sha512"},{"version":"5.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.2.1/analytics-5.2.1.tar.gz","created":"2025-01-03T20:10:34.182406Z","licenses":["agpl"],"lastModified":"2025-01-03T20:10:34.250502Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"UPPWml9kYeacn4RpxciTirobv/5PvjUYmELbMuc8ggXtCWz4IZrFq9CFNAAz8CgNOfY3qndyFAhu5Zum7y/UMWXY6k7FqN3x48JP21uIL2y5XPDC5TJ6MfSsJPc6Pu4UGaWMK/5OeP13tM7alb5+WYjSrQw+95HLpIGm2gpwCo2zneaKyd4MsHrRpU62pbA0wYAVUu+Ec2BZVsmdQq0FIVKDxDQmObOCIMqVoW5m+vwnhw1E9h70JLOKVknfDp0Wrx337D+ZXtlMDtyfdwBRJSwt9iJRfh1j26dgISRugHN9oB6t+iH1+Ppuu4YHNnr84zsS7c4uDsrf2XZjIiJkdAIivXx6HJL82GV+7gojtqmYg3c64NsvGD4vS+pQy/+qMo+Hmi7cZw0tnwA+yxyciBVRMTdHc6/V1Y3QZ10QtQQI6ST4M1oaWbZyh6q64mSOWfMINcnsj4lEeQmXcWTJSuAZ6EjKmN5IZUrpiIzJt2r9cofauXtjQN0mLsOs/VE1I5nncDbXTbrLW7taH5oSs4UQDvzRylV9Cf/K77aM0AwtipHcrnEKRlDuUWYwzQivTIHLDPz35oct+uql7UPc9Q2wdSf8ClbXdJKI4zKwJGcksDTO3xShE93CtffqaC59R4ozIFhgFUTck7GWdD0b6wy0BRA+olsIBlhJ/FMBRPE=","translations":{"en":{"changelog":"### Added\n- GitHub: report on release assets\n\n### Fixed\n- handling of report options\n- import data from file\n- fix links from integrations to reports"}},"signatureDigest":"sha512"},{"version":"5.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.2.0/analytics-5.2.0.tar.gz","created":"2024-12-08T21:04:51.926117Z","licenses":["agpl"],"lastModified":"2024-12-08T21:04:51.973544Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"UKHi5j9MLmcjJE+XRnmk3iTU4OuepZcmNRcTfReX6DMnsBrW6RaaM4DVwRcihKdxdOx7ExWVO2GHw7ehhrPk5DfdSmPgTsrNH52fIANgDsceuaAIdkfXyqkzmqiaCS0e63fNXpjtUShLqkadMH+GT7jwhvyaeY+PGczuaJlhqkgnpp1bKsc2J2wwKji1t/B5fvzbDnb8HOT9M0kTgyOMY0iv29ZOd6JXinih8AgmDYaRJiCbKYvC0k8oHlhX6cXEPNg8Ti9tcqIoc0Icvjf9QfwE8OEAP2NSRfOon8MjhJtthE2yj9Kl0Ex+5RKP9dFmQYTEVurOOrtu3ggS+Ouu5VVJuXSl5ZNWPxEcUKtMmA7du9F1MiPQsW41PYaUOhR6qjjtCcxLy8M4bBB99NBRbfSv/kCuHGmyxsg8YgsYLfZyLNsWRC9Uk8l+rDnbdiQ152HdYlb/tustEgfrLROtqih74zA99xcQuQZ+ly25Tp0dd+5tewm3HwU7MVIgePMwOA7mFmhbQK8uzlPK/EjughI0u1hFkTWi3UTKGzFT+iMLIKl+EDEq6BvWJ7hTxGNam6uJHy4YVN0uN9M1zpiR+PsR4aQJqxUmmimNL0GobWI/KfdWrz7b7Sl2CS0+ZEhymKiRtTKdk+CfoO+483nsoTeOIkmZ0Hd/OPXhigsh6/w=","translations":{"en":{"changelog":"### Added\n- Integration to Share Review app\n- GitHub: report on releases, issues and pull requests\n\n### Changed\n- table options: disable locales formatting for content #423\n- NC 29 required due to app config dependency\n\n### Fixed\n- change chart options\n- copy data load not working"}},"signatureDigest":"sha512"},{"version":"5.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.1.0/analytics-5.1.0.tar.gz","created":"2024-11-26T20:55:03.557546Z","licenses":["agpl"],"lastModified":"2024-11-26T20:55:03.688305Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"e9R9Hbcemb3ni/1uCrhyWVG4PnLh+vDT0xAAhOQmUjxHtIX9Q+BS3QvVNx2VCQFWnIkOApBrtBhV7dbUGbeVFbysF/cQ/9/kcEqwVmjoOha7ooDm4kGLsQyoendeuuyKP3p6FUcg6AM9GKeodKIgIHLzWvlnKQGmm5kqT9J7GYrORUqZHbESTypnGSkQERzW7xwTr0LTVpkyCIpS3tKceZnM4VdNUzhNAdweVTUejRV53I/3awzKF/6fWIWcyaKgiPEO2uaqWqxMFIYSx3isNzy9eVjEAplwVX+nFowKtathU0JirSA+Jc462iJO7opA4c9rXcGbSOv0LhfNS7NuJcutAxrAS+CCFJlcfgNIR/SAloPnH6WXuBk4fjZWyU85DIOTQGzi+e9/kElA6//6rr4M4OgeCyBwJ1VVUcTjn+qNDdbWdDO43EmHxWYJrbdehsC5FhJ8/18Wvy7lYeG0iiSm7oDK4uY6jFL7BOazpC/JzQiGM+BRAv3RjwPvezpRkuCiRYOmeEW4Y7ZTNor/jIHQSMQ0kMHAt3TbnOH7REBn7lpAXvV++VDhg/qK6KkRNI9mQz7V3828UgzFck3GxlIge10up8DG4ZQGmLqpNkMOhoagAd97EEzjTgrPUs3VS8yiSQ/1YY0wHmq7igIFdHmR7kuSf/OETDpiwtivffA=","translations":{"en":{"changelog":"### Added\n- disable single data sources globally #415\n- more Panorama layouts\n\n### Changed\n- PhpSpreadsheet 3.4.0\n- local spreadsheet: connected cells\n- header gradient\n\n### Fixed\n- wrong info link in data load screen\n- own data options not working #413\n- table: number formatting and string alignment\n- pdf export header"}},"signatureDigest":"sha512"},{"version":"5.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.0.1/analytics-5.0.1.tar.gz","created":"2024-09-16T09:25:18.871586Z","licenses":["agpl"],"lastModified":"2024-09-16T09:25:18.914355Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"JpkoVKEU8jThsv4wY6VmH8jZjDvbcMmKlrTJ0wBAgp6oE45vNPJEEMLuvBzsQx6y1m3B7fMOW4AnMhii8QyrArzULnNZ6IzDbaSf4x6zIRes66yTle7spLpW43QEQmavXsw/f+CfYEM9oGd+rk3ASvZDq2sMSGr3B5QWbD+P0bzyNb9loPcx6z4ln1Pde/BG/SfmnKQ5Eyr4EXR6bfPCF5PgFVJbBQb7R51Xpo4JRDZULrHI+owunrV+TylmqEikp+ZO6Si6zeLyQL0ZLS+NyUadWVyB51hOt9BYpMe/oYf+mbVIBI2E/GIvTy90wJNLbDPlntkrGRUVRwIILhY6Wg/gUuKRTXVDR1B+nUex26hyfyLS6twQ3ZzG7ssxOlJ3qom9cl9pXwas0Uxtz7/v+UNK/lHHjdw3KN9xyqWttRRtIFvsdVMvzp1InE/YoGpoC5ZgTgWOZ/JGxsg/U166uePqmmqo3FgODZC5zek9RFU9yMC/DcYLKkQ8eHLGcK4Lns4dEIj8a8V/Q1dieMyKSO/irmpUCzaKdmA0W/zd7pINOpl08daXHKQ6KGHZum2cyJZ7srzUV/CkRxqNSlrq57YRSvv2JUtkIYPAFXfFDc80irRK7girr+juYVtaV1ivfjGZhZ9Zmxetv4HGtakhQ3bttBhVwFaAiZh/jJZb0Xc=","translations":{"en":{"changelog":"### Fixed\n- Database migration issue"}},"signatureDigest":"sha512"},{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/5.0.0/analytics-5.0.0.tar.gz","created":"2024-09-15T19:58:07.114722Z","licenses":["agpl"],"lastModified":"2024-09-15T19:58:07.159752Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"iLkhTafLr49xpsdEZe1xPeCrYz6+R/nXy71fBV3MJ6QPZXI4874DnaQI65HfP5EFiEohjO/eJAP3blpZ+vi4Nen9xoy4Cqy+FUnsgHT5PHJlerqLwwNCE/4J8jQNZsD2sBgim+gbzq5nk0yiiz7EtZ+E68/fXKEWhBau+JOvqwqsNOlA+i34Drm3MGr9BeoVUi+NTgbWo97ZrufqbJwfQnJFJ1WHOPEl2pfZEl1C1AVpkm2epO+olK4OcTXd6/k9cWeS86EbcpEI0Bce5BhyT8l5G9UUjxDyipLZQh2tX8noAhmp5KdT2rHh+pHlq/q3Nrmt7D1oDyPD2Hi4FImr9Gw9dZpniw3+v1t67l6CWLsaAjVyPwXDt5mhDvdOtluwD/2iCn5d8F3uRf2WNx35BWjXPI2obbmUR/zgeEY7Zb8kmcyUiGATd79LAmLbBP9Qzg/AKoaiC7fQCI9iCoYi28yQtlwb38JcrptLgAt2O1KAdYsY89JotrPNo+V2V1TmCYdGTQpXzJAht08oZn4+4i9k37LLQTXtwaEVmj8gCBL9bRsW1mafRhmxawom4n083AOdF/RTrGpS0BwmS/GdvPQrqv/Zu1KjrU52vl6bZRaCDRwezjxOB/KeqzZOovsUDoOYNWgpnI5FSMqZ49Ok0dpcJ+N3M8SX1lSiPpCXKxM=","translations":{"en":{"changelog":"### Added\n- AI Assistant - Context Chat integration #403\n- Panoramas - multi page dashboards\n- data source: Local JSON\n- full screen presentation mode\n\n### Changed\n- Analytics branding\n- Chart.js v4.4.3\n- moment.js v2.30.1\n- NC30 compatibility\n- rework of sharing backend\n- no activities for added data anymore\n- excel data source: handling of time and % values\n- clean URLs without #\n\n### Fixed\n- excel data source: remove all-null columns\n- code style\n- dark mode problems #400\n- wrong decimal handling for certain numbers #397\n- navigation css\n- columns changeable in report type \"stored data\" #406\n- sidebar chart options not applied on immediately after update"}},"signatureDigest":"sha512"},{"version":"4.9.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.9.4/analytics-4.9.4.tar.gz","created":"2023-06-17T21:28:25.456173Z","licenses":["agpl"],"lastModified":"2023-06-17T21:28:25.653594Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"RyNbhhwVNcG20YpTEFyEQEzHYrvNgVILaUHtQEgwHOerWtRVBkxGiMt+3O6gDPUuof8JJ6TF8oYE64IXEPIHQ9K7fe4AKvakeRuH/X04H6Dvq3C6H+FyhMbOnzyiauO9VCT3LlQYw6/D+LeUWBMg3WzN9Mm5mBs/9Qn8asgOGMjc3KLnLCsedoGIGC5FC+uOUcC2KxlAfxAp/cbzeojOelsZN/J1nUx82D+lyBV3Ur2XGXJqLEfyaLtCVtQeVEJEJsy1B8/Kx+h0iZCjadhKgjFChHIV+Pzh2HTinHwgCCfZhW6pJ235FqVpx2Mcg9rCDCgO3WGeq85XkRbCBLIvQeIqmgCFQjOt2snK5uaPompGFkeFvqVyxcNQEyV+zBCq6w3K+I1ODN7jT6dPKFaN6NEvOzaEdcb5dF0RBr1KzUawYv1/Oe/3VWsMq3cwuk4x0UIDa6vivv7mZDN414mHqMxJVRfqnU9nsaZZ7UGW9F6OJNuQOFKUpiITvZ7wARGTDShFdKsOHmyE8ZYmrmiyxVvNOtCMKNX8MOD/eC12pNN4KGg5zaUTPPK807/WqUDuEuWOUyEuBO8/3SsaAgWpD1cmmsjIBfUxdKDQ89lw5oBGCwXr3KCegaDuSFozI3TEnQY5CoIetn/CsFrg/8Nw5Ke/BeOna2XCeLXi31ORCXY=","translations":{"en":{"changelog":"### Fixed\n- NC 27 Uncaught (in promise) TypeError: OC.Apps is undefined #356\n- Error in journal after upgrade Nextcloud to 24.0.12 #355\n- Settings navigation not working"}},"signatureDigest":"sha512"},{"version":"4.9.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.9.3/analytics-4.9.3.tar.gz","created":"2023-05-26T11:15:02.142855Z","licenses":["agpl"],"lastModified":"2023-05-26T11:15:02.280337Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"sbpsx2FjJseGDB6P6p3hAvCHUrlYhbFFkw5cws0rULb3xqmUQEzq3p6jnHlD1GEVPvXb7zCY183Il8qWRJrMSr/+6X3pulg9rJSqYm7M9qU1XNZWsDvBYkxp7iWY5qpGtReF2PqgeRsLhdE3nJOueX5QrC64GbCvO/0/0Yi0ioI8FAwG9EnqufgH6JpBt+EeatTW0Zq6mWITFQS5fCtSR0xrJ+Ch/jWfolw4DkfM0srv8Yn4MUMDhcoKosHUWKLMw4/VkYoBv6xqU+GU//IW6R6ZOsTydJpJLtgtCFGn9FVcJe8rz5pNDK+qA7dqYRHn3/GoXnmTaNYIR/HHoyl+NJK42yC/6jET2v6Sr4kKfvpco5JiuXCm3XZN59AFtbj+3O1KiICGmIz0qYxBDYqqHN8excNmPTPXdPKqatfJ17xM8GAcs2HIML1z2ewT6Dyp54RTLPzC8rnQ+vqK3KJqtYdPXYDyEZ1VMWx/a30W3i/RR5U/QxNAUYLjmNMvCFVBIOcz0Gk80Ut1yHdcMhnes0Hj64kqnngfaMMwwuK+ixKNTCQgBpcsHye/J9eQjQW4M+s4V7C79RkV9P3twMEZiXwGx3rXx2hKhJNqGFHVnkujSjUCithiQGWEAkdZb91qmUx6TN+/0z3W2ymNSGjGGUKN1P1SiSEcUQxMrCq+ink=","translations":{"en":{"changelog":"### Fixed\n- Sharing reports not possible any more #354\n-"}},"signatureDigest":"sha512"},{"version":"4.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.9.2/analytics-4.9.2.tar.gz","created":"2023-05-26T06:16:02.409628Z","licenses":["agpl"],"lastModified":"2023-05-26T06:16:02.502668Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"L2JRa2tagrJ6iU0IhsTlwYTH+72wPmSJWJUp5qaZZlPqZbyTV4AUALTr3+wf8wNEXuX+itLGhBjPVReuhXn/jhcAo8YLzi4Wgc2dhqHKMq+CKJkr16sm82DdYBtyYBjpn8TrIU+nv38e6PDNYmifWM3wvtKMCpycu1u+MC2jtcc1Sqt0NHolr93AtTU5bItgHIXDm0LZ4pUbABN6YXiTX/QLamZ98NxjpjX2MfpG9//3Wqlr8hTjlMlpp7EoCxHjnSoYX3esPlly3GCiJvxkBwysAFufYgKqDEQsCiMvwa7ziVavRoLT25ADF6bm6DQd9K2j7k+aiGNVQK3PlOMQrLnr9ogcmb/Dm5k9mXS8cpm85Q3b70G0sjha/Pz1nxDT3Gjfrgkwt93pqpjxxs4uty1ECac4Tpa5Zg/wnuFFNxtqXy4CCvvvNV9uBds42qTF5dee6DtmfCejZMuZC4j1PFdLAJTwPauc6hSuaXhgvhlR+2+zzd9lKGsUAFSSm19KBubSrRpR8zojliDfx/AFtOMZXTvrMS8uIiyw6bqQxZbnNtDsuQNUX2vyyYYApjHyCE3QtQyY4kzrt2VuX4cbB6tx8NPCo64FThno93nGH2p62NVZNcdRmYpVrcd/4lv8JOvfHoYOH/zIqozVNnXCNdJkhyHkwSR3MMXY3YqSb90=","translations":{"en":{"changelog":"### Fixed\n- Sharing reports not possible any more #354"}},"signatureDigest":"sha512"},{"version":"4.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.0.0 <8.4.0","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.9.1/analytics-4.9.1.tar.gz","created":"2023-05-17T18:17:27.885225Z","licenses":["agpl"],"lastModified":"2023-05-17T18:17:28.022897Z","isNightly":false,"rawPhpVersionSpec":">=7.0 <=8.3","rawPlatformVersionSpec":">=20 <=99","signature":"rRkGO/q30Pm5o1gDZrn6E3nsvsSvffHRYCyNxxxN6exh0Tyzpnh7IiAr6LIN66+isDoTTMp/+dY1o6+S2bIh4WK0mpb5X55RThlnfRhjDJ9DNIN8dadXxXB5vJbP9EAVyd9QA3oVghfjawJmdg4N+2w1mqOpeBnBKcJ7zkf1544Wp+7DLOmXslpBDEd8XJHgEvUyoS8QK5oWgilcpCKHCaPlOyiFJr2db69RH2xEUFx5OWVM47lz/NQ0HkX6IUzGP93qulRwO1vbQwyznUJWMkAyRQRXqD2vs8mBs9/xVezxOGc2el84PGFTgFaZj2GECtuN0JIcYoBLRxD/ZK8WPCew/2mpHQxSGwb3AyekB7QJPt+vWGKuFabxhVF+5reeYSM22rbE5TE+ThfYnFfUkv8HhuYeWl2ahXai26N4MFozlVIqBoKGS9OFkT/Db66nTzku/eDcylzXIif/OJnsH0QsneeSltBbMEP1SWnl88I/f8nqe0LuYNbDe9qBG6JeFw06H/ByrKeVHk/ad9qeLfsI4ZcSah/7NUiYOzWLIb+Wa4oTC8+2hmeyL4+da2fICMgjKymUlP+1JMBTSpmOTapS/yqf6vtLBzyQJebHikq85hyDPBtLS2UEjbNVWonN7O0cj5JK65CFwn6MpetdMGCb8lxfxJbUSq+jw+HqySo=","translations":{"en":{"changelog":"### Fixed\n- Whats-new popup"}},"signatureDigest":"sha512"},{"version":"4.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.0.0 <8.4.0","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.9.0/analytics-4.9.0.tar.gz","created":"2023-05-15T20:28:44.998931Z","licenses":["agpl"],"lastModified":"2023-05-15T20:28:45.047957Z","isNightly":false,"rawPhpVersionSpec":">=7.0 <=8.3","rawPlatformVersionSpec":">=20 <=99","signature":"I8Q0cezNV/tytsDrpAhxbIeTKvfE9mo8NuNh+0c/TjA2BENT2ebKbQtUkzaY2krs9GeGv7mSOFgQEM+mXYu2ImViiz/G6USnY7UpYEk9OhGfljOlhWHNw5zCEFVe/JAaUjaaQDtDKgS59pRU8immVV8KxHyXiq5LK4zCYTWsMhBYGsPgQLOCagUKFFi60jwH71C2QOA+oUwntQ4RPjT6fBW3WPgnGFDw/sHA3T7p3DFQTPfmj6n02XimdxdKvS9q/UfzWtiFTvBZpXBywwdP3wFkDY4cWur64+QK7cyeKQwqiic285y+GWq4fu4x8t17z8hPT8XfKDJWWjjVTf+ss8iFkctkOgeV6BTWbVMJL6WNz1iZwKn3P/PNyT0ItJu360cu4YHmRs2xIoY1pQecFIePZAwoYitARQMD8yK5wyawQgrhtNbzfk/MXK3W5cnSA3Lc3JtJ618ueC/biG+EqwSl6u0q249EJ/XwSUHHcZSmJuI1p+LYx0sA1IC7XOq4wpt8jllyo2/RCHs7Vw7sHjPjoTmJ9UxLaz7574eGJQ2cSupL9mmNkQIxNQZuqIU0QCLb4aD7cWCeCllVIwPh9SbsbStSOnt7HGjUDdyyZVosH49JKlYos4TPKsgrtZv+HlfDrtc0Ey1qvkPinSZNm7QlbOhYpHWdXmCRKGKuXTY=","translations":{"en":{"changelog":"### Added\n- smart picker integration #343\n- sharing of report groups #342\n- Allow custom headers in JSON data source #351\n- Grouping data source parameters into \"more\" section for better readability\n- cleanup receiving shares when user is deleted\n\n### Fixed\n- thresholds of other user in shared report\n- URL parsing replace &amp; in CSV datasource #348\n- unified popups\n- wizard ui enhancement"}},"signatureDigest":"sha512"},{"version":"4.14.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.14.0/analytics-4.14.0.tar.gz","created":"2024-06-20T12:23:59.855726Z","licenses":["agpl"],"lastModified":"2024-06-20T12:23:59.918881Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"KYLb6IgFa563FFqJyDzrL2hKmPgfdkMD1IVH+siYM4cfRTgt+X5XNfXdsKvUT6r4yuZhUzGIphuYPivS/pwrSTpa7HSs0sVBJgUnZ0bJ2McAB3ea5rysccJD1S68RZOPoIeO9cB6gE0jgz7qHSKEvezqZwnsCyVTYtLAGEbhkFT2BNsQNiCux4Hp2W3fajQAScwgw/aNW8sinPNx/dxSjqgNJm+r6p0GDj9/jHyK/dk1RdE2dvgqQe/LJRHdlHPBanEU7iqLDD6Yb+NgDp+8p0jppv/MwyiXkq3UhxISvUepsGh4pLbvZ4nsqJCGkvLBKU4hCT6wZ+MhOgNA8jq9k5Z6Qq8Dttr8fLR2HRN+rREq2hANDk0Kd7CBB/nmyNZntZxzD+kIYD7IH8Kld422PKqLUWnuYVRUIEBcqHow8dB+NVb0MkXyHuG/qL4Rb3qrpSzSCwUA1rfxZOk9hsT+Sc6WCJpHYKYZFvb8IoDN+bKTPd4wejLLXWXFGpsn2p8vI0kg83F4hcKoTjeHutjTkM0zmcXHcrQYVhRum0BZQ4grrYW1RHV5yhQtiYYYWoCzXrjLTXBNYCpUgMeoV1IhEXiev9IttJ+3Na9jWEAuMlnOQ86a4a/h/T6hp7XSB5ZJBieVmMlcvfA2Yad/W034wstwZN0A6pVT8AQ0YdDacUg=","translations":{"en":{"changelog":"### Added\n- charts: select account- (values in columns) or kpi-model (values in rows) #393\n- JSON: allow insecure/self-signed certificate #309\n- REUSE compliance\n\n### Changed\n- SPDX license and copyright header\n- material icons\n\n### Fixed\n- Save filter fails for table-only report #392\n- missing variable in public shares\n- dark theme issues\n- \"Parameter missing\" in Nextcloud Tables data source #387"}},"signatureDigest":"sha512"},{"version":"4.13.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.13.0/analytics-4.13.0.tar.gz","created":"2024-04-14T20:09:39.276010Z","licenses":["agpl"],"lastModified":"2024-04-14T20:09:39.442136Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"RlF+pDiRy18PckXxbdNJb9Vafn6R24E+BbNqVLiksDWv1tfWdv2qF90ywrascXAYpkYLoyZ+WWOpdnxxBKyAfT8SbRzif2ee7XmbbPYT8YmzyUoM0dzRtedZyNsVOHCuYYgKkypeKYnZYy6D2OIvgYQhTQbxJOg/rgdWAuvrHX6MPbq8DnJ0oieFqnpJxcUmraV4CofGf3Zrf3Zg49Utofm4MiBfITNGUWJg84DTh0DSjaKkIuyUyQKDh1cC2Yz/Gw2JmcSkbAjYXdDl+qBtWRnSsQ7qRwBsOl62qiJgvKHBG89W/dZNfSMDul0fxfnL2C+v0rSscG/sbyQ4jW++SB37Z77rgllreNe6xySGH7zzevNbjFJy7qdYryJF+rueEOp2JhxLuK2Azg14ZlKURl1P9QCymPARil44hCaQ74TIY3INLjxJOqhsDbcq7Z08ecvnY6AF8pHTzdJocguCTt8gY8amzDVmka0xJhVnStuCAdowBdJLeFYYb+YySzcUaMikQDkV8gVvvgYK0Nbq7h4/Dszp5RXXpuh76DbdT1VA9kMc7IVDiligmrQJktf2Swpv59vFx4hHaWNw4OBtmXL84VIsdBM9liWA3Z2DT7Pem7ZILDwxwtdfLeJIWwgYlOmAf4KwER8LCBh3dVQ3qnSxmxPtXc3PzhW7jz8Om+I=","translations":{"en":{"changelog":"### Added\n- copy data loads\n\n### Changed\n- DataTables 2.0.3\n- Code cleanup and refactoring\n\n### Fixed\n- console error when using timestamps for 1-column raw data #384\n- css deprecation \n- CSP issues in NC28 with js scripts"}},"signatureDigest":"sha512"},{"version":"4.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=26.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.12.0/analytics-4.12.0.tar.gz","created":"2023-12-11T20:30:13.559960Z","licenses":["agpl"],"lastModified":"2023-12-11T20:30:13.708601Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=26 <=99","signature":"QmbL2B42UHQ/e8h/+/wFMvYjiQ6CixtUOg9vlWoRpX9toaLvh7hdT9s4Tzw+7O6NYvMMNSWyss5MmM1yJxmg4RlJrodXdSeush2/rKFSwW5VfZPEIjcWeZuQdFXWaCxPhBtu4BPFxgW6O2wSL4tcBAv+PdU/vgHjL6MI4asyjkkJySvqTSOB14+BegI10oLQjiLvm5JCB9a+f2ktQtvQsckdG8L/w21a/MopiZiSTg3f8ilPuwp8XQhlAiwLufXtAzj5wP88jEWNB2eGaM7uAJEwqZN+XxoymFTr5U+inZZIYJjnW446iofTTJur2QzPy16tpdbYwMbfstK0/TcBI+wqu6MsalqJQ4CkJVMcM7S2B+cSDwnYBRzrSgkZganLnNwe9Fdt6jSRucZEmJeVVrIl7QBFfoQmBMkFQlqD14jIdXmJzO6V3W/JHdpiOGT5ALdUeun46/D3QAFANCQjmyaMyni1lZepOtMD/FwRhMRLsi6aaL65zO9jksqJDkPal9/HseSN3vImcuarK/H1zMNKB4UXSipXBbkPtTxHzdiW+r+7tkTwSkfe0HKWGXeXCspUc9DcgaEjZKj1y8YML6KwODXmFrLH66mdRj4Pizw3Zabn+mut/D+ec0PYcrdZEXMs28LQZXWEAa4neMJrDUhRgkeqoLXc1iB5jNzoKuA=","translations":{"en":{"changelog":"### Added\n- Cron schedule \"End of day\" and \"Start of day\" #381\n\n### Changed\n- flow event listener for NC28\n- css adjustment for NC28\n- scss removal (<26)\n- min version 26\n\n### Fixed\n- missing back button when no data sets exist yet\n- Nextcloud Tables name with \"-\" #380\n- js files loaded in an undefined sequence #378"}},"signatureDigest":"sha512"},{"version":"4.11.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.11.1/analytics-4.11.1.tar.gz","created":"2023-11-20T18:50:44.737894Z","licenses":["agpl"],"lastModified":"2023-11-20T18:50:44.812447Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"hbTqUoB4q9EnMgUX+6t0BHn7MURZf8oi8mD0J9zrqdlMa03+/zi9lgugxNSoJj4vwssDs5ZzwC5W0iIYR+Bkk2GYlj+ua5cRmpylYsTKSzTTqRPE9giOXcTuRXBLiX5s78wlCtK+yCJ3wfOtlvVRowR6n7OU3OEK6IvDQrLVXjgIkMvxl0bqZDDQQ8OlPPxCObyzRQYZRpqvwrFvzOmLUFMATeg8l1F4/hZGaMqWKgLShy/5ma3KJXrBpjiWlT0aya99GzRM2qvo7+oKMwfRpypQMJ59VnhN9DYKz8647DWS6GnKqa39UTgOpghBjFKoWVOxGPTEBBicQg18Ca6MfEuhuCRtuNjhLNDQQnV575iK9O10WsjJNEK9ugvMV1r44lMlUMtKnmQibBdizh2xq4gV3qncVI3rcy2CKvggD8qdXeBSGux6UdA3C3h1wr7TM8hNXXJRayohYW6YclLligN9LA4a98VZpQsxl5uzcPrDSHlJbnmRPgcSEhhRUa5ZZ9cpWKKZoq/EFBoZah1KvqrTb0O10B7hquvI0SuIlXzpEGgRN8ij0B4FrTpK2ll6ff9IRZI7ZwhygFd76H7gKV44x86vByku4EfXpc/2wfZb69DpS5vXAw5U+e/JUOHaDziEdWMKAW2jo5PJbMRewP5pDMwIMiJABKh+M6eGiKU=","translations":{"en":{"changelog":"### Fixed\n- save error for reports without table\n- type parsing in report mapper\n- report import not creating dataset\n- js files loaded in an undefined sequence #378"}},"signatureDigest":"sha512"},{"version":"4.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.11.0/analytics-4.11.0.tar.gz","created":"2023-10-01T09:42:28.613523Z","licenses":["agpl"],"lastModified":"2023-10-01T09:42:28.888152Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"W917ZzeE2gDLL6ZrlNjBvpT+ExWwgDXW06iQ9HzMOviR0SDjrFEBq8eFs+kxbiTqgNThdOLNQPAOtLSp/6Y6fi1ETCJzSCvAWSgx6RCCim2MJWadX7/nf1lG0SSCmrgA3qdrlPDNvZqtUksHdBVpmdZMWTOKJvIomHu1WBl/cLd8Ij8Y5oYJzfnIdSvLoE+sQA1ZlHvjh1tzZC5MR9zQpBpKJm0+jVwQOs7oBadZYMI5PVxAGkv/mikak3QPErqGHAHZ+xYBd0siuTFDMpmd9/Fll1j+PxLJKYIytFV0lSZgCf8LLEUrw7OvuTxxXLXISVffZwKtHesQgwmOCVZyPrWrdOubfLv2O+TOxW1c0yEGXvAuVuk33zfREXC99+9I4sOZ9LLEf/FcBvTUM90NoFK1ITNzq1AAThj3/w3GrDvWJd9As/XudlODUAfHpS1w9g+whEY8zyVVtP0eN4LfneTqoPL4Cx8tlpY56/jLLz8hfoXD+0tMT6yWVakDv9lgNtD5izXnIt18J9kwZ2L0XCPim1mZ4Nw29J85RxB6prxS0fgOvYSHCNB8xaBUxKDx8jyrH/OH+/mIBxTKr+NvbJ9LyvcunB/2Y7xZyqfxB7Zel/18av0nLMLXCTvtn0uxnoiViE0vEDpAYtMl4/4B5IGTgEFy/MpoWQSjEQ5Amp0=","translations":{"en":{"changelog":"### Added\n- Chart: stacked and stacked 100% options #370\n- bigger input fields in data source options\n\n### Fixed\n- incorrect record count during data loads\n- NC Flow - background color\n- incorrect API error message #371\n- custom colors in doughnut chart #372\n- dashboard charts not generating\n- csv import remove spaces\n- chart generation optimization"}},"signatureDigest":"sha512"},{"version":"4.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=20.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/analytics/releases/download/4.10.0/analytics-4.10.0.tar.gz","created":"2023-08-22T16:11:15.432255Z","licenses":["agpl"],"lastModified":"2023-08-22T16:11:15.852013Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=20 <=99","signature":"l9id4TIIvpPefHA6wGwl4124vjBD2mFKCM0CiAF1/kuTCBsMB02fkJygE/+HjifTQmZA0UUlxBIjnSVVMF1Is8dG/3UnAnURMr3qybzNkDC/7q21aCTrMLaDJaIRj3d0WCmLD1CY/A98GiM1pig2DKtlFhm5j5cXMO3f/1EoV/p4xZrYJmfY3XoiDjBiToIQoIlhjFGwQHp3d08zLA3zsWIKeT4PQ36X6H7S4hiRA5NXLYxBjWVPbNwUqK+LJQ33aDnoVOq+JoVTqdnbGRK7nJkrB10wJFvL2pAwENj3K4vOaJ4A8Bzbu2vSFk/dOA/98PNOtEV2UATB0Cab5oYqEi5O5nA+dDAmQC7NrNITkGlfefp05XelVG6LNaZydqCgit6czLThMAIkAsUK2kUY+iWdcOYqgjwVv/v1QsyEHRH7hiftTrtSGNFl0kUREym9y4u87giRBN22KpYJpMcBOQVr8cRSNHvnPkv+5kYYhClAEBDZ9v4U8wxIIdPhYN8suGYY91Ct36gXIejKrPa5pD9jTXlTwswmg+tpJiSiGxgFCUbCVCNZjxLlnjaT2XnepcvmLf3BDN26WFXtTfTz9uwcUZ6gu2DoaoCJoeTpefoWcOAng5978YipH6gNhdUKzRetmJF+kfHhxwDEcQ9H9soa1yQVg2mviYrQOUHt6Ts=","translations":{"en":{"changelog":"### Added\n- translation integration for reports #358\n- add custom columns (incl. text variables) in column picker #359\n- list available values for input boxes (e.g. filters) #362\n- csv data: select header row #360\n- Report: drill down & aggregation also for external data sources #365\n- Tables: fixed first column, horizontal scrolling #367\n- Tables: save states like table length and sorting #367\n\n### Changed\n- DataTables 1.13.6\n\n### Fixed\n- 3digit comma values evaluated as 1000s #357\n- show errors of external data sources\n- error on public pages #363"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2FuYWx5dGljcy9tYXN0ZXIvc2NyZWVuc2hvdHMvbG9nby5wbmcKICAgIA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2FuYWx5dGljcy9tYXN0ZXIvc2NyZWVuc2hvdHMvY2hhcnRzLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2FuYWx5dGljcy9tYXN0ZXIvc2NyZWVuc2hvdHMvYXJjaGl0ZWN0dXJlLnBuZwogICAg","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Analytics","summary":"extract / store / visualize","description":"Connect data from different sources in one place and turn it into shareable insights. Analytics lets teams build flexible panoramas, dashboards, and reports with seamless Nextcloud integration.\n\n## Why Analytics\n- **Centralize data**: combine CSV, spreadsheets, APIs, and Nextcloud apps in one place.\n- **Analyze faster**: use charts, tables, filters, and panoramas to explore data quickly.\n- **Share securely**: collaborate with users, groups, or share links with fine-grained access.\n- **Automate updates**: schedule data loads and keep reports current.\n\n#### Features:\n- **Visualization**: panoramas, reports, charts, tables, filters\n- **Data sources**:\n  - CSV, spreadsheets, API, imports, manual entry\n  - External sources: GitHub, website grabber, JSON\n- **Extensible**: register custom data sources from other apps\n- **Storage**: real-time or database\n- **Automation**: scheduled data loads\n- **Functions**: trend calculations, dis-/aggregation\n- **Alerts**: thresholds for notifications and color coding\n- **Integration**: Files, Activity, Notifications, Flow, Dashboard, Search, Smart picker, Translation\n- **AI Assistant**: Context Chat integration"}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9285714285714286,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhEOMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI3MTEyMjU5WhcNMzAwODAzMTEyMjU5WjAUMRIwEAYD\nVQQDDAlhbmFseXRpY3MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+\nQuxpaOmYkDLnkNk7uHEvn4/88y6ZKmS/IKzYf/5nD4pib6JshAO34AECInFLsbAK\nCU8URQpDFhWMpAHk0gg/BaMagUrxU/Bexhs496vxneNOe1wDgQdgbW8z7PyRbtNY\nUFVw9kfBVBFZZQmPjRtMxSfF+MncxGL6n30BdDK02HvAJVdRWSk56PFWyONktD7e\nyuKDFzCkkTpCPZFSRMuHxt/EjasWCL1OOGoiESe3hL+qAcgiu75BIXLbKm8fXNc3\n96saDVlFUztFOAiB84kDsyc2zx5/rHVH1UqJKiYqyhGU8u9YJArkJeLLyeK2elrq\n8myGSALSW2awdYJnbiF3b47k37EL4yckFy2t7xJ5GY7khGmpuzOLgnq8TWt4XGAx\nB95eAUdZJIP9Y2Ud4YSHF5D7y4ouZGZjmBqiPAR4cjFcb1eg7EJ5u8HluxlgiOMS\nDVo81UsyypH/LjnkilrFIs7p97zys41b5x000TDmvfTl3YViWKe4A6UARCGLffeK\nZR9wKoL7kYSdji5LN4q8ROUDEjKvEJa+pO78WJb2nQJEhr0Z/aKee+PLoYIYMIIh\nxnDVCqDu9bzI3JUDzYxBgAzSk81SPLmfeaIY1yNb1o3QiaosEM6oYHRfA1lL4IGZ\nHyjss2XxBrV6fBz/WoL7X4nZumc1whKBnaV/thlh5QIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQCAa//k8Jm51g/etJ8njjPUo4pEek6G/fPmUpGGcYp5/uzM8VRXD+mW\nY1oMpdwiAPqvft5ehhvC6tLkiCUeBIS2c54rT/5CskPmkUk+3i6t6EnU1z57sIvA\nQ43LpHnGMAQ2SE8gRu7Te6TzvQclOFWnqrcAtgkwODuRjwWC5dI+f8yBf9AQR7ma\npmxwpKMhlbURsmtV8b/t26WFNFWY+Mp1eNYUsoeJlYomhoU5xzT0j7F4lIiED1XX\nUwxWPMElwu9D3dOOqglPfwW9scfRBxihhwfug/h31zUXuahBjPscozEBZfKoC69u\n6A/lCi43xyc9K9CCARPDX0To12V3Psgd\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/c/apps/analytics"},{"id":"socialsharing_diaspora","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2017-04-26T13:24:19.248338Z","lastModified":"2026-08-06T14:44:15.210551Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_diaspora-v5.0.3.tar.gz","created":"2026-08-06T14:44:15.194637Z","licenses":["agpl"],"lastModified":"2026-08-06T14:44:15.242267Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"CvQk8lTTHMigvp+3y0gS/yD4oMs/6D0BtPnsSt8DvH8z5ShtHINx4yOHL4W8iwQtzwogLSxR/Zwe59QsVD7uuNOlNB4NHTZSnLg1bPQyxCL6B35Eeu05pWG1Lr7V1Y+LBC5MedBJ2PTokQ3cpjFpPnbaAVPlG/JgnH5ISDe6filz2FK8Q0PL+opa6Ki4R6NJZMD1I/5fbyWhIXa4iLpL5kWY0kWD3TSbviTbvIzP+ejpiLtnYRHWb5aKFkOBuHlcA1slHy0L+DzUARNUA0qfBHvPGdIEWKP/HOX4GBxAKL/Nz8Tc/PL92sRTZ9rAjbqXDHXS529weom0ZCRIXbg2R+0MY9TX7CyzpFDSs1d8JSQrYe1xSTaeJZ6cjpNQUg/HCYPnp/gVmlhGrdO6m4V2DZL0KLtWPTjKunnsZkLRmY4/j5VMi8/+6WX63AewdQno6sSapzdxHOu9HPTdQ8qJeXwK/I3JukxcDWr7JdhrW3m6M5pcZvPO9vpt67y+ov1Fpfzz+cqCo7KbPtNWAclhmb7fJjOMsvvdrT+ZETgnMIyZjDUto9hYsXMYptpu74l7FNlYZuk86+Hcc7cItsUJdpUI5+69m2MmtgBhM/Ad8ihVsQXgopvKI1jsaf8ai4WpnCo5BbDMlaQHbiagrBIGwuf4TzNQSrarxY+U2ngb3VY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX2RpYXNwb3JhL3NjcmVlbnNob3RzL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via Diaspora","summary":"Enable direct sharing of files via Diaspora, using shared links.","description":"Enable direct sharing of files via Diaspora, using shared links."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhBFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI2MTMyMjQ2WhcNMjcwODAyMTMyMjQ2WjAhMR8wHQYD\r\nVQQDFBZzb2NpYWxzaGFyaW5nX2RpYXNwb3JhMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEA4bUksJLldml8z/5OFvNIhZBxlyi04IE7O7fXxHoehx7Bu06M\r\nkghvUzu0vYw5o+HwyRbyspsTRlhXZ4CdErWnkkXQ/rStt2yg8goeLZgPQi5/I2wp\r\nHvsmV7jkCf0dK4G6Ps49eDwHb+QfNchhiXv6opOmr6/V9dbfLnoFaZiNgCVa6k8J\r\nbAmRPqCQIJw9OJnrbFQWHZPvTNVVEvZbl5kGEosD57n2x/IPG40yexhIUQngMzaW\r\nsFtMgj2Z6sp6E2PMxB3FuNnxjrV8egEN3OQf5pqFlSr7lypngkQJFeF8pJEYOnWX\r\neQxLCdSo36PORMVSc9zEXnbj4i/s3t0OxvtbUbExM6ltE77rsoBfFKmuRLiQVPCf\r\nlaT2Z4TGo4RICYSmBrxRM6GYn68VY2VKrk9ZDtwn2IUNn9zas0EQtMkwVh01G7mc\r\n+CHLgMS8mmZ33g6dJrBQs1T00G9Oo9n85BR1LoyJC2avxirFLu0/5D4X0fciqzQJ\r\naPwx4II7BOEXIjz3U6067nVTOt7rpmW+a0RivuxSk7BkWB7sSSvcOmAhlCF4bo7b\r\ndZDTYBSP/8m22ZTrfsofo0QzSneiRvr+LsypTZUaOIXkWyzqiWS2zk0hQxv//sTn\r\nYmxJVUffFR/DFmTrmWzE47H6ZyfywtOQDWWLAnd0ZgYd4wrxX6UnwxNkrCkCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAPUi5jJLe98cNLH7RAk8x+j3oydmCeKwf4+5S\r\nUFbq/UjkN4EhsR1qTSmI4niD2fvQzfzZ4CA012w8eihSeEtJFBg01ll4RSTbZFRg\r\nCT1XKK61FJWBJbENRLuPA6yGxKtzZoSTEvNwWU1cyAJwbhaL4GccQLybYbX7rIgG\r\nI3Pc/wF4mCRUqSIYnCIVB7xlLh5EIWob1fHYKnvpo/o4jOWWL+IJFKZaJ2LA3YhT\r\n3o46Il27A353j92BA7XGbFNIN/UpmPLceqTi4G88KKTF3Jb2E2qG5RhyUeGAlY8S\r\nlMFd4BgYEbGATRYeduDTJ5shC2h5uYibjS8y6Nah81W6k+d8PA==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"yoomail","categories":["office","social"],"userDocs":"https://github.com/ebfming/yoomail#readme","adminDocs":"https://github.com/ebfming/yoomail#readme","developerDocs":"https://github.com/ebfming/yoomail/blob/public/README.md","issueTracker":"https://github.com/ebfming/yoomail/issues","website":"https://github.com/ebfming/yoomail#readme","created":"2026-08-20T00:48:13.727561Z","lastModified":"2026-09-06T04:52:41.982932Z","releases":[{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ebfming/yoomail/releases/download/1.2/yoomail-0.2.0.tar.gz","created":"2026-09-06T04:52:41.916467Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-06T04:52:42.030146Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"RG7xvKEWI5vhbHIaWtTxGgKOJQc/ozECWh5Nmp6snblZ+X5Hu80luhRsP+RP9Tiy\nllKO0ca/c/c7bKc1pDrLadhsb8TSHrfGUpSLK1Nccu25RAKALmebVQLHIcQEv2UV\nPU6zi3OPW3XeH1u+6lRd5qTyF8c3hV+R9GTGxB0DgrG7IwYRi20EU0NZd2a/UBtX\ngly2Zn4Uv9FIhHbhRwByZkd+XZKnxP1hA+j/CO7jVVRji23f2UTMZbC+KxJIQH19\nOJioN5lPDODml0aneZ5CN3R85DzfiIePUY9pWhQ8OxHhyWd77iS0rENZeHmJS+7M\ndBAJTTTfh2UoREeCTyKj9ySAsGDkfuGJ5rLy3iaAgCqKXiOhdPQ31xI7aVncH3j2\n3Zq5m5nTnxq6KTdtalxTU490x/X6GOhaFSn30pZcLOv4/MvsJoD6CwQKydlZCLj7\nZQ5YL3hrJOM2XPX2TJvqOGPLU/CI+ERzj1iF/raSxUlLiY0FxxJscgu46MaCK74q\nNgyRCMCIc1WAaJHmWEHZVmDyW1EKea4HSwxOAHsHqRh0YvufA0a8C0YUjqXQSI0j\n+UTWBCLLwg/eqEYQFx0sz8onCTFxTq+d9SdgFreDqNQQP1NcjKCrMtqKG3NWu4tG\nnrqMWQ8lxyIz7QM4wk7AhVDIUCBcbFfBRyG05A1Qiio=","translations":{"en":{"changelog":"### Added\n\n- Added same-site global new-mail notifications with browser notification,\n  sound, YooMail toast, and top app icon marker channels.\n- Added YooMail admin settings for realtime mode, time format defaults, delete\n  synchronization, cleanup policy, fetch range, and OAuth integration.\n- Added richer composer image layout controls, including block alignment,\n  inline image mode, and text-wrapping styles.\n\n### Changed\n\n- Hardened realtime delivery with signed local IPC messages, safer reconnects,\n  improved worker recovery, and runtime logs under the Nextcloud data\n  directory.\n- Aligned Gmail and Microsoft OAuth callbacks to YooMail routes for standalone\n  distribution.\n- Updated release metadata, README, deployment notes, code standards, security\n  notes, and upgrade documentation for public App Store preparation.\n\n### Fixed\n\n- Fixed notification settings persistence, initialization, and cross-tab\n  delivery edge cases.\n- Fixed stale message, stale folder, mailbox subscribe/unsubscribe, remote\n  deletion, and initial sync failure cases.\n- Fixed attachment links that still pointed to upstream Mail routes and could\n  break downloads from cached message bodies.\n- Fixed signature editor crashes and YooMail route HTTP 500 errors introduced\n  during realtime hardening."}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ebfming/yoomail/releases/download/1.0/yoomail-0.1.0.tar.gz","created":"2026-08-20T01:14:28.857899Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-20T01:14:28.936546Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"RF3GMlLpqmk6eXrqttWlCai8WF1pSK+iVHnwKDKaqBr9Qrx3nwnM1EKvKfwG4ESK\nERZRC//7C6q3u2w48Ksba+BPqpajHtJaAllGQWO/aoO6kETZXEQ8HAzkznnhD3Gr\nd3xmBYhJ3Ph3MHzCyLyeu7HgSwX3iUAb8r5KcnH7ygjqDDZA2U/5ovNQu1V1rNwD\n+oWsboq5xOjz0virolej83fcdo9Kfo61KW1D1QBFs7E/D48jF2XTnmTdcJXirmL8\nu+VpJioFYpr0xIqYetfMbLctvMb4J1W2Ju3CqPOefcrustYOJaM31LiQES4mbMyv\nVZdXRDMiSbTXP+AJYtBwxWGrRnCx+UmZQYuKGih87p6J28CzBh7IC0zd7sQmJo0T\nBHvv2puuvyKDlQPO2FW/h3N+AuV8nvrF8fzTeln6z7iuyOXZHZ/0fr6AtJUMMTPy\np1ovqJm1PmE3KG6v2qCTBap+zomqKkUxqteWjiL682NmcmKRtJGV/1yuxnFEdJfx\nufXNvRVDJ+cuLXob4EepeHH4vh2kc+cFQZtUeottXg231uC1TqWQa8Wwv7y1cREU\nrJAQA9UKMNNCOXp/vRmmeMq63dvfIwwDqXtY875WD9zsjoSUVPgkwOJoYChtMY0A\nrKxi6m81lnA93raObmg2Vd8JtS0WqsHreBOT13wNQDQ=","translations":{"en":{"changelog":"### Added\n\n- Added realtime delivery through the `realtime/` service\n  (Workerman + IMAP IDLE + WebSocket), with automatic list refresh in the\n  browser.\n- Added persistent message body caching through `MessageBodyStorage` for\n  near-instant reopen performance.\n- Added compatibility fixes for some Chinese mail providers whose localized\n  special-use folders could trigger repeated UIDVALIDITY cache resets.\n- Added the product README, changelog, and deployment guide\n  (`help/DEPLOYMENT.md`).\n\n### Changed\n\n- Renamed the app to **YooMail**, independent from the upstream `mail` app.\n- Renamed the PHP namespace from `OCA\\Mail` to `OCA\\YooMail`.\n- Renamed database tables from `mail_*` to `yoomail_*`, keeping data isolated\n  from upstream Mail.\n- Renamed occ commands from `mail:*` to `yoomail:*`\n  (for example `yoomail:account:sync`).\n- Assigned dedicated realtime service ports\n  (`WS 8789 / IPC 8790 / Channel 2207`) so YooMail can coexist with the\n  upstream realtime stack.\n\n### Upstream base\n\n- Based on Nextcloud Mail **5.10.12**, preserving upstream mail features such\n  as multiple accounts, threading, encryption, S/MIME, and integration with\n  Contacts, Calendar, and Files.\n\n[0.1.0]: https://github.com/tigersprite/yoomail/releases/tag/v0.1.0"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ViZm1pbmcveW9vbWFpbC9wdWJsaWMvc2NyZWVuc2hvdHMveW9vbWFpbC1zY3JlZW5zaG90LTEuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"YooMail","summary":"🚀 A high-performance mail app for Nextcloud with realtime delivery","description":"**🚀 YooMail — A high-performance mail app for Nextcloud**\n\nYooMail is a secondary development (fork) of Nextcloud Mail, focused on **realtime delivery** and **instant reading** of emails.\n\n- **⚡ Realtime email delivery** — A built-in Workerman + IMAP IDLE daemon pushes new emails within seconds; no manual refresh or polling required.\n- **🚀 Instant body caching** — Message bodies are persistently cached after first render, so reopening a message is nearly instant.\n- **📥 Multiple mail accounts** — Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails** — Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **📬 Deep Nextcloud integration** — Contacts, Calendar and Files.\n\n## Base version\n\nThis app is built on top of Nextcloud Mail **5.10.12**, with compatibility fixes for special-use folders (Sent / Deleted / Drafts) on some Chinese mail providers (Tencent ExMail / QQ Mail, NetEase Mail, etc.)."}},"isFeatured":false,"authors":[{"name":"adam","mail":"dev@ebf.hk","homepage":"https://github.com/ebfming/yoomail"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhPYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE5MTIyMDQwWhcNMzYxMTI0MTIyMDQwWjASMRAwDgYD\nVQQDDAd5b29tYWlsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmPoi\n2lJR/BbvYk66bZ+W1XF4cIowoHzVOljrOpacw+XMWXugzslmwB/h2c7F+p/X/xvj\nkxJ9ZvWK9PFQ6HwXa3oPZchkCoPCeHG6VOLGwykGqqrrcTYh6tRv5gdhU84LYaCL\nZC2WpqDtCFDC/ipY0TzzIsq48iZucn0lbUdN0GVMBiynlY17HI5Pwqc8FY5Rv6Ft\nAWz5Keyb9j8tR5pkXo/I3jygQCuOH9U+VGQHn2OWMbMWC0cJdWoBe4xqW3NdhMCx\nTFnLIw2vuxrzzppSUMwWFxlY5PpegbYPZOr8hMqcTilo/Dcu5Lgu50UMh9OyMtRZ\n7a224NRtgdGnyiS0pMwlmXy+LNE5AoQPKCNgqpNDlua/fMGKwBdCtzWJVY1pqALJ\nMuUXXqHtYWByHQYBHXDkQA4G+I3rAA7afcGhvdZJzluVi4TGGOboezIvrDCsHwhr\nHjdFkpPLOIlf5EGPFpjYCZAzg5T7c0UJ7YfK7H3R+Xdf4YiBvgPLM9oAI0hQnYqB\nM8eLozw9wPWPCYLz+kae9dXrbPxOYVlG4P0q5nlXvl9kPIdeZExjJ5d0R8yESjlI\nWPkg+/MZaZMdy1EiZUmJdB8d4XZDc7KDosXd/7zRWU6/r4N6Ne+CjyKRZxhMOU4R\nykeOS1Nch0h7VirXgOLLf/h83On/9bT3qX/fkb0CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAWQwCCLq0sr16NPdMTGeU9t6XxoG0tp4ZdRCan2espoyAkmBC135W+rNS\nkIVcbTKOhFcyYEKs3+UeSrWi/In/heTdCgvbaHEjNyRJfPwkX1v7vpTUrtaVv0WL\nmqGo97U0TPf+/aCDCYitDejpGPCWdRL/xqb05GXk6NII2uQWKx0J2UQE9dBbsV9f\nvpXWDptfvTgLRSO6w3zzoy+Q8UR7pmiqjm3CBLzCSl08XgwIIp1NH4XV4+DO1UtN\nd3HsemHGNli2XGft8sEXzRlpkLoXRnSY69itJxHG7ZJwFhlUjYdQaRVl66S4WZ3S\ncRBrOYooqVSXUEp5DVbTDIfG4rXXMw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"onlyoffice","categories":["files","integration","office","tools"],"userDocs":"https://helpcenter.onlyoffice.com/integration/nextcloud.aspx","adminDocs":"https://helpcenter.onlyoffice.com/integration/nextcloud.aspx","developerDocs":"https://github.com/ONLYOFFICE/onlyoffice-nextcloud","issueTracker":"https://github.com/ONLYOFFICE/onlyoffice-nextcloud/issues","website":"https://www.onlyoffice.com","created":"2017-03-13T07:37:53.039503Z","lastModified":"2026-09-25T13:41:14.811820Z","releases":[{"version":"10.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v10.2.1/onlyoffice.tar.gz","created":"2026-09-25T13:41:14.800934Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-09-25T13:41:14.848758Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"mS6TGbdddimn+pUrwyK8Tx2hE3Mr/NjwvlpLcz7n/CHhEXZK512ATd2vMJEN8yrr\nu6T3pUP0VbA2BNytS9RsZigjlRlHcDR9LSX03IOHqd1b9nowQ8fjuzspIfzyJfVW\nAaGzVOkrHj35oIq+Glw8RrKo+b7csY6Sa1LSxb4BtJy3o1KhZ7VxYwnMs9QZBEKg\nrQyvtlmC/cr/QD9nPVclOPusKZEuSDR4xRiiBASFiPvHWdW3eafb48Sssr9KiS7A\nsymiF724nuGYnEEQbyXEYi8Op2tz6lpxV/UngkxLzhLGz1i7SPd7uK+Z6jackAkc\n7AYcNDC0rjxJ7R6qYCAftWQfga8SURXJjnW76yW9GRRub2SUPokMCx1jFrf5PQt+\nksXCKYJrEgtz9oVMhFPcmF69GlqqAiXqz4nd/G7j+l5+qiw1V4MkW+M6CbJKMFgj\nb9Yv77d4q1F3f1NW4I7Fa0obCZous969IRcy1TgqSU3OfYp10+eN19bRyQRCsLeZ\nZnNrrRBrzDPwv5Jkb5IKU/w6+fQDVw+I95kwvzyBYe+fsSj+YiUrDIJmUt+hljhC\nIFKangx30gbOJvB9kkbz3BUHqqvV+VMufyMNqhb737wZ6a7YBAJixoZ1zieywP0g\nS7SZLipO2nLGUoDRmtdHtnilvLM1+XVqosXKNzpRbTQ=","translations":{"en":{"changelog":"### Changed\n- reset the stored original review display mode to the default value"}},"signatureDigest":"sha512"},{"version":"10.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v10.2.0/onlyoffice.tar.gz","created":"2026-09-18T10:16:31.444171Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-09-18T10:16:31.513068Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"P+EQpfUwTg0BUZoanvC01Nrhyc8N6j23OyOlvYrox61tb4KkGnmsvHzUBOulQ6ID\nLeFu/BtJ/mU403hgazK6IzwVbz58PpdAqnLnjYFT9SK5w5z3s1Epua5OlEjmgDKi\niHUGI797wzDffcKmHrFW9YxREaHFhLdJlRvTp+LfxIVquSQ4g5TTJ4jQpeEHgADB\n9Pxteg89RAqfAQHVQ9RFFYNEBbl1loAwvmiRt83znt5iHh3O8mJ/mJa5D3vPyegB\nIDrxLSf+fG6U+mi7cfV7FwgGrJ2+M8a1uiHJRzuO53s1WvK9bTDzqu5sKDWIUvig\nltyzQCUVzEAs/UiLhnQZkwnWw8Y2/vBYCgShmHLcWiH/+5sscQ3NfsmHpag3qsvU\n2dDkuPBISDuH0QA1gjJoJKX93EE5Ynz6uCiY92Haqw32W0l5sAOo/ShyEcs5uNU3\nB34ZNmd4l4dVxUftHI+EcT9+CorG6fNlZKsGychyd+G3bZGImHFpuilP35eetA+l\n62j2BEHvtmR/9s1UL4oUfVTn3zQcvM+Ro8lJYAN7NyUJevwbi7d8d3jO7La3BXHV\nST+RcMZF6rjKY6MzP6ymQcixCYwHlEJ+ZsDs1cpiBxGAS2OPX9zIJDgSHbOCdwRE\nAmeymnR+gEE4kxJaRTVQKwKTYtkFSD20cb/8dCCQQQ4=","translations":{"en":{"changelog":"### Changed\n- compatible with Nextcloud 35\n- allow inserting multiple images from Nextcloud into the document at once\n- redesigned the admin settings sections as tabbed navigation\n- changed common and security admin settings to save automatically\n- added supported languages to the Help Center link\n- added a dialog to specify a name when creating a blank PDF form\n- added `simple` option for `reviewDisplay` setting and added descriptions for review display modes\n- disabled anonymous name requests for guests in editor view mode\n- store the document service secret key encrypted\n- stop the address check from reporting connection details of unreachable servers\n- require the `allow_local_address` config option to check an ONLYOFFICE Docs address on the local network"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09OTFlPRkZJQ0Uvb25seW9mZmljZS1uZXh0Y2xvdWQvbWFzdGVyL3NjcmVlbnNob3RzL21haW4ucG5n","smallThumbnail":"https://raw.githubusercontent.com/ONLYOFFICE/onlyoffice-nextcloud/master/screenshots/main_small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09OTFlPRkZJQ0Uvb25seW9mZmljZS1uZXh0Y2xvdWQvbWFzdGVyL3NjcmVlbnNob3RzL3NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09OTFlPRkZJQ0Uvb25seW9mZmljZS1uZXh0Y2xvdWQvbWFzdGVyL3NjcmVlbnNob3RzL25ldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09OTFlPRkZJQ0Uvb25seW9mZmljZS1uZXh0Y2xvdWQvbWFzdGVyL3NjcmVlbnNob3RzL29wZW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09OTFlPRkZJQ0Uvb25seW9mZmljZS1uZXh0Y2xvdWQvbWFzdGVyL3NjcmVlbnNob3RzL29wZW5fZm9ybS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"ONLYOFFICE","summary":"ONLYOFFICE app","description":"The ONLYOFFICE app for Nextcloud brings powerful document editing and collaboration tools directly to your Nextcloud environment. With this integration, you can seamlessly create, edit, and co-author text documents, spreadsheets, presentations, and PDFs, as well as build and fill out PDF forms.\n\nCollaborate with your team in real time, make use of Track Changes, version history, comments, integrated chat, and more. Work together on files with federated cloud sharing. Flexible access permissions allow you to control who can view, edit, or comment, ensuring secure role-based collaboration tailored to your needs. Documents can also be protected with watermarks, password settings, and encryption for added security.\n\nThe app offers support for over 50 file formats, including DOCX, XLSX, PPTX, PDF, RTF, TXT, CSV, ODT, ODS, ODP, EPUB, FB2, HTML, HWP, HWPX, Pages, Numbers, Keynote, etc. Seamless desktop and mobile app integration means you'll have access to your Nextcloud files wherever you go.\n\nFurthermore, you can seamlessly connect any AI assistant, including local ones, directly to the editors to work faster and more efficient. This allows you to leverage various AI models for tasks like chatbot interactions, translations, OCR, and more.\n\nWhether you’re working with internal teams or external collaborators, the ONLYOFFICE app for Nextcloud enhances productivity, simplifies workflows, and ensures your files remain secure."}},"isFeatured":true,"authors":[{"name":"Ascensio System SIA","mail":"dev@onlyoffice.com","homepage":"https://www.onlyoffice.com/"}],"ratingRecent":0.5,"ratingOverall":0.7073170731707317,"ratingNumRecent":0,"ratingNumOverall":41,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBTCCAu0CAhA6MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwMzEwMTQ1OTUyWhcNMjcwNjE2MTQ1OTUyWjAVMRMwEQYD\r\nVQQDDApvbmx5b2ZmaWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\r\n1gkjED/XDRZA3gjeD7A794DdUUNuyIn9qXBZnnKjPOiBYWiPBz7kTWdAi+QF/ymv\r\nCA+BzQv3FfXSgStiyGiBxU+5TY4xm0zCt8LrhxYBKGKw1SX53kfsL1tiJl5DTwou\r\n548IX0/Xh8RrRHgbyygG6E6tI0Y/rRhWOyIqCtmnoRGNL7QSjh6vYRwCx+vRS74b\r\nWMcJBeJzqrceg1IgDOZt6/+3wVTQPmnXfvm29GOViCgWTsoS449V7ibtnPGHrE10\r\ncJPRE9geUGRRQP5fGZ/m22plwmJV+F8fItpwHiHPlk33lkwZ27CkHt6EQ7u4XR4N\r\nfo5ONdF3sV/eUhF2iG/K7wwaA47O3O+TV3Sjs+cD+fYcwUtUB/4AKWGjDkxUcLlT\r\nbU0N6lKwixPtdlT9isI5RwY/xF8Rh9hxn36pf5i9U42F8uGiNxXyco44Dcqv63uP\r\nHDyIlI1m35qpiGEFBLOre2r82DO1msgXJAWQCkE8mW+e6UcTr+8Vc4d+HSxzC/fM\r\nlm4TKjQSIDCsqod+7ATaQQ7C6dYqxupxaNwVCf0QLl5GvrnriH9UASpNofJDuhTu\r\nu4lD63J9+twULf0JMy9MXs29Tt2FDFdTg7ITLk/2WHxVrFB271V7lsz+9pk7KAXe\r\nmM3cVaZY+M04QevHQkarV9310I8bB6ltWxZaZ5qnUysCAwEAATANBgkqhkiG9w0B\r\nAQsFAAOCAQEAK/Bu0DS4ZwZP+0YXpK2eH0OyVLgH+07iJfL15dprWh4OpbGcv3Aq\r\n+VY5ir0tTH9waDkqRHvpWDmFdgzXEWWcRmys67ZX76VfNriJnUbBLqnD0r+9JwQv\r\nT9SsqJjxqWxoihccU3SVUx3k9uB6rD9ZT8AZzECTM3v3K+YLc8R1Y7KTHN9BzAsc\r\nJmWNruYBbLRgidHZpBjzxqT4R8y/jnMOS+gCeuFTcdK8+EZd7zjPTSZ/285BN+Qf\r\nE3IJxDHWuYNyGLpznFgpvTVrjhyICUY4ffcfz7gTG+cmkw9fCw0QJT16jZHKBHZV\r\nXpdAcrLQZ2TckYZ4kEcbX+q+kHl2oxR/3A==\r\n-----END CERTIFICATE-----","discussion":"https://forum.onlyoffice.com/"},{"id":"integration_documenso","categories":["files","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/integration_documenso","website":"https://github.com/nextcloud/integration_documenso","created":"2024-11-15T09:38:21.329107Z","lastModified":"2026-07-23T11:17:22.212044Z","releases":[{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_documenso/releases/download/v2.2.0/integration_documenso-v2.2.0.tar.gz","created":"2026-07-23T11:17:22.160291Z","licenses":["agpl"],"lastModified":"2026-07-23T11:17:22.262090Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"CA6OYS9eWTzQP+vP9dyR4zFBpkywBXaQzwtAd3abVtmi/m6AQLbFFFijTzF5Ho7crjZJvOZ+Ao4LrFrlBFp+uwSc+rnmPGDl+2qMYm4xaXv3dsZdFGaFxYniVPDEL+LvXLG8VjY50DJNNxvU1XNy/xfGCn9YZIqNvHDYPse51S+ayQv+UEzY6gFMrKJW5gIGStr3oGnrNMDtYGB/nwIh2ji61mTT/9EIEld7C9iKQJUJP7o4uXgv2Z2IlwwUWGktMMXpRWj+WSRCcZc8ujmLQbkUMhn0jcaFTjEKp3tWWR7l2G8EW8t4/4ZYX1wOeRw0Ihzfdi6a5iAv9aZVLORtSGic9MDp9LSPZcHxFv9Q2UtFGRyQdM76AFTZ4iIlsmabTTo8G8YNhouGkBsR27MxJci7feXfPca6JoJ+y8pBRaIq3CuMeOzSuaqcWf/PWkU6pW9EGfcGoeIF3fLbmK08O8iYTok1qT2E1wNCl5tBEewzKDwr/SgEht3Iq3z94tQb12uuvSTq7ztSD1+dI41mv0M6QVVyJ4MaVZsjHdEZ5MpZMp3NJnHFEEg+f5m1wek8gW+rzZhTlpcYredtY8NjZII9R+JwiasB8Movecg7UXp3GwxP3UOcvT1pOEe1Hr8RMXn76KX9o2I2slz0zNCyi4ODw4C9SeUxpYs2ycnQMC0=","translations":{"en":{"changelog":"### Added\n- NC 35 support\n\n### Changed\n- updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kb2N1bWVuc28vYmxvYi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VtZW5zb18xLnBuZz9yYXc9dHJ1ZQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kb2N1bWVuc28vYmxvYi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VtZW5zb18yLnBuZz9yYXc9dHJ1ZQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kb2N1bWVuc28vYmxvYi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VtZW5zb18zLnBuZz9yYXc9dHJ1ZQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9kb2N1bWVuc28vYmxvYi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VtZW5zb180LnBuZz9yYXc9dHJ1ZQ==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Integration Documenso","summary":"Sign files via Documenso Service.","description":"Sign files via Documenso Service."}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"jana.peper@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhKEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjQxMTE0MTM0NTE4WhcNMzUwMjIwMTM0NTE4WjAgMR4wHAYD\r\nVQQDDBVpbnRlZ3JhdGlvbl9kb2N1bWVuc28wggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCiidvtxaNAfw3PrilwFgWmjDn2ldwk5J4WeQrZlImsm6HsRYfa\r\nGpJm/EApPo+SyRd0QlGGvOLkRp66yck3MMQ2tpJ0ZJ4kt8TrLjMgvO9WmsSUDOqt\r\nImQ3RWBZKNxg0eIPzapZhrCskBWoXV7UJzYn6yRFVBt2MBFSMsxiSHiUk/nESxx8\r\nVhTOv5+Md1LfrWmaBW15PFkYTtv4zanDBRCHEpjFaHJOe4hQufLZhRg7yQB5rgP8\r\nqIzxAciVPLFZ7+8anbIXiNzNhR5Gn533OZwh8eoXdmai3FbyAnlPAZ/YsYJGYML9\r\nXAzh/I01ZzgM1ibSCxUGojSpWm+nixWJt4osf04pj2tphaDpeQcanBKoEGR2YlhS\r\nF5B43GmDrtcaIbHhoSdwqWLqUXLVHWBlh5hl2gKBzAB430Yed3ympfNMP6T2YHjU\r\n/+0Q0deFYJdHUIrnrkcsPfC/+As9DRANgk41lM7naSAsybXEvWbDHA67MsY80mk+\r\n1GfXdXVSmCFdf4dYCYTnituuLcrtLYj+3srHAVqNCc0TZfr5fHFyekDIOGvrNUYV\r\n4ETCySzd9PdpWVEHWWnxtVjzPG24lhe3wFPECL/YEB3yeEtwI4CCsUTwenDWR0yn\r\ng8G3yKFWgv/BQMGLn64m5LPiuDq0XvD/gRpST6Z8sQsQLSxc6j3v8HhzowIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQB2WcE5fGe32IpCW+Qbp7Ut//wvHyxSZqY7xvZS\r\n1GZWRdKD+N93z3g/6Mre+dyusoKBsWNV4SRnyVYYbLE26oIUraXd9Gf6/IF9qu++\r\nPSqse2p8Q6GzvRUxpT78WmWUsNNTNsQpivrPNBA6+MMtj1RftzRPbxW8EGo8DleA\r\np8vkoSP30afaPfER2TMpoi4KgyAe/Q4aueN1D++3kL3ZzjqJgfI2TigjZ3uurQOa\r\nIUpy+AAPerazY04YMTTuXT/qMURTKscr/AkMAIiOgcuPvRYIb69LYWyyT51UpSpo\r\nHJwtDVLp5g0/2RFbLLrpSFthqy235ny///8ZnuyK2v7IBZ70\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"workflow_pdf_converter","categories":["files","organization","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/workflow_pdf_converter/issues","website":"https://github.com/nextcloud/workflow_pdf_converter","created":"2018-11-08T17:41:59.845524Z","lastModified":"2026-08-20T05:36:31.050246Z","releases":[{"version":"6.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/workflow_pdf_converter/releases/download/v6.0.0/workflow_pdf_converter-v6.0.0.tar.gz","created":"2026-08-20T05:36:31.021289Z","licenses":["agpl"],"lastModified":"2026-08-20T05:36:31.116865Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"wc1GnqZW23hylvEa54IpQbpJOOrk8O7Tm8wPVK+oF4Qf9op1swborohv3f0EwPkUFwgj9dkyU+BoBFxqqmx17CGURo0ju0s1ARh6epsa30vjoa2IltMUBSm598/msD5lmqC2nt7nLSCADP5MntjyAezOp1kc/sMPoNqkgTrN8/bdKZRYBOP2IKJxj+C/rZwbpeQZHBN8+3upEIrmBDQFsqWaxVVy3x1SFErtrZGYJHTt6weRKcthQUVzWgCZl1WTaESjdTRWlJXG74F100kxTC3BHWI5fIcTIE7ScuP0YlmlER3UT4DyFAWcKQfGTqV3LilWmc1k3OajOYKXRk+DdYMQ7pkLFTvYi7YZqaUhsO/RDL7iqrFKcVKjDjrd/yifO56RzSeMFUR/KiVYVkhckvMNhelkq0w6VqIjhFWfHCVpQli9aqfVzwZOCko54Oy/J28XyqpRUXyf56jIwAXEe36IThAZjsvAYI+DcaM59E1iz68yQVOjwxCWITJ/Ac2TPm3XU4VJlt1QnmqQrxyd4X/EC5x5M0mG2zb04GyHbO82j1klpd5K+CPASiqg/8GjeXJF/WnbB6LrqSDINxwwzOdB7VB6J9cIeegK6DTwKIN+9HK/O7br7+LyAigkKkQGqMCAHIV2XzofXYcF73mncXO0cJcZlTz7oZMUdjsnbTU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC93b3JrZmxvd19wZGZfY29udmVydGVyL21hc3Rlci9zY3JlZW5zaG90cy9mbG93LXNldHRpbmdzLXVpLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC93b3JrZmxvd19wZGZfY29udmVydGVyL21hc3Rlci9zY3JlZW5zaG90cy9tYW5hZ2VtZW50LWFwcHMucG5n","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/workflow_pdf_converter/master/screenshots/management-apps_small.png"}],"videos":[],"translations":{"en":{"name":"Automated PDF conversion","summary":"Rule based conversion of Documents into the PDF format","description":"An app to trigger automatic conversion of documents to PDF. Based on admin defined rules, a background job file be set up when a matching file was created or written, or was assigned a tag. Then, LibreOffice is being utilized for converting the document."}},"isFeatured":false,"authors":[{"name":"Joas Schilling","mail":"coding@schilljs.com","homepage":""},{"name":"Arthur Schiwon","mail":"blizzz@arthur-schiwon.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhDIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgxMTAyMjI0NTQ3WhcNMjkwMjA3MjI0NTQ3WjAhMR8wHQYD\r\nVQQDDBZ3b3JrZmxvd19wZGZfY29udmVydGVyMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEA0IL8IiP+PbDB0I0icVSggi7h/zgPidcMMNozU72etYwH8UZM\r\nvksfsOx96yzZVS1TT6p3KOX9BoqRyZZUekszoVu+Akr4XQ417pFw+713/A2WB4L7\r\nj7hxJLU5cjn8rAzjo5LGBQosR/9l3il2W+7Jt9nnpsTlqkDLvmwZrAhKUbVXGYMZ\r\nIbRXA42PpRAOkPWydKSS90Yi8vfn8JySyqQN+74BvB34D7qh2AI6UUfQy9BGHUSf\r\nViwEDTDwwvcDX5N23M1JHG+rU+v4hWeqSTDJcfvnwOl1iAFnpL0iZTDy3Q8QyTkP\r\niyoDKBHZSrDPdb5XaGSnaYUHT9P5AovDVPy599kL/3oYVZvv38OHvOxvzKprR2jR\r\nY+k55XoucbSfsNGgkSa0gI0C3ZDzPfWqgbCrgVzcdZJ0oFmEyuA3TTlbMfS/Ybbz\r\nF4aaSj+C3JRhztUSWNfDvQknN6VGWHqb4rMUX3i8oNXmdOYJuc9etfXa7dMrQDO+\r\nS4cAen1Hp1z5tg3t6a7cYKEGzf0y9ivw5jNUt6eAYon354I31UNF1qM0wU0csAlT\r\n9675xvAwb2P0yS5pu+xSFviWSUuJHC+Czj0DR3tWgp/S6qruc9sAYnzTFsOgVcHh\r\nKoII/NRe7FbBO2CkAwCsg28ibPiWjCNkzj2PqhGRMriqCBcwhIB5vPn85fMCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAdrKAeQNlchnDVqUDM6L/a8LG4Okt3KrUTNhP\r\nL71TzypzBbuqO4+XLf0mnr+cxKEAc/3kRbt1AdK453+y4CPYQily1+hVVMnbIaEc\r\nkPuqnIlTlkg+LiDPQ6OJJdMJtFmZWWIY7k+FBE/CuHYRQGIdwGyrRZMb3zj5jm2C\r\n3TaKlDVWLniyM/g/GbGQJJY8Jrprq9QPxj9Tl185AH8wyEcZrmn+x/UhY30Dw/eT\r\n7eMbxdERt0PlGxUmHbXve+ugsraGCmW1Q/fPJogVS/hCHsNOC9WxcI+0uAN94as1\r\nklYRAwB159Xv0Vlxw3KZDyeRmkKgHolfgDYaV/KPXjKrdHNoXg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"recognize","categories":["ai","multimedia","organization","search"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/recognize/issues","website":"https://github.com/nextcloud/recognize","created":"2021-04-23T17:09:50.816327Z","lastModified":"2026-08-26T11:52:44.023314Z","releases":[{"version":"13.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud/recognize/releases/download/v13.1.0/recognize-13.1.0.tar.gz","created":"2026-08-26T11:41:56.513729Z","licenses":["agpl"],"lastModified":"2026-08-26T11:41:56.704206Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=36","signature":"tOv6EB2Md3BHvolWXUablTzH3MGnHMCelYlgg1WwceuZEwkblySiri8STMbuN++0\nH7sJ015a8o0wo/7r67PjU1HM2qLsa2QPyJP1h1lC3A/r7i8YecnUCy9LkpRFZkhN\nMS70hY3xypvTdRf96JUa4V8HHGJVNB5OE6jbaVQUfdj/hFnny4i7gkdK4kwFNxan\nQw2XjcR6uAqNg2fSAdG9lmeJzzhFOKCorykqe+5zTONGBt0ZjWMYIZPwSXBr0V5k\nihrOo9grvum3t+O39AFz4fvf/k3I+QlnQLpclRTid8YETZvJusDmLRoqJQoDNVcL\n67hEjS00MNFWJgFCcHv6MIT350wVZdxHc15W4FxL5dksX+3GadHVNZUPmVs8vLYU\nkGxJWWEaDIx6GB3+/WCpXzOU2YrlK40VSSyA41isamGsj3I0l3agutO4tXZdUIqo\nCzMbT6Uw/Qn4B8HBYrhaUu5pueDGasiURIOZeSFfjsZudhuXnXdDeUZOXpa/XOZE\n2FpIvrBYjbxEowvGb3C65Xrtk0ByDdL1ZP5oHVBrcfD1DFzdOd7EQ9Ls08AzYQsg\nYlFJ3MMNtwV4Ko7XQrqufyG5ET1G4O5NZ1Vb1tSrhYXRCCOgsBVEH32I9BdaYpxi\nat96u/u9vWTdIYgdBP50MaM+giMubfsiCciciXC+WjI=","translations":{"en":{"changelog":"### New\n\n - feat(deps): Add Nextcloud 36 support\n\n### Fixed\n\n* fix(l10n): Update translations from Transifex\n* fix(nodejs): Upgrade shipped nodejs to v22\n* fix(ClusterFacesJob): Adjust clustering badge size to memory limit automatically\n* fix(FsActionService): Schedule ClusterFacesJob with userId casted to strings\n* fix: Fix admin page"}},"signatureDigest":"sha512"},{"version":"13.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/recognize/releases/download/v13.0.0/recognize-13.0.0.tar.gz","created":"2026-08-07T15:18:38.721896Z","licenses":["agpl"],"lastModified":"2026-08-07T15:18:38.858809Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"WGbi8qYTg+233BEX6VLv4CeZesgzVHdnHTiBFpfPlhdrycb2wolwIo46b+DE0KtX\n6DEciJWyaaC5fw0acPFaSMn9I4rgFkEMKhStn0jFyoaE89yuh3iqGZZkfeFyFav7\n74sp2S28WAEDhyXSqMhziQaPB2fbApGAI422GAT3IQJQ4pQvCna/oIzE3Cqlqp1d\nZfwoEIBFPgKDCIsPEdJZjbKQSEbe8Dayb/WO2gp+xmbrVWi3NIQR6Br2zeNQv5pr\n8p8znJGOdkCOz/OFhay4dIGRiRtBPeShBEXFn5TTzpqKwRntIKh3PCE1DbBCYmmv\nmFHBNMTZncBPzl9eLUSWyhKCppttxuJ7aov+n19z2aUmNzdzTU4QXo8ZrQJ5GXLV\nhWrvOqoH9IJOUpvI/V0mzlHp/vwe6Y5tvOQM8lDfp8lVuDBc+oX9iT/FYb3swDZf\nPUPelwQhtK5ybZ15EW9TlHJw3dG4MVlA/bODwZzWmTnEQWGlB5fFk/miNdQ6DOV+\nN2Vb4l0O+tWKHDW3VlYHoxXJd+jkgBS8ncIYJYzt5+v9EhEdHOYzskURUaD6Innn\nKYOSjBiPYxuUE2++iFMaXNl44pMdvfWP3IcxbmROWmcwccW2MqxThRnR6AykogDl\nSLGuCjfN2EcofZWq0hXnLcBgbFbSNbTjubQhHV3/58A=","translations":{"en":{"changelog":"### Breaking changes\n- Drop support for nc < 35\n\n### New\n* feat: Add recognize_backend exApp integration: Payloads can now be processed on a separate machine via AppAPI\n* feat(deps): Add Nextcloud 35 support\n\n### Fixed\n* fix(QueueMapper): Do not mutate queueItem\n* fix: inject HTTP proxy env vars into node subprocess calls (thanks to likehopper)\n* chore: Upgrade to vue 3 and nextcloud-vue 9\n* fix(l10n): Update translations from Transifex"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yZWNvZ25pemUvbWFpbi9zY3JlZW5zaG90cy9Mb2dvLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yZWNvZ25pemUvbWFpbi9zY3JlZW5zaG90cy9pbWFnZW5ldF9leGFtcGxlcy5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Recognize","summary":"Smart media tagging and face recognition with on-premises machine learning models","description":"Smart media tagging and face recognition with on-premises machine learning models.\nThis app goes through your media collection and adds fitting tags, automatically categorizing your photos and music.\n\n* 📷 👪 Recognizes faces from contact photos\n* 📷 🏔 Recognizes animals, landscapes, food, vehicles, buildings and other objects\n* 📷 🗼 Recognizes landmarks and monuments\n* 👂 🎵 Recognizes music genres\n* 🎥 🤸 Recognizes human actions on video\n\n⚡ Tagging works via Nextcloud's Collaborative Tags\n  * 👂 listen to your tagged music with the audioplayer app\n  * 📷 view your tagged photos and videos with the photos app\n\nModel sizes:\n\n * Object recognition: 1GB\n * Landmark recognition: 300MB\n * Video action recognition: 50MB\n * Music genre recognition: 50MB\n\n## Ethical AI Rating\n### Rating for Photo object detection: 🟢\n\nPositive:\n* the software for training and inference of this model is open source\n* the trained model is freely available, and thus can be run on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Rating for Photo face recognition: 🟢\n\nPositive:\n* the software for training and inference of this model is open source\n* the trained model is freely available, and thus can be run on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Rating for Video action recognition: 🟢\n\nPositive:\n* the software for training and inferencing of this model is open source\n* the trained model is freely available, and thus can be ran on-premises\n* the training data is freely available, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n## Ethical AI Rating\n### Rating Music genre recognition: 🟡\n\nPositive:\n* the software for training and inference of this model is open source\n* the trained model is freely available, and thus can be run on-premises\n\nNegative:\n* the training data is not freely available, limiting the ability of external parties to check and correct for bias or optimise the model’s performance and CO2 usage.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).\n\nAfter installation, you can enable tagging in the admin settings.\n\nRequirements:\n- php 7.4 and above\n- App \"collaborative tags\" enabled\n- For native speed:\n  - Processor: x86 64-bit (with support for AVX instructions)\n  - System with glibc (usually the norm on Linux; FreeBSD, Alpine linux and thus also the official Nextcloud Docker container and Nextcloud AIO are *not* such systems)\n- For sub-native speed (using WASM mode)\n  - Processor: x86 64-bit, arm64, armv7l (no AVX needed)\n  - System with glibc or musl (incl. Alpine linux and thus also the official Nextcloud Docker container and also Nextcloud AIO)\n- ~4GB of free RAM (if you're cutting it close, make sure you have some swap available)\n\nThe app does not send any sensitive data to cloud providers or similar services. All processing is done on your Nextcloud machine, using Tensorflow.js running in Node.js."}},"isFeatured":false,"authors":[{"name":"Marcel Klehr","mail":"mklehr@gmx.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5263157894736842,"ratingNumRecent":0,"ratingNumOverall":19,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhGAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwNDIzMTY1MzE4WhcNMzEwNzMwMTY1MzE4WjAUMRIwEAYD\nVQQDDAlyZWNvZ25pemUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC8\ni1LttutP8Cdaw4kvylGzLE4PdzQXAJVcKZBGvWGOYHNUTpSihmFQvXbGVqG2wyra\n2+MGURRnb8CXfIPhp2oZF/XiI7WkAipMTu8iQbUIRG/wXwKIqBCpbiKriTgryBrU\nagcnlLI6mPHvfTm4m11ly0ggN9ttrlOWTaqbQ5PjBx1SGf2Q/voHKvJ7toKqJ/vn\nc7RjDLgNcUixJE/kbd2tRUKPMLA79FeEqFgsa55mBNXZnhISKp0I0gey5IhGoo1M\nPWiVhaAatoGPoSoRwkHpqKHs/eVZFoNcQ3O2JuYP+oFYp4q+Q/Dc5YOQYJPb4Sia\nqkvYQDSRWd+yoqmHL/pUPST6B7sqqeCi4GrZ1dyUE27eg/ClkyjFxZrtkQB1xaDc\nkvDGAeysckQCcPNDvph95DlUNVC2DwV2GU8JLiYxqSUiwBXo8QjH97mkHQ2b2xTQ\nq+kZ+nE3rMHrBEGvLtYS6KisCyXApgjF7ur7HpvJ9JGMUz/ukx1XPv116XEQLg4n\ngXGZhawS/hnEqdpoBCBJNAM3ro8eBCNtS46xKcsPlDSKctiWvvY3L2SJgOxuQXJE\nLQIGJInRnn22fxZLlI1WzlGpXQNDMtu4QHMYAS57bQRoJb7K4yHCuV5G1qOfb827\n1/MmAtwCS3xs3c8A4YgLZ5MfxIG5oDGjzrv4m6YzQwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQA8tQLe5vGO0/nSqzPrn6V39E+a6XD/vb3Mm7bcQdhgnV9Cv6iO5EDr\njfUBE2Usgyd+ZzhrfQDSnYA1qrammcxLDqjfhRsIF2mUpsGeEdl9jyVJHghmByYq\n4DdVatXwAcpXNjDIwon6hZXl8UTEDBgPcEqjyOYXMhdPNLVNO8xmV39mjHEdCnv3\n+d7NJ9Y0xTy0QV1e8dCFLrgrJ3KmXBKgbJSH3baXl5RjPgAzWr9gcnfMM4peMz/S\nxDnfsx99WSOTPbiXfHkL4DK7YTDLx51/pxM923XfMvVXXr/cOJ0v5ly+5P7v/O5g\nhONElIgIPYOu96Y2t8nYBSfGKRZB4nLu\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"guests","categories":["security"],"userDocs":"","adminDocs":"https://github.com/nextcloud/guests/blob/master/README.md","developerDocs":"","issueTracker":"https://github.com/nextcloud/guests/issues","website":"https://github.com/nextcloud/guests/","created":"2019-04-24T17:47:00.142761Z","lastModified":"2026-10-13T19:07:55.350986Z","releases":[{"version":"4.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/guests/releases/download/v4.9.0/guests-v4.9.0.tar.gz","created":"2026-08-05T16:24:26.884759Z","licenses":["agpl"],"lastModified":"2026-08-05T16:24:26.947991Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"RyVQZFzMdZZHF77vT38OalaIKqyhPLAr/NkdvZ1VO3fcOUwD9MIBeu8eqYghVoY2XFBuXyfiMNEWzsw7u2OqcU/Di88AcADOUyvJ+MeFm1wYowZar24YmXnUZ30kFzmkCCxdEqopmH44nv3jD5nbHtxZZorRihxgZ2+SpOrfXKbYQW09rTBl+0x1R6mk+FUa+DWeZQyhrqXQ5HP8W4aJmSNiCNnOY/WUY/V+tSnIovqDhicgBYjdVI0630NvOc6xboJorvycU2RQOYkYD81QE6/CMr+ZOHTZVQp1UvHsd6B26hjUz0L5dZ+Ctuwf5aDKdu/wHe67tMUsaYp+YtxuWsfGiP6aCX2W5BV69auxJkBEn3w6gzHj6WOHICHqqxuiRO55A9fO5XiYbVV30EQ2agPbD07vOhEvI+SUDvwq2GspwrFV+mSEwdtph/aulP9jGK7SgAO1ukdMeoJpN2JpQeSWoOiO+0XLCEoTxz8N1grjogIB9pJKceMIhFz4rC99Y7t5oUxISZgdCUsNqvXL7JPVib1OUZiJkSZBfzLpaHitm0O+kZ5EphuVfIJ/HIQi5p01IEvVZgnvepJRfUYtInLpUsuQhvRtxMG1955vNEETcpKO0r3mPFNNhrDQsDozr9SKAeapeon+72B1bUfoEV/O5TJDzIXMGKF8qSCIpE4=","translations":{"en":{"changelog":"### Features\n* feat: convert regular accounts to guests by @ernolf in https://github.com/nextcloud/guests/pull/1619\n\n### Fixes\n* fix(tests): scope admin settings heading locator to the guests section by @ernolf in https://github.com/nextcloud/guests/pull/1645\n* fix(SettingsManager): Adapt to change in master by @CarlSchwan in https://github.com/nextcloud/guests/pull/1652\n\n### Other\n* Chore(deps-dev): Bump brace-expansion from 2.1.0 to 2.1.4 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1648\n* Chore(deps): Bump @nextcloud/dialogs from 7.4.0 to 7.4.1 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1647\n* Chore(deps): Bump fast-uri from 3.1.4 to 3.1.5 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1650\n* Chore(deps): Bump axios from 1.16.0 to 1.18.1 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1635\n* Chore(deps): Bump dompurify from 3.4.11 to 3.4.12 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1638\n* Chore(deps): Bump immutable from 5.1.5 to 5.1.9 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1640\n* Chore(deps): Bump fast-uri from 3.1.2 to 3.1.4 by @dependabot[bot] in https://github.com/nextcloud/guests/pull/1639"}},"signatureDigest":"sha512"},{"version":"4.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/guests/releases/download/v4.8.0/guests-v4.8.0.tar.gz","created":"2026-07-06T07:53:31.007569Z","licenses":["agpl"],"lastModified":"2026-07-06T07:53:31.084994Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"P2FBTEXgDprL189dQSAhMGS1UC8AlVk6cimu/Cfu7hDqy9ARVdZh01EU7isKfvzRfn+yT/wz8xvLPCngM0T4MpDafPYYo7x5jNkgEPPtl3gzYdM+1T9izLYBTtARL7LHZXchBpcBFW2eFtgU+UvzU9PRuxfOgz1xjF49f9qQ5XA9HeBfSQNnjSc3c6uqm93L1J/ieSx5dUo7Yj4XpJE+i6PRhH7UrsUaHneHQDycwS+yNpV5IK7nk/eXQpB1OmSi496bDHVBjYF7jMxvYS+Qti9aiyvRzy3QvexVRZvSyhJKjPKueQCEhxEoacyAjKRE0QB6ZXkaIt6Gg1xHVis/hIqGvJ/7psPi4UhxCm52rmsAs7IQx7/TOPtUcH/COUk5ZbB01qWeEZD1QtwLe6zpPjkWTAMM2pxXfEjmqSQOPAkevs0NoybI9Vjgp39V8gCL6tHEw1J/a67ZnuUTzI/cwusWbjTWm1ObuQrHpoGFDIGqMeb9FHNH5q7VIdYwMCMB+xsPSUvDFVMANEUxF6GCN/TBpnzlVk5bwZt7VEkrpXov90qJiMwPyOpNUwAnMA0lv77uvCvGrXd4mpBHWsbQwq1sVIRJqTmC6rOMpzAuuqzq1zpmezsbozdifzob1IOr5PSJEdtA1cl2Q1LNI9/jVSfq5SgkoSPvMzGDzy5VxDM=","translations":{"en":{"changelog":"### Features\n* feat(deps): Add Nextcloud 35 support by @nickvergessen in https://github.com/nextcloud/guests/pull/1568\n* feat(whitelisting): Explicitly tell which app is blocked to user by @artonge in https://github.com/nextcloud/guests/pull/1611\n* feat(settings): add a default quota selector for new guest accounts by @ernolf in https://github.com/nextcloud/guests/pull/1618\n\n### Fixes\n* fix(settings): use @update:modelValue so admin switches save again by @ernolf in https://github.com/nextcloud/guests/pull/1598\n* fix(settings): save the guest allowlist again by @ernolf in https://github.com/nextcloud/guests/pull/1616\n* fix: add missing index on email in the guest_users table by @CarlSchwan in https://github.com/nextcloud/guests/pull/1600\n* fix: avoid TypeError when the session user is null by @solracsf in https://github.com/nextcloud/guests/pull/1592\n* fix: convert recipient to user ID for email shares by @susnux in https://github.com/nextcloud/guests/pull/1572\n\n### Other\n* test(playwright): add happy-path e2e suite by @pringelmann in https://github.com/nextcloud/guests/pull/1565\n* chore: migrate away from deprecated OC_App by @susnux in https://github.com/nextcloud/guests/pull/1612\n* Dependency and tooling updates (@nextcloud/vue 9.6.0 → 9.8.2, and others) by @dependabot and @nextcloud-command"}},"signatureDigest":"sha512"},{"version":"4.10.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/guests/releases/download/v4.10.1/guests-v4.10.1.tar.gz","created":"2026-10-13T19:07:55.344589Z","licenses":["agpl"],"lastModified":"2026-10-13T19:07:55.383670Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"be3K37CilGxt7H/07GAlg1sH+VHBWwcuoVbV2A3AGMmy87yvXpYj1kPhM+d0/f/HrsZcetY4/urD7t0LtDGyY/AYWil+6Lsm8QM9uX8FrmlStoD03BPaVrk0QNbyj+/2v7RO0VD/3l3mre9fL4lRwsUhtt0njc+ToDqX2lr4ViUJycyRtbLDLGrYr7a5oT58cOVyAKqKSMm2BhaKhxXtGImxN/50aVO+9+aiFome1TUCoeGi/NzHI0/0hb4LJihc2A1NSCgHS659DbyolNoJSxLQ5FTBhrnqi0x/qgFrO1iE4oT6+EY4zA2dha7wIxY/Cj5JjobYKSx9a9YILzh05N6BV+A+cBmDq02e4pTPbnk/FJB0+GfrfkyeTxwZHVYd3BZlxne00kJc7WhN0lO0pI05Xx77YaaH7cfyOgXlU/1yODoiyyULAmvmWJYM2EYscMbfvDt6OXZPfCNbaA1oatOaeYLiq7BYg1fCbyQKMm5gviNxZJU/kccDCqDqz0eYhZJyb3uaHDD2UHAx/aM+KoWfVDj1E5CSI83aSzIy8D/sprYvoT35JqcHnC0rI39qegCwnQYEZmdtsupV7Q/ZcVuHKri+QnJUVBw8YDznNKoYWx0d/kfCDCCb0poKnFYSJjuIIRkE56rQdDj581SsIxr0EegQpo+VjpGhmTSFl/4=","translations":{"en":{"changelog":"### Fixes\n* fix: Remove legacy method calls from tests/bootstrap.php by @come-nc in https://github.com/nextcloud/guests/pull/1697\n* fix: embed inline logo in guest invitation emails by @klaussalminenq5 in https://github.com/nextcloud/guests/pull/1719\n\n### Other\n* Bump @grpc/grpc-js from 1.14.4 to 1.14.5\n* Bump @nextcloud/e2e-test-server from 0.5.1 to 0.6.1\n* Bump @nextcloud/router from 3.1.0 to 3.2.0\n* Bump @nextcloud/vue from 9.11.0 to 9.13.1\n* Bump @playwright/test from 1.62.1 to 1.63.0\n* Bump @vue/server-renderer and vue\n* Bump axios from 1.18.1 to 1.20.0\n* Bump brace-expansion from 2.1.4 to 2.1.7\n* Bump dompurify from 3.4.15 to 3.4.16\n* Bump joi from 18.2.8 to 18.2.9\n* Bump moment from 2.30.1 to 2.31.0\n* Bump nanoid from 3.3.16 to 3.3.19\n* Bump postcss-selector-parser from 7.1.4 to 7.1.6\n* Bump rector/rector from 2.6.5 to 2.6.7 in /vendor-bin/rector\n* Bump source-map-js from 1.2.1 to 1.2.2\n* Bump vimeo/psalm from 6.16.1 to 6.19.1 in /vendor-bin/psalm\n\n### New Contributors\n* @klaussalminenq5 made their first contribution in https://github.com/nextcloud/guests/pull/1719"}},"signatureDigest":"sha512"},{"version":"4.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/guests/releases/download/v4.10.0/guests-v4.10.0.tar.gz","created":"2026-09-14T16:40:33.189358Z","licenses":["agpl"],"lastModified":"2026-09-14T16:40:33.264162Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"nFn2leDd2DxV4FVRop3g2OzEYEFM+7vGvo+Ap3pa5mP5ta/CQedmdOv/cwMd4mTmLZBND/L9ZnqAPNhKHP1pNW2m+xBkK3vYoCZFy15Ul3nADYwh9IXsuSLngYBGYfihqFpTasBPq01Y3P6V25scKJy2VtyQfGhjfcm99zELHcGGkxqkNV9tsuw7m1TNMyKA1dO05NsGWD6gOqgzVnuicDzyQgE2fgEu8c5iqRx8o/YL9MVX04tlub3mif+EXGUDGZCaFVr7QTtmAGTGCi9t5TwOtWmT5SYPoiWsMUxr2C411ZPq4dpSnQIYV3F9s3FAIM+2S4xmUF1Q3gWf9xohPPFqpgL5nBB5IT0PF7jyxS858eSi27GQeYjSlWOcf1Ip3lCZL90uWQCjJssSCaDX3ln7RYuChPMCTWWz6vpfMkIAKZmm3vn8CFERL0LQQBY6W6bHTbMJrdMmQu4AAoAFVrIzHCPe7wr6AwvEGVBhB4hRGYGhSYJtm7SXKXl9CBc0YYAIhVvw0tc/xuHpHMiiIrWK+6ueP49/UVOiwT7ga3MTdWlULnbcIrgBOBYoXrT6+kyJufbnt8jnDuN1EPTRtuVHUtuJiMBjzVmaSIZh/mYuGc1+u9QNsYiVMIIEB0uNZmc8nLii/0xmlxlByd9lQw+4ZpqXMhTIo3LOrf0O26k=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9ndWVzdHMvcmF3L21hc3Rlci9zY3JlZW5zaG90cy9kaWFsb2cucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ndWVzdHMvbWFzdGVyL3NjcmVlbnNob3RzL3NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9ndWVzdHMvbWFzdGVyL3NjcmVlbnNob3RzL2Ryb3Bkb3duLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Guests","summary":"Create guest accounts for easier collaboration","description":"👥 Allows for better collaboration with external users by allowing users to create guests account.\n\nGuests accounts can be created from the share menu by entering either the recipients email or name and choosing \"create guest account\", once the share is created the guest user will receive an email notification about the mail with a link to set their password.\n\nGuests users can only access files shared to them and cannot create any files outside of shares, additionally, the apps accessible to guest accounts are whitelisted."}},"isFeatured":false,"authors":[{"name":"Nextcloud","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEATCCAukCAhDnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTkwNDI0MTc0NDU0WhcNMjkwNzMwMTc0NDU0WjARMQ8wDQYD\r\nVQQDDAZndWVzdHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCmRVtY\r\nAE04bwiuopOH/3K3lXc0Q3J1xlJLsVzUWnFG65teZgnmLdGiaD8Vr9x9ejapkLPK\r\n7/sK6jj+48hPXriortTpKk9vKrjB8GOvsK/zGBeVyTB+0JBUcMUcPb6WcJ+l8B0Z\r\nnsXzycOn0OttPhEWh6k6xMeo7vyyqp12L05HYlXm/bl5se4FaH+BoKF9YZN8lLNB\r\nXQ8dkIzAtkYbe9pitdDEtn7ODzUlqRFskTOwpS6DatmUSDzGRI6skfjhp0WrnrM9\r\n2udOmTgqM+fLEH22Tc8XsiBug8aUNBD8Hoe83RKeegal2FqYYuuEXxBzaSKdB82Q\r\n2TCQPVo9X/TZjgHkFzvOJ7lZ3OJ1601WpgA2bhr81Xh6HzUGoZZ7kLIEjxiBR3mj\r\nrxIGgDtNzwJUdUmkb3bx0CcfTvNmBSOZsLVOyuALw4h1jHlFPMbz9iQj6DwmKYRK\r\nWiOYHJOxHWcSzJ8Nbh3TvSiX2W/m+3rOf/kACJ6qKQCbjAe3q2jyQ5zfd1LES9ax\r\nTAOico+On4L1qJS6bJ2AfMvw2JKzt/PM07gNbgQl9vneZ7v0LEFK8m+RTx4rk9Ji\r\n31OZo1u260McHb6VlEuNywtDjdmljalI1JutN4mbinXrIxWXvNnIxBhVhGZZGrsb\r\nkQdoHTsyC+qOJHoSRlrSL+RRDf2bg3P27JLUBwIDAQABMA0GCSqGSIb3DQEBCwUA\r\nA4IBAQB6kyQpONj+vBdKuVZ+ETHBCZ3tbTt+6W6lNRa0L4pzwZIawEgG4GLjRS7u\r\nDKshe/bG7H5/qUx3ZoB/q3xDKdnLYU8c5cv27B4d3vmB/rN0H9pL29ODnigctgNK\r\nmJqH30kL0vGP3pAEXv3g7rHIUveHn9InnjPh5KixHhtojJB63n12mo8nstZuXcuI\r\n/A3xqHfny6BhnMH8jqWrkJbDgdZU7IzhaN9IUFaLIdL/50h+6AIOcwcr4xWV/fH7\r\niCuM5nGNkwb1CzH4NhJoofPNWi0JLC4lpfMJpujpVK0JvJ0+fmzyhjfUQ7TM6dc2\r\nijSdHo3FYhNvgeJSWtm2wRYg3Vxb\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"socialsharing_telegram","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/socialsharing","website":"https://github.com/nextcloud/socialsharing","created":"2021-01-18T21:55:09.865077Z","lastModified":"2026-08-06T14:44:32.135966Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/socialsharing/releases/download/v5.0.3/socialsharing_telegram-v5.0.3.tar.gz","created":"2026-08-06T14:44:32.126052Z","licenses":["agpl"],"lastModified":"2026-08-06T14:44:32.163903Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"WnquTSpmvlzT8k9MNX6De2PPmQfQs55yC4CUXDdSUFvglDiWMpWZuT8VsdIkKVN8nRajwYn6uQ3KD8uTTjs9Eulm/o8UyH4T4zNGIQjcvcjzRXHjEqzfh62Hs21QE38didrV91ZeNxv80rYVo3K+YzM2jVHTVWXNI9fp9oxsixUR3JIRHSXF5ToXPDFXCrhjmeYY18XespTltOmiPSeo01Kj5Er8pDezjOq3au55Xo6xmo2+/oEIPt7pIeIWQJ08qFKQvw7xxB4I8v2RgvMkIzKnq4qvo3AD1iHO5k/7Z+c3+UcYlIksT9mBpzQQkcV75Gpmd3D/mTXsLCG7QHU7sacFdelbBORp4acuzr4pNmA4gfDn6wH5XtEPdoQSgx7NoQmharto2YEECFPRPOtyMy9e3Ptsi7AEArt3D/25ZTLH8Xj+v+iJsEgcttRDgYxeuGVEmtObbcmkVmFjQCK6BRRdC0MhF4G9EbMj+JQgWIKCuFV4OFsdjsS/a2ds8CYIhBYHkrZIRXKpSawIcrjMDwPun1B8sz8gt33AUE623XzkdBbPF7vTiIZuCkWClAuI3c3bG6Nc8Z9MY18MpHZoMaNbSTyOXc5W9HV317By0s5vNwbWh1LNE+Ds2qgGzjVDfItWILDAxOW99D2jitkWygnuKvkw9v0c2sB9CUaCe9A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWxzaGFyaW5nL21hc3Rlci9zb2NpYWxzaGFyaW5nX3RlbGVncmFtL3NjcmVlbnNob3RzL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social sharing via Telegram","summary":"Enable direct sharing of files via Telegram, using shared links.","description":"Enable direct sharing of files via Telegram, using shared links."}},"isFeatured":false,"authors":[{"name":"Roeland Jago Douma","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhHJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNDExMTY1OTI1WhcNMzIwNzE3MTY1OTI1WjAhMR8wHQYD\r\nVQQDDBZzb2NpYWxzaGFyaW5nX3RlbGVncmFtMIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAwsq+hSG/f8hIRyshzsNllqQHeZ8Qa62yTBB3dbYiaV2DBS/6\r\nHR6w6jS56Dcx2hBWO/geiJoSPs1AaPkeMVM2qyukzUTclH/6He5pquINFkNhwNDc\r\nZb63O3ktC7KZ85WBoj7MfjAfhrif3Yrq5uhaYq1YoRKszzqdpzMOWvWrYiXaFapa\r\nJk7Hr/WfaCZjWmKtx5/Bl3NAXAW4wOWBY+ewMDyYfz+10B3aqM0SsjWDjI1wY0O+\r\n/MaxIBBC0gtIBhPiT6rDxUYLwvfD8K+M0eH8HgtcmbHZa/Y5YxeyeaZpqWBuWsAi\r\nY0/bH+Rt53RICVf+rLBvn7z1wGsBa0/Ft0uTqL+3qA0tpfd0yFq19Jqtt6AWyU5I\r\nRYg+0qEOHmlLTYw3Iv9PDMroQQNJcUp7ABvDBAVtHoTJR9mszInDR9AfX5USE+/d\r\nc/2ccmpsTCbWYG6ohCitWtnBjSHFQ0be3KZtFRzelOA9jKzKlzqOUHKAkby6lJoB\r\nvTVA2m0kAo+iPazaXh+y1PVaWVSedwOfHQk/YCDd0ALl6SZk/LmMTt7AReKuWhJX\r\ntYFpk5bD6dF6cammqz9Dj6xxgVy+F9atL8uouMMC4gXOXOdxof4qtDBTcZEkj0RA\r\nBMl+aN9rQ6PlmR7tVfVte43NzssaJ4XyBvv+FI/TksrBGdUfE9TkP+WwimcCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAb+M7DM5ks+dYQSSCk+5ujbIKqrlX2y5/TmGu\r\nmHTF+54oL4/e0aQsg5J7Q6DUrtxsgDRs0aiRAAgMc8OTOgVMvdJVeYFoG5qafxvY\r\nTzGPLjP+3sRvNl4qwvEf6t4KHWSPq8mo8Vj13BcOSMhrIFoM21yyR9X9q3675Qdj\r\nGEGKeAPc2nHGntDuV61ix1+GqwDaQFAoBzcfgXHjf1gRpSXzgMQRRJ/fzPK9kPTU\r\nWSxuGESiS+D1ffyEcNKZoj/nLK1fjLYFZPRGnChLzMdLmG1x+iVPdYWiUFiKCkdf\r\nPkvK65ZhSHZcvMNzZxKQQksB+DDxeCBhGBJKDTEMtmKM5YOvMg==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_saml","categories":["integration"],"userDocs":"","adminDocs":"https://portal.nextcloud.com/article/configuring-single-sign-on-10.html","developerDocs":"","issueTracker":"https://github.com/nextcloud/user_saml/issues","website":"https://github.com/nextcloud/user_saml","created":"2017-04-25T15:31:27.942887Z","lastModified":"2026-09-25T13:54:05.806979Z","releases":[{"version":"8.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_saml/releases/download/v8.4.0/user_saml-v8.4.0.tar.gz","created":"2026-09-25T13:54:05.791584Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T13:54:05.838483Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"UzrcoWfiCwIE4eT5UayvNRgUUbZ5KMrHmn3SNQ/E28U/6f/3LpY9aTtPXbjAXJeHBz5XdRouoC+i6AS/KaiH6uVwss2fBwqITX2vGCzcANdQXWK/kjzzaXeIQ2Z3Pew/qHW3ipuq082L+FYwVKBO3vwcUX1EQJMBB6emeaxqQ/gCtitYwQEamDFsKkxauYevqSHrWyp8jyL5p2RIGbIdmMXuFyCaCjTD5kjR0F8+67AEl9vjHjoqLRXx9Z+F2IPYLuqQoyTek1g8fra93lkfkRQ8iVCsc3umSDx5qPIZW/dbqJK+pFjXm/ODsuMeRAT+0W/vxD9lfNAHBjUMSFUUZ1vTVRZ7iLWBjIR9CJTpVN0WHlTuSdWn+ciFy1p1GdPUTUBFMfrD7PpYidj0WQmWkmb/+FYuyvw8YOLmv3ZCwh2MkBnBZs6xJQwv0agg9Eyr0x+mgvuAFHVJTiNioOA4zhLN7ZbihcSOrWLZjq9R74itnc81fg0tholHYSSX2G6tm+oZL/idaYGtsfVw1T/ONo8Qj9Gg5DeImeR69XAH1nM0YDYcnd8k5Jm8+LJwNcYNOMRe94A1gl/LUBCLkQ9FI+Gs4uyyKl21Y3oEJpfBXkKrLk2r7bx5O/nt6yO58lXSMgOq1WMZRPYJrQ4lljGZWzMQBHLL5pVy3T9raijVW/4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_saml/releases/download/v8.3.1/user_saml-v8.3.1.tar.gz","created":"2026-09-02T14:28:10.029290Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-02T14:28:10.100565Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"W4MYNI0+5x8XDFTjy08qsl96VMUDcO9s8Lpq0tIbnnlo0QUPaGGDk1wz5/Lj4JkQrjNdc01kVmZLmgn7s4NPYBUVnVFCpNRCsipOIeE548yb9qFHAosbwNOkhlQDjK59SeI0rZyHFNBrv3zECxGqSRMyXr3vvXoMtr/ogQzC6kH2Kws5M2IMInSXII4TXGsnZ0yVvSIKrIb91LL6/X+9pBbiine9BT8pvpDumrI6NyQwL0niai+BECpGDSnoq+h/UTfamWR3/WgHYJIhnH0IYhlwmBLz5XFDYBs+GGetkvDfZZ37zlve3RNz/+KpDp6FcX52/fQJfhMJzwbpNTGnHKphESWFYWQpM1k3rkTIfDNmn6559p6z3MlS/HfWwgESzdn8VNn6UC/dYd2iu7fOonKEHdysA8zRbI9Go5rs2sjvkcNRI738VY/UZOElM8CQx7td07BdBbpRXI9vrVKBT8vshmmR9PXMhL9htwbutN5ix0khM4w3S/m2/nNg2+48mwKR5dxuJu6b+8doOuTwYLisEaIaTvIYUtDad7usGnk93YDMtcgXAhdeF97snH2wE0A1WhY/OMf/kmbCLF8zsOn6Bi2bRQwqPL/HY8SGmZTqd1tOSCmZV+UvT2esq0EfyrRzPFbXS25r5QHLK8KsOnqEgzS0ProIKD1vE7u8c4c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"8.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/user_saml/releases/download/v8.3.0/user_saml-v8.3.0.tar.gz","created":"2026-08-21T08:02:20.384165Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T08:02:20.445141Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"h9yJiOlr7LHKefoBI9cwODrIWAz7ls1fsQaB7ItBCtZ2zm3HXbfS6/wRsAmmV79jmFpXN10agY7mD/v5mngzMLb1yE//XS8tM0r2b/6QOzLdqaFEWnJj6fRsrZSePs1dxv/8ekoUKrGFwlcl+ps8cpSlxtiMf9wJRP9me4NcXvOyi0P31j4CM4dY6p9Uc1gI5vBbdVfJW/ib1ViX5tfid2swe6naCejT6gLbIKroP3ExWj9QavY3zBsi7KVtH235GI00sYWQ1cxg7IAstWqIk87CDgmOjU7saV6YVX0HqIpgGlGfClVfDhCncKBPc6zsK/nRQQXMnuHw7U6DEl0XaIBgrjoYToJ6rPBgRWmUZQ56DHx860M3Jx1yMDlZCQRf7POWLUj6Ny0SySS5bSF6Egd6I6Re2d5O0/UWfuGRTmIRZobTdUKHTpr9AGvTsoC2cj0VOFsM4/9Ua9QQ1fdZrzMBgzYkJZN3dq8b0pcVyLjPjdwjo4nhgs7U++O4HKUIxgU/pwHgLtRi8Fk79b+r+/XIBdKsXbotlGPUbYm0DaH+8Ux5EcHXLhPeIQBycpsShl9FLgV3oq9E4tmG5DBhwKztDa65Rzko8+SA3WazHZoRrwRGLq4PvzNvGhLligiNjwfauA/Y9M9WIjLtS7QVzFEyUXOQ7gbC3O5r33m12ic=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX3NhbWwvbWFzdGVyL3NjcmVlbnNob3RzLzEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC91c2VyX3NhbWwvbWFzdGVyL3NjcmVlbnNob3RzLzIucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"SSO & SAML authentication","summary":"Authenticate using single sign-on","description":"Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\t* Authentik\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix."}},"isFeatured":true,"authors":[{"name":"Lukas Reschke","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":6,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBDCCAuwCAhBAMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwNDI1MTUxMjU0WhcNMjcwODAxMTUxMjU0WjAUMRIwEAYD\r\nVQQDFAl1c2VyX3NhbWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa\r\neOPm+OGMeCwFilBJCD4rOYgG5kQv3BGc0K2pBdL99FFpUk5yWirhb8sd2kHAGoPz\r\n13lM1HZBJm01zizOPef4Ng/3GSaVV10w9FJpFMls8QyAXZcp2sEukq8pMHeMfS2P\r\ngLhWHFQAVhrQbnAhjMr+JbNPSqehVOuvVVzaGd8ytWbKYjg/uvXozOSELQFvQ5Sr\r\nBSx+yvDzuPDiiaUtJf1MjgWqNmW68DjOBVkJNuvNtQqjbPMJDU10TACl6L2E0OdZ\r\nXGmlpVLYPb4f/PqVBeMGynhYpTK7q3LW1Rq6pSZhUwgvwJ/aclgAgrSFrMf8FGc+\r\nm5l5hlr/thqgqJuEf6SP6ZjUEjvc9CdNPVsRKKUHZVDy7fjrV6RJ93x9t4aHcSs+\r\nv6J7KVEn3SXvNMYUrFOBDN/ZY1n7kq5mFaT10NbmR7+jeNxzyjBLqnjVfhV5I7fS\r\n95c5+GB5/2hDPOCALaWMmZZoNV5EUcxX2zvhcYZt7GUNPoW8kv2UDklRHazcs3zh\r\n+ewABo5uQkT0dzYds7wa8LdHLT7AiWmgXF2Uh1g0FuX/IffzMCPMBdyVH30TvC81\r\n1F3iHgp0TlivGjqdOjTNJSeIc5RFWWgMPU+ihlrNZwre7g6reusgxdSfQfYgOsbI\r\npaLZMt30uq1hNbHpShHiGO1kHBYJvqLLk4/LuHkr/QIDAQABMA0GCSqGSIb3DQEB\r\nCwUAA4IBAQAoVPxn00a6HeVJXyVR78FkmVR+Q6z1kTkpf7wo5H+ALCAzii5q8mNE\r\nLwn1wJU9NWuo3yombpIziRol96FsEz2QVh/gOgUYuii3VwqiUEP+66qgGuqSXVZg\r\nEslq2yK38RxNiWVeoQfU/OU1pkQzd6E5FOY+W52k3gUoat1U4rPX4GpM7GnExXQ7\r\nc0ZD+SScGDFv25eE/xcUT/XS6K2nsGpTH73cR337N2Igkx4PCgk6x/WNtUKRp7h4\r\nMMvsWJ9bUkisVYmUZ661TX5SzNeTGS/P0EpR4yvxFkBlnVYu7Z+wEFmSSw3ooVgw\r\nvAKdpm8MCrCnD5XV4Em3/777YqW9nEB4\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"orostelco","categories":["organization"],"userDocs":"https://github.com/Oros-ba/orostelco#readme","adminDocs":"https://github.com/Oros-ba/orostelco#configuration","developerDocs":"https://github.com/Oros-ba/orostelco#development","issueTracker":"https://github.com/Oros-ba/orostelco/issues","website":"https://github.com/Oros-ba/orostelco","created":"2026-10-03T15:19:15.635778Z","lastModified":"2026-10-03T15:50:19.800162Z","releases":[{"version":"0.0.1-alpha1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Oros-ba/orostelco/releases/download/v0.0.1-alpha1/orostelco-0.0.1-alpha1.tar.gz","created":"2026-10-03T15:50:19.790320Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T15:50:19.853593Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"tN5BI9rMqEb3UtPcdbtIAwK6Gx/nogFEZSFHyxCYixfR6dKh3JGFb/uOnkDS+Js/me5HS13NKmorphQiIipxmLp6qWk0AymECFdP6yW0dRV3p0Iu5pVwtfnj+B+oiyQ1ZO3rlYBmirFKnwwYI29FJI1/tD+ZSb8x0LKxqVv5OPe1gSyQThOnB4wpW100wYFlgHUV/RwZ/BHD5bua5IwLy4EkDwnGyJ530Bo27aBLxMsfXHRcmaf0wOWk+UUqY+sNg10Hpv1PfOXP5u2kJrUUlCoaVbKOlncshGuOMes+R4FzxJCPFCYDuJgD5+DMEGJLnd640SdZalVUIfBBDuoFGsdDxXv2ggMcvKnBEGZAHdwWp9XwYQ8gzhDJmdxsrdX+POfKtbL/Mh4PQ3aJFpkVPRPJNv6SFCsmpPa9NIEGs+XieAZ3v0rcVaSw/rg0VqoeyWtMF+lkEorzu5uzn7AlTM78rX8U53Nidn/eQULvC3rZr8Zzj5QWkAijn6UV340jIn7AZLLNSrKc4bKRiSkZ/U6jlHFMul9/ewiwUZ5MObIo4hSflD13Fk7575C8mvMCxZV1o1WBK2a0wBMSK0sFbPChqFstQjqlcuB5my6xO9w2EaJDiEKavswxbNZ8jkx97gXbiZLbgbxeDWSLM1cLclg3f55WhCHHcN+kz5cDwUg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Orostelco","summary":"A Nextcloud front end for telco OSS/BSS applications","description":"Orostelco is a graphical user interface for telco OSS/BSS applications, built into Nextcloud.\n\n**Early alpha:** this release is a work in progress and not meant for production use.\n\n* Top menu entry with a Vue 3 page that talks to the Orostelco API\n* Administration settings for the instance wide Orostelco API endpoint and API key (the key is stored encrypted)\n* German translation, following the Nextcloud user language\n* Call log of API requests in its own database table\n\nRequires Nextcloud 33 to 35 and PHP 8.2 or newer."}},"isFeatured":false,"authors":[{"name":"Mirza Abazovic","mail":"","homepage":"https://github.com/mirzaAbazovic"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhQ/MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTUzNDMwWhcNMzcwMTA3MTUzNDMwWjAUMRIwEAYD\nVQQDDAlvcm9zdGVsY28wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDE\nayWP/cQyDoFgXoPFm57GL36UDT+D9nXXNURSwrZwEulnwS7vZDh3nwjOKzzXMX+R\nGz77Y8l9N/I4onUYqzDHizvaI3aUzOFzrY7o7RXyGhb//i9hGWUegc6QgF/Ax5MX\nIPmPww6/2NZIrX8nEB3/TfvuJH1+iex1XnzfRrJfAODOjIUvpzZtOPvD1+KE/avx\nnt/ZwNU2BkxvrCEIqpoEym/uRrQ3MMKplLzaV/Ufiivojam0PU2wHgg4fg6kiI9v\nOaITDYRjTx88QeoX8u1G65c4l2XrSD/pJ5OsGqrhzjK+RiBKQx66HvzxADDFJRQD\nvgN17XuBXWlmUFqQ4XuGoe93hMozSJpXRhHoDY/lATd0UgVMKucN/u7wR8qHqSvJ\nqPffbB2ikK+I02QcvVHxQxboAkgNxBMsXop+SHfgXZ0i0JJlAVD/TkLgkkAGrdVj\nX52NRLxjZs8lsGHXK14sHNCEMzHe+A69fl5CNPp/hFyrmBDQUx1r4t+yXb2EOXvd\nKYzAkAyZA2X9kjeni6gcKjPJ1ghxDZPi5K5Qn9RDWIFz5A5/+kU5qAqVbqydSw9j\neel/f71lLJMSzekXKQdMRt/OlVwREwzsBFoJOTVYhCuiNfeMnmeFd9yMbMbdai9C\nXH2Dh23KJNUnPurGShhY8wQlRhEKtf5/zWeLgckzPwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBoWcW1c5+HkUTIYVeLTnsgQhpHzPL/KNB17YdspDmp3Wr9ST/ny9Fn\n/4m4WAf+1skX/qauZe8tUiLfmatbmkz04tdX92L1pgq9QMHp0tC+V9gfSrUyza6a\nZbE+/w6Vzfx4gCIlHlVQHCnyRwhadcXpmuHllcCV5jzxJykL+JApqhi/KKQEAzhX\n3PmiMMOd6z9a9o+sQdWoRtmFXwLzcEJPNpuiTC9im4n1OySLaBGGithSSIhD2lPy\nNehrjkgVkyu93i+eJfGH14I7msikbAgxL+TAeBK6xpNKR/3ZRfHovkSUGuIZtomt\nyB9iwt0utLfqzpcqes/hul2jixuCVAqC\n-----END CERTIFICATE-----","discussion":"https://github.com/Oros-ba/orostelco/discussions"},{"id":"atrium_secureshare","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/atrium-secureshare/atrium-plugin-nextcloud/issues","website":"","created":"2026-07-29T06:12:43.591242Z","lastModified":"2026-10-21T08:18:25.412442Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/atrium-secureshare/atrium-plugin-nextcloud/releases/download/atrium-secureshare-v1.1.0/atrium_secureshare-1.1.0.tar.gz","created":"2026-10-21T08:18:25.390590Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:18:25.446223Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"mTWpCdp50K7XEw5JJQsfeidvsx1joZgYymD+5OBh4Dsc7VlasczJwAMdaTrtPcC7wurGjEOUyqffV9ERkrNBgZ7On18C7aJZlEO5l1WEB4KmsNSNZda9eEeGf8ywS9n0rK8ALOo3vGEGLiX/N3jDGnntIXX/s2k2CTClCW97XmGCP19b5hwtjKHZxI9f625gzOL5DwmNj9m5TYxhXmKZKwGleI8Pzt0IYkcQ7b40pwAyC9CwAMcwswS0Mkog/q+qja301NC7rUtOOoBIJdjNCMHYw2c7x9Gjd7SwPzW70AJtCz2gFg2lLZLmBVIgeEFwywacCdIhRT+cf47b4ulAJOfjm18Wcf7cskDSfkceSCRpmCdwUwPv3yvIX/b3tZRG6VtY6XQiTNAf2R7zuHkCcXZXXryPgJLRIBOgBT0oa6oGesns8q1dz2az3Ssc/zV265QQirndUEneAa9g6B1ee8pE31WIjnCjw5id41Nyicxq/SLubIMtWI1sNUBJ2X0h8HmkFzQr0UCFKXfoYBtZqe2KraPxKRyr6HAq8OClspWF/8sPtrrBr/mzNvNaBuKfiu/NFypUpTJQer40lqxjDvy3/DSWftB1iXP5blGDj1284FrFFaHGDBAQatnK6yuAvWLLR7uw/avpIWbNpMQfju6sFC4epnpPLC/9NAbr8qg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/atrium-secureshare/atrium-plugin-nextcloud/releases/download/atrium-secureshare-v1.0.0/atrium_secureshare-1.0.0.tar.gz","created":"2026-10-01T11:13:02.770043Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T11:13:02.821572Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"HskLMTjnM1/5QtC54xnXSj5bQkzXsSHs03DCRyRXXJFoMe8iARoNv7ZIQje4o5EEY6z9RQf/s2KgRacEwFoPHSZdGNV4XuMrHiqHJhCfAucHXyn9AC9leUQTHR57nWoZJQpzjYhw3auT4/q2ndjwwBnrPjiTYaqmG0N6/ThAj3v4AR2vmxC8fWOEpIM+lKwHe4FWmmmCRCdiQmta7dltrBIc4VbkBvsrPJdXPQ73yRJQLizgg5/f6pmgNK0HZcgGuE1OXMTbORczrXrEYxSIPA+tuywfwpUHDBSKMKkUJ45qyrWhj+1way/I/+3rd6uY7NSKWCu98mrRL9yN0UMD4RChNA6SNWYTTfvq0l6OkKNmXlw1x1SSdA1bSQDfNPvheOAqK0QVIqobbK/Dm0BExFdbbkDJoHPujrxySunKTI+5mDvQageS0FK96bzIWaXvGM/Frm99ko2iflfxyFoKvXQvzTtPPB5Dw7jh50ieFGeCC/Us97TPqrhKn9UCc8WHH0Vq5fW13TFh3L4QyPg1WkRKPVXF63U5yLBPhpEAbbJ/YCGFJbTqrFDRZx10fO03r2AVYTwyO83HOR/UstvyMK/KLxgA8cml5Kn+0gw2BQVWxKvqOKS+jsazohh7XXo899x8iFUU8YF99sGDWTlSF5aPW15ZPXHu0kKW9nocPhY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/atrium-secureshare/atrium-plugin-nextcloud/releases/download/atrium-secureshare-v0.2.0/atrium_secureshare-0.2.0.tar.gz","created":"2026-09-16T14:02:20.151514Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T14:02:20.949711Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"My4zcCiJlSPF4hh6oHg8YEeQ6Yt5sDHgqd3upy2HxoDAUhSyjNpaH9926Hmnz1Gb7OFlbbApIl35W6e4ORotbGyoFx508BNOoZUrtebuPxrmpYJCqSRQ8tdfsnSP3nU4ENESMd/iLHDE1f4LPSAJX4/Kdx5/NMUjaviA1XrQxBj69qteZSq6a+NidzrUPPmZLxu49bnrv7s+eGVwaRe5txtH2V5hjbKwi1zB1WUfUsZzg5wGynGThqpNTss0V4p8nQY+k+w6bSikn9TLpPzJZei4kgCIGrDbMrA+/kuiYVtKvju8yT97LRyPXiHoq7tRLE/iAKNIdHrXDJat3GfCllIqAY6wKFnNf2INIk6rwHUf8i6QkikvTu1EjhfulueRw9QcGhGO1lGBzbgGyISJe20AvQPKVrv6HuuxAmgBytwCFoz+IIqCb0Ln/nMSYLvxj6mUJUIHLdjfh6RnrOjR9abWatGq4mHDSAvIBJJGnWk3wkGqR/5NUdRahaivET7rDc3BZXsLt0SG2U6t7XJ16CO0V3ESv9Hd4LLBVhJZZM9eA5GcGx+pJzciISor5hHvU1iOcpEJbQ4FKcz+04Bcwt/0gGuNRTME4y+DVtmGdBcBsqY/ip7BxZJdhQMiDJmcZaYsBJHlGAyFBA+9HeXAtFtNPiPwT8abaQV+Rykv0Ww=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2F0cml1bS1zZWN1cmVzaGFyZS9hdHJpdW0tcGx1Z2luLW5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvY29yZS1saXN0aW5nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2F0cml1bS1zZWN1cmVzaGFyZS9hdHJpdW0tcGx1Z2luLW5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvY29yZS1tb2RhbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2F0cml1bS1zZWN1cmVzaGFyZS9hdHJpdW0tcGx1Z2luLW5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvY29yZS1kYXJrLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2F0cml1bS1zZWN1cmVzaGFyZS9hdHJpdW0tcGx1Z2luLW5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvbmV4dGNsb3VkLWFkbWluLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2F0cml1bS1zZWN1cmVzaGFyZS9hdHJpdW0tcGx1Z2luLW5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvbmV4dGNsb3VkLXNoYXJpbmcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Atrium Secureshare","summary":"Identity-aware secure external file sharing via Atrium","description":"Integrates Atrium Secureshare into the native Nextcloud sharing sidebar.\nExternal recipients are identified by email address; access is governed by the Atrium gateway\n(identity-bound, MFA via OIDC, mandatory terms-of-service acceptance and a full audit trail)."}},"isFeatured":false,"authors":[{"name":"Kanton Bern","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhOtMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI4MDkzMTM5WhcNMzYxMTAyMDkzMTM5WjAdMRswGQYD\nVQQDDBJhdHJpdW1fc2VjdXJlc2hhcmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQC1ODS51maiMWsQ9t/JTlP0niRW4IH73Y2f6fe+urFuxHMC2YTlB4jj\n7vTeTneYCV1J8cAeUiKgOVgeDW6S0gLXXNfbKGWe8dE8QBT+YMPk72Z6fy5z1QzH\nghgVF0/Dsx8xBdlFf9E9eVCS25SIKw4gdcYeDB5bW8O5nWrtRhcPiWb630tGRwDt\nemz4uMszUy/C5pLTFB1DIkNvRY6JdTMc3VJSOtFFEvbnBuR2fyIgoiBww3n4BQRA\naYZI3Gr5yl5PHhpW/TNGOMrX1YxsScJxtnbbQVml6mQvmRqv/3wRF1yLBD3YTkm1\nMHF56RDPsC8S0oBlXEPb/kkSpwtmYBzDAszf7v5mkd5wsQUKViGDQMBRZaZWT2PB\npBLg//HPmV3l3MY028AOYD27SeGvaspB2H4mXKD8ANike61WnPGI5IQaVplSq2fA\nFeZBl4pdXgna08VsbNfJ/ZRyD+tBkbPoxJbh7vzVQV5vL9Xybp+RSq802oI8auv5\nFEqyOjwpxRZBy0UyRXFG+5ZxkapxFOBkN9QU235tdRdwB7eiII41Ahy/pqfyiA/L\nFRiY58EL7YfWtLRyBF+YHUqnc91LpWGQSoKlcCQgxB7/flUXnhH7+AIzGziqpPSK\nkijtO8vtHPDTQPhL5V23Ssh3bxunMRNSq+b0UDia5+YrRWk9JneTdQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQBNDlZWbzCQ0qdCEnYeNd85RODVp4hQFJvTBHLog9OT\nAm26v8iBd3PchPwR/m49ZNe4t1ZT/sSrZ8btLPbGdOYkSw/Wl4xYgx4k3UXnOMAG\ndryeNH8GAuOOjDXvPbKmU0awZqp87lZX0EUBta+ND0lQb0Lx2MyzM0RhqFDYYrNa\nDfpSIaJFBYYDpKMVl+ubaTbeuW9cvkhmu+M/so0McqeMm2bHJFdSXD9A99Yr7xWo\nutOOYUaMMsuRMwmPuZWx0zuCqlDtGw5hc/0OElcCDTP31osYhfxQyGhbBRSvThkm\nZbtysrZkYAM7P0qIrTBA6MnbQznh5oo5BfgKyzW7S2zE\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"maintenancecheck","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-08-19T14:21:10.538825Z","lastModified":"2026-10-10T15:28:58.090929Z","releases":[{"version":"1.3.3","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/releases/download/v1.3.3/maintenancecheck-1.3.3.tar.gz","created":"2026-10-10T15:28:58.076270Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:28:58.171985Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Mztl/9Kot581OptpHkXRQt46aPobM68s4IDo0k6lbvvD1xho9zNXtcBih9JNXn11/0J8dnWmr7GbmBqXI9kx3E97HcigVYLOK8VDAie0/PzGXpylbFy/nNSGpPMtmoGwzZC2OlAaF3Mj5xuo70r2dATnRta6LAiPQdt8FiOBb61R3YmeQLjE0uiFW/PVtZXmE7QNnLsfidzBchtRv0y7H2FlwPoBBA8Yd3gHUkAx5hAymyYhfNihzRe6Z2Wbk9/JFlL+yi54RdRQGdW6k3NXIOCl8uIZyXhqi12w8w5nn9ZggUIz31+FduO01JddX7dHrOwKKSMZW9Ca6X9pVXX5XVeTHqyW7wC+Gl97ZyUbxLrPgpg6Lq9fY9S1jVoTXyovozdRHuMa/UdpAuzKyqTpkQFkCBHlDCZhqO8dbSFWD9M++ysUl96fVq+kI/8rf9KTJ3fsnUaWyU4c2XGIakhIbdi0xQpUWl05gUDKy/3RWWShy31nj89/N1mQVfXBunWV0fNnmNp92gOyQb2OaOBwHXbHyMoAwpsrz9gn7LWEOrUQuBOo3e06DaHrpN71DcpdDGJmScNvM8OP46pCjXVCc/fLkkU4A5PXLLNRZG2/Mgq0/D50mcSjifHsx8poZy4gi4lzqRwgSkIkDZydCpTC5Zwfggb2cfuGlbXTzxIHS7I=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.14: form-border token-shadow fix + l10n quality pass + e2e contrast probe"}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/releases/download/v1.3.2/maintenancecheck-1.3.2.tar.gz","created":"2026-10-04T19:10:57.181195Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:57.282843Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"NRld16hkHqHjYl38oQdM0Nb6NWG2V0Oj+AGb/kx2N2rN5yfSX9Sd2dk4uyMVtROVuz0kZDv8Da8ygznBkfZTWlr4/une7N04+duzD/TXAYv075DT9ws00KVr6RsgD8J7/PMvcWUukl18Cepc7OaXbYcmTjp7Bq97wf49v8zgGBXhYObjYO6v0pbL8VrRyRPrjqsuFavTdNw5zoTAIhMdl9cqV7p2tEIbcsROQ2ayw99sZS79j00Mr2wIYH8F+JKARFaDU4G0To6YO/eNtdUGYHbQkGdzzBo6M+QuA3k79nVEtlvSkUmeSErtzb/4IfcYGz92EiVfFirEgoPZ3H4Dcrlb5Qs5heZcGQwJvDAvZThCcOT6fZKzZXt8mZg77e+tJw6gXLiEShtZddgsZryOWNUExd/hBYuyTijNlb6lYhtH9U4MY99G5A7p1Q1Usfp+Umw0XykUpQfIJ7Ojv2eKDrs1PXvmdjhs9GC/Z6InFKkCi9cEwKnnLspC/VYtTcqLmAROVZmXVBrmh9FIUAAKk/UqMp7rYRaJpMiqfX8pC5Qkr9JjRJzvL/VRSAnVUDsIxnpjG7p7ZFP6uUmKWKe6wZjnevV0YbPeX3BH9RkD/7RZObQhaWcab8LvCIGJmZ+axexRnwmyqkZ/1J4MWReNGUh1claKuUioPMqyjGUNtMI=","translations":{"en":{"changelog":"### Fixed\n\n- API hardening: stricter request validation and error paths.\n- Localization: normalized work-order terminology and restored missing page subtitles.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract and e2e coverage; store screenshots refreshed."}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/releases/download/v1.3.1/maintenancecheck-1.3.1.tar.gz","created":"2026-09-10T20:26:19.609382Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:35:30.900571Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"MeyQAXZ6V+d6tqhZE7SSq2klyVgYEWZjWQwEaFPvxPbWKDMkGy6NUrjc9nW1IyZj64qtDmGt550kaRHx1jKo69RnaEH3Bih+dPExaqvJ3GLluIlAHuZed56M9ZHFa65rjhutK0WpzW5Ivt/QnOin1514hGKb/N9pirPSq0XT+CcqXOEFlTeuxiS7n0CAqGTjAznr/44XaqZFAfQ5Ls1af8taz5TyxmzUBz/W4H6MDfhTdmigDVLlUZ6M1fG+IXIgL3/ATIncRBRttDIwb/6nHS2CHAQOyo/O9WA1+2sRiDiqqo052lC/sdxdD7ReC79c8wdEVy0Mmn+hz5rhRcg6ahdacyH8jVG2SkEr4AiggU3XXRehjUwaTHqUHnQl8Xg6jL5JTnApDHinRJVpP07LXZGnQEqQf7mvuqyhv07CD1jv8dyiZqpBCseTID8P7CbWbi8k0ivWgC2e1ObEta+emlZPeVtbpTHnw75Brsvwitz5h7VX7rcK7f6CdYc6WJy5noftX4xmsiIcaKjYar+VzWOgFt6pCSwsVV6848UInN+BkLW5Er9bT6CajHEWgt8MlD9epxHt6GILCaRsg5kUiRX0QqaffsmOzx4SoUB6wmsa+8XM+FLZ0laD3cgcGXCWeSoblFThu6bM6ywPUyE2byjs7Idrd24NfPyMe+nGUs8=","translations":{"en":{"changelog":"### Fixed\n- Zeus SF-Z04 checklist idempotency; pending work-order evidence locks.\n- Help / Support / Get the App WCAG 2.1 AA hardening; English brand names only.\n\n### Changed\n- Expanded dashboard/navigation/ops l10n; native copy for da/nl/sv/nb (no German paste).\n- CoreWebUpgradeBypassPolicy; refreshed screenshots and release assets; feedback footer."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTAxLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTAyLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTAzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTA0LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTA1LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbWFpbnRlbmFuY2VjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvbWFpbnRlbmFuY2VjaGVjay1zY3JlZW5zaG90LTA2LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/refs/heads/main/screenshots/maintenancecheck-screenshot-06.png"}],"videos":[],"translations":{"nl":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Weet wat er op je lijst staat. Sluit het af in het veld.\n\nMaintenanceCheck verzorgt zowel terugkerend als correctief onderhoud op de Nextcloud die u al beheert. Zet klanten, locaties en apparatuur in één register. Plan op basis van kalender of meter. Zet geplande bezoeken om in werkorders met checklists, foto’s en optionele handtekeningen — en geef vervolgens het kantoor een Servicebericht-PDF.\n\n**Gratis webapp** (AGPL-3.0-or-later). Companion-apps: https://nextcloud.software-by-design.de/\n\n## Waarom teams het installeren\n\n- **Zie werk dat te laat is als eerste** — due-board voor te laat, vandaag, de komende 7 dagen en de weken daarna, plus openstaande jobs\n- **Rond taken af met bewijs** — voorwaardelijke checklists, foto’s, optionele handtekening; jobkits en vaardigheids-gates wanneer u die nodig hebt\n- **Plan de dag** — dispatch, dagrondjes, capaciteitsindicaties, exceptieboard en een snapshot van een ops-KPI (CSV)\n- **Houd het register netjes** — klanten, locaties, apparatuur, printbare QR-stickers\n- **Behandel break/fix-werk** — correctieve intake, foutcodes, jobminuten, opmerkingen, documenten en einde van de garantie\n- **Ondersteun terugkerende inspecties** — verplichtingenpakketten (incl. DE/EN-starter), afsluiten met beoordeling of voorwaardelijk, Prüfnachweis-PDF\n- **Blijf in control** — kantoor- vs. technicirollen, optionele allow-list en achterstallige Nextcloud-notificaties\n\n## Duidelijke grenzen\n\n- Prüfnachweis-PDF’s zijn operationele bewijsverzamelingen — geen juridische certificaten. Vooraf ingevulde checklists zijn sjablonen, geen juridisch advies.\n- Klanten vormen hier een veldregister. Zelfde naam in een andere bedrijfsapp is niet hetzelfde record; er wordt niets automatisch samengevoegd.\n- Optionele voorraad-deductie na sluiting blijft standaard uit en blokkeert nooit het afronden van een job.\n\n## Vroege release — feedback welkom\n\nDit is de eerste App Store-release. De app is volledig functioneel en getest, maar is nog niet breed gebruikt in de praktijk. Meldingen van bugs en feature requests zijn zeer welkom: https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB of PostgreSQL"},"en":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Know what is due. Close it in the field.\n\nMaintenanceCheck runs recurring and corrective maintenance on the Nextcloud you already host. Put customers, sites and equipment in one register. Schedule by calendar or meter. Turn due visits into work orders with checklists, photos and optional signatures — then hand the office a Servicebericht PDF.\n\n**Free web app** (AGPL-3.0-or-later). Companion apps: https://nextcloud.software-by-design.de/\n\n## Why teams install it\n\n- **See overdue work first** — due board for overdue, today, next 7 days and the weeks ahead, plus open jobs\n- **Finish jobs with evidence** — conditional checklists, photos, optional signature; job kits and skills gates when you need them\n- **Plan the day** — dispatch, day tours, capacity hints, exception board and an ops KPI snapshot (CSV)\n- **Keep the register tidy** — customers, sites, equipment, printable QR stickers\n- **Handle break/fix work** — corrective intake, failure codes, job minutes, comments, docs and warranty end\n- **Support recurring inspections** — obligation packs (incl. DE/EN starters), pass/fail/conditional close, Prüfnachweis PDF\n- **Stay in control** — office vs technician roles, optional allow-list, overdue Nextcloud Notifications\n\n## Clear limits\n\n- Prüfnachweis PDFs are operational evidence packs — not legal certificates. Seeded checklists are templates, not legal advice.\n- Customers here are a field register. Same name in another business app ≠ same record; nothing merges on its own.\n- Optional stock deduction after close stays off by default and never blocks finishing a job.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB or PostgreSQL"},"de":{"name":"MaintenanceCheck","summary":"Keine Wartung mehr verpassen — Fälligkeiten, Arbeitsaufträge und Servicebericht in Ihrer Nextcloud","description":"# Sehen, was fällig ist. Im Einsatz abschließen.\n\nMaintenanceCheck steuert wiederkehrende und korrigierende Wartung in der Nextcloud, die Sie schon betreiben. Kunden, Standorte und Anlagen in einem Register. Termine nach Kalender oder Zähler. Aus Fälligkeiten werden Arbeitsaufträge mit Checklisten, Fotos und optionaler Unterschrift — danach ein Servicebericht-PDF fürs Büro.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later). Companion-Apps: https://nextcloud.software-by-design.de/\n\n## Warum Teams es einsetzen\n\n- **Überfälliges zuerst** — Fälligkeitsboard für überfällig, heute, nächste 7 Tage und die Wochen danach, plus offene Aufträge\n- **Aufträge mit Nachweis** — bedingte Checklisten, Fotos, optionale Unterschrift; Kits und Qualifikationen bei Bedarf\n- **Den Tag planen** — Disposition, Tagestouren, Kapazitätshinweise, Ausnahmeboard und Ops-KPI (CSV)\n- **Register sauber halten** — Kunden, Standorte, Anlagen, druckbare QR-Aufkleber\n- **Störungen erfassen** — Korrekturaufträge, Fehlercodes, Einsatzminuten, Kommentare, Dokumente und Garantieende\n- **Prüfungen unterstützen** — Pflichtpakete (inkl. DE/EN-Startvorlagen), Abschluss mit Ergebnis/Mängeln, Prüfnachweis-PDF\n- **Zugriff steuern** — Büro- und Techniker-Rollen, optionale Freigabeliste, überfällige Nextcloud-Benachrichtigungen\n\n## Klare Grenzen\n\n- Prüfnachweis-PDFs sind betriebliche Nachweise — keine Rechtszertifikate. Mitgelieferte Checklisten sind Vorlagen, keine Rechtsberatung.\n- Kunden hier sind ein Außenregister. Gleicher Name in einer anderen Fach-App ≠ derselbe Datensatz; nichts wird still zusammengeführt.\n- Optionale Bestandsabzüge nach Abschluss bleiben standardmäßig aus und blockieren den Abschluss nicht.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB oder PostgreSQL"},"pl":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Wiedz, co jest w terminie. Zakończ to w terenie.\n\nMaintenanceCheck realizuje cykliczne i korygujące prace konserwacyjne na Nextcloud, którą już Państwo hostują. Wprowadźcie klientów, lokalizacje i wyposażenie do jednego rejestru. Planujcie według kalendarza albo licznika. Zamieniajcie wizyty, które są „due”, na zlecenia robocze z checklistami, zdjęciami i opcjonalnymi podpisami — a następnie przekażcie biuru PDF Servicebericht.\n\n**Darmowa aplikacja webowa** (AGPL-3.0-or-later). Aplikacje towarzyszące: https://nextcloud.software-by-design.de/\n\n## Dlaczego zespoły ją instalują\n\n- **Najpierw zobacz zaległe prace** — tablica „due” dla zaległych, dzisiaj, najbliższych 7 dni i kolejnych tygodni, plus otwarte zadania\n- **Kończ z dowodami** — warunkowe checklisty, zdjęcia, opcjonalny podpis; zestawy zadań i bramki kompetencji, gdy są potrzebne\n- **Planuj dzień** — dyspozycja, wyjazdy dzienne, wskazówki dot. dostępnej przepustowości, tablica wyjątków i migawka KPI operacyjnych (CSV)\n- **Utrzymuj rejestr w porządku** — klienci, lokalizacje, sprzęt, drukowalne naklejki QR\n- **Obsługuj prace typu break/fix** — przyjęcia korygujące, kody awarii, minuty zadania, komentarze, dokumenty i koniec gwarancji\n- **Wspieraj cykliczne inspekcje** — pakiety obowiązków (w tym startowe DE/EN), zamykanie z wynikiem i/lub warunkowe, PDF Prüfnachweis\n- **Miej kontrolę** — role biuro vs technik, opcjonalna allow-lista oraz powiadomienia Nextcloud dla przeterminowanych\n\n## Jasne ograniczenia\n\n- PDF-y Prüfnachweis to operacyjne pakiety dowodowe — nie certyfikaty prawne. Wstępnie zasiane checklisty są szablonami, nie poradą prawną.\n- Tutaj klienci to rejestr terenowy. Ten sam opis w innej aplikacji biznesowej ≠ ten sam rekord; nic nie scala się samo.\n- Opcjonalne potrącenie zapasu po zamknięciu pozostaje domyślnie wyłączone i nigdy nie blokuje zakończenia zadania.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB lub PostgreSQL"},"sv":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Vet vad som ska göras. Avsluta det i fält.\n\nMaintenanceCheck kör återkommande och korrigerande underhåll i den Nextcloud ni redan hostar. Samla kunder, platser och utrustning i ett enda register. Schemalägg via kalender eller mätare. Gör de besök som är i tid (due) till arbetsordrar med checklistor, foton och valfria signaturer — och ge sedan kontoret en Servicebericht-PDF.\n\n**Gratis webbapp** (AGPL-3.0-or-later). Companion-appar: https://nextcloud.software-by-design.de/\n\n## Varför team installerar den\n\n- **Se det som är försenat först** — due-board för försenat, idag, kommande 7 dagar och veckorna framåt, plus öppna jobb\n- **Avsluta jobb med bevis** — villkorliga checklistor, foton, valfri signatur; jobbkits och kompetensgrindar när ni behöver dem\n- **Planera dagen** — dispatch, dagsturer, kapacitetstips, undantagsboard och en ops KPI-översikt (CSV)\n- **Håll registret snyggt** — kunder, platser, utrustning, utskrivbara QR-klistermärken\n- **Hanterar break/fix-arbete** — korrigerande inrapportering, felkoder, jobbtid i minuter, kommentarer, dokument och slutdatum för garanti\n- **Stöd återkommande inspektioner** — skyldighetspaket (inkl. DE/EN-starter), pass/fail/conditional close, Prüfnachweis-PDF\n- **Ha kontroll** — kontors- vs teknikerroller, valfri allow-lista och försenade Nextcloud-notiser\n\n## Tydliga gränser\n\n- Prüfnachweis-PDF:er är operativa bevispaket — inte juridiska certifikat. Förifyllda checklistor är mallar, inte juridisk rådgivning.\n- Kunderna här är ett fältregister. Samma namn i en annan affärsapp är inte samma post; inget slås ihop automatiskt.\n- Valfri lageravdrag efter stängning är avstängt som standard och blockerar aldrig att ett jobb blir klart.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB eller PostgreSQL"},"fr":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Savoir ce qui est dû. Terminer sur le terrain.\n\nMaintenanceCheck exécute la maintenance récurrente et corrective sur la Nextcloud que vous hébergez déjà. Réunissez les clients, sites et équipements dans un seul registre. Planifiez par calendrier ou compteur. Transformez les visites à venir en ordres de travail avec checklists, photos et signatures optionnelles — puis remettez au bureau un PDF de Servicebericht.\n\n**Application web gratuite** (AGPL-3.0-or-later). Applications associées : https://nextcloud.software-by-design.de/\n\n## Pourquoi les équipes l’installent\n\n- **Voir d’abord le travail en retard** — tableau des échéances (en retard, aujourd’hui, dans les 7 prochains jours et les semaines à venir), plus les tâches ouvertes\n- **Terminer avec des preuves** — checklists conditionnelles, photos, signature optionnelle ; kits de tâches et validations de compétences lorsque vous en avez besoin\n- **Planifier la journée** — dispatch, tournées, suggestions de capacité, tableau des exceptions et un instantané d’indicateur KPI ops (CSV)\n- **Garder le registre propre** — clients, sites, équipements, autocollants QR imprimables\n- **Gérer le « break/fix »** — réception corrective, codes d’incident, minutes de tâche, commentaires, documents et fin de garantie\n- **Soutenir les inspections récurrentes** — packs d’obligations (incl. modèles DE/EN), clôture réussite/échec/conditionnelle, PDF Prüfnachweis\n- **Rester maître** — rôles bureau vs technicien, liste d’autorisation optionnelle, notifications Nextcloud en retard\n\n## Limites claires\n\n- Les PDF Prüfnachweis sont des packs de preuves opérationnelles — pas des certificats légaux. Les checklists préremplies sont des modèles, pas un conseil juridique.\n- Les clients constituent ici un registre terrain. Le même nom dans une autre application métier ≠ le même enregistrement ; rien ne se fusionne automatiquement.\n- La déduction optionnelle de stock après clôture reste désactivée par défaut et n’empêche jamais de terminer une tâche.\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite.\n\n## Exigences\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB ou PostgreSQL"},"es":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Sepa qué está pendiente. Cierre el asunto en el lugar.\n\nMaintenanceCheck ejecuta el mantenimiento recurrente y correctivo en la Nextcloud que ya tiene. Ponga a los clientes, sedes y equipos en un único registro. Planifique por calendario o por contador. Convierta las visitas vencidas en órdenes de trabajo con checklists, fotos y firmas opcionales — y luego entréguele a la oficina un PDF de Servicebericht.\n\n**Aplicación web gratuita** (AGPL-3.0-or-later). Aplicaciones asociadas: https://nextcloud.software-by-design.de/\n\n## Por qué las equipos la instalan\n\n- **Vea primero lo atrasado** — tablero de vencimientos para atrasado, hoy, los próximos 7 días y las semanas siguientes, además de los trabajos abiertos\n- **Termine con evidencias** — checklists condicionales, fotos, firma opcional; kits de tareas y verificaciones de habilidades cuando las necesite\n- **Planifique el día** — despacho, recorridos del día, pistas de capacidad, tablero de excepciones y una instantánea de KPI de operaciones (CSV)\n- **Mantenga el registro ordenado** — clientes, sedes, equipos, pegatinas QR imprimibles\n- **Gestione el trabajo correctivo «break/fix»** — alta correctiva, códigos de fallo, minutos de tarea, comentarios, documentos y fin de la garantía\n- **Apoye las inspecciones recurrentes** — paquetes de obligaciones (incl. iniciadores DE/EN), cierre según aprobado/no aprobado/condicional, PDF Prüfnachweis\n- **Mantenga el control** — roles de oficina vs. técnico, lista de permitidos opcional, notificaciones Nextcloud de atrasos\n\n## Límites claros\n\n- Los PDF Prüfnachweis son paquetes de evidencia operativa — no certificados legales. Las checklists preconfiguradas son plantillas, no asesoramiento legal.\n- Los clientes aquí son un registro de campo. El mismo nombre en otra aplicación de negocio ≠ el mismo registro; no se fusiona nada por sí solo.\n- La deducción opcional de stock tras el cierre se mantiene desactivada por defecto y nunca impide terminar una tarea.\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB o PostgreSQL"},"da":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Vid, hvad der skal laves. Afslut det ude i felten.\n\nMaintenanceCheck kører tilbagevendende og korrigerende vedligeholdelse på den Nextcloud, I allerede hoster. Saml kunder, lokationer og udstyr i ét register. Planlæg efter kalender eller måler. Gør de planlagte besøg til arbejdsordrer med checklister, fotos og valgfri signatur — og overdrag derefter kontoret en Servicebericht-PDF.\n\n**Gratis webapp** (AGPL-3.0-or-later). Companion-apps: https://nextcloud.software-by-design.de/\n\n## Hvorfor teams installerer den\n\n- **Se det forsømte først** — due-board for forfaldent, i dag, næste 7 dage og ugerne fremover, plus åbne jobs\n- **Afslut opgaver med dokumentation** — betingede checklister, fotos, valgfri signatur; jobkits og færdigheds-gates når I har brug for det\n- **Planlæg dagen** — dispatch, dagsture, kapacitetstips, undtagelsesboard og et ops KPI-øjebliksbillede (CSV)\n- **Hold registret ryddeligt** — kunder, lokationer, udstyr, printbare QR-klistermærker\n- **Håndtér break/fix-arbejde** — korrigerende indtag, fejlkoder, job-minutter, kommentarer, dokumenter og garantiens udløb\n- **Understøt tilbagevendende inspektioner** — obligations-pakker (inkl. DE/EN-startere), godkend/ikke-godkend/ betinget lukning, Prüfnachweis-PDF\n- **Hold styr på det** — kontor- vs. teknikerroller, valgfri allow-list og forfaldne Nextcloud-notifikationer\n\n## Klare grænser\n\n- Prüfnachweis-PDF’er er operationelle dokumentationspakker — ikke juridiske certifikater. Forudfyldte checklister er skabeloner, ikke juridisk rådgivning.\n- Kunderne her er et feltregister. Samme navn i en anden forretningsapp er ikke det samme som en post; intet slås sammen automatisk.\n- Valgfri lagerfradrag efter lukning er slået fra som standard og blokerer aldrig for at afslutte et job.\n\n## Tidlig udgivelse — feedback velkommen\n\nDette er den første App Store-udgivelse. Appen er fuldt funktionel og testet, men har endnu ikke set bred brug i den virkelige verden. Bugrapporter og funktionsønsker modtages meget gerne: https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB eller PostgreSQL"},"it":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Sapere cosa è in scadenza. Chiudere sul campo.\n\nMaintenanceCheck gestisce manutenzioni ricorrenti e correttive nella Nextcloud che avete già. Inserite clienti, sedi e attrezzature in un unico registro. Pianificate in base al calendario o al contatore. Trasformate le visite in scadenza in ordini di lavoro con checklist, foto e firme opzionali — quindi consegnate all’ufficio un PDF di Servicebericht.\n\n**Web app gratuita** (AGPL-3.0-or-later). App associate: https://nextcloud.software-by-design.de/\n\n## Perché le squadre la installano\n\n- **Vedi prima i lavori in ritardo** — pannello scadenze per in ritardo, oggi, i prossimi 7 giorni e le settimane a seguire, più i lavori aperti\n- **Completa i job con evidenza** — checklist condizionali, foto, firma opzionale; kit dei job e controlli di competenze quando servono\n- **Pianifica la giornata** — dispatch, tour giornalieri, suggerimenti di capacità, pannello eccezioni e un snapshot KPI operativi (CSV)\n- **Mantieni il registro ordinato** — clienti, sedi, attrezzature, adesivi QR stampabili\n- **Gestisci gli interventi break/fix** — gestione correttiva, codici guasto, minuti di job, commenti, documenti e fine garanzia\n- **Supporta ispezioni ricorrenti** — pacchetti di obblighi (incl. starter DE/EN), chiusura con esito e/o condizionale, PDF Prüfnachweis\n- **Resta sotto controllo** — ruoli ufficio vs tecnico, allow-list opzionale e notifiche Nextcloud in scadenza\n\n## Limiti chiari\n\n- I PDF Prüfnachweis sono pacchetti di prove operative — non certificati legali. Le checklist precompilate sono modelli, non consulenza legale.\n- I clienti qui sono un registro di campo. Stesso nome in un’altra app aziendale ≠ stesso record; nulla viene unito automaticamente.\n- La deduzione opzionale della giacenza dopo la chiusura resta disattivata per impostazione predefinita e non blocca mai il completamento di un job.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB o PostgreSQL"},"nb":{"name":"MaintenanceCheck","summary":"Stop missing maintenance visits — due board, work orders and Servicebericht on your Nextcloud","description":"# Vet hva som er forfalt. Lukk det ute i felten.\n\nMaintenanceCheck kjører både tilbakevendende og korrigerende vedlikehold i Nextclouden dere allerede hoster. Legg kunder, steder og utstyr i ett felles register. Planlegg etter kalender eller måler. Gjør de forfalte besøkene om til arbeidsordrer med sjekklister, bilder og valgfri signatur — og gi kontoret en Servicebericht-PDF.\n\n**Gratis nettapp** (AGPL-3.0-or-later). Følgeapper: https://nextcloud.software-by-design.de/\n\n## Hvorfor team installerer den\n\n- **Se forsinket arbeid først** — due-board for forsinket, i dag, de neste 7 dagene og ukene fremover, samt åpne oppgaver\n- **Fullfør jobber med dokumentasjon** — betingede sjekklister, bilder, valgfri signatur; jobbkits og kompetanseporter når dere trenger dem\n- **Planlegg dagen** — dispatch, dagsturer, kapasitetstips, unntaksboard og et ops KPI-øyeblikksbilde (CSV)\n- **Hold registeret ryddig** — kunder, steder, utstyr, utskrivbare QR-klistremerker\n- **Håndter break/fix-arbeid** — korrigerende innmelding, feil koder, jobbtid i minutter, kommentarer, dokumenter og slutten av garanti\n- **Støtt tilbakevendende inspeksjoner** — forpliktelsespakker (inkl. DE/EN-startpakker), pass/fail/conditional close, Prüfnachweis-PDF\n- **Hold kontroll** — roller kontor vs tekniker, valgfri allow-list og forfalte Nextcloud-varsler\n\n## Klare grenser\n\n- Prüfnachweis-PDF-er er operative bevispakker — ikke juridiske sertifikater. Forhåndsutfylte sjekklister er maler, ikke juridisk rådgivning.\n- Kunder her er et feltsregister. Samme navn i en annen forretningsapp er ikke samme post; ingenting slås automatisk sammen.\n- Valgfri lagerreduksjon etter lukking er slått av som standard og blokkerer aldri at en jobb kan fullføres.\n\n## Tidlig utgivelse — tilbakemelding er velkommen\n\nDette er den første App Store-utgivelsen. Appen er fullt funksjonell og testet, men har ennå ikke fått utbredt bruk i praksis. Feilrapporter og forslag til nye funksjoner er veldig velkomne: https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-maintenancecheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB eller PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhPMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE4MDgwMjExWhcNMzYxMTIzMDgwMjExWjAbMRkwFwYD\nVQQDDBBtYWludGVuYW5jZWNoZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAydyP/y0f3BFF3Cr9Qv0nDwfVZmRZL5aB86lv4PhJ9ny4APqyegq+0/tc\nzryPELDxgAxaKctMEE2jPHvt9sEfLrsh8DmXeM+aqwQIQ+IDWAQpxPxAhKH41mGX\nA6KjMbu0vcbo8Z9A5L2SzczvyMkiiTNwyiR0M7stqtQmmUnyPD2p4JOc9PtNPHc0\nrZsP8+qRWdEDFM+1AsCInJSrpqFd2bL57E5Mdf/ZImiA3OSPRPSI87GfQXHMFELx\nFjMfCT+wVYzLeYiNC7QLuK96bIkIR0h/xVdetam3WI/krLfQ9sS54u/NHxGHnoFB\nzL0PPY+3jNZ9Yyv5cd/kdJs6BdnIdV+d7nQAsXJfM3SNYGFzEUr6Di5eNpapCtMp\nOfzwcshM75I3On4Qn3oA4YB+PnPERa47qj8jkBtCy5wgJ9/ojZKSua+A3+rLzzlJ\nPvSkPvHPXltyfF9Zo0XmzcmXc/68GyGHYX3bg/nunMBcANUIfw0o/P+mW+Oc6L5P\n/VDmH6L7Su3A3xwL8EyEdmP56R/QKcYpZRLiLqV0hb8zIi48HjYmKG1X+mMsL7sX\nv7QcIPIrczi6ucQHPzl6gi4ITRgfLYZUZ/Y+vAuImezJ4xYBP+xiY9fib3rGPcpd\n80TUsG4WtcYUj4VMUSXuHd5KRCyxHnLwRJV704MW2zexOqXbFosCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAAgV2wSV+YeXsQtG5DxRKp15AGBWapqEogtruqlRNPCI2\n+dLnn4trKhSr95yIJ7902kwWQkOV1Hhv00Wn3z+OFX2rmLdY3tt+0TPNesQ5Rnnn\nQ7q/OzC0G68spaw4RkFnDgQB+Oav5NTY6hD4Z3WVrY7h6DEMyyzal2+shmoEppUZ\nlf0a1XiTiNRXCY87w7YK8fgtiTS2HNzgYiiQ0813bam8VteU0XXHJdAYPXNcOZ2d\nR/Co2pIL1LrUotYQ1BGCq/xSuruh9FwkhEsF23L8xcLIQvD/9HYyBOuTQozRVKrX\n/fi4sEX4sZxLfXIlfg0rn4C1oUHg1hEsC4xoLKSeNg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"budget","categories":["office","organization"],"userDocs":"https://budget.otherworld.dev/docs/","adminDocs":"https://budget.otherworld.dev/install.html","developerDocs":"","issueTracker":"https://github.com/otherworld-dev/budget/issues","website":"https://budget.otherworld.dev/","created":"2026-01-13T20:35:39.937546Z","lastModified":"2026-10-21T19:43:03.713339Z","releases":[{"version":"3.1.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v3.1.0/budget.tar.gz","created":"2026-10-21T19:43:03.674943Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T19:43:03.748219Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"g3Q/0XMQfmugLltVXsxXNWuN8gYfARcFl5HxX7RP8hmP9POFu0QsE/iBG6NLFh61lHZCl2CoSxvhtzEmDDeOXhhmtOjPcIACf4haZOkfz79K0iVUAgF4XPsonEstQri2IskKXhrz1hnboH+VN9WgH91VhjbxhA0eLbPiLX04o3/fJC5H6I6LMvZunOiEd6kYW/bwpKhEXWIJQgb6KKXvgZ+tZ7hZZMoKjp2brmv2uXCT3NxAoO+qHiI0epkYcOWuPaozE34lPQx69be8nVWKnd43nAt3LQ5SG+eJvB7knr/j7jSjsHqSWNcqSgfAso/Vh/Ukl1iAnoGGPG80PFqk6C0QBxu/Z468vn/LqYxrp6x0ZDPpQ/56nsrjHid5jzsprnQrj1U6UnDq+/6M4HZXpr4KXJiagj4uVmFoji9PRSPL4dtG11ZZb6Fg+1K7Ub5A/ts6B5DK2lqvHNPBLA80NXwCvq+xGrQ8Vt3L267chNbX8c3e129bp2buWj869m0OIQtFDCWGrwYzskV4KnxYhZYS2NCR+8wGfVCdDMuxh/0u/p3pEC807w8Lxf5JcErOdR2si4sTNKWy6KtMEqFiBjuFJTS2nt9KHeVbNeIC4RJtk4LqGmUaBP8S5iaHqo8JXc+B0e6yXJKorREOSnV81LSsvhdJYigYD2OKHybXAPY=","translations":{"en":{"changelog":"### Added\n- **Colour settings for money in and money out.** Settings has a new Colours section with a colour-blind friendly preset (blue and orange) or your own colours, picked separately for the light and dark theme. They are used across amounts, budget bars, charts and PDF exports, and each person sets their own. Default keeps the colours as they are now. Reported by @trucks192 ([#432](https://github.com/otherworld-dev/Budget/issues/432))\n- **Link a transaction to a bill.** A transaction's menu has **Link to bill…**, which files it as one of the bill's payments without moving the bill's due date, so a payment you typed in yourself, or one left behind by a bill you deleted and set up again, shows in Bills by Month. Bills with the same name are listed with their dates, and the ones matching the amount come first. **Unlink from bill** takes it off again, apart from the bill's latest payment, which Mark Unpaid on the bill undoes. Only money going out of the bill's own account can be linked. Reported by @TerjeTM ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n\n### Changed\n- **Translations.** German and French have been updated from Weblate, and the Italian translation has grown from a handful of strings to about 300.\n- **A transfer whose other side was deleted counts as spending until it is linked again.** An older version could delete one side of a transfer and leave the other pointing at it. Updating lets go of the missing side, so the one left can be matched to its other side again, and until it is, reports count it like any other payment.\n\n### Fixed\n- **The amber warning dot on accounts shows its colour.** A Nextcloud style overrode it, so the dot beside an account with a warning, and the one on the account's own page, came out as a faint tint and, on the account page, a rounded square. Both now show the full warning colour as a round dot.\n- **Switching a paid bill to One-Time keeps it paid.** A Custom or monthly bill switched to One-Time on a date it had already paid came back overdue with Mark Paid, and pressing it paid the bill a second time. It now stays paid, Mark Unpaid still works on it, and its reminders are taken down. Recurring income switched the same way stays received. A one-time date after the occurrence the last payment paid, such as a final invoice, is still due. Reported by @TerjeTM ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Mark Paid asks before paying something twice.** When a bill already has a payment for the date it is due, Mark Paid says so before anything else and offers **Use that payment**, which marks it paid on that payment's date without recording anything new, or **Record another payment**. Mark Received does the same for income. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **A double click can't pay a bill twice.** Two clicks on Mark Paid, Skip or Mark Received that arrived together both went through, booking the payment twice and moving the bill on by two dates. Only the first one counts now, the buttons are disabled while it runs, and a Skip names the date the page showed. A double click no longer answers the dialog it opens either, nor changes the choice in it, and Enter in a question such as Mark Unpaid no longer goes ahead once a stray click has moved the focus off its buttons. When one of these buttons is refused, for instance in a tab left open since the bill was paid, the list reloads to show where the bill is now. Undo after a Skip only puts back a date the bill was due on. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Paid Custom bills stay paid until their next date.** A Custom bill paid for its month showed Mark Paid again 31 days later, which paid the next year's date. Its row now goes by its own months, and a one-time bill no longer shows a \"next due\" date. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Income received a day early is no longer waiting for it.** Before 3.0, Mark Received on money that came in before its expected date recorded it but left the income expecting it, so the Income page showed it overdue and Mark Received recorded it again. Updating moves those on to their next date, and Repair Data lists any a restored backup brings back under **Income Received Early but Still Expected**. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Repair Data finds more payments recorded twice.** Older versions could book a bill's payment twice when a pre-booked transaction went through on its date and the bill was then marked paid. Repair Data now also finds these when the bill is a transfer (both sides are removed together, and only where you can change both accounts), when the bill has since been deleted, when its amount changed between the two, and on a bill usually paid a few days early. For a one-time bill paid twice it offers the newer payment and keeps the bill paid on the older one. Nothing is ticked for you. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Importing a CSV again with different columns doesn't add it twice.** A row only counted as already imported when the columns were mapped the same way, so mapping the description to two columns the second time brought the whole file in again. A line that matches a row an earlier import put in the account is now shown as a duplicate, while new lines from a later statement still come in. This also works when one of your import rules set the row's payee, or a rule or you changed its description, reference or payee since. The app now keeps the payee each transaction was imported with, so a payee you edit by hand after updating doesn't make the row come in again. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Bills by Month shows what was paid when.** Each payment stays in the month it was paid, so a payment made twice no longer pushes into the next month and makes that one look paid twice. A due date paid more than once shows how many times, and hovering a month lists each payment, its date and the due date it paid. A payment you link to a bill for the date it is due next pays that date, rather than showing as a second payment of the one before, and a payment made in December for a date in January, or the other way round, counts in one year only. A month a bill paid twice within a few days still shows 2× after the bill is switched to One-Time. Months the bill moved past with no payment recorded are no longer drawn crossed out like paid ones, and no longer count towards Monthly Totals, which now add up what was paid and what is still due. A bill that was paid this year and has since stopped stays under Active Only. The CSV and PDF export print what each month shows, where before they printed the bill's amount in every month. The month boxes count only the bills in their total. Reported by @TerjeTM ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **A transaction with a vendor and no description can be edited.** Mark Paid and Mark Received record their transaction with the bill's or income's name as the vendor and no description, and the edit form wouldn't save a change to one, such as a new date. A description is now only needed when there is no vendor. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **A description or vendor cut short in the transactions list shows in full when you hover it**, as does the reference under it, in the Transactions list and in an account's register. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Overdue income stands out on the Income page.** It now has the same red marker and edge as an overdue bill, and completed or inactive income looks like a paid bill. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Repair Data is easier to read.** Its counts are readable in the light theme, each tick sits on its line at a normal size, dates and amounts no longer break across lines, and a payment with no vendor goes by its description or its bill's name instead of (unnamed). ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **The Strong match badge in Mark Paid's dialog is readable in the light theme.**\n- **The hints on the import's Map Columns step are no longer red.** The hints under Date, Amount and Description looked like errors, and those fields sat slightly out of line with the rest.\n- **A skipped date no longer reads as paid.** After Skip, a bill, transfer or income showed its last payment with a Paid or Received badge and no buttons until its next date came round. It now shows the date it is next due. Undo after a Skip also brings Mark Unpaid back for the payment before it. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Bills by Month keeps its own settings.** The general Generate Report button set its year and account back to this year and All Accounts, and the period, account and tag filters that don't apply to it are now hidden while it is shown. The heatmap draws as soon as you switch to it, its figures are readable on the darkest months, and the bill names stay in view when the table scrolls sideways. In the CSV and PDF export the Amount column is formatted like the months, a row of several invoices with different amounts leaves it blank, and long names stay inside their column. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **The import's review step says more.** It shows the payee when one is mapped, counts against the whole file (\"Showing 50 of 1000\"), shows Uncategorized for a row a rule touched without setting a category, and Show uncategorized hides those rows too. The message afterwards uses the right plurals. On Map Columns the hints are small grey text with room under them. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **The transactions list keeps its Description column on a laptop screen.** With an account picked, the column shrank to nothing at 1280px and below, and in an account's register at 1024px. It now keeps room for the text and the table scrolls sideways instead, with the actions column, the page controls and the category and tag pickers staying in view, and the column headings stay at the top of a long list. In those pickers Escape now leaves the transaction as it was, where it saved the choice anyway, and the tag picker can be used from the keyboard. On a phone the filters stay inside their panel. An account's register can be sorted by Date, Description or Amount from its headings, which looked sortable but did nothing, and a click on them no longer re-sorts the Transactions list instead. Untick Balance in the column settings to give the description more room, which did nothing before. In the register the reference sits on its own line under the description, the Balance column fits its amount, and long category names end with an ellipsis. The search box filters as you type. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Easier to read in more places.** Due Soon, Expected Soon and Paid badges, Mark Paid under the pointer, Mark Received in the dark theme, the calendar icon before dates, the required-field asterisks in the transaction and import dialogs and the ticked option in the payment dialogs were all faint, and now meet the usual contrast level in both themes. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Dialogs put their close button on the title row** instead of a box on a row of its own, and Repair Data keeps Close and Fix Selected Issues in view while its list scrolls. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **Bills and income still due come first.** Paid one-time bills and finished income were listed above everything else on some databases. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **On a narrow screen the menu button gets out of the way** while you scroll down, and comes back when you scroll up. It covered whatever passed under it. ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **After Mark Paid from the keyboard, focus stays on the bill** instead of going back to the top of the page. ([#399](https://github.com/otherworld-dev/Budget/issues/399))"}},"signatureDigest":"sha512"},{"version":"3.0.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v3.0.0/budget.tar.gz","created":"2026-10-15T00:21:37.346074Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T00:21:37.432366Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"V+x/dZyNaUkMCgOOC2AtsePFlh0nMy7fdBqYeiSADqYTWeGKFQrVPwuuz7Ykz85kwCuahC+SvQo9SK8OXjJY4U2pY9HZ4Jd7HIpwr8r9KJ71dxRQhSsdspw8k+3AmJ66WM/VypwnVIjBGrbV868dTIKkRGiC/8+rNbrx04tfNooa569zwiT/gKuaAlWjCrnlDwGCmLo9IZhKy85mzp2tbA+yYTi8JNU0ENu8QiI6v68vi3VJ0r2WX2fQIHNHeAxN/QHnfM+lz5abJQhr/g6KE8rJMKIiOYeAzx7pLr3+Y05pHiuDV7tE1fWqYPSoS44IdhzGG0d5EU2A5/HYa5SjwnKsE2qqXqpQtoACpHwpQgVmX2h9hDGPMfGnfD4cOI5JSYVVKQU4XMERORwhrDkdakfTsrz5cSajptMBz3JsxAW8ow/YyjC+lzfJ30bMIQsxSkIosZcf8QkadhhQEKrhdhNsWKzMaAO5U2kJp5FkgThvN3htwnlWyu6Q0Lcf2Pp7tDtyqJKvasS0VMaIiN8/n3zXLcnUw8aRLthTvkZWKmTs0FzdaTmVRSnanMvmEe7Hkgi9v9zq82t4oRImlWXdX9IlK5aB9uGFMD7lEol/enAq4j5/fhaik7d8nTk9PnS6eBmkh/rBkCQzNHh+j4RFGYBzwMSg+KTdeU/KQaVyu9A=","translations":{"en":{"changelog":"The first release of Budget out of beta. Alongside the changes below there is now an Android app, Budget Companion, on [Google Play](https://play.google.com/store/apps/details?id=dev.otherworld.budget).\n\n### Added\n- **The API can set a transaction's tags.** `POST` and `PATCH /api/v1/transactions` take `tag_ids`, with the same rules as the web UI: on your own account your global tags and the tags of the transaction's category, and on an account shared with you the owner's tags of the categories they share with you, which `GET /api/v1/tags` now lists as well. An edit's `tag_ids` replaces the whole set, a tag already on the transaction can always be sent back, and tags of the owner's that you can't use are left on. Changing a transaction's tags also moves its `updated_at`, and the response carries the new one, while sending back the tags it already has changes nothing. A tag that can't be used refuses an edit, while a new transaction is still recorded and the response says why in `tags_error`. `GET /api/v1/capabilities` gains `tag_ids_available`. Suggested by @SGiersch ([#420](https://github.com/otherworld-dev/Budget/discussions/420))\n- **The API can read tags, filter the transaction list further, record transfers and mark a transaction reconciled.** Every transaction now carries its `tags`, an empty list when it has none, and `GET /api/v1/tags` lists your tags, each with the tag set and category it belongs to, as a category tag can only be put on a transaction in that category. `GET /api/v1/transactions` takes `type`, `status`, `reconciled`, `uncategorized`, `tagId`, `amountMin` and `amountMax`, and a value it cannot read is refused instead of ignored. `uncategorized=true` lists the transactions with no category, and `uncategorized=false` the rest, those with a category and split ones. `POST /api/v1/transactions` takes `transfer_account_id`, which records both sides of a transfer between two open accounts in the same currency and links them. The two are recorded together or not at all, so a transfer is never left with one side missing. `POST` and `DELETE /api/v1/transactions/{id}/reconcile` mark a transaction reconciled or unreconciled, the same as in the web UI; a transaction dated in the future can't be reconciled. `GET /api/v1/capabilities` gains `tags_available`, `reconcile_available` and `transfers_available`, and `transaction_filters`, which names every filter the list takes, for a client to check first, as an older server ignores a filter or a field it does not know. All of these are additions. Tags suggested by @SGiersch ([#420](https://github.com/otherworld-dev/Budget/discussions/420))\n- **The API says when an account was last reconciled.** Each account in `GET /api/v1/accounts` gains `last_reconciled_at`, the time a reconciliation of it was last completed, in the same format as `updated_at`. It is `null` for an account that has never been reconciled. Suggested by @SGiersch ([#427](https://github.com/otherworld-dev/Budget/issues/427))\n- **An import folder.** Pick a folder in your Files under Settings, add a subfolder for each account, and a statement dropped into one is imported in the background, with no column mapping to do. Each subfolder is tied to one of your own accounts and, for CSV and spreadsheet statements, one of your saved import templates; OFX, QIF and camt files need no template. The file is then moved into an **Imported** folder beside it and you get a notification saying how many transactions came in and how many were already there. A file that can't be imported goes into **Failed** with the reason: columns the template expects that the file doesn't have, a file type that isn't a statement, or a batch that looks the wrong way round (income as spending), which is left for you to check on the Import page as an import can't be undone. Share a subfolder the usual Nextcloud way and other people can drop their statements in without opening Budget; the folder has to be in your own Files, not on external storage and not one somebody shared with you. Every row goes into the subfolder's own account: an Account column in the template is not used here, and a statement with transactions for several accounts, or in a different currency from the subfolder's account, goes into **Failed** to be imported from the Import page, where you choose the account for each. An account the file has no transactions for doesn't count, so a bank's file of all your accounts where only one had anything imports as normal. Files that are already in a subfolder when you add it, or when you move the import folder somewhere else, are left where they are until they change: save a new statement over one of them and it is imported like any other. Restoring a backup leaves the files already in the restored import folders alone too, and says how many. A file that stops Budget while it is being read is set aside in **Failed** the next time round rather than tried again, so one bad file can't hold up the import folders of everyone else on the server. It is checked every 15 minutes, and **Check now** does it straight away. A subfolder can instead **hold its files for review**: each one waits, you get a notification, and the Import page lists it under **Waiting for review**, where **Review** opens it in the usual import steps with the subfolder's template and account already chosen and **Skip** moves it to a Skipped folder. An account can't be closed while an import folder still posts into it. Suggested by @belze-bu ([#425](https://github.com/otherworld-dev/Budget/issues/425))\n- **Import Excel and LibreOffice spreadsheets.** Some banks only export a statement as `.xls` or `.xlsx`, which meant opening it and saving it as CSV first. Those files, and `.ods`, can now be picked on the import screen as they are. The sheet with the statement on it is read like a CSV, passing over a cover sheet or an account overview and any hidden sheets, so column mapping, saved templates, rules and duplicate checks work the same, and the bank's lines above the table (account holder, period and so on) are skipped. Dates are read from the cell itself rather than from how the spreadsheet displays them, so a date can't come out with the day and month swapped. An \"XLS\" that is really a web page saved by the bank works too. So does a CSV or tab-separated file saved with an `.xls` name. Suggested by @belze-bu ([#424](https://github.com/otherworld-dev/Budget/issues/424))\n- **Spending by Category can leave categories out.** Its settings now list your expense categories with a tick next to each, and unticking one takes it off that tile, along with its subcategories. The total and percentages cover what is left so they still add up to 100%, and a line under the total says how many categories are hidden. It only affects that tile, so reports and the other totals still count them, and duplicated tiles each keep their own list ([#413](https://github.com/otherworld-dev/Budget/issues/413))\n- **The Upcoming Bills tile can keep long-overdue bills.** The tile leaves out bills more than a week overdue so it doesn't fill up with old ones. Its settings now have **Show bills overdue for more than a week** to keep them, which is how the Bills page and the Android app list them.\n- **Recurring income can be skipped.** Bills and transfers have a **Skip** button, however the Income page did not, so the only way past a payment that was not coming this time was to mark it received, which records a receipt that never happened. The Income page now has the same **Skip**: the expected date moves on one cycle without marking anything received or creating a transaction, and **Undo** in the notification that appears puts the old date back. Suggested by @SGiersch ([#396](https://github.com/otherworld-dev/Budget/issues/396))\n- **Import from Firefly III, YNAB, Actual Budget, Mint and Monarch Money.** Pick the app under Import Format and upload its export. Each account in the file is matched to one of yours by name or created, categories are created as needed (YNAB and Actual category groups become parent categories), reusing the one you already have with the same name even when it is a subcategory, such as Groceries under Food, and tags come across as well. Both sides of a transfer between two of your accounts are imported and linked, so they don't count as income or spending, and a Firefly III transfer between accounts in two currencies uses each side's own amount and currency. Importing the same export again adds nothing, even when you had brought it in before as a plain CSV with your own column mapping, as the rows already there show as duplicates. A row only counts as one of those when its date, amount and description or payee match, whatever order the file lists them in, so a different purchase that only shares a memo is still imported. A CSV whose columns match one of these apps is recognised when it is uploaded, and **Switching from another app?** on the import screen says where each app keeps its export. Tab-separated `.tsv` files can be imported too, which is what YNAB exports for currencies with a comma decimal.\n- **Ready to Assign on the Budget page.** A new card shows the month's income less what the month's budgets give out, so you can see whether there is money still waiting for a budget or whether the budgets promise more than came in. It follows the month you pick. Amounts carried over by envelope budgets are left out, as that money was assigned from an earlier month's income.\n- **A getting started checklist.** A new user used to land on a dashboard of empty tiles. They now get five steps (currency, default categories, an account, a statement or bank connection, and a first budget) which tick themselves off as they go, and the tiles come back once it is finished or dismissed. Anyone who already has data never sees it.\n- **Try Budget with sample data.** An empty budget can be filled with sample accounts, transactions, bills and budgets from the checklist. A banner marks it as sample data on every page, and **Clear sample data** removes everything again while keeping your settings. `occ budget:seed-demo` uses the same data, now dated relative to today.\n- **Reordering without dragging.** Categories can be moved with Alt+Up and Alt+Down, Alt+Right makes one a subcategory of the one above and Alt+Left moves it back out a level. On the unlocked dashboard each tile has Move earlier and Move later, and the accounts tile settings have Move up and Move down.\n- **An account's transaction list works on a phone.** It shows as two-line cards like the main Transactions page, and tapping one opens it for editing.\n- **Future transactions show the balance they will leave.** In an account's transaction list a scheduled transaction (a bill, income or transfer booked ahead, or anything dated after today) had an empty balance column. It now shows what the balance will be once it and the scheduled transactions before it have gone through, in smaller grey text so it isn't mistaken for money already there, and in red if it would take the account below zero. The Projected Balance at the top of the account page, which wasn't showing, now appears when it differs from today's balance. Suggested by @facluz ([#414](https://github.com/otherworld-dev/Budget/issues/414))\n- **A notification when someone adds a receipt to your transaction.** A receipt photo added by someone you share an account with is saved in your Files, so you now get a Nextcloud notification saying who added it.\n- **A Full control permission for sharing.** Categories, Bills, Recurring Income, Savings Goals and Projects now have a third permission next to Read only and Read & Write. For bills, recurring income, savings goals and projects it lets the other person delete them as well as edit them. For categories it lets them change what Read & Write keeps with you, the type, parent, budget and report settings, and add subcategories, including moving categories around within your tree. A subcategory they add under one of your categories is yours, so it shows in the right place for both of you, and it is shared back to them automatically. Deleting a category stays with you, with one exception: they can delete a subcategory they added themselves while nothing uses it. On the Budget page a shared category now shows your budget for the month, including your adjustment for that month and your envelope carry-over, where before it only showed the category's plain budget. With Full control the other person can change it there too, and the change goes where yours would, into your adjustment if you made one for that month. Without Full control those controls are read-only, where before they looked editable and failed on save. Accounts and Import Rules keep Read only and Read & Write. Follows on from [#402](https://github.com/otherworld-dev/Budget/issues/402)\n- **Find the person to share with by typing their name.** The share form and the shared-expense contact form search Nextcloud users as you type a name, user ID or email, so they still work on servers that hide the full user list.\n- **Rules can tidy up text.** Three new rule actions work on the description, vendor, reference or notes. **Change Case** switches a field to UPPERCASE, lowercase, Title Case or Sentence case, **Replace Text** swaps one piece of text for another, and **Regex Replace** runs a regular expression over one field and writes the result into the same field or a different one, so a long bank description can be split out into a vendor and a reference, for example. `$1` in the replacement puts back what the first bracketed group matched. A regex that doesn't match leaves the target field alone, and it counts letters rather than bytes, so cutting text to a length never splits a letter such as \"ü\" in two. Contributed by @saviq-work ([#406](https://github.com/otherworld-dev/Budget/pull/406))\n- **The API can show balances, what is left of the budget and the bills due, so a phone app can check as well as capture.** `GET /api/v1/budget/status` gives each budgeted category and the totals for a month, with the same figures the Budget page shows (every figure is the month's, with a weekly, quarterly or yearly budget counted as its share of the month, and `period_to_date` gives a quarterly or yearly budget's quarter or year so far), and `GET /api/v1/bills/upcoming` lists the bills that are overdue or due in the next 14 days (or however many `days` you ask for). Both include categories and bills someone has shared with you. A transaction now says which transaction is the other side of a transfer and lists the parts of a split one, where before a split came through as one uncategorised amount, and `GET /api/v1/transactions/{id}/splits` returns just the parts (none once a transaction is no longer split). `GET /api/v1/transactions/recent` gains the account, the category and a `type`, so a client can tell money in from money out. A shared account's balance in `GET /api/v1/accounts` is now as of today and converted to your base currency like your own accounts, as it used to count future-dated transactions. `GET /api/v1/capabilities` gains `check_available` for a client to check before using any of this. All of these are additions, with one change: a transaction always has a `splits` list now, empty when it isn't split, so to tell whether splits sent with a new transaction were accepted, check `splits_error` ([#407](https://github.com/otherworld-dev/Budget/issues/407), [#408](https://github.com/otherworld-dev/Budget/issues/408))\n- **The API can edit and delete transactions.** `PATCH /api/v1/transactions/{id}` changes only the fields you send, `DELETE /api/v1/transactions/{id}` deletes one and `DELETE /api/v1/transactions/{id}/splits` undoes a split. They work the same way as the web UI, so balances are recalculated and a split's parts are rescaled when its amount changes. Where the web UI warns first, the API refuses with a 409 and an `error_code` instead: changing the amount, type or date of one side of a transfer, changing them on a reconciled transaction without `confirm_reconciled`, and giving a split transaction a category. Deleting one side of a transfer leaves the other as a plain transaction and returns its id. Splitting a transaction in an account shared with you also works over the API now, where it used to answer 404. `GET /api/v1/capabilities` gains `edit_available` for a client to check first. A negative amount is refused with `invalid_amount` when recording or editing a transaction, as it saved the transaction the wrong way round, and accounts and categories now include an `owner`, so an app can offer only the categories that work for an account shared with you. Splitting a transaction reports problems in the same `error` format as the other calls. Suggested by @SGiersch ([#412](https://github.com/otherworld-dev/Budget/discussions/412))\n- **`occ budget:purge-deleted-users` clears up after users deleted before this version.** Deleting a Nextcloud user used to leave their Budget data behind, and this version removes it when the user is deleted, so the command is for anyone deleted before the update. Run on its own it lists what each deleted user left, table by table, without changing anything, and `--force` removes it. `--user` limits it to the users you name, and a user who exists is always left alone. A user from an external backend such as LDAP can look deleted while that backend is unreachable, so check the list before using `--force`.\n- **Quick Add can take a receipt.** The Quick Add page has an **Upload receipt** button at the top of the form, which on a phone offers the camera as well as your photos and files, and the receipt is attached when you save. Before, a receipt meant saving the transaction and then opening it again in Budget to attach the photo. When your administrator has set up receipt scanning, **Read receipt** fills in the date, amount, description, vendor and category from the photo for you to check, the same as the Add Transaction dialog. The photo is only sent to be read when you press it, as receipt scanning can be a paid service away from your server. Receipts can only be attached in your own accounts, so with an account someone shared with you the page says so before you save. If the transaction saves but the receipt doesn't upload, the page says that too, so it isn't entered twice. Suggested by @rajbps ([#419](https://github.com/otherworld-dev/Budget/issues/419))\n\n### Changed\n- **Translations.** German and French have been updated from Weblate, and an Italian translation has been started.\n- **Weekly, quarterly and yearly budgets are measured over the month on the Budget page.** A weekly budget was measured over the week holding the 15th, so early in the month a gym budget of £20 a week showed nothing spent while the budget alerts showed this week's £10, and a yearly budget counted the whole year's spending, so a £400 car service in June sat in every later month's Spent card and left Remaining £400 short. Every category now counts the month's spending against its budget's share of the month (a weekly budget times 52 over 12, a third of a quarterly one, a twelfth of a yearly one), which is what Total budgeted already counted, and a parent adds its subcategories' budgets the same way. A quarterly or yearly category also shows how much of its quarter or year has gone, such as \"£400.00 of £1,200.00 this year\", and a budget set for another period shows its monthly share under the amount. The dashboard's Budget Progress and Budget Breakdown tiles and the budget export count budgets the same way, so on the current month they match the Budget page, where they compared a yearly £1,200 car budget, all of it, with one month's spending. Over a longer or shorter range each budget counts for the months the range covers, so a monthly £400 is £1,200 over three months and a yearly £1,200 is £300.\n- **Arranging the dashboard works on a phone.** With the dashboard unlocked, each tile's toolbar (size, move, settings, hide) sat on top of the tile's title, so on a phone, where it never hides, titles were cut down to \"Upco…\" and it was hard to tell which settings button belonged to which tile. On touch screens the toolbar is now a strip across the top of the tile with the title under it. Tiles are reordered there with the toolbar's arrows rather than by dragging, so a swipe over a tile scrolls the page instead of being taken as a drag. Moving or resizing a tile on a phone leaves the layout you arranged on a wider screen as it was, as the phone keeps its own order. On screens narrower than 1200px a summary tile at the top (Net Worth, Income and so on) now moves straight away when moved by arrow or by dragging, where before the new order only showed after a reload. **Add Tiles** no longer sits under the Nextcloud menu button on a phone either.\n- **On a phone, opening a transaction no longer brings up the keyboard.** Its form put the cursor in Amount, so the keyboard covered half of it when you only wanted to look. Adding a transaction still starts in Amount.\n- **The Upcoming Bills tile shows bills shared with you.** It used to list only your own bills, while the Bills page and the Android app included shared ones. Shared bills now appear there too, and the tile's settings have **Exclude shared bills** to leave them out.\n- **Deleting a shared bill, transfer or recurring income needs Full control.** Read & Write on bills, recurring transfers and recurring income used to let the other person delete them, unlike savings goals and projects, where only the owner could. Read & Write now means edit everywhere and Full control means edit and delete, so someone you shared bills or income with at Read & Write can no longer delete them. Set the section to **Full control** in the share's settings to give that back.\n- **The sidebar matches the other Nextcloud apps.** The menu used its own taller rows, 44px high with a pill-shaped highlight, so it looked noticeably bulkier next to Files and the rest of Nextcloud and fewer pages fitted on screen before it had to scroll. It now uses Nextcloud's own sizes, 34px rows with the same spacing, text size and rounded corners, and the page you are on is shown the way Nextcloud 35 shows it, a light tint with a bar down the left side, in place of the solid blue fill. The search box and **Tools & Settings** have been brought in line as well, and the **Tools & Settings** label now lines up with the items under it.\n- **The Transactions page works on a phone.** At phone width the table only had room for three columns, so it dropped the description and cut the amount off at the edge of the screen. Each transaction is now a two-line card, with the description and amount on the first line and the date, category and account under them. Tapping a card opens it in the edit form, as editing one small field in place is fiddly on a phone. On any screen size, Reconcile, Find Duplicates, Match All and Export have moved into a **⋯** menu beside **Add Transaction** so the buttons fit on one line next to the title, and the **⋮** menu on each row is a list with names instead of a strip of unlabelled icons. **Delete** is in that menu now rather than sitting on every row.\n- **Amounts show a + or - sign.** The transactions table told income and spending apart by colour alone, which doesn't work for colour-blind users and was hard to read on the dark theme. Red and green amounts also use lighter shades on the dark theme.\n- **Adding a transaction takes fewer clicks.** The form used to open on an empty \"Choose transaction type\" and \"Choose an account\", both required. It now starts on Expense, with Expense, Income and Transfer as three buttons, and picks the account the list is filtered to, or failing that the last account you saved a transaction to, or your only open account. The cursor starts in Amount and the date picker no longer pops open over the form. Receipts, notes and **Exclude from forecast** are under **More options**, which opens by itself when the transaction already uses them or when receipt scanning is set up.\n- **Settings are saved as you change them.** There was one **Save Changes** button at the top of an eleven-section page, so a change near the bottom was easy to leave unsaved. Each setting is now saved as soon as it is changed, with a short \"Saved\" beside it (changing one several times in quick succession saves the last choice), and a row of buttons at the top jumps to each section. **Reset All to Defaults** has moved into the Danger Zone, away from where Save used to be.\n- **The dashboard is less cluttered.** The \"Dashboard is locked\" line has gone, leaving the page title and a lock button, and the Pension and Assets cards are hidden while you have no pensions or assets. Tiles with nothing to show yet, such as Upcoming Bills with no bills, take half their height, and go back to full size once there is something in them or when the dashboard is unlocked to rearrange it. The saved layout is not touched by any of this. On a phone the summary cards sit two to a row, where before they filled the whole first screen. Recent Transactions shows five rows by default, which is what its settings already said it did, so neither it nor Spending by Category scrolls inside the page.\n- **Charts are easier to read.** Curved lines no longer overshoot the real figures between months, the line into the current month is dashed with \"(so far)\" in its tooltip so a half-finished month doesn't look like a drop, and chart axes read £4K rather than £4,000.00.\n- **Expenses and Income on the Budget and Categories pages are tabs.** They had a ✕ and a + on them, which looked like remove and add buttons. The budget table also grows with the page instead of scrolling inside it, and Total Spent no longer has a red ✕ for its icon.\n- **Summary cards look the same on every page**, in the style of the dashboard's, and figures show \"--\" rather than \"$0\" until they have loaded.\n- **The help button has moved to the bottom of the sidebar**, beside **Tools & Settings**. It used to float over the bottom right of the page, where it covered the delete button of the last transaction on screen.\n- **Empty pages share one look**, and Accounts, Assets, Pensions, Savings Goals, Tags, Projects and Exchange Rates show a loading indicator instead of a blank page while their data loads.\n- **Month names follow your Nextcloud language** instead of the browser's, now in charts and reports as well.\n- **Only the owner of a shared account can delete it.** Anyone with write access could delete a shared account along with all of its transactions. People it is shared with no longer see the delete button.\n- **The user picker for sharing follows your Nextcloud sharing settings**, including whether users can be listed at all, limiting to your own groups and \"only share with group members\".\n- **Reports agree with each other.** Categories excluded from reports, or muted, were only left out when grouping by category, so the same month gave a different total grouped by month, vendor, account or tag, and in the Cash Flow, Category by Month and tag reports. Every grouping now leaves them out the same way, including the parts of split transactions filed under them, and transfers between your own accounts are left out of the category view as they are everywhere else. Income & Expenses now lists income by category, where it used to list your 15 biggest payers and leave the rest out of the total, and it has an Uncategorized row (as does spending or income grouped by category), so income you haven't filed yet still counts and Net matches Cash Flow. These reports also convert accounts in other currencies the way Cash Flow does, so they still agree when your accounts are in more than one currency.\n- **Year over Year matches the other reports.** In the all-accounts view it counted both sides of every transfer as income and spending, along with pension payments, future scheduled transactions and excluded categories. It now uses the same figures as the Cash Flow report to the penny, converting accounts in other currencies the same way and keeping all of a crypto account's decimal places, and category spending has refunds taken off as the Budget page does.\n- **Budget alerts, the budget status tile and applying rules to a lot of transactions are much quicker.** **Apply Rules** saves the changes 500 transactions at a time, and if the database refuses one, only that one is left unchanged. Its preview and its list of what changed show the first 500. The daily digest and bank sync are also spread over the cron runs one user and one bank connection at a time, so one slow bank no longer holds up everyone else.\n- **Large ledgers are quicker to work with.** Importing a big statement reads the rules and the account's existing transactions once, where it read them again for every row. Exporting transactions to CSV is several times faster (63,000 transactions now take 2 to 3 seconds, where they took up to 22), deleting thousands of selected transactions at once is several times faster as well, and the transactions list gets the tags with the page rather than asking for each row's tags separately. Reports, Year over Year and the dashboard are quicker on long histories with accounts in more than one currency, as your base currency and exchange rates are read once rather than for every transaction, and Repair Data's **Scan for Issues** is quicker on long histories too. The page of an investment or crypto account no longer downloads and stores the same exchange-rate history again for each transaction, which could take 10 seconds or more.\n- **Error and success colours, badges and chart labels are readable in the dark theme.**\n- **A page that fails to load says so and offers Retry**, where it used to show an empty list with buttons that did nothing. An account whose transactions failed to load no longer says it has none.\n- **Factory reset removes everything.** It left tag sets, interest rates, recurring pension contributions, debt scenarios, import templates, saved reports, the shares you granted, bank connections and transaction tags behind. Shares other people granted to you are kept.\n- **Bank sync with SimpleFIN only connects to simplefin.org.**\n- **Budget opens faster.** Reports, Forecast, Pensions, Assets, Import, Rules, Bills, Bank Sync, Exchange Rates and Projects are now loaded the first time you open them rather than all at once, which cuts the download when the app starts by about a quarter.\n- **An account's transaction list shows the same details as the Transactions page**, including the pending, not in forecast and pension badges and the reference, and a transfer's label is translated in both.\n- **Import History lists your imports.** The tab was always empty. It now shows each import's date, account, number of transactions and the dates they cover. The Download and Rollback buttons have gone, as there was nothing to download and rolling back never removed anything.\n- **The Skip Duplicate Transactions switch has gone from Settings.** It never did anything: duplicates are skipped on import unless you tick **Import flagged duplicates too** on the import screen.\n- **Reconciliation History shows the latest two.** An account's page listed every reconciliation, up to 20, above its transactions. It now shows the two most recent, with **Show all** under them for the rest and **Show fewer** to fold them away again. Two or fewer show as before. Suggested by @SGiersch ([#418](https://github.com/otherworld-dev/Budget/issues/418))\n\n### Fixed\n- **The API and Convert to transfer no longer post into a closed account.** The API accepted a transaction for a closed account, and **Convert to transfer** could make one the other side of a transfer, which left the account holding money it was closed without. Both are now refused until the account is reopened, and the API answers `account_closed`.\n- **Messages are readable on Nextcloud 32 and later.** The Quick Add page's messages and the pop-up notifications in the corner of the page used Nextcloud's new pale error and success colours for their text, so on a white page they were close to invisible.\n- **A camt file with a statement for each day counts every day.** When a file held several statements for the same account, the import screen's summary for that account counted only the last one's transactions.\n- **Deleting an account forgets which OFX and QIF accounts were imported into it.** The remembered routing was left behind pointing at an account that no longer existed, and went into backups that way.\n- **The receipt pickers only offer files that can be attached.** They offered any image, so a GIF or BMP was only refused once the transaction had been saved. An iPhone photo is still handed over as a JPEG, which receipt scanning can read.\n- **A transaction marked unreconciled can be reconciled again.** Marking a reconciled transaction unreconciled left it tied to the statement it had been reconciled against, so it could not be ticked when you reconciled a later statement, and nothing said why. It now leaves that statement, and the change is written to the audit log.\n- **An investment account's figures no longer draw over its name.** The top of an investment account's page has five figures, and when they didn't fit beside the account name they were drawn over it, its type and its status dot, which was worse with longer translations such as German. The figures now move onto a row of their own when there isn't room, and wrap onto more lines if they still don't fit. Reported by @SGiersch ([#423](https://github.com/otherworld-dev/Budget/issues/423))\n- **An income category's details show its income as positive.** Category Details showed the total and average of an income category as negative, so a €1,000.00 salary read as -€1,000.00 under **Total Spent**, while the chart and This Month beside it showed €1,000.00. They are now positive, the total is labelled **Total Income** and the chart **Monthly Income**. Reported by @SGiersch ([#422](https://github.com/otherworld-dev/Budget/issues/422))\n- **Quick Add's drop-down lists no longer cut off the bottom of their text.** The account, type and category fields were a few pixels too short for the text in them, so the bottoms of the letters were lost. Every field on the page is now the same height, and tall enough for its text.\n- **Quick Add shows apostrophes in its messages.** In a language that uses them, the Save button and the error messages showed a code in place of each apostrophe, so in French the button read `Enregistrer l&#039;opération` after every save.\n- **The dashboard's budget tiles work again.** The Budget Progress tile drew its bars with no height, so they never showed, and went back to the current month, all accounts and shared accounts included after every reload, whatever its settings said. The Budget Breakdown tile left its Category column empty, and the Budget Health tile always showed \"--\" instead of how many budgets are on track.\n- **Editing a transfer shared with you no longer clears its category.** A transfer whose category wasn't shared with you opened with \"No category\", and saving it, even unchanged, removed the category from the owner's transfer. One into or out of an account that wasn't shared with you couldn't be saved at all. Both are now kept as they are, as bills and recurring income already did, and a transfer paying a card you can't see keeps its statement or minimum-payment amount.\n- **Receipt scanning through the Otherworld relay uses its new address.** The relay moved to api.otherworld.dev and the old ocr.otherworld.dev address no longer answers, so scans and the subscription links failed to connect.\n- **A category added after a month's budget adjustment can be budgeted in that month.** An adjustment keeps a copy of every category's budget from when it was made, so a category created afterwards had none, and changing its budget for that month failed with \"No budget snapshot found\". Saving it now adds the category to the adjustment, starting from the budget the page was showing, and leaves the other categories alone. Contributed by @almeidandres ([#416](https://github.com/otherworld-dev/Budget/pull/416))\n- **Bills, transfers and income show the right paid state and dates.** A bill's paid state was judged by calendar month or by its last payment date, and each page worked out dates its own way, so the Bills page, the Transfers page, the Bills Calendar and the dashboard could disagree. A custom bill could jump a year ahead, a one-time bill with no month landed on 1 January next year with an empty Due Date, income read Received beside a date still to come, and editing a bill after paying it put it back on the payment it had just made. Bills, transfers and income now follow one schedule: the next date is the first payment not yet made, received or skipped, paying settles exactly that payment, and an edit that leaves the schedule alone leaves the date alone. A bill with no due day or month set keeps the day and month of its start date when it is paid, skipped or auto-paid, and a bill or income set up before this version whose next date was saved on the 1st or in January counts that date as the payment for its month, quarter or year, rather than being paid again on its start date's day. A twice-monthly bill or income on the 13th to 15th that was due on the 28th isn't paid again a couple of days later. Reported by @TerjeTM ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **A bill is paid once.** An imported statement now replaces a payment you had already marked, or auto-pay had booked, instead of adding a second one. That works for every one of the bill's payments the statement holds, in whatever order it lists them, and a split with a contact, receipts, tags and notes on the payment move to the bank's transaction. A payment you have reconciled is left as it is, and the bank's transaction for it isn't used to pay the next one instead. A double click creates one bill, transfer or income, and paying from a page left open on an old date is refused with \"Reload the page\" rather than paying the next one. Linking a bank transaction to a bill pays it properly or not at all, and a deleted bill's old payments can be matched to a new bill. An imported withdrawal for a recurring transfer already marked paid replaces that payment rather than also paying the next one, and payments added with **Record transaction** before this update don't come back in the unrecorded payments card.\n- **A bill's pre-booked transaction stays pending until the bill is paid.** The background job booked it on its due date while the bill was still unpaid, so the money left the balance once then and again when the bill was paid. The update puts those rows back to pending, and so does restoring a backup made by an earlier version, leaving alone a payment recorded with **Record transaction** after paying a cycle late. Rows in an account that has since been deleted are left as they are, so they can't stop a bill being deleted, a factory reset or a deleted user's data being removed.\n- **Mark Unpaid undoes the whole payment.** It also removes a transaction added with **Record transaction**, puts back the pre-booked transaction a linked bank transaction replaced, removes both sides of a transfer the app booked, while a transaction that came from your bank is kept and only unlinked, and warns before deleting a payment reconciled against a statement. Mark Unpaid and Mark Unreceived also survive a backup restore. The **Undo** in each notification on the Bills, Transfers and Income pages undoes the action it was shown for, where an older one could revert a later payment instead.\n- **Recurring transfers book both sides.** Paying one always credits the destination account and converts between currencies when the two accounts differ, including when it is paid from the bank's own withdrawal. A transfer between currencies that 2.54 had already booked ahead is converted when it is paid as well, where it would have credited the same number in the other currency. It can be paid by the bank's own pair of transactions, and when the destination account's statement is imported or synced, the bank's credit takes the place of the deposit the app booked, whichever statement comes in first, however the transfer was paid and even when the bank credits it a few days later, so the money doesn't arrive twice. Within one currency it has to be the same amount, between two currencies within 10% of the converted amount (banks use their own rate and fees), and a credit that matches one of your recurring incomes, such as a salary of the same amount, is never taken for it. With no exchange rate the transfer can't be paid from a bank transaction. A deposit you have reconciled is kept. A salary and a rent bill are no longer paired up as a transfer. Paying a card in another currency by its statement, balance or minimum payment converts the amount taken from your account, where it took the card's figure as it was. A **Minimum payment** transfer to a card with no minimum payment set is now refused, where it paid 0.00 every month and showed as paid.\n- **Recurring income.** One receipt settles one payment and is dated the day it arrived, an imported payment marks the income received and takes the place of a credit already booked for it, keeping its category, receipts, tags and notes, and undo removes only the income's own credit. Detect Income stops offering income you already track, puts what it finds on the right day and always gives it a name.\n- **Dates follow your timezone.** Overdue, due today, this month's counts, balances as of today, reports and the Nextcloud dashboard widget used the server's date, which is UTC. So for the first hours of each day east of Greenwich, and every evening west of it, they were a day out: a purchase made after midnight in Sydney was missing from the balance until midday, and a bill due today in Los Angeles showed as overdue in the evening. They now use your Nextcloud timezone, and scheduled transactions clear within the hour of the account owner's midnight. A reconciliation adjustment made in the evening west of Greenwich is no longer dated tomorrow, which kept the reconciliation from finishing. The budget tile, budget alerts, unusual spending alerts, the API's budget status, an account's This Month figures, Year over Year, the digest and the scheduled monthly report follow your date as well, so they no longer show last month on the morning of the 1st east of Greenwich.\n- **Auto-pay and reminders.** Auto-pay is due by each bill's own date, where a weekly bill only auto-paid once a month. A weekly or fortnightly bill that fell behind because of that pays every missed payment in one go after the update, each dated on its own due date, and uses the bank's transaction for any of them already imported from a statement rather than booking a second payment beside it. A bill whose auto-pay couldn't record the payment is put back and reported, instead of moving on with nothing booked, and two auto-pay runs at the same time pay a bill once without switching its auto-pay off. Reminders go out once per due date, with one overdue notice if the bill is still unpaid after it, so a weekly bill paid a day late still gets the next week's reminder.\n- **Card holds from bank sync.** A bill paid by a hold stays paid once, by the payment that posts. A cancelled hold no longer leaves its bill paid, a posted payment takes the bank's final amount and description, it no longer takes over another merchant's hold, and holds still post or clear after **Include pending** is turned off.\n- **Amounts are in the right currency.** Bills, transfers, income and their notifications show amounts in their account's currency, and the Monthly Total cards convert them to your base currency, where euros were added to pounds. Detected bills and split remainders show in the account's currency too.\n- **Detect Bills** stops offering bills and transfers you already have, puts what it finds on the right day and always gives it a name.\n- **The Bills Calendar follows the same schedule as the Bills page**, the dashboard's bills and income tiles follow their settings, and the daily digest counts every bill due and lists overdue bills separately. The calendar says why an account shared with you has no projected balance.\n- **Bills on shared accounts.** A bill on an account someone shared with you books its payments as the account's owner, and a split bill there uses categories the owner can see. A shared account's page shows its tiles and balance chart, and a shared card's Payment due tile counts the other person's payment.\n- **One-time bills whose date was made up are flagged.** A one-time bill saved without a month, before the Due Date field existed, was given a date by the server: 1 January next year, or the invoice's day in the following year. As that can't be told apart from a real date, these bills now show **Check date**, and the edit form says the date was filled in, until you pick one and save.\n- **Categories and tags.** Deleting a category takes it off bills and recurring income, and asks first when a scheduled payment uses it. A delete that is refused leaves the category's subcategories as they were, where it could already have deleted them along with their budgets and tags. Transactions left filed under a category deleted earlier counted in balances but in no category, not even Uncategorized; the update makes them Uncategorized. A deleted tag no longer follows a bill's payments.\n- **Pensions.** A contribution counts in the pension's balance straight away. A scheduled contribution keeps its day of the month, posts one missed date at a time, shows as overdue when it is due, and when it can't post it stops and tells you, with the amount in the pension's currency. Deleting an entry keeps a bank transaction that came from your statement, and warns when its bank transaction was reconciled. A payment from an imported account is counted once, deleting a pension leaves its bank transactions out of spending, and balance history and the projected balance count scheduled contributions. An account name with an & in it shows properly on a scheduled contribution, and an imported payment is only taken as a pension contribution when it names the pension or its provider as a word of its own, or has no category and is within a few days.\n- **Repair data no longer deletes real bill payments** or drops payments still owed. Payments an earlier Repair switched to scheduled are put back by the update.\n- **Backups.** A restore keeps what you share and bills on shared accounts, and a restored bill keeps its split categories, reminders and due date. A dismissed unrecorded payment stays dismissed. Bank connections, import rule groups, rules that add tags or match on an account, and the account and tag filters of saved reports come back pointing at your restored data, where bank sync stopped and those rules and filters were lost, and so do the dashboard's tile filters, hidden categories and account order and your muted budget alerts. When a bank account's link to Bank Sync can't be matched to an account in the backup, the restore tells you, so you can choose the account again in Bank Sync. Undoing a pension schedule's last post after a restore no longer posts it twice. A damaged or hand-edited backup is refused with a message naming the file and nothing is changed, where it failed part way with a server error. Backups made by this version are marked as a newer format, so an older version of Budget warns before restoring one.\n- **Reports, budgets and forecasts.** The forecast no longer counts transfers between your accounts as income and spending. Auto budgets count the bills that will show as spent, in the month shown. Budget alerts, the budget tile and the digest measure spending only, over every account you can see, and income targets are kept out of budget totals. A budget on a subcategory of a category set to **Exclude from reports** is left out of budget alerts, the dashboard's budget tiles, the Nextcloud dashboard widget and the digest, as it is on the Budget page, and the dashboard's Budget remaining counts a weekly or yearly budget's share of the month, where it counted the whole budget against the one month. A tag-linked savings goal counts the tagged transfers that feed it and takes off the ones out of savings, and the account page's This Month tiles count only what happened.\n- **Transactions.** A bill's payment can't be set back to scheduled, deleting a scheduled transaction no longer says it changes the balance, and a scheduled payment can't be ticked into a reconciliation. Deleting an account switches off the bills that use it.\n- **Splitting a transaction again can't lose its split.** A new split with a 0.00 part, or a part that wasn't a number, was refused only after the old parts had been deleted, so the transaction was left with some of its parts or none. Every part is now checked first, and a refused split changes nothing.\n- **Create default categories no longer adds import rules that do nothing.** It added six rules with no category, which matched descriptions containing words like \"shell\" or \"amazon\" and then stopped your own rules from running, so the transaction stayed uncategorised, and the getting started checklist now offers it to every new user. Each default rule now files into its default category (a rule whose category isn't there isn't created), the ones still as setup left them are switched off by the update and when they come back from an older backup, and default rules now have priority 0 while a new rule starts at 1, so a rule you make runs before them. Their patterns match whole words, so a bookshop such as Waterstones isn't filed as a water bill, or \"Mobile\" as a petrol station.\n- **Import rules made before 2.28 categorise imports again.** Since 2.28 a rule that hadn't been opened in the rule editor since, or that came back from an older backup, matched nothing when a statement was imported or a bank synced, and only worked from **Apply Rules** on the Rules page. They categorise imported and synced transactions again, and a rule with nothing it can do there, such as one with no actions or only a deleted category, no longer stops the rules after it.\n- **Restoring a backup keeps cards and loans on the right side of zero.** A card or loan whose balance had crossed zero since it was opened, such as a card paid off past its balance or a loan opened in credit that now owes, came back on the wrong side with a wrong opening balance, which also moved net worth. It now comes back as it was.\n- **Large backups export.** A backup of a big ledger, from around 110,000 transactions, ran the server out of memory and failed. The export is now built a little at a time and downloads as it is written, and holds the same data as before.\n- **Saved reports work again.** Since 2.33.0 the **Saved reports…** menu showed blank entries and choosing one loaded nothing. They show their names and load their settings again.\n- **Budgets, the forecast and the digest convert other currencies.** Spending in an account in another currency was added to the Budget page's Spent, budget alerts, the budget report, the dashboard's spending and budget tiles and envelope carry-over as if it were in your base currency, and the forecast added up balances in different currencies the same way. They are now converted at your exchange rates as the Cash Flow report does, on the dashboard from the moment the page loads rather than only after a tile's settings change, and Ready to Assign and the API's budget status use the same figures. The forecast leaves out an account with no exchange rate, as the dashboard does. The digest's income and spending now match the Cash Flow report too, with transfers between your own accounts left out.\n- **Forecast warnings only come from a forecast with enough behind it.** The forecast counted the month in progress as a whole month and drew a straight line through as few as two months, so a new user could be warned of a negative balance on a few days of data, with a salary not yet paid this month projected to stop altogether. The forecast now learns from the twelve complete months before this one, only follows a trend once it has three of them and never projects income below the recurring income you have set up, and the warning waits until the forecast is reliable. Projected spending follows its trend only when it is rising: when your spending has been falling, the forecast assumes you keep spending your average, and never less than your bills, where a falling trend could project no spending at all. A steady history that really is heading below zero still warns.\n- **Envelope budgets carry over what the Budget page showed as left.** A refund, or a transfer filed under the category on both sides, was ignored, so a refunded purchase counted in full and a monthly transfer to savings overspent the envelope every month.\n- **Closing an account.** A bill or income set up by someone who can no longer post into the account, because the share ended or is read-only, stopped it being closed for good, and the message listed other people's items by name. Those are now ignored and let go of the account when it closes, with a bill's auto-pay switched off, and the message only names your own items. An account with a transaction booked in it for a later date can't be closed either, which the check missed when the transaction was a scheduled one.\n- **Splitting, tagging, bulk editing and reconciling in an account shared with you.** With Read & Write you can now split and unsplit its transactions, tag them, and bulk edit, delete or reconcile them, where they failed with \"Transaction not found\" and the split form opened empty. You can reconcile the account itself and see its reconciliation history, interest and valuation too, where starting a reconciliation showed a database error and the history didn't load, and anyone the account is shared with can read that history. With Read only you can see a transaction's split parts, and opening a transaction no longer shows errors for its receipts or tag sets.\n- **Reconcile started from an account's page lists only that account.** It opened the transactions list before its filters were filled, so the account filter was dropped and every account's transactions showed, and ticking one from another account did nothing.\n- **Editing something shared with you no longer removes the owner's tags.** The bill and savings goal forms only show the tags and accounts you can see, so saving a shared bill took the owner's own tags off it and a shared goal lost its tag and account. Tags and links you can't see now stay as they are, and the same goes for a transaction's tags in a shared account and the tags a shared import rule adds.\n- **Reports work for an account shared with you.** The Summary report failed and Cash Flow came back empty when you picked one, and so did dashboard tiles set to one.\n- **Shared expenses.** Splitting a transaction from a shared account 50/50 or with one person stored no currency, so it showed in US dollars and the person's details left it out, and the update corrects the ones already made. Settling several splits at once recorded the whole payment against the first person, and now records each person's. A split whose transaction has been deleted, or is in an account you can no longer see, is listed under its note or \"Shared expense\" with its own amount, where it counted in the balance without being listed. Another user's contact, split or settlement answers \"not found\" rather than a server error, and across the app a request for something that doesn't exist no longer writes an error to the Nextcloud log.\n- **Statement imports.** Two identical transactions in one QIF file are both imported, where the second was taken as a duplicate of the first. A CSV row whose description runs over more than one line is no longer dropped, an amount written as \"45.00 DR\" imports as money out, and a Category column files rows under the category you already have with that name, even when it is a subcategory, where it created a second one at the top level. The column can also give the whole path, such as \"Food > Groceries\" in a Skrooge export, which files the row under Groceries in Food and adds any level that is missing, where the whole cell became one category with that name. A category you already have named with the whole path still gets its rows, and a refund goes in the expense category it names, where it made an income category of the same name ([#421](https://github.com/otherworld-dev/Budget/discussions/421)). An amount with more than three decimal places, as crypto and investment exports have, was read as thousands, so \"117.50000000\" came in as 11,750,000,000, and it now imports correctly. A file imported before with those wrong amounts may bring its rows in again with the right amount, so delete the wrong ones. The review step shows each row in its account's currency and decimals, where a crypto import read \"£0.00\" and an OFX card in dollars showed pounds.\n- **Unticking Apply import rules for categorization on the import screen leaves rules out.** The box was ignored, so rules still ran on the preview and the import. It now works, and for each new file it starts from the **Auto-apply Import Rules** setting.\n- **The transactions list's Total gives one figure per currency.** With accounts in more than one currency on screen it added them together as if they were one currency. It now shows a total for each.\n- **Unticking Split across categories unsplits a transaction.** Editing a split transaction, unticking the box and picking a category said \"Transaction updated\" and changed nothing. It now unsplits it into the category chosen, and split transactions opened from an account's page show their parts too.\n- **A double click on Save creates one item.** A double click, or Enter pressed twice, could save a new transaction, account, category, rule, tag, contact, settlement or other item twice.\n- **The Budget page's figures update straight away and add up to the penny.** Remaining, progress, the parent's total and the summary cards kept the old figure after you typed a budget, until the page was reloaded. Remaining also came out a penny short when budgets of different periods were mixed, and a budget spent exactly showed -0.00.\n- **The Accounts page fits a phone again.** It showed three cut-off columns with Net Worth off the edge of the screen, and now shows the summary row and one column of accounts. The Budget page's column header, the Categories toolbar, the bill and income buttons and the Help page's system table fit as well.\n- **Items shared with you read-only don't offer to change them.** They still showed Edit, Delete, Duplicate, Match transfer, Mark Paid, Mark Received and Skip, which the server then refused. Those are hidden now, along with Edit, Reconcile, Add Transaction and Import on an account shared with you read-only, and a shared transfer's Delete only shows with Full control, as a bill's does.\n- **The API answers properly in a few more cases.** A transaction refused because its account was read-only or unknown held on to its idempotency key, so retrying the same draft on the right account failed with `request_in_flight` for a week, and it now records. Recording into an account you can't see says \"Account not found\" (404) rather than calling it read-only. A list sent where one value belongs is refused with a 400 when recording or editing, where a list sent as the vendor was saved as the text \"Array\" and one sent as the account recorded into the wrong account. `GET /api/v1/transactions` clamps `limit` again on Nextcloud 35, where 0, a negative number or anything over 500 got an empty error, and the info call answers at `/api/v1/` as well, which is where the API description sends generated clients, and they got a 404. Amounts are given in their currency's own decimal places, at least two, so 0.015 BTC no longer reads 0.02 and an app that sent a transaction back to change its description no longer changes its amount.\n- **Upgrading from Budget 2.1.0 or older on Nextcloud 35 no longer stops with an error part way through.**\n- **Share invitations go away once answered.** Accepting, declining or leaving a share left the invitation in your notifications.\n- **A Budget result in Nextcloud's search opens the transactions it found.** Following one opened the whole Transactions list. It now opens filtered to the search, with the Filters panel showing it.\n- **The account form keeps what you type.** A new account's starting balance went back to 0.00 when you changed its currency, its type or the in credit box, and Edit Account showed the previous account's values while it loaded, so an edit made in that moment was lost.\n- **Debt Payoff shows the right figures.** Its Monthly Payment and each debt's minimum always read 0, and debts in other currencies were added up as if they were in your base currency, so a dollar card was counted as pounds. The totals are now converted as on the Accounts page, with each debt's own balance shown beside it. The plan also pays the same amount every month: when a debt is paid off, its minimum payment goes on to the next one, as a snowball or avalanche should, where the freed payment was dropped and the debt-free date came out years late.\n- **Decimal Places set to 0 shows amounts without decimals.** The preview in Settings showed it, however the rest of the app kept two places. Amount fields still take decimals when you type them.\n- **A budget cycle with a start day no longer loses a day next to the clocks going forward.** In London with the start day on the 30th, spending on 29 March fell into no cycle at all.\n- **Account tiles draw their balance trend line, and the Institution field suggests banks again.** The trend line never drew, and the Institution field on the account form never showed its suggestions, and picking one did nothing. An account's balance trend and the dashboard's one-account chart now end at today's balance, where they ran a day behind.\n- **Quick Add shows subcategories under their parent.** Its category list was flat, so two subcategories with the same name, such as Other under Food and Other under Travel, looked identical. Subcategories are now listed indented under their parent category, the way the main app's category pickers show them. Reported by @fatino ([#409](https://github.com/otherworld-dev/Budget/issues/409))\n- **No more false JavaScript-Format errors in Weblate.** Five strings with a percentage in them, like \"{percent}% of what is already in {account}\", were marked as printf-style strings, because \"% o\" looks like a format code. Weblate then flagged good translations such as German \"{percent}% der\" as broken. They are now marked as plain strings, so the error goes away and translations need no change. Reported by @SGiersch ([#415](https://github.com/otherworld-dev/Budget/issues/415))\n- **The Bills page cards count bills shared with you.** Due this month, Overdue, Monthly total and Paid this month only counted your own bills, although the list under them included shared ones, so a shared bill that was overdue was listed while the Overdue card said 0.\n- **On a phone a form's title no longer hides under the Nextcloud header.** In Firefox on Android the edit transaction form, and other forms like it, could open with their title behind the header bar. Forms now open in the space below the header.\n- **A link to one transaction opens it.** A link ending in `#transactions?id=` followed by a transaction number, which the Android companion app opens when you tap a transaction, now opens that transaction's edit form, where before it only showed the list. Opening or duplicating a transaction that wasn't in the loaded list failed with an error in the same way, and now works.\n- **A shared account shows the same balance for both of you.** On the Accounts page your own accounts leave out future-dated transactions, however an account someone shared with you showed its stored balance, which counts them, and wasn't converted to your base currency. So a joint account with next week's rent already entered showed less for the person it was shared with than for its owner. Shared accounts are now worked out the same way as your own, on the dashboard, in net worth and in the forecast as well.\n- **A very small crypto balance no longer breaks pages.** An account holding less than 0.0001 of a coin, or a rounding leftover in its future-dated transactions, made the whole Accounts page fail to load, along with the account's own page, the dashboard totals, the Nextcloud dashboard widget and the API's account list.\n- **Adding a subcategory under a shared category gives a clear answer.** Categories shared with you were offered as a parent when adding a category, however only the owner can add subcategories to one, so saving failed with a raw database message. Shared categories are no longer offered as a parent, and moving or dragging your own category under a shared one is refused with \"Only the owner can add subcategories to a shared category\". Where you and the person sharing with you both have a category with the same name, the parent list also now offers your own category, where before it could pick theirs. Editing a shared rule to use a category the rule's owner can't see now says that, in place of \"invalid category ID\". Reported by @belze-bu ([#402](https://github.com/otherworld-dev/Budget/issues/402))\n- **The rules list shows a Set description badge.** A rule whose action sets the description showed no badge for it in the list, so it looked like the rule did nothing. Contributed by @saviq-work ([#405](https://github.com/otherworld-dev/Budget/pull/405))\n- **Import rules accept every regex the server can run.** The rule builder checked regex patterns in the browser, whose regex engine is not the one rules run with, so valid patterns such as `(?i)` inline flags were refused. Patterns are now only checked when the rule is saved, and a bad one is refused with the reason rather than a general \"Failed to save rule\". A pattern can also be written as `/pattern/flags` to set its own flags, for example `/^ORDER-\\d+$/` to match case-sensitively, where a plain pattern still ignores case. Contributed by @Saviq ([#403](https://github.com/otherworld-dev/Budget/pull/403))\n- **A bill due on the 1st keeps its date after being paid early.** Paying a bill ahead moves its next due date on, but for a monthly, quarterly or yearly bill due on the 1st of the month, any later edit to the bill, even just renaming it, put the due date back to the next 1st as if it had never been paid.\n- **The Category by Month report adds up.** Transactions with no category were left out of it altogether, so a month's Net total didn't match the same month on the other reports. They now have an **Uncategorized** row at the bottom, which also counts the parts of a split transaction with no category, and the rows add up to the Net total. Categories shared with you have their own rows as well. It's in the CSV and PDF exports too.\n- **Dialogs close when you leave the page.** Going to another page with the browser's Back button left an open dialog on top of the new page. The dialogs the app builds as it goes, the duplicates finder and the transfer form among them, also ignored Escape and let the keyboard wander behind them, and most dialogs were hidden from screen readers while open.\n- **Buttons on the Sharing and Bank Sync pages are styled.** Accept, Invite, Revoke, Leave and Disconnect used button classes the app never defined, so they showed as plain browser buttons.\n- **Switching Categories between Expenses and Income no longer clears the selected tab on the Bills, Budget and Transfers pages.**\n- **The \"Budget adjusted from\" message named the previous month** for anyone west of Greenwich, and a savings goal's target date could show the day before, as both read the date as UTC. The target date now follows your date format setting as well.\n- **The Overdue card on the Bills page showed an empty circle**, along with a few other icons the app asked Nextcloud for under names it doesn't have.\n- **Cards and column headers can be used from the keyboard.** Account, asset, pension and contact cards, the category tree, rule groups and sortable columns can be reached with Tab and opened with Enter, and icon buttons and fields that had no name for screen readers now have one.\n- **The Rules page no longer scrolls sideways.** The sort arrow for the rule list picked up the transactions table's styling, which placed it absolutely, so it was drawn at the far right edge of the page instead of beside its column heading and made the page 2px wider than the window.\n- **Icon buttons have names for screen readers.** Around 80 icon-only buttons (edit, delete, close and the like) were named only by their tooltip, which touch screens never show and some screen readers skip. The dashboard's tile size buttons now read Extra small, Small, Medium and Large in your language, where they were in English only.\n- **Changing a credit card's statement day now saves.** It was only stored when the account was created.\n- **Crypto balances keep all 8 decimal places** when a scheduled transaction clears or a backup is restored, where they were rounded to 2, and so do an account's running and projected balances and the parts of a split transaction when its amount changes. A yen split's parts are rounded to whole yen.\n- **Tags created inside a category are included in backups.** They were never recorded against their owner, so since 1.0.44 they were left out of backups and restores and survived a factory reset. The update fixes existing tags, but a backup made before updating still lacks them, so make a new backup once you have updated.\n- **Restoring a backup works on PostgreSQL.** It failed with \"invalid input syntax for type boolean\" whenever the backup held tags or other yes/no settings. A restore also keeps each account's wallet address, interest settings and last reconciled date, which were being reset, and restoring over existing data no longer leaves orphaned receipt links behind.\n- **Transaction search works on Nextcloud 30.** It used a function added in Nextcloud 31 and failed with an error.\n- **Rules with an \"is between\" condition made in the rule builder now match.** They never matched anything as the range was saved as text. Existing rules start working without being saved again, a range can start at 0, and a quote mark in a condition no longer breaks the rule editor.\n- **A report filtered by tags no longer counts a transaction twice** when it has two of the chosen tags.\n- **Report totals no longer show leftovers such as 0.30000000000000004.**\n- **Budget carryover no longer counts a split transaction that pays into a pension as spending.**\n- **Names containing \"&\" or quotes no longer show as \"B&amp;Q\"** in some labels, tooltips and warnings.\n- **Buttons that only appeared on mouse hover** can be reached by keyboard and on touch screens.\n- **Screen readers announce** the form fields that had no label, the transfer link in transaction lists, and budget progress including when a budget is overspent.\n- **Dates using a month name no longer garble months containing \"j\" or \"d\"**, such as French \"janv.\".\n- **An error during bill auto-pay no longer stops the reminder job** for everyone else.\n- **Forecast month labels and pension chart dates** follow your language and date format instead of showing in English.\n- **Some bulk actions and settings switches said they had worked when the server had refused them.** They now show the error.\n- **The rules list showed \"No actions\" for every rule made in the rule builder.** It now shows each rule's category, vendor, tags and other actions.\n- **Routing number and sort code checks on the account form never ran.** They were sent under the wrong field name, so only IBAN was checked.\n- **A receipt that failed to attach to a new transaction** now shows the warning saying so, where the failure used to go unnoticed.\n- **Dropping a category next to one of its own subcategories no longer loses it.** It made the category its own parent, so the whole branch vanished from the list and editing or deleting it could hang. That move is now refused, and categories already caught this way come back at the top level after the update.\n- **Resetting your data, restoring a backup or deleting a user no longer leaves other people's data pointing at it.** Their transactions, bills and income stayed filed under your deleted shared categories, their transactions kept your tags, their bills kept auto-paying from your deleted shared accounts and their transfers stayed paired with deleted rows. Those links are now cleared the same way deleting a single category or account clears them, and a recurring pension payment funded from an account that has gone stops auto-posting, where it went on recording payments with nothing leaving any account.\n- **Dashboard tiles showing some of your accounts, or filtered by tag, add up properly.** Spending in categories excluded from reports was taken off their totals from every account, including the ones the tile leaves out, so a total could go negative, and a shared category took the other person's spending off yours as well.\n- **Removing duplicate categories, or all of them, in Setup takes them off split parts too.** The parts were left filed under a category that no longer existed.\n- **Account pickers no longer offer accounts shared with you read-only.** The transaction form, Quick Add, bills, transfers, income, rules, import and reconcile listed them, and saving into one was refused. Imports and bank sync now offer only your own accounts, as importing into an account shared with you always failed. A savings goal can still track one.\n- **The number format preview in Settings updates when you change it.** It kept showing the old format and each change logged an error.\n- **Typing an amount for a transfer between currencies sends one exchange rate lookup.** It sent one for every time the form had been opened, and a slow earlier reply could overwrite the amount you had just typed.\n\n### Security\n- **Undoing a bill payment only removes that payment's own transactions.** It deleted any transaction the request named, including other people's unshared ones.\n- **Mark Paid only links transactions in accounts you can change.** It would link any transaction whose id it was sent, including one in an account you couldn't see or one shared with you read-only, and pay the bill with it. Mark Paid now only offers, and only accepts, transactions in accounts you can write to.\n- **Ending a share cleans up after itself.** Mark Paid, Skip, undo and auto-pay went on writing to and deleting from the owner's account, the bills' pending transactions stayed in it, and Mark Paid still listed the owner's transactions as possible matches. The other person's own transactions, bills, income and import rules also kept the owner's categories and accounts, so their lists showed names they could no longer see and saving them again was refused. Now, when a share is revoked or left, or accounts or categories are taken off it, those become uncategorised, and bills, income, savings goals and pension payments let go of the account, with auto-pay and auto-post switched off. Their splits with contacts are kept and still count, and sharing again works as normal. A transfer into an account that is no longer shared, has been closed or was removed by its owner's reset is refused with \"Edit the bill and choose another account\" until another one is chosen, rather than being marked paid with nothing recorded.\n- **Deleting a Nextcloud user removes their budget data and shares.** Their bills kept auto-paying into accounts others had shared with them, the people they had shared with kept write access to their accounts, and a new user later given the same user name would have inherited all of it, including the shared expenses other people had linked to them. The removal works for very large budgets on PostgreSQL too, and is all or nothing, so if it fails nothing of theirs is removed and it can be run again, however the access other people gave them is still taken away straight away. Background jobs no longer act for a deleted user either, so data left by users deleted before this version no longer auto-pays into accounts shared with them, and `occ budget:purge-deleted-users` can remove it.\n- **A split stops showing a transaction that is no longer shared.** Someone could split a transaction from an account shared with them with a contact linked to another user, who went on seeing that transaction, edits included, after the account stopped being shared. The transaction now shows only while the person who split it can see it. The split itself stays, with its own amount, under its note or \"Shared expense\", and still counts and can be settled.\n- **Sharing a category no longer shows your other accounts.** Its details on the Categories page listed and counted the owner's transactions from all of their accounts, including ones never shared with the person viewing it. They now only cover the accounts that person can see.\n- **A transfer no longer names an account that wasn't shared with you.** On an account someone shared with you, a transfer to one of their other accounts showed that account's name in the transactions list, \"Transfer → Owner savings\", although the account itself was never shared. It now reads \"Transfer\", as it already did over the API.\n- **Names are always shown as text.** Payees and vendors from imports and bank sync, and the names of shared categories and accounts, were put into some lists as HTML, so markup in a name was rendered.\n- **Tags in shared categories and accounts.** Someone with write access to one of your shared categories could edit or delete the tags in your other categories. A bill also accepted any tag, so its payments could show another user's tag, and the tag trends report named any tag it was asked about. Bills, and transactions in an account shared with you, now only take tags you can see that the account's owner can use, and the tag picker on such a transaction only offers those and says why when a change is refused.\n- **Categories must belong to the ledger.** Transactions, splits, bills, recurring income, import rules and categorising in bulk accepted a category id belonging to another user, and that category's name then showed in the transaction list. Only categories the account owner can see are accepted now, including a bill's or recurring income's own category when it pays from or into someone else's account or is linked to a transaction there, and an import rule with such a category leaves it out when it runs. On an account shared with you, and on a shared bill or recurring income, the category also has to be one shared with you, and the category pickers there only offer those, while a category the row already has stays as it is, even one that isn't shared with you. Its name still shows wherever the transaction does, on the transactions list, the account's page and the dashboard, and the transaction, bill, transfer and recurring income forms show it greyed out as, for example, \"Food (not shared with you)\". An account that wasn't shared with you is still never named. Over the API, a new transaction with such a category is still recorded, without a category, and the response says why in `category_error`, so a capture is never lost.\n- **Recurring income and bills only book into accounts you can post to.** Someone with write access to a shared income could point it at the owner's private account and book money there, anyone could pin income to another user's account, and someone with write access to a shared bill could move it onto their own account, after which the owner couldn't pay it. The account must now be one you can post to, and on shared income or a shared bill one its owner can use as well. Paying, skipping or undoing a shared bill, and marking shared income received with a payment or undoing it, also need write access to the account the payment goes into, and to a transfer's destination, where Read & Write on the bill or income alone let the other person book into, or delete from, an account hidden from them or shared read-only. Mark Paid, Skip, Mark Unpaid and Mark Received are only offered when you can change those accounts, and on your own bill or income the message says how to put it right.\n- **A shared savings goal can't be pointed at an account or tag that wasn't shared.** Someone with Read & Write could link it to one of the owner's other accounts or tags and read its total. Both must now be ones you can both see.\n- **A shared card payment can't reveal the card's balance.** Someone with write access to a shared transfer to a card could switch it to the card's statement or balance amount and read a card that was never shared with them. That now needs the card to be visible to the person making the change.\n- **The calendar feed link stays with its account.** Any setting could be written through the settings API, including the calendar feed's secret token, and backups carried the token as well, so restoring someone else's backup, or setting the token by hand, could take over their feed link, and two people holding the same token broke the feed for both. Only the settings the app's own pages change can be written now, and backups no longer carry the feed link, so your own restore keeps your link and a new account gets a new one.\n- **The budget report could read spending from another user's account** when given its id.\n- **CSV exports can't run as spreadsheet formulas.** Text starting with =, +, - or @ is written so a spreadsheet treats it as text, and amounts stay numbers.\n- **Uploaded statements and backups.** An uploaded bank statement can only be previewed or imported by the person who uploaded it, and a backup that unpacks to more than 200 MB per file or 500 MB in total is refused instead of running the server out of memory.\n- **Moving a shared category needs Full control.** Someone with Read & Write could move one of your categories to another level of your list, and with Full control under categories that were never shared with them. Only Full control moves a category to another level now, and only under categories they can see.\n- **Rules and edits only move transactions into accounts you can write to.** An import rule could move transactions into an account shared with you, even one shared read-only, which also left that account's balance wrong. A rule's Set Account now only moves transactions between the rule owner's own accounts, and the rule builder only lists those. Editing a transaction in a shared account could also move it into one of the owner's accounts that wasn't shared with you.\n- **Linking a contact to a Nextcloud user follows the sharing settings,** and no longer shows the name of a user the people picker wouldn't show. Restoring a backup follows them too: a restored contact keeps its link only if you could have linked that person yourself, and the restore says how many links it removed.\n- **Heavy requests are limited.** An account's balance history covers ten years at most per request, and exchange rates can be refreshed five times a minute."}},"signatureDigest":"sha512"},{"version":"2.54.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.54.0/budget.tar.gz","created":"2026-09-23T01:24:00.434685Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-23T01:24:00.523753Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"d3JoDG2qEslchYbxuDz+X7xW/s3MoIxiGE87oD178iJKvRGb8IokdeN1rfUVcAI75khTcph+qxu142oMnIdO2TVn7dGoF7KSjoflm0v+TUKxMit3zT4933Cw8x+QcsnmqBx7l7ZutgwO5XjV+/OtdU9hK9NJ8lO3QfcU8/ZBL/PFaN3O9eg/3iRS7En5UIE2VC/D0mcj534YKYhCQhg6rRXQiD99c+bTc1NBq3zeQ9eJjogVTo/ZB1lCG05H0+3mZoaFmmuCQF4WcgbmeY3OWTxVgcPkN64OVzzatXXBDsomMBbUcSMLApYmy45We4GB7cR+yE+lTei/8M2Q1Sk2OCoMTmo3PvmD3neHbUNT9KxPso1sU6x7Sh76sPSs86eeAtZHhdoP5Ij8hOQAORbjNY/zTvVv3LRro8dbUimZVRlIOzHJJ09ggj6JMTh9lTPulCwcbJcBcUranUEeyjrSIKrZZxeRBKGR7ypDw55TXi/tvDYinx//zdzsUFGcBex4bkmo7/fEn+RhxeyWyIbAFNEEad9EZve8OPyTqoT2IVn6ZwdIEoekUNGoCAx46/tNImqWfed1uq0W/EciK28nHkugCpleGyBMz+EbX/T2VhGkMViAutmtS4YhSn2U8AFrb/XeVV6V/rf3rjeTW7dMbt20o9Tbko789POlXR3XbnQ=","translations":{"en":{"changelog":"### Added\n- **The Quick Add page can be installed as an app.** Adding it to a home screen (or installing it from Chrome or Edge on a desktop) used to open Budget's main page instead, because Nextcloud gives every page in the app the same web app manifest and that one starts at the dashboard. On iPhone this meant \"Add to Home Screen\" could not be pointed at the Quick Add page at all, and the only way round it was a Shortcuts workaround. The page now has its own manifest and icon, so the installed app opens straight to the form in its own window without the browser's address bar, which is what you want when paying at a till. Chromium browsers also need a secure (HTTPS) connection before they offer to install it\n- **The import review says which rows have no description.** Description has to be mapped before a file can be imported, however nothing checked the cells under it, so a row with an empty description went through the review step without a word. Import rules that match on the description cannot categorise a row that has none, and in the file this came from five rows in six had been exported with the cell empty and showed as uncategorized with nothing to say why. A warning above the statistics now says how many of the rows have no description, with their row numbers, and that they will still be imported. A row whose description is filled in by a **Set Description** rule is not counted. Reported by @TerjeTM ([#388](https://github.com/otherworld-dev/Budget/issues/388))\n- **A transfer can be skipped.** Bills have had a **Skip** button for a while, but the Transfers page never offered one, so the only way past a transfer that was not going to happen this time was to mark it paid and then delete the two transactions that created. The Transfers page now has the same **Skip** as bills: the due date moves on one cycle, any transactions pre-booked for the skipped date are removed and the next occurrence is pre-booked in their place, and **Undo** in the notification that appears puts the old date back. Suggested by @SGiersch ([#396](https://github.com/otherworld-dev/Budget/issues/396))\n- **A payment without a transaction can be dismissed.** The *Payments without a recorded transaction* card lists any bill marked paid with no transaction behind it, and its only way out was **Record transaction**, so someone who had deleted the payment on purpose because the bank never took it was reminded of it for the card's whole 60 days. Each entry now has **Dismiss**, which keeps the bill as paid and stops listing that payment, and where the bill still holds its last payment a **Mark Unpaid** button as well, the same revert the list offers, for when the money never left at all. A dismissal covers that one payment only, so the bill's next payment without a transaction is flagged again. Reported by @TerjeTM ([#394](https://github.com/otherworld-dev/Budget/issues/394))\n- **The Bills Calendar projects an account's balance through the rest of the year.** With an account chosen in the calendar's Account filter, a **Projected balance** row under the monthly totals starts from the account's balance today and carries it from month to month, taking off the bills still to be paid out of it and adding the transfers and recurring income still due into it, so each month shows what the account should hold by the end of it. Months already gone are blank, as anything paid then is in today's balance, and a bill still owed from an earlier month is counted in the current one. A shortfall is shown in red, hovering a month breaks it down into bills, transfers in and income, and hovering the row gives the balance it starts from and the lowest point in the year. Transfers are counted even when the table is set to hide them, since the money moves either way. The row is only shown for the current year, and not for **All Accounts** as there is no single balance to start from. The CSV and PDF exports carry the same row. Suggested by @TerjeTM ([#393](https://github.com/otherworld-dev/Budget/issues/393))\n- **A What's new window after an update.** Each release can now come with a short note on what has changed, shown once the first time you open the app after updating, so new features don't go unnoticed in the changelog. It only appears for a release that has a note, a new install starts without one, and **What's new** on the Help & Docs page opens the latest notes again. The notes are in English only for the time being, as they go out with the release before there is a chance to translate them.\n\n### Changed\n- **Translations.** French, German, Polish, Russian and Ukrainian have been updated from Weblate.\n\n### Fixed\n- **Bill and income notifications reach the notification bell.** Bill reminders, overdue bills, auto-pay results and recurring income created automatically all carried the bill's or income's ID as a number, however Nextcloud only accepts text in a notification, so it discarded every one of them before they were shown. The other notifications (budget alerts, digests, unusual spending, forecast warnings, reports and share invitations) were not affected. All of them now go through.\n- **Paid bills show when they were paid.** Marking a recurring bill paid moves its due date on to the next occurrence straight away, and the bills list only ever showed that date, so the **Paid** tab listed this month's payments next to next month's dates, and a bill marked paid by mistake could not be told apart from the rest. A paid bill or transfer now shows the date the payment was recorded, followed by the date it is next due. Reported by @TerjeTM ([#399](https://github.com/otherworld-dev/Budget/issues/399))\n- **A one-time transfer is entered with a date.** The transfer form only asked for a day of the month, so a one-time transfer had no month, and the app filled the gap with January: a transfer entered on 22 September as due on the 28th came out due on 28 January of next year, and the Bills Calendar for this year never saw it. One-time bills have had a proper due date since 2.49.0, and the transfer form now asks for the same, in place of the day of the month. The date can be in the past, and the day and month follow it. A one-time transfer saved before this opens on the date the app had worked out, so the wrong year is there to be corrected. Transfers show in the Bills Calendar with **Include Transfers** ticked. Reported by @TerjeTM ([#395](https://github.com/otherworld-dev/Budget/issues/395))\n- **Undoing a skipped payment no longer books a placeholder the bill had opted out of.** A bill with **Create future transaction** off keeps the next occurrence out of its ledger, and skipping it respected that, however undoing the skip put the placeholder back regardless, so a transfer with the setting off gained a pair of scheduled transactions as soon as a skip was undone. Found while adding **Skip** to transfers ([#396](https://github.com/otherworld-dev/Budget/issues/396))\n- **Turning on Create future transaction in the same save as a schedule change books the next occurrence.** Editing a bill's due day, frequency or start date and ticking **Create future transaction** at the same time saved the setting but did not pre-book anything, and a transfer switched to a statement, balance or minimum payment amount along with a schedule change kept its old placeholder at the old fixed amount. Both were down to the new due date being worked out on the bill before those checks compared the old settings with the new ones, so they saw nothing had changed. Found while adding statement amounts ([#347](https://github.com/otherworld-dev/Budget/issues/347))\n- **The budget report's Spent column only counts the accounts in view.** The Budget page and the carried-over amounts have counted only your own accounts and the ones shared with you for a while, however the budget report and the dashboard's Budget Progress tile took Spent from every account with a transaction in the category. With the tile set to leave shared accounts out, spending in them was still counted. Spent now uses the same accounts as the rest of the report.\n- **A budget on a parent category counts what is spent in its subcategories.** Budget alerts and the budget report only counted transactions filed directly under the budgeted category, so a budget on Housing with the spending filed under Rent read 0 spent and never raised an alert. A budget now counts its subcategories as well, down to any subcategory with a budget of its own, which is measured on its own and not counted twice. Subcategories left out of budgets or reports stay out. After updating, alerts may appear for parent budgets that were overspent all along.\n- **A database column lost during an update comes back on its own.** Since June several instances have hit \"Unknown column\" on saving, with Nextcloud recording the update that adds the column as done ([#289](https://github.com/otherworld-dev/Budget/issues/289), [#302](https://github.com/otherworld-dev/Budget/issues/302), [#333](https://github.com/otherworld-dev/Budget/issues/333), [#398](https://github.com/otherworld-dev/Budget/issues/398)). The cause is now known and reproduced: Nextcloud applies each database change by comparing the whole database with a snapshot taken when the step started, and removes anything the snapshot did not have, so two app updates running at the same time take out each other's freshly added columns, and the Apps page's **Update all** runs every app's update at once. The app now checks its own tables after every update and re-runs the change behind anything missing, and the same repair runs when the app is disabled and enabled again, from the Apps page or with `occ`, and on `occ maintenance:repair`. The warning shown when a column is missing says so instead of naming `occ migrations:execute`, which nobody without a shell could act on. Reported by @malle214\n- **The import review shows the category a Category column gives a row.** With a column mapped to **Category**, a row that no import rule has categorised is filed under the category that column names, and **Auto-categorized** counted it, however the table beside it read \"Uncategorized\" for the same row, so a six-row file could say \"Auto-categorized: 3\" above a table showing one category. The table now shows the category from the column, and **Show uncategorized** no longer hides those rows. A rule's category still comes first, as it does when the file is imported ([#388](https://github.com/otherworld-dev/Budget/issues/388))"}},"signatureDigest":"sha512"},{"version":"2.53.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.53.0/budget.tar.gz","created":"2026-09-20T00:22:19.238594Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T00:22:19.328950Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"LqP/iDSXjBPeJCjfDRhu1cFG2dbT1UdbCYPdKsW0nHXwdsNhdMnPgyA5agcibZvYPeZCjfjHJhAXI0pN/813wWc23adb6KgyqbKfT3naMYjMXSZlJ91RvFRQKGDR0KjcVPHoZ80mM720hyO6kLMaanqm8RdjvGwo2OgfrUxeFMcGKaVSoFrSw7sLZBbAD5lZFlcJmdf+TtVzt5KKitLZSgxPVFHk3AT7+4uADWfYa1bCBSCNTpHetc/EXmFcdgQJTt2iXEcmJTg2mgEccMFu/XrRoA8wpZxDBygmrvYndZ4MAU4BsuElN3ESGnD5JIdY4u8cspivHl/YB6/bDXFsa6MSig8nq2qgcTCbF1eYnyFIvIfbN57a9JqUkQ/7ziyHqm7OTTrZSza5wBmSOsgH311ErHMmfOaOlyfy9FRZU7Oc05FevzzUh20lXWRGXiEah53/A2sSPaSRQfW710nzQj19GDzs5s8NLb5B9cfggAgvqzwPuxmFCZ5s0iU0mIZ6WjqLLrytNEufjtLnB4sG64t3LzCdvcRAYGHrwKjnnrbS+vpPdcIlHS7/UwBtengeVm0FOZ7HI6aA4glkb0SsAq3KGZlo4ueLqGmzf8YA4BWvItsUBkJ0UAxK40ivGnJCl8/y9N2SmuMYZVEOxwD0UvhKtyi+DxG3mpYuIDEvpqg=","translations":{"en":{"changelog":"### Added\n- **A transaction can be split between several people at once.** The Share expense dialog only split with one contact at a time, either 50/50 or a typed amount, so a bill shared between three meant opening it once for each person and working out their share by hand, and reopening it on a split transaction only offered to add someone else. It now lists all of your contacts with a tick box each, plus a row for you, and splits **Equally**, **By percentage** or **By amount**, showing what each person owes as you go. You are in the split by default, and unticking your own row divides the whole amount between the others, for something you paid on their behalf. A penny that will not divide evenly stays with you. Reopening the dialog shows the splits already saved, which can be changed, added to, or removed by unticking everyone, and a split that has been settled is shown but locked, with what it covered left out of what there is to split. Suggested by @justinlimbo ([#391](https://github.com/otherworld-dev/Budget/issues/391))\n- **Project budgets.** A budget for a job that runs over months, such as a renovation, a wedding or a long trip, where a monthly budget that resets does not fit. A project covers a category and everything under it from a start date to an optional end date, with one total for the lot, and its subcategories can each be given an amount of their own, with what is left shown as unallocated. The new **Projects** page shows spent, remaining and how much of the time has gone for each project, and opens a breakdown per subcategory with a link to the transactions behind the figures. The spending is worked out the same way as on the Budget page, so refunds are taken off and split transactions count in the right subcategories. Creating a project can tick **Exclude from budgeting** on its category, so a big project bill does not show as over budget on the monthly Budget page. Projects can be shared with other Nextcloud users like savings goals, and anything the people you share the category with file under it counts towards the project. There is also a dashboard tile. Suggested by @justinlimbo ([#391](https://github.com/otherworld-dev/Budget/issues/391))\n\n- **A new category starts on a colour nothing else is using, and several categories can be recoloured at once.** Every new category opened on the same blue, so a budget of twenty meant choosing twenty colours by hand and checking each new one against the rest. New categories now take the next colour from a palette of 32 that none of your categories use yet, and once all 32 are in use the one used least often comes next. For categories that already exist there is a **Recolor** button beside **Delete Selected** on the Categories page: tick the ones to change, or use **Select All**, and each is given a different colour, avoiding the colours of the categories left unticked. Suggested by @fatino ([#392](https://github.com/otherworld-dev/Budget/issues/392))\n\n### Changed\n- **Translations.** German and French have been updated from Weblate.\n\n### Fixed\n- **The red Delete Selected buttons can be read again.** Nextcloud paints a button marked as an error with dark red text on a red fill, so the label on **Delete Selected** in the accounts, transactions and categories lists was close to unreadable. Those three now use the app's own destructive red with white text, which also holds up on Nextcloud 30, where the error colour is a pale tint that white text disappears into\n- **Deleting a contact removes what you split with them.** The confirmation said every shared expense with the contact would go, however only the contact itself was deleted. Its splits and settlements stayed behind, left out of every balance, and the transactions they belonged to kept a **Shared** badge that nothing could clear. Deleting a contact now removes its splits and settlements with it, and anything left behind by a contact deleted before this is cleared when you update ([#391](https://github.com/otherworld-dev/Budget/issues/391))\n- **Restoring a backup keeps each category's report and budget settings.** A backup saved **Exclude from reports**, **Exclude from budgeting** and envelope budgeting for every category, however restoring it never read them back, so every category came back counted in reports and budgets with envelope budgeting turned off. They now come back as they were exported, along with the month the envelope started from. A backup made before these settings existed restores as before ([#391](https://github.com/otherworld-dev/Budget/issues/391))\n- **Amber budget bars show their progress again.** A bar in the amber band showed empty: between 60% and 80% of a budget on the Budget page, and over 50% up to 80% on the dashboard's **Budget Progress** tile. A Nextcloud style for warnings outranked the amber fill and pushed it out of its bar. The fill now stays inside the bar ([#391](https://github.com/otherworld-dev/Budget/issues/391))\n- **Bills can be shared from the Sharing page again.** The **Configure** panel only listed your bills, recurring income and savings goals if you had opened those pages since loading the app, and a section with nothing to list is left out, so going straight to Sharing showed no Bills section at all and there was no way to share them. Recurring transfers were never listed either. The panel now loads all three itself, transfers included. It also leaves out accounts someone else has shared with you, which could not be shared on and made the whole Accounts section fail to save if one was ticked. Reported by @fatino ([#392](https://github.com/otherworld-dev/Budget/issues/392))\n\n### Security\n- **A bill can only pay from, or into, an account you can post to.** Creating or editing a bill never checked the account it named, and a bill's payments are booked as that account's owner, so a bill could put payments into an account belonging to another user on the same Nextcloud, including one never shared with you or shared read-only. Bills now accept only your own accounts and ones shared with you at **Read & Write**, the same rule new transactions already follow. Editing a shared bill still leaves the account it already pays from as it is, even when that account was not shared with you"}},"signatureDigest":"sha512"},{"version":"2.52.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.52.0/budget.tar.gz","created":"2026-09-18T11:44:38.633359Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-18T11:44:38.746166Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"Yjtb6oj/6u2vw+lMxUwTdqaoecbNZKr8zgforTdMu2KAUE/D7PJQiWgI+mlRDXOoDp++CZJkbkDwEIknVcN6Zl5rCfUtSvMwdVk4IvOKwG7AW2qqDhnHDplkWBwPMEFNNJdQxPnjsDTNYxTEtGnOXwl2gxc9NMIFSD3c/DeCbxzLZd61DaVpjQohgLF7EKuVeLohtjay574dEpwpXH9z50nYJ0bO65jUTxrnZmLoafqKyQRu7tqurEWjlkhUcZRBALUnDzc1KwA+7kP1K1SwVoJkiuJwqcZNju3hsz8US7leYtvEnQL0Qsp+TnCHKiGibv/G5kVVwgvGZ0ThI20UeIHQOMKDZXj+d+CKuskMLpBJTUZPJaQyTeyIfFQ858nZlHHKC1mSRno6XPO1pYQCvHBzf+TIZBtF9U7N9svhxDJ2eXRAXJbp+BrtfuVrBEFkXE/4kilamlMPdGi1nG0EkcnKB9tVaqryzKWgWb97hfuBftBulfa+kaGjJAH9ZMwf9GioTzOCSdLf32lC+XFlDFxf93nTrzfNPB3dU+v/F1ZiItBx3WvAcXbYdg2lYa8y/A8liLqYXj19o9GqDbhNFVhCVQNvfFn0nfq/otpkY6sMH+brtN4O1HQfNqOOn6Lp09HRh299sfO8kuCaQDIGfeyNb4qNNJALi6bewhAaORk=","translations":{"en":{"changelog":"### Added\n- **Import templates remember the character encoding.** A statement in an encoding the importer cannot recognise on its own - an undeclared Cyrillic or Central European CSV reads as perfectly valid Western European text, just with the wrong letters - has to have its encoding picked by hand on the mapping screen, and that choice was lost on every import. A saved template now keeps it, and picking the template re-reads the file in that encoding straight away. Templates saved before this have no encoding stored and leave the picker as it is, so they cannot undo an encoding you have just chosen for the file in front of you. Contributed by @Saviq ([#384](https://github.com/otherworld-dev/Budget/pull/384))\n- **Import rules can rewrite a transaction's description.** A new **Set Description** action replaces the description a transaction arrived with - `CARD PAYMENT TO TESCO STORES 2231` can become `Groceries` - either always or only when the description is empty. It runs on file imports, on bank sync and when rules are applied to existing transactions. Duplicate detection keeps using the description from the original file, so a statement imported again is still recognised after a rule has rewritten its descriptions. Contributed by @Saviq ([#385](https://github.com/otherworld-dev/Budget/pull/385))\n\n- **The import review says which rows it cannot take, before you import.** A file with an Account column can carry rows whose account cell is empty, and with **Account for rows without one** left on **Skip rows without an account** those rows are dropped. The review step never said so: a 75-row file whose last 29 rows had no account read as \"Total 75, New 0, Duplicates 46\", and the only mention of the missing 29 was a dialog after the import had already run. The reasons were there all along, the review step simply did not show them. A warning now sits above the statistics, in the same place as the direction warnings, saying how many of the file's rows will not be imported and why, with the row numbers behind each reason. Where the reason is an empty account cell it points at the fallback account select below it, which is what fixes it, and choosing an account there clears the warning and brings those rows back into the count. The row numbers also match between the review step and the dialog after the import now, the review step counted from 0 whilst the import counted from 1. Reported by @TerjeTM ([#388](https://github.com/otherworld-dev/Budget/issues/388))\n- **The Budget Alerts tile can be told which categories it may alert about.** Since 2.28.3 a category with no budget of its own falls back to the amount its bills and recurring income commit it to, so categories that were never budgeted against started appearing on the tile, and spending 190.00 against a 56.03 figure worked out from a bill reads as \"239% over\". The tile's settings, on the gear when the dashboard is unlocked, now offer **Only categories with a budget I set**, which leaves the derived budgets out and gives back what the tile showed before that fallback existed, and a list of every category with a budget in play that can be unticked one at a time. Rows whose budget came from a bill are marked, so it is clear which ones the checkbox covers. The filter is stored with your settings rather than with the tile, so budget alert notifications and the digest honour it as well, and the budget figures on the Budget page, the Nextcloud dashboard panel and the digest are untouched by it. With a filter on, a tile with nothing left to show stays up and says how many categories are muted rather than disappearing, which would take the gear with it. Reported by @TerjeTM ([#389](https://github.com/otherworld-dev/Budget/issues/389))\n\n### Changed\n- **The mapping screen redraws as soon as you change the delimiter, the header toggle or the encoding.** Changing the delimiter used to leave the columns and preview split the old way, with a note that the file would be re-parsed in the next step, and toggling **Skip first row (headers)** did not touch the preview at all - so neither could be checked before moving on. All three now re-read the uploaded file on the spot and redraw the column choices and the preview, keeping every column you had already picked that still exists. Picking a saved template does the same with the template's own delimiter and header setting, so its mapping lands on columns split the way it expects. Contributed by @Saviq ([#383](https://github.com/otherworld-dev/Budget/pull/383))\n- **Translations.** Ukrainian is now included, the Polish and Russian translations asked for in [#382](https://github.com/otherworld-dev/Budget/issues/382) are in, and German and French have been updated from Weblate.\n\n### Fixed\n- **Expenses another user splits with you count towards your balance with them.** When another Nextcloud user split an expense with you it showed under **Shared with me** as outstanding, however your contact for that person still read \"Settled\", opening it listed no expenses, and the totals at the top of Shared Expenses left it out. Each split is stored against the person who made it, and a contact card only ever read the splits you had made yourself. A contact linked to a Nextcloud user now also counts what that user has split with you, from your side, so their \"owes you £40\" is your \"you owe £40\", and where you have both split expenses with each other the card shows what is left once one is taken off the other. Their splits are listed in the contact's details marked *split by* with their name, and the payments they record show in the settlement history as payments from you. Only the person who split an expense can settle it, so **Settle All** and **Record Payment** still only reach your own splits, and are greyed out when none of yours are open. The contact has to be linked to their Nextcloud account, the same as for **Shared with me**. Reported by @Bow-Wow75 ([#390](https://github.com/otherworld-dev/Budget/issues/390))\n- **A paid one-time bill keeps its due date.** Marking a one-time bill paid cleared its next due date, and a bill created before 2.49.0 - when one-time bills gained a real **Due Date** - had nothing else to show, so a paid invoice read \"No due date\" in the list and opened with an empty Due Date beside the old Due Day and Due Month fields. The date a one-time bill was due is now kept when it is paid and the list shows it; bills paid before this release get their date back from the day and month they still hold, in the year nearest to the payment. The form no longer offers Due Day and Due Month for a one-time bill: the Due Date is its whole schedule, and it has to be filled in ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The Bills Calendar no longer shows a bill as due for months it has moved past, or for months before it existed.** Since 2.49.0 a month was struck through only when a payment was recorded against it, so a bill marked paid with *Don't create any transaction* - a yearly premium in February - stayed green in September as if still outstanding. Every bill was also projected back to January whatever day it was created, so a bill added on 8 September read as owed for the eight months before it, and those months inflated the monthly totals. A month the bill has moved past without a recorded payment is now struck through with a dashed line and its tooltip says no payment was recorded, and nothing is drawn before the bill's creation date unless a start date says the schedule began earlier - a bill with nothing left in the year drops out of the table rather than sitting there as a row of blanks. A payment linked from before then still shows as a paid month ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Tab-separated CSV files can be imported.** The **Tab** delimiter option sent the two characters `\\t` instead of a tab, which the CSV reader refuses, so choosing it made the import fail - and a tab-separated file that *was* detected correctly showed a blank delimiter and was then read with commas. The option now sends a real tab, and a template saved from the old option is read as a tab too ([#383](https://github.com/otherworld-dev/Budget/pull/383))\n- **The import review shows how many transactions the file holds.** **Total Transactions** on the review step always read 0, whatever the file contained. The account page has a transaction counter with the same element id, and it sits earlier in the page, so every update meant for the import summary went to that hidden counter instead\n- **Clicking quickly through months on the Budget page no longer shows another month's figures.** Every month change starts its own loads of the spending and the budget amounts, and an earlier load that finished last replaced the newer figures, so June could show May's spending or May's budgets. Only the most recent load is shown now, and a budget load that fails leaves the base budgets rather than another month's. Contributed by @almeidandres ([#387](https://github.com/otherworld-dev/Budget/pull/387))\n- **The dashboard follows your budget start day.** With a **Budget start day** set, the income, expenses, savings and budget-remaining figures at the top of the dashboard still covered the calendar month, and **Budget Progress** set to the current budget period used the budgets of the month the period started in - a period from 28 August to 27 September was measured against August's budgets. The top figures now cover the current budget period and show its dates under their labels, and both use the budgets of the month the Budget page lists that period under, the month its 15th falls in. Envelope carryover, which the dashboard only added for whole calendar months, now counts for the budget period too. The six-month charts stay on calendar months. Contributed by @almeidandres ([#386](https://github.com/otherworld-dev/Budget/pull/386))\n- **Every budget surface agrees on which month is running when you have a budget start day.** A period is listed under the month its 15th falls in, so with a start day of the 10th, 5 September is still in August's period, and with the 28th, 29 September is already in October's. Budget alerts, and the **Budget Health** tile built on them, still used the budgets of the calendar month, the Budget page opened on the calendar month, and turning on envelope budgeting started the envelope in the calendar month too. All of them now use the period running today. The recurring-bill fallback and the \"(projected)\" carryover mark also treat that period as the current one, so a period that has already ended no longer borrows today's recurring figures. A category's details follow suit: **This month**, the trend and the monthly chart count spending per budget period instead of per calendar month, and the chart ends with the period running today. The same goes for the dashboard's **Monthly Comparison** tile, which now compares the running period with the one before, and for **This Month Income** and **This Month Expenses** on an account's page, and both show the dates they cover.\n- **The Monthly Comparison and Weekly Spending tiles show the real figures.** Both tiles looked for income and expenses at the top of the summary they load, however the summary keeps them under its totals, so they showed zeros whatever was in the accounts. They read the totals now.\n- **An overdrawn envelope shows as over budget.** When the overspend carried into a month is larger than that month's budget, nothing is left to spend, but the Budget page showed the row as \"No budget set\" with no remaining figure, and the dashboard's **Budget Progress** tile left it out. Both now show it as over budget, with what it owes as the remaining amount, as the alerts and reports already did.\n- **The budget adjustment notice names the right month everywhere.** \"Budgets adjusted from ...\" and its confirmation dialog read the month as midnight UTC, so anywhere west of UTC they named the month before the one being adjusted\n- **The Budget page shows the right period for a start day of the 15th everywhere.** The month picker's date was read as midnight UTC, which is still the 14th anywhere west of UTC, so in the Americas a budget start day of the 15th showed each month the period before the one it should"}},"signatureDigest":"sha512"},{"version":"2.51.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.51.0/budget.tar.gz","created":"2026-09-11T13:17:21.153009Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-11T13:17:21.329674Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"omDWujOwOWa9L4Xhc5Xr+YxrNL/X4KJz7URuQ3oocoKImK3zBZp5nUdl464tQpzylxC8sTBVsN9SqEm6KKKsPGkY92c4QnEzKWsuAM1fVZDgAqU/8oCyq6pSlRTrxxmHFN+PmioiScBnhErLMyrvPWkjVSpve7kIb5v1QRqf4nqJFuxeSOJAX1JgOM1tVME5Loxrm6SFZOsXaEXpKgqGF9SSuWXPAd1qGAO+MkugHo6zEjelkCYAWzkq2/tCZHOtIExuhBUk/BuSCMd9AaYhLb2iRJVT4FYcf14uRWCdfHmbRkNuGZNV63hbwNXwvIdP0KB9ZJ3QLV82V7LFyWY+s0VfssxJnKzjm8afeKo6zxq5SeRZmTVZDAxX7+aogVVWIqB18uwCI0dYWbMZQgR6PRqig0lf8E1j6KOiMRimZeHw0mkKFDV6ytcZEHgS8PuCih1ol9XaF+tNz4QJkKu/49A23APwrCUanew/Fs0BOhH7ydCNAl7sM5xpXKx4/4hoLJrA9tzTRwQUn1dmjbRk0QjThANrvqu+m0Gz97XWEwyyj3zHQyWYNy0Ozg1W1P01U/iFGH96Nd2emV2OO63z/AAmHrGWyBVBK73VlNx1guwaf8//c6XYbrbSJdF/smvbQcMa1MikuJq4DMpItW8vmvC+YOvUycpSHDkl7Hf+TC4=","translations":{"en":{"changelog":"### Added\n- **Accounts can be deleted in bulk.** Tick the accounts you want gone and delete them in one go, from either the tile or the list view. This existed for transactions and categories but never for accounts, and the gap only really bites in the one situation that produces dozens of them at once - an import with the wrong column mapped to Account, which creates one account per distinct value in that column. Deleting those one at a time also ran into the delete endpoint's rate limit of ten calls a minute, and an account that still holds transactions costs two of them, so the clean-up stalled about five accounts in. The whole selection now goes in a single request. The destructive half is kept a separate decision: the first confirmation removes only the accounts that are already empty, and anything still holding transactions is kept back and asked about in a second dialog that names those accounts and totals their transactions, so nothing with history in it is deleted by a click meant for an empty account. Closed accounts can be selected too ([#381](https://github.com/otherworld-dev/Budget/issues/381))\n- **The import preview warns when a column mapping is about to create a pile of accounts.** Mapping the wrong column to Account creates one account per distinct value in it, and mapping the date column gives you one account per day. The preview did list what it was about to create, but as a comma-separated line among the statistics, which reads as a note rather than as a reason to go back. Above five new accounts it is now a proper warning, sitting above the stats where the direction warnings already sit, because it answers the same question - whether to import at all. When most of the new account names parse as dates it says so outright and points at the account column mapping, rather than leaving you to work out afterwards why you have forty accounts ([#381](https://github.com/otherworld-dev/Budget/issues/381))\n- **Bulk edit can add and remove tags.** Tagging a run of transactions meant opening each one in turn: the bulk editor only ever touched fields stored on the transaction row itself, and a tag is not one of them. **Tags...** in the bulk bar now adds and removes tags across the whole selection at once, a cross-page **select all matching** selection included. The two lists are deliberately separate rather than one set of checkboxes - a tag you leave unchecked is not touched either way, so adding one tag to a hundred transactions cannot quietly strip the tags those transactions already carry. Adding a tag a transaction already has does nothing, and neither does removing one it does not have, so the same change can be re-run over an overlapping selection without anything happening twice. Category tags are offered too, grouped under the category they belong to. A tag set belongs to one category, so across a selection spanning several it can only reach part of what you picked - rather than leave you to find that out afterwards, each group says how far it reaches (*applies to 12 of 50*), only the categories actually in your selection are offered at all, and the confirmation names any tag that fell short instead of claiming it did more. Anything the tags cannot cover is counted underneath, including split transactions, which have no category of their own once split. Removing is not restricted the same way: a transaction re-categorised after it was tagged keeps the old tag, and gating removal would leave that tag impossible to clear in bulk. Requested by @joeftiger ([#379](https://github.com/otherworld-dev/Budget/issues/379))\n\n### Fixed\n- **Names with an ampersand or a quote come out right in confirmations and messages.** A category called \"Food & Dining\" was named in its own delete confirmation as \"Food &amp;amp; Dining\", and the same went for anything carrying a quote or an angle bracket - an account, a contact, a saved report. Translated text has its inserted values escaped for HTML by default, which is right for the many places that text is used as markup and wrong for the two that show it literally: the confirmations and the little messages that slide in at the top right. Both now undo that escaping, so a name reads the way it was typed. This was true of the old browser confirmations too; it is simply visible now that the dialogs are the app's own ([#381](https://github.com/otherworld-dev/Budget/issues/381))\n- **Editing a reconciled transaction in the list no longer asks twice.** Changing the amount, date or account of a reconciled transaction directly in the table warns you first, and that warning could appear a second time straight after you had answered it - once because opening it moved the cursor out of the cell you were editing, and once more when the table redrew behind it. Answering once is now enough ([#381](https://github.com/otherworld-dev/Budget/issues/381))\n- **Confirmations stop working after a few of them in a row.** Every confirmation in the app was a browser dialog, and browsers offer to switch those off: after a handful in quick succession, Chrome and Firefox add a *Prevent this page from creating additional dialogs* checkbox to the box, and once it is ticked every later confirmation is answered no instantly without anything being drawn. From that moment the app looked broken rather than cautious - Delete did nothing whatsoever, no dialog, no error, no message, and nothing short of reloading the page brought it back. Clearing up a handful of accounts left behind by a mis-mapped import was more than enough to trigger it, which is how this came to light: two accounts deleted fine, and every delete button after that appeared dead. Confirmations, prompts and alerts are now drawn by the app itself, so there is nothing left for a browser to suppress. They take the keyboard - Enter confirms, Escape cancels, Tab stays inside the dialog - and a confirmation for something that deletes data now says so with a red button rather than a neutral OK. Reported by @missunderstoodninja ([#381](https://github.com/otherworld-dev/Budget/issues/381))\n- **Tag pickers can be reached with the keyboard.** Every tag checkbox in the app was hidden outright rather than just visually, which takes it out of the tab order and out of what a screen reader can announce - the coloured badge was the only way to set a tag, and only with a mouse. The checkboxes are now hidden visually but still focusable, and a badge shows a focus ring when you tab onto it. Nothing looks different with a mouse ([#379](https://github.com/otherworld-dev/Budget/issues/379))"}},"signatureDigest":"sha512"},{"version":"2.50.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.50.1/budget.tar.gz","created":"2026-09-10T01:21:56.236115Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-10T01:21:56.327379Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"buZC6LMTRyNL1vila15DJJFe8dDZf/j3oCjxjP7KvrqebYszACpNqevFzP0b+HFTrgRwXMF7+ZnHeZDVV4l4KuZgfeI78fVJnNhQQeYNYqcIRiZZTKoqfm3zpU0OzCqWchvR7Mgslc6IIuBGjmM5EAx53O05t69k00ylo5G2YLfeMtyeg9hlqRERfuE5aMa7w5YhvBcskq9gIbtuGRU5ZfK++QikEJxZS9Quy9H7iDuuRBrPgumyJyURxaENIodcPhTuHjC/95LQWciAI6bj562mWuNglVdBEC+9+oNRN12vyMHerogSRRNpfqKwMb93Yzhlw3gkjkD9DsZvVuzuek98QAxEhTDZeEcZ5o4aAB2m+mRAmx77mj0OrfvLcyL7ekKUCr6G0/xJkU3XtEG3WDF20OupAcXsNbYBduRIoCvozx/pEGOkIipe4oQOlh6POT7MkXWfxBGJaG3N8SzmUqihyNgx8KuoxodhHsw09O8ncNlmkiBEGNn0+Hx/UXiijxE4ucigWPVSmUP6SU6F8dpjU2EU/jqbIdxPiyz3r/tt/vbVXDw41c7wd5nnkHyubljlBW6KL1uREbhrl7fdRCgjzJkPKA+fa4tdpa83af3llfzKcnyO6TXQ/nPL+xI0eLwRlXUIp4eW9xIeY0sZ3bOwjMdOemiR1Q9lGSloAZc=","translations":{"en":{"changelog":"### Fixed\n- **Save stops working on the transaction form after the split editor has been used.** Turning **Split across categories** on and back off - or switching the type to Transfer with it on - hid the split rows but left them sitting inside the form. A hidden field is still checked by the browser, and an empty one it cannot put on screen is one it will not report either: the form simply refused to submit, with no message, no request and no error in the console, for every transaction from then on until the page was reloaded. Firefox and Chrome at least log something; Safari says nothing at all. Putting the split editor away now empties it, and a split amount is no longer a field the browser polices - an incomplete split was already caught on save, and says what is wrong in a way you can actually see. Reported by @SGiersch ([#380](https://github.com/otherworld-dev/Budget/issues/380))\n- **Adding a transaction from an account preselects that account.** The **Add Transaction** button on an account's page was reading the account being viewed from the wrong object, so it always came through empty and the picker opened blank - on the one screen where there is no question which account you meant ([#380](https://github.com/otherworld-dev/Budget/issues/380))\n- **Transfer matching finds the other half in a shared account.** A transfer between an account you own and one your partner has shared with you could not be matched: the search for the opposite leg only ever looked at rows you own, and a transaction in a shared account belongs to that account's owner, so the match dialog reported nothing to match and the bulk scan skipped the pair entirely. Linking the two was already allowed - it was only finding them that was not. The match dialog, the bulk scan and bulk linking now search every account you can write to, shared ones included. Accounts shared with you read-only are left out, because linking writes to both legs and a candidate you cannot write to could never have been linked anyway. Reported by @lexiconzero ([#378](https://github.com/otherworld-dev/Budget/issues/378))"}},"signatureDigest":"sha512"},{"version":"2.50.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.50.0/budget.tar.gz","created":"2026-09-05T23:16:53.237828Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-05T23:16:53.344130Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"kDEMKCHGsB6XHpH0lnwbdVN2PlHEz5a/0JU2HlikRqJOIHvusKOCEPzyqSYRH/8U5+wPMQcWAi6Zlb8pcjgNh3CwemL7dVDMnrV7w65ZbG5xhBtzlziNuhs1FCJzqYQshdgCJzd2xQFJYJOqTqFXqdFQK6US+0Tgm47K6ROYrFUL/9JEhdaoH3kUz8PAP2WOq+IYdRfeUBlXUslF6pbtDWQ9g6gVSTUDF1Kj0V6UU+/M+GqrHY4flUN5Q9k6lGRLri8eBRO2woA5jdLWxJ5tyonb6F9e65yjlOIYbC3QV+TaHwH5MLbj9lmkrbAjFUMaaSWQ0VuEaj8vupo46ebxm2V4dGN4oisWd0VKRmlpGpGdDLIDYT1aZwIrVIRWPIicpqiFkLdOOo+YOCIl3XHNu6lPLxdR/jNcEDORoRJq6yPVtWZTroXgXM3TznOcNLXKotj7v/o1MPxId8uMms/wiu8PRksNIlFeLnmV8czhjhI+ZLElYqwCyMJjCUZUUB3ebdvRtbDqvuJBwuYp36Oi5UKfBTXqYzbAAO8qr4nAH/gdQsA8X+YquAMuux31ilINMpOvFX71Yf7/E15pqYZfvEQS0hq1hV4xIcgVAreEOHbIIFGcVB5WdrvYNeNP366rB5WsKXUBDGFrTEIL5vtj8OHgLqVYoEgBZNg/RL9j/Fc=","translations":{"en":{"changelog":"### Added\n- **Budget alerts and forecast warnings actually notify you now.** The two switches at the top of **Settings → Notifications** have been there since the first release and never did anything - nothing read them, and the app had no such notification to send, so the only place a budget alert ever appeared was a dashboard card you had to go and look at. **Budget Alerts** now sends a notification the first time a category reaches your alert threshold (80% by default) in a budget period, and a second one if that category goes on to exceed its budget. That is the most it will send per category per period, so the nightly check cannot turn into nightly noise; a category that drops back under its threshold is forgotten, so it can alert again if it climbs back. **Forecast Warnings** sends at most one notification a month when the six-month forecast projects your combined balance below zero, naming the month it happens and the figure it falls to. Both default to on and are switched off from those same two checkboxes\n\n### Fixed\n- **The Bills Calendar never shows an occurrence as paid while the bill still says it is due.** 2.49.0 placed each payment on the nearest due date, and a bill paid twice at the end of a month - or paid a few days before the next cycle - had the extra payment land on the following occurrence, so the calendar struck through September while the Bills page showed the same occurrence as upcoming. The bill already knows which occurrences are done: marking one paid moves its next due date on a cycle, so everything before that date is closed and everything from it on is still owed. Payments are now only ever placed on closed occurrences; a second payment in a month shows as that month's larger amount rather than as a month that was never paid. Reported within the hour by @TerjeTM ([#375](https://github.com/otherworld-dev/Budget/issues/375))\n- **One-time bills with the same name share one calendar row.** Now that paid one-time bills stay in the year's calendar, a garage that sent three invoices appeared three times, one cell each. They are folded into one row with a cell per invoice, each keeping its own amount, the way recurring bills already read ([#375](https://github.com/otherworld-dev/Budget/issues/375))\n- **Exported reports come out in your language.** The PDF and CSV a report exports to were written with English labels whatever language Nextcloud was set to - the exporter never asked the translator, so a German user got *Total Income* and *Account Breakdown* in an otherwise German app. Every label in the report, Year over Year and Bills Calendar exports now goes through the same translations the screen uses, month names included, and the monthly scheduled report is produced in its recipient's language rather than the server's. Labels that already exist on screen are translated straight away; the few headings that only ever appeared in the exports are new to translators and fill in as the translations arrive ([#377](https://github.com/otherworld-dev/Budget/issues/377))\n- **A monthly digest can report unusual spending.** Unusual-spending detection judges a month that is still in progress, so it stays quiet before the 10th - pro-rating the rent on the 2nd would flag it every time. The monthly digest is sent on the 1st, so its unusual-spending section was empty every single time it went out, and the weekly digest only filled it in on the weeks that happened to start after the 10th. The digest now asks about the period it is actually reporting on: a finished week or month, compared against the same six-month typical figure scaled to that period's length, with no early-month rule to apply because a finished period is not a partial one. That also settles a mismatch in what the digest was telling you - it reported *this* month's spending so far inside a summary of *last* week or month, and now reports the period it covers\n- **The digest notification says how many categories are spending unusually.** The count was being attached to the notification and then never shown, so a digest that had found something looked exactly like one that had not"}},"signatureDigest":"sha512"},{"version":"2.49.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.49.0/budget.tar.gz","created":"2026-09-03T23:53:23.287880Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T23:53:23.382608Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"UTnFglOyY//mXGi7y/LDtH4919NkTXqAr1p4PsIxsYx5fusaiKeFTWxlcugWVBcXNirEhMLHMF/hTpCv05X/jQ0yMlB2LW8Q4bUwppTjyg44BEEACZuQWr1FTs7KhmlbU/nCDKTIuC+Uk458xB8kdIiggZoDRqb4JoINSJ2tXL5KeNQgeyyq8hqOm5pwUBxlJRgx61f8EPP4+JWoAY3DWZUGJvpmk8i0VrNtxOvHT2BTdfMxLauNboowdmko+GQv3ZLEoAwP0D1UI4pjcwxcOQdAkQuM4wXwN6tywUjdmzPTmYSTxEMO1XAnc1v22KUA7bQxkHYcg5viQMbtAA459AsY2ImPJdxGyt0PbszsxOgomnZ6BHQdohkI3zbgX2XRtRc0RycVyzkDtnuk1Nr4k8nEyhimtNea3nOZ5S3yQhrC7CPqpeoXqc/gzl5b2QrO1bC07TxUIMs9knOBR/SMWsXcSq2pzYY9FCW9+XsUVQ2XKi8CQmYiAi+rO8/RNLCkyz8OHkQuMtpdmv1YI7INkGwTr0wU0TVw1bC9ozc2GWsDeJGSYJBDn43uQQ+dyCr8xMhzkURYqjcvMYsgPUjTMY2AB0mFYow2XlRK67AE9hXrLSK25TIVHBH1JMkDx65jmH5jGQwmG8vbHjIoEygsJBRvy0hmb8uK7Pq1u5OyqnI=","translations":{"en":{"changelog":"### Added\n- **A one-time bill can be dated in the past.** A bill only ever stored a day and a month, and every date it worked out from them was rolled forward past today - right for a schedule, useless for an invoice from last month, which became due next year the moment you saved it, and jumped again if you tried to edit it back. For one-time bills the schedule fields now give way to a single **Due Date**, taken literally: an August invoice entered in September is due in August, shows as overdue until you mark it paid, and lands in August on the Bills Calendar. The placeholder transaction a new bill pre-creates is always a scheduled one, whatever its date: with a past date it was being written as a cleared payment, booking the money as spent for a bill nobody had paid ([#375](https://github.com/otherworld-dev/Budget/issues/375))\n\n### Fixed\n- **The import's fallback account is reachable when the file has its own account column.** A blank account cell now falls back to the account you choose - but the select that chooses it was hidden the moment an Account column was mapped, so the fallback could never be set from the wizard and those rows still failed with \"no account was chosen\". On the preview step the select now stays, relabelled **Account for rows without one**, and is optional: leave it empty and such rows are skipped with that reason listed ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **On SQLite, a failed save now gets the unfinished-update hint too.** The hint recognised MySQL's and PostgreSQL's error codes and SQLite's \"no such column\", but SQLite words a failed INSERT as *table X has no column named Y* - which is exactly the failed save the hint exists for - and that slipped through, leaving the bare SQL. Found by running the check in a browser against a dropped column ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The Bills Calendar shows what was actually paid.** Paid months were guessed in the browser from the bill's last payment date - every month up to it counted as paid - so a bill you started paying in September showed January to August paid too, and a one-time bill fell out of the calendar the moment paying it deactivated it. The cells now come from the payments recorded against each bill: a month with a payment is paid and shows the amount that actually went out, months still to come show the expected amount, and the monthly totals follow suit. A payment made a few days late counts for the month it was due, a payment with no scheduled month near it appears as an extra paid month rather than vanishing, and a bill that is inactive now but was paid this year stays in the year's picture ([#375](https://github.com/otherworld-dev/Budget/issues/375))"}},"signatureDigest":"sha512"},{"version":"2.48.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.48.0/budget.tar.gz","created":"2026-09-03T21:09:20.934469Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T21:09:21.033922Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"wDpgdodKiAH0BJNKoHpu1H3xardvLeUHU4/1s4cGzs/N9ZfELYEXGP9FnFBY0fSJWBscyElRGGL3vR58ISgUep5I5P9aX+JA/uHMtjeyafCVQGj/YNbhZtz/hKtNb2zM+erfMrzq6pLkleaPsCFoe5tEt3ufMZKASjvCpU1R3j4Ec6bDjiom1fk90CImC26ZItTfc5Vu/dxGtACVerJ0IvZzQPvR1J2FY1xDlqCeeuapHMmB/z3V5Px9JQU0BC+nM5qF335DutR30cz0BP7ghkp7juBWtj5fBMe2bRYmqu+AOVdcbniqHtHvktQmMjv77gQzTupn8tfNtOSf4qLK5YbiqOfMXnIIai5qmrgJE1tsO17hPQmpxol9owkPC2gRa7TwHsS09K3cMrEjpKNORD5hkFlc2m9eQR2xRAu68dWQwXkhbnmu42PcpwqQsKdLhDbwBWRJHyFqsMSds4mjYhUN5+wvQbWSsQTXoO8Z9InCntaQsDxR1rTX6CWxAy0gHx+ZD0hGv0ttqWbJzEiOPrlYwLbDvserRhlotDAahPDxsdV3PEwj28+Jtv04Ie0vE/k9n56NsAFY3e8PGjJE156W6+qurFoiXi2OcJynyAmsOsoj8DTLKnMsVMVtlw16lNZZ6uAANdDUrG1QOE8F065BkQxwg69PR3qHL3jfsgY=","translations":{"en":{"changelog":"### Added\n- **Tags can be hidden once they have served their purpose.** A tag for a trip you have taken or a project that has finished keeps its history, but has no business in the picker for every new transaction — and deleting it would strip it from everything it is on. Editing a tag, on the **Tags** page for a global tag or in the category view for a tag-set tag, now offers a **Hidden** checkbox. A hidden tag is no longer offered when tagging a new transaction, bill, transfer or rule action, or when linking a savings goal, and it shows dimmed with a *Hidden* label where tags are managed so it can be found and unhidden. Everything that already carries the tag keeps it: the transactions stay tagged, the transaction filter and reports still list it, and a hidden tag already on the item being edited stays in its form, checked, so editing something else does not strip it ([#373](https://github.com/otherworld-dev/Budget/issues/373))\n- **An account can be closed.** An old bank account you no longer hold can be marked closed from the **Advanced** section of its edit dialog. It keeps every transaction and still counts in reports, the dashboard and net worth, but it no longer appears in any picker for new activity — the transaction and quick-add forms, transfers, bills, recurring income, imports, import rules, bank-sync mappings, savings goals and pension contributions. Pickers that filter history keep listing it, so its past stays reachable, and opening an old transaction that sits in a closed account keeps that account selected, labelled *(closed)*. The accounts page lists closed accounts in a collapsed section of their own, and the account's page shows a **Closed** badge and drops the reconcile and card-payment actions. Closing is refused, with the reason shown in the form, while the balance is not zero, while any transaction is dated after today, or while an active bill, transfer, recurring income, pension contribution, bank-sync mapping or import rule still pays into or out of the account — the message names each one so it can be reassigned first. The standalone quick-add page and the import's account auto-matching skip closed accounts too, the interest accrual job leaves them alone, and the public API's `GET /accounts` gains an additive `closed` field so a capture client can filter on it ([#372](https://github.com/otherworld-dev/Budget/issues/372))\n\n### Fixed\n- **Restoring a backup keeps the \"exclude from reports\" flag.** The restore rebuilt each account field by field and never copied the flag, so every restore since the option was added put excluded accounts straight back into every total, silently. The new closed flag is restored the same way ([#372](https://github.com/otherworld-dev/Budget/issues/372))\n- **The account form shows the real reason when an edit is refused.** A refused account update always came back as *\"Failed to update account\"*, hiding the specific message — including the reload notice a stale page gets when saving a debt. Refusals that carry a reason now reach the form verbatim ([#372](https://github.com/otherworld-dev/Budget/issues/372))\n- **The unfinished-update warning now checks the database itself, and names the exact fix.** It used to compare the migration files on disk with the list Nextcloud had recorded as run, and that misses both ways an install can actually be broken: a migration recorded as applied whose column is nevertheless not there, and a migration file that never reached the server. The instance that prompted this had run the recommended `occ app:disable && occ app:enable` to the letter and still could not save a bill, because that only re-runs what is *unrecorded*. The check now reads the live schema and compares it with every column the app writes, lists what is missing by table and column, and - for a change that is recorded but absent - names the precise `occ migrations:execute budget <version>` to re-run it, with the debug toggle those commands need. A column no migration on the server adds is called out as an incomplete install instead. The warning appears on the app's pages, in the admin overview, and in the error a failed save shows, where it now bypasses the \"already verified\" shortcut because a save just failed. Not being able to read the schema warns about nothing, as before ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Repair Data no longer deletes both halves of a duplicate pair, and no longer orphans what hangs off a transaction.** Its duplicate cleanup removed rows straight from the database, so any splits, tags, attachments and shared-expense records on a deleted transaction were left behind with nothing to join back to - invisible, and beyond the reach of every cleanup the app has, factory reset included. It also had three detectors flagging the same rows, each free to pick a different keeper: two placeholders written by the same payment share a creation time, so which one counted as \"the real payment\" came down to sort order, and a pair flagged both ways had both halves deleted - the payment removed along with its duplicate. Deletions now go through the same cascade every other part of the app uses, and a row another finding is keeping is never deleted; anything left ambiguous is simply left for a second run\n- **Reconciling an account no longer means ticking your way through the whole ledger.** A first reconciliation has nothing earlier to anchor on, so it starts from the account's opening balance - which means every transaction since has to be ticked before the difference reaches zero. On a real account that was 860 rows at 25 to a page, against an unfiltered list that still included scheduled rows dated years ahead. Starting a session now narrows the list to the account, to transactions dated on or before the statement date, and to rows not already reconciled - those are inside the starting balance already, so ticking one would have counted it twice - and the bar offers **Tick all N transactions up to \\<date\\>** to do the whole statement in one click, leaving you to untick what your bank has not taken yet. Nothing is written to the transactions until Finish, so it is a starting point to correct from. The **Create adjustment** button no longer appears until something has been ticked, since before that the \"difference\" is simply the account's entire history, and the starting balance now explains in its tooltip where its number came from. Leaving a session hands the list back unfiltered ([#374](https://github.com/otherworld-dev/Budget/issues/374))\n- **Marking a bill paid without recording a transaction no longer leaves it looking due.** Choosing *Don't create any transaction* or linking one that already existed left the pre-created row for the occurrence you had just paid sitting in the ledger, still scheduled - so the bill went on showing as upcoming - and at the same time suppressed the row for the *next* occurrence, so the forecast lost it. One flag was answering two different questions. Recording the payment is now about this payment alone, and whether the next occurrence is pre-created is the bill's own **Create future transaction** setting, which is how skipping an occurrence and editing a bill have always read it. Existing leftovers clear themselves the next time that bill is marked paid. The dialog also now says that the bill moves on to its next due date whichever option you pick ([#376](https://github.com/otherworld-dev/Budget/issues/376))\n- **Rows with an empty account column are imported instead of thrown away.** A file that carries its own account column had every row with that cell left blank dropped, even though the import screen had already been told which account the file belongs to - one reporter lost 14 of 27 rows that way, in silence, and only noticed because the balance was wrong. A blank cell now falls back to the account chosen for the import. A cell that names an account which cannot be resolved is still reported rather than guessed at, since that one would misfile the row ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The importer no longer invents an account out of a file's header row.** With \"first row is a header\" switched off, the header line is read as data - and because it holds the column titles, its account cell held the word \"Account:\", which the importer duly created as a real account in dollars. Only a row that would import as a transaction can name an account now, so a header line is ignored the same way the import itself ignores it. New accounts the importer creates also take your default currency rather than always US dollars ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The import tells you why rows failed instead of pointing at the server log.** A partly failed import said \"%n rows could not be imported - check the server log for details\" and put the actual reasons in the browser console, where nobody looks - and on an instance whose logging is misconfigured, or where the admin cannot read the log at all, there was nowhere left to find out. The reasons now open in a window as soon as the import finishes, one line per reason with the rows it applies to, so fourteen rows failing the same way read as one problem rather than fourteen ([#333](https://github.com/otherworld-dev/Budget/issues/333))"}},"signatureDigest":"sha512"},{"version":"2.47.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.47.0/budget.tar.gz","created":"2026-08-29T21:47:15.036363Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T21:47:16.146981Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"xHUL+LrtKQmEHZ8YQwsy+xFaIqzNZrPxOFdHD44Th6v2oSFX5rCCI2kmScHUejaVOt1t0nLiJ2qf5ZSRVvOmPPeeinPhoqGhwYlP0Nkgt8Rb0x1zPZTJj63Na8ESocx7CpajZTDxKc8pAFrQJ+H03K4UDks+/1F0qFF2NYa1soV6+c+fIuMPDaYC+DjO3aeWaJabhTUgUymMmqHLxqlhAyw+a8LJ2ABwYyT8P/rmIQ267T72D8ng0f8/ubS4mvfICaoAbtMA8H5Rnn7/gcPMDv1nJyTv97ShefnigmiykqBSWJsJQE8Ax/RYNfXWJ3Gl9uRxzXigxKYwpGtWMFnE9G2JN/eOh5oG042V5wn1QI0QcfWG2QFilp5uOD6ZVTfyPG+um2Y0FQLFe4PJnxyYpnrXmWglFFMyEVCVa0a7+AJmb7DVfjz/9vhBewTYCJ/j9XDlw8Efu28ZYWtsgZ5vZIlH4a90WalHLWHprUsNLDrUSyl+WRLTWDYDfEviRHJBCrrcz34Zyo8An0+sM9ccQalvH78w4X9PDIL5pMS90MHgyYrXVGyMPqSG65FliBn0qku7pP8wCqUabT9Ac3ofyztTlj0dy+tHyuu0OLPb+FxaLUoCgw5PaOSNSOXgDw8amDnleLNrZjvHIEsoYCS2jXtxU0rrTbmFXi4djM4jyTQ=","translations":{"en":{"changelog":"### Added\n- **The import screen can be told which character encoding a statement uses.** Some files simply cannot be identified from their contents: every single-byte encoding accepts every possible byte, so an undeclared Cyrillic export is indistinguishable from a Western European one and any automatic answer is a guess. The mapping step now carries a **Character Encoding** picker, listing Western European, Central European, Cyrillic, Greek, Turkish, Hebrew, Japanese, Chinese and Korean options alongside Unicode, with the detected encoding named in the hint beneath it. It sits directly above the preview, so a wrong guess is visible as mojibake and correcting it redraws the columns and preview immediately. Uploads are now kept exactly as they arrived rather than converted on the way in, which is what makes the choice reversible — previously the original bytes were discarded at upload and a bad guess could not be undone ([#371](https://github.com/otherworld-dev/Budget/issues/371))\n\n### Fixed\n- **A statement that isn't UTF-8 is no longer read as Latin-1 regardless.** Files that aren't UTF-8 were run through a list of fallback encodings, but the first entry accepts every possible byte, so it always matched and the rest were never reached — every such upload was decoded as Latin-1 whatever it actually was, turning a Cyrillic statement into `Ïÿò¸ðî÷êà` and a Japanese one into `ûÀ;út;àz`, with no error to say anything had gone wrong. A file that declares its own encoding is now believed: OFX states it in its header and camt XML in its declaration. Anything undeclared falls back to Windows-1252 rather than ISO-8859-1 — the two agree except over the range holding the curly quotes, dashes and euro signs statements are full of. Converted XML also has its declaration corrected to match its new contents, which previously made the parser decode the file a second time and produce exactly the corruption the conversion was there to prevent. Note that an undeclared file in a non-Western encoding still can't be identified from its bytes alone — single-byte encodings are indistinguishable, and testing for the multi-byte ones proved worse than not trying, since ordinary German, Spanish and French text validates cleanly as GB18030. That case needs an encoding picker on the import screen ([#371](https://github.com/otherworld-dev/Budget/issues/371))\n- **Statements written in your own language import again.** A CSV, OFX or QIF holding a decent amount of non-ASCII text was refused outright as *\"File appears to be binary\"* — which took in Cyrillic, Greek, Hebrew, Arabic and CJK statements wholesale, and caught plain accented Latin too, so a French or Spanish export could trip it as easily as a Russian one. The binary check allowed the first byte of a multi-byte UTF-8 character but not the bytes that follow it, and every non-ASCII character has at least one, so roughly half the bytes of a Cyrillic file were counted as unprintable against a 10% limit. High bytes are simply what non-English text looks like, in UTF-8 and in the older 8-bit encodings banks still export, so they no longer count against a file at all; genuine binaries are caught by their null bytes and control characters, which text does not contain. Reported with a diagnosis and a fix by @ba1amut ([#369](https://github.com/otherworld-dev/Budget/issues/369))\n- **\"Auto-pay when due\" can be switched on while editing a bill.** The checkbox needs a pay-from account, and the only thing that worked that out hung off the account dropdown's own change event — but opening a bill fills that dropdown from code, which fires no such event. So every existing bill opened with auto-pay greyed out, however long it had had an account, and the only way to reach the checkbox was to re-pick the account by hand. Creating a bill was unaffected, which is why it went unnoticed. The state is now recomputed whenever the form opens ([#370](https://github.com/otherworld-dev/Budget/issues/370))\n- **Editing a bill shared with you no longer strips its category and pay-from account.** Sharing is granted per type, so a bill can be shared while the account it pays from is not — and both dropdowns can only list what you are allowed to see. The form silently fell back to \"No specific account\", and saving submitted that as *no account*, wiping the setting off the owner's bill; the same went for an unshared category. The real values now stay selected, shown as **Unavailable (not shared with you)** so it is clear why they cannot be changed, and they survive the save untouched. Auto-pay is also refused server-side when a bill would be left switched on with nothing to pay from — a pairing the create path has always rejected ([#370](https://github.com/otherworld-dev/Budget/issues/370))"}},"signatureDigest":"sha512"},{"version":"2.46.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.46.0/budget.tar.gz","created":"2026-08-29T02:08:36.225187Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T02:08:36.325697Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"x0J8AUUfQbAJljP4bb8goctxFgu6woboHqgqhSLiZLzSNh4/bgeYYYsy4ubudGRmEAdnJZqL9XcqPKKaaVIxVXVRFVCS24iGpCdqXhCW0MMvoROv7VMao+dHMrfPhungZxdm+nKurDuI2drTpZLmbckIj6+PnjLP0Z6M+a/P7wRw/3gtdHcf1KoNmRGNIlqUUolPhYJJFQbhgsf8yg/nzDMjm0OKXYvOKWSI+GR1HFQoNSLVx9TPk2zrBOT/ARpvDEStnWWBZxhn2shkEVFNE1ntupx4AmkerIySit3CB5j4H7imaHsIYwPHDhL+MEj9afFllpMnogByvQ+nHCvJ3v7PeuNYGgQTxMvoVKpvtPDyo2610eVQDQlK8UEzmOdimk7shlkllXiE/ZEIaeFINp17VuQbYlTwuuZlNfTendUZirhPFK4xR3AL6cpTxJHq/Xc/npPYAYk8wPyYseNnFL5A3/d2UXiT/m57GQiIMkTMrayR6kYmYjGYT2EAVSRjhA0wESnCJb6jVMc6YTcBVQ3uFXnA5gR1hdulx1Qj2lRhJpBSCcXBCl/4QHDv4OIhk4Is5DWUxcw91iuaBhMCpoJLwU+kkuaibIrsiV2L3np7EeZzPtxOsRG4GyCZRyvTvCVO7HVHu///wPi1sfMH4R05Ri0AUfbqdpqPrE70mG0=","translations":{"en":{"changelog":"### Added\n- **A Money Flow diagram shows where the money went.** Reports gains a **Money Flow** type that draws the period's cash as a flow diagram: income categories stream into a central Cash Flow node, which fans out into your expense categories and their subcategories, with what's left shown as a Surplus band — or a Deficit feeding in when spending exceeded income. Amounts label every node, category colors carry through, and the usual period and shared-account filters apply ([#366](https://github.com/otherworld-dev/Budget/issues/366))\n\n### Fixed\n- **Bills and income shared with you can be opened again.** Opening a bill your partner created failed with *\"Failed to load bill\"*, and so did every action on it: editing, deleting, marking it paid or unpaid, skipping a payment, and the **Record transaction** repair. Sharing grants visibility, not identity, but each of those looked the bill up as the person clicking rather than as its owner, so the app approved the action and then could not find the bill to carry it out (a `DoesNotExistException` in the log). Bill actions now run against the bill's owner, so a shared bill behaves like one of your own, and **Mark Unpaid** is offered on shared bills for the first time. Shared recurring income had the identical fault and is fixed with it, and its **Mark received** action — which had no permission check at all, only the scoping that made it fail — now refuses a read-only share properly ([#368](https://github.com/otherworld-dev/Budget/issues/368))\n- **A transfer between accounts shared with you now completes.** Creating a transfer in an account owned by someone else booked both sides and then failed to join them, leaving two unconnected transactions behind every attempt and putting the raw database query on screen as the error message. Both rows belong to the account's owner, while the linking step went looking for them as the person clicking. Linking, unlinking and **Create and link** now work across shared accounts, and a transaction you cannot reach reports itself as not found — which also means it reaches the log, where this failure left no trace at all ([#368](https://github.com/otherworld-dev/Budget/issues/368))"}},"signatureDigest":"sha512"},{"version":"2.45.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.45.0/budget.tar.gz","created":"2026-08-29T00:59:53.882086Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-29T00:59:53.954303Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"V/r+TeR/H5y0TiUgo9apV0nHrv4yLWR3o2yHxeSCrwBr87AyJBO6EphcfUm/aNNDYHbJfh2Nk4ghsMvljrNWPCgMFZdwynngNS3IbrSFauamMsnuvkxDcO5h+R5aAIyBfyog9idiDesDMJF2B1dDbe3COOlxDq5i8xiiP+BGqLpoeOYZKT2dpqoaYB9j16sGk5BSE07vSFnF8kz2PGcpgExtfEqMMVCDRGQUvU02KgLqNb6oFx0abf5NhRGTpNZPMyOMwWH0CVTATrZj7r9LBp8+HQqHUjCRqPTwsYbAVBZZKYwyrtU3Wd/4VaSpKW2bMS7OWA/663hc74b0Rt/QTy0brPK2oiQyM6PisiwlZHAz6nuQWRDUiyezWVS9yLBiVDavZxby7XJAIrb49a8dSESUj7/7eRaO9xAb21oULrp39o0d0GKWBxFf2fuV/uBJ/tQh1pgj7n5PHQ01kZ3Dy1znPGH//sIfsw5nBLeKQQGZvcp4ell+s19FJr2SoKe+HgY8Wo/eCobVpai8GbpeA1HsNc7ixuKIPdxpAsY7X/mNg92GEndFExIDBkUgQfbPYd+LkmjlJdtXqluxB24WdVIVdKDJakxk860CHTUo+k7UgVroJUffjXXwXvFKQCWZG8f/5Tt4eh3QpRfaqQGWpAjQ0lw/AURkUdA0FlN4ELo=","translations":{"en":{"changelog":"### Added\n- **Bi-weekly schedules can be anchored to a date.** Bi-weekly income, bills and transfers used to lock onto whichever week you happened to create them in — pick \"every other Friday\" and the app silently decided *which* Friday from the creation date, with no way to say \"no, the other week\" ([#363](https://github.com/otherworld-dev/Budget/issues/363)). Transfers were worse off still: the form only offered a day-of-month field, which means nothing to a bi-weekly schedule ([#364](https://github.com/otherworld-dev/Budget/issues/364)). Income now takes a **First payment date** for weekly and bi-weekly frequencies, and the transfer form gains the same start-date field bills have had — the date pins both the weekday and the week, and every occurrence lands a clean 14 (or 7) days from it, whether the date you give is in the past or the future. While a start date is set the weekday field follows it and locks, so the form cannot claim a different day than the schedule runs on. Note for existing bills and transfers: a start date you set before this release only delayed the first occurrence; from now on it anchors the schedule, so a weekly or bi-weekly bill with a start date will settle onto that date's weekday and week\n- **Bills can be marked unpaid.** Marking a bill paid by mistake was final: the Undo button lived in a ten-second toast, and once it was gone nothing could revert the paid state — deleting the payment transaction left the bill still claiming to be paid ([#365](https://github.com/otherworld-dev/Budget/issues/365)). Every payment now stores what it changed, so a **Mark Unpaid** action on the bill reverts the most recent one properly: the due date rolls back, a one-time bill comes back to life instead of staying vanished, a statement-amount bill gets its exact amount back (which cannot be recomputed after the fact), and the payment transactions are cleaned up — including when you already deleted one of them yourself. Auto-paid and import-matched bills get the same revert, which the toast never offered them — a payment that was linked to an imported transaction unlinks it rather than deleting money that genuinely left your bank. Recurring transfers can be reverted too, from the Transfers view. The stored revert applies to the most recent payment only, and editing the bill's amount or schedule discards it — reverting would otherwise restore values from before your edit\n\n- **CSV files without a header row can be imported.** The importer always treated the first row as a header and silently ate it — a headerless export lost its first transaction with no way to say otherwise. A **First row is a header** toggle (on by default, matching the old behaviour) now controls it, columns are matched by position, and blank or duplicate header cells get translated \"Column N\" placeholders in the mapping dropdowns instead of untranslated internal names. Saved templates keep working: they store your file's real header names where they exist, so they survive language changes and column reordering. Templates saved from files with duplicate blank headers (\"Column N (2)\") need their columns re-picked once. Contributed by @Saviq ([#367](https://github.com/otherworld-dev/Budget/pull/367))\n- **The database-updates warning reaches the admin overview.** The check that detects the app's own migrations never having run (the \"Unknown column\" trap, [#333](https://github.com/otherworld-dev/Budget/issues/333)) now registers as a proper Nextcloud setup check, so it appears under Settings > Administration > Overview and in `occ setupchecks` — visible to the admin who can actually run the fix, not just to whoever next opens the app\n\n### Fixed\n- **A category drill-down into subcategories now says so.** Opening a parent category's transactions (from Category Details or a chart slice) applies the parent plus its subcategories, but the filter panel could only display the parent — and picking the parent to narrow down to just it did nothing. The category dropdown now shows a combined entry like \"Groceries + 2 subcategories\" for the applied scope, and choosing the plain parent genuinely narrows to it ([#361](https://github.com/otherworld-dev/Budget/issues/361))\n- **The bills list stops fetching every dead bill.** Keeping paid one-time bills reachable for Mark Unpaid meant fetching the whole bill history and discarding most of it in the browser. The server now returns active bills plus the revertible ones directly, so the payload stays small however old the install ([#365](https://github.com/otherworld-dev/Budget/issues/365))\n- **A category's count badge and its panel agree on damaged rows.** A row carrying both its own category and split parts (the old bulk-edit damage) was excluded from the tree's count badge but still listed in the Category Details panel — off by one on the same screen. The panel now applies the same rule; Repair Data remains the way to fix the rows themselves ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **The split flag's grey states are resolved once and for all.** Two damaged states have haunted long-lived databases: rows from before the flag existed (held NULL), and rows whose restore claimed they were split while the parts never made it into the old backups ([#351](https://github.com/otherworld-dev/Budget/issues/351)). A one-time update resolves every such row from the parts table — the single source of truth — and restores now do the same, so the states cannot return. This fixes three real casualties: **rule runs categorize legacy transactions again** (they had started skipping every pre-2026 row while reporting success), **assigning a category to a damaged row now sticks** instead of silently vanishing while the row stayed listed as uncategorized forever, and the Uncategorized filter no longer offers up split parents whose categorisation is exactly how such rows were created ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **Find Duplicates no longer loses a next-day duplicate at a group boundary.** Groups anchor on their first transaction so distinct purchases cannot chain together — but a pair one day apart could straddle two groups and the second copy went unreported entirely. Rows near the boundary are now carried into the next group, so every pair within the window is reported together and the no-chaining rule still holds ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **A savings goal that has gone backwards shows an empty bar, not a full one.** The Savings view's goal list was the last progress bar without the negative clamp the others got in v2.44.2 — withdrawals exceeding deposits painted the bar completely full\n- **The Category Trends tile sticks to expense categories.** It relied on a side effect of the old one-direction totals to keep income categories out; with netted figures an income category could slip into the spending list. It now filters by category type explicitly\n- **The database-updates warning can no longer be silenced by a mid-deploy race.** If the check ran at the exact moment app files were being replaced, a failed directory read followed by a successful one within the same page load could record the version as verified while updates were genuinely pending — permanently hiding the banner on exactly the instance it exists for. The verified marker and the pending list now come from the same scan\n- **Editing a bi-weekly bill no longer silently shifts which week it falls in.** The consistency check that runs on every edit recomputed the due date \"from today\", so changing an amount or a note in the off week flipped the schedule's parity — the bill quietly moved a week. With a start date set, the schedule now recomputes from its anchor, and an unrelated edit can never move it ([#363](https://github.com/otherworld-dev/Budget/issues/363), [#364](https://github.com/otherworld-dev/Budget/issues/364))"}},"signatureDigest":"sha512"},{"version":"2.44.2","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.44.2/budget.tar.gz","created":"2026-08-28T15:19:31.422660Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-28T15:19:31.522085Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"Dm8DKf6I3AofLr0FMZsDKeE4q19LhQ2NgVNbRwtRNtCcfcpkF7RWros6LUOJacOmyNa9EuRDVUGQJtTGSasNt4dXxhwDjw7hDsmm2NUaTTrnoLoY32V9zyBLZqtSLb30uZTr6O8q03UGO0MsNQr5IsOcNbi7KflfjmUbYY99cIycOm/FBoLBm+LWQlDH+eQZigjqEk5GMvsLgyY2LuYQE6226WS1W96gI3neUzwICij5OWn/hdkl4axB6Y2Ei7bWofiMRSwY4oeiLF1mmgk1C4OfyoZomZEhsytxXok5wt38K4SMQBL4A+zpVoQBp0cBdFrGUynC/eNtmQjS9nsJSs0woZ3H6+QrlMCmJ+PRqSbn5kEO7PBzXMXUYNg9mqd0mUeYjH0mW1SKpF51FsBKjMHNmi1ReNqQhiRAJq+9JzyiaUuCv/gigDXOaLCR5NvRld0RbMYfnWN9XZ18k8/b+oKwzBG/oY6mqmgR0mUl24lXHK7djSHbhfmCIAG6hpOxgrL6cFguUdqNuoCGhBvUaUBJn742J4Hh4Lx4jq+zQJE1rJf4xpNhcT6VKLJNS7DrSd62oPm80FBXSu9colzmlv3C67SDYwL5TxqdM8OCsPTJvH0IWnr9R+qrrPh5MMqy3XMDyYvzDMjiK0OWmzob4ZxMCg2gi1asdtcjd5PqNgU=","translations":{"en":{"changelog":"### Fixed\n- **The Budget page's *Spent* really does net refunds now.** v2.44.0 said a refund comes off what you have spent, and it did — on the budget report, the dashboard tiles, the alerts and the digest. The Budget page itself reads a different query, which kept the old one-direction sum, so the very page the issue was reported against still showed $216.90 where Category Details showed $58.29. That query now nets the same way as everywhere else. A month whose refunds exceed its spending shows the true negative figure instead of being flipped into looking like money spent, and its progress bar sits empty rather than painting full — on the dashboard's Budget Progress tile and the savings-goal tiles too, where a negative used to render as a completely full bar. Changing a category's budget period also refreshes its row with the right direction and the selected month, instead of flipping an income category's Spent to a large negative until the next reload ([#361](https://github.com/otherworld-dev/Budget/issues/361))\n- **\"View All Transactions\" on a category lists the transactions its figures are built from.** The button quietly filtered to money-out only (money-in for income categories), so an expense category's refunds were missing from the very list the netted figures above it summarise — the panel said $58.29 and the list it opened could only add up to $216.90. It also ignored the panel's period and account selection, listing everything ever recorded. It now applies no direction filter and opens scoped to the same date window and account the panel is showing ([#361](https://github.com/otherworld-dev/Budget/issues/361))\n- **The transaction filters panel shows the filters that are actually applied.** Arriving at the Transactions view through a category's \"View All Transactions\" or a chart drill-down replaced the applied filters but left the panel's controls showing whatever they held before, so the list and the dropdowns above it disagreed — and because any change to one control re-reads all of them, a stale control could silently re-apply an old filter. The panel now rewrites every control whenever the filters are set for you, clearing the ones that no longer apply ([#361](https://github.com/otherworld-dev/Budget/issues/361))\n- **The last places that ignored split transactions now count them.** A split carries its categories on its individual parts, and five surfaces were still reading the transaction's own category, which a split never has. **Year over Year** compared a year of split receipts against a year that predated splitting and called the difference a collapse. The **Forecast's category trends** dropped every split into *Uncategorized* and showed nothing against the categories the money actually went to. The **count beside each category** on the Categories page read 0 for a category funded entirely by splits, next to a panel listing its transactions. **Find Duplicates** showed a dash where the category belonged. And a **CSV export with no category filter** left the Category cell empty on exactly the transactions someone had taken the trouble to itemise -- it now names them, and a category is named once however many parts of the receipt went to it ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **Find Duplicates no longer chains separate purchases into one giant \"duplicate\" group.** Each candidate was compared against the previous row added to the group rather than the first, so five identical-amount purchases a few days apart -- a regular coffee order, a repeated fare -- linked end to end into a single group spanning far more than the 3-day window, and the tool told you to delete transactions that were nothing of the sort. A row now joins a group only when it is within the window of the group's first transaction ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Deleting a category no longer leaves split parts pointing at it.** The delete guard is deliberately blind to splits (a category used only by split parts must stay deletable), but nothing cleaned those parts up afterwards, so they kept referencing a category id that no longer existed. Deleting a category -- with or without reassigning its transactions -- now degrades its split parts to uncategorized, which is what the reassignment already did for ordinary transactions. Find Duplicates also names a split **Split** now instead of showing a dash ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **Splits from before the split feature existed are counted once, everywhere.** A transaction whose split flag was never written -- imports predating the column, and backups restored from those versions -- was in a grey state: some queries treated it as a split, others as an ordinary transaction, so depending on the screen its money was counted twice, or not at all, or it was offered up for categorisation, which is how a transaction ends up claiming a category *and* carrying its own breakdown. Every query pair now agrees on one rule -- a transaction with split parts counts through its parts, full stop -- covering the budget carryovers, the monthly report, Year over Year, the forecast, per-account totals, uncategorized listings and rule runs. Restoring a backup now re-marks the transactions that actually received split parts, whatever the archive claimed, and the very large id lists a restore or a year-long report can produce are processed in batches instead of one oversized query ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **The app now notices when its own database updates never ran, and says so before anything fails.** If Nextcloud replaces the app's files without finishing the upgrade, the database changes that came with the new version are skipped. Nothing looks wrong -- reading data does not touch the new columns -- and then the first thing you save fails with a database error nobody can act on. Every page now checks whether any of its database updates are missing and, if so, shows a banner naming how many and the command an administrator can run to finish them. Checking costs nothing once a version has been confirmed complete, and the banner clears itself as soon as the updates are applied ([#333](https://github.com/otherworld-dev/Budget/issues/333))"}},"signatureDigest":"sha512"},{"version":"2.44.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.44.1/budget.tar.gz","created":"2026-08-28T00:44:19.429474Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-28T00:44:19.583746Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"JfhfoodWHfhncS8NhWVo/wOO4gi2kDEn4S8M8TzZg5Qfbjwxmkmh4Pn294Og1wL1uIp5gbCGyS2aIzcDN0HoEf7DhN98hxRaZ5P5/5CBFLgTGTNwJmDX9A4Xtwk81o4/3jbeLAPUJspX2OkQKGzyNtFqrCi5aDG/JF5D0Yf49WBnYG3BZp5rSaEOmrD2Scm8D3EmE5wDsIIKg+Zl1iCVHsUX/Z7TG6lVzPxeW4JVIU4NX8hhUziOOGMXthSBM5GxZX4okbtfGm9uVeUOe49rT/kXcm7mTG2Xb/4Phywh7vFqMckiOTSwP2fLttq7LFUv0XtUoaOhxjfhFJBdQIDi9qhtJRMcRvXE8kPbswzpyN9W/nC6lv44Q0Bxse967DXVQ8ZoxIWCByl6/5Z4Ooi978d0lWc/HsZYqMX5SXTb3KoALYNCG2+8WfkXwF+kZ0kPc//K6Uh/r+lgO7Gx55xaR2XkmDhClY7u/PMhLOsc0segdjc4obFyHns/iTeKJjV+aEaOvlbNq5aDKioozMZr2vQhL9XfEv4rKLq5VTxaD0s/WOv4dMJxhA/7LRpC53OlPrFN1IKPgmXUS2v2gTtP7fF9eDvZ6u66ra9zTe/j+R7y2y8mMo0zcUMnPPUxJ5fgX5saIPC2svL65fawwwghOMQTiydg6jEmbipPDU38RJQ=","translations":{"en":{"changelog":"### Fixed\n- **When the app's update has not finished, the app now says so and how to finish it.** If Nextcloud updates the files but never runs the app upgrade, the migrations that add new columns never run -- the app carries on reading fine, because reads do not notice a missing column, and then the first thing you save fails. Until now that surfaced as the database's own words, \"Unknown column 'amount_type'\", which is accurate and no use to anyone. Any missing column or table now comes with the command that fixes it: `occ app:disable budget && occ app:enable budget`. Reproduced against MariaDB, where neither `occ upgrade` (which upgrades the server) nor `occ app:update` (which looks for a newer release in the app store) does anything about it ([#333](https://github.com/otherworld-dev/Budget/issues/333))"}},"signatureDigest":"sha512"},{"version":"2.44.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.44.0/budget.tar.gz","created":"2026-08-26T00:34:50.424177Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T00:34:50.514457Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"QHxBHmyBaONUhmqkujdb3Z0HaVDO5kl4378wYHWJgtW/QHl6D1QNcKQzzhB2nVoXZz322zCDeUae1eIk3C+EX4X5q2MolNnL9UAL0TvS0oSfQcAtWTFCAO1Z79C1uYbCxM6CUNNrGmZdoZ41ivw9OJQOICFu5nd0RHQ+w25DUCKK0SOEQXWia7LN5o0RnpTwKYxSxQHIb4dajJvbWsW+oibyBkP/yZsbfJRls3Z2zWYvEEnQhWiKTaJC4Ijfz6DgP6U/M9Z5DjhIZgyxPy5OGTOLd9aZl64K3JzcQqKDKJJ8wTDz9iUXb+bCitxDyq0chgLG4tbSyFyK7+aAcWchHZXufXDmPmAsTikDVgc6srYeKyqv2VFpa/IBA1m0GeAzN2KqIRzDbiyttRGgQQ5i2VPH4owiA8un5ak46XVpD+q5Xy/SwEZVmjCY8AZsZePmPvM9gESC+hBy6P5YuNksSar/dD++REsQCeFkCIiqf4y61wyD0WY3qHYF4yDpWzH8vVhbKSMy0x9W1JR3ZUmv0MbidSvgiOwxpPPtWVuPPRDbLKg3ENzv4bq8IK8PzR0t5jHNSFKWu7C1jrJ3gE7yoxJ5zMnsw6v3HJhedy2Jfx2C2EZsZv1XCzaXYxKBr0uaHVcOSn9/4Rn9OXf95th7bgRN6aCrU34M1ELL3RmocKs=","translations":{"en":{"changelog":"### Added\n- **Dashboard tiles can follow your budget period.** Spending by Category, Top Spending Categories and Budget Progress gain a **Current budget period** date range in their gear settings, which tracks the **Budget start day** you set in Settings. If your money arrives on the 25th, the tile now covers the 25th to the 24th like the rest of the budget surfaces do, instead of cutting your cycle in half at the month boundary. Spending by Category's header chip names the days it is actually showing — \"25 Aug – 24 Sept\" — rather than repeating the setting back at you. The other tiles are unchanged: a balance-history chart and the income-vs-expenses series cover a span rather than one cycle, so the option is not offered there ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Cash Flow Forecast and Year-over-Year now actually draw.** Both tiles have been in the Add Tiles menu with a card, a chart area and a working server request behind them — and no code to draw the result, so they sat blank however long you waited. Both are off by default, which is why this went unnoticed. Cash Flow Forecast now plots your projected balance month by month, starting from today's balance so each step reads as a change, with that month's income and expenses in the tooltip; choose **Next 3 / 6 / 12 months** in its gear settings. Year-over-Year plots income against expenses for each of the **last 2, 3 or 5 years**, matching the chart on the Reports page so the two cannot disagree ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The bills tiles let you choose how far ahead to look.** Upcoming Bills and Bills Due Soon now take a **Look ahead** setting of the next 30, 60 or 90 days. Upcoming Bills previously showed whatever came first with no horizon at all, and Bills Due Soon was fixed at 14 days. Both still include bills up to a week overdue, so an unpaid bill does not vanish from the tile that exists to chase it — Upcoming Bills previously had no such cutoff and would show a bill overdue by months right alongside this week's, and now drops anything more than seven days overdue the same way Bills Due Soon already did ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n\n### Fixed\n- **\"Last 30 days\" on a dashboard tile now means the last 30 days.** It meant the month so far: on the 24th you saw 24 days, and on the 1st of a month the tile charted a **single day**. \"Last year\" behaved the same way — the year so far, so on 3 January it showed three days. This is why a tile could flatly disagree with the budget alerts sitting above it on the same screen, and it hit anyone whose spending does not line up with the calendar month hardest, because the biggest bills of the cycle fell outside the window entirely. Affects Spending by Category, Top Spending Categories and Budget Progress. \"Last 90 days\" and \"Last 6 months\" were near enough but drifted by a day around month ends — six months back from 31 March landed on 1 October — and are now exact ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Every Date Range dropdown on the dashboard now does something.** Ten tiles offered one and ignored it: you could pick a range, it saved, and the tile carried on showing its own hardcoded window. **Large Transactions** had no date filter whatsoever — it ranked your biggest transactions over all time — and now honours the range. **Weekly Spending** was pinned to the last 7 days, and its daily average divided by 7 regardless; both now follow the range you pick, and its label — which always read \"This week\" — now names the range it is actually showing. That default week is now an explicit **Last 7 days** setting rather than a hardcoded one, so it is both the tile's starting point and a choice you can change like any other range. **Category Trends** compared this calendar month against last, and now compares the range you chose against the equal-length stretch immediately before it, so the two figures are like for like at any range. Where a range could never apply, the dropdown is gone rather than lying: **Monthly Comparison** is this month against last by definition, **Debt Chart** is a payoff projection with no window, and **Income Tracking**'s headline is a monthly rate that cannot vary with one ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The Cash Flow Forecast tile was asking the server for the wrong thing.** It sent a `days` value the forecast endpoint does not accept, so the parameter was discarded and the default horizon used every time ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **When something fails to save, the app now tells you why.** Errors across the app showed a fixed message -- \"Failed to create bill\", \"Failed to save transaction\" -- whatever had actually gone wrong, so a validation problem and a database problem looked identical and neither was actionable. Where a failure comes from the database the server already attaches a short, sanitised description of it, a missing column for instance, specifically so the cause is visible to people who cannot read their server's log. Nothing in the interface was reading it. That description now appears alongside the message everywhere a save, delete or update can fail -- transactions, accounts, categories, bills, rules, pensions, assets, transfers, income and bank sync ([#362](https://github.com/otherworld-dev/Budget/issues/362))\n- **Bills with a statement or minimum-payment amount explain themselves when rejected.** Those amount types only work on a transfer pointing at a credit card, and the two rules enforcing that were being replaced by the generic \"Failed to create bill\" instead of being shown. Genuinely unexpected failures still stay generic ([#362](https://github.com/otherworld-dev/Budget/issues/362))\n- **Repair Data can clear the stray categories off your split transactions.** The rows the old bulk edit and the rule runs left behind are still there, each claiming a category it should never have had. *Settings > Repair Data* gains **Split Transactions Carrying a Category**, listing every one it finds with the category currently stuck to it. Repairing removes only that stray category: the split stays a split, and every part of it is left exactly as it was. Genuine splits, ordinary transactions, and a transaction explicitly marked unsplit are all left alone, and the scan drains to empty once run rather than reporting the same rows forever ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **Rules no longer break a split transaction by categorising it.** A split's categories live on its parts, and its own category is deliberately left empty -- so writing one onto it produces a row that claims a category *and* carries its own breakdown, which every per-category total then counts twice. Bulk edit was stopped from doing this a while back, but **Run rule now** and **Run group rules** write straight to the database and went around that guard, so rules were still quietly creating the damage. A rule now leaves a split's category alone while still applying everything else it does -- vendor, notes, tags and the rest -- so splits stay covered by your rules. The preview and the results list name such a row **Split** instead of showing it as *Uncategorized*, which read as a change that was never going to happen ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **A transaction damaged by the old bulk-edit bug is no longer counted twice.** Before it was fixed, \"filter by Uncategorized, select all, set a category\" wrote a category onto split transactions without removing the parts underneath, leaving rows that claim to be in a category *and* carry their own breakdown. Nothing has ever cleaned those up, so they are still sitting in databases -- and the queries behind Spending by Category, the Reports charts and the Category Details panel added up both, reporting a split receipt at its full amount **plus** each of its parts, and counting it as two transactions. A category could therefore show more spending than the transactions underneath it actually came to. Each transaction is now counted once, through its parts where it has them ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **Budgets count the money you spent through a split.** A split transaction holds no category of its own -- its categories sit on the individual parts -- and the query behind every budget figure only ever looked at the transaction's own category. So a receipt split between Groceries and Household added nothing to either budget: the progress bars read low, *remaining* read high, and the budget report agreed with them. Budget **alerts** have counted split money since they were added and the spending charts since v2.33.0, so a category could raise an over-budget alert while the bar right next to it showed room to spare. Affects Budget Progress, Budget Breakdown and Budget Remaining on the dashboard, the Budget view, Reports > Budget and its CSV and PDF, the scheduled monthly report email, and the *Unusual spending* section of the digest along with its notifications. Splits restored from a backup made before v2.41.0, which lost the flag marking a transaction as split, are counted too, and a transaction damaged by the old bulk-edit bug -- which stamped a category onto a split parent without removing its parts -- now counts through its parts rather than dumping the whole receipt into the one category it was stamped with ([#360](https://github.com/otherworld-dev/Budget/issues/360))\n- **A refund now comes off what you have spent.** *Spent* on the Budget page counted only money going out, so a bill that was refunded, a returned purchase or a reimbursed expense left the category looking fully spent -- a $216.90 phone bill with $158.61 credited back read as $216.90 spent, and the bar sat at 100% over a $120 budget. It now reads $58.29, which is the figure **Category Details has always shown for the same category**: the two screens disagreed, and the budget was the one that was wrong. The same net figure now feeds Reports > Budget and its exports, the Budget Progress, Budget Breakdown and Budget Remaining tiles, the budget alerts -- which is what stops a category raising an over-budget alert while the bar beside it shows room to spare -- and the *Unusual spending* digest, where a purchase you sent back no longer reads as a spike. **Income categories** are measured by what came in, with anything paid back out subtracted; Reports > Budget was previously asking for money-out on those too, so an income category with a budget reported nothing against it ([#361](https://github.com/otherworld-dev/Budget/issues/361))\n- **A split transaction on the dashboard names the categories you sorted it into.** Recent Transactions read each row's own category, and splitting a transaction moves the categories onto its individual parts -- so however carefully a receipt had been divided up, the tile called it *Uncategorized*. It now names the categories the parts went to, with a coloured dot for each and the part-by-part breakdown on hover, the way the transactions list and the account register have since v2.43.1. Where the tile is too narrow for all of them the names run to an ellipsis rather than pushing the amount off the row, and a split that arrives without its parts is called a **Split**, which is at least true ([#360](https://github.com/otherworld-dev/Budget/issues/360))"}},"signatureDigest":"sha512"},{"version":"2.43.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.43.0/budget.tar.gz","created":"2026-08-24T01:27:13.303435Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-24T01:27:13.392072Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"lQsdNi/Ed5bU8/Ch8iyHVXKdX+l8qhRm8fCwRYfB/ObxW6pncVobhw57Bzvu/2yio4Wb+MyJ+DZ8T75pZ9+ugVmWX+q/VSLx4PEAmnr9upL0m7AvJN33BXARoFWBzKVFHnfEy/RuYgtxnNfOmoiblZXbAeBs5zyxxeQKrYSMSHfdwdG/t9HZNFNvFEyp7k7XEU1xQ5HaAo6kResw+25vTU/lkvJNXYmNnmWr3ZxUo7qphCOw/ZJU4aMi+g8RjrWIp86biPeM8mIr57Oacrm3fIQnGTgfk7lqX5FGTjhjLTnDKin+AyFQCpkuki47leJ+W4VwS/LvObLDHn/WcYhjmkdmGXTGFZGhVYAHz3VcPklRmERDkafXZ7lPk0tWZjma/W4SCf6u8Pu3Ni5fVeZ9Zp7qiCjNomRBmMl2nlW2EC/GYJAW7c78TM1Gq9qw6EAAweO5/7JMtOMaA4Klm1XKmE6CpDmu6Ox4E0+RiaDZJ6lHnC7JcfNweMtbgZb4tK/1nAXqum2v4vIQcIDpfk2ROqxkvthclKe05z2p1oe2qg/mEWqwx51ZHR0PvMhmNYGh9VVi3F7KiT0v1K6D06CAAOJu6TeJTMKX5asGJ8K2PkVKk0E7uVWGKp7+WRBU4ILvUftG5d8Pz7ChCY35XVwknHbY/Rx7DNno+1h3YzkblIU=","translations":{"en":{"changelog":"### Added\n- **Liability accounts now ask what a positive balance means instead of guessing.** Editing a credit card, loan, mortgage or line of credit shows an **Amount owed** field that takes a plain positive number — the app adds the minus sign — with a separate **This account is in credit** tick for the case where you have overpaid and the lender owes you. Switching an account between a debt type and a savings type converts the figure for you and shows the resulting current balance before you save. Creating a liability works the same way. The choice is recorded with the account, so an export and restore keeps it ([#353](https://github.com/otherworld-dev/Budget/issues/353))\n- **Several CSV columns can feed one text field.** Banks often split what belongs together — a merchant column and a details column, say, or a reference spread over two. On the import mapping step, Description, Notes, Vendor and Reference are now checklists: tick every column that belongs in the field and the values are joined with a comma, in the order the columns appear in the file, with blank cells skipped. The same works for those four fields on OFX, QIF and camt files, and a saved import template keeps the whole selection. A single ticked column imports exactly as it always has, so re-importing an overlapping statement still recognises its transactions. Thanks to @Saviq for the feature ([#355](https://github.com/otherworld-dev/Budget/pull/355))\n- **Category trees can be exported and imported.** The Categories page has Export and Import buttons next to Add Category. Export downloads your whole tree as a readable JSON file; Import takes that file back, or a CSV of `Parent > Child` paths, shows exactly what would be created before anything is written, and leaves categories that already exist untouched while adding whatever is missing underneath them. Handy for backing up a carefully built structure, sharing it, or having a spreadsheet or an AI assistant draft one and loading it in a single step ([#354](https://github.com/otherworld-dev/Budget/issues/354))\n\n### Fixed\n- **Editing a loan or credit card no longer turns your debt into an asset.** Typing your statement balance as a positive number into the Opening Balance field stored it as a positive number, which the app reads as \"the lender owes you this\" — so a £5,000 loan quietly added £5,000 to your net worth instead of subtracting it, a £10,000 swing, and every later recalculation re-derived the wrong balance from it. Nothing on screen said so. Positive balances on a debt stay supported, because a genuine overpayment is a real thing, but the app now asks which you mean rather than reading it off the sign. **If this already happened to you, Settings › Repair Data will find it**: run *Scan for Issues* and the new *Debts Recorded as Being in Credit* section lists every affected account with what it reads now and what it will read afterwards — untick any you really have overpaid, and those are recorded as genuine credits and left out of future scans. Two related consequences are fixed alongside it: an account you have overpaid no longer appears in the debt payoff planner as something to pay off, and it no longer counts towards Total Liabilities on the Accounts page, where it was pulling net worth down by twice the credit ([#353](https://github.com/otherworld-dev/Budget/issues/353))\n- **An account edit that does not touch the opening balance no longer rewrites the balance.** Renaming an account, changing its institution or ticking a checkbox resubmitted the opening balance every time, so an unrelated edit depended on that value round-tripping through the form perfectly. It is now sent only when you actually change it ([#353](https://github.com/otherworld-dev/Budget/issues/353))\n- **Reopening a split transaction no longer scrambles its parts, and saving it no longer throws them away.** A split of 10 into 1, 3 and 6 came back as 1, 9.00 and 0.00 — the second part had swallowed the rest and the third was empty. The parts were always safe in the database; the editor was overwriting them as it drew them. It fills the last row automatically with whatever is left over, and it was doing that after adding *each* row, so every stored amount was recalculated away the moment the next row appeared. It now draws all the rows first and works out the remainder once, which is what it should have been doing. **If you saved a transaction from that scrambled view, the parts you saw are what got stored** — the third one was dropped for being 0.00, quietly, because the total still added up. Worth re-checking any split of three or more parts you edited recently; their categories will have been wrong in reports for the months involved. Splits of four or more parts had a second symptom — Save appeared to do nothing at all, with no message — which is fixed by the same change ([#358](https://github.com/otherworld-dev/Budget/issues/358))\n- **Filtering transactions by Uncategorized no longer lists your split transactions.** A split transaction has no category of its own by design — its categories live on the individual parts — and the filter was reading that as \"not categorised yet\", so every split you had ever made turned up in a list meant for things needing attention. Split transactions are now left out of it, and out of the dashboard's uncategorised list and the \"only uncategorised transactions\" option when running import rules, which read the same way. **The bulk-edit consequence is the one worth knowing about:** filtering by Uncategorized, selecting all and setting a category used to write that category onto the split transactions caught up in the list, after which they were counted twice in reports — once for the whole transaction and again for each of its parts. Setting a category on a split transaction is now ignored rather than obeyed; unsplitting one still assigns a category as it always has ([#356](https://github.com/otherworld-dev/Budget/issues/356))"}},"signatureDigest":"sha512"},{"version":"2.42.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.42.0/budget.tar.gz","created":"2026-08-21T21:23:46.834767Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-21T21:23:46.931017Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"RhkTM0z3ZXIpnFc2BJ0widME7KmhTp6jnd/kaHn42N1eiC9JQhiDUCGmqbCweHhswB3HBwwBoG37XE5L/9s97L13vmrIT+19EVx+f3o2xHXeVe0J19F0BKOxyW5mKYt7xQqo/dwCQ+qDk06kH89XPta+ppz28+qcfaEnBiEtnnzlyeOqyXgs6qWuM/sZW/WUau5dPKZxfkK57IgPaBIfx/R8cttcyokpplD5kV+rmGz8+AvAbvqcT06aGCzjQQtK4/ADbBe7PiGxy7Yy64B9LhgphkHuXqk1hzJiuC0exn+8z02QXGq5g2nDbATK6ZF6n6v6wIrSnEZtvRBvd2rloAQe5K5aiP6Ae6TPyILrunKGTL7Je1d/sqWO+103WdwcfLSI2rYHM00CUOdmxRttecjkJvc+sarc7m1M+fFIePC4SC5RlKJin/v9tUf/m+ie0+/UvqrcReF6hjCfN7jp8LBNjJQGsbpOBm+WO6v2i5GSKV/vNWLw4qln0rQXobu0jdSIhraqes84wPmF1z7U/eQorqmB9Q+ig4mfTtR3zxVfcd6vVT5fseiDTVhbaLf144zLTSxWpgVscFSQitXsVnA3FHkHuXsy8OqYeGgtQHOPjwMocSN1udnp59Wth/jd6qxj9Gf9KjFYFi/fwjc+QcvHaTuGCycDo+4xny+evpE=","translations":{"en":{"changelog":"### Added\n- **Receipts can be filed wherever you keep your app data.** Uploaded receipts have always landed in `Budget/Receipts/<year>/<month>/` in your Files; a new **Receipts folder** setting lets you point that anywhere inside your own Files instead — `Applications/Budget`, say, to sit alongside other apps' folders. The year and month subfolders are still created underneath, and receipts attached before the change stay exactly where they are: the app never moves or deletes your files. Applies to uploads from the web form, the API and receipt scanning alike ([#352](https://github.com/otherworld-dev/Budget/issues/352))\n- **Bank statements in camt.053 XML can now be imported.** Many European banks — Swiss ones in particular — export statements as ISO 20022 `camt.053` (and intraday `camt.052`) XML rather than CSV or OFX. Drop one on the Import page and it behaves like an OFX file: every account in the statement is listed with its IBAN, auto-matched to the account of yours carrying that IBAN, and routed there. The parser reads what the payer wrote (the remittance text), who the other side was (the counterparty, which becomes the vendor), the bank's own entry text, and the transaction type code, and a batch entry such as a collective payment is split into its individual transactions with their own counterparties. Duplicate detection uses the bank's own entry reference — more reliable than the CSV content hash — except where a bank stamps the same reference on every entry, in which case the hash is used rather than collapsing the statement into one transaction. Every camt.053 schema version parses, including files with the namespace stripped ([#350](https://github.com/otherworld-dev/Budget/issues/350))"}},"signatureDigest":"sha512"},{"version":"2.41.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.41.0/budget.tar.gz","created":"2026-08-19T22:30:42.071354Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-19T22:30:42.218560Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"BbOGARv5bo0EfD87OHApDK4LSAVbklBnbu7Q0XNAXlA/b120kU9X1ByNzLNwChmoeOLSrKp+saviED0SZkaaD2VdC6KM+2NghhWl/8RsDzdjLnUS5mbhQ04KOXOClJ1iHzwKIRJvAkStGLPAP/McI7ol6QLHi3ABWXWDlBcT6bGKDC6v7cmbh9jOeoys4phwH0uJE9pOVlQg7SfHGd/VJKr6pcScapT9P5dOBj878vpqjYSc3KIFvQ5OfA9C836sCseYxi9jM8YPoaw+LzTfX5/t80Fv5I2woXsvXnwtjijARCotyD1uZ9QMAy7M5LLkEm6yUGjJYrEBMBpc3h8fiC7muLojTK+J9O7zk7oYNN8D6Q2YqdJ3e84cEagzf83gbKicTPX4kJ9C8bvUQzK5roVtgFwat/Ndu9c2uK/rwOUVmDKPHdzt3/SQQAl9712dX7lZTJVN9r3dm87AL1nfaJghemZOfQdcQwFkahMlHZOm+B0xKrSUqQWyfbw4xezPvVZEudqpPIhQ0lIlFro93ziB7KBUJvaJCx0UNMFr2Z4zCDY64wKLaq1sgSm8HQ4QxSdL1+bPWgTG+BVzchvbx6Cmh7DHmXTAr5XGPzEczdMWY0t16uZ4ZzftT5Ss+S/NKpV37SiFKPOKWzou4BFGU9qwl0DeYKy4E+/EDMX0W80=","translations":{"en":{"changelog":"### Added\n- **The Help & Docs page now says how to support the project.** A small section with the GitHub Sponsors and PayPal links — the same ones listed on the app store — for people who installed the app and never see either. The floating help panel carries the links too. Nothing nags: it sits in Help, and the app works fully without donating\n- **A recurring transfer can now pay a credit card the way the card itself would, with the amount resolved fresh at every payment.** Card payments have always been representable as recurring transfers, but only at a fixed amount — useless for a bill that is different every month, which left people faking it with duplicate bills or typing the figure in by hand each time. A transfer whose destination is a credit card (or line of credit) now offers an **Amount type** choice mirroring what card issuers offer: *Fixed amount* as before; *Statement balance*, which pays what was owed as of the due date — everything charged since the previous due date plus any remainder an underpayment carried forward, with later charges rolling to the next statement; *Current balance*, which clears everything owed at the moment of payment; or *Minimum payment*, which pays the minimum set on the card's account (never more than is actually owed). The figure is worked out from the card's own ledger when you mark the payment made (or auto-pay makes it), so it is never stale; the amount shown on the transfer between payments is the last one resolved, and the pre-booked next occurrence carries it as the forecast estimate. Reminders, the bills calendar and auto-pay all work unchanged, because the payment *is* an ordinary recurring transfer. The card's own account page joins in: a **Statement due day** field on credit-card and line-of-credit accounts records which day of the month the payment falls due — shown on the card's page as account information in its own right — and a **Set up payment** button appears on a card with no payment transfer, opening the form pre-filled with the card and that due day. Once a payment transfer exists, the page shows when the next payment is due ([#347](https://github.com/otherworld-dev/Budget/issues/347))\n\n- **Subscribing to hosted receipt scanning, and managing that subscription, now happen from the settings page.** With the Otherworld relay selected as the scanning provider, the admin settings show the plans with a **Subscribe** button that opens Stripe checkout in a new tab — the licence key is shown once after payment, emailed as a backup, and pasted into the field above. Once a key is saved the block flips to a **Manage subscription** button: your server asks the relay for a billing-portal link tied to that key, so changing plan, updating the card or cancelling needs no separate account and the key itself never reaches the browser. A hand-issued key (a trial, or one minted directly) is told plainly there is no subscription behind it rather than being bounced off a portal that would refuse it ([#537](https://github.com/otherworld-dev/Budget/issues/537))\n- **A CSV export of every transaction you're looking at, not just the page on screen.** The account Export button built its file out of the rows the browser had already loaded, so it silently stopped at 50 — a year-end export of 800 bookings produced a file of 50 that looked complete, which is worse than an error. The export is now built on the server from the same filters the view is using, so it covers the whole result set however many pages that is. **The Transactions page gains its own Export button too**, which with no filters set means every booking across every account in one file: previously the only export was per-account, so a club treasurer with three accounts had to stitch three files together. Filters still apply, so you can export one category, one date range or one tag set just as easily ([#344](https://github.com/otherworld-dev/Budget/issues/344))\n- **The exported CSV now says which way the money went.** Amounts carry a sign — expenses negative, income positive — so the Amount column totals correctly the moment you drop it into a spreadsheet, rather than adding your outgoings to your income. The Type column reads *Income* and *Expense* instead of the stored *debit* and *credit*. Transfers between your own accounts appear as they always have, one leg of each, which now means they cancel out in the total instead of inflating both sides. The file also gained Vendor, Account, Currency, Reference, Notes and Status columns — enough to do the books from without opening the app ([#344](https://github.com/otherworld-dev/Budget/issues/344))\n- **A new Income & Expenses report, for the year-end job of showing what came in and what went out.** Pick it under Reports and you get two tables — income by category and expenses by category — with each side's own total and the net between them, over whatever period you select. It exports to CSV and PDF like every other report, the CSV keeping the two tables as separate labelled sections so a treasurer's spreadsheet can take them straight. Like the other reports it respects accounts and categories you've marked as excluded from reports; unlike the transaction export, which is a plain ledger of what you filtered ([#344](https://github.com/otherworld-dev/Budget/issues/344))\n- **The Belarusian ruble (BYN) is now one of the currencies you can pick.** It appears wherever a currency is chosen — the default in Settings, an account's currency, a manual exchange rate — and amounts are written with the symbol after the number (`1,234.56 Br`), as they are in Belarus. Its daily rate is fetched alongside the other fiat currencies, though the historical series is not: the 90-day history comes from the ECB reference rates, which don't cover BYN, so a converted figure for a past date falls back the same way it does for any other currency the ECB doesn't publish ([#343](https://github.com/otherworld-dev/Budget/issues/343))\n- **The API can split transactions, so capture apps can categorise receipt items too.** `POST /api/v1/transactions/{id}/splits` sets the parts of a transaction, and `POST /api/v1/transactions` now takes an optional `splits` field so a phone can record the transaction, attach the photo and set the per-item categories in a single request. `/api/v1/ocr/extract` additionally reports the receipt's `subtotal` and `tax`, without which a client could not make the items reconcile to the total — splits must sum exactly, and most receipts print tax on its own line. `GET /api/v1/capabilities` gains `splits_available` so a client can gate its per-item screen on a boolean rather than parsing the version. All four are additions: no existing field was renamed or removed, so clients built against the previous shape are unaffected\n- **Receipts with loyalty savings can be split too.** A Clubcard, coupon or multibuy line means the items on a receipt legitimately add up to *more* than you paid — and that gap used to make the whole receipt look misread, so it was refused for splitting and flagged with a mismatch warning. The savings are now read from the receipt and become their own line in the split, at the printed amount but negative, exactly as tax gets its own line. Four shapes now reconcile: items alone, items plus tax, items minus savings, and both together. The mismatch warning still fires when the gap is genuinely unexplained, which is the case it exists for. Two robustness details, because the reader is a vision model that occasionally slips: when it under-reads the savings by a line, the server closes the gap from the printed total so the receipt still splits rather than being refused over a saving it half-missed; and an impossible negative tax or subtotal from the reader is dropped rather than trusted into the arithmetic\n- **Turn a scanned receipt into per-item splits.** After a scan, if the items on the receipt add up, the scan box offers to split the transaction into one line per item so each can carry its own category — useful when one shop trip covers groceries, household and a treat. Where the receipt prints tax separately, the tax becomes its own line at the printed amount rather than being smeared across the items, so every figure still matches the receipt in your hand. The offer only appears when the arithmetic actually reconciles (items alone, or items plus tax, equalling the total); a receipt with a discount line or an unreadable item is left as a single transaction instead of producing splits that would be rejected on save. Splits carry categories, not tags — tags remain per transaction\n- **Receipts are filed by month and named after the transaction.** They now land in `Budget/Receipts/2026/08/` rather than one folder per year, and an uploaded photo is named `2026-08-05 The Corner Deli 23.77.jpg` instead of keeping whatever the camera or capture app called it (often a UUID). That sorts chronologically in the folder and makes a receipt findable by shop or amount in Nextcloud's own search. Existing receipts are left exactly where they are. A file attached from your own Files keeps its name — it's your file, and renaming it isn't ours to do\n- **Receipts can now be attached while you are still adding the transaction.** The Receipts section used to appear only after saving — the attach endpoints need a transaction id — so adding a purchase with its receipt meant save, reopen, attach. Files you choose (or pick from your Files) are now held and listed with an \"on save\" tag, then attached the moment the transaction is created. If one fails to attach, the transaction is still saved and you are told which — re-submitting would only have duplicated it\n- **Scan a receipt straight into the transaction form.** When your administrator has [set up receipt scanning](https://budget.otherworld.dev/docs/receipt-scanning.html), the Add Transaction dialog gains a drop zone: drop a photo on it (or click to pick one) and the date, amount, merchant and a suggested category are filled in for you to check. The photo is attached to the transaction when you save, so a receipt is one action rather than three. The box tells you exactly which fields it filled, how many items it read, and whether those items add up to the total — nothing is saved until you press Save, so a bad read costs a retype rather than a wrong record. Scanning also works when editing an existing transaction, where it only fills fields you have left empty: a scan is a suggestion, never an overwrite. The whole section stays hidden on servers with no OCR provider configured, rather than offering a button that cannot work\n- **Receipt scanning can be configured from the command line: `occ budget:ocr`.** Run it bare to see which provider is set, whether a key is stored, and — the useful part — whether the server can actually serve a scan right now. `occ budget:ocr set --provider=custom --endpoint=… --model=…` changes it, and `--api-key-stdin` reads a key from a pipe so it never reaches your shell history. It matters that this exists rather than reaching for `occ config:app:set budget ocr_…`: the raw config route looks equivalent but skips the provider and URL validation, and would store your API key in **plaintext**, since the encryption lives in the app rather than in Nextcloud's config layer. The command takes exactly the same path as the settings page, so a rejected value changes nothing and a key is always encrypted\n- **A CSV column can now be mapped to a transaction's Notes.** Bank exports often carry a line of extra information — a payment reference, a booking note, the counterparty's message — that belongs in neither the description nor the reference field, and until now it was simply dropped: the only way to keep it was to edit every imported transaction by hand. **Notes** now sits in the column mapping alongside Description, Vendor and Reference, and whatever you point it at is stored on the transaction. It also earns its own column in the import preview whenever something is mapped into it, so you can see you picked the right column before anything is written, and it can be saved in a template like every other mapping. Over-long values are truncated to what the field accepts rather than being imported into a transaction you could no longer edit ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **The API can now read a receipt photo into a draft transaction.** `POST /api/v1/ocr/extract` takes a photographed receipt (JPEG, PNG or WebP) and returns a draft for the user to confirm: merchant, date, printed total, line items, and — on the vision-model providers — the currency when one is legible; nothing is recorded until the client saves it through the ordinary create call, so retrying costs nothing but another scan. The reading is done by whichever OCR provider the administrator configured (below); failures carry a stable machine code (`ocr_not_configured`, `ocr_quota_exhausted`, `ocr_extraction_failed`) so a client reacts to what happened rather than parsing prose, and `ocr_available` on the new `GET /capabilities` reports the real state so clients hide the flow instead of hitting the error. A category is suggested by running **your own categorisation rules** against the extracted merchant — computed on your server, so the provider sees the image and nothing else, ever. When the line items don't add up to the printed total the draft says so rather than silently trusting either side. Documented in the [REST API guide](https://budget.otherworld.dev/docs/api.html) and the OpenAPI description ([#533](https://github.com/otherworld-dev/Budget/issues/533))\n- **Recording a transaction over the API is now retry-safe, and can carry the receipt with it.** `POST /api/v1/transactions` accepts an optional `idempotency_key`: a client that times out on mobile data cannot know whether its POST committed, so a repeat of the same key within a week answers with the transaction the first attempt recorded instead of inserting a duplicate — the single most damaging failure a capture client can produce, closed server-side. The same call now takes an optional `photo` part, recording the transaction and attaching the receipt in one request, plus a `merchant` field and a `type` that defaults to money-out. A new `GET /transactions/recent` returns the newest activity flat and merchant-first for a capture app's glanceable list. Wire field names across v1 settled on `snake_case` (`account_id`, `parent_id`, `line_items`) before anything ships against it\n- **Receipt scanning can now be set up, and it is off until you do.** A new **Receipt scanning** block in *Settings → Admin Settings* chooses which OCR backend reads a photographed receipt: this Nextcloud's own configured AI provider, any OpenAI-compatible endpoint — a vision model on your own network is a first-class option, not a footnote — or Otherworld's hosted relay with a license key. The choice is server-wide and an administrator's to make, because it decides who else sees your receipts. Until one is chosen the app sends receipt images nowhere at all: there is no default backend and no fallback. Your server makes the request rather than your phone or browser, so an API key never leaves the server and a backend that isn't reachable from the internet works perfectly well. Keys are stored encrypted and are never shown again after saving — leave the field blank to keep the stored one. Only the image is ever sent; account names, balances and other transactions are not. The [Receipt Scanning guide](https://budget.otherworld.dev/docs/receipt-scanning.html) sets out exactly what goes where for each option. With the API endpoint above, scanning works for capture clients as soon as a provider is configured; the scan button in the web interface arrives in the next release\n- **A documented REST API, so Budget can be reached from outside the web UI.** A versioned, read-and-capture API now lives at `/ocs/v2.php/apps/budget/api/v1` — list your accounts and categories, browse and filter transactions, record a new one, and attach a receipt photo to it. It authenticates with an ordinary **Nextcloud app password** (or a token from Nextcloud's Login flow v2), so there is no separate credential to manage and revoking the entry under *Settings > Security* cuts off whatever was using it. That makes a phone capture app, a shell script or an [n8n](https://n8n.io) workflow a matter of configuration rather than code — the [REST API guide](https://budget.otherworld.dev/docs/api.html) has worked examples, and a machine-readable OpenAPI description ships with the app. Version 1 deliberately stops at reading and appending: editing, deleting and everything else stays in the web UI, which keeps the contract small enough to hold still. Fields will be added to it, never removed or renamed. Every amount crosses the wire as an exact decimal string (`\"42.50\"`) rather than a JSON number, so a client cannot lose a penny to floating point on the way in or out. Note this is quite separate from the internal endpoints the web UI calls, which follow the database and change without notice\n- **The accounts page can now be tailored to what you actually want to see.** A gear button next to the tile/list switcher opens display settings for the page. Tick which attributes appear on each account — account type, institution, (masked) account number, last reconciled date, converted balance, and, on tiles, the 7-day balance trend and the status dot. Drag those same attributes into the column order you want for the list view (`Alt`+`↑`/`Alt`+`↓` does it from the keyboard); name and balance can be moved as well, they just can't be hidden. And choose how accounts are ordered: by name, balance, type, institution, last reconciled or date added, ascending or descending. Tiles follow the same attribute order as the list columns, hiding an attribute drops its column so the rest can spread out, and everything is remembered in your browser alongside the tile/list preference\n- **Categories can now be left out of budgeting without being left out of everything else.** A new **Exclude from budgeting** checkbox sits alongside *Exclude from reports* on a category. Where the reports flag removes a category from all spending figures, this one is budget-only: the category keeps counting in reports, the dashboard, insights and every total, and simply drops out of the Budget page, the summary cards, budget alerts, the budget vs. actual report and envelope rollover. Meant for spending you want to see but can't sensibly budget — gifts, medical bills, home repairs — so you stop being told you're over budget on a figure you never set. Excluding a parent excludes its subcategories too, and like the reports flag it stays with the owner on a shared category\n- **Select every transaction matching the current filter, not just one page.** Ticking the header checkbox on the Transactions list now offers *\"Select all N matching transactions\"* when more rows match than fit on the page, so a bulk delete or edit can cover thousands of rows in one go instead of 250 at a time. The selection is dropped if you change the filter, so a mass action can never silently include rows you're no longer looking at, and bulk deletes of many rows are much faster (the account balance is recomputed once per account instead of once per row) ([#336](https://github.com/otherworld-dev/Budget/issues/336))\n- **A Help & Docs page, in the app.** The sidebar's *Help & Docs* entry used to throw you straight out to GitHub. It now opens a real page listing every guide with a one-line summary, a shortcut to the keyboard cheat sheet, the Quick Add page URL, and the System Info panel for pasting into a bug report. The floating **?** button still gives you the short version for whatever page you're on, and now links through to the full page\n\n### Changed\n- **A saved OFX/QIF template now remembers your field mapping as well as your account routing.** These templates stored the routing only, so a bank that puts the payee in the memo had to have Description and Notes re-pointed on every single import — the choice was silently reset to the format defaults each time. Picking a saved template now restores both. Templates you saved earlier carry no mapping and are unaffected: their routing applies exactly as before and the mapping keeps the defaults ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **A reference longer than 100 characters is now refused when you type it, instead of failing when it is saved.** The field was validated against a 255-character limit while the database column holds 100, so anything in between passed every check and then broke on the way to disk — a clean \"too long\" message is a better outcome than a server error. Nothing already stored is affected ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **A rule condition saying an import source is *not* something will start behaving differently on OFX and QIF imports.** Because those imports never recorded a source at all, a negated Import Source condition matched every row from them; now that they do record one, it is evaluated for real. If you have a rule along the lines of *source is not \"Bank Sync\"*, check it still does what you meant on your next OFX or QIF import ([#338](https://github.com/otherworld-dev/Budget/issues/338))\n- **An import rule that sets notes \"only if empty\" no longer fires on OFX rows that carry a memo.** With the memo now kept in the transaction's notes (above), the field is genuinely no longer empty on those rows, so an *if empty* rule correctly leaves it alone; an *append* rule adds to the memo rather than replacing it. Rules set to always overwrite are unaffected ([#338](https://github.com/otherworld-dev/Budget/issues/338))\n- **The bill, transfer, savings goal, debt scenario, pension, asset and contact dialogs now use the same layout.** Each was a narrow single-column form that had to be scrolled; they are now laid out in columns sized to what they actually hold — three for a bill (**Bill**, **Payment**, **Schedule**) and a debt scenario (**Scenario**, **Payments**, **Debts**), two for a transfer, goal, pension and asset, and a compact single column for a contact. Everything in them is visible at once, with Save and Cancel pinned below the fields. A bill's split rows span the full width of the dialog rather than being squeezed into a column, and a pension shows the pot fields or the income fields depending on its type, without leaving a gap where the other one would be\n- **The four tag dialogs now match the rest.** Add Tag, Edit Tag, Add Tag Set and Edit Tag Set are two-field dialogs, so they stay compact rather than being stretched into columns — but they pick up the same chrome as the bigger dialogs: a rule under the title, and Save/Cancel on a divided bar at the bottom right instead of loose against the left edge\n- **The category dialog gets the same treatment.** Naming fields (name, type, parent, colour) sit under **Details** on the left, the two exclusion options under **Options** on the right, and **Tag Sets** spans the full width below them — no scrolling, and the two checkboxes now read as ordinary checkbox rows instead of a bold heading with a stray box floating above it\n- **The transaction dialog gets the same three-column desktop layout as the account dialog.** Adding or editing a transaction was a 500-pixel-wide strip roughly a screen and a half tall, with a line of help text under every field restating its label. It is now laid out as **Transaction** (date, account, type, amount), **Details** (description, vendor, category, split toggle, tags) and **Extras** (receipts, notes, exclude from forecast), all visible at once with nothing to scroll for. Switching on *Split across categories* opens the split table across the full width of the dialog instead of squeezing it into a narrow column\n- **The account dialog now fits on one screen.** Adding or editing an account meant scrolling through roughly two screens of form in a narrow 700-pixel strip — eighteen fields, most of them empty, each with a line of help text underneath repeating what its label already said, and the Save button stranded at the very bottom. The dialog is now laid out for a desktop screen: three columns — **Details**, **Banking**, and **Rates & limits** with **Advanced** beneath it — showing every field at once with nothing to scroll for and nothing hidden. A column block with nothing to offer your account type, such as rates and limits on a Cash account, doesn't appear at all; Save and Cancel are pinned below the fields; the help text that merely restated its label is gone; and the current balance is shown as the calculated figure it is rather than a text box you can't type into. The columns reflow to two and then to a single stack on narrow windows and phones\n- **The documentation has a home of its own: [budget.otherworld.dev/docs](https://budget.otherworld.dev/docs/).** Every link that used to send you to raw Markdown files on GitHub — the in-app help panel and Help & Docs page, the README, the install guide and the app store listing — now opens the rendered site, which is searchable and readable on a phone\n- **The Settings page is tidier.** The *Save Changes* / *Reset All to Defaults* buttons were stranded in the middle of the page, with the Quick Add Page and System Info sections stuck below them, and Danger Zone was not the last thing on the page. Sections now run in a sensible order, with Admin Settings and Danger Zone at the end and the buttons at the very bottom. Quick Add Page and System Info have moved to the new *Help & Docs* page, since neither was a setting\n- The action buttons on an account row in the list view no longer sit flush against the last column\n\n### Fixed\n- **The backup now actually contains your data — all of it.** The export/import zip under *Settings → Migration* carried only categories, accounts, transactions, bills, import rules and settings; everything else silently vanished when moving servers. Reported for tags ([#351](https://github.com/otherworld-dev/Budget/issues/351)), but the full list of what a migration used to lose is sobering: tags and their assignments, tag sets, **transaction splits**, recurring income, savings goals, assets and their value history, pensions with contributions and snapshots, per-account interest-rate history, manual exchange rates, import templates and remembered account links, saved reports, net-worth and budget history, reconciliation history, debt payoff scenarios, muted categories, shared-expense contacts with their shares and settlements — and on transactions, the links joining transfer pairs (so every transfer fell apart into an income and an expense), bill references, the split flag, and reconciliation/pension links. All of it now exports, and imports with every cross-reference remapped to the new server's ids. Old backups still import exactly as before; new backups are format 1.2.0. Deliberately still excluded, and now stated in the archive's manifest: bank-sync connections (provider agreements are instance-specific and must be re-established), shares with other users (they reference people on the old server), receipt files (stored in Nextcloud Files, not in the app), and the fetched exchange-rate cache (your manually set rates are included)\n- **Marking a recurring transfer paid no longer loses the deposit half of its pre-booked transactions.** When a transfer had its next occurrence pre-booked as a scheduled pair, marking it paid cleared the withdrawal leg but *deleted* the deposit leg — the source account paid out and the destination account never received the money, quietly understating it by one payment each cycle. Both legs of the pair are now cleared together. Payments already recorded this way are missing their deposit; the *Convert to transfer* action on the surviving withdrawal recreates the other half\n- **Transfers no longer count as income and spending in the analysis reports.** The dashboard's income and expense totals have left transfers between your own accounts out since 2.28.0, but the Reports page never got the same treatment: a £500 transfer appeared as £500 of income in **Income Analysis** (grouped by month, source or category) *and* £500 of spending in **Expense Analysis** (by month, vendor, account or tag) — and in the new **Income & Expenses** report only the incoming half was counted, overstating the net by the full amount moved. Every report view now excludes linked transfers, matching the dashboard, so shuffling money between your accounts changes no report figure. Two things are unchanged by design: a report filtered to a single account still shows that account's own transfer legs, because the money genuinely entered or left it; and only transfers the app knows to be transfers are excluded — ones created with the Transfer type, recurring transfers, and rows joined with *Match transfer*. Two unlinked rows entered by hand still count as ordinary income and spending ([#349](https://github.com/otherworld-dev/Budget/issues/349))\n- **\"Use Default Categories\" failed with \"A category with this name already exists\" whenever any default was still present.** The button seeds the whole catalogue in one go and gave up on the first name it found already taken — creating nothing at all. Easy to hit without doing anything odd: the category list shows one side at a time, so emptying the Expense view put the button on screen while the Income tree still existed in full, and pressing it failed on *Income* before a single expense category was created. Seeding now fills in exactly what is missing — an existing category is kept as it is, its missing subcategories are added underneath it, and everything else is created around it — so the button always finishes what it can instead of refusing the lot. A double-click while the first request was still running could also race itself into duplicates; the button now ignores the second click ([#348](https://github.com/otherworld-dev/Budget/issues/348))\n- **Amounts in Kazakhstani tenge were shown with the code rather than the symbol.** KZT was selectable and priced correctly, but it was missing from the front-end's symbol table, so every figure came out as `KZT1,234.56` where the rest of the app would have written `₸1,234.56`\n- **Envelope budgets ignored everything you spent in a category's subcategories, so the whole budget rolled over untouched.** The carryover looked for spending filed against the budgeted category itself and nowhere else. Budget €300 on *Groceries* and file the receipts under *Groceries › Supermarket* — the ordinary way of using subcategories — and it found nothing to subtract: July carried the full €300, August carried €600, September €900, growing by the untouched budget every month. The same screen said so in two contradictory ways, because the Groceries row itself has always added its children up: \"spent €250 of €300\" sat directly beside \"+€300 carried\". An envelope now covers the whole branch — the category and everything filed underneath it — so the amount carried forward is the leftover you'd work out by hand. A subcategory with its own envelope still keeps its own chain and is left out of its parent's rather than counted twice. Subcategories stay out of a parent's envelope when you've excluded them from budgeting or from reports, when they budget on a different period (a quarterly amount can't be added to a monthly envelope), or when they're income categories — and so does anything filed underneath those. Budget alerts and the budget-vs-actual report read the same corrected figure. Nothing was stored wrong: the carryover is recalculated from your budgets and transactions every time it's shown, so the numbers correct themselves as soon as you update ([#341](https://github.com/otherworld-dev/Budget/issues/341))\n- **Envelope budgets also ignored anything you spent in a shared account, with the same result.** The two queries the carryover uses to total up spending were scoped to the accounts you *own*, while every other budget figure on the page is scoped to the accounts you can *see*. So a category you fund out of an account shared with you looked untouched to the envelope: the full budget rolled forward each month, next to a row that correctly showed the money as spent. Budget alerts had the same split — they now measure spending over the same accounts as the budget they compare it against, including their split transactions ([#341](https://github.com/otherworld-dev/Budget/issues/341))\n- **A long CSV column could import a transaction you were then unable to edit.** Text taken from a CSV was stored exactly as the file wrote it, with no regard for what the field can hold. A notes column over 2,000 characters — easy to hit with a bank that packs a whole payment reference into one cell — imported perfectly happily and then failed validation the moment you opened that transaction, so no change to it could be saved until you shortened the note by hand. Over-long Vendor and Reference values were worse on MySQL and PostgreSQL: the row was rejected outright and counted as an error rather than imported. Imported text is now truncated to the field's limit, exactly as OFX and QIF imports already were, and leading or trailing whitespace is stripped rather than stored ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **\"Check the server log for details\" pointed at a log with nothing in it.** When rows failed to import the warning told you to look in the server log, but the import never wrote there — the only record was in the browser's developer console, which is not where anybody was being sent. Failed rows, unresolvable accounts and balance recalculation failures are now logged properly with the row number and the underlying error ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **The column mapping step never highlighted the columns you had mapped.** Each mapped column was supposed to be marked in the preview table underneath; the highlight was looked up by column position while the mapping holds column *names*, so it silently matched nothing and no column was ever highlighted for any ordinary CSV ([#340](https://github.com/otherworld-dev/Budget/issues/340))\n- **A transaction added \"today\" could be filed as a future payment and left out of the account balance.** Whether a date counts as future was decided using the *server's* calendar, but the date comes from *yours* — the web form pre-fills your device's date, and a capture app sends the phone's. Whenever your local date ran ahead of the server's, everything you recorded was quietly marked **scheduled**, and scheduled transactions are deliberately excluded from the balance: you added a purchase and the balance did not move. On a UTC-hosted Nextcloud that is the hour after midnight for anyone in British Summer Time, and most of the working day for anyone in Australia or New Zealand. The date is now judged in **your own timezone** (the one Nextcloud already knows from your session), falling back to the instance's configured timezone, so today is today wherever you are — while genuinely future-dated payments are still scheduled and still stay out of the balance until their date arrives. Transactions already misfiled this way corrected themselves within a few hours through the existing scheduled-transaction job; nothing was lost\n- **QIF import has never worked: it reported rows in the preview and then imported none of them.** A QIF file's accounts are matched to yours by an identifier the QIF parser never actually produced, so every account in the file was skipped — the import finished reporting success, with zero transactions added and no error to explain it. Underneath that, the parser had no notion of where it was in the file: an `!Account` header block was read as though it were a transaction (importing a row dated with the account's *description*), and because a real Quicken export opens with its category list, that whole list was read as an extra account containing one bogus transaction per category. Accounts are now identified by their name in the file, `!Account` blocks set the account's name, type and description as they should, and the sections that never held transactions — the category list, classes, memorised payees, security prices — are skipped instead of being imported as data. A file that does not name its accounts shows them as *Account 1*, *Account 2* in file order. Dates are also read properly now: Quicken pads them to a fixed width (`12/ 4'98`), which nothing recognised, and a date that cannot exist — a 13th month — was passed to the database as text rather than being rejected ([#338](https://github.com/otherworld-dev/Budget/issues/338))\n- **Import rules could not match on \"Import Source\" for OFX, QIF or any non-CSV import.** Only CSV imports recorded where a transaction came from, so a rule condition on **Import Source** was silently false for every OFX and QIF row — and, because an unknown field inverts under a NOT, a rule saying *source is not …* fired on all of them instead. OFX and QIF imports now record `OFX Import` and `QIF Import`, joining the existing `CSV Import`, `Bank Sync` and `Toshl`, and the values are listed in the [rules guide](https://budget.otherworld.dev/docs/rules.html). Note the source describes how a transaction arrived and is not stored on it, so this criterion still matches nothing when a rule is re-run over existing transactions — the guide now says so ([#338](https://github.com/otherworld-dev/Budget/issues/338))\n- **The column mapping did nothing at all on OFX and QIF imports, and the memo was thrown away.** Every field in the mapping step could be changed and none of them had any effect — the import silently ignored the mapping and always took the description from the OFX *name* field. Banks that put the real payee in the *memo* instead (a common Canadian pattern) had no way to import a usable description, and the memo itself was parsed, shown in the preview, and then discarded rather than saved anywhere. Worse, a statement whose entries carry only a memo and no name imported with a completely blank description. Now: **Description**, **Notes**, **Vendor** and **Reference** can each be pointed at any field the file actually contains, the memo is kept in the transaction's notes by default, and a missing name falls back to the memo instead of importing nothing. Date, amount and type come from the file's structure and are no longer offered as mappable, along with the income/expense, account and currency columns that these formats never had — those dropdowns are gone rather than left on screen doing nothing ([#338](https://github.com/otherworld-dev/Budget/issues/338))\n- **The import preview showed every amount as a plain positive number, whichever way the row was going.** The preview is sent each amount unsigned with the direction alongside it, and it drew the number while ignoring the direction — so a statement of nothing but expenses previewed as a column of figures indistinguishable from income, and the step whose whole purpose is to be checked before anything is written could not show the one thing most worth checking. Amounts in the preview are now signed and coloured: an expense reads `-€91.29` in red, income `€500.00` in green, and the column is right-aligned so the figures line up. What was imported was correct all along — only the preview was silent about it ([#339](https://github.com/otherworld-dev/Budget/issues/339))\n- **A negative amount written any way other than a leading hyphen imported as income.** Only `-1234.56` was understood; every other notation had its sign thrown away with the currency symbols. That covers a trailing minus (`1.234,56-`, as written by a number of German and mainframe exports), brackets (`(1,234.56)`, the accounting convention several US and UK banks follow), and a typographic minus or dash in place of an ASCII hyphen. A trailing minus was the worst of the three: left on the end of the number it also pushed the decimal separator out of place, so `91,29-` imported as income of 9,129.00 — a hundred times the real figure, on the wrong side of the ledger. All three now import as expenses, and a lone `-` in an amount column still means \"nothing here\" rather than a negative. If you have already imported a file with trailing minuses, re-importing it will add the corrected rows rather than recognising them as duplicates, because the rows that went in were keyed on the wrong amount ([#339](https://github.com/otherworld-dev/Budget/issues/339))\n- **Dialogs on the Assets, Pensions, Savings Goals, Debt Payoff, Tags and Import pages opened behind the sidebar.** Fourteen dialogs — including Add Asset, Add Pension, New Scenario and Add Savings Goal — were written inside the page content area, which Nextcloud paints as its own layer. A dialog can never rise above the sidebar from in there, however high its own stacking order is set, so it appeared cut off behind the app navigation. They now sit alongside the dialogs that always worked, and cover the whole window like the rest\n- **The remove button on a split row sat under the Description box instead of beside it.** The row's Description input was written without its closing bracket, so the browser swallowed the tag that should have ended the field and folded the remove button into it — the row's fourth column stayed empty and the ✕ dropped onto its own line. It now sits at the end of the row where it belongs\n- **A mapped Type column is no longer ignored, so unsigned exports stop importing as all income.** Mapping a **Type** column (`Expense`/`Income`, `Debit`/`Credit`, `DR`/`CR`, `Withdrawal`/`Deposit`, …) had no effect: the direction was always taken from the sign of the amount. Files that write every amount as a positive number and state the direction in a separate column — Nextcloud Tables exports, and a number of banks and budgeting apps — therefore imported every single row as income, quietly moving the balance the wrong way by twice the amount. The mapped column now decides the direction; rows where it is blank or unrecognized still fall back to the sign ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **The import preview now warns before a batch goes in the wrong direction.** Two new warnings appear above the preview summary: one when a mapped Type column is blank or unrecognized on some rows (naming how many), and one when nearly every row would be booked as income into an account whose history is nearly all expenses, or the reverse. Neither blocks the import ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Every transaction showing \"Unknown Account\" after restoring a backup.** Restoring a backup gives every account a new id, but a page that was already open kept the old ones, so nothing in the ledger could be matched to an account and the whole Account column read *Unknown Account* — with nothing in the browser console to explain it. The same happened in any second tab left open during a restore. The transaction list now notices that it is holding a stale account list and refreshes it by itself, and a restore finishes reloading its data before reporting success ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **A failed accounts request no longer blanks the Category column too.** If the accounts request failed while the app was loading, the rest of the load was abandoned as well, so both the Account and Category columns fell back to *Unknown Account* and *Uncategorized* behind a generic \"Failed to load data\" message. The two lists now load independently, and the message names which one failed and says to reload the page when an expired session is the cause ([#333](https://github.com/otherworld-dev/Budget/issues/333))\n- **Select all now counts during reconciliation.** In a reconciliation session, the header select-all checkbox ticked the row checkboxes visually but the Ticked total and Difference didn't move, and the ticks never reached the server — so they were also silently lost when leaving and resuming the session. Select all now registers every row it ticks (or unticks) with the session exactly like a manual tick, and no longer wipes ticks made on other pages of the list ([#337](https://github.com/otherworld-dev/Budget/issues/337))\n- **Deleting an account that still has transactions now offers to delete them too, instead of failing with an unhelpful message.** The delete failed with *\"Failed to delete account: Failed to delete account\"* — the real reason (the account still has transactions) was being replaced by a generic message on its way to the browser. The prompt now says how many transactions the account has and offers to remove them along with it, which makes a bad import easy to undo; decline and nothing is deleted. Transfers pointing at the deleted transactions are unlinked, leaving the counterpart in the other account intact ([#336](https://github.com/otherworld-dev/Budget/issues/336))"}},"signatureDigest":"sha512"},{"version":"2.40.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.40.0/budget.tar.gz","created":"2026-07-26T21:40:17.806590Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-26T21:40:17.904979Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"Tlx5adQ84X1cU4v1VoYON+yY22etMZSb58OURK5dpJ/bpQdLjdhL6stjRFGshNhEHr1Ra/KTZs7/uCZLyvq+M0XBYGD+voy+pwmXwa6Wylyi99fJ2UhiXPHxKiExVq1EJY/PA7LcHAQy639r04gbQ4Q/BvDrOZYWAZuYCLrZrZFclfoIlzf/Ra5SFuCuWguuOd79cU/tXViv8xntJBIcIXoN58cadHF5iTo3Mt2XO7sNsUs7A8+1HDXsUldblvmLFFpH9ubJdYVDKqdzA104yRb0uPH08Zd6+y764r+uIsahSB/RwF3kJ20gcv5nurCaf9FvsI06PiyQnR73jMzlnoAaWxnSPZwGDa+gvQ/t56H+m+A9DlvVgnxexUa0C+Ga7cphcgVKWPWaRZFQzeofrcJ66wAH9uh338pw2R2Lq5F+s2NCOKuKo6uXocpf+VZ9GTsfRIrDEGL+4FwkFkxd0tHUBoohsOhROk/tXphvl/mIh5m4m3pRsjm7GviZASYoTXJe+kdclUUzpFMuXGrOFjSXCd1Plk2XsDMiHBzPEXAkaPlL9hdluXiuCCXrUYIF+S/U60qB1MuWRlwzTH80RovEgvyKGwZtzlDPtNLF0hM79iABKE5UgP1km9MRm7dyDWQDdogfWq+Oy97EJH8TDtYvuO2I79lQnppc9WrYB5E=","translations":{"en":{"changelog":"### Added\n- **Keyboard shortcuts.** Budget can now be driven from the keyboard. Press **?** anywhere for a cheat sheet. Globally, `/` (or `Ctrl`/`Cmd`+`K`) focuses search and `g` then a letter jumps to any page in the sidebar (`g d` Dashboard, `g t` Transactions, and so on — every page has a letter). Any dialog now closes with `Esc`, traps `Tab` inside itself, focuses its first field on open, and saves with `Enter`. On the Transactions list, `j`/`k` move a row cursor, `e` (or `Enter`) edits the highlighted row, and `x` selects it. Shortcuts stay out of the way while you're typing in a field\n- **Export and import your import rules as a file.** New **Export** and **Import** buttons on the Rules page: Export downloads every rule you own as a single JSON file (a lightweight backup, or a way to move your rule set to another instance without a full data export); Import reads such a file back in and creates the rules. A rule referencing a category or account that doesn't exist on the target instance is rejected and reported rather than mis-filed. Rules shared with you are left out of the export, and rules remain part of the full data export too ([#318](https://github.com/otherworld-dev/Budget/issues/318))\n- **Import rules can now be shared.** Rules join the list of things you can share with another Nextcloud user (alongside accounts, categories, bills, income and goals) — pick which rules to share, read-only or read/write, from a share's *Configure* panel. Shared rules show a *Shared* badge on the Rules page, can be run and (with write) edited by the recipient, and run during their imports too; only the owner can delete one. A shared rule's *set category*/*set account* action only takes effect for the recipient when that category/account is also shared with them, so a transaction is never filed under something they can't see ([#320](https://github.com/otherworld-dev/Budget/issues/320))\n- **Import rules can now match on the account.** A new **Account** condition scopes a rule to a specific bank account (with NOT for \"any account except this one\"), and a companion **Account Type** condition matches by kind of account (checking, savings, credit card, …). Both work when importing into an account and when running rules over existing transactions ([#322](https://github.com/otherworld-dev/Budget/issues/322))\n- **Tag sets now work on shared categories.** Opening a category shared with you shows its tag sets; with write access you can add, edit and delete tag sets and tags on it just like your own categories, and read-only shares show them without edit controls. Previously any tag-set action on a shared category failed ([#328](https://github.com/otherworld-dev/Budget/issues/328))\n- **Bulk edit can now clear a transaction's category.** The *Bulk Edit Transactions* dialog's Category dropdown gained an **Uncategorized** option alongside *Don't change*, so you can un-categorize many transactions at once ([#332](https://github.com/otherworld-dev/Budget/issues/332))\n- **Deleting a category that still has transactions now offers to reassign them.** Instead of blocking with *\"reassign or delete them first\"*, the delete prompt offers to move the category's transactions — and any in its subcategories — to **Uncategorized** and remove it in one step ([#332](https://github.com/otherworld-dev/Budget/issues/332))\n\n### Fixed\n- **The browser Back button now moves between pages inside Budget.** Switching pages (Dashboard, Transactions, Accounts, …) records a history entry and updates the address bar, so Back and Forward step through the pages you visited in the app instead of jumping straight out to whatever you were looking at before you opened Budget. The current page also survives a refresh, and links that deep-link into a page (e.g. from search) still work.\n- **Bills with \"Auto-pay when due\" turned off could still auto-pay themselves.** The auto-pay flag (and the other bill toggles) could be read as *on* when it arrived as text rather than a true/false value — the classic `(bool)\"false\"` trap — so a bill created or restored with auto-pay off could still be auto-paid. All bill toggles are now parsed strictly as booleans on create, edit and import ([#335](https://github.com/otherworld-dev/Budget/issues/335))\n- **Cryptocurrency accounts and their transactions now keep full precision.** Amounts were capped at 2 decimal places on entry and storage, so e.g. `0.00012345 BTC` was rounded to `0.00`. Account balances, transactions and splits now accept and store up to 8 decimals, following each currency's native precision (BTC 8dp, XRP 6dp, JOD 3dp, and so on); fiat currencies are unchanged and still 2dp. Amounts on bills, recurring income and savings goals denominated in crypto are not yet covered ([#331](https://github.com/otherworld-dev/Budget/issues/331))\n- **Shared categories keep the owner's order, and editors can reorder them.** Recipients saw shared categories in an arbitrary order and couldn't move them; they now appear in the owner's order, and a write-share recipient can drag to reorder (the new order applies for the owner and everyone it's shared with). Reordering no longer silently fails when sort positions collide — the whole sibling group is renumbered on each move ([#328](https://github.com/otherworld-dev/Budget/issues/328))\n- **Shared categories now open for the recipient instead of doing nothing.** A read-only shared category couldn't be selected in the list at all, and even when reached its detail/recent-transactions/spending endpoints returned `404` (they looked the category up under the viewer, so one owned by someone else was never found). Clicking a shared category now opens a read-only view showing the owner's transactions and analytics for it ([#328](https://github.com/otherworld-dev/Budget/issues/328))\n- **Recording a bill's payment failed when the bill used a shared account.** A bill can point at an account owned by another user — a partner's shared account — but marking it paid, and the one-click **Record transaction** repair, threw *\"Failed to record payment\"* (a `DoesNotExistException` in the log) because the transaction was booked against the person clicking rather than the account's owner. Bill payments are now recorded against the account owner, so a share recipient can mark shared bills paid; a bill whose account was since deleted now shows an actionable message instead of the generic failure ([#334](https://github.com/otherworld-dev/Budget/issues/334))\n- **A one-time bill marked paid without a recorded transaction could not be reached to fix it.** After a one-time bill is marked paid it deactivates and drops off the Bills list, yet it still appears in the *Payments without a recorded transaction* card telling you to assign an account first — with no way to open it. That prompt is now an **Assign an account** button that opens the bill for editing ([#333](https://github.com/otherworld-dev/Budget/issues/333))"}},"signatureDigest":"sha512"},{"version":"2.39.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.39.1/budget.tar.gz","created":"2026-07-11T22:22:09.812692Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-11T22:22:09.925488Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"PTjw+Z1r+sKWQmZSlNfYPSTl5PFejqjMEgNyvQR1FXSKor9zNXxtxcAM0eYYthPn9YEprCKS9V6NC699ZbeWK6WbdRtprmP+rsvCifpjQyVtPDGLJ11LWzLVgw84pTHcolsdY756JO6KWW8hxp63bq3s4QE4rs3RTCEyHSpzpZ1pXSydTCTvheL1M/rtg3XyKpzBkoOqGh39Dnh9TH7JQt+cCB8VD84aeHcsvnxUkQJU3AmZwYGcP8wSNeLmDjt1S9yCv2h8NAReLQeTMbmdzNJtioLLiifkedz5bEgjVximgqI99mmV+8uhRBY0keT1hWXR6En4IrRkiJwlEyNZRHkukMa9jNmoNVvoRYCuQOVZ1wWGtkS8MCz5Ig63yPijEMh1bqnoi3+WA1g8s23dJVIziAHSKl0F+V7DKThsw2jBouMZeZ7bG0nMS9bFLcndAm1MbpWyuZATotUExNeYhEZEIwUOuF+esV5lnDoHTf0i/q6OJGa4hPPiNTE/rH4PS3Z4pdEZ4V9YhxYfsSs/9y+Y7xg/ZQWnLq2YVsTR7V8FgQwU4Bi8OGLsfbYZhSaUnHv60ObUB2U4WkD1mZZqDHKJXAIgVGulvHFAkXQVeGpRqbUCQNvgiVU8hfRaRmEr/y9Usub/3srDJn7qybeAxfOxA7rL+AlakEZBECHPJlY=","translations":{"en":{"changelog":"### Fixed\n- **Share recipients saw wrong dashboard totals.** For a user whose accounts are all shared from someone else, the Income/Expenses This Month cards counted transactions in the owner's **\"Exclude from reports\" categories** — the exclusion list was built only from the viewer's own categories, so the owner's internal-transfer legs inflated the recipient's income and expenses while the owner's own dashboard was correct. Shared categories now keep their owner's exclusion for every viewer, and per-viewer **\"Hide from my reports\"** mutes are honored by these totals as well ([#326](https://github.com/otherworld-dev/Budget/issues/326))"}},"signatureDigest":"sha512"},{"version":"2.39.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.39.0/budget.tar.gz","created":"2026-07-11T00:57:27.084224Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-11T00:57:27.180102Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"gJm3RDjkvl1EBICN6Us5TsX5SdQbSGnRHvRIZmLsYaclkDVqW/mYCBjVgwjU50ifkv72zl3kxf5a8S3yxpo2WX6cnhkyyibLhs5Uzdrj9Egw47yYgMun8WH4647Y0uGP7QrX3Yf51SO7Ve+JWgdMRX+hWvG4K9hxUgAwWR3AmTYRsRXpmsNrOr97q2SPC3V0g9bAARDeSeWDGQ8SR05+OMIrQRj0Ct56fC1cTNWzHpPT+Qs17SJJcUUnK3tJWsM3wvGiwk62YMBy1cv1jx3JkOXnYvsa8bpSG3sL7aqr05QkAkvL9sSGxka6mDrC3CN1LHlwwQjPjWwoX9YDtOI04j0JPd0SzlhMYILaZNyouhoNTuY5YhDIG4aLjg737AAEBHgU3jvpWxaM8Oz2+9he9LkAJW6qA9DuzB/FmDNKxyJTmQ6S0LZ21d+Hkr0LD/2uKRSywlRBld+UNCWby8YrgIkyGomPH1rjDG28y1ApiqSozetcjSvDYwqULM2mLXU9OjD9a8UJk8B1R4Xd0TqgMmDCaAZrTdRLYYdTZEEaFbnDkbm8p4z2q+UGfn/UCNEOkg5pbu1WAsRubIKkPzNTz7gTSLI9u+qJfvoZg9c3Ae1OhXWDD9k/2Z+pCrbJhu8yDX+2JukXoAxNS+bnxaDxdoxRzIM+9jcbb0eyG3wJuLk=","translations":{"en":{"changelog":"### Added\n- **The Bills page now flags payments without a recorded transaction.** A warning card lists bills that were marked paid in the last 60 days without a transaction being created or linked — the situation where the app balance silently detaches from the bank. Each entry has a one-click **Record transaction** repair that books the missing payment (dated the day it was marked paid, both legs for transfers, splits applied). Deliberate skips via the *Skip* button are not flagged ([#274](https://github.com/otherworld-dev/Budget/issues/274))\n- **QAR (Qatari Riyal)** and **JOD (Jordanian Dinar)** are now available as account currencies. JOD amounts use the currency's native 3 decimal places. Automatic exchange rates cover both. Requested in [#321](https://github.com/otherworld-dev/Budget/issues/321)\n\n### Fixed\n- Editing a **monthly recurring income** never saved the changes — the app showed *\"Income saved successfully\"* but the Expected Day (and every other field) kept its old value. Any update whose payload contained an empty field (a monthly income always sends its yearly-only \"expected month\" as empty) reloaded the entity mid-save and threw away the edits. Thanks to @redsteadz for the fix ([#324](https://github.com/otherworld-dev/Budget/issues/324), [#325](https://github.com/otherworld-dev/Budget/pull/325))\n- The **\"Exclude from forecast\"** checkbox on a transaction appeared unticked whenever the edit dialog was reopened, and saving the transaction again then really did reset the flag. The flag was stored correctly (including when set by an import rule) but the transaction list never sent it back to the browser, so the dialog always showed — and re-saved — it as off ([#326](https://github.com/otherworld-dev/Budget/issues/326))\n- **Income/Expenses This Month** (and the other report summary totals) deducted transactions in **\"Exclude from reports\" categories** without converting them to the base currency, so on multi-currency setups the deduction was applied at the wrong rate — and for a single selected account the deduction wrongly included every other account's excluded transactions too ([#326](https://github.com/otherworld-dev/Budget/issues/326))\n- **Imports no longer bring in flagged duplicates by default.** The preview's **\"Show duplicates\"** checkbox — on by default — secretly doubled as the skip-duplicates switch, so every import ran with duplicate-skipping off and rows flagged *Duplicate* were imported anyway. It is now purely a display filter; a new explicit **\"Import flagged duplicates too\"** option (off by default, resets each import) covers the deliberate re-import case. The preview's per-row checkboxes, which were never actually read by the import, are gone, and the *New Transactions* count no longer includes flagged duplicates ([#327](https://github.com/otherworld-dev/Budget/issues/327))\n- **Marking a bill paid no longer suggests unrelated transactions as \"existing\" matches.** The *Existing Transaction Found* dialog offered any unlinked same-day debit as a candidate — cigarettes could be presented as a \"match\" for a mortgage — steering people into marking bills paid without recording the payment, the classic source of app-vs-bank balance drift. Candidates now must match the bill by amount or name, a weak match is never pre-selected (the safe default is creating the transaction), and the *\"Don't create any transaction\"* option now states — and warns after — that the account balance will not reflect the payment ([#274](https://github.com/otherworld-dev/Budget/issues/274))\n- **Overdue bills no longer double-book when marked paid.** The scheduled placeholder pre-created for the next occurrence was written as an ordinary *cleared* transaction whenever the advanced due date was not in the future, so it counted toward the balance immediately — alongside the actual payment. Next-occurrence placeholders are now always scheduled, regardless of date\n- **Restoring a backup preserves every bill setting.** The data import dropped most bill fields: custom recurrence patterns (restored bills then advanced one day at a time instead of quarterly/etc.), transfer destination and description pattern, auto-pay, reminder days, tags, split templates, start/end dates, remaining payments, forecast exclusion and the future-transaction opt-out\n\n### Changed\n- The **Match transfer** dialog now also lists candidates from accounts in a **different currency** (any amount, within the date window), so cross-currency transfer pairs — e.g. imported from CSV — can finally be linked by hand. Automatic matching after imports is unchanged and still only links exact same-currency amounts ([#326](https://github.com/otherworld-dev/Budget/issues/326))"}},"signatureDigest":"sha512"},{"version":"2.38.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.38.0/budget.tar.gz","created":"2026-07-07T01:07:19.438764Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-07T01:07:19.535433Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"s/wP/jWqAxqTStZPLKWl/5nyJk/xpeAom+Kp7KakVOdJmzhNv/Z6KM/CUUOrGem4Qj5G1OEZ2tNrPkTneCVvfFU2S5aoayMDgcRaGquqwZisM/4a0KV9Husjq8mV0RVoqco16HBH8PUY+kYsbeWRcSp2q38Zq99L04zb1x5XY1rGe5YdP4/IydUoMpyzTtsGF00Tj6OUAMvlDTnJqCcetscuXX8yo33xm0dUfLxjZD2f9hsn8UTCwNN7v1+yBhwNN4jJsfyGTN+92XV2YDhRCfVWq/3bGqphHo+nYQvbyjndJRcaAwybOquX6MH7+wpDa5wpvNw9xzc2sYNm2FM08SYep3cX7uoXngifGZu2FBqyNHQ198dqEwqJbEVv2DrK5cAnQkbSS1glYYney/uXAlsqLEinHirrShNYRoq+ZEkxUhpdung3zSWwPe0Fd/mWh2chHiTV20A2tCrv7FRuRadpf75bq+y0xuIglVZQy5E1dT2nk3lPUUwB01w/ggmwrJ91hOchPoyoRoDhoBNxZJs903bQejWR/MdZ9pbXVmwxj1EOq8oWfWeQ5B+OEz/LbcplibODsNv6IUIYU++gxK8d2XCVzBgV2ayMqsRxFDxItgluqDcu4oTW8mh3A4z33PvbeCFFMsj2bKFbOslmuT2ZiVl58oTaQRTh61xeKEA=","translations":{"en":{"changelog":"### Fixed\n- The **account selector** saved in the gear settings of insight tiles (Monthly Comparison, Large Transactions, Weekly Spending, Year-over-Year) was silently ignored — the tiles always showed all-accounts data. The saved account now actually scopes the tile's numbers\n- Importing transactions that trigger the **Auto-Link as Transfer** rule action no longer shows *\"Cannot use object of type Transaction as array\"* on the import screen. The import itself always completed — the error came from the transfer-linking step afterwards, which also means those transfers were never actually linked ([#314](https://github.com/otherworld-dev/Budget/issues/314))\n- The **Recent Transactions** dashboard tile now honors its **\"Rows to show\"** setting above 8 — the display respected the setting but the data fetch was hardcoded to 8 rows, so values of 9–20 silently showed only 8\n\n### Added\n- **Edit auto-categorization rules as JSON.** The rule editor gains a **Builder / JSON** toggle. The JSON view shows the raw rule structure — editable and paste-friendly — checked when you save, and switching back to Builder repopulates the visual widgets. A **Copy JSON** button makes it easy to move a rule between instances (category/account IDs are instance-specific, as noted in the view). Requested in [#318](https://github.com/otherworld-dev/Budget/issues/318)\n\n- **Hide shared categories from your own reports.** Categories shared with you gain a per-viewer **\"Hide from my reports\"** toggle on the Categories page. Unlike the owner's \"Exclude from reports\" flag — which stays owner-only because it changes every viewer's reports at once — this only affects your own reports and dashboards; the owner and other viewers see no difference. Applied at the SQL layer through the same choke points as the owner flag, so every report and insight tile honors it consistently\n\n- **\"Exclude shared accounts\" on the remaining dashboard tiles.** The per-tile toggle added in v2.37 now also covers **Budget Progress, Monthly Comparison, Large Transactions, Weekly Spending, Category Trends, Cash Flow Forecast and Year-over-Year** (shown in the gear menu when you have shared accounts). Bills, income and pension tiles are deliberately not included — they show entity data, not account aggregates\n\n- **Clickable spending charts.** Clicking a slice (or bar) on the **Spending by Category** dashboard tile or the Reports page pie chart jumps to the transaction list filtered to that category, scoped to the chart's date range and account. Tiles set to \"top-level only\" include the subcategories in the filter so the listed transactions match the clicked amount ([#317](https://github.com/otherworld-dev/Budget/issues/317))\n\n- **Per-bill opt-out of pre-created transactions.** The **\"Create future transaction for this bill\"** checkbox is now a persistent bill setting instead of a one-shot option at creation. Bills with it unticked never get a scheduled placeholder — not at creation, not after marking paid, not after skipping — and toggling it on an existing bill adds or removes the pending placeholder immediately. Previously the checkbox only affected the moment a bill was created, while every payment re-enabled pre-booking unconditionally, so unticking it never actually opted a bill out ([#311](https://github.com/otherworld-dev/Budget/issues/311))\n\n- **Convert a transaction into a transfer.** The **Match transfer** dialog gains a **\"No match? Create the other side\"** section: pick one of your accounts and the app creates the opposite transaction there and links the pair as a transfer. Until now the dialog could only link two *existing* transactions, which left no way to correctly book payments to accounts that have nothing to import — e.g. a loan tracked as its own account ([#313](https://github.com/otherworld-dev/Budget/issues/313))\n\n### Changed\n- Scheduled (future-dated) transactions now show a **Scheduled** badge in the main transaction list, with a tooltip explaining they are not counted until they occur. Previously only the account detail view had the badge and the main list showed scheduled rows in italics alone, which made a bill's pre-created next occurrence easy to mistake for a duplicate booking ([#311](https://github.com/otherworld-dev/Budget/issues/311))\n- The transaction list **Total** no longer includes scheduled transactions — they are placeholders for money that has not moved yet ([#311](https://github.com/otherworld-dev/Budget/issues/311))"}},"signatureDigest":"sha512"},{"version":"2.37.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.37.0/budget.tar.gz","created":"2026-06-27T23:16:07.784869Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-27T23:16:07.863813Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"FqJ17XG/szTfkAMsF+oCODYGClVjdeGArgFi3SrgeGhg4CFFzIVO98XEnYhxeCnwOcYGivzy0uhe60/Vv7kgml+lIVvRL1EZOxvjOES2KksQ50fqxGZSNz3EL54EA6R3Yvo6uLFBM9cbK0mmY5H+4i3UozKhKwzRa6PJLIZzpBsjtprJXHojWsQMR5KY7WDDbb9yD32uYzMnrXMxOiQ2PZGtG7aIhLS6DzC7Mtp/oLUgyRqBWoYMUWWLLi1qyeOr4/8Tdm9H5I36oxeoX2ZQlVuprpRjDPW5EITrljbyuIPy3CdAFn5tvvt8rkurEgCtPAaMv7gSXRZto6rJJqS4woUqX310+J0re9qa53Ls0J7Kezo5WpENoaFsvT6McjVG/4k6k4YN1/l74p97fFfR+1T2kC5VptpwVz4GZ2aSF9t226Sdkft7sv72aC3oQpa4PN3PIWj113aN2X5nnCGiD+NUW282/yAdacvMWVgB+t+Rbm0FIyWtGnbw0dKAlY3CAmQoBvqX9f2vqn1OFDxJhejg/i7+FAWQD83LIk6u2kNg/N4e2+hgLtO45wd5MU6TLXXTrb1mlikbbiP80Rla1p50fScosYTCqjJfz2lh5U6D2h/nquGHHvhf4R9q7eSkykmELHZUKiUyYlrLrOfiuxGRqaWSQWp9hm0CUog1HBE=","translations":{"en":{"changelog":"### Added\n- **Exclude shared accounts from reports.** When other people have shared accounts with you, the **Reports** page gains an **\"Exclude shared accounts\"** toggle so you can see just your own accounts' figures. The same option is available per-tile (in the gear menu) on the account-based dashboard cards — **Income vs Expenses**, **Spending by Category**, **Top Spending Categories** and **Recent Transactions**. It's off by default (shared accounts are included, as before) and only appears when you actually have shared accounts. Note: a transfer between one of your accounts and a shared account can only be partly seen when shared accounts are excluded, so income/expense totals may be slightly overstated in that case.\n\n### Fixed\n- Saving share settings failed with **\"Some entities do not belong to you\"** (HTTP 400) when the **\"Auto-share new\"** toggle was enabled for a type, or after using **Select All** — the auto-share toggle (which shares the same `data-type` as the entity checkboxes) was being collected as a phantom entity and sent as a null id. Entity selection is now scoped precisely, so share settings save correctly with auto-share on ([#306](https://github.com/otherworld-dev/Budget/issues/306))\n\n### Changed\n- The **Categories** page now also lists categories that have been shared with you, shown read-only with a **\"Shared · &lt;owner&gt;\"** badge. Previously it showed only your own categories, so anyone using a budget made up entirely of shared categories saw an empty page even though the categories worked everywhere else ([#306](https://github.com/otherworld-dev/Budget/issues/306))\n- Categories shared with you at **Edit** permission are now **editable** — rename them and change their colour straight from the Categories page (they carry a **\"Shared (editable) · &lt;owner&gt;\"** badge). Read-only shares stay read-only, and a category's type, parent, budget, report visibility and deletion all remain owner-only ([#306](https://github.com/otherworld-dev/Budget/issues/306))"}},"signatureDigest":"sha512"},{"version":"2.36.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.36.0/budget.tar.gz","created":"2026-06-27T13:15:10.822370Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-27T13:15:10.927058Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"Yxqf1NnAucAiXFVdwVmQJPaPUyuExQ8t/dwv4tDVpFb1kXDtGcIWoAdspiDz+HwdyPe+ul+/2GcDWiLPTF3TvIHwIaV+h+guDRYBEHMY95+Hy5W0BSuwBC7gto5dfsZEhL5xj5OsRIYrY/Fo8Tqj99kVzDK560o9NgI6Bp6ZkQpbwPRbTnbxUX27oF0oDjrg1ArS4IiE4ghZW1ct74Mlv4uoeg5zaVQlucrZK+rBJXixtpDnImHLPMkTvd+1bmkQTFtvArS1A37YkXkLKrKn4pzWvwv/q46ddih1NXBC7o6UoBwP1pWB1OxgNq3/98OdWyPs4GLumMmRdg+7PbY95Go97lBbNc/1mrBB9qQPXirFxYHMZWVDSRHSNRJ9cSMnZA/YzsVeOZOVkIwJWXhC5YGAEN8nq8HKIMBHzmi6UYdGM2VvGPmNZ+K3wlGMIkKlVfWfIJ7XIOCe6OLvQbwR/ATZ7pUyOE+AR21uu27zWGJ4iB4y/eCfCSE8vIxyPW7L0dwkzxU13iNNNxAUQgbNrs8EiQBLQlTCaBWCWp296Dds5nEGMEilQKX9vEXAhY9KRG5dzJjoZhZ14tWA3Hjp+5/Gs2AM4Bh3Rp1OGdhfQhFDmt/2GXcL16lfDcX28K1ub4FPYE8MEz6qDmLhqqwv9FeXQQbT/ZKdQn8NwuOlGFE=","translations":{"en":{"changelog":"### Added\n- **Auto-share new entities.** Each person you share with now has an **\"Auto-share new\"** toggle per entity type (accounts, categories, bills, recurring income, savings goals) in their sharing settings. Turn it on and anything you create from then on is shared with them automatically, at the permission you choose — no more sharing each new bill or category by hand ([#306](https://github.com/otherworld-dev/Budget/issues/306))\n\n### Fixed\n- Code-integrity **\"Some files have not passed the integrity check\"** errors reporting `FILE_MISSING` for `js/.htaccess` and `vendor/tecnickcom/tcpdf/tools/.htaccess`. The app no longer ships any `.htaccess` files — the Nextcloud App Store strips them from the published archive, which left the signature expecting files that were no longer present. Neither file was needed (the JS one only set a redundant cache header) ([#307](https://github.com/otherworld-dev/Budget/issues/307))\n- Deprecation warning in the Nextcloud log — the notifier now throws `UnknownNotificationException` instead of `InvalidArgumentException` for unrecognised notifications, as required by Nextcloud 30+ ([#308](https://github.com/otherworld-dev/Budget/issues/308))\n- Reports and the dashboard summary were empty when a single account flagged **\"Exclude from reports\"** was the only account selected. Accounts flagged out of reports are now only dropped from the **all-accounts** views; explicitly selecting one shows its data as normal ([#309](https://github.com/otherworld-dev/Budget/issues/309))"}},"signatureDigest":"sha512"},{"version":"2.35.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.35.1/budget.tar.gz","created":"2026-06-25T15:28:24.905665Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-25T15:28:25.003967Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"bX/9kwpiVjwDj0f2eU5xNE7zUpt8T/nkGCFg9HnDQoKynM7c1KaXhbh4isVQBbgy5kPGXSDP7DRfuSTYY5/M3PSv1JE8gOk/9lz2AGmTqlXrf4Kgq9oARAGcVHXB955dLvDkj6Vrk7zZ9cwrjq4aMBu02dW8ZgyAHStXybiWmkAbIxK768MHM4n5FXTRFw3P/ELVlDjCxgIpxVxD5EZaaA+n7RrjN9MRY2R8/GN7Og7yijcmnutMWtna4K19B9c3ShcfUkrwotvCUz3c+K10VQSfzUpN6RoindDB0j716jUZQ6IKzXBNNRiOjQ6N6s1MlmKwjyFyw0PY509hJY+dtjBEQBbFjK0pw7ZElfW4zDWteDzWRm7M1VjzUlRgPLsg7CJ980Rg8suZAMh3UH251vymCH0ykpMYqK1qiWDurz5GWdaDov6Z0YkQPQLnszzPa60kbO9VUHrYnG+6+KA6GoPW0EHFEqaUxXv+mRLr8Pm8BhjCiDghO7mlHZFN95hN5gkNyBdIPA9JmXAdnkrJBSQaDvZdejDwFJL+T+PgA2f9JomB8BQ/WkZ4uukyKUUFYToOhntQTe7dfE+I4VsD6BycbY7smaY/xGx6EvyXfntpYkgR7Fe2rYKaxBrcRcnhTmQBeLLz85M7fLKVjME72niQdRIZRaMZ+OmpCxKK2qU=","translations":{"en":{"changelog":"### Fixed\n- Categories marked **\"Exclude from reports\"** are now consistently excluded everywhere, including the **Income vs Expenses** trend, **Category Trends**, **Top Spending Categories** and the monthly spending chart — not just the dashboard summary. Exclusion is now applied in the database query itself, so reports and dashboard insight tiles can no longer disagree about which categories count ([#219](https://github.com/otherworld-dev/Budget/issues/219))"}},"signatureDigest":"sha512"},{"version":"2.35.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.35.0/budget.tar.gz","created":"2026-06-25T00:36:38.221513Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-25T00:36:38.307858Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"F/7pZ4sNzjJuqXXZoHmO+9OmUzkQz6ZDke3vkONfZ2uGfzBpwpDSIiGlfNv6gt40Ho8NTPNd0JuM+ESRohLlPAAftFoF+L4h+asH5s/lncoxgTZevEFl7NE14s+sPVdGdZqXGi0b3mohB+f1jOudpVbgB0bmCDvnZMEKiMSjB7XwH9iQqzu/8WyQNd28w+Bz2TbyAfu2PCtdD6jsmVCbvtCkmEdKOVJzRWuExH+vwvZ0ltX3mtorPl6HEzqKJWoDYG3tdbpSwml6w9F3qj8naVZ3tZYBrfvwABHoMD1LYpYwRss5C9UpJvu6UFfKQ4Xso1tBu5U+tYlAPKLbQ5J70o0C1aP66R+FvL8RlMHpY93duR32qZkT/6xV0NYQpd9xzXoLbB5YkZJuBLV8m3oP9k/pNEy8vwF5Kkb+/6zrJt4aSH/iiAqBoqvuT1itwScYsNpGHXWOrGHioCKiGkcMvamfr7her1fQ42wNiVIVWKaxNtjeYrVjmHCtWA2awjv3XRfcXdcL/4stuDpXxQ0Dnv2S/Ey9ZbGbqpc0DNyPZfKie5/QK5OnHPW9F8nHUsEhxDLbNezo11fKm1ykE0ja4nTZFKL3ml2D4aRDMYQe35MWJvW/fLcNW7dYOV969ZI52G8jTIUI/YphcNfCNK24fVkljrcBSybr8WavbELxVR0=","translations":{"en":{"changelog":"### Added\n- **Pensions revamp.** You can now record a contribution as a transfer **from a bank account** — the matching withdrawal is created automatically and kept out of your spending — and record **withdrawals/drawdown** back into an account ([#304](https://github.com/otherworld-dev/Budget/issues/304)). **Scheduled (recurring) contributions** (monthly/quarterly/yearly) can post automatically or on demand ([#251](https://github.com/otherworld-dev/Budget/issues/251)). DC pensions gained a configurable **projection target** with a progress indicator and a **\"today's money\"** (inflation-adjusted) view on the growth chart, plus an optional **Pension Projection** dashboard card. Bank legs that fund a pension show a **Pension** badge in the transaction list.\n\n### Fixed\n- Background-job \"class does not exist\" log spam that could appear after updating PHP/Nextcloud/the app: the app's autoloader is no longer \"authoritative\", so it falls back to PSR-4 and self-heals if PHP's cached class map is stale after an update ([#305](https://github.com/otherworld-dev/Budget/issues/305))\n- Newly-added dashboard widgets now load their data immediately instead of staying empty until the page is refreshed.\n- The pension detail panel's **balance history** and **activity** are no longer broken — those views called endpoints that didn't exist; they now show a proper balance chart and a merged timeline of contributions, withdrawals and balance updates, each removable ([#251](https://github.com/otherworld-dev/Budget/issues/251))\n- Editing a split transaction with three or more parts no longer zeroes or overwrites the other splits. The last split row is now a read-only \"remaining\" amount (transaction total minus the other parts), and the dialog blocks saving until the parts add up ([#303](https://github.com/otherworld-dev/Budget/issues/303))\n- Spending-anomaly notifications no longer crash with \"The arguments array must contain 1 items, 0 given\" — a stray `%` in the notification text made Nextcloud's translation layer fail, spamming the log every time notifications were rendered ([#305](https://github.com/otherworld-dev/Budget/issues/305))"}},"signatureDigest":"sha512"},{"version":"2.34.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.34.0/budget.tar.gz","created":"2026-06-24T12:34:06.702394Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-24T12:34:06.783649Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"y+Qi2+U6CexZu8i+0DGrbLXwFbp+cHLVW62WRSfrovEAuJrnZy8paqAacEaE570GoHVd1b23Yihz4oDfOYStLASDVFk7xhVrarnlIqv4EH+Jyw0IR2iaLR+IvhJmSZc9N5nQ42i2z8UYetvQo0znzzNPmpT2FEJB1Sty9kCfHL7HiisG4hYwJp528McMVXgCYfn/XOZUQzOVY6rvis1hP8CiFbE4UMUQj/SgDpRjimcRCZy8fsRLgZHcfO2+BKYCSt5lqLDJSzsmewBFNMVWDdtZwPUxqyK8xaTwSnwWNBNXBRg5ZcDLJhhIJtk9cEezVTdJBZTw3wx7iCztR9RFQi9CZsRz9U9S4jLEdcV8m6OTa8XG22s2ZHt+I+hisGtlC1TOQ5fpPfSe9onWdA8jgC68RAFeOLJ+KmSkLQN1bbr9gUw47oB09Yd9sEtUDcFapfv+x9Zl3/s4ExwO6xDS/bwmRyZ/fq1z2jhVu/lMFd//+9ciOrCdty1p7440JVs/sx71Qcc0mRhZsMtIRYyBD2EFceUHx8cQCtOLL99+JtGkTakCMCwIxghuGoXnrq+9mRWjgROn1ysGEHDUyC8ZKCJ5f8TXOllqX2g+2fyOpFzHR66oP7lPwI5y3eW4VYJGT/lQzTavAtU148X2XaBUz+XA8Djuco3CCuGJuT9FhSU=","translations":{"en":{"changelog":"### Added\n- The transaction list filters now include a **Reconciled** filter (All / Reconciled / Not reconciled), so you can quickly see which transactions still need reconciling ([#301](https://github.com/otherworld-dev/Budget/discussions/301))\n- A **Budget alert threshold** setting controls when a category appears on the Budget Alerts tile (default 80% of budget). Set it to 100% to be alerted only when a category actually goes over budget, rather than when it's merely approaching or fully used ([#293](https://github.com/otherworld-dev/Budget/issues/293))\n\n### Fixed\n- Creating a category (or account) no longer fails with \"Unknown column 'excluded_from_reports'\" on instances where an earlier upgrade was interrupted or restored from a mid-upgrade backup. A self-healing migration re-adds the affected columns automatically on update ([#302](https://github.com/otherworld-dev/Budget/issues/302))"}},"signatureDigest":"sha512"},{"version":"2.33.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.33.1/budget.tar.gz","created":"2026-06-18T15:03:48.326486Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-18T15:03:48.401269Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"wGNDwrdOGHhLxiEiJQDsZrcL4BFQbGBTjeDU/3VJql8bIeDBHITKzJ3HH47kV1bFmsZ35q0o7xh/r4q6Kj9/SXM8gQCTxEtQ0q80MS85LGy5+9dUtJ0yBvrLfE6kwpNPDH+kqwBVcAGxmLr9vYau5uTFGdeB0WZ3gmesUvT5kuZfdREwJDQ19QWR40pJjHRcWqM5KnXCT1/wq7btWj9s/Vf9GVQvo85g9R7adODG1PVBr4gM6R9nTgsrn+60BJvNNO5f3W3wbuzvqaJhtVdknB9Z8fc7Vbq6mh6TgSPBmXgiK2VdCAWPaW2EmpVL8iwgOGazPGSajPkMZNNZDhzDNEpLcveJl61g/x5dVAxOevwFnN4CaX5c/YYppjcqtoWyYgoTNMv3enF3///tD0wS68iQzcU5UNmsOOKsAUVvRnf/oOX2b13NfsKPONAxcu4Q/UG8ybPqYwXT+T6Vs+IRmoLJLnOs/BUgbqmmRIG1Wfs2BusDFKNHHWoW1Z5t+GDLGx2cyNci7+rKPRh2seML8iPrt9lNv2M5NjzIJ9Wm0Xt0FKpIetR4gDpLSRvBtINaQ0jVuYVixt1yDKMUfE6GH4sNW9rNi2ZoKptz2MIxouBmLNXezA5Y0gvIlgA11Bi0YBrKPUAtmxNl8Jyxhle2Ll5bZbsupMy1otRB/+NGEOs=","translations":{"en":{"changelog":"### Fixed\n- On some installs an earlier update was recorded as applied but didn't fully run (an interrupted upgrade, or a database restored from a backup taken mid-upgrade), leaving the `excluded_from_forecast` column missing — so every new transaction failed with \"Unknown column 'excluded_from_forecast'\". A migration now re-adds the column automatically on update. (Also surfaced by the new database-error `detail` field added in 2.32.0.) ([#289](https://github.com/otherworld-dev/Budget/issues/289))"}},"signatureDigest":"sha512"},{"version":"2.33.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.33.0/budget.tar.gz","created":"2026-06-18T00:52:16.288760Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-18T00:52:16.375243Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"jj+nUiPNSYYgtQ/7XYIkJNFo8vWIHaX28Q0XTtpN6RWmrW8qrJBIs2jTaaHwebC7SB5f7GP6vQxghh9+nCWfA+KlTKbm8YJg6yzah9xdTLo/JcUhTOinlH9yYoXxMiIY9EVwQLsPmef4sprTsS9oqBeSgZ7S8WRJYnxjAuljee9q0Sfai9AK+RQzBk6kgENhCAVt95ooZ3H5ukfFBSb/kyXa3IU+ngu6g5B9DgiJfBduecdkLEfc0dhYKelUyNaZa61qoG865podTGJFCFqzoSnlCXgRcJqJHjhdTERIeu/nHQAL/PhaPy0OSWK8l+kyrGveMEKDM6LvQ0Eo6B9Ul0ORobundabEat67f/hqaTmnDldOkkEm5a0WAYeQvYeeZCNLtiF26pWk66v6eQhXsrT6IwcJ/gxaC6oS8URm5yYub2iW9nVq6uZXRMJavJr8CmYl7MSqQRVvFKGlwHvD7X+YfEs+htKGYM017iWdICfQv/wbGi5JzIxqdm7QKrV9EGxgl4GFWvY/cyGZt4awfhoy4RljlFtsfJ02askgVFUloVGKOWeqZ5NbqXMDC+UonPONQ/RPM64u0L3NdVvmcXOwA8RBHCg1qgEiVkDBSsJyhK55+1J7Yn5fIC2emSU0BXOdzSFgg3BgUbYJQHgH30AwNf1iagO/WBOYDSu4jqs=","translations":{"en":{"changelog":"### Added\n- **Run reports on multiple accounts at once**: the report Account filter is now a checklist — pick any set of accounts (e.g. all your credit cards, or all your checking accounts) or \"All Accounts\". Applies across the summary, spending, income, cash-flow, category-by-month and year-over-year reports and their CSV/PDF exports ([#299](https://github.com/otherworld-dev/Budget/issues/299))\n- **Saved reports**: save a report's settings (type, period, selected accounts, tags and options) under a name and re-run it later from the \"Saved Reports\" picker in the Reports view. The period is stored as the chosen preset (e.g. \"Last 3 months\") so a saved report always shows up-to-date data ([#299](https://github.com/otherworld-dev/Budget/issues/299))\n- Dashboard tiles that can be scoped to a specific account (Spending by Category, Income vs Expenses, Net Worth History, Recent Transactions, and the other account-aware widgets) now show a small label in their header naming the account they're analyzing — the account you picked in the tile's settings, or \"All accounts\" ([#296](https://github.com/otherworld-dev/Budget/issues/296))\n\n### Fixed\n- The Reports period selector didn't drive the report on reopen: the dropdown kept your last choice (e.g. \"Last Year\") but the report always reverted to \"Last 3 Months\", and clicking \"Generate Report\" used the reverted range instead of the shown period — you had to switch the dropdown away and back. The report now always matches the period shown in the selector (custom ranges are preserved) ([#300](https://github.com/otherworld-dev/Budget/issues/300))\n- The Quick Add Transaction dashboard widget couldn't be used on mobile — the lower fields and the \"Add Transaction\" button were clipped off the bottom of the tile, so a transaction could never be submitted. Its form is now condensed (each label sits beside its field with tighter spacing) so the whole form fits the tile, and it falls back to scrolling within the tile if it's resized very small ([#298](https://github.com/otherworld-dev/Budget/issues/298))\n- Editing a split transaction's amount (e.g. inline in the transaction list) left its splits at the old amounts, so they no longer summed to the transaction total. The splits are now rescaled proportionally to the new amount (the last split absorbs any rounding remainder)\n- In the edit-transaction dialog, changing one split amount now adjusts another split so the parts keep summing to the transaction total, instead of silently drifting out of balance\n- Split transactions weren't counted toward category budgets or spending. When a single transaction was split across categories (e.g. one $1,000 payment split into rent, parking and a deposit), each of those categories showed $0 spent. Split allocations now count toward category spending everywhere it's shown — the Budget view, the Spending by Category chart, and reports ([#297](https://github.com/otherworld-dev/Budget/issues/297))\n- Large amounts (e.g. values over 100,000) on the dashboard hero tiles (Net Worth, Income/Expenses This Month, Net Savings, Cash Flow) wrapped onto a second line, splitting the number mid-digits. The amount now stays on one line and its font scales down to fit narrow tiles instead of wrapping ([#295](https://github.com/otherworld-dev/Budget/issues/295))\n- The \"Asset Value History\" dashboard tile (and \"Net Worth History\") showed its empty-state message anchored near the bottom of the tile instead of vertically centered. When there's no data the message now fills and centers within the chart area ([#294](https://github.com/otherworld-dev/Budget/issues/294))"}},"signatureDigest":"sha512"},{"version":"2.32.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.32.0/budget.tar.gz","created":"2026-06-17T15:02:17.039086Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-17T15:02:17.121877Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"NKgPUY81JziKewMWFs4QeLNIwZ8JqGBZ6wvFlsItL4R47yoDLAn4+I1T/pwgEOi7KR2lCUFBckiAdI78FONIy+JyCFhY0w4WcGEltsQdsytRMQYAggOWw+OlYvlDMPI6zoMoRfVcIvC3d+4pUrP91cJIVwi+bu5OIYO0C7ErDFCyvMlHK+ifsGvBluQJ377z8wnBUQIWSfudOuXewIyBHCF1QXsRXsVe0CIGWPNnT3ibuwxjm92a4vzwqdTEYy2qQwzPgYWPhgZofSdEN6j08iuwUzM0i9yXWd0IVpRNLb8RIo9lTzhJsjolrNFGZd0iiQk5A/4NQ6VOLKItVhwXJKOZk7KzyYTZmEki+PaeHKSEjEzwYNqv2tL4VPrBjyq5Y3bRTnYS3uBBCOnkWwn6ozQ4PitvSgPpcqciCtrP1hYAa0oQ7FsP8+BVsepO8gn8+lIcVjx7mW+YvufESAyFRXgAy61QBNjcd34vtoEfLqhdP4f37gZ/jdmCicDQ3sLw/eUIL98BylXmNvOge43vnYuRgGl9gBO11ENaP3EhqhqsrVr5Gyu07MGlMhCRlBn21fRN5sMORHFNx6pL/DcpwC0xtpfWEtHTCcEcLvArqfSiQSMrJaDvqftcQNMWYt4hGZKMVR7SYZsAragHUiMfvWDu1mW7HLNsW8PwySZDrHA=","translations":{"en":{"changelog":"### Added\n- **Category by Month report**: a new report (Reports → Category by Month) showing income and expenses per category broken down by month, with a column per month and an overall total. Categories are listed alphabetically with sub-categories grouped under their parents, and **parent rows include the totals of their sub-categories**; a toggle switches to sorting by total instead. Defaults to year-to-date, follows the report date-range and account filters, and exports to CSV and PDF ([#288](https://github.com/otherworld-dev/Budget/discussions/288))\n\n### Changed\n- API errors caused by the database now include the underlying driver message (e.g. a missing column) in a separate `detail` field of the error response, visible in the browser's network tab. The user-facing message is unchanged; this makes problems diagnosable on managed Nextcloud instances where admins can't read the server log. The executed SQL and any bound values are stripped from the detail ([#289](https://github.com/otherworld-dev/Budget/issues/289))\n\n### Fixed\n- The dashboard \"Budget Alerts\" tile showed a red \"exceeded\" alert (with \"0% over\") for a category whose spending exactly equalled its budget. Spending that fully uses the budget without going over is now treated as a \"100% used\" warning, not an over-budget alert; only spending that actually exceeds the budget shows as exceeded ([#293](https://github.com/otherworld-dev/Budget/issues/293))\n- PDF reports rendered non-Latin characters (Polish, Cyrillic, etc.) in account/category names as \"?\". The PDF exports used a built-in font limited to Western European characters; they now use an embedded Unicode font (DejaVu Sans), so names display correctly. Applies to the budget report, bills-calendar and year-over-year PDFs ([#292](https://github.com/otherworld-dev/Budget/issues/292))\n- Marking a recurring transfer as paid showed a success message but created no account entries. The Transfers screen was only updating the transfer's \"last paid\" date instead of calling the mark-paid action, so no transactions were recorded; it now creates the paired transfer transactions like the Bills screen does ([#291](https://github.com/otherworld-dev/Budget/issues/291))"}},"signatureDigest":"sha512"},{"version":"2.31.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.31.0/budget.tar.gz","created":"2026-06-14T19:05:15.911903Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-14T19:05:16.004604Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"CseRrf2b0tfseaK8cBqqPjA8lhMT1C+aq6xVuP6vO3E6sRzawwkPNHdfK7CDaOro2TYW+agvm4g873WzOGVLIVa3FHEyFlnGRkFSwMz334bq1/Rcbw2WXdMbNUliZwdK76DNCauZ0JPz8FYIXr5cqkqbw80oHD/SWhWD5dTKRKJ2gpSvbNtXJfq32Sn04UVxrJq4StY11b5rJfCXR7P7RQxmFboIYJvhoVIfcebR+vighFLC9adkKVaF/xJ8tm1MVG6oJHJ4zKU87SV3+D8vB1xpxeWo2xRwseYSwg8Nk3ik6iXkcf4cHTACrCGyHhOXgCmltGkJ441alZ8kzOQCDe6Vw3Rx+zzgducfZGOQJPuIYcrpyZAAgN51xtDQJTWJNoT9jBrUmEv0r/ftZWj8QYnesnl8HgXUQPdLCsCaloLpISXkt7KzlHYlt4PgdMphbDBnuMROrXZtTeIwDCzwGAkatsK+l8HnM+FbMlpfszT7Ki1z2HYX/d+74aLRxkNUClx3fsQsxOtd0RxK9+/JPHW+W5Sv5kWbRSfiUrslL+pT7R15L9x4t3nFK8VUUEZSDcNynhSHxCVqrqOsV3mZ12eutyvQEPpN56qyLkaZmcoxOlOD2v4BKba8pBAL6YW05jx8hBWg9m0zAg4h3/qoA6zLDRrVfHi+LvUiiE1YDWs=","translations":{"en":{"changelog":"### Added\n- **Exclude an account from totals**: a per-account \"Exclude from reports, dashboard & forecast\" option (in the account's edit dialog) keeps the account fully tracked but leaves its transactions and balance out of every \"all accounts\" aggregation — reports, the dashboard, forecast, net worth, total balance and category budgets. The account still appears in your accounts list (with an \"Excluded\" badge) and on its own detail page, and selecting it explicitly in a report still works ([#286](https://github.com/otherworld-dev/Budget/issues/286))\n\n### Fixed\n- The account detail page's overview tiles only counted the transactions on the visible page (e.g. \"50\" for an account with 1,603). \"Total Transactions\", \"This Month Income\", \"This Month Expenses\" and \"Avg. Transaction\" are now aggregated server-side over the whole account, so they're correct regardless of paging ([#285](https://github.com/otherworld-dev/Budget/issues/285))\n- The dashboard spending chart's \"Total Spending\" figure (and each category's percentage) only summed the top 10 categories shown in the chart. It now reflects spending across all categories\n- The CSV import preview's \"Auto-categorized\" count was estimated from a 50-row sample and could be wrong for larger imports; it's now counted over the full file on the server\n- Editing an existing bill failed with \"Failed to update bill\" — saving the edit dialog (whether or not anything changed) returned a 400 error. The bill's start-date column, added with the limited-term bills feature, was missing from the list of updatable columns, so the always-sent start date was rejected before the save could run. Bills now save correctly, with a test guarding every persisted column ([#284](https://github.com/otherworld-dev/Budget/issues/284))\n- Opening an account's detail page returned a 500 error (the reconciliation-history request failed). The reconciliation controller was missing a trait it relied on, so it couldn't be constructed and every reconciliation endpoint failed; the account page surfaced it via the history sidebar. Now fixed and covered by tests ([#283](https://github.com/otherworld-dev/Budget/issues/283))\n- Starting an account reconciliation failed with a confusing \"The string did not match the expected pattern\" message (most visibly on Safari). The root cause was the reconciliation controller failing to construct (the [#283](https://github.com/otherworld-dev/Budget/issues/283) fix above resolves it); on top of that, the reconciliation screens now read error responses defensively, so any failure shows a clear message with the HTTP status instead of an opaque JSON-parsing error ([#287](https://github.com/otherworld-dev/Budget/issues/287))\n- The Budget Overview dashboard widget (and the digest, spending-anomaly and bill-reminder notifications) always showed amounts in US dollars regardless of your configured currency. The server-side amount formatter was reading the wrong settings key and falling back to USD; it now uses your default currency\n- The Budget Overview dashboard widget's \"Total balance\" now converts multi-currency accounts to your base currency instead of summing different currencies under one symbol (currencies without an exchange rate are excluded from the total and named)"}},"signatureDigest":"sha512"},{"version":"2.30.2","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.30.2/budget.tar.gz","created":"2026-06-13T18:03:51.447327Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-13T18:03:51.530362Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"RXpaKwi4ViRdeYM6mjC3JtrlDOFrm03LMBFc2gQMktdYfBEoyMrW3YBp+DPKezxnLOmETNnqjXAI+oswcQLQMkRbAcjuD1dpBBZi7x8kmvtc0lZUcrKRw2QKUzDD5luZaN7JE14o393XlPFxdqkaUbJvWTltA5xK/XO2H72GyvEO7/7de7HCcP2G4XTK5kGSeP3PHRNQ5MjiB49QlM7D95p7Od374Fbr0k52h0sWFHSA14LgJSyPXCgHxxJMqVy7O76LlS1Iedg8B4TFBbTJZVol/8emaHjBHvEwVVzSIIkr9wdtZ60aqrEhJfTqaRwdGS0ks53VE2ROoE829Jnc3Xkz4Xxc0WEqH5a4vxbUWnA8NbuaFNAsUcfXW+0TDTUeLT34IV8c6GZkwn0z4a1parjkif0yyEolfPhNomKX/JMl74aSG5i2BkKyDH3OXMg9oC0/czhOIxluUuFCwWJyd6cBOGd6r/R382SMMe+mCHDpuBxIY12gRo4bzcAfmYMQ3e6rrtgpFwxBllUaK8lC+yPy9x9502QHhZem922Tz7HokfuXuFxh1x9Z6doBSvoZOe2H2PIKRupmFf4I9epoRYdDQZjatpZpN3+oZnz6DmY7f9+g3gaZ7Dl9dkPydm96203Pox5SGz9vhOQaXeOIw+l+rLnXnbodzB3eyqz11Ig=","translations":{"en":{"changelog":"### Fixed\n- Dropdowns in the transaction list (the column-configuration gear menu and the in-cell category/tag/account editors) were cut off when the table had only a few rows, because the table area was shorter than the dropdowns. The transaction table now fills the available height, so every dropdown has room to open in full ([#280](https://github.com/otherworld-dev/Budget/issues/280))\n- The Tags column couldn't be shown/hidden — the Show/Hide Columns menu was missing a Tags entry, and the column wasn't wired into the visibility logic. Tags can now be toggled like the other columns ([#281](https://github.com/otherworld-dev/Budget/issues/281))"}},"signatureDigest":"sha512"},{"version":"2.28.3","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.28.3/budget.tar.gz","created":"2026-06-12T01:14:37.500850Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-12T01:14:37.564847Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"fa7u8mWcwya82OCYZOh+XZFPRJH94oqiBM5WUtEtvU3Dh6Lq+pMs8A7e2aCOa0Y6AbwWH7TF6ZRtwanfSh2PjQMwAaDFlR5anBdAvr89L/fn3eK0uSrZetqNGmAT7Itlc0mT5KowbTvtWDRdK46oR4jjqgXKay6JeO7caGbAcKmyfhJARbfTXsb5etz/yhMX72X33ayUYtCo8nQrtxLTGO5AAPIcFbq1pa3W3d1SHuQ7Ibksv3WXrZe79ngT4pQpGp6xtz3ervqo86vrI8qH8DDg6g9IJE8D1iseOiVzRv/KI/N06LnY0OvUHNZwGrJph5Jh3BrYg2/5rSYzEP5VzaGyZm+AS0DO1bXf9BC5OqbRl3s/FsM+4UgowriYD0S2Zwc4/2j/W3mDRjOdGf0MJxd8SOxv7uW2P5JL0TImjA7mTgppSipw1ShGTl8BU7q11cCtFmuCmwGfvPlRLQtMqEdr93gNkY84rAja08K9Ro1/ySZtrEWVRh/lYzQqmpazsjlw1V4x+KYtn65LHr9Zxd46ToleV5kv1tEZJ1u7nFXeNnrfThyz78EqvLbVxzcqphrfrImGOD9/VhUwryM58KtVz7+tXmLjn3SsSmM8sz9DEljbEKK4zTV9mQgIxviGwzNuIGEFD+HaW6HRIsAzRNtXow5oT7Kgpqa3BnJ3HxM=","translations":{"en":{"changelog":"### Security\n- The recurring-income update endpoint no longer passes the raw request body through to the entity layer — a crafted payload could previously set internal fields such as the owning user (mass assignment, integrity only — no data disclosure). Update keys are now allowlisted like the other endpoints\n\n### Fixed\n- Auto-derived recurring budgets (#269) are now consistent across **all** surfaces: the dashboard \"Budget Remaining\" hero, Budget Progress/Breakdown widgets, Budget Health score, and **budget alerts** now apply the same recurring fallback as the Budget view — a category funded only by recurring bills can now trigger alerts and is counted in headline totals\n- Auto-derived budgets now respect bill start/end dates: a bill that hasn't started (or has ended) no longer counts toward today's budget, avoiding double-counting during a planned cost change ([#268](https://github.com/otherworld-dev/Budget/issues/268))\n- Recurring income summaries (Income view header, dashboard Income Tracking widget): semi-monthly income was counted at half its value, and a one-time income at full value every month until received\n- Transfers page monthly total: semi-monthly and semi-annual transfers were converted incorrectly\n- Live forecast cache: cache invalidation never matched the stored key (changes such as toggling \"exclude from forecast\" appeared to do nothing for up to 5 minutes), and the cache key ignored shared-account visibility, letting a share-restricted viewer briefly see the owner's totals\n- Editing a bill's amount without updating its split template is now rejected when the stored splits no longer match (the payment would have silently imported unsplit and uncategorized); setting a split template via the API now clears the bill-level category, matching creation\n- Multi-account import partial failures (e.g. a deleted destination account) are now reported in the UI instead of masquerading as a full success\n- Import preview now also flags repeated bank transaction IDs for accounts that will be created by the import\n- Long OFX FITID hashing threshold raised so every previously-imported FITID keeps its exact ID (re-import dedup continuity)\n- Auto-derived category budgets ([#269](https://github.com/otherworld-dev/Budget/issues/269)) now handle every supported frequency correctly: semi-annual bills were over-counted 6×, semi-monthly halved, custom-schedule bills counted every month, and one-time bills inflated the budget monthly until marked paid (now excluded). Frequency math is delegated to the shared calculator, which also gained the missing semi-monthly conversion\n- Auto-derived budgets no longer apply to past months — they reflect today's recurring bills/income and were rewriting history (including overriding explicitly-zeroed snapshot budgets)\n- Multi-account import: an invalid destination account mid-import no longer aborts the batch, and deferred balance recomputes now always run for already-imported rows\n- Bank sync: the post-import balance recompute now keys on transaction creation, not the import counter, so a row persisted just before a non-fatal error still gets its balance update\n- The scheduled-transactions background job now recomputes balances from the ledger (it was the last remaining hand-computed balance delta, and could race concurrent imports)\n- Import preview now flags a repeated bank transaction ID (OFX FITID) within one file as the duplicate it is, matching what import actually does; per-account preview counts include rows that will import with skip-duplicates off\n- Marking a bill paid by linking an existing transaction now warns if the link silently failed (no money movement recorded)\n- Extremely long OFX FITIDs are hashed to stay within the import-ID column"}},"signatureDigest":"sha512"},{"version":"2.28.2","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.28.2/budget.tar.gz","created":"2026-06-11T18:33:40.819022Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-11T18:33:40.963053Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"kx2VkgWxozCE2LPp/nzgQQiqFxk/83sOdycv738Ly/uEwn/MhxF/kNtBlP4DMQbhmtkcHdt+kDIlQK1S5q1WHJWZQxjLc/ZCkj/ZEPkNBrDhHwdQCRh4TsRVJyfrIxXUTOCAKJLYk+0DXlnJB3kMhR81adns3wWNH9RkC4b62k3gXtzMR4n+jz/QJDGEAOXRpDUzxEm2TKqFot6sGRt3u0+rVo0bng6nogDJha0APeFI5Ujt+3mECw9MlxNt9nKbQlIGjAnraLVUFz0bXNLK7dbBS3PSzjLsUxhoNhAqMivfHEfLViOvIlCFNHzoWGxFnHK0flI2zJXUlOnaidOEyfhZWbqNpHZL4RZLIZWYQaztJgATNsK+L5aO0Md+Np1hgE8jkdY90gugiV06JqoPEWqCo/qSyaO9N3xYpeXrwfiL37JJqkigwg69RZN3OD1DfBT8ue7QlhT93dfg+39ERzbVY9QBu0gT+bwIs8tyE1MVXOaSjHKUkHab5dpGU3NQhvu/E1CO1BWA3dYvUUqvrvXKB96gm7IqNQEAkRi4JJHDPGtgzjERM+k8z/JA2xeJmPp7V3TZ/1WiKOoKMPz88soCJBMuj/LWnSpekLAGo4RJDy1JBlOm835e3ieJFVHwIwqG9YP7oRB/puFvYV6aaEXCnSkUcZV+z+2NXmHB8KM=","translations":{"en":{"changelog":"### Fixed\n- Dashboard could render half-empty (hero tiles only, widget grid invisible): a Chart.js resize on a hidden tile's detached canvas threw during initialization, and the widget grid was never revealed. Chart resizing now skips detached canvases and the grid is revealed before the resize pass. Likely also behind \"nothing happens\" reports after certain actions ([#273](https://github.com/otherworld-dev/Budget/issues/273))\n- Dashboard tiles with a saved account selection pointing at a deleted account (e.g. after factory reset + import re-numbered accounts) no longer error with 404s and stay empty — stale selections fall back to all accounts\n- **Account balances are now derived from the ledger instead of running deltas** — the root cause behind every historical balance-discrepancy report (#3, #89, #124, #163, #187, #194, #274). The stored balance was a running total that each transaction code path adjusted by hand; any missed or mis-signed delta corrupted it permanently. Every transaction create/update/delete (and retroactive rule run, repair action, import and bank sync) now recomputes `balance = opening balance + net of non-scheduled transactions`, making drift impossible and self-healing past inconsistencies on the next write. A one-time migration backfills the opening balance so **displayed balances do not change on upgrade** ([#274](https://github.com/otherworld-dev/Budget/issues/274))\n- Marking a bill as paid now warns loudly when **no transaction was recorded** (bill without an account, or transaction creation failed) — previously the bill was advanced silently and the account balance never reflected the payment, drifting from the real bank balance every cycle ([#89](https://github.com/otherworld-dev/Budget/issues/89), [#274](https://github.com/otherworld-dev/Budget/issues/274))\n- The app's own export→import now preserves transaction **status** (scheduled transactions no longer silently become balance-affecting after a migration) and restores the opening-balance invariant for imported accounts\n- \"Skip Duplicate Transactions\" off is now honored: previously rows whose import ID already existed were still rejected deeper in the stack (duplicate-ID guard + unique index), so parts of the batch silently failed to import. Intentional duplicates now get a uniquified import ID and the entire batch imports ([#275](https://github.com/otherworld-dev/Budget/issues/275))\n- Import duplicate detection no longer gives false positives for legitimately identical rows — e.g. two same-priced purchases on the same day with the same description. Identical rows within one file now import as distinct transactions (occurrence-aware import IDs), while re-importing the same statement still skips everything it already imported. Re-importing an older statement also recovers transactions the previous logic wrongly skipped ([#276](https://github.com/otherworld-dev/Budget/issues/276))"}},"signatureDigest":"sha512"},{"version":"2.28.1","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.28.1/budget.tar.gz","created":"2026-06-08T12:13:13.351876Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-08T12:13:13.419965Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"XdUz/Pc10uA7L3R+vTa/cI52W9X8nDyH33zElCWeS/xWeYgonfr0GwLhn4ywE7rtUQF8e1Y8GhETbSd60otnPduP+4rXp7+5+b+iMTa3qfYi6gAd3Y1YJJrZqK0yx2Fdqld/nhQLfFpVkUSQl/JQ78RZanEh779Af5RejNl7lolRlJYg7ZNrLrFasWrpyrLNsg4+Tf74/vMpKWDXf0FEIqjnXZ0LKJm7Yjig4uazy+a5vDcDOrfq6fLU56d9ML/jBJK+9A2loT3I5HP7H2cngdLpwk6+MNLiYQDsdNzLGJJK9TK4hn0Cj+AV80mAQ45beagh4H0SmEoDTPvR/hC7LLlU5rtioE1Rg1tCvlZfHBuPcH9LZMq11Q3HVbZnvzkTdG3lKQlKeFhP86QOIjiAg1Frm0yuOt4nMSdG36N+k1C5szF7HrCoH+u1XgdY6fKI6WW71RkqXJ2IhwOorxcijLVQc2l3wyDLqoQrHtJA2yWGsI9NXlq+d5ZLJ03T7xvcLBPgSDTz91KqBABqJYRdCGhzAuQPe9M814mDu5XgdoCJNUKNrAl6YGvLvJXyj5j8I09qImqsQx09AmEBxi8YTZDbxuO8U/g3yKO14aBgGu3Z+v8+h6xyqJyNsPEbHHxpjfSbwAF/9FlvjA64nOTqPam3fPOjZAdqne5bgf05gFY=","translations":{"en":{"changelog":"### Fixed\n- Install/upgrade aborted on **Nextcloud 32 and earlier** with *\"Primary index name on `oc_budget_import_templates` is too long\"*. The `budget_import_templates` migration created its primary key without an explicit name, so Nextcloud derived a default name and hit the Oracle-compatibility identifier limit (the unprefixed table name is exactly 23 characters). The primary key now has an explicit short name. Thanks to @TheUnderdev for the report and fix ([#272](https://github.com/otherworld-dev/Budget/pull/272))"}},"signatureDigest":"sha512"},{"version":"2.28.0","phpExtensions":[{"id":"bcmath","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/otherworld-dev/Budget/releases/download/v2.28.0/budget.tar.gz","created":"2026-06-07T21:59:00.767115Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-06-07T21:59:00.838223Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"iQMjVEdG/FWcc56MAPwvDd04E0ERl5pUWkrRWtdYdgbboBj0+7YAo+rDODFz5qC3EPqWBr7XRkjXOfvn9+m61v0w88Qy8SZQIZRHTAwRJuK5jDQbpfce5dropQgKW8btEIzI3BPE+DFBIDeV+qLNQEYT25ApMkUAz44PumVV0sJMibCGo0JBgIxHCPyem1NNjYaX3qQDt41eg8I5rH8wLCWGa7lNTtGyp8vaJ4ck0sh4J9sPuVzMdJoXQDHfGe5S8YY3GTwgvwyloNJQAFO+SQzm5WX6mC/IKAfpxwG82cQAEMm6B4geyHwaYGSFDEgrBuHOZj2fQmvQgzoarRN+U76bOhjQI0IqU76Pno3qM17eF+UKW8peDiqFBXpepGYfDoeyjQsF2GqxIK3C0bNUR5bp9RjNxkWckwvS2ihvP/2rg4lr05MuDDmIdBYG9Ny+PT9dEWBssQkXzIVX28Ox6P8xkorH0n5EoSRl3j+KMXbM34QteNMt1+jgsHAxcS8H57CwV3MC0uqZnhxUu/LbwIGHzvKbC6vN3F/3l6F+35rWM7UaQhdvr2W/1q5Swj5F2sp2Bq5jgrxbWIuUB9+pzftASgVUEmtd6blOUlJuuJj1wmaIrA9jx21+Bg8t/OmrQqB97ZHzint0WTdo7KTOviKZGnoZVXeoQthPmSyW7Wc=","translations":{"en":{"changelog":"### Added\n- **Shared savings goals** — share a savings goal with another Nextcloud user. Recipients see a \"Shared\" badge and can view progress; with write permission they can edit the goal and add money, while only the owner can delete it ([#255](https://github.com/otherworld-dev/Budget/issues/255))\n- **Auto-derived budgets from recurring items** — a (sub-)category with no manually-set budget now shows its committed recurring total (active recurring bills + recurring income, normalized to the budget period) as an automatic budget limit, marked \"auto\". Typing a value always overrides it ([#269](https://github.com/otherworld-dev/Budget/issues/269))\n- **Exclude extraordinary/one-time items from the forecast** — a per-transaction \"exclude from forecast\" flag (with a \"No forecast\" list badge), the same flag on recurring bills/income (propagated to generated transactions), and a matching import-rule action. Flagged amounts still affect your balance but are kept out of the projection averages ([#270](https://github.com/otherworld-dev/Budget/issues/270))\n- **Reusable CSV import templates** — save column mappings and import options and reapply them to future imports ([#247](https://github.com/otherworld-dev/Budget/issues/247))\n- **OFX/QIF import account routing** — route multi-account OFX/QIF files to the right Budget accounts, remembered across subsequent imports\n- **Bank sync: pending transactions** — option to import not-yet-posted (pending) transactions, automatically reconciled when they clear ([#257](https://github.com/otherworld-dev/Budget/issues/257))\n- **Bill start dates** — a bill only occurs on or after its start date, making it easy to change a recurring cost mid-year by ending one bill and starting another ([#268](https://github.com/otherworld-dev/Budget/issues/268))\n- **\"Shared with me\" expenses view** — recipients can now see expenses that have been shared with them ([#248](https://github.com/otherworld-dev/Budget/issues/248))\n- **Dashboard period indicator** — chart tiles now show a read-only indicator of the period they cover ([#250](https://github.com/otherworld-dev/Budget/issues/250))\n\n### Fixed\n- Dashboard now collapses to a single full-width column on phones, independent of your configured desktop column count ([#249](https://github.com/otherworld-dev/Budget/issues/249))\n- \"Excluded from reports\" categories no longer appear in the Budget view ([#266](https://github.com/otherworld-dev/Budget/issues/266), [#267](https://github.com/otherworld-dev/Budget/issues/267))\n- Category spending chart shows income as positive with the correct label ([#265](https://github.com/otherworld-dev/Budget/issues/265))\n- Tag-linked savings goals now sum net realized contributions (credits minus debits, excluding scheduled) ([#264](https://github.com/otherworld-dev/Budget/issues/264))\n- Recurring income description is now persisted on create ([#263](https://github.com/otherworld-dev/Budget/issues/263))\n- Transfers are now excluded from dashboard income/expense totals ([#262](https://github.com/otherworld-dev/Budget/issues/262))\n- Account Breakdown report now uses each account's own currency instead of a single assumed one ([#256](https://github.com/otherworld-dev/Budget/issues/256))\n- Fixed a PageController crash (TypeError) on unauthenticated requests ([#259](https://github.com/otherworld-dev/Budget/issues/259))\n- Quick Add date field normalization on iOS ([#235](https://github.com/otherworld-dev/Budget/issues/235))\n\n### Docs\n- Documented the standalone Quick Add page and the iOS home-screen workaround\n- Noted that GoCardless no longer accepts new bank-sync sign-ups; EU/UK self-hosters without an existing account are pointed to manual import ([#271](https://github.com/otherworld-dev/Budget/issues/271))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL290aGVyd29ybGQtZGV2L0J1ZGdldC9tYWluL3NjcmVlbnNob3RzL2Rhc2hib2FyZC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/otherworld-dev/Budget/main/screenshots/dashboard-thumb.png"}],"videos":[],"translations":{"en":{"name":"Budget","summary":"Simple budget tracker and forecaster","description":"# Budget - Financial Tracking for Nextcloud\n\nTrack your spending habits, manage savings, and forecast future account balances with intelligent analysis of your financial history.\n\n## Features\n\n* **Import Bank Statements**: Support for CSV, Excel and LibreOffice spreadsheets (.xls, .xlsx, .ods), OFX, QIF and ISO 20022 camt.053 XML formats, plus exports from Firefly III, YNAB, Actual Budget, Mint and Monarch Money\n* **Import Folder**: Drop a statement into a folder in your Files and it is imported in the background, or held for you to review first\n* **Bank Sync (beta)**: Pull transactions in automatically through GoCardless (UK/EU) or SimpleFIN (US)\n* **Smart Categorization**: Automatic vendor matching and transaction categorization\n* **Auto-Categorization Rules**: Apply rules to existing transactions anytime with preview\n* **Split Transactions**: Allocate single transactions across multiple categories\n* **Transfer Detection**: Automatic matching of transfers between accounts\n* **Statement Reconciliation**: Tick transactions off against a bank statement until the difference reaches zero\n* **Receipt Scanning**: Attach receipt photos to transactions and, once an admin sets it up, read the amount and items from them (OCR)\n* **Android App, Quick Add and a Public API**: Budget Companion for Android (on Google Play: https://play.google.com/store/apps/details?id=dev.otherworld.budget) to photograph receipts and check your balances, a fast entry page for your phone, and a REST API for scripts and automation\n* **Budget Tracking**: Set spending limits with alerts when approaching or exceeding budgets\n* **Rollover Budgets**: Envelope budgeting, where unspent money (or overspending) carries into the next month\n* **Project Budgets**: One budget for a job that runs over months, such as a renovation or a wedding\n* **Balance Forecasting**: Predict future balances based on historical data\n* **Recurring Bills**: Track bills with due date monitoring and Nextcloud notifications\n* **Subscription Detection**: Spots payments that look recurring but are not tracked yet, and turns them into bills in one click\n* **Recurring Income**: Track expected income sources with receipt tracking\n* **Split Expenses**: Share expenses with one or several people and track who owes whom\n* **Debt Payoff Planner**: Plan repayment using avalanche or snowball strategies\n* **Savings Goals**: Set targets with progress tracking and achievement forecasting\n* **Pension Tracker**: Track retirement accounts with growth projections\n* **Net Worth History**: Track assets and liabilities over time\n* **Year-over-Year Reports**: Compare spending across multiple years\n* **Money Flow Report**: A Sankey diagram of where a period's money came from and went\n* **Digest and Unusual Spending Alerts**: An optional weekly or monthly summary, and a notification when a category runs well above its usual level\n* **Scheduled PDF Reports**: Last month's report saved to your Files or emailed to you automatically\n* **Multi-Account Support**: Manage multiple bank accounts and currencies\n* **Custom Categories**: Create your own category hierarchy\n* **Reports & Charts**: Visualize your financial data with interactive charts\n* **Getting Started Checklist**: A first-run checklist, with sample data to explore before adding your own\n\n## Documentation\n\nFull user documentation: https://budget.otherworld.dev/docs/\n\n## Requirements\n\n* Nextcloud 30 or higher\n* PHP 8.1 or higher\n* PHP BCMath extension (`php-bcmath`)"}},"isFeatured":false,"authors":[{"name":"Adam Morgan","mail":"adam@otherworld.dev","homepage":"https://otherworld.dev"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhNXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjAzMTA1MDE5WhcNMzYwOTA4MTA1MDE5WjARMQ8wDQYD\nVQQDDAZidWRnZXQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDNKchk\ngsYxcNMufIP/m82JAeIA/fFibi4mGwKEkXwWLXDDAMiwaHmrpkCcC7BYNw0iOk/K\n/xYMlEw738UrhQtu5PHAi/fecIAwh7H/ij7jGcwROe7cOcwK0sdmT76po8Ry4Of0\n1wE8f+/Rmw9+rRPLE5dRluuHhiO0Eg6pO+KnqxgWID7CY4Ij7xuQtyUsYKkArjEq\nirooV6OPmvQHDyQHMbgKhYr+47LZZ0YuNzZd0jhd5JIMWXV6aUgW9R23c9T7JgMG\npPOhHSWxZOBlRWzRVtCEzSug3J39n9eZqVP1PFIZI/pq0mOOt7LTz5IUX0xF0lJ+\nJM7lPsTuJibESiWXKo9neTvy9BUWDIV9D/i8CH1uz0+xVala0uQRSNbrdWV4cN4v\noVaYwoXm+kYeGSz27f9CxJgLEA5sxuFWlbmm2+AXOFQPyyUDVXDCvAB/rzDZpFNo\nHxM0OxyfmbmLmu+j31qW3JnvJvb6eroYxlvwgVeOCTihhIh6HKQzNFKv0iq3qc4Z\n2a2czDyqt5h52CO+hwjsB5jjGNgS7AIxgBmDiw2V10meNGR/ZBVP9zew4FA3IEdY\nGVuFBP52xdStrDgFpE3RK799n2i0fXvZE+9zzRlZ7DNRxZXMvBBpR35IhmyqVPDF\nPbUmCKV8/Rm7ryZPanmAt78CrI5RVmPz+rrGHQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCD72IK7rP8TSFVLvja0VU56do2E6q4UTVAtUikqVnVszEv6lJUNqcHT+it\nvgD3JtuybukU1pRsbjdu2iLjx2fStYfvapmjMa8rHqAiD6IKVkjOsq5w4Jc4HSR4\nJTU9u40YR0Ly1+lHZmGDbBjK9JqJPZBHzPWlJ1sDE+DmgR9Fid9Dfv/uavkx3uuc\nFPnWzoxoQx8JQs6DAHzBL6qHfbFoncPRrztRbTmkrAUhJI98nuEGUD1+T51qU5cu\npj8q262ZYKwYWvOyk1AmiokbMiBVd0Obewqj7IiY6T5S+zORLOj1IhzaZ83P9pgM\nmq0/oJk8aQYC3vgYCmY2aNWXUX18\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"scim_client","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/scim_client/issues","website":"https://github.com/nextcloud/scim_client","created":"2025-01-22T22:47:08.452282Z","lastModified":"2026-07-15T16:01:34.551671Z","releases":[{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/scim_client/releases/download/v1.4.0/scim_client-v1.4.0.tar.gz","created":"2026-07-15T16:01:34.531511Z","licenses":["agpl"],"lastModified":"2026-07-15T16:01:34.615857Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"g6vu5KgMe+BMKf4ESlGVE6hLxtWc/VfiHZqgSDqDsgKibAfN0fOLj+X5ExxLhRLOI0ox7OYZm22JC/AAMxe6RFoXhE/1rbvFf5VBEk4clqM9P4ii55OrUq1/GkZCHQ6FOX+IacsCWZ4bSjDF/RSWNjMenyDiTW3gACd/Vsueb755R5KsjnRxUtjK0KSvCD35tCH8ZAjGDyGi+Bat8G2Gnw6zCpb7aU1d4JiRyoTml/TTRYZsV+kA0K0Uhjp6crrdjixvOYYHzl3G8GAd7Byq5PcgQ7+V9xDYaGGrVgzozVEIpZfFTIvDUT2jP3bpvuJFqCSOXkNP6Ho9W5Ye/JKYXisl5w+e4g+ijNy0fNT7I0+yfnDE261hd32weJMMbFlj6XLEy8ajifxUOHORt6uAS6SuJs+RRhzRhd+WFx37Vo1lxd+2WFjwg/vP6VsRAEBIVm/oCfG3snDnQ0xEHQYOgTD97drJPpJqhwS3biJRQxQ+9+zI+Pk5WJU8dW7H9myGCr0HJmHEBYCDZHyclrxhJRSI01gtSyxUjK4U6JtEGyKxBodJAwGvtACT0RDMHZBWysA0b4ghBHiDeO8AoDAh94A3f1IfKrBzaVCXvg8h9q/nBAwfaeopmjPu9k9AXNbHZxhKUFYmk3PZtgoEEQGozqnzACZsuxogwDQCztSLlnA=","translations":{"en":{"changelog":"### Changed\n\n- Bump maximum supported Nextcloud version to 35. #181\n- Update npm packages. #158 #159 #160 #162 #165 #168 #169 #171 #172 #176 #178\n- Update GitHub Actions workflows. #161 #170 #180\n- Update composer dependencies. #166"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zY2ltX2NsaWVudC9tYWluL2ltZy9zY3JlZW5zaG90LXNldHRpbmdzLWRhcmsucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"SCIM Client","summary":"Use Nextcloud as an SCIM identity provider","description":"Use Nextcloud as an identity provider for external services using the [SCIM](https://scim.cloud/) standard.\n\nSimply add your SCIM servers in the admin settings, and the app will automatically sync all Nextcloud users and groups to your servers."}},"isFeatured":false,"authors":[{"name":"Edward Ly","mail":"contact@edward.ly","homepage":"https://edward.ly/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhKJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjUwMTIwMTAxNTUzWhcNMzUwNDI4MTAxNTUzWjAWMRQwEgYD\r\nVQQDDAtzY2ltX2NsaWVudDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nALjgdG+Cj26jDW5FSO3YVZBKg6VitZCPjAdrxPOh9aIU2l+YSwH7H6MvtrOkqPct\r\ncwRNuiIGaeDuC14ay7Zs+9K2DCeUdtVHTppVor9cM06WJqHfMRE4IXEgkvFlraOg\r\nNwckJKctlO1Tgr2zVUmW1cYHJc8MVqQI9ivTox8uKIJT8Qe5PF+FXJKjslIT70oR\r\nUbHaoW3MTVaWJiEoTm7+QimsWIAW2KyuZTLEkzTEoSr+qRZFRQ4da+Yse25fNsHf\r\nHo/PNwlHJll8GrlIpoDIJ1f45tgSRe7XkiRu/Pbx/ZdwidiCIPT0aX1lrQzNz/9q\r\nyNew5FlpSYpxPvdBcLzFgA4RjIZADvlaq1/YhQ3iczEyNsXaMxan1bKnZbZkejxb\r\nJGQlD1u56L/H7aWoimKvLmlbWzo2elSjruM4FC4c7mDeepGBqwOeErGx3eoesYS4\r\nR+vcnV7OcGJ5roCjQ/12eZJH2MX8drsOawjmx/fN/fZVW6L7WBCaJIIzaNs8GrT+\r\nY3iq9A4ZPTriCv+0bEJcAIPB6T5zV17+j20WumHlvWkCY24Rtl6007WX4/55yArA\r\nQigYcup2YylcyLPmBf/ETNHfcMYJnzZiHaaXRQMMDqctap0zaBajc5Q0eoGMwWEk\r\nQyC6ZM9zEHE3IkRMNJyMqgmSF3wKnhYULG4dg6fu1tmHAgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBAEAqNuwaGCO4SsuDBeAeRWSuVB1GB6W5Tdpa5kfufJ+bZwSXhBmc\r\nex/zTXhlvXu+JGVSlFiqVD9Dc5rPUCswhsZCTDdYgUahWOM3/NUWdyJbyaMmPnlR\r\njuddZsmHZkPNoSaffhliX9R7HX9y5VvEnkk1TYe0kRbU3cqhQZxYGpvmLcVHJVLv\r\ngfPsnPNh7R7ui+i23LrNg5HYRKCm1oFvh2Sv5f6Jx/gMtSA8XmXouUIsZLLddLcT\r\nJHDIrNgTG37HZPG5648v0f+UOESEkEuXZLYRtuTgwmLZBLe7sVGf8NZ5hm0jTMVQ\r\nR6G9FH6B/5SFYqUij48H1C/9bp4CJ8K2kXQ=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dav_push","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/bitfireAT/nc_ext_dav_push/issues","website":"","created":"2024-08-25T18:21:09.689593Z","lastModified":"2026-09-19T16:46:14.034867Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bitfireAT/nc_ext_dav_push/releases/download/v1.0.3/dav_push.tar.gz","created":"2026-09-19T16:46:13.946673Z","licenses":["agpl"],"lastModified":"2026-09-19T16:46:14.093135Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"hsazLjC6aHwSqyYHV84N6HE4iP52zIPtz2gYU2yUKGhrdFp9S2IUGy4FSDM9Aho1OptEPquD6cBJeds9ZcT0oiBIgu+a2m4YXnlmD5GOqYdPDDsE7SJkzRCDaXK6s2E3l8EuosaZ+JIeEO5PePRMbGCtrKKurKBgrlMqFGhrIsQxka07rFNRgweNaQUKLIf5e5EnFLo7tMZjduroz9C8TezPGr5kFvSht1SyJjGPeYSyIdNUDyTQPIjy0yCvV4mX25Kl+8UFaiUxEeEeGOe0R3xu9FlEpnPicTbsJ97WEnBzYBOnGJI7ft/J1zA91D8EiEbpu3RdkTUuW0rxTfWmv9Bx4SHCyBiTXDBTU7W0HxY9LzfO7rjfwBwYcgKsXKDnWfR8E1S8om1zgEZ8efrDvaf8cmn8AhjCBQMsyl1O9cpPlmq5dY5xtRciHOAaqU5reuKKa+7PILfS3UsIL9y/6UAAtjYbMIPLecF+i0KbKaoIoYtFBhlFzMTWTkVfd9v/HhZkeQoxQKryLv82yfDY+RLC8XJDA63i9asiSy0ODrvFzaK7+z4iCPkTlgYG3YAMvJguxySY1raWKLU5NuJeKr8ADXnsQBYYQIm8WB5eVqd5x+hNsR7lo+giqET9Rua3xYkK2gHlCrAKPs1SjZg/8bkwns8UR0YjsDB0/7b++xM=","translations":{"en":{"changelog":"### Added\n- Added support for Nextcloud v35 (\"Hub 26 Summer\")\n\n### Removed\n- Removed support for EOL Nextcloud v32"}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"DAV Push","summary":"Dav Push is an extension to demonstrate WebDAV-Push support on calendars/address books.","description":"In proprietary environments, changes in events and contacts are nowadays usually pushed to other clients so that they can update their views almost in real-time.\n\nWebDAV however (and in this context, especially CalDAV and CardDAV) doesn't currently support push notifications of clients when a collection has changed. So clients have to periodically ask the server for changes. This causes unnecessary delays and battery usage.\n\nThe WebDAV-Push standard, which is currently in development, wants to solve this problem with an open protocol, too.\n\nThis is the server part of these efforts to draft a standard and provide a working implementation (server + client) in order to demonstrate it.\n\n\nThe current WebDAV-Push draft is provided by [@bitfireAT](https://github.com/bitfireAT).\n          \nThis Nextcloud extension has been developed by [@verdigado](https://github.com/verdigado)."}},"isFeatured":false,"authors":[{"name":"bitfire web engineering","mail":"info@bitfire.at","homepage":"https://github.com/bitfireAT/webdav-push"},{"name":"Jonathan Treffler","mail":"mail@jonathan-treffler.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhJxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwODA2MTYyNjU1WhcNMzQxMTEyMTYyNjU1WjATMREwDwYD\nVQQDDAhkYXZfcHVzaDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDk\ngaxM16fwWB0leV2vSrhXqyr9OUm2SlPr19b7uAZRIXf8VU8ZGHIumBaM+GEE5U2K\n/eJlB8NErfE7Iz36jgFwZJldI40G2Scb+rYi302TdMS0/aOAV4I/9OV7V7G/b23n\nbIvc6TfrVuAZWJfwi58TKx9XIvETx1ghcVjrVmBN6+cJcVnpZ8OmcUOa9MburWjR\noOkvvwBL9gU/rDf4x9fmoREMD2V3oSOGlwMJ8nsAvh1mBpQVgJGGHzpnLyqUW8fp\nFNinsRtC5QQnvbzsB8kBClOTYBYbk3ronvb7En/YJUfMIV6ODKosYR864L50jQKx\n3iBZHfrVx4gG/AyLWBbfnGSuF4iAnp32AlqX/gCLUNHalmZoMDIuLT7MofkC2RLA\nsFcApr7nQ99VfOgdgMYSweLgxJxe+4ugAkS3f/xE8O3k0MTo7xdesNCNc9ozAjkx\nAmrWNZ5FCZTa84bFmrB3acWNIkkOw8n1ETGtCWIUs3QBPco07lHu2bN2pHpA6O8r\nG+i2XYkVShNKdYdSJhb12mPWSP1JLFceUEqfsAJyuK7FsY3ZcveGBLFTt5uSQeMf\ntXppPstqCBiWm+LpVgESlXlFX1GobfcPh0JDrLU5JtVuHPLR9s/qsDcoFJFq61lt\nd/mJqbgpftb9RR49I+iLP3KWX0xCokuOvE3PLLMzAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABYFJVy7u2wYLQ81ZMWM2VQ0mAKJsHMyfQM3/M399M/iKIXU/NodpWHS\niyQ4FMosPuWfhSqSrG/SN/B0RoRICDvF1NAreIfOUCDI8D2omvnQIzknSr/tu+Fk\nxutRSBXm0YfOnGZNVMPaA74+ASceYZZClKTz2OKvRtLQ5rDkZKFFoum797a0OUWC\n9utiICi9I+iCvDk9k5a64CjaDHILRLYKa3e2IiP1aXfcFDinsCs2hZyFU4pUdrfV\nuo26ggINvOvyxjz5fXQxOFM/136hAn5oUPdIsw8aJrXz9jLDk0kzlen0WIWGmYp4\nPTgjw/a2RBFq5jUpVscU6oI0gFrOEjA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"portaliq","categories":["tools"],"userDocs":"https://github.com/ConductionNL/portaliq","adminDocs":"https://github.com/ConductionNL/portaliq","developerDocs":"https://github.com/ConductionNL/portaliq","issueTracker":"https://github.com/ConductionNL/portaliq/issues","website":"https://github.com/ConductionNL/portaliq","created":"2026-08-27T08:48:43.663593Z","lastModified":"2026-10-08T07:07:34.711182Z","releases":[{"version":"0.2.9-beta.20261008070505","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/portaliq/releases/download/v0.2.9-beta.20261008070505/portaliq-0.2.9-beta.20261008070505.tar.gz","created":"2026-10-08T07:07:34.721990Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T07:07:34.732314Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"hCFEkP79or8sdJ/FVP/3ftwm0ALzV+CsRx3f6uM/D1P7atk2SjicjEYRUkZgKGzImeuksTaLjn2l1ekpPDTp8Gaw+XzMvAc9TJqgRnqzlVGYBlqSAsHnWPiv5NFFPSj92UlXGCsUnAsivnrjW16C/lfQde0I1sojl55CkLh8vgkRzcSomVHzmcDTGyQPItWg7Kxukx2Z4k0a8vlsnXtIce3mcdsWQlOnmr1dHfD1owtSZLHMkq1O/MSFamCIETm2x01dCMNFyA9o4vEZ/cN4w2jH73DtkSXrfkD5RC4AnujnW1tq/AX35DY9v1T+a0J9ZiJkAdLoSDmC2g6ZxPu5hz29AGDS7yTO6+8Bbm1Djgv3c6KswANgVqYfhxTg0tTwtO2rYq/dBUh4M7gFS7ukP2oZ13NLV913RgGUHUKZYvJnkiLxn7cgOmolcKnM2/vzgBO9grUhXpTxMmrM9PB9wYYMIndpWt8eyRYmFBEq9xEOvs++fDPnnxDstTr0wqlrJKijG+k6Z4/gLzxnohvkINDYmaILEMTTzoUZejHnB1xCcoJdx/jq4VpjeZ1av9ILKILXTBvHnyPVSZtjl2H27mhttQu5vZStsAJYAFVsZ683lgXeYY/pN4x2DhnQy9Gat+my3ZdhaMEYRdY3EHnBWOBOfKHd1e1XRvjjvsMezTY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.2.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/portaliq/releases/download/v0.2.8/portaliq-0.2.8.tar.gz","created":"2026-10-08T05:19:57.347128Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T05:19:57.444978Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"GRkVhW/r+zQtTYffp3gdq/gA2CFUbSKpyYDaHCk02e2+O5J+pn59U4AjL/39tnG4/kXKne+lr7lklHbEjfHYdS1UU+klU95zU/nc5rVIMLpfGRRYdipM5dVCUo/7MHJ45kxcbPGy9lvKarkZOp86QrTVKCNoZoKyLsha5VbmoOn57fFDKzLZlZaCIrm/Ey0cneSzkGrDmbsIQPI3gIo8+585k5MwduSP+wLO+D6Mfn1jnWKq9icyJ0wuGkukA5S+XG3GAa6Zmh6Y9QcLpMAB3gvI+5J2sbFIyt6kNrC/m6VLdY13h1XBkUXluxbptzg+XCYyrLPKVefi7fUFhUwpAxH6o21fdm/1snqrL8sk24owtQABSFyim5aXIJW6Q+zO/u30O88YxdPxfGcpPTFMEA3NiBOV7gsM/i7FGL03+TkKz4eeYO/vn94rY9gx4pUGgAlt3WgUTat81DCKjWFrb+e5mzSQj51YUY3IPLOkcY1zR1OiHTdilfQdch8VonQT2y+n6XEaND9jgflhpyhxONpBi23zKzNx2kXVFVHGXMocjl+Y/tgrGzU986Gaw/9jtRflHgUSolH3QW+WU017rMsk7JltxPUI3F5psIBw9YZmfC7oqleqpaMf1dziPVXANulaNNGfeJhZsHax9Z9pyQLi5QSJEKKuNKDrMrIDwN0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9wb3J0YWxpcS9tYWluL2ltZy9hcHAtc3RvcmUuc3Zn","smallThumbnail":""}],"videos":[],"translations":{"nl":{"name":"Portaliq","summary":"Eén gedeeld extern portaal voor klanten en leveranciers.","description":"Portaliq is het gedeelde externe portaal voor de hele appsuite. Klanten (burgers) en leveranciers (bedrijven) krijgen één geïntegreerd, white-label portaal om hun gegevens over alle apps heen in te zien en er acties op te doen. De gegevens komen via OpenRegister en elke app levert zijn eigen portaalbijdrage. Portaliq verzorgt de externe authenticatie (DigiD / eHerkenning / eIDAS), de white-label portaalschil, de gebundelde berichtenbox en het register van portaalbijdragen. Medewerkers blijven intern. Zie ADR-046."},"en":{"name":"Portaliq","summary":"One shared external portal for clients and suppliers.","description":"Portaliq is the fleet's shared external portal. Clients (citizens) and suppliers (companies) get one integrated, white-label portal to see and act on their records across every app. Portaliq reads the data through OpenRegister and renders each app's own portal contribution. It owns the external auth edge (DigiD / eHerkenning / eIDAS), the white-label portal shell, the unified inbox, and the portal-contribution registry. Employees stay internal. See ADR-046."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhORMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzA5MTgyNjE4WhcNMzYxMDE0MTgyNjE4WjATMREwDwYD\nVQQDDAhwb3J0YWxpcTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAM+w\nvmuv5AS1WtOP2nS3L0VDZSIbsr1JdU7Hxu0MdvjiBYEQyi0MxbnZCAlDCXi8m9Ng\n0QkljNrHPsQ40upBXOJDeDdUgahvbxbUiNt3K2/1JuMr3bkzNhB1ux4FFt+jTatT\nGpw3W81/NTPyMofQHWmIjK6uS/Ji+89Bf2XvnEnlpd5+yUM6B4SQLyIQQAS2YhqL\nIrttrS6vEPynCmc5ckImrzu3mfZ52ry8lWicVGyPT9/zMhaO6fRKi+OGLkgzD+QD\n39i90PrAlkgv4rtqDrs+EXrWwF8ROR/RF9VktHBQjN3GZ8tqtoJ73/qcFexw+noN\n6I0mptOPdHCm5x6ghAy1Eakz41kR0p+CFi80SkF2er9Ghyd6tBfgIKjUgS+Kgs2x\nJORRwzotHvzpfYrRlnL/9X+v1VEHgmFg9Y2mDbbosb++YoXNjWRqgecaZvxntYNs\n2EFd+G9uK7h4LB53bK4uzsFvfMw/D0BZHj4rVLcKizXiU4J/GI5JqEFfSUlEb9wq\nHLPcP0UeEMX0mayY9DgOd7co3H5y0xTQ8LlQjKGt0ujUeqrNHmTGwAwUnsRX0Oqm\nY70NLJ1ERmHgVwOnGh37fooiRYnm2NqqXCYmawez5meLve+IKPTBQS/2DHLdZsLn\nIzeH9sCyxj6sFM3T6R++XOOXQCBgvIfQ61/hI33RAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAIJVjf74U8NHAzovTRMJbh4/D7hQfheHkeYUxm1bkschw/dvNdChAPhZ\nf9eMUfnz+0NWtFu+opnNWN4YQXcZTXBjZyWKrGERhEznXEiOo4C5FTzzFTDsFBTG\n8a2ArYgd8QG/wD1ks9UYHCU06mZPaUu7jdjJJK6r2g57AtwQiI9H6m+AFmDJvu4O\niF91PjEf22JNB8TmJCNtSJ8jPj4oPEptrsNCZDQccTiAAHwZd6oMWFn3aTA8UUGq\nnVyIOSv6usVZKi9T0JSL35uTOiWKfsMGhvHOxudERLAmlGYnz0OTNJhL1a3MNTl4\nIn51ToFRSQcKgz+TucPGJ1NWnDowif8=\n-----END CERTIFICATE-----","discussion":"https://github.com/ConductionNL/portaliq/discussions"},{"id":"richdocuments","categories":["integration","office"],"userDocs":"https://nextcloud.com/collaboraonline/","adminDocs":"https://docs.nextcloud.com/server/latest/admin_manual/office/index.html","developerDocs":"","issueTracker":"https://github.com/nextcloud/richdocuments/issues","website":"https://collaboraoffice.com/","created":"2016-10-31T08:55:45.631429Z","lastModified":"2026-09-29T18:05:23.278235Z","releases":[{"version":"12.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/richdocuments/releases/download/v12.0.1/richdocuments-v12.0.1.tar.gz","created":"2026-09-29T18:05:23.257813Z","licenses":["agpl"],"lastModified":"2026-09-29T18:05:23.320568Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=35 <=35","signature":"ChHJVedzL1tYtpksM++SeC9cnKZ1WlqeASq3vq6o0TKsAQtz6uHqo+Sw9ERJ6kYlTVAvPXcHoSsOiVRrXg5HLpkDO1Of1tNzjU+d4ef/GynjEsiojiz7HazQE6wPbyhOwr/0udUBViDWOzLRR8eUpcTXi7+TTXyD+fFtapwTXF1qayUizO3kAtT7KLflsJ7RLcwiT4djH2vwvNOukcOllIw7uTBTMPpvbRukQ3PatVvOOKEZvT697Zi+gAJHBwoN/vd/n903WQtqk9TtXYeYCO5fgl5smPU8AWvOh4Hn684ZHCyhTT6pEbA7lxMudUAU4LdPMP0QXnkjARuWutTm6w==","translations":{"en":{"changelog":"### Fixed\n\n- Enforce UserCanNotWriteRelative by @elzody in [#6125](https://github.com/nextcloud/richdocuments/pull/6125)\n- Access token refresh by @elzody in [#6116](https://github.com/nextcloud/richdocuments/pull/6116)\n- Proper token type validation by @elzody in [#6111](https://github.com/nextcloud/richdocuments/pull/6111)\n- Prevent esignature leak by @elzody in [#6101](https://github.com/nextcloud/richdocuments/pull/6101)\n\n### Other\n\n- Dependency updates"}},"signatureDigest":"sha512"},{"version":"12.0.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/richdocuments/releases/download/v12.0.0-beta.2/richdocuments-v12.0.0-beta.2.tar.gz","created":"2026-09-09T23:06:45.060181Z","licenses":["agpl"],"lastModified":"2026-09-09T23:06:45.124822Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=35 <=35","signature":"Bdxy8xvDLy/ObMFeXmBOyrNIICo93Z9pp+Dw4wGKkqVMnzKL1ANnVlupijizSOYqXog3OHHcHKa7SuTvVlh3AiX7rS9Fhr5ngAM8DRP4ZbQkO4C1luCWtWY+mL+4lK0rEkoqU2Bw/44vQjh6xCs9dJq5rupcfMYXdfUkkji9sCJmQdtUR5FK1i2OsZL18RquFf/6ZvSKxr50XmXwIgJbxyR055FJNmxJMWhJojNlUSD7EMq/L1G3tu+xZbO4unNF4mLi9bjzOIjXTjXDc0yTtZsmfhvwiI+q+BQ3L8S+YO3xE/hK9+3YM+PTo6e4bhwJfNLGBGv1H1Lx04K9qnvkXg==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"12.0.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/richdocuments/releases/download/v12.0.0-beta.1/richdocuments-v12.0.0-beta.1.tar.gz","created":"2026-08-14T21:57:00.643623Z","licenses":["agpl"],"lastModified":"2026-08-14T21:57:00.697711Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=35 <=35","signature":"Vljg6sxlvM0xzCY6m6e2ysvGWRFKfOpDoa9v8poMByk4oBp9QQ8uEjwqjWbQtPd1fWZE6DOxzcINn3AXpwTxDtAhwxRrOMOXjKhwvDTodhWsc2yJ63BSV6q8ZXKedDkA/kAOvnC+2+d9eGwa+lU6FBABAl2Kn+DyJXAj1+FgrNs3jyEUWORJJ6Vv0Ze15/6fE4OSXYe3SJonwAECTizq1J8cncE2In3cXlIbUOURfDhJh62LcWcN1lf2YWjzgaJ8BRbyUSbTdY8Vw+BYZrOB4nKc/x9XuLUA2HlRHCddGkHKwFuaT0JuA4a+LFhWuVuDWVSOD5BA/s1sKYKCw9S1cQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"12.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/richdocuments/releases/download/v12.0.0/richdocuments-v12.0.0.tar.gz","created":"2026-09-16T11:43:05.184907Z","licenses":["agpl"],"lastModified":"2026-09-16T11:43:05.278639Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=35 <=35","signature":"HP/NkCIfRXF12h+NDS7ZA0NNah7tF+03NyygLMP7flcaksXn7PMbMAYnczAxpIuGgSREhBWfXJ1nXy7r0AiA2gApYJbyfwJKJdvtlKnJg8PMtcGkEKAtRfcwxbfmIePpldbXYTgCgGhm8NdmMpeJXNGN0uONN+VB9bVt9rWgMKmtE4Ge2dDOlBOATGt+64ayl5q1pPlYSCmzAboxO4yF8IiPwklQM8jaOjhCIWdvDOiUEDN5vclGJXuccAdSIBlTjtALIkbXUyzTCAOYROP0wZ1Baq71VB7sPFWkTyL2scx4vz2nb1uElGJU5/fyDZM+Xot0hj33i6e+4ig/ur5L4A==","translations":{"en":{"changelog":"### Fixed\n\n- Hide digital signature inputs by @codewithvk in [#6086](https://github.com/nextcloud/richdocuments/pull/6086)\n- Use the header height token for the document offset by @Darshan-upadhyay1110 in [#6082](https://github.com/nextcloud/richdocuments/pull/6082)\n\n\n### Fixed\n\n- Report a locked file as 423, not 500 by @timar in [#6064](https://github.com/nextcloud/richdocuments/pull/6064)\n- Pass language to Collabora file conversions by @xhon-pelushi in [#6038](https://github.com/nextcloud/richdocuments/pull/6038)\n- Include ooxml types in form filling by @elzody in [#6029](https://github.com/nextcloud/richdocuments/pull/6029)\n- Avoid extra file write by @elzody in [#5971](https://github.com/nextcloud/richdocuments/pull/5971)\n\n### Other\n\n- Move language tag logic to backend by @elzody in [#6053](https://github.com/nextcloud/richdocuments/pull/6053)\n- Pin workflows to stable35 by @elzody in [#6056](https://github.com/nextcloud/richdocuments/pull/6056)\n- Skip nightly collabora tests by @elzody in [#6030](https://github.com/nextcloud/richdocuments/pull/6030)\n- Hide extra fonts instructions when built-in CODE selected by @xhon-pelushi in [#6001](https://github.com/nextcloud/richdocuments/pull/6001)\n- Use only nightly collabora image by @elzody in [#5894](https://github.com/nextcloud/richdocuments/pull/5894)\n- Trigger direct editing Save As via postMessage by @elzody in [#5982](https://github.com/nextcloud/richdocuments/pull/5982)\n- Dependency updates\n\n\n### Added\n- application/epub+zip as supported mime type by @juliusknorr in [#5752](https://github.com/nextcloud/richdocuments/pull/5752)\n\n### Fixed\n- Set preview flag for file templates that have a URL by @juliusknorr in [#5697](https://github.com/nextcloud/richdocuments/pull/5697)\n- Gate conversion with SecureViewService check by @chrip in [#5635](https://github.com/nextcloud/richdocuments/pull/5635)\n- Replace deprecated oc_* with OC.* counterparts by @joshtrichards in [#5753](https://github.com/nextcloud/richdocuments/pull/5753)\n\n### Other\n- Improve InitialStateService robustness and maintainability by @joshtrichards in [#5329](https://github.com/nextcloud/richdocuments/pull/5329)\n- Use type hinting in commands by @CarlSchwan in [#5961](https://github.com/nextcloud/richdocuments/pull/5961)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9yaWNoZG9jdW1lbnRzL3Jhdy9tYWluL3NjcmVlbnNob3RzL05leHRjbG91ZC13cml0ZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9yaWNoZG9jdW1lbnRzL3Jhdy9tYWluL3NjcmVlbnNob3RzL05leHRjbG91ZC1zcHJlYWRzaGVldC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9yaWNoZG9jdW1lbnRzL3Jhdy9tYWluL3NjcmVlbnNob3RzL05leHRjbG91ZC1wcmVzZW50YXRpb24ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Nextcloud Office (Collabora)","summary":"Edit office documents directly in your browser.","description":"This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store."}},"isFeatured":true,"authors":[{"name":"Collabora Productivity based on work of Frank Karlitschek, Victor Dubiniuk","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.7435897435897436,"ratingNumRecent":0,"ratingNumOverall":39,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIDCDCCAfACAhAZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYxMDMxMDg1NDExWhcNMjcwMjA2MDg1NDExWjAYMRYwFAYD\r\nVQQDEw1yaWNoZG9jdW1lbnRzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\r\nAQEA1jk29m6JykcJ2Ld0YEpjPMYh6kwxY6GysNJnfkA/th7tPWL3+vBJ9oTYyVnZ\r\njwAE1Cqwfa9MyBKMZ2IdfIqtT8PeWzuFP7Ib942EdxUpwwh9F3lykeGsj0h4zQwX\r\nF9OooiS99PfLX+JpkKm15Ujb00iLB6xQmq0+3NeOT1CTD1ziJ1ueOcxBKMwaFp2a\r\nPuz3F5ywqCvpmxG/OBuOs0LI3/zStXhBNbUMxBrWblr7zaVNJXl/I2JCKj8Wah/H\r\nXUEEGbW15fAUP1f+90eQSxpEoCZDBHXOQCTJYzySGv+BjU+qlI9/gS0QbrsiyzUf\r\nO5lyvi8LvUZBzpBw+yg1U75rqQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQA9jU3m\r\nZmD0ywO3MUsG/GLigFtcWi/p7zp2BliR+NpuY2qNFYDcsIb8ZUudmUc/cJRRctzy\r\nAPaLLj/d+h5RFaxjTVvim1PSe6M7urK/IMSvyUVYCeQRYpG8ZJixKTCOVIBaWHMz\r\nxTfc51tm9EPlpJpK6JtaWrYYoWGE3k9sINdJ4JkvKkE2CBAqVhX6ZGyEQ0bnEhtk\r\nRu1DXn+LW7TJ4NZ8VtLWvmW/6Kfmi7dQ1V++Kmn0lO5ntRt5altePbStCHC8bhGp\r\nmyBOrjhrJgLIwvgH26MYZhdiSkFzoE38nMPZdrUmUDxcPCwucWJqgzDPudguFthj\r\nWCVZ3TTG/2z3+tWM\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/c/support/office"},{"id":"integration_mattermost","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_mattermost","issueTracker":"https://github.com/nextcloud/integration_mattermost/issues","website":"https://github.com/nextcloud/integration_mattermost","created":"2022-07-15T11:12:55.708128Z","lastModified":"2026-07-29T10:18:53.727640Z","releases":[{"version":"3.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_mattermost/releases/download/v3.2.0/integration_mattermost-v3.2.0.tar.gz","created":"2026-07-29T10:18:53.698676Z","licenses":["agpl"],"lastModified":"2026-07-29T10:18:53.766978Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"ftJ0i3C8mUNDrewXFiKcWAJwZ2Jd/SiVhkISfvgnctWpkp9VTWGeLxaaTsiggHAzpb6eBj8UpuHoF/XW7wpKf9+yDAkZ5mnuxOnokPr5YanTJRIw5YPB3bAcq/ZQGLplRYEjMHgnyz7Pvjec032nZ9UTsIviqIWAlC10cX8PwlCRkyK9Ld2itdPAewrJ3f6tsoPScBL+m3zDl6dfiCpgqph9nzuyxIAAHIiIU2LapxnK5Po1x5bwzUgWjg+bFwKBBMDnq5AOhRRTHL/SPqfNY0IlEb82Zg12H1Y8g7CYw0WEbRnyJ48KbtdVLJ+UxDAcHmbTlK2Q7fDoTMIpNy5nBjRXPVK2Z4xBHaJkwlDkbP91edaTUUFXBzoKQdTV6oYIJwJ2kN6iw7k6m+DWNrjIzdIzAFxHAgmHRDumOkzDspMLsQB6+jg0NQmPRrPP/IjrNE26CO5p9BVMvYw5cl9cf/ynU0sOovzmY6KrOHUK11n7ZAndjEJxkLSkFlNqz/17Y+X4jQkPPXXnznXDTe8A/WFBeAHvoDz8rzXCDlDQPJ2xHkej6QnWqno5/o0zg0Z1LxkS0iw2H9QGaWsixBmiMuRpAFv/HbVOFMDIsdisLJBAVrrC9sJzRvGLLDXQx+EWpIXYU2RnUlK4/Wm7iGUUXhsB5VK5PeM91odOVebzBTs=","translations":{"en":{"changelog":"### Added\n- Support for NC35 @janepie [#148](https://github.com/nextcloud/integration_mattermost/pull/148)\n\n### Changed\n- updated dependencies @janepie [#148](https://github.com/nextcloud/integration_mattermost/pull/148)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXR0ZXJtb3N0L21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXR0ZXJtb3N0L21haW4vaW1nL3NjcmVlbnNob3QyLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9tYXR0ZXJtb3N0L21haW4vaW1nL3NjcmVlbnNob3QzLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Mattermost integration","summary":"Integration of Mattermost","description":"Mattermost integration provides a dashboard widget displaying your most important notifications\nand a unified search provider for messages. It also lets you send files to Mattermost from Nextcloud Files."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEETCCAvkCAhHUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzA3MTQ0MTQzWhcNMzIxMDEyMTQ0MTQzWjAhMR8wHQYD\r\nVQQDDBZpbnRlZ3JhdGlvbl9tYXR0ZXJtb3N0MIICIjANBgkqhkiG9w0BAQEFAAOC\r\nAg8AMIICCgKCAgEAoOX/8uOnr57B1GOCVfoaInJ0yRgdH1Wr1RHFGVqnJvmdptG2\r\n90gSgXgyrZ7PnKkbNxsVgW7teqH4laELyCBhzijvhyflj4ig8QAr8if1e1b/dfxt\r\ngUfP/zjP43mQrY9o4/8Yq7KYWDkcQHUQog3mkT2iyExzwBmFCHflKDOzZvFsyVmo\r\ndNzhVh4EHmb6VoBLC6mKzQAJhYOCyRSiHm8HfqJxAg14ktVbPvw0JHKdj7+V3p0D\r\nmxiBfbS4woCaxEVqtAKArf17hQy5Wr5RsmaXQzlIGY8Dry8BkFuzaWA60/U1+0I4\r\nxofXKOxz2E8QM/T1WjN9G+5y4AmVelMBt8zqFBYP1j20LFRUY+/haJCc3x4kGH7d\r\nsvmWe6vCP6KpkPA3LMI93x0Nw7TqbmZf7wTMgZY5oWejdjYvN0etI84XaGbpRaSs\r\nZ5lwjOl920Gs5X10TAvf9rx/SsC7ZQ4WSFR2ja+nZCt+vQkWPWqPEOaDc6BLN62K\r\n2elAV2+WeV/bpJjNfCW/FztBgACfeRsO5U2spBP25vlZISVRQ1b28WIo1/ynl9vQ\r\nhk6lcECS0p/KHgo3T5QfmwnlQPfT9sRcN2hEJeQFiu9dYos6tvx9UigwF4y2OqrD\r\nD+sLYEeKUm7HTWKcRYusO91ZNQkEPVU5y48c9jLGUHV+NHuifOH3PLFa6pUCAwEA\r\nATANBgkqhkiG9w0BAQsFAAOCAQEAJXUv31Q7r32GQnYMrGzn2J3ipVgICTlOII0S\r\n20Czq8HzbnTG2psuadxF8DJ4PBc73jr4mP1K8hfWqrvylZ3uW20VZL85cfTKF2SM\r\npjiqAP/EaxSrCi4ONtqiA4RGbYknlZeV/jl2P+8OhVLKKiGIRq+uNvw4bMUTC9Zz\r\nnwgEHVoqB8FAMn9mCRUu3/Zg1DcGtOs+DYeYlgE7vszfL3ZUmPMYvE2Q+yRUfAqv\r\nVEwM+bjgqhLm1bAJY+W6PvalxITrLuTWd8gpXA+SjloIS6CV7M1aO8jwsk5sWrS0\r\nL/X0HAlL1Ky+d0NEdMfcRgXFLapIdsACQzqn2/JxLvP7cJkGQw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"health","categories":["organization"],"userDocs":"https://github.com/nextcloud/health/wiki","adminDocs":"https://github.com/nextcloud/health/wiki/API","developerDocs":"","issueTracker":"https://github.com/nextcloud/health/issues","website":"","created":"2020-10-22T18:58:31.748495Z","lastModified":"2026-09-17T11:54:27.066871Z","releases":[{"version":"3.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.3.0/health-3.3.0.tar.gz","created":"2026-09-17T11:54:27.041227Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T11:54:27.097788Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"J4v0Lqrwvl/fBucu96X3p9uOkyjLgUv1W+qBkfgrO6FlIbF2h1pI3+MYVp7pljl58QasqNmce/jo7JNYqEAzQPBHwZXHDefYrOQ2O2y+nI5Ybnfi3OwZir7rOSVMzeF8Kgp/lFPrsC9HyxY187FSDxk8wNePNHIAkTtry8+nE6X1egXkGrjKzRptq9PggjRwPcuV8eFSzogomPBmZaeH7snmJKRbNsShIDCE/g9usSjT60aOrhoXj4jhIiPfsIy7fBF+fBdezHQzSfskp3rQ2QQf7LpLZu9yIOQjT15Av2s+1zUaubqvVh0wV40y2z+z68pPENH3budH4P907RrX+0Zbeo6fShJ5B/FvnORxiCVCYbzuHDH/1VNkLWceAA316bEG8OM/hEdH91Dn2n4GSmVX6oTxlJx+YKg2Hv0dJLMRMhCesPXkzduhcr4VqVpg/G+uCBJUbxxrhu9CQfcE1gRUlKv1BXyxCFrZLmoSbM2iJjYGAkoXDakiKeZOR2argSfTxOc+U5JxsXGN62O1DJr9IX/kJ/ykLiWnl2onQXGMeJDsVIMPxveehTHdxhbFRDLCrEeZrPDY5UK2LrZI3gxgG9u5p+tEa2SxWt+kTAhxEWPd9Uumc6k7hywIPRhn+3IQ83vIZU+g+XhuHig84DMRkSj57NcgiEURUVhs9is=","translations":{"en":{"changelog":"### Added\n\n- Add fixed-unit daily Kilocalories and whole-number Fruit counter metrics across Journal, Goals, Statistics, saved views, reminders, and configuration.\n- Add an integrated offline-first Health quick-entry PWA with Login Flow v2 authentication and idempotent synchronization.\n- Add Allergies as an optional timestamped symptom measurement with owner-scoped Journal, Statistics, saved-view, configuration, and PWA support.\n\n### Fixed\n\n- Show baseline-aware directional long-term Weight goal progress in today's Journal.\n- Allow independent goal periods for the same metric while rejecting identical target/period duplicates.\n- Store Kilocalories as timestamped measurements so multiple values recorded on one day aggregate correctly."}},"signatureDigest":"sha512"},{"version":"3.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.2.0/health-3.2.0.tar.gz","created":"2026-09-06T17:10:52.504005Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-06T17:10:52.575608Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"xf3J0Iklb0RtscfL6Xp4qPrAUy3v9jQSCn6KQzXGFUVvbuZd5Dn/cJoFhN9ig827L6QhavNcJ3nuMMdYGxY2OdYuAcFUJxOiLkccHiU7V66k0OAY68xbUt6ZdvlWk93hK5ZThoeLaEttPUu01mbOXu+linIlZtIZY3D28f8j4tV/OGevgIop+mtgQkwhhRj25GDK+wzTy/z9uMOiw4TjLblglC4mKGzLmMEU7DNaDTxnhnqytyfcsf1NHHW0s02fLH/TqzlKqcxaAkKgSzAnjY/YEauB1w2hYFu7CF5GgJHZXB2586KCom5j4K4BGLFrEOm+vHf+q3dCBDP8QMKMT2lpMkSfLPjdTJGPRKiKleAg1R2tCwxlT+ehbVVqKx/FmYYKs2x8TTDLvtnNYrZ8Zk1PeN7YP31ZUZVmflKgZV5bV5iDR9KuIRWWVM4g1b4tfrGmmYUhuvTvYSzuhFZWRqGZLdvcZZ6SO+ANcbGU/5sSICFBvQ5eoEAVFiNppbY2arthX5vT7PyWsf5o36oLC5NnA8ojvlSwTz3x2AwvOFdjw9B1MgL2YnvFQj1xhMBSYF6MIcGiZNQUAR5R6J6DWyxELodBE8+sPcarjZ1b2R/K642/rmCei/TOVNjlRi9S22INtOtFnFqhkDY4fg5bohgvKf+57EtchMeMmF49bKU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.1.2/health-3.1.2.tar.gz","created":"2026-09-04T21:31:19.523815Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T21:31:19.586715Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Ydz4Lg3inbbYMQnQfSiCoGagL5uuE3/NwbtAsfzMclDS8dKVoR3DIQRWU8sgMM4t5Ong7YWJEpNTs9vTAdlT4e968juiQ3IXjny6Q1AxCpBLaUIooHAU0p+gokjvGOVlLdFJAwGoyZkBmNxPEOZKLdpF4KvdK2oCRxyaist1lp4QqpItXsM82FRy4y88mq5hb6W465PoLAYWRp17URu24kYpoAdO2fSw58TU66zRU6T9enB9S1Wz7fmWsccpv9Bdt20Re9tPU0EFmUQSb3BqQBD+7QzbhnRgAlxp8UDeW3R9yPj/vHVzShV9Timv3+SSnnz/m7j7ZYzJprjmnT6sCAJqDAZPl2ds2ZERR8kx9CjH5kNfPNzr4kE38QE3lIfrsXptvVnB2e6/QlB1Wsdv2HOhltqs7Ekr5KXnQW4XAz72ZQhnyFTrQEIFgQEQ3nK1N12Tu5WHIu0K79DmjTazGf3T+WJXfzowlp1sH8qylKDDNx08pKEMIw3ReS9DxXW79gENUP2eGx2AcVTj7B4h/Zc368cubB/kgLmFQQB29oAER6bgWQq9PPTVc3l1AqOAktKpaZ92ySrTlB8biqk67Mbugo+GTqMwFJuQ08iZA2Pi9o+6U8JenacrJhsxq70F0VlKz7ifHYJALXNkjadFBz8I/8/2R0N6XkuPeWLe4C8=","translations":{"en":{"changelog":"### Fixed\n\n- Fix goal reminder notifications that showed the literal `{topic}` placeholder."}},"signatureDigest":"sha512"},{"version":"3.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.1.1/health-3.1.1.tar.gz","created":"2026-09-04T20:34:18.386010Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T20:34:18.462860Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Icb7mUS40Saq1pHbYs1SCJORWH3yFgRCep7TxTBosGSaKzDAzWlhJRm6EWiMG6alPqdq6s+kcy7lOWlPIc7ccP60D+jTvQCx4oROuwJZR1fRRE8u8uM2iu5sKCu070x+t3QIK30+XP43+/ErxcUeMS+DFB90Cf4RlJ4xPZWG3h+gx3JHZW1eJ0R5dk6IjUPkxbvmSa8S6VZlXZ4zYdwpjAEYuqqYfFBSjo0wVSeuQt12PHtq8GKsPr2A22GBN+daa2GCRyPNYONC3iZvceTH4OLCe0IsB4L2EfcgDvtjyA0qxWaRRNUVrr5IPcrZNPfuzbY2jMU1nW5GPwkl3jBBQdN5O+jb24p14p2FTwWkWKHCqDNkd8VuYriPx2PRkSCbGO/gM6FW2Qxs1PAG7Ay/J94OTGgIOipJop7MkLvUhzXgOS8nB3QJNVags/A0fjKShqIzcgYKGH5Jj2RPi16m/JEg9lNiYYrjQBfjogG9pHMh3z8U4jMYv5NPROk6GPYMpHBAuk5fWOWrjCF1gwZz8NIcx0L8yR+Ci67psEtsfWWhLCF+2ZMYAK21man5ukUyrOooY1PXWigtlu3icL+8OEzsZdLOA/97uR+y0wpDpTTjvhjlpjd7qtOVAI5qcNgeP8VFKCDbC5dxwPEneXxSBhE4sXlyCcdyt4nuqYmV7i0=","translations":{"en":{"changelog":"### Fixed\n\n- Draw configured goal targets as visible dashed lines in Statistics charts.\n- Restore direct reloads of saved Statistics view links.\n\n### Changed\n\n- Improve Statistics chart scale padding and connect measurements across missing dates.\n- Align Statistics and saved-view spacing with the Journal and Goals views."}},"signatureDigest":"sha512"},{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.1.0/health-3.1.0.tar.gz","created":"2026-09-03T20:14:54.825976Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-03T20:14:54.888479Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"tT+7fNw3umro6DCTX6NxTcZ3Gmx1pH9BUZeQNJK8r0BhtDeDv1YkddHZzkFI7ViLAwuo/q7B3XgYe5PW9DMSxTdHflqiz8YzVlQseAZ6ZiIaAzXMDqNTgaDwx9MbU3NDnuUmezOGqaW4n5cH+R8+O94ku8+3wF8gO+U93UPaGtCAeberrsa2D+F4cPEOhREdCsl61PbrDDkVHHdt9l1+6xbsAnLiS7t8qT4bSgNNxOJHR/0tIN5ghFSo3xu2TAtuoqHihq0qLF6C8ImFlzYae0Isaw9KZE4wGHwuugr9nf56VOFp44Qs/2T9obLO/bBpzKr9GYqd7olk+WXafI7kAJBhgPtz+lH2hW+rRCNIDxhdZ/gwemWO4hiJThMx7ovLFOPsqjH/IVn423nga0LWEc76CR+vGmGEla4N5av+oIgBZx4AL33QotBpTwgf/n5CgiI0h2TsOW+3/U9BiQdLkmzWZcjBEgF+n5snJEf7EOcoarOTK2oc/QS0CEGzQLaTME7S/4LqFaXlyD0G2h4uOcg+6m7R3juC4J9Y6Jbu5LSo/Dtq5BA0uqNOfJIY2QqQgzpji0HQ061bABq+mHnGQmwVnsAKfyctmUQSYU+3qRDMBdU4Cq8JBCqt3UsTbQOB85L1rskZ0KuFBbo2YlYzR4GfvjOfLrMlmUE0rGb8Rf4=","translations":{"en":{"changelog":"### Fixed\n\n- Small fixes\n\n### Added\n\n- Persistence for statistic views"}},"signatureDigest":"sha512"},{"version":"3.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.0.4/health-3.0.4.tar.gz","created":"2026-08-31T18:37:56.615759Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T18:37:56.693793Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"fGP1YPDMgcJILJ8PXTcpY096R1LaGC9zz0NkG/tOEYDpb+Mlzp5P4SzfZLDJhMCA/X7hLay0UXOJw40BpX3kwAhmoPake6A3fh3AvGYxzD54jS8GlPy4/cJBlRmJfPAZ47ixpfdDNuoiy4NLI8SGb74pjjI4T4T6VVP9mjrP1NXrq+4pCAB5nY2+yjwX4Z7taraY7j1cYyLQ+/ZLuo6nFW5hT/KVqT3MAYE75sjN1nikiVJC0MWU3pd7ofTPYUmIW7EE1nghYNa1YQXjqWzbR3EifGpTtlcDgzH4VsLtEz8Fk45U35BRK3b8ztwHGJYJEAAdFOqouozmLJx/r6vDxtUHn51bInj4XpmQpbfE/WinR6tinJaUmyhpIr2eQktZsMLjoTyFciyyYEiSQEq5tNVfgrXTJP3HDmCF4xqDQQtN3wFRmEo5FnjrE1L4GH80h8l4StTD90xo5Prbn0NmKs5Wx4yAkexbLSBloe+UJ+Hl6ramzkitQ5dRP0NfqeDg2nW6jwrbeVr+vfSw7rslx5Dso015LuKVJrAaha+ByGMNKfEj935BM2nu1R2eWy2vemYJE/FR3UvAeKg6o4wchU+fYrwi0zyRhj4tWkjbregVNDu2BoJVarzm5RuPSHS6dbf7aNgtZrJU1fIGcorKVDy+hrGQ9ifqmysJ5+SEfwk=","translations":{"en":{"changelog":"### Fixed\n\n- Fix Statistics chart rendering for regional locales.\n- Improve compatibility with released database migrations.\n\n### Added\n\n- First release"}},"signatureDigest":"sha512"},{"version":"3.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud/health/releases/download/v3.0.3/health-3.0.3.tar.gz","created":"2026-08-28T21:58:34.055939Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-28T21:58:34.110952Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"jI0QMAUSSA9THAfB3W3JJo2Jb6M4a2HqL0Fm3oqF6uGzL1TtmHVIJpA+QS389Map+CK4nX0kiH08Irs8SoE/AlLOOggZFiAyI2E/IHUtp6v+xrItKZgS7/j7wQkk0tuGSuYVv6OQ3oT0rIyvV803ONsTRNgdRxCLqamnJRQmXW/o9r4KU0xmfc8sxVzanhbGK4eCQoO+TW8TFldEYQN1LCXm51iW05aQGp02dpBFciGtAvoIHEPzW8mPemmqPc+hsxFyCILrsIbJsmeMnI+7596oRzV6EshbND3uiN3TixaUNxI5i7j3nc2HwrqgDnckhJdwZTfV+zb06HAo/gsXfeF7vFxn9OTqrVZrGmiMzBj8vgDcBzY6uL0oj+8OQy2dvJSJqG4rHARL+TCPKuOfvHA2uzL9oxin7atmckRiIZTr7mButt9h4bH8bFCQIi6DApYc6wl+R6WWKBXc5Lz8oxKnLQ764x0bjix9pMR/epJYVMRBw5ZYW4hkajs8Lp8lxpUq50Y9HUqcvS4AmHYyR3wA+JRWrgb/mhWt2bsUUKcAqaOyqqT8Fe+afrgbVz7G3F3/WT+etSosWhjqKjCo5DtsL2teDHmUV8/Oa8l9dcu9uu28HUhYb93jtTzekqCIG2nIPWLuSKZp4opO75gRfH0uWGeIOQX9KATWRfPP3Vc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL2hlYWx0aC9oZWFsdGgtMS5wbmc=","smallThumbnail":"https://dl.datenangebot.de/nextcloud/health/health-1-small.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL2hlYWx0aC9oZWFsdGgtMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL2hlYWx0aC9oZWFsdGgtMy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL2hlYWx0aC9oZWFsdGgtNC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kbC5kYXRlbmFuZ2Vib3QuZGUvbmV4dGNsb3VkL2hlYWx0aC9oZWFsdGgtNS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Health","summary":"A private, configurable health and wellbeing journal for tracking personal metrics, habits, goals, and trends.","description":"Health helps users track personal health and wellbeing in everyday life and at work. The app provides a configurable journal for metrics and habits such as stress, energy, mood, hydration, breaks, movement, sleep, weight, and more.\n\nUsers choose what they want to track and whether they want reminders. Quick entries, check-ins, and check-outs keep daily use simple, while daily, weekly, and monthly views and statistics show trends and goal progress without medical diagnoses or automated health assessments.\n\nFor even faster mobile entry, Health includes an installable PWA with an offline-first quick-entry interface. It lets users record enabled metrics with large touch-friendly controls and sync changes back to Nextcloud when a connection is available."}},"isFeatured":false,"authors":[{"name":"Florian Steffens","mail":"mail@datenangebot.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8636363636363636,"ratingNumRecent":0,"ratingNumOverall":11,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhFXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAxMDIyMTEwMzIxWhcNMzEwMTI4MTEwMzIxWjARMQ8wDQYD\nVQQDDAZoZWFsdGgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDIfYts\nffph+8umpLqBCpADm6rFcidNWGNFqJfUc7GbYj6LYOiDEvvudwWszXy88LI3VMFj\nwFJs2XaAfl50c4wIIgzy/ryRup0JDl2tSqrmdCiw52n+FOU1D0qsQVmajoQmeiPW\nwwt4XfHt8JwQ1EYc1+oAqGUm3hew1s5ehxcQ77S8sCuEPv0Mw6G2NzEMfWzMooU5\nbBiSAzwRqydm35Sfta0ZHT6LnDZG4pQyoXvunF39i8uStrst+QdCAUbcusODhp0a\n6SwgUFq3TmIw9U6CqhywngwosAYIDs9J6Rq/+6MAoduELBwDbzeB4+NSTTG981b2\nq5Tad2S3LAMuvCEbm7DctrIN5lATm4tWuIMEDOmQhL0quMsxcw3fzZEm0ep/Xk1n\nadawI5QZ6gABK2WBgJyI+LFO5Z4jhdekm631PRoAW3jotVV6tm1/xGLJAkfNmMsA\nMQU0G+pvU4mgJgyVlL0LOspNt19kT5FwD9IVWDysAOs/Q/HdVEyGn7pB3WuQEZu/\ntshbBzUbgltmaLgOzEXJ4XIVbNRYww+ro2H3Nq0/fl0crxGki82pY9+D6LwB1R9S\nlvY+O01FiAQEnSDmG20sxoWGS2zXPk5A1iFfhbjhB7Cp0heykAKQ31zHk+bWtAB+\nPCvdqQd5WJ/OonhgfXrTkisx6S9OhTYoNwzsJQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQAJMNua3ehFByIgpfUogzKrJiURxg7hsnOiv8z5/ovxT5o7Tdo1R2n22dwU\nlEMC9M5vsdqv7328ynTZjXmwFe4JQtSbrxmLh2hMnYRPLVgb2/8bt9THym9lfAA3\n7cyzfxkE+VOL4RdU33HF+GDxnEH/aFnZclDgiKEM7cQ9MeK+V0XqEjTdpXKjGjyO\nv74G7GdrUtHo/OyFP+z68PVAJOmsMwrsTuvyokxiEt25SQmXIBGcTTguZz5h3Awo\nqf4dCVt4zmaEQYi4QH87nYygA/1J3T/DJcGldnqCP/qIb+dUmKb245gkbPoANAFr\n6BbuiYb+1fpEJx5FKySlGpiplCuK\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"educai","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/EDUCAlliance/talk-ai/issues","website":"","created":"2026-07-14T12:16:56.226364Z","lastModified":"2026-10-14T22:49:14.461910Z","releases":[{"version":"2.43.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/EDUCAlliance/talk-ai/releases/download/v2.43.0/educai-2.43.0.tar.gz","created":"2026-10-14T22:49:14.454531Z","licenses":["agpl"],"lastModified":"2026-10-14T22:49:14.496962Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"AMtSbC9uy5iuFzqdLyntbJZf8BDS7EPLtSCvkSzDelq9y8e1I7i+pwgWdA7pHcStvvHnFA8xL5WOwYQ2AX/d452OEKVUA5h4WWmYEa6BIZp8/0qTBLzcVMyrc7lC2sPnyTvV4tdueBRk8QJAnKwMfxsxsiTANlHJnBmx9FfYhpDhveSjzLl2GxvJLkQC2as8w4TqegNATxnD04s06SABq/HP3gTgX66EhwztDecYbmyxoVMUZ3E8f+KcE5sUjgkj6ehT5j2GVgX9fx5Ih0w539AXYLU4qp71DWGc3qCtohjPCk/0vpxdT7kyCe3bdVovQn7TrfTv7pVj8vr1K7PzAnzfVY1LCi2pZUt5/0xc76FaNmhSDBX8R7gSaoGkxRGghoWBX1DLHrt+5ESQtnrqw/xlzF2Ei2Ri9ZCSF8zxR7ra1EYIq3kY72z9dSnLKiF3LbuJyCL0sudl+TcweOeBU0lupz5vFS03dacY6zDnHGwLk0YHwCzp0CiwnHbZLcElkRLC2HoDyZz/1FLhKJrMfP+XMxGBMD2f2U/2INNAEhlgqdtnvxsF8BWbVR/khE6yld3aRQe4V2nLgh+egQKqhMDxO9aEAGaI0ifKXN+I2JXvndGlOGRYbX2Uwt1u6tMINhzhMlimNLIzt9xVa3RxQXnhafwkVI7xKmwqsA4V6/8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.42.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/EDUCAlliance/talk-ai/releases/download/v2.42.2/educai-2.42.2.tar.gz","created":"2026-10-07T09:49:47.539175Z","licenses":["agpl"],"lastModified":"2026-10-07T09:49:47.595400Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"LJ5xZPyyoW7+LQpsTLFfRqP9pKt4m2M5aUyCjeOUm14VyYjBH6KL36zoZiEvtcQMQQbm/OW/HilAXNW0X2HnR3q+TNBTumC9WK3U5yUwE+SjXq19MOcxdyrRiHW3Wk+yPRZF2sOKfJRSCzWcLum7OmB09HIsJXMqXgqQfaYBipimDV3KNkIpLm5/7DoSDFeDRDifl8esDzuJNFwbNVFzvdh1PaH62Pvh5Hw/xYE3Grqkia4J86rd/UmYwIrbutIJBWX+lDUmVpE+XuEHkfRTrFYICSpapN6IMLXzIlMYKSLHkmy501yNkQgA4u5+p00vHtExcCRM+NQgAJfsJh8sD9BvJefDVrSD2Z+d2rxflwZiKszrQQ5bzbBK95wPlYb1Mdwb4XyEGhUpvffIlEVZoUoZToZrJ5t8f36lTCDf51OendSstoSgI+mVwA4fWxT/c7pzN86cCb2XpGTI9TjwJLzNrxWfmak9Hh+Iks05bjjU41p25RawAyZtxvAqTDSNlTVg2jGt/ShPh17OouZwCKBQd9pBWSQ1eS58p9Z4rZWq908ePY7Bqv2xamrLWzlPq8QpnVfB7LJ9YlpI9hOclUc6+3pq9ZKpEysT10fv8tbtcxLgKaQNFL2rZb3yXkBUu/HD/L+PmmkAaqHPmVdIfPBUygRaxFxAerMtLB7gyEg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VEVUNBbGxpYW5jZS90YWxrLWFpL21haW4vZG9jcy9zY3JlZW5zaG90cy9ib3QtZGlzY292ZXJ5LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/EDUCAlliance/talk-ai/main/docs/screenshots/bot-discovery.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VEVUNBbGxpYW5jZS90YWxrLWFpL21haW4vZG9jcy9zY3JlZW5zaG90cy9tdWx0aS1ib3QtbWFuYWdlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VEVUNBbGxpYW5jZS90YWxrLWFpL21haW4vZG9jcy9zY3JlZW5zaG90cy9jcmVhdGUtYm90LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0VEVUNBbGxpYW5jZS90YWxrLWFpL21haW4vZG9jcy9zY3JlZW5zaG90cy9hZG1pbi1zZXR0aW5ncy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Talk AI","summary":"Run many purpose-built AI assistants in Nextcloud Talk, with access governance","description":"Talk AI turns Nextcloud Talk into a home for **multiple** AI bots instead of one generic assistant. Each bot has its own system prompt, model, knowledge and tools — and a visibility scope: **personal**, **group**, **team**, or **global** (with an approval workflow for shared bots), so users only see and use the bots they are entitled to.\n\n- **Multi-bot by design** — unlimited bots, each with a stable @mention, own prompt, temperature and model selection.\n- **Bring your own model** — any OpenAI-compatible chat / model-list / embedding / vision / speech endpoint, with a primary + optional secondary endpoint and an automatic fallback model.\n- **Knowledge (RAG)** — index Nextcloud files and folders, with optional Docling conversion for PDF, Office and image formats.\n- **Agentic tools** — built-in document search, room-document search, image analysis, audio transcription and persistent Markdown wikis, plus an extension point for companion apps and support for external MCP tool servers.\n- **Native Talk integration** — shared Talk bot, Smart Picker support, signature-verified webhooks, admin control over providers, credentials, rate limits and tool access.\n\nDeveloped by EDUC — the European Digital UniverCity (its package id is educai). Works with any OpenAI-compatible endpoint on any supported Nextcloud install.\n\n### EU funding\n\n![Co-funded by the European Union](https://raw.githubusercontent.com/EDUCAlliance/talk-ai/v2.40.0/img/eu-co-funded-appstore.png)\n\nFunded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Education and Culture Executive Agency (EACEA). Neither the European Union nor EACEA can be held responsible for them."}},"isFeatured":false,"authors":[{"name":"Pascal Kienast","mail":"nextcloud.apps@educalliance.eu","homepage":"https://github.com/EDUCAlliance/talk-ai"},{"name":"Giovanni Fonseca","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhOXMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzEzMDc1NzUxWhcNMzYxMDE4MDc1NzUxWjARMQ8wDQYD\nVQQDDAZlZHVjYWkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCGj9Yq\n2/o9wpCSoaZkmvVJkxYYOv3p+26uc7/qCrs+bPOAoT8iu9bVhKK4xFluVnwjv9+a\nxwlPlt5QzawDt0ISRq0X0ylSQaE9JqcaDxCJD51XMNKYXU5RgH7PiQYETMgYqZBz\nnfaCwVjWxVuGoF0Cq9rQ5Aff4p4EXnVzuP1sqQJWpQ9SbKz5IUeIKCVXBYkvjbSx\nYIxEMQNxk9I1ZBsrPf1fBJXRml9KjGmxvsaKBPWDZPE9lfqg2db3bApLg7jryLEx\n24sVXTXjXqxr2L2AZTIMyz184l32N/ywOFliuo39xuOPAmYGsbXtQXjQSMJVxR4u\nuUDCkQFbHhFHd/F1M3xy6trmDwjJ4PHjfGfw27yAgsXWPkmsLgrENuvguKdMxFHP\nAOG1psk4q7NBfrUHUub17J9saW3qAUfpqB90zvwhypZhbmrdGY0Lbx5TXmjsdINm\nZPtbEO8muKFMWa2u0MGALKDcB6YhevDdv2ZZrZR4cFvzd3ju+5g0401B/rUjjqIw\nILLTQsfMmpBfhaz3plEx+OJum3Im2K5+zFm6zL8iBx9R9Lxxr0bKNEtlbp+7xnOo\nO6QZggMOVwdSMAYW3Y0b7KdCpLJRPyBq7abFKYAozmX9qLk321BrMG/AegNRdNWM\nGHWfobep8B/b9n5pr2/nby7I5VRroL4KLJh5qQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBx1zqbRjRARtNxvgLlb9AJAGV25nk3JKH/5BrghfARQ3krbgc0/Rde5ejy\nN4OjfyzVGqMlq5ag1AVdcr++N5Bnvz3rfepyEwLqtgf9etevLiN7xM4ucVySz1V0\njmma7oJRyl6EPHjFGVznR8ckM6CMG9mCiLUTMPYQSVprtHtFTibeRpVBsIuo+n9t\nVsNRmPa2+ezaN88Q3z/AqPcq3OAP1ihh8+QtljMtTX3wuX2FLEtrvAuga3DrDNdE\nitj29yF4a12E3BZ0Os/YXaeVL9UO4pM2nGASZvBWM8JW1nXFHMozawOBDZgbxKpW\nmzgFjb5/0nwDwYhbY/5PdiPO/9dQ\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"autocurrency","categories":["organization","tools"],"userDocs":"https://github.com/chenasraf/nextcloud-autocurrency/blob/master/README.md","adminDocs":"https://github.com/chenasraf/nextcloud-autocurrency#installation","developerDocs":"https://github.com/chenasraf/nextcloud-autocurrency#development","issueTracker":"https://github.com/chenasraf/nextcloud-autocurrency/issues","website":"https://github.com/chenasraf/nextcloud-autocurrency","created":"2024-12-05T17:14:01.706333Z","lastModified":"2026-09-16T15:36:56.710980Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-autocurrency/releases/download/v1.9.0/autocurrency-v1.9.0.tar.gz","created":"2026-09-16T15:36:56.674056Z","licenses":["agpl"],"lastModified":"2026-09-16T15:36:56.798778Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"WrsMCgejk81qA5xNKF0Cv5n3oGtvhM8rysIFNLYLRZdm4oerkJ8Baa9UAwn6Red8kRGV2LwF7jZzGyqEOhHpXKRUd2iXuWfhURe9xn0U9basxBxf9ZS6D8IjaEK03XHq8w689EmCJzq+TEXoIYewjx4xqo9NKeAD9TTdIKgRPQ9Bhr4fP5TFPD9i3ntxrSy9mRwXR7LffOI2n1zuIiKblUh9sdwWZj70vnzJf8Pn4n6XhAzUUIznBf2OT/gaJKqZDOi0G2gSsvXCt+boheK0DESMV8Pq3wlX65muvXUY11SBM/4J1pZ1pZC/oPruWDnXkoqq0XiSrgl3GoAFZFI0Sb3k9MFw30R5lIWwB0v2uiTnxkbDmtrHKgvoZKGEj3e9ugPBPXBvE5umA66y9fmkPj8uUwrcCEuroMpAHmr9h2DC6vPzMdBV+OtQl7cT/flMKEZTIkzLEvAFh2+YWzMJ6yBUkehpUjGJo5Ky23GdjuviSgU6sdgLAtGNC1jsm6ap2BRmPzDv4e2bbgZqwbjytyP90ZjMH2ix20OLNNBkP+FDGV0AgVpPn3w0Ep9JK+HcxaOKfX+nilBuMT1t3T960EDM/wXUDE/YBjkY+m1NNIUQztqWnLKYgqBhZ7RvVOI5RrftMf0r/wc88TSYImLE4Jyo5W8/JVlY+IhtRUxzpLA=","translations":{"en":{"changelog":"### Features\n\n* add support for Nextcloud 35 ([b3d10d4](https://github.com/chenasraf/nextcloud-autocurrency/commit/b3d10d4f282c7aabd9239798a8f1be69f91c61ab))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([b4bf98b](https://github.com/chenasraf/nextcloud-autocurrency/commit/b4bf98b38f400da8263e7e92737d8cbed1d94ad6))\n* **l10n:** Update translations from Transifex ([e057a35](https://github.com/chenasraf/nextcloud-autocurrency/commit/e057a3547f497c73d82f653b6c4884442879675d))\n* **l10n:** Update translations from Transifex ([eade3ba](https://github.com/chenasraf/nextcloud-autocurrency/commit/eade3baf2f61cba30e91fbdfcef75fef909993e4))\n* **l10n:** Update translations from Transifex ([7ca7c3e](https://github.com/chenasraf/nextcloud-autocurrency/commit/7ca7c3eeabd46c798dc1136d3cf288328be55c32))\n* **l10n:** Update translations from Transifex ([4c693ce](https://github.com/chenasraf/nextcloud-autocurrency/commit/4c693ce56ec7a0b58f34faaa36c92139c568f0c6))\n* **l10n:** Update translations from Transifex ([403964d](https://github.com/chenasraf/nextcloud-autocurrency/commit/403964d2f22109e93938c5e44841a51dc930c13d))\n* **l10n:** Update translations from Transifex ([6272bdc](https://github.com/chenasraf/nextcloud-autocurrency/commit/6272bdcd55658aca19929a99d1ca1b0d1a5e9ff4))\n* **l10n:** Update translations from Transifex ([5a82fae](https://github.com/chenasraf/nextcloud-autocurrency/commit/5a82faebb0c0cb9c717ffb6b36f104a0a130358f))\n* **l10n:** Update translations from Transifex ([3a35b80](https://github.com/chenasraf/nextcloud-autocurrency/commit/3a35b809a194ca89433bfc6f86de50dc76b2795d))\n* **l10n:** Update translations from Transifex ([fde627a](https://github.com/chenasraf/nextcloud-autocurrency/commit/fde627a37dcbea32e032e74c6cf10159a7ecfd97))\n* **l10n:** Update translations from Transifex ([029532d](https://github.com/chenasraf/nextcloud-autocurrency/commit/029532d54e78fa68d88a131f5170c5d6d60c7e48))\n* **l10n:** Update translations from Transifex ([3adbd3f](https://github.com/chenasraf/nextcloud-autocurrency/commit/3adbd3ff67608d76b3674312f75b5bd857223be6))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZW5hc3JhZi9uZXh0Y2xvdWQtYXV0b2N1cnJlbmN5L3JlZnMvaGVhZHMvbWFzdGVyL3Byb21vLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Auto Currency for Cospend","summary":"Automatically fills the currency rates for your Cospend projects daily.","description":"This NextCloud app automatically fetches currency information for your Cospend projects, and fills\nthem up using the main currency as base. No more manually updating exchange rates!\n\n\nYou can also view the history of currency rates fetched in the past, and see how they changed over time.\n\n\nIt will automatically run once a day by default and use your currency names to fetch the correct\nrate.\n\n\nInterval for fetch may be adjusted in the admin settings \"Auto Currency\" section.\n\n\n> **Note**: This is a companion app to [Cospend](https://apps.nextcloud.com/apps/cospend).\n>\n> Without Cospend, this app will not work."}},"isFeatured":false,"authors":[{"name":"Chen Asraf","mail":"contact@casraf.dev","homepage":"https://casraf.dev"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhKGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQxMjA1MTExMzQ4WhcNMzUwMzEzMTExMzQ4WjAXMRUwEwYD\nVQQDDAxhdXRvY3VycmVuY3kwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDat0ASiolmNoNDO0peOp6BIW+dpy9npt4DdVEkRn0q/Ck3kIpAQbKWRzbq12wh\n1RVvnFCUx+GWxGto2cNxIgjXvFwcz+IBACD9ZyEw+yMbAd1XM+dszZwx4PuKV4f5\ntWMi/Yu8xTTbTFLp3ucEOSgA9Z+UtvE4NV+ahCIS/g4RSZqoWta87biBTy8edLEG\n5o5ALKMa+YyAzNJmB43kcCtfjJfFhNnX03Bd0QrV0ycZypMXuiM0rW945RIr9Bi5\nidGdd3ZJ3cA7OsYTrPDtB/sEz2B15gtyzsD3JVMu789DY5ek5e5KAkuyazvI3ZIr\nCmgGVOeWoPCs5NAnv+GTGmIm1qxSJAJmeRXKF/czSG5eF5wHR86BVhSrwB95jDJy\ndNPLsY6rl7htFBIbt/rmnPBL/ezhcpKjb3GqhxgVczg4LgFzL0LAnwLEPpIbdUZS\nSS4Vd50j98/tuY4lmqcXdPOZatRi7kKFYh09v8Sc/GSIrjgOI78qVGwHRN8PWOnI\nL0COODVisUw77+UK0gGr/Pyf6Zxf65LMRC7SoK41B1iJwKIKWFV06c/DoEK7SiDZ\nc7ZZaXDKRKqaz3cuLIo7NnqWbHHbFhoU/71RbHs+4Igv0MXPUNC1+A46I8mjY4f+\nlxRVz3Wros6oaueUVR1Ap3VmuEqURAI6qJDyY+rt39iciwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQCWnw48gMqiby3PQCDUtDDYeHSjFjuLSWJqHTztEtwj69mxnZtG\nka+xHanHkktn2MkgovCXdIKcao1jB7jrQZC9C8fka9ltYcgsZhqlIz20Hz6iNDon\nzub7UdcnbMAbBuFxJXov9CEVftrCCN5dZ+C/RuTNxBY3tX6Mk8GD6VnYrul6OlcI\naal/biEOo5D56PZKG3FLSguggH1t4wMQTaZhu4/cfJBDzdwp7v1jYj9nNeZ9jvNu\nnDETzUqHPziCGin030UObn23jvNybn/lPoyg/lerBr0o6yuv8iC/YNMkJvLT0n89\ncWdwKB10Tx0IokDbzvTj36g7Sy3ZnvabAJvl\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pwa_suite","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/manuelbernalcarvajal/pwa_suite/issues","website":"https://github.com/manuelbernalcarvajal/pwa_suite","created":"2026-08-24T14:26:28.830738Z","lastModified":"2026-10-19T15:12:24.192577Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/manuelbernalcarvajal/pwa_suite/releases/download/v1.2.0/pwa_suite.tar.gz","created":"2026-10-19T15:12:24.176273Z","licenses":["agpl"],"lastModified":"2026-10-19T15:12:24.239689Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=34 <=35","signature":"lhhUxMOqmMh0GYcwXpxV9KMqsmkHlQQ5bdsqI7n/ODp1l2zuN9srXLziOeQcZinV\nbNhUXmbS2S7U1FCJT+8/j6LCJGlPQqggIdM3GyLN4o9iBChpsQVMHnlwMgqbgyGH\nOWYsRaF0msiStFsfcP69ZP0HPJcLDqrohIw26ZR3u30a/vTUyb4sVidMGvkfM4ZW\n5/x1+MtcJF83hzVoO6rkPVQZTNxVn+QZ5Fdyai+XcANAK9NoiHkB/ZYB8CxXPFpi\nnlpy5Mpufqdx1M3gju/jH62ey0gpBmm1/yO1z263QPYiRxdtg7Ez45VUcE1LIN/r\nveNyVA0Ftk4WN7sXmUM/6630f5P6i6YmiW1KhLLAgVisLcQqbGklltf8ZbGH3aGV\nP2vf9YNwHiqpi629qBGhXAsuFZ3hl/+inEBUqiUR0aNq90n/+knee557lvcper9w\npuG3cH1X9fHZVV4saRjJnwxFS5QHT/jvU6OTN3U7XBLq3jcgd7K3WZGA9S8kFTeZ\nNHcZ77lgwYhaHK0WlW3XTlHc88fkZfdhikGzpDakAHqZ3YOXtdfqp1XhhRPQkgPA\nvhr7YcpG+r94O+mAufGj7X/RAXrZDNzR6v9Bf8nRLQ+2q1IWwOWHVgLgYyqyR5r4\nEW/0gCba3STaLciJD7+xSfQ063svtYrqWrSBRpNwZRs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"PWA Suite & Customizer","summary":"Personalizador y gestor de PWA para Nextcloud","description":"PWA Suite te permite personalizar por completo la experiencia de Progressive Web App (PWA) en tu instancia de Nextcloud:\n    \n    - Configuración personalizada del archivo manifest.json (nombre, iconos, colores de tema y fondo).\n    - Registro y control de Service Worker personalizado.\n    - Optimización de la experiencia de instalación en dispositivos móviles y de escritorio."}},"isFeatured":false,"authors":[{"name":"Manuel Bernal Carvajal","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhPhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI0MDkwNjUzWhcNMzYxMTI5MDkwNjUzWjAUMRIwEAYD\nVQQDDAlwd2Ffc3VpdGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb\n92/S4wKyjj7IE6YodM/+rWUxOGXKAzVQjpOfTZUKmXW8efHHSsma4vzOUMvrELdZ\nHSfI62JFe1JMl8XjdkTRhZE0mSabKihqX6Uu7Q52DfI5GTuMESMK/mupgJr+6soS\nzS4++IEbsGUxtMaFjMe3SWP24Pi30dyVdNLQX2qgxrcbPoM1rhPkspwgqCXUwXtK\nCgRT+YBizUElCVEvud5nCe+pW5GzaDKKDlib2vdaTtghuI4WwmgBcle6ZA1QbK5J\nP2Oc1WrF4OjQyHon6yib/m1G4RIq1aldtP8fdT9kab7K1sHP8AedhzVgdK4HG+WH\nd67VZZBRMqvj11BgW7DO0ha2Wi5jFoE9Ab1n4JShiblCUMVp+EP17Z0mQC5vgRP7\nQ/wbwjmRsxjidiYhLyTfmcQlvjXhtywBVCA2rJ8y6MooLyzN33HWS8tr/2JItkJE\nu7lwemmuFyHfaLHzDvhMyRah+3AZmzLRx6mD3JJun/42gTC+vIG+Xmbj9Q9XQFYA\nd5PK+mRIh4zTCV/2iNqmzzUqimVfEDPOzAaw4QwP7sNr3Y10F0Bu/SWS/rV7qvrc\nAeX1Od1DOoiSGSlcDaV3jfswwXYyyuMrctZt6hNu0yMPt3ZT8sRR7ykovYRiEK+j\nIXYNyqRVnqTPNCE8pooetTU/+vKrZT+y78LBbpiTgwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBYL/ISqa7Vcd8jsvBxSWoA/HV70CLwG+zvqI9aEbcGc5hchPVyPnOA\nxaV0G1+8htx1pRtRmkB2wGU1MlRQrv3ViApEkfzko9aiGiltrqDHGF01+Cs6O//B\n6ZhJ3MRvxm4bVzApYJr/mq9wfYRUAu2EI12dCROf0tjnw2/24ph0yKAViZTgDo5a\nv0B1rca17WfjMLADQhKWNC4pNCBF+BFcGbn1AyifxGaMpvQKCGc9fuMHSp8rObhp\nY/oEnxJ1V3oil2PLQ7U+Z02esxdVBYyRJTbtCaO+yPtKhSTBn1hhlHu+I8/RUvPB\ndEz5QrKB21ot1Et8gQnmlKPtc7W4hAxC\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_docusign","categories":["files","integration","workflow"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_docusign","issueTracker":"https://github.com/nextcloud/integration_docusign/issues","website":"https://github.com/nextcloud/integration_docusign","created":"2024-07-18T10:48:14.847648Z","lastModified":"2026-07-15T18:09:37.243191Z","releases":[{"version":"4.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_docusign/releases/download/v4.2.0/integration_docusign-v4.2.0.tar.gz","created":"2026-07-15T18:09:37.229037Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-15T18:09:37.294300Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"UVuNpc9NaUvDzrsZQI1FTOFVBnE0KdiqiptutzUVReMBze0uLZkshEeOQ7d954uIClWUipOyJP70KbhiAV3KxzbTCwjpqpSfmFMigYZoAStlnsD4LlWi44fRHqq++qbSMMQCuIRAUR3/weJr/nFVp0m8UUfPPYBQg+A31c6xG4fmRj8mVlktUj+JYYj+O/3plMRG41fvw4jBx+u0ojOR8bpdBs9PvCsnZSiQvr5uny2ODwThqib2iPefosETbpTqka56UHxPDm/t/dIYdzGSo0gIfo2eLcyvrfkQXywZevlLWkp2eQWNJsuKSD3bX1drI4tUkTN1D9uIzT6xv4jaGlhXwA0P1TyCth7L/oT5hUxqiae5pQ7LVd0fsoO4PPjNnzfCeklHvHTC3CugOb7ZjD1YPREy3VqDSGsnq5CReuQRaDlqg3IXO1CPhVlFPTWFNqqJodCsdTWRmduKeWtOEsKmfKmLJsrW06etsl6hfExvzbKeoas7/a6UaiwYhM4iYit0ZctTQJBQ0UY4A4v/g06lJuO7AtSP8tW3Bnaysun1BCULoDZa37RAtAelTfeN4RADugLBfOQMDUMHM9Pxhy9pWsRN2Mqoptke9tMMqchd1Md8lRtNIwhH5sCnvV7xL99C3cLIBnQka9oVbeeqBBPqmopghFEjn8bL24EUEq0=","translations":{"en":{"changelog":"### Changed\n\n* Bumped max-version to Nextcloud 35\n* Multiple dependency updates"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWZrbC9pbnRlZ3JhdGlvbl9kb2N1c2lnbi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VzaWduXzEucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWZrbC9pbnRlZ3JhdGlvbl9kb2N1c2lnbi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VzaWduXzIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWZrbC9pbnRlZ3JhdGlvbl9kb2N1c2lnbi9tYWluL2ltZy9zY3JlZW5zaG90X2RvY3VzaWduXzMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"DocuSign integration","summary":"Let users sign files via DocuSign","description":"Sign files via DocuSign Service."}},"isFeatured":false,"authors":[{"name":"Edward Ly","mail":"contact@edward.ly","homepage":"https://edward.ly/"},{"name":"Florian Klinger","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhJBMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMxMTEzMTEyMzU5WhcNMzQwMjE4MTEyMzU5WjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl9kb2N1c2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBAI97DvbJuHpI1CXwMQHgPTaK5ypURSF9W6pwzY6M+YhNs3O+yRw7\r\nh6xDV1OPPHdOHcVrevWzQONqtsu0HyRP+JssOWLwW2vYT/Ht4WhrAXkZmCztHVd+\r\nqZhXWgi+nRr0dECgR3h9SX0TMXR5DzsENts3UTFETD+K7ltM5vG5gH/jI9M4pVoX\r\nqZPZVRw9uGp69a7lmyli7U7ZF1/TqrrF3/HOBeDXaYVfNf40udcBeqfuU2RT5iVh\r\nIuf+N6NqklP5ldJedJiYYYLwjHq1+kJp8D27RZrJ70qtYdL+xFLJbaxQXC33dhh+\r\nErnZ3C9oTUHQ7X8EcAtKchWdkauXQnVHhFGeSYQ2ICVOg9Pguvn9v1a65ZnKHEjg\r\nA2PlBf/V8Ypcg2ihxp//EHH9w+jtDUuDgncRpauh8tcXPTTvOs3CXjUVdJYmu9Ge\r\nwMOIKJHMPyibQ0rliyDKhh9Onjq4JL7HsbDpp9L7eKomBoUyQeE1R3jJg1v2ptMf\r\ng27wK9w0DsGLfy3JgbiXWf/dGDPwDvU0moFXsItByASmKb/aggqv+KtXuCZXxeiz\r\njM7/y3skIlgS4MLYF6zfp4bd1JaZ+13VFJkwD2eAujY0weSAJWwR3udHfv4MLPYQ\r\n4bz7sDpXMpCaYnVp6GnFES+C7kkUzKK1RQo+zXqhClbP/PLUulvEuVjrAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBAIDpEmRPzJ+L422ials3WC8vNQ5tA3UD0G+Ucyhd\r\nKbw+ZKBGGZ6QPt5qY4P8wRVn75FbZJbNJ0cZtiWij+m6JenvnKE9Jp1xgG+2VEx/\r\n8cMJ7k39D0uohCacBZTQ+H7Q1pao5BuPBPEj7wy2lDCjYRdoJ3Uwci0IUXBQG5yk\r\nrLa5vm0oGQ6WkGG8uphraCnT4+zW9V944j4y7TRQ3QR2msthrZlozycWa8G1DHjI\r\ntFNxItbqQNzMR9F3rKfa5QOpxvS2LRDKv8RJARH4365aUbGwau7HXLEJugrjmzzE\r\njaYjhyVsOWYmlEVBCvY/V6VrUH+nYmLNLggl8sZxnKP2c88=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"homecheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/issues","website":"https://nextcloud.software-by-design.de/","created":"2026-08-25T18:09:16.152936Z","lastModified":"2026-10-10T15:29:14.729875Z","releases":[{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/releases/download/v1.1.2/homecheck-1.1.2.tar.gz","created":"2026-10-10T15:29:14.720349Z","licenses":["agpl"],"lastModified":"2026-10-10T15:29:14.780018Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"d8b1xxfZg403SFPGAXo4736LtYaMalTZOv8dwcNT1ec3ViFxr7GCpnxQ6foeJ0YrWrt0576VUo+k+Eq9/xcdhs8qwL9aT9QK26ncGdNqdNljvbEAF5T1P+yas4nXLXSNYc/bACi7RNGD3yCc2tMarcIbVrSco6ColqA0L4UxmRIeN7XdTzeDDHjIPjglIB7t05PWwGPTieieOJ2RyN6xFtOZK/wJyhHRwHCZp43RTN0BPtRnnzl4jGrUAfb5FRLHBxaLmraKACyId618eV9McCoe+9P9JSpxMIOkqMXpa95SeqFfCIfqVbFj9TzQXKm5nKR67SDO9Cz7GpMDTxLlC+GU2Kld1zCu/V7+/WBpvDSa9YKMUOOHJ7gsT9tVsKfVt43nNLf9MOcRMSew//0+2BqZoZG/qDZ6uAn5XUMkq43VdXPj46TULdDT/OB147TROphiPb+MFs+WqlPILRXGci1VqLunCV1boFU8w9CDuvBxjwn1MtJgEzsKTeClRnRjtdWNcVu67Oo5LayFFKIMH+QRttygGAER/60OTCJAFA24Aj4vvb4ls3yU5PzqPr9aYF67a/FKO5uAXHA7OgwBrF3cHfG042kjleXGn3XcAPNtzO47qKoHs4rAhLgv3lutDvNJDqeFyjzQBFYKGIWcOVgKvuwJwz3SpOP8n/N3/SA=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.15: homecheck exit_met seal"}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/releases/download/v1.1.1/homecheck-1.1.1.tar.gz","created":"2026-10-04T19:10:36.177066Z","licenses":["agpl"],"lastModified":"2026-10-04T19:10:36.219956Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"GNarqFs+WgctuiRQaRv8MODj4kBnsCNLczOkO4MmHASWMn9ZaUv9qtdIb+JsC3sDl/uq7hIQccoCAS97ifpzmOdT+Rv9Ote7Cna+4K/E2KqE+z4hmo1FePp2EK4Sz2syuRmpMAcJTXldqv+8+kZRNw4W0zu7wq1qIi5aA/gYH5Tut7yiFxbwqTpU532KEgzO1nBGgNPKEtVx5NwmpJZttaABI3knrzimdjrNXUoGnvpSG4GBKQDDeC2+CvaQ2hp6NaR+dQwyauCvQkaC9bIiQ6nsGd7a1fqQCDDaSr79pai3kmwtGRkzOb09DFQsdgaTcrIs9bqVQt8Ys/sy2yai1hvlV3zO87nVv42H1qmYe5/Tp8nAwLGIpbzVWkN5XXq5fR3JuczsCaQaG5pghgGibgKlIT1QMmVAY6aEVGpQUKL0ARYZsw09uGYTGLKCNJml/50dol9wNC2r3gPZ1L1y7vbwjRO/ejk3CTYkF2yMHEgJPzM1tK1P/SMmOzS0BVUi+PlEJj41/RB9X+yOUBEO9IOoUlIq0Wx4Yb1YoVFdR1kRSg4c0V2XjKKyjRoObLcfWW5a64zS4RsDOk3H6FJKwNt+bby2xdNAKCTspfDYzZrYSYCjSTVuvjB36hJW6UcgzbQk9WxAFs3B6Nxv8DuUsD5KxZjVnbf1di3gvq7CJUU=","translations":{"en":{"changelog":"### Fixed\n\n- Localization: fr/pt_BR/pl translation mirrors now carry the correct plural rules (Polish 3-form, French/Brazilian-Portuguese n>1) — plural strings rendered wrong before.\n- Admin settings save reliability fix; high-contrast theme selectors; shared feedback-footer component resynced.\n\n### Changed\n\n- Atlas v3.5.14 verification pass; store screenshot URLs corrected."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/releases/download/v1.1.0/homecheck-1.1.0.tar.gz","created":"2026-09-21T17:52:52.610711Z","licenses":["agpl"],"lastModified":"2026-09-28T14:35:04.009359Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Dmjj3/nz9HdIZsM+/eB6QkWb08SiyXWCBX1Mi39L3PHTUoguTB/1Yg8ts1khGYOOt9iDBknCBZ2jb1jbQzH2qGcZCQUSYiLqhlUf/p599mXNT6NPg1T6g32Gl4MIlM7TFZOfFoZbWLo5Qz7XI0tADibLuHpAUzgO3fFie+virNiftmb983XA4TJ0ZjGnZHr+DWyxpuqyDYd93TV92Nf8PcxfXLPD8m/SYWEmA3SSp2Fg9fBd6bhaiDkyFj8Ye/8EfUPEyxpkANbrcMiklxmPi3ce2/3Z61PlnMbAohrM1NDlyB0e6XxF0areP13jv3cpnKRp4WHwQJkis8cq3oNsS3g+CsZ9aLWCQsVErIFc1kFSzut4wFEoT9nxAOPVu450y2q0Go0+mSU/W0v4YV3IKveNpqqW4WRNJwuiWYwz6cbUkJwPApMdFq0QqNd17fUkyMtiJkDKKzPDZOkmd1Z8E64yR/ULsvw6nWgBxtmLW94rPR6vS98wxgpb47P497KiNBijJLx1BYLWaVuOg27sd/cXbS7L6mBTuxg248GVPthhNC46TvYPrqaIpaqq7MpBZsmpaIDvl9zK8g6CyfbD5fdOigY6yEg04/YZZw+YdBjP7aV1weNvL2a194aO0Z7/Bhbsf8eAVRso/Y/qDYtEdXyzEl3c0hysg0LAjGAayKk=","translations":{"en":{"changelog":"- **Nextcloud:** raise `max-version` to **35** (Hub 26 Summer) so App Store updates are offered on current stable.\n- Docs: store/README compatibility prose now **32–35**."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wMi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wMy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wNC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wNS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtaG9tZWNoZWNrL3JlZnMvaGVhZHMvbWFpbi9zY3JlZW5zaG90cy9ob21lY2hlY2stc2NyZWVuc2hvdC0wNi5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-homecheck/refs/heads/main/screenshots/homecheck-screenshot-06.png"}],"videos":[],"translations":{"de":{"name":"HomeCheck","summary":"Persönliche App-Startseite — Kacheln, Ordner und Menüleisten-Reihenfolge","description":"# HomeCheck — persönliche App-Startseite\n\nOrdnen Sie die für Sie freigeschalteten Nextcloud-Apps als Dashboard-Kacheln mit Ordnern. Die Reihenfolge speichert Ihr Layout und aktualisiert die Menüleiste (Ordner bleiben nur in HomeCheck). Blenden Sie Apps aus und holen Sie sie jederzeit zurück.\n\n**Kostenlose AGPL-Web-App.** Optionale Admin-Seed-Vorlage für Erstnutzer; danach personalisiert jede Person selbst.\n\n## Highlights\n\n- Dashboard-Kacheln mit Ordnern\n- Per Drag & Drop sortieren; Reihenfolge in der Menüleiste\n- Apps ausblenden und wieder anzeigen\n- Optionale Startseiten-CTA und Admin-Seed\n- Theme-sichere Oberfläche mit zugänglichen Bedienelementen\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5"},"en":{"name":"HomeCheck","summary":"Personal app home — panes, folders, and top-bar order","description":"# HomeCheck — personal app home\n\nArrange the Nextcloud apps you can open as Dashboard-style panes with folders. Reordering saves to your personal layout and updates the top-bar app order (folders stay in HomeCheck only). Hide apps you do not need and restore them anytime.\n\n**Free AGPL web app.** Optional admin seed template for first-time users; every user can fully customise afterwards.\n\n## Highlights\n\n- Dashboard-style panes with folders\n- Drag to rearrange; sync order to the top bar\n- Hide / restore apps from your home\n- Optional start-page CTA and admin seed layout\n- Theme-aware chrome with accessible controls\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-homecheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5"}},"isFeatured":false,"authors":[{"name":"Alexander Mäule","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhPoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI1MTc0MTQ1WhcNMzYxMTMwMTc0MTQ1WjAUMRIwEAYD\nVQQDDAlob21lY2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCZ\noDWid9mRR3uwu29AIGiMp7Z5Rb7Y2zBB0yRxlmtEmCIlq1YFr3uBFnt90xGxE3J/\nyejOtmwERBXtnhi9QuPc3HDvY/3Pem/z/5spfe3beqiEQpAwXbDjhGyGg+8UiD+r\nOG8d9ALac0i+c6q36pCwUgibsCr1O9pmJUNgwhamax90TSrslMKjWUm/dZtF/zX7\nOa3nnlx+L5jnSMfv5RQWHFi5VRg466uuzslT5rNG/VjnZ4cDSsfxrB5/z9HQc3Rn\noR6SUoKDdjxOplwCjWCv7IhIfylHDv/49QlT4hUk+kCJGeg2077NTs0V0uG+RUox\nCTDwGel2ULKZdm556fxOtxxl8s6Yt4KQU1hyihbNG8qJ7/IfR+FadFuRhGXt9Sfe\nqI/UYhi6OFuRjOC9ACQhO8CgGko5bpPqUb53Uu1sZ/JwgSmrwi9euXr33Bi+JkXC\nEyzga5b1EHEuqbSNaxop1HlkI/agUFiv4Igoep+oQBJSXSzzTxYfvLhdl0quEKf2\nls1Ph8Qk4qUKNpHgt4/LsPFgM3uYO/tCaciC4qa7THOtMeahsyURspa+jPTpGD6W\n1c1JtbJp+paw6g47KdGq+FxxubgSgX8ehOOa22VsSsjlF6iIOF3cPp8qI9JtpdSx\n6TgDZ8e6xbkIJJ5xOZJf7N/wdgNbD1YszGQENzNHtwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQABg+Iq38v4r039NjRuHEAXxz9I5QJmNTm2uQ7d6pJCP5pHmfcUj32a\nVB00o6djyX/hfWpVwuP5YNs37CvWYzq7mhp4K4nyot9bta6WBOcUBxooUuc3a5io\nAKdxS5MeToh6TZ8fr299XU0oAo00/6pXCQhG73Oof2Y4vZRqp5m5ZHj2PJ6Ny/Mc\niCkmpr3gYQtsajc7UOvukv0o45Pin3wGNUKMk1zDPeNwE1SNEKlrYQbYyFlaJOBH\n5w2K7UuWwh6JeJDX3tLYBfBUQjbhFUefbuW6zkfyzTr4RUlGlay9w1fYngUb1uea\nl+Th30dBRzcnTaRCmpwsVTmJJjrIOG3b\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"large_file_previews","categories":["files","multimedia"],"userDocs":"","adminDocs":"https://gitlab.com/metaworx/open-source/nextcloud/large_file_previews/-/blob/master/README.md","developerDocs":"","issueTracker":"https://gitlab.com/metaworx/open-source/nextcloud/large_file_previews/-/work_items","website":"https://gitlab.com/metaworx/open-source/nextcloud/large_file_previews","created":"2026-10-16T21:51:41.126658Z","lastModified":"2026-10-21T08:19:20.365966Z","releases":[{"version":"0.3.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/metaworx/large_file_previews/releases/download/v0.3.0/large_file_previews-0.3.0.tar.gz","created":"2026-10-21T08:19:20.408253Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:19:20.420272Z","isNightly":true,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"QlEfmRbDiVXpKMp0cVk98dtpaPDqTAxnygUbeO8Kq5IOCMRuTin5Y+Ih+BBTh6/c+oiJl4aDlIHJsCOMNCStXrHpR1iHD9DzyCVZjZlJyB9zdDm3bDlVoAOss7vqe6E56FaX/K+mJgIlQXJprSQGbx1P9Mx5lgySmJl01r2whFSeHtfhF0SNlj+hELFO944e4k4iFpMdBigcKCs5JJMbnM/RWRd0sptXpkx4FDOnF/MWnNu1te4V+Se0Eyi1zqaDC/yF1Zy5lNlQcecpziH9ANOqYBLolxczAhAqdGpal89vz28Z1Rfn513Rpq/pJzX+pYdsDT3y0peQV7dBUCbcKMuzBZMDg9sv3hCkHgpbm4mF3oWXN62ZtjKICGx1dMuMUojZir6jrlRhh4jxU33G6sG1AWf4GC8xBz/sotfppbAvFL7QMEU0lTjILb0mrgR4qUIQEq/eKjvL+j8Z98Mz5DJZcrOl/hbNuM7fZb6HXt77yp6gVjo33COwlPPoZdTSQsOp2sausNqVhinFNZ1zJ6P2H8VdkOLFqedfbCGmSolM8yKkie2Yghk+j6zAGXGthLSd4f8NyKwkTGP24XB5S15jHXk9lYugSWA9Bzwv0ES+7YG2DxqKMHx2l0dAeIhH98vdMoknUPbLIV26Z9dVOGmatoQk/jz/yGlsfUx0ZNE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL1NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL1doYXQtSXMtUHJvY2Vzc2VkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL01JTUUtVHlwZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL0V4dGVuc2lvbnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL0xpbWl0cy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL1ByZXZpZXdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9sYXJnZV9maWxlX3ByZXZpZXdzLy0vcmF3L3YwLjMuMC9kb2NzL1NjcmVlbnNob3RzL0JhY2t1cC1BbmQtUmVzdG9yZS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Large File Previews","summary":"Previews of PDFs, Illustrator files and images too large for Nextcloud's own preview providers","description":"Renders previews of files too large for Nextcloud's own preview providers, by handing the file where it lies to a command-line renderer rather than loading it into PHP or sending it to a service.\n\nWhat you get:\n\n- **PDF and Illustrator previews** through `pdftoppm` (poppler), of the first page, at the full preview size, or a scanned page at its own resolution where that is smaller, for files of any size.\n- **Image previews** through `vipsthumbnail` (libvips): TIFF, JPEG, PNG, WebP, GIF, HEIC, HEIF and AVIF, each type off until it is switched on, read in strips or from a pyramid's nearest level; a TIFF in one large strip that runs out of memory gets a second chance through `tiffcp`.\n- **Limits around every render**: a timeout, address-space and file-size caps and a raised out-of-memory score, each with its value, the two caps switched together.\n- **Per type and per extension**: which files the app takes, and from which size up to which size; anything it declines goes to the next provider.\n\nOnly files on local, unencrypted storage are rendered. Everything else is left to Nextcloud's other preview providers."},"de":{"name":"Large File Previews","summary":"Vorschauen von PDFs, Illustrator-Dateien und Bildern, die für die Vorschau-Anbieter von Nextcloud zu groß sind","description":"Rendert Vorschauen von Dateien, die für die Vorschau-Anbieter von Nextcloud zu groß sind, indem die Datei dort, wo sie liegt, an einen Kommandozeilen-Renderer übergeben wird, statt sie in PHP zu laden oder an einen Dienst zu senden.\n\nWas du bekommst:\n\n- **PDF- und Illustrator-Vorschauen** über `pdftoppm` (poppler), von der ersten Seite, in voller Vorschaugröße oder, bei einer gescannten Seite, in deren eigener Auflösung, wo diese kleiner ist, für Dateien jeder Größe.\n- **Bildvorschauen** über `vipsthumbnail` (libvips): TIFF, JPEG, PNG, WebP, GIF, HEIC, HEIF und AVIF, jeder Typ ausgeschaltet, bis er eingeschaltet wird, in Streifen oder aus der nächstgelegenen Ebene einer Pyramide gelesen; ein TIFF in einem einzigen großen Streifen, dem der Speicher ausgeht, bekommt über `tiffcp` eine zweite Chance.\n- **Grenzen um jeden Rendervorgang**: ein Timeout, Obergrenzen für Adressraum und Dateigröße und ein erhöhter Out-of-Memory-Score, jeweils mit eigenem Wert, die beiden Obergrenzen gemeinsam geschaltet.\n- **Pro Typ und pro Dateiendung**: welche Dateien die App übernimmt, und ab welcher bis zu welcher Größe; was sie ablehnt, geht an den nächsten Anbieter.\n\nNur Dateien auf lokalem, unverschlüsseltem Speicher werden gerendert. Alles andere bleibt den anderen Vorschau-Anbietern von Nextcloud überlassen."}},"isFeatured":false,"authors":[{"name":"metaworx resonare rüegg\n\t","mail":"apps@metaworx.ch","homepage":"https://github.com/metaworx/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhRzMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE2MTY0NTI2WhcNMzcwMTIxMTY0NTI2WjAeMRwwGgYD\nVQQDDBNsYXJnZV9maWxlX3ByZXZpZXdzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEAs50SkFJ3TGGVMFrmNW8iFtT30uGX/AnB5sbfMt1iW9qFqT2CkpQw\nPf2cVrSysk+t4MlJu1iBcfk02dmDx5nmumBnQtf7Fc98BwY/n1YW6oXL7LYc97id\ncql+0w2IPH4FKDnuSpe/tMNrtQ2ksEKz7mTRXy/vu2TGALCBg83U33kyByK4BNYF\nxTuhOdFcDwkLa2edt5gTyIY9N+HubEFmWysa8pO6g9B3B0euxA0635cAz0PxbBS5\nL7kjps5trQGph0Dd1PuciAHbWwWgyIUixGkg3qTaXpzhW0TafET3TYW+rXChc7Cw\nZI+ceghBD6rrxHl7PwjybMHO6yh4zkaYNhDrEaRncLr2SYTZEBoWv+sABSVit4AR\nCzsJ0AUaYV+AbRAb9uufOPQ9L/DEJFyipQgO5WwLVJfmHH/3vdpEtgNp9XkZeU0a\nC6Xwz1AppzKoYtDWUpt19KdLdLtB+RA3DM+wrQUq0NbXvCOPF6ebd/f5eaJB8LzC\nWAG00wXb2F6lGUWIfyZxEX+bpp7fEulb+urQizBDDb2q/fljWepsYBkErFiGK2MK\n++Fwode4d8LscN2ITDcqjQBb3FczO811JMQeVjT3hACfaxi6vTTfaRQBwynjmqw2\nVZigowf/f9W0pI1BA7cbkZZeKuaXyyXtL3GfUmxkGplkRvLjNL1u5RkCAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEAUwBy2w655RMV0A/qa/ZMZjvUpUGvKuAIUg1flep4\n2IdmjrwSmeoqfRWm9vJ5ncQsmu/eFZdOLGlBmNXhSYsJjDusnPPabGwF4yCFAnl3\nMkSvjUaO5SpvHyr4i+uNrawMc8+1rR5OVJ4VQ6ZSCMkFXCUQH3JTd2H6D7maYvtJ\n9sTuk1qg2qmeyoJG/N4XDYUtO8Z3wlSG6P2u0KOaldOS9ZCnZF0fjLfDvKlND8bc\nfac5sBBOPnS3oJhpTKbkukkSvmrRTJ6ltZMFd0qQNux54kIhAl+cA96NgTQXpFef\ncSGoEeorHhpZjhxZPmghGP/ALJR0LnpCxObdP4TskPQ1Mw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cobudget","categories":["office"],"userDocs":"https://github.com/whollaus/cobudget#readme","adminDocs":"https://github.com/whollaus/cobudget#readme","developerDocs":"https://github.com/whollaus/cobudget/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/whollaus/cobudget/issues","website":"https://github.com/whollaus/cobudget","created":"2026-07-14T04:21:39.748607Z","lastModified":"2026-10-21T20:29:43.819752Z","releases":[{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/whollaus/cobudget/releases/download/v0.6.0/cobudget.tar.gz","created":"2026-10-21T20:29:43.812409Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T20:29:43.867050Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"E2jXkz8KnrBWq+o1tU/8g0XGNiWuG0dz+ttFWPftOffBsWopHGUjbbZXORnPj3ABv4Z5A61WTFjNNweU8MDshnKxKrRgk4f13HMxns67zgu5OP2Jr4xeqlcAxo2Ctz6NEFyb/9kNXXstltICZ0YWNw7zOU4iowJW2WTtG2ACaPEMNE56ru5Ywat8VDwhRFr9PeA426bhhr9PV+KbtS4rBhXkpNu1SgDkdlqb9OBuwPWzjSZYKtjmUcDgU/JCQh6WXeMUg1lYJagvB20Dyy7MJkNuMeysTNaeCvHUDhHptAG3xO0uBNs5Ho5zdqVyWSAC1ZHJT4SBBMuH/OuW8GcJFQr/RvSHYLn7MwbYKcsby+nZpc00fh/rQQ5UJsWXsZliLXGH75HUZYLGKM09VT6n4uPJwjszOLr7OBdrSxy8j/nKv1Lm+Q46O5MOTBMKlO9mT+aE1K4rU/ogyScgcFbn8X0sCvwftd/dUzQQra3xf4HD5gyZLNqFhshF1OaEeyBwbR+t5H1LYftn44TosChN//1t+9bYSw6jU971H/wIpnhQ92u4LY57Lx3fAu4bNGVhHA6nYc+hUwSDn9KAEjUpwkEXMflANfmKGx+otfaf3UK0/DX9dyly2QmP1tyt9m7b2oPfnn5jziQt1EkmCsw5WVUDlq8Uz8Bc0t3OA15ZtPA=","translations":{"en":{"changelog":"### Added\n\n- Add a dedicated annual overview for My finances and individual areas, with exact-cent income, expense and balance totals. Switch between yearly month columns, quarterly and ISO-week columns, the days of a selected month, or every day of a year. The daily view can also be limited to one month; ISO week-year totals follow week boundaries and can differ from calendar-year totals.\n- Group reports by categories with expandable subcategories, payment partners, or enabled labels and description tags. Payments can appear in several label or tag rows, while totals count each qualifying payment once. Unassigned categories and payment partners remain included.\n- Filter reports by category, payment partner, amount range, label and description tag before grouping. Values within a filter match any selection; different filters apply together. Filter choices follow the selected financial view and period, and report links preserve the selected context.\n- Open amounts in detail dialogs with payment counts, shares, averages and available comparisons with the previous period and the same period last year. Ongoing periods compare elapsed dates; differences use exact cents and trend arrows appear only beyond ±5%. Open the matching saved payments from the dialog, or use row labels for matching payments without a date restriction.\n- Include upcoming recurring occurrences in future-payment reports before they are saved. My finances uses personal and solo-area amounts plus the stored personal shares of shared series; area reports retain full shared amounts.\n- Print reports in an isolated A4 landscape layout or save them as PDF through the browser. Wide reports continue in blocks of at most 12 period columns with repeated labels and totals; whole-year daily reports print month by month. Printing follows filters, sorting, expanded categories and open sections.\n- Export reports as CSV, either as a download or into a selected Nextcloud Files folder. Exports retain the period, grouping, payment filters and recurring forecast, use semicolons and decimal commas, and preserve existing files by adding a numbered filename suffix.\n- Add optional personal Talk notifications for new payments created by other shared-area members, independently of Nextcloud bell notifications. Opting in creates a private, read-only CoBudget conversation. Delivery checks the recipient, privacy and bot binding; descriptions and receipts are omitted, and changed or deleted conversations require reconnection.\n\n### Changed\n\n- Combine Annual overview and Statistics under mobile Analytics, starting with Annual overview and remembering the last report per account in this browser. Keep separate desktop entries and place Budget goals directly after Analytics.\n- Move area and shared-area switches into Settings → Features and give notification preferences their own section.\n- Give overview tables compact rows, fixed-width amount columns, pinned labels and totals, title/amount sorting and collapsible income, expense and total sections. Respect disabled income/area features and limit year choices to years with visible saved payments.\n- Align overview terminology and translations across English, German, French and Spanish, including consistent payment-partner names and Main category labels.\n- Show My finances and up to five areas in a compact two-column payment picker; use a dropdown for six or more areas.\n- Consolidate the changelog and feature documentation around the implemented report behavior and document the limits of recurring forecasts and exports.\n\n### Fixed\n\n- Include the stored exact-cent personal share of upcoming shared-area recurrences in My finances. Apply amount filters to that share, resolve tags in the personal workspace and avoid counting saved occurrences again. Forecasts leave payments, allocation snapshots and rounding balances unchanged.\n- Preserve annual-overview filters when opening matching payments through the app router and when returning to the report.\n- Hide unnecessary pagination controls on single-page personal and area payment lists, and improve empty overview messages and detail-dialog amount formatting."}},"signatureDigest":"sha512"},{"version":"0.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/whollaus/cobudget/releases/download/v0.5.0/cobudget.tar.gz","created":"2026-10-01T19:39:48.861969Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T19:39:48.911535Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"HtwUhZUhYjMmINH/P4gB5l2VhBzQeKBpqaJVHDri8NXB/fgSXw8QOjceSHE4GRRfj/o90iS6JNSVJTVYhcH6s9Kd5xLtX1w2RpvC1ohFVSClu4i9tbXd+mmu1Cn80DX+Zw4iRM2cOnSvmOBggud4xw7lK3ZIaPUjyAtVuJ+Mwtd4mRrOTapyh3fi1MdRlNEfdGM7JHHJBSd/9fY1ytWPyCl+vWiGzzD9GKsq+ydIBBpYzqnhsobpdb1WDk+OvB3OwNYMVYDa5sjEAUnrKK9H+4XBKkLwtUv3kry8j8+KKFYRSE2dQhEKjyrO4hSC0R5enRQ27XCRb5mrjjkgzFrhFelNKbhYcYnvbIsZeQqkWY2vpjPBn5p35XbNWDdpAug6GRqNYrUqAM/f7pXVnnDDh+OmxPWneFYSTIYYUNti+J305MyXXrdcXQzdbHU/BRzEX8WD2g8G427GA3Exr3pVIrP8irxBwRLMy0NAOLlkiHt7Bcbi/7nI2Th8MpbS5+Cb0bPEaajvhvFx/oAna7ZEhaAhoTnO3RsJ5CDw/qOKGRBmAsSwUoK3qFh1JvnHM533umX2XBdnzP+3Z/NX3yP6RpBSI9WT68l4mKs7agogcDipKFrL1QlrbNgvcQQoOTNNG9q81rgfiHxaMEM2LfaGv7kSa36/wMX0qLdXnS0Ydes=","translations":{"en":{"changelog":"### Added\n\n- Complete French translation of interface text, notifications, analytics, administration and server messages, including French plural forms.\n- Complete Spanish translation of interface text, notifications, analytics, administration and server messages, including Spanish plural forms and calendar headings.\n\n### Changed\n\n- Move CoBudget to the beta phase with the 0.5 release line and update App Store descriptions, project documentation, security policy and release guidance accordingly.\n\n### Fixed\n\n- Localize analytics periods, forecasts, fallback names, budget history, workspace validation and export/administration errors instead of returning German text to English users.\n- Use the configured Nextcloud locale for numeric dates, times and amounts; calendar headings and chart month labels follow the interface language, avoiding mixed labels such as \"Total Oktober\" in English or French.\n- Correct inconsistent English income labels and forecast wording while retaining German translations."}},"signatureDigest":"sha512"},{"version":"0.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/whollaus/cobudget/releases/download/v0.4.2/cobudget.tar.gz","created":"2026-10-01T18:02:21.942684Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T18:02:22.000316Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"nTkMSpZd9xl9A6IVqLeR7EuEKcZHEkf7r2gVmP939JAEVPTCX4ljauDee7fQMiXbJGN3hyHMMLDCnp7QnAfgWaQ0lv4pFRkqBx5YLfPTObJM3RNZTrs051kN4JGNmSC7TY9Xw9AGV4KP/w2N4mh9v2XhYEUBzSMgxupmMz4K9AxP7usCdIpV1DEeNPZZEuFKIFvFM8F15eVik30tuQZUG65wzxCSFzOGFdTnbU+V8aGJt8pGe9VsKrOEblXuUcNeaNn8AEJuixAWU67DCat8BF8vmGsZ18hk+COEwe4mlOeVAvmBWnYXzpWbb5AFOEBl4WNyAYYvrbd8KxE3oB58bPxgfJa0fuWNtQ6yQV3pSA8icbbpsiGGcusSA0W3unrtoB46q51yILNZV7n+z7VUUmYkQNVBl4BtnzL29B6xUWviiPnAx0VlDwvCuGVC4fXtUYzqzOFRGTT0MlvU9+R7E8SL25MXKUc87Az+6DhEknxjqvS40zhLSXNJbxmSihyoOBQ4I08Do+dTrQ+zh3HS9IHj9NSr1qDZT798SCf78wGD7OGtUVoozHpglysTlEU1o7PJCsRaW/29V7fg/B49deAXZ19I2ecrRWpfelKFwPmh8lNb62GgUZk9JiLr90HIshWkbRtseqGKfQGRNyX0I5iZpw0C+yrCPr85gUreRqo=","translations":{"en":{"changelog":"### Fixed\n\n- Use the browser timezone for dashboard month/year totals and payment table subtotals. Payments near midnight at a month or year boundary now count in the same period as their displayed date, including existing payments that previously appeared in October but were included in September totals on UTC servers.\n\n### Changed\n\n- Balanced the mobile New Payment button's right text inset with the plus icon's left inset."}},"signatureDigest":"sha512"},{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/whollaus/cobudget/releases/download/v0.4.1/cobudget.tar.gz","created":"2026-09-18T06:42:20.170219Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-18T06:42:20.234205Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"TQArHIVr4zH5YmV8hnLUo9ZIu9Mvth1tbYp7soE6RyM4uHxAXwSXrwZ6md3bPeSEWIOAFCb3qrAtBwiJmIHDTOkHuHEyArpx4HVeEduvjJnPe5e7mBtBgufHEHJ0WThNY1bhoDYwnZFkWC79cmhF6rFfSWVmZc/oihO3yip9fZJAi5BZ8EIPJL71n87CDJ8wJv3xqKUVey1c8o75+X2aY/aPgBrhp8xHddkfuHL7uTaUKZiSlIDjGGwkbALJKyzynESBUpJWchfkdzohYqzSgM8Gwg17I6NKLnVOvD955MmwvuS6QxND8pepsCPmMdoDLyhVtwGODj0AgkUe1LSG3VaxCjSp/AG0YtY76Xif1GVDlSq35zzjwNimu+U4E8Qgl4VoKwRafufI3DRuwe/pe8zTxGqqzGsbmQSR6cSL1hsCvPTW1ysAOlGbM6Pyzao6ZytfdPY/DIxYANYu4uY8hpB1oYZ6D5MGpIAl04TwDSc3ZNd2NJi3FjtDaV63Esv4hMEJRYRsCpFcfJ+JlWOtgNttmQNpHeu8SJHcbw8f1LYSxlm783BN/w/BduKFZdzXNHlPR+oGl1MJ2HpyY4uAUt97i171b9rT4u6ln6G7oXvGvRjroESIrud15BVLcdGNUnoCmsok4Ac8BD0Cu0f5xUyMU0BnvltOGe//a/cyNsk=","translations":{"en":{"changelog":"### Fixed\n\n- Create release archives in GNU tar format on macOS and Linux. Nextcloud ignores PAX long-path headers, which truncated lazy JavaScript chunk filenames during App Store installation and left payment views blank. Reject PAX archives during release verification."}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/whollaus/cobudget/releases/download/v0.4.0/cobudget.tar.gz","created":"2026-09-17T21:04:50.545579Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T21:04:50.617694Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"qXhL3HSAjrQxAsh14gC+s/oOp5ZLe92enjee3tfAGHENScjstqqILDAuxSFBnT6HwgbW731a7Fc2z5utoIQd8HBi6Ux3Q8IruahRP6RXjL80H/NNnShuKvUGMEQ8cNrxAQKXQYfnqqmxkn/+WtS2M9YuEwA3c37iU+oXQbqoiY4HZACtKbd+0d8aMrLD/h0U6T5AIpMjGAHn8JKMeHEL5/X0j3cgwo1GJeOrtvzz5Z5DT75YLAcqLxZCuv4vQQw6GHa3iJo7FJYaqGJW06gFXx005aPwsRsstyVaIQCCItRJBANHNp5dOh6Cb4zfXbeBurMrC1OtPzpxpCHQg4/loPGYifPbpOuDQ2w+MgR209YdEKUVz7vfXYBZ0B61AbrjmdjAV6ESu7g6H12nlCtenFD/0bh2SGcZ4EbFvkodJ+s0am5yQIyaFRQyXtzJqtlXUu6dzZubD/Y3OlBoKA8SAWB38349QpaONyo7KNuEljfXWqZD7JhnWrZIufiiTiQwSjCAKpcYrZeIF0ZCfiLLKdy7OUvG+da2Q/ZhzsuGCilJqeNcJ/IQA6PQzarNoNkavTeqJ4y6JHZ+1tjvzuDEeqRPc4ANV0HLs5OkKWMheWLA3Ay05nzQBRjx2Zezn7XsYY3YoRmpINwGmAcCgVI5mfIeKbhJav3sqQIVq57XceI=","translations":{"en":{"changelog":"### Added\n\n- Added Nextcloud 35 to the supported server versions while retaining Nextcloud 33 and 34.\n- Added CI installation, migration and OCC smoke checks against Nextcloud 33/PHP 8.2, 34/PHP 8.2 and 35/PHP 8.3.\n\n### Changed\n\n- Updated the currently unused `fetchJson` helper to read CSRF tokens through `@nextcloud/auth`, including token updates in long-lived tabs, instead of accessing private or removed global aliases. Active requests already use the supported Axios integration.\n- Documented version-specific PHP requirements and the Nextcloud 35 compatibility review.\n- Preserve existing GitHub releases when the tag workflow runs, allowing the local release publisher to upload and publish without being reset to a draft.\n- Document the optional local App Store publishing flow and the distinction between GitHub prereleases and App Store version channels."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dob2xsYXVzL2NvYnVkZ2V0L21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC12MC4yLjEwLTEuanBn","smallThumbnail":"https://raw.githubusercontent.com/whollaus/cobudget/main/screenshots/appstore-preview-v0.2.10-1.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dob2xsYXVzL2NvYnVkZ2V0L21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC12MC4yLjEwLTIuanBn","smallThumbnail":"https://raw.githubusercontent.com/whollaus/cobudget/main/screenshots/appstore-preview-v0.2.10-2.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dob2xsYXVzL2NvYnVkZ2V0L21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC12MC4yLjEwLTMuanBn","smallThumbnail":"https://raw.githubusercontent.com/whollaus/cobudget/main/screenshots/appstore-preview-v0.2.10-3.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dob2xsYXVzL2NvYnVkZ2V0L21haW4vc2NyZWVuc2hvdHMvc2NyZWVuc2hvdC12MC4yLjEwLTQuanBn","smallThumbnail":"https://raw.githubusercontent.com/whollaus/cobudget/main/screenshots/appstore-preview-v0.2.10-4.jpg"}],"videos":[],"translations":{"de":{"name":"CoBudget","summary":"Personal budgeting and shared expenses for Nextcloud","description":"[Beta-Version]\n\n**CoBudget bringt persönliches Haushaltsbuch und gemeinsame Kostenverwaltung direkt in Nextcloud zusammen.** Behalte deine alltäglichen Finanzen alleine im Blick oder organisiere Kosten gemeinsam mit Partnern, Familie, Reisegruppen und Projektteams.\n\n### Persönliche Finanzen\n\n- Erfasse Einnahmen und Ausgaben mit Kategorien, Zahlungspartnern, Labels und freien Tags\n- Hinterlege bei Zahlungspartnern optional interne Adress-, Kontakt- und Kontodaten\n- Füge Belege, wiederkehrende Zahlungen und Erinnerungen hinzu\n- Lege Budgetziele fest und analysiere Entwicklungen, Prognosen und ausführliche Auswertungen\n- Trenne finanzielle Kontexte mit Workspaces und nimm deine Daten per persönlichem Export mit\n\n### Gemeinsame Kosten\n\n- Erstelle Bereiche für Haushalt, Reise, Veranstaltung, Projekt oder jeden anderen gemeinsamen Zweck\n- Halte fest, wer bezahlt hat, und teile Zahlungen gleichmäßig, nach individuellen Anteilen oder vollständig einer Person zu\n- Behalte persönliche Anteile und offene Salden im Blick und rechne Bereiche mit nachvollziehbarer Historie ab\n- Nutze bei Bedarf eigene Kategorien und Zahlungspartner je Bereich\n\n### Für Nextcloud gemacht\n\n- Nutze CoBudget auf Deutsch, Englisch, Französisch oder Spanisch\n- Deine Finanzdaten bleiben in deiner eigenen Nextcloud\n- Erhalte Benachrichtigungen über Aktivitäten in gemeinsamen Bereichen\n- Erstelle vollständige Admin-Backups für den Wiederherstellungsfall"},"en":{"name":"CoBudget","summary":"Personal budgeting and shared expenses for Nextcloud","description":"[Beta version]\n\n**CoBudget brings personal budgeting and shared expense management into Nextcloud.** Keep track of everyday finances on your own or organize costs together with partners, families, travel groups and project teams.\n\n### Personal finances\n\n- Record income and expenses with categories, payment partners, labels and free-form tags\n- Maintain optional internal address, contact and bank details for payment partners\n- Add receipts, recurring payments and reminders\n- Set budget goals and explore trends, forecasts and detailed financial reports\n- Separate financial contexts with workspaces and move your data using personal exports\n\n### Shared expenses\n\n- Create areas for a household, trip, event, project or any other shared purpose\n- Record who paid and split payments equally, by custom shares or entirely to one member\n- Keep personal shares and outstanding balances visible, then settle an area with a clear history\n- Use area-specific categories and payment partners when needed\n\n### Built for Nextcloud\n\n- Use CoBudget in English, German, French or Spanish\n- Keep your financial data in your own Nextcloud\n- Receive notifications about activity in shared areas\n- Create full administrator backups for disaster recovery"}},"isFeatured":false,"authors":[{"name":"Wolfgang Hollaus","mail":"","homepage":"https://hollaus-it.at/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhOUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzEzMDcyMzE3WhcNMzYxMDE4MDcyMzE3WjATMREwDwYD\nVQQDDAhjb2J1ZGdldDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALZv\nHXhclkQgmkJANKPx+jksFhyxVI15+ObbORgtljGexQfmOV1BuYGoNAq9pObzVhwt\n2qVe9uLu/WKoqMXEP0fydNPNjIY6mLxlyO6Pq72E3uZqqNc2W8X0LnzgiZEf/FMQ\n9C1Y7GxbvDRtQ3lTJis3jpJ1u77zuB2e6u7NyDra3qlq9wHkdjiPK8zLI8xR1aWw\nBHQpgk0kyPv+HPsF45RVYSl6oPqRyx1uOl6h3w7sVb2JTDV15tCIY7FfvehlRROa\ndGNQrruRsk/gbDpMJ+iZp8w3jgr3K/CFlhl1HcBZYufPqkyMXuQ5g2rvSq4Q8ShW\nqxk+4+TG+a5SVibas7gCg3KUHXasr/xkz7BgtB0dLaDCUCGrPkjmJx6k93u1W0Em\nw6NWe9Zj/pGXke65xE6c5wVTin7IC+Phi90zsl25icWqmaINfUdAcRXqllfOq444\nLpCyGTMyMKsCl7o7h3T6s8g79L0R7Vf3iDWWzv1VgHLBvC8Sgvb0316egM+m0Nnb\nJfb8HIe1oMy4GvmlRT17JNnuXXQnQRrDGfAW/zlIiagjr2pxkkEnO4OnkpvXtEvi\nDpnG1FA8Ggs7T3KKs2dGdW0enD0yS4N2+1SAmKLPUiBBN7h0fB/hlY2i5gsbIXng\n1AsJQni9KOeBWXHac4IBgBnU2n2etgvIxz3ZXWnpAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAAfg3EYQTO75UATb4+05OkAi3BlS13ai7o2vv2h9kMfJ7CdmBzPkzZES\nZun7APiG131WZcqmX3zeOqMHgzngtSD7vlpr2L/bEG4SsOjK3NR8G6v2D9BEmOSC\nwFmCITyC/5MHJ3O8s2g3QppOROd57KMZdptRCy5UXcls0tbN6eqrDdHf2a9hLbY4\ncynwLH4AJYzDaJmKJtCHm/SNo2OMEMuMPd+dmDzWgHibKUQWgBRrfXqD7zUsim7H\nU78YHbNEKby6Ozks+R/kYUXeBCEPEYz3r15Go2aIGxe2WO3P6V4BcphJQ0PTaYwf\nuH5afXlmtdvO4O1IaBIMYzwdTbbbY+I=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deckgithubsync","categories":["integration"],"userDocs":"https://github.com/SchVinzenz/Github-Projects-for-Deck/blob/main/docs/USAGE.md","adminDocs":"https://github.com/SchVinzenz/Github-Projects-for-Deck/blob/main/docs/SETUP.md","developerDocs":"https://github.com/SchVinzenz/Github-Projects-for-Deck/blob/main/docs/ARCHITECTURE.md","issueTracker":"https://github.com/SchVinzenz/Github-Projects-for-Deck/issues","website":"https://github.com/SchVinzenz/Github-Projects-for-Deck","created":"2026-09-25T14:33:54.963980Z","lastModified":"2026-09-25T14:35:13.613275Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/SchVinzenz/Github-Projects-for-Deck/releases/download/v1.0.0/deckgithubsync-1.0.0.tar.gz","created":"2026-09-25T14:35:13.607677Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T14:35:13.678650Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=36","signature":"BNgbReHwqrlBjWKl/1+uUQR1O8HDH4FKpmIXvOdBwZdPfLkjjTPvy13PCo+bUsylI9rxIzflR2ToZKgmwbPRmHyQ88nvP/H22IWyAXVHqro36ybnmOJxJIPWA4UF72VzYKcO5m1E6L6HXeiZlGMCYVC9y/c12EJkbGeMhSIG0wijWlNSguyzCUmGKiwURMBruWu+YGoThstHsY6nSdmP0CzcxIWYbYhF7DhZYUsHYX75jsDToVWhqLdZo4nybYQNx0uvhQs1EIkcY7VRpl+TJK9Gx+tN5YQJ5Q0nr5oiCTaLOL40eMArbj3vi9KrI46EIMVj2TcvFdGfUnWn9YkJjeKglURVcmgPCS5IBu8kuO+8uOfZ/6p4nkr00f8sO453zPscrnBQSLaW0jk28MGId9qaPo21V0YJFqM18FMJHKPMHJJBEvRiO+NEB71fMk16pa2JzkWLrpvnfDMkYr+46k/QBRpUip9t8VIy2h6jHWY1oQhtsB6d4UzF0BQfoaHgu1paDv8I9NgPY04A5MLCyo3kvBpGN86lKJMnhxSosBWSH12oibwAQS7KBG3SvZgEkoQIiMhUqa57oqMmjMqSy0kgcu8CwQiS8WY1H15hMT1r037jQW5W24Ef+K+TcP9IEHCmHpUpKzel1A5iHaAkRh7WwC2hKRJIZHyeIh9pouY=","translations":{"en":{"changelog":"First stable release.\n\n- Everything from 0.5.0, hardened through reviews and live tests against\n  Nextcloud 36 with Deck 2.x.\n- Idempotent bidirectional sync with per-side hashes, duplicate protection,\n  rate-limit cooldowns, and best-effort warnings for optional fields.\n- Reviewed controller security, user scoping, migration safety, and\n  App Store metadata validation."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaFZpbnplbnovR2l0aHViLVByb2plY3RzLWZvci1EZWNrL21haW4vZG9jcy9zY3JlZW5zaG90cy9kZWNrLWRlbW8tYm9hcmQuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaFZpbnplbnovR2l0aHViLVByb2plY3RzLWZvci1EZWNrL21haW4vZG9jcy9zY3JlZW5zaG90cy9kZWNrLWNhcmQtZGV0YWlscy5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NjaFZpbnplbnovR2l0aHViLVByb2plY3RzLWZvci1EZWNrL21haW4vZG9jcy9zY3JlZW5zaG90cy9zeW5jLXNldHRpbmdzLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Deck-GitHub Sync","summary":"Keep Nextcloud Deck boards and GitHub Projects in sync","description":"Connect a Nextcloud Deck board to a GitHub Project and keep cards and project items aligned.\n\n* Sync cards and project items in both directions, or choose one direction per field.\n* Map Deck stacks to the GitHub Project Status field.\n* Sync titles, descriptions, labels, assignees, dates, completion state and comments.\n* Use GitHub Issues when a repository is selected, or Project draft items without one.\n* Connect with GitHub OAuth or a personal access token; optional GitHub App credentials support server-side sync.\n* Run scheduled syncs, trigger a manual sync, or use a GitHub webhook for faster updates.\n\nRequires the Nextcloud Deck app. Deck attachments remain in Nextcloud and are not uploaded to GitHub."},"de":{"name":"Deck-GitHub Sync","summary":"Nextcloud Deck-Boards mit GitHub Projects synchronisieren","description":"Verbinde ein Nextcloud Deck-Board mit einem GitHub Project und gleiche Karten und Project-Items ab.\n\n* Synchronisation in beide Richtungen oder Feldrichtung einzeln festlegen.\n* Deck-Listen mit dem GitHub-Project-Feld Status abgleichen.\n* Titel, Beschreibung, Labels, Zuweisungen, Termine, Erledigt-Status und Kommentare synchronisieren.\n* Mit Repository GitHub Issues verwenden, ohne Repository Project-Drafts.\n* GitHub per OAuth oder Personal Access Token verbinden; eine GitHub App kann den Server-Sync übernehmen.\n* Zeitgesteuert, manuell oder per GitHub-Webhook synchronisieren.\n\nDie Nextcloud-App Deck wird benötigt. Anhänge bleiben in Nextcloud und werden nicht nach GitHub hochgeladen."}},"isFeatured":false,"authors":[{"name":"SchVinzenz","mail":"","homepage":"https://github.com/SchVinzenz"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhQsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTE1MzM5WhcNMzYxMjMwMTE1MzM5WjAZMRcwFQYD\nVQQDDA5kZWNrZ2l0aHVic3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAMqI89Md0GBoY3l8/dBs7O0CtpLBx8rXpCXVGEc7dFCwBc0fledLusKcqISp\nAk326ZUDXZb8HmqN1oBfWFytrP6RuMHf4QKprLUXcGT76yddGwAveWKJRmBNd8nw\nfHPAhuo6afvUhrh2l437sAOAqrJoIrAMH6QYnu7Fjg0olLMHyQnZLXE2SbfODQi0\n1wotO2iBvgG1JvUhtDqFao0YgF3YewsiucOKUmnaSvARm0w7ESKz7nig+Z5CJ6/c\n9X68UWP91uQrUhlT+g7b6YxrbYnHHr1Z+YYFVxvQ8gaKTfflBCq16aYB5qThRwlQ\nLfeyg2ljsEP1FNbNJBv+5J0NlSKhk0IavVzI3uWGXtVCRffSqTt0/N9fU3NYGvei\nvS8MwEciL1N1M9p9WcF9qxKXFPU0nBesl4NYMzHnmdjn5Y6Nvd0V9IkSHW39Bdxj\nn2Wvc1ETbmiOEPaafFnYvCDcFBuA+oprBi+Sx4ASxMYjD8gi/0Y/pdiS/+p2UhzL\nRM17aNsxRQ/TUplULgYYIn9MwtqmFxsAmVq0I5SAYhAEtTKJJCz7zs9W31MXi2hd\n7V2PoprwfwWKljzVdqh0TAu1jW4hM1DuD1xvPr21QMuyFhb0mV+9vwY1TlmzL95U\n5I+Agg9S+x+TTgCT0uG8loInqe7ZK8mQW/HMmZ2KC6xr26oFAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAGviiRRwT0Tx3oSCuiTpWRPMVbFzYZeq6qlc2fE7DYZTEmGb\nqmG3D0iGRS7xxeQeMGs67JVyjmAmHpywUkVevXt9ITbLB2F62VgpynDdv3cUp+FT\nwauN6uTi526jlQ8ciJS+UuN32JsM/H0E9GAsbCmt43Oa2ohQltvp6nOqjOTmwqUy\nknrHiuj8Ef8wZ0xgYe7hTzzlySUNrxPOleRqWO0/jFJj7DezD91VaZ8/kcucTWj9\nH72DNPy+G9e/ycSdpyom3zx+VDBrWEtldxi/nH12DHC+FpoIqdJpgAb5+HKM64GI\nOYme7+qk3lnHuc5yOfOENpi6uAc2eD8z598Stqg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"carfuelmaintance","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/issues","website":"","created":"2026-08-26T18:14:17.842610Z","lastModified":"2026-10-05T00:29:24.671870Z","releases":[{"version":"2.0.9","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.9/carfuelmaintance-2.0.9.tar.gz","created":"2026-10-05T00:29:24.661916Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T00:29:24.717112Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"NuAcXF+ebkQqAaUcMPl8cpqNjw9/9qmkTdZntedvH6sjWqnOB8o4IB2/z2Id0cD/P/UV6lB6xyFLZydE+YSDzASk37zO5fug3iBMzQOsrZWPsXh/Xulai77lf+lwuO94yb+I+k1yV4XUzrEgZW/C+afTshZ+1kEotjRXqwap9URCdwYet6zHrI2YlyYNjJ4VnvNw/uJiyxFtX1k4Ijz6iBOYKZ1tgqmWyYRfQT0XT0Crg0a3t7TuXoz7JfYCk5FRX0abDYR5z8ssz2cyuIr6iv5H8lj/DVXuzbuwB6tGnjzJBOzbuJO0yDEGH5u8OPpor1pS0v2M/5c/q0Gu9Rs0QQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.8","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.8/carfuelmaintance-2.0.8.tar.gz","created":"2026-09-28T08:15:48.028830Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T08:15:48.085360Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"W42xh+wQnxsvto40EhHGjKFa+omKRbQ8ty1nvKNzqlfaDvJUcqSnCbjiUNyRJXk744pZtZwJ9Yw7zejtL5ZAhMpJu9/ktJhzDrqWhB20cahHe0zeCDn+c2BJ8EWEvtnAGa2kodj7SDpUwH7Yoov1J2K4BpUDCFewcuDTEpuf+PXuRgpJKMeFagjTwzVkYgcJDbm+2L4ynL7pMEA4rAZKN33uU6iSREcuC2/rWUJlC/nmXmkyrQVPRJ4NuJuWOABfiF309PLWcTfWn85hAhNpsRGb95B81oO/J1XS89oLBhXnALNY+HDfUloN1ksXZM5RCVkht9PEVNjxs1Bd68Wl7w==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.7/carfuelmaintance-2.0.7.tar.gz","created":"2026-09-27T23:19:20.604242Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T23:19:20.643420Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"EVx0h6gpIqTSO1tczIuOmUFVgXY5/l5lwxYPGL0fj4hmE9mBq0LJvtg7Y6xzzJflGFrxUz4N5jLfucu5bKvqCcUqfuhcDcs5jZiDR2rCTv2w3PuN3DC3QNtyxDPmSWKG0hLelB7xgJ+9HJ5pnPnR81vDTl8DgfhLjrQHiN6LQyh5dHvThT73yGrpgCo/hUKqpNqPl2Cp4909dWBqMd0scQ90csPMQkOC1BfcyJolhML8iUG7SUPKE+IjOdQJcVpn+Kk5dvizuBd6RDwyG4CdWnc/aLWqFA0Md+Cu0lgE8YuxnGlrGrQSRhsd1YIO0xRGeCo7SjtuP+Um+ForWNwgDw==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.6","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.6/carfuelmaintance-2.0.6.tar.gz","created":"2026-09-27T23:10:15.733422Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T23:10:16.794339Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"H+iUHZOdehARmr9FHBQpYlkGKyQhBWoOA0Pj0lrGL90guD5u1BcWgLIpt8x4KNsZr5x6DPJMkYGuP/GYPi/Yii7sf8Kg0nI/KzBshyCjqUU2pLO1fwG6pGXho3ssC8FU6XbCHj386VgrQDGNxAOPnHEmBMDqEUaZHGHUWKa4xhaQhYCASs/A46vRIp7W+vLe3fm4tBvVdC1PEgOBAlxViKHNBlsKuzbMCNwtNR1PzQmCAqXiMIqezax629a80FIAfBsbZRi/a3X/v1ysi29cmL9qBZWg+AfvqKzRa2Deje88r8rnexRniDJkQeDU8VZIizq37lDbWrmQwnjeXdkC0g==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.5/carfuelmaintance-2.0.5.tar.gz","created":"2026-09-27T23:02:24.126668Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T23:02:24.199876Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"R6dHj7OnvC3kHmbrEa6/hSeMKv3nbvVYm54c/g+hLpFjGtC54cJUPGxw4FbH8liafisDGCO8fjy36041kUm9FaEsfDvEe0WvlLLPJU1FDDTQ5Bnanp4kS+9KfaZmT7YDdk/DSzRcX/NrhbRky9ccS4v7RB0ADVyZXEsIb02Isxfb5wPXcH3KVUVugBzxMHBM4fqEjEQerja/vWf0lqRTl9jRcYIztKh4eFB7+dMkDh+2DnLN1Ehw1QfgAPBURsFE5ZFPQvo779+LrIWuOjoohjZvcKGAI7tSk2e52kOFFSXOdy/dSTdgNy31F+Z3CGL8ACAewy5sQNc+jlSfLJj1Rg==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.0.4","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-carfuelmaintance/releases/download/v2.0.4/carfuelmaintance-2.0.4.tar.gz","created":"2026-09-20T13:42:11.469227Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-20T13:42:11.521512Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"bP+cGnwoqbOaAGFujL/CMjtUH3OyXuzEsH/8L17PUn0NF5HZFhw0Ih9Sfc69yAEPgHyd0DwPzrALAlQzOLsQVDB7hXd0YdGzgPxizOqMOpiiW2Tn6igNQpMHHYVBw+QkPaTzlygxCegAsXBl4O19jJMgWTmKk0vYxRCTxopw3PdQXRK6nppFrWZjQXv2F1AbwADN2OBvASbo+6q0FwwTy6MKpkcukVJahvQqbU76KCrw9IqEIRzCqVVFCeNfwl+dTUruRFjqJ8BA8+HuBby3NN2NIvmHxCkXU+EzP3eYw3VwmLJkZfAsrF/L6yLsCfnWSTu5lss1ctN3kVVyFf6miQ==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Car Fuel & Maintenance","summary":"Track fuel fill-ups and maintenance history for your cars","description":"Log fuel fill-ups, maintenance work, trips and a spare-parts inventory for as\nmany cars as you own, including bifuel vehicles. Fill-ups compute fuel consumption\nand cost automatically per fuel type; maintenance entries support due-date and\ndue-mileage reminders, backed by real Nextcloud notifications. Track total cost of\nownership and per-trip costs (including tolls), and manage a photographed parts\nstock linked to your cars. Includes a token-friendly API so a script or an AI\nassistant can log entries for you."}},"isFeatured":false,"authors":[{"name":"Ricardo","mail":"ricardo@grangeia.pt","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDCzCCAfMCAhPrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI2MTQ0MjIzWhcNMzYxMjAxMTQ0MjIzWjAbMRkwFwYD\nVQQDDBBjYXJmdWVsbWFpbnRhbmNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAwCg15yYKST5fKjZW1GAIZaAJwWXZddCtP13WeHsUR/zRsBy0nbaZsjq2\nghnPmtuGw7vb2Icvd+M0JBPSBaaElmxJqwOla4LYsiYJw4aL2A7otvMretqWi86g\nQrR8YZTr3fg53Sl1+guZBo/tEAsJPLNMt2u2KqtR0RS2rZawv96ENWO/BszpOe3W\nztehGlHKG4+cxpLxIDK2fYkNA5yPtNskKeb6MhiRqu3+S4XJuxFEIuNGkcVCnQ+4\nSjFHRIzDHUF6U1Z1bHZc0MJmtkVHp+Ed2OIaa4vGKRPDLYg32SdB3+K0kzXGRAqx\n9Tdg332C+YFqY/xMiA020ditm3BCFQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBF\nXgkzfofu+6MnlU8LG5kngdZ2ntt8QugscKtP1B8HLP42z+BOjCR3q7E4IMfIFgr6\nibWXoRQw45Z8N9Wobt0eJxQt9iPeTBuHHVeg7p0hZsiOFDdpFw1k+92WIMRZ8CNU\nZARzKGaxVEujGVD4FTRiT9w6zjIO/Xmxou+fai4LjZg+NzbiSc0i2iJaQ9cecyk1\nIR1oSYChAXD/9mcVJjUy7X1811BgBbrjCYQGvq9BbqS3CaZ+OqGu9tGFEdWDXpvy\nP1V5rdB1JKVPX78jM+flgLMGvMLMNMi97L+c6GaGx6CRcRam47P9nMZ7up52JVXj\n0qHIHT4mvZ00sRPp5wzs\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"collectives_todos","categories":["office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/deltadrai/collectives-todos/issues","website":"https://deltadrai.github.io/collectives-todos/","created":"2026-10-07T17:30:32.872288Z","lastModified":"2026-10-11T14:41:30.702363Z","releases":[{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/deltadrai/collectives-todos/releases/download/v0.2.1/collectives_todos-v0.2.1.tar.gz","created":"2026-10-11T14:41:30.697615Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-11T14:41:30.752918Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=35","signature":"edvRvIjx/6LToXBwB+QHid0lEDz+peoI2WFIXXJJjwV7xFHjVnXMFrpxxh16/dIoh8fEGehpMnxkY0f1mHRems9HhMVUORmNk3OYj4S+sStM0SlWurEpNXxPOjAHAGDMLiURYlrKbvml+vtzHl6RGrxhYUKG3csuw05EnnRE06AVNwXg4Hcq4fh2hyqkHlT92bjByc+/c2RPxKU8PROs8IdelKEE7HLpBZa3hTAMccqh8QgzEIZa32HAOk51sF5pOIbAf+X8TKh4yUkMMB3lY1KzP2AR3fpnCtpEE6oaBq+f0N9HELhjNCYemuw15SK+gVSoUwTz+JniVF6o5VML9bupl+l6Jn6WG2WRQ/keCJJof1CCTDXfmzg5mkWCHezyXT03V/zQ7WWkiF8/MjyRFKTRzG76YcRXRHrhwtdxe8gDnjQVWRYaDoAXeVxTlqlcOpImy5ZlFrt9CeVmnVxzM6x6woNgWIA8M7TVlflWHbeAZC27gM4S7mxCuJ7FNhw/GhRDSujdVD3LFgYrEgT5XeEKuasutl0nxIUOq3CQxMquHIetZ6pm9MPSLHyzhxpqaMKPmY6UvRTVYkAY/uhmOQDug6BfwRUeM2BemFz2tDFbYzpLixpC2UGuBj4hIc2LwEJ3eSO19Fz46XiqBfqaH7Yd659PnQ+096Jj2m0DKDs=","translations":{"en":{"changelog":"### Added\n\n- The admin settings screenshot as the sixth app store screenshot (`<screenshot>` entry in\n  `appinfo/info.xml`), shown on the product page next to the last walkthrough step and in the README.\n\n- Prominent \"Get it from the Nextcloud app store\" call to action on the product page hero (plus a\n  footer link), pointing at https://apps.nextcloud.com/apps/collectives_todos.\n\n### Changed\n\n- The README installation section now points to the app store (the app is published there) with the\n  manual deployment kept as an alternative."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/deltadrai/collectives-todos/releases/download/v0.2.0/collectives_todos-v0.2.0.tar.gz","created":"2026-10-11T14:17:57.544735Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-11T14:17:57.949822Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=35","signature":"JzuRSTWBNn8sqEbuJPy6xtam9PkpPFHvAHU1QL5B0jrqG5F2xcOjPqkOv1V5YP5IWO5LmlAbSPueMkDjFumlq30WYtbdxUbIAyqz9XFDXXNUuSPgRay03u8pPxaiy6rzeTlSTJJ9L3Wt+Nk14111OSVTNkwNMQQsbvARIdieBwMw/9iwetigBdvdxnebPlVLDuWNVOeyC4NT5l/POp1S8ZhF9JWxQ27PDSY3GH3z7KsHtAfCo0XJEk8WAGgXF2/0RxLnBrNYLFUNJhYkh96QAE+0Xb1qq0e44yL+8Xw3Ym8SI6pCIo+Ula1EKJILprkpvr/YTR1uIiSCd1l5FylPuNfbohA60A7Y3LxvXR3bFY2d/BJzf8rh8FbdyS9vvcrC8WlhxaRTSM5UumzRwzFZ18Ng546N0nxZIfMApALDxGEC2kTGPX+ndikdToIb821ZkvOD3Dr7DY0C/89WHasQX1ddHEVNNrY7ED/c0LruVUXxNHHN64ojMseJbAZvBdqm//g9mA8JZWgY0AA7XA95Q3kDvUxZCi9rY6f5Hlxmfy+YfgwmmUHN/F0Agfdpyb1N0akNb3r4c8nbgUF1xAUyrLYWhB0/55H4C3SLKfZmgK2PiD6iHabO07FgTrmVSkwBM34V3RnDeP+VjZ1BRpOd9bnd7lfulNAyzcbbMU2WDXM=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35: the supported range is now Nextcloud 27–35, and the functional test\n  test rig boots `nextcloud:35-apache` by default.\n\n- One-command local verification: `tests/functional/test-rig.sh verify` boots the newest supported\n  Nextcloud, installs Collectives and the local working tree, seeds the fixture collective, runs\n  the smoke checks and the PHPUnit suite, and leaves the server running at\n  `http://127.0.0.1:8080` (admin/admin) for manual verification when everything is green. When\n  reusing an already-running container, it redeploys the current working tree and re-applies the\n  English language defaults first.\n\n- The functional test rig now defaults to English (`default_language`/`default_locale` set to\n  `en`/`en_US`, likewise for the admin user) and seeds every fixture page with a fitting emoji via\n  the Collectives `setEmoji` API; the smoke checks assert those emojis and the Todos page emoji.\n\n- Continuous integration: `.github/workflows/tests.yml` runs the test rig smoke checks and the\n  PHPUnit suite against the newest supported Nextcloud on every PR and push to main.\n\n### Changed\n\n- The default Todos page emoji is now 📝 (previously none). Existing instances without a stored\n  setting pick it up on the next regeneration of a Todos page; the emoji stays configurable\n  instance-wide and per collective, and empty still means no emoji.\n\n- `tests/run.sh` downloads `phpunit.phar` (pinned to 13.4.1, sha256-verified) into the container\n  automatically when it is missing, instead of aborting.\n\n- The app store and product page screenshots are now a five-part step-by-step walkthrough of the\n  flow (Todos page, source page, tick, synced regeneration), replacing the four earlier\n  screenshots, and the product page (`www/`) embeds a demo video (`www/screenshots/demo.mp4`)\n  that plays as you scroll."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL3N0ZXBzLTEtMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL3N0ZXBzLTMtNC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL3N0ZXBzLTUtNi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL3N0ZXBzLTctOC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL3N0ZXAtOS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kZWx0YWRyYWkuZ2l0aHViLmlvL2NvbGxlY3RpdmVzLXRvZG9zL3NjcmVlbnNob3RzL2FkbWluLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Collectives Todos","summary":"Every to-do from your Collectives, gathered on a single page","description":"Keep track of everything your team has to do across all pages of your Collectives — without opening a single one.\n\nCollectives Todos automatically gathers every markdown checkbox from every page of a collective onto one central \"Todos\" page, and keeps it up to date as pages change.\n\nAll your to-dos in one page: every checkbox from every page, grouped under a link that takes you straight to the page it came from.\n\nAlways current: whenever a page is edited, renamed or deleted, the Todos page regenerates itself.\n\nTwo-way sync: tick a task off on the Todos page and it is checked off on its source page as well.\n\nYours to configure: admins can choose the Todos page name, its position in the page tree, an emoji — and switch the app on or off, globally or per collective.\n\nRequires Nextcloud 27–35 and the Collectives app. Developed by deltadrai gmbh as open source under AGPL-3.0-or-later."}},"isFeatured":false,"authors":[{"name":"Markus Winter @ deltadrai gmbh","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhRDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTQ0NDAwWhcNMzcwMTEyMTQ0NDAwWjAcMRowGAYD\nVQQDDBFjb2xsZWN0aXZlc190b2RvczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBALdQghokF+S+krqy/gMTVV+G7kw1vlwkBdVWroUoXrJk2U19znosxLwN\nHx/lOsSGjn9Ln0Y4/PF1aDCNITmzRKnUo3JcuC+dT6RPuG4XtGvcDPe2mBGmrY4J\nwkqwWN5N1cic7crNXUqnI8cFUg+U8dAlkYah6Han5QkXf4ZuO/lH0cIRPsRaMw8j\n5BDHAcdLvniw2Exa9y/atNe/7i1NDkgtpxN8yA2hoXUM4YUMcnlzUAiDx+fO556B\niMcSb8WJNblb/EpQjVKetk3h5N/oVopUR/Oo0st/tgWh/jiO7TMoCYx7ktFpQQJN\nj9H7rLjsVswG3cn7xSTL3wfm0stFB1tSnTXP4zf0pp4d2QilI0GxgSdeAOPskFTN\npJGzSghDZ7/+tw4kZ5Y8gWj3aME9O10rXinBWaYV05cme569ZMXzbigLgNFTA/sT\n0L/rHT3RZkrJ9cUIJCRm3yruqAQIml69onikKOl8XNM95GGAT/oF10ebhU0ITTNk\nWafdGlqT2iPloHCvaRqR2BMPxR+My55IQ6+VI2nvgLztA524/Cud60PFhyrCXUZU\n9O+c+5oz7MEZF0HPJfvg65PiXD/LvXi22Q17fY6fhlVQVYn8vQoMnoc0I6bkw8Al\nPdK/d/kxNIpeWDNDh2gyEyBIiOxS7rOSyFmump1qliF8qf47PFEDAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBACh749xaQoj6Y4w24L7C4kiuYBMfo6JbAEqtijdZUQRC\nXdV3pnonKnJ+mMV/803o41PxQ2xmRzvEaDWm2WKG2zzNssKwObcJg8TnpdPTcHjB\nbrU6pxkJXIHmgEjMHc5x6XJ3RR2uA9Wayaf5PFl+omfd52TzHQpMbGXM+u6TYckx\nuEe0D9gnyg/Jw2ESnsOABk3n/Mkbv1IzUVs0Cxb3Je+dwJDMDBwW3DaSby/kKSjc\nfSZBA9FsAJU77/yg7dnsFV3rhBXdJ5sQbVJNTH7gzcHhCiLffuEC0BmIPF+D5/80\nyT7k9b7NAK212mhbleE90EiOwpPtKirDr+jKLL1zT1g=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"thinkfree","categories":["files","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/thinkfree/thinkfree-nextcloud/issues","website":"","created":"2025-04-02T10:37:51.385645Z","lastModified":"2026-10-15T01:18:25.206003Z","releases":[{"version":"3.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thinkfree/thinkfree-nextcloud/releases/download/v3.0.1/thinkfree-3.0.1.tar.gz","created":"2026-10-14T07:19:38.776653Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T01:18:25.249068Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"n4qLaQ3Pbo8L4ZYap/gd4uTL7SgtBPqCVKIFQrliHMiKhTTNnsXG9szXNgugPvHiX1bveka208StXBJPYtp8/cX3+NzSQAI4CiLB0TlOutJRZVlFyv6rJSvUnGnzK9iRJ2aY7Wn1jiFUJy35pXSIneN7dAKfwrsGv37wKIlkgskHZj/yTqUU3CyAxoAMS8aLY1ksf7pzDAotJN+2KVLCnOrJonZEoZG7uwyj8b5Wg2z3X4ZsV6sZq4AjfFwqOrlr1TMmq5vTvcyvqT9fhpS9LIrWI6yKtyGHz/3TvU6KgOruxZ4N4EznTxa9hco+/e9cShvfbIjp5/MTv4QeS3a8rSR6JUIWdb8uCqHjkMbZrdBhEzDbm6+pVxsFhqo3F2vWivOhC0Bo7D0k291glAgK7M4lA7nDaOtHoH6RYo/sHJwAzdCyCbGEoxkbFU1pAWGGoNyapiamYRQieJm1SjH3E9whhW75vj5qNPf1/2d1ZQpeZRsUzXND7qkUqHdzYgWgXRWEzb1nq04/sV3iqHgiIRdoH24TQ3JcUp0xFdEYY/nZwu9UsQMFbG02eGvGSlBpo1dM4BFsZI3h9DP2E2jWo9hUhGMd4JO5RYnDl0L+gqMatZNrvwOgjeZoGy45YgHr2Y5js+Q27IktZvS+b09tD1CfVJnmsu0LZscYZf7FCF0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"3.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thinkfree/thinkfree-nextcloud/releases/download/v3.0.0/thinkfree-3.0.0.tar.gz","created":"2026-10-07T02:37:07.017691Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T02:37:07.056770Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"aB4huu3oMmcFqAvQ5J+7jdw9h4AxBfGkmp1C+nRKRHhE6077Rb+R2q8/GniGKjITvksYSr6Pj7yMOLiexWuEvQsWYfRkUs4q+RbMUC+6QEVohkXq9TFfSWqZne2yQM+IssN/9wRR7yJKdSxBNFim/2sTzjhUO0p06d3Mc8+cKlGNHxLMVmsNZ59oJ7CX7rmKCvd1UqlSxBouU1qcHlJy7qWFg5cyytmoDdx553VFk+l0jshpd1+nuDA/cgM7F661v9gzO/A7O14X2QCrUtbsgdiLnCY778WGCzxGB+MEqkFppGmG7HdV7Ka6cZbku+tfyIEmrYIiRjcii3gkhiGd9Cm/dI4ynDeOGBVWhT95jJ9cbSpBfl5p7a0RIo1aDdSBmecCjwEoekLcnkiQWtf6wB5Fk6l2c6yZy6Knz32qIh/yaTbrSBLYQfy3iiMlph7Jgt4SxgAGONlK8BiGkKN45cwHDFaN3d1cVhZOkcwsodvdwzIPwZ1Myx2Orvjj9SWqTcDSLZOQi1sp4TZhRTyep/ypEBJt/nTjtJ9vNXmKHfkxwTxIRS8nBA8v1fZ3XLlX0P3ZmEgl2U6FOofkwI6NUU8mORrRYsba6PLwg3FM5i/vitzfXeScdmBudMRlsHnDAkrc9ul32VrNYir4WfYa2qRJ/g/MW1Wh9YSPmNuvqGI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xjbS10aGlua2ZyZWUtY29tL3RoaW5rZnJlZS1uZXh0Y2xvdWQvbWFpbi9zY3JlZW5zaG90cy9wcmVzZW50YXRpb24ucG5n","smallThumbnail":"https://raw.githubusercontent.com/lcm-thinkfree-com/thinkfree-nextcloud/main/screenshots/word.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoaW5rZnJlZS90aGlua2ZyZWUtbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvc2V0dGluZ3MtdjMuMC4xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xjbS10aGlua2ZyZWUtY29tL3RoaW5rZnJlZS1uZXh0Y2xvdWQvbWFpbi9zY3JlZW5zaG90cy9uZXcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xjbS10aGlua2ZyZWUtY29tL3RoaW5rZnJlZS1uZXh0Y2xvdWQvbWFpbi9zY3JlZW5zaG90cy9vcGVuLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Thinkfree Office","summary":"Thinkfree Office App","description":"This Nextcloud connector integrates Thinkfree Office, a powerful web-based collaborative editor for seamless document viewing, creation, and real-time editing. Designed for teams and businesses of all sizes, it supports word processing, spreadsheets, and presentations with industry-leading compatibility with MS formats. Thinkfree Office is built for effortless deployment across various environments and integrates smoothly with a wide range of platforms and devices. For enhanced security and compliance, it also offers on-premises deployment, keeping all data under the your control."}},"isFeatured":false,"authors":[{"name":"Thinkfree Inc.","mail":"contact@thinkfree.com","homepage":"https://thinkfree.com/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhQuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTIxMDA5WhcNMzYxMjMwMTIxMDA5WjAUMRIwEAYD\nVQQDDAl0aGlua2ZyZWUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCf\n29aa9/6xmuFa5o6uHb9JjgdM37gYBoy0T0mV50Uy//YWR1OrgljRCwENnhcp6l7Y\n7XDkQi8owq5yI+zfLrR+LxFCupOTrDYsW+zKPUOd1iUQ+CfSKeIQFVZVeIH9shBc\n11cVUil6tCjJtUkfXB7HnmG6hakNKrnWNR7/WQpyXQ5QXb1MS+lHQmS5fvw2BONd\nnh8Or6DJUBGy0tmPVZhKsDNk9207zDxe4axPOSXBgWQWOZetHe8uMBIuOYZDsDDX\nUiCo/C8AHqMAYnLnTz5OENvTItj+v9pzGYCYY0aaGUpTxuXC8lCAFDwZB1gNyGXe\nmvBPJQUq8QL/hPGTphlCvc1T+SeSzjYzdEED1ddTN2mmq5tY2mFFq2lYiOzrNl0n\n9C9w4xT9aqmhhnMoAjMvq5BK4DNM0dYXqWO+mQh+ZCrI0zJs3XjXmK3vtVEMGm5P\nb4CHieyfEB0EMYybqi4YDjRaxWPBXg9Ongw6uEb6c7769FfH+HHsJAYdFBMzQmyi\nnOD1h79boqLe39Y7MHCF/1JZwXZcPi+5k4i1YUCOMr/OUzKnPcTSY3mTErrVgn+h\nF/8w7MF4GPazxljNIPIybgrqd/irVNrTjZ/H7jJgkrdJQqyvoANEkUutZ+z7eMOV\nXsxfV+/xfdQpX7rxPVfMWKBiezV/gvIJLSB0A66UfQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBVd463/mDFdSPIl4oLf/YOCQeJTY4tP8PFxqsGDjFotfq8f8e8gOL/\nRKos9bRfQDr2HVdKRGyDIZKj+yPO7exIBxEdcNvYcW0GJcRbw175pGYXe9L15o/i\noEgmDo0PY9C6H4Qq4xIM/7sKG0CpcGiUmjMa58ORl6LD0z/Mh0ZjHW3B4sCmVrLG\nqJs7zJpB+mJ6Jq16EZ2LW6/+W0g9zxlwTeND1iBidXoddm0131yvFopr1cb8DYb1\nKrXnLic6NPFiziOQP+WWQE2Y1L413IzK2iqbIq6jWM+gnhOgK7IOewqZuzljG3uJ\nYdzEjPik9s1y6AnGgMLp0ZSTIPHd63dF\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"share_audit_dashboard","categories":["monitoring","security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/kreotropic/share_audit/issues","website":"https://github.com/kreotropic/share_audit","created":"2026-07-15T21:50:17.592256Z","lastModified":"2026-09-29T18:50:19.914458Z","releases":[{"version":"0.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/share_audit/releases/download/v0.8.2/share_audit_dashboard-v0.8.2-signed.tar.gz","created":"2026-09-29T18:50:19.909607Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T18:50:19.946818Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"qSCrWmgWIQEbYXNCH2LnwwZnsN1EnlH+jDZO4xKXlwvihT4vve35xiNPSDy5fLcdEYIayqepSNkFAbpGTd6aM2eHzoRgviGPsJlAUCO4JLLI4Tx6BbQOfJYC1GM9LVUqgvKDPzs6XO3MHpNSxFz4Gj2rujUsl/l+/wFnOUgoo3MIRBUJfQpNNNguJ0o4VAXrzNekPGAqz9F/iWZmlSLQ9n71uYluI9yyQS7OESQpPZLeKjKD/U6madM2NgFGIv+sSAiGHNdXJbZd+NwrmsS5GYDjMNrPlni1n+dS7l+cnn7IGgddGiOec0q7Vm+7m2e0/WfphyGEp5LLA2GDwPpB/nFLSztYTCc6gPApG4rM1n/zMeqI0YxQagZTKKpm8tV4aC5vu4uFiy2qWKzNXh1oAfIucAi4A833nfgwLCzn8FBRmg7kftsb5/+QcShGBFftN+NGyNBjE3cfT/uQOF+SoUzgNL8e7ePd6kDqOhiNVrdtRtBThQB8rju+KU18C0WuwSt9Ht85Yb7K6L/5ejGnuzQuKLeeJqW4JgXy7ta/te/A/EljxrVHWG6Y1ns1cWYfKpETwj7eoTQI7548JByTnHjdwG0ffcecoris1i1P+reHaZWXBdKkAGoLiAVjSZ0XoO/d6WdBRjJNhdACXzUurMN09T62rEF6FtpdkjTWzIY=","translations":{"en":{"changelog":"### Fixed\n- The auditor's read-only view (issue #16) had no panel background of its\n  own: the cards sat directly on the theme wallpaper, which showed through\n  the charts and made their muted text hard to read. Each tab also took only\n  its own content's width instead of the full page width, so the page changed\n  width when switching tabs."}},"signatureDigest":"sha512"},{"version":"0.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/share_audit/releases/download/v0.8.1/share_audit_dashboard-v0.8.1-signed.tar.gz","created":"2026-09-29T11:43:53.772130Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T11:43:53.819039Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"gIhNXZ2hMOs5vuFtYR+ivNxFgHeU0TTMe14VOw3kogE/AZZu2WYxVR/NtHX0/5DotaS7sFJzxxLMLuS6WctMIwIHuyjLXO05sg5u61s4z30LhQL1qGD1bUU6DD/3AEepiHIbJrd3dMYZxepWKCR+ZEEVYRBVfcRBrOSIeAM/bSHUvON9R+kPwsiIEPBF2whQ9KahrViA3d9hcAbx5JDm98e9ZUcZ0YJWBHIU4lrINS+CmLQnkw/T7VgtCrcr3SSS8t29hxMi2rrphkC2PRw5pf2hGMuQIzNZkEaLlQErBqnPzt7WTF2oWMdU9N516VN+7gWtNpGRjd/vkwZ7gHsJhXRTSWqj8Z2AvPJasY2fMmGlwDAMxGZS7KP/Ne2ByTYBOgWwz+7/XkT40w6AgEc1ZIDwfOpXbyGUl0ZoSI0Z6y9IfaHuSnSw/cQi0k0NZjQ1ipdpXg2v2P+JL+172EPodTxBvZiSt0qXzfDr+Xqiwkns+1xdPApmQf+trUe3GR45r3VpsPDW8GAhlLcZY22PhG/xtJaJFzdJXzcGacf5oV3uuUIGAIirzr/fbTIkNoy0bdg9SON2Bqv33tH6ktQ4MEq4oSYpX9NKRWzOUC20iV7KWUG8BvqQeUWux3TIfKQAXJzqe017WFRUzlTr+V9gwEohgGHIQq+PIbbOUN/0yNs=","translations":{"en":{"changelog":"### Fixed\n- The auditor's read-only view (issue #16) could not be scrolled on\n  Dashboard, All shares or Security alerts — the page clipped instead of\n  showing a scrollbar, making the lower part of those views unreachable.\n  Lookup & Orphans and Deleted shares were unaffected because their content\n  already fit on screen.\n- The Share Audit icon in the top app menu rendered white and was barely\n  visible against a light Nextcloud header."}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/kreotropic/share_audit/releases/download/v0.8.0/share_audit_dashboard-v0.8.0.tar.gz","created":"2026-09-28T11:50:48.176209Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T11:50:48.228596Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"VY29MBaO3Z1UUBwfpdHFdhlLm1HJAK7okChUV6w+OT96AJWOjsMOORdqt+NcTuwjKdFbAUCnyE0pM+ULTNTnniWBclXJX959XxgzkCF71NB4cg8E9ti62ie6tWkHLdIqCSzpmG2OYv1AvVkx2GmkR+PJxotzgNkEL57SpiXHCrld6tV2jZWx/YD1p2XOvCtPL0FUh9J9YL+Dnw+7XZUkvDJBq4fMktmi4ssOULExALtsFYFtT/TF7sOy+0NeXb0GrdlAUNkZIy0NivE6FBPgL2sq+CM13i5UdcOc1TNXPsje58t9UaOJH4wpzGvnw14dkAG41uyu+GlfWZE7v5BoBjkHcEF/sEhjzXfukHXq/9NsA0TnXh0k4zDV77f3KPv9HHuKcSdGpi2Grpnqw7Itw3anK3CflrEhYZLB/aWkF5ihQHUcNrQ2Zlk4NhbR4ZLPY1h3Xxj/BKcXk9c7jZQQN7X6tHYtMyryGqWOqoUpmBkVT661Q/wQagNVukzRPWcTgY8APsOJMNpvekdL6MG51QBJwD3P7xF/HOxN4+l3ll/1ZqYuASjp1506dkoKP+S5fRIG+TEFY/3KuJ5zjsyjR0O/ocf4M7O7VZVqT3ELNsuLADKNVDwiialX24sLQj6RoZIeX03fhIv1WOE+rZBuvaBEacJfc6wnAoP6CJCOHgs=","translations":{"en":{"changelog":"### Added\n- **Move the files of an orphan share's owner, not just the share.** A share\n  whose file sits in a *disabled* account's own home used to be skipped\n  (*The new owner cannot access the file*) with a note to run\n  `occ files:transfer-ownership` by hand. The transfer picker in *Orphan shares*\n  now asks what to move: **only the shares** (as before), **the shares and the\n  files they point to**, or **everything the account owns**. A file move is the\n  Files app's own ownership transfer, so the shares of what moves follow it,\n  keeping their id and, for a link, the same URL. It runs in a background job\n  and a *File moves* list under the table shows each one as queued, running,\n  done or failed (with the reason), visible to auditors too. Moving a whole\n  account asks for confirmation first (naming exactly the accounts that will\n  be moved) and every move is written to the audit log. A deleted account has\n  nothing to move (its files went with it), and the conditions are checked\n  again when the job runs: an account that has been re-enabled in the meantime\n  keeps its files. Talk, mail and federated shares go along with their file\n  too, not only link, user and group shares. Only one move into a given account\n  runs at a time, however many background workers Nextcloud has started (the\n  database enforces it); a move that finds the account busy tries again a\n  minute later. That matters because the Files app puts what it moves into a\n  folder named after the second and *deletes* what it finds at a name that\n  already exists, so two simultaneous moves would erase each other's files of\n  the same name. A move that is running is never given up on because of how\n  long it has been running: a very large folder is indistinguishable from a\n  dead worker by age, and freeing the account while it is still writing to it\n  is the data loss all this prevents. Instead a worker holds a lock that the\n  operating system drops the moment the process ends, however it ends: if the\n  next move finds it free, the worker is provably gone and the move is marked\n  interrupted; if the worker cannot be checked (another machine that does not\n  share the data directory), the move stays put until an administrator marks\n  it as interrupted from the list, which is refused while the worker is alive.\n  When Nextcloud's background jobs have not run for over an hour while a move\n  waits (a server without cron, a broken cron entry), the *File moves* list\n  says so, with the date of the last run, instead of leaving a move \"queued\"\n  for ever. Needs the two database migrations that come with 0.8.0.\n\n### Security\nFollow-up to the 0.7.0 review, which found the fixes above incomplete:\n- A Talk conversation's token still reached an auditor through the *Access\n  lookup* (the \"who can reach this\" search): it listed every conversation with\n  its token, took the token back as the lookup key, and an empty recipient\n  listed every Talk share on the instance with the token in each row. The\n  lookup now identifies a conversation to an auditor by an opaque handle (a\n  keyed hash with the instance's secret) and finds it by its *name*; a token\n  passed in finds nothing, and an empty recipient lists nothing. An admin\n  still gets the token, since an admin may have it. The same hole was open a\n  substring at a time through *All shares*' search and its recipient filter,\n  and through sorting by recipient: for an auditor those no longer match or\n  order by a conversation's token either (a conversation is still found by its\n  name).\n- That lookup also *ordered* its results, and cut them off at twenty, by the\n  conversations' tokens, which is as good as the token to anyone who can\n  create conversations of their own, since every comparison against a token\n  they know is one bit of one they don't (42 comparisons recover eight\n  characters). For an auditor the conversations are now ordered by what is\n  public about them (how many shares, what they are called), with a keyed hash\n  as the last resort, and the search that finds conversations by name is cut\n  off by their id, not their token.\n- Redacting a token by showing the conversation's name failed for a\n  conversation with no name: the token was its own fallback name, so it came\n  out in the recipient, its display name and its label, in the list, the CSV,\n  the orphan list and the recycle bin. A conversation nobody named is now\n  shown as *Unnamed conversation* and no field carries its token; the\n  recycle bin shares the one redaction with the other lists instead of\n  keeping its own copy.\n- Restoring a public link that had a password no longer creates it open for a\n  moment and puts the password back afterwards: it is created protected by a\n  strong temporary password and the original one is swapped in once it exists.\n  This also lets such a link be restored on an instance that enforces\n  passwords for public links, where creating it without one was refused.\n- Restoring the same recycle-bin entry twice at the same moment (a double\n  click, or two admins) created a link for each request, and each wrote the\n  same original token onto its link: two, three or more live links on one URL,\n  so that revoking the link the owner knew about left the file reachable\n  through the others. A restore now claims the entry first and is one\n  transaction: only one request creates anything, the others are told the\n  entry is gone, and any failure rolls all of it back: the entry stays in the\n  bin, and there is no half-restored link left to clean up. (Checked by racing\n  four simultaneous restores, ten times over: before, all four answered\n  *success*, on MariaDB and on PostgreSQL; now exactly one does, on both.)\n- Restoring a link whose original token had since been taken by another share\n  no longer leaves two links on one URL. The database index on the token is not\n  unique, so the restore relied on a constraint that is not there and quietly\n  succeeded; it now checks first, and keeps the link with a new token (or, if it\n  had a password, refuses and keeps the backup, as before).\n- **A restored link could come back with more access than it had.** The\n  recycle bin kept a share's permissions, token and password but not *hide\n  download* nor its download-permission attribute, so a restored link served\n  downloads it had been set to refuse, on the URL already handed out. Both are\n  now kept and put back before the share exists. Entries kept before this\n  version cannot say what they had: a link or mail share from one of them comes\n  back with downloads hidden, and the result says so.\n- **Two live links could end up on one token.** Two requests that had each\n  loaded a share before either deleted it left two entries in the bin, and\n  restoring both at the same moment could put the same token on two shares, so\n  revoking one left the URL working through the other. The bin now keeps one\n  entry per share (duplicates already there are dropped when upgrading, keeping\n  the oldest), and a restore holds the link's token until it has committed.\n- **A queued file move could move a different file.** The queue kept a path,\n  and whatever was at that path when the job ran was handed over, even if the\n  selected file had been renamed and something else put in its place. The move\n  now checks that the path still holds the file or folder that was selected,\n  and moves nothing (*no longer the file or folder that was selected*) if not.\n- **The personal view named folders of the owner a user was never given.** For\n  a link a user made on something shared with them, *My shares* and its alerts\n  showed the owner's full path (`/Clients/Merger/BoardOnly/report.pdf`). They\n  now show the path as that user sees it, or only the file name.\n\n### Fixed\n- **A file move reported \"Done\" when the Files app could not hand over the\n  shares.** The transfer writes a share it failed to update to an output nobody\n  read here and returns as if all went well. After a move, the shares still\n  naming the old owner while their file is now in the new owner's home are\n  looked up: if there are any, the move is *Partly done* and lists them, to hand\n  over with *Only the shares*.\n- **Access lookup and groups.** It lists, and *Revoke all* removes, the shares\n  made directly to a recipient, and now says so (*direct shares*). For a user it\n  also lists the groups through which they reach shared files (with how many\n  shares each), which revoking the direct shares leaves in place; a user with no\n  share of their own can now be looked up for that too.\n- **A bulk revoke in Access lookup could move on to another recipient.** Each\n  batch read the selected recipient again, so choosing someone else while it\n  ran sent the next batches for them. The recipient confirmed is used for every\n  batch, and search and *Back* wait for it to finish. Likewise a bulk purge in\n  *Deleted shares* sends what was ticked when it was confirmed.\n- The warning that a revoke left shares behind vanished as the list reloaded.\n- A slow answer to an earlier search, filter or page could replace the one\n  asked for last, leaving a list that did not match the filters shown (and an\n  export that did). Only the latest request's answer is shown now.\n- Accepting the reason an alert was critical left it sorted among the critical\n  ones, and in the dashboard widget ahead of alerts still critical.\n- Searching for `0` in a share list's text filters matched every share.\n- Paths in a Team Folder asked Groupfolders for the folder's name once per\n  share; it is now asked once per folder per request.\n- A queued file move and its background job are now written together, so a\n  failure between the two can no longer leave a move that never runs.\n- **Acting on an expired public link deleted it and reported a failure.** Every\n  action on a share (revoke, add a password, set an expiration, accept an alert,\n  even the check of who owns it in the personal view) loaded the share through\n  Nextcloud's validity check, which for an expired share deletes it and then\n  throws \"the requested share does not exist anymore\". So \"Revoke all\" on links\n  that had expired came back as a failure although it had removed them (they sat\n  in *Deleted shares*), the same request repeated said \"0 of 10 shares updated\"\n  about links that were already gone, and a change to an expired link, or an\n  account that did not own it merely asking, could remove it. Shares are now\n  loaded without that check, so revoking an expired link simply works and a\n  bulk revoke reports every one as done. Revoking a share that is already gone\n  counts as done too. A password or a new expiration on an expired link is\n  refused with a clear message (it can only be revoked) instead of deleting it.\n  The same check also hid links whose owner can no longer create links, which\n  an audit has to be able to revoke.\n- The exposure map's *Other* row now has a *View* button like the others, and\n  asking *All shares* for an exposure category the app does not have is\n  refused instead of quietly listing everything.\n- The dashboard's *Internal vs external* donut counted every Talk conversation\n  as internal, and the exposure map's *Public* \"View\" button opened only public\n  file links, leaving public conversations out of a list that its own count\n  included. Both now come from the same classification as the exposure score,\n  so a category's number and the list behind it are the same shares.\n- A Talk conversation the exposure map could not look up (Talk missing, or its\n  tables not what this expects) was counted as internal, so an instance of\n  public conversations could score zero. It is now counted as *Other* (what\n  could not be classified, weighed like external), never as safe."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvc2hhcmVfYXVkaXQvbWFzdGVyL3NjcmVlbnNob3RzLzEtZGFzaGJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvc2hhcmVfYXVkaXQvbWFzdGVyL3NjcmVlbnNob3RzLzMtc2VjdXJpdHktYWxlcnRzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvc2hhcmVfYXVkaXQvbWFzdGVyL3NjcmVlbnNob3RzLzQtZXhwb3N1cmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvc2hhcmVfYXVkaXQvbWFzdGVyL3NjcmVlbnNob3RzLzItYWxsLXNoYXJlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2tyZW90cm9waWMvc2hhcmVfYXVkaXQvbWFzdGVyL3NjcmVlbnNob3RzLzUtYWNjZXNzLWxvb2t1cC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Share Audit Dashboard","summary":"Visual audit dashboard for all shares across your instance","description":"See and audit every share on your Nextcloud, in the browser and not the command line.\n\nShare Audit Dashboard gives administrators a single, visual overview of every share on the\ninstance (user, group, public link, email, federated, Talk), flags the risky ones, and lets you\nfix them in bulk. Regular users get a personal view to audit and clean up the files they share.\n\n**For administrators (Settings → Administration → Share Audit):**\n- Dashboard: totals per share type, a 12‑month creation trend, an internal‑vs‑external exposure\n  donut, top sharers, and attention banners for insecure links and orphaned shares.\n- All shares: a filterable, sortable, server‑side paginated table with per‑column header filters\n  and human‑readable permissions. Export the filtered view to CSV.\n- Security alerts: public links with no password, no expiration, or a sensitive file type, fixable\n  individually or in bulk (add a generated password, set an expiration, revoke). Rules configurable.\n- Orphan shares: shares still owned by disabled or deleted accounts, with bulk revoke or transfer to another account.\n- Exposure map: internal / external / public reach, a 0‑100 exposure score and the top public sharers.\n- Access lookup: search a user, group or email and see every file they can reach, with revoke‑all.\n\n**For every user (Settings → Personal → My shares audit):**\n- Review the files you share and fix your own risky public links (add password / set expiration /\n  revoke), plus a dashboard widget highlighting the links that need your attention.\n\nUnlike the CLI‑only sharelisting app, everything is available in the browser."}},"isFeatured":false,"authors":[{"name":"Ricardo Ferreira","mail":"rsfneg@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEDCCAvgCAhOZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzE1MTAyMzI4WhcNMzYxMDIwMTAyMzI4WjAgMR4wHAYD\nVQQDDBVzaGFyZV9hdWRpdF9kYXNoYm9hcmQwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQCx308O8jTgDadfFtycc9pb4gAyYxIhDeLPO2hGyabdcwTTq3wM\nGEQ+2O3OvPk3BTOswBBhNyOT5qkay7t3F12Q6K0E4C80dqk4Wg5mEd35FnBTkzaA\n42502E7REGrIR6ec93sVA3Nl1QNgxjqKPsjyBEAsRjNqFyMuCu+xCn0OjVcTE99b\nDnQogSbAdpHWbTDNaqaG82h2w2iB9xWmFNCrBrtbNjo5OQTTcjdavJkF59dmDlEg\nWrFy/DWkEN98hwvCfSRoz87CTe2GdMJYwXaosF9Ms97ze9tRNqJZxqwAqRWRX7uF\nhzETXDOt9JJRSllEUwGDPlrv15lCOPdcsdZKu1HJH7Cgn0qMpU5+FbOZAGt5x1Ab\nJ+V09jz4oTOJcEH0QL5kK1jtlYbtxMfd0e2tiZp3xZ0jR0T/Lnh2caq/HzN6TZvi\nouvBrTYG7sTQfXhpvFLwm55uNLQws9eawmh+JIHHtFdX7yIaNCVc/Pa7wb4eZ3ji\nlX1oS/dQMF++7g3CFNfB2LcM2JrHj6yztMCz2Qhp22d8iWAhZNCvPZIA09Z+D0t1\nAx+PKPsbhT02D5lwEqnKWu3OTPOsUs5FmE+oztYZhBPgXUm97Ws8NVzdJcq5Q/by\nOpiejUcZT/JDSqrV14QDzsjzx6Qpgi8fVXYJ6PV39m2Y3vL4Jssa62SsbwIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4IBAQAlI8eUs8ctTUVZ5jT2h8Rk2O8wOSSOnIZqkXx/\nQAa7fmtZZMRMYYzj3cU1dpvSl6TmryiJt504n/BqG4mFCsX4Wm0BW/9ASlu4CTyJ\nNjc71R1glqlAMGw9fyLecQqF7ohbwJHQkGrqrm74e8yT7xa3YatlGbYNIXRKirFf\nzjxY+ZrWAusNv8c30isE7Kxv5GILJyDq+LemaFj1a+CFm4jZvHUlGn7M50KwdvyW\nVaZB9Rqm0H1bdQF5l1kzNOmej6TdQ4SBGttDBu93MmJMKjvkRA0mR+56lF33ZSfQ\nEDNVN0giFQWoJG2dyMLRoXxC5Q0IIAHGj+FtIh9PdmQKMDyS\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"moodle_talk_bridge","categories":["integration"],"userDocs":"","adminDocs":"https://elearning23.com/nextcloud-talk-for-moodle/","developerDocs":"","issueTracker":"https://github.com/eLearning-BS23/moodle_talk_bridge/issues","website":"https://github.com/eLearning-BS23/moodle_talk_bridge","created":"2026-07-29T12:21:38.005473Z","lastModified":"2026-08-25T12:09:11.906760Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eLearning-BS23/moodle_talk_bridge/releases/download/v1.0.5/moodle_talk_bridge.tar.gz","created":"2026-08-25T12:09:11.883344Z","licenses":["agpl"],"lastModified":"2026-08-25T12:09:11.955887Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"f8VDZEUKRI8nuOvbw6pkh/PlKu/nu81ZBjY8WH7cNFNlpkLFg/ZFXCrdxHcQ+NYczLky3Maxy7a/swM5VND2AT0CNy3K/BjZEP/yekrNpnkGYathW5mC24Z9orvXS/kGsl6Bj2g6s4wAmbntjHNf9RidhYizIhL3di+OV2tPysoftSbPHxrJ86utuKbpeee2DGfLk8BolHgUmdUFl8Dp8PrgH9vw2SRftjKH0fYhF0/rKAgzLumnpiHJuoBMs6m9n/t9FxBG0Zd2uUHCqy1ZYCprCpW4cnDo/1isqtPcTEAouzD1uYZcf44tSmsOXM/A16/JZ+PTJoRlIidxO7oVa0nDhXrsYh/uSZoX/vF1Ww27dT1VD31rnLWXc6lQS8edJ0wVjPBEIF8kWZLBwINTvEAkQu6jgp47SJAUIphWINKRqoG6H2zfXozYkTeaMKJlFDwRIR1HUwe9xtRB0125uJFzf2Y+sxs1R29z7a+rhugYUH7Zsj4sNKf2q3eCLSFQ/q+P8XkyK28u64cMKobfC/9YFHlsLK728ytXAeqWG9yhR1NDQvv03ABCr5qAFEVMlhd9gP0os8jJHpZ3NAbuYyOHr8YQv43W9a1krQ1rWHV0y7X/0zakL7Kvrie0G92SSIfDU2Z/7qW3I0SFFuTLOrtY7mq3J+opK7TBh4gzOfw=","translations":{"en":{"changelog":"### Fixed\n\n- The Moodle plugin address and the support email were plain text in the App\n  Store listing, so neither was clickable — the store's Markdown renderer does\n  not autolink a bare URL or address. Both are now explicit Markdown links, and\n  the plugin is linked from the requirements list as well as from its own\n  section."}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eLearning-BS23/moodle_talk_bridge/releases/download/v1.0.4/moodle_talk_bridge.tar.gz","created":"2026-08-25T11:43:45.929534Z","licenses":["agpl"],"lastModified":"2026-08-25T11:43:46.017249Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"obXldFFZQuRorS9yMMwAjjRZjr4FvFqsOn8QLZ33uEOXjvDvNXCbzdlSv+kpdaVh41sx/LsXBDWVLJZ/gOWo/l4YX1V/rvhQxdEyMhBNQ6kWGk/3mPfZC6mu4A77kuysUBvVNWFTND0bjFiLO6gv0Zgoa9W/FKWUJpWb0t8OsR1/J9AJzGTreK07JNUMVqSxBpEBPFiYtOi4J+wZukkMktW2ks4mARdWlc+G7Jnw0mzvbwOVhjvD8OLdhKjf/CfAC/ULPnSMDbgNBBEk4+yqs243pAhPIzx1tc7oYNRhjZ5ofMLIwn0nxqipm/8VCGb8lIlGyZ+2ydbZUE/swW1UY09FMWWQ7/2jYt/FOozA5YXKs0YSTeMZYWr3rEDKQn7gC+gldJ1aOXiG9ihgkZH4DcFSH3NKJw7solQMn/vGzUwuHZeZHIIYv+9VXX0CbChLkEUtRfLgzh0WiEjNImeBOJd4z4hjSH2TKn3yfcMDriavVlO0Wu/CUsxy0oCwoOr13kckBhyC+DY5GoB+QCjPWdWfMfAub7uhvXgT6gkI+h9pt4HhHEftzow0C6vjHymKN5EDw4SRMqNNGOGG5mDcMUaWigRfW+glW1Ghl191Ru/jbj+Baa0mQCiv0csXYFnbTPhmKZzCLpXooKClcvqbdj9nLLBUCf1hc5Hx07Vh/5I=","translations":{"en":{"changelog":"### Changed\n\n- App Store listing rewritten for a non-technical audience. It now leads with\n  what teachers and students experience, gives a four-step browser-only setup,\n  and no longer offers a command-line route — the `occ` keys stay documented in\n  the README, where the reader is an administrator.\n- The companion Moodle plugin is now named and linked\n  (<https://elearning23.com/nextcloud-talk-for-moodle/>) instead of only\n  pointing at an email address, and the same page is registered as the app's\n  admin documentation link.\n\n### Note on 1.0.3\n\n`v1.0.3` was tagged with the listing rewrite, but `appinfo/info.xml` still\ndeclared `1.0.2`. The App Store keys a release by that value rather than by the\ngit tag, so the upload was accepted as a re-upload of 1.0.2 and the listing text\nwas never refreshed. 1.0.3 was never published to the App Store; this release\ncarries the same content under a version number the store will accept."}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eLearning-BS23/moodle_talk_bridge/releases/download/v1.0.3/moodle_talk_bridge.tar.gz","created":"2026-08-24T12:54:18.410701Z","licenses":["agpl"],"lastModified":"2026-08-25T11:20:00.768427Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"gzt7BBTQSI72e1pVe89K4Ayq33Ook0oRuiPwSw8QUsLinGn/Ljr87SZM2Ju/PJ2RNMvsl9XL6ii5BzBIp1AloHJA8YA7c0w308qTiIMNlHOxo0B8aIzEY92OLsRxO0cuQy8ArKBtc3vi0O0qK0ctwcyXwXq+Hpbh+9XFC3aQ9REKUhY5tgpPdmRkTqKYn6VxrGl099mM1vcbtzLniPikf1NNgnZei5vfap0Vhroi06UTKr3Y/4CZYOpv5kFBvvNIBk8IrCOKl7ORf2cCQZGaNn4gI/K/ws78zb9HuDv4/I9fVhbxoHmrLrq+oduvZixyWQUL13xCAl0a9/vZwnTEl95iqazxXFOTuxx5uqcYlnw4NRW20oyOUL/0TorLF7O3gansgvLBqGMwMzKlsqJN9frcfMu9FI6vNbScS8NsahWepV4hx5wu33rKWE4XTR4jMgUB3rflyr639bXDv6XKO3enjgpPVcU/pVM+PfNhSbh0tw3mAyGt0qp+Sofx9Wh0+tTPoodIlLB9IpJrfV3LXesAV0Z3XaXPESgdn4qyIiZO9A1GWpAtFP0SIf0QbexBH35yqGc4sN5ou/scI9EcsX3FMM0ZCcczVyIXXgbXookwIVYhcnbuseHaHFDTjZ/Q1D9bHqOnf3AouRbrGuS68NZitH7CDyKBYy1MjPIc8Nw=","translations":{"en":{"changelog":"### Added\n\n- Admin configuration panel at **Administration settings → Moodle Talk Bridge**.\n  All six keys are editable in the browser; the two secrets are write-only and\n  render as placeholders, so leaving a secret field blank keeps the stored\n  value. Every key can still be applied with `occ` for scripted installs.\n\n### Fixed\n\n- The admin panel was unreachable as first merged. `appinfo/info.xml` declared\n  `OCA\\MoodleTalkBridge\\Settings\\AdminSection`, but the class did not exist, so\n  the section never registered and the form — which targets that section id —\n  had no navigation entry to render under. `getAdminSections()` silently\n  omitted it, with nothing written to the log. Added the missing class.\n- Opening the panel threw `QueryNotFoundException`. `templates/admin.php`\n  resolved `OCP\\Security\\CSRF\\CsrfTokenManager`, which does not exist in any\n  Nextcloud version — the class lives in the private `OC\\Security\\CSRF`\n  namespace. The template now uses the `requesttoken` value that\n  `OC\\Template\\Base` already assigns, which needs no container lookup.\n\n### Changed\n\n- The setup screenshot and the `info.xml` and `README.md` configuration\n  sections no longer state that there is no admin UI."}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eLearning-BS23/moodle_talk_bridge/releases/download/v1.0.1/moodle_talk_bridge.tar.gz","created":"2026-08-24T10:31:13.438157Z","licenses":["agpl"],"lastModified":"2026-08-24T10:31:13.522201Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"imP/Lr+tcRiXJ5XfnGa41J5NeQDWfpNG1LOIOoEAFppr1tkrm+XtTGpRzjDQuIcPXTWxwNuNig/4Qjk9pAHjjYXsibRg64UaV7WtUX6037orBztUDuxikOWYhndPe15H91KuwC35HykGNZobbJ3RkPdNfIhqtkOlfZOFLrXhMrCSY8bCLBmYx3RTelMjxeSa0BXnWlWqCHyUtqiJJs1+PlBf/Pwc7O6pGYDtDWmLpEhSBVH510QvEl3GHZPjPU3wNw/Sj4ZC8DcsU4zWqrrf+7RG2pOFQ7WjZT7g+ND5Ujf5brexY2l7bGXN6XujnL25DtytJuzdoQi+/TC3JHiNxsA5u+DwZ6Q5fQLT1xz9nr3ygW40gpBwfRHzHCI4JLG3aBTk+IaHbWszAkWPA9fBddEr5gwCkY4sGnhXWmkZCd6kStLL7ElcnYXba0omA1BegFyKBs9SvoCUFBxZshS/2ubJ5FGydDoGwbdHlslseVeoTMmXM2wcqv7m+Uh4tEtvyyTSF4rq4KMvXvP/Q/zlpP6sNKHF60ZlShvfVXYnE4mhG2VGmnxPJPuwLr+hrq0/68obdl3FfeBJPAcL8revLICbiZE6Kq27l+NRunqIFFeNNx1mJ1zhDRmW5n0DAMuBrwoDP4SdovzdbW8TGneF1ubGDRgAZxbGKB7QtWdIQrk=","translations":{"en":{"changelog":"### Fixed\n\n- Clean installs aborted during `occ app:enable`. Nextcloud runs its Oracle\n  constraint checks for apps that declare no `<database>` dependency, and two\n  rules were violated: `talkbridge_user_map.provisioned` was a `NOT NULL`\n  boolean, and `talkbridge_event_dedupe` (23 characters) relied on the default\n  primary-key name, which caps the table name at 22. The column is now nullable\n  and the key is named `tb_dedupe_pk`; both edits sit behind\n  `hasTable()` guards, so existing deployments are untouched.\n\n### Changed\n\n- New app icon: a redrawn monochrome `img/app.svg` that stays legible at 16 px\n  in the app menu and carries detail at store size, plus a colour brand logo at\n  `img/logo.svg`.\n- App Store listing artwork — a poster-style cover plus four screenshots, each\n  with a small thumbnail, declared in `appinfo/info.xml` and served from\n  `screenshots/`. Without them the store listing fell back to its generic\n  `no-screenshot.svg` placeholder; the cover is first because the store card\n  scales the whole image into a 200 px box, where a detail-heavy screenshot is\n  unreadable.\n- `.claude/`, `RELEASING.md` and `screenshots/` are excluded from the release\n  tarball. The staging step copies the working tree rather than tracked files,\n  so these were being packaged and hashed into `appinfo/signature.json`."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eLearning-BS23/moodle_talk_bridge/releases/download/v1.0.0/moodle_talk_bridge.tar.gz","created":"2026-07-29T12:46:37.889030Z","licenses":["agpl"],"lastModified":"2026-07-29T12:46:37.951025Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"pJYpYFfIK0A5Ofis5gRqbEwtW/9meqO+wBsplje7Y4lZZIb9m3LrqyOG3oR41xEZ+kta25nWjt2apBkvGKGjq0yxD6f2+Bex7r7odT2GPeWRmcXalCieZZDjTWOCyjzFoRDDAfe7TNZE6FleuXAslsVQK+JnTQMyblL4mzpRctQmStwdCB4oMzgzwilL8LZvIc74IddQsqb721+qLsi1HFk02HrSz+EwB9W2jsa5D6Ut6u7LqlibqdqXjjRQsNfEke0k+JbpawzCOydZeV6LAFjDtLM+1U4TcNA34CcFM0VUds+HIdByOB8yVjdwyDQc8APefvjZ3i7msB0an52uvXnE5TtlzPVJg8ir0LQwzMsjgRALvTq+ilS9sxsAMaWqrLvdZEFlXAPC4I+9OWN13frr6OxJXWhpTrueGEQR5IRkMUUwM4BJYXDCGojPs+tZSljliZOnI1bE+jlvlKs5ID5pCF+d5lDOP/if+i+6NiTWYCWHfuWRFmg5SddsMvocA3Kpdqmd7nIOnhnSCQsZGAn1b4lhnEOwLGiZUExWaTqrGP3PlAC4XYGildQ0GGDJE+nRTukd/+/XDefxWwAt1gjm5q9ritEl9kXPvKaX7d48fUq8CpnaqyI8xCq4jwoPtbnwVHppaETHHA6ZhsXZAmf0W9PMjeytotmTvUxT5yA=","translations":{"en":{"changelog":"First public release.\n\n### Added\n\n- HMAC-signed webhook endpoint that creates, updates and archives Nextcloud\n  Talk conversations on behalf of a Moodle `mod_nextcloudtalk` activity.\n- Automatic provisioning of Nextcloud accounts for Moodle participants, with\n  a persistent Moodle-user to Nextcloud-user mapping.\n- Roster synchronisation from Moodle course enrolment, granting teachers\n  moderator rights and students participant rights.\n- Signed single-use ticket SSO endpoint, so following the activity link from\n  Moodle lands the user in the conversation already signed in.\n- Health endpoint reporting Talk reachability and bot authentication, backing\n  the \"Test connection\" button in the Moodle plugin.\n- Replay protection via a nonce table and a webhook event de-duplication table.\n\n[1.0.0]: https://github.com/eLearning-BS23/moodle_talk_bridge/releases/tag/v1.0.0"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VMZWFybmluZy1CUzIzL21vb2RsZV90YWxrX2JyaWRnZS9tYWluL3NjcmVlbnNob3RzLzAwLWNvdmVyLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/eLearning-BS23/moodle_talk_bridge/main/screenshots/thumbs/00-cover.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VMZWFybmluZy1CUzIzL21vb2RsZV90YWxrX2JyaWRnZS9tYWluL3NjcmVlbnNob3RzLzAxLW92ZXJ2aWV3LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/eLearning-BS23/moodle_talk_bridge/main/screenshots/thumbs/01-overview.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VMZWFybmluZy1CUzIzL21vb2RsZV90YWxrX2JyaWRnZS9tYWluL3NjcmVlbnNob3RzLzAyLWhvdy1pdC13b3Jrcy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/eLearning-BS23/moodle_talk_bridge/main/screenshots/thumbs/02-how-it-works.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VMZWFybmluZy1CUzIzL21vb2RsZV90YWxrX2JyaWRnZS9tYWluL3NjcmVlbnNob3RzLzAzLWNhcGFiaWxpdGllcy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/eLearning-BS23/moodle_talk_bridge/main/screenshots/thumbs/03-capabilities.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VMZWFybmluZy1CUzIzL21vb2RsZV90YWxrX2JyaWRnZS9tYWluL3NjcmVlbnNob3RzLzA0LXNldHVwLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/eLearning-BS23/moodle_talk_bridge/main/screenshots/thumbs/04-setup.png"}],"videos":[],"translations":{"en":{"name":"Moodle Talk Bridge","summary":"Create and sync Nextcloud Talk rooms from Moodle course activities","description":"Connect your Moodle courses to Nextcloud Talk. A teacher adds a **Nextcloud\nTalk Session** to a course, and everything else happens on its own: the\nconversation is created, the class is added to it, and everyone joins with a\nsingle click. No extra logins, no manual room admin.\n\n**What your users get**\n\n- **One click into the meeting.** Teachers and students open the activity in\n  Moodle and land in the Talk conversation already signed in. There is no\n  second password to remember.\n- **Accounts created for them.** Course participants who do not yet have a\n  Nextcloud account get one automatically the first time they join.\n- **The right people, with the right rights.** Teachers become moderators,\n  students join as participants, and membership follows course enrolment — so\n  the room stays correct as the class changes.\n- **Rooms that follow the course.** A conversation is created when the\n  activity is added, renamed when the activity is renamed, and archived when\n  it is removed.\n- **Private by design.** Every exchange between Moodle and Nextcloud is signed\n  and verified, and only the Moodle sites you approve are accepted.\n\n**Setting it up**\n\nEverything is configured in your browser. No command line and no server access\nare required.\n\n1. Make sure **Nextcloud Talk** is installed and enabled.\n2. Install this app from **Apps → Integration**.\n3. Open **Administration settings → Moodle Talk Bridge** and complete the six\n   fields: your Nextcloud address, a shared secret, the account this app uses\n   and its app password, your Moodle address, and the Moodle sites allowed to\n   connect.\n4. Enter the same shared secret in the Moodle plugin, then use **Test\n   connection** there to confirm both halves are talking to each other.\n\nSecrets are write-only. Once saved they are never displayed again, and leaving\na secret field blank keeps the value already stored.\n\n**Requirements**\n\n- **Nextcloud Talk (spreed)** installed and enabled. This app drives Talk and\n  does nothing on its own.\n- A Nextcloud account dedicated to this app, with an app password.\n- The companion Moodle plugin,\n  [Nextcloud Talk for Moodle](https://elearning23.com/nextcloud-talk-for-moodle/),\n  installed on your Moodle site.\n\n**You also need the Moodle plugin**\n\nThis app is the Nextcloud half of the integration. The matching Moodle\nactivity plugin, **Nextcloud Talk for Moodle**, is published by Brain\nStation 23. Download it, and read its installation guide, here:\n\n**[https://elearning23.com/nextcloud-talk-for-moodle/](https://elearning23.com/nextcloud-talk-for-moodle/)**\n\nBoth halves are required — neither works on its own.\n\n**Support**\n\nFor installation help, a demo or any question, contact\n[elearning@brainstation-23.com](mailto:elearning@brainstation-23.com)."}},"isFeatured":false,"authors":[{"name":"Brain Station 23","mail":"elearning@brainstation-23.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhOwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI5MTAzODExWhcNMzYxMTAzMTAzODExWjAdMRswGQYD\nVQQDDBJtb29kbGVfdGFsa19icmlkZ2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQC55OCha7tN1tSlOrwzl19nXvkyOGElpMD31ZlKOlvIC880OM30+nt2\nj2clTG/P72AWWRMyaFgc+E66el5a6sXrXnXbjT3/yR22ZJHBSgz0nK1uDdrFj4MA\nh5egs8fk+0IW4q5wBlRPGsu/+Ybra4y2cuEsRMqIamIcKpD75EZQlh+ZwfX1SWUB\nlhZqH8HAqsPpRq18GkfqFzqzHOMZWOxau0IYzLFGUaw3hPYSE1Jgots3KOcw8+Tk\nPdSCrw32V943sQ9N5ZM9inFM36X/hb79tm55MM8kpS2g5+FXDIZMbtlzgWNhWcmc\nYtjFQEpCBLcFYY6sj9Ok+Q3QMtVeSIBMXsn5/13rAveg3JmJcee284YYnM/X7y/k\neBLflSQlWH3SusSYF3CWDh0RLg/C1qZfCPrjBYhgUCodbK0/lgi2EpU5du4u6nNl\nCu1sAxOyG1/aaz+hpwBfDbJvL03JLEBHkF0tm4/zhq8XNh06XE+gTWnHZ2fb4+ZT\n4HegIY1kuPp97W6V/Etd/FitZf5LexRuSbaaT+o9fK12xchE4CwNAVoFQqpkYCD3\nSNjpgtEn6qgz878hfJaTnVsfIQ3vPpq7Dlc9UvIoeV6KWeiT9hYsgqMF7Eoc9hwW\nnigp5cDM8oAsp+LUcLP31u1d8lbbvN46/Ey7azV/OgDYpV8XZjHT2QIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQBlLNoUhrNFQ+gQVY5J9BEb6AKhCOR27DGyjgSbldtY\nYUyKZJ/gYJ5POR5awMzMnzAmGP5AEhphtVUdOI0S4wWbDUXcTAov2QAMI71zKFrm\nM/HcQ5+RiDuTzGkLpycHKzCLmylYaJKwrxnj5gjQFXHjsWMZZS2UTGYn3kiPKnLU\ntiomWlYTblWEm/VF1hGVsEZQj+ptTfWw53fxOG2/7JU2SDbIaSHcePFSQoeCY88R\nQl8xdXxO+L9sPiwmY20SyTb8M6xX7dc60uShUEJDVbVqFmarWPY12niFgEl6Ct9r\nx0xTGee86lntiZn4QscNnq88l6Wd7L+hQtpfYNezxVIW\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"oidc_login","categories":["integration","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/pulsejet/nextcloud-single-openid-connect/issues","website":"https://github.com/pulsejet/nextcloud-single-openid-connect","created":"2019-10-29T09:59:26.575876Z","lastModified":"2026-09-16T16:51:18.626308Z","releases":[{"version":"3.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.4.0/oidc_login.tar.gz","created":"2026-09-16T16:51:18.602972Z","licenses":["agpl"],"lastModified":"2026-09-16T16:51:18.681368Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"HlGxsh4FLmjqTaqxkCpY+01w3+MFQ3S7gD8bJ40nCxXTy7EondV3fD7bj59doVs6Xu4mZZDYitS62XmEQwA61L9WKM93gL7YlK9676oQbURgmY81uAHYxVtFoYBHgJ7asXjCOpqFnBF2m2nEr06CYzRZEao8vrZSie+laKm755lI6dQ3LhN9K5MTd0RZCLfQnoLstGRsaCHFwiiTJgqmmgZlKBRG5FeDmvQ6lH13lNQzrM0sen8NTuKBdKb0CgxRE1Xdm3FCRBo4LLXxIhUeApcFY3f2YeGOf5PrAxHjb9A3mzXVY0AHn5Hrm9Tb4sBYrZ4EvGVZ2RC3nNNPq56/uAswq74iP+liwUbJKqWZPJP6yNGZ2iiiiZBKnRbJ8fcahWCWLyi2ANJbTQfj7FVQ/6Lu9BQcP2qE9aq5EqEhEt92kNaIGS97wy3i9mM6iBLI9aiCXWmrW2Fbx8h46oP1dXSXZPWfVuqF/FpiKEAeUTxrnlaSDSKTb7NafoBGF2EPnxiOScjf7oSiGSLa928tf20pB+uDzXtP2BG4Fg6gA20HO+0nV8v2bTL2rL5YvyWObDgnDM19zl6L9SnwtDad5Ny5u2Im5Gx+7OcuFXHMiCW6tQPkPyiqTXc0ewGSrtyHxrYn/wvXKX1hglKevnZD4fKOI2HDd+vElpF6S8pOcTs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3B1bHNlamV0L25leHRjbG91ZC1zaW5nbGUtb3BlbmlkLWNvbm5lY3QvbWFzdGVyL2FwcGluZm8vc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OpenID Connect Login","summary":"Login with single OpenID Connect provider","description":"# OpenID Connect Login\n\nProvides user creation and login via one single OpenID Connect provider. Even though this is a fork of [nextcloud-social-login](https://github.com/zorn-v/nextcloud-social-login), it fundamentally differs in two ways - aims for simplistic, single provider login (and hence is very minimalistic), and it supports having LDAP as the primary user backend. This way, you can use OpenID Connect to login to Nextcloud while maintaining an LDAP backend with attributes with the LDAP plugin.\n\n### Features\n\n- Automatic [Identity provider endpoints discovery](https://openid.net/specs/openid-connect-discovery-1_0.html)\n- User creation at first login\n- User profile update at login (name, email, avatar, groups etc.)\n- Group creation\n- Automatic redirection from the nextcloud login page to the Identity Provider login page\n- WebDAV endpoints `Bearer` and `Basic` authentication\n- Optional removal of special characters in UID\n- Mapping of multiple names to a single display name\n- Mapping for birthdate"}},"isFeatured":false,"authors":[{"name":"pulsejet","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhEaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDYwNjA1WhcNMzAwODA0MDYwNjA1WjAVMRMwEQYD\nVQQDDApvaWRjX2xvZ2luMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n2Ic9GcxdFyNoY6yKp49U1KNx+lv7r/huWQ2gINMs3V1kYHrCrxDZM1OrxMtjyJeo\nrFAESM02bZUanRsk2AKPtAUfK3V9MuM6phGPlBd3iLuFV4F3Y4FOEAUogo7PfwlP\nOYcE4bg6RDRd7w2bkriwwqttumwyCJYZoD35wrQP3CFNgIU8MMJmdCnlItK9CABJ\nuhpTfcaJtNZodv9p15bsSDRG/vPahCb+1FPbg52unfILGG0ur83ddP6uzmmrVMXz\n3Xf39yEfvqB8SWggVI9iwEcMJSvHBfoyflaUWHPETX1pse3m3mJSEem0svt3S4yZ\nxujgCwXMp2u6xt0NqocWpUCYXG1IaUy4ZhMPjR1eoLErjM8xguf2t4Mlvd8UQu2h\nIeh0HaXOL/kcSPND3mAlivgP4MDihveTXh1sF2r4GnOFtTB1LNLnAfCf91Pu3THs\nMoVPLgyi2Faobkw1CF2a1dq8mCaUtZqh2ojUeDXveuacZh5G1oBjj0XE4q3DUzBe\nML3fPs8kgXpu+HOmDtWdczA0PrHFF7Cu5ADPoBXLxxnOMCZ+Z29C81zwN0Hn8HLX\ntudTOcE/dCO016FDQgQp9DSmIaoYqGVRjHeRpUfCvN1DNyb+IGxh6uGb85Lja4IO\nbhPpC9475RVnvlR1KquOehm3tSK/KTKMHcjald/gL3kCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAPFGx/5MqTqp5UrfldVvJFTP9U+9tbjnFvKa5/oJdDfmn8DTvRaAD\nQHfLDbVO2PTX0IW8JpFwCCf4Dc9NQDKMdHKbwUDtlutFn97ex4NK+Bbyy2qYZ/vA\nLLk/Rf8+eLSFJ8EC9bnAEQ13zVJ5ue1hfqjIHsS9f2GpnDiIn5AN5b3jEIblQr5p\nw2XZ5mpPhOlubWrzTwio+RXYP9XdTK1aXzbCEAndIjUTWhOTgdQiUu9Mu+RB8gF4\nVvLNhLb8t1V//H8eV8JsmdeStWwP+OOWgISgrCj5gcfSDgYtHQZNpjJS+TH/frUJ\nULsCMPilsjF6lE6oCIurLeKhWwWEFL8JPg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"duplicatefinder","categories":["tools"],"userDocs":"https://github.com/eldertek/duplicatefinder#usage","adminDocs":"https://github.com/eldertek/duplicatefinder#command-usage","developerDocs":"https://github.com/eldertek/duplicatefinder#development","issueTracker":"https://github.com/eldertek/duplicatefinder/issues","website":"https://github.com/eldertek/duplicatefinder","created":"2020-07-06T16:38:31.688999Z","lastModified":"2026-10-12T16:23:33.260629Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eldertek/duplicatefinder/releases/download/v1.9.0/duplicatefinder-v1.9.0.tar.gz","created":"2026-10-12T16:23:33.255008Z","licenses":["agpl"],"lastModified":"2026-10-12T16:23:33.302649Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"MP8ahbCHyJte/l8QauCEZW/Q3gs4jjf3I31PCEROPDn/NMaSrxeGgFeQngX4y8KFOh97tHFmG2fUAYjtxUS9W4qHLSX5fl/8ztl7QbAPTiQPi4JSBEsZtOz5yvcjMP8+Y1ygQdHyGsGKv8l12/Ifz5oLENBKNflhCiEJ6IIuBLdm3lu7mLspc46quS6Algk8hqJ7q1gCkzLkOZKSQZLpXYx1TNXAn8GVWdvw8vrsYOpR6XGSp8NF8qmfhE0WVw6jKRQEZIAyUkHT9nEH23aoaYH5hbPpmoAlfFJi9qq8OxmN/7QuE9eQ6o7lIsKLFqwSkUIAmAMl/xKtqT76rncyn+ZIegXt19c75kYr+u1MDK0QW8mWjeVPPqhf/Elc6RrV4ZdfOHLc6W6AjW5hOeRAckWiSUbXh/BzB9FpQjGzx3v03zep8L/30WVqdcnMfSLMOxOZIYBUQ3WbA7kO2iMXiUbe+ZEOdaaODYqzTV8QnJXUvnCGD8H0upKKsCCwfeLV+Ke7sh2Y3N5Bmn4VnYimGWlRAisFcVhFvzzo3ugXeJhq5aIhBvFMoAcQpywaFdFpcYlNflD/gbR5esCkULQxgINDi/3yTNTrrjvynVw5WimtjwJ7lQvIwA88zVgxbjvyqVOjM1UtJNbGwfF0wS/RKgYvXxymn4hSsu0VxRymM70=","translations":{"en":{"changelog":"### Added\n- **`occ duplicates:list-all`, a read only report of the duplicates of all users, for the administrator** (Fix [#195](https://github.com/eldertek/duplicatefinder/issues/195), follow-up of [#155](https://github.com/eldertek/duplicatefinder/issues/155)). It groups the indexed files by content hash whoever owns them and prints, for each group, the hash, the size, the number of copies, the space wasted by the extra copies, and the owner and path of every copy. The biggest waste comes first, so the old Debian ISOs that three users keep are at the top. Options: `--min-size` (bytes or a unit: `500K`, `10M`, `1G`), `--limit` (100 groups by default, `0` for all of them) and `--output=table|json`. Running `occ` needs access to the server, so the report is reserved to the administrator, and the web interface keeps showing every user only the files he can access. The command only reads the table of the indexed files: it deletes nothing, writes nothing, and scans or hashes nothing. It reads the hashes the app has already stored, so the users that have never been scanned (no indexed file) are named at the end of the report (`users_without_index` in the JSON), and `occ duplicates:find-all --user=NAME` indexes them. Ignored files, files without a hash and empty files (they waste no space) are left out. Measured on Nextcloud 35.0.1 with SQLite, MariaDB 12.3 and PostgreSQL 18, and on a table of 1.5 million rows with a memory limit of 96 MB (47 000 groups listed in under two minutes)\n- Unit tests of the command (table, JSON, limit, minimum size, users never scanned, bad options, and the proof that it never writes)"}},"signatureDigest":"sha512"},{"version":"1.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eldertek/duplicatefinder/releases/download/v1.8.5/duplicatefinder-v1.8.5.tar.gz","created":"2026-10-06T12:18:39.694245Z","licenses":["agpl"],"lastModified":"2026-10-06T12:18:39.922929Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"PnQU/EEBORg+dWnvThC3FmG+STO7IPCYYgkmJzpbE66egF2C8GAmgU10qWTP3k72/AMmG7gSbmIddrwp/+l1QAYD8kmn05x2ZE52GMNfusk46P/KS/F9pSECaChvy2nfyXHqrS6d6eM3OZfm7iXsiLSZQyzlwrbCC/Y0CLHQJr4TSv5DzJyRFRZyY2PlABgxykHRonRcgcrXITqBC1Fenfq7sTvmDvaiLVuSIWCAXqdqUGgHZDRDQWXeclGwY2Gjh45zJY1K8Ta1l7/FPJFVxFNBbDX8qazqIYeQR3TdID7Q5XfP09U6XNG+/pPR4LywpuU6616DF536r6CkPy2yQxRO8vlB554UvrmH5/X99Vwtgk8p0Sr4nKGnavLdmWMw4Xm//QjRCxh3QnKSWoZlXJLL4NSbZ/uMEZdPi3mwjLTJGaq+iBzxlBK4ZiKVTTUE9L8cHY2QPy24cuOZnkH0g3O9NVCBjPU0h/DQX68N9rB5qyYPGfE5pzkqoHz6xN6rRjCPmLTKirXVVeNTKupzXe4CY4UA8HZOw+b+t8Vs4DKMd8MeEgBtwKcZAJUq4MhH2KY/N9OcAsXzxyKmuyy1cLmYbyzKpNL6okEw0gV6fEogHj0HVwvpTQBFe7ffnlYopiHaG/V6QCLl3Wlufl6b5C5P/gONVAAo0rxcfzEqpwM=","translations":{"en":{"changelog":"### Fixed\n- **`occ app:enable duplicatefinder` and `occ upgrade` could be killed for lack of memory, and leave Nextcloud in maintenance mode, on a server that had indexed a million files or more** (Fix [#182](https://github.com/eldertek/duplicatefinder/issues/182), second report). Nextcloud runs the post-migration repair steps of an app each time the app is updated and each time it is enabled again. The step \"Repair FileInfo objects\" loaded the whole table of indexed files in memory, one object per row (about 2.5 KB each), to give a path hash to the rows that had none and to remove the rows that share a path and an owner. That is 3.8 GB for 1.5 million rows, so the kernel killed `occ` on a server with less free memory than that. Measured on Nextcloud 35.0.1 with 1.5 million rows and a memory limit of 1 GB, `occ app:enable` was killed after 9 to 14 seconds on SQLite, MariaDB 12.3 and PostgreSQL 18, and `occ upgrade` was killed on SQLite and left the server in maintenance mode. The step now walks the table by windows of 5 000 ids and never holds more than one window in memory. It gives the work 20 seconds at most, the clean-up background job goes on from where the step stopped (the position is kept in the app configuration), and a table that has been repaired costs a fraction of a second. With the same 1.5 million rows and the same memory limit, `occ app:enable` takes 5 to 14 seconds with about 80 MB of memory on the three databases, `occ upgrade` goes through and turns maintenance mode off, and a second activation takes 0.2 seconds. On a MariaDB server with a small buffer pool (128 MB) and a cold cache the step used its 20 seconds for the first 300 000 rows and the clean-up job did the rest in about a minute. If your server is still in maintenance mode, run `occ maintenance:mode --off`, update the app to 1.8.5 and enable it again with `occ app:enable duplicatefinder`.\n- The clean-up background job also read the whole table of indexed files in memory before checking it (3.2 GB for 1.5 million rows). It now reads the table by batches of 1 000 rows (85 MB).\n- While it recalculated a missing path hash, the repair step deleted the row when it could not find the file. It now only recalculates the path hash, and the clean-up job removes the rows of files that are really gone.\n\n### Added\n- Unit tests of the repair of the file info table (windows of ids, time budget, position kept between runs) and of the batch reading of the clean-up job"}},"signatureDigest":"sha512"},{"version":"1.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eldertek/duplicatefinder/releases/download/v1.8.4/duplicatefinder-v1.8.4.tar.gz","created":"2026-10-06T04:58:06.671736Z","licenses":["agpl"],"lastModified":"2026-10-06T04:58:06.717059Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"kf2Ph5F+YXfOWHTFrCFKKUob/SpGFAohJN9kHNHwhuyzh4duPt/BA/g2pz3zPEHGjmyLYU+BJGtK/Muw8eYeELDdss8hh56W0eQpMfXOqz02Yo4vtPaIPzO3Vusgu8SK3IwyGTRTtdnUY3PSB9fdedSL4D1Mfd/2Y5cmKR8WeWgbpJg4Pqac8lRHRFFPoTrGp8g0i1dDtbozqTvjBzA4IVviyqgC9w/wHS0HZtG/4Noz9H38dEzp1KrKRxC0XRtDgTCSM/gYRPKYIbZGr4SBFyUwZxmH939B8SE7egyqsyR1Pf7+a1jLMTxEE5puEdWYI908CxACcZfkTDKzas7DFAviwBWfPGy/mEux8+t7anvQqnNMn/nIDVw5vC2F20eIAajTwaoWLkwqXK/iupx+2mZE5UZVV6yHASdMYxzStjr0g2HGZ9V7AxlQKQMPMsMn0ZgkZ8dHRrHIoexzUkfSwpnszH0d9rXZEU2LsIGSmprqaKUL8qRsWCGT7CfzpjCSu3R0BDx/9Mc4J+TriihlIgGcD/pIamOE1cHs00k39+wFgLA2pbax43sQMCZFwDy96mekmSAnt4ubOredTaywYPRiPv9DPoj53KguA0vGDXaJwcbzZU+FEQfZjgw9lO7oEOtNz6VVF6YRKhjUXZP3W/AHBzjtCv32/klFdtfEDYo=","translations":{"en":{"changelog":"### Fixed\n- **The upgrade of Nextcloud could hang, end in maintenance mode or be killed after updating to 1.8.3** (Fix [#182](https://github.com/eldertek/duplicatefinder/issues/182)). The repair step added in 1.8.3 to merge the surplus rows of the duplicate groups loaded every group in memory and deleted the surplus rows one group at a time. On a table with hundreds of thousands of groups it ran for many minutes (540 s for 200 000 groups on SQLite, a deletion rate that puts it above 15 minutes on MariaDB and PostgreSQL) and used memory in proportion to the number of groups (143 MB for 200 000), so `occ upgrade` and `occ app:enable duplicatefinder` did not finish and could be killed. The surplus rows are now deleted by batches of 1 000 rows in id order, with a constant memory use (42 MB in the same test). The repair step gives this work at most 20 seconds and a table that is already clean costs a fraction of a second; whatever is left is removed by the clean-up background job, which goes on from where the step stopped. Measured with 200 000 groups of three rows, the table is cleaned in 11 seconds on SQLite and on MariaDB and in 42 seconds on PostgreSQL, and with 1 million groups in about 85 seconds on SQLite. If your server stayed in maintenance mode after the update: run `occ maintenance:mode --off`, disable the app with `occ app:disable duplicatefinder`, update the app to 1.8.4, then enable it again.\n\n### Added\n- Unit tests of the repair step and of the batch merging of the surplus rows"}},"signatureDigest":"sha512"},{"version":"1.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eldertek/duplicatefinder/releases/download/v1.8.3/duplicatefinder-v1.8.3.tar.gz","created":"2026-10-03T10:37:36.816788Z","licenses":["agpl"],"lastModified":"2026-10-03T10:37:36.861073Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"BDBvqrVXaUXslQQYBh8b2cRJimB+8DpdZ1q2UD79mtROpkae42XmJiPsYNdTpqXNpOWdnIf8mpVwgDWDfcPJMZfuhIdJEtYPnY/WLWrgWpTOplEHkSMPvCLdVMf3/JpxTdVjn9FIQmTLBT2mYwD6zsaKADL76sRzwjbgFknWLg7+joJdGzc3zc8kkVZiN2G4UKsqxRHLVhKy4Hs02xhXtCel3vqre99Kuf8My7Q8AGEWKto5dyicmO5HHFeqlkAjxF1eTh103JFLxyRekftL2Gll+xH0hNAcyf6NzQXvkkBgLLY5sMYY5tItyAqhL3aHDBLJi6VCIsS0mW90XIT5ex81kkiAk2SXe0ypG3K/pneRjGxiL/L4wlZsBHLvviQYb5PZCsBkAlSGrFiz9V8AAbVRhBXdzLW+QQl4olVfYZJC2pzkhsOmGvQHiD4F4dIdRW+JryWH8eKliASGZQfinbhiyq24WCJpzJC/KOE7xjx9RqySdM0ToYSgejWBc9SZXfFqbzuXwKJIDXwZblPgUIm/+wXL/R/ufgrDDrtK2BJLU48RVTFULl00hI0qdXX3dGsgmcnKlXBb6SZEFagFheEotWuqwDXpd+7sGZTcSR/X88RRRO/RDfFr62I9fSZvqe33V51SghgLqlZCCulzsU4n5jc0GdZ75ecjbOkujl4=","translations":{"en":{"changelog":"### Fixed\n- **Data loss risk when deleting duplicates** (Fix [#180](https://github.com/eldertek/duplicatefinder/issues/180)). In the details view of a project every file had a null id and the screen removed a deleted file from the list by id, so it always removed the first row: the copy that should be kept disappeared from the screen while the file that had just been deleted stayed listed, and further clicks removed copies that were meant to stay. The files of a project now carry their id (PR [#188](https://github.com/eldertek/duplicatefinder/pull/188) by kagithd) and the screen matches files by path when an id is missing. The checkboxes of the details view also toggled the selection twice: a file unticked after \"Select All\" was still deleted by \"Delete Selected\", and a file ticked on its own was not selected. A selection no longer follows you to another duplicate either. Reproduced on Nextcloud 35.0.1 before the fix, with a regression test for each case\n- The server now refuses to delete the last remaining copy of a duplicate group, whatever the screen shows (HTTP 409, `LAST_COPY_PROTECTED`). Deleting every copy on purpose still works after the confirmation of the dialog\n- Fixed \"File not found\" when deleting a file that belongs to another user (a share, or a file inside a shared folder mounted under another name): the interface now sends the node id of the file and the server looks it up for the current user instead of reusing the path of the owner (Fix [#177](https://github.com/eldertek/duplicatefinder/issues/177))\n- Fixed deleted files and folders still being listed as duplicates that could not be deleted (Fix [#183](https://github.com/eldertek/duplicatefinder/issues/183)). The clean up job waited for an exception that is never thrown for a missing file, so these entries were never removed. It now removes the entries of files that are gone (and the duplicate group when no second file is left) and keeps those of nodes it cannot resolve, such as group folders of a missing user. Entries of files that cannot be found are also left out of the lists at once. After a whole folder was deleted the lists are correct at once and the clean up job removes its entries\n- Fixed the rows of a duplicate group multiplying when several rows already existed for one hash, which logged `MultipleObjectsReturnedException` on every scan and made the table grow with every scan (Fix [#178](https://github.com/eldertek/duplicatefinder/issues/178), PR [#179](https://github.com/eldertek/duplicatefinder/pull/179) by JPP1). The existing surplus rows are merged when the app is updated, and a group made of several rows can be removed again\n- A file that changed but kept the same size as another file is checked again instead of keeping its old duplicate group (PR [#184](https://github.com/eldertek/duplicatefinder/pull/184) by kagithd), and the previous duplicate group is refreshed after a hash change (PR [#186](https://github.com/eldertek/duplicatefinder/pull/186) by kagithd)\n\n### Changed\n- Listing duplicates by status no longer looks up the files of the groups that the status filter excludes (PR [#185](https://github.com/eldertek/duplicatefinder/pull/185) by kagithd)\n\n### Added\n- Frontend tests that render the settings page and the details view of a duplicate with jsdom (`npm run test:frontend`), thanks to the setup of PR [#187](https://github.com/eldertek/duplicatefinder/pull/187) by kagithd"}},"signatureDigest":"sha512"},{"version":"1.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/eldertek/duplicatefinder/releases/download/v1.8.2/duplicatefinder-v1.8.2.tar.gz","created":"2026-10-03T08:58:13.000633Z","licenses":["agpl"],"lastModified":"2026-10-03T08:58:13.054046Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"o/R8FSw3f3rhedl4QMVZRN5AGKNrUKT0XPw7L7oVgZq8mGS2NrrSbb6z2dcxXTelj6eaxDxrfKd3RXxBY0Gk1gQAxKU57FM3mCahIw+PbSiP37iDYAXF92Mld0eoz/x4NCcx2xspWNmZwbffQqsc3pe7L5jN6IB2rQsKgYbDJaP3C+4LR7xA6w7syEjVwqUuX2wSCBZRAMBcGC/9c0wkpVump8BbOd9tFZnnOASloCVj9ZShGPP0mp5Hxv/wJrChYz5I/gpePlg4DXWy1tuuEhsnrR0ln+dz5Yejsoj/mwKeUA62LUVifAOXpXE/opBHEX150ltSr9bfEgSsxeaGrUZ/m/E00btR4oPN5DH17yCU9bm5drtAArXB++xqzTBU9Wxj34HVMhMajVklX0hgerLwAnIZhpYC7Cs8qpyyug/vccM+XLahaodQ3C1lr7WlUmzQh5M0qTI5KNRc0+Se79StTEeLIZCrik+2KEYKG092QZyFBYyMwmeCxfK0seROHcHM1rO+3bJVC3l1O1IT4RN9/EWuoj9cDxSVx3QUIGQzHjyBw8t41JIhbYt/BdF0SBVn5ZjqCCOZ4rA+OgA41TRnjw7HJULWOoG0oDf02x4+ok2CitV9Of1N8zI388E6dhrjKexvlZ0k+gRsyjJAWcxPHI/aiUMAJhK02b6O1UI=","translations":{"en":{"changelog":"### Fixed\n- Added support for Nextcloud 35. The supported range is now Nextcloud 28 to 35, so the app can be installed from the App Store and enabled again after upgrading to Nextcloud 35 (Fix [#189](https://github.com/eldertek/duplicatefinder/issues/189)). The backend needed no change: verified on real Nextcloud 35.0.1 (PHP 8.5, PostgreSQL 18 and MariaDB 12.3) and on Nextcloud 28.0.14 (PHP 8.2, MariaDB 10.11), with a fresh install, an upgrade from Nextcloud 34 to 35 that kept the app's data, duplicate scans, the REST API and the background jobs\n- Fixed the blank admin settings page on Nextcloud 34 and 35 (Fix [#176](https://github.com/eldertek/duplicatefinder/issues/176), [#181](https://github.com/eldertek/duplicatefinder/issues/181)). Two causes: the page threw `Cannot read properties of undefined (reading 'toString')` because the text fields were rendered before the settings had been fetched, and the settings page of recent Nextcloud versions no longer provides the `#app-content` element that the app used as its mount point, so the app now mounts on an element of its own. Checked on Nextcloud 28 (old page layout), 34 and 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2VsZGVydGVrL2R1cGxpY2F0ZWZpbmRlci9tYXN0ZXIvaW1nL3ByZXZpZXcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Duplicate Finder","summary":"Save some space by finding and managing your duplicate files efficiently","description":"Find and manage duplicate files in your Nextcloud with powerful features:\n\n* 🔍 **Smart Detection** - Three ways to find duplicates:\n  * Event-based detection for new or changed files\n  * Background job scanning\n  * Manual command-line scanning\n* 📁 **Protected Folders** - Configure \"Origin Folders\" to protect specific files from accidental deletion\n* 🛡️ **Safe Management** - Files in protected folders cannot be deleted through the interface\n* 🔎 **Advanced Search** - Search and filter duplicates by file path or name\n* ⚡ **Bulk Operations** - Handle thousands of duplicates efficiently with bulk deletion tools\n* 📊 **Preview & Dry Run** - See what would be deleted before taking action\n* 💼 **Background Processing** - Automated duplicate finding jobs"},"fr":{"name":"Duplicate Finder","summary":"Économisez de l'espace en trouvant et gérant efficacement vos fichiers en double","description":"Trouvez et gérez les fichiers en double dans votre Nextcloud avec des fonctionnalités puissantes :\n\n* 🔍 **Détection Intelligente** - Trois façons de trouver les doublons :\n  * Détection basée sur les événements pour les fichiers nouveaux ou modifiés\n  * Analyse en arrière-plan\n  * Analyse manuelle en ligne de commande\n* 📁 **Dossiers Protégés** - Configurez des \"Dossiers d'Origine\" pour protéger certains fichiers de la suppression accidentelle\n* 🛡️ **Gestion Sécurisée** - Les fichiers dans les dossiers protégés ne peuvent pas être supprimés via l'interface\n* 🔎 **Recherche Avancée** - Recherchez et filtrez les doublons par chemin ou nom de fichier\n* ⚡ **Opérations en Masse** - Gérez des milliers de doublons efficacement avec des outils de suppression en masse\n* 📊 **Aperçu & Simulation** - Visualisez ce qui serait supprimé avant d'agir\n* 💼 **Traitement en Arrière-plan** - Tâches automatisées de recherche de doublons"}},"isFeatured":false,"authors":[{"name":"André Théo LAURET","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.8,"ratingNumRecent":0,"ratingNumOverall":10,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhIlMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwNzI4MTY0NzMxWhcNMzMxMTAyMTY0NzMxWjAaMRgwFgYD\nVQQDDA9kdXBsaWNhdGVmaW5kZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC5L+sOrUUK9ITmeQXvJ3sWkC4u1g3KNLhg0nNiVs+2y3YJ8uC14ooKh5Ne\nQF7MoxuuwJOniddU4sZdSymLHV+dwYjR7oNa7R0oRCRClMYyrN8jA1jMPstL8rT+\n4MjkMUi3PT1muNlezqiXnac7AGgMYMknIZYqHIdVIZxBX2r/p4CVQf3/50oREA9i\nVR6FljYIIG0cXj4PSqQQo8rZt/1LsApOurEpnl7i8rf3pTTv8yrqp6ziWTp9eDLp\nwVhnoW/g27Dkq5WRBq1UMwR1vYCTrYreZqpnUzg9tc2u7SNYvtbuSghYrOi1+l53\ng2kpWTHFczmXuADr11hpWn4c9aiN3x3BPW/wcbdtXKBiWpX0iHWNw+ilrdylJzoe\nm63i8etDKv9mnoYwFbX7ueem4ZRQIIpS1qFRDOkCVvuReou/NmGNypCxvPDs7RV3\nEOlwTK4cLLErGq+h1WGgFZiCpgoCKYlNaiseHX+tZD0oKJvfdxmvtRnXHvpPG/ax\ndIw8qPFszir08M8+GBf6oh7amtue9fkIMrmKp+bIpICAieBMrCAx8an8sIkiCyJS\n82wS7k6+U9ssonW4trcBNr7LiNXnP8iV0MjxSBzDo3WnokCSTazH51UeAeRkO+zj\nP6xIQHyBP02MTAZsuIgb4wM4/wSG735lMvO092ps0r65lK5u4QIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBYj9Rp1J85SgqKXVRTuVhfrzVbaPw5JiJNAqYUF68/Nqup\ny0Nl42V359Zut0tgt6OHJq26Bk2Vp5UOkcxk9vyUNVPE0tvPPrvT+DhRNqnKzwtE\nQCsyZwFXHip8T29zdPqxpkYzqwyzhVIzkX2NcextTruZg1uBJf5GcgtVCE3L1OP+\nJbs114cpP6SeUosveLCMjvsDi1Kw5GUdVANZqJiqwyp7qbeQB6Y39gQRN04AqwDg\ncF2BxcE5A5GukcakLS0kFMLY3SYw/PZDihNIfWaGnGP5uQYyHIqIEUYamJmfxZy1\nFN/As0t0TlCTfBLR3f5tWEjFS2VwFwzBxuQkNsXP\n-----END CERTIFICATE-----","discussion":"https://github.com/eldertek/duplicatefinder/issues"},{"id":"logcheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/issues","website":"https://nextcloud.software-by-design.de/","created":"2026-09-09T14:50:56.957877Z","lastModified":"2026-10-10T15:29:30.053351Z","releases":[{"version":"1.4.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/releases/download/v1.4.2/logcheck-1.4.2.tar.gz","created":"2026-10-10T15:29:30.046857Z","licenses":["agpl"],"lastModified":"2026-10-10T15:29:30.113138Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"C/VQVHoHSwWHQ0LECn/aX3ZvpP9zdWgH8KBrATpOSku2V+txQyUYm7T34RNA9s0XODI3JiRk3PVenTFpUjIs49fxr8KsrE/m8F1suY9mWyOZIUTU2oX5D6uaKTMaFgYrPEe8OT8wLj9AK++dJaLGIEeeQ23ew9nuV+pUHqBx9jKZmmahUoqpzta1Ud48qGA6fWe1j6sMlZ7OpMUSQO+/jeXN5bfN1htRg64AW1LXpbkHrsdfdHM1AW54yp5v8D3UBNVevhifW9lSn5hOkZ7JI5isjabREiYpy40i4sCqhtG7pZ4vpV9oc0zE/Wmyl4OVWhvRfDGdIcDvwXO1mmFEW65CsxWojlNJZqKrCVTms1hN4Bdc1FpQsSQDZ0IB6Ect9Ax/LLOyQ32RwYutV7wiZZva5LX/UvhjuvwUroDOUIxoW+DeUWuMdtKQ694ii98U/bvQVSUiFRK6cn10xpf9ksV+iYP9J2Xu3V3DFb+n7jFQqJnU/WHi2C6bjZ0mraZp+oA6oOgomcBJvnqzVany7ercA528kiwiY/sL+JkgD+GVDOJuSZk+NWCr3Z4M04eQO5E2ghYxsFn1NOUGrlo0cnahqJjtMpXHPI7czDxRjn0VXW1p3n+qHGALkKyQdgL+1g3J8kyZ9xVX9NvdfUMaGCxf5+wcODGzrd2cIvZUitI=","translations":{"en":{"changelog":"### Changed\n\n- Atlas farm v3.5.15: logcheck exit_met seal"}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/releases/download/v1.4.1/logcheck-1.4.1.tar.gz","created":"2026-10-04T19:10:49.608515Z","licenses":["agpl"],"lastModified":"2026-10-04T19:10:49.673830Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"MtRh4y9iWgi7pRuzetQ0lQ0RNYedgjP1I9IOdEVc6xZ/Ezy9ofOdkjeNOlEUS/wknOhnMlqcANioUelSzaDdUHfgoimhmfhCyZ1kBwEmopRHTwQhz4dW6Jkv+Dprc9FzvtnlDCT64W5Fu/K5OZyxJg6aSKyuoN7RbuY842so/ybvUAoFVqDy2iwABjkAjmlcYpRBMXRNd7QflRdXV5oAcBLrCLP1quJXjG2jayQXxSFL68e2O8tYHS6omg4jg2oZXtuRG5D8YrSyeEsArmL3XmOylGcnFj/XizdrbA6qpq+B342qeP0Xp0Q4IhUqMRPGHqKFKJz1IbXIMGxUWWXa4NfM7/3EFu6i+yQmEe6s++fWqoWeRuqCe44MUtLQwQRm0/AedgNUVSCyMUR5wie0elyA4WhejDLQOui62hEu0OUDb+QBtGmNMx7bmgvkLUh52F1AkGw0Jm84pn60ZKk1wzcfDGZ5k2qTQa4JCwS7ATVpyVZNHPH8BAEddGKNMS8YyJ/vA16iRFwN97KnSXMPwjzZRdFs9uXEY92EWejuKKWdaASbRbO22/ryR0IInFx+ZF0zgKPGiFBITdYKNYKSmtH6NNMd6E0gV8aMBBHpr5+0zvwAueRdCIiH0SXHS+1F038U/qVuGsL9AG2dzwdklVE6+wREv1sgCgzjynhVcOE=","translations":{"en":{"changelog":"### Fixed\n\n- Confirmation dialog now closes on Escape even when another Nextcloud app suppresses the native dialog cancel event.\n- Permission-denied page now renders with the app's styles on every path.\n- Toasts deduplicate identical messages; field-level form errors marked aria-invalid for screen readers.\n- Localization: corpus register fixes and correct per-locale plural rules.\n\n### Changed\n\n- Atlas v3.5.14 verification pass; store screenshot URLs corrected."}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/releases/download/v1.4.0/logcheck-1.4.0.tar.gz","created":"2026-09-21T17:53:09.779160Z","licenses":["agpl"],"lastModified":"2026-09-28T14:35:21.749517Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"f6NJ5uHLPwPzqqX4nKnnYuz/bQs9Uws8ktTxk7VHHUjq7gCpun1xsdPehkOaD4cT+Sra4ZaIbAOO5LtpG2e8xFx7gu31Y6USBbnR6PGOuSatF4qtxQSeR3dSYbxju4Esjigz3+5mb8HWqCINXxekaVKX87AvKsEzidt74VoqR5aoIsOVDUjk7TVQdwqCosrenqWW+RcrmiHTU9XfZEvRw9RBWVRx4WcrB9lC6pdoyyuyNlZoRkasSYwI56fN6X5S96P/Gnfo5OXJ2ag93fM3j3d9FCNVGWzyJqytbh2jRJ5w/+/n03Y7OmQzvfsDaMUd90hmlk0QHvFYD+KxkB7J4PD3VETawetACzrnJHVY01L4iP1WaJtvhSWSCUN1mFROTvCYxjlqlBJLX/SLc2X34K821f7a4Azg/+De6jBFw+sHzZoIEvy9xO9xnDppIiEzkfTY867L4L4lCIP90NwA8tB4o/O7FcZYlMJqTmNGZB9ln1vtdWm97rb3xU5CzfmI25Nrmmd46nVLAKb2KYl7xW6gtLikGKKm6zSzXv72AIP3ayLw6/pAUDtFmXhpw2Dn2mBTmaECg7GR3BrcAjG7QPisaWmFsjAMb5RB/7YbDlvecj9uu+FitIP4CbqSpJOuYkzgSaYfCCg7xMs+FjQJh1tsGJx/75SVYnUm4QMoCUc=","translations":{"en":{"changelog":"- **Nextcloud:** raise `max-version` to **35** (Hub 26 Summer) so App Store updates are offered on current stable.\n- Docs: store/README compatibility prose now **32–35**."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbG9nY2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2xvZ2NoZWNrLXNjcmVlbnNob3QtMDEucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-logcheck/refs/heads/main/screenshots/logcheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbG9nY2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2xvZ2NoZWNrLXNjcmVlbnNob3QtMDIucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-logcheck/refs/heads/main/screenshots/logcheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbG9nY2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2xvZ2NoZWNrLXNjcmVlbnNob3QtMDMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-logcheck/refs/heads/main/screenshots/logcheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtbG9nY2hlY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2xvZ2NoZWNrLXNjcmVlbnNob3QtMDQucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-logcheck/refs/heads/main/screenshots/logcheck-screenshot-04.png"}],"videos":[],"translations":{"en":{"name":"HealthCheck","summary":"Alert on new Nextcloud log errors — email, Slack, or webhook. Health dashboard for jobs, disk, HTTPS, and updates.","description":"# Know when something goes wrong — without SSH and fragile cron scripts.\n\nHealthCheck watches the Nextcloud admin log file and notifies entitled admins when new ERROR or FATAL lines appear. Configure email, Slack Incoming Webhooks, a generic HTTPS webhook, and in-app notifications. Digests, mutes, and safe defaults keep alert volume under control.\n\n**Free web app** (AGPL-3.0-or-later). Donations welcome: https://github.com/sponsors/aSoftwareByDesignRepository\n\n## Why admins install it\n\n- **View, search, and manage the log file** — read the newest part, search (literal), copy lines, browse older copies next to the live file, or start a fresh file after you fix errors (system admin)\n- **Survive logrotate** — durable byte cursor with rotate/truncate recovery\n- **Mute noise** — app id and regex mutes; HealthCheck itself is muted by default\n- **Safe by default** — aggregates only (no raw log text in alerts) unless a system admin opts in with confirmation\n- **Honest when it cannot watch** — unsupported log backends show a clear “Can’t watch” state\n\n## Clear limits\n\n- File-based logging only (`log_type = file`). Syslog / systemd / errorlog are unsupported in V1.\n- One Nextcloud server (or a cluster that shares the **same** log file). Several app servers each with their own local log are not supported.\n- Log browsing is capped (chunked read/search) and only the systemconfig logfile — never a user-chosen path.\n- Starting fresh / deleting the log requires a Nextcloud **system admin** and typed confirmation.\n- No SIEM export, ML anomaly detection, or auto-remediation.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB or PostgreSQL\n- Working background jobs (cron recommended)"},"de":{"name":"HealthCheck","summary":"Alarm bei neuen Fehlern in Nextcloud-Logs — E-Mail, Slack oder Webhook. Dashboard für Jobs, Speicher, HTTPS und Updates.","description":"# Mitbekommen, wenn etwas schiefgeht — ohne SSH und fragile Cron-Skripte.\n\nHealthCheck überwacht die Nextcloud-Admin-Logdatei und benachrichtigt berechtigte Admins bei neuen ERROR- oder FATAL-Zeilen. Konfigurieren Sie E-Mail, Slack Incoming Webhooks, einen generischen HTTPS-Webhook und In-App-Benachrichtigungen. Digests, Stummschaltungen und sichere Defaults halten die Alarmmenge im Griff.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later). Spenden willkommen: https://github.com/sponsors/aSoftwareByDesignRepository\n\n## Warum Admins es einsetzen\n\n- **Benachrichtigungen in wenigen Tipps** — E-Mail unter Benachrichtigungen einrichten (Test & einschalten); Slack und Webhook optional\n- **Protokoll ansehen, suchen, neu beginnen** — neuesten Teil lesen, suchen, kopieren oder nach Fehlerbehebung neu starten (System-Admin)\n- **Überlebt Logrotate** — dauerhafter Byte-Cursor mit Erkennung von Rotation/Kürzung\n- **Rauschen stummschalten** — App-ID und Regex; HealthCheck selbst ist standardmäßig stumm\n- **Sicher standardmäßig** — in Benachrichtigungen nur Aggregate (kein Rohtext), außer ein System-Admin bestätigt die Opt-in\n- **Ehrlich, wenn es nicht geht** — nicht unterstützte Log-Backends zeigen klar „Kann nicht überwachen“\n\n## Klare Grenzen\n\n- Nur dateibasierte Logs (`log_type = file`). Syslog / systemd / errorlog sind in V1 nicht unterstützt.\n- Ein Nextcloud-Server (oder Cluster mit **derselben** Logdatei). Mehrere App-Server mit jeweils eigener lokaler Logdatei werden nicht unterstützt.\n- Protokollansicht ist begrenzt (chunked) und nur die Systemconfig-Logdatei — nie ein vom Nutzer gewählter Pfad.\n- Neu beginnen / Löschen nur für Nextcloud-**System-Admins** mit Bestätigungswort.\n- Kein SIEM-Export, keine ML-Anomalieerkennung, keine Auto-Remediation.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-logcheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL/MariaDB oder PostgreSQL\n- Funktionierende Hintergrundjobs (Cron empfohlen)"}},"isFeatured":false,"authors":[{"name":"Alexander Mäule","mail":"info@software-by-design.de","homepage":"https://software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhQJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA5MDY1ODAxWhcNMzYxMjE1MDY1ODAxWjATMREwDwYD\nVQQDDAhsb2djaGVjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALPt\ngrRh5ell/PA6/+r2USJ0slyQqCAP1p5NY8O4SeDikuBZWt3iy8CYX8Rq+D8y3ari\nlSCJsoSEK8ST7uBeRlcrwNTlNwmNYqotAmRhd5HckaaAWy87pGg8xK5kn+D9r3m0\nul3Mlfa3H35Bcfy23YI4Flqo85bFC3I9vlC66DCQwWG32IMUnK7INwNeEboRja00\njOP0w9b1erztF29lJkBPniR/yi1Zm9Vyr+7Lb628U8LKxeKfHt4sHtM9yejYyMfH\nJ9xh3AT6Su+ODVsyBIVoDhnxDjuGI/a8nP9dwvNyLKkljc3z2onL5wT256D965ar\nTkHBUiE6Rhvwl4dkdpZlguW6jNCf48ugXkfVa9Pz1DTSV6IqBrU5zPanEOa8/9CE\nbKuM/6t53gHp3TN6M6NJMBwviLbnysMxQvRAgMHli7gscl2E8GVsI07fvtcDayNI\njAQgcmfMyxdPBYWh+FqKbEouV2vR6bR3wzSDfOOM2esP/31rXD3Lxgq+b7Pw88GG\n303rfUlbdasTGX1Jb1I/aEbH8dxGD3YkS7logxQMMbpH8+XtBmuCFj9jNbh9WO3R\nnAxmjnkEnszt98aBDnIzFVnTLVkuzK2se5kjuEnnk+G9W+n2fnYfZaoPA2DFsodj\nqf1G5+GTVNQCFZTlP+Z/LskO5eX7dg6RtNCN2FerAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAIFU/O+vwI//CoqBq0cl/hrMwEa0FPbPTvfEUlqOLwsFF11O3leih1w/\n39r6KKkLjNE2oKYCZQFuI6bOzf/n07jPhcQYRkULXyLC90T6VVEgcJoXRqFRfRsB\nHsB/DMpRmLJATGr8J3jAp8TfZgtdWnkynW0MgNS8IJpHVLVLLoHNXQDjYCFiOYTV\nEaqi5fuciBcewhQkkTvbxoAxQ2E4Mv5c1BBfne/IQENiSgOjKScMHKLv1L2C+JZW\nJvS4ZHj2vsCFbWQzRlPuXNMIaURBirj/hV8/MLctvrqlbstTGzSOTyAYPtS9Y8+U\n97AsoVz+hPDQ0lgKM5Q9T2vbOHsvb8g=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ocs_api_viewer","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/ocs_api_viewer/issues","website":"https://github.com/nextcloud/ocs_api_viewer","created":"2023-04-14T08:45:31.126184Z","lastModified":"2026-08-25T12:14:45.500576Z","releases":[{"version":"1.0.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/ocs_api_viewer/releases/download/v1.0.13/ocs_api_viewer-v1.0.13.tar.gz","created":"2026-08-25T12:14:45.473290Z","licenses":["agpl"],"lastModified":"2026-08-25T12:14:45.543626Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"qNOIh9XP+2v/YzJThDW+2WWC6H4cr5qBw9+sIWdheQWWCP5RKlMaSWkoCFGsXJduFQlS3cGddSmaIRrLRN95EJ5+9uQpjFVAZ1olKFYkRXjhtlcHTQlIuSEpi9otgTEtOE5q9Rh3hg73j7SC+pw9MkBUKgnbbLMR/BdyR9BVah8RJiXhliBfExkddwj35KLvkx/s+Fqsq1XwZehSRyJNhh/zhB+t6ywEBv8Y2aAo+pKLEQrtCgsA263NNbMLLUW/UxlB8vvKq/AguLeZFI/hc2QiDVKbKwnNITWK8ayX5W096yBY7MpLop8nG/inBU6v68bk38zJ0jFbFQN1Fl8iCqGkix3Ph/vp8PwafMjJVC5wfGLQAZXYs9HmOTxma4q01SvqRdrbbU//X+PG5YVT1kRZuwWXyVZEFrAeIz7SBzHwjXtTen4u5pP7fdKbNG7WzLlpm1aINoavJN+hWuEEr358Bj0p5m90RD/aZTZj1nszvdXR1zXsFlmjsmnzccHaqRz6WwvZaRgA2QNy/8zknUjWIITLymo+dh+WGAaJwfpJXaVP8r1T/6JHUKp1xzE0noDt5OCydvtpO7BexBCDzcb8gpxk0ePFlUDXC7HDvKgl1l3JceAnWZTr7zkywTjoyBb1odyFvhKGZ7+1VoF2vLj0H+vRv8Wt2ai2sgWqtGY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9vY3NfYXBpX3ZpZXdlci9tYWluL2RvY3Mvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OCS API Viewer","summary":"View OCS API specifications for installed apps","description":"View OCS API specifications for installed apps"}},"isFeatured":false,"authors":[{"name":"Kate Döen","mail":"kate.doeen@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhIQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNDE0MDgxNTE3WhcNMzMwNzIwMDgxNTE3WjAZMRcwFQYD\r\nVQQDDA5vY3NfYXBpX3ZpZXdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBAOfUGXY0DHsoYjoMTPKV4wgbT9JL5cGzEiuXrldo8AriiAD651jWfy8cPlPN\r\nqOKWctFGviv5JpRkg7dNNJvc+FEzU66SQCcdesDkD0hCZrhimbRXg2f2Ts8UUiG9\r\nFhd//ePfpucxuum86IN0lywa8qOIw4iXqWEdRUYT+m/33PCoNorHgYU1vyYIzLzp\r\n5iJnA3HMwDoL9ZUm4/Ptc5DPXzisS/LzaQ2EHI/66yNgrxPuNkVmkznVdUqSKbWA\r\nmQHkgUXeAC8XXWxomhRwIZL+Whq1GkGNQMuvHvGOJdQQSlgUeRWSzXMOi8OtETse\r\ny9OhgY5AZj0SLenacdNaniBApfjJkvqvkoLU4z0E4Rh1UkqyyAOInViVf/xDagFQ\r\nFxMaW7EXHJkD5GqLkHAyoxxZ/yJeyVKnr1Ha/U8ZQ9CBfKg6VoX8NVAT1BzpSSuG\r\nZ9ZXvwrAyKYnG+80spB4Cni6Vj34aYSvUrGU7HA+xPt8OyCZm9cHBmcjj27OJwfd\r\ncLsUgZlNvX6yH/F26mO2Bo+knaQGpA48VWXE2sOJZ+2j2qqTrff+OvUqUY38vdOw\r\nZ6OuRGZibqhDHb9aoazXwxUqp3NLWm2QOzUvhkzPTMuG/iev/nTd4wHAutu6SaHx\r\n5by0cR3yp3yK2k4/UKELNogTHxKVz9CZryPSljfmYrfYodWzAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBAADqUH+rhWGYSTmCgvUjcxItRjDbC5DKSRhGOyiwUurY6JV+\r\n4MoKJPF3o166dKyPiNe6VjAtryZlxued/edx9+PJB7XJkUaWPPJjGkuv161LjH+8\r\nClAJwP9aOej4u6RAbrziqutv7zV9eF770diC5xHGqjsdpG4YvagaoTNiNowaJZwi\r\n1wLPdmZfjCbDLAVWbmMRByYiq3FGVD0fdxtDnOivzOJHryLhgY+0vvS6moNcZXyZ\r\nmBGVrjnmxuZs/mXuB7BMj6Yzee05dZadr54KIZezgtct3kKKYoX/lbr7s2VPoL0u\r\nb/mZnxoGu8d2es3ksnFDcFAQOhAnqvfJQw46a+o=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"audioplayer","categories":["multimedia"],"userDocs":"https://github.com/rello/audioplayer/wiki#user-documentation","adminDocs":"https://github.com/rello/audioplayer/wiki#admin-documentation","developerDocs":"","issueTracker":"https://github.com/rello/audioplayer/issues","website":"https://rello.github.io/audioplayer","created":"2016-09-16T05:44:24.857567Z","lastModified":"2026-09-27T13:45:23.660425Z","releases":[{"version":"4.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/4.0.0/audioplayer.tar.gz","created":"2026-09-27T13:45:23.656341Z","licenses":["agpl"],"lastModified":"2026-09-27T13:45:23.714787Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"s0uk3QIOnIh8EfxoB7GpGmWurNv62Ww/xRXq4xfLIneUpemkidI8QidmeRj7xu1tWYrzjEVjmioDIQNvqPhMhYkGdHndDhg+FdhuY0tTYyJdrBGQrGkp49IZS2u/2ORx5z7UsO7RH4m1thM9i9gAL9fEVw/PKUlGhTUFQ9JuENb7j6MaYqLDUc5xHlldP761jj9/yCjdKbdKPg/FlQEZ+eft2Fi6GNfCNmsXUXdoJpc2u0N3uJT9k0d0x5HBIBUY+hfIrzUrANPWdFZrUsohHj1V1kR9sfo8i1ojJe4XZA/S6wO0GL1AfuIoQV9DvQM/3JHr3jO4OlYPZqmCkRmR81uZq+EcJlb/jIwjvqWoLT2q2jHuMkYsujWt/Ghid4Dnbmamn2R9TSwvoCqwFoALzzvWqt8a9yT7UVDAEGhvEJDlMjLp1hNIrVv1rgccx1sSHh0sZw2BsFd7yO89t2AlMo8O1TIRzb3AhlT/j/3eSN71zY9tGQB8DLgGPIKpoae2y/FrtSb3CMe7eVMAHzy3D++BLKX5dhi7j5PMYKCa4sE1/wedvICyvUJJW/7Htlu2bKEWpLc8sM5lE7AYCDc3afEb3vxrr0I39La5oJsRNRGj7U+Qa+q4fIhDj436CVpTXb6tGI/mu6e2FJFN6npJcXCZqCxBISUfbF/utSvmwKU=","translations":{"en":{"changelog":"### Changed\n- Complete interface redesign with permanent library navigation, refreshed cover and list views, streamlined playlists, and a new player and sidebar layout\n- Improved mobile experience with responsive navigation and an expandable compact player\n- Improved keyboard accessibility for playback, library navigation, favorites, and dialogs\n\n### Added\n- Guided music-folder setup and a searchable track picker for playlists\n\n### Fixed\n- Restored browsing by year and cover playback in Favorites"}},"signatureDigest":"sha512"},{"version":"3.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.9.1/audioplayer.tar.gz","created":"2026-09-26T13:08:26.437671Z","licenses":["agpl"],"lastModified":"2026-09-26T13:08:26.480657Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"OSFKzAZThOey/bQSrYwFqWsiVyCpwXtO2CnHeN7l/10MgJ+w7XiZ4ZC/CC7aj5McVuBakN47ayMQjtGKcG845hoII6SZhucI/uj1Jn7YTCZe9dHoFDMnCOPOqnVOPzVKKYCSPMkavU2mvRLQU3ueGUhuO1oCYOshC54W4HftdsAwW4FZOtoR4G0CRsXHn93QZgZImMVsIbT/jYBIwojFfn7f+DwjY3kmxWx0SPEJLgL50njOJmGs9UhdE6Qjn6A0U+HwyQjQwzUwKn6bFeqLNptwqeQ6AVprUUj2fMyEGqLoUv4LysBCItWNmrOi66BoU2Reo4XWZuli3uhDOmZplQpZl5zXgTWTzUL3kok28RCJe45LwArIQiGdVoFrzadYprFdBgZZfytVSDwc8SAMTYWwoDB9VWI/CYXBnUu5YQo2ObCJCIhj2YoqiLRFJq9sJm5eFB8oT2r16rsRkfLmr+5yQJ4asbtoT3GXYC29qSNso/avBHiDWpN5ZayrxE8QfIohTth4Apqt6G0scy5I6yIB8edyXMNsLKIKcJ66D4xyLss2xkWDCMt3pkdpTF8H/mgEEb2BGHNIxpvyTZGnn6loRPBT91vcyjceYBuXchHo8cp6TogmCXzf047Qbq3qP6T2fIXx5Cc5kUvL6hUlQOV+L+Vh8kNRodc7f6iU29U=","translations":{"en":{"changelog":"### Fixed\n- restore console command compatibility with Nextcloud 35 #662 #663\n- replace the removed global Underscore dependency to restore initialization, sidebar tabs, and release highlights on Nextcloud 35\n- restore the mobile navigation menu toggle and edge swipe on Nextcloud 34 #660\n- backported getID3's shell_exec() replacement for the deprecated backtick operator"}},"signatureDigest":"sha512"},{"version":"3.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.9.0/audioplayer.tar.gz","created":"2026-06-12T11:43:03.482934Z","licenses":["agpl"],"lastModified":"2026-06-12T11:43:03.536513Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"AXy82uc6BT/ixT8ip93AdMNtOAWn0XcCZNWAmcWaCTpzN3AUZg7Iv8qfkNJXerf96Jf+kzUFs+u9/NqT5NVZuPu+mnHlFy4vNc5ovjGIVxza7HHo63GO+BIS0GmpUa5KBS6S8IANNHv+8j10/StzB/1S9GKwis6/TaboZz/Q8S/BYPABZA6Ll449aSUG23dWcj2xBl/mwvBx2I5bbfu00CmbqPaLV/s02VjuQfykyo67eIb+6KJ7g0+AkiKEa6OjNfvo0XUlJjM1ITJCGtIEjzUCQHclI+1P9Li2K4ON2tal2C7nGgHvxoyn7nYAMchRVdcs54C2igwc2MIPdAyJT8i64vnDOVaMdMNvnzaRJda/NG4qNIB+4MnNocwgyeIj9LSkS3JuM+u6gGVT7/eExE9Z61R95JcCEBjz8YT6/RwC2Ut2Ht2qnzHRtgKiHx/n8dOWJg6MP/dNYC9v3BNnd+vD6azvtbh+XfSk8xK2hsd3EIjRNtWbW5HmewRWk8rljC7MMZBKQD+VvLutCMvQN12gG54Cqf/2b8YQDNKSViA/qLgLf9QRqAMl28dr010gjV/ZmSYZsev9Hjsct+V+VgqtRKNdg2Q74nOg4U3IhkkVSVPWU70cIoieQ/2qemyMwkwCJB9F5cRNZftm6vA9Ptk/Ozzna3hua0kCuzmQ2jw=","translations":{"en":{"changelog":"### Changed\n- refined the album view song container and arrow styling\n- refreshed modal dialog styling and lifecycle handling\n\n### Fixed\n- NC34 compatibility\n- NC31/NC33 compatibility for cover responses, audio streaming, and scanner prepared statement reads\n- various fixes"}},"signatureDigest":"sha512"},{"version":"3.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.8.0/audioplayer-3.8.0.tar.gz","created":"2026-03-18T10:20:03.407648Z","licenses":["agpl"],"lastModified":"2026-03-18T10:20:03.453356Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"CNHxPg/75ZKvPk+rCpiRJPiSbVvWZ+xIIAwwu40zQZDlijABW5t7OH/8uKWVjzxNbPoHi/1SJP+iWVjyT+V0av8M0GZ/F5+OaN8EPPE/qnzAOJfzT6rFIBrVBViZluVGKjXvhEXtkuGS5giPlR2Nmc1KBULSYe3Fna+iAQdx6ON4SgQoQD1cyNm7srYlsh65WG7rsJTKJMZp7RGYb1XysqxeuG81+B75d5ggyT/OCI8DOpXxU/S2M2D91gFPhEHQ2GZgKIZ5oly5ieqEw4jP21X7PWGmDmLpx+kDQvNtBlVgGSsO8bxiGQIXsq4J9+oSrPscRuz4wDeFQtfyoeKTIjO65nhFgDgjcfEFYQrG4chtGeHJQckj7GEx/2KfR+YM/45ry8tkX46Q9b4AOPP8c8SeM86wpzkK0yXP/gHR7EG/HfhBBzsXP5lHwzstBOYnLt/YFkFE2bMTI5H79GRaJXpkuFQZG81HP8FJP9Pc7abhFYapL0U2lb6zX6JONJjYwxlp2IYzAJC66R+br+z8yOqNZpIOL46W7nKmVbnBDsxZSwrRdu+fqjRfOu8ubJxzFN4gfVS11smUwvXb1DNPMS6sMyfueqtumyGg91bYawJ45zfqLsfbXgdx6IkBWXOz4bGi2waVub2FeuSZtBiXORlEtesaTJNX+FGW0wh45pI=","translations":{"en":{"changelog":"### Fixed \n- NC33: replaced deprecated QueryBuilder `execute()` calls with `executeQuery()`/`executeStatement()\n- NC33: replaced deprecated controller statement `fetchAll()` calls with `fetchAllAssociative()`"}},"signatureDigest":"sha512"},{"version":"3.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.7.0/audioplayer-3.7.0.tar.gz","created":"2025-11-24T13:21:24.401648Z","licenses":["agpl"],"lastModified":"2025-11-24T13:21:24.479298Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=99","signature":"rdBgEhQr+TwxVTLB66Od7hCzfhr8Jd2+b4G9/NevaNsrbPhukfZuxso+6/mFPr/vSgAvaax3lP9BKQQ0jnAlIEtopl4B97/gd5iIvpuOOORBI+mHW1f5U3geTcIdgi3iy+Z3eQzscGWdthYsupR1FZU4+QtOWhj6G5ufustywzABfO/3v6w45lzgNzJhFZEtj18FmeL7x/AOROm4An3V5JdgM9XIeqlVwYLi9PMEWGBEwxo38APZgRJA8D+qo3JThxOHCcQDXdeyqQA1qwSeoO4qlbcJsl9u+xYtfvcnB9/XcfU2kZYtP4Z4I1P4XBYQbsgww8PZsLqKtUizBsOMeC38uevzkuXY5eb0/UOTVY6oma2xFI1rM+OMBjeEoQAKxu1h9c8tsujngInpKC8VhORYKD/7/YpdNYlR48aD0TEcaORI2hKJXkm0HXcPv6lEnb5S56XhQ7PkVI7mNyXXnyRoAwl2NU2ML/uCJ/H5qyGQJiOTfX1JCSzdvJDCZF50oDFuLUTZTFPhhp2KkJ40cLYO2UeW8CuqobaariHkmgADRDy1c76eTdcUWexFo7hsqw6AQyfFq3Ibkb3mFXqXMHTUrvX9NPTcABB1yPNy8xOxVtBTGxaptUAu+ldE5CBQ4B5SVhOvBXKPy/dG0X8h+GVvP8y2LLhfULqH0SxlEHE=","translations":{"en":{"changelog":"### Changed\n- reduced playlist columns for streams\n- migrated controller annotations to PHP attributes\n\n### Fixed\n- Could not resolve OCA\\audioplayer\\DB\\DbMapper #651"}},"signatureDigest":"sha512"},{"version":"3.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.6.1/audioplayer-3.6.1.tar.gz","created":"2025-10-24T04:37:26.932127Z","licenses":["agpl"],"lastModified":"2025-10-24T04:37:27.006049Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"W8p5E769YHfPXwgIDKl2CTk+11JQMB8f5r9WIRKYWBn5QImzholygfRM+mdabuS/sBZk0RH12H4G5azHm7Um0alVdnpPPcBkywMydLw7VJtjAHJjyTdeUnnImDPc/jm2pWbyXOjPhFJFT7J3GZvGmMXTmqmXiL4IQGZhBnQ2AuR7OBkbvF75xehKISwcpJfHF9r6oz4scU46MVH3fw0MmoFTWKbjzjus8Oi5Q79IqW8hPGQHm1bmA2rh8Ec6yN3H1AfkltiywECasbmHzA+S/4clxSkCDnjMcs/jxkKFlsFgAVj5TFYhCWSThEQqcb0KTwesPWnUV6HHhgjn0W/Ypo4KxUTYWuIXJEosMWkAOypZWtikCk9KcI/ed9TyOE2VUuOUURp0idUXeUj57Wd+tqjDayyEO80E12EnMM9F1nocGFj28WqVxoA3NdXHe3rkbWsw2n54y4/Bdf42UjLf5p9OCGXypBeTTsRFgSlKG8lcPj9MkXc3gbgtfYIyYYWtwcYaFRisBJ9x7SQWIPtkp2kWFwicFysrwlX4XUWlf7AvIC1IuhSBfWfPbCfV4/iOd5BEVsITGjr8trriVtPwxYYswaBBTIOPe/b1YUCdLaVyyz6jbhi5LcqnWlhssf72JUVt2q3cGHXyetcVYg2gxbM3fKtaUFogguXdB4hI9nE=","translations":{"en":{"changelog":"### Changed\n- switched the scan dialog cache-backed polling progress updates\n\n### Fixed\n- prevent null user context from breaking cover retrieval"}},"signatureDigest":"sha512"},{"version":"3.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.6.0/audioplayer-3.6.0.tar.gz","created":"2025-10-22T13:18:14.709251Z","licenses":["agpl"],"lastModified":"2025-10-22T13:18:14.760857Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"sTKzO7lRdHbxhWajEPs95SyLY7h3VrHxsglAGyOklUleudGrfhbECM9F+aoziQglqhUip+lVRDTMlS41Qoz+7KCbt+K02Of/arIqzpyXR6tIZn9NcTP68tqzRt+gZWzDOXu7X/cF/5LJe0Qo8ovQyTvqZTa5Ma0RJhByO4u5G+oEOnHXMdzwyy5/uBFscCfZ/xIhrcNmg3ne+fqxKwEpgi7O1hLVf43MDgFRbhTPHOKTXtP0cOIp5ARTTKebVFY9OYjU2Il21VeCAMqgrdaNdWx9TYq8pI2RppWwrX0W7wB14Fkq2yn8g2gz3PKpDRIf+KRtVxRo6COBGJ6BhkaWciHE7BXleIY/DS8GjOdJIANntLv084sYNOpLBdXPDcCE2NXeLTFMlsnFvqHE9exwhiqaF8BTiHizazHPyMhuVTS1v4I/9VnDoDd9R1abahGZzxfW2zf48IhDG4GLrT1mjiO4S+DBy/8YV1yevrOj2Ssyyqd7mUzHwWV1JHZoKXCQsy6zNNgnQIDGMwB8jRCf/beceEROx3WL6BeIJZWVwU+M2+nrxS0XSoswDZRpesnAUDGeE2xVYFxKToNXCCHN+Qnr8KQfQV1NJdjNGuuxi7UEyOriEbncfz0ZgVlW12B6MlLlqa8JEIMbPtKj7XbTKFAxu99PB0IvMP7ds5zQ0gQ=","translations":{"en":{"changelog":"### Changed\n- replaced the Fontello icon font with bundled SVG controls and removed the unused font assets\n- optimized album art search to reduce filesystem access\n\n### Fixed\n- next track was not preloaded for gapless playback\n- removed obsolete admin settings\n- Scan folder selection #638\n- Fix search SQL syntax error with malformed column escaping #637\n- Dashboard widget not working #639\n- compatibility occ commands\n- compatibility event listeners"}},"signatureDigest":"sha512"},{"version":"3.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.5.1/audioplayer-3.5.1.tar.gz","created":"2025-07-18T05:51:29.940839Z","licenses":["agpl"],"lastModified":"2025-07-18T05:51:29.989464Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"A381VzOHZj68BZkGd+W+A+9z90tljd1CKLAc8+0MNiXLApaom0tsVYVKiWAf8aYdaJnian6RM7lk4hqfogHK798XO+cu6MC0M0lHffxENFh7PcpySGMf33sSvf8D56dE3uw3h4zwmDXdSac6emIRNWATb9/MIfFZJl4qgCNfT684dOTO9xv30oyoELe1tgz0fiFsjXnXUgRvjKuB5DfT8mFLgqM5HLQKhyG/U7xNesLEysnexw3vHo+VOkNHV5QbMtdhe/56Ew7tKtoDeN7/HzwJEKhHNEhF9tQ324unFanqTci1AoKUnG6i326hZAKZCg/WBrGgm+FE6FMbt5n1m9GS1AqMfaOsrPzT98MLnEk7CV2xMwyQ6/Qx1XwgXmc8+yI/JcFu4g6zx9Zadg+nMkbEzvChd1YBNFCoav1YsmaI97BI9eQjxQpMcAA6sLyq95DMRZe8eAIG0aanNnfzfNhYgACFuKPbfmYMfvBHCF60jgG3ixt38wdFE9rTwI77Uai+iBrButK0xLHBWmrWlML/hSHNjCyTWdaxlotADghEra05UaQ4IghzAMsJMh1wY9amou+YvgMA1zvMptQfSrKl6NhneeWT6pe81hORejmiGzBgwm8ZvHcLSxYqbRBi+wHU2jap/kbM+UNR9ANHo6UKdc7SG6AzirlRoK4ngZ0=","translations":{"en":{"changelog":"### Fixed\n- [BUG] TypeError when running occ without user context #633"}},"signatureDigest":"sha512"},{"version":"3.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.5.0/audioplayer-3.5.0.tar.gz","created":"2025-07-17T20:20:34.513333Z","licenses":["agpl"],"lastModified":"2025-07-17T20:20:34.581000Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"scVikHESwyqC7zoVpPoS5Lx9yRuJFOn436bwpw0gYf8XxuJtWl+0OknNpIUq7kHRDnNI+teM3f0uv3UC27d9rgscaur0QN/d0mJ49nn0yS1oBrZISAO1t98hV0C0WrD2NnaoG2KR9rwLDehq42y5b+JChWExGgZz/a5hHcF/3tAHOoloFQi+3JdeVyxBoz0kSR8ASjRzlNuCUzo3+ukh3Gv68/OnVpoNhHSzEx00xN8/Yaqis7+fuvriJC9/CSJbmvAxKmS3khBWFm6rNm0ZLjzdhedATNpazFBMy+rbY0tq0OMk/p3Sjpf1VFGv6AiQ/EhgJgH6ErW05cjs1QqlHrzR7avTDcAW1jQoCpaq2YKC6/DZ41/YNNXxTa0cZTO5oxyGhKNhAAtveSEAYg/qYaO8qIy4GD6PCwHXWZDXwhG3SWof2lEpGroFkjiSmfPP79lUrZwlmH1wyoCbLLdj1Oub+TPHDm5pO2dgbZ3nN6tv25T1tcn4f1HPDSQ+XBcF4jEa5DYSuhD0XAXH4A29H+7F0SPNiodVU7KIZj/QRwwSDPV7TWRKy2d2GMbHwlP/xAVprdKIPdDw5zzvOdjH1zquezAN0ejWOD8nAg7mcTsk50RgnCbdc7eZFxCsocPrDt8OPWlMWz7fXa52CSNsEpowYz2NtzIXSr5B7RHBoJY=","translations":{"en":{"changelog":"### Added\n- gapless playback\n- ID3 tags: comments\n- playback speed toggle\n- waveform progress bar\n\n### Changed\n- redesigned play bar\n- refactored backend into controller/service/mapper\n- migrated backend to use QueryBuilder\n- improve cover image response performance and stability\n- replaced jQuery usage with vanilla JS\n- refactor cover retrieval logic\n- migrated remaining ajax calls to fetch with shared headers\n- new modal dialogs\n\n### Fixed\n- PHP 8.4 compatibility for nullable parameters\n- avoid player pause/resume when space is pressed inside modal dialogs\n- [BUG] A song with title \"0\" cause scanner stopped to scan more music #601\n- fixed controls freezing when previous is clicked on the first track\n- reset album count between occ user scans\n- cover view pushes full rows down when the song list is open\n- [BUG] Albums with an odd number of tracks have weird behavior #594\n- catch getID3 TypeError during library scan"}},"signatureDigest":"sha512"},{"version":"3.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.4.1/audioplayer-3.4.1.tar.gz","created":"2023-12-11T21:24:14.795310Z","licenses":["agpl"],"lastModified":"2023-12-11T21:24:15.123121Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"THo/i4vaQD9FiT0i7AluB3YQFJAtevxxLTNa1GDd0PhAL4/Z0Xin0urktFM/Y5+xjW90hT5mP9MFubGkirYvEKWfgBtH2h8neOIq6ajRO2cvhC7OnIzdlSjHIc2tORpgwe4dJ9cpV8QuaonK1nbOCSW8B/6Y7aA4l9roPUMV3ggIbNW7s9eHNx/EeTXD/jn249mWziAqgafWr18+nQpskNIyh9+5Jy+JPGQumsPcNCpIYOSJ14pKGtChexf9nfvLUFvsTNCWqoojYPLthn5Ataal0v1mSasVqO/D7tHY2EjB2grFVpSpgIFdUHLsuyAHhqpfMKltPh+D9+0I9tWm77fo9du16O+M5PncGRMd4i+TTU7PWwRGwEg7+LSs3GHY+RLpnfznpantJoS5cemhLk9F0L+j6vSsHVRV4PRwU4zLnqMtUDSdyvFwIyJ7Jo2cbT+ufqcpEzTbEQBiaepwwkcQ9GHbaud9YUi0wDWiwumBgV0YSd5hmZFSTVKbW9YpLek9XQOzGkRrdnpumHRZeP3HFmeq0FVyAo3XeU/B+23o/xBXDIMb1dAM1JaLIbmc+egwyhbeKGfk6QAfpisZrOSaI9w06rk49HR3BmfayaEh0kZjIrUKHjirFgph46IihpmDI/PHkhjSyQNz46wj//av7c+gdjmM9SF5gNS10fk=","translations":{"en":{"changelog":"### Fixed\n- IEventSourceFactory NC28 compatibility"}},"signatureDigest":"sha512"},{"version":"3.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=21.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/audioplayer/releases/download/3.4.0/audioplayer-3.4.0.tar.gz","created":"2023-06-17T21:51:31.593288Z","licenses":["agpl"],"lastModified":"2023-06-17T21:51:31.778466Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=21 <=99","signature":"hXImpTMo5wRlcWr0xDgIweEGzT4rTJEfjibdiAm91ld3mR6obrOanxXRsTUB2GOYoSRW8Mcql4s1Ci8i3/ccn1ukyJairzuCsYQQqziJrWzbc3qpPW+X+leZOgTWBevd490xfsujK4T0VmY51g96GRMY/oov2QvZdwFrcGZ3w65oHeT4RRD7BeOROvtfmEMre+W77xf8iq8MTJU+ZZYZTrf0JabrLOJ3KuEd8GIjNnjCOG0ItLV18ptept0UnRN3WftBzWrDRqtHl7d1NFNxjsXGU5h9uP5i6IbMMX7uErYptdFry+tuj3pCUZluWCAWaoOVnTNBzxdo6pc5zqKa4mlYjByDvpzGihyM/VpP7hqVAahp0kB3smsWtJ59fjUCWpm1kGT2fa+uz/74UEtVZp04eBVjy3riqjaPXD6VBjI+N2Dt/A7XGzwgzdSjZ0jfPbs3vmndxTp9bXADk9V5MJyDjijtUpLX6xU6nPfv61qY3Ugl9hPtChdd6xCWzdKT+qPiE+T3iRy2OIliIHdCFcK3ZrQ6aGYK1v/m/ldVtpwiNhSCViKA8/OHQNVW0sAJGzIKjujHAMSRV6ZWMqqY53DaAznWobQWXtulnV+TYaNq+UHhpNthtV+bkV8WYiV8lJe8U8ZMn3T/xbf+cPql4DqilJ/US5pKgn2113WMva8=","translations":{"en":{"changelog":"### Added\n- NC27\n\n### Fixed\n- Remove deprecated createEventSource #586 @[kesselb](https://github.com/kesselb)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JlbGxvL2F1ZGlvcGxheWVyL21hc3Rlci9zY3JlZW5zaG90cy9hdWRpb3BsYXllcl9sb2dvLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3JlbGxvL2F1ZGlvcGxheWVyL21hc3Rlci9zY3JlZW5zaG90cy9hdWRpb3BsYXllcl9zY3JlZW4ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Audio Player","summary":"play / stream / organize","description":"A music player supporting FLAC, MP3, MP4, AIF, and streaming formats, featuring playlist capabilities and SONOS integration.\n\n- Gapless play\n- Waveform visualization\n- Cover or list view by categories\n- Optimized for large audio collections\n- Smart lists and playlists\n- Stream URLs\n- Favorites, search, and collaborative tag integration\n- Specify media folder with exclude option\n- Hardware media keys and Chrome/Android/macOS integration\n- [SONOS player](https://github.com/rello/audioplayer_sonos) via add-on\n- Genre classification using the Recognize app with machine learning\n\nSee [README](https://github.com/rello/audioplayer/blob/master/README.md) file for all supported MIME types and additional information."}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.825,"ratingNumRecent":0,"ratingNumOverall":20,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBjCCAu4CAhAIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwOTE1MjExMjA4WhcNMjYxMjIyMjExMjA4WjAWMRQwEgYD\r\nVQQDDAthdWRpb3BsYXllcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\r\nALyC+iLscLs62NeNmUXEBmg+xMuUtDmZKr+xzJWtl6SSNRz+8K1JygvUIXFJ3RIL\r\nCYA3xyq8/wyZH1gNrLKyz5eTeYawG+eT3ges/FT6MWGUbZoRrBrikVcLC94QzxTH\r\nxOl8Dn+SCV/2bhcvPTQdhK+dqtvGilOtjHa40iMrk9gSdlKVys5CK/xdlEp8uiMa\r\nkz1WENn8MVCCJV58bAUbaCupDWXR9CCoSsw8XinNsCenZ2B2XlnmbM44280w0ojs\r\n72rfQRgj3yDG+ZUUyUOuxIuodu8liXYciLf0ph6t/f/qoSmctbBdsR5Fl1Upj1Ac\r\nqeHb5Yf/B3Vi6Mn3XfDx0H2EHk1v9Dhzxay+v9BHUzyIX2iH/q+7TE0/Jzo5AwBW\r\nvFKWXvG7wXaALcHYZf5v/M93IE0iCHsv2EsZKQPBnzXVGmp4DwFSP4po1B7hcog1\r\ngAMaellAzzvUAizgCovN6Qct3qDEANYniPlvtnlcaQGonajW4N019kFQRHLIzPFR\r\njab5iUMMwSnT8FhZO2ZOWuWhJven+gXjxC8mfMVgBfZnAVgydNfx9rN+KzTc88ke\r\nobUdZ0OOeBzA7pIxGEFg9V6KTEEWZ+qH048vxXz4HI9B1I+2wQLBrZl8CvweEZ5U\r\n5ID8XrrE/UaNZ1CvLKtCgB24gj/m1Elkh7wA3gEcEo2JAgMBAAEwDQYJKoZIhvcN\r\nAQELBQADggEBACtgUp+FCmjWIkQUuWSdzKWdO+IH4v9wBIrF9mo0OLIakFyDYyM5\r\nLlkYZXbplGXd4cfn3ruIqJNzlIb4xa5CU0bM4TMbD4oOSlLMKM/EamKPHI3bzr++\r\nzi7mQDFxmAE6FWSMBgKKUb4tqLc5oBap8e12tPEZl/UR6d9iUB2ltvrm3T3vrjjl\r\n2Worm0eYBNqnagXmX5+wS11AQqeJemGqRy5e1yXRlTgB0IJhH0dCsFNwifEigutp\r\nFNvGFVBn4r5qCiChEoq+rCXHRjPi/eCfbW21XeLFDiLxapcZyc85JIcA7znUYoFe\r\nP7Y/ekMscwWhLbF91OaQlcWpRtEMyde/DaI=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/c/apps/audioplayer"},{"id":"nextsnapmail","categories":["integration","office","search","social"],"userDocs":"https://github.com/oe79/NextSnapMail/blob/master/README.md","adminDocs":"https://github.com/oe79/NextSnapMail/blob/master/README.md","developerDocs":"https://github.com/oe79/NextSnapMail","issueTracker":"https://github.com/oe79/NextSnapMail/issues","website":"https://github.com/oe79/NextSnapMail","created":"2026-07-01T13:35:26.719069Z","lastModified":"2026-10-17T11:37:46.185507Z","releases":[{"version":"0.1.14","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=20.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/oe79/NextSnapMail/releases/download/v0.1.14/nextsnapmail-0.1.14-nextcloud.tar.gz","created":"2026-10-17T11:37:46.168253Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-10-17T11:37:46.225666Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=20 <=35","signature":"nLzewNulV2HNuNtvv2aI1A8+7xmGEtKcQ5UB9pnlDO4XnYBzgaSnKV65iYs58G1oZZzO+fD2RJ9WTFc5asaQCaVG9tcWg7gAbNzfpN9iObIibnMTJAgDSPlSa7ZS0ZaDtNbfF+SKWp3UTG7jxV87Qions1I7GtoONUK6EZTns+Kn85qvvHkZE4wg8GnpCmhilFpRE13fdp9MBhazdGdhAq8R9eNc10vRNO342JIn8W3R3yj68xrVboneg8Ztli5n5qnNM5blI8HYBMZKJz11GzqqdsgBf7mWPNGSGpX2m7FdjHIaxArU+LyJp3UsVBYEaA4JRNzQMrBnuvk2wHm1XfTymSkxe29zGTj70d8NlOn4G44iTVnlI8BF1pZLyIwqvsDtrYvgJhK4/1fzDbVzZc3V1mvpL70wLNzOeprqsAdXHyATpUiPWwga4r2PI3Yw5BkpadVtYevx5c2O/hPWJOJxztAMUktvf0J3WFfBVPu1aCSM+NlS4/QTOsuEh2NJE43N2T7/8YNBU1r15fwx1MKFQDV7civ0PKjWrcJZNcDcdMl5h5Zwtm/xuRpH2359ia0rH4pCkjCTuF2c31pw4AAd/2CDfdYrpLDQA9Mx2MTdrM0/QZWd6Z+lF/rLTD13dos5wMFvWluBuI48Yci9gIGHXJXNSZh8axu/iXBwW6A=","translations":{"en":{"changelog":"### Added\n\n- Begin the native Nextcloud administration integration: the complete existing\n  domain and webmail configuration is available directly from the NextSnapMail\n  administration section without a second administrator login.\n- Add a dedicated Nextcloud-admin-only endpoint for every embedded\n  administration request.\n- Add a page-based administration navigation for domains and Google OAuth,\n  webmail settings, extensions, Nextcloud integration, and data migration.\n\n### Changed\n\n- Hide the redundant embedded SnappyMail administration sidebar and logout\n  controls in favor of the NextSnapMail navigation.\n- Move Google OAuth settings next to the mail-domain configuration and place\n  import and reset operations on their own administration page.\n- Present all former webmail administration subsections in the main\n  NextSnapMail navigation and use SnappyMail's actual `settings/*` routes so\n  existing domains and domain creation remain available.\n- Restyle embedded administration forms, tables, dialogs, controls and domain\n  actions to match the Nextcloud interface more closely.\n- Treat the bundled Nextcloud integration as an internal system module: load it\n  independently of optional plugin support and hide it from the extension list.\n- Move the configurable contact-suggestion and calendar options of that system\n  module into the regular Nextcloud integration settings.\n- Replace legacy extension action glyphs with Material Design icons and hide\n  activation controls for extensions that are not installed.\n- Reorder the integrated administration navigation and consistently use\n  Nextcloud-style Material icons and NextSnapMail branding throughout it.\n- Show mail-domain management before the Google OAuth configuration and remove\n  the obsolete iframe-mode choice from the visible Nextcloud administration.\n- Keep `rainloop.user` and `nextsnapmail.user` independently selectable and\n  editable during normal filter changes. Merge the legacy filters and remove\n  `rainloop.user` only after the user explicitly starts a successful migration.\n\n### Fixed\n\n- Use the driver-specific `Pdo\\Mysql` SSL constants on current PHP versions\n  while retaining compatibility fallbacks for older PHP releases, preventing\n  PHP 8.5 deprecation warnings from the database and password-plugin PDO\n  connections (issue #56).\n- Preserve visible message content wrapped in leaked MJML `mj-raw` elements\n  while continuing to sanitize the contained HTML normally (issue #55).\n- Prevent additional mail accounts from replacing the shared CardDAV URL and\n  credentials. CardDAV settings are read-only while an additional account is\n  active and server-side requests attempting to change them are rejected.\n- Preserve Sieve model class names in the minified JavaScript bundle so server\n  scripts and filters are recognized outside debug mode (issue #54).\n- Show a clear IMAP, SMTP and optional Sieve result after testing a domain\n  configuration.\n- Close every administration dialog reliably when a Nextcloud theme suppresses\n  SnappyMail's original closing transition.\n- Close the domain-test credentials dialog directly after testing or\n  cancelling instead of depending on a browser animation event.\n- Make the confirmation action in the domain connection-test credentials\n  dialog close reliably while retaining form submission with the Enter key.\n- Save newly created filters reliably when the Done button is used.\n\n### Security\n\n- Require an active Nextcloud administrator session for the integrated admin\n  page and all of its follow-up API requests while retaining SnappyMail's own\n  request token validation.\n- Protect the legacy administration URL and its service requests with the same\n  Nextcloud administrator check, making the separate SnappyMail administrator\n  password unnecessary for this Nextcloud-only app.\n- Reject attempts to disable, delete or replace the mandatory Nextcloud system\n  module through package-management endpoints."}},"signatureDigest":"sha512"},{"version":"0.1.13","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=20.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/oe79/NextSnapMail/releases/download/v0.1.13/nextsnapmail-0.1.13-nextcloud.tar.gz","created":"2026-10-07T18:09:55.931878Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-10-07T18:09:55.992081Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=20 <=35","signature":"Ukmu80mM1bK7eeGf4oAFmmN//ZtzTIs3VDnjhBvhNCsNh68EOD+WkD7SJ6rtMihFU3qRHnHFQu61xgqF8WtkWs7GIHfXCin/nbh+5EC5WnHQYeudUX+T3IL+IdF7EQEJOsNv5pZ9UyDAZIYoWMSYY+UusqSiFd7Ikq/tzGUDaRkGwzUybbrffqV1cN5STzQr1Iy/SAqaJlo0yMkiVLJ1LjWl2xxfV5f6CKh+S5PgyimcTMF8YBP0NXBeSJAhN8MF92h02ywWnuMTaQx6daseb4SGI2iLfWjLDXROOwCiSx5OyUVm3zW/Dukme7WYc6HfTO6YbCt3eHz7wWdol6RGDTvW3fYSvzOXIqfIJTRSRrBVWvCWIujtz8+jz/Q4a+YWGdhbhMCryy7cGu3k8NPAK4KQK6I/h5kKkr1ZvDgQ3Qd8XsR3qpm+HYT7AlQ9xAnxtghRR2YES8+1XPyovSf+eVVu2Eumk1LKZRwhbj/7Bfv9BeBEDs82CYreXbAvgmiDcwJQsNKfxG4kfUmMqcKrjtcnUh6wnQuOhH6zIdeer6T887/XSFhhZodcgB2yuEymOh74fmRR0k4NT59rAxf2Q1mQi7+XbTU+5nf8FreBBazhG8UOv2QwqFsNfVBcclt2tAzy8X4A16GJf1QXCMNzYYZw6wgSNQOS+/F0tUB4lOo=","translations":{"en":{"changelog":"### Added\n\n- Add selectable search scopes below the regular search field and in Advanced\n  Search: the current folder, every folder in the account, or the current\n  folder including all subfolders.\n- Add a dedicated multilingual out-of-office settings page that creates\n  date-limited Sieve vacation responses per account identity, automatically\n  uses the identity name and address, reports missing server capabilities and\n  offers full-period, daily, weekly or custom per-sender reply intervals.\n\n### Changed\n\n- Present the unread-folder control as a clearly labeled filter button in the\n  folder sidebar so it is no longer mistaken for a parent folder.\n- Use `nextsnapmail.user` for newly managed Sieve filters while retaining and\n  safely migrating existing `rainloop.user` filters without deleting them."}},"signatureDigest":"sha512"},{"version":"0.1.12","phpExtensions":[{"id":"mbstring","versionSpec":"*","rawVersionSpec":"*"},{"id":"zlib","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=20.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/oe79/NextSnapMail/releases/download/v0.1.12/nextsnapmail-0.1.12-nextcloud.tar.gz","created":"2026-09-28T12:22:38.768165Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-09-28T12:22:38.817395Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=20 <=35","signature":"TAF+8Xw/coRcWE1k2hrvdOPhkBtBNY4ahx7lz5CuRmthPI9BKvoElTpvzbWLmhGFc3GJAU8QG6aSzgPLnlsXZauFpZmUT6LlBB2zkhcaNsn1VHDyeOpMvem0KIQkDSqe1pf477iPyy6ojKY7MSEsjOnoES/Aj87rkERauiXqN4oiNRuDHuox5AxVUbDXdPzhunNm1sXOdO28vEClhYtHNT44fRkoL0D8lFvqfeKRijUPi7I8PJj7uWJ4tYXDqazItrfZXAanK6iAPhefwJ5KKIq8H8wXheFfOtLfxZGW8dmARFX/3eKHmkL+lVpBVINGZ3X2qJSu27SGarZ7K0xUO20TCmfcaKdsTxbiaVxql8a3ZdzPx94FOku5VInYPRPr0P+UcIdyowN9S8Mbks6J6Ln4LgQddBUG+m35h1jtY607Dd0z+6P28JW/igJibJDcXJBCcjEP6dIR9nKFdfT9RTYMor1z4uYJ4yaJyaPxeyLpBkQ1Khi1D+cuq+F0uHWiNWXnfutLCb3W5B1sDVLka/gQm60dLI4Ye7DNSn7X/ZcjSWMx4KU61rPz+UfVoVt8FoTrw6GoKbZRlKNoIMRPEBKx4Uvg/NB9SpdLu+NEu/HHzXN7HChxKUaNyN+dlIAl+Xm9BjZ4nTldluKtLaDJGYJgFWiE+SX0o4g3+L5ghD4=","translations":{"en":{"changelog":"### Changed\n\n- Use NextSnapMail-specific browser cookie names to avoid session collisions\n  with SnappyMail or related forks running on the same Nextcloud domain.\n- Treat a valid empty plugin repository as reachable instead of showing a\n  repository access warning.\n- Clear the new NextSnapMail cookie names during reset.\n- Avoid PHP 8.5 `curl_close()` deprecation warnings in bundled legacy plugin\n  clients.\n- Add administrator-controlled messages-per-page defaults, maximum values and\n  an enforced mode that locks the user setting when required.\n\n### Fixed\n\n- Persist validated integer settings instead of the originally submitted value,\n  fixing messages-per-page values above the old UI limit being accepted but not\n  applied consistently.\n\n### Security\n\n- Mark stored password parameters as sensitive so they are masked in exception\n  traces on supported PHP versions.\n- Guard Nextcloud login, logout and impersonation event handlers so a\n  NextSnapMail session cleanup/preparation problem cannot block the surrounding\n  Nextcloud action."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"NextSnapMail","summary":"A SnappyMail fork focused on integration with Nextcloud","description":"**A SnappyMail fork focused on integration with Nextcloud.**\n\nNextSnapMail is an independent community fork of SnappyMail for the Nextcloud\nuse case. It is not affiliated with, endorsed by, or sponsored by Nextcloud GmbH.\n\nNextSnapMail is under active development and provided as-is. Please test it\ncarefully before using it in production. Installation and use are at your own\nrisk.\n\n**Lightweight & fast email client.**\n\n- **Dark mode**\n- **Responsive design**\n- **Full Sieve filtering support**\n- **Date-limited out-of-office messages per account and identity**, with names\n  and addresses loaded automatically from the selected account and flexible\n  per-sender reply intervals for the full absence, daily, weekly or custom use\n- **Safe multi-instance Sieve handling** that detects and preserves vacation\n  settings created by another NextSnapMail instance and allows explicit removal\n- **Explicit migration of existing managed Sieve filters** from\n  `rainloop.user` to `nextsnapmail.user`; both scripts remain independently\n  editable until the user deliberately starts the migration\n- **Almost all IMAP features** including advanced searching\n- **Integration with Nextcloud Unified Search**\n- **Integration with other Nextcloud apps** (Contacts, Files and Calendar)\n- **Multiple mail accounts and identities**\n- **Integrated Gmail / Google OAuth2 login**, including main account setup from\n  the personal settings and additional Gmail accounts from the webmail account\n  menu\n- **Administration integrated into Nextcloud**, including mail domains, Google\n  OAuth, webmail settings, extensions and data migration without a separate\n  webmail administrator login\n- **Domain connection tests** with visible IMAP, SMTP and optional Sieve results\n- **Protected shared CardDAV settings** that cannot be overwritten while an\n  additional mail account is active\n- **Admin-assisted import from existing SnappyMail installations**, including\n  stored mailbox credentials, additional accounts and app data\n- **Admin reset option** to remove NextSnapMail account settings and recreate a\n  clean NextSnapMail data folder when troubleshooting is needed\n- **Admin-controlled message list size**, including default value, maximum\n  value and an optional enforced setting for all users\n- **Send & receive OpenPGP encrypted/signed emails** (With full HTML support, ECC keys, or plain text with Mailvelope)\n- **Send & receive S/MIME encrypted/signed emails**\n- **Many security features** (Sodium encrypted passwords, Sec-Fetch, TOTP 2FA, DKIM, prevent tracking, etc.)\n- **Kolab integrations**\n\nAfter enabling the app, administrators can manage the complete webmail\nconfiguration in the dedicated \"NextSnapMail\" section of the Nextcloud\nadministration settings without a separate webmail administrator login.\nUsers can add their initial mailbox credentials in the dedicated\n\"NextSnapMail\" section of their personal settings.\n\nAdministrators can also use the NextSnapMail administration settings to import\ndata from an existing SnappyMail installation or reset NextSnapMail data for\ntroubleshooting."}},"isFeatured":false,"authors":[{"name":"Erhard Scharf","mail":"","homepage":"https://github.com/oe79"},{"name":"SnappyMail contributors","mail":"","homepage":"https://github.com/the-djmaze/snappymail"},{"name":"RainLoop Team","mail":"","homepage":""},{"name":"Nextgen-Networks","mail":"","homepage":""},{"name":"Tab Fitts","mail":"","homepage":""},{"name":"Nathan Kinkade","mail":"","homepage":""},{"name":"Pierre-Alain Bandinelli","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhOHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzAxMTIxNzE3WhcNMzYxMDA2MTIxNzE3WjAXMRUwEwYD\nVQQDDAxuZXh0c25hcG1haWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCtFVtCj/l491ErKgQsIiydjrQhIbawshcQEUaE3IOmkH7iD7PuENjDXs2f3/3W\nlrzo2F1DSkusSAW1jJTZUpdM1ZpxcpSzIfM+WCZ2FvnjRl5LNtm2yo6XoDGS1Qs4\nEfFsx9sVzRM1NloEcr8gvKCTirNh+K/CZhYSyavF1iaPyPoFNT1kNLgYST4GY2bo\nyYP9w+N44YlUxQaL88p0fgoaYY8bqLpfLS4U348T3LtS9SAh/f16Um7Rb1WDTbmI\n0i4K26aRGjByKQ2slXnTTiv2myfz+fKGfPof2GqmaQHNesE6X946RnEUsT6O6w/k\nl0M6HbSefGFEN0BSJpogJT2HnS2ypOO83Tvd7dIK72XkSq/wxsiKL9AQOUbPpEaT\nYPt+rD/c6Q4RwhdzXgcflZXJe/NBXfxTGnpcK4H4ERMFJqPxVfSb5ijI3EmO/MW/\nDqQ1yeBsxMONe4meKy5y6VV1h+KTsqJyg5v64ft2HVwGL+ErK54g0t97ix73ckVX\nXIRF8COhJH8sTzPsTHmRCK/AwxXwsk7LIAbtvglhVab51M4qs8sJL/LUdslm9/ss\n/UUHRAlp1HEmuVRDmRQvgmMO4UK3F3javgQCkAem/tqaExN9rFECeF38uqHiq3zn\nqw6QF9aHhiJ68YeMRIDlVzPx6Jh9O2pvr8R5YKYk91+PFwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBIhkv9x9IHwMTRjXdiJ2g/x+gi8aSkXCFvGGS6WZAYwGQNNeBS\nCC/PPD/0XjmrI/xANNquP0VqLTaZObrQO2UGu61Cgc2rpvrreuKKbo/UAMshuC3G\nu3cS96lm8o/WuY17bYvQoI+9OWUkdjodTJCEELHPGMt3OZI7MzyPyMI2lUvB89XS\nUTUWt4pVqBpX8RekEyH1SQAzexp3EVYqSBgrGdwPPG36j0pbuqFkMbvloC81lv47\nY4LV91B4IXPrLfd0PYR75nI+JfcvX7lX3DVaEhaaMv2SK882lxq2YqooEmkSIPvP\nSZ/F787QWHGDSpPFcZ07OunwU0emWvtc1mHl\n-----END CERTIFICATE-----","discussion":"https://github.com/oe79/NextSnapMail/discussions"},{"id":"whereami","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Adacis/whereami/issues","website":"","created":"2022-06-08T19:41:36.508525Z","lastModified":"2026-09-18T14:17:16.859896Z","releases":[{"version":"0.0.37","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/Adacis/whereami/releases/download/0.0.38/whereami.tar.gz","created":"2024-11-06T15:41:51.051656Z","licenses":["agpl"],"lastModified":"2026-09-18T14:17:16.938663Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"hrB8iVR/WNYm8dKumo9VMYxnP8MzjvTfBiVIT38/bAMVwWjHItfz46V6CGjfoXynbu7xQxzUpUfo9eIj8OShEwyUyPfVpyHnPQE1+4xfChzPLbscYzc/kz94ddd97BwARuxefltLIMO2Mreya4hsA4HRzhSj8n0cNF5pA+u3s9jyGdp6FkjFGKUfmtl8D32SoAeYzUwwOUK1x0O9dNuO3/L5QmfS8AYXKIvDaH7NJC9FpZvUf70Mvd0Y0DuN+UlG+zlocjKH1j9ena166QTTT1YyfgUbi77tGzfS4oSMVaXAbnRDX7ulFlOM9OduWFPWgMrHzTggm15AwlbwtcHrrpNPvL0rewmPw7oeZcakSXejACZWTb7Mtto1/SJSfPerqJM+iRRqSzNjwpNDYloYvOpjdmICJNPwWlmRUCyYXItCztOF6VhMfdOUXAKKhtywvLkkc/A+A+lcXVqetbE7KNCi6SiAhGWwgsehgb2wtA8LU0VfG1Jw+7HoAdjCT8qw0IDSogvwhshARMVtuWKj+8b8K/RM52keE2hjUgMQkQREzTIHStx/ykud1luUSOEUug455gBPnPcyYofKk0wl0ys+vgz98OA/fg5h2/TCoCbB0aTnCqvs2vUI/85lPxVIgetlgVctc7W5ufMTS5/sdCKvHoQa8BOIOmWcYKyhlgo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Where am I ?","summary":"Is a simple application to locate everybody in your company.","description":"Is a simple application to locate everybody in your company."}},"isFeatured":false,"authors":[{"name":"ADACIS","mail":"contact@adacis.net","homepage":"https://www.adacis.net"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhHPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwNjA4MTg1MDE5WhcNMzIwOTEzMTg1MDE5WjATMREwDwYD\nVQQDDAh3aGVyZWFtaTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANJ9\nbQTTDmiTSQ5Kn5i+QiKWLnbvWrZu/u/GiISfyD5j8DukawHUtFYe/a88/isajTPR\n1fmbACwrOXU1FGz8bDVUHSHg60qtjkDcerlEkBtHhFtrPQp2ARqAfdaJdjH4XXCq\nqMvfStRdrruJNJdy8qtb3QuDRsy4QdxQ+FnHU9ZQXJHMZE1XrWtg1NVX4tqpXaIw\ngatg0qhLt/q2j0AaFhVU0m8OPQaddf/sl8ZAwhjbsSuxBtR5b/AplUWyYcqsgwN1\nRPPrnn1rlztGPbEbQwQaTS2VeMmc19f7W4baY9E8iysnx7MTUEWSjkQyCVS3lmQe\nE5pTDbnC4ag104yMGrflvNlRHJxI99HR/pwlq/1+3emWQFHkZ3SehnvoQNtApje1\ntTHGa52UHVyjneOH9tS1w8bmTEHZdJK1DyK5rSCRTRsFk/rn/Y8PNSeTb1BaIB2h\n6+A5f7SF/djpGEhvJkWYTocSXfeZOPvNUq3Pib9lqTg4tZ4/S4T/UxjgPtJ3PUPf\nPY+4ZwsBz3+CSmiMtNIYTLKKLT2FAUcB5F5udBcN/L4GV7u2/GrDHZ4svzT0C8WO\n/i/Bra4RJuNkVT0JpvC48LT2El2Vuc9G81wvjSDH1IllJ+rb5yGEwh3nzgk/rZRv\nBDUnKpvasCASWw+By2KbN7roDZJ2vL9Kne9+OoIDAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAFGx/k9uRGS8N/KFTn4YYRd4GQxSLQe7/t2xbFKDzSIS/5IAjDeghmux\nK+ONHWBbMAN+XoM0TLIflP0nz8Cv1ycRlZLV2lWHPFUTCVWiFJKIx1i4apLibw7E\nwmfgN3gCm0+zog8aJVsLTe2g6Mr94KyzreTPFJ7woB5QhBBlyBWn8Axc3X2BEANW\n2R3jZ/mtO3X2G3+OQiw8/FfYC9Z65nbxrODYUCA1ECHDM3ILXjhCUTy6MEAJmWEe\n7FWJr0b8UByTbh2Y0Ulhtj6LIeZXHhE4J6A+iv1DpQpY6a85Y7wF99Ugw+lFS8xA\nq0o9wZlXIWY9fPieu4V53O0Wx3wWLp8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"music","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nc-music/music/issues","website":"https://github.com/nc-music/music","created":"2017-07-27T20:44:13.379611Z","lastModified":"2026-08-31T05:23:46.260640Z","releases":[{"version":"3.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.6.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-music/music/releases/download/v3.2.1/nc-music-3.2.1.tar.gz","created":"2026-08-31T05:23:46.234549Z","licenses":["agpl"],"lastModified":"2026-08-31T05:23:46.319770Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.5","rawPlatformVersionSpec":">=28 <=35","signature":"IYNDzjLPeCBBGCd6+xsaJmDZxK5elR8DGUGxZDUZTiEvxY/eaBav4LL0pr+Ctkm5\nbMN7OPflu2o+QjAZ/38BVy2ITjCMVoc1WiJLfsPJpXdM/W9tH3Ik3mHdx/5L26+/\n2AWX9HATm8vYJ7KR3b4iQzxlHU4ERt5GccWrXIPwedHAOAf9+mC/wbFpCFmf5sJc\nZGAqwMX0LxPtvq7WENAqS9HlyBtMl7WL43r2T0V+uJNr5a100PFwVpzVG4Dya6Dn\nJgsJvE/j/57kkQzbw2Hsrg7wjSVC+XPhJqiV2WGPKPwf3iP+sVamTS+3JJM3okV/\nqSxkaluhralSFSBMjTHrKm9VRwsHcUY5PV5VFdLgF6X7Cm5mu3gPJSdpp1UvQ0rp\nXM9QJIlXormDlrlRwrvTm30eXyfy2rbNKZaxV+/En5Kzm+eQYaQxBhC/zlQgG+t8\nf1OsBalWeTGsCfPa1GqB5oSLMTYVB2j99kX99++RnLOzmFOL1p09AH9PCQyO3FNo\nRbYB2hXbPwqpugxE5/JPeyg5GJ+sLcRFMhYaRbdd8f72wx5UFwJr//x4Jij7Q5FX\nBU2YAu4+6Qn9tUL7LV/gioloREPZP0FhEMkHMEvzAviEAPhlPErNzI7egm/tRiK2\ndx+zTjUfHkrVjPXaMlDxTvPZOgNlsqoMs3Cb62V5Ud4=","translations":{"en":{"changelog":"### Fixed\n- Administration settings view failing to load after update to Music v3.2.0\n  [#159](https://github.com/nc-music/music/issues/159)\n\n### Added in v3.2.0\n- Support for Nextcloud 35 (tested on rc2)\n- Admin settings UI to setup Last.fm API key and secret without editing `config.php` manually\n  [#131](https://github.com/nc-music/music/pull/131) @mattwellss\n- Possibility to configure the default volume with the config.php key `music.default_volume`\n  [#109](https://github.com/nc-music/music/issues/109)\n- Possibility to disable extracting of various metadata tag types with the config.php keys `music.tag_enabled_id3v1`, `music.tag_enabled_id3v2`, `music.tag_enabled_lyrics3`, and `music.tag_enabled_ape`\n  * The ID3v1 and Lyrics3 tags are now disabled by default while the others are enabled\n    [#143](https://github.com/nc-music/music/issues/143)\n- Composer and BPM support [#123](https://github.com/nc-music/music/pull/123):\n  * Scan `composer` and `BPM` from the track metadata and store them in the database (rescan needed) @ineednousername\n  * Subsonic API: Include OpenSubsonic properties `bpm`, `displayComposer`, and `contributors[role='composer']` in all song responses @ineednousername\n  * Ampache API: Include property `composer` in all song responses\n  * Advanced search: Searching tracks by composer name and BPM\n    [#90](https://github.com/nc-music/music/issues/90)\n  * Smart playlists: Selecting tracks by composer\n  * Viewing composer details in the artist details pane\n- Comment field support [#111](https://github.com/nc-music/music/issues/111):\n  * Track comment is stored to DB while scanning the library\n  * The `comment` property is included in all song responses in the Subsonic and Ampache APIs\n  * Advanced search can find tracks by comment\n- MBID support [#94](https://github.com/nc-music/music/issues/94), [#148](https://github.com/nc-music/music/issues/148)\n  * MusicBrainz IDs (Recording Id, Release Track Id, Release Id, Release Group Id, Artist Id, Release Artist Id) from file metadata are stored to DB when scanning the library\n  * Song/album/artist responses in the Subsonic API contain the `musicBrainzId` property and the responses in Ampache API contain the `mbid` property\n  * Advanced search can find tracks/albums/artists by the MBID values\n  * Distinct artists with identical names can be separated by MBID. Distinct album versions with the same name from the same artist can be separated by MBID.\n- Compilation field support [#127](https://github.com/nc-music/music/issues/127)\n  * The `compilation` metadata tag is stored to the DB when scanning the library\n  * Subsonic API: Include OpenSubsonic property `isCompilation` in the AlbumID3 responses\n- Partial support for replaygain [#63](https://github.com/nc-music/music/issues/63)\n  * The replaygain fields are saved to the DB while scanning and included in the song responses of the Ampache and Subsonic APIs\n  * The web UI player does *not* use the replaygain data\n- Record label support\n  * The record labels are scanned from the song metadata tag `publisher` and store in the DB\n  * Ampache API: Add actions `labels`, `label`, and `label_artists`. Include property `publisher` to the song responses.\n  * Subsonic API: Include property `recordLabels` on the album responses (OpenSubsonic addition)\n  * Advanced search can find tracks/albums/artists by the record label\n- Sample rate is scanned and included in the song responses of Ampache and Subsonic APIs. Advanced search can find songs by sample rate.\n- Context menu with the \"Import from file\" action on the \"New Playlist\" navigation item\n  [#80 (comment)](https://github.com/nc-music/music/issues/80#issuecomment-3725231400)\n- Scan improvements:\n  * Provide controls for scanning and rescanning in the Settings view\n  * Enable aborting the ongoing scan operation on the UI\n  * Show in the Settings view if some tracks have been scanned on a less capable version of Music and offer to rescan them\n    + The same is shown by `occ music:scan`; these files can be scanned with the option `--rescan-old`\n- Ampache API:\n  * Actions `player` and `now_playing`, letting a client report its playback state and read it back. Unlike on the original Ampache server, the state is visible only to the user it belongs to\n    [#155](https://github.com/nc-music/music/pull/155) @lachlan-00\n  * Actions `catalogs` and `catalog`, presenting the library as the two synthetic catalogs `music` and `podcasts` which the action `browse` has always used\n    [#144](https://github.com/nc-music/music/issues/144) @lachlan-00\n    + The action `browse` renders its IDs as strings on the JSON API, matching the original Ampache server, and accepts the type `album_artist` as an alias of `artist`\n  * Play internet radio through the server, resolving any `.pls`/`.m3u` playlist URL and relaying the stream like the web UI already does. The relay can be disabled for the API clients alone with the config.php key `music.relay_radio_stream_on_api`.\n    [#88](https://github.com/nc-music/music/issues/88) @lachlan-00\n  * Play podcast streams through the server. The relay can be disabled for the API clients alone with the config.php key `music.relay_podcast_stream_on_api`.\n\n### Changed in v3.2.0\n- Ampache API: Reject the deprecated actions `tag`, `tags`, `tag_albums`, `tag_artists`, and `tag_songs` on API versions 5 and 6 like the original Ampache server does, answering with the error 4706 and, on version 6, the HTTP status 410. The actions still work on API version 4, and the renamed `genre` variants are unaffected\n  [#154](https://github.com/nc-music/music/pull/154) @lachlan-00\n- Show some error details in the browser console when subscribing a podcast channel fails\n  [#132](https://github.com/nc-music/music/issues/132)\n- Avoid PostgreSQL logging tons of unique constraint violations on typical library scan\n  [oc-music#1135](https://github.com/nc-music/oc-music/issues/1135)\n- Show a confirmation dialog before removing the unavailable files from the library\n  [#140](https://github.com/nc-music/music/pull/140) @sturlan\n- Do not automatically remove the unavailable files during the \"rescan all\"\n- Track details pane:\n  * Collapse the more exotic tags by default and show them by clicking \"Show more…\"\n  * Make all MusicBrainz Ids from the tags into links to the MusicBrainz site (like previously done with MbIds from Last.fm)\n  * On tag names, abbreviate \"musicbrainz\" as \"mb\" and \"replaygain\" as \"rg\" to not truncate the more important parts of the name\n  * Show also the MusicBrainz Recording Id stored in id3v2.4 tag `UFID` (MusicBrainz Picard uses this on mp3 files)\n  * Show all values of multi-valued metadata tags\n- Attempt to restart the playing radio stream if it abruptly ends\n  [#89](https://github.com/nc-music/music/issues/89)\n- Improved web UI view switching performance for huge libraries\n- Playlist view remains lightning fast even on insanely large playlists\n- Extensive internal refactoring on the web UI\n- In absence of the `album artist` tag, if there are tracks with the same `album` name but differing `artist` name, treat those tracks as one album from \"Various Artists\"\n  [#45](https://github.com/nc-music/music/issues/45), [#55](https://github.com/nc-music/music/issues/55), [#98](https://github.com/nc-music/music/issues/98)\n  * Library has to be rescanned for this change to take effect\n  * To avoid merging albums with the same name, make sure the tracks have either `album artist` or `Music Brainz Release Id` metadata tag set\n- Drop obsolete column `disk` from the DB table `oc_music_albums` (the disk info was moved to `oc_music_tracks` in Music v0.13.1)\n\n### Fixed in v3.2.0\n- Vulnerability [GHSA-7xgc-f6j5-h394](https://github.com/nc-music/oc-music/security/advisories/GHSA-7xgc-f6j5-h394)\n- HTTP status 500 on all the Ampache, Subsonic, and web UI endpoints accessing the file system in case the configured music folder no longer exists; the APIs now return a proper protocol error instead\n  [#149](https://github.com/nc-music/music/pull/149) @lachlan-00\n- HTTP redirection not working (e.g. on radio streams) when the `Location` header contains a relative URL\n- Deprecation warnings printed on PHP 8.3+ while executing the Music background tasks\n- Web UI trying to load an invalid image URL upon page load\n- Negative offset being ignored when showing time-synced lyrics\n- Empty lines being hidden when viewing time-synced lyrics\n- Collapsible navigation pane (used on narrow screens) misbehaving when song/album/etc. dragged sideways and dropped anywhere else than the navigation pane\n- Dashboard widget not stopping the playback when \"Next\" button pressed on the last track of the queue\n- Web UI failing to load on NC33 if `OCA.Theming` not ready in time (systematically on some systems, sporadically on others)\n  [#146](https://github.com/nc-music/music/issues/146)\n- Alphabet navigation working wrong in the Internet radio view when some station is unnamed (such stations are now listed as last)\n- The embedded music player within Files being slightly misplaced on NC 34+\n- Performance problem on background cleanup task with huge libraries\n  [#157](https://github.com/nc-music/music/issues/157)\n- Album covers from Last.fm not showing up in the details pane since Last.fm changed the sub domain hosting the images\n- Subsonic API:\n  * Attribute `parent` misplaced in the response of `getMusicDirectory` when browsing by file system folders\n  * Endpoints `savePlayQueue` and `savePlayQueueByIndex` not allowing an empty list to clear the queue\n  * JSON response of `getNowPlaying` containing a stray empty array within the `entry` array when nothing is playing"}},"signatureDigest":"sha512"},{"version":"3.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0 <8.6.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-music/music/releases/download/v3.2.0/nc-music-3.2.0.tar.gz","created":"2026-08-30T20:16:30.943584Z","licenses":["agpl"],"lastModified":"2026-08-30T20:16:31.023663Z","isNightly":false,"rawPhpVersionSpec":">=8.0 <=8.5","rawPlatformVersionSpec":">=28 <=35","signature":"npupHZJue7jHcoNq5HBWSHne/bs8oBQlbzMp3gMCOyPQnxzbxjY/5soOyZTjSIfz\n0X/dPZUMrRCkQ5urdUNFYvj0CTFvYVJy5ywOZs4iRd57elQBN5NqSOLcZhOTXY/b\nEYkUpUkWI82rRxeZbl+OvIt7bSMHMCiKyeEQjumd4E5eNpVqMJZ2Nyk35AJwsMQH\nRhuRsGeWlRqL7qy0ztNxVC2UEAnFkkCE9CpiqxBbN3tvL05/WLMWll2Kc3CG7kba\nGTkM9hojmwpspHxLAXi2ltWne/Y6Ny+m53XbIs7GWl60b2zbulZIc3sD10Yo95jo\nfahm7qeeswAXYyt+SGqdeLdM5gn5ZZHKN5EkszucZwKfxqtSPTMpWJbHKjz3rKtH\n3hOaSAFyuzTmR3pMkpdnU7JxtGcH94NdqQa6MlL7pFnrQTM8v/JIwXUEjLpSlIFn\n0YoCe4I094P00iwd7q7BQ4CIK+HWq9qjVCX/rKJCzIOzmIk3StFrmCFzgLISs6mo\nMjCpaR86xfJLbM1qsR5JayNO5sPYai74pR+ghkbroDLrrNqvQO0kk8mdw5HhK3Og\nwn1WzpLtNuPvhtCT4SajVUHid62SGwqa+3/Y8fHYhV9cHv3rL+/v+rym8arzWZ9h\njObNP8Psi4SgvRBPgVcenD4ZnMyhiLg4I4B59cBPoLg=","translations":{"en":{"changelog":"### Added\n- Support for Nextcloud 35 (tested on rc2)\n  [#144](https://github.com/nc-music/music/issues/144)\n- Admin settings UI to setup Last.fm API key and secret without editing `config.php` manually\n  [#131](https://github.com/nc-music/music/pull/131) @mattwellss\n- Possibility to configure the default volume with the config.php key `music.default_volume`\n  [#109](https://github.com/nc-music/music/issues/109)\n- Possibility to disable extracting of various metadata tag types with the config.php keys `music.tag_enabled_id3v1`, `music.tag_enabled_id3v2`, `music.tag_enabled_lyrics3`, and `music.tag_enabled_ape`\n  * The ID3v1 and Lyrics3 tags are now disabled by default while the others are enabled\n    [#143](https://github.com/nc-music/music/issues/143)\n- Composer and BPM support [#123](https://github.com/nc-music/music/pull/123):\n  * Scan `composer` and `BPM` from the track metadata and store them in the database (rescan needed) @ineednousername\n  * Subsonic API: Include OpenSubsonic properties `bpm`, `displayComposer`, and `contributors[role='composer']` in all song responses @ineednousername\n  * Ampache API: Include property `composer` in all song responses\n  * Advanced search: Searching tracks by composer name and BPM\n    [#90](https://github.com/nc-music/music/issues/90)\n  * Smart playlists: Selecting tracks by composer\n  * Viewing composer details in the artist details pane\n- Comment field support [#111](https://github.com/nc-music/music/issues/111):\n  * Track comment is stored to DB while scanning the library\n  * The `comment` property is included in all song responses in the Subsonic and Ampache APIs\n  * Advanced search can find tracks by comment\n- MBID support [#94](https://github.com/nc-music/music/issues/94), [#148](https://github.com/nc-music/music/issues/148)\n  * MusicBrainz IDs (Recording Id, Release Track Id, Release Id, Release Group Id, Artist Id, Release Artist Id) from file metadata are stored to DB when scanning the library\n  * Song/album/artist responses in the Subsonic API contain the `musicBrainzId` property and the responses in Ampache API contain the `mbid` property\n  * Advanced search can find tracks/albums/artists by the MBID values\n  * Distinct artists with identical names can be separated by MBID. Distinct album versions with the same name from the same artist can be separated by MBID.\n- Compilation field support [#127](https://github.com/nc-music/music/issues/127)\n  * The `compilation` metadata tag is stored to the DB when scanning the library\n  * Subsonic API: Include OpenSubsonic property `isCompilation` in the AlbumID3 responses\n- Partial support for replaygain [#63](https://github.com/nc-music/music/issues/63)\n  * The replaygain fields are saved to the DB while scanning and included in the song responses of the Ampache and Subsonic APIs\n  * The web UI player does *not* use the replaygain data\n- Record label support\n  * The record labels are scanned from the song metadata tag `publisher` and store in the DB\n  * Ampache API: Add actions `labels`, `label`, and `label_artists`. Include property `publisher` to the song responses.\n  * Subsonic API: Include property `recordLabels` on the album responses (OpenSubsonic addition)\n  * Advanced search can find tracks/albums/artists by the record label\n- Sample rate is scanned and included in the song responses of Ampache and Subsonic APIs. Advanced search can find songs by sample rate.\n- Context menu with the \"Import from file\" action on the \"New Playlist\" navigation item\n  [#80 (comment)](https://github.com/nc-music/music/issues/80#issuecomment-3725231400)\n- Scan improvements:\n  * Provide controls for scanning and rescanning in the Settings view\n  * Enable aborting the ongoing scan operation on the UI\n  * Show in the Settings view if some tracks have been scanned on a less capable version of Music and offer to rescan them\n    + The same is shown by `occ music:scan`; these files can be scanned with the option `--rescan-old`\n- Ampache API:\n  * Actions `player` and `now_playing`, letting a client report its playback state and read it back. Unlike on the original Ampache server, the state is visible only to the user it belongs to\n    [#155](https://github.com/nc-music/music/pull/155) @lachlan-00\n  * Actions `catalogs` and `catalog`, presenting the library as the two synthetic catalogs `music` and `podcasts` which the action `browse` has always used\n    [#144](https://github.com/nc-music/music/issues/144) @lachlan-00\n    + The action `browse` renders its IDs as strings on the JSON API, matching the original Ampache server, and accepts the type `album_artist` as an alias of `artist`\n  * Play internet radio through the server, resolving any `.pls`/`.m3u` playlist URL and relaying the stream like the web UI already does. The relay can be disabled for the API clients alone with the config.php key `music.relay_radio_stream_on_api`.\n    [#88](https://github.com/nc-music/music/issues/88) @lachlan-00\n  * Play podcast streams through the server. The relay can be disabled for the API clients alone with the config.php key `music.relay_podcast_stream_on_api`.\n\n### Changed\n- Ampache API: Reject the deprecated actions `tag`, `tags`, `tag_albums`, `tag_artists`, and `tag_songs` on API versions 5 and 6 like the original Ampache server does, answering with the error 4706 and, on version 6, the HTTP status 410. The actions still work on API version 4, and the renamed `genre` variants are unaffected\n  [#154](https://github.com/nc-music/music/pull/154) @lachlan-00\n- Show some error details in the browser console when subscribing a podcast channel fails\n  [#132](https://github.com/nc-music/music/issues/132)\n- Avoid PostgreSQL logging tons of unique constraint violations on typical library scan\n  [oc-music#1135](https://github.com/nc-music/oc-music/issues/1135)\n- Show a confirmation dialog before removing the unavailable files from the library\n  [#140](https://github.com/nc-music/music/pull/140) @sturlan\n- Do not automatically remove the unavailable files during the \"rescan all\"\n- Track details pane:\n  * Collapse the more exotic tags by default and show them by clicking \"Show more…\"\n  * Make all MusicBrainz Ids from the tags into links to the MusicBrainz site (like previously done with MbIds from Last.fm)\n  * On tag names, abbreviate \"musicbrainz\" as \"mb\" and \"replaygain\" as \"rg\" to not truncate the more important parts of the name\n  * Show also the MusicBrainz Recording Id stored in id3v2.4 tag `UFID` (MusicBrainz Picard uses this on mp3 files)\n  * Show all values of multi-valued metadata tags\n- Attempt to restart the playing radio stream if it abruptly ends\n  [#89](https://github.com/nc-music/music/issues/89)\n- Improved web UI view switching performance for huge libraries\n- Playlist view remains lightning fast even on insanely large playlists\n- Extensive internal refactoring on the web UI\n- In absence of the `album artist` tag, if there are tracks with the same `album` name but differing `artist` name, treat those tracks as one album from \"Various Artists\"\n  [#45](https://github.com/nc-music/music/issues/45), [#55](https://github.com/nc-music/music/issues/55), [#98](https://github.com/nc-music/music/issues/98)\n  * Library has to be rescanned for this change to take effect\n  * To avoid merging albums with the same name, make sure the tracks have either `album artist` or `Music Brainz Release Id` metadata tag set\n- Drop obsolete column `disk` from the DB table `oc_music_albums` (the disk info was moved to `oc_music_tracks` in Music v0.13.1)\n\n### Fixed\n- Vulnerability [GHSA-7xgc-f6j5-h394](https://github.com/nc-music/oc-music/security/advisories/GHSA-7xgc-f6j5-h394)\n- HTTP status 500 on all the Ampache, Subsonic, and web UI endpoints accessing the file system in case the configured music folder no longer exists; the APIs now return a proper protocol error instead\n  [#149](https://github.com/nc-music/music/pull/149) @lachlan-00\n- HTTP redirection not working (e.g. on radio streams) when the `Location` header contains a relative URL\n- Deprecation warnings printed on PHP 8.3+ while executing the Music background tasks\n- Web UI trying to load an invalid image URL upon page load\n- Negative offset being ignored when showing time-synced lyrics\n- Empty lines being hidden when viewing time-synced lyrics\n- Collapsible navigation pane (used on narrow screens) misbehaving when song/album/etc. dragged sideways and dropped anywhere else than the navigation pane\n- Dashboard widget not stopping the playback when \"Next\" button pressed on the last track of the queue\n- Web UI failing to load on NC33 if `OCA.Theming` not ready in time (systematically on some systems, sporadically on others)\n  [#146](https://github.com/nc-music/music/issues/146)\n- Alphabet navigation working wrong in the Internet radio view when some station is unnamed (such stations are now listed as last)\n- The embedded music player within Files being slightly misplaced on NC 34+\n- Performance problem on background cleanup task with huge libraries\n  [#157](https://github.com/nc-music/music/issues/157)\n- Album covers from Last.fm not showing up in the details pane since Last.fm changed the sub domain hosting the images\n- Subsonic API:\n  * Attribute `parent` misplaced in the response of `getMusicDirectory` when browsing by file system folders\n  * Endpoints `savePlayQueue` and `savePlayQueueByIndex` not allowing an empty list to clear the queue\n  * JSON response of `getNowPlaying` containing a stray empty array within the `entry` array when nothing is playing"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzc0N2ViYzJiLTBjYTItNGFkYS1hNzNjLWFiNDc5MGU2YzRiMQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2ZiM2JiNjY5LWM1ZDItNDRmMC04NzY2LTViZmJhMjlkZTQzOQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzM1NzAyZDFkLTE3NDAtNDBlYi1hZjQxLTcxZWMyN2E2ZThiYQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzVmZDc2NWNmLTc1NjMtNDJmNy05ODg3LWQ0MzhjMWFhOGRjMA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzk4ODQ2YjMyLThiYTYtNDI1ZC1iNDIxLThjMmRiMGJiZDYzNQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2RlOWZmYzIwLWMyZWMtNDAzMy04MDk4LTdjYzg0Yzk2YjM5NQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzQ3ODNmMDI3LTk4NDctNDk3OS04OTY1LWI4M2YyNjViZjNkZA==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Music","summary":"Music player, library viewer, and server","description":"A stand-alone music player app and a \"lite\" player for the Files app\n\n- On modern browsers, supports audio types .mp3, .ogg, .m4a, .m4b, .flac, .wav, and more\n- Playlist support with import from .m3u, .m3u8, .pls, and .wpl files\n- Show lyrics from the file metadata or .lrc files\n- Browse by artists, albums, genres, or folders\n- Gapless play\n- Filter the shown content with the search function\n- Advanced search to freely use and combine dozens of search criteria\n- Play internet radio and podcast channels\n- Setup Last.fm connection to scrobble plays and/or see background information on artists, albums, and songs\n- Control with media control keys on the keyboard or OS\n- The app can handle libraries consisting of thousands of albums and tens of thousands of songs\n- Includes a server backend compatible with the Subsonic and Ampache protocols, allowing playback and browsing of your library on dozens of external apps on Android, iOS, Windows, Linux, etc.\n- Widget for the Nextcloud Dashboard"}},"isFeatured":true,"authors":[{"name":"Pauli Järvinen (current author)","mail":"","homepage":""},{"name":"Morris Jobke (original author)","mail":"","homepage":""},{"name":"Jan C. Borchardt (original design)","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9137931034482759,"ratingNumRecent":0,"ratingNumOverall":29,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEADCCAugCAhA8MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwMzE5MjIzMjMzWhcNMjcwNjI1MjIzMjMzWjAQMQ4wDAYD\r\nVQQDDAVtdXNpYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKxHq6Pw\r\nAZtDKGO/GipxtUD8O6TXu+Cm64FK/BYdDuU45rMQYn3YlzUMhsdf0z1oGvjBMUM1\r\nbJz7U0HlexBljrbmb3H17Ty2Oeoe9ZpCEOT4pkMGp5D9ADwGOZdhqBJBC+3veI3O\r\nune3L0Vl7u8M+fYIEKWgNpXN/Ex5RKmUpraC56cHzDgKQIEQ9Gr5ehIYgk9ZFE6J\r\n1wpexQh0+ScT9GNu17eu+r8h1+Jm+jWKTbR1hbXYAZs10nIYT/hyHxuEgpoVCKYa\r\ntMpQYAgy6PqnD7S3sA2U1ecgypNyAHMgEBrUIKUJYDUArGJggB9NKi9fkki2u0of\r\nxwppKUNWmUCute6UaYqBytViqEIW13jLoOIoFIhDXFzcMyd6jlQVANekq/b4cWLl\r\nrHn05ZR54Y4rA0Nlsp2sDiS0XU6/8t5o4BZBzeQxkUBMYKUpwiIvUoLwb6KT/eAM\r\nP3G9oEBJh+5Q86nN+VCn/Ie/uyAsI5EstRB4aXWeTcHVvjtMbSSx8ok9DlKVavoR\r\nxUGD1HMzbx8a1sk+hCIBMklA2ErM+MJSPPKbB/RrjU0fx5vOdDz69j8JakpsvK7m\r\n0QCGa5PEpt8GWfLDZyyNbdwD8OP3CEmMWCj8++uDSW2eZ1wEXC5PyjmsybM6fIEs\r\nbi8Mcm33stVYPFql3M69MI5psSmoPFiPdnS1AgMBAAEwDQYJKoZIhvcNAQELBQAD\r\nggEBAJfb+22ZecDuPleLNVfaRyceAXuP1lWE48g+q1sybTTnPSsO+a0tzBuNr9P/\r\nmis64JiTpwH28P9YqLnnb+43dzScva64RROMsugZg9hr0mcUR/6gCV4e66roXlDf\r\nq/bRZZ1JCtQwfZ3ZZvoAUKZ96Az0FYPc8StUEY9OQLEiXbRxK03YrouBWw0Pmu/D\r\ntlGPu28CvnL6zdxhvIkG6ws9EuyLxY/F/9syVD+d5l5SRYKRe9RTc53tKE0ZQwO/\r\nO7fmi1rvt4Yz3GtDrG+u++KKMMepZODQ5YdT8h90no9RMxHAcaSKQYl4G9hyMTm7\r\nAwu6fshh0gRpFvTEt1qJzTk+J/E=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_3dmodelviewer","categories":["files","multimedia"],"userDocs":"https://github.com/WARP-LAB/files_3dmodelviewer","adminDocs":"https://github.com/WARP-LAB/files_3dmodelviewer","developerDocs":"https://github.com/WARP-LAB/files_3dmodelviewer","issueTracker":"https://github.com/WARP-LAB/files_3dmodelviewer/issues","website":"https://github.com/WARP-LAB/files_3dmodelviewer","created":"2023-02-23T11:42:09.053192Z","lastModified":"2026-07-27T14:13:29.832825Z","releases":[{"version":"0.0.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/WARP-LAB/files_3dmodelviewer/releases/download/v0.0.18/files_3dmodelviewer.tar.gz","created":"2026-07-27T14:13:29.807980Z","licenses":["agpl"],"lastModified":"2026-07-27T14:13:29.873476Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"PM0zDOWmLcRF4qyA177D7McTIgQ1dT37YugOEu6RcrU5qVRVclgO2KP5ZQBR+jx/\nCo4Y03e61BkPeMtrNbzQJtvHqelxPYdGgmZCLz4owraAVuV7u9u3xyEss9wuFAFm\nA4VGX5NlELF2c+5cWrGl9svxt8E8cUonb5xVRAY38Mzn31p38pIQUdL+CgdwLgFm\nUMg52/S2q1we6m2RDe+89La0wYpxRuokstYAFtFM2PdpvJqCsZgfeFg4Fyob16vt\nf3MJ5vSm0xt5BTxnbCLCt/3U1fcotzrtislUr9PHWXVahtkdlu+avOdf3JT7e0IW\npVRHp5DLhLBK86lNk9GQgcaJK0dkssGPTRay3GpfMkzhogD4mf35QZxyWU2uEsxw\nmNkz1h0c9fP3xcGjD88/TBn4YKHuvldOLYrCzT/3iNJEYAQa9FLgfmX467snwj++\nbLo48NiYT3oVW0j67DmPRuDYR+Rl5GTFGEfvALx1fkBK093f8HR9ocrW62cb0Ur9\nZXxpdP8aHuZ6fwhChuA5TP9NgWB5vFKlXMpEK9dpfw9pblGOKtKpDcIVnLxcq5c7\nRxjC6D13lcl3AqtHXjhFh4kGB3qi50g/6uYGrvjyKTZVG3mEIVWHzkhk2EKeN60i\nVz8fjaxwbU5PLnDlAo/4tzTQVxuDBtLZxL2Ao7F1/iI=","translations":{"en":{"changelog":"### Added\n\n- Partial fix for public shares, thanks to @duke2421"}},"signatureDigest":"sha512"},{"version":"0.0.17","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/WARP-LAB/files_3dmodelviewer/releases/download/v0.0.17/files_3dmodelviewer.tar.gz","created":"2026-07-27T13:37:55.471699Z","licenses":["agpl"],"lastModified":"2026-07-27T13:37:55.518182Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"PZtcMTZmmgCdAHvmALkaVNNRIK6Nd+hjRm/zDons90otMNF2pyHsl9aWAHBykFr3\nEbg18eFkXzs545mOqox/lX939xCw86vAgMSgbeL6VWlI8tR13GmkhjaqMfwfSGny\nL75rI6vF9QXKcMiWsDWik5g7hQY7e02PWp+H5MV+WV3NxlKhFJIV9wXOVHzA+0Ht\nc+jUN6bjD8yAXObWGLQRSg4ItpUEgxBauu0JQCH43HC0FpplyDQjVTFALpSD50if\nsUWfcitmjmF3sBcZoVHgldCEtL52bEO/lLcIJw78rrDrx87TJL8+gcFuNLiI3f6y\na4W5KE9XmC3mBjXyBVV+TqguHHXdgSSsGS5k0l2QrkB1tkiBE6hk4aNpIUsay+Sn\nHXtBMYU9QDq/bf19oOVojwKGIs1o9NeAdjlOcCJAbfoCq7s+/yv7oFZZGzuazRWS\n8qBCWQtYYqvFnLIp/+RMXhuaySE+h0umglINJ0yM2h2SjDLUQ+CuSBrx9jX2EyxN\nKNBmxBdnV6dFUOrf27UJy7Vbwh0t2Y0cxAEWKvzCkVIK/B9dcE7ivvKpi78JH75E\nTEqrY4gsOyYJewtcSek145fX+pptrOrJgY19FG1YSIxIBUQelG4g1LBmEvigrt7X\nE6ndQBtZNWDdDVVxzEnOSH8hoj+INBRz3EMJTXmeZGM=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 34"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dhcnAtbGFiL2ZpbGVzXzNkbW9kZWx2aWV3ZXIvbWFpbi9zcmMvaW1nL3NjcmVlbnNob3RzL2Rpc3QvMTQyMHg3OTgucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dhcnAtbGFiL2ZpbGVzXzNkbW9kZWx2aWV3ZXIvbWFpbi9zcmMvaW1nL3NjcmVlbnNob3RzL2Rpc3QvMzU2eDIwMC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/warp-lab/files_3dmodelviewer/main/src/img/screenshots/dist/356x200.png"}],"videos":[],"translations":{"en":{"name":"3D Model Viewer","summary":"Visualize and explore 3D models","description":"# Visualise and explore 3D models\n\n- 3dm | Rhino\n- 3ds | Autodesk 3D Studio\n- 3mf | 3D Manufacturing Format\n- amf | Additive Manufacturing File Format\n- bim | dotbim\n- brep/brp | Boundary Representation\n- dae | Collada\n- fbx | Filmbox\n- fcstd | FreeCAD Standard File Format\n- glb | GL Transmission Format\n- gltf | GL Transmission Format\n- ifc | International Foundation Class\n- iges/igs | Initial Graphics Exchange Specification\n- obj | Wavefront\n- off | Object File Format\n- ply | Polygon File Format\n- step/stp | Standard for Exchange of Product Model Data\n- stl | Stereolithography Standard Tesselation/Triangle Language\n- wrl | Virtual Reality Modeling Language"}},"isFeatured":false,"authors":[{"name":"WARP","mail":"","homepage":"https://www.warp.lv"}],"ratingRecent":0.5,"ratingOverall":0.8888888888888888,"ratingNumRecent":0,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhICMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMjIzMTEyNjIxWhcNMzMwNTMxMTEyNjIxWjAeMRwwGgYD\nVQQDDBNmaWxlc18zZG1vZGVsdmlld2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEArF/L/RBqbwhCE6ykjKrzncMZV4NPrkulHPuWJCELpMOH97q/2MFt\nbkSxy1o8IMTcfYIouoAOzPbUNxjP941ev5UV6IIto8I35e99evg7NGZexnCL7dil\nLhv3kJG0znV6JNemycgajyFkwQj7EyP+TS1/LkzMHOFYD7bhFWjbuHqFJdOKlesC\nCoHmbkZ4UKR5QiX6vZ+2palYjtggM8ylkJIi9hmjjPRyrhkwWd+ycr5OppTb+X1s\n9LC3y+a8PA7lI7pthCArd83O3B67q1qNPqSVaYXK41TjnVYE++++a3udnysYevSt\nH90XVqxCAGoz2u3DUzzv/g+0ZGX6hfqIr32CixN5IB3oPXPa8U6jLuGmduQusLTI\n+5zPPV51SaKhs34W/w9Ff0sXGv9qbY4NEcNXD1wo+4II3m6xC5HSr7wVaLuBAfLc\nlwU3dbljunKN+30poLHHuBuUIU5BPoq3SGYQCEfJ+hesJulfYmDDwD3YP0UDztFE\nk7pIGCis0GdjrQoyQpfy5MJWMcrDuTmGDsqNkXb3V0idE8XP26y1faBf3O+Ut775\ne4lHOyjx79Bc4+Pb9tJJ9SUAxab4cb8HH8OvQ6rKAG+UDWHDJ4SXhcuNen6ww6N1\nY++Tezvz9ft2Xv8tVQBH6nOh+ypyezZ7FXXYcQP5pv/j5blMBRLivkkCAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEAgGCOS7t+KsgUsbK+vwZRAyAGcajMDY/VmTgy9DfW\nga/mtNDWlW0MvvabVEWZ6HR8zfi0dm5KvTqYBe1upWZefKGO8WWvhiXDYk69KmjB\ncOg6KDlaO1II64LhHr7nsaDwHeWbXtRPiN9DxjBEQVGyexZzI8bDzdjIeFR9ll1I\ncbvlAT8uxE45fjFfk9Z+7tc/w6NYoA4VpmcysVvLF5XWTexi3V9pi7czWvTJH51r\nGAwITEpgfjfoQY5819+7eGPRlQyl1Te9RTsPSS86qpYP0zADOixHrK4gqobNifP6\n2RCoRNgcJvZTLARVvkvdcCRHdPxocO24blg4CotVTjrFPQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cristal","categories":["organization","social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://jira.xwiki.org/projects/CRISTALNC/","website":"https://github.com/xwiki-contrib/cristal-integration-nextcloud","created":"2025-11-27T14:45:36.169119Z","lastModified":"2026-10-05T12:04:50.487641Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/xwiki-contrib/cristal-integration-nextcloud/releases/download/1.9.0/cristal.tar.gz","created":"2026-10-05T12:04:50.480859Z","licenses":["agpl"],"lastModified":"2026-10-05T12:04:50.517595Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"DJUmzBcvqbTj47+pdLLg1lrQ+A5SI4/CCSBclFIpssRuMDNy7Ez0i7r5L4lI6nQFiTwo2Losr8pyk6N0sHScYXnYRXDQQ72bXJcyOk0C27J4E0iiYNmjUdvUKnOI5Kg4a5TiGsIL5ZJSq9B6gfPjQZGBgges+jYmIG7Z6n9KaeqwFla/VdOnusfCv6WhQfUi82Y0gd/qGUWWe2mVAOy9tBYueogojga7GN256TMHTRcA5u2LzZb5C5Lh46f7sMO4CQvQHWZM2z9SX41Lganj7xURIhl+F3i+qu+8C3olJCjxCjzfhGfpr4+2ZIQas+T5gHyBkBp/gYy2dVZ3GxRcyzEV1MegTB0iQ6sZ5Vpx5TJOvBoWwipm/cBhkjzj/MmMj/3AdBJHVICadIOCxAb7wZzv91d8o5ck+89RFuu+qiTpWyAJY2xUbdgYIreTAWxi/5xXvj9Ih5en8i8fWRtE780ggtyaqSpDu3s6eu9E6OX77CvMH1M8Evr22MGJpOWYjjDwIrl6XK4MpdgYTH4B4JHsQe81HPVCXf0iWen8ebFWGmr2L5YgmNanW4+uQvFWshB8cvgmJ7RJKOuqV/PzPcH5DViWU3a5NDy/9SsHKO1eIRMA6oGFzR2U4hi34glDbpa32MBWwockG4V04kUguf80v7KMY6S6P0weny2yi60=","translations":{"en":{"changelog":"* Upgrade to Cristal 1.8.0 and XWiki Platform 18.8.0\n* Upgrade third-party dependencies, including security fixes"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3h3aWtpLWNvbnRyaWIvY3Jpc3RhbC1pbnRlZ3JhdGlvbi1uZXh0Y2xvdWQvbWFpbi9kb2MvY3Jpc3RhbC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Cristal","summary":"A Wiki UI for Nextcloud","description":"The [Cristal integration](https://github.com/xwiki-contrib/cristal-integration-nextcloud) for Nextcloud adds a modern, wiki-style note-taking interface on top of your Nextcloud files.\n\nCristal is designed for flexibility, a user-friendly UI, and organized knowledge, without lock-in or unnecessary complexity.\n\n## Features\n\nWith the Cristal integration in Nextcloud you can:\n\n* **Write notes and organize your thoughts** in pages.\n* **Structure pages into a hierarchy** (as many levels as you want).\n* **Link pages** together.\n* **Manage your attachments**.\n* **Navigate** with the navigation tree.\n* **Use auto-suggestion** to find content.\n* **Keep your wiki content in Markdown files**.\n\nIf you uninstall Cristal, all your data, pages and attachments, remain accessible in Nextcloud.\n\n## How to start\n\nAdmins logged into the Nextcloud App Store can install Cristal in one click from this page. The installation is done for all the users of the instance. No need for complex configs or setups.\n\n## Contribute to the Cristal integration\n\nCristal is open source and any contributions are welcome!\n\nYou can help improve the application, leave feedback in the comments, report [issues](https://jira.xwiki.org/projects/CRISTALNC/), or [discuss with us](https://dev.xwiki.org/xwiki/bin/view/Community/Chat).\nYou can also fill the [Feedback survey](https://cryptpad.fr/form/#/2/form/view/5-s0TWMJIQ8mFBtRcezNa-YvqtAo5JUvyeeAA5NoMDA/).\n\n## What is Cristal?\n\n[Cristal](https://cristal.xwiki.org/xwiki/bin/view/Main/) is an open-source, modern, modular wiki UI that is able to connect to various back-ends (e.g., a Nextcloud or a [XWiki](https://xwiki.org/xwiki/bin/view/Main/) instance, or GitHub, or a local folder). It focuses on offline editing with sync, and embeddability. This makes your content portable and accessible anywhere: in the browser, on your desktop, or inside another platform."}},"isFeatured":false,"authors":[{"name":"XWiki Development Team","mail":"devs@xwiki.org","homepage":"https://www.xwiki.org/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhLVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTI3MTQzNDEzWhcNMzYwMzA0MTQzNDEzWjASMRAwDgYD\nVQQDDAdjcmlzdGFsMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqOvd\nHTWft0tUBtMruxyMt59mO2G1S/VQICabnwImyGv/klc1zt4tdrMR07E0zpI1/Cg5\njdtQeAexo1kjIFzT1wkTVNcmwWrsBZ3ieY1BnYuTqVBW/SMJIpfVzhcB5v/1Sdcs\nG9y3cjrsuxNv8R+HUH8MuAH8bPgFiIxEN9+4GVDm3bqJngFzE1CEsuqW1BA9smhd\nRsLY6QDpXOM3U8Tz57HrKkwwF9wB9KRia5xcotEAgXLrAN+OJd9bHtk46ILWkTAd\nsVV8JqayqAVb/mapJPST2L+5MAjC62BE6VrDM9Y3uzK+Pf57HBYXeVH2Cd0ZM0HS\nKOyQFcHKIMNbOSRz2TAUXCIgFJbUJQ820yCCwYYVWH286i2EpQNO6g/pgYL1U3DU\nbkGKy1ZqlBlr6BtXPAg+JfGkmbcyhUNaUZ/vx8ob9Zrsi471fpFM2mf9fK2MBHeB\nsguGf091IIyaxeEKF3AdsvX/SB3avHwqYRH7g9NJJrL5F2MXBGDzKwBj/5jwLRHZ\nQSq1sJv/A59PicoZ9HMxDZ2cxdnN9RxB6Rwt3+P1xkgea72UvyuDofrtv73PdRrW\nHd+qgxsB5qcaKoZT+T04WVsuQ8PdJHxtYvUhsoGkYmGdxvcQz8wBs7kTER0Bm4Ep\nXuWvgjNjHI7OmTIorTytgOoMN4jq6BP9ZSHh0f0CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAJ4FOeOu9WT9BYuLYhY5ZJPvILtO2LDpQ3gtrHmziDMWZUQ53+OF4Uhbw\neDKy/gkt2ghn81iRtDgGtYRAM6noX2ZNKE25do2ytETkN6j6n3+C2zn1lKEsP01r\nPjWgpIZ5+tW0/BldfphYhI+OEOTyHnlZiZYxnZJM4YrS36ioMtd8XeYS+ymX87hQ\nZUvkS5G8FApUk/xi4YWHOQSzDUPZZ+GMyDoTDBuBNi0GgznUCrLG1mEQygSJ2R7M\nGSIHrAA01RrxoJ+yYEj1cTWtNImeqbvHchlZVBio9/rjmlASIUmfya5DF97lSqTz\nBhWUI/eaAJQ+a22DsBy/utNmReCHtQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sidebar","categories":["customization"],"userDocs":"https://github.com/codedbyandre/nc-sidebar#install","adminDocs":"https://github.com/codedbyandre/nc-sidebar#configure","developerDocs":"","issueTracker":"https://github.com/codedbyandre/nc-sidebar/issues","website":"https://github.com/codedbyandre/nc-sidebar","created":"2026-10-13T11:48:21.868514Z","lastModified":"2026-10-13T20:21:49.360098Z","releases":[{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-sidebar/releases/download/v0.3.0/sidebar-v0.3.0.tar.gz","created":"2026-10-13T20:21:49.353914Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T20:21:49.429089Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"ik0IqYMe8e+B2BcW5cOeL7l8jGOVdXIkqM9BBSEhSDx4QWhmLdfAKTFct3mf7ImIwBjOa2UAR/KKAFODXFHfclvDMjKlphYz1Bvlp9XpQtwmTO1JchvE2EKRK+pibYwBU8YpPXW2WKV/oHLi+rfkEsy4CXzEjLuDSVj2dL35cfKvO8jhe/wDzw4NqiQ59cREn3apS1yb5T6QO/ShUORqV0Aq81oAbinOpuPRd68CgNzaJaYF+M0xPJrTXC81k6aN6cyFaO5RLvqdgXsOlI168NQV55IrvU7/a8JAOHhlogCorz+p17QMs+BlCyLqm1jVUTKeX/JlvpF/hq6pB5hAo5zUbxt5VY48gbNAbB5i40AmTexvIOsF4h01ryodGn2vcFzxvOp9pRxd/PwrqRe3LvRh6uivKJ+ZBApGiAAXCsUntvCNEDGu5pVW6U6G4VCLpU0hyKyxBIl6McJOudinRlKZ9rmGKofpVwhSXVCwleoDdrh4SXKMp5G+ihY4iyCBM3I4XL7bFfbpLb9yOUBXw+Sfjnjhwq+6fej6ZSFOrPbympxZE9LA3J7xrjNSulS1z280NIzK7m4PAGmKT8FEG8V+Swvnvtc3MoXUeaunXl4F8UUqACml6KgjAG2yh7jw4J9k4obHdZkz9fifLwUFQi0fdWbcffpL5XDB4DTetRg=","translations":{"en":{"changelog":"### Changed\n\n- Widened the compact and labeled rail modes and scaled up the header logo so custom logos and app captions remain legible.\n- Rendered footer entries in the narrow rail as compact icon buttons with tooltips and active state on the app management page.\n\n### Fixed\n\n- Hid the scrollbar gutter inside the app list so icons and active selection pills stay horizontally centered.\n- Kept the active app entry scrolled into view on load and aligned RTL tooltip positioning with Nextcloud's body direction attribute.\n- Hardened link hrefs, icon mask URLs, and theme CSS variables against invalid or unsafe values."}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-sidebar/releases/download/v0.2.0/sidebar-v0.2.0.tar.gz","created":"2026-10-13T12:16:07.787460Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T12:16:07.860293Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"L0huk7zDrASoIteVdlJcoqAASDzycJQpibdEXxckDqCL2vtm4VeoJv5Tw5cxasW4RiukzK+3nqZlXNgfs/mgEi3rpt4otIvWMtHbgGpUoHq3CUiafjF6eQ/pYnT3C22GVC+NuSob2Xp/518r7YcrJoi+RH1vKmisb6tjHZP8BSLvA8WHZEsO378gTPqT6asj5l7P7EGnu89f7JIYXZ7ssMgAgou9mQDIeAtL4/NL+E2geMlPZ0FwupUp7ue1mOR2BXC2vf7QJ3MShQIw2CUqrujz1wgnsvfTcJk2qj+PC3/UFZzs2KfAtwj6+JMWYQaoHO3iQFQu7ogme0tqQ4hGbWeoLw1beLGyG+4H/VMgU2ZPPAwevqrnS8MUPv0/jBcvRIl3lPyR7XNBm45cvuGS6txjHItwKYM/NKdZcccA9lWevykB6AcJR8gU6FtvxtkJYyAbqVOTdVPE9g1cPmBvV8/oa/ttbc35l1rus2X1IOlrgZvhfjYw7DKT6NXs753nUzPuuDQQPnf1ZoAY61IjtGV+QsaV3XKRb/gq6K5Zn1luAg7gBTwZd6h5jO7+hs9d+y+EGo0PRpweV9k0YQAImJccncDDuhFw5RhotPXrpm9tV8YrfrPQHjumZUFPyp8LD7CKe+rL8KlYl3Z7aZQD/tIm1KCOTkjIMY76wDw1MJg=","translations":{"en":{"changelog":"### Added\n\n- Narrow rail with tooltips and a wide rail with app names, switched with a button or Alt+Shift+S and remembered per person.\n- Drawer with a menu button in the header on screens up to 1024 pixels wide.\n- Color modes: theming color, neutral surface or a custom color with automatic text contrast.\n- Administration settings for defaults, hidden apps and what people may change.\n- Personal settings for color, app names and hidden apps.\n- Validation of every setting on the server, with field errors in the settings forms.\n- German translation of all texts.\n- The open app, or the open settings section, is shown in the header where the app menu used to be.\n\n### Fixed\n\n- App icons were not valid UTF-8 SVG files.\n- Apps that mount their own content container, such as the settings pages, ran past the right edge of the window."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NvZGVkYnlhbmRyZS9uYy1zaWRlYmFyL21haW4vZG9jcy9zY3JlZW5zaG90cy9maWxlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NvZGVkYnlhbmRyZS9uYy1zaWRlYmFyL21haW4vZG9jcy9zY3JlZW5zaG90cy9hZG1pbi5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Sidebar","summary":"Apps as icons on the left, instead of the top menu","description":"Replaces the apps menu with a sidebar on the left.\n\n* **Compact or wide.** A narrow column of icons with tooltips, or a wide one with names. Everyone switches with one button and the choice is remembered.\n* **Small screens.** The sidebar becomes a drawer behind a menu button in the header.\n* **Colors.** The theming color, a neutral surface, or any custom color. Text and icons pick the readable contrast on their own.\n* **Administration.** Set the defaults, hide apps for everyone, and decide what people may change for themselves.\n* **Personal settings.** Labels, colors and hidden apps, as far as the administrator allows.\n\nHiding an app removes it from the sidebar only. It does not restrict access to the app.\n\nThe app stores no user accounts and sends no data to the author. Removing the app deletes its settings and everyone's preferences."},"de":{"name":"Seitenleiste","summary":"Apps als Icons links, statt im Menü oben","description":"Ersetzt das App-Menü durch eine Seitenleiste auf der linken Seite.\n\n* **Kompakt oder breit.** Eine schmale Spalte mit Icons und Tooltips oder eine breite mit Namen. Alle wechseln per Knopf, die Wahl bleibt gespeichert.\n* **Kleine Bildschirme.** Die Seitenleiste wird zu einer ausklappbaren Leiste hinter einem Menü-Knopf im Header.\n* **Farben.** Die Theming-Farbe, eine neutrale Fläche oder eine eigene Farbe. Text und Icons wählen den lesbaren Kontrast selbst.\n* **Administration.** Standards festlegen, Apps für alle ausblenden und bestimmen, was Benutzer selbst ändern dürfen.\n* **Persönliche Einstellungen.** Beschriftungen, Farben und ausgeblendete Apps, soweit der Admin es erlaubt.\n\nAusblenden entfernt eine App nur aus der Seitenleiste. Der Zugriff auf die App bleibt bestehen.\n\nDie App speichert keine Benutzerkonten und sendet keine Daten an den Autor. Beim Entfernen der App werden ihre Einstellungen und alle persönlichen Einstellungen gelöscht."}},"isFeatured":false,"authors":[{"name":"André Wiesehoff","mail":"","homepage":"https://github.com/codedbyandre"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhRnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEzMTAzMzEwWhcNMzcwMTE4MTAzMzEwWjASMRAwDgYD\nVQQDDAdzaWRlYmFyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAx0yb\nYrNMuQt3D106Qj2+Yu1fqbf75lYDG3ZptbPny4D3bXNX6+apWx4EaSDkfDQFrkmW\nCUI2DgRCUNJYa7kgbqHNSv51pRZnWoGd6mrsozSMJSWUYelbNiLPUrgwdfrMlvLc\n/HP1O9MxqbyaJ8S+SIHWPuDT3adQUwF517g/mcvdbXoPlQ+t6gh7UuXgFrmmgA/d\nrCpvNS2JpR9mWAsIPRl1kjC3uXubNT0oKS2rPHAEGvtn2Gng0y9yhOLe8opIx7jH\nHmt/k9cctigdcJe4LPe4RExltk/xpg0LvQRw/CFyDdT77iZ6Xe4sEORAUQdOlJkB\nUs3cbmrRWping/95B6xzox7GAm+5ZBf5Az5Oy6UQVnQlOYHVQBu6kBgv61eKrDTg\ngVMrJrNbJWsn8ENn2IgqkmPpEdPEN/PJlzNLNio//wTTuxZeAwE5NGYQMjbguu3B\n3DRM5e1MX9wI6N2bRBm0S1/roNVmIsC5iQMeLOYHp/YrAjyuSz/mKgEidYU+odqR\nBq9yTUbnYGQc2oYduLCurwhn/ylb0oJgMYRIada6Hmv0IqOtYh3vAz/J0A1DsSiT\nyIrfKm55VFPdYWLYscVc/Er9ARoa3jqC10jHb/kd6WcT13wH8t+Ik3aUy6wzOBdd\noHfB6/vdIRC3gWBKqWl1Aqs5T9CFONRsKCLuJBkCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAcG5Gq7CUdiX3S6tG5Nks+eTCGGKHVaI1LZOYkDsPkv5t37/jFl3mOAvu\nkmJESa3069zZ1R6M92wEUNWNFL5p9i9CStD+RxWMcI5CvWwjuxPP1TJLE8wFAFtj\njESVdI65R3mbIcB1fTeyUdv0cVbl+SVk/TxxloxNjkw7LxwdekIjLB3umKw8nt+h\nw8OjY7cGhn/lM5h2tMANXTJCo5JYMuvFgHBzsaNuuOksomrVokYpeKGP/Jm5Zcsy\nY5b9+XYI8etqw4EKYdy9Pnipzzn9y1Dv74xGhQITjkvdNylQDaG8ZJg8yodvwZ0Z\nscw1vUzQTsHMQhnXIBqFHW3bhxFJww==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"file_checksum_search","categories":["files","search"],"userDocs":"https://gitlab.com/metaworx/open-source/nextcloud/file_checksum_search/-/blob/master/docs/user-guide.md","adminDocs":"https://gitlab.com/metaworx/open-source/nextcloud/file_checksum_search/-/blob/master/README.md","developerDocs":"https://gitlab.com/metaworx/open-source/nextcloud/file_checksum_search/-/blob/master/docs/api-v1.md","issueTracker":"https://gitlab.com/metaworx/open-source/nextcloud/file_checksum_search/-/work_items","website":"https://gitlab.com/metaworx/open-source/nextcloud/file_checksum_search","created":"2026-08-19T07:20:42.269662Z","lastModified":"2026-10-21T08:24:15.005563Z","releases":[{"version":"0.29.1","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/metaworx/file_checksum_search/releases/download/v0.29.1/file_checksum_search-0.29.1.tar.gz","created":"2026-10-21T08:24:15.348574Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:24:15.368042Z","isNightly":true,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"ej91xNUsBxkJFH5lGapMxssJGkxhibGkH6DSRUgarDsuN9C0IZyB7h+OLhyRjsPekzaiJpPx8YabI4pJBkQI7vBmh/B/f/KdiUVqoQ9CnCXYMjbTuGLzN4jxBQTKve6NkG/yWy7G8V1cybwUtwQldp4RQmt0NvZWT+ZY/4BHNkaDxmE4YwnqslCIFJ7G6LTWF4+Vl6+8O35Mv7qrcWwFfD9voTtH02SQcLc/CUstLg02jf0HMPJUnkGx5HFDmPVZ341sPc1PezVJOlxKhpWa76zNXVyx+bDI8mZ1Q36QFHYfNHzOAuWShDTHftvv3FWRKmAGqvCCAsbVR7H3OCW1s55Xy/XdaDSpIZLMrPCGMDrCSes/BNrrkD0l/moi360Zbh3X0ApuffkA43HF6wZ6XSFmmgEoeu89/4QbXrjsUMgAH3r3Bu5kWCjz3IupgCHr44QeRh2wEoe7oM+VtfizB4OUU2m6TMj3wO/LyvCIAMNKrfxgg4LVc7D5boBN4glgWHORahBo8wJO2euUvJqDsd9p4ZopEJDynA7cwzxZM36zk41nf3wN/dTJ24gkHCuDNH/G+y+HJplsmfBsSJvpChQ3E7jPVtflvtAQAsQ2X9QKiKmGicjzdSIkkhmRa49cMT8L/WC57X5ePowarIKVsOgwP2GcNsaMkGb5XWD8DKw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvU2xpZGVzaG93LmdpZg==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvRmlsZS1EZXRhaWwtUGFuZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvVW5pZmllZF9TZWFyY2gucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvRHVwbGljYXRlcy1QYWdlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvRHVwbGljYXRlcy1PdGhlcnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvQWRtaW4tU2V0dGluZ3MucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRsYWIuY29tL21ldGF3b3J4L29wZW4tc291cmNlL25leHRjbG91ZC9maWxlX2NoZWNrc3VtX3NlYXJjaC8tL3Jhdy92MC4yOS4xL2RvY3MvU2NyZWVuc2hvdHMvUnVsZS1EaWFsb2cucG5n","smallThumbnail":""}],"videos":[],"translations":{"pt-br":{"name":"File Checksum Index & Search","summary":"Indexa somas de verificação de arquivos para encontrá-los por hash e detectar duplicatas, com APIs REST, CLI e PHP","description":"Indexa as somas de verificação dos arquivos, para que um arquivo possa ser encontrado pela sua soma de verificação, e as duplicatas dele de uma só vez.\n\nO que você recebe:\n\n- **Pesquisa unificada** por hash: cole uma soma de verificação e encontre o arquivo.\n- Uma aba **Somas de verificação** nos detalhes do arquivo: lista todas as somas de verificação armazenadas para o arquivo, recalculadas sob demanda, com as duplicatas dele listadas logo abaixo.\n- Uma página **Duplicatas**: todos os grupos de arquivos idênticos que você tem e, para quem pode consultar outras contas, também os arquivos de outras contas.\n- **Regras** decidem o que é calculado e quando: em todo o servidor ou por conta, por padrão de caminho, com o cálculo em segundo plano.\n- Uma **API REST (v1)** estável e uma **API PHP** estável para outros aplicativos e integrações.\n- **Comandos occ** para cálculo de somas de verificação, pesquisa, duplicatas, regras, backup e importação.\n- Armazenamento no próprio índice de metadados de arquivos do Nextcloud: sem tabelas personalizadas, nada a migrar.\n\n*Tradução automática: os textos do aplicativo neste idioma ainda não foram revisados por um falante nativo.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"zh-hans":{"name":"File Checksum Index & Search","summary":"为文件校验和建立索引，以便按哈希值查找文件并检测重复文件，提供 REST、CLI 和 PHP API","description":"为文件校验和建立索引，这样就能按校验和找到文件，并同时找到它的重复文件。\n\n功能一览：\n\n- 按哈希值的**统一搜索**：粘贴校验和，即可找到文件。\n- 文件详情中的**校验和**选项卡：列出为该文件存储的每个校验和，可按需重新计算，并直接列出其重复文件。\n- **重复文件**页面：您可以访问的每一组相同文件；对于有权跨账号查看的人，还包括其他账号的文件。\n- **规则**决定对什么进行哈希计算以及何时计算：可针对整个服务器或单个账号，按路径表达式设定，在后台计算。\n- 稳定的 **REST API (v1)** 和稳定的 **PHP API**，供其他应用和集成使用。\n- 用于哈希计算、搜索、重复文件、规则、备份和导入的 **occ 命令**。\n- 存储于 Nextcloud 自身的文件元数据索引中：无需自定义数据表，无需迁移。\n\n*机器翻译：此应用在本语言中的文本尚未经过母语人士审校。*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"en":{"name":"File Checksum Index & Search","summary":"Index file checksums to find files by hash and detect duplicates, with REST, CLI and PHP APIs","description":"Indexes file checksums, so a file can be found by its checksum, and its duplicates at once.\n\nWhat you get:\n\n- **Unified Search** by hash: paste a checksum, find the file.\n- A **Checksums** tab in the file details: lists every checksum stored for the file, recalculated on demand, with its duplicates listed inline.\n- A **Duplicates** page: every group of identical files you hold, and, for those allowed to look across accounts, other accounts' files too.\n- **Rules** decide what is hashed and when: instance-wide or per account, by path pattern, computed in the background.\n- A stable **REST API (v1)** and a stable **PHP API** for other apps and integrations.\n- **occ commands** for hashing, searching, duplicates, rules, backup and import.\n- Storage in Nextcloud's own files metadata index: no custom tables, nothing to migrate."},"ja":{"name":"File Checksum Index & Search","summary":"ファイルのチェックサムをインデックス化し、ハッシュによるファイル検索と重複の検出を可能にします。REST・CLI・PHPのAPIを備えています。","description":"ファイルのチェックサムをインデックス化し、ファイルをそのチェックサムから、その重複ファイルもあわせてすぐに見つけられるようにします。\n\n主な機能：\n\n- ハッシュによる**統合検索**：チェックサムを貼り付けるだけで、ファイルが見つかります。\n- ファイルの詳細の**チェックサム**タブ：ファイルに保存されているすべてのチェックサムを一覧表示し、必要に応じて再計算します。重複ファイルもその場に表示されます。\n- **重複ファイル**ページ：あなたが持つ同一ファイルのグループをすべて表示します。アカウントを横断して閲覧できるユーザーには、他のアカウントのファイルも表示されます。\n- **ルール**が、何をいつハッシュ計算するかを決めます。サーバー全体またはアカウントごとに、パスパターンで指定でき、計算はバックグラウンドで行われます。\n- 他のアプリや連携のための、安定した **REST API (v1)** と安定した **PHP API**。\n- ハッシュ計算、検索、重複ファイル、ルール、バックアップ、インポートのための**occコマンド**。\n- 保存先はNextcloud自身のファイルメタデータインデックス：独自のテーブルはなく、移行作業も不要です。\n\n*機械翻訳：この言語のアプリのテキストは、まだネイティブスピーカーによるレビューを受けていません。*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"fr":{"name":"File Checksum Index & Search","summary":"Indexe les sommes de contrôle pour retrouver les fichiers par empreinte et détecter les doublons, avec des API REST, CLI et PHP","description":"Indexe les sommes de contrôle des fichiers : un fichier peut ainsi être retrouvé par sa somme de contrôle, et ses doublons du même coup.\n\nCe que vous obtenez :\n\n- **Recherche unifiée** par empreinte : collez une somme de contrôle, trouvez le fichier.\n- Un onglet **Sommes de contrôle** dans les détails du fichier : il liste chaque somme de contrôle enregistrée pour le fichier, recalculée à la demande, avec ses doublons listés directement dans l'onglet.\n- Une page **Doublons** : chaque groupe de fichiers identiques auxquels vous avez accès et, pour qui est autorisé à consulter d'autres comptes, aussi les fichiers des autres comptes.\n- Des **règles** décident de ce qui est calculé, et quand : pour tout le serveur ou par compte, selon un motif de chemin, avec un calcul en arrière-plan.\n- Une **API REST (v1)** stable et une **API PHP** stable pour d'autres applications et intégrations.\n- Des **commandes occ** pour le calcul des empreintes, la recherche, les doublons, les règles, la sauvegarde et l'import.\n- Stockage dans l'index des métadonnées de fichiers propre à Nextcloud : aucune table spécifique, rien à migrer.\n\n*Traduction automatique : les textes de l'application dans cette langue n'ont pas encore été relus par un locuteur natif.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"de":{"name":"File Checksum Index & Search","summary":"Indiziert Datei-Prüfsummen, um Dateien per Hash zu finden und Duplikate zu erkennen, mit REST-, CLI- und PHP-Schnittstellen","description":"Indiziert die Prüfsummen von Dateien, um Dateien anhand ihrer Prüfsumme zu suchen und Duplikate zu finden.\n\nWas du bekommst:\n\n- **Einheitliche Suche** nach Hash: Prüfsumme einfügen, Datei finden.\n- Ein Reiter **Prüfsummen** in den Dateidetails: zeigt jede Prüfsumme, die für die Datei vorliegt, auf Wunsch neu berechnet, mit ihren Duplikaten gleich darunter.\n- Eine Seite **Duplikate**: jede Gruppe identischer Dateien, auf die du Zugriff hast, und für alle, die kontoübergreifend Einsicht nehmen dürfen, auch die Dateien anderer Konten.\n- **Regeln** entscheiden, was wann berechnet wird: instanzweit oder pro Konto, nach Pfadmuster, im Hintergrund.\n- Eine stabile **REST-API (v1)** und eine stabile **PHP-API** für andere Apps und Integrationen.\n- **occ-Befehle** für Berechnung, Suche, Duplikate, Regeln, Sicherung und Import.\n- Gespeichert im Metadaten-Index, den Nextcloud selbst für Dateien führt: keine eigenen Tabellen, nichts zu migrieren."},"pl":{"name":"File Checksum Index & Search","summary":"Indeksuje sumy kontrolne plików, aby znajdować pliki po hashu i wykrywać duplikaty, z interfejsami REST, CLI i PHP","description":"Indeksuje sumy kontrolne plików, dzięki czemu plik można znaleźć po jego sumie kontrolnej, a od razu także jego duplikaty.\n\nCo otrzymujesz:\n\n- **Ujednolicone wyszukiwanie** po hashu: wklej sumę kontrolną, znajdź plik.\n- Karta **Sumy kontrolne** w szczegółach pliku: pokazuje każdą sumę kontrolną zapisaną dla pliku, przeliczaną na żądanie, a na tej samej karcie także duplikaty pliku.\n- Strona **Duplikaty**: każda grupa identycznych plików, do których masz dostęp, a dla osób, które mogą mieć wgląd w inne konta, także pliki innych kont.\n- **Reguły** decydują, co i kiedy jest obliczane: dla całego serwera lub dla poszczególnych kont, według wzorca ścieżki, w tle.\n- Stabilne **REST API (v1)** i stabilne **PHP API** dla innych aplikacji i integracji.\n- **Polecenia occ** do obliczania sum kontrolnych, wyszukiwania, duplikatów, reguł, kopii zapasowych i importu.\n- Dane przechowywane w indeksie metadanych plików, który prowadzi sam Nextcloud: bez dodatkowych tabel, bez migracji.\n\n*Tłumaczenie maszynowe: teksty aplikacji w tym języku nie zostały jeszcze sprawdzone przez rodzimego użytkownika języka.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"es":{"name":"File Checksum Index & Search","summary":"Indexa las sumas de verificación de archivos para encontrarlos por hash y detectar duplicados, con API REST, CLI y PHP","description":"Indexa las sumas de verificación de los archivos, de modo que un archivo se puede encontrar por su suma de verificación, y sus duplicados a la vez.\n\nQué obtiene:\n\n- **Búsqueda unificada** por hash: pegue una suma de verificación y encuentre el archivo.\n- Una pestaña **Sumas de verificación** en los detalles del archivo: muestra todas las sumas de verificación almacenadas para el archivo, recalculadas a petición, con sus duplicados listados justo debajo.\n- Una página **Duplicados**: todos los grupos de archivos idénticos que usted tiene y, para quienes pueden consultar otras cuentas, también los archivos de otras cuentas.\n- Las **reglas** deciden de qué archivos se calculan hashes y cuándo: para todo el servidor o por cuenta, por patrón de ruta, con el cálculo en segundo plano.\n- Una **API REST (v1)** estable y una **API PHP** estable para otras aplicaciones e integraciones.\n- **Comandos occ** para el cálculo de hashes, la búsqueda, los duplicados, las reglas, la copia de seguridad y la importación.\n- Almacenamiento en el propio índice de metadatos de archivos de Nextcloud: sin tablas propias, nada que migrar.\n\n*Traducción automática: los textos de la aplicación en este idioma aún no han sido revisados por un hablante nativo.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"it":{"name":"File Checksum Index & Search","summary":"Indicizza i checksum dei file per trovare i file tramite hash e rilevare i duplicati, con API REST, CLI e PHP","description":"Indicizza i checksum dei file, così che un file si possa trovare tramite il suo checksum, e insieme a esso i suoi duplicati.\n\nCosa ottieni:\n\n- **Ricerca unificata** per hash: incolla un checksum, trova il file.\n- Una scheda **Checksum** nei dettagli del file: elenca ogni checksum memorizzato per il file, ricalcolato su richiesta, con i suoi duplicati elencati subito sotto.\n- Una pagina **Duplicati**: ogni gruppo di file identici a cui hai accesso e, per chi può consultare altri account, anche i file di altri account.\n- Le **regole** decidono di quali file si calcolano gli hash e quando: per l'intero server o per account, in base a un modello di percorso, con calcolo in background.\n- Un'**API REST (v1)** stabile e un'**API PHP** stabile per altre app e integrazioni.\n- **Comandi occ** per calcolo degli hash, ricerca, duplicati, regole, backup e importazione.\n- Memorizzazione nell'indice dei metadati dei file di Nextcloud stesso: nessuna tabella propria, nulla da migrare.\n\n*Traduzione automatica: i testi dell'app in questa lingua non sono ancora stati revisionati da un madrelingua.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"},"nl":{"name":"File Checksum Index & Search","summary":"Indexeert controlesommen van bestanden om bestanden op hash te vinden en duplicaten te herkennen, met REST-, CLI- en PHP-API's","description":"Indexeert de controlesommen van bestanden, zodat een bestand aan de hand van zijn controlesom te vinden is, en meteen ook zijn duplicaten.\n\nWat je krijgt:\n\n- **Geünificeerd zoeken** op hash: plak een controlesom, vind het bestand.\n- Een tabblad **Controlesommen** in de bestandsdetails: toont elke controlesom die voor het bestand is opgeslagen, op verzoek opnieuw berekend, met de duplicaten ervan direct eronder.\n- Een pagina **Duplicaten**: elke groep identieke bestanden waar je toegang toe hebt, en voor wie accountoverschrijdend mag kijken ook de bestanden van andere accounts.\n- **Regels** bepalen wat wanneer wordt berekend: voor de hele server of per account, op basis van een padpatroon, op de achtergrond.\n- Een stabiele **REST-API (v1)** en een stabiele **PHP-API** voor andere apps en integraties.\n- **occ-commando's** voor berekenen, zoeken, duplicaten, regels, back-up en import.\n- Opgeslagen in de metadata-index die Nextcloud zelf voor bestanden bijhoudt: geen eigen tabellen, niets te migreren.\n\n*Machinevertaling: de teksten van de app in deze taal zijn nog niet door een moedertaalspreker nagekeken.*\n\n*Machine-translated: the app's texts in this language have not yet been reviewed by a native speaker.*"}},"isFeatured":false,"authors":[{"name":"metaworx resonare rüegg\n\t","mail":"apps@metaworx.ch","homepage":"https://github.com/metaworx/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhPPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE4MTYwMjU3WhcNMzYxMTIzMTYwMjU3WjAfMR0wGwYD\nVQQDDBRmaWxlX2NoZWNrc3VtX3NlYXJjaDCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAMuMdLedaYy9DYcrQNehgUaGot8dp4Sqt91PoEuika6rDJrI+gL3\n9/J3lgU35OatU/Ka+W4phibYp3S6ZLzJ7iMkkIo/KrS236aHo8UZFiDm3AKQScyS\nmqvhVnLJlD/PEgSGGnNG5nFcCEta54OtLBdwD6A73dLkP4QidgZ9E0V81Gshxaga\n+R03AbZ3G+k340JCunMAfZD74yhtKV6QwyQ8K9B3AfQHJGcq8F9c4Cf3VVVBBXtw\nZj/rwezcbTq8uSgFdU1VaAiIDEuRWyRD9+FDegdAcdk7GmboUa3opJRyVtYH/8xE\nSjw6GKbG/PkMudqqW9HFaB9yjUKMi/tsnsp4c5T/4emSFrV1a+mRXY203VH+pUWy\nPl5umQKgVos8XViTNpfYQdzuHQc+wzy6IWFK/GVYYX85wgXh+rSZv8WwaWqUz6Bp\nJgLaNQ1Q+SxkRyBkRa8m81YP25eYjstkzMFm29RGPsq4KFZXZ+VEPvVnqqlXnEPw\nUpDSkFppA4c8kxCUrB8Dmol2ihJTq6OBYb+a1yiD6a5ubLM73A/ePL80lMIJR+Nu\n/7gp4M5hCiaaW5T8F4ZG4YsbVpHLoW4/GpEpArnCa0QiThJYKfzCaoL8cz6nWFLY\nAXRZIy/bU+FjWMEwAXQeO05hA/eHOFeVrtbo38u7OvaEpOyJGUhb5gWJAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAHFersjJfHZ7JxGgjL/8DI8dZ3y4x4nBsG3Ha12w\neqW5d7S2Mh4tqoNy6kHoHtBAtxBKdMsPbjRvE4LpX6CAUGTEKtfLEeo5PYEAY9Db\nTHbVNB+ZYhTLqP5t5vm+2mdWGcGswC21Z/t7aRd/eU2lm/ZG9Xke8knOx26MU5/o\nEgNJw24/AnYbLIVZtdOIOmQzyGOVUj5+bZrAlg5H+hIYxqK0TgPHULTZs9Cjy/bQ\ndvvh3y+jdYLFJWGbye5B2GdqWYilmYC7oS3yw9yuevYn5sYKVdyTr+y5vTm3jAEl\nFw6+6HFrjFRFhjw5C4ba26ldFK7tt695j6JtcHrdkmzc7Os=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"urbanduplicati","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/UrbanTechIO/urbanduplicati/issues","website":"","created":"2026-05-09T17:38:11.746489Z","lastModified":"2026-10-12T16:51:21.939503Z","releases":[{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/UrbanTechIO/urbanduplicati/releases/download/v1.2.1/urbanduplicati-1.2.1.tar.gz","created":"2026-10-12T16:51:21.932158Z","licenses":["agpl"],"lastModified":"2026-10-12T16:51:21.971279Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"Lp4HIlyAntlOEWVBDQ/M+0ffEKASKDx0kNqZj4uPsP3eAfTv8t9ELqawUMo+56fwAFQNe5dKTeKN3XZYcWHxRgDj9cZjXillZKJOHBI4Ck+uS/smkEmB/e11+ZmrlT4vllZPMeNP9bjUYX32nYJAoqETzydU+4N+h2+o086sF971Ls4S65bXnH49O42o8oJIAXE5BYaVFtuKGjGGgwBfjWxFD5QMj54srCvSrbIR53ZPqjBMxcjC8Kd94eQ1Zs4RvRZDRW6TvJ2caW3J16MapM5I+Gj0CdR6OKcXDBeUHlW9Q9QeNaeY4weoiIn2F2yOzCXPNuLHpmgBoDA1PB5d6CDcOidpHH7O4fNlHTD7wLRt8cjlrDbBWD4ytOpY6/wi0ljDbzTO4gvA1LAV6Zu+JFgN2evq2GdUW68tWikJhvREWGIC4o1QK6cJ7gwyH2XU1YCZqgNKEYeok3lpSEXGQ0kiTPFPkj8T3LtmslLpuBNjO+ND6vUF3Kj8zquRIwEKCE/a9cX15kEwPsxEohVPGi6X8UtXQrlrSqUyNvJjZghBDwiJTuHTKM+F24tLDCwZ7FRn0QTBCd5NsWvFuzNGMunncrbuNLrpwxdKoUI4RJSsOgoQi9Aq1i/OZ8Him8dG4WA0WlKXqp9Er/HCsEbdTee6CQcyi640vdAgUmeLl/w=","translations":{"en":{"changelog":"### Fixed\n- `info.xml` now validates against the Nextcloud App Store schema: removed the unsupported `<command>python3</command>` element (the dependency banner still checks for Python at runtime) and fixed the order of `<settings>` / `<navigations>`"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTEzMzEzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20113313.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTEzMzMzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20113333.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTEzMzUyLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20113352.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTEzNDA2LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20113406.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTY1MTIwLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20165120.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTY1MTQ1LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20165145.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1VyYmFuVGVjaElPL3VyYmFuZHVwbGljYXRpL21haW4vaW1nL1NjcmVlbnNob3QlMjAyMDI2LTAzLTMxJTIwMTY1MjE5LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/UrbanTechIO/urbanduplicati/main/img/Screenshot%202026-03-31%20165219.png"}],"videos":[],"translations":{"en":{"name":"Dupli","summary":"Find and remove duplicate photos and videos","description":"Dupli scans your Nextcloud media library and finds duplicate photos and videos using perceptual hashing algorithms.\n\nFeatures:\n- Perceptual hash detection (dHash, pHash, wHash)\n- Bulk delete duplicates with one click\n- Filename filter by glob pattern (e.g. IMG*, *.jpg)\n- Folder protection rules\n- Keep-from-folder option for protected duplicates\n- Select all groups across pages\n- Storage savings preview before deletion\n- Audit log with CSV export\n- Side-by-side thumbnail preview"}},"isFeatured":false,"authors":[{"name":"UrbanTechIO","mail":"","homepage":"https://github.com/UrbanTechIO"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhMnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzMxMTI0NTU3WhcNMzYwNzA2MTI0NTU3WjAZMRcwFQYD\nVQQDDA51cmJhbmR1cGxpY2F0aTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAMf7uR3OwzfVXeEWI5Vl6UVpAXR76qWZ83RRoMBK8ZHngtiUlcTdo0Su4hfe\nxI/Ndh3I/9KgxvLmUGXTIQuK59DD1XY9vfOKzcUXaSYf45ysG4zJeZTQxw1rTNXE\nln2nPyTMLj+SgxwRTrXaSMu2nopQ2TkmwzXnoDxatNSGaohcAQOfNlviO0XWAAzN\nY37gyYfKCuRP5D3CXa4tOPA1igE7Cc9npAn9/rEmqTkBYABsAyUVpiESSDsalGHX\n22tL4ABM5xS9zEZ7ORC1UmqVU5MxzTDsTeGuIeqfJEaQyGMFvUT2ftySj1m+OJQA\nv53v94hxf6udsf/DzXdS/2qEwrLqEscGwC4HAB/9rUAuRG1k+B50M3gdGzICsR3u\nmNowZ3ts6vP0r/f0B1V3DKlFafdo9hFxE+p1oZoqrewWiMo8kiRpV64V3Asf+iAL\nVzWKl4pV0P0fb3anK8KJxIw6Cze3VseEdEExl2YQZRdPRdPWL8R4D0eCnFGHU7NV\noARLXxlajZZ/wKcCpGD5GUaay4BxJ/LJSgTiryWZyDv/jxr156Ws3Rz7QGjBWSrt\nsygQWqPWjMvz0+t4/rEm/XWvifLD+JTwQrvHa2jpTImpH2zQXCnTMPmAHnU1ABhR\nm3xG7J2UDC5PN5pezNNtXlXPErLLMgIONbOk7mLLzPL/yh4xAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAJE5gTyEdxHhXG1zlLhNXqC2P0dWx198w4a/e5QAuio7PBuR\n/bHOi9TN9befN7XhusdWtHXOZJjBoYaMjEXkJLB2nlsFY3AKV6/ctcXkN7c7sLS+\nOJMUeub35hYfUir1phyc93QAYSAwn1k5cuCM81KY4fTKwA0+Aow9ubzqjFSSvsao\nW6zMiyuboIkb3oxxQnv/mLNp5V4hZPvD183/k3X7Mw4FJP2lgSmQ0ooOFujXGk9H\nrEfuekvNbgmrCP7U5X2FBJIDoZ/JrRBV7kJd1mcT0LaxKCmNv0BdTMXhhVdQHXqD\nTEvRtieIqy93YAa8jtm+XL+plD3T4rW1QDo2d6w=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"vereinsflieger_login","categories":["integration","security"],"userDocs":"","adminDocs":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/blob/main/docs/CONFIGURATION.md","developerDocs":"","issueTracker":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/issues/new/choose","website":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login","created":"2026-10-09T14:53:05.410456Z","lastModified":"2026-10-11T15:00:39.776337Z","releases":[{"version":"0.6.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/releases/download/v0.6.8/vereinsflieger_login-0.6.8.tar.gz","created":"2026-10-11T15:00:39.717353Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-11T15:00:41.750409Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"oP/v4a9JCoJ4s18xRUMyj1x2T+QyNs8MP1RHMULrt6Db0O1Mpgq3a6HpqtFd/ei02KEADHq5qP6FeHNZ2Tz4Jjw+OuZbfNDHShD8+1dEg3oBgoHt/6QJnySmAo3Ha0VuuLigHN2KwBcXFA13QTNQXGOgq5/FS7s547Nr2cw2JDpxJCl+u2QtnHHMaWSBI1kyJjGTsuVIAtUkYlZsTA0iLT12U1cA9pnD+5eY2OdJUxMj368ig0RouVAEErLEJLfJOgV6BDcT8TSsAe9LQry1oGUtKsrSkQm+wFRhCGaEZAq/B1UzPB8KeWlJmrzQOBs0U5QbwCniYJmRmUeo5VfaBKEteu1exVYrtUFpdDCHrrga3L+DG90ceBfOh4X7mrDGPw00bBueUJOFEoddI+HlPmFWVn5lwc4W1vYiHOYvL6w+Ihd8ybCMzcO3UnVz/bwMm1Iz4knOTHrvNpP1JRiRD/WAdmR7tcNP+cbgAq0RoeCgLfkTqjF3KTmIHVVmvCHIQL0uZCHAFtPZdQ7axaOrmw7iONsQypdlW3XRQmEuSy0ED98i2ryoPlR/pjem/0M2Kv2+CsGCgNIZu/IYQGV3zjruYvM/eybNZp+JB08nNPU4qBYTggKG1DvQnvM9tL0U8MNlNKJJ4rUuHSOrnClKvxgsm+67oa8s9IQMEtyzA7E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.6.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/releases/download/v0.6.7/vereinsflieger_login-0.6.7.tar.gz","created":"2026-10-10T07:31:25.420496Z","licenses":["agpl"],"lastModified":"2026-10-10T07:31:25.483272Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"EWcSYdWV3ulvg1pDl3KCbXPU2DBmtnlb/6xTsKk2YApPWjvLjCZ1bT3uoOXHHBz9oELuSxW0xGBPdRgGqJeletuFHtNxsvxL/wBMbiN0wU+zn9WjwHoYha4jwCf+EVjDmB3DMkT+mWq2S98NFcMP5zgu8nt1YQAEf4D2sPa3PnAhgXTy5xIchbDJtCi0HIDOA9vY6UmhjNaB1W0WxJoN8f9SVQ61ECZo/FUCe2ywltGmt9WtviAP4BrdQ+Nn3w9tlKswW4flmxXcupR6jVo7SF9AwNuTWMdwouTRI0neVakownYLB9ZycS1tH3XDIEjh4ZM1k8KKQ7S2OMOR8oHWk8RrhhHlAq0GMJxQVkAd+X6DDJ6DDrOkPpyYyP+l63etfn2Qilhm1EqoAmZEU573nTrL169dZOFftA07w0Xz48vRiRp2PI2roe0054kppTJbmB+kxqmjS2u425Q0gLTg6MQHFAslIuSz0cBISpTfPEyjWaLRY5DrjgWprAVCuXGf9ViZzYPKeYlaApmvh5YxZNVZ4DVsagk6YJ9dhti8ZHagm5TDQOUdpmtPsusXN43sIPui/gHKMUAFZYfeUqrOJ371bM0cHOCOQbrOQMLejBM+2aqQwx7oEey6FCxG+uLINpSR0aCJSukzhSMiOgJguIMflWyDlYTiRnrKDkAyF18=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.6.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/releases/download/v0.6.6/vereinsflieger_login-0.6.6.tar.gz","created":"2026-10-10T07:15:29.375038Z","licenses":["agpl"],"lastModified":"2026-10-10T07:15:29.436653Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"RNQpRb/1b6+uRZhLGUvjV0BL20dpQFqC6ptb73e4Y0mCUV0p0ZoN5AtQhYBD46ipzHNBjbxBvaiNxPTLvQTCv5b3L036DBNqTWNz0b03yiaU53BTtuJKBk6TCwUYTO9uz86Z1omDXcoC90zFtXRR2i22Kftc1iIZu3H8L7N+yyakQnGGTwVrydjWVSy2h1rwC+K0SUJkrT3hmKwWf7DFOYjnjUWJGzbvHml5LfHsXBcZpIOU3abB0i3X9UKy/jX6Xxzj6b0dmkQ3yK2jX35ETWfc7EnOIn368U+HRrE/lYg8TLvsGOmYmBrm0oDY04cDPhHNGViYOZ8oTsT7/fW0BajDNh6dnLOTYw+Jd/DNX/tXfPDOrycn4QyTGxEDuPBhcjjnZeIg7fDX78uk3mxTVe0AbP+72G4oFH0R2pt6NGFFM7vjexwOp1bIqf+dsXyAFsCjhLnQQbJPRBaZ57zUceA6XCJtkSejkM5X2yC6zv0uCiHyGKrH9bgBrxrjMUFNqRNOWR+DDfh0Z7nM7pppkA7gI+ju8LdNS9cyWh9x4irUjRjxBlaZ9R1hukC436bFbuW8qF5qfrn4bJJgJBPX5t7HI7+sU2VsqMaidNL18Y6uHEYX9+B1MdL+5cOBDlhongBs3Ppm6E1waR3ywq5J4BUsNdNhC8oJtVBrAk4c7Jg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.6.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/FISEChris1337/nextcloud-vereinsflieger-login/releases/download/v0.6.5/vereinsflieger_login-0.6.5.tar.gz","created":"2026-10-09T15:00:54.412875Z","licenses":["agpl"],"lastModified":"2026-10-09T15:00:54.551497Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=33 <=35","signature":"nQ16cqqwLSdfymVqK/GCSB+yNGVT2pviYego/4y6E5XKZ+SNTAZxWKtvVzAiOs67Z5qhyF8jbvHzD+xyX+lPGCNsoLY6wk6h/jegvH/6nuSHz8h7mKMDD4p1AWq0Qu+Yi88QjHG7oqHfSikPi1AwZ93tyNOhkJkjzbyC85OGNimTJT8NOHLEw1/1BSRa2CasaPdsv+Efnnmv/Fau1lMakuOkWmgRE66ySQbIrw2sixEg21E5h2ihtoggTkRWj9HLitQFDHFBxieMN4eM6kw4N3G8l718VAgK68EUAnCnk2KuQAaA0foeRAGrmbkU9yiRgx5wBn+B04vuinphU1kA3w2goiUqusNN7hvGgBgRJheqPw/dxC7biclzObQ8yw04Ux2Sm0Ga4X8cbksFBAd0sqwvOPkdgFsyT7OA4zSPJ7uk/cN6/N6QU/ysf+totJqEfcXiWVGOjEvadE0xpEFWpxImKxUu6qMVOyC1KbEhl/vqiT1AE1dxbwv0+JjAHnFFRYdfTixEJ2A/xh0U4wvFbdol/MXSAjosAYb9W8D2vQxyWszL1MapZRmeA6+Ok5+XpkfEG/p+O6fVbLwsj/XyM+Pd8KFImO9n7fWzF9u0WDeErnaFrm1PUo4WLpch0ZxjxjxETe/rTPdydU+FSzisPf1wSrE1O+JuewpqHrBRlbo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZJU0VDaHJpczEzMzcvbmV4dGNsb3VkLXZlcmVpbnNmbGllZ2VyLWxvZ2luL3YwLjYuOC9kb2NzL3NjcmVlbnNob3RzL2xvZ2luLWRlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZJU0VDaHJpczEzMzcvbmV4dGNsb3VkLXZlcmVpbnNmbGllZ2VyLWxvZ2luL3YwLjYuOC9kb2NzL3NjcmVlbnNob3RzL3JvbGVzLWRlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZJU0VDaHJpczEzMzcvbmV4dGNsb3VkLXZlcmVpbnNmbGllZ2VyLWxvZ2luL3YwLjYuOC9kb2NzL3NjcmVlbnNob3RzL2FjY291bnRzLWRlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Vereinsflieger Login","summary":"Vereinsflieger SSO, member provisioning and group mapping for Nextcloud","description":"Let your club members sign in to Nextcloud with their Vereinsflieger credentials.\n\n### Sign-in\n- Vereinsflieger sign-in for members of the configured club.\n- Native Nextcloud sessions, Remember me, two-factor authentication and app passwords.\n- Selected emergency accounts retain local login. Linked SSO accounts cannot use a local account password.\n\n### Accounts and migration\n- Optionally create new member accounts with first name, last name and email.\n- Optionally migrate existing local accounts through a unique email match on first successful sign-in. Disabled by default; enable temporarily for a controlled migration.\n- Stable Vereinsflieger IDs keep accounts linked after email changes. Verified first and last names are updated after sign-in.\n\n### Roles and administration\n- Map received Vereinsflieger roles to Nextcloud groups. Local memberships and admin rights are preserved.\n- German and English admin settings with account links, role mapping, API usage and configurable login pauses.\n\nIndependent community integration. Not an official Vereinsflieger product."},"de":{"name":"Vereinsflieger Login","summary":"Vereinsflieger-SSO, automatische Mitgliederanlage und Rollenzuordnung für Nextcloud","description":"Mitglieder deines Vereins melden sich mit ihren Vereinsflieger-Zugangsdaten an Nextcloud an.\n\n### Anmeldung\n- Vereinsflieger-Anmeldung für Mitglieder des konfigurierten Vereins.\n- Native Nextcloud-Sitzungen, „Angemeldet bleiben“, Zwei-Faktor-Authentifizierung und App-Passwörter.\n- Ausgewählte Notfallkonten bleiben lokal nutzbar. Verknüpfte SSO-Konten können kein lokales Kontopasswort verwenden.\n\n### Konten und Migration\n- Neue Mitgliedskonten optional mit Vorname, Nachname und E-Mail anlegen.\n- Bestehende lokale Konten optional beim ersten erfolgreichen Login über eine eindeutige E-Mail-Zuordnung auf SSO umstellen. Standardmäßig ausgeschaltet; für eine kontrollierte Migration vorübergehend aktivieren.\n- Dauerhafte Verknüpfung über die Vereinsflieger-ID, auch bei geänderter E-Mail. Bestätigte Vor- und Nachnamen werden nach der Anmeldung aktualisiert.\n\n### Rollen und Verwaltung\n- Empfangene Vereinsflieger-Rollen Nextcloud-Gruppen zuordnen. Lokale Gruppenmitgliedschaften und Adminrechte bleiben erhalten.\n- Deutsche und englische Adminoberfläche mit Kontoverknüpfungen, Rollenmapping, API-Verbrauch und konfigurierbaren Anmeldesperren.\n\nUnabhängige Community-Integration. Kein offizielles Vereinsflieger-Produkt."}},"isFeatured":false,"authors":[{"name":"Vereinsflieger Login contributors","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhRcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTM0NzEyWhcNMzcwMTE0MTM0NzEyWjAfMR0wGwYD\nVQQDDBR2ZXJlaW5zZmxpZWdlcl9sb2dpbjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBAM/emWi+DPVURV4S3hPlHHsW2r1YZ5TSx2zTcJ4xwiznCH36AZh/\nlUaC+gNSUZpOLScxYcgSam/H1OXmhiNcdFFVo9MwCSRGzsAkWvgQR/nGUNdeOwVZ\nyh2QiSNahshFrTEa9htCvOHRloZWzg/3/juJu+uNo34YDgYNzB2pMnb1etOQSWC2\nOQeseEUHwXEJBB7KElKTh7Pe/6tfniPjVgqF9Azl7HyeLP8vW3CGF6/yj4N4ouPE\n3Zs6f+BMPxW5WlHdd69mqthpkGJa6TQ3cnx734QdKjp7m+KpJ7gw9BisYJLfoKOV\nGkibZI5u5grF3PIdsMgfPBStWnb6ASRmR4DY0ljAUmLYJ+Mi8kTGkkb3xP7MKS7K\nKIxHhybWRzRYWwdXCQTK7SSvdF+P1n9Zn8eLrMhyrWzJXG++94XohFq/o/UURM+M\n6xtvirid1bYGLFb9Ota+SAcm+0bXzjZ5B4AooMIj65Q9o9lhSziAIm2MSbRCpZqm\nqVPa7XM0ztv3z5nK4d4PpXPK9jTCYObVq9crXQ0N+lGqjHs2rCTH25bbhoOhpPON\nL/ggiOLl4C34wZzLSRwBdDxPidDrBqDbQnLKeEWNpMzlfxqqiYNwTApCkc6OcBC2\n6OA2+zU4GzTm8vwdp1srsPk/VvGeiQiBqxGliga/0jqbVsF4cXQCBnCPAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAH7QX3OJf7cXe1ZEGYn8SzteMPjNNQsV/i6NHwRl\ncs0TSPwfJLTlgwS+5tY3nOWXXk3XIdVFhrQH3CprlE5S5AO9n2rC/H6wKZg+nVj9\nvetkijFovjIkC6S5dAnai8z+lFWgnWy/wVXL5o80WFyCs5qbQjWX3dBuGYaq5lXK\neg19ONu9fI415OSoiJXHZH5TKLwD3EfBvcwp0bkD3Re4Vj+dFLxA60acwP3GjaP0\n3Chjl6XZVWyvAXqZoh2D5ogUvNtN4vj0FEKxKHbbYSVQhBIr4nRbBHTM9VK5rSRc\nvVYRtwU4/PbdOjh0YLPhhn+7RXFem7kOekdae52TCin3NDA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"kooksession","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://codeberg.org/badscooter/kook-session/issues","website":"https://codeberg.org/badscooter/kook-session","created":"2026-10-07T18:03:37.480976Z","lastModified":"2026-10-19T15:48:23.425913Z","releases":[{"version":"1.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.6.0/kooksession-1.6.0.tar.gz","created":"2026-10-19T15:48:23.418131Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T15:48:23.488641Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"cK9ud1ZsTklx4InxT9ErQ1gnLS/YdCmupNjjf8qbHZ0RlezhMILvEK3FSFA5DoJG\n/2dBPCixBl4pwgM9/WeGpTx96YXJsQhW0FqP0/JmrYIsXuG1WGYpTnlhKYcZpFvp\nzPrl9pdBaQPmzwc01bAlZfDegh3UHsRrlE9wMA3c72xiW8fGjVQlKhgPcFvQ3utF\nVo/Bmp9REBI87WWxeEDKNeMLSeudibq1GdzAN0hgVk3VNcWL6FwZmoeAjkgoceGu\nonOXwEKCVVOzYhYPyOsCpO3xFeUm4DkenJeEsjndMnY75MtH/G8Mm8SfC0v79VdP\ncsbijfLNogRgtzLHvoD981g2HaSU2YaGwsEYkXuPvkWQJHVI0uZi5F2bGEgKKmW9\n3ML25PjtOMWd7DnoUdbq5j6BwHzBsL1UfmbuIwTlL9dWbTa+eVvPsyhxzpvFhLS5\nR8EM29yi+RyNohLyEAj/25jkwz8XtzxSuRIpyK3KQjvvhr+5EXlOKstxnYrWkYWX\nzi6FBeJN2wim6W+ULZULUKYyf+ZlPK5/EIe70VVQZ/G4kjnzAesYRsoN0Bv2Z8De\nlW+ixmLpn2jciIucguXXkkuWLieVjD6AuwjV8cmGEjsOgcz6ThNgtWtK+a97FpwP\nrNSBTEr4i6JMR97m4UXrdXse70Y01vYroNUdnfcjumc=","translations":{"en":{"changelog":"### Added\n- Sessions: a new session starts with the sport, spot, equipment (still active) and water and air temperatures of the most recent session; a short note above the form says so.\n\n### Changed\n- GPS track: for a new session, the sport and the spot suggested by the track replace those taken from the last session."}},"signatureDigest":"sha512"},{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.5.0/kooksession-1.5.0.tar.gz","created":"2026-10-10T16:31:21.554917Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T16:31:21.645022Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"bQmZl1TYT7XfnfN5Q0UhPsaLRZuXObWyfYGgTtuTgHXyrJnI+VKQ+SY7YyEhxr0m\nk+Xa4CFaJAm2mjqRWBogsoIieTMudupAuw6tF08XTobDdmc9uVZzY9zKEFD+Foxr\n0okOAXc/AREackWfLrFJMn4MntX0ByPz5HhlcUSI3wd3C92giJM+L/svLAKKYv4p\nWu3DbC3GxydluHuITrgNImpWTC5Ftwe/8iGNo+p6YFQ7oR3YdxfPlPiZePNISU9R\nN24EUMWV+92Xn5asFNjp7oVOH0qUVsh28vAdTYal5B5kLLkRXS6ISpX3q0NicjxO\nPfTZCXXyt2YiSw2Q0gmICJLVW6Pc+RsbMZiNqyP872CpgZCuXeHMxLBsVFt5Ih8n\nL9aqcyFVknUs0DwPZ00oWxDxEHFPTtQdIhm2ew6ilwfJFr/aD2gB8YMGmIw/3967\nLE88PYdamfQRGhUC+s50Sxy3iBMtwVX3KPBPkbXlb27J+7o+qBjM1ZkmQE5KDAFx\na+aHk3ND56S/XttOlUIumw5tWBTpKpMztbdV2TVTOElPKDcf5qgL9R8hrhteHUkB\nMaKCG2OxWavabiRWOjs2tIMfs99jShTxk2KFYPY9n8KeT00CJn0COWdav44dXJyo\nH7y0qRc0MYb/HWRGqI/1DGg51QFj19XusfDYbUMPXQA=","translations":{"en":{"changelog":"### Added\n- Sessions: search field under the \"Comment\" column header, keeping the sessions whose comment contains all the words typed (ignoring case and accents); combined with the other filters.\n- Sessions: \"Buddies\" column, sortable, with a filter under its header.\n\n### Changed\n- Buddies: the link to the sessions with a buddy opens the table filtered on this buddy (filter changeable in the header), like the links from a spot or a piece of equipment."}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.4.0/kooksession-1.4.0.tar.gz","created":"2026-10-10T14:49:50.379374Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T14:49:50.426629Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"Efs4bJvfuMQVe7XkMbCyIw7vJ5RNL+kNnqy5HR/UO6BAdVWn/Wdn57+ouE7DNPRe\nL/+PVCvAtqpkcntxPw013VBTrFnYVyqbzfaTPQ2G7xVKAe1yAwsVm97sZQ9nXdXo\neqo9X398RN/3ZDFBMQKBoBJHu3Omt8t4EnhL1Cf8pKzGuCym1GBVzIHeM8YHVlWp\noR1/Lx+Vvt874XWDkh+MVePuLVK38UL3ZwQq+lTtH3hLHratlCqb5vJmmckAHYm2\nYPIQF8/dwBM6Mp2VrwJK5yLQ4JXcKmX/KzswpAdFXsPk1/alHpotw/8Y9CKiMaM0\ndsuBiKCwTH+I2sl7te2BL5pXtHrmmYUHKfS/Fa4UUM4iohwvwLGDE0OHDdGvj9Pb\nHo9kyXsrPExZphOcXrB4Qrh170NyBE0AQX7hZjdA2GsGx1lakPAgewUaV/jVASqr\n6L3ToHeKLGeRfjNkuma6AD2tcKZB3tChhBjBrNGeglXwIkxL6oEgoOzkFT5Nrtx9\nkNKsJs+yH/H7ziV66+F3ge6Tr2kCPBSu26PJzQPsiLk32B4pAFeDJgQWQ+XxaRLJ\nWFVzdlN8/D4rmlnwI+wI3JyxEizofob55jUFKPF2fIQyPFKihyeySNlm42rVYTZk\nji3VO8V7OkM7cfyHDq7ERTDLBBjCfoxNh7Q4KPv+MYs=","translations":{"en":{"changelog":"### Added\n- Sessions: filters under the column headers (year, sport, spot, rating, equipment), combined with sorting; \"Clear filters\" and the number of sessions shown.\n- Spots: the number of sessions of each spot (list) and a \"Show the sessions\" button (map bubble) open the sessions filtered on this spot.\n- Quiver: the number of sessions of each piece of equipment opens the sessions filtered on it.\n- Sharing (Share button of a session, a spot, a piece of equipment, the map of all spots, the statistics or one statistics section):\n  - message: text ready to send by SMS, e-mail or messaging app (system share sheet, or copy), ending with a link to the project;\n  - public link: read-only web page for someone without Nextcloud (photo, map, GPS track, conditions), valid 24 hours (default) or 7 days, never without expiry, optional hiding of the exact spot position, revocable; built on Nextcloud's public share controller (unknown tokens are throttled, links disabled when the administrator disables public links);\n  - send to a user of the same Nextcloud: copy of a spot (position, description, photos), of a piece of equipment (characteristics, photos) or of a session (date, times, spot, conditions, sender added as a buddy), with a Nextcloud notification; the recipient adds it to their logbook or declines it.\n- \"Sharing\" page: items received and active public links (copy, open, revoke)."}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.3.1/kooksession-1.3.1.tar.gz","created":"2026-10-09T15:37:02.811104Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T15:37:02.876506Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"UDMo9OYZUFw4Qg2oolOU2UJZvoCFsCwDUswrVtGJlTWaL+dfi1C6JwmE7li4nYZ0\n96+3x8bUT+x8yIx2TJAA17fWh/nLKoqc6u2cbQday2zjsfPv7P1qa4nEIGnYSVab\ns9wuefQV0WCTZ58ySdU+6tPs0bKtcnQ21QV05tzjCPL+axGBtOOz20PHJ63ezsoN\nDGxmXMp78nJZbF1bqEUaGlwu27vilJc+LxBWUMMyoWYZwYz0Dz4sgMu43alg7Pzy\njPqWKNfLXKgkEaol2xWaBhD7c8wCOhIMKlwyyQmZi7G4QTlrWJnA//zhklqSSnjw\nEO09LnsFzkPKcM7+niQdQ5ZNJGy7frOY+FzzCuiONegmsGGl8uxeBx6zG0cneNnz\nHfuIxzlhiULZeBuJ0u1isc0KYOE6d6kF6i0lU+EBo+fpbRjB5+SCd93z5S/iOFRl\niOgSTzlQv+eyG+yavWIHERxf2aC3oYWdnXEKM1SeSNkAUvoSaCVlePRx7fPPBTI3\nxlQ0KwGHg8iqwkJYhVS1m5gIYzSwKp56xOvm3+tnknCIy8PiSdyiCI5O+BrTfby4\n/i7YEAOE/7af+JyoacnXd9tcB3P+wfcbihbkvT/nsNiirFi8DQfBOVfc5PRlxVfs\nhKfCstXo+kGxX9HlM4sPknmANfMcbcYKQL5Q4iUzUfU=","translations":{"en":{"changelog":"### Changed\n- Statistics: each section can be collapsed or expanded by clicking its title, with \"Collapse all\" and \"Expand all\" buttons; collapsed sections are remembered in the browser.\n- Statistics: 5-star sessions can be filtered by year (all years by default).\n- Statistics: summary at the top of the page (number of sessions, years and spots); sessions per month show the change compared with the previous year (at the same date for the current year).\n- Maps (spots, spot position, GPS track): full-screen button."}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.3.0/kooksession-1.3.0.tar.gz","created":"2026-10-09T09:26:06.271980Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T09:26:06.360214Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"Xt85cMgly0fjPvmz8RLHgSZqg9Ct+cR9TlSeUh9SAD4YUZzgK9CT/lytrv/CPlme\nHepjt0iaE+nN15zxk8h03uMcNTq1Ac4V4J0Bl3VaNX3MiVZSNUXTn2W6gsGXw7u2\neBI/N90OrtfennT79jD/oz4PdgLE/oIT65ZhgJPTPkS9zycthilN3ho1+mr/g7du\n0vg/X3cHe8vnuTOl5JpJaqZI06S7kwjJep+TwiJyUAfHsoTWDBT1fZ9L318df6Yb\n+sQ5gSGA4GtgUzedMLMlisWjun0a1W+fyvb+BKkqPDMFdKPYmhterV4xjoY2E7mQ\nlQvSmm27lJmddhbMPgL/1LWMGYPZKI5QgaLVdxT360gyY8T4szxiu9R3ixebT5Mr\nkIs/1Ti8bJGGBCo0rVUwpB7LDMF8MEx5wBDvhvv60PdZB13bRO8oOhAZp2cJi16v\nKc+fXzbjVQaSdRN+L+pB9gjAbTVikTt29eh2K6D9+H7GiJZ40GdV7/cB7cwkN4Xl\n36cfeMb2+7nQnx67S5NQOPsjS1CmbWSLloaOxGqLZao9QT2YFT0fFYOQhm7btx6T\nNqezvSNIV7Q7+B/ycSa12s+Us42G3SvW4rTB3GhlGVNlTqEP8swlp9PuKt66DYKw\nZQuv9jTVIdCaSunwBdsbuGL3A19y7CsyUWVRhk8luoo=","translations":{"en":{"changelog":"### Added\n- GPS track of a session (GPX from Garmin, Strava, phones…, or IGC): import in the session form or with \"New session from a GPS track\"; map of the track, distance, duration and maximum speed. Empty fields are filled in from the track (date, start and end time, distance, maximum speed, and for a new session the sport and the nearest spot within 2 km). When no spot is near the start of the track, the form offers the known spots within 5 km and the creation of a spot at the start of the track (name suggested from the track); a spot without position can be placed there in one click. The file is stored in Nextcloud Files (KookSession/traces). Help explains how to export a track from Garmin Connect.\n- Maximum speed of a session, in knots with km/h conversion: best straight-line average over 10 seconds (computed from the track, or typed in); new \"Highest speed\" record in the statistics.\n- Buddies: the number of sessions is shown under each name; clicking a name opens the sessions with this buddy.\n\n### Changed\n- Swell height: from 0 to 6 m in steps of 0.1 m (instead of 0 to 10 m in steps of 0.5 m).\n- Forms: the Save and Cancel buttons stay visible at the bottom of the screen while scrolling; an error message is scrolled into view."}},"signatureDigest":"sha512"},{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.2.2/kooksession-1.2.2.tar.gz","created":"2026-10-07T18:22:47.414537Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T18:22:47.489365Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"bSON1302jFKpUycISwR+15GMNAZY4f1/BxfmjfJHP5vhcdx5KpLbqGA3+Pyx73QV\nVHhZme2rvhMZtmfn2S33ti1v/E4ApLij8n9//BsGof/Bh1bVOMJP0VXDX7hmOChH\nOzDljK3H1jgeJAAI7xp24hSFq6rICTmAk0CzkzH08w/K1sMGTXxBeukHFN5JxGyL\ncZk60BlWZOtIcyDMfFBg1B82/ndsrGqPseMT7XUO9Lf7OKdWVVlWLLoQiwxZvjGO\n4uZP+8rk8R4k+49X3cgrzJWvIzz/5WCGgsh3YhRc2PEFJBJyPVLogFGGiKbEKBT/\nXdi8TCY1kyPpaNz48pIPXh8vyYij1Ny28/f4yqSFDACQcQxyZhd7PAsMU1x2H/we\n5TSv15JNU67rknwpAMGm7W1Gmax3362j3tsbwZnv1fnJMlnG9Ffu1eoa9FgXtkn6\nBkgqjYh8LTpECOFGXZxlRLvlzpqr+0YoaM6q7Quii32fni92a00KWDNdu+744hvF\nasmCJO7euCZ5W/wVg9ztQf5p7SEcL6LkbswUUfeanPBRKN68EPeD2OMLtdaq5wil\nDlliAJmmHb3X5IrA6k6J3NmJetnADw1IV/B6/pttEw/SzVvF6N+I/Qt1oVxIivWy\neGOhARN4f8ldSnS0tkIhBP+B8q4O1xRc/MEOgv2Rtdc=","translations":{"en":{"changelog":"### Changed\n- App Store page: full description of the features, and lighter screenshots (JPEG under 90 KB) so that the App Store can display them."}},"signatureDigest":"sha512"},{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <37.0.0","minIntSize":32,"download":"https://codeberg.org/badscooter/kook-session/releases/download/v1.2.1/kooksession-1.2.1.tar.gz","created":"2026-10-07T18:14:09.865314Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T18:14:09.931238Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=36","signature":"FPltD5pt3uVCBpmURq7n576Y8L3WGBBkghwloqDbijzNG2a6iEmuc8rELBhZypKZ\nKr0m/123+kIY6QJ5licWQUqhOOVEaFavkSc1tiSViZHyiucPVK81Wi83f2A2uW1R\nii8DHnPGvtnpeC6NrodEUP/3HlH+e0WuLXsOK9J0Yj1sQwk+Bl9znUC/w/7+O2dt\nMhCTsoidY5V8PmWcxqLb1G3/kLCnqa/e6pX30KbPQV7Jms/lBroZvrW1210Ozilr\nnlIqUIQmhiXU8HCHrNwJiN+XASVQ1kv6RIyW1avVHbNYcuICrQFTVq3ORoz44DIj\n4G4Mg2EfRWBfP0lu4VP3b4QCLfDHLhxJFRV2qLHWqfX5lOMvrqp6/R0dzRUH9ENs\nwqh8wR/QYoOy76N8hwa26781iF85Al6qOHpcnIbcKPMkhR1dr611cq0bU8BG7FLC\n4HyiCijhx9tYgSsepXbJO//5ZbPIgPZ5kOIMaF6J/B6vGLb4UBli4Bp+ZVC4bS7N\nEeKbH3mocrIMawxrXoXIUYqmHU/zAd+WSserVoftY8fVmD0yezs/+hDJP0Lf55Oa\nec3qJDNCPrYxSirH8vc6JCKyf+dT2l7JRS8TgHEBWhWSMAkoBwvJXNwX0DqbVu58\nWNhq0jAnjncxz6rRZLfIZ53LIANJk2AdUiwIgzv6ZhQ=","translations":{"en":{"changelog":"### Added\n- About page: link to the Android app on F-Droid, with the official \"Get it on F-Droid\" badge (in English or French)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wMS1zZXNzaW9ucy5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wMi1zZXNzaW9uLWZvcm0uanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8xMS1zZXNzaW9uLWdwcy10cmFjay5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wMy1zZXNzaW9uLWNvbmRpdGlvbnMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wNC1zcG90cy1tYXAuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wNS1zcG90LWZvcm0uanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wNi1xdWl2ZXIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wNy1lcXVpcG1lbnQtZm9ybS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8wOC1zdGF0aXN0aWNzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYmFkc2Nvb3Rlci9rb29rLXNlc3Npb24vcmF3L2JyYW5jaC9tYWluL2RvY3Mvdml0cmluZS9hcHBzdG9yZS8xMC1zdGF0aXN0aWNzLWlkZWFsLXJlY29yZHMuanBn","smallThumbnail":""}],"videos":[],"translations":{"fr":{"name":"KOOK SESSION","summary":"Carnet de sessions de surf, wingfoil et autres activités nautiques","description":"KOOK SESSION est un carnet de sessions pour les surfeurs, les wingfoileurs et tous les pratiquants d'activités nautiques. Notez chaque session avec ses conditions, gardez la trace de vos spots favoris et de votre quiver, et tirez des enseignements de vos propres statistiques : quelle planche pour quelle houle, quel vent fonctionne le mieux sur chaque spot, combien d'heures passées à l'eau cette année.\n\nTout reste dans **votre Nextcloud** : les sessions sont enregistrées dans sa base de données, les photos et vidéos dans vos propres fichiers. Aucun compte chez un service tiers, aucune publicité, aucun pistage.\n\n## Sessions\n- Historique dans un grand tableau triable (date, pratique, spot, durée, note, vent, houle, matériel, commentaire, médias), avec des filtres par année, pratique, spot, note et matériel.\n- Pratique, spot, date et heure de début ; l'heure de fin est pré-remplie deux heures plus tard et la durée est calculée.\n- De 1 à 5 étoiles et un commentaire libre ; nombre de vagues, distance parcourue, vitesse maximale (nœuds et km/h).\n- Une photo et une vidéo par session, envoyées avec une barre de progression (appareil photo sur mobile), enregistrées dans `KookSession/photos` et `KookSession/videos` ; les vidéos ont une miniature.\n- Matériel utilisé, groupé par type, et accompagnateurs du jour.\n\n## Traces GPS\n- Import d'un fichier GPX (Garmin Connect, Strava, applications de téléphone) ou IGC dans une session, ou nouvelle session depuis une trace ; une aide explique l'export depuis Garmin Connect.\n- Carte de la trace, distance, durée et vitesse maximale (meilleure moyenne sur 10 secondes, en nœuds et km/h).\n- Les champs vides sont remplis depuis la trace : date, heures, distance, vitesse, pratique et spot le plus proche ; un spot peut être créé au départ de la trace.\n- La trace est enregistrée dans `KookSession/traces` et analysée sur votre serveur.\n\n## Conditions\n- Hauteur et période de la houle, marée (référence, décalage, coefficient).\n- Rose des vents : on touche le côté d'où vient le vent, la flèche montre où il souffle.\n- Vent et rafales en nœuds ou en force Beaufort, synchronisés, avec conversion en km/h ; températures de l'eau et de l'air.\n\n## Spots\n- Carte du monde de vos spots (OpenStreetMap) ; un appui sur un repère ouvre le spot.\n- Recherche de lieu par nom (Nominatim), clic ou déplacement du repère jusqu'au pic exact.\n- Description et jusqu'à 4 photos par spot.\n\n## Quiver\n- Planches avec cotes en pieds et pouces (6′0″ × 19 ¼″ × 2 7/16″), conversion en centimètres et volume ; ailes (surface), foils (surface de l'aile avant), combinaisons (épaisseur).\n- Marque, modèle, date et prix d'achat, état, jusqu'à 4 photos.\n\n## Statistiques\n- Spot préféré, sessions par mois et par pratique, temps passé à l'eau comparé à l'année précédente.\n- Sessions à 5 étoiles, matériel selon les conditions, conditions idéales par spot, records personnels (dont la vitesse la plus élevée).\n\n## Partage\n- Partagez une session, un spot, un équipement, la carte de vos spots ou vos statistiques par message (SMS, e-mail, messagerie).\n- Lien public : une page en lecture seule pour vos amis sans Nextcloud (photo, carte, trace GPS, conditions), valable 24 heures ou 7 jours, révocable, avec la possibilité de masquer la position exacte du spot.\n- Envoi d'une copie d'une session, d'un spot ou d'un équipement à un autre utilisateur de votre Nextcloud, qui est notifié et l'ajoute à son propre carnet.\n\n## Préférences\nAjoutez vos propres pratiques, types d'équipement et épaisseurs de combinaison.\n\n## Application Android\nUne application Android native utilise les mêmes données (connexion par le « Login Flow » de Nextcloud), disponible sur F-Droid.\n\n## Bon à savoir\n- Chaque utilisateur ne voit que ses propres données ; photos, vidéos et traces GPS sont des fichiers ordinaires de vos fichiers Nextcloud.\n- Les seuls services externes servent aux cartes : fonds OpenStreetMap et recherche de lieux Nominatim.\n- Les miniatures des vidéos demandent `ffmpeg` et le fournisseur d'aperçus `OC\\Preview\\Movie` sur le serveur.\n- Disponible en français et en anglais.\n\nCette application a été développée avec l’aide de Claude, l’assistant d’intelligence artificielle d’Anthropic. Les copies d'écran utilisent des données fictives ; les crédits des photos sont dans le README du dépôt."},"en":{"name":"KOOK SESSION","summary":"Logbook for surf, wingfoil and other water sports sessions","description":"KOOK SESSION is a logbook for surfers, wingfoilers and other water sports lovers. Log every session with its conditions, keep track of your favourite spots and your quiver, and learn from your own statistics: which board for which swell, which wind works best at each spot, how many hours you spent on the water this year.\n\nEverything stays in **your Nextcloud**: sessions are stored in its database, photos and videos in your own Files. No account with a third-party service, no advertising, no tracking.\n\n## Sessions\n- Session log in a large sortable table (date, sport, spot, duration, rating, wind, swell, equipment, comment, media), with filters by year, sport, spot, rating and equipment.\n- Sport, spot, date and start time; the end time is pre-filled two hours later and the duration is computed.\n- 1 to 5 stars and a free comment; number of waves ridden, distance covered, maximum speed (knots and km/h).\n- One photo and one video per session, uploaded with a progress bar (camera on mobile), saved in `KookSession/photos` and `KookSession/videos`; videos get a thumbnail.\n- Equipment used, grouped by type, and the buddies you went out with.\n\n## GPS tracks\n- Import a GPX file (Garmin Connect, Strava, phone apps) or an IGC file into a session, or create a new session from a track; help explains how to export from Garmin Connect.\n- Map of the track, distance, duration and maximum speed (best 10-second average, in knots and km/h).\n- Empty fields are filled in from the track: date, times, distance, speed, sport and nearest spot; a spot can be created at the start of the track.\n- The track is saved in `KookSession/traces` and analysed on your server.\n\n## Conditions\n- Swell height and period, tide reference, offset and coefficient.\n- Wind rose: touch the side the wind comes from, the arrow shows where it blows to.\n- Wind and gusts in knots or Beaufort force, kept in sync, with km/h conversion; water and air temperature.\n\n## Spots\n- World map of your spots (OpenStreetMap); tap a marker to open the spot.\n- Place search by name (Nominatim), click or drag the marker to the exact peak.\n- Description and up to 4 photos per spot.\n\n## Quiver\n- Boards with dimensions in feet and inches (6′0″ × 19 ¼″ × 2 7/16″), metric conversion and volume; wings (area), foils (front wing area), wetsuits (thickness).\n- Brand, model, purchase date and price, condition, up to 4 photos.\n\n## Statistics\n- Favourite spot, sessions per month by sport, time on the water compared with last year.\n- 5-star sessions, equipment by conditions, ideal conditions per spot, personal records (including highest speed).\n\n## Sharing\n- Share a session, a spot, a piece of equipment, the map of your spots or your statistics as a message (SMS, e-mail, messaging app).\n- Public link: a read-only page for friends without Nextcloud (photo, map, GPS track, conditions), valid 24 hours or 7 days, revocable, with the option to hide the exact spot position.\n- Send a copy of a session, a spot or a piece of equipment to another user of your Nextcloud, who is notified and adds it to their own logbook.\n\n## Preferences\nAdd your own sports, equipment types and wetsuit thicknesses.\n\n## Android app\nA native Android app uses the same data (sign-in with Nextcloud's Login Flow), available on F-Droid.\n\n## Good to know\n- Each user only sees their own data; photos, videos and GPS tracks are regular files in your Nextcloud Files.\n- The only external services are for maps: OpenStreetMap tiles and Nominatim place search.\n- Video thumbnails need `ffmpeg` and the `OC\\Preview\\Movie` preview provider on the server.\n- Available in English and French.\n\nThis app was developed with the help of Claude, an AI assistant by Anthropic. Screenshots use fictional demo data; photo credits are listed in the README of the repository."}},"isFeatured":false,"authors":[{"name":"KOOK SESSION","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhRSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTYwMDM2WhcNMzcwMTEyMTYwMDM2WjAWMRQwEgYD\nVQQDDAtrb29rc2Vzc2lvbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nAKN461iQHiLK8zKDrqdfOWsdRjcXdxRSP0l9Ap7v3f1t7OUKFbcj9syg1IYCbYl5\nUfxPHNNAyNqILFopEyCUZPmTJ6iT7HNnhQTZN9ZrdFCqoWY/0wqG/6/YV1TqJdxD\nkzUVx3YZimffg2GEfVSK4TuPMA7hm0MrV9us0FKw1P49fWqL2g+7k6cA7ewqka5K\nMhfswt8rF/j63/Av8zz05vKE/jFf7eiUiWKcuhFiiXVRt8zWcmYW+kQLa0Ss5TUZ\ne41k3TEnhZf2Iv2D4Xn1PIFWoFndo4PaHcfH8BfegrweGpCVHJLsQ1MNLUId3XxT\nG4bordxG/OfnUYgSS+vM3PnvQoZ/QeopLVPKFD/zmZ1HfIKnx/FplN619+czJeT8\nhmOcuPVxhu3QS4470AYlHu3LD3eZgLjP3k7f5Pi5T1prjqAn0F1fhtku54U3WEh3\nEXLlKYpLwkRdbAdRZJC+G770p3VPC2oSLG+AdpcvGqsSjpM9KcZzNpweucStg6E7\nfxjxvb2IheO8u71oOz54up8S0Tu+ASNyN+vPjdgFRNksn0oHUfzMYtGkihmsacif\nW7RQdzefH9ZpfqSGRYjDUS/NNAuSetszvsD/Q/oqtrzrSAnfo5V1xXyqMfDqy5ZA\nRDFPRARDqDM+0qcriO1Z4X7Jq4Bj0O0VUDkjrqhMA4ctAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBAEBNdW69T/RH65DbYM8AXFwr2gnpqRZlW7qnw2ZMjhwNqbxh2kK7\nKLUIMqT0RlwmUb2mxZ0jt0a282Mm1X93W9VRYziwXEDCRWvjbJgUuGIPBfcq8FE/\nE8Igt/69NYgntz+gTSv3O1nTwkSYaphQZIk89mR6tt/qJzh6wAFyenRyieh9dWHi\nlTPX6Mh4rip+GoTpTDC64kJaPlPQp+711i3FdEbrxLa8yRhkvpOZZaVQjUwXG6bl\nqja/ZNaI+4hc6XQF1FpeGFA0lVJRVDJG5nC1uzsLfhbDLqhNGvrXyK3L1AOqnwZF\ncQ+ow70U2+s8iMxSSfPRxrNv1zykkR9dSTc=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_jira","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_jira","issueTracker":"https://github.com/nextcloud/integration_jira/issues","website":"https://github.com/nextcloud/integration_jira","created":"2020-10-01T11:35:56.505360Z","lastModified":"2026-09-29T18:56:17.381324Z","releases":[{"version":"1.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_jira/releases/download/v1.5.0/integration_jira-v1.5.0.tar.gz","created":"2026-09-29T18:56:17.368141Z","licenses":["agpl"],"lastModified":"2026-09-29T18:56:17.425319Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=36","signature":"M3sL98IrAp9BUzHBLr+/zpf/aruKuW02YOC1hBpVb5upSpkJeq0a6hYmax8uPDAZqgMc9Qzl7dQFUtZYpt7hINY48NuCMLP7zjeg418qiPjzD5wFOB22UMwZGTFOoUZz8sW75FYpwpEfonPdCei4lM/NHssIatQnatzh3nbVscUhcNWL1zrnzCU6cJaqfc/k3h72vmni1SKOVzaI5NozIFCul+2J1QQdm/GkupGL3rJIryRVbQ1sbMhojq8fS32DAqvYMlv7ksx3MIzRfvtZmJZXrv5ut0a83/7PGO82PyvHyyhqaqKNh7dWnVZGg3qgthqz0I2+iT0Bjnw3O6l5hBg7eafFC+sRddvR0v1WPRYUuhXZ2FELmiKkVRxL7S73UCWy6CXalsiMv6qgbjc9ayeBCC6I2o+a9QVXxfFTQIxILGGsrbeQ1zu9AQqLpMke29pSoq+VMRWQBRe0fQFe5Rpgt2pNj2xTO4OnPAq1fzJA4+6LMgHyHvWw2qblVkgUtuR8rq41O5xA45M6CVhMfY38ys31SEZ1qKfH3HCWWNB4FV75p5K8fZvkEW+VWRmr+LZdhH+SSsQk85bTdzSbHVc5chHkGi7Fwk+W/5EFrvdZ7I7aYpdc7XZmqBdLmR1kogmQIxf3jLuH4wyyHHYPyfrmMvKqn61bKLs5TfnwG0g=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 36\n\n### Changed\n\n- Updated Psalm and @nextcloud/eslint-config, and synced the lint workflows\n- Updated dependencies & translations\n\n### Fixed\n\n- Show the content of the dashboard widgets again, they stayed empty because of an error when loading\n- Ask users who did not connect a Jira account to connect one in the dashboard widgets, instead of telling them there are no notifications"}},"signatureDigest":"sha512"},{"version":"1.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_jira/releases/download/v1.4.3/integration_jira-v1.4.3.tar.gz","created":"2026-07-28T11:14:35.631709Z","licenses":["agpl"],"lastModified":"2026-07-28T11:14:35.712823Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"JI2wcpfyySSdX9nf+uXolurycq+j1whJApAjzlrv/q/sLLRy2rauObjmonBNpaNjD1jD+23K92PEI57I4oflMOV6V6R87AfoyxQA9404phdUxqXqEQmcV0jneiqGUpiUu/ZEexdWdgZd5TTGNbU/1VvzLHSkq/VMuDPgM3yIJIPP0nVyJn/PjpOBGJO5CH6aNPucJQl4KoHaZSXWy67kKH+Xlpq1hXsS/hlFOk+ki2fWNhKYUFg2CQGsANqocjJ13C9fTfzQrbixRcCtD3k2Wpz50Fe+9G69UKnViRWB/5TCrZzKoBUftNlYZwywTvSgjR0NTyKsqxYjr/PxOHCbEI5pkGoojmb+l0KmTOofV23O8QV8G/zo/JiX8T+OIi/EolZ1V1YtDjPShPErv1Z5sJQjjK74Jpt1O1CK80pgKAEK6mkxQTTSGacNTCGj3Chnepve71hI/Wfh2nxmccGkfKShrIPsGDrlBscqD49PUWjfpGdV69f4MZ8q3x+PSiPP8zrjQ93PtovkHoFlq7BQ5mfMIIhu3s2I0/ljW+Kpepdwp5oOXEp+mjk4fKgE5HZnd+kknxuL0T+H9vjwrm18Y+qhv8V9nHFoFqZqDEZ0iQUyUJS6tagxrtaw4UnBkLPuy5tQBqBVaM3G/xxvV/7kuZjUO65swHhyPZc19kppaE4=","translations":{"en":{"changelog":"### Changed\n\n- Use the outline style for the home and account icons in the personal settings\n- Update Psalm to 6.16 and nextcloud/coding-standard to 1.5\n- Build the frontend in CI for dependency updates, and lint all style files\n- Update dependencies & translations"}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_jira/releases/download/v1.4.2/integration_jira-v1.4.2.tar.gz","created":"2026-05-27T11:15:10.765382Z","licenses":["agpl"],"lastModified":"2026-05-27T11:15:10.913388Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"JyuEoR3v4laKR7ayu3/RFmp+6/uxPWyIaqGg19WKivLSal4iJBX+H6ugfqulrYc+wIr7ie0UiASBOahhHKBOEJ+moqVGUj7TZZ2QcJKtPT0wx2lOSgHXuKJfPkscGxYNyWRWObOD5ziHS/7M3NAhSc1G79WvoBH0+71juwF60mtdl4oGRPpxyaSJhuJ8fi2sTsjlGLwrjCPry5lfAfoDYHBsllfmf8su1aUpH3q1Dh6Nyqjiy1j30e6Lxpb4VRVKUNZfEVaAyvR2DaRoJtDYN+MCSDc9Yiuw7ZqO6079Ulw2DVxKCeByuAfwCKvcQ/dziuS47W/aATG30WFHRx8OkBRKmR6KlP/Nj0QltW/R+4Eq7qmo43YbZOCIhgNkoXNBKc5A/tPDA/2Q1XmF9w3huMQOooZOhCICx2LgwzANVpjIup79Do19aEpsHqMiGU60AzlxX2PlPqVSuLBH1iLLcgx6sWNh882mNN5ulvDf/ODoIdQlzy7iwLmTsCs7BtykiXBSb8k3r+V/XcTnEJ9ZO7hgQokS0vO0om44SdjSzTcQ7D/mMWZ+SjMGkxC26+kcStr7aeL8zMm6iXjNhhannZMoTTCMYt3U3G2yd8UmOSqNA409XEtg67ZBHDACirXo23JaetdHBd997EsAnfKVtnWiM1WpLebKOOzQNEW9V/o=","translations":{"en":{"changelog":"### Fixed\n\n- Stop spamming the log with `\\InvalidArgumentException` deprecation warnings from the notifier; throw `OCP\\Notification\\UnknownNotificationException` instead for unknown notifications.\n- Fix `ValueError` from `vsprintf()` that broke notifications for non-English users.\n- Migrate Jira Cloud search and notification calls to `/rest/api/3/search/jql`; the legacy `/rest/api/2/search` endpoint was removed by Atlassian (CHANGE-2046) and Cloud users were getting `410 Gone`. Self-hosted Jira (Server / Data Center) is unaffected and keeps the v2 endpoint (#122)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9qaXJhL21haW4vaW1nL3NjcmVlbnNob3QxLmpwZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Jira integration","summary":"Integration of Jira user support/ticketing solution","description":"Jira integration provides a dashboard widget displaying your important notifications,\na unified search provider to search for issues\nand notifications about recent activity related to your assigned issues."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECzCCAvMCAhFxMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjEwMjE1MTkyNTMxWhcNMzEwNTI0MTkyNTMxWjAbMRkwFwYD\r\nVQQDDBBpbnRlZ3JhdGlvbl9qaXJhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\r\nCgKCAgEA8qNZ9BR8vKSPGiz+mcoGrENQ3UU5gmggXqT/Bi0WsveKDCZIYlcVVzRd\r\nfupmDmvWxSUd4gIUHtZEtfCapTOIR46+8XRLK/Q7aRxTMggb370tHuhbug4Jz9Nd\r\npkUDzC6S6QGo95jAcat1HqPehb1+oMoR6+rMgfjl0hE9cNO/LOw9Fia17XDXcr/Y\r\nlTChrTy8DI9tTQ0Pj9SVvYRLMp4nGC7TgZpFgOjV0d7VTXtcIOBomBRtmlXUToiw\r\nVCWikkiFS5k5HJ90X1ehwGCYzIlsDa3nNFp6CIOEyv2HeOCiTB2oJXWwTdPl5WYK\r\nCc52f8O3Aa0C/zmUsdaK7GOiz0hGF+dqaQSvm2Sf0LlGFbCiMiCnhQESYuGh7TfG\r\nkr+paIIywGAD6lql7XzN55NESBfWwJvmf7zKGHrJXxLgGj8OPm3IUhl27Zh2aPbP\r\nE7dwO+MWl35r64Nuc5HYnwlZ8VFGo/fJfcYHCN+9oNOK9QE3Nc3biZ5aUXzSJ9B6\r\n+EBFRH4tjdg4Ca++ArTu6M3kX3CtcvzOCcpalg/vITQukZWcUx5dxmv9+gi33Lv+\r\ntfLYhP4jdZkTobq9XGbs4M18iLbxpQyE3wDuuJg+y0YxH4vezL0EhoMjsTJGBhXq\r\nLFZd3JqEQ4tJFEyx4vavu4V4z6MJJzisEPI7sfThE++2OxKa2zUCAwEAATANBgkq\r\nhkiG9w0BAQsFAAOCAQEAYchOickmjsd21Ti1drbkO469I7ysAQ1aytvbqO2APT2q\r\nXv0MB0OhGt3tDEawqiDgtrD/eOktLYtzTGnkGuQ07Evugnu8nD2PBzZugZK2ssEX\r\nDXen5YFBWmv4Kpnyx+OK1ItGB4R7Y3Eun5cXShQ6B6QTmIlh8iQ6fAR42KsHFV5G\r\nGeNYraJhU6THT9HoSnI44N4FE/7ZV/6XvfilC4dZJapA+rsG+KVZ6FneXK2kCehP\r\nswBxBF5aWCQXdXFsQA8w3QULTGtPYOh2OP3dueS9fj3tjkcly0rOAhWhZyiiQnZy\r\n/uFSobgoAC1Exm+HHMR34y4JM9geHIG9d1iX4B19ww==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"twofactor_gateway","categories":["security"],"userDocs":"","adminDocs":"https://nextcloud-twofactor-gateway.readthedocs.io/en/latest/Admin%20Documentation/","developerDocs":"","issueTracker":"https://github.com/nextcloud/twofactor_gateway/issues","website":"https://github.com/nextcloud/twofactor_gateway","created":"2018-08-13T08:37:05.194326Z","lastModified":"2026-10-12T21:24:39.386707Z","releases":[{"version":"5.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_gateway/releases/download/v5.0.3/twofactor_gateway-v5.0.3.tar.gz","created":"2026-10-12T21:24:39.362580Z","licenses":["agpl"],"lastModified":"2026-10-12T21:24:39.419102Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"kHWsYuDckeCLRHNMOgRH3khC3WfMWvdTZJV6q5VPS2QfAZq5gd+aVbgAW8NKMkEOvBI2eUpTMH8pIosYlp/IVG+gUQj3n/cNqSHBwZbx3Mhe63IvUsYJoQc3Hq5leI+fX25DMV/SJ25Va388j69i9VFM5CqsYS81mQ9XMVrjDMPruqHAlB9htvgBucU7wyYnunCZg0YX6HBOHETAEUIUEoHQTvKG4n8RTc4TQzu7FSKDIRjun/Lggaf8zRzh7wEMHppbMnVh9/Ukt6IHfXlVb98mHB4z/NlcGsBPY1sHx5xUXv6jl23r+hQFtwBg0c+c02U4PR1SR/vxzqg/O4sS5OelmjY1jFA9F9IMnbMutVIbBFkyoOlpxFV7s0HAQmRSe4QMLoK911lWs1LaHZqE8mSIIsVEFStqOcBmkgvTH3kFNY56ecdwsDv0U41x9dL+Y53l16sLz7nXZRFf3qPXmUrUFTwZ9Dc265/A91IWEKpm+t0mivvQ6JdIY0k13Pxw827w8ypEmpppuBdohUcELKhcMZhKuSM8RNn5aDe6Ay5xQZKDsPqlRqcX0/8Fl7nOVFI9nskheM5W/dxnclVhJrNG3PMN+HxjcodcpNOUBeOgvackKWtIROTJ6UD9GImc0+4jSnnVqgE0mQ8/D3vurifg31Yv2TNgAokQWWBAn1E=","translations":{"en":{"changelog":"### Fixed\n- [stable35] fix: skip legacy catalog drivers in gateway instance routing [#1260](https://github.com/nextcloud/twofactor_gateway/pull/1260)"}},"signatureDigest":"sha512"},{"version":"5.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_gateway/releases/download/v5.0.2/twofactor_gateway-v5.0.2.tar.gz","created":"2026-10-09T18:28:50.952792Z","licenses":["agpl"],"lastModified":"2026-10-09T18:28:51.139103Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"lo/uJ99zQL01Lh96+jK5CU7m2UKW73wCcr00BP5qy2Qis0OJmMkW5VnYd6Tdu9Ol3JQuaI+mPphW7nPlzcHFdj6RPWApNfjx86HQdF1b/oGTM764vbuagPX+W0ihGlbVDcwECC+pgbiU6rnrWHWIKckkRS4QkqckQyHL2e9gusSN8tkZ7A0z53Dy8COIIZXJWT51UL0d3seM/zmuAC4oPg8qlRda2kJrQ76sfJGO6Mu409O/cN2waqPxB3Y8lFjJ95GqzqqREC8Jvuzte+59agPdUxhow46bLNd96GkN8/t+xlFvKPWTzBdJUFdeti1rA/GiSR4VIjsC8v/B1hk7JLFSFfeGCM0j0C64AlBCcQjRgSGxaSQ1TfwgCMEPoPC5Gcb1HYJkWTm/qr3DyGSkvWw3uTdQ7rZzOvAdg+IYum0yhaaXPy1Jq6ugF8pfOweXIUI34TgVLfBvNuNv1u7cf2Zkiiozr7V51nd6+N/knLDOJa3ttvDBow6+PH5tkVQa+rj0uX1rqsBgt0yaxEwXm4+EL3heD3nvxNVDba0yjgypM+67p3UAblMQX9yYJOdbW5zhbTsS0nZPH930aziBSwdiRcCjUr3NY5EG7jz9xH448hVU6AIwNZY/2C1dmmguqt1ku1C8Cel9g1Lrzf68r9PYTajub64RIbzTsn2orb4=","translations":{"en":{"changelog":"### Fixed\n- [stable35] fix: WhatsApp Business OTP test, guided setup, secure logging and 2FA instance routing [#1250](https://github.com/nextcloud/twofactor_gateway/pull/1250)"}},"signatureDigest":"sha512"},{"version":"5.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_gateway/releases/download/v5.0.1/twofactor_gateway-v5.0.1.tar.gz","created":"2026-10-01T13:05:32.515308Z","licenses":["agpl"],"lastModified":"2026-10-01T13:05:32.574662Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"oAvyosEZVtqZ49HIf/RUxYJBuEIVcblaM5r45gQPMQF7ryP4YeVK6IcgGDk8nD5uNGQMB5KUTrEqYJ5XAMrZ3VTaWe3ixpw/vdTB/e2zzD0eI6m5XsWO1vkiAVO8bVuNFDOCkO4aGz/WexOA5cIysBg7Nb+b+/aTzeeZvylgXXb6o7xHV+vEWjnLBy7/0kChVlS9GCDGw23o1EtdZDItjVbeTcjQw1vbRp8iVPM33DbR+fiFdThBbgDS1ClQINgVVw8UzPh+X+GE677i/YXuEHGJMcD/pZEyfvvMx4pbscg+sor/Av7dGQBtODvOy7n+0vDKJMyot7Rx/PszosV5XLkgdezMh3r173sDnwxOdDePmGlL2pEsqjlZP9CRbDje/Ytm8Ntd8KpriXpJdb0ygUbrzSazJyAOBm5wjLt014DCfjiITeEQgEGrMuRz6gWI618Fbpq+75ywYgSP+fF62TjobyUl9txO68eT1nscDcgzJ26YG0sHOiS0AWXsQjPLJN06hsBrL+BV7w7xQVLTh09ZnZd5jzSDukHhJojInbi74DjloD3tuOfzZZORZuYmm9of21iRc+vg1fa/WtUo62U6onXGFtTdmZ4Y+UaWZS/1SXDzQNYaSud3HHL8sgp1RBdDxtlJczkJn3GE9ANMSqa4WWxRAAd7j7JsTz1k5Do=","translations":{"en":{"changelog":"### Fixed\n- persist the selected SMS provider during CLI configuration [#1213](https://github.com/nextcloud/twofactor_gateway/pull/1213)\n- reject provider drivers in admin gateway routes [#1216](https://github.com/nextcloud/twofactor_gateway/pull/1216)"}},"signatureDigest":"sha512"},{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/twofactor_gateway/releases/download/v5.0.0/twofactor_gateway-v5.0.0.tar.gz","created":"2026-09-18T22:16:12.909511Z","licenses":["agpl"],"lastModified":"2026-09-18T22:16:13.039025Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"Ux5f1OQjyGorSeS1RkJMe4Z3DmaT295SZG4NbGYR3Q83P2CEq9r2r7ZtFh6GqXypU+8uyjjlKgjxGdYvblnrXNnvfNZR57NtWZip2dnZpblA3HOtbD1IG/JxUJfBNzCy0qfhmQYZnz5nWjvG1NcaVGjDv9zo4YNfq6uim49fgjZo8SMkoq7N08OK3ZI1lyNyNBuHLOWLH+z7qPCqxRDdcRxMbTq4BFsQXWrbdfxupAwPbuCzQj5yuICQurAh6ibyu8qoNzPvFmOufNFOmr1mJOTdvuKuc6I7hZ7emd15imkBCYieDoEtFd8KbkTJ/dXy8T+sEeakFlK6MhnPNSYrSYHrLBE+NRdwOQ/tDGp0Nee775gM8QnuYnZ2J5jLlooTBjyrqvU0lAqoyLXvc1vWoJfcK9JeFb1e+C+AwYZwWpUdVFF2x3ZXpJ4G05caZXAJAyiTAcfeCXdRfzfFLiS+SYxlJSF5jDI8LjvpdEZfr/wNl8jfjGgvzQ0a6f7FKRFQrArkAHTfKgh08Em0lfPwTb6wf7bLD2FqoBhfkgyeB2xwL2/ITYqPAyARXcxmacwqZeXL901jIwO8Sgd71sTcdeiiDwdklxXnYeI6zyrLVnBlpySY7jUkjPXcsRDdYTBrrWU5wD6aCe4o2aTgwJR7MuWEoLTD/A+X/IC4UdgUIaI=","translations":{"en":{"changelog":"### Changed\n- Updated translations\n- Updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90d29mYWN0b3JfZ2F0ZXdheS8zZjg5NWJjOTk3YzFhM2EzOGM5YmFlMTZjY2FlOGJkNDk5YWY4NjRlL3NjcmVlbnNob3RzL3NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90d29mYWN0b3JfZ2F0ZXdheS8zZjg5NWJjOTk3YzFhM2EzOGM5YmFlMTZjY2FlOGJkNDk5YWY4NjRlL3NjcmVlbnNob3RzL2NoYWxsZW5nZS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Two-Factor Gateway","summary":"Two-factor gateway providers (Signal, SMS, Telegram, WhatsApp, XMPP)","description":"A set of Nextcloud two-factor providers to send authentication codes via Signal, SMS, Telegram, WhatsApp and XMPP."}},"isFeatured":false,"authors":[{"name":"Christoph Wurst","mail":"","homepage":""},{"name":"Vitor Mattos","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDDCCAvQCAhCwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTgwODEzMDgzMTAwWhcNMjgxMTE4MDgzMTAwWjAcMRowGAYD\r\nVQQDDBF0d29mYWN0b3JfZ2F0ZXdheTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\r\nAgoCggIBANctdclp2XgYA8SFpgFDy0AfwQp9axhdArDbnVNcP840V0NjwHr8TtiN\r\nfVJalr1NStC712Jf/xWjBf6rD8JXa9xE+x68jjbiS9k3u/m5tl5efW7XmGyGJjdw\r\nlgNpN6bYzGj4BgTAVviRvqFP6XMIxxH/hOzLs9BlN5SFYPZoF+z/Ph6/hW2ux5ca\r\ndwoj6yZ+/B3mFBMVKmT/rMhjklf/uUAQT//r2Mip8tUv7x0sNabgQyfk+HNRxfrW\r\nN+b6yLdaNqD1QG7OfFHnTdGj7U/jwcwvqFjRd1ICqg5FQdQ4aDtrwujd+hyU2Mi9\r\n7AIZxDQ5UdKD9EsVFJpsEu2gBHbfY5yXi3iL4oWr2OcvPGQAbnsr/3tfQz+BQ1L8\r\n+mlmBY36aNriBiwoqvT7Bg2fOTeVkAJQbBS2si7zB3yxSiZaOtWBplgcefB2IQVi\r\nBM/4ecz26AvcKcT6YNSC9AVr9a5ZaAdq8cgvTmSztKh2wBb/jqqP2uGGbZ0A6/lp\r\nixO3rnBob0SenqA7EI96nuUlDPFQHjFEpqtrLorH1RyXTt5kwnuUrKGjCd8sxbVW\r\nIoNrlB0D874YmqinlDpJ+tfQ/yikYd++jRy9r6LnFk2npCYN96t3Av2wXM2guGuK\r\nvxMEjrBtjR3f7Ucwov2+GVZ7GewDPAHFOk6xfvItGrlAO0ZdgrFBAgMBAAEwDQYJ\r\nKoZIhvcNAQELBQADggEBACeTITfnPS/i4Z1OK0DkqHiq3DQUFvG8toTAQMLHmF6s\r\nwLHj6t7i9zIb5Sql+CPt9kTPSFd6uLJOEyuWSxf+w2HuOuVjdGRAvqgONYbNbJVv\r\nh/NBagpV8jT4IA3fY1Ud/Q7uzl7CKUy69rEvMXg5T3ExmPCBBZj99CWMDcnyiJ6S\r\nYsYhhI//c0B5oNVSE0RoZ19HPagkguoOYlMXjvB+SQAR7vdmygEMj2aBKPQmVHhh\r\nh41jpIF0kZI1mEivgKTBSCy+MqrZuhYS/ZR+2PApMxUzlC1vrM6wOWH374pePL34\r\nc36gKupJQvKkTJpRuZy7FAt8f0FLVeBByKetO94LQMo=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"musicsheetviewer","categories":["files","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/partitioncloud/nextcloud-musicsheet-viewer/issues","website":"https://github.com/partitioncloud/nextcloud-musicsheet-viewer","created":"2026-03-03T20:42:51.595383Z","lastModified":"2026-09-21T06:45:28.525824Z","releases":[{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/partitioncloud/nextcloud-musicsheet-viewer/releases/download/v1.3.2/musicsheetviewer.tar.gz","created":"2026-09-21T06:45:28.474551Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T06:45:28.567479Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Mj1jXn5qgZwIJZtJRHA496sNaERxGSdtWJloOpZHwHn+DKfC56FKDORoGEi/Tu36\nezvT4yfI770H4EsbwJv1K20VmtpwAvnwWVoiYy75NU41qoyw0R3rzoTQrbeb7fo/\nGE1HGvYCYOLqvOHN+pSi0jJfWYdDXWOx4oG1VdgvsUazsHRCMbZKbo90q4yszq7q\n9JKC96FtYZTWlLSqTHccko/9vvdMf9Cbk8WsRAfQrLs5LCQ0/eM8pkBeJTv4Fldq\nzuz4ixy0ad9l2bWipgZoZhbuwAcg30K6GKX2ML7IAR9O3gQWwQsXoxuiQFhOkZ1P\nisumaoY+GZUjQwLszvws3fK5BIVigev3MiJ+FZ23ySb9/PcPxsiNHWwbDwhLfVh4\nHIzywqxs/lvt2liOElQvd6Y9SRPiXUPmQJskRhRzAqkjhoBykOjYmJYB0at5AOon\nWYRmB58h97UP5ynElSSYy2wWEV0mNKT41Yg+pggVrdC9TC4k2QYbPqef/c9iaQJA\nCfoVE/kUEHkbZjEJNtA/pJTkut/dZ1kFMXuNu0Q96ZnvOX9BnCp392LMxz82nXpe\nWFtW3BHxF6KjEf7eUxinlp8iwts4FZ0NPWfS45vTwQqLX9k7r2abh34ka8oEu35e\nOuXZSIOpI/yxQcMLB7Pmd/HIbqyfIGUGV6m7IY8MnLE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BhcnRpdGlvbmNsb3VkL25leHRjbG91ZC1tdXNpY3NoZWV0LXZpZXdlci9tYWluL3NyYy9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BhcnRpdGlvbmNsb3VkL25leHRjbG91ZC1tdXNpY3NoZWV0LXZpZXdlci9tYWluL3NyYy9pbWcvc2NyZWVuc2hvdC1zbWFsbC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/partitioncloud/nextcloud-musicsheet-viewer/main/src/img/screenshot-small.png"}],"videos":[],"translations":{"en":{"name":"MusicSheet Viewer","summary":"Visualize and play music sheets","description":"Visualize and play music sheets of various formats\n\n- mscz, mscx | MuseScore\n- mxl, musicxml | MusicXML\n- gp, gp3, ... | GuitarPro\n- and many more, see [MuseScore handbook for full list](https://musescore.org/en/handbook/3/file-formats#share-with-other-software) for untested formats."}},"isFeatured":false,"authors":[{"name":"Augustin LUCAS","mail":"me.git@augustin64.fr","homepage":"https://github.com/augustin64/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhMFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzAzMDg1MzUwWhcNMzYwNjA4MDg1MzUwWjAbMRkwFwYD\nVQQDDBBtdXNpY3NoZWV0dmlld2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAxJhx1JRHFKrZLag1NRoc4xTbJVgR2f3rQOJdqIQF7ZUKvS7zKKkc6icF\n9Zcq/gpC14SZ3wPjZxsd1UXCG6+8Lm+8981+DPbj7su3yBWrfmlwRxxmUxXvV1jz\nA/ak7MX8rOUPHFMa2YveKt4THS8xrihQqXUO0Uqux3KhZsMOSNdR1QHrf4Ax71aS\nfUk2fcFdxT2lBPa/9bL5KsiASO+6C+pm5wRPfU0r7fM5nHz3fOEgXyx+GG1nFFe+\nFQsGWMIwdjgvAILFivKSK9uEoDo5WZuDDZwdDN17HoJrgZuhEXElRuoN2tNXOgsS\n6NeDB2PE5tymI2Z1mP6N4CA+uw8hpIp3/0UNdBsksUHg33SJjwzFjt8x7odV+Q4J\n0nxPcPtnadXowRnKFIZRIVe3fxSxmys5XHBQfu3fVyn71ZQfgLR3PA2O1wByNT0U\nnjuamBPNZ0c3xPTvygAgVbC8vsyQpbrOIQ2qIo3GNCap7eS0cq6YVLZXk0t97u78\nvVyUw6HzA/K+VFmUtCC7jSptMFtWuUJHoSH1OWfrNzCDtV6J5+4Ah6eaMItsbcbM\nRidbbUDpx+aQR9bONFBrzebrHVgQk9bHjwAQP9jv53dgBUJhONRQl7suMWwdyYDA\np/8cPwQEJjAaZhc587XF0eBg4cHxvtcec40owapo2lofcZOWgA8CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAluiDYC1F6MmBJoSnDa2tJV8ondi39k9xmXgAUwtHqLAt\n57euJuXGQHm1keP1q0Gk2TshNJj9sxWUNIfhlHJRLltkpUH5eF8hADgRAXpY9DtA\njJEFvh2Zj5uyY3KN5fPKPGkdMtSKx0CvVqO4zXzaY+lnYo+2RmohH295FtV0+T1X\nQT7TXVZf7NOlyvm0YlNwxZoLqbFVS1olZM3SJHeATEwKViPD/9nJcVA/sm0eKqnz\n7imTKYHclVcRZ9ttzfPg11ayQ90slqwjjC5KJagYSL+c+raqzqGDIzV9J6tiP9JX\n7v3iS9fcKzIY2fDpgZidKKTyNTocfM188sjZ/np1og==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"orchestration_gateway","categories":["integration","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/orchestration_gateway","website":"","created":"2026-07-23T13:59:19.061470Z","lastModified":"2026-08-05T13:01:39.524705Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/orchestration_gateway/releases/download/v1.0.0/orchestration_gateway-v1.0.0.tar.gz","created":"2026-08-05T13:01:39.514086Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-05T13:01:39.561972Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"TrbuEjTHXO4NjKnpmMn76QDfNLNGxofmqQppeeRMHPG2jtCaGCk1jj71n/MWi0nMfOwhWJqeEJpVSnW8nk6zr6LBT+OfGySeBFmDCb9vyrISB4aBNbvKt7e1bYRoL/Rthi6MP7z8+xaldUl2FnKReqzyHoLyE/+HhW6Sxaf5aAz0EwtNW5xB2sT6HHND2aYP7IqTy3Vj/olQEfmtCNLFmElS/kXYL8I6n9mHFlwlRgKr5SbvNkBx2LCg4k0eKvHj+WfWEZfpdGND/6c5d8nuIoyWSW6TnpItIN/AHEGGcV3FjyNbudLIHSMzbwlL8ZsR5woZKg5vs5qk4T/tpKxOyfid3+aYZVG563d3TnfEspsCIjDbtFmsn4v7ZeA0SsEl/HBC/zlYfg39ipYc403S/JDmoCeqs1mXMv+QdZQRbcOTzIY43RP81ysILM77fKN7ZzaIWPHOoAnCBEx++394gOIzCRnJwKIjc2dw9sTY35XHJyzllvSIGrB/PMsvWYBYoNdA+ZM14rUoEVN80npTLwSlPF2em1IUDpgOYHc9R95lLq4dDSbIiifAw6KI/CxXZpOgA2f3Us7JeHUy/Nok2oXjCmJ2A4gh/CXKKAS9v8lwd/3lOHaiJXOIn4o49XPSBaUccgdcmeo96Pbo9jkz2XEXEPk0EFVMTjU6RSTXfwA=","translations":{"en":{"changelog":"### Added\n\n- First release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9vcmNoZXN0cmF0aW9uX2dhdGV3YXkvcmF3L21haW4vaW1nL1NjcmVlbnNob3QxLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9vcmNoZXN0cmF0aW9uX2dhdGV3YXkvcmF3L21haW4vaW1nL1NjcmVlbnNob3QyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9vcmNoZXN0cmF0aW9uX2dhdGV3YXkvcmF3L21haW4vaW1nL1NjcmVlbnNob3QzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9vcmNoZXN0cmF0aW9uX2dhdGV3YXkvcmF3L21haW4vaW1nL1NjcmVlbnNob3Q0LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Orchestration Gateway","summary":"Manage webhooks to orchestrate external workflows","description":"A Nextcloud app that provides an admin settings section to manage webhooks, enabling Nextcloud to trigger automations in external workflow orchestration services.\n\nYou can use this app to register, update and delete webhook listeners in the Nextcloud admin settings. Triggers can be set on Nextcloud events from Files, Forms, Tables, Calendar and many more. You can also configure event filters, user ID filters and choose which authorization tokens to include for every webhook. See the [webhook listeners documentation](https://docs.nextcloud.com/server/stable/admin_manual/webhook_listeners/index.html) for more information.\n\nThe app includes a specialized form to easily set up webhooks with Budibase."}},"isFeatured":false,"authors":[{"name":"Jana Peper","mail":"jana.peper@nextcloud.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhOoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNzIzMDczNjMxWhcNMzYxMDI4MDczNjMxWjAgMR4wHAYD\r\nVQQDDBVvcmNoZXN0cmF0aW9uX2dhdGV3YXkwggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCZxeEiImPTVHV7hee0pnyLNGm09W9J3WcqRuKUsJGh4AXkFiml\r\n9o4wyt3EdFaYrkuTMot0xkx1vA2t1vduVgSmQC64bnH6bmmJeghSiKW0P1pjEQQO\r\nNCcYn3t0U0ALs+H7bkqjLb48VEFVnQ9QHxocdIjm8cvoZ2LkwdggKcNU4hug4tqT\r\n99hYD+qS9Kh9vF4RR6/uVdAalH0gomoZC33jNOsMgMKfYcmmHtNY9Ojs5JRB/sx3\r\nAepQbTdmt7kL2TWQ6UsAJmbo+zBz1A+G5Rvemqi+fpyOdZaB+M7RTsiPrfzyHyuB\r\nMC2PzWV8jwF9kmKbVcm9J/lctrklZ7ZYygS9X022BTDHEwva5kE0npVSIjc0+FTY\r\nWxQomL90kSKqrxursHJmX7av5dkptqY7f+4utw+NnQiR3wpp8GGsMVecYuE8E0Tt\r\nP6mkuy7EKnbyWIY6sFSoejeVWP3B4Q1IVDrIZH06UCXoal4ZGf3RVSvtVDfyf8vP\r\nIkdOzZwnk4sZ/A6jAqd70UKvPJH3iIeNZZycOrYMjYE/g7K5AM7z1VDv9wCiw50w\r\n8KxKaFjAQuUCLxen3wPZmKVWtQk+UryF/TzRzBVwa4wssFnem+ERg0aSo3CtCXUg\r\nKGfkI7PD8qqfymDBoT4obVblNbbm1cQc3iqaVJ6v1OC4XzferBOrhQXjWwIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQBa80UZognoXMsLDKJIxi1zLk0iOrh5986NzrLr\r\nqKz7gfI4VRkleBHOsBttlym7SFWNXfXsDDQlRIxXN1BdFfLBjaprWnWoDR8Hwmm4\r\np4z18IM7cBeUAh9X75vSAqHLeof3wUGTyvFQEyQrvIkjScj4WtNy/kDQr+9iunnH\r\nJx1pP2xC9evQu3nzS1f/UidcYdT9BgVXzeZnx3uWFq6R3qFMzN9N7F7WENoC5TO5\r\neHE2PCsSKJKPZW3f/2iDD68F/u1eP5GOpVjR11VHkwOSZAo0xve8VXXjdQbvZ2Eg\r\nV0rel8zPZl7gqRfjC580otjc8ery3/lc81BMa+Vc4x5jaJZh\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"camerarawpreviews","categories":["files","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ariselseng/camerarawpreviews/issues","website":"","created":"2018-04-03T07:18:43.006757Z","lastModified":"2026-09-16T18:22:47.074586Z","releases":[{"version":"1.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ariselseng/camerarawpreviews/releases/download/v1.1.4/camerarawpreviews_nextcloud.tar.gz","created":"2026-09-16T18:22:47.053434Z","licenses":["agpl"],"lastModified":"2026-09-16T18:22:47.137341Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"k7rlDuoPfmZXvlSfUwMNbUPnqZGkCVsDDNLzTmCbgoJPKgk1zoP8sr1xIvfXkJ9D\nIoTCD4g61VP3C+g8CM0u/Su+gElzcVCEegywzYkMl4AiW+vLmpX8tpT5dMN09St2\ngvIc1LFnLscdsFb43A2/Uu8ytwV1scppenjDf+9QuiQho+X46t9BIVuhZQfZMTQM\nV2PrLLLRNrgYqtgPsvGu2z9JCRfjfNOJKTp0AyWEkjTFhve+i85whmlTVbalUm7S\nJ66ykwpSJ63KdUcwGwXVcSSHRZjakxZsX5e1RmVq1mUtrO53T847ipMukjas4LEe\nByE/XXg2foB91MFPKBh9ddgVoRal/Hg1vy5mvu2aTAfCNnJAUjBhSZRIux0Il6Vt\nTgYoCLVPJ58p/b9usKZqGz2bAnsdNK8PIVZtRifY4A32ndQFZMwwaEHYn3ynt+em\ntG0XsWshRVV9I8sWXM7UjFK1ZCdTRvUBl0D153S788YgFSge+abqEf7iLngDXEJ6\n8JY9iGnXl0Nj+NuC66XeADvPWsVJLo5f1e35UJNq/URKmuBkR+YDmqDqgxah6C7u\n+2DWzloTPomTP8+9QxAFadAymqN2MC8+x+4hycmUkqb94k7XXmFLlzMimBL2g0S/\ngBR4RSD8m4kiKlLWmXwruuHsjZfwz1X0ap7WzHI1Q2Y=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyaXNlbHNlbmcvY2FtZXJhcmF3cHJldmlld3MvbWFzdGVyL3NjcmVlbnNob3RzL3NjcmVlbnNob3QxLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Camera RAW Previews","summary":"Preview and show camera RAW files in Nextcloud","description":"This app will make previews of &quot;RAW&quot; files from cameras in Nextcloud."}},"isFeatured":false,"authors":[{"name":"Ari Selseng","mail":"ari@selseng.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.95,"ratingNumRecent":0,"ratingNumOverall":10,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhCWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwNDAzMDcwNjU1WhcNMjgwNzA5MDcwNjU1WjAcMRowGAYD\nVQQDDBFjYW1lcmFyYXdwcmV2aWV3czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAK/ePR8a+kxz+hR5h3YuEmxC00k9X4fPqZzhxpXZE1djefZhf6T7MuRq\nzlv39xFXeO0zrXm53XwktNfE9RtazgbZ7IXfQwgb0NW5mmew2XzTO5ooBoa2bW4G\nO6veCTbevI+nhhV4YTRAyQMjKuhggqJs6R2cEU/7VPTml9YLwpVzCCvERKzhhEBX\nZqx0dPOd9boYmP4KHs9qILWySlUYV85ZSWXkuHQJkyK/C0n7QiOCib2RvZNP8m+O\n2jHBQucQ2dNMNhV9hXYlZi3tLafivJ6T60UfGQ2+phPOeWackX9XSLScIm7/SmJ4\nup5Jm8rHE+jOJ4KC7bVQHTqZzlygIowmoOsBcKwJnDAN/pEh/5eTtaFiHskTG8Hq\nko2YfS9a7yYrWwxiO4md09gw6iiA7n+AsdvkJgZ7vAhHih98/FC6/R+f0sGA+yLQ\nA99sVPfaIroTPkIRsibWzA2Z6pthn166+J8KGPnrIepQvj/cd6hfGkag3nvViqY1\n9Srr2utSeM3FZtGgy6+pVzRsvQEeXRtT+1j8bKQrGAZiU3I25+QdzMYbsCCDKXiG\n9Tm/CmpQQlHYLelYCmIX88mSCz2N+8HSzuffwzSbB6+wGs01Icr2J+R7QHKWT7PD\ngtJYn7vYsQbX+A6LIsBTxbZNGOU68iWINTDho+Y+dQ7fwBvXkyr9AgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAG3lIeHh9aqv12fZZjSSdfb2OovkufU0I24/NZexDmzB\nnXa+fQ4cITuZCjXTWvfy+2aBS/yuNaxSLAferpY1UUgXxCds2jcnOzSyYxvqGpMk\nYJC3wA6xRyrlEHgx4WS1wo2LkT2XeG4mtspvIIP156QmdvE0aZvCGsonfCqpJ516\ns7PP8fE1NadC7DNeBDz/hiHc4pUe0yOj3wOVzdOJeWJvVPe558p+wzsmkCgCcuOq\nHasNSlIIkzl4ANVA04+OEQhnDfWXufHlIzOBpu+YGseoT8BLq9vNfOXQ/PXh+kYM\nksG+dDK7GybGVAyjCQAURkRBM2yEmxims//EuXGLcvk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cookbook","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/cookbook/issues","website":"https://github.com/nextcloud/cookbook/","created":"2019-03-18T18:15:40.098418Z","lastModified":"2026-10-13T19:09:14.171317Z","releases":[{"version":"0.11.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud/cookbook/releases/download/v0.11.12/cookbook.tar.gz","created":"2026-10-13T19:09:14.162242Z","licenses":["agpl"],"lastModified":"2026-10-13T19:09:14.202819Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=31 <=36","signature":"RrgjqXcg5R3Iin7WUi3SWJCNAwo1hzkiZ079JRyZ5g4ph3wOytUN7Me3GECFIzbWA05CgdZ2AXy/pzJfRZAaiJwPxRuR8jQ0Ke85o/JtS8b1Y8sQPMF0UGWtHebdXyK9EX9Kv58n+WMBq0DHYG3JV++5PD6lLQG3BojnSc+hBKTFLgg87KAt6X/aSLDCT+AWMyeBxBbMFtyn24MvBQ8cunuHISNw2GPwhcjLTHBbXsTYIN+96Q9jTHmvklct/Vy+l2FNksi2q79JYunQ02vCeIaWg9oBvIaT2UwtS0Ot/mKlyn/10eB4I4kZONq3BT6d5g22C6e1taL75uoYNubJGboRaIp5eqHejK/sFhJ60067JDd2rSlLgN56luv/OtOYjgbu7oHWKlsjzpB3WxHlxcBC7TCpjCo6kcJJilTR5gVen8NdlXmkScq8GxO9TQqiENYna3PKJ9JAq1ZGXqZrYsBxISkZbEsG+eWVSYnrsOeSdeJyi+s6C6Guznb4KjR8MFfWDf6ni93X6akL6JJmQZZSFUw90j3ggkL3mTUvw15To5hEhVfPKZ9YLX0oo/HbWBG8fra7mnsWGJ6qH6giQS/BBVMq9TN1vTAWB7Iidmc8tK89YDW8oMcRYfZQnuuCdBDe5bISHiWl0dxyQAz5Buptvdq/cfg6y/Elz+mrEfg=","translations":{"en":{"changelog":"### Bug Fixes\n\n* correctly handle permissions of folders per user ([#3437](https://github.com/nextcloud/cookbook/issues/3437)) ([19e700a](https://github.com/nextcloud/cookbook/commit/19e700a321efcca0e8d2c64aaa0b8e12cf974922))\n* **l10n:** Update translations from Transifex ([0682837](https://github.com/nextcloud/cookbook/commit/0682837a085634a0dcdf6bea0ae5574a689cb74d))\n* **l10n:** Update translations from Transifex ([ca1de27](https://github.com/nextcloud/cookbook/commit/ca1de27fc3dc511f6365518cd6ad44d32ef1d9c2))\n* **l10n:** Update translations from Transifex ([911fb8b](https://github.com/nextcloud/cookbook/commit/911fb8b9f66193ad137f06239b4a338c2623fb55))\n* **l10n:** Update translations from Transifex ([7dacb09](https://github.com/nextcloud/cookbook/commit/7dacb0955d9330c6d3193edc882795d9354091f9))"}},"signatureDigest":"sha512"},{"version":"0.11.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=31.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud/cookbook/releases/download/v0.11.11/cookbook.tar.gz","created":"2026-10-05T15:44:10.909416Z","licenses":["agpl"],"lastModified":"2026-10-05T15:44:10.961315Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=31 <=36","signature":"h5yW/jwInrtBUlQWGj19x5a+YAi93ZQyIm/l9XqsW55QZuAYNBXt2guo7UdkqiqdAdpEgFg2G3yaYUyikp/ZUULhu0gReI5ipvD2SYYldS3WasxhAGXncNV/veouc9QBUng7RM2gCXpaamQjVQGZZY+34/Np0enUo2YHKUHaqsbPxsajjxz7KbWYmTMMgWh5/jgyO7HK6zZEkjS+vp9KFnvJClEi6dm6REcpzkU4q63fm5NI3rrA9a8mgCyP5qFqF/5LoyLllAFILP25a6+aneH5jjI/mJOcEl84ZSIGOVWJ0QM8a5OJ5GihYZU0iiQ19COGPcBokKVhuBaRt4CazLesb4Z5ELUKSXQKqyQsSC5qqUba02bhZ6BmxMmbBi6fwsdUiAh/9hDurtsG9Vi8XyOHreHox6kKiLV9amJDFSWF0upaV/Qi/HhAmFhaUuHPmCyb+PxYAwjgyIge3MsSQip0416T3/bbTD4avx753QigkAEZVrLsGIWrf2iTqwTR/nWIgyaHsaR/Eqd5IIUdum4OForn1tVuSB31QuwQc5bgHiki8m7GyHdmWHYPN7ySq4s8aFyqJkveC3IRkhSHSFswVmDyejIVkTPCECTePyjbE1LEOlyWyOJS/XBh4GfEGZK5LV5OGnNRujJbayFBDb02bcLJsoCwXgf2XHMbzE0=","translations":{"en":{"changelog":"### Features\n\n* automate releases with release-please ([#3406](https://github.com/nextcloud/cookbook/issues/3406)) ([5b486d1](https://github.com/nextcloud/cookbook/commit/5b486d1acc460227336f63fe9fcbbd645680505c))\n\n\n### Bug Fixes\n\n* category and tag navigation should load the currently selected route ([#3381](https://github.com/nextcloud/cookbook/issues/3381)) ([710eba6](https://github.com/nextcloud/cookbook/commit/710eba66358a9b88fb040050589d43bde3136633))\n* ignore currently unparsable images in graph mode ([#3384](https://github.com/nextcloud/cookbook/issues/3384)) ([919adf6](https://github.com/nextcloud/cookbook/commit/919adf61a3f71b0b52339bef997a8921d036c1a5))\n* **l10n:** Update translations from Transifex ([b7ce336](https://github.com/nextcloud/cookbook/commit/b7ce33665138c10b5b314f400e8463fb1b51a79d))\n* **l10n:** Update translations from Transifex ([b03a433](https://github.com/nextcloud/cookbook/commit/b03a4339727ba2ba077ebbee8ddf9f8fcc195e80))\n* **l10n:** Update translations from Transifex ([37763ab](https://github.com/nextcloud/cookbook/commit/37763ab7c4b6a2874fb529e678d744a72b4e1451))\n* **l10n:** Update translations from Transifex ([e09de7d](https://github.com/nextcloud/cookbook/commit/e09de7d0bf311620d333e8665f70a8dbc2138a2e))\n* **l10n:** Update translations from Transifex ([374227b](https://github.com/nextcloud/cookbook/commit/374227b5ad7184357b8d03382e50784869cc6298))\n* **l10n:** Update translations from Transifex ([9862550](https://github.com/nextcloud/cookbook/commit/9862550e56c197d52560da7cee9d32c326a2ea1a))\n* **l10n:** Update translations from Transifex ([b628bcb](https://github.com/nextcloud/cookbook/commit/b628bcbb8b9ef52205e368209613a4098fa7399c))\n* **l10n:** Update translations from Transifex ([9a1f53d](https://github.com/nextcloud/cookbook/commit/9a1f53d727dfa49a0f98af6a8f5bd39ce82325ba))\n* **l10n:** Update translations from Transifex ([447559d](https://github.com/nextcloud/cookbook/commit/447559dbed32472868ae16dc773bda611835e7a7))\n* **l10n:** Update translations from Transifex ([b32c917](https://github.com/nextcloud/cookbook/commit/b32c91743ea14a79b93a7e76cfa4c051f9175359))\n* **l10n:** Update translations from Transifex ([c5b2158](https://github.com/nextcloud/cookbook/commit/c5b2158ebe2c1191e7763a1e72ba835dc87a81a5))\n* **l10n:** Update translations from Transifex ([bc2dd79](https://github.com/nextcloud/cookbook/commit/bc2dd79bd9087cdb58ec3e3ba795f9c81352e959))\n* **l10n:** Update translations from Transifex ([aed477b](https://github.com/nextcloud/cookbook/commit/aed477bfa83520725e4f622cbb08b68c3c5ee796))\n* make mobile filtering of recipes working again ([#3379](https://github.com/nextcloud/cookbook/issues/3379)) ([0277775](https://github.com/nextcloud/cookbook/commit/027777540544714970860c167b805a7b22e31faf))\n* **RecipeView:** Reacquire the wake lock when the tab becomes visible again ([#3394](https://github.com/nextcloud/cookbook/issues/3394)) ([182d2bd](https://github.com/nextcloud/cookbook/commit/182d2bdad540ce5d03a055a43dbc767ee11e69cb))\n* remove regression introduced in series of commits ([#3380](https://github.com/nextcloud/cookbook/issues/3380)) ([b14cdab](https://github.com/nextcloud/cookbook/commit/b14cdab8ec3a15081bc73524effe194270b90105))\n\n\n### Performance Improvements\n\n* allow for paginated global search to reduce burden on frontend ([#3402](https://github.com/nextcloud/cookbook/issues/3402)) ([4ce370e](https://github.com/nextcloud/cookbook/commit/4ce370e4f9373e3a4f5818f6f7cd4516b66c3bd3))\n* replace O(N^2) recipe filter check with a Set lookup ([cc8a57f](https://github.com/nextcloud/cookbook/commit/cc8a57f181616c524e2d9a4d4a798b20cd8fdf08))\n* stop wrapping every recipe in a reactive Proxy on the list views ([83b329d](https://github.com/nextcloud/cookbook/commit/83b329d255af77882c3a9421512a331e1a520a78))\n* use individual Nextcloud Vue imports ([#3377](https://github.com/nextcloud/cookbook/issues/3377)) ([0bb252f](https://github.com/nextcloud/cookbook/commit/0bb252f00c31963406b3c54c8a25b0d92ffc980f))"}},"signatureDigest":"sha512"},{"version":"0.11.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/christianlupus-nextcloud/cookbook-releases/releases/download/v0.11.10/cookbook-0.11.10.tar.gz","created":"2026-08-26T10:19:46.108964Z","licenses":["agpl"],"lastModified":"2026-08-26T10:19:46.171802Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=31 <=35","signature":"fkdghzTbtQjY3oZuUyG/gLlHFIDURf2Iqad6Jn+6WIehsyT1/lxq3tIPSehY79TjIVZpipfHyyvw4iH4yZIoFZXSbgrJlAiY8y3JQgaYmblxdNuNCxh0re93d1ODf40UFnfJBKyjZGT3Xlfqe7OgzCBdLjaACsGutTiMPeigjzp1eEHJFJJapuNoifu9xa9hPJqvrXyrkuZJudR5RuO11EXu2dzGH59njOKNrBIXOlW4jlrQeJPqTsWxzs4GEc+MqMRPfRXTg0bxKR1wvKAKKB6wkRTbi8UWH7ae/OVCngC2Onkkz03emy5PSsWC9XONb8lsJNYwZdlGEuB6D0xmDbzGhLFzD5mDuVeJfL6O/yM8nHQmvUtWMko6PIC/gAFuEIUljVpI7xzFSTwS7Qko/dM5LJWB6L5c0CnwCco45Z2SvU50BVIlOlzzSiaKofy3N2eXS/3SWhPnIsZDN6RYX4wui04k0yyTZgV8ta5kVPk492W43UlufmlD9X1qnbOXl5Nur8c3HURMwGV/Wa8gGQ7+Rc7gaGZFcH3+FJbT1Q3toSjKKJmKwAGoPo9kFN7X5QX8QlJdCKO7bwDJOgh+GqpqQV81ytLrZ+6FY2NsseOO6q7F/+OqvYGl/ZovN2Qy9coeIbp4o1ISNy6sIKZ8XP4+KnZnOrpSFeitfkbBAms=","translations":{"en":{"changelog":"### Changed\n\n- Shorten the link symbol used when recipes reference other recipes\n  [#3312](https://github.com/nextcloud/cookbook/pull/3312) @xhon-pelushi\n\n### Fixed\n\n- Prevent regression from #3305 to not show license information on web frontend\n  [#3323](https://github.com/nextcloud/cookbook/pull/3323) @christianlupus\n\n### Documentation\n\n- Add AvoCook as client in the docs\n  [#3248](https://github.com/nextcloud/cookbook/pull/3248) @Logarex\n\n### Maintenance\n\n- Migrate to Vue 3 for Frontend development\n  [#3124](https://github.com/nextcloud/cookbook/pull/3124) @christianlupus\n- Fix typos in documentation and comments\n  [#3285](https://github.com/nextcloud/cookbook/pull/3285) @jannikbx\n- Update dependencies and enhance dev experience to show size of generated assets\n  [#3294](https://github.com/nextcloud/cookbook/pull/3294) @christianlupus\n- Extend the workflows on PRs\n  [#3295](https://github.com/nextcloud/cookbook/pull/3295) @christianlupus\n- Fix application deployment automation\n  [#3295](https://github.com/nextcloud/cookbook/pull/3295) @christianlupus\n- Add file needed to work with agentic AI on codebase\n  [#3295](https://github.com/nextcloud/cookbook/pull/3295) @christianlupus\n- Make source code compatible with REUSE rules\n  [#3305](https://github.com/nextcloud/cookbook/pull/3305) @christianlupus\n- Prevent issues in cron-based workflows\n  [#3317](https://github.com/nextcloud/cookbook/pull/3317) @christianlupus\n- Mark app as compatible with NC35\n  [#3324](https://github.com/nextcloud/cookbook/pull/3324) @christianlupus"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb29rYm9vay9zdGFibGUvaW1nL3NjcmVlbnNob3QxX3NtYWxsLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/cookbook/stable/img/screenshot1_small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9jb29rYm9vay9zdGFibGUvaW1nL3NjcmVlbnNob3QyLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Cookbook","summary":"An integrated cookbook using schema.org JSON files as recipes","description":"A library for all your recipes. It uses JSON files following the schema.org recipe format. To add a recipe to the collection, you can paste in the URL of the recipe, and the provided web page will be parsed and downloaded to whichever folder you specify in the app settings."}},"isFeatured":true,"authors":[{"name":"Christian Wolf","mail":"github@christian-wolf.click","homepage":""},{"name":"Sebastian Fey","mail":"info@sebastianfey.de","homepage":""},{"name":"Marcel Robitaille","mail":"mail@marcelrobitaille.me","homepage":""},{"name":"Jeppe Zapp","mail":"mrzapp@users.noreply.github.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9705882352941176,"ratingNumRecent":0,"ratingNumOverall":51,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhIiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjMwNzI0MTM1ODQ3WhcNMzMxMDI5MTM1ODQ3WjATMREwDwYD\r\nVQQDDAhjb29rYm9vazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK1P\r\nXAxtcKJMl6MmOIXVe3GOsR6GD7VZeUqXLR4F11L2kOxVLYzPq3Mr9vunCmNbBDqr\r\nD8U9nlClAqPGv40pvvbWDqZ2XBeXutbFktP15pBim5MsBF7pEjNgjYFKsvjFcppm\r\nYPSiEbXn+7IRnGPYsPCj2CMTtDDFEkSozsoWoZl+htSLzI/TRfynpFccOFTMw8px\r\nfXbNRc2khON8mzQxiKDs+PSPeA1iTK2rfeHf2KuAb2x8y/hL6zR9KuPhr7L48pTm\r\nbsfcNwhvbVp8ZRjlLVBQUAYE894Drhszkl0dUeuBxXKD2CPpvZ4UIbO5vvyVMro1\r\n8NlU1y1FCI8eJwOt/vTzVioNib/jvnVW62d5c/Vgdoamfo/BKsWXAVk6jtB/JAtd\r\ni3MxzQC358FcfvUOH28FpPq9M8F9yedxgDSC/py1K/59VQvtnTLrWcrZTeD9bP37\r\nxg2q6kUnM3bY5VinQz/rfEqoQCKzcuyhdHjv0aqE79idHv/1I54zu86LBj9bA0e3\r\n8gYlME+LDl/DV1q0OUQZmeuYs/vXvtgpucNOQbKoqSpJsZUqImJ1pi+2hapCi6gg\r\n3aCgyPlZVBgPW+r+8NsqwS3blsA4xmGfYarezi2Z1WVDRgLNBdQ9U+fP7PB0CEW8\r\nO0WAmw/4THSc9s9V8OxKX6rlXM/8/OCMFNO4E1ZJAgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAEsleqYo1IGaX40r3R4iVEuXUQDkzqjdHiNXdHq12fuDvpwzDLKW5XlT\r\na6uvLilXmDwajoJuA1ogTOkEXF/ctas1DQIrNh2u9w8Hp+iCLTDOp/0lWTr3Y/hD\r\nr3T2j4P4My3GzAbZrVsQOP8RkghmvoaYjGf21hHkrhI2EyGAKquylyZKOrnO1daF\r\nWSHu+MPjzAX3k4AVakbvijP4jVl7rBAqaOSl3//dgFBb832jahaKhF3tKddkgq/z\r\nV+C+nFNtMyRlgSSaKabakjUChqi8zqef1cGWiokCQzPwwp6HUQG6kVYIvZmbgJ4+\r\nbe3cUNY5bPe+3H1IqaEllLHkJYRXerQ=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"userrightsoverview","categories":["monitoring","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://codeberg.org/sarwodwiwaskito/userrightsoverview/issues","website":"https://codeberg.org/sarwodwiwaskito/userrightsoverview","created":"2026-07-15T06:35:32.256892Z","lastModified":"2026-10-19T07:38:16.658377Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/sarwodwiwaskito/userrightsoverview/releases/download/v1.1.1/userrightsoverview-1.1.1.tar.gz","created":"2026-10-19T07:38:16.645740Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T07:38:16.684051Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"dgxw6keoR5nDmgegensaE1/1awkKOpSiv5nbMmCEt4XAGfAHQ9ejqx+l5nJKO0sJ\nUcHooURroqqJueGWl/2aZv7hEWmWlnUO7XcVGwGbEowmgeE/degEqbySYmEd1xIy\nclpvuqRhi78bozyLK7u/pfWD4PnWcb+3KlCz3kNVue6B3RPN7g1ZMpJERrS/VHTS\nYQX+H98XYSB54Zv3WF3LVr1oBrnBAYSc+jcVsLqQWwBEtOlZIve2fbRDPjlN1r0R\n1bSdvoFYVvRRhQPswfF7ubAGnUqiJncHgO+3hgbHxFMPG7oLAmVrxy4h2RM6rRvw\n2imOkbs/c/v0AZru8nzLX/Pxk+Ekrv3HjD4UIRGKbOFH3pGm7KCYToab5i6fSGS2\nK0DYEKPhjcinsmSR9ca5fh2vljaZum46RFhTihpwFzBAwjAZM+ZmpvAJqurok/yu\ny8YKF9DePrSDVbXPUpZagPzUnUe0NjHAyfd+uiK55yYJeYM+yxkOgCzQuXIxBelV\nXnvKclJKuscj4IKz2PRMEjEoIrzgS89tV2lMXMQDyk3dlW5xAPn3f89wfIXCJwTb\nH+fgjgsvt9CJYTAnY6mLVS4/6A9qx8264JauIFUkbJ9vuwgG9D9OcPth+hXS6lDt\nN/Gt9IhE5f7X4YjLWWN+K9rcSpkuK+quutGFCnH/JrQ=","translations":{"en":{"changelog":"### Fixed \n\n- Fix integrity check warning on mPDF temp file (#10)"}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/sarwodwiwaskito/userrightsoverview/releases/download/v1.1.0/userrightsoverview-1.1.0.tar.gz","created":"2026-09-23T04:25:30.461868Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-23T04:25:30.531886Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"cpUe1Zghbp4lq1txY2CkZtKjRjqab2t2KHxJmmElXmHHeRBPnmkBTKqBH/q692YB\nkn4wLHTrdvME0L3LZX2NHMPqbiuwGfW5wJJ7W8qKVEfN6eZFMgsE1c/dfD8Pag7D\nU3dN9ynF7H8X82oPbbsFtRF8va84FS3fZKFrBY4QCigahnUOJU9qLYM/26rIe25f\nakL/5/3jEhkgieAobY1lT1miXN5UbDIKAA5LEu0jqENBXioBx9bkeejLeoIXYTQ7\nqRg9aWMVz5PtNDoFEU3XS9PVYq14H24Sbi7XIMM5CS0zwXNepj86cDwihgbUVPn6\nMFcXMTwKYVbc4T6O+rhw/d3a2LnFPz1lxo6K3afIwF1K2OSSit7R0a7fDBBHFII/\nfxHvzmxslA/A0Mt+GeOLVmQ4Q0do7MrwmSU3Xk9rRWblJV8ha/QAeX9fNlsMkprv\n2tXblBMB/VQA5PHmELeUcYyYtgKv13uqY5qSq/vTL4HsG/E5Et/TChZ9pq8LTgYO\nABJ/yhxl12YYZOU9GnHggxKlfkAd+4Iqg8lSssQdGON45VYSMpGOB1t4HFwYaR1n\n81LkbYOWHzVs/xZiKJlhwTAnuEkdKpvzPm7iJqU7MT4JAoL5bxsHRlOa6uOjhKS3\nFooZJpYqtEYq1P+PP7KAZNsi02BvqtJv4f3wYe45Iwg=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Fixed\n\n- Fix access rights of team folders that are missing in the PDF and CSV exports (#3)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvc2Fyd29kd2l3YXNraXRvL3VzZXJyaWdodHNvdmVydmlldy9yYXcvYnJhbmNoL21haW4vc2NyZWVuc2hvdHMvc2gtdXNlcnJpZ2h0c292ZXJ2aWV3LTEucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"User Rights Overview","summary":"Security Dashboard for User Rights Overview","description":"A Nextcloud app for administrators to get a comprehensive overview of user rights, permissions, and access control within their instance. Monitor group memberships, team folder access, administrative rights, and user activity in one place."}},"isFeatured":false,"authors":[{"name":"Sarwo Dwi Waskito","mail":"tito@almende.org","homepage":"https://codeberg.org/sarwodwiwaskito/userrightsoverview"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhNgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjA4MDc1NTM4WhcNMzYwOTEzMDc1NTM4WjAdMRswGQYD\nVQQDDBJ1c2VycmlnaHRzb3ZlcnZpZXcwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQCmTHcUDM4sVckmk8Nky7NLCBJaZP4s6tzIFLAs71emWx0OU1TN6ytX\nQ9xbT147zeE++KG7x6dJTlsFcTeVePc12SsEjvJfJWy9VypPgj9e6zpPX7/b0jv+\nrRASCMxdHJPLiyvDE0qZHyZF9ag+UdNOKPpaeN+XkyoNFWXVEzlOePK2wvfC1pDk\nbFYLXiQ/KAR7M1SalDEiZgm6FeFRX+LQnIkWf92v4KUR0FKCHPbTIMZqVD7vGDBk\nKIDYB9Wf4wtmpKRiSeuuudlJY1bAdBO3R2HhW9jz48uKlNBXglxMOX1vLe+yGE24\nK3mgwSafV1QbgR8+oqiiX0AT81jotqh9AjI3zYMDDMSm6unUj4K/0HB7YobLGvEd\nLyPyrUFEH2cGKQpklnUznglFxuk4weSFkew4eVj7guox5+VoMIZ953iqR1DZ3cMm\nuune3rz1aYdWuVLbUATFiTDYLF3ISeWdJtmZS2E6lJW+R2Eq9993qcXmW//SClVr\nRpKhmgpdquDRPAwWKCYzemwo1OnGOybp2V8y+G/xJBEOiJ9lq6GmhnMCH3bar7Dr\nqiCUMRxchPBmmLfqGiK+N3woBFWHsT375NG4vqnqoc2y/83uBtJyCCW9hXC0yLDN\nYr2ynWIZGGy/MyEVs+gSt/53423rxZgEXJo81fl9SkcZyISbQpLz0wIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQAHCzXMUe47zOu2oMF0VtrLmAFeMvZN6OaUkds5rwHa\nI0VIAlbU9cShR8ahGUGTjl1HN7+zwSbccKziKefgQqbFYuACaSniTDz0At9B46Vq\nRsQwPjBFrNUyx0f4Znj1DGNit+Y/BmtmzakyYkvkBPmy1bWiHu7Xk/qCuQkBKyKG\na85ZChcG97ZY6e0J5Hvo4jTaz/K80X2UL+sGvPvbktwSgATGkPD37+/LsieHkCYS\nwIVRkd0urGp2ADBRwzmYgaZKxDmIk0eQMnfXWSGIH/r5C+vmIWaJE8CSB43JwooT\nLO31Pr3+r7IHAhQ+y4+I/q5/4T1wyInH4OxqZrVIv6Jy\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"shiftsnext","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/csoc-de/shiftsnext/issues","website":"https://github.com/csoc-de/shiftsnext","created":"2025-03-26T14:14:36.841236Z","lastModified":"2026-06-29T09:16:11.185843Z","releases":[{"version":"2.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/csoc-de/shiftsnext/releases/download/2.11.0/shiftsnext.tar.gz","created":"2026-06-29T09:16:11.171947Z","licenses":["agpl"],"lastModified":"2026-06-29T09:16:11.227749Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=31 <=35","signature":"LVe9Q/bKr0TlZJT63peEAxPZoiYGIppUMAULEV0QsWBIl4lOZsLjZq7QqxiYA1Xe8PAqsj+ti9rv/db3aEd++m9QnNQIHqOHnzCimyb1C1ZcpLjjFDdn4STkK1Yz//Aq0ppQ0pMNnbnl+nzonCSB99QHuea95UiEpvDcyyrmZhWLQZ6HITwjqa2gawRsDhWpHdGzUEaAguPiHWkVc2akuVs0chYEhzL9U5/WrxgDxC77lLRpRu9ofzjiX5Q169pb5tmPiGR/SY+TG/B84C7jadbQAq3hynm0RD21D9VsdYk4KI83AicagRUQi0LsC4Nn0kIjAyH9ohHAKAiT5b3TO5fJHHd9JYLkG0isnHjl6LoZW7ZrDVvnYPGfaeRvUtGS2bS70BlpFSfPo/j0TGyMtoKknxvZxQqExKdimi+/6+ignTJxr37jxahT6PdCY7a2vSugXokJOt7YvxiMRGwYfZIDebqAV2QulouZGpMqZFrW9gyeQ/YiexWzmP6kMRfrHcB/5wcysQOgj5NhcEIz/+N2DhCAxjmmexoIBrsd+1Zt5zKL0h+mR42oQyrtrfVSDRNWmQf4ZZJ+Rf4j2fS+WX7ueYzKy8+l4hnbpyqhaBNACTvyDFgI3eddbQQPG/nzPLfZp9EPbXhPuU0b7twWGpRJ63cp9M7l1t6qymyxLO0=","translations":{"en":{"changelog":"### Added\n\n- Support Nextcloud versions 34 and 35\n- The calendar to which shifts are synchronized to can now be specified per shift type by appropriate group shift admins. Previously, only a single global (_common_) calendar could be defined by the Nextcloud admin.\n- Synchronization to the calendar app can now be disabled per shift type\n\n### Changed\n\n- Update README regarding shift type calendar settings\n- Remove the calendar sync button from the shifts view, as manually triggering the calendar synchronization hasn't been necessary for quite some time\n\n### Fixed\n\n- Deleting the _common_ or _absence_ calendar now resets the value set in the [administration settings](#calendar)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nzb2MtZGUvc2hpZnRzbmV4dC9tYXN0ZXIvc2NyZWVuc2hvdHMvc2hpZnRzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Shifts Next","summary":"App for managing shifts","description":"Manage your shifts and sync them to your calendar"}},"isFeatured":false,"authors":[{"name":"CSOC","mail":"dev@csoc.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhKUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwMzExMjAzMTA4WhcNMzUwNjE3MjAzMTA4WjAVMRMwEQYD\nVQQDDApzaGlmdHNuZXh0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nzQucOX0CAg049FQ4IIA9sWolpwLQrkFnCaDFjmKnD4orEVUk9tSaLcGh758/klkx\nAaROTJM18nDhyaTJWGwFrETdtjGpd003sjXPMs87OHTc3AwfI6Nt4i+2EOMtna+A\n4v60kUw7/i7yKNgUgOSI6CXchZ8BwR0matHqG0dZUSUKV8VYvTBqsRxiNDvwNDfo\n8QSxKM6TisuIou33THaN+W+bd0p3JbCG7n4hjzdGOlatu1tasKn79+tdDl1a7XS9\nb2BEFopYqBWcgA2jyyL9UYU0I75qZ8X/njPoeJRAehWA1x3KR+cZpt+Ls20FmPj5\nKOP067l5CWSD2IbC6gvMeFl4IDzgTFo/ZgwoWwFPhLpfGH+DbmIVSmy+ix1o/CJN\n7iHBY3wGgvXSTpX9J4gbq468/I9bqTYQ59f5QBKIccbH7krry4rmp4NzCMLmZNoQ\nWnWh0ibOeKw1NcB+z+pFVB5XiUIiaNTSYydAf80gU2hr5q00YJybBfwvyzpdQwjR\n0lEvORL8qCLX0ya6/hd2Ov8HT65zjPMgXgPHSpFIf8uSle1aBFZIQ6P1JnVH08wJ\nIJ9iOYcQYZ5gz/JiO9ynhHZh4nbE/hojqvbMG7tyLNN4rm0KSyaWNG4asIWxeeau\nt/MWjrhAVgpANslxKfrdoUB03jAmzdDFGgFQDp3tlE0CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAFNkRUTvnsUfElh1G/MPVWEm4JkxrIeXbtORXt6Q+f3AA6dKugC9N\nZJoI3RcRsi3kL2FoQH9olHrejLm7pmLlm2gZjzp45hXygCU6aKiwkcCr/1IzsStQ\nfHtpWndmbXD+Hxv0xjVBoRI1yKDmXDFlZB1fxTY/RlZAuQPtWruM3Eytk9aQBZOD\n6Z4cgtlr2JEDfvucz4AH2COHSYzIEgUNKGyjvhJGeZV8EgP/ucvpQ4T5wzUp8C9x\nOa0nPFd69HSjBkVg1xQrqF6SLTkL/6lF78sCMZrOSW1BmhMqx8rNXNzF6Tj3nGYF\nck/eZZaByu5iaGQMgU7GrdKY0rSu0sSrsw==\n-----END CERTIFICATE-----","discussion":"https://github.com/csoc-de/shiftsnext/issues"},{"id":"digikam_face_sync","categories":["integration","multimedia"],"userDocs":"","adminDocs":"https://github.com/keithvassallomt/digikam-memories-sync/blob/main/docs/install-nextcloud-app.md","developerDocs":"","issueTracker":"https://github.com/keithvassallomt/digikam-memories-sync/issues","website":"https://github.com/keithvassallomt/digikam-memories-sync","created":"2026-09-19T15:37:57.518965Z","lastModified":"2026-09-19T17:49:33.047658Z","releases":[{"version":"0.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/keithvassallomt/digikam-memories-sync/releases/download/v0.2.0/digikam_face_sync-0.6.1.tar.gz","created":"2026-09-19T17:49:33.024914Z","licenses":["agpl"],"lastModified":"2026-09-19T17:49:33.103178Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"KP+rjcTdvzpJkj9MtU5QuhWI/ozQXib6lTeEX0w094CztfsFAIddAQ8aXwFKvcLZ\n+Xlh3gxiNUiU9PowfvRt6r2KP33co4/hcIqHnKKGPyC5z21PDnecyurrhjCL+vFU\nPiZ1y6dVll8fCxWlg/KV9IUdGM22+AHXCuEvFeqRFVI3GUltq/olou1ypCD2DHuV\nDZZNhw6+uO9OeYbP6tsu2J/kGucEZj9CXj4bONLwd1EB7FUB3Pn2WeJhLZjaeBOA\ndIpLAx0L3+5t3SUGxAjdWz3biz2xBQ8tqmot0jKthtU2zFfB44piC3E48CV7AU6s\n6EDF8w1oBNEnyOVfh9NlcTt72RWr843gVnbH20IRf6LLUtxmqqWyQa4d6ZShJGDw\nJ5/X19ouZCiTzNiMw7ZhIl53HCAo+EcmoFIz3rrLMY8PmxMtC7gIMPmg+bZ7sKHz\nvrI4akV4vEJzBS6UguFzdaHHHO0uLujBci5ReyZCi5AkC+2oxYtUFdSxmh84FGnn\nZbfRjnloB/zfzUiesP1xMRCkDPhA1b4Of4kr+j/M6HQueZcA87sthhb2pym43Qi0\n+qsKzgy1wf5cN0KK0fCafme6KO5OunJufCaMNGthgaidp9C4gsMXnCUFQVEcjnL3\ncoqu9Mv7vAxcgRuFMoFVW5QYbE/Hc012GJ/TA5Qi1Yk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/keithvassallomt/digikam-memories-sync/releases/download/v0.1.0/digikam_face_sync-0.6.0.tar.gz","created":"2026-09-19T16:22:45.397267Z","licenses":["agpl"],"lastModified":"2026-09-19T16:22:45.474306Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"e/AXDM9oqPNOv2Bd5Glw9jtZ4yVSP5FHnIYHw5BZ4hfuWBvDQQHkMckaQkJ+Lbfp\noM26W6ui/ReCFQeHrQ2+iBKY0I+IP9bVC1XAFreYtVsTp+4+qUr1zug/oc8y3cX4\nLcGyxaKGJ0o2jC9d+Y0zYvBD5TigxhfURHM80lGvkGI/s14nrrk/CQ1PKiQJG3l4\njDO3miQtp2Z+z58GpRQ5wil7GEeQzV30KBHrpWEcNBAb0I1FrkyUSXzdfTPcV6CX\nR7nnNrDO+vhJX1gy1g0VnDTWbDkXxAwYxTZOctNlqndfsrPkJvjRqQiBm2jyR3V0\nC45/+TWPOWc4hstHqAKfQGR7fh/MprUjWYKY9woUwZyMJRjnkMk1rOZ/aYVpzJvd\nl3taqyILqp1Hps+OqKIjYmzcF9+drcduIQgsuhvotwAcUVTAt53osHPWouDnhi14\nBIlAHMWB/QC76GVzM4CJ1Wfs/lWWJVnpb/3IWxoBrGbjban2DQL6wOWJmwGE4f9X\nQ1yqCz4KWhbPa3zFn1eVsG2VERmgqqS0ImPkoC+/umbs6qnyjl87Jg+B5uRJK47Z\nYc3b9L/5J2GuQc3Tl1hWh6Zkagx1v/UYtUgc1qJ5OYovo9lzXOEGc8OBl1HPGOrU\nDEJiWZwYZZB10LR6hEW+wOmXd3W9esrTZDNe1pRmZ7U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"digiKam Face Sync","summary":"Connects digiKam face rectangles with Recognize","description":"The Nextcloud half of DigiMem, which keeps face names and rectangles in step\nbetween a local digiKam library and Nextcloud Memories, in both directions.\n\nAdds authenticated APIs for importing digiKam face rectangles and reading\nnamed Recognize faces. Face descriptors are generated locally with the model\ninstalled by Recognize.\n\nAlso reports a cheap fingerprint of your named faces, so Face Sync can tell\nwhether anything changed without reading the whole library, and whether\nRecognize is busy so it can wait its turn.\n\nThis app does nothing on its own. DigiMem itself is a desktop application for\nLinux, macOS and Windows, and is what talks to it."}},"isFeatured":false,"authors":[{"name":"Keith Vassallo","mail":"keith@vassallo.cloud","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE----- \nMIIEDDCCAvQCAhQfMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD VQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI MTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB dXRob3JpdHkwHhcNMjYwOTE5MDg0NDU3WhcNMzYxMjI1MDg0NDU3WjAcMRowGAYD VQQDDBFkaWdpa2FtX2ZhY2Vfc3luYzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC AgoCggIBAKtaIEzvXJx7f1Z8qdE9f3ao4fRI6HE1/tTz30zObN8sodI98cqVkeG5 CD8BD6M/tQS5I1bW9glqa3ux4GMUMewgTur7Oi4TN3xAKwQvk0zmnBgqvI3x7JCB KxcTnXjPnZYf7CIjXifg0PTKrmo9BOiJaakaBt81yPoYv9VyU3xHt+wiyKzQ+zzq l0A4xuSIJZBTKxv27esViQ/m3NOZNsfhfnq2J1eXFeQq1sa3p2Pu74qN7aAkQFtF x1Z6jGtooEcAk+JZpU1/jucf4axqOmaV3Tu0MzczoM2wB7cLLyYvBfk+csS8sYlF 6LBU2p/0xh9MocekuAigeju8k8y5uE/CaOCBpbg0s6nkfZswx4uvSxf/sqymH1y8 wiH4m8SL65Mf7odcQPFrHU5hRcFgg02AWr5rlyeQrdgMMr9J4Ul+pjZbb/kmcHEG 8859A/1qdZtjS+Ugr52lzx70uOMmZ/gC6qr3vh51dyegugDAmf1oLypZJoen0IZz eIMyarVx08wINmDvVJyUOovxt6xxCcIvxkEHUfL0EStOryAQ1aQUn9bwOTC9J4Wd Z5zqIiXZfBwfQXlFw1znejJ4VSRBCxzM1hJfJ0bDBXzucQd94jfVy6RN7+uHK179 N+Ye7M+KxRkeK+qjkx8hmyvrEjG2X2F+oO2kv00xyfY0qrmvYa8PAgMBAAEwDQYJ KoZIhvcNAQELBQADggEBAC9UU4kRXxfZBRe2qIWtcyDMY8kaLoOjKac0tt75tp00 1VPNCcEUj8cMwtmKkMazGVarTxW+MkQajO+iqL2eIDQ5lRTj18EQCh5eWBqN7iB6 BJhy+byYniLwO/k4zfS38THpRYNnvM3yMtpVoX/qFHh8kvt74jm8YVf5dofZuuTd gew+ydHAgin0EaypbOu4nzPpcjqGkazDyWMtcccXPWtmwtpnNQLF+yCtKn/WEjd/ nqoH/peCW8zdybqp5HM1ItSCCMxnjPEvpdPCsaWmnalB9BoSwkJSx9C3YyVhMQ8Z A/vDeaBbaBa+UwlZYxXQ2mFFej43AvGZxe4jjrGm9Dc= \n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"keepassnc","categories":["security","tools"],"userDocs":"https://github.com/StudioCuda/KeePassNC#readme","adminDocs":"https://github.com/StudioCuda/KeePassNC#install","developerDocs":"https://github.com/StudioCuda/KeePassNC/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/StudioCuda/KeePassNC/issues","website":"https://github.com/StudioCuda/KeePassNC","created":"2026-10-17T08:25:14.874840Z","lastModified":"2026-10-21T21:08:07.733106Z","releases":[{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.9.1/keepassnc-0.9.1.tar.gz","created":"2026-10-17T22:25:10.955254Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T22:25:11.033837Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"DELI5Li9GQbXWjpRtK56JkclLT5559ffoFzoH1SAWuBFW1+I9AwnL/c5yhxBPin5GDJlA7Xz03ZSTZ9dK2wJ+YMxjcwijAQpFaPcVrOBrVc3BIhYh5DjfkBW58a6Mcih1e+ZaYOlJ44IuGxSrsJidclilNEGNsHQ1vWTmspiWk30tcZJ+Jj6L8aDVWRhB4x071Z+dcIMnhIo2Cxeu4ogV9BYX+RSmo2yux6Rk8trU+s6jNyZ7WKCDL2UP3AiCcYZ12H+AbYKccH90D5Q01E4Oqje4UA380RalIB9vyXnAkPGMa3SaAbkIw5o67WXvZOjWeODcZe1Ua6D3XABcrWL90Pcp8n3C3Xf291SSA2P89oLbrp/hHS9BQPPZe5iOuG/LVSU86TGJlx6sm7G1f9Z3JyvhcNtl6C0pSoGg7sN9ynR1x2hVFJgi+OP4ANOTQ/GRPaXljnqICVEsJTAlMEybClQrA0ovm7u05iVb9ZlkbyMLEyfVFu9LSrAQvl0MA3cOlxl6jCen1hcVVz2+lgRxe77o3TAMSgFEwYms55JAAsbRp33pLCSwIIJBizYfhE/Dxfo71ZUUxMRNGZ1IYqddsKMHAGfPOU9v072+IDoOALeyXJj/i0uA20V51mu9+sd8b62UB1fxak/GSS63AqNZlEsMKzWyAHq9T3D+6wAS70=","translations":{"en":{"changelog":"### Changed\n- The App Store description and the README now mention icons and the database settings."}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.9.0/keepassnc-0.9.0.tar.gz","created":"2026-10-17T21:38:59.786056Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T21:38:59.836805Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"ZvSfv5hPzVhmr73V7K+KY+ISucEti7DYBMPD2El9EmvBYAj5N9U+NrzLeBQaduIXrgGWQf/XzXLhTGoPYSE0zKZUbUBFwTxztjgtQGBVNKSklmh8xDBH5xZ7B9D2WJB1gSniC5fVtuW/mTe2KRY3+aO0VWlmkhIKT5iVIqOU3Amf29Zucr5aKMjZYyHIQad7q4UOoQf5YUiHJACwyBzBKNVLJ9Ytplc+HKYEDLZLQ8hxmwI9RwU6Il0FD+pQ9/z6zeYRxynrSihv7v6GjWrhPhaDdBuE/60j9UH994d3OL+QTPLmiSqRGKyrPgztcSJJxbZKMrjIlIMf0w9BNGNOvuglODr5KUy4ZuVmylzph1/lJzKlrfUJFMVI9Qb6bGKuCrDTCRyBXXLTwtNLWREZErO7GVpNia/MCjzHrt0/3WGAvYJ362hFP9+eSOP6tqi4GMBQUqpmhEzMyGyEsPOzYV2+1CFiO4Qq4JCOPpNoDqnV1OhPuIZPzQC849E0cTnbuVRrDS/zsXttpAcdCuUxYcCbBLzxNwlVU3VAtOQ2dFYFmC/GsjJvv7ctEg4nLr7Q6sqxOJ/hZRSpA8KrBagrDw/CWf2onnFHC4RcSQt4qvs4PxgXjp1FD0wmP+jj+HZQcZTc2bG6FB1NzDm1QAIEnNlJCNsTQM0XjOswpRtaZwQ=","translations":{"en":{"changelog":"### Added\n- Icons for entries and groups: pick one of KeePass's 69 standard icons (redrawn in the app's own line style) or add your own picture. PNG, JPEG, GIF, WebP, BMP, ICO and SVG all work; they get shrunk (or, for SVG, drawn) to 128 px and saved as PNG, so KeePass, KeePassXC and the mobile apps show them too. The same picture twice is recognized, unused ones can be removed, and a group can hand its icon down to its subgroups and entries, just like in KeePassXC. Nothing is fetched from the web, not even favicons.\n- Entries with a standard icon now show it in the list instead of the first letter. Entries with the default key icon keep their colorful letter.\n\n### Changed\n- More URLs are clickable: a URL field holding just `example.com` opens `https://example.com`, and extra fields with a web address are links too (bare hostnames only in fields with \"URL\" in the name, say `KP2A_URL_1`). `Ctrl+Shift+U` follows the same rules. Things like `cmd://` or `{REF:…}` stay plain text, and protected fields stay hidden.\n- Unlocking no longer freezes the page: Argon2 does its heavy lifting in a background worker, so the page keeps reacting while your database unlocks. The worker is shut down right after, taking its (possibly gigabyte-sized) scratch memory with it. If the worker can't start, the page does the math itself like before.\n- Database settings, part one: in Reports → Database, \"Edit settings\" lets you change the name, description and default username (pre-filled for new entries), switch the recycle bin on or off and set history limits per entry. Tighter history limits trim existing entries right away, after asking how many versions go. With the recycle bin off, deleting says \"Delete permanently\" and asks first, instead of promising a recycle bin that isn't there.\n- Database settings, part two: the same dialog now has a Security section for encryption (AES-256 or ChaCha20), key derivation (Argon2id, Argon2d) with memory, iterations and parallelism, and the step from KDBX 3.1 up to KDBX 4. Only browser-friendly values are on offer, up to 1 GiB, and a traffic light tells you what phones will make of them. \"≈ 1 s on this device\" suggests iterations but never less work than you already have. Before anything is applied, the new values get a test run on this device, and you are asked first if they would make guessing your master password cheaper, need lots of memory, or make unlocking slow.\n\n### Fixed\n- The database info showed 0 iterations for KDBX 3.1 files with AES-KDF. It now shows the real number of rounds.\n- Saving after someone else changed the file no longer undoes their encryption settings. If KeePassXC (or another device) beefed up the key derivation or switched the cipher in the meantime, KeePassNC used to merge the entries but quietly write its own older settings back. Now the side that actually changed them wins.\n- A database without any tags no longer greets you with a lonely \"null\" in the sidebar above the recycle bin."}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.8.0/keepassnc-0.8.0.tar.gz","created":"2026-10-17T16:23:19.288207Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T16:23:19.823145Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"jsCU16gJOABRmaQ0zjhTeB/jKE4wE4RDtBTASniakQzbK4YqkzGTirPECfKMjc3GqHvAog7WEz78AVaqiUYU7ijeTNCQVJLOzSUcgaEPIXZ+Jmc4c33ARWwJFafbDdt9N3+wCFwV8R1t0qY9diCUPcCv6RpemJNet0/ju/IDNejTjS4uNmMXt+FmvLniQgAtqUKVm6OWI02bYPdSMHErz1yX4fisF/0lZ8X+EReWvtJOLAhtw0Y6hghM+jIPfV/cIunje2nMNTjiFw/U/c+aSPhyqfioUrHTELL5m4rvX2sA7RFaEP+jdIymKAFm/OI42EhTi01e8BCkdNnyEPnN9py21WMW9n0S0n0sveu3XYTY4Jh2CaZdBsOQMW/TWL7rOi3mG8P18pRLkwhUvD166PEWo04xWBRrW/q0SzJZtsAex6J82HNWhlS0oDSmoqG2WionOLhuaS8h2KI14l7l4h15UIXq1e49kjSBmVWAwgzd3k/LT+DmhFduJO/bOE7iFJzGbyYBJv++pAqMTHWbuykdznZPEJ3OwSYgOzMD3RWr0tPgxJxdr3Jf9VHDN5kLgJft4Lvs/xIVLvwdZYmkUVJgdJzI53OnTdnX7yKFGop2KxlaAaBMXms5p49KWYlzqD650Oh4zFBFCz8nqgSLVJOgwEYjdUZ+nft9qZjv60s=","translations":{"en":{"changelog":"### Added\n- KeePassNC now dresses like your Nextcloud. It takes the instance color (or your own, if you picked one), follows your light, dark or high-contrast choice from the accessibility settings, and keeps the familiar header with the 9-dot app menu and your account menu. Garish colors get toned down until text on them is readable again, and the plain Nextcloud blue leaves our night blue and gold alone. New setting \"Same as Nextcloud\" is the default for the color scheme; \"Use the Nextcloud accent color\" can be switched off. The header has no search, notifications or contacts menu, on purpose: those need Nextcloud's JavaScript, and that stays off this page.\n- A \"Pronounceable\" mode in the password generator: syllables like `Gosher9faggud3pizguz&dadkor` that you can read out over the phone or type on a TV remote without losing your mind. Letters that get mixed up when spelled out (c/k, v/f/w, j/y, q, x) stay out, and so do braces, slashes and `|` between the groups. Out of the box it starts with a capital and mixes in a digit and a symbol, so the usual \"one of each\" password rules are happy. Every syllable is drawn uniformly, so the bit count is exact, not wishful.\n\n### Changed\n- The App Store description is sorted into short sections with bullet points instead of one long paragraph, in English and German.\n- The App Store listing links to the docs, and the app declares itself compatible up to Nextcloud 37 (newest tested version plus two) instead of \"forever\".\n- The search field just says \"Search\" now, without the cheat sheet of filter examples. The filters (`url:`, `is:weak`, `-tag:` …) still work, the README has the full list.\n\n### Fixed\n- The generator's strength meter now shows the exact entropy of what it generated. It used to guess from the characters and rated a six-word passphrase at well over 150 bits instead of the honest 77. The editor keeps the exact value as long as you don't touch the generated password.\n- KDBX 4.1 files with custom icons or plugin data: their \"last modified\" stamps are now saved in the binary format the spec asks for, not as plain text that KeePass 2 chokes on with \"Invalid Base-64 string\". KeePassXC never minded, so you may not have noticed."}},"signatureDigest":"sha512"},{"version":"0.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.7.1/keepassnc-0.7.1.tar.gz","created":"2026-10-17T12:13:46.685551Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T12:13:46.749202Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=99","signature":"nlQfbS1BKHzFh3lkbZeSXene2O1AEk2vARSerIGl+57V6366StSjKZQx9DXop8eBGaTZGrDoUmJ6mG288jVXMmddlExlVMAoHxxS2X0zn8yfDeqnGgUa6B9/AGMIfB6Q3Qr0rAyySc2q0lV8BiNtUYjQqTRM2vHK7SbCTWb6CJBhMnEuRUF19+Kgjc7cxpLCGcTq3LOAzxMzebSMShyGXKxD8Uo6AUMwpQ9KbOVSXTzRVBUKjJ68bm1DJv0ZxtSv9qzlma31ID2ihx1z8voVXKPO7AftGj++PYqicPc0yZCOQsL0RZ3kIwrKsMWfhh0deg+RkLuGJ4oR83klbg36BYreSly8oaA73ThWCGOvNtp+rwAmVwrl3SkU/N0hQPKD57XH86jNync36CVJFQbDdB3kra7cWtZ5Pz+Qn+8inmC1QDA2jsKtUISrUNhOTrJLzms1eAMdBal34GmQO53V8vHxv05oNMcCXxmcJz5i3mcsQKytM35r4k5IiIZzv02nmLfVDta4/+cRtGvowgpIsCd7eZRD02AhK8pDXVJ62KZvcADdvfwhjZY8h/6hM3DJuzFCA/0vK0uLJCoGw+JfmnyyXiep/ULt2gX1A6msV1g0PT8SpBMkHuvckQ8XY9tsjCxt3iLpAJgFtFpuZGLwcC1JhbXLfDe26Mu2itezVo8=","translations":{"en":{"changelog":"### Fixed\n- Custom fields with several lines (KeePass 2 and KeePassXC allow that) now show their line breaks instead of one long sausage, and editing such a field no longer flattens it into a single line on save. Protected fields stay hidden in the editor until you click the eye."}},"signatureDigest":"sha512"},{"version":"0.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.7.0/keepassnc-0.7.0.tar.gz","created":"2026-10-17T08:35:21.028768Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T08:35:21.102508Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=99","signature":"RRYa6F85Or+YFtXfIHm0QX8rr2VWdPZbnyg+6kqXQPIItAiMs60ruMHE6DsiQjJcMrCldg2PQke95yFlmZnAML5h212q3MBcuJeFNzafo9ORIbWrGvytcLCXg0GDJR0ZMclLG2Lw3G7JE2Kv9xUgPOMhy0x2TN7nJgIjazSYVDtxX0JGxCss36xRxpl8q+hHxjX8LatFEXRyfwmC3H5nFJZV1bxCdVxnIvlRyX6AcpZNbY1OSyQrPUkrTzMhmt0SVkPOAEoIv3lu81ifuVzr8owjStsWubnIP2Iji4jFR5janCcIntIxClpZcIsCC0+LjnPhclx25wA5hn5XfsT88M3MjPdfRYawcFPCTiYLbu9mNuoPqcNpPdotZj3wKLnljIplX7hyeb5oeH8R3baKbIT2d2BgCrtWPkyEMoxQfa4m7TQAWFjd2kDR+SsRhi/Ez/fEcy6DV74omu5tGL2+MweG/Q25aQnjfQyfjQTAaUA4y1xGEVCQyweQpzW8ZA4YBCCdtJZymjlkNO77+TXksKDr0d23fySoN3o2EzwUSXWzq+980BIxhanBUwOYdaIK0ntN32m8kcnIvST1UXsWSdxUE/yzFPY+7f+GazqZADlIhDCrv96vlSOhHoWYeL55FriSqo4NSawL1LZZYPdaMgr9aLPHV0YjPaa6r0oky2g=","translations":{"en":{"changelog":"### Changed\n- New colors. Night blue and gold instead of the indigo-purple gradients: warm linen greys and night-blue buttons in light mode, a night-blue dark mode with gold buttons, a sage logo tile. Contrast checked for text and buttons in both."}},"signatureDigest":"sha512"},{"version":"0.16.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.16.3/keepassnc-0.16.3.tar.gz","created":"2026-10-21T21:08:07.724318Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T21:08:07.790213Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"KV9h5DqsjBaWIKCoM+bUyieuujpwOaEj81vaN1OVnT03vZwpyPHl53aDjONuUIa3BBzEwW1t2ZPVB87RPHGoVEa8ZF7Zn1zLWhvv+neR26/w6Q1t8KEi19XbhI/d8dIpxObKoE+fGrYmv6mvLbjY2YYi1NDPzLHaMNCkLtF/2wxJBHECmGGhjwq26lBPzH2MOLmfsOzDSaVbScWPcuI90jaHP9rhP2xBoGmJDcF8qeU0ekKq6mAHcM/OSWy6RWrK8pcP6UvzsaxeyKDYiLk1aey84U8Kvl9OPTeQnCWcTm8ydvronqH3NiMu+4aV5sylk19oijlKKPeRp/cvcVus1PDxxivrCT6UKGlIXDyzv27qDpsCB1z3P3iuLnjNmeGht0fEfUSZRd5LaiIRmFaRnqA+UcHf7h1R4PbCw/JDK/SjATyMGJ5LyVl/n7PyQcWwLT/yLxesPImY9WdQD4+FJ1xKQsI4LepU7FAZamLx9+HLYh4DP4GmdmF9fP7SwKjm4ZLVTAgKhE5UDaNNl32JD2zNrYJygxscqq5l30193PUbrDgzByHFOMFuJtLHhkpih5gqFHdnj9NIY5fexVuZdJRWG5EW4E8c/iGZdXBmw5d0tS+bXLsAn09EZyKmk2YJyTC8kQSNYRslzPSh7GzS6nxw+21thfKkpnBXLIKHOcw=","translations":{"en":{"changelog":"### Fixed\n- Databases that were saved by KeePassDX (Android) could fail to open with \"too large number\": some apps write a huge \"never\" value as an expiry date. Those dates are read now (as the latest date KeePass can show) instead of aborting the whole file."}},"signatureDigest":"sha512"},{"version":"0.16.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.16.1/keepassnc-0.16.1.tar.gz","created":"2026-10-21T17:57:16.073347Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T17:57:16.143897Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"AS6u89TYLrtbgylFkuZvVyGgIlYuTnEOosdZJSWRPb6n/CchZiG+GNCF+Pu8hELdj7vx4AUCRax4HpBZL8n2QbZ2Br8iWQVp3eKylyukBWNOsT773qdkaXoxOys1eSk26lLuHr6X6njP77DVG4KWRHdQ7XUDLpAqaYCv9yW3KGPoNW70rjvtGcRPaJim8lbYDDF9Qxthz4sIBNvdJ/5NsWKfQNFkYNzgIOmayUkzk14FBvnljA4vq+VKqYu9f0KmBUraim4+QZIb/v8DumhUE2HeV1C7+QlpJAlxgJJbAht0pXGOo7Rh7BEn3H5dGvURVJ9iN7Hgu3cQWtS7scDOXnkkICUrMNBRbXeiorUwBp7q56NWw5wLzIDEMvMffgqKala16lG/YtBxutwKghlrPYk91Gi+UMwzm4/eiOfDS248rHUt0NkI2mfk8NcPIGP5kBMiAt63rlOWv7ZtkVQCON5W9Zu+oHz6hCysXAHOjqDsgxZxWeNs6WfXavfIV25Yjeag3cu22ittKZKHhj+MNjKLgvpe3QTkbmBMrONUsx+6uXvfDJs2Fr5tgzdZFbtFPEusPwnIdxb5vK4eYHqk2oqoZrGbRAzpUPVfDNbhXZV3qKxShVoadzn7wePQ93vi2R5f836EsDzTlNKX18nWtZJb5jUY4Db9Atd9hNIxlYk=","translations":{"en":{"changelog":"### Changed\n- Picking a database from your Nextcloud (\"Browse\") shows the last known contents of a folder straight away and refreshes them once the server has answered, instead of an empty \"Loading …\". The session token for the first request is fetched as soon as the open-vault screen appears, which saves one round trip on slow connections. Folder and file names are kept in the browser tab only (session storage), nothing else.\n\n### Fixed\n- On phones, the Database and Settings dialogs no longer run past the right edge of the screen. The Database dialog got more compact tabs and tiles, and the issue chips sit under the entry name. The status line at the bottom wraps to two lines instead of cutting the message off. The password strength (\"Good · 98 bit\") in the entry view stays on one line, and on very narrow screens (up to 340 px) only the word is shown (the bits stay in the tooltip)."}},"signatureDigest":"sha512"},{"version":"0.16.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.16.0/keepassnc-0.16.0.tar.gz","created":"2026-10-21T08:49:27.444690Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-21T08:49:27.497678Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"pHPZ3Jri0Ngx62M9u4sE/CYd/Eg5oYMo1BiW4sIlmqyV/IImHrLU9tLQFaiFs3isjawjtTAaATza7y8hM/M4DxWPEiGstCYKZz52TaMCiYLAa1C1nYegNdXckua1GQEtN8CzuhyUiz2kDyJnvCSp7dhYcbVz1OR36XnEFmLFM/fI1K0hjdmux/bTBFkjL1tGE/PYr/0Krf0vm7BQ3IjH78gSvuO913HI5lgyZpA2mVcH6OPRaAwhzHsCVYQYVs98wL3Gp9CoX83H2msrAVB3AWzczOxGy3gRhztD5tQUWf2YzFNXerrZjLZ/5FFhkWAeS7BHOkq+ZGcoC2R4pb7bShxPf/JOAhYQC8BxZM8q2CrWhcnNsljkLsuJTfxxQPKHcB5EPn6o9mhft1OSHzyzMhityTineNvUgVxUcWvGmaCjKyNWP6jw96s4Wf4zsh/YXleRRknsTD+4MKxIJ3UhiB20fIKtNJNWaHjM/xC6Jb6ORm420SprXXBRR/exUYejgVO9UF9lcFbJHhqgZwWmtxl9LguBGAx0Mudbwjr8ptqJwjC3w4hMEUXofaHy1uVndxMWxLaTPV84lfLV/bJCRMvIgmNU5LL6TcBDMy3pWVe3XfwqM8kGD44LUw6QWCfdl/A7WJxCYJEY2OELaCS9GrL3q11uqNJ9Pj5iivrk4q0=","translations":{"en":{"changelog":"### Added\n- Chinese (zh-CN) as a third language. The app follows the browser or the Nextcloud language, and the language list offers 中文 next to Deutsch and English.\n### Changed\n- The dice icon (password generator) has fuller pips, so they no longer look so thin next to the other toolbar icons.\n- The key icon (copy password on hover in the entry list) now sits centred in its button, and the hover icons are a touch larger.\n- The URL field no longer hands out other entries' secrets: `{REF:P@…}` and references to protected fields stay as they are when the URL is shown, opened (click, Ctrl+Shift+U) or copied. Otherwise an imported or merged entry with a URL like `https://evil.example/?p={REF:P@T:}` would hand you a link with another entry's password in it. The entry's own `{PASSWORD}` and protected fields still go in when you open or copy the URL (old-school `?pass=…` logins keep working), but the shown URL and the link keep the placeholder, so the password isn't on screen. Everything else (`{USERNAME}`, `{S:Host}`, `{REF:U@…}` …) resolves as before, and so does the password field.\n- \"Key file & offline options\" on the open-vault screen now always starts folded, even with the offline copy switched on. One click away, a lot less card.\n\n### Fixed\n- Unfolding those options inside Nextcloud no longer nudges the frame and the shield watermark sideways: the open-vault card now scrolls inside its panel instead of the whole page growing a scrollbar.\n- On a Nextcloud in a sub-folder, the app page could stay completely empty: some instances hand out every app path with the webroot twice (`/nc/nc/apps/...`), so not a single file loaded. KeePassNC now cleans up the doubled path and shows a hint that names the setting to fix in `config.php`. The icons in the app menu are covered too. The \"Open with KeePassNC\" entry in Files is out of our hands there: Nextcloud loads that script itself, so the instance has to be fixed in `config.php`.\n- A few texts were stuck in one language: the \"Open with KeePassNC\" action in Files is now English in an English Nextcloud, TOTP errors on an entry follow the interface language, the no-JavaScript notice is bilingual, and the path placeholders on the open-vault screen no longer show German folder names in English.\n- The \"Open with KeePassNC\" action and the \"+ New\" entry in Files speak Chinese in a Chinese Nextcloud now, too.\n- Locking (by hand or after inactivity) now closes every open dialog too. Before, a dialog such as the large password view, an entry's history or an attachment preview stayed on top of the sign-in screen, plaintext included, and the TOTP code kept ticking in the background."}},"signatureDigest":"sha512"},{"version":"0.15.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.15.0/keepassnc-0.15.0.tar.gz","created":"2026-10-20T16:21:33.591225Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T16:21:33.658970Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"R2Ha+OxHPoZGQvIzvbYKHLas/EPwcPo+Fw6ccIMCQnRxzYbdeaCy2bTn74PwkqAQi2xKQhtqACu/8QHGHULwfPNovAyMiOncgBB3yzShmgXEFbBOIa8cbAPvwaAo6P2fqWprg0XQs+15feyl/rlbSz1ev359qsuA0vI9kfOn8gVag+NLjTV9Cx1R0+buNt8UGQBqXg5WZbSDTLnqNz2/KTu42Ra7TMrrWIVdg+Gr0jRgaPd1VKb77hpHclNuprYNZgfyMdTKbgKeTAZpkLdK85G/XxWW7u3QQ5HBE9TwvtoUFCQKbz1SstWNnhIUblyydx/Ly/hTOljbge6qWSYMdfjAdm8owGyJHJduwxz24r47rnFGNITMEveiFKqRf79GHbNbcMKgbG8GZjO9Fv+Ifqn087XpgK6YY4QcHHS8rOmH7W61Jj3mQf0G2nUoAkzQvLsLDZrjTiknzJqgS9Ij7JTeQ7OIgXrN9LuM2dbcwsUq8OJwkkeVF9manUiWE7rHqZDFH1LzKQThIAsD3vzADjM3ozTEYGJ9FjD2JXGd9NOhN96SxNvvfOajjbPP2cnLd+Fafyd2CR+Vl+c/t7/dFtMFyj73UFHFvnb0uznOF5+oD7h4u0K3JNOimhJyNgHqgqhku6Wzs/ItPxLty/F5kJ2e1G6MUcwr3ZBtbzhXrAI=","translations":{"en":{"changelog":"### Added\n- A page for the password generator alone (`web-generator/`), for hosting it on its own, e.g. as pass.example.org: passphrases, passwords and Simple, no sign-in, and a CSP that allows no network connections at all. It speaks German or English by browser language, with a small switch at the bottom. See `docs/HOSTING.md`.\n### Changed\n- The generator's \"Regenerate\" button moved down next to the strength bars, so the preview gets the full width.\n- The generator's small hint lines (word list source, bits per block) became tooltips on \"Words\", \"Word list\" and \"Blocks\"; the dotted underline shows where. The word list credits are in the README.\n- The standalone page opens a local file by default, so you can try it without a server; the switch to Nextcloud/WebDAV is the same one as before and is remembered. Inside Nextcloud nothing changes.\n- The \"click a .kdbx file in Files\" tip on the open-vault screen is a tooltip on the file label and field now, instead of a line of its own."}},"signatureDigest":"sha512"},{"version":"0.14.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.14.0/keepassnc-0.14.0.tar.gz","created":"2026-10-19T22:01:26.181783Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T22:01:26.254930Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"RhBLFvKiNHSNeyuDctzzJpnP6abi7D8fZvcVkrPPFxWoNZ6Ogj6bE/ta4yO5xEmOP8FxYjALgUiBvbc/2i/u9OzPFgsBzCJJqvL2t6TJUd6tFhz0lE7XjEUN8TLxVfSFKZDMRKAlvY1dBio4PQo0tJXkHiAnQnS1coQSk5BGwAvpWYmNy/Vng1bYwoyCYRdcNAdAi9st+44kuIhD3UH0XXuCS9dDG8GcwxhoaoX4W7M1cIehcEaG7W2SkXeFMZDWi+g7y1lWl81tM6VP9TrxZKRRlPneu3Rj2lrgGgcwAIhRi5PBzKp2zMNacqmS+V+g6PXQNR1YUEGsjvaXkePoZdOBrIY+O0fiXE2mwQp2wz/Z3Jeg3Xr+OAP9zRDBIqW+k7w2uY7TaDAgye/lKaNZo3O4lpa5zyfmC+mfo2MsklNZxSCi91JDXBqLXa8CpY7HUMWgrxbyKGhDNtsLXPMSc9jWB7/AdNCyT4BtQYXpE1eLBY3zqMHwslWVp/DHNoZd3jqShbfQ/s+1WVyGiTzTCfXRh/4K2UC9JH3q+upRISM/pl60unSC8KoYt6xLHJljt3Jke+CEkH6U0adWwL7r/boVR+JqLL2ordZ2qk2Q/7nx6cF5F3dEhFf2Tequa7QaWt3xX2XvvjDsbe3aQl/Jgq//UQDNs74UVrE66P3uLf4=","translations":{"en":{"changelog":"### Added\n- The search also matches the group path, so typing a folder name finds what's inside it (as in KeePass 2.60).\n### Fixed\n- On phones the last entry in the list scrolls clear of the + button instead of hiding behind it.\n\n### Changed\n- A mark of its own: the shield now carries a keyhole instead of a check mark. It's a little wider with softer shoulders, and the keyhole is a circle on a shaft whose end repeats the point of the shield. It's the same drawing everywhere: the app icon in Nextcloud, the sign-in page, the big watermark (the standalone page gets it behind its dark panel too), the header of the standalone page. New: a favicon and a home-screen icon, so the browser tab and your phone's home screen show it too.\n- In Nextcloud the app now sits in a rounded panel in front of your instance colour, the way the native apps do (8px margin, 16px corners, edge to edge below 1024px). A calmer sign-in page (in Nextcloud's high-contrast themes the decoration steps aside, and \"‹ Files\" is a quiet line above the title). Inside Nextcloud it's now just the card under the header, no big blue panel next to it. A file you opened from Files shows up as a small card with its name and folder instead of a read-only path field. The key file and the offline copy tuck away under \"Key file & offline options\" until you need them (they open by themselves once you pick a key file). The eye for the master password sits inside the field, and \"Delete local data\" moved from the page footer into the settings. A touch more warmth, too: a small shield next to the title, a soft, neutral spotlight behind the card, a huge, barely-there shield in the corner, a thin accent edge, and one quiet line saying it's decrypted in your browser only. Opening has a little moment now: a sweep on the button while it decrypts, the lock springs open, and the vault fades in (skipped if your system asks for less motion). The field label gets small capitals, the card breathes a bit more, and it glows slightly while you type."}},"signatureDigest":"sha512"},{"version":"0.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.12.0/keepassnc-0.12.0.tar.gz","created":"2026-10-18T23:30:10.772069Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T23:30:10.900954Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"EOSGXbG1wNQ6blbdbL+qwrFDbYAi/5GZOLHw6ou5XCZ93AC+ty7rIAwL0TWsflTGYhB5NRFnsg2lje0D5sOWcmxKU79rK6v9BVCVYahHDslIBIKKbM2uu2R3w0Ag12s0gmHo4pwKv7wt3/ODxxvizfetOF1pNWehbJPNfd6dgssb9Kan2SzRKtLSyityBv6Wu8DU/kwwfJOMG6pj/Fyn6t4aZosSCAAoPAKI7PcY2uynLFamPnMtdtVebYSNDflxkD573ujumkepZ/mhLjzUBNr9kmkQsWS91P1zV2WI60llk1qqcVQvsygYyFKy02DZk7H323IMjWim4uSuO2jU9I9CaYHhA+zDdjOe2bkJCeGkEch9XVKun7ZmA7w7+pyqB8eQE6Us6D3RqCAgfw8YhmKjCMbdzqwf/rOMV26vaB4X+4RHXhikd+jgJdzsdegSbmU28xqsAyytlws+YRuPq8+RHEi8xyBqjRY+ZrcbJVRwLNd1hTPiRUr+jj3alH187YG4+CSyt4yOau57MZY3Aq9WA7lj88EChmnv+eTYCyrS0aGkG4n/0e1+XVEtawTQ8j1FYVo8OpWz+elDMmBIMsICj84Xp+saCY72TWxylpe8r7PQ9/BmwQ2nEtewtA7t9x0SwcnESsarlYavP4zuA0GYgCTT9oomzy1uaOfrvcA=","translations":{"en":{"changelog":"### Added\n- Duplicating an entry now asks whether to link username and password to the original. A linked copy simply points there (`{REF:…}`, the same thing KeePassXC's \"Clone\" does), so a new password on the original shows up in every copy. Great for one account behind several URLs. Your choice is remembered for next time.\n\n### Fixed\n- Opening a file from Nextcloud failed with \"The server is unreachable\" on every Nextcloud with pretty URLs, the ones without `index.php` in the address (the default on YunoHost and in many Docker setups). The app asked a host literally called `csrftoken` for its session token instead of your server. Thanks to everyone in #50 who patiently dug through their browser's developer tools with us.\n- Entries whose username, password or URL point to another entry (`{REF:P@I:…}`) now show and copy the real thing: the detail view, the list, the copy buttons and Ctrl+B / Ctrl+C / Ctrl+Shift+U all use what the reference points to instead of handing you `{REF:…}` to paste into a login form. The editor still shows the reference itself, so saving keeps it a reference.\n- Long passphrases in the password generator no longer get chopped mid-word at the end of a line. A word that doesn't fit simply moves to the next line, like words do.\n- Entry history now remembers an entry's custom data and its \"exclude from reports\" flag, too. Before, each saved state lost them, so KeePassXC showed old versions without their browser integration settings, and synced changes to that data could get dropped when merging. (KeePassXC fixed the very same thing for its own history in 2.8.)\n- A password that just points to another entry's password (`{REF:P@I:…}`) is now judged by what it points to. Password health, the \"Weak passwords\" filter and the strength meter used to either skip it or rate the reference text itself, which looks a lot sturdier than \"Summer2020\". It doesn't count as reuse, though: that's the whole point of a reference.\n- The password health in the \"Database\" dialog could read 0 % for a database that was far from hopeless. It subtracted entries with findings from the number of different passwords, so a few weak passwords shared by many entries pushed it right to the floor. It's now the average score of your entries, where an entry without findings counts as 100.\n- The privacy note under the health list sits a bit lower now, with its second sentence on a line of its own.\n- When the server answers an open request with an error (say, 503 because a storage behind the folder is having a moment), the login screen now shows that status instead of claiming the server is unreachable. Fetching the session token or the key file secret now leaves a note in the browser console when it fails, too, just like WebDAV requests already do."}},"signatureDigest":"sha512"},{"version":"0.11.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.11.0/keepassnc-0.11.0.tar.gz","created":"2026-10-18T14:44:58.093744Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T14:44:58.152772Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"PlDS5lLoaxapI4ZO9fiC7iuHelde7aTTG5GdjD9PxquH3XxUxo2PFC1W008u+ZD9d1bftYDvcxgTbu2a42d/psyveIoNtAR6jh3NLts02tqrL39oj87UiXwl7ufW4wIzNOmAOLoHecNvWbjmH3kRVWOMdbhq4WDPkzXR5T7QXaheqoMyQqBMUOk2M9INCN9U8UgBbAo1TYSehRzf722eP3eVUdKFNpigppwgBQi/ya3XJj1SihjzP9Mq6idnuomuQ5X99xMMfIO5LBbUcGIQIzXCvUjJyNe7FRMpqHvsn80rpBqCVec1+CzcLV8Q2cZLHacfZVWvGP1y75QNQn/2Hsylyp7mP/lEaqkFDk0O6FZQcl7mLpuj5sbjH4jqwUhL3E2ZyR9Cz9CBpLSKyQk+RQ2aT1/fpeHCxNcdEW0EQ8zYjhwILWAVm0LKxcenHkevJ+hMXsPiT2DV1dQ8j9pUPfBryCuXQ+5dVi2GkKGmehKNrJ6GlbfAVomfYcNkbgfOlTQFCD4tDBdsflGllr2z0KuJL18ytJQt+KZ58NOsrbY3ycs5Uvo3tO0JnrtG2wlOXQ2btCWqezUnnhIT/jNUvwuemiZcyj1XoCxeLqRRdzvOTEn9R42FX+MW0Bpq1vD6B2wus5xYOWeoUXXk7mZDEpM9UY3H1TI44vdZSN6kjYk=","translations":{"en":{"changelog":"### Changed\n- The sidebar puts your groups first now. \"Expiring\", \"Weak passwords\", TOTP and passkeys moved below them, under a new \"Filters\" heading.\n- \"Reports\" is now called \"Database\": everything about the open file lives there, from password health and statistics to the database settings, which got their own \"Settings\" tab. Things that only concern the app on this device stay in the regular settings.\n- The settings show which KeePassNC version you're running. Their gear icon got redrawn, too: six even teeth instead of a slightly wonky cog.\n\n### Fixed\n- Behind a reverse proxy that doesn't tell Nextcloud about HTTPS, opening a file from Files could fail with \"The server is unreachable\" while the server was sitting right there. The app built its WebDAV address from what PHP saw (`http://…`), and the browser blocked that on an `https://` page before it ever left. It now simply uses the page's own address. And if the server really is out of reach, the browser console now says why.\n- The \"Tools\" block at the bottom of the sidebar is meant for narrow windows only, where the buttons in the top right go missing. A CSS mix-up showed it on wide screens too, right next to the very same buttons.\n- Picking a menu item really quickly (say, on a busy laptop) could leave a stray listener behind, after which every later menu closed itself the moment you clicked one of its items. Menus now tidy up after themselves even when you're faster than they are."}},"signatureDigest":"sha512"},{"version":"0.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=34.0.0 <38.0.0","minIntSize":32,"download":"https://github.com/StudioCuda/KeePassNC/releases/download/v0.10.0/keepassnc-0.10.0.tar.gz","created":"2026-10-18T12:08:54.229911Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T12:08:54.279084Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=34 <=37","signature":"mRagWENuPGJ6K9aynJecv6xyMxzNdCfar1cIRjJ7A9R+y5+Gw2tLNjm3ngR50D/UMFwFSB+XgIH5ErlT++SVezvXij91iJ6LqfacwzPiai1B2CYfkVgQjEzGwWHn50WP1hQmTJUsqVuks3vueumqigtaMobWBV4nPDeiEqDGuNZmOoSkWAeRCqjirhf81vX1sWQUPjAtlgeECRIUjHDEUWiw5r52irUY9+s62i2nlu3z/bKR6dqugc3FRLaFuLT9XPPYmEySKYGdiD/o5ostuwPEvj3RJTUpNjIxr/yph/zO3jdzXENvfZuHP/Zmm7ENfnKhPVNyCS/B5aIngstpR3TysehzxGlf6s9215wibdZGeEQ0Wl42vrVYGshsETkpyyQ0cgX7TAtjvHQailDJ8D/lM3zGSE/t+ir/ZGnwk67P6eT+HEraJ1Yzow5j/q4+E52Gv8xlUNn+1M556bil1jdIuS1yeU6GjdYaxHEB28gLQca5pYz1N+FXhcJA0yzXkItpVH3FCSVj+wL+r9NgwoQ1HYU8U02rVMsPeqePPnXVNOHzyLWvE1+oSGuklQOtFzebmvJKbmoLku/00U10NCarvMVDIqhCzfppVTZtY5DNBkWPP1rD9pHd3swF/b3SSIX9PmK1KUiQ5gG5l8ynvR37CF1qfpf1KQjVgDL6qpE=","translations":{"en":{"changelog":"### Changed\n- The header now looks like the one in Nextcloud 35 instead of its older sibling from 34: it's a bit slimmer (44 px), uses Nextcloud's font and the very same 9-dot icon. The app menu got pale round icons in your instance color that grow a little when you point at them, one shared highlight behind the 9-dot button and the app name, no arrow, and it opens when you hover there for a moment. Below the apps sits Nextcloud 35's new row of quick actions, like \"Text document\" from Office. Actions that need Nextcloud's own JavaScript stay out, since that doesn't run on this page.\n- The password generator got simpler and clearer. Passphrases come first and now speak German too, passwords sort their symbols into two easy groups instead of six, and \"Pronounceable\" became \"Simple\": made for typing on a TV remote, and still honest about its strength."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0dWRpb0N1ZGEvS2VlUGFzc05DL3YwLjE2LjMvZG9jcy9zY3JlZW5zaG90cy9kZXNrdG9wLWRldGFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0dWRpb0N1ZGEvS2VlUGFzc05DL3YwLjE2LjMvZG9jcy9zY3JlZW5zaG90cy9kYXJrLWRldGFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0dWRpb0N1ZGEvS2VlUGFzc05DL3YwLjE2LjMvZG9jcy9zY3JlZW5zaG90cy9kZXNrdG9wLXJlcG9ydHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N0dWRpb0N1ZGEvS2VlUGFzc05DL3YwLjE2LjMvZG9jcy9zY3JlZW5zaG90cy9tb2JpbGUtbGlzdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"KeePassNC","summary":"Your KeePass file, opened in the browser. Nothing leaves it unencrypted.","description":"Open and edit KeePass databases (KDBX 3.1 / 4.x) straight from Files. Click the .kdbx, type your master password, get on with your day.\n\n**Safe by design**\n\n- Everything is decrypted in your browser. The master password and the plaintext never leave it; the server only ever sees the encrypted file.\n- Saves are checked against the file's ETag, and a backup is made first.\n- If two devices edit at once, the versions are merged instead of one quietly winning.\n- An optional encrypted offline copy keeps the database usable when the server or network is down.\n\n**What's inside**\n\n- No database yet? Make one right in Files with + New\n- KeePassXC-style search and tags\n- TOTP, Steam Guard included, set up from a screenshot of the QR code\n- Attachments with a preview, entry colors, history and icons\n- Placeholders and field references like KeePassXC knows them\n- Database settings, encryption and key derivation included, with values a browser can handle\n- A new master password or key file whenever you like\n- Merge a \"conflicted copy\" back in, and import or export CSV (KeePassXC, Bitwarden, 1Password, browsers …)\n- Password generator and a health report\n- Follows your Nextcloud's accent color and light or dark theme, with a layout that works on phones and big screens alike\n- English, German and Chinese\n\n**Still just a KeePass file**\n\nKeePassXC, KeePassDX and Strongbox keep working on it, no lock-in."},"de":{"name":"KeePassNC","summary":"KeePass-Datenbanken (KDBX) sicher im Browser öffnen und bearbeiten","description":"Öffnet und bearbeitet KeePass-Datenbanken (KDBX 3.1 / 4.x) direkt aus „Dateien“: .kdbx anklicken, Master-Passwort eingeben, fertig.\n\n**Sicher gebaut**\n\n- Entschlüsselt wird ausschließlich im Browser. Master-Passwort und Klartext verlassen ihn nie, der Server sieht nur die verschlüsselte Datei.\n- Gespeichert wird mit ETag-Prüfung, vorher wird eine Sicherungskopie angelegt (alte Kopien werden automatisch aufgeräumt).\n- Ändern mehrere Geräte gleichzeitig, werden die Stände zusammengeführt, statt dass einer still gewinnt.\n- Eine optionale verschlüsselte Offline-Kopie hält die Datenbank bei Server- oder Netzausfall nutzbar.\n\n**Was drin ist**\n\n- Noch keine Datenbank? In „Dateien“ über + Neu direkt anlegen\n- Suchsyntax wie in KeePassXC und Tags\n- TOTP, auch Steam Guard, eingerichtet per Screenshot des QR-Codes\n- Anhänge mit Vorschau, Eintragsfarben, Verlauf und Icons\n- Platzhalter und Feldreferenzen, wie KeePassXC sie kennt\n- Datenbank-Einstellungen inklusive Verschlüsselung und Schlüsselableitung, mit Werten, die ein Browser schafft\n- Master-Passwort und Schlüsseldatei jederzeit ändern\n- Eine „Konfliktkopie“ wieder zusammenführen, CSV importieren und exportieren (KeePassXC, Bitwarden, 1Password, Browser …)\n- Passwortgenerator und Gesundheitsbericht\n- Übernimmt Akzentfarbe und helles oder dunkles Design von Nextcloud, für Smartphone und großen Bildschirm\n- Deutsch, Englisch und Chinesisch\n\n**Bleibt eine normale KeePass-Datei**\n\nKeePassXC, KeePassDX, Strongbox & Co. können sie jederzeit weiterverwenden."}},"isFeatured":false,"authors":[{"name":"KeePassNC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhRyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDE2MTMzODIxWhcNMzcwMTIxMTMzODIxWjAUMRIwEAYD\nVQQDDAlrZWVwYXNzbmMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCt\n7O7SC2l5NQFeoGoy7qa/E9iZexeRhYSbBhLPBD365+02QOj3cL8W1R6JJVraapI+\n5cuBLd4S4SBryrgIYuyupx3BMs1xfTYB3q6QVsAWUeAjO+2mvrQaboxlm3NkQBUL\n1jLeeZCLS8Cgsl+fDANkm6RvKTd+Tl6RUejdceIW7AiyC77P4SWdZTpMbOAiXHgX\nJpTqZVf4yzVNw9lc6cW1PUBP/uPqdmTzC1gSmTuGiJ4qMqGMd9VgSkFdxZbJ7QJf\nNjbBT3398Kk2LMsgAybuPOAUGc6itfEzrZ9uS5/vMrMs7mcNB753Rso9jIrLv23N\nctT24p7/wj4k6gTH5rQwkU2/F4pd4Oid/XZgIMAaIlAjVdoqegdx3g6RT77e529k\nEqk+9/b0OSfF++FgPFKzSHovafak8+trFuj6TtBh4uNXCGQxPWTS0My7aqlrM4O5\nwF78I+IsdifUUGg5bZfiMGKbgtzDa5x5ugssDWo1VCTZaSzyZyWV7ISa7CBmm0Hm\nx+1u4GzrmN8jpbLnl3+0MHze0ZyEUlI9+IGe0tDp8StHutGF3Ft/sGJxs3kk7Voi\n+cOX/LWN1IPczZKThfl+S41sop1oAxn+DMeMheAYHwksVuOIGBk4QBMi2JgbBSm0\nu6jxJy5TB/Gfljbk6lzLBRVsyRmGq5e3KupVSml00QIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQBKJ+MEdebPz8Wc8l4RTeltctm//2wRhFlC3r45RTe7JfSTqQpREXLH\neEJ9xVABFTMnfA9CKUFnzojd9JFNSxDekWThqmbm/Wbk4dEyd2Vfblx7gsLlya78\nLK+nn8dHAmzIbQakHCh4jbArUsZo+e0f++dlVfl5eaYMWj+0PIpNgoBNG/vcBCGA\nxfciewywpvUwMSsUx9v2B1V954OLinpjMVIRP92h8YCsWK9yxcEDnNjSA+/CRt+T\nK6EqSDhpS74GlyeGiq2IyB9QHBB6bW3cWs597C5EZRm9E6LUHHj80n2d28fo55tu\nL/yi5HkHN/NIX4nvlpTJGo1h/0lXN73B\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_nuiteq","categories":["integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_nuiteq","issueTracker":"https://github.com/nextcloud/integration_nuiteq/issues","website":"https://github.com/nextcloud/integration_nuiteq","created":"2022-07-15T11:14:17.838888Z","lastModified":"2026-09-29T18:56:53.650756Z","releases":[{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_nuiteq/releases/download/v1.3.0/integration_nuiteq-v1.3.0.tar.gz","created":"2026-09-29T18:56:53.640321Z","licenses":["agpl"],"lastModified":"2026-09-29T18:56:53.679506Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=36","signature":"pSzleg5m2yOnRrHFrzQkdRAehovny+rSJxR5W2naIRanVIWfR6WYnd58nmFtsrv45pgJDEFbvfXytavnSp1znLiEs+rFelfeyxkjhPKW9QLlwxbjvveO54S7vxK/tbn1p7I9MtRAMDRww9aKo7e44JbJpF7nYLgsctTxjsS1ELDM4PcyJU4UCiWRb3ws41JwBsqWCF8ES4NsiHspd7s1WgjCWZbS7P4OEgQna8p68IXkX4UqPoebx4lSwXbr1wrZBwypCNMS9d12dGjVCsMSD4N0natNWr6uaVYpEUUo92Yt23L7ant7T2vmBKXq80McH+h08AJ4eFYOdMwkOicH7iIhJW75JYIyvaRnZxaH2pMf1oycV4JKS9A2vnddNZO7hHFgeQcd8pobx4aV3DmHL0QgznfzTKpj27C5xHGtUFRT3+09CSJKIdrl7SDL5fBHHYaAkmZMy06UDdlpiye4TWIKnaaJM0D0dHv5abkuDmnJylyIIWM/H/lKio9btxuX75HrpyMjh9NMagCNO0SlRZP8AhkV5ontBWz5sqOgjNq0SOS0QYhDJSES1pIwuNGnlTOaRgVpBDHdZO2U4RovAcVc9xsjegjI91uLMudfTMPeAzmxY94joy8uhafXUyM3QD0Loy3heFZPZG3CZ1ZJUWc4+KlHbiF/rfTXH57P/sI=","translations":{"en":{"changelog":"### Changed\n- Added support for NC 36\n- Updated Psalm, nextcloud/coding-standard and @nextcloud/eslint-config, and synced the lint workflows\n- Updated dependencies & translations\n### Fixed\n- Show the board page of an account whose NUITEQ Stage key is no longer accepted, instead of an empty page [#62](https://github.com/nextcloud/integration_nuiteq/pull/62)\n- Show the text of the empty states on the board page again [#58](https://github.com/nextcloud/integration_nuiteq/pull/58)\n- Show the buttons that create a board and that send a board link to Talk in the primary style again [#59](https://github.com/nextcloud/integration_nuiteq/pull/59)"}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_nuiteq/releases/download/v1.2.0/integration_nuiteq-v1.2.0.tar.gz","created":"2026-07-27T12:14:08.669710Z","licenses":["agpl"],"lastModified":"2026-07-27T12:14:08.709606Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"b2E72y4XRxFXsRfV4UEydErUG5Zyl1H5t8yy81PpUCr0OTrR1cZfmbwr6W2zVbsqO25m47rGFnncBiqfZHAadfNqsCbyUYPObjjmdWlwZyoB6l6JtcQJOA+B0/MDfYfIg0xA+Xvnto6bR/Wl4fxDECT0VMjyO17Fu/T6pev3EF+o7iPAxFpK1pf5NHtpFK85McMxo32RUZLpmcqG3IMnYBnEAoWqGzLiscTPJ/3DKJenqPT9iEPvD3ybRmR7gRgiQrpKjM55MBxD+HuTpkPfK52eleSXwjaotPupYTqa+by7x2DXjJAi27/qWgp2me//dNWBqKYaGB+7X9QulA6g3LyFCqXDgXvfWVNcKztzcJrQL+hfe4jEXEZfX30iBZws0TJdAokfuu7l8W93inZ9vwFpBfXydjkluP5zHxY7mZ3R+xejDQwsAyNp+o2pYxhHtswjj3zidhbS0l+GK7y6ROaU5Kt6ZLwEZGpJvrbzhYGDgmNIOIB2PVYx09hScJ66EIa0Yya13QGQV/4gNVp1OTSnSsZvV2D/+uadqaSmFjsZlL+DNC4nk2g0cXyAG+tyPZKUH0HdYQcbC9SfGRNbzt5+9JFMMXdUpmCAthSDwRU9FmbqUQRWpA1+dv1LAq8copbasteug9xBHKDvQSYzn1qZ+l3BkjhsJHuVu4CAGVk=","translations":{"en":{"changelog":"### Changed\n- Migrated to Vue 3 and @nextcloud/vue 9 [#38](https://github.com/nextcloud/integration_nuiteq/pull/38)\n- Added support for NC 35, dropped NC 32\n- Minimum required PHP raised from 8.1 to 8.2\n- Synced the npm build, Psalm and php-cs workflows with the current organization templates\n- Updated dependencies & translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9udWl0ZXEvbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9udWl0ZXEvbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90Mi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9udWl0ZXEvbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90My5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9udWl0ZXEvbWFpbi9zY3JlZW5zaG90cy9zY3JlZW5zaG90NC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NUITEQ Stage whiteboard integration","summary":"Quickly create and share NUITEQ Stage boards in Nextcloud","description":"NUITEQ Stage creates a natural interaction between participants in a Modern Meeting by merging the experience of creating together on a whiteboard and discussing in a video call and chat. Prepare and upload files and presentations, share them with others in the meeting. Designed for collaboration first to engage team members - NUITEQ Stage is safe, easy and efficient to use.\n\nThis app provides a simple interface to list, create and share NUITEQ Stage whiteboards."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDTCCAvUCAhHVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwNzE0MjMzMjMzWhcNMzIxMDE5MjMzMjMzWjAdMRswGQYD\r\nVQQDDBJpbnRlZ3JhdGlvbl9udWl0ZXEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\r\nggIKAoICAQDFhjnnbdMlzM1ZGr9l7tWI9mE6DJrFX0/q9Pey8MqxmgNVPEjcojx+\r\n2wBDf7MbTRFWXCC9RiA+BAzlnNhSxBbgw5oorbZj1ClO00Zm/7bfCxbpgcOICKwV\r\nMxxAcDM5Bz1v8oY5PskqPVmNimy13KjESxth2qyx8sq6dl4n/8vBr71p3Sf/ijh1\r\nDl0uaocXEr/3VTFcc+0nQE+adq8nIKOzPxgTqnrDRS9DY3r6C4hGRKP0GgFWsCES\r\n3zxQinis1HxyuEATbp2skbbdGrj/8AeWVSsOE/J3EZHq7Qqtv1Fes6muo9l+GRJ7\r\n4UHYxg5m6Ppa8tqURW4lBgbOr5iJTGECT6fIRlO/jK02KrY4mHtKINDMpayeT67/\r\nPgSR1LeoWptATxBade+29oWeHy2uzQ+fp47AVlDxmiexAGLgdakm5NTAf7l5lKOr\r\nX5BtwYAJ2H606aAJQOYNW+24YCxscX8+F/yuoYqurBvA7RgatHFPzw1lRUdOK8Te\r\nuBa92RXFnlS5xdszhexPj72u4yaFJkrZrvff4eryWHH/A2/C5MuqZ0F25/DwzCk1\r\nl54l8eGE+GpwtmErLO02ad5aoU8SJSte4uj0xnFuVBdwgMyDeqLsSybKv7CqR3ZE\r\n+A3juzoAnhODSIqUjg00IIjzlFsEA2JPTqODW9BvSkk29D0C0DpRUQIDAQABMA0G\r\nCSqGSIb3DQEBCwUAA4IBAQAC+MYldX5qOVBwgJ51JoyEbn7BDLRix9DNMNaOBHwq\r\nX2rGm6c07EsJZ6rTQy18Ltp0tAsJXKvWHy1N7jD8iduU8CDGA0Klmp7aVOkClV5W\r\nQafW4r/eTejxZbjgd0DGC3ouzFa6QuTQ4sUferfSlGZIFYcfzAKWoHAmj2lfQ9yB\r\nJUvd8Q2P/UDJaIsxMKDr9q1AJlGCcoAlVHHsadR2p5xKLQTOzDP7oZd6tn6HPZnu\r\n2XCJJT+03NXfKAib0QNJNBkmRo8QdbZVdBzU4qct2e7rPs/mpEX0ix1IzhHTzvhR\r\n7TCIHKP8dFY/F1wwrMYGBGtJJ+g47BVFo+oKafJPxWXe\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"repod","categories":["integration","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://git.crystalyx.net/Xefir/repod/issues","website":"https://git.crystalyx.net/Xefir/repod","created":"2024-01-15T15:59:21.616459Z","lastModified":"2026-09-27T15:15:40.460302Z","releases":[{"version":"4.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://git.crystalyx.net/Xefir/repod/releases/download/4.3.3/repod.tar.gz","created":"2026-09-27T15:15:40.453566Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T15:15:40.501950Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"FVgEm5y0uCgwWnv/bQO5Y0mBTEOxX3xv/5i+2BdYTqaHOu5eujKLlsBZVyIpzyzfOkMr+j8uO92At4QLG9EuKjqe//UDCss76gVEKWg7M+Ild+xBbS3Mb0tXZrI3t6BIcde4VWGZC6V38wocFG8OJVG1/HeVAauE8OQGXrRyU3K4D9xtCuh493Ak0I4TQ5URxiRy98P9VnBJYZsE/mnga8HWQyPtbnAPwEbw+rfs6cA5uAwRX5E2naH7G1cQoy7ehsqEaf0JoN5h9S/vlZuHNEP4WXn4UxbMAoBpwxJoKPSI6hmGSP3IyfSjblPx8smzVjpPFGtChvLmjaG5QLsie/hqNdSmwXYd0kEtyIWUD1tH9Erh3AmVGZaOeuxnnbi0zUQgN/ryb5sZ9qh7yC+gHC4MI5haAp3pHY6BnDbr2Wtz6cOQ/5WthfDAQmge0mpziRUPKN1nj+jEqLydT/dYMsDD8pYs4JoF2DHtvbD2hrHIZMueXcKSWT+NgGUchCCNe5ZSXszwdsVh2c6C/QZk9xJKrD3voq1agWdPgfcxfzgFaJu7SRmGUPbqTF+zwS4R/hPsGBdIhDfSM0QaLC6+nVn8hq9VYYV2ljvDmMVYurmAbm8x91dAqdxPLuFe1pL7W33QftKQYAQsLXcp6CYeHafEBmMd9r4hjv6o93J8Mp8=","translations":{"en":{"changelog":"### Fixed\n- 🐛 When you are subscribed to a lot of podcasts when playing the settings option was unreachable\n[#800](https://git.crystalyx.net/Xefir/repod/issues/800) reported by @chriz\n\n### Changed\n- 💥 Drop support for PHP 8.2"}},"signatureDigest":"sha512"},{"version":"4.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://git.crystalyx.net/Xefir/repod/releases/download/4.3.2/repod.tar.gz","created":"2026-09-12T13:05:08.197985Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T13:05:08.258636Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Yp+afwkENmQA85bXCO3DrITczUO/ixDYffz5uTUljQ7tTyTywsa9RCHz0mOVSygwjHtBXzqbxHn86FqTIWq8FO2i1jsNBKKLq1VWn8YYsKk1pMInTfxhV1e1fbUmAoLPWziW10ace1hEqwF6MmnJhWzum3RYxIQx5x+92rU5xbIK9v0b8Jkp85c/s/ms1MogusTourJxwKZYEC8OVe6UQxGs7vSA/Rk7CnZCPt4rCK4sPLpowvUoWY/AW4f2tqI1PC4yv+NDw7wh/AL+yqxut4oGoDgsjjcPgarNUyO1T0bLCZW27mhB4+AP+RrDl/M3bk5NA8PZ1pQc3ugtGp1jRJMm+HTeP+XPdA/GIZvuJIhwdrH4XQj1yf+/yKb/D6osDQfxQd3Mqd9rFdqgRWsBCKqk5ieahs/wN2xDq5EosvNUVMgigp/AfWCfZhqliY87sPI083K2kziOexKt8DzZig6wF4YOITysZVERAwnR+CeXSVgp22IbbOBtlSXIDMFYR0+Obfz6ZIwf7OLpHv5WaSC9xkzGxQyOnreADWfGHh4DmLM1DCcxeZPqaIxRXg7Hpa00oTjERGbsbzAvw4dOuAm/tO37fFen9cPm/Ao1QHL5D+x5I8vY7UM3qEkc+2SZ5V9alG3QY73pn20WJOV5NTCDxZfHXglNiBGYCybtllc=","translations":{"en":{"changelog":"### Fixed\n- 🐛 Playback speed not remembered\n[#794](https://git.crystalyx.net/Xefir/repod/issues/794) reported by @chriz"}},"signatureDigest":"sha512"},{"version":"4.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://git.crystalyx.net/Xefir/repod/releases/download/4.3.1/repod.tar.gz","created":"2026-08-30T12:25:13.174933Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-30T12:25:13.416716Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Y7YLGO/lKzyJP+gSoGBwNKA2GzjC/nyyUiLDi7nxgKq+s6Gzh0Zb7Z/FUH4OHT5T2fzy6TgGVVGVp9W/4Ul8/O3dLHuzpjJVFSXOftZlO8woiahEekONI/cL8AYAj4m3JUw1M/UnQSQpXlYkKQRlIDITwWCkBJuj9wbw4cTuqY+kXbaKqNnf+D/vcw7ngV3NMnEfg1/1ZXnHMMVWy+FAPWRxtleLj7MbE08xG5dS4HGgw3aYMGpqxpyCwL6wopd/cDs59kaREO6rPZ1Xe+eGzdsP7xkMD+lbqr2zIFruDpChipqqA7UNNd5AB+tMSAcHUa/Qyzw4QQtNgv+tpR+C95tpHDeMv0b9Uit1v/eIxEe7eIzs3E4jyo/ywlU0Pcr0RegPtaPH7tfGRFi9PjpowSu6YolaN/0PvRmyuxDgQk8M/lEVwSWBEAIGGO+69BpQEpOYkj2Q8Ihg/An8i8rVunwSihzfxfdG9Ulc8yf16ETw/Num4RYmCPcUlFISoXr7UkwIKsmUpvP+KT+QSFHkDLAfrdw574PMics6FzzU70OHyX+PldTSUDqb4saKNTJrRG2dPru5BCv68dMdA1XsLWTYuwpCIEFiGXpMADEiRcJ5pFIJrOKOkiF+bv7FiU56JpT7L3KR93e1sXwr5BjyzFUmEY/BsXjhMvuqcPCkAiQ=","translations":{"en":{"changelog":"### Changed\n- 👽 Unified search on podcast now require that you enable external provider to see results\n[#761](https://git.crystalyx.net/Xefir/repod/issues/761) suggested by @henningaround with the help of @ba3r"}},"signatureDigest":"sha512"},{"version":"4.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://git.crystalyx.net/Xefir/repod/releases/download/4.3.0/repod.tar.gz","created":"2026-08-24T10:47:27.609229Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-24T10:47:27.789325Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"mlnr4H2MyGPyBsfPdHGBOQ+gEPvUUDvF+7Pv8UkDtd7c6C50hKiKS+nuTDSSb4ieehJxUamgCRwRfxMuNqQUA/xWqrtu8pSlh6rdb3ZuQAWc06/489hzRxPXh3AE0aeXchjmtmuB6DYOYJLKnjRaOKYi9aVCg3HOX68o0HXF8jSHK6PBQBnMzE69yiMqEw2b/oeL05xn2S+6Rgf1dPOkAkB6wkHEzhtCtIu2790IUA8tP0DgvcYhuHwq09igED12a6BNwZdxyZfJK3z459VLRAyzMMcVf0eEGtbIk81dW68eFGQBc1w3PR5UkdUglkH6aP8svZWKYCX2HsPgqTbDMMGA7w0FxBKnw+Vv5/dRZ7WRf86erJO4+Rtop1y1Iv6YonFPFNlhRmhBXPHN+o6GihECV8p1RhubdsxNtw6q9I7SAD2Exuv4/AdQ5touRy7gyJfwFqKkhlBHD9DUSnCxmtmoF+83Yl/qO2c4eh3d2XVKWcjZ2xUaVQFQxMo5U9uKNfAC8fnkohCFpVGO0VP8zFiLxb7UvCwz8qm6Kp43/5GI5nJaGpfE+qMaBP0k/qwer2qtjCknK7jaZATuqxngFGZ/JujsYG26ktcJscW4vCsqJcyRjaJ9NHtMEQBvPP0b0EiOkNuAhd/ERhas3k1dXD77iNTPiRzx9CCkJFbqSD4=","translations":{"en":{"changelog":"### Changed\n- 🔖 Support for Nextcloud 35\n- 💥 Drop support for PHP 8.1\n\n### Fixed\n- 🔒 Fix SSRF vulnerability reported by Jakub Kozub\n- 🔒 Harden security for XHR requests by enabling CSRF"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuY3J5c3RhbHl4Lm5ldC9YZWZpci9yZXBvZC9yYXcvYnJhbmNoL21haW4vc2NyZWVucy9pbmRleC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuY3J5c3RhbHl4Lm5ldC9YZWZpci9yZXBvZC9yYXcvYnJhbmNoL21haW4vc2NyZWVucy9kaXNjb3Zlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuY3J5c3RhbHl4Lm5ldC9YZWZpci9yZXBvZC9yYXcvYnJhbmNoL21haW4vc2NyZWVucy9zZWFyY2gucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuY3J5c3RhbHl4Lm5ldC9YZWZpci9yZXBvZC9yYXcvYnJhbmNoL21haW4vc2NyZWVucy9lcGlzb2Rlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQuY3J5c3RhbHl4Lm5ldC9YZWZpci9yZXBvZC9yYXcvYnJhbmNoL21haW4vc2NyZWVucy9tb2RhbC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"RePod","summary":"🔊 Browse, manage and listen to podcasts","description":"## Features\n- 🔍 Browse and subscribe huge collection of podcasts\n- 🔊 Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- 📱 Mobile friendly interface\n- 📡 Import and export your subscriptions\n- ➡️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!"}},"isFeatured":false,"authors":[{"name":"Michel Roux","mail":"xefir@crystalyx.net","homepage":"https://crystalyx.net"}],"ratingRecent":0.5,"ratingOverall":1.0,"ratingNumRecent":0,"ratingNumOverall":5,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhJNMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwMTE1MTQwMjAzWhcNMzQwNDIyMTQwMjAzWjAQMQ4wDAYD\nVQQDDAVyZXBvZDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKhOfUt6\nWauLKFtsvDP12iodwM4OW8ssSessMUmzBl+62LmpQRkiFrsMayKqrM2Tqrc3ovC8\nGCauQt9yY7Hdisgng0762oz6t8+VmbUsL6fa9Qm1UQ70LvApHaaw75ODZySb5gxx\nbBdiWyEc1N0QcIFcfJ7d1w8fHJQ4uDihS4L7zKOppJNG1hWzr+Ohh2aE49kXgrTx\nt3yzxD+C6HE0CIGc3pE/6wgkIF+Wj/QydjVZ1ILUXGH97AsSbaJ0/YbhgEOWQq2P\nCDGMcHCDHlb+R3xNOIu6XYwv3INGCwbz+jfYiD7XFJigZDzxMbwB/hjWgh34kZyG\nbsSlG/xpe6lsd0rS/vE3IpRHOy93M61Wqo7EW4IaQLTbY16s66W3HQDUV3izWVLK\nW3Ueb0cvRvHjCqZb7O4YGOtPztRUoOv2Q14tXr/PtsPk2JRhNFEclPbyzyb6dB8f\n42EO7bfem7R3ZWr2Y9NzmnJR6+ebt2W98fhzbjk8R8BKuJnZbwg7kokpQmICwSN+\nzYsANreELG+6g+paj/T3mVfDkwSQzAnG1GJA1wap1j2OKLNeqOHaMa4bs3/JR9wR\nnvVqdLWbo3nKEqUySG22mtbF2jxK3HIHynJO+EYQVNw7MRKx3m0M8M954fah+zhO\nt1Jq6I18Hj5PsFlFT3VEaAyGNMaVXpgpSZGPAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAHskJyko8/tS0YZvdqNoQ4eNV5Jpb+SIKxyHapm5c5UV9Xcum/jW50ZcL+7Q\nePGfaxNnWzHDtuNasNBO+g14QoPz6OAh/Vrc9PfTHxWxG7+3rLF7NtJDlaHY5JX2\nM0OeIiAoRfmEgj91lmBDiV4Hcr/aK02aoQBCwn/SBXc3TMlIx8lmv/VAb1ilJZkN\nOA1uTXYn122rKZiGtvWsc15TKR2yT5YcI8vdBKcBY/7PB3pz0gZaJYJ+nwoSsFLt\nzzitK+umLFxy8jh9YV1gMK3Hp3oD+pU6ZH1DsHnHAaoUelGaT/ENkp4KFKmOOvU/\newsT/Utu63rF8wZSmER8Ljsp0hM=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"drivermanager","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/mazzofab/drivermanager/issues","website":"https://github.com/mazzofab/drivermanager","created":"2026-01-06T08:40:41.190896Z","lastModified":"2026-09-19T19:32:40.981824Z","releases":[{"version":"2.0.4","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.6.0","rawVersionSpec":">=9.6"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"sqlite","versionSpec":">=3.0.0","rawVersionSpec":">=3.0"}],"shellCommands":[],"phpVersionSpec":">=8.0.0","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/mazzofab/drivermanager/releases/download/v2.0.4/drivermanager.tar.gz","created":"2026-09-19T19:32:40.954445Z","licenses":["agpl"],"lastModified":"2026-09-19T19:32:41.063291Z","isNightly":false,"rawPhpVersionSpec":">=8.0","rawPlatformVersionSpec":">=25 <=35","signature":"OxZBzSllxhLL9PcfVrotCCcZ/ZNXv3LU+orZbTkPMidsGE33BJIYT/sHaObwR4rI\n+6JZChkapXM85qB/fPK5aFUCaRnU8V8w9lm/MZ1XTTXEr5gyirXKPJgO1OC23ySM1J7iWvKg8qNYXIJ4oGzZJKHz/yKa7zBqUvagVkZfFVng65tuQ8iMIlvlN0JwU035tV4BcqTBi+aO74bgYj/jDGT6YZIlK2PQK7yQoCTcGhcrZJQ1HuGHlWT7ck+8oceMRQ8rDIbNq/qt3kA1XfFvO9qKW2J5YahZbfIG5roqvKSiBWraWVfFl4h4hEAkYhv12ZsB8Wm1v1tThKfDDFPPOsxHSaUEHOY/QwDk4+S4Jgy7XM4SazVXKJeMGG7Xhhi+u3x4y0T0yzHwqJl+Ln2mrwaFuUrDfZnA8i/o+0hqMhHcZ1YzhMFMfshSh3hP75WmAHMg3wNohhwE9sq6275yPf+o1QOlGdkhQu9K9zXx6DsflQP3B7HkLG+Yrdy6AlQ4VmB7ogLMDnT2Ra5C1EDzMxpcgJUldNbROvZNqJKGg+qRBKFj2ZPxIBBhxyF/LtyffIzZVazrSLwX7I7wquirM5VK7elXKaZTHzPRJ0CrlWlLdWVnAPXDBaoPiZ2WCTG0Nl8Vlzc+0ZygX4dUFAKEws1i8NZeZFow+qAxY15ToNg=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21henpvZmFiL2RyaXZlcm1hbmFnZXIvbWFpbi9zY3JlZW5zaG90cy9tYWluLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Driver Manager","summary":"Manage driver information and license expiry notifications","description":"A comprehensive app to manage driver information including license expiry tracking with automatic notifications"}},"isFeatured":false,"authors":[{"name":"Fabrizio Mazzoni","mail":"fabrizio@fsm.co.tz","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhLiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMTA2MDgyNDA5WhcNMzYwNDEzMDgyNDA5WjAYMRYwFAYD\nVQQDDA1kcml2ZXJtYW5hZ2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAx7OatCtxHH6nHxCUfpx9NBY0wbzGTpc5CYpKctOI+E1br/Sby/fZ/7IcM4ub\nN07yzTQXjKgKw+pOvqMU+tE3N+Vck4Ir7Fa5nmhWLfK/YeoyHPGRsf28CsCGrYlY\nlDje9tIsBNHk95LSotVWMah51l3m3I3CmY1mGUhlLw6apTlE3YRMoXK3xchDUzAO\n5avNFB6DqCX+B5cAGpab1sGTI6OxcyRCCIU3XtW2//9+dp15yErYNxKQvPGDSiEu\nhmSDlIg9lhJ99jWuxQpJXIHRe9qE/2irPVjK/tSz6u0LivbrxcFbTGfoz5Y0o8LJ\nrR8T2YZ64XXR5h5IDht5IR50OoYqjgzqjVdFzuPEbxvUnVtXtc9sUPiRlD5sxfC7\nz5wnIWFmmWMO42bjkUWurS98WzJryl8NfhhpW1N9zjHFRkvc2Yij0elVKIo7qxmy\nwhVxsoo/YRQu1h/rr1JMJvZTyDlhEppkiWD9iipgWkGXDWQUMPwoTMhiwF/knVyM\nbccyDRtLxHHSzZ57eyGYAFgfaX7DSqYpL/nf148hUXdbvUllh/3VZSWSyyVuo+d3\n/WWQ4n7KVyXSwBU6+nv5uiXi9m39XF3cGiOK4PK6t5AeCqHMbaj/yoBzgJAC7Mex\nJxH3sYfEKuMgod/pf4Q0n5Qaxv9yf++s29dSjGPVqoMruucCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAKGSQ0SfI4CR95nQv6b7tFhlCFSj0r93DtpjHvS1lKVMzETxB\nkIwAr4IrnRpoGRfxmIPZKiqkpJRe8J3CyDhK5z+g4WCiRskXnqg0PxoIWNCGP3HK\nu6ouUJeBBGKCTzhB2X8zCZaM4hgCNMEcbxOLk+HfO6wuPvSTTtbFpi7no1BZlVrA\nY0LlQAlP0LXc6y8pEZoLREHRp6WgwsHjneV33ndfxue4aOOHZ7kZd/RbH1AU7Me4\nDyO0cSkjvpYd4uqM9SWktx4zf2xITtZqzKCypdrSyn87DJO8eGPUW87APEAQygFX\ncV6WCDlsurysdZyl2oJWLgRiagWqft8T2UgZ9g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pantry","categories":["organization","tools"],"userDocs":"https://pantry.casraf.dev/docs","adminDocs":"https://pantry.casraf.dev/docs/getting-started/install","developerDocs":"https://github.com/chenasraf/nextcloud-pantry#development","issueTracker":"https://github.com/chenasraf/nextcloud-pantry/issues","website":"https://pantry.casraf.dev","created":"2026-04-07T22:14:15.303408Z","lastModified":"2026-10-15T06:02:41.827464Z","releases":[{"version":"0.37.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.37.0/pantry-v0.37.0.tar.gz","created":"2026-10-15T06:02:41.813492Z","licenses":["agpl"],"lastModified":"2026-10-15T06:02:41.866077Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"mJ86O9hicz1KisPqnag1vKzQCNs+uenI2e/2SZ4iEm3mBrE9LZGnSDSEA2xpOuHfJ9u6e6sye85O5l7TYxYzIA6qse+CUCMwXQ34Adh+WcJZahRU/1JFDtqZV2so9+ABocKHvaDzKe0dki6EweCByyJcv6jPrIK4m1zZ+cyKBnQnIOOnnQ7fZCwkVKYelN7+9OU17EuP9o4T8rP/VuxXBNMXwmahEWyTmneoLwidcRoSET4Y+ZWNtfp+qAO1JNLrIU8foUe+quqOH7KUKpZSZZ++DvJvtHPz7Qf6sPf1tu/dGKyeuTttF/9cfZskbnxVnk0fST0oOQLCBIDEK/Z5YulYTf57r+pVkkv23Q5hxhCs9ohtQyoOWcT+QoIXeoyheD1p9aUgTBqmx4s9VGzQBEyY4nSeYOFT48V4FWN8QTtIraEsxWe2gG/R4wDcNfgeE+aDwl/U9tJznLQiFmvPVsNlDrFYI5sw0TG/z2Fxp4oU0mJCujhnPH4L6K+l0QmTyYOJohccfZvk73J2hy4frkiIMQeEpERSO1KSbFT1A3cIcVKizGC2Krb0dr+LtL0l+MXjiKX8I8bFygrA8cQdFPduKlpwJ6NYdV/oPe3O+HoqK0ZXmENO+oah7y2zxriyhYUEwKGNRNTgEusuls6UkGeu3BdYFwLZ7xfdlHMWVb4=","translations":{"en":{"changelog":"### Features\n\n* **prefs:** per-list item sort ([46dc6f3](https://github.com/chenasraf/nextcloud-pantry/commit/46dc6f383af9686343be8854d09c3fbffadef94b)), closes [#299](https://github.com/chenasraf/nextcloud-pantry/issues/299)\n* **shopping:** delete trips from history ([b1e93c6](https://github.com/chenasraf/nextcloud-pantry/commit/b1e93c6bd90145325652a999c8dfd218312db954))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([826c0b5](https://github.com/chenasraf/nextcloud-pantry/commit/826c0b5de3b92ab524e976532ebc51fd78ba492a))\n* **l10n:** Update translations from Transifex ([7879e16](https://github.com/chenasraf/nextcloud-pantry/commit/7879e16e84179cdf6a90b7574750e1e719b21d5a))\n* **l10n:** Update translations from Transifex ([067e835](https://github.com/chenasraf/nextcloud-pantry/commit/067e835e1bc4858e7a613f8d47ad6d308b2bac0c))\n* **l10n:** Update translations from Transifex ([5fff372](https://github.com/chenasraf/nextcloud-pantry/commit/5fff372d3cd462738fe38d0a37c9df0c70ebcb87))\n* **l10n:** Update translations from Transifex ([aac7ffc](https://github.com/chenasraf/nextcloud-pantry/commit/aac7ffc814083abb4add54dd2660365f6aab6a2c))"}},"signatureDigest":"sha512"},{"version":"0.36.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.36.0/pantry-v0.36.0.tar.gz","created":"2026-10-10T19:33:16.240435Z","licenses":["agpl"],"lastModified":"2026-10-10T19:33:16.292831Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"gfgpUT8P7HgCg6LJhOigKTvk6cSYfU2P6m3nYoG28AvXNYeQd3P2bvJ1UIE0yA1f1ScrElXSeUI89ANhj9udIxbQT2Bi/h/E7hV+Kq2FcBG1TZaqgRL5XFl3P/22WM3Yw3xOPlZcnvO1ORjXYTGxkLcfUi4Ppaf1UHeDv8XRCCh49kfQH45UZCwgdQEiO67pMy3H3aEstKT61bTJOYSdb/iqSGcU+h4h5NXCAjAm0H+fpYoZ4vrY29lm1A0dnIvLwJuddQ/KPV8ho+0/gvsLUmmClfRQIExKqIHzdT1010w0tQmSyeTrLz8s3rFW+zaDpOuI11P8I3Pk9523QVo2XunwLHUAPcogWwkm8rPOszQNSj4mcubXP8ovA7CfgRmqfGx7XXTXzc3+HbsayNL14YndPqpEcKK5iGfiGdmCJNDoSgaqnaeZ9pu65lIwceojCIjkgmXPkeZkRZpUGD1pvq+XlZeLKviZU9piuVvtdCUp2ormeG7IUuxinGngvDm3ytkVCr1W7tHHmzE1jqBrIAcEFm07lav5o9kUHvxiEFoGk9B/V/slM4TLPE7V/a+BJxWLDSxmrScky8Cg7b5az7B2ySdXImAeDA4xCE6AlyUHg4s50wUmdrQfRKOUYIBA9HmuLFXxjg520/nehMMbU4iJnmEIbAiFSOVT3wMZcL4=","translations":{"en":{"changelog":"### Features\n\n* **lists:** per-list item defaults ([#291](https://github.com/chenasraf/nextcloud-pantry/issues/291)) ([797e207](https://github.com/chenasraf/nextcloud-pantry/commit/797e2071aa84dc5163e1e5b8d31e350f5bf65789))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([5e008ca](https://github.com/chenasraf/nextcloud-pantry/commit/5e008cae90cf71d1ab1204fc440857f56d85f4fe))\n* **l10n:** Update translations from Transifex ([7c004ff](https://github.com/chenasraf/nextcloud-pantry/commit/7c004ffc8e3e7cd1be841f6e66ed78df61d34fc5))\n* **l10n:** Update translations from Transifex ([c8c7380](https://github.com/chenasraf/nextcloud-pantry/commit/c8c738030c767327ef6e0d01311c9b4b315550e7))"}},"signatureDigest":"sha512"},{"version":"0.35.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.35.1/pantry-v0.35.1.tar.gz","created":"2026-10-07T22:31:31.221768Z","licenses":["agpl"],"lastModified":"2026-10-07T22:31:31.265823Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"QLZlZNfp2sSRoOLiN6krKIN7sOwcsKIHR7aKvW09yQl06G4F9X6FhrM9YLty+uH7KTOCVUmXgApf8puuPjQ5ZLhCYglwOcgGm60CVxLAysNLufXv3tP3Xlj7SWOIRwX1CLVSuSAQeFaA4cmdZOzG7mQIUQiM2ok/ggZaw3UoYk2MxXQ7UDRqQuOMuJwnVkWJJegU22Z0Y82iN7XeTxkNtmgzbnEjd281pLxmmVj6oG+ZDucNXUr9RincxyKWHFQ26/HT0dbZvLKiRB45mh81XDF14jQA5UmMZPsP/kxV89IVhcOTwoEswX87APtYCIldysAgTZrEE8LdfCtDIXKyCrQtUEVzMzgOmkn3+R/StVzx5wxl/uwnMeRaA0poOv+wcy4QXlNvkd0w/UJpfp1bWZxqIuuMukE3+eY+n5rzqfEOkctJbiA0h3CSVemIWkE8HBt1B+IAKNmd0ymNvlrowBDL5OMvv8lLQtPim6ef00/7mpjgeJHNkRsL/9uDHWhVMQCTLVJJkDNaX5y9hPxER3aPDhIR0CapyJGKSqEN5MjnMVzRF90Uah5wjVERG6l0+wBV85vydRIy5TZ+RUvw8MvyJIrrDCpwYnE6evhmNiybLkHqel9S66brvoeXxmEe+K2s13bmTEtfZ2HW94idgXyfDwhlDDI3M58COiUz734=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **photos:** serve previews for trashed photos, 404 for missing ones ([6f2497b](https://github.com/chenasraf/nextcloud-pantry/commit/6f2497b190992def63c456048d9e86d5e4a5ecba))"}},"signatureDigest":"sha512"},{"version":"0.35.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.35.0/pantry-v0.35.0.tar.gz","created":"2026-10-07T20:14:58.771299Z","licenses":["agpl"],"lastModified":"2026-10-07T20:14:58.816571Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"cidYVzXN7nvQtHNLaniEarJef+qnnOoExSVm5AxYdqP8cS2lx1jdXcadZqaLqINw3zGWSZ7VdGQ38LwPuVcvABLm1bjeO5pixsGUtHVMTgvs1t4hhwQm481ah2IYbB4e+BrslflmMAlKmfvA015FbDIMi7XKzCcUymqi5ZhrHsktsaCllSDjO2ZTBfY9b5AOM/JH64xidJmq1ggvtIdAu8GY1Voea6qrzjbOLaCYwlfw4nFrRT3ITvWVO9MWQW/hUM1Bo8oFk19r1M7o3OsftvSbeeKHeFhugk+rdEBWonDbp/h8Es7i1aTiJbLOFtYOYYc3ciKvDRMf3SjsR4YwSQ5607mgAz8n+D33txY9KHPMWOdicnyUlUXAIsm/+c/mrVuwLkyAYEF/vgh+k2uFxpRwwdb+2hz7IYbzEH4m+475Hhjf62tKs57FlhRVYJshmIK+XvYUFCM5UvP80fsUMZpATclzN6leZhtxKu4KdOuCV1J63xvph3OoBGxcUS/Q3XMfmH2QxXWikD3Ceon+CBa/rZSpTO7jX+fDzh1NE9kMOSbjfnMHAR1w5I/VllxdqG6/GUqqSP5n1Pn9uoC4LXH+oB7DS4FxbjMNR0ASE8/E5E1Vj73Iz3bX2e5oUmW+MAXnMaObHmsLiDiQakRH2Gmu+UCJSAR/CnVb3xuRBiA=","translations":{"en":{"changelog":"### Features\n\n* **i18n:** add per-user language switcher ([#282](https://github.com/chenasraf/nextcloud-pantry/issues/282)) ([c7812f3](https://github.com/chenasraf/nextcloud-pantry/commit/c7812f357168ef3081d82992d073c756609419ae))\n* **lists:** list completion timestamp and list duplication ([893ccbe](https://github.com/chenasraf/nextcloud-pantry/commit/893ccbed4fe7a599def0afae952cd53fa7a21c32)), closes [#274](https://github.com/chenasraf/nextcloud-pantry/issues/274)\n* **prefs:** choose which details a barcode scan fills ([4074f0e](https://github.com/chenasraf/nextcloud-pantry/commit/4074f0e3a4c08efa4082e32bd2f16602b1de8c74))\n\n\n### Bug Fixes\n\n* **categories:** show only the open list's categories in the manager ([4fdcaaa](https://github.com/chenasraf/nextcloud-pantry/commit/4fdcaaa2971c05123712657044d5875d0ac31259)), closes [#281](https://github.com/chenasraf/nextcloud-pantry/issues/281)\n* **l10n:** Update translations from Transifex ([6dd79b8](https://github.com/chenasraf/nextcloud-pantry/commit/6dd79b84403b8b442bc114266cecedf6f7beba48))\n* **l10n:** Update translations from Transifex ([1e4c51a](https://github.com/chenasraf/nextcloud-pantry/commit/1e4c51aa66264c0709dad0dba465858c35d3d2d6))\n* **l10n:** Update translations from Transifex ([511d127](https://github.com/chenasraf/nextcloud-pantry/commit/511d127426f3c1b5ae40f2b308cd991d130cf570))\n* **l10n:** Update translations from Transifex ([3a265a4](https://github.com/chenasraf/nextcloud-pantry/commit/3a265a419bc2027be4e22c886f2ee893a75026bd))\n* **l10n:** Update translations from Transifex ([455d793](https://github.com/chenasraf/nextcloud-pantry/commit/455d793d8df46083b3b64a9c4e2833d68b41bc87))\n* **l10n:** Update translations from Transifex ([15afd03](https://github.com/chenasraf/nextcloud-pantry/commit/15afd037a5a36429230a6ea6106a72de731b68c6))"}},"signatureDigest":"sha512"},{"version":"0.34.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.34.0/pantry-v0.34.0.tar.gz","created":"2026-09-24T06:14:19.557137Z","licenses":["agpl"],"lastModified":"2026-09-24T06:14:19.631305Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"Xi2+IT6psWJHu3KLRCuKu7dLRKSMnU3mp/5IzyVcFKh8OmYwkwMxbvZ0cUkWHznE5a01RLXwiiJveUsAif9jdWIy9Cayf8OzF6lUrqXpCBU7PB2G/1T3KNh3oIjC9a8ybTlyoPHTY5P7JUuANGoow0XO6mRU1H6ikfsFSivqb9uH4utCJTLa8sklbSU53ek/zfc8At4INAU1FvSBs75B1VpJMjPbuEBtTfUs08RKJRYpssxOqsvBrRtv7MueeM8RBmgLDQnLPmVEge698kRQ8HpJdRXdZkH7ErfABVvd9vJ2dO6WS8Sgz+bDhSY3+MwzWPKf14hm/QOb7MDOYx0vIdlqBmRV4XYI12h51wL1h86LOntGxQ1WfVGwJFu9e8peq8j1EU4gpEtHlKikY3k6++KSIko1ElCo5Pj9qwcBSVTbyAZy2be4nqghaA8ul05nlTsibj0YEvKJfhGJnjDVK2A7xL6vPTKuGRvPJmvGIu6PaLk/jEMPvI7M+1s6311xRF9xN+nyK7Y4z5ETJ5WwgLn/pSLoHKmLsCnkYF4JOxKfd6zc6WeUpE0G7jIJHM8nU0dluhtMslj0NvZ4ei712sIHQEHoitk5AEjbQ6gMATzkMx2edNdroCSuXlwFK1pD4WlTnsqoR7uDz6Z5WdFWDiWCcmIlHf3YlT/7cglGLBY=","translations":{"en":{"changelog":"### Features\n\n* **notes:** two-way sync between notes and files ([3420b83](https://github.com/chenasraf/nextcloud-pantry/commit/3420b8357f8a1a88846214d3b999ff41c640e892))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([5bd2d04](https://github.com/chenasraf/nextcloud-pantry/commit/5bd2d044fa2b98f0e8293545b50a2169e078f2be))\n* **l10n:** Update translations from Transifex ([fc36851](https://github.com/chenasraf/nextcloud-pantry/commit/fc368519cd56f5a23813a61cd3869b94f092bb87))\n* **l10n:** Update translations from Transifex ([32ed336](https://github.com/chenasraf/nextcloud-pantry/commit/32ed3364d3c273cf6292dc9cf970b32cd99d82ba))"}},"signatureDigest":"sha512"},{"version":"0.33.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.33.0/pantry-v0.33.0.tar.gz","created":"2026-09-20T13:41:14.577915Z","licenses":["agpl"],"lastModified":"2026-09-20T13:41:14.643655Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=36","signature":"POICdkQdqvxmPH3yMbHy3YWswVjJk0lQVd1jkU8TMZfwcO6lkBDtGDTqeVxan0XXe9/Wa3Rxrb4Xl4sSW0Jit7A3ZKYpf5belUQC0rxmGWLVZSEyACLzQcJk1WnZY9u5Be+NyaHv/78yj1gItt3VqZYK5cMGm7X3YKPOS2hszUOi6uauQJAs3EJPC35QMaL0V4V2DZioNuEscerYbaAdi2hWMzLFtUGKa6IarVaCrWdhNQ4ER4+uoYwpMp4tLxehZXj+35SPvtKUUar0ZuzuGFEsveTUN0Tv4KCEgjPSS0jdq8vWNRx+2Pu1QioT6m8WS1VymQ//0xSOBd5qpoaATyxBVe08bLjVxoVEzy+zxaI4gB+dqom5nISxYEiJl4mAy349lrecFDyaGqOpg8eF2qqUesQBccWl7NgQSUC8Gv5KEO5NF49APp+grfHogBvyvjeuMuMxof07LyTAsT7SgGQaeUUWpqW/L2CcxO89V9WCw2mrcC6PQCEsN7Qyq5k2GxPbnuD5y9Ld7rcRkd67R7MLDCF7bO8I6Sb0/RvF6aXrdxqKi7A9Z4L601/C3SunGPiA47WUIC8nK/LTe+dvlAD5lSAFjDnI6dFMG88fsCH3RDCh87xnlR7q6JeaQpYl6PgajBBXVc02htyLbtp+WcVLnJ6xXLZ8ScWsmlTPpME=","translations":{"en":{"changelog":"### Features\n\n* **categories:** per-store category order for shopping mode ([86e2b98](https://github.com/chenasraf/nextcloud-pantry/commit/86e2b983430f0d8737216647b671de173639e21f)), closes [#254](https://github.com/chenasraf/nextcloud-pantry/issues/254)\n* **checklists:** scale the quantity +/- step with the value ([ad7da75](https://github.com/chenasraf/nextcloud-pantry/commit/ad7da755fb76be3e3ec9213cc7a6ae3c2e92932d))\n* **shopping:** amend a past trip's store and grand totals ([6ed85c4](https://github.com/chenasraf/nextcloud-pantry/commit/6ed85c48cad5ac99cca07a2d9ee4ab994ebaa302))\n* **shopping:** choose which items a trip covers when starting it ([5d70409](https://github.com/chenasraf/nextcloud-pantry/commit/5d7040915eb178469722f4dab0cb109ef8a8bb65)), closes [#261](https://github.com/chenasraf/nextcloud-pantry/issues/261)\n* **shopping:** join a housemate's shopping trip ([234c3a4](https://github.com/chenasraf/nextcloud-pantry/commit/234c3a487699f45899d28fb8efa9f8849d8bb5df))\n\n\n### Bug Fixes\n\n* **houses:** search accounts by display name and exact id ([df14d0a](https://github.com/chenasraf/nextcloud-pantry/commit/df14d0a5c7e29218bae66270422fc15736e2030c))\n* **l10n:** Update translations from Transifex ([fcc1642](https://github.com/chenasraf/nextcloud-pantry/commit/fcc16428ce27a5ff7b59ba0e6ffe26f9dd0210bf))\n* **l10n:** Update translations from Transifex ([6706e39](https://github.com/chenasraf/nextcloud-pantry/commit/6706e3904d28ee18e41b54220a81546186348a7b))\n* **l10n:** Update translations from Transifex ([e7c6ef0](https://github.com/chenasraf/nextcloud-pantry/commit/e7c6ef06ed2779abee429132bb46b7872578d2cf))\n* **l10n:** Update translations from Transifex ([937dd62](https://github.com/chenasraf/nextcloud-pantry/commit/937dd620d0ce83ba6aba6fc6f0e68cc4bb27aedb))\n* **l10n:** Update translations from Transifex ([5b36b01](https://github.com/chenasraf/nextcloud-pantry/commit/5b36b01761f837291d6c46d0f05cab505bc3d9f0))"}},"signatureDigest":"sha512"},{"version":"0.32.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.32.0/pantry-v0.32.0.tar.gz","created":"2026-09-15T06:17:51.657578Z","licenses":["agpl"],"lastModified":"2026-09-15T06:17:51.717837Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"D6Cov0Es9YLVChto6tOwi0vcE9HkDzubjetHFiNnOtu8INFgzjzUr60V16WwzthAAJdwq/I3s1xFFfSJh1LsgdrGIOL4EM1j0YxqToVVX1kD00mAAI34Mux35N9dcS87zoezCkinARKrjJr2wv554j2/jkRtdkWOIu6Je6DlTeZBoL2/sXaMdgwk+DZK0QTaL2d3hwyORgcB1DTpDl2WmONMdrv73vI/JLKdvbkFV+T6oN0+NQcKF1K5Lt2/pUwx8rtx1mynuXveL/z08igNQGquJpDAHfuDTGuRdmpxdIWyJaXtFawYUCVFryP62IvqRCfU/w37V2xC1Infcbffw5hBHtYl6e3YjZ6YGxVaiM0HBwOoh1iXixQ2HgIcptxC8cvO08uzrXmcTiX6AA8K8+hUyOvsW4TMNlOPxbXo5ygTk9V+UeH9zIekDA425Ak7vUArXVByRZuvCQlE8blEWL32gCpvdiDqQflmfKqBMqNqn4S/1RovF6J0it/T7U0TSJcWC2//ExNbl8Tg6alvwm2tOsZS4DW7UskNgsMXlmcWt4nk2iHfBHUyNAcNJIGHViqAeV5pU1G4Ivujfk1hUZ9OjMA7B6BnRSlGfiDZ6TasJMd5zmROJIgwU+dUdmh9Vs+0POe9FpnC2IG1WVfhWYWUs/ROg4/vlef4Zw1Pzjk=","translations":{"en":{"changelog":"### Features\n\n* **checklist:** add archive all action to done items ([819e75e](https://github.com/chenasraf/nextcloud-pantry/commit/819e75e684a5d6789dc833529ae4338d6d28537b)), closes [#265](https://github.com/chenasraf/nextcloud-pantry/issues/265)\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([12f8e0e](https://github.com/chenasraf/nextcloud-pantry/commit/12f8e0e9247722a8f7a371ce1a9fd43c31baa067))\n* **l10n:** Update translations from Transifex ([7ae6b87](https://github.com/chenasraf/nextcloud-pantry/commit/7ae6b87abf649f2dc2bfe4cbeb11ecf85ad26fad))\n* **l10n:** Update translations from Transifex ([d22fe55](https://github.com/chenasraf/nextcloud-pantry/commit/d22fe55573ca8093161d6448ff30cf82976a89ae))\n* **l10n:** Update translations from Transifex ([8d08966](https://github.com/chenasraf/nextcloud-pantry/commit/8d08966f3217cc07e91334362c5ee441a7007959))\n* **l10n:** Update translations from Transifex ([5f7c83f](https://github.com/chenasraf/nextcloud-pantry/commit/5f7c83ff935d0d855e8de13189f1435cc836273d))"}},"signatureDigest":"sha512"},{"version":"0.31.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.31.1/pantry-v0.31.1.tar.gz","created":"2026-09-09T08:35:18.888540Z","licenses":["agpl"],"lastModified":"2026-09-09T08:35:18.966357Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"It/lKScNpBCFQc/OFH7rToAGMAUXAJQML/cBf7yikLcHa8SoE4zXSddSvxAM9xSSAkQK+YQeoZF5aOz8lEJ+sbYOu5YI2oFoLOQ/al9ZNJ2cuyPMwbQAD9dC1GHUQkVddLVzfiRSzmYKBt4HSZxMQ3Fd0wEdbxXfkrQxhldWrzpqX1Xn1SmkDCAPZlrhHYzYqoYDTfsSIkQ/d36saX/cJPWGSq4lSBICESdjE6lz0b3nVCphgq16NIQEzfsI2SeVhUXJjOAGl4kNd+fsG+xX5BAz1Q0ZqQJ+kUZ+6FKuCBRvDec4ggSEISXYX4GSueE+fuPfW4A8kNBqMyYKJInY5IvM92PizCP/D9MC9SzqKcvVHGQ0WdxT8ry8a8+IO4PuP1h5b36uYGc/lUs/QMiVGy2R2Zg3a+6GtZ2bnQl9X9mTmX/gA6AmoZHshtFeXJ8fNtVq43BEA6MWrRCZ9hnasb9j/3SevZ/EqVVXr5WjY1f2eKu8HSFeoCiAJFbHrZ+fY+MNRV/P4zJDtdXnl8GAtXkmUs/YQ7JA2oC7tweEQUpZYPrgFiu2hTsggx6eYKUUutygPhn7BYXVAbLdopdDZrPzkHghmSDzeNZOOwkm8VUVM+YhAiPs794sGAVwUmGoB4d1ksSofm4k0YRPXgvf1qMWEGXKTF0vduto5Ny74ag=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **categories:** keep sort order distinct within each list group ([e8ef889](https://github.com/chenasraf/nextcloud-pantry/commit/e8ef8891c7636fbef7a318323743e43f1307a163))\n* **l10n:** Update translations from Transifex ([7fc85c3](https://github.com/chenasraf/nextcloud-pantry/commit/7fc85c39e1d156437ab896a882857e507e540777))\n* **shopping:** stop the resume banner escaping short durations ([27e443b](https://github.com/chenasraf/nextcloud-pantry/commit/27e443bcf94b2eba75149d54b7599c72d6b01697))"}},"signatureDigest":"sha512"},{"version":"0.31.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.31.0/pantry-v0.31.0.tar.gz","created":"2026-09-08T06:59:06.460380Z","licenses":["agpl"],"lastModified":"2026-09-08T06:59:06.533783Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"ECvLycwq09BTmpSs/fHIXm5Vs+WNiab+hDg45ESFBrm05UZN1X4emITzEEjeTJ+AGiGGHeMaOSe0Px4cm/4NXU9kN3L3Z9PU+XOxhOD9mPHpARaA377No7tCpQ8v8TE8/TcyOsYwdG1If7f3t9b/8uWtdpmX4lUKgYMJuvIQek8teQ6pI8IVhEWA9ngaj32cqBAEi9Dx2fb+959I5DZyToyBhLAQ6R56uhulgXo8eKM/QIKbLoddNEwo7uqx2AETiP9xeibN0pekajgMFwiKN0Wji0YFMIjpxhoSEP6BXkAUAerLC5eisspzukEknyqPBWPCrIO18jf8HRNlJ8Ok3LsOQkQZkfxV2VluJSzpFeHEX0cLRx9Ec4Ew5zLDpIcjkR/z55CQn63a5Cj5WPkN5JKJ2DvxoGbAUxeaXQd1kdZI1sVU2YHC4AVvyAY/MGQUiXVJNNNZ+3rPfZlFJwLQVUXoFB3ozhdbigTNio/PNBegfAdqB5a1d5xcySOmr2aLN6rE9+7gPgbgy2niZUOHloAg60w3CoMG+puPLEBxVSm9GcBCkct29ekTb0xtxFBVFsTgmUO0+AYKqKMDRXyJGv799/GdN0h0wQBK25ucU6KxbufEEj8f2cvhDRXa3zjraqrEs1y/I6f80i2Yc+tcpN5+/BmxPITsHJ3xXfhlWWA=","translations":{"en":{"changelog":"### Features\n\n* **fields:** auto-detect links in text fields ([3f8ab7e](https://github.com/chenasraf/nextcloud-pantry/commit/3f8ab7e43cfc480dd7616793924f53fc713c3f63))\n* **lists:** per-list default recurrence for new items ([f8373da](https://github.com/chenasraf/nextcloud-pantry/commit/f8373da462369ab7d082b9475bfa5d85a6db5af1)), closes [#256](https://github.com/chenasraf/nextcloud-pantry/issues/256)\n* **nav:** documentation and companion apps links ([747a727](https://github.com/chenasraf/nextcloud-pantry/commit/747a727f837552605e7485028b404712576077ce))\n* **notes:** toggle task-list checkboxes in view mode ([1e230ad](https://github.com/chenasraf/nextcloud-pantry/commit/1e230adebe53c6ce2acb695f87900dc275af3a23))\n* **recurrence:** monthly ordinal weekdays and yearly dates ([37fd481](https://github.com/chenasraf/nextcloud-pantry/commit/37fd481872a9b7320133632f9ecdbd27586643a2)), closes [#250](https://github.com/chenasraf/nextcloud-pantry/issues/250)\n\n\n### Bug Fixes\n\n* **checklist:** honor reuse pref when tapping a suggestion ([e3aecb9](https://github.com/chenasraf/nextcloud-pantry/commit/e3aecb98a410ecf9422fa0dce0fc054ee694da43)), closes [#255](https://github.com/chenasraf/nextcloud-pantry/issues/255)\n* **l10n:** label the item type field \"Recurrence\" ([9d3f319](https://github.com/chenasraf/nextcloud-pantry/commit/9d3f319d071a3b6cd70f76cbbaea7cdf677c8d74))\n* **l10n:** Update translations from Transifex ([4001c27](https://github.com/chenasraf/nextcloud-pantry/commit/4001c270b5c3954e958457650164f2aa4dfca563))\n* **l10n:** Update translations from Transifex ([64c7788](https://github.com/chenasraf/nextcloud-pantry/commit/64c77889ab793ff010ae4f1ebbd5c8d41a929bc3))\n* **l10n:** Update translations from Transifex ([7d114d0](https://github.com/chenasraf/nextcloud-pantry/commit/7d114d0823324f1155149bce74597d9e9c126dc2))\n* **l10n:** Update translations from Transifex ([9a7eea6](https://github.com/chenasraf/nextcloud-pantry/commit/9a7eea66f2727c3e4f44d3555b6436c3a56bf0c7))\n* **l10n:** Update translations from Transifex ([e2754f6](https://github.com/chenasraf/nextcloud-pantry/commit/e2754f643b488e7e25fd7d72721119c7f5967040))\n* **l10n:** Update translations from Transifex ([2581c37](https://github.com/chenasraf/nextcloud-pantry/commit/2581c377607fa8b3bc8494678ced048b3a03e736))\n* **l10n:** Update translations from Transifex ([98b85a7](https://github.com/chenasraf/nextcloud-pantry/commit/98b85a751f31ee35fe47cd8c6f09e10468d3ac70))\n* **ui:** keep resume banner and sticky headers clear of the page toolbar ([4a0f221](https://github.com/chenasraf/nextcloud-pantry/commit/4a0f221feb71abf757ba00f47d3c455789842391))"}},"signatureDigest":"sha512"},{"version":"0.30.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.30.0/pantry-v0.30.0.tar.gz","created":"2026-09-01T15:49:53.738133Z","licenses":["agpl"],"lastModified":"2026-09-01T15:49:54.084539Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"cbLxJGVl7sxuRyWPXYTe6bEmaBT+P/4EpOU6qDg1TShaq8ddnFS8wSsET+0pGns/lIi6G1GCu2VZVMsNecGmjRjO50ednInULoWbvP3SQzvE1RmqAipTSUUtn8z/YdBbbFL7p4G0dKBI/cN8cx70KKO1FJuwzDUYcMYPzlXNjYZgdLAAqgHRgDLqVKKgyXIBmIqY8NUk1A2KZTA+JE42j74/KFD+9jcjO1BgJkJ6DqmcklHFJtakZ2x6JbWYl9W0GUPwLvdNsCnXyZW0SmpXUhGV8c6eLJZppAUCvB8NlwgiKnLyVyJEXKJj1KB8EzI1Fw3FROtZFcT/ba3gQnQJn6OMvjw90vLGlguwnJRjVdxVjJmsnPt8JTLd9tZtWh43JJ1mapUcwIMDwb9DYpptfLCkBpH7AEg9tYTu+stJTwjjXbM4kqvSWJ8dLFWGzHGFdVQFGHE1ljSixKIj+Vf4jE04bfM3syhAE9l6Gm46KRB2ANKLF7HhnLaA5YYJlqEqZTEQhqhscXKIKs1dkxI9gSovPR6F2L8Hu8OJT9JBbJ9lm3kq90BdgOIpLY7p3Vk/GJ/S1xP6kby8Ac8RIhdIFS7Yn8zi9MjSOn41SjmGmhImjP1BkVURuCZuVUe8pYgUU36uF1GgfuzUn4g4kuwHi5ABNKDw/EWiLP4Yc2ZxS8c=","translations":{"en":{"changelog":"### Features\n\n* **checklist:** allow opt-in suggestions for reusing archived items ([966e807](https://github.com/chenasraf/nextcloud-pantry/commit/966e80702de88e361cc46da5a8d096d3026154b8)), closes [#215](https://github.com/chenasraf/nextcloud-pantry/issues/215)\n* **checklist:** bulk remove-all done items ([cf9cd62](https://github.com/chenasraf/nextcloud-pantry/commit/cf9cd62f44de845e5e2c4f3116ecd91d254dd0f2)), closes [#248](https://github.com/chenasraf/nextcloud-pantry/issues/248)\n* **checklist:** configurable item click action ([50b4736](https://github.com/chenasraf/nextcloud-pantry/commit/50b4736b907a7c4d75bc40db8ae90a10ad2912d0))\n* **checklist:** update item compose form style ([2ed921c](https://github.com/chenasraf/nextcloud-pantry/commit/2ed921c77e5d28f7d735194e0fd59071ff543c31))\n* **chips:** redesign chips ([13d6e47](https://github.com/chenasraf/nextcloud-pantry/commit/13d6e4752edfcb235d8da3282fd39c620cf37e55))\n* custom fields for checklist items ([c564a92](https://github.com/chenasraf/nextcloud-pantry/commit/c564a922415ed3364e79f7e0549e1f596b302505))\n* **filters:** redesign filter controls ([52da4fb](https://github.com/chenasraf/nextcloud-pantry/commit/52da4fbddb8e833bd5fcede596a2c79f7aecf0cd))\n* **items:** redesign item view & edit modals ([4bc294f](https://github.com/chenasraf/nextcloud-pantry/commit/4bc294f17c61398af9e6bf692e0c36ea75b07dd9))\n* **items:** stack meta chips below label, restrict drag to handle ([70b90bb](https://github.com/chenasraf/nextcloud-pantry/commit/70b90bb18758f68808f094f262b14d018c3ac0f2))\n* **settings:** redesign house management & settings ([b8950a2](https://github.com/chenasraf/nextcloud-pantry/commit/b8950a23f6b3e172b6ebc6dde00a9133e8b3249e))\n* **toolbar:** make page toolbars sticky across all pages ([c4f6c5b](https://github.com/chenasraf/nextcloud-pantry/commit/c4f6c5bd10af97f2babf69b7a6f11c3a135b5393))\n\n\n### Bug Fixes\n\n* **checklist:** disable user avatar popover in item detail view ([1d9da5e](https://github.com/chenasraf/nextcloud-pantry/commit/1d9da5e21d59dfc8825654304fc3502c39786554))\n* **icons:** properly unify category, label, store and price icons across the ui ([e680d6d](https://github.com/chenasraf/nextcloud-pantry/commit/e680d6d4775f3df3af32ef5f407ee29001ce7cf5))\n* **l10n:** Update translations from Transifex ([4a595da](https://github.com/chenasraf/nextcloud-pantry/commit/4a595da2b3311a4d15603ccf1b6780e477456b4a))\n* **l10n:** Update translations from Transifex ([c85ee40](https://github.com/chenasraf/nextcloud-pantry/commit/c85ee40fda12768896f9cc950e99c6ec19502d83))\n* **l10n:** Update translations from Transifex ([18935a7](https://github.com/chenasraf/nextcloud-pantry/commit/18935a7bc9e9ec6b7ed6748a698b9ac614c49db8))\n* **l10n:** Update translations from Transifex ([3879fdb](https://github.com/chenasraf/nextcloud-pantry/commit/3879fdb9fd9f5e413c3f01fb608cf2f15755199e))\n* **l10n:** Update translations from Transifex ([612bf37](https://github.com/chenasraf/nextcloud-pantry/commit/612bf37406ef0dd89b9e3d9120c42e147787c4bb))\n* **l10n:** Update translations from Transifex ([e5810e3](https://github.com/chenasraf/nextcloud-pantry/commit/e5810e3e3fbacafd780f4528c1866e259cd18259))\n* **l10n:** Update translations from Transifex ([5f31ad5](https://github.com/chenasraf/nextcloud-pantry/commit/5f31ad5cae9aec77acb80e597f11b960c56e364a))"}},"signatureDigest":"sha512"},{"version":"0.29.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.29.0/pantry-v0.29.0.tar.gz","created":"2026-08-24T11:23:28.146320Z","licenses":["agpl"],"lastModified":"2026-08-24T11:23:28.217516Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"B//eaCQk7enezGHhExbJgFUYFDKvLpP2jN/3ZB/imgj5yCi77L+kgYaBLvOxE2ihiK15zghJVcDbnPwQWlHLLG4K+97IWXf/sNRwA1pTrZ+F8enGLfA1oz+/pQVsgxR3v8L6I0wfuIJuVCrD7JfDGveScd4+fgGAbsbkuBtKMCK0oRlppJ2vXzbyPyXaDxLT2JFa7YN4J/2eefPN8dwL+WuNRLqipL/UgM8ceKcFQnDz8T0LT6+7xV5aWanEpHJzwJ4VM+/cz8ZDgTwet8JnPbkT+v3Xny6aTphiha0MvWkYWlsEMzTD7QpMolqcKzoN3IEt4FSmEKCPqsyAuXzdEmV029qNsypKyKHqZTbs2K77RNfHA4UgpjrXQtErKlJJ2hfdL8gilvtbAMyr28XqTmmeRhJEQc4hVG6fRcTWXpAvGrJCQBaERFnfvwNa2wgcSi7xk8zYtWnQATDSlnhBi7p+mCA6ywP+0XnRFdkY4xgki/+4goNSErCuu4+jxfSQ02HysFtalslOEXJ0JJnAzL6W2k6TFbbsUocrXm4hjwfOl8TqkVGcgyGawUQUE0Z2nL8jsixIUuPFYnuh6WiP77B7IkkUao1x/olxMfHgSqxL6hnV1k43K2FNDILSzHvsaIJ4H4BlnSHiRdVbPEPuZUR1nI1xDfTe18mpAgHQJog=","translations":{"en":{"changelog":"### Features\n\n* **checklists:** archive lists ([1fd0062](https://github.com/chenasraf/nextcloud-pantry/commit/1fd0062d61be26eadd9ba1f2c48d4c71bf71ab51))\n* **checklists:** reorganize checklist index toolbar ([ae58890](https://github.com/chenasraf/nextcloud-pantry/commit/ae58890e81bc6ae5a52c3565237221a721e3a057))\n* **notes:** add import-to-list action on note cards ([3503307](https://github.com/chenasraf/nextcloud-pantry/commit/3503307e007fd48360042b77448ce7b41ffc4c1d))\n* **notes:** update note dialog design & layout ([238ee74](https://github.com/chenasraf/nextcloud-pantry/commit/238ee7434e3ef524faae7303ed6b268a2257b35a))\n\n\n### Bug Fixes\n\n* **checklists:** open trashed lists into the list view ([aa42d14](https://github.com/chenasraf/nextcloud-pantry/commit/aa42d1485bdefec9b80193965748860bba95d686))\n* **l10n:** Update translations from Transifex ([9e47397](https://github.com/chenasraf/nextcloud-pantry/commit/9e47397a6571283c429065d710c31f109807ebec))\n* **l10n:** Update translations from Transifex ([80bce04](https://github.com/chenasraf/nextcloud-pantry/commit/80bce0454c1eef3acb12d7716b1628b12faf6b54))"}},"signatureDigest":"sha512"},{"version":"0.28.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.28.1/pantry-v0.28.1.tar.gz","created":"2026-08-22T18:37:21.364453Z","licenses":["agpl"],"lastModified":"2026-08-22T18:37:21.449906Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"CVT3d4tGaNjumukQu+MQVvgA3PjeDmfqPMfilIS6anZsS1VxmcLR+YhusEGsLhCS9y1lVmrNDngQBKh+ZYvcqRsYMu8go+XRbhRd7eyhP+h2lZaNt+ll0TT4G8Sqf2aCcvFBRPFvjWImBjOtzcMMHKryhdNuj8Zv6RWp1/kla6EEgY5MXHOWvVs4GcaGmd6m/W8b82DT2iJOkuGuGLOHaoEeoWxceGGP7LSJIE8rIWPnJuIlANphlSyPFu1sI0lM7/Y24wDHehWbcEccbB+U9JW4yBIKcDnaXjR89BI2r8Wh5SlohRQZH1zh9WzoodW9jGzGRM/iLq+sJYdYtEkvIRCyT0Adup7LL5irHxb3rhByMlrHRzRgEdxtLs4Z7cGSYcuw5S7xbyqSxjFPnjG0kcYoZRFx1GYzpsDgSsygtdoKpkA2etoxzwfDvJ4RrVCFBPafUofQ7QkZBnBbZ8+6iugVMCLOuFtJVdc/LtLzW8FXhX4BKsNjnaO7KFVzAMnywL+1S+FylXT2ahIMsnMMaUBiqqinjNQ6oNwuTFwl9ong7GLkucq5BfVH0DuvFGdkXlUwR3drBHfmItqKnT5zB9COANvGQGPJCnWKda+6h2Newor0AuQU4Y++GCdlxTrdONGZ/x00HtwCSdakBDbAo8KHKOLxVbO4eBC0frlZVfE=","translations":{"en":{"changelog":"### Bug Fixes\n\n* **checklist:** recover items when schema drift leaves legacy price columns ([cfcf90e](https://github.com/chenasraf/nextcloud-pantry/commit/cfcf90ed8b94df5173ff5b04e66a7370b384d162)), closes [#236](https://github.com/chenasraf/nextcloud-pantry/issues/236)"}},"signatureDigest":"sha512"},{"version":"0.28.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.28.0/pantry-v0.28.0.tar.gz","created":"2026-08-22T06:32:12.164771Z","licenses":["agpl"],"lastModified":"2026-08-22T06:32:12.238198Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"bqQKlMOI2GzEhhW0hr3wLCkatykv6r2FEJI0xvLbtmEKZQzUBkTeUqxMEmY8SXmEurPSqI0bo9eLbQJhF7LkVm8ymqxqzWKnOPe2zHhvqYPvmZumqkhLoNAralygRy0o9GoVwOc7qAXKtWgxFlLaaHZRTLy+FGljb/yR7pny1d2vmuKMRtUKE3eoKATL07ia/va8m7Pp3wbJz8TLydNn3UZr3FQOLnY8HwQugvzQf3F/3iI+t5apU79/Q7tUxOX8dvXKcIXPsSoaB9SWbsr7Cjy4CAfUs4jzTiJwjqnV0eaZPcY2a6GJLJArAVHfXFq//YPaq+Y9xYmEzxknlAEuA74KrViiIeOye0hjlrosthidqz5scC6agauczK+2IFgNvnV7iJOu8nprp2mRDOb7CQBoROpTJel9UvNSy0NRmbhC+P2GHfUZPkl0viIP3lJ4ESE3V6JU5wL8qxXDyHEtuMIdp7IHF3USLKSLIX3wwY6CLdHA5nOu8BnEiENeAatf11/FrorRIWnRrZ+AOaiYn3gVuMYpVkybHTVvmBp9HuhfRW/qmLK8mv/T0ATnnHamp0de4mgJGKmq7oCJevVQRl+HdC8nuhESrE2ssTTNR0+jD3jhFR02YEytjeOWJb2UXc/vwkSQJ8IuSWXdITsMdFn0W6ozBkXfrhKQ0RFBaTE=","translations":{"en":{"changelog":"### Features\n\n* **categories:** scope categories to lists ([0c5d47e](https://github.com/chenasraf/nextcloud-pantry/commit/0c5d47e11a5483ae2a7225c667fa82c4a3280b03))\n* **checklists:** add labels ([4c6cd9e](https://github.com/chenasraf/nextcloud-pantry/commit/4c6cd9e6e7a0175f7861d51813c0501b68e9ab21))\n* **prices:** per-store item prices ([#231](https://github.com/chenasraf/nextcloud-pantry/issues/231)) ([6c1ef9b](https://github.com/chenasraf/nextcloud-pantry/commit/6c1ef9bc9757a1dbe3f9079240ba948091a264fc))\n* **shopping:** recover items removed from a trip ([1661f22](https://github.com/chenasraf/nextcloud-pantry/commit/1661f2207ec5234950a9506cca38493870f3371e))\n\n\n### Bug Fixes\n\n* **checklist:** give empty-state icon box more room ([59be25c](https://github.com/chenasraf/nextcloud-pantry/commit/59be25c5464c0e57ae7090b7a61caeaa8103c723))\n* **checklist:** publish item-updated activity on price-only edits ([fee4f06](https://github.com/chenasraf/nextcloud-pantry/commit/fee4f06dc00f1bed059fd3c8f3619f74689d9fcd))\n* **l10n:** Update translations from Transifex ([9fa2e78](https://github.com/chenasraf/nextcloud-pantry/commit/9fa2e78ccc2cd47036d94d5d39219b545b0d671d))\n* **l10n:** Update translations from Transifex ([9a5e34d](https://github.com/chenasraf/nextcloud-pantry/commit/9a5e34d41f6900c7333e6e4207f28c2da8b0e1e7))\n* **l10n:** Update translations from Transifex ([335897c](https://github.com/chenasraf/nextcloud-pantry/commit/335897c7d163fdba49170ae351ad4989a361669d))\n* **l10n:** Update translations from Transifex ([026bba2](https://github.com/chenasraf/nextcloud-pantry/commit/026bba2429a45f8c4e0b7a7717434f752a3c08fc))\n* **l10n:** Update translations from Transifex ([b48f5b8](https://github.com/chenasraf/nextcloud-pantry/commit/b48f5b8e4e25269b600d3f514937055936466d2c))\n* **l10n:** Update translations from Transifex ([cfea181](https://github.com/chenasraf/nextcloud-pantry/commit/cfea1814878a47f29b46f30517bdff8bdb70a7a8))\n* **l10n:** Update translations from Transifex ([c360996](https://github.com/chenasraf/nextcloud-pantry/commit/c360996cb411ce3419574df9fbe59b446f55cd15))\n* **l10n:** Update translations from Transifex ([ec7e83e](https://github.com/chenasraf/nextcloud-pantry/commit/ec7e83e6c2541f5e4f744c7b459b39fa0d9b186b))\n* **nav:** keep sidebar list icon square ([409705f](https://github.com/chenasraf/nextcloud-pantry/commit/409705fdf37a68ee17861a91614bc54df073dd99))\n* **toolbar:** close overflow menu after clicking an action ([076d00c](https://github.com/chenasraf/nextcloud-pantry/commit/076d00ca4151d79c19c739c9f38f7ae80b5d1918))"}},"signatureDigest":"sha512"},{"version":"0.27.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.27.0/pantry-v0.27.0.tar.gz","created":"2026-08-13T21:53:42.240375Z","licenses":["agpl"],"lastModified":"2026-08-13T21:53:42.310635Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"i2IIF6phNgDfhAcQENPd2Tqm3nsWuUgrkvw3StocCzTJRTPR+88uBhXAG2Szkb+h0LdPuaKvDIlY0nxmJcrmS6gqI5rK5eiRXKYTsGtHfOZR5pgCOFJWtXZOvvM/wyHXf/yjYYf2nbxi66Vq4mYYhtti4taOZN7knCp63aRhGMohAw05Y3efz6PqyxLos0TIPm6TLEGmeLYn1zm1jPdeR5eO3bUq6ze5/w7WZs0R9o2GjJ8ppWW83CxURyfFG+SI98+QiroQlMYE9193Z8edCXifreAgQBdaEFGjQ1PqW+Uju3vlqHRYXUh1jIbb3K0fmaLEMEm296CBPGXEvvIGza+4JB42w3Dti1C5Q3FdIiYTCiX30cCr2Zx4r5KjsEJge4jh+KKChKWUkdTHaNmKPVqWDHw/Aw93+UyuHbKUHVaLih+Vz3FB0ZAolbaphujujQ5j/RXKRsykn2+KrBnpyo1S6Au2jMk9v0DgQky1dEXz+MKbvV390qHJ/+lM+hFgtNfklwveBY14RXqJugnW7+heC1gQl+cjgnvHVwMKs9jyjOeTunbuQKauI6UR/+MRwwEB44cc0tzKuuuzCka3HmQWs+hKi+FoR+gCQRkwrPxyrrDk8IlTRgeMpOHS6woQ1rT/03r6JSFdi7q0h8B/HcLX8dykfWvFHrSexGUZSIc=","translations":{"en":{"changelog":"### Features\n\n* **activity:** add sidebar filter for Pantry activities ([af4c637](https://github.com/chenasraf/nextcloud-pantry/commit/af4c637fe680ec1c9e2e1628900e23d6bc13e135))\n* **checklist:** custom item order within categories ([528af2d](https://github.com/chenasraf/nextcloud-pantry/commit/528af2d28c24cb118c8345c6794cd51220300b99))\n* **checklist:** custom item order within store groups ([058cc3c](https://github.com/chenasraf/nextcloud-pantry/commit/058cc3c7d4f5df757d009a8b01edd40263c25c6f))\n* **checklist:** reset custom order to a chosen basis ([0dcc197](https://github.com/chenasraf/nextcloud-pantry/commit/0dcc19706c48d15cc327daa03e217e7f4b1838c2))\n* **checklist:** store true item order independent of checked-state ([d042904](https://github.com/chenasraf/nextcloud-pantry/commit/d04290445bbd144fe648f4d57b477a1c9f2af468))\n* **checklist:** toggle task-list checkboxes in item description ([7b69fe2](https://github.com/chenasraf/nextcloud-pantry/commit/7b69fe2f7497bf46d38a564bf300f5953ab88f53))\n* **checklist:** uncheck all items in a list ([cb3d6c2](https://github.com/chenasraf/nextcloud-pantry/commit/cb3d6c2d4e3db643b665fafc3221407e07f2c1d1))\n* **editor:** WYSIWYG Markdown editor with source toggle ([6872496](https://github.com/chenasraf/nextcloud-pantry/commit/687249667755988950e40fe8134853d9ed4a9e5f))\n* **item-editor:** inline the clear-price button on the fields row ([600bbcf](https://github.com/chenasraf/nextcloud-pantry/commit/600bbcf23f634b6119a37ba82649f8c743535a53))\n\n\n### Bug Fixes\n\n* **checklist:** stop the uncheck-all label truncating in the Done header ([3508e91](https://github.com/chenasraf/nextcloud-pantry/commit/3508e91d6b912b51d1f1079cf2f6d81a60119cf5))\n* **l10n:** Update translations from Transifex ([52f6ef7](https://github.com/chenasraf/nextcloud-pantry/commit/52f6ef7a4a4544b972326e8b2cfe67c4f9c9d210))\n* **l10n:** Update translations from Transifex ([4c646a2](https://github.com/chenasraf/nextcloud-pantry/commit/4c646a2dd1e6ba2dc61a639c5b38846a2b5608b3))\n* **l10n:** Update translations from Transifex ([86a4fff](https://github.com/chenasraf/nextcloud-pantry/commit/86a4fff277e175ef1590c0873a67482fee6774ac))\n* **l10n:** Update translations from Transifex ([dfe6313](https://github.com/chenasraf/nextcloud-pantry/commit/dfe631309fb1a9d9e20b6a4257cab87a1e1c2cf1))"}},"signatureDigest":"sha512"},{"version":"0.26.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.26.0/pantry-v0.26.0.tar.gz","created":"2026-08-09T18:57:36.022522Z","licenses":["agpl"],"lastModified":"2026-08-09T18:57:36.088430Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"cHHuJTtehVSAsZMqPryeUKp4k4dSR4u8I7I+L+sOd/m5P9gdHFlNDnnO27j/ENEo5huOX95729TM22S48bCePo2FGgoOm4IwiUa0mDGA9mqAo00hP0UOljfDkNEAMBOX4QL364SWLo3eipI3HbOA1laLm1yvi3eOUy6nwvXXB7E4M7yQrfyWySscVyrelx5KfpNxgzBFpNVUGV7bxKM8/UzBYsEhQDY7/v4gp6xQ7xPLCd5P4tlvoKY8QZryEDIL6kK22UdFv5iXX7fBIpa290ndvYdSJvtKeI6X/uMUs8fVi6ta/QB0YLLT9OA+rNdReG2aWRxcnDITZj4CNrpT7yw8eoTuUxOgllsx8bRz8fk4DANPYCtxrYKSuSiQeWucSMPHsXpYqK+jlIHtXtczU+Sg9NEJzffRBNTDpv0x7IRHDgyX51RJ+CUsU/tSqtr/TsM/JdkuYZWqhCIaZQX0fUtEjfBVQcoQ214JONVMwjvkXfd/rOYjEBO7DJWXBp0N1adwBsvDyWWlgEK8mwcklvSI4wZbuwHydZz/7cHUohrvCkn9zvZhnwQhkwHtWV32m5YdasJCebgZsX55+FYNV6cDTFzF/h20ymI74G4y1drlnuHo+R+aLBt+WtH964Dl4Q4UIc2NfbYqhwi8ZjCBj8XAGCht2yEkH/Mu9S1q9qg=","translations":{"en":{"changelog":"### Features\n\n* **checklist:** allow collapsing done section ([10e6a72](https://github.com/chenasraf/nextcloud-pantry/commit/10e6a72156556b6925f53a0ff81541085f091f3c))\n* **shopping:** remove items from the current trip only ([d54212d](https://github.com/chenasraf/nextcloud-pantry/commit/d54212d95f2fcb09cd4daf71b511a70742373460))\n\n\n### Bug Fixes\n\n* **l10n:** Update translations from Transifex ([88b54e5](https://github.com/chenasraf/nextcloud-pantry/commit/88b54e5400fdc40a4ce41ba8d8184c46d3e49d66))\n* **l10n:** Update translations from Transifex ([5cae70b](https://github.com/chenasraf/nextcloud-pantry/commit/5cae70bd2723b4b09b8a937b2e1451544158824f))\n* **l10n:** Update translations from Transifex ([c1947a5](https://github.com/chenasraf/nextcloud-pantry/commit/c1947a5bb7387e8576d4909c84953bfad465ffbc))\n* **migration:** self-heal item columns left missing by schema drift ([#212](https://github.com/chenasraf/nextcloud-pantry/issues/212)) ([82f53d8](https://github.com/chenasraf/nextcloud-pantry/commit/82f53d8b599ee5c05792dd96d030fd7414776905))"}},"signatureDigest":"sha512"},{"version":"0.25.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chenasraf/nextcloud-pantry/releases/download/v0.25.0/pantry-v0.25.0.tar.gz","created":"2026-08-06T14:05:32.405155Z","licenses":["agpl"],"lastModified":"2026-08-06T14:05:32.463146Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"LF9qAXRZmdMIHqYS3u8tGEeMqYw6T2+oami7n2BtDyjAKsGkWEsYC62Fh63f9sAVSDOAoXofDP/FfTWPTIlXfTKzV5e6LZzgwzYJ6Ycfz5gRoq7915k4B6+Km0iJA38yK/GB2M2Yxy9pAYM/of3b+bD2Hv1+BjKkR3q6YmbHlSaJpFJxVUX0q+0EhLvWyC777q3T8wpiXAyk44dL9MCqqyJ8OsmukieZpeJ3JLBy/pa2dCb4XeF6iYXvR+cgBaYDzPjNWZVGE5WN67vIhTACEUVVjSme2Q/6BZTw8DQXWuhGs7yvNnJ4pfExVcZJKG3Y0ZSRTwRbZv4s3cnJhzDj/vlHhZitUEMJaPumEfFSikKMHf83SBI5vopV/TB7oLgPK16oHosd/dsM7UhXZtaXH3CiBKUT87+rxQ+X5L1uh7rsP6aRbdVpIm5xTn8/A/UzOqHLt7zz7wqUm5TJonXtGDOOc933pvY3AAZR78599drVo0PA3ayM8rpZ8i3RFpJj9mlULBz5emZbGXn3AY3tWPznSVMoVDso6L3cofHNipjrorcq/kIj362boCXoFcfXadoCktOz5uQcVVCJVt085nDTCt9X4BDHpUCOx4fUEYXbA3iAG/1i3xe2GJFAZ9DUlQL7Gp5B8QtfjnUdFHOQhRiPFB5NsirYmYrf18hHI+4=","translations":{"en":{"changelog":"### Features\n\n* **lists:** export and import from the All lists view ([f0f3b85](https://github.com/chenasraf/nextcloud-pantry/commit/f0f3b85d746f1c8a13f035d7a15dd752789ea955))\n* nextcloud 35 support ([1dd134a](https://github.com/chenasraf/nextcloud-pantry/commit/1dd134af6f52587d727ae014475d65f53ecaf191))\n* **recurrence:** per-house time of day for reopening recurring items ([699364c](https://github.com/chenasraf/nextcloud-pantry/commit/699364c2a1f3b8063d671c50fbf261952d9159da)), closes [#207](https://github.com/chenasraf/nextcloud-pantry/issues/207)\n* **shopping:** add Shopping Mode ([#204](https://github.com/chenasraf/nextcloud-pantry/issues/204)) ([aa67082](https://github.com/chenasraf/nextcloud-pantry/commit/aa6708283aa9439ab11921c89612038d168d9580))\n* **stores:** sort and group checklist by store with manual reorder ([#205](https://github.com/chenasraf/nextcloud-pantry/issues/205)) ([1b859c6](https://github.com/chenasraf/nextcloud-pantry/commit/1b859c6da650c66a3320af8f6d7f845f6a77c6d7))\n* **toolbar:** make some buttons always collapsed into popup menu ([9c5b384](https://github.com/chenasraf/nextcloud-pantry/commit/9c5b384e9864e23ab8b1ceb7f19d32cfc449b040))\n\n\n### Bug Fixes\n\n* **filters:** constrain NcSelect dropdown height so long lists scroll on mobile ([4603588](https://github.com/chenasraf/nextcloud-pantry/commit/46035883cf8091dc035bdad0a844ed60a87ae913)), closes [#174](https://github.com/chenasraf/nextcloud-pantry/issues/174)\n* **l10n:** Update translations from Transifex ([3385fa6](https://github.com/chenasraf/nextcloud-pantry/commit/3385fa6c2aa3c1bcbe6d717cebacc6ad7947f01b))\n* **l10n:** Update translations from Transifex ([b58ff85](https://github.com/chenasraf/nextcloud-pantry/commit/b58ff85bd7d4b165978a2a6ca918297bbdf9ca31))\n* **l10n:** Update translations from Transifex ([4d85b0f](https://github.com/chenasraf/nextcloud-pantry/commit/4d85b0f8e0f6c78739f0477f8e2379b7b43bc807))\n* **l10n:** Update translations from Transifex ([98d5bd5](https://github.com/chenasraf/nextcloud-pantry/commit/98d5bd56149679952972fe19979f286257f50eb7))\n* **l10n:** Update translations from Transifex ([a50a19f](https://github.com/chenasraf/nextcloud-pantry/commit/a50a19ff64a12d2f3e39484c177e0e35c4291823))\n* **l10n:** Update translations from Transifex ([9a9a4c2](https://github.com/chenasraf/nextcloud-pantry/commit/9a9a4c237b168a66d6728a0cc9683c76b74e45b1))"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZW5hc3JhZi9uZXh0Y2xvdWQtcGFudHJ5L3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMC4zMy4wLTAxLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZW5hc3JhZi9uZXh0Y2xvdWQtcGFudHJ5L3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMC4zMy4wLTAyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NoZW5hc3JhZi9uZXh0Y2xvdWQtcGFudHJ5L3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtMC4zMy4wLTAzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Pantry","summary":"Manage your household: shared checklists, photo boards, and notes.","description":"Pantry helps households stay organized in Nextcloud.\n\n- **Houses** group members and their shared data. A person can belong to multiple houses and switch between them freely.\n- **Checklists** support recurring items (e.g. milk every week) that automatically reappear when due. Share lists with the whole household so everyone knows what to pick up.\n- **Shopping mode** turns your lists into a store-by-store trip — pick the lists and the route, check items off as you walk, see which housemates are out shopping, and finish with a priced review that lands in your shopping history.\n- **Barcode scanning** prefills an item from a product's EAN or UPC. Scan with the camera or type the code in, and Pantry looks up the name, category and photo for you to review.\n- **Custom fields** attach your own information to checklist items — an expiry date, an aisle number, a size, a yes/no flag. Define a field once for the house or a single list; date fields can send a reminder before they come due.\n- **Photo boards** let you keep shared reference photos organized in folders — the right brand of dog food, a favorite recipe card, a product label, and so on.\n- **Notes wall** gives the household a lightweight shared space for reminders, pinned messages, and quick notes with customizable colors.\n- **Notifications** keep everyone in the loop when photos are uploaded or notes are added or edited.\n\nAll data is scoped to a house; members only see the houses they belong to.\n\nPantry also has companion apps for mobile, watch and desktop that let you manage your lists, photos and notes on the go and keep everything in sync with your Nextcloud instance.\n\n**Companion apps:** Android ([Google Play](https://play.google.com/store/apps/details?id=dev.casraf.pantry), [F-Droid](https://f-droid.org/en/packages/dev.casraf.pantry/)) | iOS/macOS ([App Store](https://apps.apple.com/us/app/pantry-for-nextcloud/id6762161619)) | Wear OS ([Google Play](https://play.google.com/store/apps/details?id=dev.casraf.pantry)) | [Windows](https://pantry.casraf.dev/docs/getting-started/apps#desktop) | [Linux](https://pantry.casraf.dev/docs/getting-started/apps#desktop)\n\n**Website:** [pantry.casraf.dev](https://pantry.casraf.dev) | **Documentation:** [pantry.casraf.dev/docs](https://pantry.casraf.dev/docs)"}},"isFeatured":false,"authors":[{"name":"Chen Asraf","mail":"contact@casraf.dev","homepage":"https://casraf.dev"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhMsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDA3MDgzMzIwWhcNMzYwNzEzMDgzMzIwWjARMQ8wDQYD\nVQQDDAZwYW50cnkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCoL15B\n4CeKzujpM+U0d/Kl/8cR9uJQEdwQhQFZN9p5yddxHDgO6yxztQv5XyB36axtiDW7\nIxiWTEChcknshCLMrTJLuBD2KRK+mUAPMM3NEcb3H9AgtVUr6GpuJFO1wnmqioC9\njqczDEfp0GWUwgUXwbEPbJCE5tpUh5koANk6jLyvqONcIDdZyv0MLpFmVbrb3Omf\nOnTZhRNRaOsy5+KmgrAwEbze+ojlymQhj7cGDeSV+5CWy1fO7UEwGggdueqWCMBx\n8a/AWTiySttjJUJEbnIdqcnDWCKfdZxN3YSZaGHR1N52h6OsD8RZN1cKZZo0aKgd\nE1AUNPQBahAkox31AtwU7HL4Vlnih0joKUsC8CjBfEE+Jg3sGMgVD6B+yvgnbTig\nbtXQBIm+axS9+gRFbThP4Y31g7AQEu/JNLTdOiGhTgqvKNcqn/JNMR9N/dWctUhz\n8gGzxCGUNHQmfaCBybK3ZP//qtF7F4UoLP62Z7GsdgG/addtiUeVWT+cK3LvPUo4\nw9UUnjygAqmr+uETAiwyL4p2hf1wVWXacFnSzOmAvyYHwoN5Dc1P0oNP9tTLg9QJ\nT/XVnZEGTK2JJh+e26G5MyqzbtVUxDi0pFVCYCopeXsIWws1NDESCfUo6V35heA3\nSrsN1u4xEHGcwsh9uBp+GrrYSTWgzgE2xjD3HwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQCcMOuNkIlp4T4ZxcGPTd6q+yhx5gBH4jrQ74/hEazVVqdwx82xTARZT+UH\nGGzSdv56aRPsHOWmH7MWcxKzf3gGBy6cmF3zkm2niZQJm9XaLvoifAOtGCo4QYHg\ne8YFd7r+7j/ENfTdrLqy4/DTz01TaNedWnsRMhqV7YKoe7x6xTI4PrLLD/YTWJQp\nB3WVfMdpIYn+s7J2FQ8aNO71Tib4M6WBdDjUmbwz326DRg1g+Bb4DJujjr+H1f7c\nHV3dosXjo/eTk9NALrkvVzgdiQG3M4XrhBIunu80OHmlF1txJIQUMieYsA4ttcMK\nftIWuE3owC/hJfc+1xuSyv61Y/1z\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"task_proc_util","categories":["ai","integration","tools"],"userDocs":"","adminDocs":"https://github.com/kyteinsky/task_proc_util#readme","developerDocs":"","issueTracker":"https://github.com/kyteinsky/task_proc_util/issues","website":"https://github.com/kyteinsky/task_proc_util","created":"2026-10-03T01:45:58.846127Z","lastModified":"2026-10-03T19:46:44.144543Z","releases":[{"version":"0.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/kyteinsky/task_proc_util/releases/download/v0.1.2/task_proc_util-v0.1.2.tar.gz","created":"2026-10-03T19:46:44.122798Z","licenses":["agpl"],"lastModified":"2026-10-03T19:46:44.176160Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"e++X28rB8GUOBOgAoSdfMXC4EIl+Xii9VB01ENRkvIwb/bpXEcjw68tx/n7o9CqB/M+X0cUz/DvE/m4pb9OYQVzQZT4S6Q/QClPPy6ZqLmsftFWHtTgKiw8VY+x4acinPmsuitk2eKjW9JlEYCVW0SLla4D7I33PJxT47cd8Eq5GG5mFrlxQ6aeoW0xS5yDU7ARMYGGtmkrjN2K+aZuCp6B+7CbmjVhTPxr3rgg93hv90o32Y9drDl2FaQZJCmIOpIQ2HACmyFdUrsxjZGevsxsJg6acFd5MNvF2zYGHIlhOeoR6hmI/RXSwBlt3gmqvXNruOf3DR/cVmHaVuoLuHpMSLybMYjp8SUF2Jz5FgeSnaKHAiYGcmZXcTrwEzEGogDTOxW5iu8sqiLunwpGbcntwANJ5fdYupmpL9juO75SFzmJJeaV4BjLCA7IiZlzD0GiXgVkfvH0J420UwsZN5/CNIrPDnXvo4lBHYN5nNa7KVwbENeA/E2s8hZHCRJseLfFcsch2Wzi/06alvpxZqz2p3pfjN6WTnr1eDFUKoqiMlqVn4erZ4Le4DZ+KmvE2wGwnPPvc7tnPM7NOQ4UTOT+6tG0Qx9Ai+j0xdmMhIlc1Zazx8m1g4TxQZe/HFp/jUSznvqgzKXQCaSqJ8CxysHapdvCYfz8yTwLsXxipAOs=","translations":{"en":{"changelog":"### Changed\n- update info.xml and readme instructions + add screenshot @kyteinsky\n\n### Fixed\n- ignore async providers for config reload interval ([#25](https://github.com/kyteinsky/task_proc_util/pull/25)) @kyteinsky"}},"signatureDigest":"sha512"},{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/kyteinsky/task_proc_util/releases/download/v0.1.1/task_proc_util-v0.1.1.tar.gz","created":"2026-10-03T06:11:11.927346Z","licenses":["agpl"],"lastModified":"2026-10-03T06:11:11.980035Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"Yqal8dIX2SUjzCm2rS9aWESf0xWvs/rEGZ61cQdUEROfvmkQ1GrQ9HK7qmoIR5ABAXYGjQ+RwRw8HFF2KkZ4+4zbkc30m1UNzoLDiMupctyQna8oo3I+E2kd5DVkN8Nm+XToOslsnvS3Wir/0o7uix9XDWljEF+Tnwd2b2PHlYOw0CuCf8Ic6gZsV8z3/vHhSW1gFclLBhYMKGHAyBv7nmeVG5l6b660Lr7rrLy3GYOhe070/udHAC3nZz8mS96Ki8DcQfl5EONj0OJt4LkbONF/p/Fw1gJDXddewCDQx6ncXZ+59OBifjy740wwRuWQMXlICHgYEoWUl23lvWl8AeMnm9t7t5mA80rYJG1z9RAIfI9vhsXbzFSTHJWAHDAjeqf31goS1ihfP+iDYw+7lteOYsxre6UW7uZqJW3vmWzGPo0LkXLn4qqShdRXKFua60naTzAT97N2b/abvKwqjPLoF9ZAggcooHNKLjzHsPfdlNApR2Xu/LT5Vb4n8SSuioS9we7oa0GAfOqT05LSOzvzIGg4USZjvTZ/NMXa4SiWtVH6li6LwW4M9BW/mD8G8xtRT+lI6HjE+wfelIAKayauFh9xybuTeZhD9gxWt+QTlOVbw/ez7I4OIWrTfSQg5YCxXpngOCmswPypsdE0EC2xdFwoBmQIFCwwUHRAXe0=","translations":{"en":{"changelog":"### Fixed\n- use -buildvcs=false for krankerl CI builds @kyteinsky"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t5dGVpbnNreS90YXNrX3Byb2NfdXRpbC9tYWluL2Fzc2V0cy9zY3JlZW5zaG90MS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Task Processing Utility","summary":"Auto-scales Task Processing workers based on the queue","description":"**Disclaimer: this project has been vibe coded.**\n\nThis application changes the number of Nextcloud Task Processing workers\nautomatically. It calculates the number of workers from the number of tasks in\nthe queue. The number of workers stays under a maximum value. The administrator\nsets this value.\n\nThe application gives workers to all the task types. Thus a large number of\ntasks of one type does not prevent the operation of the other types.\n\nThe Nextcloud administrator manual gives this method in \"Improve AI task pickup\nspeed\". This application uses the same method. But it calculates the number of\nworkers from the queue. It does not use a constant number of workers.\n\nA supervisor service does the work. The supervisor is one static binary,\nwritten in Go. It reads the task queue and its configuration directly from the\nNextcloud database. Then it starts workers with the command\n`occ taskprocessing-util:run`. Each worker operates on one task type only. Each\nworker stops after a time limit, and the supervisor starts a new one. Thus the\nworkers get the new configuration.\n\n## Setup\n\nThe application has two parts: this application, and a supervisor service that\nyou must start yourself. **The application does nothing until the service\noperates.**\n\n1. Enable the application: `occ app:enable task_proc_util`\n2. Write a systemd unit that starts\n   `apps/task_proc_util/bin/task_proc_util-supervisor` and gives it the path to\n   your `config.php`. The service must operate on the same computer as\n   Nextcloud. It must also operate as the user that owns `config.php`, usually\n   `www-data`, because `occ` does not operate as a different user. An\n   application password is not necessary. HTTP credentials are not necessary.\n   Set `TimeoutStopSec=3600`, so the workers can complete the current task\n   when the service stops.\n3. Start the service, then examine its log. If `occ` does not operate, the\n   supervisor shows the cause and stops immediately.\n4. Adjust the settings in **Administration → Artificial Intelligence**: the\n   main switch, the maximum number of workers, the poll interval, and the\n   config reload interval.\n\nThe README file gives the complete systemd unit, the requirements, and all the\nflags and environment variables:\nhttps://github.com/kyteinsky/task_proc_util#setup"}},"isFeatured":false,"authors":[{"name":"Anupam Kumar","mail":"kyteinsky@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhQ1MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTMwMDkzMjUxWhcNMzcwMTA1MDkzMjUxWjAZMRcwFQYD\nVQQDDA50YXNrX3Byb2NfdXRpbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAMFAyqM0iPunK9LgBPtP6qPdUJm14IoKHy3xPTkm4piwYyjmGawKJXV9dEa5\n5w+O8T1FFS3hKOsBmsCmjsvabAECITsvsFEIHUk4IJlGDgfjpnov+JdCmkj5icMz\n6b4Oe8NJaEwYO+r2hgxehQ1Gl7/GljfBT5cUci+P0u13yAUS1MaabGBJboKQjEkX\n6w+ZOOHD/gXp9KI5fBDkZhZPF21bvVcR5ZIUiW29K3ghXYAewFk2+drB2tjtYi82\n4Gy6sQDa64SouZdovrHhETwHhV3T1GMz5K6XF6KrVt2ZhevwXif0J/M+gxnvPbch\nqECteSzsXNu7mZ161NHfRZGNj+u+OheXwcVKZ2FoYsVTgpgE8mKsBLPxZ7Kl0CEd\nfbl/2xbUw1TQJTeCGUThBJI4dBhZzqng9dPCJoko02x6mzmhT70SkyQWCorCQkYJ\n8pZKSicOXgwe31P799JhLqoqC9z6pCm1n14pWlEbHjju+VRy4YXrzgQW3li+WKNX\nLc832EVh8kRTr3QJMtAe4B+tqZNSp+/GOkxP345acFmTF7rxwiuoRr/JqB7NBJEJ\nTmbjk3SmjQyKPjVrBe8uHEvH+XIjVNyXtpBPO4/fdQk5z3I4eWv+gmH0pqy49mjY\n9/Gb2Fdnnz2Zd/wsXv/5sUyzVQEddZlj6t4UQudKqROmFDoDAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAF0xFsoT1C5+jwvuWZOjC+31vM3vTNz7V4/q4QxrayktDPK0\n4L7wdK12BOjk0kp5RMOdLnoxKGWZMd6482gDW0zDLRYgj0YJ7834fUh4L5crKoWQ\nU4EmiJ6sGJWv9ThsbQ29HWGI1sbEDZq8yfvyPUKM75Dv5IxTwH3o3hwSmOLyo9aw\n8HMi8QTQs7dzrnEcADF1qQ2ZRHeVysDyc6eJEkidE76fnS3nyIi97QKZmdfG7NqR\nGqhY7fy52UDE/j9f/K9FKOVU6HOVnhA3KT4+UrxGO8suxcIkvsFCSALbM3btxIj2\n9NLYy+F0faUWJduxPWv8va8Ol3P2yMBFHOpfBUo=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"profile_fields","categories":["integration","organization","tools","workflow"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/LibreCodeCoop/profile_fields/","issueTracker":"https://github.com/LibreCodeCoop/profile_fields/issues","website":"https://librecode.coop","created":"2026-04-01T14:24:54.882017Z","lastModified":"2026-10-07T03:27:15.705918Z","releases":[{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/LibreCodeCoop/profile_fields/releases/download/nightly/profile_fields-nightly.tar.gz","created":"2026-10-07T03:27:15.716832Z","licenses":["agpl"],"lastModified":"2026-10-07T03:27:15.731067Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"eaDHMgI/hT4HDrod7fVew8dFsc/YqHCUIUudfzfm6rms2nrRbzU9PG5YNiVzPFYwxQHMDB93lP3t+p6ho1x79nQ+E4FGiNKzxESUYVinvOtAe08ufjKVZ6aqSx+SQFqTr1gCIAvhggdizZ4akw4LCbj3/bZcEkd0vTwxWkbdZ6z71VLy+1Ysva9X/Q1rVFd1Sv9CL2A7o1mz4TJaRlcaIEEXh43HvdH1NNwAZvYlvldKeg01jubQsTmtk2c963tKWuh3Ehq9S41ytlJN7EDgFiAujuldT0+S3XFaky7BIq5LEQlVMV0cNXU/YGevz70v89cUupgKkQiFzl+mCksOmkwHERkFRTIlCghiBgvdfYuNlY3oPtGvBCjfK+4nsl0nB0xdwzGrXkKVSbm8mkrm719f4tj4sm8giaMnfxqLDNRryEqIGDXwupZrYr3ugLh4t5zBvpHYRsOuGv7lGXao388PTuEiuaCLDJS2c/5DNa3COj+AhtWQxqxZ0c5LN6oMCoA5J2AJ13cBp21rhS2umbhUIiYFwol/C/knenv0QGezAUBL4w7k+r4WkV4VjcEmeL8C8FXQw7iJAECVnaeBgcekb96zryE6azWY5D9jhAZlMnUKEQSqrB0MVdBiVXuaLr7mlkHLiCWtSlAyeCwfLAUi2oMlT0muQNQGSi/dLfU=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlQ29kZUNvb3AvcHJvZmlsZV9maWVsZHMvbWFpbi9pbWcvc2NyZWVuc2hvdHMvYWRtaW4tY2F0YWxvZy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/LibreCodeCoop/profile_fields/main/img/screenshots/admin-catalog-thumb.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlQ29kZUNvb3AvcHJvZmlsZV9maWVsZHMvbWFpbi9pbWcvc2NyZWVuc2hvdHMvdXNlci1tYW5hZ2VtZW50LWRpYWxvZy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/LibreCodeCoop/profile_fields/main/img/screenshots/user-management-dialog-thumb.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlQ29kZUNvb3AvcHJvZmlsZV9maWVsZHMvbWFpbi9pbWcvc2NyZWVuc2hvdHMvcGVyc29uYWwtc2V0dGluZ3MucG5n","smallThumbnail":"https://raw.githubusercontent.com/LibreCodeCoop/profile_fields/main/img/screenshots/personal-settings-thumb.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0xpYnJlQ29kZUNvb3AvcHJvZmlsZV9maWVsZHMvbWFpbi9pbWcvc2NyZWVuc2hvdHMvd29ya2Zsb3ctbm90aWZ5LWFkbWlucy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/LibreCodeCoop/profile_fields/main/img/screenshots/workflow-notify-admins-thumb.png"}],"videos":[],"translations":{"en":{"name":"Profile fields","summary":"Extend Nextcloud user profiles with customizable fields, access control, and integration-friendly APIs","description":"Profile fields lets organizations extend Nextcloud user profiles with customizable fields, per-field access control, and integration-friendly APIs.\n\nCreate custom fields for support regions, product specialties, escalation aliases, customer segments, internal access levels, and any other organization-specific context that does not belong in the default profile.\n\nEach field is governed by edit and visibility rules so teams can combine self-service updates with admin-managed data, keeping sensitive operational context accurate without losing usability for employees, partners, and support teams.\n\n## Donation\n\nDeveloped with ❤️ by [LibreCode](https://librecode.coop). Ongoing maintenance, bug fixes, and long-term sustainability depend on community support.\n\n* [Sponsor LibreSign on GitHub (monthly recurring support is especially welcome): ![Donate using GitHub Sponsor](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/LibreSign)"}},"isFeatured":false,"authors":[{"name":"LibreCode","mail":"contact@librecode.coop","homepage":"https://librecode.coop"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhMcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzIzMDk1OTA4WhcNMzYwNjI4MDk1OTA4WjAZMRcwFQYD\nVQQDDA5wcm9maWxlX2ZpZWxkczCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBANBnD7jDFsb0phF/Obc+wFb1EvM97+uhoa0jLgMIYeHMXlnAZkva3v0FVliq\nzE8obTtf8d6bTXM+e6OYERYgMNt6zgvmqIFzkibychMG/ROBcTO9HxtykgYS2Zvl\n2L7HzRtUpVGiE9nHfgN3t0K97Hc6O6MNeb/F9eiLXcBfKcCpCRzD63MLzoHx3sTU\n+Gn+yDAyUjkKRRuCA3z0ftukWHoyYzspo4wwERVDG1ljSPQhm5J3rWS8jCi8Hy9W\nfEHXLZT/vIQu+yYqKyhQ9wtIZL58BVbtG16lu+EpMWQm1EpHxZB2fI+lZ30OEk8V\nAuE9RIFLCa5XvuFcZqex2dwmwxfpooISwke4lxT/AfZMoaRP9zHPznMlOu9Llpuj\ntMBsM9RgVGsRQt9qE4uG+XGLt0tb+6wo5IQ/4SdBAXu57jae87p4I8be+x1GWZ8l\nvDjZR6CVSyqxBhwGL50Hebb7WbCGi4YI4gNOPL5IE+KcjeGLou/rFThGvJyn1J7V\niWqqP1K3mZbqEDwpyt+vSbfIz5czcTeWF6nMoiG261cAFU+DQYNBA1nToH1OexQt\nZphAZIfE+iS2PVH917afM3Q3s3m8Kj0OYD3cGP1yemt/MfkASS81yDUxMCteCops\nbmh5wpZKdtyQDUEYz682rqZu1ycSHq69jYzUiFxgzI4daq7DAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBABes3RS58dhHdGwH9Zj9flbz2gh+9t/WUDHIvPrrhu3Mq8XZ\n/H/6x3Ir7/yQ1JXtSQD/3W2jnN+sAR2V8DKsIz8QKbTGRxMliOUDcqvK3fopV9CJ\nJ1dAoCcn7fO+MlGKtfUL9Pcs7aXK32i3dFEz9UdUbDQHw/XG8U13HRHDjNW2GQLa\nnc9ekZ4IpggGbv04HtfGLzLp2aelr0Dxb1tZITFaJe3wVlGWFb+sYdRlzaiOGGq2\nshp4GPxl9IOEQ+KG/612o5dhPbGuKTgyOyhY5wWINZzY1Qo4edmDqOLZa/nqRkKy\ncGJ9AYqVlGDHffauaT7dn0vpazfiMWc3aKxmmJk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"officeonline","categories":["integration","office"],"userDocs":"","adminDocs":"https://github.com/nextcloud/officeonline","developerDocs":"","issueTracker":"https://github.com/nextcloud/officeonline/issues","website":"","created":"2020-09-16T07:39:20.847863Z","lastModified":"2026-09-28T18:51:01.373005Z","releases":[{"version":"3.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/officeonline/releases/download/v3.3.0/officeonline-v3.3.0.tar.gz","created":"2026-09-28T18:51:01.366644Z","licenses":["agpl"],"lastModified":"2026-09-28T18:51:01.405458Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"Bftt018CZ30Qqzw/1n4HYhXhqx140xxJMfSSIJhudata9Vm9suksYmr6jjnkTlt5x/wbGZKqCxRrALBQxxBOF1+4wCfZ8b/Go7e3jdNV2y19lR27OYjlYAG4YXElFJiUuM048fw3gONKJ5b7SQ7Jr+jfaRjFj1iI4d11GOrfW8e37hqBnkRzyChqOgp2vCmWJpm+QzfMu+fHv1DWiSzsf4XQHWebXwSDIwk1H1hK9vmCCIqWce/Zr95inbxYV7z+3qgkEe3YMAlalC1tYiGkTdoHkDvcEtdwgwrVcbyAoH+BF+nqIOSuVgGIdbqdemheGHs5drmb85vpYaPRdxB3yeU2Bkc7sOZ3O+A2gGKSrgcS9sBm4YStWetgvm+/mgLu7oULT2ffR00Ym9quAoVzcN7ewywWDTUwqYl2vBQ4fnUnxpYio5Ae9f6LwkyBIke12QD9UtTF/LGni9+e+HM2D5FdEp5dZgWxuJTnmHfaTaUzwmjPuiNNMo7h+bYN9IkGg6E1XBPhISWziUZNvf/G+ltdALFRhaCRzr77IZqENxahMeRvwTbxDZf+FX0IfByKC9Cw5I0rHuluV8q2QJBGH0l0R5DqDaftsdUGEZGnMcOh+K1U2DOdwJ/PrIev4qS09XTh0wYXkUFMuLCqKQrdbUcIAnTy+0QcLtWjEZrsZh0=","translations":{"en":{"changelog":"### Fixed\n\n- fix: logger typo @elzody [#784](https://github.com/nextcloud/officeonline/pull/784)\n- fix: drop window underscore global @elzody [#783](https://github.com/nextcloud/officeonline/pull/783)\n\n### Other\n\n- chore(ci): sync workflows with org templates @elzody [#780](https://github.com/nextcloud/officeonline/pull/780)\n- chore(workflows): update phpunit-oci-template @elzody [#778](https://github.com/nextcloud/officeonline/pull/778)\n- chore(commands): Adapt commands to new method signature @CarlSchwan [#766](https://github.com/nextcloud/officeonline/pull/766)\n- feat(deps): Add Nextcloud 35 support @nickvergessen [#757](https://github.com/nextcloud/officeonline/pull/757)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9vZmZpY2VvbmxpbmUvcmF3L21haW4vc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Office Online integration","summary":"Edit office documents directly in your browser.","description":"This application can connect to an on-premise/self-hosted Microsoft Office Online Server which has added Nextcloud as a WOPI host.\n\n\t**Note: The cloud-based Office 365 is not supported.**\n\n\tMicrosoft Official Documentation: [Deploying Office Online Server](https://docs.microsoft.com/en-us/officeonlineserver/deploy-office-online-server)"}},"isFeatured":false,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBzCCAu8CAhFQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwOTE2MDczMTM0WhcNMzAxMjIzMDczMTM0WjAXMRUwEwYD\r\nVQQDDAxvZmZpY2VvbmxpbmUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\r\nAQDIXZgjziy6DFErwLMNf59dHAgtI+W3wq9NNcXoWokhLTUXzbb3+ktwRK+DDmZW\r\n3vuUIuL5wNbUGXZotdo7CPQzgXAbbg2OIisPR77hlM+7X5sJuf0dySlqXkWbYvNe\r\nWh91ZwxHVKxdB1dQuC+SkZgk4EsMi+NbW4YMKWgpIGrAQ4se8fyx2q4Sa7GLUiL/\r\ngbnIeTIb61aPhmfGBmWCh6rNQy0RhNvI657f5EeXGXC1IhpPfZqMha0lf7XkoHGj\r\ninDbPTCHGkba1Kjxy9ry9iq9bYpzZlOGt71SELmTbPZzwOTRXYGIsWIzphC5d22i\r\n/ue1Uy6vjg/0/6SCP2hBu4wL6VObBtnVhw8vXdht6WKmsYmzx7Al9v/X0O4jbdYq\r\nZloHbrff3mgEHEWPiMe3/eoXKg6IPLF482Nf4S9+9ElEXoL2AxfZuez100bnuZek\r\niq4H9HWZGY2yurPERfVoIptTpM9KUDffpocdJVIZBX1a3vqMYJL8HOQNLPo7vPqS\r\nghqul9VaLSwYaYTnGCCOa7aRZe0Iw+SUHFJw1wlu6X5x59NJZQSRyPh3AiWTABu/\r\nty8oWMgt5/unXHS2trxAwTe08DlXal0E6K2StRDtnPqAp7IQqU4NsE04EELsSq45\r\nZv0bffgtviPiLA1tn/7kbFv+XuIbj4h285ZmlNWViGmyVwIDAQABMA0GCSqGSIb3\r\nDQEBCwUAA4IBAQBH9CdE1iLmCZRcaXMsY70fMI+zBY5meRVyRnkem9drDxqvieaP\r\n5sFjxvIlfk7DeOJk6b9Q8E7PHaGG50kN7qWmrG2XjLW9u66zcmP0NEbDVYtGfS5v\r\nNBfVWT0v+Q3B7L0oyyyv55DlfpToFUYOdKifqV6pP9pQCDVI733qWzf/DkY3RVDE\r\nYYoH9zffieuk1gdzajc1RCRmrjaiOcyOy6fqcn/RBFlYKffzxFIAWZ89L/Zr+tH5\r\nZ/h8UmYVY34rKWpHFT4b1B6yXWMkiAg9jCHvf3qQrGXQ8Ai15EXPvzHXxiXBPrwV\r\nmxGZAVJTthm7rZSDQeFyKGmQyin+sMroC7ut\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"social","categories":["social"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/social/issues","website":"https://github.com/nextcloud/social","created":"2018-12-07T10:22:28.086449Z","lastModified":"2026-09-17T13:07:22.974479Z","releases":[{"version":"0.24.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud/social/releases/download/v0.24.1/social-0.24.1.tar.gz","created":"2026-09-17T13:07:22.948486Z","licenses":["agpl"],"lastModified":"2026-09-17T13:07:23.013695Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=36","signature":"hfdUf6F9nQMaAClHPnGhsqQWR8aQFOzPCgWSb99G2PG5EwaI3eS29zeNtHbRUsgF\n5aX94ChuVoqKyU5OUE0IMwjP4av7VU6eQ3Qi4pe1Ba9sWfbu8+aOBFNBYJ9mI+Tg\nQQlPAYimFNqsh3MhNoaODQ4lPfMlTh7KaQpTXLNYk5vdapsprifeQJVm4qrDtoam\nQY3JZZAYN9tf9ko9KmMGIEj6xsVvUD9Ovy9qrQJvAE6ON5XhDM0l7FfGi0x9O5Zr\nuaBrvdJKxF6RyM8OAhGT8/ek1mB6epYb2N9TFO/uFrxxfLaw6Vd0914VhzzRhtRm\nsRcBKex0lR5mreKCXbfJOeFRUYJOOhDRpTEp3jjusmR9aEriIjXjI69zhgTEpQh1\nHVOfrAisou/WCPOfJ8QoPRupfxP7IJhLEF9odbe3BlDxBRexrzFaMcYAD36cI5He\nuh/iguArfQndNMIlsjue2B5o/9OTE+tam1WP72RI1z5EAHBtkKz/L1F2Vp5uG3Hn\nOPCVwTrk1uIHUrz07KrUaInhFR3/JBfR6V3jfUYUm/Tl70mL7RkbKopl+uRKQTEG\ncnKlmFHIqMXljyWu4OBNru04DiURf62ZxqZJ8QG8BS2vM+U2TMFxCiJS8CcT29B0\nnQHjTBUb/SRv3/0d2ZTqmNTNZWayVBalZ2J/Q106qfw=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.23.0","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud/social/releases/download/v0.23.0/social-0.23.0.tar.gz","created":"2026-09-16T13:43:23.794533Z","licenses":["agpl"],"lastModified":"2026-09-16T13:43:23.865708Z","isNightly":false,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=36","signature":"vT0s37qj6gT6lpyYMJRezApk37l4w/L+ti4pKL/bYHGWx2ECH+0ve4XiJo7jxtA2\nKzkInBF+t+emarRAiUqK7XKAMUXlyZtB11yqNelvdi+yO8b3wrPkMfCUrzDZgvSn\njzDsIefBHUY/ZDyCAIua4loZUCFwEf2YafemwUskI3PSmYkK9+Gsg5/2ktkljPnD\n/d7uwhBCbi/U1kNUQD7GtLXt6+iNOkoaa72GfzjHjezaBF2aCISOyczCAv/IRAab\ncEL6a8XkN9mt8Zg0Z45zZj/hsARgnkh4MIGHFBzID9VrHIkJNR7uaEFKJokuRPz6\nV4f1BxZvmJFu2SYdMYewyG++UMvXMqZf7re6mPyHM8NV7e8eRf1JqC3v8nOK5H0I\nUT4XAqb+qVdJUScjSKhu4ZkypKIYMVpaqzuDn+ehlN0Q7aGw26oNZA6ULG9XelS3\ngcW4mL6VTqG+rnA5844jbDFsZR7qX0pa0Xf+BS3CWX4FGZgn14g0IgNaoZ7RYZe6\navTUOucFWgQ0ieMykIhq8wQ9TpeKwbbKvUBPUMf9ljhVJqD5McXphyA7cDfJc09M\nSLuQUOnmhW/S+PxKF6934Z7kFq9o0vz3yaR//BqANK7xgGL07oV3JQmVAZCutTpH\nXnuMxo3em3jzYnDVgZ1YcP4CKYzEZTdvSF68/Xh7+as=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvaG9tZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvcGhvdG9zLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvY29tcG9zZXIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvZGlzY292ZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvdGhyZWFkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9zb2NpYWwvbWFzdGVyL2ltZy9yZWFkbWUvYWRtaW4ucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Social","summary":"Nextcloud becomes part of the federated social networks","description":"Nextcloud Social connects your Nextcloud account to the Fediverse through the ActivityPub standard.\n\nWhat it does:\n- 🧭 Timelines: home, local, global (federated), direct messages, liked posts, notifications, hashtags\n- ✍️ Posts: write posts and replies with a visibility setting, mentions, hashtags, content warnings and media attachments\n- ✏️ Edit and delete your own posts; edits are federated as ActivityPub Update activities\n- 👍 🔁 💬 Like, boost and reply\n- 👥 Follow and unfollow local and remote accounts; incoming follows are accepted automatically unless the account is locked\n- 🔎 Find accounts and hashtags via WebFinger and search\n- 🌐 Federation: signed delivery of ActivityPub activities, with a delivery queue processed by cron\n- 📊 Dashboard tiles for mentions, direct messages, your timeline, bookmarks, follow requests and trending hashtags, plus open reports and federation health for administrators\n- 🔒 Photos have their Exif metadata — including the coordinates a phone writes into them — removed before they are stored or federated\n- 🎬 A Videos timeline, including the videos from PeerTube channels anyone here follows: streamed from the instance that holds them rather than copied here, and proxied so no viewer's address reaches a server they never chose\n- 📡 Videos posted here federate as ActivityPub Video objects filed under a channel, which is what PeerTube needs before it will take one at all, with a poster frame, byte-range seeking and a 2 GB ceiling of their own\n- ▶️ A video opens on a watch page: its title, the channel with a Subscribe button, its chapters as links that seek, and where you stopped offered back as continue watching. Every channel and account has an RSS feed with an enclosure per video\n- 🪜 An administrator can have each stored video written at a ladder of smaller sizes as HLS, so a player picks what the connection carries; and can set a per-account video quota, see who is holding the disk, choose what happens to media marked sensitive, and hold every post with a video for a moderator\n- 📥 A channel can be brought over from PeerTube's own export, or a single video by its address\n- 🎨 Filters in the composer and a profile that draws as a grid\n- 🗂️ Collections, stories and places\n- 📱 Pixelfed's own routes — the config its app reads on launch, discover, the story carousel, collections, mutuals, reports, direct-message threads, push (honestly off) and its admin screens — so its app finds what it looks for once the API is at the domain root\n- 🖼️ Stories, collections and places in the web app: a row of faces above your feed with a player and a way to post one; albums as the fourth tab of a profile, each a page of its posts; a pin in the composer that says where a picture was taken, and a page for every place — with nothing ever sent to a map service\n- 🧭 A Discover page: who to follow, with starter packs you can follow in one go\n- 📤 Share to Social from the Files app: pick pictures or videos there and the composer opens with them attached\n- 👥 Lists, and every Nextcloud group you are in as a list of its own — kept in step with the group automatically; you make, rename, delete and fill your own in Settings\n- ⚙️ Account settings: the name you publish under, whether people ask before they follow you, whether other servers may suggest you and index your public posts, and the audience every new post starts with\n- 🔗 The profile editor says which of your fields are verified links, and gives you the line to paste on your own site to earn the tick\n- 👋 A short introduction on the first visit: your address, who to follow, and a way to bring the follows you already have\n- 📱 A layout for phones: the post takes the width of the screen, the face inside the card, the composer's toolbar wrapping\n- 🔗 Links that land where they should: a post or profile link opens inside the app when you are signed in, a search can be reloaded or sent to somebody, and an address that names nobody says so instead of erroring\n- 🩺 For administrators: four setup checks in Administration → Overview — WebFinger, the address ids are built from, the delivery job and the outbound queue — and a Server card for the instance settings that used to need occ\n- 🔗 A link to a post or a profile here unfurls into a card in Talk, Text and Deck\n- 🕘 Follows, mentions, boosts and favourites show in the Activity app too, and in its digest mail for those who turn that on\n- 🗓️ A composer that says what a post is: the language it is written in, a clock to publish it later (with the waiting posts listed in Settings), and a crosshair that says where the subject of a picture is\n- 😀 Emoji reactions on a post, federated as EmojiReact, with the faces behind each one\n- 💬 Quote posts, carrying the original author's permission on the wire\n- 😀 Custom emoji of this instance's own, added with occ social:emoji and rendered on servers that have never seen them\n- 🎞️ A GIF picker in the composer, backed by the instance's own library rather than a third party\n- 📈 Your own statistics: the last 30 days beside the 30 before them — reach, interactions, likes and boosts, each with the percentage it moved by — then every post of the window one by one, what works, when to post and where your followers are. A statistics page for the instance too, and profile highlights showing what somebody posts about\n- 🕰️ On this day, and a weekly recap of what you missed\n- 📣 Announcements: what the administrators of this instance are telling everybody, at the top of the timeline until it is read, dismissed once for every device, with an emoji to say something back\n- 📡 Relays: subscribe to one and a new server's federated timeline stops being empty — a relay rebroadcasts the public posts of every server on it and carries this server's public posts out to all of them. Public posts only, and a relayed post arrives as the post it is rather than as a boost by the relay\n- 💬 Quote controls: who may quote each of your posts (anybody, your followers, nobody), who already has, and a button that detaches one and tells their server\n- 🔑 Authorized apps: every app holding a key to your account, with what it may do and when it was last used, and a button that signs one out — the page to open after losing a phone\n- 🚪 Delete your Social account from Settings and keep your Nextcloud one: the posts, the follows, and a Delete to every server that knew you\n- 🔕 Filtered notifications: the senders your notification policy is holding, one row each, with Show these and Dismiss — and a way to hide a whole server rather than its accounts one at a time\n- 📜 Edit history: the \"Edited\" line under a post opens every version of it\n- 🧳 Migration in both directions: the blocks, mutes and lists another network exported, read here; and your follows, followers, blocks, mutes and lists written back out one CSV at a time, the way Mastodon writes them\n- 📅 Your year, as a report — Mastodon's #Wrapstodon: twelve months of what you posted and who arrived, the hashtags you used, the three posts that travelled furthest\n- 🛡️ For moderators: what may trend (a hashtag, a link or a post kept out of Explore), the instance's custom emoji and its rules, all from the administration page rather than from occ\n\nYou can pin your own posts to the top of your profile, bookmark any post, and see which hashtags the instance is using most. This is a partial implementation of ActivityPub and of the Mastodon client API. Blocking, muting and reporting (with a moderation panel in the administration settings) are supported, as are locked accounts with approvable follow requests. Polls are fully supported: create your own, and view and vote on federated ones. Profiles carry an avatar, a banner image and up to four profile metadata fields, edited in the profile editor; a field naming a web page is marked as verified once that page links back with rel=\"me\". Posts that link somewhere get a link preview card. Image (JPEG, PNG, GIF, WebP, AVIF, and HEIC from an iPhone where the server can read it), video (MP4, WebM, QuickTime) and audio attachments are supported, up to ten per post, each with alt text and a focal point. Quote posts carry the original author's permission on the wire, and the author decides who may quote each post and can take one back afterwards. Third-party Mastodon clients cannot reach the API yet, because it is served under the app's own path rather than at the domain root; there is no streaming API and no push subscriptions. A post can be translated where this Nextcloud has a translation provider."}},"isFeatured":false,"authors":[{"name":"Benedikt Schächner","mail":"benedikt.schaechner@web.de","homepage":"https://benedikt.xn--schchner-2za.de"}],"ratingRecent":0.5,"ratingOverall":0.4230769230769231,"ratingNumRecent":0,"ratingNumOverall":13,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhQYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE2MTI1MTMzWhcNMzYxMjIyMTI1MTMzWjARMQ8wDQYD\nVQQDDAZzb2NpYWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDU4A7k\nWKORyr25n56rDYbYRkBcSxnrUPqlgvFmdQ0WZ6LywWVjgfeB+RD1m4x3Qg/+kU11\nSp+OrItF564cssvSmBRYgbZjDFTOMa2pEMveYubz6R6PMOfxNiC8+m5tnrOQSPvX\nchW5wMhf0G7wAsOtaql60DlZyBsgdOxGCKZjsllMWC4Uks7BvXjLnofajyf/khGY\nI/0Zj+KMbPF+w6W6RrUt32iThMnAOtMV3yJmW+ADgkbQSeCz5r1j0NvbW7JM5wA4\nsRFHMhtVQVq/flAoH1S1c+nY+7ePFjDT91M7j1WskP0suNEiBvsH2HNxBFE5oU69\nqIY0IG0bOXyphE+dsQ1KD3XBSc8f0AQWKdz/wTi0o6DIfvluM+jBtNWgnTbXw/0R\n4aUDW5a0oO1umkwrXX1qV1Ik3L3ooT9/PBCLAf8Fo3NrpaxUwA3YIWZqD4ZjjSI2\nx+8QFYTbeyMkz2uWuu3fWyb4wxr2H/VvXLW1JZdqGM0Xf7IDPcJQMmW3umKDsD3z\niRfHTFJt5gHmL6WAsYBshO4ctFzIODN2+FxkpbJBIaCE2IcrJ/0D2BCkDMc2Fpww\nCK0Dq1pEPhc04DU73S4P37UZ+uTDTKgj8TDEj40yAP3kbvEQn59xISdc0TAR7W7v\nXMu9yBJU1jlght23s7IgzgPATVEivUcIvbcGEQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQAL7XDcvjNXKFaAIfQzewB3fZZF2tzTJ2W91/0CsTYRWXBn5f/7fIpTHzgw\nII2rtnqaLfSARW7ljdywj1CdgZlloJkpvOPai3q022VDdw3tSPU6A78lbZCm70gG\nDFZvcPMHc7WeX3YH2af3ymKblIjQCj1a5WcCO5HHWbQSoet92zriEWgPeXNzHagg\n/RYfGTIOTdzBr5PHHPy216ZFI71tzUvJjA3ftnfHKeCaQYk4KopZRxiUY52j3kKT\nxOaT9iLWyalhmK72ab+7h7nXOSX6WqMSuu+LTQsvn1E7lOdlvIuRQHMiNlhJl8h0\nMxuTJ7wXToIMir02K95t/lPJMDLd\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sendent","categories":["integration","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://sendent.com/resources/support","website":"https://www.sendent.com","created":"2020-05-27T21:04:06.937264Z","lastModified":"2026-10-15T08:08:39.104152Z","releases":[{"version":"4.6.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Sendent-B-V/Sendent-App-for-Nextcloud/releases/download/Release-4.6.3/sendent.tar.gz","created":"2026-10-15T08:08:39.093123Z","licenses":["agpl"],"lastModified":"2026-10-15T08:08:39.173450Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"cisELHJHaBXWg/zrUb3tJjTTIgbKuK3tWtk8n8BY7sQYAfJHgdqYDo8Rrs1HlR1WgHrNJvyrLyFjH5MRciI3yl4lwL+wXlsTyMfZyE3FczL4k90GmPA5Qu8X3gF/OU3PEOnzVPlsYTPedbcgjMukTxxo8L3D5lpMqkGvqdCZzrhiDl61th2nTwUtsb2qXptwoBMe2Ljj0vxezRqEPNVVnchaH5F/tI5Haj9eiJEZCzg1oGgjDpCINKjtgxMgAOTQfBvYwPom7VsB8i0r9IL+84m/Mp7Ld5T8Wyl93jmpS5wsDsAVtZEpNrAmql3+1ghSbLdn1wDucRx6RxiqO+0GhQ==","translations":{"en":{"changelog":"### Fix\n- License status requests no longer contact the license server on every call. The license is revalidated at most once every 4 hours, so add-in panes that request the license status in parallel no longer each wait on the license server.\n- Requests to the license server time out after 10 seconds instead of 30, so a slow or unreachable license server delays requests less."}},"signatureDigest":"sha512"},{"version":"4.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Sendent-B-V/Sendent-App-for-Nextcloud/releases/download/Release-4.6.2/sendent.tar.gz","created":"2026-10-08T21:27:45.156236Z","licenses":["agpl"],"lastModified":"2026-10-08T21:27:45.200808Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"eKTGCFKaU+IMycZnUlE3btem/GIYGNefqn9hg8hd4cwx2jpftXCcwViykJtWPr1FpDgf+ecRTqnzGL4Z+eABBo3W83YrkEF3lOYqhqfGl64opmdx2b0h+uqe+sKfnshU2MhWLYbuBrOSvMjtvZWKvH+Kg40WNY8xFTAN9T5PMnOzSa2QMOjmquDremEnDiLpZ0lpyQmc49j0873987WFWJsD4bYOTHr8FJpXI82BY0tqoM7pciMbu+QKsZVNNuvclNBMzNnbPCwpwHvuzj+9IbJiT9uI8ogsXFVSKfJTk+pAwUKYqAtaVDMlqgjmpfOHLRwpaXd4N6nGVxL+rVqgoA==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"4.6.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Sendent-B-V/Sendent-App-for-Nextcloud/releases/download/Release-4.6.1/sendent.tar.gz","created":"2026-10-08T06:53:50.398685Z","licenses":["agpl"],"lastModified":"2026-10-08T06:53:50.446140Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"hSQFvGfiArFfwk35c3RTDB8dexHMDOw6dyL86++vv7/wht/0GoH9IxUR3YF9KooIPTv49cWK61yInqnaAJY62QKbN2oYxjzyHNqEWvSCpW5EagAC5jhkinpbInJXjFpAqK/EfEse1nnwWJvyQFlf1pAIxdXlslxKn2SPJL1lrzUUQ/n6btb2wrFH+qKQJykpgyUG8QpxJRa/tKhkzdzSUFlggQIhWi8aMWQwID6sDocQyuvgkdnUx8ODJxH4mUbD4ylE7mmsZ4Q0Ky/schux8DUy6aN05jJIoJevWfqut4TfMyep+ER43EnbQdPloiDoHdkZG4uCnPALfS+QzDEf8w==","translations":{"en":{"changelog":"### Fix\n- Dependency check no longer lists OCM as required. Nextcloud 33+ no longer exposes it in capabilities and the Sendent app never used it, so it falsely showed as missing."}},"signatureDigest":"sha512"},{"version":"4.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Sendent-B-V/Sendent-App-for-Nextcloud/releases/download/Release-4.6.0/sendent.tar.gz","created":"2026-10-06T11:45:47.961235Z","licenses":["agpl"],"lastModified":"2026-10-06T11:45:48.007152Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"lUym5F8qbUeb3EJG0TiMCRtXqDcr5HBAzzuDF95/LmN6dmjqHIExQUz2fpQ1p2RR05Mo8gVtWrGi2hOmU/VPmN9ggTZFlYVFUeGmA7B47GLGM//8EeNShSCcmEOkICzqouZGS11PP+R7OXHVPQPLh+2J0CrzXDJiODivPmHNyqgPkt6rmxofzD4gNzOS02DMTb4B7jhpf2193lo3glEJUjwouN+WBfzS0nOaK3YYnLwIiMtyhy+tRmIX9PPqVi6CqoGk0w9qAhai6wCpn5kzy23xp72MOPHDobtnKSX4zlOwAKGpF3UgApMsOGvWM8PxPWWcTZWS1QvJRmY0HfZaiw==","translations":{"en":{"changelog":"### Feature\n- Status endpoint reports whether the Nextcloud Guests app is enabled and its version (GuestsAppEnabled, GuestsAppVersion), so the add-ins can tell whether guest accounts can work on this server.\n- Guest Accounts settings show a warning when the Guests app is not enabled. Guests is listed under recommended dependencies.\n- Guest Accounts settings are also available in the Teams settings tab.\n- Presence filter domains setting (Outlook, General, under Presence Synchronization): optional allowlist of email domains the Outlook add-in looks up on Nextcloud for IM presence. Empty means no filtering.\n### Fix\n- Building from source inside a Nextcloud installation no longer fails on the server's browserslist configuration."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZXJ2ZXJhcHAvMS4wLjAvc2VuZGVudGJhbm5lci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZXJ2ZXJhcHAvMS4wLjAvc2hhcmVmaWxlc3VwbG9hZGluZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZXJ2ZXJhcHAvMS4wLjAvc2hhcmVmaWxlc2ZpbGVzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZXJ2ZXJhcHAvMS4wLjAvcHVibGljc2hhcmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5zZW5kZW50LmNvbS9zZXJ2ZXJhcHAvMS4wLjAvcHVibGljc2hhcmVkYXRlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Sendent","summary":"Sendent allows you to securely exchange files and emails","description":"Sendent now securely exchanges files and emails, integrating with both Microsoft Outlook and Microsoft Teams. This enhanced capability allows users to seamlessly conduct their work, not only within their preferred email environment but also within the collaborative framework of Microsoft Teams. Whether sharing privacy-sensitive documents, content, or handling attachments that exceed standard email size constraints, Sendent ensures a streamlined and secure communication experience. All files are directed to your Nextcloud instance, empowering you to control and manage access permissions effectively."}},"isFeatured":false,"authors":[{"name":"Sendent B.V.","mail":"support@sendent.com","homepage":"https://www.sendent.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDNzCCAh8CAhEWMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDU0MzMwWhcNMzAwODA0MDU0MzMwWjBHMQswCQYD\nVQQGEwJOTDEQMA4GA1UEAwwHc2VuZGVudDEmMCQGCSqGSIb3DQEJARYXbC52YW5k\nZWJyb2VrQHNlbmRlbnQubmwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB\nAQDZMd5iM0DcTTIT8gui46aM3+kjjhTBLEww69dfhT5IUTj09jadXPsvcPeuhbCz\nY7Vg6CYzLUB09PvdnibicyZba9YHUS/sFRv7R/iHqeIl34cEvyN4IQzZ/Ay/RPfp\n0X14fqmQ81tFHTcLjTxX1AFxgtjY2KhK2hUD/Brqgj1rBrULG/+aJqLO9fBuhRMX\n/MRJHR09juilDW5pr4s/h2MbjooxyxKKBne1A65fP2qge0eyIm+h10mHPPMv/iT3\nrqjCWlV3PltdyOEa+8qftpi6pAjQdzkN5hJUw62FzRvqIWof4ro5b5rgGy2TOO+q\nUzpbQxJOQsu6rPzXoFa/JEW5AgMBAAEwDQYJKoZIhvcNAQELBQADggEBABfE+aj7\nLyZqZzcwrKMozXw5TrcqRmlKt9+IZGBkYMbhKnKnJsbllougd1lUI1jNfh8iPeTa\nd/sWPHYyvBfT95AwK0Z3yoBCCbVt+YoSr2IIlEUAiys6/carhlp7vbeCcBOM/vd3\nONnQZGtG8FQlfS3/Qeurfjbv1hvvmWDl3xONQD96Jrq/DwBTDMHA0lLZwHRm+ob4\nHPzf0cIU8HdIZ5IHGNK+YNoAt6aYmUfPE+IIgONsiw9rsZ43aIqhqJM0dRcC1Uxb\nuTsr/k1h6LDnkYgmJuaH5XNwr8MjEJr8zErZ96AopNjU+uKE+qY7OMNTaA3xtRF/\n3Lev6inFqRU+JlI=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nextpod","categories":["integration","multimedia"],"userDocs":"","adminDocs":"https://github.com/pbek/nextcloud-nextpod","developerDocs":"","issueTracker":"https://github.com/pbek/nextcloud-nextpod/issues","website":"https://github.com/pbek/nextcloud-nextpod","created":"2023-02-28T07:05:12.676239Z","lastModified":"2026-10-17T11:56:52.461677Z","releases":[{"version":"0.7.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pbek/nextcloud-nextpod/releases/download/v0.7.13/nextpod-0.7.13.tar.gz","created":"2026-10-17T11:56:52.452695Z","licenses":["agpl"],"lastModified":"2026-10-17T11:56:52.503398Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=29 <=35","signature":"sNRRVYjUTRWQPqRxbFraVIHK+4cgikuB/kyz4J2QOTLHcKrMV0Y5pLr+7qo7yj+DlOVUqgQ70mREJrtzIHRItyckQL7MOlmiTwnI/oix9al2+IlJVkzrMVqz6Eb8krR8BAAPOftqADvRWF9SyPncM5qsuXFzpq3PlgYRT0Egn39xrwHylBoQCuN1/5selMcYnpE+tXO7w+HEUJbZYzmbmDWPqSxLUR6fYHonbstQjwNOwWEKGaur6vdD+TStRt3T3krkKaWKi/4qU/BNfXbAFStOUkvkJ/JUOnJTG5G/ZLE6OZTb9HqxZumhjpqtQ5mJ0xdvmYk70eYz+Aaxw4gHno4TZvOlBI3iy8VpgeSue/DR0olIjzkVYYMnmIzK2m0rUjlKkYmFhxXqKuee0Ll5ndoKXXC2YX94mlhlcfWa3MotL35ak/XxUhaRcBfXw2Zn5gUble5fkGpGIhAkdvxnZY6dK0EU6ONjyz+cwoP1N08HBwrLV1sh9uhZJ6bD1a9/qklduPUNaYaUa9C3VnlA/ovLw0U5yENVrYFLu9qK3c4TjPoncDkJfDfWlpC6eDv7HnsFbxuPtT2KoiF9ILUMLLQnErt6ncJfdWrQUKYvD9YJre5z7B2PbFjpdiH8yyQpwRTXL4NrzlDE3rUj1aFdOgCZBDPN5ryPZbl5LSnCuAQ=","translations":{"en":{"changelog":"- Updated JavaScript and PHP dependencies\n- Automated Nextcloud app signing and GitHub/App Store publication, with release setup documentation"}},"signatureDigest":"sha512"},{"version":"0.7.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=7.4.0","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pbek/nextcloud-nextpod/releases/download/v0.7.12/nextpod-nc.tar.gz","created":"2026-08-20T17:38:12.646373Z","licenses":["agpl"],"lastModified":"2026-08-20T17:38:12.704663Z","isNightly":false,"rawPhpVersionSpec":">=7.4","rawPlatformVersionSpec":">=29 <=35","signature":"eWZYXNh7voOxqEEgtPnUiVqqpsli6vqdrhqcFOx8gxKxCIXLKqVOZuEZ/O/JlAEd\ncLqBfMgmYPLzik3iA99IuAJD9siwb1qMMY1hvv13LYL2AcKNiQGiBtknLz0g6COP\nnWWnWnjonyt3MJNA0le0t6S2dXP318MSeKU6QeWp3TEQ1aKcMrQhcWQzOxrQyoMs\nIsjI1ez94l7gpXltuGGnr8/Aj2fHYE7b4Cj0Xnf/JslQh41YNe91eqtiaYbj8ycm\nXTTYF7Y9xztHvrfjwcmLdcf/hPpJqq3/0vE6wHMVU74rEqB8+lJf+c7nrk6y6gw1\nGj5qcB9WuBRgNrBmpfyv06Xayi5wNtvotfOX+6DTCmng5mdyXvMViA2nCO0JAacq\nVuQ79idZUJhZ6Xeuu4hUaKLI4rmcqTzFq/RPcKvbC2bFrnhkH+JUgsMBAALCQSj+\nZIn7C6OVmUoMfTCfL9T0tgMzOtUbPs1N5maW+sb+IUwrA22uXua6r8qgL9hAxrpO\nzI+WzfyLrtsdKfi0mGS3gcAG+f+I1fj+qW1yoqlitdctzoSDvXo2wzXKEDQUNlmE\nEtoF3T1lbdgeXR+SFD2iKW1B8JVf//rIT2Bc0tUy9MhHusDoVPfVmKRXTfurqGIE\nx1k1rJM9l44kMA5TzBtKytK8qTxAmU8//s9ug195GyI=","translations":{"en":{"changelog":"- Localized the user interface and added German, French, Spanish, Simplified Chinese, Russian, and Italian translations\n  (for [#8](https://github.com/pbek/nextcloud-nextpod/issues/8))\n- Enabled and tested the app for Nextcloud 35 (for [#25](https://github.com/pbek/nextcloud-nextpod/issues/25))\n- Updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BiZWsvbmV4dGNsb3VkLW5leHRwb2QvbWFpbi9pbWcvc2NyZWVuc2hvdHMvZXBpc29kZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BiZWsvbmV4dGNsb3VkLW5leHRwb2QvbWFpbi9pbWcvc2NyZWVuc2hvdHMvZXBpc29kZS1kZXNjcmlwdGlvbi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BiZWsvbmV4dGNsb3VkLW5leHRwb2QvbWFpbi9pbWcvc2NyZWVuc2hvdHMvcG9kY2FzdHMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NextPod","summary":"Visualization of podcast subscriptions and episode downloads from GPodderSync","description":"This Nextcloud app lets you visualize your podcast subscriptions and episode downloads from\n[GPodderSync](https://apps.nextcloud.com/apps/gpoddersync), which acts as a basic gpodder.net\napi to sync podcast consumer apps (podcatchers) like AntennaPod.\n\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!"}},"isFeatured":false,"authors":[{"name":"Patrizio Bekerle","mail":"patrizio@bekerle.com","homepage":"https://www.bekerle.com/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhIFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwMjI3MjMwNDA0WhcNMzMwNjA0MjMwNDA0WjASMRAwDgYD\nVQQDDAduZXh0cG9kMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvPZy\ntVjxxqP6kPjZQcQZJCO/FZPA0D6TeqqmwWdj1WYDasnTGrty3lvNSc/jm4bmeWBe\ngFvNIEPGe8bR89ZQKYT//7yUmOW0k4l+RLORBxG8bCSnIHsUnUB/yoT11XFOcI6h\nF4PYxOqj02LBz9FXDDncAOFLzpBycaQ55AM5Ot0hcYUOpia+wmerY08Vud85Ebll\nRMdnan2bbdTjFJ0GKEarjaiFAddMdIYLmGDc0s4o1BcFkWCGS3p7pgfH2tfcOK15\nAceOHLoBuIXLgsQj/dIMQpPS7bvMyv0mPGEJs+TDeso+KNcSmqLusugZKJJg57/f\nqeOntvEh6xTRuOLFBA0muLhNmlxEGm6G4ZNfgmSAdsvNMujUXPyqEQswxR4q6tJv\nEuccsplj/cKe+5To5gWcctWhBxH13zaBikFu5C45OS91+d2O7KK03VFjZc+vf/Og\njfzSUACARv6UjOcQMaQOc957epzlf9LpKFXQBx3vczcNsLE0r7Q60FEKZD4F495B\nFZgqwV6ECU0d9jYnFjsB50NAEUBUhZggx7GU0+iCtA6Ulk2pOPYwLbNm33wxeUHp\nwHEVzR/j4wEof0NoGkIBELLbJSWW/K8RBLYvxGi2KPWhldsEv016KPeq9e2JYvHA\n4gmg9NFoaZiYgrMgnpLy5y7SFY9QfDwBk7coJqECAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAUnwWymQIyD8BrVA/ETN1PM9JFivALJ/kqYZFvTqMdYu9ZFfPw4GnN8MK\nWt3cmhjeOOwEgQHftZwrgrcb+BTJJdGS8mZpAsM03IQODuTRnXbfBufysHaiGG/H\nGkFNlco+gdGPp1x9yMVvo1y+hxNmDB+6iGhLWf4XM18VcyI0C8/2fYDSyD+ovwEE\n34gsi+Gw7TJJTxL+cP/0Il0ZCub1i/fRdUvss8ZzOyzoje6mGxOsqVQLZX7TgxSW\n/+eDlbl3+3IC+MOyk3AAGxpZt3H7d25XwAzTlUDHKMaba599uw8TWDDRpDM9slWR\n9+S5cqLSYaIoa28R1rjCUPTWxmQvuQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"domus","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/Rello/domus/issues","website":"","created":"2026-04-17T20:05:57.680393Z","lastModified":"2026-10-20T21:22:43.298528Z","releases":[{"version":"1.3.0-beta.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.3.0-beta.4/domus.tar.gz","created":"2026-10-20T21:22:43.292922Z","licenses":["agpl"],"lastModified":"2026-10-20T21:22:43.311414Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"nKY4NCd7dW6uXycoysze0pUA8S0QXKmV844ptsXGf5F+6WsM3amk7C3GzfX+U/SOepMB5j4MmmXJhwUREuOZp5J9qr9YAsH3yx+lhq690QY99Bkgk704qxYBKHny5tylxxHVzeIGv+TSKxbTRJy5QN9Y4f4N/zTkL/UjEORK5mBPPVF+LGnyim6b7dB9xB3RcEIgIAK1rphKjR1cRynW5q6obHrJJYlbSDCJxH4lXprBWfdy8NjAwnAYk1zkHDB6CQ0h9J5WlO9W2P6TO0ld4qv9iMp0OuDExOpUlYS1lb3Cfe+AJvQa/apVW3Wv++Qhqwalku/BhfSnmNqdmtaPhToawaG81WYFPVGSfqhUch+M3jz0gjxZ9254Iv169JuKHmAZK+tlzoX64JXaldJVOD/f7QyUnfhkWvAQHsb9SLSKW/RYCIxQoZTQjeRF3YtE4yjwop6t4+dJKRVEPjvJGUmEAV38Mcfpzc3IRC0+QFo4H3EJo4sSskL3PgAEaqlroo7hc/Ybz2bhdhwJeW6nTqupmuRTe1ikQfIAAI5N7+SaQ/eVjDRD0yn3URNcxlh/C8Hwk0r6Fz7hSvCFo0EF6MGV2KpbWpxw1Gm7as2rAaZrRu9KDNS3U6Cv8zZwtcp5pBf9YHas0tcKyQY8H++gstnMz3Z8IH/oF1HvR7kjDnc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0-beta.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.3.0-beta.3/domus.tar.gz","created":"2026-10-19T21:47:09.928770Z","licenses":["agpl"],"lastModified":"2026-10-19T21:47:09.946114Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"XnLoGVW5CI7fMlogG6/BSZqxrvVk+Il+YsuHUjuPHxgc2rerHMd9Ci+x+6fuOZtJR3c10sJj1EYxeBFskW/k6UrD6WAzzf/3dVhtfZUO4YJa7gYGQc5DH6BlczDIUXpUaQJWFfi8iUqUFk7Wq1QvWDhxeJs01hZ9HdStyQ9jvTa95Pm3Kpdrfygj5mX2NpoLGzAC55VrazaTQrqirfUmQjYqeNRVfvlDSfnFy8k6EVCSmjgRkwkqHoRgbXj6/pdx6vEHzeGOZ4o5t+Pc+pnv9fn7DZhZRuwlQuZNOgcHyLjN3Ka9sBtQrkS47Zx8DBqjHMCL9aPSDB/zMOw+SKrDqCKrMrH30bnNkDuy3HuHY1KAeZNfcKNxe9uCXvcDDcjyRUtpcPB/ZiJ9DFumdVcjrdYT8CJMsKt/fCsG4YeeErEx/2HG+bismTwGMmsggqwnXY4He8KivtWyJLo0Tmt4dvGvTtfvyg9pXM5oJ9anVoJvZvK4oQUbjU+DmKAvTvcL1suzJyUqiQm+lymryuJeZCO8UQ6/jIgqkVQY7HjyMq/J+MM3ccCINJReUZl3rjEDmZ6a/ipOBLw94BnG6o3W2ERFuv6kCEuSzjPGPz8BsTEQVmR9E5Id3QsWnKv+/sfk55FxHG7LN2DAWOc5EfQLpM6sjp7djtlRBjgPNI5131U=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.3.0-beta.2/domus.tar.gz","created":"2026-10-19T18:03:43.487586Z","licenses":["agpl"],"lastModified":"2026-10-19T18:03:43.508226Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"CMvK4Q6rmooImKto0DIRXMmXs3Hc9dGDogBmWQA64CxUnIYzeYzjksLH0Hksa5jWBQPfkfB852gx/a8lDZhtuVK0iv9etQ+5vXDR0V1sdeh0IKlRtjQYBGWwpaKYFDsEXJNhFTeDO3iMTvOjQi/M9ShP638xVgdO8Ba40wmp1SO6+NgjVEELKckpSDUOYj1zIffM+jIbzUoE19kW7KKGEFepdzeaDL5nFjs0G6h5c++dxCj8GZqc8/Rp21gDVHV083Hu038UwteUeRr/P2WWgm99Rw3dxCI2GnOkUpPzhQ5W7joshrHDXH7D+Ddxyg8hEq/ISirFJQ1tmm3OfXC7OtZSze8lm9qDhdY9yAfzldsdDRzumeBvjw5O4dmaFr6ascZYjbh5t2K9ejoXEQNWCa7qrstUDLidvglX4mjSDjFm46MlBcM1GPV2XcaywXuTTnuLzSGd3dfJEN4mxw3tUlaBlKYHuljs1o1UcOPMwXzeL0fIIMhMHV5ts5ScYQSJkKfDWZefhMYKtNvuW16HN8CMAEqnrKn50/7LP6jgH1+1ITj5O5EC6wNWD7mpN8gP7n3mbsaEw8WiaYPA3z07ONWYlsQXrFcv2gjQPiznqf1siHqWQxadM5QC6qsZ2JxJXrnWrQ15YwGZFK64eIAFG1AGUyz3GxUr0pDYL9pwdQA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0-beta.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.3.0-beta.1/domus.tar.gz","created":"2026-10-19T12:36:36.535654Z","licenses":["agpl"],"lastModified":"2026-10-19T12:36:36.554757Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"UKhRxWAuy2cmmCwNJNHMuW9CwXokD63ib3tB6uQX2fRlTqmtn2bbVHUMW2K4H/psFWGqlrvEeI8dy2RrzJPzDRUmyozVbtd1O0xNyBBhBibbJFNYkGh7PqFkR0fnTkw+psKw92iHGVmQGyep0DgjriHww6S2AMhQ9I1cZY9/RhlxSqweOiDHKykMkL3jMGNYT9y03wLveSJF6Tidx8IHOD8H2j9FeDer2PKIjZXFV9A64Jq6+f2k/RE7jS/4Qykbo9d0lQb9oLMmjJgwfuhUyjO1nOMZHRihlF3pu3RtUdcU4yVrMeSweaTQeboAtoDjm7Br1HyH+uKGJ9YCzGorAS/2z5tlI1qcMqsO82oy6TQ+GS1UlNCAKUYMWeuX2SBcNNn+wdD4AQnuLeQ4Cutns5pT6nENzOnSFjNvEE1ZH65XD01HkfyR8NL1Tvoz2MevhE4JLfV1pi+y390Hk3xNf/WKDFNmJZ2Gysk7I1VuZmwxw5ZqIhTDW5u1n+a3PgsIty1ZrXdFtbkUtxiLYFlGZfqbYEilzDMO4tKrrN0Y0AMo6aFXV7liVe8mRcXzuhWFy3tLm3sMPq1J+CiH7BdN7BIQsZ95Gh7ne/GiaXLaVWF6N7vUxDsgcNFO4dP/NInOlyLb2UvTkhGPZCKAqCHmVd7i+KlXL0IDTGZn4HVbcfc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.2.0/domus.tar.gz","created":"2026-10-18T09:53:50.447190Z","licenses":["agpl"],"lastModified":"2026-10-18T09:53:50.511312Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"tWfHMSf6/1iSO3sfXOKcT4t9M4SXZl6U+GCoORsVQdxsL6fm+hcwnTZEe8A7Kpwxb+Ab0OHWwFl+WbukCXOh4uVaFeopCt1Wg/GseDszmDNGP3BUSxTtnsamGNi64tJsm5RhIJb3ZJgLdCVsRdeOTll1lgdu3MkOzNvCwWSX4X82lcV8X0G9xb2Bscp91fUQKXdI5tI00O3r8cKWe4BPuwgdZoiBRmjPHe3vDgP+FZayh5wE13QRtyRsYuiMA3WmipqgvzfKMogcVAv/Kv5Gl68LTkK5TdX6/nXKnA7bX2fB1ZG0OzUnoPomjLM5mt+b1QsSp3Uqnjt+4hM2KCiSs3ZVqY8QusFwXG4B0Xmki9uB35dhWBlAx/S9p5Cko+8+ea02wXnBUGvxpa5MktydPa5XhPcsk4TUUT2w5Rq0Sy+WpZ5lWVJ+cd5Az/9X8U+QzHfn60QStxE+jK2uF7nHyWLAqdKD7D5oc6HWDu0GKb2t+VlSeZFIhBASvKHGvzP2Ok3yEuK+FtM/fS3K2edvvAzaIvC90wjarZsPfjMhMpaF7aafZzTL6CBej2sxC3mzIpSXxUKag75RaiyEbUGTX1MKSkifrAc8f6tvKOFpYCTpuTqQQseMnqgOr3tAyfwICHJTCJ/rPQY77NaPk07zg7l5SOu+wc4H3ovWic1akd4=","translations":{"en":{"changelog":"### Added\n- Create rules that remind you when rent is due for review, listed in Settings with the same table and action icons as task templates.\n- Set reminders for tasks and process steps.\n- Check which Nextcloud apps are available for team management.\n- Give renters access through a linked Nextcloud account or a guest account.\n- Let renters view their tenancy details and documents and request contact corrections.\n- Preview what renters can see from Settings → Management Team.\n- Link existing unit documents to a tenancy without uploading them again.\n\n### Changed\n- Use direct page URLs without fragments and keep data endpoints under /api/.\n- Show the unit address instead of repeating the tenant in tenancy headers.\n- Use the shared tenancy table with base rent in the renter overview and remove the redundant header and refresh button.\n- Make renter access easier to manage from contact details.\n- Move the Personal/Team selector to the app header.\n- Show base rent and rent per square meter in tenancy lists and details.\n- Make property, unit, tenancy, and contact pages more consistent.\n\n### Fixed\n- Fix creating task templates with new identifiers, saving them in Personal mode, and adding steps with a visible plus button in the template editor.\n- Show calculated rent per square meter in renter tenancy details.\n- Use the same document panel in renter and management tenancy views, keeping renter download links.\n- Keep large numbers readable in dashboard tiles.\n- Fix image display and document downloads.\n- Include property tax in utility settlements.\n- Improve German translations and dialog wording.\n- Allow renter access to be set up again after a linked account is deleted.\n- Calculate rent correctly for tenancies that start or end partway through a month.\n- Match distribution reports to booked amounts and rounding.\n- Exclude future tenancies from current occupants and monthly rent totals.\n- Reject invalid dates, amounts, and financial periods.\n- Prevent outdated page content from appearing after navigation.\n- Warn before discarding unsaved property or unit pictures."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.1.0/domus.tar.gz","created":"2026-09-29T13:50:52.424118Z","licenses":["agpl"],"lastModified":"2026-09-29T13:50:52.475347Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"crLq+o8NVx0pVhNZ9eaaB3x6CQtYxYwdPxkmWHy6mJvy5z+6oDX+MFjs49en0rbE/4P0dEuAgdeFtkWI7IlxAoSgTjgIsI0z6GKC1bibliRcLQCCUqoHCQiWz9GYt4QCGN9bLJT5WeNtn5MBh+fpPzmsyrdQdWiTSjbw4Z54hexZwYOE355IabkrlrwQCYpq2mjftePBcCcgh2q/7EcVW9FDG1kzArB0cSbDraS1dFLcpTK92Wy1UIBnQr0KfLNxp1JqQaw6b6iwv2xAsfiJn5Oli30weSFQGjMgppPEZEseDRSYifOIF5sOygoAUDxlTG8K06PHEY+THieotHXazF3XF7wjBJZQHlAI4R1Im53hZAvFQG/b6lsDIgHEw5t/PaNb6H0Ab6VWTOEJzTSVjQ7oc6SaM34NkmGL/u9gEpW7bOp9FaClodwlxOew8eY6BvzfnuK/qUX8yHquM7Nw9oih4EO7EA/zhMWzEEOfPGEKmmvX57hmszngQT4KO1rgU7AXX9JOtXnSqrVETtLL9pa8j6yUw9SlwasGUk2xrYKlFpzyCKYeFEBdCmzoNABox5NLbbC+epu3X6MV7aqXZxnRSVTZu5vD8cpm6yj/S49ndusbizLilngxIXcgKGIEdQNmbfYpAFjSuaoS5YzhRkRyuM1P7AxIyNN9d3PvAiY=","translations":{"en":{"changelog":"### Added\n- Search contacts by name, contact details, address, and notes, with a combinable type filter.\n- Complete eligible process steps early or cancel an open process, with clear handling of skipped work.\n\n### Changed\n- Refresh the dashboard, unit and tenancy views with clearer navigation, actions, financial context, and mobile layouts.\n- Make task and process creation and progress easier to follow, including step previews, due dates, and completion actions.\n- Expand booking search and filters, and improve analytics with annual breakdowns, trend presets, and account selection.\n- Simplify document access and forms, and clarify contact controls and linked contacts.\n- Refresh German translations, welcome screenshots, and the README and app description.\n\n### Fixed\n- Preserve unsaved form input, booking filters, and the selected unit finance year during navigation and editing.\n- Restore activity links, process templates, and permissions in unit exports and imports.\n- Correct task urgency displays, contact filtering, document layout, and task template loading.\n- Improve table and form accessibility, including keyboard access and linked dashboard tiles."}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v1.0.2/domus.tar.gz","created":"2026-09-23T17:51:59.178178Z","licenses":["agpl"],"lastModified":"2026-09-23T17:51:59.271668Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"jROZbTLQnBe4yjMA3u1YaSfUNx7J5BM3xH7OrELvy3N4dBzegBpmgw9ohjArQtnDQbJQqiP5kcqd5U+gN9pR9ZUkU2L84KZKr0asNT616cqvPtY8xpeenIuffwUirigCO2pIygIqxCJxcmGUAxk2xKogzMKTeKfLIkHKUIcK0ot+pgq47XaQmHW0lNW2+XBBWfdQuiHYAcuTC+KXgOn+zm3PXpiu8nxy7s6rH0zopGdPnxNeItZ3+bC9EGsxuhTRy+MWDSdoNXb1PXmbJKm+l9J6sh6Hl3xVjoOxZ5MBK7Z8HmbKW0tXDc//IWjtRnTSaypeBfiq5DrvkkFFSCrS8JyDwUSx/K7fyYpeC26T4YeKfNVpsCHW/XWa9U33ze+zi8265+83O2PVs6ipRGh4P3uwGYdRlWAGj4F/iGlBc6V2yCs/NTuMR1AFylH4+A7pPjYGKM94Al7fNVJxDOdjSpkpMuGqrIfXda3VvhxvPCOYxv21CKM6uigPEL4I2fPUmH5g0gXs35AVrfsYFgNeYCjfR8LoIO+sHvQ4UkwU/kWz3jAE5ZLUep2SHu0gR076J9mrvZ5rDE5wu9Xdvn3HhRHtK5Uf99QmsU5Ee+VHtSpgOx/oSUX4U7rkI7AFf7gmvoQqnIwCKH17qVxbRkkkPHTB5zCQFp0TUcku4alf+Dw=","translations":{"en":{"changelog":"### Fixed\n- Prorate rent and service-charge totals by calendar days for partial months.\n- Exclude future tenancies and unrelated bookings from landlord dashboard totals; keep empty unit scopes empty.\n- Batch tenancy partner and unit lookups in groups of up to 500 IDs.\n- Include linked document files in user migration archives and remap imported links to new file IDs. Files are restored into a separate Domus import folder. Older archives containing document links without file contents must be exported again."}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/1.0.1/domus.tar.gz","created":"2026-05-10T19:48:44.433838Z","licenses":["agpl"],"lastModified":"2026-05-10T19:48:44.522271Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"ftdmZWqHZtVQKlqL6rQvNLoOvblulYJOi0lIcs+BqWhpyDKYG7/rZzqLhCG+iWcoHexOXjCQwuLyyI52PvHrtimxCXbPK1gfIkwhjPOvyWNHVRMaxEdBPrk3beITZbPe71Y3MOW1+hyTSVD9s/LS/h0DbVUa4KcsV0cR3jSAizG1QyJ9LZjCjpS4WlUovIujWjGexxUr4u1n4hwNfkqtut0PPE2KUZCq6EWND4ew4nuDlq6ptpNNpU4BzIg9FCKLLHGC8KdP0mg5oPqOfwP/9PjcE5CzdFwrNa/bMkplSRTTO4ATjKR3OKXYG2FppgjL62l3pZB6ELbzlCwBVvZTavN4znAO7a1G3zX6BoyFseK0SrHUYULmqCVx4pLleI8gOqs30apB0hcQ5mDriEQ0x2X1lNOKOyufK13GiDnL9vuiwPdE8cNtQ3SpAZlLrtx7Bxw/uSnQR8m3zTmEVUjP7f2E5sVNWB2QJgom8PYb+tjUbAEEpbG5fmJ0Ap4aU9O1QSvlPckrw77vJeKRnNyhLoSPyIwEmwyVsLjTyCyHya7W+4C/NX0jJ/1Dj5hqPeWkR6fwePnmzGzJuUk5UkJMXnTk0vl/8cB/HctnjayHqNo5jcT2n2rXq+MK1Z5yYG2AFJVa5NfwtI7lT+Or7fCjDuLHqOfv0yOwCSIepBiOjUI=","translations":{"en":{"changelog":"### Fixed\n- Translation issues\n- Document upload"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/1.0.0/domus.tar.gz","created":"2026-04-19T19:46:36.442626Z","licenses":["agpl"],"lastModified":"2026-04-19T19:46:36.497163Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"NUMiLLjKwEqn79fyQRJE0ujy1QSya7AQ6NK+LW+9INGXcks3976d6pqouzcomJxpTbFFe787OsahUX2Twf5MUmqL/CzRwCR7es2xkxBR3HeXzkcknh45mywCVTri2/73R2XoT2c1VHPfDNCxWhg+bYFU1NBqsEPpb+8UFexFYfNdMVY8K9e3G1a30VdJOLK5U2DPfJTWeSYpKrBcQXjNC4t2xfN/kis3w8pqyIQReQy7nYOFh/q8/rCN6FseoKqIzJcNxFEUyLYuGqWVmmOYrvLOvrr0Z3CDX0pxuyjnxlknfneyhFGr2L6FCK5pU4NrPSyyky6LlTPQ33QmOR1Gio/8mkNlN7qWwAC5lepd+hcc5a3piLcx+2cVX01/RkM7qrkYtcns624iJwVnx2+8qFCsAE4VtbfVmCBPQaveJLNS4GG2ALZaRo7GAt7dLy2UAW3hy0RbNKKg0w7NzCzuWzvLmKXhWpJ/CTT+JxnKqbJDA/VULuAqSyrqNTx1XSDhxw7M3IbhkTjJRt6PmcSWJ20vUlXlEG4X7x2H0izgS2ES5nISGtjJAPRLKZ+H/6vzbx1JJP9KepKzSZUHq2kI8Scrx9FCsBmvQysZ6u3XV6eBBuowFAGWCRY3799XAIsAFDBuMyxzWhzz8z1b9BeKd261+dWrx7IgbKpo+KJ258Q=","translations":{"en":{"changelog":"### Added\n- Initial version of DomusNC"}},"signatureDigest":"sha512"},{"version":"0.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/Rello/domus/releases/download/v.0.0.2/domus.tar.gz","created":"2026-04-19T10:37:06.406568Z","licenses":["agpl"],"lastModified":"2026-04-19T10:37:06.422331Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=99","signature":"KUDO8wd2Cj9MPxXYov8n5xakaqO4+Lx8nhZvPMRjahLwfyMMX50ae9jwiIcTTflSIP2IBLFIL99UwMCZkzAohfX6ypwNxN+ZlfNCocptlnY4aIMzs458Dhb67+SZ76bOEDvM5CvsNZ8tBHSxFvQ7Ad/A5yqR6VylvKDUJcq/o8paseceItk8WLVjiW9a/1in2RhfYnUhM8aW2jD4OO0ZA9ImcDAOPvRRahMmlt9e9xmCRs8XV3nnpia1ueBIhJXXFab+AvOV6wXtnLAP3OArLxMDEShLHGX11yz/BTdm0U5YnLjuK0pMGCozwzhRBXldJjSebJmGpyV3yASAsIgIPDm7ELxD/a0dGBd+wcHIGKCfgWPhYAAcj4g6Xu40o5L0z/gqSZvSQL0ndPEvqC+9WLTDke8qscj7pjOkmlJxTv1Ar8TuvuoGPF+1Y18ijwwK7ctt2+SU2q17KBbuuGDnw6XFdEf52vW8Vacy5qpnd68rvjlZaaSFBMNkC9hbi47m8GoWyQV+bbWQkoGKr6A+3eedGsi/2vBi7XiZMt5X3KiQTPvik9xyvfTiCc6guNTHnHNe7n0kd1E3tSnIdFjZDFcBgWoNzaYOLDQJW2MO7GCIeZ48UxI3QKrkTvVMEBDqC7LSbvpYNWjK8eyVwiRL0HhpG9x8B8vPX1qXBeOMcLY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2RvbXVzL21hc3Rlci9zY3JlZW5zaG90cy9sb2dvLnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2RvbXVzL21hc3Rlci9zY3JlZW5zaG90cy91bml0LnBuZwogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2RvbXVzL21hc3Rlci9zY3JlZW5zaG90cy9kYXNoYm9hcmQucG5nCiAgICA=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbGxvL2RvbXVzL21hc3Rlci9zY3JlZW5zaG90cy9yZXZlbnVlLnBuZwogICAg","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Domus","summary":"Alles rund um Ihre Vermietung im Blick","description":"Domus bündelt die Verwaltung Ihrer Mietobjekte in Nextcloud: von Objekten und Einheiten über Mietverhältnisse und Kontakte bis zu Buchungen, Dokumenten und Aufgaben.\n\nOb einzelne Wohnung oder mehrere Objekte: Sie finden die zugehörigen Informationen an einem Ort und behalten anstehende Arbeiten im Blick.\n\n## Warum Sie es nutzen\n- Verknüpfen Sie Einheiten, Mietverhältnisse, Kontakte, Buchungen und Dokumente.\n- Vergleichen Sie vereinbarte Mieten mit erfassten Buchungen und sehen Sie offene Aufgaben.\n- Finden Sie Dokumente und Notizen im Zusammenhang mit dem jeweiligen Objekt wieder.\n- Nutzen Sie Dashboard und Auswertungen für den Überblick über Ihre Vermietungen.\n\nEntwickelt für Vermieter und kleine Hausverwaltungen, die einen klaren Überblick im Alltag wollen und ihre Daten trotzdem privat in Nextcloud behalten möchten.\n\n## Was Sie damit tun können\n- Für jedes Objekt oder jede Einheit eine klare Übersicht führen.\n- Mietverhältnisse, Kontakte und Mietzeiträume im Blick behalten.\n- Einnahmen und Ausgaben als Buchungen erfassen und Dokumente zuordnen.\n- Einzelne Aufgaben und mehrstufige Prozesse verfolgen.\n- Buchungen nach Jahr, Einheit und Konto auswerten."}},"isFeatured":false,"authors":[{"name":"Marcel Scherello","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEADCCAugCAhL7MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjI0MTkzMDE2WhcNMzYwNjAxMTkzMDE2WjAQMQ4wDAYD\nVQQDDAVkb211czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMTIRYsl\nnAC98GqHkyVB4lQFHrTomZnH4OlW82pzyQ12wOTRPmwvKvlAFgZL+7iWGUvRpnT9\nH4URVqALToJEV+M+VSlv16icjEdvC2ha2T0gRsplGB3LVu9FVRz/m/y9kTLlB6GH\nQrru0nwZnjXehBN4pD5itSph5NOj+HThaGSyv8265MfRJE5IiaGZEr6arPh7eZbf\nKnatq5gouTrt8iUaQTkOzfNTuzP5RNu6rnLSstq4zqbAhzLVqPF+uxl1ItSMHfRQ\nrhyDCxspOCl9JemYpvQPrwEpozrLw5Ztf76rZv38Vw+LCNzpGshoYimzppYFEk4y\nFjp5HfC3gbUAzpUS+0frtjkCCjS1H7a3dG2ctp6C/BF+QirpVHSsCLh627VSjRth\n99xNpmTh2YgmN+zttfGt/KaLAwoCScbHH1e8M1j1OGf1Nbo90bWEH9EREVPYIEZi\njGV/fQ8ogXnCoMuXoUqdfgYojG5ikR8A50vBNuSxpvfuf1cmrsQVnqDhPEAo9Yvt\nyjIYXu7prdNyTA24OiGe65BF17d2g2lgqCtU4vEANR1EXQ7HJfzMzpxL21hAI6Hb\njY9DCITM4m5VyJDCfz0Gq1kETqaG3/iigzzGDjAvvfF+LBdINpEjDkRxVmXvbGo8\nHk5jsCTYc7hUcz9pkqQqXPWzYRCrg9tGwhHhAgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBADOQpppINKyp1bihtziPrF0KFF8lB3QHc4i1v/qPBg0spKrJFg+sI+lth2Vm\nuJpI9yvJYDqVgGD6UjZtbRKUKH8KB5zOE4Zux2zD3prUPGENMtR4gRtuINY/Yf0t\n2xmQYczfe8k5d+uZ44BNFpIMokZHfVg/7IgDmvv4LNVJyKPvpz+453GpFWnaqeZg\n+rf0gLI6A0VyfNNZr8QWYjDiBk+zJyfOf2hLbk0h2h/yY7VYI8X6Fg9eXf7bSADQ\nfMPY2CNLC8dbOAp0LsyE3fC5Ur7Vdtn7sHhTEfFDes+ZJtvMWNQXbyceGTKYtVkv\n6lGq9WqRGm6qgxn/vuXYcwexGu4=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deliver","categories":["multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/joshuabke/nextcloud-deliver/issues","website":"","created":"2026-10-05T18:02:34.554078Z","lastModified":"2026-10-21T23:40:05.036005Z","releases":[{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/joshuabke/nextcloud-deliver/releases/download/v0.9.0/deliver-0.9.0.tar.gz","created":"2026-10-21T23:40:05.016134Z","licenses":["agpl"],"lastModified":"2026-10-21T23:40:05.084676Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"hPXeD5TRF1BQd1f2vNabxGc1NcwQtw6nGC0jQe0jx/wzzoi4iE3FqyLJWmue/9NlHphs2soU3g9wm4AvXEohoB5Rk/S7N9h4MSJ3Egd7l8K4XKcBubVgREXjREZ5UH1YaP+tDoO1IeZ8imoJYu9y+GW5rugQOWLP/PYMrwF1hcTEPW/uNm9hnaASph5XtjMVqqhC1sh50TjhQ/PVo0YoFTicW8sfaZHSAHMaRVQpaMJpcTLGwn70Wktcusbeef+lF6Q+PkBgpWiFUTVLeOpFiDKlpC9x4Awy/2JvOpflN8vo1zuUgJ49MhkBOQfXEW+IxONEFjfZLVhQYCVUmSaatbyKzqmMYBbkyolQlgI4RTNEEvFhr+YCzeurAuf9f6nnuylbZ0JZWGvl+C7JdU5FdY79W4cMpBXOgLElM6rug8cxrf7T0iHd8Hv0fWN9yb4/q955FBixyXVfip4PxSHx+i3oME+YOwOH6ObT4tPSNPh9uo/zHiKdixX9mkRu7Zz/XU9e8LFV1wdGYUxzsdnZllrsz5r07ipOnERJ/5KBbR4011rGrcrKy4OEaBBZnfS4HpPiF4S5Hb3P4ULOAItVYr2OoXFmqVflPqbxGCgbfIZYoiQ1HqIH2K5zJKRVwzXCYIPm5FZ5q3tlNPnHJDObDO6qcwesrNKXgHjV2Xtz38c=","translations":{"en":{"changelog":"### Added\n- Uploads dialog: one queue for every upload in Deliver, one file at a time, keeps running across views.\n- \"Continue in the background\": the dialog shrinks to a card (a bar on phones).\n- Chunked uploads: pause while offline, retry failed chunks, resume after a reload.\n- Progress with speed and time left, then the state of Waveform, Proxy and Thumbnail Strip.\n- Uploads show in every open tab and can be cancelled from any of them.\n- Without ffmpeg, the uploading browser makes the Waveform during the upload.\n- Formats list in the dialog: what plays directly, what needs ffmpeg.\n- \"Processing failed\" on Asset cards; \"Process again\" in the Asset menu and the upload list.\n- Select Asset cards: checkbox, Ctrl/Cmd-click, Shift-click, select all.\n- Menu for selected Assets: Process again, Due Date, Move to Project, Remove, Delete.\n- Delete an Asset: files of every Version go to the trash, the Asset goes with its review data. Missing Assets too.\n- \"New Project\" creates a Project folder, under `/Deliver` or the place set in Administration → Deliver.\n- API: `DELETE /assets/{id}/files`.\n\n### Changed\n- Click on a card selects it, double click opens the Review.\n- Proxies are at least 720p.\n\n### Fixed\n- Phone: typing a Comment stops playback, and the anchor matches the Frame shown."},"de":{"changelog":"### Neu\n- Uploads-Dialog: eine Warteschlange für alle Uploads in Deliver, eine Datei nach der anderen, läuft beim Wechsel der Ansicht weiter.\n- „Im Hintergrund weiter“: der Dialog wird zur Karte (auf Telefonen zur Leiste).\n- Uploads in Teilen: pausieren offline, wiederholen fehlgeschlagene Teile, setzen nach dem Neuladen fort.\n- Fortschritt mit Geschwindigkeit und Restzeit, danach der Stand von Wellenform, Proxy und Vorschauleiste.\n- Uploads erscheinen in jedem offenen Tab und lassen sich aus jedem abbrechen.\n- Ohne ffmpeg erstellt der hochladende Browser die Wellenform schon während des Uploads.\n- Formatliste im Dialog: was direkt abspielt, was ffmpeg braucht.\n- „Verarbeitung fehlgeschlagen“ auf Asset-Karten; „Erneut verarbeiten“ im Asset-Menü und in der Upload-Liste.\n- Asset-Karten auswählen: Checkbox, Strg/Cmd-Klick, Umschalt-Klick, alle auswählen.\n- Menü für ausgewählte Assets: Erneut verarbeiten, Fälligkeitsdatum, In Projekt verschieben, Entfernen, Löschen.\n- Asset löschen: die Dateien aller Versionen gehen in den Papierkorb, das Asset mit seinen Review-Daten. Auch fehlende Assets.\n- „Neues Projekt“ legt einen Projektordner an, unter `/Deliver` oder am Ort aus Verwaltung → Deliver.\n- API: `DELETE /assets/{id}/files`.\n\n### Geändert\n- Klick auf eine Karte wählt sie aus, Doppelklick öffnet das Review.\n- Proxies haben mindestens 720p.\n\n### Behoben\n- Telefon: Tippen eines Kommentars hält die Wiedergabe an, und der Anker passt zum gezeigten Frame."}},"signatureDigest":"sha512"},{"version":"0.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/joshuabke/nextcloud-deliver/releases/download/v0.8.4/deliver-0.8.4.tar.gz","created":"2026-10-13T14:36:28.921992Z","licenses":["agpl"],"lastModified":"2026-10-13T14:36:28.982556Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"hMBssLub8NontqybtNHGeKZh63E6RXsOYm30St/o66j95oovOV/byA8mGIheozn5j+AAIi8/z1LJIESQPnrxbKzqe+/wJdRnxRuMj8FOQv6OKaTkUvgxPJ5s9TeoU7Bn2xbZ/68ywIO5iRayY4I6awdcslWx+9JW9xBCZ61zqL4WuVOXebVhsibKsC6m2bfRzQLLtAiNH9JLXfPvhkMXPIpmqCcxRFmOqeEJKjWMqE8z3ZMudId8tPk5U4aV1oqDkEUfbTvZE/xFVi6KgeZAm1GwadU9BtYgBtlq3r1nTvBJIKWIQZW/kP4mmLUhB1Y2lVe1wOSRSfKRQlSy/UFt7PTojqgW39nUp9z9VeCYf87ju/8nie+Ek/0jj4FejWrBMOFGd86hYb4Tt4BEW5ta7clHV+oC8Tj/wHTlBbBnhmySlc3jGSbg3hs5UpcM5iyO9KafPSAr8yp0G+a2xrw3ELXHP+d9yooY36gr6HeY1ZRsKy4dHihnbAwtqEDOLSb3aOqXHvnrCZd/LJXB2HRJ8dDJUxM80Z18VvhQ+5/7zpYP/VQvR3GNGTdO0Jo1MHhNfVP2IF0t2tFYnlovcUyB+7KWAGIFC3qrWydnYWTPD7QF9KTjXAtEnRXMljh2kD05RKi1WEDaMyGZohgrOBJf9DA7dX9vM2lH+fK+RLxWaqY=","translations":{"en":{"changelog":"- Every card has a \"…\" button beside its name, on every screen, that opens the same menu as a right click or a long press. A Project's settings moved from the gear into that menu.\n- Asset cards show the Version, the Approval, the Comments and the runtime in the corners of their still, Missing or Processing in place of the runtime, when the newest Version arrived below the name, and the filename on hovering the name.\n- Media files in a Folder Project that are not up for review have a menu of their own: add for review, add as a new Version of an Asset of the same kind, download, rename and show in Files. An Asset's menu can download and rename its newest Version's file too. Renaming keeps the extension, so a file never changes its kind.\n- Removing an Asset keeps its files out of Auto Intake, also after a rename, a move inside the folder, an overwrite or switching Auto Intake off and on. They wait under \"Not up for review\" until someone adds them again. This works from the Files sidebar too, where \"Review in Deliver\" can now be switched off for a file in a folder on Auto Intake. \"Take out of Deliver\" is now \"Remove from Project\", or \"Remove from Deliver\" in No Project.\n- A Project removed and made again from its folder gets its Assets back from No Project, with their Comments.\n- Confirmations grow with their heading, so the German ones fit.\n- API: `POST /assets` takes an `assetId` and adds the file as that Asset's next Version in one step."},"de":{"changelog":"- Jede Karte hat neben ihrem Namen einen „…“-Knopf, auf jedem Bildschirm, der dasselbe Menü öffnet wie ein Rechtsklick oder langes Drücken. Die Einstellungen eines Projekts sind vom Zahnrad in dieses Menü gewandert.\n- Asset-Karten zeigen Version, Abnahme, Kommentare und Laufzeit in den Ecken ihres Standbilds, „Fehlt“ oder „Wird verarbeitet“ anstelle der Laufzeit, unter dem Namen, wann die neueste Version kam, und beim Zeigen auf den Namen den Dateinamen.\n- Mediendateien in einem Ordnerprojekt, die nicht im Review sind, haben ein eigenes Menü: zum Review hinzufügen, als neue Version eines Assets derselben Art hinzufügen, herunterladen, umbenennen und in Dateien zeigen. Auch das Menü eines Assets kann die Datei der neuesten Version herunterladen und umbenennen. Beim Umbenennen bleibt die Dateiendung, damit eine Datei nie ihre Art wechselt.\n- Ein entferntes Asset bleibt mit seinen Dateien aus der Automatischen Aufnahme heraus, auch nach Umbenennen, Verschieben im Ordner, Überschreiben oder Aus- und Einschalten der Automatischen Aufnahme. Die Dateien warten unter „Nicht im Review“, bis jemand sie wieder hinzufügt. Das gilt auch in der Seitenleiste von Dateien, wo sich „Review in Deliver“ jetzt auch für eine Datei in einem Ordner mit Automatischer Aufnahme ausschalten lässt. „Aus Deliver herausnehmen“ heißt jetzt „Aus Projekt entfernen“, Ohne Projekt „Aus Deliver entfernen“.\n- Wird ein entferntes Projekt aus seinem Ordner neu angelegt, bekommt es seine Assets samt Kommentaren aus Ohne Projekt zurück.\n- Bestätigungen wachsen mit ihrer Überschrift, damit die deutschen hineinpassen.\n- API: `POST /assets` nimmt eine `assetId` und fügt die Datei in einem Schritt als nächste Version dieses Assets hinzu."}},"signatureDigest":"sha512"},{"version":"0.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/joshuabke/nextcloud-deliver/releases/download/v0.8.3/deliver-0.8.3.tar.gz","created":"2026-10-09T11:20:25.611673Z","licenses":["agpl"],"lastModified":"2026-10-09T11:20:25.669551Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"U/5wPBVI63Uo8RgGSjrf3+tNEzF1KDLuTK3+kHd2xpVRFHh0HC6qCCFqv6OcyE31nOyQh3a/6nylpY2QyO57qwU0BxpnsZ5vpox+D+XKKv7qK4pVx6zK6AS8UP9F2EeigpxqiYO5HsDjAzPWYwiRw3nD838Tyxwj9CHZk+HBunVetENc3oBl9ozk5dZaKYMqs7viwFxJfkjyy3fgloexxjS/5SNIVuZmcs6zRITgy+iNZreD78Vere8JXdbXCvggqS4SY1Nz0dKatmzljC/wak3rud4WIg9baRl5RKOjgErmLUmyeXowaG3acfamyL7/H2rEN4ZeoY52Bxw2zXZt19tcU63r3/acfjetZwgO95I4mNLa97IuKhhNTC1/5IZOqAPPHIVu2X/G5Z66zUgKWWBMynzJCpUmTPRy7fL4HdX0AU19mIwQ2rfwoBoen0lTg1EsO1wxYA5aWhnUC6VYkxD3sPrpwtMXRYOkW6BXEkK7HPcBsQ+ZFUsyILWpor+C97KJu6Jlb9yZ0fIsoitzySroJv9RZ7H5Km5TBvMzL6WItd/WeBtDXX5XpWlswkAwfGI7iJXwYgDufk68bndNV8QZkEfzyzffFYaZ+CzgusozprWaHgiXU3ZITOViDA3BevirMWAAljdf6m4ZmnlqbfpPq8B7QacHd90fZXFc4VU=","translations":{"en":{"changelog":"- Reviewers have their own menu under an avatar at the top of the review, as on Frame.io: change their name and address, choose what is mailed to them, switch between German and English, and end their session so the next person names themselves anew.\n- Naming oneself with the name and address of an existing Reviewer mails that Reviewer their Personal Link, so they are back in the review from their mailbox. Two Reviewers may share a name; their avatars differ in colour. A Member's name stays taken, and invited or renamed Reviewers still need a name of their own.\n- Mails to a Reviewer come in the language they review in.\n- A new address given later gets the Personal Link by mail too."},"de":{"changelog":"- Reviewer haben ein eigenes Menü unter ihrem Avatar oben im Review, wie bei Frame.io: Name und Adresse ändern, wählen, was gemailt wird, zwischen Deutsch und Englisch wechseln und die Sitzung beenden, damit sich die nächste Person neu einträgt.\n- Wer sich mit Name und Adresse eines bestehenden Reviewers einträgt, bekommt dessen Persönlichen Link an diese Adresse gemailt und ist über das Postfach wieder im Review. Zwei Reviewer dürfen gleich heißen; ihre Avatare unterscheiden sich in der Farbe. Der Name eines Members bleibt vergeben, und eingeladene oder umbenannte Reviewer brauchen weiterhin einen eigenen Namen.\n- Mails an Reviewer kommen in der Sprache, in der sie reviewen.\n- Eine später angegebene Adresse bekommt den Persönlichen Link ebenfalls per Mail."}},"signatureDigest":"sha512"},{"version":"0.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/joshuabke/nextcloud-deliver/releases/download/v0.8.2/deliver-0.8.2.tar.gz","created":"2026-10-06T20:33:28.768474Z","licenses":["agpl"],"lastModified":"2026-10-06T20:33:28.852282Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"CRUl4mZH9a8M/DmL7TOXIM7KKUkRdLaJXB4qAWvF6MHPYS1rmL2fhCliUTGom93GSjP0DKbVChVmZwgXAPP2NNN+5R42qv1q3RWawIKfgmD5uxlsx199UfFzF8fJvlc9FeZdjMwzUTTI0hwH/kRwlIC8xB/9iUH44dZFMHEGtonRCWD38kMhn8VDN/ObL/EKLz3TIepxJ/EOiFM3o9+ozP7Cj6PHbBAsB694RXDNkN6T4s2KCaPNfIeh6w+g1UIdhiDMmOGVjaJnAfICMLnQi91YHr7ZPvCIWUOL7DhiWxhFhKdjlYIUQ0wAI/fUVUYExqRpzFVsMwMZWcEVl9eq7pKKJENDq5k7wOfkCXJkjs1TLmqxZeU2M/TSQTw7AwqYj245QjPrQJa9xp5KWYgpqvSIvTjRxmISf0JFGg1Xe3UtZjzdSO4gCoe2QWPElfs3/9w4IucN/PUqN5ZQt+mCovwh4lNPcPs4rEEcVk7KsuskXF8snNoppNttQ38WJGRUI0g5XIzAYxhwJMvgUoqxsJPRbsy5rhgthhfiz2vtQu7LE15bRny86yCZANFUhpC+OM6E/Gc+vFozGqO6SpA8hlp2Us6bct87/YK3A7zpgJOIg+P45Kf0644C/F7hKh6+j5waQStSt9t43g+8u/ZLrNbnajJzVhhcEnCFPT/8cfc=","translations":{"en":{"changelog":"- A Reviewer who names themselves on a link with an email address gets their Personal Link by mail right away, instead of a notice to bookmark it.\n- Inviting a Reviewer can mail them their Personal Link, under a message of your own; answers go to your address.\n- Names in a review are unique: naming oneself, inviting and renaming refuse a name that a Member of the shared files or another Reviewer of the Project already has.\n- Naming oneself on a link is rate limited, so that a link cannot be used to send mail to strangers in bulk."},"de":{"changelog":"- Wer sich auf einem Link mit E-Mail-Adresse einträgt, bekommt den Persönlichen Link sofort per Mail statt eines Hinweises, ihn als Lesezeichen zu speichern.\n- Beim Einladen eines Reviewers lässt sich der Persönliche Link per Mail schicken, mit einer eigenen Nachricht; Antworten gehen an die eigene Adresse.\n- Namen im Review sind eindeutig: Eintragen, Einladen und Umbenennen lehnen einen Namen ab, den schon ein Member der geteilten Dateien oder ein anderer Reviewer des Projekts trägt.\n- Das Eintragen auf einem Link ist begrenzt, damit sich über einen Link nicht massenhaft Mails an Fremde verschicken lassen."}},"signatureDigest":"sha512"},{"version":"0.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/joshuabke/nextcloud-deliver/releases/download/v0.8.1/deliver-0.8.1.tar.gz","created":"2026-10-06T13:56:13.414441Z","licenses":["agpl"],"lastModified":"2026-10-06T13:56:13.462386Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"SJHrdm7godGzQfAngSrLJA2uxneMjWLB9myOvkgCqr1dtbTICA1wPiuHtinQj58kP2v0ved6hlydOKFmMzDwyaPFPPtWd0IXqfcPhWmUQjaZ9G2k2EtwTe5XxeyG117KHJQy9mj3ktWdf9mpIewU998e27QS2QGkcpLvPzTwmAY7BYE0j6URhumaGi/0vg4gCamQNd92yUawqzocLFaBL/DMvPED7/RoaTyHuwSTfFCp8/Y+Rds0nSass0IS1yaAn75xvnwbeHrZVB1C7anm/plJin/A4ikhkd8yzZ1p9T6rLT9uBXAvUZs3U8XXszuT3g30QwLQd1cX6etFJFd7p3eV/sA5nOf/JmwMJYYhSvcyJ9D7c3b+NI1QWfSvpvgFkLO9fxTiTAyIdD8qqYsaF/NFPdtC5EEUN5KMjLUkHKlgHjeSK6ySeZeH+E/CdbDjKOaIGjtKBRQHu+FNUb2Xv/ExVjnDkqwY411l3BDaHs8zBNblrIwZ/f9IAkYifqlpqzH3/42DuQ3y1tVnDOYxq6b0khExwhJx9H7HV3PUELE4dDuC8OOSXkGh3Fo/mBYy8b0IJi9XQ/IM4iS5DkxyNqwVKWsuO4z1/gr9uqd/gM6DcbNa6ES/xsKRPlfOuIouBYg4NtJtxVFnp4OwO4Rg9exUglD2PghVPR7UhFWTCXQ=","translations":{"en":{"changelog":"- Nextcloud 35 is supported.\n- Deleting a Nextcloud account no longer leaves its Projects, links and Reviewers to the next account created under the same user id. A Folder Project passes to whoever owns the folder, other Projects are removed with their Assets kept in No Project, and the account's Comments and Approvals stay, under \"Deleted user\".\n- The App Store page lists what Deliver does, in English and German.\n- New screenshots, and a README with the features at a glance, a screenshot gallery and how Deliver fares with hosted Nextcloud providers."},"de":{"changelog":"- Nextcloud 35 wird unterstützt.\n- Wird ein Nextcloud-Konto gelöscht, erbt ein später unter derselben Benutzer-ID angelegtes Konto nicht mehr dessen Projekte, Links und Reviewer. Ein Ordnerprojekt geht an den Eigentümer des Ordners, andere Projekte werden entfernt und ihre Assets bleiben Ohne Projekt erhalten; Kommentare und Abnahmen des Kontos bleiben erhalten und stehen dann unter „Gelöschter Benutzer“.\n- Die App-Store-Seite zählt auf, was Deliver kann, auf Englisch und Deutsch.\n- Neue Screenshots und eine README mit den Funktionen auf einen Blick, einer Screenshot-Galerie und einer Übersicht, wie Deliver bei Nextcloud-Anbietern läuft."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvcmV2aWV3LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvY29tcGFyZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvcHJvamVjdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvdXBsb2Fkcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvcHJvamVjdHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2pvc2h1YWJrZS9uZXh0Y2xvdWQtZGVsaXZlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvcGhvbmUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Deliver","summary":"Multimedia review tool for creatives, a free alternative to Frame.io","description":"**Multimedia review tool for creatives.** 100% free, feature-complete alternative to Frame.io, but aspiring for more.\n\n**Note:** Deliver is approaching v1.0 and will still have some bugs. Please help by [creating an issue](https://github.com/joshuabke/nextcloud-deliver/issues/new) for everything you find!\n\n- 📂 **Review in place** from the Files sidebar, or a whole folder as a Project. Nothing is copied or moved.\n- 🎯 **Comments on the Frame** or a Range, with Drawings, Replies, Reactions, Mentions and Attachments\n- 🗂️ **Versions** stack by name (`…_v1`, `…_v2`) and compare side by side or under a wipe\n- ✅ **Sign-off** with Approvals, Due Dates and reminders\n- 🔗 **Clients without accounts** on Project Links: password, expiry, Watermark, downloads, and who watched what\n- ⬆️ **Uploads in Deliver** that resume after an interruption, run in the background and show the processing until it is done\n- 🎬 **Back into the edit:** export comments as markers for\n  - Video: DaVinci Resolve (EDL), Premiere Pro (FCP7 XML), Final Cut Pro (FCPXML), CSV\n  - Audio: WAV markers, MIDI, REAPER regions, Ableton Live Set\n- 🎞️ **Supported files**\n  - Video: MP4 and MOV (H.264), WebM\n  - Audio: WAV, FLAC, MP3, AAC, Ogg\n  - Images: JPEG, PNG, WebP, GIF, AVIF\n  - Everything else (ProRes, H.265, MXF, AVI …) needs ffmpeg\n- 🌊 **Waveforms, thumbnails and scrubbing** by hovering over a video\n- 📱 **Fully mobile ready:** use it as a web app on iOS and Android, and get notifications through the official Nextcloud app\n- ⚡ **With ffmpeg on the server**\n  - Proxies, thumbnails and waveforms for every format ffmpeg reads\n  - Hardware encoding: VAAPI, NVENC, VideoToolbox\n\n**Roadmap**\n\n- **1.0:** the 0.x pre-releases settle, srt subtitles support\n- **1.1 – Takes:** compare the Takes of a recording session on one timeline, jump between them at the same position and comment on the one that works\n\nScreenshots: footage from Tears of Steel, (CC) Blender Foundation | mango.blender.org."},"de":{"name":"Deliver","summary":"Multimedia-Review-Tool für Kreative, eine kostenlose Alternative zu Frame.io","description":"**Multimedia-Review-Tool für Kreative.** 100 % kostenlos, vollwertige Alternative zu Frame.io mit dem Anspruch auf mehr.\n\n**Hinweis:** Deliver steht kurz vor v1.0 und hat noch einige Fehler. Bitte helfen Sie mit und [legen Sie ein Issue an](https://github.com/joshuabke/nextcloud-deliver/issues/new) für alles, was Ihnen auffällt!\n\n- 📂 **Review an Ort und Stelle** aus der Dateien-Seitenleiste, oder ein ganzer Ordner als Projekt. Nichts wird kopiert oder verschoben.\n- 🎯 **Kommentare auf dem Frame** oder einem Bereich, mit Zeichnungen, Antworten, Reaktionen, Erwähnungen und Anhängen\n- 🗂️ **Versionen** stapeln sich nach Namen (`…_v1`, `…_v2`) und lassen sich nebeneinander oder per Wischen vergleichen\n- ✅ **Abnahme** mit Fälligkeitsdaten und Erinnerungen\n- 🔗 **Kunden ohne Konto** über Projekt-Links: Passwort, Ablaufdatum, Wasserzeichen, Downloads und wer was angesehen hat\n- ⬆️ **Uploads in Deliver**, die nach einer Unterbrechung weiterlaufen, im Hintergrund arbeiten und die Verarbeitung bis zum Ende zeigen\n- 🎬 **Zurück in den Schnitt:** Kommentare als Marker exportieren für\n  - Video: DaVinci Resolve (EDL), Premiere Pro (FCP7 XML), Final Cut Pro (FCPXML), CSV\n  - Audio: WAV-Marker, MIDI, REAPER-Regionen, Ableton Live Set\n- 🎞️ **Unterstützte Dateien**\n  - Video: MP4 und MOV (H.264), WebM\n  - Audio: WAV, FLAC, MP3, AAC, Ogg\n  - Bilder: JPEG, PNG, WebP, GIF, AVIF\n  - Alles andere (ProRes, H.265, MXF, AVI …) braucht ffmpeg\n- 🌊 **Wellenformen, Vorschaubilder und Scrubbing** beim Überfahren eines Videos\n- 📱 **Voll mobiltauglich:** als Web-App auf iOS und Android, Benachrichtigungen über die offizielle Nextcloud-App\n- ⚡ **Mit ffmpeg auf dem Server**\n  - Proxys, Vorschaubilder und Wellenformen für jedes Format, das ffmpeg liest\n  - Hardware-Kodierung: VAAPI, NVENC, VideoToolbox\n\n**Roadmap**\n\n- **1.0:** die 0.x-Vorabversionen werden stabil, Untertitel als SRT\n- **1.1 – Takes:** die Takes einer Aufnahmesitzung auf einer Zeitleiste vergleichen, an derselben Stelle zwischen ihnen springen und den passenden kommentieren\n\nScreenshots: Filmmaterial aus Tears of Steel, (CC) Blender Foundation | mango.blender.org."}},"isFeatured":false,"authors":[{"name":"Joshua Böke","mail":"joshua@boeke.dev","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhQ7MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTI1MjExWhcNMzcwMTA3MTI1MjExWjASMRAwDgYD\nVQQDDAdkZWxpdmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAu2q3\nP58eTA1SvCXlLBhdIaaD+E3XeToUFnNkMpXP6ypEQFL7JidDj4s2pXKWFbWuF+7a\nJfKDavSWAoMWEiJsRGTTVH5srfXhzhxm4HDMAxADGF53CQMv56Un8PNe6L8L8d/3\nf34eHGNLI3X4oEjd3G0OQ4ubejhjLCNrfXXEQkmehVyIUPCuD30J+qAcTCFtjkhw\nwclqViOfhx/EpGB/BjJcJ1WanafSrQxfaCVJPLbq2uDBO+G15Gh3igMp2CDwBHsP\n2fcXZB1DG4+V1GF7TlbGE9T9Vs6R+cegtCCVUkuy9YhRym+5mPZDXwH4iXcxhVpa\nNzSPZiRnH8y6H2uGasXiljC91nKRrIs51BwO/OT6hdBWZpYr6DJLvAm1QDCyv8s0\n+THxhaJmlZf7yFbk4rFA3M822CcQ9s7MvHqhbE+UA+K4fcjVhjJbBzpgerasRS3c\nuzvmglZwIc28wfcAz+8/dimhFMBdGKg8VzH9Io2PCZb72p00gVyr85rj9zXQJtrU\n3SUphk4OlugMN69VSsIL2Qym9D9NAxXj8q6b4gtE/5ykGObH8X4wrL52sD35uPw6\nG6VOWi4yIgB+oej6eQN/UJdUmatZmqqdrNxBiZ3kQs5hpqyJUSuPRpnhQp0XcCdn\nSzUK4/nD3XPWsItWaUYO1ak1mhqpv33TyNkXKAcCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEALxj0JoBcp9lKZMGcaHzQRFJqjJOYFWZnI88vSA57aMsHea5tl1Bj8qoY\nqk/f+bGrUCbpZBH/mmTVRdyX/d78oR2TH4yK39drckXaNnV85YsN4kLx39je7SRK\nAjrRVg8L3awc1reDXwPhYZzDjFiH/jFuCNa0pg0PpMp5tgsONnR1jWfVdxAfIHIU\nAtCN/ILskfJO87J8DuICKlNNG68LPYr7jVQNSK86jltTczUtdeLLDVpSIfuDK50I\nS2q3PNJI/2Xiw4i0i9NKwGzDchKmVvvbMNgGEGyh7maHO3rF8Y5LYDK74fHkvvAg\nHNrcsWUwDQo/y/HRvQjJyVqyAaY7ag==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"media_embedding_connector","categories":["ai","integration","multimedia","search"],"userDocs":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/blob/main/docs/USER_GUIDE.md","adminDocs":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/blob/main/docs/ADMIN_GUIDE.md","developerDocs":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/blob/main/CONTRIBUTING.md","issueTracker":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/issues","website":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector","created":"2026-09-17T20:41:00.761696Z","lastModified":"2026-10-04T00:18:36.556694Z","releases":[{"version":"0.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/releases/download/v0.4.4/media_embedding_connector-0.4.4.tar.gz","created":"2026-10-04T00:18:36.546347Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T00:18:36.604038Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"T8Kg4fJxFYrMrAUPcme+x43e/U0b6kDRT5+u4v+5iyWuW53YOIggYTMYLnou7Qls\n2QASnf+WFSjArx7zooKofz6z+5uDSbgMysGDPVWVRmX9xUBGAZaDG+NTvNlCYJvn\ngA6zLAYOvHwWNCCKB7ImbXW07gMins6bJrkZrjjVHAr61aWWVH3W7WUp6l6Go9vN\noHivwRoKmgVGDixAdfr1qYIob1Pet1K3AcsCykNKZQiDiwKXW5QtJ3yUW2exvC4i\nn7HZJsJk0xe+jbv1jup9i5BZCCi0YWNIJOhQaqmgu0O8Ff7lP6Gl69xjnVU+Jq4U\n0C4occCjE9xTOqSU7jQ7E8D/W1VxaoAbbgBwLHvSwfBw07YoYAV27hHaf92XLqNL\nIqscjf5eoEy9hmrj5To2rOW/3oT/ngB+moA8+1HDCKnv4psSOqhOta7LNLVjnAQh\nvvWxo47eSlLzwAwFLQEyGnrO1FuHDHl0g3E2GnvUmvuxLjUeCefSTI5uTrTs0i1p\n4Bq28pQ992HQgxAcyESW7BXksRdWM5m3AqX2AcjbnUFoqIVlrKJaVed7rGgD2POG\nVeT9l5DJ12unN2L08S2AYSumUOTtMgDPxrplQOdmLDlDP04k4ONclZ9dg0v66PBv\n64lefrRD8tGLeQVNVQutnt8UXKrcrYm04IjTrh5o+wo=","translations":{"en":{"changelog":"- Introduce **ScopeSearch**: resolve live readable folder roots and single-file\n  shares without enumerating each user's full photo inventory; union overlapping\n  share routes before exact/ANN vector ranking (`num_candidates=10000`).\n- Upgrade existing vectors in place with numeric storage and folder ancestry\n  metadata. Add persistent, restartable migration/repair jobs, subtree move and\n  trash deletion handling, and scope-specific waiting during repairs.\n- Add the compact schema-update status and error download, restart, pause, and\n  resume controls. Remove legacy ES string storage identifiers during migration.\n\n- Simplify administrator status downloads to JSON arrays containing only the\n  record ID, last error (or skip reason), and storage-relative path.\n- Process index deletion jobs without contacting the embedding service, so an\n  unavailable or invalid model response cannot prevent removal of deleted files."}},"signatureDigest":"sha512"},{"version":"0.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/releases/download/v0.4.3/media_embedding_connector-0.4.3.tar.gz","created":"2026-10-03T16:15:08.050028Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T16:15:08.162209Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"PxSHzF5DDt2KIlx5FC6sk5oeNpB4OQjZyMKO31xLt7BoB3l20qxZQLqBPzCDL4+d\n8A2xOgp+nHGqqsTsfgK4EInl5PXn0OGS50L7FEsNIjct2nhDa0lh0w3/kqxPsKv+\n/GhgsHYhpRnbmiQeYTgqsrwowHul1WnUiAYsB7utX0zL9wJZuXoqNeK34MYsEQLs\ncPEXVLOrBFCFlBB+mnfYQOHRIefl+cWP15GlUULNH4hq9IpETIVdXUVPi7cbO/FQ\nRviyTBVKOpsh7yRc9O9YvS6KuSgnl63gNY5ZpbleZf7pV0y6yADejrpMcMiI0JUg\n1k5BheuRONzDePk6kCYEuci1lLui8AV8kKy9Lz2AXK81SlvNT3M6PJrYxtrsH1Kv\nj/uvw7S7dcnwI1+mj/TahQ897trydho/zQPhtwR2aNCQwgVg2AEJGfJAxEVDqsdW\n4UVteT242jak8ycKYGLFdPv6wI7Rg56M4WnW1Ekk8sGEzq0itE7nqcCxk5hlBWEE\n/NY39fmJxqZ/EUhLlk6hNn1RD8vGu6reP19RIo5pu4fzoRY9KvbG0qNlJMja1FxK\n531qoveY0CB8dXqWmZTFHO7fI1E8C0fAQWV/GgchUx9WV2v2jdCC5cwRUsuKx7qc\nh1dCpmXHw48WR/vVCeZ2m7ccU7uD9sGCC6klYCU1FBU=","translations":{"en":{"changelog":"- Update all locked brace-expansion copies and DOMPurify to patched releases and\n  rebuild the shipped frontend bundles.\n- Support Nextcloud 33–35, including API compatibility checks and a Nextcloud 35\n  runtime contract test. Drop support for Nextcloud 32. Nextcloud 35 requires PHP\n  8.3 or newer; older supported Nextcloud versions can still use PHP 8.2.\n- Enumerate mounted file-cache candidates with keyset pagination, then validate\n  access through the supported `fileid IN` filesystem filter. Cover own photos,\n  received shares and revoked access with an actual Nextcloud runtime test.\n- Search the complete readable Nextcloud image scope before ranking. Use exact\n  cosine search for scopes up to 10,000 images and ANN with 10,000 candidates per\n  shard for larger scopes; merge all scope blocks and display 49 images per page.\n- Keep up to 500 ranked results in owner-bound, 15-minute search sessions. Reuse\n  the ranking when paging without new embeddings, uploads or scope enumeration;\n  recheck current permissions and refill pages after revocations.\n- Pin searches to one concrete index/model and use an ES snapshot while building\n  the ranking. Reject model drift, partial searches and technical permission\n  lookup failures. Create new indices with explicit unquantized HNSW mappings.\n- Stop automatic retries after failed paging, show actionable session/model\n  errors and abort superseded browser requests.\n- Add administrator JSON downloads for queued, running and failed jobs and\n  persistent skipped files, including names, storage paths and diagnostic details."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"it":{"name":"Media Embedding Connector","summary":"Ricerca semantica di immagini con un Media Embedding Service privato","description":"Cerca immagini in Nextcloud in base al significato o alla somiglianza visiva.\n\nMedia Embedding Connector invia le immagini supportate e le query di testo a un Media Embedding Service configurato dall’amministrazione. I vettori risultanti vengono salvati in un indice Elasticsearch gestito dal connettore. L’adattatore attuale supporta la MediaLab External API.\n\n* Cerca tramite descrizioni in linguaggio naturale\n* Trova immagini visivamente simili, anche usando un’immagine di ricerca caricata temporaneamente\n* Esplora risultati filtrati in base alle autorizzazioni in un layout reattivo\n* Apri le anteprime, scarica i file o passa alla cartella di origine\n* Mantieni in Nextcloud nomi dei file, percorsi, utenti, gruppi, condivisioni e dati di controllo degli accessi\n\nL’app richiede un’API di embedding compatibile ed Elasticsearch 8.12 o versione successiva. L’amministrazione mantiene il controllo sugli endpoint di rete, sull’attivazione dell’indicizzazione, sui formati supportati e sulle operazioni di indicizzazione dei contenuti esistenti."},"en":{"name":"Media Embedding Connector","summary":"Semantic image search with a private Media Embedding Service","description":"Search images in Nextcloud by meaning or visual similarity.\n\nMedia Embedding Connector sends supported images and text queries to an administrator-configured Media Embedding Service. The resulting vectors are stored in a connector-managed Elasticsearch index. The current adapter supports the MediaLab External API.\n\n* Search with natural-language descriptions\n* Find visually similar images, including from a temporary uploaded query image\n* Browse permission-filtered results in a responsive image layout\n* Open previews, download files, or navigate to their source folder\n* Keep filenames, paths, users, groups, shares, and access-control data in Nextcloud\n\nThe app requires a compatible embedding API and Elasticsearch 8.12 or newer. Administrators retain control over network endpoints, indexing activation, supported formats, and backfill operations."},"de":{"name":"Media Embedding Connector","summary":"Semantische Bildsuche mit einem privaten Media Embedding Service","description":"Durchsuche Bilder in Nextcloud nach Bedeutung oder visueller Ähnlichkeit.\n\nMedia Embedding Connector sendet unterstützte Bilder und Textanfragen an einen durch die Administration konfigurierten Media Embedding Service. Die resultierenden Vektoren werden in einem durch den Connector verwalteten Elasticsearch-Index gespeichert. Der aktuelle Adapter unterstützt die MediaLab External API.\n\n* Suche mit natürlichsprachlichen Beschreibungen\n* Finde visuell ähnliche Bilder, auch anhand eines temporär hochgeladenen Suchbildes\n* Durchsuche berechtigungsgeprüfte Ergebnisse in einem responsiven Bildlayout\n* Öffne Vorschauen, lade Dateien herunter oder navigiere zum Quellordner\n* Dateinamen, Pfade, Benutzer, Gruppen, Freigaben und Zugriffskontrolldaten verbleiben in Nextcloud\n\nDie App benötigt eine kompatible Embedding-API und Elasticsearch 8.12 oder neuer. Administrierende behalten die Kontrolle über Netzwerkendpunkte, Aktivierung der Indexierung, unterstützte Formate und Backfill-Vorgänge."},"fr":{"name":"Media Embedding Connector","summary":"Recherche sémantique d’images avec un Media Embedding Service privé","description":"Recherchez des images dans Nextcloud par signification ou similarité visuelle.\n\nMedia Embedding Connector envoie les images prises en charge et les requêtes textuelles à un Media Embedding Service configuré par l’administration. Les vecteurs obtenus sont enregistrés dans un index Elasticsearch géré par le connecteur. L’adaptateur actuel prend en charge la MediaLab External API.\n\n* Recherchez à l’aide de descriptions en langage naturel\n* Trouvez des images visuellement similaires, y compris à partir d’une image de requête temporairement téléversée\n* Parcourez les résultats filtrés selon les autorisations dans une mise en page adaptative\n* Ouvrez les aperçus, téléchargez les fichiers ou accédez à leur dossier source\n* Conservez dans Nextcloud les noms de fichiers, chemins, utilisateurs, groupes, partages et données de contrôle d’accès\n\nL’application nécessite une API d’embedding compatible et Elasticsearch 8.12 ou une version ultérieure. L’administration garde le contrôle des points de terminaison réseau, de l’activation de l’indexation, des formats pris en charge et des opérations de reprise d’indexation."}},"isFeatured":false,"authors":[{"name":"Digitale Medien der Armee DMA","mail":"support@dma.swiss","homepage":"https://github.com/Digitale-Medien-der-Armee-DMA"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFDCCAvwCAhQaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE2MTMxMzMyWhcNMzYxMjIyMTMxMzMyWjAkMSIwIAYD\nVQQDDBltZWRpYV9lbWJlZGRpbmdfY29ubmVjdG9yMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEAt8UH2bZeBg1Iay+XNy4QEJL4QkkK3M4WCB7PLoEWkHkc\nc49eICD+Yq9hn9jTfaoVEHXVMknXedRdtkqUhbnwF//jHytuBi2tc/9FacUdLMrQ\nwGEbuxrKrVjE9TzhWjrdPER9hVtruRLMktE0fvaqAfAHR9pQj75SV8RnSauOL9af\nmDc6YABF+S1C5ZVs33CK2BYcUXGjz+KxLNHP0pNJC5y7QXGEHW40MwD1nkDiBVGo\n5sd7Ljh8AVvFg1D2Bk4NylaatGjDctjr2Y8MQz7wN6RJL9+TPzshPCqf66g/c3JK\nnSPqLMQRG4ag7LGd4FZXDjheT88RC6LXEQTz+l14XBjuADMdJwGA41cYs3I1bGmh\nwitv4LG6uPraCHqXSQLuhHcXBSY78HFijxzSABGkkLLaLZwQLQBNEdYorVA51VMT\nKwye2j8+OA9qk9F7t+g3jg5CCRdBp0s1zRPaEeH3mzWDh6V5qNxXl5xlf9YE1ThM\n+TVLi0blbrdTpMVx87uUyi49F0wc+OhDvN4c3stFgrFqbK8GVS+rMHRroC9Syyv+\nrsny7+ubHxpsJy2uyQlU1/nEy492CfRnrv/+q/oFzTCx50StI7JoNf67xoCR3x4Z\nXcXxiOSAKEeckO1Lqtk0v0BCaSsunRU0sPRY+W/mc/vhQ7b/NGdTVjXr/EiQMAcC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAA+lxYzsr58bkQk+CbvkD56svsQ4g2mhv\nQ21ulOFCabtTVIafIFzAkOnyRxj4MA/eVKhEWOnqtTU4TEMp5yB3kJDWL1nJck/o\n9Z+VrSARqRraTA2JpDYdsVEbSYIO1Iio8GuVy77mbivePYLvVKbQrNd5iay4lvTa\noH8LPnl8WvjjKXgBpm04ajW9Z30y1fTmEWtD9ABJE3e0uUSZR8b5JkisWq+DfEO6\nrkNw9jz/8jmxmvdORQij/p2XTT/wU7CmbSmGX4GGX9YYh0NF421mR9s1eGB6VQl2\nzIvO8CmZSpLYa077gXXBA8RKgYmirTTmR0dwDcLY0zhDHvnzPRGhig==\n-----END CERTIFICATE-----","discussion":"https://github.com/Digitale-Medien-der-Armee-DMA/media_embedding_connector/discussions"},{"id":"ak_language_switcher","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sashd3/ak-language-switcher/issues","website":"https://aarekraft.dev","created":"2026-03-08T21:15:07.381922Z","lastModified":"2026-08-25T16:55:52.895055Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=27.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sashd3/ak-language-switcher/releases/download/v1.0.3/ak_language_switcher-1.0.3.tar.gz","created":"2026-08-25T16:55:52.874374Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-25T16:55:52.940116Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=27 <=35","signature":"PlH0zOGxdRJ0s6UsrfezWrFalLaM+bWIWzMPttmeCea3YMWk036oLD+zW1TxvXji\nLgfVzIVhxHNv9K1nkEoPaSLAUrsRX3S+29X/BKzDH4Bby7uY3ybMsmAm1t5kGgUp\niPUycKdpc+N+uJzEzcT/S7aUUEfim75l0s6BqcEdv7jQRxp2jRQujhh0t59Dr1YR\nICaN7VkjV+IRycrC4PUC38BTcCpNJ5T3lwz46+9oP4qCKBe6qtEGZ8om5qLVEHb3\nVI2JN21sf3WlN6dLLTTbM2Jp4W+n3/a3flLLor/N0oPGccHnvvgnSb4omxDPbcRG\na4m2Kkeo8NmzdzpL7qW7XAiQGUDxpQWJYTwbkBNIsk+bXpCuBgBn1M09b+AT5ZDf\nS9l2qFfYDFwF3CVDLqT9RCnx51GNGlzEqCz6MXk+91UpLKxpDlPttPJ8NYDaDZKv\nl0yTOLpIr1L+demcLjMNi2xFb8O4ceKQtYV1s8plHY2RfdcaS+9vzelyTe4vP5ea\nOASj6Hoi5REhlCCdH9uL101e9BDOPetPoejBT+vi2Rcovj3VYbeapsfmC2NI4qn1\ncfwB4jcuIU14uBlF9I5Cfvc3kiYeoYbsCHoVuzdtO5oT8JdlvQJ+gvirLR5Ty6uv\nuUYd484IhM+hKVf/Y56Dl9OprbQ+HewYmOyn9bGDhcE=","translations":{"en":{"changelog":"### Fixed\n- A leftover `nc_language` cookie no longer overrides a logged-in user's saved language. The cookie is only meant for anonymous visitors on public share pages, but it was applied unconditionally — so anyone who picked a language on a public share link and then signed in within the next 24 hours got a mixed-language interface, with their own language setting silently ignored. The cookie is now skipped and cleared as soon as a user is signed in.\n\n### Changed\n- Declare compatibility with Nextcloud 34 and 35 (`max-version` 33 → 35). Verified on Nextcloud 34.0.3 and 35.0.0 beta 4: header switcher, dropdown, language save for logged-in users, cookie-based switching on public share pages, and the admin settings panel all work unchanged. Note that 35 was only reachable as a pre-release at the time of this release — re-check once Nextcloud 35 is final."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Nhc2hkMy9hay1sYW5ndWFnZS1zd2l0Y2hlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvbmMtbHMuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Nhc2hkMy9hay1sYW5ndWFnZS1zd2l0Y2hlci9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvbmMtbHMtc2V0dGluZy5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Language Switcher","summary":"Adds a language switcher to the Nextcloud header for both authenticated and public pages","description":"A Language Switcher App for Nextcloud\n\nAdds a language switcher dropdown to the header bar, allowing users to change the interface language on the fly.\n\n**Features**\n\n- Switch language directly from the header bar — no need to visit settings\n- Works for logged-in users — saves the selected language as user preference\n- Works on public share pages — visitors can choose their language via session cookie\n- Admin settings — choose from 6 icon styles, adjust size, stroke width and color\n- Language filter — admins can restrict which languages are available\n- Supports 100+ languages out of the box\n- Compatible with Nextcloud 27–35\n- Full dark mode support\n\n**Requirements**\n\n- Nextcloud 27 or newer\n- PHP intl extension recommended for native language names\n\n[Report a bug](https://github.com/sashd3/ak-language-switcher/issues/new?template=bug_report.md)\n\n[Request a feature](https://github.com/sashd3/ak-language-switcher/issues/new?template=feature_request.md)\n\n[Buy me a slice of pizza](https://www.buymeacoffee.com/sas4)\n\n[Support on Liberapay](https://liberapay.com/aarekraft.dev)"}},"isFeatured":false,"authors":[{"name":"aarekraft.dev - Sash Wegmüller","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhMOMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzA4MTcwOTI1WhcNMzYwNjEzMTcwOTI1WjAfMR0wGwYD\nVQQDDBRha19sYW5ndWFnZV9zd2l0Y2hlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALWH7ZvlPPEFE/elovmjlg/yJCytOFvZfutW9tsF5HyXduIL14qE\noOYa3PoaE98G/hxOF5bgBKMSxPH4q75wFlXLaE/d6Eo9f9Rzbe3bGLbZp5OeCGYQ\n+p7UhCQAgRsNTkI38Et/O7c6TACka68S/CHXBgWEUG8mKV0uRysX4pBvIKNyE0is\n04a1yZdLs0MeB98mDHlJY4GvMDWsB/Up+7XWtkxlEHRIMJlCJRi/5T5Gm1Dx2Opu\nWLWlNgYhNJeDEBRKo96uqZF6ynjOWJ+ms/Z1zQ2tgsXOlFUB3cNXQ0TL5P1yquFD\nfY5F9gwYeGen2+53ydP6/KsIsR6Q6DvujMEbgsP98t/5N7BeISJNR4WoMrrNxXju\nZcNMw8xRTTmWtiOKLxSo5xnAoZTVWBf6dJ7e1eATtoN9x9i5d+l7ayXbMcD05kxB\nGeqrudzUX1+vr51dH+9vKyHulPxUpslTbCOV3DWtgGd5RQoY6CCXLKEfHlzurLvw\nB9+H8eyL6GFn58ZBkK+JoiVNlL38pQNcE3A/lkns27pMqYjP/T2PIs7xfasGOQMc\nv++aQncUCNo9b80+u89qS0Md134JPHg1zNaOiuuncpPqrvJ8aLvW/i+BT1hSRfsq\nFsUdCZ8OQNnDdYv0QtQoIfsGbM1MUW50NKD+YODE+QtHVO23OYos1r77AgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAEnAyaFtrjm8Nb0CRbSTGwRZM3QFZQe2xdjQl6v9\nrUCeueZeI0xKRMcWFIIYfiuOdudi9t/3RnuoFd/GqIXzs8tKlgSTQZZLTmWlxec0\nQZ3/C2+1fjzHUeV/wffwkSmwwhMjkQHXpn45Ytp+2kwTurJ3/wv72ka25K5GdTBM\nGQ4i/wHzht/QnbFb9pp98R61FECgeRx2Jd9eG0bgL+ygLR1W6ci/qWSnXpHpcyQ/\nZtYahP/Cls4fVbwt5cS1S5tVLWaKOdrdw8atgmIP1yuaQQiKfdg4qX7n/08KCR+S\n+GjHUlBOlobJYOyL0vXL8jvZDIcN09s9vir8/qpYkvHQK+w=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ng_backup","categories":["tools"],"userDocs":"","adminDocs":"https://github.com/dillardblom/ng_backup/blob/main/docs/HOWTO.md","developerDocs":"","issueTracker":"https://github.com/dillardblom/ng_backup/issues","website":"https://github.com/dillardblom/ng_backup","created":"2026-10-07T16:15:58.008990Z","lastModified":"2026-10-22T00:43:08.048485Z","releases":[{"version":"0.9.8","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v1.0.0-rc.2/ng_backup-0.9.8.tar.gz","created":"2026-10-18T21:31:44.399684Z","licenses":["agpl"],"lastModified":"2026-10-18T21:31:44.464748Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"Ukx1YybNwvZfyfQziEmMwaEnwa5DB9u6T77S6xxQLjnbTGGdi+RDePTc02FfQAN5Dq1x12t9iNxrK1FO6lzSF1kyVPjRtGQW6jcdwR7LXpAyA96uLqrIMs7Z7X7SGueQKhvKsDFHUHjUO/j9/ujtuZ2t+obJ35yN3mzZ2utwgsxMlXdsEKLkla1ntrd47xhAk26TE9gX2khewYmrP+M5q1zTHb7zWBgYXvwYG+DGyGYS0SVQsnjZzBWd3DQ858y2Nb6vWu2GZJ4GAmud+0beyYgfvqco+CzVqPUq5PH9uEXGJM6mLbqTxFchB0FCqyyPWHOausgCkuKW1NhP4vfCRuDdai5vm1iOaI58knoDHjD7hV2BqchfpBvJoecHHTpIVWTE6DzHDZZbgjk82HpYpFTy8Iz+5oOdPHOhJUm6z+jm56B9IMDR/31wBQ277KQMxD5Z0wfYj4nHO/sjGjFuTCfCRwge//g+qylidUxpjDc5HIvFmLF5NxwmjSdQsEZBKFumyM5zRNdls/yJiX6Fi7H5nG+YRXOGoeUkYWFs1+lIvg80mxx7xzks6k11x9olqMJlg8LySyOUEOIJsuOdnsXHAGDELvRy18Jufid2Io/yGNYeidcnUxr74gU9HevWNwFFHq5wVh+CagYq1WcWRrsWO5ZFv3eJszkhHrZJHpE=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.9.7","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v1.0.0-rc.1/ng_backup-0.9.7.tar.gz","created":"2026-10-17T13:38:40.675372Z","licenses":["agpl"],"lastModified":"2026-10-17T13:38:40.713000Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"mcIGHsGUU9CFDAWZwqXYROdznLo/PA/hpqiyU5RmegXIsfKVMnlP11/P2CzNL832sJYpCiAcOQIah3FuV7NHmt/EggEC1qVXScGdXg8ENcP993Z0KaDbGpXx0LNsW2QEGe7iuFo+e3EO7ksrCBXTC9Hi3s2WDnmV/QDRU9NQwsLdp0nqnNAuGFaBM+RPhkVfT7AFC3tZ3b9fSGVjZ+5Rc7sbbkpd5qSMusLMksgX490Ml+JAtVjKGH5u2Z8VZ3P9EdFkX4HrzgW0io0qiZEYYRSaSIPagr16NvNfoTrApgaougvqEBUHq/1IMew2rJODXjHFrzGmz+y/SuGsKFN7q4VvayDUScg3bwCg8bZIa/ZmY0orB3vGjW4AIDZqfM72oKW/Kh8ar4MJ9+xg3H8Iem/MSaorPBkmjjUZ+pCvgJ8vBfQPcJ/u017oHw3ZBmq9yWjuUJh33xUIxKTIKq2SX+zCZYFzyk7m7FojtVPnTTh5DdYtgPr+pHZ9RWICmOfOAoapnpQkmqaH43onpuJoi+T3eFYq2fspscWy9u0Cu+O9q05hF7KeCV2yd8Rz9G3t0UjJz92GsmyQV7hFPYO+/G3019Yt1u4QtDjzyopItAkLFA4CwUz3pShYJZtM9waAnWyA2wm5HRuSy45hX+DASiGccYStdIVEs//CF9wddJQ=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.9.6","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.6-beta.7/ng_backup-0.9.6.tar.gz","created":"2026-10-14T11:35:35.049110Z","licenses":["agpl"],"lastModified":"2026-10-14T11:35:35.108947Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"E8rRGDsDoJzTdbFLxYFXUIXAPfE2yPzWhRNzfRc/QhAcTNqSZn4i8x9/W6ujCEYOoASQfPxXxkx0q/1huEdpqX7lfttZYI8TxI7Kb5EN7zZSgmLp5VGGwlb47DTbZDKKA8QF3y2MLG0mh0GZ13claUGrLMF0EXTZTOAqW6wb/9hQE0xHy9yolhiagaBeZ5qGpulQpk7N7RMdLwQGBJJTfVIlcQ2Mpe4QjetrG/q04VGVhBrk7BovKIe9pMrb7V6b2IYG5aCBzfbLngbdt37GvdrrDuYDF1g/XT/nW4o+1MBoSm/a6PDpLq62jYWubCrwOWYOSKKgBXcLaXgUNnmhUj9Wniy2mf/smYiPNTLQKFqU8K2vtgEM5DRyJXAPinuk9DAo228sKHh12tEszfLl/aHQQ77te+IZHXzEjEzeTokVQjEsLus/Msr0GOoCF0W/LyoD/77Zy+Lo7gL30otp6pv2WerEUrgUsA53m0/EPF9XkMNswIOuJYmSSbDOZoZP0GxTlmn9meuPw5g1wOzabFfbPVjBDfFxT64VhpOghPgW8DvlabJWzljckAphvsiWrNjuH/qXTnVPwTvZ+Rf3O8EVzWUKied1tFs7N1ExthKdk6nTuqkX7w47s0Y1jCKKie55sxovRCkN6IlC+4T4F2cGDF3ItL/P9pYaAkj/nmE=","translations":{"en":{"changelog":"Bugfix release for SMB locations, with `occ backup:cancel` to stop a backup that does not get\nanywhere. Tested on a production instance: a first full backup of 151,021 files (807 GiB) to OVH\nS3 completed, and a backup to a Hetzner Storage Box over SMB that had slowed to 12 GiB in 35\nhours ran at about 5.6 MiB/s after the update, while the S3 backup was still reading.\n\n### Added\n- The list of backup runs (web interface and `occ backup:status`) shows the total size of each\n  backup next to what it uploaded: an incremental backup of 1 TB that uploads 800 MB now shows\n  both. `occ backup:status` shows sizes in GiB where that reads better than MiB.\n- `occ backup:cancel <run>` stops a running backup; `occ backup:status` shows the run numbers.\n  No new step of the run starts, the step in progress finishes (usually within a minute), then\n  the process working on the run (`occ backup:run` or cron) stops. What it already stored is\n  removed by the next cleanup. A backup started by an earlier version is stopped as well: after\n  two minutes it is marked cancelled while it works, and its process stops at the end of the\n  step.\n\n### Fixed\n- Backups to SMB locations, and to other slow locations with many packs, slowed to a crawl: each\n  30-second step opened the location again, and reading the list of index files took longer\n  than the step itself. Each step then stored a single 4 MiB pack, which made the list longer\n  still. A first full backup of 0.8 TB to a Hetzner Storage Box over SMB managed 12 GiB in 35\n  hours. `occ backup:run` and system cron now open the location once per run, opening no longer\n  counts towards the step's time, and SMB folders are listed in one request instead of one per\n  file. A backup to an SMB location that is not getting anywhere keeps running in its old\n  process after the update: update first, then stop it with `occ backup:cancel <run>` and start\n  it again. The new backup reuses the packs the old one stored."}},"signatureDigest":"sha512"},{"version":"0.9.5","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.5-beta.6/ng_backup-0.9.5.tar.gz","created":"2026-10-12T15:11:49.142603Z","licenses":["agpl"],"lastModified":"2026-10-12T15:11:49.184791Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"CfZdvnuDFAbtDhG6u+1I+AqZ+alc1zsq190YC6ezYI8IfwcwiYmvOrP7fsm4KSohOTRy9ynd2GgFnC6Jf9BT2Tc9q1tNTBRL+LskekrPRZGEci1dlhhlmEK8dC/F8Z0f3K9yfOuqXWmqjYi+f/1Mg71zPjz1ho98glAH4S/PPlnAD3rouTxNlKcQA+N+\nBy5PIFZAZftQcmljC3zDYzOf1/0Tb2hbQpsMfnQKTaEDATzerECBXeSztFuWHdAFjYoEeYkAPxE2bBhajEWH3a5jPnnhvvdPC/FghQ+h5YdS5igYPdvkKyJXy5sEkbiOqqCAnTa6LgJoDU9+e3iLHsQDKkOepeZ+Qm2dznc4CYRhD9Sq5h6pjHaQLjUpKNoLlz+ZP2ApY+2reXkxEBzgMhkHF+K3CH5LFZyg77jSRKSTNKcAbLzyyfBO+B+HyOo4Kly9vlT3tJarL6xzWfTwHqsQjKtAGxV8DyOx50vYov/AF7zceaCv0pupKbaKvTvuA1NrDyfZDc2rVAYVPLZ0M6JMqrtxxG0+Sd13ESqOJ/0PzSINaL6DbhMJgctY64lOVQV4iB4IcrFzEQj9gyTrnrLh08+nr08eGdvzZJbtZI1KUGtNmxjbw85NKgdSYIaW4rPFUS8TC8h3yDHvxThpdTlbXreueXAHH1ZObeDPpCGhOAc=","translations":{"en":{"changelog":"Bugfix release for SFTP locations and large repositories. Tested on a production instance with a\n1 TB repository on a Hetzner Storage Box over SFTP: a check in 5.5 minutes, a deep check of all\n316,529 blobs (815 GiB) in 11 hours, and an incremental backup in under 8 minutes.\n\n### Added\n- Progress of a running backup in the web interface and `occ backup:status`, e.g.\n  \"running (files) 68%\". The total is the size of the previous snapshot; for a first backup it\n  is estimated from Nextcloud's file cache (users' files, versions and trash) and shown as\n  \"~68%\".\n- Edit a backup location (web interface and `occ backup:target:edit`): change the password, host,\n  folder, connection type or name without losing its history. Before this the only option was a\n  new location, which starts an empty repository and, with a retention lock at the provider,\n  keeps paying for the old one. The new settings are only saved when they lead to the same\n  repository; stored passwords are never sent to the browser, and an empty password field keeps\n  the stored one. Administrators are notified of the change.\n- `occ backup:verify` reports how far it is every 30 seconds, and `occ backup:status` shows the\n  progress of a running check and how the last check of each location ended. On a large\n  repository a check takes hours, a deep one days.\n\n### Changed\n- Checking and opening a large repository over SFTP is much faster: the index files (one per\n  pack, 27,547 for 1 TB) are downloaded 32 at a time instead of one after the other, 114 instead\n  of 6 files per second to a Hetzner Storage Box (about 4 minutes instead of 77 for 1 TB). A check\n  of a repository with more than 256 packs also lists the pack folders (256 requests) instead of\n  asking for every pack.\n- App store listing: the author's e-mail address is shown.\n- App store listing: the homepage link points to the GitHub repository instead of back to the\n  app store page itself.\n- The notification for a location without a successful backup read \"No successful backup to …\n  since never\" when there had never been one; it now reads \"No successful backup to … yet\".\n\n### Fixed\n- 0.9.4 could not open a repository at the root of an SFTP location (empty path): its faster\n  SFTP reads sent their first request before phpseclib had opened the SFTP channel, which only\n  happens on the first SFTP call after login. Every backup then failed with \"No repository at\n  this location\". The channel is now opened first.\n- A check (`occ backup:verify`) did not renew its hold on the location while it downloaded the\n  index; on a large repository that takes longer than the hold lasts, so a weekly cleanup could\n  have started during the check.\n- A long first backup could end as failed although its snapshot was complete: when its final\n  step took longer than the step's lease (150 s with `occ backup:run`), the background job took\n  the run over, finished it a second time and failed on the snapshot it had already recorded,\n  overwriting the result. The lease now lasts at least 15 minutes, a step writes the run only if\n  no other process wrote it since the step loaded it (in one database statement), and recording\n  a snapshot that is already recorded is no longer an error.\n- `occ backup:verify` on a large repository failed with \"SFTP connection failed while opening\n  snapshots/…\" or \"Not found: snapshots/…\". A Hetzner Storage Box drops an SFTP connection that\n  carried a lot of data (some 40 MB) and then stayed quiet for a few minutes, and the check went\n  quiet after downloading the index: it refreshed the local index cache, first in 29 minutes (a\n  pass over all blobs for every pack: 27,547 packs, 400,000 blobs for 1 TB), then still in more\n  than 6 minutes (a database transaction per pack on PostgreSQL). Nextcloud's SFTP storage keeps\n  using a dropped connection, on which every file looks missing. Now:\n  - an SFTP connection that was not used for a minute is checked first, and one that turns out\n    to be dead after a failed request is replaced, once per request; uploads, moves and deletes\n    are only checked first, never repeated;\n  - the index cache is written in one transaction (27,547 packs in 11 seconds on a test server,\n    against about a minute row by row);\n  - after a check the cache holds the index files as they are: before, a blob that was in two\n    packs was only cached for one of them."}},"signatureDigest":"sha512"},{"version":"0.9.4","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.4-beta.5/ng_backup-0.9.4.tar.gz","created":"2026-10-09T10:30:57.727289Z","licenses":["agpl"],"lastModified":"2026-10-09T10:30:57.767840Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"rIgk5zLqXMgNXmZ2Zx0Euf4mHT07A0trt0SwNjDbjRzlqaxmPCTKd8xSby5HMmW+KJ2LBQwf5AuidhD8GFX3lGjXw7AZ54sGIL4YVQp5NRAcqTxiHKgUlr9vW6rnlhUnqRCtAhxRA2FBMICdJwFuiytVpxdmxe5+PUYnB3uGRsJzlsTnT17XqjzXAN30cs/UsEJ84/XOXrXDxEorOZ3VEhbRdl5ZVTfJS6nqiMMxoVMR7opaJIXGbkWTXCsI7XUTqT4Nh+4arDOLmbpgGyinJxBUU4jYxCaeROJb0JSkRY19cjyXwtQz6f+RqA6Or5AR/U7Bim35DBvjTTNbkV9DWyphB5MhZN37/jK128DResmkePDhpZJ8T0tTA29AtLjYEBvZW+JQt9DziiECl0R6rYMmYH8KcqbDxkuzWR+qefjBqT4uuMDed+fw3qCw4IBO/VKNTuVAy2k+NNcNuEZ4wF+Y5AvQHUWWwQnyk5Wa8mZovITeKFVSdkxKms1K4mdjxc+8Wt6aut1YyknHNABoIVJu83EPLtbPuZI/6tysrBgCXBNREC5JGc6CioBf8eVhKtxOPF8lNjfUogSNRMIPD0ohjDFeYACXtppzgL2g+o03JEqFu1+1a7yLUfEhur1yCEVrvuzbtF1Vcfdl+cRVX0bl/a4FkfuNiI/5LlfoPks=","translations":{"en":{"changelog":"Bugfix release: faster restores.\n\n### Fixed\n- Restores and `occ backup:verify --deep` fetched every blob with its own request, so on a\n  remote location they ran far below the speed of the connection. The blobs of a pack are now\n  read from one open stream, in the order they were written. Restoring 86 MB in 202 files from a\n  Hetzner Storage Box over SMB went from 0.78 MB/s to 4.2 MB/s, the speed of reading the packs\n  as plain files over that connection.\n- Reading from an SFTP location waited a full round trip for every 256 KiB, whatever the line\n  speed. Reads now keep up to 8 requests in flight. Restoring 1.97 GB in 500 files from a Hetzner\n  Storage Box (47 ms away) took 694 s before the fix above, 499 s with it and 142 s with both\n  (2.8 → 3.9 → 13.9 MB/s); a full 51 GB restore ran at 13.0 MB/s. When a server error\n  interrupts such a read, it goes on from the same position with Nextcloud's own SFTP stream;\n  after three failing files in a row, or on a Nextcloud whose SFTP library lacks what this needs,\n  only Nextcloud's own stream is used.\n- README: a WebDAV location on a slow upload needs a higher `davstorage.request_timeout`."}},"signatureDigest":"sha512"},{"version":"0.9.3","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.3-beta.4/ng_backup-0.9.3.tar.gz","created":"2026-10-08T19:52:27.876548Z","licenses":["agpl"],"lastModified":"2026-10-08T19:52:27.933287Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"kS2ho2e4/al4PLOrV2m9Jm50vM+0nNtnzVOZe3faQl7uWT3knhppgAM7enMnlf4UspGE82oBslqaV4Ry93sx0J6eXSpF1KyHVoPsuLbe3Y1OiDRAhoJR3idsfUDTT/jZo11850/UCAlazpAl7z0/HdAsz8YcN7UKXND34o/4pOHB2Z5K71AV0K3k5ZYSjtXEL0m9CsrhNvSknHeMfEeeyZPY0f0nY7S9sEfCQVWEHq7nsQCi/w+YLJEfD3A0HiKI6F5iAKBQnaMmuyfQTWUAgI7+O6sOUZRVltUVByLaYHQXf5U7B19KhpzHBl2QoVw348ra3aQHhEYW9dAR9SQnVqy9roRygzrCz8075eaVgVc07EzAIIaiXNamGWR7cL5wMk3tDCiO9dt2p47totPMvoY0bcxrkQDMTp7Yfi3xP4GpwHa9OGmyQoq2TJ+rmbSMEljoYxm1SQkWq7dutmAXOmIEsgr2nLQAVS+3Pyezzh+yAQ2+3ExYp//ppsvvSEZUGSYgN66z3zhCMYiZQL7+fqqBfv1azJyd6lGJmUurEhivR3TSGUGBJ9nd70/2zP5FifDk7JEWUlOqWShc9EGXo8PiSX0JKi2WNVZ1Gk6/exYOhMPMZrZ7tip8dotDjeUloxizjJFMOvk2YQIYvgtqRhYmvEBwUHLyL6MOpkd2f2E=d","translations":{"en":{"changelog":"Bugfix release.\n\n### Fixed\n- A backup failed with \"cannot execute INSERT in a read-only transaction\" on PostgreSQL as soon\n  as the database dump filled a whole pack (32 MiB): the pack's index cache row was written\n  inside the read-only dump transaction. On other databases that row was rolled back silently.\n- Backups to a remote location slowed down as the repository grew: every backup step listed the\n  repository's index with a round trip per file. Over SFTP to a Hetzner Storage Box a 60 GiB\n  repository already lost a large part of each step to it; backing up continuously\n  (`occ backup:run`) went from 45 KiB/s to 5.8 MB/s with the fix."}},"signatureDigest":"sha512"},{"version":"0.9.2","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.2-beta.3/ng_backup-0.9.2.tar.gz","created":"2026-10-08T00:18:47.297162Z","licenses":["agpl"],"lastModified":"2026-10-08T00:18:47.359139Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"qWP4AIAXJNJCYkJUCu2VFz4g2Xoz7Iyzf5WkmZB5FKXk6SPyvknfPhdlTDvoataRoA+gZZ7XntBKgH96Q0kEbq3FqE89HwMYmPK22aQLEVo8+XudHuBtI5piE8sIbJQSYVUy/Q5LsU9yiWvbvg7hM3vcRCtHz3XeuiRLH+plLCnqM+TRj1COFi2jeOUcJdwrjJmAxsJVbsQKR4YOrPggXa8QzzXukzFo0ujMWnS7f4TLhpeABg/U8SxHoKXy1qy32YP+e27xPPjFBv0ZiAwJyk/f1HGLdURSw7Od1XNfN7sCuHbQWWivTrZozM0E/CMjbiFHrmiCI7iY6jqfZJLBLRxwd3aRsJr7CgxPLYsz6T5FzpTv9ynfpkv6emPrXMLhsHTudshGMTXcdvWvELc4CIfT6MHSbSpwW7Ei+w3UORWFSE4Li3j9JHGVkQQ20oFTup/grRLuEx0iuq9qG6OnSjRaf6HhwypLlXKR4UJgtBuAaG6cDtZIL8euGwcrtT7xmBhcI/AXLOjjCrgpc9BH25ql6/V8a9hW39klkDmOrUKjsxCEalOaJK9rFuYXymi6h1t4zkfHmv5yFvtyvJiG2ZhL1d1+22y5ggIiLA4F3BVbWJi7j7eMzb+2VGB01sBYJzy/VvcqTKMS4w0RtxahrF7WBYDCFi9c04mJgM0lcAI=","translations":{"en":{"changelog":"Bugfix release.\n\n### Added\n- README: notes on using a Hetzner Storage Box over WebDAV and SMB.\n\n### Fixed\n- Adding a backup location in the web interface failed with \"Request failed with status code 403\"\n  when the login was more than 30 minutes old: the form did not ask for password confirmation.\n- Settings page: the \"Backup and restore\" / \"Settings\" tabs line up with the sections below them.\n- Backups: the runs table scrolls horizontally on narrow screens instead of running off the page.\n- `occ backup:verify --deep`: a blob that could not be read (network or storage error) was reported\n  as \"corrupted or tampered\". Reads are now retried, and a read that keeps failing is reported\n  separately as unreadable, with the error (run the check again; if the same blobs stay unreadable,\n  their pack may be damaged or truncated). Only a blob that was read but fails decryption or its\n  hash check counts as corrupted. Found on a Hetzner Storage Box over WebDAV, where the blob\n  turned out to be intact."}},"signatureDigest":"sha512"},{"version":"0.9.11","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v1.0.0-rc.5/ng_backup-0.9.11.tar.gz","created":"2026-10-22T00:43:08.034234Z","licenses":["agpl"],"lastModified":"2026-10-22T00:43:08.099289Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"XkCIfwRrMptJ5kCjEcQk7v0AQYg+9NZX8b5YVYv+WITT5LAiivClBtMm9a1fxwvCxr2tw2MF4RHiAlcyBLMRq6iIaqrIQbhnydQ+fRWV9MDOcup4gfp/4YUGETNHOlQC3p9tPE2/sGXUrrU3ZVy8H/QWkio4f90a13l7yIRg2qLpk/FodSQYT15y79i2oRaxTenglnWGYzNdQwiAMhsczAwC0tqSpaTagcbzN7H2sVWO0AhhFlfQpN+vCVmvIVe+E1bho+/C+kgzqVbxP21GcUVTmML5ABbzwdy4AzieWRKUUsBCk9QkzVcqbp6dHSydFW0Kb7dj3t8u73bwyUW2CQ0RqPcw1dxlaxhBqq3bVokIUclkvsnOpHoYT3xy29Y991UafAGh9b42I6W6yTqdYWQ9RMMgCgr0CcgbP3cjn1Ui1/i0yRHDfFWwCbgShEY1nbYqnC/6xJtETKMWISytA7kMOw5UWVxM6gofr60uw5Qp2pgGFIPXM8bf/FuBVZSmAXhmQm4CEAsoCrzuohte6jbBwoj3j9ykm4y7j2bajGHohP7pZGKDGIskyK2IJOoPhZu5vj4rmdIp9gUHuZcq/wVSLm9BECxOMZ/+nczNtE8z5gCOE/K66vZbGQcMDdqMesFQOtZyvkZ9GzTP2jn9y3fr4UslNGD/YjS7cT7xyPM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.9.10","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v1.0.0-rc.4/ng_backup-0.9.10.tar.gz","created":"2026-10-19T09:42:31.425521Z","licenses":["agpl"],"lastModified":"2026-10-19T09:42:31.474599Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"QmmHc4vNHs2Dt1Emb4aVxumc15byAeoYQcg6HvDZBmhMiJ+GXaVC0n9gMvFd2lGwoMfkc98uquxUpyOwE1z1FtB3PRWWCFBa/oKiQg9uKEyezUSnZj8EG4BTO+/C+AeUTpVhXN2cjLihYNJ6MJxqBrbfmnag6TZk8Dsk49FxHGUMt/FoKLn62qLih9yUmG/cHCjV2aV5Uywqdfa9iU2OGpy4hRHAXQYWnla8+S/QA9lsGgEA7/WPBOIiFRLT+12c2IF1WKIKzOVO6U6F3Rq9cq5DqOdrVNQUPt0vWZXiNIlRKY1wChgxcL+Uk/cEhRNSRmT+EBJ/aSl3XDPa0TIcj+xAzn6OqRnRpXELNb2OQgz0pqokP1fh877d44zETAy/Pk1j51R7Uxud4Od2U/cYWjKZJfwyXKeZqXhW+4XR9/4AcIPqHObQcbm6oS4djO0974E7XTil9nCkq4ZYj+1adE+eZkxDv2lCM5P7zlkbu8tyzDpxB7Jvb1hWdPMPZQeFiBkyrmGKqF7rRWaOWXeU+ugFXH2E/BMBgyKMrHeky79WD46m1yYKHACSXclBvUUFxnSF1UZTrYo201R8Ox+5zAZ6UjEnx/YyHKwi+EPk1cA8YkF9BfzXpUluCRXtybwMhGcSByltOIrjJXPiMHPiUKofCTwKNVsFutbXxUbFX1k=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.9.1","phpExtensions":[{"id":"sodium","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/dillardblom/ng_backup/releases/download/v0.9.1-beta.2/ng_backup-0.9.1.tar.gz","created":"2026-10-07T16:20:38.851604Z","licenses":["agpl"],"lastModified":"2026-10-07T16:20:38.892472Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"hDMGo9YLxKWKGK3FP1CAU+OJJjSq0WpSd47n+7ZhnRAk2KqTRBvufWbbR1tyWOpkXny4yORYr/ts5kKKGmSZZPOuC8kzOK2i/pW5u1gD5CPq9MJbA5hjHeBvCnY4J5f7I6UWXYzCJnbOVjk3FToRGjhsObArjGf+pue/PUzvDabfuY6cLnMo2b72HRsNGnaBQGEZm8B1d2YxWP+wUcV35XfGEmdeZa4yErbY1Nh5rVBA8RQu67LRDeBcmqecvhhCitsURne77/2lNItPAgkediDqbvon3XUnDd5tyhDXV0YPKY4YBuJ1r1Yq5eIzSYRvBgoFfEmIF2cTs/9cgpcsNnJn/GYRQulup/i/bvJJMOmd22xMkDqmSCuo1VBZxPq2C/Tyz3zh+XE2u0WXH24lN0fN9dlNbNsbwHjXkYjK3tKFQ0QwoxUV9ELKUg8QAQPn47h4U9EtxCpKsbJw1TJ4XxqP2dBMmnSoQNWIyQr8dQlaBpmYmZRyYa3SPmaqxAemRslPS83A5zMnJ378ibWNqOATYR9dXVWjykNax5dDRPs04xwOFfFKcGgRevVzsGNjGcS1Qp9Lkd9lEwCcUNZ0UKXI37exq8xV3QBDYmi0Wfhge6QL1MvPiafdpyrwL/m59Vrr+4mOibewtXcPxE3NLt5785iMFo/1ElrXAE6a/Q8=","translations":{"en":{"changelog":"Second beta, the first release in the Nextcloud app store (signed).\n\n### Added\n- App store listing: screenshots, website, repository and documentation link in `appinfo/info.xml`.\n\n### Fixed\n- Restore: the \"new folder\" option showed `\"Restored \"` without the date pattern.\n- Restore: the restore-point dropdown cut off the time.\n- Settings: the passphrase actions are on one line instead of stacked.\n- `docs/HOWTO.md`: the SFTP example used a non-existent auth mechanism (`sftp::password`\n  instead of `password::password`)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RpbGxhcmRibG9tL25nX2JhY2t1cC92MS4wLjAtcmMuNS9zY3JlZW5zaG90cy8xLWJhY2t1cHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RpbGxhcmRibG9tL25nX2JhY2t1cC92MS4wLjAtcmMuNS9zY3JlZW5zaG90cy8yLXJlc3RvcmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RpbGxhcmRibG9tL25nX2JhY2t1cC92MS4wLjAtcmMuNS9zY3JlZW5zaG90cy8zLXNldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NG Backup","summary":"Encrypted, incremental backups of your Nextcloud — files, database and config — with restore from the web interface","description":"Back up your whole Nextcloud — data directory, database and configuration — encrypted and\nincremental, to storage you choose. Restore single files, folders, a user, or the whole server from\nthe web interface or `occ`. No shell access or external tools needed, so it also runs on Nextcloud\nAll-in-One and hosted Nextcloud.\n\n**Where to**\n- S3 and S3-compatible storage, SFTP, WebDAV, SMB, FTP, Swift or a local path (NFS mount), through\n  the connection code of the External storage app. A location is never mounted and never shows up\n  in Files.\n\n**How**\n- Deduplicated, compressed and encrypted (XChaCha20-Poly1305) on the server before upload, streamed\n  straight to the location: no local copy, no double disk space. Unchanged files are not read again.\n- Database dump through Nextcloud's own connection, in one consistent transaction (PostgreSQL,\n  MySQL/MariaDB, SQLite).\n- Runs in short steps from the background jobs, so a server or container restart does not lose a\n  running backup.\n- Daily schedule, retention policy, and `occ backup:verify` (optionally `--deep`) to check that a\n  backup can be read.\n\n**Safe**\n- Up to three passphrases plus a recovery kit; the passphrase is the actual key.\n- Deletion delay and append-only locations against ransomware or a compromised server; S3 object\n  lock supported.\n- Admin notifications on failures, stale backups and changes to keys and locations.\n\n**Restore**\n- Files and folders into a new folder, merged, or replacing the original — through Nextcloud, so\n  overwritten files keep a version and removed ones go to the trash.\n- One user (account, files, calendars, contacts) via user_migration.\n- The whole server onto a fresh installation (disaster recovery).\n\nNG Backup needs Nextcloud's background jobs on system cron (a real cron line, not only the setting).\nRead \"Known limitations\" in the README before you rely on it, and test a restore. Feedback is very\nwelcome: use the \"Share your experience\" link on the admin page.\n\nDeveloped and sponsored by [Ensembia](https://www.ensembia.com). We can offer (paid) assistance if\nyou need help with restoring a backup after a crash."}},"isFeatured":false,"authors":[{"name":"Dillard Blom","mail":"dillard.blom@ensembia.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhRFMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTUwMjE3WhcNMzcwMTEyMTUwMjE3WjAUMRIwEAYD\nVQQDDAluZ19iYWNrdXAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+\nxWHUSgV38nZ31qvUns/hEprVx3nnH7QW6RjvFvtsVZswGQc53rATRmv6oL0sMGpi\n3/zY0tnpbNFGNReDum6Epo7LpPHDiHvxV7lcZv4shixKQObJXBzxIz0zrj2JI387\n7WZVEbSR+2st/jKvOnN4g3dHRExL+61YNN9bRHgcwFfMyA6aTPIqW2Kfau08+kfv\nFYaJZVVB8672FSSbYiLREq7TqOUfySBGpPmp0QOxVO5IhdT+qsbcNYMIEYodv5VJ\nTOzpuLr/hu3z2/RcBPE+vSpFFfTKF/OHrSQNAG76kZKvlzOwS0+mADoRRmrUiv45\nxfn61LIeWw6sZ77Kpb0XVKHfy5O36uZHpYiIcggWfHfx6bA7XxuKXMRQ1o+dUP60\nfn524fM2Lhpw0G3nndlgEHLxlrNYE/4QiG3+O+o/ET37zdWj4k3aQTqslNTj3eb7\nfagwqVI+P66DaozhsET0O0ry2kWDpBTFvkg8jQOzrO2FMQad0b95iJbcOpyL5R4R\nPg2Fg63onoUxmJ/y4ulG+959JAoEywGlYEm80pssBoLJLicsUOHfqa2lHq7oXJXZ\ndmDHaqJxzdYasEloukJCyaIhBhHvhwJlopuCpenh6qr8ifMhazZe1aQE0AFfmUWw\nbM0/u6QGYXQGOSLuATnu6BX7IICIeC1qCRMYNgfEzQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQCUIL+bNXzzcdEQEe/BVPqXuLfUdVle3pnjIvg3w+vYpOPFay1Su3qm\nT74SSkLISReodbELpnUdVquNOAA203bJXebi0Y+rwsO5AJaMDQb8D8ls0Mw/vKPR\nWBE5WBq/lvdnKihJUnv/QWurbVfqsKMBi08I75Vo5rC/ikufdWtDJabY+Uehrxn7\nb1oRaOEohshgJDDf797EhF8PrbbSD7ueb2BZ3qRqVSjSCJTzkUa9zAMmFsE0Vd3c\nbaEfOJA7B9djX6gTv703IZVPtTdNJ1FllvfA7MAq/0e5zcgMusRPr0rtOGz+CLn5\nNjrbatlBSDKaFxTj6ZeN5PDUj24fz6RZ\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"learning","categories":["organization","tools"],"userDocs":"https://codeberg.org/andremadstop/learning-nc/src/branch/main/docs/MANUAL.md","adminDocs":"https://codeberg.org/andremadstop/learning-nc/src/branch/main/docs/MANUAL.md","developerDocs":"","issueTracker":"https://codeberg.org/andremadstop/learning-nc/issues","website":"https://codeberg.org/andremadstop/learning-nc","created":"2026-02-19T14:46:29.478114Z","lastModified":"2026-10-15T08:26:08.744528Z","releases":[{"version":"5.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.6.0/learning-5.6.0.tar.gz","created":"2026-10-09T10:53:48.106844Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:08.789986Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"QqfTt1TeDKTUved8X8Dcv5vLVqimMtZy6VYots+lshbLgmtW4pBxjKtv/Xj2FMn8rmJnIXe1wvl7S4L7kwFraAHMrFxFBhaPG0x25cRWeL/61ukwAxscqgGBp1BpViWBcXsEcS/+xWZXSRklusg0BrCdWQAMu9xmMgeXwEs1L5boFkhqQ9WPOQ+MZj4qs+1iRBwuS6eK+O46Al5kmngQtjQT/1cq59s772yP+8sX2kR1AVhViLaxqIt3dPntDE27CfaKxCBH4jOrkPqJaDmv4WH6VqAGCXM0cClJBgQKwVaOHe9FYJk2ae06zaHoXLggLWvhUAr66m4DjpcUsozd+61wZX+nhXpvgLKvgMxMwugzmw9Ju2WqV3o6qbCOaYuOBXO4kDa3E1zUKYlLav6llzfTL3jccwXwaf7D2Yb+dJsaPO30/2zFUQCE5ws+gRw0ybDDIF/uEFtC35L9VE/9ENDqhUUq5VAZ8xdJ85e3wIIhSmIz6x1e5M+8C0xeUiX3mlX1BJaWHaFSehP8h6ci1Jn52pIgcpMXWfCMOuipRTnHzBTZcIdWJ+u/zcjDF9wf5Rg/HgOCSNDtDv7wq/WK45so5TanGuhPQs7sN3V2ruECYc1O6Hu3x6PqsHEka2++1rG0jjV4Lc48V91B++OJkAKYpq9DB2/jw0HlU6aHq80=","translations":{"en":{"changelog":"### Added\n- **Scenario / info text before a question** (Codeberg #10). Every question has a new optional\n  field \"Scenario / info\" for the case, situation or background a learner should read before\n  answering. It is shown above the question in training, exam and exam review, Leitner, the\n  smart queue, the daily challenge, duel, gameshow and adventure skill checks, and in the\n  question list of the pool. It is plain text with\n  line breaks kept, up to 10 000 characters, and it can be translated together with the\n  question. Because questions are shuffled in every mode, the scenario belongs to the question\n  it introduces: for a case with several questions, give each of them the same scenario.\n- JSON import reads the scenario from `scenario` (also `szenario`, `context` or `info`), JSON\n  export writes it, and `occ learning:import-pool-json` accepts `scenario` per question. A\n  scenario longer than 10 000 characters is never cut off: the import skips that question and\n  names it in the error list. CSV import and export keep their fixed columns.\n\n### Fixed\n- **An existing question with two answers could not be saved.** The edit form adds empty\n  answer slots up to four, and all of them were mandatory, so the browser refused to save\n  until they were filled or removed. Only the first two answers are mandatory now; empty slots\n  are dropped on save as before."}},"signatureDigest":"sha512"},{"version":"5.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.5.3/learning-5.5.3.tar.gz","created":"2026-09-25T10:44:23.935168Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:07.060301Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"o8yBMrNyZAgnKOXnfigFnYCVUX3xjMbPbI1CLqQBcIOteYVfDOdQky/G0+BtQ4u3P5UD0Fe6bBhqfJQgrzsv6fOUxDg8lUQ5XbeC3GIftD6mgGi2JR3tZcxgLxEyXdCaMyzmHiT3FotUiCqbR7uWFDp5/UAUrpgxk/8zew7px3lrH9vrfXnGNOHDWib74vIH5Sjz1HFYXJpAyuhaFUuyYvREB8+r4ZGHjG5M/RZSaYk7uQ9r2+JvDUx+6BRCG8FOg+chwkmio7C7fMcHPeCgOxoaOlYo0or0ABpRNE/E8OUryh6z288ToP9ygqTX/m2VWWsIMGo1R21D4IYgSWy2T7g2LeWlrsg8NBbCOxJMR8KuQ4hO3DP7sgEz7Aq3RDHCG0lz7b31XV1ayfIPUERC1eO33G+7n9PF1fBR0HTYd0izOiOvYQENI4NuzwWNwZiiVaawMZbUZUwxKtSca6jrcBqnbv6iYwVKrgfKIb7BSAQ+2Bg1Dja7fy48c7eY0YGn/hX4jYWS7+HprjzBf8FCxruPha4ckCeiLNOtPxzTwuxBDOY+slYHEg6Bvggv0Dx3xpoAl0D5WBpNxZjM96dMIOGelrGNLB2WLWUg0q2QA4hUQIVlBOKRjEC4uMopC1+YS8z8pAWVFIj2mV6tICTQu8VXGd6i7NMsqUKm8XTEAc0=","translations":{"en":{"changelog":"### Fixed\n- **Passing a course and issuing certificates failed on fresh installs.** Every compliance\n  event is chained to the one before it, and the chain starts from a first entry that the\n  database update was supposed to create. Nextcloud skips that part of an update when an app is\n  installed for the first time, so on every fresh install since 5.2 the chain had no start:\n  \"course passed\", issuing or revoking a certificate and completing a mandatory training ended\n  with a server error. The first entry is now created on install and on update. Where the chain\n  already holds entries but its start record is missing, nothing is created automatically,\n  because a new start would hide the gap; the admin log says so instead.\n- **Question translations did not work on fresh installs.** The translation tables were renamed\n  in 3.5, but the rename also ran only on updates, so fresh installs kept the old names and every\n  translated question failed to load. The tables are now created where they are missing.\n\nInstances that were updated from an older version, rather than installed fresh, were not\naffected."}},"signatureDigest":"sha512"},{"version":"5.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.5.2/learning-5.5.2.tar.gz","created":"2026-09-25T05:08:01.230528Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:05.405174Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"DYtj4ULUbhWv/Own6XC4wfIshuUj8ND/dLsFst2krSvsBCs/c/lfxk81IpNAFtp5nCp7ihdBciuLw7XuQ7sfKUImWrXkE0sY2V38tD1XJWVFOpXIGBp0iDCVlxzUPFTWUuH+Ga9ItGIhUfIricBT70nkbcCN3FhTTLQqAYb89OsWHzV0DKiYLFTA3FD3ubeCahJBItQkfK0aGb7QZMKE8C3yGwAhPjFHDYXKyqiBlwbUVzjOTK7sZoWFkamh9ze9f7KwHZnvSEwUdnZmUyftTZMrJRycsPVA8cwuDNubH0Mbhw5/KMyeU7Hm65M2BJFAVm/8QPnaTSTf30RBNwi2es/DJ/S5IrRurWLVFvSXlEpAmHG82CDeN+sq6b+EF3NIjzBA8FNnfmbfG95rUYGImV9468yHSGkPkiyiMBqRj+efNImeUlhxeUdIXqMhVzB7DOFo4c3DzieKsKurmdcKCkoNCoEzh2Qybl5awSuSV9RUL5zpYVZ26FsH1hRLLu9yZOmDYHagkPFXw5aG6zazn3qSSRnikLI4kxrM3LtFXTUdlx3CxCcXczsWLkDL++nUMDxJP6p9LsbBrgple1tgGdfx5sMdKOIsJQiYF2gBJKrvcLjyji1M0PjJIJjOVpAuda/tdgcRY+1EYzkdcvxogW4Mh3Me45cLUK/EVYbIQ1k=","translations":{"en":{"changelog":"### Security\n- **The weekly study note was sent to the AI provider without consent.** A background job runs\n  once a week for everyone who studied in the last 60 days. It sent their weakest topic and the\n  questions they got wrong to the configured AI provider to write a summary note, and it never\n  checked whether the learner had agreed to AI processing. It now skips anyone without valid\n  consent before reading their learning data, and the note generator refuses on its own so no\n  other path can bypass it. This only affected instances with AI enabled.\n- **Outdated consent counted as consent.** The server accepted any stored consent version; only\n  the VirtuProf chat window compared it with the current consent text. The server now requires\n  the current version on every AI path, and the VirtuProf chat and the course summary narrative\n  no longer use their own weaker check. The course summary narrative is also rate limited now.\n- **A failed consent save was treated as consent.** If saving the consent failed, VirtuProf\n  closed the dialog and sent the waiting message anyway, although the server had no consent on\n  record. The dialog now stays open with an error message and nothing is sent until the save\n  succeeds.\n- **Follow-up requests are checked too.** Chat-memory compression and the pool generator send\n  further requests after the first one; each now checks consent right before sending. If the\n  server reports missing consent, VirtuProf asks again instead of showing a generic error.\n\nA larger rework of AI consent follows in 5.6.0: consent will name the actual AI provider,\nthe consent text will describe exactly what is sent, and everyone will be asked once to confirm\nthe corrected text.\n\n### Fixed\n- **The app icon stood out in the app menu.** Learning used a coloured icon where Nextcloud\n  expects the same monochrome glyph as every other app. The coloured logo is still used on\n  certificates when the instance has no logo of its own."}},"signatureDigest":"sha512"},{"version":"5.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.5.1/learning-5.5.1.tar.gz","created":"2026-09-24T11:48:54.673816Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:03.813864Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"uJxsLjiKbsbrXM7v7CAn0FEqCEubH+3VTYxJgBTLm0Z4TxBY3sgcSV9+dDeV24fiHYL18f4tzB+013jku9suSZ67tZs+0cvzzhP77wy2LcRrV4VI6yFFOtmgS2HU+bc07Lrv/nIQz0HtcLfZjbenU1FyBRSUpWFGysQ8vuEabKS8m2Jneto113Qcty0YOWGqGoBI/MoQiaRlqM8XcF4kRodtPNmHxlGXUqJP/hO3tZP7WNIVBeDNz4p7TlpPEfjinuHniO2Gc6tmUK4b1B9BiCFzgXbxgV5ylzDgrbwbiqb2diqPezQFUaoIzcPshhR9602h1sL3BWi4McyvvDuEccXIxFLlvZYlH/O85yepBuzyKNsXquId/axgnKOQUJYWL0jPnat/yyUa+7MSRGVsYYro8xrVG4wGZD2sxXzDtolNd9F/gsg+4OR2lU5hUKOfBTuOp+cwQ/EXwX3wcyc7QszOvH8EDN0g24gC9dlB5Cs0ge6cybEx92RoWkE7bHf4CTe5FBhvSu+eRg1CTky1QS/x8NNsLbT4fDJvoID3QSwo+sj8Z9jUMN0gCT1qhu0iiXv3g0hQmnOcZhFwnmjoVNIw6HxNZlm+SZ4ceWjR4g/QZcPgmb7i0uVwR1gkBqJ3HOwc2fMh9VoEFqZ93SvRbTbB4t/eeSok7PEip8khvgY=","translations":{"en":{"changelog":"### Fixed\n- **Tool selections were saved but never applied.** Reported again on\n  [#7](https://codeberg.org/andremadstop/learning-nc/issues/7) after 5.4.6: \"regardless of the\n  selection, all tools remain visible\". 5.4.6 fixed the settings form, but nothing read the\n  setting where tools actually appear. The course's learning space ignored the admin's global\n  selection entirely, and an empty course selection (\"every tool off\") was read as \"no\n  selection\" and showed all eight. Both levels now apply: the admin's selection, narrowed by the\n  course's. With nothing left, the *Tools* tab disappears, and the dashboard drops its tools link\n  when the admin has switched every tool off. After saving in the course administration the\n  learning space updates without a reload. The unit tests for the learning space had carried\n  their own copy of the old logic instead of calling the component, which is why they stayed\n  green; they now test the component, and a rendering test counts the tools a learner sees.\n  Verified in a browser on Nextcloud 33.0.9 with MariaDB 10.11, before and after.\n- **The pool rules dialog showed every pool as required.** The server sends the flag as 0/1,\n  and the dialog read 0 as \"required\", so the checkbox was ticked for supplementary pools too —\n  and saving any other rule in that dialog marked the pool required again. Found while adding the\n  option below, which depends on that flag being right.\n\n### Added\n- **Practice exams from required pools only.** Follow-up on\n  [#9](https://codeberg.org/andremadstop/learning-nc/issues/9): a course may hold supplementary\n  pools for self-study that should stay out of the exam simulation. The practice exam settings\n  have a new option, *Use required pools only*, which draws questions only from pools marked\n  *Required* in the pool rules. If the option is on but no pool is marked, instructors see a\n  warning in the settings and learners get a clear message instead of \"no questions\". Tested on a\n  fresh install and on upgrades from 5.5.0, on MariaDB 10.11 and PostgreSQL 16."}},"signatureDigest":"sha512"},{"version":"5.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.5.0/learning-5.5.0.tar.gz","created":"2026-09-23T13:09:46.638345Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:02.243979Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"QkyHXEoC5fAsNey6cnMRGCQpGB28CVQZ/54fNM1YfcAZEzfCZD8MoBlqlqq0ZhQli+CIHm+Te6xRdvA1lCrcnLODGjejcTgq/6+iXgcuSvJgd7Ev7IDm2ltRGUyq6j9DD3u85EfCvI01h37mIAWLYYsLBUP2C54qt9jU0rgyS0n0E1cp6r0+uGtd0ty/dHQwAycEmvlhAmyN9eOQXphbMK7sIItgBCnW0ykXEdxgKhCkpgcmMqxpSyrd1Ub4/lcLVoQ2JPxWun7/E9JVhPZ6XgpaRrrHlsAx0iQ/KBoKnT33jmGntcaz72vXBQZt5qWH3qkZoxinfpJvUDLE4VjvzMPyIHFqOBIZqA+HvCYMUnEpKAEuLy9AEwewLEnXqGYAH+CqpAojOtjaPHtWzd0oI8+CFEYt8VTfZS5ZD+ueMbYl/ARtq91MozvwjggM1UHfzeTybtnlJC77yYMxeqqQZtSupAS/GUboSIG3wu3PfD+x1X7PW5rJo+m3lR7vJ4Oz8SEIPNlt/s3jX+5lainSUAtOfYp30fCR0IcmkzmbajL+m7oBIqWQdSvxFqTUOr2+SmOmVERpXTikDC4X0XXe4cM1pbOiGolQqhc5RI2FC6c7aYcOT/rple7DLkKiT/I76LyqT7c/SE0NpJXv5N3DDAmuiAMti+PlreU3TiuTmSU=","translations":{"en":{"changelog":"Requested on [#9](https://codeberg.org/andremadstop/learning-nc/issues/9) by a team preparing\naviation radio courses: until now the exam mode assumed an IT certification.\n\n### Added\n- **Practice exams per course.** Requested on\n  [#9](https://codeberg.org/andremadstop/learning-nc/issues/9) for training outside IT\n  certification: the exam mode only knew the fixed CompTIA presets (90 questions/90 minutes and\n  45/45, pass at 720/900). Instructors can now offer a practice exam in a course's\n  *Administration* tab and set the number of questions, a time limit or none, and the pass mark\n  in percent. Learners start it themselves from its own tab — no pool to pick first — and every\n  attempt draws a fresh random set from all of the course's pools. Afterwards they get a review\n  with the explanations. The CompTIA presets stay as they were; the practice exam tab shows even\n  where the preset exam is switched off.\n\n  Practice exams never count towards a certificate: they are marked separately, and the pass\n  evaluation reads only the other exams. For the same reason they are left out of the locks that\n  keep an exam from being used as an answer key — an untimed one left open would otherwise block\n  training and explanations on its pools indefinitely. The reverse direction is guarded: while a\n  certificate-relevant exam runs in the course, a practice exam cannot start, and an old one\n  withholds its review.\n\n  The pass verdict is decided on the server against the threshold stored when the attempt\n  began, in integer arithmetic (74.6 % does not pass 75 %), so a later change by the instructor\n  does not rewrite past attempts. Tested on fresh installs and on upgrades from 5.4.6, on\n  MariaDB 10.11 and PostgreSQL 16."}},"signatureDigest":"sha512"},{"version":"5.4.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.6/learning-5.4.6.tar.gz","created":"2026-09-23T10:06:30.791886Z","licenses":["agpl"],"lastModified":"2026-10-15T08:26:00.630135Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"Z4KteEBRWfaEdZUSXUPV5e8sHFHO72aLZKRIFgUDMXjKJn97R3QodN3djq9hJLgcT0RUHxgZvfL4SeG2RvVYeCLOCIxcsGv6QV+yPoXw6w15Xay8CXBUExRuYRLKik+txLT0ttekRCHiTPrJU737R8CeodH0/dbItL6IJ/5JEOQv5iK5/8MLjL2wtJqBm2VeaE4H5nK/RYCvG/DNOTiFJgGgbhJlNhZcz+Yzg8LVyCCbRtQkU8MqagLTTAHbHCQU2+0h+0ommbO+Lcx6aHpvBKAic+VOB89YbbLoQpwtf5tirhjAM0FxT4EFK1OYTV1FfmRIz6wN1oIixcnPYSF6izmidK3jtTM+tBC6CqTUZ7lKtu+E+t7vWX+QrR2JEhVEi4FQ3bq/JoMUyGgnYxGvwB8p63T9SJeK0FEaI4fwgmHtA18xtjPUkUywE7CAp8DtVZ6Bgr163z1FUO8XOSsbPwUgh81VkIH/8NFHnReL5sBBDWBwFgsZ6iyMStv81OTZGglJBFyn9RjlV5HhrtprVLsDEr+G9BW9JOa/uM/dHFvuBxHGWdGadZ8QBlapI4ZD5Tz8GaWvPlvFYqeaovisViEcLN0TTSVN0+V95Cl2CZYb/4+fUKGPEhcTT5vEsb+mPYk/gCnz+NmqcSFp2ezR+GO2FWbx4EBSnbnlNFI8SEk=","translations":{"en":{"changelog":"Both reports came from the same install on Hetzner Storage Share: no shell, no `occ`, and\nMariaDB. [#7](https://codeberg.org/andremadstop/learning-nc/issues/7) found a course view that\nfailed and tool selectors that never showed their state;\n[#8](https://codeberg.org/andremadstop/learning-nc/issues/8) found a false audit alarm and a\ncertificate setup that required a command the host does not offer.\n\n### Added\n- **Certificates can be activated from the admin page.** Signed certificates need an issuer\n  signing key, and until now the only way to create it was `occ learning:cert:init-issuer` —\n  unreachable on managed hosting without shell access, where certificates could therefore\n  never be enabled. Reported on [#8](https://codeberg.org/andremadstop/learning-nc/issues/8)\n  from Hetzner Storage Share. The certificates notice now has a *Generate signing key* button.\n\n  It only ever creates the first key: if one exists it refuses with 409, because an existing\n  key may already have signed certificates. Rotation stays `occ`-only. Creation runs under an\n  exclusive lock, so a double-click cannot leave two active keys — a guard the `occ` path now\n  shares.\n\n### Fixed\n- **\"Checkpoint overdue\" on installs with nothing to checkpoint.** Reported on\n  [#8](https://codeberg.org/andremadstop/learning-nc/issues/8): the warning appeared next to\n  \"No checkpoint yet\" and \"Events since last checkpoint: 0\". Overdue was measured from the\n  last checkpoint, and a missing one counts as timestamp 0, so every fresh install was\n  overdue from the start. The same false alarm followed every quiet week, because the\n  weekly job deliberately skips when no new audit events exist. Overdue now means an audit\n  event has waited more than 8 days for a checkpoint — which still catches a job that is not\n  running.\n\n  The warning also pointed to `occ learning:audit:verify`, which checks the chain but creates\n  no checkpoint. It now names the actual cause: a missing signing key (checkpoints are signed\n  with it), or background jobs that are not running.\n- **Tool selections appeared not to save.** The selectors bound `:model-value` on native\n  `<input type=\"checkbox\">` elements, which have no such prop — Vue rendered it as an inert\n  attribute, so the boxes never showed the stored state. Every tool looked unchecked,\n  clicking an already-enabled one changed nothing, and saving wrote all eight back. Reported\n  on [#7](https://codeberg.org/andremadstop/learning-nc/issues/7); four occurrences fixed.\n- **Fresh installs never received three course tables.** `Version009900` does its work in\n  `postSchemaChange()`, but a fresh install executes only `changeSchema()` and then records\n  every migration as done — so it never ran and could never be revisited. `Version010100`\n  creates the tables in `changeSchema()` and copies any legacy rows afterwards. This is the\n  likely reason a course view failed on the reporter's install, and why reinstalling the app\n  reproduced the problem instead of fixing it.\n- **The certification toggle always saved the previous value.** It listened for\n  `@update:checked`, which `@nextcloud/vue` 9 components no longer emit.\n- **The active exam slot never displayed.** The view read `res.data.slot`; the controller\n  returns `exam_slot`.\n- **Two buttons missed by 5.4.5.** Both passed a styling value through a *dynamic* `:type`\n  binding, which the new guard did not yet check. It now covers dynamic bindings too.\n- **A missing database table no longer takes down an entire course view.** Reported on\n  [#7](https://codeberg.org/andremadstop/learning-nc/issues/7) from an install on managed\n  hosting, where `oc_learning_course_curriculum_scopes` did not exist. That table comes from\n  a rename migration (`Version009900`) which deliberately aborts rather than creating an empty\n  table over existing data — so an install can legitimately end up without it, and the app\n  treated that as fatal. Curriculum scoping, paused-question overrides and announcements now\n  fall back to \"nothing configured\" and log a warning naming the migration and the `occ`\n  command that repairs it.\n\n  Writes are deliberately left throwing: reporting success for a save that stored nothing is\n  the worse failure, and the caller has to be able to tell the user it failed.\n\n  The \"is this table missing\" check moved into `Db\\DbErrors` rather than being copied —\n  `UninstallCommand` has needed the same predicate since v5.3.0. It stays narrow on purpose:\n  anything not positively identified as a missing table is rethrown, so a genuine database\n  outage cannot turn into silently empty results.\n\n  This limits the damage. Why the table was absent is the \"three course tables\" entry above."}},"signatureDigest":"sha512"},{"version":"5.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.5/learning-5.4.5.tar.gz","created":"2026-09-22T14:25:08.138369Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:58.921892Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"X4k7LjqPFPx+SZ0KlaAr4FFFC9YdnYlt3mHWOnNskXRJI6+a7n2zgNlf6CwGnr09A8vJChj3uPg7y4MgnPZ4HLmtaNRPP05ol57+ev/o/2CZGElat0qGLwCHXE7/q71BVrcvzGXJOmc3B79R9iXjIFj+JR4qhWzZ1v0li3Fshz1mPwX2oQeAQ/7w5O1ffG5Vchk5hfJpU+X2phfuyBcxX3YpoUqNWOP6GAot8ENkl3znWoDidHICihBC1Szk25BWek0aUQng/ROo6zYn9xt8/d8xfIcJ0dBwvO7h29jeRDTxcRKFd4eBaXFnvesL58KZEC3vLSYduYzzK3ENccb8IXc0E8cqz0WXzI9V4l2cN5VaEYYpLO4I5++lwWqLPeHLAL6Gc543ihiDh04JgTuRA5VtrMGg6TCUpkmkWcdfKPEwuPWK+xq+cXBiHT9LyTqGsD6rfagyLGE2tnwnjni9++CIwj6ScsDU91CBFf/bZjDs21YouNXSpkkYsGFTuF4a3VTqFE1PuDcvZt02/1T+HX5Pwlj6BNm20O/81R2nuqtCU5kBgUbTLqtHimyufr0BKBWXclHZZEtKBOV/+iI6llWiSF6wDH/btNcgO9XlnGP3nK0S9x4GTTIXWqlsCZPILWByGYW47l6X7Fxb5fTgyZQMLz1kyV8om7Qs0q5+f34=","translations":{"en":{"changelog":"Reported in [#7](https://codeberg.org/andremadstop/learning-nc/issues/7) by an external user on\nmacOS, reproducible in both Safari and Chrome. The report was precise and its diagnosis correct —\nit just described one button out of 244.\n\n### Fixed\n- **\"Upload image\" saved the question before a file was picked.** The Vue 3 migration\n  (`380dd9a`, 2026-04-03) moved the app from `@nextcloud/vue` 8 to 9, which swapped the meaning\n  of two NcButton props: styling moved from `type` to `variant`, and `type` became the native\n  `<button type>` attribute. `native-type` was dropped entirely. The v8 spelling was never\n  migrated, so every button passed a styling value such as `\"secondary\"` to the native attribute —\n  and HTML's invalid-value-default turns an unknown button type into `submit`. Inside a `<form>`,\n  every one of those buttons submitted.\n- **\"Cancel\" in the question editor saved the question instead of discarding it.** Same cause\n  (`type=\"tertiary\"`), not in the report, arguably worse than the reported symptom.\n- **The three save buttons only worked by accident.** They carried `type=\"primary\"` plus a\n  `native-type=\"submit\"` that v9 ignores; they submitted because the styling value was invalid,\n  not because they asked to. They now say `type=\"submit\"` explicitly.\n- **All 244 NcButton instances were migrated to `variant`** (the 222 outside forms were a\n  visual-only defect: with `variant` never set, every button in the app had been rendering in\n  the default `secondary` style for 5.5 months).\n\n### Added\n- `tests/unit/NcButtonTypeProp.test.js` — pins the v9 prop contract against a real NcButton\n  render, and scans every `.vue` file so the v8 spelling cannot return. The four existing gates\n  could not see this class of defect: it is valid Vue, valid JS and valid HTML.\n- `tests/unit/QuestionFormSubmit.test.js` — mounts the real form with real buttons and clicks\n  them, asserting which ones reach a `submit`. Reverting the fix turns it red, on the submit\n  count rather than on an attribute. Note the precondition the report already implied with\n  \"open an existing question for editing\": while the required fields are empty, constraint\n  validation suppresses submission on its own and hides the defect entirely."}},"signatureDigest":"sha512"},{"version":"5.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.4/learning-5.4.4.tar.gz","created":"2026-09-11T18:19:54.926093Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:56.879346Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"DLyhhVBf9XRwBNeoyTKog1TtpFna/YIjmDn+ZjlT9XdOHDkP+/lCeH5/llEg9T1YqKUzejWB6zRtksExb7/DCODs5W8r2AiSVkO1moPld7QVcjHOQXWZ7lXKqQ8FIDPKy6Xfa6QNbGc3HE1J0SGMfW315PV07TL074azidYLszcQzuVsoPcIir/FLptx8pdLReN2G//GucWdoGeAR1djjn4YfdFlCAE0eDuJnqi3dChkin0PMYFTbdK4uLqz6ocEkHcpjaw+0JbSe/7FZcoAkmEEHiV9rBbj9uikbBj/k1wYV8h4OD9TGJpK595NQ56GC4Py7FaCTD2mMLvjDiMsMYVq63hffv5xzwn0RPmAwosGImUpapd3ft5VTHuY+yP5prrrtNadF9Mm45KA0mPKrIJHOwey8xqyPfMl7N0RlhWBWwKbae436EQgTLifLdo4A/nz2gR/Fix58LLyQoHAKGKE/wdQ5jDrI5Dv7xA4cBzgcPeOC5S9vxUuAuKXuTQemliU9065EUw9nv+rTdTypx7CIzgVHtnjlXIapAQilENk1uLrg2b8AZD4PVXLq6UW1VLyO/H02XYKRuw67R4ZMbqg0tszrhamlCiGJB7WbvWbxP9NTfI0cFHZkq0dlRCUcUgIlQYj772fKw5t/cTHIJky8l9sBG/ObqWJVEawpC4=","translations":{"en":{"changelog":"Reported in [#6](https://codeberg.org/andremadstop/learning-nc/issues/6) by the administrator\npiloting Learning in Vinnytsia. Two of the three questions turned out to describe real defects\nrather than gaps in understanding.\n\n### Fixed\n- **The assistant rendered German text inside a Ukrainian interface.** VirtuProf does not\n  translate through Nextcloud's `t()`; it resolves against its own bundled catalogue, and 161 of\n  its 343 reachable strings had drifted out of that catalogue — including every FAQ answer body.\n  `translateVirtuProf()` then fell back to the raw source string, which is German for most of\n  them. 63 of the 161 were already translated in `l10n/uk.json` and simply never made it into the\n  catalogue; the remaining 105 are new and now exist in all six languages.\n- **The AI assistant was told to answer Ukrainian and French users in English.** The system\n  prompt's language map only knew German, English, Russian and Arabic, so anything else produced\n  the instruction \"If unsure, default to English\". It now covers all six languages.\n- **The assistant ignored the Nextcloud interface language.** It derived the response language\n  from the opt-in content-language setting alone, with a hard English fallback. It now falls back\n  to the user's Nextcloud interface language, then the instance default.\n- **Choosing Arabic as content language did nothing.** The dropdown has offered it for months and\n  the request sent it, but the server's whitelist did not include `ar`, so the value was silently\n  replaced with the empty string and the request still answered 200.\n- **\"Create summary\" wrote an English note for a Ukrainian user.** `NoteGeneratorService`,\n  which the assistant reaches through its file-intent path, carried its own copy of both the\n  language lookup and the language-name map — and its copy was missing French and Ukrainian in\n  exactly the same way. Both now come from one shared resolver.\n- **The assistant panel header rendered three empty strings.** Its translate helper passed the\n  key where the function expects the language, so the panel label was blank and both the minimise\n  and close buttons had an empty accessible name — in every language, German included.\n\n### Added\n- **An instructor group setting in the administration page.** Members of that Nextcloud group may\n  create courses and question pools without Nextcloud administrator rights. The mechanism is not\n  new — it has been `learning-instructors` all along — but nothing named it: the admin page\n  referred to \"the configured instructor group\" without saying which, and the manual claimed the\n  instructor role was per-course only, which is wrong for creating a course in the first place.\n- **The five textbook fields in the pool dialog now explain themselves.** They are optional and\n  only pay off when a pool mirrors one chapter of a book; the dialog says so, and each field\n  describes what belongs in it.\n- **A fifth i18n gate** (`scripts/gen-virtuprof-strings.mjs --check`). The VirtuProf catalogue is\n  now generated from `l10n/*.json` rather than hand-maintained, and the gate fails when the two\n  disagree or when a reachable assistant string exists in no language file. Verified: removing a\n  VirtuProf key from all six language files leaves gates 1–4 green and turns this one red.\n  The catalogue grew from 252 to 429 keys and lost none — keys reached through\n  `vt(<expression>)`, which no literal scan can resolve, are carried forward until they leave\n  `l10n/de.json`. `--list-indirect` names the 22 call sites this protects.\n\n### Documentation\n- New manual section 2.3 on letting teachers create courses and pools, a corrected role\n  description in section 1, a field-by-field table with a worked example for the pool dialog in\n  3.1, and two new troubleshooting entries.\n\n### Internal\n- `deploy-prod.sh --stage-gate` now copies `appinfo/` into the analysis copy. Without it\n  `ClassResolutionTest` — the regression test written after the `AIController`/`AiController`\n  outage — errored out instead of running."}},"signatureDigest":"sha512"},{"version":"5.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.3/learning-5.4.3.tar.gz","created":"2026-09-01T09:09:42.306804Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:54.536943Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"tBYdgRNTvcdREMCynplVM4OPCgWQck7GP+w3btJG710KKvOl1+YwKqBTcmUk3HoCwy+ws6BVOljRjCfJumhvCzPIIFpjs4fEsLskZyp7hueeRx9NTxCDe1fcWuZAA593HD1aDmrURuBWULQ09DRRcngYm3eD8X1yyr1oBvcwtFHkm+zMDOru484j4/Etl/R87I4vcA25ynoI1Rt8yxso52ZR3PFOb8Y+N4ghd7YlP01uffQAUlPEwQCrXwLXED7x6Z+ocSVcHVrmMFWx4f6ElksbV3UlIHd3ewB72t/kWNqCRqSTIf9L6DbyTb5MKFWwgBXRaP4vRbzZCrpukutZ5FprnR8XQ3KWNXfxJ4yW6nNYiZRYPuWu+sBKChWlDBa9RMgYnPv+ePV+H2EgW8NvI/DAXttcZDTsoFwZ0q/epmCuprdmcBBRefB3ysufGzzN7jQeVBEBr7dEkOtfadXpaLsLk03oQEu+1lM6Re7yPxYJukzWY3oG8tZXu92Q4TSnIAaSTAXP2+p/3wOEnm2u5r8dOnDQv3jUsSuJaGBBGRpIeTx1RAv2cWI698IAw3QJz1BQwnXpKdQei14hIRwacnB5mpJzj/N9cRmiGhQFrPaiNM2pcXoQGpLS73sa1p04Pl4bBrHFFqL3HzFqyKVGqhpH8kBMtR/NH1xcMebNYXY=","translations":{"en":{"changelog":"Found by clicking through the 5.4.2 deployment: the wizard's \"Skip\" button sat at `top: 16px`,\ndirectly underneath the Nextcloud header, whose avatar button swallowed every click. The splash\nscreen carries its own skip link at the bottom, so the first step looked fine — but from step two\nonwards there was no reachable way out of the introduction at all.\n\nThis is not new in 5.4.2; it has been there as long as the redesigned wizard. It is the sharper\nhalf of what [#5](https://codeberg.org/andremadstop/learning-nc/issues/5) describes: users could\nnot get rid of the introduction even when they tried.\n\n### Fixed\n- The wizard's skip button clears the Nextcloud header and can actually be clicked from every\n  step. Verified in the browser: a click on the button's own centre used to be delivered to the\n  header's avatar.\n\n### Added\n- Two browser tests that would have caught this: one walks a new account through the introduction\n  and asserts it stays gone after clearing site data, the other asserts the skip button — not the\n  header — receives a click aimed at it."}},"signatureDigest":"sha512"},{"version":"5.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.2/learning-5.4.2.tar.gz","created":"2026-09-01T08:41:18.927094Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:52.731471Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"RWPqQbdfMQs4sWt1fQY2J12frNlvsBfyyxZVm5GD+QHIFuCDmqmhsunLgzv2zfzWn08hoinqIAE7hyOYf42Z38K17/vpiYxSnsltjK5f1gP1gomdeKwgGrTRpduOfDqXbH6KOGx82opBm1cjV6Whi2FVJrwCNE/MFwOzhdwshYHMWlOxVnCUDvm2iHfveakQ2fKbC7BAR3Sm8YtD/eUqsz/hNiGOZcCY71xo+LpUJge5bY18D9kz8GpXiwLhf8Ivzb5Dfj1b1xrwIS6WO19i1tgLpJ7adJXftyUv++o2DaPRLw1O3IcV0UUmmgo9GeDaq/1ZCtav5lu0r1O8crLQ1uSqZmwyzIkd/UG5feTsLC3ttF5/DA9nBhup7Gd6nIwluVKjaMUfyfmcypFS428rtlNefyJjgkD5gOi0aZH0GVE4cnEEkh3bzebPTLXHoTVjZ6SJIjYxQDHfRHJxObO4GCFuc/Fnq+MIGEySLlubt9q7Ja0GyphBmO1Vw3Z0fiCT24Ny6PrIpknjQcuUvb7/la6txUzB0e+IWGLm5YJf6FMZMgBSt4ZKOtUwONCrZ3RDHYIYLhtunfE1wCJNRt0ammhpTjUz99bjmQABkYfAeTQvznmZBzTi7PoEDyuHLm5sAPByjNhpySHDfe4nrLfArK30dmVoyqJgoBVve0+b79c=","translations":{"en":{"changelog":"Reported by the same administrator piloting Learning in Vinnytsia\n([#5](https://codeberg.org/andremadstop/learning-nc/issues/5)): the help wizard reappeared for\nusers who had already been through it, and its introductory questions (\"How many bits are in one\nbyte?\") were beside the point for staff in occupational safety or HR.\n\nThe reappearance turned out to be three separate defects, not a missing setting.\n\n### Fixed\n- **The assistant's introduction never honoured \"no thanks\".** It read that setting from a\n  response which does not contain it — `/api/profile/telos/status` returns the completion flag and\n  nothing else — so the check was always false and the introduction started again on every single\n  page load. The setting had been saved correctly the whole time.\n- **Whether the wizard had been seen lived in browser storage alone.** That is scoped to one\n  browser on one machine, so a second computer, a different browser, a private window or cleared\n  site data all brought it back. The server is authoritative now; browser storage remains only as\n  an offline fallback.\n- **Skipping the wizard recorded nothing on the server.** It counts as a decision now, like\n  completing it.\n- **Instructors were shown two introductions in a row** — the wizard, and the slide tour the\n  moment it closed. One introduction, one decision.\n- **Existing users are marked as done during the upgrade**, so the update itself does not send a\n  whole instance back through the introduction.\n\n### Changed\n- Instructors now see the full nine-slide tour inside the wizard. It used to follow the wizard as\n  a second, separate introduction; folding it in keeps the content while removing the duplication.\n  `OnboardingIntro` is unreachable for now and becomes the voluntary tour in 5.5.0.\n- Declining the assistant's introduction now puts the assistant in its reduced mode instead of\n  leaving it in an undetermined state.\n\nThe introductory content itself is being reworked for 5.5.0."}},"signatureDigest":"sha512"},{"version":"5.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.1/learning-5.4.1.tar.gz","created":"2026-08-28T08:48:22.904161Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:50.463064Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"D3aST42eiKf/nYaI5/U8YFgvDZ7RMjOBDOb+wZpO4QpWxrslmpBK86vnPCTj2glzExY08m104traCr2c59xfe/MYRWc3xfVgeBgyLQa0/KTJUO2ecJzP0pwMb24ybNYB5vSKq7ONgZPvv/9WNoo+BKPzos3CT2xpO0+0P0oKGXyErMCU2kJnG7kfTr1ih2jzurKy3vEXGsj43Hth/skA+DNRToPZH6fMyjBYkhaK0ezVO4+Sd18jImh7kAdEl1uX429jC70cQCrurkT8+4KPax0QCrOSza7Va7qHAnM7NuqHl+Yn0lNQwvUSTlnP3dpkUVOHg/e2REyROD76NiPcv7RX1vQH1Yli8eQ6MOfg2wM7gq9sCcJ9yG83VJ9wR+CZqDHbBYe7hm09p70J1Hrx3p1vDmYVhl8CapA1H1tZz58YkoTwbycwbesy6xbtM+nG7m20AjE09s9Ye3Sg+vWWu7bQCbKEZCt4OXxEHwQWXX6VQ0toFNDm8ZIxFhnyMG4C7Z/kIC51h5wASBCE+ZNyTmhDZogBEfbJrdxu+Zq8JIPq++s1IBUUHUFUvBbwP5iydFF2Ftcu4EzbxvwfpqKJNiAMbCJFOUMPYFAXL4ToSLPzqZDtVZpzki9b44wtyJ0io74iu4U1ohgD/8erbwz21qXnzasdTwxtyRPNfBejhLo=","translations":{"en":{"changelog":"Reported by the same administrator piloting Learning in Vinnytsia\n([#4](https://codeberg.org/andremadstop/learning-nc/issues/4)): one error and one warning\nin the Nextcloud log. The warning was what it looked like. The error was the visible edge of\na defect that had been silently discarding onboarding results since **v4.2.0 (4 April 2026)** —\nseventeen releases.\n\n### Fixed\n- **The onboarding wizard could not save a profile, and lost two more things while failing.**\n  `OnboardingRedesign.vue` built its own request body instead of using the shared payload\n  builder, and posted `''` for the list fields where every other caller posts an array.\n  `TelosController::saveTelos()` declared those parameters `?array`, so PHP raised a\n  `TypeError` inside Nextcloud's `Dispatcher` — *before* the controller body ran, which is why\n  the controller's own `try`/`catch` never saw it and the user got a bare 500.\n\n  The damage was three times the reported symptom, because `finalize()` ran three steps inside\n  one `try` with an empty `catch`:\n  1. the learning profile was never stored — `onboarding_completed` stayed `false`, so\n     VirtuProf kept asking for a profile the user had already filled in;\n  2. **the AI consent was never stored**, even for users who explicitly opted in. Since the\n     universal consent gate in v5.2.1, that locks every AI feature behind\n     `consent_required` for them;\n  3. **the selected starter pool was never imported** — the wizard offers a pool, the user\n     picks one, and nothing arrives.\n\n  None of it was logged. Three fixes, at three different levels:\n  - `OnboardingRedesign.vue` now builds its payload with `createTelosForm()` /\n    `buildTelosPayload()` — the same util `PersonalSettings.vue` and `VirtuProf.vue` use, so\n    there is one payload shape in the app instead of two that can drift apart again.\n  - `finalize()` settles each step independently and logs a failure to the console instead of\n    swallowing it, so one failing step can never cancel the other two.\n  - `saveTelos()` / `updateTelos()` accept `array|string|null` for the list fields and split a\n    string on the same separators as the frontend (`,` `;` newline). A malformed `telos`\n    payload now answers **400** instead of raising an uncatchable dispatcher `TypeError`.\n\n  **No migration is needed and no data was corrupted** — nothing was written, rather than\n  something wrong being written. Affected users recover on their own: the profile can be\n  filled in under *Settings → Personal* or through VirtuProf, the consent dialog reappears\n  when an AI feature is used, and a starter pool can be imported from the pool list.\n\n- **`Activity\\Provider::parse()` threw the deprecated `\\InvalidArgumentException`.** Nextcloud\n  replaced that contract with `\\OCP\\Activity\\Exceptions\\UnknownActivityException` in NC 30;\n  until then every activity-stream load logged a deprecation warning, and from NC 39 it will be\n  logged as an error. Both throw sites migrated.\n\n  `Notification\\Notifier` had already been moved to `UnknownNotificationException` — the same\n  NC 30 cohort — and this provider was simply missed. Each throw site now has a test, so the\n  pair cannot drift apart again.\n\n### Tests\n- `tests/Unit/Activity/ProviderTest.php` (new), `tests/unit/onboardingTelosPayload.test.js`\n  (new, covering both the payload shape and the step isolation in `finalize()`), and seven\n  cases added to `tests/Unit/Controller/TelosControllerTest.php`.\n- Every one of them was verified to fail against the pre-fix code before being kept — the\n  controller cases reproduce the reporter's exact `TypeError`, and the `finalize()` case\n  fails with `expected [ 'telos' ] to deeply equal [ 'telos', 'consent', 'pool' ]`.\n- `tests/Support/PhpUnitStubs.php` gained `OCP\\Activity\\IEvent`, `IProvider` and\n  `UnknownActivityException`; the PHPUnit bootstrap deliberately does not load Composer's\n  autoloader, so OCP types live there.\n\n### Also fixed — found by auditing for the same bug class\n\nCodeberg #4 was one instance of a pattern: a frontend that posts a body the controller does\nnot read. Nextcloud's dispatcher does not reject unknown keys and fills the missing parameter\nwith its default, so the request succeeds and the app quietly does the wrong thing. PHPStan\ncannot see across the HTTP boundary and service tests start after it, so nothing caught these.\nAn adversarial audit of every such call site turned up four more.\n\n- **Saving a course schedule deleted it.** `CourseController::setSchedule()` takes `entries`;\n  the curriculum tab sent `schedule`. `$entries` stayed at its `[]` default, and\n  `ScheduleService` reads that as \"replace the schedule with nothing\" — it deleted every row,\n  inserted none, and answered 200, which the UI reported as saved. An instructor editing a\n  curriculum schedule lost it, with a success message.\n- **Reported questions lost their identity.** `SupportTicketController::create()` reads\n  `questionId`/`poolId`/`courseId` out of `context`; VirtuProf's \"report this question\" sent\n  them at the top level, so the ticket's structured columns were stored as `NULL` and the\n  question was identifiable only through the subject line. The same component already built the\n  correct shape for its other ticket call.\n- **\"Explain the question I just got wrong\" did not load that question.** The chat request sent\n  `questionId`; the controller declares `lastWrongQuestionId`. The value was dropped, so the\n  retrieval context never included it. The richer `questionContext` usually masked the defect.\n- **Two icon URLs were relative where Nextcloud requires absolute** —\n  `Activity\\Provider::setIcon()` and `Dashboard\\LearningWidget::getIconUrl()` (whose interface\n  says so explicitly). Desktop and mobile clients do not share the web root, so those icons did\n  not render there. `Notification\\Notifier` had already been doing this correctly.\n\nEach of these is now pinned by a request-boundary test in\n`tests/unit/requestPayloadContracts.test.js`, verified to fail against the pre-fix components.\n\n### Also fixed — in the profile endpoint itself\n\n- **An emptied help-topics list was silently preserved.** `saveTelos()` forwarded the list only\n  when it was non-empty, so `[]` and `''` both meant \"omit\" rather than \"clear\". Emptying the\n  textarea and saving kept the old value — and since help topics are published to classmates\n  through the classbook at course or public visibility, a user could not withdraw a topic once\n  shared. An omitted field (`null`) still means \"leave as is\"; a supplied empty one now clears,\n  matching what `updateTelos()` already did.\n- **A malformed `updateTelos()` payload could half-save.** Skipping a non-array `telos` and\n  carrying on meant `{\"telos\": \"oops\", \"bio\": \"changed\"}` stored the bio and answered 200 — a\n  worse outcome than the `TypeError` it replaced. It is now rejected before any other field is\n  touched.\n\n### Known limitations\n\n- List values are not round-trip safe: a topic containing a comma, semicolon or newline is split\n  on reload, because the frontend has always joined and split on those characters and there is\n  no escaping scheme. The string path added above follows the same convention rather than\n  introducing a second one.\n- Users whose onboarding failed before this release keep a local \"onboarding seen\" flag while\n  the server has no profile. They can fill the profile at any time, and the assistant prompts\n  students who have it enabled, but there is no automatic reconciliation for instructors or for\n  users with the assistant switched off."}},"signatureDigest":"sha512"},{"version":"5.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.4.0/learning-5.4.0.tar.gz","created":"2026-08-24T04:05:45.015556Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:48.755074Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"fOjauQfAoTxzZhK43pVS3uOvGA7B9xGJSgoX542rNXSSR5ofRPlwyghfUAWDO204V4VIxT68tuEawloJMFAYYs3FnBjPkCG4oFn/yLxRRrnsKasZD+igQe3RyfsLFOR0xR0MmUlvBYVeQxmSOZY+KDiHS7ED9FDgPMuHeOC5thDa6+dKZDzkBlNKmcLlIHk/Fop73pfVV8XDCS2VF/mwwt2/DxSc715n+KGoUQJ6InShXf9AYlB2ZralLwTPEBHocZvg910Xzt7Co34DkQT5dQmnzHj3uS8kKp+Jxou6U+lCnttxLTovxsmZnnmhF5kaHyonmTYa4QxzuXmeqTDRCHkd/Row7bnTy2MsAEqmS0M/KF/pAW6m++1mABO9Axe318aewrbPfZp3kei9FHohI+FAZMt0DQ3e5Bmp+RChArWS8ndS6aPrrFjA87zym4FvxXRbf8hfyYVvihBWHmefgEwXcbJZwwe6cOBjiQloin97i7AhuPh1YdscWSrEjZbkdZnjV0Vvl6BhKV2X3oAQIf6yySfKe60qw1F/gqz6fB4NG5ngDosDBjVcgT363g6rNng8brp89/g6gk7rN8+PyLttCyTxnzWcGVXdyujtFjS2frX47blARJOXhwD/PpmhSHJRsxE6e7vIk+HrgHqvkaDGuy/15WnKYu64AfeFauo=","translations":{"en":{"changelog":"Prompted by a report from a system administrator piloting Learning at a manufacturing\ncompany in Vinnytsia, Ukraine ([#3](https://codeberg.org/andremadstop/learning-nc/issues/3)),\nwho raised two problems: parts of the interface appear only in English or German, and there\nis no manual. Both turned out to be real defects, and the first one was considerably larger\nthan the report suggested.\n\n### Added\n- **Ukrainian interface language (`uk`)** — the sixth language, complete at 2,940 keys in\n  the main catalogue plus 252 in the VirtuProf runtime catalogue. Plural form is the\n  three-form Slavic rule, not the two-form default.\n  - This is a first pass and has not been reviewed by a native speaker. It is labelled as\n    such in the manual, with instructions for submitting corrections without touching code.\n- **`docs/MANUAL.md`** — a user and administrator manual covering the chain the reporter\n  asked for: course → learning materials → pool → questions → students → test attempt →\n  results → completion, plus admin setup, the `occ` commands, mandatory training and\n  compliance, the AI consent model, and how to add or fix a translation.\n  - Linked from `README.md` and from a new `<documentation>` element in `info.xml`. That\n    element was absent, so the App Store listing offered no documentation link at all —\n    the direct reason the reporter could not find any.\n- **Two new i18n gates**, both wired into `check-i18n-parity.sh`:\n  - `scripts/check-i18n-coverage.py` compares the **source** against the catalogue. Gates\n    1–3 all compare the language files against *each other*, so a string missing from all\n    of them at once passes every one of them. Verified by reconstructing the defect:\n    removing a key from all six files leaves gates 1–3 green and turns this one red. It\n    covers JS/Vue `t()`/`n()`, PHP `$l->t()` and the indirect `toolCatalog.js` keys.\n  - `scripts/check-i18n-placeholders.py` asserts that every translated value carries the\n    same placeholders (`{n}`, `%1$s`, …) as its German source, and that no value is\n    written in the wrong script. With six languages and machine-assisted translation, a\n    dropped placeholder became the likeliest remaining defect.\n\n### Fixed\n- **635 interface strings were absent from the translation catalogue entirely.** They were\n  passed through `t()` but had no entry in `de.json`, so Nextcloud's l10n fell back to the\n  source string and rendered them **in German in every language, including English**.\n  - 618 came from JS/Vue, 10 from PHP `$l->t()` calls (notification subjects, the legal\n    notice and privacy links), and 7 from `toolCatalog.js`, which reaches `t()` through a\n    variable and is invisible to any literal scan.\n  - The most-used casualties: the course materials tab almost in full, parts of course\n    administration, and the answer-type selector in the question form —\n    `Einzelauswahl` / `Mehrfachauswahl` / `Freitext`, the three options every author picks\n    between when writing a question.\n  - All 635 are now in the catalogue and translated into all six languages.\n- **VirtuProf keeps its own 252-key runtime catalogue** (`src/l10n/virtuprof-strings.js`)\n  which is separate from `l10n/*.json` and was not covered by any gate. A language added\n  to the main catalogue alone would leave the assistant speaking German or English. It now\n  carries a `uk` dictionary, and `virtuprof-i18n.js` lists it.\n- **VirtuProf's backend language allow-list silently discarded valid choices.**\n  `VirtuProfController::ALLOWED_INTERFACE_LANGUAGES` did not contain `fr`, although the\n  frontend has offered French all along; `normalizeInterfaceLanguage()` coerces anything\n  unlisted to `''` and returns no error, so a French user's choice was dropped without a\n  trace. Both `fr` and `uk` are now listed, with a comment naming the three places that\n  must stay in sync.\n- **`scripts/deploy-prod.sh` synced a hard-coded five-language list.** A new language would\n  have been generated, guarded and committed — and then never copied to the server.\n  Now six, alongside `l10n_js_sync.py` and `check-i18n-parity.sh`.\n\n### Known limits\n- Some strings still reach `t()` through variables that the coverage gate cannot enumerate\n  (onboarding slide definitions, dashboard tiles, a few config objects). Run\n  `python3 scripts/check-i18n-coverage.py --list-indirect` to see the remaining call sites.\n  Those were not audited in this pass.\n- The **content language** layer — optional parallel translations of question text, held in\n  `learning_q_translations` / `learning_a_translations` — still accepts only `de`, `en`,\n  `ru`, `ar`. Adding `uk` means a DB migration against a CHECK constraint and a re-test on\n  both PostgreSQL and MariaDB, so it is deliberately out of scope here. It is not a blocker\n  for Ukrainian use: questions authored directly in Ukrainian are stored and displayed\n  unchanged, because the base question row has no language constraint."}},"signatureDigest":"sha512"},{"version":"5.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.3.1/learning-5.3.1.tar.gz","created":"2026-08-22T09:29:26.410816Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:46.864475Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"YUSX7HQellMvxhF9ONH3kjJE27MJqyFeN7kD1SUBZ+IQWY1+4g0xdnfNr3eblyATtg5gdSTqi34Si6TuDz4lETH0/R3jDPG/UHGjtqHpclzdXhTd3diZh1BvpU+XQhHH86Q+vukW5NUOak+MzINOX3JMH7Q0hklzyvEu0K0DnTiPvnTnilMWGeJfIWbc/isBOb+P1GlHCiEzZY4/KvDN78aPNeNBva/j3aLX4V26OJeIeIRVx5PN22Cmi0k1HAH8D8oGGG8HoNYxDmEmUgoIgsBeqrU+Y0tLwtcmTo6K2bjepBRHMEngiUe7ytyKS/ty/in+BbVIapESWNlNplIi+JvxwI+pczWj5/rnowOSsBvl/vj27LxHZm/sEcdqjICp2jbuVTJA734MwuzlAbZG6+XbD5BR8iF6GqNxzfhHCtDQ6V7N4XGQ7yKaaYDAOVsFPwKTSXRaOq9nF+yPADZS/fBij3uNmHk8IAWQjUAO54DZup3KeMM9f2TVWP8la+aEEYoaxVKHUOWfjEqUQ1ptE9UDs5Z8otOLM8FR5WM5xnNQ+N6qSJi2UrK53OtqzSzh2VQ+xIrDDn6NdjeRqayGDwC18cOI5UWixKHoPoic0FYHuPJztK82zy+yFTLz7bfYNJBl73uNTDc46+GIbXfmLKTh7g4em0rncGu4aC1I/Pc=","translations":{"en":{"changelog":"### Fixed\n- **Every AI endpoint returned HTTP 500 instead of working** ([#3](https://codeberg.org/andremadstop/learning-nc/issues/3)). Nextcloud derives the controller class from the route name, so `'name' => 'ai#available'` resolves to `OCA\\Learning\\Controller\\AiController`. The file was named `AIController.php` and declared `class AIController`; because PSR-4 autoloading is case-sensitive, the class was never found and the App Framework threw `QueryNotFoundException` before the request reached any of our code. All five `ai#*` routes — `available`, `generate`, `status`, `import` and `explain` — have been broken this way since they were introduced in v2.7.0.\n  - Visible effect was mostly log noise: the callers in `QuestionList.vue`, `LeitnerMode.vue` and `TrainingMode.vue` swallow the failure and fall back to `aiAvailable = false`, so the AI buttons simply never appeared. Nothing was lost, but nothing worked either, and every page that asked wrote a stack trace to `nextcloud.log`.\n  - The class-resolution failure happens *before* the authentication middleware, which is why the endpoint answered 500 to anonymous callers where every healthy route answers 401. That difference is what pinned the diagnosis.\n\n- **Four SQL queries referenced columns that do not exist**, each failing with SQLSTATE 42703 every\n  time it ran. All four were invisible to PHPStan — the defect lives in a string — and each sat\n  behind a `catch (\\Throwable)` that turned the error into a 500 or an empty result.\n  - `LernprofilService`: `c.name` on `learning_courses`, which has `title`. In\n    `enrichPoolsWithCourseData` this broke `/api/profile/skill-map` outright (since 2026-04-09);\n    the identical mistake in the cheat-sheet query hit only users who actually had wrong answers\n    to report, so it stayed hidden behind an empty-result early return on fresh accounts.\n  - `RagContextService` and `CourseSummaryService`: `ua.user_id` on `learning_user_answers`, which\n    has no user column at all — the user hangs off the session. Both now join\n    `learning_sessions` the way `NoteGeneratorService` already did. User weaknesses and trouble\n    spots never loaded; they threw.\n  - `CourseSummaryService` additionally compared the boolean `is_correct` against the integer `1`,\n    a type error on PostgreSQL. It now tests the column directly, which is portable across\n    PostgreSQL and MariaDB.\n  - `NoteGeneratorService`: `chapter_ref` on `learning_pools`, a column that never existed (the\n    chapter columns are `chapter_key` / `chapter_title` / `chapter_order`). Every authorised\n    `POST /api/notes/generate` died in this query, before reaching the model at all.\n  - `RagContextService`: `name` on `learning_courses`. This is the first query `buildContext()`\n    runs once a course is set, and a shared `catch` aborted the whole build after it — so\n    VirtuProf answered without *any* course context (no chunks, pool questions, Leitner stats or\n    weaknesses) and without reporting an error.\n  - `CourseSummaryService`: `winner_uid` on `learning_duel_sessions`. That column only exists on\n    the league tables; a duel's winner follows from the scores. This query is on the ordinary\n    course-summary path, so it took summaries, snapshots, narratives and CSV exports down with it.\n    Wins are now counted from the scores of finished duels — and so is the total, because a duel\n    that is still waiting for an opponent or expired unplayed has no winner and would otherwise\n    sit in the denominator of `win_rate`.\n- **`FeedController` reported no course names.** It called `getName()` on the course entity, which\n  only has `getTitle()`; the surrounding `catch` turned that into `course_name: null` for every\n  feed item rather than an error.\n- **Skill map and cheat sheet exposed courses the user is not in.** `enrichPoolsWithCourseData`\n  accepted a user id and then ignored it, so it returned every course any accessible pool had\n  been added to. An instructor can attach a pool that was merely edit-shared with them, which\n  handed the pool's owner the id and title of a course they are not a member of. Both queries now\n  apply the same membership test the rest of the service already used, and both order their\n  results — a pool can belong to several courses and the mapping keeps the first row, which\n  without an explicit order was whatever the database happened to return first.\n- **`LernprofilController` logged nothing when it failed.** All five `catch (\\Throwable)` blocks\n  returned a 500 without touching the logger, which is why `nextcloud.log` held no trace of an\n  endpoint that had been broken since April 2026. They now log the exception before returning.\n\n### Security\n- **Duels and gameshows could be started on any pool.** `DuelService::createDuel` and\n  `GameshowService::createSession` only checked pool access when a `courseId` was supplied, and\n  both endpoints accept none — so two cooperating users could start a session on an arbitrary\n  pool id and read its questions, its answer options, and after answering the correct answer id.\n  `TrainingService` has always gated its equivalent path. Both now call the same check, which is\n  made public on `QuestionService` rather than copied a sixth time. Verified live in both\n  directions: a pool the caller cannot reach is refused, one they can reach still works.\n  - The Wissensturm category endpoint had the same hole from a different angle: it took any pool\n    id as the chosen category and read a question from it. It is now authorised against the\n    *session* — the pool the session was created with, or any pool of its course — rather than\n    against the caller's own pool access, because players who join a session legitimately are not\n    required to have access to its pool.\n- **`POST /api/courses/{id}/summary/snapshot` did not check course access.** Every other endpoint\n  in `SummaryController` passes through `CourseService::findById()` first; this one called the\n  service directly, so any logged-in user could snapshot an arbitrary course id and read the\n  result back through their own snapshot. It now applies the same gate and answers 403.\n\n### Added\n- **`scripts/check-sql-columns.py`** — resolves every alias-qualified column reference in\n  `app/lib` against the live database schema. It found all four SQL defects above in one run.\n- **`ClassResolutionTest`** — walks both places where Nextcloud builds a class name from a string (`appinfo/routes.php` route names and the FQCNs in `appinfo/info.xml`) and asserts each one resolves to a file whose name matches exactly, plus that the file declares the class name the router will ask for. Neither PHPStan nor the controllers' own unit tests can catch this: those tests `use` the real class name, so they load and pass while HTTP is broken.\n\n### Changed\n- `.githooks/pre-push` now runs PHPUnit and the SQL column check. Neither the PHP test suite nor\n  any schema check ran in a mandatory gate before, which is the reason both classes of defect\n  survived for months. Note that the versioned hook was not the active one — `core.hooksPath`\n  pointed at a stale copy in `.git/hooks`.\n- The API test for `/api/profile/skill-map` asserts `200` and a payload shape; it accepted `500`\n  before, and so reported a hard SQL error as passing for four months.\n- The API test for `/api/ai/available` asserts `200` and a boolean payload. It previously accepted `200` **or** `500`, which is what let a total outage ship through 23 tagged releases over five months — the endpoint always answers 200 with `{available:bool}`, including when no API key is configured, so a 500 was never an acceptable outcome."}},"signatureDigest":"sha512"},{"version":"5.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.3.0/learning-5.3.0.tar.gz","created":"2026-08-18T15:30:48.091713Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:44.928945Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"BIvlmCYXMWVkuElwUaidAWzPW5t6ZTALeGz+aQJFxs45ncQXSDopk45g5fBrZVXjcjOs7KerH3YpBwu3kbOMMPQ2x79O92Mkqa3zWpW2mVUXIpUOpgVUaXsEJcDIoz3kTiyrD0ZOnvrYgpQYTPy1r35QhANfB89BwhUreOIoz2/L7EryXoAzAg3GCaHT3KRARBGGaCUBEQvRlVh9X1gGvQtcOwYcE7nO2JpdXjVRrE17foqNtVwgDRKD3+CJDWwuGDeEe3F8pIGLtaWCS6ZhzRNluj3kFwafqjL4h7wo/m7lCPeNvd/gwKWdQ/QV0ZPG2zdkQGgLwDXW4V3pypNOpXgvtVRA2JEFW3dvLbCKOWTn68ntmsfuy6+WaNyFOjwq60YE2h5yBaXCFe8cT0Cbjo1pOotrAM0LNDPMe0Jz8ImV5tDkgTnzXIaD/rQWeyLv5VOdYgT/EFya1RKpQd59QxF5i4aOHl6j+M2o+LKUAZV0fcmO2vlZ0v3W5+aB7K2+fQOi2nl0MQ9f8fo+AmAJcDSe0SrFbOy5u9TMbzOV+nKcJmyJLBsN7uRtFxhAA6Zm9dvcJL7iTlJjr1q/uPWHiv+nAPpD5JNezDcFQ4jqfERzhhZbvA7CdozszMTyrbpTWPJfNKqU9ekyWDIn/XpinHOH1IsBggg07OKAEvFxlFQ=","translations":{"en":{"changelog":"### Added\n- **`occ learning:uninstall`** — removes everything this app leaves in the database, so the app can be uninstalled cleanly ([#1](https://codeberg.org/andremadstop/learning-nc/issues/1)). Dry run by default; `--execute` is required to change anything.\n  - Drops all `learning_*` tables, including the legacy names from both historical rename waves, and clears the rows left in `migrations`, `appconfig`, `preferences`, `jobs`, `notifications`, `activity` and `activity_mq`.\n  - Deletes the metadata rows **before** dropping the tables. Leaving the `oc_migrations` rows behind makes a later reinstall skip every migration and boot broken, so if a run dies between the two phases, this order leaves the recoverable state.\n  - Refuses to run when issuer/certificate data exists unless `--keep-certificates` or `--drop-certificates` is chosen: the Ed25519 issuer key is unrecoverable, and losing it makes every certificate ever issued permanently unverifiable.\n  - Refuses to run when any table cannot be read. An unreadable table is never mistaken for an empty one — every guess here is destructive.\n  - Reports rather than touches what it cannot safely change: the `theming` legal links (rewritten by `Application::boot()` on every request, so they can only be cleared after `app:remove` — the command prints the statement), the Dashboard layout row, and the files the app created under `/Learning/` in users' homes.\n  - Tables carrying the `learning_` prefix that this version does not know about are reported, not dropped.\n- **`scripts/db-uninstall-probe.php`** — runs the real command against a throwaway MariaDB and PostgreSQL, covering platform behaviour no unit test or PostgreSQL-only dev instance can reach.\n\n### Fixed\n- **`occ learning:import-pool-json` no longer drops valid open questions.** The pre-check demanded at least two answers for every question, which is right for multiple choice but wrong for open (fill-in) questions — those carry exactly one model answer and were skipped silently. The check now mirrors what `QuestionService::create` already enforced.\n\n### Changed\n- The privacy and imprint pages name the operating company, with the registration details an imprint requires, instead of a private individual.\n\n### Notes\n- No repair step is used for uninstall. Nextcloud executes `<repair-steps><uninstall>` from `AppManager::disableApp()`, so it also fires when an admin merely disables the app — a drop there would let one mis-click destroy every course, pool and certificate. The reasoning, including why a marker-armed variant was rejected, is recorded in `UninstallCommand`'s class docblock."}},"signatureDigest":"sha512"},{"version":"5.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.2.1/learning-5.2.1.tar.gz","created":"2026-07-04T12:03:19.387306Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:43.307264Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"YfFmoFuitzdd9S0evt388jKj56ydtqz4AABUiKwRxBS8pLpwDBnc1PPdvxLLLB/81ngsy7JN/Sair3bFET8GvCrWppH/QOJZQzxqC8DMsQLET+eXEW11WQrh7U2ON29fd+ai9BPh0c66Mb2U0Kshh1VbQhqtTOJHkLx9eV1KoeaMHLdc4euDJvIG2XxSJOIh+uhNOdfkIORIXSHDHL/iuyKvMTdlsq36zQqz86QNVOUKv43V7uFbaGK0t58E7W3IKYP8dAByprTS0Uck8vHf08V0qwfChHxJgl404ag7BCnxntM3aKq33FijSae8ts2EaP79OusLN+aJNmUXLfzYCT/UaE4POgzmDCHf6VrKwIPVymQ7dhNaw2zUjaqM/DBlzKxc9KvQNvGU25QiyjgGmMxXp4TvNIxaR5rbw/Qo3n683dZ7CqQmaNEsTK9k90BxlPnw8A4tQA3L+yQbkrjzlaNRIkyfYDdLyJq1Fz3W8aWlolDSPs5J1ya7z3WMOLxvhcmyZRAWnsKaJhth1P47kriikHRIbk1wZslfyi6PrG0sgpLIa5eiS8gIlbpZplE3h6i8lMvFa2Bi2qlGwU4QtaUDKPn3uE4ZL++p17oa4R1DZwJ3nbjC6ojjZBPa7zzLHAR21obaJ3mynkvIMZPfjBs8F7ZOUgNaeMqrH5LHOlY=","translations":{"en":{"changelog":"> A whole-app security audit (8 review lanes) followed by an adversarial multi-model pre-live review. Every finding was verified against the actual code before fixing; fixes shipping to the public App Store were themselves re-reviewed. No functional/feature changes — hardening only.\n\n### Security — Access control (IDOR)\n- Course-scoped authorization on RAG import/list/delete/moderate endpoints (an instructor of course A could previously touch course B's shared RAG pool); course-membership gates on RAG contribution and on listing one's own contributions.\n- Answer-key exports (CSV/JSON) require export-level access (owner, edit-share, or the instructor of a course the pool is attached to) — not plain read access; enrolled students can no longer pull answer keys.\n- Course-access gates on document index/material-folder and course feed endpoints (previously cross-course content/PII could leak).\n\n### Security — Exam integrity (oracle prevention)\n- During an active exam, explanations, correct answers, PBQ solution config and translated explanations are withheld across all surfaces that emit question-derived data (training/exam payloads, translation endpoints, the spaced-repetition due-queue, and VirtuProf's RAG + client-supplied question context).\n- Starting an exam no longer auto-completes an existing exam by switching course context; correct PBQ answers now increment the exam score even when per-question feedback is suppressed.\n\n### Security — AI / GDPR\n- **Per-user AI consent is now enforced on every user-triggered LLM path** (VirtuProf chat/interview, course summary, AI question generation, note generation, AI explanations) — the admin `ai_enabled` toggle alone is no longer sufficient. The frontend catches the consent-required response and points the user to the in-app consent dialog.\n- Stored chat memory is NFKC-normalized and injection-filtered before re-entering the system prompt (a payload stripped on turn 1 could previously reappear on turn 2); the injection sanitizer now covers the same role-change / prompt-leak / jailbreak markers as the detector.\n- File-intent note generation and chat-memory compression now count against the shared AI rate limit.\n\n### Security — Data-layer robustness\n- Repair migration for course-feature table-name drift (curriculum scopes, question overrides, announcements) — cross-DB safe (PostgreSQL 16 / MariaDB / SQLite), identifier-quoted, fail-fast on platform-detection error, and it aborts rather than orphaning legacy data if a rename fails.\n- Prefix-agnostic insert ids (exam slots, announcements) instead of a hardcoded `oc_` sequence name; entity model aligned with the shipped schema.\n\n### Database\n- `Version009900`: idempotent, data-preserving repair of legacy `learning_curriculum_scopes` / `learning_q_overrides` / `learning_announcements` → `learning_course_*`. Verified on PostgreSQL 16."}},"signatureDigest":"sha512"},{"version":"5.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v5.0.0/learning-5.0.0.tar.gz","created":"2026-06-28T21:57:12.789417Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:41.658161Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"QPVnxiwJELOU6fw/Mnt31lPo9vwC3rVQXMtlqzYe6bNyTaq9hE6cKJGl61stgSGJaokwCCZOK3xG9aMhVng80khs2OADvguhtH0u+75IQmVpVQBZs9F4Ksh+qjwoI/m/j7o37tSsNi8MT5AoZMGl5QztB3RIR6Ir6WXARaJ9LDLIAv01Ufh1Sh3QubLeR/qnRmi7aiTdSixVy3ipiTPSP99IQ8whFyWml6E3E78Yzn1hdE269W013YjN38xnAZSP34LAU2I2NKCwne9d5v3fIhu2Ky0zlMlpNWY1MAhEBMUZcRYAcT3HdVmGq6xnW783+PDJO2CMAvsWFHmrGAW+3XkaduHK0jPmLfBw7WygDnFnxZTmOERiocYQ9WPmb5JAjFsZ/1+C5iGL6ZY9k4Bkr7oGCXYOCAqGYAYdBc7sY/s8QRa20+r5GO3CQKOOKEgIEFfF0ydDKOIWz3wQwEf9iL/Mz5RMgbzXgo797W30G1nViHoIgoPVnAipitPJxgvms20mhtB/V6HbqSGpGc9P2uIOoxLXQk7tZ8W0vhK+DG486S4Pmmk2Vw9fpZ5Wm7kAoNj1JYJtfO1OZ8mcpxX7hSPLZ7ChtpARjEJzCuB2pv5kYiYOiVHXvnZ5ZGPkT47A6TzVUm5Mc0Lk+rUadRvJiRT/4P2h7TvMSh+ofOTkBkk=","translations":{"en":{"changelog":"> Versions 4.4.8 and 4.4.9 were internal migration-vehicle bumps and were never released; this entry covers everything since 4.4.7.\n\n### Added\n- **Signed completion certificates.** A course can define pass criteria (score threshold, validity period). When a learner passes, the app mints a cryptographically signed certificate — a W3C Verifiable Credential (Ed25519 / VC-JWT) bound to the learner and the course.\n- **did:web issuer identity.** Each instance is its own credential issuer via a path-based `did:web` derived from the server URL; the public key is published at the app's `did.json`. Issuer keys are generated with `occ learning:cert:init-issuer`, stored encrypted at rest (ICrypto), and can be rotated without invalidating previously issued certificates.\n- **Public verification portal.** Anyone can verify a certificate by its ID / QR code on a public page. Signature, key status, claim binding, revocation and expiry are checked as an AND-chain; unknown IDs leak no personal data. Course owners can revoke certificates.\n- **Compliance report.** Per-course completion/compliance report for instructors and admins (who passed, when, certificate status).\n- **Certificate view.** A printable, A4-ready certificate with QR code, a prominent Certificate ID and a verification link.\n\n### Changed\n- **Avatars overhauled.** The default assistant **Nova** is now a full chibi character with emotion-aware expressions (neutral / happy / sad / surprised / sleep / celebrate) instead of an abstract shape. The three scholar skins (Theoretiker / Kosmologe / Astrophysik-Popularisierer) were polished — gradient shading, larger eyes, brighter signature accents.\n\n### Setup\n- **Certificates need a one-time key.** Run `occ learning:cert:init-issuer` once per server to generate the issuer signing key. Until it exists, the admin settings page shows a reminder and no certificate is minted when a learner passes. See README → Installation → *Certificates setup*.\n\n### Database\n- `Version009100` creates `learning_cert_keys` and `learning_certificates`; `Version009200` adds `revoked_at`. Verified on PostgreSQL 16 and MariaDB (the `credential_json` / `secret_key_enc` TEXT columns are intentionally unindexed to avoid the utf8mb4 key-length limit)."}},"signatureDigest":"sha512"},{"version":"4.4.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/andremadstop/learning-nc/releases/download/v4.4.7/learning-4.4.7.tar.gz","created":"2026-06-20T08:33:47.269700Z","licenses":["agpl"],"lastModified":"2026-10-15T08:25:39.907259Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=33 <=35","signature":"ftN/YerXrcUvkvumEZrPZISqpuiPEQ8z9LhPDuW05huisHlIYypdnqnbJbDtVB0cRS/4wHWWZqLS66JZbEYnaiyq5FzvS27ama++aIoPDUjCnbO1kT0dZKegpMuJbe4/EZIhMoRgfFGDd7j8Tz21tNa2oAA5ifka1JMgdZ3zyuGkNE4N3PHwszsZY0PYM3Vk/KOX/NKZJDQQY+B1xURqqULtDn+X5vO9uumUU4gyZTWY9x22Sf2rRg4Tt9MdKIkKo9AdCT18OPc0ymsQQU0Ijp01cw7M2hopuGvcnBUjYJV0ALDw1ChMJjXEjxMM8GK1bST+Ge9Mwc31vKIhb3NC54p58m3DmFdkL/+pSXSWCGWdIJ/hOBlrVDVssSVXpqaFAjL0k0owI6O+ZHD2cnIKX0Nc2tUblKgMZmEtX75TLeZ8wENMYTcOVe56+9jCYarHKVEsL1Nx0i4XbqoN/6OTXSyrVbxG3barZL58DCO6Nla+kUFjILEsbV88eIhl+2EYuidefDeIbr4SMNYU+JabbgFj9/4QO8lYuoah7r4ox/RHvKhM8koNabXuPngLv3XbQY4rb7qJqfrkbSzFJuHCGPUlgZLWfGIfEf+euCrkwWlQdjFjQhFh73gHveHttfc6ZpOUttCgza6qSZ7GliplIxEuYGjC6BxEKEB/5mka84g=","translations":{"en":{"changelog":"### Fixed\n- **`learning_user_stats` had no primary key (#24).** Reported by @haecks on a fresh NC 33.0.5 install: Nextcloud logged *\"Table 'oc_learning_user_stats' has no primary key and therefore will not behave sane in clustered setups. This will throw an exception and not be installable in a future version of Nextcloud.\"* The table was created back in `Version001200` with only a unique index (`learn_ustats_user_uniq`) on `user_id`, never a primary key. Since there is exactly one stats row per user and every access path addresses the table by `user_id`, `user_id` is the natural primary key. A new migration (`Version008000`) drops the now-redundant unique index and promotes `user_id` to the primary key. The migration is idempotent (guards for missing table/column and an already-present primary key) so it is safe on existing installs and re-runs. Verified live on PostgreSQL 16 and independently on MariaDB 11.4 with `utf8mb4` (the `varchar(64)` key stays well under InnoDB's index-length limit).\n\n### Fixed\n- **v4.4.5 shipped without the `data/` directory** (starter pools, campaigns, simulator scenarios, `privacy-info.json`, PWA guide, course materials — 77 files). The release build followed a `cp` file-list that omitted `data/`, so on a clean v4.4.5 install the \"Add starter pool\" feature, campaigns, the practicum/simulator scenarios and the privacy page had no backing data. v4.4.6 restores `data/` (verified: tarball file-set now matches the last-known-good v4.4.4 manifest). The i18n content of v4.4.5 (#21 + #19) is unchanged and included."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYW5kcmVtYWRzdG9wL2xlYXJuaW5nLW5jL3Jhdy9icmFuY2gvbWFpbi9zY3JlZW5zaG90cy8wOC1lbi1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYW5kcmVtYWRzdG9wL2xlYXJuaW5nLW5jL3Jhdy9icmFuY2gvbWFpbi9zY3JlZW5zaG90cy8wOS1lbi1jZXJ0aWZpY2F0ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYW5kcmVtYWRzdG9wL2xlYXJuaW5nLW5jL3Jhdy9icmFuY2gvbWFpbi9zY3JlZW5zaG90cy8xMC1lbi1zaW11bGF0b3JzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvYW5kcmVtYWRzdG9wL2xlYXJuaW5nLW5jL3Jhdy9icmFuY2gvbWFpbi9zY3JlZW5zaG90cy8xMS1lbi1wb29scy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Learning","summary":"Self-hosted flashcards with FSRS scheduling, IT simulators, AI tutor & instructor analytics","description":"**Learning** is a self-hosted learning platform for Nextcloud. Your questions, progress, and student data never leave your server.\n\nBuilt for IT certification bootcamps (CompTIA, Cisco, AWS) but works for any subject. Instructors create courses, track student progress, and identify at-risk learners. Students drill with scientifically-backed spaced repetition and hands-on simulations.\n\n## Why Learning?\n\n- **Your data stays on your server** — no cloud dependency, full GDPR compliance\n- **FSRS adaptive scheduling** — cards are prioritized by memory strength, not rigid intervals\n- **9 interactive IT simulators** — CLI terminals, firewall builders, DNS resolvers, subnet calculators, network topology placement\n- **AI tutor (optional)** — answers questions by citing your uploaded course materials\n- **Verifiable certificates** — issue cryptographically signed, publicly verifiable completion credentials\n\n## For Instructors\n\n- Course management with pool assignment and student enrollment\n- **At-risk warnings** — automatic detection of struggling students\n- **Chapter heatmaps** — see where the class struggles at a glance\n- **Curriculum timeline** — plan course schedule with milestones\n- **Admin dashboard** — CSV export, course archiving, cohort merging\n- Campaign selection — choose which story scenarios are available per course\n\n## Certification &amp; Compliance\n\n- **Signed completion certificates** — every passing learner receives a cryptographically signed (Ed25519) certificate, minted automatically\n- **Public verification portal** — anyone can verify a certificate's authenticity via its permanent URL, no login required\n- **Compliance reports** — organization-wide completion overview for audits and works agreements\n- **Mandatory training &amp; recertification** — assign required courses, track certificate expiry, and automate recertification reminders\n- **Tamper-proof audit trail** — every issuance, revocation, and completion is logged\n\n## For Learners\n\n- **Smart Queue** — one-click review of all due cards, sorted by urgency\n- **Training &amp; Exam Mode** — practice or simulate timed exams\n- **PBQ Simulations** — performance-based questions with interactive CLI, drag-and-drop placement, and wiring tasks\n- **Story Campaigns** — learn through real IT incident scenarios (WannaCry, SolarWinds, Log4Shell)\n- **Live Duels &amp; Sprint** — real-time multiplayer quiz battles via Server-Sent Events\n- **Gamification** — XP, levels, streaks, 10 badges, seasonal league\n- **Maintenance Mode** — long-term retention schedule after course ends\n- **Trouble-spot cheat sheet** — export your weakest topics for exam prep\n\n## AI Features (optional)\n\nRequires a Google Gemini API key. Without it, the app is fully functional — AI features are simply hidden. Each user must explicitly opt in before any data is sent to the API.\n\n- **VirtuProf** — AI learning assistant with RAG-powered answers and source citations\n- **Question Generator** — create flashcards from pasted text\n- **Note Generator** — AI-powered topic summaries saved to Nextcloud Files\n\n## Question Types\n\n- Multiple Choice, Free Text with fuzzy matching, PBQ Simulations\n- CSV/JSON import &amp; export, pool sharing, multi-language translations\n\n## Technical\n\n- Vue 3, Vite, Pinia — modern frontend stack\n- 1220 unit tests, PHPStan Level 5, pre-push quality gates\n- Native Nextcloud integration: Dashboard widgets, Notifications, Talk, Files\n- AGPL-3.0 — fully open source\n\n## Requirements\n\n- Nextcloud 33–35\n- PHP 8.1+\n- PostgreSQL 13+ or MySQL 8+\n\n**Looking for pilot partners!** If you run Nextcloud at a school, university, or training provider — we'd love your feedback. Open an issue with a bit of context and we're happy to walk you through it."}},"isFeatured":false,"authors":[{"name":"Andre","mail":"dev@quizdojo.com","homepage":"https://codeberg.org/andremadstop"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhL4MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjE5MTIwNjM0WhcNMzYwNTI3MTIwNjM0WjATMREwDwYD\nVQQDDAhsZWFybmluZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALi7\nIyOTssJkAP8hllbLrwWmuhi3R8D6GZVB4inBQfUKu4lcShFuqanFgEipA17sikdW\nktyrbqV2MhZi7UJSPFarnUP8zf7uBLh79mvSb8dMoqorR+lqZpPbAj3a1oKkU7hc\nMLjkYNKuFJlKiJnyJDGASzff/eZCdTjnk1q6w3w8C4NGVKlrt4Cq44NKi4jSfEL2\nWMaifKaAnpQRRHR59BIggtGfu5SbThTyy8dHeeYSQ+x/0svIBiaRA4jrvqn0kMx5\nHoLXgS3wuAZgjC40sI7Mw331Glj8GkAJcJyDJyQE/H/ZU4rKrvcaQHL/3MlmGTR4\n/cjPfDhCzUYt5E/j/Y+TF43GUjNatzXf86aGvlxz9ajC8nfdwTCaa2ty6xnGh6dj\nN0BqWTeRWOVWTrKXN9Ajxbhq9/wVI3uknRdIMZHM3kd9Gl47ha5SGxJh0vpUtayq\n3ZMFnQjpQDHWq9rHDGwAa0i9PqvBOPRXerezJhFBtaYuNNT7IYB9q5pG3aFAG8Uz\nYFKrbuHP9+23s+6ccH2nDnkwKCIg+lImmTjZfhIqiAuxHYPBeQvT0ObCaWW7oH6d\nXucjHsA09ql3lN+lsa6OlFNSJugeRaZo8SDmM0YZgaIEmK/g217A8NKA+2g1rSmF\nhkRLTrYFCrP3XPY62eq+jB5kL0A5IzwAJdd4WlNrAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBABNbpoehsB5WXmkJgDYPpP+z/YksqVeVg0k+79iwAJzaIyISkfqSkt5l\nDGKcfDPYOCw+nhrWZWyI8mS6noWvYVHK/AWbSI4uuBkaC8t8VgpBvBlRDyui1ewq\n11fne57P9cQNHwk0PGkjvsAhykq/85AXks1iIKP9sjzrmrv0s61tvbE5LJtulWKY\nSbkzDiFGlQFAAKIm9z6UUENNMty8QkBMFrLd/MxSEfY0x2YcOEx8ptB07AMNPzwW\nt0k6ykD59OzU+t1SsSqWEih3wxP8FkO5XSxrFlXK/L5f55NpQeel3vh57a5fGQb6\nUI4RLlKb/qz3o1Bj1qdKBp32qx6G6/Q=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"interfonts","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/solracsf/nc-interfonts/issues","website":"https://github.com/solracsf/nc-interfonts","created":"2026-04-08T13:57:21.654309Z","lastModified":"2026-10-12T17:50:46.236242Z","releases":[{"version":"2.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.1.4/interfonts.tar.gz","created":"2026-10-12T17:50:46.224840Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T17:50:46.289045Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"DDzhwSzdhi8U3G657rK/ayMtHjOj6ffOfu/34/IMNZ1LZvpJeOi7tkISTn3dYfyvqRhDrAktJh9jfS0cd1HjerFR0ViNzgmErfckhgI+vQvONej/vCAtFBBlV98LQdcPG7sdL0Zb417cad6XgCE+yruTdi/AUxiyGf3j5jcC0vqRLfix6S2VB4xmg+JB2eodhFXp7EY+83Wz4C5i0Dg7LDDncQW2Zb0PjPEZ4Qf+IjgEQVb4tJTnFnxtFKqpRx+7oXuo5nHy8TUqkA0i76nGQ0zNrCKK6v1zxWolBt6tL6q6Fl9UP9RU8SX9PNb6mvmGH5P9PoceH4S2Y+3ZyKi4p+UjgOHGd01i4sqgpO/+PNLPNXBqqJbHhjAumYJ0EefWp4jHnfLcBsbxq7D2+BdeHQ64trxLoJEVngfv1zEShlq1Hmhfw/NJmx+EasidFX9uRyU/jv6x/91zfrTX9YI5h2ppvIs9kRMhKPm/SbGiFNaT3Xg5HcmZhV/4FFzQajI1rBtCJUUtAsTat0DX5DK5MmFYJSZEWXcK5KByInIFiQLjAGvHK6ALMD6YoWCSxFUXidkVBPgI/kC5ZS5Hyq11FqsbSK8M+8+WO49DeS/5hCQ4sJg7OuGSwn+vFjieKyRkgnHqkQTjhkCfn/t7ND7xKMzijgyFrQbJw5VZV4EOlog=","translations":{"en":{"changelog":"### Changed\n- CI skips the PHP lint and unit-test work when a change touches no\n  PHP-relevant file, so font bumps, documentation edits and release version\n  bumps no longer run the PHP setup, dependency install and test cycle\n  three times over. `composer.json`, `phpunit.xml.dist` and the CI workflow\n  itself count as PHP-relevant alongside `*.php`, and the check falls back\n  to running everything whenever it cannot resolve a diff range. PR #22.\n- Integration smoke tests now run against Nextcloud 33 and 34 rather than\n  32 and 33, now that the `nextcloud:34-apache` image is published. The\n  supported range in `appinfo/info.xml` is unchanged at 32 to 35, so\n  Nextcloud 32 remains supported, it is simply no longer the version\n  exercised in CI. PR #22.\n- The `force_version` input of the font-update workflow is passed to the\n  script through the environment instead of being interpolated into the\n  shell command.\n- App Store and README copy no longer uses em dashes. This affects the\n  `summary` and `description` in `appinfo/info.xml`, which the Nextcloud\n  App Store renders verbatim on the listing page.\n### Fixed\n- Workflow comments no longer point at `release.yml`, which was split into\n  `release-prepare.yml` and `release-publish.yml`. Two of them also claimed\n  the release flow triggers CI through `gh workflow run`, which nothing in\n  the repository calls, and one placed the tarball dry-run job in\n  `integration.yml` when it lives in `ci.yml`.\n- README said \"trough\" where it meant \"through\", twice.\n- The weekly Inter font update can reach `main` again. It committed and\n  pushed directly to `main`, which the branch ruleset has rejected since\n  it was activated on 2026-04-27. The failure stayed invisible because\n  Inter has stood at v4.1 since November 2024, so the push step never ran\n  and every weekly run reported green with nothing to do. The workflow now\n  commits to a `release/vX.Y.Z` branch and opens a pull request labelled\n  `release`, which also gives a font bump a full CI pass before it lands.\n- A new Inter release now reaches Nextcloud App Store users. The font-update\n  workflow published its own GitHub Release with no tarball attached and\n  never contacted the App Store. It now hands off to `release-publish.yml`\n  through the `release` label, so the tag, the App Store tarball, the\n  GitHub Release and the signed App Store upload all happen the same way\n  they do for a normal release.\n- The changelog promoter no longer inserts a blank line into this file on\n  every release. Both release workflows printed a newline before the\n  `## [Unreleased]` heading on top of the one the text above it already\n  ended with, so the gap grew by one line per release and had reached nine\n  by v2.1.3. Collapsed back to a single blank line here.\n- A generated font-update entry no longer links to a `tag/vv4.1` URL. The\n  Inter version string already carries its leading `v` and the link added\n  a second one.\n- `gh release create` is no longer given `--latest` and `--prerelease` at\n  the same time. A prerelease cannot be a repository's latest release, so\n  the two flags are now mutually exclusive.\n- `<pre>` elements keep the Nextcloud UI font again, so Nextcloud Tables\n  column descriptions are no longer rendered in monospace. This regressed in\n  2.1.2 (issue #27). Content in `<code>`, `<kbd>`, `<samp>` and CodeMirror\n  stays monospace."}},"signatureDigest":"sha512"},{"version":"2.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.1.3/interfonts.tar.gz","created":"2026-07-19T10:19:23.507699Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-19T10:19:23.558963Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"XRLUTR6glEM8Xdi2myHC53zybfoRdAGpcQG4aq7Ydw3qj4XsoKS9dD1zx++kiUWRjoL+WPGngS+e2FL0G7Ff651JI2yKFC4AUzkmO2lqaTG55EqP8PpkvytMpdYDP7W5CAnQuXeYG1ftUK1DvcGhwMkV6jaTuwy/l3KXFoXecEfnyeAnehPRjAtZJUoFimHmCHqCKHtLcKTwRpCoxfTTgVb4QvlpDuVw9Po8TbAK1mOCcjxkXco7xIlC09C+VdGbuExyRXVnwELmX8Zks7AhKb8q04YbCuMO2edX/AYTJ4e8S8ucSovkS+qhL3saK6sXLNT43G6cm9SG7JSo+4dCgLYXEVD3tVBWr1DNBEHeLEvLl7dNMZC3lI0iqNHDYUue4u6eCcZ30BjhA9jAE/z+wpmD+oCWUMlIb3kq2VWG3cQA+8Wr7v7EkvljzfuviEMYjcwc34NArxG7FicuzJPEKch38+/Lv9z2Fm50mmOeU92NJ99lY7dZE2H2tkaIO1Kn5osiuSerJ8XThMIUaOxmXgSvgrKkMeDlf+1UlIKQ5Y7N53nmEn7DMTelmYTQNfY7AGKK9sm5cke2lnwTYdaQcPptLNCP1H0oJRamJvRn9a1YpPV3XIPH7ZOr5wB20iyTQQfzLsxMvXWrFNzFDOypxLtY6jclSdTzCxdz22Rvl4w=","translations":{"en":{"changelog":"### Fixed\n- Icon fonts render as icons again instead of as raw Private Use Area\n  codepoints. `<i>` sat in the italic rule's selector list, so\n  `font-family: <Inter stack> !important` applied at specificity (0,1,1) and\n  outranked the (0,1,0) class selector that every icon font declares its\n  family on — FontAwesome (`<i class=\"fa fa-user\">` in v4,\n  `<i class=\"fa-solid fa-user\">` in v5/6), Material Icons\n  (`<i class=\"material-icons\">`), Ionicons and Glyphicons. Reported against\n  [Nextcloud Passwords](https://github.com/marius-wieschollek/passwords),\n  which renders every icon as `<i class=\"icon fa fa-{name}\">`.\n  `<i>` is now omitted from the rule outright rather than excluding one class:\n  the user-agent stylesheet already declares `i { font-style: italic }` and\n  the Inter stack still reaches `<i>` by inheritance, so italic prose is\n  unchanged while *every* icon font is fixed — not just FontAwesome 4.\n  The integration smoke test now fails if any rule targets `<i>` again. PR #15."}},"signatureDigest":"sha512"},{"version":"2.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.1.2/interfonts.tar.gz","created":"2026-05-11T12:06:10.389921Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-05-11T12:06:10.433381Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"Q8bS/74iqBcWSC5Hpd+1ZY3MqB8PadEgKYtE21A2NRaZ+PDAHaPoVV7RHmSlqBPWWZJKW4S7wcQesLjRLh+3dB6MsJ0NnoBkR26FXOA8YW6voOivLTITzMQmEspGlRriWNHB8XcMVugVuAMQhl+wtz6LF6kw6FeaN5+H53/jdEilnVUn+B7PtrB024ikPhtv+4kIKuxbDyMfwVuEWl2ngmBBB4qfY79LtXV2p/loe5oO9mjd1nHQXymjbqHRQmTIU9wSOLKxJ+0/QO+w7m5hOvBqW7ZZLlQuTpQ4JRq3qteBrm3AJeN+H7eIPmHBnoEyNfaJHt9i1FFM2LXMYf4QX1lIsz93dJYShCDdkoebKODwQeQjYLymBVAczUizLb4sDX8PrI/oqecger0nAa/xaAm9S/c659J+n8e9Rzojb3tYKpazxWz9aPqmrP4UDB4aJks3qv/DXc9OmgCv9z4xV3j7pc2fcIqUj7h2kvczu6e2zJK9DPh7EcrVHWVA1D7hGfEe01WEo2eqR3qizNwRSyER6VPnJ7sKn6a5YK6iet35X6Dm2tGzfeyeTWuAWFPvowKULULChtNAKoO9xZ3bv5Jxjz3S/KgDD1cOgsF0lR1dCN4CAEolOIsg33NTAZskjE9iGzxc6j3poMpWnid5FDmcEqLTp5I8zK8SCebfuRU=","translations":{"en":{"changelog":"### Fixed\n- Code-like elements (`<pre>`, `<code>`, `<kbd>`, `<samp>`) and CodeMirror\n  surfaces (`.cm-content`) now stay monospaced inside rich-text editors.\n  v2.0.2 added `:root [contenteditable]` to apply Inter to Tiptap/ProseMirror\n  body text; `font-family !important` then inherited into descendant `<code>`\n  and `<pre>`, breaking code blocks in the Text app markdown editor and\n  inline code in Notes/Talk/Collectives. Added a follow-up rule that\n  re-asserts **Nextcloud core's monospace stack** (`'Lucida Console',\n  'Lucida Sans Typewriter', 'DejaVu Sans Mono', monospace` — the exact stack\n  hardcoded on `code` in `core/css/styles.scss`) on code-like elements, so\n  rendering inside our editors matches the rest of the Nextcloud UI verbatim.\n  Also resets `font-feature-settings` so Inter ligatures (`==`, `!=`, `=>`)\n  cannot leak into code regions. Issue #9."}},"signatureDigest":"sha512"},{"version":"2.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.1.1/interfonts.tar.gz","created":"2026-04-27T22:03:41.873417Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-27T22:03:41.930327Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"uIXZ7a78whfJbG77BC7auI/lVOFkgpWOsq3yhXPFNafRrsPAIQk09WKGJuv22B9ZewBSeRRtlHRwfyfxgprGDQdk+IVIEj9FFhHAUXidebjTGOyX95sMlPy0/H3o6HHUchSlqxBRomrgAXDo4fICq5HJvE7+QWi5RV60WumaIDDNmJc4HzxDbBVuXyqcNID3IjZIG2nRmJl8k1agnSOxw+5JAn9/8IV+Wa8vJwSJSCtFuPveZKQXxll1rVDYf6H2T5zJvaL/9nDu/PE0TwxG6o6T3VBhie+5FPslk9oe9mD1U5N/sTRJNz+CcYuA9rCt0lT3YnkafBXfqdAUFYZhwSbab/6DJhIVqEUoc4dwvXQpnatNZMo991Z7rX8b/7Iybd54QwRo/zDc23NE+3+4ZA0cbJaA/dVw3aV3rNFVRK+5lcogIbBB4O0zBmPQtZNly3tT0Nbr3+wo2Z1KyfVRa6f1J+wjTJ8SSxSJ8r+IdmjoKLy9J7yhXspJEJYcgEzAPpFA7JYEJ88sYxiUqpIFNHLqjyt73rBrp8WTrGvf6QxbFrRl5hKf7kthnmCuGyq+lVRbjp2ZQ0hDEjA9e2TAdOP6gpnD/g1VUrz1zIZzsCeXzauGSB2hKLH1/tJ1b7yf2TYc9mTVX4rH/kdjLmmvkhHQWJQCNz8sUxuSghGzQrU=","translations":{"en":{"changelog":"### Changed\n- Version bump from 2.1.0 to 2.1.1."}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.1.0/interfonts.tar.gz","created":"2026-04-27T21:51:08.995433Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-27T21:51:09.061930Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"VdZzYC7Exm7c/5g2C7TnpgMqBt8Ngj6D5Pqq48O5UQ97QM6aRbzyzBNHHniUm/2D40+ngGP3BSsGZyNoI2qBARyJAcujV1jBGcschLDsj2nsl0iP6fG3OmxwOMvtNCYD7fd2bXt8uEVyIRqJSiW6qxioTZPBZQUCSFJAkZsp7xtr6ChbmQvLfK6FZVTqzNyzT1cAw0FNUCR8YcqPM6GG4SROgJecfHVDxdcl24FzyjdoLJQZZTCFo5hxAVopsYLT+sYnx0SDEfyhCjkiCpmwzISnNyYaNCJpYjlpqOTlsHF1KnT0MjRjem/TaAiQINk7l2xyFFuQ+wbm+JykagT6//J+XtoiDXHzqnj7scPEZxjYDOp7MqNLdHGNNdIaVNLhfZTo6DssM9IYOT4eo+EofSh2h+fCK6KseOgDIlNaisl4mKAWRmDlYET6ktXgIOVINCaIgdoOhv9BLEQ2G22QUHNSa5x2jeVFk0v4LoI2WU86oOLT+ITHw2+FTlpaNo64WibsFbWo7AdOGY7roGxYo01cXzOloN6iqS0GH0MqztaZilfKZvivl1rAxaxOueD7EfXGou1snpqIsJCXFWSld7XHZH1sjLztQu8cJomFsfBK1mi5rXlNslrLACdB/Cq1nqhNKGaSRXt3trkRib2G6Tfa5JdoX/72LL+yVXSyoXU=","translations":{"en":{"changelog":"### Changed\n- Version bump from 2.0.4 to 2.1.0."}},"signatureDigest":"sha512"},{"version":"2.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.0.4/interfonts.tar.gz","created":"2026-04-09T09:22:54.040635Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-09T09:22:54.102089Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"YCXrQBpRe18fqLoqOn4mMrHqPx1TXb4X8n6mvTMRYN16DDt8CPLSiURNg4wDFuU/Xr0BN2YNaZIq2qindPjoiUn5aMbP3BCzq74T287EoQWYH+OlK7PrhFqwHMh4M+cRtsfD/oLJ8fPNlQZH4gn0Fdknta8DIxCpK5k9n6tbEKOfia1rl1bO3G8ybepUDrIbf+kZaqz9T8YZL0qDWTabaYTHkfuLQp4uIYlOa42+/vLw6obg14nQOKincz07aniS3hvExE5f0MphLOD+j9e9ZPs2IF9YkyazuBDaQlsabKQQhl71Lh4ulaR9N3aphSoaIsiMbwiKcoou410rwgCnYNFfBn4wB2epoWeaJFdYU4EWvbm9qD32myuHOvqfSu2czlKSal3X9xlTcA9UjaW6wGqif0AQTPbIHaqNpo7bsB+8EowPZbA/w9HFMcfEMAh8Bc6QpU04WmVnbZnH/pJlL7J4N9351VGu5BUZLimh7zcpDwWYuR91pNzUtOGem6tbKgm3kxtBLTPT3SrYhsZApyrKneBhUKiJSLqzG2pCM/qOVKqs5HzEIePXYuBRqvVerw1AqDI3pn0/rh2c+ag9p0vCBtJ38uJ+EOJIpmUF2rW1aduD/5Jaq2nfudPrn2js9Jyz9zORZYbOwAlXOy2IWMDlx0v54cSunAcrW36SuWs=","translations":{"en":{"changelog":"### Changed\n- Version bump from 2.0.3 to 2.0.4."}},"signatureDigest":"sha512"},{"version":"2.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.0.2/interfonts.tar.gz","created":"2026-04-09T08:58:01.783096Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-09T08:58:01.835653Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"kNjM+RcPuRkxvVoldrS51V8LMQ977dR8oEJqCvA633rh44mYSr5pd4Iq4fzGOm+R8SuufOY51wg+anb1IEG+yL7+KtaA7z0mJy2YSW2RO6DomO/FhX9kPnh6B4jJNcEfvP9nrxCKpj5vwAriVhHWftnCuHvr9/rP0xlr8MlU6fjDLqsgtN3GZrJZRB5g5zhHPq24Fllfs/NUO8MQFwF3PY0XsxiPse+UiSDEHxqMZ49aphyOJEznEZao+NwXSnBz+prbf8R0t2tazTI1q1HAccw61LYd8HvTTkckbjWgmy3HvUtwmkKseEQbJahgnjgplfUMZgkxwJqvSyiuHGZ5CKbTScoTuUIaLmG0xmzcLexudSc4G/IkQiMrwXPfOeke6dWD3v3ebDZMs42e+t1lgRfyYzcLdRkEHz7Gram60YXNuZnJcm9jw9Zmn5HgwwhM4iy3Ps7cIhXs7ir/ZQXbho1itD9yUJ1KLs/fnH8L79Hqf6ASpaShwXEkged72hDEACxL9kMuI5jNm/AHgVy7dd7RYEI8+CD/qxWvybvpFBrvJ1Igq/kYDyfivCeTVcd/UgasjFwsLKJedlRFphMjvEDNCKQSnbhO6AdzXG+mMt4saU11NyzZTujtqtJ0uOi1aZkocfHkAmVyfT4EBu4JddTbmTCCzXGV3/5hXu/pt/A=","translations":{"en":{"changelog":"### Fixed\n- Rich-text editors (Tiptap/ProseMirror, `contenteditable` divs) now use\n  Inter. Nextcloud's `inputs.scss` targets `div[contenteditable]` directly\n  with `var(--font-face)`; added `:root [contenteditable]` to our selector\n  list so the direct rule is matched and overridden.\n- `<strong>` and `<b>` now render at exactly weight 700. The user agent\n  stylesheet sets `font-weight: bolder` (a relative keyword) which resolves\n  to 800 or 900 on a variable font; pinned to 700 with `:root strong, :root b`.\n### Changed\n- CHANGELOG update logic in both release workflows rewritten: promotes\n  `## [Unreleased]` content into the new versioned entry and resets the\n  block to empty; fixes header duplication bug from previous `sed`/`awk`\n  approach."}},"signatureDigest":"sha512"},{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.0.1/interfonts.tar.gz","created":"2026-04-08T19:05:59.424624Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-08T19:05:59.465412Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"QkVCh6QBTzIv6zp50Y9GdL2OCi8B/cf+f9Z2rIFfFW+oz5BP2nzW27FdVUbcpR+B0HV2e/WEs774DwIuf84zPiIucoj6fEkNPL3onSA/HZY/P6Km+pydjXp9v3C90EL35m2selbTwU8kNg+OcatXkToy5LvWHYI39Qrxlq2Zhkg/x84O+Om9OBSWD04V8A9/5+Aq8vpaJEVjgZKXlxHcg+756Dv50ac6ko5Qkxvb+PU6ijzcnmizxJuanPydUXb3WK+P37tof+ielU0Iem3iKZNFnc86g3xWvYHNSaB5kH7mV73bGeg80Oja64Lm4zR9httKzHy4kQder5H8K8biUDfxixpul7OZ6qxQWQfR6qDm6ojjmSyN0U312/GhLTCfLP6tk56cPbK54wMwKu9Z6X6c7Plk5/kSr4DQ+W3sHYqOKF9uxLLDESfHGFh2l6LFiNSGW/Tlj2FCT/P/Q22xYJVN7EePPEtqgVS4SOBpxDU9MpoyB6WyNHIaByHZjdN4xslOPZmjzcJBbHbnLhkUZtT/sOeToy93L0GP7icesZsyQgpxv7x1qvx04bC71RYBlYgTUUtO77N04vlaROYABOd8WbBqgKnc8qyqFxbSFsZGRyACVzxDVIz/0Ywkj5EGJ9ITtnilD44T6Z/GRssc/sWYCnE2B8U+RL0vCE8Ne00=","translations":{"en":{"changelog":"### Changed\n- Version bump from 2.0.0 to 2.0.1."}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/solracsf/nc-interfonts/releases/download/v2.0.0/interfonts.tar.gz","created":"2026-04-08T14:19:20.210308Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-08T14:19:20.751171Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"CfXuWS4EtUg5rh6Y8osjywFwXkszEVoS0iWjVZcPya9ezdMOUGVsc8k1CeoNf4ytUJ+Cl5mLzytDY9ylq6VGGSalHiVSRAhcynB8MmO/thkc0cd2SQVVnIra29e9DWj5loJ929smwBg4Haxp+VzHEB49cLG8+/5GYFuACKnuMuqje5PFhMc7XW3PXqnIEIU+oVxsfIT5DDUa3bSznJE2mRYrQ39uJk171EwKshQX9tgetMqPVhD/4Yx8ZsIgBr+qo5LjXNcqDNNtmuO2Id++Ywm6NMvhI2I0PNnY8rD6Yq4aySKW2G/0wxg2gR2ZYvPpqIVkSwdnX06uUw0DHJRiY2gtd/+kA59o/xiEAnpfF84xh+6w9USIX/pJ9Z9+5MCmr54xlSSJiv00Y1q2nbxw5s7kRbpl1ZjMueHGqufXwiwsB69Slqv3Cxce5N3YR06qMSRwoxr5MqHJT/qlaAM5yMS1dP1AoVrBkbfzTmkAVzg1ftV7KjtcYNjYMJNV2Ay6CrJHmAt5qMqaAL2RpAb6dN5HzfyxdDhx4ms6vXMnj3WRbPtoPWvhzFpMabzCZMrzJowpD3aId1GkQ+dm1rUFkLF3A4+GHxtcpTjH8iSAIh98wYu4+Ktp74YMg7HSmXXxfzPFtGNOXDy6Gyc5LzRZ+iHD50X7oogPmzOMxWjwXkM=","translations":{"en":{"changelog":"### Changed\n- Version bump from 1.7.0 to 2.0.0.\n\n# Changelog\n\nAll notable changes to this project will be documented in this file.\nThe format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzdjYWQ0NDVlLWUwMTEtNGY0YS1iMjExLWUzZDlmYjIzMTVmNA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzhjMWM5ZDg0LWQ1NTMtNGEwMC04ZTZiLWRkM2QyNmIyYjk0YQ==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzL2Y3MDNlZDhhLTljZDEtNDg4Yi04NDE4LTVmNmJmYzNlOWM5Mw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Inter Fonts","summary":"Replaces every Nextcloud interface font with Inter: self-hosted, zero external requests","description":"# Inter Fonts\n\nSwitches every font in the Nextcloud interface to **Inter**, a highly-legible\ntypeface designed specifically for computer screens by Rasmus Andersson.\n\n## Features\n\n- **Zero external requests**: the Inter variable font is fully self-hosted inside the app, no Google Fonts, no CDN\n- **Single variable font** covers every weight from 100 to 900 (roman + italic)\n- **Zero FOUT**: both WOFF2 files are preloaded with `<link rel=\"preload\">` so the font is in cache before paint\n- **Zero CLS**: a metric-compatible synthetic Arial fallback matches Inter's vertical metrics until the real font swaps in\n- **Works on every page** including the login form, public share pages, password recovery, and the Impersonate / Guests apps\n- **Works in sub-directory installs** via runtime URL generation through `IURLGenerator`\n- **Cache-safe across upgrades**: font filenames embed the upstream Inter version, so a new release automatically becomes a new URL\n- **Covers the whole UI**: navigation, file lists, modals, popovers, login boxes, dashboards, and more\n- **Tabular numerals** on file sizes and timestamps so digits stay vertically aligned\n\n## Credits\n\nThe **Inter** typeface is created by [Rasmus Andersson](https://rsms.me/inter/)\nand licensed under the [SIL Open Font License 1.1](https://scripts.sil.org/OFL).\n\nThe app itself is licensed under [AGPL-3.0-or-later](https://www.gnu.org/licenses/agpl-3.0.html)."}},"isFeatured":false,"authors":[{"name":"solracsf","mail":"","homepage":"https://github.com/solracsf"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhMwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDA4MTI0NDE2WhcNMzYwNzE0MTI0NDE2WjAVMRMwEQYD\nVQQDDAppbnRlcmZvbnRzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nueawPyoVdXFwVQwcVI23GbIXOVQno82fm1C6IfIQdfkBUCPhHJn8rjGgzI8ryqlX\nCTXf0E3XJ0CLw2SBBvPlt1gywLK2oEN2Ox7cxqWOThciwA1/SpLB6zD5Nvhp7a5S\nBcQQPc5EnAa3Mr3cOWJfYJqMO0hPANZnK2Yvx4CySYbBPX8HQnDm9WedZ9sbBqQA\nGDPXfE7AyKinTPjBKumAwvkFfLFH4BbcCT2Ws7+IQmb8BuXFcJaF92WQ+NXSZJ5m\nZw9m9TNVAXcCyyBgwK8/XZ6AcrFAiuV91MH36iRHaSw3KrL9hEsMpU5UWoqRLdNS\nBrBpLO2buEiAUEbotH9t+MH37CSQI4dWNmi/6Npm9drwGzJQZ/xwyYA2V5M5LpVU\nWyhg8WavkOXXDmPjx3PZxbZnvROevCwqUrQZrJC5KaKy/sg1PJwU2mZvUe4uhgdA\nR1fqOg/9tVvEoA+eeQEO7GSaj9+OTaq+gfDZrWJIwqtNV3r1IVunCFs7CP+U3m8d\n4LWvFI2ujZ9QeRZEA/aSKkG8d8ZrxrzdicHh0ekKr3I9ZzqEdKpejEKkZGWWkAzQ\nJ2mVKdvOsY0QBBiwPje0NYEIH+lrkyApDug0scKPd56lIiL5Ibr3+2ODgXG14qA7\niT5MYUiL382ZQSpP/DEFf5JjbbM0ycuOIwRa16eiYisCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAX72YZ2zwWWvS7xJmwg2/u3o6tQLLBocIwRtvmBGT7UadfaM+D+HN\n+ybUbyWD2Z8dKR7x/ALE/5JEsq0HnACPnXB4OC9cEIkH8Yp7XLp9qLxJhqnS1V0E\no8FvKa+IBxix6iI0CI1IROmNTCgK7WmATdjEU0+vlbZnqKYE+w5ES8FTeq6zqKyc\nEcK53JxU3sPwGlZLaMIDiJTc63FH+Fl+AzDEi/9aAtQvk43CHdNm54oLqgIIefZc\nJ6sIAw/Kmel6PN0X2AB+q7Z6pnJ84gu/8X5p52OCuC+YM81u1LpmbIN9oe1XGIvc\nENTS8O5gdGq8IQfhsuP7q+7dDm5fUFUVmQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_notify_redis","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/files_notify_redis/issues","website":"https://github.com/icewind1991/files_notify_redis","created":"2023-03-01T15:44:16.277403Z","lastModified":"2026-09-14T20:48:45.192793Z","releases":[{"version":"0.3.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/files_notify_redis/releases/download/v0.3.9/files_notify_redis-v0.3.9.tar.gz","created":"2026-09-14T20:48:45.179570Z","licenses":["agpl"],"lastModified":"2026-09-14T20:48:45.244743Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"S4Dg0aRSPQuuKSjaimcpCRDN3U1zJYQ0bClWnkiM2Be5Vv7DNi9f6iScGbDP2H7ucNkYWLXXk8BjqfnYuqhfBC0FCOrAYyRZ4a77y5byo+o3jtm+Pxlr+ZqnM2pVr2X4ETZyqJDx+HBJ03SF9XnMvNx8XTuZrmWQbcJuQS27oUiQ/cZNpUNx5pLSBWyY2Eb5B0tEWGAf2yzrf6IiZ3USE2EyfbDEr68yY0AW04rs51v5c9A3mtRxoTbLPnts9x7MEikBX0mVzKMwcCInBWsu7uEKSiDJhrFs0+hMjooqvmw5VhQXuY1eIVpU4ENVHg0LfYipm59etpzU9PxnJcrUHaTgWmacguaxCO9ms3ukqF38jvsFdJQZ+4VsuIuEiIYqes4UFYITUJZ/EF8YkE0oi7dSXiKUDP5aJhi3Avid3MGtt821HcM3in6I+woxfRf3GoVJyVnkRsWldxgzmPpGpLRWoI3nXNUJfKNl28vzumjczPu2BY4QWrs9gcS2JZu86K/kX7gvkrVoU3tSd4uDivb1+PJ/Uv2+W813+3nyXmUSGoVdd9o4hCKf6SgPALPMxeOa9zmDNn/l4ufFsei/I7plJV3s34cH1Xd8cgK5jOAQWKI1s5/dHEyTQc5lYo/0pwtbJdlPO4cV0IAcsFFxM+igT5Z9/NVQ2rqOCAZTpp4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Redis Notify","summary":"Handle filesystem changes pushed to redis","description":"Adds support for handling filesystem notifications for local storages that are pushed into redis"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhD0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTkwNzA4MDgzOTEzWhcNMjkxMDEzMDgzOTEzWjAdMRswGQYD\nVQQDDBJmaWxlc19ub3RpZnlfcmVkaXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDljSNrVlcPeCKVZn7Eep4r9o3SZocDSRnjDZX3ElzBbQZddnmMurGq\nURHlZzximJBsEp5gm3YQ3aYr9xVRiA04bBGqz/qzL/2QLT3mm4oWc/ASXkh6JBsf\nrRPBM0VbnWV0qT0Mwgfj3tkG8edM/z+GDjKBirlCZKrXGf66Z/dLMw2vc3AVc8GK\nYJGbpkG8zUWhX/5U1NU+MZE+Ln0nRS2dxeAoQ5Lg2y/64jLiaAeX7txNAcxIBKN/\nPwyIqIeR454hbILHro9TKUD0yy9IGRmAqHL/0PomiUfmUZ4AtzEpAe0P7kvrmG51\nkWfaAoPPetzFIp9tF7hQQvXD5CfQ3nPdhgvGs30Diw4Yb7890nzz+ApBXLscnY31\nl/x7xCoXD1owpDP7iBU3dJWODY256VV9qozg6hyaL6yHdzMhZ4I81RZacwmOd/BB\nNWqrEzK7R0J0Kh93+yxkTB8fpMib+u65uv51OT/lraE/zW8eiIwI+Fsc7yNA+h37\npLcNy4GNjG1pVJgpLIY0CP5NvfcMebMTwyU6mYHG+kof0YfXcUgtw+sglLbSDUtD\nnTA4P3tezxGfb6RnsdBSj1Fkj0X8Tt1T4syXSkdvxwZq19MdwYGYgFSaJUxkoEfi\n8veHcF25+BQslatmm23YUQdwM5WnkrlbxXuxL5sAbg40q10Mxg/pHwIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQA1l5LPS+h74+kK9H04CRLFLCfvQJlbVpCkdFSFG/FB\nqoukyXpj8rIvILkpO8I1skuVhD2BwyYL3bAFRT/U9464Hae8Sp3FHg9gVGMf5r9Z\nN+8SLy6wbDSJ1Z8wKBwH6+YFQagWESZ5Rvek4MPmg8gmEAyEArV3TBRScKibZeoT\nGgD8g7w7RAzbgw2Q+NBKmqpTZWKjooD4kMBPgvUFLF3vT8WMiDSWsCLOXtqsYMta\n8+mZKisT52a5Y30GHhHIOWxCQFDddV77zdsy274tEtJIH4MFyoQUg1j3iVDkZ/mE\nKJlm5NSpGZqvnRQX/HfWuNkmtNweu4gmq3wE3R/ViZ8l\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"sumoffice","categories":["integration","office"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/SumOfficeApp/sumoffice-nextcloud/issues","website":"https://sumoffice.com/nextcloud.html","created":"2026-09-24T11:54:43.096453Z","lastModified":"2026-10-19T19:29:07.606736Z","releases":[{"version":"0.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=29.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SumOfficeApp/sumoffice-nextcloud/releases/download/v0.1.6/sumoffice-0.1.6.tar.gz","created":"2026-10-19T19:29:07.600692Z","licenses":["agpl"],"lastModified":"2026-10-19T19:29:07.660239Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=29 <=35","signature":"LlBi7lVXtHGI6hmXt7BrNWcq3rQunVyu4DIS9IT9Pz/++LKzRvS3g0iB1UgSJjVE8taqHvswaADTrCp94vor1mN0iyJrFJYbXHtp3F+vpuKPGCn9COmjzX/fm1AsUYkpFXqjrP0KatSueJdAJASBfyiB1y9caUjwGmfeVkW8tsICV7U73ofEk8w+keoYLjKi4hNZsmPnkL/xOU3qFypkdxvcXZxqJqaqMjUo3e1FeZD9Z4hbRGWFGI/G2uzLJw5FnL+n7gW7cgLitMiBox2xcxEHhPi9WgCxqL5LpQeY04QJxD+UZ8b/ERSwj5hdPmIXVgVr/EZWS7f3c5WOXV187YjrGU7HKgc3MQcYa5xtAaCJ1+gMHnjAejDxcQtrrU9mQlcJYRujjQXY5FFnunHGyc50vobU7+bS30dJUOpE6DWdhCt9o70X6RVehbVo8O7UKB45VtgloFJZ/6IF/u5pUQ712FvDYeDHjqZfm3OX/8kS/KSCRoXDuce65gqv2KiOzdaG1blClBHJdq4aQlKxJ4iNvDQdj3J8TzjEqf0lguPYE00uRDRnZCgnovZFP5SiAmmw2nZr7JeUWF/O5CAiU06xOeZhHdMPrax21vdMEkiE4TabxzqtsFJTi8qElE9X4D8VN7gqUXF4vc7l7AiKBh7QBTtBADYwxFSBpCPfO8c=","translations":{"en":{"changelog":"- Installs on Nextcloud 33, 34 and 35 (was limited to 32). Checked on Nextcloud 35.0.2\n  with Nextcloud Office 12.0.1 and on Nextcloud 32.0.15 with Nextcloud Office 9.2.3:\n  the app installs, Connect succeeds, and a macro workbook opens from Files and saves back.\n- Connect now refreshes Nextcloud Office's cached discovery instead of only clearing it.\n  Nextcloud Office reads that cache when a file opens and does not refetch on a miss, so\n  after Connect every document hung on \"Loading…\" until the cache was rebuilt elsewhere."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N1bU9mZmljZUFwcC9zdW1vZmZpY2UtbmV4dGNsb3VkL21haW4vaW1nL3N0b3JlL3dvcmtib29rLW1hY3Jvcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1N1bU9mZmljZUFwcC9zdW1vZmZpY2UtbmV4dGNsb3VkL21haW4vaW1nL3N0b3JlL2RvY3VtZW50LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9zdW1vZmZpY2UuY29tL21lZGlhL25leHRjbG91ZC1hcHAtc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Excel & Word with Macros — SumOffice","summary":"Edit office documents in your browser — Excel with macros (xlsm, xlsb) and Word, through Nextcloud Office","description":"Connects Nextcloud Office to a **SumOffice** server — SumSheet for .xlsx / .xlsm / .xlsb and SumDoc for .docx — with one field: the address of your SumOffice stack.\n\nWhat you get:\n\n* **Your Excel files keep working.** A workbook with macros and Power Query opens from Files, is edited in the browser, and comes back with its VBA project byte for byte; Excel opens it clean.\n* **Word documents the same way**, pictures and charts intact.\n* **Two people can edit one workbook together through Nextcloud Office.** Measured on the\n  28 September editor images: both users' changes stay in the file. Documents (DOCX) are\n  single-editor for now — we do not claim simultaneous Word editing.\n* **Nothing leaves your servers**: the editors run in your own Docker (`hissih/sumsheet-webhost`, `hissih/sumdoc-webhost`), Nextcloud stays the WOPI host.\n\nThis app is the installer: it points the standard Nextcloud Office (richdocuments) app at your SumOffice server, checks the discovery and capabilities endpoints, and shows what the server offers. It requires Nextcloud Office to be installed. One rule to save you an evening: the address you give Nextcloud Office must be the address the browser itself can reach, over https (or the same origin as Nextcloud) — otherwise the editor frame is blocked by the content-security policy and the session cookie never arrives.\n\nThree steps, measured on a real macro workbook: https://sumoffice.com/nextcloud.html"}},"isFeatured":false,"authors":[{"name":"SumOffice","mail":"hello@sumoffice.com","homepage":"https://sumoffice.com"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhQkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTAxMjQ3WhcNMzYxMjMwMTAxMjQ3WjAUMRIwEAYD\nVQQDDAlzdW1vZmZpY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDf\nehg2cdLPBwA+0YDQbvWH6o03v0UpAqap2ub0cus5YO8L9bLnpx2G5bG0uIxZwgrB\nscMdetBWL+/D8/mfBaYuWcmgfY7CRRqYhFvBDEI4F6Lirc1I66bzaW7wrg7vTowu\nLXXnbev2Df26eyNO383twerRgDJbPnwOnUxUMVXTE16MobXSt+C5f7qZDGJVwN9h\nwXEITAZwt5VtNmoHXkf65xWvkEXJlyoC9KUsQGXx6Cdt0kWuOOIOqslwgmPnqgb4\n7p1hMaspBq49ym97/GuGjZKHWaC4oElBWV5syfAwJ0b5T9LminhoY0u+alun7VX/\nHRG+f29ZmCKUPACw+3zwIcJQsyONrMqADbw8zfim45GfwagXYEleQ2MPLEartoHF\nnXBzAKPSpm9GSlCiaK77sEtlQqt7UbQbBldJZy7PiKx9TEKAcfI3EQzcFdePPMfN\nTs8y7tDZyTfsjHIp3HRIx/YkQ2EF2aog6NpRwyHVWBQP4872mI4/MuSqx+xneHK6\n/yljs3o+KBsmD8b2nJqVOvKjENapBMtmQ9gDvyqKPy9TLJ7Q6ph1vYBnzivVwfgd\nnqgkSEWjgfTIMN5WDgmxBgyoQMDZXV7U4OuNpFBKwdS7nedhDGhvPkwms3ypY8G9\nSZg8A1JnPRQTbJ+21f93Ncl/NM7nvvtTL4fzJSSmAwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAaDuL4lRrpXERCn4i273AHouRAwSi7/kSNVGKo58+sY1fTY4lJhY8W\nOq2YUm8KztFufuFH1jEaw0qS3Wri7SV3yT72lASqNENchdgI5e/zzpwmhpSC2jPL\nnl0SJbFVGhIE1TTcQs43uMwkTj/ZLWFheBxz/kelRM40m4CY/Hl9oeGul0ooOw5i\n+bM+dydakCEoSELjYtSBWuw+AGUKcjvX9CkrmbWiu3efFnk4DeZpjD6D31Knb4AH\nIJSLPZ+Xx4JnTJtVTErNSjRW836glzt5KqpsF/0vuWXcKF7lMxIbAL48U2MV/Xdl\nqK+63LavWewZIdDOwdZ92zyLC5ygmHV2\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"appointments","categories":["office","organization","tools"],"userDocs":"https://github.com/SergeyMosin/Appointments#getting-started","adminDocs":"https://github.com/SergeyMosin/Appointments","developerDocs":"https://github.com/SergeyMosin/Appointments","issueTracker":"https://github.com/SergeyMosin/Appointments/issues","website":"https://www.srgdev.com/lab/nextcloud-appointments/","created":"2020-02-25T02:49:56.451297Z","lastModified":"2026-10-22T03:00:44.948847Z","releases":[{"version":"2.8.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.7/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-22T03:00:44.936780Z","licenses":["agpl"],"lastModified":"2026-10-22T03:00:44.999136Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"gQK8+zCX8A1AuMpoc0Ar9u8RTg9BCC6Ix5SSPAfWpPFqOa4X8f/5i0IYgOVqr5+s\nTduESbyYclWU8qNBj/UgyvqK3HP3vX3XZtxPcrCZc88Os4qxUV1JP9dp0GP1P5bw\na5q9zS/FP1CLv5hz7U3QifdylVsIcgGc9LjFuok0x2mXAKo1hLC4O9GzUZS7+O2n\nRuQPGWTSQhkfYOipRulmWSSKYp96peO4R014UxEJjzFFCFtLP1qo+0K1Sdesinp9\neP3LjWZgLHOqWBYH9PoaCgCqbIN51jzehCsTuWaYrx4l8OEIB2BKRwR6xmUjWRy+\n2ouspzoEZzRprfjw8M7DTen10IBfPzDZHbeC7rfmKSLyvhA1VT57jQgNC9lmTr0y\nuuzwjpGlsU+ZOin/6c2egPufAEn1mrtHg3Qvhe68U5iYABppJ/au5gWCCEwvMndR\n7fB/TvRG6h0mTCByAW9r9hsRmdraqzFbGalNCaBDq1EhlP8ISbFMo1Zwc95hO8wu\nC/qwt+loFRnW1Mki2/uG2rDtUCQwoPOsvx17+CqurZyaHCijWCmp91SXrC4AByQa\nAByvhWH0AlJsDDiQcUqazxQAAF1gT2ePBqOuG4kt6/nrAgA2mqz+FY3bGxh4SKXk\nYOAh8del0S7S9zkQadPaIeVDo49SmAsMFXEvm9kjnss=","translations":{"en":{"changelog":"### Fixed\n- migration/activation error on NC v35 - #706"}},"signatureDigest":"sha512"},{"version":"2.8.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/SergeyMosin/Appointments/raw/refs/tags/v2.8.6/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-14T02:03:39.429839Z","licenses":["agpl"],"lastModified":"2026-10-14T02:03:39.483157Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"CG+vrabJ9vFduVev58cOTI7B8WFFIHKpgGaUoVJf4+e+R0Rx1lZtiXvDjU+n2qPV\nMT/EjylFsfkTegIl/DPBOlQNFhF1UMFFkrnf4doDcMJUDGkuRppqrS4k+C6b1afT\ned/51d0Qo5axwX/5bQvngkhWGgUShycANH4rAMc70H1IBLtitS0PXidsl50zAa+F\nYqKZ55vHK8G69Sjh9h5TrSDB0HN7NvZrfuo8QNpzVZRnDsq9JpsT2lJYAextQWHm\nPTg+wY0VqWEs0xOUE3ZcagKCLEVZQ6dzx/iFpj1xlaBCekHgIlJUyPUj59d2RFld\nJOdtyBkH8rETzmhoZXAvvPXtU1rG4fxWKDX/TcNRIFmvbSJdlnWWFoLlXSPv+txa\nooNCMdhAGTrlX8pbDU4015JWYLAAsb9fNLrLe1eK40DYcLIJro8D0ZOAAe5D0Ilq\n4FMWkG1PzP0/9nuXqvGD5YiwF2DpphUZ56NJF9Icr+4kIRH0Dff76fLJsGGLzslY\nswT9ykc/gtdu8kVXUDHxSylw2qr8WtQMMIcf+gZXpVu/OOa8lxKrD2OJYvUk2ZnH\noO014nhLi5U/ZfGa1lFjjBwsW5MDAbG9430/OIlbm5AsH9L9oVpJwZHtv6epDggl\nKP13aB5vt13Nf/SBlRc3rsjI8myVigaBsErAqSpj4As=","translations":{"en":{"changelog":"### Fixed\n- Security improvements ( Thank you Jahn Kohlhas ):\n  - use GCM encryption mode (instead of CFB)\n  - disable extensions via hardcoded return in extNotify (must be manually enabled as per info in DavListener.php in addition to 'php occ ...' config)\n  - ensure timeslot lock is released on event create errors\n### Changed\n- improve performance and security for appointments with long titles - #698"}},"signatureDigest":"sha512"},{"version":"2.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.5/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-08T10:44:25.936992Z","licenses":["agpl"],"lastModified":"2026-10-08T10:44:25.980928Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"bgwTbx2FbPfEVBEorVdyTKdVQTk6ZBECwWjgeJzDBW0DZ1JfSVega5TNC2DON1aX\nUrCtvyhdm0tctOGjuanXhulRxASS++7892eBk194apbISTpP4KedKdXwuBHTGjQ9\nY806dZlzhBkXoEBCIyQod2laH6LMrrKAGuAyADkfsQHyQskYJ49e30hY0MoulhEu\nnfywEm3b8WXdIia6nFYf7aFBaNNpf4a7VE1sJD2UO/1fM21cOd23bC7Mq2XUVRIV\ntc16r1O96IkreBQMMPd+5dHZ6qLCW836Fr6EjnMsKO9Su8YJtHUKxIPyB6s8SUpt\nrjkIxbQ9nFgbJaau/r3xVMSnXYhCb2cMeBbQtx8jh+QOiR26P9EDnSoi20+T1Nf/\nqcV8MOzXaKzqMPpj7KQXl3OSi0KBTDgXfr2giDy9EJ5qn5i7HAwBw8a5RGHYKhXz\noSohFidGjOwFQBFunaVcVUotqhivoNxBcN/aZV3tjDgl79AM1LP66dUCUypHonxs\n+dtbczqkYRTYHu01f+FMrEd1CIuqMBsuhpGdmEHecxcUXV+XNwbsPyAb0McUt1Te\nvGDWyg2/EgxHCvOgG0JPyBEA7eif39G7xTkt3iNgD9I/7tFjwrYbmsCucKJTxadU\ntdkdYlmeIzL0qWK1kQqJJAh05kPOIebNGzanxUk+38w=","translations":{"en":{"changelog":"### Fixed\n- regression: do not call template migration for Dir Pages (settings corruption) - #702"}},"signatureDigest":"sha512"},{"version":"2.8.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.4/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-06T13:46:23.119579Z","licenses":["agpl"],"lastModified":"2026-10-06T13:46:23.184111Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"mc16bJ74G4d1Swf5Eb9GWHKDp9Br0oUwsYkmJAC8CmHlTwDzXe3Cc3ItMNOvLbx/\nP2e2F9IInwN0VWQRzNVOoAwyRN2C1C4b1UTMsSve6a4tTcXRuS1alHU5Rn4wPihS\ndmhkE0lYCoZQbeiMyeIaB5/MV7D9MpPA/60bE1tgPwbnqhYmqbuHALFqGKd+FsUA\n0BI5gcpbUErTDJ2yZbW5cwJzhK51zteHS5AKHrcIuB2B48GFZFfftGWSr+xfwbTh\n77mOSeSEjoezBikZ6glNYLW6FRqMjUXgVWv6qNV4i91jXDgE4QQ4Bu0zOep8rbf1\noNVLjRM/vzNn+4Rd/SPF7PwKe9kSzkrvRisu5uEneClJDzkX87PQWGCv/SgSYKCH\nHVM4QcAbdXmpBZSD368Ego6QkDwSe9rO4DU/3XA8zX4IyFhC2dD0a6kag07Khk55\nW6LclmdjD66Z494jxJqlFDNzk1dRFH0daaZKbkI6Uy2QNtr2RdBxp8beLySmUO1/\nA8hIvvJVX9vGJvKRoViVM8O6CvEjxqjVpmvAKzJQm5ythvbEO7BhwGbQ+6Ak7kiL\nRSYs0hOvoetIVCPdcPGGUO/MhbZcDbwI8K+uTN1FiBai54eVNjpG+rgsx7ePGQG3\nSo8dYdloQ4gB7dH8kaOtxB+yPKzFREQLwlDOliOlW08=","translations":{"en":{"changelog":"### Fixed\n- fix: title length validation - #698"}},"signatureDigest":"sha512"},{"version":"2.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.3/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-05T11:30:13.557039Z","licenses":["agpl"],"lastModified":"2026-10-05T11:30:13.641782Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"PgRC2YOoFy2f6DHtn+WbHjf69SCaO/pu6bDUL9ZpGdPOIVvMH15eFHm66qVfrn+F\nLLJKIaEL7gCCmUsS1MN4yHQWJ8bQU4tvREgUERMAbXMeumsLlA8FUxTvaPMIbUdV\n1gwvBXlhdEz3sasfR9N0nAZleGCwvK3FJFiKUEL3iYunEpiqo3mtSOCpK/kUMh1J\n3BQF/s1mWm75vufIIyFwcLZ4pi/1Bt6wG2ufdSBeerialpns0ORZQxAk0MRlNjn7\nnS8VOPBhBeCjtNvaVdmjGVSSLhFrAMWvcYM+dDxxWBaW3QwpGnZ19i9zPP7qdgLa\nktqTM66v0J1q8SlIiRPZ+WBPJdeDTlYZA3RIyJIV+enhQDu4uKmM8zRwsjOHbKp+\nVxF6q5DFQuuXudqPw1vCoLx89PSUSNDWUFjniePPI/3oIhfu7FoEQoBptjE4ngCO\nuspBnJNWFQ3hh8UOF7oLCg3hM1yooS55NOmDRnouM5O3gH+nTk4rOf2cmL5aUx/W\nxt3w2JHxqEnyqq0QRz81mnpFO5JWENTmBstg9iW9fV4+OhSUDjeCl54JHk6L0C8J\netIU6Xq/0F5v05X9S06Cq+DwdoKeo5ymHvsWVKqT1aARk3ucnCrfmKha1cWFacud\n1x0vE4xyjwFge5pj/0o4QP4Bd26lY1Zn0Lw33xLf+tE=","translations":{"en":{"changelog":"### Fixed\n- fix: regression from 'Show end time' option removal (ensure backend sends the 'end time' in External Mode) - #695\n### Added\n- show 'template_data_sorted' status in the settings dump"}},"signatureDigest":"sha512"},{"version":"2.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.2/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-02T15:45:57.373018Z","licenses":["agpl"],"lastModified":"2026-10-02T15:45:57.420514Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"E5OvZfhvjgXE+wS5mDKyTVi3Hu7Wcf5+Vx4oU6NZkT/4NJzKFeZsbxgTzV6bwOKO\ndEkXpGqYaxT1R2OIE1mzDX6cCsgnYEMshVgsJwX3LJrmMO5OcfjN9CL41Vp2SXfS\n0gDDbnS5t5qeMJbK1/8VJoXtvjqkU3z+rkLoV76HPRWyqcNRMEsggPMk0jMxU01S\nuKhOI85dsNeG73TSVgUawRzgHHA2NmhAaKYWg3WGcN60o80w3eojYQGYeV3SzDS+\nAsFpSk6KErXKjgppIqTIeGak4l4jOXqig1xdO6bsj6ovlpd1SlO/CWvOcFV17t59\nvg9qkZ+tE8bkt1+yPcD9fshwrQk4i/Mcqz1Io8mxnVxp4DXNpJEm1gA4zOGkMKiN\n0dPb2iw1KV2pBNlcqrOnyFaA7jEEhlJloyT2Mtwm0gApPUfkoGoNQYJ+KTlWyiaQ\nkYYOd0wWi8cOI5RnJZPIAJyZJpqmx5iyFyYmn1SE9LxtIQZLQdA18J1b4HwpoIdq\n+s1HdgamUjW0Uh7pF0P5sJeThJ1adZYd4mIlVdPk7LpBMC2WjET4cJVzcvkca5uZ\nzUpEUqKZnUbOXTArLC5DAeS+t9I611qwkJ+uj3pRw846p92d1WTDmtggcy6mGBcJ\nWOxG+wxSk7Nb03kyhBD/X/Uk8E9eC13sf3mEkFUzzlc=","translations":{"en":{"changelog":"### Changed\n- bump dependencies"}},"signatureDigest":"sha512"},{"version":"2.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/heads/master/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-02T13:08:15.414205Z","licenses":["agpl"],"lastModified":"2026-10-02T13:08:15.477544Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"rjbXpqF3REV5Xs7+hm/E64pnXFcAo3huYbQXrWTjjs9oNbYiEGsmieerfDNU9tGS\nKGcm5QIY+MuF22EwNr3BjEWRKAOOjrWMUqG9+pVU9e7ejR3eJ93Yg+aPMgH96BDE\n08xs/e3TFN/dwUd2+ewtahQReNvrqvDeDYhtcqJ4HeLyrF/p7bxeekX3expMXbix\nlyVY4sfDfIsLQSUsgMUlALV7nFM2BLPgBHzM3y8L6Fgccwl/rExSy8oBJqyqebx/\nqR+yQ0r0nsT93ciP36irPRQQaskseOHWOeVJjZ7497Gei9Q10pdzgvec+iVPA4qf\nMlYWVodNkrJNz4CNorCSTcXRxEbWYRLEu2qjEHm6DeT0QN6RVjSTYfghvqRONJIs\nrkn9HkofpLdj5jQisLzeXtvBuTDrWfU1Ny1lNe74BkgE0O5eEbsCrwBlTE6YK0wT\nWVpjThApMsltwxhNd7hOa+g9yKRqwVwEZOvY6aB2bj8OjsxPgNEhbk000mAQCqzY\nR+FcHmc+CFkkbuhbtSBNPxDok2VN9iCJCCdo6jayRKxOmVW6Vw6L1eXfmEKCH6Dj\nDA7OWREbZ4qvz2sDmXDjVT86mZVBCwmaDB29vTu7KPfDLmtRRV8Bq0T0/M4msolg\nV2H7ncVP3ThRrPXDUUhqvvHX3HeVFw6LHMJFiRsl+jA=","translations":{"en":{"changelog":"### Fixed\n- fix regression from v2.8.0 update (template migration not triggered) - #693\n- fix(settings): crash when closing the Directory Page settings dialog"}},"signatureDigest":"sha512"},{"version":"2.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/SergeyMosin/Appointments/refs/tags/v2.8.0/build/artifacts/appstore/appointments.tar.gz","created":"2026-10-01T15:05:16.306893Z","licenses":["agpl"],"lastModified":"2026-10-01T15:05:16.350127Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"dNIdXIFrdAOnNVmrAEbxl7xIWa/Xn9Aek8eXitSBev9skrlBBxZbfjbrIfzYtpjv\nbZWRnM/7D7FJLcfs35Ypqnwk4jCsZRtJMXLWuXBBaYWfx2QrS1I4zaSEkhmxV4M/\n+OcMQqJ+8QcB0lRxvaQKaCErap10aawUP4RFZ84SVzieBZC9vC8Zoi/gnp63hjsU\nTIOCfwW+jtj4BZug0nmvjKKT9slN/kGfqTZUik3Dlf2L/jRK55y4C/PuRlYJnw3t\nLSO8jyDCKEAYTGIRPDl/OoezUbLAiJw9d7KY+jHlvognquMQx6OJnGYg5LFjqLzG\nL6M0fy7W0k414UfRwff2KqNjRhJIoYION8SquEM0E9HFKyAT4t8GWpnCV8bUos3l\nCioyP+DwhKiQiSS0SgZjW3CbmUZr66omUyWjX3fZ5RiSwV4KalFRsgVOry2r+Kqp\nWsOcVCx0zzM5NWiLQ0BsVshtu2oSIiRvnRVW/e0sRqDnS6e2UAiq3gKWdkmMZDFl\nhBSG+cDIDrC7oXWziVo66Nuoc1kYXK9Hjn+9YLAv+0wpePXaW8JvxCKsIvbPpjdo\neLFMVEzJUBMBoXVXQAQZdPf/MXv6RgJo0V5L4gCcU1ODkI1mZzObFKnXJ0NSrlJy\noac0qsAYCrU1RUlPVTh8GQnwMnTCVvyRAHbfmCVv48E=","translations":{"en":{"changelog":"### Added\n- Add support for Nextcloud 35 - #690\n- Allow multiple attendees book the same timeslot - #54 \n### Changed\n- Remove duration selection dropdown (not compatible with overlapping time slots) - #186\n- Remove 'Show time in two columns' (force: false) and 'Show end time' (force: true) settings options (part of UI optimization)\n### Fixed\n- Add 'bypassVisibilityCheck' fallback (4 sec. delay) on Confirm/Cancel pages - #691"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NlcmdleU1vc2luL0FwcG9pbnRtZW50cy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NlcmdleU1vc2luL0FwcG9pbnRtZW50cy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDIuanBn","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1NlcmdleU1vc2luL0FwcG9pbnRtZW50cy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdDMuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Appointments","summary":"Book appointments into your calendar via secure online form.","description":"Book appointments into your calendar via secure online form. Attendees can confirm or cancel their appointments via an email link."}},"isFeatured":false,"authors":[{"name":"Sergey Mosin","mail":"sergey@srgdev.com","homepage":"https://www.srgdev.com"}],"ratingRecent":0.5,"ratingOverall":0.9444444444444444,"ratingNumRecent":0,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhEKMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwMjI0MjEwMjQ4WhcNMzAwNjAxMjEwMjQ4WjAXMRUwEwYD\nVQQDDAxhcHBvaW50bWVudHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDj/7jgpauxpVgpKmUSR13ka+a7WNjJP5PRSWOxb8AuSXamWElw0wiEbIQmEUFc\n+qhb8rstYPVgO+D7CjdB+0udYxNxeMXBGDEs6j00MJ4jNuitB2g1S7K0XlEarOUJ\n96YE8opaEvJw+pmltDVxzhuD5BpKT0uO7/nmzwMSTIfW4v3ZEq496VPHTlHPPj3N\nL+I+NmY0WMpRdEBPYGubwz4xKbNi5/iO3DbmLR5Ximi/pgvSuMyrKRXT28xIH0H7\nap6xXtpcIy0S+/r2HOaLmElhHwguoxj3GP7PozOOOxKYjcy5stQg/uoTogem6se3\nLRec7vigqqjKmm8RSUOK9uIBbE59aVU4mDg8u3T4oGR7upeFNy9qDOEyWZufScrJ\nGJghonWnnTSoBB2QcDDEUGw4F3JYo3mLxTO4Bge7AW/JvPlXbLYXTcN5lGFSs4B6\nEZCFgBuaXFABsc1zS33NH5++0scEwjoXjDXtZOq6J2mT09VSHDd+CdUuq1Wb9RNP\nOs9im1jIgJkrs/QI34IuXSAPHHiB0Qc+WOUIv3J2TjJeMksHStQF7VqdDHXANFq4\nf4B7X4Cb0jIpcsKJRq7w/IbDXZu6NcDzgjWz6ExIrawqgXF3+QVPqD9sbtWGN9FJ\nvAe+OZv17c7f/oPuR8rhY0oI7mhQS6aGhesfDHLxDuI9NwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQCGw4Nm8wOnnbU8iislNAeW5pGm2HDGqCkDyuhxNqjsATP4/B7y\n+3FQImwB34PleOmkWMuwaXkBQjkTHtPb1ffEX27GBWEPXGlEIyqL4gMY/w6wbXE4\nN0HUWH+SlB/z2jQ6c1ZfbvupEshBVksGY6xQbJghsvzasZr7KMeS67P8qeXZOzcO\nRCC3bA9Q3wHkIoS0j0dmMN6YQmB+SDPvwMG3WMmmGngC2ZTIBL69z/tluT4yn8Es\nOMkBp03zZ2hQgQ51BuvW01YCNbRTAR0gB0OoJ/Cs3m8l53Z+efi+fxEWe3azhyxg\n1kD0P2E9PDP9XKvUiCvEVYAbuu8lfKqVfmS1\n-----END CERTIFICATE-----","discussion":"https://github.com/SergeyMosin/Appointments/issues"},{"id":"twofactor_email","categories":["security"],"userDocs":"https://github.com/datenschutz-individuell/twofactor_email/blob/main/doc/users.md","adminDocs":"https://github.com/datenschutz-individuell/twofactor_email/blob/main/doc/admins.md","developerDocs":"https://github.com/datenschutz-individuell/twofactor_email/blob/main/doc/developers.md","issueTracker":"https://github.com/datenschutz-individuell/twofactor_email/issues","website":"https://github.com/datenschutz-individuell/twofactor_email","created":"2018-08-21T17:49:32.371878Z","lastModified":"2026-10-04T00:54:42.827207Z","releases":[{"version":"3.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenschutz-individuell/twofactor_email/releases/download/3.6.0/twofactor_email.tar.gz","created":"2026-10-04T00:51:02.894615Z","licenses":["agpl"],"lastModified":"2026-10-04T00:51:02.937255Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"j73v2LFYPtEb/ez4uUA2VzKWexnaOsHtNhS8uEzrDerI7zBfF3Z9kUmo22dhWJqQK9XSPBZdGS3lcCI5dwinToK3kX1nbBFeT2xobBZ4Mbm5t0WpEU6s3QPxaqxITGDfpQp2+UiPNFRya8T9X5s4i7k9IN7CuXqhG0omngvRrawvU9PwIy/YNGXjvmm3qjTSx7GpK4BxpZTiOTxcF0q3kEiqawgGzCMHRWuLU9awfBIZo7OcWKDiVyl2MFvqXpT5Xy5zGKdC9JBI0LsBKrDAGgddM2fBUhmRYfEWpRu+J6jJNAX/fo/Dz+DQzLc+TMHfW17cECxo7Dg8bB5H3M1z0pvqhUd31AvzducvZEhyYmYOUoaf9ak3mnBn7b0dJ6vB/llnzF5/N+e8y3JQyYUp4XpM8whcF5a8cCsdoPMgNR6eKr7CgrzAJZ7v6UFYIYSqOP4TuAuzmcygC+lrwJgcnFe+o2U1IIEdeHwJw6GjDe0uTZymmNdpVNyWpMVMP2lWJ7/TysGamb2aVY7ThVhPeKTEBIUltaRgt7j6Gcsv5+SQv1eVaeFIQjVApVt7FqH2E5kZXmuJt1TtdMr3n8onPGFAjdgGzZRBujzTZhFfdivSDPu5vzICejR3wfdED1hRJPcny2nSXk/sjA1a4tL/Hu+E/LMlrwlxRf7ZzwDMufg=","translations":{"en":{"changelog":"### Added\n\n- occ shows type, default and description of a setting, and refuses a mistyped key\n\n### Changed\n\n- The app is named \"Two-Factor Email\", like the other two-factor providers in the app list\n- Complete Italian translation, thanks to @dsibaud\n- Complete Danish translation, reviewed by bargib"}},"signatureDigest":"sha512"},{"version":"3.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenschutz-individuell/twofactor_email/releases/download/3.5.1/twofactor_email.tar.gz","created":"2026-09-05T11:57:24.979780Z","licenses":["agpl"],"lastModified":"2026-09-05T11:57:25.053934Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"NvkJ4kG8AP4Mfp1GcAtjV/FQjFq0gmRcWl7MEBipf6DA6bYQ9pALVOq71QldVOeW4dHCDWqlrnaevD/ppyiBqECtolilFbwKGXqPqJ6EGb3kgOrzUKjS0P7C30klA8BBSN2dfCxhUzY7N/OINL37ABnh0HdfPCQL5eowtVRdrBpiEG7trypX76jUkwRNvXDycYe+zAUVo5Kchl0xLg03nJTqH43BTNcGOMr0+rh8VwW5gfvyEXtektR5JyUTkU/n7CFG+6Sn8EWwXma/lCGmuOYk322EDDOhgyHViUJ6+JqdLfo1UUN50juUbcwtbHjlwQjWec8hl7T/B4JfOQW5Rhrh78n37P1qzwnbWc10ve41KKBlIp8t/ANbI/AYsrPZXvaPQqbJtYKZHc6Sht0kBFYy+2O4rLu/sAwd1MUYWeTL4q94x3um8UdO39Fv+CHMoq4gXEnScCC7jtlqSV3V7lgarBraQQYoxSr5dmF02+mO1cdWQ4eUcwtkAcyrtOOK6plCImFY6n6TXj1ykeot6jwJCArIQim9t5l79Jae6AOalq5rmhSrvcS5JdHx4NYjIUddKd4hazf2VDNlSWBiD7KjYAMVCXVixZcuytX1fRf26+TQIm1kVZfLlE3+a/A5kyjy6yZYkHmbEUYeBkEOM1IE4DNBKH3OGFOS7083OEc=","translations":{"en":{"changelog":"### Fixed\n\n- Updating the app to 3.5.0 stopped with an error message"}},"signatureDigest":"sha512"},{"version":"3.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/datenschutz-individuell/twofactor_email/releases/download/3.5.0/twofactor_email.tar.gz","created":"2026-09-05T08:09:07.895172Z","licenses":["agpl"],"lastModified":"2026-09-05T08:09:07.954927Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"ouPvrI/MbZRE9RkaGvvqoctVUdsfr/tYSOApert0g6T+o++jlnSi2HjXpaEhei4CVSbCBEbJn9KeCqENcxJPsVh6pRWFP7q1Cl2avPwbKyxCkPrJbBl1VcqYom7AONp6nSYp5e0FtK5CCFRJaTwCgoaWNdHA8IFiWsrc0XumqVNjoVFT7/0zNEE0whvyyZMBbSLUIT/qbxrh0hAnUzFtH9FDXBnkMavsplfzhQxet56k2RtJu8uE0JiNu+S94XcuwDyTMUPzbssl1Po/BVdIMvKrFd2mHqgZUVyht4D8BpPsq32POKB0aBYpam4CzanTc3XbPBv4DFLvM7PehClzgneYcwP3fMJEX2SjkUtDTurIHUbkpseh1jOHRhlfyX0BklhZP6OMp6404eR9RT+IPL6JAdKRFnd4CEgqm8u1S4n90P5XdSSqyh4VFWoE2Fx8dpa/vJPWV93lIit4farm5QV27eQrffL8E3W8iwh1O2sLw0zVUzrTY+WfiNP/xhMi30tMi2SmmHQjDMPzjbVenpLq3YLXUJYAknxffTprOluhRG6o7iJlh/soWrZh5b2O/4+ES42IZAos2gnQpQjxXKzGP4dmtMww4uB9JiXp1xssOrRU2//x/oow4+LnIniMCNjwIlfN34P1wWNKgdbYlIrmYFhShVI/ZTgOuQK1YN0=","translations":{"en":{"changelog":"### Added\n\n- Support Nextcloud 35\n- Administrator documentation for occ, enforcement, email addresses and a FAQ\n- Contributing guidelines, a code of conduct and an overview of the licences used\n- Fresh screenshots in the documentation\n- The login screen names the masked address the code was sent to\n\n### Security\n\n- Keep email 2FA on when the only other factor is backup codes, which Nextcloud does not accept alone\n- Require the second factor for the admin settings routes while an admin is still being set up\n- Check the finished email and fall back to the default text if the one-time code ended up in a web address\n- Reject an email subject or body that puts a placeholder inside a web address\n- Report email texts that no longer work as intended, and reset one that is not valid text, on upgrade\n- A code is only accepted for the address it was sent to, whether or not Nextcloud reports the change\n- The address was not masked in rare cases\n\n### Changed\n\n- Bound the code length, validity and resend cooldown when they are read, not only when they are set\n- Drop {logo} from the email subject instead of leaving it literal\n- A stored text that puts a placeholder inside a web address no longer blocks occ from setting an unrelated key\n- The admin settings page refuses to save while a stored text puts a placeholder inside a web address\n- Count the subject and body length limits in characters, not bytes\n- Skip the database writes that cleared a code no user had stored\n- Send a new code at once when the notification address changed, instead of waiting for the old one to expire\n- The challenge page says when it sent no new code, instead of leaving the user waiting for mail\n\n### Fixed\n\n- The app store screenshot is visible inside Nextcloud instances again\n- A code was reported as sent when the mail server refused the address (#202)\n- Reloading the challenge page no longer retries a failing mail server without limit"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/CiAgICAgICAgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RhdGVuc2NodXR6LWluZGl2aWR1ZWxsL3R3b2ZhY3Rvcl9lbWFpbC9tYWluL2RvYy9zdG9yZS9jaGFsbGVuZ2UucG5nCiAgICA=","smallThumbnail":"https://raw.githubusercontent.com/datenschutz-individuell/twofactor_email/main/doc/store/challenge.webp"}],"videos":[],"translations":{"en":{"name":"Two-Factor Email","summary":"A login code sent to the user's email address","description":"### A two-factor provider using email\n\nNextcloud can ask for a second factor after the password (two-factor\nauthentication, 2FA). Each kind of second factor comes from a provider app\nthat a server admin installs. This one emails a one-time code (OTP) - six\ndigits by default - and asks for it on a second login page.\n\n### Installation and setup\n\nAn admin installs and enables this app. The server needs a working mail\nsetup, because the code travels by email.\n\nA user then switches it on under \"Personal settings / Security\", which needs\nan email address in \"Personal info\". An admin can switch it on for someone\ninstead: \"occ twofactorauth:enable USERID email\".\n\nNextcloud can also enforce a second factor for everyone or per group, though\nnever one particular method. Email is a low-friction choice there: the user\nconfirms one code and is done, with no device to enroll. Check first that\nevery account has a working address - a user whose address does not work\ncannot log in.\n\nAny second factor stops desktop and mobile clients from signing in with the\nnormal password. Each of them needs an app password instead, created under\n\"Personal settings / Security\".\n\nThe user and administrator guides cover all of this in detail."}},"isFeatured":false,"authors":[{"name":"\n        Olav Seyfarth (datenschutz-individuell) [see CONTRIBUTORS.md for more]\n    ","mail":"twofactor-email@datenschutz-individuell.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.75,"ratingNumRecent":0,"ratingNumOverall":8,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhGcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwOTE2MjIxMzI0WhcNMzExMjIzMjIxMzI0WjAaMRgwFgYD\nVQQDDA90d29mYWN0b3JfZW1haWwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCzm6VG9OJG/AkTWKofFncTuXaQEfhRSN+gGf6sXtdMSI/LaaIuevoVpsNG\neVejUkFWhQYdDufOEeele/tzKinAhQx+4J29Mhrkk1CpasY4W016srW1lpN0nGJI\nitkzHlXI0V18rcnDmIp4uwzsOJrpKcOwCwvy1vwfFbrWMJH5FFvokV7AbVs7Muf/\nDbgOLgv+OeU1wnWcsfz337BoK6oIW7T8IPpyFAvA0MxSKlLjFegKCNNmqTeGzt3A\nIqSMG3wEyWeCJZh0pmY3yMn8Ju4H6m9nb4+ODlpWOh9zgal4HMwVJs+jhsP0mVBy\nci87xcwb1aiSjnlvVUCXVAmXOrHPYVlpxg+xKw4Ot87iKCL5UivQoc6MMzBJE23V\nNoGaiJOGMfL2IT39QmRK39kxM2n/9KNNEJLxWZqRhbzngrkkSueAr5MoXHa1XhAd\nKQyecRQdz2O6Uyn/DzLoo6mO6jNwwpRsBzQr7RMxke1YLWL8Jm0XmwLVV0HfI79r\n2wTOB5wGrTbPE4E8OMZqJ/MiN/1Xt2Jl8vEz8g9fp+T/WlKC2+EsxxYdFanWXU0/\nMlWEld4wHS7mkeHTSEpL4qxk3t4w2QhWQdzVWc/C7MYZVw+0pO30m0vasXcbGfc7\noOS7uv3qfuDE7d4+nub09PPMHLP+UyuIcuLvvqH1mtpJtRCAVQIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQB22WCGEUJ+P9kckZln253O/VoHgFEwa0LxmiOoYXYo5tkN\n5j6YaCXKVUn7Gto2rbL4e93qaEWdSbngpRRSjkOMRfgDR3yGaq6acvabokWPc1AX\n0nTOFSd4aNmn6mpgr8panQ5u7+lmFfLBijfiv5OB2Y502rzfw3pWajFZYyDtBUc8\nbaZyImdx1Rel86gb4tYB/FSI2j/ztHj9tt+w3zEV0Hds90+/swNNT5canMq4qEBQ\n1ti3ih0zWqK7gZsHqENPwGlNBLgggpNL7CbL9PUIXeB48tM7TXraWw9eMCHvXGtO\n+PUPSefPDOAdEL4pKwnQZJ9O5Ssh3IBx5GyarWJg\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cromcull","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/skaife/cromcull/issues","website":"https://github.com/skaife/cromcull","created":"2026-09-03T22:02:28.901829Z","lastModified":"2026-09-16T20:59:58.197775Z","releases":[{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/skaife/cromcull/releases/download/v1.3.3/cromcull-v1.3.3.tar.gz","created":"2026-09-16T20:59:58.182692Z","licenses":["agpl"],"lastModified":"2026-09-16T20:59:58.250391Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"DQGVufV/cyLeChbrMzEFeN1vSKFD3bw7cXIH+TtdBD2shf29c615cdKS+AJv+SBLYA8CxjRG9RhxQXsmmIXV6Jr+rwBTaKZBdp+ZAk6oJXixZS4OnSkwE90AIZq50JXo0iXfv89cpeUYAJQhHuOzhsfV2mOEOzuJhseVOzxjA41tXiYtJCIw2bf9jk7pNCvwFpnuJBfzB9KU1BcDV43SkkU0ns/ChWTS1ZYPFsVR/zd0VdorZWw7rNPACa9cSTvfqFAh2F4KuNSbTpANeTdrsNY3HQJjbGmYMJbnK1K4r1JayNb9ugbklqdi/6GPYBVTNtZbXvPzWK+uGXaicy9A+DeR6bN1sh83Cy+C6fjTN4V55Cjy470Lhz5rIf4V3tCOv0QImGJP40B7ECUteWvEnVsL03ZvcXmlhpEmqmctMWwqHdEeW+WDgOwsagE3cVJrogxgEhRlZf7C5PMyBIH94wSkpa1YmxQ+4RR0oDEKc4OZdy43y1wQ3+vNK42w2dfG+sAXxexUF6zUpwoY1gJ37dfrrh3Jpr3JvSsFMAxWH4FTymsLRCo1dN1yOZfy42504zaqbYxhJwma8UMDSAqczsqSA+K7YB24naMBYmYo04sZw1s2Rm5VOSLKlr9h7gPHTRlepg3ND7kC2GAhHmgzRrZWrKjZ4UFVpWrqpEyXHjA=","translations":{"en":{"changelog":"- Added Nextcloud 35 compatibility"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWlmZS9jcm9tY3VsbC9tYWluL3NjcmVlbnNob3RzL0Nyb21DdWxsLVNjYW5SZXN1bHRzLmpwZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWlmZS9jcm9tY3VsbC9tYWluL3NjcmVlbnNob3RzL0Nyb21DdWxsLURlbGV0ZVNlbGVjdGlvbi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWlmZS9jcm9tY3VsbC9tYWluL3NjcmVlbnNob3RzL0Nyb21DdWxsLUFkbWluU2V0dGluZ3MuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"CromCull","summary":"Find and manage byte-identical duplicate files","description":"CromCull finds byte-identical duplicate files across your Nextcloud storage and lets you decide what to do about them.\n\n**How it works:**\n- Size-bucket pre-filter using Nextcloud's existing file cache (no re-scanning)\n- Partial hash (first 64KB, SHA-256) to cheaply eliminate non-matches\n- Full-file SHA-256 to confirm exact duplicates\n- Persistent hash cache uses Nextcloud's edit tracking to skip re-hashing unchanged files — repeat scans are significantly faster, especially on external storage\n- The first scan reads and hashes every file (a good overnight task for large libraries); after that, the cache keeps things fast\n\n**Safety first:**\n- CromCull never deletes anything automatically\n- Every deletion is an explicit, per-file human decision\n- All deletions go through Nextcloud's own trash bin, protected by live re-verification before every delete\n- Group folders and shared files are blocked from deletion\n- A permanent CSV audit log records every action\n\n**Features:**\n- Chunked scanning with progress bar and cancel support\n- Per-group Recheck button to re-verify a single group without a full rescan\n- Hide/Un-Hide duplicate groups per-user, keyed on content hash so future copies are automatically hidden\n- Configurable size filters and extension ignore lists\n- Folder exclusions via marker files that travel with renamed/moved folders\n- Review UI with per-file external links for side-by-side comparison\n- Batch delete across multiple groups with confirmation modal\n- Admin hash cache management panel with entry count and full cache clear\n- `cromcull:status` occ command for CLI visibility into scan state and cache stats"}},"isFeatured":false,"authors":[{"name":"Scott Skaife","mail":"crom@skaife.org","homepage":"https://github.com/skaife"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhPyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMTExOTQzWhcNMzYxMjA5MTExOTQzWjATMREwDwYD\nVQQDDAhjcm9tY3VsbDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANB5\nREmHfQ/yh4R8vSiFFQaADwCPPkeTHBESX9j98hWsbTBFo63iqpcIW4JKhh0BsvRR\nIgfXHMj8LR2dkXZ8sROyRTFh0Y6+Ygcde+8nZ5mGbxnNXouSbxIBNfboeyaW7qNx\n0MavnvHKuY1CS8aiIE9auGk1vuGXa/HcDje0gta9biLuQ3X3NLEb9NzpoyZ8oWY6\nrc/StsiXF7zLfB+VydTD+iHx54NaHzX6ZHwRpWPOMN0eElMJ2d1sv7bZQw8Wn4l2\nayGZ5B0mhwkU1czA1FdYmchfFXITxTETOHEYNCBV/ozOC7DdWYlwBeDklr+nUZYQ\nDP2hH2hA/bPTrxZrK/7FepJRFOGomBT3MD2vs1fYhREIyIkCGpvLMVaaLlpRyuke\nO2Z2M+qwxE5t56mf95HqW1ppJFXB7BRvba8BcT3+VTtfGCb20dQd7LmlNHR6Mayl\nAtSHELRT5Td5lUwfrg4kqk/HgGWAhPY6gHS1sHURzzd8K70HEIZRvAKgarGC7Z9/\nf0NX5IEDcLhG0wDIO8JhvtIK/GEZTz0KwQhIAOUQ8e4e1VSoOhRaHEjugYrNqD0c\ngzkATzGN3x0nQUgVvZQf0JcbBFqiWPfbA5Q+Si/BznTyaRcILbtAmd1UAcLgkTX9\nqclCPxdg8J1iLPk5wwOF69FsMSYynD8lFLMpSKRvAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAELefgbGXCgp38WhojzPiOGmKnRxDPmUtGeSDum0QDXZBrmNTSAZNsg9\nduhyVTT2wxn9CEtR1fWbsL2SjY5LzbgIouFB8nYsx3i/GPG/ZkTdBdgeidmnJzer\nAJJiBW5dc0rntypNtHW7TZ2vRi64kHU+Cbo0hSL18lBU+X6eZnshq6lUjM064/L8\ndZzXYSaSSqbPFDbXfQJUXdZ4PFthywpXY0t4RXj7TsgIfUJdWyM9abW0HAdnCHAq\n2Sn23k8cg/j8eJHZw0gbi3N0cRDr+rWkV/rNCqJ7nH8n2X0inC0IT9tnhtHjfT93\nJsjClzP2tqSgzgTvXB+vUH4YjuciRtA=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"maildrop","categories":["integration","organization"],"userDocs":"https://github.com/djschilling/Nextcloud-MailDrop#features","adminDocs":"https://github.com/djschilling/Nextcloud-MailDrop#configuration-admin-ui","developerDocs":"https://github.com/djschilling/Nextcloud-MailDrop#project-structure","issueTracker":"https://github.com/djschilling/Nextcloud-MailDrop/issues","website":"https://github.com/djschilling/Nextcloud-MailDrop","created":"2026-09-27T18:32:23.343966Z","lastModified":"2026-09-27T19:14:14.511140Z","releases":[{"version":"1.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/djschilling/Nextcloud-MailDrop/releases/download/v1.1.5/maildrop-1.1.5.tar.gz","created":"2026-09-27T19:14:14.503145Z","licenses":["MIT"],"lastModified":"2026-09-27T19:14:14.546426Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"SCxC/teknkbTIEX124Mb+lV3NvWuvZeLmpPKXxOlLCRgeJrDYnTvRImRwiSJ4JvUupbXrOTli56tBuTZOl+k3fIE9bcLSd+3HExiBNADf1Sr4Bbo3cJD90B/zVcnuW3GTFKeMpAMF/jnEY2b2qT9o0PnC7/ULRHbTNCFx9UBgVbl9m1UT7LYbigjO1kCS+2ezksxRUFJrnFbd/uODU34+HCzk7ohbqC+gJym2+4E3+HdjC0jJVCdl38hRciHQoFaYfCsimRVxUo69/XmzW6Jc6flqhIXQC5WxT9t5ny/vA1BKkYfqaV3XgZrRME0HN04XYDx72QRlVCXVI0ohVEW2aV+paS4aVKAUCFRroJpLBK4ihCQMp/T7O2lArqwtm5u1MIK6F9a7AyXF0Cn4Z3mfSB8WeN9+ypvB8aNDzmtxBEKfCXRLm8fycn1P/q7A/Omf3eOb/7XVU4DQVY5w/G1Prwz5ieBbY3oxyCy8ZQ5/We2bp4nP33bCNn5ulIoUral8rxfyYewivnz04oN9rOaPuGadjwUy04UlVKRyWOTIcd7TYEvB/TD3/s0/wZK4zeOc+TJRWGXylazOnx9bUZZ1QGvaVhcdBhPDFFQtHDPowYkKLopmb1eMgVvQsZ7MpcpotcglNvlX09CAYuERrc5S5gYGPQhtsQaJ4h4CGGdN2o=","translations":{"en":{"changelog":"- App Store listing: screenshots at 1920×1080, category integration, discussion link"}},"signatureDigest":"sha512"},{"version":"1.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/djschilling/Nextcloud-MailDrop/releases/download/v1.1.4/maildrop-1.1.4.tar.gz","created":"2026-09-27T18:52:07.128927Z","licenses":["MIT"],"lastModified":"2026-09-27T18:52:07.187647Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"m7iNwFt88YPJ4AX1l4u3LnpZp48EiOaxTBx4P/uQsOG2klzpRqtXV1sarWrKtIm1hK8ZAdb90PDOTg9LT1RMgdpvaSMyXDWFDBwB0PbNKR2FXZwXmeXbK02P11G80c2m3dL5aHHD3H/UmHfVMp+pQuikDpHNbVCl9F24/RPSVxx1lL/e5gZJhRDIl0FYRt1sKAUVYPMupHR7p8XNvKBr1F5mqc58P8vQ3VdUO2YwFuZncZCZ/9QjfUVHOfYUR+6sn83E5btxIot8p/eLkqk8LewyjVXJC7bjTnv2s5kkARYPubzEEoWSg2iPVDiWaeJfFXOyDPbBGWVfYOu8KF0fmC1e+RMtBKv7HiPTNphUcXRqBKjscsMZttuiaZKTyOw3BEfO7vQsBceED7J87Bx//0xjqZFCNmNIlq4pO2Be3cGCtP5+VI3vVh8NVuw90CHCFqQT2099RlEo7TT8PYxd7/pm1GaBo/KHoPjLVr4BzW1t054mF5cBfQB52JgXIvAT1TDsw8oIj/uAa5PDmmEy+I8gLUf6A3CffWB2WK4TwQlAJSshl5tEG89B++cBAHpZbgg5dxKUCYW2/59kdUm0BqvwQIC1MFxpymaf3gEhP+XGzP57yKEwoyqeCE/CmdEbjV67+lJWYRWR3q5/FuNylaBHu5hK4zlywoqzos+R4No=","translations":{"en":{"changelog":"- App Store listing: Nextcloud 28–35, store description (en/de), admin screenshots, app icon\n- Add `occ maildrop:purge-config` to delete stored mappings (imported files are kept)\n- Release script signs the archive when `~/.nextcloud/certificates/maildrop.{key,crt}` is present"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Rqc2NoaWxsaW5nL05leHRjbG91ZC1NYWlsRHJvcC9tYWluL2FwcHMvbWFpbGRyb3AvaW1nL3NjcmVlbnNob3QtYWRtaW4uanBn","smallThumbnail":"https://raw.githubusercontent.com/djschilling/Nextcloud-MailDrop/main/apps/maildrop/img/screenshot-admin-thumb.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Rqc2NoaWxsaW5nL05leHRjbG91ZC1NYWlsRHJvcC9tYWluL2FwcHMvbWFpbGRyb3AvaW1nL3NjcmVlbnNob3QtZm9sZGVycy5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"MailDrop","summary":"Fetch email attachments via IMAP and store them in Nextcloud Files","description":"MailDrop fetches emails via IMAP, extracts attachments, and stores them automatically in a configurable Nextcloud folder.\n\n### Features\n\n- Multiple mappings (each IMAP mailbox → one target user and folder)\n- Optional subject and sender filters\n- Flat storage by default (`YYYYMMDD_HHMMSS_uidN_filename`)\n- Optional per-mail subfolders and `.eml` sidecar files\n- TLS certificate validation, attachment size limit, mark-as-seen or delete after import\n- Background job every 5 minutes, plus `occ maildrop:fetch`\n\n### Privacy\n\nMailDrop connects only to the IMAP servers you configure. IMAP passwords are stored encrypted in your Nextcloud database. The app does not send data to the author or any third-party service.\n\nImported files stay in Nextcloud when you disable the app. To delete stored mappings and IMAP settings, run `occ maildrop:purge-config --yes`.\n\n### Requirements\n\n- Nextcloud 28–35\n- PHP 8.1 or newer (follow the PHP range of your Nextcloud version)\n- Outbound IMAP access and a working system cron for the background job"},"de":{"name":"MailDrop","summary":"E-Mail-Anhänge per IMAP abrufen und in Nextcloud Files speichern","description":"MailDrop holt E-Mails per IMAP, extrahiert Anhänge und speichert sie automatisch in einem konfigurierbaren Nextcloud-Ordner.\n\n### Funktionen\n\n- Mehrere Mappings (jedes IMAP-Postfach → ein Zielbenutzer und -ordner)\n- Optionale Betreff- und Absenderfilter\n- Standard: flache Ablage (`YYYYMMDD_HHMMSS_uidN_dateiname`)\n- Optional: Unterordner pro Mail und `.eml`-Datei\n- TLS-Zertifikatsprüfung, Größenlimit, als gelesen markieren oder nach dem Import löschen\n- Hintergrundjob alle 5 Minuten, zusätzlich `occ maildrop:fetch`\n\n### Datenschutz\n\nMailDrop verbindet sich nur mit den IMAP-Servern, die Sie einrichten. IMAP-Passwörter werden verschlüsselt in der Nextcloud-Datenbank gespeichert. Die App sendet keine Daten an den Autor oder andere Dienste.\n\nImportierte Dateien bleiben beim Deaktivieren der App erhalten. Mappings und IMAP-Einstellungen löschen Sie mit `occ maildrop:purge-config --yes`.\n\n### Voraussetzungen\n\n- Nextcloud 28–35\n- PHP 8.1 oder neuer (im von Ihrer Nextcloud unterstützten Bereich)\n- Ausgehender IMAP-Zugriff und ein funktionierender System-Cron für den Hintergrundjob"}},"isFeatured":false,"authors":[{"name":"David Schilling","mail":"davejs92@gmail.com","homepage":"https://github.com/djschilling"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhQSMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE0MDc0MTQ3WhcNMzYxMjIwMDc0MTQ3WjATMREwDwYD\nVQQDDAhtYWlsZHJvcDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMd+\nFEn99ype1L3FmZz7nDimros4KFlaJfhL64tR6sFlh5w+ZF5DuF1lGlTStPjskSuu\nhyrnakQfAnupl6a1UVg954bmPeipFk5XBqy4/H98wXbOUlBuTMxbrne3Eu2Zdc/R\n/FALk+6ZJfn7FB8SB13Rtr6suXAwT9Fpj6npFy4JyzRT6zPUSrZESQC5fp+AJD0U\niLaVezvzpydRepJ3okMVbeKnAIJw7vwovwQx4tB1463e5WkT7/1/s9GzXeA2QGjJ\nq8HqUT/jSFbiqH31m19C9Gg2SH+MDL8Sk53TAlwZxrHT6A6klAzKNAQD4kZoGPkO\nTgvEMos2TCtoJYEd+D2nfaKd7D3P8CXDEgSH/2Aa2UwynOwiWVQO1E0zWG6Uwpow\neRfL0v5pRqXn/vTjEvw1s9jBofLQpxJARhvB0gDu8KzsWfRvQLyKowngGgUAOyv0\nQz2gR5qh0HWQmr0a3k5Xt2O0bFNTabPmL3zl4TbIe65pMlBoChC8UqbCtgD9k5ei\nCN0juOFXGMQBX4WPDAxmAIw6B/sqYwHNScPCjwWXnRKh7nnoQG3tF+jlS+sdsUN3\n7gTG51uRepUHRQGitqrtSaZK4uGbA9lRYklWmKDaoVwjQCdNvyVpfy7BHd1ttfW/\nt7ngRo/wLiFNIgZHiyhMKEUPfRb0ul8w6z96N1YnAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAJJ9YHi1UuwtUCy2ccDSRGb/E8dtsdOI0PI10IYKhZT2BBcN8xgFNB+k\ngpPgVIIP4Axly28L222OEFhNEnbBOFpHstAG02sksRs8bOez7mPdJYTjRSQAVDkb\n7mNKiPElWmVo2Mre6yT7WVipfIWFHCc2n2vI2iPLk/o/otkGgMeEh40/wSzq1dwH\numB4RQdlCtLyJpN5lw7V+XZJF+O9Jw27ei/P9G1RG3H4ZaTQIa9Wb3JZMfDfU3gm\nVBJVyvL3Xn5Hujq5Nx8FD+21t+A5boyFnEsm5KMeb4EjkjpMvTWb64V3VblBJcjL\nejukcS3pnXmOrrPh6gDlS4dN5655Pko=\n-----END CERTIFICATE-----","discussion":"https://github.com/djschilling/Nextcloud-MailDrop/discussions"},{"id":"opsdash","categories":["dashboard","tools"],"userDocs":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-app","adminDocs":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-app","developerDocs":"https://alex.gellert-innovation.com/","issueTracker":"https://github.com/blade-34242/opsdash/issues","website":"https://gellert-innovation.com/","created":"2026-03-04T10:37:39.895784Z","lastModified":"2026-10-22T04:04:32.967179Z","releases":[{"version":"0.8.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-app/releases/download/v0.8.5/opsdash-0.8.5.tar.gz","created":"2026-10-22T04:04:32.947921Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-22T04:04:33.018142Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"iL68F8Q35IH6IZaY5TSZtC58p8cY9hX/rOmx4FqrToPLM5kf1/+7myFX8zmxmi84XLKBXYnOfW7RvXFnBGaUtaogz0zBtY4vHZ3nVn9hzo6n1LoqewryLKI4NUW4Dl9PZQkD2vnhRFkyS95/ZhdA1BZEk0oVMaqtUV5caYD3O/RoU26OBTr4M0cHf3TzC1aAaVMtINvfDgbTlxyxfXX7mkDuWcrXEcESiqeW94LNhG/qaSbzp/SR9fMRRisnlwsxHRmG/4D9Q5Cb8wRxd4MAk2KK2t/uIQWFtj3YKZDqoS6PgDicGcAAZZ7DDCKRB0uUbJNjuIXMUz9rDFkpf5h4ojVn4jW3ud265F6IZKfkkKeJz+8Guai29q+rwNXBibcuMl/RBnG3Zru3SDSae/0etB9SpFqOzTxj0aBThDmWBwmtbtvLZ89wtPlrKlfz9sphAfKP+iuu/ZHYjASrTJCCLaYTasoy0AGxGG7qw/gQgjyEBtRjKMB5iK5vsPKy0nVuhhoOOTu79qjgiCGDclJ67ZhUMqnEPpupwpytqw7093pZ2WHzERijR6wRMaCKQKxqUNhRDSwY863YDXLF0HqXyCyiVgIqyA6H54K68gx70tTigeSgBaA/5Dy1BbNEIITntynexnIBm9Dv46aqGH6G+7eLWyCeEpskPOnR1coMKfI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mb3JnZWpvZGV2LmdlbGxlcnQtaW5ub3ZhdGlvbi5jb20vYmxhZGUzNDI0Mi9vcHNkYXNoLXB1YmxpYy9yYXcvYnJhbmNoL21hc3Rlci9vcHNkYXNoLW1hcmtldHBsYWNlLXYyLTAxLXNpbmdsZS1nb2FsLWxpZ2h0LnBuZw==","smallThumbnail":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-public/raw/branch/master/opsdash-marketplace-v2-01-single-goal-light.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mb3JnZWpvZGV2LmdlbGxlcnQtaW5ub3ZhdGlvbi5jb20vYmxhZGUzNDI0Mi9vcHNkYXNoLXB1YmxpYy9yYXcvYnJhbmNoL21hc3Rlci9vcHNkYXNoLW1hcmtldHBsYWNlLXYyLTAyLWNhbGVuZGFyLWdvYWxzLWRhcmsucG5n","smallThumbnail":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-public/raw/branch/master/opsdash-marketplace-v2-02-calendar-goals-dark.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mb3JnZWpvZGV2LmdlbGxlcnQtaW5ub3ZhdGlvbi5jb20vYmxhZGUzNDI0Mi9vcHNkYXNoLXB1YmxpYy9yYXcvYnJhbmNoL21hc3Rlci9vcHNkYXNoLW1hcmtldHBsYWNlLXYyLTAzLWNhdGVnb3J5LWdvYWxzLWxpZ2h0LnBuZw==","smallThumbnail":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-public/raw/branch/master/opsdash-marketplace-v2-03-category-goals-light.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mb3JnZWpvZGV2LmdlbGxlcnQtaW5ub3ZhdGlvbi5jb20vYmxhZGUzNDI0Mi9vcHNkYXNoLXB1YmxpYy9yYXcvYnJhbmNoL21hc3Rlci9vcHNkYXNoLW1hcmtldHBsYWNlLXYyLTA0LW9uYm9hcmRpbmctZGFyay5wbmc=","smallThumbnail":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-public/raw/branch/master/opsdash-marketplace-v2-04-onboarding-dark.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9mb3JnZWpvZGV2LmdlbGxlcnQtaW5ub3ZhdGlvbi5jb20vYmxhZGUzNDI0Mi9vcHNkYXNoLXB1YmxpYy9yYXcvYnJhbmNoL21hc3Rlci9vcHNkYXNoLW1hcmtldHBsYWNlLXYyLWRlbW8tOTYwdy5naWY=","smallThumbnail":"https://forgejodev.gellert-innovation.com/blade34242/opsdash-public/raw/branch/master/opsdash-marketplace-v2-demo-960w.gif"}],"videos":[],"translations":{"en":{"name":"Operational Dashboard","summary":"Third-party operational dashboard for Nextcloud Calendar","description":"Opsdash is an independent third-party app for Nextcloud Calendar that turns calendar activity into an operational cockpit for weekly and monthly planning.\n\nOpsdash is not affiliated with, endorsed by, sponsored by, or officially maintained by Nextcloud GmbH or the Nextcloud project.\n\nUse it to answer three questions fast:\n- What happened this period?\n- Are we on pace against targets?\n- Where is workload drifting?\n\n### Highlights\n- KPI dashboards for totals, active days, day-of-week patterns, and category mix\n- Calendar and category targets with pacing context\n- Strategy-aware widgets that stay aligned with Single Goal, Calendar Goals, and Calendar + Category Goals\n- Balance/trend widgets for period-over-period comparisons\n- Presets and profile export/import for repeatable reporting\n- Guided onboarding for quick team setup\n\n### Compatibility\nSupports Nextcloud 31 through 35. Nextcloud 35 requires PHP 8.3 or later.\n\n### Runs inside Nextcloud\n- Runs fully inside Nextcloud (no external analytics backend)\n- Per-user configuration persisted server-side\n- CSRF-protected write endpoints and standard Nextcloud permission model\n\nOpsdash is built for teams that already plan in calendars and want clear execution visibility without leaving Nextcloud."}},"isFeatured":false,"authors":[{"name":"Gellert Innovation","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhL2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjE5MTIwMDU5WhcNMzYwNTI3MTIwMDU5WjASMRAwDgYD\nVQQDDAdvcHNkYXNoMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAo86P\nXRkTSRmlMBZGTlVFN+Xd+9KGzBSAHOdtIC/OIVa7G7OC8Lyf1pe7CgLKLs4c3beA\n4+cl0VgT8G0m6QTXZzy94iKWw8ra/jyEyFdWtE2CUMcYE/jq9o8kk94aqShXiiGR\nM3LKy3tumWnjm2a4qGoMa/tAHooPEnFTWssUiicO6VMMPpvb9Tjt12R+CNlTR7po\nqqSTmY25jtifgN0NM3rd5QPNn11v1SimnHxqe4Uxjom202O1R3CMAMmg6ktDuJl2\nGqAU0RWqgxUAZ42p62XUfSqjSAopbKqvdjuIWzamvIogRpMjXOrnwiOhM7po7Dqa\n6IWyYfyudsCaHd0l7+vOkvsNWkcwe03DV9/okz6IFGW2an4QggE8Jgb4wJKEbu/P\nv0WPN+if34lZhtprIqeUTHNeRYyRitETNCm38a6blI1Art//lXPcb0ZuQQn5Vd4q\nA8rT5MSpMWD7R1oaP12iJaAH7+KwShDWLmACknWnojE5wWJG/4/p18KKDqfFitz2\nqOBcGHU3ak999+ocR67OO+Y7LJYfz0CDaJOejwW/cvzTjAEqWZ8ldezQEOKIjrf0\nI+e4Kaop7FnslxEj/beuh4Rqj9Jhjd7BIbUbUzpDcyUajNM7Ag9W6C+KEwJdNRqU\nB/8Y7SeDUsCobR9uSGpjM7APlR23UQmBmaNKcE8CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAJsHmg1OXzkSGQ7cLxJUyD+fBdr6FjLmnhk6oP4v/1krBZPFR1HzyxXkw\nQO3HkuUqYh4R2FpjIFDLymFlX/DlYRvaYRyw7M/YoeP44JtfEzIN7UQUhsmogW2Z\nx/uFZXqs1i6E9uB5AyicSy34A4wwIOocTMUEidiNc1KF682kRcbaggjNUo43Wfty\nNms+Np28gOkjLPmu+Ho/IB1nT2IGoYLPOGzNeQ411/kSjkhI36OWBfqCCYdhRtBV\n3tTwuUNwhxSu4fpOiumwXboEgmR6SApjIh1ISeIXuKVThOR6cq+ZK1wqTIeeVSXG\nX1dDdnaUyoDHM9joNJjPZMe1O1gc/w==\n-----END CERTIFICATE-----","discussion":"https://github.com/blade-34242/opsdash/issues"},{"id":"files_inotify","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/files_inotify/issues","website":"https://github.com/icewind1991/files_inotify","created":"2017-02-10T18:44:30.832581Z","lastModified":"2026-09-14T20:51:15.252656Z","releases":[{"version":"0.2.7","phpExtensions":[{"id":"inotify","versionSpec":"*","rawVersionSpec":"*"}],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/files_inotify/releases/download/v0.2.7/files_inotify-v0.2.7.tar.gz","created":"2026-09-14T20:51:15.242670Z","licenses":["agpl"],"lastModified":"2026-09-14T20:51:15.306267Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Fo4i4RfaLzi1Sqz5tzWsr+wzf28pSC0ej+/BlFJ4Gsdengn5F19BmFc5OdGiqtjXTpX6oOIAqbhbaKIJqZgireOnMV+CgwRu9Lpq5BrCrtKNL2wcj9U2LyBjorAiTDmfI3DhFwQpC/Wh/KbdhNNh/TDjlOIPNyvrdpO2F1Icdtmm5Kae2t9SpG2ytg3YI7B09ME910bngG3R23hwOBfbLzVa1WLns1SZQ5kBVL8Kw6eheMF7wq2Xvs5gBybRDeJdcZf+NYaSChQT6Ysa8y9NNeidvtv5B8yWlgxAWuR2Eep69eaeIHnBpFDoE9bTvcTcNh+ulVE1O8ul07n5SeWJC+e7mSM5+6jARVvZ7H+lhYgDJZb23ihP1yyB6+FT3+0HLaEdP7tX1h1PCq3x42mqFzhqskAu/1OMKizsqjXN9u/B1T/ShLEVtLeKAnPJmC1dDvvSM+TvoilajUauuaptEfuDaATivMDT+jHAPvAKSFo3oNG4lRDf7+RRWj+IlCGaPSKwSLvIC0fM57fRCXzsMdUTbsSxqnYexj+v4xbJDipWnm3dxilzBPWvwXeHDF+RWN0UbY15x7/d2tMTXUpLl5S48UP45lcSK49VijeNDG6fta5AKpKXgd44SVgbKUEUbnPR6arSiM+60tpvMNBjoQtluVU1ds28xiATTbAc0nc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"INotify file watcher","summary":"Adds support detecting changes in local external storages","description":"Adds support detecting changes in local external storages with\nocc files_external:notify.\n\nNote that there are scalability limitations to using `inotify` on large folder structures, see the [README](https://github.com/icewind1991/files_inotify/blob/master/README.md) for more information"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhAyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwMjEwMTc0NjMxWhcNMjcwNTE5MTc0NjMxWjAYMRYwFAYD\nVQQDDA1maWxlc19pbm90aWZ5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAzl2/bLuQePW/Vf9JDMyH6olg/L/NwBHqrl+iXOo7vcYTwT5faG/JaTu9HkUD\nozRrAjQ+EuXp7c6WDxQZUTqgLiSchJCaNDKntShFKC2PTe6c7x6Lmz5f8cCb8ATq\n7WtSG4hb+BAJfpC1Vq7qrvL+Yrhf/TyM85oO10nbwkKFH6VECEVM6uiW8UmMZSv0\nE5H+F9XPMoyDEAzr0naGWnIw2iKIWYDHvpnKVrvVurnzevf8oYi3qxSdXm9RlNOX\nDFlDGvgioCyYW0r+Yc/eBFH0MneZlxqRR0ydNFx4vG+v+lEKfmI72wHDxlPW0Fw0\nEymPM6A/PwxElKfj7INyJ/FOovDHvy1/ylEopgWSU7RSL06MLiBEqcpFw3RUk1ju\nIzigl2JaMNsS9OujAC1RbCilBILg9F4tKGeylshL4jwCw5kozJX9PhMms51M5a9P\nl48J8gQfzfVqSTLLDsJZU2FmaAOdVkgFYB4KnKSu3f8QkpvjwhzPfwzRx9sqpwAA\nXnJNV22FHg37fpKBHDj/Xjf/5DEHlWjGsyAzu/gkDavZ7+wK0uZ55ZfVNH5oMCY+\nxH7jgbhJ1v5PO5BGASGI+tX2Bmy8ixzv++ftEl6m/oPyJFNZlCx88tW4/Z1dGjD+\nnH1RYg+MbQTti7GnR+D4IsAV5azRzCB4f7Z6QFlQgPfE/7cCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAFhPMKO6AxX+TiWSYoczoW0+jA3+XOAQFxLi0iy/tzQCMZUPL\nUVY5glofIqcRczVYda+DRwyl7eNldSaPwcf2W5hcqfINCEDAuQtCdt7PnNEqHvSr\nMyU9Ax1/JAwEen5XehjXDkkI+yKFec6uLWxgKCHLYL5TBOB5BQGAnqXUkfA1jSnx\n99wca+Iryq7FqCGq225KuZGRS+wSm3S8apDnnlgj8tKgs6a5kEgLw2orqczy8Tat\nht1qepWMWrjhxukh7RtdLXCzLzuVLxiLTdfHBL2xxyoQUiZTOdxz5aBSPw3YJr6P\nYak9M+Q5H+u9YItVGivnNcJ/ciUDHfCq/0RDLA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"smb_test","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/smb_test/issues","website":"https://github.com/icewind1991/smb_test","created":"2018-05-23T14:28:51.247935Z","lastModified":"2026-09-11T20:30:44.382716Z","releases":[{"version":"0.3.15","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/smb_test/releases/download/v0.3.15/smb_test-v0.3.15.tar.gz","created":"2026-09-11T20:30:44.357739Z","licenses":["agpl"],"lastModified":"2026-09-11T20:30:44.441487Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"TFsnD2/WAvaK3dX+oF2/kV/PKHmHcsIakUAR3kuqfw0+WWH9i/lvdyGTPAuFXDSYnAGGfQL55ZS1E7HzPUZZL6Z+soSPvRcSz5swKyz8cs1p1kDNS+mUlpsR7pqV2lVzEFeI9BaVCexbYtxR4Dc+XV1N02G/R1WudoVv9XXpiIHkRNSu48CngxhA/VtnbDYWxC09IcCv1TpgVBo7//8UBMfxrKpWWb9LCoAriMKVJGlidAPJm/++9aG2LohSRQYob0nvNFa04pQpsTaBtVMkA90sMfXbDzZ9072Q1qN5AStNLBy+I+9+KcpKdqNjMvH0PK0IRtwbx4WDQAnngayIOzlgDNqxD2l8cgenCt8J6swPeutBx5WtAgpNsdM+YN2TBifWB4kEttprYBhEG0g2XMkHDBE7AiXO7xDAKrouT1u1/GqpuMy68KHLhXLUKBSFtCDeFIvHT+z87toKmXQI6N3JzgyDWKi8GXjHoStbYgEMijh/aE6d9EclYkfHM7KfOcxZPAl5Tvz844Yog8FY0mrNJvTsL53qO/FR5k6VDibw07Z7ookRLpgVN0Uu8/7zE9xziqWkgJ2TF//DT6DF6Udcqf7RHflb6evD1Zn5nxfPwcogG1gt165ZY34vzWUq4eM2gLii+MfNHz95RdlbDNolRrvt+9fXAG2k1m8/pgk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ljZXdpbmQxOTkxL3NtYl90ZXN0L21hc3Rlci9pbWcvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"SMB connection test","summary":"SMB connection test app","description":"Nextcloud app to debug smb connections"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhCgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwNTE3MTQyNDIwWhcNMjgwODIyMTQyNDIwWjATMREwDwYD\nVQQDDAhzbWJfdGVzdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKmH\nsfoMNh0sDVn9afAnmdJ/4Vt8/mE3B+egRb2GLDml7GqTF++Pq/FTO4W9vtr/3gqV\nA+GKZdS4jJMtwNyWRSnf1VM6abSSvRzkZEleE+sayAaSREp8xTfQPUzLJWfUfy3x\nh49yEtVcOu907IpV/CWcqZY4bG/EenV3vu31hyL4zjlhSs561BfsKGCvx024eT3w\n0HsM4tvDZ1APBi80LovbTfL6OId6Hmn8ptLfCZ8mxoz79sPn3Y9wh5hukKPEZ6t2\n7+YaRr8QqX1PET3x2AREvgSkZhnyN1+aJor6J4qQJ1NMJ+ssbh/1G6FuMXkmjfC4\nZYewlDPoAtjlUsu0DXy3PxHcMfFIpOHV+OdED2Jp5qN4Z8jOBpJcQzySlraCWrRc\nwe8ZEQioiZfaBiLjARVBhU+b2HSl9/PjN2Zqts/gFp1FQ+wXQ98Jv5/QExMtpZ51\n7GZ5XIIIB2lH1Shycbacg6N9XPzIOCxxoeVIBRhhN1AbuoAej18H0kfNa/HLiOew\nt5qmwiL7KJM+84pDJLKQhNh0QjP0LVKr1P6yhM2ts4bYPLMWiNcQpcMSrzGHzcDu\nTPM8wssm6V7O9yLSUCkQixd4nRTCYhGc+C3VJV9NndEnrKtDdGYag+6mZBR2Yuo/\npRxz8IC16DL6LaZ1duLz1AwNJPSGnDgtawH5Fk3rAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAJAJSs8rMJ/0WenLyZEtfzcOr2jzaq3k+F2wcQ4L/ZXIqiTMlywaTzrP\nt8xc8SxFu+r9pRvJs+5ugtSd4pDRF7xyPPm4ggx/kthA720RCGWk4ycpgvfJuzA6\nx+m4N2RSSBRwq/Mg9+j+hTsEJKF65olV/hcnCcmMpnk+eoHiZbOMamW8ghW6uMhf\nsK3DS7AXUPFODixIQtbSH78UeWy8aC1EpM5Q+WHdvRC7Fy8HCO5lEov4ynf1cNr5\nsOsME44UgF3xPmj90QF5dc0geEV1Vt0pK+zjucHGbvm4+iid7Y9RVJpkDdcbtJlx\n7DQlyUACpvl2G7kT3PNx6S3DUXXiT9U=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"stackiq","categories":["integration","organization","tools"],"userDocs":"https://github.com/ConductionNL/stackiq","adminDocs":"https://github.com/ConductionNL/stackiq","developerDocs":"https://github.com/ConductionNL/stackiq","issueTracker":"https://github.com/ConductionNL/stackiq/issues","website":"https://github.com/ConductionNL/stackiq","created":"2026-09-06T10:09:00.735575Z","lastModified":"2026-10-20T10:54:30.477957Z","releases":[{"version":"0.2.7-beta.20261020105142","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=10.0.0","rawVersionSpec":">=10"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/ConductionNL/stackiq/releases/download/v0.2.7-beta.20261020105142/stackiq-0.2.7-beta.20261020105142.tar.gz","created":"2026-10-20T10:54:30.488770Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-20T10:54:30.501403Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"CqSy53srlyNjdyZP2xAhJMP+U5fzszHNNaBpYePAd/281j6AKTLd5NVwh7Cmt/JY/wJaKUEZrAzaVE4FM9CH80/LQ3WGCTUjO9p5q/hKhu9flWAeddSVKA5CWmic3WjA7KfPidnwRQcZ0sduBqHyLbGYBII4ANiUSEYqQfJ5hegMKx9gHZa4s+hX44BPu301hPL7IxXjAhgGVvDxGMztiQKXmEyjVk+aUT1JerNBKLsHRvNp/BjBIi5QTDgTT8awwaIKxJFXriJZJtcxUvBE8PuJDed5+r54vuvYq+Q2VEBV5xkK40iMHUhBKi5Dv1Fl9F0L2JVAFwP5XLAjXS0JP2jvX0c3vJ+y4ZkNhLFYVzNmcm0m/wjRd3w0sdgtL3HmSVhH9o5f3gM521Jml96QfQ+W8Uolcp79EW5GXxCRAfxrApflREJAMce0uk/JnbdZFRvy99drDjDuFmHYpWUrF0iP9PjNIPT9FImB73EyRhCwLhY9Bc1WOI50sTYVxrRPvpW+rmMHhzXmvnLSoyfEfe1rGpqkgc04phQ5Ft0EnP736qYlSPpLbCbw8aSvE6wCsLM3+scpRdXJb1AeL64m0OxBNspuy20ojRQdRC3ivBSw9+YR4G5NcmZ0TIolftX7ooTerxdQRpr5p9cMWB0PfXhBdPiUHzYmklq/F3W9N2E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9zdGFja2lxL21haW4vaW1nL3NjcmVlbnNob3QtZGFzaGJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9zdGFja2lxL21haW4vaW1nL3NjcmVlbnNob3QtYXBwbGljYXRpb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9zdGFja2lxL21haW4vaW1nL3NjcmVlbnNob3QtY29ubmVjdGlvbnMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Stackiq","summary":"Manage your software portfolio with applications, modules, and connections","description":"> ⚠️ **Active development — not for production use yet.** This app is under active development. Although it may carry a stable release status, **please do not use it in production environments before 17 June 2026.** See the [app page on conduction.nl](https://conduction.nl/apps/stackiq) for release planning and what this app does.\n\nStackiq brings structured software portfolio management to Nextcloud. Keep track of all the applications, modules, and connections in your organization — and share them across a federated open data network.\n\n**Key Features**\n\n- **Application management** — Register and maintain your organization's software landscape\n- **Module tracking** — Break applications into modules, module versions, and track their relationships\n- **Connection mapping** — Visualize how applications and modules connect to each other\n- **Contract & license administration** — Track contracts with an approval workflow, renewal status, and expiry alerts\n- **GEMMA/ArchiMate standards & compliance** — Maintain a standards register, record compliance claims with evidence, cross-check modules against standards in a compliance matrix, and import/export ArchiMate models\n- **Portfolio roadmap** — See applications in use grouped by lifecycle phase, with end-of-support and phase-out warnings\n- **Federated synchronization** — Share and sync catalog data with other Stackiq instances via OpenCatalogi's directory network (optional; degrades gracefully if OpenCatalogi is not installed)\n- **Automatic user provisioning** — Sync contacts and organizations from your register into Nextcloud accounts and groups\n- **Open data publishing** — Publish selected catalog entries for transparency and reuse, with anonymous self-registration and moderation for new organizations\n\n**Requires:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (install from the [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nFree and open source under the EUPL license.\n\n**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl."},"nl":{"name":"Stackiq","summary":"Beheer je softwareportfolio met applicaties, modules en koppelingen","description":"> ⚠️ **In actieve ontwikkeling — nog niet voor productiegebruik.** Deze app is volop in ontwikkeling. Hoewel de app een stabiele release-status kan hebben, **gebruik deze nog niet in productieomgevingen vóór 17 juni 2026.** Zie de [app-pagina op conduction.nl](https://conduction.nl/apps/stackiq) voor release-planning en het doel van deze app.\n\nStackiq brengt gestructureerd softwareportfoliobeheer naar Nextcloud. Houd al je applicaties, modules en koppelingen bij — en deel ze via een gefedereerd open data netwerk.\n\n**Belangrijkste functies**\n\n- **Applicatiebeheer** — Registreer en onderhoud het softwarelandschap van je organisatie\n- **Modulebeheer** — Splits applicaties op in modules en moduleversies en volg hun onderlinge relaties\n- **Koppelingenoverzicht** — Visualiseer hoe applicaties en modules met elkaar verbonden zijn\n- **Contract- en licentiebeheer** — Volg contracten met een goedkeuringsworkflow, verlengingsstatus en verloopmeldingen\n- **GEMMA/ArchiMate-standaarden & compliance** — Beheer een standaardenregister, leg compliance-claims met bewijs vast, toets modules tegen standaarden in een compliance-matrix en importeer/exporteer ArchiMate-modellen\n- **Portfolioroadmap** — Zie applicaties in gebruik gegroepeerd op levenscyclusfase, met waarschuwingen voor einde ondersteuning en uitfasering\n- **Gefedereerde synchronisatie** — Deel en synchroniseer catalogusdata met andere Stackiq-instanties via het directorynetwerk van OpenCatalogi (optioneel; werkt zonder OpenCatalogi met beperkte functionaliteit)\n- **Automatische gebruikersaanmaak** — Synchroniseer contacten en organisaties vanuit je register naar Nextcloud-accounts en -groepen\n- **Open data publicatie** — Publiceer geselecteerde catalogusitems voor transparantie en hergebruik, met anonieme zelfregistratie en moderatie voor nieuwe organisaties\n\n**Vereist:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (installeer via de [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nVrij en open source onder de EUPL-licentie.\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhQEMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTcwNzE3WhcNMzYxMjEwMTcwNzE3WjASMRAwDgYD\nVQQDDAdzdGFja2lxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuii5\nSscXXWY2sDT63bkxMePba2NVl6dCtFeMnz5YUiLf58pZ01e0E05l71hiSLdPN7JJ\nJs3QhetrycvXNrgHq5cW+PPhKx/T0zb6pPXfDmUaoL5OKTtjXJS1hWqgsVy6FyXC\n9D4dGN+gh+Cp7dPZBpuC8DXjZKFuWCgn2ckHMYd5DZSxk+566mWZF/9EaAIjVtSA\nzvxxeetzaAFqQISLdhjH0JflmN0cegaCAQmzZIjRknzksSyZgto/TzyE0qWDnimK\nVtl7lb2o0lHNhCuEOEgMr4EiZedWWpQO3KpUTwmMuMxI9WyPktUD2AJZc0egmgK5\nhFLdxF6wn+XOTkeY/iDThfZj3SLRwo/Vgke2XY5kLK4hjLCtDWQ5RBhXSmMFnz24\n13zFpNgHT60b1Q0ZmrqWlfdYVAFhUwC2ewYwxtgZOtbbXBqeHAX04wx9K0EQ670T\nzxjAwenCcEDeEUVMS27CO8t+FCARltSrF7TFJXnVp+1INK/RgO44QIQYxoEyWNj5\nEuwC7AJdYsNrYosORPVU9rYpURsiY6mgt8+dLCKkoqFyqSg+vruEhN33D3SR6y1U\nvFbe0MpsteXFj6rJ6dGdoAr/Jco0j2Mz000d/hBVkwFaaVUxsOwquZeCFb/+0oMR\nBLLnOnGNG9pKz8/QM4Uup3Gn8yuUSJIzSiHXSE8CAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAc02zdmWlohyc2sdjKzh/8W9ZEBguSZBMqulBqpBLL8gcOZs4GfvVSE5z\ncY31EJon5ecVOl4WOOXJU2HFx3KAYt0dSQy4Ank/zalXtlFlaysuIIYCmDviwf81\nvz3pZFd22R4QSHnvSniDLHmjLvu7DNbl22uR5+b7cb3NZOE+g/Cqq1l96jybPHLr\nYmXLj5WHRDvEMgGvaaZH0oq3RA5/wUrSifP1Uf0J4YbwZePXEEo5N84OkiMxwnuF\nVoVTzDlC/939l259NXIQu7iSiU6BF6Mdwxu4v2es4e6vWTTRY1N0ZWfsLsqWIh28\nrvd7zbTyj5rsaIu7dbHdD9m5KDpaAQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"htmlviewer","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://git.mdns.eu/nextcloud/htmlviewer","website":"","created":"2024-04-30T11:18:33.351385Z","lastModified":"2026-10-13T07:41:30.253702Z","releases":[{"version":"35.0.0-build6069","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0 <8.6.0","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://git.mdns.eu/api/v4/projects/79/packages/generic/htmlviewer-nightly/35.0.0-build6069/htmlviewer-nightly.tar.gz","created":"2026-10-13T07:41:30.264247Z","licenses":["agpl"],"lastModified":"2026-10-13T07:41:30.275903Z","isNightly":true,"rawPhpVersionSpec":">=8.3 <=8.5","rawPlatformVersionSpec":">=35 <=35","signature":"AV22t9MaRt9wVNpfD5LQV7FS83CfqCOrMxm+eKkosPmYrm2s10wrC0GLZW2jdU7l+ZkoF/XdzCR6vAIqYCqAHZXtyMx+sUbrraMV2MIPbcSjSpORYynKyLzKpagXtHThuSAhxFYCYaJG9+jbd0OV4ImTMWLwn/nU0EbIjzlwbhERMRjkzZItC32wAZBcvaUReayug25xrLndokNlnd94srbFqsT+0XP/qMPDWPcycHhcWug7T/lQOY23ZLpMyssbYUmwcE7/Wrawey3IZSWZEFQi8ZApIvP1LbtQ0hT6IVoXxAmklvjMLRE9HBsKLnt0Mn1qLBZW0+hxssgoZ+v1nMJ5rMh5def8WINK6NJT/0PxJIJAzhfDpFbTBibbio35mjxsUBu+hvg3eg5fFUdkqrCMW78vDYyMPYuF8nMoz5m18UThg/NmUuBI8mi3LQB8xE2JeMT17c+cLbo+kmxHnWd1vWukQ0BLsO3miLO3tSg7zT/duPXx0+iNPduisZOXea5WTG3hK6R99Ee7YwVdiH5/XMYBSTiWs/+kWOvXowXDFI4HIpS80NFQjkU+hHaAI8r9hoPN8bMnZuPZ2et5KfBMiQeOjOGtISPPJhmH3SdD75a6DOfTGdaOX/UGFxXTrBswNc+tWB0jJiqFd/brnKdZUqCDi8+qS8sR8Hm0yVs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQubWRucy5ldS9uZXh0Y2xvdWQvaHRtbHZpZXdlci8tL3Jhdy9tYXN0ZXIvaW1nL3NjcmVlbnNob3Qud2VicAogICAg","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXQubWRucy5ldS9uZXh0Y2xvdWQvaHRtbHZpZXdlci8tL3Jhdy9tYXN0ZXIvaW1nL3NjcmVlbnNob3QtY29tcGFyaXNvbi12aWV3LndlYnAKICAgIA==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Html Viewer","summary":"View static HTML files in Nextcloud.","description":"HTML files can be a great way to illustrate content in an interactive and responsive format.\nThe HTML viewer app enables viewing and editing of static HTML files directly within Nextcloud.\n\n## Security information\n\nLoading HTML files within the context of Nextcloud carries a risk of exposing user information to third parties, depending on the configuration of the server.\nThe HTML viewer app uses the sandbox and CSP features for iframes to disable JavaScript and prevent access to user information and websites outside your Nextcloud, but this can not guarantee\nthat no information is ever transferred to third parties.\n\nAdministrators should also be aware that some users may not be able to differentiate between the content of an HTML file they have opened and the normal user interface of Nextcloud.\n\n## Support\n- [Matrix Chat](https://matrix.to/#/#htmlviewer:chat.passwordsapp.org)\n\n## Settings\n\n#### Enable Links\n\nBy default, links in the HTML files can only be opened with CRTL+click.\nLinks with the `target=\"_blank\"` attribute can be enabled by setting a custom sandbox value that includes the permission `allow-popups`.\nOtherwise, the \"newTabLinks\" feature can be enabled to set the permissions automatically and convert any links without `target=\"_blank\"` to include it.\n\n```bash\n./occ config:app:set htmlviewer newTabLinks --value=true --type=boolean\n```\n\n#### Enable JavaScript\n\nJavaScript for HTML files is disabled by default. Enabling it is a bad idea and we do not recommend this at all.\nAlthough security features like sandboxing, CSP and CORS limit what can be done, it still means that unknown code is being executed within Nextcloud.\n\nIf you still wish to enable JS, this occ command will enable it:\n\n```bash\n./occ config:app:set htmlviewer allowJs --value=true --type=boolean\n```\n\n**Note:** If you set a custom CSP or Sandbox value, this feature may not work if your CSP/Sandbox values do not allow JS execution.\nHowever, you must still enable this feature if you use a custom CSO/Sandbox if you want to allow JS.\n\n#### Set File Size Limit\n\nBy default, the app will load HTML files up to 32MB. To change the file size, use this occ command:\n\n```bash\n./occ config:app:set htmlviewer maxSize --value=SizeInMegabyte\n```\n\n#### Change CSP and Iframe Permissions\n\nThe app automatically configures the iframe with an CSP for [supported browsers](https://caniuse.com/mdn-api_htmliframeelement_csp) and a sandbox to limit code execution and data access.\nBoth policies can be changed through config settings with the OCC commands shown below.\nPlease be aware that the general CSP of your Nextcloud may still block some access regardless of what CSP and sandbox settings you configure.\n\nTo change the CSP or sandbox settings, use these occ commands:\n\n```bash\n./occ config:app:set htmlviewer csp --value=YourCustomCSP\n./occ config:app:set htmlviewer sandbox --value=YourCustomSandbox\n```\n\n[Documentation of CSP directives.](https://developer.mozilla.org/docs/Web/HTTP/Reference/Headers/Content-Security-Policy#directives)\n[Documentation of Sandbox permissions.](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe#sandbox)"}},"isFeatured":false,"authors":[{"name":"Marius David Wieschollek","mail":"","homepage":"https://git.mdns.eu/nextcloud/htmlviewer"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhJkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjQwNDMwMDkwMjAwWhcNMzQwODA2MDkwMjAwWjAVMRMwEQYD\nVQQDDApodG1sdmlld2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n2zQcvra1tLPlIfltWv2NlTE86nveyiZRN33KlFWRiaVyD75xc6XpO1U67gRm8JhW\n0+UWHQrSTTNS4NBOUirpIBGkCByry/W7uIfau3oGKp3+nfejBOiDtDVsJ6l2NUeJ\n4FjpDKcuYlBsakirbHHPV65Y9AHZixvmp8A7QPGmJxNbFvNbVhc6GJrEUseNEt6c\nq8x8RtOiqn1mrS5p9+95QAZdZ6DyY9Pjcw9dMoz13JaEbb6W/lCCQoj7kpDPvjhJ\nrJ6i8kNKmtY3rRI6LAc99rOMt/KrTdg30peJrZkbLhyRlQk4okYPII1u7e7LfSP/\nzgCPLBUaT3YbQrk80WMU7orRu/FE4LHWwoJE0sgyNs2MRfeQoXWkk8mCjl7tCag7\n0VbaQM1VaiY9VaXcmEzWOiLf1rOzkYMJ1stELvUJ7yFyLZRx4tQ6eI2i/mWxJVBj\nw8Xl/0QfgY8Ja5GQxf+Xw1IUCpTGbdav37UQnP80ZSDUW2rVXRswOh2BREVeghWZ\nQf7+zMp00e7IzB9GfM2RqpAwNt/Jfm7aLgp58IcgfeeKsmv9Yu5vP+qvy1NAef29\nT7QQYzVHKMs+Cb7Cn4/yAyFJ7nhUGMLTfplo1OPvCD24Pa71vpbAnkm2jKSlua39\nNBVIiyKL0t2ZFLBSBtxwlde0mgCgeeChWkFNJ1LY0EcCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAGgc0aHdjEteR2XhZEyD9pIv/asZW1BpqYwTm5pC/KKUiLgXRt33D\nmTVAbt7hwE8DS1B6wae0IMBItU3W1EEDKGwjt/zlt5+91XxcDMXsL81j8aywnpl6\nEGI0Z7xsstfEhFwo+1VztPZqiZ59l/L1oR7CZEfG7nV48a1NG5bac2ztOKXNQqBW\nNUS4g4XEI1XGQLuYoqIBVRe+9RqGijVTDYW0OQA3JOL5bfVsP3inDWk9j2xXm7ev\nJ089IKF1UJvYbGPpQbz5gpwTuC/RZTdRtFUb9nHYu+agSJpu8/1IXEmso/yQnHVs\nvNLN7nGEeI7mXEPFZD0tf8sUmDaj9nf6Sg==\n-----END CERTIFICATE-----","discussion":"https://urlr.me/5CaWMk"},{"id":"permissions_overwrite","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/permissions_overwrite/issues","website":"","created":"2020-11-24T14:05:26.818117Z","lastModified":"2026-09-14T20:52:30.933808Z","releases":[{"version":"0.1.18","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/permissions_overwrite/releases/download/v0.1.18/permissions_overwrite-v0.1.18.tar.gz","created":"2026-09-14T20:52:30.921448Z","licenses":["agpl"],"lastModified":"2026-09-14T20:52:30.982466Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"mi54xe6UD+aPADRwOStTuvVHk1A+r3H9yqPiCD+1i2ODc24dxURA+uG3RVG24pT8G38Ef4e/K3Yp9TFH02bYux5HsSPcgeq90OPS1BlHpQZVskPehSGNRSQ19T9+bsec2lz9jkQqCuCJiUx7Df4cquomZUFYTopAuDqXrkgpjnseiYfem/awrTJOTcysiunTgoOZxkec5lTewJpJRy1TJ3zqKW9gjKOnNdcXjaznq5Y74yhao2RB0hCnxDlgdTb0nq7DU3djlTNNEclIG16mVhr8UUAqU5WiB9nc5t5AIdCWz/WsuTeQDpvClIy7i98phw7BBqlNTBk6xKYRTEPi1X1sPVuc98Y32/QwMP0s7RNem2qSt9TigKMdw6wCPwIM9EPBRWp5Y0sF2xfFCLCstaolWm/T8C8b0S1It5UWPxQLp3S9l9Gn54mw8In0QWSkCxiq2VxRF3l/tQOmt6TqLI3en1Y3OIbkfqIg3xrgyzC0lfYFfNs6gXxENp5mTDFdjDJeSm29UkrOL3MD9iJel7YmRfC7c4vclh6fXW6EfQgbP1kl9dC42AXlsPofxyK0SemeMHNDbVu6wxnRNaxj8tF1GWh4PWfJGyykEiIllVo4AlP30UAUUrJRRkIdPonn1Dqnj820t9iGtglcD83hfnRugwXOpfJd9qXni9km6ks=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Permissions Overwrite","summary":"Allow overwriting external storage permissions","description":"Allow overwriting external storage permissions."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEDCCAvgCAhFaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAxMTIzMjExNjM0WhcNMzEwMzAxMjExNjM0WjAgMR4wHAYD\nVQQDDBVwZXJtaXNzaW9uc19vdmVyd3JpdGUwggIiMA0GCSqGSIb3DQEBAQUAA4IC\nDwAwggIKAoICAQDAFwkqjth6fMoueEohnwgIezEywnSOoeeSzFvNA7tt1q4df0P8\nW9q2K4oLUht+piNOTQdLMxgXM9Og80/AQ5io3wRMoD8zC++2ktiT2AZN6DsKL8jj\n3J4ZlUyL+B6/WdjUclgG0Jw/lAOHyCeNlCZWDnz2sm9+lX+iF9Zv79x38Y2zYhmy\ntAX8F6hRnzlw2DswSZVpMezkBAKeJFRs+qb6tjwpn4FgE/7FUU/wB1DnscIxCWFM\neUSXhRLCqsmzgPmoAKPRZFBBFEYcWdd54k827Ak8iAYWTJGvQ1x1pKZs1GIKgfg+\nJGQZKvJCOzZk3LwHe4afmH7zlWtpyMj4QtGfi90wOVZ/4cnH7llNRCInCA8akjyM\nUbysgklsiEYLjDN+3N+j/fMleSvGIpYsv+DJ0zQvTQVduiDaDz9634/6d6YgQOSR\n6fapcUni3GmA4Z9wMGgyOly17WqnZUOaS2nxu9lrVyexXTRiQt1TknipJo1VreJv\n6yjewb9cf+s4VxGf47uph+7nRxnXZqoPmy5Wojd6lkuV9T/Ilq6P+cGEKrjzzCDB\nHyfOH1mPu90Iebw5IJGvpn68DdGscbJt3R0wdZP0TlG+XiGnY87t9BUoZVxxbHde\n2xOyjTeZwNLswOMF37mkXCI19ExuoJSDy6z6PPGsuHMN+HBAP+08FeExeQIDAQAB\nMA0GCSqGSIb3DQEBCwUAA4IBAQAKqejfYBuUj271Fo+0omWQNHwTpJulq+cF7YOQ\nUyjiUlDdHhfVbu+CZCXrCNEIirdlyM1Kh8oDS1glNWa8WF2WnccMJ2hkLRjMPwVz\nh71S2BTP1BW99DWreJQeuefS4MqP9ohiUhKatG3cR8cU0W1HbJwqWLciHa4QmCxf\nZ7HBupKbxMSBMfn7hK4U2waGXmK6Y0aLgJhhG2isq83Q41qnSs+ZyjqaK076x8jx\n5a1gzv6jiJT1uw0SrbPYCBoFNYU4epq/TQDTtHRJniHN7IfH3lMO/dQp/969dmWy\nQPoyeNCD2DkycbwPaJZFK4Yiq2B6OXj/whPiglMQptOf7Fvh\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"groupquota","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/groupquota/issues","website":"https://github.com/nextcloud/groupquota","created":"2019-03-12T17:36:28.959626Z","lastModified":"2026-09-11T20:37:08.506566Z","releases":[{"version":"0.2.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/groupquota/releases/download/v0.2.6/groupquota-v0.2.6.tar.gz","created":"2026-09-11T20:37:08.492929Z","licenses":["agpl"],"lastModified":"2026-09-11T20:37:08.557505Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"lRgZEYHsFg+6Jbyp1LqGhA7FxyDqKb1ED2KoXLpMEfMeB1sm93RflkE2sx2DGS6sdUfvltZU22KdKzecz84oyGEotcmFPw0D9BYHHbRKbrlFy3UkIZd2HGfh4noLINCUoDcn0j6WGTymBXI/fQtiZFo8GcwyU3NHgW6/pRRc0tkqzVAwruNfhvBhu95Epe5Wb//TpKbMFl7RbzOFZ3x6O2SnVsbO+dG6dPeM25E6For64NanKDPxgbyZlGDJytyqBo5QSWqeuDK2rjM+iKU9bOQ4qDLxO1LjoUpcbLE9QudPrq4jvNHdkvdHewpThHSxrrLDnEo3xrO/yA5qzJtQbgOnZ+tpJc11IU4Z4q/K1b8/EsmQB64tmaR7Rp1WL+8pxpmiK9cxQNLNgMGVIeClvdMJkF7o3h+iYpmsStvz2m0YSZs96ToklJhcjidyb8YVj6xaaanf24CmGSMxZ+v5YHt+CV2Zq2hRMm2kbwva+GzqyrMiXqItWSXWzAw9oIhcneZFgYMksyA0+B0o5l01397z//VGIEb2OrI8+xYtHNrjdg3fMckyDcAFtmx9qS6JPPRqQQRas9+ZzzSdRuP7saRP/uIcsheDkVzJ/e/IKPujYMObnGrfdkYq0yKWYOHIlDz89aENrKfdtI3Yr6hOqXDI/kN0VINp5T+jL0QEN8I=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Group quota","summary":"Give filesystem quotas to groups","description":"Allow setting a disk quota for an entire group.\n\nNote: configuring quota is only possible trough the API, no admin interface is currently available."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhDeMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTkwMzEyMTIyNTAyWhcNMjkwNjE3MTIyNTAyWjAVMRMwEQYD\nVQQDDApncm91cHF1b3RhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n07Dqe3wOKmEzaLlZ9j5msAtmpKhfIcjR7np2kw4x2u2fHM85W26zq1HWxfhqVD/w\n42e/yNXpbNiEWSFMawtxcQgD1mPQAEobaXa2ugLW97xfteXCfQbeLZT7FvGKCCpr\nblwifxhUuf5VRIl5SW6eAX4apy886yEsDpSQVMN1HH45euYDAXiO3sNAQ3ae2ttZ\nyZSlpajX12zQ2nCla5i4WN78d/2uzQ4kQwZ/BvgTnxN3A00gM7P+aylsSwekeKAN\nukmxCA0HBhTQH0AVBtIhYM+kaPg4FBRb7bC7dVi75LRHNujO9e/B0DNdSCPzqud+\nhBAJqvVacDpt7BRFPYJgrXDNsXU9ZL2K20cUwtYLBLuivLdqIeU6bB0dvIyRBjp/\npzJFVX0nhDombsmF5d9mWFXbhJTkhSzdBEVIDXT/9ngXfB8e3FCWrWDfhjZrLwsZ\nd8FMDKhPJ5LVgoofHDA2M2nGlJrixaHRLSSZyO0F+4sDKOLHorbw41wgTgr03eAh\nd7Jb9a2saEwSbCTwCUiZ/ldVKaG0spzvrPve+gDHNLBzppT7Z+RLpviIIANytzW8\nMtgC6NnYPl8eIO8ODt1IVYxoiEwboJsNbkV3KQGhu2RXl4c5dOGSB4L+dj+LqmbD\n2roFNDYpxdOBgEFZgv4CayPMvJcrokOvgWqvnp8oJZECAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAbvV41gkK0ct1JV/MeediJqFcQra+/9awgdICCUXZfJ6tEC6pudCe\nCKu9vtqIsIyKBxhvGj6EvP6/32sPSciLUFbIKfMUvdd9n0Q00tTpNmqza1/x8Fyz\nViZnRIigFPWFBuPr9GhHeySjEVJ+5bpOP2IZOZkQNJlQkRdP6+kFb+zrbVc2G51W\n3fFmApGHMyC72W9EvfiCYnF3czFWiOAfwkdiBhjJiXz3quUfMJ1jKV4R1jdJVQXt\nenIEZldtkesrflAP+cRzGgCUuHwAAOc7hoQMreu6SSLQT3aRKnqvwH3M+QTn2HxV\nZEMiBoHGMDL88wQRDGdu7b3vccmdbjucHA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"user_lockdown","categories":["security"],"userDocs":"","adminDocs":"https://github.com/RentnerKev/UserLockdown#administration","developerDocs":"","issueTracker":"https://github.com/RentnerKev/UserLockdown/issues","website":"https://github.com/RentnerKev/UserLockdown","created":"2026-07-27T16:11:06.446244Z","lastModified":"2026-09-24T21:08:32.753416Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/RentnerKev/UserLockdown/releases/download/v1.2.0/user_lockdown.tar.gz","created":"2026-09-24T21:08:32.745238Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T21:08:32.816047Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Rv9K8BzV4KVZvPcVVxgg3CELtn+zP1FHnqDlWCs8P/0QLC/rCkH3nZ5jb/HNEMV3QUiG5dDVB3xSBQsAqF1GOign5vQhRP+Dzmgg7PFNmvcwgkWrHfrEUhnXPPruic4N4ALWZIL5GP8PfyX1jyDUhHj3btIeACa8byrGmANTeQGwnM/9X3DhdFXiMSCYvhPj02TJxmo2zhGoPMxnoDaei2T+3WpTj8ca8C1mPQ3tdJwSG4XDqw+rsb+TrxKGWQNvYejni8d9jL7BoJ2xTEYKkE5bJFh5ksPa66GvYlQoUnlMDXnPwf/F+MOrPvbPW0RftB2I8RvQjNXXYK807DI8Jv3G4k5N8I2kinEg6R5dNo4snqPM+mTuSwCmvRNXfAcbunu5qPvjSaCb9fKfJhi9s4Sf6QA53LuCPpmSDq/R9g2jhJI8Br0E7k5vIKiHb62TgOMCZ7g6cK4QvmXGHvNqkjS1yYqKR+zp6Hedj/FfYiTE2ghLxMPjTA6iAPdIpA7Xc02m1gqoMSToCe0DX7KK8oG0k+argp6BHnWqOimsw95br+8S4SoQbY0rF9XcVsmj2voOTLgTZlarDS+j1k2Th6vBDtAI2/udaKGv+edhaIjhdsHG5MvaVpwWU8gzUrEICrqUYj5TErats2zVVVSyMchAzERgq0t1Hru6s5cPeg0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbnRuZXJLZXYvVXNlckxvY2tkb3duL21haW4vLmdpdGh1Yi9hc3NldHMvYXBwc3RvcmUvdXNlci1sb2NrZG93bi1vdmVydmlldy5qcGc=","smallThumbnail":"https://raw.githubusercontent.com/RentnerKev/UserLockdown/main/.github/assets/appstore/user-lockdown-thumbnail.jpg"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbnRuZXJLZXYvVXNlckxvY2tkb3duL21haW4vLmdpdGh1Yi9hc3NldHMvcmVhZG1lL2FkbWluLXBlcm1pc3Npb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbnRuZXJLZXYvVXNlckxvY2tkb3duL21haW4vLmdpdGh1Yi9hc3NldHMvcmVhZG1lL3VzZXItcGVybWlzc2lvbnMtZGlhbG9nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbnRuZXJLZXYvVXNlckxvY2tkb3duL21haW4vLmdpdGh1Yi9hc3NldHMvcmVhZG1lL3Jlc3RyaWN0ZWQtZmlsZXMtMS4xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlbnRuZXJLZXYvVXNlckxvY2tkb3duL21haW4vLmdpdGh1Yi9hc3NldHMvcmVhZG1lL3Jlc3RyaWN0ZWQtYWNjb3VudC1tZW51LTEuMS5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"User Lockdown","summary":"Verwalte granulare Zugriffsrechte für ausgewählte Benutzer","description":"Steuere Dateiansicht, Schreiben, Löschen, Teilen, Passwortänderungen, Vollzugriff und eine optionale Oberfläche nur für „Alle Dateien“ je Benutzer mit wiederverwendbaren Presets und konfigurierbaren Standardrechten."},"en":{"name":"User Lockdown","summary":"Manage granular access permissions for selected users","description":"Control file viewing, writing, deletion, sharing, password changes, full access, and an optional All files-only interface per user with reusable presets and configurable defaults."}},"isFeatured":false,"authors":[{"name":"Kevin Sträßler","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhOsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI3MTIzNjEyWhcNMzYxMTAxMTIzNjEyWjAYMRYwFAYD\nVQQDDA11c2VyX2xvY2tkb3duMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEArP+kGwHFhCn2MxiR0VNnli00bvwrIzmvSiXV13Rxft4/YdR7af/ZkA1PC2CF\nOjJhf9IZVzr0u03R2+asTs6iXXfLBzTghueLxBBJcKFkrf5/kcI9tB+BMaIBaHHv\nxdCeUisFUB0W5nznSZEeq5y3E4HyS18NpNe1tp/bEi7lJ0znsOhiKiemMFJJOZ6V\nIi8Kb1u867e/BUP2I1ChBP8iKTCbjJLnmMYXcEBrZ5mpaLaGV9Hs75FqHoBkAQ9P\njQ5EicLiL2epfFcISpQupEkHbtZOZgyYZJJu+jvoiJE0sJ2wow9MaLrNzRzup+Yy\n+Li+MQW0rFvCAjjxOUoLQQM1y5fScAmfLqW9ltQdEYruhuIST1iK66Bfb9HceJ4v\nGKv168pm8UZbpzjIgXM0VJ6DwzCqsMfKl5UwTdr7mrr0WpGK0Y70rz8vAshunZgm\nhKkB8+GQbG/DJh0mRsoLDuxIYPlXLlQRKSJHyjgoXbJ7u3VWGXKxSMJCa1h+mvmo\nYe7MfrRvKQeFo1TKEv454pUILZle1JcpozWaB/1lELWSyzHiWNWT4Sh9KXqR310I\nMyY9DNJUrlGdCGPRES7XgrACTTkw0c3eYyqJgZ1LB07BDd6AnLWQP9g5ow7xfS5G\nHrLKwvkLen3RyP65ZQK/v+h7Rre9zhDgbWfOCAzWaSVB92sCAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAIZ/4zI26TThGBYuMncmsczxewilcOaySNEVZ7mMX022gTfJ1\nlsQ6pBBmffJm8VcE+3GiSkR4sZlyQYPsULDcSuw9OmrbGogEQOQhcUOaGB1uZf1W\njgp+47b0wOMLAb3pLwF75oy359HdN36aGWST/fmn+iRZdh8qZUUFR7tapcNNv6xl\nsJoJepMZBYii/NEY5X3uASi2LOIVug065GUdbgNPXbrTtjanxnf8HxwiHNPmXSw4\n/fg1ek2XeWy1vMazc3OxyotxI7LAke0Zly45iU8g9wsDoAnNfcvj+EokG/VkVUfb\nhEhrycfUuhR4R+7zYQ6AEWO/gqePrxXyFpMv/A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"integration_onedrive","categories":["dashboard","integration"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/nextcloud/integration_onedrive","issueTracker":"https://github.com/nextcloud/integration_onedrive/issues","website":"https://github.com/nextcloud/integration_onedrive","created":"2020-10-29T09:06:19.598748Z","lastModified":"2026-10-05T07:01:08.281123Z","releases":[{"version":"3.6.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_onedrive/releases/download/v3.6.0/integration_onedrive-v3.6.0.tar.gz","created":"2026-10-05T07:01:08.270372Z","licenses":["agpl"],"lastModified":"2026-10-05T07:01:08.319745Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=36","signature":"cWcKQtBFrknPQDQ7jvm0VYMI+DV7pwz8PcxXmI8yiyDHJ+qYxC8fm2YVxHcmsMcjOzL3n5kS20bg5uaJpj1j0YtmbkiGVn//bLSTwpKs/3B8Z8PhzTdFEne6vXvZ9khcgygFxg5TF8q8fgF4+xjqC5vAJJ9A8Wau2mLi2awJE/Gafk1HtjsTJiZ0sMlmukxopqYkgGRvoGTbSTjX9UP3U84nDBYhfKkWh18+mjdejGBgu4Z5p7YXl6Dft90dJPm+eS64e6ROFOVF4M7kS9FCIS0OzhUefiU4Zt2pbOF8ed1KFOsG4ZysrL9ZKbD7iQRp2VvoaFpW0hMzbO6UVQS1+X7J0CEk9nGLJ8WnvsfDCf8w+r+QTj67jhunn8rQe1goatB68ks7t01Am0VaGuRA3FXT5WpKpjNxxBVdYaesTP2hdHWwZctBN0Fhe7OpoNQb6Dy5tTRhbiETjHc2yh+CC3vLL2a3h7jlsEnwvXkHAj5fcHaduzp4qV+BhzpmfyzGZY45q3GlKeqvvSpKSne5gjdR/84E46aEghdusylJz4YuudlbTiZJEryTLwIsth8CBLo546nNuBdGbu4Lg6uUKkXzFDDfmIRvU8uc2wQHtLRFceBr69L1i5nTJRRKPbqfz2FMK/o4JWu4lGsJs5sfKPkxf+cZe7Xxjyatw7BmYkM=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 36\n- Added the import_batch_size app setting, how much a single run of the import job downloads before it lets the next one continue\n\n### Changed\n\n- Update @nextcloud/eslint-config to 9 and sync the lint workflows\n- Update dependencies & translations\n\n### Fixed\n\n- Stop a file import from blocking forever when a download stalls\n- Retry a failed file download once with a freshly fetched download URL, the one from the folder listing may have expired during a long import\n- Stop logging a deprecation warning every time another app sends a notification\n- Report files that could not be downloaded in the import finished notification, with their names, which also no longer counts them as imported\n- Mention files that were already there in the import finished notification, so re-running an import does not look like a failure\n- Count imported empty files as imported\n- Report the number of files the current import brought, a counter left over from an interrupted import is no longer added to it\n- Say in the log which file of an import could not be looked up in the target folder\n- Come back to the folder listing page an import stopped in, the files behind it were left out and the import still reported itself as finished\n- Stop counting the files an import downloaded itself among the files that were already there\n- Try a folder whose listing failed again in a later batch instead of leaving it out of the import\n- List a folder again from its first page when the page an import stopped in cannot be listed any more\n- Tell the user when an import stops before it has seen the whole drive, it used to end in silence, and write the reason to the log\n- Say nothing about an import the user cancelled while it was running, it used to report itself as finished\n\n### Security\n\n- Stop logging OneDrive download URLs; the error of a failed transfer carried the short lived access\n  token from the URL and was logged verbatim"}},"signatureDigest":"sha512"},{"version":"3.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/integration_onedrive/releases/download/v3.5.2/integration_onedrive-v3.5.2.tar.gz","created":"2026-07-29T09:34:51.515456Z","licenses":["agpl"],"lastModified":"2026-07-29T09:34:51.583936Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"M40NLnG8mfbyTxd5jp4ATnJCkK0KhNnaV0fMDh+t984hT16vQdS4NsuXWxFuJorbfg7Y61pytfuHCNusCw+dvPFX4iqLnM4Jq3BCh0QPbfOohe4xCdKaQppTz1XLT5v0q0sLtM51QVmwyqx8YHwOqatW1rzwJmNpr/cHPzqewBd16mc2RV4brfHN+tFirsPmIN59p/OKu5tDdQ5yU2bBDvHx41k0Lny7nN9HlPp4xvFbYUYXU4MCeFc9tosrbNUrBdd7XuQsBF4Uoh+vJAwwohxf48sirEs6j4rpVwnRgVd4jVxi7SErRUvtfLgo2iu5xPirnjUt9T8TQuT+iN7Z+rL8lSCgnr0gWvHHnCSIz3n9l46w3gZViOy6fgh0w1uSKsGeNTw7Ioz3JNWksUFLelAC4hwVy882KfoiXjeBS22qREPDwa3EM0NfXYQBGEScV8/bp6J76dzpBPGQ7th3jnUU5DORxPKgUC1dGY57mQAUq7U+fDx08qQg+NmDjNTR+u/pj6m641IwIz5pLe2nVau7TM2P/K/FnFdXQsowZDLAiDhnmYmH0URyfvhaaZsTOyLQo5zfCO9DuCBnOzV6GfK7CW68564RoN5exWdumy/0cRrbws4JB1HuL18AY1dpZRha276EA6MF3LDnweSzrnKPYkz3Oxg3r10SmVnyIm8=","translations":{"en":{"changelog":"### Added\n\n- Added support for Nextcloud 35\n\n### Fixed\n\n- Correct the spelling of \"OneDrive\" in the personal settings\n\n### Changed\n\n- Update dependencies & translations"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9pbnRlZ3JhdGlvbl9vbmVkcml2ZS9yYXcvbWFpbi9pbWcvc2NyZWVuc2hvdDEuanBn","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OneDrive integration","summary":"Integration of Microsoft OneDrive","description":"Microsoft OneDrive integration allows you to automatically import your OneDrive files into Nextcloud."}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEDzCCAvcCAhFZMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAxMDI3MTQyMjEwWhcNMzEwMjAyMTQyMjEwWjAfMR0wGwYD\r\nVQQDDBRpbnRlZ3JhdGlvbl9vbmVkcml2ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP\r\nADCCAgoCggIBALqezRe3UsZsJ2GeZugs/vQwAnCm45kpxdb/fVutjtlsMUS2dEdM\r\n46ktd03XMS2Dj/mOJ6ZwVjpUEQUeEFU098kym+2sr+WpX6VVpYA3zGit67AYeo2G\r\nX2UCKO0OmOuplp1omoRt/hM9MoIsYleopyeINsaXVETngXz+BMhKBFreewJDeTKL\r\nvSRhnHh5K2NrfOGic4eNo+BbhzDeh4UTtlVFG731zSeBnG0rdZgEkhNkpDS1/mMg\r\n3fueiTbFdSZmeTTMAu4SkqFTxoEvGMXy7YWR6V4pHOcUvZk/7iEQ1XmQPh5Qg1In\r\nU24z6T8dEzxjLHwKMwOKcFbLuN/OSU+fLMlB5l+GXQn+IlBrSwribnHaZMZg58OM\r\n02CunODCjtoYl1oz1XpEab6a8Qx6IWLUVJrT9Le/hk+1CBbmN7zWyHpCs1q9tawj\r\niLHekVwf62ogZbH/FG6AyitQB2fKDqyXLpQThNl59FVmAVFXPMQABRy7TFPFNcg8\r\n5KP/0IapKKy1Oj7/gEkLnQObf3Oo7xb6K9CsWFPDb6fjBBgq3GjT2ELDjk6QiK03\r\nT6ForDz+vnzuc5dYB5XVnIIDRptCOw8Y0J86paW2LHqZ9VLqr8kxakpjSL3pYA3k\r\n/+I9ljO30EQr6BnibUWu4790mH1oivkKQilMTOa21Z9A6XdB1EvQ438DAgMBAAEw\r\nDQYJKoZIhvcNAQELBQADggEBAAQViqtnfMKaHvaQfwPBn6aCNLCO9mtt8ZTpGqLb\r\nQVZgWcD8RaxO3Elu1IVYlIqOAMgsvonl7jkHw5q71xfLWSUvoRp6PpplvFuUfqp1\r\nLgncyBZD0Ano/k9UmzT4zhw6gYMGRu2yGsYBlB4jO00dU0U5B35LelaS580d1tXq\r\nRLD+frIP5e1XrAdhsHbBvkwt+IoPm/oDDVtlG+Sr2Pyx1xCqkspyCDxorvhNOo6u\r\njl6jC9cfPtEXkhTAptrKrumRpxPcX+LBJ6RNogGNPITndDLfqJRiFdTag9YXevp4\r\nJ08X7YNnbCciunhMT899ZMI9szrgTjFEVDAnfVvBSlFx0tU=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"twofactor_oath","categories":["security"],"userDocs":"https://github.com/ernolf/twofactor_oath/blob/main/README.md","adminDocs":"https://github.com/ernolf/twofactor_oath/blob/main/doc/admin-guide.md","developerDocs":"https://github.com/ernolf/twofactor_oath/blob/main/doc/development.md","issueTracker":"https://github.com/ernolf/twofactor_oath/issues","website":"https://github.com/ernolf/twofactor_oath#readme","created":"2026-06-30T11:14:09.059690Z","lastModified":"2026-09-26T02:34:00.199629Z","releases":[{"version":"0.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.4.3/twofactor_oath-0.4.3.tar.gz","created":"2026-09-26T02:34:00.189950Z","licenses":["agpl"],"lastModified":"2026-09-26T02:34:00.241668Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Cx0G2yc4EeqBOxMiPi9WgoLftSiZ7/swR+lG0jNDFzkUZqk5V9llChk32wLotmpdR0zOLlvpD+mxcGfQ6v34W0+PHGXMY1R3om1pXlvvkNLBz98l1YzmqX8EJR0O6wB83SCqsJHEjuBuOkzJvWcrLbdNs8zc/64N+Z7YndZ4wn5ckFzpB2zGO+OVNnykiVZuiDnOY23bHLuPpcr/nWegxx8g2xBMnaLK7Ya/kGJ4SLRPYyrwmwzDjHQVl8KrOE662Pf3b+pai6cvyfakHOZj8iyRBNDjhg5mlgC/Ncx/nNP9R1BKmJyGJCab1F8voxP9FJidoWyEhYwEGxnecWntgNcyU3hPl6potxgej5/w8Zeu/hxbqvfpf8HDXYELdtpMsnGE8itRopYXYTvKhThc3bMoIAzaQfQuUlj4LcA4dlZwgxxHv1si1HxTKD+6+YRNlXQZfpN+fPtknZOxgsVnkjFBKQ0akwYhmBLicBY3tYW5ycKRtERJ1xoM+WMaW5YjRNHZ/9Cvd+3EoC29q3g3dR53JnHkcgDfVP9QMuWBChJ+XzqLkQZpA0VKR7piZNMJsA2DUfaN2NwlALlBQhA/iG2UcvTN6QuoGO1uYGx0lkDsy8TiETwOgjbW2L7ltDLZYYy2r2TR7YsuJcQySHMyuik3KF/3W+vH99OpXPSsXS0=","translations":{"en":{"changelog":"### Fixed\n\n- Import the @nextcloud/vue components directly (#100)\n- Restore the Doctrine docblock suppressions for the pinned OCP (#102)\n\n[0.4.3]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.4.3"}},"signatureDigest":"sha512"},{"version":"0.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.4.2/twofactor_oath-0.4.2.tar.gz","created":"2026-09-11T00:38:55.027431Z","licenses":["agpl"],"lastModified":"2026-09-11T00:38:55.090323Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"nnplEv+MGyGkBTUaVVsOng6xviJNzg0PuVD/O99ipaCIwGWLBtFCFrO5loeWbGdzL3Bh/H+VTXacAeMLe8hJeWOkoeT6MCFs7KPmIT0sSuZsGZfxdsT2TedT0pD7ihHDvfrjtJHgc+6yRWWky3QrzfTcBJWdFNgSlQ533rhZUvi4V5488cHAnRYUpIbhgf49VYGM6lp0UlPexjlvgYOYDV8ceRn2R7pm/65yqdQ/AEkTaJvPQXUA0Nbfi5HAdwDSFPyd0GfKb5q1/iLdw9Ipmcts1gx6ZWt2vWIjyqzbCbAiWACPXwhhwIbGov0UDNDEv8nGrhH2kQKcm2JMxbTrtMg8mrVsSAi2YuUJemMl8ukskofE+0DurfWPHQHmKUVOz+DhsZy7SknmztBA+uAdCZQksX8vqowbdD2lweOnRFTgAyRccXfdbQ+EDPaoEtzU4Txyq6Pi7a9tNsveMCoXeFE5YV6nim5ya6Xpm1/lNgjW7s0QfwJL1+cFOxT9hYAZswz5OcSqFoCIQNir5WWIhG70vHRl7/qylOVpZfJxhn+8vNBD+e+iVzgo/745Qu3gaGfH48DAQ85Oa1GR33Oq47ybnqR4o+9ieG9UgfCU7Et+7ZWFWcrBTBcPdL7ktZcpq6X9GOZU7R6FrnSe7P+jDz8q1Ju+zFJDV2U6xSKrDNU=","translations":{"en":{"changelog":"### Added translations (transifex)\n\n- Slovak (Slovakia) (sk_SK)\n\n### Fixed\n\n- Delete the OATH secret when a user is deleted (#96)\n\n[0.4.2]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.4.2"}},"signatureDigest":"sha512"},{"version":"0.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.4.1/twofactor_oath-0.4.1.tar.gz","created":"2026-08-20T23:50:30.950819Z","licenses":["agpl"],"lastModified":"2026-08-20T23:50:31.020041Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"qug881vF6ASpPe+v+lzWwZ1ZLwjjcclkaWtWC5asj+bHvR/ZbICsuy+nnPoXwKYkYPqiAxl2G6+BU171XqEpbFKwUG1NhAjmLsHp0sr91HHaBGd92iFgwFp++wkS5xDiePDAZKOacH6R3mC/gm2J3Dr4jVcUc88t4u1Z+gtuTlujCR5vKaPggUC1dsXzREi1rZgc0ChDQE/gkJt5W3hoGi/9kBLEH3SuBYdU4NucB8AlX2MDGiYSG12rxXooqFcNZ8/j3txRh8+UihZyGJfxj17/G2D8I+XVWLgFUgEsYUM4o5s9yqVillOqgwcMqg7etX4yXaCaCE15dC4tWc74eL8Uy+YxdCO/Wxk0VE/4D6IIJxRHc5iZdAQkSlwubxE6RCN7YF2Z/qZCh/DxsluLAG/eaMrciabuXiUnXKRl2KfNDMS0X1Iwjl/uSHrKMysBn/9IKc0ZPkcN8THxIy7IyzMxGeXQuUS0JBzCtLyHFBxAnVsmTk66jF2kp0+AGrNJZPCdglD4nA1NcTFrGgiHQKyX9MM0cEYs5wGYkaaOAwSm3IlvAxbW+abjkslcZBEStWQBQc1UDgqucRuSv9AWOxTOsUwoR/HQe1R77ouNAP1n6pVf/O5aPMnB8GRtQ3GV+Y9FFdzWDuvb/zRcT6Knp915Q2aepowzYphD379Fbs0=","translations":{"en":{"changelog":"### Added translations (transifex)\n\n- Turkish (tr) 100%\n\n[0.4.1]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.4.1"}},"signatureDigest":"sha512"},{"version":"0.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.4.0/twofactor_oath-0.4.0.tar.gz","created":"2026-07-27T14:25:25.664654Z","licenses":["agpl"],"lastModified":"2026-07-27T14:25:25.713438Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"KBbyq3JVCHSk/k5P+c0/OHVUntfyuwxVzC/e3ls0lwsEhgqxZhOEbt/3P0sdUHxeuukLiDicpB5fKDOjzNrmF28dGeb5RK2XYv4Ivcc3wA72akpqdv3nCg0dYnEB4igWVM+w0qt7Bim/zRBLUJOQb2NrCL6zNuXZCgeKxjRyvlMYnBVpzJ5aqAglLfjmw7sQT1i5ay3ixE77GllF9Ok1OM3YdhYpXTzA7n56vNrCVOlsQpWL2mIi9/ex/Hvpe1KMygLGL5tkXfJ6Lb9PF2acgh9bX+zrCGO0ii7W+u2h7t0eLSl0QHG6RHoOZEY6mH1l9Psf/d+MMi6lDfsvOWMy4cEUl4plbGmt7+LDm43+yBQFQFN3DYjNWCc94yo0B/EtPMN58bLhGNjo5ZdoFjSQol3ehIbxLUzM7mwaOq0l3uYE/cGNWLdylYD6cqdMKv7cixDce0HiNqcx0fOAWLBt0Q9gNwMqBuh8yBwTAcVC9rao5xizf1Kd6ZfhHLY+e6s+GKJlo2w8jbKriSdgZ5XCmaYk+uTbeUH03kxJ22oLgVlJ8Hx6Rt+JoUoW+x62J1+wDUfwB2aCL8J6OJl/57GiPI75eMAgXaCypianvH7hRvF/ZKKktT4QMhgTJbu0NVqttXTo3oLl4N1fQWtQEitOb8Bu0T1Vrn9DSW22nYct3Pw=","translations":{"en":{"changelog":"### Added translations (transifex)\n\n- French (fr) 100%\n\n### Fixed\n\n- Strip scheme and port from provisioning label host\n\n[0.4.0]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.4.0"}},"signatureDigest":"sha512"},{"version":"0.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.3.2/twofactor_oath-0.3.2.tar.gz","created":"2026-07-22T11:14:37.134112Z","licenses":["agpl"],"lastModified":"2026-07-22T11:14:37.197789Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Bv7+2iz9iXVMGe7JG0sJSiaROC5f7BSPMNruJmki1cobU6xffTC8qutm7jcg/vAhIdcJHt4ZrwpGLfvhjJi6pFgwMrfRrKmq5nVdx+/XUedttXBoPGGQIcVULxO/t7bTYAZUsSMCoXzjqeDYcsr/Rwzz0mLaRURBJZt0lD1drVP1PmIV6AA77clRnzi+HZKWXm3zLIhKQL8kj53GKefWsuWfPDaa5LWG+K+/EX9AMS5eGd+i25d2BWSB0JDYUJV41wbEf1tov7Bwo+Aj8lv6MSIaVU0Ofzxu4RZLGpM9Nn6TW9C3UGS3RKaDyLx+Et4beA9vqW74ifKugWwJRU/OewBfefzG6j8pKLYawTL4GZ6OxUp83CXo1WW4gbShfgzBJy1g7HQBlrR34n1peja06bRbjyggpC3yAlj/6THeO/+sZI1jPur98dL3LsCKSBZZNXyhQGPl7+d94F1XTMgOX6vitT7k5T4OSN+hUAM+ZXUREaOqBCOhbp782g3mJ4nWCLCCZjjPJGpjJz8vVqb0BfBCV+nJbddYVso5Bh2KxJD8R5CJ/HShwDgjDryqR6d2ntkFPJyNbi+HObaBJ1w0bejmKaoKCgvL31UHGdLsICxTkwQVDhbMJnceH2g9hTBHytEBWnqWpDtt9CXo859DRlpcev5o+rCCwHFYN3Zq3SU=","translations":{"en":{"changelog":"### Added translations (transifex)\n\n- Swedish (sv) 100%\n\n[0.3.2]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.3.2"}},"signatureDigest":"sha512"},{"version":"0.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.3.1/twofactor_oath-0.3.1.tar.gz","created":"2026-07-21T19:21:02.039752Z","licenses":["agpl"],"lastModified":"2026-07-21T19:21:02.104983Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"mKM8o2UARBiBO/CtLWzlK5jf6FLMQP7iJks8QOgvPDXp4njHkWFqwdO5o8jakKPU+6YB8LpCkY9lVcl6luBEoeTYFAII+jZnQ7VjJjkp4QTq9g3a/Mq9YJ0THnCYF2doqmJ0vH3ifDm7X2PcucNbPAwrGr4k+kUG/lLbTF0M3iw3piN+yN/FwlNPDIxV3Mi67QDzhQWmBiX9bOjaPmn/56v79MqYamRovjBpBmqDBFarKbYUiQarrynNvRDR9qH2IZqtVlTUWOwIKwIs1nNjy/2ShBMxzyx7CvDWdzHrcHBZ77QmxdWf57/WolRtcmZIWPEDeiJCHWnQSiBVam6gB/SemLZs3EZ69mTZE8cxHRFjjbHYoN5/z+Wt1T84IuhbyjTwg07muYjh3WVTTKE4W31z1ekzfkTlQphOhXp5c4Z1brwSnmndW3E4XMujTjfSme1NWjGkDrjQRSEpjUCrodYSERgdoLrQxUUKXaWpGfekAL9vESKhsOd6bVddutYFPY+7glmKsR0LxW7Ci438yCyt1fvV8xEFoVjYIlmm0kCTp/B9urfZK6k0pOjikasggYQNQkptGChghOSd5FoTMCqbcV3wQaORKy4/iGYUwAU/JXS21dV6q1N+0JHMJdNguOxyz4f/+eUArkLnfOSsKWCaeysT0uJl6T+8muWH/DE=","translations":{"en":{"changelog":"### Added translations (transifex)\n\n- English (United Kingdom) (en_GB) 100%\n- German (de) 100%\n- German (Germany) (de_DE) 100%\n- Portuguese (Brasil) (pt_PT) 100%\n- Chinese (Hong Kong) (zh_HK) 100%\n- Greek (el) 100%\n- Irish (ga) 100%\n- Swedish (sv) 100%\n- Estonian (Estonia) (et_EE) 65%\n\n[0.3.1]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.3.1"}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.3.0/twofactor_oath-0.3.0.tar.gz","created":"2026-07-17T00:21:54.972492Z","licenses":["agpl"],"lastModified":"2026-07-17T00:21:55.029229Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"CfUM7GQvVQ9NslF49c89Z1omRmdlcM87pVVmUL/I5xmmP67GczKFoLEmKCD/K6TyMf7TTQLad1do6tPrduLPZNhMHvIxfQScqPtNonHtEq+3VyypeTglQ0px1GlC7/UgGodsHLRYwV+LHKaJfP/dKscNRxyNcwggBpKC+nWYwT7t8pWmVuwSOhE0umi63tQ9s025y1QgHo36uq7ISr732JxwnyzcFJ2hLv37v9aQyiZnGWFV49oUwZuWU7KgqdYVAg3cjt8Zk18Adgj3/T/TLQO3nJrPqvKmz5NvMypUdsLGjWgMl3nABx5XIbhUTJDS86llc5SOa2PUovrxjX2kd5OeQ8eSOMJwqSh9yrU6xgL3tThFnGUFV2GlzsIRPuvPn3t0FuJY+nB1p7CyX/SriuP3iKqQ8mOsuLfac15bOA9TGGYF3pye3d9zFg2aTOb6wJ9Yq5FFBCoH+8arMJiDAf28X2bQyak4Y1Pg0vgZ370VHhQr611bYTbJ9/s9F2SIvy/eSNaNkB5fPyzhgnZxTMkEWHnof1RacwL8tP+SIHbEa2Y2smJip/cWdfRaLOnigIEeunIk+rrDpyCCiRslmnOQ3eFCgqwD+UaB/z/5igCRgD+wrkLs82TRpclGH6FBH1qtz3oP3xSCHhQlmYkPboIy5FnEu+gzY0+fxb/Pfh0=","translations":{"en":{"changelog":"### Added\n\n- Derive a readable provisioning label for opaque user IDs\n- Let users edit the authenticator account label\n\n### Changed\n\n- Build system switched from webpack to Vite; building from source now requires Node 24 and npm 11\n\n[0.3.0]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.3.0"}},"signatureDigest":"sha512"},{"version":"0.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.2.1/twofactor_oath-0.2.1.tar.gz","created":"2026-07-13T12:31:48.686050Z","licenses":["agpl"],"lastModified":"2026-07-13T12:31:48.754066Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"MtzYVS0NeSHJHwEY08dQTYwqdBM2rj+X2Usepej+wXmQ+3W9DT2VpSKxxTKIR+sqzAaDWoNSYGstD2Z2qlIMs2YdCl+5VWyLbgJCETphl6ewFkh3hfXfnPRyVjbZTz4E3xcG9XeZ9vD4gjqUnIAamGxcMktWo6NM4cL6X1Oa7Is49FhrvFLbgewmkVxQgXYqWDhytuErlHNdpBZMkZSD4rW9EAlOIv0PMrOWLT5MCHZo3GrPxUTAoRpkQEA8mxZWSg8NitQJnav72npN/u/+YXTbi30sycwMgQynx+OfywCpHqlGq6tGEFOwP4XDlymtT3xOvW6sFSBK4HlAAK8NNz9DfJSm1eeg+qK097r5S1khpZBMHS+Dbh1y6hMzrJW1jiLu/uUz4xCXxlwa1umHOc/z1TaJnFiZSWhMtyu9qEJJ1X/JmfCzcnMNtOTau8ylpwnYBYos7FQkyRbImvilR4Ch4AgbVwXCJT6c4XviN3IEUFUtTiViBqjV4vxABKkU1Wwvruq6z3zORHFxeP27OqGwOoYpIScDGewU1JpcF1yfUV7cJ3iMgPJlTfrpHSljrIBXUf7qIT1AGQTcrw2WUupIuqJ4MGxfrCrcRznwMFGwpG70A2OfUjlpA9MeBWgMz8dotF+Kqwr+gmA7gISdwKU3DSjFioVQ+1y7HRtM3bg=","translations":{"en":{"changelog":"### Fixed\n\n- Prevent the app from being limited to groups\n\n### Added\n\n- German and Brazilian Portuguese translations\n\n[0.2.1]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.2.1"}},"signatureDigest":"sha512"},{"version":"0.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ernolf/twofactor_oath/releases/download/v0.2.0/twofactor_oath-0.2.0.tar.gz","created":"2026-07-07T08:39:45.138074Z","licenses":["agpl"],"lastModified":"2026-07-07T08:39:45.187310Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Vi6a/etdc0ABcy4Bu2u0sdJ9bPx3PlDqMRfRySeqIsysKBtdjKwdunl0txLaGmxkFdvio8raD2rP54CPYMg6BxMHWyXdDRpY8mDKJKwXnE2Yu3S/hWdKMp4G+AH/MW+N7yVk2GLLQy6VUB6g8SeUayWcKIUbKhsniJWxBOl6zeuJUZH8LXY5hvQZiH0jv4X2BRlJ27LXlf/mIDoLneFE2VG8Zq/nm6Wvz1YWjnR++lnffb7hOjQ9Dd87M4dCQg6cbUulXzHqYpq37kFAWLxLJrmnVWR+0kJmo11bd/imNTtFSRSQ7o5Xelcr/SkaaDlsAFJn+FWrVik/qA4nqNk1ouOL6W2g3PzUNT/I1KzDauUsgTxoeWm4E1qNiUb5MCWN7SwjIS/ClV0j6t1ObFuUM1ePBO4PykicdOwEBVBHks8L7+J9U68QaGoYzwNI1qwye8ClbG2xER2gpn6epxEPGekjfUmTY0uweMrLSazgARhPOHOynDIoV9DKhHnyoisMuUfftiAEqBXBWHcwAMdN4ffk7BqF1XL1wOB8GON6hTTc1YNISlcT0aldiIcnQC7D3FGRdlEjsYkmCWXUUqeCKM6BskF3VnDjQNN8Iu7SwfQZ7IMYIFL3Oof6upOHYN7bDaD/+rh5SKCBE6j4NKbmKgN9oL7cvoa/AsvYY8pW0/U=","translations":{"en":{"changelog":"### Fixed\n\n- Include pending tokens in the CSV secret export\n- Adapt source strings from translation review\n\n[0.2.0]: https://github.com/ernolf/twofactor_oath/releases/tag/v0.2.0"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vybm9sZi90d29mYWN0b3Jfb2F0aC9tYWluL2RvYy9zY3JlZW5zaG90cy8yZmEtY2hvb3Nlci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vybm9sZi90d29mYWN0b3Jfb2F0aC9tYWluL2RvYy9zY3JlZW5zaG90cy9wZXJzb25hbC1zZXR1cC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vybm9sZi90d29mYWN0b3Jfb2F0aC9tYWluL2RvYy9zY3JlZW5zaG90cy9wZXJzb25hbC1hZHZhbmNlZC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Vybm9sZi90d29mYWN0b3Jfb2F0aC9tYWluL2RvYy9zY3JlZW5zaG90cy9hZG1pbi1wcm92aXNpb25pbmcucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Two-factor OATH (advanced)","summary":"Advanced OATH two-factor provider: TOTP, HOTP and OCRA","description":"Configurable OATH two-factor authentication for Nextcloud, covering all three OATH algorithms in one provider.\n\n- **TOTP** (RFC 6238), **HOTP** (RFC 4226) and **OCRA** challenge-response (RFC 6287), selectable per token\n- Per-token hash algorithm (SHA-1 to SHA-512), digits (4 to 10), TOTP period or HOTP counter, and OCRA suite\n- Custom or random secrets, with clear strength presets (128 to 640 bit) and secrets encrypted at rest\n- A **Strict RFC** switch for safe, interoperable defaults, without losing the freedom to deviate\n- Admin-managed enrollment for whole groups, with **bulk provisioning** (sorting, filtering, live validation), CSV export and paste import\n- One-click **import from the bundled twofactor_totp**, so existing users switch over without being locked out\n- Issuer icon embedded in the QR code, HOTP resynchronisation, and a software OCRA token for testing\n\nBuilt for hardware OATH tokens and elevated requirements, alongside the simple, bundled twofactor_totp app. OATH (one-time passwords) is not the same as FIDO2/WebAuthn. See documentation for when to use which."}},"isFeatured":false,"authors":[{"name":"[ernolf] Raphael Gradenwitz","mail":"raphael.gradenwitz@googlemail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIECTCCAvECAhOGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwNjMwMDc1NzE1WhcNMzYxMDA1MDc1NzE1WjAZMRcwFQYD\r\nVQQDDA50d29mYWN0b3Jfb2F0aDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\r\nggIBAMNjnhE4BNM9O9ypH8zSULyWgaYdmY+zCNTsBk0VH60aBefMVccK6qhsypmn\r\nOJxOP4NQ6Sjpa9Qw634ACP7bRHrdvaEVoMMRNJp4DRtKE388LT21xGfjlJUMkfqV\r\nv5F+z0YdbL6VcHW+3Vzzj0M0JWvMfxuDM9U8hi9b3nSJNIQoHJ9pqIeJtx/VPQkU\r\noacF6LPZNqX+87fzVPTwcnaEG1c+M4UrVu2eoXFLD5aw9NT29Ktr+1F8/D8xRFFj\r\n3JMEV0eR0vngcFSvFjuHA6esdaHieOM+AGGBvJH7GxF3B0rwdw82vJg3vrdNQ3jH\r\nRX6YHggTdKPFdwBvFEkAfbeLhsGPUywe10ZBcyRVnvtX6GHtpublScxG3/9r/gTJ\r\nUgqkDBHQyDwNp31S7I8bCRiD0D3pbKw13FXoiHf4+6CEoePwMd9K7nT9ESW2aoup\r\nA5bxaKsep/+q2SNSpjaL3Em3bVEQnzxAm24CYow0mPGhgOs+gYOtMoC6lhYx3ot3\r\n6sxYhwOE1Xu0CFN1kGrpi/Y2T6x21+En1btTGobPNrx144hlVv4FBgc1KwfSW+TT\r\nTmqarUry1V669sG+sHC9Hsz1O6RxPg6Y/nmK8IKDMfMTKOW5jcxgKgZNiPtLqCdD\r\nkHXpHYDfghWaUloEnzJ7TG8pq1xX3rRLPSyZZTGX3SD6ywmbAgMBAAEwDQYJKoZI\r\nhvcNAQELBQADggEBADjEVRPUPxVx5gdLqROwKVtRjJDWSnVCPCEtQ721GnMRGtto\r\nRzWB9YstIWhMdx+IYFCRW4vUPf8is9+Kdx5Uvl1qIXKL3I0mx53W8Kcq8YLNTy6P\r\nUPOF7aMiz1wJvAENyzyNV4bcQV0feaXFxE+gs2+nsAQOdzdyubSeSjiEiOE+vFNl\r\nFHDXA7Ddi0SClcDDdv3NFAXxiSxgZStzmnN38D0QLtQmv0mLhV/S83+ACHHVMHMS\r\nuNemoQm1pYE4+RRChR3GtEnevZFA6h0FIz0baARelv9Q74ZDrGVA/6ynSfwCvQge\r\nFNHWIpwNXDo2++yocTWHUYkd7oYlJsoBMGqlk5k=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fintrack","categories":["office","organization","tools"],"userDocs":"https://github.com/cloudsliberty/fintrack/blob/main/README.md","adminDocs":"https://github.com/cloudsliberty/fintrack/blob/main/docs/MANUAL.md","developerDocs":"","issueTracker":"https://github.com/cloudsliberty/fintrack/issues","website":"https://github.com/cloudsliberty/fintrack","created":"2026-07-07T12:18:52.966855Z","lastModified":"2026-10-22T06:30:42.492623Z","releases":[{"version":"1.22.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cloudsliberty/fintrack/releases/download/v1.22.3/fintrack.v1.22.3.tar.gz","created":"2026-10-11T13:50:07.071120Z","licenses":["agpl"],"lastModified":"2026-10-11T13:50:07.115420Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"3yjGuOg/NSY0jnFjeAM7p7pZwhD+P/h86B6x4ixldw93aZGYFY/SDa4MHDVNKO+B\nRBYcIWyprBw/UAKCO9Olou3ighdBpeAGPr/R3BbbZXFbiKVZLy+m8neh/C/qIQE8\ngG8/Aw0yPQOxoxUivDfcE8Q9I8VyMPrScPpL4oq4rQiygbyAbI2hGqTrNzrSPBqX\n2VT0cmegG1UqCcEqjRiqv1yPa51T1DsJSjWn3j2POHfEeHevmfe+oH4wWqw9nfAS\nQdFjyq/nd4nhjLvYb6XrpLUnBFLgwmL3ERxzaVj4OhNnRafz5wEC43qqhRvpLYbr\nZP3wwX/ACkLX0laNTI7wraknbKfb8BpI9h7ApP1/VY6PTJA8YRCwqok5ei1ZXdHr\nDcJLhpvER+s8QGQeMN4aTk+DEs3+ZPME9CG5B71GRJsNIRYbJ42aIUPEj+i0O1Dg\n5epRBuNT1Fv9p7tGqNOGzPDI5R5glVxaWYxmTgZHZtzK7FNn/AvUznzWwDerynOq\naDjb1JznjJcllo0UiT+H0GOe1nNu/rUE22WBr5TxFDKQyn0Hs7fEIa+9VlItdMfr\nBBeyVuJSJ/oRH7bUqQ7AhQAmR/9rgf2q9Xqp/eL2npYB+RzBq0AsBFjrpiuXMlF2\nTJ+XZ4mipE7dZuX5vAz4CV5vNRpzZMRxohLwpjyjiVE=","translations":{"en":{"changelog":"### Fixed\n- **Income/expense in base currency.** `transactionAmountInBase()` (used by `getAccountIncomeInBase/ExpenseInBase`, reports, category breakdown) takes the currency from the transaction's account and uses the stored snapshot rate only when the row's currency matches it; mislabelled rows fall back to the live rate. Balances, income and expense now agree.\n- **Data repair (migration 1016).** Transactions whose currency differs from their account's (old CSV imports) get the account's currency and a NULL conversion rate. Amounts and all other rows are untouched; idempotent; failures are logged and skipped, never blocking the upgrade.\n- **Base-currency account value.** `getAccountBalanceInBase()` now computes the native account balance and converts it once into the base currency (was summing per-transaction conversions using each row's own currency/rate, which mixed currencies).\n- **Base currency is always rate 1.** `getRate()` ignores a stale stored rate on the configured base currency (left over after changing base currency).\n- **10-year report chart.** `getReportMonths()` keeps the final boundary month (cap 121, not 120); the trend chart shrinks column gaps and shows fewer labels on long ranges, and month columns get `min-width: 0` so bars stay visible.\n### Added\n- **Automatic pre-update backup.** Before any database migration runs during an app update, each user's FinTrack data is saved to `/fintrack/backup/fintrack-pre-update-from-<old version>-<time>.json` in their Files. It is the normal backup format (`backupFormat` 2, secrets sealed with ICrypto), so **Settings → Restore Backup can load it directly**. Works on the old schema (`TransactionService::findAllForBackup()` no longer needs `deleted_at` in SQL), all-or-nothing per user, skipped on fresh installs and for users without data, and never blocks the update."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nsb3Vkc2xpYmVydHkvZmludHJhY2svcmVmcy9oZWFkcy9tYWluL3NjcmVlbnNob3RzL2Rhc2hib2FyZC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/cloudsliberty/fintrack/refs/heads/main/screenshots/fintrack_thumbnail.jpg"}],"videos":[],"translations":{"en":{"name":"FinTrack","summary":"Personal Finance Manager","description":"FinTrack is a full-featured personal finance tracking application integrated into Nextcloud.\n**Features:**\n- Asset, Expense, Revenue and Liability accounts\n- Multi-currency support with online live conversion rates\n- Income and expense transaction tracking\n- Inter-account transfers with automatic currency conversion\n- Recurring transactions posted automatically in the background\n- Budget management with progress tracking\n- Categories and tags for transactions\n- Financial reports and analytics\n- External URL for remote transaction entry\n- CSV/JSON import and export, with automatic duplicate detection and rule-based auto-categorization on CSV import\n- Dashboard preview of upcoming recurring transactions due\n- Full backup & restore options\n- An optional PIN lock with session timeout and lockout, layered on top of your Nextcloud login\n- All data stored securely in your Nextcloud database\n- Clients:\n  - Installable Progressive Web App (PWA) for desktop and mobile devices\n  - Android app currently available in beta testing\n  - Responsive web interface optimized for all screen sizes\n- Support development via PayPal or Ko-fi (see Settings → About FinTrack)\n\n**What's new:**\n- Foreign-currency transactions stay correct when you change your base currency\n- Budget alerts: a Nextcloud notification at 80% and 100% of a budget; quarterly and foreign-currency budgets now count correctly\n- A notice explains what changes (and how to fix old exchange rates via CSV) when you change your base currency\n- Full changelog shown once after each update, and in Settings → About\n- Report an Issue asks for confirmation and reminds you to attach logs\n- Weekly automatic backups to your Files (you choose how many to keep), plus a backup before every update\n- CSV export and import carry the currency and exchange-rate columns; simpler mobile app sign-in; base-currency guidance\n- Compatible with Nextcloud 32 to 34"}},"isFeatured":false,"authors":[{"name":"Abdul Jaleel Adenpulan","mail":"clouds.liberty@gmail.com","homepage":"https://github.com/cloudsliberty/fintrack"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhOOMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzA3MTA1NzE3WhcNMzYxMDEyMTA1NzE3WjATMREwDwYD\nVQQDDAhmaW50cmFjazCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOm2\nzk5LcAvB3gIVCsAYm7/61Hr0W/Ek0LUsD2namI/WzAT296cPb5BExJCdNJ5AlMeF\n521czFr63TNZejFKu7F+oTXdZWz3X+oXJWOEO0eh2MWD2/gU4XgEfagbaKNi6rft\n1lcbi3nCXpPddqIAW15NLL01IeSZr/IZ8qW+eEXK5gGB2/UDKHOLqLr+Bhhypnf0\nbt1J9yq5idRRGoyJLG+1cIsNWKkzMAqmGaUA/eCH3yRR43NpAH+eSobA50AMAyzl\n+OQvxRYPN40bOHgG/j5w0/AxywAc8KI9NiFbixz0BAiRrDSbkQGtDstQsOh2STBD\nZqtMBVAhatCGmlzDs8HL08KQtcHT4U5L/B6yDfwT9/5PiXjc4j4sbKQq3C/2DeWd\nYcbAaCT45RkjkBKmmfdhhjA6m8TtQ3o1KEmTdIfoo8Kq+pgiyVjnq0gw8029Hbja\numvWKsOyhehWeoGRZKOf7iJTpu6gj3KbfHTDW5ie1WzeRV7RKPDz1GtkG4cyFQkz\nUKnGfDmO5O/SgC552AcCoHkZMDI86MIXePuDmME5QU8qF//tJj9MK5WAcss90dAM\n93nvZ641PpWEbAyI/ARp7yznq/Tdsur4P24IOPa6EroD517i+S57QEzEXNVfVt7j\nwKMSpdC/hZUeAfuZp/K6aMYYviuyOgIfbKqRiRRRAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEoCSc1gV3EoOBl4cEfQ3x/J2eP+0g4jtSesgQ7CJPvfBUiHkuHGaqet\nCghR+nrpXRY//B6fzErgxMNnoOj/QSVCa4ZTSGplp0iJc4RLHcPtHusm81ireFq4\nRXdzLXI4yo5sdRLuQPuyTy4im7mY+7U27XgFnAFKub3i/A7xF4GVgQ0HkpWEmNH1\n0rqx1xWrMYKT22IDg+HGOVGUuCCH7hH04A7J9H2YC72/ZkhBsuPwgwh5ZbvfqA4U\nDaXTQp6wkmoiW4L19FuUU3sfMYsXpxvxu7m24TmbrTE+n5OW5soZrUUP7xVtK6//\ns0dkw1JlmhwWybo5ujS1bti6r/0kb8w=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"arbeitszeitcheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues","website":"http://nextcloud.software-by-design.de","created":"2026-03-10T22:09:04.280040Z","lastModified":"2026-10-20T13:42:15.432992Z","releases":[{"version":"1.9.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.9.7/arbeitszeitcheck-1.9.7.tar.gz","created":"2026-10-20T13:42:15.418112Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T13:42:15.548805Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"qw9HIbDsIqG2kf15ghKiDJX8CPqSmk76SIVyJFKjwH9mKP209w4ESEDsAutO3ONPA+NXH2FIoE4muW5VFcdMu59f7wevQ/Z45gSm4MCvVMjEH9X7R8dcjQ7q+q9DSBGJB/oQi1UAu8h5tZQUhW38M2q+zNejcdKUhe0FolcGJpaNKGoI/bfwkUDVHsYBEYj2+6515PePCs0ofXVV4J5emR1kaEQtOr9nO2zeQYgu1aN0kwioGLQBEjb+esplX88RjzzQd9XUjnay4CI9IdTC+lsWsfTD2dwcdKsvswFvI9SVZ8kk4RApB7kwkcLg6GUKZp7Z+82fgL+zsDBCgzTxX/8hClQ1kLcvKQkr34vrYB2Wjn/rg7n9erIZaC2PGtWYDmxwpMJj1lftbtNmKSQS4u5JkI4T1HdcejKZtpzO/oJH2KFk/PuHh0KW2zrzo33hhuieLfp9S3FvDWRMW9grtwGoDFb1dHe1RwrX7ZGDnYWfWXnuJXb98x+J2buIrODm5ZzRw/ifOHVm/bc60iVeZeQLzdd0t/4J7ZpyR8sgBGnDKT6A4aPJRdO8J2C5xuw5BVqJgiw78r2KQemw8y/6jOxEXn29GI6YwcYax8Vqgcgua3aq3DETN8VzXu8WMQBsjBuSG3xqGV4M5zqwOWcOOSdjWVCLVZ93bQngZXTo0Ns=","translations":{"en":{"changelog":"### Fixed\n\n- **False integrity-check warning on CHANGELOG.md (GH #47):** the 1.9.6 release package was signed while the changelog file was unreadable to the signing process, so some servers reported \"Ergebnis der Code-Integritätsprüfung hat sich geändert / INVALID_HASH: CHANGELOG.md\". The file content itself was always intact; this release ships a correctly generated signature. No functional changes."}},"signatureDigest":"sha512"},{"version":"1.9.6","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.9.6/arbeitszeitcheck-1.9.6.tar.gz","created":"2026-10-20T10:08:31.367581Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T10:08:31.475598Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"2C/syaVoBckQuzitjjaXnfyON/COLk1xTsgDvZYDOxS7qWV79HNkAAZDZe3KEjGDErICXgW6iTBQgNXLTZk5pwGQqeMd0ERt+aPGrxX9XbVTnLeeof5dn9mDS1H3ag8a0T78ybtyN56naDH1Z9e6hPN8+YfcgAypee27Lhfk0BP8pfTLEhlzxezlW/yLzbGK3OEaAS9OA8/8pxhLyJfxC37pMWkqya11rKVmWhsbNQo2r/bovnxdzGRb0yo0Ly1gQ1qhj7pKrT/T8X69qvEJMJ2WqsKYvYb0frv98lX4KrmHf0RQ2G7Jm97WDl1x5If/+6Rf+DqzaghA1SZUFEKq4cH6LahfLzE311lnKmaq7ELKWkQTfXZ0Gg/boD5/rFYiAtPJflmLVYipY/6fzXBBBEem3gWSDH+I5lcLL5XkxnNaxyyoJlYvV6ybjdC12JNhxX2+ilVh3/4zIERtXjGy5wjhPwln8lJVzvoQlIHzlmXrNJyH+nz/RwtHCSq0tdVNRreJs73z2/PmV5gFEtLi6Dt7CuxXm6FVQNc8T+TXBSdORgrgJtyrYvdLgIYuU1Bs4zvGukVguOFsX6O0434L47C85L2xie8HlyVL2+l6AcTIPA8SDOtpeWCCmX23s3ZZ6botfc5drZFzQZ5wom4Kre5x6T5nNwUEh25R0CopGFw=","translations":{"en":{"changelog":"### Fixed\n\n- **Group restriction changes made outside the app were ignored (GH #46):** the app kept its own snapshot of the allowed-group list and preferred it over Nextcloud's app restriction. Groups added later via the Apps page (\"Limit to groups\") or `occ app:enable -g` never took effect — Administration → Mitarbeitende stayed limited to the originally saved group. The Nextcloud restriction is now the single source of truth: group changes apply immediately no matter where they are made, and clearing the restriction externally still fails closed (only admins and explicitly allowed users keep access)."}},"signatureDigest":"sha512"},{"version":"1.9.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.9.5/arbeitszeitcheck-1.9.5.tar.gz","created":"2026-10-20T07:32:21.669585Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-20T07:32:21.768803Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"I2kWspAS1W2LQ2elHSCS4oz/XGiWRPNdxFVPAYFy7cXDtId2o/AyigWR1Fl6SkyhxcsHc0HYTOV7w1eJsI7Jf+fmmGuqktlAvzICbGcXQnAXuRzFlenZ6m4X1f7FK/fKFb8q2DBaOgBB5GE0n5AQ5UQp2QN3lQOZIrXNnvJ79YAL6XHfphjIGgjEKGp+jBeznBKypSCJUXst8/VB+Xjnkz1gGFOjuaw83Nwb77J8773/JAID6HL5NspWm/yyb6oZ25AthOGl5/mrjTYmjh3jC7RvaxVPNnNo+ZC/C2TVgTIKUzgu/uW0Lngj2ZCBkAwDJVIemoT1vqbpDP5CnGsXx2LXH2icaLcKdDtQCNWOkc3Qd2Cd5Ae/c9TDLzXvI2Blx2LK5e3HIHSOPmXW8xj5RqRMo50NMxI89LktBm+pFt4uqBveP+u8YVZV5eaYp3l2tJauV2aIyMWnI/QvScaxHLRLVUwVl+DJ/yJl++tpn594cF5mgjK+0mKDEfKKrqGYXQnwtSErq80xr0qS7JQHVhU8xW/9gLhxVjA0gr0FKHX1umqxI66ZIGK7d7/ftEB/bUBTSVnVQrPUO7bhQXrw2WWlb4GjYJEdZKaBgfsJGEkX1nPcz3W/mhPOB/qhRR3m9VZtvJCHm+qYQodQh6g4t6h5BHk4uSzpkMKrFLd+9Ug=","translations":{"en":{"changelog":"### Fixed\n\n- **Update to 1.9.4 stalls in maintenance mode (GH #45):** the `SeedWorkLocationCatalog` repair step referenced `Constants::SETTING_WORK_LOCATION_DEFAULT`, a constant that only exists in 1.9.4. During the in-request app update the previously installed `Constants` class is still loaded, so the reference threw `Error: Undefined constant` and aborted the upgrade mid-flight. The legacy setting key is now inlined in the repair step, and all `Constants` references are removed from `lib/Repair` and `lib/Migration` (`Version1018`, `Version1030`, `Version1046` had the same latent pattern). A new `UpgradePathConstantsSafetyTest` keeps upgrade-path code free of shared-constant references."}},"signatureDigest":"sha512"},{"version":"1.9.4","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.9.4/arbeitszeitcheck-1.9.4.tar.gz","created":"2026-10-19T09:45:14.532569Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T09:45:17.186894Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"mSjkRWBbh6yq9WxSAHOTs01C/JTjjfDRfUypi5W0L+YD4PBUikfMwuDzJ5m6wSfWjlmOoad6JvYhkPqZH4G/VGKtohiLDdG8lfvyLR3YTLug2q/4hrZbNaGQU2oPnrPxkSanaA7qxuN3ElhgCltvnb+YL/Sa2LO5d72KXp2J+xmq5P9rycFfsraGTGoqlnfrSkwDI9Ybzfbr7e/SdfDMCmo035saqSCNaZJw7b6TSfg00eIfCoBXYAWdKI2PnxQ+2qFa8nyzjZ1I6qkSg4X/15oeuFH6O+afvK+TiABn0yz/ENzXyiDGI1gjcGSC4xYWYVfLnkBJPNVd4J+OcnK4/vV84A1/0YbR+d3YLFf4HJoq4L+GSJtldfn892hWQ2G1U0zeFJfu7UZfbzSODBohKKeIHiTg7uszB1kuczd1lmTDYD0V/gjgD0YCmt+xrV4LIv7dCTECZaUn56lmugEQwVMQQ7bqC79hYv6TAuSJV9zgna3JAgpuVcseW5g6aqsulfq/M0Wd+WxsQ+SoBWwXqrCw18ypsmOer8o3guZ2THNZhnEhOX6614KKYw2qsPCV7IISwID/+SP3cbCeiyNi68S4zzuIfAXjNIeugQBEAhU7et6GnJPiZxx/AHq4DHhy8p13bfGHYFuCI3VTMG33WYpHyxkhQ2G8nKV+/VIrLtI=","translations":{"en":{"changelog":"### Added\n\n- **External stamp synchronisation (suite integration):** approved worklog/absence data can now be exchanged with companion apps — a scheduled `WorkLogPullJob`, an `ExternalStampService` facade, and a dashboard widget surface pending external stamps. The dashboard payload exposes `pendingExternalStamps` additively, so older companion apps keep working unchanged.\n- **Bulk decisions for managers:** `POST /api/manager/bulk-decision` approves or rejects up to 200 pending items atomically — the whole batch is validated and manager-scope-checked before anything mutates, one `manager_bulk_decision` audit row is written per batch, and the manager dashboard gains selection checkboxes on pending approval cards.\n\n### Security\n\n- **Overtime CSV export formula injection:** user-controlled values (display names, user ids) that begin with `=`, `+`, `-`, `@` or control characters are neutralised in the browser-built overtime CSV, so exported files cannot smuggle live spreadsheet formulas into Excel/LibreOffice.\n\n### Fixed\n\n- **Work-locations admin section dead:** a nested `<form>` inside Nextcloud's settings mega-form made the whole section unsubmittable and broke every later admin section; the section now saves correctly and the mega-form integrity is covered by a contract test.\n- **UTC-midnight drift on date defaults:** admin defaults, month navigation and day-cell labels now resolve the local calendar day instead of the UTC date.\n- **Focus lost after modal close (a11y):** focus is restored to the invoking control when dialogs close.\n- Dashboard polish: external-stamps status uses the error-text token, unnamed overview-grid children span the full width, and the manager time-entries view loads the shared time-pair-matrix styles.\n\n### Changed\n\n- Removed usage of private Nextcloud server APIs; audit rounds 13/14 hardening (locks, error mapping, exports, break-policy cache, shared-state serialization); media-query boundary conformance (576px → 575.98px); form-encoded booleans parsed strictly."}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.8.0/arbeitszeitcheck-1.8.0.tar.gz","created":"2026-10-12T08:11:24.290453Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T08:11:24.394880Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"odpyA4oWpxxpzqcFv/RyYOnKUR8IiZNzXFzhNh3A/mwPaZiVSnpcl9NRTEEQ1QOWjO+vyaJ6smud+enuPaLTqeFgvhUMRqpXQv29ceTRIvcWTqnIfNwDf0U6p4ExGt2D2e4IXNZMWWArCDqoEILyK6MiDQULQKL72tMoGqvshuHoDn3ro2KEB+PjaZwUSw3aBz2EbC0XgUKHI5tZKzT279zZoNnalw0WT4tbObT022I/haP9ZLowo1LxcBhr0qxWrHaTAbiylLIQGDc6BZi2VCtQ7Hew5wMEzPJ2RcenmZ90+rOhb74r71ZjXUrqwmEGdraK4uRkDTBlBrWIYLwAp0/Br0HIq3swpnVOAd6AX3D4iCFMjISwRegAEeitQOFLBHwHcCTg9Z9A3LgbDqJuxXHlew/i/dsJk0kRyHk76xtS+kxvgh03La0T5FJMLI4SmDxah9x8QknNxk8gOiuftEfEwQHw0YEq3NN0bZBChP+EMBYVPLqgSIaWacUP3S4yWaP5qy/NRAH4daqHuyMxGeHqOfN5lDUHSO+k9mwoun6pna964gg6LRHckv7cKHAbdTs/6WN1oAgE0GaawGAVdPyaCFbWVB2pHxeTgGDH/Ydsb6GjBJghAmopaR5xl/H4Yw9HKkTsj5YY447og5+VcIHlW1LvuP7l7+nyymGjbpM=","translations":{"en":{"changelog":"### Added\n\n- **Organisation-wide break policy (admin-controlled):** Administrators can now define company break rules centrally under Admin → Compliance: additional break tiers (e.g. \"15 min after 4 h\"), a minimum countable break length, and an enforcement switch that forces automatic break calculation for every employee — the per-user toggle can no longer be switched off when enforced. Effective requirements always resolve to `max(statutory law, organisation, working-time model)`, so a configured rule can tighten but never weaken the legal minimum. Every change is written to the audit log.\n- **Scheduled break windows:** Policies may prescribe break windows such as \"break must lie within 12:00–13:00, 60 min\". In `placement` mode the automatic break is placed inside the window instead of mid-shift; in `required` mode a break outside the window triggers a warning and a compliance violation. Overnight windows and multiple windows are supported.\n- **Mandatory presence windows per working-time model (LWS):** Models can define weekday-indexed required presence slots (e.g. school: Mon 08:00–12:00 lessons, Thu 14:00–15:00 consultations). Coverage = recorded work ∪ approved absences; uncovered intervals raise a `missing_presence` violation with manager notification. Organisation-wide exemption ranges (school holidays) suppress false positives.\n- **Working-time model tightening:** `break_rules` on a working-time model can now carry `tiers` and `min_break_minutes` that tighten — never weaken — the effective rule.\n- **Configuration safety:** Statutorily ineffective rules are never silently accepted — save responses and the admin preview mark each rule `effective|shadowed` per country; fully shadowed rules require an explicit confirmation (`CONFIRM_REQUIRED` inline flow, no modal). Corrupt or semantically invalid policy JSON falls back to statutory-only with a visible admin health notice.\n- **Employee transparency:** `/settings/breaks` shows the resolved effective break rule with source labels (law / company rule / working-time model), the locked auto-break toggle marked \"set by administrator\", and mandatory presence windows where configured.\n- **Feature-B additions:** dismissible help texts persisted per user, PDF export of the filtered time-entries list, manager CSV export with per-month overtime balances, teaching-unit input helper in the working-time model editor (27 units × 45 min → 20.25 h), and a compact employee layout (separate sick-days card, slim header, direct add-entry action).\n- **Companion capability:** `Capabilities` exposes `breakPolicy.enforced` so the mobile app renders the locked state consistently.\n\n### Fixed\n\n- Literal `%` characters in translation catalogs are escaped as `%%`, fixing a `vsprintf` 500 on the month-closure PDF.\n- Media-query boundaries normalized to the `B-0.02` convention, closing a real overflow defect at exactly 768 px.\n- WCAG target-size and live-region announcement fixes caught by the UI invariants suite.\n- Policy-level violations (organisation tier / window / presence) warn and flag without blocking saves; the statutory block path stays statutory-only. Duplicate violation rows on re-save are prevented by entry+type deduplication."}},"signatureDigest":"sha512"},{"version":"1.7.9","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.9/arbeitszeitcheck-1.7.9.tar.gz","created":"2026-09-18T08:55:40.668552Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-18T08:55:40.802287Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"cC1jJ0tUe0IfPhMpBZpQsOWKhrxdaQL7V0X1uWVSx6mkYhNRVCukl0n/oGoheZQNWWtyuqi8dDsFeeB78LxpMxaVPSe/1uD137/UvBmhzPVewQxUrAWafzHJLjqzYmBPgERkxf38yBag58RT0mJEepPmASHjKKYjCv2s2u0bvMbuQVyxWGiXMOPitP84L8DQ8QcP7n5ApjTB5bFqvANVc24jj1Rbf1cQy00DYxRHQDT9Mpz95wW20j8kWRe3IkFEKzC3vPrEB6fnBnIe50/xQUrSfoUf2+3k+JRTDRJM42+Tit4FFSVdiDyOy0l4BykG+uyxXS2VX5QPR0RVxn5DlRQUJ1bwAeseHJZbOyUZp4n5uVIYA87kBvecz+orlPNdE9ixGi04KblHkG9YRVzsAdEL2dRcSYVNYVY+WqZT5i+Nwqw2VkKV1Ef43aM+jWk23B7VfQTZfRm1u+yKLa2l9QRVelhe2tKr91yRIH8AyN63e6nlkStPFgpHt8W9jP/pAA/AXM1PG1dsxRQjrbyVJIWLyicWFWNlUIGgFmBelz19aka1LtVgnJ/+HSWZc90aAUPNgC27KJJc2EYZi2gpHiaBTAoNJQMKcg3m3+WwjN+V6eg2mmXbTagFaMeEppFHmAlAnFklkEQ41IPYpMG8dRK9G/3seQAeNZoXkdusYGQ=","translations":{"en":{"changelog":"### Fixed\n- **Manager pending manual time entries:** Approval cards now read nested `summary` from the pending-approvals API (date, start/end, duration, justification) and label new manual entries as “New manual time entry” instead of an empty “Time entry correction” Ist/Soll card.\n- **Rejecting a four-eyes manual create:** Manager reject now marks the entry `rejected` instead of accidentally completing it (empty `original` snapshot previously restored clocks and set `completed`). Pending entries are also excluded from hour/break totals until approved.\n- **Concurrent approve/reject:** Pending time-entry decisions use an atomic `status = pending_approval` write guard; the losing manager gets HTTP 409 (`already_decided`) instead of overwriting the winner. Non-pending pre-checks on approve/reject also return 409 with the same code so clients refresh uniformly.\n- **Manager pending tab copy:** Tab/empty/error strings say “Time entries” (covers manual creates and corrections), not only “corrections.”\n- **Locale parity:** `New manual time entry` string present in all ship locales (da/fr/it/nb/nl/pl/pt_BR/sv).\n\n### Tests\n- E2E: `tests/e2e/manual-create-pending-approval.spec.js` (manager card + reject/approve ground truth).\n- Mutation: `tests/Mutation/run-pending-decision-race-mutations.sh`."}},"signatureDigest":"sha512"},{"version":"1.7.8","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.8/arbeitszeitcheck-1.7.8.tar.gz","created":"2026-09-17T16:52:00.245247Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T17:04:11.693283Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"pTePwa9PASk5g5tSxB/Ltzzf8x4UOUrLfcHfii7t6scxXkF5V10KiT1gfdWpk0YbGm2JFRbq177BKbHJOZ624mFk1M1/y6aVMQA9QLeCgd9ZJjn9WZgY8Klctz7YrhinY1zXY7VkCuQjSs2hIQKbwFXAC6GYCejnXSLXQPUri8yE5YHSIZFw/upq12Y3Wk1KJCIyHNCQ5XuZSNXxIzAAVXtVKHuIniJzhzbz/nUe/SnyCJpVbHBQRzRTy20JcRTaYnb9WoKkTUUvi1PXlTppZ59G8P2O3zTjo6Lv4aJlZQ4Sq4s0zvWe1Da/QIdEcmZC49G391rXoMUUQnAcXDS3V3Fc1cLIsUqAH8kNyQogCETZfjhlrQMAX9g2OZHMwYVQya93cRu/f7zrHIXgUAe8bQYhUISzogQUQhtkFRTPTOZKgn8bxPDv2lKk2hWO8UDSxKuVURT2xD1TmSqBMRvHkfLQYY4ZDn0U4AevhjuiPGrY/uevnS1Y1tALw6Ef6VId81UiyKwaWZKJ9uMCKtYXDo5UqoK2ylYETbfEWyIakQx0rYrjnevxZtCSXLhbzglTSccvfHB9geQ/2/G1cp3CrRCaQnByfklQM6AZQ99yH23pnQ6ZSQzb3Wvhia2s0ub5NOe12sMOrsfHNUo71redEHd6g1i3N5raYn5ATeeeBIo=","translations":{"en":{"changelog":"### Fixed\n- **Request correction modal layout:** Employee “Request time entry correction” dialog no longer shifts form content to the right and clips fields. Broken CSS selector pairing had applied descendant rules (including a horizontal flex wrap) to the modal root. Manager correction dialogs were unaffected."}},"signatureDigest":"sha512"},{"version":"1.7.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.7/arbeitszeitcheck-1.7.7.tar.gz","created":"2026-09-17T13:54:58.688583Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T13:54:58.856820Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"u8qA/xoNU+jOYBEp410nyOfvvFhUTPF+arUc8fXc8fwfmm9vwGCVIasvhfYNL4hRJw7VqH/3F9c8pN06H1xO8W6aN0Cqjon/cHWVz/QOmtEdt+s6PiAMl83SdVUnnk3/xlVPLHhTjk6RoFH86bEwtE6kGt+Os8RMBAWxokx/UU9TXx2DfzunSZiaOq1ow1cUfj9LiijXwImKFHxmP+zxNZsuo6X5Gae4+p3JnGXgH+5hNE7KutTd83O4b7P9lKriD35stHINZ3Aol2SAH//LdnKADMBowa9Z9rwAlzis+M4Y2xwecv9ZGhjyc4vcRH2ZAvbSmMpLqJ+watFz4AaraY3q9gxI/xXalitHSxQDxVQ7kN5sDwyQ9Cq5E6ZAChRQGMejv1YCSBn+0+cZjagoCzAh46TgBA8hS/26vzLjvHrdvD7/PfYKy8urRZUEdZc63+bSVVuAi6MxRkyoedEMfliQFNU3Ymlr1htQVvYB4zAaSZ63aJfl1UF9mKgZ1OT0dLmbM6lRzGeXXIgWpq0gfw4MhuLLIk2ghhTGSzezWrlGd1gqfjEfVnY6Wj3XRRegzU0C8ZouHxMk9tki3c6inPUG3ZFIJ3+6WSArcLJw97j5cKwGUgIh0r6I4cWahvOaMaVHxY6LzZEEXoIGf0kL+Jk0Rtea7MrIy6CsnRgi5Q4=","translations":{"en":{"changelog":"### Added\n- **Admin-configurable offline stamp retention (24–72 h):** Global settings → Time recording. Default stays 24 hours; admins may raise to 48 or 72 for weekend outages. Server enforces the skew on `occurredAt`; capability `mobile.offlineStampQueue.maxOccurredSkewPastHours` mirrors the value. Hard ceiling remains 72 hours (not open-ended offline payroll).\n- **UI↔API client contracts:** Registry + workspace checker so server-required fields (e.g. justification) cannot ship without matching web and companion UI.\n\n### Fixed\n- **Manual time entry under manager approval:** When “Require manager approval for new manual time entries” is enabled, the create form now shows a required justification field (≥10 characters) and submits it. Previously the API rejected every save while the form had no place to enter a reason. Admin settings GET also returns the approval flags so clients can read them."}},"signatureDigest":"sha512"},{"version":"1.7.6","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.6/arbeitszeitcheck-1.7.6.tar.gz","created":"2026-09-16T11:16:39.721645Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T11:16:39.882603Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"KZ4+4OWYyHKql213chwKPDClz9w1AQOmy1/+IhgAvxVRVkUs0bMiyQ83JWlRbZ655miR7wjA9y888jdK+L19Kos5FDgQrxEYAlNK9714bsJ9z3wndDw+XZC/XeMBJlCdq5QvULzgnHyRVu9ACm0nbTZzu27FBy1OzBHqFR/mjMjkKNhrVnBShZsCDA4o2c8QkDG661xCsoMP0C2BKZNrsgdHmhm7AzOKEtx7W3FFNwOFTu7Hxo058ZkR4uJ+neQVuSMtNAaN3m7ydGyr2TSJb8Z0dEH/whN/H0dZK9R+E4G2E5zuwfMREORl9Z/MgcWizQLTi8tqRYwztaSd/XWYXHPEH0ASUQJLYQvWYHCZXuzQILDZSYzToVNG/YSswUQ7AXtiBNNTQn4A4IjzfdvshBlwlJ7w9tP1f8HA7qlFH33obtKvJr4NEa7ABsCAHsPOEnxEYlxkmkm6/LhyptrarMyue9WKlkja8P0cpnXCTxaa/5HCS1WxmRQ4ok2BERCliiWVzzGEgKtbEHS0wNiar3o6MsLJpd6Z1B+3hwLTh9e0TIIPjzgdH2F1Buk1qvJB1o5yPXEcx7lzp8v04ruEz5/oj/HWh9NDKRdr1NZNHh9o1bodR2uW6ailLh1mTgTO36ucpp8C6TSzqhoAwSdBVKv5DxJKVwHjVISv8MQ7Ooo=","translations":{"en":{"changelog":"### Added\n- **Offline stamp queue (companion + kiosk):** Idempotent clock/break replay with `clientRequestId` + `occurredAt`; tables `at_mob_stamp_idem` / `at_kiosk_stamp_idem`; capability `mobile.offlineStampQueue`; kiosk `POST /api/kiosk/stamp` for NFC replay without one-shot session.\n\n### Security\n- Claim-before-mutate idempotency so concurrent retries cannot double-apply a stamp."}},"signatureDigest":"sha512"},{"version":"1.7.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.5/arbeitszeitcheck-1.7.5.tar.gz","created":"2026-09-15T13:39:14.153219Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-15T13:39:14.289831Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"w/HAG/gJTR4pGFtguN1EBcKPcIPKMecjsHTpoLtl+/eBTkkrCsy9x72fuedL0sRI3NeFX9Up+wHzTZNuTvCLvvSmcunvztTqSpBJiIrsaT5CqYSSwIxusJUu4nx5gHFcpJlkaBJ8jz8BrMAmXstlKYSfpr9OWw+WJ5qI63gbxeK99l9l+fq4HwBNJRRyQwY6/GIE0RKGE1J4vKjE1/A7b5Jb9jn85OAYaEfLdlHvhetZAYXF9DPtPy37uTB0lJXNeIsCcBrOvAqa/nuLDpgb9w7GoJIPYrW73XtVaq3be/WO1HgOjK/bw+1C7yZnZJi2FYLl1Gdu1qh6ijpsHHXORdhsMl7lAmWLVdZeRLnCqVg98fjdABFhfgw8zDx1WcCNV6PTCrAhW77kJWPpAWe7qEbXXep1/RN5ILQfhoCkMVYlrHGp6KR39FQdeIGDH9MRS1V00Ez0GfHJu8zErOGLO7cFqBp1mBCCf3SqxoYE/JVvmTbu4vvFwHpzcljjCXJWpey82esAfBa9k8gG6ZvJgN5Nhf00QxYjAWG4YTve+fa4fiTWQXECX7jnhGQQ0M/bG5fedZxB9we/ucuRG3uNsbuxhVmV9wfHWZg81jk3Ss9sEjNFl/YaqJt/mcpKq6YxrzXLg5r7rCMttLz/BfhINnbjgGtd5CG49ZA67FemfpM=","translations":{"en":{"changelog":"### Added\n- **Opt-in sick-leave planned-hours credit (Entgeltausfall / Ausfallprinzip):** Admin → Overtime settings. Default off so existing Saldo stays unchanged. When enabled, approved sick leave credits planned net hours (weekday schedule or duty roster, including planned Sat/Sun) into the overtime balance; free weekends stay 0. Dashboard and companion widget show year-to-date credited hours when present (#40).\n- **Audited overtime Saldo adjustments (Nullung):** Admin can credit/debit flextime hours or reset Saldo to zero without rewriting punches; ledger table `at_ot_adj`; displayBalance includes adjustments (#39).\n- **Hours at a glance:** Today / Week / Month / Year Ist vs Soll on the employee dashboard and companion widget (#37).\n- **Calendar day panel:** Primary “Add working time” (and secondary absence) from the day detail (#38).\n\n### Changed\n- Dashboard Bachus simplify: progressive Month/Year disclosure; clearer overtime formula copy; mobile-friendly policy checkbox touch targets (≥44px below 768px).\n\n### Fixed\n- Theme × viewport hardening for overtime settings and dashboard credit note (Light / Dark / High Contrast; no horizontal overflow)."}},"signatureDigest":"sha512"},{"version":"1.7.3","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.3/arbeitszeitcheck-1.7.3.tar.gz","created":"2026-09-13T18:36:35.278350Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-13T18:36:35.415301Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"XB/JhqGmligM1Lh/35S1uXFr+pRhbRdx3mdE1KRrcEPEbjFeQ7LzJ0SRwRSe2mQAPMDSH9rQa/P87ACOUX/LEAUhPFwa1/ipOokwl29pfxHnWGKDFdnk3ryctcnhhMfaC73/Zznn0uPB41wIRsKIlUjMVnC6Gj0MRoCKFLoYViGod8ebg7VgfWepEbW011PVQcVuefBBdbIr22Qd1qV2OcWUsf0eZF68X15oBpiCROFkeJE75+yOL7THX5RCy77CinIPxXy88rbej2nHt5kXG5SL/Zq26eUBEEC5jFmsU/MPM3v8jVCs3cfB6I8sl+cgfVLRJYFCWyxbbgo5dxcEBozqAEx0i2aWSLz0EdOCyWPny7We83MdXXDwiYgtF2Bl2Zfj7gl7xHpaJQe1GywT3juO5XTXmZiQ6k3K0Hx4E0vYVfHvW/WhL99H2N7b6NbpPyQubpJoofU2x90Jgc8L38oe94+7u6veqim24B9pZd2mA1EeJ6er3cT/5fYMkkOsxvTKrYISQt5zmNuGmifhN3PbCDJuyU9HaJAfZHKtKmeUGjRy3lYQDPtigGOuEyexsIcFAZEfJ0SY4x6eAgPy5Ssv2e7ndHL9WczJXwZbkbWnYb0GipDZRmoCY5JhKtah7ua5t7zj0rqit5ScGaBYaVMXqRX/U66XUxV/D3+wqII=","translations":{"en":{"changelog":"### Added\n- **Time picker minute step (admin):** every minute by default; optional 5/10/15 under Hours & rest. Fixes inability to book times like 11:51 (#34).\n- **Sunday work on working-time models:** optional “Sunday work permitted” flag (also honored when weekday schedule marks Sunday as a work day). Suppresses Sunday compliance warnings for that model only; holiday checks unchanged (#35).\n- **Hours display preference:** employees can choose decimal (5.5, legacy default) or hours+minutes (5h 30) under My settings → Breaks (#36).\n\n### Changed\n- Default time-picker step is **1 minute** (legacy data unchanged; admins can restore 5-minute steps)."}},"signatureDigest":"sha512"},{"version":"1.7.2","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.2/arbeitszeitcheck-1.7.2.tar.gz","created":"2026-09-10T20:27:37.879708Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T20:24:24.960798Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"ueKva5sBA5fJubJeo5N9FOmK4/3qNnza/TZ3WTX7NqV+9bZANBiR5fkc9X5c550CBeTr6TkJRSixb0leuVWFfS2meAwb4JhNdsWIAbYv/EkA7yePdNZRpZ7C4xvsz7++gVLsSmogNzZWiZRGt0ILQwXO0b2iGLwbt44LuC21kZqMYRlqdfHqTdF0aWlk21WzaCeuP8/5tyA49sXac7O/a3uolxH3Fkmb0ApGbkp7gtdseQpAENUAOgv1w50Lt18GD5YZd1E95GVK30679Z7GpfI1qDaPOqWVaAhrkaF+ktDIyffpOdumrXBr3BQhWu+xJFemaOn0fJ15PWoo6VxfEiYTR+Vo3Ba3sjikU9NX6TdXz7cea1iA+FtWn/gl9rmRkbrnVS08RxncmT6uVcsFKWY0FBIVSxkZG09pSeBmDfkJvpxzIxSjKeMDCdCkUgrsYzgDjKZdnGR2/xWnI5mSFmbtmiJFKyZ6vFr9mnFwMuVtvCCiXY8nwmRzLyenTVunfQ9wiGt/UJmqKfAkopZ0lkS6BVt0ZGwSeVSZyf9JXDus784j4PpmoUaqoF6YvZmYAKNZsC756XHAq9e8Q8sz+7GISDPoiqzUfPdpNeQ3p7jm1InxBZkfHvKBztZhWTS2DE0ryfmffOTUZ8C2MQGW+lNHAFMvnoWD4fXFYtJ8wig=","translations":{"en":{"changelog":"### Fixed\n- **DutyRotationSollProvider DI cycle** that returned HTTP 503 for Nextcloud.\n- **Kiosk sessions:** claim TTL and PIN lockout under contention; used-session handling after TTL; pairing TTL copy aligned to 10 minutes.\n- Live session uniqueness migration and Atlas residual coverage hardening."}},"signatureDigest":"sha512"},{"version":"1.7.14","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.14/arbeitszeitcheck-1.7.14.tar.gz","created":"2026-10-10T15:27:00.196351Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:27:00.320292Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Rpwiodni+lhLSvCOf+AzpWppmkMSAVeKqe6cVdJ9pi/loBwc1DttQ4t92AFBQnmhEJQLhA7sAFst0s8e0e78R/jbS503x8bYYJFpJPWYz1nMiwE0EZcU6KK/c4YnYxB16hXZf6ARe4pxqmIwxMc6tlamglPdZJip0G6G4qOvMG0A07gljAeMH+xZgI8KH/APIRjHkkkOT/OrMC4bxJilbSNoWoRt+5wqI7tao3TVZV50Ne500T4NPd1JqXj1fGYyvBnwGAcOVqnMfjKZqTtMZv48J12VKdYMmpmeteBdXv+3IwfK/mlOWhrQEsnglQZYmz1sJrQA1tsoPb8AP/ZcGIWbC9vKxA4XEFUeSYE8i8xI+qrr8VeHF7X/yg/tzeDr/nB58vC6nBdqkQFQOQY3/UzomdTjzpFmRk0act2UfUXb8nvn4n/N32RxQlh3ZazD/oWWS1SJ3gNhSiD53WnALJAnW/TPL9JDh5RnIgOeGpUva5h7IjrxU+kC8boCfAu2CH9Qzud7ys6bsqBDuCXDF2tn/3k+mGOH2Jvh5qoEdJvTsuqGXV6TPlt2xdmX17QwlRiwoXY9d2xfE7bEyjMeYxzvTISEzTK2MBe9LpaJ2rw0cg8bl9DoCEBMKPZmUAkbN4YaUfkZ2ya4Ch/z5ND2O28q+SvU3EIBtM+vl2E1toU=","translations":{"en":{"changelog":"### Changed\n\n- walk forward to next working day in legacy clock isolation\n- Atlas farm v3.5.14: uniform-404 hardening, strict form booleans, typed config writes, kiosk typed errors"}},"signatureDigest":"sha512"},{"version":"1.7.13","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.13/arbeitszeitcheck-1.7.13.tar.gz","created":"2026-10-05T13:36:41.342696Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T13:36:41.442600Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"EkuM+3nta9WTarFjDrVVrW65jYxr+oLOy00x9oBULpM1b0bCsizE2yDYraYU8rb0zqK/9VjpXULYzh0ujuTnpD2pnqtGQm25QUM0JQB7iWBhABRJnOtYTmnubS59o8f5cAjZkWiC2KYpj/eMS5cbUBBDfLNFUilGR4SDULfIbL2Dw2SycuGECiJJCrE8VK833c4MDf33YBTv/bf+yajsVDlt8lOUcEYqNYtQDKwZvKetMQ8/z7oQ7InU+oozLZKDl++vnSBOsK4V33JpV5YInyqVQbSjg9QovfZ0bnxUZMl9WvLkbv13L6jKdgG4RfJGRRpiffaaoobDRfqK+zdatxsvKGy00R5fHYkqNOgbR+HVranamsz4GWzHGbHh5CLgf5O44lUj36OOJ1ur7qGNppSaceE/r+Tfn/CmEvSNuXO5zruBHVMQMRu3rWHqmvsZii3Sd1DWR3RhO62H7ZiSWoRzfwn7oXOsmBwUVBjZJxdgNaLrr0G2tYXSxCT8nRgf2G2Rt6IQu+rfViIKLkuCRC1NySMkNfbidGOeF1IdgKn4QtFK/Tr4GhllYXiUddA5NZQx2MnxJiQVCrSlvn2QPcjNA/rR/VCI+Fcphd00xAQ0IT0yCpcuq9w2aLfquys+xcrddtt3KkZI1Ax8rbVrPxSHpN/UUExu9BDHHH8posA=","translations":{"en":{"changelog":"### Fixed\n- **Working-time model rules silently dropped on save:** `setBreakRulesArray()`/`setOvertimeRulesArray()` assigned entity properties directly, bypassing Nextcloud's `markFieldUpdated()`, so `break_rules` and `overtime_rules` — including `weekday_schedule` and `allow_sunday_work` — were never written to the database. A 20h/4-day model therefore fell back to spreading hours over Monday–Friday and mis-calculated required hours around holidays. Both helpers now route through the entity setters; regression-locked by unit tests on `getUpdatedFields()` and a real-database round-trip integration test. Existing rows saved while the bug was active must be re-saved once (the data was never stored).\n- **Entitlement snapshots never persisted:** `EntitlementSnapshotService::store()` passed `DateTimeImmutable` to a `datetime`-typed entity setter (Nextcloud expects mutable `DateTime`), so every call fataled and the audit trail silently stayed empty.\n- **Vacation-unit migration silently zeroed malformed amounts:** a stored value like `abc,5` cast through `(float)` became `0.0`, passed the `is_finite` guard, and overwrote the real entitlement with zero. Non-numeric input is now rejected before the cast.\n- **Schema repair blind to stamp-idempotency tables:** `at_mob_stamp_idem` / `at_kiosk_stamp_idem` were missing from the schema-health catalog, so `EnsureArbeitszeitCheckSchema` could not detect or recreate them. Catalog synchronized; drop → detect → migrate → recreate is covered by an integration test.\n- **Time-entries error fallback could 500 without a session:** the safe fallback path called `getUserId()` unconditionally; it now renders unauthenticated. Strict-mode compliance checks after entry writes now run inside the same transaction, so a violation genuinely prevents the save instead of persisting the row and returning 500.\n- **Enabled app broke the Nextcloud Dashboard:** The dashboard desklet rendered its workspace partial through `\\OCP\\Template` with a truthy renderAs, which wraps the partial in a `TemplateLayout` mid-request (inside the Dashboard controller). That layout consumes the request's script registry: apps registered so far are marked visited and their resolved files are appended to the shared resource list, so the final page emitted app `l10n`/`dashboard` scripts **before** `core-main.js` — `window.OC`/`window.OCA` missing → dead Dashboard and no \"Customize\" button. The renderer now uses `TemplateResponse::RENDER_AS_BLANK`, returning only the partial markup without touching the page asset pipeline. Guarded by source/integration tests, a strengthened `dashboard-oc-safety` E2E spec (script-order invariant + functional Customize check), and a dedicated mutation harness."}},"signatureDigest":"sha512"},{"version":"1.7.12","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.12/arbeitszeitcheck-1.7.12.tar.gz","created":"2026-10-04T19:10:06.852823Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:06.956855Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"WpsRBmexfH5c73kcTA/SOes+Pf3xg9KjqYvshpw30bgkPJbTZkISlWnCorS2kTyuMga6fdfSY/quIumrjrpALWXj70OsG4uj+EyIy98S8T4v7bq+YiL3LHKOyom1pRFVw/71IN7wvcFsmXk99mhSwK+xdQGThPalvdo/LiX2Je1D+ZGP+ihueLPS2uoupGecFzCHA5WTQV0PZxRO2MCQm9tWcUkNfne6CCtBTvYREzGNlcoPdAdVoBFdK9HgxHKT6VVtfkCxqgGV7S0bgy2+qf5DNLLaYQZtEgvM0KScem9BlfzwjhyQHIqW6FU7aaoIY/8wEbdDZB7m21NNTkhSV16uZseeeWF4WKfoWCRPu+fRbL74gA6BoAoCqXBYL/pwWzJyk569/pU3V7cjIKPtj0NKQgT2hfxMe/yFL58+rdBeh2cku6t6oVM63s1b4A3V+vRvER+aYg6ek9FJzqTUg2erPZTWfWBlPfLkPgCIEL5MFwKncD3l4EfecEI8IXe7Yv+w0BV2iSWcUYOt8BAvwezSb3oHyC3X2bjQB1ngCBAJoxy6dUPpOFCkRjRNVScAWH+1T9vpDBeKRwgwuL6ivIPycoAUXzSAzcgN6QdpZkmITkw8r2NmcerY7/JiuBrYvK3Vm8fQ61X8V0R0KEuiwzXZnj5xbFaA7qYTo/klQDc=","translations":{"en":{"changelog":"### Fixed\n\n- Dialogs: Vacation-layer editor and entitlement explainer now close on Escape even when another Nextcloud app suppresses the native dialog cancel event.\n- Dashboard: l10n bootstrap ordering fixed so translated strings load on every entry path; e2e pool race hardening.\n- Localization: repaired corrupted catalogs across all locales.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage and store screenshot pipeline fixes.\n\n## Unreleased\n\n### Fixed\n- **Entitlement snapshots never persisted:** `EntitlementSnapshotService::store()` passed `DateTimeImmutable` to a `datetime`-typed entity setter (Nextcloud expects mutable `DateTime`), so every call fataled and the audit trail silently stayed empty.\n- **Vacation-unit migration silently zeroed malformed amounts:** a stored value like `abc,5` cast through `(float)` became `0.0`, passed the `is_finite` guard, and overwrote the real entitlement with zero. Non-numeric input is now rejected before the cast.\n- **Schema repair blind to stamp-idempotency tables:** `at_mob_stamp_idem` / `at_kiosk_stamp_idem` were missing from the schema-health catalog, so `EnsureArbeitszeitCheckSchema` could not detect or recreate them. Catalog synchronized; drop → detect → migrate → recreate is covered by an integration test.\n- **Time-entries error fallback could 500 without a session:** the safe fallback path called `getUserId()` unconditionally; it now renders unauthenticated. Strict-mode compliance checks after entry writes now run inside the same transaction, so a violation genuinely prevents the save instead of persisting the row and returning 500.\n- **Enabled app broke the Nextcloud Dashboard:** The dashboard desklet rendered its workspace partial through `\\OCP\\Template` with a truthy renderAs, which wraps the partial in a `TemplateLayout` mid-request (inside the Dashboard controller). That layout consumes the request's script registry: apps registered so far are marked visited and their resolved files are appended to the shared resource list, so the final page emitted app `l10n`/`dashboard` scripts **before** `core-main.js` — `window.OC`/`window.OCA` missing → dead Dashboard and no \"Customize\" button. The renderer now uses `TemplateResponse::RENDER_AS_BLANK`, returning only the partial markup without touching the page asset pipeline. Guarded by source/integration tests, a strengthened `dashboard-oc-safety` E2E spec (script-order invariant + functional Customize check), and a dedicated mutation harness."}},"signatureDigest":"sha512"},{"version":"1.7.11","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.11/arbeitszeitcheck-1.7.11.tar.gz","created":"2026-09-22T18:15:26.776818Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:33:52.594291Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DV6Yqu+vQDLMDJqRSzv8GUtUQ0fYfohb87ZkdDMfmM8SSs6475P/D36tM+qFawEMjC6ataiHpVsabVRlxs0d26FiY14NhFiuslwlUIZoX7ddWj8pcVFxJKJpQ7JztbpAVfi9m/9d/tXSro8fm4P6ufsf3ruoeQHU5ZcVhYrrRESa9a/uVkRmHJYsR19HKgggnK0edC5gNAkNpaSssOoIzcZ5XK96I0xsmJIttJeQJ2b6peHrLICBE1v63vZSPw/dAM/xgF+DTdtpyS0lh4hsFvGSEc62UEuWUr3gMXI+FW1wgmiGEWf1kgbIUDxgvhqAW4DAILEs/9RzbfcFAMBsA/70tkxyAejwl+KTBFvwP3xoIWs13WVf9xODamrEWeKotKltfKeoG2kk523IZgm/I/dGF/jDjITna+2d6SvaLqv4CnszY8Uu+WVOQo78anmeOglloUO1GqyLFvDPnXq9jgbec798RTlrFgBBcIS6Wu8eN6PGWE83g2WSFflfsoyPLR7HTcha/biiTzjZfOUEdTtdxNtyIPwoocJT2VbOqBk7Wev7l7u7oLBttr5RxhlKkg28mMhVu6DCFBZLnRbqnxV0dRC7VO24ktBk7aKKrAL942aoGZu3XZNzTeiRfiZqe1BH0dkIv97M3L4KJMqZ0Om0VBzmfs8yy4xgtPsbBjs=","translations":{"en":{"changelog":"### Added\n- **Manager email for open approvals:** Admin → Notifications can enable emails to team managers for absences/vacation, manual time entries, and corrections separately, with immediate delivery or a daily summary (`ManagerPendingApprovalDigestJob`).\n- **Offline-Sync backfill continuation:** `BackfillAuditCaptureSourceJob` finishes `capture_source` rows if the Version1046 upgrade hit its time budget.\n\n### Fixed\n- **Teams multi-add people search empty:** Bulk “Find people” used query param `q=` while the API only read `search=` — suggestions stayed empty (Kraft). Single picker also accepts `q` as an alias.\n- **“Find a person” suggestions clipped in modals:** In-modal user-picker lists are in document flow so `.modal { overflow: hidden }` no longer hides matches.\n- **German UI for bulk apply dialog:** Holiday region / Confirm apply / vacation L2–L3 copy now go through injected l10n (no English leftovers on DE).\n- **German teams multi-add / “Find a person” copy:** Missing catalog keys for teams picker + bulk-add strings; now extractable via `$l->t` literals and translated for DE.\n- **People-search param asymmetry:** Admin/manager/license/kiosk search endpoints accept both `search` and `q`; shared pickers accept `userId`/`uid`/`id`.\n- **Web app upgrade stuck in maintenance:** Version1046 audit backfill is time-budgeted so schema upgrade can finish; remaining rows backfill in the background. If an upload still leaves `maintenance: true` / `needsDbUpgrade: true`, run `occ upgrade` then `occ maintenance:mode --off`.\n\n### Changed\n- In-app correction/manual-approval notifications target **all app-team managers** (not only a legacy per-user `manager_id`)."}},"signatureDigest":"sha512"},{"version":"1.7.10","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.10/arbeitszeitcheck-1.7.10.tar.gz","created":"2026-09-21T17:42:55.078227Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T17:55:50.720322Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"fPgdmRyv7LWnZWoVoGZhAGYoySeEBVifQ16KS5c0kUAs5VsKGglcyeaUo4jJ7Jq67p6QeFUUxEhGdDugzwCr4vkunQXuH6tK/zvH/lMcWU5/2rfYQaJ6/mujqZbtlrb6tWePsOTXsAM2f12h73Pq24x8CEoFOL7bWFElkTBozF747y+D8ZnhTHEGELCDpMHTQqi/ZcehKjcTmXngUdpNt0HMAlR/zJziL+vyNUBOQsKthOvMxN4Es79Es9IXYNBcSc7nsiPRIMBHeIRZxJF6tfjW5Mf398JwFXBU0yJ9ZNk9XbjXHEv7o36Q8IX1+B10jEECjogioTxxqyZqfuqaev1crybM2qgXrxy8c437K7u0+bzHTV/GdKMotK0VVuqCPmBYr7lDn1s+FjX2j4X9bePCeGw+FeuwHc5MJQEDzoXZnzxBu9W6Jy3D2uRpoUn4nwgF2BsPcpuN82bsdXquw0XEEodBL2jszBT7gXIVwx7kFX1M/g+yv0QZ61DPkC4CK8PnhOhJOKWGAwQdReCefDtJcrrKtV/pc+KM7E1p3dYHpiqTOBGiwEihRqZMhrAXX1brLGRN7kWfIoFtd6k0Oy6EB/4OtS0mt29IqBl1kcscxabjCQGio+kPr5bkweFLzEI+ov0xlMDE2dGnqJQiprYHOl+ldcLY+68w9BNTUB0=","translations":{"en":{"changelog":"### Added\n- **Admin multi-select / bulk assign:** Working time model + holiday region (`batch-profile`), mobile seats (`mobile-seats/batch`), team members and managers (`…/members/batch`, `…/managers/batch`), and advanced L3 vacation policy (`batch-vacation-policy`). Partial success per user; no team-inherited work models.\n- **Manager dashboard:** Pending time-entry tile with jump to the approval list; pending absence/time-entry counts use full-team SQL (fixes under-count after the first 10 members).\n- **Audit Offline-Sync:** Badge, original stamp time beside sync time, and Offline-Sync-only filter; indexed `at_audit.capture_source` (Version1046 + backfill from legacy `new_values` JSON).\n\n### Changed\n- **Audit Offline-Sync filter:** Prefer equality on `capture_source` instead of `LIKE` on JSON text. Write path promotes `capture_source=offline_sync` onto the column; list/export still surface `client_occurred_at` from newValues.\n\n### Fixed\n- **l10n parity:** Kraft bulk / Offline-Sync UI strings present in all 11 ship locales (were missing outside en/de).\n\n### Tests\n- Unit/migration/integration: Kraft batch routes/services, `Version1046AuditCaptureSourceTest`, `AuditLogCaptureSourceTest`, `AuditCaptureSourceIntegrationTest`, pending-count contracts; E2E Kraft manager tile + Offline-Sync a11y.\n- Atlas: `scripts/atlas-concurrent-seat-race.php` (two-process seat capacity race)."}},"signatureDigest":"sha512"},{"version":"1.7.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.7.1/arbeitszeitcheck-1.7.1.tar.gz","created":"2026-09-04T16:08:27.311814Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-04T16:08:27.456446Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"oFIbTGWG0dFlJa7wrLENs0xruKMKHfT8jZwSWnyvJhHhUkYRZHOQnW0rXP1/CdcPUi5nYPbA68rME0q+1f1SqIRzf91vFj9leH32sFQoxH6uLyXyqLaoQ4b/aEcjtYE8ugwPACUb7/hI2cdZ5UcaT1qfLrXIlP2BfLP27q87xzV80E+XPCzXYq6NtePhlKE2p4rc+KF+M1rLZ3GtA6aryzzCzkE91I63c0Ds5mlt6m5CsZwdgVvXz1bQDzl6gSxN5Bj5HUH+1XTQTyGgKkiurRxfy4/eG0Wm0DzBZAB2oAmtMRALUk8bXYA0wcweUZLN6y8n16n8SyBhOPODkxaWvHnOjP0pHNAllEzIRAooT1GuT2+GLtKERfG6cHrXstYcsRK8TnCKGBHyEv8xD8QMLVrgG34EA7GeSHhsrqnT05SFqE/0XHMoEz6mNDwXcW23x9M8OcJJcT44B0JAdBeZTK3WBVQSNkSmxFKoCTKXnaD7fda3jHwGFTLPNp3U11LkxKo5JkEIbpCQ/TTIQpSWBW60YFNKpc9XKkpkqZO3bZwULBBctvFrqL+JdxJ6ORypzqjmHzrz35UndT97YPPPqf6yMJemeEE1cAENLln5LNZajvdx4s0iweir7XRImgwqMBtcgGNgnJv7oJJ29MAVXdEvV8RxmZ8QJFVyyWf8mpI=","translations":{"en":{"changelog":"### Fixed\n- Non-EN store summaries no longer claim GDPR/RGPD “checks” (aligned with EN/DE).\n- **Absence report row order:** `ReportingService::generateAbsenceReport` defaults to chronological (`sort=date`); payroll type-order is opt-in via `sort=type` (report API + CSV export). Preview UI requests `sort=type` for absences.\n- **Manual time entry help:** date/start/end guidance is always visible again (night-shift hint not hidden behind Tip).\n- **Saldo PDF:** `UserRateLimit` on `overtimeBalancePdf` (30/min) to limit PDF generation abuse.\n- **Mobile rest copy:** English fallback parser accepts Slice C Pause/split guidance suffix.\n- ArbZG internal analysis path clarified as monorepo docs under `nextcloud-dev/documentation/arbeitszeitcheck/` (not shipped inside the app package).\n\n### Changed\n- Docs: `nextcloud-dev/documentation/arbeitszeitcheck/internal/ArbZG-Compliance-Analyse.md` §5 (stamp + manual share `isIntradayWorkInterruption`)."}},"signatureDigest":"sha512"},{"version":"1.2.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.6/arbeitszeitcheck-1.2.6.tar.gz","created":"2026-04-24T10:32:02.603904Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-24T10:32:02.697646Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"FCaNQEccscnzM6rLSgigNgiMK//Ogy4aLpQQ02I290SKuEd1galIkTleu42bUC3jUHSHpnmIDlaOC359unS4KGTEy3nmCdndzTjnZo6r+Pbk9+/vFkufLmhW6rckhWRuZ5FaTDQEtSuZXf/xGdfbdoy0emnIb+n76unzaXXDRbRwiofg80WVWY3ejgfixFajIBo0pYBiWHsjvjA66KtZXYxALqBikSLtr7Qo2BNssYqyDpxnPXjrpabkjwefBgBEro9vtBMgdxO1BiXf2R7YQK7tdea1b1+Z0SPhktPHoetniDAHnLzFucaQdwMVT4jiqwldo5wArfOLOWnFHa3jBDLUVc3RCov3/euMcr2GKxwYR6Zxjuwb++CAMTv4wKuKhju4tfWm6KQfUXCVMciK56XxAvwhf0FzlGBpT0+YORUBc7r0OSm1SbO5R8E6wOF6sUM9QhQCz+VFFyo5QEXxME0pV+yDzFFCBCulYH5VFq+cTXXZ9Cg7LaafpLP0dm3xJ+bnjLf/sNziApiMCQsOvK5DQ/tH6NS1qf87PZdb2FeciFFCO9eZw5JP842ePPPdbfq6hhz36BOv2gHqY3b4ze2H8Jp08II7/a3FWKbkz0nXN0G0HLQYDkBAa22Sn/c6Io6hGcQI/0fuW8pHJjhI6VgoCZpdY+dVD00/7Pu/HXw=","translations":{"en":{"changelog":"### Added\n\n- **Absence approval forensics**: Added `approved_by_user_id` persistence on absence records (approve/reject/auto-approve), with schema migration and API summary output.\n\n### Changed\n\n- **Vacation entitlement snapshot integrity**: Added deterministic key-based upsert on `(user_id, period_key, as_of_date)` and migration-backed unique index enforcement.\n- **Concurrency control in critical workflows**: Absence create/update/approve/reject/substitute flows now use user-scoped mutation locks plus transactional rechecks/row locks to prevent race-based overlap and over-approval inconsistencies.\n- **Release safety**: Workflow/unit/integration tests were updated and executed against the hardened mutation paths.\n\n### Fixed\n\n- **Legacy snapshot repair path**: Upsert now handles historical malformed rows and concurrent unique-key conflicts safely by retrying as deterministic update.\n- **Vacation balance write races**: `VacationYearBalanceMapper::upsert` now resolves concurrent unique-key collisions via re-read/update fallback."},"de":{"changelog":"### Hinzugefügt\n\n- **Forensik bei Abwesenheitsfreigaben**: `approved_by_user_id` wird nun direkt am Abwesenheitsdatensatz gespeichert (Freigabe/Ablehnung/Auto-Freigabe), inkl. Migration und API-Ausgabe.\n\n### Geändert\n\n- **Integrität der Urlaubsanspruch-Snapshots**: Deterministisches Key-Upsert auf `(user_id, period_key, as_of_date)` ergänzt und per Migrations-Unique-Index auf Datenbankebene abgesichert.\n- **Nebenläufigkeitskontrolle in kritischen Workflows**: Create/Update/Approve/Reject/Substitute-Flows sind nun mit nutzerspezifischen Mutations-Locks plus transaktionalen Rechecks/Row-Locks abgesichert, um Race-Conditions bei Überschneidungen und Überfreigaben zu verhindern.\n- **Release-Absicherung**: Workflow-bezogene Unit- und Integrationstests wurden auf die gehärteten Mutationspfade angepasst und erfolgreich ausgeführt.\n\n### Behoben\n\n- **Legacy-Snapshot-Reparaturpfad**: Upsert behandelt historische fehlerhafte Zeilen sowie parallele Unique-Key-Konflikte robust via deterministischem Retry-Update.\n- **Race-Condition bei Resturlaub-Updates**: `VacationYearBalanceMapper::upsert` löst gleichzeitige Unique-Key-Konflikte jetzt per Re-Read/Update-Fallback."}},"signatureDigest":"sha512"},{"version":"1.2.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.5/arbeitszeitcheck-1.2.5.tar.gz","created":"2026-04-22T19:23:16.390218Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-22T19:23:16.482984Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"Zpb9Oh1bIRpGiO5z2K6o3xhzr43wa8RdfzfLXHg7sEGwS8tzN8GaAdyCnk4IoZbFQbrcrwdyFCK2ifzBqN9OrxHGAqGpFLeQOaHUDcH/imXCIFxYAch8kwW545iujuTkvSBdlIFa+DAG6lFFRngQPO2aO9gC1B0Vp6wLTAjI5NDNeM6nVNyCIhbvaC4jUfIrTjrCfvgQ4hgpJ29pYU0GdY6bEgwKCQQgUuJVEB6Hoay1M40Xq8eLzdT/UfobFlC1nV4Anda02g1AeoM04FrJQUfD6lCo0s5pFYAJ82EM5OyzWwi/xgEv4y54tao/UBX6yoUvIdHa7yh6bfoKy0dQmzb+iHl8eQTAzCVQAgWWu58F5J+k884kYMwBNBdcuymPnszTlypmrQoRRjvI+UI2f8taEikdX2EUAbwHkBU8U8CG98NogPFy/w9drgLqq6gvBCtuuz3BLC7fsEfA2/Lx4XYEwCdbvoFMc2GNZJMIujhs1jsbk0Hzscz3NCmaILzbZpfKr59xfZy/bxNl2Yi8nl6L9tJRyaLdxJ7urZthACHIdATnAqGretxEcTox69OnoR+Pir+0N/8ujZ3Z2K2C/5zu/QGwGgaz+WeoKCwGjmTb3JCG3jh340kFLnp8TnzUiZpduSj4Bz4o7yojTzFAPoQrTUYZrv0llb8PGSoPI8w=","translations":{"en":{"changelog":"### Changed\n\n- **Release packaging refresh**: Bumped app metadata to `1.2.5` and regenerated the signed release artifact set for App Store and GitHub publication."},"de":{"changelog":"### Geändert\n\n- **Release-Paket aktualisiert**: App-Metadaten auf `1.2.5` angehoben und den signierten Release-Artefaktsatz für App-Store- und GitHub-Veröffentlichung neu erzeugt."}},"signatureDigest":"sha512"},{"version":"1.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.4/arbeitszeitcheck-1.2.4.tar.gz","created":"2026-04-21T20:21:42.532176Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-22T19:18:10.423417Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"fOspm7RunA6JBPSZZ3vwdD+rRVZ5qOeMbZFcndytc+ZU00QoTdCYDFaEsDlUZtuCnpLGgwQ1x8o0jBhi409JtsZrNyD99XhzBZCKNl/nysKo/jDLa3h1msZ/AWKtjJUlyLxEPvPLzM2e/bg7DVOJKi0lsvq6nmUxJEhlLmhdgaONOlbAsBdtrtTKOO7DSxslFRRW0fmofVEdH8lL+5y0l/RtV5Gd6bMtpQ5bzHSoai9OMuOBFJ98QX9k/vX4qAuJUGVRvivJmMXDmiD/kPvezmia5no32RbXtYgYBUVY3Y9kfOza3mdFIwlHSD0bnjCI22QWUCBa5v59k+OuMPzPxCy+bzBl/M6Fu09TrNCDJvejpF/y9vKl7Wxgdz4ynaA2EZZ+RN15cGiTdOWVzjcWtnXBMSh9RCnBZqSCz8dFq1qVLUy16lBciLRNa6HofkEvemUN1oLbokZKLQlyXMFNxT8Ny3udUaOa5qKFDLbwgTttFuHDfn4NWOeI7JQgJ5kntg2KMpB4VYXvDwODCEcolniDL08kWuPbxOxd0tTR55+seYBfrSQrrGt46a4Vcp683MvMn8fx/el7vSPx9ifD1cUd6KMf/fi5IJF+pohxoCZlNepNdQGmaKNfWh87EGsdUl7089uKLWdwGWeGoHdxrBuRBhcfIU1HvCH+KVcvT9A=","translations":{"de":{"changelog":"### Geändert\n\n- **Release-Stand veröffentlichbar gemacht**: App-Metadaten auf `1.2.4` angehoben und ein neuer signierter Release-Artefaktsatz (Archiv, Checksummen, App-Store-Signatur) für App-Store-/GitHub-Veröffentlichung erstellt."},"en":{"changelog":"### Changed\n\n- **Publishable release refresh**: Bumped app metadata to `1.2.4` and generated a new signed release artifact set (archive, checksums, and App Store signature) for App Store/GitHub publication."}},"signatureDigest":"sha512"},{"version":"1.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.3/arbeitszeitcheck-1.2.3.tar.gz","created":"2026-04-21T20:11:31.972208Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-21T20:11:32.147065Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"xYrrvEAHPwtfVHCBhNEEi7sX2LvqPOYNCC1AOYXNIeoRkUCxYLFTc29MwrgaUMoSLGtoZDChDD2eKsUH6MY+y5Jk79dKZg/ngf2/YBQpmMevl8Lp5eSGo2QES6rBtWYa1GFOEd6sVU6RLcy9tNL3toOxw5Te3QTskzeamEGChd0JYprcLZSWJG1kRu8Y8c32p5Rwbwu1tuq3AAW+i/6Bq4bxztKR6PGkZ6uyTbVaW3p0PwMFoJxceVu0/MsbMpftQaGQHr/1h6nBvbuj1WBkfi9W0PHrl+0zRn+5FwoUU9dECfeHuQAAcXOcJsKT979ewplb5+vPgNSeN2SSTWoGs9eYYIvUzznpyhuqSa1aplwXO/U0xyTXeUE5fiAQFlbnxtZ7gjmeLBkbAR/gF4aCX3NEPGLtw24gY8jomJ67+foeoM1+AJM73aFgTH0NjYKUetACRTFgB6gJPXl97JrJxd7sTeg6xiqlNKrWSvxiAO8XkjHCUV1BaPmoRtyfcNnLxmf0MGCVUuO4btz7JH5qy3q4H8XecbNYpnEeer8qxzTkw3toonE4+LVgbHV0nW6uu/gfEvDtYZI0wKx/A4vQYSQ7WEprMn9SbjnXbaMFOcG81GT2HifhcWZH0/YfFzz+sRng/TvZOkuf2iUq/9EjnKwkyygMSlHE7Si3kYXldKc=","translations":{"en":{"changelog":"### Changed\n\n- **Release packaging refresh**: Prepared a new signed App Store/GitHub release archive for the current code line using the Docker-based signing workflow."},"de":{"changelog":"### Geändert\n\n- **Release-Paket aktualisiert**: Neues signiertes App-Store-/GitHub-Release-Archiv für den aktuellen Code-Stand mit Docker-basiertem Signatur-Workflow erstellt."}},"signatureDigest":"sha512"},{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.2/arbeitszeitcheck-1.2.2.tar.gz","created":"2026-04-21T13:05:06.356098Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-21T20:07:06.848923Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"eG9EHR4R6Kg1X8OQ9g5Q0yPR7Y7yp+snb/sVhhLXEOtBIFd4xLZd/xi0GuLYF4KBZlPCH1GbRCy+q/kbjx7MyqlO2rHn3Cef0MnwJoLp9czZFJOjVJJpkoZNf/o9hh2OpeK+sNS7ghXfC5Pax2oicQFmeQeKQKLaTwn0AcJgvQrF1laVjQiXQopE98v16iClBjZ+KuybKcRmglxbd1N8dx69nBB0uyLQdkQIhnwHccyrlPCBzsXq55AtIEXGsitgXtquHKOk1bzBwM3uwQZoNRi4RIB/zWmOv0c7+71QTw0i1DMUsz+FUrTw+bBY0FnZe/Q9ageaUvwOb4bHUJYt1cuWPGEufAUC1w7ONCfHGASNkDv34msX4MQEaMf28k8ohtWlX/fzNIxL63Erijyanuo1tf9hZFeYEXmCKwXAeWOL0O/lXWcTGTvEOAD96sSv6RIcIOwHBLqxGUHiCQzJkKZJ3hjv3rrpOeneCLOz/jMNJrEgYCihLn1J8cUEPPeP6VH3rNthDuQOVCi63v+0X1uubbM6DQheViBYTA/z4wEAP/2YsA6rsXATB0JR4pOIxlsiT0MgjxIyrfctOJP/4zMU4645rSmZE+NS0TF46gpf8DF6ai0zilMmaHf9xY72qGZTICjvtIUcmwbMhRMqG9fmYomv5U2/jd3rubayPDg=","translations":{"en":{"changelog":"### Fixed\n\n- **Localized decimal inputs in admin settings**: Daily working-hour inputs now reliably accept comma-decimals like `7,74` and preserve two-decimal precision.\n- **Legacy hours API payload parsing**: Time-entry endpoints now parse optional decimal hour fields consistently for both comma and dot separators, preventing silent truncation in backward-compatible request formats.\n\n### Changed\n\n- **Input precision hints**: Updated settings input steps/help text to align with two-decimal hour values used in 38.7-hour week scenarios."},"de":{"changelog":"### Behoben\n\n- **Lokalisierte Dezimaleingaben in den Admin-Einstellungen**: Tagesstunden-Felder akzeptieren jetzt zuverlässig Kommawerte wie `7,74` und behalten zwei Nachkommastellen korrekt bei.\n- **Parsing bei Legacy-Hours-Payloads**: Time-Entry-Endpunkte verarbeiten optionale Stundenwerte nun konsistent mit Komma und Punkt, sodass in rückwärtskompatiblen Requests keine stillen Abschneidungen mehr auftreten.\n\n### Geändert\n\n- **Präzisionshinweise in Eingabefeldern**: `step`-Werte und Hilfetexte wurden auf Zwei-Nachkommastellen-Szenarien (z. B. 38,7-Stunden-Woche) abgestimmt."}},"signatureDigest":"sha512"},{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.1/arbeitszeitcheck-1.2.1.tar.gz","created":"2026-04-21T10:50:54.442500Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-21T10:50:54.542123Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"wHjRsCMFlhEA9EgrgvzuDGiwQsEIOmqNFH9oA9Fs+lJZOluUc6XSmPeZow7uso0PwR/b5YYt+f8KmOoIwuJepnD1TTa5ClzBP5zx5gZq+KIloaEGzVPTnHvHJuc4V8q4A5BYEXvYrVvEuPgufr8BOBNy4SLwMKYQlJR0LhDLn3ShHowJ+VDaUSUjOtUih0uUCsNI54HhaAAa3EfKpgDqc2+jhM7WvnIzDGRVYF4HbPBYPpn+1eWOyOlOgq0YIy5M8+4shNLiGeIRo7Uepk9+HnDm6vjLdYB2iE9AMl+vSCGSdQTrP0Z5ceXZBZT/bM0t4Af3EfAP5seJ/sSQIYs1a5T8RIneJ7DwyFbZdGelFSSBZoMGDevr4IUUfAB3NIKNlPZsxAOv9elrF4AjLJZhDVB6i7OSVeER7yLqrIgMhBFXiFpr095gYQ7Wn6VCcBWwWVS7cWXa0xN9Yl00mn0z9GcVagRvncJ28Y0wSgk+GP/BDalUHmD7wHSL3pyXIWxpqQ2OJHi/xT5Myx4T+HVsywgRwAFaOLjV+hm8hkJLxd70WG0e1oo21m/DtTZZ1R44+BDdRGMJIcabWxJ/zFhYSZvVmoL2dpUlJhPgBBp1Y9Xp5pF0zOeLiGSMR4ON/Iys2jpsbAd0/TxW55NaEFOpZRRNYt3VoZJ8oqM1n1sHZX4=","translations":{"en":{"changelog":"### Fixed\n\n- **Paused-entry recovery and lifecycle**: Paused entries can now be accessed again in edit/delete workflows and are consistently finalized as `completed` when edited with an end time.\n- **Resume behavior for same-day paused sessions**: Clock-in now resumes a same-day paused entry instead of creating duplicate automatic entries, while preserving the pause gap as break history.\n- **Historical paused leftovers**: Added migration `Version1020Date20260421000000` to repair all remaining orphaned `paused` rows (including cases not covered by the earlier one-time migration)."},"de":{"changelog":"### Behoben\n\n- **Wiederzugriff auf pausierte Einträge**: Pausierte Einträge sind im Bearbeiten-/Löschen-Workflow wieder erreichbar und werden beim Speichern mit Endzeit konsistent als `completed` finalisiert.\n- **Fortsetzen statt Duplikat bei gleichem Tag**: `Clock In` setzt einen pausierten Tages-Eintrag fort, statt einen neuen automatischen Eintrag zu erzeugen; die Pausenlücke wird korrekt als Break-Historie archiviert.\n- **Historische Restfälle bei `paused`**: Neue Migration `Version1020Date20260421000000` repariert verbleibende verwaiste `paused`-Datensätze (auch Fälle außerhalb der früheren Einmal-Migration).\n\n### Hinzugefügt\n\n- **Auto-Fallback mit Nachvollziehbarkeit**: Zeiteinträge speichern jetzt `ended_reason` und `policy_applied` (z. B. `manual_clock_out` oder `auto_break_fallback`) für klare Audit-/Export-Nachweise.\n- **Einmalige Nutzerinfo nach Auto-Ausstempeln**: Beim nächsten Statusabruf wird eine neutrale, konkrete Meldung mit Uhrzeit und Regel eingeblendet.\n- **Urlaubsanspruch-Policy-Engine**: Neue berechnungslogikbasierte Anspruchsermittlung mit Modi `manual_fixed`, `model_based_simple`, `tariff_rule_based` und `manual_exception` inkl. Simulations-Endpunkt für Admins.\n- **Tarifregel-Datenmodell und APIs**: Versionierte Tarif-Regelwerke/Module sowie Admin-Endpunkte zum Erstellen, Aktualisieren, Aktivieren, Stilllegen und Zuweisen von Urlaubs-Policies.\n- **Snapshots der Anspruchsberechnung**: Persistente Snapshots (`at_entitlement_snapshots`) mit Berechnungstrace/Policy-Fingerprint für Nachvollziehbarkeit und Diagnose.\n- **Neue Admin-Seite „Benachrichtigungen“**: Eigene Oberfläche für HR-Empfänger und Ereignis-Matrix inkl. dedizierter Notifications-API.\n\n### Geändert\n\n- **Fallback-Logik differenziert nach Einsatzart**: Für Schichtarbeit gilt standardmäßig eine strikte Fallback-Regel; für Nicht-Schichtmodelle eine flexible Regel mit tagsüber konfigurierbarem Ruhefenster (z. B. Familien-/Mittagsunterbrechung ohne Auto-Ausstempeln).\n- **Export-Transparenz**: CSV/JSON-Zeilen enthalten jetzt `ended_reason` und `policy_applied`, damit automatische Beendigungen in Reports eindeutig erkennbar sind.\n- **Urlaubsallokation integriert**: Jahresallokation nutzt nun die neue `VacationEntitlementEngine` und liefert Quelle/Regelwerk/Trace in der Ergebnisstruktur zurück.\n- **Migrations-Kompatibilität**: Bestehende Urlaubswerte aus Nutzer-Modellzuweisungen werden in Policy-Zuordnungen überführt (`Version1018Date20260420123000`), damit Bestandsinstallationen konsistent weiterlaufen.\n- **Admin-Einstellungsfluss für Abwesenheiten**: Carryover-/Rollover-, Vertretungs- und E-Mail-Schalter sind zentral über die neue Notifications-Seite/API steuerbar.\n- **Schema Arbeitszeitmodelle**: `at_models` enthält jetzt `work_days_per_week` (`Version1019Date20260420150000`) als Grundlage für Formeln.\n\n### Behoben\n\n- **Aufräumen bei Nutzerlöschung**: Beim Entfernen eines Nutzers werden jetzt auch Urlaubs-Policy-Zuordnungen und Entitlement-Snapshots gelöscht (keine verwaisten Policy-/Berechnungsdaten)."}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.2.0/arbeitszeitcheck-1.2.0.tar.gz","created":"2026-04-21T10:08:26.124661Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-21T10:08:26.196481Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"u3gPfbToOow1ecZSrYUbhzoOp6/Fb3syYzSdx9CNYBvsUDqkoBODyN714AKc/4PF8hYrf+nk+A7ICF0GC94uBW8MsNWCHRQ1GEmhhaNSePTNjV+JCCOR9SINE1JCYVSh4avkBX7evJrRZFTOoxRGZxKBSY8ubYG71+F/N22A3qH8wzu6yYMBi0hrt1oVOfFkhrkBKeEwip7Bm0vrEzfrhnNJ3qsqf5q52F9sxUFZNT+/JLDBPu/ZAokssMJGTgbmKwdc3qQzdI/d0zNPuZJwUNjjgvU+TLeFJRkOKNghRfdkVotVcm63NmAf9afJJx3QkCTOTbMchC9sKyvlnIbG68WUZvsiAUPRW5o2XxXK71zZo8y+GC65ZazjioV/4ANt6sEItnJ0MSylRmWFEXMTMJHgCiqqp9hwZwxs0IicHLsRRsnUDdT7yMgOdB7082cnUFJtWM9Me2uSvYx4QUfPosWZhkMqpwagxJ80EnYSfc12/cEXbr58MbdqyQeCj2dUG1iBPw0eVooOWxf9UwOnNaUKV6ynEGok/mYM3qS8XnNElFpliKoRAfBtgLsCpV7O/ChhjE0gPNILNasGMiofSaAd4cHZjSZI/7Cm6FkOSrGju6XCPubM6XeYLbyZ8pv1htd1H1NzUIsWYXG23nPhICNAdOvEcbIXWEw8H5b2Xtw=","translations":{"en":{"changelog":"### Added\n\n- **Vacation entitlement policy engine**: New policy-driven calculation flow with support for `manual_fixed`, `model_based_simple`, `tariff_rule_based`, and `manual_exception`, plus admin simulation endpoint.\n- **Tariff rule data model and APIs**: Added versioned tariff rule sets/modules and admin endpoints to create, update, activate, retire, and assign policies to users.\n- **Entitlement computation snapshots**: Added persistent entitlement snapshots (`at_entitlement_snapshots`) with calculation trace/policy fingerprint for auditability and diagnostics.\n- **Admin notifications page**: New dedicated admin UI (`/admin/notifications`) with HR recipient + event matrix management and a dedicated notifications settings API.\n\n### Changed\n\n- **Vacation allocation integration**: Year allocation now resolves entitlement via `VacationEntitlementEngine` and returns entitlement source/rule-set/trace metadata in allocation payloads.\n- **Policy migration compatibility**: Existing user model vacation values are backfilled into policy assignments during migration (`Version1018Date20260420123000`) to keep legacy installs consistent.\n- **Admin settings flow**: Absence notification-related controls (carryover expiry/cap, rollover switches, substitute-required types, iCal and substitution-mail toggles) are centralized on admin notifications APIs/UI.\n- **Working time model schema**: Added `work_days_per_week` to `at_models` (`Version1019Date20260420150000`) to support entitlement formulas.\n\n### Fixed\n\n- **User deletion cleanup**: Deleting a user now also removes vacation policy assignments and entitlement snapshots, preventing orphaned policy/computation data."},"de":{"changelog":"### Behoben\n\n- **Zeitzonen-Konsistenz (Europe/Berlin)**: Server-/PHP-Zeitzone für ArbeitszeitCheck auf Deutschland ausgerichtet; neue Migration `Version1015Date20260415120000` konvertiert bestehende UTC-DATETIME-Werte in App-Tabellen nach `Europe/Berlin` und setzt `app_timezone` explizit.\n- **Ausstempeln-Semantik korrigiert**: `clockOut()` finalisiert Einträge nun zuverlässig mit `end_time` und `status=completed` (statt `paused` ohne Endzeit). Dadurch sind Exporte/Reports wieder vollständig und konsistent.\n- **Historische Pausiert-Einträge repariert**: Migration schließt verwaiste Einträge mit `status=paused` und `end_time IS NULL` automatisch über `end_time = updated_at` und Statuswechsel auf `completed`.\n- **Mehrfach-Pausen ohne Datenverlust**: Beim Start einer weiteren Pause wird die zuvor abgeschlossene Pause zuerst in `breaks` (JSON) archiviert; Break-Dauern bleiben vollständig für ArbZG-Prüfungen erhalten.\n- **Break-Status-Berechnung korrigiert**: `getBreakStatus()` zählt aktive Sitzungszeit nicht mehr doppelt; Warnstufen und Restpausen-Hinweise sind wieder korrekt.\n- **Export-Spalten korrigiert**: `duration_hours` liefert jetzt Brutto-Dauer (Wall-Clock), `working_hours` Netto-Arbeitszeit (abzgl. Pausen). Vorher waren beide Spalten identisch.\n\n### Geändert\n\n- **Export-Transparenz**: CSV/JSON-Exporte enthalten jetzt explizite Zeitzonen-Metadaten (`timezone`, `exported_at`), damit nachgelagerte Systeme die Uhrzeiten eindeutig interpretieren.\n- **UI-Klarheit**: Dashboard zeigt sichtbaren Zeitzonen-Hinweis (`Europe/Berlin (MEZ/MESZ)`), Export-Hinweis auf der Zeiteintragsseite nennt die verwendete Zeitzone.\n- **Bediensicherheit**: Vor `Clock Out` erscheint eine Bestätigungsabfrage mit klarer Abgrenzung zwischen „Pause starten“ und „Ausstempeln“.\n- **Admin-Transparenz**: In den Admin-Einstellungen wird die konfigurierte Zeitzone sichtbar angezeigt."}},"signatureDigest":"sha512"},{"version":"1.1.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.6/arbeitszeitcheck-1.1.6.tar.gz","created":"2026-03-27T18:08:59.861720Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-27T18:08:59.961900Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"hE0UvSaJEnunYMHOd5u3aR+5MyAg2Pl78l3t75Fx494nh6CzImBfoaswZXb9agJ6Iz1orktgFsKlTqfZoSGNxuZHRiRjcbtC+LsLLQsjONX5i5UOXK6crz87+6TEDAPkgdr318s+w9qHvTic2kdcdx+rpqbBSMIAgU/GuVZjyp4wtCV2Ti9VFR1pFzAlmH95b6WVCQCdTYmWs7LsLY//midoEYCd8JXSicLvr2nobqTL/soYZdR/39931AgpiUO5B9Rd0Wo7NVhk8C59bmlNqkLa8UDZHTZ/Eseks/njP9CdRsgdaUiqIm3libscOPzoFg2abyJpIZUV/nV8acOq8dh/XNNVRuLxxHs5v5FcByrnuxE4G1IbyC/FtB1KFRQlGF+rwwSEzBKdkNCdH5zbJ//gEgRfjZJb/Ijtma9+14jeRub/oLHQx0Mkh27aVMBPbqDI8LeuOLWo4Gbd4RXFknth02gSZpk1/Ko4uE90R44RcO2YUS58qvKQkickIoDEQId9w55FIEyP7LIAZa2bXl9qYZAA+CHCwixsBKi3a+yADg/wWaN4roVQ4LobTjp1adPOOVWbTHSemHRgEsqpboMxRXcrRWan8pNiQrnvTbJwIu9i3Q6zgHtHXe6RviFMzwiMJQTdvLhhHuANr9Lt04cCZjPS2dWfjGCZKVfo7hM=","translations":{"en":{"changelog":"### Added\n\n- **Development tooling**: `occ arbeitszeitcheck:generate-test-data` CLI for deterministic demo data (time entries, absences, optional violations, demo app team) to exercise UI, reports, and workflows locally.\n\n### Fixed\n\n- **Reports UI**: Report type cards are no longer incorrectly disabled when a team-related scope is selected (team scopes still use the team report API where applicable).\n- **Reports (tests)**: Team report CSV download test now reads download bodies via `DataDownloadResponse::render()` (Nextcloud API).\n- **Team reports**: Deduplicate user IDs before permission checks and aggregation to avoid double-counting when users appear in multiple teams.\n- **Absence type badges**: Stronger, theme-safe contrast for vacation / sick / home office / other badges (readable on pale Nextcloud palettes).\n\n### Changed\n\n- **Compatibility (dev)**: Local development stacks aligned with Nextcloud 33.x (example: official `nextcloud` Docker image).\n- **Reports layout**: Reverted an overly aggressive “full width” parameter form rule that could interfere with scrolling/layout on the reports page."},"de":{"changelog":"### Hinzugefügt\n\n- **Entwicklung**: CLI `occ arbeitszeitcheck:generate-test-data` für deterministische Demo-Daten (Zeiteinträge, Abwesenheiten, optional Verstöße, Demo-App-Team) zum Testen von UI, Berichten und Workflows.\n\n### Behoben\n\n- **Berichte-UI**: Berichtstyp-Karten werden bei teambezogenem Scope nicht mehr fälschlich deaktiviert.\n- **Berichte (Tests)**: CSV-Download-Test nutzt `DataDownloadResponse::render()` für den Dateiinhalt.\n- **Team-Berichte**: Nutzer-IDs werden vor Berechtigungsprüfung und Aggregation dedupliziert (keine Doppelzählung bei Mehrfach-Teams).\n- **Abwesenheits-Badges**: Besser lesbare, theme-sichere Kontraste für Urlaub / Krank / Homeoffice / Sonstiges.\n\n### Geändert\n\n- **Kompatibilität (Dev)**: Lokale Entwicklungsumgebungen an Nextcloud 33.x ausgerichtet (z. B. offizielles `nextcloud`-Docker-Image).\n- **Berichte-Layout**: Zu aggressive Vollbreiten-Regel für das Parameterformular zurückgenommen (verbessert Scroll/Layout)."}},"signatureDigest":"sha512"},{"version":"1.1.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.5/arbeitszeitcheck.tar.gz","created":"2026-03-26T18:57:25.845723Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-26T18:57:25.906740Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"dkvj+LT0qxzHO59iXnzyYCXDEgfS9OMri9yD8QWcQqS/VPzNKFBHIHDqX/2JmnEuQFM6sKf+jyx0QORDIAC4h2XiZoUlJe+MHgZQGGqa/mA/SGFQtwzlxWw2A4Drm1ioGkOIwhGo5Ny0zIogawfyhPtDQX7Mjj2K9x5+OSHQKtQs8LGRiyy7EsVJUC4fWworktCvuqRYpvR+rY2GfSu0CcWWZVItcEYqAfDFl3UvmWag299QrF1g7SOVY1EcoDH2B+O2mOwXwj6JjWNhz4iUkdcbkthaHPwZ12cUTOYLOtopIILuRTdlXiYWqYvLn24yZUObqmS0LbNcyzAF8gF8LDOmp08FxRCo6NY4L9HJcvgaR4qDkOpiC1aj/9FK8LmRnmdOvH9FHIqr2P6eBP4uoetMWoMbW3QAqvizVMDYPe96Qj1m/Cwp2ogV5+D0JOt1Ms02LGHZ3pcBp0vojoUu52pdP+dXL1d0ZN4rzSPEVQboJllQz4dyahtQ55l2EuDdk6VVf35oOPFLt5HqIF84tFYbY4moxafMunMI2lSWeRj0jCxApnTcrjuWDRuG8Q/fv3Za2gtkSsx9XNLPAb6YNOrgKFEeZRtSIp7L2V6shwxn9H4PG2uETboUm44RWkoZO+JZFtNTTlZpij4B5mRvo/OamgruxwI6YgplBQXObSw=","translations":{"en":{"changelog":"### Fixed\n- **Admin settings API URL handling**: Prevented duplicate `index.php/index.php` path generation when a route URL is already pre-generated by Nextcloud.\n- **Frontend error handling**: Avoided unhandled Promise rejections in callback-based `Utils.ajax()` consumers after expected API failures."},"de":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.4/arbeitszeitcheck.tar.gz","created":"2026-03-25T10:38:31.871774Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-26T18:40:56.289576Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"B+kiXQiNbiYsWVOlB3wiTffKZj021JMzAUzhQRYuwQmpszoGICQ7cCChEeggNXAMuOsRrPkznqB190jArt5Sfp7zKL5I3Z7IjyH6ur4aAqf6Tddq93/6Vb4W4ud9G30AJhkh3X0PBZ98bcOPcrxiaMrOqHryaIkcQ0os1pJnCAZ5v/zmUZGz/rVHxc0VNUGGvJZnx8Odwgd0r9z3McM4r9LL7n9+CrwtDMOVS/fUwAapkdaqM381pkLCa5BHM8VJd+ARz7Tt8rPVuVBwXDR9pkq38eoD9tQ61QVbCqrfsf4/8LgcbNlrHjWVRrAtUirX38JlJgFBKvmzaORvsgylNFggcrZ7sIx4o29kPPkFWZaUee0TKI/uc3WlThNIj/i4+sVTZ2Um23cfon/wr/sHByJIMOsFrw60s6RPm/XjAxeTnJbrm61ms9a0kKTodDR7puH0guqBQJX/CTJUQxcoPmKcfVqqblI2Ll/efOzi/BHYEEuiMGRVfYmuwtlALuFODD8ALFhf8EYmnB2EyCTLJwR+1bSUQF6/a/p4PP9cVSRKDbfYY3rpSU/QXbM3XTn3fET1dqE98FWEqPK6iNKdoMrcsZ4gkKNMNYKpAjMB9kbemHOVPNCIDVTIkYsVQO/edieH4N3EPouwzLWCvQVqWpb8h7SPbTslAhg45WtVByU=","translations":{"en":{"changelog":"### Fixed\n- **Routing/compatibility**: Added `indexApi()` compatibility aliases for legacy endpoints to prevent 500 errors in the Nextcloud log.\n- **PHP fatal errors**: Fixed constructor signature issues in `AbsenceService` and `ComplianceService` that could crash the app when loading services or saving settings.\n- **Reports security hardening**: Hardened report preview endpoints with `start <= end` validation and a maximum date-range limit to reduce DoS risk from untrusted parameters.\n- **Admin “whole organization” scope**: Correctly handle admin organization scope (`userId=\"\"` = all enabled users) and enforce access checks so preview/download data stays consistent.\n- **Reports rendering**: Improved Preview rendering for **absence** and **compliance** reports to match the actual report data structure.\n\n### Changed\n- **Reports UI semantics**: Team scope is limited to the team overview/export semantics that the backend actually returns (prevents misleading previews/downloads).\n- **Organization download guidance**: Added explicit UI messaging for organization scope download limitations until organization-wide export endpoints are implemented."},"de":{"changelog":"### Behoben\n- **Routing/Kompatibilität**: `indexApi()`-Kompatibilitätsaliases für Legacy-Endpunkte ergänzt, um 500-Fehler in den Nextcloud-Logs zu verhindern.\n- **PHP-Fatals**: Konstruktor-Signaturprobleme in `AbsenceService` und `ComplianceService` behoben (konnte die App beim Laden von Services oder beim Speichern von Einstellungen zum Absturz bringen).\n- **Reports-Sicherheit**: Vorschau-Endpunkte gehärtet (`start <= end` Validierung + maximale Zeitraumbegrenzung) um DoS-Risiken durch untrusted Parameter zu reduzieren.\n- **Admin-“Gesamte Organisation”**: Admin-Organisation-Scope korrekt verarbeitet (`userId=\"\"` = alle aktivierten Nutzer) inklusive passender Zugriffsprüfung, damit Preview/Download konsistent bleiben.\n- **Reports-Rendering**: Preview-Darstellung für **Abwesenheiten** und **Compliance** verbessert, sodass sie zur tatsächlichen Ergebnisstruktur passt.\n\n### Geändert\n- **Reports-UI-Semantik**: Team-Scope auf Team-Overview-/Export-Semantik eingeschränkt (verhindert irreführende Preview/Downloads).\n- **Organisation-Download Hinweis**: UI-Hinweis ergänzt, dass Organisation-Download erst vollständig unterstützt ist, sobald dedizierte Organization-Export-Endpunkte verfügbar sind."}},"signatureDigest":"sha512"},{"version":"1.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.3/arbeitszeitcheck.tar.gz","created":"2026-03-14T15:13:16.710916Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-19T14:41:35.403746Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"Pf3DfgKP/j8T95ElL4ORpuPFeD3UHt901udriCVI1yQdyRJDTp5Z8tHcaFpLRjjmjW8c1nFIEjrFVTjl5UNnPTTWzwf1+Woci/TtIHa7lDkMftxjIIVMf7khRJ6NGriUQD1WVS6Hqdi+FWafgnIqn7dO728K+lB3rFSlgoCoQgQpjjJ/D+N5yynIi44wiD7F8PngozN58wUdWoW02zBX3W+ndpEZXmrY2srqPndhBrlg4cOrE8cWSUFe9wtwSaopkDZPSl85Wsg7nwDOJGV1JaFzDdBxyHATs3kxJnsntXePI1j/O8bcWR69o45JkDY458TsiA0qweFMx5A3Ioh5K0Rrp4UQREthUP83sEzQCIo9ztzB3oeFr1sAs+/dfauAPLsHWNG3NO70fZ82RnsRKuhklTbL8RQ6gc2a3rqrOLSPypyLsv6+UxyoKwm41cggNl4UnhyUhoa33IjBiEoZDXTfB2d+fNZoTXkOYZdDTKcC9bNMc+mo8guNkTxqAYw8Ian0V7vmLs0uBJ9JYyyy5k8AUd+8ijMokWm/2VKPCbDga4mmZevp3KqSpVOqXYBJXmMzJH2Vf+LXZYjRHTScFQ92bXVz7VRRNoz+LEtZy4QYIT9u+YCIvu7ddT5RZmA08HIWU52W/jWQQiKraZE/Nw8Ks4VQBfB6TX+wDCGadBs=","translations":{"en":{"changelog":"### Fixed\n\n- **ArbZG compliance**: Corrected break check logic (9h/45min branch now reachable; check ≥9h before ≥6h)\n- **Manager logic**: `employeeHasManager()` now uses `getManagerIdsForEmployee()` instead of `getColleagueIds()`\n- **Reporting**: `getTeamHoursSummary()` respects period parameter (week/month)\n- **Admin users**: `hasTimeEntriesToday` is now per-user, not system-wide\n- **UserSettingsMapper**: Fixed falsy zero/empty-string handling in getIntegerSetting, getFloatSetting, getStringSetting\n- **Routing**: Moved exportUsers route above getUser to fix route shadowing\n- **Version1009 migration**: Replaced MySQL backtick SQL with portable QueryBuilder; use OCP\\DB\\Types\n- **Duplicate notifier**: Removed double registration from Application.php boot()\n- **API security**: Generic error messages instead of raw exception output (SubstituteController, GdprController)\n- **PDF export**: Returns HTTP 422 with clear message instead of silent CSV fallback\n- **LIKE injection**: WorkingTimeModelMapper::searchByName() uses escapeLikeParameter()\n- **XSS**: Modal titles escaped in components.js; compliance-violations.js innerHTML escaped\n- **Admin-settings form**: Added CSRF requesttoken\n- **AbsenceService DI**: Fixed constructor argument order (IDBConnection)\n- Admin holidays and settings: English source strings for l10n keys\n- UserDeletedListener: inject TeamMemberMapper and TeamManagerMapper\n- XSS: sanitise team names in admin-teams.js\n\n### Changed\n\n- **CSS**: Shadow-light variable, scoped resets, dark-mode color-mix fixes, semantic color variables, navigation height/z-index\n- **Clock buttons**: Double-submit guard (disabled during API calls)\n- **initTimeline()**: Max retry count (20) to prevent infinite loop\n- **Accessibility**: aria-label on header buttons, label for admin user search, aria-modal on welcome dialog, English l10n keys in navigation\n- **Docs**: Removed internal docs; added docs/README; corrected repo URLs\n- **Manager dashboard**: Injected l10n from PHP so JS translations work\n- Constants.php for magic numbers; user-facing error messages\n\n### Added\n\n- **Version1010 migration**: Compound indices on at_entries, at_violations, at_holidays, at_absences"},"de":{"changelog":"### Behoben\n- **ArbZG-Compliance**: Pausenprüfung korrigiert (9h/45min-Zweig erreichbar; Prüfung ≥9h vor ≥6h)\n- **Manager-Logik**: `employeeHasManager()` nutzt nun `getManagerIdsForEmployee()` statt `getColleagueIds()`\n- **Berichte**: `getTeamHoursSummary()` berücksichtigt Periodenparameter (Woche/Monat)\n- **Admin-Benutzer**: `hasTimeEntriesToday` pro Benutzer statt systemweit\n- **UserSettingsMapper**: Falsy-Null/Leerstring-Behandlung in getIntegerSetting, getFloatSetting, getStringSetting\n- **Routing**: exportUsers-Route vor getUser verschoben (Shadowing behoben)\n- **Version1009-Migration**: MySQL-Backticks durch portablen QueryBuilder ersetzt; OCP\\DB\\Types\n- **Doppelte Notifier-Registrierung**: Aus Application.php boot() entfernt\n- **API-Sicherheit**: Generische Fehlermeldungen statt roher Exceptions (SubstituteController, GdprController)\n- **PDF-Export**: HTTP 422 mit klarer Meldung statt stillem CSV-Fallback\n- **LIKE-Injection**: WorkingTimeModelMapper::searchByName() verwendet escapeLikeParameter()\n- **XSS**: Modal-Titel in components.js escaped; compliance-violations.js innerHTML escaped\n- **Admin-Einstellungen**: CSRF-requesttoken ergänzt\n- **AbsenceService DI**: Konstruktorargument-Reihenfolge (IDBConnection) korrigiert\n- Admin-Feiertage und -Einstellungen: englische Quellstrings für l10n\n- UserDeletedListener: TeamMemberMapper und TeamManagerMapper per Injection\n- XSS: Team-Namen in admin-teams.js bereinigt\n\n### Geändert\n- **CSS**: Shadow-Light-Variable, scopierte Resets, Dark-Mode color-mix, semantische Farben, Navigationshöhe/z-index\n- **Uhr-Buttons**: Doppel-Submit-Guard (deaktiviert während API-Aufrufen)\n- **initTimeline()**: Max-Retry (20) gegen Endlosschleife\n- **Barrierefreiheit**: aria-label auf Header-Buttons, Label für Admin-Suche, aria-modal im Willkommens-Dialog, englische l10n-Keys in Navigation\n- **Dokumentation**: Interne Docs entfernt; docs/README ergänzt; Repo-URLs korrigiert\n- **Manager-Dashboard**: l10n von PHP an JS übergeben für Übersetzungen\n- Constants.php; benutzerfreundliche Fehlermeldungen\n- **Zeiteintrags-Export**: Optional (per Admin-Einstellung) können Einträge, die über Mitternacht laufen, im CSV/JSON-Export rein darstellungsbezogen in zwei Kalendertage segmentiert werden (vor/nach 00:00). Die zugrundeliegende Arbeitszeit- und ArbZG-Compliance-Berechnung bleibt unverändert auf Basis des originalen, unsplitteten Zeiteintrags.\n\n### Hinzugefügt\n- **Version1010-Migration**: Zusammengesetzte Indizes auf at_entries, at_violations, at_holidays, at_absences"}},"signatureDigest":"sha512"},{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.2/arbeitszeitcheck.tar.gz","created":"2026-03-10T22:27:01.709256Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-03-11T11:36:39.352861Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"VdOLtKkuJFOvqioRam3iZGmEiSQrA4Xc99thIdm97dMKFlfHskcRIG34rWiqftbbIh+6CgWWxu+YdQOLSV63qOtZ7rH/rl1x5hnhaR4GBDbTtnE/frmfTJYlpHlKVw9KSyniEEAE30lLl5tuYA/4myl+9N6abL+9oJpQo8nAY2oApVgdJQFHPvUPeaJ6q0Qb6GUkOTwZo/UgmT0cIqTL7Ymkvkp3OGE1nRr2hD+T5aFyXu0E3IfS5m+eete4Xdn5TcSYzWVB3oBdMxmRTUtracW4ar/ZstAIwsVxmrLcW4/2AgvUQrrAZ87EBNNoiekUF+nJogWpFeh1n6lN7ZbuUSQJaQtlquovukPbnOgO1AAFe3EMG2DmBtlbyn/jt8/DY5ql8VTDp62eKDJxYTodidjAQYkqMEve7XuTtPgrNwG9c4hFNYS5fIGz07ER4otxErRKC25d89ql/bkSDre0IZPw/gTgdEjx71iD/UZBf9b2tzhMKpNfdtlkT0BV1mNOa376kZzYOk9DcpAaOgobPK00gb3ZeeODGn29N8LEvEAI5SCoa1m7eT4B0KbMQNtgDEUNZrrvRf3Tzpb0mL2QUmf5i3sn10IjQ6KdTDor1xWFEYIF03M240Dw5ml/UUrDgvXI9WZ1BzgyNDe2HAVeNPb9akpPHUWYkoe+uOoaf7A=","translations":{"en":{"changelog":"### Changed\n\n- **Long-term refactor**: Replaced all `\\OC::$server` usage with proper OCP APIs and constructor injection\n- CSPService: Injected ContentSecurityPolicyNonceManager via constructor\n- Controllers: Removed manual cspNonce (configureCSP handles it); injected IURLGenerator, IConfig where needed\n- PageController: Injected IURLGenerator, IConfig; passes urlGenerator to templates\n- HealthController: Injected IDBConnection for database check\n- ProjectCheckIntegrationService: Injected LoggerInterface instead of OC::$server->getLogger()\n- Templates: Replaced `\\OC::$server` with `\\OCP\\Server::get()` (OCP public API)\n- Added GitHub Actions release workflow (`.github/workflows/release.yml`)\n- Updated PageControllerTest with full constructor mocks"},"de":{"changelog":"### Geändert\n- Langfristiges Refactoring: Ersetzung aller `\\OC::$server`-Verwendungen durch OCP-APIs und Konstruktor-Injection\n- CSPService: ContentSecurityPolicyNonceManager per Konstruktor injiziert\n- Controller: manuelles cspNonce entfernt (configureCSP übernimmt dies); IURLGenerator und IConfig injiziert, wo nötig\n- PageController: IURLGenerator und IConfig injiziert; übergibt urlGenerator an Templates\n- HealthController: IDBConnection für Datenbank-Check injiziert\n- ProjectCheckIntegrationService: LoggerInterface statt OC::$server->getLogger() injiziert\n- Templates: `\\OC::$server` durch `\\OCP\\Server::get()` (öffentliche OCP-API) ersetzt\n- GitHub-Actions-Release-Workflow hinzugefügt (`.github/workflows/release.yml`)\n- PageControllerTest mit vollständigen Konstruktor-Mocks aktualisiert"}},"signatureDigest":"sha512"},{"version":"1.1.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.1.14/arbeitszeitcheck-1.1.14.tar.gz","created":"2026-04-14T09:48:09.100925Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-14T09:48:09.155928Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"VBSDJh3veK9J7eUDKGFw/xB1ypmBQrjMDzamatQfncYem1qg9kNVWAnHDH+fGRlFJtrBH+fOu+MRTFZuK78DU/W18IQglCtTbsH4MdaHLHTwVz2JOxeGJWmx2p1yK0ulK0vbDgCLXQu5B8gR/L/JYRGFo0+FpwuRvxrpp1BWrX5m9mQLgoxn3hOj2r+F2m0wYdEDWhksF6VzLbHyr3pIT9hu6p1owuAZzr3Nqtva4tZK0WGgn8xa5bDwZqJdWSyQJ04JiCZisftYCOJz8HNfq6o4MFTLF0aQpYxUH8wf6gz5pkfUOKIemq4Ui8GqRr3Fxo/DW2APAk0GcwWyY8ypEiY2RNi6IkGv3K9p8mFamDxirDeurOX/hwNia1Lt4HCqzJATjWpmaCEAoBQWfOCgozI9o+h8cI9LhHp3LvK3VxFD/s9xjJPFLZ9y8b98hufe13Uq5/NYzqo2vQ1DgQXyCbRjsiMbqDvz+yyDmXM+JPV8U8gTKxTD8y19VoiVIlWhAsI/zBmxHC84G2htaCHBws47cGhmJVvQDXGz/1aae9J0of1bGoOIERyEFSOAzmUN9fcvdVbN+77wn70QQ1k7GQcw6jAEScIQq8Pt8n7pBTECeECk6K4baNfaTT2+kZKLCdD1mdaJII84B8+XXxmxIk+VI1sarNlMIvPAk3FQjww=","translations":{"en":{"changelog":"### Fixed\n\n- **Approver deadlock (app teams)**: Absence and time-entry correction workflows no longer treat “has colleagues” as “has a manager”. Auto-approval when **no assignable approver** exists now follows `TeamResolverService::hasAssignableManagerForEmployee()` (explicit team managers in app-teams mode; legacy group mode still uses colleagues as a proxy). Prevents requests stuck in “awaiting manager approval” when nobody can approve.\n- **Time entry corrections**: Same assignability rule as absences (previously used colleague IDs only).\n- **Admin users API requests on `/index.php` instances**: Refresh/edit/history/update actions now reliably resolve app URLs and no longer produce invalid requests like `search=[object PointerEvent]`.\n- **Admin teams and settings API reliability on rewrite-less setups**: Central URL resolution now includes a robust `/index.php` fallback when `OC.generateUrl()` is unavailable/incomplete in page context.\n\n### Added\n\n- **Repair step** `ReleaseStuckPendingAbsences`: post-migration repair auto-approves legacy `pending` absences that still match the “no assignable approver” condition (idempotent).\n- **Frontend URL security guardrails**: Shared AJAX layer now blocks external cross-origin calls by default (explicit `allowExternal: true` required), with unit tests covering URL normalization and external URL handling.\n- **Lint guardrails**: ESLint rules now prevent introducing raw `fetch('/apps/arbeitszeitcheck/...')` and implicit external `fetch(...)` patterns outside approved abstractions.\n\n### Changed\n\n- **UX**: Absences UI shows an informational callout when app teams are enabled and no approver is assigned; detail view shows a defensive warning if an old `pending` row is still stuck (until repair/admin fixes team setup).\n- **Frontend architecture**: `ArbeitszeitCheckUtils` now provides centralized `getRequestToken()`, `resolveUrl()`, and `isExternalUrl()` primitives used by page scripts (`admin-users`, `reports`, `settings`, `validation`).\n- **Mobile UX consistency (WCAG 2.1 AA focused)**: iPhone-safe-area-aware spacing, improved touch targets, clearer section rhythm, and better visual hierarchy for normal user pages (`dashboard`, `time-entries`, `absences`) and manager pages (`manager-dashboard`, `manager-time-entries`, employee absences view).\n\n### Documentation\n\n- User manuals (EN/DE), `tests/WORKFLOW_ROLE_MATRIX.md`, and developer documentation updated for assignable-manager semantics and repair step.\n- README and developer documentation updated with centralized frontend URL policy, strict external-call behavior, and mobile/iOS layout guidance."},"de":{"changelog":"### Behoben\n\n- **Genehmigungs-Deadlock (App-Teams)**: Abwesenheiten und Zeiteintrags-Korrekturen behandeln „hat Kolleg:innen“ nicht mehr wie „hat eine:n Vorgesetzte:n“. Auto-Genehmigung, wenn **kein zuweisbarer Genehmiger** existiert, folgt `TeamResolverService::hasAssignableManagerForEmployee()` (explizite Team-Manager bei App-Teams; Legacy-Gruppenmodus weiterhin Kollegen-Proxy). Verhindert Anträge, die dauerhaft auf Managerfreigabe warten, obwohl niemand freigeben darf.\n- **Zeiteintrags-Korrekturen**: Gleiche Zuweisbarkeitsregel wie bei Abwesenheiten (zuvor nur Kollegen-IDs).\n- **Admin-Users API auf `/index.php`-Instanzen**: Refresh/Edit/History/Update nutzen nun zuverlässig aufgelöste App-URLs; fehlerhafte Requests wie `search=[object PointerEvent]` treten nicht mehr auf.\n- **Admin-Teams und Settings auf Rewrite-losen Setups**: Zentrale URL-Auflösung enthält jetzt einen robusten `/index.php`-Fallback, wenn `OC.generateUrl()` im Seitenkontext fehlt oder unvollständig ist.\n\n### Hinzugefügt\n\n- **Repair-Schritt** `ReleaseStuckPendingAbsences`: setzt nach Migration verbliebene `pending`-Abwesenheiten unter derselben Bedingung automatisch auf genehmigt (idempotent).\n- **Frontend-URL-Sicherheitsleitplanken**: Die gemeinsame AJAX-Schicht blockiert externe Cross-Origin-Calls standardmäßig (explizit `allowExternal: true` nötig); Unit-Tests decken URL-Normalisierung und External-Handling ab.\n- **Lint-Leitplanken**: ESLint-Regeln verhindern neue rohe `fetch('/apps/arbeitszeitcheck/...')`-Aufrufe und implizite externe `fetch(...)`-Nutzung außerhalb der vorgesehenen Abstraktionen.\n\n### Geändert\n\n- **UX**: Abwesenheiten zeigen einen Hinweis, wenn App-Teams aktiv sind und kein Genehmiger zugeordnet ist; in der Detailansicht erscheint bei veralteten hängenden Anträgen ein Warnhinweis (bis Repair/Admin die Teamkonfiguration korrigiert).\n- **Frontend-Architektur**: `ArbeitszeitCheckUtils` stellt nun zentral `getRequestToken()`, `resolveUrl()` und `isExternalUrl()` bereit; genutzt u. a. in `admin-users`, `reports`, `settings` und `validation`.\n- **Mobile UX Konsistenz (WCAG 2.1 AA)**: iPhone-Safe-Area-konforme Abstände, bessere Touch-Targets, klarere Abschnittsstruktur und visuelle Hierarchie für Nutzerseiten (`dashboard`, `time-entries`, `absences`) sowie Managerseiten (`manager-dashboard`, `manager-time-entries`, Mitarbeiter-Abwesenheiten).\n\n### Dokumentation\n\n- Nutzerhandbücher (EN/DE), `tests/WORKFLOW_ROLE_MATRIX.md` und Entwicklerdokumentation zur Semantik „zuweisbarer Manager“ und zum Repair-Schritt ergänzt.\n- README und Entwicklerdokumentation um zentrale Frontend-URL-Policy, striktes External-Call-Verhalten und Mobile/iOS-Layout-Hinweise ergänzt."}},"signatureDigest":"sha512"},{"version":"1.1.13","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.1.13/arbeitszeitcheck-1.1.13.tar.gz","created":"2026-04-13T10:46:21.328756Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-13T10:46:21.426863Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"ol/yHOgiMCOj+yYqb8HC0g5laqPih/kTTbBB12bDawwgGQGVdx+GCBNaSmM8Sgu2jRB6PJWwnF1qFQQ6MIHWCjFzuOQeyL+sDEGH0VhI/qgbCmyRKZnBKAyUq9BBrxux3zaI6cN6QD76nP27UCU4C/OxW87nybYxy4WqqdOSOR0Af9QMkUg/VZLhRatpageqRGkYSFl+3ZwEg8qhlpDyLH3lh3xSG6+tQsyy9yU4La+XDiZ63lG2yF1RWHQ1/irb+dRrPEs/I1wuLvdZL+6olqx7MTogIylUqrJyux7ycTUrC/sxTBsZYJUQ2vGFyGzO30qARQ+KSOJtai5Upcx7WZxHv98eS0X3FGI0QUhC2NwIE2ahn0mfH/YjuRW5wBn9nsDG03KPpDaMATyvxTD8BbzGTM9ziuMKfOzd2HfYxMWDX/GF4LWM/eXpqsO7E2veMjtIClAcMI6vZhJKVV4mxXHxMkFIdvTbaFmPrWEAhFRoI+0NHQ4y3ec+goBucU+E4gHCyicVOT0T4n3NH6U+nOs+95d5cSA85Dz+LF7ZLLYU/rxi1ybC36fVg8igg+P8YvH555KQNizrYNJ2xdglmirJcs0XcEwZ8/hVrWfzuLUgKbMNXlqa2dgRzMnfOy9b5bNUPez9FKsqEqAc66dUr9JnDiR+poFgQBlCAnZ7vbw=","translations":{"en":{"changelog":"### Added\n\n- **Month closure grace period and auto-finalization**: Admin setting `month_closure_grace_days_after_eom` (0–90, default 0). After end-of-month, employees have that many calendar days to finalize manually; if the month is still open afterward, a daily background job finalizes it automatically (same snapshot as manual finalize). Pending time entry approvals and open absence workflow states block auto-finalization. Reopening remains admin-only.\n- **App-admin allowlist**: New admin setting `app_admin_user_ids` to restrict ArbeitszeitCheck administration to a selected subset of Nextcloud admins. Empty selection keeps backward-compatible behavior (all Nextcloud admins can administer the app).\n- **Security role-gating Docker test target**: Added `scripts/test-security-role-gating-docker.sh` wiring via `make test-security-role-gating-docker` and `composer test:security-role-gating:docker` for fast authorization regression checks in containerized setups.\n\n### Changed\n\n- **Month closure UX and API**: Employee UI uses a clearer card layout, visible feedback for success/errors (WCAG-friendly), server-driven `canFinalize` with localized block reasons (feature off, future month, pending approvals). Manual finalize rejects future calendar months. Absence workflow (`pending`, `substitute_pending`, `substitute_declined`) is enforced alongside pending time entry corrections. Unauthorized API access returns 401 where appropriate. Admin settings: dedicated “Month closure” section; grace-days field stays editable with copy explaining it is saved even when closure is off; reopen uses searchable employee picker and clearer administrator vs. employee wording. Form validation error callouts use higher-contrast text and tinted surfaces across themes. Auto-finalize job logs per-user failures for operations.\n- **Release/signing workflow hardened for integrity checks**: `make release-signed` now signs the extracted release archive payload (not the local development checkout), validates forbidden development paths are excluded, and repacks the signed archive for deployment/App Store upload.\n- **Admin authorization enforcement**: Access to `AdminController` routes now uses middleware-level app-admin checks with a dedicated exception and a consistent 403 response page for authenticated users without app-admin rights.\n\n### Documentation\n\n- **Deployment guidance**: Release docs now explicitly require production deployment from the signed tarball only and document the common integrity-failure pattern (`.git/*` / `node_modules/*` lists) caused by signing a dev tree.\n- **Deployment helper script**: Added `release/deploy-from-release.sh` to deploy from signed release archives with safety checks (forbidden path scan, required `signature.json`, optional app disable/enable and `occ integrity:check-app`).\n- **Admin operations**: User/developer docs now describe how to configure app-admin allowlisting, what the default fallback is, and how to verify authorization gating in Docker-based test runs."},"de":{"changelog":"### Hinzugefügt\n\n- **Monatsabschluss: Karenz und Auto-Finalisierung**: Admin-Einstellung `month_closure_grace_days_after_eom` (0–90, Standard 0). Nach Monatsende haben Mitarbeitende so viele Kalendertage zur manuellen Finalisierung; ist der Monat danach noch offen, finalisiert ein täglicher Hintergrundauftrag automatisch (gleicher Snapshot wie manuell). Ausstehende Zeiteintragsfreigaben und offene Abwesenheits-Workflows blockieren die Auto-Finalisierung. Wiederöffnen bleibt Administrator:innen vorbehalten.\n- **App-Admin-Whitelist**: Neue Admin-Einstellung `app_admin_user_ids`, um die Administration von ArbeitszeitCheck auf eine ausgewählte Teilmenge der Nextcloud-Admins zu begrenzen. Leere Auswahl bleibt rückwärtskompatibel (alle Nextcloud-Admins dürfen die App verwalten).\n- **Docker-Testziel für Security-Role-Gating**: Verdrahtung von `scripts/test-security-role-gating-docker.sh` über `make test-security-role-gating-docker` und `composer test:security-role-gating:docker` für schnelle Autorisierungs-Regressionstests im Container-Setup.\n\n### Geändert\n\n- **Monatsabschluss UX/API**: Klarere Karten-UI, sichtbares Erfolgs-/Fehlerfeedback (WCAG), serverseitiges `canFinalize` mit lokalisierten Sperrgründen; manuelle Finalisierung lehnt zukünftige Kalendermonate ab; Abwesenheits-Workflow (`pending`, `substitute_pending`, `substitute_declined`) zusätzlich zu ausstehenden Zeiteintragskorrekturen; API 401 bei fehlender Anmeldung wo passend; Admin: eigener Abschnitt „Monatsabschluss“; Karenzfeld bleibt editierbar mit Hinweis, dass der Wert gespeichert wird und bei aktivierter Funktion gilt; Wiederöffnen mit durchsuchbarer Mitarbeitenden-Auswahl und klarerer Rollenbeschreibung; Validierungsfehler mit höherem Kontrast über Themes hinweg. Auto-Finalize protokolliert Einzelfehler.\n- **Release-/Signatur-Workflow für Integritätsprüfung gehärtet**: `make release-signed` signiert jetzt den entpackten Release-Archivinhalt (nicht den lokalen Entwicklungs-Checkout), prüft verbotene Entwicklungs-Pfade und packt das signierte Archiv für Deployment/App-Store neu.\n- **Admin-Autorisierung zentral erzwungen**: Zugriffe auf `AdminController`-Routen werden jetzt per Middleware auf App-Admin-Rechte geprüft; nicht berechtigte angemeldete Nutzer erhalten eine konsistente 403-Seite.\n\n### Dokumentation\n\n- **Deployment-Hinweise ergänzt**: Die Release-Dokumentation fordert nun explizit das Deployment aus dem signierten Tarball und beschreibt das typische Fehlerbild (`.git/*` / `node_modules/*`) bei versehentlicher Signierung eines Dev-Trees.\n- **Deployment-Helferskript**: `release/deploy-from-release.sh` hinzugefügt für Deployment aus signierten Release-Archiven mit Sicherheitsprüfungen (verbotene Pfade, erforderliche `signature.json`, optionales Disable/Enable und `occ integrity:check-app`).\n- **Admin-Betrieb**: Nutzer-/Entwicklerdokumentation ergänzt um Einrichtung der App-Admin-Whitelist, Rückfallverhalten bei leerer Auswahl und Verifikation des Role-Gatings im Docker-Testlauf."}},"signatureDigest":"sha512"},{"version":"1.1.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.1.12/arbeitszeitcheck-1.1.12.tar.gz","created":"2026-04-12T16:25:44.732170Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-12T16:25:44.830591Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"0mCLz3x6v/VzKxsK9I8J3HAMtz+lr9Z43v3UN+tH4hZeZLXvuXWayTxLB6EYKXXnNSfkvF5KMiYJqh3LJHUCTcPUgGfPqNDwCkkTK51T0cmghwWPQylVIe9L6My8a2Pu0sVCrG5P0Ev5t7wdLQNMSxKcHYKXYT7B2QvQG+ljdNKr1/ywfXDEpIg4yzCMnxVdfGIBiUNl4vUIYOXCNt30fUXiRCXHfl381LcA2Bv9ZP+Ddxk+qEpa1iuujWcRg6o32YRCESwDAO2IoXKEvLy16btLtNQd7wL+E6lhCfgST/jp+rWPxh4RSJ8kBlyaBYo8LqvhvMRpGqhYfNOJZTrq0BnKQZfjc1qnAcIHMDFjBfUwi8tp0/bmxOnXmMMFZZtGf6rGLUYinb470whWKydzhIib2K2kSTN9GrRvjmp+osUh9/qAlBzN5wRutIBewKqM8SkwJ52dYiYWU5jAyf3fVxXqRJs970WUccI7udQ8A7J9XqkmCRUBvl46mPugz0K481/X6cKHiZBK9681njxRWorGVGHpCiz92T+Ug2W+bRIBYLBM0oqPd9Dp2rXQ5+UFLDTC9eDG8WP3VVxsK7d5xtK/xWC1fSHy4c7Mgp8WAVITY1eU9ftn1tS8BHZxcgz7EvgtPmamoKwb55KKFTxQu4c6khCWaZ2pPQvXQjxtrNw=","translations":{"en":{"changelog":"### Added\n\n- **Revision-safe month finalization (optional)**: Admin toggle `month_closure_enabled` (default off). Employees can finalize a full calendar month; the app stores a canonical JSON snapshot, SHA-256 hash chain, append-only revision rows, audit events, and a minimal PDF download. Finalized months are read-only through normal app APIs; administrators may reopen a month with a mandatory reason (audit). Monthly reports for a finalized month use the stored snapshot. Database: `at_month_closure`, `at_month_closure_revision` (migration `Version1014Date20260409120000`).\n\n### Documentation\n\n- User manuals (EN/DE), developer documentation, and compliance notes updated for month closure, retention context, and limits (in-app tamper evidence, not QES)."},"de":{"changelog":"### Hinzugefügt\n\n- **Revisionssichere Monatsfinalisierung (optional)**: Admin-Schalter `month_closure_enabled` (Standard aus). Mitarbeitende können einen vollen Kalendermonat finalisieren; die App speichert kanonischen JSON-Snapshot, SHA-256-Hashkette, Anhänge-Revisionen, Audit-Ereignisse und ein schlankes PDF. Finalisierte Monate sind über normale App-APIs nicht mehr änderbar; Administrator:innen können einen Monat mit Pflichtbegründung wieder öffnen (Audit). Monatsberichte für finalisierte Monate lesen den gespeicherten Snapshot. Datenbank: `at_month_closure`, `at_month_closure_revision` (Migration `Version1014Date20260409120000`).\n\n### Dokumentation\n\n- Nutzerhandbücher (DE/EN), Entwicklerdokumentation und Compliance-Hinweise zu Monatsabschluss, Aufbewahrung und Grenzen (Nachweis in der App, keine QES) ergänzt."}},"signatureDigest":"sha512"},{"version":"1.1.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.1.11/arbeitszeitcheck-1.1.11.tar.gz","created":"2026-04-09T14:45:43.961166Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-09T14:45:44.041401Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"HwGRZcCLjb/plcL+LoYgcSBNEXoLoZU2DlOb7pcOx6X41OU6v9SkdO5YXOynEBr7kmViQeQzJfLyTUTRSfcqLlz4jC8KL7Xmaa7rImQ0EGSVpaBmmUuHC0MWlrhWWMEkG52smtFFalq0GZy0wLhcHRc6BtqCzilQLju2jS5SR6GTPWutj0i9LsbKsB6LFzkbc9cAbtcRCUjzx9A2oU/EAA1BhRBlyQTvR/OLyDa2FU/CBNWrm3I9293E+D9UP9gMBhKvSH5f1DXF/TpwiCEzYB/NRR0KBXvQb30whbv6O/WJfCEs9z1+wryRvNfGjT0+9X4C3tPtLTpyh7noU7NK7VzS0Cl0/TbACvlEY8yk9I+UPbNYA9jUiNny2JpAh6syrFE3k2RrhIpiJ9iLwqKgUYN2rlx6LFtqWP1NlIExC97DdmCTt1YRTyeDzi/NrZuGKHl5JBtCJWZalX6KwxjJd4oBrxoy1+i/2BLSpjoUlvPQ2FHPlqdtHWcIqryrVzmV+8ZJyxmo5EVJR6bmGESQjUovJ70j5KIltEg1OM/5MAyJ9hkIBJxjXiLTvocREbYOdoicChFs9aQFbDX0VN3BD4q6FNSiV5UXRsbzo57lxa4n51hB3tjoQAJ+rBlmMyVez7u1zNj+5X6lrvn7b5/5UQg2oHpaR8Hz1iPPou7E/GA=","translations":{"en":{"changelog":"### Added\n\n- **Manager employee absences view**: New in-app page and API for managers/admins to review employee absences with secure scope filtering, pagination, and localized status labels.\n- **Working time model copy flow**: Added copy action with modal UX, unique default naming, and safeguards against duplicate submits.\n\n### Changed\n\n- **Manager navigation structure**: Sidebar regrouped into clearer manager/admin submenus; reports moved under manager context; compliance link placement adjusted for reduced top-level clutter.\n- **Manager employee time entries UX**: Date defaults and formatting/translation handling improved for clearer filtering behavior.\n- **Calendar behavior (rollback cleanup)**: Removed in-progress direct calendar-write functionality and related admin controls/status/test endpoints. The supported behavior remains unchanged: no Nextcloud Calendar app sync; optional `.ics` attachments are sent by email for configured absence workflows.\n\n### Fixed\n\n- **Working time model modals**: Corrected copy modal interaction flow, source-model presentation, and delete-confirmation localization/rendering issues.\n- **Absence iCal hardening**: Added stricter status/date guards, recipient deduplication, and privacy-safe event descriptions for substitute/manager recipients.\n\n### Documentation\n\n- User manuals and changelogs updated to reflect the final calendar model (email `.ics` optional, no direct Nextcloud Calendar app sync) and current manager/admin UX structure."},"de":{"changelog":"### Hinzugefügt\n\n- **Manager-Ansicht „Mitarbeiter-Abwesenheiten“**: Neue In-App-Seite und API für Manager/Admins zur Einsicht von Abwesenheiten mit sicherer Bereichsfilterung, Pagination und lokalisierten Statusbezeichnungen.\n- **Kopierfunktion für Arbeitszeitmodelle**: Neue Kopieraktion mit Modal-UX, eindeutiger Namensvorschlag-Logik und Schutz gegen Doppelklicks.\n\n### Geändert\n\n- **Manager-Navigation / Sidebar**: Struktur in klarere Manager-/Admin-Untermenüs überführt; Berichte in den Manager-Kontext verschoben; Compliance-Link zur besseren Übersicht umgruppiert.\n- **UX Mitarbeiter-Zeiteinträge (Manager)**: Standard-Datumswerte sowie Datums-/Übersetzungsdarstellung im Filterfluss verbessert.\n- **Kalender-Verhalten (Rollback-Bereinigung)**: Angefangene Funktionalität für direkte Kalendereinträge sowie zugehörige Admin-Optionen/Status/Test-Endpunkte wurde entfernt. Das unterstützte Verhalten bleibt unverändert: keine Synchronisation mit der Nextcloud-Kalender-App; optionale `.ics`-Anhänge werden weiterhin per E-Mail in den konfigurierten Abwesenheits-Workflows versendet.\n\n### Behoben\n\n- **Arbeitszeitmodell-Modaldialoge**: Interaktionsprobleme im Kopier-Modal, Darstellung des Quellmodells sowie Lokalisierung/Formatierung im Lösch-Dialog korrigiert.\n- **Abwesenheits-iCal-Härtung**: Strengere Status-/Datumsprüfungen, Empfänger-Deduplizierung und datenschutzärmere Beschreibungen für Vertretung/Manager ergänzt.\n\n### Dokumentation\n\n- Nutzerhandbücher und Changelogs an das finale Kalenderverhalten (optionale `.ics`-Mail, keine direkte Kalender-App-Synchronisation) sowie die aktuelle Manager/Admin-UX-Struktur angepasst."}},"signatureDigest":"sha512"},{"version":"1.1.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/releases/download/v1.1.10/arbeitszeitcheck-1.1.10.tar.gz","created":"2026-04-07T19:49:40.929193Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-04-07T19:49:40.997354Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=32 <=36","signature":"kmFxrMFQus0US44BSrw/0eOzjGU8zutOf6Q4Dqcc/39RNDiCiQOKB55We29dsKBZ77Qkk8fbitvBMURDmfLM21hqyrDTfltj77MNdonON7hcINJKQZG2fGLz3Rrc+10mDQDAiDqVQGOLrpJBQVuA+TxdUEA1C9+z0zwvmHLdlBEgXCw7k/4FoU8aKCA/Jcp02Fjr98PG+1MW5SbOtTs8oQG2iMpRe7Ogo+YzqZtU11KZ4tOr8zEblZeh7oSG+AaIlj16YscKKCWAL3MLmyRvYTXWpPgsu4xLp+AUvTGbSEKUlDeEznDDkGpUvVrd2pTm4Y7xyc8X8c/0WQRqWuioiqRLUHHldJg8MjgL4s7mQkqy95dfZ/xQRC9BAc/cbTceynA8PD5XILnQAVgVRe9hXsji6TgN2EURulrVsBbCN1wCAp/Be9FqH7NYiQYxhmVfYM3kmyMdVe/+owslEAaMcmjT/QcZQlCeJj5SNOXCqVwCsks0ijINP2utN0XO4mlHkCt712QwFAMw86rSjnuX7eA1W6w2OpFjFFobOekDaUgBs8ID4LMgpOWJSGTI2P9AHtBJTMNSrRmsMzQmafZYdBm2F9gO4tz9ktxbhcmBFWpTvNHZimE6Re354pnTOQIQ4yCKU+8VsqYEJxdxe1JYXE2yTeNCKOCcIywL8/hvVS0=","translations":{"de":{"changelog":"### Hinzugefügt\n\n- **Urlaubsübertrag / Rollover**: `VacationRolloverService`, Hintergrundauftrag, `occ arbeitszeitcheck:vacation-rollover`, Migration `Version1013Date20260407120000` mit `at_vacation_rollover_log`; Unit-Tests.\n\n### Geändert\n\n- **Frontend-L10n**: Gemeinsame Partials `templates/common/main-ui-l10n.php` und `teams-l10n.php`, damit Übersetzungen früh verfügbar sind; zugehörige Template- und JS-Anpassungen.\n\n### Behoben\n\n- **Manager-Dashboard — ausstehende Abwesenheiten**: Die API liefert `summary.typeLabel` (serverseitig übersetzter Abwesenheitstyp); die Oberfläche nutzt das bevorzugt, damit Karten lokalisierte Bezeichnungen zeigen (z. B. *Urlaub*) statt Rohcodes wie `vacation`.\n\n### Dokumentation\n\n- `docs/Developer-Documentation.en.md`: API-Hinweis zu `typeLabel` bei Pending Approvals; Nutzerhandbücher EN/DE: Hinweis zu lokalisierten Abwesenheitstypen bei ausstehenden Genehmigungen."},"en":{"changelog":"### Added\n\n- **Vacation rollover**: `VacationRolloverService`, background job, `occ arbeitszeitcheck:vacation-rollover`, migration `Version1013Date20260407120000` with `at_vacation_rollover_log`; unit tests.\n\n### Changed\n\n- **Frontend l10n**: Shared `templates/common/main-ui-l10n.php` and `teams-l10n.php` so translated strings are available early across pages; related template and JS updates.\n\n### Fixed\n\n- **Manager dashboard — pending absences**: API includes `summary.typeLabel` (server-localized absence type); UI prefers it so cards show translated labels (e.g. German *Urlaub*) instead of raw codes like `vacation`.\n\n### Documentation\n\n- `docs/Developer-Documentation.en.md`: pending-approvals API note for `typeLabel`; user manuals (EN/DE): manager pending approvals show localized absence types."}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/ArbeitszeitCheck/releases/download/v1.1.1/arbeitszeitcheck.tar.gz","created":"2026-03-10T22:10:57.403545Z","licenses":["agpl"],"lastModified":"2026-03-10T22:18:51.211591Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=36","signature":"c6nuFK9N2O61bf1GpNWz2G2FDt1GzTRzd2pXna6x5E/HI/m1e1dt8TheGnhfgYm/TY/o/W539hak3svOJbJmoJr/kmd7xVWRGnZH/PDBjROe5kwRIwWdZlR3z7DiOyTsZo44DBLvVFEaRMAjF4PpVpJxTIA0xV59d3YJHyFZXbMPxSvAbZu43bAjWU6kVGmfaKUOrW5d592aApbxQ+mwJS7LwFMXlxGSzyCTwYL3bMkwormPPS64RTJtrPhvImU09ACMsjwgERAuFGlvbGj8CiuXzAWoO7ISyxcsqiaw1jnA5OIlJ+hnQhUdYHtkIzdwNHxw4ItSBL3pSJjhwIyrs4zZRMkOVjTqDluDfmvbx3Ir9cglVHlMGGTOOJtuyU0PmL0Fo9HZ2R0Noz9w8T3cpetxRG+B+mSWapUblbM+BT6aIvfHMjSzvI0qjwzcczwVzkYJISHReObwYFpeVs5W7cW1gXY2mx42Q/fPqDkrM5wEiuYJ98QG7Y67uhYZce9wmAp0Pygx0UJILj4fNPLuA27hVOp3++x0rOxhEl1A4v0tgiX5pVRYK3qwf1vHFl3zSGgldQs2WUmJ6CoPWbIE6hzmtRUGMzSOnKEK+2eLHej/Edzdo75nVZd6maKXVAY1L+z74IK61HvJ6kQ0QXFO7urWBZJg+IfxzR6W4mrvZnY=","translations":{"en":{"changelog":"### Fixed\n\n- Resolved duplicate route names in absence API (absence#store, absence#show, absence#update, absence#delete)\n- Corrected settings class names in info.xml to use full OCA namespace\n- Added declare(strict_types=1) to routes.php\n\n### Changed\n\n- Removed non-existent screenshot references from info.xml until real screenshots are captured"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDEucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDIucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDQucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDUucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtYXJiZWl0c3plaXRjaGVjay9yZWZzL2hlYWRzL21hc3Rlci9zY3JlZW5zaG90cy9hcmJlaXRzemVpdGNoZWNrLXNjcmVlbnNob3QtMDYucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/refs/heads/master/screenshots/arbeitszeitcheck-screenshot-06.png"}],"videos":[],"translations":{"pl":{"name":"ArbeitszeitCheck","summary":"Rejestracja czasu ze zgodnością prawa pracy DACH (ArbZG / AZG / ArG) i kontrolą RODO w Nextcloud","description":"# Zaloguj się. Trzymaj się zasad, które Państwo ustalili.\n\nArbeitszeitCheck rejestruje przyjście, wyjście i przerwy w Nextcloud, którą Państwo już hostują. Wybierz profil kraju dla Niemiec (ArbZG), Austrii (AZG/ARG) lub Szwajcarii (ArG), dopasuj regiony świąt, zatwierdzaj nieobecności, uruchamiaj raporty (w tym DATEV) i prowadź dziennik audytu.\n\nW niektórych wyszukiwaniach w App Store aplikacja jest też znana jako **TimeGuard**.\n\n**Darmowa aplikacja webowa** (AGPL-3.0-or-later). Aplikacje towarzyszące: https://nextcloud.software-by-design.de/\n\n## Dlaczego zespoły ją instalują\n\n- **Zaczynaj i kończ pracę czytelnie** — przerwy, wznowienie, ręczne wpisy z uzasadnieniem\n- **Dopasuj swój kraj** — profile DE / AT / CH z Länder, Bundesländer lub kantonami\n- **Wczesne wykrywanie problemów z przerwami i odpoczynkiem** — kontrole techniczne w oparciu o skonfigurowany profil\n- **Prowadź nieobecności poprawnie** — urlop, choroba, urlop specjalny i urlop bezpłatny z akceptacją; tryby uprawnień i import CSV przez `occ`\n- **Raportuj to, co się wydarzyło** — widoki pracownika, zespołu i menedżera; raporty o nadgodzinach i nieobecnościach; eksport DATEV\n- **Zamykaj miesiąc, kiedy trzeba** — opcjonalne domknięcie z snapshotem, hashem i PDF; ponowne otwarcie przez admina z uzasadnieniem\n- **Kontroluj dostęp** — otwarte dla wszystkich użytkowników lub allow-listy; administratorzy Nextcloud zachowują dostęp\n\n## Jasne ograniczenia\n\n- Ta aplikacja **nie jest poradą prawną**. To Państwo pozostają odpowiedzialni za modele czasu pracy, umowy zbiorowe, konfigurację oraz to, jak używane są zarejestrowane dane. W razie potrzeby skonsultuj się z prawnikiem.\n- Techniczne raporty o naruszeniach względem twojego profilu nie są certyfikacją strony trzeciej.\n- Deklarowane bazy danych: MySQL i PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL lub PostgreSQL"},"da":{"name":"ArbeitszeitCheck","summary":"Tidsregistrering med DACH-arbejdslovsoverholdelse (ArbZG / AZG / ArG) i Nextcloud","description":"# ArbeitszeitCheck\n\nTidsregistrering for Tyskland, Østrig og Schweiz (DACH). Registrer arbejdstid, håndhæv pauser og hvile efter ArbZG, AZG/ARG eller ArG, og overvåg overholdelse — fuldt selvhostet i din Nextcloud-instans.\n\n## Funktioner\n\n- **Landprofiler** — Tyskland (ArbZG), Østrig (AZG/ARG) eller Schweiz (ArG) med matchende helligdagsregioner\n- **Overholdelsesovervågning** — automatisk registrering af overtrædelser og rapporter\n- **Self-service-dashboards** — visninger for medarbejder, team og leder\n- **Fravær og orlov** — godkendelsesworkflows og rapportering\n- **Eksporter og revisionslog** — f.eks. til DATEV og interne revisioner\n- 100 % selvhostet — ingen data forlader din server\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.1–8.5"},"nl":{"name":"ArbeitszeitCheck","summary":"Tijdregistratie met DACH-arbeidsrechtnaleving (ArbZG / AZG / ArG) en AVG-controles in Nextcloud","description":"# Inklokken. Blijf binnen de regels die u zelf instelt.\n\nArbeitszeitCheck registreert in- en uitklokken en pauzes in de Nextcloud die u al beheert. Kies een landprofiel voor Duitsland (ArbZG), Oostenrijk (AZG/ARG) of Zwitserland (ArG), stem vakantiegebieden af, keur afwezigheden goed, voer rapporten uit (inclusief DATEV) en houd een auditlog bij.\n\nOok bekend als **TimeGuard** in sommige App Store-zoekopdrachten.\n\n**Gratis webapp** (AGPL-3.0-or-later). Companion apps: https://nextcloud.software-by-design.de/\n\n## Waarom teams het installeren\n\n- **Werk netjes beginnen en stoppen** — pauzes, hervatten, handmatige invoer met reden\n- **Pas uw land aan** — DE / AT / CH-profielen met Länder, Bundesländer of kantons\n- **Bekijk problemen met pauzes en rust vroeg** — technische controles op basis van het profiel dat u configureert\n- **Voer afwezigheden correct uit** — vakantie, ziekte, speciaal verlof en onbetaald verlof met goedkeuring; rechtenmodi en CSV-import via `occ`\n- **Rapporteer wat er gebeurde** — overzichten voor medewerker, team en manager; overuren- en afwezigheidsrapporten; DATEV-export\n- **Sluit een maand af wanneer u dat nodig heeft** — optionele afronding met snapshot, hash en PDF; admin heropenen met reden\n- **Beheer de toegang** — open voor alle gebruikers of allowlists; Nextcloud-beheerders behouden de toegang\n\n## Duidelijke grenzen\n\n- Deze app is **geen juridisch advies**. U blijft verantwoordelijk voor modellen voor werktijden, collectieve overeenkomsten, configuratie en het gebruik van vastgelegde gegevens. Vraag advies wanneer dat nodig is.\n- Technische rapporten over schendingen tegen uw profiel zijn geen certificering door derden.\n- Gedeclareerde databases: MySQL en PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL of PostgreSQL"},"fr":{"name":"ArbeitszeitCheck","summary":"Suivi du temps avec conformité DACH (ArbZG / AZG / ArG) dans Nextcloud","description":"# ArbeitszeitCheck\n\nSuivi du temps pour l'Allemagne, l'Autriche et la Suisse (DACH). Enregistrez les heures, appliquez pauses et repos selon ArbZG, AZG/ARG ou ArG, et surveillez la conformité — entièrement auto-hébergé dans votre instance Nextcloud.\n\n## Fonctionnalités\n\n- **Profils pays** — Allemagne (ArbZG), Autriche (AZG/ARG) ou Suisse (ArG) avec régions de jours fériés adaptées\n- **Surveillance de conformité** — détection automatique des violations et rapports\n- **Tableaux de bord self-service** — vues employé, équipe et manager\n- **Absences et congés** — workflows d'approbation et rapports\n- **Exports et journal d'audit** — p. ex. pour DATEV et audits internes\n- 100 % auto-hébergé — aucune donnée ne quitte votre serveur\n\n## Prérequis\n\n- Nextcloud 32–35\n- PHP 8.1–8.5\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite."},"en":{"name":"ArbeitszeitCheck","summary":"Track working time with DACH profiles — ArbZG / AZG / ArG on your Nextcloud","description":"# Clock in. Stay within the rules you set.\n\nArbeitszeitCheck records clock-in, clock-out and breaks on the Nextcloud you already host. Pick a country profile for Germany (ArbZG), Austria (AZG/ARG) or Switzerland (ArG), match holiday regions, approve absences, run reports (including DATEV) and keep an audit log.\n\nAlso listed as **TimeGuard** in some App Store searches.\n\n**Free web app** (AGPL-3.0-or-later). Companion apps: https://nextcloud.software-by-design.de/\n\n## Why teams install it\n\n- **Start and stop work cleanly** — pauses, resume, manual entries with a reason\n- **Match your country** — DE / AT / CH profiles with Länder, Bundesländer or cantons\n- **See break and rest issues early** — technical checks against the profile you configured\n- **Run absences properly** — vacation, illness, special and unpaid leave with approval; entitlement modes and CSV import via `occ`\n- **Report what happened** — employee, team and manager views; overtime and absence reports; DATEV export\n- **Lock a month when you need to** — optional finalization with snapshot, hash and PDF; admin reopen with a reason\n- **Control access** — open to all users or allow-lists; Nextcloud admins keep access\n\n## Clear limits\n\n- This app is **not legal advice**. You stay responsible for working-time models, collective agreements, configuration and how recorded data is used. Ask counsel when needed.\n- Technical violation reports against your profile are not a third-party certification.\n- Declared databases: MySQL and PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL or PostgreSQL"},"it":{"name":"ArbeitszeitCheck","summary":"Registrazione ore con conformità DACH (ArbZG / AZG / ArG) in Nextcloud","description":"# Iniziare e timbrare. Restare entro le regole che avete definito.\n\nArbeitszeitCheck registra l’entrata, l’uscita e le pause nella Nextcloud che avete già in hosting. Scegli un profilo Paese per Germania (ArbZG), Austria (AZG/ARG) o Svizzera (ArG), abbina le aree di festività, approva le assenze, esegui i report (incluso DATEV) e conserva un audit log.\n\nInoltre indicato come **TimeGuard** in alcune ricerche dell’App Store.\n\n**Web app gratuita** (AGPL-3.0-or-later). App associate: https://nextcloud.software-by-design.de/\n\n## Perché i team lo installano\n\n- **Iniziare e terminare il lavoro in modo pulito** — pause, ripresa, inserimenti manuali con motivazione\n- **Abbina il tuo Paese** — profili DE / AT / CH con Länder, Bundesländer o cantoni\n- **Vedi presto i problemi di pause e riposo** — controlli tecnici rispetto al profilo configurato\n- **Gestisci le assenze correttamente** — ferie, malattia, permessi speciali e congedi non retribuiti con approvazione; modalità di entitlement e import CSV via `occ`\n- **Riporta cosa è successo** — viste per dipendente, team e responsabile; report su straordinari e assenze; export DATEV\n- **Blocca un mese quando serve** — finalizzazione opzionale con snapshot, hash e PDF; riapertura admin con motivazione\n- **Controlla l’accesso** — aperto a tutti gli utenti o allow-list; gli admin Nextcloud mantengono l’accesso\n\n## Limiti chiari\n\n- Questa app **non è una consulenza legale**. Resta a voi la responsabilità dei modelli di orario di lavoro, dei contratti collettivi, della configurazione e di come vengono usati i dati registrati. Chiedete consulenza quando necessario.\n- I report tecnici sulle violazioni contro il vostro profilo non sono una certificazione di terze parti.\n- Database dichiarati: MySQL e PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL o PostgreSQL"},"de":{"name":"ArbeitszeitCheck","summary":"Arbeitszeit erfassen mit DACH-Profilen — ArbZG / AZG / ArG in Ihrer Nextcloud","description":"# Einstempeln. Innerhalb der Regeln bleiben, die Sie setzen.\n\nArbeitszeitCheck erfasst Kommen, Gehen und Pausen in der Nextcloud, die Sie schon betreiben. Länderprofil für Deutschland (ArbZG), Österreich (AZG/ARG) oder die Schweiz (ArG), passende Feiertagsregionen, Abwesenheiten mit Freigabe, Berichte (inkl. DATEV) und ein Audit-Log.\n\nIn manchen App-Store-Suchen auch als **TimeGuard**.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later). Companion-Apps: https://nextcloud.software-by-design.de/\n\n## Warum Teams es einsetzen\n\n- **Sauber starten und stoppen** — Pausen, Fortsetzen, manuelle Einträge mit Begründung\n- **Zum Land passen** — Profile DE / AT / CH mit Bundesländern bzw. Kantonen\n- **Pausen- und Ruhefragen früh sehen** — technische Prüfungen am konfigurierten Profil\n- **Abwesenheiten ordentlich führen** — Urlaub, Krankheit, Sonder- und unbezahlter Urlaub mit Freigabe; Anspruch-Modi und CSV-Import per `occ`\n- **Auswerten** — Dashboards für Mitarbeitende, Teams und Führung; Überstunden- und Abwesenheitsberichte; DATEV-Export\n- **Monat bei Bedarf schließen** — optionale Finalisierung mit Snapshot, Hash und PDF; Wiederöffnen nur mit Begründung\n- **Zugriff steuern** — offen für alle oder Freigabelisten; Nextcloud-Administratoren behalten den Zugriff\n\n## Klare Grenzen\n\n- Diese App ist **keine Rechtsberatung**. Sie bleiben verantwortlich für Arbeitszeitmodelle, Tarif- und Betriebsregeln, Konfiguration und die Auswertung erfasster Daten. Bei Bedarf Fachberatung hinzuziehen.\n- Technische Verstoßmeldungen am Profil sind keine Fremdzertifizierung.\n- Deklarierte Datenbanken: MySQL und PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL oder PostgreSQL"},"es":{"name":"ArbeitszeitCheck","summary":"Registro de tiempo con cumplimiento laboral DACH (ArbZG / AZG / ArG) en Nextcloud","description":"# ArbeitszeitCheck\n\nRegistro de tiempo para Alemania, Austria y Suiza (DACH). Registra horas de trabajo, aplica pausas y descansos según ArbZG, AZG/ARG o ArG, y supervisa el cumplimiento — totalmente autoalojado en tu instancia de Nextcloud.\n\n## Funciones\n\n- **Perfiles de país** — Alemania (ArbZG), Austria (AZG/ARG) o Suiza (ArG) con regiones de festivos adecuadas\n- **Supervisión de cumplimiento** — detección automática de infracciones e informes\n- **Paneles de autoservicio** — vistas de empleado, equipo y responsable\n- **Ausencias y permisos** — flujos de aprobación e informes\n- **Exportaciones y registro de auditoría** — p. ej. para DATEV y auditorías internas\n- 100 % autoalojado — ningún dato sale de tu servidor\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35\n- PHP 8.1–8.5"},"sv":{"name":"ArbeitszeitCheck","summary":"Tidsregistrering med DACH-arbetslagstiftning (ArbZG / AZG / ArG) i Nextcloud","description":"# Stämpla in. Håll dig inom reglerna ni anger.\n\nArbeitszeitCheck registrerar in-, utstämplingar och pauser i den Nextcloud ni redan hostar. Välj ett landsprofil för Tyskland (ArbZG), Österrike (AZG/ARG) eller Schweiz (ArG), matcha helgdagregioner, godkänn frånvaro, kör rapporter (inklusive DATEV) och behåll en auditlogg.\n\nAppen finns också listad som **TimeGuard** i vissa App Store-sökningar.\n\n**Gratis webbapp** (AGPL-3.0-or-later). Companion-appar: https://nextcloud.software-by-design.de/\n\n## Varför team installerar den\n\n- **Starta och avsluta arbetet snyggt** — pauser, återuppta, manuella inmatningar med en anledning\n- **Matcha ert land** — DE / AT / CH-profiler med Länder, Bundesländer eller kantoner\n- **Se problem med pauser och vila tidigt** — tekniska kontroller mot den profil ni har konfigurerat\n- **Kör frånvaro korrekt** — semester, sjukdom, särskilt och obetalt ledigt med godkännande; entitlement-lägen och CSV-import via `occ`\n- **Rapportera vad som hände** — vyer för medarbetare, team och chef; rapporter om övertid och frånvaro; DATEV-export\n- **Lås en månad när ni behöver** — valfri finalisering med snapshot, hash och PDF; admin återöppnar med en anledning\n- **Kontrollera åtkomst** — öppen för alla användare eller allow-listor; Nextcloud-administratörer behåller åtkomst\n\n## Tydliga gränser\n\n- Den här appen är **inte juridisk rådgivning**. Ni ansvarar fortfarande för modellerna för arbetstid, kollektivavtal, konfiguration och hur registrerade data används. Rådgör vid behov.\n- Tekniska rapporter om regelbrott mot er profil är inte en tredjepartscertifiering.\n- Deklarerade databaser: MySQL och PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL eller PostgreSQL"},"nb":{"name":"ArbeitszeitCheck","summary":"Tidsregistrering med DACH-arbeidsrett (ArbZG / AZG / ArG) i Nextcloud","description":"# Stemple inn. Hold dere innenfor reglene dere har satt.\n\nArbeitszeitCheck registrerer inn-, utstempling og pauser i Nextclouden dere allerede hoster. Velg en landsprofil for Tyskland (ArbZG), Østerrike (AZG/ARG) eller Sveits (ArG), match ferieområder, godkjenn fravær, kjør rapporter (inkludert DATEV) og hold en auditlogg.\n\nAppen står også oppført som **TimeGuard** i noen App Store-søk.\n\n**Gratis nettapp** (AGPL-3.0-or-later). Følgeapper: https://nextcloud.software-by-design.de/\n\n## Hvorfor team installerer den\n\n- **Start og stopp jobben ryddig** — pauser, gjenoppta, manuelle innføringer med begrunnelse\n- **Tilpass landet deres** — DE / AT / CH-profiler med Länder, Bundesländer eller kantoner\n- **Se problemer med pauser og hvile tidlig** — tekniske sjekker mot profilen dere har konfigurert\n- **Kjør fravær riktig** — ferie, sykdom, permisjon og ubetalt permisjon med godkjenning; entitlement-moduser og CSV-import via `occ`\n- **Rapporter hva som skjedde** — visninger for ansatt, team og leder; rapporter om overtid og fravær; DATEV-eksport\n- **Lås en måned når dere trenger det** — valgfri fullføring med snapshot, hash og PDF; admin gjenåpner med en begrunnelse\n- **Kontroller tilgang** — åpen for alle brukere eller allow-lister; Nextcloud-administratorer beholder tilgang\n\n## Klare grenser\n\n- Denne appen er **ikke juridisk rådgivning**. Dere er fortsatt ansvarlige for modeller for arbeidstid, tariffavtaler, konfigurasjon og hvordan registrerte data brukes. Spør om råd ved behov.\n- Tekniske rapporter om regelbrudd mot profilen deres er ikke en tredjepartssertifisering.\n- Deklarerte databaser: MySQL og PostgreSQL. Nextcloud 32–35, PHP 8.1–8.5.\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-arbeitszeitcheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.1–8.5 · MySQL eller PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"http://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhMPMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzEwMTIwNDQ1WhcNMzYwNjE1MTIwNDQ1WjAbMRkwFwYD\nVQQDDBBhcmJlaXRzemVpdGNoZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEA36f1UVsSAVpJMWTBc3IuCLVx3o3I+F7k9uVZWcg7swgv9RXZcoEqU1/F\ns0SsmAa/27dliUZ68Mse/lObGhzUOBwHHG9dhPOJfIDV/8uKs3KiorcwezBjDHIM\ns5PZM7ctDBd8VNid2tbIJ+YFJiyYoI4i7adOCoHCVGi5Imhi7IyyujcVH/gbxE+G\ndyq3eebXh5gtrLwJTd9emekdJ4ZzwqccCDllPu+bQrpX9rhX0uZpcK4y4VElHPdd\nlFv2VTotgovqTvRFTpyxgfeJI5qvQ6okq6RNRUmPJ7tk6Zy9bzOYP1DEkb2jsIGX\nIT5Sc60sz33pso2VFnX37A5j3gULwfgMrA9jMlRgfvFq/gxgGKwv4xTqMcKdROUr\nemgDDSAOq9DmChtFskw/0KgndaxgfpxKiC5+H8242gja0j8+pWaYzeOp0qTWWjoE\nLJEV++w+krRQDv/LlUoRn8E+mg+svGSlvVDD/DDhqQAGEHrmd5Zm4DqmnJjyaPnc\nLA9FJdhor5aD8da8iXMXFxiT8dZsC7CvMS42O3XrEzsbcANp3C4/jdJx7jdZC+lf\nc/19I677hewMPomWQGwzFZyrGdQsQykaQYVqJdKOIVpT7HlVrlIZ/FzBPIAR6u+I\ng1gY8z+20I8Nl7g9Px/3/RMygomMwzPW6Vl8mUVI1YbsrzoQBP0CAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAEPOiRKIE7zPVDVMHs8zw/t/fChrAbSSO69EvdiWft+a1\nbwtUM2vwORm3rHUwLLtRHGTCAX5DxzQOzscd0RPpI42D7d0CygC0aq912caAcI48\nRuCY5/dbXSnfrAPHo4AWwo5dCbLsM6/FE3OjX8wA6J14P3q6me1IdEmWN1wVFeB7\nWUhP3rJizFsOOL9L7PYFCYCCj5n/ZF3PXTeMzaz93lFq/M7xo6+KoFfloChYvctz\nt8zYxalL4ExEegIGDkw1bk5MCVoL5E3dMaK8CpzcuDgGRe7z17C5GKRB9021g6Kn\nVpcU+y0BR1hn8QEQrFxEkxoONJDCuK0nmvZJpb2TMQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"linkboard","categories":["dashboard","tools"],"userDocs":"https://github.com/tschuegy/linkboard-nextcloud#readme","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/tschuegy/linkboard-nextcloud/issues","website":"https://github.com/tschuegy/linkboard-nextcloud","created":"2026-03-07T07:59:56.396252Z","lastModified":"2026-10-22T06:33:39.268925Z","releases":[{"version":"1.12.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.8/linkboard.tar.gz","created":"2026-10-22T06:33:39.239200Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-22T06:33:39.316360Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"E+KEUswflPNtfeUP7KvYOB3RJf5G/twgWvpo9jVID0S+DIgzdyEBizoSPpkQR8q2\nT5sahprJ2XCzKfUT1JmCMsAeHb5v8N20fGVpViKN/L9uOzpyydAAddIoxlcfWgcy\n3HbldtMYhw30PcmOL1dGMHSO/XtSf2vFsw6thBHOf1e2p9JvwHqmIZZhE/MGBIqa\nSQ6eIgNxBDq8UMenefXxSKU77m8m56y8av9F7J15VagLFKMXVZg85h8d+tisP0Bf\nFRO3HuTJTSFIXxagTAvEAGaMEEhRsYBhY0xKqQHJhLkK58s/aU1P+4/G68N8nv53\nMTMCO/Vf3MtyyH3FWgPxIWNG4gztPHHCh50fc4B2rYCtahutAT+OhhpcxL2unPVx\n5Q6HvcgaT+cJkmpS6zuQDYMoPe1EbMpewlv3PbcC+/njllYOLuZ79cMdqpDffcuS\nE71bs1FfDegBkHBaduCmKWYhVf+TwRY1Eb6iTbvHyLqcbSZwdCRq4NeHAS+WXovp\nYP7wRkAzOkQbMbZRzTGbVOlom/SuOGMLV2vuKSpDBP2qpeopRxpOPau+2qP3Hr1j\nF42CqeFdeIk8IjkpBa1cmTaEiF2Dg9oTBkoe7oxaAVZYILNSfivIA4VsfM45UzR9\nSrWnZvVT2R3DNjZxm753sg0nx2v/jjPRh6jhq/j9w9Q=","translations":{"en":{"changelog":"### Fixed\n- LinkBoard's own \"service offline\" and \"service back online\" notifications no longer log a deprecation warning (\"Notifier::prepare() threw \\InvalidArgumentException which is deprecated\") on Nextcloud 30 and newer (issue #21). The notification icon was set with a relative path, which Nextcloud rejects since version 30. Because of this, the notifications were shown without the app icon and without the link to the board. The icon is now passed as an absolute URL."}},"signatureDigest":"sha512"},{"version":"1.12.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.7/linkboard.tar.gz","created":"2026-10-05T09:12:04.828418Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T09:12:04.897258Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"fzWBvDDJCQKLgOe00jKbs2LVy03yoAUhu1kqKZbGcMJGTSTa+0isJ7kdTJn+nm3s\nVdhlitOdauhR/hNALMRsv7lgdymcp+cKH4g2n4UPKlNakOOOKqbl2LmFSgnIFYh6\nnMd2XehNc/D+SF3BglS0R887lw9EElvQl5G82Nw1u06DmlyBlDqU4MtoXgFEee14\nRO6xqzoxvEZHDJHEPyB2Q89e7f0q1BHEFyIDZpa++S9kLJRn683cJKEHkyk+zoUo\nNJ2LlgktunWkb6Q1I2YM2VSGbbzPEpj02cIx/luX1CUuPTkNP6UdlUYpaSP6XVa9\n23mtd6e/MH8YHpVpv5NJFrpSjeGaSYSZK9EExHJJgAwPQYkq8TVsTCyFGfKRtpbQ\nKOFaNfhIYhiHDdzq8KAbYFTS15JwFFXHpO47E2I6QBEBfSjTaRNVey2EQCOixktc\nFuIJHNm2K1vY4Crs6Ki1yeL/6I1eCq0Q5TTDayXJCgYl5eeCHe5W3PGUyrIcn/wT\nVYBdCuG9TY6Km8aB7jBRJqDTAKdeLJwzVMzxq/qAhgpkrm31MjfktjZ7Um+78f1g\nmeBeyM3YKZz//U3IO4+Y8fOARSV5rj+DCsN/PvD7v2UROz/i2jytToixpKOdk5lC\n1eckkGQPTPeQL1gXbb6mkF++duZ7jYjla+ImyeQBCyY=","translations":{"en":{"changelog":"### Fixed\n- Read-only viewers of the Global Board now see the source user's card positions and sizes (issue #20). Their board received no grid layout, because it was removed together with the widget configuration, so the cards were arranged differently. Only the layout is sent to read-only viewers; widget credentials stay hidden.\n- With \"Responsive layout\" enabled, cards in narrow categories now wrap row by row in the same order as on the desktop layout. Before, the cards kept their desktop positions squeezed into fewer columns, so their order got mixed up.\n- Responsive categories narrower than 480 px (e.g. on phones) no longer fail to render the card grid.\n- Status updates no longer reset the cards of a narrow responsive category to their desktop positions.\n\n### Changed\n- In edit mode, responsive categories always show the desktop layout, so moving or resizing a card always changes the stored layout."}},"signatureDigest":"sha512"},{"version":"1.12.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.6/linkboard.tar.gz","created":"2026-10-03T14:44:20.783324Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T14:44:20.836312Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"frGV7f7RrXlYVOJgHTbA76zL90N2EQg91m1aPrEgIP7WwydsJdUJ2HxFP2YjwaNz\npbixQVBg5IieBXcco+92UgTgxjaCMLyDj6aXpkj3GmntnHWJUhlo7HwwHC/vBkd4\nHurn4ClFAcGiEJSHENVEaPXjiaD7ZMIueJN0tVPuBvAUp3bmUtTyRJSiSAyC+3cc\nnpJfh99k9OTzzJ2gbBcBGjxXtwvzETRqIpLF4JUZ/hNjtqjiN+PAOLXfpofE4Jr2\n30dLggJ1NsOUqFWRtd/2cRpYSAEQwibxec/JERbpT0x6J5fGs9YLCsAgoJkX3PAL\ncvZOhG5ywzkX4py4BZIBB9z8fHYJginZng/S0ebCvnFeptZzDu4g2x9FTS0gzsGs\nwYAsiAQnu775i9O5Xj9S0cvknjNfhXI/Fh3QbNODn8rtE7mhFC64A3Vl/Y8UDo7X\nvTUICMH9lFcCBUlazRD06M5m2gLizJHdqNk5P8BCIgqym4VfuZnLZat+K8Sl51Lv\n6lJhumg/B4l0GGv/2IIJhkQ8of9KMMyNKvHaJfFSJbW0Da2XAKRqN/K6dDK2vxrt\nMSofIz2wIiukndcvPAbgrjvNR1SKcvvM89D+lAMKz0GhG9dSPm5QHH/IL9FIMKAX\nGsIHDho8swb38+HfzO4d1ByAqz8yTQE391qzgCEtwo4=","translations":{"en":{"changelog":"### Fixed\n- Admins who edit the Global Board but are not its source user now export and import the Global Board. Before, export and import used their own board, which is hidden while the Global Board is active: the export did not contain the board they were looking at, and an import seemed to succeed but did not change it.\n- Notification channels created by such admins now trigger for the Global Board. Status alerts for Global Board services are sent through the source user's channels, but the settings page created and listed the admin's own channels, which never fired for these services. Global Board editors now see and manage the source user's channels.\n\n### Security\n- Read-only viewers of the Global Board can still only reach their own notification channels and their own export, so the source user's channel configuration and the widget credentials in the export stay hidden from them."}},"signatureDigest":"sha512"},{"version":"1.12.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.5/linkboard.tar.gz","created":"2026-10-03T14:38:36.085703Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-03T14:38:36.136542Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"UkTUdi9nq0GpI9tsS6FyPVY0qKXZK7znR0N1a1fG+ZA5zjWsp4JQfUn37+c6bp0Y\n5WiEr+SBtXP3vVTkJzfMnmjaFiViRu2Ytkgn7T/YFZHxBLjzcdH0pYbSbQUYX4oA\nvzBJGjryXWshwKcYFsqAeNEG4N+piw4Xz9W0BgSgT63gN9Wy89DpajJ+ihBMAtxT\nqpFdZwuWI8hrpeP/0g6eRZsbcbmAl2LxxfGyKe3zNbJHEdNgH3jdkL5Epd1tT9Cv\nCEfkoHyJ6JKnXVqqW+d8fKsVhV4sJZzkXKm/LcLwOYCw1OtB5xxT9K/8PZVnbMHG\nXsnNHW6dpGjdu5FydHeUeClZotRmNBGJDUUDwl3pIEsrsjbX1kqwJ3hHkQzr4Dwz\nZFb71FzHbhsGioKEMXEHGPnCu6FshGr9s7wtCa5xolx6y4kIxKiog2Vy+zdfN0FV\n5TGcKe+8cwt+RXVL25Y8FUVZDXiUrcHDKd4KOFBglERImVLR3lQrJBxxX/mOXv1U\nL4nObhuJfvz7uttg2wfzMhzKKtnGQG+jGUyI2y1ouz9fBcOJOtKZPcoI2xFBoCKI\nYsGD/0oj9wQg5e3TL2AlSDcA5Q7Jqwlqx1usXTMtEAA7flBtbE7qE0el8p35+dT5\nWmBrS10iyw21w3rF8VWbN0R1Go/YrnmKwnK5p6RqfjA=","translations":{"en":{"changelog":"### Fixed\n- The Global Board now looks the same for non-admin users as for its source user (issue #20). Several parts of LinkBoard still used the viewer's own data instead of the source user's:\n  - External icon URLs were blocked by the Content Security Policy, because the allowed image domains were collected from the viewer's services and background.\n  - Uploaded icons returned HTTP 404, because they were looked up in the viewer's icon folder.\n  - The viewer's own display settings were applied, so card style, sizes, spacing and layout differed from the source user's board.\n  - The layout migration on page load tried to save every service for read-only viewers, which produced a series of HTTP 403 errors in the browser console. Read-only viewers now only apply the migrated layout locally.\n- Admins who edit the Global Board but are not its source user now change the source user's settings and upload, list and delete icons in the source user's icon folder. Icons they uploaded to their own folder before are still shown.\n\n### Changed\n- Read-only viewers of the Global Board no longer see the Settings button, and the settings API rejects their changes, because their own settings have no effect on the Global Board."}},"signatureDigest":"sha512"},{"version":"1.12.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.4/linkboard.tar.gz","created":"2026-10-02T17:11:07.156586Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T17:11:07.212878Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"a4QtpqVDRtmPklSnbDVwQISbyl/JXLJpMtcUKa1HP5p3bZtk/bU4UD+k+vq1tUQw\niPcqOVylprXT4rS9QB8FCx/5M9mRZDWP0Pe27ryiiu3ELQ3IFyqWaZhF3tO/fMDT\nceEApLAJu+R2I7JfQ9Sb5trTFK9k55DIEbPNKXLtvGbGwyCWYPLnPQX5CoVy0Ou0\nLuGDIAZzKt+h9G/otRzwlNAA+WVpMQyokDwG8Pr2AdroAQa+p3WTftISHP4N1QEc\njdP6HR3kgeNWRAwA389xm2Sl9jd5ZLnUG1DAWuO17wBvunysIUfDKfePwAQ+iq5x\nnc/XxOc3JzkiWJO6dxhes6Kr7STTfT2Nm8hTc8uHdQjwA+P0erCvwam7INSIGbkT\nh8y90jKkR8EQ0SufQTQ4qT+0pTIFNKqFmOa+QQTfC3+Fu7MnzWih2vk/BtIQ7aO5\n7eXLK4ARbi+/aueAjJo5pzY2FS0Ic2cetNmPpGBKjmgCaEn+FKfFdDETn/ukrXsz\nTBKMcyopBOQZXluC8eUrerze8kUSE8nle/cqwdzQWlnq/w3nU3o62FWGj43IWsSf\nPOthLi8Wx6hBN94/2kzQJbXhfXEoOtCO0QrEmbw2fbDTzKRsGohVldRTOS3zJZhz\nqkwHjTx3dhIIck3cMbfZsaMN7/uWsBJJgboEhGzygbc=","translations":{"en":{"changelog":"### Fixed\n- LinkBoard no longer fills `nextcloud.log` with \"`OCA\\LinkBoard\\Notification\\Notifier::prepare() threw \\InvalidArgumentException which is deprecated`\" warnings (issue #19). Nextcloud asks every app's notifier about every notification, on every poll of the notifications endpoint and in cron. LinkBoard rejected notifications of other apps with the deprecated `\\InvalidArgumentException`, which logged one warning per foreign notification and request. It now throws `\\OCP\\Notification\\UnknownNotificationException`, as Nextcloud has required since version 30.\n- A service whose hostname no longer resolves is now shown as offline. Before, the background status check failed before the request was sent: it only logged \"Status check failed for service <id>\" and never saved a result, so the card kept its last state (often \"online\") indefinitely and no offline notification was sent. A failed DNS lookup is now recorded as offline (\"Could not resolve host\"), the same as other connection errors, and counts towards the offline notification threshold (issue #19)."}},"signatureDigest":"sha512"},{"version":"1.12.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.3/linkboard.tar.gz","created":"2026-09-24T04:46:47.559690Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T04:46:47.658993Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"QGKG7ZIRQ9i7uDM8XYvXqPZT+5Shj5pZbsT/8e2wAdcvBueGA6TZ4uXxpR5n5bau\n/R/+FhO3+wSHWrwJ5wc/rTN+pY78XcsPMK4ZHqI/ycCL686v1f4Pj9eCr23ugflY\n6xJ+1ydKRAgf/WVdL1gnwUKSaCAUR5RQKsEGc7RuZlhsHS5zt6WeU9dMV/QI5oeN\nagAD9yWrFzLMujah6aELNq+9uUL6G6R3BzosKGj8GdTE3i4Evwl44N08HVuzf8Hb\n9fLvG3lyZh9Up/rQ0u07+1ZjK3EgJG3kmYpYoeha97IAK+fUeucJkv7m5E+FxmP7\n/ZEyZX8PGQr7JC5oKxwBNHtiwiEsmDpQSKiygEMq0QghEdPLW+c7Dzewj73Arbah\n0wbS8NYMEpf1J2hY61yd9tlrZkigYmeFQiTj4zCsL7OBiSYPM3oWbIPNefpZajP/\n2Mv2AwUnsI/0D8oqoA234GW+cbJe+j2v/MCNTtc97Xw/Uelkzac9C2fD0f6bUOAq\n6q3n8bbN1/1ZZ+aBdgAYFt6D/Y+sVa/OUA+/TyfdQO3+BNfofYUIAMaOZ8LccwWW\nvpF72Q8HqgAQzAaSTdfj7Y69OhyJmrKaQXnIJO0OoWf6Viy0u4r4NCE1Xps7NV+9\ndihi/dSpCmnmmpK3gRmNBgLSTU3AuQu5tkvmAN4FBe8=","translations":{"en":{"changelog":"### Fixed\n- The \"Save\" and \"Delete\" buttons at the bottom of the service editor were not visible, so changes to a service could not be saved (discussion #18). The bottom of the whole app was cut off by the height of the Nextcloud header. The Vue app was mounted inside Nextcloud's `#content` container instead of replacing it, so both containers applied the header offset, and `css/styles.css` also stretched the inner container to the full window height. LinkBoard now mounts on `#content` like other Nextcloud apps, and the height override is removed. The bottom of the dashboard is no longer cut off either.\n- The service and category editor sidebars are now positioned inside the app container in every browser. Before, their position depended on whether Nextcloud's background blur was active (Firefox, Safari and all browsers on macOS) or not, and with the blur they started 50 px too low.\n- The category selector in the service editor now lists sub-categories as \"Parent › Child\". A service inside a sub-category used to show the category's numeric ID, and services could not be moved into a sub-category from the editor."}},"signatureDigest":"sha512"},{"version":"1.12.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.2/linkboard.tar.gz","created":"2026-09-19T03:51:35.891671Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T03:51:35.997922Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"dC/NF7qLi1nyRzZmHdzTPcxR6SOdaI/7fVJCrVdfHlTngv6T5JM9YUTgrgvts+kh\nHfyKRtQs/4JfhN5+U4bglMCxo1AOFjnP1Pe05eTtmQv9d2CfJuoP7IXVc5rnjGOp\nIPSsapdacAdvax1ZzL2zlZ0R+QAFGdNN0k5nmr43FHEEz1js+U4prfzYUUnA+6aS\n6d57NnT3kTp6qHf00FW3V4JH1/n1vHhODokvIaKnp/ZzNNObzow104x3yWATZYFp\nfRhGnf0cJdiDfeCTBik9MlIOIP6coLPU+wpDQb8RInRm9i2p+E0GgqHhBNq5i3YM\nfypTJhbmS6kgARe3KRuSkKJc1n5EQzDAzauz0MPABIGnp8Oedldw61t9xlGsO7Th\nuX1r/BZ9VFb5rmILLq79L9gTcCdUoCqSIhdjxF4Pg1Sz4aGx0Alu4QvQ7Cbxxk49\nM6MXECeNLwWVEt9LG4zWvZ5Z4/USCxgnoo0pd6x7DO5YY1xRaAblobqmFtS/pmhq\neNuE3caPmTmK5pPhpmAcUSWo2R0jE+/sOtf7eUibG7++rmlKs94i6+GgpOKewIqh\n+HeyFOexkgLtfuqmUlqdK7zkpV7kW0nTQWckNc7ft0pN8kzgYJcnNwFLmr7Uuwqv\nfJwJQ0kGF3XiMvu0JnB1t5P3vhe6PjDBf78D3DiXYo8=","translations":{"en":{"changelog":"### Fixed\n- `occ upgrade` on Nextcloud 35 no longer reports a database schema mismatch for LinkBoard (\"column 'collapsed' differs in: nullable\", likewise for `ping_enabled`, `show_scrollbar`, `ignore_tls` and `notified`). Installations created with releases before 1.4.4 or 1.6.7 still had these boolean columns as NOT NULL, because the earlier fix only changed the migrations for new installations. A new migration now makes them nullable, matching fresh installations; existing values are kept."}},"signatureDigest":"sha512"},{"version":"1.12.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/tschuegy/linkboard-nextcloud/releases/download/v1.12.0/linkboard.tar.gz","created":"2026-09-19T03:36:54.003047Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-19T03:36:54.082082Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"jGXf/40VsL/fu8rl3Z1NHKVYLpp9JA7HfFUHGxZtkpRmZaMi6g/Cew8IUtvZYUPG\nGOBJ24ffhRUq5l2vegEWpK21s3snMgQttAkFQV71/unL+JVWwE9yZcBT0R8BMjgh\nz03xgJklnIYO4fs1cacMOSjcq6Z5y3E3DJmEgh6Y1Q3gr0/pkntqym8kEJyna3Vj\nICpNl+x2Th/BAaaf8muQlu04kGbYuB84PjMVwsQjSEYJ43JOq8k3LOwJ5aZSjSxB\ntkmHga8DkFFWeCuKY/B7gS4+uiCbo4dxpHqzNUWTxtuFovavNVENGlt1+fgjmLfp\npNTId01y2dU750+MuwHFE5K0BeEiGCGXLpY5giJBoNcnUTsSuMJ6GbDCabWodaBh\nZHyFJv8emZ1zy8mtPiJDKTB25RjQQn1V/OkVc7Yhe+BhHVJDjTODRvQi1w9Qaboj\no+SF1lVZggtraOSd4x/pnQEBfqXg8LSaxv4B15JoagNFCCHkVoajyN9C05mBwVQI\nOA39ErDeg/msFT6Ez7e3USxJDFMFN7xPfD7vJQvpooG1AzHudW1T2fqE3Iy8Y69O\noPSn6ZVJSwY10we5L9/T7daFJAtR1++vLU0adSF86lSme0BC8XZgWMSYjnOnGlvT\ntzQtusXSo80/IRhuykdWu2aTcUwcXoYZzeXDM4XGg0I=","translations":{"en":{"changelog":"### Added\n- Nextcloud 35 compatibility (`max-version` raised from 34 to 35 in `appinfo/info.xml`). Nextcloud 35 disables every app that does not declare support for it during the upgrade, so LinkBoard 1.11.x disappears after upgrading to Nextcloud 35. No code changes were needed: LinkBoard was checked against the Nextcloud 35 public API (the new `OCP\\DB\\Schema` migration wrappers, the `ColumnType` enum used by `Entity::addType()`, the typed `ICache` and `IQueryBuilder` signatures, and the removed front-end globals). Nextcloud 32–34 remain supported."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RzY2h1ZWd5L2xpbmtib2FyZC1uZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdF9HVUkucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RzY2h1ZWd5L2xpbmtib2FyZC1uZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdF9TZXR0aW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RzY2h1ZWd5L2xpbmtib2FyZC1uZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdF9TZXR0aW5nczIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RzY2h1ZWd5L2xpbmtib2FyZC1uZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdF9TdGF0dXNPdmVydmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RzY2h1ZWd5L2xpbmtib2FyZC1uZXh0Y2xvdWQvbWFpbi9pbWcvc2NyZWVuc2hvdHMvc2NyZWVuc2hvdF9TdGF0dXNTaW5nbGUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"LinkBoard","summary":"Personal service dashboard inspired by Gethomepage","description":"**LinkBoard** – A beautiful, customizable service dashboard for your homelab.\n\nOrganize your services in categories, monitor their status,\nand access everything from within Nextcloud.\n\n### Features\n- 🏠 Personal dashboard with service tiles grouped by category\n- 🎨 Dark/Light mode with customizable backgrounds\n- 🖼️ Flexible icon system (upload, URL, Material Design Icons)\n- 📋 YAML & JSON import/export (Gethomepage compatible)\n- 🔍 Quick search across all services\n- 📂 Nested categories with drag & drop grouping\n- ✏️ Inline editing with drag & drop sorting\n- 🩺 Service health checks with status indicators\n- 📈 Status history with response time charts and uptime tracking\n- 📊 Widget system for live data from external APIs\n\nEach user gets their own personal dashboard – up to 500 services."}},"isFeatured":false,"authors":[{"name":"Andreas Busslinger","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhMLMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMzA2MTMwOTI3WhcNMzYwNjExMTMwOTI3WjAUMRIwEAYD\nVQQDDAlsaW5rYm9hcmQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCZ\nZ0hkNfKy1IOZejt3cdf7vMDBRE32k9nCAJy60Xmiy9+A2WNitTYWDiLZ2oDhdA/r\nhRBus8fYO19Sh7H3VR+ePkOMZZOhG+RHcl4gdXA8prV4deoX/3h7sxR+64q4vWNw\nQ3Yw2RJN62KC7PIsSwFCbyO5mBELSNc3G5/XwJ2JRbRBcGrbEsfF+H5ewfczI9aX\ngJCjZmGlSBsPa1p1QKKAVDr1nKardBhqSmpjLyxCmNC4W62bADi/hJmGtfX+8zVB\npJSa5VIXoYo4LaEMF2jzctbAIQPPiBKH6wAykjQs19NddUnaJA43ucoodWa1ppgF\nVskPQWMopWFLTb4e5RhoPTkVaQUVqZjBDi03EEZDH1W4WA59TXKRrf3wFDQCGzEM\nPD+I/6wuvD5TFqft4Osz1nJz/zsSo06yv003cHErw0846JQrSZXaJBx+EK27GFg4\nNCvBucRDVCxO2xqRxVOuNEkGojQum6gsKCT699zt09mgCkj2tIYEnQcdPGsjXWSM\nhDPKvtTLOqnxNG4y9GanK9qY+Jy4Ve0svLp/6gEmrlR+tUea6RL4Mnpc51Q/hthr\nQjYpqdxdWqYrdo/oiBXgAytXirEA9km2NnYfH3KfIGsAkH23eGEtx/0I2HvLzn5y\njXkswM6VunBfaHk/epfWcCXezZNMRnSIIdXLM4H8BQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQAYNeyVS5Cxpg8salKqzj7XVdc7Vcn6+VDD4X2OlfYkwq/7ZuhXnITv\nhU1tsUhLC9EYpv85NTMwRWDehYYx00m+XR8190ZGHQoS5dMluWCoFELHlZfnBeOe\nY2E6F8eRyQG2AyMXJmC3xaxBbh1TrAOth7K16qq7bo3vfuUEOghDFzcnA2OG6tob\nVS8m64P6H2ak11fF/Ej+DRGGTcoZx85r+nbDeVPUTYw/WbcQytebpH2xK5otImJh\n/bWUlx3KK51hfK4AMa/MMMsFBPZA4zTwpYikWVFp+6KmqhS3wJRhc21FQfarGTKE\nUvU+u0xKcWkUU82tKJf4vohPR4z0oYWb\n-----END CERTIFICATE-----","discussion":"https://github.com/tschuegy/linkboard-nextcloud/discussions"},{"id":"cromqr","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/skaife/cromqr/issues","website":"https://github.com/skaife/cromqr","created":"2026-04-25T07:27:14.228041Z","lastModified":"2026-09-16T21:30:39.611475Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/skaife/cromqr/releases/download/v1.2.0/cromqr-v1.2.0.tar.gz","created":"2026-09-16T21:30:39.580246Z","licenses":["agpl"],"lastModified":"2026-09-16T21:30:39.704218Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Llxf+VJG9+prWEPJ8NkpStupnXWOIjV/Gk65CkP3xLpiOpLnaIKSJHaco9nPqDI5cKdsn13qlvo4oVMwQxYhpJPX+KJmHgW9si1IRwGK0DtXcMZAglgpYd1lePPiEk2K4KYnkeZ2Wi/VCo7qPRkb33z7XgCPHbiRdQl9LOz0sgjo1/SylbyTAMIzUVw7EYGEaxan8+8OwJjjntJu3jjV3lSulwWxR6UcWog6PqLvB0kllb0doQrF3UKtPM+jFKQDVwALnv71J+hSG/fafneFEPZJsRewFZQpjqVQcduLmKoAZUWSspzAuwFBI0WGuZdPe2ub884iQGfBwsTz9j8g8jU4PBYnHQrpu8Jy8AQKdRKbyof9MJN0K9RuMJ7Zf9tamqpZjSDSe1z0jA3pw1JJ4Tbt5elzj64iyHFpnARNaJXoNStVaxvh3AhRoCdFCbsjPXe/dDyz6VdynxeCvynDY9GN3AQwwINFRKOnhJvw8EMuf8G/VdNkDFnWpKSH9WI6cITT9ZMbtaesoYx8w+VR3eCVjgcs1bJkCqG8pQNjcfS5D2Lp2DnPdxhnCqKK+oXM2I0tu5NAuYpcRuzkLuWRg8n/bwZRcg/BgRX0Jvi+8x0cJu3NZi3WQs0iPCbKCH4ylt3KfjK3eFUKx9//PYwWUZ/R86ZNP8vBxq63sK9AFSs=","translations":{"en":{"changelog":"### Added\n- Enhanced vCard fields: multiple phone numbers (mobile/work/fax), multiple URLs (website/social), organization with department and sub-department, nickname, birthday, and notes\n- Nextcloud 35 compatibility\n\n---"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWlmZS9jcm9tcXIvbWFpbi9zY3JlZW5zaG90cy9Dcm9tUVItTmV3LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NrYWlmZS9jcm9tcXIvbWFpbi9zY3JlZW5zaG90cy9Dcm9tUVItVVJMLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"CromQR","summary":"A personal QR code library and generator","description":"CromQR is a personal QR code library and generator for Nextcloud.\n\nGenerate QR codes from seven data types — URLs, plain text, contact cards (vCard), Wi-Fi credentials, email addresses, SMS messages, and geographic coordinates. Customize foreground and background colors, preview codes live, and save them to your personal library.\n\n**Features:**\n- 7 QR code types: URL, Text, vCard, Wi-Fi, Email, SMS, Geo\n- Live preview with custom color pickers\n- Personal library with list and grid views\n- Save, edit, and soft-delete library entries\n- Download as SVG or PNG\n- Export directly to Nextcloud Files\n- Per-user isolation — each user has their own private library\n- Fully client-side QR generation — no external services"}},"isFeatured":false,"authors":[{"name":"Scott Skaife","mail":"crom@skaife.org","homepage":"https://github.com/skaife"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhM8MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDI0MDYyNTMyWhcNMzYwNzMwMDYyNTMyWjARMQ8wDQYD\nVQQDDAZjcm9tcXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3zqHh\nscQGTXb1OZDLw6q9aEERGPuQUyN/ay2m6b56w8zalyGcrKkQs9GJK44MaYanzJeZ\nnjxuJZwXhvB5EuhiyyA/BGYNrRUlLz6DdAtqPvtR879xCVrjPuntfheQvayXXcE8\nH8OfoBgRBXIjD/KO559snumBUt2lEG3pFiQq363xPYO6GitARezFis52sbXvTFXS\nUtK9eg5mPBmRn+tC/fC1zoUo3Gax8J0IKy6LiHPa9/KoBdHNzhrko6DqBwPxIXrZ\n1X4asQgi+ThB0IzQ0ddkxSk3eA7Fgx6mtEyjEo9VHjr1Mq4wvPebgQhReJ/P7TUC\nqckGJBPd5SW5KqeCtOmv2y7Fkq5rshPOFGfMdVXjucAShv2TgJiX/A3/qXcRTmJ0\nEHPEHquryYDxBGAECkkVJJ9ya+ADjJwmdraXmSxOkx8TOc2C6JO8dUt15QEKDTrU\ngd8wbN2p7u+Y5avIdYQJOZBvp5cabinazQC+OGK3JVSFl5dORhOtdmK+qi+jUkEl\nE/dysElWtwWElWJy7AXauozZymLYla6QZWJvQ8RLeNP2PaRaLmrtOLlTZCa+AHHB\nLHZ2Ys1n3i9R5A4ab10sK9+ABNnP5Os0RnsFV4CPFHBObf0fny8yOVoF5aY4khXP\nXaziOVIEnDTt27O4g9pHR5NNUJvarm0Qnwp7yQIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQAWUrj1lm4mNLWrXpwc6R4kO6ThMrlc3BHrDky8l5IpxqpNngg0jKb9uoum\npM+OoYJt04/MVlPbILgFsAbxZRYuMtTGgHgTlvBCLqG4NFRZCeqyArgcSNmSt4yg\nta8nuJmYFeDzly2mZDR9dxfvGJlYjHKwYDlH3QJBdqyVIMBWM4MPIdJcJoTxccVM\n6yrVh/xFdPZXO6zFOdrfFFUjciXkhYzVCE7/hKarFqehqCfkg5yCu5F401dS3gO0\nMmL2j3FXfDccr3FfrNHzv0QEd5a5btz/FNTrBF9w8UBnnRSJTbUgqO9nB8UujqI+\n7q1D1Gf4IGGRYNE1vaxbZK92dN2V\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"group_everyone","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/group_everyone/issues","website":"https://github.com/icewind1991/group_everyone","created":"2018-08-10T18:33:57.975685Z","lastModified":"2026-09-11T20:39:40.376114Z","releases":[{"version":"0.1.21","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/group_everyone/releases/download/v0.1.21/group_everyone-v0.1.21.tar.gz","created":"2026-09-11T20:39:40.355053Z","licenses":["agpl"],"lastModified":"2026-09-11T20:39:40.434622Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"WGm28cuHm0ZC0epWiUyt99RtoMp/RcSH6vBI7fZNSLib5gD2HPSciQbNXgpV3o92JUnPuCsc1SOQpp2HkjWUBVvAkTx7qPGiKyhbsAXbOIymWYupCKAtWgnW9wm6LrzCzEpTm5geKa1983YKbfD0xWZwmH25U1SRY9K0lgwI7KEm1ialUpdo5cSHx0lsZNK5fEtdGWZsr+8W/x0aAHC2N49H+v5bxZDiUU9yeY9LDy7X+ybiTdabDTR3mor9UjJNVbPr35eTgA5v8nLSY/biM93uLwii6Ybiy66Pl5rGf6H2ah+lL/cS1T2tUJi5u2Hnvd2WnUnhMuwNHhv6k5appVp0xigpHNoX03udJzv/CTAiBLSyB1wOOX4rF3JKx3WDlp4c6k4GRWWU4oN4YndlUIpzOJYikMtYXTlZ5oWbXt/BAJ99AP9ZpQi87kvB8MEftDzoCR1SoUa0nYHkUk2X3LdMlKmNVz6o/b+6laSttP7Zde6//4fbfZQla+tsHa6uLdVHZaUTX/FgehS3LHWJpWoY1JSbJY2HtbnI33whbIFxg+gTOmXiMqPZd0TpXTC9IaarATJTwkMGix6e17LfrYeoFvgLbpHZY6QkMcXSqrmDR1XAdI94eJ59eug6OhZge7Aey09Wu5BmVMGwX5/Rzxd/OPtSPDuxSol2I7qckrA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Everyone Group","summary":"Adds a virtual \"Everyone\" group","description":"Adds a virtual \"Everyone\" group."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhCuMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTgwODEwMTgyNTAxWhcNMjgxMTE1MTgyNTAxWjAZMRcwFQYD\nVQQDDA5ncm91cF9ldmVyeW9uZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAMH97KX0WwLnDVryye9eOGKjhDqrWlDmOG17QKH44RpxjAe66latpSBTsPOj\n+1GULM//ztySwwwny+vYAgdIgqwjsUHEtz8mg2luEXp2UFzIQOgH7uMZ6ZdWTBXM\nyb8aWK1VNMCY8LQ0vuP2fDicT/BT23HGCnBxkWWzEOzMZipL2C7QXx7efzArTHbQ\nE1dRHTjtFk7JLdNwbloF3xsNr8s925HfDGjJ10UQRTkIvejVTvkDQXJ+6rfFiPp1\nUP8C2sJSl8pIXVkzXvmm+OiWCMyj0UI+1Qr5M1OrRC4WDit5PNLow6k819wqcTRy\n/fmkiUCusPor/7gZUBEazCw1nzgYc+Qkcg9bE/mxY2Qi9/lD+LtPuJujXkGSD/Xv\nPY5XOYvPXIaTG4UFakxNu2BNI3T4/+4UA2COT0QwO5mENM6aNdI73ZzSeatZAanY\npx+mpEHfLtZ9j2eXdPPBWC+xHJlyKYWBL0dMHV8FBK9BnT1SGp2uoVQuQajMRR8F\nv+dpc5obQK1nsbDPv3/46+kLk09Sr+wNfTB1xWxpGppVL94G5BsAhLtrEYPqXPOI\nfWaDSyfVG81Asv3eZTcjv1h5XCrzCEBvr3L1VCkPMvNdiDHqIr6QjxfzBi3ZFIRj\nKmp8zAG229p6SgVTqRG+eoa2SoJGzFF7xaKkFzi6mzsxdRq5AgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBACCxBn3LZalyHFQlDBygVtqiPRcjyuZeIAcdRUkdjKWQtZOe\n5982d3NY0PSi22cl4uKfXzvlQzoWglg49bdjy+c28grrGYXWzsi71hr6NlOgnQB0\nHJLuIUA09WdVX5RTOhe34+BBhbL300Xmv29Ptz1Z+h5nhSdZin1gWXd96eZMesMY\nJ88v0Ab7g+SPujQuKKs3PQzx44VaRCdLT7G87VSPzHtgcvzpOYNKcoUNi8BSLa/3\nW9pSOMfl2tl4H2Cn5Bs1+U1OlV3Tw7URfwrtvZCw+LRDhBib3/hvJ3e8CacOFID2\n3BNxAsUiB9ACv5X2dVBuMX+TOoO+gI378vYlMEI=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"rechnungswerk","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cpcMomentum/rechnungswerk/issues","website":"","created":"2026-06-25T15:39:13.047971Z","lastModified":"2026-09-27T21:44:38.238781Z","releases":[{"version":"0.6.0","phpExtensions":[],"databases":[{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/rechnungswerk/releases/download/v0.6.0/rechnungswerk-v0.6.0.tar.gz","created":"2026-09-27T21:44:38.225797Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-27T21:44:38.273971Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"wg5yewCW5vfdQZnV0dNb/lKpFHlCYBCQoFdEXshRqup0Qu3MYg3+0aCeIlzlWe6cr3pvrL5xa+g8pa8JSLAm0KitOVwh6Vt3SPjJkPBaxc3to4wYXjypojXsmfmVIFBxjr4MGqCTE3Y9kwnMUSrOTxCiaR1+OG8xIe8m/+SnGKpxn5eccoEqg20mW6tygj4qCUk0kjqJS6DT68HEjYo8OaZqZlaaA4XLNobZV2WVrUhE4SpC6Kawi0M1BnMRRPe2m2Lt+xkSygggOP+bY23VOOyHBRGesddX7cPAL7Vl4wbYKgwZM33pAHwqZTHDpUbYu1HT9o62njEc9Ap0LEooUw==","translations":{"en":{"changelog":"### Changed\n- **Unterstützt werden jetzt Nextcloud 32 bis 35.** Nextcloud 35 ist geprüft\n  und freigegeben: die Unit-Suite läuft grün gegen dessen OCP-Schnittstellen,\n  keine der genutzten APIs wurde entfernt oder geändert (#309). Nextcloud 31\n  fällt dafür weg — die Zeilensperre bei der Nummernvergabe gibt es dort nicht,\n  Festschreiben, Stornieren und das Festschreiben von Angeboten liefen seit\n  Juni 2026 in einen Fehler. Das ist jetzt ehrlich ausgewiesen, statt eine\n  Kompatibilität zu versprechen, die es nicht gab (#319). Die PHP-Untergrenze\n  der App bleibt bei 8.2; Nextcloud 35 selbst verlangt mindestens PHP 8.3\n\n### Fixed\n- **Festschreiben ohne Firmenname.** Waren die Grundeinstellungen noch leer,\n  liess sich eine Rechnung festschreiben, aber es entstand kein Beleg: Die\n  Nummer war vergeben, die Rechnung nach § 14 UStG unveränderlich, und der\n  Download meldete nur „Die PDF-Erzeugung ist fehlgeschlagen.\" RechnungsWerk\n  weist jetzt vor dem Festschreiben und vor dem Stornieren darauf hin, dass\n  der Firmenname fehlt, und verbraucht dabei keine Nummer. Bereits entstandene\n  Fälle holt der Nachzieh-Auftrag von selbst nach, sobald der Name hinterlegt\n  ist (#313)\n- **Festschreiben auf SQLite-Instanzen.** Auf Nextcloud-Installationen mit\n  SQLite ließ sich keine Rechnung festschreiben, nicht stornieren und kein\n  Angebot festschreiben — die Oberfläche meldete nur „Request failed with\n  status code 500\". Ursache war eine Zeilensperre bei der Nummernvergabe, die\n  SQLite nicht kennt. Auf SQLite entfällt sie jetzt; doppelte Rechnungsnummern\n  kann das nicht auslösen, weil SQLite ohnehin nur einen Schreiber zulässt\n  (#319)\n- **Adresszusatz und Ansprechpartner doppelten sich im Beleg.** Wer beim Kunden\n  einen Ansprechpartner *und* einen Adresszusatz pflegte, bekam zwei fast gleiche\n  Zeilen untereinander („z. Hd. Frau Meyer\"), weil der Adressblock die Zeile\n  zusätzlich aus dem Ansprechpartner ableitete — und der Platzhalter am\n  Adresszusatz ausdrücklich dazu einlud, dasselbe noch einmal einzutragen. Der\n  Ansprechpartner ist Kontakt, nicht Anschrift: Er steht jetzt nur noch in der\n  E-Rechnung (BT-56), wo er immer hingehörte. Was in der Anschrift erscheint,\n  entscheidet allein der Adresszusatz — auch ein „z. Hd. …\" gehört dorthin, und\n  ein Hinweis an beiden Pflegestellen sagt das. Künftige Belege sehen dadurch\n  anders aus, wenn bisher nur der Ansprechpartner gepflegt war (#328)\n- **Wartung:** Der wöchentliche Kompatibilitäts-Wächter und die Unit-Test-Läufe\n  scheiterten an einem neuen Nextcloud-Major, sobald dieses die PHP-Untergrenze\n  anhob — und zwar bevor ein einziger Test lief. Gemeldet wurde es trotzdem als\n  „API-Änderung\". Die Test-Läufe wählen die geprüften Nextcloud-Versionen jetzt\n  passend zur PHP-Version des Laufs aus, und der Wächter benennt die beiden\n  Ursachen getrennt. Zusätzlich wird gegen PHP 8.5 getestet (#309)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wMS1yZWNobnVuZ3NsaXN0ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wNS1hbmdlYm90ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wMi1yZWNobnVuZy1lZGl0b3IucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wNi1rdW5kZW4ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wNC1wcm9kdWt0a2F0YWxvZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wNy10ZXh0YmF1c3RlaW5lLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL3JlY2hudW5nc3dlcmsvbWFpbi9zY3JlZW5zaG90cy8wMy1zdGFtbWRhdGVuLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"RechnungsWerk","summary":"Rechnungen und E-Rechnungen schreiben mit automatischer DATEV-Übergabe","description":"# RechnungsWerk\n\nSchlanke Nextcloud-App zum Erstellen von Rechnungen und **E-Rechnungen** (ZUGFeRD/EN16931)\nfür deutsche Unternehmen — mit frei wählbarem Empfänger pro Rechnung und automatischer\nÜbergabe an DATEV, ohne den starren Zwang von DATEV Auftragswesen Next.\n\n## Features\n\n- **Rechnungs-Editor** — Positionen mit Menge, Maßeinheit, Einzelpreis und USt-Satz pro Zeile, Live-Summen\n- **ZUGFeRD-Erzeugung** — eine lesbare PDF, die zugleich eine gültige E-Rechnung ist (PDF/A-3 + EN16931-CII-XML)\n- **Festschreibung** — GoBD-konform: Entwurf → festgeschrieben (unveränderbar) → Storno/Gutschrift\n- **DATEV-Übergabe** — automatisch per Upload Mail beim Festschreiben\n- **Kundenversand** — PDF-Download und In-App-Versand mit Empfängerwahl aus Nextcloud-Kontakten\n- **Produktkatalog** — wiederkehrende Leistungen einmal pflegen\n- **Stammdaten** — Firmendaten, Logo, Standardtexte, Nummernformat, Kleinunternehmer §19"}},"isFeatured":false,"authors":[{"name":"Axel Deffner","mail":"axel.deffner@cpcmomentum.com","homepage":"https://github.com/cpcMomentum"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDCDCCAfACAhNyMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjIyMDcyMDE5WhcNMzYwOTI3MDcyMDE5WjAYMRYwFAYD\nVQQDDA1yZWNobnVuZ3N3ZXJrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEAxwoS75lgcuMhZyoEXdTSGHtBaDVUXobuzzXLGIysuquaVwnAwdK+PJTqrPQh\nUymsvwBOGiZNLhWL+b7YhvdAhmKdVSxX4X6IhnerumFnie+df8oqTO5+EhpRKAPr\nB2uJngJDZI9iLzq752SDymW48EQRNotrNJzAIuOv6S+JjGQl6zF2AGqArPWtLg5b\nqqL4hl4o8deNIDQYlc+jky9nDcAAze2U0bB8SQvLCl+kupThBG0FpWujgIeibiWU\n1cR7M+YLOT8GDX021ixo6421BndkNqHKMCxZ+F6dDHa3aGq0qaH9AFyeVS8vkH84\neKkGfPEwZc4l/t5tiQ3rwYE7jwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBfbkus\nKxEo6U+jlkymaBgpz35CycwCNmTWwuuLGU287vzbKcaU9iBWSc+qFd8BtGXrE0kc\naQzX0quIryB+IQ42hIVYuSqTQ9HTlXT95o/bX9uKxSx0YDI6jkqt5HnTwVycLGWc\nVu741ETcaRn7zqRWrFk3L0RsgWC7gtq/W6yCQaj1iJYk47Di+b5qUCcIWcMbUNyR\nstIdzJf6O2PQXQF8TDkv7xbQGCRizMVpnhSvGpCA/Pwr7XwN/XlNJPbzMt0T+DSA\ngXnVu454raanP0asyRTBHZY/QrYleHT6JFvOZjxIXSku+ZHLFrDfaMAlKaoWGlD0\n318qOb/IOCBSOiBa\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"hitobitologin","categories":["integration","security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cevi/nextcloud-hitobito-login/issues","website":"","created":"2025-05-08T20:46:12.755439Z","lastModified":"2026-10-20T21:21:07.835670Z","releases":[{"version":"1.3.0-nightly.67","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cevi/nextcloud-hitobito-login/releases/download/v1.3.0-nightly+67/hitobitologin-v1.3.0-nightly+67.tar.gz","created":"2026-10-20T21:21:07.854470Z","licenses":["Apache-2.0"],"lastModified":"2026-10-20T21:21:07.866798Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"jNG0h9cCbyrnVVrqOX6/4gdvPgm2cZ4mHHawtZe6EqjgR7ojRClL7O0Lv14aSS0DE5wQZGs39ka4OK2EwfI3v+bFHuRLnWQJoC9dQzh2TzoHTCbfiC7UUsb9kYk+YvpUjanUp+hXRoxQ8EV3IupVV4BOz5QA+EAi3Q9e1V84W9rpHOyQGEt/CNgBvoGFaUf3WiV5xRl7cxJ9kDQCJr6E2+Hzn1ZBmMlIf+09kuADHr3Ymxh4VAhgKGkqSvYOLH+9oTDsfuFLITth/kYMHcGw1XPNV8TkQyC54dcJiWdv8nrYBeHmqTGUDTbqXJG1EMA3FczXKQfwK+eIof+5GX8vYDjGiBqrkWQ69xAP0o+AveBqKhrXX8Ek2n1EyT6xkyJJKDCkr09JZ+fmT+RMpzP+f79hMWnyZ+d22fMAco3HW5+FTjYCIhOaU76ztPRAE1U+4kEnIjUOYGZXBhIe/TPlq57RxQWJQFY3D/KgQXPMbc/MiF3LXziFDq/nx/spReYqTreeqo1KN92JeVIhoZamNl8iXIbpHXB/Wfzw16DjfCXkstzDNnEF/Mg1DXS7Dfle5Wmzy09LkCkCqAuz5A7V7p7zBQpac+j7/rnzphMlcVIO5DfjS+rnvK6qRnjw8Gxkj9qTs8jA9XwQQ2jE3pOM0THck60eXvdnCkIhpfjmu8M=","translations":{"en":{"changelog":"### Changed\n\n- Migrated user values to the new user config API\n- Group memberships assigned by the app are now tracked and removed when the mapping no longer applies.\n  Memberships assigned by other means (administrator, LDAP, other apps) are never removed.\n  - **Upgrading from version 1.2.x or earlier:**\n    - Older versions did not record which memberships were assigned by the app.\n      Upon the upgrade, all current group memberships of users who logged in through this app are recorded as\n      assigned by the app, except for groups whose memberships cannot be changed by the app (e.g. LDAP).\n    - **This also applies if `Automatically remove groups from user` was disabled, so memberships assigned by\n      other means (e.g. by an administrator) are removed upon the next login of the user if no mapping applies to them.**\n\n### Removed\n\n- Support for Nextcloud 31\n- Option to prune groups - groups assigned by the app are now always removed when the mapping no longer applies"}},"signatureDigest":"sha512"},{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cevi/nextcloud-hitobito-login/releases/download/v1.2.2/hitobitologin-v1.2.2.tar.gz","created":"2026-09-24T21:11:48.663548Z","licenses":["Apache-2.0"],"lastModified":"2026-09-24T21:11:48.719787Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"XCPihQJlnRRgs9IqM+RsAVDzEC9nowFhh7hDZqenog/v5rvrMmvLXGrcdZ2WH6Fv+6zT2smH1Iqvn6l7mnlnqasMlwvP8H+Od6bdXN9/Od6vVqiKhh3GRmK67zXuTb3lkCNT8S3AaOXTx4r7y5x+61dlta3PdQEkyfTX8nP0/7CyjcHAKkR4XROUqzUsMwcT88RdyhxbQMj/si6PKrkfRlQ5BXsvl4MuLmfQwgvlVIYiJIo+wPHpW485lEqzJTHLPKbVDbtmEF46BxRxCi9DyGDIoUwnYOBYvMzT7iyqtjbxwzuOZvBKpaUFHCVHWjJ2b+wfGkRYynVK4yX5lfg81kp0idz8PbXbjWAYeqzSL40OT1SpeD2NRMVvFWhA0S5q5f9aC1Cx8f51FPpUm4ufF4WlI7ngdSWq4BSEymM6oy3Tn7rdgbiwlJFHakV7ax5lso9jxsbQuPKNjOCUyXYffz341+TkT6+8WMmV3oA8zQdW0mNn6KcjTjx/eSCYrXXOHaGZq69QQsNkzPSxGx30GGNmpqtKW8sKCOKLJQIPZiOJ2lcb6Cshq5N3VXCBqWCXO0Z7byHL516FY3z1Ee1B5b7sQo4OXDKe3gyznwrKZwPCQhNav3W0+6JmIgRYRKdeCAzeZNAB9dUVEfC8ZaKjTl4LY1oq0tbmxr10Fnp2WaU=","translations":{"en":{"changelog":"### Fixed\n\n- Import missing dialog styles"}},"signatureDigest":"sha512"},{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cevi/nextcloud-hitobito-login/releases/download/v1.2.1/hitobitologin-v1.2.1.tar.gz","created":"2026-09-22T20:28:46.112637Z","licenses":["Apache-2.0"],"lastModified":"2026-09-22T20:28:46.227030Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"shTzDEdhpAzIKJM7j9HAfbX5YnqvywqKmUEYT32FrbtcKidW35GYgyPFtGics3m8qk5KiYD14lujmDNowuHljGkOyaUyYxG57wfyhjxVHBu7rnzO6K/J4qTZwmkYewsY9R7lu5M9DPeZ1YZz9l5IO4aM701JRS8Um1RgjwtqA28nKTBiZmQrUq0BuAi4jzWBNztmrIYEoa8PBSJxXSTDyfEDnaeX4Duw+S/pgwXyVQGu9zJ9Rb+YCC5pW0WEscB0yvlEmmeEWbxaZS3fzzpyo8ZvpPncr/YIKOJBmojcDbGgdIHIvnk6Pu3DseTwmklplVEqi/PgFRDRN5NxHYQN8HMzgfLwPZtd7IM9Nk/Xl67c38yxYZFqP7nOl0n7BbJEiMk5iGBs4rsTmPmIf2UNdHUlm2I+0WFmS5x7DnW3NT6cCrfnNo4/xOT+/soRdpiUcVB8R536nUK9cL0Q4amzaJeVPkUjKt0WgWvVEMpdjjukEy+ZIU7ZZx4Fhu99Llv4mJJorl5xVDnIRdQrVBzMp2VyfLHauEOJ5lYVfCyI/IztGiiWPIaBj0osyz0c+r79qxt0xmVNfVg/yeC+mVyjVNj/On2/nha4AHrxqgqd+cEmKUfscXRvscQdKYBkE6THoeSqQxL3BwBtpyCNBe9yHVEYqXp0iSTiOz3MofiM1oI=","translations":{"en":{"changelog":"### Changed\n\n- README: Added hint for instances without Pretty URLs\n- Updated dependencies\n- Support for Nextcloud v35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NldmkvbmV4dGNsb3VkLWhpdG9iaXRvLWxvZ2luL3JlZnMvdGFncy92MS4wLjAvaW1nL2FwcHN0b3JlX2ltYWdlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Hitobito Login","summary":"A login app for [hitobito](https://github.com/hitobito/hitobito)","description":"**A login integration for [hitobito](https://github.com/hitobito/hitobito)**\n- **Group and Role mapping!** Map role/group combinations from hitobito to nextcloud groups\n- **User info sync** Information like displayname, e-mail, address, birthday is synced from hitobito to nextcloud\n- **E-Mail detection** Existing users can be linked to their hitobito account based on their e-mail\n- **Block unknown users** Users not fiting a role/group mapping can be blocked from accessing nextcloud\n- **Automatic group removal** A user can be automatically removed from nextcloud groups if the mapping no longer applies\n\nThis application and its developers are not affiliated with, endorsed by, or associated with Puzzle ITC (the developers of hitobito). All trademarks and copyrights belong to their respective owners."}},"isFeatured":false,"authors":[{"name":"Bovist","mail":"bovist@cevi-buwo.ch","homepage":"https://cevi-buwo.ch"},{"name":"Grizzly","mail":"grizzly@cevi-buwo.ch","homepage":"https://cevi-buwo.ch"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhKjMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNTA3MTY1NjM4WhcNMzUwODEzMTY1NjM4WjAYMRYwFAYD\nVQQDDA1oaXRvYml0b2xvZ2luMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAwz4lVSH4hulEz6MdgW+cPu1IgE5fGEkaCsA2RZUy9TQpqy+0P78WNrlk5+zC\nouEdLAwWNp8CdtQGykiCabumYgRiUbtba3SGKBmCcvdvKbwy+zbr5/YnbM1uEu47\nkKHB7ZUOLJwQeEMlCh+/ymgUcef51laSw1vjETRRtEWH7JU8x0pf5dt3ANGU/s9h\nq5APsDo8NcJ41FH3tUcwR5WnW1pEqAfvgFc9xcoD3MrNfdAxMhqwuXTWS43IoYlu\neQDNeus7G1RVIRADVE5HqQ1FE9jmc7h9dL0alxnqtIaUdCfEDtbaAEicVT+cE5TC\n1UKe0+foIBLHjUWMfSlib70Bq/tRXKd8w1GvT1HyQ4MqDt4nIifrCPWlw8SGdXpC\nZmTlQRucGmP++pwhlMdcEl7owJ3vLdhNE5lmvguePXKU+Yi/2fD1KpeJi9cV0Fh1\nlDyrEViazQK2SQ18G8ZLDvD13RNUuyXJKXBNZRT7Xa2JQxJ+JmafPDE/oSeqFxHI\n6TgV3bODfrBUI1z5AaWqJaF0TPKuKNbymu2z8bcHFi9KC5KEVTVp3v9Kf1RM5Pz7\nHAOAps5eZmZKyRS4Aw2Wpy9GdLIMx0dO32AqahNTRA9TKcxUBkTmApIuPXIvUIwT\np7/EX7r3HNmKvxPVKov58/Onro5Z4O8rXMeI/9QpmFxVms8CAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAH8PQnVeLO9EPuFWnyZQ/+HuRa7j0HHJZRYWIdIdIb3vMtLVG\nv2pacqnWQ0r9rAwyyT9Ekv2jZfRYc1d/CWFEr923uTS9gqF8nVyhT8ENldnh2YfU\n0fz5bwwG3VD/eyJaEzGbOMwyntQY9rR9E3MTxET5NEt+Xr63YfhLaeYt4KzPt8A/\n7T/rpRYpSOzaJSXhWtYQkpRkx5IEEq3BPT6I9INeJVwpz6xjjdiG0Ib4Q9Nrdiqm\n25cIj1FaaCTx76MmdJjVX6RjlxrDHvbSg3xcu8bAsyv2xE/m2ONPQAeJ5kTBtyLQ\npmqgT1WqiHdOBqpeQfb832fMmrRxcc03+OBZzg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"root_cache_cleaner","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/root_cache_cleaner/issues","website":"https://github.com/icewind1991/root_cache_cleaner","created":"2021-08-23T14:52:11.348928Z","lastModified":"2026-09-14T21:20:20.279727Z","releases":[{"version":"0.1.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/root_cache_cleaner/releases/download/v0.1.12/root_cache_cleaner-v0.1.12.tar.gz","created":"2026-09-14T21:20:20.264454Z","licenses":["agpl"],"lastModified":"2026-09-14T21:20:20.326759Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"H6thETvMkw9cCZ1PMAgI5wURP5Xw2SbvUvCxUvtngHgqhqOLwHBffihtx6upItFaHplhBqz7HnZqmeyCZMBP3JgHk0L8ieDaeCHmMBDVqJqMmd5f+aKSSuF/1Tqz5Zdwbu8mbv5q3qcWRbX24/bEEct4cR0zcK+mN3OcDzY+qnN9K93sYBI0VtxAid07hDGS4G0yU5m/UwcYLtjXdG29uVRP8H2kFa9p0V1uq5ITmyzn6016VdnpOciwOgVgMFvnmSrFbFsJvLQQSJlVJwK/Awpc6SFokqyWwlvv/Y/QaYPoUkxg1JwU9x3pmtmYEPOpoKR41c3UV0mmfAa4mPllQYIoBIUZmRPk52HiZN4x3EBt4RdqbeMmoZhUvQ/lRf/ZbTXhTTeH+6x8UxqFh4A4shLpTrndJ8LCUbl3JyrYvK7CnUJ2wqvhEv3Vc5PUITWzTrKzpMU06BCyIo/6Zk1AoESr1P/cv4zf73m+trq37Le7B1xkd7/OaUCpFg0W4F2xqC3gNL1u6LBAJNl05CrsaQtzrvRPAAloFKNMmRbv6aUYrk0zHAByANOyq/875wfhqBQzOE4UQTdwm5duSxM0XPGxotRPoDsHnBIdR0mwDttJL66jXCSda8514YEg6ZyOC5I00T9mXysHmOEjnXQV7QHaXd0C0ZgOLbAet2OUWaI=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Root cache cleaner","summary":"Clean duplicate items from the root filecache.","description":"Clean duplicate items from the root filecache by deleting user specific entries that got indexed into the root cache by mistake."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDTCCAvUCAhGTMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwODE5MTM1MzI3WhcNMzExMTI1MTM1MzI3WjAdMRswGQYD\nVQQDDBJyb290X2NhY2hlX2NsZWFuZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\nggIKAoICAQDM2hxxtG1BaSiIaAdisWJ1Aj8cBBXv0+D/hpiWfks4JszEoqkTkpYT\nTYO1ib3zXyJ/NbQTRwMieMYfNvPj8AnmIvNWxUlVAalihKQ8DIGg82nHz42pClH6\nEuCF4QweC+ByY7XJY8F0u0ptJ9V7h3JqB6uYhYG37zzYTe4+9BVQoPnRcAo6A5Ag\nsvDxlEJaftpv0P0Wg+YBsNecKonw+IXtF+p6cT5+WD3er6qUc7S2V05MH3xb65hW\ngPAeEYCf7hN7rqlNNngsIyY1nbNzRuToBTnocvpjOT06ZfB3IqFDg0cBnG8o3r9h\nk4gquKEnPvJu5m1W/ndBl71ARHULa86Cgw3cuwZXXK/hnHUDFHDNeaC2H/orSVhf\n9975dH2T4HP6VJKjA/fe3SRDFduNDMWC1GpD2+VE4uDfNG1n5aAXgOv1iWFImbJM\nsvWR+qdilrsnVJ1O4F0M9pav0RgZ+QM3bH14wm7YmviF/zFr6hfc3yCe449RxRjw\nc0hIDdj9wJdMplavmxVWVj7qG68jrnOOvrrGKPnHURy9mkRoXBUvjR0pqyXa5BMH\nlIxeDXWDWhUq/zz7COpBtH/aTmRB4CzdQxdqC8JKlEkiXpL2CtoZMAl50luExRp8\n/pIeql44LsHbnyniyLDM3vHRjaaN7qjdXcTUZDoCtY1J7U1T+1QTZQIDAQABMA0G\nCSqGSIb3DQEBCwUAA4IBAQBBp/2fGJYQkXEZXYFiLUsr+riEo7/aF+TTrFu/sZwq\n6OPK2duKKNISm9oShmSG8L4GWBMxfqmq5Dm9wmnQqSwtOQDkWK597p/Tgqqdb5Ob\nC8dkHVP7koy2S4k0yd0+ee/m+50UDJwsr/rz5h1RDAqXWX2tYERCRE+ROEt2o391\n9kQdF2w9jj4k31DqdqcqVjD/nR1VHypUG2LajIpQJFI4r61XPyd2aWsCHCU8VDxP\n8MbnL6fq7sDYFTaAGeRgbXqO9gK89NlYbcxMjUwm4EcV9Lyu2vXGvkY0KUVNdCGX\nMrnYqSQuen/msaI4fBd3jjoTCKYYZVbmchKJWl5d9k5/\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"backgroundchanger","categories":["customization","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/chrissi0285/backgroundchanger/issues","website":"https://github.com/chrissi0285/backgroundchanger","created":"2026-09-26T14:55:02.660097Z","lastModified":"2026-09-30T11:57:46.968248Z","releases":[{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chrissi0285/backgroundchanger/releases/download/v1.0.4/backgroundchanger-1.0.4-signed.tar.gz","created":"2026-09-30T11:57:46.961537Z","licenses":["agpl"],"lastModified":"2026-09-30T11:57:47.014305Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"V9CSNfcggtYahyU6kxz5NVuOG34YdOfY5VVpOBlfFhN1DG+YNGi/KlGzrlgUDbIujZTnH+jV2tqP6gW753RqFLsqb3cQfGQ00CgE8veoKhXseZiLchn7ZTJQzjH6cKoJdlc0yIa/FXo+Gh560uQENYIxdbMyeFwm6nWpXmobLZYBX9oqz6r7dQiOdlY9jNSFuh4QW7eYvxAJAvP65xF+MkT9EO1uHrFe8tKPgZPeyd6I8FqXOqg9udbQafd4mJusFw/jUGNerMujQGqOWxO3DGlK36MCg+thXwzr8fRN8LdG3C5DI8HJdYpjVr6dNpdRfE2fpiuLfyYU92sVOqLumfdm+4z3MAihA1yttamYjqYMLh8qhX11s1WOUpTi1/H+vRkboEGvpzcu0EymcJy+ZLNcf5xmcHCGs+asoCsgVLaUXnVmsJob+TiXy0Zxd881AlatSScMB/pWLFE8jW+1bCsebVBVMHXPBRN1tKXi8CDCU4IgNU69S3tRgXaxZyX82JqXKxE+Mo8iopE0/lszJ5yve2chwZhfpn2DBmAi5nH9ZLO4Dklohwwug35xPL+Pe+Ji4yUgsBE0jI1mz6Hd/4pJSWx58f8Dos6aHMAzoV9x+HUNLceg6t4OhJxQ35x9VJl7byDiytY45yEO2UIiH8zmLvuQjJSE5cT9vPnPZ1g=","translations":{"en":{"changelog":"- Unify the visible product name as BackgroundChanger, retaining the existing\n  backgroundchanger app ID, certificate, settings and update channel.\n- Merge the published settings fixes with the previously missing collapsed\n  attribution and print-hiding fix.\n- Guard releases against stale/divergent source trees and add browser\n  regression checks for attribution behavior."}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/chrissi0285/backgroundchanger/releases/download/v1.0.2/backgroundchanger-1.0.2-signed.tar.gz","created":"2026-09-26T15:21:36.016419Z","licenses":["agpl"],"lastModified":"2026-09-26T15:21:36.085692Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"p0Uj28K1c8jd9nksYMNvTle+vTVMW7EA8soVLnqRkLDNVCd7ckoK2Z9BL5zitVFTBqM4Dv6O/Dt8w35bpNCK4wptdbRYQjdZhnR6VuIulPCCdbp9FQPeObLyvtexMlK5ObMB9GD8fwph79ohdZnhteefVhBHfgumDvUMomK7uD7kJjslXibMGGAhRVxLCyD3BHSGWC2NKddPKjd6DxOHFaq6P/124ICBS+szKMFll5bGZhV7ZtHxRsEsMXYBcBaknxND/zrx2tDI3jhMNPBTBVY20QShpotcTrUjWFVRhkmuOYzZyUQI5/vwhDi4PVP4vuFydiZFKoEzgd9y3k9CU5DqFb/dT4dXQZopeYs0iLhZwDAFE9pjd7/8UPxHyXg9geX1rcbQR/09c3rT9ZqrsVmJZIKeBdF2P6WNlN6EbeH2eN32ejGZsDcRkI43ESSCrJvrTQLHvwkCEK8f/bO/t15Ij5mUdABVboL/IFIA2SjjDPnT6eHI1sU6hKF7IXtDrNOWN+W7CHT2+QnvUVLmqySGdRyNmCvOwO37MtlHeHkm8ALFSXv3Kd/TCurheM9/fA+V6B8t2oCz58rXE3XXwaBKBJb8TW0lgNJlQc2G4r+3F4vx3nOdtK8vei6iIel00UzNiMoYOPYEkdjy3sctfOZLpIbbgo02YttpNYlmUGg=","translations":{"en":{"changelog":"- Display an accessible inline save error even when the deprecated\n  `OC.Notification` API is unavailable, preserving the previous saved choice.\n- Support arrow-key and space-key theme selection through the same validated\n  save endpoint as mouse selection, without duplicate writes.\n- Assert HTTP status, OCS status and persisted values in the declarative-settings\n  contract check; add regression tests for rejected responses and persistence.\n- Verify all themes, keyboard selection, visible HTTP/response/network failures\n  and rejected unauthenticated/CSRF-free/invalid writes in a real isolated\n  Nextcloud 35 installation for ordinary users and administrators."}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"BackgroundChanger","summary":"Rotating, locally cached Wikimedia Commons backgrounds","description":"Shows a different curated background on page loads, after in-page navigation\nand every five minutes while the page is visible. Signed-in users can choose\nDefault, Off, Landscapes, Animals, Space or Architecture. Images are fetched\nsparingly from Wikimedia Commons, validated, cached locally by theme and\naccompanied by author, license and source attribution. The browser only talks\nto Nextcloud and the last valid images remain available while offline."},"de":{"name":"BackgroundChanger","summary":"Wechselnde, lokal gespeicherte Wikimedia-Commons-Hintergründe","description":"Zeigt bei Seitenaufrufen, nach Navigationen innerhalb von Nextcloud und alle\nfünf Minuten bei sichtbarer Seite einen anderen kuratierten Hintergrund.\nAngemeldete Nutzer können Standard, Aus, Landschaften, Tiere, Weltraum oder\nArchitektur wählen. Bilder werden sparsam von Wikimedia Commons abgerufen,\ngeprüft, getrennt nach Thema lokal gespeichert und mit Urheber, Lizenz und\nQuelle ausgewiesen. Der Browser spricht nur mit Nextcloud; die letzten gültigen\nBilder bleiben offline verfügbar."}},"isFeatured":false,"authors":[{"name":"chrissi0285","mail":"","homepage":"https://github.com/chrissi0285"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhPqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODI2MTQzODE1WhcNMzYxMjAxMTQzODE1WjAcMRowGAYD\nVQQDDBFiYWNrZ3JvdW5kY2hhbmdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBANymUnG7CPsE0g8mriCmCsDdcZvmsa/LzXQvQAkAdJIQj6FGtYh4bz/r\nB32oClS1Jmg8dvWlNWPS84J3P+wrfR/fqTugeTw7JElWGvzXDJlaD47jEYWcKCeU\nmpdJsn39vqCTUfHuxYaYvkv23ZkBkdZwLrrRBavAHLfz6T8FP+ubqs4kMHkKHD9E\nm5Gt+BdnzRGYaG77heQbO14jXLayZNi1f2CoiPvIJlWYVKcg5XMYbZU2HzoWgrDh\nzuErzvwnV+iTBkmhrIFRrD7HRfGYxgUkhd8mgUFxnRWObvXlXUOB3hK6RD0GW60P\n6A3LB17MqHTFEyR9B76HvBG515DsPv7MiLuZ2NoaV3I4yIQG7PXBnym2RTmwI7Yv\nVepYXt1Rpv95TPscHU9bCq6x7OAWQPY4cQDDMWlEZqFgN8ifoGQOPTHn08BZCote\nNvxst/++LYhtpF4IQJGgEMqi2UZ9RXPRae8GHZMDzg4aYLX7Udy+2tustveui5HG\nJeWwumRSOjg+csrPidO7KnDWqzb89PEGj80loXt3ZmkgFkD1GWbq9orhySn4s6wQ\nRgH2WwVhcgPVnlAZVyo9JZfsUmjoLgZSKrSZ5QHn5buUYnWixzGdAdt0sLCqgvMx\nYA6WxLNv0VqVqmPa/SUnDbFaZfQn86vyQRdEHKwcE6f4h9oZgR/xAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBACkRpGCrjlCnuCT0jkCcJhKHhiBMnIDYJ4nNW1Kqxugd\nKYfYTVI0N+Gjzx+znQ3fs3aIPDxxGCDABUeUv5RDVUN/6c/0YppgDrI5brng9R/y\nY/nEhAW8PCILItrtQ8bUSyM0L2Gf62Po63w+3jg85Wba3jUmEeP3Fkq5jYuo8Iqp\nAI3ys/MeXINgyhUp4vGyoodAqf/JUpQOPXMN0dzlUfMf6c4QoBwTj+uSU07hJ4SC\nmSG6YgAswdx4+4v+JBDXd3eNdBpLzjslmJWGq7WklRr8n2vM9hVARkroiFBFIqpV\nTXz5CPYCfQqiaU3fLwx6iWAvi0ftTMLrYodlVkmVhqs=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"group_default_quota","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/group_default_quota/issues","website":"https://github.com/icewind1991/group_default_quota","created":"2021-03-05T16:38:02.706316Z","lastModified":"2026-09-11T20:41:45.703723Z","releases":[{"version":"0.1.16","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/group_default_quota/releases/download/v0.1.16/group_default_quota-v0.1.16.tar.gz","created":"2026-09-11T20:41:45.689854Z","licenses":["agpl"],"lastModified":"2026-09-11T20:41:45.756099Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"xncZc+ZGZUdNrNi8zsPY+KRho/2suJoRdLvLU8cOqQBhSpl7yYxbuaAV/Daq7i876zGEb85nQEGuP95w86A41/upgkszGmaWPvPvSkRMYU+I0QtmKciHB1/opaWBLQxYI9GKWCHbm4J7t7ZPhDg1ldme+Qy2xI4H6HqEggECHmP0fIQkEFrHzPMFr2Mtds9RAID0Hx6/dw5tZBbb86o5QUDiO+KwgMPcDOv2OSA2x/9tqiJDugkS9wyzUJb9U1O97xcCOMNnfIkoXXfbKmsj+S1ecd0Z36xMaIA4Z5mFfPmywtr3KimR2hQcPlf4DGnW+VZstcdzgDU6fCcxu7MYRN88TCOvtM5ahJSI7aDt62agwQtJIXJ1QDR/AbCj0YvXLPjgvXYnbwH9HaL65c86ykpj3598c2CyXVaNJDm/oqF0d6W+raAihhmMFyZAptypZ/RT++tHsmK+9fTi+T9uloxq04zRp3dJVK/uPH4+2l1cl7Hiik4sM5L9KXCW277SbcO/o1LWlE2pXmzMLVaD6xppnUK9D/Fi9QuRw7wKaeWBZJbdBYJgGPPeF71G1SbXZnJ2jv40zjoibXAyNWWkqQAW7X4jV5kml+D+hiCI8Kmxa+dHALh0410nqKWJWFR1u2NUGKkzzZvgm4u6zy9IEH15EUe91Avty5EM5nFDA4o=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Default group quota","summary":"Set default user quotas for group members","description":"Allow setting the default quota for users based on their group membership."}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDjCCAvYCAhF5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjEwMzA0MjAwMDE0WhcNMzEwNjEwMjAwMDE0WjAeMRwwGgYD\nVQQDDBNncm91cF9kZWZhdWx0X3F1b3RhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A\nMIICCgKCAgEA57THpM0Nt0qz4OkFvL7+0iPgknCsJ/hHqZpd/bkystrXjQc6TRar\ntMhl/jUJ/6riLUof6y4rJUN/jwjE3GU+pLtuyj871ZYNlWOuHFBrH8qBdPreXLGz\nAYkmqFYzaLQLh6i7bNJ32toSowciSDoonRjB/hniHEd9wXc8uztmsmP9FnFym/zi\nwL8k7H6hQsfMRlsAxnplnKQ07LNhbNv2TDD3otTGdDGRoBs8RBv03V1yUHmPPPBp\nHbvxogtetBViciCc4TuyDibTV6E00XxCv77EmBAeXzP4+0K5LGeuilR7RwNgeamZ\ndgVA4cJWEo5qUbV9SmHoqeINVCtNaJyzCYbA0saZM5ZZG6186P3c9tX4OO3BVUpL\n2st2SfFiz36++yT2QKNlPbJuCSF4wxu2vJOxcu+O+cx65ejXfT+xy6DLarMNnguw\n8UFV08iAd7UL/2+M3FAJ7WIel08J/JuROqqevQl8dlNufOyI2zPXdQ+r78N5m0Tf\n7nnXfUEAKKFNncGn7rFd6BDhd59c5LQQ3hHRdfW/mj6Qq4a4/E99TcEQAU53IOfc\nqURn8yFzNVqjw9NfVkx4anAbOkKoDUubf/8UyIpmnUMUZFLOqZhe9iKaePPUFWNk\nN4g1mDGuY2cq+uF5wnsedcmQD/Ipp2IR1QsZ0h8v3UpjbAg30i2gz/MCAwEAATAN\nBgkqhkiG9w0BAQsFAAOCAQEALusb5y/ACOki7xVSEOnTJfIUiPpygLmIyqWzWsNO\nTRsn8iqWzdPHSLm+Xkxp90xreBaQDxKmnB2OWccOKstsAwBHJQ0IQpOm6/ujzrRe\nys56UrOOgC1NvQa7AA95tumvGKkx8XYBm36DeXEDVDAk9Zs52R5ccvL2t/+l7TcS\npea9nyugnd+VnA4NWWP9y/RocuR9hPEwKJpsOP27RP/alBoh1h8gHUqaovoEyxA7\nKUUe/0iUg6Tfa5/1NTKT5njelQlPRjXKDde8YQKtX60BQHKVxgSgJ7H7uuI/p2+o\nFODZg7683B7O9tZ03683UGZdaTbESoZWJH4S81CfA5om4Q==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"deck","categories":["office","organization"],"userDocs":"https://deck.readthedocs.io/en/latest/User_documentation_en/","adminDocs":"","developerDocs":"https://deck.readthedocs.io/en/latest/API/","issueTracker":"https://github.com/nextcloud/deck/issues","website":"https://github.com/nextcloud/deck","created":"2017-02-02T16:07:58.879909Z","lastModified":"2026-10-20T14:19:17.607582Z","releases":[{"version":"1.19.0-beta.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/deck/releases/download/v1.19.0-beta.2/deck-v1.19.0-beta.2.tar.gz","created":"2026-08-27T15:28:52.537930Z","licenses":["agpl"],"lastModified":"2026-08-27T15:28:52.620615Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"o395pajMGMno4IANtskq3fErFcH5G3cVHuU86CaNvj+5xYCerrYJxtfGdSmYVB++Yu8KOv/39Nra4fulOTvx49IaXOuk/9Um4G+FX859FOTOwXsvV1FNunMehV60SSgDou1DrO1jPgb2CmJScDInHBrpJZ/7EiMxALHtBZ8qeWynVKd3MxTT8SRvpoOtsICsb/iFhYtB3do3eY09w5A6R1ksFXa2hTFGRE4cr5JGmZV54nWn6dV49Tylarme0PRRwGyRxZBEVwYygdgIGmB/JCBkvrQnp7tYDWrK+TEHTAJ7ak352Vr9mUrISyuwKXAKSz+M0JnyNbXUXbAddZ63tVf8RRn/IuPW0XqOnyR8nv0UQL0NWeKVP913rEHaIZHfvRWD25C2QQx/3YavTSqvUnghUOa8+S9EbYtDSOCs7iIvjoVU1A+PaFrvPnDTbs6GVvYHJAeHulFJuxAHl84BMOVLfa9cgbMxrqgEYM4rYQlGMA87Ahgv//jPX/M4crvsCLhZUASgu+Z9EhFVB/hs+ecZV0uWjPziHUAhWtslBfIiZnXk6fzsBT3Vjzn7FwxcXTIzYMFMnFm7VUOCMzRpLuNjrOW5XDgg4AKsUMaqjRdZzrMdD+2Eim1XB4e1Dj3E0NxBKmTIk2Mbk8fnCsL8LQbgtQolANz0OM6To6FVm/8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.19.0-beta.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/deck/releases/download/v1.19.0-beta.1/deck-v1.19.0-beta.1.tar.gz","created":"2026-08-20T10:44:40.509320Z","licenses":["agpl"],"lastModified":"2026-08-20T10:44:40.583236Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"BW1fCCgeZbJJkzKDcJ04vMuCnfryxk6u4eF/g2rfoxiYHvz0PkqfFoxsBJDiOk1YTG4rORkFxnvcHyvDqXshzPOL31nK+q76wNtEw+AQLrrV4PQD3qJLV0WmCgr0yP0bPnEFC/dcjTac/gxlV6dIq1VbhuxJPUr5Ik14VOwQixIq1R0zdS9xdVJp4viPzfqEXrP3nJzN1HJ3pnwL/zm+lO3WkQ07BfcJy4qyia6ChMe8aVrXQ7gAX6mFVlfhh5ec16JQ9G4bUXRatmCI1qRduYyofVmbj0fAO4nggbbEddrH8y8ee5ueovN+m7NsI6ON06d2Dc6lbUWMbnyLWNtmJ3RxKnLnXzkGPLyKyIK6aHC6O5wXrlgc2OvZvt+pHa1BhbKX5faHmlG7LdSHfnTswllJgiiAUwGXSkL0VEvLdWnBSpx5nxN59JTTSBwUz9l4gwax3aa4j/WQ6vfkc5cZ8rc96bwFV0TL9mFUkFHysHaPsLbBwye1cRsZznT7WZmLHwJhhvA6CBs+aNwh5vXhpRTlOLfYT4voWa4bjYq8PDTcbVyhoVU8B9dtkCQmSIT93SOKFsL/CyfkHYWNEN04BwykpJFEC4cppvzBQpXSMbXOwOemNzJf7vxDZNA2b6tjymaI7VfthMUDU/oNRj/8HCPqd5nbBoehJjIoAeZN2aM=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.19.0","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=9.4.0","rawVersionSpec":">=9.4"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=35.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/deck/releases/download/v1.19.0/deck-v1.19.0.tar.gz","created":"2026-09-16T12:24:43.743829Z","licenses":["agpl"],"lastModified":"2026-09-16T12:24:43.855474Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=35 <=35","signature":"ariTtRHaUZ5nNkDGYDaF5IgBlJGn86KJ4Hkj82ZMh+dC9OkLDXTOy5DtE+Iz7iutOQKXEZSkvSjDgtjcMuiW1Y8HJsZREEXO0FminunSlc0lXhJaCwtffk5TJga3zBmVm3zkA/1A+qe4uQWKdmfpLeiGEO1DseyfEtF2SvRzGNNlq7BZQ2wWIXXMfIVDMO2SK5XXP3DtgHLcJz58rioYAWrDwox4PQSHkfWyY4clTFZhHuoFPyoiA07DCyZbnwpRKhSBe4XbbA9YVzKeRrD9MgDUZU5jEKZnEFEfsWx4jzCWJnNwhZLpuQK5kVYwQrIr5ne5RJcShgeHszx+9rgz31VJXXGC1qx/+b0+e71IzKAMkwnwOEov+sL8rlOROiPEed/CzMa4KkPb7cisk9a0xn/sb/PdK+vjUhBvdGku/Yoyi1NdGYrbWQGHQmbNL1FKnjZ/XZywnZObLwvY5chJxcvi17gDZnoS/Qg00TEHC9DdPPXQEbLqFd8OacbuDZDSFhJHeeCxUEn2I3Sf+K9INiia5NdxfecrZ47ZJrAIjRvE798mcft8valSvk2yMq4dGT//vypaXkCfb2HucgU19Ok2mzP1E9hnAaYGDqDCdv0Dp7xGgrpgc0sI1/2jzfvTaP6K2Ow73x12ol9tD7o1dPQG4DHxjWL7fM6iE8AHKBQ=","translations":{"en":{"changelog":"### Added\n* feat(board): show card count next to the list title by @SadeqRouhani in https://github.com/nextcloud/deck/pull/8038\n* 🧾Add share metadata by @AndyScherzinger in https://github.com/nextcloud/deck/pull/8069\n* feat(deck): add board filter input to the board header by @pringelmann in https://github.com/nextcloud/deck/pull/8215\n* feat(OCM): Implement ISignedCloudFederationProvider for deck by @mickenordin in https://github.com/nextcloud/deck/pull/8261\n* feat(board): show owner label next to owner name by @xhon-pelushi in https://github.com/nextcloud/deck/pull/8265\n* feature: Allow a team (circle) to own a board   by @backportbot[bot] in https://github.com/nextcloud/deck/pull/8320\n* import on file by @backportbot[bot] in https://github.com/nextcloud/deck/pull/8393\n\n### Fixed\n* fix: show avatars in selector by @grnd-alt in https://github.com/nextcloud/deck/pull/7921\n* fix: use automatic text direction for comment input by @grnd-alt in https://github.com/nextcloud/deck/pull/8044\n* fix(ui): remove moment usage from due date badge by @grnd-alt in https://github.com/nextcloud/deck/pull/8096\n* fix: improve card open performance on boards with many cards by @nemphys in https://github.com/nextcloud/deck/pull/8112\n* fix: do not clear card color when update omits the field by @Lightshadow02 in https://github.com/nextcloud/deck/pull/8151\n* fix: calendar delegation by @GVodyanov in https://github.com/nextcloud/deck/pull/8213\n* fix: broken upload of attachment via api by @Somebodyisnobody in https://github.com/nextcloud/deck/pull/8156\n* fix: expose the documented endpoint for cloning a board by @solracsf in https://github.com/nextcloud/deck/pull/8220\n* fix: avoid a TypeError when uploading an attachment via the API by @solracsf in https://github.com/nextcloud/deck/pull/8219\n* Deck cards attachment fix: Prevent TypeError crash on undefined attachment info by @aquananu in https://github.com/nextcloud/deck/pull/8224\n* Update Cardsidebar.vue fix: Prevent TypeError crash on undefined curr… by @aquananu in https://github.com/nextcloud/deck/pull/8225\n* fix: replace changeColumn with modifyColumn by @grnd-alt in https://github.com/nextcloud/deck/pull/8262\n* fix(navigation): drop active board icon fill override by @xhon-pelushi in https://github.com/nextcloud/deck/pull/8264\n* fix(migration): support the public OCP\\DB\\Schema API by @AndyScherzinger in https://github.com/nextcloud/deck/pull/8277\n* fix(db): chunk queries for shared boards by @backportbot[bot] in https://github.com/nextcloud/deck/pull/8386\n* enh(performance): get deck share permissions in one query by @backportbot[bot] in https://github.com/nextcloud/deck/pull/8390\n\n### Other\n* Migrate `comment.js` Vuex store to Pinia by @theoholl in https://github.com/nextcloud/deck/pull/7827\n* chore(php): bump php to 8.3 by @grnd-alt in https://github.com/nextcloud/deck/pull/8067\n* perf: Avoid fetching full group information by @CarlSchwan in https://github.com/nextcloud/deck/pull/8143\n* refactor(pinia): move attachmentStore to pinia by @grnd-alt in https://github.com/nextcloud/deck/pull/8142\n* refactor(pinia): move stackStore to pinia by @grnd-alt in https://github.com/nextcloud/deck/pull/8163\n* Refactor/pinia migration card store by @grnd-alt in https://github.com/nextcloud/deck/pull/8218\n* refactor(pinia): move board logic to boardStore by @grnd-alt in https://github.com/nextcloud/deck/pull/8234\n* refactor(pinia): migrate dashboard store by @grnd-alt in https://github.com/nextcloud/deck/pull/8128\n* refactor(pinia): refactor trashbin store to pinia by @grnd-alt in https://github.com/nextcloud/deck/pull/8130\n* refactor(pinia): move overview store to pinia by @grnd-alt in https://github.com/nextcloud/deck/pull/8141\n* chore: Port away from QueryException by @CarlSchwan in https://github.com/nextcloud/deck/pull/8236\n\n**Full Changelog**: https://github.com/nextcloud/deck/compare/v1.18.4...v1.19.0"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5iaXRncmlkLm5ldC9uZXh0Y2xvdWQvZGVjay9zY3JlZW5zaG90cy8xLjAvRGVjay0xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9kb3dubG9hZC5iaXRncmlkLm5ldC9uZXh0Y2xvdWQvZGVjay9zY3JlZW5zaG90cy8xLjAvRGVjay0yLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Deck","summary":"Personal planning and team project organization","description":"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized"}},"isFeatured":true,"authors":[{"name":"Julius Härtl","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.83,"ratingNumRecent":0,"ratingNumOverall":50,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIID/zCCAucCAhAvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcwMjAyMTUzMDA0WhcNMjcwNTExMTUzMDA0WjAPMQ0wCwYD\r\nVQQDDARkZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtiTjXPLb\r\nXE1JpGzFdIAgqrtq0hrnMpLLo2KG8/wXjaliywi6uPL38L38MH0WGojQ5SvXKl4x\r\ncFmfDvy9RGEtswiARjC6x+4tHYrVa4RLTI58Do0LSXGxfJKk2zY/tTaLcF35ghzw\r\ncUWKsE1VG4LED7phSddbmEG1pr9UrvvTTLcuSL0GR8ztVGpqZ3stLyRzNozt/GtX\r\nvhU37G+zLJonDRjWtm6tUP2SZ2LYEQaNPgoGLjIopOfjWO3A4oM/zsN0ZM7kpGf4\r\ncTkmofXX4X/Ycn4l0b5Gpn94drU5Q3dT9Upe+49Su2wimHLK+2EXk+OM6vMn+fD/\r\nfQFLIklVM8YJpiRNhxIiyazBvnY3knwQjljiKP9F52h8EgH9Udi/yeh46NscKYRH\r\nagFfBGNelkTWSuNnrpKYh0GA2FC0g+x/ihW/qKJiS/TeHOxmtJN3li/TG9ZkOW1Y\r\nAF1J9vxJLyMe/5wpDbvmTOyuccjIFPDm+eDZq9RQUxcntkspok7HTnzOEuQEgLk0\r\n4x8gTWXSfhqW+51FHAjsyoc07ESk2c3NES6xVL7I3EGSkrAst4ATV42mWakdV0tJ\r\nSmuSx2AboOgJEkA3mjOQo8OVJ7GfSGnPcamLl39T01r8hnJ30btlzutf74DEoHF+\r\nv5EBLj5PlxoIC+kqS9YiuvLXTLlWFDgqwNUCAwEAATANBgkqhkiG9w0BAQsFAAOC\r\nAQEARFU7ZiiHsVYclbnWIbRw3PPp9HJixhRE5Ma6gx/Gm07/NgsPYCntSTi4u2vg\r\nb6/H8QlQLrZwMtXz/ewTe6CbehzP0u4nGqW84sQBGdW347knbzvT9eEGjAn2i+Es\r\nzlyUX0f+EYRSwsMJzJ8tBzbBkfI7tcf3yaCF9Uq6jR6frvChH4WxW8NlflRina5c\r\nnCHPlgOC+RgMMoPSGy5kNxpxJi/r4w6cA+rIATQB7KFOd1iAXbD1HG3pKrZHafnk\r\n6E/YkIlHjSKoHq/I/n6lhcOyrGytBxzw/1CJBq7n7fP1ABvEWuV4+x6puNjiu5mR\r\ncXu/b4fnQBW0ALcuQHcNbmTKWw==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_versions_s3","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/files_versions_s3/issues","website":"https://github.com/nextcloud/files_versions_s3","created":"2019-09-30T11:52:53.757305Z","lastModified":"2026-09-11T20:43:54.919472Z","releases":[{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/files_versions_s3/releases/download/v1.3.3/files_versions_s3-v1.3.3.tar.gz","created":"2026-09-11T20:43:54.913558Z","licenses":["agpl"],"lastModified":"2026-09-11T20:43:54.963500Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Ov+/WMfP8TueqdamjJxoINj6W/lE1npspa7Jkwy3np7CJTDEalRI6zMPsZYEWvzeVhzgDXVXj1lM9dmLKsB0Q2FKykbZ7pjEEMoAWEHi1suVJjLt/an1zKlBblyL8mGzRrY75fL1rNUR6SZ4WdcMH41T/6pQE7Ai0fDpaeHicTJF6/VvnZgOXjrCJn/XiL0GkcqT8LZjq4KNPVxMmKBY/NBiNN1PSh7f8PtNBAIFo/Mfokh0fWrKCOvayIXRniA+bbkbE3E+QGIl9XTVJuyTrfBOu/6L9KbJlaHFRkrv6SRgtFZ++FNzn5SbFfmSsXal2VaQjXTIm7GDKqj+UgRfWWfXOJy8cyhB+Y82tWFwqpmnhVXFT5mIZ8WrWsrqYCt/+Pq0u6/zaPs+CuDvSauL1t/BUIE4mARE0HProJsTCR0v6bRQhsgW4OxZLIsn8Bhbc9EK1odhNo2v+NnfqSJseS7Zxv5A3G5jBgpOvhoFQHyAbF/ravMVc5KfuLDgdG0pTK6Gr9tSQHL/U4daP71H8rSw0gJtgmyJChJxe5MjKNE9a8PCmAzH1gNzMgPMCowZyhOdxVOOO+Z/ZFd3uL1OWOPtW+Dt7Oj3QnW+Xpr3kSL8Y860MNy46E/RTviXZsvCcZ4sMDDHktHX3BmkI8Fd7x66P98LRMKgeDZKlx8W+/s=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"S3 Versioning","summary":"Use S3 object versioning for file versioning","description":"Use S3 object versioning for file versioning.\n\n## Warning\n\nThis app does not include any mechanism for expiring old s3 versions,\nyou should setup your own version expiry (also called \"Lifecycle management\" in S3)\nto prevent versions from taking up an ever increasing amount of space.\n\n## Usage\n\n- install the app\n- check if bucket versioning is enabled for your storage using `occ files_versions_s3:status`\n- enable bucket versioning if not yet enabled using `occ files_versions_s3:enable <id>`"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDDCCAvQCAhESMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjAwNDI4MDU0MTA4WhcNMzAwODA0MDU0MTA4WjAcMRowGAYD\nVQQDDBFmaWxlc192ZXJzaW9uc19zMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC\nAgoCggIBAPIz4JT9gOvTzmsWgyhEQOv6kVgD0gftRQemsRy/zb9WswRHLbkkVjWX\nDrOoyMCZhF8d89N7QF+sV5NZQm2hTGM8bCFgGEpIS8t2CfscTACiGjvXL4JLs1qd\n7JJzUjoAx7Xg2jnddaJWwm9qdFTQ7F/ajW32cfUTJ9pCZ/sQquGTLicoiqzZsQMC\nXVy/mBZSQwKCXNWXV225+TqcH7NH+v8xL+i0v6h2fTMs+HPHstnAx91YcfikvOoD\nBnTcL2/qCAQeJIwlineSRMd898utTw2eDnT6uhKER/G8CTxG2IB9LGDlY6HrXiH6\nMf9zh1J6tjm1RdTvYaCr+80Pg1vqWj+KAQbuvgKe0aXoFh3Jc12/i6h21y+TfYZ2\np5oSq7t6vN5jUEKP9Vsd4SQnpNrWrdsDSyOP7IrkIZ6Xrz+KD/g5z1dEsJvPNI6D\nubM+7U7nypkj3du8ISH7yx/nXfCo9zTskuCZ38G8jhVg083+pMlHU7ZCSOhvqTVt\nbiQmCtfWOVzE5NoeEbx5Se2tmQGdlBsTSgQwecv8eRMDXttzz8a8IZHSlyURLP/U\nEpyRi0P+nYkZ0GdKYtwuka7sSsJWvIsg4bgmyeWPrDxO45PR094J2lXYHfIgByeS\n4NXFH/N1cb7wGu7wvRBKhfpWjpD6HWAm1Tw1KY1Odu9z37OOo6SLAgMBAAEwDQYJ\nKoZIhvcNAQELBQADggEBAItX9ewp5Fr0PeXl/dSh7Cxho+LREGLQ1bPB+tc7vS7I\nVD/GzJnkwyJO6y/wpsKUJkjlwYbFi6bTRBs2R9XLknkuHn29lxTggn3GUE7IoWRB\nwiqjyKjVv/2HGhnuSDjTdx0ws79Uyytmd7uoCMSuUvH6aY5m3ieDxGKbJHIbNmLi\nE6Sxhwe9pt44HmxgT6hJVqU1mS2obkRx0jK9soNP6qz+79zJhwz8PkPlnEv7jgDP\n3ut04cC3VsK4/Ocqk4nXv4e3asnnoJdGFm88yq5Q6A1JuxMXqK3a8eVpkobgAjWP\nCbDyUlUdxlefijo25K/4/ZWW4W0GHBb1sn+328FA42Y=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"projectmanager","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ricgrangeia/nextcloud-projectmanager/issues","website":"https://github.com/ricgrangeia/nextcloud-projectmanager","created":"2026-08-26T17:40:30.982527Z","lastModified":"2026-09-26T03:38:58.495621Z","releases":[{"version":"1.3.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-projectmanager/releases/download/v1.3.1/projectmanager-1.3.1.tar.gz","created":"2026-09-26T03:38:58.487857Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T03:38:58.530355Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"ECnHQBc1WU/u0cpCLUE5kLlE2qXXahM0jU3thPKjZsRWtfNXMKWSqkQlvnns8AA1ZW80j2/yfTb4hGeNuRlEqXLpiF76FWlwKoLH4ape+q7CbvmClMWybcUlWCXgu+WgjLzPMP010Jir5NtQzYmJ9qcIteCb+fFkG0nkJJB/HaEcN/K00txspvqcFjGASftQJTso7Ah7g0v8VANjJds+I0r51eREUYFTpCEHPA8Q9l1vulx/OrCntxPBtVYoK0yGSfOfMQ61ZmHwDcufMO3MLX7gLraxM2yLV7eULQlMmCpYvb69aUnEQxi3aTXVFWpIj6bOyZkl4m+VEG6BofS8BFeKpiRZqO8a3YGqyW71fo0pZtX/NqDoepvKIATH7pTT2JqZH+VnFhcRBsWgEJdiEc1fHoR+6Wmypb6Zqy/Q/34el7m8lH4Ku6Ppkqdy+YgXSLwYa/USZu54eUCW/ml8oRaEzCbCO7HtgHnwzxGA8NvteA48lAbpcg/oV08Q3D9ApmDyshPyL6d0bH3O4QvQCar95M1o4Z7y6PPSLbHrIjtu35rxj/S/JJBjKcoPJzyVrmlMIaQGXM4P5iwFkHpYVToW7AOpx9aiK3F1MpIiewB7HPiD0LVSx9wnu3T5wb6pzQz8jrr8QGNqOaHyh8VrRJCqROVlXVtBAB/T5sCkdxk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-projectmanager/releases/download/v1.3.0/projectmanager-1.3.0.tar.gz","created":"2026-09-26T02:59:37.716780Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-26T02:59:37.759960Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"OFOQJqPbzuiXEvQHSS4Pm7pYmJmPIeKGfFJq+5WXBBicd+hiTbvUlU/Pr5hG4KpEgWepb0SuOwMMjxWa65E+q3xaWhOJAjWF5y9X2NPZtxubQ/fVl/FhifA4H3ZOPo4vb65sqDv4D66Lh6qC17Q/uQV6NCmrRqLtl8idDRsNICzYjDHorUaz1AyPRVUmpba3E9ceXBFRIXZdrUtaV0D0rEaRPTCkfoQvUXSQt/zZGWy0/scj1D3AFxThd4m4QcSjISHJ+RiVBbh1YmieBMvkzvzYQL1uz+4Gjy771+gte9F2X+39SpFNMZDL9j4F6tqv7csAM9QCJvZBbs6803nlCdQXObDtKfmK8EWxnCbVAavYPULQOx7SCu8Maz0caDqrSRyok6P9ZrbnasjU5hJP+aPeIOufvQXP6UI+4NB1L+2h4hf0Y4W141aqE8IT+G5YWty/S3xD3ijl67qHytXTIPKrBERSAcmPL/Rika4/bP+s+4VC4i9wkuX0a8Lpb8bm7bhshC1KdFOLhd+I4D8XdIbVjhls7qv1/6YiekTljP6acb7hWLEkYwDFI4gM2udXCTuZ0LBT4xq63D6o9DWJ1fbUmy7ClROhjJCwT91ohrBxKNUG7uy4a16ZviR2oQlQApF5CLLFG8WTowA7uxA7o68Wo0drXd+qBZB71vCzyjk=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-projectmanager/releases/download/v1.2.0/projectmanager-1.2.0.tar.gz","created":"2026-09-25T20:09:53.524344Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T20:09:53.564639Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"HrGfKeJYreCQ0EAqDfSI0t+ZDPkrdv2y0V2pgzayuvYvwPjjs9lPAzL2x5+nljxfjqLxm+eq+S1TcbM8/Gg8FpTSXEJ7hmJ9HZm/iWGEy27uqT3HaZ0IplacNRaBbE8CZwmqkDfE0Tw5OPEPfPjpSyhByhtuZdL0CxPcduqgsKsVb8uvS9BGe7D3h4+OkLEpE5fhvB1tnMAgX8lIjqqlagpxYD3kDLIyOL0YDaTXdIepSgSWxz/xYHbYUwEliP18slrJv31FabiGmkE/v5ymzRD4fHDWb6uwuwBqOxfeX5Iwn7+TPeky2DZiE2psnEv5woZJ/Ho1QDaS+/0kEfiBxaT5TVdhe0Pxl67RPxFpPq3L60zKj8Ru+G+GdQTJIW5wSPvjDD2B87YCEjzxyBAIpZ25+E47pl51i28mSK9YRFOvzucpoPnPbsnuDvxHd9jPCATIluooMvIouIuVAck2WcOxpB/E7/g7Y3+LfEAYMaT3jkhnVwkN+ByxuXQG64YwdiXdStBhmqVVD+N/sryT8QThb5DJY4GqaEnBYLEDJ1eqwJoB+Wmvm1XFnvIzfVo6SyyRfeznnQotQMjTNyHgcJKv25rMUm6OqOBzsA13yy11wmi1vTQulk7TFfVM2a0f/PUlQ9zg5OMt/ytRkKQMgT9RAwk20tgRAKmVU0JzCXo=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-projectmanager/releases/download/v1.1.5/projectmanager-1.1.5.tar.gz","created":"2026-09-21T17:30:36.939263Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T17:30:37.482850Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"iFtNLfBHRsIy8i35DdoCLJqoN2OAscuNuHG3tY1Qd8sJvKgMc1YiP4WOQ1jGzHRcoBYfikLDBP/eqBU3wT/4uLBUze62Iu3LJ4o8RPuzLdUUDbccLqF76by4MG0N4UO5KF7N062erkEKE3++v4vshEkUbt1SUXhbXTAiGBWO6zYi+jX+bxlKUxqBflCiKcbkQTYs6Xb2ufIxCRdDUwj7l2aKVyIak0wu4qt5mZs2Leor72uz58fKxI9XsCD0iKnxseNWtwcD2RVl25nMcSb3jIEQRyLwTDQu9D1BzgTBZ3MZmCpg6q+jSskzEy18p6QpJZr3v+027y5F6/2RqmMH8EmJY1MK+tp8UftNWBbW1Q5TdqbVsH+6KtKY3Yt5eOjF5lUoI3sP0UMF5hNyUbbMOC65b49X6+btPY2hZIsjy37X6g4Dhwrvyh5LB7NCPsUd2dPl9w9FTZ4b228cIPejssq9RQwaQ3QrSkKD1RV8D6g/vaPyi/dMlQzdDHwkSRcUkPPQbBoWndmIP5x9mO8eeIyi6BgC6o5KklBBV4X1yX0cyqz2DFB/mH8e72q/Te8sJMYjmeMptchy90q6lKS5yGIZ0832nATrSahLxJJ2q3kmcaEJ2GBTdrV1Dc5axgKIeZDedyfpgXJLtyjhQc1ySckWBFWVKM9ONxfvUN6el8g=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.1.4","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":">=8.0.0","rawVersionSpec":">=8.0"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ricgrangeia/nextcloud-projectmanager/releases/download/v1.1.5/projectmanager-1.1.5.tar.gz","created":"2026-09-20T13:42:54.476078Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T17:24:47.529027Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=34 <=35","signature":"ppUPojmrocEksnDMNu+wkhM49D1iAYzH9k5w9T4xFEq6PpdVBvAmDuDrIESEgUbqc7lGhySKtlfdjYNtTn160plF8t28wsNgYgA80RGHuZ/azcfHKMCb+yhgoqbPdcfLMYPi5BYRsDhX2MJLzXvsb/5f51JUzrxk8zAgFNsVgRyv6Z89A/uWFU/453t/sXNaQCh56JRCI3B2abX944ZrElU4HZElGUjNuJmWRih7XCOD6mXd0RbgO3YgyOuSngyDx1sbftPAAH7A0GHOCj1lSKb82HYAV2r+/WPmC37dLaZMk28qth8HWKtLi7e8SU9QwySAoMRfSxAiVD0XX+UxAjLgn33yXNyDKtzGZVRHohNUpxh5IinODprnLLcTiM79aLHD/ltst57J1dhmWLmRql9Zx6XahipcsHSbTu3XEZnkOxAQpt9BYADknOyd8TsljgZVRxrrufljBV+XdoMYYPNZRDG9rB4EoSDrXNFNXrfbnbcK/T8ITSQo0wh6WOTukoOshtK2okBjezkYM6R9VQMJ7FlYUDhw4/NI4eDsQoFJ7xUvDzzykEgnvGG5TKxqydxuyFvyStrY15hIgGCP2fmshyA1CF2Lj6TrDY6ZdkaH4Wo+9plH4CEtY5/5vVOxvmxasjpMdyQESQDj9XZAcaa9lMPcq4LVJR+lB4h6N5Q=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Project Manager","summary":"Track project hours and progress across points, leaves and days","description":"Multi-project hour and progress tracker. Break work into estimated\nPoints grouped into Sections, log day-to-day work as Leaves, and let the app compute\ndone/remaining hours automatically from a largest-remainder percentage split per point\nand day. Track Milestones with the client (how and when something was presented, and\nits perceived acceptance), plus a Tests (validation log) view and .xlsx export."}},"isFeatured":false,"authors":[{"name":"Ricardo","mail":"ricardo@grangeia.pt","homepage":""},{"name":"Ricardo","mail":"ricardograngeia@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECTCCAvECAhQhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE5MDkxNDA4WhcNMzYxMjI1MDkxNDA4WjAZMRcwFQYD\nVQQDDA5wcm9qZWN0bWFuYWdlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\nggIBAOLC2c4v4cihQmMKXVzHQWoy66gT74tagpwYgiuSXRhDAwfgz5Jzrhk5qgN0\n4MEFh0Zk+h6IhDTX+3go8wmKKPP8OKDvxLjjyYKUA4LcKVrFOq5OxeUy8/oshc7k\nrlZ/pjSTv2FUFSlG1iAqHpK4pzovbBwuDz2O8SDt2gv6kEiq6/iejY4lVnzd3/I9\nPtg3/70irrJVatBY4xDJiZW4bde45uRcS7VUvXWim7Q7Wyf9X6S4HrkidvkafZhJ\n5MApDC3QbwJSr3lkU9LKrzDOW3qcISwBOFLxW9ecqPS73zHRJlZBBdyNB7VnrYCl\nARtUTR/QTSwpEadGswSxY8A5k30YHs8ICdJxzT1jBydDzqJJS7ikaLhb0JCrdU3O\nlMYYGyKcapiKyz0s2w5hGvnUy68FxG2FS80I3wYkWv0/IL/V+3BUIu1NfJ96KAfa\nVHaQmuQ9hlQuxzyBhiBAQvzNp+95OIOLww6EqouTqLE1hLRg7FskMRRActK0BPAG\nXl3gfkxZoJgeroyAhOFywBHgxEUFylFERClUTyVQKJxOIjH3K9dBf4Dd5JxVNaTi\nNz8XIJ2WNe4gs0lJO6Cl1tyS+Z38kYpVwd2tGi91EnhG1S/JG0HZspAx4fK3rLe2\nQVK4j7haAEZgZUGPWYyVo+grsXOvufVY40ZUCy4y3Eg74HOZAgMBAAEwDQYJKoZI\nhvcNAQELBQADggEBAH9NnSmwpiIS2pjTCmnb1ccZcE+BQ3UcP3XZ9OHRKQd0hYA1\ntMTNxGnZDEhh0EwBrxL7PCrbzcDk3223UZ/JIf/jOHJCDpFdoVp9wlyJR32gi9s1\nIF9ngBkEYAnPebf0A8zAdnG2bElmqHsiOXB9qKd0yjbPcEybfDg9xP8g0jT6P5l7\nbc/wace9bjI15ImvQkUsKMq43b3zIfMWAcfWi05RieYRSnXr1nJ5tlLZbiYZGEhD\nBkeq/+owf9Gl7F9JdLq4dyXmBLhke+4JaTtVNl1YrZVKZTwYql/QLWUpPnY3Kssx\n8WUEyiv1XA8hHwWSN+ZLnmx9xvpqFFL3oiPMZxk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dashboard_links","categories":["dashboard"],"userDocs":"https://github.com/codedbyandre/nc-dashboard-links#install","adminDocs":"https://github.com/codedbyandre/nc-dashboard-links#configure","developerDocs":"https://github.com/codedbyandre/nc-dashboard-links/blob/main/docs/api.md","issueTracker":"https://github.com/codedbyandre/nc-dashboard-links/issues","website":"https://github.com/codedbyandre/nc-dashboard-links","created":"2026-09-30T12:10:39.913435Z","lastModified":"2026-10-12T19:02:27.586022Z","releases":[{"version":"1.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-dashboard-links/releases/download/v1.1.2/dashboard_links-v1.1.2.tar.gz","created":"2026-10-12T19:02:27.579597Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T19:02:27.670285Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"3D/SrKIeTJ0pUZDKhYu6BA1jlQ09BB4YA8Nu2+zOQu+WrdYTWhossQ8IwODTrLiOTytG8De2/+a1NlYZbaaLBMI6ZiMrd1IJ+p3Rg8fKHFg7+lp0N0PSbHieR03DZGYCSfvnV8q/hi/5iy1826AunL8/VpnoZ/yJxqu9UWcON4KxY1jvSrmD1fnnXSlmFhtgJ8/LLDD8ymCDMECwY8dBVyeHipw+MvUwBdQym6kbcHiH8mK76WacvcprRkbr3No7FtCPTrYiFcMTaGawhcMEBmPC2uTKS+gVvjzgknkhSuxm2CXDL9J8tOtyR0r9gxk/hG5VPuafs43rJDpfhHHfilwhRBX78plSEZ2Y6AXaEJKZjr0dw1IDWjOAToc4qWHgas/6uwEZZ16buP9+mEEyz3tE9g/AsTZ1xTs6slbpPvlyFLp+xBeunoUmgoIKoI3FNKLz9sh+BffCw6P2YDVUJTEAGzOj5y+y3VRFcrM9+YSOHyY5GnRvTURQ/d5sruVjxmqvOQ/PqWINXOeRZkrxS/5fy3VfrRV7Jtb4rXba4aG+UD1YKxeKlvMjGn7+l6nBnO1NJlT39zzHstf4VNsEgu+HJzDNNoDy0kweQZEsRfed5Cqsay8cztV3LP/Il7J01P+HAo72qLXA15N7Z62iVHmUKv29U+Jm5q39q/VPUn4=","translations":{"en":{"changelog":"### Changed\n\n- Store screenshots are 1280×720, so the gallery keeps the Dashboard tile and the admin editor about 480px tall."}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-dashboard-links/releases/download/v1.1.1/dashboard_links-v1.1.1.tar.gz","created":"2026-10-06T18:01:26.064890Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T18:01:26.149635Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"xHGt7FeGkl//h72rcyFQakwRefJGtXusWoFlBXjVqXkGrC7bwuQxPaS8rSGP95wjUHCxqkpGaIm683RikZYzVXwzqzD6JCmzUMVS3CNpzW7ULSq8DEZxwPDm9SJ2/XlNf9Sf1HWTheWACySEYktzqGYu1b/5430F61LLGeXQFI5CcarqyeQbh6aBID0Rlz9AiVYMljL47SJs4+PLdcW6q4Jux0DSYlk+OPXINqIQH705xsjR0qjuWlWvT+jv4NuetZOnmo6Lpp3D/0Z8j9jaO2JuApzBLjawNKIwUIjcT9HjvSVs9ZfTdQw2vo2ZYAwBRaG6ybwIBKUNkXanzTyIPTrBA8RcrmgArvCLG2KtYHoAGYP2TShdeCj2o62rpCisDbUKfw5ReBBeaDT4AOxinO7p/trpgAwXRxB7QE0mJ1NWbYNG9iXsPWSCgJogksVoB7kjP9OBU1eIJojkLkmMxKGSDfYXrc9nM4RmE6H98qTwvP2b3E1gTLo8AVXH5R4VjHkxA29KjM3lq9/6XlEh3Y74fvwjBiVz52Zvqx+68o5LgLjvTpstfHHXy9eWBLaeD8BTZp8Ai9nVAgos3tFWzRmMEMm1AAAYYsvrXpYAsxSw5FSiYq+gVbLpliyzkwTBTXoqNfvFvcO5eyMwFH37WHEXpbAXOC+xsHOnoi3L0kY=","translations":{"en":{"changelog":"### Changed\n\n- Store listing leads with what the catalog is for, then categories, icons, https, and the Dashboard tile. The privacy notice stays at the end."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-dashboard-links/releases/download/v1.1.0/dashboard_links-v1.1.0.tar.gz","created":"2026-09-30T15:18:06.081868Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T15:18:06.133857Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"e02bPZM8c5TKiMZ5hAuZEtfboQYUSYQ+imB4XUJHVdsyW8MtaV+91MJG20Uyh/p6++1DgPFGkTGcVMxqFGJuuxmZOeDflqeYR+PRGhr5ooF22kExZ/YCCBLqIRtu92TZjsfh+kydOxl9PNijrKpRsw+AI9k/Kipi/cYXj6KVlwYiJUsQEZOHZm0Rp05To0NBzghfM0uQWFe0LAizgs61hDUnkEdILzTmUC3S5pyqfJvbqFOmZrkWJY3uNqYpsXqw1m6ht0QI4ItsC8S5JZMlI8usMbCfxgwym4Uk4dnSd+l+pbr9iDhQUqB9fQfSLI2hnzWGhsOOKpBYtD8PUkzpbr8zPPgXwzU5eXKYLbR3PS+wE+z2aYUcV2yEndODOeeEw8Dk/NDQbYaQFlqDHOlj7t+TynL+hIGC5u5KGiU37hzRk3MVoDTqDQtBkXHUPFsnIGbYHIQuieouIwyhg0DcsQfppW2IRDKYimBjca0Pz2Zbtwj7vy/mH2FMm5Rp2rgqEvovoh/zagQPHIrQH2rsBOAnkjtg+m1QUIZMwtxbq4QkDyoDxyhIdGh/h2pcTGOhejklKsFtsVh6sxWWKxwEWnWCR1xEeTqd9WgctZbwWucX8ytK7D00FEtbBuJrHyNw2axkIvOR0YTcVAdtL9yk5q4JbPAnd7mDD7QZ3+Txmbo=","translations":{"en":{"changelog":"### Changed\n\n- Admin editor groups links under their category. Links without a category stay in Default.\n- Compact icon picker (`NcSelect`) replaces the row of core-icon buttons.\n\n### Added\n\n- Fetch favicon from a link URL (`POST /apps/dashboard_links/icons/favicon`). If the site returns no image, the server requests a favicon for the hostname from Google.\n- Store listing uses the Dashboard and admin screenshots, and states the favicon privacy behavior."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/codedbyandre/nc-dashboard-links/releases/download/v1.0.0/dashboard_links-v1.0.0.tar.gz","created":"2026-09-30T12:42:16.794132Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-30T12:42:16.854616Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"1hiHfVbnbSRqISubXz0yHM4qHduALah8cz646ctscAudwCl9/awJLGKMA+hjVbaLOuzP5iirHamdRrsXzcRTKRAnCQFRJBBW1bSQy5NQ3hh6IEdhi0bAz8m5IK59ah363b6tZmBzRs08E4NfzLBpX87VxW/2cOKhZHkcppm3MHgm84jP/AyY1CDRraxqg7/CqKUt/5M8Ytys8C19qLnH5VSKIdwl4UZ6c1CIVLJiKDRXD2FHn7Hss4CW3GROpm4cI9GDbg99KT3bSGe1YIkYAZf1dD1R7ufXoK1nJTUSVeGWeXm4tpDjewgbmvqcP2lpKT5ddyWIKNMolSzqfOkKrW0WL/lfnmgFL+txNlbAWnZO30nsJgI6WjbEXEUde5nXIhzlSdj/CiQxxGDQ/9nDhsm7gKlNBwMQsllqBNUiPR5e7o2/1Cj0uHozJ0yuFCJAXqbClUPKXT5K226JdfHI+ccxs051wwDjm+cr3DiMn2qgecpIkqmGXr7KnwGbwySKeybWrjGHsPhAFfarkwwuAro1sOkz+X7+gl3VRAhABJsgjLUTh6TJ4DDwjqA1ulB6RmuvO03ubG6pXQzUuKkcBs+QADgOTY0nz5Hcpu2iZlI+p47fc51h99B5Xt+3Fn6OlqAvpV2tIlqb95AYFXsWtCx8qU9eOGHBnTIwpL1aayU=","translations":{"en":{"changelog":"First version of Company links (`dashboard_links`).\n\n### Added\n\n- Dashboard tile of admin-configured company links for Nextcloud 33 to 35 and PHP 8.2 to 8.5.\n- `IAPIWidget` tile. The browser Dashboard loads the dashboard script and shows each category as a heading. The line under a link is the host. Links without a category stay in that list and get no heading. Phone and desktop clients receive a flat list, and a categorized link there shows the category in front of the host.\n- All links uses the same headings. The line under a link is the host.\n- `/open/{id}` responds with 303 to the https URL and sets `Referrer-Policy: no-referrer`, so bookmarks keep working.\n- Admin OCS `GET`/`PUT` `/ocs/v2.php/apps/dashboard_links/api/v1/catalog`. The body is `{revision, categories, links}`.\n- Catalog stored in one lazy `IAppConfig` key `catalog`. One list, optional custom categories, at most 200 links and 40 categories. A schema 1 catalog is read as that list and written as schema 2 on the next save.\n- Admin settings page. Save confirms the password, then shows a success note. Admins pick a Nextcloud icon or upload one.\n- Import from External sites appears only when that app has at least one site. An iframe site stores `/apps/external/{id}/`. A redirect site stores the https URL.\n- Privacy notice for opening a link.\n- German translations (`l10n/de`).\n- Uninstall deletes the catalog and uploaded icons."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NvZGVkYnlhbmRyZS9uYy1kYXNoYm9hcmQtbGlua3MvbWFpbi9kb2NzL3NjcmVlbnNob3RzL2Rhc2hib2FyZC0yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NvZGVkYnlhbmRyZS9uYy1kYXNoYm9hcmQtbGlua3MvbWFpbi9kb2NzL3NjcmVlbnNob3RzL2FkbWluLTIucG5n","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"Firmenlinks","summary":"Die Links der Organisation, auf dem Dashboard und unter Alle Links","description":"Firmenlinks auf dem Dashboard: Handbuch, Helpdesk, die Werkzeuge, die alle öffnen sollen.\n\nEin Admin pflegt einen Katalog. Dieselben Links stehen in der Kachel und auf der Seite Alle Links.\n\n* **Kategorien** sind Überschriften. Links ohne Kategorie bleiben in einer Liste. Unter jedem Link steht der Hostname.\n* **Icons** kommen aus Nextcloud, aus einem hochgeladenen Bild oder als Favicon der Seite.\n* **Nur https.** Ein Link lässt sich abschalten, ohne ihn zu löschen.\n* **Einblenden.** Nach dem Aktivieren fügt jede Person die Kachel Firmenlinks unter Anpassen hinzu.\n\n**Datenschutz.** Diese App speichert keine Benutzerkonten und sendet keinen Katalog an den Autor. Ein Klick schickt den Browser an die https-Adresse, die ein Admin gespeichert hat. Die Antwort setzt Referrer-Policy auf no-referrer. Das Ziel kann weiterhin die IP-Adresse und die üblichen Browser-Header sehen. Diese Ziele gehören in die Datenschutzerklärung der Instanz.\n\nFavicon holen läuft nur, wenn ein Admin den Knopf drückt. Der Server fragt dann diese Seite an. Liefert die Seite kein Bild, fragt der Server bei Google ein Favicon für den Hostnamen an. Beim Entfernen der App werden Katalog und gespeicherte Icons gelöscht."},"en":{"name":"Company links","summary":"The links your organization uses, on the Dashboard and All links","description":"Company links on the Dashboard: the handbook, the help desk, the tools people should open.\n\nAn administrator keeps one catalog. The same links appear in the tile and on the All links page.\n\n* **Categories** are headings. Links without a category stay in one list. The line under a link is the host.\n* **Icons** come from Nextcloud, from an uploaded image, or from the site's favicon.\n* **https only.** A link can be switched off without deleting it.\n* **Show the tile.** After the app is enabled, each person adds Company links under Customize.\n\n**Privacy.** This app stores no user accounts and sends no catalog to the author. Opening a link sends the browser to the https address an administrator saved. The response sets Referrer-Policy to no-referrer. The destination can still see the IP address and the usual browser headers. Name those destinations in the instance privacy notice.\n\nFetch favicon runs only when an administrator presses the button. The server then requests that site. If the site returns no image, the server requests a favicon for the hostname from Google. Removing the app deletes the catalog and the stored icons."}},"isFeatured":false,"authors":[{"name":"André Wiesehoff","mail":"","homepage":"https://github.com/codedbyandre"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhQ3MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTMwMTE1MjUxWhcNMzcwMTA1MTE1MjUxWjAaMRgwFgYD\nVQQDDA9kYXNoYm9hcmRfbGlua3MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQDtyg9j6Q0oonu8Q+RPHT1019og6nD44aoJjPMm+cywh7p99cqQlBw22s3o\n9g89bpb+kkQlLJ/JnXJVtY2eeWfKVvE2gItdxPsrYDjxUTDqKam/zJO4UgbZcoa/\nMZlh5wkJRTzl1A32HqsTvqwKi1z1S3m4IVcyFUmjdliauFcn5VcR/wcEA/8yilv8\n8KkRlYeQzZ/gpZuqgq+8LuP6im77JfbqzyIVT2LoL0TC5T774mADczTzmirDjD0S\n3aMj7qG7sofGlUEuzHJUqyJVP5fUDcaeQYGVUUo+xb2B05tqAAbg8hO09dHZJ4p9\n6AyPS1hGlf0d/MIw/rrvV7AxWHLWHlk2HG4OZZcLuS4TgZPvZ2G1a/Jy08VwWJzc\n0P3ljWtobMPuxdGa4kwxDg98/fon3FNhNwYRomw7l/yg1ojkJniqYeprGs1h2Yb7\ndVPqml9Ros7NfkXuclbhCFKdIdlqCjHrsjf3IDxH9Lk+3uKqzjDqgx4WP879e1TE\nCYR8Jli5tZofe9o6ZT1t9d3Qq9eUXe06hWSje6r6Hbv6bOBoYzGuT5XpenYM9ABQ\nTHaWD3hhPn6C/Y5HV9l17k9UccU5I+xMlHQ6MyDBN9/63peZfQpXADrX6BxsFWLO\nzKAHH1W7+Xfjr1aT+D2sCJwi5GS4/b4FDOdxM2Z+985tbEF7rwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQCPRWNHBfDXbEo2RzXcNkOzT6nhgxxTHyJqnuqeLDMn79uE\nMSaE3TMrjxFbgO+E+pGoNDkNQIzIboGc/diyt8iWmsRZjI+ocClWQlbxUNPxuA+7\nH3Z/6/s60ve4pjLHklEruKxgA2iPyiDsjpXmLARTviZB/KrJ+kdCEBCJmw8LBq1z\n3avFG/AM6x3lc2jz7AmApmaY57cEcFqP0TRtZfhWXXkuow64P/a3BXvzAm02L7Tk\neCO4QUX92WZZqe6JdawVL74wY7qljjBDN6EeSH7OJn4v3n+SjZtQLg2wyzgZ9Fn3\nA8J0TF6Az8x3IyTNPZJbXp32uHS9H57Fe3J9QpPd\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"snackcheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues","website":"https://nextcloud.software-by-design.de/","created":"2026-09-09T14:50:45.730051Z","lastModified":"2026-10-10T15:29:50.143537Z","releases":[{"version":"1.1.3","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/releases/download/v1.1.3/snackcheck-1.1.3.tar.gz","created":"2026-10-10T15:29:50.136418Z","licenses":["agpl"],"lastModified":"2026-10-10T15:29:50.225034Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"FM8E6cvml14v1YESlS7PAGv7lbhcruKJV19pADpwIgU0VVZGJO7sH4Z70ZWXkKOXTz7x7MADt5di7C18RaJE1joQlH1LAtPtRMfr2XjoxmfPaVLYUY7ebHiXvbQqi2V7jABiGoWHPkQIsdHJYxcL8LHcwlio2F/7zkSSMb4BYS1lEMxDNbAKFRNkBrBUPlI5GUb1Wp6QHEMroTFxUoj8J3IW+zQhT5e5mE4ByTQ/TgAaZN9JRwiolAhY/een29n+M6T+9sQBy+uDt7a4HKi0bAiBEGwoQwrCpH+zJ6FZ7XpmJGsxJFr43JtvZ39Lrh0dm8S08Q/PSPPtNifnt68tTFk64um9xg23DDSU00N4BiqmtLtdjUi2XUvWH+O5d6kjq+yiYxa+bgSrPo5oCC3mlyHEgXO4Xx3plx7uJJEJTiGwWgw0me/pJwVKgNPAvsfjccGlxQAZt0l9g2T1BzXBicxxb6OIgfWZ7r0LF0cLBKPYnb48ZymLXROvhbAPnqX9cx+7stUjMgQ96YXKyHxmR0uoYidYraqrOzk+URxxZ4BE1tQhYXkWedpqEp4RqjmQ3HP8YdsTOd7pCAUmfO7OgV6NUltNKgAjgOKzDAhKVqRJ1SaqL7ip5pMm5lY8m24DPXFR9CrOFZYHGBMUHjC4Lbc/FvvcOPCumpT6QvN7I4g=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.14: l10n corruption sweep + aria-invalid error border + spec fixes"}},"signatureDigest":"sha512"},{"version":"1.1.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/releases/download/v1.1.2/snackcheck-1.1.2.tar.gz","created":"2026-10-04T19:11:11.074394Z","licenses":["agpl"],"lastModified":"2026-10-04T19:11:11.165848Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"V21fNwpLXdS57k1NRmjYCHLp9ZH4ytbLyhA7/nkImkmZMqzkXOSywCURS/nopBpFLMlMF5HZbrqkRxZYVCw+9qEsJFe3SGhO68Aq1mbyc8tiaj/wyJ0nf6hnMDyDBRitTBcqwusmxy+Vuwy2odUm8Mxk3jzbkTC1mbm/Mx9WqgGLkBgdg1HXPihUg792seN7JHMOMqiO2XPFlFxjP03wUSaymHmmC7YRwl8nxexo5TIkTt3fk9YL8MDaFlNcpF0CERVbFtyDCVuuMu8Y+TS1jehmtshjs7F1XWV4uaP7zdKnmNUEp1T80vta7+KfsEdC25b6UNt9c9fQpSaVNyTNgGSH6tQ+cjUpLjqhI7d9mPC45pLm+AkKtzHi6zeXcOQYNEoRZrTXmhz4Wk+jt2+leeTFfWFObtSoE8iL4p8JnXOD7vSyVw/kRfd482oAX4L7nvrlwzIR0r9/kZgJubbJi7CrHgd1RxRCmqQSiNhUwD8Bp5hHassrD3ju4ZPGMq3c5cb17OyUYeexg8SVFu30gkJBlw0PsPG5aBUGJjb6KSQ76fW7PXlLoJFC7Y7YasMKkY+vtiiI18e/NtSejaL+eVha0LkegOfv0PirwHWraktc5xwMlteuZOSgizLExmmZcBSII6JvikCbXWMmY2/6VYuYlo54BJwzn6m6gYTuvyk=","translations":{"en":{"changelog":"### Fixed\n\n- Dialogs now close on Escape even when another Nextcloud app suppresses the native dialog cancel event (central fix covering all app dialogs).\n- Modal focus restoration hardened; form errors marked aria-invalid on reject paths.\n- Localization fixes.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected.\n\n- Regenerate `l10n/*.js` without CSP-breaking `pluralForm` third args (shared regenerator).\n\n### Fixed\n\n- “Close anyway?” mistranslations (ES/DA/NL/SV/PT-BR/PL/FR) that rendered as “near/close” instead of dismiss.\n- Device API `vendorPublicKeyB64` now follows `VendorPublicKey::publicKeyB64()` (lab TEST key when configured)."}},"signatureDigest":"sha512"},{"version":"1.1.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/releases/download/v1.1.1/snackcheck-1.1.1.tar.gz","created":"2026-09-09T14:51:40.379291Z","licenses":["agpl"],"lastModified":"2026-09-28T14:35:46.692678Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"agDS3EyTXR+PfVDIIcR7TIyNFsYjsw0P79Trjc2tE7TMRKBYzqvxfuCMGYzqD3cXaAV9LJr0TYGYIspZbadVYKqWtts0SOeUEgIUEmuvcxoSFLrGXC2BoDBh13Di/waS0zWNlGpzZYHvtwK+H6BHAJAEr0haC4cHkUPqbFMS8m0NpeotGpMnFGsEYzBJPUgH9CXKY9zSRg/fsJ+MWlai8pQ4xQ61zwrw7jDcYW8u60RRFcIx7BPS7h1E/TsDcIPTGaqQJ9lfTRNsP2o95d8lHCOPbMdb/tCyIkyZcsf3d0TiWzQ/ITT0VcDMz51v0s7aa3pBQbY45q35PI0rIQyKBe/HX7XCXZWGrJqTGML1G3k49ra3u47jhXhvVB5ulZlLxdBoOpBba013oGgjODgAAdu7i9Kp+mQpPm+ku80SCkUbGwotQ4qsgmS454xgDUGsktS/6kkTT2j4U7O6Dxvu1wd+N4ZMkYmqsWX4Rss7z8ljYmdL0t9Nts+1kfN9Gurda7evFTaWl2reKIHkbci5LUuBk9AkjM4PNha9zbXKRAHFP39jeLV5iSuLQ/Pu6uXdvFuZoDJ2ApU8bpw0V2V+JOdIv3YiAHS8WrDtfH2Ko/GOD35kKEDhV1IEtYLh80dlqsr0jPoHwIab4XXBHqcvNNodPNmGo+T/AUjgpBZpLHE=","translations":{"en":{"changelog":"### Security\n\n- Web `catalogImage` requires app ACL; inactive SKU photos require kitchen site manage rights; CSRF-exempt image GETs reject `Sec-Fetch-Site: cross-site`.\n- Regenerate `l10n/*.js` without CSP-breaking `pluralForm` third args (shared regenerator).\n\n### Fixed\n\n- “Close anyway?” mistranslations (ES/DA/NL/SV/PT-BR/PL/FR) that rendered as “near/close” instead of dismiss.\n- Device API `vendorPublicKeyB64` now follows `VendorPublicKey::publicKeyB64()` (lab TEST key when configured)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTAxLWxvZy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-01-log.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTAyLW15LW1vbnRoLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-02-my-month.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTAzLWNhdGFsb2cucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-03-catalog.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTA0LXB1bHNlLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-04-pulse.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTA1LXBlcmlvZHMucG5n","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-05-periods.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTA2LXVzZXJzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-06-users.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtc25hY2tjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvc25hY2tjaGVjay1zY3JlZW5zaG90LTA3LXNldHRpbmdzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-snackcheck/refs/heads/main/screenshots/snackcheck-screenshot-07-settings.png"}],"videos":[],"translations":{"pl":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — ewidencja kuchni\n\nPracownicy rejestrują snacki i napoje jednym kliknięciem na swoim koncie Nextcloud. Menedżerowie prowadzą katalog, Kitchen Pulse, podpowiedzi do uzupełniania, zamknięcie okresu oraz centowo zgodny CSV/XLSX płacowy dla potrąceń w HR poza aplikacją.\n\n**Darmowa aplikacja webowa AGPL.** Komponent Kitchen Tablet jest licencjonowany osobno (`SNK2` licencji na urządzenie). Wersja webowa nigdy nie jest blokowana przez licencję urządzenia.\n\n## Jasne ograniczenia\n\n- Nie jest to system POS / TSE / gastro Kassensystem\n- Nie jest to automatyczne (live) wprowadzanie płac w DATEV Lohn\n- Nie jest to InventoryCheck — wyłącznie opcjonalne wartości stanów/par; nigdy nie obejmuje ruchów magazynowych; dzienniki nigdy automatycznie nie zmniejszają stanu zapasu\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL lub PostgreSQL"},"en":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — kitchen trust ledger\n\nEmployees one-tap log snacks and drinks against their Nextcloud account. Managers run catalog, kitchen overview, restock hints, period close, and cent-reconciled payroll CSV/XLSX for HR deduction outside the app.\n\n**Free AGPL web app.** Kitchen Tablet companion is licensed separately (`SNK2` device licences). Web is never gated by the device licence.\n\n## Clear limits\n\n- Not a POS / TSE / gastro Kassensystem\n- Not DATEV Lohn live posting\n- Not InventoryCheck — optional on-hand/par scalars only; never stock movements; logs never auto-decrement stock\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL or PostgreSQL"},"sv":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — kökets kassabok\n\nMedarbetare loggar snacks och drycker med ett enda klick mot sitt Nextcloud-konto. Chefer kör katalogen, Kitchen Pulse, påfyllningshints, periodavslut samt löne-CSV/XLSX som stämmer till centen för HR:s avdrag utanför appen.\n\n**Gratis AGPL-webbapp.** Kitchen Tablet-kompanjonen licensieras separat (`SNK2` enhetslicenser). Webbappen är aldrig låst av enhetslicensen.\n\n## Tydliga gränser\n\n- Inte ett POS / TSE / gastro-kassasystem\n- Inte DATEV Lohn live-inlägg\n- Inte InventoryCheck — endast valfria värden för i lager/par; aldrig lagertransaktioner; loggarna minskar aldrig automatiskt lagret\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"it":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — registro della cucina\n\nI dipendenti registrano snack e bevande con un solo tocco sul proprio account Nextcloud. I responsabili gestiscono catalogo, Kitchen Pulse, suggerimenti di rifornimento, chiusura del periodo e il CSV/XLSX di busta paga riconciliato al centesimo per le deduzioni HR al di fuori dell’app.\n\n**Web app AGPL gratuita.** Il dispositivo complementare per Kitchen Tablet è licenziato separatamente (`SNK2` licenze per dispositivo). Il web non viene mai bloccato dalla licenza del dispositivo.\n\n## Limiti chiari\n\n- Non è un sistema di cassa POS / TSE / gastro\n- Non è l’inserimento live di DATEV Lohn\n- Non è InventoryCheck — solo valori opzionali di giacenza/par; mai movimenti di magazzino; i log non riducono mai automaticamente la scorta\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL o PostgreSQL"},"fr":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — tenir le registre de la cuisine\n\nLes employés saisissent en un clic les collations et boissons sur leur compte Nextcloud. Les responsables gèrent le catalogue, le Kitchen Pulse, les indications de réassort, la clôture de période et le fichier CSV/XLSX de paie réconcilié au cent près pour les déductions RH en dehors de l’application.\n\n**Application web AGPL gratuite.** Le compagnon pour Kitchen Tablet est licencié séparément (`SNK2` licences d’appareil). Le web n’est jamais verrouillé par la licence de l’appareil.\n\n## Limites claires\n\n- Pas un système de caisse POS / TSE / gastro\n- Pas une saisie en direct des salaires via DATEV Lohn\n- Pas InventoryCheck — uniquement des valeurs de stock (stock disponible / par) ; jamais des mouvements de stock ; les journaux ne décomptent jamais automatiquement le stock\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite.\n\n## Exigences\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL ou PostgreSQL"},"es":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — llevar el registro de la cocina\n\nLos empleados registran snacks y bebidas en un solo toque en su cuenta de Nextcloud. Las personas responsables gestionan el catálogo, el Kitchen Pulse, las indicaciones de reposición, el cierre de periodo y el CSV/XLSX de nómina conciliado al céntimo para la deducción de RR. HH. fuera de la aplicación.\n\n**Aplicación web AGPL gratuita.** El complemento para Kitchen Tablet se licencia por separado (`SNK2` licencias de dispositivos). La versión web nunca se bloquea por la licencia del dispositivo.\n\n## Límites claros\n\n- No es un sistema de caja POS / TSE / gastro\n- No es la carga en vivo de nóminas en DATEV Lohn\n- No es InventoryCheck — solo valores opcionales de existencias / valores “par”; nunca movimientos de stock; los registros no descuentan automáticamente el stock\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL o PostgreSQL"},"da":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — køkkenets logbog\n\nMedarbejdere registrerer snacks og drikkevarer med ét tryk på deres Nextcloud-konto. Ledere kører kataloget, Kitchen Pulse, påfyldningshint, periodelukning og centpræcis løn-CSV/XLSX til HR-træk uden for appen.\n\n**Gratis AGPL-webapp.** Kitchen Tablet-ledsageren licenseres separat (`SNK2` enhedlicenser). Webdelen er aldrig låst af enhedens licens.\n\n## Klare grænser\n\n- Ikke et POS / TSE / gastro-kassessystem\n- Ikke DATEV Lohn live-indlæg\n- Ikke InventoryCheck — kun valgfrie lagerbeholdning/par-værdier; aldrig lagerbevægelser; loggene nedskriver aldrig automatisk lageret\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"nl":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — het presentatieregister voor de keuken\n\nMedewerkers registreren snacks en dranken met één klik op hun Nextcloud-account. Beheerders voeren het catalogus, Kitchen Pulse, aanwijzingen voor bijvullen, de period afsluiting en cent-precisie loon-CSV/XLSX uit voor HR-verrekening buiten de app.\n\n**Gratis AGPL-webapp.** De Kitchen Tablet-bijhouder wordt apart gelicentieerd (`SNK2` apparaatlicenties). De webapp wordt nooit beperkt door de apparaatlicentie.\n\n## Duidelijke grenzen\n\n- Geen POS / TSE / gastro-kassasysteem\n- Geen DATEV Lohn live-verwerking\n- Niet InventoryCheck — alleen optionele voorraad-/par-waarden; nooit voorraadbewegingen; logs verlagen de voorraad nooit automatisch\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL of PostgreSQL"},"nb":{"name":"SnackCheck","summary":"Trust ledger for office snacks & drinks — one-tap log, monthly payroll export, kitchen tablet","description":"# SnackCheck — kjøkkenets loggbok\n\nAnsatte logger snacks og drikke med ett enkelt trykk mot Nextcloud-kontoen sin. Ledelsen kjører katalogen, Kitchen Pulse, påfyllingsforslag, periodestengning og lønns-CSV/XLSX avstemt ned til øre for HR-avdrag utenfor appen.\n\n**Gratis AGPL-nettapp.** Følgesvennen for Kitchen Tablet lisensieres separat (`SNK2` enhetslisenser). Nettappen er aldri begrenset av enhetslisensen.\n\n## Klare grenser\n\n- Ikke et POS / TSE / gastro-kassasystem\n- Ikke DATEV Lohn live-innføring\n- Ikke InventoryCheck — bare valgfrie verdier for lagerbeholdning/par; aldri lagerbevegelser; loggene trekker aldri automatisk ned lageret\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"de":{"name":"SnackCheck","summary":"Vertrauensbuch für Snacks & Getränke — tippen, monatsweise abrechnen, Tablet am Kühlschrank","description":"# SnackCheck — Honor-System für die Büroküche\n\nMitarbeitende tippen Snacks und Getränke auf ihr Nextcloud-Konto. Verwaltung: Katalog, Kitchen Pulse, Nachfüllhinweise, Periodenabschluss und centgenaue Lohn-CSV/XLSX.\n\n**Kostenlose AGPL-Web-App.** Das Küchen-Tablet wird separat lizenziert (`SNK2`).\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-snackcheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL oder PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhQIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA5MDY1NjA1WhcNMzYxMjE1MDY1NjA1WjAVMRMwEQYD\nVQQDDApzbmFja2NoZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nyfcj+cJGarmjoHS3UkJ8PZ2/h87gLCzpsQazxTGUA+vruyXLdLOvWLYeQepPY/7m\ncckuPQs9FH+ay+UhghL0PcR9/WOlGT/jq2BCHuqje6oZRObyfSwIkvHthCum9Zyv\nzke3ggY3ACWWFrrqKXfeglKvP8haPN5e036xmdcwDt/wAqbVjBtc0WcX05LuZfEK\n3v/heu7fZAjXTM2I8bZ+1x7A1cvOrhv2INjBWYqiwuidSTl1M5yooco8Tvgk+G98\nFqC/ukTPkerI8JXT9o++Y01UK7E7Ag0uWyZxGxi2xuvnkRG8WovfBOxll43ddCny\nMIJtB3UasLRtEmLgq5dHoikeI5b+PpYV2PAcac6g+IuvlweBKljxVUOKoOAijSsd\nj52HlpMN5hBR1gkftVLuuiWX7olbRsLr0k9QRARCiEBfrpqhtxxNxUefC5XbQZ9k\nK/V/YaMEVBLktnKZLbOkLLNah+PY7IfZbPWY4i8HXuKWQSdAvw0ER3C/0AOlCx+x\nRxWsFmgQ3Iv2qyubziikrb/Y+afD0bQz+JK9uwRnJ54tfAxW6PUMZEPIhnX96DX6\nVipyzgeQMBknlrMuGU1Cu/sflK8s1EbpI5qgEdoQememPobxGd0u/lsMsoWvjp3+\nmPtZdF+jCJfRT4wRQVAPRAQ1/XZUiuhRBK0yPX1VjisCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAG32wfDqK3XQN5nzpEb0FX48TPbrmlEnSNiQnw7eGCmxePNh/icJX\n/bWjfQZe4Dv8JHfN5wucXepaek2lGimPE6+4PItGHolAN2IQU9AI856I0AHHPpRu\nhKBDl42mRdwILKqZZikjc7t6TuE5WzJAqlI4KEI2FDhsn5chL3VhJB16cMDLHwuj\nXLmPl/Z1WmOBrmbmHdvhrxGP50KzcFrUDlv3DMqG4sqGhKQNajuLlSPem68KdK60\ndw910Ml9zNF055o9OKsmIJ5SpkwF/FJKx3fkLN9JY80YK67K/hk6yLUTKxDnaXHH\nkPL42BNZ/FDXc9+YcNugp6+f9Jo3fLsO8A==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"files_snapshots","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/icewind1991/files_snapshots/issues","website":"https://github.com/icewind1991/files_snapshots","created":"2017-05-31T12:09:57.979795Z","lastModified":"2026-09-11T21:15:15.592828Z","releases":[{"version":"1.0.16","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/icewind1991/files_snapshots/releases/download/v1.0.16/files_snapshots-v1.0.16.tar.gz","created":"2026-09-11T21:15:15.335779Z","licenses":["agpl"],"lastModified":"2026-09-11T21:15:16.223469Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"Uu4fI13ps3Acm2lTEY6CXf+x1NhRVLMAwhgcqXTjQDIGlaDqheg6KMTvtPYbKl/cwKHwHbMTt3H45QAwDk8PqaHkHfjJI5gNFsTmEAR5+9fgibPK/e4ZavT1+L+LJMAkUcK3qLDNCNO4nnmOONhQWzNP6q2jp7r+XYvcN+i3vmZcg8IzzMLElMW4cBbLez2XgXKxbSyA0PW22xn6fYJVHBl/qBzlqTP66brhRl+iY/HZIVDrXdyd3gvElx4BQU8tSuifru3T+cCbfV6VMXcp28SFR4u8RAV6shrRT3VLZ1BLZCZMXTO42xDaGDhcOQj0tI0MBN3ubJCXQl/MSGtVwE9yKGyCUVkewtLMCEK2cjObFiNh5G/aFl9MkEwlVG4sXVQQmV9zVhhZVl2pBY4Mtgbem/KXuMctxOfW+ZHXvRum3SevhIjYhkn+EIbGC+YPsQ13k3MRTqCdD6EbcheIyHP1OR46zJPGsU8Qm2eoLhI6yqaaGRpYPf0rTxPcY8pbTN3aH0b9JXj0ZlnkgBzkU0WRcc/fwLtAE+WuIb98WOsrF7BGGPUBo6qwg01+s52lKU0nvB3Ttt5GcyixAV3/ZpYHrv1lpT/Fh5MuaFZ+gwibMRCXE4Yv2smb+XkZBY6CEb5Z5d9vnf3d7GMJGXgNa9mH+zj3Q/dE8tJ3nkpOQP4=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ljZXdpbmQxOTkxL2ZpbGVzX3NuYXBzaG90cy9tYXN0ZXIvc2NyZWVuc2hvdHMvdmVyc2lvbnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2ljZXdpbmQxOTkxL2ZpbGVzX3NuYXBzaG90cy9tYXN0ZXIvc2NyZWVuc2hvdHMvc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Snapshots","summary":"Access filesystem snapshots trough Nextcloud","description":"Allows using filesystem snapshots (from btrfs, zfs, etc) as versions trough the Nextcloud web interface. A full description can be found [in the README](https://github.com/icewind1991/files_snapshots)"}},"isFeatured":false,"authors":[{"name":"Robin Appelman","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhBTMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwNTMwMjAyMzQwWhcNMjcwOTA1MjAyMzQwWjAaMRgwFgYD\nVQQDDA9maWxlc19zbmFwc2hvdHMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC79stNg76jgxTh2l/WnsTdcKdIz60IW/3S8Z2M1Dgo9RMskHuGBXZ5v9tg\nGdm3Vnus3edf1e/DOfuFWqGr3oPmm6Mhyl1u7miW/xDwCn4p0FtPntDSYyApdNew\nL0t8JJbfT/H5Dj+v1InSPpRF9Q/0MTL3p+HooEKykf37RD5d/kjCsJjhkDx9zSTg\nB59wSg1YRvHRWd0ceDUQurPXOkHeYR0LP+VegdyttqcU0x4mF9a+h12kXWUb18l+\n1a7kfsHCXissdqr+2HkQiKcWc0R7oIMgJn/pgZdCwXYILlxKLGdjqBqtSw25nB8W\n3JckZ0V4QRxv5WK2dzRtN1zoJxPIPu6Rvg2z6Gbgg3mSiNKbqYwb7+ELrsjwA5Z1\ndZTuLRv1cbQROCC2p0QuTfwrT8NcCJza60NRQxve9uFF2CDy3ihjdtouMJpJHV3/\nOGpCf1w70lVQYw3VdIAiOGcXkCzeni5FpqS2so7ReB4z8n3zrirnNemy332TOmBh\njgkg5BHQJtyviGOA211C0ephJSsFNVr11GyOvnv3wxzpI7mGpKSnYToT+L5knutO\nMpvMnq88n4K5pGqHCxsIEX9fMSeOXqbHNk1yJZsYxOLxBfWxg27f7510CjDodBXe\n+DoX7Ozg7X/GAT253zNMhMKXbm5T5rd6xiNAvc5hoYPUGN5ANwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQA01lpQ9AlYTNStpFkFrvp35QINFPYa8rr2CKbBL6ELAXUs\ngWrjIt074VEF3U1e/Zt0Nm9DPu58RQ9ghsptJA/JqGF8pY7tbdeczveE986O05s8\nVVxv6CoNU6lqh4aTN0XEYjSHlF1vpIPxWyQ0YYDrLJjHyVXoVKR1ZmfdYNOFMg5S\n8orvxwEHTOC/dOGvxQlhV5cz8pSa3o2J+PyTbF7c0YYazzkcPRZtlVr/nT+gyb3v\n/1hM/hKnQfsurDQ01GSHDaS3jxyAYtgLOU4mw1MP5aqbqrHaIX0Q++Y4WQcr/Clj\nJhzmlxsUmrmGBEyvIcXIBFkD9Y50Ldp+zYgWkDut\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"pipelinq","categories":["organization","tools","workflow"],"userDocs":"https://github.com/ConductionNL/pipelinq","adminDocs":"https://github.com/ConductionNL/pipelinq","developerDocs":"https://github.com/ConductionNL/pipelinq","issueTracker":"https://github.com/ConductionNL/pipelinq/issues","website":"https://github.com/ConductionNL/pipelinq","created":"2026-03-13T15:39:56.910443Z","lastModified":"2026-10-12T07:08:31.034477Z","releases":[{"version":"0.5.20-beta.20261012070715","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/pipelinq/releases/download/v0.5.20-beta.20261012070715/pipelinq-0.5.20-beta.20261012070715.tar.gz","created":"2026-10-12T07:08:31.046198Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-12T07:08:31.055639Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"Bo+1bGetjRO0m38k4JwTbT3kR5f+AcUZJP3YlwZGriR48NQXiK1dSXwUf68xLp9hZO4AnoSsKwKry4cbvaw2wEp51y6Xgv0mHQuyZfg4I9ruLKgvypUX5Sf96HdFFg7PeMs6Ad+0XqKy1F1si0oNKggrt3iXZJh6Y/WwJDRy3IMPa0+/FBspCOLavM0d28HOTXiEjlVYJ/Ba0XwiJBgZTLiLoQiUf6mk8TbJyp00hyhS8Lti7nnVadrjCvwpRL0R/0vLAchk2PRKoIUY3MT9QuHlli6Krd3AJMTFcTyiIkusvAdr3AflEM4s3+0nH0inci+BoBQcEXAyEfdp9Xd4Tp+g0a93POQQa9ENxA2ttqMfBpjYcxS1TOuzeWMVhaPfcTYvc4gsJQK93/kJ7cKkNpWqj72gWE8ssKCCS2EEb3kNc5/96BYl0+9A/1CRhdSWF7zWdZnuY4+nfswvuT5w5hf9oKmI1mUvTdPdG2YjuaANQrMwfoTVJ9YUlSSGTc5LjPtPazvxGazeJ7U7Ud9+6nubYwO4FlWbraBAjZ5KbZB9tvJoegcf9ONZVCV5bumFY1/wQcb+iQNzrbGuht2dfWZCE9qOspDsbFqbsujXI59+EOWxgIOooBZlr9+1k/t+gmIjCiAox+SgdMSi4W3w2qEeiMFOHENqRejaFB6WxLc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.14","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/pipelinq/releases/download/v0.5.14/pipelinq-0.5.14.tar.gz","created":"2026-10-08T11:57:11.875374Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T11:57:11.952809Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"ZjIaDdgwuAHgGXawAwbL/ur07rnIXg6HDYLR4Nvnz8pS3WiZ791nxgE6etDOwZ+buXszRST5YwS9NJOv25xpGj1TaIr5MrFEZ15zxeclb9IcAuu2xVuI6LNu2kK+2lS1A3VRpG6yLIxpR8yHdd4YDe0MmD9evwq1J8yaUJaowhnulL32NbgZ9VvYoS0ZSVruk5YJL+Zs8me85tETeuzCYIcq7UaRIJ8QzK32TBs/8N+3A5p9hf5UVdaQvXnpIkMBqYxMtuQQv7xhrskae3UJgMDEpVx8MOGWvCIfBEF9mUqbizV6B+Pb3M/OV2jdAfZhPMWjsyBP1iRBnQbIQMoPCPzvIIfqwmWJnc2I/09/q326iqD5h63fHiCMZ0G9wZtWVQ0DJ2l4LVya92mEf9F/aWxBL2M7FRKI5T560KVNCNLqAo0AlQUVKuhWBDtwgqziXnrvmZlLleT+6f6KLgmTeqCWwxSYkEZaTHvObN82wucBGugeySV5diSnkiqwNYSyHDGdOVTa7h9Ekfa37pgJsRsKxEbN/4bsMjwPtjCN9xPXg9rkev9XodX3ht5E/JN82AMs6ocX1CuORRmy4H6q66L3bAsKL0zs3l/Tm7MvyCi8CGeHyAGis22NBZOoiSn8vumEQKOr46vcpcAz/imCylDuP+RREc94AEyI9+tGF0c=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.12","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/pipelinq/releases/download/v0.5.12/pipelinq-0.5.12.tar.gz","created":"2026-10-08T05:15:27.290034Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T05:15:27.354809Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"dqK3k0A2Ur6tpU1U+MMCJCoijeJymng5Z/NJ2bEIzqfWqXhrenMntYUl2FZmlDrTHLYYkCnJYkis+2r1AXLBgx24OOV52NW5wcKTp5r+1OmnA12lgodh+xHzA2hpXL7P0a3zibyLNaN8taSEd1wfPedu624BdLOa7zov4C6x/sl1r9gnuXCrnGAp9UuOAw70c1/GQottpanSVzaM+KslaL0PtT74qHKsgE0D71V9ecLGu8BfNA/lyHjSmu4vS5AkjsR3MOkfwuCN796ZcMQgAX8tM2J7n+aMpVg7Rmm1ZVE07wLCfj61kBO4PVk9JzkuGj3Dt73q+t7r7uhIJt7TJp0R8IZqTTW03g1ukbUjW/3basZjt6knXPA0mBQMHzHVjyIteLBVWZc/2ybvtlJLdbH4IEEYiID91Tv5SuKiIWveYk7yYg7SXcatJP3IrpHMBdlAl+3Lg4ahpoI7s0iJUd38/x8RTdUBUNPJKN33a+9CMcmZK1dQ69Rjr6acwDtvcT12sqtzMbW5J1kaNd1xYeYh6GWlSnPOrn6ZqWpbnkLDaTwyfKCS+qvFSDxFedUCiG4ey+dzE7Sjw6c08bHrctuRZe6S16Dml0QDFqqvnSXyu0YhEiW8EIbRq7iFW9C+2+aoBcj+/YKbJNHcL44gHuSRffch3PZyaPHDD8yUFJs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9waXBlbGlucS9kZXZlbG9wbWVudC9pbWcvc2NyZWVuc2hvdC1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9waXBlbGlucS9kZXZlbG9wbWVudC9pbWcvc2NyZWVuc2hvdC1waXBlbGluZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC9waXBlbGlucS9kZXZlbG9wbWVudC9pbWcvc2NyZWVuc2hvdC1jbGllbnRzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"nl":{"name":"Pipelinq","summary":"CRM met klantbeheer, lead-pipelines en verzoekintake","description":"Pipelinq is een lichtgewicht CRM voor Nextcloud. Beheer klanten, volg leads door visuele pipelines, handel binnenkomende verzoeken af en houd een complete historie bij van elke interactie — allemaal zonder je Nextcloud-werkplek te verlaten.\n\n**Belangrijkste functies**\n\n- **Klantbeheer** — Volg personen en organisaties met contactgegevens, notities en volledige historie\n- **Contactpersonen** — Koppel individuen aan organisaties met rollen zoals salesmanager of projectleider\n- **Lead-pipeline** — Drag-and-drop kanbanbord met configureerbare fases, waarden en sluitingskansen\n- **Verzoekintake** — Vang binnenkomende verzoeken op voordat ze formele zaken worden\n- **Contactmomenten** — Log telefoongesprekken, e-mails, bezoeken en andere interacties met klanten\n- **Mijn Werk** — Persoonlijk overzicht van je toegewezen leads, verzoeken en opvolgingen\n- **Nextcloud Contacten sync** — Tweerichtingssynchronisatie met de native Contacten-app via CardDAV\n- **Duplicaatdetectie** — Geleverd via OpenRegister master-data management, dat klanten met overeenkomende namen of e-mails signaleert\n- **Importeren en exporteren** — vCard-contactimport en -export via Nextcloud Contacten, plus geplande CSV-data-exports\n- **Activiteit en notificaties** — Blijf op de hoogte van toewijzingen, fasewijzigingen en nieuwe notities\n\nSluit naadloos aan op [Procest](https://apps.nextcloud.com/apps/procest) voor zaakafhandeling. Een directe verzoek-naar-zaak-overdracht is in ontwikkeling (openspec-wijziging `semantic-handoff-emit`).\n\n**Vereist:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (installeer via de [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nVrij en open source onder de EUPL-1.2-licentie.\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl."},"en":{"name":"Pipelinq","summary":"CRM with client management, lead pipelines, and request intake","description":"Pipelinq is a lightweight CRM for Nextcloud. Manage clients, track leads through visual pipelines, handle incoming requests, and keep a complete history of every interaction — all without leaving your Nextcloud workspace.\n\n**Key Features**\n\n- **Client management** — Track persons and organizations with contact details, notes, and full history\n- **Contact persons** — Link individuals to organizations with roles like sales manager or project lead\n- **Lead pipeline** — Drag-and-drop kanban board with configurable stages, values, and close probabilities\n- **Request intake** — Capture incoming requests before they become formal cases\n- **Contact moments** — Log calls, emails, visits, and other interactions with clients\n- **My Work queue** — Personal overview of your assigned leads, requests, and follow-ups\n- **Nextcloud Contacts sync** — Two-way sync with the native Contacts app via CardDAV\n- **Duplicate detection** — Provided via OpenRegister master-data management, flagging clients with matching names or emails\n- **Import and export** — vCard contact import and export via Nextcloud Contacts, plus scheduled CSV data exports\n- **Activity and notifications** — Stay updated on assignments, stage changes, and new notes\n\nPairs naturally with [Procest](https://apps.nextcloud.com/apps/procest) for case management. A direct request-to-case handoff bridge is in development (openspec change `semantic-handoff-emit`).\n\n**Requires:** [OpenRegister](https://apps.nextcloud.com/apps/openregister) (install from the [Nextcloud App Store](https://apps.nextcloud.com/apps/openregister)).\n\nFree and open source under the EUPL-1.2 license.\n\n**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEAzCCAusCAhMHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwMzA2MDk1MjE0WhcNMzYwNjExMDk1MjE0WjATMREwDwYD\r\nVQQDDAhwaXBlbGlucTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKCy\r\nWpmcje78w5rHhCWYaA1Ya+U79gdeUzK8nSGL7VCiKXCsqThU1bbSMtGClT4yCm36\r\nfUAG7QNpTbTvkwoe3ZbsQAZ0rTlRY7BcHXWtN0sCwDksBJ/eE6ztFngFbZKsDXSK\r\nXkxYG23EcmWrUmgZrLbwfLqPirSL5F/yU9AQ9Y9MzUkfD9bHr+WcqEuQvcOAu1gk\r\ndKSlfhEtmVIEadC4SzJY3PLUE2qsEVO8XQ5E9zmwEvuLg9zY1tn0xQzoBdqWHfYY\r\nvxOIicmoKoM6L58IpbHSkiWZIZAo2H+zjxgKzoRkzZSawD8qn741cPVsanrDpx8l\r\nd3VCfI9pNmXOEHu58s+si+dbapZwm9CwmXrVAtLUCt4zFxn8b/rhHOX+/7bpl355\r\nuL9QPqVrm5Qj0zCssiLZtIwIbKASU6d+HPlzyUnnxNuxSkVw1+1bXsjYxlwyLNTF\r\nEh4oDGTsVjCrq5F04mVy3QF69/hMzh7VcRn5NtrQNWTDXTvGxfwR4aNK9p+Byzzl\r\nKylP6VZjrBoVhRsvvoFec2E/2awl//rboFxqrdYMCSM+M7KMySeSuVTDmgdxKNnT\r\npyFp6Kh+VmJWni3Fa3bDcyyzo+8ZLobiRkC3qg903bFzjTddW6ZRWFK+bD27fRQt\r\n6gKZICwaE3Oz1CWUX/U3ks59auYW4WxcrQc5zwx9AgMBAAEwDQYJKoZIhvcNAQEL\r\nBQADggEBAHdwRIMQbbYAX+lfI7g7hDpm/Lng8UlicvtNWypZvwM0A4DSzjIVDSDR\r\nCx3eep2vxifocbrzwhF9t7+WKaylQ+OId8e9ZOQ8YsGz7LLRQ7e+ot0ZHhtW+CVq\r\nh18qPLflXcw8zRWgsklL2tSQUW12JtrnmVvXAXlSWXgFCq2iMQ7nPGffco/FZ3c0\r\n1IGZaFOyeGU1i55AvsdAx8jdI8oJ27Oj2Vy6LkzGpN2BhVfA/lJPcsS/FDsDr/zo\r\nh0+s/eU8ErhZIgL7O5y460po4iJuzUh/KQnWF/rmdBWonBbbd8WXLPMt7h+0GjDT\r\nLs/Ri6WmS+XmOyuras0Pnzu1JKiPsGc=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"otpmanager","categories":["security"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/matteo-convertino/otpmanager-nextcloud/issues","website":"","created":"2023-05-01T13:45:37.975392Z","lastModified":"2026-09-18T17:37:31.666737Z","releases":[{"version":"1.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/matteo-convertino/otpmanager-nextcloud/releases/download/v1.2.3/otpmanager-1.2.3.tar.gz","created":"2026-09-18T17:37:31.640226Z","licenses":["agpl"],"lastModified":"2026-09-18T17:37:31.719086Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"eG91soCbRLV2QpOrQhEHyUPgFcuh7vbW6+81V4MGs1vwqdD2Wz3oiD9mRZq1Izx/\n8uiCpPLUm+l2v8bbuX75YqbP6NrwTQl6c5B+Tz/VQ/MmE8HKiMSGuJSuq9C2cWI4\na0iSPi9grEZSZb9OZzE25M+1zLsFxa0eCZu6bkHLPqeyNhE4qItxXx5dKRZV7n3F\nyVVNrQwj7V5ItS/2irwxBDnL5i9NSQ2OG/rX3DoDivqxWOBFCOS2ynCrV+yvBwql\ngTEMdimFrc6oqwvaEFgGURDVvZIoLz+VfaDcMGlU0YiWS7GYC8dMmFAGANOeuspL\nUtzaxZSq4hZ8lt3cGTqbdVhwzgFEX6fc7PtltNlh1XzpsBOWsFzBzHcxZSPlQI75\nERC/7PO+yhEnSTwAyGqU1kaLWKmBWg6vOQPI7GMXerAsgLVpA7X8zGUuaG7ouC1U\nasAKvl3jpSnW//gJZjFzFCL261Fq8s7YJk0W3XhNQ+hByQjGP3u1ut9unRa6A0D9\nNaZDFa/SY8AjtuWQdOrIi0X9ru9m161V7s/yLdX5FJJ16SW9pq5x8XwWXexx8lgz\nP6s2BwGIUVfmFBxfeoE7X1FYs7sc/eSnVsbLyr7jalW52MsyMkeNbEbwLlbil3LI\nSwWI3LClMy6Wb7OW+gBgGhIRDpfL7oZrcTRVBNe2Wvs=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hdHRlby1jb252ZXJ0aW5vL290cG1hbmFnZXItbmV4dGNsb3VkLzU5MmI2YjgyMzZmMWI5ZTE2NWMxMDA1ZmE1ZWZmYTdkYzljODllODQvaW1nL3NjcmVlbnNob3RzLzIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21hdHRlby1jb252ZXJ0aW5vL290cG1hbmFnZXItbmV4dGNsb3VkLzU5MmI2YjgyMzZmMWI5ZTE2NWMxMDA1ZmE1ZWZmYTdkYzljODllODQvaW1nL3NjcmVlbnNob3RzLzMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"OTP Manager","summary":"Nextcloud app that allows you to manage your OTP (TOTP/HOTP) codes easily","description":"OTP Manager is useful for those who use two-factor authentication (2FA) and want to manage their OTP codes securely and easily.\nThis application allows you to synchronise your OTP codes with your personal Nextcloud server so that you can access them from any device.\n\n######\n\nWith OTP Manager, you no longer have to worry about losing your OTP codes or not having access to them when you need them.\nAll you have to do is synchronise your app with your Nextcloud server and you will always have your OTP codes at hand, wherever you are.\n\n######\n\nOTP Manager offers the convenient feature of importing OTP codes from Google Authenticator by scanning the QR code.\nThis means you don't have to worry about having to manually enter every single OTP code, but can simply scan the QR code that the Google app generates when exporting\naccounts, and OTP Manager will automatically import your associated accounts.\n\n######\n\nThis way, the migration from Google Authenticator to OTP Manager will be quick and easy, without having to waste time manually resetting all your OTP codes.\n\n######\n\n**Apps & Extensions**\n* [Official Android App](https://play.google.com/store/apps/details?id=com.convertino.otp_manager)\n* [Simple Firefox Browser Extension](https://addons.mozilla.org/en-US/firefox/addon/simple-otpmanager-browser/)\n* [Simple Chrome Browser Extension](https://chromewebstore.google.com/detail/simple-otp-manager-browse/meopmcadkhpcpoaigkhkadagiemblecc)"}},"isFeatured":false,"authors":[{"name":"Matteo Convertino","mail":"matteo@convertino.cloud","homepage":"https://www.convertino.cloud"}],"ratingRecent":0.5,"ratingOverall":0.7142857142857143,"ratingNumRecent":0,"ratingNumOverall":7,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhIVMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjMwNTAxMDk1OTU5WhcNMzMwODA2MDk1OTU5WjAVMRMwEQYD\nVQQDDApvdHBtYW5hZ2VyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\ntgR+S5BetltGa9PFYzdDIYg31sNaFm04BPmEMuVbLKg2DhmGIXFjz+Ahwkpdqmpj\nND4NMVV2Aj/RgeQ/XUTgIqpeH9PwEY0oq5aLDY80A/5MVnd8gLqxvD8HqLfMx3gz\n0DmBiT7dyVBSnevVcQaWxmYSF1x7W4WdUYbmJBD2ARFeNH4NjOgBFZw7JZ9a9NJV\nF7HI/qnZMVVLnwUYU9Ua5EC75aIwM680LQQdlQ09oX99nOTt5OqSWZDjqVcftkZO\nte3sq3Hno/G89ElogCKRsoZMsjaolZ292CynXJC5Ddhqrlm6rwzlCRsEUAXrHkSy\nXyaxyQr+ljiD8nbyCMybtj4wsGnpdJ+r/U44Ds6WxNdK38vjG64KUZgA2xJ1FT+o\nwhqQ47HP8FUsYRP6IRL/hb89AUVXJRPsQtJLyARaN7hmnDx+i9+Z8Zl+gTJsiJdi\n75yepFlXfCcaYCx5oL3zHDIgWq5maCVgilj9qKWo6nIAWEeTSsQ30PSxGdQfab4S\n+7uNDl9GTPq/5bKnVevcG+vVDLJb7BooxqOvKrckLwW9XZNKfll0rzlWx4Mh/3g0\nciyu0SpmuPTFxA07GtWC0/sZX32uRd0MPzo/zzAh/lmmyaQ+OS0LfKHd+P0pB9J+\n93jMrYfhqiFVPqzn5qkfL1HDaigEnKSzTPOuwZomHUcCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAWi96bqoMKP6nykyQsM35SR9U1vlEVeMNPOiHPSAoqASqFALnIICM\nybsUjgJtkjtPWpiA4kljB/GvOOo2vyj+c7dBPUkfCp76NCXaMQ3SQtMik4rryp2J\n8oZNZ+AYi7l1WJ43na42ZuVzxxEfmxU17zH3bDhaM/EgSNlq4qbCmRsBYRHzsuLl\nKUjVL5+GwCSrS+G0sizhtII2odkCggjzItaFOaGO0BeHEZBxEAMtrckne8TOQ0Wt\n97h/vgjOgyA3hb6/va/638xvxiyT97wUYx5tWWC2DVUSgPHZ3hMdi3HZzHCqDwSa\nBodFCrw93kTF4Dz/dmhyp+V1RSRy7J3Tkw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"audiolog","categories":["ai","multimedia","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/sintax-tech/nextcloud-audiolog/issues","website":"https://github.com/sintax-tech/nextcloud-audiolog","created":"2026-09-30T12:45:23.484230Z","lastModified":"2026-10-08T16:22:52.723795Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/sintax-tech/nextcloud-audiolog/releases/download/v1.0.5/audiolog-1.0.5.tar.gz","created":"2026-10-08T16:22:52.718133Z","licenses":["agpl"],"lastModified":"2026-10-08T16:22:52.803695Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"kWzGnMyq+WCaK77QxV97lGOvBaSIVO8+otfsz9M75PxDV7DdZ131Jh5anb66CsPo\n4CW4ai/QwmOyeQZcXAdKMDT3vTuv2TGvi4TuR8dtF3+1AkmCuSRfP8cFKPQpF07y\nQ/pt+kk/JXZF6ppm2I4mjP8hUVDE12wqWmFr7b56x7t8BUnauqwtLS9xTWsxLxmV\ncCQXZgIk9xZLVUpZaYLyFCgsaez1jX95GL24bzmENeailFXSRW2DdsNJftqIdGiN\nMGhRHfWq2njxlCC4uvMct9p9/yiiDT5BiPxXE7NIawDgda4R5tMvgsIZ5k5DItV1\nhaRnGWGhhBN+w5U9uzD2QoxQgqWQ6T0ukJLS4T/XvbqUsOuEnJH7K0zG//qJtvor\nDRcv8o3tgWCO27ehyUTrMWdVQ89ZJjHoduRi4UkoKhpkTprd4VIhd5GSg90puvgi\nTIMm7QwNM22S4y1POGAxlzcXHacqaIr/klesj6bcX2gLE2fb3SDtgdU8x6QZ5kKC\nCVnVDYpTP2wHMYAyqRiCcr7evNV2MBXDiu/xBv1SSTQgQyjL832kk1uW+rpvsUny\nxOjIF/rpd4Pi7xEGh8RhHsaHWKN1kn58NeOWAorJml+oXGQdKJIQ9a2cacNaqk2D\n6DIdMo/rPjux8tWR2YKgs2uvMlfdImuKKCjwCYbn/tk=","translations":{"en":{"changelog":"### Security\n- Google API keys (Gemini and Cloud Speech-to-Text) are now sent in the `x-goog-api-key` header instead of the `?key=` query string. Before, a provider error (for example a 400 from Gemini) put the full URL, key included, in the exception message, which reached `nextcloud.log` and, for background jobs, the `error` field returned by `/api/status` to the user. Provider error messages are now masked before they reach the log, the job record or the HTTP response. **As a precaution, rotate the Gemini and Google STT API keys** configured in Audiolog, since they may already be in old log files.\n- Exporting tasks to Deck no longer writes straight into Deck's database tables. Any user of the app could create cards on any board of the instance by sending another board's list id. Cards are now created through Deck's own services (`CardService`, `StackService`, `BoardService`, `PermissionService`), which apply Deck's sharing rules, activity and notifications; Audiolog also checks that the list belongs to the chosen board and that the user can edit it, and refuses otherwise (HTTP 403). Checked against Deck 1.12 to 1.19 (Nextcloud 28 to 35). Deleted lists and archived boards are refused with a clear message, and if Deck fails in the middle of an export the answer lists the cards already created, so a retry does not duplicate them.\n- The live transcription proxy (`/api/stt/recognize`), which spends the admin's Google key, is now limited to 30 requests per minute per user through Nextcloud's rate limiter (a normal session sends about 12).\n- `ffmpeg` and `ffprobe` now run with `-protocol_whitelist file,pipe` and `-format_whitelist` limited to media demuxers, and files whose content is not audio or video (checked on the bytes) or is a playlist or manifest (`#EXTM3U`, `ffconcat`, XML such as a DASH `<MPD>`) are refused even when named like audio or video. Before, a manifest saved as `.mp4` could point ffmpeg to `file://` paths of other users' recordings. When extraction fails, the message now says whether the format is not supported (listing the accepted ones), ffmpeg is missing or the extraction timed out, instead of always asking to install ffmpeg. Before, a playlist saved as `.mp4` in Nextcloud could make older ffmpeg versions (for example the one in Debian 12) fetch URLs of the internal network from the server. Every ffmpeg call goes through `proc_open` with an argument list, without a shell. Their error output goes to a private temporary file instead of a pipe, so a corrupted file that makes ffmpeg print an error per frame can no longer leave the request or the background job stuck, and every call has a time limit after which the process is killed.\n\n### Changed\n- The store description (English, Portuguese and Spanish) no longer says that live transcription with an external API key is restricted to admins: that option never existed. It now describes the server-side proxy and the per-user limit. The unused `realtime_stt_admin_only` setting is removed from the stored configuration on the next save of the admin settings.\n\n- The page no longer adds Gemini, OpenAI, Google Speech or the Ollama URL to its Content Security Policy: the browser never calls a provider directly (everything goes through Audiolog's own endpoints), and the internal Ollama address no longer appears in a response header.\n\n- Interface translations: about 85 strings that showed in Portuguese for English users and 170 for Spanish users are now translated, the admin page script uses `t()` for every text, and dates follow the user's locale. The server's own messages are translated too: API errors (size, type, daily quota, Deck, paths, live transcription), success messages, the admin healthcheck and connection test, the Markdown task file and the description of Deck cards. Every string in use exists in English, Portuguese and Spanish, and a test fails if `lib/` returns a user-facing text that does not go through `IL10N`. Background-job failures report a translated generic message, with the details only in the server log. The default \"Transcript\" title, the \"(named)\" suffix of the speaker-naming note and the \"(unintelligible part)\" marker of live transcription are translated as well.\n- The live transcription refine pass no longer sends a prompt fixed in Brazilian Portuguese from the browser; the server builds it in the language the admin configured, so English and Spanish users get the refined transcript in their language.\n\n### Removed\n- Dead code: the Gemini Live WebSocket client in the page script (about 230 lines that nothing called; `gemini-live` already fell back to Web Speech), the unrouted `ncFile` endpoint method, `getTaskStatus`, `findStaleRunning`, and the unused `realtime_stt_model` setting (removed from the stored configuration on the next save).\n\n### Fixed\n- Users outside the allowed groups now get a translated \"Access denied\" page (HTTP 403) instead of the app interface, whose actions all failed.\n- \"Test connection\" and the healthcheck now use Nextcloud's HTTP client, like the processing itself. Before, they used raw cURL and reported \"OK\" for a local Ollama that the processing could not reach, because Nextcloud blocks local addresses unless `allow_local_remote_servers` is enabled. The blocked case now shows that setting, and the README documents it. This also removes `curl_close()`, deprecated in PHP 8.5.\n- Temporary copies of the audio (video extraction, duration probe, long-audio chunks, DOCX export, background-job uploads) are created through Nextcloud's `ITempManager` with `0600` permissions and deleted in every case. Before, they stayed in `/tmp` whenever the provider failed.\n- Long Google Speech-to-Text transcriptions poll the operation on `v1p1beta1`, the API version that created it (it used `v1`).\n- Task extraction (for Deck export) only reads the task table the prompt asks for, or a bullet list under a tasks heading (\"Tasks\", \"Next steps\", \"Action items\" and their Portuguese and Spanish equivalents, the same names for both shapes). Before, any three-column table of the minutes (participants, for example) became tasks, and bullet tasks such as \"- Send report - Owner: Ana\" were dropped.\n- The admin's \"maximum file size\" setting is now enforced (it was saved but never checked) when audio is processed, for uploads and for files picked from Nextcloud (HTTP 413). It does not apply to saving the user's own recording, so long meetings are always stored.\n- When saving a recording fails, the page shows the server's reason and keeps the audio in the browser (IndexedDB) for the recovery prompt. Before, the live transcription flow dropped the audio and kept only the fast transcript, and the recorder's local copy was not offered by the recovery prompt. \"Process now\" on the recovery prompt also deleted the local copy before processing; it now deletes it only after processing succeeds, and keeps it recoverable otherwise. Uploaded files must be audio or video according to their content, not only to the type the browser declares (HTTP 415).\n- The Deck board picker lists every board the user can edit, including boards shared through a group or a circle, and no longer lists archived boards or boards the user can only read. Board titles are no longer written to the log.\n- Live transcription with Google Cloud Speech-to-Text never started (\"Invalid configuration\"): the page still expected the API key in the browser after the key moved to the server-side proxy.\n- The app tarball is now built with `git archive` from an explicit list of versioned paths and checked before signing. The 1.0.3 and 1.0.4 tarballs also contained the developer's local `.remember/` session notes (no credentials).\n- Renaming a recording saved with a title (stored in `Audiolog/<title>/`) failed with \"File not found\", or renamed a file with the same name at the `Audiolog/` root. Notes and DOCX saved for those recordings were not linked to them either, so \"delete with outputs\" left them behind. Each saved note or document is now linked separately, instead of replacing the previous one."}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/sintax-tech/nextcloud-audiolog/main/dist/audiolog-1.0.4.tar.gz","created":"2026-10-08T14:35:43.013082Z","licenses":["agpl"],"lastModified":"2026-10-08T14:35:43.098221Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"bXgKYqgEnzqYge+2gAzHcQOPDIsWXel3f7qqrq1nLPe6M0/EQnJaexI1SAgYpOqi\ndMZzO+8u4wgf4YTzId1TLo/Xc+xGb8G9D2a1kmdaFYCGiavnWqePrvGfMectdWzB\nxSmfunOUCmJuCXqdJP4i3zSHr/heghoRgQeD41PdtDqmttXpqkRGNQ7+i8mckc5K\nbY0gXQGcUv0oL5QQvofnzBnQPPR3purHEVnxVtF/2zQVNVYqAaDGO/ACiV0kdKNv\n4YRXnR6ARnnhZQqgJmrS+bxmeJ/g6WDXfgwWVJjK7pRq/l5ixluyGWARs3PzMPWq\nE8rPW59dQr8iLZWE0qFBQ2QOjDOeGL/ncyMLOBh16jwAo0AJk1FpNYpsI8MFkJ3n\ngj7l96RMEZCe30JSlNeW0PseKOIsCBDFrfQHqh1ZVOCGz3HCrqBjTIfRHAt2t2pB\nkichY5EByCILI792/BEw/XzBC80i6VbHkUFRmwfHClRCueUSKfPEax05lcS9GDom\nEOGrv8hwKP/+JCd3uoJhRvu0GRjVpBKtStEFP4c0lTT63L/KjNn3/RRzpm0bYL3/\niHeyfx97D4tsaaaJZ61IYX7UveCmnK8oBbCLOhJcvAyt2/OGmcC9jRCYaQEsz/jT\nGA2+di8MRZ0wm+vqwb+t3wf2VRpj9WQy81TR5HTJSjs=","translations":{"en":{"changelog":"### Changed\n- The store description no longer lists Gemini Live as a live transcription option. The live options are the browser's Web Speech API and Google Cloud Speech-to-Text; `gemini-live` is a legacy value that falls back to Web Speech.\n- `<summary>` and `<description>` in `appinfo/info.xml` now come in English (default), Portuguese (`pt-br`) and Spanish (`es`), with the same content in the three.\n\n### Fixed\n- `appinfo/info.xml` elements are in the order the app store XSD expects (`<settings>` before `<navigations>`), so `xmllint` against `https://apps.nextcloud.com/schema/apps/info.xsd` passes."}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://raw.githubusercontent.com/sintax-tech/nextcloud-audiolog/main/dist/audiolog-1.0.3.tar.gz","created":"2026-10-08T13:47:50.636800Z","licenses":["agpl"],"lastModified":"2026-10-08T13:47:50.700211Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"ba6xPUsB8myM3YXT3RcAZZZDgzVyWu9V4Z/v4X9hB+tS+GKf5ZBZW8xA27q+rz4Z\nTfhWpCGvZB6qUXTqHPkhkJ57eA6H/OVDO5Sx8fgcyr9mRAE3MDQj0aPc8l9An0FZ\nxLdum7pX1NC+WmxYBXCBOV8oddRq7CWxOBejheDkMiakcahl7PXS+rpIUrAyEliO\nCYk5kxKL/b1xUxhMfm1VLIdfIPaMraPcg7L/MOOhfI4eUWYEFe5EEAKmL1gdvX3l\nHTI8eV8UW2CwZKuhhf53K562NG8mst5usWLXZRdsAdh1U/YKi2ojVwt4sbBRuoeb\np938m48odbvvXLYWuRbvQ3HM6Qxrb3m8xGI8R7WqmKCNmOLD2KzfltmZ4Dfm/UAn\nLtnKQl7LpdGrWVoIZk/NDSIb4PPGKoing8kIpbYq8HUfoPD3nXkWYQF5C/DEWVBw\nvjD9k7HRSHCp0YawEpu4njvFZrGuT5wusyt9IC3Lbnpbhpf9VuWQfUgOlsKYjinB\n1p/Q1c8vcsQ6AB9b/rybN6FZuJM9gj5axd1u/smA9Z7bHmRSOqgi3bEwmjfRZ24G\n76WtYcUtFLcEAMkrHBBFRzIn4+czRqARgeuuMmQi3mvMy3kVn1Qy1xqD3S8LdIV8\ny54Suv3mpfrMNyqw2XIrkjrM7EpX/WbujppCiHDKURY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL25leHRjbG91ZC1hdWRpb2xvZy9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMDEtcmVjb3JkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL25leHRjbG91ZC1hdWRpb2xvZy9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMDItbGl2ZS1ydW5uaW5nLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL25leHRjbG91ZC1hdWRpb2xvZy9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMDMtcmVjb3JkaW5ncy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3NpbnRheC10ZWNoL25leHRjbG91ZC1hdWRpb2xvZy9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvMDQtbGl2ZS1zZXR1cC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Audiolog","summary":"Record, transcribe and process audio with AI, right inside Nextcloud.","description":"**Audiolog** is a Nextcloud app to record, transcribe and process audio with AI models (Gemini, OpenAI/Whisper, Ollama).\n\n## Features\n\n- **Audio and video files** accepted by content: MP3, M4A (iPhone), OPUS/OGG (WhatsApp), WAV, WebM, MP4 and more\n- **In-browser recording** with pause, resume and a real-time size/duration indicator\n- **Auto-recovery** if the tab closes or the network drops mid-recording (IndexedDB-backed)\n- **Live transcription** via the browser's Web Speech API (free) or Google Cloud Speech-to-Text\n- **AI analysis**: summary, formal meeting minutes, agenda, task extraction\n- **Speaker diarization** in the post-stop refine pass with Gemini\n- **Multi-provider**: pick Gemini, OpenAI/Whisper, or Ollama (local) — no hidden cross-provider fallbacks\n- **Large audios** (>20 MB) supported via Gemini's Files API resumable upload\n- **Files integration**: recordings live under `Audiolog/`, fully manageable from the Files app\n- **Markdown or DOCX export** for Office/Collabora editing\n\n## Privacy\n\n- API keys encrypted at rest via `OCP\\Security\\ICrypto`\n- Per-group access control (`Allowed Groups` setting)\n- Google Cloud Speech-to-Text live transcription goes through a server-side proxy: the API key never reaches the browser, and each user has a per-minute request limit\n- Web Speech API runs entirely in the browser — no key ever leaves the server"},"es":{"name":"Audiolog","summary":"Grabe, transcriba y procese audio con IA, directamente en Nextcloud.","description":"**Audiolog** es una app de Nextcloud para grabar, transcribir y procesar audio con modelos de IA (Gemini, OpenAI/Whisper, Ollama).\n\n## Funciones\n\n- **Archivos de audio y video** aceptados por su contenido: MP3, M4A (iPhone), OPUS/OGG (WhatsApp), WAV, WebM, MP4 y más\n- **Grabación en el navegador** con pausa, reanudación e indicador de tamaño y duración en tiempo real\n- **Recuperación automática** si la pestaña se cierra o la red se cae durante la grabación (con IndexedDB)\n- **Transcripción en vivo** con la Web Speech API del navegador (gratuita) o con Google Cloud Speech-to-Text\n- **Análisis con IA**: resumen, acta formal de reunión, agenda, extracción de tareas\n- **Separación de hablantes** en la etapa de refinamiento posterior a la grabación, con Gemini\n- **Varios proveedores**: elija Gemini, OpenAI/Whisper u Ollama (local), sin alternativas ocultas entre proveedores\n- **Audios grandes** (>20 MB) compatibles mediante la subida reanudable de la Files API de Gemini\n- **Integración con Files**: las grabaciones quedan en `Audiolog/`, con gestión completa desde la app Archivos\n- **Exportación a Markdown o DOCX** para editar en Office/Collabora\n\n## Privacidad\n\n- Claves de API cifradas en reposo mediante `OCP\\Security\\ICrypto`\n- Control de acceso por grupo (ajuste `Grupos permitidos`)\n- La transcripción en vivo con Google Cloud Speech-to-Text pasa por un proxy en el servidor: la clave de API nunca llega al navegador y cada usuario tiene un límite de solicitudes por minuto\n- La Web Speech API se ejecuta íntegramente en el navegador: ninguna clave sale del servidor"},"pt-br":{"name":"Audiolog","summary":"Grave, transcreva e processe áudios com IA — direto no Nextcloud.","description":"**Audiolog** é um app do Nextcloud para gravar, transcrever e processar áudio com modelos de IA (Gemini, OpenAI/Whisper, Ollama).\n\n## Recursos\n\n- **Arquivos de áudio e vídeo** aceitos pelo conteúdo: MP3, M4A (iPhone), OPUS/OGG (WhatsApp), WAV, WebM, MP4 e outros\n- **Gravação no navegador** com pausa, retomada e indicador de tamanho/duração em tempo real\n- **Recuperação automática** se a aba fechar ou a rede cair durante a gravação (com IndexedDB)\n- **Transcrição ao vivo** pela Web Speech API do navegador (gratuita) ou pelo Google Cloud Speech-to-Text\n- **Análise com IA**: resumo, ata formal de reunião, pauta, extração de tarefas\n- **Separação de falantes** na etapa de refinamento após a gravação, com Gemini\n- **Vários provedores**: escolha Gemini, OpenAI/Whisper ou Ollama (local) — sem fallbacks ocultos entre provedores\n- **Áudios grandes** (>20 MB) suportados pelo upload resumível da Files API do Gemini\n- **Integração com Files**: as gravações ficam em `Audiolog/`, com gestão completa pelo app Arquivos\n- **Exportação em Markdown ou DOCX** para edição no Office/Collabora\n\n## Privacidade\n\n- Chaves de API criptografadas em repouso via `OCP\\Security\\ICrypto`\n- Controle de acesso por grupo (configuração `Grupos Permitidos`)\n- A transcrição ao vivo com o Google Cloud Speech-to-Text passa por um proxy no servidor: a chave de API nunca chega ao navegador, e cada usuário tem um limite de requisições por minuto\n- A Web Speech API roda inteiramente no navegador — nenhuma chave sai do servidor"}},"isFeatured":false,"authors":[{"name":"Jhonatan Jaworski","mail":"jhonatan@sintax.tech","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhNDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTIwMDgwMzMxWhcNMzYwODI1MDgwMzMxWjATMREwDwYD\nVQQDDAhhdWRpb2xvZzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK8T\nVUsi8g9lUAsKobWDvhjTVyUa/QNfLyu69XJkj6P1OtlgaKDWnhVBrWEVmpJxgCzg\nslGFcijhuGXPVnXFML5x/iNjqVPf0SlSzgMX5oK5MsxXlsZhtTmbl6Te4at7H+Io\nNphckxdhA/sJssHzijHBb9bB5piGhaS3u97JHCKvZWwUuy1aRyDQPRL/YeQPRQVT\nqF0b1nYA09DSftQ4sXYQvm6pAfXKmikKOc3FaVjowiLEWVbZ0+ZVVRks1BDoLhwj\n9RvjaCoubUjJVSU7bboSrDSDkNJPGENoQAS1FZJD7w2rVARSihicShKCre86SV6b\n5X3P83DxdIztdfEVpE8yCuNwb0rbFeo6KHJezCoPlPtJZrA8WIJQ59o1/wTyWkcq\n3JQaujF7RfM5n6Q8Ng0DM4V7+8sI0corVkEglt9Ulmn6zVy/SeLwX/PDKgWCpO0Z\niBoekPzvRjiUs/X6cClORqIrrKWUeZJC64OmIrwEjxjAn6CQVY391f3g3lx4Wc+v\nePU2M+r9GzG0fQcmWIfLRTUBFMG/1GGVEHigM8rybAczD39jwBNtEEpPwS0lX7Gh\nNmrwGRYNwMWjiz8XAQuo14Z/AxxonsraUju2xV7KsiZpeGwWVkQPJNvSHykNdOrH\nllIZ8MGbFzNA5cyWxm2mL+xFa6Yd382u9w7M7lJdAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAAhinRmswt0Lt+yr31bfHuaSQTSwWnGBp3glVR7+dXKUWMXhCcjIZdek\nCS9QszTGUAV4uPXliEy9I8qlpZbBYxSwTw2KDPSlTzGjvk5i5Pkq56iHuGNX+KyG\nJDuXnjV7S+mvOzi9KHSxVULP9d+MIW24vYqBA3BhZK84B2XJwtdtqGydiomsuSsp\nRJeheaF0+9mG5FDXeoR8L4GDDdOdy8b6kozJ3pLywlFVC6P+4VIy7W3kLeYCNcJz\n1cZqXa+OQ0jRNS9OVjfs5WHnZx0e9f9604cQVIGoLMdcmhUvIyF03vd07bM1nOqA\nG91ZdvWxpJgxo92M76pjiC5mn56CenU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"uptimekuma","categories":["integration","monitoring","organization","tools","workflow"],"userDocs":"","adminDocs":"https://github.com/zomtec2311/uptimekuma","developerDocs":"https://github.com/zomtec2311/uptimekuma","issueTracker":"https://github.com/zomtec2311/uptimekuma/issues","website":"https://github.com/zomtec2311/logcleaner","created":"2026-09-14T08:06:00.049647Z","lastModified":"2026-09-17T19:45:54.490098Z","releases":[{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.5/uptimekuma_1.0.5.tar.gz","created":"2026-09-17T19:45:54.468136Z","licenses":["agpl"],"lastModified":"2026-09-17T19:45:54.544652Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"RyQGL5AqD/5XOwMeK3jTsccMLUHfkAklk1GDk/SnRXDGxcFDiWSFuwMKCAbkPp9w6iTqKbImsa+hfNuOYYBlxaISAXzQBEmW6SBDMMnLUWS/ERvJyY7XmsepRsEhp8U6F/WIi3xJRJhB1UGDcSIWqEANAUmHEC4rfl101tsLxchpeh7fvXlKB8lDph4xjeZd9xPZoLtk4QeOFQw1MypZ/6ezTPxlkhMvHGEDCrG2Usu4BFCUGS4dhYtStksLg73auzv0YFmO48cCGLUHb4fMs+S467bAA7s1e4RblV8P+JvEcY1b7gFBXqb+RyJ0azNxTGWxJbq+v1DDQJngOmKFwtZIDg+8zJU8KcqsTIdgkUrDjVecdDI6FlH2uKcynYHlZkikwceEMwpyi/nDU+J09aKHyIa/iAWjuQLFWZgnqn7M1h78gFbQXeQr4gmhxZnCLHf60FOog62qqr42mXUfuCQceAmWUcywWg4IDTTxihYJ2vfxwJb2z6tGVd0cykivMflqpflM/53Lk0x3LJBc7Xyd57MEArtSPgPoTMrMhLDM8ZJF9HLuqWoy/1fH5eJi+4mqSMsIkPD9WZxnbeSeEKJbQLpzTpsne1HOFwbsCIze2lEpU2SOcnpVrMKvYygF8hgzPDdqCt04tKAXVd4JSHXql3T/U2arncIQeAdXkb8=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.4/uptimekuma_1.0.4.tar.gz","created":"2026-09-17T19:09:24.795295Z","licenses":["agpl"],"lastModified":"2026-09-17T19:09:24.921558Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"BRAXy/ys1kZCqJBG5ccrTuB1t0GQtbORxjRgpPGZgiQvKnVDqBFj5pGrupT2BUaqbRZJIlAgcl0L8Uuqiviwn0RGVbnwWTNCMbf+TJL/Wmsh4FvTntd4uZ7irR96mSQFKEGXYHN+B/fseiZJITU4SObpLoT6sJzATRNJeb1yI+CvY0jllkxanlDA2DvldEd3VjLcfVIReBBk5czAg7z1iu6KzZCOwcdyRelJcEL68GoXNZ/fVUXWFgvFQ5FUDWlAXCKngprC4mezZxvlu6MGxvv+bPoW3fBYwNScewr0vDazglOLxKZklgiOlyujco6fwk59drySSsyV3vigutmPHF48R6WLJiIYtT2MW2+A4myYW/YmmbZC8Pr4CTZOSYlEhCJ4Aem7b1js7tZgC18JiOVR34IHLA6ntkthrP4IvMHoGjXmrzhOk+NXBRZs5ahiFbELO1ZjWR6qieiQjzYOGtasmubcmPOS1lAeJAIiIZf3vBGPqwgoCFBzNkKvurA+QgdcyRRoc0odV3Ff4INJDRU1Pho8jmyGyQNcA9rByM5w0iaAFapqYTFJBlYk9O/7t0u3lpUgFdQJ5Qcgk0hipyrAgvVFCS+zyy2AudIttlPF54J65JjVjz74Aff3Ysv1IARILSAiGfFelZM0VQOAM/q3SL7aXGfDxoCdSf6TxlE=","translations":{"en":{"changelog":"### Fixed\n- Typo in HistoryCleanupService caused a 500 server error"}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.3/uptimekuma_1.0.3.tar.gz","created":"2026-09-17T06:22:55.579748Z","licenses":["agpl"],"lastModified":"2026-09-17T06:22:55.675272Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"FEpv8YmFfeaskyssTORjG40Z4qIorCr0UNxcMUjiv/zQhsAlMD9OYQf2v5sDev52sEWzcScwGOmuh6cuOSj7eWq9oOpqK9g4JJqbakuXY6f7EMy2tmEWLOvk5+asmvsHSXwTjgAh2E+PW6R05pX9GKjxwgFETGiHyUa0kxbkZNtff5O3nq1txaIOCd1ltbwHI3V5BOKJ8ILkbBOLk/349WrWdfNbbjk6qMOIxe3bASkgUes1utR2M0QcqIfK8rY/SZ0jtg6JOzZ/JxIm1a9rBtaxI8PWkK9OkMvLywxmG615LyMNCpk/YY14zFLpFO1Y6RkCMybRhSY6V3xt9FMHl3KJgLD3aHwEE+S57JfgKJqED/vDpix5pXWSEytYmEUd/UHy6gafmm2ey+73btaGAB80gZhDs8crYj7oAwqUVU5WupJb7gm8jlIfxbTWTVBoKN0zPB/xY+lKKz+Y2sQYXcZvnGFNmROEoZh8O9EXPIuT8+PzsF2JT69OBBuNq4FkYcGasADJvZtr+m90Ehjy3+6urkatYTE/BMtfhylr0zSMFSFa//KAT0PJxvsURRYCr+UstLJzokpuc+3zG5TyDbSR1mnMBEbnlIB6tbpJB7o0rX9lqdGY5CyPL7zxUekVHY9RRUt0fDw0YqA8ATXuKyiBOlhnQcTCgDB8L+KuD+s=","translations":{"en":{"changelog":"### Added\n- new settings\n- Instance is deleted -> related jobs are also deleted\n- Job is deleted -> related tokens are also deleted -> Jobs will also be deleted from history\n- 24 hourly background job to automatically delete old entries in the history db. Age of the Jobs to be deleted is adjustable in the settings\n\n### Changed\n- **l10n:** Language files extended by additional phrases"}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.2/uptimekuma_1.0.2.tar.gz","created":"2026-09-16T08:51:07.213006Z","licenses":["agpl"],"lastModified":"2026-09-16T08:51:07.277667Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"nXSzUa7eHdTJ6kRCuXohlJx+G0xStZs+aCCyoXl8ktSEBLc482b1qZJ4DIo6qXt3K+3rgsuMjthWCZ7tyDyS2JWKApZwMvt2vleCc0/X9nqpPRqRrILIKkV8p25B/eYjAyztJABIe1w197vCt0BNueTM4rIgGzIIAErRZMrdKz+IntGays3SNxsg6PgfExP3tt+IyDoEH0GCy/L1VZqudwEx7Fol+zKIYaMXP572MZR7W4GaabZ7HSS0lu9ZYzVbkXLPvf8vyJoFawmPintG+ZYIepmSImXBUCbZUWH0g1FM1LSvDo0JfMdWFqQsYXvNcLnkh2GgdrW3TCuWXBtmMIuRhz/q3+BLy08NaJNLK/ceWiOnzCbdXDHOSITI3OWlBz0+onGJQ7Cd12U1otWWsiE0E+o6GR0w9yw+7jRa0aUYvnboDrdnmiGIEXWeeFrdnydmV1oLnmiHpQ9hQaAtG+RSFjuny1PVdNWXU0v9OUKy8aR1BVOy8l0E0xkKcQNMQATfRxMEMLRo5nKQXTHXuwO0GSR8qthB621LhMFULzT2xT0IYjC8lgQ0G3zN9T08DZiHX9tsCR2OOs0MwZYvciTqs4szS7k42yy3Rime1HlEbOU9eCWRuwtaRVCjt4kWuLm2bAkQLLYESySUCJXJUpRvh6cgEVQXyE6ZSDPb5Lk=","translations":{"en":{"changelog":"### Changed\n-  Previously executed jobs: correct pagination instead of the 2 buttons previous and next\n- Previously executed jobs: Abbreviated error text. Complete text at hover\n- **l10n:** Language files extended by additional phrases"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.1/uptimekuma_1.0.1.tar.gz","created":"2026-09-15T08:37:13.123288Z","licenses":["agpl"],"lastModified":"2026-09-15T08:37:13.189619Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"rn4mMwLIv0B1q7yJq/9Oc3E0XbB0Z//BQLPtfe8WMaHoPhiJY6amiyF8xlF5yNQcpGfxmMk0OkHH1aSPPRwL25eEmWnnRG+DYCTBgPxhuv8jz5MahM+b/Fb0OPpFNEWHVRGCfHEs8TFc/Qcu+c+GEehEmVaZwhbLOHFqinSSivcgwjbF6M/I1zeOHVbOznLE4nNFKhkPD4s5TU9NheIIxQcgy8p63aUONOCbV2NCE1yi2aGnr9pc8bAb2c/xfS6RynbIZg+KZNomBW9YMuB+gCSfGNJYhcaomWc7J9RwnHXF0Qhx7u/gb82TDnFVW80uPp2WJOCel/hxjvYNOMKc6q7mZhVKB3N9ZJFmIPEz6vHn4LXeDi34hSoYVcPu/ODL1+NilYDwh1viflP/lEtCcuOlkBrnNiwXUg7jQGpFpEtKJUVZdz8MGgfQzEdtS0xxNuhGDzd3KIOiYA4tp4pu0QdDWOTL/iYndlweJIupCIE4EfADUN74IZ7FPHxX1MyhHifdNl4RzgfsLPCmjK2I6U9WNFLJm7g+XVoMJ3bHoR6hqRn8cll6PglYAoufEYSLd40WiQe84lwfSVUcr+CCQD1QEw5xJHWTxxPJznpQBu6hITScxdMMsDw2mo/i3RsMvJD5vXtEGxqxh7s0HYtpIG64SaHMTEfkZCzIS+oSHZ8=","translations":{"en":{"changelog":"### Changed\n- Conversion of the app messages to Nextcloud dialogs (showSuccess, showError)\n- **l10n:** Language files extended by additional phrases\n\n### Added\n- In a new settings area, there is the first parameter for the entries per page for \"Previously executed jobs\""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/uptimekuma/releases/download/1.0.0/uptimekuma_1.0.0.tar.gz","created":"2026-09-14T09:53:54.899179Z","licenses":["agpl"],"lastModified":"2026-09-14T09:53:56.237887Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"LskSCpDMOkA0qR4IuVnKKWSuegWbdwLkCBABF4eEtKRzvoA+xs8npmgaVezsCS4j\nIk2ynv6mbcEn4XxpX0meVZ9L6du9K09TSWZeJ0uyzI8dYWWNGUrntUz/RUv70GN+\nOCklti4Y8aGRILi3mDnG2wC7E2hb50A9lzEdYhwO0gTw3qjqtOl8G3tc0Cg122HK\nKBpA4i1NCplGIYQrNnR/ukW7NvGVwXJBEVCHFNRvxzK5e2J+crzheReETEd9FmKA\nG7vYVbAIUEPYCJCTgL1O03hrBz/Dn59WcWE2j4wFJ/wvPgnZGNqUgK7a7Upb8W2E\nxe2zUq/YY0eMvf53gP0I0y1z5e/qKHzqu9/vs+2lWEVVxEtDn+BF+mv8AHGY20C4\nTW2RT+YEZRoQqSJWDh808E9aEagdPOVuB4Wjw0DaH68Lo+keSircMm1BVWHf2Uu8\nzbIMXi5tEJhJdM9wq4iQFgq0/vTb4yRwbDntL7R08vPRYgPxV3tEMYLbAeSD8uAV\nXhbQoaTdSBkJTlSNp7Il68dD511y4RLTuSaCBTMISb9+ihfnSOnyFH8l9VH0RJBk\nSCPejw8W5U9hIxaEC84Q76rsy5qFE1/hTMan+uM+2bDz/XRXs6LCh8lGG7T/km3y\no0SoivPwyxMCPdljEerAkiuN3EyGC8NoQdGkLFC7Z8U=","translations":{"en":{"changelog":"### First Release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvdXB0aW1la3VtYS9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvdXB0aW1la3VtYS1zbWFsbC5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/uptimekuma/refs/heads/main/screenshots/uptimekuma-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvdXB0aW1la3VtYS9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvdXB0aW1la3VtYS1qb2JzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvdXB0aW1la3VtYS9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvdXB0aW1la3VtYS1uZXdqb2IucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Uptime Kuma Incidents","summary":"Manage Uptime Kuma incidents from Nextcloud","description":"**Manage Uptime Kuma instances and incidents from the Nextcloud administration interface.**\n\n- 🛡️ **Admin Only:** Exclusively accessible for system administrators.\n- 🚦 **Incident Management:** Trigger incidents directly from Nextcloud with custom styles (info, warning, success, danger).\n- 🔄 **Lifecycle Control:** Resolve ongoing incidents or simulate service failures with a single click.\n- 🔑 **Token-Based API:** Secure REST endpoint for external scripts and automation workflows.\n- 🎯 **Granular Access:** Assign individual API tokens to specific jobs for fine-grained authorization.\n- 🤖 **Script Automation:** Easily execute status updates automatically from outside."},"de":{"name":"Uptime Kuma Incidents","summary":"Manage Uptime Kuma incidents from Nextcloud","description":"** Verwalten Sie Uptime Kuma-Instanzen und -Vorfälle über die Nextcloud-Administrationsoberfläche.**\n\n- 🛡️ **Nur für Administratoren:** Ausschließlich für Systemadministratoren zugänglich.\n- 🚦 **Vorfalls-Management:** Erstelle Incidents direkt aus Nextcloud mit verschiedenen Status-Farben (Info, Warning, Success, Danger).\n- 🔄 **Lebenszyklus-Steuerung:** Löse bestehende Incidents mit einem Klick auf oder simuliere Systemausfälle.\n- 🔑 **Token-basierte API:** Sichere Schnittstelle für externe Skripte und Automatisierungs-Workflows.\n- 🎯 **Granulare Rechte:** Weise einzelnen Jobs spezifische API-Token für präzise Zugriffskontrolle zu.\n- 🤖 **Skript-Automatisierung:** Steuere Statusseiten vollständig automatisiert von außen."}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/uptimekuma"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhQUMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTE0MDc1MDMxWhcNMzYxMjIwMDc1MDMxWjAVMRMwEQYD\nVQQDDAp1cHRpbWVrdW1hMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\n0BMK9rz3wt7+GTbYwEzjoRPhE0hlfQV70FWhf+Ax2mDd8jyzeBrtyPc8cwGjYgAC\nxw+8NhlOFpD9pq7ppGrPZQdmMTphz/QV5e9fgd2b3c3AP7qLYxFHm8uAVDLWNdIV\ngFT/M7vkejI4Bhw3oHjgcBigzaFMexRt82r+HEJjao0GX3gvhG64DILZwLqEDozy\nNb6F3EPRlQWeRcZ23PCBzLWW7B4wDfXBjLJleNwvXC3ITgSrUZay/TTOTQVVpIUN\nBlfsN4/6WUQK69Fkzr87ONxmqSzWYaUgU2FJHDhch8UE/8aSB7fzzOsm1xJydur/\nuDk+mj1HGXXth9bJ/uOW1S2ZhIAfLcQLRXhb0J7Rrvrx7HZzU6PtyJ2p5KiBobQ5\nLXybkwoNPT9obE4k6kJ4gUFELZxgqv2a4LHEPkPPTd8emYImd9Nq7F37bPp3G9n3\nFTQUv2d76Y/nTO0YA/xorgC1yYy4gTyapW8dXaKNNHoslamNrW6f6SmjBC6rIyAj\nHcCTOfZDQLSlSalZ2dVKRFuSTDR59XAk+65FrlSSgQF+pPGhbLx+sUcrzxNR2teo\nvBsRuOeTSo4ZUySHJYeA7d2/hel/4uU+TpeZt7Buh+FojBEM343W3ltSJ8nf/LGW\n7lEHd2J1NIgF7KiILVYBMHszpQRuprszhKjGgol+nc8CAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAEOkuJl4n3zIq9cq/Qa/xcci/4xEw89g9Ax6Yasb+o8IgpV54mTDr\nQt1/g65piAVRoufgeG7kIv2WYwobPj87RSofpitemDPGP9yJ+CGaSEORRn6PztJt\n+El1lqbQ0MYyc3ij37O5xNse5RoknjFe/CFAUiyGEGO83lH35pc6t1r1wp1pRZc0\nGFlTUitC6smbbYWjmedghVHvMuca9p9yLhbgSzYCyWIpVYVAr8OWGn2Rj7GsN2BZ\nrML+qzcXWzsXLgDWi6CroLxGuCgj+6p1M/ohDQfg/Qian8hlTFZRASv42pSmqBGO\n/uB8mT0v0EQgiCPOvwn3xsP1zKDLVB1Ncg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"workspace","categories":["files"],"userDocs":"https://github.com/arawa/workspace/tree/main/docs/user-guide/from-3.X.X","adminDocs":"https://github.com/arawa/workspace/blob/main/README.md#installation","developerDocs":"https://github.com/arawa/workspace/blob/main/README.md#development-and-build","issueTracker":"https://www.arawa.fr/contact/","website":"","created":"2022-08-19T15:20:56.970763Z","lastModified":"2026-09-16T22:34:28.470784Z","releases":[{"version":"4.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/arawa/workspace/releases/download/v4.5.0/workspace-4.5.0.tar.gz","created":"2026-09-16T22:34:28.452656Z","licenses":["agpl"],"lastModified":"2026-09-16T22:34:28.563514Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"ltz9JgB7zoopUqJA4bLIWTGs8waN5Qg4urgmtxIzrxlmgdD/hr6ANQUytqJ30xuG\nOFGoYLAPynnbo+8zN2hk0UMbpmalTAZqOX1LXVKIwl42MwQTQ8fi3jyU5PRhHP/1\nUQEMvkie23DN0IjNkX12viPT4ZlMZ1ez8TZyjb3/bDdwdrENXJFSua3WPSTjkixz\nZ8wUmit+dOl+o5qqWazwpWGJdwqxAHMfQBFbmg5QbmUrX7QET7I9zDMEqfodp3RE\nQ8E4gvGKbLS0y9RAmJtafXm9FkdBHAvFo2L+RsWOBSedcK0C1WbkN6Q0LMpHSEgE\nmiXYi0+NQNt7ZmQhugA8nL2AfQIZGhDe7mrIM5/dpAMkIbtleiE93ykSz/noITTo\nb0tUesqpv72FW0diswB+BNQDwdr/+zr4HNmA4DDY4PbrGURENFyOPY0VHmGgqgwA\nLeysQVr2Ogm5Mk5A31jgFyT6AC2rpOzw2ShMo7T7kG9KcFVkntVa++1LSfcnYrc0\nEVFxC2ElWC3q5PMvQ4xeUnSkhRY7j4iooKFeQfRQbQgkM1yherOu8PpS+8wofg+5\nbrMqWJq8E5vzD1NYhJnaKk6ZCBfovtAMSLyb78Y/poAiiaPM3MjW6V+aMXPNC/Ow\nGkkqgcNsC0KUT0PG9DRTrBbteLfZVKn/jYSjM0e6qwI=","translations":{"en":{"changelog":"### Changed\n\n- Remove space before questionmark by @rakekniven in https://github.com/arawa/workspace/pull/1693\n- Changes to follow guidelines by @rakekniven in https://github.com/arawa/workspace/pull/1694\n\n\n### Added\n\n- Add workspace creation permission for workspace managers by @zak39 in [#1674](https://github.com/arawa/workspace/pull/1674), [#1681](https://github.com/arawa/workspace/pull/1681), [#1690](https://github.com/arawa/workspace/pull/1690), [#1683](https://github.com/arawa/workspace/pull/1683), [#1696](https://github.com/arawa/workspace/pull/1696), [#1699](https://github.com/arawa/workspace/pull/1699)\n- Support Nextcloud 35 by @zak39 in [#1687](https://github.com/arawa/workspace/pull/1687)\n- Add logging for workspace creation with user ID by @zak39 in [#1679](https://github.com/arawa/workspace/pull/1679)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS0xLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS0yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS0zLTIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS00LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS01LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS02LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS03LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS04LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS05LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FyYXdhL3dvcmtzcGFjZS9tYWluL3NjcmVlbnNob3RzL1dvcmtzcGFjZS0xMC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Workspace","summary":"Create team folders with delegated management","description":"# Description\n\nWorkspace allows managers to :\n- Create shared workspaces\n- Delegate management of each workspace to users (workspace managers) in order for them to:\n    - choose members\n    - create groups\n    - configure advanced permissions on workspace folders\n- All through a simple unified interface, designed to simplify your users' experience and make them autonomous\n\nIt is necessary to install the Team folders app for the Workspace app to work.\n\n# App configuration\n\nBefore using Workspace, you must configure the app, following these important steps:\n\n- Limit the Workspace app to specific groups : in your \"application management\" administrator interface, limit the application to the following groups: \"GeneralManager\" and \"WorkspacesManagers\".\n\n- Configure Team folders for Workspace:\n    - In \"Settings\" > \"Team folders\" > \"Group folder admin delegation\" section, add the group \"GeneralManager\" to the **first** field, and the group \"WorkspacesManagers\" to the **second** field\n\nIf you are using a major version of Nextcloud lower than Nextcloud 25, please follow the instructions provided on [GitHub](https://github.com/arawa/workspace). \n\nFor more information, please visit [our website](https://www.arawa.fr/solutions/produits-arawa/arawa-workspace-for-nextcloud/) (french content).\n\nFor more details, please go to the [admin documentation](https://github.com/arawa/workspace/blob/main/README.md#installation), or [user documentation](https://github.com/arawa/workspace/tree/main/docs/user-guide/from-3.X.X)."}},"isFeatured":false,"authors":[{"name":"Baptiste Fotia","mail":"baptiste.fotia@arawa.fr","homepage":""},{"name":"Cyrille Bollu","mail":"cyrille@bollu.be","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhHbMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjIwODE5MTQyNDEyWhcNMzIxMTI0MTQyNDEyWjAUMRIwEAYD\nVQQDDAl3b3Jrc3BhY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD\nxXJQ+vkd957amFJW8gIP3SeMu3hfOtU6oDqowPhx8HwIbZXb7kdDVZyX3tHfS8gu\nAER/xcFHJSHUx3LJlkegOaqEVJHwzYbLZePZNgoVl0DqiS1ZUuXp6ulE7ZL2crkg\nss5UqX+UwTYpfyYwgsgu+FHkTRi9uxbnHMTNnEJQK/KjIT+V1bfTgOsmXD/7D7ZN\nlGG2D5aigXgkk7daiTFhhJoxxtDaY6EJf+b+BbqH+0LiCq4PKvwIHlwN4ACpSoWu\nlntrOHDhYkt63b098U2Ti8ACcCoRuht5QvICpu7Jy5WZiRJZsVfPdAHauZx4Gfl4\noC0/HbOL5oysxe93236fHGEHfshKqxFw8Ybtoiky5gw3FTVyARR+KZBs1m2kFB07\nU48+1gFO2mMqvwoQ7ytmu9Xk5J8EnnhLPP9od7gcXIUtXYOVAD4LDoJV9FY0T+CF\nVkKSXyzT4P3nfeRYnJyQ3VlrlpJcJzy3f05zybWnHlo/M7n2uaLV5cH7AVHAC6l3\nnvkIlp76LVGtoH7qkcpLO5hUD6CUgFjQyuUgbDYy4E6r8zjl1LhCjwuo8YvaDQ0L\nv6M/ugxPD7bwRo1Y4DLIGE8dQzVv4yqxjJqedSfFn9pK+M55ibmId9AQt7d7TpFK\nKsWOsBDQpOBFCNclxcLmB7/5isY6suqudYeAmRtxCQIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQCQyVICAkvqyHyKiyfh/SL+eUY3HeqmoeCDPWxlGn9YSXRYg5CrJMKe\n5TojFvVp/9eWC82yMfcDhuMsSSK8rXYTSqJ4a7M2XdqTeiXxAUZ/AHMpWRVLC8dD\ngQjaa+DcAk0dHeF9DilZo63xchZmTN948lBI13nev3YKZ4VH5hN86GqeRE9RUdHZ\nVS49GgDEyB9BzmjTkB/bPJL9LO4vcjWX2m6nk5AHxzCsEQ14IJ921K3RttYu8ZOp\nX7ajv3G3eu3m4shITK6ganCgpqTBLPVmzF3Ybprfw+3V7Ng6UexYXw2lBaWFx4ON\nSBgBJk0RyTSplwC0UxPx0qIZdRCtzNk1\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"announcementcenter","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/announcementcenter/issues","website":"https://github.com/nextcloud/announcementcenter","created":"2016-09-14T10:38:53.939634Z","lastModified":"2026-09-24T22:02:57.240850Z","releases":[{"version":"7.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/announcementcenter/releases/download/v7.5.1/announcementcenter-v7.5.1.tar.gz","created":"2026-09-24T22:02:57.226991Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-24T22:02:57.272973Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"xbelNNErBd98iU5l65IxT+BWrqim22YA+Dmhms79R3WNRLj0co7ErDnDzS5RjsYAHhYYHtfRfh4gq7cZ6BE6rgHLUwqSSy5RxAOBmEMAyfTauwtfO371SE+TdDI0jcFZDpgAzoHb7PIJC4uMKnAyAzzgMsW30r9DoBbP18WvMR4zR15IDuJQgG5PGMUkoFc7IrOg6t3YY46e7YH2cEO+oX4bFgIVEmLRTizDWUmb3uVGr0AzYBsxOEJBfjmHvUN0wUBtNDKToG6Xqq4CDIucIzJFG0AgoBtmjuyhUMl40vfe37KDCIQBE0CHHR1hEEAcz/eTQsloBAmEid39rPOyZg==","translations":{"en":{"changelog":"### Added\n- Dispatch `AnnouncementPublished` event when an announcement is published\n  [#1158](https://github.com/nextcloud/announcementcenter/pull/1158)\n\n### Changed\n- Updated translations\n- Updated dependencies\n- Use chips to show the scheduling, expiration and group restriction of announcements\n  [#1172](https://github.com/nextcloud/announcementcenter/pull/1172)\n\n### Fixed\n- Fix loading of older announcements when scrolling down\n  [#1159](https://github.com/nextcloud/announcementcenter/pull/1159)\n- Fix images overflowing the width of the announcement\n  [#1161](https://github.com/nextcloud/announcementcenter/pull/1161)"}},"signatureDigest":"sha512"},{"version":"7.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/announcementcenter/releases/download/v7.5.0/announcementcenter-v7.5.0.tar.gz","created":"2026-08-06T09:24:22.600192Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-06T09:24:22.658807Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"dtmRFTwJa4HJuVzd4uQiygpq1bHHFZAtCtM/+BCFClYdGg1XvsYQ6jB+9IscEJVWwY+cqntOjzGrjoR1d5/Cu+s2ruyLN5TezbazigvK5rWYsaJWuN/ocsxAPB0HFJ5unUVmmXvwZ7XBwjKOJ7opJEpb7KAFcas0gjs87Rb+i99Ma8x8pjp9xP3lZW+QfM0Vaq3S5//zrNE4hW0b1jOiZGRtrCulUcUhe2TGwZPyE3+ypAMV6GnJhbVMpScnWOA6YFt4m9T62esxGbPQxBwiUKQfXoQQCw3T2GZfHmBnV5MVbmeuiVrY8ERGzzD0s8Gc0Al1W6j8FlROpzig6B0wuQ==","translations":{"en":{"changelog":"### Added\n- Compatibility with Nextcloud 35\n\n### Changed\n- Updated translations\n- Updated dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL25leHRjbG91ZC9hbm5vdW5jZW1lbnRjZW50ZXIvcmF3L21haW4vZG9jcy9Bbm5vdW5jZW1lbnRDZW50ZXJGcm9udHBhZ2UucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Announcement center","summary":"This app allows admins to post announcements.","description":"Announce your maintenance window 🎛️, introduce a new colleague 👤 or make sure everyone knows about the big event next month 📅\n\n🖌️ Markdown support\n\n📑 Comments including @-mentions\n\n👪 Group permissions\n\n⭕ Dashboard integration\n\n⚡ Activities integration\n\n🔔 Notifications integration"}},"isFeatured":true,"authors":[{"name":"Joas Schilling","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.7666666666666667,"ratingNumRecent":0,"ratingNumOverall":15,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIDDTCCAfUCAhABMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTYwODIzMDkyNTQ0WhcNMjYxMTI5MDkyNTQ0WjAdMRswGQYD\r\nVQQDDBJhbm5vdW5jZW1lbnRjZW50ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\r\nggEKAoIBAQDPx4Hp1HdBo5v7bDEiVcv2UrVjNW+fPPKS/5rwbagtPcE/1v3WDcwX\r\nvFwaXk8qCn2UpPSQ2b1rTuTDm51G1ZmEZhNiio+rBfEe9F+3tLsq9lElqIPKhkAq\r\nEUVI6dcN+jSqvLmLhuwloEoQQSYaLrX75mY3lGqTb83h1l2Pk/brVixuVf4vJW31\r\nTgeieuGKnC+keLzKOrvTHffJakU8ktwB2Nuu1o+jN5a7u1bxKkP3LjEWPjq236hk\r\nAoOcW/wi1dUEyUKUZsZQeJyvTJh1UXdLHKwYywtUu1/VLZ1IUtNyPBfiQ8ukPp3T\r\nTnSSmG3ZnvsfM6DmAvLZ8bBQkMBzEcTLAgMBAAEwDQYJKoZIhvcNAQELBQADggEB\r\nAAB3i2NgiZ4rpNag7cXYdaFxAxdDWnke1+LX2V2R3hzGmx73/W6cKLpo3JBn9+zT\r\n1aEjlqkt0yHu4aAPVYQzOa5zIV8mjP84p3ODSyV9J8lfjFNXT7wdA8+9PVx3lVki\r\n2ONoCNBh1kOxnxI4+BsMlQfF00ZbBSuGcMm3Ep3lTFWXzuUn3MQITzPwkL5LkW6a\r\nsli/yAYQRTVDsXD8A3ACYT7BG31jGxyXtIHzqCci0MhZFdKKayMYkwfjZchIUtGN\r\nJJoU8LQoHwGRtp3wutk0GlFzpEQEvSsn/Lsvvot5IfIe46tnzA6MVj5s64s5G8+Q\r\nphhXFlzXqO/VxquPdbfYjvU=\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"timesister","categories":["organization","tools"],"userDocs":"","adminDocs":"https://bias.city/timesister","developerDocs":"","issueTracker":"https://github.com/bias-city/timesister-nextcloud/issues","website":"https://bias.city/timesister","created":"2026-10-02T13:12:30.071951Z","lastModified":"2026-10-19T20:15:20.930220Z","releases":[{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.9.1/timesister-0.9.1.tar.gz","created":"2026-10-05T12:07:05.281565Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T12:07:05.342811Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"VWjznXKWd7zrbSgsfEsahCgv6Y7OO6D4ZTWC45Yu8Ym7CJuaRDT4JTaSjSFbBzCj+6TdYN7pilrjaXohW8qB3ASuCJDO1RCVNDwhrYMY8blUg2Xsr4TrmiI5vdL3WRqplGYHtAHll2kfWJKc1eiviODQLbmFhczeQG5EOrBS39nG9hnBkdodn7hLpOrJfVFE1Wegpnh2lE3KIA78M/chg19yBGCeduSJywq0QoWUpk5dxq9Nh+7NDA+aK94Sh5tr/eZcpr2HQocPLwYb2ajDpLIihgbUL0X7XcbIcOZt3ryzavfTfkPaI8kTkgHkXOPHg5QaaODHrgClpG3pSggXHuGTAKv/AVvndpZKrTNAXFGXbF8M6NEYANPcIMvyEOKgT+bihW+4ivzLk6JvjoSjzEgLXeXen1fpJ8Vhw+E5XHTI2v3dtACXKHoWmLi+NbTzL3A2DP9XfOxbgLhPZ8f9XJikov4ZKfOgeGa9X43cLMI1r1R9WWyGMZCoUyOY/B8pmams7mCx4WhN+ersMXg5cFjECtFY+gnag/mJighIJiukJJuPOCGV6npbG0JQy0DBN3ydsl9xuj3O7no/56rfzsFF81fY327mam/qXWV7BWckM975FGuYutr7VFJ90J6PoxBhQJDfK1FNpF9autMc0WJVd5yUpZh/8cjqyhlTQv8=","translations":{"en":{"changelog":"Three findings of the security review; API unchanged (`api: 2`).\n\n- **The vacation calendar stays in the team.** `vacation_calendar` in the settings record is accepted only when `owner` is a Team Admin of the team and `url` is a calendar of that owner (`…/remote.php/dav/calendars/<owner>/<calendar>/`), otherwise `422 invalid` – on `PUT`, in a batch and on restore. The background job checks again (owner still a member, URL still theirs) and skips the team with a warning in the log; before, a Team Admin could point the mirror at any account's calendar.\n- **`PUT /me/absences`:** control characters in `source_uid`, `kind`, `start` or `end` are refused with `400 invalid`; in the written events a CR is escaped like a line break and other control characters are dropped. Before, a CR in `source_uid` made the job rewrite the event on every run.\n- **Brute-force protection:** every writing route (`PUT`, `POST`, `DELETE`) carries `#[BruteForceProtection(action: 'timesister')]`, and a refused write (`403`) counts for Nextcloud's throttling."}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.9.0/timesister-0.9.0.tar.gz","created":"2026-10-05T06:31:44.384801Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T06:31:44.440538Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"A4IbD9Dc8QchZ8c6pxbFFoCb60KS5d3dq8mXXz4kaNRbbVmV+6hoQHw8BrbexVVNvBzZWW4ITw2+7CnsCYCx097pgO9u9Bjpr3aQi/f8+0pZfa6nULVcYGLeivNmLaZs/pWBe0ELeZVsLyLuMmf70jepG8gzkflD9efgdHu9zUrv05wr1ya5UjY6Pc2mkstM8dEgc+kE/0+FfWNuY4j7S2cwkfivJL4oSiNWWqRCzK5mCNKM1G+zr5bSpFz46ycVy4UXr1tX4m8g1Zt3Ig+1uR3pmXo+8pbVMX2SJ3vw/iFB0MSxl902rw+vk1tbbD4b6X/gsEMZNuMdprb/LI+QfQW0bKWM54jbNWW08KsA+hSDbXFt9ecdHDDoKIpPCGluzyu8UYNhSqLiQ21Cyt+LgzMUB8x82gWj7cDIJqSCkGlkQRL2ypPvVcj3eFe6eOXBXRiqRa3EvTy7UylTo/o81jasyiCweQAqW2nY6kM1HqjGRMQMHl1FhiNAEIDOrjvno5C2WdXY9xfuXgrhIngpWyOF6VjsIwXJzBRS7cEo8/HNhH8L4Iuati6HsaJLsoJ060iBFfuqponJXSluxn6uIyEddvVWKGeoy9FLZzYjMm5eKWvCo9SxoXy9nXNQcmA9bKwKQwT2fwc7fX40+h4sDhXlDQe2sLw7aS4QETVEg4Y=","translations":{"en":{"changelog":"- API unchanged in form (`api: 2`), only additions; the capability gains `absences: 1`.\n- **The shared vacation calendar.** A Team Admin creates the calendar «TimeSister – Vacation» in their own account from the Mac app and shares it: the team group read-only, every Team Admin with write access. The settings record (`setting/settings`) names it: `vacation_calendar: {url, owner}`; `absence_calendar_kinds` says which categories appear (`vacation`, `sickness`, `parental`, `civil_service`, `unpaid`; default `[\"vacation\"]`).\n- **`PUT /me/absences`:** every client reports the complete state of its own absences for this and next year – `items: [{source_uid, kind, start, end}]`, `end` exclusive, at most 400. The server replaces the person's rows (table `ts_absences`). A person with `vacation_calendar_optout: true` in their person record is stored nowhere, and what was there goes.\n- **Written by the server:** a background job (every 15 minutes) puts the absences of every team with a calendar into the owner's calendar as all-day events «<Category> · Initials Name» with `X-TIMESISTER-PERSON`, `X-TIMESISTER-QUELLE` and `X-TIMESISTER-ART`, over the public calendar API (`ICreateFromString`, no Sabre). Absences that are gone are written again with `STATUS:CANCELLED` – the API cannot delete; a Team Admin's Mac tidies them up. Events without the marks are never touched.\n- Migration: table `ts_absences`."}},"signatureDigest":"sha512"},{"version":"0.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.8.3/timesister-0.8.3.tar.gz","created":"2026-10-02T13:58:32.596643Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T13:58:32.679155Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"GRW9C98GhrKmeQUKnAaTPGPg18LlPcFtG8goKnnN2hebOjtVdbU7c6DOdvHS/Don9It0AG9dMsJ1qUSsW8/19lfMfAZBPi6cCFH0X0M7BVna+uYJQqTjcuHTW7y+XX47/awTRfeTcQyzEUoEJGTuKxGwWp+OHDy+5nwdG1zIHptnbAKPzMvlz3757OlK3dKZy9KWKjDIoTfFQ/MhhtmdmsJ2xc3YAeFW6zXuZxB/klHGYgfT6Ql1lc0tgIt91sZ74LJocI9Hfop6SSuWdzjRaYUk2MCgGZsTiwu1JDF6hCnusFvRJWamonjR17HZmRjt2RCrHewDYsXEUIB1O3tO2Zc+JHP9XbLVg6EPCAVIF1p9485Zcome1ziLpFo6j5cNBE/VoA57NJ/5ho9w+kjZHNHgm5uzVxqiMA+jxqkBK7FDO3Kma+zgt67/0qKhbvfiTmWXQoOdaek+mtFeYMCr/yvUcx9EJo568timCcTueptdmB+eYfxzUF3aQNF+mxKi5VbP6/7Ds5dJtcNA2aZia0eDUMxRXZa1hSWdWfO40ytFwHgxac3atulz/qUBWKz2Z34YKXl6aShMnQykTz/uhaZ/fP333Yp+66sl6Yc4nKi6PTLxPFiyTSK09/b6ZmOD9tYFXd2IBnvNBnF352goK6S1R3Ryd9YeWs/DcsbZhnA=","translations":{"en":{"changelog":"- Admin settings, new team: the short name is suggested from the name (lowercase, umlauts spelled out, hyphens), typing turns capitals and spaces into the allowed form, and a hint names the rule (lowercase letters, digits, hyphens, 2 to 32 characters). Before, the form only said “fill in this field”."}},"signatureDigest":"sha512"},{"version":"0.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.8.2/timesister-0.8.2.tar.gz","created":"2026-10-02T13:39:16.551413Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T13:39:16.612625Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"ATIAr4qih8sGO+zuFwWiW15at0VtQ4l8zGN+vqelMy+eekzj+Vc4NqUW1CamcgPKiYCgU9jBSg4Zvkdyddyhn4kq70lKXsqrNGm9bNk+Jz7ZAzSHjoFFy8nAojlVFbP1Dqe0JstFE+q0oLYb2i5mK/5+xjW0pYhV3tqqwUDJWrYl1g636B3QuNsmcVz4lj5dVu1yzNjLSyYh9ArVfJDQEh0sRz/YWhnKMo4F4BYOtJ8VZfxmS2QvdjcBoyKXLiOVI79i5vTpVoB/yYFbJcsmiYqAaVQkrSvOB6dbbYUZg2qUORkPBHq/6Mlxr3Pvzh2ezPxZLNImfUwW7sUc541RbYPpx8uZlKLfPitUz9wD7D33Qj8AqXEnANrRQzB/9fhN7H/xX4QGyHZ8PNDgng2Rh3DfXAYNMAvfie2mYzzbiJbenORkNZ++W+52nVwUaUj2ngPVYl0hHsEtDUH3SnWX8IJlPLhKp0EBOnGBXUdYUtSUUYRjWEeK97F/mIJ+X5Orm6Tp3OXknW1yBeMk1m9x0T+h5Qdg3eqxdX2erFpoTIIBSuT0C9KEe4F19LPiz6lCLrU4ZbeB12XecrZQWvn6YUA17LmzD1TXgg2deMR27+M4c8uTi6hf9RmZIfKScuJzRdkJO3jJEZws/Tz5Mab18wKtAWi+4MuHRnm1kjSpnoo=","translations":{"en":{"changelog":"- App Store: the screenshots now come from bias.city/timesister. No code changes."}},"signatureDigest":"sha512"},{"version":"0.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.8.1/timesister-0.8.1.tar.gz","created":"2026-10-02T13:21:43.524776Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T13:21:43.600423Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"EiNQFyO0IijUHbtqEpRvMeWOHL0XMnaxBuRxoNvCJFuD0omr3CvRYl1qOEzslMhF/qhuKhG7uSvgL/YTQrsDcNkgLVmmjXFH7ainztLFrJXlaxImvXeWtjr0sI2UQV3eFmPuXrndrSetvms5rtAjJf/L6RjgY0yhLV3Z62+hcT/o8W3ANurk407qEGWptsrUVZBm1Vnk0+Et1cXIRs4YX0F9mjqUpbUGL4cz6iX7bct9q++T/4kef705qCgfKM2qKbsUq6Je4i5yfJQG+DcfrCOaf9BTmRjjhudQn/g1zrSw5ueIaZc/pneX9gjhcGeRRxJXwlImApg5v+nTWVOirHuY7Wg8zjRo9f0kZsbWYtbOyi2E70KVR33OAVvJaToaJDukpthqOvO/UD/zOmr7hEcWtJa3V0CnK/Qxg8kCBde8BQNLpMIgXo4vr6Xukn7a3VZDZuKc1h29RNcwfwrYkcUdvmWDyW5lpWPDmfOwNMqOv7ZvLX2Clos7guKYLstvQGLTmwR8UaXAX09RPTn5GMap7PBaqUfk8R1/lcDNZ3sQTI0Nu6WybG0KRBtB7reRex9/+0yIpxKmE+or53MK4QdATkG4jQ6QSN9tYQ5L9hMSnT+ELEq6AGwCIYoDiv27QElB17CH1jGhAjVBWn1ymR/fMwRVeoWvtrLTCgzR3kY=","translations":{"en":{"changelog":"- App Store: current screenshots (teams in the admin settings, the Mac app's week and the team's capacity). No code changes."}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.8.0/timesister-0.8.0.tar.gz","created":"2026-10-02T13:12:36.237462Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T13:12:36.326307Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"fxoTtsaDyhn0+mem57AJMhKdXsUgeVk7ujCfO3TCT3IzToW37oGPQMRHpTtK5V78iEbv6KtQ250ecXjszghDcmsdpmv0jHyl/k3mKsmTuFWzZxshWQAk2ZAiayhyHBp0SdWyW//KJSEV0Up21ZfI0McRAxQpspuq0/9ictjb5NLouygzmJo6B5BiygCfcdc15htF8lmxPDpkmhedHAGb3KYIWba7OyOasqtikSEIjNiCje+ME6vtC5YVMHSFv2AUmQI+cEzpg89dCmPYULmtSb4LnfDYSWAm5pXWBBAnOKNGvjXU2gTrQ+Sp6YUCDGGAZeh3zpjewm4BECbgqXhQ+N/E14VNKKudqXxBKU830li/8StNjgnUQbUgZf2HqlelyTnUz4trW0OdaOmjRGCQHMbutTWa8ZBJzboaOQy/8cQlF+MDMcu+hj60SyRRa88YJUKUpS3P1ydIiV00719P+XEhLSL3urOnbLZDOhq68k22nhgTDCjL0GHb6Ks2GX5nSL74tD/OekpDakZceir1Z8In1hTwGSLm94J1eWThLVlhVdI5u+x5no6LgOQZxrsJurWxmYI45flfszMARmYyZWgO9jQME+gNXcD5ftUb+uPZ/eVQbcIhPjL+/0a2RShhxkkShE60SI6WSdT+BY3qP+ErSpc3xoXh7fV9O4D9bxw=","translations":{"en":{"changelog":"- First release in the Nextcloud App Store, for the beta of the TimeSister Mac app 0.4.0.\n- Contains everything listed below under 0.1.0 to 0.7.6; no further changes. API version 2.\n- Modules (Jobs, Budgets, Clients) need no change here: the clients keep the switches in the settings record (`setting/settings`, field `modules`)."}},"signatureDigest":"sha512"},{"version":"0.26.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.26.2/timesister-0.26.2.tar.gz","created":"2026-10-19T20:11:36.457040Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T20:15:21.678196Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"TrzqEMyVp/nRRz6JFYK9MKDlcTNmw0O/u5vU1PrGnUVfRdjwnQHovrKg2ZaxWHuTfIzDYeqOL87Mq+OIrquy0S8ZPIy/2L1kHPLMpwKCs2u+OT4NjkOKThNNcWCd+EMNac8SCOOnpQPks1++oIBdmq4il2dKzLKD3YHSuGs7SeO57gUE50afn8uAZ7C76YIqyqaMVzTDFNCJkM0crGLxIaBdjRxGavPNsPOY0267kvECSSGetMk0ly2r487m5LFlQ3yACBhEAVzUmHMZGIoAngFVoS7/wh6TqAkLn9sTcJl/CQ8t0IzJCX1LFlYLH2wRUDawzJ3Zs+a40hSpzUWvMTG6W+GjmTEmwBMisgpPF+j8XdcUKeh7Vq+1vTQN+Lw0Al5YfT06lLza5Mi1UIJWD92Pwpu79XHE2Isa4v2RThCKNpp5mTh5MdrR+qwb//tgM/YK8hm5D857AwsR493LnJoAyvUqTAgYVzyK1hRXa5w/GuhFwtv3LjHicD7/1R3eGQe6s0qw8MQJMWhbZdCvJbczDzhsWz3xrduIRcW7gqW9/FNvLXnBGh0J4PbcNvJUtePUQqRg3KAgOrcJU5Ci88Z6oqoLBBswLUifv/B5i4jHGI5lPpCApiN9LiH3ceezJbJiRvS1w2S4vT432+Tixwjj0ob5cw0LXoJzFh3bYRE=","translations":{"en":{"changelog":"Additive, `api: 2` unchanged, no migration.\n\n- **Keys take every Nextcloud account name**: spaces (not at the start or\n  end) and apostrophes are allowed, e.g. a person «Anna Muster». Before, master\n  data of such a person was refused with «Invalid key»."}},"signatureDigest":"sha512"},{"version":"0.26.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.26.1/timesister-0.26.1.tar.gz","created":"2026-10-18T10:24:18.723303Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-18T10:24:18.765621Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"fAhXr80YJPAqLaTbBBe5Rr7zen/SE6fvTX/xCGXrf+wEkm2gt7Av/IPSD4MuXY1VMHd6gpwd1mIZN52qpprz6x80xCsRHFB61050JTKZnOuUnX4W+7KfA7O2toutgbCfNwKqicoBNR6apO6er5A8igCYQyDMQ3+mdjcLZXdWqtWnFRY+Osl0YRKLfjdbH4snDHPXEo87ypljU4SDf8s9TNZDIYawrf9Dz5eDZoNLAiY5hGktyPEHDJlSYUYe5D7DaU2iIXm57tGzuD361kEF6HUfiKtbrepHsXryD4imDX0Mzc6dQ4BzdKxu91HX7u5iYFiWnxB75uXXSzyG4HozHRAVf0izHquIItxXz36CM7s2D2Oilcr2j1G6McyWBbMBB8jeCP87Z0sDvu8dz/X8Zr4oZs1rYve7lXs6mA5MIlq2P54dadAEb6Labm5JcBescvMZerT/+R7uc2rpxbPrAc79+PbK8l4fx7jhtyVQXIGmNrSk74F3m6oPvl3ersQke4Jy3fdZNcvQs7TA37XSmT6tSwLXaWbMxBLLhxzmBgwfu56aIorQY0UQkqD+n2W/tSUKiOJu6qQeJTFmKq3LHD75KUtOQ8zhJjsqtohAbfdvvdalFExA31SI+InMW3bN0d3/xCtRNsoGspykqFU8Cs9hGMs5Lo8L+ggm1YZ/3oM=","translations":{"en":{"changelog":"Additive, `api: 2` unchanged; capability `invoice_layout: 1`; migration\n`Version1020Date20261017220000` (column `ts_inv_invoices.layout_json`).\nContract: `API.md` «Advance invoices, 0.26.0» (section on the layout). Not\npublished.\n\n- **Invoice `layout`**: null or `{grouping: flat|level, appendix: [levels,\n  tags, budget], levels: [{title, target, before, this}], budget: {target,\n  before, this}}`; hours positions carry `path` (the levels above, at most\n  10) and `tags`. Frozen on issue (`layout_json`, in the ledger payload\n  only when set) and drawn: headings and subtotals by level, the tables\n  after the sums. The team setting `tags` (vocabulary) passes unchecked."}},"signatureDigest":"sha512"},{"version":"0.23.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.23.0/timesister-0.23.0.tar.gz","created":"2026-10-17T07:52:03.259495Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-17T07:52:03.306021Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"cEAvvo+f3gAlKF4i8h55S4OS0qIKO198ifrR4efLvI/fIQk6QoNUsQJ9k0z0E+Mi0NtOr8UYD+wE2Tsj65VIePuq4Gyz54HKOcqaIINy58VqD1j/yB4y0qLTw/MYN7QvNuuaexRaim1T661HTWLQn2uy5Bs9ZIkdoC8ifOW1jaQQHDrXT9b9H+gEVBQzX+jJNa6A38n+sUKM3/+IuT/ZI7eWyAamnellk8077cWQQWaBoWaQQFyxtzvN3LLCTLF2yK0pV9niA6jWhDTK5qCZXVFeGwbxyW43bvaYq3oa/KGCllyoGF9O4hxCpbheYaV5JHjf/im5Uw7euEtNYaxKwwQJyIoNJVohKiXSsZrzsSwIT3BlijSCCMJJsphLa17KzXdyaMEbzQ0MQq4fk6GrU8rm/xOGEq7HDEGnhflkDfMXTGOrzZW5gxWhjXf+u4o5qiS8HlKK5BkGr3ei186zRkI8KJ/lpZ0fn1jW47CLCesI2pmgJ37xnPG7VBNoOc5iG4vflGqIuKJp+NDupU+QNWuMlX5QaRSItSrQc5AmB7ZufjB7QeybRWK+T/ibk23BrsPdFJWaw9S7TF93SNdzYTYtxLt8lyH/Fxahm+BbW3wR5toKNav+pYqxCF5+MAffcTBaWgdGSqNFmygiFM/5wZziv/sBf8OrSfnDRy3jJRo=","translations":{"en":{"changelog":"API unchanged in form (`api: 2`); capability `expense_fixing: 1` replaces\n`expense_reports`. Contract: `API.md` «Simpler receipt flow and fixed\nexpense reports, 0.23.0» with «As built». No schema change.\n\n- **Assignment is approval:** a Team Admin's or the project Lead's write\n  that completes a receipt (budget and cost position, file, amounts in\n  the team's and the budget's currency, not marked «please check»)\n  approves it in the same write – also the file upload; a general receipt\n  the company paid becomes `internal` once complete, from anyone. What is\n  missing comes back as `missing`. `approve` stays.\n- **Amount and supplier first** (2026-10-17): no receipt is approved – by\n  a write, the file upload or `approve` – without an amount above 0 (with\n  `vat_lines` their sum) and a supplier; `missing` names `gross` and\n  `supplier`, `approve` answers 422. Not for recurring receipts.\n- **Expense reports fixed like invoices** (schema 2): `ready`, `fix`\n  (number from `settings.expense_number`, default `SP-{year}-{no:4}`,\n  frozen lines and sums, `report` on the receipts, ledger\n  `expense_fixed`, one transaction), PDF with number, chain line and\n  receipt copies in `Spesen/<person>/` (ledger `expense_document`, retry\n  job on failure), `paid` (`expense_paid`), `reverse` (`expense_reversed`,\n  receipts free again), `document`. Submitting and approving reports\n  (0.22.0) are gone; old reports are ignored, not migrated.\n- **Export of expenses** from the frozen lines of fixed and paid reports;\n  `report` and DATEV Belegfeld 1 carry the number.\n- The chain (verify, head file) covers the new actions; Leads no longer\n  read expense reports."}},"signatureDigest":"sha512"},{"version":"0.10.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.10.2/timesister-0.10.2.tar.gz","created":"2026-10-05T16:10:36.529980Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T16:10:36.598312Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"jEQ+HIQc3xd3ofU2+tzm7YjzndBoI24ZaUUlSenemv/oVYRfzvlILprDxlfbmB65Btdc786A0+A2R6aIQvfAzeIa2rsbt2JDz1wto4x/3BAn2KH5P3GqzyGwL0QJvgTcglQkQ1BQOlQbpvuKIMpZ+S/hDY3XF2nelakAKxZGn9emn3uJvYTF5ZeLwKwVVPjosuRV8ibHAkmRdayr3Y+1Poo/38W2c6lUSFGym8NSFC3FHiyk0/DyXyontKV6VD72v5o3IfDC1CqQZ0PCgAaWMgbq6gUgWpO8ZiBaVQ1/U5F9I8yHgWhoL8xUfBCgS3BYChqKFOgDAQojZy/azC4hqbht9NYW02LcPp+jCdKvsLkFYfNSQyeEnWpvvrRpw3qc33zWOoEH38eNAbfb/JOBTu0oba+vvxjwlAjXh3tzmjt2Aep/DrqSNG7meXU3bs03uQ5gnM77d64M5pkpYtkdYLFwYAt9BQV7AlSkSM1x1o1WXz1qvqwQPQfIyJ1RrjW9w/iHFJ+vX/uHd36ivUZd1k6yP90XlCucJyb71w4lHukjhnNpU36sxFpUjxP3MoXTMogalpZtSk/iBENncuJHxipZ8skYtXwbKAFeJgZ3tCHDkGNVVITCuO7QQwaPZP57jeSvqBi3nbefYswiwKf3omYBDwA4i9Q/9cLkFr1DmIU=","translations":{"en":{"changelog":"API unchanged (`api: 2`), only additions; the capability gains `privacy_notice: 1`.\n\n- **Privacy notice per team.** `GET /team/privacy?format=html|md` gives every member a privacy notice of their team as a download (`timesister-privacy-<slug>-<date>.html|md`), in the language of the account; the Nextcloud admin gets it for any team with `GET /admin/teams/{id}/privacy`. The content is read live from the team: members with role, Team Admins, Leads with their projects, the shares matrix (who sees or edits whose time calendar), backup owner, consents, modules switched on, absence categories, vacation calendar, externals (count only, never a feed address). Nine sections: controller and contact, purpose, data and categories, where the data is stored, who has access, backups, retention and deletion with the legal references as a template (ArG 46, ArGV 1 Art. 73, OR 958f, DSG 6/19/25/32, GDPR 5(1)(e)/6(1)(b,c)/13/15/17(3)(b)/30/32), rights of the persons, and the note that it is a template from the team's settings and no legal advice. Empty fields read “[to be completed]”. The HTML is printable and loads nothing from outside; everything foreign is escaped.\n- **Record `setting/privacy`.** Team Admins keep the entries like `setting/settings`: `controller {name, address, contact}`, `privacy_contact`, `hosting {provider, location}`, `retention {time_years (5), billing_years (10), note}`, `law` (`ch`, `eu`, `both`; default `both`), `authority`. Texts at most 500 characters, years 0–30, otherwise `422`. The Nextcloud admin writes it from the admin page through `PUT /admin/teams/{id}/privacy` with `{ data }`.\n- **Admin page:** “Edit team” gains the section “Privacy” with these fields and the buttons “Privacy notice (HTML)” and “(Markdown)”.\n- **New team from a team ZIP.** “New team” takes a team ZIP as a second way: `POST /admin/teams/import/preview` (without a team) checks the file and names name, short name and the people of the backup; the admin chooses the team group, may change name and short name and maps the people to accounts here; `POST /admin/teams/from-zip` with `{ token, name, slug, group, mapping }` creates the team and imports into it (`merge`). A taken short name or group is `409` before anything is created; fails the import, the empty team is removed again and the message says so."}},"signatureDigest":"sha512"},{"version":"0.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/bias-city/timesister-nextcloud/releases/download/v0.10.0/timesister-0.10.0.tar.gz","created":"2026-10-05T13:45:38.310729Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-05T13:45:38.359023Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"HHMb2+31646VtvU23p4RVtZtptGF7MTBZWn2lXr6uhOSVxL1J4sdS4IsVuH2k9e8i0h2vuussVImdxT1exUfmkJ8mUAPcEfu1LyRntkz7JpHE3INPcv2hSh1zZEScmLbNnKv7pIo7xfG9zndgUtBjukr3KL3Kf4hgIFnmmtwD030czbquAJpQZZp76OchTkKR+TQsq/uyREiIKWZNJFoma6rvYa/xs7BhlViJW2fvP1bKujcrK9aqlWk1+Y8XYgdhI7XXnCvxSBdURYkaP2v8rWMgzDuH7ZFTOsQkeqWin17nTzKhY983Q1KnRn+atWuJgzBVmGEYY0zLE2cQKdFDgqCrd1708wsiUxD+yvsVHK+yJGmg+7d8pfrCGFNUWj2f5MSQDpM2DQE43880Q6Jb0g6cO3VMv0KlfECIvKOIPnjLIt1cS3HBWa9E8Bqz+41sNHrkdw/a13xVI05gOv/xdYLaBbO82TelnMbL3u0B29afRKRWfzMFa0gAPg3mtkMhoGNCeMf6adf/RhkHEHWwWgp6ERxCY5s8Q1k4quh3+vM/3dXQ1kl2kuoClwxi4eDQlSCu6gxXKoSj2UTSGwjR+ucs1WfxvTLXt+IodA3lDx3VrMgHH/69HD7QcB3iTgm6WsLS5I/1f2TI8vV8Rxk7u0/i7cACWJyUBbcMwLwH/k=","translations":{"en":{"changelog":"API unchanged (`api: 2`), only additions; the capability gains `team_backup: 1`.\n\n- **Team backup as a ZIP.** On the admin page, every team has “Back up team (ZIP)” (`GET /admin/teams/{id}/export`): `manifest.json` with checksums, `team.json` (team, members, shares, consents), every record with its history under `records/<kind>/<key>.json`, `status.json`, `absences.json` and a fresh export of every active member's time calendar under `calendars/`. Person records carry their `feed`, so the ZIP is confidential (`contains_secrets: true`).\n- **Restore and move.** “Restore from ZIP” uploads the ZIP for a preview (`POST /admin/teams/{id}/import/preview`): the people of the backup, whether their account exists here, and the accounts of this Nextcloud to map to. `POST /admin/teams/{id}/import` with `token`, `mapping` (old account → new account or `null` for “without account”) and `mode` `merge` or `replace` writes records with history, roles, shares, consents, absences and status in one transaction, puts mapped accounts into the team group and stores the calendars as backups per person (`source: \"import\"`), which people fetch in the Mac app under “Old events”. Before importing into a team with content, the server stores a backup of it (protected and with the backup owner under `TimeSister Backups/_team/`).\n- Limits: ZIP 200 MB, entries 50 MB, 600 MB unpacked, no absolute paths or `..`; only Nextcloud admins, write routes with brute-force protection."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9iaWFzLmNpdHkvdGltZXNpc3Rlci9pbWcvYXBwc3RvcmUtdGVhbXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9iaWFzLmNpdHkvdGltZXNpc3Rlci9pbWcvYXBwc3RvcmUtd2Vlay5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9iaWFzLmNpdHkvdGltZXNpc3Rlci9pbWcvYXBwc3RvcmUtY2FwYWNpdHkucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"TimeSister","summary":"Master data, teams and permissions for the TimeSister time tracker on macOS","description":"The server side of TimeSister, a time tracker for macOS: it stores master data such as people, locations, projects and clients as versioned records, checks permissions on the server and keeps calendar backups and the clients' status reports.\n\nEach team builds on one existing Nextcloud group, the team group. There are three roles, called Team Admin, Lead and User in every language: Team Admins are the group admins of the team group, the app keeps Lead and leaving the team. Every member names their time calendar once; the server reads it and hands the team's time entries out by role, so nobody shares a calendar. Leads and Team Admins offer Jobs – shares of a project or work package – to people of the team; the server checks volume and overlaps, and notifications tell who has to answer. The app creates no accounts and no calendars of its own; time entries stay in the users' CalDAV calendars.\n\nIt requires the TimeSister Mac app, where master data, roles and backups are managed. On its own, the app only adds an admin section for teams and status."},"de":{"name":"TimeSister","summary":"Stammdaten, Teams und Rechte für die Zeiterfassung TimeSister auf dem Mac","description":"Die Server-Seite von TimeSister, einer Zeiterfassung für macOS: Sie speichert Stammdaten wie Personen, Standorte, Projekte und Kunden als Datensätze mit Version, prüft die Rechte auf dem Server und bewahrt Kalendersicherungen und die Lebenszeichen der Clients auf.\n\nJedes Team baut auf einer bestehenden Nextcloud-Gruppe auf, der Teamgruppe. Es gibt drei Rollen, in jeder Sprache Team Admin, Lead und User: Team Admins sind die Gruppenadmins der Teamgruppe, Lead und den Austritt führt die App. Jede Person benennt einmal ihren Zeitkalender; der Server liest ihn und gibt die Zeiteinträge des Teams nach Rolle heraus, niemand teilt einen Kalender. Leads und Team Admins bieten Personen des Teams Jobs an – Anteile an einem Projekt oder Arbeitspaket; der Server prüft Volumen und Überschneidungen, und Benachrichtigungen sagen, wer antworten muss. Die App legt keine eigenen Konten und keine eigenen Kalender an; die Buchungen bleiben in den CalDAV-Kalendern der Konten.\n\nSie setzt die Mac-App TimeSister voraus, in der Stammdaten, Rollen und Sicherungen gepflegt werden. Für sich allein bringt die App nur einen Admin-Abschnitt für Teams und Zustand mit."}},"isFeatured":false,"authors":[{"name":"B/IAS – Basel Institut für angewandte Stadtforschung","mail":"","homepage":"https://bias.city"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhQ5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDAyMTIyNTA2WhcNMzcwMTA3MTIyNTA2WjAVMRMwEQYD\nVQQDDAp0aW1lc2lzdGVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\npIgdY1zTI1ijZ+0dxFCrnqRRDx4NJyPi2Uv+S7CFcpdDZSfE4rF40RTCOqnPKDmm\nGFX1b3a96FvJ8b53HZx9mb/wqA4DZfIy3qW+RLsIBNwBQdinFYD78SXWiqN6Ezy7\nAV+vzZKl3g5QBxKCjyimBzld4PcrQa7H+UvaU51I+N876QNf/dEuVM7pNvzwqSlS\nNVxKMYNhRfEmDrs7oddDDQJZ6xXFXBct8jMAUYsk/bl+gN3C7Qj7q4mdYkVNeUYC\nMCLFRY+Vu65OTqQja+ircyWTP0BpPxbipnNhfrRgP4p2e1e1svPhvBuFyZ9wb+qP\nLQ9BdMHrbCJ6fZ/QzExIPyvwq64IzusKP2jTu2IN0mDTh9r0hvxo4TlqAsfDPuOn\n8LaWQ347jSTI211aodR5+F+k752t/1LuqPypj3pMwqDJ1TGTHKHV5lxK01LpDDwh\nNxxTwmL7veeShsCkqYcEBE80mL3GDCSTqS072lBly+vkz3CJhgLBn03Foqtn9bBA\noyYbPKsS2naM1CJAEn2b+1jsuNY3A6fWdt8qs+ewHFrt22hbSRWtVwLASIpq+hf5\nF/tkVB+beTMRp9ttcA8LiBftETG67Dn4bo26wxXSpWdMFemW3iax2VcLBb/Rszym\nAFdXK5Kvpf8B0xBOE2oeAss7VL41+4BAKnjur16ainkCAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAlS9tWEgqRQeUGNoe+V/ZsNpXmYATepbZJTDnWPToJjyypJVW+V1D\n94MnNEa2j1Sjp2ZVsLDzgnU4nt3EAvlMXRv/3ViuRn4JtzEAeL+QinDuN6/qvo2T\nX7QneJLXaFC/xTNQiOZJPuQ9/8lu/Ve+IB6gvADdnPzlnkp/CZF//EZHYZBQ28OX\nN4p/XdACnNShyUwJkyQ07euusw1YfJlphc+arH9alTEekWhNmR5VYNgpyu/X+4yQ\nCc1z2Pjd8oyjjcjqb6Pnowy9TV0mzxYXsUdBAT/CcNfe6en8G85/87m+dw5JB6c2\neTVpa8nbKAO5D//WsXmsWjPMheU6NkaYlg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"solitaire_ce","categories":["games"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/DJ-Key/solitaire-ce/issues","website":"https://github.com/DJ-Key/solitaire-ce","created":"2026-08-20T06:33:41.824782Z","lastModified":"2026-09-17T20:06:06.904318Z","releases":[{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=25.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/DJ-Key/solitaire_ce/releases/download/v1.0.3/solitaire_ce.tar.gz","created":"2026-09-17T20:06:06.890909Z","licenses":["agpl"],"lastModified":"2026-09-17T20:06:06.963176Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=25 <=35","signature":"Ia9+4ZY85qw17KU8UeKR3Meb3O5nhv43RpZovZGsXgyS2Je+7ai8RUm5bEe35XbP\npwcx4CiO70R4oqQ5eInVy/h6bsAYTFEpU6oBfS+o4d/h5LQECGYWeeXj8Bt06l9u\nix97+gU9vTVOApAEE60viv5erDRH/5btXWeJKWyl/DIhr/p4GQkBMSSnkvDXX9O/\nRBx4WF6QDJ5jV32R4Lc4SbdwKNy+EJ3xIiC0Lv0VdRin70AGHge+rDRncfA3jdTm\ncGIiqJ8jsD5IC8uu58La5rfkAy9kStoqMg3Zr4CYtaUmMg1V8eN+h5e3R0aTISOe\nxhXlmCG1+FAEedvxTKSGqCY1iOOq6mBh1d6JsjV2GfFq1jBQlQ/aabF+xCE9NyRY\noi5uAf8Cjq8VMYrkF4Li5Vq2oQTMwmnqunaonUt/dZ2hBC/YuTxA1ipkum1LygrY\nRPWZHxxLn87m8kIs3cw9iK43riZlsVKA90pTZnJDHDqZAey523mzgLSH8XkPRiJ5\nQSxtq1R1kA6sHDQn4i7vJK066XKbEX3cpp6UoyQiaDyJAgbsJ01I4ofzvb7XkAjo\ny8Iqy9NpL3qFD8wJNsWaVmooOlKnGV47XCxl0dgNiJbojnZQ5xLMe3fW+MOH5FEo\n5Gqdxx84e9Ew+n0fPXc9MjAu9iKoeSqqctl4Yi3Fl2w=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RKLUtleS9zb2xpdGFpcmVfY2UvbWFzdGVyL2ltZy9Tb2xpdGFpcmUucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Solitaire (Community Edition)","summary":"Solitaire CE: A fork of DerBen's Solitaire app, updated for modern Nextcloud and PHP versions.","description":"# Solitaire\nA Nextcloud app that lets you play Solitaire."}},"isFeatured":false,"authors":[{"name":"DerBen (Original Author)","mail":"colin@derben.ca","homepage":"https://derben.ca"},{"name":"DJ Key (Maintainer)","mail":"danielj.kaplan4@gmail.com","homepage":"https://github.com/DJ-Key"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhPJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODE3MTY1MzM1WhcNMzYxMTIyMTY1MzM1WjAXMRUwEwYD\nVQQDDAxzb2xpdGFpcmVfY2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDIXyLi0etNjpkEzkwzn1O9dIoJRMipPUvHF8Fj7X10/7CLPefb4UjphJZNgMij\nrx11lxy5rJ/GXpPGYcdkjK36wf2YOZLsCc0Iyd4BqvIgqHXxDn8AIIJNAzNqwaiC\ngtpQMUdNhoABtodqEgA7n6dPW/00vlkHzQC4pVWNm1JoNo6oJ9fhAqyw9jGF/n2p\nDeSn1ewLmKDcNiBDY5mqLwGSQhhL1eSBa+inQYndI2SsejhJYNrrg95g8mG0jdjD\n1a8tfnbABBZuYUUCOApinNM8kAVE7GGKHixMRm5VMRTHXf/+wFls/WUwFGy0nEH9\n6gM1dpiTC3wDFKwmAQb4q09ArLlCau+nJ/RXz98fO7O8BJSpnhJ0rF1zaBP5kn1K\nzNuVC0yZQRnzFJQfKr10yjPdgDMo96u95P9fSgadV5rEZk9Rpt128BENvVtr2bHD\nmvBKhH09SyttgsF8sF5rQ8bJbUghJKtXfLUZM+Awvcb85vvIi3TyG9cP92uHPu2l\n5oJXDG+Tuq+l3KpIHWGCkW5s3aKeeQFRnwUs+h5ItAOeZcHEVZX1ME9pE79FQnBa\n8Gv8uxy8gofUQaC0Ke87k6KxiTxUPew2p8kZPz09QKw0VtRoVl6chPe2U+Ih86V7\nh6hoThqhteA4C8eanmsO+wzlqFnGh65Wk0d47nROg6+zTQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQAhE/CB48MhdRJTC44EY1+jaCznmBK/nlSfTJI+r88OhnnYodrs\njVm0uFq2Ij2CXBuNhtYeqbxlwnHYsHvA1abH22KqpIItYq12QyT+pY5x024VR8ju\nsEg6MqSrenLba2YioftBLfJaQFhTTqv8AC87ppuotAQxkO3itRoqJHKRv1IrBopf\ng5Ros6A2Oi86PoOliAMIRQChE21qugim5otjryDWPpdo1CgR8Lu2WcyTnG/KBffK\nMhMeQx12rEbxgRPklm527s47UZqBwubTl+h7lDbgfyFgLzyOF5sYYsSXfh0I3ZVt\nriGGVe2lY0bkN/5FqeXtNEWRyOyTi6cx4uwK\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"thematiq","categories":["customization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ConductionNL/thematiq/issues","website":"https://github.com/ConductionNL/thematiq","created":"2026-09-06T10:07:17.935127Z","lastModified":"2026-10-08T13:04:31.587996Z","releases":[{"version":"1.2.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/thematiq/releases/download/v1.2.8/thematiq-1.2.8.tar.gz","created":"2026-09-29T08:43:34.716129Z","licenses":["EUPL-1.2"],"lastModified":"2026-09-29T08:43:34.761074Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"QUKVjHvLlcuiByf/lMut7SStqcSXJYfeAzUDMuSxznZgN6NO7nZ1sLT7DMpkFnHRz7/o6ojM4qkcTc8O7owBHNNWdRUR91ZC2tpmEyrgCccEDTNEu6Y308UhgwTlMtzokwvyayt/LTMjqyQ0fc/gw/ggBG9Y2Rvx0yFXO5GengiYc5bZ0L0Ead1TFuxDRAggDCeDs+Yly7mdsg2EqbUqqzfPBgrCI0xwbyzLtbSqyXgBCUxGWTBtR3rvDIGNlfQ53A4d/lWbCiorAB1JQ0sz9u5INJ6pNqsIOzWZdYquaIhCV3mBsItxrpGjY3Iey/0gR9HWoY1TauSb3MzYGDhA7HrWgPaX68301E9jN9IHfSCfAUZqJM2zWIAkIAkTdxFCtogfOFyWmmcq3kn7d0kXKkLsfSY7Vpo0dx4VyLTwO/MJshMuHrgCah0TsLv6oumbH3JrucVSHlHOBuXLAEGzv0UR270HF6o9gh5EhsueSN9G9MjwakxwfRau9vODkAVks5ERDAvJrACeVVnK0F2Dj0LRPb7R8IQQf/rbQHUGpAJkinwdk6HyAqHoeGFlu2EGyCSR5Z52wWcWPzlkTkrvm/mUjrA0srTUp+Ix8l3ZN6s2LSrrQiZXyDSQsRmgTh3LctR2f0vyk2oczybYJZcYPljwQKp1wmwXKcegC38QXP0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.26-beta.20261008130306","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/thematiq/releases/download/v1.2.26-beta.20261008130306/thematiq-1.2.26-beta.20261008130306.tar.gz","created":"2026-10-08T13:04:31.600632Z","licenses":["EUPL-1.2"],"lastModified":"2026-10-08T13:04:31.610296Z","isNightly":true,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"ETj65k0ewM/0oovxPVMt4kXg/J0ncFSVh93r/EoPJwTsrwNJE4pcf4h5vQhH1xGUEZs/+w+AVz63CQZQdxw3OHIM0iW7COw5/gJcHHalj8pzJiAxk0JiXi391hmGWuGHo5nR908P3Dnv6IoIsY5DJt+cWzn636DYB3cnggixe8iDYgEC6sKANXrocsTQc7Uda6MD6oS0WCWMFU9PUcs1KjNlg1f8prKH6QUv6kxusJW8EJebTKkZHF29ohJ4xh4F3XMvL2sk7vGF76bhGEKYa4gzLd9Z2RlDdvw11JnXm5igQU9DwliPG++lS0nXNuLgM/a89+vSh/NHcoJ2K4GrlkemZ4xh5h/J76d6h11nI46craANiaccULz6HPFvs0LoZMauHlzR2aR0s2sK6uS+zPxd4iT/2CHVN/+3wrw0MlK4FOLVUupRQBiyAFW1Ubb8i7ok3N2FWSAvfRqTu4NuM5TXwwUbOphj1uM/yRIcXAXxAJ/b5603+r5rGJMo+/W+qib2NQh/lNyYrmdVfkHZcJHdjQvOyeCO81zbOU2oFmJCRTzJVAJWtPcp+VYEvrtEZkTOF3BOnHqY7uoBbWmG83hZILtmr76ODOe2YWY4foM1VtQule29Sn1fZ3ProqbgmGwvFbiP3+PyHjibBTMoY0Co58HwuVXSgOHkIq5JvcA=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.2.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ConductionNL/thematiq/releases/download/v1.2.10/thematiq-1.2.10.tar.gz","created":"2026-09-29T13:21:05.460512Z","licenses":["EUPL-1.2"],"lastModified":"2026-09-29T13:21:05.516037Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"zhpp7sg77tS6AusHQztGuXurggDd1GqdxYi9IOa5gYbQI3OAxpDLbzC1ySzvqvSpNWQzgnqsBZQbsvtyFQHChfYXNBiZaMJBV/5aN1/QUWyTmgK7Y1BPgmNd1nAbU7E4VoL7ALesUr++TUY35RuZsMHib4bXUaVqASoXx9uRFCw/Z68Oa8TeEjpgvnL7iWkuuryk2DrPX6PEXOEX9RGvUZsbJdbzIdGeKEM/2ua9Qkscx97azMytOV0kXGENxwtfrzXEJG1y+0wCgipuUTW62Xu2eRisHH5FdbCGaf8PhCaI4024VtL0/vUp7Y4gh/0g8+4mlxquiE0HRI5oW9TFStfO/Aff3N4DpBNkMgxKwIGc1xYrZ0EVcENzbFQxFfmfv3dvYTnrvEBX8YSU+q7T0pKzTq2Ry7NMSIXO9hyBCGPei4DbFzobdP4nytMFnR3qeKl+yDKd+m4NdZHZrr+Bn6eIihOG5443+ZJ316Q+KCZ4QlRTNLblqzkKP3g0SZsyi8UOKqeJ/i/PWIXIPqy3k0QSbNdmdryKZq2NYECxp6k75/+0y5x0k5Rzb2q2p+6tGp9ha273DkeUsJzH2o/UySpt+1bA5KM4bzDAklEUFdjOV6sH8ERjCmnMrlOePBbtEoqXYlemwN9ewUMTw/0M8DLKpHKItN5vByeFRYv6xbY=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC90aGVtYXRpcS9tYWluL2ltZy9zY3JlZW5zaG90LTEtY29tcGFyZS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/ConductionNL/thematiq/main/img/thumbnail.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC90aGVtYXRpcS9tYWluL2ltZy9zY3JlZW5zaG90LTItZWRpdG9yLXByaW1hcnktYnV0dG9uLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0NvbmR1Y3Rpb25OTC90aGVtYXRpcS9tYWluL2ltZy9zY3JlZW5zaG90LTMtZWRpdG9yLWJ1dHRvbnMucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Thematiq","summary":"Your house style on every Nextcloud screen. Edit it live, no code needed.","description":"Style your whole Nextcloud from one settings page. No CSS, no developer, no rebuild.\n\nNextcloud's own Theming sets a colour, a background and a logo. Thematiq styles everything else: buttons, tables, status colours, fonts and corner radius. You see each change live before you save it. After saving, every app follows. That includes Files, Talk and Calendar, and Conduction apps such as OpenRegister and OpenCatalogi.\n\n**What you can do**\n\n- **Edit live.** Four tabs cover the login page, content, buttons and typography. Reset any value with one click.\n- **Use your own fonts.** Upload the web fonts your organisation has a licence for. They are served from your own server.\n- **Save your own themes.** Keep a design as a reusable theme. Or import a published design-system theme and see exactly what was applied.\n- **Start from a ready-made theme.** Stock Nextcloud, La Suite numérique, or the house style of a Dutch government organisation. The government themes follow NL Design System.\n- **Try it before your users do.** Preview a theme in your own session. Nobody else sees it until you apply it.\n- **Set a theme per group.** Give a department its own look. Exclude apps that should keep the default.\n\n**What your IT team gets**\n\n- **Your own branding.** Thematiq works on top of Nextcloud's own Theming. Your name, logo and background stay as you set them.\n- **Contrast report.** Check the active theme against the WCAG contrast rules, the web accessibility standard. Use the result in your accessibility statement.\n- **Branded e-mail.** Notification e-mails follow your theme. Add an optional footer.\n- **Portable configuration.** Export the full setup as one file and import it on another server.\n- **2,526 government icons.** From RVO, OpenGemeenten, Gemeente Den Haag and the French DSFR, for every app.\n- **Free under EUPL-1.2.** No licence fee per user.\n\n**About the organisation themes.** They copy the house style of the organisation they are named after. That organisation has not endorsed them. Use one only if your organisation may use that house style.\n\nCreate a [bug report](https://github.com/ConductionNL/thematiq/issues/new/choose)\n\nCreate a [feature request](https://github.com/ConductionNL/thematiq/issues/new/choose)\n\n**Support:** For support, contact support@conduction.nl. For a Service Level Agreement (SLA), contact sales@conduction.nl."},"nl":{"name":"Thematiq","summary":"Je huisstijl op elk Nextcloud-scherm. Live aanpassen, zonder code.","description":"Geef je hele Nextcloud je eigen huisstijl, vanaf één instellingenpagina. Geen CSS, geen ontwikkelaar, geen nieuwe build.\n\nDe eigen Theming van Nextcloud regelt een kleur, een achtergrond en een logo. Thematiq doet de rest: knoppen, tabellen, statuskleuren, lettertypen en hoekafronding. Je ziet elke wijziging live voordat je opslaat. Na het opslaan volgt elke app. Dus ook Bestanden, Talk en Agenda, en Conduction-apps zoals OpenRegister en OpenCatalogi.\n\n**Wat je kunt doen**\n\n- **Live aanpassen.** Vier tabbladen voor de inlogpagina, inhoud, knoppen en typografie. Zet elke waarde met één klik terug.\n- **Eigen lettertypen gebruiken.** Upload de webfonts waarvoor je organisatie een licentie heeft. Ze komen van je eigen server.\n- **Eigen thema's bewaren.** Sla een ontwerp op als herbruikbaar thema. Of importeer een gepubliceerd design-system-thema en zie precies wat is toegepast.\n- **Beginnen met een kant-en-klaar thema.** Standaard Nextcloud, La Suite numérique of de huisstijl van een Nederlandse overheidsorganisatie. De overheidsthema's volgen NL Design System.\n- **Eerst zelf proberen.** Bekijk een thema in je eigen sessie. Niemand anders ziet het totdat je het toepast.\n- **Een thema per groep instellen.** Geef een afdeling een eigen uitstraling. Sluit apps uit die de standaardweergave moeten houden.\n\n**Wat je IT-team krijgt**\n\n- **Je eigen branding.** Thematiq werkt bovenop de eigen Theming van Nextcloud. Je naam, logo en achtergrond blijven zoals je ze instelde.\n- **Contrastrapport.** Toets het actieve thema aan de WCAG-contrastregels, de norm voor digitale toegankelijkheid. Gebruik de uitkomst in je toegankelijkheidsverklaring.\n- **E-mail in je huisstijl.** Notificatiemails volgen je thema. Voeg desgewenst een footer toe.\n- **Configuratie die meeverhuist.** Exporteer de volledige instellingen als één bestand en importeer ze op een andere server.\n- **2.526 overheidsiconen.** Van RVO, OpenGemeenten, Gemeente Den Haag en het Franse DSFR, voor elke app.\n- **Gratis onder EUPL-1.2.** Geen licentiekosten per gebruiker.\n\n**Over de organisatiethema's.** Ze bootsen de huisstijl na van de organisatie waarnaar ze vernoemd zijn. Die organisatie heeft ze niet goedgekeurd. Gebruik er alleen een als je organisatie die huisstijl mag gebruiken.\n\nMeld een [bug](https://github.com/ConductionNL/thematiq/issues/new/choose)\n\nDoe een [featureverzoek](https://github.com/ConductionNL/thematiq/issues/new/choose)\n\n**Ondersteuning:** Voor ondersteuning, neem contact op via support@conduction.nl. Voor een Service Level Agreement (SLA), neem contact op via sales@conduction.nl."}},"isFeatured":false,"authors":[{"name":"Conduction","mail":"info@conduction.nl","homepage":"https://www.conduction.nl/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhP+MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTYzMjQ4WhcNMzYxMjEwMTYzMjQ4WjATMREwDwYD\nVQQDDAh0aGVtYXRpcTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANKw\nzFCDw0n+xV2dKUmyXINmyhm7HDpvscUI5myW9usMAIMJ3amfRg5KnefCJzjd/Oxj\nsTmvlYvl+7cFLfsU6dms5YA1qFqP8vWvP04i/X8WJcZHy7wEdM5DfsR+X5vuvycN\ngv5w5x6cP7glvG1jxLp4iU44x5SeY8P5l5fTXBNNGwC7YwObOkQCGnjtK/zbg8ZG\nuCK4FIR4itiXfwFVgKdpVGiyrA7QooPo6GUly1TJj2tdoA05ZGAJa4VdXqssVDoK\nvoTrQSpxT/yVcN0Cq6YVuPYSAL1QMFcoLlQEtRvXpTqdBjQk9vF49UWCMF22KLeS\nyXJwDNLPSNzL7h1qinkcxkJvMNKBaBq/Yi/zyokWEz8zOlGKCiD6kyBuNHFbB4hN\nzj1z1KJtnayK77R1yFmO0618Mkk7HZmWKC4xeda4ai3gbqlY/1LuJHQCIMsYxFpx\n1MkeB6ykBOkPWC2L+04Gd6WzmOBJvIYZ2jY6ZQElwW8J5a8syA24hgfddxFDyrpr\nB8YZ8vh0dcLwm2qE1vLoli+U1QFHxDWV+2akSs/bpPlrR3kwAXwvckZGP+6qgSkL\nu47Tp6MMXhIkohhvrN2Z6BoymwqG2jPBpeCXZ5UPc7cMjUS937/SvMpZ9IS38lkr\nzm8ryoxcJc4k617Mh8Nde7nYQL0IgUKOz92GPeZ7AgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAGqhy0mOF0yqfrwpVoeceIN3C5Iik5l5tp2dzpnjLzS4lSxuUvtfdSVU\nItr/vmbTv8LuCwxgamY9p2sbkEwTUNL11oBuCqaEj+ccbO9Cs5plOnsCZCZ1bQE1\nxG/B+doqZdgXU5SmOmU48rCMUHGjrpohg4dTLGAAeFJboCL5ID7IoW+Hmv+NJAw5\ncg6IXLxr532HMriadDeRUUL48KSzLAfQjSQ98V1qL3ezrzCb2Ev17/Vv5x+d3mLl\n9OQuOzOSQFlKx8xvNCKTl3Hb32iQgAGUKBsZvXGKF9/XkonhOjqeudiI0OMFV8lH\nMnzkXMO9CTKCjxjXKVFkSfllpQKvPso=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"regibase","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/RegiBase/issues","website":"https://github.com/ktec-nc-apps/RegiBase","created":"2026-07-15T10:53:01.960179Z","lastModified":"2026-10-19T09:41:26.887399Z","releases":[{"version":"0.21.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.21.2/regibase-0.21.2.tar.gz","created":"2026-10-19T09:41:26.876500Z","licenses":["agpl"],"lastModified":"2026-10-19T09:41:26.927407Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ILAjxqNW4HRjD3TJTLgnBt/kMBVKdmbtsccWUmsQM2/KpQUHNLBaUBWp8ktWcPCzXZxnMxlyoCVJW/bSPSM6BdeXjDnvp3tB+lQl631hrl+CVC9oKYsTtFW4t49kqjED1sV8v9WDB1NdmGXjGmnXFq7Gl35klxCHncaIg34EYLfz8ITvxnWsFqtGabbnCZNayVwg9cExevASmkrdKoeVOjsVI5cXgheyIzA5JLcUIyIFahqWNf0OlHtgyvor0s8T9c1BIW+j8hAC6llZNYQXlKU969zg+VDGhGKWk1nmTG6xpUJigGeyCxoWVP0VooivjpTi9iSvpmPQMzkK4xor9oV9YHL4R6SjBTMHbGZYeLzQi2ysj7mkiDmKUeqtVePiF59XSeZAVaepYfCAgoryl3/twHy3TwXZ5gbYSsSt9on4zZ3bLZrA+aGoG1XMOkh8HRN8XC08GyfarM8Vl+QwLqJ+myghqkCeBjqfnbYZ+E8ZR2xKFMnBL3RR6IMn2vm2m4C39rpl1BUcAslAd8b74SNue87cMccjnWK81Hu1+/GPaKPhvxzTDxbOWnSWCINwAOKxjwLcEAWQE5VZNHMA1pV6au/SDu0qsMj+INu9AUrh6xnOAeB3Wq9/01NO6uZIVgIXORiEQcLG5uuLx23eSUx2DseXHfPsfrmfE9OhTrU=","translations":{"en":{"changelog":"Translations corrected after a review. In sixteen languages, sentences that used another word than the rest of RegiBase — for a snapshot, the master key, a secret field, a record, or the form of address — now use the same one; in Japanese this includes \"Undo / change history\" and the wording around secret fields and keys. Two Brazilian Portuguese texts that were written the European way — \"Definições\" for Settings, and the line under the theme setting — now read as they do in Brazil. No feature was added or changed.\n（翻訳の見直しを受けて訳を直しました。16 の言語で、スナップショット、マスターキー、秘匿項目、レコード、呼びかけ方について、RegiBase のほかの画面と違う語を使っていた文を、同じ語にそろえました。日本語では「元に戻す / 変更履歴」や、秘匿項目とキーまわりの言い方も直しました。ブラジル向けポルトガル語で、ポルトガルの言い方になっていた 2 か所（設定を表す「Definições」と、テーマ設定の説明）も、ブラジルの言い方に直しました。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.21.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.21.1/regibase-0.21.1.tar.gz","created":"2026-10-11T03:25:39.752833Z","licenses":["agpl"],"lastModified":"2026-10-11T03:25:39.807946Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"aT/FOnKdAwR/Wk/lfxm1YWSBgAiciqQ5YATx3c1tNofGstq44cPKomxNWzCbE7HQlotnpksUPNTYJzER8ETrjCCx9N+h2rczQRfSNOHIwTr8j06la9umEq2jiRheNOkaquh+F6ySorypn+odjOzD5931y5RvpIZCsQP0j4e8Pm2uH37vpkAJgKXRQ0zpApiAP8hTB+j2swxJVJsREcmQPor0RpmZ2xd5BIyV192AbmINuigoVZ44CL9568GaywXaeVr6zgOGvJC1lOIdvkyOXHx+EdFAP7M88bpayEcNlaWkDvIDRDjdpNTgB70i9wjSH2WSZ/0urKdftnyPHq2jDM7FHdAoLSk0XIqk65FpTRBEpU8sG6rSt7A3FX9WCI9Emn6qhk2Ji6+4DHK8gzK6t4d0BPOGxIq6agWMYt5NgAa6gaJTav04tUK/mQPd/CdpXuo5WgeFtkN+Q/npNzlSKHMvM2AQItwXS6iFYzrB6Q2Ifkx4SoW0nunb118ATSTN72NHKzJBdQnI+kMTRjqqcwVfhVfYqso/tM1nxYzxhM7avPTpvys5+frQFJSlOEMCDxKRnY1vQTWArQC2CTQ5QWxixpCpV0WlXJRSzKrIA69ArfctWJJRnvqXh0/dh638Kvrcuyjz0gX5105nDP08XOLujxKpZmm4ixfKo+uQhe0=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.21.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.21.0/regibase-0.21.0.tar.gz","created":"2026-10-07T23:32:44.529243Z","licenses":["agpl"],"lastModified":"2026-10-07T23:32:44.582032Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"CpRzCFDkQRMB05ehRosfwvinCnPwyRURphTMG0E0v/AtR71WzCNdXWlw5sLlKUXuO7kn1p1I4yLtvBNK3j7uZzw0iw/SQnGUn1Nnp2dnK5SfDM1FACluM2QaAGT75x5ETbLhCa5jMTvZ6SkpzGzxCUGNF53sVwdZjkRU3JDkgg8yQ8SQIq4yY2x4f4fWpXw/ssrezZUO1kdCjgLozTSaiUtDQWmqMsEVsLnbTZOfnDtXRyl+c49p2f8tAFivbkHH5QzsNjJhjtJ31TtAPILowZ8qkwnM5r4HBNN4P9Kq9eUivU4RtVRLPhzv3oUuxu7sP7kS5YJ1SHmROPW67Rz/CljKpGucNI1+t8F4fVrz1Hd4Vf/DCs1YaVoo8ErHgq0lc3N12LaBLJo+Jqb3HmUS5VG2lty4XqtE10y10g2VBXzK8Nd/yYnJpjtoquXnqDXdqAWm1FQjPi5jBR1DDows5IMUkc+o29sp/S6Kearhs8+8szeNUEzXyFdr0V91pF8FMdov1wvls8UhKK1mQVZOx+3Mef4BbFdNixG+KyiyFyDMi7ZqRKSa9Gq9h9+VdqCglhDIeAgGx5PT2AJan0WFdWwmSv+KHyD4PqdyWtJgYwHIUcrJ6pGXmhs5jQ/TgVBeUXIorJHIDQaXZKl7qEkMPV/lWUz2wv4MWeXtl77ddfY=","translations":{"en":{"changelog":"An AI assistant, through the new AI-Hub app, and the fixes from a review of the whole app.\n（新しいアプリ AI-Hub を通した AI アシスタントと、アプリ全体の点検で見つかったものの修正。）\n\n### Added\n\n- **An AI assistant, through the AI-Hub app.** A chat beside the open collection that knows RegiBase. It answers in words and writes out what to type; it changes nothing. **It never sees the value of a secret field**: the browser strips them before anything is sent, and the server drops them again as a second line of defence. Administration settings → RegiBase → AI assistant: on or off, who may use it, what it may read. Shown only when AI-Hub is installed.\n  （**AI-Hub アプリを通した AI アシスタント。** RegiBase を知っているチャットが開いているコレクションの横に出る。答えを言葉で返し、入力すべきことを書き出す。何も変更しない。**秘密項目の値は決して見ない**（ブラウザが送る前に外し、サーバーでも二重に外す）。管理者設定 → RegiBase → AI アシスタントで、使うかどうか・使える人・読める範囲を決める。AI-Hub が入っているときだけ表示される。）\n\n### Fixed\n\n- **Someone a collection is shared with, view-only, no longer receives its secret fields** in records, exports or searches. They were returned as they stood, in plain text when the owner had not set a master key.\n  （**閲覧のみで共有された相手に、秘密項目が渡らない。** 記録・書き出し・検索で、そのまま返っていた（所有者がマスターキー未設定なら平文）。）\n- **Putting a session version back no longer brings back plain secrets.** Encrypting, or changing the master key, now covers the versions kept by session as well; they were left as they were, and restoring one wrote the old text back.\n  （**セッションごとのバージョンを戻しても、平文の秘密が戻らない。** 暗号化・マスターキー変更の対象に、セッションごとのバージョンも含めた。）\n- **A hidden collection's PIN is asked on every path to it**, including the owner's own: changing, duplicating or sharing it, and listing its secrets. Only some of them asked before.\n  （**隠しコレクションの PIN を、持ち主の操作を含むすべての経路で求める。** 変更・複製・共有・秘密の一覧など、これまで求めない経路があった。）\n- **Deleting an account clears the versions kept for it**; they were left behind.\n  （アカウントを消すと、そのバージョンも消える。これまでは残っていた。）"}},"signatureDigest":"sha512"},{"version":"0.20.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.20.3/regibase-0.20.3.tar.gz","created":"2026-09-28T16:18:53.222077Z","licenses":["agpl"],"lastModified":"2026-09-28T16:18:53.283508Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"eume3122AeieRhxVYVi8OFnoaNw9qUcp4O31bqhESWrez1oWAW280U0pj6PKAZX+AeT1FMTO4qCHFvGLd8wnnl3G0gr0oBq5RDXVIcU7hzfRU5EeNwdmwkGmtued377e3YDwOpdtI0z1/mxlroCFffXHFPj4SIzoRt7Z3PCyZlWfuan0BZJtdysP94lWb054Hqlg5sD+nwX3j+CzKAa0dN71rb4SuxhRjgi5nyNDeHyMy6kNWfCmyEQeeQ9Dt8L7TSMU5gnu5mgLG+pWwvQsRVp+qalYsvJdlgmBWQiSIasKPsIWxGllAvht5vcEGomO6Pd8ZTboMiyFzkVtak18jADog4fE/9M4zK/YZEmDwPFGlCtHhVdGNX9SrqHEJYpzUkssCB4lpFqUK63g9Mh5YwDCdcbGhPIGQr8Xq/0rdeNO5SV8JczWGsRGt3aOm5bpeh9Vie51tzDx5xz0vob9oli3nDrtjF+QoH0fyUpjZmZjLJvq6ZcG7XzAp4b6HxP8z1GG6E8V1kWow5YNQlG1cqxT1VYldTDzyqbLnNG0OpL5cI+0NVg7SKfHnFge8E0QgcGEKZhSGgLULKtVV+KDp96ayUaKjq2j++ZEUf90JOdAq43s2OBN9fHU7qEMtn4PzeJpY3lDXgbH6ctYvtQVzlvw76uiIQfblTgIBbrqAj0=","translations":{"en":{"changelog":"Three layers of protection against losing data. A move made on 2026-09-27 could not be undone:\nsnapshots were limited to a small number shared by every collection, one saved form rewrote each\nof its records as a snapshot of its own and pushed everything older out, and a move was only kept\nin the collection the records went to.\n（データを失わないための3重の保護。移動を元に戻せなかった件がきっかけ：スナップショットの件数が\n全コレクション共通の少ない上限で、項目の保存1回でレコードの数だけ記録されて古いものが押し出され、\n移動は移動先にしか残らなかった。）\n\n### Added\n\n- **Versions by session.** A version of a collection begins when a record is first changed or\n  deleted, and holds everything done until the browser is closed or the user signs out. Any\n  version can be put back: changed records get their contents back, deleted and moved records come\n  back (and leave the collection they were moved to), records added in it go, and changed fields\n  are put back. Open them from the collection's settings.\n  （セッションごとのバージョン。レコードを最初に変更・削除したときに始まり、ブラウザを閉じるか\n  サインアウトするまでの作業が入る。どのバージョンの前にも戻せる。コレクション設定から開く。）\n\n### Changed\n\n- **Snapshots keep every change and deletion in a collection, with no limit.** A move is kept in\n  both collections — from the one it left, a moved record is a deleted record — and undoing either\n  puts the records back.\n  （スナップショットは上限なく、コレクションの変更と削除をすべて残す。移動は移動元と移動先の両方に残る。）\n- **Attachments are kept, not trashed.** The attachment of a deleted record, and one an edit\n  replaced, goes to a hidden `.snapshot` folder inside the collection's folder, keeps its file id,\n  and comes back with the record. It goes to the trash only when nothing can bring it back any more.\n  （削除や編集で外れた添付は、ゴミ箱ではなく隠しフォルダー `.snapshot` に保管し、レコードと一緒に戻る。）\n- **Putting a version back clears the collection's snapshots**, and the other half of any move in\n  them, so nothing left can undo a change that is no longer there.\n  （バージョンで戻すと、そのコレクションのスナップショットと、対になった移動の記録も消去する。）\n- **Restoring a backup with \"overwrite\" returns everything to the backed-up state** and clears the\n  snapshots, the versions and the held attachments of what was there before. \"Merge\" and \"add\" keep\n  what is there.\n  （バックアップを「上書き」で復元すると、バックアップ時点の状態に戻り、それまでのスナップショット・\n  バージョン・保管していた添付を消去する。「マージ」「追加」では今の中身を残す。）\n- The per-record versions and the snapshot limit are no longer shown; the versions by session take\n  their place.\n  （レコードごとのバージョンとスナップショットの件数の設定は、表示しなくなった。）"}},"signatureDigest":"sha512"},{"version":"0.20.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.20.0/regibase-0.20.0.tar.gz","created":"2026-09-25T05:30:22.584542Z","licenses":["agpl"],"lastModified":"2026-09-25T05:30:22.658046Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ikAO+bERc5bBp4Ydnz4bhU7k32RSfYc7dcfMaPZr9mFwYiMJpj8uA96NuXGvgOo4O/x+W/ITvX1W5YDazdoNyrhZ3IGE4bzDchb3mNBJL+Hh0aBQeHGFHNsolNtMs2dGaW7hXGSxZZ+Wy6rEXfgKgVaTSUV4MSB94VtqDnyvOhYWtcWEWibcTUAlUEFj3VviTWuvn0ALrsNrOwebtEwOvNaXuOTTbz6uBDZrhOXVc1QMMxfQVJf51nXfCZqM9Wvwep9PNDM4j//uFRo5rcUB4Yuk47wudY3z3MP41Ofqu5qcy1PWkQe/i/4cajUgRkjWxHepqdK5FDsiPx3eGiUtsxfso1z/Qwpv+V6wbQs/FBwwYnh6eKyNKiufZOWXbXdEyxHnN2flMDphq0xQhPDxJyAjksXEeAhkzmvIi0DSDIw6QgStuA5PDIV051I1ChqrPy636nT/oo/vZ94GXMw7w0kNvXKXRmPnXtN8CNEbJcLWDYkV/NtfJBkyFwRfYYL4WBCB0ifoEfNpFJvybq7ktSpLPPLozPfp4xGGXEiP2nnTvOfILs+dzUb5JIgN0YnbYxOR6XkFmJLtzSLdIegPMqEFCkiOJzQPwSM2zbz6mlF5jNITmZEg48LJdnXMc8f5bvdyXbOhjd8Svkf+8s49V+c3EQO2IPR1ReKiBw3kaHs=","translations":{"en":{"changelog":"A release of fixes. Every part of RegiBase was reviewed line by line — the page, the server,\nencryption, sharing, backup and restore — and everything the review found is fixed here. Several\nof the fixes close security gaps, so **updating is recommended for every installation**.\n（修正の版。画面・サーバー・暗号化・共有・バックアップと復元のすべてを一行ずつ点検し、\n見つかったものをすべて直した。安全に関わる直しを含むので、**すべての環境で更新を勧める**。）\n\n### Security\n\n- **Shared collections are more tightly confined.** Undo, version history, attachments and bulk\n  edits now respect the share's permission level, its edit lock and its removal; an editor can\n  only write the collection's own fields, and can attach only files they own or may reshare.\n  A hidden (secret) collection can no longer be opened by its id without the 6-digit key.\n  （共有されたコレクションの扱いを厳しくした。取り消し・版・添付・一括編集が、共有の権限・\n  編集ロック・共有の解除に従う。編集者は今ある欄にだけ書け、添付できるのは自分のファイルか\n  再共有できるファイルだけ。隠しコレクションは、6 桁のキーなしでは ID を指定しても開けない。）\n- **Sharing follows your Nextcloud sharing settings** — sharing off, group sharing off, \"only\n  with members of your own groups\" and excluded groups — when searching for people, when\n  sharing, and when restoring a backup. If the administrator tightens those settings later, a\n  share they no longer allow is paused (it cannot be listed or opened) until they allow it\n  again; the owner sees it marked **⏸ Paused**.\n  （共有は Nextcloud の共有設定に従う — 相手の検索・共有・バックアップの復元のいずれでも。\n  管理者が後から設定を厳しくすると、合わなくなった共有は、合わない間は使えない（一覧に出ず、\n  開けない）。オーナーの画面には **⏸ 停止中** と出る。設定を戻せば元どおり使える。）\n- **Repeated wrong passwords are slowed down** — for the backup password, share passwords and\n  the secret-collection key.\n  （バックアップのパスワード・共有パスワード・隠しコレクションのキーを何度も間違えると、\n  間隔を空けないと試せない。）\n- **An unlocked share is tied to that share and its password**: changing the share password\n  or sharing again locks it.\n  （共有の解錠は、その共有とパスワードに結びつく。共有パスワードの変更や再共有で解錠は解ける。）\n- Deleting a user or group now removes their shares, so a new account with the same name\n  does not inherit them. Images are served only in image formats (no SVG). Reading a\n  collection no longer creates folders, and \"delete the folder too\" only ever removes folders\n  under RegiBase's own save folder.\n  （ユーザーやグループを削除すると、その共有も消える。同じ名前で作り直したアカウントが\n  共有を引き継がない。画像は画像形式だけで返す（SVG は返さない）。コレクションを読むだけでは\n  フォルダを作らず、「フォルダも削除」は RegiBase の保存先の中のフォルダだけを対象にする。）\n\n### Encryption\n\n- **Secret fields shared with others no longer use your own key.** A share carries the\n  collection's own key, wrapped with the share password, and the share password itself never\n  reaches the server.\n  （秘密項目を共有するとき、自分の鍵そのものではなく、コレクション専用の鍵を共有パスワードで\n  包んで渡す。共有パスワードそのものはサーバーに届かない。）\n- **Changing or removing the master key now covers everything** — hidden collections, record\n  versions and the undo history included — and is all-or-nothing: if anything cannot be\n  converted, nothing is changed.\n  （マスターキーの変更・解除が、隠しコレクション・レコードの版・取り消しの履歴まで含めて\n  すべてに及ぶ。一つでも変換できなければ、何も変えない。）\n- **New or changed master keys must be at least 8 characters** and are strengthened with\n  600,000 PBKDF2 rounds (was 250,000). **Your current master key keeps working unchanged.**\n  （新しく設定・変更するマスターキーは 8 文字以上。PBKDF2 は 60 万回（これまでは 25 万回）。\n  **今のマスターキーはそのまま使える。**）\n- The remembered key is kept in the browser in a form that cannot be read out, per device and\n  per login; a device where encryption is off no longer keeps an old key.\n  （記憶した鍵は、ブラウザの中で取り出せない形で、端末ごと・ログインごとに持つ。暗号化を\n  切った端末には古い鍵を残さない。）\n- A failed decryption no longer overwrites the secret value when the record is saved.\n  （復号に失敗したレコードを保存しても、秘密の値を上書きしない。）\n\n### Backup and restore\n\n- **A backup can have a password of its own**, instead of your login password. Restoring\n  always asks for your login password first (and the archive's own password, if it has one).\n  （**バックアップに専用のパスワードを付けられる**。付けない場合はこれまでどおりログイン\n  パスワード。復元では、まずログインパスワードで本人確認をする（専用のパスワードがあれば、それも）。）\n- Backup and restore stream the data instead of loading it all into memory, so large\n  attachments no longer fail.\n  （バックアップと復元は、全部をメモリに載せずに流して処理する。大きな添付でも失敗しない。）\n- A backup now also brings back settings, shares, templates, hidden collections and the date\n  each record was created. An overwrite restore checks the archive first and changes nothing\n  if it is not whole; if saving an attachment fails, the files already saved are cleaned up.\n  （設定・共有・テンプレート・隠しコレクション・レコードの登録日も戻る。上書きの復元は、\n  先に中身を確かめ、欠けていれば何も変えない。添付の保存に失敗したら、保存した分を片付ける。）\n- Merge and add match fields by name and type (secret fields only with secret fields), refuse\n  a backup made with a different master key, and never merge into a locked collection.\n  （統合・追加は、欄を名前と型で合わせる（秘密の欄は秘密の欄とだけ）。別のマスターキーの\n  バックアップは断り、ロック中のコレクションには統合しない。）\n\n### Editing records\n\n- **Two people editing the same record no longer overwrite each other silently**: the later\n  save is stopped and you are asked what to do. Replace-all skips records someone else has\n  saved since you loaded them, and tells you how many.\n  （同じレコードを 2 人が編集しても、黙って上書きしない。後から保存した側には確認を出す。\n  一括置換は、読み込んだ後にほかの人が保存したレコードを飛ばし、その件数を知らせる。）\n- Decimal numbers, URLs without `https://` and e-mail addresses with international domains\n  can be saved. Phone fields accept `#`, `*` and full-width hyphens. Only the fields you changed\n  are checked against the input rules, and the server now checks them too.\n  （数値欄の小数、`https://` のない URL、日本語ドメインのメールを保存できる。電話欄は\n  `#`・`*`・全角のハイフンを受け付ける。入力規則で確かめるのは変えた欄だけで、サーバーでも確かめる。）\n- Saving twice quickly no longer creates two records; switching collections quickly no longer\n  shows or edits the wrong records; checkbox values are kept; closing an editor with unsaved\n  changes asks first; failed saves are reported.\n  （保存の連打で 2 件できない。コレクションをすばやく切り替えても、別のレコードを表示・\n  編集しない。チェックボックスの値が消えない。未保存のまま閉じると確認する。保存の失敗を知らせる。）\n- Saving a template, or editing one, keeps its view and join settings. Bulk edits keep record\n  versions.\n  （テンプレートの保存・編集で、表示設定と連結設定が消えない。一括編集でも版を残す。）\n\n### Search and import\n\n- Normal search looks only in the values; regular-expression search has help that matches what\n  it does, and an invalid or too-heavy pattern is reported instead of matching everything.\n  （通常の検索は値だけを探す。正規表現の検索は、ヘルプを実際の動きに合わせ、誤ったパターンや\n  重すぎるパターンは、全件を返さずに知らせる。）\n- CSV import reads Shift_JIS files (Excel's Japanese CSV) and detects `,` `;` or tab\n  separators. Columns whose headings would give the same key are no longer overwritten.\n  Contacts import keeps second and later phone numbers, e-mails and birthdays without a year\n  (in the notes); JSON import keeps large whole numbers exactly.\n  （CSV の取り込みは Shift_JIS（Excel の日本語 CSV）を読み、区切り（`,` `;` タブ）を判断する。\n  見出しから同じキーになる列を上書きしない。連絡先の 2 件目以降の電話・メールと、年のない\n  誕生日はメモに残す。JSON の大きな整数を丸めない。）\n\n### Other\n\n- `occ` commands mask secret fields unless `--reveal` is given (also for accounts without\n  encryption), and `regibase:master` no longer leaves data half-converted.\n  （`occ` は `--reveal` がなければ秘密項目を伏せる（暗号化していないアカウントでも）。\n  `regibase:master` がデータを変換途中で残さない。）\n- Error responses no longer show internal messages; names, icons and colours are checked\n  against what the database and the page can hold.\n  （エラーの応答に内部のメッセージを出さない。名前・アイコン・色は、データベースと画面に\n  合う長さと形だけを受け付ける。）\n- **21 languages**: Portuguese now comes as **Brazilian Portuguese** and **European\n  Portuguese** (the previous \"Português\" was Brazilian and stays selected). All languages were\n  reviewed by a second translator, and counts use the right singular or plural form in every\n  language (for example \"1 Eintrag\" / \"2 Einträge\", or the one / few / many forms of Russian, Polish\n  and Czech).\n  （**21 言語**。ポルトガル語は **ブラジル** と **ポルトガル** の 2 つになった（これまでの\n  「Português」はブラジル版で、選んでいた人はそのまま）。全言語の訳を見直し、件数の単数・複数を全言語で正した（ドイツ語の「1 Eintrag／2 Einträge」、\n  ロシア語・ポーランド語・チェコ語の数による形の違いなど）。）\n- The unused full build of Vue is no longer shipped.\n  （使っていない Vue のフルビルドを同梱しない。）"}},"signatureDigest":"sha512"},{"version":"0.19.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/RegiBase/releases/download/v0.19.2/regibase-0.19.2.tar.gz","created":"2026-09-17T10:44:52.026686Z","licenses":["agpl"],"lastModified":"2026-09-17T10:44:52.083742Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"T++kcZ7Spj06L7mUgW/xfw7MyrAvGv/iQoc/jsM9bVEEywlwtXKbplup/A7tgm3AdTArmJTohyHVLribNjxoqb1CxYvxCnhID1g2J4enqMqTFtLIB60o4YvoGRX20CgDqlBiCZ04Pd2t4N6rJhyQEa+pinF9aIOk2zZI8E+4I+9tvWqvtK+plL8Utwp5z2TsmzxPm/yzNZNH1+nE+dtLUVEuMhbaHogYCt5KLvoFilDRbaV2LfbnUZXzSQKJBTp7+9r0sDx9LhMLPAohu7skPE0n08NrmYJwSd+uVx6rFPGcarpm2CfxWBqIV0do1lSjEnHNtIAWcUYbM5V4K+qo6RIs9dgj4OQ9VYbw21gfYAvM7zMzYefQQRb7x0gleexuN5shaHIIe1lkMEXNNjZUPW6/q7wLTX3i2zZ2zQr+M/upw7285OG6EotuzvV5Xl9B0vsXnubOTw0KfLbnZELXS6jNJPf3VgyyzI/t7BJi2eJAgH7jMFLaGm2wzlembJiXl/hLU3i8ETW6H+vsYabcLI8oxsBhrq9KzLvdDrvh5/dyr87bSa1UKExaXdb2ORkJ0KwIRr2X422ZX/lcGfTubm0Ep5iw08C3DHobOdW/raCpXpQoXXfk2QiEnb2aaG7B9W9GHidlZFS4pX/ndIWDZXoynVua2fsCudlm8wPGaiI=","translations":{"en":{"changelog":"### Changed\n\n- **Nextcloud 35 is now supported. There are no other changes.** The supported range\n  is widened from 30–34 to 30–35. The app itself is unchanged from 0.19.1: it was tested\n  on Nextcloud 35 against the changes that release makes for apps, and ran without\n  modification.\n  （**Nextcloud 35 に対応した。それ以外の変更はない。** 対応範囲を 30〜34 から 30〜35 に\n  広げた。アプリ本体は 0.19.1 から変わっていない。Nextcloud 35 でアプリ向けに変わった点に\n  照らして試験し、修正なしで動くことを確かめた。）"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzAxLWNvbGxlY3Rpb25zLWhvbWUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzAyLXRhYmxlLXZpZXcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzAzLWRlc2lnbi1maWVsZHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzA0LXJlY29yZC1kZXRhaWwucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzA1LXNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzA2LXRlbXBsYXRlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzA3LWNhcmQtdmlldy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9SZWdpQmFzZS9tYWluL3NjcmVlbnNob3RzLzA4LWNvbGxlY3Rpb24tc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"RegiBase","summary":"Personal database — templates, sharing, encryption, Tables integration and multiple views","description":"RegiBase is a lightweight personal database for the information you want to keep — credit cards, bank accounts, online accounts, memberships, licenses, contacts and anything else.\n\nDesign your own fields (or start from a template), then browse records as a list, a spreadsheet-style table (with a frozen first column), or cards, and choose per field which of those views it appears in.\n\nRegiBase works together with your other Nextcloud apps — Contacts, Tables, Files, Notes and Calendar — using each one when it is installed.\n\nFeatures:\n- Custom form fields with per-field input rules, built from reusable templates\n- Save your own templates, and edit the built-in ones (per-user override, resettable to default)\n- Duplicate a collection — optionally including all of its records\n- Share a collection with Nextcloud users or groups at three levels (view / edit / delete), with an optional access password and optional secret-field sharing\n- Optional client-side encryption (AES-GCM) for secret fields — the server never sees the key or the plaintext\n- Nextcloud Tables integration: import a table into a new collection, or export a collection to a new Tables table\n- Import from CSV / JSON (e.g. Google Password Manager), or from your Nextcloud Contacts (including photos)\n- Attach images and files from Nextcloud Files or Notes\n- Add reminders to Nextcloud Calendar from date fields, and open addresses in a map (Google Maps / Yahoo! Maps / OpenStreetMap / Apple Maps / Bing Maps), configurable per collection\n- Move / copy / merge records between collections\n- Password-protected full backup & restore (AES-256 ZIP)\n- Command-line access via occ — list / get / export / find (with regex), plus master-key management (set / change / remove) — with opt-in secret decryption\n- An AI assistant, through the AI-Hub app: a chat beside the open collection that answers in words and writes out what to type. It never sees the value of a secret field. Without AI-Hub it is simply not shown\n- Available in 21 languages (Portuguese in both Brazilian and European forms)"},"ja":{"name":"RegiBase","summary":"テンプレート、共有、暗号化、Tables 連携、多彩な表示形式に対応したパーソナルデータベース","description":"RegiBase は、クレジットカード、銀行口座、オンラインアカウント、会員情報、ライセンス、連絡先など、手元に残しておきたい情報を管理するための軽量なパーソナルデータベースです。\n\n項目は自由に設計でき、テンプレートから始めることもできます。レコードはリスト、表計算ソフトのようなテーブル（先頭列を固定）、カードで表示でき、各項目をどの表示に出すかも項目ごとに選べます。\n\nRegiBase は、Contacts、Tables、Files、Notes、Calendar といった他の Nextcloud アプリがインストールされていれば、それらと連携して動作します。\n\n主な機能:\n- 項目ごとに入力規則を設定できるフォーム。再利用できるテンプレートから作成できます\n- 自分で作ったテンプレートの保存と、標準テンプレートの編集（変更はユーザーごとに適用され、初期状態に戻せます）\n- コレクションの複製（レコードも含めるかを選べます）\n- Nextcloud のユーザーやグループとのコレクション共有（閲覧／編集／削除の 3 段階。アクセスパスワードの設定や秘密項目の共有も可能）\n- 秘密項目のクライアント側での暗号化（AES-GCM、任意）。キーや平文がサーバーに渡ることはありません\n- Nextcloud Tables 連携：テーブルを新しいコレクションとしてインポート、またはコレクションを新しい Tables のテーブルとしてエクスポート\n- CSV / JSON（Google パスワードマネージャーのエクスポートなど）や、Nextcloud Contacts（写真を含む）からのインポート\n- Nextcloud Files や Notes からの画像・ファイルの添付\n- 日付の項目から Nextcloud Calendar へのリマインダー追加と、住所の地図表示（Google マップ／Yahoo!地図／OpenStreetMap／Apple マップ／Bing マップ。コレクションごとに選択可能）\n- コレクション間でのレコードの移動・コピー・マージ\n- パスワードで保護された全データのバックアップと復元（AES-256 暗号化 ZIP）\n- occ によるコマンドライン操作：一覧表示、取得、エクスポート、検索（正規表現対応）、マスターキーの管理（設定／変更／削除）。秘密項目の復号は、オプションを指定したときだけ行います\n- AI-Hub アプリを通じた AI アシスタント：開いているコレクションの横にチャットを表示し、質問に文章で答え、入力すべき内容を示します。秘密項目の値を見ることはありません。AI-Hub がない場合は表示されません\n- 21 言語に対応（ポルトガル語はブラジル版とポルトガル版の両方）"}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhOYMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzE1MTAyMjI2WhcNMzYxMDIwMTAyMjI2WjATMREwDwYD\nVQQDDAhyZWdpYmFzZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKV2\nlsYAXFvlZWeFRbkDFwsDTj9EzdhnDmng7lnm4uoAwrGZnHJRgL+7ntcSNq2L32AB\nt/VLkeCSPM19Icbqz355LHpw16xJ222MRuiGrpK40EvDO2eJAF8hMmRMwj5kk7fh\nBiDBZvQqP+qhUpW8Db1MohhjSfWtTzVLXvcnwSstA7Ujr/HTiWLltvjmRTRyNqLE\nJJHdhbDwWzI2kR1MHTHm2PvdbiC08Wx9tqpP7R7Iqvvb12fHgmv6NDNcKg+QX3V6\nIvHfTcuWYSV4Fm+71u7kMJ+noDasjrcR2TPEgNUsYmOuxuSlgyZna0sla0FfoJ41\npzcM+22VXkI5U4RGsBKrIKP0VdQf2XDG2lPOzqAT600CkotmiqXTB+L1si3oq4Mb\nWnBlPItk8btokqELKScKtK1/HbRr4Q6dY9tLF2Vhp9bf8jt4TKsAdm5SDQyQPXZW\nm7b2YBT3SfihEkAZXibzLd7X7405NvhEaBZ5pIetCSxHn+izWZYZN+mGMK0JxiOt\nf2gdsnEQj4goBCDhOoEa7ngrdOe3V54eQu+kcgjNeyv1LA/sou/sdHJSFPKhqUGv\nQ1rAeNGeHC0dcCjj8854jJfpIQBGVbKF2hzcJA87s4F+K0zMoIk7KZeYAf3MILhi\n6nFSQyFkBH5JzuIpKbeo8VaePRafUB/FqWKz8FzbAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAEAePkAQei88axt4dY9LCWW8+65o+ByEJizP/W8INHQNGB3UtRITF6fk\nIeyAH2VeB6rAj+Jj/YYbdf6CcXX+njESM6APmA+k5sObVXD4RR7/BO6HISxGvfpr\ndbiAdMNJX1EYX1DBtXuuHGRJSDpM9UYL7wp6K91zRsu6RNmD1EKoHgQUnLdrswBi\n+Xt4K+oJhg8Y2hfnpqsEo8p80D4QdZwyXV+9OdogLyrYgrZFE6fn3/i5HmPVNvMD\nyxFOHgjTZc74T8E6gAU8M/2+XYFXp/LTlUVhSPzV7JQhm+X+Jcf5XYvXgaNF4pAB\n1TBfNST35sl9XoK+iM5w2euPcM+Q7wg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"eurooffice","categories":["files","integration","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"https://github.com/Euro-Office/eurooffice-nextcloud","issueTracker":"https://github.com/Euro-Office/eurooffice-nextcloud/issues","website":"https://nextcloud.com/office/","created":"2026-06-03T11:51:54.745391Z","lastModified":"2026-10-08T10:04:52.679963Z","releases":[{"version":"11.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.6/eurooffice-v11.0.6.tar.gz","created":"2026-10-08T09:55:32.278576Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-10-08T10:04:52.709018Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"pWjiTFhL3ZbdApkNS/SDKsbovYtGdJZ+/GDEuJb4AN6jlmVrd+sEU4ZHu142x6EK/VaxFt+8NIwoo6snyJMV/Qe3xqb1/K5CMHjwlvp/Qzy5mBq1d4AQnRdNW3gTWculqXnjD0p3SN1CrnWZ1zAYiub5QSVspWQZR1gSeNjKPVT4FeC39R81fdX9uGVGxv97LXPLTIS0sw/1snu6/s/lvKhVF353sMZ98TFIZKeiOONL3bDW+cHqqrh1XzzFqjpchtBHWgKboMtHkQLHBVhKhm8g+uLJwv2368uI2tDn5bWeQFPZ/cm0QJGS7jGb9ZOaxnEzDnAj2mdFhvvzb+u/Y2KiGvGB0okKEXb3lRdv8eTdciz8R+tj/m3jwIKYuvNaJy2vcIkQZrwerOH1y6PZiVIVQwDVIqZr8x64a0/TxfV8GQJE+1wIILYmL4sQCFakb4NcCASaLSdsmWd/95Kfrx5eaxutQf0KaleCtEVU3eGbnx4pNR+bkXVhGYVswKLSaQ3Q8nKITUpej0TRvSZsK9lRS3Ka6T4mffv0kaeZE7dQ/bt/RxOIkrGE8cVQxJM01k/oIPnKDYx0uypa0ENzo/ShtjqQiglmNlz7oAxaf2OFOfrh1cNbpGrluCF/sib4G3LnCZyUYVMJ7nYTbtIOMuLqtBNw946KOzzlmd79lKI=","translations":{"en":{"changelog":"### Fixed\n\n- fix(callback): 🐛 release the key lock when a force-save throws @moodyjmz [#203](https://github.com/Euro-Office/eurooffice-nextcloud/pull/203)\n- fix(editor): pass the user's Nextcloud language to the editor @juliusknorr [#222](https://github.com/Euro-Office/eurooffice-nextcloud/pull/222)\n- fix: scope firebase/php-jwt vendor to avoid class colli… @bromiesTM [#213](https://github.com/Euro-Office/eurooffice-nextcloud/pull/213)\n- fix(viewer): register viewer handler regardless of load order @DmySyz [#201](https://github.com/Euro-Office/eurooffice-nextcloud/pull/201)\n- fix(templates): point the assets submodules at the Euro-Office forks @chrip [#204](https://github.com/Euro-Office/eurooffice-nextcloud/pull/204)\n- fix(config): use !empty($shareToken) for chat/protect permissions @watermelon0339 [#192](https://github.com/Euro-Office/eurooffice-nextcloud/pull/192)\n- fix: replace broken admin support links @vansh-nagar [#220](https://github.com/Euro-Office/eurooffice-nextcloud/pull/220)\n\n### Other\n\n- chore(deps): update actions/setup-node action to v7 @renovate[bot] [#124](https://github.com/Euro-Office/eurooffice-nextcloud/pull/124)\n- chore(deps): update icewind1991/nextcloud-version-matrix action to v1.3.3 @renovate[bot] [#194](https://github.com/Euro-Office/eurooffice-nextcloud/pull/194)\n- chore(deps): update actions/checkout action to v7 @renovate[bot] [#69](https://github.com/Euro-Office/eurooffice-nextcloud/pull/69)\n- l10n(da): translate the font manager and clean up the older strings @bargib [#189](https://github.com/Euro-Office/eurooffice-nextcloud/pull/189)\n- chore(deps): update actions/checkout action to v6.1.0 @renovate[bot] [#123](https://github.com/Euro-Office/eurooffice-nextcloud/pull/123)\n- chore(deps): update skjnldsv/read-package-engines-version-actions action to v4 @renovate[bot] [#214](https://github.com/Euro-Office/eurooffice-nextcloud/pull/214)\n- chore(deps): update dependency firebase/php-jwt to v7.2.1 @renovate[bot] [#57](https://github.com/Euro-Office/eurooffice-nextcloud/pull/57)\n- Use npm ci in artifact workflow @Copilot [#217](https://github.com/Euro-Office/eurooffice-nextcloud/pull/217)\n- chore: support Nextcloud 36 @juliusknorr [#216](https://github.com/Euro-Office/eurooffice-nextcloud/pull/216)\n- chore(deps): update dependency @nextcloud/vite-config to v2.5.4 @renovate[bot] [#115](https://github.com/Euro-Office/eurooffice-nextcloud/pull/115)\n- chore(deps): update actions/setup-node action to v7.1.0 @renovate[bot] [#228](https://github.com/Euro-Office/eurooffice-nextcloud/pull/228)\n- l10n(da): four ellipses Danish had invented @bargib [#219](https://github.com/Euro-Office/eurooffice-nextcloud/pull/219)\n- feat: Add English localization files @bromiesTM [#207](https://github.com/Euro-Office/eurooffice-nextcloud/pull/207)"}},"signatureDigest":"sha512"},{"version":"11.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.5/eurooffice-v11.0.5.tar.gz","created":"2026-09-16T22:31:26.442693Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-09-16T22:31:26.506202Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"pRBJKSVlb9g882Q65zUhSpMyXRE2WATCozgv5MbUWcAkCIagSkGh5ZHVoaVNC+Rw1SGMnLVAwqsT7jY6DBAtIos7cR/Es/dgHcf9d3OWl3LSC+xfmjpoPk+Gyz1exTaR2oUAGjEAxNHNP9tYerOP7jiIrQ+h1APSW2RWLTKvzM/VjmOf43T+G1fys2WIuIexulad+mzqjj1pZUpMkfDt7aRNDf0U1Szwf6zzOTyLwimOy0XJ0gCIBaHgyxvyMTLresWLeuenf4UdUsMGWaxjB5nuxLbBoteGFdtnD+r2zl+CVeNFDWhYakLZTwq9gtBe1GpstKWXCPGSASPI53AGVupr6HhIEbxkY7ny04Q1s3Q3OHra2+3vCUOWuKW+wq4D8hDqrbwg9HL2Rs4ORQw3MJ15KEfQCVOWuTActHehq4ifXafbdUhWJrxhhmfcjOpCJohog9KZ9YxCF6YOfeNB7Lfxqxv9wMGSHLITDjDk6qWD9sy3/Cc0Zyjj6PIEn3seRdh/qIXTDbGtJ1D5nLZXwLtg71T7Z5wYLjtlI16PCbw+IrKHi7o78T6QQ8i6orbqVhnnIUTTzfbzARupEG2bBoXoCeLbk3hsdo9Qlr+3sgUU9ZOb97aohb/3eKF2Jq9a8r6S3uP6siKYtgknZrUuIS9BvBAyenDJ+CB5E/jGee4=","translations":{"en":{"changelog":"## Added\n- PDF opens in viewer by default — clicking a PDF opens the EuroOffice viewer; an \"Edit in Nextcloud Office\" action provides access to the full editor\n- Admin setting to enable EuroOffice as the default PDF viewer, replacing the built-in files_pdfviewer when enabled\n\n## Fixed\n- Admin settings panel broken on Nextcloud 35\n- Inline editor: full-screen layout with correct sidebar visibility on Nextcloud 34\n- Corrupt cached format value in getFormats() causing a TypeError on subsequent requests\n- Font manager: graceful degradation when the AdminPanel service is unavailable\n- Callback: silent file overwrite on corrupted force-save"}},"signatureDigest":"sha512"},{"version":"11.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.4/eurooffice-v11.0.4.tar.gz","created":"2026-08-25T20:44:19.684315Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-08-25T20:44:19.735281Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Gnkf7n1NjspXqk0PGhvMRcUAcfD9BMrB4gFD0WDbP4ZIUiE4LJoOxgGBAzj1Ws7LlAbsgAroqTEFpaFTHlaCfBb58UquDQEySo/LKAseGd/tFYt0I7ihkciLUbhj5XoT5YhyLzPKLcdthFHKK3h1G/PZaVdxU/im/ohLHpdElUg2IthYvvLmHd9iFf3hI5BZ8GMdU79DMObkG+d61HIt44rn7FYeqtsQhW0fWAfBEGmBcvRqVxjGL9COWzkgpS2lzl4IeDfiLxI6ESXuiPQf0SEd6Mp1M1St7XLZ0j9qGDlxYSj/GMmTqNreb9HjZWzUuaxviDfaODdGXInaCxDnHzUufqNgRLU+M2vt2bLUTaizeqibV9rY9k9fAt+boox10thXk8FdvOeRqPZph7f9yRr9Wwm1ir4+mDI3rDM9dXmJb1LGiyGrjEG2B68JPz8ZD8oJLwj+5oiCdl35oSKdElu3w39cZXVSVFo1opsOAL5wo6kjpIgFhsCDTPMhpAxJNVYlPrEcRYVzx1bCrGZ8w2Nkqe2GR5FXwQxA1UlGpCjgM1oIFLfQ195vQFpNj+RqspJVH/utOEOi+fM5fuE2pX0CSRQu8SrXtPsICso+W38tLx8VqIeY7sv/N8m6Me79OLOq6kzYfJcfw2l1y9SgK9j/mQ8xAhRoU6643DdLRGI=","translations":{"en":{"changelog":"## Fixed\n- remove deprecated oc_defaults and explicitly import @nextcloud/moment"}},"signatureDigest":"sha512"},{"version":"11.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.3/eurooffice-v11.0.3.tar.gz","created":"2026-08-25T11:09:38.653853Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-08-25T11:09:38.717614Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"Wtb98T93i4WwK6H5Sy5W5UH06NyI7jAFLHnDM6nyfnK8a1GaugZ89mVCTitEMv/VmGcxK0PC4MXjqg2DjrMPqPrWiClkj4MhSG8Jc2X7PuLIabgzqHJxuBH+4oTjY5hZvEtoJc90IZng6wU1o0eWuJvkmzyUUokZJyhKos0RENYftJLmVPKG6dnOLTLgwiZRn8W/m6/X1y/+xLJp9S0TgE9Shw+JzDm2Z644eIcIdcDeoOYjW+nxkWE33ih/KRZplCXTmDI7pW5FeVNmhKPhGY/gN5TRiA6H7jXTrz3o5gtGrcrY67hKgRRcJ2jckZVEYWWYlI42Q2GWc/pTJdyAMdF5A7+PYgWvkRGdlyemsmQlkn/8q5JcTaeLjc8I6nPIuD/sC/t4+iyBFwgXo9NcfO7sO+vItmnG7HZAVZr1QsB2RVG3iR2EY/aiHFq5eWj+CVi3RVdelLjagMnA4X1Klunuz7IRXDEDdFBIbLumhRgEqk3tlYt1mJiFOsJZ3ua7zj0ozVqBBQ7hFADgi2+pvR9BFaQipFo6pALkL2zes9I5PHlQQsvgUTkTy7GfbxHPmJAMHq5QTw19ZvJQ7pExI6l4bEdD+h1ZNwl1j2Fo1I2hNF8CShypfhKH39KxW4BryAsfvSH7dw11HUQX5tleTHW4h17sB0goU0hctpLOAUA=","translations":{"en":{"changelog":"## Added\n- Font management UI - a new Font Manager section in the EuroOffice admin settings allows admins to list, upload, and delete custom fonts installed on the document server, and trigger font cache regeneration, directly from the Nextcloud interface.\n\n## Fixed\n- Admin settings: document server secret field marked as sensitive — The JWT secret input is now rendered as a password field, preventing it from being exposed in browser autofill, logs or screen recordings."}},"signatureDigest":"sha512"},{"version":"11.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.2/eurooffice-v11.0.2.tar.gz","created":"2026-08-14T10:32:48.485757Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-08-14T10:32:48.603733Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"PPGfA2VrK1o2+l4ZPrjBvtMbBvETenyLcVA8cPktNFwPbc1h8cP2UGaDw/aOyV3CL0A7OPviGa4HrGOoiULQ2cOpkA4aBfc8FfA02FWNa7Gdcu4Bq8OxsfOisaoA+kMx6uBOZCFkThpD9IlA7y3k8Cn7qNvOtGbxAvzf5OorW0gqNmTh24+e00sqTFXuLs8pgMd1rfUUlptTy3yesctZf++xfDYcw93LLSaaIl3PMSduD3MDm5xLg3E03CGjaAI+MULVCVt1kiKsgrfIgm9itn9/KG43WtORWpRDJJiHV+Lskhz17cTZI5IwrPnpmzQZOssbgd+33+MH8PSlLyYFuW1a51y0v7jnGvYBwp6nLe0ADvFHbESbmPBa6sq8cbEFx3/HtFO7QQIZmP6uiWHnWYdw+9b7TepuX+9MR7Efh+P0V+k5b1kSGOYU+b+NIW3ko48vNWdzO0GgzXgjReK92LiWOdIvGwQOisu067yPaoV1ck/fdCDrvn9aJ5s8QuOh7paMsSlUTcSonr23RTff+GY6NXmMD/ekVh5F1y+pDorb6OZ1rEsj03fYI8fexRRB7ZibZXGakWu7F3okpaEMPd0xOxSIm8gea87XcRIUx7cqJ8yDKjeJ4qNzTAX4/PlT4AO/jxz8yeFkKoshI/xArxRlD3WrBPy7E+PILU8MmMM=","translations":{"en":{"changelog":"## Changed\n- Updated icon design\n\n## Fixed\n- Share-attributes JSON parsing\n- Silent disappearance of file actions (convert, create-form, download-as) and broken download restriction evaluation on Nextcloud 33–35\n- Dark mode external-link arrow\n- Stylelint peer dependency conflict"}},"signatureDigest":"sha512"},{"version":"11.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.1/eurooffice-v11.0.1.tar.gz","created":"2026-06-30T12:10:43.286023Z","licenses":["AGPL-3.0-only"],"lastModified":"2026-06-30T12:10:43.338924Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"INVN21YjvLXPSOw5ug/wPaFQ6Aejsk8OhNYMb7rX7ViGRV7TTE1QphblMl9fG0GFrJOv0sG24sSCMsT15Ghd1e6O7CcKdlBlbozfHmmxVKDxPvQQ8kOOJ26XSettDyswHGZ3QVSgvnnpVTW6V6KHflFbRpWis6A4Zn9KmjBFjeSyfwJHqS4Yxdja3R1wU0WScxdCgKGMPNxsUsHxHICUPo1x2XCZCGzWBJmLPz2xdyMH9mVHHCavG3cEN5AtLpEJ1VJ+zvgNjVFGUMUerHwB76BgBb/iY9Z7RcmXfQ+MSPoV1qG5S1S3vQn84UIsg2bG4kXA2759Zhw1aF5n0kpozhReEH06skw5B09DDyBnOdlC7OmV4p0DpGq/f7OHnqabTXWMcX4kpPVyhOxC/vQa2x+unwxl4MC9M+AGrRP1q98ZU0B/fVQB/vUVzmD+Bw2w1/IRMc3B/7QipxD/Xl4CQSfoHBfPmggZ4M0av2NV1rCOZxwX7ZE7JPYULbsppv7e9XQrTA8H3uMTRrJO1psAfu+Y8dtiGQ7SuPExsCq+XuapL1IQvY+6rglbT8NAg9k/lKuWvYZHwZIf2BcYMcLbyPMaRHGyfxb6jG+fEvym6nUrHMHBiysqswHGf+J6p0F6F6Pncbqt2xaNqyVNFDjfgtzsXfrZUa5x8oeTJgCIpFw=","translations":{"en":{"changelog":"## Added\n- Smart Picker integration for inserting file links into documents\n\n## Changed\n- WebP screenshots replacing old PNGs\n- Renovate bot configured for dependency management\n- Updated dependencies: node 24, @nextcloud/auth, vue, vite, and CI actions\n\n## Fixed\n- File action icons invisible in dark themes\n- Broken and generic appstore links in info.xml\n- Viewer formats iteration (use Object.values())\n- Smart picker link insertion (iframe targeting, await, plain string linkText)"}},"signatureDigest":"sha512"},{"version":"11.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/eurooffice/releases/download/v11.0.0/eurooffice-v11.0.0.tar.gz","created":"2026-06-05T07:30:32.720763Z","licenses":["agpl"],"lastModified":"2026-06-05T07:30:32.803218Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"TICABDqpfHqgd+cLD9Re/ZMHlVIY6s4d6wk70wwC9lf1lxiISgoQlhQ7H7P1smOeNTAu7vmIKomQoa5b0kV9G5KdVitv2qbQbT4vBT8HvJ/ve5M3UeuShaFxsrku7N7oiwQg200Shzs6XWkc1mVXJR0dMxkHvIG6mzXniSmQlpUnXoQchw6xJ3cFjNRmUF35KWhIUiqt1x2Iu9G4emh6haqndRg5iLRvwgK97AS8Q1b0mtlDDtl9VPhqtWJtwLhxpNmPdywLXLzKHgpbwwlGwe8nrN44VsaUVNOK7pFsVzEy5g04+B/fD0N6PqFIX+sEtIRdePwgHDifvH6b0aYUwuKt+N9DaQSNBcvo7XN0TXolWNc7Tdv+qyWTwQSeBI9qQ1NwTdhA5zpnVMGwOurgfGM5g154NFrpmzy8DJzS2NQf/7KqsxUkkuLlADFR9hZFY/2d55ZYMDgjwWAkFx9ksfIynkFUIIWWrvlNvM3ZV2p6YzGe0oC2FSCIIm88NoxLm0ZTlglvzOxNCWZUKaBiKCFjzg8KDuxn/cU6iYIgLMGMYnZpA13ow8SYPZxT3RShfETGDRHUAlGD/4tNi2ulJQaQRa899ujyoe+4jB3Es1spTpAl/ZMHT94RaEvnTYGI9ATFxAMrjkEfNGkpLsuAgGlriLp+as52wsVrLP6owOw=","translations":{"en":{"changelog":"## Added\n- NC Assistant Smart Picker integration\n- Nextcloud 33-35 support\n\n## Changed\n- Rebranded from ONLYOFFICE to Nextcloud Office\n- Replaced jQuery with native DOM and @nextcloud/axios\n- Replaced jQuery template picker and download-as dialog with Vue NcDialog\n- Renamed OCA.Onlyoffice JS namespace to OCA.Eurooffice\n- Migrated to @nextcloud/files v4 API\n- Register TemplateFileCreator via RegisterTemplateCreatorEvent listener\n\n## Fixed\n- Preserve percent-encoded URLs for createUrl and templates\n- Allow public-share visitors to load the template list\n- Bump firebase/php-jwt to 7 and handle 32-char key requirement\n- Accept null $version in CallbackController download flow\n- Publish Assistant availability via initial state"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0V1cm8tT2ZmaWNlL2V1cm9vZmZpY2UtbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvZG9jdW1lbnQud2VicA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0V1cm8tT2ZmaWNlL2V1cm9vZmZpY2UtbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvc3ByZWFkc2hlZXQud2VicA==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0V1cm8tT2ZmaWNlL2V1cm9vZmZpY2UtbmV4dGNsb3VkL21haW4vc2NyZWVuc2hvdHMvcHJlc2VudGF0aW9uLndlYnA=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Nextcloud Office","summary":"Nextcloud Office app","description":"The Nextcloud Office app for Nextcloud brings powerful document editing and collaboration tools directly to your Nextcloud environment. With this integration, you can seamlessly create, edit, and co-author text documents, spreadsheets, presentations, and PDFs, as well as build and fill out PDF forms.\n\nCollaborate with your team in real time, make use of Track Changes, version history, comments, integrated chat, and more. Work together on files with federated cloud sharing. Flexible access permissions allow you to control who can view, edit, or comment, ensuring secure role-based collaboration tailored to your needs. Documents can also be protected with watermarks, password settings, and encryption for added security.\n\nThe app offers support for over 50 file formats, including DOCX, XLSX, PPTX, PDF, RTF, TXT, CSV, ODT, ODS, ODP, EPUB, FB2, HTML, HWP, HWPX, Pages, Numbers, Keynote, etc. Seamless desktop and mobile app integration means you'll have access to your Nextcloud files wherever you go.\n\nFurthermore, you can seamlessly connect any AI assistant, including local ones, directly to the editors to work faster and more efficient. This allows you to leverage various AI models for tasks like chatbot interactions, translations, OCR, and more.\n\nWhether you’re working with internal teams or external collaborators, the Nextcloud Office app for Nextcloud enhances productivity, simplifies workflows, and ensures your files remain secure."}},"isFeatured":false,"authors":[{"name":"Nextcloud Office contributors","mail":"","homepage":""},{"name":"Ascensio System SIA","mail":"dev@onlyoffice.com","homepage":"https://www.onlyoffice.com/"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBTCCAu0CAhMhMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjYwMzI2MTQxNTU0WhcNMzYwNzAxMTQxNTU0WjAVMRMwEQYD\r\nVQQDDApldXJvb2ZmaWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\r\nuZjYcGQdD0jHld7Sps+QwqXtj92r+Xr8KuUiiS9xrUNLqaH6hNOZBgxH2DYVtchI\r\nYzdD75KjrqoeTlvdzNMCHYRCR3MhKfKnlmfHZRTMHixgTuEQBjNQtBGH6lEFB+MR\r\nxjQXYxjn+5Dr7KYKpV/t27LErJUpivMay1yJ5p6jGzW+vyVL4989hHLR9gTc/K78\r\nv1GbBhPNkO1QI6w0fGLqkcrHmltRA5W/18FFE5nCA0Cw18FGQOnNjf6zcQCQUtnk\r\nTIutlZWolFK3m5OrsYxJvlwuVuhDTG2B1ZRTgMiWeyyLPMSiV41QMihsFTRzeHO7\r\n7gEnMVcuUOrxotREoMsCjLNk5dHZt/m9IkXbZM/7nKUt4OwwPcUcLHkwFXfOUbTH\r\nBQ9w0JTeW0GzCpG8R0fKA5+nMFT7/ng9peFb6k5arlp/ArNicQPZe0uQgen+qXfz\r\nybqpoiRbJ1Eale6POB8nqHby1mbF2rXFg5UYaGDrI6Ts/XTsygk+G5cKa49erSYC\r\nalpjCogCwQh1H0FC5UUwxPuPBtUwnqTFI8JhYZgXDcNcQJp1GvdnwHBDQRQVQiBR\r\nHykdKqWbPYWjUZH50elVmv8tStq6+3e2dPO0AUHY7j91VOkpZSXK9nELMbWoHWDc\r\n20CdmOOzFjcBk9OHP37dhxiWoHPcbwNBcI/JPNRpIGcCAwEAATANBgkqhkiG9w0B\r\nAQsFAAOCAQEATr2OFjV6MswzVe2xIVQwszFwP3nEB5mVhavDK4vp0RyhiuzRgE7t\r\nNXyi1Nr1C/3LkAcOIb50ahAov5Y+Hxa0vyY955HPgvufitqn3kJK/Zrjgn04pSNa\r\nKXqLibeeCWNW8gYIkCD5ZMAv56FJwiedtLxtvLpYGuhHQ5YYNc3/UOSwYxdW/pGI\r\npk7vXDwZJCWccalXXYljc/IdLtje7CDFdpaN0VMbUg5goOd8QnaJoQF68YSHiXqJ\r\n29cYWkWeZtgl+wpQVhL1hbttakGuK4hDvdp+eV/inLoBevLFD7NJlGi1Cj/WiJk1\r\nwhhBm1hV5zdyoDzIvsng/S4FxlJLuMMQmQ==\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com/c/support/office/195"},{"id":"end_to_end_encryption","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/end_to_end_encryption/issues","website":"https://github.com/nextcloud/end_to_end_encryption","created":"2017-11-22T12:21:48.803676Z","lastModified":"2026-10-10T16:53:08.834612Z","releases":[{"version":"2.5.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v2.5.0/end_to_end_encryption-v2.5.0.tar.gz","created":"2026-10-10T16:53:08.826439Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T16:53:08.878030Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"IuGDXMVMf6z508uVJDqjnaGozAN9dTUnoYDz9OE+l9n2t8FcQnuvse6IDr5+MvE2PlhuFh/GyMDeo7/cIxug67x1QZLn+Kkxmxg1t93RiNY5Der1Z6GfZsptbBTgcUi2LnVqaNy7K+6CPoOLVxV/l+3ntOI2OBU3WWgRw5ANerfLfok19vIO/6azgCsb8/dudu/JFq1uYkKda9FyMBRJHZYmwcZNH8kUBV9P1MeVxVsJGl0m8bmqgr9PHOshBZjN3/Afvuim3zegClKvOJmremk7Ac9/sEu+HCAHWodsw24vlFwkoifYGyCt+c6dTQ0pii11hkrVVflp0WNXQX3ld2DoN25ro8OEG/qC3cId/VoaxIkbqQLnlehHRJHwJIOfp83GdsW7LU4LyRQ8/FqNcCq9LvQfN80cvJnTB+o3MU9ytdV26ElHQR9jV5OWGNcvhx51vAaWqJG08lD8xk9dSVqZdLbOTYea/iw3VReK0Yemucuk9sSHQFX2RtY5vIzMfhE2OpivXU6olsO7VhT0KKRrWyLhiBhnRO1o6RtB5fioCsJ0OuSQ0jvMM2jBnWNSAEguTW5fHF7CXhe3VjwK7d4N/sLsiejg4HbMohVq4LtfBoLzUMN6lCXngcWFz+P3DkGYuF7UT59m52Nqrg0EABQ3r71vVmky8x8kpLMMG5o=","translations":{"en":{"changelog":"### Added\n* feat(sharing): allow end-to-end encrypted shares by email \\([\\#2192](https://github.com/nextcloud/end_to_end_encryption/pull/2192)\\)\n\n### Fixed\n* fix: properly handle shares for v1 API \\([\\#2191](https://github.com/nextcloud/end_to_end_encryption/pull/2191)\\)\n* fix(filedrop): tell the user why an upload failed \\([\\#2206](https://github.com/nextcloud/end_to_end_encryption/pull/2206)\\)\n\n### Changed\n* Updated dependencies\n  * Bump `@nextcloud/vue` to 9.13.1\n  * Bump `fast-xml-parser` to 5.11.2\n  * Bump `webdav` to 5.11.0\n  * Some sub-dependencies"}},"signatureDigest":"sha512"},{"version":"2.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v2.4.0/end_to_end_encryption-v2.4.0.tar.gz","created":"2026-10-06T13:55:12.780250Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-06T13:55:12.819450Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"mDNITeEkb3qLhDx9uiTAHZyBcdIXRgXrf/EVmT2+lCmmTQenYJiPZosLQYhN/hGnCusAJXVYUhBNSopWL9c9kTkJSdMsTEL1EPi0drzP5CVn2EPDn/peMG73cHiyxypix0SOe13J7sBGY0auWPzT22ZmbJEeP/AlRV2CPX9MkPZEZyOAYTUdivi3Mc4440poFsqqQFZMokCw6y/8NdvmNjD2d1epcFsZtNm5LY4nmwx5SXeEHozr/pnVJ0EzG8lQrNyv6Xe6t6SxG0Dupn8e4kVudtzMIElGB+ZFFWyrS/2Xyn51dSOw6OnPBj4j+ffI0/1+iOO5U/Sn4R6Keph/DxfdqHYsxMaN7qONOGy05/uyTVUXIaesyX/PAtQTH585X0nyJ1HMV0wHAm1+rc4og6A6WN0t/qgsyIEEV8QN4f0+qm/vz4d3Dn5dS6zny4/le6858ZZnDBJfyKPMi//SPKsBXOG85OUErUqfb9q2ubYtLSVXRiTBM+4Dp++oTVECuQnjM8M1XTHKwNrGqlQkQaU27zoOEmuoLCd4aVi4On2foE4QK4JpV6ItZqHyy/Q98+KBDgToOUr3ELjAE5jIilwEv1Ff9hoG2Fy1GIJ5R8Jxyxl5pfNabKm2Ni5rJIyF0UkoK9PO7C9+2SJlrC4/iQYhpEYvKMUt0NlvSzps48w=","translations":{"en":{"changelog":"### Added\n* feat: add setup check and occ command to detect v1 metadata \\([\\#2151](https://github.com/nextcloud/end_to_end_encryption/pull/2151)\\)\n\n### Fixed\n* fix(metadata): encode metadata and file drop entries as UTF-8 \\([\\#2152](https://github.com/nextcloud/end_to_end_encryption/pull/2152)\\)\n* fix(sharing): show sharing status action for encrypted folders \\([\\#2163](https://github.com/nextcloud/end_to_end_encryption/pull/2163)\\)\n* fix: add missing audit-logging for important events \\([\\#2150](https://github.com/nextcloud/end_to_end_encryption/pull/2150)\\)\n* fix: disable viewer where it does not handle e2ee itself \\([\\#2154](https://github.com/nextcloud/end_to_end_encryption/pull/2154)\\)\n* fix: properly handle COPY to store displayname instead of UUID \\([\\#2160](https://github.com/nextcloud/end_to_end_encryption/pull/2160)\\)\n* fix: ensure filedrop migration results in unique names \\([\\#2186](https://github.com/nextcloud/end_to_end_encryption/pull/2186)\\)\n\n### Changed\n* Updated dependencies\n  * Bump `@nextcloud/router` to 3.2.0\n  * Bump `pkijs` to 3.4.1\n  * Bump `vue` to 3.5.43\n  * Updated various sub-dependencies"}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v2.3.0/end_to_end_encryption-v2.3.0.tar.gz","created":"2026-09-28T09:57:25.075341Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T09:57:25.128240Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"MzDoRXTGJA6qyOH66860Ko8E7bzutZuA7plpB+4IB+bgSpFoR/BndVN2HkcpDVekWWrjbaCsv0bztnb75UAjRruLOlEigvdsvE70VqhJqseTWboaxHD4dNI4kRDAKiaXqneulgpeCPDsUPyPpG1hyGP91NM+ODCTksgj8QapVaL5ts8+ZHoFnSHGyQmHhUKy94yghWtQrJG462nSmvEQrtJqByqxllD1wK4DxT9za8FhdrEAboQN1bc41gcnS820voltD3MOPdpP1rmnDKDbFa3us2MJ1HT5HRxXg1mQoz/JvVISZV4KVj5OfKrUxEZF+dNLr4UwICjWcLaA5D+xQI4EmmWEghL9/+SwOON+B3LRPxZsPhFMexJhhDIHsdmWNORfB34uLvRdCkcetHs6VfVee5Yzi6l2tqFvDdifPsEpu09u3ZL1QtEUrqghIni+aFz01OoCaZgcMaWnml2XLnxSDz+iCQzZaXdgsb0ZkxZc2bR53J+ge5SI5vlLX7EExTva+bT5VEi0790IjSwqhczMyjdXr5CugpkFFMDAx0AsiJoooYrdk4XD5kiBYCuAy61souWPdqXm16pKAtPBO0/gwQQ2Y7HV6fav2MfoG6RvHCl101sEwVJDsyBmdFlFNDddT+vhtNeHSga4pAKGwTZnTcX8E5KF25T70yENcEU=","translations":{"en":{"changelog":"### Added\n* feat(filedrop): add share password and note to recipient \\([\\#2144](https://github.com/nextcloud/end_to_end_encryption/pull/2144)\\)\n\n### Fixed\n* fix(dav): multistatus response with property-level 404s \\([\\#2070](https://github.com/nextcloud/end_to_end_encryption/pull/2070)\\)\n* fix(metadata): defer missing metadata handling to controller \\([\\#2071](https://github.com/nextcloud/end_to_end_encryption/pull/2071)\\)\n* fix: clean up legacy metadata when deleting files \\([\\#2091](https://github.com/nextcloud/end_to_end_encryption/pull/2091)\\)\n* fix: delete stale intermediate metadata signatures after rollback \\([\\#2093](https://github.com/nextcloud/end_to_end_encryption/pull/2093)\\)\n* fix(webui): keep propstat as xml during interceptor handling \\([\\#2094](https://github.com/nextcloud/end_to_end_encryption/pull/2094)\\)\n* fix(delete): serialize metadata updates per folder \\([\\#2131](https://github.com/nextcloud/end_to_end_encryption/pull/2131)\\)\n* fix: refresh files list when migrating filedrop files \\([\\#2133](https://github.com/nextcloud/end_to_end_encryption/pull/2133)\\)\n\n### Changed\n* Move away from deprecated `RedirectToDefaultAppResponse` \\([\\#2096](https://github.com/nextcloud/end_to_end_encryption/pull/2096)\\)\n* Updated dependencies\n  * Bump `@nextcloud/dialogs` to 7.5.0\n  * Bump `@nextcloud/vue` to 9.12.0\n  * Bump `fast-xml-parser` to 5.11.1\n  * Bump `vue` to 3.5.42\n  * Bump various sub-dependencies"}},"signatureDigest":"sha512"},{"version":"2.2.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v2.2.4/end_to_end_encryption-v2.2.4.tar.gz","created":"2026-08-31T12:50:19.705861Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-31T12:50:19.763695Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"AQgi3XnE/8c/fK0kkxzjLmK5ukdvLQy8prxWb1ZeF55KRQhG74EljQ0C4NZGQoHQtgib+WT8U2bC5NR5HQD1dvVtpQItoTbeReLXobmpghRcFSxAK9SApM0mEqdBjlIp+k1VOdbjwUGsso6KY49eOha90Gvc22zOc9xKcf1MNXW4pey0YtQjDhbDwUqGedvNWHXTOlfuF9mhA7uFMDqwOB6/ZO9Lt1A4zET0zQFigb+UzC879pPTuswn7nNDogY2R9bzDDZ/5aCm8R7wQebsQkT/aZ6S6g/u3eEJZe9F7hOVwrH7HjqMIszaJ+b9J6JXIeQPzX1dk+i8gojD8F+Cht+H3Yema+ci2VxvL1M9jNWupjaZnh+rA6BP3RfXD2/2ZbCiSvuYdRS37V3biu/4TtIHX8iP/veodCL3CrGTL1pLFFHBUEW9WvAKho8B6tIJnMgrcpu+xgdA2hktG7O5WyK6zrQg8hCZtiYlV/j2WPyClg1GlHosAwkIbawqmEX5jANesLeLwRx61Mkw1AjaZoUKhj4sn3hW4uUeEtPYrxuIOZI0pNe1VBMVCJ2aqvaPdnz6WOF7fXcgmSpgDJDGHIazbuMfPlar9LgrHWPVnCPFU2LuUNb/paMgXpBcBloLblkdiKClHvNM5wuS44GI5eXc5w4E1Umx0rC0hUUKEys=","translations":{"en":{"changelog":"### Fixed\n* fix: add 2.1 metadata version support to \"legacy\" models.ts \\([\\#2038](https://github.com/nextcloud/end_to_end_encryption/pull/2038)\\)\n* fix: align v1 measures with existing measures on v2 endpoints \\([\\#2045](https://github.com/nextcloud/end_to_end_encryption/pull/2045)\\)\n* fix: handle filesystem root in encrypted file checks \\([\\#2049](https://github.com/nextcloud/end_to_end_encryption/pull/2049)\\)\n\n### Changed\n* Updated dependencies\n  * Bump `vue` to 3.5.41\n  * Bump `fast-xml-parser` to 5.11.0"}},"signatureDigest":"sha512"},{"version":"2.2.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/end_to_end_encryption/releases/download/v2.2.3/end_to_end_encryption-v2.2.3.tar.gz","created":"2026-08-19T09:16:44.882838Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-19T09:16:44.944054Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"bTjj4poqoANHikX0fkGfUbc+8FnpdfsydKhXBwqp3XGDDHvPG0Y32whEvJjyxToPtnDy+/LWeXMS+jm0PyEJq80cQi8usvhErBEdZNrL5h3DSqukpHM6CgUNfLF4gT8zzEEhvEd5Q31BSQ2nYk7oRj/+6vdvSArDEEWYwSDBVE/5XIQcEgRH5iyKdDCpQ9wj3Di4WlWZZBMUaULZOguO4BfHMG5Siu5fhNdImTQF+3we/a3MqyBrrBcFv8huN1OJ2m/URhVXdTTw25xmt/0gelenplMO/AS6WMIfb+qXncntD13KWOslsxfelzxBjlugRXgm7CQ39IWWraui6BaL0rEvdPbwi0Kf6M7Gng18jGr7tuNpkE6TP94U++wGJHBMk0rr+OgRDYg7zOcQDBEiAQ633WmJ6o6M+qLzukfkMKC+XFeBK2qLZHXmcQp6CusnWwfJVmxHCKWkIs3UUp+G2JFS4T/0JjQcRAFu4B9//OQEpUAyX5NGI8ckkaRST2hezdbz9YZAWI2AkX2tIrG7KBPoVwjnHS6qEXSObM/Knuxm0x/CCXSqN5gduhuCJiwMv/FtDx8aryMcSK5jtlCyW8oKdkpOEgRv+7EGWRpCPZg/QhenOaDPeowjrO/ZvHQNo/XPCQZA/hpyTig6fb+CqWa7drSr5KSQs9mij0yNSFM=","translations":{"en":{"changelog":"### Changed\n* Added support for *Nextcloud 2026 Summer* (Nextcloud 35).\n* Updated dependencies\n  * Bump `@vueuse/core` to 14.4.0\n  * Bump `@rxliuli/vista` to 0.5.3"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9lbmRfdG9fZW5kX2VuY3J5cHRpb24vc3RhYmxlLTIvZG9jL3NjcmVlbnNob3RzL25ldy1mb2xkZXIucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9lbmRfdG9fZW5kX2VuY3J5cHRpb24vc3RhYmxlLTIvZG9jL3NjcmVlbnNob3RzL29wZW4tZm9sZGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9lbmRfdG9fZW5kX2VuY3J5cHRpb24vc3RhYmxlLTIvZG9jL3NjcmVlbnNob3RzL2Rlc2t0b3AtY2xpZW50LnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"End-to-End Encryption","summary":"Enable client-side end-to-end encryption for your most sensitive files, ensuring complete privacy with zero-knowledge security.","description":"## **End-to-End Encryption**\n\n### For End Users\n\n**Protect your most sensitive files with strong encryption.**\n\nThe End-to-End Encryption app gives you complete control over your data privacy.\nWith this app, you can encrypt specific folders so that only you (and those you trust) can access their contents.\nYour files are encrypted on your device before they reach the server, ensuring that no one—not even the server administrator—can read them.\n\n**Benefits:**\n- 🔒 **True privacy**: Files are encrypted on your device and can only be decrypted by you\n- 📱 **Works across all platforms**: Fully supported on desktop, Android, iOS clients, and as you wish even in the browser\n- 🎯 **Selective encryption**: Choose which folders to encrypt\n- 🛡️ **Secure sharing**: Share encrypted files with other users or even secure public upload using the encrypted file drop\n\n---\n\n### For Administrators\n\n**Enterprise-ready end-to-end encryption infrastructure for your Nextcloud instance.**\n\nThis app provides all the necessary server-side APIs and infrastructure to enable End-to-End encryption (E2EE) for your users.\nIt ensures that encrypted data remains secure throughout its lifecycle on your server.\n\n**Technical highlights:**\n- 🔐 **Complete API suite**: Provides all client-side APIs needed for E2EE implementation\n- 🔒 **Secure FileDrop integration**: Enables secure file sharing with encryption\n- 🛡️ **Zero-knowledge architecture**: Server never has access to encryption keys\n- ⚙️ **Group restrictions**: Limit app usage to specific user groups if needed\n- 🔄 **Background job management**: Automatic rollback handling for failed operations\n\n### Setup\nThis application provides the server-side infrastructure for end-to-end encryption, but it requires client support to function.\nTo enable end-to-end encryption, users will need to install the corresponding client-side app on their devices (desktop, Android, iOS) or use the web client.\n\nUsing the web interface, after enabling it in the personal settings, allows you to encrypt files and folders directly in the browser,\nproviding a seamless experience without needing additional software. But also requires some kind of trust in the server as the code is delivered by the server and could be manipulated.\n\nOnce enable through clients or the web interface, you can create encrypted folders and upload or move files into them.\nThe clients and the web interface will handle the encryption and decryption processes automatically.\n\n⚠️ This comes with some limitations and caveats, as only normal file operations can be handled.\nMeaning that some apps in the web interface do not work with encrypted files."}},"isFeatured":true,"authors":[{"name":"Nextcloud GmbH","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.25,"ratingNumRecent":0,"ratingNumOverall":30,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEEDCCAvgCAhB5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMTcxMTIxMTExODA0WhcNMjgwMjI3MTExODA0WjAgMR4wHAYD\r\nVQQDDBVlbmRfdG9fZW5kX2VuY3J5cHRpb24wggIiMA0GCSqGSIb3DQEBAQUAA4IC\r\nDwAwggIKAoICAQCwHqGlgzWV3u/ASt60irDMLMVIjiYY2q8x95WveaCz6hzojNaD\r\nyjNJWPXid4Rs3E4TAPPdEaS7UGzAx/MJU5yy/k9vV1iJl+3E6I1UsMGDdHSdUf8E\r\nCjop7KOReeHMqnpwo4+Uwu5kPSuJcMK3bsYsx0NGdYEUGHNNhaCJJwGpalL07oyH\r\nURA+ZIDkkwZricgxqnSKMLQ1pzoSzC/WGWLQ1X+FgCI/v6zwWmkCWqgvII6XWoYr\r\n1iqFAUfnmPsthnoYpwAW8b42/00RdLGvAvbgtjl0X4tZWC1g3kdYYg6Dx03ZoAN3\r\nEe6IMYWSILMEbcYD4UMUNFUFnpL0h/Skf2Lf2PB2oYoy1TeBLwSY/xty4+bFrLzX\r\nxmCZmhCCnz7xJExYIeViTCIUV4n/lwQa1hfZKgJyJK+8WaUFljLgi7PJjgeyGst5\r\nzFX0+j8aAIMB331ENFPSGFQfUlISlUN7SaVMQCZjZCJfKLFTeK1p8AnWjw1oxiQE\r\nsVBshA2vi6kf6CUXd8ZBdWaD7tF3CyvKelLtTWdE6XO5VrQh1QPxJWqUwAz21TRL\r\nG6j6O0B8f6GiQkKEH9gIdF78GwNjEzLckMlfPqKJfg3PuDKo+iAIee9rCwu4GFkC\r\nhSSVjw7quCFN9Lbr/kvPUJ5jHjpPSqRtJ6GgBRZmsYKHYOAiQvxjuwfyTwIDAQAB\r\nMA0GCSqGSIb3DQEBCwUAA4IBAQBrM0JhwjnLHop4mlnSV/YR4eOrrDxKVCEX0uqK\r\ncTYpcMU3mN5wZpekqVgYmb9FCNVjvE9aolpZfOTycn8KRhiAIfX1KicWsTjVDmlK\r\nRYzIxZHb+Z5bJIc2c/EVE/Scjo1CGtEEWR4DuZeF1jkPJgbjjE8qNoQI0wcaIUxL\r\nrnfMwKZhfwI53fg2pu/RUbY+vlNbCizwGXD2GArmJcIo5M6NOIEPCEe2p2FJzH1G\r\nddZZkKlTikm2cSB/DHQzdXUH383M3UpjSsicMHb4jCvUnkwJLI4S/isKlBNAOTUY\r\n2TByHnyt3TP4gsJdSA/IIF8pk7xynwz2592mV9LROo6GbR5c\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"batch_renamer","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/k1x9r/batch_renamer/issues","website":"","created":"2026-09-24T13:12:27.049686Z","lastModified":"2026-09-25T12:58:23.279852Z","releases":[{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/k1x9r/batch_renamer/releases/download/v1.1.0/batch_renamer.tar.gz","created":"2026-09-25T12:58:23.274409Z","licenses":["agpl"],"lastModified":"2026-09-25T12:58:23.315688Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"IxPb+ehobN7JNR3u5BKCXJKBI8NRmfmScJ8mGLQU7qN/Y4Hofw5YF69dJ4pBgouz\nVKetfqgeeAQFU3f9T5gr2U7/6NnHIDYTnHkjEM5aTvNOjyhEsnILETrz+XUf242i\nk3/5iW2ly2OxXeeW3dKMzGItOfZTMhjZI5YrnZR+OdvvM1sh2x2p2i6ZIa9F7KBP\nMnLYb5+Rz/hsQf7Yg6zHu1QpfetQl61+4C9OiF0P24/ZC9MuYK+Orr4u1LYBiDBU\nm6eXw/ATxzmfYlCWYQQHbHba9cQFhu9goNuMDuut5lG123iKMpJNNE8zWqRzb96M\njTxApS2Kh/oMujmjf+SvXDGFeXy3/xJ/Df+A/sOr9sxJVeil8szaYk/DpsN0XaUY\n7pXdGjxWjg4xlzVy0tqR8gD0led1a8ry+kPKzbZ9M/yCk6wQroWhm0Et0S5+OgTo\nqKFd1WV0Gq+nRbzxEIkOzerqCOHyffQFDSPcXcvhagF844OFTlGDZhNOJ9xluFpZ\noCXasc12Ss8FTV5OrLQsf5iG3QEMJ2lyz+JO2n+T0cPfG4+d2HSFYkA8rbw+5GRv\ny/UF6R8UuwoqGt3YchGjtKpA0EHF2AixvcvqMZyc8YfmMw/nLDRS+mwpESJOjIyb\nAidPDrVA0OmXJSrHOfzULXAC9ES6IagIxB77gnEOjVc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/k1x9r/batch_renamer/releases/download/v.1.0.1/batch_renamer.tar.gz","created":"2026-09-24T13:32:52.733657Z","licenses":["agpl"],"lastModified":"2026-09-24T13:32:52.783133Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"GMP0hw1dXmQxP1+ESjJqucM+V/sBwpsh0KvwBKpSFaq/JpanqkMsPK2jUGBc0N2Z\no8j5A3dj+PZ2lF11remo/i43SuUipPmeTtAfqUOBVSqIh5Ik4JfpOX+E7XMgGgQ2\n80RJznHsm7Zn0evnruDF9NBLahiENf7zav0zPSznjLgTC2NDI21kI+QDmlVaSOp6\nI37Q8qxjHfenO1KF4M4JyPs1hn6TeWGS+Krjcq8E/DdneB6CXqRMV6FfKTIa2Uu/\ntpxPn5mf2aodFYf86aCUB+itHA35upYD2RGmFqUOc5+OpsQMz7EpAUvF51lWbEt+\nvhB8EVkBAnL1rgAd5Nhk8oJ3Qf9sBpdmvg/u8eu+ilc5+haXFb0e/gUoYnXP7OQ+\nFiZhN/tVPPM9oCWUm994pkyH7RGQHxvB9XFip7omJXizb7ZaGzkRIWZfUx8ga6oV\nNt8iUIVMM1e594dT005wUJFbn6+qdyKrwmc/D5Rew6tgDUvsGonwk9lWkzwnMw62\nNHwZAIAZNyurACKGl9ud3zXuF4x6QinbpzmVimtuk1NFk2E9LD+/7u6V3HxaB8HZ\nzuBJgUbxXhZcfM44lgXE6GQqKECprYTrwLkgdoVfq8XxHLjCgYm1mu/b4pfZEMOQ\nmjWfXtbSx2VdFiNv4ipZY5ZJVpPZ3BLJZjnRt/biy3E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/k1x9r/batch_renamer/releases/download/v1.0.0/batch_renamer.tar.gz","created":"2026-09-24T13:16:27.123716Z","licenses":["agpl"],"lastModified":"2026-09-24T13:16:27.363983Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=28 <=35","signature":"TZYy7XMTgmyn1nanGOiM7VjeMILKnqXaAkrjx6Z7UP0n8KfsU4XR+rdp1xbRIJKR\nUnDhdJvYz/zjayOlfL/k0+01FegA536uWRBEI2n07LvGTMPmARri1OdQxMHSH4gM\nRZMPWXZeyiV79Nx/5gO75JP0P8q9BM75l8HmJJp6r5+hPup12DWE3tiJIxO6isSW\nD5TBCHxz7fyNp9jNnGpdPGT9wO7BMpN7ceYP6cmdd5naxlJZCTk5TxAMySFfYv7I\n5jMOtNfS+PYjYNJXzI3jmktBC4pbV+193Gt3jLA9Vyx8Ixa4lmR9YLwmy/q6NnHl\nsgsRM9R9754KniwZGjfxGrOw41nyMdTDBQM4qnFe9XIB+8OzJLCx1nTX13vsHQWw\nqia2M3jfgZkZy3ILfJ8Eg3+jek50wTjYSRnO1zgGEfdpT+Q5oraVTAuwDceJg19I\nK3u8/VCnYg4RtxrGYiUvCpdOOUjSYGDDClMqAo0Zq4GjMk0FpwtJfJCZ4nXHWSn/\nYytI84huMMT5a9bDZsn9SXNz1LKfoKU4BgDWubo8vZeDgYCZmEWkzg/MbeW9e4ZB\nRPckWLbLpusjajqyG6xUqWb/EWUCPeEpNfVBVWlZVuSKtc8XqmoRnqv6/ERPjLOT\nwDlncgCKcahrRSKfM799F2uUTLdjkb2sk/nuG+KUg/o=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"}],"screenshots":[],"videos":[],"translations":{"en":{"name":"Batch Renamer","summary":"Batch rename and number multiple files directly in Nextcloud with progress and undo support","description":"Easily batch rename, renumber, and organize multiple files at once directly inside the Nextcloud Files app.\n\n### Key Features\n- **Flexible Pattern Numbering:** Customize naming schemes with hash placeholders (e.g. `Photo_###` becomes `Photo_001`, `Photo_002`).\n- **Custom Start Number:** Start counting from any custom number.\n- **Live Progress Bar:** Real-time visual progress indicator for bulk operations.\n- **Change Log Review:** Scrollable list to inspect old and new filenames before finishing.\n- **Instant Undo:** Revert changes with a single click if you made a mistake.\n- **Conflict & Collision Safety:** Two-phase renaming prevents accidental file overwrites.\n- **Multilingual:** Native support for English and German.\n\n### Ideal For\n- Renaming camera imports, photos, and images (`Photo_001.jpg`)\n- Organizing digitized PDF documents, scans, and invoices\n- Sorting and sequentially numbering large file collections\n\n---\n\n### Deutsch / German\nKomfortables Durchnummerieren und Umbenennen mehrerer Dateien auf Knopfdruck direkt in der Nextcloud-Dateiansicht. \n\n**Funktionen:**\n- Flexible Ziffernmuster mit Raute-Platzhaltern (z. B. `Bild_###` zu `Bild_001`)\n- Frei wählbare Startnummer\n- Live-Fortschrittsanzeige während des Umbenennens\n- Änderungsprotokoll mit vorher/nachher Gegenüberstellung\n- Sofortige Rückgängig-Funktion (Undo / Rollback)\n- Sicherer Kollisionsschutz gegen unbeabsichtigtes Überschreiben\n\n**Ideal für:** Fotos, Bilder, Dokumente, Rechnungen und Scans schnell in einem Schritt sortieren und fortlaufend nummerieren.\n\n*Keywords: batch rename, bulk renamer, mass rename, multi rename, file numbering, renumber, sequential numbering, image renamer, photo renamer, Stapel umbenennen, Stapelumbenennung, Massenumbenennung, mehrere Dateien umbenennen, durchnummerieren, fortlaufend nummerieren, Fotos umbenennen, Bilder nummerieren, Dateien umbenennen, Rückgängig, Rollback, Undo.*"}},"isFeatured":false,"authors":[{"name":"k1x9r","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhQrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTE1MTI2WhcNMzYxMjMwMTE1MTI2WjAYMRYwFAYD\nVQQDDA1iYXRjaF9yZW5hbWVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEArhd60Foxv8rtr0wHM1d5OXQSB1QhOQPwXi6hrG8f8pvpMS4EfaLng067F4Oq\njldACfcuMG+M6LwqFjpej77vu25r6bmM4JNXaQrY0Z+R/cY80Nic4Y4RvQNvN49n\nr6/aIo+ezW6Jy5uDP1bbePSsFryPuF4pjL/bQzWyF7wq8W/0QUORFCbwy40+KtPV\n1elGaxWBMlxnFukFPm2b6hDdk9tWAxZ/uyLhxvbhZWKMp10KG5bGeU9i7ryEbATd\nKOmzop38aSSuoQhEth3UA2vcJE96tkq/mTd7+4RdHZbp7EQwkfa9V1K84kLRRXQj\normPvSUV5KsoD1Hx3DvnhOs+d/UquqsgJq1Vpx9oUW3VcsOexP+cBYz2nMO0/g5p\n40ZzLJzQXxazbKBib2nO7RvIqM2NdoWV5lRP0utvOGHa/NLiwOBXG462N165bl5O\nYREqeAZrro2LsroVOd5fe+cQSdAxydirxnYpmpjj1P/2LsG75/8s5XNXY3G9FARE\nL/iCJFwXzGq6sjIH7RX0qJlbVs5umLjScy3g88/2rlikYDO2bJMonbINJfbpRTNT\nCIFzwkDJPXEygMSQq3sX+IZbuc7/xyB0/qXLbf8i23mGDSECecWmzhPH/kSmIVri\nCzCHdoBJGUfK0RiTxQJOJaEkyre2VISxLoyTPPQ0ZsCx6Z0CAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAlf3W4BGgZTSXjSS5DP1bDjpZH6wlSjtw5bsqdH2fclFIjjJW\noAFtBqUMEJBhx1avg9bU9OyUlU7Ye+d/ofFXrQ89o9Gvvz/Z/rJ4aOBvPB5bhyhZ\nOmH6DhX2Ge4oH7p7MhlRxPT/RAGbL+LsfCiks4hfK7Ojew8MwGpLsureAOX3P1YT\nX92c3SMZQdEjMprT/yPz7JP8KrwyGj7SERSlTCFbs4ZZQLgFIrECiGY/BBsbLx7d\ngTrYl5CUWsC2B9nfc+teRsjTIeC/XLm266PbUhvzvq3vdr4ohyxdOCEo7KfW3lIg\nAp2gf10+6WwsWdMibHvdiDBXar6g38M8h/9yiQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"qownnotesapi","categories":["integration","office","tools"],"userDocs":"","adminDocs":"https://github.com/pbek/qownnotesapi","developerDocs":"","issueTracker":"https://github.com/pbek/qownnotesapi/issues","website":"https://github.com/pbek/qownnotesapi","created":"2016-12-01T14:58:13.461781Z","lastModified":"2026-10-17T13:12:27.811263Z","releases":[{"version":"26.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pbek/qownnotesapi/releases/download/v26.8.1/qownnotesapi-nc.tar.gz","created":"2026-10-17T13:12:27.806279Z","licenses":["agpl"],"lastModified":"2026-10-17T13:12:27.877208Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"gV5OIXK6M/B0aoj2gz+2uaEhAykkSgvvkLl+N7Lg9Sba5AYzUwGgfkPu9UkV+w1N\nZQ5i84dnPENcROzb3QePbwtvdmh5lsfqvNjrEcuSoW2OuBAduRv8nK9KY/x3Tg4H\nBqSGFbBxdikSHrK5TFB5CnJGrt+3Am1jivxLR+MkMseaNrcKXvgpHXiZWl6G6LQN\nd/51NGds2a6ZDcCEkIaCQLXxuCYm97DYn8G3yXhovqEPQfWB4ETGE4z3MHmB3jha\niHKjgDOG1x5C0KbwHyHG2clncvi1ZYpu9e3bTzuV03iVHw7AaszRlJjam8AmZ56N\nduIhlpgQXNax2xIEPhN8k+ZbnaRyQZKBmoom+/o+lWHqqH4LjfW/H/VbIj35zsof\nIssDtiYd9KWk0da5FbJ/7F6B5exF6gQGDZqM2Gaycjfp2x/U1fQx//fD442PK2eP\nroemYeM+zgNZzlY+8pQySJmETE/5oRMq2RkwlyUrG4QwpOimAd+CN14noO9qRLxF\n7vp7/bBt91M1tRkTkdys9sGnR2v6nmdd1g7t6TrOKpHt0DpNJBjR54sdDKDXxWAm\n7/ADhhRp2zZuFq4Uh0ExPOf5sAi3Pa0g3dQO7sfapPoMQbYT/7857G6IZyDVFb5d\n9bOG7/ug/aThvuTB/k9C7H4OPnlJNzrErFP/N+8jjcE=","translations":{"en":{"changelog":"- Marked QOwnNotesAPI as deprecated in the README and app description and recommended [QOwnNotes for Nextcloud](https://github.com/qownnotes/qownnotes-nextcloud) as its successor\n- Linked the migration guide with installation and client compatibility requirements and clarified that ownCloud users cannot migrate to the new app"}},"signatureDigest":"sha512"},{"version":"26.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/pbek/qownnotesapi/releases/download/v26.8.0/qownnotesapi-nc.tar.gz","created":"2026-08-20T17:36:25.366752Z","licenses":["agpl"],"lastModified":"2026-08-20T17:36:25.442069Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"WbvesVhBaMvw3JI46l5yMSmoBb4a+9yMNWS4gJfkhXSsDbiPurDJzpAyJODIhIQs\nBQyUE6yyOFZlOqinC1iu17AO1zSKKkhl6uRsMXzYudn8I5AyWTzUHdkwuRaqWz3h\nqv8eHdbnShkf0kTjizOD7w43d80qAecQNVoX5qMaNtxwzGNh/YXdasnS0QCZj7FW\nrcAkuYHxn4zfkXxY4KqKNYK+7k+QeHS4DF9bOkIgY4KISNvGdX5MA5a/9xrHhxc2\nwyvJVQq8vdVDZ17F6jItQf59G22XLRVSxSUtIUeOszl4nwingBCO+LhcwdiscVbo\n/2obVx+ONZd2pzMrvDwkqOgMV6GaY6rmqo/xMNeO/0hNw1fy0zIo2ddHsM+n+YVF\n7QHogXBFCwfIWM7OWOZwi6xhxpEqsvk4R7zW2rrBgJD4J/hQBvmSlttj8GfHRTxJ\niNq0xViid42hR6jD7f5mcYOGDnMJulNAep5klnajMHped4ekc65937MA/NQGfNWD\nmG+WBXz0UX1XIkF7t7l7WEygJRSn2YEgJ4DqQZONjOuKgqg+JH/xprDk0y4HygjI\nLFy2K84Fo8FPvy/t9xef16vvysX53F8rOe5I++MQ5N76vWhk+BN3vv1b3KEjlHJA\nWtTFAKx9uRH+1sTpaOZKNf6sAZPazrtP0aqhqGQMhWw=","translations":{"en":{"changelog":"- Enabled, fixed and tested app for Nextcloud 35 (for [#59](https://github.com/pbek/qownnotesapi/issues/59))\n- Updated dependencies\n- Dropped support for unsupported Nextcloud versions older than 32"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BiZWsvcW93bm5vdGVzYXBpL2RldmVsb3Avc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"QOwnNotesAPI","summary":"API for QOwnNotes, the open source notepad for Linux, macOS, Windows and Android","description":"**QOwnNotesAPI is deprecated.** Nextcloud users are encouraged to switch to **[QOwnNotes for Nextcloud](https://github.com/qownnotes/qownnotes-nextcloud)**, its recommended successor.\n\nThe new app provides the APIs for QOwnNotes Desktop and Android, plus a web interface for editing notes with subfolders and tags. Read the **[migration guide](https://github.com/qownnotes/qownnotes-nextcloud/blob/main/docs/migration.md)** for installation and client compatibility requirements before removing QOwnNotesAPI.\n\nQOwnNotes for Nextcloud does not support ownCloud; ownCloud users cannot migrate to it.\n\nQOwnNotesAPI is the Nextcloud/ownCloud API for QOwnNotes, the open source notepad for Linux, macOS, Windows and Android, that works together with the notes application of Nextcloud/ownCloud.\n\nThe only purpose of this App is to provide API access to your Nextcloud/ownCloud server for the [QOwnNotes desktop app](https://www.qownnotes.org) and the [QOwnNotes Android app](https://github.com/qownnotes/qownnotes-android). You cannot use this App for anything else if you don't use one of these QOwnNotes apps!"}},"isFeatured":false,"authors":[{"name":"Patrizio Bekerle","mail":"patrizio@bekerle.com","homepage":"http://www.bekerle.com/"}],"ratingRecent":0.5,"ratingOverall":0.7777777777777778,"ratingNumRecent":0,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhAiMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTYxMjAxMTEyNDQ3WhcNMjcwMzA5MTEyNDQ3WjAXMRUwEwYD\nVQQDDAxxb3dubm90ZXNhcGkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQCuIG61JydNy1sCcuArEsBr+tJbRjf73Q1xMdCFQQaezqGguVdhuNA6ZIRZizAo\nrio5FkXLXYm02I4Sikbw0wjQbPW3uLeaIItNjd+nL1TMeoIj8jyqdAkdndEf6S2Y\nnydc6v1v7x1T00uvNVOJZ41MNrqTXRy50bwFzfgssMP9DA31ZT529/c1UaFtyhQa\nOM6nqoe9R0Rf8yaNS45rG4YixzdENMobJq0G8aAZxQulv9wPZUVvCnuVSoxkadeZ\nLlcrQKusF9RzAtBdKDQWVpHf3Gi7gi6sXexVdMHjvLKJST6dTlemZJapjXObgo6r\nR4ZVBauPQTvl/ZKZkWD2kD77Ji+11LTg0qvBQ3I3BSvxwcOJG6Anp5Eira39giuf\nEhRDe/Ak50g8B99OmC4z9owJZ1P6e6N7EGz4eiGv4o7nJFdShV39506pnJucLw7A\nbcVBB/enf42cIup0H6aZrZ52VKYhqj37cV4s3NlCxw9muD7GeeTGMM3PKqlCW7zl\nniLDWV3TC4KVjiWZXy2DTVln0BGqdFniJQAY8gPs4uIzWLLCvh9o8tOj1xEUyrPA\nwWZ1SxiIE1Jmsa6inYAkNevyB9Mw9oLowQNnJbhsflxb8dIQqIvSKYXj6Av2DZr/\nvJwC+H4ygLPLImDtI2uQr+npwkgfKF6cNJ+G57ZmCvaH9wIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQADuCAiYcg8jbmJ3hcdddo1gmcPLqj3FPS/Jv+YQWZyZHZbQbxt\nUJOUmMAZKxuwESBktYIOrX2kVo5C0eNDJZ4EmZxUHTIcQGnXgRpEL6PoTKazQMDs\nF0hBQ5P0sglIo1LRdD79Ag/JhWkJtzs89IgSzUuZ0gSvF3c0jt7hTkDtt5ME9+jQ\nKmgT5P2vcveGQkUyHLMTrQb6aO8COHP49nQ6vg21uBFHIrvdYmBS84Gm1cqB9GTf\nCIliUNMoyI29ZWvxoFmeESQAyMBBm1hPto8KIP8QmzgCQM0msfZFrf/OmZKlnRhb\ntjczm51IDKhbh0z03BT0z10Uiz0AcsvP5SYi\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nddownloader","categories":["integration","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/NotUrNio/ND-Nextcloud/issues","website":"https://github.com/NotUrNio/ND-Nextcloud","created":"2026-10-09T13:52:44.637475Z","lastModified":"2026-10-09T13:54:06.622157Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0 <8.5.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/NotUrNio/ND-Nextcloud/releases/download/v1.0.0/nddownloader.tar.gz","created":"2026-10-09T13:54:06.611224Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-09T13:54:06.688564Z","isNightly":false,"rawPhpVersionSpec":">=8.1 <=8.4","rawPlatformVersionSpec":">=33 <=35","signature":"n/mgxdkNAnXJnNffNt9os/9TDVTjxmaO3d5ZhYWh9rCREhANbragGGiEaYAiFFJW\nwPQG17WaidSa5m4sJoHCD+gSuR+BOb8UU+1ggiThzHZB32Ea//319cLXdeP4JJBt\nujfJMhyR7oq4l2B2etUyeTxTBqXzEK7IGDQiCvAiM7dZPer+dKdlT/5crk2EIc6d\n1xNiuDznl4NrML2zpI6xp7UbF1HPFQpUYYYvPnVc60mgt+RoaX3y/hwZSql9ReX9\n5LTjLi0XX9GWPn+RYBmye1BwQYgVd1D6Mqm04MhFScb9TdeYzOtFWDHoZpTVlh7g\nDa146DqUSIgSD6EoZf1GyKvGQk+q5IMf8q/K94hRvOArfLGX97UMlqMrCp1Y9q+Z\nYJM/5CjqRw2IDMZHRbVI4xFysQcIuCGYAuHOC2v1mJPxeORfSQjC0WBc9BOq6bFK\nJ5fnCRzDtXlHyXBA8hSxuhNePz7GzepfvrVMZdc00GEv73W52NIr8Hg+X47CIm8g\ntabx0l8aT1SuHJmGUQod7EYveWcM0gltcA5JG6I8EGgs03j5yGBvC8g9jlb1thxf\nfYXHsa+Pkp7CnvEfP2cV1Pi+2z0wkEYg5L/nFRTrzOUfByXNVaSPGm1XRuT6a4D7\nwDz1NOSMdRw8i9NneQJiCzc3y9HpQhlar0/faZSIYeo=","translations":{"en":{"changelog":"### Added\n- Initial release for the official Nextcloud App Store.\n- Support for HTTP, HTTPS, FTP, Magnet links, and BitTorrent downloads.\n- Direct integration into Nextcloud Files app (\"+ New\" menu and drag-and-drop link support).\n- Real-time download progress tracking, transfer speeds, and ETA indicators.\n- Per-user task ownership isolation.\n- Automatic storage sync importing finished downloads into Nextcloud storage.\n- Encrypted storage for download server RPC Bearer tokens using `\\OCP\\Security\\ICrypto`.\n- Admin settings interface for configuring backend server connection parameters.\n- Compatibility with currently supported Nextcloud versions 33, 34, and 35 on PHP 8.1 through 8.4."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL05vdFVyTmlvL05ELU5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvZGFzaGJvYXJkLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL05vdFVyTmlvL05ELU5leHRjbG91ZC9tYWluL2RvY3Mvc2NyZWVuc2hvdHMvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"ND Downloader","summary":"High-performance download manager for Nextcloud powered by an external ND / Motrix download server","description":"ND Downloader integrates robust background download management into Nextcloud:\n\n- Send HTTP/HTTPS, FTP, Magnet links, and Torrent downloads to an external ND / Motrix download server\n- Fast multi-connection downloading powered by aria2 core\n- Live download progress, transfer speeds, and ETA tracking in the Nextcloud interface\n- Automatically imports finished downloads straight into your Nextcloud personal storage\n- Seamless integration inside Nextcloud Files \"+ New\" menu and drag-and-drop link support\n- Per-user download isolation so users only manage their own tasks\n- Configurable admin connection settings with encrypted secret token storage"}},"isFeatured":false,"authors":[{"name":"NotUrNio","mail":"niowork477@gmail.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhRdMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTM0ODAyWhcNMzcwMTE0MTM0ODAyWjAXMRUwEwYD\nVQQDDAxuZGRvd25sb2FkZXIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQC35GQtc8T+qm/ri5DKu0Z4dBqfxXH2oDNNVqwuFPyKKUUYCtUS5tS5U+Tk4K9W\nXAt0AmGn/Yky/kFkqyca38+pS7omu6uEGP1/hHxHY3AckbNIqngy4v8HgkZvna4s\niVT71jwiNB1JfTXPbCw+uT5CL7f9ugRXGTtNvtTYnKrFhYW4ivM9ci+rUo4tllFU\nOdbhvB9NZBeC5D24nsH9P1OssEmxI0kFiNo9p+kNXOvhD+A/qizFdHJJTAvAOBqB\n5TFZCXQBz6dGixO2swrTcYfaxEj5tGLcV7iMdJBROwuHDKR60pMQ7lzBQzrcTR7B\n0vCOYT7qJ8W6T1Jd+BUJedMsL+cChkCL/byW9ZTQoGr74sysWAPHfWHC99F2YbIu\nra8O6R84qlE8Oub+VpjyzR2naeHcHYyd1wxhVAUB+s2+lq07zFobNKV/dzDVfF4r\nme27QeFzjjGH2vgvsFARKIq18VYMQv8/DMRgyghhfMTJuRZ008Q29OCjQ41GYl8y\nFz6LRkpZ5Lx/eeyab+8GbL4r4tBfOKeNAtZjzAzQjGsVKihBCOxk5FGIuNMTBvzh\nMaF75QeaZ2WSKzHRHfQLnYJDtnTLCeOGvcSgoXRKrJu/MI3UxWmyV134lb1uiFir\n+Z+WUfB3DTnqoHNV0Bq5ZoLGIgaiZBU2nDR7PAZL2I5RXQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBD9vB5kmBXGNlHS3czBRL1zL3uHaQJWheQtnbmRvSodRlXXuYR\nE4WO1/9a/u4cZn/VHQYTcrb6kyx8t9ump+lahTVAbPEUtLV9/s325RD6GKv2Zo2g\n27i4lxMcrHCQEmYbs1v7yBFTK5M0h2Y707QyrwiCq/Li3FMufp3kwyUnrD8widrY\n+b4l0KOTNqpjNBsiQgI7szhZy8M8LekVbr8m+k3zZcIhkLHvEUIG6w2+5lLIy+jb\n5WHitAYKrMT/zISEm3iUSQiJFWTx37q09N5UT4aVjrR0wWvSvXIHOhuNkNs/qbb2\nguwzzOCXajZeFSwUGNefFdiQ+Zdp6w1iQnCC\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"tables","categories":["office"],"userDocs":"https://github.com/nextcloud/tables/wiki","adminDocs":"https://github.com/nextcloud/tables/wiki/Administration","developerDocs":"","issueTracker":"https://github.com/nextcloud/tables/issues","website":"https://github.com/nextcloud/tables","created":"2022-03-16T09:52:21.302113Z","lastModified":"2026-10-14T05:13:00.173684Z","releases":[{"version":"2.3.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.3.2/tables-v2.3.2.tar.gz","created":"2026-10-14T05:13:00.157075Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-14T05:13:00.214318Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"zJMvQEGB8R6cHAq7jLQOhyfJBuXy2TFxRnlmi/mElJ3+Gz6nx1OPh7laFFpXpSSIyAjXkkztGPvWgebii11YWSa7GIwLRQD2DVgxrcHaaMlDNEzLNP+b28ZgGhD+aNj7r3hKp9pzlQwfBDCj+5mgWW5V5pfRxAvA8UqHIKvxbPQ+y7rUJFp2dTTyxHpeqaTB2aN797V3mVVA9ah0vX0ClfFPRzzmw5Yf8ncZDxORdbOIWD6IdeEt+LHXN1xU/Y0jlRVbVoxm0WO539xdHaJ4u0EouNnrHCzExeupZhOpAPDARl0p+xWQG5FTZ5HQULqupkmGnJHieP36KSdnZ/fQ95BO7RNL7NnRaZvryXHhmRraBgujszYEWW9zlsZDh90i8Y9+BaJjOy/NInxhniuUw0GVWW3OOxTP4vN+BivfH7uiMUsC9YHzZ5rTg2S298Kub3Q63sQeZ5G3NgcKO8phh0BZOxeI7yDsJ5A1BSf+BtGl18M9xJjObUGdDafGKoFt3+mYdERTR75Fd7vsE80VruLxQt+3omJ4IrLGur4PsN3Mkp+s427mMagrTXfElG2X+gaALu9Gt2G7RBHk5jkfFF04A6Se10IVwRuvxOfMt8lpFMTYpwmSewnS57EchCzkl8SqufJjITh9OvVQVIuNnFOoj6UQam8WskK9hBj8ki0=","translations":{"en":{"changelog":"### Added\n* [Feat: Allow image previews of Files image links (tables#2946)](https://github.com/nextcloud/tables/pull/2946)\n* [Feat: Add rector to CI (tables#2949)](https://github.com/nextcloud/tables/pull/2949)\n\n### Fixed\n* [Fix(search): search as the user the provider is given (tables#3011)](https://github.com/nextcloud/tables/pull/3011)\n* [Fix(Handlers): use a composable for (un)subscribing to events (tables#3023)](https://github.com/nextcloud/tables/pull/3023)\n* [Fix(rows): add id tie-breaker so limit/offset pages are stable (tables#3058)](https://github.com/nextcloud/tables/pull/3058)\n* [Fix(migration): use mappers instead of services in db structure repair (tables#3064)](https://github.com/nextcloud/tables/pull/3064)\n* [Fix(federation): accept federated requests from instances on non-default ports (tables#3065)](https://github.com/nextcloud/tables/pull/3065)\n\n### Dependencies\n* [Update nextcloud/ocp dependency (tables#3038)](https://github.com/nextcloud/tables/pull/3038)\n* [Fix(deps): update dependency @nextcloud/dialogs to ^7.5.0 (main) (tables#2963)](https://github.com/nextcloud/tables/pull/2963)\n* [Chore(deps): update dependency psalm/phar to ^6.17.2 (main) (tables#3015)](https://github.com/nextcloud/tables/pull/3015)\n* [Fix(deps): update dependency @nextcloud/files to ^4.1.0 (main) (tables#3016)](https://github.com/nextcloud/tables/pull/3016)\n* [Fix(deps): update dependency @nextcloud/vue to ^9.13.1 (main) (tables#3017)](https://github.com/nextcloud/tables/pull/3017)\n* [Chore(deps): update dependency @rollup/rollup-linux-x64-gnu to ^4.63.3 (main) (tables#3018)](https://github.com/nextcloud/tables/pull/3018)\n* [Fix(deps): update dependency @material-symbols/svg-400 to ^0.47.4 (main) (tables#3031)](https://github.com/nextcloud/tables/pull/3031)\n* [Chore(deps): update dependency rector/rector to ^2.6.7 (main) (tables#3030)](https://github.com/nextcloud/tables/pull/3030)\n* [Chore(deps): update dependency eslint to ^10.11.0 (main) (tables#3032)](https://github.com/nextcloud/tables/pull/3032)\n* [Fix(deps): update dependency @nextcloud/router to ^3.2.0 (main) (tables#3033)](https://github.com/nextcloud/tables/pull/3033)\n* [Chore(deps): update cypress-io/github-action action to v7.4.4 (main) (tables#3039)](https://github.com/nextcloud/tables/pull/3039)\n* [Chore(deps): update dependency @nextcloud/e2e-test-server to ^0.6.1 (main) (tables#3040)](https://github.com/nextcloud/tables/pull/3040)\n* [Chore(deps): update icewind1991/nextcloud-version-matrix action to v1.3.3 (main) (tables#3041)](https://github.com/nextcloud/tables/pull/3041)\n* [Update nextcloud/ocp dependency (tables#3020)](https://github.com/nextcloud/tables/pull/3020)\n* [Fix npm audit (tables#3060)](https://github.com/nextcloud/tables/pull/3060)"}},"signatureDigest":"sha512"},{"version":"2.3.1-rc.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.3.1-rc.2/tables-v2.3.1-rc.2.tar.gz","created":"2026-09-07T10:52:49.692879Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-07T10:52:49.728990Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"tGkvnD57fK4/VfqSfmNap2iMDJIjELnRgZHf9TgmU2rX6qmQgqcLV+rC88zO1yM0qBFcOYTnp74sRdPltmeUuP3Ffbp00cCWvDCN5Vbv0GuWAMx/TQmJCldHoeb8dXs7yN+/d+PxCE/cuCXb8fN8yh0aDq4wz+mN1ubcqb+icEJuQoVdra9iwoRK3ThDBjKPRGtscrQTREIC6ipfKtx6NFSefx5OXQ4wN98D53KLm7t/wZI8/TfAJJkq6O3wV6heIhB88/xR1MOVRMMUWpTXVP+H5FeJ04OLjDQs+yV5awi7x67uU6MmvwGXISTClVkeFU/q9Iquny34zGHVPJBgfqmjMv4/JEdHrOLbyJxumzZ0pqSTMUEm3d66ACQT4N0xrWm5QtFzO1OcDp4RKo/uNbBoBQ4o4HcqQX5VXtqDKWMZrDbDXiah9IVVrW6aTVqwNhkg7zOzpyq7WxvPhzVl3FbJqylaUJDZRV0jC0aQb9risePgSRghj0JIEv8tz40B23n4DJ0WASbxRscHAr7/xUHmmrhfHj9vJX6h4cbJQ2IfYW1AOqPVbTcqpeX/b+y9T3CzEge02qNA1z9aERv4rKPDmzFcmFjzI2pJ9A5CloClpBf+VRG03F/B1JzWmBAPEpFsM8oKv3Ss/wfybXmboW2KqO56w/H/FMXyJUwaDUc=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.3.1-rc.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.3.1-rc.1/tables-v2.3.1-rc.1.tar.gz","created":"2026-08-28T13:37:20.109858Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-28T13:37:20.151933Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"Ig/ztNo0O9jEC1vTKJw23kTMFqU6tquhFyQjwl7UiQOjm22gCvBjGplAZIUNrsZeAZUL2wPV7k5SbV9JA0VJ6ac+grr2if531ThigSa+MxwgrudTgI86QZ3b4vTUSOZ89UElL/EAls9m3WJ3jlEjncopvBeDDzhP+2kII08hOd1nzIPVEXIbqr9wM6sB4+lFl4JIcAfc8HSZhuDqjXQ8gFAlGtZIEirZ11UxENPjSTHtBE3xIn5w/MSHjfEARtm6OfP0xUELpNYbM151dHonbWNcfIgU2MP60z1vdn9qesUETI1c1leVKDD1VhzkgjmplSCivW3BkdnJZkK2BVpfMwCEeCL0PrEQDee4NqCvOxGDeELz2ssN53cDNP3Lr5QbQtSDsnCmySoqv6qUySShpH++KwdRYj+bRe1vTiOk3FjSvTGmpncXj2FYp7AcmIap4w/Ts8PiT797v7qESoc/eVlG/28YxeCfLl1BNXJ9Ql+b8f+A23yK6PsDKDTHvdy7sEPKyqXPQdbcKEMDdZ6dJ0id5e9uH7ag1Bci7mcIrD8YNt1uyCwVTDz6FMUrYBFenViVSmuxuciWDPEYpGkZZRXDksBYA/nZ7ZpDKWeeQyD5qoSIWUiYNs802RZY7cfv7uSsfRhvqeWexHacd2q/kbSovZcdvEWp/A8AqAl6w+E=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.3.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.3.1/tables-v2.3.1.tar.gz","created":"2026-09-16T13:00:28.082985Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-16T13:00:28.168175Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"tJH4HnRbL1+CN7y/HFjUue0f7hVgI943DMqRpZybqPsn5yi/SWC17jAyKfP4zN9PeQ8RohNEpWRoxWOirn6aQj4LvxrbNHjZlNvDXectLcWNFvFWObr++nkKhzxTNtZs+cMSRRZU8JGNKMR0TYXFAquWWULPWDzDBzYFCE/rpp4XTZO4xYjD3qsmdpX/9OljPnLQNy2NxuwaYbEC7LOk4Rp69iN0x+c8ioYa7Ek1DeFw320USAZI61MMJhUG07pGkmEdm+bHy2BwotmtUXuGqA+F8K7ZatNoDJ2nLEims+FcKOTsQ5rX4VyY2WgkHlAx3rQiAKgt1dYLMWROZVFRIYPPCsvp2Kmp0rpTUWFbiVnVH7vw83RCOVJNZYHk9gDi7/2po6rzuAjsLcUuUVFRU9s+acZVYxNXDOImhyslenFEw840c9oG/zB3oCHmNzeZv8wdPD707QXL5EkP0F3hKBy51X+r4m6dhHhWEOGssv7PyWVxq9BFUhyViLaxZ0cssNNKQ4tvFFDMzbgujLCXgjCb0cmuFdGksOwgPGIt5eKwsXDPnXHoQSlLQaNytsleX+Z+kMA7rHLJDe6suX1s4dUldnfGD8C0KhbI1tVoJwtJY/WqQ5bgoDkC0OvKT6Q5abPzCtchdtPR+FM7E0bQ2Z27Ky/UdUVya6QiCeY15QU=","translations":{"en":{"changelog":"### Added\n* [feat(federation): Federated table sharing](https://github.com/nextcloud/tables/pull/2786)\n* [feat: Reorder views](https://github.com/nextcloud/tables/pull/2813)\n* [feat: add is not empty filter support](https://github.com/nextcloud/tables/pull/2572)\n* [Add notification for async import finished event](https://github.com/nextcloud/tables/pull/2819)\n\n\n### Fixed\n* [fix: preserve view descriptions on scheme import](https://github.com/nextcloud/tables/pull/2886)\n* [fix: set default cell value using column's parseValue function](https://github.com/nextcloud/tables/pull/2914)\n* [Fix: Make case-insensitive search for the view filters](https://github.com/nextcloud/tables/pull/2816)\n* [fix: improve number input validation and update handling](https://github.com/nextcloud/tables/pull/2182)\n* [fix(rows): let file picker and smart picker open above row modals](https://github.com/nextcloud/tables/pull/2912)\n* [fix(rows): keep row counters fresh and reduce count queries](https://github.com/nextcloud/tables/pull/2781)\n* [Fix: Make case-insensitive search for the usergroup and multi selection columns](https://github.com/nextcloud/tables/pull/2446)\n* [Fix(embedded) : column order, sort, scrolls overlays, refresh, table …](https://github.com/nextcloud/tables/pull/2868)\n* [fix: Correctly handle selectionDefault initialization and normalizati…](https://github.com/nextcloud/tables/pull/2948)\n* [fix(relations): Fix relations loading in applications, references, analytics]( https://github.com/nextcloud/tables/pull/2923)\n* [fix: make delete table actions use destructive styling](https://github.com/nextcloud/tables/pull/2972)\n* [Fix: add contains-item filter support in views](https://github.com/nextcloud/tables/pull/2940)\n* [fix(federation): avoid empty body on signed requests](https://github.com/nextcloud/tables/pull/2993)\n* [fix(import): avoid crash when table or view is deleted before import job runs](https://github.com/nextcloud/tables/pull/2987)\n* [fix: don't validate unaffected columns of a row upon inline editing](https://github.com/nextcloud/tables/pull/3007)"}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.3.0/tables-v2.3.0.tar.gz","created":"2026-08-26T21:56:28.293869Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-26T21:56:28.363958Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"jftJrq+1/dWmw+Auca/kE/kGv/KDTaCygl7U6D1pKmpk2g3i/F2Q2b30WG1xcfPkaiBY5sXQTxumTxi5z5OF+YchKSdKk+PcPixmuEmVIgQzMHiWWijgxmLLEiGgK21SSfQaFz5fRqooAZPXS+P3C3NcJA115ksPYIHqB8i5Lvnp8legMZiB16g8yrYAQO8zTJrJiqzNlRO/ReWEoOdWdoXELbWDmKFD78VUsZ1YCaYPqwxnkQrjFikWlHe/NLgaCuf98s2zKcdIKMyArVTcoW/gC08Q/zY05r6cm/p4FeIs/7KPySHfDXan3ZN+FWiDivuw7fOEuHRqIqIOU9UMLQZn8Sz0MdPBRQUZ8PWHkFrSvpkinzwK59GoCjMbAT8HuuHm9hh5VkS96rzvSyMvgevYJPs9ce9TduXMzinbc9YXukBvma5hIA04HbNk64tD19sDBC4xGM18Y74+SA0n9NSWM9aatKeu7FXzNNjp605+M1cokvLycfAxvY5j6EpbXlw0/Ylw8VRqnnZVgwvrGFywyj8madfWXh3UCyoxUaG44HwjnPNk3DQgVxPBFEfSCoLr9Eq7GTeFmI2BZdw4EVFZ07S3AP6MRzzU3MEe09JPdrvo2jow8SyTlRyq6ktQkBrS15GdFWhErsal0Wh1b54TK4YzNadMx43b/x/24CM=","translations":{"en":{"changelog":"### Added\n\n* [🕵 Add sharereview support (tables#2711)](https://github.com/nextcloud/tables/pull/2711)\n* [Table scheme import (tables#2888)](https://github.com/nextcloud/tables/pull/2888)\n* [Feat\\(deps\\): Add Nextcloud 36 support (tables#2917)](https://github.com/nextcloud/tables/pull/2917)\n\n### Fixed\n\n* [Feat\\(navigation\\): add LoadAdditionalEntriesListener (tables#2885)](https://github.com/nextcloud/tables/pull/2885)\n* [Fix: ignore client sent option UUID and generate new UUID on column update (tables#2899)](https://github.com/nextcloud/tables/pull/2899)\n* [Fix\\(navigation\\): keep parent table expanded when opening a view (tables#2913)](https://github.com/nextcloud/tables/pull/2913)\n\n### Other\n* [Chore\\(deps\\): update dependency cypress to ^15.19.0 \\(main\\) (tables#2863)](https://github.com/nextcloud/tables/pull/2863)\n* [Fix npm audit (tables#2881)](https://github.com/nextcloud/tables/pull/2881)\n* [Chore\\(deps\\): update dependency @nextcloud/e2e\\-test\\-server to ^0.5.1 \\(main\\) (tables#2892)](https://github.com/nextcloud/tables/pull/2892)\n* [Chore\\(deps\\): update dependency eslint to ^10.8.1 \\(main\\) (tables#2893)](https://github.com/nextcloud/tables/pull/2893)\n* [Fix\\(deps\\): update dependency dompurify to ^3.4.13 \\(main\\) (tables#2894)](https://github.com/nextcloud/tables/pull/2894)\n* [Chore: add playwright to .nextcloudignore (tables#2900)](https://github.com/nextcloud/tables/pull/2900)\n* [Chore\\(deps\\): update dependency phpunit/phpunit to v9.6.36 \\(main\\) (tables#2903)](https://github.com/nextcloud/tables/pull/2903)\n* [Chore\\(deps\\): update dependency cypress to ^15.20.1 \\(main\\) (tables#2904)](https://github.com/nextcloud/tables/pull/2904)\n* [Fix\\(deps\\): update dependency @material\\-symbols/svg\\-400 to ^0.46.0 \\(main\\) (tables#2905)](https://github.com/nextcloud/tables/pull/2905)\n* [Fix\\(deps\\): update dependency papaparse to ^5.6.0 \\(main\\) (tables#2906)](https://github.com/nextcloud/tables/pull/2906)\n* [Fix\\(deps\\): update tiptap to ^3.30.1 \\(main\\) (tables#2907)](https://github.com/nextcloud/tables/pull/2907)\n* [Update nextcloud/ocp dependency (tables#2911)](https://github.com/nextcloud/tables/pull/2911)\n* [Chore\\(CI\\): Adjust testing matrix for Nextcloud 35 on main (tables#2916)](https://github.com/nextcloud/tables/pull/2916)"}},"signatureDigest":"sha512"},{"version":"2.2.2","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.2.2/tables-v2.2.2.tar.gz","created":"2026-08-19T07:05:55.094316Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-08-19T07:05:55.180924Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"jewJ6ucQet0jO8WR54k0ApAD9GOYbCV2aEr0oAvCbXFK8jJrtHchJyRkQS69/vtrRT2fEjBcc0vyct9vY0vkaFNPUd6WS+5QFDP+8xiSpspxPJvt0HeCxvgdmiVjYuZ6DNjewTX209UbU9Xdad1B7YUYKPfVBAflJJYQ6yftLOjWqN0xrrbUOVOzl59npcF5tnRjUh790DG91ZS94CzVrNN15F5ECilAU3nSLc/eNaln0cQtHEAPxcn8nfCu8IlVEWyhf2Cajy6rP7v1mVoElmld8XaPmk1JAKSAuOiXoWGFifVExP3rIQDhte+0EeMviLPHgv5RxuOlJA5STO9i8SdbB35BEbLa37VG1X75odCq2QkZ60Gun9qH/ZF+rTB8KyiS1HlCiYaOgwK4wM9ivVNHUKFXfQE/tmOBVM4qyl1A3V2hSX5RFKlDMcL+iNKGdko6G4Kc3TrPp/ykk/qLs2nKAVDdiJvxyhOihXIMNRpDgnLwvYlQlmfkJk8dygh5wjA3HiKloX3dQrPspKp+ZoMoD0vR+qwsiuaYTT32nAOfEyOrrXrtH8kmZUfDM1AHfAaOaC/Zys8gbBsyG3aImZVlnZ0HadkAD3+OaWqYPIudS8X3207SqXUtkp5xnWIQ6+5VZcufDUCXsZNAC5dOsyRYLKafOt9bOJgIWTXg1Lw=","translations":{"en":{"changelog":"### Added\n* [Feat: Add technicalName to views (tables#2547)](https://github.com/nextcloud/tables/pull/2547)\n* [Migrate from Vue2 to Vue3 (tables#2836)](https://github.com/nextcloud/tables/pull/2836)\n\n### Fixed\n* [Fix sort stars and select (#8) (tables#2835)](https://github.com/nextcloud/tables/pull/2835)\n* [Fix: public link (tables#2854)](https://github.com/nextcloud/tables/pull/2854)\n* [Fix: Add support for OCP\\\\DB\\\\Schema (tables#2896)](https://github.com/nextcloud/tables/pull/2896)\n\n### Other\n* [Chore(deps): update dependency @nextcloud/eslint-config to v9 (main) (tables#2793)](https://github.com/nextcloud/tables/pull/2793)\n* [[main] Update nextcloud/ocp dependency (tables#2830)](https://github.com/nextcloud/tables/pull/2830)\n* [Chore(deps): update dependency @cypress/vue to ^6.0.3 (main) (tables#2842)](https://github.com/nextcloud/tables/pull/2842)\n* [Chore(deps): update dependency @nextcloud/vite-config to ^2.5.4 (main) (tables#2843)](https://github.com/nextcloud/tables/pull/2843)\n* [Fix(deps): update dependency @material-symbols/svg-400 to ^0.45.8 (main) (tables#2844)](https://github.com/nextcloud/tables/pull/2844)\n* [Fix(deps): update dependency @nextcloud/dialogs to ^7.4.1 (main) (tables#2845)](https://github.com/nextcloud/tables/pull/2845)\n* [Fix(deps): update dependency papaparse to ^5.5.4 (main) (tables#2846)](https://github.com/nextcloud/tables/pull/2846)\n* [Fix(deps): update dependency symfony/uid to ^6.4.32 (main) (tables#2847)](https://github.com/nextcloud/tables/pull/2847)\n* [Chore(deps): update dependency @playwright/test to ^1.62.0 (main) (tables#2848)](https://github.com/nextcloud/tables/pull/2848)\n* [Chore(deps): update actions/checkout action to v7.0.1 (main) (tables#2860)](https://github.com/nextcloud/tables/pull/2860)\n* [Chore(deps): update dorny/paths-filter action to v4.0.2 (main) (tables#2861)](https://github.com/nextcloud/tables/pull/2861)\n* [Fix(deps): update dependency @material-symbols/svg-400 to ^0.45.9 (main) (tables#2862)](https://github.com/nextcloud/tables/pull/2862)\n* [Chore(deps): update dependency eslint to ^10.8.0 (main) (tables#2865)](https://github.com/nextcloud/tables/pull/2865)\n* [[main] Update nextcloud/ocp dependency (tables#2866)](https://github.com/nextcloud/tables/pull/2866)\n* [[main] Fix npm audit (tables#2867)](https://github.com/nextcloud/tables/pull/2867)\n* [Chore(deps): update dependency @playwright/test to ^1.62.1 (main) (tables#2872)](https://github.com/nextcloud/tables/pull/2872)\n* [Chore(deps): update dependency @rollup/rollup-linux-x64-gnu to ^4.62.4 (main) (tables#2873)](https://github.com/nextcloud/tables/pull/2873)\n* [Fix(deps): update dependency @material-symbols/svg-400 to ^0.45.10 (main) (tables#2874)](https://github.com/nextcloud/tables/pull/2874)\n* [Fix(deps): update tiptap to ^3.29.2 (main) (tables#2875)](https://github.com/nextcloud/tables/pull/2875)\n* [[main] Update nextcloud/ocp dependency (tables#2880)](https://github.com/nextcloud/tables/pull/2880)\n* [Chore(deps): update dependency dompurify to v3.4.13 [security] (main) (tables#2883)](https://github.com/nextcloud/tables/pull/2883)"}},"signatureDigest":"sha512"},{"version":"2.2.1","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"},{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"sqlite","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/tables/releases/download/v2.2.1/tables-v2.2.1.tar.gz","created":"2026-07-23T17:53:56.075463Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-23T17:53:56.182465Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"SRFZReqF0cXhYXmen7ZKktSVJJjeg2Unw47gPiM3DRiKqAwFUFq6+/SdzARoYUiI0OH09JLgCy4j/d2Sm1wMeDjGjCc8GtT38oo8uZE6UCD7AswCIgwDeBRR54JdRg3EPOuN8+86HCXRLtjQIpMYYo98fftssNDFJHq8jEuaHRcCCgv52T+BY2WDv1sW1tB1wS7aLNa6NoJdVO0wBvjSXRph719Atwyj4JaDvFkIKbmXZAW4oLBzTJBOzWyLk9nweVFLSXk8kOsnvCKTL/t96a8J5/kEUggOi1CDhIMlTjvHelyZoubmAPF1nDW54MwyUpdJg2WsmdXbY/ZUEeaisSMzRT9hP7u+bcLLb9JVYFV/e0fgAJjNYxyd1/0Bcq4QPtrWNyC4iOXgUVq76OvPlu8FHfUg7460Lx/ytxdbH3TxptZdBFzrJ4VEjUF16hm6rh+2G8h7F2ogzTfBwL5dYwLtiNkZMkeRd57ULdKkv0bWsaoafkpvOAnCuSdVCCT3ZVCyoWFpd6y8Yp87oUTaOQ+S9GcC0lJcQHgJuYPGLWurTKqgYA4GNf+1e71xfbP0cmSuvbwR5z0b6KY1tPb9ykDBjru/4bFjzzs9UbKAeodXTEqAj1k5xh3c6OnXzGxB2W949cC8d5shLXaHD23KMY17Dg9pWNCOMGI5WK9t2BM=","translations":{"en":{"changelog":"### Added\n* [Feat: add relation column type (tables#2248)](https://github.com/nextcloud/tables/pull/2248)\n* [#1840: API structure improvement: expose columns through a technical name/slug/alias (tables#2428)](https://github.com/nextcloud/tables/pull/2428)\n* [feat(Analytics): enhance datasource (tables#2554)](https://github.com/nextcloud/tables/pull/2554)\n* [Feat: add UUIDs to columns (tables#2598)](https://github.com/nextcloud/tables/pull/2598)\n* [Feat: add notifications (tables#2681)](https://github.com/nextcloud/tables/pull/2681)\n\n### Fixed\n* [Revert: timezone conversion intended for meta fields, accidentally broke datetime columns (tables#2583)](https://github.com/nextcloud/tables/pull/2583)\n* [Fix does not contains function (tables#2670)](https://github.com/nextcloud/tables/pull/2670)\n* [Fix Add 'does-not-contain' condition to Row2Mapper (tables#2671)](https://github.com/nextcloud/tables/pull/2671)\n* [Fix: Avoid saving whitespace titles (tables#2684)](https://github.com/nextcloud/tables/pull/2684)\n* [Fix: flaky Playwright tests (tables#2689)](https://github.com/nextcloud/tables/pull/2689)\n* [Fix respect view column order in public sharing (tables#2701)](https://github.com/nextcloud/tables/pull/2701)\n* [Fix: Chunk IN clause to <1000 items for oracle compatibility (tables#2713)](https://github.com/nextcloud/tables/pull/2713)\n* [Apply remove share for users/teams/groups (tables#2728)](https://github.com/nextcloud/tables/pull/2728)\n* [Fix: update wording for relation column label selection prompts (tables#2729)](https://github.com/nextcloud/tables/pull/2729)\n* [Fix: align share response with documented response definition (tables#2838)](https://github.com/nextcloud/tables/pull/2838)\n\n### Other\n* [Perf: Do not recreate `Cell` entity just for formatting value (tables#2238)](https://github.com/nextcloud/tables/pull/2238)\n* [Perf: cache shared view permission lookups (tables#2586)](https://github.com/nextcloud/tables/pull/2586)\n* [Build: bump PHP requirement for deps to at least 8.2 (tables#2594)](https://github.com/nextcloud/tables/pull/2594)\n* [Update agent info (tables#2704)](https://github.com/nextcloud/tables/pull/2704)\n* [Enh: update max-version to NC 35 (tables#2710)](https://github.com/nextcloud/tables/pull/2710)\n* [Add AI policy check (tables#2712)](https://github.com/nextcloud/tables/pull/2712)\n* [Docs(AI): Adjust git commit strategy as per org policy (tables#2717)](https://github.com/nextcloud/tables/pull/2717)\n* [Chore: add useBaseBranchConfig option to renovate configuration (tables#2761)](https://github.com/nextcloud/tables/pull/2761)\n* [Docs: Update author to generic variant (tables#2766)](https://github.com/nextcloud/tables/pull/2766)\n* [Ci/noid/sync workflows (tables#2787)](https://github.com/nextcloud/tables/pull/2787)\n* [Ci: update workflows from templates (tables#2805)](https://github.com/nextcloud/tables/pull/2805)\n* [Perf: Don't fetch full group information (tables#2809)](https://github.com/nextcloud/tables/pull/2809)\n* [main: Update nextcloud/ocp dependency (tables#2812)](https://github.com/nextcloud/tables/pull/2812)\n* [Refactor(Share): move utility function from Controller to Service (tables#2814)](https://github.com/nextcloud/tables/pull/2814)\n\n### Dependencies\n* [Chore(deps): update shivammathur/setup-php action to v2.37.2 (main) (tables#2732)](https://github.com/nextcloud/tables/pull/2732)\n* [Chore(deps): update alexwilson/enable-github-automerge-action action to v3 (main) (tables#2737)](https://github.com/nextcloud/tables/pull/2737)\n* [Chore(deps): update dependency @rollup/rollup-linux-x64-gnu to ^4.62.2 (main) (tables#2769)](https://github.com/nextcloud/tables/pull/2769)\n* [Chore(deps): update actions/checkout action to v7 (main) (tables#2782)](https://github.com/nextcloud/tables/pull/2782)\n* [Chore(deps): update dependency @playwright/test to ^1.61.1 (main) (tables#2788)](https://github.com/nextcloud/tables/pull/2788)\n* [Chore(deps): update dependency cypress-vite to ^1.10.2 (main) (tables#2789)](https://github.com/nextcloud/tables/pull/2789)\n* [Chore(deps): update dependency vite to ^7.3.6 (main) (tables#2790)](https://github.com/nextcloud/tables/pull/2790)\n* [Chore(deps): update dependency cypress to ^15.18.0 (main) (tables#2792)](https://github.com/nextcloud/tables/pull/2792)\n* [main: Fix npm audit (tables#2798)](https://github.com/nextcloud/tables/pull/2798)\n* [Chore(deps): update nextcloud/pr-feedback-action digest to c8c97a6 (main) (tables#2801)](https://github.com/nextcloud/tables/pull/2801)\n* [Chore(deps): update cypress-io/github-action action to v7.4.1 (main) (tables#2802)](https://github.com/nextcloud/tables/pull/2802)\n* [Fix(deps): update dependency @material-symbols/svg-400 to ^0.45.7 (main) (tables#2822)](https://github.com/nextcloud/tables/pull/2822)\n* [Fix(deps): update tiptap to ^3.27.4 (main) (tables#2823)](https://github.com/nextcloud/tables/pull/2823)\n* [Fix(deps): update dependency dompurify to ^3.4.12 (main) (tables#2826)](https://github.com/nextcloud/tables/pull/2826)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtMS5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/nextcloud/tables/main/screenshots/sh-tables-1-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtMi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtMy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtNC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtNS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtNi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC90YWJsZXMvbWFpbi9zY3JlZW5zaG90cy9zaC10YWJsZXMtNy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Tables","summary":"Manage data the way you need it.","description":"Manage data the way you need it.\n\nWith this app you are able to create your own tables with individual columns. You can start with a template or from scratch and add your wanted columns.\nYou can choose from the following column types:\n- Text line or rich text\n- Link to urls or other nextcloud resources\n- Numbers\n- Progress bar\n- Stars rating\n- Yes/No tick\n- Date and/or time\n- (Multi) selection\n- Users, groups and teams\n\nShare your tables and views with users and groups within your cloud.\n\nHave a good time and manage whatever you want."}},"isFeatured":true,"authors":[{"name":"Nextcloud GmbH and Nextcloud contributors","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.6111111111111112,"ratingNumRecent":0,"ratingNumOverall":9,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEATCCAukCAhG5MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjIwMjI1MTQzOTA5WhcNMzIwNjAyMTQzOTA5WjARMQ8wDQYD\r\nVQQDDAZ0YWJsZXMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRs/2j\r\nuYF1zMrt7Sd+E2w/kIuafEAyQjeq6crMrrPpjttKqsctSPhD1btENkijJsuFyXJW\r\n8kNY+42GLaZ3cuFFzxE7XQRErogoRUdvnTdOUVl5V/gavZWwd27Q2kiW/f3X7mN5\r\nVY5ean6b6ViyaBl2RaU3GiN0GKmVXrNFkmiQG383cYf7eerXhh+KZKe915gLtIK9\r\n7B6HNZlcvCGB/edpEt5dSUyKxEUVUYTGtrZaL7pwBY8U5w46BB+F9ojEBKQZQEZE\r\nLjT1dk9H64dCvy52ZadGnqCgiRIGvjGVJgK8A7bTkeT0K28JclDZTRsrVDkyMNWX\r\nxXhRuaabHbNiHpP2Xb14myXy/oQXIBOkv2L6UVCMfKXRPe06aP5ieEsmVjGZXCq+\r\nEwSvcTjerJlNScd5hWrPwSJ+SZJAuCYUOYfdZjwQy1ZKgsZfujFPyzrHd/Amzd6d\r\nSA1ceTu1l6ZOThOlzfpXKIM2GLcfvtarC+F1u+cHk5S0EmrhdfORfJcB+Z+bD5yJ\r\nJ9WM7TvxVs1gbQ8Fb8KcA0M8jCa4J3sPsAhOvYOLW8G2qi2aLw1YbOMhlxlnzlju\r\nmX/HfZzwN7OTreZk2JmfHYeDBQ51UAVZSvLPhRCyAZ0BXrN98ynW4Rw0gTQrSpv1\r\nZzNzXtVAg2BQCpWEKNqD3olvBb+wg0eEE6iwEwIDAQABMA0GCSqGSIb3DQEBCwUA\r\nA4IBAQCIRCQiY5oKSQNaljWHXRUQ5oaKmugZQ6MgWhHrhRefhwgEdbd9c5SteQJE\r\nv6elglEewxb3cWAmtmTd3JymETHCVUENOP2vYxgWDpeBE10qm33Vu1bXF1zM2UrI\r\n/pqaVnrNWBV0cH4V8QbdcrLEP2+T8wm85dz4mpM/ZEWfrxRBjYyKZ++s2FTZ3iTt\r\nC1kxrTIkEYYy/VSQazqKR5zGJ2M/3I5onrfivHV2e0KwxQ0WiiRgFjpUKx8pUKia\r\n7vaZ+QTgrm8xJnZQ3LllZDtpT7J1pOQC6yny+Jl6hdd6iX+Vj3As6VuS54CM6ZT8\r\nYA+DigQvyiAR/6YxFHr812XTXGwt\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"nc_gantt","categories":["organization"],"userDocs":"https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md","adminDocs":"https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md","developerDocs":"https://codeberg.org/fds2610/NC-Gantt/src/branch/main/docs/en/CONTRIBUTE.md","issueTracker":"https://codeberg.org/fds2610/NC-Gantt/issues","website":"https://codeberg.org/fds2610/NC-Gantt","created":"2026-05-27T16:02:35.234284Z","lastModified":"2026-10-15T08:40:31.850824Z","releases":[{"version":"2.4.0-beta.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.4.0-beta.2-ac5d30c/nc_gantt-2.4.0-beta.2-ac5d30c.tar.gz","created":"2026-10-13T17:07:20.458516Z","licenses":["agpl"],"lastModified":"2026-10-13T17:07:20.467810Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"XHoDigMHocX7CkxrO5nmuzELtSaskmlt8LYfKeZe+k7rJd6j5Qs9W8PyC4J0/bJP\n  6SrpxTE/kK2bR1LDf1bDcmWWTTabiTT7FzQVaGBboU6/CQ3R6+TgcLAY/L5e1pkl\n  o48bOd9PN1CkuwFjFVgTo/wdhjy8cfWWI/83uQHy45b0Uy/Bzbhx4It/1nUkgWY0\n  hck36oCaUg5vSfNklO6Ntw9b5qkS7r3MJTAr1vKXtdzpbTLBXW6goaW1R0vXWADl\n  sIGNtT92axaRPPjN0Eb4fC82cWutGhG6Dx7gtP9ttwmHSxOIdgXu31sp08qiJLEP\n  uC59kuf8kCSzWObFFCUph0A0WTjt/QlvXqgKHpPCh+iOrjOYLbwpa0vhXvoM1xkC\n  4t5KXnrRg/lRALtRWPKP6vDDVN2tpjvXsz7Aq2pw7efQxs9+wo36a8PWO8cDGC85\n  iVkDD/Gqk1pdyGt3o+MnReY5vt2ce9EkWBTlOElW7p9MNLAG/emtYkgIOIcKaWaD\n  WzfA12nai5o96zrIPmTtQMoYCxF3cO/+IrRRIZjj50ZmkmXwMGjByvkO7xAM1+Tk\n  0p5Dxmi1mwqJsz0CpDvLIi9adh3omTDBYHpFcrGMJ2PnZrLyEO35ttHSmn8YbH/5\n  iaXOvyFiwsG6r2a9JIJ6yvmRUMLXCdcJuze+UZIggx0=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"2.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.4.0-93a2d5d/nc_gantt-2.4.0-93a2d5d.tar.gz","created":"2026-10-15T08:40:31.845180Z","licenses":["agpl"],"lastModified":"2026-10-15T08:40:31.957448Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"u6k3HTzhUPyVmNLqVpxTaCqymFIHc89ZgC/if6TfwqpZnoB1APDJoJXi26OgSYko\n  YMjM7JsSf5yrJlxBKNBIvFjS7P7RzoS64SJ596pOTkCk9fQ1UVj3cW/cn26Hrlqy\n  VD9vkNprU7lrrXczaobt4JyOZYPfXYHPZxAOTOZm6WnLmG88XFiJtKoH4GB2s0/t\n  aaifLwGeYxHS/ei6i1qMVUjSuk53A9KxVHnd6qzYm6cBKFx7VRtftq39lD7qYYuY\n  tIRTx3D4mCDmVaCNP8a2cCeI3g3q6smxN/CXN7mloGPmZWYKyPxmz7LiLo2CfQRI\n  9qJ8uSxOVynpClEUfzku2iTu4WainoDlPAVJAFHbg+kjAuUdPFv8xYeyHPY/APhj\n  78L4T8XTg+A6y1X1nTvW9QpYjH98ZdrM0LAQS/7QHXNH/KFxrglfAkbRBmm7O3kq\n  ODCKeEIqhW9AP0LbfPPBc6vE0mZI2O687/71cCSNTgeoxKRe7ibLkAoUllKY6yHp\n  dsgJTNustkOVg6HZsMpFEPNRnnrn3tVQ2tE46mmmtYFB29gl7i+8Jy9930vJbC89\n  W2MjgSVzqKGlhWWvX30u/uixrffWe0ZyFlqrPopYQsGVSsT59LfvbxZuCL+Vr2Ap\n  knOKhwr+qVMuh5u6F2rGqo1hOXfQHmg6E3gPOhVe5HY=","translations":{"en":{"changelog":"Erste stabile Fassung nach den Vorabversionen 2.4.0-beta.1 und 2.4.0-beta.2: Sie enthält deren gesamten Umfang (Import von MS-Project-Plänen, Korrekturen am Import, siehe unten) sowie die folgende Korrektur.\n\n### Fixed\n- **Verschieben von Aufgaben per Drag&Drop und Tabelle**: Termine ohne Vorgänger rasten in Zugrichtung auf Arbeitstage des Ressourcenkalenders ein, die Dauer bleibt in Arbeitstagen erhalten. Das Ziehen eines Nachfolgers passt den Lag der Abhängigkeit an (Undo nimmt ihn über das Änderungsprotokoll mit zurück), im Modus „Pflicht“ entsteht kein negativer Lag. Das Ziehen eines Vorgängers verschiebt die Nachfolger um denselben Versatz und erhält ihren Puffer; Rautenstrukturen werden neu bewertet. Ein bewusst späterer Termin wird beim Speichern (Detaildialog, Strict-Modus) nicht mehr auf den frühesten Termin zurückgesetzt. Datumsumrechnung nutzt lokale statt UTC-Tage und rundet bei Sommer-/Winterzeit-Umstellung im frappe-Pixelrechner auf den Kalendertag\n\n\n> **Beta:** Vorschau auf 2.4.0, nicht für den Produktivbetrieb gedacht. Der App Store bietet sie nur Nutzern an, die Vorabversionen aktiviert haben.\n\n### Changed\n- **Import-Code aufgeteilt (ohne Verhaltensänderung)**: `importJson` ruft `importSubprojects()` und `importTasks()` auf, `mspdiToImportData` zerfällt in `readOutline()`, `buildMilestones()` und `resolveCalendar()`\n\n### Fixed\n- **CSV-Import: Abhängigkeiten zeigten auf Aufgaben des Quellprojekts**: Der CSV-Import übernahm `predecessor_id` roh und band neue Aufgaben so an fremde oder falsche Aufgaben (JSON-Import seit #269 umgemünzt). Der CSV-Export schreibt jetzt die Spalte `id`; der Import legt die Aufgaben zuerst ohne Abhängigkeiten an, münzt die Vorgänger darüber um und trägt sie über denselben Pfad wie der JSON-Import nach (abgelehnte Abhängigkeiten werden einzeln ausgelassen und gemeldet, `applyDependencies()` in `io.js`). Ältere Exporte ohne `id` und Verweise auf Meilensteine entfallen. Eine leere CSV-Datei meldet jetzt „Import fehlgeschlagen“ statt „Erfolgreich importiert“. Neue Vitest-Tests in `io.csv.test.js`\n- **JSON-Import: Teilprojekte mit zyklischem oder unbekanntem Elternverweis gingen still verloren**: Sie werden jetzt auf oberster Ebene angelegt, ihre Aufgaben behalten ihr Teilprojekt. Neuer Test stellt sicher, dass jeder Hinweis-Code des MS-Project-Imports einen Text im Dialog hat\n\n\n> **Beta:** Vorschau auf 2.4.0, nicht für den Produktivbetrieb gedacht. Der App Store bietet sie nur Nutzern an, die Vorabversionen aktiviert haben.\n\n### Fixed\n- **Import: abgelehnte Abhängigkeit kostet nur sich selbst** (Folge zu #348): Lehnt der Server die Abhängigkeiten einer Aufgabe ab, trägt der Import sie einzeln nach; nur die abgelehnte entfällt, die übrigen der Aufgabe bleiben. Der Hinweis nennt jetzt auch den Vorgänger (`\"Aufgabe\" ← \"Vorgänger\" (Grund)`). Neue Vitest-Tests in `io.mspdi.test.js`; neue E2E-Spec `mspdi-testfiles.spec.js` prüft die Testdateien aus #326 (Gliederung, Meilensteine, Hinweise, Abhängigkeiten) vollständig durch den Import\n- **Import: abgelehnte Abhängigkeiten brechen den Import nicht mehr ab** (Issue #348): Lehnt der Server beim Nachtragen der Abhängigkeiten die einer Aufgabe mit `negative_float`, `dependency_cycle` oder `invalid_dependency` ab, bleibt diese Aufgabe ohne Abhängigkeiten und der Import läuft weiter; danach meldet ein Hinweis die betroffenen Aufgaben samt Grund. Typischer Fall aus MS Project (UID 29/30 der Testdateien aus #326): eine Aufgabe hängt per EE an einem festen Meilenstein, endet aber später – dort zulässig, in NC-Gantt ein verfehlter Meilenstein-Termin. Gilt für den MS-Project- und den JSON-Import (`importJson()` in `src/detail/io.js`); andere Fehler brechen weiterhin ab. Doku (`HOWTO.md`, de/en) und Übersetzungen ergänzt, neue Vitest-Tests in `io.mspdi.test.js`, E2E-Test in `mspdi-import.spec.js`\n- **MS-Project-Import: Erkenntnisse aus dem Test mit MS Project** (Issue #347): Startet ein Vorgang laut Datei am oder nach dem Ende der Arbeitszeit (MS Project schreibt nach einem Lag teils `2026-11-05T17:00:00` statt `2026-11-06T08:00:00`), beginnt die Aufgabe jetzt am nächsten Arbeitstag statt einen Tag zu früh. Maßgeblich ist der Projektkalender (Wochentage mit Arbeitszeiten, Basiskalender, Ausnahmen auch im älteren `DayType=0`-Format), ohne Kalender Montag bis Freitag bis `DefaultFinishTime`; Meilensteine behalten ihr Datum. Vorgänge mit Dauer 0 werden wie in MS Project als Meilensteine übernommen (Hinweis `I_ZERO_DURATION`). Fehlendes `Active` (Project Standard) gilt ausdrücklich als aktiv; Kosten werden als Hundertstel gelesen (`Cost` enthält `FixedCost`, nicht mehr doppelt gezählt). Die synthetischen Testdateien schreiben keine `0001-01-01`-Platzhalter mehr (MS Project las sie als 01.01.2001); neu sind ein echter Export aus MS Project (`project14-msproject.xml`, auch ohne Namespace geprüft) und die Resolver-Testfälle (`resolver-only.xml`). Doku (`HOWTO.md`, `FEATURES.md`, de/en) und Übersetzungen ergänzt, neue Vitest-Tests in `mspdi.test.js`\n\n### Added\n- **MS-Project-Import: Plankosten als Budget** (Issue #342, Teil von #326): `mspdiToImportData()` übernimmt `Task/Cost` als `budget_planned` der Aufgabe; MSPDI speichert Beträge in Hundertsteln (`125000` = 1.250 €, an einem echten MS-Project-Export bestätigt). `budget_unit` ist `Project/CurrencySymbol` (ersatzweise `CurrencyCode`, auf 20 Zeichen gekürzt). `Cost` enthält Fixkosten und Ressourcenkosten, auch die von Kostenressourcen, die selbst weiterhin nicht angelegt werden. Aufgaben ohne Kosten bleiben ohne Budget. Kosten von Meilensteinen und eigene Fixkosten von Sammelvorgängen (inkl. Projektsammelvorgang) meldet `I_COST_SKIPPED` mit Betrag; der Hinweisdialog zeigt die Summe der übernommenen Budgets.\n- **MS-Project-Import: Projektkalender (Arbeitstage und Feiertage)** (Issue #341, Teil von #326): `mspdiToImportData()` übernimmt den Kalender aus `Project/CalendarUID` (samt Basiskalendern) als Wochenmodell (`WeekDay/DayType` 1 = So … 7 = Sa → Bitmaske `work_days`) und als Kalender gleichen Namens mit Feiertagen, beide allen importierten Ressourcen zugewiesen. Feiertage kommen aus `Exceptions/Exception` mit `DayWorking=0` (Zeiträume in Einzeltage aufgelöst) und aus der älteren Form `WeekDay` mit `DayType=0` + `TimePeriod`; MS Project schreibt beide, sie werden je Datum zusammengeführt (Name aus der Exception, sonst „Feiertag“). `WeekDay` wird wie von MS Project geschrieben in einer `WeekDays`-Hülle und ohne gelesen, auch in `WorkWeeks`; arbeitsfreie Tage einer Arbeitswoche werden Feiertage. Arbeitszeiten innerhalb des Tages entfallen, zusätzliche Arbeitstage (`I_CALENDAR_WORKING_DAYS`) und wiederkehrende Ausnahmen (`I_CALENDAR_RECURRING`) werden gemeldet. Maßgeblich ist nur der Projektkalender: Ressourcenkalender mit eigenen Abweichungen werden nicht übernommen (`I_RESOURCE_CALENDAR`), Materialressourcen mit dem von MS Project angelegten Kalender „Standard“ nicht gemeldet und „Standard“ nicht angelegt. Aufgaben ohne Ressource rechnen weiter mit Mo–Fr und globalen Feiertagen (`I_CALENDAR_UNASSIGNED_TASKS`). Der Options-Dialog bietet **Arbeitskalender/Feiertage importieren** nur Admins an (Initial State `is_admin`), sonst bzw. ohne Ressourcen oder abgewählt `I_CALENDAR_SKIPPED` mit Grund; ein Kalender ohne Abweichung von Mo–Fr wird nicht angelegt. Der Hinweisdialog nennt Kalender und Zahl der Feiertage. Neue Funktion `readProjectCalendar()`. Doku (`HOWTO.md`, `FEATURES.md`, de/en) und Übersetzungen ergänzt, neue Vitest-Tests (`mspdi.test.js` auch gegen den echten MS-Project-Export und den älteren Export, `io.mspdi.test.js`, `ioDialogs.mspdi.test.js`), E2E-Tests in `mspdi-import.spec.js`\n- **MS-Project-Import: Personen per E-Mail mit Nextcloud-Konten verknüpfen** (Issue #340, Teil von #326): `mspdiToImportData()` liest `Resource/EmailAddress` bei Personen (nicht bei Rollen und Material; `WindowsUserAccount`/`NTAccount` bleiben unberücksichtigt). Der neue asynchrone Schritt `resolveUserAccounts(data)` zwischen Übersetzung und Hinweisdialog fragt je Adresse einmal den neuen Endpunkt `GET /api/v1/users/by-email` ab (`UserController::byEmail()`): Er gleicht exakt über `IUserManager::getByEmail()` ab (ohne Groß-/Kleinschreibung, nur aktive Konten) und liefert nur `status` und `uid`, weil die Collaborator-Suche hinter `/users/search` keine E-Mail zurückgibt und exakte mit unscharfen Treffern mischt. Gezählt werden nur Konten, die die Collaborator-Suche nach derselben Adresse auch findet (Enumeration- und Gruppenbeschränkungen der Instanz), sowie das eigene; Mehrdeutigkeit wird nur gemeldet, wenn mindestens eines davon sichtbar ist. Verknüpft wird nur bei genau einem Treffer, sonst `I_ACCOUNT_NOT_FOUND` bzw. `W_ACCOUNT_AMBIGUOUS` (Hinweis mit Name und Adresse; schlägt die Suche fehl, `I_ACCOUNT_LOOKUP_FAILED`). Der Hinweisdialog zeigt die Vorschläge „Name → Konto“ mit der Checkbox **Personen mit Nextcloud-Konten verknüpfen** (Standard an) und liefert jetzt `{ linkAccounts }`; `applyUserAccounts()` setzt die `uid`. Gleichnamige wiederverwendete Ressourcen behalten ihre Verknüpfung und werden gar nicht erst gesucht; ein bereits vergebenes Konto meldet der MS-Project-Import nach dem Import wie der JSON-Import. Doku (`HOWTO.md`, `FEATURES.md`, de/en) und Übersetzungen ergänzt, neue PHPUnit-Tests in `UserControllerTest` und Vitest-Tests (`mspdi.test.js`, `io.mspdi.test.js`, `ioDialogs.mspdi.test.js`)\n- **MS-Project-Import: Ressourcen und Zuordnungen** (Issue #339, Teil von #326): `mspdiToImportData()` übernimmt `Resources/Resource` als Ressourcen mit Einheit `h` (Arbeit → Person, generisch → Rolle, Material → Material; Kostenressourcen mit `IsCostResource=1` bzw. `Type` 2 werden nicht angelegt, `I_COST_RESOURCE`), `Resource/Group` als Ressourcengruppen und `Assignments/Assignment` als Zuordnungen mit Aufwand in Stunden aus `Work` (ISO 8601, neue Funktion `durationHours()`). Material wird ohne Aufwand zugeordnet, die Menge aus `Work` (1 Einheit = `PT1H`) nennt der Hinweis `I_MATERIAL_WORK`. Höchstens 4 Ressourcen je Aufgabe in Reihenfolge der Zuordnungs-UID, der Rest mit Name und Stunden als `W_RESOURCE_LIMIT`; Zuordnungen an Sammelvorgänge und Meilensteine → `W_ASSIGNMENT_DROPPED`; `MaxUnits` ≠ 1 → `I_MAX_UNITS`; Platzhalter-Zuordnungen auf `ResourceUID` -65535 werden still übergangen. Vor dem Hinweisdialog fragt der Options-Dialog des JSON-Imports nach Ressourcen (ja/nein) und dem Umgang mit gleichnamigen Ressourcen; Kapazitäten und Kalender blendet er hier aus (`openImportOptionsDialog(preview, offer)`). Wird eine gleichnamige Ressource mit anderer Einheit als `h` wiederverwendet, lässt `importJson()` (Option `checkUnits`) deren Aufwand weg und meldet sie nach dem Import. Der Hinweisdialog zählt Ressourcen und Zuordnungen und nennt je Hinweis Aufgabe, Ressource und Stunden bzw. Menge. Doku (`HOWTO.md`, `FEATURES.md`, de/en) und Übersetzungen ergänzt, neue Vitest-Tests (`mspdi.test.js` auch gegen den echten MS-Project-Export, `io.mspdi.test.js`, `ioDialogs.mspdi.test.js`), E2E-Test in `mspdi-import.spec.js`\n- **MS-Project-Import: Abhängigkeiten an Sammelvorgängen** (Issue #338, Teil von #326): Statt sie zu verwerfen, löst `mspdiToImportData()` sie auf die Blattaufgaben auf. Ist der Vorgänger ein Sammelvorgang, wird eine EA/EE-Abhängigkeit auf alle Aufgaben darunter (beliebig tief, Duplikate entfernt) übertragen, AA/AE wird verworfen. Ist der Nachfolger ein Sammelvorgang, hängt die Abhängigkeit an seinen Aufgaben ohne Vorgänger innerhalb des Sammelvorgangs; innere Sammelvorgänge werden zuerst aufgelöst. Sammelvorgänge ohne Aufgaben und Links zwischen einem Sammelvorgang und seinem eigenen Inhalt werden verworfen (`W_SUMMARY_LINK` mit Grund), aufgelöste Links gemeldet (`I_SUMMARY_LINK_EXPANDED`). Die vorhandene Zyklenprüfung läuft danach und verwirft Abhängigkeiten, die erst durch das Auflösen einen Zyklus schließen (`W_CYCLE`). Neue Vitest-Tests in `mspdi.test.js`\n- **Import von Microsoft-Project-Plänen (MSPDI-XML), Stufe 1** (Issue #337, Teil von #326): Neuer Eintrag **Aus MS Project importieren (XML)** im Neu-Menü der Seitenleiste legt aus einer Datei, die MS Project über *Speichern unter → XML-Format* schreibt (ebenso ProjectLibre/GanttProject), immer ein **neues** Projekt an. Übernommen werden Gliederung (Sammelvorgänge → Teilprojekte beliebiger Tiefe, Vorgänge → Aufgaben, auch direkt unter dem Projekt), Start, Ende, Fortschritt, Notizen, Abhängigkeiten EA/AA/EE/AE mit Lag (Zehntelminuten ÷ `MinutesPerDay`, auf ganze Arbeitstage gerundet) sowie Meilensteine nach den Regeln aus #308 (genau ein Vorgänger ohne Lag → abgeleitet, sonst festes Datum). Reiner Frontend-Übersetzer `mspdiToImportData()` in `src/detail/mspdi.js`, angelegt wird über den bestehenden `importJson()`-Pfad (nimmt jetzt auch ein Objekt an); Backend unverändert. Alle Prüfungen laufen vor dem ersten API-Aufruf: Größe (20 MB), Vorgangszahl (5.000), `<!DOCTYPE`, ungültiges XML, Wurzelelement, Zyklen. Ein Hinweisdialog zeigt vorab Zähler und gruppierte Hinweise; was diese Stufe noch nicht übernimmt (Ressourcen, Kalender, Kosten, Abhängigkeiten an Sammelvorgängen) oder nicht abbildet (Einschränkungen, Stichtage, manuelle Planung, Basispläne …), wird dort gemeldet statt still verworfen. Doku (`HOWTO.md`, `FEATURES.md`, de/en) ergänzt. Testdateien aus #326 unter `src/detail/__fixtures__/mspdi/`, neue Vitest-Tests (`mspdi.test.js`, `io.mspdi.test.js`, `ioDialogs.mspdi.test.js`)"}},"signatureDigest":"sha512"},{"version":"2.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.3.1-dfa2744/nc_gantt-2.3.1-dfa2744.tar.gz","created":"2026-10-08T10:51:09.364492Z","licenses":["agpl"],"lastModified":"2026-10-08T10:51:09.449511Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"SyxWUVyCpTQLPxS+xO0fql5J5JU3bLcZZqKjcGXUuJ4ItZR/vtu3Y77+2dl+KUAa\n  cLQk/TaFcUGcxjtdIAi3CoKedhrsF0qbZBb83Uku37VyI9m1TCIh8nMDFQw9B0Wq\n  PL84ZWw9n/xNNkgSSmgJH7fmb7V6t1gekJu/0C/SuLZQdEf7fwTaz1roc85ps+tS\n  vhAlmd3qJXPPMncJOcAkF9TMjiN2FaCo7QxVIWrINCTAJK0to0FY2UUwd2XrNOg+\n  SWPDrNTnUqzQENMW7/9HjER3MDmL7q4Z/byBkI0jyQbBDZABgKttA+/IzMUrCnZU\n  22IFasExflCFT8mPbEOTomJ6nn6YDZWohxjQeMffrNQThv/lIQzeoIsxjiwwHyPM\n  dD7D/cp1rDIowZUbBs9A/vh6EKgDjuJxqYchxQa5ngyDDCfq3R33Bfo1tMqq9X6p\n  oYod896x9Tzvfi3QDRsEeBNe5ytagujrb6xdV/52TOAdgAh1asi0TfG8nYkTI74F\n  5i2UNPf0+yPtVDkX+GVwlS1A/s0dlNN7fNgpIgP8+juLh6bD3M60sg7ikHuyabhG\n  5PFXSkgOTwL3WHSts741xQmGxIoUrynAd6Kl5yRnLkw8MHFPgPSXJOoSKBVaVYVn\n  ZrrEflEPWRdwC122sKwkEaZtlAdAaxi1w++gnDNvSKg=","translations":{"en":{"changelog":"### Security\n- **Deck-Verknüpfung nur noch für Karten mit Leserecht** (Issue #330): `DeckLinkService::add()` prüfte nur das Bearbeitungsrecht an der Gantt-Aufgabe, nicht das Leserecht an der Deck-Karte. Da Karten-IDs fortlaufend sind, ließen sich fremde Karten verknüpfen – ihr Stand (Titel, Termine, Zuständige, Checklisten-Fortschritt) lief danach über den Deck-Abgleich in die Abweichungen und den Fortschritt der Aufgabe, die Karte war für die eigentlichen Board-Mitglieder belegt (`deck_card_taken`), und spätere Deck-Aktionen anderer Projektmitglieder trafen die untergeschobene Karte. Jetzt prüft `add()` vor dem Speichern per `DeckGateway::permissionsForCard()` im Namen der handelnden Person, ob sie die Karte lesen darf; fehlende Karte und fehlendes Leserecht werden gleichermaßen mit `invalid_deck_card` abgelehnt (ist Deck nicht verfügbar: `deck_unavailable`). Das Board der Verknüpfung stammt aus Deck; der Parameter `board_id` von `POST /tasks/{id}/deck-links` wird nicht mehr ausgewertet. Bereits bestehende Verknüpfungen werden nicht automatisch bereinigt: Die Tabelle speichert nicht, wer eine Verknüpfung angelegt hat, und Migrationen laufen ohne angemeldeten Nutzer, sodass sich das Leserecht des Anlegenden nachträglich nicht prüfen lässt. Doku (`FEATURES.md`, de/en) angepasst, neue PHPUnit-Tests in `DeckLinkServiceTest`\n- **Dateianhänge: keine Rechteausweitung mehr durch Weiterteilen fremder Dateien** (Issue #325): `AttachmentService::reconcile()` legte die Freigaben einer angehängten Datei für alle Projekte im Namen der *ersten* anhängenden Person und mit deren Rechten an. Wer eine fremde Datei nur lesend geteilt bekommen hatte, konnte sie an ein eigenes Projekt hängen und sich selbst bzw. weiteren Bearbeitern dadurch Schreibzugriff im Namen der Eigentümerin verschaffen. Jetzt teilt die App je Anhang nur im Namen der Person, die die Datei an *dieses* Projekt angehängt hat, begrenzt auf deren eigene Rechte an der Datei; wer die Datei weder besitzt noch weiterteilen darf (`PERMISSION_SHARE`), teilt sie mit niemandem. Da Nextcloud je Datei und Empfänger nur eine Freigabe zulässt, gilt die mit den weitestgehenden Rechten (bei Gleichstand die bisherige, sonst die älteste); stammt eine bestehende Freigabe von jemand anderem, wird sie ersetzt. Bereits bestehende überhöhte Freigaben korrigiert die Migration `Version1046` einmalig beim Update, indem sie die Freigaben aller angehängten Dateien nach den neuen Regeln abgleicht. `add()` lehnt Dateien bzw. Notizen, die der Nutzer weder besitzt noch weiterteilen darf, mit `invalid_file` bzw. `invalid_note` ab; der Dialog erklärt den Grund. Doku (`FEATURES.md`, de/en) angepasst. Neue PHPUnit-Tests in `AttachmentServiceTest` und `AttachmentShareReconcileMigrationTest` sowie ein Vitest-Test in `attachments.test.js`\n\n### Added\n- **Ersteller eines Projekts in der Projektliste** (Issue #327): Der Avatar des Erstellers steht zwischen Projektfarbe und Projektname; Ersteller und Erstellungszeitpunkt nennt der Tooltip am Projektnamen im Bearbeiten-Dialog („angelegt von: … am JJJJ-MM-TT um HH:MM“); ein Klick auf den Avatar öffnet das Kontaktmenü von Nextcloud, sodass sich die Person direkt erreichen lässt. Sichtbar für alle, die das Projekt sehen dürfen, ohne dass zusätzliche Projekte sichtbar werden. Admins erhalten zusätzlich einen Filter **Ersteller** über der Projektliste (Initial State `is_admin`). Die Projekt-Endpunkte liefern dafür `owner_display_name` (nicht persistiert, über `IUserManager::getDisplayName()`, Fallback UID). Neuer occ-Befehl `nc_gantt:projects:list [--owner=<uid>] [--output=json]` als Admin-Weg ohne Oberfläche. Doku (`FEATURES.md`, de/en) ergänzt. Neue PHPUnit-Tests (`ProjectServiceTest`, `ProjectsListTest`), Vitest-Tests (`projectOwner.test.js` und erstmals ein Komponententest `ProjectList.test.js` — dafür `@vitejs/plugin-vue` und `@vue/test-utils` als devDependencies) sowie der E2E-Test `project-owner.spec.js`\n- **KPI-/Statusleiste pro Nutzer abschaltbar** (Issue #318): Neuer Schalter „KPI-Ansicht anzeigen“ in den Einstellungen der App (Zahnrad in der Navigation) blendet `ProjectRollup` (Fortschritt, Terminabweichung, Risiko, Blockiert, Deck-Abweichungen, EVM) über dem Gantt-Chart ein oder aus; wirkt sofort und bleibt nach Reload erhalten, gespeichert als UI-Preference (`kpi_rollup_visible`) wie die Tabellenansicht. Standard bei **Neuinstallationen: aus**; bei **bestehenden Installationen bleibt die Leiste wie bisher sichtbar** — eine Migration (`Version1045`) setzt dafür einmalig den App-Default `kpi_default` auf „an“, aber nur wenn er noch nicht gesetzt ist und bereits Projekte existieren (sonst gilt eine Installation als neu). Ein einmal gesetzter App-Default wird von späteren Updates nie überschrieben, ein eigener Nutzerwert hat stets Vorrang. Bericht und Dashboard-Widget sind nicht betroffen. Neue PHPUnit-Tests (`KpiDefaultMigrationTest`), Vitest-Tests (`settings.test.js`) und der E2E-Test `kpi-rollup-visibility.spec.js`\n- **Direktlink in jedem Termin des projektbezogenen Kalender-Feeds** (Issue #303): Meilensteine, Projektzeitraum und Teilprojekt-Zeiträume des Feeds `GET /projects/{id}/calendar.ics` verlinken jetzt per `DESCRIPTION` und `URL` zurück auf das Projekt in der App — wie es die persönliche Übersicht „Meine Termine“ und der Tasks-App-Abgleich bereits tun. Damit lässt sich jede Gantt-Aufgabe, die in Kalender oder Tasks-App sichtbar ist, mit einem Klick dort öffnen und aktualisieren, auch wenn Kalender-Termine selbst nicht abhakbar sind und der Tasks-App-Abgleich nur in eine Richtung läuft.\n\n### Fixed\n- **Verständlicherer Hinweis zum Abbrechen beim Deck-Abgleich** (Issue #307): Die deutsche Übersetzung des Hinweises im Bestätigungsdialog vor dem Schreiben nach Deck ist klarer formuliert; der englische Quelltext bleibt unverändert."}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.3.0-b0879cb/nc_gantt-2.3.0-b0879cb.tar.gz","created":"2026-09-30T11:31:36.709151Z","licenses":["agpl"],"lastModified":"2026-10-06T08:29:14.537389Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"S4LN+K40y1DKrwQo02FOHkiugxuFllfcAsVp7IBoUthbKYnNdZtSmzBH+ZxY0V8C\nU954MnYEijFZD14jMuW2wkvMomspSCRGfCfEHytRCLfNwmsK9AV5UfxutjQBe6Y/\nATjKYnhOEPrE2iXLOZ+P73VbC8GBPY6W21P1APsy0Af+XUoFycIdTnLJUU5QJgWY\n+K/N7nUfXyqVA17kCO+/Zhw6w5wl5O7ZIMezWbNn3ApvOeIC8AE/CwJ/JccrQgE9\nF4A1RTqFZcK0hCrluGelanyva6ygwAmYPoJtkR+CeiJr7vFdSSq6HJe0lG0y9SAm\nRNFnDuEzt6uFqSl9EqK6ykVp7ns0k6npvld3gSqGN0Frq4dwGjxSjcRkpPGAYT7M\nIH6YJDVlNbVdF/wRJtEmOvO1duI4uzBhjX3PIFX1LBoFR0p5OsKuMIAXGEupbBi4\nBV9Zu5578h5VQzZt32gFnsQcGVsvAn2nayCCbcQx/WUHSW57NmBdktF4l+7tme/p\nvL+hzncZ2sdDbhDrrDq2G167QwkAJgpGJFQR+34YpGrY3DDhj767+Q/bMHwm4zmk\nVYm+g4MAf49P2CKyqwVB1E9SGe3MgTK2rDRnibhVIlgVEDvih1Uf/E5wigpBJerf\nE1DvLXTLEtteko53AjIpT/GWpiiD9md4QpCUUdfGMnU=","translations":{"en":{"changelog":"### Added\n- **Aufgaben und Teilprojekte per Drag & Drop umsortieren** (Issue #299): Vor jeder Aufgabe und jedem Teilprojekt steht in der Tabelle ein Ziehgriff (☰, ganz links, unabhängig von der Einrückung); eine blaue Linie zeigt die Einfügeposition. Verschoben wird nur innerhalb desselben Elternobjekts und unter Zeilen desselben Typs, sonst zeigt der Mauszeiger „nicht erlaubt“ und ein Ablegen bricht ab. Neuer Endpunkt `PUT /api/v1/projects/{projectId}/row-order` (`kind`, `id`, `before_id`) mit `RowOrderService`: vergibt die `sort_order` aller Geschwister fortlaufend neu (auch bei gleichen Werten), Schreibrecht nötig. Bewusst nicht Teil: Griff für Meilensteine (sie haben keine `sort_order`, stehen vor den Aufgaben ihres Elternobjekts) und Projekte, Umhängen in ein anderes Teilprojekt; der Zeiger ist der Standard-„nicht erlaubt“-Zeiger des Browsers. Doku (`FEATURES.md`, de/en) ergänzt. Neue PHPUnit-Tests (`RowOrderServiceTest`), Vitest-Tests (`rowDrag.test.js`) und der E2E-Test `row-reorder.spec.js`\n\n### Fixed\n- **Klick auf das Deck-Abweichungssymbol öffnet den Dialog wieder beim Bereich „Abweichungen von Deck“** (jetzt im Reiter „Verbindungen“): `focusDeckSection` wurde im Dialog-Kontext nicht mehr weitergereicht. E2E-Tests für die Reiter angepasst\n- **Tabelle und Gantt-Chart scrollen vertikal zuverlässig gemeinsam** (Issue #292): Tabellenzeilen und Balken standen schon ganz oben um 9 px versetzt (Tabellenkopf 52 px, erste Chart-Zeile erst bei `header_height + padding / 2` = 61 px), und weil nur das Chart den Ressourcen-Bereich enthält, konnte es weiter scrollen als die Tabelle – die Tabelle blieb am Ende hängen, das Chart zeigte einen anderen Ausschnitt oder sprang zurück. Der Tabellenkopf ist jetzt so hoch wie der Chart-Kopf bis zur ersten Zeile, ein Platzhalter unter den Tabellenzeilen gleicht Ressourcen-Bereich und Scrollleisten aus (per `ResizeObserver` laufend nachgeführt), sodass beide Seiten denselben maximalen `scrollTop` haben. Der Sync überträgt nur noch bei tatsächlicher Abweichung statt über ein synchron zurückgesetztes `syncing`-Flag, das asynchrone Scroll-Events nicht abfangen konnte. Geometrie in `src/gantt/tableScrollSync.js` (Vitest), neuer E2E-Test `table-scroll-sync.spec.js`\n\n### Added\n- **Deck-Karten schon beim Anlegen einer Aufgabe verknüpfen oder neu anlegen** (Issue #306): Der Deck-Bereich im Reiter „Verbindungen“ war bei neuen Aufgaben gesperrt („Speichere zuerst die Aufgabe“). Jetzt lassen sich Karten auswählen und „+“ vormerken; beim Speichern verknüpft bzw. legt die App sie an (`deckCardsSection().commit()`). Schlägt eine Deck-Aktion fehl, bleibt die Aufgabe gespeichert und ein Hinweis nennt die Zahl der Fehlschläge. Board und Kartenliste des Pickers folgen dem gewählten Projekt und übergeordneten Objekt (auch beim projektlosen Anlegen über „Aufgabe“). Der Termin-Abgleichsdialog entfällt dabei; Abweichungen zeigt danach der Bereich „Abweichungen von Deck“\n- **Reiter „Anhänge“ in allen Detaildialogen** (Projekt, Teilprojekt, Aufgabe, Meilenstein; vor „Verbindungen“) mit den Bereichen **Dateien** und **Notizen**: beliebig viele Dateien (Nextcloud-Dateiauswahldialog mit eigenen Ordnern) und Notizen (Auswahl aus der App Notes im Stil der Deck-Kartenauswahl) verknüpfen. Der Server teilt jede angehängte Datei automatisch mit allen Personen, die Zugriff auf das Projekt haben (Betrachter lesen, Bearbeiter/Admins dürfen ändern) und gleicht die Freigaben nach jeder Änderung an Anhängen, Projektfreigaben und Löschungen ab; entfernt werden nur die von der App angelegten Freigaben (`nc_gantt_attach_shares`). Die Freigabe gilt je Datei, nicht je Objekt: Sie bleibt bestehen, solange die Datei an mindestens einem Objekt der App hängt. Doku ergänzt in `FEATURES.md` (Abschnitt „Anhänge: Dateien und Notizen“, de/en), READMEs, HOWTO (Schritt 10) und Store-Beschreibung (`info.xml`). Neue Tabellen `nc_gantt_attachments` und `nc_gantt_attach_shares` (Migration `Version1044`), Endpunkte `GET/POST /attachments`, `DELETE /attachments/{id}`, `AttachmentService`. Die Dateiauswahl hängt sich in den modalen Detaildialog ein (sonst läge sie unsichtbar dahinter), und nachgeladene Bundle-Teile (Dateiauswahl, Datumsformate) nutzen den tatsächlichen Installationsort der App als Adresse (`src/publicPath.js`; die Vorgabe `/apps/nc_gantt/js/` griff z. B. unter `custom_apps` nicht). Neue PHPUnit- (`AttachmentServiceTest`) und Vitest-Tests (`attachments.test.js`) sowie der E2E-Test `attachments.spec.js`\n- **Aufgaben können von Meilensteinen abhängen** (Issue #308): Vorgänger `m-<id>` neben `t-<id>` (keine Migration), in allen vier Typen mit positivem und negativem Abstand. Ein Meilenstein zählt als Punkt mit Start = Ende = seinem Datum; ein **fester** verschiebt sich nie und zieht seine abhängigen Aufgaben samt Nachfolgern mit, ein **abgeleiteter** folgt weiter seinem Ziel und gibt dessen Verschiebung an die Aufgaben dahinter weiter. `TaskSchedulingService` (Prüfung, Termine, Propagation, Neuberechnung) kennt Meilensteine als Knoten; die **Zyklenprüfung** berücksichtigt die Kanten Zielaufgaben → abgeleiteter Meilenstein und läuft auch beim Speichern eines Meilensteins (`dependency_cycle`); der Dialog sperrt solche Meilensteine als Vorgänger bzw. Ziele mit Hinweis. Im **kritischen Pfad** sind Meilensteine Knoten: ein fester ersetzt das Projektende als spätestes Ende für die Aufgaben, die über eine Abhängigkeit vor ihm liegen; ein **negativer Puffer** verhindert das Speichern mit dem Hinweis auf die betroffene Aufgabe (`negative_float:<Titel>`, bereits negativer Puffer wird nicht erneut gemeldet). Beim Löschen eines Meilensteins (auch über Aufgabe/Teilprojekt) entfallen die Abhängigkeiten auf ihn, `ProjectDuplicationService` und JSON-Import/-Export münzen `m-<id>` auf die neuen Meilensteine um. Oberfläche: Auswahl `M<id> <Titel>` im Abhängigkeits-Editor, Kurznotation `M3EA-2d` in der Vorgänger-Spalte, Pfeile von und zu Meilenstein-Balken, Nummerierung `M<id>` im Diagramm, Glossar und `FEATURES.md` (de/en) nachgezogen. Bekannte Vereinfachungen: die Pufferrechnung zählt den Meilenstein-Termin in Arbeitstagen des globalen Kalenders ab dem frühesten Aufgabenbeginn, und ein Meilenstein-Termin verschiebt keine Deck-Karten (Deck-Abgleich läuft nur bei Änderungen an Aufgaben). Neue PHPUnit-Tests (`TaskSchedulingMilestoneTest`, `CriticalPathMilestoneTest`, ergänzt: Meilenstein-, Duplizierungs-, Lösch- und Datums-Tests), Vitest-Tests und der E2E-Test `milestone-dependency.spec.js`"}},"signatureDigest":"sha512"},{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.2.0-6aba2b6/nc_gantt-2.2.0-6aba2b6.tar.gz","created":"2026-09-28T07:36:50.642048Z","licenses":["agpl"],"lastModified":"2026-09-28T07:36:50.736970Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"esXfyynRSXx6Sc+EbEb+n8jhv9KklmBcayRslKKo0dpavjZ1x7CE/oUKrOppOVm7\n  YsCst1sFoTz/sPZ4qveDz/erE0STxAi2UMyiHHUglJ3JmcCJKtF5byki45BAm02V\n  PV7dn+EYQP8bd4jWy96mQa66eGzuuAsgR/mA7S1UC9SvcKq6UF6A0LJpJqMyInaR\n  ycEg6H78WtrIOKAuB5WyaEo20IRsXIechdfyl39Xz1bl1IextE3DPey0OaV6CzfF\n  6YQeMho+ja2iqh6JKfAzq2zKgTDBLo/bcgk8Gy/b4djBX5KES2w96x535UG7a6JM\n  fYEg7QdRUqOGgXoCTRSwIAGtqX8bq9sc7058+5NqO9xYOiGDzfv6dJ94x6+KXpd4\n  eN1N1P0+MfL9TKP27NQLsy46vXPU36w4cSijoMmxyrYGUbVVudrb8XANUvv/jZc+\n  d/yNvPzhYRDHvoGJ3gn5exgVpQW2M7qQMOBVDYDkROo1UqKv1k3da9s14VMHtX6y\n  PyhIdtt6Qi7Lu0cMykFH0rYQYoe84Ot3Xb547ldyNCCDAeta4vTczDbA5dTrdstM\n  HCrbbSl4iF/Lu7zeVhlxnWnQyuC5HjUg0vVuikxkEyYScruNJw4prkXD04XHOMyG\n  1HOBUrG2tiFl60B8XGyibo5+fc1ioQFwe2iIjdLOW3M=","translations":{"en":{"changelog":"### Added\n- **Implizite Kopfzahl je Aufgabe** (Issue #252, Schritt C aus #249; R11): Der Aufgabendialog nennt unter jeder Zuordnung mit Aufwand im Klartext, wie viele Personen gleichzeitig nötig sind („Erfordert im Schnitt 2,0 × Java-Entwickler gleichzeitig“) — `Aufwand ÷ Arbeitstage des Balkens ÷ Tageskapazität einer vollen Kraft`, je Zuordnung, live bei Änderung von Aufwand, Start, Ende oder Dauer. Gezählt wird nach dem **globalen Kalender** (Mo–Fr abzüglich globaler Feiertage) für Rollen und Personen gleich; Personenkalender zählen nicht (Entscheidung in #252, daher entfällt das Akzeptanzkriterium „Teilzeitkalender“). Ab der **Warnschwelle** (globale App-Einstellung `headcount_warn_threshold`, Standard 3,0, gültig 0,5–100, im Admin-Bereich unter „Warnen ab“; `GET`/`PUT /settings` liefern und setzen `headcount_threshold`, ein `PUT` ohne den Wert lässt ihn unverändert, Initial State für das erste Rendern) erscheint dort zusätzlich die Konsequenz („mit weniger Personen dauert die Aufgabe entsprechend länger“), und die Tabelle zeigt vor dem Titel ein Personen-Symbol mit Tooltip — ein Hinweis, keine Blockade. Aufgaben ohne Aufwand oder ohne Arbeitstage und Zuordnungen in anderen Einheiten als PT/h zeigen nichts. Die Rechnung liegt als reine Funktion in `src/utils/headcount.js`, die Schwelle in `WorkTimeService`. Nicht Teil: Hinweis am Balken im Diagramm, Prüfung der tatsächlichen Verfügbarkeit (Schritt B, #251). Neue Texte in allen Übersetzungen; `FEATURES.md` und `HOWTO.md` (de/en) sind nachgezogen. Neue Vitest-Tests (`headcount.test.js`, `tableRows.test.js`, `settings.test.js`) und PHPUnit-Tests (`WorkTimeServiceTest`)\n- **Kapazitätsprüfung über Rollen hinweg: Engpass-Teilmenge statt Einzelrolle, Alarm über ein gleitendes 5-Tage-Fenster** (Issue #251, Schritt B aus #249; R6, R10): Rollenkapazität ist nicht additiv — bei zwei Java-Entwicklern, von denen einer zusätzlich IT-Architekt ist, besteht „2× Java + 1× Architekt“ die Einzelprüfung (2 ≤ 2, 1 ≤ 1), ist aber nicht zu leisten. Neuer **UI- und datenbankfreier Rechenkern**: `CapacityFlow` löst je Fenster ein **Flussproblem** (Bedarfsknoten = Rollen und **direkt zugewiesene Personen** im selben Fluss, Kante wo die Person die Rolle ausfüllt, Personenkapazität zur Senke; Dinic in `CapacityFlowGraph`) und liest die **Engpass-Teilmenge** aus dem Min-Cut, zerlegt in unabhängige Engpässe samt den Personen mit Mehrfachrolle als Ursache; `CapacityWindowCheck` legt darüber das **gleitende Fenster von 5 Arbeitstagen** (fest, nicht konfigurierbar, Feiertage verkürzen es nicht): **rot** = irgendein Fenster fließt nicht (nicht durch Verschieben lösbar), **gelb** = ein einzelner Tag fließt nicht, aber alle Fenster um ihn (Tagesspitze, umsortierbar); Tage, an denen niemand des Knotens arbeitet, zählen nicht als Spitze (Teilzeit Mo–Do erzeugt keine Meldung); überlappende Verstöße mit gemeinsamen Rollen werden zu **einem Zeitraum** zusammengefasst. `CapacityCheckService` trägt Aufgaben der für den Betrachter sichtbaren Projekte (Lücke bewusst akzeptiert, wie in #181), Rollen und Personenkapazität zusammen — Bedarf auf dem **globalen Kalender**, Kapazität aus den Personenkalendern (`ResourceUtilizationService::personCapacityFn()` ist dafür öffentlich), Material ausgeschlossen, Rolle ohne Personen meldet rot — und liefert `GET /api/v1/capacity-check` (Rollen, direkte Personen, Zeitraum, Fehlbetrag in Stunden, Ursache, betroffene Aufgaben). Die Tabelle zeigt vor dem Titel eine kleine **Person in Gelb oder Rot** mit Tooltip („Java-Entwickler + IT-Architekt zusammen überbucht (KW 42). Fehlbetrag: 5 PT. Ursache: Mehrfachrollen von …“), keine Benachrichtigungen; der Store `capacityCheck` lädt bei Änderungen an Aufgaben, Rollen, Kapazität oder Feiertagen neu. Ressourcen-Raster und Workload-Chart färben nach demselben Fenster (rot = Fenster überbucht, gelb = Tagesspitze oder **über 90 % im Fenster**, Tooltip mit Reserve), die Rollenzeile übernimmt das Urteil der Prüfung. Nicht Teil: Sequenzierungsvorschlag (#282), Kostenminimierung der Zuordnung (entfällt), Projektkalender (#284). Bekannte Grenzen (in `FEATURES.md`): nur sichtbare Projekte, Aufgaben kürzer als das Fenster werden verdünnt (fängt die implizite Kopfzahl aus #252 auf). Neue Texte in allen Übersetzungen; `FEATURES.md`/`HOWTO.md` (de/en) und die Integrationsmatrix sind nachgezogen, der Hinweis auf die naive Rechnung aus #250 ist entfernt. Neue PHPUnit-Tests (`CapacityFlowTest`, `CapacityWindowCheckTest`, `CapacityCheckServiceTest`; u. a. Prüffall, Kette über drei Rollen, Bedarf exakt auf Kapazität, Rolle ohne Personen, Laufzeit 30 Personen/10 Rollen/1 Jahr), Vitest-Tests (`capacityCheck.test.js`, `workloadModel.test.js`, `tableRows.test.js`) und der E2E-Test `capacity-check.spec.js`\n\n- **Projekt duplizieren bzw. als Vorlage für ein neues Projekt verwenden** (Issue #270): Die Aktion **Duplizieren** im Menü des Projekts in der Navigation (auch mit reinem Leserecht) und im Projektdialog legt ein neues Projekt der ausführenden Person an. Der Dialog fragt Titel („Kopie von …“), **neuen Starttermin** (Vorschlag: bisheriger Projektstart = frühester Aufgabenbeginn) und die Ressourcenzuordnungen (alle / nur Rollen / keine). Alle Termine — Aufgaben, Meilensteine, Planungszeiträume von Projekt und Teilprojekten — verschieben sich um die Differenz in **Arbeitstagen des globalen Kalenders**, ein Start auf einem freien Tag rückt auf den nächsten Arbeitstag, bei unverändertem Start bleiben die Termine unberührt. Übernommen werden Teilprojekte samt Hierarchie, Aufgaben, Abhängigkeiten mit Typ und Abstand, Meilensteine mit Zuordnung und Abhängigkeitstyp (abgeleitete folgen dem kopierten Termin), Zuordnungen samt Aufwand (nicht sichtbare Ressourcen entfallen, der Aufwand wird bei weggelassenen Zuordnungen neu gebildet), Farben, Beschreibungen und Projektregeln; zurückgesetzt werden Fortschritt (Modus „Deck“ wird „manuell“), Status, Ist-Kosten, Baselines, Änderungsprotokoll, Freigaben, ICS-Token, Deck-Board, Deck-Listen und Kartenverknüpfungen (Deck-Abgleich „Aus“). Neuer `ProjectDuplicationService` legt alles **in einer Transaktion** über die Mapper an (kein Änderungsprotokoll, keine Benachrichtigungen, kein Deck-Zugriff); `GET /projects/{id}/duplicate` liefert Start und Umfang für den Dialog, `POST /projects/{id}/duplicate` (`title`, `start_date`, `resources`) die Kopie (201). Nicht Teil: eigene Vorlagenverwaltung (Projekte als „Vorlage“ markieren, Galerie beim Anlegen). Neue Texte in allen Übersetzungen; `FEATURES.md` und `HOWTO.md` (de/en) sind nachgezogen. Neue PHPUnit-Tests (`ProjectDuplicationServiceTest`), Vitest-Tests (`duplicate.test.js`, `ioDialogs.duplicate.test.js`) und der E2E-Test `project-duplicate.spec.js`\n\n### Changed\n- **Rollenzeile im Ressourcen-Raster ohne „naiv additiv“ (#251):** `GET /resources/{id}/utilization` liefert für Rollen nur noch `capacity_derived`; `capacity_naive` und `multi_role_member_ids` entfallen, ebenso der Hinweis „zu optimistisch“ im Raster (ersetzt durch den Verweis auf die Prüfung über alle Rollen). Das Workload-Chart unter dem Diagramm färbt Perioden nicht mehr je Periode rot, sondern nach dem 5-Tage-Fenster (rot = Fenster überbucht, gelb = Tagesspitze oder knapp)\n\n### Fixed\n- **Server-Zeitzone der Arbeitszeiten aus `default_timezone` statt immer UTC** (Issue #294): Nextcloud setzt die PHP-Zeitzone in `lib/base.php` fest auf UTC, deshalb zeigte der Admin-Bereich unter „Arbeitszeiten“ immer „UTC (+00:00)“ und Arbeitsbeginn/-ende wurden als UTC ausgelegt — neue Termine im Detaildialog/Import und die Deck-Fälligkeiten lagen dadurch 1–2 Stunden daneben. Neuer `ServerTimeZoneService` liest `default_timezone` aus der `config.php` (fehlt der Wert oder ist er ungültig, bleibt es bei UTC); `GET`/`PUT /settings` liefern dessen Namen und aktuellen Versatz, der Deck-Terminabgleich legt `work_start`/`work_end` in dieser Zeitzone aus. Neue PHPUnit-Tests (`ServerTimeZoneServiceTest`, `DeckDateSyncServiceTest`)\n- **Schrift im Balken passte nicht zur Balkenfarbe** (Issue #287): `.bar-label` stand in `theme.css` fest auf Weiß, unabhängig von Balkenfarbe und Theme — auf hellen und mittleren Farben, darunter die Standardfarbe `#0082c9` (Kontrast 4,2:1), war der Titel im Balken im hellen Theme schwer lesbar, während der Titel außerhalb des Balkens (`.big`) bereits die Textfarbe des Themes bekam. `injectProjectColors()` setzt jetzt je Farbklasse die Schriftfarbe, die nach WCAG den höheren Kontrast liefert (`labelTextColor()` in `colors.js`: Weiß oder `#111111`). Die Balkenfarbe ist in beiden Themes dieselbe, die Schrift deshalb ebenfalls. Bei Projekt- und Teilprojektzeilen (Summenbalken, nur eine auf 18 % abgeschwächte Klammerfläche darunter) war die vorgesehene Textfarbe des Themes wirkungslos: `.gantt-summary-bar .bar-label` und `.gantt .bar-label` hatten gleiche Spezifität und beide `!important`, die spätere gewann — der Titel blieb im hellen Theme weiß. Die Regel ist jetzt spezifischer (`.gantt .bar-wrapper.gantt-summary-bar .bar-label`); Meilenstein und Titel neben dem Balken (`.big`) behalten ihre Regeln. Neue Vitest-Tests in `colors.test.js`\n- **JSON-Export ohne Datenbank-IDs der Abhängigkeiten** (Issue #289): Je Abhängigkeit enthält der Export nur noch `predecessor_id`, `dependency_type` und `lag_days`; `id` und `task_id` (Datenbank-IDs des Quellsystems, im Zielsystem bedeutungslos) entfallen. Der Import bleibt kompatibel, ältere Exporte mit diesen Feldern werden weiter gelesen. Der E2E-Test zum Round-Trip aus #269 war seit seiner Einführung rot (erwartete exakt drei Felder je Abhängigkeit und übersah den Import-Optionsdialog) und ist korrigiert.\n\n### Security\n- **Benutzersuche beachtet die Enumeration-Einstellungen von Nextcloud und leakt keine E-Mail-Adressen mehr** (Issue #285): `GET /users/search` rief `IUserManager::search()` direkt auf und lieferte jedem angemeldeten Nutzer zu jedem Treffer UID, Anzeigenamen und E-Mail-Adresse — mit kurzen Suchbegriffen ließen sich so alle Konten der Instanz auslesen, auch wenn die Admins das Auflisten abgeschaltet oder auf Gruppen/Telefonbuch beschränkt hatten. Die Suche läuft jetzt über die Collaborators-API (`ISearch::search()` mit `IShare::TYPE_USER`, ohne Lookup-Server) wie der Teilen-Dialog im Kern und beachtet damit `shareapi_allow_share_dialog_user_enumeration`, `shareapi_restrict_user_enumeration_to_group`/`_to_phone`/`_full_match*` und `shareapi_only_share_with_group_members`; exakte Treffer stehen vorn. `subname` stammt ausschließlich aus deren Ergebnis, die App lädt keine E-Mail-Adresse mehr selbst nach. Das eigene Konto (nur mit `include_self`, #204) ergänzt der Controller selbst, wenn Benutzer-ID, Anzeigename oder E-Mail den Suchbegriff enthalten, weil die Collaborators-API es nie liefert. Neue PHPUnit-Tests in `UserControllerTest` (u. a. keine Fremdkonten bei abgeschalteter Enumeration)"}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.1.0-f901310/nc_gantt-2.1.0-f901310.tar.gz","created":"2026-09-24T10:31:27.422678Z","licenses":["agpl"],"lastModified":"2026-09-25T06:24:21.640518Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"ZQ2bK6Wi8ifFLdOZU9fKEitqGU2/V3SC8sQadWpViyGbPp9TFzXz/m+6VOgxRM0K\n88XrfFLwkUN5CrQ8Mzj8rzUUKAp0ANWZVMC43yWzABpywSQ+FosMPTPoPyS7dymn\neKXUnbqfSE3yebLbOtpQaK9VIMVXfvIpMQuIaSnnSX/Mi3ofY4oN3eyBy9NT1uH+\nicAEBU4EFZbByJe3tF+IdKP81OX0kFydqeuiSgWJph7yRxP+ucBioO+BsjGB1ZGh\n2kiCYjlYoZPbgc4WSoWfe3WGY/cUiqr/6sPEkdWfYHrG6c/tUuNhM1E1pmBXlwIK\nS3IzZVklRWFkFcTHdYLAg5QKWTN2+m0sCpPkMkZQn2NYXQNQ5oAPKNoDTMBmW+zG\nB72pYfEAs5TQFGcn1M6k6e4IdVjnLtM6AdmyeMdu9y8hKUH8en1RT/MVbXZlFN7O\nfZoXKZSwpdocdqMZOqaT3qoUTFUZbmOBzcQQ3xeYQ4H2UvIp4PlyPkXeiFEHKY93\nhZWcmtTHthlbPGhtnAutXA7zCzruiXisJXCNaf7ZM+xSbtW3GeLqRMwkLImyxydK\n1C+BekGHiJaWI32PyqZH1mwR+V1qgqLLcD3yb+gKOBOUSBW4pdMnNpmvnO7y8KBg\njw8MQf3e5b0JVVoksbULqjqvCOm2ug60NIZYCfp59BA=","translations":{"en":{"changelog":"### Changed\n- **Detaildialog in abgesetzte Bereiche gegliedert** (Issue #263): Die Formulare für Projekt, Teilprojekt, Aufgabe und Meilenstein fassen ihre Felder jetzt in Bereiche mit Rahmen, farbig hinterlegtem Kopf, Symbol und Überschrift zusammen (z. B. Grundinformationen, Darstellung, Terminplanung, Budget und Kosten, Ressourcen, Risikostufe, Fortschritt und Status, Deck, Erinnerungen, Baselines, Export und Import). Die Bereiche heben sich vor einem dezent getönten Dialoghintergrund ab, der Dialogkopf zeigt ein Symbol der Objektart, Feldbeschriftungen stehen in normaler statt Versal-Schrift, und die Risikostufen tragen ihre Ampelfarbe auch ungewählt. Die Farbtöne sind aus den Nextcloud-Farbvariablen gemischt und funktionieren im hellen wie im dunklen Design. Die Trennlinien zwischen den einzelnen Feldern aus dem ersten Anlauf entfallen dafür. Symbole kommen aus `@mdi/js`, das jetzt direkte Abhängigkeit ist\n- **Neue App-Store-Screenshots zur überarbeiteten Oberfläche**: Die zehn verlinkten Bilder in `appinfo/info.xml` sind neu aufgenommen (Projektstruktur, Abhängigkeiten im gegliederten Detaildialog, Tabelle, kritischer Pfad, Ressourcen, Kalender und Feiertage, Abweichungsbericht, Kennzahlen/EVM, Simulation, Mehrprojektansicht mit Filter). Sie liegen jetzt unter `screenshots/appstore/` statt `screenshots/usecases/`, damit der App Store nicht auf zwischengespeicherte alte Bilder unter den bisherigen URLs zurückgreift; die übrigen, veralteten Bilder aus `screenshots/` sind entfernt. Das Showcase-Skript scrollt dafür in UC 2 den Abschnitt „Abhängigkeiten“ des Dialogs ins Bild und in UC 5 das Ressourcenraster ganz nach links"}},"signatureDigest":"sha512"},{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.0.1-03b8e27/nc_gantt-2.0.1-03b8e27.tar.gz","created":"2026-09-24T07:49:18.787873Z","licenses":["agpl"],"lastModified":"2026-09-24T07:49:18.913736Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"blE0iU/iUXgQIlpljnjDbdufoMyB2l1S9iGos0PQ3DDhQU9wFB13iopDY4YfCjrW\nY2bVw//uxXAO1S4wzURGPTAEgXGI3NM4A2JaHsxMREiJoU6ANjCSOnt45f9yvgNC\nse02XpRKzbTtIUXTIGsH2KUe3grZ7hHg95x4riQhhrLhsDESZMZANpO60O52/AMM\ngb4yZiCTbUUr1IzM/IowbHWJcghd6RG8KG+EwONJpRqJVjZhcqhNgcM9k/nKyCxY\ntw6o7MIlwQmOUzh6kZXxl8p4auRpiHcGrruiWzJwEb6WSmH/XFTdGwP/ZV8lNnoj\nKrR2e+yaKiPMR7UQLrtE8yUe1LGmghJejF/cDO3uLEOGD87gZfHjqXAJOrHI+zyx\nFcT65clu8MUG2Tk1PQammIkYty0sPaHKwB/woLOlEBWX8LqrAK9ylOD7NHTdArhJ\nTibyfWC9UI1f/iyBYu0xCEq11T23DtrFcpun7ELMNUiQ2z260/PykzEK6WtEhRVd\nhgLyzf3YoFSqRNOM5IfewWlGt9YdyM4J3bLIYP01GY4MFV90y9M7/RcaehOG3U/5\nDFnQswUXRr9ivk4S7dFt7J0WqltzLDqbIwtXi5f6TEqahrYD1Y46W4JXArdhOK+P\nFE4VR6KQrLzKQ9PQhTbrfqCLj0tewWnxc8g6OgIGGk4=","translations":{"en":{"changelog":"### Changed\n- **App-Store-Beschreibung und README neu gefasst:** Zusammenfassung und Beschreibung (`info.xml`, Deutsch und Englisch) stellen jetzt das professionelle Projektmanagement mit der Deck-Integration als Alleinstellungsmerkmal in den Vordergrund, die Funktionsliste ist kompakter, und ein eigener Abschnitt erklärt die Datensouveränität (alle Daten bleiben auf der eigenen Instanz). Das englische README und `docs/de/README.md` übernehmen den Wortlaut. In den übrigen Sprachen entfällt an zwei Emojis der Variation Selector\n- **Toolbar-Schalter einheitlich:** Die segmentierten Schalter der Toolbars (Zeitskala und Darstellung im Diagramm, Zeitskala im Ressourcenraster) und der Ansichts-Umschalter der App teilen sich jetzt dieselbe Optik: eckige Segmente ohne eigenen Rand und ohne eigene Rundung, sodass Hover- und Aktiv-Flächen bis zur Kante reichen und kein Randstreifen mehr stehen bleibt; die Rundung kommt allein vom Container. Die gemeinsame Regel liegt in der neuen `segmented-switch.css` statt in mehreren nahezu identischen Blöcken\n\n### Fixed\n- **Leerzustand im Diagramm nicht mittig:** Der Leerzustand des Diagramms (`GanttChart.vue`) steht jetzt mittig, und sein Icon ist optisch zentriert (der `viewBox` war seitlich versetzt)\n- **Stylelint-Fehler in `ResourceGrid.vue`**: fehlende Leerzeile vor einer Regel (`rule-empty-line-before`), die den JS-Job der CI rot färbte\n- **JSON-Import brach bei Abhängigkeiten ab, Meilensteine fehlten im Export** (Issue #269): `importJson()` übergab `predecessor_id`-Werte unverändert an `store.createTask()` – die alten IDs des Quellprojekts bestanden den IDOR-Schutz aus #190 nicht (Import in ein anderes Projekt/eine andere Instanz brach mit `invalid_dependency` ab und hinterließ ein halb angelegtes Projekt) bzw. zeigten beim Import ins selbe Projekt auf die falschen (alten) Aufgaben. Aufgaben werden jetzt zunächst ohne Abhängigkeiten angelegt und diese erst danach mit auf die importierten Aufgaben umgemünzten `predecessor_id`-Werten nachgetragen – unabhängig davon, in welcher Reihenfolge Vorgänger und Nachfolger in der Datei stehen. `exportJson()` nimmt außerdem Meilensteine samt ihrer Zuordnung zu Teilprojekt/Aufgabe und ihres `dependency_type` mit; der Import schreibt diese Bezüge ebenfalls auf die neuen IDs um\n- **Balken mit Abhängigkeiten ziehen schrieb doppelt nach Deck** (Issue #267): frappe-gantt zieht beim Verschieben/Resizen eines Balkens dessen Abhängigkeits-Balken in der Vorschau um denselben Pixel-Versatz mit und feuerte `on_date_change` für jeden von ihnen einzeln – der Server berechnet die Kette beim Speichern des tatsächlich gezogenen Balkens aber bereits selbst (`propagated`). Der zweite, nur aus der Vorschau abgeleitete Save überschrieb die korrekt propagierten Termine mit dem naiven Pixel-Versatz und erzeugte bei aktiver Deck-Anbindung eine doppelte Rückfrage bzw. Erfolgsmeldung. `GanttChart.vue` verarbeitet `on_date_change` jetzt nur noch für den Balken, auf dem die Ziehbewegung tatsächlich begann\n- **Picker für eine zweite Deck-Karte konnte dauerhaft deaktiviert bleiben** (Issue #267): Der Deck-Bereich im Aufgabendialog rendert einmal sofort (Ladezustand) und ein zweites Mal, sobald die Verknüpfungen geladen sind – traf eine Auswahl im Picker genau in dieses Fenster, ersetzte der zweite Render Select und „Add“-Button durch neue, wieder deaktivierte Knoten und die Auswahl ging verloren. Der Bereich rendert jetzt erst, nachdem die Verknüpfungen geladen sind"}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v2.0.0-b7654b1/nc_gantt-2.0.0-b7654b1.tar.gz","created":"2026-09-23T09:00:30.517889Z","licenses":["agpl"],"lastModified":"2026-09-23T09:00:30.777520Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"kJ6Xo6R3EOShOn1PWZI+CpEgV34eRXUZy4CNPkmb+e7uqUL4Tu/tWsqGpu15PCRr\n8HR2enQnsTmTk2fkKQUKBqbcfvO3vfylEzNRxU7YuOtyGW6sFAdLSKK8MDnq9XxH\n1A91Bmumu7dxP+nh3u5EyGswDoH84tXcxVH0BHEr22ny4fo1/irWKT5RDcumVhyQ\nSZSqcwL1iEsYzmmFZJoyqQu7Cfy6IbZXko4OJJGYWLTBvu3CBfDpQFoCg0GaMevf\nSccjJXjY6+00oW3OGGn1JH3vz1dMm7l2vD7QfT04AoeFNxJkVcwFo9mTapZijalO\n3kgLc7GOLXG6I7hgmqyRBHuUfJAskET9WUl9Ya92UC2Fa8NGwiBFkkQnzy8BGzEp\nlbsQ/cDrFw9/U8c1RIfs3T0uOsjtSDeKIAaKQz/SJYAAYdv3SJvqWZxoIt6p04Vk\n4fBM02pxBrMH+rNR+X2frwCD3+q4zBtRSxfZNWzz0kHuo9vt714yVLh5dVynwPjP\n+6/5b6eE9BsobfL6M6HyZdAzZYIBkPZbfm11TA6nDT5WwUD5r+KBUJDT2hTChAVS\nn7pHjc3PQ6wWgVNjvJqmtV8mvH+qvWnLFGGFd5ttHMYjfB555hcStB2UF5cAzkji\n2hhP2aeeujkdcPkZ4XETBfQpkbNHaIPUxiEgUHz2oEs=","translations":{"en":{"changelog":"**Major-Release mit zwei Schwerpunkten.** Die Einzelheiten stehen in den Einträgen darunter.\n\n- **Komplett überarbeitete Deck-Schnittstelle** (Zielbild #234, Issues #209–#211, #235–#241, #244): Aus der reinen Verknüpfung mit Fortschrittsübernahme ist eine vollständige, optionale Zusammenarbeit geworden. Pro Projekt gibt es eine Stufe für den Deck-Abgleich: *Aus* (Standard), *Nur lesen*, *Schreiben mit Rückfrage* oder *Schreiben ohne Rückfrage*. Eine Aufgabe kann mehrere Karten haben, und Karten lassen sich direkt aus der Aufgabe anlegen. Termine werden mit Konfliktregel nach Deck geschrieben. Fortschritt und Status kommen sofort aus Deck. Abweichungen zwischen Plan und Deck erscheinen im Überblick, lassen sich annehmen und filtern. Beim Löschen können verknüpfte Karten archiviert werden, doppelte Erinnerungen werden unterdrückt, und ein `occ`-Befehl gleicht einmal vollständig ab. Ohne Deck oder ohne Opt-in ändert sich am Verhalten nichts; Bestandsprojekte starten höchstens auf *Nur lesen*.\n- **Neuer Umgang mit Planungsdaten für Projekte und Teilprojekte** (Issue #229): Bisher ergaben sich Start und Ende von Projekten und Teilprojekten ausschließlich aus ihren Aufgaben. Jetzt lässt sich zusätzlich ein eigener **Planungszeitraum** setzen, im Detaildialog oder direkt in der Tabelle. Gezeigt wird er statt des berechneten Zeitraums, auch bei noch leeren Teilprojekten. Laufen die Aufgaben über den Rahmen hinaus, markiert ihn ein rotes Ausrufezeichen. Ampel, kritischer Pfad, Filter und Rollups rechnen weiter mit dem tatsächlich verplanten Inhalt. Ohne gesetzten Planungszeitraum bleibt alles wie bisher.\n- **Warum eine neue Hauptversion:** Die API-Felder haben sich teilweise geändert. `deck_card_id` an Aufgaben ist nur noch ein berechnetes Lesefeld, Karten werden über `/tasks/{id}/deck-links` verknüpft (siehe „Changed“). Löschen über `DELETE` liefert jetzt einen Körper mit `deck`. Beim Update laufen die Migrationen `Version1039`–`Version1043` automatisch; vorhandene Kartenverknüpfungen werden übernommen.\n\n### Added\n- **Detail-Dialog per Klick aus der Tabelle öffnen** (Issue #264): Bislang öffnete der Detail-Dialog nur über einen Klick auf den Balken im Gantt-Diagramm, was bei größeren Projekten erst Scrollen zum richtigen Monat verlangte. Die Titel-Spalte der Tabelle hat jetzt einen geteilten Klickbereich: Bei Aufgaben und Meilensteinen öffnet ein Klick auf den Platz vor dem Bezeichnungs-Rahmen (Zusammenklapp-Pfeil, Farbpunkt, Abweichungssymbol/-zähler) den Detail-Dialog, während der Rahmen selbst wie bisher die Inline-Bearbeitung der Bezeichnung öffnet. Bei Projekten und Teilprojekten öffnet der gesamte bisherige Rahmen den Detail-Dialog; die Inline-Bearbeitung der Bezeichnung entfällt dort, da beide Objekttypen ohnehin nur das Titelfeld inline editierbar hatten. Der Rahmen ist jetzt als sichtbarer Rand um die Bezeichnung dargestellt (`GanttTable.vue`)\n- **Deck-Anbindung abgeschlossen (Stufen 1–3 aus #234, Issues #209–#211, #235–#240, #244):** Aus der reinen Verknüpfung mit Fortschrittsübernahme ist eine vollständige, optionale Zusammenarbeit mit Deck geworden. Je Projekt lässt sich eine von vier Stufen wählen — *Aus*, *Nur lesen* (Fortschritt und Status kommen sofort aus Deck), *Schreiben mit Rückfrage* und *Schreiben ohne Rückfrage* (beide erlauben zusätzlich, Karten aus einer Aufgabe anzulegen und ihre Termine sowie einmalig die Zuständigen nachzuführen). Wo Deck und Plan auseinanderlaufen — Karte gelöscht/archiviert, Termin oder Zuständigkeit von Hand geändert, Karte überfällig, ziehende Person ohne die geforderte Rolle —, zeigt die App das an, statt es aufzulösen; angenommen wird je Aufgabe. Doppelte Erinnerungen zwischen Gantt und Deck werden unterdrückt, ein `occ`-Befehl gleicht bei Bedarf alles einmal vollständig ab. Ohne Deck oder ohne Opt-in ändert sich nichts am bisherigen Verhalten. Die folgenden Einträge beschreiben die einzelnen Schritte im Detail; Endstand siehe `FEATURES.md` Kapitel 16 und die Integrationsmatrix, `HOWTO.md` und README („Optionale Abhängigkeit zu Deck“)\n- **Deck-Fundament: Adapter, Verknüpfungstabelle (1:n) und Opt-in-Stufen je Projekt** (Issue #209, Stufe 1, Schritte 1–2 aus #234): Die Migration `Version1039` legt `nc_gantt_deck_links` an (eine Zeile je Karte mit Aufgabe, Board, zuletzt gesehenem Kartenstand, zuletzt geschriebenen Terminen, angenommenem Stand je Abweichungsart und Zeitpunkt des Abgleichs; eindeutiger Index auf der Karten-ID) und übernimmt vorhandene `deck_card_id`-Werte. Die Spalte `deck_card_id` bleibt lesbar, ist veraltet und wird bis zum Rückbau mit #237 aus der Tabelle befüllt. Das Löschen einer Aufgabe entfernt ihre Verknüpfungen, die Karte bleibt. Neue API: `GET/POST /tasks/{id}/deck-links`, `DELETE /tasks/{id}/deck-links/{cardId}`, `GET /deck-links/occupied?project_id=|board_id=` (belegte Karten → Aufgabe)\n- **`DeckGateway`** als einzige Andockstelle zu Deck (Deck-Services erst im Aufruf aus dem Container, `isAvailable()`, `supportsStartDate()`, `readCard()`, `permissions()`, Ergebnisobjekt `DeckResult` statt Exception, nur mit angemeldetem Benutzer, Schreibmethoden nur in den beiden Schreibstufen — ihre Umsetzung folgt mit #210, #211, #237, #238)\n- **Opt-in-Stufe „Deck-Abgleich“ je Projekt** mit vier Stufen (*Aus* — Standard, *Nur lesen*, *Schreiben mit Rückfrage*, *Schreiben ohne Rückfrage*); serverseitig beantwortet `DeckSyncService` getrennt „darf lesen“, „darf schreiben“, „muss fragen“. Projektdialog mit Vorschlag „Nur lesen“ beim Verknüpfen eines Boards, Hinweis beim Umschalten auf eine Schreibstufe und ausgegraut mit sichtbarem Hinweistext ohne Deck. Bestandsprojekte mit Board **und** Aufgabe im Fortschrittsmodus „aus Deck“ starten auf *Nur lesen*, alle übrigen auf *Aus*; nie auf einer Schreibstufe. Der clientseitige Abgleich aus #221 prüft die Stufe\n- **Abweichungsdienst** (`DeckDeviationService`, `DeckDeviationProvider`) mit einheitlichem „Annehmen“ (`GET /tasks/{id}/deck-deviations`, `POST /tasks/{id}/deck-deviations/accept`) und Bereich „Abweichungen zu Deck“ im Aufgabendialog; die Abweichungsarten liefern die Folgetickets\n- **Vertragstest gegen Deck** (`make test-deck-contract`, `tests/deck-contract/`, CI-Job *Deck-Vertragstest*) und README-Abschnitt „Optionale Abhängigkeit zu Deck“; `FEATURES.md` (de/en) um Stufen und mehrere Karten ergänzt\n- **Deck im E2E-Setup optional**: `setup-dev.sh --no-deck`, `tests/e2e/helpers/deck.js` (Tests ohne Deck überspringen sich selbst), `tests/e2e/specs/deck-foundation.spec.js`\n- **Deck-Rückmeldung per Event-Listener: Fortschritt und Status sofort übernehmen** (Issue #235, Stufe 1, Schritt 3 aus #234): `DeckCardListener` ist für `CardCreatedEvent`, `CardUpdatedEvent` und `CardDeletedEvent` per Klassenname registriert und wertet nur `getWebhookSerializable()['card']` aus; er wirft nie. `DeckCardSyncService` aktualisiert ab der Stufe *Nur lesen* den zuletzt gesehenen Kartenstand an der Verknüpfung (erledigt, archiviert, gelöscht, Fälligkeit, Start, Zuweisungen, Checkliste) und berechnet für Aufgaben im Modus „aus Deck“ Fortschritt (Mittelwert je Karte: erledigt = 100 %, sonst Checklistenanteil; archiviert zählt als erledigt, gelöscht zählt nicht mit; ohne mitzählende Karte bleibt alles stehen) und Status (`done` / `in_progress` / `not_started`, `blocked` bleibt). Die Formel `DeckProgress` in PHP spiegelt `cardProgress()`; beide prüfen `tests/fixtures/deck-progress-cases.json`. Neue Abweichungsarten „Karte archiviert“ / „Karte gelöscht“ über den Abweichungsdienst; Übernahmen stehen mit Operations-ID `deck:…` im Änderungsprotokoll. Der clientseitige Abgleich beim Öffnen bleibt als Fallback und setzt den Status nach denselben Regeln (`PUT /tasks/{id}/progress/sync` akzeptiert `done`). Der Aufgabendialog weist im Modus „aus Deck“ neben dem Statusfeld darauf hin, dass der Status Deck folgt. Vertragstest, README-Abschnitt und `FEATURES.md` (de/en) sind nachgezogen\n- **`occ nc_gantt:deck:sync --user=<uid> [--project=<id>] [--dry-run]`: einmaliger Vollabgleich aus Deck** (Issue #236, Stufe 1, Schritt 4 aus #234): Der Befehl setzt den Kontext des Kontos per `setVolatileActiveUser`, liest jede verknüpfte Karte, die das Konto in Deck sehen darf, und übernimmt sie über dieselbe Logik wie der Listener aus #235 (`DeckCardSyncService::applyStates()`, gemeinsamer Weg statt zweiter Implementierung). Nur Projekte ab *Nur lesen*; nach Deck wird nie geschrieben. Ausgabe je Projekt: geprüfte und geänderte Aufgaben, übersprungene Karten (keine Berechtigung / nicht gefunden); Rückgabewert ≠ 0 nur bei Fehlern, auch wenn Deck fehlt. `--dry-run` speichert nichts. Registriert in `appinfo/info.xml` (`<commands>`); `FEATURES.md` (de/en) und README ergänzt\n- **Mehrere Deck-Karten je Aufgabe: Picker, „+“ zum Anlegen und Rolle der Deck-Listen je Projekt** (Issue #237, Stufe 2, Schritt 5 aus #234; UC1 „Übergabe“, O1, O2, O8, O14): Der Aufgabendialog hat den Bereich „Deck-Karten“ (für bestehende Aufgaben) mit der Liste der verknüpften Karten (Titel, Liste, erledigt, „In Deck öffnen“, „Lösen“ — das Lösen ändert die Karte nie), dem **Picker** (Karten an einer anderen Aufgabe sind gesperrt und nennen sie) und **„+“**, das über den Server und `DeckGateway::createCard()` eine Karte mit Titel und Beschreibung der Aufgabe samt Rücklink „Geplant in Gantt-Projekte: <URL>“ (Deeplink `?project=&task=`), Fälligkeit = Ende, ab Deck 1.18 Start = Start anlegt; „+“ gibt es erst ab „Schreiben mit Rückfrage“ und mit Bearbeitungsrecht am Board (sonst gesperrt mit Hinweis auf Grund und Stufe) und braucht keine zweite Rückfrage. **`DeckGateway::setDates()`** ist umgesetzt (Fälligkeit, ab Deck 1.18 Start; Ergebnisobjekt statt Exception; nur in einer Schreibstufe; prüft nach dem Schreiben, ob Deck die Termine übernommen hat) — #210 baut darauf auf. Beim Verknüpfen einer Karte mit abweichendem Datum fragt der Dialog sofort: **Plan in Deck durchsetzen** (nur in einer Schreibstufe, selbst die Bestätigung), **Plan anpassen** oder **Abweichung stehen lassen**; eine datumslose Karte bekommt die Planlage ohne Rückfrage, aber nur ab einer Schreibstufe. Der Stand wird als „zuletzt gesehen“ bzw. „zuletzt von Gantt geschrieben“ an der Verknüpfung gespeichert. **Projekteinstellung „Rolle der Deck-Listen“** (`deck_list_role`: `subproject` — Standard, `storage`, `none`) mit „?“-Hilfe; das Listenfeld am Teilprojekt entfällt bei `none`, gespeicherte Listen-IDs bleiben; ein Wechsel ändert keine Verknüpfung. Ohne Liste am Teilprojekt nutzt „+“ die Liste des nächsten übergeordneten Teilprojekts, sonst die erste Liste des Boards. Neue API: `POST /tasks/{id}/deck-cards`, `POST /tasks/{id}/deck-links` mit optionalem `date_action`. Der Fortschritt „aus Deck“ im Dialog bildet bei mehreren Karten den Mittelwert. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, Kapitel 16 und Integrationsmatrix), `HOWTO.md` und README (Deck-Vertrag) sind nachgezogen; Vertragstest um `CardService::create()`/`update()`, `StackMapper::findAll()` und den Startparameter ergänzt\n\n- **Termine der Aufgabe in die verknüpften Deck-Karten schreiben, mit Konfliktregel und gebündelter Rückfrage** (Issue #210, Stufe 2, Schritt 6 aus #234; UC3 „Umplanung“, O4, O8, O9, O11, O12): Ab einer Schreibstufe folgen **alle** verknüpften Karten den Terminen der Aufgabe — Fälligkeit = Ende zum Arbeitstagsende (Einstellung „Arbeitszeit“), ab Deck 1.18 zusätzlich Start — bei jedem Weg der Terminänderung (Dialog, Tabelle, Ziehen im Diagramm, Propagation über Abhängigkeiten inklusive Karten fremder Aufgaben, „Termine neu berechnen“, Undo). Der neue `DeckDateSyncService` schreibt synchron im Request **nach** dem Speichern über `DeckGateway::setDates()`, fehlertolerant (Deck-Fehler brechen das Speichern nie ab); das Frontend zeigt danach „3 Deck-Karten aktualisiert“, aufklappbar mit Liste, auch fehlgeschlagene Karten. **Konfliktregel:** Geschrieben wird nur, wenn die Karte noch den zuletzt von Gantt geschriebenen Wert trägt (ohne geschriebenen Wert: wenn sie kein Datum trägt); sonst bleibt sie unangetastet und der Abweichungsdienst zeigt „Fälligkeit/Start in Deck abweichend“ mit Deck- und Plan-Datum. Aktionen im Aufgabendialog: *Plan in Deck durchsetzen* (`POST /tasks/{id}/deck-deviations/enforce`, ohne Rückfrage), *Plan anpassen* (Deck-Datum wird Ende der Aufgabe, gespeichert mit dem Dialog) und *Annehmen*. **Rückfrage in „Schreiben mit Rückfrage“:** `POST /projects/{id}/deck-preview` rechnet die Propagation ohne Speichern; ein Dialog listet **einmal gebündelt** alle betroffenen Karten mit altem und neuem Wert, Karten fremder Aufgaben hervorgehoben, „Abbrechen“ verwirft die gesamte Änderung, kein „Nicht mehr fragen“; ohne Bestätigung (`deck_confirmed`) wird nicht geschrieben. Bei „Schreiben ohne Rückfrage“ entfällt der Dialog, bei „Aus“ und „Nur lesen“ wird nichts geschrieben. **Rechte:** Ohne Bearbeitungsrecht am Board wird die Karte als „Deck-Abgleich ausstehend (keine Berechtigung)“ markiert und beim nächsten Speichern durch eine Person mit Rechten mitgeschrieben (Migration `Version1041`, Spalte `sync_pending`); eine in Deck gelöschte oder nicht auffindbare Karte bleibt verknüpft und erscheint als Abweichung „Karte gelöscht“. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, Integrationsmatrix und Kapitel 16) und `HOWTO.md` sind nachgezogen, der Hinweis „Terminverschiebungen im Gantt ändern derzeit keine Deck-Karten“ ist ersetzt. Neue PHPUnit-Tests (`DeckDateSyncServiceTest`, `TaskDeckSyncTest`, `DeckDateDeviationProviderTest`, `DeckDeviationActionServiceTest`), Vitest-Tests (`deckWrite.test.js`, `deckWriteDialogs.test.js`, `deckDeviations.test.js`, `projects.test.js`) und der E2E-Test `deck-date-sync.spec.js`\n- **Verknüpfte Deck-Karten beim Löschen auf Rückfrage archivieren** (Issue #238, Stufe 2, Schritt 7 aus #234; O10, O11, O12): Der Löschdialog einer Aufgabe mit Karten fragt „Verknüpfte Deck-Karte(n) ebenfalls archivieren?“ mit der Kartenzahl, Standard „Nein“; Teilprojekt und Projekt stellen **eine** Sammelrückfrage mit der Gesamtzahl. Gefragt wird nur in den beiden Schreibstufen und nur für Karten an Boards mit Bearbeitungsrecht (`DeckGateway::permissions()`); für die übrigen sagt der Dialog „N Karten bleiben unverändert“, der Löschdialog ist die Bestätigung (keine zweite Rückfrage). `DeckGateway::archive()` ist umgesetzt (`CardService::archive()`, Erfolg erst nach erneutem Lesen); `DeckDeletionService` plant vor dem Löschen (die Kaskade entfernt die Verknüpfungen) und archiviert synchron danach, fehlertolerant: scheitert Deck, ist die Aufgabe trotzdem gelöscht und die Meldung nennt die nicht archivierten Karten, sonst die archivierten mit Link. Neu: `GET /tasks|subprojects|projects/{id}/deck-delete-preview`; `DELETE` nimmt `archive_deck_cards` an und liefert jetzt `deck` (`archived`, `failed`) statt eines leeren Körpers. Verknüpfung lösen ändert die Karte nie; ein Undo für das Löschen gibt es nicht. PHPUnit mit gemocktem Gateway, Vitest, E2E `deck-archive-on-delete.spec.js`; Vertragstest um `CardService::archive(id)` ergänzt; `FEATURES.md` (de/en) und README ergänzt\n- **Rollen als Ressourcentyp: Aufgaben fordern Rollen, Personen tragen die Kapazität** (Issue #250, Schritt A aus #249; R2–R5): `nc_gantt_resources.type` (`person` — Standard für alle bestehenden Zeilen —, `role`, `material`) und die n:m-Tabelle `nc_gantt_resource_role` (Person ↔ Rolle, eindeutige Kombination; Migration `Version1042`, dazu `nc_gantt_projects.roles_only_assignment`). Eine Rolle ist Zuweisungsziel ohne Konto, Arbeitszeitmodell, Kalender und eigene Kapazität (Kapazitätswerte an Rollen werden nicht angelegt); `TaskResource` und `ResourceGroup` bleiben unverändert, Rollen sind eine zur Gruppe orthogonale Achse. Rollen werden in der Ressourcenverwaltung über „Neue Rolle“ angelegt, umbenannt und gelöscht und getrennt in der Navigation geführt; die Zuordnung Person ↔ Rolle ist von beiden Seiten pflegbar (`role_ids` an der Person, `person_ids` an der Rolle, ohne Admin-Rechte). Löschen einer Rolle mit Aufgaben fragt nach und nennt sie (`GET /resources/{id}/usage`), Löschen einer Person entfernt ihre Zuordnungen, die Rollen bleiben. Im Aufgabendialog lassen sich Rollen und Personen gemischt mit Aufwand zuordnen, die Auswahl kennzeichnet „(Rolle)“/„(Person)“ (ohne Rollen unverändert); keine Migration bestehender Zuordnungen. **Projekteinstellung „Nur Rollenzuweisung zulassen“** (Standard aus) verhindert nur die Neuzuweisung von Personen. `ResourceUtilizationService` leitet die Kapazität einer Rolle je Tag aus der Summe ihrer Personen ab (Urlaub/Teilzeit senkt alle ihre Rollen) — bewusst **naiv additiv**, das Ressourcen-Raster weist auf die Mehrfachzählung hin (`capacity_naive`); Personen- und Rollenzuordnungen laufen durch dieselbe Auswertung, das Workload-Chart summiert Rollen aus ihren Personen. Sichtbarkeit und Rechte folgen den bestehenden Ressourcenregeln. Nicht Teil: Konflikterkennung über Rollen (Schritt B), Kopfzahl (Schritt C), Rollen-Level, Historisierung, Deck-Schnittstelle. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, Kap. 11 und Integrationsmatrix) und `HOWTO.md` sind nachgezogen. Neue PHPUnit-Tests (`ResourceServiceTest`, `ResourceUtilizationServiceTest`, `TaskResourceAssignmentServiceTest`, `ResourceRolesMigrationTest`), Vitest-Tests (`resourceType.test.js`, `resourceDelete.test.js`, `resources.test.js`) und der E2E-Test `resource-roles.spec.js`\n- **Zuständigkeit bei der Kartenanlage übernehmen, danach Abweichungen anzeigen** (Issue #211, Stufe 3, Schritt 8 aus #234; O7): „+“ im Aufgabendialog weist der neuen Karte alle Nextcloud-Konten zu, die mit den Ressourcen der Aufgabe verknüpft sind (`DeckGateway::assign()` über `AssignmentService::assignUser()`, jedes Konto einzeln). Der Dialog unterscheidet beim Überspringen **Person ohne Konto** (Lücke: „2 Ressourcen ohne Nextcloud-Konto wurden nicht zugewiesen“), **Rolle** (#250; sachliche Auskunft, die Karte bleibt absichtlich frei zum Ziehen, nicht als „nicht zugewiesen“ gezählt) und **Konto ohne Zugriff auf das Board** (übersprungen und genannt; Gantt teilt das Board nicht). Scheitert die Zuweisung, bleibt die Karte angelegt und verknüpft. Danach gibt es **keine laufende Synchronisation**. Neue Abweichungsart `assignees` („Zuständige abweichend“, `DeckAssigneeDeviationProvider` über den Abweichungsdienst aus #209): Menge der zugewiesenen Benutzer der Karte gegen Menge der verknüpften Konten der Ressourcen, in beide Richtungen, mit *Annehmen* (Hinweis kehrt erst bei erneuter Änderung zurück); Gruppen/Teams und Rollen erzeugen keine Abweichung (Gruppen erscheinen als „auch zugewiesen: …“ an der Karte, bei gemischter Zuordnung zählt nur der Personenanteil). Der Kartenstand trennt jetzt `assignees` (Benutzer) und `assigned_groups`. Neue Antwortfelder `assignment` bei `POST /tasks/{id}/deck-cards`; Vertragstest und README um `AssignmentService::assignUser()` und `BadRequestException` ergänzt. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, Integrationsmatrix und Kap. 16) und `HOWTO.md` nachgezogen. PHPUnit (`DeckAssigneeDeviationProviderTest`, `DeckAssigneeResolverTest`, `DeckAssigneesTest`, `DeckLinkServiceTest`, `DeckGatewayTest`), Vitest (`deckAssignees.test.js`, `deckCards.test.js`, `deckDeviations.test.js`) und E2E `deck-assignment.spec.js`\n- **Abweichungen zwischen Plan und Deck im Überblick anzeigen, annehmen und filtern** (Issue #239, Stufe 3, Schritt 9 aus #234; UC4 „Abweichungen erkennen“, Leitprinzip 8): Zwei neue Abweichungsarten über den gemeinsamen Abweichungsdienst aus #209 — `overdue` (`DeckOverdueDeviationProvider`: Fälligkeit vor heute, nicht erledigt, nicht archiviert/gelöscht, ausschließlich aus dem zuletzt gesehenen Kartenstand, kein Deck-Zugriff nötig) und `role` (`DeckRoleDeviationProvider`, setzt #250 voraus: eine Karte einer Aufgabe mit Rollenzuweisung ist einer Person zugewiesen, die keiner der geforderten Rollen zugeordnet ist — ermittelt über `ResourceRoleMapper::findPersonIdsOfRoles()`; ohne Rollenzuweisung an der Aufgabe greift die Art nicht, bei gemischter Zuordnung läuft sie unabhängig neben `assignees`). Neu `DeckDeviationService::kindsByTask()` fasst die offenen Arten **je Aufgabe** eines Projekts in einem Rutsch zusammen (ein Durchlauf über alle Verknüpfungen statt eine Anfrage je Aufgabe); `TaskService` hängt daraus das berechnete Lesefeld `deck_deviation_kinds` an jede Aufgabe aus `GET /projects/{id}/tasks`, `RollupService` liefert zusätzlich `deck_deviation_count` (Summe über das Projekt) im bestehenden Rollup-Endpunkt. Im Frontend: Warnsymbol an der Aufgabe in Tabelle (`GanttTable.vue`, echtes `<button>`) und Diagramm (`gantt/overlays/deckDeviationOverlay.js`, fokussierbares SVG mit eigenem Klick-/Tastatur-Handler statt des abgeschalteten Bibliotheks-Popups) mit Tooltip/aria-label über die betroffenen Arten (`utils/deckDeviationKinds.js`); ein Klick öffnet den Aufgabendialog gescrollt und fokussiert beim Bereich „Abweichungen zu Deck“ (`detailModal.js`, neue Option `focusDeckSection`, Ereigniskette `open-deck-deviations`/`edit-task-deck`). Zähler an Teilprojekt (rekursiv über verschachtelte Teilprojekte) und Projekt in der Tabelle sowie, über den Rollup, in der Projektliste und im Projekt-Rollup-Balken. Neuer Filter „Deck weicht ab“ (`filters.js`, `filterMatch.js`, `FilterBar.vue`) wirkt wie die übrigen Filter auf Tabelle und Diagramm. Für „Karte gelöscht/archiviert“ gibt es im Aufgabendialog zusätzlich die Aktion **Verknüpfung lösen** (`DELETE /tasks/{id}/deck-links/{cardId}`, ändert die Karte nie); nach Annehmen, Durchsetzen oder Verknüpfung lösen lädt der Dialog die Aufgabenliste des Projekts neu (`onDeviationsChanged`), damit Symbol und Zähler ohne Neuladen der Seite mitziehen. Wie immer gilt: Abweichungen nur ab der Projektstufe „Nur lesen“, Annehmen nur mit Bearbeitungsrecht. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, neuer Abschnitt in Kap. 16 und Filterliste in Kap. 5) und `HOWTO.md` (de/en) nachgezogen. PHPUnit (`DeckOverdueDeviationProviderTest`, `DeckRoleDeviationProviderTest`, `DeckCardStateDeviationProviderTest` — bislang fehlend zu #235 —, erweiterte `DeckDeviationServiceTest`/`RollupServiceTest`), Vitest (`deckDeviationKinds.test.js`, erweiterte `filterMatch.test.js`/`tableRows.test.js`/`deckDeviations.test.js`) und E2E `deck-deviations-overview.spec.js`\n- **Doppelte Signale vermeiden: Gantt-Erinnerungen und Tasks-Einträge bei Aufgaben mit Deck-Karte unterdrücken** (Issue #240, Stufe 3, Schritt 10 aus #234; O13): Neuer `DeckSuppressionService` beantwortet für Aufgaben mit mindestens einer verknüpften, nicht archivierten Karte (nach dem zuletzt gesehenen Kartenstand aus #235) in einem Projekt ab Stufe „Nur lesen“, ob NC-Gantt für diese Aufgabe still bleiben soll — `DueReminderService`, `EventNotificationService::notifyAssigned()` und `TaskCalendarSyncService` fragen dort statt die Regel je einmal selbst nachzubilden, statt selbst zu unterdrücken. Unterdrückt werden die Fälligkeits-Erinnerung der Aufgabe, die Zuweisungsmeldung und ihr Eintrag in der Tasks-App; **nicht** unterdrückt bleiben `notifyRescheduled()` (Deck kennt keine Kettenverschiebung) und Meilenstein-Erinnerungen (Meilensteine haben keine Karte). Persönliche Einstellung „Gantt-Benachrichtigungen auch für Aufgaben mit Deck-Karte erhalten“ im Abschnitt „Gantt-Projekte“ der Nextcloud-Benutzereinstellungen (`PUT /api/v1/settings/reminder-deck-override`), Standard **aus** — die Unterdrückung ist also aktiv; gilt gleichermaßen für Benachrichtigungen und Tasks-App-Einträge. Wird die Unterdrückung wirksam oder aufgehoben, räumt bzw. holt der jeweils nächste Lauf von `DueReminderService`/`TaskCalendarSyncService` die betroffenen Erinnerungen bzw. To-dos ab — über denselben Soll-/Ist-Abgleich, der schon das Stummschalten trägt, ohne eigenen Sonderfall. Neue Texte in `l10n/de.json`/`de.js`; `FEATURES.md` (de/en, Integrationsmatrix, Kap. 14, 18 und 20) nachgezogen. Neue PHPUnit-Tests (`DeckSuppressionServiceTest`, erweiterte `DueReminderServiceTest`/`EventNotificationServiceTest`/`TaskCalendarSyncServiceTest`) und Vitest (`stores/settings.test.js`)\n- **Optionaler Planungszeitraum für Projekte und Teilprojekte** (Issue #229): Projekte und Teilprojekte können neben dem aus den Aufgaben berechneten Zeitraum einen eigenen, bewusst gesetzten Rahmen haben (`plan_start`/`plan_end`, Migration `Version1043`; leer für alle Bestandsprojekte, die sich damit unverändert verhalten). Eingabe im Detaildialog (Abschnitt „Planungszeitraum“) und per Inline-Editing in den Spalten Start/Ende der Tabelle, die dafür erstmals auch bei Projekt- und Teilprojektzeilen editierbar sind. Start und Ende sind nur gemeinsam gesetzt: ein leeres Gegenfeld übernimmt den eingegebenen Wert, ein vorhandener wird nie überschrieben, das Leeren eines Felds entfernt den Zeitraum; Start ≤ Ende und Schreibrecht werden serverseitig geprüft (`PlanningPeriod`, Fehlercodes `invalid_plan_date`, `plan_start_after_end`). Ist ein Planungszeitraum gesetzt, zeigen Balken, Tabelle (Start/Ende/Dauer), PDF/Druck und ICS-Feed ihn anstelle des berechneten Zeitraums — auch ein Teilprojekt ohne Aufgaben wird so sichtbar; ein Elternobjekt ohne eigenen Planungszeitraum umfasst in der Darstellung die Zeiträume seiner Kind-Teilprojekte. Liegen die Aufgaben nicht vollständig im Rahmen oder ragt ein Kind-Teilprojekt mit Planungszeitraum heraus, markiert ein rotes Ausrufezeichen die Zeile in Tabelle und Diagramm (`planWarningOverlay.js`), der Tooltip nennt die Ursache; der Rahmen passt sich nie selbst an und verschiebt keine Aufgaben. Ampel, Rollups, kritischer Pfad, Meilensteine, Filter, Fortschritt und Budget rechnen weiter mit dem berechneten Zeitraum; Baselines und Deck bleiben unberührt. Änderungen stehen mit Operations-ID im Änderungsprotokoll und lassen sich per Toast rückgängig machen (`revertOperation()` kennt dafür jetzt auch Projekte und liefert `entity_types`); der JSON-Export/-Import führt den Planungszeitraum mit. Neue Texte in allen Übersetzungen; `FEATURES.md` (de/en, Kap. 1, 3, 4, 10, 14) und `HOWTO.md` (de/en) nachgezogen. PHPUnit (`PlanningPeriodTest`, erweiterte `ProjectServiceTest`/`SubProjectServiceTest`/`ChangeEventServiceTest`/`CalendarFeedServiceTest`), Vitest (`planningPeriod.test.js`, erweiterte `rowModel.test.js`/`tableRows.test.js`/`io.test.js`) und E2E `planning-period.spec.js`\n- **Rich-Vorschau für Links auf Projekte und Aufgaben** (Issue #241, Stufe 4, Schritt 12 aus #234; O14): Eigener `GanttReferenceProvider` (`OCP\\Collaboration\\Reference`, ohne jede Deck-Abhängigkeit) erkennt Links der Form `?project=<id>` bzw. `?project=<id>&task=<id>`, mit und ohne `index.php`, und löst nur auf, wenn die anfragende Person laut `AccessService` mindestens Leserecht auf das Projekt hat — sonst bleibt der Link ein nackter Link. Die Vorschau einer Aufgabe zeigt Titel, Projekt/Teilprojekt, Start–Ende, Fortschritt, Status und Zuständige, die eines Projekts Titel, Zeitraum, Rollup-Fortschritt und den nächsten Meilenstein; ein eigenes Vue-Widget (`registerWidget` aus `@nextcloud/vue`, geladen nur beim `RenderReferenceEvent`) rendert das im Nextcloud-Look mit Dark-Mode. Cache-Präfix je Projekt bzw. Aufgabe und Cache-Schlüssel je Benutzer (`ReferenceCachePrefix`); `TaskService`, `ProjectService` und `MilestoneService` verwerfen den betroffenen Cache über `IReferenceManager::invalidateCache()` bei jeder Änderung, damit die Vorschau nicht bis zu einer Stunde veraltet bleibt. `FEATURES.md` (de/en, neues Kapitel 23 und Integrationsmatrix) nachgezogen. Neue PHPUnit-Tests (`GanttReferenceProviderTest`, `TaskServiceReferenceCacheTest`, `ProjectServiceReferenceCacheTest`, `MilestoneServiceReferenceCacheTest`) und E2E-Test `reference-preview.spec.js` (prüft über den Core-Endpunkt `references/resolve`, denselben Weg, den Text, Notizen und Talk nutzen). Nicht Teil: ein Smart-Picker-Eintrag zum Einfügen einer Gantt-Aufgabe per Suche (geplanter Folgeschritt zusammen mit der Talk-Integration)\n\n### Changed\n- **Aufgaben-API: `deck_card_id` ist nur noch ein berechnetes Lesefeld** (Issue #237): Die Migration `Version1040` entfernt die Spalte `nc_gantt_tasks.deck_card_id` (Werte, die noch nicht in `nc_gantt_deck_links` stehen, werden vorher übernommen) und ergänzt `nc_gantt_projects.deck_list_role`. Die API liefert `deck_card_id` weiter — als erste Verknüpfung der Aufgabe —, damit bestehende Nutzer nicht brechen; geschrieben wird nur noch über die Verknüpfungs-Endpunkte, ein mitgesendetes `deck_card_id` bei `POST`/`PUT` auf Aufgaben wird ignoriert. Der Aufgabendialog und alle Frontend-Pfade lesen die Verknüpfungen aus der Tabelle\n\n### Fixed\n- **Rollenkapazität im Ressourcen-Raster stimmte nicht mit den Personenzeilen überein** (Issue #260): Drei unabhängige Fehler wirkten zusammen. Ein Options-API-Watcher auf `store.activeIds` (Getter-Pfad, nicht deep) feuerte nie, weil `toggle()` das Array per `push()`/`splice()` mutierte statt neu zuzuweisen — eine nachträglich in der Seitenleiste aktivierte Ressource blieb bis zum Moduswechsel ohne Auslastungsfarbe, Tooltip oder abgeleiteten Rollenwert. `ResourceUtilizationService` und die Personenzeile der Tabelle (`getVal()`) lasen unterschiedliche Kapazitätsquellen: die Rolle über die 8h/Tag-Pauschale von `WorkTimeService::getHoursPerPt()` für jeden ungepflegten Tag, die Person über den Mittelwert der gepflegten Tage hochgerechnet auf die ganze Periode. Beide laufen jetzt über dieselbe Tagesfunktion (`personCapacityFn()` im Backend, `resourceCapacity.js` im Frontend) — die Pauschale greift nur noch, wenn für eine Person überhaupt keine Kapazität gepflegt ist, nicht mehr für einzelne Lücken innerhalb eines gepflegten Verlaufs, und ist dann auch in der Personenzeile sichtbar. Ein gepflegter Tageswert auf einem Feiertag zählte bisher voll statt 0h, sowohl in der Auslastungsberechnung als auch in `resources.js::capacityOf()` (Überbuchungsprüfung/Auslastungsgraph im Gantt-Diagramm) — beide prüfen jetzt Arbeitszeitmodell und Feiertagskalender der Ressource unabhängig vom gepflegten Wert. „Wert bis Monats-/Jahresende kopieren“ (`doFill()`) legt keine Kapazitätssätze mehr auf Feiertagen oder arbeitsfreien Tagen an. Eine Rollenspalte gilt im Tagesmodus als arbeitsfrei, wenn keine ihrer Personen an diesem Tag arbeitet. Neue PHPUnit-Tests (`ResourceUtilizationServiceTest`), Vitest (`resourceCapacity.test.js`, erweiterte `resources.test.js`) und E2E-Test (`resource-roles.spec.js`)\n- **Deck-Vertragstest schlug falsch an** (Issue #256): Für `CardService::create()`/`update()` prüfte er die Parameter **positional**, obwohl NC-Gantt sie über `DeckGateway::invokeNamed()` **nach Namen** aufruft. Ab Deck 1.18 steht `startdate` hinter dem von NC-Gantt nicht genutzten `done`, der CI-Job *Deck-Vertragstest* wurde dadurch rot, ohne dass etwas kaputt war. Die beiden Methoden stehen in `contract.php` jetzt unter `named`: geprüft wird, dass es die Parameternamen gibt und dass NC-Gantt jeden Pflichtparameter der Deck-Methode kennt — die Reihenfolge in Deck ist gleichgültig, neue Parameter dazwischen (zuletzt `color`) brechen den Vertrag nicht mehr. Positional aufgerufene Methoden bleiben unverändert\n- **Startdatum einer Deck-Karte wurde nie gelesen** (`DeckGateway::cardState()`): Deck-Entities stellen ihre Getter über `__call` bereit, `method_exists()` war daher immer falsch; jetzt `is_callable()`"}},"signatureDigest":"sha512"},{"version":"1.7.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://codeberg.org/fds2610/NC-Gantt/releases/download/v1.7.5-17525e9/nc_gantt-1.7.5-17525e9.tar.gz","created":"2026-09-21T08:05:03.231049Z","licenses":["agpl"],"lastModified":"2026-09-21T08:05:03.338815Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=31 <=35","signature":"OtLYluq0hTNN8+vQY8AK0ALLooVxvUUxymkOjs0nAtdES78R6Sii2b9n1POirXvO\n  EwnIrLzKWwiT05WSV2dsrWliGU+hBhXmvUO0RviY4jmBpu9+mexpLgoHP5dUwIna\n  OwAN1TgJg0TOod9/bLSQts6qhr8ONk/giqNpMjId1dvQX+hymeQXFchZHk8ohVx4\n  4d2BaKizT6HQweBNOxxR+FGd6juzsfw4sC9ujASI6IzxPKhH9piiDFniKaERJuGo\n  iUvDbljcRA4YVRgM003aD9ytwdzdJ4Z3+JfI4L+LBuwaUsXFyQsC3q8bbaZWSj+w\n  VZX536GBNNwb0RE/nKkgGQ8WLmwG+dosiL26+Wh+a6lX2EWLFZaw9L9iwGFYG92I\n  iZmFDOnIpqSicG8PmCTV9YSg5u90fxPg53CaVlv6/eCxqY2mUADyErpBSHSDc1tn\n  g/JM58znHYQF3PfmpFc3Vh901bBytBPTkUY3p0LF1JKoH7tnZ75ar4fTORoF8nEO\n  Hfr50lB+bWYhEdj1LCvD9yHsRfGcaj5BZ5m6NGvFzvAf/DStAgzyF2jyz/0+YvnM\n  8XF+LLYY9TktnVyxHNbwjaoE32sHc/le6ABbWSLdI/R/pYWul1EVPKagxYlAQIS1\n  0IEJbQarL1SKdaQrVfxtxafKvVVsPLcV6DgEBzeem14=","translations":{"en":{"changelog":"### Changed\n- **Freigabe für Nextcloud 35**: `max-version` in `appinfo/info.xml` von 34 auf 35 angehoben, unterstützter Bereich damit NC 31–35; die Angabe in der App-Store-Beschreibung (alle sieben Sprachen), `README.md`, `FEATURES.md` und `INSTALL.md` ist nachgezogen. Verifiziert gegen Nextcloud 35.0.0 mit PHP 8.5 und MariaDB 11.4 (302 Unit-Tests im Frontend, 431 PHPUnit-Tests, 98 E2E-Tests) – am Code der App war dafür keine Anpassung nötig. Die lokale Dev-Umgebung (`setup-dev.sh`) setzt jetzt auf `nextcloud:35-apache` und installiert Deck mit, weil die Fortschritts- und Karten-Integration von nc_gantt darauf aufsetzt"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzAxLXByb2plY3Qtc3RydWN0dXJlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzAyLWRlcGVuZGVuY2llcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzAzLXRhYmxlLXZpZXcucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA0LWNyaXRpY2FsLXBhdGgucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA1LXJlc291cmNlcy1jYXBhY2l0eS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA2LWNhbGVuZGFycy1ob2xpZGF5cy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA3LWJhc2VsaW5lLXJlcG9ydC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA4LWtwaXMtZXZtLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzA5LXNpbXVsYXRpb24ucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9jb2RlYmVyZy5vcmcvZmRzMjYxMC9OQy1HYW50dC9yYXcvdGFnL3YyLjQuMC05M2EyZDVkL3NjcmVlbnNob3RzL25leHRjbG91ZC91YzEwYS1tdWx0aS1wcm9qZWN0LWZpbHRlci5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"de":{"name":"nc_Gantt","summary":"Professionelles Projektmanagement mit Gantt, Ressourcen und Deck-Integration","description":"**Professionelles Projektmanagement — in der eigenen Nextcloud.**\n\nnc_Gantt verbindet strukturierte Projektplanung mit der täglichen Aufgabenarbeit direkt in Nextcloud. Projekte, Teilprojekte, Aufgaben und Meilensteine lassen sich mit einem professionellen Gantt-Diagramm planen — inklusive Abhängigkeiten, kritischem Pfad, Baselines, Ressourcen, Kapazitäten, Budgets und Earned Value Management.\n\nDer besondere Ansatz ist die **Integration mit Nextcloud Deck**: Der Projektplan lässt sich mit der tatsächlichen Teamarbeit verbinden. Aufgaben können mit Deck-Karten verknüpft, Karten aus Projektaufgaben erzeugt und Fortschritt, Termine und Zuständigkeiten optional synchronisiert werden. So verbindet nc_Gantt professionelle Projektplanung mit agiler, teamorientierter Arbeit, ohne eine weitere Plattform oder ein weiteres Datensilo einzuführen.\n\nAlle Projektdaten bleiben auf der eigenen Nextcloud-Instanz: kein externer Dienst, kein Tracking, keine Daten verlassen den eigenen Server.\n\n## ✨ Funktionen\n\n* 📊 **Professionelle Gantt-Planung**: Projekte, Teilprojekte, Aufgaben und Meilensteine in synchroner Gantt- und Tabellenansicht, mit Tages-, Wochen-, Monats- und Sprint-Maßstab, Inline-Bearbeitung und Tastaturnavigation.\n* 🔗 **Abhängigkeiten & Terminplanung**: n:m-Abhängigkeiten aller vier Typen (EA, AA, EE, AE) mit Zeitabstand in Arbeitstagen. Terminänderungen werden durch Abhängigkeitsketten propagiert; Zyklen werden abgewiesen.\n* 🎯 **Kritischer Pfad**: Vorwärts- und Rückwärtsrechnung mit Puffer; die Kette, die das Projektende bestimmt, wird hervorgehoben.\n* 📈 **Earned Value Management**: PV, EV, AC, SPI und CPI neben Rollup-KPIs für Fortschritt, Aufwand, Budget und Risiko.\n* 📐 **Baselines & Abweichungsberichte**: Einen Plan einfrieren, sichtbar halten und den aktuellen Zeitplan Element für Element mit der Baseline vergleichen.\n* 🔮 **What-if-Simulation**: Terminänderungen durchspielen, ohne den gespeicherten Plan zu verändern.\n* 👥 **Ressourcen & Kapazität**: Ressourcengruppen, Rollen als Ressourcentyp, optionale Verknüpfung mit Nextcloud-Benutzerkonten, mehrere Beteiligte je Aufgabe, Kapazitätsplanung, Workload-Chart und Überbuchungswarnungen.\n* 📅 **Arbeitskalender**: Wochenmodelle, regionale Kalender und Feiertage werden bei allen Datumsberechnungen berücksichtigt.\n* 🃏 **Nextcloud-Deck-Integration**: Projekte, Teilprojekte und Aufgaben mit Deck-Boards, Listen und Karten verbinden. Vier optionale Synchronisationsstufen reichen von reiner Rückmeldung bis zum Schreiben mit oder ohne Bestätigung.\n* 🤝 **Freigabe & Berechtigungen**: Einzelne Projekte als Betrachter, Bearbeiter oder Projektadmin freigeben.\n* 📎 **Anhänge**: Beliebig viele Dateien und Notizen an Projekte, Teilprojekte, Aufgaben und Meilensteine hängen; sie werden automatisch mit allen geteilt, die Zugriff auf das Projekt haben.\n* 🗓 **Kalender- & Tasks-Integration**: Projekttermine und Meilensteine per ICS abonnieren und eigene Aufgaben optional in die Nextcloud-App Tasks schreiben.\n* 🔄 **Import & Export**: JSON, CSV, PNG, SVG und PDF. Pläne aus **Microsoft Project** (MSPDI-XML, auch von ProjectLibre und GanttProject geschrieben) lassen sich als neues Projekt importieren, samt Gliederung, Abhängigkeiten, Ressourcen, Arbeitskalender und Plankosten.\n* 🧬 **Duplizieren & Vorlagen**: Ein bewährtes Projekt als Ausgangspunkt für ein neues kopieren, mit neuem Starttermin und wahlweise allen, nur Rollen- oder keinen Ressourcenzuordnungen.\n* 🔗 **Link-Vorschauen**: Links auf Projekte und Aufgaben erscheinen in Text, Talk, Notes und anderen Apps als Vorschau.\n* 🏠 **Dashboard-Widgets**: Aktive Projekte sowie die nächsten fälligen oder überfälligen Aufgaben direkt im Nextcloud-Dashboard.\n* 🔔 **Benachrichtigungen**: Konfigurierbare Erinnerungen für Aufgaben und Meilensteine sowie Benachrichtigungen über Zuordnungen und Terminänderungen.\n* ↩ **Undo & Änderungsprotokoll**: Versehentliche Terminänderungen inklusive ihrer Propagationskette zurücknehmen; Feldänderungen werden protokolliert.\n* 🔍 **Suche & Filter**: Nach Risiko, Überfälligkeit, Budgetüberschreitung, Ressource, eigenen Aufgaben und fehlenden Deck-Verknüpfungen filtern, ohne den Zeitkontext zu verlieren.\n* 📖 **Projektmanagement-Glossar**: Rund 30 Projektmanagement-Begriffe und Formeln direkt in der App.\n* 🌐 **Lokalisierung**: Englisch, Deutsch, Französisch, Spanisch, Italienisch, Niederländisch und brasilianisches Portugiesisch.\n\n## 🔐 Souverän by Design\n\nnc_Gantt läuft vollständig auf der eigenen Nextcloud-Instanz. Projektpläne, Ressourcen, Termine und Berichte bleiben unter der eigenen Kontrolle — ohne separaten SaaS-Dienst und ohne externes Tracking.\n\nErfordert Nextcloud 31–35 und PHP 8.1 oder neuer. Läuft mit MySQL, MariaDB, PostgreSQL und SQLite.\n\n## 📚 Dokumentation\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/de/HOWTO.md) — ein Beispielprojekt Schritt für Schritt planen, vom Arbeitskalender bis zum fertigen Bericht\n* 📋 [Funktionsübersicht](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/de/FEATURES.md) — jede Funktion mit Zweck, Eingabe und Ausgabe\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — was sich in jeder Version geändert hat\n* 💾 [Installation](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/de/INSTALL.md) — Einrichtung und Hinweise zum Update\n\n## 🐛 Rückmeldungen\n\nFehlerberichte und Funktionswünsche sind im [Issue-Tracker](https://codeberg.org/fds2610/NC-Gantt/issues) willkommen.\n\nAlex S: Weil Ich auf Bewertungen mit Kommentaren nicht antworten kann habe ich ein Issue angelegt. Es wäre toll, wenn Du mir kurz schreiben könntest, welchen Fehler genau du bemerkt hast, dann kann ich ihn generell beheben - auch wenn Dein Setup speziell zu sein scheint! [Issue #314](https://codeberg.org/fds2610/NC-Gantt/issues/314)"},"en":{"name":"nc_Gantt","summary":"Professional project management with Gantt, resources and Deck integration","description":"**Professional project management — inside your own Nextcloud.**\n\nnc_Gantt brings structured project planning and day-to-day task execution together in Nextcloud. Plan projects, subprojects, tasks and milestones with a professional Gantt chart — including dependencies, critical path, baselines, resources, capacity, budgets and Earned Value Management.\n\nThe key difference is the integration with **Nextcloud Deck**: connect the project plan with the team's actual work. Link tasks to Deck cards, create cards from project tasks, and optionally synchronize progress, dates and assignees. This connects professional project planning with agile, team-oriented execution without introducing another platform or data silo.\n\nAll project data stays on your own Nextcloud instance: no external service, no tracking, no data leaving your server.\n\n## ✨ Features\n\n* 📊 **Professional Gantt planning**: Projects, subprojects, tasks and milestones in a synchronized Gantt and table view, with day, week, month and sprint scales, inline editing and keyboard navigation.\n* 🔗 **Dependencies & scheduling**: n:m dependencies of all four types (FS, SS, FF, SF), with lag and lead time in working days. Schedule changes propagate through dependency chains and cycles are rejected.\n* 🎯 **Critical path**: Forward and backward scheduling with float calculation; the chain that determines the project end date is highlighted.\n* 📈 **Earned Value Management**: PV, EV, AC, SPI and CPI alongside rollup KPIs for progress, effort, budget and risk.\n* 📐 **Baselines & variance reporting**: Freeze a plan, keep the baseline visible and compare the current schedule against it element by element.\n* 🔮 **What-if simulation**: Test schedule changes without modifying the saved plan.\n* 👥 **Resources & capacity**: Resource groups, roles as a resource type, optional links to Nextcloud user accounts, multiple assignees per task, capacity planning, workload charts and over-allocation warnings.\n* 📅 **Working calendars**: Week models, regional calendars and holidays are taken into account by date calculations.\n* 🃏 **Nextcloud Deck integration**: Connect projects, subprojects and tasks with Deck boards, lists and cards. Choose between four opt-in synchronization levels, from feedback-only to writing changes with or without confirmation.\n* 🤝 **Sharing & permissions**: Share individual projects as viewer, editor or project admin.\n* 📎 **Attachments**: Attach any number of files and Notes to projects, subprojects, tasks and milestones; they are shared automatically with everyone who has access to the project.\n* 🗓 **Calendar & Tasks integration**: Subscribe to project dates and milestones via ICS and optionally write your own tasks to the Nextcloud Tasks app.\n* 🔄 **Import & export**: JSON, CSV, PNG, SVG and PDF. Plans from **Microsoft Project** (MSPDI XML, also written by ProjectLibre and GanttProject) can be imported as a new project, including hierarchy, dependencies, resources, working calendar and planned costs.\n* 🧬 **Duplicate & templates**: Copy a proven project as the starting point for a new one, with a new start date and a choice of keeping all, only role or no resource assignments.\n* 🔗 **Link previews**: Links to projects and tasks show a rich preview in Text, Talk, Notes and other apps.\n* 🏠 **Dashboard widgets**: See active projects and your next due or overdue tasks directly on the Nextcloud dashboard.\n* 🔔 **Notifications**: Configurable reminders for tasks and milestones, plus notifications for assignments and schedule changes.\n* ↩ **Undo & audit log**: Undo accidental schedule changes including their propagation chain; field changes are recorded.\n* 🔍 **Search & filters**: Filter by risk, overdue items, budget overruns, resources, assigned tasks and missing Deck links without losing the time context.\n* 📖 **Project management glossary**: Around 30 project-management terms and formulas built into the app.\n* 🌐 **Localisation**: English, German, French, Spanish, Italian, Dutch and Brazilian Portuguese.\n\n## 🔐 Sovereign by design\n\nnc_Gantt runs entirely on your Nextcloud instance. Project plans, resources, schedules and reports remain under your control — without a separate SaaS service or external tracking.\n\nRequires Nextcloud 31–35 and PHP 8.1 or newer. Works with MySQL, MariaDB, PostgreSQL and SQLite.\n\n## 📚 Documentation\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — plan a sample project step by step, from the working calendar to the finished report\n* 📋 [Feature reference](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — every function with its purpose, input and output\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — what changed in each release\n* 💾 [Installation](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — setup and update notes\n\n## 🐛 Feedback\n\nBug reports and feature requests are welcome in the [issue tracker](https://codeberg.org/fds2610/NC-Gantt/issues)."},"es":{"name":"nc_Gantt","summary":"Gestionar proyectos y subproyectos con un diagrama de Gantt interactivo","description":"**Planifica proyectos como trabajan realmente los jefes de proyecto — dentro de tu propia Nextcloud.**\n\nnc_Gantt gestiona proyectos, subproyectos, tareas e hitos en un diagrama de Gantt interactivo con una vista de tabla sincronizada. La planificación, los recursos, las líneas base y los informes se ejecutan por completo en tu instancia: sin servicios externos, sin seguimiento y sin datos que salgan de tu servidor.\n\n## ✨ Funciones\n\n* 📊 **Diagrama de Gantt y vista de tabla**: Escala de día, semana, mes y sprint con hitos en forma de rombo, barras de progreso, línea de hoy y sombreado de fin de semana. La tabla de la izquierda muestra las mismas filas y ofrece columnas configurables, edición en línea y navegación completa por teclado. Los proyectos, subproyectos y tareas se pueden contraer, y los subproyectos y tareas pueden tener su propio color o heredar el del elemento superior.\n* 🔗 **Dependencias y programación**: Dependencias n:m de los cuatro tipos (FC, CC, FF, CF) con demora y adelanto en días laborables: se ajustan por dependencia en el diálogo de la tarea o se escriben en la tabla con la notación conocida de MS Project (`12FC+2d`). Los desplazamientos se propagan por toda la cadena y los ciclos se rechazan.\n* 🎯 **Ruta crítica**: Cálculo hacia adelante y hacia atrás con holgura en el servidor; la cadena que realmente determina la fecha final se resalta en el diagrama.\n* 📈 **Gestión del valor ganado**: PV, EV, AC, SPI y CPI junto a KPI agregados de progreso, esfuerzo, presupuesto y riesgo.\n* 📐 **Líneas base e informe de desviaciones**: Congela un plan, mantenlo visible como segunda barra y compara el plan actual elemento por elemento.\n* 🔮 **Simulación what-if**: Prueba desplazamientos de fechas sin tocar el plan guardado — las barras fantasma siguen mostrando las fechas reales.\n* 👥 **Recursos y capacidad**: Grupos de recursos, recursos vinculables a una cuenta de usuario de Nextcloud, varios asignados por tarea con su propia parte del esfuerzo, cuadrícula de capacidad diaria, gráfico de carga bajo la línea de tiempo y avisos de sobreasignación.\n* 📅 **Calendarios laborales**: Modelos de semana, calendarios regionales y festivos — todos los cálculos de fechas de la aplicación cuentan los días laborables en consecuencia.\n* 🤝 **Compartir y permisos**: Comparte proyectos individuales como lector, editor o administrador de proyecto; la interfaz oculta lo que un rol no puede hacer.\n* 🗓 **Feed de calendario (ICS)**: Suscríbete a las fechas e hitos del proyecto en Thunderbird, Calendario de Nextcloud o aplicaciones móviles mediante un token por proyecto revocable en cualquier momento, o suscríbete a una fuente personal solo con tus propias tareas e hitos de todos los proyectos. Opcionalmente, tus tareas también se escriben como pendientes en la aplicación Tasks de Nextcloud (en un solo sentido).\n* 🔄 **Importación y exportación**: JSON con recursos, disponibilidades y calendarios laborales, CSV para hojas de cálculo y el diagrama renderizado como PNG, SVG o PDF. Los planes de **Microsoft Project** (XML MSPDI, también generado por ProjectLibre y GanttProject) se importan como proyecto nuevo, con jerarquía, dependencias, recursos, calendario laboral y costes previstos.\n* 🧬 **Duplicar y plantillas**: Copia un proyecto probado como base de uno nuevo, con nueva fecha de inicio y a elegir todas, solo los roles o ninguna asignación de recursos.\n* 🔗 **Vistas previas de enlaces**: Los enlaces a proyectos y tareas se muestran como vista previa en Text, Talk, Notes y otras aplicaciones.\n* 🃏 **Integración con Deck**: Vincula proyectos, subproyectos y tareas con un tablero de Nextcloud Deck, sus listas y tarjetas, y adopta el progreso de una tarea desde su tarjeta (completada o proporción de la lista de verificación). Con cuatro niveles de sincronización opcionales por proyecto — desde la simple retroalimentación hasta la escritura con o sin confirmación — también puedes crear tarjetas desde una tarea y mantener al día su fecha límite, inicio y responsables. El [resumen de integraciones](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md#integrations-at-a-glance) muestra qué fluye hacia dónde.\n* 🏠 **Widgets de panel**: Un Gantt compacto de tus proyectos activos y tus próximas tareas por vencer o vencidas — cada una a un clic — en el panel de Nextcloud.\n* 🔔 **Notificaciones**: Un trabajo en segundo plano diario envía una notificación de Nextcloud para las tareas e hitos que vencen hoy, vencen pronto o están vencidos — a las cuentas vinculadas a los recursos asignados o, a falta de ellas, al propietario del proyecto. Cada proyecto define su antelación en días laborables, si recuerda solo los hitos y si incluye los elementos vencidos; cada persona puede silenciarlas en sus ajustes personales. Además del trabajo diario, la aplicación informa de los cambios al instante: una nueva asignación y las fechas desplazadas — también las que surgen a través de la cadena de dependencias, agrupadas en un solo aviso por persona y nunca sobre el propio cambio.\n* ↩ **Deshacer y registro de cambios**: Revierte un desplazamiento accidental junto con su cadena de propagación; los cambios de campo quedan registrados.\n* 🔍 **Búsqueda y filtros**: Encuentra elementos por título o filtra por riesgo, retraso, exceso de presupuesto, recurso, tareas asignadas a ti y falta de vínculo con Deck — sin perder el contexto temporal.\n* 📖 **Glosario**: Alrededor de 30 términos de gestión de proyectos con sus fórmulas, integrados en la aplicación.\n* 🌐 **Localización**: Inglés, alemán, francés, español, italiano, neerlandés y portugués de Brasil.\n\n## 🔐 Soberanía por diseño\n\nnc_Gantt se ejecuta por completo en tu instancia de Nextcloud. Los planes de proyecto, los recursos, los calendarios y los informes permanecen bajo tu control, sin un servicio SaaS aparte ni seguimiento externo.\n\nRequiere Nextcloud 31–35 y PHP 8.1 o superior. Funciona con MySQL, MariaDB, PostgreSQL y SQLite.\n\n## 📚 Documentación\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — planifica un proyecto de ejemplo paso a paso, del calendario laboral al informe final\n* 📋 [Referencia de funciones](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — cada función con su propósito, entrada y salida\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — qué ha cambiado en cada versión\n* 💾 [Instalación](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — instalación y notas de actualización\n\n## 🐛 Comentarios\n\nLos informes de errores y las peticiones de funciones son bienvenidos en el [gestor de incidencias](https://codeberg.org/fds2610/NC-Gantt/issues)."},"fr":{"name":"nc_Gantt","summary":"Gérer des projets et sous-projets avec un diagramme de Gantt interactif","description":"**Planifiez vos projets comme le font vraiment les chefs de projet — dans votre propre Nextcloud.**\n\nnc_Gantt gère projets, sous-projets, tâches et jalons dans un diagramme de Gantt interactif doublé d'une vue tableau synchronisée. Planification, ressources, références et rapports fonctionnent entièrement sur votre instance : aucun service externe, aucun pistage, aucune donnée qui quitte votre serveur.\n\n## ✨ Fonctionnalités\n\n* 📊 **Diagramme de Gantt et vue tableau** : Échelle jour, semaine, mois et sprint, avec jalons en losange, barres de progression, ligne du jour et grisé des week-ends. Le tableau à gauche affiche les mêmes lignes et propose des colonnes configurables, l'édition en ligne et une navigation complète au clavier. Projets, sous-projets et tâches peuvent être repliés ; sous-projets et tâches peuvent recevoir leur propre couleur ou hériter de celle de leur parent.\n* 🔗 **Dépendances et ordonnancement** : Dépendances n:m des quatre types (FD, DD, FF, DF) avec décalage positif ou négatif en jours ouvrés, réglable par dépendance dans la boîte de dialogue de la tâche ou saisi dans le tableau avec la notation connue de MS Project (`12FD+2d`). Les déplacements se propagent dans toute la chaîne et les cycles sont refusés.\n* 🎯 **Chemin critique** : Calcul aller-retour avec marges côté serveur ; la chaîne qui détermine réellement la date de fin est mise en évidence dans le diagramme.\n* 📈 **Gestion de la valeur acquise** : PV, EV, AC, SPI et CPI, à côté des indicateurs consolidés d'avancement, de charge, de budget et de risque.\n* 📐 **Références et rapport d'écarts** : Figez un plan, gardez-le visible sous forme de seconde barre et comparez le plan actuel élément par élément.\n* 🔮 **Simulation what-if** : Testez des décalages de dates sans toucher au plan enregistré — des barres fantômes conservent les dates réelles à l'écran.\n* 👥 **Ressources et capacité** : Groupes de ressources, ressources pouvant être liées à un compte utilisateur Nextcloud, plusieurs affectations par tâche avec une part de charge propre, grille de capacité au jour près, graphique de charge sous la frise et alertes de surcharge.\n* 📅 **Calendriers de travail** : Modèles de semaine, calendriers régionaux et jours fériés — tous les calculs de dates de l'application comptent les jours ouvrés en conséquence.\n* 🤝 **Partage et permissions** : Partagez des projets isolés en lecteur, éditeur ou administrateur de projet ; l'interface masque ce qu'un rôle n'a pas le droit de faire.\n* 🗓 **Flux de calendrier (ICS)** : Abonnez-vous aux dates et jalons du projet dans Thunderbird, Nextcloud Agenda ou une application mobile, via un jeton par projet révocable à tout moment — ou abonnez-vous à un flux personnel contenant uniquement vos propres tâches et jalons de tous les projets. En option, vos tâches sont aussi écrites dans l'application Tâches de Nextcloud (dans un seul sens).\n* 🔄 **Import et export** : JSON avec ressources, disponibilités et calendriers de travail, CSV pour les tableurs, et le diagramme rendu en PNG, SVG ou PDF. Les plans **Microsoft Project** (XML MSPDI, aussi écrit par ProjectLibre et GanttProject) s'importent comme nouveau projet, avec hiérarchie, dépendances, ressources, calendrier de travail et coûts prévus.\n* 🧬 **Dupliquer et modèles** : Copiez un projet éprouvé comme base d'un nouveau, avec une nouvelle date de début et au choix toutes, seulement les rôles ou aucune affectation de ressources.\n* 🔗 **Aperçus de liens** : Les liens vers des projets et des tâches s'affichent en aperçu dans Text, Talk, Notes et d'autres applications.\n* 🃏 **Intégration Deck** : Reliez projets, sous-projets et tâches à un tableau Nextcloud Deck, à ses listes et à ses cartes, et reprenez la progression d'une tâche depuis sa carte (terminée ou part de la liste de contrôle). Avec quatre niveaux de synchronisation optionnels par projet — de la simple remontée d'information jusqu'à l'écriture avec ou sans confirmation — créez aussi des cartes depuis une tâche et tenez à jour leur échéance, leur début et leurs responsables. La [vue d'ensemble des intégrations](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md#integrations-at-a-glance) montre ce qui circule et dans quel sens.\n* 🏠 **Widgets de tableau de bord** : Un Gantt compact de vos projets actifs et vos prochaines tâches à échéance ou en retard — chacune à un clic — directement sur le tableau de bord Nextcloud.\n* 🔔 **Notifications** : Une tâche de fond quotidienne envoie une notification Nextcloud pour les tâches et jalons dus aujourd'hui, bientôt dus ou en retard — aux comptes liés aux ressources affectées, à défaut au propriétaire du projet. Chaque projet définit son délai en jours ouvrés, s'il ne rappelle que les jalons et s'il inclut les éléments en retard ; chacun peut les couper dans ses paramètres personnels. En plus du passage quotidien, l'application signale les changements immédiatement : une nouvelle affectation et les dates déplacées — y compris celles issues de la chaîne de dépendances, regroupées en un seul message par personne et jamais pour sa propre modification.\n* ↩ **Annulation et journal des modifications** : Revenez sur un déplacement accidentel, chaîne de propagation comprise ; les changements de champ sont journalisés.\n* 🔍 **Recherche et filtres** : Trouvez des éléments par titre ou filtrez par risque, retard, dépassement de budget, ressource, tâches qui vous sont assignées et absence de lien Deck — sans perdre le contexte temporel.\n* 📖 **Glossaire** : Une trentaine de termes de gestion de projet avec leurs formules, intégrés à l'application.\n* 🌐 **Localisation** : anglais, allemand, français, espagnol, italien, néerlandais et portugais brésilien.\n\n## 🔐 Souveraineté par conception\n\nnc_Gantt fonctionne entièrement sur votre instance Nextcloud. Plans de projet, ressources, calendriers et rapports restent sous votre contrôle, sans service SaaS séparé ni suivi externe.\n\nNécessite Nextcloud 31–35 et PHP 8.1 ou plus récent. Fonctionne avec MySQL, MariaDB, PostgreSQL et SQLite.\n\n## 📚 Documentation\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — planifier un projet d'exemple pas à pas, du calendrier de travail au rapport final\n* 📋 [Référence des fonctions](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — chaque fonction avec son objectif, ses entrées et ses sorties\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — ce qui a changé dans chaque version\n* 💾 [Installation](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — installation et notes de mise à jour\n\n## 🐛 Retours\n\nLes rapports de bogues et les demandes de fonctionnalités sont les bienvenus dans le [suivi des tickets](https://codeberg.org/fds2610/NC-Gantt/issues)."},"it":{"name":"nc_Gantt","summary":"Gestisci progetti e sottoprogetti con un diagramma di Gantt interattivo","description":"**Pianifica i progetti come lavorano davvero i project manager — nella tua Nextcloud.**\n\nnc_Gantt gestisce progetti, sottoprogetti, attività e milestone in un diagramma di Gantt interattivo affiancato da una vista tabellare sincronizzata. Pianificazione, risorse, baseline e reportistica girano interamente sulla tua istanza: nessun servizio esterno, nessun tracciamento, nessun dato che lasci il server.\n\n## ✨ Funzionalità\n\n* 📊 **Diagramma di Gantt e vista tabellare**: Scala giorno, settimana, mese e sprint con milestone a rombo, barre di avanzamento, linea di oggi e ombreggiatura dei fine settimana. La tabella a sinistra mostra le stesse righe e offre colonne configurabili, modifica in linea e navigazione completa da tastiera. Progetti, sottoprogetti e attività si possono comprimere; sottoprogetti e attività possono avere un colore proprio o ereditare quello dell'elemento superiore.\n* 🔗 **Dipendenze e pianificazione**: Dipendenze n:m di tutti e quattro i tipi (FI, II, FF, IF) con anticipo e ritardo in giorni lavorativi, impostabili per ogni dipendenza nella finestra dell'attività o digitabili nella tabella con la notazione nota di MS Project (`12FI+2d`). Gli spostamenti si propagano lungo l'intera catena e i cicli vengono rifiutati.\n* 🎯 **Percorso critico**: Calcolo in avanti e all'indietro con gli scorrimenti lato server; la catena che determina davvero la data di fine viene evidenziata nel diagramma.\n* 📈 **Earned Value Management**: PV, EV, AC, SPI e CPI accanto ai KPI aggregati di avanzamento, impegno, budget e rischio.\n* 📐 **Baseline e report degli scostamenti**: Congela un piano, tienilo visibile come seconda barra e confronta il piano attuale elemento per elemento.\n* 🔮 **Simulazione what-if**: Prova gli spostamenti di date senza toccare il piano salvato — le barre fantasma mantengono in vista le date reali.\n* 👥 **Risorse e capacità**: Gruppi di risorse, risorse collegabili a un account utente Nextcloud, più assegnatari per attività con una quota di impegno propria, griglia di capacità giornaliera, grafico del carico sotto la linea temporale e avvisi di sovrallocazione.\n* 📅 **Calendari lavorativi**: Modelli settimanali, calendari regionali e festività — tutti i calcoli di date dell'app contano i giorni lavorativi di conseguenza.\n* 🤝 **Condivisione e permessi**: Condividi singoli progetti come lettore, editor o amministratore di progetto; l'interfaccia nasconde ciò che un ruolo non può fare.\n* 🗓 **Feed di calendario (ICS)**: Iscriviti a date e milestone del progetto in Thunderbird, Calendario di Nextcloud o app mobili tramite un token per progetto revocabile in qualsiasi momento, oppure iscriviti a un feed personale con solo le tue attività e milestone di tutti i progetti. Facoltativamente, le tue attività vengono scritte anche come cose da fare nell'app Tasks di Nextcloud (in una sola direzione).\n* 🔄 **Importazione ed esportazione**: JSON con risorse, disponibilità e calendari lavorativi, CSV per i fogli di calcolo e il diagramma renderizzato in PNG, SVG o PDF. I piani di **Microsoft Project** (XML MSPDI, scritto anche da ProjectLibre e GanttProject) si importano come nuovo progetto, con gerarchia, dipendenze, risorse, calendario lavorativo e costi pianificati.\n* 🧬 **Duplicazione e modelli**: Copia un progetto collaudato come base per uno nuovo, con una nuova data di inizio e, a scelta, tutte, solo i ruoli o nessuna assegnazione di risorse.\n* 🔗 **Anteprime dei link**: I link a progetti e attività compaiono come anteprima in Text, Talk, Notes e altre app.\n* 🃏 **Integrazione con Deck**: Collega progetti, sottoprogetti e attività a una bacheca Nextcloud Deck, alle sue liste e schede, e riprendi l'avanzamento di un'attività dalla sua scheda (completata o quota della checklist). Con quattro livelli di sincronizzazione opzionali per progetto — dal semplice riscontro fino alla scrittura con o senza conferma — puoi anche creare schede da un'attività e mantenere aggiornate la loro scadenza, l'inizio e gli assegnatari. La [panoramica delle integrazioni](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md#integrations-at-a-glance) mostra cosa passa e in quale direzione.\n* 🏠 **Widget della dashboard**: Un Gantt compatto dei progetti attivi e le tue prossime attività in scadenza o in ritardo — ognuna a portata di clic — direttamente nella dashboard di Nextcloud.\n* 🔔 **Notifiche**: Un processo in background giornaliero invia una notifica di Nextcloud per attività e milestone in scadenza oggi, in scadenza a breve o in ritardo — agli account collegati alle risorse assegnate oppure, in mancanza, al proprietario del progetto. Ogni progetto imposta il proprio anticipo in giorni lavorativi, se ricordare solo le milestone e se includere gli elementi in ritardo; ognuno può silenziarle nelle impostazioni personali. Oltre al passaggio giornaliero, l'app segnala subito i cambiamenti: una nuova assegnazione e le date spostate — anche quelle derivate dalla catena di dipendenze, raggruppate in un solo messaggio per persona e mai per la propria modifica.\n* ↩ **Annulla e registro delle modifiche**: Ritira uno spostamento involontario insieme alla sua catena di propagazione; le modifiche ai campi vengono registrate.\n* 🔍 **Ricerca e filtri**: Trova gli elementi per titolo oppure filtra per rischio, ritardo, sforamento di budget, risorsa, attività assegnate a te e collegamento Deck mancante — senza perdere il contesto temporale.\n* 📖 **Glossario**: Circa 30 termini di project management con le relative formule, integrati nell'app.\n* 🌐 **Localizzazione**: inglese, tedesco, francese, spagnolo, italiano, olandese e portoghese brasiliano.\n\n## 🔐 Sovranità by design\n\nnc_Gantt gira interamente sulla tua istanza Nextcloud. Piani di progetto, risorse, pianificazioni e report restano sotto il tuo controllo, senza un servizio SaaS separato né tracciamento esterno.\n\nRichiede Nextcloud 31–35 e PHP 8.1 o successivo. Funziona con MySQL, MariaDB, PostgreSQL e SQLite.\n\n## 📚 Documentazione\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — pianifica un progetto di esempio passo dopo passo, dal calendario lavorativo al report finale\n* 📋 [Riferimento delle funzioni](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — ogni funzione con scopo, input e output\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — che cosa è cambiato in ogni versione\n* 💾 [Installazione](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — installazione e note di aggiornamento\n\n## 🐛 Segnalazioni\n\nSegnalazioni di bug e richieste di funzionalità sono benvenute nell'[issue tracker](https://codeberg.org/fds2610/NC-Gantt/issues)."},"nl":{"name":"nc_Gantt","summary":"Beheer projecten en subprojecten met een interactieve Gantt-grafiek","description":"**Plan projecten zoals projectleiders echt werken — in je eigen Nextcloud.**\n\nnc_Gantt beheert projecten, subprojecten, taken en mijlpalen in een interactieve Gantt-grafiek met een gesynchroniseerde tabelweergave. Planning, resources, baselines en rapportage draaien volledig op je eigen instantie: geen externe dienst, geen tracking, geen gegevens die je server verlaten.\n\n## ✨ Functies\n\n* 📊 **Gantt-grafiek en tabelweergave**: Schaal per dag, week, maand en sprint met mijlpaalruiten, voortgangsbalken, vandaag-lijn en weekendarcering. De tabel links toont exact dezelfde rijen en biedt instelbare kolommen, inline bewerken en volledige toetsenbordnavigatie. Projecten, subprojecten en taken zijn in te klappen; subprojecten en taken krijgen desgewenst een eigen kleur of nemen die van het bovenliggende item over.\n* 🔗 **Afhankelijkheden en planning**: n:m-afhankelijkheden van alle vier de typen (ES, SS, EE, SE) met wachttijd of overlap in werkdagen, per afhankelijkheid in te stellen in het taakvenster of in de tabel in te voeren in de bekende MS Project-notatie (`12ES+2d`). Verschuivingen lopen door de hele keten en cycli worden geweigerd.\n* 🎯 **Kritiek pad**: Voorwaartse en achterwaartse berekening met speling op de server; de keten die de einddatum werkelijk bepaalt, wordt in de grafiek gemarkeerd.\n* 📈 **Earned Value Management**: PV, EV, AC, SPI en CPI naast samengevatte KPI's voor voortgang, inspanning, budget en risico.\n* 📐 **Baselines en afwijkingsrapport**: Bevries een plan, houd het zichtbaar als tweede balk en zet het huidige plan er element voor element naast.\n* 🔮 **What-if-simulatie**: Speel datumverschuivingen door zonder het opgeslagen plan aan te raken — spookbalken houden de werkelijke data in beeld.\n* 👥 **Resources en capaciteit**: Resourcegroepen, resources optioneel gekoppeld aan een Nextcloud-gebruikersaccount, meerdere toegewezenen per taak met een eigen aandeel in de inspanning, capaciteitsraster per dag, werklastgrafiek onder de tijdlijn en waarschuwingen bij overboeking.\n* 📅 **Werkkalenders**: Weekmodellen, regionale kalenders en feestdagen — elke datumberekening in de app telt werkdagen dienovereenkomstig.\n* 🤝 **Delen en rechten**: Deel afzonderlijke projecten als kijker, bewerker of projectbeheerder; de interface verbergt wat een rol niet mag.\n* 🗓 **Agenda-feed (ICS)**: Abonneer je op projectdata en mijlpalen in Thunderbird, Nextcloud Agenda of mobiele apps via een token per project dat je altijd kunt intrekken — of abonneer je op een persoonlijke feed met alleen je eigen taken en mijlpalen uit alle projecten. Optioneel worden je taken ook als to-do's in de Nextcloud-app Taken geschreven (in één richting).\n* 🔄 **Import en export**: JSON inclusief resources, beschikbaarheden en werkkalenders, CSV voor spreadsheets en de gerenderde grafiek als PNG, SVG of PDF. Plannen uit **Microsoft Project** (MSPDI-XML, ook geschreven door ProjectLibre en GanttProject) kunnen als nieuw project worden geïmporteerd, met hiërarchie, afhankelijkheden, resources, werkkalender en geplande kosten.\n* 🧬 **Dupliceren en sjablonen**: Kopieer een bewezen project als basis voor een nieuw project, met een nieuwe startdatum en naar keuze alle, alleen rol- of geen resourcetoewijzingen.\n* 🔗 **Linkvoorbeelden**: Links naar projecten en taken verschijnen als voorbeeld in Text, Talk, Notes en andere apps.\n* 🃏 **Deck-integratie**: Koppel projecten, deelprojecten en taken aan een Nextcloud Deck-bord, de lijsten en de kaarten, en neem de voortgang van een taak over van haar kaart (afgerond of aandeel van de checklist). Met vier optionele synchronisatieniveaus per project — van alleen terugkoppeling tot schrijven met of zonder bevestiging — maak je ook kaarten aan vanuit een taak en houd je hun einddatum, startdatum en toegewezenen bij. Het [integratieoverzicht](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md#integrations-at-a-glance) toont wat waarheen gaat.\n* 🏠 **Dashboard-widgets**: Een compacte Gantt van je actieve projecten en je eerstvolgende of achterstallige taken — elk met één klik geopend — direct op het Nextcloud-dashboard.\n* 🔔 **Meldingen**: Een dagelijkse achtergrondtaak stuurt een Nextcloud-melding voor taken en mijlpalen die vandaag aflopen, binnenkort aflopen of te laat zijn — naar de accounts die aan de toegewezen resources zijn gekoppeld, anders naar de projecteigenaar. Elk project stelt zijn eigen voorlooptijd in werkdagen in, of het alleen aan mijlpalen herinnert en of achterstallige items meetellen; iedereen kan ze dempen in de persoonlijke instellingen. Naast de dagelijkse ronde meldt de app wijzigingen meteen: een nieuwe toewijzing en verschoven data — ook die via de afhankelijkheidsketen ontstaan, gebundeld tot één melding per persoon en nooit over je eigen wijziging.\n* ↩ **Ongedaan maken en wijzigingslogboek**: Draai een onbedoelde verschuiving inclusief propagatieketen terug; veldwijzigingen worden vastgelegd.\n* 🔍 **Zoeken en filteren**: Vind elementen op titel of filter op risico, achterstand, budgetoverschrijding, resource, aan jou toegewezen taken en ontbrekende Deck-koppeling — zonder de tijdcontext kwijt te raken.\n* 📖 **Woordenlijst**: Ongeveer 30 projectmanagementbegrippen met hun formules, ingebouwd in de app.\n* 🌐 **Lokalisatie**: Engels, Duits, Frans, Spaans, Italiaans, Nederlands en Braziliaans Portugees.\n\n## 🔐 Soeverein door ontwerp\n\nnc_Gantt draait volledig op je eigen Nextcloud-instantie. Projectplannen, resources, planningen en rapporten blijven onder je eigen controle, zonder aparte SaaS-dienst en zonder externe tracking.\n\nVereist Nextcloud 31–35 en PHP 8.1 of nieuwer. Werkt met MySQL, MariaDB, PostgreSQL en SQLite.\n\n## 📚 Documentatie\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — plan stap voor stap een voorbeeldproject, van werkkalender tot eindrapport\n* 📋 [Functieoverzicht](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — elke functie met doel, invoer en uitvoer\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — wat er per versie is veranderd\n* 💾 [Installatie](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — installatie- en update-instructies\n\n## 🐛 Feedback\n\nBugmeldingen en functieverzoeken zijn welkom in de [issue tracker](https://codeberg.org/fds2610/NC-Gantt/issues)."},"pt-br":{"name":"nc_Gantt","summary":"Gerencie projetos e subprojetos com um gráfico de Gantt interativo","description":"**Planeje projetos do jeito que gerentes de projeto realmente trabalham — dentro da sua própria Nextcloud.**\n\nnc_Gantt gerencia projetos, subprojetos, tarefas e marcos em um gráfico de Gantt interativo com uma visualização de tabela sincronizada. Cronograma, recursos, linhas de base e relatórios rodam inteiramente na sua instância: sem serviço externo, sem rastreamento e sem dados saindo do seu servidor.\n\n## ✨ Recursos\n\n* 📊 **Gráfico de Gantt e visualização de tabela**: Escala de dia, semana, mês e sprint com marcos em losango, barras de progresso, linha de hoje e sombreamento de fim de semana. A tabela à esquerda mostra exatamente as mesmas linhas e oferece colunas configuráveis, edição em linha e navegação completa pelo teclado. Projetos, subprojetos e tarefas podem ser recolhidos, e subprojetos e tarefas podem ter cor própria ou herdar a do item superior.\n* 🔗 **Dependências e cronograma**: Dependências n:m dos quatro tipos (TI, II, TT, IT) com espera e antecipação em dias úteis, definidas por dependência no diálogo da tarefa ou digitadas na tabela na notação conhecida do MS Project (`12TI+2d`). As mudanças se propagam por toda a cadeia e ciclos são rejeitados.\n* 🎯 **Caminho crítico**: Cálculo progressivo e regressivo com folgas no servidor; a cadeia que realmente define a data final é destacada no gráfico.\n* 📈 **Gestão do Valor Agregado**: PV, EV, AC, SPI e CPI ao lado de KPIs consolidados de progresso, esforço, orçamento e risco.\n* 📐 **Linhas de base e relatório de desvios**: Congele um plano, mantenha-o visível como uma segunda barra e compare o plano atual elemento por elemento.\n* 🔮 **Simulação what-if**: Teste deslocamentos de datas sem tocar no plano salvo — barras fantasma mantêm as datas reais à vista.\n* 👥 **Recursos e capacidade**: Grupos de recursos, recursos opcionalmente vinculados a uma conta de usuário do Nextcloud, vários responsáveis por tarefa com parcela de esforço própria, grade de capacidade diária, gráfico de carga abaixo da linha do tempo e avisos de superalocação.\n* 📅 **Calendários de trabalho**: Modelos de semana, calendários regionais e feriados — todos os cálculos de datas do aplicativo contam os dias úteis de acordo.\n* 🤝 **Compartilhamento e permissões**: Compartilhe projetos individuais como visualizador, editor ou administrador de projeto; a interface oculta o que um papel não pode fazer.\n* 🗓 **Feed de calendário (ICS)**: Assine as datas e os marcos do projeto no Thunderbird, no Calendário do Nextcloud ou em aplicativos móveis por meio de um token por projeto revogável a qualquer momento, ou assine um feed pessoal apenas com suas próprias tarefas e marcos de todos os projetos. Opcionalmente, suas tarefas também são gravadas como pendências no aplicativo Tasks do Nextcloud (em um só sentido).\n* 🔄 **Importação e exportação**: JSON com recursos, disponibilidades e calendários de trabalho, CSV para planilhas e o gráfico renderizado como PNG, SVG ou PDF. Planos do **Microsoft Project** (XML MSPDI, também gravado por ProjectLibre e GanttProject) são importados como novo projeto, com hierarquia, dependências, recursos, calendário de trabalho e custos planejados.\n* 🧬 **Duplicar e modelos**: Copie um projeto aprovado como base de um novo, com nova data de início e, à escolha, todas, apenas as funções ou nenhuma atribuição de recursos.\n* 🔗 **Pré-visualização de links**: Links para projetos e tarefas aparecem como pré-visualização em Text, Talk, Notes e outros apps.\n* 🃏 **Integração com o Deck**: Vincule projetos, subprojetos e tarefas a um quadro do Nextcloud Deck, suas listas e cartões, e adote o progresso de uma tarefa a partir do cartão dela (concluído ou proporção do checklist). Com quatro níveis de sincronização opcionais por projeto — desde apenas retorno até a gravação com ou sem confirmação — você também pode criar cartões a partir de uma tarefa e manter atualizados seu prazo, início e responsáveis. A [visão geral das integrações](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md#integrations-at-a-glance) mostra o que flui para onde.\n* 🏠 **Widgets de painel**: Um Gantt compacto dos seus projetos ativos e suas próximas tarefas a vencer ou atrasadas — cada uma a um clique — direto no painel do Nextcloud.\n* 🔔 **Notificações**: Uma tarefa em segundo plano diária envia uma notificação do Nextcloud para tarefas e marcos que vencem hoje, vencem em breve ou estão atrasados — para as contas vinculadas aos recursos atribuídos ou, na falta delas, para o proprietário do projeto. Cada projeto define sua antecedência em dias úteis, se lembra apenas dos marcos e se inclui os itens atrasados; cada pessoa pode silenciá-las nas configurações pessoais. Além da execução diária, o aplicativo informa as mudanças na hora: uma nova atribuição e datas alteradas — inclusive as que surgem pela cadeia de dependências, agrupadas em uma única mensagem por pessoa e nunca sobre a própria alteração.\n* ↩ **Desfazer e registro de alterações**: Reverta um deslocamento acidental junto com sua cadeia de propagação; alterações de campo são registradas.\n* 🔍 **Busca e filtros**: Encontre itens pelo título ou filtre por risco, atraso, estouro de orçamento, recurso, tarefas atribuídas a você e ausência de vínculo com o Deck — sem perder o contexto temporal.\n* 📖 **Glossário**: Cerca de 30 termos de gerenciamento de projetos com suas fórmulas, integrados ao aplicativo.\n* 🌐 **Localização**: inglês, alemão, francês, espanhol, italiano, holandês e português do Brasil.\n\n## 🔐 Soberania por design\n\nO nc_Gantt roda inteiramente na sua instância do Nextcloud. Planos de projeto, recursos, cronogramas e relatórios permanecem sob o seu controle, sem um serviço SaaS separado nem rastreamento externo.\n\nRequer Nextcloud 31–35 e PHP 8.1 ou mais recente. Funciona com MySQL, MariaDB, PostgreSQL e SQLite.\n\n## 📚 Documentação\n\n* 🚀 [HOWTO](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/HOWTO.md) — planeje um projeto de exemplo passo a passo, do calendário de trabalho ao relatório final\n* 📋 [Referência de recursos](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/FEATURES.md) — cada função com propósito, entrada e saída\n* 📝 [Changelog](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/CHANGELOG.md) — o que mudou em cada versão\n* 💾 [Instalação](https://codeberg.org/fds2610/NC-Gantt/src/branch/main/nc_gantt/docs/en/INSTALL.md) — instalação e notas de atualização\n\n## 🐛 Comentários\n\nRelatos de erros e pedidos de recursos são bem-vindos no [rastreador de problemas](https://codeberg.org/fds2610/NC-Gantt/issues)."}},"isFeatured":false,"authors":[{"name":"fds2610","mail":"felix@schepmann.de","homepage":"https://codeberg.org/fds2610/NC-Gantt"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhNMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTI3MTAzNzU4WhcNMzYwOTAxMTAzNzU4WjATMREwDwYD\nVQQDDAhuY19nYW50dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMm9\noP6vDlGpTxTBBnAJjbz2Sv0wAf5dyLr73SLX2nXmidKACWjAkuq7CiU9qHfJaxJC\nn5gXVjhV4QQKUTaK2Y5bOPGf9VBLwX9zDC1gwlVHFlG7HA+tlXZyL96Zw/qB1ghe\nYkk95n4Ahx7FNHvZwHbAqhoxejWQIo6mwJna9I+x3gyUsURfmaNKo0ZHckMP2fpj\n4HKAwSTbzWqytYgbV8efQP6mAF6JWoBOIyi0Y/Z/zd2YIJ6ZVal0UmxpfTexSgfN\nZPoJWYLQGjqFxAZWLad4XTsJ3kHC4uSJf4LPE3Fde/B+/a15/Xi1uhkIzG38+I0L\nEcOsobkGkgiVU8BFe5NF39Ld8oKTpV+DNaWTAXSzC+qxhM4O15etll/cN8hP1rSb\nnxppA6diiiZ1D788feYvnU0bFMDjG1AxAtiO7su0m+VrqqQcKd/9oyNouZXAG0VH\nLAsTL2kp78EW9yD3UxdgJ8C1j5XEApOAiILt4j0rsRK40u7AGVGD6zwKVPUoOMKZ\nkdiKOHIU31AdMJj3K9ovgXk9ecIOaU+r2UHmP5mH7d7M8pHLwp5elj4rmgx+He69\n2ShNAt0FECTm3yiay30qDuT2IIvRxVrn0qHUE8OWRgtzJnV0WXe2GMvASN86JQM9\nDGhtam1lDw+X44c7LEFawVN/AUesvxv1BrbEezjLAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAGXZO3ifTRL+r9p3iZ8AmTlcdjfYeZLQT/VDio5Zo1fbu1vQRuVXZ4YJ\nye9PFBwLjCXU/Wr2bXdFoMi/L1+o/kZmfEiLmEv7GA6GP88OhozJeNx/+6myhUX6\n0oLbVDJresaO8dguSwc1BkQ1TPO5P2Pihtg6Jz+SE1IG4fhoMCrKwMdmzySZkqeL\nXTgBLp6GTaGGd8Z5jXZvvBTEDwRaVeNMte3UmR2ON2B4zsR8eVD+PAoDobM+HR7q\nx9N8zOlBqkdJUcS/KodgNfXH0o/ZOgqzhHIbD5XnnQpMT1yG0qM98PtelqDURCi9\nqzfIPzlCodnTkS/VWiq16iR9q4kwjRg=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ncc_backend_4mc","categories":["integration","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://nc-connector.de/support/","website":"https://nc-connector.de","created":"2026-04-02T05:22:54.161507Z","lastModified":"2026-10-12T07:15:22.116224Z","releases":[{"version":"1.4.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.5/ncc_backend_4mc-1.4.5.tar.gz","created":"2026-10-12T07:15:22.108459Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T07:15:22.180735Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=36","signature":"YjYm/u1yrLb3NpmVM6+O+e8uv/wdOOUoRT+LWGKksH7MM594rMh5hNAXz9Dxq3UryX8urz8PS45nAl4YaGjazECa6i3pmYuvLbY/xDJN7lIUUWkpdNQ9BQClU46BYB6Qzhj44NjBxOrulk2uFDAFGnS4ovQhAB8dwjypazG8opxCoJc7vlfMNr1jL6wamtf7NcjeD5cwA5mSbu8vfoi4ectitZ7Sr1HI8ZXJXHSSL99njl5bZcHT5ysxJXMs2GI+GE1xfXOShAV35aAOQkPUNK+XtDfaUILSlZWn4D1ZEn4+gAWDxY14VX3Li7UXhmzoY5BaJ2u2e49xwk0CTcyhjpdwSVvyjgWN0jZajbAsDWiD3dOqXvhjhVO4O7kSq3op+TG0mdMr2Xq2+qj9bdzvLg+7jIroMpxND8kpZR28OGVDasR7eAqv83LWiPSbvTtvYoq5zXtRrWSEPhM0Z71v7nV82tsYmn1lEgk7VaRLYVto0067zWL9wjZfz+Qjkccdilb4ZM46V3Zoad/h235uwQdHbnxtw/ubw+mQK+e2CXOmrya/qJoWeQnZsCGv2rPkmRFXD9n1qra4EAGZQxzdNHeEJ2qMoKUsy3AOcsMG9Zf4NEtdDSbiboTLlrK0nF2y6rXn2EFuH2n611rVJTrM7kLxQnGLECqaGXakTXw2GLA=","translations":{"en":{"changelog":"### Changed\n\n- Use revision-pinned URLs for App Store screenshots and GIF demos"}},"signatureDigest":"sha512"},{"version":"1.4.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.4/ncc_backend_4mc-1.4.4.tar.gz","created":"2026-10-08T06:06:41.190723Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T06:46:58.406935Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=36","signature":"ezWXI7ukZHI1EGjFXRDuagKNh+9Ps+HxDwUz/cjlK8JKMufl14a7t0ix4Sgd7VZajDGULI+3W+LZdA0FlxZejASrln9g7lHJx93TrwjlGzwTBl6Uuvy0vQprrPZUgmlgbkVFQluTjZFRXbueDChiM/MJoi+rxVuJkPiTXpsATDVuQI5orRD2KJLrXN4hj6LOAV62UTipHcO3VuT1hdaxbvRWnskXx4Jkbuliqnsw/ZJRdvWDIxjLukEvIop1C3/d4kOMZnmAS9RL/hxHE4iRHyUJ/2P6+jcaQI3u5P0CVcuGfC4abnsVdPWLR9FlFrFUOxVcNw7/9C8crPJOOWixhogpDvJSmYRKdw6cz3If+4BERs6U7HRtJdlAU1GKFAwrNXOLxJB/iCcJMz6g/fRZXNPXil6epo0lpJPXnCO+0hNCGVwwPILDIU2Psw5qZQtLlL41imqDW+pnhpJJaW4Y2Jk4wL1pfaGXN5UIOxYn4NBPqX87VoalRuKRvRonKU+vjSSCtj9YkotiX+blehvhYxnj6o9L6mDM5J4DKQwqrrZriR4DuH8jvRPhjWWez8sTB/AqR4jvjD3VhEFnS4Q7xai2K6I56ozw4XognpUzm5f6ur6cUsQB+NYgUX5+rUpQ225grGQ60MzRJ0zuXADYsVk7Kmny9NaJ4YVL4ae83YU=","translations":{"en":{"changelog":"### Changed\n\n- Update bundled DOMPurify to 3.4.16\n- Refresh backend screenshots and include user overrides in the README screenshot overview\n- Rewrite the English and German App Store descriptions around central management, delegated administration, group and user overrides, signatures, and Managed Rollout\n- Link the App Store description to rollout guides, pricing and support, and direct bug reports to the support form"}},"signatureDigest":"sha512"},{"version":"1.4.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.3/ncc_backend_4mc-1.4.3.tar.gz","created":"2026-10-01T03:12:36.045328Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-01T03:12:36.097222Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=36","signature":"GtGCwREGL8DF1ZAk/FpjzqJKcMFdV1WQGrTI0cwy3xEubZZZKECv32upoU913IVM2tPmH6qI79xWEJSs2P6tqwW2TFOZtOWpuHHFobg0jSF7EDpdNq1V7NdHq5HtfvqCFWSt3ra1HkjGNliiBeGkqE3Ys2By89W1ROl4jWz7HeE+zGkWc7gfSrz57AOnmPTPHGF5ljjRMWMJBHqzL/Tv5OgBqmmgoqbILrYhD+2TmvEeLRkKWLRBjKaqTJ03yzLhK8H0UTnV++bIUHOHlWq9ja870eObl9dnD2kLrI3aAIoFElOlvuYrHgmjUAgNOXeIZwfPt2IN5nV+L9/je1WgPXforJFycfSklOLq7QX2t7gslIlDrJhWgJNfzf4sO8Cnz0D3omNcaq90OUgetnvhPGimfQ6vCgFqeqNo8ZXjVUd05EegwCDLYA9zGut4WSvDyowXnPetO296MiqJYwhtOhzacafB7dHiJe9rlhyvZ7lOML/+mPpVI+309Nmq6uiHh67+9+vMDxC6ler55dqpv45XsqJaj8YxDWY/vQMwweDV6gEga5mLzAhmnnxBd4QuvdYCUUaC0dOOORcAasr4/McNku/cWoXQ4+dCM+eSHS+nkPh4B8dlNkzqc5Sh9z5kPcceDWPaT8/AGregRdP19xMwW2EqlpzSeIwhTp3NAXA=","translations":{"en":{"changelog":"### Added\n\n- Add a global **Default values source** setting to let administrators choose between local and backend defaults for NC Connector add-ons, with optional user choice through **Editable in add-on**\n\n### Changed\n\n- Keep backend default values editable instead of greying them out when **Editable in add-on** is enabled. The checkbox controls whether users may override the value; setting dependencies and administrator permissions still apply"}},"signatureDigest":"sha512"},{"version":"1.4.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.2/ncc_backend_4mc-1.4.2.tar.gz","created":"2026-09-28T02:35:50.622946Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T02:35:50.681067Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=36","signature":"agJN55BSuSknLrJUXJ/jtcETAm1Y4XQSzwJtD37t6dchSQ54S9YGr3QDpStYzh8PGBxcA12296Ku3LMVJ2oJC0ZggE/NM4q7W58BDx4AbrSkoiE2NynHdkzbIOX/EI0XBpHhdhtr/L3PULXK8xQ8nijkOBifzxX+WRzWMhiMom0o8Th/I/OgOn0Sr7GD0jb/vPZrBlrfZMxbKuLpYeBLug9A/348T26SbR+7vFwoy40vKTVtUqpo9hKljnvLAKCdXw7DK3enK4PwlEHSfSLc0VkPNQkSKlaLthfqXr378wiyFnyMdXc+Q6pxg3Bd4NO2uDLqAZklDqkLfCEIYDPP2YtQM/jGNk6R7Nta3cjDQwq0r1bfJrS2eLyyzztnFPtX4ddgiETEzkCUkYge3ZLvcPhrp4gqrHbC1t2cEQn2DDpKHUrhrWHGK5kIgk1xN0qXTh4YGniqW881+IAD97pOsHk3b1GuTbyhnTz9kBP9sAmMn1slqla1WlJ0q9XZxkxnA/FV338Fe+GKYYtL9RkBNSV/DTGPLPCjDrFmWld//oT9nyxb2blaC9RoLR74X2PezpuCE9PaKNVYpzWjSiuXDX03t0lOBuB8SR/0VzC+hirv5G5nWVzllcd48EO0St1de0CFMnfRxVM63ibFlWthADW54RbOOcY3EgtIxdJY3R0=","translations":{"en":{"changelog":"### Changed\n- Allow Nextcloud administrator accounts to receive Seats directly through the regular Seat assignment interface, without prior activation through an occ command. Administrators now appear in user searches, group filters, and bulk assignment; they still need an explicitly assigned active Seat and valid access to use Seat functions\n- Remove the former admin-seat assignment command and exclusion notices; existing assignments and capacity limits remain unchanged\n- Require a minimum share lifetime of one day; legacy zero-day policies now resolve to one day for new shares without changing existing Nextcloud shares\n- Limit enabled attachment thresholds to 1–10240 MB while preserving disabled automation and the existing 5 MB behavior for legacy zero values\n- Clarify that active Community and Pro Seats provide the same functions, and simplify the external VFS policy help across all 15 supported languages\n\n### Fixed\n- Show a yellow warning with active and paused Seat counts in the General overview when capacity is exceeded, including Community mode; active Seats remain usable while the license is valid\n- Keep policies available to active assigned Seats when the overall Seat capacity is exceeded; only personally paused Seats lose access\n- Require group-override permission for priority-only changes while retaining the existing permissions for individual policy and template fields\n- Keep the derived Talk output format out of the boolean policy editability map\n- Offer a valid starting value when re-enabling the attachment threshold without silently enabling automation"}},"signatureDigest":"sha512"},{"version":"1.4.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.1/ncc_backend_4mc-1.4.1.tar.gz","created":"2026-09-17T03:50:23.778329Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T03:50:23.853471Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=36","signature":"f+WVEvoITLqIEmm1OY3iMHZLpmrCvVCdSTYAKhptMoZSHk0baWLKkzdPcsvJTswOuvQL5YFBopLwZBYtaDW1b+98/bRlWtghwaFkK6BYt42Puo3q0CMsOVOxgl4MczVl942wBkH1A2PWcII0qmspHW6om3YwSsYqfWvZsteQ/g7jxfGVqQwcRgUDkg1lhms2zKE8zg5nIIt1AhguYPQp1YKJoNy0kBlsg0yYUOJpSdZi7QaCl0jPCx16VNAAsuDmu27qVM0H6wPEPau6H2mA1Xdl5AWx5i8UoA/VCvCV1kEQzgWMbTrXcG97vubXJnnV0zrEMcanAbYby3QXMsCEs2CNvee0K45uc6/nae7Nhv5wCHzlnDIFxsoNtbfQlZcGUetAP3FTvhTzA91mN3l9VcK88KeLiMHf8nckaUS7KmVR2IlkytWHBCiwUvuyzIqHQJ+Az4XLBMtWkiHwHYNK0HsZMqmuvP6OlbkgxAZQPhxbZFOm5CrAeYPT7AqQMs0gugXF4UF2oJtKToz2FbUu/CzG/ZgNCIr5PcaPewHJL0e8LqPCwm02SKjRqqf5BniKAxK3cndvhu+tZks+D4wMipBLSiTfCwlb2Q7jg1JNatKYgounZabmTsHwu2hPsmwocR+NwHgiGUj+PxZTR+rIlDt56EfcUlk3wKqmZyRpe3g=","translations":{"en":{"changelog":"### Changed\n- Raise the declared Nextcloud maximum version to 36\n- Improve license synchronization, activation status reporting, and offline handling while retaining compatibility with existing mail add-ons\n- Improve the license status overview with separate rows for validity, seat capacity, assignments, synchronization, and activation\n- Show clear warnings for grace periods, unavailable Pro access, activation issues, and synchronization failures, with blocking errors displayed first\n- Update license-related messages and translations across all 15 supported languages\n\n### Fixed\n- Prevent overlapping license labels and keep activation tooltips accessible by mouse and keyboard without horizontal scrolling\n- Distinguish temporary synchronization failures from license refusals and show whether Pro features remain available"}},"signatureDigest":"sha512"},{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.4.0/ncc_backend_4mc-1.4.0.tar.gz","created":"2026-09-11T03:00:58.105802Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-11T03:00:58.197131Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"QztHeNoRwJp9poknFTfHLpuKEvy6SzdpUJOrK5kVIpTvoWViGt5HaF/5pH0K/VrvTmDiM4Ty/BiApRm4ol87avGl4+1eamEkg51xce2Z7MhWBs5PozREPQzEGYwBO+vps+/KYdI29uecUD0kgoe0y0SFb93bCN91NnuFhdFHNHr3j+q95dJxpBgWkK8GeM2xVewGP1VoKhrUONwZSQxlozqGbD+mnnyvN6A/G3zAxEVCYx77RGCLI53qO7odeNo9xGV1qjUCRsaVtD321Zk5MaVdvo4O6g2AKcpThdc2T+y7LYNUVNt+hASwLgLgEOcH3zHbrkIwuKNvqUdhDC6zePyVMwsMasXGvYAgbly65M2DVBVtnFlJ6J3oSbwghX7h2iSwRqpc7xWclKWatEsO8DxdvzNTwYEdDDMeduSkMVy/VCiFcroWoZnwWuV+XTUV/G/MvZoWid+M+Nr9jWJimau3pt2PdOm65fAA0sBcX2Wqa/+uRQJ8hj531nF1AT+uP/w6fgBY8GBsvhJOuqgPWPYM9OxD+gQpek0E1WFXO+6+lXGF3r4HPnGAhDpg0GxO2mzAr8uoSBGGEgosqzs/A+wmEvjtForsUcX5wJd5BHv7KnHPYoS3Ek2ZGPiFwFzzw2u49n9K0it/Yp6DvI4hKz+nuZmcGzTcQmksjfJlfb4=","translations":{"en":{"changelog":"### Added\n- Add centrally managed, Thunderbird-only VFS Share policies for exposing the configured Nextcloud account to compatible add-ons and allowing Thunderbird to add files from external VFS providers. Both settings support defaults, group and user overrides, and add-on editability\n- Allow full Nextcloud administrators to remove retained seat assignments for users that no longer exist in Nextcloud\n\n### Changed\n- Enable the NC Connector VFS provider by default; external providers remain disabled by default and require Pro with an active assigned seat\n- Align the built-in Share and separate-password email templates across clients with transparent branding, Outlook-compatible tables, non-wrapping labels and dates, selectable password text, and consistent permission placement; stored customer templates remain unchanged\n- Preserve approved `nobr` elements and `nowrap` attributes in browser-side and server-side mail-template sanitization\n- Update the bundled DOMPurify template sanitizer to 3.4.13\n- Update the App Store description for delegated administration, custom-branded templates, licensing, diagnostics, and Thunderbird VFS policies\n\n### Fixed\n- Fetch each external template image only once per editor request and restrict preview processing to the requested template, avoiding duplicate downloads\n- Load all Nextcloud groups in the administration interface instead of stopping after the first 200\n- Tie cached license entitlement to the verified credential pair: changed credentials clear the previous entitlement until synchronization succeeds, equivalent credentials preserve offline and grace behavior, and server rejection states take precedence over expiry data\n- Validate complete default, group, and user policy payloads before writing and persist each update transactionally, preventing partial saves after validation or storage failures\n- Keep a group's priority synchronized across all existing Share, Talk, and email-signature overrides, including priority changes made by delegated area administrators\n- Include effective email-signature policies in assigned-seat CSV reports alongside Share and Talk policies while continuing to represent custom template HTML as `Custom`"}},"signatureDigest":"sha512"},{"version":"1.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.3.0/ncc_backend_4mc-1.3.0.tar.gz","created":"2026-07-24T05:27:38.606026Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-24T05:27:38.691176Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"WvEJ5x/s+meF7MOzUELroxy0jFX1jRuSR9+D3xVuNfSOcu3SNUKANdP/uX39J1neBDWVqM7KcsmZx0SaAvURur2V4WgtRZNe+W3IrbY+PQH6MTtw5HyhS+rbDC/FCcWqZz8ydXhFZ4l4aJRHnhijIh3NZHJ196ihYrMteODbgBg0xFr06+lXd1CHB4tgZ8vUMpR5OCw5KOVYW0Fsup1jj5VvF4aJIV+jyVEZ4bUNEKIfVz/yYmFmna4HYZDLc8vGMKLOpjKHsiniLo1fN3tSEZ1TzQwug4kZefh0XOD2W3U0+gcOl+moOd4IWzdXsuXYdJkQxL3u4OeCBXNc6l0CgUl8pmI8aeyEKTh2EMpOW+2rFcRFQxuMWRdtgZqUSZGDj1crEIF/In75TyFJeTUfEVPm2jUx5edlKZRSnxL/QV77aL7BCjJROaYS2TF/neu156ZbzYR0z/y9cyNSDxRjDdgq7FNfjKxuJJHY1bc7KWQ863W3nngElMm7h8ZpQzNTfi8HQtEHGldXEgQuBJvIkXq5EvEGIjsWvTHauwVrzETbDuvwMryvi4ofY1dxkU1nPzPmXfGJP+hiKLmXyJOLzbNgDXSVOXa00TGlhctEWbYAaGAO4VhD77YlEObrT08NwmHomLuHNhPwYgO0ZPq2TUo2V2gsFLfV9pSlryE6Bhs=","translations":{"en":{"changelog":"### Added\n- Add an `Attachment link target` policy for attachment mode, with `ZIP download` as the default and `Nextcloud share page` as the alternative; manual shares keep the standard share page\n\n### Changed\n- Update the bundled DOMPurify template sanitizer to 3.4.12\n\n### Fixed\n- Keep reply, forward, and rendered signature values available to mail clients when composing signatures are disabled but remain editable in the add-on\n\n### Removed\n- Remove the obsolete `Generate password for meetings` setting; `Set password` remains the single Talk password control"}},"signatureDigest":"sha512"},{"version":"1.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.2.2/ncc_backend_4mc-1.2.2.tar.gz","created":"2026-07-17T03:40:53.835537Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-17T03:40:53.888283Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"OaGoEZ1uneFGsN7guQIrn8+YTGnOIyIFU8NOtF2gYqNHESi+b6jjJOiXAWGc8BmLv39O0/tGnjn4ZADLkvlhrDwvz/7n6MJ0xL2LUUx8agw5pYWp+FRAyE3LXDqoIAiyxZQ1q7al+5ovftqilbMZPnsUtmn72pIGn60+h4iOFJXicVMyT3Dd7oa7nnpscSQcKSc+xYC7Lv/Vg4s/xnY/8oBIq8A32jLwXYTzgKDvU2TgMviFL2FiMWXxu9bladzC1LzarMY1mz7SVym5m4zt+4iT0BkaQzjlq0Vmme23JnY2NW2klgV/R/4/MAgOg2L2CUnwxVhiifPRkPo14+ury3WBRXNu/nu5kbTvRiD47eleaZWrl/6k4lIERJ9h0+RNHtljrJIwkxEuixE8+JdJD+K6XBOB8YcspXPhfcGDCUj/KYnE0CA+/E7MGSrU0YP6dOdGFoGIRqWSsoVDbTvFTHUCSS7EhdO5woCpgysLNZspGbJRWHEUJXU8MNlc+8vnxh0+IB8gbBwmIOtzN0vKQ+pnyr4mkwjTOV7HTEDOUR7GQc0i3npbhc/hkDv/2zitPj1DVeNLDBt/DOr5HXlWED8n1H/Go80VuXa5sm0zaIAHO2yNVtV/jSWmjug7kh64JmHknD19IxYEK+j94sADTFPCLUV47DEjGiSjJLa19/g=","translations":{"en":{"changelog":"### Added\n- Add mode-aware Share template variables so mail clients can distinguish regular share pages from attachment ZIP downloads\n- Add public roadmap links and structured GitHub issue forms with support log guidance\n\n### Changed\n- Expose the effective Share template language so clients can localize generated labels, permission names, and password notices consistently\n- Keep the existing Share template response compatible with older clients while current clients can use the versioned template output\n- Keep legacy Share templates in the language selected in the template editor\n- Update the built-in email signature template without changing stored customer templates"}},"signatureDigest":"sha512"},{"version":"1.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.3.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nc-connector/Server_Backend/releases/download/v1.2.1/ncc_backend_4mc-1.2.1.tar.gz","created":"2026-07-06T05:50:43.413467Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-07-06T05:50:43.506235Z","isNightly":false,"rawPhpVersionSpec":">=8.3","rawPlatformVersionSpec":">=32 <=35","signature":"sIIDr58RJvwo1KqoF7kky0wcyidlN05mhSK9GRkbWOFcj/Xl/NhI25+S7SBinPTWkvocXHPMHJTm0D5/rG6TYBvuaxJo1DqumBcptdHahMVTmPd3vvfTs2eDFpUD00OdiCR/JPJ5HfaThqJ65DzyUIDC3Y6RKcCRuxjpLAtcJ6aodJa2+aZaWXQdMA00vuf2g1lY8l6Ei/9EAtRAWbQWChF8RiE0AzKFHBzKrALWBDzt39RJQ7YjKIfTrDXMlKQnl+goAGcoS8SBYigfLQCeKeATp0tvRy5u2HGd2tupX4Selge3d9aHQtBnWzhQwZqYnPiy0MzrSCc1aAOKFyAEMul3yG6r07JZ7h5uS4I/bplshp1a+1qNIP2gdOdu7Zm8beKG6CyEa4K7O0huTmWMaOOQvQMOjmEhfcZN489ZCkPYowop7fPjrPAvFaxXIJMmEzVsfhca3r7rMOZ+YhAgkeHES2CjuUhebioUze43SoMgaLWHyrlE30SPWrsoZVo+MvX+e4UVenX7Q/56Do/J/zBO2bLC26ivGjZVsJXW2nVGQ2Jc+AbhJ8YHl0f4FbSYM5LLYyDizvDhbwQujo9yDxTK6+2kc7rjKk5u+DFFyNV3CAYR2gltSeui7hkmMnLbp0AW/Ku5mBgcRStOthGd8aEQK1v1mzvE7KloglCX51g=","translations":{"en":{"changelog":"### Added\n- Add NC Connector admin delegation with separate permissions for policies, templates, group overrides, and user overrides\n- Add a delegation overview for audits and support\n- Add automated backend checks for static rules, schema mapping, translations, JavaScript syntax, and service/controller behavior\n\n### Changed\n- Update the supported platform target to Nextcloud 32 through 35 and PHP 8.3 or newer\n- Sanitize backend template HTML before storage and before stored templates are returned\n- Tighten template preview image handling with HTTPS-only fetching, private-network blocking, size limits, content checks, and clearer admin warnings\n- Update bundled DOMPurify to 3.4.11\n- Split the admin UI code by maintained UI areas while keeping settings behavior unchanged"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci8uZ2l0aHViLzViZDg4NTc5MGQ1MTA3ZTdiZGRhMDNjZWRiOTIwODA1YzkzZDY2YjgvcHJvZmlsZS9oZWFkZXItc29saWQtYmx1ZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci9TZXJ2ZXJfQmFja2VuZC9lNTBkNTJhOWZhMTZmMjNjYzgyMTE4YmY0OTljNzQ2NTEwMDU3YzEzL3NjcmVlbnNob3RzL2FwcHNldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci9TZXJ2ZXJfQmFja2VuZC9lNTBkNTJhOWZhMTZmMjNjYzgyMTE4YmY0OTljNzQ2NTEwMDU3YzEzL3NjcmVlbnNob3RzL1VzZXJPdmVycmlkZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci9TZXJ2ZXJfQmFja2VuZC9lNTBkNTJhOWZhMTZmMjNjYzgyMTE4YmY0OTljNzQ2NTEwMDU3YzEzL3NjcmVlbnNob3RzL0FkbWluRGVsZWdhdGlvbi5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci9TZXJ2ZXJfQmFja2VuZC9lNTBkNTJhOWZhMTZmMjNjYzgyMTE4YmY0OTljNzQ2NTEwMDU3YzEzL3NjcmVlbnNob3RzL1RlbXBsYXRlRWRpdG9yLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci9TZXJ2ZXJfQmFja2VuZC9lNTBkNTJhOWZhMTZmMjNjYzgyMTE4YmY0OTljNzQ2NTEwMDU3YzEzL3NjcmVlbnNob3RzL2VtYWlsX3NpZy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci8uZ2l0aHViLzViZDg4NTc5MGQ1MTA3ZTdiZGRhMDNjZWRiOTIwODA1YzkzZDY2YjgvcHJvZmlsZS9tZWRpYS9naWYvbmMtY29ubmVjdG9yX3NpZ25hdHVyX2VuXzEyMDB4OTAwLmdpZg==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci8uZ2l0aHViLzViZDg4NTc5MGQ1MTA3ZTdiZGRhMDNjZWRiOTIwODA1YzkzZDY2YjgvcHJvZmlsZS9tZWRpYS9naWYvbmMtY29ubmVjdG9yX2ZpbGVsaW5rX2VuXzEyMDB4OTAwLmdpZg==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25jLWNvbm5lY3Rvci8uZ2l0aHViLzViZDg4NTc5MGQ1MTA3ZTdiZGRhMDNjZWRiOTIwODA1YzkzZDY2YjgvcHJvZmlsZS9tZWRpYS9naWYvbmMtY29ubmVjdG9yX3RhbGtfZW5fMTIwMHg5MDAuZ2lm","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"NC Connector for mail integration","summary":"Central policies, signatures and delegated administration for Thunderbird and Outlook Classic.","description":"# NC Connector Backend\n\nShared settings, consistent signatures and clear responsibilities: manage NC Connector for Thunderbird and Outlook Classic centrally in your Nextcloud.\n\n## Shared defaults, tailored exceptions\n\nDecide which settings are mandatory and which users may change in the add-on. Set central defaults for sharing permissions, password protection and expiry dates, for example.\n\nUse **group and user overrides** to accommodate different needs: sales can have different sharing text and expiry periods from internal administration. Individual users can receive different settings or personalized signature details when needed.\n\n## Delegate tasks, keep control\n\nNot every change to a signature or sharing text needs to go through the Nextcloud administrator.\n\nWith **admin delegation**, give selected people access to exactly the areas they need. For example, someone in marketing or communications can maintain email-signature branding and revise the wording of sharing templates without permission to change sharing or Talk policies.\n\nAssign permissions separately for sharing, Talk and email signatures, covering policies, templates, group overrides and user overrides in each area. Delegated users work in their personal Nextcloud settings and do not need full Nextcloud administrator rights.\n\n## A consistent brand with personal signatures\n\nDesign central HTML templates for email signatures, sharing blocks, separate password emails and Talk invitations. Your own text, logos and design create consistent company branding.\n\nEmail signatures combine these templates with Nextcloud profile data and individual details, such as phone numbers or additional contact information. The mail add-ons automatically select the matching signature based on the sender address.\n\n## Simple rollout and central defaults\n\nPreconfigure the server address and sign-in method through the [Windows registry for Outlook](https://github.com/nc-connector/NC_Connector_for_Outlook/blob/main/docs/ADMIN.md#enterprise-rollout) or [enterprise policies for Thunderbird](https://github.com/nc-connector/NC_Connector_for_Thunderbird/blob/main/docs/ADMIN.md#enterprise-rollout). Users do not have to configure these details themselves.\n\nIn the backend, choose whether the add-ons use local or centrally supplied defaults. You can also let users choose the source themselves. Mandatory policies continue to apply regardless of that choice.\n\n## Additional functions\n\n- **Attachment automation:** Set size-based rules and decide when attachments are shared through Nextcloud.\n- **Talk meetings:** Set defaults for room type, password, lobby and adding invited users and guests.\n- **Separate password delivery:** Send sharing passwords in a separate email or through a time-limited Nextcloud Secrets link.\n- **File sources in Thunderbird:** Centrally control NC Connector's Nextcloud VFS provider and access to compatible external VFS providers.\n\n## Start for free and expand for teams\n\nCommunity mode includes one free Seat for one Nextcloud user account with all backend functions. [Pro licenses](https://nc-connector.de/preise-lizenzierung/) are available for teams starting at five Seats. The functions remain the same.\n\nSeats are assigned to Nextcloud users. Each user needs a valid assigned Seat to use central backend functions.\n\n## Requirements and data storage\n\nYou need NC Connector for Thunderbird or Outlook Classic. Nextcloud Talk is required for Talk meetings; the Nextcloud Secrets app is only required for password delivery through Secrets links.\n\nThe backend does not store email messages or attachments. Centrally configured templates, settings and individual signature details are stored in your Nextcloud.\n\n## Mail add-ons\n\n- [NC Connector for Thunderbird](https://addons.thunderbird.net/thunderbird/addon/nc4tb/)\n- [NC Connector for Outlook Classic](https://github.com/nc-connector/NC_Connector_for_Outlook/releases/latest)\n\n## More information\n\n- [Homepage](https://nc-connector.de)\n- [Contact](https://nc-connector.de/kontakt/)\n- [Support form](https://nc-connector.de/support/)"},"de":{"name":"NC Connector for mail integration","summary":"Zentrale Richtlinien, Signaturen und delegierte Administration für Thunderbird und Outlook Classic.","description":"# NC Connector Backend\n\nGemeinsame Einstellungen, einheitliche Signaturen und klar verteilte Zuständigkeiten: Verwalten Sie NC Connector für Thunderbird und Outlook Classic zentral in Ihrer Nextcloud.\n\n## Gemeinsame Vorgaben – passende Ausnahmen\n\nEntscheiden Sie, welche Einstellungen verbindlich sind und welche Benutzer im Add-on selbst ändern dürfen. Geben Sie beispielsweise Freigabeberechtigungen, Passwortschutz und Ablaufzeiten zentral vor.\n\nMit **Gruppen- und Benutzerüberschreibungen** berücksichtigen Sie unterschiedliche Anforderungen: Der Vertrieb kann andere Freigabetexte und Ablaufzeiten erhalten als die interne Verwaltung. Einzelne Benutzer bekommen bei Bedarf abweichende Einstellungen oder individuelle Signaturangaben.\n\n## Aufgaben delegieren, Kontrolle behalten\n\nNicht jede Änderung an einer Signatur oder einem Freigabetext muss beim Nextcloud-Administrator landen.\n\nÜber die **Admin-Delegation** geben Sie ausgewählten Personen Zugriff auf genau die benötigten Bereiche. Beispielsweise kann eine Person aus Marketing oder Kommunikation das Branding der E-Mail-Signaturen pflegen und die Texte der Freigabevorlagen überarbeiten, ohne Freigabe- oder Talk-Richtlinien ändern zu dürfen.\n\nVergeben Sie Berechtigungen getrennt für Freigaben, Talk und E-Mail-Signaturen – jeweils für Richtlinien, Vorlagen sowie Gruppen- und Benutzerüberschreibungen. Die beauftragten Personen arbeiten in ihren persönlichen Nextcloud-Einstellungen und benötigen keine vollständigen Nextcloud-Administratorrechte.\n\n## Einheitlicher Auftritt mit persönlichen Signaturen\n\nGestalten Sie zentrale HTML-Vorlagen für E-Mail-Signaturen, Freigabeblöcke, separate Passwort-Mails und Talk-Einladungen. Eigene Texte, Logos und Gestaltung sorgen für einen einheitlichen Unternehmensauftritt.\n\nE-Mail-Signaturen verbinden diese Vorlagen mit Nextcloud-Profildaten und individuellen Angaben, etwa Telefonnummern oder zusätzlichen Kontaktinformationen. Die Mail-Add-ons wählen die passende Signatur automatisch anhand der Absenderadresse.\n\n## Einfacher Rollout und zentrale Standardwerte\n\nBereiten Sie Serveradresse und Anmeldemethode über [Windows-Registry für Outlook](https://github.com/nc-connector/NC_Connector_for_Outlook/blob/main/docs/ADMIN.md#enterprise-rollout) oder [Unternehmensrichtlinien für Thunderbird](https://github.com/nc-connector/NC_Connector_for_Thunderbird/blob/main/docs/ADMIN.md#enterprise-rollout) vor. Benutzer müssen diese Angaben dadurch nicht selbst konfigurieren.\n\nIm Backend bestimmen Sie, ob die Add-ons lokale oder zentral vorgegebene Standardwerte verwenden. Auf Wunsch dürfen Benutzer die Quelle selbst auswählen. Verbindliche Richtlinien gelten unabhängig davon weiterhin.\n\n## Weitere Funktionen\n\n- **Anhangsautomatisierung:** Größenabhängige Vorgaben festlegen und entscheiden, wann Anhänge über Nextcloud geteilt werden.\n- **Talk-Meetings:** Raumtyp, Passwort, Lobby und das Hinzufügen eingeladener Benutzer und Gäste vorgeben.\n- **Separate Passwortzustellung:** Freigabepasswörter in einer eigenen E-Mail oder über einen zeitlich begrenzten Nextcloud-Secrets-Link übermitteln.\n- **Dateiquellen in Thunderbird:** Den Nextcloud-VFS-Anbieter von NC Connector und den Zugriff auf kompatible externe VFS-Anbieter zentral steuern.\n\n## Kostenlos starten, für Teams erweitern\n\nDer Community-Modus enthält einen kostenlosen Seat für ein Nextcloud-Benutzerkonto mit sämtlichen Backend-Funktionen. Für Teams sind [Pro-Lizenzen ab fünf Seats](https://nc-connector.de/preise-lizenzierung/) verfügbar. Der Funktionsumfang bleibt derselbe.\n\nSeats werden Nextcloud-Benutzern zugewiesen. Für zentrale Backend-Funktionen benötigt jeder Benutzer einen gültig zugeteilten Seat.\n\n## Voraussetzungen und Datenhaltung\n\nSie benötigen NC Connector für Thunderbird oder Outlook Classic. Nextcloud Talk wird für Talk-Meetings benötigt; die Nextcloud-Secrets-App nur für die Passwortzustellung über Secrets-Links.\n\nDas Backend speichert keine E-Mail-Nachrichten oder Anhänge. Zentral konfigurierte Vorlagen, Einstellungen und individuelle Signaturangaben werden in Ihrer Nextcloud gespeichert.\n\n## Passende Mail-Add-ons\n\n- [NC Connector für Thunderbird](https://addons.thunderbird.net/thunderbird/addon/nc4tb/)\n- [NC Connector für Outlook Classic](https://github.com/nc-connector/NC_Connector_for_Outlook/releases/latest)\n\n## Weitere Informationen\n\n- [Homepage](https://nc-connector.de)\n- [Kontakt](https://nc-connector.de/kontakt/)\n- [Supportformular](https://nc-connector.de/support/)"}},"isFeatured":false,"authors":[{"name":"NC Connector","mail":"info@nc-connector.de","homepage":"https://nc-connector.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECjCCAvICAhMoMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDAxMDY0NDM1WhcNMzYwNzA3MDY0NDM1WjAaMRgwFgYD\nVQQDDA9uY2NfYmFja2VuZF80bWMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQC2zDDZlYE2EI3TlszBAuLb4mfFWK8v4prttx9QTk6yIYNYpF6nC0X7WHiS\nZD4Nw08dILfkvyjphx13ha5steTnD5YLittoAV4KHTfRcFrz+mkH0K3I9O9dRnF5\nlXW6+ZIgS/SLQDhQaWHWr2lkfXmapwco/MEjNG9+kqvVckV/LVRcfsl4X6TJdl8G\noA9EddrI2eoU3MYG1WMfAKqUpfYzgk7kylogcKMxAj/WCsvmQoYrmP2JTXdEGSKw\nipRSW0TrgS+RiuIAZkKfXCjO0gu+FxrRIZ8ZXfp7Lpu+38x/3D3UrpKuks98oz8N\nkGdjcLe88poD0ic6AlnfgXOqqvh1rLKpxqxlsAIebF8tdnAyOOaNczGT03NQse1O\nR3yq6GhkG6+iyVy+hrdh8O/EjrL9mVTQMWfbLUgcnyIvJL6SZ/FH7BWR9MIVQg5J\nhe+6jZpQWRrXsApCI0HWbFIvt8e9Qsa+vssGdRB4mjLlKeaOO/Wcpx81qZ1JMz/a\nhBPtogmWvhxzH05+Ri28i7HP1hu8BUgxt++cJ2YD88zq7FwmJpqMCfLQWW9xraeh\ng0mshJffZrLrhDVMZJm9EBuyU8Z6cbYY4vfxH9TnQ3wJLOtpmNwdm3csSfaopmml\nZFPRtkwH5RAqPQrsGv+8pF5mW9bM3crH0brg6DXZ7WD8n0NNsQIDAQABMA0GCSqG\nSIb3DQEBCwUAA4IBAQBAhR5IDcKy27tU+Mg1nbDaT3RXSCI+U8CkTp+n80laNh0C\nS1LMKiWLUAXOjp/y36pjUXD+i/qhV+7Up8A7SN8yBoeFGWXKjgNp+5fAaSQ+zOqh\nunW3NbI30J22ESauu4sxGebnoiCLJ68Uc7suhjfIucuth/HZTmkthU8tPFRoIXXP\n0hP01JId1chLSby8Z9t0gLWA62W1+Cs6AFulvdpgcMlH8YCsGhMWfbj+nyjebQrp\nQLOZKOGPNAwH0K/U1zs4F+bYsXDbp5bljXWS7IYBfcQfKMAPaPCL+l8hDT9JsCA2\nLin0kyyhTl9h74No0JebqZhtmVmWR7S4O/lTx+rh\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"compact_calendar_widget","categories":["dashboard","office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/zomtec2311/compact_calendar_widget/issues","website":"https://github.com/zomtec2311/compact_calendar_widget","created":"2026-08-21T08:53:30.082540Z","lastModified":"2026-10-08T10:21:38.723210Z","releases":[{"version":"1.0.8","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.8/compact_calendar_widget_1.0.8.tar.gz","created":"2026-10-08T10:21:38.716981Z","licenses":["agpl"],"lastModified":"2026-10-08T10:21:38.765290Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"y04j9g+V2Ca7djOuDxdVxviqLW23ZQSDbys72AlWz36NyBY7be6eBwNkElow1B/GLA1l0qbnp67WhaYPOxUSJw+HFRU/SRlSFwhtq2VfUkAk5t3GMyPLGuCTz/i/2k2YNhlvuFMcLz92H8DHSuG9eQ/T8eaJqHAbMBToYLpiUuvXffrI43Xb+w6SIYR2WZSk64vDGiIHg+wyI41CMQvQSN0ZnQM6bXN50fLzu0kE6+7ftURJ+V3UYT5pUE4oRojvlvHT+5wAktF55VRKrPK2kZfGLwb6BJYmdpTeaYQE7WI1ew+uhBKMVYCCObRLbZIFr+/GW1jJgydFoMqo31ACx9kmMaaLSOADqoUhGD2o8SD6NQzq7zJHT9/4Z/EKdiVqi5v/wOxkZHGLCCPzVzAMP5REp2dVaPXAeR1e3ZRtyTxe2Hm+hxxpKoQ0Vx2IVxqnJkkgDnmG7t9CGSSXH1Mqdz2iExDBMvIouXIO2KNqvalZTFM475d6Cd6ZkvfRvL8afN6U36e3bi0vRIrpebkwijl9XnjzCxQAkPsbLEv61EF+b2/Ol9Y0MMaYqIILPNfpBcbL1rEt4SdcxSv88f+IdtuQXRUN+HnZ/3jb7YjE8EE1T9b71j/OWSsBtM4jHI30jy9f6F/HvRnpCvp9uNu7b1smsGPCBHZNayBFykhV3SA=","translations":{"en":{"changelog":"### Added\n- Visualization of appointments that go over more than 1 day. refers to feature request ([#6](https://github.com/zomtec2311/compact_calendar_widget/discussions/6)) @FrazzledTurtle\n\n### Changed\n- when clicking on a day, open the calendar app according to the view setting Feature request ([#11](https://github.com/zomtec2311/compact_calendar_widget/issues/11)) @itsbrody"}},"signatureDigest":"sha512"},{"version":"1.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.7/compact_calendar_widget_1.0.7.tar.gz","created":"2026-09-19T15:10:57.164152Z","licenses":["agpl"],"lastModified":"2026-09-19T15:10:57.244108Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"E2oKpOEsj9fZy1XEPYo29JOIg5eXdyJNQa/ys3ZFWQQVb0qckcfyTXzlMOfsgWOGvTAYeDdi1wg6l29ANBJ9AWoh+BoPVPGLnaG3l5TzzKYOcJrVTjUdE83yjpkO3i0iJkFTUmsSMZ1WFukqiWJ8rylCipVJ5IRWcDGvlFrHfRPsrOm/lcUW+IUqz8XVAfmN4aC7uTPleov5H07lXkLrnHEBMS84B+nOX2LkJ1OLUJdURf2fSc2NdyEM5DS2pcQHqAPgjp9JmPMHRvbJr9u+1+YEFR92n8ekEK3svldNlejeXyQaPWkthirvIxwUi2XS+t9IbsjRalku4RAT/ralmVs9tn9qOdYpUdwDj16UB2x5a9egC/eBr1N2WuQhtCjeCtsMMZLBaUr8Fy6HQcgVCDhbWH2ZFRBBnXp+CdES5vW8UrF4Fx05i9380x8OU+eG6+z5kwKsn8VJzvGwPHqFX0wV80/UtjabDoq1Nx5Im7HqSMKc/lLeRF35mEjts/sP3t4ijez+cvLcRhiDKg1hC7i9aRQTV220xLUnf5ooQ+sdkipY+oWS1/T8jdx47WWs5FRwHm54HTvz96f+ANOK/hnyXi2FaPOO5A7wgsmETIVbexg5JsYdR5rYrvnHMXS3byuKiYVmQwiMWUBvGbDxP1f3xCUSguFt/XuI0nzuL8g=","translations":{"en":{"changelog":"### Changed\n- position of the info button rearranged\n\n### Added\n- Multi-day support. If an appointment is over 2 or more days, it is now also displayed correctly in the widget and not only on the first day. Feature request ([#6](https://github.com/zomtec2311/compact_calendar_widget/discussions/6)) @FrazzledTurtle"}},"signatureDigest":"sha512"},{"version":"1.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.6/compact_calendar_widget_1.0.6.tar.gz","created":"2026-09-17T17:02:45.595226Z","licenses":["agpl"],"lastModified":"2026-09-17T17:02:45.848135Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"vgXK5MBB2sTWu1RNaWffevi49pkF9OMrcswKbjsIQojqm4FZInCywBlC42cHO6roaNqO1rUButMgrfgNPVd2THXRLcfAdDN7aeiUmMI6b9Ip2UAPbilPhyNmT6FD/M2dVSK2TGpzQQs+6Laxhv60fm+n1wBAAa2fRUeCIsrkgAYBYDI/xWEDNrJk69FOXSoiOCj+lE2fOwRrKDNIJgvNrNTKdStOLH1dmnullVGuNh65a+y1XC+C3JmkowEckCFf0seSlNBMroWwBe5QxDuT2XnUWcmYHojMNaSm/ag9Mtz3XjAPH2XZfmosax5URYGcgCP8aCOltCGh8D5EtfWb2HZHSdGilszKPJma4lsqYZK5rcFZil7JDCkXJs9f0kJU3vJtwxOHYz5iFzMFb65a4o4NKZi4K7Gjqb1r7Ku+7eIaUo0Ie66Wcb2ahzJATvwbD4JCeH25utOzVKwPY2QqUaN88pfgqovcQlsfF1ss+90r5GayZn6nDcBteZNStP56n9/D/dMQ/Mnoe76k0a7T1GKh5mRgDjI8WMCtlEJkGdYpJ4CWEj5cgmIiP6vXhrM9iWNba+jb3jIu9KVh730qH5XDrES+S20JG12ODv2/wKzh8n4uWCdoXAx5BmOvb804P1KhOx4Ju418mN3njM95/vOr4nwqv6yLdW8p06pZ9aA=","translations":{"en":{"changelog":"### Added\n- additional icon for information\n- l10n: new phrases in language files"}},"signatureDigest":"sha512"},{"version":"1.0.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.5/compact_calendar_widget_1.0.5.tar.gz","created":"2026-09-08T15:05:22.680112Z","licenses":["agpl"],"lastModified":"2026-09-08T15:05:22.739373Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"nXLZEO3AXmkVaH57tOQ2BVkb5OpexwTs82MNwDgMaPHZRuBAVXylQ+1sCQvY7fGhBu3RuqHPqvb5Ic0RGIVzPvBlTIoH1Yi7FZ3Q2l7bsG2EEjAhchNl6bhfIpu1uEHEVtoOTpJnu+WopVxkb1yRxlEB59cTmHbdbcvGl47+o2A8EfiHwK/mA/k+vXAw8gtbhDmQUj1vIVGuoeT5sYSU9uKKSpDMooll+8kvaARV+VUade/51aaqKH1tsFuVjYIVM2HVCBR8T3sZ/nPeg71Dv21syZUmfzGP4TgW31Dd4FLTNFa17EbxXDQd6U7HJVuwcR5XxBu7lfBu+UMOSa+qluB4CEcH4hu6so3P0Av5LNDtbF4Njq+pVswiZBk7AgD3n4WhAyA0RJkqm4i9/689Jd/TS+gPXdCz80p7Mz99FQA6YUvyhUp9U6v3tQbMMqYCm50gsXLslMBx/t0TKzzT+CzbcJ8DTrRKukdP+ihwN7jjfSZMgHQze3Ax/MBrjCc7BuU3kafY+qlrBMiPb4dd38vP0wqIlxOLvx89axroiUsBLc3q/VeqvMLhJcw+1lSKeG2x2RNpXR85iVZci0FDllzWnNVOZXxtXPzzTzwmXZ8PNzaD773CwV4Qhrg47u3aLW4FtWwyGhdQ7Ug6aujAA+WvVsV+IX7Oq0lqa5SHX3I=","translations":{"en":{"changelog":"### Changed\n- removed debug information from console log"}},"signatureDigest":"sha512"},{"version":"1.0.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.4/compact_calendar_widget_1.0.4.tar.gz","created":"2026-08-25T08:54:21.090712Z","licenses":["agpl"],"lastModified":"2026-08-25T08:54:21.152298Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"LPOPdK3XtwpnoBXOiazNLuKlWhA6AOwkrex9UZ7HkeWY89TAdGKGHU1nvexIRaUT9nOj+hx3d4RBQunBA5f0pnQwUYFvV1IheLGauv6P3dG/Y2YtNnEUBZdZMH2N4vaOUqoEaDn9NTjwipVXOTQy3G8geZqSWnnfMw/F6jlo26B0Jm7GzPTmz2QlUdIiSfUtpXZzIF2E1nr5OeYyv0RvhsUdTziWqyTVJT5Kulo7lsT0bHfqIWwub7MTOwUWlj66idJT8HVNbYKJ92lY65sTHEKJzO+2IKTPSdDpJ9pxAjrW4lPcohdCq57eGtCKmajkayjrQWgwNcAufYHMUwwwBPqsJK4a+f2tHacDOsc9migTk3bPlhzaheoGa5FYE5Cywc51XHhI3NQc/i4M+q27P5lWqdOCXIqkJTHTZpEL5G9I/nlbHX85gwSR42GfPAlmJI1OR7GfHh6UVFW+ostKRGeVGjvBpJxWH4I5ar8giq44FHyQaSXtJzyIAKa3KCYb8lVVi4fK50Qvva5BJO7S9N79Qsdf/+N/xLY7JfYwfcDfg/9eO7uTRkB6fX0RMmw76cl/tZ1J4RXMzd5hKZU+nzSjn3CIwGByCA2DzhF9/Xmf/Q7zHijxSfdlm+mA0bm+ko/6l1VQFOEhcjDCz16auq4bIYwsMhf7Fm7ZjHhKUdU=","translations":{"en":{"changelog":"### Added\n- l10n: new phrases in language files\n\n### Changed\n- using NcPopover instead of own css/js popups"}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.3/compact_calendar_widget_1.0.3.tar.gz","created":"2026-08-22T12:13:02.423542Z","licenses":["agpl"],"lastModified":"2026-08-22T12:13:02.501357Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"bGiGVMM4JuPaoPTYx7njKfrZsKGyQIIQzlQ2BStUCdhCQ5rtSZvHjpqn5bqi3J/S5faSGE/kMQFva/F6HA8wkvEmzEAR10sryEhbInnfpSHIUkfeCeKKRxfwWjXD3S73ftF1H+aBYfjqD+8XG9cHMPzL2nuNT9n5HZgF+E/FKKd3EZ74sMXtji3xLQIQNVQ4pn88j+WaHyyVJabL1K/JvRphH81A6N0nKTWA8fVwM6+aqM7baE16P6iQfZTCfskR769pyDCm5F1GtOhMSxd3tEfMi1mqEtDqOVOmGJRIuUMUiapuUqkia5V3fhHUrTkCNkf1Vvs5JE+fPXUnw5FRl7atMxoYzfptfljyJX9swbO/e2BuxuwLNKV8eie5Z0/nB7dC6m8lAwIcyst06pxR15FVh4JdeYt5yxKD8ZT6Np+IoJ07jag6OIEqc31OajlIGI4tHK8IdEyfPdsSgXK0Ia0hCMBtjixT6nThoeFvHLNCvsk1EGq6KOjKZ8jpIgsnSNf8RyDk9N/X8i1DSiRq4rL5qGvxDIqRBOOeohCk6lyq0ykI8JagKiDWaUkNe/adGHMvjNGFwP4xtePKAw8jTOIu4SwwJrN8jluzGu73HBoids8c7T0jQmO0DDlm+WsDYV78Du0ewOYFPhNwjkNgTKmN5alO9A978YsAA85wm7Y=","translations":{"en":{"changelog":"### Fixed\n- bug fixed selected calendars\n\n### Added\n- New feature: personal calendars with original color in the settings\n\n### Changed\n- switched from database queries to core libraries"}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.2/compact_calendar_widget_1.0.2.tar.gz","created":"2026-08-21T15:37:57.453914Z","licenses":["agpl"],"lastModified":"2026-08-21T15:37:57.544254Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"BxlCXmNOWFIeAhA4bVWWqyTfXuvMflD+j1V6McqtSjoM6oa05yuBJcH3SliNQmlnDZzvAN5QkZ3So0fj3KJ8VM4buoYrflYHPFF6uyCm6IHLHuMVHRUXlJRRAPxUIG69OO03NWf0JxMWMwtwkNXS+Do+nlNO1n8if8+8uqxHPHyjKm1SfARbFbXnPskrp0/1ggsMpEtce1Tus06c9Npy/6jYXXIU8oOKIM/nzO+ZL5aPPcfApNNhUIAfeohrzD+voodt/4itCzZDRu+jWSfFR7F2B4isIOKLRa4fKMY8uyRgNZtkCz7HjNGwF2y6Jk6H5vzsfphys2cPfhHP3di55VawwnHtAMpNjNbrpU/XIEO9cs+iu2jDpcoSizQDcZOj4MMy58TUQxW/GUyo14aCgFokCjcU6aa75sc+i4941we5SbZyZ/36v3VDw/0nmVe1CJKpNbPM617TiCC2NnPaNCVZqf0gGJyC3XRiesVzazjL2Eq/0lMk/PiziGTroEr110gWJzcLumHZFPvjcfCboQGHWLWHIoTS7SG0Hw9ZDn976/AOHr5CtML0bM8KbQp2LgWdzQOrwiZhGYcG2wOYeb+0nNQ7GtIZSbN/AsEPRIdF1ysfOwgZ4fzaoghPcOSEyOWptwoClJACyCpOfZojTBYudV3bZYlQqUlbraYJMgY=","translations":{"en":{"changelog":"### Added\n- New feature: personal calendars can be selected in the settings\n- l10n: new phrases in language files"}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.1/compact_calendar_widget_1.0.1.tar.gz","created":"2026-08-21T12:00:01.429665Z","licenses":["agpl"],"lastModified":"2026-08-21T12:00:01.496036Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"bfuyNhZqrRu3q27Fbz+B0r8BELVnlR2UTpgnYegB813vGATUfOSqeNz9AuB7qK04bjew6oXieot9Ful/iASZ7NvswXaJy23ouspB4uKacay+J3ISGM5mZdzL4WE/ztg73oSzhkcyXrWOunyKb9u9mHM4ZtqtRCj/WPbzL2/vPwFL3Hi71K9JijoAzHvazBfeDl92ki5RUUaZsqPq09bEx6NEdPpYG9XMJCaw6E/DTYnPykgofLZvVCPN18Nvki6hn5NFJS3nku5OwyO4iZOOoRqfGjdagwrSWiBlQYR7KRk1xn9Jo98D+Apo/iZ85CZ96id4BslrOWcmyKC73NdjLvMaoOy7XYfHuK5ZWSDFP/W+syhrsGIj5WhEL1IIgxe2HE2Xi7V5E4ItcgCnr0juAiWibXBx97NmqzpCdQeWaQQKj+ajhXh4v3ahEBwcMTn/kd12xQX0HgRsnTPczIsv59cZxFKJFrz8GhgO9/3henzCZ0JqNP2Tfea1cIV//I9i2NluHEwciiSh6Z1TbA6xwh/jhiyTkzTg82lNKDHSMFeugfKlwoh/kr2d7Od5Q+BBjkPCgTjFQlT0eD+Bo4onFA4sjmDKP1vzuSn/pZVYZY1eBXh1F6Itnd8sPVBKgxdJb1sADcp8h/eGh+UuZ5lpOsjGxCo12sF1wInupp45Nco=","translations":{"en":{"changelog":"### Fixed\n- Not all appointments were displayed"}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/zomtec2311/compact_calendar_widget/releases/download/1.0.0/compact_calendar_widget_1.0.0.tar.gz","created":"2026-08-21T09:23:12.533008Z","licenses":["agpl"],"lastModified":"2026-08-21T09:23:12.602694Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"Ye9WDv83LfXVryzEldjvNYzEZba8pX005UwBDW2SDQbVyHlLGQDHkMS21V9RmQLe\ntQgarpCv3hDe/7BhaPbKy71RbTP6gsrLJGD9ZbiWZSJ35UghOYl4lubglgjBWNFZ\nhlZdACo+5kbxIKwSShU0B8PPLq4TG2D5tcLHk60FNGmdAK1DUgxfQWRhlr7LP2qm\n/ovej9qYmXj3JvvmW91YqeDegAPQDBgtMjN8MjsCT0dQ9DToVI4vkeEJnj/zP5m0\nE1Rjv6nWnHjcNzzHFa8JHi05jJ0piLPpFHgT19oW1lJTItcp7cWHsfiFafxCVVgr\nqLPnGAvlTquR9O3qwRcLy0l4E2RKdikLza1EPO3tC7E1ggFhOuYA2kKlO350zLuQ\nGCsGJhxNAiuqulP/zG/0lmOS01zantXSA4fJVyVObIHUFow6SFyDgMZ/G4cSEGif\nl7toH3fddZxnBrgX6gKG8/lcoxttWN4m8y4ny7junj8CyjTpm0/31xnX0uU52C/Q\nGoWEt34kb2wjuxVOUBvYlkWJrq8QabtD/7oECeKVvpPR8Oh2VMoy651oSkqSr8y6\n37BeolSWLdZkVBYMUx5dPYudZuESiKKffq74BOHBBBu4YOwaOtvyNZ2caW3hX+gg\nVTbU1m8oCaB1zekjy5hdY2lefrsetXqaks17x3VIZxI=","translations":{"en":{"changelog":"### Release"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL3dlZWtseS1zdGFuZGFyZC13aXRob3V0LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/zomtec2311/compact_calendar_widget/refs/heads/main/yearly-standard-with.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL21vbnRobHktc3RhbmRhcmQtd2l0aG91dC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL3llYXJseS1zdGFuZGFyZC13aXRob3V0LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL3llYXJseS1zdGFuZGFyZC13aXRoLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL3llYXJseS1jb2xvcmZ1bC13aXRoLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL2hvdmVyLWFwcG9pbnRtZW50cy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3pvbXRlYzIzMTEvY29tcGFjdF9jYWxlbmRhcl93aWRnZXQvcmVmcy9oZWFkcy9tYWluL3NldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Compact Calendar Widget","summary":"Compact Calendar Dashboard Widget","description":"**Compact Calendar Widget for Dashboard**\n\nA modern and compact calendar widget for your Nextcloud Dashboard that gives you a quick overview of your upcoming appointments.\n\n- 📅 **Week, Month & Year View:** Switch seamlessly between a weekly bar, monthly grid, and full-year overview.\n- 🎨 **Custom Color Schemes:** Choose between a sleek standard theme and a colorful heat map style.\n- 🚦 **Event Heatmap:** Visual indicators show you at a glance how busy your days are based on appointment count.\n- 💬 **Interactive Popovers:** Hover over any day to instantly view detailed event info, times, and locations.\n- 📱 **Mobile Friendly:** Optimized touch interaction for mobile devices.\n- ⚙️ **Configurable Settings:** Easily customize views, default themes, and counters directly from the widget. Personal calendars are selectable.\n\n> ℹ️ **Note:** This widget works best when used alongside the official **Nextcloud Calendar** app to unlock its full potential and display all your events smoothly."},"de":{"name":"Compact Calendar Widget","summary":"Compact Calendar Dashboard Widget","description":"**Kompaktes Kalender-Widget für das Dashboard**\n\nEin modernes und kompaktes Kalender-Widget für Ihr Nextcloud-Dashboard, das Ihnen einen schnellen Überblick über Ihre bevorstehenden Termine gibt.\n\n- 📅 **Wochen-, Monats- und Jahresansicht:** Wechseln Sie nahtlos zwischen einer Wochenleiste, einem monatlichen Raster und einem Jahresüberblick.\n- 🎨 **Benutzerdefinierte Farbdesign:** Wähle zwischen einem schlanken Standard-Theme und einem farbenfrohen Heatmap-Stil.\n- 🚦 **Event Heatmap:** Visuelle Indikatoren zeigen Ihnen auf einen Blick an, wie verplant Ihre Tage sind, basierend auf der Anzahl der Termine.\n- 💬 **Interaktive Popovers:** Mit der Maus über jeden Tag fahren, um sofort detaillierte Veranstaltungsinformationen, Zeiten und Orte anzuzeigen.\n- 📱 **Mobilfreundlich:** Optimierte Touch-Interaktion für mobile Geräte.\n- ⚙️ **Konfigurierbare Einstellungen:** Einfach Ansichten, Standarddesigns und Zähler direkt aus dem Widget anpassen. Persönliche Kalender sind auswählbar.\n\n> ℹ️ **Hinweis:** Dieses Widget funktioniert am besten, wenn es zusammen mit der offiziellen **Nextcloud Kalender**-App verwendet wird, um sein volles Potenzial freizuschalten und alle Ihre Veranstaltungen reibungslos anzuzeigen."}},"isFeatured":false,"authors":[{"name":"Wolfgang Tödt","mail":"wtoedt@gmail.com","homepage":"https://github.com/zomtec2311/logcleaner"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEEjCCAvoCAhPbMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwODIxMDc1NjI4WhcNMzYxMTI2MDc1NjI4WjAiMSAwHgYD\nVQQDDBdjb21wYWN0X2NhbGVuZGFyX3dpZGdldDCCAiIwDQYJKoZIhvcNAQEBBQAD\nggIPADCCAgoCggIBAOHIAa49KcFzdQuX+Y+OwkqDKJs2kvuSCDZyKQtnrZWsH+uP\npPKfC28+3f6HcZL9xoeLpPUkUof3C37STFZvoXqMZDKDDYwraZVH6y3slaAvMTZI\nlqXs3uxvZ+3JmweKniUYEpAtCBJmT6yu2KK8riNanU7FghSrs+y15/Zh9dxYgSos\nHZl3G0UykprBxaV4xd3lsuUUhTyQTEy8ubpXSR8+Nb0/2OA6/j+veCap4H1ANzqA\nGnj2vHejridDQGfNZSBl4URR1+17RedzAz6nO5vUkOOstKCvhJhl665T6QIn6XwG\n5WI6vKc0edCQFDLMdb3Ugne2Jn9fVZ9tZmqwSLfxYwGdd6SL30JgOPukT0FcMCwQ\nzm+Q2RiHcwiU7jsHz79IEKrLCRntoOQ06SoSiCFghmbyZzYvF3M2VsBlrO0Qw+Wk\nzvmiZFidgSj8uMcW5HvQfv1DGi0R08AiuhFwCX25OVJt1prIl9E2FWxblkeqDCjH\nn2GLagqNed6TasxklOw5nZFJeHdf8tbbGCQCRlmvcXrlC8XqalUkTL9j4ZLXEIB4\ne/1zqSbm1gvYAgat9u51GRZXTHmd3U0yQVuyQ3qxCuN04fGPtbm4hkTOMf8H1hPp\nuB+hz++3+qdNzOdWLAZZ42zRv5R4AiC4i97a1Fbj6E3pQQXsxAIJlww9JLr5AgMB\nAAEwDQYJKoZIhvcNAQELBQADggEBAEtFpQJGSIEpmk9ygKt8VEEJzT018QYk0UzW\nDPCXsHuOvnQEcRagSCYYklQO7qGTto8VfRBZVigoLlY8r+CaKvd6s8mkrpaMF8ww\nBu+stIFPKP8FbSTnvdUiO1e9TIht7pg4R+xNT9DCBLI5MHRy3UcVI7FhreARktrl\nlSYo2ZOHyotpGGuoH4bcngQV9fkks9E1akXwUtNFxlF+X4p7V/vvyulFQ7Ron7tQ\nzooqcEQktpSmDq/7LtFthqtyVSC8ruXKp8EUq4JYqBLzE4Dwv468v1K1GP39j/Oc\nfpS40IqqnmM8A3DH7GU2m1pANF61/yYCMr5tALS+AwwCxiP+DAw=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"radfahrschule","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/JoergAlthoff/radfahrschule/issues","website":"","created":"2026-09-03T21:45:50.663431Z","lastModified":"2026-10-12T22:17:22.874741Z","releases":[{"version":"1.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/JoergAlthoff/radfahrschule/releases/download/v1.1.1/radfahrschule-1.1.1.tar.gz","created":"2026-10-12T22:17:22.871720Z","licenses":["agpl"],"lastModified":"2026-10-12T22:17:22.907166Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=99","signature":"wcxI1TgbcwSuO08Z2mGGFajJfoTFiL9zx0IzZEcWmNi9G40OT02mr90VkE5hn9nJxTAh271sgaF7boMTUaSX7FETIOT8eC3LarJv48hrmWoj9CcU9+O8XdGPVbOFcW+MJ0ixPWcgg1GrGDGtuNQo265E9dUenrqEvYWQ8AvAi1mw9TR+B+Ud+PIULdxeJ8okKVrg1IqMygn03q1/bVhwrhn9oMYmPV3wCitA3Hg0BOXH7a6+XKDdjSiHg92qMvolIvNWodnzBz9Vfp0KdaZKZpMSlfgtlUKOP3e1EmPD0mPVkJJeWEHtYvHzom5+EAQDz1J/FSAuwYGtpSRmf1Fatk/H/HV7c5xB0maE0fV3F9e0dzYADK5CdV90gfOaNz25DWUCGGzusJ0H5ZAtm128/oiPYywzcsUQ7MO25ndIf0eQFQtEEQJdSv37NwaHX4lJ3iCrQA8f0lR0NrAUXpmt1eLnNbq7+JCcZ81Oda4rQqHjXxaZrQrhaiyRk+Awzgf03mE3WG/69KLiyZhVaYgHm09kuEIFXFmPAUBNgU+DdUjoxXllG8asrwR5gAEVVotqkeyXgJLUHW7F3oYnAd3JM6twpMp59hkFuTVWwt8HPHF6CfJ4+TSND4UZuY1rDE+YoEMKMpYy1xeYkYKTo/YIPQXE9sXB+A06ncBQDWK87Wc=","translations":{"en":{"changelog":"### Behoben\n\n- **Ein Kurs, der vorbei ist, wird ohne Absage gelöscht.** Die Nachfrage vor\n  dem Löschen bot die Absage auch dann an, wenn der Kurs schon stattgefunden\n  hatte. Jetzt steht dort, dass ohne Absage gelöscht wird. Der letzte Kurstag\n  selbst zählt noch nicht als vorbei."}},"signatureDigest":"sha512"},{"version":"1.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <100.0.0","minIntSize":32,"download":"https://github.com/JoergAlthoff/radfahrschule/releases/download/v1.1.0/radfahrschule-1.1.0.tar.gz","created":"2026-10-10T13:49:50.678917Z","licenses":["agpl"],"lastModified":"2026-10-10T13:49:50.753008Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=99","signature":"z8lAyKFrEI3wfSf8gJBKsZCRjUSEWIL08HjuODnkzrQfoAR5mhplZ4T4pqzyN2HMW8af6iiiqJxHz9NvbReS70GZJO1ZDUjuPvB942NZdecYnYbmdkgJN4MrrI+SchDMZEjZ2IT+y2dOGeREKmg8AbaZCzFI9AY5POgB0JShTd/i1CGHk5Y6mz0He89QIEnDSbF/Dfzf1weL7rr58vs/kghebcWopxC3INR61IDVmbxhxBr+MT5DDv7gVxQmm1rDa55jagRB0W7aq0Q0aEAhBtE47RlNpsWZKe357Y7R0cFpn3jCf9MYinLAAK6HjBQ5aZ8YVR8o85P8tKW9p8ITwS/s0PtGWXsrlZ71ft/rDdhmfVP2OjG/4P9gsc7uS0ew5s2kdKWN8Odk7i3REukukcbVlBH+fD4ompAlKGGfZdWufdhBaBC0/i+4EIb4a0zYCEecFAccqZWeGH+vQZ/S2DFHrdFHW2G3OwvdTE3D+9bl8pIWIGXxMS++KVJpe+Q9eviDCqtzPrjysHtGj2q+JNX0mFos2OwMXFbECwa9i5oCkeVkDoqdDCLjv1olSrIfuaxZQJCWFbYq6pDd5euufKbdSTdI5ipmczVD2Bi67cSuKzMOgwp2iMOadOGWiRjJ3EHlmR6r1rf8cVjRKemlX1FhmZRK15mejKTwaGKc3GA=","translations":{"en":{"changelog":"### Hinzugefügt\n\n- **Nachrücken von der Warteliste.** Auf der Kursseite gibt es den Knopf\n  „Nachrücken lassen\". Er zeigt die Warteliste mit Name und Tag des\n  Eintrags. Wer angekreuzt wird, kommt in die Anmeldung und verschwindet\n  aus der Warteliste. Das geht bis zum Anmeldeschluss und nur, solange\n  Plätze frei sind. Sind mehr angekreuzt als Plätze frei, rückt niemand\n  nach, und die Seite bittet um eine neue Auswahl.\n\n### Geändert\n\n- **Die App ist ab Nextcloud 32 freigegeben, ohne enge Obergrenze.** Ein\n  Upgrade auf eine neuere Nextcloud schaltet sie nicht mehr wegen der\n  Versionsangabe ab.\n- Die README nennt Nextcloud ab 32.\n- **Die App liest für das Nachrücken ganze Abgaben.** Sie reicht sie an\n  das Anmeldeformular derselben Nextcloud weiter. Sie legt weiter keine\n  Teilnehmerdaten ab."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvZXJnQWx0aG9mZi9yYWRmYWhyc2NodWxlL21haW4vc2NyZWVuc2hvdHMvdWViZXJzaWNodC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvZXJnQWx0aG9mZi9yYWRmYWhyc2NodWxlL21haW4vc2NyZWVuc2hvdHMva3Vycy1hbmxlZ2VuLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0pvZXJnQWx0aG9mZi9yYWRmYWhyc2NodWxlL21haW4vc2NyZWVuc2hvdHMva29udHJvbGxlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Radfahrschule","summary":"Manage cycling school courses","description":"Creates the registration form and the\n\twaiting list of a course as a pair and shows the running courses with\n\ttheir registration counts. For each course it names the day by which the\n\tregistration data has to be deleted. Courses can be rescheduled and\n\tremoved again. Moves people from the waiting list into the registration\n\twhile places are free. Sends a message to the registered participants,\n\tone mail each. Made for a small club with a handful of courses per\n\tyear. Requires the Forms app."},"de":{"name":"Radfahrschule","summary":"Kurse einer Radfahrschule verwalten","description":"Legt Anmeldung und Warteliste eines\n\tKurses als Formularpaar an und zeigt die laufenden Kurse mit ihren\n\tZaehlerstaenden. Fuer jeden Kurs nennt sie den Tag, an dem die\n\tAnmeldedaten geloescht sein muessen. Kurse lassen sich verschieben und\n\twieder entfernen. Laesst Wartende nachruecken, solange Plaetze frei\n\tsind. Schickt den Eingetragenen eine Nachricht, jedem eine eigene Mail.\n\tGedacht fuer einen kleinen Verein mit wenigen Kursen im Jahr. Setzt die\n\tApp Formulare voraus."}},"isFeatured":false,"authors":[{"name":"Joerg Althoff","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhP2MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTAzMTE0MzI5WhcNMzYxMjA5MTE0MzI5WjAYMRYwFAYD\nVQQDDA1yYWRmYWhyc2NodWxlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEA0phsDZLlCNoUCHlzo53B1AtG0xCsO3yvcJq/wTHqCe8SiK9YWgL9H4zu9Ccv\n2MuYxwg5CXKXm6z+AV4hbGCVujhRG+SF0Hm/2xkhqKhTsQNuy3p6Tu7BDSolKj+l\ncuAUjTgw9oHVbImu1k2Khc7HZ9ZCSpDHggF7SoMCAxPSmCBEIhGYBtazzSX6Ak3y\nM6/EaGe5eEJl/J0sv4YbUu11BB1WBnzzRrGQ5yeVnafbcTQWCuQeWx4S8dpPGNJa\n81OAqks/V6OQtZHhqExyT8+HPoo9p/0lGs1w/tGl4+zD+wrXzlk01yPUqb8N4KoH\nj6qWhjuY3s5TQcOVHWCLuPb1F8QoBCS2nCviTdTlomtvHyHYc/Do5BpmrbBH1L1w\nV9jcAJndS9aDEwQNQoz1mhOUEj9XMI+3/rsaJ+Iha33NjIWnfLXYeRt34Q28tjbL\n+VFwChtm7r4z6v0JuoKYyrMAFHFwY24t5QVuIDIipzKc2jyI3lK0ZeNLWKA71zsq\n9EBnMcJsHaikbnJ0aFkGAbY/1eFXuf7tTMs0Fry+qLpIBIhFw0U4aeSg5YbdL5Ho\niiKwXu/E940BP9CW0SYKrZ7+VF4xCSTGTCO9W8oR/sdADijmkNfTUnoawXSL+C4R\n6inRvf4KWkdRSycm15eF6xF9s2qwgPxePTBZURGAndO38TECAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEAfaEOE0Hph5kxkXNaYNGKABpQ6zB046LN9BtlK3QuHtVC6lxe\nWxE4eKun0sBHKKhp2jYuuMITxqn3utMLS3a+KgIZsLaGHlApwwl9dB4kvvaRbzqd\nm8zJnmz0O/YZv48GoU1YoelDIUcmJYyRrE2MfceiLwv0BNJKVcxMrM+Bc7oRTcno\nNc6b+xlYoJb9JNGzlvfuJ9EgTEJX/3Zzwsp4HcR+4UidFLVHppDMfEz+Qa4y7+Bs\nskZtvyYiLmDUboZFJBKPTlk2aDlRj3Ur/ZHXxZ7XAqhOs4MjXNDzsV/4Q4xYOkXp\nYRtBItAl/h1vA9wyfubaUd+uWfhHlnDGQ13r4g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ktec_talkbot","categories":["integration","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/Talk-Bot/issues","website":"https://github.com/ktec-nc-apps/Talk-Bot","created":"2026-07-27T19:36:46.556947Z","lastModified":"2026-10-19T09:41:38.144150Z","releases":[{"version":"2.2.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.2.2/ktec_talkbot-2.2.2.tar.gz","created":"2026-10-19T09:41:38.138249Z","licenses":["agpl"],"lastModified":"2026-10-19T09:41:38.192856Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"MMgJPEMKFY8ly2yvWsNZtaNHPhqalWspDazBPwvOcEUcOHeEQkBqSfXP1mFNBCLLcNt7us0xPNH6BIJ7wkW0MeVNwx42B7efFIMHwgURvrZ4s9dTQGyAfH6UJWWgYDL+lO3oE2Pc63Ff49QaSe6HN6QdiKuqiPjWqp9J643yYP9PG3851jafxveAmWIEtz9lVMx43KvcMAxKDSWmA6iryZqJR0VlfbFJ5IwO2zwF6QUcCBMqmBtB2spMwTQHOCi70HErwiKOpdcTfESp6zyCgWPTuAc2iXoXe1SgwGMZaxRLv3B3t6Gzecpw+R/ZPyFVWddkvz9QcqS6AD3lM+ZSRvDMdsfp2ivTGbk7GKlgaG8RMJ8VfGYQS+0x5zlUcsBeCoAAx7+sW8PoiNU4m77RHI4FMvEqoN8W24hPo3cweh6KM4aNRZ6u3ypG/E2XarVZ2YIJTcS+bjqmP+m5d12kil7EnHl0kd0BG4SrZvdzTqZkrdenzx1CD4BJaXpnQUtM8H9wbZiUOnw6iGV+yX9/PyypzURNf4GmoypY2GRVfA8dyg5WC+HyoGIPJm2szN5kzPJs9xcBptr8wvtwm/0CmHFedLLxlweIfuPik7R9AGk8T4i4ui+gneXAqttXLjh0c6WLBFp6pigvBhcXFwFmfurOSXBanAZUa2c1a/K4PcA=","translations":{"en":{"changelog":"The bot's replies and settings in twenty-one languages, where until now there were English and Japanese only; and translations corrected after a review, among them the Japanese note shown when AI-Hub is installed but not yet set up. No feature was added or changed.\n（ボットの返事と設定画面を 21 の言語に対応させました。これまでは英語と日本語だけでした。あわせて翻訳の見直しを受けて訳を直しました。AI-Hub をインストールしたものの設定していないときに出る日本語の案内も、分かりやすくしました。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"2.2.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.2.1/ktec_talkbot-2.2.1.tar.gz","created":"2026-10-11T03:26:17.513024Z","licenses":["agpl"],"lastModified":"2026-10-11T03:26:17.560697Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"DShzBqYS38lB0s8GDfWN9F+Kb2cBpWwPVPJjQ/lR/NaXjNXtk0Za4/U43gbR9fyVX0LMFDUKMr2755UycAJ61bd/k20p6aCwlJy7bnYgcdsxTLfzWOaJb1zZTtPqJH1IvXklmxDqgs+/O1ArN2KUed5RfZH25fmoNjI/1zrNXFeQaBTG5Q1G793tGjgU9KqH2RYaHSgKXE1HEmsXHh7QYWydzeDaPLxo9zeMIwHmE1eDEKb8R14CjdfVOcC+ON+WkIhcDmwOnflBV5pKib7bbg5zklfU1PTZMbYQL6SpYHRMvxtLCYuUcc/8fRbEofTn1JrQLg+/Wnth8Vrgyn9EAxBqslkvrC7rlZtigBrP2SbAYAzg3IeqrLM9kTgbV3jZPurlhihyD6MLuFpleEnkLqEnsVXy92DytwCyx6O4I1e3wwb6eQ0LlILe8R9CTZiEMI5jDufcFFVu0N+8Z/X9gfyqOAzRU8/JywdPxp7oAsTMtPiTGiyg+7Fpklsxk5VR82IPqLgYSQtcGRYxUeXSthjogWEKHkmDq5KlSctcSYDZLEoE3UNbzwO8Sj3tpGgaxy0TBSev3RG8ie3Bl7n0rK62DwyFkfS2zMwUcVD7qFPfCpMvDdjNLtZy5lc4eqZI+9xLjfpztDOLNUT9K/JLtTLP6/uGEKcSJ04qyNt8iAM=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.2.0/ktec_talkbot-2.2.0.tar.gz","created":"2026-10-07T23:33:40.227954Z","licenses":["agpl"],"lastModified":"2026-10-07T23:33:40.293649Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"reRP7kmfNN9JJ0ueesVqX5kGlzTCvdcpztu29ySrNjIEQUtiOvXLIbhVXdgFB+SS7NdbZkyPh+3QXium0xtDLf9JaWQscb72nuR9HlgNUqWta04jILLzbkKWwRe0/5VF814g8D7JrfX5oM/dVRedKA+Wo5OVqH+bIiSSjnpeDRLIF3AcW7NH7GN7L1lxhcZfsrsFlx4pWGdlfBLO9oY0T6eAXs56wbO5enwlj4WOJqK8CXz0of4NLtgCTqZInEutEi09W2mCLwQY46+TwK/JVnexu39721VmEa1gNp3W40DYtx6D5jlMfX1+PgACgj1yynIxJPfZ1KrNomrDnYkLgCg1mb/SzxYhFC0jFReIu3Bire+dQUwUWkDDuSf+t1Wn3fpMwwayCwkQJr0QqoKDwHWWR183LvjLh14bQbJJauikjN7IpeyE8OFYFo/T0zAoNrAkRrakqwVPQsr7aN4peuVZTaUZkke5NpjJQHz5s/z3x44Er50Tgz/20HKJCHTzfCYusPH/ga7D2jDS8Fq+E7N7ygXhuAAfxcNaDgFWyxSNMl0appttX6S5Kldj8lz6QnFU6ocE3iSyf4CEWqtBKdNOUEAJPtLfdpNf2ipuGjqFHAtx+FNuScVTR0Y1UwClHiAWLEt3tlhk0ol8bd2dmPBQxVxNSUezYNEyX8Szo2I=","translations":{"en":{"changelog":"The AI connection engine has been split out of Talk-Bot into a Hub app of its own,\n**AI-Hub**, so that many apps can use AI from one place. From this version, Talk-Bot\nrequires AI-Hub.\n（AI 接続エンジンを Talk-Bot から切り離し、様々なアプリで AI を使えるようにする Hub アプリ\nとして **AI-Hub** を独立させた。本バージョンから Talk-Bot の利用には AI-Hub のインストールが\n必要。）\n\n### Changed\n\n- **The AI connection engine is now the separate app AI-Hub.** One place sets up AI\n  — the service, key, model and limits — for Talk-Bot and for the other apps of the\n  Base series together. Talk-Bot no longer talks to a model itself; it asks AI-Hub\n  for every answer.\n  （**AI 接続エンジンを独立アプリ AI-Hub に切り出した。** Talk-Bot だけでなく様々なアプリが、\n  1 か所の設定（サービス・キー・モデル・制限）で AI を使える。Talk-Bot は自分でモデルと\n  話さず、AI-Hub に答えを求める。）\n- **AI-Hub is now required.** Install it and set the AI service, key and model there.\n  Talk-Bot's own engine, key and model settings are gone. Until AI-Hub is installed\n  and set up, the bot replies with how to do it instead of answering.\n  （**本バージョンから AI-Hub が必要。** AI サービス・キー・モデルは AI-Hub で設定する。\n  Talk-Bot 側のエンジン・キー・モデルの設定は廃止。AI-Hub が入って設定されるまで、ボットは\n  その手順を返す。）\n\n### Removed\n\n- **Choosing the AI service, key and model, and the connection test, in Talk-Bot's\n  settings** — moved to AI-Hub.\n  （**AI サービス／キー／モデルの選択と接続テスト** は Talk-Bot の設定から外し、AI-Hub へ移した。）\n- **The administrator-tools tier** — the path that let an administrator run shell\n  tools from a chat message. An administrator who wants a chat assistant with shell\n  access uses NetBase's assistant instead.\n  （**管理者ツールの段** — チャットのメッセージからシェル操作を行える経路を廃止した。シェルを\n  使えるチャットアシスタントが必要な管理者は、代わりに NetBase のアシスタントを使う。）\n\n### Fixed\n\n- **The same message is answered once, even when it arrives twice at the same moment.** The check was made in two steps and could miss.\n  （**同じメッセージには一度だけ答える。** 同時に二度届いても。確認が 2 段階で、すり抜けることがあった。）\n- **When AI-Hub is busy, the bot says so** with a short \"please wait\" instead of a general \"something went wrong\".\n  （**AI-Hub が混んでいるときは、その旨を返す。** 一般的な「問題が起きました」ではなく。）\n- **The bot's description in Talk** no longer lists the old services.\n  （Talk に表示されるボットの説明から、古い AI サービス名を外した。）"}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.1.0/ktec_talkbot-2.1.0.tar.gz","created":"2026-09-28T22:42:14.962208Z","licenses":["agpl"],"lastModified":"2026-09-28T22:42:15.003667Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"myyHS3mtSIGbq8jcVwToJ1YhTvnvto6FVUhgmY/BXU+N4q0cAG1bt7msW/SCxiGTdyE1FI5H+6DaquEiRB5V76TxKI5rq3Tz/oBC7l6tiIi2AirowForLWZ6btd00bHqQ3UplPzZO2WAp/ZwhhUwkqrcn9f5wzQwz9NsgBdZ4KnqQC4YYfXpldzMopSPQSDX+oYX5hrv2b2ynQwM2J64hzaCrcjEdHuTqnFo6E7BiSvhyTUc51SoaSLFljGzKVYtOI4Czo2VIe9HYUt0MiSYG3qETQnGDC6FxD2osmz4OM0wVdKw+/eDr2mZld2d31ggltuiGGK1Q3IhIWEG/h+PvJV4jLEid0i3akKk+TwOuY/8fm2AnEhG49mma4JxmKRp3wV3lWumTzE0Jm3jYT5qDjNQcB4nCBkOnYNnwDSsqJ23g0xyB7IV7plQ+IcoYcHVJrEE7Yb/V8SeTZaRsU50+6UFF/zqiJbR55TgOJgnlwC4H90ns7mJlpQNmcq2CdixFTQ9S0QidGan4YZon0ri3qCt4UtQsjqf3QbdckdOJi+rMEMXyY9hdBTp7eSAQAId+MliFgMlODtX00EATSWGOHEqAhjKi4RsvygeE+mwgLAhCpBA9IZLSeq2w+s7N+VAuvCm1Q6riSqBbx8fPAGRqWAwZkpmSMwdFT5NhaYk0v4=","translations":{"en":{"changelog":"Switch the model and update Claude Code from the chat.\n（チャットからモデルの切り替えと Claude Code の更新ができるようになった。）\n\n### New\n\n- **`?model <name or number>` switches the model** (administrators only). Before switching, the\n  bot sends the model one short test message and switches only if an answer comes back; a name\n  Claude Code does not accept is refused with its reason, and the model stays as it was.\n  （**`?model <名前か番号>` でモデルを切り替える**（管理者のみ）。切り替える前に短い試しの一言を送り、\n  答えが返ったときだけ切り替える。Claude Code が受け付けない名前は理由を添えて断り、モデルはそのまま。）\n- **The short names `fable`, `opus`, `sonnet`, `haiku`** can be used; they always mean the newest\n  model of that kind, and the reply says which model actually answers.\n  （**短い名前 `fable`・`opus`・`sonnet`・`haiku`** が使える。それぞれの種類の最新モデルを指し、\n  実際に答えるモデルを返事に添える。）\n- **`?update` updates the Claude Code the bot uses** (administrators only). The bot says it is\n  checking, then posts the old and new version (or that it is up to date) and any models the new\n  version adds. Only one update runs at a time.\n  （**`?update` でボットの使う Claude Code を更新する**（管理者のみ）。「確かめています」と返し、\n  前後の版（または最新であること）と、新しく使えるモデルを投稿する。更新は同時に一つだけ。）\n\n### Fixed\n\n- **`?model` now lists the models the installed Claude Code knows**, read from Claude Code itself.\n  The list was written into the app and had fallen behind: `claude-sonnet-5-5` was missing, and\n  `?update` would have made it older still.\n  （**`?model` は、入っている Claude Code が知っているモデルを一覧にする**。Claude Code 自体から読み取る。\n  これまでは一覧をアプリに書き込んでいて古くなっており、`claude-sonnet-5-5` が出なかった。）\n- **`?model` is a command again.** It was not registered as one, so the model answered it in\n  its own words instead of showing the model in use.\n  （**`?model` がコマンドとして動く**。コマンドとして登録されておらず、モデルが文章で答えていた。）\n- The list of models for the Claude API was brought up to date.\n  （Claude API 用のモデル一覧を最新にした。）"}},"signatureDigest":"sha512"},{"version":"2.0.7","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.0.7/ktec_talkbot-2.0.7.tar.gz","created":"2026-09-25T05:31:12.185699Z","licenses":["agpl"],"lastModified":"2026-09-25T05:31:12.242266Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"BBTxc/LyrHquac4Cwp4bUBtbNx4FuqSmt8/TQOKwjjGa7/3WWbRRYrz/SnIdjfZuhbMsCvLxMKZqatUeO8TIN2/a+wyvXk79Zt4agOBkgzh9hXA3py93GQZ6dR3YJVk93C5gfe31k4Al0mrT42aLjwgkSplqpNFAy8mQuPDYYK/tfl5oqIRhYs9d1ZSI8Lq3puo+F+tkpMcB8MR4qxTxxT2Do+/rLgRwkI7vM8kpLyGhr6HG/SOo88fqGnc+ID/Y+9JHytut3J80nPMsNr4IZjhVFP8ZMvqzmud0j26N1BX6Vta9rKDMjjht1sV9nv1d9mSpehjmJ4MZRFzR9UMqqwosd3avAiiTqAl4Wdday8Lwz2fNFWYDgLQdo1534Lq0d/hngUXcJAR48euG1+3JSNOoOgZx7B/j/3Fz0ZZV6VU966eCYjyHLQ41+wx1O6AMN4BTlhOgCCYhloWcmPPOE6bf20kin9CTV2ZB6VslKhyKaCys68YVoO5ChZuhISCYxFkJY5RSgo48cU1ecl3IW4pXtiI/8oGC6DviW4YSA7QTaoOOzFmqm4at6OInfYns2Vlce1Xv2rQpKCSbm4cDMQUfDMRtgTPysVQ9SItPeipiQU7lTPCIjhCVtLnXbJQlTLTqnsktCK5IyzLRo7klUo7bmy7SaZVGie+4Q4JyIW4=","translations":{"en":{"changelog":"A release of fixes. The whole app was reviewed, and everything the review found is fixed here.\nSome of the fixes close security gaps, so **updating is recommended**.\n（修正の版。アプリ全体を点検し、見つかったものをすべて直した。安全に関わる直しを含むので、\n**更新を勧める**。）\n\n### Security\n\n- **API keys can no longer appear in a conversation.** A network error from Gemini could\n  include the key in the message the bot posted; keys are now removed from every error the bot\n  reports, and a failed answer posts a short notice instead of the provider's error text.\n  （API キーが会話に出ない。Gemini の通信エラーで、キーを含む文がそのまま投稿されることがあった。\n  ボットが知らせるすべてのエラーからキーを取り除き、失敗したときはプロバイダーのエラー文ではなく\n  短い知らせを出す。）\n- **Ordinary users are sandboxed with the Gemini command line tool too**; before, they could\n  read files on the server.\n  （Gemini の CLI でも、一般ユーザーはサンドボックスで動く。これまでは、サーバーのファイルを読めた。）\n- **Administrator tools only work where nobody else reads the answer**: an administrator's\n  one-to-one conversation with the bot's own account (new setting **The bot's own Talk\n  account**), or a conversation they are alone in.\n  （管理者用のツールは、ほかの人に答えが見えない所でだけ動く。ボット用アカウントとの 1 対 1 の\n  会話（新しい設定 **ボット用の Talk アカウント**）か、管理者ひとりだけの会話。）\n- A signed request can no longer be replayed, and a first message that starts with `-` is no\n  longer read as a command-line option.\n  （署名付きの要求を再送できない。`-` で始まる最初の投稿を、CLI のオプションとして読まない。）\n\n### New settings\n\n- **Questions per user per minute** (default 10), **answers in progress at once, per user**\n  (default 2) and **for everyone together** (default 4). 0 means no limit.\n  （**1 人あたり 1 分間に受け付ける質問の数**（既定 10）、**1 人あたりの同時に作成中の回答の数**（既定 2）、\n  **全員合わせて同時に作成中の回答の数**（既定 4）。0 は無制限。）\n- **Days to keep a conversation's history** — forgotten this many days after its last message.\n  The default, 0, keeps it until `?reset`, as before.\n  （**会話の履歴を残す日数** — 最後の発言からこの日数で忘れる。既定の 0 は、これまでどおり\n  `?reset` まで残す。）\n\n### Fixed\n\n- **Nextcloud 31 or later is now required.** On Nextcloud 30 (Talk 20) this kind of bot cannot\n  run at all, so it is no longer offered there.\n  （**Nextcloud 31 以降が必要になった。** Nextcloud 30（Talk 20）ではこの形のボットが動かないため、\n  対象から外した。）\n- Long messages (over about 650 Japanese characters) no longer make Talk fail to send them;\n  long conversations no longer exceed the command line's argument limit.\n  （長い投稿（日本語で約 650 文字超）で Talk の送信が失敗しない。長い会話でも CLI の引数の上限を超えない。）\n- Whether an answer was handed over is decided correctly, so an answer is neither lost nor\n  posted twice. On PHP 8.1/8.2 the command line tool's exit code is read correctly, and a timed\n  out tool leaves no processes behind.\n  （答えの引き渡しの成否を正しく判断し、答えを失くしたり二重に投稿したりしない。PHP 8.1/8.2 でも\n  CLI の終了コードを正しく読む。時間切れの CLI がプロセスを残さない。）\n- Messages written at the same moment no longer lose part of the history; `?lang` is limited\n  to the conversation's moderators.\n  （同時の投稿で履歴が欠けない。`?lang` は会話のモデレーターだけが変えられる。）\n- Disabling or removing the app also removes the bot from Talk.\n  （アプリを無効化・削除すると、Talk のボット登録も消える。）\n- The command line check in the admin settings (\"no path configured\", exit code) and\n  `?status`'s \"Remembered exchanges\" are translated; the Japanese wording was reviewed. The app\n  description lists the current 15 commands.\n  （管理画面の CLI の確認結果（パス未設定・終了コード）と、`?status` の「記憶しているやり取り」を\n  翻訳した。日本語の文言を見直した。アプリの説明のコマンド一覧を、今の 15 個に合わせた。）"}},"signatureDigest":"sha512"},{"version":"2.0.6","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.0.6/ktec_talkbot-2.0.6.tar.gz","created":"2026-09-17T10:47:01.449321Z","licenses":["agpl"],"lastModified":"2026-09-17T10:47:01.507709Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"YbYvxUYB2quhz2L1ssiJzoJjXTzVyywSi1I9tAxSvr+kXAoHg8/YxX2JjCQf1RsSud5PMYwtpLaEVx+qTIxenObP5HviBSDWcNq1UVChIC8kYTxfAsuoJv28QIcgY/dWQW+OcvWirezwCY5B0fBfp8a2L07mdcLlu8CVefCUWtByQauA/Kuqp5LPgr65RIJw9DJEvw7F2APtQFgfBdFDFDmjmspmAmj0+5JgN6a29Smq6c8PDIvHnk4bbYpyeenov025uvPsg/0cDtfq5NyxGQd+5Xu0xbUK1jWxmdM0051P8AJGl5C2rqfMHZCZhayOtfOrI5vZDkzc29uE/2ElXJ/IWnXBeWZNSPy/okSSCgHRuivhoCK6XUiffZ+4O3scVNAMAiLrr+MX+JAMtsgP1cB5VVC9I5osiFp/f8xv5c1aa7UubivwxnqX3vt5O9ZphvOVQBzLEk0RSUsLkwLLGk5SLq5J3URIdVfElVXXS/JawsNj3yi18B6lWP0cac8qJhXeytyc6ZjKBkE5QYHJP7m76kMt1jb8E6KXNWHrR4Pd1jX4fpvjPNdBnfXO/oE1Et1aMR9WZqyu80gH9paiuqUJOlI7N9Z8szTlZsxbMIewcXQPit/PIQxZzLOYWrljCY82mNbOWSYv8qb2pcA34PeyYmJTcYzC81VGoNMP/Vc=","translations":{"en":{"changelog":"### Changed\n\n- **Nextcloud 35 is now supported. There are no other changes.** The supported range\n  is widened from 30–34 to 30–35. The app itself is unchanged from 2.0.5: it was tested\n  on Nextcloud 35 against the changes that release makes for apps, and ran without\n  modification.\n  （**Nextcloud 35 に対応した。それ以外の変更はない。** 対応範囲を 30〜34 から 30〜35 に\n  広げた。アプリ本体は 2.0.5 から変わっていない。Nextcloud 35 でアプリ向けに変わった点に\n  照らして試験し、修正なしで動くことを確かめた。）"}},"signatureDigest":"sha512"},{"version":"2.0.11","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=31.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/Talk-Bot/releases/download/v2.0.11/ktec_talkbot-2.0.11.tar.gz","created":"2026-09-28T22:41:23.525464Z","licenses":["agpl"],"lastModified":"2026-09-28T22:41:23.598822Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=31 <=35","signature":"QFMuiaFzrkN55/GN7L1Lfww5Hj81ZmTmjBW5npnLiS30Ex0Rl7uqMgQuGmJUJ+disCXE7Zheliw9Hz271T/QreyVDvfzehmnCPX1mGE8zohedKUCwiTFeAT/skfT1qiTBRIg0rLYQWkqn4HCjQJlr5Vdf+kxVLYPXzmxCuh7ffCMP1mbP3aQ926EYIeg9+yEafy3hKMkz4hzWZzYIqTLHinZU7OAD8J83l/uZckdoVCKhxtntabR2PJ5Fn7+1iQ0ezEIB5alymS6O4/u1ZmB8cCrcVGmW4DWZ53UXJxeOqyx+gPTP7aaVzLwQVu4peInb7mM7oHS6EUEglqDXxiRot7jfENR4XsT3rs5nOHqHbMyTMfdxvJA5Y/XlaQIJIRt4qlD5GZGtyE0rhWHT96d1M656aVd7G434GiOqfXEK6XybCXbcJih8tX9V4bqBAppahB02Z7QfPzQYbZ9qXP3WGlZkaECdUSlW1Ws8vS6nMX8TFSaxVj2otlXXhELECuyDpr3nEBMNrU8QShI/VNnmG1d/FO9mkKarl7+mwxiVgvWg16+BHWv/vSoyj3OjkInmYW40SNIX3MyLH3j56bHnhNw+1PKbQjT8OrjSZFEiiqjS7iaj+CpXUsSCAI0Kh+BSma6D1mz0Jfexg0XQGO2eiS3RxsM1Rvmbe7AblfgeFA=","translations":{"en":{"changelog":"Switch the model and update Claude Code from the chat.\n（チャットからモデルの切り替えと Claude Code の更新ができるようになった。）\n\n### New\n\n- **`?model <name or number>` switches the model** (administrators only). Before switching, the\n  bot sends the model one short test message and switches only if an answer comes back; a name\n  Claude Code does not accept is refused with its reason, and the model stays as it was.\n  （**`?model <名前か番号>` でモデルを切り替える**（管理者のみ）。切り替える前に短い試しの一言を送り、\n  答えが返ったときだけ切り替える。Claude Code が受け付けない名前は理由を添えて断り、モデルはそのまま。）\n- **The short names `fable`, `opus`, `sonnet`, `haiku`** can be used; they always mean the newest\n  model of that kind, and the reply says which model actually answers.\n  （**短い名前 `fable`・`opus`・`sonnet`・`haiku`** が使える。それぞれの種類の最新モデルを指し、\n  実際に答えるモデルを返事に添える。）\n- **`?update` updates the Claude Code the bot uses** (administrators only). The bot says it is\n  checking, then posts the old and new version (or that it is up to date) and any models the new\n  version adds. Only one update runs at a time.\n  （**`?update` でボットの使う Claude Code を更新する**（管理者のみ）。「確かめています」と返し、\n  前後の版（または最新であること）と、新しく使えるモデルを投稿する。更新は同時に一つだけ。）\n\n### Fixed\n\n- **`?model` now lists the models the installed Claude Code knows**, read from Claude Code itself.\n  The list was written into the app and had fallen behind: `claude-sonnet-5-5` was missing, and\n  `?update` would have made it older still.\n  （**`?model` は、入っている Claude Code が知っているモデルを一覧にする**。Claude Code 自体から読み取る。\n  これまでは一覧をアプリに書き込んでいて古くなっており、`claude-sonnet-5-5` が出なかった。）\n- **`?model` is a command again.** It was not registered as one, so the model answered it in\n  its own words instead of showing the model in use.\n  （**`?model` がコマンドとして動く**。コマンドとして登録されておらず、モデルが文章で答えていた。）\n- The list of models for the Claude API was brought up to date.\n  （Claude API 用のモデル一覧を最新にした。）"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9UYWxrLUJvdC9tYWluL3NjcmVlbnNob3RzLzAxLWNoYXQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9UYWxrLUJvdC9tYWluL3NjcmVlbnNob3RzLzAyLXNldHRpbmdzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Talk-Bot","summary":"Chat with an AI assistant right inside Nextcloud Talk, powered by AI-Hub","description":"**Talk-Bot** turns any Nextcloud Talk conversation into an AI chat.\n\nEnable the app and switch the bot on in a conversation — that is the whole setup\non the Talk side. No external daemon, no webhook endpoint, no Docker image and no\nseparate machine are required: the bot runs entirely inside Nextcloud as a Talk\nin-app bot, in a few hundred kilobytes of PHP.\n\n### Requires AI-Hub\n\nTalk-Bot no longer talks to a model itself. The AI service, key, model and limits\nlive in **AI-Hub** — a separate app that is the one place AI is set up for the\nwhole Base series — and Talk-Bot asks it for every answer. Install AI-Hub from the\nApp Store, choose the AI service, key and model there, and Talk-Bot uses them. The\nsame AI-Hub also serves the other apps, so there is only one place to configure and\none bill to watch.\n\n### Light by design\n\nOne small app, installed from the App Store like any other. There is nothing else\nto run and nothing else to keep alive. It answers off the request path, so posting\na message never waits for the model.\n\n### A plain, sandboxed assistant\n\nEveryone talks to the same assistant: it answers questions and nothing more. It has\nno tools of any kind — no files, no shell, no way to touch the server. (An\nadministrator who wants a chat assistant with shell access uses NetBase's assistant\ninstead; Talk-Bot does not do that.)\n\n### And the rest\n\n- **Per-conversation memory.** Each user keeps their own history in every room;\n  `?reset` starts over.\n- **Commands.** `?reset`, `?undo`, `?retry`, `?summary` and `?lang <code>` for the\n  conversation; `?help`, `?status`, `?model`, `?whoami` and `?version` for\n  information; and `?roll`, `?flip`, `?8ball`, `?ping` and `?joke` for fun. `?help`\n  lists them all.\n- **Access control.** Optionally restrict the bot to an allow-list of users.\n- **Reply language.** Answer always in a fixed language, or mirror the user.\n\n### Privacy\n\nMessages sent to the bot go through AI-Hub to the AI provider configured there, and\nnowhere else. Point AI-Hub at a local model server and nothing leaves your machine\nat all.\n\nRequires the Nextcloud Talk app and the AI-Hub app."},"ja":{"name":"Talk-Bot","summary":"Nextcloud Talk の中で AI アシスタントとチャットできるボット（返答には AI-Hub を使用）","description":"**Talk-Bot** は、Nextcloud Talk のどの会話でも AI とチャットできるようにするアプリです。\n\nアプリを有効にして、会話でボットをオンにするだけで、Talk 側の設定は完了です。外部のデーモンも、Webhook のエンドポイントも、Docker イメージも、別のマシンも必要ありません。ボットは Talk のアプリ内ボットとして、数百KBの PHP だけで、Nextcloud の中で完結して動作します。\n\n### AI-Hub が必要です\n\nTalk-Bot は、AI モデルに直接接続しなくなりました。AI サービス、API キー、モデル、利用制限は、Base シリーズ全体の AI の設定を 1 か所にまとめた別のアプリ **AI-Hub** で設定し、Talk-Bot は返答のたびに AI-Hub に問い合わせます。App Store から AI-Hub をインストールし、そこで AI サービス、API キー、モデルを選べば、Talk-Bot はその設定を使って返答します。AI-Hub はほかのアプリでも共通で使うため、設定する場所も、利用料金を確認する先も 1 か所で済みます。\n\n### 軽量設計\n\nApp Store からほかのアプリと同じようにインストールする、小さなアプリが 1 つだけです。ほかに動かすものも、動かし続けておく必要のあるものもありません。返答はメッセージの投稿処理とは別に作成するため、メッセージを送るときに AI モデルの返答を待たされることはありません。\n\n### サンドボックス化されたシンプルなアシスタント\n\n全員が同じアシスタントと会話します。アシスタントは質問に答えるだけで、ツールは一切持っていません。ファイルにもシェルにもアクセスできず、サーバーを操作する手段もありません。（シェルを使えるチャットアシスタントが必要な管理者は、NetBase のアシスタントをお使いください。Talk-Bot にはその機能はありません。）\n\n### その他の機能\n\n- **会話ごとの記憶** ― 各ユーザーの履歴は、ルームごとに個別に保持されます。`?reset` で最初からやり直せます。\n- **コマンド** ― 会話の操作用に `?reset`・`?undo`・`?retry`・`?summary`・`?lang <コード>`、情報の表示用に `?help`・`?status`・`?model`・`?whoami`・`?version`、お遊び用に `?roll`・`?flip`・`?8ball`・`?ping`・`?joke` があります。`?help` ですべてのコマンドを一覧表示できます。\n- **利用できるユーザーの制限** ― 必要に応じて、ボットを使えるユーザーを許可リストで限定できます。\n- **返答言語** ― 常に決まった言語で返答するか、ユーザーの言語に合わせるかを選べます。\n\n### プライバシー\n\nボットに送ったメッセージは、AI-Hub を経由して、AI-Hub で設定した AI プロバイダーにだけ送られます。それ以外の送信先はありません。AI-Hub でローカルのモデルサーバーを指定すれば、データがマシンの外に出ることは一切ありません。\n\nNextcloud Talk アプリと AI-Hub アプリが必要です。"}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhOrMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNzI3MTIxMzI4WhcNMzYxMTAxMTIxMzI4WjAXMRUwEwYD\nVQQDDAxrdGVjX3RhbGtib3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDI5izLws/H5Br3W6wwJjvdtJTwVrwkg2vSKbL4ZMYHKK1r86Il7WIvLJ0QKGkQ\nM3MPLcfbuaH0RsauC8ms5qSyMh6+Q92jUCKkfCzv4YddDW8a5QwhAcBJllrSj7Q0\nt5DNii8BYLHtdJWDnnSWY7Y1lxR9sj7Nhvf8DSD4hXw7AtUezsGQa3/4hkHSiqwQ\nH4qlSwXJu6kkweTeRiwB1KwaP6I7+E+qafqz7HHSFZD00VNnxBz/sCFL84qkBk9h\n4PdAZhk6LljFdL0FW/bSD3ODLjUaB1ux8leonjio12xnsGV+7Nh6Z7mrtVz9HUi+\nRuFDJoqfj4pKZteb8/wb+4PTvkXxvn6lDHo10wYvWzjmL2aF+boogyla6HpbNiSQ\nzi5is6Ez+z04V7cGs6LsRiITAq2gPZNs6AOOHkpSkpLT/sEfX5NXz2eXw/SVYLRt\nmyBhjP4Gsnygjjq4smBqvGzqjutP0IsQTuARWDz/JMncNku+TbpKk9qGDi0X7E8q\nwNRBIGOCZyMbpMVVCPxRyI7MgeVIyOxhdAegV6LKcQLY2+yIvWRgSCnZJ5X+M6r9\n43BLUV3F6QRazuCLm3r5QRlkjhbzxYHceWMv/bh5Ie0Gz2ymohIryV0kEbP1CWIa\n7r1l0KqLg4OYsrueA8GsxK3/nb4fR9JpdoJVDvskgfXtLwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQB5bFW0yKYOkFNQf1kfVMkt1pjgjVri4Oz1BObWYh70WO0YZkSe\naVqIJgwGFGzWH5D1G+1cou2guhnWgzGjIEkB2IUD5kwv8JS6WoPw7aUnPco7tVno\nyw4p9UKk47u+gEtHzb6fa8IZttKNzZxMi/1DCTssvJnmS/YZqU5jhjgNImqgOj+L\n8wLh8fgrrfbACrkdIBZp9XBQz+zaUxD7A1AgKZUYf7huUxw3XnZ7UREASyvGxr9C\n/TEOAHG1Lc0FSfb1aXyWwJQhzixmkBYnF5vN4YDlKdcrSdb03mCLaufH3RBQK/7o\nWER5DPkbnd5TDIdkJOwjOQ9AUqSlNi8QxGWi\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"registration","categories":["security","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nextcloud/registration/issues","website":"https://github.com/nextcloud/registration","created":"2017-02-18T01:54:16.282042Z","lastModified":"2026-10-16T08:26:07.601026Z","releases":[{"version":"3.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/registration/releases/download/v3.1.1/registration-v3.1.1.tar.gz","created":"2026-10-16T08:26:07.595600Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T08:26:07.635876Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"PF4Hkr59PrtJwJwOQLTODXqaYoV8FfigjYcOsg4twNa3UTqULGdy46oED/1GXY6wPCh65NU8YUai+Dg0VJWvKFMJwFp/IFLD+qnzmw76Gbe13HXdQhlDbaEKtx3z+c1OAEaQqKfCL2FE49Gvl5uR9mdBX/68srm88HdfKM1GTdx82Cm8mc+DAu7ryNVhR/w8iEt5NQFbxme2zmwNTgezAgbDIVUuTBpUwwq8SIsSUad5kJmOUv1kwWgMDjCwH6lHua62Eb7uBUO3+La+hgSFnuXpFqRW096rBU6fo0Jfb35dOZkrkGv8YuHiY+QV1OvFsZOStM3T6fcv8VoTWgb5kEC20O1RLheEzFAo+Br2wmvm/S0vtsqRPup1zlGjZEuemPAvb3SEe1+IfYf3WLDd/KQUisM32uhIIPJhQ69KDG7KrbRaj2Wheff9MrXYqrMev6SEKUr056ZbALpEJQtllJRifBZAykA0aZ65I/fGHl8IeLEndshk5G2mOAKEmiWLwBNHcohcx1Q8er/v+GIRRMBNMbk7uxMQTBC2WSbHru+UdxmDRMVdEI3Z1MEV0UzoJF5y5K/n+nkB0IYFWI7EoLDsLYyeeyIPwCSulC+o5s+6lj7ZQl63XP1tv8QzCpEsMZha8Z1+YpAZ0ZmyZAiHUlPa0u3ntQ8NJYW3t7IdDqk=","translations":{"en":{"changelog":"### Fixed\n\n- Login flow with NC33+\n\n### Changed\n\n- Translations\n- Dependencies updates"}},"signatureDigest":"sha512"},{"version":"3.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nextcloud-releases/registration/releases/download/v3.1.0/registration-v3.1.0.tar.gz","created":"2026-09-12T16:03:30.217205Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T16:03:30.265055Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"XJAr0T+dKKVHJCjes5bzNZj08fZCIUP+fDUDKk5ykyvTE9VLrjEo9K3Vf8H0pc0mkJ2sn3pKlOrfTw26il7kC2vfny3iBPwNe4wslHQcS6W1WqT3TvSE1fn8dWa8cePNLDRDP7+t3ThQtyFt68eAcuVIdM33le+lYkQYzLzHpZd4Xn6HK8sqVMBMDz2EMK27GCBm+JQJ6zFMVMdp/DSPEmMyjs4zNqGDZEiJH1792wPNPWbmbJIgOTCnZV6tfWFNkKSHmBfofp++G43Zw9IoH6ijIUx6Y4MzZO7LbB2IJhThiWaqdycF4hQ2+pQEY1Gr1yDEyuAC7yJ8w6kd89K7VZfcu9Yb0PSMV4489UhxIyrAnbCZZGWM0164kHXnJqz/mhfXcP3WhThYKmgdmRhCvaSurrkAgbcWPkN0sLXXZxRjKxIMSgzfJtEkIu+za1//50hEXNjubmcbIWYTrhzVqsmJHCL0XIpE9jscU9CMWfPLL6/dY1buZ5lR7sMHn9lMUB9SWoo7HP/vSqQegGSMIrKXVv1SVbwDhRF6Z5UuppjuT/C0MfPStU/V2bgpC81cbIjlkmbt9Yt5+AqfFRxSrC1RlueV/ZJ0OvmaoFndg4tQm5w//rKM3TqCHIEshf5OhW8Fp3fcM408605C6zXWJVuMpswq7tuDMfytmJ/jWRg=","translations":{"en":{"changelog":"### Added\n\n- Compatibility with Nextcloud 35\n\n### Changed\n\n- Raise the minimum PHP version to 8.2\n- Update dependencies\n\n### Removed\n\n- Compatibility with Nextcloud 32\n- Unused `vue-template-compiler` dependency"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yZWdpc3RyYXRpb24vbWFzdGVyL2RvY3Mvc2NyZWVuc2hvdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yZWdpc3RyYXRpb24vbWFzdGVyL2RvY3MvZGVtby5naWY=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25leHRjbG91ZC9yZWdpc3RyYXRpb24vbWFzdGVyL2RvY3MvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Registration","summary":"This app allows users to self-register a new account using their email address.","description":"User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically"}},"isFeatured":false,"authors":[{"name":"Thomas Citharel","mail":"nextcloud@tcit.fr","homepage":"https://tcit.fr"},{"name":"Joas Schilling","mail":"","homepage":""},{"name":"Pellaeon Lin","mail":"pellaeon@cnmc.tw","homepage":"https://nyllep.wordpress.com/about-2"}],"ratingRecent":0.5,"ratingOverall":0.9090909090909091,"ratingNumRecent":0,"ratingNumOverall":11,"certificate":"-----BEGIN CERTIFICATE-----\r\nMIIEBzCCAu8CAhFDMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\r\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\r\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\r\ndXRob3JpdHkwHhcNMjAwODI0MTAzMDQyWhcNMzAxMTMwMTAzMDQyWjAXMRUwEwYD\r\nVQQDDAxyZWdpc3RyYXRpb24wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\r\nAQCnYFExkrvbvAkH7x5MIqJqR/mjOameq9StB9fwY+WofXwCfALmXZVOtpC8Zq/8\r\ngilYDoUuF2ZrtYRbJC1qVi0ycZS7V3Ni6QDMIrsGOGJooaw0nJRACjfna8ua8H3/\r\ngDePqV3b41nDRmFqxKuavfjh+tvD5QtUWcry1Tmd+xuAE8FMWk+PlbhcLN2rmukf\r\nr6D0vh0LN1Cdlg9BUL3/XF/ZKX+Bnp4w/vTCnsxHraX1vd1jJuMgpcxhBvjvFx4S\r\n4MPGlEB8lqN0SGvMyrzHbLTnrVWDVWawhtQuIV+5KtDyPcMhPFLBQMIKE3KWGA0H\r\nOBk488HcHH+TZ8Ld8XCMwmIKT9eXl/R/IG1N2FSYrNF5eSD2EeFx3C3vZUQmwTg2\r\nAF/QVloM+LS0qC3VhgpZtuxt6dT24/jx0qiJqvJ6ooX2SSrDMj1LS/4rkccuWoyv\r\nfucVdh9C9FRy6QTh+e2ohzFhvU1msUscWCRANfW4BJmwzdPJHF9y5YcGod8T+o41\r\nWJaI6kI6Yzx0TaV6ppaSTlkTRkks8y8kt/qsK1Ga60ActI6cvqTiXiFxwGqPSlQ1\r\nLK708gr0FdpI75QK5lNwiAkJNwAL6rY1ZM8GAzGiPaoaEts6X0DF5VdMJEBRvIPe\r\nKKO35dJbL5RzWpCckS0hv7wmJLL7XDe2EeQR+q6E+/mKbwIDAQABMA0GCSqGSIb3\r\nDQEBCwUAA4IBAQAttTJFMTc7+nYUpQhi3LgMXoTFfLWJDtyZpxJdbukYzF/SUnkI\r\nM1PMvCU01kMNaISFN6MGmIjh7AdVCMnWo8ZIDP8JfPVSIyYv9w5N8y1yR5EC8WX/\r\njInkVWNsilRgG76bUwLTyCB8y+6jF3HYIZHkTFofQ5fOW8AV6ARO6feW2uyeBski\r\nZedg15YGmPLnyFf9lk6t7DVy8Hu2t12d9ouoq46Jjg0sgATW/Ci7WN/6SChVuiHs\r\n9G1eq0FD6V82w4MHNYG/Y0zwTgF/aMeUZz+VSVPRtiih4f63LmZHg+DHIG9/F9TB\r\n4Ex1iQTQ67ggV3ndW3SpPId3jNIHOMvzKRFp\r\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"quantumchess","categories":["games"],"userDocs":"https://github.com/bee-flow/quantum_chess/blob/main/docs/rules.md","adminDocs":"https://github.com/bee-flow/quantum_chess/blob/main/README.md","developerDocs":"https://github.com/bee-flow/quantum_chess/blob/main/docs/development/architecture.md","issueTracker":"https://github.com/bee-flow/quantum_chess/issues","website":"https://github.com/bee-flow/quantum_chess","created":"2026-09-25T06:29:12.475333Z","lastModified":"2026-10-16T08:32:46.983847Z","releases":[{"version":"2.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.3.1/quantumchess-v2.3.1.tar.gz","created":"2026-10-16T08:32:46.972774Z","licenses":["agpl"],"lastModified":"2026-10-16T08:32:47.019895Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"N0bhF+U6J0Jdi5m4Z0S6EGYABBypbrSy1OzjsWaddB61Yjt154a+o7egt7rJLDfjBoWqpws2HK0kyz36ati9IQXoHOItNcavN+ivmupG4lx9MWo/fOZoj6ZpUMgDDPdZVMjkZuxDmrzTvb25H5jxQDCI3q93ICmEb56w5gudGXvXgB5aotO3jsAYA9ziZkoVjVPgymAAR1vnAEeUNfI82yZG9A1xbNG5Db22o5Kcudwumr8hLx8PBOfKJ4EjajafroWJQZz93ZTcR0L8ZQ9vXhkLiuua2cAzLcaidlAcPzH5B5VAhAS4eJbfGZvw8lE07kgcA3rZj/CuIy6XAhH1BJGWfjuozSyX6PXCmNO6YrHA2ceZbLDWw9Mbf8Wt1FXAgRdqY9atwpUz2uGnRs3zRtw104cdrYEpDZMRddKzpRlszcxZTQNE3bX04vBpn9IWlLiw1HwhDQdv5+adm71acf1EKIFeoqUHH8hYT/iDwncaT8kv7n2/sTkY7hqnXyKQGht1SJ9ehgr8DcCIvgqRHOv0AV+F/mk6Qa39NTL+11CNvQ1mebM/IEruOJmjMtJHvr2oXtptpGrKlT9t0wILicf/f9wfiXH9z/HVnk0eADN3fKORu/gPJueQXtBd1mbSLOBxdFLrjYsyY7BC8zfmRIO8hBRZ2CyLyyNEy7oWIZE=","translations":{"en":{"changelog":"### Changed\n\n- New App Store screenshots, among them an online game of Four-player chess and Bee Flow Chess.\n\n### Fixed\n\n- The app's navigation names every opponent of a game of four under *Your move*, not only the first."}},"signatureDigest":"sha512"},{"version":"2.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.3.0/quantumchess-v2.3.0.tar.gz","created":"2026-10-16T07:07:49.993550Z","licenses":["agpl"],"lastModified":"2026-10-16T07:07:50.047566Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"rpfQswOVCAwoUplMDKoJgU9UuKItUiWI0s0lTcVq/9sN7cHHTxgLci/TNwH9UIMeopOGu1BmqnnbcE9Dh9YpHJqtyay0AxIxbIg3twyEWzcbmJ3BHJkYJ13EAc3Hs5TBF7XsGbw08AIr4CvgLVKIvrNWRdmiVrnFPeqInOk5jqR5P+N6PYHbRrmCbegzKieQAUte6+FnAAS5VE+0Cqqr7Ijejh8a8779Wfr4XI6vXv0xST8DFQreC8rcnCo/zIkWbRkekcXxoiemaIiZgVfFh+D71EYlbyco9xXGPefPnQifLWZt0jGaLbo6BYcB4ZxnGa436Zk5cxGV/8kGoVLfxXFKEzJoE2Q/6088EvjtXy4AAf0BeSaVoDl08NgtLB6nnX+euQOBvmuA2GbE1v2EgTSC6QzkDPXrS81FLVBZLFZF0czrIQpWz+NKAY9IKInwqERv33ml3zkFQdeQlLk2X5kYmL4mKlzAlvd0J9069Nx+WT5aRpPZqif8FcfDuFSb0rk24RXP0bWEPOczSEy1XliazyWePQGbpo2+xIv8KiI74/k3XZWWL87DrwuLA97L6C91mqetoQam9ivt8Mdh7nIvYZSuZN5F9Zvfj5mQ64P/I3CO40rY7rtTHZND/RbMjWxPVlrQH+zuo6mXHibljCXYHoZju8UMVNJdIbGlEHM=","translations":{"en":{"changelog":"Online games with three or four players, played live, after the feedback in issue #23.\n\n### Added\n\n- **Instant moves with notify_push**: when the Nextcloud app *Client Push* (notify_push) is installed, a move, a chat\n  line or any other change shows on the other players' screens at once. Without it, a game that is being played live\n  now checks every few seconds instead of slowing down to half a minute.\n- **Sounds in the chess variants**: moves, captures and the end of the game sound as in classic Quantum Chess, online\n  and on this device, following the sound setting.\n- **Every player is told when a game of four starts**, and the player who moves first gets *It's your move*.\n\n### Changed\n\n- **No notification of your turn or of chat while the game is open** in a visible tab. It still comes when you are\n  elsewhere.\n- **Resigning a chess variant game asks first**, online and on this device (as the classic game does), and so does\n  aborting an online variant game.\n- **Declining a seat of an open challenge for four** frees the seat for someone else instead of cancelling the game.\n  When a declined game is cancelled, every player who had taken a seat is told.\n- **The lobby, Recent games and the dashboard** name the creator of an invitation and all opponents of a game of four,\n  instead of one of them. A game you joined shows under your own games while it waits for players.\n\n### Fixed\n\n- The players next to the board of an online variant game all read *You*; each seat now shows its player's name.\n- In a free-for-all of four, a player who was already out shared in the win when another resigned or ran out of time;\n  the player who was out could also still resign, and a draw needed their vote.\n- Every finished game of four showed as *Draw* in Recent games.\n- Open challenges you already joined showed under *Open challenges*, where joining again failed.\n- Deleting the account of the creator of a game of four deleted the game for every other player.\n- The end of a game of four names who resigned or ran out of time.\n- Accept and decline of a draw offer stayed visible after you agreed.\n- A move that another player's move overtook now says so and updates the board, instead of *The move could not be\n  sent*.\n- In the chat of a game of four, your own messages showed under your name instead of *You*.\n- Spectators of a variant game no longer read *Your king is in danger*."}},"signatureDigest":"sha512"},{"version":"2.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.2.0/quantumchess-v2.2.0.tar.gz","created":"2026-10-06T15:22:25.608071Z","licenses":["agpl"],"lastModified":"2026-10-06T15:22:25.654004Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"KANaI0+/hnoUb/MRrH+aMOUw9OqQxdYfF0TalyDfmsNrSJbpT7QLzSWQ0HXwT7pzRFheGanAaKKVtfU64eW57d3sxQ0WGqPqAOzvKXz9i1/ONdwf546CuxkLwlUJuOIVPPJpv3z8VjWhGPOCVOg2TM9DZk/waxEFf18Dsq6GFL2CcT40DCM/WqiJXhuTlYTA2BpouEcF/WyVblnkKd9ntSesFPKkrAAOkCEHXzMZm8xqYtIslm9dj7/klpb+jQrrONQbLcBNP5kX3/wpz18fwj9Ug1R2bgJiiqPvAmSa1I7dBNkvFxShsmBhbhwHwHQUKxpnolB339+enLburf3T7CcpGVzT2rYiLcfqBNBXjx8zaYbK4jQCIO8VG1DhPCKcwTTgvGcuqsrVkcWSz/E7M8BjMXEDp7Mw4O1/YreEOJzjTSzK0jky+KTWCdYmagUaI+gpy8mAeSmk900jHQDNkunvnDyK/uI6PAByx9mjS3x4/QTNQl+uOmoJifjYHU+iKQwmEEhUUtgWiaSjhP5KJSFKXPlfahJ1Q5bSsUSmU8YD5PG4+onpZLlKSdSbKg1DD5N+pHOSaToxBEef4NvHzuWHAWD4Ikrd7dSNFAlJ/JnSksbC1uGQ2p8OSp+eFr02SKmJiI/1pCNwpSZgCB7zu11Gal5A5mObQHZ7pO+fOuQ=","translations":{"en":{"changelog":"### Added\n\n- **Bee Flow Chess**, a new chess variant named after Bee-Flow, the private AI workspace, at the top of the variants\n  list: protect your Queen Bee. Each back rank is shuffled on its own, enemy pieces show as honeycomb cells until they\n  move, and a privacy shield keeps the pieces next to the Queen Bee from being captured. Against the computer, as pass\n  & play, and online with the server as the umpire and a rating of its own."}},"signatureDigest":"sha512"},{"version":"2.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.1.1/quantumchess-v2.1.1.tar.gz","created":"2026-10-06T11:54:52.668318Z","licenses":["agpl"],"lastModified":"2026-10-06T11:54:52.708335Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"njvjbrAqx2dSKYeHZhsSC6dj1zgIKSjcb2oNxcybPUfetlaPV1O1gCFmlR9gGq71e6knGaTDKgZ6HxobMCnI4UmrT2epGS9SlNkA7d1bsTMb/TDfFQexT5qE+QR2awQmOWHt+O9zyyjZan5n0Kqsx+L1LosN0MevEj9eF+oadLt/HCN7JPxkxW2S70H9blKP4mI+Ybo2osDbazphLhZ6HzTk3DOY3kvFYkQu81+bH8hU2EXuPdReT6POO1YWJMNuxy4xjnQczJchtn03oGEstD30Vl1KSgYLCU7N/W6/d8Uly8MiV64aluykIPmxBT4KKQKIMw13rhjRW2K1LWQEuLEPWVT4MEQ3PCUqa7TyTpr3y3djEnLq8DoIVxnRCmQf3f2boX70jF3sHzuwT0x+ZjVGIhBkwG3Wqr88vaPsYwaFIOyTP8TeFqfcaRTBo6K4+AeV23M2MqEgTWxrAiAKco12ZltTAwXEmgTINJ3EKmdNqaz7qsT5jDN+DJLK21+9GWPtbVc+xHLhTZN0CGAs+NvaqW/5LOOr9f3N+P/WUaAzKbVPkITswV6X+FQd9sq8iRjsmSJEvHsU/Sx8GN+6se4j31qXZtKyKXByl7wTPLSrQ3HYPBlR/ZO6orDOW9YLHMbQsxvjGpbQpTKes5ElneD3d4kLyU2kD0HPceYPWe8=","translations":{"en":{"changelog":"Maintenance release."}},"signatureDigest":"sha512"},{"version":"2.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.1.0/quantumchess-v2.1.0.tar.gz","created":"2026-10-06T11:25:41.068001Z","licenses":["agpl"],"lastModified":"2026-10-06T11:25:41.113177Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"XvziHEuVvLrxuHXk22V+kUXpHV12BQugXj3A/76PKG7bGg/a6dMGrYKjzDjc2Xg9VMu+MGOYjGLlUYgfNZe/4FYdg6fWDr/Rs/DJJJa/YJY3l/BHAm9QZnD1cpAxl8jM+8KbXVKW7p1R+OorCt4/Pmxb7mmWD6TB2UJEmQU9C87vI2Ut00dRnkrSnLWxePSmtoVPTh43lF6DDdy/0lUbIKJH1wuyoqhd68QjWit1dqpthoxpHwv1s1dubgfmO5x30MEVlZC9cJTdmi6dEGnX7MLSKEjYlVLsjXZO+mwIjJdPwDREcFcqCIASohxSZ4ElNJyV/3BdTAFSdqt+wP21rIfh2V/5/JmKArhK9qNKadeQxVyUR+cz6W6optwzdcZFlJeHIsz7oDwdb/IfHWnYOmJiyNzsB17y2YCzR5g4y4AqmAaw1AgHiUs2HjWpiIr1WKao6eQH0NGmZuIMOLtdl3ra95CclwQsGyl9Zj9ibK3kKJ27ZAXs4GvrIiMOfO2r7U8Q6ZPm0Va9TC8XzqTn4qbGYb1RVWXvheaMwebgdf+TlxQeJaQcd86TS69aAvwaHwroDYMvXwCRk3kE1uKZo6wNGQRYYnkpq6l/TcnMuFsNhacLSl8fn2yX2Has2hDTFcq46lSmTljL8kjlVkS8HK3IUrWgG7rBRuM+LrddiGw=","translations":{"en":{"changelog":"The chess variants go online.\n\n### Added\n\n- **Online play for the two-player chess variants**: 3D, 4D and 5D chess, Tri-Dimensional chess, Chess960, Atomic,\n  Crazyhouse, Antichess, King of the Hill, Three-check, Horde, Hexagonal chess, Capablanca chess, Shogi, Xiangqi and\n  Makruk. Choose *Online* as the opponent in a variant's New game dialog and invite someone or open a challenge. The\n  server draws the dice of every move; both players' devices check every move against the rules, and if they ever\n  disagree, the game is annulled. Online variant games are not rated.\n- **Four-player chess and Bughouse online**: choose a player for every seat, or leave seats open for anyone to join,\n  optionally with random seats. Each invited player answers on their own, and the game starts when every seat is taken.\n  Resigning or running out of time ends the game for everyone (the other team wins, or the others share the win); a\n  draw needs every player.\n- **Kriegspiel and Fog of war online**, with the server as the umpire: it keeps the whole board, decides every move and\n  sends each player only what they may see. In Kriegspiel a move the umpire refuses uses no turn and is not told to\n  your opponent; in Fog of war you see the odds of a move before you confirm it. The whole board and every move are\n  shown when the game ends. With this, all twenty chess variants can be played online."}},"signatureDigest":"sha512"},{"version":"2.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.0.1/quantumchess-v2.0.1.tar.gz","created":"2026-10-06T08:42:09.770327Z","licenses":["agpl"],"lastModified":"2026-10-06T08:42:09.826749Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"P8rXDe6H5VRsNtdiilXz22B9F6G+qjCuTFzj3qgAOPwRmsgGPHTKZVtlQmw22lsuX9JBJ8gWn4xGdwXGTe53XsSl+pzdsHs3QomSNK0PKPyOHyrk4pUnJMyrq6/X7HqIHB7Q/97syKYrUNkD5emosIT7GdlnM8/uM/dNcel0b3rFODFD3GtV0jPzP8ocR2y00YokiDT+/0jt01U4xi5NwC7p+XxV+OkN4sEEXVAwUBb9lf9tg8ZkGaB/y65AlIKZUqrgW/Mr0n5AFYy1klAVIwadawQL93Oqa9aRVWQtdtM2nep53VB2npwbDH7D/BbHbC4WjtX1Tg5r8lmbxoONcwbtko/2MTH0eRKHHwyD6TTOVU5qbvcVUaantmskymIxON7Tma6tZlUtEe04V9NU888xHz5hwl1bftnJ+E1EpTgwIcLy0YLsNM/hP9wEsyJh2t5QxNz6t2WrnWVYSUMUUJgC/hPCgh/6uWSuWCA3T1ZIdIrs62vUPXG4hI2GByT6eGV1VMWDvnK/van3uN4dt5VRAR+7XZYJxU6SgqRMrF6hl22NyPnsaRrzxZhfeI3myTzXjyUMuZdclgnMbZTx8czhMvusSse5Rcv5YyeajWwynROSH/fuU/J/70Mx4/qSpkevOplNsRQQDNIGTYE55phka5A90HHR514rqCfN890=","translations":{"en":{"changelog":"Maintenance release, and the first step towards playing the chess variants online, four-player games included.\n\n### Changed\n\n- The database gets the tables that online games of the chess variants will use. Nothing uses them yet: the variants\n  are still played on your own device, and online games of classic Quantum Chess are unchanged.\n- Updated the Nextcloud components of the app."}},"signatureDigest":"sha512"},{"version":"2.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v2.0.0/quantumchess-v2.0.0.tar.gz","created":"2026-09-26T08:32:13.810127Z","licenses":["agpl"],"lastModified":"2026-09-26T08:32:13.864202Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"a/clQr2ZrHvECeNq6/HgxAIo9WhG/0ogQxmCGExMNQawRNPBc5JFv2sZK8wEkGoI5YBuXSHRIwYpWswaZMDVCfw50HcpXDMUKqZcuL/Sp5KQbF5qat4unLS6volrYg9Bd90hc4uSCKogQgUI8f86O36+iyWi+8whKiJYDAuT0DHlszaYc9ztJrJYWUzYA00PBl0jugJ8IIaWcdojB1g1ISldBqELUTFV2fWx73/5wQxkdJlny90ZN0JoEQNlLIEHziNARlPcVVq7TFVNjuV2PUWNr6ue/6+NSc23k7extkrbQyT+AKN5rX8mkHRfc2rk34ajAha9U6V/J3TNosSxA0bdOIaWLxY7tsXWxy8egTXZP7HH3qx2uTodFvW+P4Zt1+4T4k5k2bIuhUtuZqTrwrjXH92K8ippYB3DFX0pwzqD7I7YsMa39LMFgi1twNz+Wb2xrfuNVBXgynRtriLQ9ki7V6Quc4P9XZbqKb+Gds/5aHcSv63aSd7wB0epjI64GY3iwZk2bdGL5FIE7FTzAo8sraQkWo3tCaqbgjcLqSjGwphEeH3rZAJId3kQ4PniOQpvWcn+sLULgvdAc6gGrw7ZTuaeqzrv1LWG9AhpeOoqsfmRE084jRVru4rtjsHHoWgWvOrJlNEBp17+n+I8uP+fb37cg2yz+tV72g5MgEk=","translations":{"en":{"changelog":"Quantum Chess 2: twenty chess variants with the quantum element of the classic game, led by 5D chess with multiverse\ntime travel. The variants are played on your own device; online play, ratings and the rules engine of classic Quantum\nChess are unchanged.\n\n### Added\n\n- **Multiverse chess (5D)**, the quantum version of *5D Chess With Multiverse Time Travel*: timelines as rows and time\n  as columns; pieces that travel back in time and to other timelines, where a move onto an older board opens a new\n  timeline (up to three per player, or four on a laptop: an option); turns with a move on every must-move board of the present, ended by\n  *Submit turn*; every official piece (unicorn, dragon, princess, brawn, common king and royal queen) and 44\n  official start positions, *Small* (5 × 5) by default. Boards are certain and pieces are quantum: ghosts, twins and\n  links on every board, the past included. A turn that cannot be finished ends the game as checkmate or stalemate, and a\n  move that would strand your own turn asks first.\n- **Nineteen more chess variants**, grouped as in the app:\n  - *Other dimensions*: 3D chess (Raumschach), Tri-Dimensional chess with movable attack boards and 4D chess.\n  - *Hidden information*: Kriegspiel and Fog of war.\n  - *Different rules*: Chess960, Atomic, Crazyhouse, Bughouse, Antichess, King of the Hill, Three-check and Horde.\n  - *Different boards and more players*: Hexagonal chess, Four-player chess and Capablanca chess.\n  - *Regional relatives*: Shogi, Xiangqi and Makruk.\n- **The quantum rules on every board**: split, merge, Measure and ordinary moves; \"land = roll, pass = link\", drops\n  included; kings, pawns and the pieces a variant names always solid; castling and en passant only when they are\n  certain; a roll whenever the game would end in some possibilities but not in others; a budget of 8 arrangements per\n  side.\n- **The classic end rules** in the two-player variants with a king and one move per turn: capture the king instead of\n  check, \"your king cannot escape\", and the bare-kings and 50-move draws, which wait while a king can be captured for\n  certain; a variant with its own goal keeps it.\n- **Computer player** for every variant with three levels (Easy, Normal and Hard), running in your browser and keeping\n  the board responsive while it thinks. It plays the quantum moves too: splits that fork, dodge or block, merges that\n  capture and measurements that settle a danger. In the hidden-information variants it sees only what its own side\n  may see.\n- **Pass & play** for two players, or four in Bughouse and Four-player chess, on one device; against the computer you\n  take one seat and the computer plays all the others. In Kriegspiel and Fog of war each player sees only their own\n  view: a hand-over screen covers the board between turns, and the whole board is revealed when the game ends.\n- **Variant screens**: *Chess variants* in the navigation and on the home page, with the catalogue by category and\n  your games on this device; a New game dialog for the opponent, level, side and the variant's options; a game screen\n  for any board shape with the variant's rules next to the shared quantum rules, pieces in hand, the odds of every roll\n  before you confirm, a numbered move list, and undo that never rolls a result again.\n- **Phones and tablets**: large boards zoom with the buttons, a pinch or Ctrl + wheel and pan with a finger; 4D chess,\n  Bughouse and 5D chess open on the boards you play, and the move controls stay at the bottom of the screen.\n- **Languages**: the variants are in English, Dutch, German and French, like the rest of the app."}},"signatureDigest":"sha512"},{"version":"1.0.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v1.0.3/quantumchess-v1.0.3.tar.gz","created":"2026-09-25T11:32:13.072907Z","licenses":["agpl"],"lastModified":"2026-09-25T11:32:13.124090Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"mqw3Dc7HM2JblvQdoRr53dFjlN1tmZAWvMM5KX5t1ZdmRBgBC6ljwP8Tk9S50xLOWb5AM/d0b5H+vAU9OIxzhZPdulYeRIVK0aRTqQU33vfGM+8cDU5pl0mOcTUv7cqgVrAdmxCyoR/qTdWNbEItCOjZjbvecSE6JExT7NH0dW/bJIuLSRxmkVfOfO8bypZWEKsY4n78Yuf9n8mdkQ1zlJ1SdEFYHMwGOhPXr1vsaxm5BkOUCS3487FHGJdn0Qd9bUne5UTan74amsYsgrenKxoKtA52a1nJeZ4heotqdt4JTF2VpXfgSJASGR5TaV3UZm+GaHDqAByqUiXLPFSpw1J03NE920is6/pe2XIhKPHLj0VsqEHjbtLo76lyR3dbu/RTgRN+g1opAw04Ojlrpz8oMbCb2122F2mFNWqBMA/++fZFgNnE8Lg18vP6aQ/JMDBy+zEh8scCIHol8ZVUCeQuI3szkQVgyu4UjLq5P4JHJPYynDttX1WJTN1MbQ07AUyvZYEi7khDfLSa4FHA07o/t/XS3qlNkNZutN01CySXxqLB5uLqqc+B/+vKzh/4k7Gr+qcysPUOWhNWauMw97O1HvqwBs4zHwDKsPJaUxNoDwtQegRYX+Xxk42wiXZ2w1vi32PPPRt4cInrb83ckB+xa+Ieug4s7BJyFMPloI0=","translations":{"en":{"changelog":"### Changed\n\n- The App Store page is in English only. The app itself is still in English, Dutch, German and French."}},"signatureDigest":"sha512"},{"version":"1.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v1.0.2/quantumchess-v1.0.2.tar.gz","created":"2026-09-25T10:29:59.371375Z","licenses":["agpl"],"lastModified":"2026-09-25T10:29:59.431777Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"L5M0jFZAsU8PuhvdJFsjtJZuLnVOxUPpctoohM8ZDrnChXS+ja4iNDps9j/U+uR8mUxEoPloV1gfCSIx0qivRtUeN6IMfAx6JxoZQEvqCXCX2qxzpZMO5v7TD/BejNmaSLUkeQB3BIjlg1NSsfxcKLg7+NnmySy+OYs3Q2rNqETbt1LgevCP8wvMWebUe0JqkmAe1Uq9vj4KgHWltVnOaMIOjMSpy1gM8j4eV1c+I+5BC5DuNUP/Dl1PAfIdQAV7+IYkkmxEJEnGcS7cxHlZROMiw+bK9ADXwwSxIYLVQAvIVQNrgU71ZUheZv84av0898S98dTPeu3JJOyhCcRMqM2+Ugp9N54PS9ATinKMZySE725tg10XAIgB0Z3cJ4yvqlIvYTEEXx1MicCvALEx6pyHrdzgsksdRe1Ro+JXJVcrYmbD/wVz3nHyTux7ANkL0Ah93fWE+qm20RWRBix7q+dl+jLywcaao2MpiZ1M7ek3H7JMSHZHDeCF6j1qyrLsYvL3PFdMB2Wfq9hDsmuU/05GTFgaGh1fk/v6QQPxIdqYj192h2xebG0dSwW/7XkMelVp2VziGiMGPdh6RO1fsQxtrK4FuUi8kc9RNxe9eA8tdKyZdhf7DPYUXcIe3T9iySAqT3ETByey1+mQAfnzv2oD/VQrsG8mkWOmrJOuBAo=","translations":{"en":{"changelog":"Maintenance release."}},"signatureDigest":"sha512"},{"version":"1.0.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v1.0.1/quantumchess-v1.0.1.tar.gz","created":"2026-09-25T07:08:06.381340Z","licenses":["agpl"],"lastModified":"2026-09-25T07:08:06.443741Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"u3JDrecKBxeicrVc/h2CHTRl9PSkwQe3ZlWRV0uFvG00CJ5vi8jDQVslRL7Juswcf92VwiU+CSTvdB/RKAd/KZUF/MYISOoSyfPcdIw1tWq9zjTbV6thT+nZ8bTK6sf+E7LJWu9pYCnWh5RdqPw8YQT/e0V1F42V/yGRdLYqil2USPLC0SMYNy57PhZotV1Dcx5SOOW60C4abujgzHMBWW12gLSNYLj6/3UekIiOjDz+CYGaXn/noCeUSpofbANpDzKIfv5Ei8iSLlBd6Aq0/QXfUSW3E9G5ePRrRyYhH2WMVtc7EhBjEv9O+rFSEqE8AWkUiDR/8CAwTZ7lw+Qj4usmxvDPJsDtEdF+fmuZiy1uwFZ38lWTEvxguLEUgPp1z8f1PEMh/RStEDv2OWlJZq+pRkUSw4VZ/J9mUZ2Xw17RUodwTgFlvAUNz5lkU/Ta3pJeLWKbH94maC5NZEXblzqwWVt0zHEDFp4aaJeMICseluJE6E8uxifbY0Ddyzd+yN6FsMiJoqsZAGD2OfgzsUT9Z078fMeq/E/74fHxtsPLC1A/QcGZfSGTgujkXYEK6HZOlimCCKEie5giTwFIMWQF6Yn6PIlXDlNEG1VYU0kYIYcnbXEF6BNxQescUuzK0uaZ2eRIywoyEtEXBF0EKKF2eHnFVAMjNHVnieqGVYs=","translations":{"en":{"changelog":"Maintenance release."}},"signatureDigest":"sha512"},{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":64,"download":"https://github.com/Bee-Flow/Quantum_Chess/releases/download/v1.0.0/quantumchess-v1.0.0.tar.gz","created":"2026-09-25T06:55:45.335877Z","licenses":["agpl"],"lastModified":"2026-09-25T06:55:45.408878Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"gsh57GfVIkYP/VpKs2cLRg5v/3Po+rnt8WrUsY/sz9r94eND6YHrJf5JExRYp0URp9183hf2HNkigF7Zl6h0A24NSPaVE/p+E9n3qhkvEsR8qJUErO8boOBE+NmjVwgRBsQurynJJ0iqy8HiunPNMuyw0kc9f1v7tNAzgrZx7c0xxGyMCRRPIGBMo3y19KlZo7/6YSiRs0SOjVztK07ewxPwywf+4h/7ACba9vcQOFSPCy4GJW85c8ZyAPR/JrOb7muu8C1/oNipWbEorfth+JCnMmpFRyYUKX5A3l7bi3E/C7kDGxQ4qopaP7XiKEEGBxmUm378XmA0WRvqfyOUapZD38bDad6LcZRUBwbOjhvA+tO2B4EeEr7ZKDbUq+Qo4bbz/l5qcF/7xP5dAEckzAkwO1DR/iVHnwl8mssSbbIHnWO8mvlyvS0IVHPhr85R3b5MGVRAqd8rHpvbX1fYy1/+xkzB5DS5a2GIhPkKYLu5PTy5Hz2eJM66Ax1P/OcLyDYLYGdycYThX0LJXRh7PXmn4ERDdygw/42Ipj4XWNaM0oI0KiJ02N/C66TEIjvM0DsyPL/ulMLtnhcVBsFOZaNkULbxxtfSGumOKLWsVF0jCMND3jHdl5MKfP4xBg4obRV5wpJ/DbP+BEZzZRKSn/vA/YPNnMnyxYPr/yWZj8U=","translations":{"en":{"changelog":"The first release: chess with superposition, measurement and entanglement, inside Nextcloud.\n\n### Added\n\n- **Rules version 1**: split, merge, Measure and ordinary moves; \"land = roll, pass = link\"; kings and pawns always\n  solid; a budget of 8 arrangements per side; capture the king to win, including the \"king cannot escape\" rule;\n  draws by agreement, bare kings, threefold repetition, the 50-move rule, no legal move and the move limit.\n  Identical JavaScript and PHP rules engines, checked against shared test fixtures.\n- **Game screen**: ghosts with exact percentages, part threads and link glyphs, the what-if view, the king-danger\n  ring and the king safety net, budget pips and the possibilities count, a move preview with the odds of every\n  result, the roll animation with a plain-language explanation, a move list and roll log; click, drag and keyboard\n  input; three board themes (Classic, Blue, Quantum), the cburnett pieces and synthesised sound.\n- **Online correspondence games** with other users: invitations and open challenges, 1, 3 or 7 days per move, draw\n  offers, resignation, abort, rematch, chat with quick phrases and mute, Elo ratings with a provisional period and an\n  opt-in leaderboard, recent games on the home page.\n- **Fair online play**: rolls drawn by the server when a move is applied and recorded in a hash chain, a check in\n  every client with a warning when history was altered, and the coach switched off in your own running online games.\n- **Computer player** with five levels, from Wobbles to The Observer, running in the browser.\n- **AI opponents** with four personalities (Professor Qubit, Captain Collapse, Madame Superposa, Q-7) through\n  Nextcloud AI (TaskProcessing), an organisation provider or a personal API key (OpenAI-compatible services and\n  Anthropic), with the built-in computer player as a fallback.\n- **Pass & play** on one device, with player names and optional automatic board flipping.\n- **Trainer**: eleven interactive lessons and eleven puzzles, all verified against the real rules engine by the test\n  suite.\n- **Coach and review**: evaluation bar, hints, threat warnings and move-quality badges; an AI coach for questions\n  about the position; a post-game review with an evaluation graph and key moments.\n- **Nextcloud integration**: notifications with Accept, Decline and Rematch actions for the web, mobile and desktop\n  clients; a dashboard widget; navigation and tab-title counters; light, dark and high-contrast themes.\n- **Settings**: in-app settings for the board, quantum display, moves, animation, sound and coach; personal settings\n  for online play, notifications and AI; admin settings for multiplayer, the leaderboard, AI sources, local AI\n  servers and limits.\n- **Privacy and security**: encrypted API keys that never reach the browser, protection against requests to internal\n  addresses, rate limits, a first-use notice before any AI request, and clean-up when an account is deleted.\n- **Languages**: English, Dutch, German and French.\n\n[Unreleased]: https://github.com/bee-flow/quantum_chess/compare/v1.0.0...HEAD\n[1.0.0]: https://github.com/bee-flow/quantum_chess/releases/tag/v1.0.0"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wMS1nYW1lLWdob3N0cy5wbmc=","smallThumbnail":"https://raw.githubusercontent.com/bee-flow/quantum_chess/main/screenshots/01-game-ghosts-small.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wMi1yb2xsLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wMy1sb2JieS1kYXNoYm9hcmQucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wNC10cmFpbmVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wNS1haS1vcHBvbmVudC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wNi1mb3VyLXBsYXllci5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wNy1waG9uZS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wOC12YXJpYW50cy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8wOS1tdWx0aXZlcnNlLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2JlZS1mbG93L3F1YW50dW1fY2hlc3MvbWFpbi9zY3JlZW5zaG90cy8xMC1iZWUtZmxvdy5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Quantum Chess","summary":"Chess with superposition, measurement and entanglement: play colleagues, the computer or an AI, and 21 variants up to 5D","description":"**Quantum Chess** is chess in which a piece can stand on two squares at once, until something asks where it really is. It lives inside your Nextcloud: challenge colleagues and family with the notifications, avatars and dashboard you already use. Twenty-one chess variants, from Bee Flow Chess and 5D chess with multiverse time travel to shogi and xiangqi, bring the same quantum rules to other boards.\n\n### How it plays\n- Pieces move as in chess. There is no check: capture the enemy king to win, or leave it no escape.\n- **Split** a knight, bishop, rook or queen onto two empty squares and it becomes a ghost with exact odds. **Merge** the parts back together; merging onto an enemy piece captures it, for certain when every part surely arrives.\n- **Land = roll, pass = link.** Landing on a square that might hold a piece, every pawn move and every king step is settled by a fair roll: Captured, Moved or Missed. Sliding past a maybe-occupied square rolls nothing, but links the pieces.\n- **Measure** one of your own ghosts to find out where it really is.\n- Kings and pawns are always solid. Every roll shows its odds before you move and explains itself afterwards.\n\n### Play\n- 👥 **Online** correspondence games with anyone on your Nextcloud: invitations and open challenges, 1, 3 or 7 days per move, draw offers, rematches, chat with quick phrases, Elo ratings and an opt-in leaderboard\n- 🤖 **Computer**: the built-in engine with five levels, from Wobbles to The Observer, running in your browser\n- ✨ **AI opponents** with a personality, powered by Nextcloud Assistant, your organisation's provider or your own API key (OpenAI-compatible services such as OpenAI, Mistral, OpenRouter, Groq, Gemini, Ollama or LocalAI, and Anthropic)\n- 🪑 **Pass & play** on one device\n\n### Chess variants\n- **Multiverse chess (5D)**, the quantum version of 5D Chess With Multiverse Time Travel: timelines side by side, pieces that travel back in time and to other timelines, turns with a move on every board that must move, and ghosts across the whole multiverse, past boards included; every official piece and 44 official start positions, starting on the quick 5 × 5 board\n- **Bee Flow Chess**, named after Bee-Flow, the private AI workspace: protect your Queen Bee, with shuffled back ranks, enemy pieces hidden until they move, and a privacy shield around the queen\n- Nineteen more variants: 3D chess, Tri-Dimensional chess and 4D chess; Kriegspiel and Fog of war; Chess960, Atomic, Crazyhouse, Bughouse, Antichess, King of the Hill, Three-check and Horde; Hexagonal, Four-player and Capablanca chess; Shogi, Xiangqi and Makruk\n- Every variant keeps the quantum rules (split, merge, measure, land = roll, pass = link) and, where they fit, the classic end rules: capture the king, or leave it no escape\n- Play the built-in computer (Easy, Normal or Hard) or pass & play for two or four players, with a hand-over screen for the hidden-information variants\n- Made for phones too: large boards zoom with a pinch and pan with a finger\n- Played on your own device: online play and ratings stay with classic Quantum Chess\n\n### Learn\n- Eleven short interactive lessons: the essentials in about ten minutes\n- Eleven machine-verified puzzles\n- A coach with an evaluation bar, hints, threat warnings and move-quality badges, plus an AI coach you can ask about the position\n- Post-game review with an evaluation graph and the key moments of the game\n\n### Native and fair\n- Built with Nextcloud's own components: light, dark and high-contrast themes, keyboard and screen-reader support, phone, tablet and desktop layouts\n- Notifications with actions in the web, mobile and desktop clients, and a dashboard widget\n- Online rolls are drawn by the server at the moment a move is applied and chained together, so later changes to moves you have seen show up; the coach stays off in your running online games\n- API keys are stored encrypted on your server and never reach the browser. Nothing is sent anywhere except to the AI provider you choose.\n- In English, Dutch, German and French"}},"isFeatured":false,"authors":[{"name":"BeeFlow","mail":"","homepage":"https://beeflow.nl"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBzCCAu8CAhQqMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTI0MTE0NDE3WhcNMzYxMjMwMTE0NDE3WjAXMRUwEwYD\nVQQDDAxxdWFudHVtY2hlc3MwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQDOfr1UHKiSziwkMLMbLGUS+5lNIIbOZLK8/mmcsKIsfQHi//pW4PkUFfRmGWAx\nMLe199IVFd+/HNpCdAz3LjWbfxWwRE9Fg1sOiLgYsiWdBnPhDGyfI6ith8urxMcP\nDDjS+qOrvP3/4emMJVwFc00Ru0rMGf82MgKlf8ty7qblZWeg/n/HC5D+ftHPxXh4\nSsJy9aRSkaQF1NNQiU+F4Yr7AqjRX6nOCeqs/WmPitVCC5ZsleA83akmXiG0ku8y\nBckI35DcEU/aprUOspLyjU1e3yiYqp8hOYfRpj0L3oAzsXwPqRPlbT7PN2rz9iGy\nGKF3MJcWAVbweKDabnNqmqgWTAuFIg82vyWbnaLozyqhyiWrAk3hI1cZ1FsKk1N0\nB481tW9EAwxMu/FuYoPEoidIPDR3ng26kWrHBmePiXeemkm6DJGSSLH+3wjOvdKw\nKd3WIYnaNhV3vdUtGZQZpc8U7gzMr3JnLw+R9Jc0GEWCLzNMGBL92bLqQsmgsDR1\nWt6hPuXOG8CzhqqJOxBOKqbDM43UGLLtrBke6MWKiQAtuUZgoJ//IZYR+B5hbHJ4\nkkvciD2QUVTNPibNQlmS0i1gFKSHxU8P6+KNI55SJRuVKGyfnYw3Ox1lKB3auSDG\nGKGxUQLRd5cCGh0Z6DmfsbYUC2MUZNkEN+WX6KIOQ3J2wwIDAQABMA0GCSqGSIb3\nDQEBCwUAA4IBAQBvPRtoCtAH7YvrG3S29Ks9gygka7VB6ZsRC9wBksUiho6JeWOV\nDD4bQYaSHXANWYGjcAKTfCvixiz5g1Sron/72Vc7TWzpKw/lPe2TM+1J/Ts2Pri5\noDrK0IvSXqK0fm+pxuBnXZcPQlLVTLA65Vs4BkE6O2V6DnaoRzkkG69YX9zBjTvK\nG/P9dsWgV1l3VfWzy8Dn3yBYGCA8jIJKbX7jjIubqkEK/Au3evZL1X40t/MyDdIK\nsFvqJbsc+RQdRV+y5etmOebvep9bd/X05ShwIpvcrtBHVnzvjj0soQ/O3YU32l5Q\n7dD90VNxDrnpWkk2Kso35XsdSXAC2NVEZSRH\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"contractmanager","categories":["office","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/cpcMomentum/contractmanager/issues","website":"","created":"2026-02-04T10:51:10.358320Z","lastModified":"2026-10-15T09:13:39.206803Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/contractmanager/releases/download/v1.9.0/contractmanager-v1.9.0.tar.gz","created":"2026-10-02T21:53:23.690020Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-02T21:53:23.736324Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"ARx4nyzDcYQ5ahdghvDtcllG55WZZDSkFLcTx7oy6UgCq2YD4zN5uXpIchCX4R/vCSWrDbsQNGFknldIhJLn9wQ9lr4vs6l9z3Z8nw94cbraB7oP1EBZJYaWcBjeOfgveclDQ3SZ2B15WxEkZcKwZeHjXK4Du9OOrcBDQ/uD82WE3iE/0RyvRCJqqCvsjqaIpboFJPxNo2dKDyGu072a5TmfAPIacxvdGtyfGn9PTT55NzLK/GlPFuL3HjCEdmlN7bTM//9q8G9u2NBS44aGiXKXH6nZk+ka8/ZXtvE1C8V+hi9a4G9UWq0B7NvTYaIIpHpIbAbLGJuRe/1yUozTnA==","translations":{"en":{"changelog":"### Added\n- **Menü „Neuerungen“**: Unten in der Seitenleiste öffnet ein dauerhafter Eintrag das „Was ist neu?“-Fenster mit allen bisherigen Neuerungen, nach Version gruppiert. Das automatische Fenster nach einem Update bleibt unverändert; Nachlesen markiert nichts als gesehen (#427)\n- **Feste Uhrzeit für das automatische Backup**: In den Backup-Einstellungen lässt sich zusätzlich zum Intervall eine volle Stunde wählen (00 bis 23 Uhr, in der eigenen Zeitzone). Die Sicherung läuft dann täglich, wöchentlich oder monatlich zu dieser Uhrzeit und wandert nicht mehr mit dem Zeitpunkt der letzten Sicherung mit, auch nicht über die Zeitumstellung. Ohne Uhrzeit bleibt alles wie bisher (#399)\n\n### Changed\n- **Papierkorb sichert Löschungen durch andere ab**: VertragsWerk merkt sich jetzt, wer einen Vertrag in den Papierkorb gelegt hat, und zeigt es dort als „Gelöscht von\" an. Legt jemand einen fremden Vertrag in den Papierkorb, bekommt der Eigentümer (Zuständiger, sonst Ersteller) eine Nextcloud-Benachrichtigung; sie verschwindet von selbst, sobald der Vertrag wiederhergestellt oder endgültig gelöscht ist. Wiederherstellen darf jetzt, wer den Vertrag auch hätte löschen dürfen, dazu Ersteller und Zuständiger; der Papierkorb zeigt jedem genau diese Verträge. Endgültig nach 30 Tagen gelöscht werden nur noch Verträge, die ihr Eigentümer selbst gelöscht hat. Von anderen gelöschte Verträge bleiben, bis jemand sie wiederherstellt oder ein Administrator sie endgültig löscht (#438)\n- **Hinweis zum Update:** Verträge, die schon vor diesem Update im Papierkorb lagen, werden nicht mehr automatisch gelöscht, weil nicht bekannt ist, wer sie gelöscht hat. Ein Administrator kann sie über „Papierkorb leeren\" entfernen (#438)\n- Wartung: nc-app-tooling auf v1.17.0; die Prüfung der `whatsnew.json` läuft jetzt zentral in der CI (#431). Abhängigkeiten aktualisiert (`@nextcloud/vue` 9.13.1, axios 1.20.0, dompurify 3.4.16, sass)\n\n### Fixed\n- **Zugriff nur mit Rolle**: Verträge, Archiv, Papierkorb, Vertragspartner und Kategorien liefert VertragsWerk nur noch an Konten mit einer Rolle (Administrator, Editor oder Betrachter). Bisher erhielt jedes Konto, für das die App freigeschaltet ist, auch ohne Rolle alle nicht-privaten Verträge. Das KI-Auslesen von PDFs setzt jetzt Bearbeitungsrechte voraus. Wer keine Rolle hat, sieht statt einer leeren App den Hinweis, sich an die Nextcloud-Administration zu wenden\n- Der App-Name und die Version, die VertragsWerk an die Nextcloud-Oberflächenbibliothek meldet, stammen jetzt aus `package.json` und `appinfo/info.xml` statt aus festen Werten (bisher „CONTRACTMANAGER“ und „0.5.4“). Heute ohne sichtbare Wirkung, verhindert falsche Angaben, sobald ein Einstellungsdialog dazukommt (#428)"}},"signatureDigest":"sha512"},{"version":"1.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/contractmanager/releases/download/v1.8.0/contractmanager-v1.8.0.tar.gz","created":"2026-09-25T20:37:35.649160Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-25T20:37:35.716452Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"YDUY8iWFn3vw4auzdQu1xYT9KiG78DcVoSdUEpvLzc9FcoFF+WgkGp0q/xI+AJilbkC7pPq5QZwOiaRiJ1KsnMLNNzXLtMmQw0+LGC439SnE0O3KA2+ib9urulTAgHHKqr3GYCTni9W/CSwwr8qqfLvmfQwvm6yldVqtnwIzuSrvYCa9Xj1/sE5qpRvau7HpROpdudD8vVIUXqYXDEhBxXn0Hq0giVptPfpjertFJ9B0Yn2wGNXFoj4OoG0lGcEtXeiATNqWELR27Argsnjp9XMSkC6JsDw/r0ipcTpDdwZr8jFmGtm7UCl7nSY9fL7mS9k4XOTjan6Pa8q3wWVY6w==","translations":{"en":{"changelog":"### Added\n- **„Was ist neu?\"-Fenster**: Nach einem Update zeigt VertragsWerk einmalig, was sich geändert hat — einmal je Person und Version, wegklickbar per Knopf, X oder Escape. Die Inhalte liegen als Datei im App-Paket, es wird nichts nachgeladen. Bei einer Neuinstallation bleibt das Fenster aus, niemand wird mit einer Änderungsliste begrüßt. Fällt etwas aus, bleibt es ebenfalls aus und blockiert die App nie (#415)\n\n### Changed\n- Mindestversion auf **Nextcloud 33** angehoben (`min-version`; `max-version` bleibt 35). Ohne `<database>`-Deklaration begrenzte NC bei min-version 32 Bezeichnernamen auf die scharfen Oracle-11-Grenzen (30/27/22 Zeichen); seit NC 33 gilt stattdessen eine einheitliche Grenze von 63 Zeichen (nextcloud/server#51593), zudem korrigiert NC 33 die NOT-NULL-Boolean-Behandlung selbst. Oracle bleibt installierbar (kein `<database>`-Ausschluss). Nutzerinnen und Nutzer auf NC 32 erhalten kein Update mehr; die Produktivinstanzen laufen auf NC 34 (nc-app-tooling#15)"}},"signatureDigest":"sha512"},{"version":"1.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/contractmanager/releases/download/v1.7.1/contractmanager-v1.7.1.tar.gz","created":"2026-09-21T20:48:45.326104Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T20:48:45.389489Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"RLsLvXO/iHQ5MVX9xKqkSC80+OI86nO8MqK9HLkDRqB5o/gaoVOvqZcyj3LNmZ7hx5Mgx4aOVBOqhLstmhT/iRlCA5GJUVc7KZ4BKBLRcRZxdRavH2X3Y/6Bb1bPrLBkikYX4UwjJHYdnJJDJqez211aNDQO5M2pdJdSCtnDzXFB1zHfcpe17JpQe4ZViNASHNL48opi6gcpntrA+iZhxsLVMJQYUzSAa4LsOj5sJREfaWL+D4ez026LG/WnaaN6LEbGtArbOSqHRqQLIHJwjLigQrK1VttmHgHu97FMwUHzb3lKT7DQeDfKffMLFT8s5i3wKbVnKRG27rwAi2WBkw==","translations":{"en":{"changelog":"### Changed\n- VertragsWerk ist jetzt für Nextcloud 35 freigegeben (unterstützt werden NC 32 bis 35). Die Unit-Suite läuft grün gegen die OCP-Schnittstellen von NC 35. Keine der von der App genutzten APIs wurde entfernt oder geändert. Die PHP-Untergrenze der App bleibt bei 8.2. Nextcloud 35 selbst verlangt mindestens PHP 8.3; für Nextcloud 32 bis 34 ändert sich nichts (#414)\n\n### Fixed\n- Wartung: Der wöchentliche Kompatibilitäts-Wächter und die Unit-Test-Läufe scheiterten an einem neuen Nextcloud-Major, sobald dieses die PHP-Untergrenze anhob. Das geschah noch bevor ein einziger Test lief, gemeldet wurde es aber fälschlich als „API-Änderung\". Die Test-Läufe wählen die geprüften Nextcloud-Versionen jetzt passend zur jeweiligen PHP-Version aus, und der Wächter benennt beide Fehlerursachen getrennt. Zusätzlich wird gegen PHP 8.5 getestet (#414)"}},"signatureDigest":"sha512"},{"version":"1.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/cpcMomentum/contractmanager/releases/download/v1.10.0/contractmanager-v1.10.0.tar.gz","created":"2026-10-15T09:13:39.200448Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-15T09:13:39.263294Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=33 <=35","signature":"CVifdO5wtbmLUJ6f8rFyZceCHSECWVm/GJJeuoT5oBgEwUzsHXDkerg2tift6LxELdIXwDmkdBXiCfuO3TMOYGWURLjCnZr+XcshVRE71D2ldtT34M7ZcXPsj3/1nkI48zxyXVNcF412r2WtkOjJbWwFG2o7+heDxs/HvUvZ9JZYhn4x8aPfY1k1GGwS4OXWzny4dWSuOERKqz4zsBJuLy4JvUURkfnI9IuNbCpk8NQuwZFKZNhsS+DEPmrygLURl6PuPURBb7WLLI9hzeL/S84PW6UEf4u67F6+89B/49fZIChnfLJVqfih+ODorwNiFnZMpaE1LgF5X/gOHZBG7g==","translations":{"en":{"changelog":"### Added\n- **Backup einlesen**: Sicherungsdateien von VertragsWerk (Auto-Backup, `occ contractmanager:export`, Nextcloud-Kontoumzug) lassen sich wieder einlesen, auch auf einer anderen Nextcloud. In den Einstellungen unter Auto-Backup wählt man die Datei aus den eigenen Dateien, sieht eine Vorschau mit den Zahlen und liest dann ein; nur für Administratoren und Editoren. Eigene Verträge mit gleichem Namen, Anbieter und Beginn werden übersprungen, sodass wiederholtes Einlesen nichts verdoppelt. Fehlende Kategorien werden angelegt, Verweise auf Ordner und Dokumente bleiben erhalten; die Vorschau zählt, welche davon hier nicht gefunden werden. Dazu der Befehl `occ contractmanager:import --user --file [--dry-run]` (#446)\n- **Zahlweise „Wöchentlich“**: Verträge können wöchentlich bezahlt werden. Die Kachel „Monatliche Kosten“ rechnet den Wochenbetrag mit 52/12 (rund 4,33) auf den Monat um (#445)\n\n### Changed\n- Der Import beim Nextcloud-Kontoumzug (user_migration) nutzt dieselbe Logik wie „Backup einlesen“ und überspringt damit ebenfalls schon vorhandene Verträge. Eine Sicherung mit unbekanntem Format wird abgelehnt statt teilweise eingelesen (#446)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL2NvbnRyYWN0bWFuYWdlci9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtY29udHJhY3QtbGlzdC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL2NvbnRyYWN0bWFuYWdlci9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtY29udHJhY3QtZmlsdGVyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL2NvbnRyYWN0bWFuYWdlci9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3QtY29udHJhY3QtZm9ybS5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NwY01vbWVudHVtL2NvbnRyYWN0bWFuYWdlci9tYWluL3NjcmVlbnNob3RzL3NjcmVlbnNob3Qtc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"VertragsWerk","summary":"Vertragsverwaltung mit Kündigungserinnerungen","description":"# VertragsWerk\n\nVerwalten Sie Ihre Verträge zentral in Nextcloud:\n\n- **Vertragsübersicht** mit allen wichtigen Daten\n- **Automatische Erinnerungen** vor Kündigungsfristen\n- **Kategorien** zur Organisation\n- **Archiv** für beendete Verträge\n- **Dateianhänge** aus Nextcloud Files\n\nBehalten Sie den Überblick über Laufzeiten, Kosten und Kündigungsfristen."}},"isFeatured":false,"authors":[{"name":"Axel Deffner","mail":"axel.deffner@cpcmomentum.com","homepage":"https://github.com/cpcMomentum"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDCjCCAfICAhLsMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwMjAyMTU0MTQ4WhcNMzYwNTEwMTU0MTQ4WjAaMRgwFgYD\nVQQDDA9jb250cmFjdG1hbmFnZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\nAoIBAQC5R5Qp4Wm5Q2dDNSyN33MAIianNamIQCzLP9TqKbvrHUvhIb5XojZizo6H\n/3jZTpRau83rYewLsJiEDgyuKdLiFYiuas5bdU6lie/X2V21BeowwqlOGoVaiXwE\nvDmarjfhHAMIbW/H8IyT1PEAvSLZLl8vofGDibsovGacRfBlj/WhTQSVoFyc1N32\nivUM/rta10BLN1JurgXjN6s33uqW19bTms+y9zO3C1Wpq/KhwgVNIcoRdio4uA0e\nSAnQQHE1HUieBDydwP52fFnlqf4l1OjP/WLeNrwFNWdCBqZIEZsynASFHae/cyOs\nqebHseLaDRkySMmHLv2hsH//dm6rAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAD08\nvS9I3TjEfSfcF45IdanGUsrSMm7rCdQpdVaY7xyB8w6BymWgv9q0I4rATyCYgNIU\nN8TNGNNXHutvlOJ8ACdTxDs0bitSM0VY0lNqCVInRIT3W8UfoOmvpVG6Xc5eEi1Z\nO1JLVd/lH6n86cHnkcMeSH265JwdGfKFF86g94YfDJ+uU4OLwaAnmeJaWTCHn3Nm\nFXWrSzvpPU7y47yCAJok+1Na0pXx5Y6BxId95ZBSBKPXmFpANvU58v52Ed+6npl5\nc6wfDUcb1088N4NBP8j76ci5BB358vTSwjAV5moyFUZO63vPRRcfP1Rq03LUfWyi\ndg1AcSTaDHL7vhQm19M=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"ai_hub","categories":["integration","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/AI-Hub/issues","website":"https://github.com/ktec-nc-apps/AI-Hub","created":"2026-10-07T22:56:41.641274Z","lastModified":"2026-10-19T09:41:50.209201Z","releases":[{"version":"0.1.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/AI-Hub/releases/download/v0.1.1/ai_hub-0.1.1.tar.gz","created":"2026-10-19T09:41:50.192973Z","licenses":["agpl"],"lastModified":"2026-10-19T09:41:50.244678Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"V246pfFPJh5aZ4y6mMeNjCFdQRqvPJnZJcIWc+WLzCLRc3dJLysAG4uOqZc8GK5I0MTuJiRQipMWh2YfdSuqnijuFUe7tl4Or26PA3mVzYm+eKlZQXLVPvjCWTnLGejxH3ML/havAayzM3TFWkXxb59w9Hyxzlk3J24Whgrq3jUB0mBL8WXWLnRGh5TXRJco7IaDBFU5Tyb+Z4XNfkihj1xsVq59mc+ykDW7BqGOIzLH2AQthb9EDbjXRUE3ZbPSbjvqth1fln8VInmmj9un7I9mS9SCWtfp2BudiFPAPd1MTjMX0KmH/MwMixw+nzqJjjLg5+RmTnAVptuQXlRW9zLcQsezphs2+IZeNrImGGDyoPxIB6YSEufaLqaWkJcgkTVySFAGfkSeSPKKFvts/cKVKqy21p+4b36AfJZ37+QPFzPfaDiKS0Rieq8vcRVSgeP44HkX+EBXs8xBmmwgaN+gYkHJAUo38ZoqDMHlx7PjZmvKmwT+zzUTH9tx0MU3xgfRjGT3iba2DNHviXuLYGoTLi7KGUASaczYhEQ/8INBP1i4LRFAe2Bhsrqyh1SR+s/IK1oH2v6vuycPYqtKQ579XG5zjEIZbAjlg13Ufw+2TOMMxVqxN3/WXzxP76GIZL+Bhe67JoiXh8diEXQeUhFS/t36lDzHpujSeaeh7hs=","translations":{"en":{"changelog":"### Added\n- The administration settings in twenty-one languages: twelve more, Arabic, Czech, Persian, Hindi,\n  Indonesian, Polish, European Portuguese, Russian, Thai, Turkish, Ukrainian and Vietnamese.\n\n### Fixed\n- Translations corrected after a review: the Japanese labels (ready, what each app gets, comma), the\n  Arabic image count for zero, \"Home-Verzeichnis\" in German, one form of address in Spanish, and others."}},"signatureDigest":"sha512"},{"version":"0.1.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/AI-Hub/releases/download/v0.1.0/ai_hub-0.1.0.tar.gz","created":"2026-10-07T22:56:50.546560Z","licenses":["agpl"],"lastModified":"2026-10-07T22:58:57.209280Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=30 <=35","signature":"JHiaHPmt6z6xcyeefLWGiBVWgaiMU0ehDPl5ND/2cIFgYFUAsXlJdrZ8Hmm94Mtp9Cjz3VsyX/bKUCPVUErkHsqlv2vp/eDVNuusS9lsvUdGsfdLllSu+2XfnFHh/xulxI4Zg5LSH3aeTA8+MBeM9d6Rh8A6PpGPdYjijCWBpmUo2IV+Ql59MYawKeDEZhTGDjdob4ef5E8n4yK9zH8YWc0t72HNy2HiLeaJ7egqIMUHULL57IjbGN/KtUWtnmEe8bRGLT5MaQW7vlj8Q5+DoZQtHKv/iam9ajW6oPGe7Un+g5QTw5o/F1T9Ux2yWZu/6Plcysn18DJVnq/NQpvKgEwQxaBAyU8hFOrk3i4MuCt8ONgUOb6++UgAoTEb0MwJVV0A0ArqUsXD27CZXFhPUIuZxrH9zfBs3YAzIBqsv4IH1Y182o27qJhA9IQrvewiMEaO86XZD+QriJzmiF4AQAbNumpXfdQh2rSZXa9s5YxgkuP2K23MFrfwlrYybYNrO2xZgJWiprBTtA3y/33V1KLIrdGbfjUoFhVOUSg3ce5fdxfIgP+c4AHuYn5yrQ5U7+WzqTBBqTDmtuE7OhoicnCkyqJX0TjrI+x7Toxi9mcqhAhczCSxNj8gWXEzXjOMeCKS//I8OmZMBphLXv0Smi8tuXbCI5lFxDXbi8phtm8=","translations":{"en":{"changelog":"### Added\n- Saving a conversation (the owner, 2026-10-06): `/apps/ai_hub/conversation` reads a remembered\n  conversation back, `…/save` writes it to the person's Files as Markdown (`AI-Hub/<app>/<date> <time>\n  <first question>.md`, in their language and time zone, images as \"[n images]\"), `…/summary` has the\n  model sum it up once and saves that, `…/forget` drops it; from PHP `transcript()`, `saveTranscript()`,\n  `summarize()`. A scenario's optional `transcript` callable shapes how its turns read when saved.\n- Images with a question: an app may send up to 4 PNG, JPEG, GIF or WebP images (5 MB each) with a question, checked again on the server, and every engine passes them on — the Claude, Gemini and OpenAI-compatible APIs, and the Claude command line through a stream-json message. The Gemini command line takes none, and `status()` says so (`images`). A remembered conversation keeps a mark in place of the images, never the images themselves. / 質問に画像（PNG・JPEG・GIF・WebP、1 枚 5MB まで、4 枚まで）を付けられるようにした。サーバーでも確かめ、各エンジンに渡す（Claude・Gemini・OpenAI 互換の API、Claude のコマンドラインは stream-json で）。Gemini のコマンドラインは画像を受け取れず、`status()` の `images` で分かる。記録する会話には画像そのものでなく印だけを残す。\n- Per-app additional prompt: in the administration settings each connected app (and Nextcloud's Task Processing) can be given its own instructions, added to every question that app sends, after the app's own instructions. Text from documents and records still never counts as an instruction. / 管理者設定で、アプリごと（Nextcloud の Task Processing を含む）に追加プロンプトを書けるようにした。そのアプリが送るすべての質問に、アプリ自身の指示の後に加わる。文書やレコードの中の文は従来どおり指示として扱わない。\n\n### Changed\n- A remembered conversation lasts as long as the login it was held in (the owner, 2026-10-06): it is\n  kept under the login (Nextcloud's auth token of the browser session, or the app password), so a\n  new login starts a new conversation; logging out drops the conversations of that login; one unused\n  for twelve hours (was a day) is dropped. The records kept the old way were removed. A caller with\n  no login of its own is seeded from the history it sends when its record has lapsed. The answer\n  says `fresh` when it began afresh, so a page can clear the turns it still shows.\n- A scenario can carry the app's own rule on who may ask (`allow`), and AI-Hub checks it on every\n  way in; the OCS endpoint answers only the scenarios an app opened to it (`ocs`), so an app's\n  gate cannot be gone round by calling AI-Hub directly.\n- The Claude API is given room for long answers (16,384 output tokens, up from 4,096), and an\n  answer cut off at the limit is noted in the log.\n- The Gemini command line tool is given its prompt on stdin, so a long context no longer runs into\n  the kernel's argument limit.\n\n### Fixed\n- The Claude command line no longer leaves a file in its home for every question: it is run with\n  `--no-session-persistence` and with its auto memory off (`CLAUDE_CODE_DISABLE_AUTO_MEMORY`), and no\n  longer resumes sessions of its own (it is handed the stored transcript, as every engine is), so\n  `.claude/projects` under its home stops growing.\n- A remembered conversation is keyed by a hash of app, user and token: a user id holding `_`\n  could collide with another user's conversation.\n- When the Claude command line tool cannot resume its session, the dead session id is dropped\n  instead of being tried again (and failing again) on every later turn.\n- The per-session working folders of the command line tool are swept with their conversation.\n- Each message handed to the model is capped, as the context already was.\n\n- CalcBase, the spreadsheet of the Base series, is listed from the start among the apps that\n  connect, as the others of the series are.\n\n### Removed\n- The \"tools for administrators\" setting, which no request ever used; the tools setting that\n  remains applies to Nextcloud's own Task Processing and the connection test, and says so."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9BSS1IdWIvbWFpbi9zY3JlZW5zaG90cy8wMS1lbmdpbmUucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9BSS1IdWIvbWFpbi9zY3JlZW5zaG90cy8wMi1hcHBzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"AI-Hub","summary":"One AI gateway for every app in your Nextcloud: apps hand it a scenario and a question","description":"**AI-Hub** is one AI gateway for every app on your Nextcloud.\n\nAn app does not talk to a model. It registers a **scenario** — what the assistant is, what tools it may run and what shape its answers take — and then sends the user's words. AI-Hub chooses the engine, runs the conversation and the tools the scenario allows, checks the answer against the shape, and hands it back. The same scenario works whatever the administrator has connected: Claude, Gemini, an OpenAI-compatible service, or a command-line subscription on the server.\n\n### Three ways in\n- **From an app on the same server (PHP):** register a scenario, `ask()`, `result()`.\n- **Over HTTP (OCS):** `/ocs/v2.php/apps/ai_hub/api/v1/ask` and `…/result/{id}`.\n- **Through Nextcloud's Task Processing API:** AI-Hub is a provider for text-to-text and chat tasks, so Nextcloud Assistant and other apps written against the standard API can use the connected model.\n\n### Engines\nAnthropic Claude and Google Gemini through their own APIs; any OpenAI-compatible endpoint (OpenRouter, DeepSeek, Mistral, Groq, OpenAI, or Ollama / vLLM / LM Studio on your own server); or a Claude Code / Gemini CLI subscription installed on the server, so a flat-rate plan answers everyone.\n\n### One settings page for all apps\nThe engine, its key and the model (picked from the list the key can really use, with a connection test); who may ask, which apps may ask, questions per minute and answers in progress at once. Each app that connects can be given an AI and a model of its own.\n\n### Safety\nAn app reaches only its own scenarios and the tools it registered. Tools run with the rights of the person asking, through the app's own code. Web search, where allowed, runs on the provider's side. Keys are stored encrypted and never leave the server.\n\nTalk-Bot and EditBase from the same makers are moving their AI onto AI-Hub."}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"info@popup.jp","homepage":"https://github.com/ktec-nc-apps"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhRIMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTUyMjA4WhcNMzcwMTEyMTUyMjA4WjARMQ8wDQYD\nVQQDDAZhaV9odWIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDgCX0t\ncwuLLeA0Be8Xr24TUTgxA3oNnMiAT2Kl/cEiEqSRkfnzhHYQQjk83EXY+tfOZieO\nPhtkLORillgmYDgZcUZ+ftcglnBklshK23WWYx3d34cFBzpxYB13XdowblR2fc9/\nC4Cg4f3/f9vEQarQeIHJ0rlZ4X8sav94+HbiVsLl0oIzu/rjBXTPQq662Y9ydxQX\nvRK2wyEG1z4rhCWGnBUeSIKCDrIkbBWgX11FAJtku9L6Xxvb174lv5tMMI+AyEZx\n6zoOM0SjI9P8ScbGYDZV9KcGs4E3vW/ToanRiJ51mQM/Kb1aWtk6i5WUbmjYTsbn\n3xIM0O752hnCWNPQXs21iS4tZRcgyXG3HWUxXNbe2C8HVWBxw0UuiCxwjqdk07PJ\nptF5yrvVDOWW3ySBdJye/GYVs26E3rWqtAZ3RPevVplqQdX0o7tPttvZqj5u5Irr\n26GxecXnU1Rdtxgve4YfQ7uRvC3pCYJ4dGr23Trwau5K6cpQHXWUqySAs5g80fjv\nnMxbnTNml3/KF6BPU2FRPdwexq96YhMBG7cwJDuhUOIYt52wfZxxLpQ/9WKkXcgb\nCNtDiL3OaD5oy3iVOjgwxyGAZLvoxLxJ/wqmuDGicEFyXl54g5AvN8VYcb8fYNEf\ni0qs1fH6OB5lxOhuA6nxNLm0bZqiBoEHFMso+QIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQACrMqX+QZcuAqJrG/4z2HiRgEz4bsrTXa9gj5jr9PljexgytSO1UigwnPa\ntWtJLfrNw4v0TiL0Nyr38HQAsbuWf5qyEe1dacGizkkakz1pVCyy9S31lZTVYmv8\n8j8KP928omYr7EJgWj9scMLa7ih4DMWfQ269M1PrG9FDdT6yjLlh6DWLXGt3qQPr\n/L403TnHGhvZ32BDwJKRj6jLNSiCJ5wgpl/3Qsbby/tKy7n0X9kG7WuDSWrIXsnd\nrsvTl09aLy/Mh+kjUPfKyf+mXPbI5nFnzRswZ2b5EOtcBKan5MIQX/7X7GserLjI\nhqKYQ6hSdEzwv+vzE7WcbTzzdO+b\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"public_share_control","categories":["files"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/nicostoe/public_share_control/issues","website":"https://github.com/nicostoe/public_share_control","created":"2026-10-10T14:48:16.418484Z","lastModified":"2026-10-10T20:05:13.775530Z","releases":[{"version":"1.0.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/nicostoe/public_share_control/releases/download/v1.0.0/public_share_control-1.0.0.tar.gz","created":"2026-10-10T20:05:13.768798Z","licenses":["agpl"],"lastModified":"2026-10-10T20:05:13.821679Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"ZhGbN0obrgMyT8t8eZ+UuzIAy6MivF5vtN22x6KvInyEWOKy+chWYxicU8JDDng+x41DK6PZxcPiVgcsrRsoiwIt76iJGGlBtWtdgq/FBZA8xQ2Rbl4azbfSf98ApmgNhZX3RI2OCR90n43a10rw+yYip4JmIXdVl1Fsin1CHeR8S9VjowNRFV4KCiQi/1DSPA+k/PvYX4erDjHcvfNurtTfKz/6sTeHoLhzpWDPTuWJWcqrEHoud0AAjQv/T2JAQHhyQdRHkqXapFdMva8xR5kdTD/EeTJ0C2QWBSVnG/pq+lYI++GLXjfhQqQQs3KLd2q/NTM+l5ruRdASjnZynulugvWn1+/QC1EXRemiqahLqrLR+fWq+t3o6Pe2q5ZL/oH2u4H6A5S/3dunolUIcxmP+15n1Jk3e4UWGGHiAQj+n6oIASbjMdXlYix00q/VGjoO4Ib8kYxo905EL66XmyEKZEO/qw/HOGK2qclXIE+PuRwUFksa2IsM5RGRVcZ27gZHMUYsL05vPmBoaLtiOt6yM0+A/fJJv4xptTWChjNlab2SlLqt+UzQesC758cihF4FFsb96xIwFiD+An4YEzbFmAycCSecAmL4ZylL1JS6zMRljPaAcginz7zrQoVuOUx+3xmgIA65oUd+CKp/+jC9cJ9p0XNRH86CeYP7FpU=","translations":{"en":{"changelog":"First public release, for Nextcloud 34 and 35.\n\n### Added\n\n- Restrict the \"New\" menu per public folder link: the link's owner chooses\n  which entries visitors see, e.g. \"New folder\", text documents, whiteboards\n  or \"Add folder description\". Works for the entries of any app, also those\n  an app registers differently on public pages (e.g. OnlyOffice's), and for\n  visitors in any language. Uploading always stays available.\n- An \"Upload files\" button for visitors, right next to \"Public share\", on\n  every screen size. Existing files are handled with Nextcloud's own\n  conflict dialog. Upload-only links (file requests) keep Nextcloud's own\n  upload page.\n- Admin settings (Administration settings → Sharing): entries hidden by\n  default on new and untouched links, entries forbidden on all links, and a\n  switch for the \"Upload files\" button. The page lists every \"New\" menu\n  entry, including those other apps add, once an administrator has opened\n  the Files app."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25pY29zdG9lL3B1YmxpY19zaGFyZV9jb250cm9sL21haW4vc2NyZWVuc2hvdHMvcHVibGljLXBhZ2UucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25pY29zdG9lL3B1YmxpY19zaGFyZV9jb250cm9sL21haW4vc2NyZWVuc2hvdHMvc2hhcmluZy1zaWRlYmFyLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25pY29zdG9lL3B1YmxpY19zaGFyZV9jb250cm9sL21haW4vc2NyZWVuc2hvdHMvYWRtaW4tc2V0dGluZ3MucG5n","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Public Share Control","summary":"Control what visitors can create and simplify uploads on public share links","description":"Public Share Control gives share owners and administrators more control over what visitors can do on public folder links.\n\n**Restrict the \"New\" menu per link.** In a link's sharing settings, the owner chooses which entries of the \"New\" menu visitors see — for example, allow uploads but hide \"New folder\", text documents, spreadsheets, whiteboards or \"Add folder description\". Uploading itself always stays available.\n\n**One-click uploads for visitors.** Links that allow uploads get an \"Upload files\" button right next to \"Public share\", on every screen size. Name conflicts are handled with Nextcloud's own dialog (Cancel, Keep both, Replace). File requests keep Nextcloud's own upload page.\n\n**Defaults and restrictions for administrators** (Administration settings → Sharing):\n\n- *Hidden by default:* entries hidden on every link whose owner hasn't changed the selection.\n- *Forbidden:* entries hidden on all links, including existing ones. Owners can't turn them back on.\n- A switch to turn the \"Upload files\" button off for the whole server.\n\nHiding menu entries changes what visitors see, not what the link permits: a link that allows uploads still lets visitors create files by other means, e.g. WebDAV."}},"isFeatured":false,"authors":[{"name":"Nico Störzbach","mail":"github@nstoerzbach.de","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEDzCCAvcCAhRJMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA3MTUyMjI1WhcNMzcwMTEyMTUyMjI1WjAfMR0wGwYD\nVQQDDBRwdWJsaWNfc2hhcmVfY29udHJvbDCCAiIwDQYJKoZIhvcNAQEBBQADggIP\nADCCAgoCggIBALeQPA9AEu2s94CejbgKzdeu7dM1usrq0FcUhTi7uZOQy02DQWPo\nI/eGvVw9dk27CmGIcUoWTOe83dzwMt+i+cLOo4YnUvB1yamzzsBWNgMsAycqjUNg\n4yVoY5RJ92E0//9UTON879azvjWPtks7X2sQP7P5FeAlY4+A0UZj3rf1mSdYLv9w\n7dz2+7kfLxSZhHtWa0wndyPuTAjxHfJHbCVCT9wGu7e9O7C/bPzeA5QMjlbLQg6r\nkmSX4lp8lqkHXBm2S6f4V/SaunqnH+42r47XKIVBf5Okr5II9TpZK/NUGOlmkOiX\nDbI3NiYcrl5HCCx8mx2AYO5pbv+g6bJ2rpNQShu7zwBTAnu0zIFcKvXVanRB4IRW\njO7xyjLbBEnaYZJr9m7/Zd7oZEtO8ET/ZniBFptxJu/ZkBX6bTEJXuV+y1vJUiHK\nKOLA3WeAyY/xQPk9MgMR7YprlAcX7Gc9eDkh/Dkfd+6MM6X7VhFhVsbTNGgACDXC\n0nFisibXN/TIFmI/ZHPcYJ5ILOaBv+nCET0/2bU0dSPGPVlHh1JH0Jz8uJSW9Xbm\nJ6XF6dOH/DyxKitBIojdbHw09b9BmLG8MMGDTonU8ph33A7Bi9f1jdvClFIuds20\ngUNQpsw/GR4hpDFvyMEXqo5mpST8pmebCpGL61ibtqEFxBZr18cTe3rTAgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBAFvO+wCwiL4gtp9B9acRs4orIfiauQY8GKYXxfty\n3GwxJiiCGEm7m3R+B9sE8q0+bHPHzORXtyj/5aJLhCp1ahp/di/cT83eaCof1s+4\nsocVcbC9raYQWoeTyFie/ViXaUvFwX4pEV6i2fCqXEe7aNUXnIiHg2dEQ+evAx04\ngV1+WjiWQpEAJIg5FhZmGu1TdD3ndlUxADOb3r/s+uyNO4k8XVCzPhuWp6EsCRSz\nzjZG11sWRIMhdsejOH/jmT8bkcaiq7INDViin1ITv/aubVSBi+ZgAQQCbCEI/qjF\nz5z5ihjie+peJUcFp3KWOK173nkZ4LOPLhjtvMRRR5ckc+8=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fulltextsearch_postgresql","categories":["search"],"userDocs":"","adminDocs":"https://github.com/Alain-L/fulltextsearch_postgresql#installation","developerDocs":"","issueTracker":"https://github.com/Alain-L/fulltextsearch_postgresql/issues","website":"https://github.com/Alain-L/fulltextsearch_postgresql","created":"2026-09-10T11:43:54.634670Z","lastModified":"2026-10-10T20:48:45.255280Z","releases":[{"version":"0.1.4","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=15.0.0","rawVersionSpec":">=15"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Alain-L/fulltextsearch_postgresql/releases/download/v0.1.4/fulltextsearch_postgresql-0.1.4.tar.gz","created":"2026-10-10T20:48:45.249658Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T20:48:45.315649Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"qFeATpnUT6BXQOaso1JKm29ILbhulwnNkEkJ55D50nWAbzfeyPamQw1w9j1m/syBYaFfHDYG6naRG9U//4aXSvWllDCerd+RhxT8PNxkuXAzlcEioXUwb/90fHSeXN1Z0WbKHxs78PRn8oEfMPQt6RUSeudRmRTk662HqQOlvdvSJVYV1qWkYbJdrNrSjEPR1Su6r0ALx770Q0Gr4tvp2vTYb3FULuc4DSiPh2ebHz0Q6PMCIk8Z4GeTdQOQwWmOYyd4152WZpzvN//e0t4tKbW5okAHPLwbEwhcI/6hQ1FAmb0pYMXG9DBTELz26ef4F2M5wFVRnYq6oXBk2UO41U/nLa8turBSeNnFTQBbRixpHcHzYr7qhPFXUtPJm88I87cRaG4EgPI7GaXJhUGlWRcUsTkXscdC0WY+VK0p9Y5w3MnYAa/N1xI+S4ujwbfbHoynkDEpz4MGnraDQgtESybwtdPNemXE0p4c5PdU94PSqhrIhjaXHcZ2pReT4X4CXGX+zeGYMMgIcuDTFiU+kZoKWfbGbTpJ6X+F8zwBDxI42Qfpt6jUYO48f2qQ1XC/FKrrGFI21NtWKJ5voHOq0iGI5qixl7BNQhSeTT377BOonKINfJAXcD4Zpv7+gCOXbmAK5p3aOgyGRfKP3T9WLdrgWlcq57WORVoNUNoj/VA=","translations":{"en":{"changelog":"### Fixed\n\n- Indexing in several languages no longer empties the index. The table was labelled with the\n  languages in the order they were typed, then compared with them sorted: unless they were typed\n  in alphabetical order, as `french,english` is not, every indexing run dropped the table and\n  Nextcloud, believing the documents indexed, did not put them back. If you index in several\n  languages, run `occ fulltextsearch:reset` then `occ fulltextsearch:index` right after\n  updating, before the next indexing run.\n- With the language left on `auto`, the index is built and searched in the same language: the\n  instance one, that is `default_language` in `config.php`, or English when it is not set. The\n  search used to follow the language of the person searching, so a user who had picked another\n  one searched an English index with their own stemming and missed results.\n- A large spreadsheet or document no longer takes the indexing run down: at most 32 MB of each\n  file inside an Office archive is read, rather than all of it before the size limit was checked.\n- The settings panel no longer says the index was rebuilt when the language is saved. It now\n  says the new language applies once `occ fulltextsearch:reset` and `occ fulltextsearch:index`\n  have run."}},"signatureDigest":"sha512"},{"version":"0.1.3","phpExtensions":[],"databases":[{"id":"pgsql","versionSpec":">=15.0.0","rawVersionSpec":">=15"}],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/Alain-L/fulltextsearch_postgresql/releases/download/v0.1.3/fulltextsearch_postgresql-0.1.3.tar.gz","created":"2026-09-20T17:03:29.659086Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-21T07:17:26.537829Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=32 <=35","signature":"TSGQYgTv/iYbgG2/HgoYk6OoJj9Ar3yncm9Qn4Ru+rB7rAZyHR+pk/uKGwN/eZ6Ko2QvyR8gMgX0YieUKUht9Ypz1c4ztw+t6vkH3DYte5peASKWqL6b0gww0DhCqVod+O/+MImR6aCV8GtGiwU6lVjG3mqZAwuEeN8vODa3zpMuLBf0H7panM6REjm2WOKEikVkBn3OMJQIql8du2YkmR1JZlRWul/aTCRlUrh2lSmZolX7xK+kZ6/STl6O6FDowLSQSdjCCRFqVL21GAxmaZAIKokzqGw7ONst7W1MGdLEBsfIX0lghAESh8of9jZIkwfKlhDcFNmApByE0ZM0aEGIQSoV/BUOBrKjC+6HcuEzvmq47242rEgXM9V/XTK94z6fQKBF1eM45sNxAmZQx4SNHGhace11QFVGG264dgN8Ly6S+7Y5Ic9LB3B+Ekkotu3YeVfoB3AOkwS1NLbEpxsnbaRDFeVHQH6mBO///wZxkdnYS6Juz0zHybAHCWcMLBaRCoAD+NXymfbszi10E3kUKZIRPONN6x4FKF2aOKr8P1U6tIS1NeHFxKU/jNmVrW7vqcq7GnB4qoPlrwM97f1dwJkhFtMfHQDv36ggi/t7makII+aDIxwTZcEyL8YEuLKUooiSrg8BLVaKmiJqrtBsSkzS0x80IvQw7s1TlBw=","translations":{"en":{"changelog":"### Added\n\n- Nextcloud 35 is supported. The app was tested against 35.0.0, with `fulltextsearch` and\n  `files_fulltextsearch` 35.0.0, on a fresh install and on a server upgraded from 34: the index\n  survives the upgrade untouched, so no re-indexing is needed.\n- If you upgraded to Nextcloud 35 while running 0.1.2, the server disabled the app as\n  incompatible and search fell back to the built-in one. Update the app to 0.1.3 and enable it\n  again: the index is still there, and nothing has to be re-indexed."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FsYWluLUwvZnVsbHRleHRzZWFyY2hfcG9zdGdyZXNxbC9tYWluL3NjcmVlbnNob3RzL3NlYXJjaC13aXRob3V0LWFjY2VudHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0FsYWluLUwvZnVsbHRleHRzZWFyY2hfcG9zdGdyZXNxbC9tYWluL3NjcmVlbnNob3RzL3NldHRpbmdzLWluZGV4aW5nLWxhbmd1YWdlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Full text search - PostgreSQL Platform","summary":"Index and search with the PostgreSQL database Nextcloud already runs on","description":"Full text search for Nextcloud without a search server: the index lives in the PostgreSQL\ndatabase your Nextcloud already uses.\n\nPostgreSQL uses less memory and disk space, without sacrificing response time or search\nquality.\n\n- Indexing follows the language and folds accents, so \"numerisation\" finds \"numérisation\". The\n  app takes the language of your instance, and can combine several.\n- The app reads PDF and office files itself (docx, xlsx, pptx, odt, ods, odp), with no\n  extraction service.\n- Permissions are indexed with the content, so a search only returns documents the person\n  running it can open.\n\nRequires the Full text search app (fulltextsearch) and a content provider, usually the one for\nfiles (files_fulltextsearch). The unaccent and pg_trgm extensions install themselves when the\ndatabase privileges allow; otherwise search stays accent-sensitive until an administrator\ncreates them."},"fr":{"name":"Recherche plein-texte - Plateforme PostgreSQL","summary":"Indexation et recherche dans la base PostgreSQL sur laquelle Nextcloud tourne déjà","description":"La recherche plein-texte de Nextcloud sans serveur de recherche : l'index vit dans la base de\ndonnées PostgreSQL que votre Nextcloud utilise déjà.\n\nPostgreSQL permet de consommer moins de mémoire et de disque, sans perdre en temps de\nréponse ni en qualité de recherche.\n\n- L'indexation suit la langue et replie les accents : « numerisation » trouve « numérisation ».\n  L'application reprend la langue de votre instance, et sait en combiner plusieurs.\n- L'application lit elle-même les PDF et les fichiers bureautiques (docx, xlsx, pptx, odt, ods,\n  odp), sans service d'extraction.\n- Les droits sont indexés avec le contenu : une recherche ne remonte que les documents que la\n  personne qui la lance peut ouvrir.\n\nNécessite l'application Recherche plein-texte (fulltextsearch) et un fournisseur de contenu, le\nplus souvent celui des fichiers (files_fulltextsearch). Les extensions unaccent et pg_trgm\ns'installent d'elles-mêmes si les droits de la base le permettent ; sinon la recherche reste\nsensible aux accents, jusqu'à ce qu'un administrateur les crée."}},"isFeatured":false,"authors":[{"name":"Alain Lesage","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEFDCCAvwCAhQQMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTEwMDkxNjUyWhcNMzYxMjE2MDkxNjUyWjAkMSIwIAYD\nVQQDDBlmdWxsdGV4dHNlYXJjaF9wb3N0Z3Jlc3FsMIICIjANBgkqhkiG9w0BAQEF\nAAOCAg8AMIICCgKCAgEA2sF3ms/ia9dqm8FCgMFF0ETu8YFPNIrcJzQY0D8vDOty\nyuip7tPoPyiusKlhQNJ+dlb6pR38ryS3l5CWtA1NsPLtZoxpeN+9eCQonDGOm/iN\nXdcPj9ymNimqi9y/IhYlaoElZ2ITefcnrJsAus3kW7EeDIC3Yvaki4PuFo99ubX2\n/EFlNFF8AStn0IhM34IW4NF1xW5Ctg3FGJdoWTr9XFVN3z/diI2czutQxzbPX/Kk\nUqCFjeXCaOGMaKjEVRhIhb8EJxIWIFnX6QBS2GaUK8AYdLTPxjGNtDzyU9QFBh69\nsqqiygNyxaLY2LN+W/F0n1/dMHkFMD+FTqoQJZuqSi1LCOfIcNevhLwkTboooAbL\nx2yIfaAay7zikiv5V7b6n4qKUdRLtqXXtWEBltejUmYBpaE6oN1FsprAMLO1/EmL\nq5/VgjJoysG83MHNmjRE9/rqFHpo5PPylJ2MrJKmTZJtoDC5XHOMJpT2n0Vw6cBt\nlzZXkWt8jn+nss0HA1SHuTiLOMbhn3KI/GkZyzDNVZm7vaWVbPssJCR3grAxfjpb\n10VAqQFqmwEkx1PxmzhNj20eGwnubQHddeMrXm/fXL95CwR9os+g6OURfrkW12nt\n1szK9xLEZCBo9CT78LrnHgbF5bvVIWMAnNOR242sOSYWsbux2HbLDgD2qFd/UEkC\nAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAhTk9TndxDinGvzUCNVsN/yKFnoTCG97K\nIYAqPpxUIhe8Q00PP08TgR8qNzpfiImxJxkhY2sijbUnzuoniWQ+aGZoraqTw2PT\np0s65o7XhJEvCbeh5c4YQ0AznSSkzQl+aSkiepTYKhBX4rLPxfhCV24L5rbsQxzp\nW/FLHWr4rXFxktpQV7O82ID7Q9eyf+VGJedr3tumyYJDBGOJ5J8ruMHYQILSvwZx\nBj0gJ1EWx9+gKpbuoa7lJus8vd/8EGVQdCoHnGrU3ElfJw7vHjdP+SvySLY9ktc1\nbP81rnQ1j3NiBosUX+ambjkYuSO2ycBjMWVn/3C/TiT7N34EX7PGtg==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"done","categories":["integration","organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/the-done/done-nextcloud/issues","website":"","created":"2025-11-06T05:33:43.092319Z","lastModified":"2026-10-15T09:36:13.593628Z","releases":[{"version":"1.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/the-done/done-nextcloud/releases/download/v1.9.0/done.tar.gz","created":"2026-09-23T08:00:22.991894Z","licenses":["MIT"],"lastModified":"2026-09-23T08:00:23.128969Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"sNAWCvwWX6kLDqdRGcwm7GcOSiSGgSjO4v8Rt5qnEMjGSdT854y4gEwVQbeym944HwRZMlgBm8FGcBqr9uonbF+3q3JgMOK0RhR+1Q34nh01eiiYX/N5AXdSjfA00wU8xFnmCyBAYisQqza/YmAxUhjd/0ALcFRnGmm5QNV6c333+1inlyvSJlsZApSup04LHIELuS38BsjIxxp4N8cYWrj/kiqWt9ZB1EJggehauCBwHfl/ZVZgjNXh5XxWM5TKeK5hMZUI+6fB5okdKZgaLLKjhxy2WP/+gbMHwx5LYNR/DkakcgFDBqlcUVNJ72z6SP6Qa3b8QUhEjoUW2FVZrLr91PIf/MQR2fYLAKV+L6ZBCDCdL9FxOs+osMqUnlACuTIQ7q4q/+qoy6LsrHNpkwB0ww+7Fz0mMTji+2KyKYe2z22jE0pZW6bL1qKnPf7e37kcZsl+LlNnljbBRwJ7dfHDUbMP/FU3nfGILHTUF+vJBU5xdz6hrh+MkpIDu/0lwfU8xRCLlL0Yo8q3aLvn0RbMtM/w1LvmcphnTyGSjqiXntSio4uc801osEEhqbHW/YB50VOHcUo2N8iqryUM74X1N2J2TemQWihKek8pmDTuI42xlM/8deLG5DEpnVP1ClqKMb/Tvl32t9p4e62NDkpHyVcuEZLnmGNJykmdP+k=","translations":{"en":{"changelog":"### Added\n- Demo mode for the paid modules: Agreement, Finances, Teams and Vacations now\n  appear in the navigation with realistic read-only sample data, so their\n  features can be explored before purchase. Demo modules are marked with a\n  \"pro\" badge.\n- A setting to hide the demo modules.\n- Pro version settings page (admin only): activate the paid modules with a\n  license key and manage the license from a single screen.\n- License details panel showing the license status, plan, masked key, update\n  window, installed version and installed modules.\n- License-server reachability notice and a link to the license service.\n- Update checks backed by a daily background heartbeat that also keeps the\n  license validated.\n\n### Changed\n- License activation and module installation are now separate actions:\n  activating only validates the key, while installing (or reinstalling) the\n  modules is a distinct step. The screen warns when the license is active but\n  the modules are not installed.\n- Installed paid modules keep working when the license server is unreachable or\n  the license is revoked — nothing is disabled automatically.\n- Read-only enforcement in demo mode: create, edit, delete controls, settings\n  pages and export are hidden, and a warning is shown when a demo write is\n  attempted.\n\n### Fixed\n- Demo entity cards (such as the team preview) no longer produce 404s and now\n  render as read-only.\n- Localized the demo table column titles.\n- The Pro version screen now survives a page reload.\n- The installed pro-package version is reported correctly for update checks."}},"signatureDigest":"sha512"},{"version":"1.10.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=28.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/the-done/done-nextcloud/releases/download/v1.10.0/done.tar.gz","created":"2026-10-15T09:36:13.570507Z","licenses":["MIT"],"lastModified":"2026-10-15T09:36:13.655028Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=28 <=35","signature":"Z8YyJ4zWxDXYf2R5CKDtE9/hyifB0WkGUeeeuPIeXQDpYWepa9r8yH6lzsOGUd0J6X+jr1eg3MUg4xeShqhNd2AeABXSeqglG1R6bLSx2CI/EuTjQe3xd0ibcqc/9t335cvbPSLgplrGoT8iPxvAJezdbiiorAC4LOelvFOkQkNDX755PMVtLEeoXRYumqfaYHQzDc1760u7NC4GJUpOSLq2U+gK3XwEOMSPsLXoJS+eNCzsMysvf27jxA0717PvgJx/dWVi2S4LS0OFD8XSQM9AKiauZ47BCBrVhc/KhbBtCeqAQF0Tvkql2XF7ZfKaeVbIv7c52sp3o0dfI+s+BO5AR2AiBgPGpr/+mIp6S1rc6iJKkU6X0TU8SnOo+N67qe0mN+1jpQEqQn8SQ5qOGnrdBm1KOV801d3Q/soHCYEvjHY6WEQ+DRoksEiFY98jhFfkvp90fLulRXUEjozD1IeOAqvjInPYK8Z36aeUFFGTi1rYt5MylLwvDQP5Sty5FMUPBA7besOlmq2p8Dpyz72mbY210onGKFjXgAbOrlHwfU8yKSA7AxY0WJn69keDHvaG6WVpMoLO7Ezo9kAbQ8JSPuHnYa46/iqdh6Ln17HGlMSAuL+Un/6YX/nCksyw8wzmFO0S8B5ls8Vij7tXFwikDTm6MZHbg9p8wCLJKsw=","translations":{"en":{"changelog":"### Added\n- Table report with employee/project hierarchies, year/month/week views, optional\n  daily month columns, surname and hour sorting, and project/employee filters.\n- Time-entry details with comments, progressive loading and links to employee,\n  project and task pages; Excel/PDF/HTML exports of the selected report view.\n- Fullscreen report controls, an initial mobile layout, and interface translations\n  in English, German, Spanish, French and Russian."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwMS1BZGRfUmVjb3JkLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/the-done/done-nextcloud/master/docs/Done-Nextcloud-001-Add_Record.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwMi1Vc2VyX1NldHRpbmdzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwMy1FbXBsb3llZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwNC1SaWdodHNfTWF0cml4LnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwNS1FbXBsb3llZXNfUG9zaXRpb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwNi1FbXBsb3llZXNfQ29udHJhY3RfVHlwZXMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwNy1DdXN0b21lcnMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwOC1EaXJlY3Rpb25zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAwOS1Qcm9qZWN0X1N0YWdlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RoZS1kb25lL2RvbmUtbmV4dGNsb3VkL21hc3Rlci9kb2NzL0RvbmUtTmV4dGNsb3VkLTAxMC1Qcm9qZWN0X1JvbGVzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Done","summary":"Time tracking, projects and team workload in Nextcloud — see where your team's hours and money go.","description":"**Stop guessing where your team's time goes.** Done turns everyday time tracking into a clear picture of your projects, people and profitability, right inside your Nextcloud.\n\nNo new SaaS account, no data leaving your server. Employee profiles are built from your Nextcloud users, so your team can start logging time in minutes.\n\n## Why teams choose Done\n\n- 🔒 **Your data stays yours.** Everything lives in your own Nextcloud, not in someone else's cloud.\n- ⏱️ **Logging time takes seconds.** Quick entry, a fast time picker, repeating entries and remembered recent projects mean people actually keep their timesheets up to date.\n- 📊 **Reports without spreadsheets.** Look at effort by project, employee or period, and drill down from the big picture to single records.\n- 💰 **From hours to margin.** Link actual effort to labour cost, client price and extra expenses, so you know which projects really make money.\n- 🧩 **Pay only for what you use.** Start free and add modules as your processes grow.\n\n## Free: everything you need to start\n\n- **Time tracking** by project and task, with comments and personal statistics\n- **Projects** with team members, roles, stages and custom fields\n- **Employees** in a smart table (drag-and-drop columns, multi-level sorting and filtering) or as cards\n- **Reports**: overall, by project and by employee\n\n## Professional: run the whole team\n\n- 👩‍💻 **Teams**: group people and see workload and utilization at a glance\n- 💼 **Finance**: payments, contracts and contract parameters with calculation formulas\n- 🌴 **Leave**: balances, requests and a team availability schedule, plus leave reports\n- ✅ **Approvals**: employee requests submitted and reviewed in one place, instead of getting lost in email and chats\n\n## AI: ask your data in plain language\n\n- 💬 **AI chat**: *\"What did Anna work on in project X this month?\"* The answer comes from your Done data.\n- 📅 **My day**: suggested time entries based on your calendar events\n\n## Built for project-driven teams\n\nAgencies, development studios, consultancies and internal project offices use Done to answer three questions every manager asks: *Who is working on what? Where is the time going? Is this project profitable?*\n\nFlexible permissions, custom fields and configurable interface visibility let you fit Done to your structure, not the other way round.\n\n## Get started\n\n1. Click **Enable** in your Nextcloud Apps.\n2. Open **Done**. Your Nextcloud users are ready to become employees.\n3. Create a project and log your first hour.\n\n🌐 [the-done.app](https://the-done.app) · 💳 [Pricing](https://the-done.app/en/pricing/) · 📖 [Support](https://the-done.app/en/support/) · 🐞 [GitHub](https://github.com/the-done)"},"ru":{"name":"Done","summary":"Учёт времени, проекты и загрузка команды в Nextcloud — видно, куда уходят часы и деньги.","description":"**Хватит гадать, куда уходит время команды.** Done превращает ежедневный учёт времени в понятную картину по проектам, людям и деньгам, прямо внутри вашего Nextcloud.\n\nНе нужен новый SaaS-аккаунт, и данные не покидают ваш сервер. Карточки сотрудников создаются из учётных записей Nextcloud, так что команда начинает учитывать время за считаные минуты.\n\n## Почему выбирают Done\n\n- 🔒 **Данные остаются у вас.** Всё хранится в вашем Nextcloud, а не в чужом облаке.\n- ⏱️ **Записать время — дело секунд.** Быстрый ввод, удобный выбор времени, повтор записей и запоминание последних проектов. Сотрудники действительно заполняют отчёты.\n- 📊 **Отчёты без таблиц.** Трудозатраты по проектам, сотрудникам и периодам, с переходом от общей картины к отдельным записям.\n- 💰 **От часов к марже.** Свяжите фактические трудозатраты со стоимостью работы, ценой для клиента и доп. расходами и узнайте, какие проекты на самом деле зарабатывают.\n- 🧩 **Платите только за нужное.** Начните бесплатно и подключайте модули по мере роста.\n\n## Бесплатно: всё для старта\n\n- **Учёт времени** по проектам и задачам, с комментариями и личной статистикой\n- **Проекты**: команда, роли, этапы, свои поля\n- **Сотрудники** в умной таблице (перетаскивание колонок, многоуровневая сортировка и фильтры) или карточками\n- **Отчёты**: общий, по проекту, по сотруднику\n\n## Professional: управление всей командой\n\n- 👩‍💻 **Команды**: загрузка и утилизация людей одним взглядом\n- 💼 **Финансы**: платежи, договоры и параметры договоров с формулами расчёта\n- 🌴 **Отпуска**: остатки, заявки, график доступности команды и отчёт по отпускам\n- ✅ **Согласования**: заявки сотрудников в одном месте, а не в почте и мессенджерах\n\n## AI: спросите свои данные простым языком\n\n- 💬 **AI-чат**: *«Над чем Анна работала в этом месяце по проекту X?»* Ответ строится на данных Done.\n- 📅 **«Мой день»**: предложенные записи времени по событиям календаря\n\n## Для проектных команд\n\nАгентства, студии разработки, консалтинг и внутренние проектные офисы используют Done, чтобы отвечать на три главных вопроса руководителя: *кто чем занят, куда уходит время и окупается ли проект?*\n\nГибкая матрица прав, свои поля и настройка видимости интерфейса подстраивают Done под вашу структуру, а не наоборот.\n\n## Как начать\n\n1. Нажмите **Включить** в разделе «Приложения» Nextcloud.\n2. Откройте **Done**. Пользователи Nextcloud готовы стать сотрудниками.\n3. Создайте проект и запишите первый час.\n\n🌐 [the-done.app](https://the-done.app) · 💳 [Тарифы](https://the-done.app/ru/pricing/) · 📖 [Поддержка](https://the-done.app/ru/support/) · 🐞 [GitHub](https://github.com/the-done)"},"es":{"name":"Done","summary":"Registro de tiempo, proyectos y carga del equipo en Nextcloud: descubre adónde van las horas y el dinero de tu equipo.","description":"**Deja de adivinar en qué se va el tiempo de tu equipo.** Done convierte el registro diario de horas en una visión clara de tus proyectos, tu gente y tu rentabilidad, directamente en tu Nextcloud.\n\nSin nuevas cuentas SaaS y sin que los datos salgan de tu servidor. Los perfiles de empleados se crean a partir de los usuarios de Nextcloud, así que tu equipo empieza a registrar horas en minutos.\n\n## Por qué los equipos eligen Done\n\n- 🔒 **Tus datos siguen siendo tuyos.** Todo vive en tu propio Nextcloud, no en la nube de otro.\n- ⏱️ **Registrar tiempo lleva segundos.** Entrada rápida, selector de tiempo ágil, repetición de registros y proyectos recientes a mano: así la gente mantiene sus partes de horas al día.\n- 📊 **Informes sin hojas de cálculo.** Esfuerzo por proyecto, empleado o periodo, desde la visión general hasta cada registro.\n- 💰 **De las horas al margen.** Vincula el esfuerzo real con el coste laboral, el precio al cliente y los gastos adicionales, y descubre qué proyectos son realmente rentables.\n- 🧩 **Paga solo por lo que usas.** Empieza gratis y añade módulos a medida que crecen tus procesos.\n\n## Gratis: todo lo necesario para empezar\n\n- **Registro de tiempo** por proyecto y tarea, con comentarios y estadísticas personales\n- **Proyectos** con equipo, roles, etapas y campos personalizados\n- **Empleados** en una tabla inteligente (columnas arrastrables, ordenación y filtros multinivel) o en tarjetas\n- **Informes**: general, por proyecto y por empleado\n\n## Profesional: gestiona todo el equipo\n\n- 👩‍💻 **Equipos**: agrupa a las personas y ve la carga y la utilización de un vistazo\n- 💼 **Finanzas**: pagos, contratos y parámetros de contrato con fórmulas de cálculo\n- 🌴 **Vacaciones**: saldos, solicitudes, calendario de disponibilidad del equipo e informes de vacaciones\n- ✅ **Aprobaciones**: las solicitudes de los empleados en un solo lugar, en vez de perderse entre correos y chats\n\n## IA: pregunta a tus datos en lenguaje natural\n\n- 💬 **Chat con IA**: *«¿En qué trabajó Anna este mes en el proyecto X?»* La respuesta sale de tus datos de Done.\n- 📅 **Mi día**: sugerencias de registros de tiempo a partir de los eventos de tu calendario\n\n## Para equipos que trabajan por proyectos\n\nAgencias, estudios de desarrollo, consultoras y oficinas de proyectos internas usan Done para responder a las tres preguntas de cualquier responsable: *¿Quién trabaja en qué? ¿Adónde va el tiempo? ¿Es rentable el proyecto?*\n\nUna matriz de permisos flexible, campos personalizados y la visibilidad configurable de la interfaz adaptan Done a tu estructura, y no al revés.\n\n## Cómo empezar\n\n1. Pulsa **Activar** en Aplicaciones de Nextcloud.\n2. Abre **Done**: tus usuarios de Nextcloud ya pueden convertirse en empleados.\n3. Crea un proyecto y registra tu primera hora.\n\n🌐 [the-done.app](https://the-done.app) · 💳 [Precios](https://the-done.app/es/pricing/) · 📖 [Soporte](https://the-done.app/es/support/) · 🐞 [GitHub](https://github.com/the-done)"},"fr":{"name":"Done","summary":"Suivi du temps, projets et charge d’équipe dans Nextcloud : voyez où partent les heures et l’argent de votre équipe.","description":"**Arrêtez de deviner où passe le temps de votre équipe.** Done transforme le suivi du temps quotidien en une vision claire de vos projets, de vos équipes et de votre rentabilité, directement dans votre Nextcloud.\n\nPas de nouveau compte SaaS, et aucune donnée ne quitte votre serveur. Les profils des employés sont créés à partir de vos utilisateurs Nextcloud : votre équipe saisit ses premières heures en quelques minutes.\n\n## Pourquoi les équipes choisissent Done\n\n- 🔒 **Vos données restent chez vous.** Tout est stocké dans votre propre Nextcloud, pas dans le cloud d’un autre.\n- ⏱️ **Saisir son temps prend quelques secondes.** Saisie rapide, sélecteur de durée pratique, répétition des saisies et projets récents mémorisés : les feuilles de temps restent vraiment à jour.\n- 📊 **Des rapports sans tableur.** L’effort par projet, par employé ou par période, de la vue d’ensemble jusqu’à chaque saisie.\n- 💰 **Des heures à la marge.** Reliez l’effort réel au coût du travail, au prix client et aux frais annexes, et identifiez les projets vraiment rentables.\n- 🧩 **Ne payez que ce que vous utilisez.** Commencez gratuitement et ajoutez des modules au rythme de vos processus.\n\n## Gratuit : tout pour démarrer\n\n- **Suivi du temps** par projet et par tâche, avec commentaires et statistiques personnelles\n- **Projets** avec équipe, rôles, étapes et champs personnalisés\n- **Employés** dans un tableau intelligent (colonnes en glisser-déposer, tri et filtres multi-niveaux) ou en cartes\n- **Rapports** : global, par projet et par employé\n\n## Professionnel : pilotez toute l’équipe\n\n- 👩‍💻 **Équipes** : regroupez les personnes et visualisez la charge et le taux d’occupation en un coup d’œil\n- 💼 **Finances** : paiements, contrats et paramètres de contrat avec formules de calcul\n- 🌴 **Congés** : soldes, demandes, planning de disponibilité de l’équipe et rapports de congés\n- ✅ **Validations** : les demandes des employés au même endroit, au lieu de se perdre entre e-mails et messageries\n\n## IA : interrogez vos données en langage naturel\n\n- 💬 **Chat IA** : *« Sur quoi Anna a-t-elle travaillé ce mois-ci dans le projet X ? »* La réponse s’appuie sur vos données Done.\n- 📅 **Ma journée** : des saisies de temps suggérées à partir de vos événements d’agenda\n\n## Pour les équipes qui travaillent en mode projet\n\nAgences, studios de développement, cabinets de conseil et PMO internes utilisent Done pour répondre aux trois questions de tout manager : *Qui travaille sur quoi ? Où passe le temps ? Ce projet est-il rentable ?*\n\nUne matrice de droits flexible, des champs personnalisés et une visibilité configurable de l’interface adaptent Done à votre organisation, et non l’inverse.\n\n## Démarrer\n\n1. Cliquez sur **Activer** dans les Applications de Nextcloud.\n2. Ouvrez **Done** : vos utilisateurs Nextcloud sont prêts à devenir des employés.\n3. Créez un projet et saisissez votre première heure.\n\n🌐 [the-done.app](https://the-done.app) · 💳 [Tarifs](https://the-done.app/fr/pricing/) · 📖 [Support](https://the-done.app/fr/support/) · 🐞 [GitHub](https://github.com/the-done)"},"de":{"name":"Done","summary":"Zeiterfassung, Projekte und Teamauslastung in Nextcloud – sehen Sie, wohin Zeit und Geld Ihres Teams fließen.","description":"**Schluss mit dem Rätselraten, wohin die Zeit Ihres Teams fließt.** Done macht aus der täglichen Zeiterfassung ein klares Bild Ihrer Projekte, Mitarbeiter und Rentabilität – direkt in Ihrer Nextcloud.\n\nKein neues SaaS-Konto, keine Daten, die Ihren Server verlassen. Mitarbeiterprofile entstehen aus Ihren Nextcloud-Benutzern – Ihr Team erfasst die ersten Stunden in wenigen Minuten.\n\n## Warum Teams Done wählen\n\n- 🔒 **Ihre Daten bleiben bei Ihnen.** Alles liegt in Ihrer eigenen Nextcloud, nicht in einer fremden Cloud.\n- ⏱️ **Zeit erfassen in Sekunden.** Schnelleingabe, komfortable Zeitauswahl, wiederholbare Einträge und zuletzt genutzte Projekte – so bleiben Zeitnachweise wirklich aktuell.\n- 📊 **Berichte ohne Tabellenkalkulation.** Aufwand nach Projekt, Mitarbeiter oder Zeitraum – vom Gesamtbild bis zum einzelnen Eintrag.\n- 💰 **Von Stunden zur Marge.** Verknüpfen Sie den tatsächlichen Aufwand mit Personalkosten, Kundenpreis und Zusatzkosten und sehen Sie, welche Projekte sich wirklich rechnen.\n- 🧩 **Nur zahlen, was Sie nutzen.** Kostenlos starten und Module hinzufügen, wenn Ihre Prozesse wachsen.\n\n## Kostenlos: alles für den Start\n\n- **Zeiterfassung** nach Projekt und Aufgabe, mit Kommentaren und persönlicher Statistik\n- **Projekte** mit Team, Rollen, Phasen und eigenen Feldern\n- **Mitarbeiter** in einer smarten Tabelle (Spalten per Drag-and-drop, mehrstufiges Sortieren und Filtern) oder als Karten\n- **Berichte**: Gesamtbericht, nach Projekt und nach Mitarbeiter\n\n## Professionell: das ganze Team im Griff\n\n- 👩‍💻 **Teams**: Mitarbeiter gruppieren und Auslastung auf einen Blick sehen\n- 💼 **Finanzen**: Zahlungen, Verträge und Vertragsparameter mit Berechnungsformeln\n- 🌴 **Urlaub**: Resturlaub, Anträge, Abwesenheitsplan des Teams und Urlaubsberichte\n- ✅ **Genehmigungen**: Mitarbeiteranträge an einem Ort statt verstreut in E-Mails und Chats\n\n## KI: Fragen Sie Ihre Daten in natürlicher Sprache\n\n- 💬 **KI-Chat**: *„Woran hat Anna diesen Monat im Projekt X gearbeitet?“* Die Antwort basiert auf Ihren Done-Daten.\n- 📅 **Mein Tag**: Vorschläge für Zeiteinträge auf Basis Ihrer Kalendertermine\n\n## Für projektorientierte Teams\n\nAgenturen, Entwicklungsstudios, Beratungen und interne Projektbüros nutzen Done, um die drei Fragen jedes Managers zu beantworten: *Wer arbeitet woran? Wohin fließt die Zeit? Lohnt sich das Projekt?*\n\nFlexible Berechtigungsmatrix, eigene Felder und konfigurierbare Sichtbarkeit der Oberfläche passen Done an Ihre Struktur an – nicht umgekehrt.\n\n## Loslegen\n\n1. Klicken Sie in den Nextcloud-Apps auf **Aktivieren**.\n2. Öffnen Sie **Done** – Ihre Nextcloud-Benutzer können direkt als Mitarbeiter angelegt werden.\n3. Legen Sie ein Projekt an und erfassen Sie Ihre erste Stunde.\n\n🌐 [the-done.app](https://the-done.app) · 💳 [Preise](https://the-done.app/de/pricing/) · 📖 [Support](https://the-done.app/de/support/) · 🐞 [GitHub](https://github.com/the-done)"}},"isFeatured":false,"authors":[{"name":"The Done","mail":"hello@the-done.app","homepage":"https://the-done.app"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIID/zCCAucCAhLMMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMTA1MTIzMjU1WhcNMzYwMjExMTIzMjU1WjAPMQ0wCwYD\nVQQDDARkb25lMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwUkVQUPT\nq/cEzTmX6r10RQpiVuXVXoNlcK3lWvagUR0Tc0VeXF8ExvbUUFdNH1ajNcxFx+sZ\nyY7lXuveHhbcnRGRjvZZrCNKIqFzyeYHvpHU7kDO1TOBdf+gcL7eLS0nqQMVOWzh\nFE0WETPBw2bP+2Q2ECssOW0YEQy0bkjySp5U2ErSuj25l61tY3r+Or9CatdCRVR0\nPoT4riiYv5HtqJZi0MFbFxWPIq7QbY4BuFGiGg3YtHTi1xaYlKNiX/BXAjyvGM8E\n6RsmmznTCrqELyjq6b32wJTwMlnUnL4oOLigECTrVmwcsI4gr5J3slQSJGTRJ7QF\nxaKMDv94I/K9yE6YCzz8vBWwL4RjwoEuAcIB607GDl2qLsu4Cytoph9zLZsLXADT\ncj8HPaGKLo9qLV7FiJ+nwb45cNfO7Mxq0GnIzGzslzk/mqkWwjEnrhytXAxw6zce\nmgWbBGkRwKfCeiTrHCGXPY+jxCRRH2rOufIPYHgUkHiwlZyA2MFn/a7Kd0FsE4xa\nQrrlaJ9NNhlbf65z1bSD2o1X3DutaifJwdZ/Bm2I7pp5RqWzsK5szhSw3y2METTR\n9FlsAWJCpL9MF6rd2e9NaE8JeYC1BLqXJx2drrzq/+3v3jmVGaATc1nYJvLls04N\nG7nWEei56UK+lfQAxDbGyKd6cXE0VH9cWJUCAwEAATANBgkqhkiG9w0BAQsFAAOC\nAQEAAv7M7y+/BreKcknhw0FXAByaHQ4d4YJLFKNp95TN1NjSSf23yQ/BLJ3voXrv\n0og5u4TMmE72Y+63fXFbbMlxc5lUm7uHM5SUenWAqa4Z+nxdkXgptWu4mSv8hZiF\nrkHz4phqDuceaOE0BhWdCfTWKYlP2F15hdzhNrVaQdgk0cI7hr8njuJNjEZK3V5g\nlEQLlk2WB6DZxE4xsg/yeOwoAOnQCPwIPrX1GBqa6BCRuf6L5Cmhl7wFZ2twUueK\npupbg/HMezS06izP8CIVlDRGWMcngP/bp2eKhJJGzI5pA/ZNr62vO701b93UyB1A\noGf4LDMJ8wi2kAjUMdEYJbgh0w==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"journeys","categories":["integration","multimedia"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/thrillfall/journeys/issues","website":"","created":"2025-07-18T07:14:55.385558Z","lastModified":"2026-10-17T14:19:04.511877Z","releases":[{"version":"0.36.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.36.1/journeys.tar.gz","created":"2026-10-17T14:19:04.501188Z","licenses":["agpl"],"lastModified":"2026-10-17T14:19:04.548826Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"BiTqQ/B33kewulqu92XDkOiDDcnCojlcMDR1wyL37rKhbh9Qq1UMwJRZRtBwGw0R04WtE1lsv+HIZACNGsAz2fQcz+F3KTxPr0d00I2cc4ECrQFWNi90/heo54MznzPXqzA+d6U3aQHWaFThfigvPotGuNz2XAKA1RCU98Ahu2BBwhEUcy75/PYVX9tX4a26e20gS2zM8loLJHg0ETTcwyJ0DeSc7SjMCgPkMTBIpeFkBUunTdWVOmMyRMNn7s6PlJfhwVGI+7fjgI1sqEAGIBbjSRJX/ALaFO0Q1rTFYd7paA3y92JbgJw62j7WRBsmhjsy5RHWkopjzXT86T4ZKFlVltqR4jsW4uAVswp2NTai8BJ3FgmVibbRLtYVS64QjKmykylQFXEpShDcZX28X0nl4kqif/H6jDPyMlW9OXYYoCZB4VIw9yJ56QlisfKNIBsAziNtbTiRMyLHtCvExTsibFFjdMZl5FgxOyP68xKCgxcw5cvqbpvtfOT7B86b/iO69QTyCdt0bQ+4Nmw1gQgUZf/r4UI8eO9gsPL+RwxrDvCZNv6YqhZ7AcyP/myKD+8JbWOKjqxsZ8aPznM6buG0oS+aXhUc0CtBcL3qSX2dbRJYCFE3bFMtLgZpQ2xoj2arc2GyXByj8M4YGnJeLOQatY8RQU1wDUnFaUWzygw=","translations":{"en":{"changelog":"### Fixed\n- Journals: the day photo picker and the entry auto-fill were empty for photos that reach the user through a share (user, group or Team / Circles share), even though Memories shows them (#43). The user's own picker now offers shared-in photos, bounded to each share's subtree and the Memories timeline. A trip member's library consent still exposes only that member's own photos, not what was shared with them.\n- Clustering: `--include-shared-images` / \"include shared images\" dropped group and Team (Circles) shares. Shares were matched on `share_with = <uid>`, which only holds for direct user shares; the Files_Sharing mount row is now what counts.\n- `MemoriesScope`: a share or jailed mount inside the timeline path was scoped with its mount-relative internal path against the source storage, so only the mount's root folder matched and none of its contents."}},"signatureDigest":"sha512"},{"version":"0.36.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.36.0/journeys.tar.gz","created":"2026-10-17T11:47:06.866429Z","licenses":["agpl"],"lastModified":"2026-10-17T11:47:06.918285Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=30 <=35","signature":"hys96Chkszs4TyUsaIExtstGtTCRRFNye/GEBqfWd0DQuMOyacviQG6Qns0+hVXbDd2DVWQNayGrhv0fL0k9ANajJ/xkneWK6MvEehB23eopeSlGPIT2wQW8LQzyldjwTCKv+zuikYQzHgBdAMrj0P1JxuZOO5DuCQQ5nBwkD6lOLIlXGtsww3PgzNSNIEKvuHnoP2Za+BzoK/YW47RIO8fIvh/y5Amr2KeezS/+z/PZLQq+44O+QCIPhm/X43+neyqoQtG0rrsnKeMjYYfmVYiszrahEf/XdGgEEGhsr2yuGHisC59QDlDAx/8G8QZEYH0sIry40zqSk0ee3Cr/MuimbdrHtRqIcZf0hIYz/HNtYu7qnPcSOhTlfQjBKR4cPDbmsoAZn08vU34n97cBdqLqolpZdFWCJOVF5l1z0NobNZ/87XBfj5TqWwnTsOiUbQTQLE1ZyT9u1ricg02gQ++iA92lE1YJgi4SWT9ylKGc/pfVV3ThPp2Sd4cNVSYSicBJIwzmoQdgXiG7h9+hl9tgWSHSNbdFeoqCbSQNC+F0ENMK8gq68WhsBvCLfbbQYNmvIfyQxWgMn5YHC5kLssECI0RhPIQy8OzeLYhcIxVLPZZYTJXOIWkHGI2j2HXTuPARzkfYUoXFSFtErq9Zk2iTv3R719/xZdCQt6LgZUQ=","translations":{"en":{"changelog":"### Added\n- Video rendering: **clips from the trip's videos (#9).** Personal setting `includeVideoClips`, on by default — clips add about 30 % render time on a long trip but not peak memory (measured: 4.3 GB peak ffmpeg RSS with clips vs 4.9 GB without on a 92-item trip, since a clip replaces a high-resolution still). `VideoStorySelector` gives videos of at least 2 s about 12 % of the slots (max 15), `VideoClipExtractor` cuts a ~4 s excerpt from the middle and normalizes it (h264, CFR 30 fps, AAC, long edge ≤ 1920), and both renderers play it as a `clip` segment at native speed. A clip that does not match the canvas orientation is fitted over a blurred fill of itself.\n- Video rendering: clip sound is mixed in by `VideoRenderPrimitives::muxSoundtrack()` at the clip's position on the timeline. Clips are levelled towards −20 dB (max +20 dB), and the music ducks by 16.5 dB with a 1 s ramp in dB around each clip. Measured A/V offset is under one frame on Pixel MP4, iPhone HDR MOV and variable-frame-rate sources, including across render chunks.\n- `tests/e2e/av_sync_check.py` and section 5 of `tests/e2e/RELEASE-E2E.md` to verify clip sync before a release.\n### Changed\n- Video rendering: 3-photo landscape stacks hold one second longer; the extra time goes to the centre pause.\n- Video rendering: segment durations are snapped to whole frames so chunked renders keep clip sound and picture aligned.\n- `appinfo/info.xml` now declares `<php min-version=\"8.2\"/>` (Composer already required it).\n### Fixed\n- Video rendering: the segment after a GCam motion photo was cut to ~0.8 s. The time-stretch ran as `setpts` after `fps`, so `tpad` never padded the trailer, its stream ended where the outgoing xfade began, and ffmpeg 7 skipped the start of the next segment. The stretch now happens on the input (`-itsscale`).\n- Video rendering: a finished video was read into a PHP string before saving, which exhausted `memory_limit` for outputs around 300 MB and left a 0-byte file in `Journeys Movies`. It is streamed now.\n- `occ journeys:render-cluster-video` description no longer claims \"images only\"."}},"signatureDigest":"sha512"},{"version":"0.35.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.35.2/journeys.tar.gz","created":"2026-10-15T18:00:00.790123Z","licenses":["agpl"],"lastModified":"2026-10-15T18:00:00.832965Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"D+nbOLSqryu9CF/AV3/dqyAoVQaKIQMbtJtGXR13bGzgheYyb7xXoRthaorspcsihhB1P+TOWWvG/CdisSiFS4awgRd+LoRgc4QTh5PRaaCayF4DCeb07ZQCq3fDSvjIqdM9//gl1gZ9ypyX+XvUqDKr5p3FaK1aJTc6rfD2/iq72zWefR20f6gpqpI20ZY3lzf2UTONAMg7JoUH5rb2MA4ApEXNPxMO9uL2UUTVBLEzJ/hf8raEqs6Whcvs6nVMucZQPvjGlvtLKJFm5Kg6Hn+bxJTdsFI0QsvUItfbMJ3qvVsQB5KIQkIcDRjbH3T1EmZuh3Dk4vvubWqjGXe2p0O9OgyBrxmJYX80LFmy6lBNCwjsnRkRHd9HrOlmjMzTTqjpsSVkR6KCQz3Nq1JBiq86D4hRkZLNK+N1RCvohdfuuoZyIwYyK83Drl/EqronEaOx9SOejOLYimcxsLl+5orxrMs3PjtF6sQYj77OcltoVzZZWy9Hsq0Ahv37SyCd0U0/EQPk0a/XgaiOmBEttryzTa9F7+y3rw6SStXGW9yihujunFcwS+/rppNIFQHM7RdF2aBBeuiGtdajxJ9G0yczHqPlVMnSV+fZ8H0sFS1vu2K8AI38iLXn2vhdUXKnAXbRWHwKkkSbB51layCxK7olduccfgVK4btoJeOCSLE=","translations":{"en":{"changelog":"### Fixed\n- CLI: `journeys:list-clusters` and `journeys:remove-all-albums` set their name only via the static `$defaultName`, which newer Symfony Console (Nextcloud 35) no longer reads, so `occ` aborted with \"cannot have an empty name\". Both now call `setName()` in `configure()` (#44, thanks @rauchc)."}},"signatureDigest":"sha512"},{"version":"0.35.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.35.1/journeys.tar.gz","created":"2026-08-29T20:38:33.160657Z","licenses":["agpl"],"lastModified":"2026-08-29T20:38:33.218955Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"RSdDJFewfPWy5czjy2lrA9N46LCt/+s2oiPGMVZHKk/5RwdZcMciAhvq5JN/BE/PDmWRslN9G5zKjE3jE56y6hOUdjkSSuALioflcALTvm3VSk/oRhPjUvbsdCFwarltf2Nk9mlMltYqvbsGmBWgD+cxVl6Dq3hQLk8Yg6aH+I4LIR+bO7naqIEItU5bjrmnXLrVc0Vp5+H+21ME76ILRxrqzqFPslMHaUYAlCFoQZKdTjjonjgaOMV0iY/d8o+5+Doqn3H6hdnA3bhsHVx4tQAQAQkpMnYqPT0dZt59zb4UZ0R9sWFf0aoKn5TB/la2LsK+7k0IRAk7N/tGFbp8Yu2pmQp7qVbre5Dn90++pW6oTEk9h7cQMn2TRgBsUvhHISST66a/JYgkVfF64NCI0K3iNMxyAgBLbSxW/Vq2Q8/pPYQfqq9Vz9DS10XHcjRFaeRYzX4I067bezBDgyVcAX0TlwZIP9Yghhd/1Pya1eeRcGPFih44aHk5CMKILID2Xy0xHnFo2f3mmhRgdELll47t0HO1NlzMsvjWis5WuBg6nCSdEdoFM8fIOtGW6gJ7vdZ5EPD5etB6Wm/HeOEQQVx0+NR69QYk4QYbrHElKPYi1/Ixa340gcgMP4sdKLVxYvZtFaI31e4/RFrhOJO1K9ff/5L9J9FDzTT7mLRAQXg=","translations":{"en":{"changelog":"### Fixed\n- **Clustering stays inside the Memories timeline (#41).** `oc_memories` is wider than what Memories shows: the indexer walks the whole home tree by default (`memories.index.mode` = 1) while the timeline is narrowed at *query* time to the user's `timelinePath`, minus `.nomedia` / `.nomemories` subtrees and dot-folders. Reading the table raw clustered photos the user had deliberately kept out of Memories — ebook covers turning up next to holiday pictures, as reported.\n- New `MemoriesScope` service reproduces those query-time rules as a SQL predicate; every read of `oc_memories` goes through it. The home branch of `ImageFetcher` and both `DiaryPhotoFetcher` branches get the full predicate (timeline paths, the mounts inside them, and their exclusions).\n- `ImageFetcher::fetchImagesByFileIds()` left-joined `oc_memories`, so a fileid with no index row at all was usable for video rendering and diary entry locations. Inner join now; it stays un-timeline-scoped on purpose, since an entry mixes photos from several consented libraries.\n- The Group Folder branch joined `oc_mounts` by `storage_id` without scoping to the mount's root subtree, so it could reach sibling folders on the same storage. The allowed-root predicate now bounds it, the way the share branch already bounded itself.\n### Changed\n- `includeGroupFolders` / `includeSharedImages` get the `.nomedia` / dot-folder exclusions only, not the timeline-path restriction. They are opt-ins by name that already scope themselves by mount, and a Group Folder mounted next to rather than inside the timeline path must not silently vanish from a setting that promises to include it.\n- `tests/e2e/RELEASE-E2E.md` gains section 4 covering both checks, and `CLAUDE.md` documents the index-vs-timeline distinction."}},"signatureDigest":"sha512"},{"version":"0.35.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.35.0/journeys.tar.gz","created":"2026-08-26T14:31:29.449034Z","licenses":["agpl"],"lastModified":"2026-08-26T14:31:29.525830Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"M0DndOlhN4+XGKvFgEos9CqkG3vC0cFaxlNG8/d5G7P7AmCZqD9aHKOzVDQ5xHC88BEFAeHr1atiK6QY4btufNrfPrcbiP4q0aFvRpf47+Q6r+6VF6Uyezi02NnV51eEXSwMaB8+j7V604CXfb3piAe1rSxiHKGyll5/j3zK7ujjI8awqkiRfLHsqXpnmP5SHiKGHmib4jXLmcXVbNcWfTTCwMetCBdAjykNH1/RuEAt9ncqfVLJs0VhOGlHizSDy8NEb0N2+YpdSCwWdai425J3/yrTNIO2DStOkBPnWoWfU5C6v/0NtBgI8fW1dZh/vuuQ3qxRmWQxHbNuvNb1v3FR+m78xxcHQbNO7nB6hTCtxIueXRJvjczSTSYL0nvDcuJgba4A+e51llVsH8M0spGJ5IiD43xzQ1ZMM+CUgiiGF37eYb3lIB35xilExbpWcJqSXDiCueEU7iAsT7tAox63e8Mg0z6duefQ9MfIdIRj4z7LbanngAdRwdamvvy5YFrwzcQ6fdqnQyePa1yfBr2Fq6RKBeH5vabx7kxXzUZqpaQrJs4aDUow3jnB6th1Eb7OQlePooQmUr8Pf4JIjuJHL3zjguDGchrfBrFdXpHEtYiiePyezhk1xTlqNDwVi2jxkunQRlE8Uij9CHDaPnICSREP7lLB4n5UsGfluFo=","translations":{"en":{"changelog":"### Added\n- **Automatic clustering is opt-in.** Opening the Journeys app asks once — \"Yes, enable clustering into journeys\" or \"Not now\" — and a switch under Personal settings → Journeys changes it later. Both answers are stored, so the question is asked once either way (#34).\n- New `AutoClusterSetting` service holding the rule in one place, shared by `DailyClusteringJob`, `PersonalSettingsController` and `DiaryController`. New endpoints `POST /diary/clustering-consent` and `POST /personal_settings/auto_cluster`; the diary index now returns `clusteringAnswered`.\n### Changed\n- `DailyClusteringJob` skips accounts that answered no. For an account that has never answered it keeps clustering when there is any prior trace of the app (tracked albums, or any stored `journeys` user setting) and skips a fresh account — an existing install never silently stops, and a new one never produces albums of scanned receipts before anyone was asked.\n- Journals remain independent of clustering: the diary reads the Memories index and its own tables and never touches albums."}},"signatureDigest":"sha512"},{"version":"0.34.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.34.0/journeys.tar.gz","created":"2026-08-26T07:03:06.265717Z","licenses":["agpl"],"lastModified":"2026-08-26T07:03:06.333010Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"2ZSZGl8oO8A4P3E9LNMVsSB1PSMtrdg79mTFDQ0PsN91PG/8yTcuTm2HXFyrO9sw1L55ZesFLcl5ZHjSIU9tYoox7zB1ewe5K5plzIjnXgoCorxJC8Ief1wiRR9XzG+yG2EyjEKhvWGp9HAWWPyhHbDGabtPoyRL/V9YUF6JaiVrj1jAuGr+fgkHLxzE5ws9sVCxPq6fAMBzfTyOkzAuui6MAGJPfp9hEB0g9rgJBAkSf6mEhaOR6W4cSAv6MeVVzTNU3O0KXSDQ8X1Fo6saosXfBvR16nullTbzExtyIeoBoqsHdJT5BKYRC5Iy6yqwWR6hvqXSgLr0TTXEqhzEgSMA9w79rEvfEuqMJ0GV/GNtDxxsyqcLmPMiJcw6+RTCuIKCSVqB8c95vAv03zpF6usJKkrXuDls11qgdiuYo8eTbDLq3P9ZBuvLedQOlkLsp3ZYIinMbS382P7Hklc4WxtkB3x7SFiJrP5l57JstRUoMBSTMFGolaiHMNa3XxkW6BXW1Cy6+zulYFHnbg34f0m8JImtLz3vWXK/u0soYz/3VHu2AOV5lE3ssBuawGdn5lA4jLcjdXSAHKxwsaLdj4h+04eH5FM0YDX3lfgybLmW6ReUqPc72Kq5XIovDCGOXeHAhzH3Skk5C9d4fkS5OF34QXTxUokfx5aRC9ETdOQ=","translations":{"en":{"changelog":"### Added\n- Journals editor: **a month calendar in the day picker**. Days that hold photos are highlighted and show their photo count, days that already have an entry are marked with a dot, and picking a day fills the date input (#33).\n- New endpoint `GET /diary/journals/{id}/photo-days?from=&to=`, backed by `DiaryPhotoFetcher::countsByDay()`. It reads the same sources as the day picker — the caller's own library plus consenting members' libraries for days inside the journal's date range — so the counts can never advertise a day the picker would refuse to open. Days are grouped in PHP: MySQL's `DATE()`, PostgreSQL's cast and SQLite's `date()` disagree on truncating a datetime column.\n### Fixed\n- Journals: the \"completed\" badge used `--color-success` as a text colour, but that token is a background tint in both themes (`#D8F3DA` light, `#11321A` dark) — the badge read pale green on white. It uses `--color-success-text` now."}},"signatureDigest":"sha512"},{"version":"0.33.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/thrillfall/journeys/releases/download/0.33.0/journeys.tar.gz","created":"2026-08-25T16:02:27.297334Z","licenses":["agpl"],"lastModified":"2026-08-25T16:02:27.390840Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Y7jZB6wLFpQYzrpTzGj8r58fgmM76k2fxg4AdpqWXCzpup+nb+VWG8rxo42G3SHMGEwzDnpI9k/xWwbWu4/1Hyxyn7vZJxHQLj6JnxUQnIBWf8QBo2Uk/enMpj/gplE5ibdbeNU+ZJ5Uqs85dY200MtaGbx+gXlzw+7gX0IznEq9y7l2QtC0NKtD0KrX4nmmHaftm0iGH2Su10WzRbogV3vvwqxOTqbwhvXVYJApKvj7ZPaetBG8leLqvuMcGNEzB/Gt6ckI8eB59EbW2s0YPPG1cytqj7Rz7IEAF6P0Hd/ddEYqOkPs7Vtt6xa9FAiU3LIQ5LqKckfbi9rZbIw5fbL0Waa607ocYZZk5GSeC7+IHHUg5A8SLg/C1tadeEtQueRlZCAez13ZOQZwKpSW7xduQ0zeaLyg5CGg5HAZI8yxPZKrSsFJ3HrBhQKhZPKjO8lye4KgdOoJGs+oMwtVRAABTm85e+/3uCFdb0rIcufJCnWiUR7uu5WFWTAIx9hjj5g2AGjitOkxvl7eqRUtA2Fi4y4uOUDLlhOApWXi+7Rg9t0ARqHkviKP04BqVDVNOTxoqjY6ega4U2fqYA80Jvffm0x3LTTneNpdRDpRuHQGhwHRPYx3IsXNJBV77QcWlvix8UqMoHWD/hj2LrOt3kuBr28onY3J1mnlsBitOpE=","translations":{"en":{"changelog":"### Added\n- Journals: **description** — a journal can carry a short description under its title, written in the editor and shown in the journal list and on the public page. The column, the API and the public template already had it; there was simply no way to type one (#32).\n### Fixed\n- Journals: the day photo picker found nothing on installs where photos are not in a plain filesystem home storage. Object storage names the home storage `object::user:<uid>`, and photos on external storage or in a Group Folder live in a different storage altogether. `DiaryPhotoFetcher` now merges the home storage under both ids with every non-share mount in the user's own files tree, and `isImageInWindow` uses the same scope so a consent check accepts exactly what the picker offered (#35).\n- Clustering: the same `home::<uid>` assumption made `ImageFetcher` return zero photos on object-storage installs. Its raw SQL now also uses the `*PREFIX*` placeholder instead of a hardcoded `oc_`.\n- PostgreSQL: `user` was unquoted in the raw queries against `*PREFIX*photos_albums`, where it resolves to the database session user rather than the column. Every tracked album looked deleted, the tracking table was wiped at the start of each run, and the daily job re-created the full album set every day without removing the previous copies (#39, thanks @torvalstrom).\n- PostgreSQL: `fetchImagesByFileIds()` built its `datetaken` fallback with the MySQL-only `FROM_UNIXTIME`, so saving a diary entry's photo selection answered HTTP 500. The fallback is applied in PHP now (#40, thanks @torvalstrom).\n- PostgreSQL: `SimplePlaceResolver` called PostGIS functions on `memories_planet_geometry.geometry`, which Memories stores as PostgreSQL's built-in `polygon` type — the lookup threw once per photo per run and silently degraded to the per-file fallback. It uses the built-in geometric operators, which match Memories' GiST `poly_ops` index, and a failing lookup is logged once instead of once per point (#36, thanks @torvalstrom).\n- Nextcloud 35: `RemoveAllAlbumsCommand::execute()`/`configure()` lacked the return types Symfony Console 7 declares — a fatal error that aborted `occ app:update --all` (#37, thanks @CarlSchwan).\n### Changed\n- Compatibility: declare support for Nextcloud 35 (`max-version` bumped from 34 to 35)."}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RocmlsbGZhbGwvam91cm5leXMvbWFpbi9hcHBpbmZvL2pvdXJuZXlzLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Journeys","summary":"cluster images by time and location","description":"Automatically clusters your photos by time and location into journeys (trips, vacations) and creates a Photos album for each. Only photos inside your Memories timeline path are used.\n\n**Requires the Memories and Photos apps.**\n\n- **Journey albums:** created daily in the background (opt-in), with place-and-date names like `Iceland — Aug 12–19, 2024`. Home-aware: local days and trips are clustered with separate thresholds; adjacent trips in the same country are merged.\n- **Journals:** a travel diary with day entries auto-filled from your photos. Share with users for co-editing or publish to a revocable public link with route map and travel stats.\n- **Videos:** render a journey into an MP4 highlight reel (requires `ffmpeg`), saved to `Documents/Journeys Movies/`. Optionally weaves in short clips, with their own sound, from the trip's videos.\n\n    php occ journeys:cluster-create-albums <user>"}},"isFeatured":false,"authors":[{"name":"thrillfall","mail":"thrillfall@disroot.org","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAzCCAusCAhKwMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUwNzE2MTU0NDUxWhcNMzUxMDIyMTU0NDUxWjATMREwDwYD\nVQQDDAhqb3VybmV5czCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAONe\njwJD9OVnNsRqeSvTNrfMqKlQra9c5RmfzEjxXO41dB6k9HfYRANUKV9pyp78Sw1l\nmtUQjlsQq85sjKLzd4nb/75vXncwcQnt91zRAkaYFpXZp32U4wO/BaPjonmJy9Zc\nQ3zGpxCuw4nDnBek0btim3KPo0kpsvpAS+lk9Pxzucee/Bn/zfA9scvY0j6JkbnR\nz1htrvj+Qe8GHDqqn2GPhq4QWyL/lOsg09wJegfW3LVo+kmW6mVXXe0eEGjmjCIp\nPsepMsQsy0qknc6/bP1CylIeJQRFt5fb1TX2XDv26xa3E7nDPvUYusQoZY9OYV3v\nLkvcYCw/cZ6KPuxe/DTftX/boao/P/WGqcS5dDj7V3R7ZcZsweONCSwPeTHu4Khh\n2lCbC8Bp+sRaGOhP7WFFHOd20BDX2jgJMHBfO4VEPCHz+lvmTvV43NOkjRDglZP4\nvVqYDp9F+caRmNx+kVQvrgusvmlXFrXGc1AbxVgD9Dc0u12JKP9x4tTP7IjMmzqa\nSKFrQJVbXBG/5BtVg7ZRXk2oYHvnW1LJe2LR4Vk8SjtrUj9e/zVdbxWuuctGZVJQ\nxmdzfRk1g2CQG/RzsISTxGMdtYr2rZLNtHXJFMH/pByCrXP7mAALIgLBLxEb5ERg\nAZ0/WElKSH6WaRwbmMd3anWssjUZTcwR57tiKYWRAgMBAAEwDQYJKoZIhvcNAQEL\nBQADggEBAFOnrh4kVMkMU5BMECUXNNH/eQshfpirpRmHyo+yBEUApZ+JTQrGhQaO\ny1UOiyy0l+qC/JSbXu9Jwa+I3rz0soYUB2jMAwu5CuXxvjQXD1rDzdbz5CJgqSer\nK0GCHR02ytijiJHwigt76a/owzqLAO+/WjUMe2das1eMy/fb9WHYIj8GE4L23zYr\nxLIuYqNtkGVLui2gNIFftvoU9ciqYsR8zFTn0y+l2ycMSClx1jIT3hGF7YWF6yzZ\nuGhfhlLYejidrXLkinNwHQuJyXIuk/3GqqwBN9KGdajrvfhYhtpO7rhE83ptmmxw\nvUgxA54hEjlImJW/bBd6tMNjT+gwVAk=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"netbase","categories":["monitoring","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/ktec-nc-apps/NetBase/issues","website":"https://github.com/ktec-nc-apps/NetBase","created":"2026-09-05T03:53:10.092564Z","lastModified":"2026-10-20T02:26:48.782902Z","releases":[{"version":"0.9.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.9.4/netbase-0.9.4.tar.gz","created":"2026-10-20T02:26:48.762187Z","licenses":["agpl"],"lastModified":"2026-10-20T02:26:48.858166Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"g2sithzKrghJloprqXoFmIcbH76PUWdwp20iEadNUASam136gtuliAT33vlm3lxc4CToCnvp3JQuFiG/1APXRFh5pjoyddQQaM9uca5xOjso1qu6c/BGHdUBmSAPqzcg2Us9NyWXJnS4djHuIzN/ifr4AqWVEncogEKhq+t9mb4HBDZegB2i1JRG6dq8Nc9wXS2Ta1VxzdJvLvGy7CXh/18ojyMIi9SinB9IdqQL4nCpaQW6D+1vMD0bSPx297oKdzk2ZqN6wATuskoIiV4UK1NdWXZ/Mh6fc5nH2wZcL7Yvz/SkA8hwoFFLcFc+jVJeM/t6Vo/4d8ppmyp1o+L6bwOGwIZg2oWXZEjU3uBaAOAjHpxynC17l57P8DDdILTbSQmFsdnTLlQ8OrfjZoPjsnbxZjIcJbYAGQ+7NleFm7ckrx6FJ+CR65GIsJFzVTtMaSZjsw+MjIsw4rVPs9zYoXNHzWFYT0xdVtrLAa0NXcy8CAubT369T7BM6WledaPeJywaCQsSo58DM3CHsvfGuzWxcFXM+1MYZB2gzS+xGWTj05w3wWoxcXNSxs/bblsdWgsxDsEk3teXSJobtUCyedhM3r0S+qj3Q5VuU94tWZknVZfEYK7LoNu7MLiGOwWXPdlemyKtOyObLXMuTdPXwbtbJ46/Y1AJkPishhTnWDg=","translations":{"en":{"changelog":"Two fixes to device scanning, reported on the forum.\n\n### Fixed\n\n- **\"Scan finished\" counted the whole list.** It gave the number of devices online in the whole list, not in the range that was scanned. Since 0.9.0 a scan of one network no longer sets the devices of other networks offline, so they were counted too, and the message read as though every network had been scanned. It now says how many devices are online in the range that was scanned, and names that range. The scan itself was already limited to that range.\n- **A type picked from the list was replaced at the next scan.** A type NetBase can guess by itself, such as a router or a camera, was kept only while it matched the guess: a router picked by hand could turn into \"Host\" at the next scan. A type picked by hand is now kept by every scan, whatever it is. Picking \"Unknown\" lets NetBase guess the type again. Types already replaced need picking once more.\n\n（日本語）\n掲示板で報告いただいた、機器の探索の不具合を2つ直しました。\n\n### 修正\n\n- **「調査完了」の台数が一覧全体の数だった。** 調べた範囲ではなく、一覧全体のオンラインの台数を出していました。0.9.0 から、ひとつのネットワークを調べても他のネットワークの機器をオフラインにしなくなったため、その台数も数に入り、すべてのネットワークを調べたように読めました。今は、調べた範囲でオンラインの台数を、その範囲と一緒に出します。調べる範囲そのものは、もともと指定のとおりでした。\n- **一覧から選んだ種別が、次の探索で置き換わった。** ルーターやカメラのように NetBase が自分で推測できる種別は、推測と同じ間しか残らず、手で選んだルーターが次の探索で「Host」に変わることがありました。今は、手で選んだ種別はどれでも探索で置き換えません。「不明」を選ぶと、また NetBase が推測します。すでに置き換わった種別は、もう一度選び直してください。"}},"signatureDigest":"sha512"},{"version":"0.9.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.9.3/netbase-0.9.3.tar.gz","created":"2026-10-19T14:43:05.019930Z","licenses":["agpl"],"lastModified":"2026-10-19T14:43:05.079590Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"f2EDHJ+cvT/a6twgplQVDLqvU6Dm3jE91W4iPCf/MPNlqQStCloFISzdlwwUQNkTGg2FlJ7VV5wFkyu1eCAjmaJjGLyHXJ/1XfQjsYzgFpIsyj93PxXA9BLwjc7AhSo/9Y/EkpbXUwRkFqH/JKzV80YVvz8mb/kRYLcCFZftZIo9I6Zml9vzMGoPovAeb3k4ioZMH+qXiff6PV2kyXAcwvqDMRbch4CKnahIvpg/B0vJ5PQocD985ro3HljiUKa/+lSyJtohfvGPhbnE5Iw4MGX5gR135cYsep0Hyo94vKsqaMRf93QXm9zsabXrmDNdKt4NHrkFMfWOPpLFYvMyN0VrbjxspVbTY/R252ZultxnzvmWL6PZEvxhfWQLjHiv2oLoeNX3AXJKBNKIZvEIPplgPJ4kgAFB4jSp2MuehNxohb+VZhlmLzVUKwnqI5ea/diGOZASaZKt1vRTEtpAABPXmNfywoNNYoYgHxeq5DIFqQIVgsBNffvR81cjUg7eJh0CKZZTst8b+p8zjCoEcWTgKshidQCFyeih4sJexJpOD0JHw1fTS9G0Z2qbe+Qd/eP/3YWD8RxrwYGEtht44Z9k6tIYzwzGyFvH/3cHWGHh7h/TI7vLc61a8bITAV1aZgRwg365PKlMXYrwbJLhfhLONy/Ubko4FYhhkC4HQFA=","translations":{"en":{"changelog":"The example under the terminal's environment variables now fits the person reading it.\n\n### Changed\n\n- **The example for the environment variables** (Settings → Terminal → SSH windows) was always \"LANG=ja_JP.UTF-8\". It now shows the locale of the person using NetBase: the language NetBase speaks to them, and the country from Nextcloud's region setting, or else from the browser's languages, or else the country where that language is most used — \"LANG=de_DE.UTF-8\" in German, for example. For a language with no country to go by, it shows \"LANG=C.UTF-8\", which keeps the letters of every language readable. It is only an example: nothing is sent until something is written there.\n\n（日本語）\n端末の環境変数の欄に出る例を、見ている人に合わせたものにしました。\n\n### 変更\n\n- **環境変数の例**（「設定」→「端末（シェルとSSH）」→「SSH ウィンドウ」）：これまではいつも「LANG=ja_JP.UTF-8」でした。今は使っている人に合わせて出します。言語は NetBase の表示言語、国は Nextcloud の「地域」の設定から、それが無ければブラウザーの言語から、それも無ければその言語が主に使われる国から取ります（ドイツ語なら「LANG=de_DE.UTF-8」）。国の決まらない言語では、どの言語の文字も読める「LANG=C.UTF-8」を出します。例を出すだけで、欄に書くまでは何も送りません。"}},"signatureDigest":"sha512"},{"version":"0.9.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.9.2/netbase-0.9.2.tar.gz","created":"2026-10-19T12:50:58.410045Z","licenses":["agpl"],"lastModified":"2026-10-19T12:50:58.466820Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"TADqVpkGEs/vaY0fwfFKGoTL1AcX2PlXET+ohdviMmm85I9HPagQ+nl6ZGXZi6XSOHwRgBkpqzROcfXoSYPRtXYyAznX60XEOcJqJhHj6foXLXziFqjYcRw/XMzxcb3RzV8xaqSMbGivW6LCnlTX5BH01I8xm2itvo+ZAmPL/FGDeQo6QjBdelYZ8g3OWynbJEOHK96siuitR7wLS0ILimj57HhnyKf2SgOTfq7J5IZY9RwA0/oKGoDaVaIQdai+FevcLChzqTVPUR+Gxr/FW2pe77eFZJPNyUZNVyfR+NSzhAvbp3V3/C/9O15z8DhJ7fU5USNovWA5brqzg0vjU3lCRqVGC0d5uX66KYC4PX+vy4idfTkl4Bz7poMEZbQe6eF7mD31v8JL9LK2RDt3/SJNbf21H6U4auV8WGYfnpwrUZ1ntfr/B72AJpZAu5ocVPDr1wEoxlDnQSpdemEj/Xcp2uYjNlRRTczj53tcIp1W+cQPT27I5MMkARVeZ9MHlVLEcHwux0ka+r5c/ajSTKCqKaCYj4+BqjJq57Mt+FJGvBAwt1DuhN7Uiu1A3SK7bdtB0lrUGEH0Z+snZElO8DN4XO3rFAXov5KTV9CIZTI0/KZkoN+bjuDxs4WcQxx6LC1zUApURP5aqtxEiH9yXLahQ6An9lHrTO8gxHLujw8=","translations":{"en":{"changelog":"Terminal settings after TeraTerm's, and the colours in SSH windows.\n\n### Added\n\n- **Terminal settings** (Settings → Terminal), modelled on TeraTerm's setup menus: the terminal type the server is told; the character encoding both ways (UTF-8, Shift_JIS, EUC-JP, GB18030, Big5, EUC-KR and others), for an older server or device; environment variables sent with the shell, as OpenSSH's SendEnv does (a server takes only the names its AcceptEnv allows, usually LANG and LC_*); a keep-alive, so that a router or firewall does not drop a quiet connection; what Enter sends (CR or CR+LF) and what Backspace sends (DEL or BS); the lines to scroll back; and the cursor's shape and blinking.\n\n### Fixed\n\n- **Colours in SSH windows.** The terminal told the server it was a \"vt100\", the SSH library's default, which has no colours. Programs that look at the terminal type, such as htop, drew in black and white, while scripts that print their own colour codes still showed colour. It now says xterm-256color.\n\n（日本語）\nTeraTerm を手本にした端末の設定を加え、SSH ウィンドウの色の不具合を直しました。\n\n### 追加\n\n- **端末の設定**（「設定」→「端末」）：TeraTerm の設定メニューを手本にしました。サーバーに伝える端末の種類、古いサーバーや機器のための送受信の文字コード（UTF-8、Shift_JIS、EUC-JP、GB18030、Big5、EUC-KR など）、OpenSSH の SendEnv と同じようにシェルと一緒に送る環境変数（サーバーが受け取るのは AcceptEnv で許した名前だけで、ふつうは LANG と LC_*）、通信の無い接続をルーターやファイアウォールが切らないための合図、Enter で送る改行（CR または CR+LF）と Backspace で送る文字（DEL または BS）、スクロールバックの行数、カーソルの形と点滅を設定できます。\n\n### 修正\n\n- **SSH ウィンドウの色。** これまでは、使っている SSH の部品の既定のまま、色の無い「vt100」だとサーバーに伝えていました。そのため、htop のように端末の種類を見て描くソフトは白黒になり、色の記号を自分で書き出すスクリプトだけ色が付いていました。今は xterm-256color と伝えます。"}},"signatureDigest":"sha512"},{"version":"0.9.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.9.1/netbase-0.9.1.tar.gz","created":"2026-10-19T09:41:02.062514Z","licenses":["agpl"],"lastModified":"2026-10-19T09:41:02.132635Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Wc9qVq/3s3FI+zy2ecS2O6TpsKIZJUKCx6Wh2ZWl+wOxseEKgzOaWBY969U0N6ogUyRGo6A36qzfrUz/j8JvnYgorI/kVNKf4NgEXZPB0BCgqHDbi/Ovb9M13dd8wnMOF8WlTcC4X9Yota1oDdlwXgVCsvkIfLz6hx58ySPBKNlo+nBRjSCjgQzdkzHi+48DwTr0vPCCf3MC54a1iIeR3ZdbK7Kbn8LDfIPYQiho56nv5qvG3uZwu/adWfhtyPoVSZD4pwwUqpF0+5dEWcpomOKAOUDTQ965K9Lltgz2Cv/nwI9O+9OW2S99GzugT3UTqqd7jKCX+xYXpNdPCkQvzq6sdm6Z+wMcBZcpGzHpSN/+R+NjIDsDBwB7l3hCMReH91G+H8keodttnTpebW6OO/k7WECh3TSnpmHG8YmptytDqoriZ98RY2hHWtd+3BEoZxUaeKy0m46olWOcVjPzp23eqRSkr4MGpeqYjZB21zfs0uInkFTxnAuAZn9M0qLq7W43aVtMhrx+dTMVHbS4wGNBsGLcb7m3BQMUmTPkGfnWNRRoZdWk3o6uCcKVaJ4Dv2JGsFD5zVEgPSk6P8+1TY6vfyTmGIQCavNyHTp0UIPDiJs2GYYOqaoQLOiqFKKtF3tvQwHjkeJB3hfPTP2ZQ93xDak4+ay3WrSZ2fjDMaU=","translations":{"en":{"changelog":"Translations corrected after a review, in every language but Japanese (which was corrected in 0.9.0), and two small fixes. No feature was added.\n\n- \"The whole network\", one of the two choices of what a scan covers, was translated as \"the network range\" in most languages, and the English screen itself said \"Network range\". A service's banner had become a street banner, a rack PDU a household power strip, and giving up root letting go of it by hand. These and other wordings are corrected.\n- In Czech, Ukrainian, Polish and Korean, RegiBase's collections are now called by the word RegiBase itself uses.\n- **The well-known ports are 1 to 1023**, as IANA defines them, and the high ports 1024 to 65535. Port 1024 was counted among the well-known ports.\n- The Mail page's subtitle now says that it reads and sends mail, not only that it sends a test message.\n\n（日本語）\n日本語以外のすべての言語で、翻訳の見直しを受けて訳を直しました（日本語は 0.9.0 で直しました）。あわせて小さな修正を 2 つ行いました。機能の追加はありません。\n\n- 機器のスキャンの対象を選ぶ「ネットワーク全体」を、多くの言語で「ネットワークの範囲」と訳していました（英語の画面でも「Network range」と出ていました）。サービスのバナーを横断幕、ラック用の PDU を家庭用の電源タップ、root の解除を「手を離す」と訳していた箇所なども直しました。\n- チェコ語・ウクライナ語・ポーランド語・韓国語では、RegiBase のコレクションを、RegiBase と同じ語で呼ぶようにしました。\n- **ウェルノウンポートを、IANA の定めどおり 1〜1023 番にしました。** ハイポートは 1024〜65535 番です。これまでは 1024 番をウェルノウンポートに含めていました。\n- メールの画面の説明を、テストメールを送るだけでなく、メールを読み書きできることが分かる文にしました。"}},"signatureDigest":"sha512"},{"version":"0.9.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.9.0/netbase-0.9.0.tar.gz","created":"2026-10-19T07:21:46.176398Z","licenses":["agpl"],"lastModified":"2026-10-19T07:21:46.232020Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"W3yr8mACqsPIs9Yoj8yuFMnKg7HcBRU4ARQzpH/Z3GzFF7cIZxLDGUTvmoHdBOepDfIJYtpKlCS8acZXRKs7OwLfEuLQRATESdN7dWKRM2jwnKBTtEZjL2taROhJLse64CdBcmDNJcd6xL7y2zL1V9bwSZTgEoSlsKwt1xn8XyPV3bxxrmRA0oHFyFigsWVI/A88hPAPynUzhebT+GCoAGfIsELFudNKKWzeOCC6j/LSuI3dSbdqfncla1XxNSvU3ema7KUC7Qa53WwS1s2Q7hBZMc7YFmjED9FWMEQcJ8iOVIRrGpn0/4+AUmaJbMQfottClKfFsQ4TGLoIyNxCJOfZoC1n9dL/g4YYi1Rp7mwGSOrbditggYV5bTspDUCZf2cMG5hhXXADol9LlKrQkPx1tvBb76zv7u9hUjvkgMFDFKzWZW0xbnQUTRfo+rDeaAL/dE1weNio+wvrfN11jNqpLrsqQz7FRLktyF/5AOWPdHMz0tZU9ET7BGZO98KPOQYnSWDucxrSk6JGd4EeBP8LGK8MkFqjaVDeRUlQREj+7xfrUrJ9NHw5DtGqYCsbuARk2p1Cf2XjFbwdxCHJa/7sXOZuOUeqgizJRfH9tOhFOiiAoU7o0LxoR/0tjuZ0RydzI+qkBxDNVQ0MuM58cCawwWcJwLka1Uw7ZlzDJEU=","translations":{"en":{"changelog":"File transfer becomes a full file manager, the mail page becomes a basic mail client, and a device page that does not work in its window can now be diagnosed.\n\n### Added\n\n- **File transfer**\n  - Right-click a row for what can be done with it: copy, move, compress, extract, convert, change permissions, copy its address. Several rows can be chosen at once with Ctrl and Shift.\n  - **Compress and extract** ZIP, tar, tar.gz, tar.bz2, tar.xz, tar.zst, 7z, gz, bz2, xz and zst, and extract RAR. NetBase checks which tools the server has, and a format it cannot make there is shown greyed out with the reason. Where there is no shell (FTP, or an SFTP-only account), ZIP, tar, tar.gz and tar.bz2 are made and opened on the Nextcloud server instead.\n  - **Convert the text encoding, line endings and BOM** of a file: UTF-8, UTF-16, Shift_JIS, EUC-JP, ISO-2022-JP, GB18030, Big5, EUC-KR, Windows-1252 and others. The current encoding is detected, characters the new one cannot hold are named before anything is written, and the result is saved under a new name unless you choose to overwrite.\n  - **When a name is already taken:** overwrite, overwrite if newer, overwrite if the size differs, resume, keep both, or skip — for this file only or for all the rest.\n  - Resume an interrupted transfer, retry a failed one, keep each file's date and time, and limit the speed in either direction.\n  - Filter the list (* and ? work), search the server, compare the two sides, browse both sides together, keep bookmarks for each connection, and use the keyboard (Del, F2, F5, Enter, Backspace, Ctrl+A, arrows). New folder, rename and delete work on the Nextcloud side too.\n  - **Change user:** act as any account on the server through sudo — root, www-data or another — including servers where sudo asks for no password. Switching opens that account's home folder, and stopping goes back to where you were. The password is used for the request only and is kept nowhere.\n- **Mail server connection** (the Mail page): read mail over IMAP or POP3, with folders, search, read and unread, flags, move and delete (to the trash first). Write new messages, reply, reply to all and forward, with attachments from your Nextcloud files and Cc and Bcc; a copy is filed in Sent. Opening a message marks it as read unless that is turned off, and reading over POP3 leaves it unread on the server.\n- **Transfer speed to a saved connection** (Benchmarks): send and receive from 1 MB to 1 TB to a saved SFTP, SCP or FTP server and see the real throughput, with a stop button and a check for free space first.\n- **Diagnose a device page.** When a device's page comes up blank in its window, or does nothing when clicked, press Diagnose at the top right of the window, do what does not work, and press Finish. NetBase then shows what happened: the requests the server carried for the page and what came back, the device's headers that NetBase does not pass on to the browser, and the page's errors, clicks and form submissions. It holds no passwords, nothing typed into the page and none of its text, and the values after \"?\" in every address are hidden, so the report can be copied into a bug report as it stands.\n- **Device windows say what they are doing:** \"loading\" after a click inside the page, for devices that take seconds to answer, and a note when a device answers with an empty page, instead of a blank window.\n- **Brazilian Portuguese.** pt_BR was a copy of the European Portuguese translation; it is now written the Brazilian way (arquivo, tela, usuário, senha), and NetBase's language setting offers both.\n\n### Fixed\n\n- **Scanning one network no longer marks the others offline.** A scan set every device offline and brought back only those that answered, so scanning one LAN turned the devices on another LAN offline. Now only devices inside the range being scanned are affected.\n- **Ports no longer disappear.** A scan replaced a device's ports with what it found that time. Now only the ports actually tried are updated, and a scan in which nothing answered keeps what was known.\n- **Port 5001 opens.** Synology's HTTPS management page on port 5001 was shown greyed out in the device list and could not be opened; 5001 is now one of the common ports, like 5000.\n- **Device windows:** a page whose scripts are sent compressed now loads instead of staying blank; addresses that a page's own scripts write are no longer rewritten twice; and a device that moves to another port of its own (http to https on 4444, for example) no longer counts as leaving the window.\n- **Saved connections open with a newer RegiBase master key.** RegiBase 0.20.0 and later make the master key with more rounds, which NetBase did not read, so the key was refused.\n- **Long transfers and commands over SCP** no longer fail after 30 seconds: the time limit now counts only silence.\n- **Folders showed as empty** when sudo asked for no password.\n- **Error messages from the server** are shown in your language; some were always in English.\n- **The error bar** goes away when you do the next thing, instead of staying until it is closed.\n- **Right-click menus** fit in the window instead of being cut off at the bottom.\n- A typed-in mail account keeps its outgoing server and port; port fields show numbers of four digits or more in full; connection fields no longer run past the edge at phone width.\n- **Translations:** words left in English in several languages (Test message, Subnet, the example group names), a Japanese punctuation mark in the Korean text, and Japanese terms corrected after a review (the whole network, well-known ports, high ports and others).\n\n（日本語）\nファイル転送を本格的なファイル管理の機能にし、メールの画面では基本的なメールソフトとして読み書きできるようにしました。ウィンドウの中で正しく動かない機器の画面を調べる「診断」ボタンも追加しました。\n\n### 追加\n\n- **ファイル転送**\n  - 行を右クリックすると、コピー、移動、圧縮、展開、変換、権限の変更、アドレスのコピーができます。Ctrl や Shift を押しながら選ぶと、複数の行をまとめて扱えます。\n  - **圧縮と展開**：ZIP、tar、tar.gz、tar.bz2、tar.xz、tar.zst、7z、gz、bz2、xz、zst の圧縮と展開、RAR の展開に対応しました。接続先にどの道具が入っているかを調べ、作れない形式は理由を添えて灰色で表示します。シェルが使えない接続先（FTP や SFTP 専用のアカウント）では、ZIP、tar、tar.gz、tar.bz2 を Nextcloud のサーバー側で作成・展開します。\n  - **文字コード・改行コード・BOM の変換**：UTF-8、UTF-16、Shift_JIS、EUC-JP、ISO-2022-JP、GB18030、Big5、EUC-KR、Windows-1252 などに対応しています。今の文字コードを自動で判定し、変換先で表せない文字があるときは、書き込む前にその文字をお知らせします。変換した結果は、上書きを選ばない限り別の名前で保存します。\n  - **同じ名前のファイルがあるとき**：上書き、新しければ上書き、サイズが違えば上書き、続きから、両方残す、飛ばす、から選べます。このファイルだけにするか、残りすべてに当てはめるかも選べます。\n  - 中断した転送の再開、失敗した転送のやり直し、更新日時の保持、送信・受信それぞれの速度の上限を設定できます。\n  - 一覧の絞り込み（* と ? が使えます）、サーバー内の検索、左右の比較、左右を連動させた移動（同期ブラウズ）、接続先ごとのブックマーク、キーボード操作（Del、F2、F5、Enter、Backspace、Ctrl+A、矢印キー）に対応しました。Nextcloud 側でも、新しいフォルダーの作成、名前の変更、削除ができます。\n  - **ユーザーの変更**：sudo を使って、root や www-data など、接続先のどのアカウントとしても操作できます。sudo にパスワードが要らないサーバーにも対応しています。切り替えるとそのアカウントのホームフォルダーを開き、やめると元のフォルダーに戻ります。パスワードはその操作にだけ使い、どこにも保存しません。\n- **メールサーバー接続**（メールの画面）：IMAP と POP3 でメールを読めるようにしました。フォルダー、検索、既読・未読、フラグ、移動、削除（まずごみ箱へ）に対応しています。新しいメールの作成、返信、全員に返信、転送もでき、Nextcloud のファイルの添付、Cc と Bcc が使えます。送ったメールは「送信済み」に保存します。開いたメールは既読になります（設定で変えられます）。POP3 で読んだメールは、サーバー上では未読のまま残ります。\n- **保存済みの接続先への転送速度**（ベンチマーク）：保存済みの SFTP・SCP・FTP サーバーとの間で 1MB〜1TB のデータを送受信し、実際の速度を測ります。途中で止めることができ、始める前に空き容量も確かめます。\n- **機器の画面を診断できます。** 機器の画面がウィンドウの中で真っ白になる、押しても反応しないといったときは、ウィンドウ右上の「診断」を押し、うまく動かない操作をしてから「終了」を押してください。サーバーが中継したリクエストとその応答、NetBase がブラウザーに渡さなかった機器のヘッダー、画面で起きたエラー・クリック・フォームの送信を一覧で表示します。パスワード、画面に入力した内容、画面の文章は含まれず、アドレスの「?」より後ろの値も伏せるため、結果をそのまま不具合の報告に貼り付けられます。\n- **機器のウィンドウが状況を伝えるようにしました。** 応答に数秒かかる機器のために、画面の中を押した後は「読み込み中」と表示します。機器が中身の無いページを返したときは、真っ白のままにせず、そのことをお知らせします。\n- **ブラジル向けポルトガル語。** pt_BR はポルトガル向けの翻訳をそのまま使っていましたが、ブラジルの言い方（arquivo、tela、usuário、senha）で書き直しました。NetBase の言語設定では両方を選べます。\n\n### 修正\n\n- **1 つのネットワークをスキャンしても、ほかのネットワークの機器がオフラインにならないようにしました。** これまでは、スキャンのたびにすべての機器をいったんオフラインにし、応答した機器だけを戻していたため、1 つの LAN を調べると別の LAN の機器がオフラインになっていました。今は、調べる範囲の中の機器だけが対象です。\n- **ポートが消えないようにしました。** これまでは、スキャンのたびにポートの一覧をその回に見つかったものに置き換えていました。今は、実際に調べたポートだけを更新し、何も応答しなかったときは、分かっているポートをそのまま残します。\n- **5001 番ポートを開けるようにしました。** Synology の HTTPS 用の管理画面（5001 番）は、機器の一覧で灰色になって開けませんでした。5000 番と同じく、よく使うポートとして扱います。\n- **機器のウィンドウ**：スクリプトを圧縮して送る機器の画面が、真っ白にならずに表示されるようにしました。画面のスクリプトが書き出すアドレスを二重に書き換えないようにしました。機器が自分の別のポートへ移ったとき（http から 4444 番の https へなど）に、ウィンドウの外へ出たと判断しないようにしました。\n- **新しい RegiBase のマスターキーで、保存済みの接続先が開けるようにしました。** RegiBase 0.20.0 以降はマスターキーを作るときの計算の回数を増やしていますが、NetBase がそれを読んでいなかったため、キーが正しくないと判断されていました。\n- **SCP での時間のかかる転送やコマンドが、30 秒で失敗しないようにしました。** 時間の制限は、通信が途絶えた時間だけを数えます。\n- sudo にパスワードが要らないサーバーで、フォルダーの中身が空に見える不具合を直しました。\n- **サーバーからのエラーメッセージを、お使いの言語で表示するようにしました。** 一部は常に英語で表示されていました。\n- **エラーの表示**は、閉じるまで残らず、次の操作をすると消えるようにしました。\n- **右クリックのメニュー**が、下の方で切れずにウィンドウの中に収まるようにしました。\n- 手入力したメールアカウントの送信サーバーとポートが保存されない不具合、ポート番号の欄で 4 桁以上の数字が切れる不具合、スマートフォンの幅で接続先の入力欄がはみ出す不具合を直しました。\n- **翻訳：** いくつかの言語で英語のまま残っていた語（Test message、Subnet、グループ名の例）、韓国語の文に混じっていた日本語の記号を直しました。日本語は点検の結果を受けて用語を見直しました（「ネットワーク全体」「ウェルノウンポート」「ハイポート」など）。"}},"signatureDigest":"sha512"},{"version":"0.8.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.8.3/netbase-0.8.3.tar.gz","created":"2026-10-13T11:19:33.859124Z","licenses":["agpl"],"lastModified":"2026-10-13T11:19:33.906786Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Mq9uRveiDViijSXC0ZTt1AWdoQdx22HhhNguFHoLq1K+nuRm+w1CPIQRUC3gHIs+iJIHlDpl8igf13wBt+eHV19eNY1h/ISs5mLUlxb8zx82cQUT8ZTG9glPYBSp+vt2CzOMBjv4SQBpN9O2/p5XpA4IzXgLErpJHMCjy9Slm3cBpwpeuk9M5TpPhzEjCE4atJOaw6XG0CooPTxEUO39AIDSY7+JdRcMt2Bt9OohVJxD3IjwLhnToio/ng4Xk0hU2STdscZGImwyEnNR39QrRnmwnuKSOFVSeZd3qglcXdpbhtVYCdcet1858zsHyMu8PNG93J0mSEXt2p7hBMm8nnjqxyxSYNbbtmQdsrYobd2FjqwyUKPDERlNgLddaer0m0V08PlfJWHIx6RAIEP4SVRovFXfuJQ6Uqe/eM/JTGsPWZsZjwZYFL5o1Gd0oWBzcd6kwZbDpwQgphgKeUBlnrRKmlihph59pEVPyyNxhCSzy2yGahX0CszpfI6sYsYiBirXDDoXFSCTdi+eQAv8tCyPsH+jK1f94RvwKM2+0y0sBTRzejVk/dNQ2zuuOxYOlrxGSJlbKNSvbBvCORtK4hkuSaa7Ud9zgh5VQ+zal+j98S7amjrGAC+UDrSKPsLLXHyMCG4Qbze8NLfyta8QfUgMnzBQxtUQwYfb7OKzDTw=","translations":{"en":{"changelog":"Wake-on-LAN works where NetBase cannot broadcast on the LAN itself — Nextcloud AIO and other containers, or a server on another subnet — and for devices it has never seen.\n\n### Added\n\n- **Type a MAC address for Wake-on-LAN.** A device that is off answers nothing, and across a router or from inside a container its MAC is never seen. It can now be typed in the device's details, or when adding a device by its address — a device that is off can be added and woken straight away. The Wake on LAN button appears for any device with a MAC, seen or typed.\n- **Choose how the magic packet is sent** (Administration settings → NetBase → Wake-on-LAN): this server sends it to an address and port (the usual broadcast, a subnet's broadcast address, or a relay); a command or script runs on this server; or a command runs on a machine that is always on, through a saved SSH connection. `{mac}`, `{MAC}` and `{ip}` are filled in, and only a checked MAC and IPv4 address are ever put in.\n- **A relay for containers.** `resources/wol-relay.py` runs on the host, takes magic packets on one UDP port and sends them out as a LAN broadcast. It forwards nothing else and needs only Python's standard library. See \"Wake-on-LAN\" in the README.\n\n### Changed\n\n- **Where the packet goes is the administrator's setting alone.** A request can no longer name its own broadcast address or port.\n- **The icon beside a tool's title** is now the same line icon as the tool's row in the sidebar; it was still the old emoji.\n\n（日本語）\nNetBase 自身が LAN に放送を出せない環境（Nextcloud AIO などのコンテナ、別の網にあるサーバー）でも、また一度も見えたことのない機器でも、Wake-on-LAN を使えるようになりました。\n\n### 追加\n\n- **Wake-on-LAN 用の MAC アドレスを入力できます。** 電源の切れた機器は何も応答せず、ルーターの向こうやコンテナの中からは MAC アドレスも見えません。機器の詳細や、アドレスで機器を追加するときに、MAC アドレスを入力できるようにしました。電源の切れている機器も追加でき、そのまますぐ起動できます。「Wake on LAN」ボタンは、見えた MAC か入力した MAC のある機器すべてに出ます。\n- **マジックパケットの送り方を選べます**（管理者設定 → NetBase → Wake-on-LAN）。このサーバーから指定したアドレスとポートへ送る（ふつうの放送、網の放送アドレス、中継役）、このサーバーでコマンドやスクリプトを実行する、常に動いている機械で保存済みの SSH 接続を使ってコマンドを実行する、の 3 つです。`{mac}`・`{MAC}`・`{ip}` が置き換わり、差し込まれるのは形を確かめた MAC アドレスと IPv4 アドレスだけです。\n- **コンテナ向けの中継役。** `resources/wol-relay.py` はホストで動かし、1 つの UDP ポートで受けたマジックパケットを LAN への放送として送り直します。それ以外は何も通さず、Python の標準ライブラリだけで動きます。使い方は README の「Wake-on-LAN」をご覧ください。\n\n### 変更\n\n- **パケットの送り先は管理者の設定だけで決まります。** 画面からの要求で放送アドレスやポートを指定することはできなくなりました。\n- **ツール名の横のアイコン**を、サイドバーの同じツールと同じ線画のアイコンにしました。古い絵文字のままでした。"}},"signatureDigest":"sha512"},{"version":"0.8.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.8.2/netbase-0.8.2.tar.gz","created":"2026-10-13T10:07:08.309999Z","licenses":["agpl"],"lastModified":"2026-10-13T10:07:08.366214Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Z6X6IGAumP1BJheZlPHlWvew68fWy7ii3wxDagnKVJkRglYkrfRA/nTje0Vcek6eFLXpH95m5gSQOWpMbCV/MkqN2ScbfHnv3A4kLFABCrpFEA9cih4T9ZkLC/AJxILtKkp6bg6etJdMTfevDBHOyPClLgW/8w6npjK0doaJpG1J6QvBNQ9+xodjlxoy6cAb3JOXqw6epgvtI4AcxaCmdxMlryWdvmepUvOH3WpPS8SBvspSIpydn6aKoCW9VhAsjJF33kmgSOUxgfFjUN4IiAK/wK71MrjfFVt/MX3LfbvWpxKpr1BHF5gsDWuEH0Qe0L8bHFYaCofEZZRxmQbpu7Hu7JUqbldG5XB3VEG4cSAcwvl1KjicvBb+2LGkyZyLtZQ51w3qD2b44h/bqcDpr2MPU+FQfr9/29NmVrEftDPYeut8k7YKQYXuuPwupsy5iaae/OVq5pqIkMdp+MYibvJpsANYLJocqUvanmr7QwgBsshi+ehribhkWldbeCO4cxFxQUKOGdr6h018RZO54jFuI00f52OPEi83k0NvZ6DdnqsrM4M9dbdDQwICjRWvi7+E++PnS7UsUG/Mf96LeUCFWI+rMBeE0MVBFy/sjhsmbBJhsOd0PGkKbRWTLlybHFpc8FTZKmS12PW08KxojzrEWn9R5mjC7F0hVroBX9Q=","translations":{"en":{"changelog":"NetBase in a container on a bridge — Nextcloud AIO, Docker, Podman — now finds the devices on the LAN, and a device can be added by its address.\n\n### Added\n\n- **Devices beyond the server's own network are found.** In a container on a bridge, the LAN is not on the container's own network, so the neighbour (ARP) table NetBase reads held only the other containers and a scan of the LAN found nothing. Such addresses are now checked by whether they accept a connection on the ports devices commonly keep open — web pages, file sharing, NAS consoles, printers, Sonos, Chromecast and smart TVs, AirPlay, cameras. Choose \"Network range\" and type the LAN's range (for example `192.168.1.0/24`) in \"Networks to scan\". Across a router there is no MAC address, so no vendor either, and a device with no open port — a phone, for example — is still not found; add it by its address.\n- **Add by address.** A button beside \"Refresh devices\" adds one device by its IP address, with a name if you like. It is checked once, so it starts out online or offline as it really is. Only addresses on the local network are taken, the same rule a scan follows. Once in the list, its own page, its port scan and ping open from it like any other device.\n\n### Changed\n\n- **Ping a device in a private range** beyond the server's own network, so a device found or added that way can be pinged too.\n\n（日本語）\nコンテナの中（Nextcloud AIO・Docker・Podman のブリッジ接続）で動く NetBase が LAN の機器を見つけられるようになり、アドレスを入れて機器を追加できるようになりました。\n\n### 追加\n\n- **サーバー自身のネットワークの外にある機器も見つけます。** ブリッジ接続のコンテナでは LAN がコンテナ自身のネットワークの外にあるため、NetBase が読む近隣（ARP）表には他のコンテナしか載らず、LAN を調べても 1 台も見つかりませんでした。こうしたアドレスは、機器がよく開けているポート（Web 画面・ファイル共有・NAS の管理画面・プリンター・Sonos・Chromecast やテレビ・AirPlay・カメラ）に接続できるかどうかで確かめるようにしました。「スキャン対象」で「ネットワーク範囲指定」を選び、「調べるネットワーク」に LAN の範囲（例：`192.168.1.0/24`）を入れてください。ルーターの向こうでは MAC アドレスが分からないため、メーカー名も出ません。ポートを一つも開けていない機器（スマートフォンなど）は見つからないので、アドレスで追加してください。\n- **アドレスで追加。** 「機器一覧を更新」の横のボタンから、IP アドレス（と、必要なら名前）を入れて機器を 1 台追加できます。追加のときに一度応答を確かめるので、実際のとおりオンラインかオフラインかで載ります。受け付けるのは、調査と同じくローカルネットワークのアドレスだけです。一覧に載れば、ほかの機器と同じように Web 画面・ポートスキャン・ping を開けます。\n\n### 変更\n\n- **プライベートアドレスの機器にも ping を送れます。** サーバー自身のネットワークの外でも、上のようにして見つけた機器・追加した機器に ping を送れます。"}},"signatureDigest":"sha512"},{"version":"0.8.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.8.1/netbase-0.8.1.tar.gz","created":"2026-10-11T03:24:45.845373Z","licenses":["agpl"],"lastModified":"2026-10-11T03:24:45.891936Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"jzBqoj626gtl9iZCk029QL2yKuIZ979Nbk3R0xRGQ/MLHre+vXBuUK4K4ZUXh019/LgxiaWVOXd2vVa+OLeLm3AaTc/kuSKj0lM9q8v4+V1I5iykThK8/EoQO6J6xwn1tKflC9PTs6l88mq6/AY0bd6kzQRhvURu6rvR3iZ5Fj3HoKzNfB3C0SjwzHqICmqo+TmpT3ROVFHU/tnB/xd9g+DA3iVa91YsqjNzj60wWDkaNGdDfIGL/LEBeI31yQzyWKIuiIBrCR0w6buQRWhSuMUrv2D/vc7hmneGhpj5c1Gx3flp7DsbDk2aavyLgGf2zwwZvv7qIXF4t8t9kbQlya+eBoZ2mSK0UjPp3DqPYq6Oa45M3R3LpO8/oKCpVEILznAXlP/aYNzcm+BnqUGRBZDN0recRT/Q1ExpW8FwL5yBCjU9EDJQ4YLP5bwuwWQIjlLSY3tkkd9Zgg4+DhH0Ew2m5Hb3L0KqTfz5Ht+Zf3NVRo4UHfAqye8e9OAkmNEsWNxxZYjFfr1sNCTnpu/okVNRi79UXKEuLSVCVbnX/uVAmN0Rq0p38Ts8958nT8EnXRSkh7qST8zHTypgxD7DIiktzonk6KwA4Quc6Z3+0enkoqJ7zf+ZxOiO1T8UwHCpRDGsiWOqCHPOLoSJ7/HIZ/vnjtt8Y+bIcuoKhzgnX8I=","translations":{"en":{"changelog":"Only the Japanese text was rewritten — the README, the App Store description and the changelog — to read naturally. No feature was added or changed.\n（README・App Store の説明・変更履歴の日本語の文章を、自然な日本語に差し替えただけです。機能の追加や変更はありません。）"}},"signatureDigest":"sha512"},{"version":"0.8.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.8.0/netbase-0.8.0.tar.gz","created":"2026-10-07T23:31:25.578450Z","licenses":["agpl"],"lastModified":"2026-10-07T23:31:25.886096Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"SRDWyDoayq9dlG5SnyliEGuvgma4hWQYA5ruVYv6lysInyFH0wHfXmAmbKh2PrpdTA4nC2Dl5K0UH9GCXjwQEp6IJUkvDMbrJAvRdjYGUp8PgGL6T8gpWE/a8EIKVqAr/OPZSoy/52+boRetbBt8AXHCEWuZ7KqOyMqQ7osXv7mx0w2HTDRIBkoBe0FNwixDt1zgUf8ru2U/lNzRbPRlotlr8wUayerMWxGhfqTxogmEYi5/kWaA8uMGbTF8BsE+QZqqe/2NjTaidqib4jgqRbpoB0bIu52RKbqKsNas6U5TGQRBDbhM+U7r4absNhLlHDoT8lmLWSGIdz0fPnBFRaKYeUIfhZAK0WQ0fOHlXKycIe3aGpDA7MD0RBak+wFEZIGKqePzfT7jgu5eUqaoizrwJXmILwe6rnvLFAtXBUUQeRSknKXiAi7g7F25O211aJL9laaxZUPz/PaVN74Othp3tKvvt2iI6LUUUKulbAHN6K38ByqLpwpt7bHutHzZnnpif8mRWEUn+6LFr4Q7jxgRdcqyevdJz88pe28tPl+Ww0VujGaYZTQco5VAm4LalOHWmUGa3njVtqVeEIj04mJAKtLhZdBqxFIff548jSrBSvR4Z15w6jPJai6aoXU6dbBZWbNXJ56tZ0V6rrZB3WPh4zVY0NLRdvOIoZgWW3Q=","translations":{"en":{"changelog":"An AI assistant, through the new AI-Hub app, and the fixes from a review of the whole app.\n\n### Added\n\n- **An AI assistant, through the AI-Hub app.** A chat that knows NetBase and explains what is on the screen — a scan, a ping, a list of devices — in the person's own language. It runs nothing itself. Administration settings → NetBase → AI assistant: on or off, who may use it, what it may read. Shown only when AI-Hub is installed.\n- **An assistant that may act, for administrators who switch it on.** It can suggest commands, and a command runs only after the person approves it by typing `approve` and the code shown for that very command.\n\n### Fixed\n\n- **Passwords no longer travel in the address.** Browsing files over FTP/SFTP sent the sudo password, the connection secret and the key passphrase in the address, where they were written to the web server's log and the browser's history. They are now sent in the body of a request. If you used the file browser before, remove those lines from your web server's access log.\n- **\"See the page as a picture\" works again** for every user; its request lacked the permission attributes and always failed.\n- **The HTTP timing and the iperf test reach only what a scan could reach.** They could be pointed at the server itself, at cloud metadata addresses, or at other protocols.\n- **A terminal log no longer keeps passwords** typed at sudo, su and ssh prompts.\n- **A device window connects to the address that was checked.** The name was resolved twice, so a changed DNS answer between the check and the connection could lead to another machine.\n- **A device's page can no longer open other devices' windows from its own scripts.** Another device's address is followed only as a page.\n- **An answer that carries a digest challenge keeps its status.** An H.VIEW / Uniview recorder answers its sign-in with a 200 that carries a `WWW-Authenticate` header, which its own page reads to work out the digest answer. NetBase dropped the header, and PHP turned the 200 into a 401, so the browser's own password box appeared over the recorder's page.\n- **A failed delete or move on an SSH server that sends no exit status** no longer shows as done."}},"signatureDigest":"sha512"},{"version":"0.7.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.7.2/netbase-0.7.2.tar.gz","created":"2026-09-28T14:32:10.164671Z","licenses":["agpl"],"lastModified":"2026-09-28T14:32:10.242938Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"Sf/7VsDZwggc1ChGlu1eWXBBy3DwzR1109+3vjPJ+3xKEH8kk0m2ZXQMTAD5lfy7pbTmrdbw6dNlgdtrZ17pLiDPGKF+OWljU+lPKKUpxK2f8DmmEBjUh3Wc40OFXMrMs31JP+W5LV2cEo3MjKj2j54Tgwd38WT10Vn7XOt97mjUQGF/H6GzgZmi+3lisqbHLNI8Y0/GyKbgUnTWSyVvNPbYZvqhFnSqv11o8LA5iygE4bmD0nhUmnprwhypUNTTweIGEwp5x3QDeOMHzhUEXp6BaZyuvt6cguXy/+9rIUaEBU6O7oj8z/rNnFpQ1bIc6Blso3qZ4ko0HkPcgD7rWhXqSLtRcJOWldLe7p08G2vDQlDkhUCCuY3LYNSNFV+Rt7xlVegDoKjyj0zsUpQKN4/+XPLeui19NqJUfvrXFK8vPCVnT3+xBu9a/EOBAvhncw0J22ar6bIOFZBs+3YAi8fzLBj5kA5GWXJkUOVgqKjfSxcWY4Pv8Fbsc0G+lM6jKDgCvdMI34lOmBdp8h8TZ+Q3M730yc9/2RFCu4x9miQgFd+TE9fEx+BTHWlx+iL3ElqOG5P5Mtp3dGPQoQomgfxEtkoV95TnWA4YFuy2h3mdJwQlUfuCLvNWUcE9008hK5jd/HHOdMemzdaQeCDeZCTk5eV4Qko63V9qXjk/7Kc=","translations":{"en":{"changelog":"### Fixed\n\n- **Nothing a device's card holds is out of reach any more.** A card cut the place off\n  after one line (\"My Study Server roo…\"), never showed the note, and kept a large empty\n  gap under the icon however much was filled in. Cards now keep one size, with the details\n  starting right under the icon and the address along the bottom; the name takes up to two\n  lines, wrapping even in the middle of a long word, and the place and the note one line\n  each. Rest the pointer on a card and everything opens beside it — maker, name, type, the\n  whole place, the whole note, and every address with its MAC. On a touch screen, tap the\n  card for the device's details as before. The pop-up stands out in the dark theme too.\n  Thanks to @Cuello for reporting it.\n- **The buttons at the top no longer slide up out of view.** When they wrapped onto a\n  second row, the bar was squeezed to one row's height and the first row was pushed up\n  under the Nextcloud header.\n\n### Changed\n\n- **The card view is divided by network.** When the devices are on more than one network,\n  each network gets its own heading (such as `10.0.0.0/16`) with a line beside it, and\n  its cards below, in address order. A machine on several networks — this server, with its\n  LAN and its container bridges — appears under each of them with the address it has\n  there. An address on a network NetBase does not know is shown under its own /24. With a\n  single network, the cards are shown as before, with no heading.\n- **The list/card switch sits at the top right of the scan panel** above the device list,\n  instead of among the buttons at the top. On a narrow screen it sits just above the panel."}},"signatureDigest":"sha512"},{"version":"0.7.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.7.1/netbase-0.7.1.tar.gz","created":"2026-09-27T13:46:10.231164Z","licenses":["agpl"],"lastModified":"2026-09-27T13:46:10.280881Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"A3lPG0O10mPh3qEnugT/xOzIkqiedr70hY+4n0TZPZntz6WPi0ygLGzWeOgY/moKY1sDgNvfu65lerNsoufYFDLFmKv0J+rtzc1pe28NVxMA0qYfXyKz5KuQG61L2cqDEkg6GlkyexG1Q5RNit+WzQv/D8y8KpX9g8ZyZ9viYC4ym9A7IRz3rNAqtHpxuBEfAGXOm85Xl8qB/oUzYw3RRC9VXVCpM1aL+0j4ZWYpRfONsvMw+VaPihPQFWnd3ZctWohVNqEGKfqR7grLzUsobqPBSD/QqNJTWfDqT/JVST6DAGxHrrnpKqCiEXllG8iiZXj8iMnSMDVidhwINurqOgQoL9ARuQNRysafe/rGFvD9WQ3sp+YlA9H7sZwVLUq3s/STSRmstRJpasbYaqiysAUY5Ps0Mar+Tfr08iyPIh/Ltwmekg+0sv9jm5WM0slg+ZSnJE5PCflYAgA7rPpGcUKmMFUNrcH76t1rrYDuygd7h2m3kbBu82CYHHb+GjYXzgkmQYjMumEdtY5125hg3etEdC9LdGOSmreVzhOgMPmVLY1M0Od8CMjp3N9U5jkxIfEaXluFvN6D6lQ/QIfQf4gWxKjlf8qdYu673vnwsMEUYbdi0hcQ+bcMexmt+ppSYrGugUZjDCggxt2HLug86D1/4L+kDL6pAa0iEVGp43g=","translations":{"en":{"changelog":"### Fixed\n\n- **A maker's name alone no longer decides that a device is a router.** Buffalo, TP-Link,\n  NETGEAR, D-Link, ELECOM, Cisco, Ubiquiti and Allied Telesis also sell switches, NAS and\n  smart plugs, so a Buffalo switch and a TP-Link Tapo plug both came out as Wi-Fi routers. A\n  device is now called a router when there is a reason (it answers DNS), and model names decide\n  first: switch families (Buffalo BSL/BS-GS, TP-Link TL-SG/SF, NETGEAR GS/XS, D-Link DGS/DES,\n  Cisco SG/CBS, Yamaha SWX), Buffalo WAPM/WAPS access points, Tapo plugs and bulbs, and cameras\n  such as eufyCam. The name you give a device counts too, since many devices announce none.\n- **A Nintendo Switch is a game console,** not an L2 switch.\n- **The \"another network\" and \"Secondary network\" labels are no longer cut off** in English and\n  other languages with longer words; the addresses beside them stay in one column.\n\n### Changed\n\n- **New screenshots** of the current interface, including the card view and the device details."}},"signatureDigest":"sha512"},{"version":"0.7.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.7.0/netbase-0.7.0.tar.gz","created":"2026-09-27T11:50:28.750628Z","licenses":["agpl"],"lastModified":"2026-09-27T11:50:28.806082Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"XG5e902BWXrDh3PWUnRg9Zzvy6bGpljpNlcsWBaZ1G0lxmeIKqr7L62+GY6znBTlRmYpQfJ0tP31pKEg/KsZ1In/x0yxre9rPQxhaQd1kr0sWjUdt5YG9K1wCIr8nVYgO+hQJmxUE1xB0pLOfgTC4jPL5JthAb8I3mBBTlvkSLZ52NprmNf1/yu0TepR3qJk+U53CFvXY4MquXd2i6NhKPzQg1YpgPBZAtU9rM1Tp2kklqDwHev1GU2MRDCFaSmIxuSYZqzynHkO3Dr2fFtpSgeHfbnsYKjFc/Y/Na+FG5+F/NUxkYC4C8c1Y/GIzfycd6BRYEMFO+gtgH6alSpl9Bd5wLQLnEGtM+M1NwosyzE6nuTy6MeWc+PC63/HXkAjCfmO7gkqNT5YA4J+ecnqdE9DS+lIBtRkuz7i6vaG/qGW+ksRbmqkUmFf2N9+A84OzXc0TXaKSSp4tbpvYEQtdBNmrlPU/KSo4bUpB9m26AiooiqXjIWWDdJaNolN4s6FNRhwIU6yPhLXl/q3ir0dEd9ryuHd3+GRid8S+M+0WXXslD8dJy3kfIjjsFiT0K9q+aIn69S10zBp7oV7HaCpDbWzR793UMJyMWmSQCaRh7OrU/X+cqSlYwJUbjB9raWPqSLrAkt5/0N826DSh/hVpXZScQ0FPVwWLDqUxVKMroE=","translations":{"en":{"changelog":"### Fixed\n\n- **Device pages that open through the proxy now render device interfaces built from\n  framesets and script-set locations.** A menu that moves a neighbouring frame with\n  `parent.<frame>.location = '/…'` (RICOH Web Image Monitor) and a switch whose image is\n  set in a `style=\"background-image:url(/…)\"` written by script after load (ASUS routers)\n  were not rewritten, leaving a blank pane or a missing control. Inline `on*=` handlers and\n  `href=\"javascript:…\"` are rewritten too.\n- **The device list no longer shows a bare \"Error\".** When the page's request token has\n  gone stale (a restarted session), the page fetches a fresh one and retries; a real\n  refusal now shows why instead of an empty status line.\n- **A note kept on a device follows the device, not the address.** When containers restart\n  and swap IP addresses, a hand-typed note/name/type is carried across by host name, not by\n  the address it used to hold, so it no longer lands on a different device.\n- **Every download includes what a person wrote.** CSV, Copy, \"Download as a file\" and \"Save\n  the result\" now carry the name, notes, tags and where the device is installed; values that\n  begin with `=`, `+`, `-` or `@` are quoted in the CSV so a spreadsheet does not treat them as\n  a formula, and a note with a line break or a tab stays in its own cell.\n- **A tab that lost its session says so and offers a reload.** When the browser reopens with\n  two NetBase tabs, both sign in again from \"remember me\" at the same moment and one of the two\n  sessions wins; the other tab now says the session ended and has a \"Reload the page\" button,\n  instead of failing quietly. (The race itself is Nextcloud's and happens on its own pages too.)\n- **Dark mode.** The new device views follow the light and dark themes.\n\n### Added\n\n- **Device types you can tell apart at a glance: 81 types in 10 categories, each with its own\n  icon.** Wired and Wi-Fi routers, L1/L2/L3 switches, NVR and DVR, security, digital and web\n  cameras, Wi-Fi repeaters, VPN, load balancers, PLC, smart-home and energy devices and more.\n  A scan now guesses more of them from names, ports and makers — media players (Chromecast,\n  Fire TV, Apple TV), game consoles, smart speakers, UPS, VoIP phones and SwitchBot hubs among\n  them. The type\n  picker lists them by category.\n- **A card view** beside the list, switched from the toolbar.\n- **Where each device is installed, in three parts: place, room and position** (for example\n  \"1F / Guest room / Wall\"). Each is picked from a list of presets or typed in; what has been\n  typed once is offered again. The lists — and the type picker — show \"your language - English\"\n  and are in English order, so an entry is in the same place in every language.\n- **Proxy resilience for fragile device web servers.** Some small devices serve a few files\n  and then return 5xx when a page loads all its parts at once. NetBase now limits how many\n  requests it makes to one device at a time and retries a GET/HEAD that returns 5xx. All\n  three values are set in the admin settings.\n- **Device targets are fenced to the local network by default.** The proxy and the tools no\n  longer reach this server itself (127.0.0.1, ::1) or link-local/metadata addresses\n  (169.254.0.0/16) unless an administrator turns that on."}},"signatureDigest":"sha512"},{"version":"0.6.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ktec-nc-apps/NetBase/releases/download/v0.6.2/netbase-0.6.2.tar.gz","created":"2026-09-17T10:45:21.125783Z","licenses":["agpl"],"lastModified":"2026-09-17T10:45:21.190816Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"ovYzjgphrZG9qwzRnUkQE6ciV6DE9L0exbPrr2vAdkG4vEunPZAzj+jynTjvITfB0AEM1uHMkSvuVlPn8LXaqGp5tAhY7ZTFpf9FPRXx9zt+1sofQGRVIW5iDWAU+nsj2jr1HROnDVcb+q0Wb5Xm5nr3wL9zX5Cto9xPu1VjM5+KxVl0xbaUAnVWUj5nKZQN9yLHmpksAdt/VsAKO8BEclfnXI2z+4VV/EL7A3gaHW5SrOEm+0bqDj2nGPit2UfuXPcSYCnEtmwkSmwwCWzfKC3yVrZ3toqgwWQIJy1cYNh6H1BKvuZSzaec/ZkRFXdLHM7WiATnzBVvY57voAVNlkQ4TLbgw5AQDQgPPDnIK7TaeCUMrGfLQwSPmznfiD5Y51O5CeIR/chXKLOWJBHdDex4yLgm2H5pwl+0EAN7E9ct8qjPBdF+sTdiGcBf5p6QYTGJmVAku7ic3lql6DTDNsHRIo6+NP/aXXJ5BSbhim4mzrb7jTVMFmB8xlMkyI+dr4EiJnvkokNw9CciiU6ddXkQoNBjjPMsBmI1S4yplH0maYsMSc9wryjhOVePzgX2phIRbFFqVfe7Q+phJp0EtHjEqyULrmH3HRkNtoQIYoVmPmuls1hkt5F38ZMUzyU6vvqKIPc4ZGtDGLZYGzOBa+8SVI2WKOsZW4dJqvv/BHM=","translations":{"en":{"changelog":"### Changed\n\n- **Nextcloud 35 is now supported. There are no other changes.** The supported range\n  is widened from 30–34 to 30–35. The app itself is unchanged from 0.6.1: it was tested\n  on Nextcloud 35 against the changes that release makes for apps, and ran without\n  modification.\n  （**Nextcloud 35 に対応した。それ以外の変更はない。** 対応範囲を 30〜34 から 30〜35 に\n  広げた。アプリ本体は 0.6.1 から変わっていない。Nextcloud 35 でアプリ向けに変わった点に\n  照らして試験し、修正なしで動くことを確かめた。）"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDEtZGV2aWNlcy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDItZGV2aWNlLXdpbmRvdy5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDMtbWFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDQtZG5zLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDUtYWNjZXNzLnBuZw==","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDYtY2FyZHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2t0ZWMtbmMtYXBwcy9OZXRCYXNlL21haW4vc2NyZWVuc2hvdHMvMDctZGV2aWNlLWRldGFpbHMucG5n","smallThumbnail":""}],"videos":[],"translations":{"ja":{"name":"NetBase","summary":"ネットワーク管理ツール集 ― LAN 上の機器の高速検出とベンダー判別に加え、DNS・whois・TLS・メール・ファイル転送のツールを備えています","description":"NetBase は、Nextcloud をネットワーク管理コンソールとして使えるようにするアプリです。LAN 上の機器をすべて検出し、各機器の設定画面を Nextcloud の中から開けます。日常的に使う調査ツールも同じ画面にまとめています。\n\n中心となる機能は「機器ウィンドウ」です。サーバーが機器の Web 管理画面を取得し、その中のアドレスをすべて書き換えて表示するため、Nextcloud にアクセスできる場所であればどこからでも、ルーター、スイッチ、プリンター、NAS にログインして設定を変更できます。VPN も踏み台サーバーも、現地への訪問も必要ありません。ファームウェアの送信、設定の復元、バックアップの取得もできます。ウィンドウは複数同時に開けます。\n\n機器の検出に、root 権限、エージェント、追加のパッケージは必要ありません。NetBase はカーネルの近隣テーブルに機器を登録させてから読み取り、NetBIOS・mDNS・WS-Discovery・SSDP で各機器に名前を問い合わせます。また、機器が送信するアナウンスをバックグラウンドで常に受信しているため、同じケーブルにつながった別サブネットの機器も一覧に表示されます。こちらからは接続できず、問い合わせにも応答できない機器でも同様です。MAC アドレスは、同梱の IEEE レジストリ（53,000 件を超えるベンダーのプレフィックス）を使って、オフラインで判別します。\n\n各機能でできること:\n- 機器ウィンドウ ― どこからでも、Nextcloud 経由で機器の設定画面を操作\n- LAN スキャンと機器台帳 ― 名前、IPv4 アドレス、MAC アドレス、ベンダー、種類、開いているポートを一覧にし、CSV でエクスポート\n- DNS ― 任意の DNS サーバーへの、あらゆる種類のレコードの問い合わせ、リゾルバの比較、委任の追跡、ゾーン転送のテスト\n- whois・空きドメイン検索 ― ドメインや IP アドレスの調査（IANA からの紹介をたどるため whois コマンドは不要）と、1 つの名前を多数のトップレベルドメインで一度に調べて、まだ空いているドメインを探す検索\n- Wake-on-LAN ― MAC アドレスを指定して機器を起動\n- TLS・HTTP ― 証明書とそのチェーン・有効期限、受け付ける TLS バージョン、リダイレクトの経路、セキュリティヘッダー\n- メール ― SPF・DKIM・DMARC・MTA-STS・DANE・ブロックリストの確認、SMTP/IMAP/POP3 サーバーのテスト、オープンリレーのテストに加え、基本的なメールソフトとしての読み書き（検索、返信、転送、Nextcloud のファイルの添付）\n- FTP・SFTP・SCP ― リモートサーバーの閲覧と、Nextcloud のフォルダーとの間のファイルのやり取り。コピー、移動、圧縮と展開（ZIP・tar.gz・7z など）、文字コードと改行コードの変換、転送の再開、sudo を使った別のアカウントとしての操作\n- SSH・Telnet ― 認証情報なしでの調査と、保存済みの接続先でのコマンド実行やターミナル\n- ベンチマーク ― インターネットの速度、iperf3 による LAN のスループット、リゾルバの比較、HTTP の時間の内訳\n- どの結果も、コピー、ダウンロード、ご自身の Nextcloud のファイルへの直接保存が可能\n- AI-Hub アプリを通じて動作する AI アシスタント。画面の内容（スキャン結果、ping、機器一覧など）を説明します。管理者が有効にすると、コマンドを提案させることもできます。提案されたコマンドは、ユーザーが 1 つずつ承認したときだけ実行されます。AI-Hub が無い場合、この機能は表示されません\n\nアクセス権はツールごとに設定します。NetBase は管理者向けのアプリで、ローカルネットワークに関わる機能は、初期設定では管理者だけが使えます。ただし、管理者設定から各ツールを、指定したグループや全ユーザーに公開できます。ネットワークへのアクセス権を渡さずに、whois や DNS など危険のない調査だけをほかのユーザーに使ってもらえます。何も許可されていないユーザーには、アプリメニューに NetBase を表示しません。\n\n21 の言語に対応しています。NetBase だけを Nextcloud 本体とは別の言語に、ユーザーごとに設定することもできます。"},"en":{"name":"NetBase","summary":"Network toolbox — fast LAN device discovery with vendor lookup, plus DNS, whois, TLS, mail and file-transfer tools","description":"NetBase turns your Nextcloud into a network console: it finds every device on the LAN, opens each one's own settings page from inside Nextcloud, and keeps the everyday lookup tools on the same screen.\n\nDevice windows are the heart of it. The server fetches a device's own web interface and rewrites every address inside it, so a router, a switch, a printer or a NAS can be signed into and configured from anywhere the Nextcloud is reachable — no VPN, no jump host, no site visit. Firmware can be sent, a configuration restored, a backup taken. Several windows can be open at once.\n\nDiscovery needs no root, no agent and no extra packages: NetBase primes the kernel neighbour table, reads it back, and asks each device for its own name over NetBIOS, mDNS, WS-Discovery and SSDP. It also listens for the announcements devices make, continuously and in the background, so a device sitting on another subnet of the same wire — one nothing here can reach, and which can never answer a question — still appears in the list. MAC addresses are resolved against a bundled IEEE registry of more than 53,000 vendor prefixes, offline.\n\nWhat each part is for:\n- Device windows — a device's own settings page, through Nextcloud, from anywhere\n- LAN sweep and inventory — name, IPv4, MAC, vendor, type and open ports, exportable as CSV\n- DNS — any record type from any resolver, resolver comparison, delegation trace, zone-transfer test\n- Whois and free-domain search — look up any domain or address (IANA referrals, no whois binary), or check a name across a whole range of endings at once to find one that is still free\n- Wake-on-LAN — wake a device by its MAC address\n- TLS and HTTP — certificate, chain and expiry, accepted TLS versions, redirect chain, security headers\n- Mail — SPF, DKIM, DMARC, MTA-STS, DANE and blocklists, SMTP/IMAP/POP3 server tests and an open-relay test, plus a basic mail program: read, search, reply, forward and send with attachments from your Nextcloud files\n- FTP, SFTP and SCP — browse a remote server and move files to and from your Nextcloud folders; copy, move, compress and extract (ZIP, tar.gz, 7z and more), convert text encodings and line endings, resume transfers, and act as another account through sudo\n- SSH and Telnet — a credential-free probe, and commands or a full terminal on a saved connection\n- Benchmarks — internet speed, LAN throughput over iperf3, resolver comparison, HTTP timing\n- Every result can be copied, downloaded or saved straight into your own Nextcloud files\n- An AI assistant, through the AI-Hub app, that explains what is on the screen (a scan, a ping, a list of devices); administrators who switch it on can let it suggest commands, run only after the person approves each one. Without AI-Hub it is simply not shown\n\nAccess is per tool. NetBase is an administrator's app, and everything that touches the local network defaults to administrators — but each tool can be opened to named groups or to everyone from Administration settings, so an instance can lend out whois, DNS and the other harmless lookups without lending out the network. Where an account is allowed nothing, NetBase leaves itself out of that account's app menu.\n\nAvailable in twenty-one languages, and NetBase can be set to a different language from the rest of Nextcloud, per account."}},"isFeatured":false,"authors":[{"name":"KTEC","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhQGMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwOTA0MTcxMTI4WhcNMzYxMjEwMTcxMTI4WjASMRAwDgYD\nVQQDDAduZXRiYXNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxJYl\nCkqzFAiO4MRvrPqDTY5Ld8AZt7eMiR9G9E5yLdKOy+49HJZeYyQff0jjyJz9wnPi\nFaefWc6/NASleMExcqRnSsxT9s/cMZmNwf/f8rzSSdlTWEwVdLAhkIHtU1o4TYgE\ncqGdu0gy2WbjFQbs8Auj6kV6NN2HhVkR0cXbpBoKvIHhYql+FVdl4DcgMGLXVUC4\nZwfsqUAqO1H4+9dV1KpINmw/nebFrTVqsZTLyI50+7eXD0SBccHPzsYzFwcBI82U\nZHqXH7QassTVVCDKh03qQhjfWdSBn09OCNVKtHq2irPJgv7xffV5HluL4vDpnHaQ\ns9lvBQxXfR9Gr58dAZZjoyGj/uUgU89DZpvF0NFiVWWx5C7K4GB42slT0vM6pfj6\nOM/LuYabweqwSaJB6fCZizMp90ekNS/IvQKJquVtUwCzVXdCaEi5tQ4lIuMCWTM1\n9FTLKbYTkmTQklsvT5YtNXjNwjLajFAvM7dV/o5SrlU/sRnKmF2BaCMVH/5c7E4M\n+odmf6IQgSSBR+P9Z+Ibv0pjd9q5eBiej/Nolk87A/9QrWaHm9ggFEoriGM9+a2h\nZM1ubTbgjcj2BZrzYH3mY0oRzxPI3+tbNbRl/hhLic05hv+Ni+9hhJ75nCJffrGG\nAVxvJ782J4b91nx2J/lEvkGDRfdNozxG3sGmwnsCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAmeZn8CaDKmY2so3qmQh96qSUalr+knwEjX5skr7LnJCaxNK96DKCu/4d\nbRZMRkbTypcvhDV8p4vr13EWErL43MF/edxNRmZPfGM1MgunUkp5zdu97nba8YmJ\n4EYB8s/v0Iql6HrMyBTCMXgPVwVzKCdmfrax8LER+XMDgoj4YZWJ+dMA0tSww7CA\n8FTLXt1XICT3yrg4Xy8dqDvyX4gNXjtM8zMrP2vPI8DOXTyZdcR+aflMCc7o4e9p\nPxUz/PqzLbHWhuwWzrl0TIr03HHEqXuVWj8VxAh+fdRURhxbmscyj/nsgr6/EYqM\nUSwDscLXvONFUqUZyWnlW9O2HTlQ1g==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"requrvhive","categories":["ai","integration","tools"],"userDocs":"https://hive.requrv.ai","adminDocs":"https://hive.requrv.ai","developerDocs":"https://hive.requrv.ai","issueTracker":"https://github.com/ReQurv/nextcloud-plugin-hive/issues","website":"https://requrv.ai","created":"2026-10-13T08:45:37.679092Z","lastModified":"2026-10-16T10:54:32.444864Z","releases":[{"version":"0.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ReQurv/nextcloud-plugin-hive/releases/download/nc-v0.5.4/requrvhive.tar.gz","created":"2026-10-16T10:54:24.685615Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T10:54:24.695317Z","isNightly":true,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"OyvEWgWyWKfteF7iaW0TlgNRfSharRPeuc3HPyBc68B1wavfWB5kiyZcLM9Ix2PTv6+741TVwHGSFwujXpN7aA7c85XKveoQKhDRy2xdvHySzgdr0AdUrygqSTZmf4U/XA4W1b4WhS2dHgVXBmBfX8OPmdpjXhFbuv6AryXHgwQtXJ3J4hI2za6B83MKGyDkAPTRLTGANkG5OGbJgSbYne2TkNiU8fiWk8OW/8k6UsB5VsHbtByMfd9YF+1SA1mHng94qfYjq/vTM6RHb9l76urLh6X7kqxq4jnnAVl8bmYL+H8Tg4P3xHSvivxy/itl02gs0BmZcF54c0u4YAIxtuAc7tNFR3A7bLGaiSES3pxEOlNJ9b5xMM39rF1Sp8je4W2Bzl8oqnubeOnfNDsbKO1PLgRXU2+x9ORoImVVYgB2i9qo9JqWYaamnI0AmA71soRyU6ZMRsnsx0DNkZAaH2rPj7E8hoeMRJX4RpLq/UJvw2ALXbJU0g3e28OK4OQYL3JIMa/G+Ve60be9UYC4xAgU1gL9td7kULvL6NfokrLEwS15tBdbRu3Q79HQ651cQVf4MW+5k/2uUpm4dkWV+rtY32iG3zQ3oB6f5tFxOWcMEuEEcyONGaRQ2jtdJLkMUrl4qX3qkiTPi1ahKp733U6ckRXqO0Of2ljcLnOkZ/A=","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"0.5.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ReQurv/nextcloud-plugin-hive/releases/download/nc-v0.5.4/requrvhive.tar.gz","created":"2026-10-16T10:54:32.439639Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T10:54:32.473274Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"OyvEWgWyWKfteF7iaW0TlgNRfSharRPeuc3HPyBc68B1wavfWB5kiyZcLM9Ix2PTv6+741TVwHGSFwujXpN7aA7c85XKveoQKhDRy2xdvHySzgdr0AdUrygqSTZmf4U/XA4W1b4WhS2dHgVXBmBfX8OPmdpjXhFbuv6AryXHgwQtXJ3J4hI2za6B83MKGyDkAPTRLTGANkG5OGbJgSbYne2TkNiU8fiWk8OW/8k6UsB5VsHbtByMfd9YF+1SA1mHng94qfYjq/vTM6RHb9l76urLh6X7kqxq4jnnAVl8bmYL+H8Tg4P3xHSvivxy/itl02gs0BmZcF54c0u4YAIxtuAc7tNFR3A7bLGaiSES3pxEOlNJ9b5xMM39rF1Sp8je4W2Bzl8oqnubeOnfNDsbKO1PLgRXU2+x9ORoImVVYgB2i9qo9JqWYaamnI0AmA71soRyU6ZMRsnsx0DNkZAaH2rPj7E8hoeMRJX4RpLq/UJvw2ALXbJU0g3e28OK4OQYL3JIMa/G+Ve60be9UYC4xAgU1gL9td7kULvL6NfokrLEwS15tBdbRu3Q79HQ651cQVf4MW+5k/2uUpm4dkWV+rtY32iG3zQ3oB6f5tFxOWcMEuEEcyONGaRQ2jtdJLkMUrl4qX3qkiTPi1ahKp733U6ckRXqO0Of2ljcLnOkZ/A=","translations":{"en":{"changelog":"### Fixed\n- App Store still showed the old (eagle) icon: the store caches the screenshot by URL and the previous URL pointed at a mutable `main`-branch file, so the icon updated in 0.5.2 was never re-fetched. The screenshot now points at the immutable `nc-v0.5.3` tag, forcing the store to pick up the current logo"}},"signatureDigest":"sha512"},{"version":"0.5.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ReQurv/nextcloud-plugin-hive/releases/download/nc-v0.5.3/requrvhive.tar.gz","created":"2026-10-16T10:32:18.634267Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-16T10:32:18.676342Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"lUFFdS2WwgW/P9QzXUaFN5A2acvUD7aYqCzaybdsSQ73GPAf7qgUA/p1qRD9Hzn/HuIt569oWeuEmcZ7TDcKWFblPbGMMDntMj9XsqI1ircVJ7GCu/RB+thR23jgUwiC8J1naM5dFVBCiBdV6Y7MHg5PCBlcRuYY2FdPRdgAHxskShiMWorURU/U/ILtfJcZzbM0k0hJPFjqde/j8sWciIP3VJ9aW9tDQI9aM7JARalD8jDZbqozNlu0+NQ4MsfWB57qcsXMabzTBYnsUg3hmNPARHEVQh5KD5AAA/8UFSfpBwlqKT31ne/kLThljopZvP7dd/+Q0Zl4vduo5u/wAGt8PXUjZqfuQ5ZnDPPE1Z+92ZPmiIvTCjigz6REm6PIiOSi6A0rDGus59Rk+6OsXsrRkuXLKc+h8PJ8kVmXHXCX/cGXBXIfh7FBCvUWe/6Z/ZiK52IyaLdJztJLy64+7GPbaD1yoPiFbyLQmJJ3zygaPJ94e65fzob0VKCOg/08i7sPYawK5rQeQf+kGJcdiIKFVF9Na7Jl9I4Dlhrf3gj0Hx5FgwQJAi6M2vRlK9M98QelaSLS3LF2UKlntgKVwZM3TlLAliQfiwYHSfZDy8xMNo6f6DiJz93ENOm6N2N8x1gpUPb8xc17pmqhkSWzUxzvN+Yjg+ACCZ+g2f3wn74=","translations":{"en":{"changelog":"### Fixed\n- Enabling the app made DAV and OCS endpoints return 500 errors on Nextcloud 33/34. The app bundled its own `sabre/vobject` (pulling `sabre/xml` 4.x), whose classes shadowed the server's older `3rdparty` Sabre stack via the prepended Composer autoloader, causing hard PHP fatals on every webdav/OCS request. The app now uses the Sabre VObject copy shipped with Nextcloud and its autoloader no longer prepends, so server 3rdparty classes always take precedence\n- `RepairEncryptMcpTokens` repair step: removed dead code and made the plaintext/encrypted detection logic explicit"}},"signatureDigest":"sha512"},{"version":"0.5.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ReQurv/nextcloud-plugin-hive/releases/download/nc-v0.5.2/requrvhive.tar.gz","created":"2026-10-13T12:35:17.598772Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T12:35:17.647872Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"dymhATskl6ABNaX3S4mkjZ5VDpGnb6td8jiau2AX/Cjg/+8IRu+3nwYKF7/+giKEn1jQ7c6Ch8RbSlhKFwUrUlvMO1WvGuZV1pNVugHKoCrdZ89h9PVwcDv3XGVlldiWNXZeK1/FnfoOA8f56s6lplolqqbRUrFHM+aDzb6gjr6JZYpW6nz7wcIm9S6sLdX6KgbONH1nAAKSJYDg9QEDIjAKRKbVsyD0XGjcu1H4/CDzBtVzdnSngqHuFI2A7ZVtUguhpR/tIJxe5BwHrisaTpWEqcai9j70P2W/UWN/mmv1x7vQd50/EVctrWWSPkKrysSy3N9TuI80qyZjCVgKq+2mfGjT9ktkjNHb21oHE6jGOtAPFLW2nfNP1TiYHtoxYqoJxNlw3j15lC3cNi26FnfKbp5ZMRrCx9e/5whHNseJwl58xW7yalLHatUfSJ3KMVeSOncnaVCZicycyC7/Nj66h7XZtHAYfmY0UAs0vK1VbaoxM0H6HEyD4N05imyadjkUfNwdNCECabL+jmT1ED40FUESfn0P6K+snhD0Q2FDzxWUTrsBzVSAROO2eBRNtQOukbSgs4loz+z2ndZay+PyZRa1JcRF2j7EVuLIJuHLNYRBbxPNJNAgVqa6jzJnTs0T1mxJQ9Z54Qn0jYGgoUjMXvSLfzUoUVtbPVRrMqc=","translations":{"en":{"changelog":"### Changed\n- Updated App Store icon"}},"signatureDigest":"sha512"},{"version":"0.5.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.4.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/ReQurv/nextcloud-plugin-hive/releases/download/nc-v0.5.1/requrvhive.tar.gz","created":"2026-10-13T08:49:24.460678Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-13T09:01:02.794387Z","isNightly":false,"rawPhpVersionSpec":">=8.4 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"UXcTKFZ4gsNQR5fZCqEETNG/mGRyjuw0qSOSNVpQU1DbeE1uQRgv0zcz00JzjjA6QQaNxpr9GjKBVRztPhptfdmOVSQXkCH5VFr1tqiw7s1BmLA1SbaKPiaZJIngn35mOHvns+PFbArupMUZw+hp9HkQbp21sEs4yr2t/hZLpk1XwtVKY3TtT2HDtYF4PKxF8NGmuEBnyWGsQyqqOf+7vboKDQuABifpEQb0jmfmgPaXOc4+y+XJysE4akr4m5s+xUI+y4/UmOVg5gHIei53ydw0NuEag8IUq2YCdKZNMrQ1rBlTiIws6IndfpN3z1w62dOMbyWQ8cEauAV+hIaGe1DmMeZSO2pLuyc1hezqp8TBDr2Zi1wTXn1HgB3hi4M60UPYJWmSNGs3ANchXGl8tMeCZpdBDCpPdlSGtCgmatbOpnN/KUwM8ZvMgwDehko5I5742wzJ9dNh77FsuT6UiqRnbFcKE7l4xiuA+AVHRUyE29ez7kJMZZg1jf9Aenm46cWhB742g/8q1GJFaqoXMDM3dQXVQdOC1SrWaXpft6et142ahQ9UgmRSpyU7C/N2eI3aGZY55+puNdvWDgJJzTFdDNnsLeS6o+sJYMzqr92JavMQc3VhWp0Jo1tRkjXrU1OdYe9Cx8QPXcg8q3VvzN+UGIYd+Fv9au53TJATcaw=","translations":{"en":{"changelog":"### Fixed\n- App package now ships `CHANGELOG.md`"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1JlUXVydi9uZXh0Y2xvdWQtcGx1Z2luLWhpdmUvbmMtdjAuNS4zL25leHRjbG91ZC1hcHAvaW1nL0FwcHN0b3JlLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"ReQurv Hive","summary":"Private AI in your Nextcloud — chat, agents and MCP tools, powered by ReQurv AI Hive","description":"**ReQurv Hive** brings AI into your [Nextcloud](https://nextcloud.com) — private, self-hosted, and under your control. All model calls are served by [ReQurv AI Hive](https://hive.requrv.ai), ReQurv's private and secure OpenAI-compatible inference endpoint.\n\n### Nextcloud App\n\n- **Chat** — Converse with an AI assistant about your files and documents\n- **Projects** — Scope a conversation to selected folders, so the assistant only sees what you choose\n- **Coworkers** — Save repeatable AI jobs and run them on demand or on a schedule\n- **Summarise & rewrite** — Condense, draft, rephrase and proofread text\n- **Model picker** — Switch model per conversation\n- **Usage metrics** — Token and conversation counters exported via OpenMetrics\n\n### AI provider\n\n**ReQurv AI Hive** — OpenAI-compatible API hosted by ReQurv at hive.requrv.ai. The API key\nis configured once by the admin and stored encrypted; the base URL is an admin-only setting.\nProvider choice applies to chat and to the Nextcloud Assistant integrations alike.\nAssistant actions that send images need a vision-capable model.\n\n### MCP Server\n\nReQurv Hive includes a [Model Context Protocol](https://modelcontextprotocol.io) server with 316 tools that gives any MCP client — Claude Desktop, Claude Code, Claude.ai and the Claude mobile app, Cursor, VS Code and others — direct access to your Nextcloud:\n\n- **Files & sharing** — Browse, read, write, search, share, tag, and restore from trash or older versions\n- **Calendar, Tasks & Contacts** — Events, to-dos and address books over CalDAV and CardDAV, plus Deck boards and Projects\n- **Talk, Mail & Notifications** — Conversations, polls and reactions, mail accounts and messages, notification triage\n- **Photos & Maps** — Albums and metadata, GPS tracks and devices, favourites, and photo geotagging\n- **Notes, News, Recipes & Bookmarks** — Markdown notes, RSS feeds, recipes, and bookmark folders and tags\n- **Coworkers & administration** — Run saved AI jobs, manage users, groups and apps, run `occ`, and check integrity\n\n### Resources\n\n- [ReQurv AI Hive](https://hive.requrv.ai)\n\n---\n\nBuilt on the [Nextcloud](https://nextcloud.com) open-source community and the [Model Context Protocol](https://modelcontextprotocol.io).\nPublished under the AGPL-3.0 license."}},"isFeatured":false,"authors":[{"name":"ReQurv","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBTCCAu0CAhRbMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDA5MTM0NjU3WhcNMzcwMTE0MTM0NjU3WjAVMRMwEQYD\nVQQDDApyZXF1cnZoaXZlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA\nuf2dyf3zW3EraDeylnIVx6DGjd05TH8I1eCQHMxEuCW2UuPKwunJSqWwLqjntnBD\nZJMvkZwVJ5poijGL5fx/xmRHZFA3F8hky8QVLpodWRfVXXbYA9wN3NtYzmNWvsMa\nED/hcq0U1+cX09EgCNglIzKMLagnNGELXPbH6EJPQgZ2AL6qPak9UmEBnb701/R+\ngm3sArRRCvU4fW3AnDBKOD3OhxbbnpQELMKpBcK581ouI1Be8yUdPhTSjFNtk5sP\nvmer5r04Pryrm9tKsyvCYBcEnMx8PKNGvxBK41OR6305m5urSf9yiVnUlPxUbMqx\ngBPHp+KcNTIBrIZ7W1um8TlRQJ3evrOLtP4/Ok5DaGhk1E1H95pn9BCIEFOc4Yqd\nCF1gtI0SyE6LQ43TtXPO+FbsTclt+vxcph61a0Omp1KDrGcnHIoC7950psHN10a2\nC1rcquTkZ0N7/golQ5DlbQBQTRf1s94VU8pX1N2JhMtrzJAwBKfUGDGQ9c4Y9HQd\nDTJ2oQ6cPMitbkzGrM83mTlfqxIWzwmM+s5RrXdpv4FjZa1X6JPo8dF3MkIoYCgu\nTFfdz088ZmIiXexlRaimSCBkWegpDOfk4B2U3bU2uzDa1I1AXOOCKw2xJPyuIsU4\nh+3LC2ui9n1Kkxnk0l/hvaEwTK6lw3KSf0L4Iy0SlqECAwEAATANBgkqhkiG9w0B\nAQsFAAOCAQEAcQgafk70Jaoi+zOJI8gUmOnatTWVaSnM2Nuh9RKCmEghd0/IrR+m\n80664lDa3cKeqdTRSa46VFatEVqe++tH3k8PZL8i/Zp2MM9pYl8RQdJSb/cbj5Ql\nijvOz8avuLDdaHxQJO9wXz/RP75K32jgxyI05mdRfEyqISpOXip453YbYkLduCHD\nRETu0oAURWMIz3SwI25vXoV5GcBViAxen+5ifOgtDeiTE440Dfl7zWcA+d3zdqis\nLp8elpsXy6o8MN2o/R1W8Ob9uS08OdtlUJGudx+gjZO1uWtGjlug1biaqlHOqib9\nnSNrw6bZ4P8xeOqKSH7hj+TX1n+qjiYtQA==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"fit_tracker","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/alesrosina/fit_tracker/issues","website":"","created":"2026-04-16T18:06:43.237362Z","lastModified":"2026-10-18T14:40:35.677588Z","releases":[{"version":"1.2.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/alesrosina/fit_tracker/releases/download/v1.2.0/fit_tracker-1.2.0.tar.gz","created":"2026-10-18T14:40:35.660442Z","licenses":["agpl"],"lastModified":"2026-10-18T14:40:35.715384Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"pcG6xgB/eHcQnCyKh8cUMQ/ROax79tlXq3AhglSsldNgxnODgotXfwNi/44F8ht1u1Eqnl4FH/Rc6qVROFnje7IPKpFnooJTIoT3mQtAMfhX/mkBJSw++1tJL0vLtDReOw95CDK+B5/3GhvbxhMsq+GihEpph54aUnbZ7yzsoI4xERs3QjOFFv4IGEvYq9ezQjdQ1Ki2wkK1u2whjue4iQNiCHHuzU/phRNBSXDnqG7w1i0/UQExkQIFz7TMGbRmrg5jeYqFxWq18e4Qp/jtvDF2tqi8mYwPdkjuKII/0SBySQnFl+YFFwN4GpOEvB8JUjki8dYJKOFNd96WftVhOvOv5+eCjz/M+1gBq6u+71ENJ7MJvyX++hTkF9JBnwixKuu9hYpXP24VEQWVIcd9R8hpmtd8Ud3D0nYOe7Q05HzOrUKV6XHr5P2B/v7BAE8zkQiLimAE4z/wu4GzviB2CmmmDPMPGFX5kSe2pI56526R9Sf8xc/DUhxk2vi+r3rQHkg7tp78OyFGAMtYX23bPjNZKlT+ur+Sn7nuzR/DqwIN4sEd3gp2IEF2KAOqNxse3Zb0dxIMhJgNwy54Ej0x/jU2WTRwbwRTip6ApmOj1bt7R8zmfBvJ0q9hJmMJNleUKgGx67o8gbCE+GrbD/9KYqQAYwEEWETDuARi5+wOTZs=","translations":{"en":{"changelog":"### Changed\n- UI follows the current Nextcloud design guidelines: Material Symbols icons instead of emoji, Nextcloud components for buttons, menus and dialogs, theme variables for spacing, colours, radii and font sizes (fixes dark mode), and sentence-case labels\n- Settings moved to the standard Nextcloud settings dialog; picking a folder saves it right away\n- Sports are grouped under a \"Sports\" heading in the navigation\n- Delete moved into the \"⋯\" menu on detail pages and confirmed with a Nextcloud dialog that states the .fit file is moved to the trash\n- Deleting an activity or sleep session now moves its .fit file to the Nextcloud trash, so it no longer comes back on the next sync; restoring the file from the trash imports it again\n- Loading shows skeleton placeholders; load errors offer a Retry button; empty pages explain the next step\n- Photo viewer uses the Nextcloud modal with built-in previous/next navigation\n- Pace chart looks like Garmin's: faster is up, values shown as m:ss, and stops dip to the bottom instead of stretching the scale\n\n### Added\n- \"Sync now\" in Settings → Source folder, with a summary of newly imported activities and sleep sessions (the folder is still synced automatically when the app opens)\n- \"Re-import from file\" in the \"⋯\" menu of an activity or sleep session: reads the file again with the current parser (it may move between activities and sleep)\n- \"Re-import all files\" in Settings → Maintenance\n- Translation support for all interface text\n- Keyboard and screen reader support for activity cards, calendar days, photos and chart navigation\n\n### Fixed\n- Pace and speed charts are smoothed and averaged instead of sampling single GPS points, removing most of the spikes\n- Distances in chart tooltips were shown 1000× too small (e.g. \"0.01 km\" instead of \"10.00 km\")"}},"signatureDigest":"sha512"},{"version":"1.1.10","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.1.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/alesrosina/fit_tracker/releases/download/v1.1.10/fit_tracker-1.1.10.tar.gz","created":"2026-10-18T12:11:23.688017Z","licenses":["agpl"],"lastModified":"2026-10-18T12:11:23.734499Z","isNightly":false,"rawPhpVersionSpec":">=8.1","rawPlatformVersionSpec":">=32 <=35","signature":"kMueHYfRRNfcoOWp70uLe8aenEea5u2C0PdDrS/g52DBt8itm9beSK41QoIwnL9xJ2nK5Km7++6shSuxK8MImLdUvZoCfoXs89Q2fX/QrZNygCyiaanJynhK9hX+kLQ4skih7aiYjTNOB+3OVNtjYXpHGOzaUZBz6GwhmapB1615OO5561NS3LoFrKYdcqxJ9bPwcsqq3j0gbs9OiDEIo63PNqaz7ITUS6HaiwRHi7ErtX3HOJKuzAXEgD5uLBb48i4rI++7PCcIRHjy6prt7FD2EZ1/YWaKYUEmhMAbwlmCdBSYUUHhWpf9j4p3Xx8e2tBfjvr1MblYS05H78p0+QLX9uD0b+ulSHNzSyoexb0+dmP7sMz6+TwL+Zht49R6BtH+Myaih7TRTCqbUWw0xCG48NsiyJ1LaUQzYA+AkBb20dga0+aBBpKX6IJZdRu/rWdg7o5a+fJQZY5AY44kNXkaezlOarcJFgEgeZ/ODbviNn4724mWFUvQH2+vnxDYTeT3DxbcYCVnmBX8kCUUeOYP+ToWTzfEChcCfThT0m6en+TG85nmIwnJPnikZg+kbA7Q8XVLRBXkym+ooNAeEGJjEDHTMslXb5DctWqZkpx8n6gEVRnETdDp2gC53DPJoRuiGW4s0T0/m8IxaT1DVzg99u9U0wbhTdFKRHT5MJQ=","translations":{"en":{"changelog":"### Changed\n- Declared compatibility with Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FsZXNyb3NpbmEvZml0X3RyYWNrZXIvbWFpbi9kb2NzL2FjdGl2aXR5X2xpc3QucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FsZXNyb3NpbmEvZml0X3RyYWNrZXIvbWFpbi9kb2NzL2FjdGl2aXR5X2RldGFpbC5wbmc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FsZXNyb3NpbmEvZml0X3RyYWNrZXIvbWFpbi9kb2NzL3NsZWVwX2xpc3QucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FsZXNyb3NpbmEvZml0X3RyYWNrZXIvbWFpbi9kb2NzL3NsZWVwX2RldGFpbC5wbmc=","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"FIT Tracker","summary":"Activity tracker for running, cycling and gym workouts","description":"FIT Tracker is a Nextcloud app for tracking your fitness activities and sleep — powered by Garmin .fit files stored in your Nextcloud filesystem.\n\nSimply point the app at a folder containing your exported .fit files and it will automatically import and parse them.\n\n🏃 **Activity tracking**\nRecognizes the full Garmin FIT sport list — Running, Cycling, Hiking, Walking, Swimming, Gym, Breathwork, Meditation, Skiing, and dozens more (sailing, golf, rowing, kayaking, tennis, climbing, and others). Each activity shows distance, duration, average heart rate, and calories. The detail view includes an interactive map with GPS route, charts for heart rate, elevation, power and pace or speed, a per-lap breakdown, and a Share button that generates a shareable image card. Activities can be re-imported from their file or deleted, which moves the .fit file to the Nextcloud trash. The dashboard shows a monthly activity calendar and a last-7-days bar chart, with sidebar navigation limited to the sport types you actually have data for.\n\n😴 **Sleep tracking**\nAutomatically detects Garmin sleep and nap files and separates them from activity files. View all sleep sessions with a monthly stacked bar chart (Deep / REM / Light / Awake), navigable month by month. Each sleep detail page shows total duration, sleep score, HRV score, a full sleep timeline with stage transitions, and a per-stage table.\n\n📷 **Photo integration**\nFor any activity with a GPS track, FIT Tracker automatically finds JPEG photos stored in your Nextcloud whose GPS coordinates fall within 200 m of the activity route. Photos appear as a thumbnail strip below the map and as clickable pins on the route map. Clicking a photo opens it in a viewer with previous/next navigation. Only GPS-tagged photos are shown.\n\n⚙️ **Settings**\nChoose any folder in your Nextcloud as the source for .fit files. New files are imported automatically every time the app is opened, or on demand with \"Sync now\". A \"Re-check sport types\" button lets you reclassify already-imported activities under the current sport detection logic, including moving mis-imported sleep/nap files over to Sleep, and \"Re-import all files\" reads every file again from scratch."}},"isFeatured":false,"authors":[{"name":"Ales Rosina","mail":"me@alesrosina.com","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBjCCAu4CAhM0MA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNDE2MTIxMTE3WhcNMzYwNzIyMTIxMTE3WjAWMRQwEgYD\nVQQDDAtmaXRfdHJhY2tlcjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nANJZ+pp5tpkS5dXPOHl9swZRsbCQZnztSysKEzJ/twd8mAAidIjdsSD+SiHhXtEz\ndGV+EDvmSo/sktTec505bR3I968nJlN/mWGV9H5rSo4rH95rRBHgIDtVhU49mj+s\n1uCyBBYXNzqMGG70ej3YO8yiIW++YQZ2Zko307yxK7eXmxuYds/ml5yq+DsaNKnn\nuVugJ2pGyjDmBMvCl/O6dzCDp/0RZ2PFiTJ7AuRzAg4jyVia8kwQIr1ChtZtDdHq\nlCmlweIFFwnF//FGTQYdWelseQx9Ks3qRa2J+azBQCsiKzRgi8CelRb5eneGA8ce\na1W+CX8gnYxMwzecbtuLcUzY+6tGbH4wrt4ZW1Ob8IETbRKs+7/ptwMfbScYYcji\neeOXq/hX6KhQDRnaPeUTT47J1iBDBdl++rLdvOqtac3xtwXkiDyOx8F01v5LaSYc\nrZNHtxlK3ZVX+5oXONwYpiZOgqLdSmdPQwLj9rg0FqMvmVlGt2E7g2htu3GyBZWw\nVEUkeRzNNVNsrt0vx7/brCY/KABNko/AqKS5bKL1w1rx/R+63bn3av1StYAsGbQ4\nPtrU9AwfQ/DvP6gSJiRR42L5uLGP3+UiaPd4hPx5PTb2LSzE4mRtTCdMEIsLv0Te\nOeJ4gXgPuvo8x9iQUVuTLpCZrs5bTGUgIvVWz3DBlI+DAgMBAAEwDQYJKoZIhvcN\nAQELBQADggEBABTSdAYiXC5KP/2Rci9k56iYJ74n6+lkcPwLOOQyYVuGE7lledRC\nRNgrdGa04OJb/BU71s6gVaeD9iBZkltmlRAevGcqxyS40GSHYwtDm6v9ZhCypu/C\nqC55M7UOURC2+rfq56EYF+Lq1mFMrCC0tBhD7Yv285X6NV1Hya9Y+SHmsQJ8tLlc\nvXdeXPnONdCFy2YUmJX/vxYW0ETvH9AEBfdoSe+SDzPEqfcBJFQgPw5/+/RpPKUg\nytDKYpcdHNV/LePoykHoQlDD27iRHWjrqhpwLzo2XH3470Ql2OfNTsM1jb69MySx\nKNpWsQf3xvCmvNPNh907A3rVIPzf75bEPSU=\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"drawio","categories":["files","integration","office","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/arnowelzel/drawio-nextcloud/issues","website":"https://github.com/arnowelzel/drawio-nextcloud","created":"2017-05-02T01:01:43.151164Z","lastModified":"2026-09-19T21:58:54.898745Z","releases":[{"version":"4.3.9","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/arnowelzel/drawio-nextcloud/releases/download/v4.3.9/drawio-v4.3.9.tar.gz","created":"2026-09-19T21:58:54.874482Z","licenses":["agpl"],"lastModified":"2026-09-19T21:58:54.940963Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=33 <=35","signature":"Yec/BWdjvhkh36GO7YFqZKyNlVE/3h1BTcTW6cDmPmBLL0RpR53R0SdeWYRYo6Hf\nPtoHpGGnsqw7bEEmT2wNpVxp6iGi09oXrytCsSNYf86wbFkxn0TiZU7VJUyQFjT9\nko37ywCtM0PxGBi0e1XboJIprXMg+qhV/ziFOIeEkgV80JHVWg1AA7JbKKq+F70t\n4G+b9yPKPwJjwse5ycHPdat6iGTjkKpos8IGsgwXW+3F1jFZ6GVgsAXCppoNDwEM\nfsfW/jk5kpSjR8frrASQobpsLVXylEhNf4JlsXWW85bSxKaoCJUxa5UxiZtVi5kE\n13K1jl2nfzmGLTHzk3qqJXwjSE6kVeSNQT28kcDWbZZmG9o+KmU64q++n4lLOh4G\nLHgVJhp21F/921tif9x2rOgqontm8ybai6/t76n3rhPSQNA3GCzf1ICq/cgMthRH\nq+NFOlYrWqEmCQzT3ogPTeg4F4kbn5nmuqsV8Xu08XzeiQy6HjWXjlFATWxyxbTQ\nWw6DkEQZf/kRxUJVUlAydoXyhA/JZHEtBPxwv1w32XLlR3f7jjG4KtTu4t3zjXRf\nliJukiIR0ysrGnU8p9HuS3gIa1uCyYJRpXgXB1f0JxzHP0T27PYqXR6lcanNg9iY\nZ3TyyvNGb3AAaQb67x0EIabdPhp5Zi9VBf6IVBmWv4o=","translations":{"en":{"changelog":"- Update compatibility information for Nextcloud 35"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fybm93ZWx6ZWwvZHJhd2lvLW5leHRjbG91ZC9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvZHJhd2lvX2ludGVncmF0aW9uLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/arnowelzel/drawio-nextcloud/refs/heads/main/screenshots/drawio_integration_sm.png"}],"videos":[],"translations":{"en":{"name":"Diagramming","summary":"Create and edit diagrams and whiteboards in Nextcloud","description":"Integrates the diagrams.net diagram editor with Nextcloud. Users can create and edit .drawio diagrams and .dwb whiteboards directly within the Nextcloud file manager.\n\n**Features:**\n\n- Create and edit diagrams and whiteboards from the Nextcloud \"+\" menu\n- Click any .drawio or .dwb file to open the editor inline\n- Autosave with optimistic conflict detection\n- Inline diagram previews in Text, Collectives, Talk, Notes, and Deck\n- Supports public share links (read-only and editable)\n- Offline mode for privacy-sensitive deployments\n- Configurable editor URL for self-hosted diagrams.net instances"}},"isFeatured":false,"authors":[{"name":"Arno Welzel","mail":"","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.96875,"ratingNumRecent":0,"ratingNumOverall":32,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEATCCAukCAhNvMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNjE4MDgyMjIyWhcNMzYwOTIzMDgyMjIyWjARMQ8wDQYD\nVQQDDAZkcmF3aW8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCPMg3m\nToixABiX0J1cq37EXS237IIzWDUpnASZarEdtetUH1oJop7gGh7IXFglfgfpNKAZ\n7hEyKu/aXEo0T8JI3kP4h/m6vbsEaadRbmwfUF6WHeugQjqJ0xzOeO8oZjwKMPfk\nVfDsWjafEuZCrBVJ7JhCqkqv9c6S0OBH4W/FZXabPp4/kVaJaFLFEYivX0NnEEe2\ne1OuS1E/fAQ49Hecxr6yoaBmkgTAf/q79JaoCoyBviVQ7eP0Apjxn4pN/vR2jLnj\nFDZBv8/+/jyVqrRuucBbbRussxj8+LQWA8Vjo1VM+StfucovczPcvzyBBacyCL/K\nXYhN6MNAjU1oYWTWSXnXG8Xr4kui3MM0lcyIw/92lDJWtDfZVM3KB8byeheCYtor\nroZa9P4Mk3pFWX77d0gVjNo74aEWYyZNU4jZPwCfY924PB/sz818uxLLYP9snYGG\natavyavel9RiUq0ZAUCRhXh7ova/m8ZtuZjW6wOEPCeTT4EX0hcOagTI6o2BpuoY\nUsCaDOYMN2c6lkh0YB4e/8ajPGsPF/2B66MxaAe4SOK5j1fIqhyIi9QCB732wPid\nM8K2XmOBPNlDBEMYe77vgdW7l9kYTtMgMnHL8Sr81p/rEciSDIzsHjGpIDiimO84\nROwSUEZTNo8H83Nv96VJInKCWTfevIpR67qwCwIDAQABMA0GCSqGSIb3DQEBCwUA\nA4IBAQBEVxCrlybieCLbRiQhr67ZMNef+PN5ZhtfGjKOp9DD3jvtcLbOQtfCCZxf\n7SgoQPU/6vGU70CjZUILpFqg49uKFmtIi00KEF/LTOLZ8fA3VyDWPKrigHwof4QF\nn6mP0DYtEZ00Nz5C+nwf6JHJi63EW3mzqGHYBftlTzgRRm5Zh+GU5NJhTCsPdgrI\nWPBoRRjUZF0ThCDc4YniswHy/cS3EHRbYfmWDn8qSedSY1zvnqLkxwA5/Gox+6Lj\n4TERTfGHkCj0NDy+7urkC7+t/15vmq68aLzmmWqhgA3ON/84bmv6RD8Z943mSI6p\nXdN8v5SLDh8v5H5EbNyMBshvqGjK\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"frontend_insight","categories":["tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/callmemagnus/nextcloud-frontend-insight/issues","website":"https://github.com/callmemagnus/nextcloud-frontend-insight/","created":"2025-12-28T11:49:45.957545Z","lastModified":"2026-10-17T14:55:07.339974Z","releases":[{"version":"1.3.4","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=34.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/callmemagnus/nextcloud-frontend-insight/releases/download/v1.3.4/frontend_insight.tar.gz","created":"2026-10-17T14:55:07.335593Z","licenses":["agpl"],"lastModified":"2026-10-17T14:55:07.374853Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=34 <=35","signature":"XIo2LitrH5mv4S3Uk+2j+aQ9P5YGIWSrI6uol3uYOyTqYVjAARgkg6kaJ9Q+gJgRQIZeXqbTBDsZxa3GQKRQcZqVm5wohbvXcLCUcmv+PeC48+/g4FUs+YytsqvZgPanNpQeM9WBgKxZGCWQobpcFKaIzbp0vd8bxKa0dAMUb+OM6HlGgUIFTuB3jud13SGryF5tsLD1qEj5ykdT1xzK/IY3SNdQepdFWfGqE4LFVRnhGVI3nBekL7HtsPl5WxPT45V4ufzR4yb75YWJbRP9oc5wvsaDZdsafotsQb7+IoOk8lVJgHo0torXGltd8xFbwXt2lT77rdz6QCqv0RyTJP082Oe9CbUGm2Fk00TP9RUs1Xn+B9KcpfT53MiNC/qGaqn3+XUOnkhZuGmcXmz0pf8TUVayoaOknvYGwY88Z/kQo+d4EfndK20F9eSmWJMFHuLPco8ncJVFLp7r4oBRgo6HRnGpx8NEV5zyQH5SDLhRx5MpLBpG7d7gd2zDBh9zrSPD1Ko3q+cG9dCzhLEG0h/g03JU8eIR2rogdqmyoA4JmvV14fN6lQQ1lAcZvY1Jo0pVr6RCwIC03k3BjKKFrZPijNZnxnDR3CwhVYtMUVtn0SVh1B5lnz3mEGQUkG4G+fK/6B/MGevlyfWSj6l2e/A9xu3OffbERXY0Aws5rvA=","translations":{"en":{"changelog":"- update dependencies"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHN1YnVzZXJjb250ZW50LmNvbS9jYWxsbWVtYWdudXMvbmV4dGNsb3VkLWZyb250ZW5kLWluc2lnaHQvbWFpbi9zY3JlZW5zaG90cy9ldmVudHMucG5n","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2NhbGxtZW1hZ251cy9uZXh0Y2xvdWQtZnJvbnRlbmQtaW5zaWdodC9tYWluL3NjcmVlbnNob3RzL2FkbWluLnBuZw==","smallThumbnail":""}],"videos":[],"translations":{"en":{"name":"Frontend Insight","summary":"Know what happens in your client's browser","description":"🔍 **Capture and analyze JavaScript errors from your users' browsers in real-time!**\n\nFrontendInsight gives you **visibility into frontend issues that would otherwise go unnoticed**.\n\n✨ **Key Features:**\n• 🐛 Automatic tracking of client-side errors and unhandled promise rejections\n• 📊 Browse events with advanced filtering and sorting\n• ⏰ Configurable data retention policies with automatic cleanup\n• 👥 Restrict reported events browsing to specific user groups\n• 🛡️ Built-in rate limiting to prevent abuse\n• 🚀 Modern UI built with Svelte 5\n\n**Identify and fix frontend bugs before they impact your users' experience!**"}},"isFeatured":false,"authors":[{"name":"Magnus Anderssen","mail":"magnus@magooweb.com","homepage":"http://magnus.anderssen.ch"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECzCCAvMCAhLcMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjUxMjI2MTk0MDQwWhcNMzYwNDAyMTk0MDQwWjAbMRkwFwYD\nVQQDDBBmcm9udGVuZF9pbnNpZ2h0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC\nCgKCAgEAs5cY8f1MbbEhscVCIWpq9Jq6mYo3PG8VBV3J8zohj8oInzdZhhqIxxcQ\nZrlopTRcYUUucrd4XvYtTXKkvKN4CZcibiY4Sptg/6WixGCJ2ssGQqThEbBJFjHT\nkonqyDko/JXD/cVA9Ou5XOgnm2dMzYKoY3KSyfnHr9rZbeJCBFH8hzqL1a/ZTZTo\nXUVz4z6HVPblEHwiifHE43Cfow/oYKcqq9mvMmNK6e1VGXyD0WrWBlsg/sdGFPAP\nw4hGwbLMX7koASa5T0erPxbBC0y1g8UInoeYxMA6Rhg6bq1eLQ2RE+k42I9eZ/OE\nSsXZWamlG89mXXax2yCaoDF95du44ysrBUTXS2b1TbP16PONT+ZsYMTb2FtGq7m6\nlZLITpREy33XKobZfwEQVPKi1ECH1JzPejEHy3cFNT9uBjTcpsovAQQrdunAXEZJ\nA0Ik9cUEVKGFJDmS1KZ+0iR44E870WJrNjMe37kZbpoOoHQsJ3XlFNsgntweQz5D\nSRrVt7p5hzCXwliyjlmJFSRgUX7mY3z8eaPaSQJG0l5wZS1ogszyKFHSk0C2uk25\nhIoeLZTtwM+sOE5cA/DE7mrzxctLW7yIbmi5Av2pIMLo1EG5OmM8Mj0y9Eo7M5tN\nJXH8hh2s+Uayx1C+VX3u/5bbWK37QQuNyHJOgqORy11LdNCEbrMCAwEAATANBgkq\nhkiG9w0BAQsFAAOCAQEAEnlrJYMkzN+aGWOva1aYUnwVtw52ty9F9mzGsgiVZbww\njTwrvIKORFxv1SaGE2gywWgRbwxmA9kCc9Ot9Uc5+/40RfQa1h/AMg4U0w365/9Y\nTKG9wLbKoW57jkpJcwPAVb4dxJrkW1ZUHk/1rXHDHOT79erjT/oT2fBGEk1Jzr2I\nTn1Y82u2xDOLSnr5v5YZymrvC3z15vKdbSZuE/7UX29m6OsY4rkctaT6yvZUKnIX\nO8FWv2JMxSz5hm79d7wraAcAxzGXrLpdPZYtF2i7F69ravXayifwdz4m6FVJsW3r\nwaOO9WuLCpWfGxMUSQGJ8fsaQtaStwKhLA4mcM0m+Q==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"customercheck","categories":["organization"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-10-12T20:21:30.747779Z","lastModified":"2026-10-12T20:26:05.301246Z","releases":[{"version":"1.6.190","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/releases/download/v1.6.190/customercheck-1.6.190.tar.gz","created":"2026-10-12T20:26:05.292296Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-12T20:26:05.401136Z","isNightly":false,"rawPhpVersionSpec":">=8.2","rawPlatformVersionSpec":">=32 <=35","signature":"oPMXPfStEBWaCFUHZYv+CMUJvb6X0qgVxssmSjnWny3QvVFR+IHmFu6rlukhZDMCKwlT9a0upnm/x6eVE+5ZmspULX2seljWG2UkU/Vj0sAuIzJ458NWSgC2ML/V5bquMZomaf9icp8IlX4H8BcRcQKeSlW7Se60Fvsfa20nDyO8WZAc2IejoiXgrEVCrqfZEQDQI6dedp4YITFPVIy7wEaNbLzCqCn4wPaK4awfdIEtQjU0YGnfVh9vEzDB272Tdj+HiqAaLh6qtagP+wldr0J5EIEHRYPpotm7Ca7VI2dCi57xzZzDlYZAi5vXGjMpQ40AJ8TThFH/uiS6Ezl7RqxwJJCrxx2E32loEswgQuUHEsIu5cugYTZKdEPfZ/RcTsXYa/HjfLpmOZqtGSU6N14sb2p8wSq3EwJSKADQoVj3Ew2VZVud8BZylsG/t+nD1T72ntozMCI47DxyhmUPJ2KjbE7w8AA5UcJTPK+Bk5764pXK4UXr7LxRyyFcNDHycnUrKR8iRzX+/SAMBOMrLwcR4DXMfsD9Y9koKiGkEmBr4+aEhLKkzomnNJCJTuyo7Zz6kyW8R1ES6s7nqgEhGq8ogtthK3+QbjpfrPPW0mfW0cO7ymQwy7pcaSBUhytQLwEHOiWyOpn4w2JKeg+LgbGbtlqNJFnl3ewTWMzvi3I=","translations":{"en":{"changelog":"### Fixed (Dashboard — Today desklet theming)\n- Register `desklet-nextcloud.css` on widget `load()` so list-row icons invert under Nextcloud dark themes (Vue SVG load never flipped → invisible file-icons)\n- Theme-safe `::before` app mark, 44px touch targets, focus rings, readable multiline subtitles — WCAG 2.1 AA"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTAxLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTAyLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTAzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTA0LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTA1LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtY3VzdG9tZXJjaGVjay9yZWZzL2hlYWRzL21haW4vc2NyZWVuc2hvdHMvY3VzdG9tZXJjaGVjay1zY3JlZW5zaG90LTA2LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-customercheck/refs/heads/main/screenshots/customercheck-screenshot-06.png"}],"videos":[],"translations":{"en":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nThe Nextcloud-native CRM for customer work: one place where a workspace\nshares a customer book, shared mailbox, account plans, and operating rituals —\nso the team can see what’s going on, decide what’s next, chase deals and renewals,\ncoach the team, and measure the book by joining Check apps and Groupware.\n\nA focused CRM — not Salesforce. Ledgers stay in ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Highlights\n\n- **Today / Pulse / Brief** — act now, measure the book, weekly owned commitments\n- **Company 360** — Ten Command Questions with honest sibling mute reasons\n- **Workspaces** — roles, switcher, fail-closed directory allowlists\n- **My Chase & Pipeline** — next action, quote age, sequences, loss codes, forecast labels (not cash)\n- **KAM coverage** — buying roles, next touch, customer promises\n- **Team coaching** — stuck board, OOO backup (non-stealing), bulk reassign\n- **Universal Review & Conflicts** — shared mail + platform candidates; three-way edit conflicts with reason\n- **Renewal engine** — 60/30/7/0/+7 exactly-once remlog + ICS\n- **Shared mailbox** — folder IMAP + SMTP send with unavoidable shared disclosure\n- **Check Partner hours** — 15-minute quota log with 80 % alert\n- **Integrations** — optional ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Accessibility** — WCAG 2.1 AA; responsive from 320 px · EN + DE\n- **Web free (AGPL)** — companion seats never gate the web app\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB or PostgreSQL"},"it":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nIl CRM nativo di Nextcloud per il lavoro con i clienti: un unico luogo in cui uno spazio di lavoro condivide il registro clienti, la casella di posta condivisa, i piani di account e i rituali operativi — così il team può vedere cosa sta succedendo, decidere cosa c’è dopo, inseguire accordi e rinnovi, guidare il team e misurare il registro collegando le app Check e Groupware.\n\nNon è Salesforce. I registri restano in ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Punti di forza\n\n- **Today / Pulse / Brief** — agire ora, misurare il registro, impegni settimanali presi in carico\n- **Company 360** — dieci domande di comando con motivi di mute onesti per gli “sibling” quando mancano app\n- **Workspaces** — ruoli, selettore, allowlist della directory “fail-closed”\n- **My Chase & Pipeline** — prossima azione, età del preventivo, sequenze, codici di perdita, etichette di previsione (non cassa)\n- **KAM coverage** — ruoli d’acquisto, prossimo contatto, promesse al cliente\n- **Team coaching** — stuck board, backup OOO (senza rubare), reassign in blocco\n- **Universal Review & Conflicts** — posta condivisa + candidati della piattaforma; conflitti di modifica a tre vie con la motivazione\n- **Renewal engine** — remlog “esattamente una volta” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — cartella IMAP + invio SMTP con divulgazione condivisa inevitabile\n- **Check Partner hours** — registro della quota di 15 minuti con avviso 80 %\n- **Integrations** — ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps opzionali\n- **Accessibilità** — WCAG 2.1 AA; responsive da 320 px · EN + DE\n- **Web free (AGPL)** — i posti del companion non bloccano mai l’app web\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB o PostgreSQL"},"nb":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nDet Nextcloud-native CRM-et for kundearbeid: ett sted der et arbeidsområde deler kundeboken, den delte postkassen, kontoplaner og driftens rutiner — slik at teamet kan se hva som skjer, bestemme hva som kommer neste, følge opp avtaler og fornyelser, coache teamet og måle kundeboken ved å koble Check-apper og Groupware.\n\nIkke Salesforce. Føringene blir i ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Høydepunkter\n\n- **Today / Pulse / Brief** — handle nå, mål kundeboken, ukentlige forpliktelser som er “owned”\n- **Company 360** — ti command-questions med ærlige begrunnelser for mute av “sibling” når apper mangler\n- **Workspaces** — roller, bryter, fail-closed directory-allowlister\n- **My Chase & Pipeline** — neste handling, alder på tilbudet, sekvenser, tap-koder, prognoseetiketter (ikke cash)\n- **KAM coverage** — kjøperroller, neste kontakt, kundeløfter\n- **Team coaching** — stuck board, OOO-backup (ikke stjele), bulk reassign\n- **Universal Review & Conflicts** — delt e-post + plattformkandidater; treveis redigeringskonflikter med begrunnelse\n- **Renewal engine** — remlog “exactly-once” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — mappe-IMAP + SMTP-send med uunngåelig delt avsløring\n- **Check Partner hours** — logg for 15-minutters kvote med 80 % varsel\n- **Integrations** — valgfri ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Tilgjengelighet** — WCAG 2.1 AA; responsivt fra 320 px · EN + DE\n- **Web free (AGPL)** — companion seats sperrer aldri nettappen\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB eller PostgreSQL"},"nl":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nHet Nextcloud-native CRM voor klantwerk: één plek waar een werkomgeving zijn klantenboek, gedeelde mailbox, accountplannen en operationele rituelen deelt — zodat het team kan zien wat er gebeurt, beslist wat er hierna komt, deals en verlengingen achtervolgt, het team coacht en het boek meet door Check-apps en Groupware te verbinden.\n\nGeen Salesforce. Administraties blijven in ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Hoogtepunten\n\n- **Today / Pulse / Brief** — nu handelen, het boek meten, wekelijks beheerde toezeggingen\n- **Company 360** — tien commandovragen met eerlijke mute-redenen voor ontbrekende “sibling”-apps\n- **Workspaces** — rollen, switcher, fail-closed directory allowlists\n- **My Chase & Pipeline** — volgende actie, leeftijd van het offerte, sequenties, verliescodes, forecast-labels (niet cash)\n- **KAM coverage** — aankooprollen, volgende contactmoment, klantbeloften\n- **Team coaching** — stuck board, OOO-back-up (niet stelen), bulk reassign\n- **Universal Review & Conflicts** — gedeelde mail + platformkandidaten; drie-weg bewerkingsconflicten met reden\n- **Renewal engine** — remlog “precies één keer” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — map-IMAP + SMTP-verzending met onvermijdelijke gedeelde bekendmaking\n- **Check Partner hours** — log voor 15-minuten quota met 80%-waarschuwing\n- **Integrations** — optionele ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Toegankelijkheid** — WCAG 2.1 AA; responsief vanaf 320 px · EN + DE\n- **Web free (AGPL)** — companion seats blokkeren de webapp nooit\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB of PostgreSQL"},"pl":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nNatywny CRM Nextcloud do pracy z klientami: jedno miejsce, w którym obszar roboczy udostępnia księgę klientów, wspólną skrzynkę pocztową, plany kont i rytuały operacyjne — aby zespół widział, co się dzieje, decydował, co będzie dalej, ścigał umowy i odnowienia, szkolił zespół i mierzył księgę, łącząc aplikacje Check oraz Groupware.\n\nTo nie Salesforce. Rejestry pozostają w ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Najważniejsze\n\n- **Today / Pulse / Brief** — działaj teraz, mierz księgę, tygodniowe zobowiązania we własności\n- **Company 360** — dziesięć pytań „commandment” z uczciwymi powodami wyciszenia „sibling”, gdy brakuje aplikacji\n- **Workspaces** — role, przełącznik, allowlisty katalogu w trybie fail-closed\n- **My Chase & Pipeline** — następna akcja, wiek oferty, sekwencje, kody strat, etykiety prognoz (bez gotówki)\n- **KAM coverage** — role zakupowe, następny kontakt, obietnice dla klienta\n- **Team coaching** — stuck board, backup OOO (bez przejmowania), masowe reassign\n- **Universal Review & Conflicts** — wspólna poczta + kandydaci platformy; konflikty edycji w trzech kierunkach z uzasadnieniem\n- **Renewal engine** — remlog „dokładnie raz” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — folder IMAP + wysyłka SMTP z nieuniknionym współdzielonym ujawnieniem\n- **Check Partner hours** — rejestr kwoty 15 minut z ostrzeżeniem 80 %\n- **Integrations** — opcjonalne ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Dostępność** — WCAG 2.1 AA; responsywność od 320 px · EN + DE\n- **Web free (AGPL)** — miejsca companion nigdy nie blokują aplikacji web\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB lub PostgreSQL"},"da":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nDet Nextcloud-native CRM til kundearbejde: ét sted, hvor et arbejdsområde deler kundebogen, den delte postkasse, kontoplaner og driftsritualer — så teamet kan se, hvad der sker, beslutte, hvad der er næste skridt, jagte aftaler og fornyelser, coache teamet og måle kundebogen ved at koble Check-apps og Groupware sammen.\n\nDet er ikke Salesforce. Bogføringerne bliver i ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Højdepunkter\n\n- **Today / Pulse / Brief** — handl nu, mål kundebogen, ugentlige forpligtelser, der er ejet\n- **Company 360** — ti kommandospørgsmål med ærlige grunde til at slå “sibling”-apps på mute, når apps mangler\n- **Workspaces** — roller, skifter, fail-closed directory allowlister\n- **My Chase & Pipeline** — næste handling, tilbudsalder, sekvenser, tabskoder, forecast-labels (ikke cash)\n- **KAM coverage** — køberroller, næste kontakt, kundeløfter\n- **Team coaching** — stuck board, OOO-backup (uden at stjæle), bulk reassign\n- **Universal Review & Conflicts** — delt mail + platform-kandidater; trevejs redigeringskonflikter med begrundelse\n- **Renewal engine** — 60/30/7/0/+7 præcis-én-gangs remlog + ICS\n- **Shared mailbox** — mappe-IMAP + SMTP-afsendelse med uundgåelig delt oplysning\n- **Check Partner hours** — log over 15-minutters kvote med 80 %-alarm\n- **Integrations** — valgfrit: ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Tilgængelighed** — WCAG 2.1 AA; responsivt fra 320 px · EN + DE\n- **Web free (AGPL)** — companion seats blokerer aldrig webappen\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB eller PostgreSQL"},"sv":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nDet Nextcloud-native CRM:et för kundarbete: en plats där ett arbetsområde delar kundboken, den delade brevlådan, kontoplanerna och arbetsrutinerna — så att teamet ser vad som händer, bestämmer nästa steg, jagar affärer och förnyelser, coachar teamet och mäter kundboken genom att koppla samman Check-appar och Groupware.\n\nInte Salesforce. Redovisningarna ligger kvar i ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Höjdpunkter\n\n- **Today / Pulse / Brief** — agera nu, mät kundboken, veckovis ägda åtaganden\n- **Company 360** — tio command-frågor med ärliga mute-skäl för “sibling” när appar saknas\n- **Workspaces** — roller, växlare, fail-closed directory-allowlists\n- **My Chase & Pipeline** — nästa åtgärd, offertens ålder, sekvenser, förlustkoder, prognosetiketter (inte cash)\n- **KAM coverage** — inköpsroller, nästa kontakt, kundlöften\n- **Team coaching** — stuck board, OOO-backup (utan att stjäla), bulk reassign\n- **Universal Review & Conflicts** — delad e-post + plattformkandidater; trevägsredigeringskonflikter med motivering\n- **Renewal engine** — remlog “exakt en gång” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — mapp-IMAP + SMTP-skick med oundviklig delad utlämning\n- **Check Partner hours** — logg för 15-minuters kvot med 80 %-varning\n- **Integrations** — valfria ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Tillgänglighet** — WCAG 2.1 AA; responsivt från 320 px · EN + DE\n- **Web free (AGPL)** — companion seats spärrar aldrig webbappen\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB eller PostgreSQL"},"de":{"name":"CustomerCheck","summary":"CRM für Nextcloud — gemeinsames Kundenbuch, Today/Pulse/Brief, 360°, Chase & Coaching","description":"# CustomerCheck\n\nDas Nextcloud-native CRM für Kundenarbeit: ein Arbeitsbereich teilt\nKundenbuch, gemeinsames Postfach, Account-Pläne und Betriebsrituale —\ndamit das Team sieht, was läuft, entscheidet was als Nächstes dran ist,\nDeals und Verlängerungen chase’t, coacht und das Buch misst, indem Check-Apps\nund Groupware verbunden werden statt sie zu ersetzen.\n\nKein Salesforce. Buchungen bleiben in ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Highlights\n\n- **Today / Pulse / Brief** — jetzt handeln, Buch messen, wöchentliche Zusagen\n- **Company 360** — Zehn Kommandfragen mit ehrlichen Mute-Gründen bei fehlenden Apps\n- **Arbeitsbereiche** — Rollen, Umschalter, restriktive Freigabelisten\n- **My Chase & Pipeline** — nächste Aktion, Angebotsalter, Sequenzen, Verlustcodes, Forecast-Labels (kein Cash)\n- **KAM-Coverage** — Buying Roles, Next Touch, Kundenversprechen, Meeting-Vorbereitung\n- **Team-Coaching** — Stuck-Board, OOO-Vertretung (ohne Ownership-Diebstahl), Bulk-Reassign\n- **Verlängerungs-Engine** — 60/30/7/0/+7 genau-einmal Remlog + ICS\n- **Gemeinsames Postfach** — Ordner-IMAP + SMTP mit unvermeidbarer Shared-Kennzeichnung\n- **Check-Partner-Stunden** — 15-Minuten-Kontingent mit 80-%-Warnung\n- **Integrationen** — optional ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps\n- **Barrierefreiheit** — WCAG 2.1 AA; responsiv ab 320 px · DE + EN\n- **Web frei (AGPL)** — Companion-Sitze sperren die Web-App nie\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen."},"es":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nEl CRM nativo de Nextcloud para el trabajo con clientes: un solo lugar donde un espacio de trabajo comparte el libro de clientes, el buzón compartido, los planes de cuenta y los rituales operativos — para que el equipo vea lo que está pasando, decida qué sigue, persiga los acuerdos y renovaciones, asesore al equipo y mida el libro conectando las apps Check y Groupware.\n\nNo es Salesforce. Los libros contables permanecen en ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Destacados\n\n- **Today / Pulse / Brief** — actuar ahora, medir el libro, compromisos semanales en propiedad\n- **Company 360** — diez preguntas de mandato con motivos honestos para poner en silencio a los “sibling” cuando faltan apps\n- **Workspaces** — roles, selector, allowlists de directorio “fail-closed”\n- **My Chase & Pipeline** — próxima acción, antigüedad del presupuesto, secuencias, códigos de pérdida, etiquetas de previsión (sin efectivo)\n- **KAM coverage** — roles de compra, próximo contacto, promesas al cliente\n- **Team coaching** — stuck board, respaldo OOO (sin robar), reasignación en bloque\n- **Universal Review & Conflicts** — correo compartido + candidatos de la plataforma; conflictos de edición en tres vías con la razón\n- **Renewal engine** — remlog “exactamente una vez” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — carpeta IMAP + envío SMTP con una divulgación compartida inevitable\n- **Check Partner hours** — registro de cupo de 15 minutos con alerta del 80 %\n- **Integrations** — ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps opcionales\n- **Accesibilidad** — WCAG 2.1 AA; responsive desde 320 px · EN + DE\n- **Web free (AGPL)** — los asientos del compañero nunca bloquean la app web\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB o PostgreSQL"},"fr":{"name":"CustomerCheck","summary":"CRM for Nextcloud — shared customer book, Today/Pulse/Brief, 360°, chase & coaching","description":"# CustomerCheck\n\nLe CRM natif de Nextcloud pour le travail client : un seul endroit où un espace de travail partage le carnet client, la boîte mail partagée, les plans de compte et les rituels de fonctionnement — pour que l’équipe sache ce qui se passe, décide de la prochaine étape, relance les opportunités et les renouvellements, encadre l’équipe et mesure le portefeuille en reliant les apps Check et Groupware.\n\nCe n’est pas Salesforce. Les écritures restent dans ProjectCheck, InvoiceCheck, TicketCheck, Files, Mail, Tasks.\n\n## Points forts\n\n- **Today / Pulse / Brief** — agir maintenant, mesurer le portefeuille, engagements hebdomadaires pris en charge\n- **Company 360** — dix questions de commandement avec des raisons de mise en sourdine sincères pour les apps “sibling” manquantes\n- **Workspaces** — rôles, commutateur, listes d’autorisation d’annuaire en mode fail-closed\n- **My Chase & Pipeline** — prochaine action, âge du devis, séquences, codes de perte, étiquettes de prévision (pas de trésorerie)\n- **KAM coverage** — rôles d’achat, prochain contact, promesses client\n- **Team coaching** — stuck board, sauvegarde OOO (sans vol), réaffectation en lot\n- **Universal Review & Conflicts** — e-mail partagé + candidats de la plateforme ; conflits d’édition en trois voies avec la raison\n- **Renewal engine** — remlog “exactement une fois” 60/30/7/0/+7 + ICS\n- **Shared mailbox** — dossier IMAP + envoi SMTP avec une divulgation partagée inévitable\n- **Check Partner hours** — journal de quota de 15 minutes avec alerte 80 %\n- **Integrations** — ProjectCheck, InvoiceCheck, TicketCheck, SbdLicenseOps en option\n- **Accessibilité** — WCAG 2.1 AA ; responsive dès 320 px · EN + DE\n- **Web free (AGPL)** — les sièges du compagnon ne bloquent jamais l’application web\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-customercheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite.\n\n## Exigences\n\n- Nextcloud 32–34\n- PHP 8.2+\n- MySQL/MariaDB ou PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIECDCCAvACAhRgMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYxMDEyMTI0NzEzWhcNMzcwMTE3MTI0NzEzWjAYMRYwFAYD\nVQQDDA1jdXN0b21lcmNoZWNrMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAxOK2Zrbd7Y0dbAZw17+Abvny609hsmGNUNZh1npadyxVLDVCUPvvT2f4pzN4\nzcEULuX2EtPaGaycZ7+z2Dx7STctCLeZBxcdHAgpKu3nMOGJBc0FyBY68wHXmfPG\nF2XN35kCV1ogFAi9aXR0TsHrTbE49YelRwA/9EaK1vozjgliXclXjkxQNxdTdvFf\nMXnavMiYCFM8NYEFZP8CDTV8NkydfTAsyl/xLMyZnWSQ6+TBqMec6fIXkE82QsXe\nmrRA/YZzhXw/8hwYv/U4ySJiHBHcxecPw5g0TfI7g5IDyk4kyzsWuzT8Q8ZugaCJ\nbWTiBtsMzv4QWUm0R7tu0q9+X2TRAURoKWajVIUXz90d66kKwxRiBwTnAEC5ALLF\nYem+rL1hMLTD9t1OCw1OrABAbikQzzn702EUGieGzd6055Uzdm7H40IobSvCu7RM\n5I7RYksNmnZrEKmmgyqZbK6K4eUU5Yd7GjBGLYaLnBSrwr3efYVC7S6dq60bALg7\ntwEz30LMpJ4/v7dlBw1HTqtgBXfRKvzN+uBWr/jwg/Uhv6qbP2+alEZ94PEB4pFw\n9WSQ5co/52anFDyt84ol81eyCewQ8VvDQc9hF+30BpQL9fP06phUUAXqfg3CREBd\nC4p1pLnDZlz6m2YZ1nccEzd3zMU6KmoVX4grxHS/s3SqRYECAwEAATANBgkqhkiG\n9w0BAQsFAAOCAQEACNRJAGbax05mrdXOUthA4QwAYFZ2p70EU/gvsqpRE632n5NJ\nz5YTxw4YI6Z84XLy907ViZPT8Y0TIfFsiRyqClwbarNOEKqKpFHA01vI7yp+9iPX\nAZR/yWg8nSjFU6qXJZJVtlm5VDWIVOy/F1GO65ptlyx0Kv3N8Usk6XoEDai+f4HJ\nzh9QhlgnWbGdUMwJR1JEj3nluGRQcnbipPoEq33d0TTosuF+W6z0wOgUat1lAqAl\nPYW2T0yg+S3BnNuuzY0JMSBaTQXEdAVB/pDkkuZ/jbPlkDfrEf7wiwx+65De8Mwf\nvZh7TGDssg8GQe04vxNMP9GJNCKJ9qs//PqqmQ==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"phonetrack","categories":["multimedia","social","tools"],"userDocs":"https://github.com/julien-nc/phonetrack/blob/main/doc/user.md","adminDocs":"https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md","developerDocs":"https://github.com/julien-nc/phonetrack/blob/main/doc/dev.md","issueTracker":"https://github.com/julien-nc/phonetrack/issues","website":"https://github.com/julien-nc/phonetrack","created":"2017-08-31T16:14:00.415697Z","lastModified":"2026-10-20T15:22:13.556838Z","releases":[{"version":"1.4.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.4.0/phonetrack-1.4.0.tar.gz","created":"2026-10-20T15:22:13.544222Z","licenses":["agpl"],"lastModified":"2026-10-20T15:22:13.902448Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"Dk7J5UQbFnXfEOwi8coSj/YHxJf9D6WdIbtmpRqMvvZiRrBADMvI1Rwa0x9INaYNhkHYCJHor19hAWuMgwC3lk1isDfXIr7d/RUm7SSKWFl7vtlAKdVfNt8+i3ntUjQ4yE3AV9lndxkFcqU4vZ/JIEXguf6dHBQrPuSi/uOLgHN+pHIazLimgsaizZ9H3LcoD9UN5rc7UHXnpT8gekmgnAMDgnBWxOyNIjeNrUyq5FX9NhE21Y/F1MAcdhLlmzw2LncwhIbqFQCr6NEHEo9S1vQb2gMytvPt9RHPyTVKEjvgzt5ky583B8V98WK/1pP5vHcZKhfceqoQuwfYCzEjyA==","translations":{"en":{"changelog":"### Changed\n\n- Update npm packages @julien-nc\n- Update composer dependencies @julien-nc\n\n### Fixed\n\n- Fix proxied MapTiler tile requests after a URL pattern change on MapTiler's side: some tileset `tiles.json` templates (e.g. `terrain-rgb-v2`) no longer include a file extension, so requests like `/maptiler/tiles/terrain-rgb-v2/{z}/{x}/{y}` matched no route and returned 404. Add a route and controller action matching tile URLs without an extension, and only append `.$ext` to the upstream URL when set @julien-nc"}},"signatureDigest":"sha512"},{"version":"1.3.5","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.3.5/phonetrack-1.3.5.tar.gz","created":"2026-09-13T12:39:22.565279Z","licenses":["agpl"],"lastModified":"2026-09-13T12:39:22.984798Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=36","signature":"T1KYf56HTtex+7ciZl+wnoHQNQs8ATtEg1uVL1jBGlWBH3rfNuZ/tKmJ175JFLoOvf4a0fey26Aq03dq0RqvJRK0bHorzQQOlAQqe1Izs2MZOZhRR57F2QP85uEzk0gHRMysPPBe4ZgLaXwfx9zg+BOJ4IVepR3UyR02pL3sWCbkfXqkdK+MxDab9cNwS2QKtNECDPMiixfXKR+EK6sIrrch6PRowsc/95PwPDl2H0liPokMCR7E8k1J9PD1peO9z3dFZOx9xnt4/lxh4W0SCAXxz9TpY+zXn5iSvB/8W4v4iFFJxrTVIFJsAZv8mslqXK21/CxIpX2yKunVlV/wuA==","translations":{"en":{"changelog":"### Changed\n\n- Update npm packages @julien-nc\n\n### Fixed\n\n- Fix GPSLogger POST endpoint `TypeError` when the `sat` parameter is passed as a string by casting it to `?int` before calling `logPost()` @t-loX @julien-nc [#172](https://github.com/julien-nc/phonetrack/issues/172)"}},"signatureDigest":"sha512"},{"version":"1.3.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.3.3/phonetrack-1.3.3.tar.gz","created":"2026-08-16T15:32:29.542408Z","licenses":["agpl"],"lastModified":"2026-08-16T15:32:29.933267Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"YXL2hYjlyHkuiyi9bdQgOVPoJouiKKt7Rja5gSEcb+DGB2mnqby2NHfpaPVshkgPFaeMHzvmSmDR5z2Yx1yIrXt/IukrnBR5TDYjDZO7LFP0CjtEmE8tBVxWP0ZTMVV16xWCHL3RXYFSkrI9ZDff8HrOGFZ2VJjxBswcUSdtYVaxBWG1pUc/u9s6lGnAh7HZoOLhQaxX3HqBZULFuM1k8CKdGgci3poVggILOVxcc3IH0nK5PGjx5xxx1XmMVlhcXzm/LDoCxPCfKbwPgTxN0vorSEWnkfwLtr2R4cRPs1BlT4KPyxagh1LJPW6z+/hvjhQmIFsrRAF0dRUmoiI+ug==","translations":{"en":{"changelog":"### Changed\n\n- Update composer dependencies and fix the psalm issue @julien-nc\n\n### Fixed\n\n- Fix the CSP for the Maplibre worker: add `'self'` to the `worker-src` allowlist so the map worker script can load, restoring track lines and points in `MaplibreMap.vue` views @christian98 [#168](https://github.com/julien-nc/phonetrack/pull/168)\n- Adjust the `AutoExport` command's `execute` method signature @julien-nc"}},"signatureDigest":"sha512"},{"version":"1.3.2-nightly","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.3.2-nightly/phonetrack-1.3.2-nightly.tar.gz","created":"2026-07-27T08:48:47.310056Z","licenses":["agpl"],"lastModified":"2026-07-27T08:48:47.321794Z","isNightly":true,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"L6NjQBh4i2o7Os+EO4AUx0/50iyWBWfAGdaVa/eL2rYIbCiUiBFqeh83tjJjJA23qr3DMmWHV8arpW3/MfYEj+U4i/X0FOiSSjwQZNwQ2CralK4dYKtmhVVPpNe5wk2qw1g1TByOnSRcWmuF5T9DLD7DtLPFbSbN0vJntUfN1mNtVYLxBYt45kEmShsbr/QQ/tzgGp0beJ71n/S4H7RPD7lNBSv0q4BOxZqhzYAPm3qg1ovgkCYQzPSexQcLWR/m3gx4Z/BhG++50/lLq7RL772qcilbdb8svePIlRtGS+ASlMb6AwN7K/IpwrMLzI0ThZAG/lted2vkp4hfnk0wpw==","translations":{"en":{"changelog":""}},"signatureDigest":"sha512"},{"version":"1.3.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.3.2/phonetrack-1.3.2.tar.gz","created":"2026-07-30T12:27:50.726205Z","licenses":["agpl"],"lastModified":"2026-07-30T12:27:51.177491Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"aOPM3NqBVEfifkBrf0CEuCe7IruKum0tyHP+EW5yyLyspdqI2c/KEJnjYBWWxQATQamqFd8yyv8oY1vMSjeQuPwTW8O/EzmXGwv4NdmwoIoRQTI0tTyZG3jBSy7OXgfIRLG6skNcpqgL2+vVQLAjkBcxC+1zlgvp2QQLMk/loAqSXD+4EhkwnJ734yMXSD716jrldV16KxTiMmvJecqjqCeDTb/EPasrr1OhohlSps74runypzGlUEv2oT6x4aDdblklMFohpjTw9ZryLTtDxesOs0EVmORxDX7mxSEZUkyTjWi57vSSTf793Zv03CJXU0v6WEhpHXn4GHsYI1vH7g==","translations":{"en":{"changelog":"### Changed\n\n- Update npm packages and migrate to TypeScript 6 @julien-nc\n- Update jQuery and replace the removed `$.parseJSON()` with `JSON.parse()` in the legacy UI @julien-nc\n- Update leaflet.locatecontrol @julien-nc\n\n### Fixed\n\n- Fix GPX session import: wrap the import in a transaction so the rollback cleans up the created session and prevents dirty table reads, fix the deprecated empty `orX` call, and allow missing user agents in imported GPX files @julien-nc [#163](https://github.com/julien-nc/phonetrack/pull/163)"}},"signatureDigest":"sha512"},{"version":"1.3.1","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=30.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/phonetrack/releases/download/v1.3.1/phonetrack-1.3.1.tar.gz","created":"2026-07-25T15:29:07.610752Z","licenses":["agpl"],"lastModified":"2026-07-25T15:29:08.095102Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=30 <=35","signature":"iJ0zUIIARyi2JXloDIVMTsRmzHgxQRAJWbQHHqmb88CQGwgY9MBsx7Nz9GIjY5yI1/cTRcLolv/vVbpi8PFiIGJHQavrgKA7/9dWZrhzohZ5ESViAMasETwMd3SllE7ih5xHY25G4ER4PjO/PA7QsD5s9ayVlwgT4Ham2O6Dd15ugvC0HC5kdTqExO1JlMa1O2c2WZyVcH7267UoNEBQbHpJuzlHuMQtMDDmggjFn2cwzktiKHKPcJHKATJSeOFPYbAFJ023txF9uBWOnVMa3H6FwUwqG1GC6D/sQ4itD1oMP8igHd4Nm2Enm322VxAePBWtaFejot6kdDoK7tcA1g==","translations":{"en":{"changelog":"### Changed\n\n- Migrate to maplibre-gl 6 @julien-nc\n- Migrate to REUSE for licensing compliance @julien-nc\n- Upgrade ESLint, fix the related errors and warnings, fix type checks, and install `@types/node` as a dev dependency @julien-nc\n- Drop PHP 5.2 from psalm tests and bump PHP to 8.3 in the php-cs CI action @julien-nc\n- Update npm and composer packages @julien-nc\n- Polish the device and session export, uninstall unused packages, and remove the deprecated `FilePickerType` from `@nextcloud/dialogs` @julien-nc\n\n### Fixed\n\n- Fix toast messages in the old interface @julien-nc\n- Hide the activity settings when PhoneTrack is disabled for the current user (limit app to groups) @julien-nc\n- Fix a small style issue in the device/session details sidebar @julien-nc\n- Fix the warning about a missing `vue_index_url` in the Nextcloud logs by falling back to an empty string @andreassommer [#157](https://github.com/julien-nc/phonetrack/pull/157)\n- Fix the inconsistent and potentially confusing button title display in `TileServerControl`, and add an `aria-label` for better screen reader support @tomaioo [#154](https://github.com/julien-nc/phonetrack/pull/154)"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waG9uZXRyYWNrL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90MS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waG9uZXRyYWNrL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90Mi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9waG9uZXRyYWNrL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90My5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"ar":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fa":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# تطبيق PhoneTrack Nextcloud\n\n📱 PhoneTrack هو تطبيق لتخزين معلومات على الهواء و لتحديد اماكن الهواتف.\n\nيستلم المعلومات من برنامج نظام الهاتف و يحددها على الخارطه بوضوح.\n\n🌍 به ما ترجمه این برنامه را روی [PhoneTrack Crowdin پروژه](https://crowdin.com/project/phonetrack) کمک کند.\n\n⚒ بررسی کنید راه های دیگر برای کمک در [مشاهده تمام سهم](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nطريقة استعمال PhoneTrack:\n\n- اوجد جلسة للتحقيق.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- شاهد الان الجلسه المحلية (او لا) فى PhoneTrack و شاركه مع الصفحات العامه.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 نمایش تاریخچه مکان\n- ⛛ فیلتر امتیازها\n- ✎ ویرایش دستی /افزودن/حذف نقاط\n- ✎ ویرایش دستگاه‌ها (تغییر نام، تغییر رنگ/شکل، انتقال به جلسه دیگر)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## نصب\n\nبرای مضاهده جزئیات بیشتر [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) را مشاهده کنید.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## مشکلات شناخته شده\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"id":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Aplikasi PhoneTrack di Nextcloud\n\nPhoneTrack adalah aplikasi di nextcloud yang digunakan untuk melacak serta menyimpan posisi lokasi dari perangkat mobile.\n\nPhoneTrack menerima informasi log dari perangkat mobile dan menampilkan-nya secara dinamis di peta.\n\n🌍 Bantu kami untuk alih bahasa di [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Silahkan kunjungi alternatif lain untuk membantu kami di [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nBagaimana cara menggunakan PhoneTrack :\n\n- Buatlah sesi pelacakan.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- PhoneTrack dapat memantau lokasi sesi perangkat baik secara langsung maupun tidak, atau bahkan dapat di bagikan kepada pihak lain.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nPada halaman utama PhoneTrack, saat memantau sebuah sesi, anda dapat melakukan beberapa hal, antara lain :\n\n- 📍 Menampilkan lokasi lampau\n- ⛛ Titik penyaring\n- ✎ Rubah/tambah/hapus titik secara manual\n- ✎ Rubah perangkat (ganti nama, merubah bentuk/warna, pindahkan ke sesi lain)\n- ⛶ Membuat area \"geofencing\" untuk perangkat\n- ⚇ Membuat peringatan atas sebuah perangkat jika saling berdekatan\n- 🖧 Berbagi sesi ke pengguna Nextcloud lainnya atau ke pihak lain (hanya lihat)\n- 🔗 Membuat alamat untuk di bagi secara umum dengan beberapa batasan (saring, nama perangkat, posisi terakhir dan \"geofencing\" sederhana)\n- 🖫 Impor/ekspor sebuah sesi dalam format GPX (satu berkas dengan satu pelacakan untuk setiap perangkat atau satu berkas untuk satu perangkat)\n- 🗠 Menampilkan statistik sesi\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Perpindahan sesi ekspor otomatis dan penghapusan otomatis (harian/mingguan/bulanan)\n- ◔ Memilih untuk menentukan ketika jumlah kuota titik telah habis (hapus titik sebelumnya atau membatasi log)\n\nHalaman untuk umum dan yang ter-saring bekerja seperti halaman utama hanya saja tersedia untuk satu sesi, semuanya tidak perlu akses khusus.\n\nFitur ini dalam pengembangan.\n\n## Memasang\n\nSilahkan mengunjungi [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) untuk lebih detail tentang pemasangan.\n\nSilahkan periksa berkas [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) untuk melihat daftar perubahan dan rencana pengembangan.\n\nSilahkan periksa berkas [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) untuk melihat daftar para pengarang.\n\n## Kendala yang Diketahui\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nSaran dari anda dapat membantu kami lebih baik.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt":{"name":"PhoneTrack","summary":"Monitoriza e apresenta a localização de telemóveis em tempo real","description":"# Aplicação PhoneTrack Nextcloud\n\n📱 PhoneTrack é uma aplicação Nextcloud para rastreamento e armazenamento de localizações de dispositivos móveis.\n\n🗺 Recebe informações de aplicações de registo de telemóveis e apresenta-as dinamicamente num mapa.\n\n🌍 Ajude-nos a traduzir esta aplicação no [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\nVeja outras formas de ajudar no [guia para contribuições](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nComo usar o PhoneTrack :\n\n- Criar uma sessão de rastreamento.\n- Forneca o link\\* de registo ao dispositivo móvel. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Observe a sessão de localização do dispositivo em tempo real (ou não) no PhoneTrack ou partilhe através das páginas públicas.\n\n(\\*) Não se esqueça de definir o nome do dispositivo no link (ao invés de nas definições da aplicação de registo). Substitua \"o seu nome\" pelo nome de dispositivo desejado.\nDefinir o nome de dispositivo nas definições da aplicação de registo apenas funcionam com o Owntracks, Traccar e OpenGTS.\n\nNa página principal do PhoneTrack, durante uma sessão, é possível:\n\n- 📍 Visualizar histórico de localizações\n- ⛛ Filtrar pontos\n- ✎ Adicionar/editar/remover pontos\n- ✎ Editar dispositivos (renomear, mudar cor/formato, mover para outra sessão)\n- ⛶ Definir delimitações geográficas para dispositivos\n- ⚇ Definir alertas de proximidade para dispositivos emparelhados\n- 🖧 Partilhar uma sessão com outros utilizadores Nextcloud ou através de um link público (apenas leitura)\n- 🔗 Gerar links de partilha públicos com restrições opcionais (filtros, nome do dispositivo, apenas última localização, simplificação de delimitação geográfica)\n- 🖫 Importar/exportar uma sessão no formato GPX (um ficheiro com um rastreamento por dispositivo ou um ficheiro por dispositivo)\n- 🗠 Visualizar estatísticas da sessão\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Alterar exportação e limpeza automática de sessão (diária/semanal/mensal)\n- ◔ Escolher o que fazer quando o limite da quota do número de pontos é atingida (bloquear registo ou eliminar os pontos mais antigos)\n\nA página pública e a página pública filtrada funcionam como a página principal mas apresentam apenas uma sessão, é tudo apenas de leitura e não é necessário iniciar sessão.\n\nEsta aplicação encontra-se em desenvolvimento.\n\n## Instalação\n\nConsulte [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) para detalhes sobre a instalação.\n\nConsulte o ficheiro [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) para verificar as novidades e futuras funcionalidades.\n\nConsulte o ficheiro [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) para ver a lista completa de autores.\n\n## Problemas conhecidos\n\n- O PhoneTrack **já funciona** com as restrições de grupo do Nextcloud ativas. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nQualquer comentário será apreciado.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sk":{"name":"PhoneTrack","summary":"Sledujte a zobrazujte polohu telefónov v reálnom čase","description":"# Aplikácia Nextcloud PhoneTrack\n\n📱 PhoneTrack je Nextcloud aplikácia na sledovanie a ukladanie polohy mobilných zariadení.\n\n🗺 Prijíma informácie z mobilných aplikácií na sledovanie a dynamicky ich zobrazuje na mape.\n\n🌍 Pomôžte nám preložiť túto aplikáciu na [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Pozrite si ďalšie spôsoby, ako pomôcť v [pokynoch pre prispievateľov].(https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nAko používať PhoneTrack :\n\n- Vytvorte sledovaciu reláciu.\n- Zadajte sledovací odkaz\\* do mobilných zariadení. Vyberte [spôsob zaznamenávania](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods).\n- Sledujte polohu zariadení v reálnom čase (alebo nie) v aplikácii PhoneTrack alebo ju zdieľajte na verejných stránkach.\n\n(\\*) Nezabudnite nastaviť názov zariadenia v odkaze (radšej ako v nastaveniach logovacej aplikácie). Nahraďte \"vasnazov\" zvoleným názvom zariadenia.\nNastavenie názvu zariadenia v nastaveniach logovacej aplikácie funguje len s Owntracks, Traccar a OpenGTS.\n\nNa hlavnej stránke PhoneTrack môžete počas sledovania záznamu:\n\n- 📍 Zobraziť históriu polohy\n- ⛛ Filtrovať body\n- ✎ Manuálne upravovať/pridávať/mazať body\n- ✎ Upravovať zariadenia (premenovať, zmeniť farbu/tvar, presúvať do iného sedenia)\n- ⛶ Definovať geofence zóny pre zariadenia\n- ⚇ Zadávať výstrahy vzdialenia pre páry zariadení\n- 🖧 Zdieľať sedenie s ďalšími Nextcloud používateľmi alebo pomocou verejných odkazov (len na čítanie)\n- 🔗 Generovať odkazy verejného zdieľania s voliteľnými obmedzeniami (filtre, názov zariadenia, len posledná pozícia, zjednodušený geofence)\n- 🖫 Importovať/exportovať záznamy v GPX formáte (jeden súbor s jedným záznamom alebo jeden súbor s jedným zariadením)\n- 🗠 Zobraziť štatistiky záznamu\n- 🔒 [Rezervujte si názov zariadenia](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation), aby sa uistili, že sa s týmto názvom môže prihlásiť len autorizovaný používateľ\n- 🗓 Zapínať automatické exportovanie záznamu a automatické mazanie (denne/týždenne/mesačne)\n- ◔ Vyberať, čo sa stane, keď je dosiahnutý limit počtu bodov (zablokovať záznam alebo vymazať najstarší bod)\n\nVerejná stránka a verejná filtrovaná stránka funguje ako hlavná stránka okrem situácie, keď je zobrazený len jeden záznam, všetko je len na čítanie a nie je potrebné prihlasovať sa.\n\nTáto aplikácia je ešte vo vývoji.\n\n## Inštalácia\n\nPozrite si [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) pre detaily inštalácie.\n\nPozrite si súbor [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) čo je nové a čo sa chystá do ďalšej verzie.\n\nPozrite si súbor [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) a zobrazte si kompletný zoznam autorov.\n\n## Známe problémy\n\n- PhoneTrack **teraz funguje** so zapnutými obmedzeniami pre Nextcloud skupiny. Viac informácií nájdete v [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nOcením akúkoľvek spätnú väzbu.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"uk":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack додаток для Nextcloud\n\n📱 PhoneTrack це додаток Nextcloud для відстеження і зберігання геолокації мобільних пристроїв.\n\n🗺 отримує інформацію від додатків для мобільних телефонів і динамічно відображає її на карті.\n\n🌍 Допоможіть нам перекласти цей додаток на [PhoneTrack Crowdin](https://crowdin.com/project/phonetrack).\n\n⚒ Перегляньте інші способи допомогти в [інструкціях з контрибуції](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nЯк використовувати PhoneTrack:\n\n- Створіть сесію трекінгу.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Переглядайте місце розташування пристроїв у реальному часі (або ні) у PhoneTrack або діліться нею на загальнодоступних сторінках.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nНа головній сторінці PhoneTrack під час перегляду сесії ви можете:\n\n- 📍 Переглядати історію місцезнаходжень\n- ⛛ Фільтрувати точки\n- ✎ Вручну редагувати/додавати/видаляти точки\n- ✎ Редагувати пристрої (перейменувати, змінити колір/форму, перемістити в іншу сесію)\n- ⛶ Визначити зони віртуального паркану (geofencing) для пристроїв\n- ⚇ Визначати сповіщення про наближення для пар пристроїв\n- 🖧 Надати доступ до сесії для інших користувачів Nextcloud або для публічного перегляду (лише для читання)\n- 🔗 Створювати посилання для публічного перегляду з обмеженнями (фільтри, назва пристрою, лише останні позиції, спрощені геопаркани)\n- 🖫 Імпортувати/експортувати сесії у форматі GPX (потреково для пристрою чи одним файлам)\n- 🗠 Переглядати статистику сесії\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Налаштувати автоматичний експорт та автоочищення (щодня/щотижнево/щомісячно)\n- ◔ Обирати, що робити при досягненні квоти точок (блокувати подальше збирання чи видаляти найстаріші точки)\n\nПублічна сторінка та публічна сторінка з фільтрами працюють як головна сторінка, за винятком того, що відображається лише одна сесія, все доступне лише для читання, і немає необхідності авторизуватися.\n\nЦей додаток в стадії розробки.\n\n## Встановлення\n\nДивіться [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) з детальною інформацією про встановлення.\n\nПеревірте [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log), щоб побачити, що нового і що буде в наступному релізі.\n\nПеревірте [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) щоб побачити повний список авторів.\n\n## Відомі проблеми\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nБудемо вдячні за будь-який відгук.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"en":{"name":"PhoneTrack","summary":"Track and display phone's positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile device's locations.\n\n🗺 It receives information from mobile phone's logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change colour/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fr":{"name":"PhoneTrack","summary":"Suivre et afficher des positions de téléphones en temps réel","description":"# Application Nextcloud PhoneTrack\n\n📱 PhoneTrack est une application Nextcloud pour suivre et stocker la position d'appareils mobiles.\n\n🗺 Elle reçoit des informations provenant d'applications de logging des téléphones mobiles et les affiche en direct sur une carte.\n\n🌍 Aidez-nous à traduire cette application sur [le projet Crowdin de PhoneTrack Nextcloud](https://crowdin.com/project/phonetrack).\n\n⚒ Découvrez d'autres façons d'aider dans les [indications de contribution](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nComment utiliser PhoneTrack :\n\n- Créez une session de tracking.\n- Donnez le lien de logging\\* aux appareils mobiles. Choisissez la [méthode de logging](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) que vous préférez.\n- Regardez l'emplacement des appareils de la session en temps réel (ou non) dans PhoneTrack ou partagez-le avec des liens publics.\n\n(\\*) N'oubliez pas de définir le nom de l'appareil dans le lien (plutôt que dans les paramètres de l'application de logging). Remplacez 'yourname' par le nom d'appareil désiré.\nDéfinir le nom de l'appareil dans les paramètres de l'application de journalisation ne fonctionne qu'avec Owntracks, Traccar et OpenGTS.\n\nSur la page principale de PhoneTrack, quand vous regardez une session, vous pouvez :\n\n- 📍 Afficher l'historique de position\n- ⛛ Filtrer les points\n- ✎ Modifier/ajouter/supprimer manuellement les points\n- ✎ Éditer les appareils (renommer, changer la couleur/forme, déplacer vers une autre session)\n- ⛶ Définir des zones de geofencing pour les appareils\n- ⚇ Définir des alertes de proximité pour des paires d'appareils\n- 🖧 Partager une session à d'autres utilisateurs Nextcloud ou avec un lien public (lecture seule)\n- 🔗 Générer des liens de partage public avec des restrictions optionnelles (filtres, nom d'appareil, dernières positions seulement, simplification de geofence)\n- 🖫 Importer/exporter une session au format GPX (un fichier avec une piste par périphérique ou un fichier par périphérique)\n- 🗠 Afficher les statistiques des sessions\n- 🔒 [Réserver un nom de périphérique](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) pour s'assurer que seul l'utilisateur autorisé peut loguer avec ce nom\n- 🗓 Activer l'export automatique de session et la purge automatique (quotidien/hebdomadaire/mensuel)\n- ◔ Choisir ce qui se passe lorsque le quota de nombre de point est atteint (bloquer le logging ou supprimer le point le plus ancien)\n\nLes pages publiques et les pages publiques filtrées fonctionnent comme la page principale, sauf qu'il n'y a qu'une session affichée, tout est en lecture seule et il n'y a pas besoin d'être connecté.\n\nCette appli est en développement.\n\n## Installation\n\nVoir l' [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) pour les détails de l'installation.\n\nFaites un tour vers le fichier [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) pour voir ce qui est nouveau et ce qui arrive dans la prochaine version.\n\nLisez le fichier [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) pour voir la liste complète des auteurs.\n\n## Problèmes connus\n\n- PhoneTrack **fonctionne maintenant** avec une restriction de groupe Nextcloud activée. Voir [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nTout retour sera apprécié.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"it":{"name":"PhoneTrack","summary":"Traccia e visualizza le posizioni dei telefoni in tempo reale","description":"# Applicazione PhoneTrack per Nextcloud\n\n📱 PhoneTrack è un'applicazione per Nextcloud per monitorare e memorizzare le posizioni dei dispositivi mobili.\n\n🗺 riceve informazioni dalle app di registrazione dei telefoni cellulari e la visualizza dinamicamente su una mappa.\n\n〓 Aiutaci a tradurre questa app su [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Scopri altri modi per aiutare nelle linee guida [contributivo](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nCome utilizzare PhoneTrack:\n\n- Crea una sessione di tracciamento.\n- Fornire il collegamento di registrazione\\* ai dispositivi mobili. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Guarda la posizione dei dispositivi della sessione in tempo reale (o no) a PhoneTrack o condividilo con pagine pubbliche.\n\n(\\*) Non dimenticare di impostare il nome del dispositivo nel link (piuttosto che nelle impostazioni di registrazione dell'app). Sostituisci \"yourname\" con il nome del dispositivo desiderato.\nL'impostazione del nome del dispositivo nelle impostazioni di registrazione delle app funziona solo con le tracce proprie, Traccar e OpenGTS.\n\nNella pagina principale di PhoneTrack, mentre segui una sessione, è possibile:\n\n- 📍 Visualizza la cronologia della posizione\n- ⛛ Filtra punti\n- ✎ Modifica/aggiungi/elimina punti manualmente\n- ✎ Modifica dispositivi (rinomina, cambia colore/forma, sposta in un'altra sessione)\n- ⛶ Definisci zone di Geo-perimetro per i dispositivi\\\\\n- ⚇ Definisci gli avvisi di prossimità per gli accoppiamenti del dispositivo\n- 🖧 Condividi una sessione ad altri utenti Nextcloud o con un link pubblico (sola lettura)\n- 🔗 Genera collegamenti di condivisione pubblica con restrizioni opzionali (filtri, nome del dispositivo, solo posizioni finali, semplificazione Geo-perimetro)\n- 🖫 Importa/esporta una sessione in formato GPX (un file con una traccia per dispositivo o un file per dispositivo)\n- 🗠 Visualizza le statistiche delle sessioni\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle esportazione automatica della sessione e cancellazione automatica (giornaliera/settimanale/mensile)\n- 𗩌 Scegli cosa fare quando si raggiunge la quota del numero di punti (blocca la registrazione o elimina il punto più vecchio)\n\nPagina pubblica e pagina filtrata pubblica come pagina principale, ad eccezione di una sola sessione visualizzata, tutto è in sola lettura e non c'è bisogno di accedere.\n\nQuesta app è in fase di sviluppo.\n\n## Installa\n\nVedi [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) per i dettagli di installazione.\n\nControlla [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) il file per vedere cosa è nuovo e cosa sta arrivando con la prossima versione.\n\nSeleziona il file [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) per vedere l'elenco completo degli autori.\n\n## Problemi noti\n\n- PhoneTrack **ora funziona** con la restrizione del gruppo Nextcloud attivata. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nQualsiasi feedback sarà apprezzato.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"mn":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ne":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nl":{"name":"PhoneTrack","summary":"Track en weergave van telefoonposities in real time","description":"# PhoneTrack Nextcloud applicatie\n\n📱 PhoneTrack is een Nextcloud applicatie voor het bijhouden en opslaan van locaties van mobiele apparaten.\n\n🗺 Het ontvangt informatie van logging apps van mobiele telefoons en geeft deze dynamisch weer op een kaart.\n\n🌍 Help ons deze app te vertalen op [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Bekijk andere manieren om te helpen in de [bijdragerichtlijnen](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHoe gebruik je PhoneTrack:\n\n- Maak een tracking sessie.\n- Geef de logging link\\* aan de mobiele apparaten. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Bekijk de locatie van sessieapparaten in realtime (of niet) in PhoneTrack of deel deze met publieke links.\n\n(\\*) Vergeet niet om de apparaatnaam in de link te zetten (in plaats van in de logging app-instellingen). Vervang 'yourname' met jouw gewenste apparaatnaam.\nHet instellen van de apparaatnaam in de logging app-instellingen werkt alleen met Owntracks, Traccar en OpenGTS.\n\nOp de PhoneTrack hoofdpagina, kun je terwijl je een sessie bekijkt:\n\n- 📍 Locatiegeschiedenis weergeven\n- ⛛ Punten filteren\n- ✎ Handmatig bewerken/toevoegen/verwijderen van punten\n- ✎ Apparaten bewerken (hernoemen, kleur/vorm wijzigen, naar een andere sessie verplaatsen)\n- ⛶ Geofencing zones definiëren voor apparaten\n- ⚇ Nabijheidswaarschuwingen voor apparaatparen definiëren\n- 🖧 Een sessie delen met andere Nextcloud gebruikers of met een publieke link (alleen-lezen)\n- 🔗 Openbare share links genereren met optionele beperkingen (filters, apparaatnaam, enkel laatste posities, geofencing vereenvoudiging)\n- 🖫 Een sessie importeren/exporteren in GPX-formaat (één bestand met één track per apparaat of één bestand per apparaat)\n- 🗠 Sessiestatistieken weergeven\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Activeren van automatische sessie export en automatisch opruimen (dagelijks/wekelijks/maandelijks)\n- ◔ Kies wat er moet gebeuren als het puntentotaal is bereikt (blokkering van de logging of verwijdering van het oudste punt)\n\nOpenbare pagina's en openbare gefilterde pagina's werken zoals de hoofdpagina, behalve dat er slechts één sessie wordt weergegeven, alles wordt alleen-lezen en er hoeft niet ingelogd te worden.\n\nDeze app is in ontwikkeling.\n\n## Installatie\n\nZie de [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) voor de installatiedetails.\n\nControleer [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) bestand om te zien wat er nieuw is en wat er in de volgende release komt.\n\nControleer het bestand [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) om de volledige lijst van auteurs te zien.\n\n## Bekende problemen\n\n- PhoneTrack **werkt nu** met Nextcloud groepsbeperking geactiveerd. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nElke feedback wordt gewaardeerd.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"af":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"bn":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help ons deze app te vertalen op [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"de":{"name":"PhoneTrack","summary":"Gerätestandorte in Echtzeit verfolgen und anzeigen","description":"# PhoneTrack Nextcloud App\n\n📱 PhoneTrack ist eine Nextcloud-Anwendung zur Verfolgung und Speicherung von Standorten mobiler Geräte.\n\n🗺 Sie erfasst Informationen von Protokollierungs-Apps auf Mobiltelefonen und zeigt diese dynamisch auf einer Karte an.\n\n🌍 Helfen Sie uns, diese App auf [PhoneTrack Crowdin Projekt](https://crowdin.com/project/phonetrack) zu übersetzen.\n\n⚒ Schauen Sie sich weitere Möglichkeiten in den [Mitwirkungsrichtlinien](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md) an, wie Sie mitwirken können.\n\nWie PhoneTrack verwendet wird:\n\n- Tracking-Sitzung erstellen\n- Geben Sie den Protokollierungslink\\* an mobile Geräte weiter. Wählen Sie die von Ihnen bevorzugte [Protokollierungsmethode](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods).\n- Beobachten Sie den Gerätestandort der Sitzung in Echtzeit (oder später) in PhoneTrack oder teilen Sie ihn auf öffentlichen Webseiten.\n\n(\\*) Vergessen Sie nicht, den Gerätenamen im Link (und nicht in den Einstellungen der Protokollierungsanwendung) einzustellen. Ersetzen Sie „MeinName” mit dem gewünschten Gerätenamen.\nDas Einstellen des Gerätenamens in den Einstellungen der Protokollieruns-App funktioniert nur mit Owntracks, Traccar und OpenGTS.\n\nAuf der Hauptseite von PhoneTrack können Sie während einer Sitzung:\n\n- 📍 Standortverlauf anzeigen\n- ⛛ Datenpunkte filtern\n- ✎ Datenpunkte manuell bearbeiten/hinzufügen/löschen\n- ✎ Geräte bearbeiten (umbenennen, Farbe und Form ändern, in andere Sitzung verschieben)\n- ⛶ Geofence-Zonen für Geräte festlegen\n- ⚇ Annäherungsbenachrichtigung für Gerätepaare festlegen\n- 🖧 Teilen Sie eine Sitzung mit anderen Nextcloud-Benutzern oder mit einem öffentlichen Link (nur lesend)\n- 🔗 Öffentliche Links mit optionalen Einschränkungen (Filter, Gerätename, letzte Positionen, Geofence-Vereinfachung) teilen\n- 🖫 Sitzung im GPX-Format importieren/exportieren (eine Datei mit einer Aufzeichnung pro Gerät oder eine Datei pro Gerät)\n- 🗠 Sitzungsstatistiken anzeigen\n- 🔒 [Reservieren Sie einen Gerätenamen](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation), um sicherzustellen, dass sich nur autorisierte Benutzer mit diesem Namen anmelden können\n- 🗓 Umschalten zwischen „Automatisch exportieren” und „Automatisch bereinigen” der Sitzung (täglich/wöchentlich/monatlich)\n- ◔ Jeder Benutzer kann wählen, was passieren soll, wenn die Menge der erlaubten Datenpunkte erreicht ist (Protokollierung unterbrechen oder ältesten Datenpunkt löschen)\n\nÖffentliche Seite und öffentlich gefilterte Seite funktionieren wie die Hauptseite, außer dass nur eine Sitzung angezeigt wird, alles schreibgeschützt ist und keine Anmeldung erforderlich ist.\n\nDie App wird aktiv weiterentwickelt.\n\n## Installieren\n\nSiehe [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) für Installationsdetails.\n\nÜberprüfen Sie das [Änderungsprotokoll](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log), um zu erfahren, was neu ist und was in der nächsten Version kommt.\n\n[Autoren](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors)-Datei auswählen, um eine Liste aller Autoren anzuzeigen.\n\n## Bekannte Probleme\n\n- PhoneTrack **funktioniert nun** mit der aktivierten Nextcloud-Gruppenbeschränkung. Siehe [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nJegliches Feedback ist willkommen.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"he":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\nPhoneTrack הינה אפליקציה העוקבת ושומרת אחרי נתוני המיקום שלך, בצורה חלקה ואמינה.\n\nהאפליקציה מקבלת נתונים באמצעות תוכנת טרקר המותקנת במכשירך, ומציגה נתונים אלו בצורה דינמית תחת חשבונך בסביבת ה-NextCloud שלך.\n\nנשמח לקבל עזרה בשיפור האפליקציה.\n\nמספר דרכים שתוכל לעזור לנו בקישורך [בעזרה לפיתוח וקידום האפליקציה](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nאיך PhoneTrack עובד:\n\n- תחילה, צור טוקן מעקב באמצעות הפאנל שבאפליקציה.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- לאחר התקנת האפליקציה, תוכל לראות על המפה את המקום הנוכחי של המכשיר, תלוי באופן ובקצב העידכון שהזנת.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nבמסך הראשי של האפליקציה תוכל:\n\n- לראות היסטורית מיקומים\n- לסנן מיקומים ע״פ פרמטרים מוגדרים\n- להוסיף מיקומים ידנית\n- לשנות ולערוך סשנים\n- תוכל להגדיר אזורי מיקום למכשירך\n- הגדר איזורי קרבה למכשירים\n- לשתף מיקום עם משתמשים נוספים מחוץ או בפנים לסביבת NextCloud\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- ליצא וליבא נתונים בפורמט GPX\n- להנות מסטיסטיקה אודות שימוש בנתוני מיקום\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"hi":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"hu":{"name":"PhoneTrack","summary":"Követi és megjeleníti a telefonok helyzetét valós időben","description":"# PhoneTrack Nextcloud alkalmazás\n\nA PhoneTrack egy Nextcloud alkalmazás a mobil eszközök helyzetének követésére és tárolására.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Segíts nekünk lefordítani ezt az alkalmazást a [PhoneTrack Crowdin projektben](https://crowdin.com/project/phonetrack).\n\n⚒ Nézd meg a [hozzájárulási irányelvekben](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md) a segítségnyújtás egyéb módjait.\n\nA PhoneTrack használata:\n\n- Hozz létre egy nyomkövetési munkamenetet.\n- Add át a naplózási linket\\* a mobil eszközöknek. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Figyeld a munkamenet eszközeinek helyzetét valós időben (vagy késleltetve) a PhoneTrack-ben, vagy oszd meg nyilvános oldalakkal.\n\n(\\*) Ne felejtsd el az eszköz nevét a linkben beállítani (nem pedig a naplózó alkalmazás beállításaiban). Írd be a „yourname” helyett a kívánt eszköz nevét.\nAz eszköznév beállítása a naplózó alkalmazás beállításaiban csak az Owntracks, Traccar és OpenGTS esetén működik.\n\nA PhoneTrack főoldalán munkamenet figyelése közben a következöket teheted:\n\n- 📍Helyelőzmények megjelenítése\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Nyilvános megosztási linkek létrehozása opcionális korlátozásokkal (szűrők, eszköznév, csak utolsó pozíciók, geokerítés egyszerűsítése)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Munkamenet automatikus exportálása és automatikus törlése (napi/heti/havi)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nA nyilvános oldal és a nyilvános szűrt oldal a főoldalhoz hasonlóan működik, de csak egy munkamenetet mutat, minden csak olvasható, és bejelentkezés nem szükséges.\n\nEz az alkalmazás fejlesztés alatt áll.\n\n## Telepítés\n\nA telepítés részleteit lásd az [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) dokumentumban.\n\nA változásokról és a következő kiadás újdonságairól a [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) fájlban tájékozódhatsz.\n\nA szerzők teljes listáját az [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) fájlban találod.\n\n## Ismert problémák\n\n- A PhoneTrack már akkor is működik, ha a Nextcloud csoportkorlátozás be van kapcsolva. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nMinden visszajelzést nagyra értékelünk.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ja":{"name":"PhoneTrack","summary":"携帯電話の位置をリアルタイムで追跡して表示します","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"bg":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Приложение PhoneTrack в Nextcloud\n\n📱 PhoneTrack е приложение Nextcloud за проследяване и съхраняване на местоположения на мобилни устройства.\n\n🗺 Той получава информация от приложения за регистриране на мобилни телефони и я показва динамично на карта.\n\n🌍 Помогнете ни да преведем това приложение на [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Вижте други начини за помощ в [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nКак да използваме PhoneTrack:\n\n- Създайте проследяваща сесия.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Гледайте местоположението на устройствата на сесията в реално време (или не) в PhoneTrack или го споделяйте с обществени страници.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nНа основната страница на PhoneTrack, докато гледате сесия, можете:\n\n- 📍 Показване на историята на местоположенията\n- ⛛ Филтриране на точки\n- ✎ Ръчно редактиране / добавяне / изтриване на точки\n- ✎ Редактиране на устройства (преименуване, промяна на цвят/форма, преместване в друга сесия)\n- ⛶ Определете зоните за ограждане за устройства\n- ⚇ Определете сигналите за близост за двойки устройства\n- 🖧 Споделете сесия с други потребители на Nextcloud или с публична връзка (само за четене)\n- 🔗 Генериране на връзки за обществен дял с незадължителни ограничения (филтри, име на устройството, само последни позиции, опростяване на географски ограничения)\n- 🖫 Импортиране / експортиране на сесии във GPX формат (един файл на лог на устройство или един файл на устройство)\n- 🗠 Показване на статистически данни за сесиите\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Превключване на автоматично експортиране на сесия и автоматично почистване (ежедневно/седмично/месечно)\n- ◔ Изберете какво да правите, когато се достигне квота за номер на точка (блокиране на регистрация или изтриване на най-старата точка)\n\nПубличната страница и публично филтрираната страница работят като главната страница, с изключение на това, че се показва само една сесия, всичко е само за четене и няма нужда да влизате в системата.\n\nТова приложение е в процес на разработка.\n\n## Инсталирай\n\nВижте [ AdminDoc ](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) за подробности за инсталирането.\n\nПроверете [ CHANGELOG ](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) файла, за да видите какво има ново и какво предстои в следващото издание.\n\nПроверете [ AUTHORS ](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) файла, за да видите пълния списък с автори.\n\n## Известни проблеми\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nВсяка обратна връзка ще бъде оценена.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ca":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Aplicació PhoneTrack per Nextcloud\n\n📱 PhoneTrack és una aplicació Nextcloud per rastrejar i emmagatzemar la posició dels dispositius mòbils.\n\n🗺 Rep informació de les aplicacions de registre de telefonia mòbil i la mostra en directe en un mapa.\n\n🌍 Ajuda'ns a traduir aquesta aplicació a [el projecte Crowdin de PhoneTrack](https://crowdin.com/project/phonetrack).\n\n⚒ Trobeu altres maneres d’ajudar en les [indicacions de contribució](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nCom fer servir PhoneTrack :\n\n- Crear una sessió de seguiment.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Consulteu la ubicació dels dispositius de sessió en temps real (o no) a PhoneTrack o compartiu-la amb enllaços públics.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nA la pàgina principal de PhoneTrack, en veure una sessió, podeu:\n\n- 📍 Consultar l'historial d'ubicacions\n- ⛛ Filtrar punts\n- Manualment editar/afegir/esborrar punts\n- ✎ Edita els dispositius (canvia el nom, canvia el color / la forma, passa a una altra sessió)\n- Definir zones de geolocalització per dispositius\n- ⚇ Estableix alertes de proximitat per parells de dispositius\n- 🖧 Compartiu una sessió amb altres usuaris Nextcloud o amb un enllaç públic (només de lectura)\n- 🔗 Generar enllaços públic per compartir amb restriccions opcionals (filtres, nom del dispositiu, només darreres posicions, simplificació de geolocalització)\n- 🖫 Importeu / exporteu una sessió en format GPX (un fitxer amb una pista per dispositiu o un fitxer per dispositiu)\n- 🗠 Veure estadístiques de sessió\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Activa l'exportació automàtica de sessions i la purga automàtica (diària / setmanal / mensual)\n- ◔ Trieu què passa quan s’arriba a la quota de número de punts (bloquejar el registre o eliminar el punt més antic)\n\nLes pàgines públiques i les pàgines públiques filtrades funcionen com la pàgina principal, excepte que només es mostra una sessió, tot és de només lectura i no cal connectar-se.\n\nAquesta aplicació està en desenvolupament.\n\n## Instalació\n\nConsulteu [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) per obtenir més informació.\n\nMireu el fitxer [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) per veure què hi ha de nou i què passa a la següent versió.\n\nConsulteu el fitxer [AUTORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) per veure la llista completa d’autors.\n\n## Problemes comuns\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nQualsevol feedback serà apreciat.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"cs":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Nextcloud aplikace PhoneTrack\n\n📱 PhoneTrack je aplikace pro Nextcloud, určená pro sledování a uchovávání pozic mobilních zařízení.\n\n🗺 Informace získává ze záznamových aplikací pro mobilní telefony a průběžně je zobrazuje na mapě.\n\n🌍 Pomozte nám s překládáním textů v rozhraní této aplikace v rámci [projektu PhoneTrack na službě Crowdin](https://crowdin.com/project/phonetrack).\n\n⚒ Podívejte se na další způsoby, jak pomoci v [pokynech pro přispěvatele](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nJak PhoneTrack používat:\n\n- Vytvořte relaci sledování.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Sledujte pozice zařízení v rámci dané relace v reálném čase (nebo ne) v PhoneTrack nebo ji sdílejte prostřednictvím veřejných stránek.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nNa hlavní stránce PhoneTrack můžete během sledování relace:\n\n- 📍 Zobrazit historii polohy\n- ⛛ Filtrovat body\n- ✎ Ručně upravovat/přidávat/mazat body\n- ✎ Upravovat zařízení (přejmenovávat, měnit barvu/tvar, přesouvat do jiné relace)\n- ⛶ Definovat oblasti vymezených oblastí pro zařízení\n- ⚇ Definovat výstrahy při přiblížení se pro dvojice zařízení\n- 🖧 Nasdílet relaci ostatním uživatelům Nextcloud nebo prostřednictvím veřejného odkazu (pouze pro čtení)\n- 🔗 Vytvářet veřejné odkazy na sdílení s volitelnými omezeními (filtry, název zařízení, poslední pozice, zjednodušení vymezené oblasti)\n- 🖫 Importovat/exportovat relace ve formátu GPX (pro jednotlivá zařízení buď zvlášť soubor pro každou stopu, nebo jeden se všemi stopami z daného zařízení)\n- 🗠 Zobrazit statistiky relace\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Vypnout/zapnout automatický export relace a automatické čištění (denně/týdně/měsíčně)\n- ◔ Zvolit co dělat, když je dosaženo kvóty počtu bodů (blokovat zaznamenávání nebo mazat od nejstaršího bodu)\n\nVeřejná a veřejná filtrovaná stránka fungují stejně jako hlavní stránka, ale je zobrazena pouze jedna relace, vše je pouze pro čtení a není třeba být přihlášeni.\n\nNa této aplikaci stále ještě probíhá intenzivní vývoj.\n\n## Instalace\n\nPodrobnosti ohledně instalace naleznete v [dokumentaci pro správce](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc).\n\nCo je nového a co se chystá v příštím vydání naleznete v souboru [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log).\n\nVšechny autory naleznete v souboru [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors).\n\n## Známé problémy\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nJakákoliv zpětná vazba bude vítána.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"da":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"el":{"name":"PhoneTrack","summary":"Ιχνηλάτηση και προβολή θέσεων τηλεφώνων σε πραγματικό χρόνο","description":"# Εφαρμογή Phonetrack για το Nextcloud\n\n📱 Το PhoneTrack είναι μία Nextcloud εφαρμογή για την καταγραφή και αποθήκευση τοποθεσιών από φορητές συσκευές.\n\n🗺 Λαμβάνει πληροφορίες από εφαρμογές καταγραφής σε κινητά τηλέφωνα και τα εμφανίζει δυναμικά σε χάρτη.\n\n🌍 Βοηθήστε μας να μεταφράσουμε αυτή την εφαρμογή στο [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Δείτε και άλλους τρόπους για να βοηθήσετε στις [οδηγίες συνεισφοράς](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nΠως να χρησιμοποιήσετε το PhoneTrack:\n\n- Δημιουργήστε μία συνεδρία καταγραφής.\n- Δώστε τον σύνδεσμο καταγραφής\\* στις φορητές συσκευές. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Παρακολουθήστε την τοποθεσία των συσκευών της συνεδρίας σε πραγματικό χρόνο (ή όχι) στο PhoneTrack ή κοινοποιήστε σε δημόσιες σελίδες.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nΣτην κεντρική σελίδα του PhoneTrack, ενώ παρακολουθείτε μια συνεδρία, μπορείτε :\n\n- 📍 Να εμφανίσετε το ιστορικό τοποθεσίας\n- ⛛ Να φιλτράρετε σημεία\n- ✎ Να κάνετε χειροκίνητη επεξεργασία/προσθήκη/διαγραφή σημείων\n- ✎ Να επεξεργαστείτε τις συσκευές σας (μετονομασία, αλλαγή χρώματος/σχήματος, μετακίνηση σε άλλη συνεδρία)\n- ⛶ Να ορίσετε γεωφρακτικές ζώνες για τις συσκευές\n- ⚇ Να ορίσετε ειδοποιήσεις εγγύτητας για τις συνδεδεμένες συσκευές\n- 🖧 Να κοινοποιήσετε μια συνεδρία σε άλλους χρήστες του Nextcloud ή με δημόσιο σύνδεσμο (μόνο για ανάγνωση)\n- 🔗 Να δημιουργήσετε συνδέσμους δημόσιας κοινοποίησης με προαιρετικούς περιορισμούς (φίλτρα, όνομα συσκευής, τελευταίες θέσεις μόνο, απλοποίηση γεωφρακτικών ζωνών)\n- 🖫 Να εισάγετε/εξάγετε συνεδρίες σε μορφή GPX (ένα αρχείο με μία καταγραφή ανά συσκευή ή ένα αρχείο ανά συσκευή)\n- 🗠 Να προβάλετε στατιστικά της συνεδρίας\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Να ορίσετε ή όχι, την αυτόματη εξαγωγή και αυτόματη εκκαθάριση συνεδρίας (καθημερινά/εβδομαδιαία/μηνιαία)\n- ◔ Να επιλέξετε τι θα συμβαίνει όταν το μέγιστο όριο καταγραφής σημείων επιτυγχάνεται (αποκλεισμός καταγραφής ή διαγραφή παλαιότερου σημείου)\n\nΗ δημόσια σελίδα και η δημόσια φιλτραρισμένη σελίδα λειτουργεί σαν κύρια σελίδα, με εξαίρεση αν υπάρχει μόνο μία εμφανιζόμενη συνεδρία, τα πάντα είναι μόνο για ανάγνωση και δεν υπάρχει ανάγκη σύνδεσης.\n\nΗ εφαρμογή είναι υπό κατασκευή.\n\n## Εγκατάσταση\n\nΔείτε το [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) για λεπτομέρειες εγκατάστασης.\n\nΕλέγξτε το αρχείο [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) για να δείτε τι νέο περιλαμβάνεται και τι θα συμπεριληφθεί στην επόμενη έκδοση.\n\nΕλέγξτε το αρχείο [Συντάκτες](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) για να δείτε μία πλήρη λίστα των συντακτών.\n\n## Γνωστά προβλήματα\n\n- Το PhoneTrack λειτουργεί με ενεργοποιημένο τον περιορισμό ομάδων του Nextcloud. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nΟποιοδήποτε σχόλιο για τη βελτίωση της εφαρμογής θα εκτιμηθεί.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"es":{"name":"PhoneTrack","summary":"Rastrea y nuestra las posiciones de móviles en tiempo real","description":"# Aplicación Nextcloud PhoneTrack\n\n📱 PhoneTrack es una aplicación Nextcloud para el rastreo y almacenamiento de localización de dispositivos.\n\n🗺 PhoneTrack recibe la información de aplicaciones móviles de log y la muestra dinámicamete en un mapa.\n\n🌍 Ayúdanos a traducir esta aplicacion en [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Chequeá otras formas de ayudar en [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nCómo usar PhoneTrack:\n\n- Crea una sesión de rastreo.\n- Da el enlace de registro\\* a los dispositivos móviles. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Vea la ubicación de los dispositivos de la sesión en tiempo real (o no) en PhoneTrack o compártela con páginas públicas.\n\n(\\*) No olvide establecer el nombre del dispositivo en el enlace (en lugar de en la configuración de la aplicación de seguimiento). Sustituye \"tunombre\" con el nombre que desees del dispositivo.\nConfigurar el nombre del dispositivo en la app de registro solo funciona con Owntracks, Traccar y OpenGTS.\n\nEn la página principal de PhoneTrack, mientras vigilas una sesión, puedes:\n\n- 📍 Mostrar el historial de localizaciones\n- ⛛ Filtrar puntos\n- ► Editar/añadir/borrar puntos manualmente\n- ✓ Editar dispositivos (cambiar nombre, cambiar color/forma, ir a otra sesión)\n- Definir zonas de geovallado para dispositivos\n- ► Definir alertas de proximidad para dispositivos emparejados\n- ✓ Compartir una sesión con otros usuarios de Nextcloud o con un enlace público (sólo lectura)\n- 🔗 Generar enlaces públicos con restricciones opcionales (filtros, nombre de dispositivo, sólo última posición, simplificación de geovallado)\n- . Importar/exportar una sesión en formato GPX (un archivo con un track por dispositivo o un archivo por dispositivo)\n- ► Mostrar estadísticas de sesiones\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Activar la exportación automática de sesión y la purga automática (diaria/semanal/mensual)\n- . Elija qué hacer cuando se alcanza el máxomo número de puntos (bloquear el registro o eliminar el punto más antiguo)\n\nLa página pública y la página pública filtrada funcionan como la página principal, excepto que sólo se muestra una sesión, todo es de sólo lectura y no hay necesidad de iniciar sesión.\n\nEsta aplicación está en desarrollo.\n\n## Instalar\n\nVer el [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) para los detalles de instalación.\n\nMira el archivo [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) para ver lo nuevo y lo que vendrá en la próxima versión.\n\nMira [AUTORES](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) para ver la lista completa de autores.\n\n## Problemas conocidos\n\n- PhoneTrack **ahora funciona** con la restricción de grupos de Nextcloud activada. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nSe agradece cualquier comentario.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"et":{"name":"PhoneTrack","summary":"Jälgi ja kuva telefonide asukohta reaalajas","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺   It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛  Filter points\n- ✎  Manually edit/add/delete points\n- ✎  Edit devices (rename, change color/shape, move to another session)\n- ⛶  Define geofencing zones for devices\n- ⚇  Define proximity alerts for device pairs\n- 🖧  Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫  Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠  Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔  Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fi":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"gl":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Aplicación PhoneTrack Nextcloud\n\n📱 PhoneTrack é unha aplicación de Nextcloud para seguir e gardar a localización de dispositivos móbiles.\n\n🗺 Recibe a información desde as aplicacións de rexistro dos teléfonos móbiles e móstraa de xeito dinámico nun mapa.\n\n🌍 Axúdanos a traducir esta app en [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Mira outros xeitos de axudar na [guía de colaboración](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nComo utilizar PhoneTrack:\n\n- Crea unha sesión de seguimento.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Olla a localización do dispositivo na sesión en tempo real (ou non) en PhoneTrack ou compartea en páxinas públicas.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nNa páxina principal de PhoneTrack, ao ver unha sesión, podes:\n\n- 📍Mostrar o historial de localizacións\n- ⛛ Filtrar puntos\n- ✎ Editar/engadir/eliminar puntos manualmente\n- ✎ Editar dispsitivos (cambio de nome, cambio de forma/cor, ir a outra sesión)\n- ⛶ Definir zonas privadas para os dispositivos\n- ⚇ Definir alertas de proximidiade para parellas de dispositivos\n- 🖧 Compartir a sesión con outras usuarias de Nextcloud ou cunha ligazón pública (só lectura)\n- 🔗 Crear ligazóns públicas con restricións optativas (filtros, nome do dispositivo, só últimas posicións, protección simplificada da posición)\n- 🖫 Importar/exportar unha sesión en formato GPX (un ficheiro cunha pista por dispositivo ou un ficheiro por dispositivo)\n- 🗠 Mostar estatísticas da sesión\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Activar a exportación automática da sesión e autoeliminación (diaria/semanal/mensual)\n- ◔ Elixe que queres que aconteza cando acadas un determinado número de puntos (deixar de gravar ou eliminar os máis antigos)\n\nPáxina pública e páxina pública filtrada funcionan como páxina principal excepto se só hai unha sesión que mostrar, todo está en modo só-lectura e non precisas ter sesión iniciada.\n\nApp en desenvolvemento.\n\n## Instalación\n\nLe a [Documentación](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) para detalles da instalación.\n\nComproba o ficheiro de [REXISTRO de cambios](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) para coñecer as novidades e o que está por vir en próximas versións.\n\nNo ficheiro de persoas [AUTORAS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) podes ver quen se encarga do desenvolvemento.\n\n## Problemas coñecidos\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nCalquera opinión e revisión é ben recibida.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ko":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nn":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud programmet\n\n📱 PhoneTrack er et Nextcloud program for å spore og lagre mobilenheters lokasjoner.\n\n🗺 Det mottar informasjon fra mobiltelefoners loggeprogrammer og viser det dynamisk på kart.\n\n🌍 Hjelpe oss å oversette denne appen på [PhoneTrack Crowdin](https://crowdin.com/project/phonetrack) prosjektet.\n\n⚒ Sjekk ut andre måter å hjelpe i [retningslinjer for bidrag](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHvordan bruke PhoneTrack:\n\n- Opprett en sporingsøkt.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Se øktens enhetsplasseringer i sanntid (eller ikke) i PhoneTrack eller del det med offentlige sider.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nPå hovedsiden for PhoneTrack kan du, mens du ser en økt:\n\n- 📍 Vise posisjonshistorikk\n- ⛛ Filter poeng\n- ✎ Manuelt legge til/redigere punkter\n- ✎ Redigere enheter (gi nytt navn, endre farge/form, flytte til en annen økt)\n- ⛶ Definer geofencing soner for enheter\n- ⚇ Definere nærhetsvarsler for enhetspar\n- Dele en økt med andre Nextcloud brukere eller med en offentlig lenke (kun lese)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pl":{"name":"PhoneTrack","summary":"Śledzenie i wyświetlanie pozycji telefonów w czasie rzeczywistym","description":"# Aplikacja PhoneTrack Nextcloud\n\nPhoneTrack to aplikacja Nextcloud służąca do śledzenia i przechowywania lokalizacji urządzeń mobilnych.\n\n🗺 Odbiera informacje z aplikacji do rejestrowania telefonów komórkowych i wyświetla je dynamicznie na mapie.\n\n🌍 Pomóż nam przetłumaczyć tę aplikację w [projekcie PhoneTrack Crowdin](https://crowdin.com/project/phonetrack).\n\n⚒ Sprawdź inne sposoby, aby pomóc w [wytycznych dotyczących wkładu](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nJak korzystać z PhoneTrack:\n\n- Utwórz sesję śledzenia.\n- Podaj link do logowania\\* dla urządzeń mobilnych. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Oglądaj sesję lokalizacji urządzeń w czasie rzeczywistym (lub nie) w aplikacji PhoneTrack lub udostępniaj ją na publicznych stronach.\n\n(\\*) Nie zapomnij ustawić nazwy urządzenia w linku (zamiast w ustawieniach aplikacji rejestrującej). Zastąp \"yourname\" żądaną nazwą urządzenia.\nUstawienie nazwy urządzenia w ustawieniach aplikacji rejestrującej działa tylko z Owntracks, Traccar i OpenGTS.\n\nNa stronie głównej PhoneTrack podczas oglądania sesji możesz:\n\n- 📍 Wyświetlić historię lokalizacji\n- ⛛ Filtrować punkty\n- ✎ Ręcznie edytować/dodawać/usuwać punkty\n- ✎ Edytować urządzenia (zmieniać nazwę, zmieniać kolor/kształt, przechodzić do kolejnej sesji)\n- ⛶ Zdefiniować wyznaczone strefy dla urządzeń\n- ⚇ Zdefiniować alarmy zbliżeniowe dla pary urządzeń\n- 🖧 Udostępniać sesję innym użytkownikom Nextcloud lub poprzez link publiczny (tylko do odczytu)\n- 🔗 Generować linki publiczne do akcji z opcjonalnymi ograniczeniami (filtry, nazwa urządzenia, tylko ostatnie pozycje, uproszczenie wyznaczonej strefy)\n- 🖫 Importować/eksportować sesję w formacie GPX (jeden plik z jedną trasą na urządzenie lub jeden plik na urządzenie)\n- 🗠 Wyświetlać statystyki sesji\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Przełączać automatyczne eksportowanie sesji i automatyczne oczyszczanie (codziennie/co tydzień/co miesiąc)\n- ◔ Wybrać, co ma zrobić, gdy zostanie osiągnięty limit liczby punktów (zablokować rejestrowanie lub usuwać najstarszy punkt)\n\nStrona publiczna i strona filtrowana publicznie działa jak strona główna, tyle że wyświetlana jest tylko jedna sesja oraz wszystko jest tylko do odczytu. Nie trzeba się logować.\n\nTa aplikacja jest w trakcie opracowywania.\n\n## Instalacja\n\nZobacz szczegóły instalacji w [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc).\n\nSprawdź plik [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log), aby zobaczyć, co nowego i co nadchodzi w następnym wydaniu.\n\nSprawdź plik [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors), aby wyświetlić pełną listę autorów.\n\n## Znane problemy\n\n- PhoneTrack **działa teraz** z aktywacją ograniczenia grupy Nextcloud. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nBędą doceniane wszelkie opinie.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ro":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# Aplicația PhoneTrack Nextcloud\n\nPhoneTrack este o aplicație pentru Nextcloud care ajută la urmărirea și stocarea informațiilor de urmărire a dispozitivelor mobile.\n\nAplicația primește informații de autentificare de la aplicațiile instalate pe telefonul mobil și le afișează în mod dinamic pe hartă.\n\nAjută-ne să traducem această aplicație pe [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\nVezi și alte moduri de a ajuta în [ghid de contribuții](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nCum să utilizați PhoneTrack:\n\n- Creați o sesiune de urmărire.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Urmăriți locația dispozitivelor sesiunii în timp real (sau nu) în PhoneTrack sau partajați-o cu pagini publice.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nPe pagina principală PhoneTrack, în timp ce urmărești o sesiune, puteți să:\n\n- 📍 Afișați istoricul locațiilor\n- ⧩ Filtrați punctele înregistrate\n- ✎ Editați/adăugați/ștergeți puncte manual\n- ✎ Editați dispozitivele (redenumire, schimbare culoare/formă, mutare la o altă sesiune)\n- 💠 Definiți zone de geofencing pentru dispozitive\n- ⚇ Definiți alerte de proximitate pentru dispozitive pereche\n- ⇴ Distribuiți o sesiune către alți utilizatori Nextcloud sau folosind un link public (doar pentru vizualizare)\n- 🔗 Generați link-uri de partajare publică cu restricții opționale (filtre, nume de dispozitiv, doar ultimele poziții, simplificare geofencing)\n- ⇋ Importați/exportați o sesiune în format GPX (un fișier cu o pistă per dispozitiv sau un fișier per dispozitiv)\n- 📈 Afișați statisticile sesiunilor\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Comutați sesiunile de export automat și ștergere automată (zilnic/săptămânal/lunar)\n- ◔ Alegeți ce să faceți când se atinge pragul numeric (blochează logarea de puncte sau șterge cel mai vechi punct)\n\nPagina publică și pagina publică filtrată funcționează la fel ca și pagina principală, exceptând faptul că o singură sesiune este afișată, că se permite doar citirea și că nu este necesar să fi autentificat.\n\nAceastă aplicație este în curs de dezvoltare.\n\n## Instalare\n\nVezi [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) pentru detalii de instalare.\n\nVerificați fișierul [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) pentru a vedea ce este nou și ce urmează în următoarea versiune.\n\nVerificați fișierul [AUTORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) pentru a vedea lista completă a autorilor.\n\n## Probleme cunoscute\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nOrice părere este apreciată.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ru":{"name":"PhoneTrack","summary":"Путь и геолокация телефона в реальном времени","description":"# Приложение PhoneTrack Nextcloud\n\n📱 PhoneTrack представляет собой приложение Nextcloud, чтобы отслеживать и сохранять местоположения мобильных устройств.\n\n🗺 Он получает информацию от приложений передающих координаты с мобильных телефонов, и динамически отображает их на карте.\n\n🌍 Помогите нам перевести это приложение на [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Проверить другие способы, чтобы помочь в [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nКак использовать PhoneTrack:\n\n- Создать сессию.\n- Указать ссылки на мобильные устройства. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Просмотр положения устройств сессии в режиме реального времени (или нет) в PhoneTrack или показ их на публичных страницах.\n\n(\\*) Не забудьте установить имя устройства в ссылке (а не в настройках приложения для входа). Замените \"yourname\" на нужное имя устройства.\nУстановка имени устройства в настройках приложений журналирования работает только с Owntracks, Traccar и OpenGTS.\n\nНа главной странице PhoneTrack при просмотре сессии вы можете:\n\n- 📍Отобразить историю место положений\n- ⛛ Фильтр точек\n- ✎ Вручную изменить/добавить/удалить точки\n- ✎ Редактировать устройства (переименовать, изменить цвет/форму, переместить в другую сессию)\n- ⛶ Определить зоны навигации для устройств\n- ⚇ Определить оповещения о сближении для пар устройств\n- 🖧 Поделиться сеансом с другими пользователями Nextcloud или с публичной ссылкой (в режиме чтения)\n- 🔗 Генерировать публичные ссылки с необязательными ограничениями (фильтры, имя устройства, только последние позиции, ограничения зоны навигации)\n- 🖫 Импорт/экспорт сессии в формате GPX (один файл с одним треком на устройство или один файл на устройство)\n- 🗠 Отображать статистику сессий\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Переключить автоэкспорт и автоочистку сессии (ежедневно/еженедельно/ежемесячно)\n- ◔ Выбрать, что делать, когда установлен лимит количества точек (блокировка записи или удаление самой старой точки)\n\nОпубликованная страница и отфильтрованнная опубликованнная страница, работает как главаня страница, с отображением только одной сессии, не требует авторизации.\n\nЭто приложение находится в стадии разработки.\n\n## Установить\n\nПодробности установки см. в [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc).\n\nПроверьте файл [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) чтобы увидеть, что нового и что будет в следующем выпуске.\n\nСмотрите файл [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors), чтобы увидеть полный список авторов.\n\n## Известные проблемы\n\n- PhoneTrack **теперь работает** с активированным ограничением группы Nextcloud. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nЛюбая обратная связь будет оценена.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sl":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Namesti\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sq":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\nPhoneTrack është një aplikacion Nextcloud për të gjurmuar dhe ruajtur vendndodhjet e pajisjeve mobile.\n\nAi merr informacion nga aplikacionet e regjistrimit të celularëve dhe i shfaq ato në mënyrë dinamike në hartë.\n\nNa ndihmoni ta përkthejmë këtë aplikacion te [Projekti PhoneTrack Crowding](https://crowdin.com/project/phonetrack).\n\nShikoni mënyra të tjera për të ndihmuar te [udhëzimet për ndihmë](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nSi të përdorni PhoneTrack:\n\n- Krijoni një seancë gjurmimi.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Shikoni vendndodhjen e pajisjeve të seancave në kohë reale (ose jo) në PhoneTrack ose ndani atë me faqet publike.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sr":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sv":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud-program\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/cospend-nc/blob/master/Contributing.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nAppen är under utveckling.\n\n## Installera\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Kända problem\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ta":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"te":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"th":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"tr":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"vi":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# PhoneTrack Nextcloud application\n\n📱 PhoneTrack is a Nextcloud application to track and store mobile devices locations.\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt-br":{"name":"PhoneTrack","summary":"Rastreie e mostre a posição do telefone em tempo real","description":"# Aplicativo PhoneTrack para Nextcloud\n\n📱 PhoneTrack é um aplicativo de Nextcloud para rastrear e armazenar a localização de dispositivos móveis.\n\n🗺 Recebe informações do aplicativo e exibe dinamicamente no mapa.\n\n🌍 Ajude-nos a traduzir este aplicativo no [projeto Rastreamento de telefone sem Crowdin](https://crowdin.com/project/phonetrack).\n\n⚒Confira outras maneiras de ajudar nas [diretrizes de contribuição](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nComo usar o Rastreamento de telefone:\n\n- Crie uma sessão de rastreamento.\n- Dê o link de registro\\* para os dispositivos móveis. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Veja a localização dos dispositivos da sessão em tempo real (ou não) no PhoneTrack ou compartilhe-o com páginas públicas.\n\n(\\ \\*) Não se esqueça de definir o nome do dispositivo no link (e não nas configurações do aplicativo de log.). Substitua \"seunome\" pelo nome do dispositivo desejado.\nA definição do nome do dispositivo nas configurações do aplicativo de registro funciona apenas com Owntracks, Traccar e OpenGTS.\n\nNa página principal do PhoneTrack, enquanto assiste a uma sessão, você pode:\n\n- 📍 Exibir histórico de localização\n- ⛛ Filtrar pontos\n- ✎ Editar / adicionar / excluir pontos manualmente\n- ✎ Editar dispositivos (renomear, alterar cor / forma, mudar para outra sessão)\n- ⛶ Definir zonas de cercas geográficas para dispositivos\n- ⚇ Definir alertas de proximidade para pares de dispositivos\n- 🖧 Compartilhe uma sessão com outros usuários Nextcloud ou com um link público (somente leitura)\n- 🔗 Gere links de compartilhamento públicos com restrições opcionais. (filtros, nome do dispositivo, apenas últimas posições, simplificação de raio geográfico)\n- 🖫 Importar / exportar uma sessão no formato GPX (um arquivo com uma faixa por dispositivo ou um arquivo por dispositivo)\n- 🗠 Exibir estatísticas de sessões\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- Ativar/desativar Exportação automática e limpeza automática da sessão (diária/semanal/mensal)\n- ◔ Cada usuário pode escolher o que acontece quando a cota é atingida: (bloqueie de registro ou exclusão de pontos mais antigos)\n\nA Página pública filtrada funcionam como a Página principal, exceto que apenas uma sessão é exibida, todo o conteúdo é somente leitura e não é necessário acessar.\n\nEste aplicativo está em desenvolvimento.\n\n## Instalação\n\nConsulte o [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) para obter detalhes da instalação.\n\nVerifique o arquivo [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) para ver as novidades e as próximas versões.\n\nVerifique o arquivo [ AUTHORS ](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) para ver a lista completa de autores.\n\n## Problemas conhecidos\n\n- O PhoneTrack \\*\\* agora funciona \\*\\* com a restrição de grupo Nextcloud ativada. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nTodos os comentários serão apreciados.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hant":{"name":"PhoneTrack","summary":"Track and display phones positions in real time","description":"# 手機追蹤Nextcloud應用程式\n\n📱 手機追蹤是一款Nextcloud應用程式，用來記錄儲存移動裝置的位置。\n\n🗺   It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 請利用[PhoneTrack Crowdin 計畫](https://crowdin.com/project/phonetrack)幫助翻譯\n\n⚒ 在 [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md)中也有提供協助的方法\n\n如何使用手機追蹤：\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 顯示位置歷史記錄\n- ⛛  Filter points\n- ✎  Manually edit/add/delete points\n- ✎ 總輯裝置 (重新命名，變更色彩/形狀，移動到其他裝置)\n- ⛶ 定義裝置的地理圍欄區域\n- ⚇ 定義裝置間近接警報\n- 🖧  Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫  Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠  Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 設定追蹤任務的自動匯出及自動清除 (每日/每週/每月)\n- ◔  Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\n此應用程式尚在開發中。\n\n## 安裝\n\n安裝細節請查閱[AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc)\n\n下次更新版本中添加的新功能，請查閱[CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log)。\n\n查閱[AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors)可得知所有作者。\n\n## 已知待解決的問題\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hans":{"name":"PhoneTrack","summary":"实时追踪并显示手机位置","description":"# PhoneTrack Nextcloud 应用程序\n\n📱 PhoneTrack 是跟踪和存储移动设备位置的 Nextcloud 应用程序。\n\n🗺 It receives information from mobile phones logging apps and displays it dynamically on a map.\n\n🌍 Help us to translate this app on [PhoneTrack Crowdin project](https://crowdin.com/project/phonetrack).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CONTRIBUTING.md).\n\nHow to use PhoneTrack :\n\n- Create a tracking session.\n- Give the logging link\\* to the mobile devices. Choose the [logging method](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#logging-methods) you prefer.\n- Watch the session's devices location in real time (or not) in PhoneTrack or share it with public pages.\n\n(\\*) Don't forget to set the device name in the link (rather than in the logging app settings). Replace \"yourname\" with the desired device name.\nSetting the device name in logging app settings only works with Owntracks, Traccar and OpenGTS.\n\nOn PhoneTrack main page, while watching a session, you can :\n\n- 📍 Display location history\n- ⛛ Filter points\n- ✎ Manually edit/add/delete points\n- ✎ Edit devices (rename, change color/shape, move to another session)\n- ⛶ Define geofencing zones for devices\n- ⚇ Define proximity alerts for device pairs\n- 🖧 Share a session to other Nextcloud users or with a public link (read-only)\n- 🔗 Generate public share links with optional restrictions (filters, device name, last positions only, geofencing simplification)\n- 🖫 Import/export a session in GPX format (one file with one track per device or one file per device)\n- 🗠 Display sessions statistics\n- 🔒 [Reserve a device name](https://github.com/julien-nc/phonetrack/blob/main/doc/user.md#device-name-reservation) to make sure only authorized user can log with this name\n- 🗓 Toggle session auto export and auto purge (daily/weekly/monthly)\n- ◔ Choose what to do when point number quota is reached (block logging or delete oldest point)\n\nPublic page and public filtered page work like main page except there is only one session displayed, everything is read-only and there is no need to be logged in.\n\nThis app is under development.\n\n## Install\n\nSee the [AdminDoc](https://gitlab.com/eneiluj/phonetrack-oc/wikis/admindoc) for installation details.\n\nCheck [CHANGELOG](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/CHANGELOG.md#change-log) file to see what's new and what's coming in next release.\n\nCheck [AUTHORS](https://gitlab.com/eneiluj/phonetrack-oc/blob/master/AUTHORS.md#authors) file to see complete list of authors.\n\n## Known issues\n\n- PhoneTrack **now works** with Nextcloud group restriction activated. See [admindoc](https://github.com/julien-nc/phonetrack/blob/main/doc/admin.md#issue-with-phonetrack-restricted-to-some-groups-in-nextcloud).\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"julien-nc@posteo.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":0.9285714285714286,"ratingNumRecent":0,"ratingNumOverall":21,"certificate":"-----BEGIN CERTIFICATE-----\nMIIDBTCCAe0CAhBnMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTcwODI4MDg1MzE0WhcNMjcxMjA0MDg1MzE0WjAVMRMwEQYD\nVQQDDApwaG9uZXRyYWNrMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\no+LDMeoXTJp1d81zrcU7X7MPKKL0egtn8oaBNxPPYuEKA40Q8dVfBatjEtfawykx\nkmf1VVTAOISmMKfpNkWWgQEHMnyQ3G/OMp5hHOonoumMk+EuPWqT5WUw21BypxmR\n572T8XAHdJvhRjxjkGdX8RW6q9uL0aIp2A0Vcv7jLMxHh6L3VHy7WsvOrhG+gCdn\ny45jqxgBDcenlLf0aV/GskotCmgnWlDCIr+40KgiYvQ3o6kSHMOjmY7F6eIuq/qo\nq6RkDP+gKOz3c9j+Mt/7RZhPw4RMCxLy4j+QBcfrXRdbcrdj1BVUVw/3aWlASrur\nlBgetCuaeB2Iv/XL2nyNnQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQASmARbJHNX\n7mcReQkNHnzd+Xr96pu/ydTqMTfT3kAHJBGbXNreFyO/aEYyEKNM20LTs9askTiL\n5au4G372o3uRoqMpVsWQTcjr8MjUTXMavxpf+AqebdTSUfxxFyovo+j6WljuiaFO\nTiWKC1G/SenH+99c16eWtDWSIPDnAouuPZdp9+f6k2PJkXeKN3uLKGSY7QAKK/66\nIFiwtYNPvI/UeImZnVI1YLItDTlF7Zz53OtVL8VIbdUP8V+LHBpXVS4OX0rXQP+4\nKnhz1IB+8Tyoc5Y3eeLsiAg7ZwYvVqizp9abl0IcQ6C0YZ7GnTNKrBx/CIMI4yVw\nuBKC+tvsqeC+\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"dutycheck","categories":["organization","tools"],"userDocs":"","adminDocs":"","developerDocs":"","issueTracker":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues","website":"https://nextcloud.software-by-design.de","created":"2026-05-21T18:35:22.496377Z","lastModified":"2026-10-19T09:45:40.125452Z","releases":[{"version":"0.3.9","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.9/dutycheck-0.3.9.tar.gz","created":"2026-10-10T15:27:39.815488Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-10T15:27:39.919157Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"GK8NkVX8XlRELHcnKQe5dEmQtt8fo50oqjewejIuB14W6ca+3o8FM54uT3vUsTBtXnqP27vGlSo+NBw3bmyL5Rzer8qd+eNqC5fsl7kx/yTZrQU2ILAuMTELu+44rDOCxL0IHDVxaEHkdzJTU0vUaeK3eKDrIRtf3gFqQSBia1nQcq3CKH0S5fh5hZGGyfWZ4/8LeYZgHMRFYtr8muVEutPF2dOxVUew7VYw8IKwUI4rcCmf2vvJefur4+SA1QVp4YuC9PMX8+HL7cCwfPoBXoYWfYYct5Ze1cDCK4ptpZKGxfuSzH7mj9i6uuyP9z2gqM2j1o2YE0YzAiYpkUjWz4ne8MQt+yMRsfQG/cG8AIyGSDFrxV4AiTsGmN0AfIyHIzKIt03XyK2PnzfgOEvbmOoL4Ymnyw4Yj0rep7vzX0cqqBn0dfFPlRHusq88LNQDSk6lhS1B8TvF/Tc0NZ7bzye0X4vBg+q9/DtXyP2OYDtyTyfJe5+OFjHeZ6YoCv/pObFjM/NLZ9Vt8CpoLAxdLBm0auVvVWAx1r6B/28BOmk7QlL7pZAXh6YzxRoRr0PEeVHdOwcBWpreb4TF8IrADCNkK1WF3DG6AQ/BA35y+A/NRo6eh+5auD1C6zCmyzuO6vf7v6pZkWp+2Aa/W8tqlp1fUi6a6tfYkxJqWdre/g4=","translations":{"en":{"changelog":"### Changed\n\n- shared app-feedback render (focus-ring + toast-dedup SSOT)\n- Atlas farm v3.5.15: dutycheck exit_met seal"}},"signatureDigest":"sha512"},{"version":"0.3.8","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.8/dutycheck-0.3.8.tar.gz","created":"2026-10-08T10:57:37.836476Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-08T10:57:37.941613Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"YKSLXeaU78tKSmrVSZ5oF7O5wJItPx0w5KAWzpIMNlXGUwIpq3XWej47kvTpzxLV+doTIrqmShQVLd3GJFDQu+sgANaFOoMoma0Z8qDYlPU1lAQfQg9Y4KJ0ZjRhRPZvSUk7nrenovllUKHiMerqn9V6k5DV7OV7GR8JkAaWeTl+D1avGLwt/5wXavsAwzrY+86rgDEHQW1Ku/vqgiggaxxUwdjJ7A6/WLJxq5HDAUtJfYnrK8zUIlfyysxpYkB2gm0J1Sodg7rG6aYGxX7FtIwAfbdlQKo0xvqvSDAVDkljo+I+K0llV5d94TQ3GqPa/7o+zbpqseEJFxi7HApjQgd0r1asyxULwTGGywb3pO8Y4Bl7MPkNrI6X7pHqzYfYMro03gs6TwOPLGFxEg25pzSBNeuj1CVtSGzkF6ZxzCt/6R/yLmK7AKDqcuoKHuNJcOo/o4GfS47fJ2l/hiwZjiHnF+PYvLJD35onKxotDl3LrtrZmCDR3yIu3jthA88J7g3ZqBE3p8kjDXyDQP1OqoJqoxXgrPKSkrEnWPzih5ELgFRy8incsxfrltS8QzQl6iHz9SazuSpjxaMnphJ6YdSx1J37uKQHd1yCD4LTwTiJn/TV4p2MCm8zSaI6Jd+XknBg2ZXg/N/itr6dzmAszgHWh0cRI2T+BlaQ7Fqi14E=","translations":{"en":{"changelog":"### Fixed\n\n- **Pattern names stayed blocked after deleting a pattern:** \"deleting\" only deactivates, and the deactivated row still held the unique `(company_id, name)` slot — re-creating a pattern with the same name failed with `PATTERN_NAME_CONFLICT` and no visible cause. Inactive holders are now renamed to `<name> #<id>` inside the transaction when the name is claimed again; names held by *active* patterns still conflict.\n- **Generic toast instead of a real message for pattern errors:** `PATTERN_NAME_CONFLICT`, `PATTERN_NAME_INVALID`, `PATTERN_INACTIVE`, and `CYCLE_WEEKS_UNSUPPORTED` now show clear, translated messages instead of \"some entries could not be saved\"."}},"signatureDigest":"sha512"},{"version":"0.3.7","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.7/dutycheck-0.3.7.tar.gz","created":"2026-10-07T18:33:34.874344Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-07T18:33:35.017098Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"KD5rMHAJXMGfjXybnv/huDlZiL6WR8LUbsPM3MH+QJ2W4evPTWcVTZ57rqDhErd/pz+ZWoUsNkKiHphkKppS0r1kqQLX/r8QbiTL/+MA0himUnHM7NXPXAtdsQaMyP5Dn1w81kUx32MBl4et+bBfc4vhevEteehIKM/GzmGMhRlaz9aayCVxKOxf9UuA2cAbvhDqPmiEGV55ktm1aNUaiml299Mdf6rh/DLHvrBB3Qcwghqc9sf501BROuh2HNfNroPHAiPNSnVR28eCwc+mPsR+n5yB7vVI/hhotJgOi0U+SaEhKk69e3xnkKxGXjzSONO9bfkgFz+EEEVNdbpaSwt+6TJYEXWHT8iBSr1kET82pG3lofObHvw0XK9T+AB9qWqCaWBbZoq4R3/nBMhQy/+pwD3TAapUdCwVSOFRVonZY6qKtHA+42eRxNWxtirKB8/4aKNH/WRnoSdxw1V2iJLD3Aq2avKZFTplU25nrPkITWDVIL4jIBLMfFT4tfMyAyUGP5iHivXSi3REivELo8Cfpg1j/kPekroL015laQ6vNhkE4dDfRyn8U+JcPTP17Z/l2xmPw2h72i9wiHbgljRQyVgulrGF3BYqoxzJOdwx5GPSBVFtDZ+tAzRieC4tZyvY8/zWqvEbH1swDqyCPVN1M4qXIMma3nUe/Yzo+Bc=","translations":{"en":{"changelog":"### Fixed\n\n- **“Assign pattern” always failed with a misleading overlap error:** assignments left behind by deleted (deactivated) patterns still counted as overlapping — invisible in the UI and impossible to end. Only assignments on active patterns now block; rows on inactive or missing patterns are ignored, matching every other reader. The assign dialog also lists the employee’s existing assignments, auto-ticks “End previous overlapping assignment” when the start date collides, and `ASSIGNMENT_OVERLAP` now names the real cause instead of talking about shifts.\n- **Orphan assignments for nonexistent employees:** the employee check in `POST …/assign` only ran in multi-company installs — single-company setups accepted any employee id and wrote rows that could never resolve. The endpoint now always verifies the employee exists (`EMPLOYEE_NOT_FOUND`).\n\n### Changed\n\n- **Rotation cycles up to 8 weeks:** allowed `cycleWeeks` widened from 1–4 to 1–8 so non-week-aligned rhythms are representable (e.g. 4-on/2-off needs a 6-week cycle). A stored `[1,2,3,4]` — the old default that settings saves auto-persisted — now widens to the full range; explicitly narrowed lists are still honoured."}},"signatureDigest":"sha512"},{"version":"0.3.6","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.6/dutycheck-0.3.6.tar.gz","created":"2026-10-04T19:10:29.066556Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-04T19:10:29.201890Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"Yk8RwxXmSzff+1RxaCplbAuvL7HNwNzwfEXFZ/9WLHYfusXZBJRENW8hx5nqktwM26XwNx8Yx/f3zdGvoih/CBxg6wUlLV0j+ScJFKIHvIGPU6WCSDFt3T8aTCca524stsZByY/RE77oZ/nFnVnxoX0Kk1v4a7ehbbvQQaW6V0tErvE+Sv1vMBEzTI8g9zGGsSJoGNSpY1/RxjGhk4inYCoPFA5qnqsRFhRHfMFHKW/A2dkB3CRxKsuOLx4Oe5uGTeuftlxntEYt6h+MzhjyPGmrI2T1UkZVvCCqXLaxl0bH6WDWvQf94Z/S33yLoj++ZwuxGYSlHu1lydHoYf6o2GiIXeEQHWAltX0S617Uy0ueHO++KUJeNBmT7gGQ4CPkAGot2yW9dWwH0qJhmU7f+7BLL1H5d5ILAhZg2naO2tjxNS+19Bct+UnbpAu70B2SOaA13+y2dmTNgk5WpSYbt6qdtQCLSkx4Kidg4unLvb90l6rEXjYOoB1O9kEuVjPKg02QOU3Tjbh8zWyrmHIeB2ZvRhgmsQ7JXioRqTIGEMMUX3uMeVgZNzYz66p6qe/BTzm0WGuhtzlZvVDMlmwk/Sk30kLwmrZilcy7v1RPHJzT+p1RqVtBqhBwsYvjJYCgu1dtwcvkommcKzavrRXMdjNPDJoOK6RTSDAC+U38vyc=","translations":{"en":{"changelog":"### Fixed\n\n- API hardening: stricter request validation and error paths.\n- Localization fixes.\n\n### Changed\n\n- Atlas v3.5.14 verification pass: expanded contract coverage; store screenshot URLs corrected."}},"signatureDigest":"sha512"},{"version":"0.3.5","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.5/dutycheck-0.3.5.tar.gz","created":"2026-09-29T18:59:17.644604Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-29T18:59:17.772053Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"cqxZ0UG9RYphEpovO+kc7XaNcKrw0sQZdSeYGjQjI1NdfzufNjtRoU2BItSIKSDvJYG+765JJYMWEBHzp1Kls/Izt6rQgLcSILrw/dXqRBkOyqW+N+mBiyvF0s1l8mPbHOSwdKh99maI/qy7UdOs8pc7OTE4fj3FDqmluO9mG11lf+a8LAsdOLA5Jv5tRraCTjXJRxRGuhLOIFvm3bW6+QqgSujqZu+Wkk6s4/6j/pf5/Cab0ph8A94y0stAQv+FT6bzodUPvZ9m5H9v4JSRxWBiZH+gYEZg+zezh+WmGEvVNEglU7qHHoA7MXLjUGvEJGVifBqL1mW+KmXFIOjyBpiXX//FRksl2a99shAP/p4diFiUeKULRLsogZTFhQ//zmR9UHv94/HWUxLLmc9owRvYUka+C2ZVfLBu3KxX4CtLRS+CYGnIXhnoWqbxWRKWds9N06hv1VEU67qUh8lrZdOZybBSH917c9wRIL83ZDJ15wZvP3Djc0ysRbQCbZfME8Teyd3o2AJPjNPXW4n5V+X1wEP5QNeS/wPxV/JTN652q4QPebn2xG7g8wQ/JYF3BMslruRz4abQTXN81kvbc7b4+0xY1a0HRwMteGk3+B7Nd1VxzTRTSFHe9l7LbYgoIITYuST+2RjyvTOXoetUXW/hL8qntL6TiOCBM/LIQF0=","translations":{"en":{"changelog":"### Fixed\n\n- **Shifts can be deleted from the edit dialog:** opening a filled roster cell showed only “Save changes / Cancel” — the “Cancel shift” action that existed on the assignments table row is now also available inside the edit dialog (danger secondary action), so a manually entered shift can be removed from either surface.\n- **Access page could not remove people:** saving the app policy re-validated *stored* allowlist entries — a user or group deleted in Nextcloud meanwhile made every save fail, so removals never persisted and leaving the page always warned about unsaved changes. Stored entries that no longer resolve are now pruned (and reported back) while newly added entries are still strictly validated. Removing an entry also announces that “Save app policy” is still needed.\n- **Roster error rows get a working Retry** and an empty/failed roster grid no longer leaves a dead keyboard tab stop.\n- **Pattern days corrupted on save:** the web client posts urlencoded bodies, so an unchecked day arrived as the string `\"false\"` and PHP's `(bool)` cast stored every day as working. Strict boolean parsing (`ApiMutationParams::boolValue*`) now honours `true/false/1/0/on/off/yes/no` on every affected endpoint — patterns reopen with exactly the days you marked.\n- **Duty & team settings flipped everything ON:** the same `\"false\"` → `true` coercion is fixed for all toggles; ambiguous values now fail with `INVALID_BOOLEAN` instead of silently turning features on.\n- **Patterns can now be deleted:** new danger Delete action with confirmation; patterns are soft-deactivated (assignments keep their history) and no longer clutter the list.\n- **Delete could still be refused after settings changes:** deactivation no longer re-validates the stored `cycle_weeks` against the current allowed list and no longer requires the rotation feature flag — a pattern can always be deactivated. Unchanged stored values are only validated when actually changed.\n- **Suggest fill filled nothing:** the preview no longer inherits the “Add assignment” form’s location as a hidden filter, and location-filter drops are counted and shown (“Skipped (location filter): n”) instead of a misleading “nothing to fill”.\n- **Open shifts could not be deleted:** `OpenShiftService::discardOpen()` existed internally but no route exposed it — a posted open shift stayed forever. The roster now lists posted open shifts with a Delete action (`DELETE /api/open-shifts/{id}`); shifts with a pending or approved claim refuse deletion.\n- **Location qualification requirements were permanent:** `requireForLocation` had no inverse — `DELETE /api/locations/{id}/qualifications/{qualificationId}` (+ POST `detach` alias) removes a requirement, and each qualification chip now lists its required locations with a Remove action.\n- **Swap requests could not be withdrawn:** the requester had no way to take back a pending swap. New `POST /api/my/swaps/{id}/withdraw` (requester-only, race-safe) shows “Withdraw swap request” on My roster, with companion parity via `/api/mobile/my/swaps` + `/api/mobile/swaps/{id}/withdraw`.\n- **Shift template `active` flag silently reset:** `ShiftTemplateService::update` cast the flag via `(int)`, turning `\"true\"` into `0` — now parsed strictly like every other boolean field.\n- **Session CSRF guard:** the web client no longer sends `OCS-APIRequest` (a header that tells Nextcloud to skip its CSRF check), and a new `SessionCsrfMiddleware` re-validates the request token server-side for every session-authenticated mutation regardless of that header — a forged or malformed request can no longer opt out by claiming to be an API client.\n- **Release tarball shipped dev artifacts:** `make release` packed `vendor/` (all dev-deps — the app has zero runtime composer requirements), `docs/atlas` evidence files, `phpunit.xml`, `playwright.config.js`, and a stray `.auth/` dir — ~27 MB of non-product content. The excludes now drop them and `verify-release` fails if they return; the archive is ~3 MB of product only.\n- **Small-screen accessibility:** the roster scroller is keyboard-focusable exactly while it actually scrolls (axe `scrollable-region-focusable`), and the access-state panel wraps instead of overflowing at 320 px.\n\n### Tests\n\n- Unit: strict-bool parser, urlencoded `filterPatch`/`weekDays` normalisation, stale-allowlist pruning on policy save; JS source contracts for the modal delete parity + removal cue; Playwright spec covering the pattern round-trip + delete, settings persistence, modal delete parity, and the suggest request contract."}},"signatureDigest":"sha512"},{"version":"0.3.4","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.4/dutycheck-0.3.4.tar.gz","created":"2026-09-21T17:43:10.699741Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-28T14:34:56.739929Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"QmC6cZt5OyjrDEU0YGkD3HEeUbinsOSqFKTAL3fZ4jeUsYpRZtN0sTt+97KG5O6QKdb6bkpp1caJBww/oTPnQBnDezgzd5z5Y2LMtnwj8P26UAe6MQ4FgM44MUm01G5X6pJ4b4fcIIa9s4TIu2w700ndEEAXgmWRH4vZvh9xXRs7fJx+yyqKOcF3iuRbsl+0pugBRSy1PwCMwRDJr5VJMR1wAlBwH3uPKG1zkWSDILKT0MhaeX9yvPk6Kb0+EdNcwZedP2kZ14yE7KsbJONNCJeBrH6UYLn/dMMzcSSQgNxISK6rkNrLKeE/AIY3FPEp1ZN8fTV04mxQQuylUI5Sybxu9voKaG2nsW0ie0ld7NBcVDL/eotkUZ6rQDyIUuLZYY6cLEsue2bFm3jkbO+/jeurUS/vzQkwusvR65egzMwxDvScnyI5wSMvMHF2h1JOWdigoVl/mDUWB+ZfrMbLb2DQeY2ncXPc1nZadSFnN71DzqKFaxIEKLtZPyurmL/gulCJNSzirL0wupyAKuNAxNwaV+CuHa5NZgXKs+IjnEuGezrQAfz2Vs9hRuh9IiNa196q13hQi+iOViOwDd7hVImPqDlDx03yOSJiDOJADLd9IuTQL9x5MoweatRY5adMVuviGKasaNrZWpo7EUZrF+oY2QQuKfFlyz8IKqFPjdA=","translations":{"en":{"changelog":"### Fixed\n\n- **Conflict thresholds callout:** “Apply to open periods” is shown only when open periods still use older caps (no grey dead button after Save when already in sync). Soft/hard HTML max aligned with server clamps.\n- **Roster copy:** “Apply copy” stays hidden until Preview reports something to copy (same omit-over-disable pattern).\n- **Conflict rematerialize:** After threshold save/apply, budget-dirty open periods rematerialize so stale hard caps do not linger; concurrent sibling writers get clear already-decided handling where applicable."}},"signatureDigest":"sha512"},{"version":"0.3.3","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.3/dutycheck-0.3.3.tar.gz","created":"2026-09-17T16:37:14.728223Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T16:37:14.889917Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"MDbHXeJkhKmOsuCU8D1SKyUUPWhUQ4GV/7wKHd/QvX2efTmyatkcl9VMzbUSsi2bWdDUrMg7XZSZzZ1MbXHX3XZPIR0GoENc1YuhLGZ355kXP8luNvsVjyMVK8dDVab6t321kLVlx4FVzLsrpgYovf5vyObAKczqq8ykzSdzvHe2ERJAz7gW6ppnMci4g8GICfkpbL7iWCXoptdEM3sJwRpPirlcvQblweWg/3xJuHm6p3na7gp5yn869yDPOaXyasqhtn8In9EDBl4Ic4yT5pgnOz9jgNJXr3AxYuB0sk1zWWXGNpj06IADR1dljCBx6PUwKZbS6Q5vXXb1a0yjlJNdDs9/ro5KfpFVWRWD3uDgaroM+bwjdrzDQbIGF9znE1u+Z4UWcHUEEmiMYP815U64cefa66ltMhrGdzMnBBBkkpi2Pl1lmPh1QyCFg7uSQKoDopTSytyesiOzKqzXQ4CdKLKMaDqCmNaVjnRdrOa02Tf7FRxRUwejOOYu4DQH3X0nlJmKsCsjol7QoM7H7cwXGne3O6kXHmq+fCgls9WL42OYNQ2YMoCqrEaK6d//qY0/nLR3vgrmS9OHoDSZLqzGdidY2flp3e9txwxX1mfokLlfE2tX1e5zOQgAmyB/BCB7U3fjms/seK0j9jdvIErkIJxXaYAHfGoz6r9Ia8g=","translations":{"en":{"changelog":"### Changed\n\n- App Store / GitHub release cut from the conflict-threshold source on `master` (correct `v0.3.3` tag); packaging and App Store signature refreshed for upload."}},"signatureDigest":"sha512"},{"version":"0.3.2","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.2/dutycheck-0.3.2.tar.gz","created":"2026-09-17T16:19:34.201222Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-17T16:19:34.350432Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"kAEsgsiuxoAGtoG3S3yIx4UYTo+FtFAUp1u73Q0R5AH5maCb2JYUXB6OYDXY01aZuzYLW58f2SxKVCxe1HFsEQ9Vtq0XEOWIy3FKFHM9n9GzPMCla7dZ+s4QvL7FaUaYxoIF8+4OoLFcX1DZoSoeOQ6TRv6Lv5IWOkzNojTz77fzKV9DPwY8WLOk0woziW9UhQTapkMsf9EZ7LJyqDdW/yFQ7UpsNMw65DZgOOcKIcHi77vPOL7ZwJfnZ6BjiaMkA5bnFHuKakLqiJLmIpSGED4CtYoCV9Q6LpPuK0LyNtEjO4BMASZcz/KHoycF/KO6fQnqoVqtLHhZb/8ovUQQe/fvI3QozQRg7sJEIT7uBUjn/l4pvkYjcMOFNSwrbLw2hbDJQOQiFrPj/dB+s+/QVxo1Eki8A2XMup/LBPCoSJMasaGRGhRyqd1mbmJyji94QFplnU1Q2TYFbHS5qZBNqqXWlTp5A1d3gVZy7jcD4NRprqTRrPVjlx/gZ/RneeNadWpmGknSmWNiMARhYvabPFPj9T+mOCIlyfhcqw2ejeKxpLdY6TVELWIPJDHdH5NIoOxDWXB6E877MBCswK/LaoVaDFLkACWL3FtJcKUbw7wgEIE2c7iPQYIyBls0QgVFGyMgTCy1vjpHwnGzBPukAaqg1jPWojOzloIszU9OuV8=","translations":{"en":{"changelog":"### Added\n\n- **Conflict thresholds → Apply to open periods:** saving live caps no longer leaves planners stuck; app admins can re-freeze the current policy onto every **open** period in one click (published/closed stay unchanged; audit `CONFLICT_THRESHOLDS_REAPPLIED`).\n- Settings callout explains the create-time freeze; live **≈ hours** hints next to minute fields; period/week dual-use of soft/hard caps is labelled plainly.\n- Dashboard planning status shows a freeze hint with a deep link when hard period/week hour caps are blocking publish.\n\n### Tests\n\n- Unit apply/status + settings/dashboard template contracts; integrity mutation asserts; Playwright axe on `/settings/conflicts`."}},"signatureDigest":"sha512"},{"version":"0.3.12","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.12/dutycheck-0.3.12.tar.gz","created":"2026-10-19T09:45:40.117359Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-10-19T09:45:40.244016Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"kq/Cgf8spNBk3+z6gjtDRrvtAWStGu6wexFwy2nUy0+KtPtq/i0l0lxDGOLJZq4p0m6gwumzcWY8EL91T0K5bccMO2/KDOMfJi5F1ACsnE2qSzHWP+I9b3PK71aRMqCddH67hHL2YqFFRnjHv1u4Hzw2SlcuneFwJprMkNZy162IVc94hV+JY8CzvNctPeFug8OiI/7QWiou2sNAr9OtwmdaIJF0z81JtjOHLfVMoReI1VsS3VJJIsQj1siwilTrrpJ8jW3ROLDiDSylwKR4UAIRxyyv/PnDmioZqSV+k49mo7E5uNV7ztfMSSH2YOIey/0yug8/BHqIdU8FHAmKCcYEthZGWf+b3WhpXkKJXZ67vpkF/+WXDhIM7A3uyVEjtmfSoezMJSy4gbXNVhuEnmiO0Vc8SjOuYafmso9Obr6KrzkbRDKzBqB0x8Ci2zuiK23hbHzQdfypSsviMSRzaDwjyXIGhJakjAMeIVjJY5uwQj4yQPO06v+2iZ3FBAFfaHVVfxRC803/ynwhvIHwOmmQjYzSwbHDIDtvdP0MsJjQMjsD9hfdbRy5uOhC9XP3DKlCVjvkOnDh/AJ5vgVe5IMEMd7LBYd6F920swn9HLHCpv653fUohrZJ4lXXFwzYYLPxnq8L823EwgXp1QfuYwk8iYuI7dsJ2HZelWzboxc=","translations":{"en":{"changelog":"### Added\n\n- **Standby planner:** standby-duty assignments with a dedicated assignment kind, roster UI, and schema support.\n- **Suite integration (F17):** DutyCheck now advertises a versioned `check.on-duty` capability and accepts TourCheck as a consumer alongside MaintenanceCheck. Duty shifts can be soft-linked to TourCheck rounds, and a missed round now surfaces as a roster conflict source.\n\n### Security\n\n- **Roster CSV export formula injection:** all roster/minutes CSV emitters now pass through a shared formula guard, so values starting with `=`, `+`, `-`, `@` or control characters can no longer become live spreadsheet formulas.\n\n### Fixed\n\n- **Calendar-day timezone hardening:** dates and periods resolve to local calendar days; period overlap detection and the delete path were hardened.\n- `responseTimeMinutes` is now returned correctly by the roster API, and a stale-guard keeps outdated roster payloads from overwriting fresher state.\n- Destructive confirmations (delete period, delete category) now render with the danger variant.\n- TourCheck round-link strings are now translated in all 16 locales."}},"signatureDigest":"sha512"},{"version":"0.3.1","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.1/dutycheck-0.3.1.tar.gz","created":"2026-09-13T00:08:13.865001Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-13T00:08:14.012484Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"DG83bXnHvv34rctmFDzrPkDbrApHz7B27p94pBye86VaDepZQ0jBkLmJ2Dz88q64GxyRrfYTrZUzCBh+hYI2++bFRoNoRIAiNQ6bikGq69SQuZp7rQa3Vu0ygdpFv6Xp6RyQyij1YwW8B/U2sYLe3zPdn3TgIhSkQtPvNHedkdaj9BfWUrPUhmszkV3mU0fWv9HGIhFpdxlAEXabYBkn+ai0UfR0AeATnYFC5L4/dghCMf3pD/dTvR11JWWqeKx1+nL2k16k78HR8f1v8Uo+BB2rGv3D5Fdva7/uh89XdkYa+JNC/fsWnehDzxPh8dURTXX9+b3FM4Bmrqtztf7qgCCcTsV0RtIj9tpEXeVrSZc866PP4Nw5ZkKH4tuWBaY873mK9D234WDaieW5UsGh8goaxrxeJuSa6n/WjFUYDv1ljHP4e5lrVbs8oGzatxwnYMqupbu+jtErbPl/d9xCufXzmQVNomt+UHkkWWdXR5BIF/SqNa41EoQRrk7TkPHcdQla8youBuayG2UNEpwbdjV1VUybudlhROxaX/PFOYihkv+SLoKE54WJyEDcRRPxn1O8cl1DN7J9QSsMBoDENT256ikSBs8eXm/HafAgq40PArqrYwiSmMLxoeG9Nr7WmP0ei+IAOHWql3rM2hdqD8R/DI0MlaN0HBwZGyXDow8=","translations":{"en":{"changelog":"### Fixed\n\n- **Settings → Mobile license:** tall license/seats page could not scroll to the bottom. `#app-content` is now the vertical scrollport; unpaired `overflow-x: clip` on the shell (CSS Overflow L3 y-axis clip) is removed so the seats table stays reachable.\n\n### Changed\n\n- Keep Nextcloud **32–35** (`max-version` 35)."}},"signatureDigest":"sha512"},{"version":"0.3.0","phpExtensions":[],"databases":[{"id":"mysql","versionSpec":"*","rawVersionSpec":"*"},{"id":"pgsql","versionSpec":"*","rawVersionSpec":"*"}],"shellCommands":[],"phpVersionSpec":">=8.2.0 <8.6.0","platformVersionSpec":">=32.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/releases/download/v0.3.0/dutycheck-0.3.0.tar.gz","created":"2026-09-09T15:50:13.006488Z","licenses":["AGPL-3.0-or-later"],"lastModified":"2026-09-12T20:25:01.412684Z","isNightly":false,"rawPhpVersionSpec":">=8.2 <=8.5","rawPlatformVersionSpec":">=32 <=35","signature":"TfnAr0/PSUVWURk8XpU+ceR7Oc79xPUKEq4WdyRnZInXH9WziuG0j/VewRVASMBxJrvj3tYLe/CLyLps4Be1/lQU96pb7lj7BkGuTYKp9IgFrpTObkByrh2WSEMFcX1+nu435zalccB5m1ZHRubMrWS/cZhPE/v0AZSN5YDCyRbbK1q0JnMlv6WryZpQaxD4VB/UFEN9XZjQstbSL61niOa3Ktm42ZZTXwQfS5lQQmmMZTGsUxsDmUaitErQ4CUt91pCyiv0YFl4+2zvljwnUZhdnrF72ZtBPJdt6oYJOryx4ULyIgXl4Ta2CkTiMoklJQzTZ1XLYqBfpcuc5fDNMW6Joz33t/jLlhUnZbHbXJiPm0nxwC+Ezkjfjo9AnP1k8vQq1nJHwpaNX0+3XOmjnB8bzCUTbQI7gLvzoqcnf/mku/PZg96fbrd0YbUx+m/5F1AdqlssqpSQ+EUkm390kwugKm0QsIgDRh6d4aKuJeWCJhrYa/d4vVOpZWYJQln+sajjnyMOOMGlsg7KuCKhuVoIFVhs2vA2rtg8UWIQnlTuQolcwXfsI7E8EgotkWNFVCegwOlQVuN7uQPSLWLADg0C5Elv/LqatPfsjW9WJEN9jdugAiX4TcqZZEdG8jI+bxkcfApGI8Y9v/mKj+puIvGfLscpxvVthPDjxYBabsM=","translations":{"en":{"changelog":"### Added — Roster Self-Service GA (`DC-AZC-ROSTER-GA-1`)\n\n- **N-week rotation patterns** (1–4): CRUD, per-employee assign, forward-only anchors, suggest-fill preview/confirm with period mutex\n- **Soll facade** (`EffectiveTargetHoursFacade` v1) for ArbeitszeitCheck opt-in; sealed months ignore live drift\n- **Peer Team week** (default off), **bilateral swap** path sharing planner CAS apply, **preferences** (Früh/Spät bands), **hard blackouts**\n- **Today board** (“Wer ist wo?”) planner-only; **Dienst & Team** settings section (Bachus first-paint toggles)\n- **Push quiet hours** with bounded queue (200/user, 24h TTL); legacy companies default **off**, new companies **on**\n- **ICS** Mobile create/copy/rotate + global IP spray rate limit; Duty Mobile Bachus tabs Heute · Woche · Team\n- Security: IDOR on peer/Today/blackouts/swaps; no preference free-text; ICS token never logged\n\n### Security / architecture\n\n- Swap/bilateral apply is a single Duty DB transaction + assignment version CAS\n- Suggest confirm all-or-nothing under `dc_period_locks`\n- Quiet push queue bounded (Zeus FM-QH-01)\n- Cross-app: read-only facade only — no shared transactions / no AZC SQL on `dc_*`"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTAxLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-01.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTAyLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-02.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTAzLnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-03.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTA0LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-04.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTA1LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-05.png"},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2FTb2Z0d2FyZUJ5RGVzaWduUmVwb3NpdG9yeS9uZXh0Y2xvdWQtZHV0eWNoZWNrL3JlZnMvaGVhZHMvbWFzdGVyL3NjcmVlbnNob3RzL2R1dHljaGVjay1zY3JlZW5zaG90LTA2LnBuZw==","smallThumbnail":"https://raw.githubusercontent.com/aSoftwareByDesignRepository/nextcloud-dutycheck/refs/heads/master/screenshots/dutycheck-screenshot-06.png"}],"videos":[],"translations":{"en":{"name":"DutyCheck","summary":"Publish duty rosters without spreadsheet chaos — conflicts checked on your Nextcloud","description":"# Plan shifts. Catch conflicts. Publish with a trail.\n\nDutyCheck builds duty rosters inside your self-hosted Nextcloud. Open a planning period, assign people to locations, see hard blocks and soft warnings while you edit — then publish, close and keep a snapshot when someone asks who was on duty.\n\n**Free web app** (AGPL-3.0-or-later).\n\n## Why teams install it\n\n- **Edit with confidence** — overlaps, understaffing, short breaks and period totals surface before you publish\n- **A flow everyone understands** — open → published → closed (with reopen); conflict thresholds freeze when the period is created\n- **Fill faster** — employee×day grid and list, shift templates, bulk fill, printable roster with integrity hash\n- **Staff self-service** — my roster, absences, acknowledge, claim open shifts, swap requests, per-person iCal feed\n- **Prove what was planned** — snapshots with hash chain, period audit trail, Activity and Notifications\n- **Stay scoped** — planner vs employee roles, optional location scope, optional companies/workspaces\n- **Optional ArbeitszeitCheck** — mirror absences for conflict checks (off until you enable it; DutyCheck never writes back)\n\n## Clear limits\n\n- HR CSV exports minutes — not salaries.\n- Audit entries are append-only.\n- Conflict checks are ArbZG-oriented and configurable — not a legal certification.\n- Declared databases: MySQL and PostgreSQL.\n\n## Feedback welcome\n\nWe improve this app with real-world use. Bug reports, rough edges, and ideas help — open a GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) or write to info@software-by-design.de. Your feedback directly shapes what we build next.\n\n## Requirements\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL or PostgreSQL"},"fr":{"name":"DutyCheck","summary":"Plannings de service clairs, sans conflits et prêts pour l'audit — intégrés à votre Nextcloud","description":"# DutyCheck — des plannings de service sur lesquels votre équipe peut compter\n\nMarre des tableurs qui deviennent obsolètes dès la publication ? DutyCheck intègre la **planification des équipes dans Nextcloud** : un seul endroit pour les plannings, les absences et la traçabilité quand quelqu'un demande *« qui était de service cette nuit-là ? »*\n\nInstallez l'application, ajoutez vos collaborateurs et lieux, ouvrez une période de planification et commencez à affecter les postes — l'interface est **simple dès le premier jour** et **stricte là où cela compte** (les conflits et règles de cycle de vie sont appliqués côté serveur, pas de mémoire).\n\n## Pourquoi les équipes essaient DutyCheck\n\n- **Voir les problèmes avant de publier** — chevauchements et conflits de règles apparaissent pendant l'édition, pas après\n- **Un flux que tout le monde comprend** — ouvert → publié → clôturé, avec des états clairs\n- **Self-service pour le personnel** — les comptes liés consultent leur planning, demandent des absences et s'abonnent à un flux calendrier\n- **Prêt pour l'audit** — instantanés et journal d'activité pour prouver ce qui était planifié et quand cela a changé\n- **Conçu pour le terrain** — responsive du téléphone au bureau ; interface visant **WCAG 2.1 AA**\n\n## Idéal pour\n\nRotations médicales, couverture de sites, événements, logistique, commerce, astreintes — partout où **personnes, lieux et horaires** doivent s'aligner sans approximation.\n\n## Optionnel : ArbeitszeitCheck\n\nAvec **ArbeitszeitCheck**, DutyCheck peut refléter les absences automatiquement (intégration optionnelle, désactivée par défaut).\n\n## Prérequis\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL ou PostgreSQL\n\n## Retours bienvenus\n\nNous améliorons cette app grâce à votre usage réel. Bugs, frottements et idées aident — ouvrez une GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) ou écrivez à info@software-by-design.de. Vos retours façonnent directement la suite."},"da":{"name":"DutyCheck","summary":"Klare, konfliktfri vagtplaner med revisionsspor — direkte i din Nextcloud","description":"# DutyCheck — vagtplaner dit team faktisk kan stole på\n\nTræt af regneark, der er forældede, så snart du offentliggør? DutyCheck bringer **vagtplanlægning ind i Nextcloud**: ét sted til vagtplaner, fravær og dokumentation, når nogen spørger *« hvem var på vagt den nat? »*\n\nInstaller appen, tilføj medarbejdere og lokationer, åbn en planlægningsperiode, og begynd at tildele vagter — grænsefladen er **enkel fra dag ét** og **streng, hvor det betyder noget** (konflikter og livscyklusregler håndhæves på serveren, ikke i hukommelsen).\n\n## Derfor prøver teams DutyCheck\n\n- **Se problemer før offentliggørelse** — overlappende vagter og politik-konflikter vises under redigering, ikke bagefter\n- **En arbejdsgang alle forstår** — åben → offentliggjort → lukket, med tydelige tilstande\n- **Selvbetjening for medarbejdere** — linkede konti kan se vagtplan, anmode om fravær og abonnere på kalenderfeed\n- **Klar til revision** — øjebliksbilleder og aktivitetslog, når du skal dokumentere plan og ændringer\n- **Bygget til virkelige enheder** — responsiv fra telefon til desktop; mål **WCAG 2.1 AA**\n\n## Passer særligt godt til\n\nSundhedsvagter, driftsdækning, events, logistik, detailhandel, vagthold — overalt hvor **mennesker, steder og tid** skal passe uden gætteri.\n\n## Valgfrit: ArbeitszeitCheck\n\nMed **ArbeitszeitCheck** kan DutyCheck spejle fravær automatisk (integration er valgfri og slået fra, indtil du aktiverer den).\n\n## Feedback er velkommen\n\nVi forbedrer denne app med brug i praksis. Fejlrapporter, friktioner og idéer hjælper — åbn et GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) eller skriv til info@software-by-design.de. Jeres feedback former direkte det, vi bygger næste gang.\n\n## Krav\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL eller PostgreSQL"},"es":{"name":"DutyCheck","summary":"Planificaciones de turnos claras, sin conflictos y listas para auditoría — integradas en tu Nextcloud","description":"# DutyCheck — planificaciones de turnos en las que tu equipo puede confiar\n\n¿Cansado de hojas de cálculo que quedan obsoletas al publicar? DutyCheck lleva la **planificación de turnos a Nextcloud**: un solo lugar para cuadrantes, ausencias y el registro cuando alguien pregunta *« ¿quién estaba de guardia esa noche? »*\n\nInstálala, añade personas y ubicaciones, abre un periodo de planificación y empieza a asignar turnos — la interfaz es **sencilla desde el primer día** y **estricta donde importa** (conflictos y reglas de ciclo de vida se aplican en el servidor, no de memoria).\n\n## Por qué los equipos prueban DutyCheck\n\n- **Ver problemas antes de publicar** — solapamientos y conflictos de normas aparecen al editar, no después\n- **Un flujo que todos entienden** — abierto → publicado → cerrado, con estados claros\n- **Autoservicio para el personal** — cuentas vinculadas ven su cuadrante, solicitan ausencias y se suscriben a un feed de calendario\n- **Listo para auditoría** — instantáneas y registro de actividad para demostrar qué se planificó y cuándo cambió\n- **Hecho para dispositivos reales** — responsive de móvil a escritorio; interfaz orientada a **WCAG 2.1 AA**\n\n## Encaja especialmente en\n\nRotaciones sanitarias, cobertura de instalaciones, eventos, logística, comercio, guardias — donde **personas, lugares y horarios** deben cuadrar sin conjeturas.\n\n## Opcional: ArbeitszeitCheck\n\nCon **ArbeitszeitCheck**, DutyCheck puede reflejar ausencias automáticamente (integración opcional, desactivada hasta que la habilites).\n\n## Comentarios bienvenidos\n\nMejoramos esta app con el uso real. Informes de errores, fricciones e ideas ayudan — abra un GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) o escriba a info@software-by-design.de. Su feedback da forma directa a lo que construimos después.\n\n## Requisitos\n\n- Nextcloud 32–35\n- PHP 8.2–8.5\n- MySQL o PostgreSQL"},"it":{"name":"DutyCheck","summary":"Turni chiari, senza conflitti e pronti per l'audit — integrati nella tua Nextcloud","description":"# Pianifica i turni. Scopri i conflitti. Pubblica con una traccia.\n\nDutyCheck costruisce i turni nella vostra Nextcloud auto-ospitata. Aprite un periodo di pianificazione, assegnate le persone alle sedi, vedete blocchi rigidi e avvisi soft mentre modificate — poi pubblicate, chiudete e conservate uno snapshot quando qualcuno chiede chi era di turno.\n\n**Web app gratuita** (AGPL-3.0-or-later). App associate: https://nextcloud.software-by-design.de/\n\n## Perché i team lo installano\n\n- **Modificate con sicurezza** — sovrapposizioni, sottorganico, pause brevi e totali del periodo emergono prima di pubblicare\n- **Un flusso che tutti capiscono** — aperto → pubblicato → chiuso (con riapertura); le soglie di conflitto si bloccano quando il periodo viene creato\n- **Compilate più velocemente** — griglia dipendente×giorno e lista, template dei turni, compilazione in blocco, roster stampabile con hash di integrità\n- **Self-service per il personale** — il mio roster, assenze, conferma, richiesta dei turni aperti, richieste di scambio, feed iCal per persona\n- **Dimostrate cosa è stato pianificato** — snapshot con catena hash, audit trail del periodo, Activity e Notifications\n- **Rimanere nel perimetro** — ruoli di pianificatore vs dipendente, scope di località opzionale, aziende/ambienti opzionali\n- **ArbeitszeitCheck opzionale** — rispecchia le assenze per i controlli dei conflitti (disattivato finché non lo abilitate; DutyCheck non scrive mai indietro)\n\n## Limiti chiari\n\n- Le esportazioni HR in CSV esportano minuti — non gli stipendi.\n- Le voci di audit sono append-only.\n- I controlli dei conflitti sono orientati ad ArbZG e configurabili — non una certificazione legale.\n- Database dichiarati: MySQL e PostgreSQL.\n\n## Feedback benvenuto\n\nMiglioriamo questa app con l’uso reale. Segnalazioni di bug, punti deboli e idee aiutano — aprite una GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) o scrivete a info@software-by-design.de. Il vostro feedback guida direttamente ciò che costruiamo dopo.\n\n## Requisiti\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL o PostgreSQL"},"de":{"name":"DutyCheck","summary":"Dienstpläne veröffentlichen ohne Tabellenchaos — Konflikte geprüft in Ihrer Nextcloud","description":"# Schichten planen. Konflikte sehen. Mit Nachweis veröffentlichen.\n\nDutyCheck baut Dienstpläne in Ihrer selbst gehosteten Nextcloud. Periode öffnen, Personen Standorten zuweisen, harte Sperren und weiche Warnungen schon beim Bearbeiten sehen — dann veröffentlichen, abschließen und einen Snapshot behalten, wenn jemand fragt, wer im Dienst war.\n\n**Kostenlose Web-App** (AGPL-3.0-or-later).\n\n## Warum Teams es einsetzen\n\n- **Sicher bearbeiten** — Überlappungen, Unterbesetzung, zu kurze Pausen und Periodensummen vor dem Veröffentlichen\n- **Klarer Ablauf** — Offen → Veröffentlicht → Abgeschlossen (mit Wiederöffnen); Konfliktschwellen beim Anlegen eingefroren\n- **Schneller füllen** — Raster und Liste, Schichtvorlagen, Massenfüllung, druckbarer Plan mit Integritätshash\n- **Self-Service** — Mein Dienstplan, Abwesenheiten, Bestätigung, offene Schichten, Tausch, iCal-Feed\n- **Nachweis behalten** — Snapshots mit Hash-Kette, Perioden-Audit, Activity und Benachrichtigungen\n- **Zugriff steuern** — Planer- vs. Mitarbeiter-Rollen, optionaler Standort-Scope, optionale Firmen/Workspaces\n- **Optional ArbeitszeitCheck** — Abwesenheiten für Konflikte spiegeln (standardmäßig aus; DutyCheck schreibt nicht zurück)\n\n## Klare Grenzen\n\n- HR-CSV exportiert Minuten — keine Gehälter.\n- Audit-Einträge sind nur anhängbar.\n- Konfliktprüfungen sind ArbZG-orientiert und konfigurierbar — keine Rechtszertifizierung.\n- Deklarierte Datenbanken: MySQL und PostgreSQL.\n\n## Feedback willkommen\n\nWir verbessern diese App mit Rückmeldungen aus der Praxis. Fehlerberichte, Stolpersteine und Ideen helfen — öffnen Sie ein GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) oder schreiben Sie an info@software-by-design.de. Ihr Feedback prägt direkt, was wir als Nächstes bauen.\n\n## Voraussetzungen\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL oder PostgreSQL"},"nl":{"name":"DutyCheck","summary":"Duidelijke, conflictvrije dienstroosters met audittrail — geïntegreerd in uw Nextcloud","description":"# Diensten plannen. Conflicten ontdekken. Publiceren met een spoor.\n\nDutyCheck bouwt dienstroosters in uw zelf-gehoste Nextcloud. Open een planperiode, wijs mensen aan locaties toe, zie harde blokkades en zachte waarschuwingen terwijl u bewerkt — publiceer vervolgens, sluit af en bewaar een snapshot wanneer iemand vraagt wie er dienst had.\n\n**Gratis webapp** (AGPL-3.0-or-later).\n\n## Waarom teams het installeren\n\n- **Bewerk met vertrouwen** — overlappen, onderbezetting, korte pauzes en periodetotalen worden zichtbaar vóór u publiceert\n- **Een flow die iedereen begrijpt** — open → gepubliceerd → gesloten (met heropenen); conflictdrempels worden bevroren zodra de periode wordt aangemaakt\n- **Sneller invullen** — rooster medewerker×dag en lijst, diensttemplates, bulk invullen, afdrukbaar dienstrooster met integriteits-hash\n- **Selfservice voor personeel** — mijn rooster, afwezigheden, bevestigen, open diensten claimen, ruilverzoeken, iCal-feed per persoon\n- **Bewijs wat er gepland was** — snapshots met hashketen, period-audittrail, Activity en Notifications\n- **Binnen de scope blijven** — planner- vs. medewerkerrollen, optionele locatie-scope, optionele bedrijven/werkomgevingen\n- **Optioneel ArbeitszeitCheck** — spiegel afwezigheden voor conflictcontroles (uitgeschakeld tot u het activeert; DutyCheck schrijft nooit terug)\n\n## Duidelijke grenzen\n\n- HR-CSV-exports bevatten minuten — geen salarissen.\n- Auditvermeldingen zijn append-only.\n- Conflictcontroles zijn ArbZG-georiënteerd en configureerbaar — geen juridische certificering.\n- Gedeclareerde databases: MySQL en PostgreSQL.\n\n## Feedback welkom\n\nWe verbeteren deze app met gebruik in de praktijk. Bugmeldingen, struikelblokken en ideeën helpen — open een GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) of mail naar info@software-by-design.de. Uw feedback bepaalt mede wat we als volgende bouwen.\n\n## Vereisten\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL of PostgreSQL"},"pl":{"name":"DutyCheck","summary":"Przejrzyste harmonogramy dyżurów bez konfliktów, gotowe do audytu — w Twoim Nextcloud","description":"# Planuj zmiany. Wykrywaj konflikty. Publikuj z historią.\n\nDutyCheck tworzy grafiki zmian w Państwa samodzielnie hostowanej Nextcloud. Otwórz okres planowania, przypisz osoby do lokalizacji, zobacz twarde blokady i miękkie ostrzeżenia podczas edycji — a następnie opublikuj, zamknij i zachowaj snapshot, gdy ktoś zapyta, kto był na dyżur.\n\n**Darmowa aplikacja webowa** (AGPL-3.0-or-later). Aplikacje towarzyszące: https://nextcloud.software-by-design.de/\n\n## Dlaczego zespoły to instalują\n\n- **Edytuj z pewnością** — nakładanie się zmian, niedobór obsady, krótkie przerwy i sumy okresu pojawiają się zanim opublikujesz\n- **Proces, który rozumie każdy** — otwarte → opublikowane → zamknięte (z ponownym otwarciem); progi konfliktów zostają zamrożone, gdy okres jest tworzony\n- **Wypełniaj szybciej** — siatka pracownik×dzień i lista, szablony zmian, wypełnianie zbiorcze, drukowany grafik z hashem integralności\n- **Self-service dla personelu** — mój grafik, nieobecności, potwierdzenia, zgłaszanie otwartych zmian, prośby o zamianę, iCal-feed dla każdej osoby\n- **Udowodnij, co zaplanowano** — snapshoty z łańcuchem hash, ścieżka audytu okresu, Activity oraz Notifications\n- **Pozostań w zakresie** — role planisty vs pracownika, opcjonalny zakres lokalizacji, opcjonalne firmy/środowiska pracy\n- **Opcjonalny ArbeitszeitCheck** — odbija nieobecności do kontroli konfliktów (wyłączony do czasu włączenia; DutyCheck nigdy nie zapisuje z powrotem)\n\n## Jasne ograniczenia\n\n- Eksporty HR w CSV zawierają minuty — nie pensje.\n- Wpisy audytu są append-only.\n- Kontrole konfliktów są zorientowane na ArbZG i konfigurowalne — nie jest to certyfikacja prawna.\n- Deklarowane bazy danych: MySQL i PostgreSQL.\n\n## Feedback mile widziany\n\nUlepszamy tę aplikację dzięki realnemu użyciu. Zgłoszenia błędów, tarcia i pomysły pomagają — otwórz GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) lub napisz na info@software-by-design.de. Wasza opinia bezpośrednio kształtuje to, co budujemy dalej.\n\n## Wymagania\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL lub PostgreSQL"},"sv":{"name":"DutyCheck","summary":"Tydliga, konfliktfria schema med revisionsspår — inbyggt i din Nextcloud","description":"# Planera pass. Fånga konflikter. Publicera med en spårbarhet.\n\nDutyCheck bygger passlistor i er självhostade Nextcloud. Öppna en planeringsperiod, tilldela personer till platser, se hårda spärrar och mjuka varningar medan ni redigerar — publicera sedan, stäng perioden och behåll en snapshot när någon frågar vem som var på tjänst.\n\n**Gratis webbapp** (AGPL-3.0-or-later).\n\n## Varför team installerar den\n\n- **Redigera med självförtroende** — överlappningar, underbemanning, korta pauser och periodens totalsummor syns innan ni publicerar\n- **Ett flöde alla förstår** — öppen → publicerad → stängd (med återöppning); konflikttrösklar fryses när perioden skapas\n- **Fyll i snabbare** — rutnät anställd×dag och lista, passmallar, massfyllning, utskrivbar passlista med integritetshash\n- **Self-service för personalen** — min passlista, frånvaro, bekräfta, begär öppna pass, byt-förfrågningar, iCal-feed per person\n- **Bevisa vad som planerades** — snapshots med hash-kedja, periodens revision-spår, Activity och Notifications\n- **Håll dig inom scope** — planerarroll vs medarbetarroll, valfri plats-scope, valfria företag/arbetsytor\n- **Valfritt ArbeitszeitCheck** — spegla frånvaro för konfliktkontroller (avstängt tills ni aktiverar det; DutyCheck skriver aldrig tillbaka)\n\n## Tydliga gränser\n\n- HR-CSV-exporten innehåller minuter — inte löner.\n- Auditposter är append-only.\n- Konfliktkontroller är ArbZG-orienterade och konfigurerbara — inte en juridisk certifiering.\n- Deklarerade databaser: MySQL och PostgreSQL.\n\n## Feedback välkomnas\n\nVi förbättrar den här appen med verklig användning. Felrapporter, friktioner och idéer hjälper — öppna en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) eller skriv till info@software-by-design.de. Er feedback formar direkt det vi bygger härnäst.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"nb":{"name":"DutyCheck","summary":"Klare, konfliktfrie vaktplaner med revisjonsspor — direkte i din Nextcloud","description":"# Planlegg skift. Oppdag konflikter. Publiser med et spor.\n\nDutyCheck bygger skiftplaner i deres selvhostede Nextcloud. Åpne en planleggingsperiode, tilordne personer til lokasjoner, se harde sperrer og myke advarsler mens dere redigerer — og publiser deretter, lukk og behold et snapshot når noen spør hvem som var på vakt.\n\n**Gratis nettapp** (AGPL-3.0-or-later). Følgeapper: https://nextcloud.software-by-design.de/\n\n## Hvorfor team installerer den\n\n- **Rediger med trygghet** — overlapp, underbemanning, korte pauser og periodetotaler vises før dere publiserer\n- **Et flyt alle forstår** — åpen → publisert → lukket (med gjenåpning); konfliktterskler fryses når perioden opprettes\n- **Fyll raskere** — ansatt×dag-rutenett og liste, skiftemaler, masseutfylling, utskrivbar skiftplan med integritetshash\n- **Self-service for ansatte** — min skiftplan, fravær, bekreftelser, hent åpne skift, bytteforespørsler, iCal-feed per person\n- **Bevis hva som ble planlagt** — snapshots med hash-kjede, periodens revisjonsspor, Activity og Notifications\n- **Hold dere innenfor scope** — planlegger- vs ansattroller, valgfri lokasjonsscope, valgfri firmaer/arbeidsområder\n- **Valgfritt ArbeitszeitCheck** — speil fravær for konfliktkontroller (av til dere aktiverer det; DutyCheck skriver aldri tilbake)\n\n## Klare grenser\n\n- HR-CSV-eksportene inneholder minutter — ikke lønn.\n- Audit-oppføringer er append-only.\n- Konfliktkontroller er ArbZG-orienterte og kan konfigureres — ikke en juridisk sertifisering.\n- Deklarerte databaser: MySQL og PostgreSQL.\n\n## Feedback er velkommen\n\nVi forbedrer denne appen med bruk i praksis. Feilrapporter, friksjon og idéer hjelper — åpne en GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) eller skriv til info@software-by-design.de. Tilbakemeldingen deres former direkte det vi bygger videre.\n\n## Krav\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL eller PostgreSQL"},"pt":{"name":"DutyCheck","summary":"Publique escalas sem caos de planilhas — conflitos verificados no seu Nextcloud","description":"# Planeie turnos. Veja conflitos. Publique com rasto.\n\nO DutyCheck cria escalas de serviço na Nextcloud que já alojam. Abra um período, atribua pessoas a locais, veja bloqueios duros e avisos suaves enquanto edita — depois publique, feche e guarde um snapshot quando alguém perguntar quem estava de serviço.\n\n**Aplicação web gratuita** (AGPL-3.0-or-later).\n\n## Porque as equipas instalam\n\n- **Editar com confiança** — sobreposições, subdimensionamento, pausas curtas e totais do período antes de publicar\n- **Um fluxo que todos compreendem** — Aberto → Publicado → Fechado (com reabrir); limiares de conflito congelados ao criar\n- **Preencher mais depressa** — grelha e lista, modelos de turno, preenchimento em massa, escala imprimível com hash\n- **Self-service** — a minha escala, ausências, confirmação, turnos abertos, trocas, feed iCal\n- **Provar o planeado** — snapshots com cadeia de hash, auditoria do período, Activity e Notifications\n- **Manter o âmbito** — papéis planeador vs. colaborador, âmbito de local opcional, empresas opcionais\n- **ArbeitszeitCheck opcional** — espelhar ausências para conflitos (desligado até ativar; DutyCheck nunca escreve de volta)\n\n## Limites claros\n\n- Exportações HR CSV são minutos — não salários.\n- Entradas de auditoria são apenas acrescentáveis.\n- Verificações de conflito são orientadas para ArbZG e configuráveis — não uma certificação legal.\n- Bases de dados declaradas: MySQL e PostgreSQL.\n\n## Feedback bem-vindo\n\nMelhoramos este app com o uso real. Relatórios de bugs, atritos e ideias ajudam — abra um GitHub Issue (https://github.com/aSoftwareByDesignRepository/nextcloud-dutycheck/issues) ou escreva para info@software-by-design.de. O seu feedback molda diretamente o que construímos a seguir.\n\n## Requisitos\n\n- Nextcloud 32–35 · PHP 8.2–8.5 · MySQL ou PostgreSQL"}},"isFeatured":false,"authors":[{"name":"Software by Design GbR","mail":"info@software-by-design.de","homepage":"https://nextcloud.software-by-design.de"}],"ratingRecent":0.5,"ratingOverall":0.5,"ratingNumRecent":0,"ratingNumOverall":0,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEBDCCAuwCAhNHMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMjYwNTIxMTUxNTAxWhcNMzYwODI2MTUxNTAxWjAUMRIwEAYD\nVQQDDAlkdXR5Y2hlY2swggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCn\nWEE+B5fAWUDUcINdliOsuP7J3vd/roctHn3e0TBND7r6yrwLjxSQKYgNoWRAYJmC\njhDrZxv6kFyf09XtdABaEvKo4EZAUS3trqIlfBCbz3PLtVHiTB9NbuNhk4XssBAf\nI2S3FXLj3Ygx88F/8I1T2n2XJ63uQBeYFjCf1uwx8wbaIv+mbfk3+uhkurCNTiav\n3IsT8RM5rSkMApiShhPQOlgaM43d+TzxJG1dXwMTf3e8gZz5XH80fiKyP6gNfPLy\njbiNpG9WBCL/DsBWXL0pn+jUYO4lnyRrOS977Mqk1luOJGsPFWXaLSVOSvrdJDHd\nR968uUoXtr8TcD9PxNE6fNd3Mhu28sGcn1V1QFtGTWonkYp8wDgnZPqJHw37Need\nr442wrKbwmJqN6t+MSFklBLB/h0ExD1QBFNvRtpV+BVNseoK4spNszWvlXtfLFxx\n3DwFPeg7dRqcHuD1BGLgG/LwD8dynwamKdNndbtF343vVVHKIfzcWpsua39MYO3W\nSxwQBRN0lmlDGWYbypdNJzp+aSZzUDG/SxpqJDH7ylpBTaWtRiVJEiXY7/bZ+AXX\n2CqYUad//oK5rvqkfODiPNBRVX7pniRpRb8Y7Y3lAJgE/4wpGzeYsfDVQCAjY76y\nL/rg+w17xKDurZNOgawDQSzrkBbCizdj9RgaS+lVCwIDAQABMA0GCSqGSIb3DQEB\nCwUAA4IBAQB4mchRZJvbcmIifarIimDO4nY+KO2F3/fE0Z21O27ppHqvk3dH6j6X\nGdy57dcmDrGYMOuFHRI5j+1Vlbn419xXqx2aG+cs/tojxdvaPyaRSC/IS7hhqz7B\noRagvxhPj46QRWyHmBA10OO+G9AWtlVlwezR+LbFiZ27oazTqNZKUNdlBMgmA/K2\nT6lEw6/Zk+f3ipa0o9KSVukNOWGkhGJa324EQcgytizCyzSQeF+blffSsVDDVvcB\n3z8x88iJSys4bmNqetVdiOnqysrCCr7DFMlSS2T1Ck8I6t2QkcBovoyrj6r20GtU\nFH87CRYAmFQSgkEOElRTaAnCn6/CeBOl\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"},{"id":"cospend","categories":["organization","tools"],"userDocs":"https://github.com/julien-nc/cospend-nc/blob/main/docs/user.md","adminDocs":"https://github.com/julien-nc/cospend-nc/blob/main/docs/admin.md","developerDocs":"https://github.com/julien-nc/cospend-nc/blob/main/docs/dev.md","issueTracker":"https://github.com/julien-nc/cospend-nc/issues","website":"https://github.com/julien-nc/cospend-nc","created":"2019-02-14T14:18:56.089234Z","lastModified":"2026-10-20T14:25:53.226793Z","releases":[{"version":"4.3.0","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/cospend-nc/releases/download/v4.3.0/cospend-4.3.0.tar.gz","created":"2026-10-20T14:25:53.216618Z","licenses":["agpl"],"lastModified":"2026-10-20T14:25:53.544914Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"EKTGpct9Dfcri5XLvhQaBOINujVJTJs6KVZTLM/n3fO9rM5dIwQ38FRCkdh6bn/LJRdu3JH8sYUXnsLUEc59NoUmJk0C5/MGwelPmzUvlkWeSEqK71Sgs/Tt/iWxSMnxfaffTcFDDY2Cczh/08nT6i2RjKEP8m23AGhSKoG9ZLXDC7mx/Lyb3qw5IOgqmQhjq38ZhenusCjtGiTSO+6ZAJITkCIbTr5jIpU6x20EgEUqAufFGqltxmfq0z+/zjLGg3hkKTlYbcv+dgoHxlb+2+l29DlC46zifpB/K/n9IyusF/oy1poMG7QnbfxYmHPGVXIW0r+VGxIJvqaAbAay5/TZ65tIGQTRfU6Lg4abPRXLJK3f+SLx9aOQ8DPVnfSU9hyckU3HflRatl7lVUuK+udbi6LvCeZvscNEWzEMc4BExnQX/z7D6oPefYTGhPbOv6k5WYV54TWMU0HRn2pLtESsYvEEE5ZyfxX72NORS/XQKa23r8HSjQNalKS+MmIinlkw66fehxgSfosHRIpM1AS00lS7a0eRA7skdarThJxLUnrX/yjXY5TDpwQurs2rbj8LAe/ekFPvo1T+u42D44NC4UIoRqjfy7LBELUYEXJk03KuC+e9/X3tUlazNipbfkW4RsEdsgdqdxiGjCYszf1oHWvJwQ4gQhGwqDdLcj4=","translations":{"en":{"changelog":"### Changed\n\n- Update npm and composer dependencies @julien-nc\n\n### Fixed\n\n- Do not expose share passwords anywhere and do not expose the project owner's user ID for shares above the caller's access level @julien-nc (credits to Jahn Kohlhas)\n- Enforce access permissions for local project IDs containing '@' @julien-nc\n- Never return share passwords from `getPublicShares()` @julien-nc (credits to Jahn Kohlhas)\n- Fix `createBill()` failing due to a type mismatch when the payed-for ID is not a string, add a unit test @leafonthewind [#420](https://github.com/julien-nc/cospend-nc/pull/420)\n- Fix README.md links after the main branch rename @fwinn [#424](https://github.com/julien-nc/cospend-nc/pull/424)\n- Wrap the settlement options on narrow screens @AkshayRao27 [#427](https://github.com/julien-nc/cospend-nc/pull/427)"}},"signatureDigest":"sha512"},{"version":"4.1.3","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/cospend-nc/releases/download/v4.1.3/cospend-4.1.3.tar.gz","created":"2026-09-02T11:40:35.326134Z","licenses":["agpl"],"lastModified":"2026-09-02T11:40:35.666965Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"mnQNcvf3ExPzUpW9TK0KyIWziyUy4XZb00R/ctwjat/ybRpDL2q8SWeYj7RIggMvbp35IpL5NEIoycjpTj4k78HZ1ZfmRrAGj/qjXXN1vT4Vfg94nJuECUKnk65LUp/DwgVF6wtVkhMYvuOuZc8+err5l5Wx1DdQZ4o20poLMQLphXu2k6ZJ6c32PCCutMZpfnw9C3KfTsI4GJvFyHJMrJbzcxjY8nNnKHT5LvzUfTWJF5HVxHbqHk0aby1rC18VRP/ER1LzkIAbjTPtvsgwXyMzy4klQnub4aubAW8jLlFi8lFm+hsDqjyU89WW8iDSpkN9QlLHspzBoCtMwYODWqVVwsPcmDIA7OL2LStSvVWYLu2PeoUChCpziXrGnV/smfpJ27eJ0kpZZ/GEWLnh6QfVQuuWVM7ziKW/EdYftclucfcLROWRb7rchpdlNk2fbjwV5e5cqN4ssF2EWPFSY6VnD9MMfdsiSOZE4nUlDPXu9OxT6CY1FGJoAa6g+18KKHMnGGvDCTAo5GM6n/WTitloytiO9U6S2QDc1RN+nv+8ahkL3WbQVWERgbjimib+qiObywncXor1dytuZ6Zn94NyBDi7NTW9Rip2mRvBRzSPTHCuKltkxkI/3CYrLsbhN3ierKF7A64jadc7jsGWN5iE2ttPjDG1tghPgTSPc/8=","translations":{"en":{"changelog":"### Changed\n\n- Improve PHPUnit setup to display notices and keep tests compatible with newer PHPUnit mock expectations @julien-nc\n\n### Fixed\n\n- Preserve numerical project ID strings instead of casting them to integers in project handling @julien-nc [#414](https://github.com/julien-nc/cospend-nc/issues/414)"}},"signatureDigest":"sha512"},{"version":"4.1.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <37.0.0","minIntSize":32,"download":"https://github.com/julien-nc/cospend-nc/releases/download/v4.1.2/cospend-4.1.2.tar.gz","created":"2026-09-01T13:01:10.112745Z","licenses":["agpl"],"lastModified":"2026-09-01T13:01:10.426601Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=36","signature":"IsoS5O8tYs0emFfLcv480RCZn6Q5twhJ89pkYcQemMFLY8T70Omz0lS1Iw8Jx92jD7UNoPmiDEQe6ftmWeiWLN3pKAIEQtfKuFkN0IvisXF2iDDlU671yTfuqVh7TedjOHZrg07lEnmZrLBK59HrIhRIlQySCAZfism/sd8zb9wvif5PQ5y8e6by1s1jQy2GUpOd8i+dq8UyNt06b1VwEyxpeCm2Lh8YEeBog1VMiyXMsMzZkn1Z47/RRLqiC0EKcw/DvT9l8jwm28wSTSSYFxYHXJyFcDqqgIbf+WK+TPXLXpmvPI0yRstWalMIOzzcoJ45NA7h+6pHCZoIhbH1vweSb7R02jwXWuhbwDihxR22eJzXIvwy/ogOErVs59hdizp6hn+XC09P6KkWuDEutTg5Ar1VqbwboKFd0vTACRIUfSNjcZzL8pv/I3UmOO4Q9+utW1cA6prGn5lfDCfWW99A+Hf+SQ8YttO35sKunzt9Pi9fegRf+ak9f2nZ8BMqel/KkmV8edIj5RMRaqA8clHfm4f/Jv190bjBBxuXkqqmzm4rqi9WjSRR4VYXYlenzz517vqu614LKioRGRVes8soPiJyJXbqi5B4Lm2HazmihBPSlScWZCluHzhMRcrfuqXZUOkXYdgVCLaCGF43ItQOEWb22Uj7fFPq9gjQteU=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 36\n\n### Changed\n\n- **Breaking change** Improve the `occ cospend:export-project` command. Remove the second argument (file name). Added 2 new options to choose the storage export file name and the filesystem export file name @julien-nc\n- Refactor access level checks, move from API controller to service @julien-nc\n- Allow smaller status icons in avatars @julien-nc\n- Add link to Cowspent client app, add icon for clients @julien-nc\n- Migrate to REUSE for licensing compliance @julien-nc\n- Only import vuejs-smart-table where it's used @julien-nc\n\n### Fixed\n\n- Fix app icon, remove unused PNG so the app settings picks the SVG @julien-nc\n- Hide activity settings when Cospend is disabled for the current user (limit app to groups) @julien-nc [#404](https://github.com/julien-nc/cospend-nc/issues/404)\n- Reject paths containing '..' in API endpoints @julien-nc\n- Make moveBill stricter @julien-nc\n- Fix command execute method signature @julien-nc\n- Take new screenshots @julien-nc"}},"signatureDigest":"sha512"},{"version":"4.0.2","phpExtensions":[],"databases":[],"shellCommands":[],"phpVersionSpec":"*","platformVersionSpec":">=33.0.0 <36.0.0","minIntSize":32,"download":"https://github.com/julien-nc/cospend-nc/releases/download/v4.0.2/cospend-4.0.2.tar.gz","created":"2026-06-16T22:16:20.301736Z","licenses":["agpl"],"lastModified":"2026-06-16T22:16:20.727204Z","isNightly":false,"rawPhpVersionSpec":"*","rawPlatformVersionSpec":">=33 <=35","signature":"r4wKOgXsSVDWUouFD3ZpHY+32f2fbj3Uy049IZiD5gfpve84zgQlK+91+8NTmFmXDDjHL0zqIq0pobz10jSxAEj/wvIWVqqhmIrHugZCfiXPAQbv6LnshjRWUin10wasjctoEdsqdd6JGnwPe07A0C5tPn2XHW5bErX1WmmYrY0QKmVdR+WSwqgdpALY38g7hA6oOj/Ovtm2TU17Hs8DooTOZyXqyMKhV5FkXHRpki7qpX8t/ujSNTzqNDaxWNMnbxIX/4JceR54iv0Edd7chLzut9Sh17wVYVxTSOQGicAemPofbl79dl8Q6pt35Hiii/WvqhaMoE7JvcbcdsDtwDprXOcll+3QmgNLNaer2L4Wazo+ijfeR1Cne/xw9NVua+w6xCoVY9P/CAQI/M62uFZBphbu8c9gaHFaamo4D72xm+juqupt6fBH99mb+R0dl4fKBMTVgZRG3DnzzlSaEzOOa0QI8+77X6Y2igZEuaplebDZKoXMiQaFO5fE2WCSz6oGQrbp6lQLRXWf4C7N9EgpDnSF2ggyW6yfCgi+xzQqwTb5dfYdvVYJka+2TXItWFCpMupxowefxzZzU0/9E3l813S3ZstnUHovZXdgm7QcibP1FCfTk3/c2LPC/8KXvMAFVqXi7pRXXg3kgy+hTzNxTUA8gkC1ftvq/scdAF0=","translations":{"en":{"changelog":"### Added\n\n- Support for Nextcloud 35\n\n### Changed\n\n- Update duplicated bills to use current timestamp @AkshayRao27 [#398](https://github.com/julien-nc/cospend-nc/pull/398)\n- Add federation capability check @miaulalala [#389](https://github.com/julien-nc/cospend-nc/pull/389)\n\n### Fixed\n\n- Fix federation URL normalisation and pending shares @miaulalala [#388](https://github.com/julien-nc/cospend-nc/pull/388)\n- Fix import project ID, avoid empty project ID, add suffix on collision\n- Fix getting primary color, use capabilities\n- Delete shares to a user when it's deleted, early return in getUserMaxAccessLevel when the user does not exist (credits to @dizconnectz)\n- Get rid of IServerContainer::getDatabaseConnection that was removed\n- Get rid of IServerContainer::getActivityManager that was removed\n- Remove csp->allowEvalScript that was removed in Nextcloud 34"}},"signatureDigest":"sha512"}],"screenshots":[{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9jb3NwZW5kLW5jL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9jb3NwZW5kMS5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9jb3NwZW5kLW5jL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9jb3NwZW5kMi5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9jb3NwZW5kLW5jL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9jb3NwZW5kMy5qcGc=","smallThumbnail":""},{"url":"https://usercontent.apps.nextcloud.com/aHR0cHM6Ly9naXRodWIuY29tL2p1bGllbi1uYy9jb3NwZW5kLW5jL3Jhdy9tYWluL2ltZy9zY3JlZW5zaG90cy9jb3NwZW5kNC5qcGc=","smallThumbnail":""}],"videos":[],"translations":{"vi":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"bg":{"name":"Cospend","summary":"Инструмент за споделен бюджет","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend управлява бюджет за група/споделен бюджет. Вдъхновен е от великолепния [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nМожете да го използвате, когато споделят къща, когато отивате на почивка с приятели, винаги когато споделяте разходи с група хора.\n\nДава ви възможност да създавате проекти с членове и сметки. За всеки член се изчислява салдо от сметките по проекта. Салдата не представляват абсолютна сума парични средства на разположение на членовете, а по-скоро относителна информация, показваща дали даден член е похарчил повече от групата, отколкото групата е похарчила за нея/него, без значение точно кой е похарчил за кого. Така можете да виждате кой ръководи групата и кои са нейни членове. В крайна сметка можете да помолите за план за уреждане на сметките, който да Ви дава информация кои плащания да се извършат с цел възстановяване на салдата на членовете.\n\nЧленовете по проекта са независими от потребителите на Nextcloud. Проектите може да се споделят с други потребители на Nextcloud или посредством общественодостъпни хипервръзки.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) за Android се [предлага за F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) и в [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nВ момента в процес на разработка е [PayForMe](https://github.com/mayflower/PayForMe) за iOS!\n\nЧастните и общодостъпните APIs са документирани посредством [ инструмента за извличане Nextcloud OpenAPI](https://github.com/nextcloud/openapi-extractor/). Достъп до настоящата документация може да се получи директно в Nextcloud. Само трябва да инсталирате Cospend (>= v1.6.0) и да използвате [приложението OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer), за да преглеждате документацията на OpenAPI.\n\n## Функции\n\n* ✎ Създаване/редактиране/изтриване на проекти, членове, сметки, категории сметки, валути\n* ⚖ Проверявайте салдата на членовете\n* 🗠 Показвайте статистиката за проекта\n* ♻ Показвайте плана за уреждане на сметките\n* Местете сметки от едни проект в друг\n* Премествайте сметки в кошчето, преди реално да ги изтриете\n* Архивирайте старите проекти, преди да ги изтриете\n* 🎇 Автоматично създавайте сметки за възстановяване от плана за уреждане на сметките\n* 🗓 Създайте повтарящи се сметки (за деня/седмицата/месеца/годината)\n* 📊 По желание определете сума за всеки участник – за новите сметки\n* 🔗 Свържете личните файлове със сметките (снимка на физическа разписка например)\n* 👩 Общественодостъпни хипервръзки за хората извън Nextcloud (може да са защитени с парола)\n* 👫 Споделяне на проекти с ползватели/групи/кръгове на Nextcloud\n* 🖫 Импортиране/експортиране на проекти като csv (съвместими със csv файлове от IHateMoney и SplitWise)\n* 🔗 Генериране на хипервръзка/QR код за лесно добавяне на проекти в MoneyBuster\n* 🗲 Изпълнение на уведомления в Nextcloud и на поток на дейността\n\nТова приложение обичайно поддържа последните 2 или 3 от основните версии на Nextcloud.\n\nПриложението се разработва.\n\n🌍 Помогнете ни да преведем това приложение в Crowdin проекта [Nextcloud-Cospend/MoneyBuster ](https://crowdin.com/project/moneybuster).\n\n⚒ Проверете други начини за подкрепа в [насоките за принос](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Документация\n\n* [Документация за потребителя](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Документация за администратора](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Документация за разработчиците](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [ПРОМЕНИ](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [АВТОРИ](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Известни проблеми\n\n* Не ви прави богати\n\nВсяка обратна връзка ще бъде оценена.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"el":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\nΗ Android εφαρμογή του [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) είναι [διαθέσιμη στο F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) και στο [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Δυνατότητες\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nΑυτή η εφαρμογή είναι υπό ανάπτυξη.\n\n🌍 Βοηθήστε μας να μεταφράσουμε αυτή την εφαρμογή στο [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Τεκμηρίωση\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Γνωστά προβλήματα\n\n* It does not make you rich\n\nΟποιοδήποτε σχόλιο για τη βελτίωση της εφαρμογής θα εκτιμηθεί.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"de":{"name":"Cospend","summary":"Gemeinsame Budgetverwaltung","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend ist ein gemeinsamer Budget-Manager für Gruppen. [IHateMoney](https://github.com/spiral-project/ihatemoney/) diente hierbei als Vorbild.\n\nImmer wenn du Geld mit anderen teilst, z. B. in einer WG oder im Urlaub mit Freunden, kannst du diese App verwenden.\n\nDu kannst Projekte erstellen sowie Mitglieder und Ausgaben hinzufügen. Anhand der Ausgaben im Projekt wird für jedes Mitglied eine Bilanz erstellt. Bilanzen sind keine absolute Summe an Geld, die den Mitgliedern zur Verfügung steht, sondern eine relative Information, die anzeigt, ob ein Mitglied mehr für die Gruppe ausgegeben hat als die Gruppe für sie/ihn (unabhängig davon wer genau gezahlt hat). Somit ist ersichtlich, wer wem etwas schuldet. Letztendlich kannst du dir dann in der Abrechnung anzeigen lassen, welche Zahlungen zu leisten sind, um die Bilanzen der Mitglieder auszugleichen.\n\nProjektmitglieder sind unabhängig von Nextcloud Benutzern. Projekte können mit anderen Nextcloud-Nutzern oder mit öffentlichen Links geteilt werden.\n\nDer Android Client [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) ist [erhältlich auf F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) und im [Play Store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nDer iOS-Client [PayForMe](https://github.com/mayflower/PayForMe) wird aktuell noch entwickelt!\n\nDie privaten und öffentlichen APIs sind mit [der Nextcloud OpenAPI Extractor App](https://github.com/nextcloud/openapi-extractor/) dokumentiert. Diese Dokumentation kann direkt in Nextcloud aufgerufen werden. Installiere einfach Cospend (>= v1.6.0) und benutze die [OCS API Viewer App](https://apps.nextcloud.com/apps/ocs_api_viewer) um die OpenAPI-Dokumentation zu sehen.\n\n## Funktionen\n\n* ✎ Projekte, Mitglieder, Rechnungen, Rechnungskategorien, Währungen erstellen/bearbeiten/löschen\n* ⚖ Kontrolle der Mitgliederguthaben\n* 🗠 Projektstatistiken anzeigen\n* ♻ Anzeige des Abrechnungsplans\n* Rechnungen von einem Projekt zu einem anderen verschieben\n* Rechnungen in den Papierkorb verschieben, bevor sie tatsächlich gelöscht werden\n* Alte Projekte archivieren, bevor sie gelöscht werden\n* 🎇 Automatisch Erstattungsrechnungen aus dem Abrechnungsplan erstellen\n* 🗓 Wiederkehrende Rechnungen erstellen (Tag/Woche/Monat/Jahr)\n* 📊 Optionaler benutzerdefinierter Betrag für jedes Mitglied in neuen Rechnungen bereitstellen\n* 🔗 Verknüpfen Sie persönliche Dateien mit Rechnungen (z. B. ein Bild einer Quittung)\n* 👩 Öffentliche Links für Personen außerhalb von Nextcloud (können passwortgeschützt werden)\n* 👫 Projekte mit Nextcloud-Nutzern/Gruppen/Zirkeln teilen\n* 🖫 Projekte als csv importieren/exportieren (kompatibel mit csv-Dateien von IHateMoney und SplitWise)\n* 🔗 Link/QRCode zum einfachen Hinzufügen von Projekten in MoneyBuster generieren\n* 🗲 Implementierung von Nextcloud-Benachrichtigungen und Aktivitätsstrom\n\nDiese App unterstützt in der Regel die 2 oder 3 letzten Hauptversionen von Nextcloud.\n\nDiese App ist in Entwicklung.\n\n🌍 Hilf uns bei der Übersetzung dieser App auf [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒️ Weitere Möglichkeiten zu Helfen findest du in der [Contribution-Richtlinie](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Dokumentation\n\n* [Benutzer-Dokumentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin-Dokumentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Entwickler-Dokumentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG / Änderungen](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS / Ersteller](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Bekannte Probleme\n\n* Es macht dich nicht reich\n\nJedes Feedback ist willkommen.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"es":{"name":"Cospend","summary":"Gestor de presupuesto compartido","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend es un gestor de presupuesto compartido. Fue inspirado por el magnífico [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nPuedes utilizarlo cuando compartes casa, cuando vas de vacaciones con amigos, o siempre que compartas gastos con un grupo de personas.\n\nTe permite crear proyectos con miembros y facturas. Cada miembro tiene un saldo calculado a partir de las facturas del proyecto. Los saldos no son una cantidad absoluta de dinero a disposición de los miembros, sino más bien una información relativa que muestra si un miembro ha gastado más en el grupo de lo que el grupo ha gastado por él/ella, independientemente de quién gastó dinero para quién. De esta manera se puede ver quién debe al grupo y a quién debe el grupo. En última instancia, puedes pedir un plan de liquidación que indique qué pagos hay que hacer para restablecer los saldos de los miembros.\n\nLos miembros del proyecto son independientes de los usuarios de Nextcloud. Los proyectos pueden compartirse con otros usuarios de Nextcloud o a través de enlaces públicos.\n\nEl cliente para Android [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) está [disponible en F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) y en la [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n¡El cliente de iOS [PayForMe](https://github.com/mayflower/PayForMe) está en desarrollo actualmente!\n\nLas APIs privadas y públicas están documentadas usando el extractor [Nextcloud OpenAPI ](https://github.com/nextcloud/openapi-extractor/). Esta documentación puede ser accedida directamente en Nextcloud. Todo lo que necesitas es instalar Cospend (>= v1.6.0) y utilizar la la aplicación [OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) para navegar por la documentación de OpenAPI.\n\n## Funcionalidades\n\n* ✎ Crear, editar y eliminar proyectos, miembros, facturas, categorías y monedas\n* ⚖ Verificar el saldo de los miembros\n* 🗠 Mostrar estadísticas del proyecto\n* ♻️ Mostrar plan de liquidación\n* Mover facturas de un proyecto a otro\n* Mover facturas a la papelera antes de eliminarlas\n* Archivar proyectos antiguos antes de eliminarlos\n* 🎇 Crear automáticamente facturas de reembolso a partir del plan de pago\n* 🗓️ Crear facturas recurrentes (día/semana/mes/año)\n* 📊 Proporcionar opcionalmente una cantidad personalizada para cada miembro en nuevas facturas\n* 🔗 Enlazar archivos personales a facturas (imagen de recibo físico por ejemplo)\n* 👩 Enlaces públicos para personas fuera de Nextcloud (pueden estar protegidos por contraseña)\n* 👫 Compartir proyectos con usuarios/grupos/círculos de Nextcloud\n* ► Importar/exportar proyectos como csv (compatible con archivos csv de IHateMoney y SplitWise)\n* 🔗 Generar enlaces o códigos QRs para agregar proyectos fácilmente en MoneyBuster\n* Implementar notificaciones de Nextcloud y flujo de actividad\n\nEsta aplicación normalmente soporta las 2 o 3 últimas versiones mayores de Nextcloud.\n\nEsta aplicación está en desarrollo.\n\n🌍 Ayúdanos a traducir esta aplicación en [el proyecto de Crowdin de Nextcloud Cospend/MoneyBuster](https://crowdin.com/project/moneybuster).\n\n⚒️ Échale un vistazo a otras formas de ayudar en las [directrices de contribución](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentación\n\n* [Documentacion para el usuario](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentacion para el administrador](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentación para desarrolladores](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTORES](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Problemas conocidos\n\n* No te hace rico\n\nCualquier comentario o crítica será apreciado.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fa":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\nکارخواه اندروید [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) [ در F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) و روی [ فروشگاه play](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster) در دسترس است.\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## ویژگی‌ها\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nاین برنامه در حال توسعه است.\n\n🌍 به ما در ترجمه این برنامه کمک کنید روی [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## مشکلات شناخته شده\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fr":{"name":"Cospend","summary":"Gestionnaire de budget partagé","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend est un gestionnaire de dépenses partagées (de groupe). Il a été inspiré par le génial [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nVous pouvez l'utiliser lorsque vous partagez une maison, quand vous partez en vacances avec des amis, chaque fois que vous partagez des dépenses avec un groupe de personnes.\n\nCospend vous permet de créer des projets avec des membres et des factures. Chaque membre a un solde calculé à partir des factures du projet. Les soldes ne sont pas un montant absolu d'argent à la disposition des membres, mais plutôt une information relative montrant si un membre a dépensé plus pour le groupe que le groupe n'a dépensé pour lui/elle, indépendamment de qui a dépensé de l'argent pour qui. Comme ça vous pouvez voir qui doit de l'argent au groupe et à qui le groupe doit de l'argent. À la fin, vous pouvez demander un plan de remboursement qui vous indique les paiements à effectuer pour remettre les soldes des membres à zéro.\n\nLes membres du projets sont indépendants des utilisateurs Nextcloud. Les projets peuvent être partagés avec d'autres utilisateurs de Nextcloud ou via des liens publics.\n\nLe client Android [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) est [disponible sur F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) et sur le [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nLe client iOS [PayForMe](https://github.com/mayflower/PayForMe) est en cours de développement !\n\nLes API privées et publiques sont documentées à l'aide de [l'extracteur OpenAPI Nextcloud](https://github.com/nextcloud/openapi-extractor/). Cette documentation est accessible directement dans Nextcloud. Tout ce dont vous avez besoin est d'installer Cospend (>= v1.6.0) et d'utiliser [l'application OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) pour naviguer dans la documentation OpenAPI.\n\n## Fonctionnalités\n\n* ✎ Créer/modifier/supprimer des projets, membres, factures, catégories de factures, devises\n* ⚖ Voir les soldes des membres\n* 🗠 Afficher les statistiques des projets\n* ♻ Afficher un plan de remboursement\n* Déplacer les factures d'un projet vers un autre\n* Déplacer les factures vers la corbeille avant de les supprimer\n* Archiver les anciens projets avant de les supprimer\n* 🎇 Créer automatiquement les factures correspondant au plan de remboursement\n* 🗓 Créer des factures récurrentes (jour/semaine/mois/année)\n* 📊 Entrer un montant personnalisé pour chaque membre dans les nouvelles factures\n* 🔗 Lier les fichiers personnels aux factures (photo du reçu physique par exemple)\n* 👩 Liens publics pour les personnes en dehors de Nextcloud (peut être protégé par mot de passe)\n* 👫 Partager un projet avec des utilisateurs/groupes/cercles Nextcloud\n* 🖫 Importer/exporter des projets en csv (compatible avec les fichiers csv d'IHateMoney)\n* 🔗 Générez des liens/QRCode pour facilement importer des projets dans MoneyBuster\n* 🗲 Implémente les notifications Nextcloud et le flux d'activité\n\nCette application supporte généralement les 2 ou 3 dernières versions majeures de Nextcloud.\n\nCette application est en cours de développement.\n\n🌍 Aidez-nous à traduire cette application sur [le project Crowdin Nextcloud-Cospend/MoneyBuster](https://crowdin.com/project/moneybuster).\n\n⚒️ Découvrez d'autres façons d'aider dans le [guide de contribution](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [Documentation utilisateur](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentation administrateur](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentation développeur](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTEURS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Problèmes connus\n\n* Ça ne vous rend pas riche\n\nTout retour sera apprécié.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"hu":{"name":"Cospend","summary":"Megosztott költségvetés-kezelő","description":"# Nextcloud Cospend 💰\n\nA Nextcloud Cospend egy csoportos/megosztott költségkezelő. A nagy [IHateMoney](https://github.com/spiral-project/ihatemoney/) inspirálta.\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nLétre tudsz hozni benne projekteket tagokkal és számlákkal. Minden tagnak van egy egyenlege, melyet a projekt számláiból számítunk ki. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. Így láthatod, ki tartozik a csoportnak és a csoport kinek tartozik. Végül kérhetsz elszámolási tervet, mely megmondja, milyen kifizetésekre van szükség, hogy a tagok tartozásai rendezve legyenek.\n\nA projekttagok függetlenek a Nextcloud felhasználóitól. Projects can be shared with other Nextcloud users or via public links.\n\nA [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android kliens elérhető [F-Droid-on](https://f-droid.org/packages/net.eneiluj.moneybuster/) és a [Play store-ban](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Funkciók\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nEz az alkalmazás fejlesztés alatt áll.\n\n🌍 Segíts nekünk a fordításban a [Nextcloud-Cospend/MoneyBuster Crowdin projektben](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Dokumentáció\n\n* [Felhasználói dokumentáció](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Rendszergazdai dokumentáció](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Fejlesztői dokumentáció](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [VÁLTOZÁSOK](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [SZERZŐK](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Ismert problémák\n\n* It does not make you rich\n\nBármilyen visszajelzést nagyra értékelünk.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ja":{"name":"Cospend","summary":"共有予算マネージャー","description":"# Nextcloud Cospend 💰\n\nNextcloudのCospendはグループ予算管理ツールです。 [IHateMoney](https://github.com/spiral-project/ihatemoney/)というツールに影響を受け、開発されました。\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nメンバーと請求書でプロジェクトを作成できます。 各メンバーは、プロジェクトの請求書から計算された残高を持っています。 Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. この方法では、グループに借りている人とグループに貸している人を見ることができます。 最終的には、メンバー残高をリセットするために支払いを行う決算プランを求めることができます。\n\nプロジェクトメンバーは NextCloud ユーザーから独立しています。 Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android クライアントは [F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) と [Play ストア](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster) で利用可能です。\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## 機能紹介\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nこのアプリは開発中です。\n\n🌍 [Nextcloud-Cospend/MoneyBuster Crowdin プロジェクト](https://crowdin.com/project/moneybuster) でこのアプリを翻訳する手助けをしてください。\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## ドキュメント\n\n* [利用者向けドキュメント](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [管理ドキュメント](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [開発者ドキュメント](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [変更](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [作者](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## 既知の問題\n\n* It does not make you rich\n\nご意見をいただければ幸いです。\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"it":{"name":"Cospend","summary":"Gestore di bilancio condiviso","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend è un budget manager condiviso/di gruppo. Ha tratto ispirazione dal grande [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nPuoi usarlo per condividere le spese di casa, delle vacanze con gli amici e in ogni altra occasione in cui condividi delle spese con altri.\n\nPermette di creare progetti con utenti e spese. Ogni utente ha un saldo derivante dalle spese del progetto. I saldi non sono un importo assoluto di denaro a disposizione dei membri, ma piuttosto un'informazione relativa che mostra se un membro ha speso più per il gruppo che il gruppo ha speso per lei/lui, indipendentemente da chi ha speso i soldi per chi. Così puoi vedere chi deve al gruppo quanto e quanto deve il gruppo a chi. Infine, puoi visualizzare un piano di rientro dal debito che indichi i pagamenti da effettuare per riportare a zero i saldi degli utenti.\n\nGli utenti del progetto sono indipendenti dagli utenti Nextcloud. I progetti possono essere condivisi con altri utenti Nextcloud o tramite link pubblici.\n\nIl client per Android [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) è [disponibile su F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) e sul [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) è un client iOS attualmente in fase di sviluppo!\n\nLe API private e pubbliche sono documentate utilizzando [il Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). Questa documentazione può essere consultata direttamente su Nextcloud. Tutto quello che serve è installare Cospend (>= v1.6.) e utilizzare l' [l'app API OCS Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) per sfogliare la documentazione OpenAPI.\n\n## Funzioni\n\n* ✎ Crea/modifica/elimina progetti, utenti, spese, categorie di spese, valute\n* ⚖ Controlla i saldi degli utenti\n* 🗠 Visualizza le statistiche del progetto\n* ♻ Visualizza il piano di compensazione del debito\n* Sposta le spese da un progetto a un altro\n* Sposta le spese nel cestino prima di eliminarle\n* Archivia i vecchi progetti prima di eliminarli\n* 🎇 Crea automaticamente le spese di rimborso dal piano di rientro del debito\n* 🗓 Crea spese ricorrenti (giorno/settimana/mese/anno)\n* 📊 Fornisci opzionalmente un importo personalizzato per ciascun utente nelle spese nuove\n* 🔗 Collega file personali alle spese (per esempio l'immagine della ricevuta fisica)\n* 👩 Link pubblici per le persone al di fuori di Nextcloud (può essere protetto da password)\n* 👫 Condividi progetti con utenti/gruppi/cerchie di Nextcloud\n* 🖫 Importa/esporta progetti in formato csv (compatibile con i file csv di IHateMoney e SplitWise)\n* 🔗 Genera link/codice QR per importare facilmente progetti in MoneyBuster\n* 🗲 Implementa le notifiche e il flusso di attività di Nextcloud\n\nQuesta app di solito supporta le ultime 2 o 3 versioni principali di Nextcloud.\n\nQuesta app è in fase di sviluppo.\n\n🌍 Aiutaci a tradurre questa app su [Nextcloud-Cospend/MoneyBuster progetto Crowdin](https://crowdin.com/project/moneybuster).\n\n⚒️ Scopri altri modi per aiutare nelle [ linee guida su come contribuire](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentazione\n\n* [Documentazione utente](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentazione per l'amministratore](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentazione per gli sviluppatori](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTORI](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Problemi noti\n\n* Non ti renderà ricco\n\nOgni feedback é apprezzato.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ru":{"name":"Cospend","summary":"Менеджер общего бюджета","description":"# Проект Cospend для Nextcloud. 💰\n\nNextcloud Cospend - это менеджер группового/общего бюджета. Он был создан под впечатлением от отличной программы [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nПриложение пригодится, когда вы вскладчину снимаете жильё, или когда едете в отпуск с друзьями, или прочих случаях, когда вы скидываетесь на что-либо.\n\nОн позволяет вам создавать проекты в которых есть участники и счета. Баланс каждого участника вычисляется на основании заведенных в проект счетов. Балансы — это не абсолютная сумма денег, которыми располагают участники, а скорее относительная информация, показывающая, потратил ли участник на группу больше, чем группа потратила на него/нее, независимо от того, кто именно потратил деньги на кого. Таким образом сразу видно кто должен всей группе, а кому должна группа. В завершение проекта можно вычислить план расчетов по платежам для обнуления балансов участников.\n\nУчастники проекта не связаны с пользователями Nextcloud. Проектами можно делиться с другими пользователями Nextcloud или через публичные ссылки.\n\nКлиент [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) для Android [ доступен в F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) и в [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nКлиент для iOS [PayForMe](https://github.com/mayflower/PayForMe) разрабатывается в настоящее время!\n\nЧастные и публичные API документированы с помощью [Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). Доступ к этой документации можно получить непосредственно в Nextcloud. Все, что вам нужно - это установить Cospend (>= v1.6.0) и используйте [OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) для просмотра документации OpenAPI.\n\n## Возможности\n\n* ✏️Создание/редактирование/удаление Проектов, участников, счетов, категорий счетов, валют\n* ⚖️ Проверка балансов участников\n* 🗠 Показать статистику проекта\n* ♻ Показать план расчета\n* Переместить счета из одного проекта в другой\n* Переместить счета в корзину перед их удалением\n* Архивировать старые проекты перед их удалением\n* 🎇 Автоматическое создание счетов на возмещение расходов из плана расчетов\n* 📅 Создание повторяющихся счетов (ежедневно/еженедельно/ежемесячно/ежегодно)\n* 📊 Возможность устрановить произвольную сумму для каждого участника в новых счетах\n* 🔗 Связать личные файлы со счетами (например, изображение физического чека)\n* 👩 Общие ссылки для людей не имеющих аккаунт Nextcloud (могут быть защищены паролем)\n* 👫 Публикация проекта для других пользователей/групп/кругов Nextcloud\n* 💾 Импорт/экспорт Проектов в формате csv (совместим с csv файлами из IHateMoney)\n* 🔗 Создание ссылки/QRCode для легкого импорта проектов в MoneyBuster\n* ⚡Реализация уведомлений и активности Nextcloud\n\nЭто приложение обычно поддерживает 2 или 3 последние основные версии Nextcloud.\n\nЭто приложение находится в стадии разработки.\n\n🌍 Помогите перевести это приложение на [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒️ Ознакомьтесь с другими способами оказания помощи в руководстве по [внесению пожертвований](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Документация\n\n* [Пользовательская документация](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Документация по администрированию](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Документация для разработчиков](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [ИСТОРИЯ ИЗМЕНЕНИЙ](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [АВТОРЫ](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Известные проблемы\n\n* Приложение не сделает вас богатым\n\nМы будем признательны за любую обратную связь.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"mk":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android клиентот е [достапен во F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) и на [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Можности\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nАпликацијата сеуште е во фаза на развивање.\n\n🌍 Помогнете со преводот на апликацијата [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Документација\n\n* [Корисничка документација](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Администраторска документација](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Програмерска документација](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [ЛИСТА СО ПРОМЕНИ](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [АВТОРИ](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Познати проблеми\n\n* It does not make you rich\n\nСите повратни информации ќе бидат ценети.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nn":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android klient er [tilgjengelig i F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) og i [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Funksjoner\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nDenne appen er under utvikling.\n\n🌍 Hjelp oss med å oversette denne appen på [Nextcloud-Cospend/MoneyBuster Crowdin-prosjektet](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Dokumentasjon\n\n* [Brukerdokumentasjon](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Administratordokumentasjon](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Utviklerdokumentasjon](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [ENDRINGSLOGG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [FORFATTER](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Kjente problemer\n\n* It does not make you rich\n\nTilbakemeldinger vil bli verdsatt.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pl":{"name":"Cospend","summary":"Menedżer wspólnego budżetu","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend jest grupowym/wspólnym menedżerem budżetu. Został on zainspirowany przez wielkiego [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nPozwala tworzyć projekty z użytkownikami i rachunkami. Każdy członek ma saldo obliczone na podstawie rachunków projektu. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. W ten sposób możesz zobaczyć, kto jest winny grupy i kto jest jej winny. W końcu możesz poprosić o plan rozrachunkowy informujący o tym, które płatności mają być dokonane w celu zresetowania sald członków.\n\nCzłonkowie projektu są niezależni od użytkowników Nextcloud. Projects can be shared with other Nextcloud users or via public links.\n\n[Klient MoneyBuster](https://gitlab.com/eneiluj/moneybuster) na Android jest [dostępny w F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) oraz w [Sklepie Play ](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Funkcje\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nTa aplikacja jest w trakcie tworzenia.\n\n🌍 Pomóż nam przetłumaczyć tę aplikację na [Projekt Crowdin Nextcloud-Cospend/MoneyBuster](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Znane problemy\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"nl":{"name":"Cospend","summary":"Gedeelde budgetbeheerder","description":"# Nextcloud Samen betalen\n\nNextcloud Cospend is een groep/deelbaar budgetmanager. Ik was geïnspireerd door het geweldige [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nJe kunt het gebruiken wanneer je samenwoont, wanneer je op vakantie gaat met vrienden, wanneer je uitgaven deelt met een groep mensen.\n\nHet laat je projecten aanmaken met deelnemers en rekeningen. Voor iedere deelnemer wordt het saldo berekend op basis van de rekeningen. Saldo's geven niet het absolute bedrag weer dat een deelnemer heeft, maar eerder de relatieve informatie die laat zien of een deelnemer meer aan de groep heeft uitgegeven dan de groep aan hem/haar, ongeacht wie er precies geld aan wie heeft uitgegeven. Zo kan je zien wie er nog moet betalen aan de groep of wie er nog moet ontvangen. Uiteindelijk kunt je vragen om een schikking, dat aangeeft welke betalingen je moet doen om de saldi van deelnemers te vereffenen.\n\nProjectdeelnemers zijn onafhankelijk van Nextcloud gebruikers. Projecten kunnen worden gedeeld met andere Nextcloud gebruikers of via openbare links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android cliënt is [te krijgen in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) en in de [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS cliënt is op dit moment in ontwikkeling!\n\nDe private en publieke API's worden gedocumenteerd met behulp van [de Nextcloud OpenAPI-extractor](https://github.com/nextcloud/openapi-extractor/). Deze documentatie is direct toegankelijk in Nextcloud. Het enige wat je hoeft te doen is Samen betalen te installeren (>= v1.6.0) en de [de OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) gebruiken om door de OpenAPI documentatie te bladeren.\n\n## Kenmerken\n\n* ✎ Projecten, deelnemers, rekeningen, rekeningcategorieën, valuta's maken/bewerken/verwijderen\n* ⚖Deelnemer saldi controleren\n* 🗠 Toon projectstatistieken\n* ♻ Schikkingsplan weergeven\n* Rekeningen van het ene project naar het andere verplaatsen\n* Verplaats rekeningen naar de prullenbak voordat u ze daadwerkelijk verwijdert\n* Archiveer oude projecten voordat u ze verwijdert\n* 🎇 Maak automatisch vergoedingsrekeningen aan vanuit het schikkingsplan\n* 🗓 Terugkerende rekeningen maken (dag/week/maand/jaar)\n* 📊 Geef optioneel een aangepast bedrag op voor elke deelnemer in nieuwe rekeningen\n* 🔗 Koppel persoonlijke bestanden aan rekeningen (foto van fysieke bon bijvoorbeeld)\n* 👩 Openbare links voor mensen buiten Nextcloud (kan met een wachtwoord worden beveiligd)\n* 👫 Deel projecten met Nextcloud gebruikers/groepen/cirkels\n* 🖫 Importeer/exporteer projecten als csv (compatibel met csv-bestanden van IHateMoney en SplitWise)\n* 🔗 Genereer link/QRCode om eenvoudig projecten toe te voegen in MoneyBuster\n* 🗲 Implementeer Nextcloud-meldingen en activiteitenstream\n\nDeze app ondersteunt meestal de 2 of 3 laatste hoofdversies van Nextcloud.\n\nDeze app is in ontwikkeling.\n\n🌍 Help ons deze app te vertalen bij het [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Bekijk andere manieren om te helpen in de richtlijnen voor [bijdrage](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentatie\n\n* [Gebruikersdocumentatie](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Beheerderdocumentatie](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentatie voor ontwikkelaars](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [WIJZIGINGEN](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHEURS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Bekende problemen\n\n* Je wordt er niet rijk van\n\nElke feedback wordt op prijs gesteld.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"da":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"en":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ta":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sl":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sv":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sq":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ro":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ur":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"af":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"tr":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt":{"name":"Cospend","summary":"Gestor de orçamento partilhado","description":"# Cospend do Nextcloud\n\nNextcloud Cospend é um gestor de orçamento de grupo/partilhado. Foi inspirado pelo grande [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nPode usá-lo quando estiver a partilhar uma casa, quando for de férias com amigos ou sempre que tiver de partilhar despesas com um grupo de pessoas.\n\nPermite-lhe criar planeamentos com membros e despesas. Cada membro tem um saldo calculado a partir das despesas do planeamento. Saldos não são um montante absoluto de dinheiro à disposição dos membros mas antes uma informação relativa que mostra se o membro gastou mais para o grupo do que o grupo gastou para ele/ela, independentemente de quem gastou dinheiro para quem. Desta forma pode ver quem deve ao grupo e a quem o grupo deve. Em última análise pode pedir um plano de liquidação que lhe diga quais os pagamentos a fazer para reiniciar os saldos dos membros.\n\nOs membros do planeamento são independentes dos utilizadores do Nextcloud. Planeamentos podem ser partilhados com outros utilizadores do Nextcloud ou através de ligações públicas.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) O cliente Android está [disponível no F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) e na [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) O cliente iOS está neste momento a ser desenvolvido!\n\nAs APIs privadas e públicas são documentadas com o [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). Esta documentação pode ser acedida no Nextcloud. Tudo o que precisa fazer é instalar o Cospend (>= v1.6.0) e usar a aplicação [OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) para consultar a documentação do OpenAPI.\n\n## Funcionalidades\n\n* ✎ Criar/editar/eliminar planeamentos, membros, despesas, categorias de despesas, moedas\n* ⚖ Verificar saldos dos membros\n* 🗠 Mostrar estatísticas do planeamento\n* ♻ Mostrar plano de liquidação\n* Mover despesas de um planeamento para o outro\n* Mover planeamentos para o lixo antes de os eliminar definitivamente\n* Arquivar planeamentos antigos antes de os eliminar\n* 🎇 Criar notas de reembolso automaticamente a partir do plano de liquidação\n* 🗓 Criar despesas recorrentes (dia/semana/mês/ano)\n* 📊 Fornecer, opcionalmente, quantias personalizadas para cada membro nas novas despesas\n* 🔗 Ligar ficheiros pessoais às despesas (uma fotografia do recibo físico, por exemplo)\n* 👩 Ligações públicas para pessoas exteriores ao Nextcloud (podem ser protegidas por uma senha)\n* 👫 Partilhar planeamentos com utilizadores/grupos/círculos do Nextcloud\n* 🖫 Importar/exportar planeamentos com CSV (compatível com ficheiros CSV do IHateMoney e do SplitWise)\n* 🔗 Gerar ligação/código-QR para facilitar a adição de planeamentos no MoneyBuster\n* 🗲 Implementar notificações e fluxo de trabalho do Nextcloud\n\nEsta aplicação normalmente suporta as 2 ou 3 versões maiores do Nextcloud.\n\nEsta aplicação está sob desenvolvimento.\n\n🌍 Ajude-nos a traduzir esta aplicação na [tradução no Crowdin do Nextcloud-Cospend/MoneyBuster](https://crowdin.com/project/moneybuster).\n\n⚒ Veja outras formas de ajudar nas [orientações de contribuição](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentação\n\n* [Documentação para o utilizador](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentação para o administrador](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentação para o programador](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG (registo das alterações)](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS (autores)](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Problemas conhecidos\n\n* Não lhe traz riqueza\n\nQualquer comentário será apreciado.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ko":{"name":"Cospend","summary":"Shared budget manager","description":"#\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"fi":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"lt":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ar":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"he":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sk":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"ca":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"sr":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"uk":{"name":"Cospend","summary":"Менеджер спільного бюджету","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). Ця документація доступна безпосередньо в Nextcloud. Все, що вам потрібно — встановити Cospend (>= v1.6.0) і використовувати [OCS API Viewer додатків](https://apps.nextcloud.com/apps/ocs_api_viewer) для перегляду документації OpenAPI.\n\n## Можливості\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠Переглядати статистику проекту\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Публічні посилання для людей поза Nextcloud (можуть бути захищені паролем)\n* 👫 Ділитися проєктами з користувачами/групами/колами Nextcloud\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nДодаток зазвичай підтримує 2 або 3 останні основні версії Nextcloud.\n\nЦей додаток в стадії розробки.\n\n🌍 Допоможіть нам перекласти цей додаток на [PhoneTrack Crowdin](https://crowdin. com/project/phonetrack).\n\n⚒️ Перегляньте інші способи допомогти в [інструкціях з внеску оголошень](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Документація\n\n* [Документація користувача](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Документація для адміністратора](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Документація для розробника](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [АВТОРИ](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Відомі проблеми\n\n* Це не зробить вас багатим\n\nБудемо вдячні за будь-який відгук.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"cs":{"name":"Cospend","summary":"Správce sdíleného rozpočtu","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend je správce skupinových/sdílených rozpočtů. Inspirováno skvělým [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nMůžete ji používat když sdílíte dům, jste s příteli na dovolené a nebo kdykoliv máte ze skupinou lidí sdílené výdaje.\n\nUmožňuje vytvářet projekty se členy a účty. Každý člen má zůstek vypočítaný z projektových účtů. Zůstatky nejsou absolutní částkou peněz, které mají členové k dispozici, ale spíše relativní informací uvádějící, zda člen za skupinu utratil více, než skupina utratila za něj, nezávisle na tom, kdo za koho co utratil. Tak je možné vidět kdo dluží skupině a naopak komu dluží skupina. V konečném důsledku můžete požádat o plán vypořádání, který vám oznámí, které platby mají být provedeny za účelem vynulování zůstatků členů.\n\nČlenové projektu jsou nezávislí na uživatelích z Nextcloud. Projekty lze sdílet s jinými uživateli služby Nextcloud nebo pomocí veřejných odkazů.\n\nAndroid klient [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) je [k dispozici v repozitáři F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) a v katalogu [Google Play](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nVe vývoji je současně také iOS klient [PayForMe](https://github.com/mayflower/PayForMe)!\n\nSoukromé a veřejné API jsou zdokumentováne pomocí [Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). K této dokumentaci lze přistupovat přímo v službě Nextcloud. Vše, co potřebujete, je nainstalovat Cospend (>= v1.6.0) a použít [aplikaci OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) k procházení OpenAPI dokumentace.\n\n## Funkce\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nNa této aplikaci stále ještě probíhá intenzivní vývoj.\n\n🌍 Pomozte nám s překládáním textů v rozhraní této aplikace v rámci [projektu Nextcloud-Cospend/MoneyBuster na službě Crowdin](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Dokumentace\n\n* [Uživatelská dokumentace](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Dokumentace pro správce](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Dokumentace pro vývojáře](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [SEZNAM ZMĚN](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTOŘI](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Známé problémy\n\n* It does not make you rich\n\nJakákoliv zpětná vazba bude vítána.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"gl":{"name":"Cospend","summary":"Xestor de orzamento compartido","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend é un xestor de orzamentos de grupos/compartido. Inspirouse no gran [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nPode empregalo cando comparte casa, cando vaia de vacacións cos amigos, sempre que comparta gastos cun grupo de persoas.\n\nPermítelle crear proxectos con membros e facturas. Cada membro ten un saldo calculado a partir das facturas do proxecto. Os saldos non son unha cantidade absoluta de diñeiro a disposición dos membros, senón unha información relativa que amosa se un membro gastou máis para o grupo do que o grupo gastou por el, independentemente de quen gastou cartos para quen. Deste xeito pode ver quen debe ao grupo e a quen debe o grupo. En última instancia, pode pedir un plan de liquidación que lle indique que pagos ten que facer para restabelecer os saldos dos membros.\n\nOs membros do proxecto son independentes dos usuarios de Nextcloud. Os proxectos pódense compartir con outros usuarios de Nextcloud ou mediante ligazóns públicas.\n\nO cliente para Android de [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) está [dispoñíbel en F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) e na [Play Store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\nO cliente para iOS [PayForMe](https://github.com/mayflower/PayForMe) atopase en desenvolvemento!\n\nAs API públicas e privadas están documentadas mediante o [extractor de Nextcloud OpenAPI](https://github.com/nextcloud/openapi-extractor/). Pódese acceder a esta documentación directamente en Nextcloud. Todo o que precisa é instalar Cospend (>= v1.6.0) e usar a aplicación [OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) para examinar a documentación de OpenAPI.\n\n## Funcionalidades\n\n* ✎ Crear, editar e eliminar proxectos, membros, facturas, categorías de facturas e moedas\n* ⚖ Consultar o saldo dos membros\n* 🗠 Amosar estatísticas do proxecto\n* ♻ Amosar o plan de liquidación\n* Mover facturas dun proxecto cara a outro\n* Mover facturas cara ao lixo antes de eliminalas\n* Arquivar proxectos antigos antes de eliminalos\n* 🎇 Crear automaticamente facturas de reembolso desde o plan de liquidación\n* 🗓️ Crear facturas recorrentes (día/semana/mes/ano)\n* 📊 Opcionalmente, fornece un importe personalizado para cada membro nas novas facturas\n* 🔗 Ligar ficheiros persoais a facturas (por exemplo, a imaxe do recibo físico)\n* 👩 Ligazóns públicas para persoas fóra de Nextcloud (poden estar protexidas con contrasinal)\n* 👫 Compartir proxectos con usuarios/grupos/círculos de Nextcloud\n* 🖫 Importar/exportar proxectos como csv (compatíbel con ficheiros csv de IHateMoney e SplitWise)\n* 🔗 Xerar ligazóns ou códigos QR para engadir doadamente proxectos en MoneyBuster\n* 🗲 Implementar notificacións de Nextcloud e fluxo de actividade\n\nEsta aplicación adoita admitir as 2 ou 3 últimas versións principais de Nextcloud.\n\nEsta aplicación está en desenvolvemento.\n\n🌍 Axúdanos a traducir esta aplicación no [proxecto de Crowdin de Nextcloud-Cospend/MoneyBuster](https://crowdin.com/project/moneybuster).\n\n⚒ Consulte outros xeitos de axudar nas [directrices de colaboración](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentación\n\n* [Documentación para usuarios](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentación para a administración](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentación de desenvolvemento](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [REXISTRO_DE_CAMBIOS](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTORES](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Incidencias coñecidas\n\n* Non te farás rico\n\nCalquera opinión será ben recibida.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hant":{"name":"Cospend","summary":"Shared budget manager","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/). It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"pt-br":{"name":"Cospend","summary":"Gestor de orçamento compartilhado","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend é um gerenciador de orçamento compartilhado/de grupo. Foi inspirado pelo ótimo [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nVocê pode usá-lo quando dividir uma casa, quando sair de férias com amigos, sempre que dividir despesas com um grupo de pessoas.\n\nEle permite criar projetos com membros e despesas. Cada membro tem um saldo calculado a partir das faturas do projeto. Os saldos não são uma quantia absoluta de dinheiro à disposição dos membros, mas sim uma informação relativa mostrando se um membro gastou mais para o grupo do que o grupo gastou para ele/ela, independentemente de exatamente quem gastou dinheiro para quem. Desta forma você pode ver quem deve ao grupo e a quem o grupo deve. Em última análise pode pedir um plano de quitação que lhe diga quais os pagamentos a fazer para saldar as dívidas dos membros.\n\nOs membros do projeto são independentes dos usuários do Nextcloud. Os projetos podem ser compartilhados com outros usuários do Nextcloud ou por meio de links públicos.\n\nO cliente Android [MoneyBuster](https://gitlab.com/eneiluj/moneybuster) está [disponível no F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) e na [Play Store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\ncliente iOS [PayForMe](https://github.com/mayflower/PayForMe) está atualmente em desenvolvimento!\n\nAs APIs privadas e públicas são documentadas usando [o extrator Nextcloud OpenAPI](https://github.com/nextcloud/openapi-extractor/). Esta documentação pode ser acessada diretamente no Nextcloud. Tudo que você precisa é instalar o Cospend (>= v1.6.0) e usar o [o aplicativo OCS API Viewer](https://apps.nextcloud.com/apps/ocs_api_viewer) para navegar pela documentação da OpenAPI.\n\n## Funcionalidades\n\n* ✎ Criar/editar/excluir projetos, membros, contas, categorias de contas, moedas\n* ⚖ Verifique os saldos dos membros\n* 🗠 Exibir estatísticas do projeto\n* ♻ Exibir plano de liquidação\n* Mover contas de um projeto para outro\n* Mova as contas para a lixeira antes de excluí-las\n* Arquive projetos antigos antes de excluí-los\n* 🎇 Crie automaticamente faturas de reembolso a partir do plano de liquidação\n* 🗓 Crie contas recorrentes (dia/semana/mês/ano)\n* 📊 Opcionalmente, forneça um valor personalizado para cada membro em novas contas\n* 🔗 Vincule arquivos pessoais a contas (foto do recibo físico, por exemplo)\n* 👩 Links públicos para pessoas fora do Nextcloud (podem ser protegidos por senha)\n* 👫 Compartilhe projetos com usuários/grupos/círculos Nextcloud\n* 🖫 Importar/exportar projetos como csv (compatível com arquivos csv de IHateMoney e SplitWise)\n* 🔗 Gere link/QRCode para adicionar projetos facilmente no MoneyBuster\n* 🗲 Implementar notificações Nextcloud e fluxo de atividades\n\nEste aplicativo geralmente suporta as 2 ou 3 últimas versões principais do Nextcloud.\n\nEste aplicativo está em desenvolvimento.\n\n🌍 Ajude-nos a traduzir esta aplicação no [Nextcloud-Cospend/MoneyBuster Crowdin](https://crowdin.com/project/moneybuster).\n\n⚒ Confira outras maneiras de ajudar nas [diretrizes de contribuição](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentação\n\n* [Documentação do usuário](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Documentação do administrador](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Documentação do desenvolvedor](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [REGISTRO DE MUDANÇAS](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTORES](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Problemas conhecidos\n\n* Isso não te deixa rico\n\nQualquer retorno será apreciado.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"},"zh-hans":{"name":"Cospend","summary":"共享预算管理器","description":"# Nextcloud Cospend 💰\n\nNextcloud Cospend 是一款群组/共享支出管理工具。 由伟大的 [IHateMoney](https://github.com/spiral-project/ihatemoney/) 启发。\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\n它可以让您创建带有会员和账单的项目。 每个成员都有根据项目账单计算的余额。 Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. 这种方式你可以看到谁欠该群组以及谁欠该群组。 Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## 特性\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* ⚖ Check member balances\n* 🗠 Display project statistics\n* ♻ Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* 🎇 Automatically create reimbursement bills from settlement plan\n* 🗓 Create recurring bills (day/week/month/year)\n* 📊 Optionally provide custom amount for each member in new bills\n* 🔗 Link personal files to bills (picture of physical receipt for example)\n* 👩 Public links for people outside Nextcloud (can be password protected)\n* 👫 Share projects with Nextcloud users/groups/circles\n* 🖫 Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* 🔗 Generate link/QRCode to easily add projects in MoneyBuster\n* 🗲 Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\n⚒ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## 已知问题\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)"}},"isFeatured":false,"authors":[{"name":"Julien Veyssier","mail":"julien-nc@posteo.net","homepage":""}],"ratingRecent":0.5,"ratingOverall":1.0,"ratingNumRecent":0,"ratingNumOverall":16,"certificate":"-----BEGIN CERTIFICATE-----\nMIIEAjCCAuoCAhDaMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNVBAYTAkRFMRswGQYD\nVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxFzAVBgNVBAoMDk5leHRjbG91ZCBHbWJI\nMTYwNAYDVQQDDC1OZXh0Y2xvdWQgQ29kZSBTaWduaW5nIEludGVybWVkaWF0ZSBB\ndXRob3JpdHkwHhcNMTkwMjE0MTAyOTQzWhcNMjkwNTIyMTAyOTQzWjASMRAwDgYD\nVQQDDAdjb3NwZW5kMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsJbO\nx3z5BYEVnwEZoTIH4Cznghjb3//bJIWJOto9ak832McUmLmgDKGhpRShSNAj6x/9\nm3RlNGfpechDsUf8Tp2DEZDkM4+vJbpG0i4o159VTJ4JXz/5yrsERYKrDmDUNCBi\nSzXdC7zAZ3oX3EpR10R2rmJq1YDFrkMT+5BDe5tDjVJOGConJplAxDJcCakYj9ir\nCQn6CoxXgc8nBG07AkxAwbSBZoEBMMnozlZU9VlRtdpeJVTUfpsb+OoG/vCXzctr\nBgzfIwey/QnHHNbfxypgW6yqEk6SVvwZypnbfyJHq+4WVDeCwFqtVCj3fT3MlzJ5\nILICsHjcgKZz8ZlOYchTND95TV7K5aqG6dG0Ce0pRu9Gc4h48gdasBn9xSuXTIZV\nFo6XjUVXFpyr5eCtYtHE9RuKKy7VHX4dIgpoz0d6Qaz2Jm5RvF1/9vCM/73Z0m6E\nBUdd3z81bQtrvjNwTe5vtLoL71yDYkJla1U3nOEYXjWf9WT0nRyKGepamW1z8vTs\nl27jOtW+eycsGaVEkCGIHu70mw23OzXhWEUduq7drkRrV+eZZHC/w3yuiIkf0PGB\nox4QwItwRKI6fR3t88FCXE33VhKeD/kVxKhVFx0dw+9+qScpHiT9IXg4YVayQD4t\nHILym9amEhn6aSW5PmJ5hvc9ibWBNC/6yl00obcCAwEAATANBgkqhkiG9w0BAQsF\nAAOCAQEAKl+Op+GYymN1TM6PjfTTTD3s5pl5mlRGiQ7B5md4F1b93bPD8PHf8pxb\noiKGjLDp/zk/BpSf4xGMgqBbbQ8fvdMe0ZEKRQ3Hqo2MTehmDHtruMqqG611eGaV\nuNPjTlrTr9/XLPKx85AGLMOX+QXPr5SI1PAhJqw1VAF9UKbAxDWCGRDJzP/bLty+\nK5UOFXbuMp5gfsD0LoJWA50H8/kWquq4FfKtYg2J+s3Mia/14CcXYskTvcMxTgVn\nl4/za+y8LMoTIwihBNg8m/V68dgQ2p4OUcI9vDUZnv9o39J0jVs0TMSWzMs/9Bcy\n2BZbJZxIZR2YyAjOuBCNoZ6afMrGMw==\n-----END CERTIFICATE-----","discussion":"https://help.nextcloud.com"}]