Extensibilité

Les webhooks et les événements d’application sont un concept assez similaire, mais s’appliquent à différents cas d’utilisation.

Si vous n’avez pas le contrôle sur le backend qui reçoit les événements, par exemple lors de l’envoi d’événements à un service tiers, vous devez utiliser nos webhooks traditionnels. L’envoi de webhooks directement à un fournisseur de services tiers peut vous obliger à appliquer des transformations de charge utile avant l’envoi du webhook, ce qui n’est possible que pour les webhooks traditionnels.

Lorsque vous construisez le backend vous-même, il est plus simple d’appliquer les transformations de webhook dans votre code plutôt que d’utiliser nos transformations dsl et vous devez utiliser les événements d’application.

Les événements d’application peuvent être considérés comme un crochet web standard pour votre application. Le développeur de l’application peut créer un abonnement à un événement pour la définition de l’application. Le point de terminaison donné recevra alors des événements pour chacun des environnements spatiaux dans lesquels l’application a été installée. Il n’est pas nécessaire de créer ou de supprimer des webhooks lors de l’installation ou de la désinstallation de l’application.

Vous pouvez toujours utiliser des webhooks pour les cas où vous n’avez pas de contrôle sur le côté récepteur. Nous prévoyons de les prendre en charge à l’avenir.

Il n’y a aucune restriction en ce qui concerne le langage de programmation que vous utilisez pour construire le backend. Nous fournissons une boîte à outils pour node js, mais vous pouvez utiliser le langage de programmation de votre choix.

Pour la partie front-end des applications, vous devez vous limiter à ce qui s’exécute dans le navigateur. Vous souhaitez utiliser Javascript ou quelque chose qui se compile en Javascript comme Typescript / Purescript.

Les applications représentent la nouvelle génération d’extensions d’interface utilisateur. Elles sont plus rapides à créer, à mettre à jour et à gérer et sont faciles à orchestrer lorsqu’elles sont utilisées dans plusieurs espaces de votre organisation.  Des fonctionnalités telles que les identités d’application (App Identities) et les événements d’application (App events) permettent de créer des flux de travail entièrement automatisés avec des applications, tandis que les extensions d’interface utilisateur agissent au nom de l’utilisateur et nécessitent l’intervention de l’utilisateur pour accomplir une tâche. 

Les applications et les extensions d’interface utilisateur sont compatibles au moment de la rédaction de cet article et partagent de nombreux outils, y compris le SDK. Bien que nous prévoyions de prendre en charge les extensions d’interface utilisateur dans un avenir proche, nos efforts actuels en matière de produits sont axés sur l’app framework. Pour cette raison, nous encourageons nos clients à migrer leurs extensions d’interface utilisateur vers des applications, dans la mesure du possible, afin de tirer parti de la gamme complète des fonctionnalités d’extensibilité que nous proposons. 

Non, les applications ne contribuent pas au quota d’utilisateurs de l’organisation et peuvent être créées gratuitement. Cependant, pour des raisons techniques, nous limitons le nombre maximum de définitions d’applications pouvant être créées par organisation à 250 et le nombre maximum d’installations pouvant être installées par environnement à 50. Pour plus d’informations sur les limites des applications, veuillez vous référer à la page Limites techniques.

Il existe deux façons d’héberger votre application, soit en utilisant l’hébergement intégré de Contentful qui peut être activé dans les paramètres de votre application, soit en utilisant un tiers.

Il n’y a pas d’exigences particulières pour héberger votre application avec un tiers, elle doit seulement être accessible via une URL publique. Vous pouvez choisir d’héberger votre application sur l’une des plateformes de cloud et d’hébergement courantes, notamment AWSGCPAzureVercelHerokuNetlifyGlitchDigital Ocean , etc.

Lorsque vous hébergez votre application sur Contentful, il existe certaines limitations pour chaque paquet. Consultez la documentation pour savoir ce que vous devez prendre en compte.

Les limites ne s’appliquent pas aux applications que vous hébergez vous-même. Dans les deux cas, nous vous recommandons de prendre en compte les meilleures pratiques pour optimiser les performances, telles que la division des paquets JavaScript en morceaux ou le chargement asynchrone des ressources pour réduire les temps de chargement.

Nous n’avons pas d’opinion sur la façon dont vous publiez de nouvelles versions de votre application. Si vous hébergez l’application sur Contentful, la mise à jour est aussi simple que de télécharger un nouveau paquet dans les paramètres de l’application ou d’utiliser la commande CLI. Vous pouvez publier de nouvelles versions de votre application tous les jours, toutes les semaines ou tous les mois, en fonction de vos besoins et de ceux de vos utilisateurs. Nous vous recommandons toutefois de n’introduire que des modifications rétrocompatibles, afin d’éviter toute rupture pour vos utilisateurs.

Les App Identities n’ont accès qu’aux entités dans l’environnement d’espace dans lequel l’application est installée. Elles peuvent accéder aux entités suivantes :

  • Type de contenu

  • Interface éditeur

  • Entrée

  • Ressource média

  • Paramètre de langue-région

  • Balise

  • Instantané (uniquement sur l’environnement principal)

  • L’AppInstallation propre à l’application

  • Tâche

Oui, vous pouvez personnaliser l’application web en créant des applications, en introduisant des extensions d’interface utilisateur ou en modifiant le comportement standard des éditeurs de champs. Une application est une application monopage (SPA) composée de fichiers HTML, CSS et Javascript que nous affichons dans un iframe. L’App Framework fournit un certain nombre d’emplacements standard pour intégrer votre application dans l’interface utilisateur de l’application web :

  • Champ d’entrée

  • Éditeur d’entrée

  • Barre latérale d’entrée  

  • Dialogue

  • Page

