From fbc868522d4b6bbf915602daa7083904ebdd748b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Thu, 21 May 2026 15:38:00 +0200 Subject: [PATCH 1/3] Verify parent ids during the consistency check Fixes #2372 --- opencloud/pkg/command/posixfs.go | 89 +++++++++++++++++++++++++++----- 1 file changed, 77 insertions(+), 12 deletions(-) diff --git a/opencloud/pkg/command/posixfs.go b/opencloud/pkg/command/posixfs.go index d25df3052f..d0218ecf75 100644 --- a/opencloud/pkg/command/posixfs.go +++ b/opencloud/pkg/command/posixfs.go @@ -16,9 +16,12 @@ import ( "github.com/opencloud-eu/opencloud/services/storage-users/pkg/event" "github.com/opencloud-eu/opencloud/services/storage-users/pkg/revaconfig" "github.com/opencloud-eu/reva/v2/pkg/events" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/options" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/registry" "github.com/pkg/xattr" + "github.com/rs/zerolog" "github.com/spf13/cobra" "github.com/theckman/yacspin" "github.com/vmihailenco/msgpack/v5" @@ -35,6 +38,7 @@ const ( var ( spinner *yacspin.Spinner restartRequired = false + ignorer *ignore.Ignorer ) type IDCacher interface { @@ -153,6 +157,12 @@ func checkPosixfsConsistency(cmd *cobra.Command, cfg *config.Config) error { rootPath, _ := cmd.Flags().GetString("root") indexesPath := filepath.Join(rootPath, "indexes") + opt, _ := options.New(map[string]interface{}{ + "root": rootPath, + }) + log := zerolog.Nop() + ignorer = ignore.NewIgnorer(opt, &log) + _, err := os.Stat(indexesPath) if err != nil { if os.IsNotExist(err) { @@ -209,6 +219,7 @@ func checkSpaces(basePath string) { } func checkSpace(spacePath string) { + spinner.Message("") spinner.Suffix(fmt.Sprintf(" Checking space '%s'", spacePath)) info, err := os.Stat(spacePath) @@ -228,10 +239,11 @@ func checkSpace(spacePath string) { } checkSpaceID(spacePath) + checkNodeIDs(spacePath) } func checkSpaceID(spacePath string) { - spinner.Message("checking space ID uniqueness") + spinner.Message(" - checking space ID uniqueness") entries, uniqueIDs, oldestEntry, err := gatherAttributes(spacePath) if err != nil { @@ -240,7 +252,6 @@ func checkSpaceID(spacePath string) { } if len(entries) == 0 { - logSuccess("(empty space)") return } @@ -278,8 +289,65 @@ func checkSpaceID(spacePath string) { } fixSpaceID(spacePath, obsoleteIDs, targetID, entries) spinner.Unpause() - } else { - logSuccess("") + } +} + +func walkParentIDs(dir string, parentID string) int { + fixes := 0 + entries, err := os.ReadDir(dir) + if err != nil { + logFailure("Error reading directory '%s': %v", dir, err) + return 0 + } + + for _, entry := range entries { + fullPath := filepath.Join(dir, entry.Name()) + + if ignorer.IsIgnored(fullPath) { + continue + } + + actualParentID, err := xattr.Get(fullPath, parentIDAttrName) + if err != nil || string(actualParentID) != parentID { + err = xattr.Set(fullPath, parentIDAttrName, []byte(parentID)) + if err != nil { + logFailure("Failed to fix parent ID for '%s': %v", fullPath, err) + } else { + spinner.Pause() + fmt.Printf("\n + Fixed parent ID for '%s'\n", fullPath) + spinner.Unpause() + fixes++ + restartRequired = true + } + } + + if entry.IsDir() { + nodeID, err := xattr.Get(fullPath, idAttrName) + if err != nil || len(nodeID) == 0 { + logFailure("Directory '%s' missing '%s', skipping its children", fullPath, idAttrName) + continue + } + walkParentIDs(fullPath, string(nodeID)) + } + } + return fixes +} + +func checkNodeIDs(spacePath string) { + spinner.Message(" - checking parent IDs") + + rootID, err := xattr.Get(spacePath, idAttrName) + if err != nil || len(rootID) == 0 { + logFailure("Space root '%s' missing '%s' attribute", spacePath, idAttrName) + return + } + + fixes := walkParentIDs(spacePath, string(rootID)) + + if fixes > 0 { + spinner.Pause() + fmt.Printf("\n ✓ Fixed %d incorrect parent IDs in %s\n", fixes, filepath.Base(spacePath)) + spinner.Unpause() } } @@ -324,6 +392,9 @@ func gatherAttributes(path string) ([]EntryInfo, map[string]struct{}, EntryInfo, for _, entry := range dirEntries { fullPath := filepath.Join(path, entry.Name()) + if ignorer.IsIgnored(fullPath) { + continue + } info, err := os.Stat(fullPath) if err != nil { fmt.Printf(" - Warning: could not stat %s: %v\n", entry.Name(), err) @@ -428,7 +499,7 @@ func updateOwnerIndexFile(basePath string, obsoleteIDs []string) error { return fmt.Errorf("failed to write updated index file: %w", err) } - logSuccess("Successfully removed %d item(s) and saved index file.\n", itemsRemoved) + fmt.Printf(" ✓ Successfully removed %d item(s) and saved index file.\n", itemsRemoved) return nil } @@ -447,13 +518,7 @@ func removeAttributes(path string) error { } func logFailure(message string, args ...any) { - spinner.StopFailMessage(fmt.Sprintf(message, args...)) + spinner.StopFailMessage(fmt.Sprintf("\n"+message, args...)) spinner.StopFail() spinner.Start() } - -func logSuccess(message string, args ...any) { - spinner.StopMessage(fmt.Sprintf(message, args...)) - spinner.Stop() - spinner.Start() -} From c336e4ae34a5e2cf21b0ba070f77b2ef4a0b1ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Fri, 22 May 2026 10:37:47 +0200 Subject: [PATCH 2/3] Bump reva --- go.mod | 2 +- go.sum | 4 +- .../v2/pkg/storage/fs/posix/ignore/ignore.go | 84 +++++++++++++++++++ .../pkg/storage/fs/posix/tree/assimilation.go | 19 +++-- .../storage/fs/posix/tree/cephfswatcher.go | 2 +- .../posix/tree/gpfsfilauditloggingwatcher.go | 2 +- .../fs/posix/tree/gpfswatchfolderwatcher.go | 2 +- .../reva/v2/pkg/storage/fs/posix/tree/tree.go | 70 ++-------------- .../storage/fs/posix/tree/watcher_darwin.go | 5 +- .../storage/fs/posix/tree/watcher_linux.go | 2 +- vendor/modules.txt | 3 +- 11 files changed, 113 insertions(+), 82 deletions(-) create mode 100644 vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore/ignore.go diff --git a/go.mod b/go.mod index 47ff25f542..85477ddedc 100644 --- a/go.mod +++ b/go.mod @@ -64,7 +64,7 @@ require ( github.com/open-policy-agent/opa v1.15.2 github.com/opencloud-eu/icap-client v0.0.0-20250930132611-28a2afe62d89 github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d - github.com/opencloud-eu/reva/v2 v2.46.0 + github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e github.com/opensearch-project/opensearch-go/v4 v4.6.0 github.com/orcaman/concurrent-map v1.0.0 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 337f189dc0..4d94febb7e 100644 --- a/go.sum +++ b/go.sum @@ -952,8 +952,8 @@ github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9 h1:dIft github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9/go.mod h1:JWyDC6H+5oZRdUJUgKuaye+8Ph5hEs6HVzVoPKzWSGI= github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d h1:JcqGDiyrcaQwVyV861TUyQgO7uEmsjkhfm7aQd84dOw= github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d/go.mod h1:pzatilMEHZFT3qV7C/X3MqOa3NlRQuYhlRhZTL+hN6Q= -github.com/opencloud-eu/reva/v2 v2.46.0 h1:wYUHIHOsLP9vad/K19/52RRfoooeHUGY4BSeowNrbpY= -github.com/opencloud-eu/reva/v2 v2.46.0/go.mod h1:fWAzVpZlJQEY/qeIrd9d3U+LpqY9JGsjJ2dc0a1jCEs= +github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e h1:T/UAzT0TMNm6C6TasumVGUUZzl6yWsa8SDALXgPLy7Q= +github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e/go.mod h1:fWAzVpZlJQEY/qeIrd9d3U+LpqY9JGsjJ2dc0a1jCEs= github.com/opencloud-eu/secure v0.0.0-20260312082735-b6f5cb2244e4 h1:l2oB/RctH+t8r7QBj5p8thfEHCM/jF35aAY3WQ3hADI= github.com/opencloud-eu/secure v0.0.0-20260312082735-b6f5cb2244e4/go.mod h1:BmF5hyM6tXczk3MpQkFf1hpKSRqCyhqcbiQtiAF7+40= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore/ignore.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore/ignore.go new file mode 100644 index 0000000000..35c5630810 --- /dev/null +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore/ignore.go @@ -0,0 +1,84 @@ +package ignore + +import ( + "path/filepath" + "strings" + + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/blobstore" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/lookup" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/options" + "github.com/opencloud-eu/reva/v2/pkg/storage/utils/templates" + "github.com/rs/zerolog" +) + +// Ignorer handles checking if paths should be ignored in posix operations +type Ignorer struct { + options *options.Options + log *zerolog.Logger + personalSpacesRoot string + projectSpacesRoot string +} + +// NewIgnorer creates a new Ignorer given the posix options and logger +func NewIgnorer(options *options.Options, log *zerolog.Logger) *Ignorer { + return &Ignorer{ + options: options, + log: log, + personalSpacesRoot: filepath.Clean(filepath.Join(options.Root, templates.Base(options.PersonalSpacePathTemplate))), + projectSpacesRoot: filepath.Clean(filepath.Join(options.Root, templates.Base(options.GeneralSpacePathTemplate))), + } +} + +// IsIgnored checking if paths should be ignored in posix operations +func (i *Ignorer) IsIgnored(path string) bool { + return IsLockFile(path) || IsTrash(path) || i.IsUpload(path) || i.IsInternal(path) || i.IsRootPath(path) || i.IsSpaceRoot(path) +} + +func (i *Ignorer) IsUpload(path string) bool { + return strings.HasPrefix(path, i.options.UploadDirectory) +} + +func (i *Ignorer) IsIndex(path string) bool { + return strings.HasPrefix(path, filepath.Join(i.options.Root, "indexes")) +} + +func (i *Ignorer) IsTemporary(path string) bool { + if filepath.IsAbs(path) { + tmpDirPattern := filepath.Join(i.options.Root, "*", "*", blobstore.TMPDir) + isTempDir, err := filepath.Match(tmpDirPattern, path) + if err != nil { + i.log.Error().Err(err).Str("pattern", tmpDirPattern).Str("path", path).Msg("error matching temporary path") + return false + } + isTempParentDir, err := filepath.Match(tmpDirPattern, filepath.Dir(path)) + if err != nil { + i.log.Error().Err(err).Str("pattern", tmpDirPattern).Str("path", filepath.Dir(path)).Msg("error matching temporary path") + return false + } + return isTempDir || isTempParentDir + } + return path == blobstore.TMPDir || filepath.Dir(path) == blobstore.TMPDir +} + +func (i *Ignorer) IsRootPath(path string) bool { + return path == i.options.Root || + path == i.personalSpacesRoot || + path == i.projectSpacesRoot +} + +func (i *Ignorer) IsSpaceRoot(path string) bool { + parent := filepath.Dir(path) + return parent == i.personalSpacesRoot || parent == i.projectSpacesRoot +} + +func (i *Ignorer) IsInternal(path string) bool { + return i.IsIndex(path) || strings.Contains(path, lookup.MetadataDir) || i.IsTemporary(path) +} + +func IsLockFile(path string) bool { + return strings.HasSuffix(path, ".flock") || strings.HasSuffix(path, ".mlock") +} + +func IsTrash(path string) bool { + return strings.HasSuffix(path, ".trashinfo") || strings.HasSuffix(path, ".trashitem") || strings.Contains(path, ".Trash") +} diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/assimilation.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/assimilation.go index 484608b79d..9b15520da2 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/assimilation.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/assimilation.go @@ -41,6 +41,7 @@ import ( "github.com/opencloud-eu/reva/v2/pkg/errtypes" "github.com/opencloud-eu/reva/v2/pkg/events" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/watcher" "github.com/opencloud-eu/reva/v2/pkg/storage/pkg/decomposedfs/metadata" "github.com/opencloud-eu/reva/v2/pkg/storage/pkg/decomposedfs/metadata/prefixes" @@ -368,7 +369,7 @@ func (t *Tree) findSpaceId(path string) (string, error) { spaceCandidate := path for strings.HasPrefix(spaceCandidate, t.options.Root) { // jail at root - if t.isRootPath(spaceCandidate) { + if t.Ignorer.IsRootPath(spaceCandidate) { return "", ErrRootReached } @@ -709,7 +710,7 @@ assimilate: // The Space's name attribute might not match the directory name. Use the name as // it was set before. Also the space root doesn't have a 'type' attribute // currently so only set it for normal directories. - if t.isSpaceRoot(path) { + if t.Ignorer.IsSpaceRoot(path) { if previousAttribs != nil && previousAttribs[prefixes.NameAttr] != nil { attributes[prefixes.NameAttr] = previousAttribs[prefixes.NameAttr] } @@ -866,17 +867,17 @@ func (t *Tree) WarmupIDCache(root string, assimilate, onlyDirty bool) error { } // skip irrelevant files - if t.isInternal(path) || - isLockFile(path) || - isTrash(path) || - t.isUpload(path) || - t.isIndex(path) { + if t.Ignorer.IsInternal(path) || + ignore.IsLockFile(path) || + ignore.IsTrash(path) || + t.Ignorer.IsUpload(path) || + t.Ignorer.IsIndex(path) { if info.IsDir() { return filepath.SkipDir } return nil } - if t.isRootPath(path) { + if t.Ignorer.IsRootPath(path) { return nil // ignore the root paths } @@ -982,7 +983,7 @@ func (t *Tree) WarmupIDCache(root string, assimilate, onlyDirty bool) error { }) for dir, size := range sizes { - if t.isRootPath(dir) { + if t.Ignorer.IsRootPath(dir) { continue } spaceID, id, err := t.lookup.IDsForPath(context.Background(), dir) diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/cephfswatcher.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/cephfswatcher.go index 540907afda..ccd3e56f42 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/cephfswatcher.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/cephfswatcher.go @@ -84,7 +84,7 @@ func (w *CephFSWatcher) Watch(topic string) { continue } - if w.tree.isIgnored(ev.Path) { + if w.tree.Ignorer.IsIgnored(ev.Path) { continue } diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfsfilauditloggingwatcher.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfsfilauditloggingwatcher.go index b43f23ea13..ee1934f9fc 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfsfilauditloggingwatcher.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfsfilauditloggingwatcher.go @@ -83,7 +83,7 @@ start: w.log.Error().Err(err).Str("line", line).Msg("error unmarshalling line") continue } - if w.tree.isIgnored(ev.Path) { + if w.tree.Ignorer.IsIgnored(ev.Path) { continue } go func() { diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfswatchfolderwatcher.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfswatchfolderwatcher.go index 93d1b6218e..4382e4bff2 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfswatchfolderwatcher.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/gpfswatchfolderwatcher.go @@ -66,7 +66,7 @@ func (w *GpfsWatchFolderWatcher) Watch(topic string) { continue } - if w.tree.isIgnored(lwev.Path) { + if w.tree.Ignorer.IsIgnored(lwev.Path) { continue } diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/tree.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/tree.go index 045362b7b3..4a007f14d5 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/tree.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/tree.go @@ -41,8 +41,8 @@ import ( "github.com/opencloud-eu/reva/v2/pkg/errtypes" "github.com/opencloud-eu/reva/v2/pkg/events" - "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/blobstore" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/idcache" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/lookup" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/options" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/trashbin" @@ -54,7 +54,6 @@ import ( "github.com/opencloud-eu/reva/v2/pkg/storage/pkg/decomposedfs/permissions" "github.com/opencloud-eu/reva/v2/pkg/storage/pkg/decomposedfs/tree/propagator" "github.com/opencloud-eu/reva/v2/pkg/storage/pkg/decomposedfs/usermapper" - "github.com/opencloud-eu/reva/v2/pkg/storage/utils/templates" "github.com/opencloud-eu/reva/v2/pkg/utils" ) @@ -93,9 +92,8 @@ type Tree struct { idResolver IDResolver // points at the lookup but can be overridden for testing assimilateFunc func(item scanItem) error // function to call to assimilate a node, can be overridden for testing - options *options.Options - personalSpacesRoot string - projectSpacesRoot string + options *options.Options + Ignorer *ignore.Ignorer userMapper usermapper.Mapper idCache *idcache.IDCache @@ -128,10 +126,9 @@ func New(lu node.PathLookup, bs node.Blobstore, um usermapper.Mapper, trashbin * scanDebouncer: NewScanDebouncer(o.ScanDebounceDelay, func(item scanItem) { scanQueue <- item }), - es: es, - log: log, - personalSpacesRoot: filepath.Clean(filepath.Join(o.Root, templates.Base(o.PersonalSpacePathTemplate))), - projectSpacesRoot: filepath.Clean(filepath.Join(o.Root, templates.Base(o.GeneralSpacePathTemplate))), + es: es, + log: log, + Ignorer: ignore.NewIgnorer(o, log), } t.idResolver = t.lookup t.assimilateFunc = t.assimilate @@ -499,7 +496,7 @@ func (t *Tree) ListFolder(ctx context.Context, n *node.Node) ([]*node.Node, erro g.Go(func() error { defer close(work) for _, name := range names { - if t.isInternal(name) || isLockFile(name) || isTrash(name) { + if t.Ignorer.IsInternal(name) || ignore.IsLockFile(name) || ignore.IsTrash(name) { continue } @@ -776,56 +773,3 @@ func (t *Tree) createDirNode(ctx context.Context, n *node.Node) (err error) { } return n.SetXattrsWithContext(ctx, attributes, false) } - -func (t *Tree) isIgnored(path string) bool { - return isLockFile(path) || isTrash(path) || t.isUpload(path) || t.isInternal(path) || t.isRootPath(path) || t.isSpaceRoot(path) -} - -func (t *Tree) isUpload(path string) bool { - return strings.HasPrefix(path, t.options.UploadDirectory) -} - -func (t *Tree) isIndex(path string) bool { - return strings.HasPrefix(path, filepath.Join(t.options.Root, "indexes")) -} - -func (t *Tree) isTemporary(path string) bool { - if filepath.IsAbs(path) { - tmpDirPattern := filepath.Join(t.options.Root, "*", "*", blobstore.TMPDir) - isTempDir, err := filepath.Match(tmpDirPattern, path) - if err != nil { - t.log.Error().Err(err).Str("pattern", tmpDirPattern).Str("path", path).Msg("error matching temporary path") - return false - } - isTempParentDir, err := filepath.Match(tmpDirPattern, filepath.Dir(path)) - if err != nil { - t.log.Error().Err(err).Str("pattern", tmpDirPattern).Str("path", filepath.Dir(path)).Msg("error matching temporary path") - return false - } - return isTempDir || isTempParentDir - } - return path == blobstore.TMPDir || filepath.Dir(path) == blobstore.TMPDir -} - -func (t *Tree) isRootPath(path string) bool { - return path == t.options.Root || - path == t.personalSpacesRoot || - path == t.projectSpacesRoot -} - -func (t *Tree) isSpaceRoot(path string) bool { - parent := filepath.Dir(path) - return parent == t.personalSpacesRoot || parent == t.projectSpacesRoot -} - -func (t *Tree) isInternal(path string) bool { - return t.isIndex(path) || strings.Contains(path, lookup.MetadataDir) || t.isTemporary(path) -} - -func isLockFile(path string) bool { - return strings.HasSuffix(path, ".flock") || strings.HasSuffix(path, ".mlock") -} - -func isTrash(path string) bool { - return strings.HasSuffix(path, ".trashinfo") || strings.HasSuffix(path, ".trashitem") || strings.Contains(path, ".Trash") -} diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_darwin.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_darwin.go index ec16106e12..9fc424d724 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_darwin.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_darwin.go @@ -12,6 +12,7 @@ import ( "github.com/fsnotify/fsnotify" "github.com/rs/zerolog" + "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/options" "github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/watcher" ) @@ -212,8 +213,8 @@ func isSubpath(root, p string) bool { // isIgnored checks if the path is ignored by its tree. func isPathIgnored(tree *Tree, path string) bool { - isLockFile := isLockFile(path) - isTrash := isTrash(path) + isLockFile := ignore.IsLockFile(path) + isTrash := ignore.IsTrash(path) isUpload := tree.isUpload(path) isInternal := tree.isInternal(path) diff --git a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_linux.go b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_linux.go index 6ba6227127..83658e6d48 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_linux.go +++ b/vendor/github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/tree/watcher_linux.go @@ -90,7 +90,7 @@ func (iw *InotifyWatcher) Watch(path string) { for { select { case event := <-events: - if iw.tree.isIgnored(event.Filename) { + if iw.tree.Ignorer.IsIgnored(event.Filename) { continue } for _, e := range event.Events { diff --git a/vendor/modules.txt b/vendor/modules.txt index 5513c96374..c2ea5e9969 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1363,7 +1363,7 @@ github.com/opencloud-eu/icap-client # github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d ## explicit; go 1.18 github.com/opencloud-eu/libre-graph-api-go -# github.com/opencloud-eu/reva/v2 v2.46.0 +# github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e ## explicit; go 1.25.0 github.com/opencloud-eu/reva/v2/cmd/revad/internal/grace github.com/opencloud-eu/reva/v2/cmd/revad/runtime @@ -1651,6 +1651,7 @@ github.com/opencloud-eu/reva/v2/pkg/storage/fs/owncloudsql/filecache github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/blobstore github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/idcache +github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/ignore github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/lookup github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/options github.com/opencloud-eu/reva/v2/pkg/storage/fs/posix/timemanager From cff56490cb3572084aea9911cfe56ec9395c81a1 Mon Sep 17 00:00:00 2001 From: Viktor Scharf Date: Tue, 26 May 2026 13:35:49 +0200 Subject: [PATCH 3/3] fix-2824. run tests without remote.php (#2826) --- .woodpecker.star | 20 +- go.mod | 2 +- go.sum | 4 +- .../expected-failures-without-remotephp.md | 181 +----------------- .../http/services/owncloud/ocdav/ocdav.go | 2 +- vendor/modules.txt | 2 +- 6 files changed, 23 insertions(+), 188 deletions(-) diff --git a/.woodpecker.star b/.woodpecker.star index 6d6849b90c..1cc60b6ae5 100644 --- a/.woodpecker.star +++ b/.woodpecker.star @@ -121,7 +121,7 @@ config = { "apiSettings", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], "emailNeeded": True, "extraTestEnvironment": { "EMAIL_HOST": "email", @@ -144,14 +144,14 @@ config = { #"collaborativePosix", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], }, "graphUserGroup": { "suites": [ "apiGraphUserGroup", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], }, "spaces": { "suites": [ @@ -209,7 +209,7 @@ config = { "apiNotification", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], "emailNeeded": True, "extraTestEnvironment": { "EMAIL_HOST": "email", @@ -251,7 +251,7 @@ config = { "apiOcm", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], "federationServer": True, "emailNeeded": True, "extraTestEnvironment": { @@ -287,14 +287,14 @@ config = { "apiAuthApp", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], }, "cliCommands": { "suites": [ "cliCommands", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], "antivirusNeeded": True, "extraServerEnvironment": { "ANTIVIRUS_SCANNER_TYPE": "clamav", @@ -309,7 +309,7 @@ config = { "apiTenancy", ], "skip": False, - "withRemotePhp": [True], + "withRemotePhp": [False], "ldapNeeded": True, "extraTestEnvironment": { "USE_PREPARED_LDAP_USERS": True, @@ -1199,7 +1199,7 @@ def localApiTestPipeline(ctx): "federationServer": False, "collaborationServiceNeeded": False, "extraCollaborationEnvironment": {}, - "withRemotePhp": [True], + "withRemotePhp": [False], "enableWatchFs": [False], "ldapNeeded": False, } @@ -1316,7 +1316,7 @@ def localApiTest(suites, storage = "decomposed", extra_environment = {}, with_re def coreApiTestPipeline(ctx): defaults = { - "withRemotePhp": [True], + "withRemotePhp": [False], "enableWatchFs": [False], "storages": ["posix"], "numberOfParts": 7, diff --git a/go.mod b/go.mod index 85477ddedc..6884b9be11 100644 --- a/go.mod +++ b/go.mod @@ -64,7 +64,7 @@ require ( github.com/open-policy-agent/opa v1.15.2 github.com/opencloud-eu/icap-client v0.0.0-20250930132611-28a2afe62d89 github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d - github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e + github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522124452-c649de391cb1 github.com/opensearch-project/opensearch-go/v4 v4.6.0 github.com/orcaman/concurrent-map v1.0.0 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 4d94febb7e..b345c5a2ec 100644 --- a/go.sum +++ b/go.sum @@ -952,8 +952,8 @@ github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9 h1:dIft github.com/opencloud-eu/inotifywaitgo v0.0.0-20251111171128-a390bae3c5e9/go.mod h1:JWyDC6H+5oZRdUJUgKuaye+8Ph5hEs6HVzVoPKzWSGI= github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d h1:JcqGDiyrcaQwVyV861TUyQgO7uEmsjkhfm7aQd84dOw= github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d/go.mod h1:pzatilMEHZFT3qV7C/X3MqOa3NlRQuYhlRhZTL+hN6Q= -github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e h1:T/UAzT0TMNm6C6TasumVGUUZzl6yWsa8SDALXgPLy7Q= -github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e/go.mod h1:fWAzVpZlJQEY/qeIrd9d3U+LpqY9JGsjJ2dc0a1jCEs= +github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522124452-c649de391cb1 h1:ABcjsejQbdD8exfmzjLJZQZfZBmPrnoi8aKh8bgHtDc= +github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522124452-c649de391cb1/go.mod h1:fWAzVpZlJQEY/qeIrd9d3U+LpqY9JGsjJ2dc0a1jCEs= github.com/opencloud-eu/secure v0.0.0-20260312082735-b6f5cb2244e4 h1:l2oB/RctH+t8r7QBj5p8thfEHCM/jF35aAY3WQ3hADI= github.com/opencloud-eu/secure v0.0.0-20260312082735-b6f5cb2244e4/go.mod h1:BmF5hyM6tXczk3MpQkFf1hpKSRqCyhqcbiQtiAF7+40= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= diff --git a/tests/acceptance/expected-failures-without-remotephp.md b/tests/acceptance/expected-failures-without-remotephp.md index cc643b6f44..dcb3abf758 100644 --- a/tests/acceptance/expected-failures-without-remotephp.md +++ b/tests/acceptance/expected-failures-without-remotephp.md @@ -1,6 +1,13 @@ ## Scenarios that are expected to fail when remote.php is not used #### [REPORT request without remote.php returns empty result (only with dav/spaces path)](https://github.com/owncloud/ocis/issues/10329) +- [apiSearch1/favoriteSearch.feature:10](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L10) +- [apiSearch1/favoriteSearch.feature:26](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L26) +- [apiSearch1/favoriteSearch.feature:53](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L53) +- [apiSearch1/favoriteSearch.feature:105](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L105) +- [apiSearch1/favoriteSearch.feature:106](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L106) +- [apiSearch1/favoriteSearch.feature:127](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L127) +- [apiSearch1/favoriteSearch.feature:139](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearch1/favoriteSearch.feature#L139) - [apiContract/sharesReport.feature:43](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiContract/sharesReport.feature#L43) - [apiContract/sharesReport.feature:84](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiContract/sharesReport.feature#L84) @@ -122,177 +129,10 @@ - [apiSearchContent/contentSearch.feature:267](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSearchContent/contentSearch.feature#L267) - [cliCommands/searchReIndex.feature:15](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/cliCommands/searchReIndex.feature#L15) -#### [Downloading public files without remote.php returns 401 unauthorized error](https://github.com/owncloud/ocis/issues/9724) - -- [apiSpaces/editPublicLinkOfSpace.feature:48](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L48) -- [apiSpaces/editPublicLinkOfSpace.feature:49](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/editPublicLinkOfSpace.feature#L49) -- [apiSpacesShares/publicLinkDownload.feature:16](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/publicLinkDownload.feature#L16) -- [apiSpacesShares/publicLinkDownload.feature:32](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/publicLinkDownload.feature#L32) -- [apiSpacesShares/shareSpacesViaLink.feature:42](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L42) -- [apiSpacesShares/shareSpacesViaLink.feature:43](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L43) -- [apiSpacesShares/shareSpacesViaLink.feature:44](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L44) -- [apiSpacesShares/shareSubItemOfSpaceViaPublicLink.feature:146](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSubItemOfSpaceViaPublicLink.feature#L146) -- [apiSpacesShares/shareSubItemOfSpaceViaPublicLink.feature:147](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSubItemOfSpaceViaPublicLink.feature#L147) -- [apiSharingNgLinkSharePermission/createLinkShare.feature:473](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L473) -- [apiSharingNgLinkSharePermission/createLinkShare.feature:1208](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkSharePermission/createLinkShare.feature#L1208) -- [apiSharingNgLinkSharePermission/updateLinkShare.feature:204](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L204) -- [apiSharingNgLinkSharePermission/updateLinkShare.feature:282](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkSharePermission/updateLinkShare.feature#L282) -- [apiSharingNgLinkShareRoot/updateLinkShare.feature:10](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature#L10) -- [apiSharingNgLinkShareRoot/updateLinkShare.feature:42](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSharingNgLinkShareRoot/updateLinkShare.feature#L42) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:220](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L220) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:221](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L221) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:59](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L59) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:60](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L60) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:88](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L88) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:89](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L89) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:122](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L122) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:123](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L123) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:209](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L209) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:210](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L210) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:229](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L229) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:230](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L230) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:257](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L257) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:258](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L258) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:273](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L273) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:274](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L274) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:277](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L277) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:291](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L291) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:111](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L111) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:112](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L112) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:249](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L249) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:250](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L250) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:276](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L276) -- [coreApiSharePublicLink2/updatePublicLinkShare.feature:277](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/updatePublicLinkShare.feature#L277) - #### [Most (if not all) requests to public link share without remote.php returns 401 Unauthorized error](https://github.com/owncloud/ocis/issues/10331) -- [apiSpaces/publicLink.feature:18](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/publicLink.feature#L18) -- [apiSpaces/publicLink.feature:23](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/publicLink.feature#L23) -- [apiSpaces/publicLink.feature:28](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/publicLink.feature#L28) -- [apiSpaces/publicLink.feature:34](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/publicLink.feature#L34) -- [apiSpaces/publicLink.feature:40](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/publicLink.feature#L40) -- [apiSpaces/uploadSpaces.feature:95](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/uploadSpaces.feature#L95) -- [apiSpaces/uploadSpaces.feature:112](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/uploadSpaces.feature#L112) -- [apiSpaces/uploadSpaces.feature:129](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpaces/uploadSpaces.feature#L129) -- [apiSpacesShares/shareSpacesViaLink.feature:58](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiSpacesShares/shareSpacesViaLink.feature#L58) -- [apiDepthInfinity/propfind.feature:74](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiDepthInfinity/propfind.feature#L74) -- [apiDepthInfinity/propfind.feature:124](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiDepthInfinity/propfind.feature#L124) -- [apiLocks/lockFiles.feature:490](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L490) -- [apiLocks/lockFiles.feature:487](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L487) -- [apiLocks/lockFiles.feature:488](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L488) -- [apiLocks/lockFiles.feature:489](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L489) -- [apiLocks/lockFiles.feature:513](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L513) -- [apiLocks/lockFiles.feature:510](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L510) -- [apiLocks/lockFiles.feature:511](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L511) -- [apiLocks/lockFiles.feature:512](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/lockFiles.feature#L512) -- [apiLocks/unlockFiles.feature:320](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/unlockFiles.feature#L320) -- [apiLocks/unlockFiles.feature:321](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/unlockFiles.feature#L321) -- [apiLocks/unlockFiles.feature:322](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/unlockFiles.feature#L322) -- [apiLocks/unlockFiles.feature:323](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiLocks/unlockFiles.feature#L323) -- [apiAntivirus/antivirus.feature:114](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L114) -- [apiAntivirus/antivirus.feature:115](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L115) -- [apiAntivirus/antivirus.feature:116](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L116) -- [apiAntivirus/antivirus.feature:117](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L117) -- [apiAntivirus/antivirus.feature:118](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L118) -- [apiAntivirus/antivirus.feature:119](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L119) -- [apiAntivirus/antivirus.feature:140](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L140) -- [apiAntivirus/antivirus.feature:141](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L141) -- [apiAntivirus/antivirus.feature:142](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L142) -- [apiAntivirus/antivirus.feature:143](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L143) -- [apiAntivirus/antivirus.feature:144](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L144) -- [apiAntivirus/antivirus.feature:145](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L145) -- [apiAntivirus/antivirus.feature:357](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L357) -- [apiAntivirus/antivirus.feature:358](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L358) -- [apiAntivirus/antivirus.feature:359](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiAntivirus/antivirus.feature#L359) -- [apiCollaboration/wopi.feature:956](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L956) -- [apiCollaboration/wopi.feature:957](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L957) -- [apiCollaboration/wopi.feature:958](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L958) -- [apiCollaboration/wopi.feature:961](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L961) -- [apiCollaboration/wopi.feature:1047](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L1047) -- [apiCollaboration/wopi.feature:1048](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L1048) -- [apiCollaboration/wopi.feature:1049](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L1049) -- [apiCollaboration/wopi.feature:1052](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiCollaboration/wopi.feature#L1052) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:27](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L27) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:28](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L28) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:29](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L29) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:30](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L30) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:33](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L33) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:46](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L46) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:70](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L70) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:95](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L95) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:120](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L120) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:132](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L132) -- [coreApiSharePublicLink1/changingPublicLinkShare.feature:145](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/changingPublicLinkShare.feature#L145) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:189](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L189) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:190](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L190) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:304](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L304) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:328](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L328) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:329](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L329) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:344](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L344) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:345](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L345) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:348](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L348) -- [coreApiSharePublicLink1/createPublicLinkShare.feature:363](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L363) - [coreApiSharePublicLink1/createPublicLinkShare.feature:377](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L377) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:13](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L13) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:28](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L28) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:44](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L44) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:60](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L60) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:75](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L75) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:92](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L92) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:105](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L105) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:137](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L137) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:138](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L138) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:139](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L139) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:140](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L140) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:158](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L158) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:159](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L159) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:160](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L160) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:161](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L161) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:180](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L180) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:181](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L181) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:182](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L182) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:183](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L183) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:186](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L186) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:212](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L212) -- [coreApiSharePublicLink2/copyFromPublicLink.feature:225](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/copyFromPublicLink.feature#L225) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:28](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L28) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:29](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L29) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:30](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L30) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:33](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L33) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:44](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L44) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:58](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L58) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:70](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L70) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:82](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L82) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:94](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L94) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:106](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L106) -- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:118](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L118) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:238](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L238) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:239](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L239) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:240](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L240) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:262](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L262) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:263](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L263) -- [coreApiWebdavEtagPropagation1/deleteFileFolder.feature:264](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/deleteFileFolder.feature#L264) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:308](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L308) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:309](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L309) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:310](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L310) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:333](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L333) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:334](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L334) -- [coreApiWebdavEtagPropagation1/moveFileFolder.feature:335](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation1/moveFileFolder.feature#L335) -- [coreApiWebdavEtagPropagation2/copyFileFolder.feature:135](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L135) -- [coreApiWebdavEtagPropagation2/copyFileFolder.feature:136](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L136) -- [coreApiWebdavEtagPropagation2/copyFileFolder.feature:137](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/copyFileFolder.feature#L137) -- [coreApiWebdavEtagPropagation2/createFolder.feature:111](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/createFolder.feature#L111) -- [coreApiWebdavEtagPropagation2/upload.feature:188](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L188) -- [coreApiWebdavEtagPropagation2/upload.feature:189](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L189) -- [coreApiWebdavEtagPropagation2/upload.feature:190](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavEtagPropagation2/upload.feature#L190) -- [coreApiWebdavOperations/listFiles.feature:112](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/listFiles.feature#L112) -- [coreApiWebdavOperations/listFiles.feature:140](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/listFiles.feature#L140) - [coreApiWebdavOperations/propfind.feature:40](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L40) -- [coreApiWebdavOperations/propfind.feature:55](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L55) -- [coreApiWebdavOperations/propfind.feature:69](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L69) -- [coreApiWebdavUpload/uploadFile.feature:376](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavUpload/uploadFile.feature#L376) -- [apiActivities/shareActivities.feature:1956](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiActivities/shareActivities.feature#L1956) -- [apiActivities/shareActivities.feature:2095](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/apiActivities/shareActivities.feature#L2095) #### [Cannot create new TUS upload resource using /webdav without remote.php - returns html instead](https://github.com/owncloud/ocis/issues/10346) @@ -339,8 +179,8 @@ - [coreApiWebdavUploadTUS/uploadToShare.feature:69](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L69) - [coreApiWebdavUploadTUS/uploadToShare.feature:89](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L89) -#### [PROPFIND to /webdav root (old dav path) without remote.php returns html instead of xml](https://github.com/owncloud/ocis/issues/10334) +#### [PROPFIND to /webdav root (old dav path) without remote.php returns html instead of xml](https://github.com/owncloud/ocis/issues/10334) - [coreApiAuth/webDavAuth.feature:15](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiAuth/webDavAuth.feature#L15) - [coreApiAuth/webDavAuth.feature:25](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiAuth/webDavAuth.feature#L25) - [coreApiShareManagementToShares/moveReceivedShare.feature:49](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature#L49) @@ -350,11 +190,6 @@ - [coreApiWebdavOperations/propfind.feature:26](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L26) - [coreApiWebdavOperations/propfind.feature:36](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L36) -#### [Public cannot download file preview of unprotected (without password) link share without remote.php](https://github.com/owncloud/ocis/issues/10341) - -- [coreApiWebdavPreviews/linkSharePreviews.feature:25](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavPreviews/linkSharePreviews.feature#L25) -- [coreApiWebdavPreviews/linkSharePreviews.feature:54](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavPreviews/linkSharePreviews.feature#L54) - #### [Trying to create .. resource with /webdav root (old dav path) without remote.php returns html](https://github.com/owncloud/ocis/issues/10339) - [coreApiWebdavCopyCreate/createFileFolder.feature:176](https://github.com/opencloud-eu/opencloud/blob/main/tests/acceptance/features/coreApiWebdavCopyCreate/createFileFolder.feature#L176) diff --git a/vendor/github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/ocdav.go b/vendor/github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/ocdav.go index edc8ce0b34..236b2dc629 100644 --- a/vendor/github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/ocdav.go +++ b/vendor/github.com/opencloud-eu/reva/v2/internal/http/services/owncloud/ocdav/ocdav.go @@ -157,7 +157,7 @@ func (s *svc) Close() error { } func (s *svc) Unprotected() []string { - return []string{"/status.php", "/status", "/remote.php/dav/public-files/", "/apps/files/", "/index.php/f/", "/index.php/s/", "/remote.php/dav/ocm/", "/dav/ocm/"} + return []string{"/status.php", "/status", "/remote.php/dav/public-files/", "/dav/public-files/", "/apps/files/", "/index.php/f/", "/index.php/s/", "/remote.php/dav/ocm/", "/dav/ocm/"} } func (s *svc) Handler() http.Handler { diff --git a/vendor/modules.txt b/vendor/modules.txt index c2ea5e9969..d72b690712 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1363,7 +1363,7 @@ github.com/opencloud-eu/icap-client # github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20260310090739-853d972b282d ## explicit; go 1.18 github.com/opencloud-eu/libre-graph-api-go -# github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522083006-063ee129f21e +# github.com/opencloud-eu/reva/v2 v2.46.1-0.20260522124452-c649de391cb1 ## explicit; go 1.25.0 github.com/opencloud-eu/reva/v2/cmd/revad/internal/grace github.com/opencloud-eu/reva/v2/cmd/revad/runtime