HTTP Server Input plugin preferences 1
The first set of HTTP Server Input plugin preferences controls the server protocol aspects of the PlanetPress Workflow HTTP Server Input tasks. This is where you enable and configure secure communication for the HTTP Server.
To open the Preferences dialog, click the PlanetPress Workflow button and then the Preferences button, or use the key combination Ctrl+Alt+P. The HTTP Server Input 1 plugin preferences can be found under Plug-in.
Preferences
- Port: Select the port to use. The default port is 8080, the official HTTP alternate port, so as not to interfere with the standard HTTP port (80). To block any regular HTTP traffic (for example if only using HTTPS connections) the port can be set to 0.
Note that it is possible to use both the NodeJS Server and the standard HTTP Server simultaneously, provided that they are not set to listen to the same port. See NodeJS Server Input plugin preferences 1. - Time out: Set the timeout period in seconds. The default value is 120 seconds.
- Enable server for SSL requests: Check this option to enable secure data exchange over the Web. This enables the boxes below and lets you specify your secure communication settings.
The Root certificate, Certificate and Key files must be in the PEM format (ASCII base64 encoded). Files in DER format, the binary encoded version of the PEM format, cannot be used to configure Workflow, although they may have the same file extension (e.g. .crt, .cer). Please check the format of your files, using a tool like: https://www.httpcs.com/en/ssl-converter.
- Root certificate: Enter the absolute path to the public key certificate identifying the root certificate authority. The file generally has a .crt extension and is obtained from a Certificate Provider such as Thawte or Verisign. If the Root Certificate and Certificate file are identical, this is considered a self-signed certificate, which is considered unsecured by most browsers.
- Certificate: Enter the absolute path to the public key certificate identifying the certified server. The file generally has a .crt extension and is provided by a certificate provider, or through the use of certificate generators such as openssl or makecert.com.
- Key: Enter the absolute path to the Private Key file. This file generally has a .key extension.
- Password: Enter the password (or passkey) for the Private Key file. The maximum length of this password is 64 characters.
This password is encrypted within PlanetPress Workflow server and is not saved in plain text. - Encryption protocol: Choose your cryptographic protocol (SSL or TSL). This is determined by the software that generated the keys. The service uses SSL 2.3 or TLS 1.0.
When SSL is enabled and a user sends a query prefixed with https://, then this specific communication will be sent through port 443, which cannot be changed in Workflow. However, http:// requests will still be received on the port specified in http server preferences.SSL is used to accept secured, encrypted requests from web clients and requires a certificate delivered by an approved authority. When a website is secured by an SSL certificate, "https" appears in the URL.
For more information on SSL and how to purchase a certificate, see for example Q10694 on SSL.com. - Disable SOAP Server: Check to disable all SOAP Server functionality.
- Verbose log: Select to enable to keep a verbose log. Note that a communication log is generated whether or not this option is selected. If you use a secure connection, the log will contain extra information.
- PHP Arrays: This option defines how incoming POST requests with arrays are processed.
- None: No special processing is applied.
- Use PHP-like Arrays: When the name of form inputs contains two pairs of square brackets, the data are interpreted as an array. The result is a single XML node (named after the value between the first pair of square brackets) with each part of the array as children. See: PHP arrays example.
- Use enhanced PHP-like Arrays: Like the previous option, but in this case, the value between the first pair of square brackets is expected to consist of two parts, separated by an underscore (e.g. row_0). The first part is considered to be the element's name. All content after the first underscore (preferably an integer) will be used as index, which is given as an attribute of the element (e.g. <row _idx=0>; also see PHP arrays example).
This option makes it much easier to select all elements on the same level in a data mapping configuration, and to convert the XML to a JSON object.
- Omit attachments as CData node in the XML envelope: By default, the request XML has a CDATA node that contains the raw input data, effectively doubling the size of the incoming XML file, which due to technical restrictions cannot be larger than 400 MB. This option allows for much larger (non-binary) attachments by removing them from the XML data file. Generally attachments are both saved on disk and included as a CDATA node within the XML envelope. This option removes them from the envelope, but they remain accessible through their direct path.
Incoming binary files (sent through file upload in a form) can never be larger than 400 MB.
PHP arrays example
This example shows how incoming HTML is converted to XML with the two different PHP-like Arrays options.
Incoming HTML
<input type="hidden" name="user_account" value="email@example.com"> <input type="text" name="name" value="Peter Parker"> <input type="text" name="company" value="Objectif Lune">
<input type="number" name="pinElm1[pin_0][left]" value="122"> <input type="text" name="pinElm1[pin_0][top]" value="253"> <input type="text" name="pinElm1[pin_0][type]" value="dent"> <input type="text" name="pinElm1[pin_1][left]" value="361"> <input type="text" name="pinElm1[pin_1][top]" value="341"> <input type="text" name="pinElm1[pin_1][type]" value="dent">Resulting XML Structure with PHP-like arrays
<values count="4"> <user_account>email@example.com</user_account> <name>Peter Parker</name> <company>Objectif Lune</company> <pinElm1> <pin_0> <left>122</left> <top>253</top> <type>dent</type> </pin_0> <pin_1> <left>361</left> <top>341</top> <type>dent</type> </pin_1> </pinElm1> </values>
Resulting XML structure with Enhanced PHP-like arrays
<values count="4"> <user_account>email@example.com</user_account> <name>Peter Parker</name> <company>Objectif Lune</company> <pinElm1> <pin _idx=0> <left>122</left> <top>253</top> <type>dent</type> </pin> <pin _idx=1> <left>361</left> <top>341</top> <type>dent</type> </pin> </pinElm1> </values>