Skip to content
Snippets Groups Projects
Commit 145aa9b5 authored by Alexis POYEN's avatar Alexis POYEN
Browse files

Doc V1

parent 265ca4e3
No related branches found
No related tags found
No related merge requests found
Pipeline #6346 passed
...@@ -71,9 +71,27 @@ La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io ...@@ -71,9 +71,27 @@ La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io
- `./web` est le répertoire où est stockée l'application front-end et publié par le serveur back-end. - `./web` est le répertoire où est stockée l'application front-end et publié par le serveur back-end.
### Utilisateurs et droits ### Utilisateurs et droits
**Utilisateurs techniques**
Les utilisateurs techniques permettent de s'authentifier à l'application et d'accéder aux API en fonction du rôle de l'utilisateur qui définit alors ses droits.
La source de création et d'authentification des utilisateurs technique est double. Elle peut soit provenir directement de la base de donnée locale d'utilisateurs de l'application (./data/users.db) ou d'un fournisseur d'identité avec le protocole OAuth2.
Dans le cas d'une connexion avec OAuth2, l'utilisateur est crée dans la base locale d'utilisateurs avec son identifiant OAuth2 qui permet de faire le lien avec l'utilisateur technique. Dans le cas d'une connexion avec OAuth2, l'utilisateur doit obligatoirement faire parti d'un groupe applicatif autorisé (cf variable d'envrionnement ADMIN_GROUP et CLIENT_GROUP) Un rôle différent est attribué automatiquement à l'utilisateur en fonction de son groupe.
> ATTENTION : le rôle "ADMIN" est obligatoire dans l'application car permet de gérer les utilisateurs et leurs droits. Sans celui-ci est sans utilisateurs ayant ce rôle dans la base, il est impossible de créer de nouveaux utilisateurs !
**Utilisateurs applicatif**
Les utilisateurs applicatifs sont facultatifs, ils permettent d'affecter des données à un utilisateur (ex : un client peut possèder un ou plusieurs comptes) Les utilisateurs applicatifs sont créé dans la base locale de données (./data/test.db) avec l'identifiant de l'utilisateur technique qui permet de faire la jointure entre un utilisateur applicatif et un utilisateur technique.
### Tests ### Tests
**Tests unitaires**
Les tests unitaires sont définis dans le répertoire de chaque paquet (ex : `auth-test.go` dans le package `auth`)
**Tests d'intégration**
Les tests d'intégration sont dans le répertoire `./rootmux`.
Les tests métiers (ex : mettre à jour le montant sur le compte bancaire d'un client lorsqu'il effectue une opération) sont définis dans le fichier `rootmux_test.go`.
Les tests concernant les droits et les réponses attendues par utilisateur (ex : un banquier n'a accès qu'aux clients qui lui sont rattachés et pas aux autres) sont écrits dans des fichiers différent par type de droits différent (ex : `banker_test.go` pour tester les droits des banquiers)
## Démarer un projet à partir du SDK ## Démarer un projet à partir du SDK
Il faut forker le dépôt SDK-GO Il faut forker le dépôt SDK-GO
...@@ -85,7 +103,7 @@ Supprimer le répertoire pkg. Ceci permet d'utiliser les dépendances `pkg` du d ...@@ -85,7 +103,7 @@ Supprimer le répertoire pkg. Ceci permet d'utiliser les dépendances `pkg` du d
Supprimer les fichiers `admin_test.go`, `banker_test.go` et `client_test.go` qui sont spécifiques à l'application de démonstration. Toutefois ces tests peuvent être adaptés à votre application pour tester les droits d'accès en fonction des rôles des utilisateurs. Supprimer les fichiers `admin_test.go`, `banker_test.go` et `client_test.go` qui sont spécifiques à l'application de démonstration. Toutefois ces tests peuvent être adaptés à votre application pour tester les droits d'accès en fonction des rôles des utilisateurs.
Si vous souhaitez partir de l'interface web du kit, supprimer simplement les répertoires `web/components/bankerPage` et `web/components/clientPage` qui sont spécifiques à la démo. Si vous souhaitez partir de l'interface web du kit, supprimer simplement les répertoires `web/components/bankerPage` et `web/components/clientPage` qui sont spécifiques à la démo.
Sinon supprimer tout le contenu tout le contenu du répertoire `web` pour repartir de zéro, il faudra alors redévelopper l'interface de gestion des utilisateurs. Sinon supprimer tout le contenu du répertoire `web` pour repartir de zéro, il faudra alors redévelopper l'interface de gestion des utilisateurs.
### Nommage de l'application ### Nommage de l'application
...@@ -148,7 +166,7 @@ Dans le fichier `web/assets/brand/manifest.js`, remplacer : ...@@ -148,7 +166,7 @@ Dans le fichier `web/assets/brand/manifest.js`, remplacer :
### Définition du modèle ### Définition du modèle
C'est dans le fichier `models.go` que doit être définit le modèle de donnée de l'application. C'est dans le fichier `models.go` que doit être définit le modèle de donnée de l'application et les réponses aux API.
> Ce qui suit sont des recommandations : > Ce qui suit sont des recommandations :
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment