The repository does not manage paths of repository files, they are plain attributes. To be able to manage and control access to various areas of the repository we need to introduce a new
RepositoryFolder entity with ACL support.
RepositoryFile on that
RepositoryPath inherit ACL permissions from the path, but also retain their own ACL entries. This allows for efficient management of permissions over various paths in the repository and handles file movement.
The parent path must exist for every path, except repository root. The path OID must have a parent OID set so that permissions are properly propagated.
The repository path is designed to be immutable and it's
path attribute cannot be modified. Entries have to be moved first and the path deleted in order to "change it".
The path OID is owned by whoever creates it.