Erweiterbarkeit

Webhooks und App-Ereignisse sind ein ziemlich ähnliches Concept, gelten jedoch für verschiedene Anwendungsfälle.

Wenn Sie keine Kontrolle über das Backend haben, das die Ereignisse empfängt, z. B. beim Senden von Ereignissen an einen Drittanbieterdienst, sollten Sie unsere traditionellen Webhooks verwenden. Wenn Sie Webhooks direkt an einen Drittanbieter senden, müssen Sie möglicherweise Nutzlasttransformationen anwenden, bevor der Webhook gesendet wird. Dies ist nur bei traditionellen Webhooks möglich.

Wenn Sie das Backend selbst erstellen, ist es einfacher, die Webhook-Transformationen in Ihrem Code anzuwenden, als unsere Transformations-DSL zu verwenden, und Sie sollten App-Ereignisse verwenden.

Sie können sich App-Ereignisse als Standard-Webhook für Ihre App vorstellen. Der/Die App-Entwickler*in kann ein Ereignisabo für die App-Definition erstellen. Der angegebene Endpunkt erhält dann Ereignisse für jede der Space-Umgebungen, in denen die App installiert wurde. Es ist nicht erforderlich, Webhooks bei der Installation oder Deinstallation der App zu erstellen oder zu entfernen.

Sie können Webhooks weiterhin für Fälle verwenden, in denen Sie keine Kontrolle über die empfangende Seite haben. Wir planen, sie in Zukunft zu unterstützen.

Es gibt keine Einschränkungen, wenn es um die Programmiersprache geht, die Sie zum Erstellen des Backends verwenden. Wir bieten ein Toolkit für Node.js an, aber Sie können jede beliebige Programmiersprache verwenden.

Für den Frontend-Teil von Apps sind Sie auf das beschränkt, was im Browser ausgeführt wird. Sie sollten entweder Javascript verwenden oder etwas, das auf Javascript kompiliert, wie Typescript / Purescript.

Apps sind die nächste Generation von UI-Erweiterungen. Sie können schneller erstellt, aktualisiert und verwaltet werden und sind einfach zu orchestrieren, wenn sie in mehreren Spaces in Ihrem Unternehmen verwendet werden.  Funktionen wie App-Identitäten und App-Ereignisse ermöglichen es, vollständig automatisierte Workflows mit Apps zu erstellen, während UI-Erweiterungen im Namen von Nutzer*innen handeln und die Eingabe von diesen erfordern, um eine Aufgabe zu erfüllen. 

Apps und UI-Erweiterungen sind zum Zeitpunkt des Schreibens kompatibel und teilen sich viele Tools, einschließlich des App-SDK. Während wir planen, UI-Erweiterungen in absehbarer Zeit zu unterstützen, konzentrieren sich unsere aktuellen Produktbemühungen auf das App-Framework. Aus diesem Grund empfehlen wir unseren Kund*innen, ihre UI-Erweiterungen nach Möglichkeit auf Apps zu migrieren, um die gesamte Palette der von uns angebotenen Erweiterungsfunktionen nutzen zu können. 

Nein, Apps werden nicht auf das Nutzerkontingent des Unternehmens angerechnet und können kostenlos erstellt werden. Aus technischen Gründen begrenzen wir jedoch die maximale Anzahl der App-Definitionen, die pro Unternehmen erstellt werden können, auf 250 und die maximale Anzahl der Installationen, die pro Umgebung installiert werden können, auf 50. Weitere Informationen zu App-Limits finden Sie auf der Seite Technische Limits.

Es gibt zwei Möglichkeiten, Ihre App zu hosten: entweder mit dem integrierten Hosting von Contentful, das in den Einstellungen Ihrer App aktiviert werden kann, oder mit einem Drittanbieter.

Es gibt keine besonderen Anforderungen für das Hosting Ihrer App bei einem Drittanbieter. Sie muss nur über eine öffentliche URL zugänglich sein. Sie können Ihre App auf einer der gängigen Cloud- und Hosting-Plattformen wie AWSGCPAzureVercelHerokuNetlifyGlitchDigital Ocean usw. hosten.

Wenn Sie Ihre App auf Contentful hosten, gibt es einige Einschränkungen für jedes Bundle. In der Dokumentation erfahren Sie, was Sie beachten müssen.

