Skip to content

Commit 8c8b879

Browse files
committed
Create README.md
1 parent 3ec5cdf commit 8c8b879

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

docs/backends/README.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Structure d'un backend
2+
## Architecture
3+
Un repertoire doit etre mise dans backends
4+
avec dedans :
5+
* un fichier de configuration (config.yml)
6+
* un repertoire bin comprenant les scripts
7+
* un repertoire etc optionnel peut aussi etre créé pour mettre les fichiers de configuration des scripts
8+
9+
```
10+
./nomDuBackend
11+
./nomDuBackend/config.yml
12+
./nomDuBackend/bin/
13+
```
14+
15+
## Fichier de configuration config.yml
16+
```yaml
17+
name: 'dummy'
18+
description: 'Dummy backend for tests'
19+
active: 1
20+
actions:
21+
CHANGEPWD:
22+
exec: "dummy.sh"
23+
onError: 'stop'
24+
ADDIDENT:
25+
exec: 'dummy.sh'
26+
onError: 'continue'
27+
UPDATEIDENT:
28+
exec: 'dummy.sh'
29+
onError: 'continue'
30+
DELIDENT:
31+
exec: 'dummy.sh'
32+
onError: 'continue'
33+
34+
35+
```
36+
Le fichier de configuration doit comprendre :
37+
* name : le nom du backend
38+
* description : sa description
39+
* active : 0|1 0 le backend sera ignoré
40+
* actions : un tableau decrivant les actions
41+
* **CHANGEPWD** : exec sera executé sur l ordre de changement de mot de passe
42+
* **ADDIDENT** : exec sera executé sur l ordre de l'ajout d'une identite
43+
* **UPDATEIDENT** : exec sera executé sur l ordre de modification d'une identite
44+
* **DELIDENT** : exec sera executé sur l ordre de suppression d'une identite
45+
* Chaque action doit comprendre :
46+
* exec: le script qui sera executé (sans le path). Ce script doit être dans le répertoire bin du backend
47+
* onError : 'continue'|'stop Si une erreur se produit on arrete (stop) tout l'execution des backend ou on passe au suivant (continue)
48+
49+
50+
## Communication avec le script
51+
Le script recevera les données sur son entrée standard (STDIN) sous la forme d'une chaine json.
52+
Il redonnera le resultat sur sa sortie standard (STDOUT) et si il y a une erreur sur la sortie erreur (STDERR)
53+
le code d'erreur qu il doit fournir au demon :
54+
* 0 : OK
55+
* 1 : declenchera sur l'api une erreur de type 401
56+
* 2 : déclenchera sur l'api une erreur de type 403
57+
* ... : declenchera une erreur 500
58+
59+
Exemple de script bash :
60+
```bash
61+
#!/bin/bash
62+
echo "Hello Word"
63+
sleep 2
64+
echo "j'ai recu :"
65+
cat -
66+
echo "je provoque une erreur " >&2
67+
exit 3
68+
```

0 commit comments

Comments
 (0)