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:
  • uat.snaplogic.com
  • emea.snaplogic.com
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:

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
       }