Commit graph

535 commits

Author SHA1 Message Date
provokateurin
4eada2d804
refactor(Files): Modernize Wrapper
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-17 06:43:16 +01:00
provokateurin
5f4a5d8c67
refactor(Files): Remove deprecated streamCopy method
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-17 06:43:16 +01:00
Andy Scherzinger
39ff32a33b
Merge pull request #58134 from nextcloud/carl/lock-propagator-order
fix(propagator): Improve lock behavior of propagator
2026-02-09 16:04:38 +01:00
Carl Schwan
f3778bc9c7
fix(propagator): Improve lock behavior of propagator
Fix possible dead locks when running the propagator caused by two
requests updating the same amount rows in transactions.

- Lock rows always in the same deterministic order by sorting the
  path_hash first

- On all database outside of sqlite, also do first a SELECT FOR UPDATE
  to lock all the rows used in batch UPDATE calls, afterward to decrease
  the risk of two requests trying to lock the same rows

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-09 12:10:56 +01:00
provokateurin
f12cecb684
feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Ferdinand Thiessen
762ae4520a
fix(InMemoryFile): allow to stream read the contents
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-06 17:29:26 +01:00
Carl Schwan
9a26169323
fix(WatcherTest): Properly mock getCache and getScanner in IStorage
Otherwise we end up with trying to assign null to a property which has
strict types.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-06 14:21:41 +01:00
Carl Schwan
c96ece0bcb
refactor: Add more typing
- repairs job
- database
- redis

And remove Helpertest which was unused outside of some tests.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:55:39 +01:00
Carl Schwan
5d0d0c17e5
chore(rector): Run rector on apps, core and tests directory
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:23:23 +01:00
Robin Appelman
bea82ac656
test: adjust tests to updated getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:35 +01:00
Robin Appelman
be2c26a75b
test: adjust tests to new getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-04 18:23:33 +01:00
Carl Schwan
04ddeeec4a
perf(MountManager): use binary search to find mount in path
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 11:41:58 +01:00
Robin Appelman
94f33463ff
test: adjust tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-21 16:35:55 +01:00
Carl Schwan
7b05c8f797
refactor(files): Rename IMountProviderArgs
It's not an interface so the I-prefix is inadequate.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-12 17:33:52 +01:00
Benjamin Gaussorgues
fe34ea5ec7
Merge pull request #57407 from nextcloud/carl/fix-php-85-deprecation-image
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
2026-01-08 13:57:11 +01:00
Salvatore Martire
07eef5eaf4 fix: drop set up partial mounts on setupForUser
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-01-07 17:00:09 +01:00
Carl Schwan
bd815595d4
fix: Remove NOP ReflectionProperty::setAccessible calls
Doesn't do anything since PHP 8.1 and is deprecated since PHP 8.5
2026-01-07 15:23:20 +01:00
Robin Appelman
047ff27e46 test: add tests for watcher check filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-12-31 12:23:04 +01:00
Salvatore Martire
6e9ba894a2 fix: add $forChildren parameter to IPartialMountProvider
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-29 18:06:12 +01:00
Ferdinand Thiessen
be8b2bfa8b
Merge pull request #57228 from nextcloud/fix/setup-for-path-caching
fix: adjust authoritative setup path caching logic
2025-12-23 16:49:05 +01:00
Ferdinand Thiessen
8c90d4f822
Merge pull request #56919 from nextcloud/jtr/fix-mime-detection-tests
fix(files/type): preserve numeric keys (follow-up)
2025-12-23 16:01:01 +01:00
Salvatore Martire
6c19fbcf4d fix: adjust authoritative setup path caching logic
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-22 15:52:52 +01:00
Joas Schilling
226b7df65e
fix(Hooks): Don't use offset null as it's deprecated (and not actually used)
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-12-19 15:58:05 +01:00
Benjamin Gaussorgues
89fcefbfa0
Merge pull request #55369 from nextcloud/carl/cleanup-external-manager 2025-12-17 14:14:48 +01:00
Carl Schwan
6945a030f5
refactor(OC_Helper): remove buildNotExistingFileNameForView
Move the functionality in the last place it is used OC\Files\Node\Folder

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:38:29 +01:00
provokateurin
341fd348e6
fix(UserMountCache): Add back unique index for oc_mounts and use normal insert
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-15 12:26:23 +01:00
Josh
b2bc785986
chore: make php-cs happy
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-09 22:26:16 -05:00
Josh
50a94a35ee test(files/type): leading zero extension preservation
- adds a focused DetectionTest that ensures numeric-looking keys (e.g. "001") are preserved
- refactors filesystem tests to use an isolated temp dir with proper cleanup

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-09 09:22:04 -05:00
Andy Scherzinger
71c2e94123
Merge pull request #54436 from nextcloud/s3-signed-url
perf(s3): Provide direct pre-signed download link
2025-12-09 12:38:20 +01:00
Carl Schwan
b6313f68d3
perf(s3): Expose pre-signed urls for S3
This is faster than going back to nextcloud to download the files.

