Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

...

Overview

Parameters are variables that you can use to pass inputs dynamically when invoking Pipelines. Parameter values remain unchanged during Pipeline execution. When defined, these values can be accessed from any part of the Pipeline and are especially useful in parent-child Pipeline construct.  Passing Pipeline arguments as parameters allow a Pipeline to be reused in multiple situations; this reuse can especially be helpful when creating Tasks from Pipelines. You can also append a query string to the URL with the key/value pairs of the parameters defined in the Pipeline properties.

...

Pass Arguments through Pipeline Parameters

To pass arguments to the Pipeline:

  1. In SnapLogic Designer, click Image Removed to display click the toolbar Edit Pipeline dialog.
    Image Removed
    Under Parameters, Add Properties button:
    Image Added


  2. In the Edit Pipeline dialog Parameters section, click Image Added to add the parameter in the Key field, then define it in the Value field.

    Info
    titlePipeline Parameters

    The Value specified for a given particular Key in the Pipeline Parameters that are set from the Pipeline Settings dialog overrides the Value defined in the individual Snaps that make up the Pipeline.


...

Note
titleBest Practice

You should URL-encode the arguments that you are using in the query string.

...


Pipeline Parameters in the Semantic URL Form

You can send Pipeline parameters to Triggered Tasks in the semantic URL form. When the Parameter Key is defined in the Pipeline Settings, the Parameter Value is rendered into a variable name. For example For example, if the variable name is PATH_INFO, then it must be defined as a parameter value in the Pipeline itself.  In the following example, we add the following parameters:

...

  • PATH_INFO—The path elements after the Task part of the URL.
  • REMOTE_USER—The name of the user that invoked this request.
  • REMOTE_ADDR—The IP address of the host that invoked this request.
  • REQUEST_METHOD—The method used to invoke this request.
  • QUERY_PARAM—The STRING—The query string element of the URL that made the request.
  • REMOTE_PORT—The port of the client that made the request.
Info

We return the IP address of the client or last proxy that sent the request.

When referencing these arguments, they must be prefixed with an underscore like any other parameter.  When designing a Pipeline, you might find it easier to explicitly add these parameters with a default value.

...

  • The header must be capitalized in its entirety. Headers are case-sensitive.
  • Hyphens must be changed to underscores.
  • The HTTP custom headers override both the Task and Pipeline parameters, but the query string parameter has the highest precedence.
  • We support the x-snapi-pipeline-ruuid customer header in the HTTP response to Triggered Task requests.

For example, if you  you pass a tenant ID (X-TENANT-ID) in a header, add the parameter X_TENANT_ID and provide a default or leave it blank. When you configure the expression, refer to the Pipeline argument following standard convention:  _X_TENANT_ID.  In the HTTP request, you add the header X-TENANT-ID: 123abc, which results in the value 123abc being substituted for the Pipeline argument X_TENANT_ID.


Info

Custom response headers are supported for Ultra Task or Triggered tasks invoked using Ground URLs. They are not supported for Cloud invoked Triggered tasks.

Example

You can set an HTTP header in a Triggered Task by using the Mapper Snap.

To set the header, add a Mapper Snap to the end of the Pipeline.

...

The following response shows the endpoint information for the Task URL, where X-My-Header is the custom header being set by the Task:

Panel
$ http http://snaplogic.io/api/1/rest/feed/snaplogic/projects/m%20smith/header-example-task 'Authorization: Bearer RRxxVsEUVXGREgd20BRUvx49KncOsfWr' foo=bar
HTTP/1.1 200 OK
Accept: application/json, /;q=0.5
Connection: keep-alive
Content-Length: 14
Content-Type: application/json
Date: Wed, 10 June 2020 18:10:00 GMT
Host: snaplogic.io
User-Agent: HTTPie/2.1.0
Vary: Accept-Encoding
X-Forwarded-For: 198.51.100.22
X-My-Header: foo
X-SL-AssetPath: /snaplogic/projects/m_smith/header-example-task
X-SL-AssetURIPath: /api/1/rest/feed/snaplogic/projects/m_smith/header-example-task
X-SL-Authorized: true
X-SL-ClientIP: 203.0.113.7
X-SL-PathInfo:
X-SL-PolicyOrdering: [com-snaplogic-common-jaxrs-apipolicyinterceptor$sessionauthenticator, com-snaplogic-common-jaxrs-apipolicyinterceptor$snaplogicauthenticator, com-snaplogic-common-jaxrs-apipolicyinterceptor$authsentinel]
x-snapi-pipeline-ruuid: 52e99318640a9a03d8681d0d_8ffe5610-be2c-408d-9068-61ee167b0372
 

...