Skip to content

Commit

Permalink
📝(docs) light doc about org & SP
Browse files Browse the repository at this point in the history
This introduces a very light documentation about
the newly introduced models.
  • Loading branch information
qbey authored and Morendil committed Nov 27, 2024
1 parent 02c6048 commit 6fe4818
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
41 changes: 41 additions & 0 deletions docs/organizations.md
Original file line number Diff line number Diff line change
@@ -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 changes: 28 additions & 0 deletions docs/serviceProviders.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 6fe4818

Please sign in to comment.