nextcloud / nextcloud/metavox

WebDAV: expose MetaVox metadata using a SabreDAV plugin

Open
#87 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage enhancement
Dominant language
PHP
Stars
25
Forks
6
PR merge metrics
No merged PRs in 30d

Description

How to use GitHub
  • Please use the 👍 reaction to show that you are interested into the same feature.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Feature request

Which Nextcloud Version are you currently using:

33.0.5

Is your feature request related to a problem? Please describe.

We are integrating our Nextcloud instance with an external document synchronization and indexing tool.

Currently, file content and properties are available through WebDAV, while MetaVox metadata are exposed through its OCS API only.

This implies that, when syncing a file, we have to issue a dedicated OCS API request to get MetaVox metadata.

Describe the solution you'd like

Expose file-level MetaVox metadata fields as WebDAV properties, for example {urn:metavox}gf_source

Expected behaviors:

  • properties available via PROPFIND
  • values resolved dynamically from MetaVox storage
  • efficient implementation for collections/folders by using preloading to avoid N+1 queries (as suggested in the documentation)

This can be achieved by registering a SabreDAV plugin.

Describe alternatives you've considered

  • Using the MetaVox OCS API in addition to WebDAV to fetch required data. This works but requires additional queries.
  • Synchronizing MetaVox values into Nextcloud Files Metadata using Files Metadata API. While this seems possible, it also seems to be way heavier to implement.
  • Implementing a custom app on our side that registers this SabreDAV plugin. But native support in MetaVox would be easier to maintain and more reusable.

Additional context

Nextcloud already extends the DAV server with custom properties through SabreDAV plugins (systemtag for instance).

Our use case is read-only synchronization for a structured document base used by external indexing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Nextcloud's DAV extension documentation and the existing systemtag SabreDAV plugin mentioned in the issue. Trace how MetaVox values are read from storage and how PROPFIND properties are registered, then define the read-only property behavior and collection preloading needed to avoid N+1 queries. Done means MetaVox fields are available through WebDAV for files and folders without extra per-item lookups.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.