Operator HTTPBLOBInjection

IBMStreams com.ibm.streamsx.inet Toolkit > com.ibm.streamsx.inet 2.9.6 > com.ibm.streamsx.inet.rest > HTTPBLOBInjection

Embeds a Jetty web server to allow HTTP or HTTPS POST requests to submit a tuple on its output ports. Each output port corresponds to a unique URL comprising the operator name and the port index.

A single tuple is generated for an incoming POST request. The first attribute, which must be of SPL type blob in the output port's schema corresponds to the contents of the POST requiring content-type application/octet-stream. Any other attributes will be set to their default value.

The URLs defined by this operator are:
  • prefix/ports/output/port index/inject - Accepts POST requests of type application/octet-stream.
  • prefix/ports/output/port index/info - Output port meta-data including the stream attribute names and types (content type application/json).
The prefix for the URLs is:
  • context path/base operator name - When the context parameter is set.
  • full operator name - When the context parameter is not set.
Limitations:
  • Error handling is limited, incorrect URLs can crash the application.
  • By default no security access is provided to the data, HTTPS must be explicitly configured.

Summary

Ports
This operator has 0 input ports and 1 or more output ports.
Windowing
This operator does not accept any windowing configurations.
Parameters
This operator supports 9 parameters.

Optional: certificateAlias, context, contextResourceBase, keyPassword, keyStore, keyStorePassword, port, trustStore, trustStorePassword

Metrics
This operator reports 2 metrics.

Properties

Implementation
Java

Output Ports

Assignments
Java operators do not support output assignments.
Ports (0)

Emits a tuple for each POST request on the inject URL with port index 0

Properties

Ports (1...)

Optional additional ports that emit a tuple for each POST request on the inject URL with the corresponding port index

Properties

Parameters

This operator supports 9 parameters.

Optional: certificateAlias, context, contextResourceBase, keyPassword, keyStore, keyStorePassword, port, trustStore, trustStorePassword

certificateAlias

Alias of the certificate to use in the key store. When this parameter is set all connections use HTTPS.

Properties
context

Define a URL context path that maps to the resources defined bycontextResourceBase. This allows a composite that invokes this operator in a toolkit to provide resources regardless of the value of the application's data directory. For example setting it to maps would result in the URL /maps/index.html mapping to the file index.html in the directory defined by contextResourceBase. Requires the parameter contextResourceBase to be set. If when the operator is initialized the context already exists then no action is taken. This allows multiple independent composites in the same toolkit to have common context and contextResourceBase settings, typically to point to a single set of HTML and Javascript resources for the toolkit.

If the operator provides URLs for its input or output ports then they are placed in the this context when this parameter is set. This then provides fixed locations for the URLs regardless of the depth of the operator invocation in the main composite.

Only a single context per invocation is supported.

Properties
contextResourceBase

Directory location of resources that will be available through the the URL context defined by the parameter context. Typically used to allow a toolkit to provide a set of resources in a fixed location. The set of resources is recommended to be stored in the application_dir/opt directory, which is automatically included in the bundle by default. Path of this directory can be absolute or relative, if relative path is specified then it is relative to the application directory. A set of default resources is included in the toolkit directory under ToolkitDir/opt/resources and will be loaded by the operator. This default resources can be viewed at http://hostname:8080/streamsx.inet.resources. A path within the application is obtained using the SPL function getThisToolkitDir(). Thus a composite in the file maps.spl in the namespace directory com.acme.streams.apps.map might have the following setting to map http://127.0.0.1:8080/maps to opt/resources/mapinfo in the application.

param
  context: “maps”
  contextResourceBase: getThisToolkitDir() + “/opt/resources/mapinfo”
Properties
keyPassword

Password to the certificate. If not provided, defaults to the value of keyStorePassword.

Properties
keyStore

URL to the key store containing the certificate. If a relative file path then it is taken as relative to the application directory.

Properties
keyStorePassword

Password to the key store.

Properties
port

Port number for the embedded Jetty HTTP server. Defaults to 8080.

Properties
trustStore

URL to the trust store containing client certificates. If a relative file path then it is taken as relative to the application directory. When this parameter is set, client authentication is required.

Properties
trustStorePassword

Password to the trust store.

Properties

Metrics

https - Gauge

Jetty SSL/TLS status: 0=HTTP, 1=HTTPS

serverPort - Gauge

Jetty (HTTP/HTTPS) server port

Libraries

Operator class library
Library Path: ../../impl/lib/com.ibm.streamsx.inet.jar