Sésame daemon - Synchronisation d'Identités Multi-sources
Le Sesame daemon est le worker d’exécution de Sésame. Il se connecte à Redis et écoute une queue BullMQ (par défaut sesame). Lorsqu’un job arrive, il exécute l’action demandée via un backend (script/exécutable) présent dans un répertoire de backends.
- Daemon: application NestJS lancée en application context (pas d’API HTTP), qui démarre un
WorkerBullMQ. - Redis: broker BullMQ (obligatoire).
- Backends: dossiers contenant un
config.ymldécrivant le backend + les exécutables associés.
Ressource: Figma
- Node.js (CI en Node 18)
- Yarn (le repo est en Yarn v1)
- Redis accessible depuis le daemon
Les variables effectivement utilisées par le daemon sont dans src/config.ts.
SESAME_REDIS_URI: URI Redis (défautredis://localhost:6379/0)SESAME_NAME_QUEUE: nom de la queue BullMQ (défautsesame)SESAME_BACKENDS_PATH: chemin vers le répertoire des backends (défaut./backendsà côté du code)SESAME_LOG_LEVEL: niveau de logs (défautinfo)SESAME_BACKENDS_EXECUTOR_SHELL: configuration “shell” d’exécution (défaut:true)
Exemple minimal (copie de .env.example) :
SESAME_REDIS_URI=redis://localhost:6379/0Le daemon scanne récursivement SESAME_BACKENDS_PATH et charge uniquement les fichiers config.yml.
Règles de chargement:
- le YAML doit contenir au minimum
_versionetname - si
pathn’est pas défini, il est automatiquement fixé au dossier duconfig.yml - si une config est invalide, le daemon s’arrête (exit 1)
Le dépôt fournit des exemples dans backends.example/.
Pour démarrer rapidement:
cp -R ./backends.example ./backendsPuis ajoutez vos backends dans ./backends (ou pointez SESAME_BACKENDS_PATH ailleurs).
- Installer:
yarn install- Démarrer Redis (ex: en local sur
6379) puis lancer le daemon:
export SESAME_REDIS_URI="redis://localhost:6379/0"
yarn start:devLe dépôt contient un Makefile qui fournit un parcours “container + network dev”.
- Démarrer Redis + Mongo (si besoin):
make dbs- Construire l’image:
make build- Installer les dépendances dans le container:
make install- Lancer le daemon en watch mode:
make devyarn testLe workflow de release génère un binaire via pkg (ex: sesame-daemon-linux) et des paquets .deb / .rpm.
- Release GitHub (binaire + paquets): déclencher le workflow “Release” via GitHub Actions:
https://github.com/Libertech-Fr/sesame-daemon/actions/workflows/release.yml?event=workflow_dispatch
Les paquets installent un service systemd sesame-daemon qui exécute /usr/bin/sesame-daemon avec:
WorkingDirectory=/var/lib/sesame-daemon- un fichier d’environnement optionnel:
/etc/default/sesame-daemon
Exemple de variables (fichier /etc/default/sesame-daemon) :
SESAME_LOG_LEVEL=INFO
SESAME_REDIS_URI=redis://localhost:6379/0
SESAME_BACKENDS_PATH=/var/lib/sesame-daemon/backendsVoir LICENSE.