Skip to content

Commit fb38e8e

Browse files
committed
Update .gitignore to include additional patterns and clean up ignored files; modify config.yml by removing obsolete JSON mappings; enhance README with instructions for creating .env file; bump Requests package version in requirements.txt.
1 parent a43e629 commit fb38e8e

5 files changed

Lines changed: 63 additions & 300 deletions

File tree

.env.example

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
## Exemple de configuration locale
2+
## Copiez ce fichier vers `.env` puis renseignez les valeurs.
3+
##
4+
## cp .env.example .env
5+
##
6+
7+
# Plateforme Docker (utilisée par le Makefile)
8+
PLATFORM=linux/amd64
9+
10+
# Source de données : TAIGA (JSON-RPC) ou OASYS (REST)
11+
SOURCE=TAIGA
12+
13+
# --- API source (Taiga / OASYS)
14+
STC_API_BASEURL=https://taiga.archi.fr
15+
STC_API_USERNAME=
16+
STC_API_PASSWORD=
17+
18+
# Taiga uniquement : secret ENSA hashé côté client
19+
STC_API_PASSENSA=
20+
STC_API_CODEENSA=lyon
21+
22+
# Optionnel : forcer le header Host (utile en cas de tunnel/forward)
23+
STC_FORCE_HOST_HEADER=0
24+
STC_FORCE_HOST_HEADER_VALUE=taiga.archi.fr
25+
26+
# Optionnel : forwarding Taiga via `make taiga-forward`
27+
STC_API_HOST=taiga.archi.fr
28+
STC_API_TARGET=x.x.x.x
29+
STC_API_FORWARD_PORT=1337
30+
31+
# --- API Sésame (cible)
32+
SESAME_API_BASEURL=
33+
SESAME_API_TOKEN=
34+
35+
# Parallélisme import (optionnel)
36+
SESAME_IMPORT_PARALLELS_FILES=1
37+
SESAME_IMPORT_PARALLELS_ENTRIES=32
38+
39+
# Paramètres d'exécution (optionnel)
40+
STC_RUN=all
41+
STC_IMPORTS=all
42+
STC_FORCE=0
43+
STC_AN=0
44+

