Andy Scherzinger
1bdc27202a
Merge pull request #57924 from nextcloud/carl/fix-external-partialmountprovider
...
fix(external-storage): Rtrim trailing slash at the end
2026-02-03 15:57:27 +01:00
pac0san
e48f871bd0
fix(files_external): Respect explicit port configuration
...
It allows the use of the alternative SFTP port defined in the GUI (external storage), instead of the default port (22).
Signed-off-by: pac0san <7056343+pac0san@users.noreply.github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-02 11:27:42 +01:00
Carl Schwan
761a6979a7
fix(external-storage): Rtrim trailing slash at the end
...
Otherwise we don't have any matches when $forChildren is false
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-30 15:50:19 +01:00
Carl Schwan
916ce3f8ec
feat(external-storage): Implement IPartialMountPoint
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-28 17:09:22 +01:00
Carl Schwan
4c79c2faff
Merge pull request #57591 from nextcloud/carl/query-exception
...
refactor(QueryException): Remove most usage of QueryException
2026-01-20 15:59:56 +01:00
Carl Schwan
11cf69d8ba
fix(psalm): Fix static analysis issues in apps/*/tests
...
There are still 1200 more to fix before we can enable static analysis
for the tests.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-16 12:00:51 +01:00
Carl Schwan
9a8d45d81f
refactor(QueryException): Remove most usage of QueryException
...
This is preparation to move QueryException from OCP to OC as part of
Nextcloud 34.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-16 11:55:06 +01:00
Robin Appelman
9fde2523e6
Merge pull request #57493 from nextcloud/smb-invalid-arg-unavailable
...
fix: handle InvalidArumentException as availability failure in smb->getFileInfo
2026-01-14 12:00:03 +01:00
Robin Appelman
ae74dbef2b
Merge pull request #56499 from nextcloud/authoritative-mount-provider-files_external
...
Add api for authoritative mount providers and implement it for files_external
2026-01-13 16:36:33 +01:00
Ferdinand Thiessen
0e22ae1efe
refactor(files_external): migrate public key auth to Vue 3
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
5ed7c4fd97
fix(files_external): adjust settings
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
545c72becb
chore: remove non working and legacy OAuth2 auth schema
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
e1133ec926
feat(files_external): Migrate settings to Vue
...
Template parameters are migrated to initial state, common state between admin and user settings is shared in the CommonSettingsTrait.
The template is cleaned and replaced with only a stub for the Vue mount.
Code only used for the frontend of the settings is moved from the MountConfig to the CommonSettingsTrait (the missing dependency messages).
On the frontend a wrapper view is created that currently holds the global credentials settings and the external storages settings.
- The global credentials sections is now a stand-alone sections - fully implemented.
- The external storages section holds the table + user config + warnings on missing dependencies
The legacy UI is temporarly renamed but will be removed in a following commit.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
d4674060dc
fix(files_external): return correct type for new user defined storages
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
38ed0a8283
fix: hard type controllers where the type is required to match
...
Prevent HTTP 500 errors where a 400 would be the correct response
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Ferdinand Thiessen
4c8b9deca0
feat(files_external): Move script loading to CommonSettingsTrait to reduce duplicated code between admin and user settings
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 01:30:37 +00:00
Robin Appelman
4dcd4223de
fix: make smb auth failure on forbidden exception more reliable
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-12 15:23:57 +01:00
Robin Appelman
43727cb72c
fix: handle InvalidArumentException as availability failure in smb->getFileInfo
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-12 15:23:57 +01:00
Robin Appelman
272d6141ca
fix: improve handling updated storages
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:55 +01:00
Robin Appelman
be3bbf22e0
fix: better applicable check for updating external mounts
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:54 +01:00
Robin Appelman
fa61c4c57d
fix: don't error when checking login credential storage from cli
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:53 +01:00
Robin Appelman
6dd6d06606
fix: update external storage mounts on login
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:53 +01:00
Robin Appelman
9dffca2f07
fix: improve handling of unavailable storages
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:52 +01:00
Robin Appelman
73e84f9bf5
perf: cache root cache entries for external storage in MountCacheService
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:51 +01:00
Robin Appelman
d64f7eb939
feat: listen to user/group events and update external storage mounts
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:51 +01:00
Robin Appelman
5565cdb390
feat: make external storage mount provider authoritative
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
# Conflicts:
# apps/files_external/lib/AppInfo/Application.php
2026-01-09 17:53:50 +01:00
Robin Appelman
c80c980e29
feat: add typed events for external storage config changes
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-09 17:53:49 +01:00
Carl Schwan
98192fc17c
feat(external-s3): Expose config option to enable direct s3 preview
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-02 17:13:43 +01:00
Carl Schwan
2ea1bd4cdc
feat(movie-preview): Use getDirectDownloadById for generating preview
...
Allow to speed-up considerably the creation of previews for movies
stored on S3.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-02 17:13:41 +01:00
invario
ffe91b48dc
feat(previews): allow ffmpeg to connect direct for AWS S3 buckets
...
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: invario <67800603+invario@users.noreply.github.com>
2026-01-02 10:48:39 +01:00
Edward Ly
1490ea95cb
Merge pull request #56781 from nextcloud/fix/s3-name
...
fix(s3): rename 'Amazon S3' to 'S3 Storage'
2025-12-02 09:20:34 -08:00
Edward Ly
09f774a61f
fix(s3): rename 'Amazon S3' to 'S3 Storage'
...
The current name may be confusing to users who take advantage of other S3-compatible storage solutions not offered by Amazon, so a more generic name is preferred here.
Signed-off-by: Edward Ly <contact@edward.ly>
2025-12-02 08:33:06 -08:00
Côme Chilliet
69b85fab32
fix(files_external): Properly register event listeners in register method
...
This is the clean solution, LoginCredentials was the only auth class
actually registering stuff in constructor.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-25 15:08:35 +01:00
Côme Chilliet
3279afc529
fix(files_external): Fix registration of listeners with PHP >= 8.4
...
With the lazy ghosts the constructor is not always called in
files_external boot. This is a quick and dirty fix but we should
instead move the code out of the constructors and to the boot method.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-25 15:08:35 +01:00
Tobias Kaminsky
6f0537b4e9
Merge pull request #56494 from nextcloud/carl/result-improv
...
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
Improve IResult
2025-11-20 15:38:17 +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
Kent Delante
b57db10814
fix: pass only necessary information when deleting mulitple objects
...
DeleteObjects currently fails when the request includes all the
information returned by ListObjects. Send only the necessary
information in the request. Note: 'Size' and 'DateModified' is now
only supported by directory buckets.
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-11-18 12:07:53 +08:00
Maxence Lange
07d3f1c313
fix(files-external): do not load lazy appconfig from construct
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-27 13:37:13 -01:00
Louis
f8bed8f186
Merge pull request #51145 from nextcloud/home-folder-readonly
2025-10-01 10:09:19 +02:00
Ferdinand Thiessen
31571476d3
refactor(files_external): migrate Ajax with OC_JSON to proper controller
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-30 20:19:21 +02:00
Louis Chemineau
553793c946
feat(files): Mark homefolder as overwritten when an external storage mounted at / exists
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-29 19:26:40 +02:00
Kate
81d0c73700
Merge pull request #55360 from nextcloud/refactor/rector
2025-09-28 12:28:46 +02:00
provokateurin
d59338b377
refactor: Apply rector Nextcloud 26 set
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-28 11:45:52 +02:00
Ferdinand Thiessen
660f3f6fd1
refactor: use logical && || instead of weak and or operators
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-27 23:02:18 +02:00
Carl Schwan
7e1c49ad9d
refactor: Port away from IQueryBuilder::execute in apps/
...
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-16 11:35:01 +02:00
Carl Schwan
0e7d5dce1c
refactor: Port away from changeColumn
...
Replace by the drop-in replacement modifyColumn
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-12 18:05:19 +02:00
Josh
af53e9ca06
chore(files_external): Remove oauth1 constant
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-07 22:25:51 -04:00
Josh
2b21913015
refactor(files_external): Drop oauth1 auth mechanism registration
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-07 22:23:25 -04:00
Josh
57c62e1ca1
refactor(files_external): Drop OAuth1.php
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-08-07 21:54:33 -04:00
Robin Appelman
6f0120af16
fix: handle smb timeouts as storage not available
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 17:39:12 +02:00