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

Allow users to have multiple instances #581

Closed
27 tasks done
2opremio opened this issue Jun 30, 2016 · 11 comments
Closed
27 tasks done

Allow users to have multiple instances #581

2opremio opened this issue Jun 30, 2016 · 11 comments
Assignees
Labels
component/users feature new end user functionality
Milestone

Comments

@2opremio
Copy link

2opremio commented Jun 30, 2016

Currently a user can only have one scope instance. They may want to have more than one, and to share those instances with others.

This requires introducing the following new functionality:

As a Weave Cloud user, I should be able to

These have some corollaries:

  • when I sign up to Weave Cloud for the first time, the UI should not assume that I want to create my own instance. Options include:
    • create a demo instance
    • don't create an instance automatically

Terminology note: "my instances" means "instances that I have access to" rather than "instances I have created. Having a concept of instance ownership is out of scope for this work.

@2opremio 2opremio changed the title Add multiteam user membership Support multiteam user memberships Jun 30, 2016
@2opremio 2opremio added this to the July2016 milestone Jun 30, 2016
@rade rade changed the title Support multiteam user memberships Support multi-team user memberships Jul 5, 2016
@rade rade added the feature new end user functionality label Jul 5, 2016
@rade rade mentioned this issue Jul 8, 2016
2 tasks
@rade rade changed the title Support multi-team user memberships n-m relationship between users and instances Jul 8, 2016
@rade
Copy link
Member

rade commented Jul 8, 2016

To clarify...

We are using team/org/instance sometimes interchangeably, and sometimes to mean different things. Right now, they do all mean the same thing. Let's call it 'instance' for now, and ditch all the other terms.

There is a 1-1 relationship between instances and tokens (the thing you tell your probes when pointing them at Weave Cloud). Everything reported by these probes will be treated by Weave Cloud as "belonging together"; all views a user is looking at in Weave Cloud are scoped (pun intended) to a single instance.

Right now there is a n-1 relationship between users and instances.

This issue is about relaxing that relationship to a n-m relationship: i.e. a single user can access multiple instances

That requires introducing the following new functionality

  1. a user should be able to create new instances, which automatically grants them access to that instance
  2. a user should be able to list all instances they have access to, and select which one to view
  3. a user should be able to invite a user to any of the instances they have access to
  4. a user should be able to see which other users have access to an instance (that they themselves have access to)
  5. a user should be able to remove a user's access to an instance (that they themselves have access to)

(3) is an extension of the existing 'invite' functionality and comes in two flavours:

a) inviting a new user to scope - I think this is exactly as it works now
b) inviting an existing scope user - as a minimum that should simply include the instance in the list the user sees at (2). We may also want to send the user an email notification, perhaps with a direct link to the instance. This is the subject of #505.

(4) and (5) are existing functionality extended to the multi-instance case.

As part of this, we should probably change the sign-up process s.t. it doesn't automatically create an instance.

@rade
Copy link
Member

rade commented Jul 8, 2016

What happens to an instance when no user has access to it? I reckon that should deny access by probes with the instance's token, and deny access to the 'view instance' functionality (and any other instance-related functionality that may exist). We shouldn't actually remove any data though, so that a later point we can introduce functionality to resurrect such 'disabled' instances.

This was referenced Jul 8, 2016
@tomwilkie
Copy link

tomwilkie commented Jul 9, 2016

Right now there is also a 1-1 relationship between users and instances.

There is currently an n-1 relationship between users and 'instances'

Plus, the backend has support for n-m, but we punted on the UX pieces so it is intentionally blocked.

@rade
Copy link
Member

rade commented Jul 9, 2016

There is currently an n-1 relationship between users and 'instances'

Ah yes, otherwise the present invite feature would be pointless. Have updated the text.

Plus, the backend has support for n-m, but we punted on the UX pieces so it is intentionally blocked.

Understood.

@jml jml changed the title n-m relationship between users and instances Allow users to have multiple instances Jul 11, 2016
@jml
Copy link

jml commented Jul 11, 2016

I've updated the description with what I think are all the exit criteria for this ticket.

@rade
Copy link
Member

rade commented Jul 11, 2016

I've updated the description with what I think are all the exit criteria for this ticket.

Looks reasonable, though I suggest clarifying what is meant by "my instances". It's simply the list of all instances I have access to. not the list of instances I have created. i.e. the notions of ownership and access are one and the same.

@jml jml self-assigned this Jul 13, 2016
@rade
Copy link
Member

rade commented Jul 21, 2016

UI flows

@jml
Copy link

jml commented Jul 26, 2016

  • When I hit "Remove" to revoke someone's access, nothing happens on the UI for me, but the other person gets revoked
  • When someone adds you to an instance, you aren't really "invited"—there's nothing to accept or reject. We should change the wording
  • The invite email says "organization" when it should say "instance"

@jml
Copy link

jml commented Jul 26, 2016

I can't revoke my own access to an instance, but that's OK for now, because that adds extra complexity. We should definitely do it later. I've filed #687 to track that and will update the checklist in this issue's description to remove those elements.

@jml
Copy link

jml commented Jul 26, 2016

I'll hold off looking at the invite wording change's until @paulbellamy's big refactoring (starting #678) gets merged

@jml
Copy link

jml commented Jul 26, 2016

Invitation wording is #692. This bug is done. Thanks all!

@jml jml unassigned davkal Aug 18, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/users feature new end user functionality
Projects
None yet
Development

No branches or pull requests

5 participants