.gitignore

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,17 @@ cache/
22
cache_old/
33
logs/
44
.env
5-
src/__pycache__/*
6-
.idea/
5+
.env.*
6+
!.env.example
7+
.venv/
78
bin/
9+
include/
10+
lib/python*/
811
pyvenv.cfg
9-
config.yml
10-
lib/*
11-
config.yml
12+
src/__pycache__/
13+
.idea/
14+
.vscode/
15+
.pytest_cache/
1216
.DS_Store
1317
tests_artifacts/
1418
__pycache__/

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,15 @@ Le flux d'exécution est le suivant :
6363

6464
## Configuration (`.env`)
6565

66-
Créez un fichier `.env` à la racine du projet. Toutes les variables lues par le code sont listées ci‑dessous.
66+
Copiez le fichier d’exemple puis renseignez vos valeurs :
67+
68+
```bash
69+
cp .env.example .env
70+
```
71+
72+
> **Sécurité** — Ne commitez jamais votre `.env` (tokens / mots de passe). Le dépôt ignore déjà `.env` via `.gitignore`.
73+
74+
Toutes les variables lues par le code sont listées ci‑dessous.
6775

6876
| Variable | Obligatoire | Défaut | Rôle |
6977
|---|---|---|---|

config.yml

Lines changed: 0 additions & 293 deletions
Original file line numberDiff line numberDiff line change
@@ -291,296 +291,3 @@ taiga_esn.json:
291291
additionalFields.attributes.supannPerson.supannRefId:
292292
- "parse_type(typename='str')"
293293
- "prefix(string='{TAIGA}')"
294-
---
295-
taiga_etd.json:
296-
exclude:
297-
- sn: ^#
298-
- givenName: ^#
299-
mapping:
300-
inetOrgPerson.cn:
301-
- "nom"
302-
- "prenom"
303-
inetOrgPerson.displayName:
304-
- "prenom"
305-
- "nom"
306-
inetOrgPerson.sn: "nom"
307-
inetOrgPerson.givenName: "prenom"
308-
additionalFields.attributes.supannPerson.supannPrenomsEtatCivil: "prenom"
309-
$setOnInsert.inetOrgPerson.employeeNumber:
310-
- "id_coord"
311-
customFields.photo: "photo_nom"
312-
$setOnInsert.inetOrgPerson.uid:
313-
- "prenom"
314-
- "nom"
315-
additionalFields.attributes.supannPerson.supannEtuId: "num_etd"
316-
additionalFields.attributes.supannPerson.supannCodeIne: "num_ine"
317-
additionalFields.attributes.supannPerson.supannRefId:
318-
- "id_coord"
319-
$setOnInsert.inetOrgPerson.departmentEmployee:
320-
- "id_coord"
321-
$setOnInsert.inetOrgPerson.mail:
322-
- "prenom"
323-
- "nom"
324-
inetOrgPerson.mobile: "tel_mob"
325-
inetOrgPerson.postalAddress:
326-
- "adresse"
327-
- "CP"
328-
- "Ville"
329-
additionalFields.attributes.supannPerson.supanncivilite: "civilite"
330-
additionalFields.attributes.supannPerson.supannOIDCGenre: "civilite"
331-
additionalFields.attributes.supannPerson.supannNomdeNaissance: "nom_marital"
332-
additionalFields.attributes.supannPerson.supannOIDCDatedeNaissance: "nss_date"
333-
additionalFields.attributes.supannPerson.supannMailPerso: "email2"
334-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
335-
- "prenom"
336-
- "nom"
337-
customFields.photo: "photo_nom"
338-
additionalFields.attributes.schacLinkageIdentifiers.schacpersonaluniquecode: "num_ine"
339-
additionalFields:
340-
additionalFields.objectClasses:
341-
- "supannPerson"
342-
- "eduPerson"
343-
- "sogxuser"
344-
- "ealPerson"
345-
- "supannCMS"
346-
- "schacContactLocation"
347-
- "schacLinkageIdentifiers"
348-
additionalFields.attributes.supannPerson.supannTypeEntiteAffectation:
349-
- "etd"
350-
additionalFields.attributes.supannPerson.supannEntiteAffectationPrincipale: "Architecture"
351-
state: 1
352-
inetOrgPerson.employeeType: "TAIGA"
353-
$setOnInsert.inetOrgPerson.departmentNumber:
354-
- "etd"
355-
additionalFields.attributes.supannPerson.supannEtablissement: "{UAI}0690184A"
356-
additionalFields.attributes.supannPerson.supannRessourceEtat: "{COMPTE}A:SupannActif"
357-
lifecycle: "O"
358-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonaffiliation:
359-
- "student"
360-
- "member"
361-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprimaryaffiliation: "student"
362-
$setOnInsert.additionalFields.attributes.sogxuser.sogxquota: 600
363-
$setOnInsert.additionalFields.attributes.sogxuser.sogxdisableflag: 0
364-
additionalFields.attributes.ealPerson.ealwifi: "Etudiants"
365-
additionalFields.attributes.schacContactLocation.schachomeorganization: "lyon.archi.fr"
366-
additionalFields.attributes.schacContactLocation.schachomeorganizationtype: "urn:schac:homeOrganizationType:int:university"
367-
transforms:
368-
inetOrgPerson.cn: "join(delimiter=' ')"
369-
inetOrgPerson.displayName: "join(delimiter=' ')"
370-
inetOrgPerson.postalAddress: "join(delimiter='$')"
371-
$setOnInsert.inetOrgPerson.uid:
372-
- "join(delimiter='.')"
373-
- "remove_accents"
374-
- "lower"
375-
- "regex(pattern='\\s+', replace='-')"
376-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
377-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
378-
$setOnInsert.inetOrgPerson.mail:
379-
- "join(delimiter='.')"
380-
- "lower"
381-
- "remove_accents"
382-
- "regex(pattern='\\s+', replace='-')"
383-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
384-
- "suffix(string='@lyon.archi.fr')"
385-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
386-
- "join(delimiter='.')"
387-
- "remove_accents"
388-
- "lower"
389-
- "regex(pattern='\\s+', replace='-')"
390-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
391-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
392-
- "suffix(string='@lyon.archi.fr')"
393-
additionalFields.attributes.supannPerson.supannEtuId: "parse_type(typename='str')"
394-
additionalFields.attributes.supannPerson.supannRefId:
395-
- "parse_type(typename='str')"
396-
- "prefix(string='{TAIGA}')"
397-
additionalFields.attributes.schacLinkageIdentifiers.schacpersonaluniquecode:
398-
- "prefix(string='urn:schac:personalUniqueCode:int:esi:fr:')"
399-
taiga_adm.json:
400-
exclude:
401-
- sn: ^#
402-
- givenName: ^#
403-
mapping:
404-
inetOrgPerson.cn:
405-
- "nom"
406-
- "prenom"
407-
inetOrgPerson.displayName:
408-
- "prenom"
409-
- "nom"
410-
inetOrgPerson.sn: "nom"
411-
inetOrgPerson.givenName: "prenom"
412-
additionalFields.attributes.supannPerson.supannPrenomsEtatCivil: "prenom"
413-
$setOnInsert.inetOrgPerson.employeeNumber:
414-
- "id_coord"
415-
customFields.photo: "photo_nom"
416-
$setOnInsert.inetOrgPerson.uid:
417-
- "prenom"
418-
- "nom"
419-
additionalFields.attributes.supannPerson.supannEmpId: "id_adm"
420-
additionalFields.attributes.supannPerson.supannRefId:
421-
- "id_coord"
422-
$setOnInsert.inetOrgPerson.departmentEmployee:
423-
- "id_coord"
424-
$setOnInsert.inetOrgPerson.mail:
425-
- "prenom"
426-
- "nom"
427-
inetOrgPerson.mobile: "tel_mob"
428-
inetOrgPerson.postalAddress:
429-
- "adresse"
430-
- "CP"
431-
- "Ville"
432-
additionalFields.attributes.supannPerson.supanncivilite: "civilite"
433-
additionalFields.attributes.supannPerson.supannOIDCGenre: "civilite"
434-
additionalFields.attributes.supannPerson.supannNomdeNaissance: "nom_marital"
435-
additionalFields.attributes.supannPerson.supannOIDCDatedeNaissance: "nss_date"
436-
additionalFields.attributes.supannPerson.supannMailPerso: "email2"
437-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
438-
- "prenom"
439-
- "nom"
440-
additionalFields:
441-
additionalFields.objectClasses:
442-
- "supannPerson"
443-
- "eduPerson"
444-
- "sogxuser"
445-
- "ealPerson"
446-
- "supannCMS"
447-
additionalFields.attributes.supannPerson.supannTypeEntiteAffectation:
448-
- "adm"
449-
additionalFields.attributes.supannPerson.supannEntiteAffectationPrincipale: "Admin"
450-
additionalFields.attributes.supannPerson.supannEtablissement: "{UAI}0690184A"
451-
additionalFields.attributes.supannPerson.supannRessourceEtat: "{COMPTE}A:SupannActif"
452-
lifecycle: "O"
453-
inetOrgPerson.employeeType: "TAIGA"
454-
$setOnInsert.inetOrgPerson.departmentNumber:
455-
- "adm"
456-
state: 1
457-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonaffiliation:
458-
- "staff"
459-
- "member"
460-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprimaryaffiliation: "staff"
461-
$setOnInsert.additionalFields.attributes.sogxuser.sogxdisableflag: 0
462-
additionalFields.attributes.ealPerson.ealwifi: "ProfAdmin"
463-
transforms:
464-
inetOrgPerson.cn: "join(delimiter=' ')"
465-
inetOrgPerson.displayName: "join(delimiter=' ')"
466-
inetOrgPerson.postalAddress: "join(delimiter='$')"
467-
$setOnInsert.inetOrgPerson.uid:
468-
- "join(delimiter='.')"
469-
- "remove_accents"
470-
- "lower"
471-
- "regex(pattern='\\s+', replace='-')"
472-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
473-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
474-
$setOnInsert.inetOrgPerson.mail:
475-
- "join(delimiter='.')"
476-
- "remove_accents"
477-
- "lower"
478-
- "regex(pattern='\\s+', replace='-')"
479-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
480-
- "suffix(string='@lyon.archi.fr')"
481-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
482-
- "join(delimiter='.')"
483-
- "remove_accents"
484-
- "lower"
485-
- "regex(pattern='\\s+', replace='-')"
486-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
487-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
488-
- "suffix(string='@lyon.archi.fr')"
489-
additionalFields.attributes.supannPerson.supannEmpId: "parse_type(typename='str')"
490-
additionalFields.attributes.supannPerson.supannRefId:
491-
- "parse_type(typename='str')"
492-
- "prefix(string='{TAIGA}')"
493-
taiga_esn.json:
494-
exclude:
495-
- sn: ^#
496-
- givenName: ^#
497-
mapping:
498-
inetOrgPerson.cn:
499-
- "nom"
500-
- "prenom"
501-
inetOrgPerson.displayName:
502-
- "prenom"
503-
- "nom"
504-
inetOrgPerson.sn: "nom"
505-
inetOrgPerson.givenName: "prenom"
506-
additionalFields.attributes.supannPerson.supannPrenomsEtatCivil: "prenom"
507-
$setOnInsert.inetOrgPerson.employeeNumber:
508-
- "id_coord"
509-
customFields.photo: "photo_nom"
510-
$setOnInsert.inetOrgPerson.uid:
511-
- "prenom"
512-
- "nom"
513-
additionalFields.attributes.supannPerson.supannEmpId: "id_ens"
514-
additionalFields.attributes.supannPerson.supannRefId:
515-
- "id_coord"
516-
$setOnInsert.inetOrgPerson.departmentEmployee:
517-
- "id_coord"
518-
$setOnInsert.inetOrgPerson.mail:
519-
- "prenom"
520-
- "nom"
521-
inetOrgPerson.mobile: "tel_mob"
522-
inetOrgPerson.postalAddress:
523-
- "adresse"
524-
- "CP"
525-
- "Ville"
526-
additionalFields.attributes.supannPerson.supanncivilite: "civilite"
527-
additionalFields.attributes.supannPerson.supannOIDCGenre: "civilite"
528-
additionalFields.attributes.supannPerson.supannNomdeNaissance: "nom_marital"
529-
additionalFields.attributes.supannPerson.supannOIDCDatedeNaissance: "nss_date"
530-
additionalFields.attributes.supannPerson.supannMailPerso: "email2"
531-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
532-
- "prenom"
533-
- "nom"
534-
additionalFields:
535-
additionalFields.objectClasses:
536-
- "supannPerson"
537-
- "eduPerson"
538-
- "sogxuser"
539-
- "ealPerson"
540-
- "supannCMS"
541-
additionalFields.attributes.supannPerson.supannTypeEntiteAffectation:
542-
- "esn"
543-
additionalFields.attributes.supannPerson.supannEntiteAffectationPrincipale: "Enseignant"
544-
additionalFields.attributes.supannPerson.supannEtablissement: "{UAI}0690184A"
545-
additionalFields.attributes.supannPerson.supannRessourceEtat: "{COMPTE}A:SupannActif"
546-
lifecycle: "O"
547-
$setOnInsert.inetOrgPerson.departmentNumber:
548-
- "esn"
549-
inetOrgPerson.employeeType: "TAIGA"
550-
state: 1
551-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonaffiliation:
552-
- "teacher"
553-
- "member"
554-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprimaryaffiliation: "teacher"
555-
$setOnInsert.additionalFields.attributes.sogxuser.sogxdisableflag: 0
556-
additionalFields.attributes.ealPerson.ealwifi: "ProfAdmin"
557-
transforms:
558-
inetOrgPerson.cn: "join(delimiter=' ')"
559-
inetOrgPerson.displayName: "join(delimiter=' ')"
560-
inetOrgPerson.postalAddress: "join(delimiter='$')"
561-
$setOnInsert.inetOrgPerson.uid:
562-
- "join(delimiter='.')"
563-
- "remove_accents"
564-
- "lower"
565-
- "regex(pattern='\\s+', replace='-')"
566-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
567-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
568-
$setOnInsert.inetOrgPerson.mail:
569-
- "join(delimiter='.')"
570-
- "remove_accents"
571-
- "lower"
572-
- "regex(pattern='\\s+', replace='-')"
573-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
574-
- "suffix(string='@lyon.archi.fr')"
575-
$setOnInsert.additionalFields.attributes.eduPerson.edupersonprincipalname:
576-
- "join(delimiter='.')"
577-
- "remove_accents"
578-
- "lower"
579-
- "regex(pattern='\\s+', replace='-')"
580-
- "regex(pattern=\"[\\'\\\"]\", replace=\"\")" # supprime les quotes simples et doubles
581-
- "regex(pattern='(?<=\\b\\w)([a-zA-Z0-9_\\-]+\\.)', replace='')"
582-
- "suffix(string='@lyon.archi.fr')"
583-
additionalFields.attributes.supannPerson.supannEmpId: "parse_type(typename='str')"
584-
additionalFields.attributes.supannPerson.supannRefId:
585-
- "parse_type(typename='str')"
586-
- "prefix(string='{TAIGA}')"

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aiohttp==3.13.4
22
python-dotenv==1.0.1
3-
Requests==2.32.0
3+
Requests==2.32.4
44
urllib3==1.26.19
55
aiofiles~=24.1.0
66
PyYAML~=6.0.2

0 commit comments

Comments
 (0)