Anna
afe61fe63d
Merge pull request #60286 from nextcloud/fix/noid/appstore-fetcher-generic-file-exception
...
fix(AppStore/Fetcher): catch GenericFileException when reading cache file in Fetcher
2026-05-20 02:51:28 +02:00
Anna Larch
c4356e1b25
fix(appstore): address review comments on GenericFileException handling
...
- Attempt delete before logging the warning, so the warning only fires
when we know recovery will succeed
- Log an error (not silently return) when delete itself fails
- Use catch (\Exception) without variable (PHP 8)
- Replace willReturnArgument(1) with explicit willReturn(true) in test
- Add blank lines between logical blocks in test for readability
Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 16:52:52 +02:00
Anna Larch
5113b18739
fix(appstore): catch GenericFileException when reading cache file in Fetcher
...
When the appstore cache file exists but getContent() throws a
GenericFileException (I/O error or OS-level permission failure), explicitly
delete the file and recreate it before writing fresh data — mirroring the
NotFoundException recovery path. If deletion itself fails, return [] cleanly.
Previously, the unhandled exception caused the entire apps settings page to
crash. The new test covers both the recovery path and deletion failure.
Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 16:34:06 +02:00
Benjamin Gaussorgues
91a4172e35
Merge pull request #60225 from nextcloud/remove-cache-order
...
perf: remove unneeded sort in getFolderContentsById
2026-05-13 16:49:24 +02:00
Carl Schwan
fcb956b5ab
Merge pull request #59753 from nextcloud/work/carl/remove-orderById
...
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
perf(share): Remove useless order by id
2026-05-13 12:21:48 +02:00
Ferdinand Thiessen
2b2b9840b8
test(appstore): add test cases for appinfo.xml
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 23:11:24 +02:00
Ferdinand Thiessen
e3783b88e6
fix(AppManager): properly type AppInfo type based on XSD
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +02:00
Robin Appelman
c91f8b0e2c
test: adjust tests to unsorted folder listing
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-12 19:30:24 +02:00
Carl Schwan
c5c3525a6e
fix: Allow sanitizeHTML to accept null
...
Used like this in many places
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan
279bface8e
refactor: Delete deprecated code from OC_Util
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan
32bc6f54d3
refactor: Replace old Utils::callRegister with new API
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Benjamin Gaussorgues
b438b345b5
Merge pull request #60317 from nextcloud/fix/snowflake_server_id_doc
...
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
fix(snowflake): fix wrong documentation about serverId
2026-05-12 14:16:31 +02:00
Carl Schwan
3dbefe89fd
Merge branch 'master' into work/carl/remove-orderById
2026-05-12 13:59:15 +02:00
Benjamin Gaussorgues
9e36754429
fix(snowflake): fix wrong documentation about serverId
...
Maximum value of a server ID is 511 (9 bits) and not 1023.
Also adjust SetupCheck
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-12 10:47:44 +02:00
John Molakvoæ (skjnldsv)
c26b1e4b07
fix(s3): add Content-MD5 header for DeleteObjects to fix AWS SDK v3.339.0+ compatibility
...
AWS SDK PHP v3.339.0+ introduced a breaking change requiring the Content-MD5
header for DeleteObjects operations. This causes 'MissingContentMD5' errors when
using S3-compatible services like MinIO.
Add middleware to automatically calculate and inject the Content-MD5 header on
all DeleteObjects requests. This is applied universally at the S3ConnectionTrait
level, fixing both external storage (AmazonS3) and core ObjectStore (S3) classes.
Fixes: https://github.com/aws/aws-sdk-php/issues/3068
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2026-05-12 09:07:20 +02:00
Kate
ac15544703
Merge pull request #60299 from nextcloud/fix/remove-iservercontainer-from-core-apps
...
Chore: Remove references to deprecated interface IServerContainer
2026-05-12 07:48:58 +02:00
Kate
94c25e210d
Merge pull request #60262 from nextcloud/ernolf/fix/brotli-detection
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
2026-05-11 20:34:09 +02:00
Côme Chilliet
9680004b58
chore: Remove almost all uses of deprecated IServerContainer in lib/private
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 16:22:22 +02:00
Côme Chilliet
6664f62a6c
fix: Fix debug mode and tests mocking IAppManager
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 14:53:29 +02:00
Côme Chilliet
bdfe8ed77e
fix: Add proper methods in IAppManager for namespace handling
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 14:53:29 +02:00
ernolf
04bd872fd2
style(http-client): use explicit bitmask comparison for CURL_VERSION_BROTLI
...
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2026-05-11 14:06:57 +02:00
ernolf
c1cd4de1cd
fix(http-client): detect brotli support via libcurl, not PHP extension
...
- Fixes a regression introduced in #55433 .
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2026-05-09 03:23:27 +02:00
Robin Appelman
d307557c56
test: adjust tests to unsorted share listing
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-08 18:05:06 +02:00
Anna Larch
0681ced203
fix(previews): use createParameter/setParameter to reuse query in chunk loop
...
AI-Assisted-By: claude-sonnet-4-6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 10:32:54 +02:00
Ferdinand Thiessen
f6a37dc608
refactor(appstore): split controllers and use proper root
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 10:41:04 +02:00
Ferdinand Thiessen
5b756ad8bc
refactor: split appstore from settings
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 10:41:04 +02:00
Anna
57c57d7082
Merge pull request #59918 from nextcloud/feat/check-if-talk-enabled
...
feat(ocp): expose whether talk is enabled for user
2026-05-04 11:03:52 +01:00
Robin Appelman
9f5535d01b
fix: apply quota with writeStream
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-02 14:04:09 +02:00
Robin Appelman
f3a5bc8c17
fix: block writing empty files with 0 quota
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-02 14:04:09 +02:00
John Molakvoæ
723b441324
Merge pull request #60000 from cuppett/cuppett/test-isolation
2026-04-30 12:38:03 +02:00
Stephen Cuppett
c2e2b5704d
fix(tests): Fix encryption test isolation between test runs
...
Add global encryption teardown to TestCase base class so encryption state
does not leak between test suites regardless of which tests ran earlier.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-04-29 19:42:38 -04:00
Josh
268cc5f07e
test(TestCase): '.ocdata' -> '.ncdata' in knownEntries
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-04-30 01:39:59 +02:00
nextcloud-command
e11e7f1c70
refactor: Apply rector changes
...
Signed-off-by: GitHub <noreply@github.com>
2026-04-29 23:54:19 +02:00
Ferdinand Thiessen
be2ac0bd86
Merge pull request #59932 from nextcloud/carl/copySkeleton
...
refactor: Move copy skeleton step to a file listener
2026-04-29 23:15:38 +02:00
Ferdinand Thiessen
e5b1799079
chore: add missing Override attribute to test files
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:28 +02:00
Joas Schilling
109eb0c8a9
fix(talkbackend): Make function names positive and remove talk internals from docs
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-04-27 21:27:40 +02:00
Carl Schwan
bb4c55c125
refactor: Move copy skeleton step to a file listener
...
Instead of having all user providers call OC_Util::copySkeleton
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-04-27 15:37:02 +02:00
Joas Schilling
aa904b255f
Merge pull request #59378 from nextcloud/carl/non-internal-api
...
chore: Replace MoveableMount usage with IMovableMount
2026-04-27 12:37:56 +02:00
Hamza
c55cfc4367
test: Add tests for whether spreed is enabled
...
Signed-off-by: Hamza <hamzamahjoubi221@gmail.com>
2026-04-26 17:08:39 +02:00
Robin Appelman
a05a3b9005
fix: only update share for the user who moved the share
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:44 +02:00
Robin Appelman
cf06ebf999
test: more tests for UserMountCache
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:43 +02:00
Robin Appelman
1b84a85558
test: add reusable mock implementation for IUserConfig
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:53 +02:00
Robin Appelman
3a50ee887b
test: add reusable mock implementation for IAppConfig
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:52 +02:00
Carl Schwan
fbf84e6473
chore: Replace MoveableMount usage with IMovableMount
...
The former is private API while the IMovableMount is public.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-04-24 10:14:37 +02:00
Christoph Wurst
65db5e68b4
fix(dav): unify content disposition header escaping
...
Signed-off-by: Christoph Wurst <1374172+ChristophWurst@users.noreply.github.com>
2026-04-22 14:05:42 +02:00
Jyrki Gadinger
3183aa0ad0
chore(openmetrics): rename app_info metric to app_enbled
...
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2026-04-20 11:41:19 +02:00
Jyrki Gadinger
e7b1b69e66
chore(openmetrics): use "app_id" label instead of "app_name"
...
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2026-04-20 11:38:44 +02:00
Jyrki Gadinger
3e5daac0c5
feat(openmetrics): expose app information per-app
...
Since exporting the app information that way makes the apps count metric
obsolete I removed it as well.
Resolves #59718
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2026-04-20 11:27:55 +02:00
Kostiantyn Miakshyn
fcb10219d1
fix: Allow num_buckets to be equal as min_bucket
...
Signed-off-by: Kostiantyn Miakshyn <molodchick@gmail.com>
2026-04-19 18:28:12 +02:00
Julien Veyssier
7f9fdfbe46
fix(upgrade): restore missing apps on upgrade
...
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-04-17 11:34:35 +02:00