CHANGELOG
v3.5.5 - Jun 29, 2026
Maintenance
- Mise à jour des dépendances.
v3.5.4
Correctifs
- Commande views build : suppression du suffixe Query du nom des fichiers hooks générés pour la gestion des mutations graphQL
Maintenance et stabilité
- Mise à jour des dépendances
v3.5.3
Maintenance
- Mise à jour des dépendances pour correction de vulnérabilités.
v3.5.2
Maintenance
Release de maintenance.
v3.5.1
Maintenance
Release de maintenance.
v3.5.0
Correctifs
- Prettier devient une dépendance du projet.
v3.4.1
Nouvelles Fonctionnalités
Commande views build : ajout d'une option gen-secure-resolvers (boolean, false par défaut). Si true, les resolvers graphQL des vues seront générés de manière sécurisée. Un resolver sécurisé ne peut être appelé que depuis le contexte de sa vue relative sinon une erreur est retournée dans la réponse de la query / mutation.
Remarque : si vous souhaitez sécuriser les resolvers déjà existants de votre projet, veuillez vous référer à cette documentation
v3.4.0
Nouvelles Fonctionnalités
Cette version introduit un ensemble de commandes permettant d'installer et gérer les features OIP au sein de votre environnement OAV.
list
Commande features list
Permet de lister l'ensemble des features OIP disponibles.
> oip-tools features list
┌───────────────┬────────────────────────────────────────────────────────────┬────────────────────┬────────────────────┬────────────────────┐
│ Feature │ Description │ Tags │ Version disponible │ Version installée │
├───────────────┼────────────────────────────────────────────────────────────┼────────────────────┼────────────────────┼────────────────────┤
│ document │ Cette feature permet de stocker/supprimer des documents │ persistence, file │ 0.2.0 │ Non installé │
│ │ via le service fasst_file_storage │ │ │ │
└───────────────┴────────────────────────────────────────────────────────────┴────────────────────┴────────────────────┴────────────────────┘search
Commande features search <tag>
Permet de rechercher les features associées à un tag donné :
> oip-tools features search file
1 features trouvées sur un total de 2 features avec le tag "file".
- documentview
Commande features view <feature>
Permet de visualiser les informations techniques d'une feature :
> oip-tools features view document
Id : document
Name : document
Module : @fasstech/oip-features-document
Version : 0.2.0
OipCoreVersion : ^3.0.0
Description : Cette feature permet de stocker/supprimer des documents via le service fasst_file_storage et de mettre à jour l'entité projet (création/suppression d'entités Document)
Tags : persistence, file
Changelog :install
Commande features install <feature> [version]
Permet d'installer une features donnée (installe la dernière version si aucune version n'est spécifiée) :
yarn ou npm sera utilisé pour l'installation en fonction de votre environnement.
Le script vous proposera ensuite de mettre à jour votre docker-compose.yml en fonction des services dont la feature dépend :
> oip-tools features install document
? No version specified, will install latest version (@fasstech/[email protected]). Confirm ? yes
running npm install @fasstech/[email protected] --legacy-peer-deps...
added 33 packages, and audited 450 packages in 2s
101 packages are looking for funding
run `npm fund` for details
3 vulnerabilities (1 low, 2 moderate)
To address all issues, run:
npm audit fix
Run `npm audit` for details.
? @fasstech/oip-features-document relies on services fasst_file_storage. Update your docker-compose ? yes
Updating docker-compose...
Feature "document" installed successfully !v3.3.3
Nouvelles Fonctionnalités
Commande views build, ajout de l'option tree-structure :
Permet de choisir la manière dont l'arborescence des vues sera généré dans le cas de vues définies dans des sous-dossiers. Valeurs acceptées legacy ou standard (défaut).
Explications :
- avec --tree-structure legacy
# fichier de config d'une vue contenu dans un sous-dossier
my-view:
viewId: myView
pathname: /my-view
directory: some-dir/my-view
# la vue sera générée avec l'arborescence suivante
# views/
# ├─ some-dir/
# │ ├─ client/
# │ │ ├─ my-view/
# │ ├─ server/
# │ │ ├─ my-view/- avec --tree-structure standard ou par défaut
# fichier de config d'une vue contenu dans un sous-dossier
my-view:
viewId: myView
pathname: /my-view
directory: some-dir/my-view
# la vue sera générée avec l'arborescence suivante
# views/
# ├─ some-dir/
# │ ├─ my-view/
# │ │ ├─ client/
# │ │ ├─ server/Correctifs
Commande views build pour le client graphQL relay : reset des variables isLoaded et isFetching lors d'un appel à la méthode reFetch d'un hook généré d'une query graphQL d'une vue.
Breaking changes
- commande views build : dans le cas de vues définies dans des sous-dossiers, pour garder la structure originelle (legacy) de l'arborescence des vues générées, l'option tree-structure est nécessaire d'être utilisée avec la valeur legacy. Dans le cas contraire, les nouvelles vues seront générées avec la nouvelle structure (standard) de l'arborescence
- il est nécessaire de re-lancer le build des vues après la mise à jour de la dépendance pour appliquer le correctif de la méthode reFetch (client graphQL relay seulement)
v3.3.2
Nouvelles Fonctionnalités
Synchronisation du cache des entitiés à partir du modèle de données natif OIP Core v3.10.0
v3.3.1
Correctifs
Correction de l'erreur d'import lors de l'exécution des commandes
v2.4.2
Nouvelles Fonctionnalités
Commande views build, ajout de l'option tree-structure :
Permet de choisir la manière dont l'arborescence des vues sera généré dans le cas de vues définies dans des sous-dossiers. Valeurs acceptées legacy ou standard (défaut).
Explications :
- avec --tree-structure legacy
# fichier de config d'une vue contenu dans un sous-dossier
my-view:
viewId: myView
pathname: /my-view
directory: some-dir/my-view
# la vue sera générée avec l'arborescence suivante
# views/
# ├─ some-dir/
# │ ├─ client/
# │ │ ├─ my-view/
# │ ├─ server/
# │ │ ├─ my-view/
# │ ├─ transitions/
# │ │ ├─ my-view/- avec --tree-structure standard ou par défaut
# fichier de config d'une vue contenu dans un sous-dossier
my-view:
viewId: myView
pathname: /my-view
directory: some-dir/my-view
# la vue sera générée avec l'arborescence suivante
# views/
# ├─ some-dir/
# │ ├─ my-view/
# │ │ ├─ client/
# │ │ ├─ server/
# │ │ ├─ transitions/Correctifs
Commande views build pour le client graphQL relay : reset des variables isLoaded et isFetching lors d'un appel à la méthode reFetch d'un hook généré d'une query graphQL d'une vue.
Breaking changes
- commande views build : dans le cas de vues définies dans des sous-dossiers, pour garder la structure originelle (legacy) de l'arborescence des vues générées, l'option tree-structure est nécessaire d'être utilisée avec la valeur legacy. Dans le cas contraire, les nouvelles vues seront générées avec la nouvelle structure (standard) de l'arborescence
- il est nécessaire de re-lancer le build des vues après la mise à jour de la dépendance pour appliquer le correctif de la méthode reFetch (client graphQL relay seulement)
v2.4.1
Nouvelles Fonctionnalités
Commande views build :
- ajout du support du client graphQL apollo
- ajout de l'option gql-client pour la sélection du client graphQL, choix possibles : relay (client par défaut) ou apollo
- ajout de l'option gen-test-files pour contrôler la génération des fichiers de test, choix possibles : true (défaut) ou false
Breaking changes
Changements pour la commande views build pour le client graphQL relay au niveau de l'OAV :
- le fichier généré _common/client/queries/TaskUpdateSubscription.js devient _common/client/subscriptions/TaskUpdateSubscription.js => supprimer manuellement le fichier _common/client/queries/TaskUpdateSubscription.js
- le fichier généré _common/client/hooks/useTaskUpdateSubscription.js devient _common/client/hooks/useSubscription.js, le hook prend maintenant en second paramètre la query graphQL souhaitée => supprimer manuellement le fichier _common/client/hooks/useTaskUpdateSubscription.js
Changements de l'implémentation du hook pour la souscription à l'état d'une tâche depuis un composant d'une vue :
import { useState } from 'react';
import withProcess from '@@app/withProcess';
// before - import
import { useTaskUpdateSubscription } from '@@viewCommonHooks/useTaskUpdateSubscription';
// after - import
import { useSubscription } from '@@viewCommonHooks/useSubscription';
import { TaskUpdateSubscription } from '@@views/_common/graphql/subscriptions/TaskUpdateSubscription';
const MyComponent = ({ context, processHandlers }) => {
// before - hook implementation
const { outputValue, errorValue } = useTaskUpdateSubscription({
taskName: 'magicTask',
projectId: context.projectId,
});
// after - hook implementation
const { data: outputValue, error: errorValue } = useSubscription({
taskName: 'magicTask',
projectId: context.projectId,
}, TaskUpdateSubscription);
return (
<div>
...
</div>
);
};
export default withProcess(MyComponent);