Deploy API Overview
Heretto Deploy API is undergoing a major architectural redesign and upgrade that enhances its performance, usability, and scalability. The first building blocks for this next generation (v4) of Heretto Deploy API are being rolled out, with the current focus on manual deployments. This content will be updated as the building blocks of the next generation Deploy API are rolled out. For an overview of changes in manual deployments v4, see Release Notes.
Heretto Deploy API is the crucial content delivery service that processes content from Heretto CCMS and transforms it into formats that can be delivered to end-users. The processed content is then delivered through the Heretto Portal or other delivery endpoints such as websites, applications, devices, or machines.
As an example, the documentation you are currently reading was delivered to this help site with Deploy API. Our help site is powered by both Deploy API and Heretto Portal.
-
Delivering localized content
-
Managing access through authentication
-
Tailoring content to different audiences (personalization)
Key Deploy API use cases:
- Building Websites
-
Transform your Heretto CCMS content into complete websites such as knowledge bases, support portals, or documentation hubs. Customize branding and design elements to maintain visual consistency with your existing web properties.
- Embedding Content
-
Integrate content from Heretto CCMS directly into existing websites or applications. This enables context-sensitive help, in-app documentation, or targeted information delivery within your digital products.
- Distributing to Multiple Endpoints
-
Deploy your DITA source content to diverse delivery channels including IoT devices, embedded systems, and custom applications using Deploy API. This ensures consistent information across all customer touchpoints.
This single-source publishing approach ensures content consistency while reducing maintenance overhead. When you update content in Heretto CCMS, you can easily deliver them to all channels, typically significantly reducing publishing time compared to traditional multi-channel publishing workflows.
Deploy API Functions
Heretto Deploy API serves two main functions: it processes content managed in Heretto CCMS, and serves it to the Heretto Portal or other delivery endpoints such as websites, applications, devices, or machines.
- Content Processing
-
The Deploy API processes content managed in Heretto CCMS and published through a deployment. It captures and snapshots all content involved in a publishing job, performs content rendering, and creates an immutable database of the final content.
- Content Delivery
-
The Deploy API serves the processed content to delivery endpoints such as the Heretto Portal, websites, applications, machines, and devices.
In Deploy API v4, the functions of processing and serving content have been separated to make Deploy API significantly more resilient and scalable. This change is currently only applicable to manual deployments in Deploy API v4. Deploy API v4 conceptually runs in the same infrastructure as Cloud Publishing, with each deployment being treated as a publishing job and processed in an ephemeral container in the cloud.
Deploy API Content Flow
Heretto Deploy API serves as the processing and delivery engine for Heretto CCMS content. It transforms content into delivery-ready formats and distributes it to various endpoints including websites, applications, and devices.
How Content is Passed to Deploy API
Once content is finalized in Heretto CCMS, it moves to the Deploy API through deployments.
Deployments are essential configuration elements that determine which content is published, where it's published, and under what conditions. Deployments connect specific content in the CCMS with appropriate delivery endpoints such as Heretto Portal or other delivery endpoints.
Deploy API supports two deployment types:
- Active Sync
-
Automatically and continually publishes content updates from the CCMS to delivery endpoints. As content creators make changes in the CCMS, their updates are rapidly integrated into the associated deployment and published to a delivery endpoint.
Active sync is valuable for preview environments where teams need to see work-in-progress content. Due to its immediate nature and the risk of publishing work-in-progress content, active sync is not available for production portal environments.
- Manual Deploy
-
Requires deliberate user action to initiate the publishing process. Content updates remain in the CCMS until a user manually publishes a deployment. This deployment type gives teams control over when updates are released, enabling them to work on substantial content updates.
Manual deploy is available for all portal environments. It is the standard configuration for publishing official content versions.
How Content Becomes a Deployment
Once content is passed from Heretto CCMS through a deployment to Deploy API, it is processed into a final output and served to the Heretto Portal or other delivery endpoints.
Processing a deployment involves evaluating raw DITA content and associated assets and converting them into a final output used to serve the content to its final delivery endpoint for end-user consumption. All deployment processing starts in Heretto CCMS with the deployment configuration and a DITA map (sitemap). At a high level, the following happens during a deployment processing:
-
Deployment instructions indicate the audiences and the locales (target languages) that are included.
-
The map defines the scope of the deployment.
-
All content files for a tenant are located and made available.
-
All source content is processed into a normalized structure with all necessary information for output.
This process involves steps such as: evaluating document metadata, including or excluding review markup, processing conditional sets, processing keyrefs and xrefs, link correction, and processing tables and figures.
At this point, there is an ephemeral in-memory representation of the full set of content in an intermediate state that is nearly final. The content is ready to be rapidly transformed into a final output format, like HTML. This process of building a content set in its nearly final state is used by both active sync and manual deploy deployments. How the two deployment types use this process varies, as described below.
- Active Sync Processing
-
With an active sync deployment, the process is always on, hosting the content in its nearly final state. The content in this case is hosted within Deploy API.
There are two reasons it works this way. The content can be quickly returned in the final format to serve content requests. Additionally, the intermediate in-memory state is ideal for quickly integrating content changes from the CCMS.
The primary benefit of this structure is the rapid integration of new content. That benefit comes with some expense:
-
The representation is ephemeral and must be reprocessed at restart
-
All content must fit in memory
-
An error in content can impact the APIs ability to respond to content requests
-
Auto scaling the API is slow because of the initial processing duration
-
- Manual Deploy Processing
-
With a manual deployment, the process of building the set of content in its nearly final state happens outside of Deploy API. When deployment publishing is triggered, a publishing job is initiated that performs the processing. At the end of processing the content, a snapshot is generated. The snapshot includes: all the files used for processing, an immutable database with all content in its final form, and search indexes. Upon completion of processing and storage, the Deploy API switches to serving content from the new immutable database.
There are multiple benefits to this mode of operation:
-
All content processing happens outside of the production API, reducing the risk that a content error makes the API unavailable
-
Rapid auto scaling because all content is pre-processed
-
The code base for serving content is 90% smaller, leaving less surface area for issues
-
Highly efficient memory and content serving for a great experience
-
Content no longer needs to fit directly into memory, greatly increasing safety
The main tradeoff of manual deployments is that content updates take longer to become available, as the processing job must finish before new content is deployed.
-
Definitions
- Delivery Endpoint
A delivery endpoint is any final destination where users consume content that has been processed by Heretto Deploy API. Delivery endpoints can include Heretto Portal, websites, applications, devices, and machines.
Delivery endpoints receive content that is managed in Heretto CCMS, processed by Deploy API, and transformed into appropriate formats for end-user consumption.
- Deployments
Deployments are configurations that connect content in the CCMS with delivery endpoints via Deploy API. They enable content publication to the appropriate delivery endpoint, like Heretto Portal or other delivery endpoints such as websites, applications, devices, or machines.
- Heretto Deploy API
-
A read-only API that enables you to deliver content from Heretto CCMS to different endpoints. The delivered content includes:
- JSON data
- Media files
- Transformed XML content (HTML5) or compiled DITA
- Serving Content
The process of requesting and receiving a final result from Deploy API, which may be content on a page or the structure required to serve that content. For example, when users access a page, they're essentially making an API request to Deploy API, which then delivers the requested content. This technical interaction forms the foundation of content delivery within the system.
- Sitemaps
-
Sitemaps are specialized DITA maps that determine the structure of your content. Depending on the environment you publish to, you may need to use different sitemap structures.
Deploy API supports different sitemap structures.