Die Limits gelten nicht für Apps, die Sie selbst hosten. In beiden Fällen empfehlen wir Ihnen, Best Practices zur Optimierung der Leistung zu berücksichtigen, z. B. die Aufteilung von JavaScript-Bundles in Blöcke oder das asynchrone Laden von Ressourcen, um die Ladezeiten zu verkürzen.

Sie entscheiden, wie Sie neue Versionen Ihrer App veröffentlichen. Wenn Sie die App auf Contentful hosten, geht das Aktualisieren ganz einfach über das Hochladen eines neuen Bundles in den App-Einstellungen oder mit der Verwendung des CLI-Befehls. Sie können täglich, wöchentlich oder monatlich neue Versionen Ihrer App veröffentlichen, je nachdem, was Sie und Ihre Nutzer*innen benötigen. Wir empfehlen Ihnen jedoch, nur abwärtskompatible Änderungen einzuführen, damit Ihren Nutzer*innen nichts verloren geht.

App-Identitäten haben nur Zugriff auf Entitäten innerhalb der Space-Umgebung, in der die App installiert ist. Sie können auf die folgenden Entitäten zugreifen:

  • ContentType

  • EditorInterface

  • Eintrag

  • Asset

  • Sprache

  • Tag

  • Snapshot (nur in der Master-Umgebung)

  • Die App-eigene AppInstallation

  • Task

Ja, Sie können die Web-App anpassen, indem Sie Apps erstellen, UI-Erweiterungen einführen oder das Standardverhalten von Feld-Editoren optimieren. Eine App ist eine Single-Page-Webanwendung (SPA), die aus HTML-, CSS- und Javascript-Dateien besteht, die wir in einem iframe rendern. Das App-Framework bietet eine Reihe von Standardpositionen für die Integration Ihrer App in die Web-App-Benutzeroberfläche:

  • Eingabefeld

  • Eintragseditor

  • Eintragsseitenleiste  

  • Dialog

  • Seite

Erweiterte Funktionen wie App-Identitäten und App-Ereignisse ermöglichen es Ihren Apps, über die unmittelbare Web-App-Benutzeroberfläche hinauszugehen und Content mit der Content Management API (CMA) zu ändern. Weitere Ressourcen zu diesen Themen finden Sie im Abschnitt Erweiterbarkeit der Entwicklerdokumentation.

Wir haben App-Identitäten mit Blick auf Dienstkonten und deren Anwendungsfälle entwickelt. Während derzeit einige unserer neueren CMA-Endpunkte noch nicht für App-Identitäten aktiviert sind, planen wir, dies langfristig zu tun. Sobald sie aktiviert sind, sollte es nicht viele Anwendungsfälle geben, in denen Sie Dienstkonten erstellen, verwalten und verwenden müssen.

„App-Parameter“ ist ein JSON-Konfigurationsobjekt, das Teil der App-Installation ist. Der JSON.stringify-Wert dieses Objekts darf 16 kb nicht überschreiten.

Für Produktions-Apps sollten Sie die gleichen Best Practices anwenden, die Sie für den Rest Ihrer Produktionsinfrastruktur und -websites anwenden würden. Denken Sie daran, dass Sie die Liste der Tracker und deren Zwecke in den Datenschutzbestimmungen Ihrer Apps erwähnen müssen.

Wir ermöglichen Ihnen, bis zu drei verschiedene aktive App-Schlüsselpaare zu haben. So können Sie ein neues Schlüsselpaar erstellen und es in Ihrer Infrastruktur bereitstellen, bevor Sie das alte entfernen. Wenn Sie im API-Aufruf keine Schlüssel-ID übergeben, um ein App-Token zu erstellen, überprüfen wir alle drei vorhandenen öffentlichen Schlüssel, die Sie für die App gespeichert haben.

App-Schlüssel sind ein Schlüsselpaar, bei dem wir den öffentlichen Schlüssel aufbewahren und Sie den privaten Schlüssel. Sie werden verwendet, um App-Token anzufordern. Sobald die App ein App-Token angefordert und erhalten hat, kann sie dieses Token verwenden, um sich bei unserem CMA zu authentifizieren. Sie können sich App-Token als das Personal Access Token für Apps vorstellen. App-Token ermöglichen es Apps, auf die CMA von Contentful zuzugreifen, ohne dass echte Nutzer*innen anwesend sind und ohne dass Servicekonten erstellt werden müssen.

