📝(docs) light doc about org & SP
This introduces a very light documentation about the newly introduced models.
This commit is contained in:
committed by
Laurent Bossavit
parent
02c6048d2c
commit
6fe4818743
41
docs/organizations.md
Normal file
41
docs/organizations.md
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
# Organization model
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The initial `Organization` model allows to regroup `User` and `Team` under a same object.
|
||||||
|
|
||||||
|
While the purpose was purely technical in the first place, few features emerged afterward.
|
||||||
|
|
||||||
|
|
||||||
|
## Link with the `User` model
|
||||||
|
|
||||||
|
Each user must have a "default" organization.
|
||||||
|
|
||||||
|
When a user logs in:
|
||||||
|
|
||||||
|
- The backend tries to get an existing organization from a "registration ID" or from the user's mail domain
|
||||||
|
- If the organization does not exist, it is created using the "registration ID" and fallbacks on the user's mail domain
|
||||||
|
- The user organization is set to this organization.
|
||||||
|
|
||||||
|
**Note:** While deploying the new code, we allow the already existing user to not have one.
|
||||||
|
|
||||||
|
|
||||||
|
## Link with the `Team` model
|
||||||
|
|
||||||
|
Each team must have an organization. This organization is not defined by the user, but automatically set
|
||||||
|
using the user's organization.
|
||||||
|
|
||||||
|
The team's organization does not restrict the users who can be added to the team.
|
||||||
|
|
||||||
|
There is currently no feature relying on the team organization.
|
||||||
|
|
||||||
|
**Note:** While deploying the new code, we allow the teams to not have one.
|
||||||
|
|
||||||
|
|
||||||
|
## Organization-related features
|
||||||
|
|
||||||
|
### Organization UI
|
||||||
|
|
||||||
|
A new interface can be created to allow users to see all members of an organization.
|
||||||
|
This could be used along with the contacts.
|
||||||
|
|
||||||
28
docs/serviceProviders.md
Normal file
28
docs/serviceProviders.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# ServiceProvider model
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The `ServiceProvider` model represents a ... service provider, also known as "tools using some data from this project".
|
||||||
|
|
||||||
|
|
||||||
|
## Link with the `Organization` model
|
||||||
|
|
||||||
|
An organization can be linked to several service providers.
|
||||||
|
The goal here, is to allow users of an organization to have access, to a service provider or not.
|
||||||
|
The first implementation does not have any feature related, but the first feature will probably be
|
||||||
|
to list applications visible in the "all application menu" (aka "la gaufre").
|
||||||
|
|
||||||
|
|
||||||
|
## Link with the `Team` model
|
||||||
|
|
||||||
|
A team can be linked to several service providers.
|
||||||
|
This is used as a filter when a service provider calls the resource server, only the teams linked to
|
||||||
|
this service provider are returned. This is mandatory for data segregation: we don't want all service
|
||||||
|
providers to be able to list all data regarding other service providers.
|
||||||
|
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
There is currently no way to provision all the service providers automatically. So when a service provider
|
||||||
|
creates a team via the resource server, we create the `ServiceProvider` on the fly, without any understandable name.
|
||||||
|
This will need to be improved later.
|
||||||
Reference in New Issue
Block a user