This is an opt-in setting that can be enabled by setting
use_presigned_url in the object store config.

Additionally add support for the proxy config which is needed in a
docker setup. See https://github.com/juliusknorr/nextcloud-docker-dev/pull/431

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-09 11:21:35 +01:00
Kate
842df498e0
Merge pull request #56816 from nextcloud/jtr/chore-legacy-drop-mac-checker 2025-12-05 17:42:38 +01:00
Josh
511f54324a
chore: drop unused Darwin range test variation
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-04 16:48:42 -05:00
Andy Scherzinger
1ef465f804
Merge pull request #56251 from nextcloud/carl/template-manager-cleanup
refactor(template-manager): Modernize template manager API
2025-12-04 17:26:53 +01:00
Josh
d9a7e0855c refactor(tests): use OS constant over function
Use PHP's newer PHP_OS_FAMILY constant.

- Allows us to drop a legacy OC_Util method.
- This test isn't even enabled at the moment.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-02 21:53:03 -05:00
Louis Chmn
73c6b17fae fix(View): Normalize path in getAbsolutePath
This allow to match files more consistently in HookConnector::getNodeForPath

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-25 19:30:53 +01:00
Carl Schwan
9522dde7a2
feat: Add Folder::getOrCreateFolder api
Allow to remove some boilerplate and also this new function is type
safe.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-24 11:10:52 +01:00
Carl Schwan
38fd84aa6a
refactor(template-manager): Modernize template manager API
And correct openapi types for the size.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-24 10:00:47 +01:00
Carl Schwan
4d47fdaa85 chore: Run rector with new rules for fetch
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:57 +01:00
Carl Schwan
503a65ddd0 refactor: Run rector
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:54 +01:00
Andy Scherzinger
32c149e8ea
Merge pull request #56255 from nextcloud/availability-same-request
make failed availability check apply in the same request
2025-11-12 18:45:01 +01:00
Robin Appelman
2970232790
fix: make failed availability check apply in the same request
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-06 20:08:44 +01:00
Ferdinand Thiessen
6336eac6a5
chore: setting test metadata in annotations is deprecated (use attributes)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-05 15:42:40 +01:00
Ferdinand Thiessen
e3b34891b0
chore: migrate to PHPUnit 11
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-05 15:42:33 +01:00
Ferdinand Thiessen
7f125551f5 chore: migrate @small and @medium to attributes
Both are basically special groups, which we do not use.
But they also had a special meaning in the past which now only works
when set on the test class: They set the test timeout.

So for `@small` we just remove them, for `@medium` we remove where not
needed but keep it on the class where the full test class might make use
of the adjusted timeout.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Ferdinand Thiessen
d6d6747a73 refactor: apply rector rules for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Daniel Kesselberg
6e04437de6
fix: validate filename when creating file from template
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-24 01:05:48 +02:00
Marcel Klehr
1e9a5019b4 fix(FileAccess): Set filecache size column in tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Carl Schwan
324b54b863 refactor(preview): Cleanup the implementation of the new preview backend
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
b0357663b9 perf(preview): Optimize migration and simplify DB layout
* Simplify migration by not moving the actual files and just updating
  the DB
* Don't store the storageid in the preview table as it is not needed
* Start adding tests

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Louis
f8bed8f186
Merge pull request #51145 from nextcloud/home-folder-readonly 2025-10-01 10:09:19 +02:00