BlueBrain / BlueBrain/nexus

Introduce the Directory entity with a link operation

Open
#4,924 0 comments 0 reactions 0 assignees View on GitHub
delta feature
Dominant language
Scala
Stars
301
Forks
76
PR merge metrics
No merged PRs in 30d

Description

**Motivation**
In some cases, an individual physical file does not make sense by itself but only because it is part of a set of files organized in folders and subfolders which depends on the consumer.
However, we still want to register this directory to Delta and the knowledge graph.
This first ticket is about creating a file set in Nexus when the physical folder is already available in S3.
The use case for that is registering legacy files in the legacy bucket.

**Acceptance criteria**
1. Directories are only available for S3 storages
2. The user can provide an id or have it generated (like the files operations)
3. The user provides an object key
4. The user can optionally provide metadata (name, description, keyword)
5. The provided object key must point to an existing object and must be a folder
6. The directory is indexed in Blazegraph and Elasticsearch
7. The directory must have an origin field as it will be possible to register it in other ways later
8. Errors are returned if the user does not have the permission, if a resource already exists with that id, ...

**Not in scope**
1. No analysis is done on the content of the folder as it may contain a lot of objects
2. Update / tagging / deprecation operations

Contributor guide

Open the contributing guide

Research direction

Start by examining the existing file operations and S3 storage handling referenced in the issue. Define the Directory entity and link operation around the stated acceptance criteria, then verify existing-object and folder validation, permissions, duplicate IDs, metadata, origin, and indexing in Blazegraph and Elasticsearch.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch, scala
Domain
backend, cloud, databases, search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.