Multi-tenancy Support Product Requirements
In order to support multi-tenancy, we need to add Role-based Access Control (RBAC)
Account Service Schema
Brainstorming gRPC spec for the Accounts and Access Control services
Assumptions:
- An account is identified by an Email address
- An account is an owner (aka
OWNER) of a project that it creates - A project owner can invite collaborators (aka
EDITORorREADER) to a project. - Only owners can change permissions on a project (i.e. invite
EDITORs orREADERs) READERcan access all artifacts within a project, but cannot create persisted artifacts whose generation requires LLM token consumption (e.g. applicability reports or compliance reports).-
Reserved for future:
PROMPTERhas permission of aREADERbut in addition can interrogate the system about the plan and available LLM artifacts via side-chat EDITORhas permissions of aPROMPTERbut can invoke actions that require token consumption (e.g. generate applicability report, generate compliance report) and can ask the system to revise / regenerate some of these persisted artifacts based on interrogation in side-chat.- An account can list Projects that they have access to, in any capacity (
OWNER,EDITOR,PROMPTER,READER). -
Reserved for future: the
OWNERcan add permissions to a batch of accounts identified by a Group or an Organization. -
Reserved for future: the
OWNERcan opt to share the projects they create by default with a batch of users in their group/organization.