1

My use case is :

Authors uploads images and enter meta data about images (or blogs) such as image description in Crafter CMS. Admin approves/publishes the images. As soon as this is done, a separately developed Java web application ( public facing) not linked with Crafter CMS sees this new content which shows up in faceted search results as the end user is interacting with this Java web application.

How above can be achieved using Crafter CMS (Community Edition) ?

Crafter CMS components cannot be used in remote Java application (tomcat) which has direct access to content (originally coming from Crafter CMS) in cache memory. This remote Java application has its own solution for search based on elasticsearch. Better way to ask this question how Crafter CMS can store content in remote repository living in the same server running remote Java application.

ace
  • 11,526
  • 39
  • 113
  • 193

2 Answers2

3

To address the use case: Crafter CMS is composed of several subsystems. Crafter Studio (content authoring subsystem) would be used by the authors to upload/assign metadata/preview/approve the images within the context of your app (via in-context preview). Your public-facing Java app would be built on Crafter Engine (Java/Spring-based middleware subsystem), which provides APIs to get access to the content published from Crafter Studio. Crafter Engine includes an integration with Apache Solr for faceted search.

--

To clarify the confusion: Alfresco is better characterized as an Enterprise Content Management (ECM) platform for managing all types of content - documents, digital assets, corporate records, along with web content. Crafter on the other hand is a web content management system (traditionally called a web CMS), specifically for building and managing the front-end UI/UX and back-end functionality of digital experience applications (modern websites, mobile apps, AR/VR experiences, video-sharing sites, etc.). Crafter CMS originally was built as a web CMS app on top of Alfresco, hence the tight integration between the two.

Starting with Crafter CMS version 3, Git is the main underlying repository.

Crafter still integrates with Alfresco (via CMIS) as an option, to leverage Alfresco's advanced ECM capabilities for managing, publishing and rendering any form of enterprise content (documents, digital assets, videos etc.) within Crafter apps.

  • Mike Vertal thank you for clarification. Crafter CMS or Crafter Engine cannot be used in the remote Java application as stated in the question. These images originally uploaded by authors in Crafter CMS should be directly accessible by remote Java application. Better way to ask this question I think how Crafter CMS can store images in remote repository which lives in the same server running remote Java application (tomcat) where Crafter CMS app is intranet living in completely separate server. Will update the question to reflect this. – ace Nov 22 '17 at 07:37
2

There are two architectures that are possible to address this need.

  1. Deploy content from Crafter Studio to a remote Crafter Engine (co-located with the remote app.) Then have the remote application request content and assets via service. This is a decoupled CMS architecture with a headless content delivery strategy.

  2. Use the deployer to push content from the Studio into the remote application (disk, database, whatever you want.) The deployer has a simple Java interface that allows you to code actions that should be taken on a deployed changeset:

This is the full deployer API: https://github.com/craftercms/deployer/tree/master/src/main/java/org/craftercms/deployer/api

This is the interface you would implement: https://github.com/craftercms/deployer/blob/master/src/main/java/org/craftercms/deployer/api/DeploymentProcessor.java

Russ Danner
  • 693
  • 3
  • 11