nextcloud / nextcloud/circles

[WIP][Overview] Teams roadmap

Open
#2,664 7 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

overview
Dominant language
JavaScript
Stars
177
Forks
68
Avg merge
2d 22h
Merged PRs (30d)
60

Description

Vision

Teams becomes Nextcloud's unified team workspace: the place where a group of people gets all the resources they need to collaborate (files, chat, knowledge base, tasks, data) provisioned together, governed together, and surfaced together.

The problem

Today a team is just a list of people that other apps can share to. It can't own most types of resources, and it comes with none by default. The main issues are:

  • Ownership. Almost every resource belongs to a single user; the team only gets access via share. Team admins have no power over resources owned by members, and storage counts against one person's quota instead of the team's (unless a team folder is configured). Team folders and Collectives already do this right: they belong to the team, have their own quota, and survive any member leaving.
  • Membership. Sharing a resource with one person is much easier than adding them to the team, so who can access a resource slowly stops matching who is on the team.
  • Provisioning. Creating a team gives you an empty group. We need to provide the space (a team-folder) and required resources to get started.

Target experience

  • Creating a team also creates a space for the team: a team-folder where all it's resources will find a new home.
  • Creating a team also creates some core default resources: a calendar, a talk conversation and a collective. Users could then add optional ones to the team page.
  • The team page shows everything in one place: members, description, and all the team's resources.
  • People and access are managed once, on the team, and through the use of roles. Every resource follows.
  • Team members can be managed from any app that shows the team.
  • Teams are never nested. Grouping teams should be possible, but only for navigation and search; it never grants access to content. This is inspired by SharePoint's new architecture.
  • Existing teams can be upgraded to a full "team space".

Work items (Nextcloud 35 MVP)

Teams app (circles)
Team folders (groupfolders)
  • Team-bound flag: folders created for a team are marked as such; ACLs are off by default and hidden from the team UI → nextcloud/circles#2734, nextcloud/circles#2643
  • Teams section in admin settings: let everyone, or only a chosen group, create team folders, with a maximum size →
  • nextcloud/groupfolders#2665
  • nextcloud/server#61385

Nextcloud 36 and future

  • Team ownership of all Nextcloud resource types → nextcloud/circles#2644
  • https://github.com/nextcloud/circles/issues/2637
  • Visitor role: a team role that can only view; the first step towards a general role system
  • Custom roles: define a role once (for example "Talk moderator"), set what it may do, and assign it to members; a member's rights are the sum of their roles → nextcloud/circles#2646
  • Shared team-management component: one frontend component plus API to view, add and remove members, usable from any app; permissions checked server-side → nextcloud/circles#2432
  • Sharing defaults on team resources: make adding people to the team easier than adding new shares, warn before sharing with an individual, and list such shares on the team
  • Sharing lockdown per team: chosen at team creation; access comes only from membership, no re-sharing at all → nextcloud/circles#2645
  • Ability to organize teams in collections that provide nested navigation and search, but not access rights inheritance, modeled after sharepoint hubs
  • widget page for Teams nextcloud/circles/issues/2552
  • Show activity of teams nextcloud/circles/issues/2692
  • Track activities on Teams in the Audit log. Earlier PR for this: nextcloud/groupfolders#226

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a roadmap rather than a standalone implementation task; no file or test is named. Start by reviewing the unchecked work items and their linked circles, groupfolders, and server issues, then confirm a specific scope and acceptance criteria before coding. Done cannot be determined from this issue alone.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.