Ein App-Zugriff ist auf den einen Space und die Umgebung beschränkt, in dem/der er installiert ist. Je nachdem, welchen Zugriff ein/e Nutzer*in hat, kann er weiter eingeschränkt werden. Wenn ein/e Nutzer*in also ein bestimmtes Feld eines bestimmten Contenttyps nicht aktualisieren kann, wird die App für dieses bestimmte Feld im schreibgeschützten Modus gerendert.

Contentful ermöglicht es Nutzer*innen, zwei Arten von Apps zu erstellen: Marketplace-Apps und private Apps. Der Installationsprozess hängt von der Art der App ab, die Sie installieren möchten.

Navigieren Sie für Marketplace-Apps zur App-Seite in der App Marketplace und klicken Sie auf Jetzt installieren. Wählen Sie den Ziel-Space und – wenn Sie mehrere Umgebungen im Space haben – die Zielumgebung aus. Gewähren Sie der App Zugriff auf Ihren Space, indem Sie auf Zugriff autorisieren klicken.

App Installation Flow

Füllen Sie abschließend die erforderlichen Konfigurationsfelder aus (beachten Sie, dass diese von App zu App variieren) und speichern Sie Ihre Einstellungen. Für einen schnelleren Zugriff können Sie Marketplace-Apps auch direkt in der Web-App installieren, indem Sie die Registerkarte App-Menü in der Hauptnavigation aufrufen.

Erstellen Sie für private Apps zunächst eine App-Definition im Abschnitt App Ihrer Unternehmenseinstellungen. Die App-Definition enthält die grundlegenden Informationen zu Ihrer App: Name, URL und Zielspeicherort. Für Apps, die erweiterte App-Framework-Funktionen verwenden, generieren Sie hier öffentlich-private Schlüssel und abonnieren App-Ereignisse.

App definition illustration

Sobald Sie die App-Definition installiert haben, können Sie die App auf die gleiche Weise im Ziel-Space installieren, wie Sie Marketplace-Apps installieren. Weitere Informationen zur Installation und Verteilung von Apps finden Sie in unserem Leitfaden zur App-Entwicklung.

Um eine App-Definition in Ihrem Unternehmen zu erstellen, muss Ihnen die Unternehmensrolle Entwickler*in, Admin oder Owner zugewiesen werden. Um eine App in Ihrem Space zu installieren, muss Ihnen entweder die Rolle Entwickler*in oder Admin zugewiesen werden.

Apps Organizational Roles

Wenn Sie Ihre App der breiteren Contentful Community zur Verfügung stellen möchten, können Sie beantragen, dass Ihre App auf dem App Marketplace gelistet wird, oder eine Pull-Anfrage öffnen, um sie in der von uns gepflegten Liste der Awesome Apps aufzuführen.

Um für die Marketplace-Liste in Betracht gezogen zu werden, sollten Apps die folgenden Kriterien erfüllen:

  • Sie müssen den Endbenutzer*innen einen klaren Mehrwert bieten.

  • Sie bieten öffentlich zugängliche Nutzerdokumentation.

  • Sie haben eine offizielle Datenschutzrichtlinie und Nutzungslizenz.

  • Sie bieten Nutzersupport und werden aktiv gepflegt.

Um festzustellen, ob Ihre App für die Marketplace-Liste qualifiziert ist, senden Sie eine Anfrage an unser Team für Technologiepartnerschaft.

Ja. Contentful bietet keinen integrierten Mechanismus für die Abrechnung von App-Nutzer*innen über den App Marketplace, aber Sie können Apps auflisten, die ein Abonnement erfordern, und einen alternativen Zahlungskanal anbieten. Um zu sehen, wie andere Apps den Zugriff monetarisieren, sehen Sie sich die Angebote von Optimizely,Jira und GlobalLink auf dem Marketplace an.

Nein. Im Moment bieten wir keine solche Funktionalität an. Wenn Sie neue Funktionen anfordern oder Ihr Feedback teilen möchten, füllen Sie bitte das Feedback-Formular für das App-Framework aus.