Skip to content

[Feature]: Self-Serve Join/Leave and Better Membership Management #2742

@haydnli-shopify

Description

@haydnli-shopify

This is a extension on the ticket we have created earlier #2670

Problem

Right now, Dstack projects are private by default. Only project admins or owners can see them, and new users have to be manually added before they can do anything. This creates a bottleneck—especially in larger orgs (like Shopify), where we want folks to be able to discover and join most projects on their own without needing someone to manually invite them.

This feature is something we're also tracking internally at Shopify as part of our efforts to get Dstack ready for GA.

Solution

Here’s what we’d like to see:

  • Add Project property to indicate private (default) or public:
    Project owners or admins should be able to mark a project as "public." Public projects would be visible to everyone in the organization once they log in.

  • Let users join/leave public projects:
    If a project is public, any user can join it with a "Join Project" button (either from the list or the project detail view). Similarly, they should be able to leave with a "Leave Project" button.

A few rules:
Owners and admins can’t leave their own projects.
Join/Leave buttons should be context-aware and disabled when the user is not allowed to perform the action (e.g., project creators or admins trying to leave, or users trying to join a project they’re already in).

  • Visibility rules:
    Public projects appear in the Projects list for everyone.
    Private projects stay visible only to members, owners, and admins.

  • Restrict access to project setup details
    Even for public projects, CLI setup should only be shown once a user joins.

Workaround

There really isn’t one. Managing project members has to be done manually by a project admin right now.

Would you like to help us implement this feature by sending a PR?

Yes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions