Robin Appelman
65db0acd46
fix: make objectstore copy consistent with changed local storage behavior
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-10 18:12:28 +01:00
Robin Appelman
49223b4530
fix: give target file all permissions on copy
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-10 18:11:38 +01:00
Robin Appelman
27e63dd6b2
fix: fix updating cached mounts with multiple entries for root id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-05 14:26:28 +01:00
Cristian Scheid
dfdb4ba500
feat: set creation_time on file creation and render recently created icon
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-03-03 15:09:50 +00:00
Salvatore Martire
0407f7094f
Merge pull request #58673 from nextcloud/backport/58660/stable33
...
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 (stable33, 8.4, stable33, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, 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
[stable33] fix: check source and target when emitting copy event
2026-03-02 18:25:15 +01:00
Salvatore Martire
ba9bd0d82f
fix: check source and target when emitting copy event
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-03-02 15:51:43 +00:00
Josh
8e73c32db8
chore: fixup/ revert cast in S3ObjectTrait
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Josh
2fe757f358
fix(S3ObjectTrait): cast $urn to a string until typing adding elsewhere
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Josh
ec1206ec58
fix(ObjectStorage): fix 0 folder handling in Primary Storage
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Salvatore Martire
24ab6ac5c5
fix: avoid recomputing list of mounts by provider
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-25 06:30:53 +00:00
Robin Appelman
e88748e701
fix: correctly return false for filesize on non-existing file
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 18:05:00 +01:00
Carl Schwan
9866e8190d
fix(propagator): Don't run queries if no parents
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-23 12:00:07 +00:00
provokateurin
bbde9496ca
fix(Propagator): Also skip groupfolders versions and trash entries
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-20 05:23:30 +00:00
Andy Scherzinger
4a0dce67b0
Merge pull request #58378 from nextcloud/backport/58285/stable33
...
[stable33] fix(cache): filter out invalid entries in `OC\Files\Cache\Wrapper\CacheWrapper::getFolderContentsById`
2026-02-19 23:34:29 +01:00
provokateurin
72d18abe62
fix(Propagator): Skip groupfolders root entries
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-19 13:09:07 +00:00
Ferdinand Thiessen
51b3ad5c91
fix(cache): filter out invalid entries in OC\Files\Cache\Wrapper\CacheWrapper::getFolderContentsById
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:30:36 +00:00
Cristian Scheid
8655c6ecc7
feat: add upload_time support to file search and recent files
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-17 10:48:42 +00:00
Carl Schwan
c844689b86
fix(preview): Fix files:app-data-scan for previews
...
And add unit tests for both migrated files and non-migrated files
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-12 01:54:36 +01:00
Carl Schwan
3d031b03f3
fix(propagator): Lock rows also in propagateChange
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-11 16:25:18 +01:00
Carl Schwan
cae742d182
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-11 16:25:12 +01:00
Benjamin Frueh
b75a1bce15
feat(dav): allow extending propfind properties via event
...
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
Update lib/public/Files/Events/BeforePropfindEvent.php
Co-authored-by: Julius Knorr <jus@bitgrid.net>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>
Update lib/public/Files/Events/BeforePropfindEvent.php
Co-authored-by: Julius Knorr <jus@bitgrid.net>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>
refactor: rename BeforePropfindEvent to BeforeRemotePropfindEvent
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
chore: update composer autoloader for new event class
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
Update lib/public/Files/Events/BeforeRemotePropfindEvent.php
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Benjamin Früh <134610227+benjaminfrueh@users.noreply.github.com>
2026-02-05 13:31:33 +01:00
Robin Appelman
f55afafc58
fix: getById: don't setup for all users with access by default
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-02 19:01:27 +01:00
Andy Scherzinger
4e3f0b5a2a
Merge pull request #57912 from nextcloud/backport/57815/stable33
...
[stable33] feat: optimize user mount cache
2026-01-29 20:56:45 +01:00
Andy Scherzinger
0bffb21acd
Merge pull request #57900 from nextcloud/backport/57890/stable33
...
[stable33] perf(UserMountCache): Invert condition so that we avoid some SQL queries
2026-01-29 20:10:05 +01:00
Robin Appelman
02cf3d7c89
fix: make sure all mounts are setup in getById
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 18:50:58 +01:00
Robin Appelman
e00b60b89c
fix: make getMountsForFileId work with sharding again
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 17:06:57 +01:00
Robin Appelman
2f2a8fac61
fix: still setup for user when setting up root path with children
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 16:42:45 +01:00
Benjamin Gaussorgues
9590a7b801
feat: optimize user mount cache
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-29 15:36:39 +00:00
Carl Schwan
b72f879a21
perf(MountManager): use binary search to find mount in path
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 12:54:14 +00:00
Carl Schwan
fb2dbf0af4
perf(UserMountCache): Invert condition so that we avoid some SQL queries
...
getStorageId creates some SQL queries, while the other queries don't, so
compare that last.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 10:13:51 +00:00
Robin Appelman
bc1798cb33
fix: don't do full setup in setupForProvider if all requested providers are authoritative
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-28 13:36:10 +01:00
Robin Appelman
ae5f11d5e0
fix: don't try to setup for a user when setting up /
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-27 07:56:14 +00:00
Andy Scherzinger
2b06db33b3
Merge pull request #57814 from nextcloud/backport/57733/stable33
...
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 (stable33, 8.4, stable33, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, 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
[stable33] fix(Propagator): rollback transaction if it fails
2026-01-26 22:05:40 +01:00
Carl Schwan
1a99b16aa7
fix(Propagator): rollback transaction if it fails
2026-01-26 11:31:45 +00:00
Carl Schwan
6bc805ad39
perf(normalization): Optimize path normalization
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
(cherry picked from commit 09a1ca3981 )
2026-01-26 00:21:56 +01:00
Carl Schwan
3f214fc0a1
fix(cache): Fix parsing cache entry from groupfolder and collectives
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-23 11:52:05 +00:00
Benjamin Gaussorgues
aba8a7ff86
Merge pull request #57549 from nextcloud/carl/optimize-getdirectory-content
2026-01-16 14:09:14 +01:00
Andy Scherzinger
a7ea180317
Merge pull request #57576 from nextcloud/missing-cache-entry-data
...
fix: dont error on missing path_hash/checksum CacheEntry fields
2026-01-16 14:04:46 +01:00
Carl Schwan
eadcd1cc84
refactor: Use str_starts_with
...
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2026-01-16 10:58:16 +01:00
Stephan Orbaugh
3a9173015c
Merge pull request #57525 from nextcloud/carl/usermountcache-loop-optimization
...
perf(UserMountCache): Optimize loop
2026-01-16 10:50:27 +01:00
Louis Chmn
7c9c74f4f0
feat(files_sharing): Implement partial mount providers
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-16 08:32:14 +01:00
Robin Appelman
a79bf069a3
fix: dont error on missing path_hash/checksum cacheentry fields
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-15 18:02:41 +01:00
Benjamin Gaussorgues
0ff8b35578
Merge pull request #57550 from nextcloud/setup-path-not-found-fallback
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-15 16:12:23 +01:00
Benjamin Gaussorgues
8f8b4411cd
Merge pull request #57553 from nextcloud/getMountsForPath-args
2026-01-15 14:35:51 +01:00
Carl Schwan
06827970a8
fix(cache): Handle groupfolder specific entries in cacheEntryFromData
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-15 11:47:59 +01:00
Carl Schwan
0b8eae7789
perf(files): Optimize CacheEntry creation
...
Avoid many copy on writes and create array only once.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-15 11:47:41 +01:00
Robin Appelman
53b160ce9b
fix: add some extra checks for getMountsForPath arguments
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-15 11:31:54 +01:00
Robin Appelman
68cdd1b1ef
fix: fallback to full user setup if we cant find the expected mount root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 18:04:13 +01:00
Carl Schwan
27339601f6
perf(View): Optimize getDirectoryContent hot-loop
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-14 18:03:51 +01:00
Andy Scherzinger
abe5499e14
Merge pull request #57498 from nextcloud/carl/rename-imountproviderargs
...
refactor(files): Rename IMountProviderArgs
2026-01-14 17:50:43 +01:00