Carl Schwan
dd26a8b7eb
fix(cache): Fix parsing cache entry from groupfolder and collectives
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-23 10:52:44 +01:00
Robin Appelman
3f9849d921
Merge pull request #57295 from nextcloud/share-mount-validation-on-share
...
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
feat: perform share mount validation on share instead of on mount
2026-01-22 13:32:11 +01:00
Ferdinand Thiessen
428e76214e
chore: drop legacy WhatsNew
...
This feature was not used in 8 years and from frontend did not even
properly work anymore and was implemented using deprecated API.
So get rid of it.
The last version that was using a changelog from the changelog server
was Nextcloud 20.
We use the firstrunwizard nowadays for informing about Nextcloud
changes in new releases.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-21 23:23:10 +01:00
Anna Larch
f9a159e2ef
fix(activity): allow string types for snowflake IDs
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-01-21 17:37:45 +01:00
Robin Appelman
d71c6796ca
feat: perform share mount validation on share instead of on mount
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-21 16:35:53 +01:00
provokateurin
bf49f62da3
feat(UserPlugin): Also full match on additional email addresses
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:36:37 +01:00
provokateurin
cfa25ece7e
fix(UserPlugin): Rewrite from scratch
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:29:58 +01:00
Cristian Scheid
ed486167d6
refactor: change method name from getMemberships to getTeamsForUser
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:15 +00:00
Cristian Scheid
efd348fab1
refactor: use probeCircles instead of getCircles
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:15 +00:00
Cristian Scheid
3e7d68360a
refactor: replace array_map with foreach to guarantee list<> type
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:15 +00:00
Cristian Scheid
5c1b795cb5
feat(profile): show Teams memberships on account details
...
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:14 +00:00
Ferdinand Thiessen
67eef32b07
fix(DB): support up to 63 character long table and index names
...
We do not support Oracle 11 anymore but at least Oracle 12c (12.2).
So the limitation is gone (Oracle now supports up to 128 character long
names).
Instead we are now limited by MySQL (64 characters) and PostgreSQL (63
characters).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-18 14:50:34 +01: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
2716b0f6a6
Merge pull request #57292 from nextcloud/feature/54562/files-sharing-authoritative
...
feat(files_sharing): implement partial mount providers
2026-01-16 10:37:36 +01:00
Louis Chmn
b6e90acdb6
fix(DefaultSHareProvider): Specify join alias when accessing columns
...
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-16 08:32:14 +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
SebastianKrupinski
16198d2b37
feat: automated appointment creation
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-15 13:31:44 -05: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
Kate
3c498275e5
Merge pull request #57504 from nextcloud/implementCacheChunkGcTtl
2026-01-15 15:39:13 +01:00
Benjamin Gaussorgues
8f8b4411cd
Merge pull request #57553 from nextcloud/getMountsForPath-args
2026-01-15 14:35:51 +01:00
Louis
b9e670d1b4
Merge pull request #57552 from nextcloud/artonge/debt/files_sharing_unify_methods
...
debt(files_sharing): Unify `getSharedWithByPath` and `getSharedWith`
2026-01-15 14:21:26 +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
Louis Chmn
bba8e90c62
fix(files_sharing): Unify getSharedWithByPath and getSharedWith
...
Follow-up of https://github.com/nextcloud/server/pull/57285
This ensure that the behavior is the same and reduce code duplication.
Salvatore's version seems to be more optimized, but I prefer those change to be done separately and for both methods.
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-15 10:22:44 +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
Robin Appelman
62d7165124
Merge pull request #57370 from nextcloud/authoritative-mount-setup
...
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
Authoritative mount setup
2026-01-14 14:19:03 +01:00
Robin Appelman
47530ef95f
feat: add a debug config option to disable authoritative mount optimizations
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 13:03:01 +01:00
Robin Appelman
e5497c7731
fix: protect against infinite loops in setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 11:21:27 +01:00
Robin Appelman
6eb8e8d6fd
Merge pull request #57519 from nextcloud/get-existing-api
...
feat: add api to get a user object without verifying they exist
2026-01-14 11:15:42 +01:00
Carl Schwan
94dd919b88
perf(UserMountCache): Optimize loop
...
These loops since to be called around 60 000 times in one trace I saw.
So it makes sense to use the faster foreach construct.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-13 18:37:51 +01:00
Robin Appelman
467487ecd8
feat: dont reload authoritative mount providers when doing by-path setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-13 16:42:48 +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
Robin Appelman
5924a2e3ec
feat: add api to get a user object without verifying they exist
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-13 15:59:07 +01:00
Côme Chilliet
3c80b7f2b3
fix: Use strict array comparisons in lib/
...
To avoid surprises with corner cases.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-13 11:48:04 +01:00
Git'Fellow
df018cf994
fix(gc): Implement cache_chunk_gc_ttl
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-01-13 09:00:32 +01:00
Ferdinand Thiessen
5f33fee58f
Merge pull request #56941 from nextcloud/fix/importmaps
...
fix(template): add import map for JS module entry points
2026-01-12 20:38:58 +01:00
Kate
258b30606f
Merge pull request #57357 from Freiheitswolke/fix/NavigationManager/Remove-break-to-return-all-defaultEntryIds
2026-01-12 19:29:18 +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
Joas Schilling
6bdda55733
Merge pull request #57453 from nextcloud/feat/noid/qr-code-in-account-menu
...
Improve usability of QR code login
2026-01-12 14:01:10 +01:00
Ferdinand Thiessen
f0e020f97d
fix(template): add import map for JS module entry points
...
Currently apps are broken if they have exports in the JS entry point,
because they then will import from the entry point but because they do
not know about the Nextcloud cache buster they will import without cache
buster.
This results in two problem:
1. The module might be outdated (old cached)
2. The module is duplicated, so the module will be loaded twice and will
have two different - out of sync - states. This also means it will
re-run sideeffects of the entry point.
To fix this we generate an import map which basically maps the plain
entry point script to the script with cache buster added.
(Some background: Bundler will try to minimize chunks (reduce page
loading time) so they can inline modules into entry points and thus
extend the entry point exports and then this issue would be caused).
For example:
```js
// entry.mjs
console.error('called')
async function onClick() {
await import('./chunk.mjs')
}
export const name = 'foo'
// chunk.mjs
import { name } from './entry.mjs'
console.error(name)
```
When calling `onClick` without this fix the output will be:
> called
> called
> foo
With this fix:
> called
> foo
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-12 13:34:11 +01:00
Joas Schilling
8b4491ae1c
fix: Add translation for temporary app password names
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-12 11:58:45 +01:00
Joas Schilling
f4acd8a7ab
fix: Adjust and add new tests
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-12 11:07:44 +01:00
Benjamin Gaussorgues
e0e5cdf3e1
Merge pull request #57449 from nextcloud/feat/unstable/moving-out-of-unstable-signature
2026-01-12 09:39:21 +01:00