Pipe Object Properties

Overview

The pipe object provides access to pipeline runtime information and metadata in expressions. These properties are available in any expression within a pipeline and provide context about the current execution, including parameters, identifiers, timing, and environment details.

Pipeline Parameters

pipe.args

A map containing all pipeline parameters as name/value pairs.

Syntax:

pipe.args
pipe.args["parameterName"]

Examples:

// Get all parameters as an object
pipe.args

// Access specific parameter
pipe.args["user"]           // Returns: value of "user" parameter
pipe.args["environment"]    // Returns: value of "environment" parameter
Note: This is an alternative way to access pipeline parameters. You can also use the underscore prefix (_parameterName) to access parameters directly.

Pipeline Identification

pipe.instanceId

The UUID (Universally Unique Identifier) of the pipeline.

pipe.instanceId
// Returns: "1df92262-6d8a-4be9-bd0f-904e3d54f091"

pipe.label

The label (name) of the pipeline. If used in a child pipeline, returns the child pipeline name, not the parent.

pipe.label
// Returns: "My Pipeline Name"
Important: The pipe.label expression does not utilize the user-defined execution label specified in Pipeline Execute Snap configuration. It always returns the actual label of the pipeline being executed.

pipe.projectPath

The path to the pipeline's project in SLFS (SnapLogic File System).

pipe.projectPath
// Returns: "/orgname/projects/projectname"

Runtime Identifiers

pipe.ruuid

The runtime Universal Unique Identifier of the current pipeline execution. This is a unique 61-character identifier for each pipeline run.

pipe.ruuid
// Returns: unique 61-character runtime ID

pipe.parentRuuid

The runtime UUID of the parent pipeline. In a child pipeline execution, this refers to the ruuid of the parent pipeline execution.

pipe.parentRuuid
// Returns: parent runtime UUID or null if no parent

pipe.rootRuuid

The root runtime UUID referring to the top-level execution started by a Task or by a user in Designer. Available in all descendant executions.

pipe.rootRuuid
// Returns: root execution runtime UUID (61 characters)
Tip: Use pipe.rootRuuid when you need a single ID that is globally available across parent and child pipeline executions.

Execution Context

pipe.startTime

The start time of the pipeline execution.

pipe.startTime
// Returns: "2017-02-22T20:56:54.142 UTC"

pipe.flags.is_suggest

Indicates whether this is a normal execution or a pipeline validation in Designer.

pipe.flags.is_suggest
// Returns: true during Designer validation, false during normal execution

pipe.user

The ID of the user that executed the pipeline.

pipe.user
// Returns: "[email protected]"

Environment Information

pipe.hostname

The hostname of the host running the pipeline.

pipe.hostname
// Returns: hostname where the Snaplex is running the pipeline

pipe.plexPath

The path of the Snaplex executing the pipeline.

pipe.plexPath
// Returns: "/snaplogic/shared/cloud-dev"

pipe.tmpDir

A file URI referring to a temporary directory on the local disk for storing temporary files during pipeline execution. The directory is not created by default; Snaps must be configured to create intermediate directories. Contents are deleted after pipeline execution completes.

pipe.tmpDir
// Returns: "file:///tmp/snaplogic/xyz123"
Note: The temporary directory can be accessed using Snaps that accept a URI, like FileWriter or FileReader. Ensure Snaps are configured to create intermediate directories.

Common Use Cases

Unique File Naming:

// Use ruuid for unique filenames
"/output/" + pipe.ruuid + "/data_" + Date.now() + ".json"

Environment-Specific Logic:

// Different behavior based on Snaplex
pipe.plexPath.includes("prod") ? $prodEndpoint : $devEndpoint

Audit Logging:

{
  "pipelineName": pipe.label,
  "executionId": pipe.ruuid,
  "startTime": pipe.startTime,
  "user": pipe.user,
  "environment": pipe.plexPath
}

Parameter Access:

// Access parameter by name
pipe.args["environment"]

// Check if parameter exists
"environment" in pipe.args

Temporary File Handling:

// Write to temp directory
pipe.tmpDir + "/intermediate_" + pipe.ruuid + ".csv"

Parent-Child Pipeline Tracking:

{
  "currentPipeline": pipe.label,
  "currentRuuid": pipe.ruuid,
  "parentRuuid": pipe.parentRuuid,
  "rootRuuid": pipe.rootRuuid
}

Conditional Execution:

// Skip certain logic during Designer validation
pipe.flags.is_suggest ? null : $actualProcessing

Best Practices

  • Unique Identifiers: Use pipe.ruuid for generating unique identifiers in file names, database keys, or tracking records.
  • Root Tracking: Use pipe.rootRuuid when you need to correlate data across parent and child pipeline executions.
  • Environment Detection: Use pipe.plexPath or pipe.args to implement environment-specific logic (dev/staging/prod).
  • Audit Trails: Include pipe.user, pipe.startTime, and pipe.ruuid in audit logs for traceability.
  • Temporary Files: Use pipe.tmpDir for intermediate files that don't need to persist after pipeline execution.
  • Designer Testing: Use pipe.flags.is_suggest to skip expensive operations during Designer validation.
  • Pipeline Context: Use pipe.label and pipe.projectPath for self-documenting pipelines and dynamic configuration.

Property Reference

Property Description Example Value
pipe.args Pipeline parameters map {user: "admin", env: "prod"}
pipe.instanceId Pipeline UUID 1df92262-6d8a-4be9...
pipe.label Pipeline name "Data Integration Pipeline"
pipe.ruuid Runtime UUID (61 chars) abc123...
pipe.parentRuuid Parent runtime UUID xyz789... or null
pipe.rootRuuid Root runtime UUID def456...
pipe.startTime Execution start timestamp 2017-02-22T20:56:54.142 UTC
pipe.user Executing user ID [email protected]
pipe.hostname Snaplex hostname node-01.example.com
pipe.plexPath Snaplex path /snaplogic/shared/prod
pipe.projectPath Project path in SLFS /myorg/projects/finance
pipe.tmpDir Temporary directory URI file:///tmp/snaplogic/...
pipe.flags.is_suggest Designer validation flag true or false