As a Dotmesh user, I would like to be able to add collaborators to my dot but only grant them read access, so I can share stuff safely:
Access dot details (Get, Exists)
See it in their list (List)
List its branches (Branches(ById))
List commits (Commits(ById))
Pull (Transfer, zfs send GET)
S3 reads
...any others?
Also, as a Dotscience user, I'd like to be able to set up my read-only Dotscience collaborators as read-only Dotmesh collaborators so I can let read-only collaborators pull dot data and not need a hack in the gateway to access dot state....
ACs
[ ] It's possible to grant somebody (not yourself) read-only collaborator status, or convert a read-write collaborator into a read-only collaborator, via the API (no dm cli)
[ ] It's possible to revoke read-only collaborator status, via the API (no dm cli)
[ ] It's possible to upgrade a read-only collaborator to a read-write collaborator, via the API (no dm cli)
[ ] Users see the dots they are read-only collaborators for in the result of DotmeshRPC.List, but with a flag noting that it's read-only
[ ] Read-only collaborators can call Get/Exists on the dot, and see the flag noting that it's read-only in the returned data as well as the usual stuff.
[ ] RPCs that don't change anything in the dot (Branches, Commits, any others?) all work for read-only collaborators
[ ] Read-only collaborators can pull from a dot
[ ] Read-only collaborators can read a dot via the S3 API
[ ] All operations that change the dot (Commit, Delete, push, S3 uploads, etc) are blocked to read-only collaborators
As a Dotmesh user, I would like to be able to add collaborators to my dot but only grant them read access, so I can share stuff safely:
Also, as a Dotscience user, I'd like to be able to set up my read-only Dotscience collaborators as read-only Dotmesh collaborators so I can let read-only collaborators pull dot data and not need a hack in the gateway to access dot state....
ACs
DotmeshRPC.List
, but with a flag noting that it's read-onlyGet
/Exists
on the dot, and see the flag noting that it's read-only in the returned data as well as the usual stuff.