Description technique détaillée
🗓️ Date de sortie
Strapi a été publié en octobre 2015 comme projet open source sur GitHub.
📝 Licence
Strapi Community est un logiciel open source sous licence MIT. Les composants Enterprise et certaines fonctionnalités commerciales sont soumis à des conditions de licence distinctes.
💻 Langage de programmation
Strapi est développé en JavaScript et TypeScript et fonctionne sur Node.js. Son architecture permet de personnaliser le serveur, les contrôleurs, les services et les extensions.
🏛️ Architecture
Architecture headless et API-first : le CMS gère les contenus indépendamment du site ou de l’application qui les affiche. Une interface d’administration permet aux équipes éditoriales de travailler sur les contenus, tandis que les développeurs construisent le frontend séparément.
Système extensible : modèles de contenu définis dans des fichiers
schema.json, contrôleurs et services personnalisables, plugins et API REST ; GraphQL est disponible au moyen d’une extension.
📂 Base de données
Strapi prend en charge les bases de données relationnelles suivantes :
PostgreSQL
MySQL
MariaDB
SQLite
MongoDB n’est pas une base prise en charge par Strapi 5.
⚙️ Caractéristiques principales
✅ CMS headless : gestion centralisée des contenus et diffusion vers plusieurs interfaces, sans imposer de technologie de présentation.
✅ Éditeur et modèles de contenu : Content Manager pour la gestion éditoriale et Content-Type Builder pour définir visuellement les structures de contenu.
✅ Gestion des utilisateurs et des permissions : contrôle des accès administratifs par rôles et droits détaillés ; les comptes des utilisateurs finaux sont gérés séparément.
✅ Multilingue : prise en charge de l’internationalisation des contenus.
✅ API REST et GraphQL : exposition des contenus par API REST, avec GraphQL disponible via un plugin.
✅ Personnalisation : extension des fonctionnalités par plugins, contrôleurs, services et points d’accès personnalisés.
🔥 Fonctionnalités avancées
🚀 Composants réutilisables et modélisation : conception de structures de contenu adaptées aux besoins d’un site, d’une application ou d’un catalogue.
📊 Workflows de validation : définition d’étapes de relecture, de responsables et de permissions de transition avec Review Workflows, disponible dans l’offre Enterprise.
🔄 Publications groupées et historique : Releases et Content History complètent la gestion éditoriale dans les offres payantes correspondantes.
📦 Intégrations et automatisations : webhooks et API pour connecter le CMS à d’autres services et déclencher des traitements lors des changements de contenu.
💡 Auto-hébergement ou service managé : déploiement sur une infrastructure contrôlée par l’organisation, ou recours à Strapi Cloud.
🔐 Sécurité
🔹 Contrôle d’accès RBAC : permissions détaillées par rôle, type de contenu et action dans le panneau d’administration, avec des restrictions possibles au niveau des champs.
🔹 Protection des API : tokens en lecture seule ou à permissions personnalisées, complétés par des policies pour encadrer les accès applicatifs.
🔹 Authentification unique : SSO disponible avec Enterprise ou comme option payante de l’offre Growth.
🔹 Traçabilité : journaux d’audit dans l’offre Enterprise pour enregistrer les actions administratives ; ils ne remplacent pas les sauvegardes des données et des médias.
🔹 Configuration de sécurité : middleware de sécurité et politique de sécurité du contenu, à adapter notamment aux domaines des fournisseurs de médias utilisés.
✅ Les pour et les contre
✅ Avantages
✔️ Liberté du frontend : un même CMS peut alimenter plusieurs sites, applications ou canaux de diffusion.
✔️ Cœur open source : l’édition Community sous licence MIT permet l’utilisation et la personnalisation du CMS sans licence Enterprise.
✔️ Grande extensibilité : adaptation des modèles, des API et du comportement serveur aux besoins du projet.
✔️ Contrôle des données : en auto-hébergement, l’organisation choisit l’emplacement de la base de données et du stockage des médias.
✔️ Gestion éditoriale structurée : interface de gestion, brouillons, publication, internationalisation et permissions disponibles dans l’écosystème fonctionnel du CMS.
❌ Inconvénients
❌ Frontend à construire séparément : l’architecture headless ne fournit pas, à elle seule, un site public prêt à l’emploi avec ses pages et son thème.
❌ Compétences techniques nécessaires : les personnalisations avancées impliquent du développement JavaScript ou TypeScript ainsi qu’une maîtrise des API et de l’environnement Node.js.
❌ Fonctionnalités avancées payantes : Review Workflows et Audit Logs nécessitent Enterprise ; Releases et Content History relèvent également des offres payantes.
❌ Exploitation à organiser en auto-hébergement : le contrôle de l’infrastructure implique aussi de gérer la base de données, le stockage, les accès et les journaux techniques.
🌐 Site officiel


