1
0
mirror of https://github.com/owncloud/ocis.git synced 2026-10-23 23:29:02 +03:00
Commit Graph

79 Commits

Author SHA1 Message Date
Roman Perekhod
216f25957d feat: [OCISDEV-1563] remove the owncloudsql driver
Remove the deprecated owncloudsql driver configuration from the storage-users,
auth-basic, users, groups and sharing services and from the migrate command.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-21 12:20:38 +02:00
Firas Frikha
69433426be chore(deps): [OCISDEV-901] bump reva to the legacy upload removal (#13112)
Signed-off-by: Firas Frikha <firas.frikha@kiteworks.com>
2026-10-12 11:51:14 +02:00
Prajwol Amatya
c0c15f8cab chore: bump golang.org/x/net version (#13120) 2026-10-12 09:31:15 +02:00
LarsJurgensen
cc8c1c883f ci: [k6-test] [OCISDEV-900] Extract upload coordinator out of decomposedfs (#12913)
* chore(OCISDEV-900): bump reva to pr7-switchover, add upload_directory and mount_id to revaconfig

* chore(OCISDEV-900): bump reva to the switchover rebased on the upload write fix

* chore(OCISDEV-900): bump reva to main with the upload coordinator switchover

---------

Co-authored-by: Firas Frikha <firas.frikha@kiteworks.com>
2026-10-07 18:28:34 +02:00
Michal Klos
90d58ae47d feat: [OCISDEV-1437] show suggested expiry date of 30 days (#12988) 2026-10-07 16:03:09 +02:00
Roman Perekhod
9143307b70 fix: [ocisdev-1433] fix public share, add The grpc clients keepalive and more (#13020) (#13068)
* fix: the public share configuration and fixed graceful shutdown

* fix: [OCISDEV-1433] remove GRPC_MAX_CONNECTION_AGE

The setting closed healthy grpc connections on a timer so that clients would redo
their DNS lookup. It never helped against the failure it was reached for - a
connection whose peer stopped answering - because the age limit is enforced by
the server, the grace period was left at infinity so a request already in flight
was never ended, and any value without a unit suffix silently disabled it again.

Detecting a peer that stops answering is now the job of the grpc clients, which
ping the peer while a request is in flight. The servers here got the matching
enforcement policy so they accept those pings; the client side arrives with the
next reva bump.

* fix: Added the new variable OCDAV_DISABLE_PROPFIND_PUBLIC_LINK_RESOLUTION that disable the resolution of public link shares when answering PROPFIND requests.

* chore: bump reva

* fix: The keepalive added to grpc clinet

* chore: bump reva

* build(deps): bump go 1.26.8, grpc-go dependency

---------

(cherry picked from commit e86eb4d210)

For the 9.0 branch, the reva dependency was pointed at reva's main-branch
merge of PR #748 (commit 373f9509a, pseudo-version
v2.0.0-20261005091647-373f9509a363) instead of the 8.2-targeted
e0beaa380005, since the 8.2 merge predates the VaultMode/UploadSessionFilter.Orphaned
APIs already present on the 9.0 reva lineage.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

# Conflicts:
#	changelog/unreleased/security-bump-grpc.md
#	go.mod
#	go.sum
#	vendor/google.golang.org/grpc/server.go
#	vendor/google.golang.org/grpc/stream.go
#	vendor/google.golang.org/grpc/version.go
#	vendor/modules.txt
2026-10-06 17:21:46 +02:00
Roman Perekhod
c4a6948a67 chore: bump deps (reva, web, golang) (#13066)
* chore: bump reva

* chore: bump pnpm dependencies

* fix: avoid go vet false positive in userlog conversion.go

The go.mod bump to go 1.26.8 made go vet flag loadTemplates' calls to
t.Get(nt.Subject/nt.Message) as non-constant format strings, breaking
the build for services/userlog/pkg/service. These are translation
lookup keys, not printf format strings, so route the call through a
local func value to defeat vet's static trace.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* chore: bump grpc

Fixes GO-2026-6443, a server panic when handling requests missing
authority or Host headers, flagged by govulncheck in CI.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-05 11:59:28 +00:00
Michal Klos
533b0d011b feat: [OCISDEV-1392] retry failed blob commit after postprocessing (#12970) 2026-09-18 15:09:02 +02:00
Matteo
0642bb1514 fix(deps): bump reva to fix restoring already-restored trash item returns 500 (#12969)
fix(deps): bump reva to pull in ErrNotExist->NotFound fix for RestoreRecycleItem

Restoring an already-restored/purged trash item returned 500 CODE_INTERNAL
instead of 404. Fixed upstream in owncloud/reva#740; bump the vendored reva
to 98fec04d9 to pick it up.
2026-09-18 07:05:53 +02:00
Firas Frikha
6d8bd29cef fix: [OCISDEV-1200] do not share vault resources with users who cannot access them (#12905)
* fix: [OCISDEV-1200] do not leak vault file names via share notifications

* test: [OCISDEV-1200] fix apiVault scenarios for users without vault mode
2026-09-14 15:49:35 +02:00
Gaurav Soni
ef41e736d1 fix: [OCISDEV-388] renaming a resource to its current name is a no-op (#12784)
A MOVE whose source and destination resolve to the same resource is now
answered with 204 No Content server side instead of a confusing 403 or
404, and instead of 409 Conflict on the id based dav route, so every
client behaves the same way. The no-op still requires the move
permission.

The server-side guard lives in reva (owncloud/reva#708 and the follow-up
owncloud/reva#713, which moves the guard above the recursion checks so it
is also reached when the request addresses the resource by its id).
Pulled in here by bumping reva to v2.0.0-20260813121157-d386075a0421.
vendor/ was regenerated with `go mod vendor`; no hand edits.

On the test side the @issue-1976 tags are dropped from the five MOVE
feature files and the corresponding entries are removed from both
expected-failures lists. Scenario Outlines that mix roles with and
without the move permission parameterize the expected status in an extra
http-status-code Examples column rather than being split into duplicate
scenarios. The gherlint newline_before_scenario rule is configured as
["error", 2, true], counting tag lines toward the total, so the eight
scenarios that lost their tag get back the blank line it occupied.

Drop the "viewer" row from the same-name Examples table in
moveByFileId.feature: "viewer" is not a valid space role for a
permissionsRole invitation, so the step errored with
Role 'viewer' not found, and the "Space Viewer" row already covers
the 403.
2026-08-14 10:50:35 +02:00
Michal Klos
d9bae04aee feat: [OCISDEV-1115] harden nats communication (#12777)
* feat: [OCISDEV-1115] harden nats communication

* feat: bump reva for tls-enabled stores
2026-08-13 09:56:24 +00:00
kobergj
003e8cddb8 fix(storage-users): add --orphaned upload session filter (#12739)
Bump reva to pick up the fix for upload sessions whose node metadata can no
longer be read. Such sessions can never finish postprocessing, stay in
processing state indefinitely and keep consuming the quota of their space.
Cleaning them previously removed the uploaded bytes without releasing the quota.

Wire up the new Orphaned session filter so operators can list the affected
sessions and remove them with --clean:

    ocis storage-users uploads sessions --orphaned
    ocis storage-users uploads sessions --orphaned --clean

Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2026-08-06 15:00:09 +02:00
Matteo
092be75ca0 Fix/ocisdev 1165/resource with same name gets prefix on share (#12730)
* feat: bump reva

Bumps reva to 441d6e77b33d, pulling in the vault/non-vault share
mountpoint collision fix, decomposedfs DisableVersioning aspect
handling, ChunkHandler.Assemble/scan fields, and LDAP retry policy
config. Also picks up the transitive nats-server, grpc, go-sqlite3
and antithesis-sdk-go bumps from reva's go.mod.

* docs: add changelog for vault share mountpoint collision fix

Documents the reva fix (owncloud/reva#691) that stops resources shared
under the same name from vault and non-vault mountpoints from getting
a spurious (1) suffix.
2026-08-06 07:19:09 +02:00
Lukas Hirt
fc34bd9824 feat(ldap): [OCISDEV-1031] add opt-in LDAP connection pool (#12689)
Bump the vendored reva dependency to pick up the opt-in bounded LDAP
connection pool (owncloud/reva#658, #665), and wire it into oCIS: add
pool_enabled/pool_size/pool_checkout_timeout config to auth-basic,
users, groups and graph, forward it into the reva config map for the
first three, and unify graph's identity backend onto reva's LDAP
client (utils.GetLDAPClientFromConfig) instead of its own hand-rolled
reconnecting client, now that reva implements PasswordModify and
ModifyWithResult on both LDAP clients. Pooling is off by default and
fully backwards compatible.

Signed-off-by: Lukas Hirt <info@hirt.cz>

test(ldap): [OCISDEV-1031] run graph LDAP suites with pooling enabled in CI

Add a dedicated ldap-pool-tests job to acceptance-tests.yml that reruns
apiGraphUser/apiGraph/apiGraphGroup with OCIS_LDAP_POOL_ENABLED=true, so
concurrent behat requests exercise checkout/release, eviction and the
pooled PasswordModify/ModifyWithResult path end-to-end, in addition to
the existing pooling-disabled runs of the same suites.

Signed-off-by: Lukas Hirt <info@hirt.cz>

fix(ldap): [OCISDEV-1031] set real pool_size/pool_checkout_timeout defaults

Only PoolEnabled: false was set in the four defaultconfig.go files;
PoolSize/PoolCheckoutTimeout were left as Go zero values (0/0s),
relying on reva's NewLDAPPool substituting 5/30s when <= 0. That
reads as "zero connections" to an operator in the generated yaml
config rather than "default 5". Set the real defaults (5, 30s)
so documented defaults match what's emitted.

Signed-off-by: Lukas Hirt <info@hirt.cz>

chore(deps): [OCISDEV-1031] bump reva to pick up LDAP TLS fixes

Bumps the vendored reva dependency to owncloud/reva@8ee2020, picking
up owncloud/reva#672 (restore MinVersion: tls.VersionTLS12 on LDAP
TLS connections) and owncloud/reva#674 (restore pinned-CA-only trust
and PEM validation for the CA-cert path), both flagged during review
of this PR.

Signed-off-by: Lukas Hirt <info@hirt.cz>

docs: point changelog fragment at forward-port PR #12689
2026-08-05 17:57:48 +02:00
Matteo
4ba02000fa fix: bump reva to allow space managers to remove others' shares (#12705)
* fix: bump reva to allow space managers to remove others' shares

Space managers with the RemoveGrant permission on a resource could not
remove user shares created by other users; the share manager only allowed
the share's creator to remove it. This bumps reva to the commit that fixes
Unshare to also honor the RemoveGrant permission.

* fix(l10n): route gotext.Locale calls through func fields to satisfy go vet

Bumping reva pulled in reva's go 1.26 requirement, and go 1.26's stricter
printf vet analyzer now sees through the OcisLocale interface to flag
gotext.Locale.Get as a printf-wrapper, breaking go test across 5 packages.
Forwarding through func fields hides that static trail from vet.
2026-08-04 13:42:08 +02:00
Michal Klos
86fa96362a feat: [OCISDEV-855] receivedsharecache: retry on transient storage errors in CAS loop (#12621) 2026-07-24 19:43:46 +02:00
Roman Perekhod
aa9aa9b454 fix: [OCISDEV-810] fix the space role and custom role checks (#12540)
* fix: [OCISDEV-810] fix the space role and custom role checks

* test: [OCISDEV-810] expect 400 when updating a share to a disabled role

The update (PATCH) permission handlers now enforce the admin role
allowlist, consistent with invite. Updating a share to a disabled role
(Secure Viewer, Denied, Space Editor Without Versions) therefore returns
400 instead of the previous silent 200. Update the @issue-10768 scenarios
to assert the new, correct behavior.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 15:13:52 +02:00
Matteo
380273bb84 Feat/ocisdev 949/disable direct sharing (#12542)
* build(deps): [OCISDEV-949] bump reva to v2.0.0-20260709150645-a9d5432e6f7f

Includes owncloud/reva#651, which adds the enable_user_sharing and
enable_public_sharing config options this feature depends on.

* feat: [OCISDEV-949] add options to disable direct and public sharing

Adds two independent, per-deployment config options:

- OCIS_ENABLE_USER_SHARING (default true), read by the frontend, graph,
  sharing and ocm services. When false, creating new user, group or
  federated shares is rejected (via reva's usershareprovider and
  ocmshareprovider, and via the graph Invite endpoint for the modern web
  client), the legacy sharees search endpoint returns no results, and
  the files_sharing.user.enabled / user_enumeration.enabled capabilities
  report false so the web UI hides the "share with people" search.
  Space membership invites are exempt.

- OCIS_ENABLE_PUBLIC_SHARING (default true), read by the frontend and
  sharing services. When false, creating new public links is rejected
  via reva's publicshareprovider, and files_sharing.public.enabled
  reports false so the web UI hides public link creation.

The two settings are fully independent of each other.
2026-07-10 11:59:08 +02:00
Michal Klos
6d31212600 fix: [OCISDEV-756] harden ocm create share (#12496)
* fix: harden ocm create share

* chore: bump traefik
2026-07-08 13:26:43 +02:00
Roman Perekhod
f3d2bc0557 fix: [OCISDEV-828] Fix the response code on deleting a non-existing link share on a space (#12266)
fix: Return 404 when deleting a non-existing link share on a space
2026-06-22 14:10:44 +02:00
Juan Pablo Villafañez
4945eb6833 Autoprop (#12386)
* feat: metadata autopropagation

* feat: autoprop support for MFA / vault mode

* fix: replace some http clients with reva ones

* chore: required lib update

* fix: adjust unit tests and generate new mocks

* fix: apply autopropagation to all regular graph routes

* chore: updated reva dependency

* fix: return the right decorator for the thumbnails

* fix: remove autopropagation headers in the proxy
2026-06-19 10:43:41 +02:00
LarsJurgensen
1ff20df320 chore: bump reva to 806e6 (#12439)
chore: bump reva to 806e6cde7fe5c5ecc9d6cf6372fa67120cd0c344
2026-06-16 10:14:24 +00:00
Roman Perekhod
d7a7cd9033 feat: [OCISDEV-720] fix public link (#12332) 2026-05-21 17:55:15 +02:00
Matteo
7d566c1ea2 feat: expose MFA session duration as configurable capability (#12335) 2026-05-21 15:32:26 +02:00
Michal Klos
a091d099ce fix: [OCISDEV-873] *WithoutTrashbin space editor roles render files read-only in Web frontend (#12346)
* fix: [OCISDEV-873] *WithoutTrashbin space editor roles render files as read-only in Web frontend

* fix: ci after godata bump

ocis CI bumped github.com/CiscoM31/godata from v1.0.10 → v1.0.11 as a transitive dependency of the reva bump. The new godata version parses "mail add 10 (invalid operator) as a parse error → 400 instead of unsupported operation → 501.

* fix ci: more precise role

* fix: bump reva to pull fix merged into reva
2026-05-21 09:47:20 +00:00
Roman Perekhod
9e0ebd2c25 feat: bump reva to latest 2026-05-15 13:23:55 +02:00
Julian Koberg
ee264345ca feat(graph): [OCISDEV-807] add SpaceEditorWithoutVersionsWithoutTrashbin role
Adds a new space membership role "Can edit" that allows creating, uploading,
downloading, editing, moving and deleting on a space without access to file
versions or the trashbin. Also bumps reva to include the corresponding role
constructor.

Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2026-04-27 09:23:36 +02:00
Roman Perekhod
571977947b feat: bump reva to latest 2026-03-24 09:38:24 +01:00
Roman Perekhod
837fff3ab6 feat: bump reva to latest 2026-03-04 16:02:26 +01:00
Roman Perekhod
16f14898e1 feat: bump reva to latest 2026-02-23 17:40:18 +01:00
Lukas Hirt
db06952566 feat(graph): [OCISDEV-602] add space ID to incoming shares
Added the `spaceId` to the incoming shares. This is aligning the graph
API with the WebDAV API where the clients can use `spaceid` property.
This change allows clients to get the space ID directly instead of
having to parse the resource ID.
2026-02-16 14:21:38 +01:00
Roman Perekhod
5be7db71b9 fix:[OCISDEV-617] Expose the signature-auth attribute 2026-02-13 12:20:12 +01:00
Roman Perekhod
da5e63dfe3 feat: bump go to 1.25
feat: bump mockery to v2.53.5

feat: bump govulncheck

feat: bump bingo to v0.10.0

force go-1.25.7

update thumbnail images for test

bump reva to latest
2026-02-10 16:27:52 +01:00
Michal Klos
57e063a9bd chore: bump reva (#11957) 2026-01-23 11:49:55 +01:00
Lukas Hirt
a8efe46b10 feat(graph): [OCISDEV-458] [OCISDEV-459] add users instances
The user endpoint now returns the instances that the user is either
a member or a guest of and the cross instance reference.
2026-01-20 10:26:58 +01:00
Michal Klos
0bf8179b66 chore: bump reva 81e6e21 (#11922) 2026-01-19 11:04:22 +01:00
Lukas Hirt
664726cf02 chore: [OCISDEV-483] bump reva
This updates the ownCloud Reva dependency to commit `82c22e954c1cdabb62a14fbe5c1a4ec3e1dabd45`.
Changelog: Changelog: 82c22e954c...a122a95387
2025-11-13 10:58:52 +01:00
Julian Koberg
4d940649de feat: bump libre-graph-api-go
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-11-10 14:18:11 +01:00
Roman Perekhod
304c3f1890 fix: [OCM] Specification Compliance (#11773)
* fix: [OCISDEV-450] fix ocm path

* fix: [OCM] Specification Compliance

* update the test

* fix: [OCISDEV-471] OCM: User can't change the federated share permission

* fix tests

* test: fix federated user regex

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

* test: fix federated user regex

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

* test: fix federated user regex

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

* test: adjust test expectations

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

* latest reva ocm changes

---------

Signed-off-by: Saw-jan <saw.jan.grg3e@gmail.com>
Co-authored-by: Saw-jan <saw.jan.grg3e@gmail.com>
2025-11-10 12:38:10 +01:00
Lukas Hirt
52b720e44e chore: bump reva
This updates the ownCloud Reva dependency to commit `82c22e954c1cdabb62a14fbe5c1a4ec3e1dabd45`.
Changelog: cb98fe521d...82c22e954c
2025-10-20 10:54:36 +02:00
Julian Koberg
caf84ecd9d feat: bump reva
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-10-01 16:09:34 +02:00
Julian Koberg
da61782260 fix: clean uploads command
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-09-25 16:00:43 +02:00
Julian Koberg
285663a6f2 feat: bump reva
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-09-18 10:48:59 +02:00
Roman Perekhod
6b5e1d0276 [Build-deps]: bump reva latest 2025-09-16 09:32:49 +02:00
Roman Perekhod
a917a93524 feat: [full-ci] reva bump 2025-09-04 09:42:53 +02:00
Roman Perekhod
55fe5bd3ec feat: [OCISDEV-147] use the signing-key for a public link 2025-08-19 17:42:26 +02:00
Roman Perekhod
cee9e61e41 fix: [OCISDEV-176] Tolerate the empty request body for WebDAV operations 2025-07-14 14:41:59 +02:00
Julian Koberg
8fd7be6407 feat(ocis): Bump Reva
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-06-18 16:22:42 +02:00
Julian Koberg
77a5d94a60 fix(ocis): go mod vendor
Signed-off-by: Julian Koberg <julian.koberg@kiteworks.com>
2025-06-12 14:48:00 +02:00