cms-integration
Guide d’intégration multi-projets
Ce guide explique comment intégrer isotope-cms, isotope-media et le client React dans une application existante.
1) Dépendances Maven (serveur)
- Publier ou inclure les modules
isotope-cmsetisotope-media(ils dépendent d’un BOMisotope-bomet d’artefacts internesisotope-core,isotope-user,isotope-mail). - Exemple (pom parent) :
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-bom</artifactId>
<version>${isotope.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-cms</artifactId>
</dependency>
<dependency>
<groupId>com.ipsosenso</groupId>
<artifactId>isotope-media</artifactId>
</dependency>
</dependencies>
Assurez-vous d’avoir accès au repository Maven indiqué dans les pom.xml (distributionManagement).
2) Configuration Spring Boot
Dans votre application, isotope-cms et isotope-media sont auto-configurés. Fournissez les propriétés nécessaires :
# CMS
isotope.cms.default-language=fr
isotope.cms.domain-url=https://votre-domaine
isotope.cms.css-upload-path=/var/app/css
isotope.cms.days-before-result-form-deletion=30
isotope.cms.enabled-article-field-list=TEXT,TEXTAREA,SWITCH,DATE,DATETIME,VALUE_LIST,LINK,IMAGE,DOCUMENT,RICH_TEXT
isotope.cms.enabled-form-field-list=DATE,DATETIME,CHECKBOX,MULTIPLE_CHECKBOXES,SELECT,TEXT,TEXTAREA,NUMBER
isotope.cms.article-number-step-tolerance=0.01
isotope.cms.enable-contributors=true
isotope.cms.use-native-required=false
isotope.cms.mail-from=no-reply@votre-domaine
# Media (exemple)
isotope.media.storage.path=/var/app/media
Pour la purge planifiée des résultats de formulaires, ajoutez les tâches dans vos propriétés jobs (cf. README isotope-cms).
3) Sécurité et URL
- Protégez les endpoints d’admin (
/api/admin/**) avec vos règles Spring Security et mappez les autorités suivantes :access_cms_page,access_cms_forms,access_cms_forms_result,access_cms_articles_model,access_cms_articles,access_css,access_cms_contributors. - Routage recommandé (front BO vs rendu serveur) :
- Whitelister les routes BO :
/cms,/css,/login,/medias,/users,/jobs,/values,/languages, etc. vers le front React. - Rediriger les autres URLs publiques vers
/view/{shortcut}(rendu dynamique Freemarker).
- Whitelister les routes BO :
4) Client React (BO)
- Cloner
isotope-client-cms-masterdans votre mono-repo ou comme projet séparé. - Configurer la variable d’API (base URL) selon votre environnement (proxy dev recommandé).
- Installer et builder :
npm install
npm run build
- Déployer le contenu de
build/derrière une route BO (ex./cms) et servir l’app React (Nginx, Spring static resources, ou CDN).
5) Templating et rendu
- Pour personnaliser le rendu, surchargez les templates Freemarker dans votre application (même arborescence
templates/). - Utilisez les variables exposées (pages, forms, articles) et les contributeurs pour enrichir les vues.
6) Médias
isotope-mediagère les uploads et la persistance de documents ; adaptezIMediaStorageServicesi vous visez S3/MinIO.- Exposez le domaine (
isotope.cms.domain-url) pour générer des URLs publiques dans les contenus.
7) Données d’exemple
- Chargez
isotope-cms/docs/mysql.sqlpour le schéma etisotope-cms/docs/data.sql+menu.sqlpour initialiser fonctions/menus.
8) Checklist d’intégration
- Dépendances Maven résolues (BOM/artefacts internes disponibles)
- Propriétés CMS/Média renseignées
- Règles de sécurité et autorités mappées
- Routage : BO vs
/view/{shortcut} - Client React construit et servi
- Templates Freemarker surchargés si besoin
- Stockage média opérationnel (permissions, quota)