22600 Commits

Author SHA1 Message Date
Martin Mattel
fdf7e502be [docs-only] Update images in the ocis_full deployment example 2026-03-17 12:06:35 +01:00
Paul Faure
5063c80536 fix(proxy): address review — introductionVersion and env var description
- Change introductionVersion from "8.0.0" to "Daledda" (codename)
- Clarify that the cache is a process-lifetime cache tracking which
  users have a personal space, not one of the general proxy caches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 13:44:33 -04:00
Martin
ac5dfc01ec Automated changelog update [skip ci] 2026-03-16 16:01:20 +00:00
Martin
48dd8ff19f Merge pull request #12109 from owncloud/update_special_yaml_files
[docs-only] Update extended_vars.yaml and env_vars.yaml
2026-03-16 16:59:18 +01:00
Martin Mattel
7087d771c9 [docs-only] Update the check-env-var-annotation script 2026-03-16 16:20:27 +01:00
Paul Faure
224c0e6244 refactor(proxy): extract helpers to reduce ServeHTTP cognitive complexity
Extract homeKnown() and createHome() from ServeHTTP to bring
cognitive complexity under the SonarCloud limit of 15.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 11:20:18 -04:00
Paul Faure
9bcf14a897 test(search): add unit test for descending into already-indexed directories
Verifies that IndexSpace visits children inside 100 already-indexed
directories whose mtimes match the index.  Before the SkipDir fix
these subtrees would be permanently skipped after an interrupted
reindex run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 11:07:04 -04:00
Paul Faure
e227983a9f feat(proxy): add PROXY_CREATEHOME_CACHE_DISABLED env var
Allow operators to disable the in-memory CreateHome cache via
PROXY_CREATEHOME_CACHE_DISABLED as a fallback if the cache causes
unexpected behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 10:50:36 -04:00
Martin
9336a1bfed Automated changelog update [skip ci] 2026-03-16 10:30:08 +00:00
Martin
df4b6a337a Merge pull request #12114 from paul43210/fix/idp-babel-freebsd
fix(idp): disable absolute Babel runtime paths for FreeBSD compatibility
2026-03-16 11:21:16 +01:00
Paul Faure
0e5233dd50 docs: update changelog with PR number
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:28:24 -04:00
Paul Faure
2cc1640085 fix(search): always descend into directories during IndexSpace walk
The SkipDir optimization skipped entire subtrees when a directory was
already indexed with a matching mtime. After a failed indexing run
(e.g. Tika crash), this permanently prevented unindexed children from
being visited since the parent directory's mtime doesn't change when
child extraction fails. With O(1) DocID lookups the per-file skip
check is negligible, making SkipDir unnecessary for correctness.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 00:23:36 -04:00
Martin
0cfa1ad3f0 Automated changelog update [skip ci] 2026-03-14 09:04:49 +00:00
Martin
eb9fae42fd Merge pull request #12060 from paul43210/fix/uploadready-add-resourceid
[docs-only] fix: add ResourceID field to UploadReady event with file's node ID
2026-03-14 10:02:27 +01:00
Paul Faure
4a2004784c docs: add reva #560 link to changelog
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 09:52:46 +01:00
Paul Faure
c778609044 fix: add ResourceID field to UploadReady event with file's node ID
The UploadReady event's FileRef.ResourceId.OpaqueId is set to the space
root ID (required for CS3 gateway path resolution via WalkPath). This
means consumers that need the file's actual node ID for Graph API URLs
get the space root instead.

Add a separate ResourceID field (following the BytesReceived pattern)
that carries the file's actual resource identifier with the correct
OpaqueId set to session.NodeID().

Upstream: https://github.com/owncloud/reva/pull/XXXXX

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 09:52:46 +01:00
Paul Faure
a087a99da0 fix: address SonarCloud linter issues in CreateHome middleware
- Use canonical header casing "X-Access-Token" (canonicalheader)
- Return true instead of nil on success to avoid nilnil (nilnil)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:50:05 -04:00
Paul Faure
eb9cc2bffd docs: update changelog with actual PR number
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:40:55 -04:00
Paul Faure
3c51128d3e enhancement: log effective data and config paths at startup
Log the resolved OCIS_BASE_DATA_PATH and OCIS_CONFIG_DIR at startup
so operators can immediately see where data is being written. This
catches misconfigured Docker volume mounts where data silently falls
back to ~/.ocis inside the container instead of /var/lib/ocis.

Fixes: #12044

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:38:42 -04:00
Paul Faure
b588579ff7 docs: update changelog with PR number
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:34:33 -04:00
Paul Faure
31ce8a68a7 fix(proxy): deduplicate CreateHome calls with singleflight and sync.Map
The CreateHome middleware fired a gRPC CreateHome request on every
authenticated HTTP request. On first login the browser sends ~11
parallel requests, each triggering a redundant call. Use singleflight
to collapse concurrent calls for the same user and sync.Map to cache
successful results so subsequent requests skip the gRPC call entirely.

Fixes: #12068

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:34:10 -04:00
Paul Faure
0be2bd11aa docs: update changelog with PR number
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:21:51 -04:00
Paul Faure
3030491395 fix(idp): disable absolute Babel runtime paths for FreeBSD compatibility
babel-preset-react-app defaults to absoluteRuntime: true, which
hardcodes Linux-specific absolute paths to @babel/runtime helpers.
This breaks builds on FreeBSD. Setting absoluteRuntime: false makes
Babel resolve the runtime relative to the source file instead.

