Steptypes.json Example

This example shows a steptypes.json file that describes three custom steps: a step defined using a task-oriented CommonJS module, a step defined using a legacy pipeline, and a step defined using a chunk-oriented CommonJS module.

To check the syntax of your steptypes.json file, access the steptypes.schema file here.

1my_cartridge/steptypes.json
2{
3  "step-types":
4  {
5    "script-module-step":
6    [
7      {
8        "@type-id":"custom.MyCustomScriptStepType",
9        "@supports-parallel-execution":"true",
10        "@supports-site-context":"true",
11        "@supports-organization-context":"false",
12        "description":"My custom script step type",
13        "module":"my_cartridge/cartridge/scripts/steps/myModule.ds",
14        "function":"myFunctionName",
15        "transactional":"false",
16        "timeout-in-seconds":"900",
17        "parameters":
18        {
19          "parameter":
20          [
21            {
22              "@name":"MyParameter1",
23              "@type":"boolean",
24              "@required":"true",
25              "description":"A required boolean parameter."
26            },
27            {
28              "@name":"MyParameter2",
29              "@type":"long",
30              "@required":"false",
31              "description":"An optional long parameter. The default value is 10 when not defined.",
32              "default-value":"10"
33            },
34            {
35              "@name":"MyParameter3",
36              "@type":"double",
37              "@required":"true",
38              "@trim":"true",
39              "description":"A required double parameter were the raw value is trimmed, value must be betwenn -10 and +10.",
40              "min-value":"-10",
41              "max-value":"10"
42            },
43            {
44              "@name":"MyParameter4",
45              "@type":"string",
46              "@required":"false",
47              "description":"An optional string parameter, length must be between 10 and 50",
48              "min-length":"10",
49              "max-length":"50"
50            },
51            {
52              "@name":"MyParameter5",
53              "@type":"string",
54              "@required":"true",
55              "@trim":"false",
56              "description":"A required string parameter, must be one of One, Two or Three.",
57              "enum-values":
58              {
59                "value":
60                [
61                  "One",
62                  "Two",
63                  "Three"
64                ]
65              }
66            },
67            {
68              "@name":"MyParameter6",
69              "@type":"datetime-string",
70              "@required":"false",
71              "@target-type":"date",
72              "description":"An optional datetime parameter."
73            },
74            {
75              "@name":"MyParameter7",
76              "@type":"date-string",
77              "@required":"false",
78              "@target-type":"date",
79              "description":"An optional date parameter."
80            },
81            {
82              "@name":"MyParameter8",
83              "@type":"time-string",
84              "@required":"false",
85              "@target-type":"long",
86              "description":"An optional time parameter."
87            }
88          ]
89        },
90        "status-codes":
91        {
92                  "status":
93          [
94                      {
95                          "@code": "ERROR",
96                          "description": "Used when the step failed with an error."
97                      },
98                      {
99                          "@code": "FINISHED",
100              "description": "Used when the step finished successfully."
101                      },
102                      {
103                          "@code": "FINISHED_WITH_WARNINGS",
104              "description": "Used when the step finished with warnings."
105                      }
106                  ]
107              }
108      }
109    ],
110    "pipeline-step":
111    [
112      {
113        "@type-id":"custom.MyCustomPipelineStepType",
114        "@supports-parallel-execution":"false",
115        "@supports-site-context":"false",
116        "@supports-organization-context":"true",
117        "pipeline":"MyProcessPipeline-MyStartNode",
118        "description":"This is a custom pipeline step type",
119        "parameters":
120        {
121          "parameter":
122          [
123            {
124              "@name":"MyParameter1",
125              "@type":"boolean",
126              "@required":"true",
127              "description":"A required boolean parameter."
128            }
129          ]
130        },
131        "status-codes":
132        {
133                  "status":
134          [
135                      {
136                          "@code": "ERROR",
137                          "description": "Used when the step failed with an error."
138                      }
139                  ]
140              }
141      }
142    ],
143    "chunk-script-module-step":
144    [
145      {
146        "@type-id":"custom.MyCustomChunkScriptModuleStep",
147        "@supports-parallel-execution":"false",
148        "@supports-site-context":"true",
149        "@supports-organization-context":"false",
150        "description":"My custom chunk script step type",
151        "module":"my_cartridge/cartridge/scripts/steps/myModule.ds",
152        "before-step-function":"beforeStep",
153        "total-count-function":"getTotalCount",
154        "before-chunk-function":"beforeChunk",
155        "read-function":"read",
156        "process-function":"process",
157        "write-function":"write",
158        "after-chunk-function":"afterChunk",
159        "after-step-function":"afterStep",
160        "chunk-size":10,
161        "transactional":"true",
162        "parameters":
163        {
164          "parameter":
165          [
166            {
167              "@name":"MyParameter",
168              "@type":"boolean",
169              "@required":"false"
170            }
171          ]
172        },
173        "status-codes":
174        {
175                  "status":
176          [
177                      {
178                          "@code": "ERROR",
179                          "description": "Used when the step failed with an error."
180                      },
181                      {
182                          "@code": "OK",
183              "description": "Used when the step finished successfully."
184                      }
185                  ]
186              }
187      }
188    ]
189  }
190}