Receivers
In the context of the Publishing module, receiver is usually a public Magnolia instance that receives content from an author instance.
This page explains how to configure receivers.
About the publishing process
Publishing may refer either to a system process that copies content from an author to public instances or to a user action which triggers the process.
For more information about how publishing works, please refer to the Publishing overview page.
License limitations
- 
The Community Edition supports one receiver. You can configure many receivers but only the first receiver will receive published content. The publishing process is handled by the Publishing module itself. 
- 
DX Core supports many receivers and the process is handled by the Publishing and Publishing Transactional modules. 
Verifying publication success
There are three ways to verify successful publication:
- 
Status indicator changes to green on the author instance. 
- 
Page content on the public instance is new. Request the page to test. 
- 
Publication log /webapps/magnoliaAuthor/logs/magnolia-activation.logcontains a success entry. See Monitoring about logging and debugging.
Configuration
Publishing receivers are configured using MicroProfile Config. You can supply MicroProfile configurations using:
- 
properties files 
- 
YAML files 
- 
system properties or environment variables (and more) 
To point to your config file, you must pass the magnolia.config.locations as a system property (for example, using Tomcat VM options in the setenv.sh configuration file), pointing to the directory where your config file resides (for example -Dmagnolia.config.locations=/opt/magnolia/mounted-config).
magnolia.publishing.receivers[0].name=magnoliaPublic-0
magnolia.publishing.receivers[0].url=http://dev-magnolia-helm-public-0-svc:8080
magnolia.publishing.receivers[1].name=magnoliaPublic-1
magnolia.publishing.receivers[1].url=http://dev-magnolia-helm-public-1-svc:8080magnolia:
  publishing:
    receivers:
      - name: magnoliaPublic-0
        url: http://dev-magnolia-helm-public-0-svc:8080
      - name: magnoliaPublic-1
        url: http://dev-magnolia-helm-public-1-svc:8080| The default receiver for local development ( Receiver example for local development 
 | 
Previous (Magnolia 6.2) definition in JCR
In Magnolia 6.2, publishing receivers were configured in JCR, under the publishing-core module.
This made it difficult to provision instances across multiple environments and configure receivers during installation or startup through various JCR bootstrapping techniques.
| Node name | Value | 
|---|---|
| 📁 modules | |
| 📁 publishing-core | |
| 📁 config | |
| ⸬ receivers | |
| ⸬ magnoliaPublic8080 | |
| ⬩ url | |
| ⬩ enabled | true | 
Receiver properties
| Property | Description | ||
|---|---|---|---|
| 
 | required Disambiguating name for a specific receiving public instance. | ||
| 
 | required Host name (or IP address) and port number of the receiving public instance. | ||
| 
 | optional, default is  Enables or disables the receiver without deleting the setup. 
 | ||
| 
 | optional, default is  Sets a connection timeout in milliseconds. If time runs out before a connection to the receiver can be established, a  | ||
| 
 | optional, default is  Sets the read timeout in milliseconds. If time runs out before the published content is read from the author instance, a  | 
Receivers can receive any content item: websites, website sections, configuration settings, custom content types, forums, comments, documents, images and so on. For example, you could publish a campaign site to a dedicated public instance.
Troubleshooting receivers configuration
Use the following Groovy script to check your receivers are correctly configured.
import info.magnolia.objectfactory.Components
import info.magnolia.publishing.config.PublishingConfig
import org.eclipse.microprofile.config.Config
import org.eclipse.microprofile.config.ConfigProvider
config=ConfigProvider.getConfig()
println "Raw MP value: " + config.getValue("magnolia.publishing.receivers[0].url", String.class)
// Refreshable only via Guice for now, until MAGNOLIA-9367 standardizes the implementation.
Components.getComponent(PublishingConfig.class).getReceivers().get(0).getUrl()Workspaces
| By default, a publishing receiver configuration will react to all workspaces. The purpose of these workspace configs is to react to specific workspaces in a more granular way, by excluding or including certain parts of the data. | 
For each receiver, the specific content to be published or excluded from publishing is configured through properties under the workspaces node.
website workspacemagnolia.publishing.receivers[0].workspaces[0].workspace=website
magnolia.publishing.receivers[0].workspaces[0].fromPath=/
magnolia.publishing.receivers[0].workspaces[0].toPath=/
magnolia.publishing.receivers[0].workspaces[0].excluded=trueProperties
| Property | Description | 
|---|---|
| 
 | required Name of a workspace. | 
| 
 | required Workspace path on the author instance from which content is published. For a single site, enter the site node such as  A trailing slash in the path limits the published content to the subnodes: 
 | 
| 
 | required Workspace path on the public instance to which the content is published. | 
| 
 | optional, default is  A Node2Bean property that turns the mapping on ( | 
| 
 | optional, default is  The  This property allows you to define exceptions such as "Publish everything in the  | 
Example A - Reacting to a workspace partially
The receiver will react to the content in /travel in the website workspace, but will ignore everything else.
magnolia.publishing.receivers[0].workspaces[0].workspace=website
magnolia.publishing.receivers[0].workspaces[0].fromPath=/travel
magnolia.publishing.receivers[0].workspaces[0].toPath=/travelExample B - Ignoring a workspace partially
The receiver will ignore a specific path, here the /sportstation, but will react to everything else in the website2 workspace.
magnolia.publishing.receivers[0].workspaces[1].workspace=website2
magnolia.publishing.receivers[0].workspaces[1].fromPath=/sportstation
magnolia.publishing.receivers[0].workspaces[1].toPath=/sportstation
magnolia.publishing.receivers[0].workspaces[1].excluded=trueExample C - Ignoring a complete workspace
The receiver will not react at all to the test-website workspace.
magnolia.publishing.receivers[0].workspaces[2].workspace=test-website
magnolia.publishing.receivers[0].workspaces[2].fromPath=/
magnolia.publishing.receivers[0].workspaces[2].toPath=/
magnolia.publishing.receivers[0].workspaces[2].excluded=trueMultiple receivers
In DX Core, the author instance can publish content to multiple receivers. Receivers are key to building high-availability, load-balanced environments since they can be configured to receive targeted content. See Creating a new public instance.