hackclub / hackclub/nest

RFC: Nest Teams

Open
#96 7 comments 2 reactions 0 assignees View on GitHub
Nest Dash Nest Setup
Dominant language
TypeScript
Stars
102
Forks
22
PR merge metrics
No merged PRs in 30d

Description

While Nest was originally made and designed for personal use, it is also very useful for organizational use, especially in things like Hack Clubs that might want to host a website or backend for the whole club to manage. Therefore, I propose a feature on Nest that allows for the creation of teams: shared accounts meant to be accessed by different people.

Nest teams would be stored in a new table in the Nest Bot database, and would consist of a username, description, and list of members. At least for the MVP, there will be no permissions, so each member would be able to modify the team. The Authentik password would be DM'ed to the team creator upon approval.

Nest teams would be setup in the same way as normal user accounts on Nest, except that they would use a special `AuthorizedKeysCommand` for SSH which will output the combination of all members' `authorized_keys` files.

There will be no limit as to how many teams a user can create or be a part of, but like user accounts, all teams will have to be approved by the Nest admin team to ensure that teams are not being abused to bypass resource limits on personal projects. They may also be subject to additional auditing for the same purpose.

Contributor guide

Open the contributing guide

Research direction

The proposal names no files, tests, or entry points; begin by mapping the Nest Bot database and current user-account setup, then inspect the SSH AuthorizedKeysCommand configuration. Done would require an agreed MVP design and implementation for team storage, approval, authentication, and member-key access, but the issue does not define acceptance tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
authentication, backend, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.