Des fonctionnalités avancées telles que les identités d’application et les événements d’application permettent à vos applications de sortir du cadre immédiat de l’interface utilisateur de l’application web et de modifier le contenu à l’aide de Content Management API (CMA). Vous trouverez plus de ressources sur ces sujets dans la section Extensibilité de la documentation pour les développeurs.

Nous avons conçu les identités d’application (App Identities) en pensant aux comptes de service et à leurs cas d’utilisation. Bien que certains de nos nouveaux points de terminaison CMA ne soient pas encore activés pour les App Identities, nous prévoyons de le faire à long terme. Une fois qu’ils sont en place, il ne devrait plus y avoir beaucoup de cas d’utilisation nécessitant de créer, gérer et utiliser des comptes de service.

Les « paramètres de l’application » sont un objet de configuration JSON qui fait partie de l’App Installation. La valeur JSON.stringify de cet objet ne peut pas dépasser 16 ko.

Pour les applications de production, vous devez appliquer les mêmes bonnes pratiques que pour le reste de votre infrastructure et de vos sites web de niveau production. Gardez à l’esprit que vous devez mentionner la liste des trackers et leurs objectifs dans la politique de confidentialité de vos applications.

Nous vous permettons d’avoir jusqu’à trois paires de clés d’application actives différentes. Cela vous permet de créer une nouvelle paire de clés et de la déployer sur votre infrastructure avant de supprimer l’ancienne. Si vous ne transmettez pas d’identifiant de clé dans l’appel API pour créer un jeton d’application, nous vérifions les trois clés publiques existantes que vous avez stockées pour l’application.

Les clés d’application sont une paire de clés où nous conservons la clé publique et vous conservez la clé privée. Elles sont utilisées pour demander des jetons d’application. Une fois que l’application a demandé et reçu un jeton d’application, elle peut utiliser ce jeton pour s’authentifier auprès de notre CMA. Vous pouvez considérer les jetons d’application comme le jeton d’accès personnel pour les applications. Les jetons d’application donnent aux applications la possibilité d’accéder à la CMA de Contentful sans qu’un utilisateur réel soit présent et sans avoir besoin de créer des comptes de service.

Un accès à l’application est limité à l’espace et à l’environnement dans lesquels elle est installée. En fonction de l’accès dont dispose un utilisateur, il peut être davantage limité. Ainsi, si un utilisateur ne peut pas mettre à jour un champ particulier d’un type de contenu particulier, l’application s’affichera en mode lecture seule pour ce champ particulier.

Contentful permet aux utilisateurs de créer deux types d’applications : les applications de la marketplace et les applications privées. Le processus d’installation dépend du type d’application que vous souhaitez installer.

Pour les applications de la marketplace, accédez à la marketplace des applications et cliquez sur Installer maintenant. Sélectionnez l’espace cible et, si vous avez plusieurs environnements dans l’espace, l’environnement cible. Accordez à l’application l’accès à votre espace en cliquant sur Autoriser l’accès.

App Installation Flow

Enfin, remplissez les champs de configuration requis (notez que ceux-ci varient d’une application à l’autre) et enregistrez vos paramètres. Pour un accès plus rapide, vous pouvez également installer des applications Marketplace directement à partir de l’application web en visitant l’onglet Menu des applications dans la navigation principale.

Pour les applications privées, commencez par créer une définition d’application dans la section Application de vos paramètres organisationnels. La définition de l’application comprend les informations de base sur votre application : nom, URL et emplacement cible. Pour les applications utilisant les fonctionnalités avancées de l’App Framework, c’est ici que vous générez des clés publiques-privées et que vous vous abonnez aux événements de l’application.

App definition illustration

Une fois que vous avez installé la définition de l’application, vous pouvez installer l’application dans l’espace cible de la même manière que vous installez les applications Marketplace. Pour en savoir plus sur l’installation et la distribution d’applications, reportez-vous à notre guide de développement d’applications.

Pour créer une définition d’application dans votre organisation, vous devez disposer du rôle organisationnel de développeur, d’administrateur ou de propriétaire. Pour installer une application dans votre espace, vous devez avoir le rôle de développeur ou d’administrateur.

Apps Organizational Roles

Si vous souhaitez rendre votre application accessible à l’ensemble de la communauté Contentful, vous pouvez soumettre une demande pour qu’elle soit répertoriée sur l’App Marketplace, ou ouvrir une demande d’intégration afin de la faire figurer dans la liste Awesome Apps que nous maintenons.

Pour être prises en compte dans la liste des applications, les applications doivent répondre aux critères suivants :

  • Fournir une valeur claire aux utilisateurs finaux

  • Offrir une documentation utilisateur accessible au public

  • Avoir une politique de confidentialité officielle et une licence d’utilisation

  • Fournir une assistance aux utilisateurs et recevoir une maintenance active

Pour déterminer si votre application est admissible à la liste de la marketplace, envoyez une demande à notre équipe des partenariats technologiques.

Oui. Contentful ne fournit pas de mécanisme intégré pour facturer les utilisateurs d’applications via la Marketplace de l’application, mais vous pouvez répertorier les applications nécessitant un abonnement et proposer un autre moyen de paiement. Pour voir comment d’autres applications monétisent l’accès, consultez les offres Optimizely, Jira, GlobalLink sur la marketplace.

Non. Pour le moment, nous ne fournissons pas cette fonctionnalité. Si vous souhaitez demander de nouvelles fonctionnalités ou partager vos commentaires, veuillez remplir le formulaire de commentaires sur l’App Framework.