Input and Output (JWT)
How a Flow can receive input data and return output data by using signed JWT tokens.
JWT input and output can be used when another application starts a Flow and expects Forms to return control after the user has completed the process.
Receive input
Section titled “Receive input”A Flow can receive a JWT through an HTTP POST. Forms verifies the JWT signature and adds the payload to the Flow State. The values can then be referenced in Forms with flow.<key> and in Pipes with request.<key>.
| Name | Description | Default | Mandatory |
|---|---|---|---|
certificate.path |
Path to the PEM certificate used to verify incoming JWT signatures | N/A | Yes |
parameter_name |
Form input parameter containing the JWT | jwt |
No |
{ "input_jwt": { "parameter_name": "jwt", "certificate": { "path": "resources/cert/certificate.pem" } }}Send output
Section titled “Send output”A Flow can send a signed JWT to an external service by posting to the configured location. The payload is defined in the Flow configuration and supports expression expansion.
| Name | Description | Default | Mandatory |
|---|---|---|---|
key_store |
Key store used to sign the outgoing JWT | N/A | Yes |
parameter_name |
Form output parameter containing the JWT | jwt |
No |
payload |
JSON object used as the JWT payload. Values support expression expansion | N/A | Yes |
location |
URL where Forms posts the output JWT | N/A | Yes |
{ "output_jwt": { "location": "${flow.return_url}", "parameter_name": "jwt", "key_store": { "type": "PKCS12", "path": "keys/keystore.p12", "password": "password", "private_key_password": "password" }, "payload": { "external_flow_id": "${flow.external_flow_id}", "user_info": "${flow.user_info}" } }}External flow identifier
Section titled “External flow identifier”When Forms is used together with the ExternalFlowAuthenticator in Fortified ID Access, the incoming external_flow_id can be included in the output JWT payload. This lets the calling application connect the completed Flow back to the process that started it.