Digital articles can be published from Studio to any output channel, such as a CMS or a mobile app.
How this process works from a technical point of view is described in more detail in this article.
Publish endpoint validation
Before articles can be published, a Publication channel needs to be configured. As part of this configuration, a publish endpoint needs to be available. The endpoint is validated to make sure that sending publish messages is working correctly:
- Studio stores the publish endpoint URL and creates a new AWS SNS Topic for it.
- AWS delivers a SubscriptionConfirmation message to the configured publish endpoint.
- The publish endpoint integration needs to respond to this message to confirm endpoint authenticity.
Once the endpoint is validated, it is ready to receive publish messages. For more information about his process, see the AWS documentation: Subscribing an HTTP/S endpoint to a topic.
The following graphic visualizes the publish process:
1. The user triggers a publish action for one or multiple articles in Studio.
2. A Studio Server job creates an article files package per article that is being published (article renditions, metadata, placed images, and so on).
3. Per article, Studio triggers an AWS SNS Notification message, which is sent to the configured publish endpoint. It contains article information and download URLs to the article files package.
4. The publish endpoint integration consumes and processes the publish package and performs article transformations to fit the output channel if needed.
5. The publish endpoint integration uploads the content to the final destination (CMS, App, and so on).
Publish endpoint (integration)
The publish endpoint is a publicly available web endpoint responsible for receiving publish SNS messages from Studio and moving / transforming the content to an output channel.
The endpoint can be a piece of code running on a web server or a serverless function (such as AWS Lambda, or Azure Functions). An example endpoint integration can be found in Configuring Studio for publishing to a custom Publish Channel.
To help integrating your output channel, WoodWing also offers WoodWing Connect: WoodWing's umbrella term for a bundle of integration technologies, licenses and tools.
WoodWing Connect can act as channel endpoint and consume the publish message. It offers several out of the box connectors to a variety of CMS systems. Custom recipes also allow for flexible content transformation steps and publishing to any possible output channel with less or no coding involved.
Third-party publish platforms
Various third-party integrations are available that already integrate their publish channel with WoodWing Studio.
For more information see:
Tips for developing a publish endpoint
The following tips can be useful when developing your own publish endpoint integration.
- Read the AWS documentation. Carefully read the AWS documentation on how to make your endpoint ready to receive messages in a secure manner.
- Familiarize yourself with the publish package specification. Read through the publish package specification to learn about the details of the publish message, available article files and metadata.
- Add quick responses in your code to delivery failures. AWS SNS works with delivery retry policies when it fails to deliver the message or does not retrieve a response that the message was successfully received within a certain amount of time. When an endpoint receives the publish SNS message, it needs to respond with a 'HTTP 200 OK' status code within 15 seconds to avoid this. With this in mind, it is advised to respond as quickly as possible in your code, preferably directly after the message is received and before doing any post processing of article data.
- Pick your publish package format. Depending on the channel configuration, the publish package contains different output renditions of the article: HTML, PSV and JSON. Which format suits your output channel best is something to decide depending on your needs. The HTML rendition is identical to the preview in the Studio Digital editor and makes it possible to directly use it on a website. The PSV and JSON renditions can be used for custom rendering of the article, for example for a non-HTML channel such as Apple News+ or a custom mobile app.
- Make use of the article metadata to streamline the process. Studio article metadata can be used to inform your endpoint on how to process the article. For example in which section of the website it should be placed or what tags should be applied. Both standard and custom metadata fields can be configured in Studio and filled in by Studio users. The metadata is available as part of the publish package.
- Store API keys/secrets in the custom metadata field. You can potentially use the Publication channel custom metadata field to store API keys/secrets to, for example, support publishing to a CMS. This data is then made available in the publish message.