Fixes: #12065

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 23:21:23 -04:00
Martin Mattel
5308fb916c [docs-only] Update extended_vars.yaml and env_vars.yaml 2026-03-13 11:07:55 +01:00
Martin
3ac19ca463 Merge pull request #12112 from owncloud/fix/ci-codacy-2
fix: ci, codacy, skip artifact upload when no tests run i.e. doc only…
2026-03-13 11:07:30 +01:00
Michal Klos
297a00fc44 fix: ci, codacy, skip artifact upload when no tests run i.e. doc only change 2026-03-13 10:26:25 +01:00
Martin
953dc0f319 Automated changelog update [skip ci] 2026-03-13 08:59:47 +00:00
Martin
e687a05800 Merge pull request #12103 from paul43210/fix/search-indexspace-docid-lookup
perf(search): use O(1) DocID lookup instead of full search in IndexSpace
2026-03-13 09:57:18 +01:00
Martin
0c6e574d15 Merge pull request #12104 from paul43210/fix/search-bleve-optimize
enhancement(search): optimize bleve index after bulk reindexing
2026-03-13 09:57:15 +01:00
Paul Faure
0d95d40f7c docs: add doc comments to Lookup mock call methods
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 20:37:48 -04:00
kobergj
90655c56a3 Automated changelog update [skip ci] 2026-03-12 07:30:11 +00:00
kobergj
dd99e6daf1 Merge pull request #12102 from kobergj/TestBlobstoreCli
Add CLI command to test Blobstore
2026-03-12 08:27:18 +01:00
Paul Faure
eb357f820d perf(search): use O(1) DocID lookup instead of full search in IndexSpace
Replace the per-file Search() call in IndexSpace with a direct Lookup()
using Bleve's DocIDQuery. The old approach parsed a KQL query string,
compiled it, and ran a full-text search for each file — taking 600-950ms
per file on large indexes. The new approach does an O(1) document lookup
by ID and compares mtime/Extracted fields in memory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 07:45:15 +01:00
Paul Faure
728a7b4d8d fix: name parameters in forceMerger interface to satisfy inamedparam linter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 07:44:29 +01:00
Paul Faure
6270553209 enhancement(search): optimize bleve index after bulk reindexing
Add an Optimizer optional interface and Bleve.Optimize() method that
triggers ForceMerge to compact all index segments into one. Called
automatically after IndexSpace completes its walk. Over time, writes
create multiple segments that degrade query performance — compaction
consolidates them for faster searches.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 07:44:29 +01:00
Sawjan Gurung
1a5aeeb2e9 Automated changelog update [skip ci] 2026-03-12 05:03:56 +00:00
Sawjan Gurung
39192c7bea ci: use existing servers (#12100)
* ci: enable k8s setup for remaining suites

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: use existing servers

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: fix tests

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: increase timeout

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix mail setup

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: increase timeout

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix tika

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: fix csp directives

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: merge ocm provider configs

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: fix notification tests

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix script file

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: enable ocm server logs

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix pattern

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: fix cluster wait

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* ci: run auth-app only when required

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: fix sharing tests

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

* test: fix tests

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>

---------

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>
2026-03-12 10:46:13 +05:45
Julian Koberg
15b1c38e38 fix: adjust to comments from CR
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2026-03-11 08:55:54 +01:00
Martin
0ca881b400 Automated changelog update [skip ci] 2026-03-11 07:49:51 +00:00
Martin
c65dff7fac Merge pull request #12070 from paul43210/fix/csp-font-src
fix(proxy): add data: to font-src CSP to allow bundled KaTeX fonts
2026-03-11 08:47:29 +01:00
Paul Faure
d4367fb224 fix(proxy): update tests and example configs for font-src data: CSP change
Update acceptance tests and all deployment example CSP configs to include
'data:' in font-src, consistent with the default csp.yaml change.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 22:22:17 -04:00
Julian Koberg
1d2c329e66 feat: add cli command to test the blobstore
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2026-03-10 16:40:00 +01:00
Paul Faure
d8984c4c06 docs: add changelog for CSP font-src fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:08:52 +01:00
Paul Faure
ece1043ca2 fix(proxy): add data: to font-src CSP to allow bundled KaTeX fonts
The bundled Web UI CSS (from owncloud/web) inlines the KaTeX_Size3 font
as a base64 data:font/woff2 URI. The default CSP sets font-src to 'self'
only, which blocks these data URIs and produces a console error on every
page load:

  Loading the font 'data:font/woff2;base64,...' violates the following
  Content Security Policy directive: "font-src 'self'".

Add 'data:' to font-src, matching the existing pattern where img-src
already permits data: URIs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:08:52 +01:00
Martin
4fba74c1f7 Automated changelog update [skip ci] 2026-03-10 08:20:45 +00:00
Martin
296609da98 Merge pull request #12095 from paul43210/fix/search-incomplete-extraction
fix(search): prevent incomplete Tika extractions from blocking re-index
2026-03-10 09:18:11 +01:00
Martin
03bfabec55 Merge pull request #12094 from paul43210/feature/kql-numeric-range-queries
feat(kql): support numeric range queries
2026-03-10 09:17:38 +01:00
Michal Klos
983dc5f7b5 fix: X-XSS-Protection header (#12092) 2026-03-10 09:15:35 +01:00
Sawjan Gurung
d65dd806de ci: use script to prepare ocis charts (#12081)
ci: fix path



ci: fix wopi servers



ci: conditional resources

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>
2026-03-10 12:58:43 +05:45
Paul Faure
b52af29f8e refactor(kql): extract dateTimeQuery helper to further reduce walk() complexity
Extracts DateTimeNode handling into dateTimeQuery(), same pattern as
numericQuery(). Brings walk() cyclomatic complexity from 36 to ~30,
well below the SonarCloud threshold of 35.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 17:45:13 -04:00