From 7daa894e1b5d6612ff0e8ee88b1303b997feda33 Mon Sep 17 00:00:00 2001 From: Alexis Poyen <apoyen@grandlyon.com> Date: Wed, 8 Jul 2020 10:46:31 +0200 Subject: [PATCH] Started how to fork documentation --- README.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- start.sh | 3 -- 2 files changed, 92 insertions(+), 5 deletions(-) delete mode 100755 start.sh diff --git a/README.md b/README.md index 536a79a..9f43911 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,14 @@ Les principales fonctionnalités : - gestion des droits : différents rôles peuvent être définit dans l'application et les API protégées par ces rôles - gestion du cookie de session utilisateur chiffré entre le navigateur et le serveur -## Démarrage +## Démarrage pour tests / dev + +## Identifiants de démonstration + +Trois comptes de démonstrations permettent de tester le kit avec trois profils différent : `admin` (rôle d'administrateur), `banker` (rôle de banquier), et `dupond` (rôle de client). Ces trois comptes ont pour mot de passe `password` ### Avec VS Code + > Il est nécessaire d'avoir un environnement de développement GO installé et opérationnel sur le poste. Télécharger le dépot @@ -27,7 +32,10 @@ git clone https://forge.grandlyon.com/apoyen/sdk-go.git Ouvrir le dépôt avec VS Code puis dans l'onglet `Debug`, démarrer le projet avec `Debug SDK-GO with Mock OAuth2` +La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io:1443 + ### Avec Docker + Installer sur le poste [Docker](https://docs.docker.com/get-docker/) et [docker-compose](https://docs.docker.com/compose/install/) Télécharger le dépot @@ -43,6 +51,88 @@ Dans le fichier docker-compose.yml décommenter la ligne `command: -debug` (ATTE docker-compose up -d ``` +La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io + ## Architecture -## Démarer un projet à partir du SDK \ No newline at end of file +### Arborescence fichier + +### Utilisateurs et droits + +### Tests + +## Démarer un projet à partir du SDK + +Il faut forker le dépôt SDK-GO + +### Nettoyage des fichiers + +Supprimer le répertoire pkg. Ceci permet d'utiliser les dépendances `pkg` du dépôt SDK-GO directement et de bénéficier des mises à jour apportée sur ces packages. + +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. +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. + +### Nommage de l'application + +> ATTENTION : ne pas faire un chercher -> remplacer de `SDK-GO` par `<nom du projet>`, le fork du projet doit continuer d'inclure certaines dépendances vers le projet SDK-GO afin de bénéficier de ces dernières mises à jour et de toutes ces fonctionnalités. + +Pour remplacer les mentions "SDK-GO" par le nom du projet éléments sont nécéssaires : + +- nom-du-projet : le nom donné au projet +- nom-du-dépôt : le nom du projet tel qu'il apparaît dans l'url sur la forge +- hostname-du-projet : l'url attribué au projet (dans le cadre du développement il est intéréssant de garder une adresse .nip.io) + +Dans le fichier `.env` modifier la variable `HOSTNAME=sdk-go.127.0.0.1.nip.io` => `HOSTNAME=<hostname-du-projet>.127.0.0.1.nip.io` + +Dans le fichier `docker-compose.yml` remplacer `sdk-go-container:` par `<nom-du-projet>-container:` et `image: sdk-go` par `image : <nom-du-projet>` + +Dans le fichier `main.go` remplacer + +```go +"forge.grandlyon.com/apoyen/sdk-go/internal/mocks" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/mocks" +"forge.grandlyon.com/apoyen/sdk-go/internal/rootmux" => "forge.grandlyon.com/apoyen/<nom-du-dépôt/internal/rootmux" +``` + +Dans le fichier `dev_certificates/domains.ext` remplacer `DNS.4 = sdk-go.127.0.0.1.nip.io:1443` => `DNS.4 = <hostname-du-projet>.127.0.0.1.nip.io:1443` + +Dans le fichier `internal/models/models.go`, remplacer : + +```go +"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/auth" +``` + +Dans le fichier `internal/rootmux/rootmux_test.go` remplacer : + +```go +"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>o/internal/auth" +"forge.grandlyon.com/apoyen/sdk-go/internal/mocks" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/mocks" +``` + +Dans le fichier `internal/rootmux/rootmux.go`, remplacer : + +```go +"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/auth" +"forge.grandlyon.com/apoyen/sdk-go/internal/models" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/models" +``` + +Dans le fichier `web/index.html` remplacer `<title>SDK-GO</title>` => `<title><nom-du-projet></title>` et `https://forge.grandlyon.com/apoyen/sdk-go` => `https://forge.grandlyon.com/apoyen/<nom-du-dépot>` + +Dans le fichier `web/assets/brand/brand.js`, remplacer : + +```javascript +export const windowTitle = "SDK-GO"; => export const windowTitle = "<nom-du-projet>"; +export const navTitle = "SDK-GO"; => export const navTitle = "<nom-du-projet>"; +``` + +Dans le fichier `web/assets/brand/manifest.js`, remplacer : + +```javascript +"name": "SDK-GO" => "name": "<nom-du-projet>",, +"short_name": "SDK-GO" => "short_name": "<nom-du-projet>",, +``` + +### 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. diff --git a/start.sh b/start.sh deleted file mode 100755 index 6f5045b..0000000 --- a/start.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -export $(cat .env | xargs) -go run main.go -apps=./configs/apps.json -davs=./configs/davs.json -https_port=1443 -- GitLab