Check pipeline quality
POST /pipeline/linter/<path>
Overview
This API provides a clear complete report for all standard checks, including message levels (Critical, Warning, Info) with actionable message descriptions for the pipeline quality.
Prerequisites
- You must be a member of the Environment/Org to use this linter.
Request
POST https://{controlplane_path}/api/1/rest/public/pipeline/linter/<path>
Path parameters
Key | Description |
---|---|
controlplane_path |
Required. The path to the SnapLogic Control Plane:
elastic.snaplogic.com
For the UAT or EMEA control plane, substitute the name for elastic . For
example:
|
linter | A linter is a developer tool that analyzes source code for errors, vulnerabilities, and stylistic issues to improve code quality. |
path | The absolute path to the specific pipeline. |
Request header
In the request header, specify Basic
for authorization, add your credentials, and specify application/json
for content type:
Authorization: Basic {your_encoded_security_credentials}
Content-Type: application/json
Request body
None.
Response
Response body
{
"response_map": {
"complete_report": [
{
"key": ..,
"name": "...",
"description": "...",
"message_level": "...",
"disabled": false
},
},
"http_status_code": 200
}
Key | Type | Description |
---|---|---|
Key | number | Number of the rule. |
Name | string | Name of the pipeline check. |
Description | string | Description of the resulting pipeline check. |
Message_level | string | Displays if it is Info, Warning, or Critical. |
Disabled | boolean | Default set as False. |
For detailed description of the Warnings and Critical messages refer to the individual tab in the following table:
- Warning
- Critical
Standard check descriptions for warning messages |
---|
Pipeline has no notes. |
Pipeline has bad characters in the Name (Label). |
There is no Error Handling in the pipeline. |
Child pipelines do not conform to standard naming convention. |
Expression libraries have bad/unsupported naming conventions. |
There are too many Snaps (greater than 50). |
There are too many go-to links (greater than 5). |
Mapper Snap is not using Pass through and configured with more than 40 entries. |
Mapper Snap contains Target path names that are non-standard. |
Mapper Snap may contain nested ternary statements. |
Snap being used appears to be a SnapLogic Custom SnapsCustom snap. |
Mapper Snap contains call to
Date.now() . |
Snap label has not been significantly changed from default (Example: Mapper1, Copy3). |
Deprecated Snap used in the pipeline. |
File Writer Snap is present in the pipeline. |
Group By Fields Snap is present in the pipeline. |
Group By N Snap configured with large Group Size value. |
In-Memory Lookup Snap is present in the pipeline. |
Snap Info tab / Notes section should not be empty. |
Snap Info tab Notes section content is too similar to the Snap label or default snap label. |
Pipeline executed by Pipeline Execute Snap should be prefixed. |
Pipeline Execute label should be similar to the pipeline executed to make it easy to identify. |
Pipeline executed by Pipeline Execute Snap should have a name similar to the calling pipeline. |
Pipeline is calling a child via Pipeline Execute Snap and should be prefixed. |
Pipeline is calling a child via Pipeline Execute Snap and should be suffixed. |
The Execution Label setting in the Pipeline Execute Snap is too similar to the pipeline name being called. |
Snap has retry limit and retry interval settings that have not been configured. |
Script Snap Pack Snap is present in the pipeline. |
Sort Snap configured with Maximum memory % greater than 10%. |
Standard check descriptions for critical messages |
---|
Use of duplicate Snap labels. |
More than one unlinked output view. |
Exceeds the Max Snap Count of 100. |
The XML Parser Snap is being used without the Splitter property enabled. |
Aggregate Snap is using unsorted input. |
Binary to Document Snap used, which pushes all input documents into memory. |
Gate Snap is present in the pipeline. |
Group By N Snap is present in the pipeline. |
Join Snap is using Unsorted input. |
Pipeline Execute Snap appears to be recursively calling the executing pipeline. |
Pipeline Execute Snap is configured with Execute On as SNAPLEX_WITH_PATH and Snaplex path as pipe.plexPath |
Record Replay Snap used and should not be migrated to production. |
Snap represents a pipeline that has been nested into the current pipeline. |
Example
The example provided below displays only a few selected Warning and Critical messages for reference:
{
"response_map": {
"complete_report": [
{
"key": 1,
"name": "No Notes",
"description": "Pipeline does not have notes",
"message_level": "Warning",
"disabled": false
},
{
"key": 2,
"name": "Bad characters in the Name (Label)",
"description": "Pipeline does not have bad characters in the name/label",
"message_level": "Info",
"disabled": false
},
{
"key": 3,
"name": "No Error Handling",
"description": "Pipeline does not have error handling",
"message_level": "Warning",
"disabled": false,
},
{
"key": 4,
"name": "Use of duplicate Snap Labels",
"description": "Pipeline has use of duplicate snap labels",
"message_level": "Critical",
"disabled": false,
},
{
"key": 5,
"name": "Presence of disabled Snaps",
"description": "Pipeline has presence of disabled Snaps",
"message_level": "Critical",
"disabled": false,
}
]
},
"http_status_code": 200
}