Résoudre l'entité Project
Vue d'ensemble
La phase de décrochage sur l’OAV constitue une étape clé au cours de laquelle une série de mécaniques est exécutée par le moteur OIP. Son objectif est double : initialiser un nouveau projet ou assurer la reprise d’un projet existant.
La fonction de rappel session.resolveProjectFromContext, passée en paramètre de la fonction start dans le fichier server/index.mjs de votre projet, permet de résoudre l’identifiant de l’entité Project à partir du contexte client.
Elle est appelée à chaque décrochage pour déterminer quel projet est associé au contexte client.
SECURE_SESSION
En mode production NODE_ENV=production, la variable d'environnement SECURE_SESSION est ignorée et le projet démarrera toujours en mode sécurisé : lors de la phase de décrochage avec ?token dans l'URL, le contexte client est résolu auprès du service Fasst Sessions ou équivalent puis la fonction de rappel resolveProjectFromContext est appelée.
En mode développement avec SECURE_SESSION=false, la séquence de décrochage ne cherchera pas à résoudre le contexte client auprès du service Fasst Sessions. Cela permet de décrocher sur l'OAV sans devoir générer systématiquement un token client lors des phases de développement dans un environnement local. Dans ce mode dégradé, un mock du contexte client peut être utilisé dans le corps de la fonction resolveProjectFromContext.
Fonction session.resolveProjectFromContext
Rôle
La fonction de rappel resolveProjectFromContext doit résoudre l'entité Project par rapport à un contexte donné.
Arguments
Si la variable d’environnement SECURE_SESSION a la valeur true, la fonction resolveProjectFromContext reçoit en paramètre un objet représentant le contexte client résolu, enrichi de la propriété sessionId.
Si la variable d’environnement SECURE_SESSION a la valeur false, la fonction resolveProjectFromContext reçoit uniquement la propriété sessionId en paramètre.
À partir de la version 4.3.0 de la bibliothèque, l'identifiant de la connexion client clientId est également reçu en paramètre.
Valeur de retour
La fonction de rappel resolveProjectFromContext doit retourner l’identifiant de l’entité Project correspondant au contexte passé en paramètre.
Fonction session.validateProjectId
Rôle
Lors d'un décrochage avec le paramètre projectId, la fonction de rappel validateProjectId vérifie que l'identifiant correspond à une entité Project existante.
Arguments
La fonction validateProjectId prend en paramètre un identifiant.
Valeur de retour
La fonction validateProjectId doit retourner une valeur booléenne.
Exemple complet d’intégration
import { start } from '@fasstech/oip-starter-utils/server';
import { resolveProjectFromContext } from './resolve-project.mjs';
import { validateProjectId } from './validate-project-id.mjs';
const serverCfg = {
session: {
resolveProjectFromContext,
validateProjectId
},
// ...
};
const { app } = await start(serverCfg);Dans cet exemple :
- en mode sécurisé, avec SECURE_SESSION=true, l'entité Project est résolue grâce au contexte client reçu en paramètre de la fonction de rappel resolveProjectFromContext ;
- en mode développement, sans SECURE_SESSION, l'entité Project est résolue grâce au mock du contexte client ;
- enfin, dans le cas d'un décrochage avec projectId en paramètre d'URL, projectId est vérifié grâce à la fonction de rappel validateProjectId.
Résumé
Lors du décrochage :
- SECURE_SESSION=true permet de garantir la résolution du contexte client auprès du service Fasst Sessions ou équivalent lors de la séquence de décrochage ;
- SECURE_SESSION=false permet en mode développement de décrocher sur l'OAV sans devoir générer un token client ;
- resolveProjectFromContext : résout l’identifiant de l'entité Project à partir du contexte client ;
- validateProjectId : valide le paramètre d’URL projectId.
Les fonctions resolveProjectFromContext et validateProjectId sont à implémenter dans le fichier server/index.mjs.