owncloud / ocis

:atom_symbol: ownCloud Infinite Scale Stack
https://doc.owncloud.com/ocis/next/
Apache License 2.0
1.4k stars 183 forks source link

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

Open micbar opened 2 years ago

micbar commented 2 years ago

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:

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

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 commented 5 months ago

The scope of that ticket was QA / PM.

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