Commit Graph

362 Commits

Author SHA1 Message Date
Carl Schwan a459b9cc1f refactor(server): Register alias when needed
And remove useless service registration

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-10 23:22:24 +02:00
Carl Schwan 3750945cb8 fix(psalm): Fix psalm issues related to moving files
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-05 11:03:16 +02:00
Ferdinand Thiessen 0abaf60352 fix: make sure the core app is loaded
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-02 22:51:05 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
nextcloud-command fd14234a6a refactor: Apply rector changes
Signed-off-by: GitHub <noreply@github.com>
2026-05-24 14:56:18 +00:00
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
Ferdinand Thiessen 1c23feae3d refactor: migrate usage of OC_App to AppManager
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-13 14:01:49 +02:00
Ferdinand Thiessen 872206cbc2 chore(OC_App): move executeRepairSteps and checkAppDependencies to AppManager
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-13 12:32:14 +02:00
Ferdinand Thiessen 21426974b1 fix(app-info-shipped): add remote as its still available in code base
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +02:00
Ferdinand Thiessen a6a228bd0a fix(InfoParser): properly handle collaboration plugins
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +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
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
Ferdinand Thiessen 3f8710500c chore: apply strict rector rules on appstore
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 10:41:04 +02:00
Ferdinand Thiessen e7a2f660c7 refactor(Fetcher): properly type AppStore fetcher
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-30 14:01:56 +02:00
Git'Fellow 3bbe0ee570 refactor: use strict operator
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-04-30 00:51:29 +02:00
Ferdinand Thiessen e0ba4d71b6 chore: add missing Override attribute to OC
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:27 +02:00
Josh acde2f5041 fix(apps): filter autoloading registration by app type too in loadApps
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-04-16 14:49:03 -04:00
Côme Chilliet a3102bb2f0 chore: Cleanup setAppTypes and move it to AppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-07 17:27:05 +02:00
Côme Chilliet 6b49aa792b chore: Remove types from const properties for PHP 8.2 compatibility
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-23 16:36:01 +01:00
Côme Chilliet cd2d09de64 fix: Remove static vars from core classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-23 16:34:54 +01:00
Côme Chilliet 614afec231 fix: Remove static var in AppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-23 16:33:29 +01:00
provokateurin f12cecb684 feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Carl Schwan 7b6078875b refactor: Run rector on lib/private
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Joas Schilling cc6f49b762 fix(openmetrics): Make openmetrics always an array like all other infoxml fields
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-24 14:17:35 +01:00
Josh 24ec0e85e5 feat(AppManager): log when cleanAppId drops invalid chars
Log a debug message if invalid characters are replaced in app IDs.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-12-31 14:30:05 -05:00
Arthur Schiwon ab9a92fac8 feat(AppManager): log which apps requires the upgrade procedure
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-27 18:05:00 +01:00
Kate 86ef7781c0 Merge pull request #55420 from nextcloud/fix/40082/appstore-timeout 2025-09-30 17:18:37 +02:00
Marcel Müller 31481701f3 fix(appstore): Make appstore timeout configurable
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-09-30 13:00:06 +02:00
Marcel Müller 31b8d36802 fix(appstore): Also catch ClientException and ServerException
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-09-30 11:27:47 +02:00
Côme Chilliet 20e536839a feat: Add admin-delegation-section as well for completeness
Also renamed delegation into admin-delegation in xml schema.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:15 +02:00
Côme Chilliet 09acd7e308 feat(settings): Add support for delegated settings not appearing in menu
Adds a new type of settings, delegation, which is only used for admin
 delegation but does not appear in admin menu.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-28 14:50:14 +02:00
Maxence Lange 0249e3a2f5 fix(userconfig): set 'mail' as indexed
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-09-17 10:17:52 -01:00
Côme Chilliet ae4d38eb63 fix: Allow hyphen in appid
It’s rare but exists for some apps not in the appstore.
Also added unit tests for cleanAppId and fixed small issues with it.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-16 17:59:30 +02:00
Git'Fellow b36e4e3824 fix(AppManager): Argument must be of type array|object
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-08-20 17:16:33 +02:00
Côme Chilliet 12edd2b23a fix: Deduplicate code by using DependencyAnalyzer in the AppManager
Was a bit more complicated than expected because of a dependency loop,
the L10N factory uses the app manager, thus the AppManager cannot depend
on I10N directly or indirectly in its constructor.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:40 +02:00
Côme Chilliet b7c15949ce chore: Get rid of AppLocator helper
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:40 +02:00
Côme Chilliet 0e01bc09a9 chore: Inline OC_App::setupBackgroundJobs
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:39 +02:00
Côme Chilliet e5606d7fe3 chore: Move getAppPath and getAppWebPath implementations into AppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 17:09:39 +02:00
Côme Chilliet 4abfd4871f chore: Move isAppCompatible and shouldUpgrade to the app manager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 16:18:38 +02:00
Côme Chilliet 410389867c chore: Inline private method OC_App::setupLiveMigrations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 16:15:27 +02:00
Côme Chilliet f5fac6476f chore: Remove references to obsolete field ocsid in apps info.xml
It’s not even allowed by our xsd schema.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 16:15:25 +02:00
Côme Chilliet fd17555333 chore: Move OC_App::updateApp to IAppManager::upgradeApp
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-08-18 16:14:45 +02:00
provokateurin 5bd626bd40 chore: Fix all method calls with too many arguments
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-22 12:34:49 +02:00
Côme Chilliet 1f5e232314 chore: Move info parsing related method from OC_App to InfoParser
Also fix the tests

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-08 15:57:05 +02:00
Côme Chilliet fb4e580109 chore: Cleanup DependencyAnalyzer and InfoParser
Also fix support for database dependency with attributes in the info.xml

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-08 15:51:59 +02:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Maxence Lange d8fc08d718 feat(lexicon): fix tests
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-06-24 12:10:57 -01:00
Maxence Lange 3d3c77b774 feat(lexicon): migrate keys on app update
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-06-24 12:10:57 -01:00