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

Design multitenancy implementation #15

Open
RichDom2185 opened this issue Jun 29, 2023 · 0 comments
Open

Design multitenancy implementation #15

RichDom2185 opened this issue Jun 29, 2023 · 0 comments
Assignees

Comments

@RichDom2185
Copy link
Member

RichDom2185 commented Jun 29, 2023

Note that this is a long-term project due to the amount of effort needed.

In the following requirements, each "group" of posts shall refer to an individual tenant.

Background

  • 3 roles:
    • Admin (highest permissions)
    • Moderator
    • User (lowest permissions)

Requirements

  • Users can be either readers or authors; standard, relatively-straightforward permissions. They should not be aware of the concept of "groups" of posts (i.e. tenants; to be explained later – note that grouping posts using tags, folders, etc. is not part of the scope of this issue and is a completely different matter)
  • Moderators can manage posts within a group (i.e. a group can have one or more moderators).
    • They may or may not be aware of the existence of groups
    • Groups can have their own properties. Example:
      • "public" group – stories are visible by everyone
      • "internal-one" - only visible for users of a certain department
      • "internal-two" – visible to users of a different department
      • "internal-all" - visible to users of either "internal-one" and "internal-two"
    • The effect of "multiple" deployments can be achieved by using "tricks" such as sub-domain routing, etc. The idea is that with multi-tenancy, having actual multiple deployments versus a single deployment catering to multiple tenants should be indistinguishable and transparent to users.
  • Admins ("system" admins) will have a "dashboard" that will allow for the management of these groups
    • The implementation should be modular enough such that in the MVP, this can simply be set via configuration files/environment variables (that way an actual frontend dashboard won't be necessary)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants