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
_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"
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)
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"
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.ruuidfor generating unique identifiers in file names, database keys, or tracking records. - Root Tracking: Use
pipe.rootRuuidwhen you need to correlate data across parent and child pipeline executions. - Environment Detection: Use
pipe.plexPathorpipe.argsto implement environment-specific logic (dev/staging/prod). - Audit Trails: Include
pipe.user,pipe.startTime, andpipe.ruuidin audit logs for traceability. - Temporary Files: Use
pipe.tmpDirfor intermediate files that don't need to persist after pipeline execution. - Designer Testing: Use
pipe.flags.is_suggestto skip expensive operations during Designer validation. - Pipeline Context: Use
pipe.labelandpipe.projectPathfor 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 |