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 |
.org
Description:
The .org expression function returns the organization label for the
current pipeline execution context. It provides a direct, reliable way to obtain the org
label in expressions without parsing other properties such as
pipe.projectPath.
Returns the organization label associated with the current pipeline execution context. Use
.org instead of parsing pipe.projectPath when you need
the org label directly.
Syntax:
.org
Arguments: None
Returns: String — the organization label (not the org path) for the current execution context.
.org returns the organization label, not the
org path.Example:
.org
// Returns: "TestCorp"
Examples
Build a fully qualified project asset path:
Use .org to construct stable, absolute paths that work across organizations
and when launching from root shared. Reference the artifact name from a pipeline parameter using the underscore prefix.
'/' + .org + '/ProjectSpace/Project/' + _artifact_name
If .org is TestCorp and the pipeline parameter _artifact_name is
MyPipeline, the expression evaluates to:
/TestCorp/ProjectSpace/Project/MyPipeline
Reference assets in shared projects:
Access the pipeline name from a pipeline parameter:
'/' + .org + '/shared/common/' + _pipeline_name
Compose with conditional logic:
Fallback to a default label if the value is not present
(.org ? '/' + .org : '/DefaultOrg') + '/Analytics/Jobs/' + $jobName
Best Practices
- Prefer
.orgover parsingpipe.projectPathwhen you need the org label directly. - Use
.orgwhen pipelines may be promoted or moved between organizations. - Use
.orgwhen executions are triggered from root shared or contexts where relative paths are unreliable. - Keep path-building logic centralized — for example, via Pipeline Parameters or a shared expression — to ensure consistency.
Troubleshooting
| Issue | Resolution |
|---|---|
| Expression works in Designer but fails at runtime | Verify the execution context provides a valid org label. Confirm the pipeline is not running in a context where the org cannot be resolved. |
| Path resolves to the wrong organization | Confirm the pipeline is executed from the intended org context and that no
hardcoded org labels override .org in the
expression. |
Function Reference
| Function | Description | Return Type | Example Value |
|---|---|---|---|
.org |
Returns the organization label for the current execution context | String | TestCorp |