Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[QA][PM] Definition of the Project Spaces Feature #4316

Open
micbar opened this issue Aug 2, 2022 · 1 comment
Open

[QA][PM] Definition of the Project Spaces Feature #4316

micbar opened this issue Aug 2, 2022 · 1 comment
Labels
Category:Enhancement Add new functionality QA:team Type:Knowledge-Base Solutions for internal knowledge

Comments

@micbar
Copy link
Contributor

micbar commented Aug 2, 2022

Description

This is the

  1. Product Definition
  2. QA Reference

for the Spaces Feature

What is the Spaces Feature

The spaces feature leverages independent storage units and makes them usable for personal and project folders

Properties

Name Description Required
Name Space Name
driveType The type of the space. Currently personal or project
driveAlias The human readable alias for the space. It can be set by a template. Defaults are personal/username and project/name-lowercase-with-dashes
id Unique identifier for a space. Usually a uuidV4. For personal spaces we are using the user UUID
description Short description for the Space. Default empty.
owner The file owner for all files inside the space. On personal spaces the user. On other spaces we have no real owner set. Other spaces have an invalid user type set which cannot log in. This userID is used for public link authentication
quota The limitiation for the disk usage. Example json "quota": {"remaining": 1000000000,"state": "normal","total": 1000000000,"used": 0 }, It is not mandatory.
root This represents the root folder of a space.
root.etag Etag of the root folder. Used by clients.
root.id ID of the root folder. Same as the spaceID
root.WebDavUrl The WebDAV Endpoint to sync this space. It builds like /dav/spaces/{spaceID}
permissions This is a list of all users which have access to this space and their roles

Spaces UI

1659970453214

Lifecycle

Creating a Space

To create a project space, users need to have the permission CreateSpace(ID: 79e13b30-3e22-11eb-bc51-0b9f0bad9a58). In the default config this permission is assigned to the roles Admin and SpaceAdmin.

During the creation of a project space, the following actions occur:

  • A Storage Space of type project is created
  • The Creating User is added to the space with the Manager Role
  • A .space folder is created with the content Readme.md

Space Administration

  1. Users with the Manager Role can add and remove people to/from a space.
  2. Users with the global Permission CanManageAllSpaceMembers can also manage the space members (PLANNED, NOT IMPLEMENTED)

Disabling and Deleting a space

  1. Users with the Manager Role can disable/restore and delete a space (2 steps needed)
  2. Users with the global Permission CanDeleteAllSpaces and CanRestoreAllSpaces can also disable, delete and restore the space (PLANNED, NOT IMPLEMENTED).

Consequence of a disabled space

  • Nobody can list the contents of the space anymore (404 Response on the PROPFIND)
  • The desktop client will delete the contents of that space locally
  • The space Image is not shown anymore (CURRENT STATE, CAN BE CHANGED)

Change Properties of the space

The following properties can be changed:

Name Description Space Role Global Permission
quota The limitation for the disk usage. --- SetSpaceQuota
Name Space Name Manager ---
description Short description for the Space. Default empty. Manager ---
trashed The trashed state. Manager PLANNED
driveAlias The human readable alias for the space. Manager, Editor ---
Readme The human readable alias for the space. Manager, Editor ---
Image The human readable alias for the space. Manager, Editor ---

Listing Spaces

All My Spaces

The normal user wants to list all spaces where he is a regular member of. The API provides an endpoint for this (me/drives) which supports filtering (type, owner, ID) and sorting (name, lastModifiedDateTime).

All Available spaces

The admin user with the global permission wants to list all available spaces. The API provides an endpoint for this (/drives) which supports filtering (type, owner, ID) and sorting (name, lastModifiedDateTime).

The admin user CAN NOT list the content of spaces where he is no regular member of. This is an important design principle.

The admin user should be able to manage spaces where he is not a regular member of.

  1. The control over the available disk space is a primary admin task. This is reflected in the ability to set a Quota on all available spaces.
  2. The admin user could be needed to help out when something goes wrong. Therefore he needs to be able to deactivate, delete and restore all available spaces and manage their members.

Shares and Membership

All Space members should see all collaborators in a project space. Project spaces are long-term collaboration areas. They should be completely transparent.

1659972930859

All members with the role Manager should be able to share sub items of a space via:

  1. Links with anonymous access
  2. User Shares
  3. Group Shares
@micbar micbar added QA:team Type:Knowledge-Base Solutions for internal knowledge Category:Enhancement Add new functionality labels Aug 2, 2022
@micbar micbar changed the title [QA][PM] Definition of the Spaces Feature [QA][PM] Definition of the Project Spaces Feature Aug 8, 2022
@micbar
Copy link
Contributor Author

micbar commented May 29, 2024

The scope of that ticket was QA / PM.

@ScharfViktor @tbsbdr Is this still needed, or already covered by fact sheets and feature advertisements?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category:Enhancement Add new functionality QA:team Type:Knowledge-Base Solutions for internal knowledge
Projects
None yet
Development

No branches or pull requests

1 participant