@swimlane/turbine-sdk 1.3.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +5 -658
  2. package/README.md +784 -126
  3. package/bin/dev +17 -0
  4. package/bin/dev.cmd +3 -0
  5. package/bin/run +5 -0
  6. package/bin/run.cmd +3 -0
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +6 -0
  9. package/lib/index.js.map +1 -0
  10. package/oclif.manifest.json +1 -0
  11. package/package.json +98 -79
  12. package/dist/Sensor/BaseSensor.d.ts +0 -9
  13. package/dist/Sensor/BaseSensor.js +0 -10
  14. package/dist/Sensor/Errors.d.ts +0 -6
  15. package/dist/Sensor/Errors.js +0 -15
  16. package/dist/Sensor/HttpSensorAgentInterface.d.ts +0 -22
  17. package/dist/Sensor/HttpSensorAgentInterface.js +0 -99
  18. package/dist/Sensor/MockSensorAgentInterface.d.ts +0 -22
  19. package/dist/Sensor/MockSensorAgentInterface.js +0 -76
  20. package/dist/Sensor/SensorAgentInterface.d.ts +0 -17
  21. package/dist/Sensor/SensorAgentInterface.js +0 -24
  22. package/dist/Sensor/SensorConfig.d.ts +0 -24
  23. package/dist/Sensor/SensorConfig.js +0 -3
  24. package/dist/Sensor/index.d.ts +0 -6
  25. package/dist/Sensor/index.js +0 -11
  26. package/dist/index.d.ts +0 -1
  27. package/dist/index.js +0 -7
  28. package/node_modules/axios/CHANGELOG.md +0 -901
  29. package/node_modules/axios/LICENSE +0 -19
  30. package/node_modules/axios/README.md +0 -909
  31. package/node_modules/axios/SECURITY.md +0 -5
  32. package/node_modules/axios/UPGRADE_GUIDE.md +0 -168
  33. package/node_modules/axios/dist/axios.js +0 -2277
  34. package/node_modules/axios/dist/axios.map +0 -1
  35. package/node_modules/axios/dist/axios.min.js +0 -2
  36. package/node_modules/axios/dist/axios.min.map +0 -1
  37. package/node_modules/axios/index.d.ts +0 -221
  38. package/node_modules/axios/index.js +0 -1
  39. package/node_modules/axios/lib/adapters/README.md +0 -37
  40. package/node_modules/axios/lib/adapters/http.js +0 -404
  41. package/node_modules/axios/lib/adapters/xhr.js +0 -212
  42. package/node_modules/axios/lib/axios.js +0 -57
  43. package/node_modules/axios/lib/cancel/Cancel.js +0 -19
  44. package/node_modules/axios/lib/cancel/CancelToken.js +0 -119
  45. package/node_modules/axios/lib/cancel/isCancel.js +0 -5
  46. package/node_modules/axios/lib/core/Axios.js +0 -148
  47. package/node_modules/axios/lib/core/InterceptorManager.js +0 -54
  48. package/node_modules/axios/lib/core/README.md +0 -8
  49. package/node_modules/axios/lib/core/buildFullPath.js +0 -20
  50. package/node_modules/axios/lib/core/createError.js +0 -18
  51. package/node_modules/axios/lib/core/dispatchRequest.js +0 -87
  52. package/node_modules/axios/lib/core/enhanceError.js +0 -43
  53. package/node_modules/axios/lib/core/mergeConfig.js +0 -99
  54. package/node_modules/axios/lib/core/settle.js +0 -25
  55. package/node_modules/axios/lib/core/transformData.js +0 -22
  56. package/node_modules/axios/lib/defaults.js +0 -134
  57. package/node_modules/axios/lib/env/README.md +0 -3
  58. package/node_modules/axios/lib/env/data.js +0 -3
  59. package/node_modules/axios/lib/helpers/README.md +0 -7
  60. package/node_modules/axios/lib/helpers/bind.js +0 -11
  61. package/node_modules/axios/lib/helpers/buildURL.js +0 -70
  62. package/node_modules/axios/lib/helpers/combineURLs.js +0 -14
  63. package/node_modules/axios/lib/helpers/cookies.js +0 -53
  64. package/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -24
  65. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -14
  66. package/node_modules/axios/lib/helpers/isAxiosError.js +0 -13
  67. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -68
  68. package/node_modules/axios/lib/helpers/normalizeHeaderName.js +0 -12
  69. package/node_modules/axios/lib/helpers/parseHeaders.js +0 -53
  70. package/node_modules/axios/lib/helpers/spread.js +0 -27
  71. package/node_modules/axios/lib/helpers/toFormData.js +0 -55
  72. package/node_modules/axios/lib/helpers/validator.js +0 -82
  73. package/node_modules/axios/lib/utils.js +0 -349
  74. package/node_modules/axios/package.json +0 -114
  75. package/node_modules/axios/tsconfig.json +0 -14
  76. package/node_modules/axios/tslint.json +0 -6
  77. package/node_modules/follow-redirects/LICENSE +0 -18
  78. package/node_modules/follow-redirects/README.md +0 -148
  79. package/node_modules/follow-redirects/debug.js +0 -15
  80. package/node_modules/follow-redirects/http.js +0 -1
  81. package/node_modules/follow-redirects/https.js +0 -1
  82. package/node_modules/follow-redirects/index.js +0 -573
  83. package/node_modules/follow-redirects/package.json +0 -95
package/README.md CHANGED
@@ -1,142 +1,800 @@
1
- # Turbine SDK for Node.JS
2
-
3
- Descriptions and helpers for developing items for Turbine
4
-
5
- ## Building a Sensor
6
-
7
- To build a sensor, you will need to create a 'newable/class' object.
8
-
9
- ### Extending BaseSensor
10
-
11
- The easiest way to create a new sensor would be to extend the `BaseSensor` class that exists in this package. From there you need to define the `start()` and `stop()` functions.
12
-
13
- `BaseSensor` provides the following class properties:
14
-
15
- - `config`: [SensorConfig](#sensorconfig) This is all the configuration information for your instance
16
- - `sdk`: [SensorAgentInterface](#sensoragentinterface) This is a collection of helper functions
17
-
18
- #### Example
1
+ Swimlane Turbine SDK
2
+ ============
3
+
4
+ [![Version](https://img.shields.io/npm/v/@swimlane/turbine-sdk)](https://npmjs.org/package/@swimlane/turbine-sdk)
5
+ [![Downloads/week](https://img.shields.io/npm/dw/@swimlane/turbine-sdk)](https://npmjs.org/package/@swimlane/turbine-sdk)
6
+ [![License](https://img.shields.io/npm/l/@swimlane/turbine-sdk)](https://github.com/swimlane/turbine-sdk/blob/main/packages/cli/package.json)
7
+
8
+ <!-- toc -->
9
+ * [Requirements](#requirements)
10
+ * [Installation](#installation)
11
+ * [Usage](#usage)
12
+ * [Commands](#commands)
13
+ <!-- tocstop -->
14
+
15
+ # Requirements
16
+
17
+ * Docker Desktop
18
+ * Docker registry
19
+ ```
20
+ docker run -d -p 5000:5000 --name registry registry:2
21
+ ```
22
+ * nvm - (https://github.com/nvm-sh/nvm#installing-and-updating)
23
+ * Node >= 16.13.0
24
+
25
+ # Installation
26
+
27
+ ```shell
28
+ npm install -g @swimlane/turbine-sdk@latest
29
+ ```
30
+
31
+ # Usage
32
+ <!-- usage -->
33
+ ```sh-session
34
+ $ npm install -g @swimlane/turbine-sdk
35
+ $ tsdk COMMAND
36
+ running command...
37
+ $ tsdk (--version|-v)
38
+ @swimlane/turbine-sdk/2.0.0 darwin-x64 node-v16.17.1
39
+ $ tsdk --help [COMMAND]
40
+ USAGE
41
+ $ tsdk COMMAND
42
+ ...
43
+ ```
44
+ <!-- usagestop -->
45
+ # Commands
46
+ <!-- commands -->
47
+ * [`tsdk action add`](#tsdk-action-add)
48
+ * [`tsdk action generate data`](#tsdk-action-generate-data)
49
+ * [`tsdk action generate input`](#tsdk-action-generate-input)
50
+ * [`tsdk action generate output`](#tsdk-action-generate-output)
51
+ * [`tsdk action run local`](#tsdk-action-run-local)
52
+ * [`tsdk asset add`](#tsdk-asset-add)
53
+ * [`tsdk autocomplete [SHELL]`](#tsdk-autocomplete-shell)
54
+ * [`tsdk commands`](#tsdk-commands)
55
+ * [`tsdk connector build`](#tsdk-connector-build)
56
+ * [`tsdk connector create`](#tsdk-connector-create)
57
+ * [`tsdk connector create-source`](#tsdk-connector-create-source)
58
+ * [`tsdk connector logo`](#tsdk-connector-logo)
59
+ * [`tsdk connector save`](#tsdk-connector-save)
60
+ * [`tsdk connector sign`](#tsdk-connector-sign)
61
+ * [`tsdk connector update`](#tsdk-connector-update)
62
+ * [`tsdk connector validate`](#tsdk-connector-validate)
63
+ * [`tsdk help [COMMAND]`](#tsdk-help-command)
64
+ * [`tsdk plugins`](#tsdk-plugins)
65
+ * [`tsdk plugins:install PLUGIN...`](#tsdk-pluginsinstall-plugin)
66
+ * [`tsdk plugins:inspect PLUGIN...`](#tsdk-pluginsinspect-plugin)
67
+ * [`tsdk plugins:install PLUGIN...`](#tsdk-pluginsinstall-plugin-1)
68
+ * [`tsdk plugins:link PLUGIN`](#tsdk-pluginslink-plugin)
69
+ * [`tsdk plugins:uninstall PLUGIN...`](#tsdk-pluginsuninstall-plugin)
70
+ * [`tsdk plugins:uninstall PLUGIN...`](#tsdk-pluginsuninstall-plugin-1)
71
+ * [`tsdk plugins:uninstall PLUGIN...`](#tsdk-pluginsuninstall-plugin-2)
72
+ * [`tsdk plugins update`](#tsdk-plugins-update)
73
+ * [`tsdk turbine connector keys generate`](#tsdk-turbine-connector-keys-generate)
74
+ * [`tsdk turbine connector keys list local`](#tsdk-turbine-connector-keys-list-local)
75
+ * [`tsdk turbine connector keys list remote`](#tsdk-turbine-connector-keys-list-remote)
76
+ * [`tsdk turbine connector push`](#tsdk-turbine-connector-push)
77
+ * [`tsdk turbine login`](#tsdk-turbine-login)
78
+ * [`tsdk version`](#tsdk-version)
79
+ * [`tsdk which`](#tsdk-which)
80
+
81
+ ## `tsdk action add`
82
+
83
+ Update a connector action.
84
+
85
+ ```
86
+ USAGE
87
+ $ tsdk action add [-d <value>] [-t node_18|python_310_definition|python_3.7_swimlane] [-h]
88
+
89
+ FLAGS
90
+ -d, --directory=<value> [default: ./] Root directory of the repository.
91
+ -h, --help Show CLI help.
92
+ -t, --template=<option> [default: python_310_definition] action template to scaffold
93
+ <options: node_18|python_310_definition|python_3.7_swimlane>
94
+
95
+ DESCRIPTION
96
+ Update a connector action.
97
+ ```
98
+
99
+ ## `tsdk action generate data`
100
+
101
+ Use to test a task in an integration
102
+
103
+ ```
104
+ USAGE
105
+ $ tsdk action generate data [-h] [-a <value>] [--asset <value>] [--inputs <value>] [-d <value>] [--include-optional]
106
+ [--force]
107
+
108
+ FLAGS
109
+ -a, --action=<value> action to generate data
110
+ -d, --directory=<value> [default: ./] current directory to mount
111
+ -h, --help Show CLI help.
112
+ --asset=<value> Filename for asset, defaults to the task name under the data folder. ie: data/asset_name.json
113
+ --force overwrites current files
114
+ --include-optional used to only generate required properties
115
+ --inputs=<value> Filename for JSON inputs, defaults to the task name under the data folder. ie:
116
+ data/my_task.json
117
+
118
+ DESCRIPTION
119
+ Use to test a task in an integration
120
+ ```
121
+
122
+ ## `tsdk action generate input`
123
+
124
+ Update action input schema.
125
+
126
+ ```
127
+ USAGE
128
+ $ tsdk action generate input [-a <value>] [-d <value>] [--amend] [--action-config-path <value>] [--input-path <value>]
129
+ [-h]
130
+
131
+ FLAGS
132
+ -a, --action=<value> Action name to run
133
+ -d, --directory=<value> [default: ./] Root directory of the repository.
134
+ -h, --help Show CLI help.
135
+ --action-config-path=<value> Override path to action configuration file. Defaults to
136
+ /connector/config/actions/<action>.yaml
137
+ --amend Merge with existing schema.
138
+ --input-path=<value> Relative path to the output data JSON file, defaults to the task name under the data
139
+ folder. ie: /data/<taskName>_output.json
140
+
141
+ DESCRIPTION
142
+ Update action input schema.
143
+ ```
144
+
145
+ ## `tsdk action generate output`
146
+
147
+ Update a connector action.
148
+
149
+ ```
150
+ USAGE
151
+ $ tsdk action generate output [-a <value>] [-d <value>] [--action-config-path <value>] [--amend] [--output-path <value>]
152
+ [-h]
153
+
154
+ FLAGS
155
+ -a, --action=<value> Action name to run
156
+ -d, --directory=<value> [default: ./] Root directory of the repository.
157
+ -h, --help Show CLI help.
158
+ --action-config-path=<value> Override path to action configuration file. Defaults to /connector/config/<action>.yaml
159
+ --amend Merge with existing schema.
160
+ --output-path=<value> Relative path to the output data JSON file, defaults to the task name under the data
161
+ folder. ie: /data/<taskName>_output.json
162
+
163
+ DESCRIPTION
164
+ Update a connector action.
165
+ ```
166
+
167
+ ## `tsdk action run local`
168
+
169
+ Runs a connector action. (Defaults to current image version in local repository).
170
+
171
+ ```
172
+ USAGE
173
+ $ tsdk action run local [-a <value>] [-d <value>] [--input-path <value>] [--output-path <value>] [--error-path
174
+ <value>] [--asset-path <value>] [--template python_3.7_swimlane|node_18|python_310_definition] [-f] [-h]
175
+
176
+ FLAGS
177
+ -a, --action=<value> Action name to run
178
+ -d, --directory=<value> [default: ./] Root directory of the repository.
179
+ -f, --force-rebuild forces nocache on the image build
180
+ -h, --help Show CLI help.
181
+ --asset-path=<value> File to asset data JSON file, defaults to /data/asset.json
182
+ --error-path=<value> File to write the errors to, defaults to /data/<action>_error.json
183
+ --input-path=<value> File to input data JSON file, defaults to /data/<action>.json
184
+ --output-path=<value> File to write the outputs to, defaults to /data/<action>_output.json
185
+ --template=<option> [default: python_310_definition] connector template
186
+ <options: python_3.7_swimlane|node_18|python_310_definition>
187
+
188
+ DESCRIPTION
189
+ Runs a connector action. (Defaults to current image version in local repository).
190
+ ```
191
+
192
+ ## `tsdk asset add`
19
193
 
20
- This is a basic sensor that listens on a port and passes any data as an event (Webhook)
194
+ Update a connector action.
21
195
 
22
- ##### Typescript
196
+ ```
197
+ USAGE
198
+ $ tsdk asset add [-d <value>] [-s custom|apikey|oauth2_client_credentials|http_basic|http_bearer] [-h]
23
199
 
24
- ```typescript
25
- import { BaseSensor } from '@swimlane/turbine-sdk';
26
- import * as http from 'http';
200
+ FLAGS
201
+ -d, --directory=<value> [default: ./] Root directory of the repository.
202
+ -h, --help Show CLI help.
203
+ -s, --scheme=<option> asset template to scaffold
204
+ <options: custom|apikey|oauth2_client_credentials|http_basic|http_bearer>
27
205
 
28
- export class MySensor extends BaseSensor {
29
- start(): Promise<void> {
30
- return new Promise<void>((resolve, reject) => {
31
- this.server = http.createServer((req, res) => {
32
- const body = [];
33
- req
34
- .on('data', chunk => {
35
- body.push(chunk);
36
- })
37
- .on('end', () => {
38
- this.sdk.sendEvent('MyEvent', Buffer.concat(body).toString());
39
- res.end('ok');
40
- });
41
- });
206
+ DESCRIPTION
207
+ Update a connector action.
208
+ ```
42
209
 
43
- this.server.on('error', err => {
44
- this.sdk.log.error(err.message);
45
- reject(err);
46
- });
210
+ ## `tsdk autocomplete [SHELL]`
47
211
 
48
- this.server.listen(parseInt(this.config.inputs.port, 10), () => {
49
- this.sdk.log.debug(`Server started on port: ${this.config.inputs.port}`);
50
- resolve();
51
- });
52
- });
53
- }
212
+ display autocomplete installation instructions
54
213
 
55
- stop(): Promise<void> {
56
- return new Promise<void>((resolve, reject) => {
57
- if (this.server) this.server.close(() => resolve());
58
- else resolve();
59
- });
60
- }
61
- }
62
214
  ```
215
+ USAGE
216
+ $ tsdk autocomplete [SHELL] [-r]
217
+
218
+ ARGUMENTS
219
+ SHELL shell type
220
+
221
+ FLAGS
222
+ -r, --refresh-cache Refresh cache (ignores displaying instructions)
63
223
 
64
- ##### Javascript
224
+ DESCRIPTION
225
+ display autocomplete installation instructions
65
226
 
66
- ```javascript
67
- const BaseSensor = require('@swimlane/turbine-sdk').BaseSensor;
68
- const http = require('http');
227
+ EXAMPLES
228
+ $ tsdk autocomplete
69
229
 
70
- class MySensor extends BaseSensor {
71
- start() {
72
- return new Promise((resolve, reject) => {
73
- this.server = http.createServer((req, res) => {
74
- const body = [];
75
- req
76
- .on('data', chunk => {
77
- body.push(chunk);
78
- })
79
- .on('end', () => {
80
- this.sdk.sendEvent('MyEvent', Buffer.concat(body).toString());
81
- res.end('ok');
82
- });
83
- });
230
+ $ tsdk autocomplete bash
84
231
 
85
- this.server.on('error', err => {
86
- this.sdk.log.error(err.message);
87
- reject(err);
88
- });
232
+ $ tsdk autocomplete zsh
89
233
 
90
- this.server.listen(parseInt(this.config.inputs.port, 10), () => {
91
- this.sdk.log.info(`Server started on port: ${this.config.inputs.port}`);
92
- resolve();
93
- });
94
- });
95
- }
234
+ $ tsdk autocomplete --refresh-cache
235
+ ```
236
+
237
+ _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v1.2.0/src/commands/autocomplete/index.ts)_
96
238
 
97
- stop() {
98
- return new Promise((resolve, reject) => {
99
- if (this.server) this.server.close(() => resolve());
100
- else resolve();
101
- });
102
- }
103
- }
239
+ ## `tsdk commands`
104
240
 
105
- module.exports = {
106
- FooSensor
107
- };
241
+ list all the commands
242
+
243
+ ```
244
+ USAGE
245
+ $ tsdk commands [--json] [-h] [--hidden] [--columns <value> | -x] [--sort <value>] [--filter <value>]
246
+ [--output csv|json|yaml | | [--csv | --no-truncate]] [--no-header | ]
247
+
248
+ FLAGS
249
+ -h, --help Show CLI help.
250
+ -x, --extended show extra columns
251
+ --columns=<value> only show provided columns (comma-separated)
252
+ --csv output is csv format [alias: --output=csv]
253
+ --filter=<value> filter property by partial string matching, ex: name=foo
254
+ --hidden show hidden commands
255
+ --no-header hide table header from output
256
+ --no-truncate do not truncate output to fit screen
257
+ --output=<option> output in a more machine friendly format
258
+ <options: csv|json|yaml>
259
+ --sort=<value> property to sort by (prepend '-' for descending)
260
+
261
+ GLOBAL FLAGS
262
+ --json Format output as json.
263
+
264
+ DESCRIPTION
265
+ list all the commands
108
266
  ```
109
-
110
- ### Custom Class
111
-
112
- If you wish to build your own Sensor class, your class will need to match the following pattern:
113
-
114
- **constructor**: Your constructor will receive two arguments:
115
-
116
- - an instance of the [SensorAgentInterface](#sensoragentinterface)
117
- - a [SensorConfig](#sensorconfig) object
118
-
119
- **start()**: a start method that returns a `Promise` that resolves when the sensor is started
120
-
121
- **stop()**: an end method that returns a `Promise` that resolves when the sensor has stopped
122
-
123
- ## SensorConfig
124
-
125
- An object with all the configuration information for your sensor:
126
-
127
- - `id`: The ID of the sensor instance
128
- - `sensor`: The sensor manifest
129
- - `inputs`: Values for any inputs your instance may need
130
-
131
- ## SensorAgentInterface
132
-
133
- An object that contains helper functions so your sensor can interface with Turbine
134
-
135
- - `sendEvent(type, message)`: Send an event to Turbine
136
- - throws `PayloadTooLargeException` or `SendEventException` (which can crash your sensor)
137
- - `log`: contains functions to log data back to Turbine
138
- - `critical(message, ...opts)`: Send a critical log message
139
- - `error(message, ...opts)`: Send an error log message
140
- - `warn(message, ...opts)`: Send a warning log message
141
- - `info(message, ...opts)`: Send an informational log message
142
- - `debug(message, ...opts)`: Send a debug log message
267
+
268
+ _See code: [@oclif/plugin-commands](https://github.com/oclif/plugin-commands/blob/v2.1.0/src/commands/commands.ts)_
269
+
270
+ ## `tsdk connector build`
271
+
272
+ Builds a local docker image of the connector.
273
+
274
+ ```
275
+ USAGE
276
+ $ tsdk connector build --template python_3.7_swimlane|node_18|python_310_definition [-d <value>] [--save] [-f]
277
+ [--signing-password <value>] [--key-name <value>] [--registry <value>] [-h]
278
+
279
+ FLAGS
280
+ -d, --directory=<value> [default: ./] root directory of the repository.
281
+ -f, --force-rebuild forces nocache on the image build
282
+ -h, --help Show CLI help.
283
+ --key-name=<value> name used for the key (default: username)
284
+ --registry=<value> [default: localhost:5000] registry to use for signing
285
+ --save saves a signed docker image as tar in local directory.
286
+ --signing-password=<value> password used for the private key
287
+ --template=<option> (required) [default: python_310_definition] connector language
288
+ <options: python_3.7_swimlane|node_18|python_310_definition>
289
+
290
+ DESCRIPTION
291
+ Builds a local docker image of the connector.
292
+ ```
293
+
294
+ ## `tsdk connector create`
295
+
296
+ Scaffold a new connector
297
+
298
+ ```
299
+ USAGE
300
+ $ tsdk connector create [-d <value>] [-t node_18|python_310_definition|python_3.7_swimlane] [--skip-repo] [--vendor
301
+ <value>] [--product <value>] [--keywords <value>] [--description <value>] [--logoPath <value>] [--author <value>]
302
+ [--authorEmail <value>] [--homepage <value>] [-h]
303
+
304
+ FLAGS
305
+ -d, --directory=<value> [default: ./] root directory for where to store connectors, the connector directory will be
306
+ generated.
307
+ -h, --help Show CLI help.
308
+ -t, --template=<option> [default: python_310_definition] connector template to scaffold
309
+ <options: node_18|python_310_definition|python_3.7_swimlane>
310
+ --author=<value> Connector Author
311
+ --authorEmail=<value> Connector Author Email
312
+ --description=<value> Description (e.g. CrowdStrike Host Query API)
313
+ --homepage=<value> Connector Author Support URL
314
+ --keywords=<value> Enter keyword (Comma-Separated)
315
+ --logoPath=<value> URL or absolute path to logo file
316
+ --product=<value> Product (e.g. Falcon)
317
+ --skip-repo skips the repository creation process
318
+ --vendor=<value> Vendor (e.g. CrowdStrike)
319
+
320
+ DESCRIPTION
321
+ Scaffold a new connector
322
+ ```
323
+
324
+ ## `tsdk connector create-source`
325
+
326
+ Generates 11x source from 10x
327
+
328
+ ```
329
+ USAGE
330
+ $ tsdk connector create-source [-d <value>] [-h]
331
+
332
+ FLAGS
333
+ -d, --directory=<value> [default: ./] root directory of the repository.
334
+ -h, --help Show CLI help.
335
+
336
+ DESCRIPTION
337
+ Generates 11x source from 10x
338
+ ```
339
+
340
+ ## `tsdk connector logo`
341
+
342
+ Update a connector.
343
+
344
+ ```
345
+ USAGE
346
+ $ tsdk connector logo -p <value> [-d <value>] [-h]
347
+
348
+ FLAGS
349
+ -d, --directory=<value> [default: .] root directory of the connector folder.
350
+ -h, --help Show CLI help.
351
+ -p, --path=<value> (required) path or URL to product logo in PNG format.
352
+
353
+ DESCRIPTION
354
+ Update a connector.
355
+ ```
356
+
357
+ ## `tsdk connector save`
358
+
359
+ Save a docker image locally as .tar.gz
360
+
361
+ ```
362
+ USAGE
363
+ $ tsdk connector save -o <value> -i <value> [-d <value>] [-s] [-h]
364
+
365
+ FLAGS
366
+ -d, --directory=<value> [default: .] Root directory of the repo.
367
+ -h, --help Show CLI help.
368
+ -i, --image=<value> (required) image to save.
369
+ -o, --output=<value> (required) output file to where to store the image.
370
+ -s, --skip-pull skips pulling the image
371
+
372
+ DESCRIPTION
373
+ Save a docker image locally as .tar.gz
374
+ ```
375
+
376
+ ## `tsdk connector sign`
377
+
378
+ Builds a local docker image of the connector.
379
+
380
+ ```
381
+ USAGE
382
+ $ tsdk connector sign --image <value> --key-name <value> [-d <value>] [--signing-password <value>] [--save]
383
+ [--registry <value>] [-h]
384
+
385
+ FLAGS
386
+ -d, --directory=<value> [default: ./] root directory of the repository.
387
+ -h, --help Show CLI help.
388
+ --image=<value> (required) image name to sign
389
+ --key-name=<value> (required) name used for the key (default: username)
390
+ --registry=<value> [default: localhost:5000] registry to use for signing
391
+ --save saves docker image as tar in local directory.
392
+ --signing-password=<value> password used for the private key
393
+
394
+ DESCRIPTION
395
+ Builds a local docker image of the connector.
396
+ ```
397
+
398
+ ## `tsdk connector update`
399
+
400
+ Update a connector.
401
+
402
+ ```
403
+ USAGE
404
+ $ tsdk connector update [-d <value>] [-v <value>] [-f <value>] [-h]
405
+
406
+ FLAGS
407
+ -d, --directory=<value> [default: .] root directory of the connector folder.
408
+ -f, --manifest-path=<value> [default: /connector/connector.yaml] connector manifest path relative to directory.
409
+ -h, --help Show CLI help.
410
+ -v, --version=<value> new version of the connector.
411
+
412
+ DESCRIPTION
413
+ Update a connector.
414
+ ```
415
+
416
+ ## `tsdk connector validate`
417
+
418
+ Use to validate an integration
419
+
420
+ ```
421
+ USAGE
422
+ $ tsdk connector validate -c <value> [-h] [-i <value>] [--key <value> --signed] [-s] [-d <value>]
423
+
424
+ FLAGS
425
+ -c, --connector=<value> (required) [default: connector] connector to validate (relative to directory)
426
+ -d, --directory=<value> [default: ./] current directory to mount
427
+ -h, --help Show CLI help.
428
+ -i, --image=<value> image to use
429
+ -s, --skip-pull skips pulling the image
430
+ --key=<value> public key for verfication
431
+ --signed validates a signed connector
432
+
433
+ DESCRIPTION
434
+ Use to validate an integration
435
+ ```
436
+
437
+ ## `tsdk help [COMMAND]`
438
+
439
+ Display help for tsdk.
440
+
441
+ ```
442
+ USAGE
443
+ $ tsdk help [COMMAND] [-n]
444
+
445
+ ARGUMENTS
446
+ COMMAND Command to show help for.
447
+
448
+ FLAGS
449
+ -n, --nested-commands Include all nested commands in the output.
450
+
451
+ DESCRIPTION
452
+ Display help for tsdk.
453
+ ```
454
+
455
+ _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_
456
+
457
+ ## `tsdk plugins`
458
+
459
+ List installed plugins.
460
+
461
+ ```
462
+ USAGE
463
+ $ tsdk plugins [--core]
464
+
465
+ FLAGS
466
+ --core Show core plugins.
467
+
468
+ DESCRIPTION
469
+ List installed plugins.
470
+
471
+ EXAMPLES
472
+ $ tsdk plugins
473
+ ```
474
+
475
+ _See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.0/src/commands/plugins/index.ts)_
476
+
477
+ ## `tsdk plugins:install PLUGIN...`
478
+
479
+ Installs a plugin into the CLI.
480
+
481
+ ```
482
+ USAGE
483
+ $ tsdk plugins:install PLUGIN...
484
+
485
+ ARGUMENTS
486
+ PLUGIN Plugin to install.
487
+
488
+ FLAGS
489
+ -f, --force Run yarn install with force flag.
490
+ -h, --help Show CLI help.
491
+ -v, --verbose
492
+
493
+ DESCRIPTION
494
+ Installs a plugin into the CLI.
495
+ Can be installed from npm or a git url.
496
+
497
+ Installation of a user-installed plugin will override a core plugin.
498
+
499
+ e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
500
+ will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
501
+ the CLI without the need to patch and update the whole CLI.
502
+
503
+
504
+ ALIASES
505
+ $ tsdk plugins add
506
+
507
+ EXAMPLES
508
+ $ tsdk plugins:install myplugin
509
+
510
+ $ tsdk plugins:install https://github.com/someuser/someplugin
511
+
512
+ $ tsdk plugins:install someuser/someplugin
513
+ ```
514
+
515
+ ## `tsdk plugins:inspect PLUGIN...`
516
+
517
+ Displays installation properties of a plugin.
518
+
519
+ ```
520
+ USAGE
521
+ $ tsdk plugins:inspect PLUGIN...
522
+
523
+ ARGUMENTS
524
+ PLUGIN [default: .] Plugin to inspect.
525
+
526
+ FLAGS
527
+ -h, --help Show CLI help.
528
+ -v, --verbose
529
+
530
+ DESCRIPTION
531
+ Displays installation properties of a plugin.
532
+
533
+ EXAMPLES
534
+ $ tsdk plugins:inspect myplugin
535
+ ```
536
+
537
+ ## `tsdk plugins:install PLUGIN...`
538
+
539
+ Installs a plugin into the CLI.
540
+
541
+ ```
542
+ USAGE
543
+ $ tsdk plugins:install PLUGIN...
544
+
545
+ ARGUMENTS
546
+ PLUGIN Plugin to install.
547
+
548
+ FLAGS
549
+ -f, --force Run yarn install with force flag.
550
+ -h, --help Show CLI help.
551
+ -v, --verbose
552
+
553
+ DESCRIPTION
554
+ Installs a plugin into the CLI.
555
+ Can be installed from npm or a git url.
556
+
557
+ Installation of a user-installed plugin will override a core plugin.
558
+
559
+ e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
560
+ will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
561
+ the CLI without the need to patch and update the whole CLI.
562
+
563
+
564
+ ALIASES
565
+ $ tsdk plugins add
566
+
567
+ EXAMPLES
568
+ $ tsdk plugins:install myplugin
569
+
570
+ $ tsdk plugins:install https://github.com/someuser/someplugin
571
+
572
+ $ tsdk plugins:install someuser/someplugin
573
+ ```
574
+
575
+ ## `tsdk plugins:link PLUGIN`
576
+
577
+ Links a plugin into the CLI for development.
578
+
579
+ ```
580
+ USAGE
581
+ $ tsdk plugins:link PLUGIN
582
+
583
+ ARGUMENTS
584
+ PATH [default: .] path to plugin
585
+
586
+ FLAGS
587
+ -h, --help Show CLI help.
588
+ -v, --verbose
589
+
590
+ DESCRIPTION
591
+ Links a plugin into the CLI for development.
592
+ Installation of a linked plugin will override a user-installed or core plugin.
593
+
594
+ e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
595
+ command will override the user-installed or core plugin implementation. This is useful for development work.
596
+
597
+
598
+ EXAMPLES
599
+ $ tsdk plugins:link myplugin
600
+ ```
601
+
602
+ ## `tsdk plugins:uninstall PLUGIN...`
603
+
604
+ Removes a plugin from the CLI.
605
+
606
+ ```
607
+ USAGE
608
+ $ tsdk plugins:uninstall PLUGIN...
609
+
610
+ ARGUMENTS
611
+ PLUGIN plugin to uninstall
612
+
613
+ FLAGS
614
+ -h, --help Show CLI help.
615
+ -v, --verbose
616
+
617
+ DESCRIPTION
618
+ Removes a plugin from the CLI.
619
+
620
+ ALIASES
621
+ $ tsdk plugins unlink
622
+ $ tsdk plugins remove
623
+ ```
624
+
625
+ ## `tsdk plugins:uninstall PLUGIN...`
626
+
627
+ Removes a plugin from the CLI.
628
+
629
+ ```
630
+ USAGE
631
+ $ tsdk plugins:uninstall PLUGIN...
632
+
633
+ ARGUMENTS
634
+ PLUGIN plugin to uninstall
635
+
636
+ FLAGS
637
+ -h, --help Show CLI help.
638
+ -v, --verbose
639
+
640
+ DESCRIPTION
641
+ Removes a plugin from the CLI.
642
+
643
+ ALIASES
644
+ $ tsdk plugins unlink
645
+ $ tsdk plugins remove
646
+ ```
647
+
648
+ ## `tsdk plugins:uninstall PLUGIN...`
649
+
650
+ Removes a plugin from the CLI.
651
+
652
+ ```
653
+ USAGE
654
+ $ tsdk plugins:uninstall PLUGIN...
655
+
656
+ ARGUMENTS
657
+ PLUGIN plugin to uninstall
658
+
659
+ FLAGS
660
+ -h, --help Show CLI help.
661
+ -v, --verbose
662
+
663
+ DESCRIPTION
664
+ Removes a plugin from the CLI.
665
+
666
+ ALIASES
667
+ $ tsdk plugins unlink
668
+ $ tsdk plugins remove
669
+ ```
670
+
671
+ ## `tsdk plugins update`
672
+
673
+ Update installed plugins.
674
+
675
+ ```
676
+ USAGE
677
+ $ tsdk plugins update [-h] [-v]
678
+
679
+ FLAGS
680
+ -h, --help Show CLI help.
681
+ -v, --verbose
682
+
683
+ DESCRIPTION
684
+ Update installed plugins.
685
+ ```
686
+
687
+ ## `tsdk turbine connector keys generate`
688
+
689
+ Use to generate and store signing keys in Turbine
690
+
691
+ ```
692
+ USAGE
693
+ $ tsdk turbine connector keys generate --turbine-url <value> [-u <value>] [-p <value>] [--signing-password <value>] [--key-name
694
+ <value>] [-h]
695
+
696
+ FLAGS
697
+ -h, --help Show CLI help.
698
+ -p, --password=<value> Turbine password
699
+ -u, --username=<value> Turbine username
700
+ --key-name=<value> name used for the key (default: username)
701
+ --signing-password=<value> password used for the private key
702
+ --turbine-url=<value> (required) the url of the turbine instance [https://turbine.acme.com]
703
+
704
+ DESCRIPTION
705
+ Use to generate and store signing keys in Turbine
706
+ ```
707
+
708
+ ## `tsdk turbine connector keys list local`
709
+
710
+ Use to list local keys
711
+
712
+ ```
713
+ USAGE
714
+ $ tsdk turbine connector keys list local [-h]
715
+
716
+ FLAGS
717
+ -h, --help Show CLI help.
718
+
719
+ DESCRIPTION
720
+ Use to list local keys
721
+ ```
722
+
723
+ ## `tsdk turbine connector keys list remote`
724
+
725
+ Use to list remote keys
726
+
727
+ ```
728
+ USAGE
729
+ $ tsdk turbine connector keys list remote --turbine-url <value> [-u <value>] [-p <value>] [-h]
730
+
731
+ FLAGS
732
+ -h, --help Show CLI help.
733
+ -p, --password=<value> Turbine password
734
+ -u, --username=<value> Turbine username
735
+ --turbine-url=<value> (required) the url of the turbine instance [https://turbine.acme.com]
736
+
737
+ DESCRIPTION
738
+ Use to list remote keys
739
+ ```
740
+
741
+ ## `tsdk turbine connector push`
742
+
743
+ Use to push an integration to Turbine
744
+
745
+ ```
746
+ USAGE
747
+ $ tsdk turbine connector push -f <value> --turbine-url <value> [-u <value>] [-p <value>] [-h]
748
+
749
+ FLAGS
750
+ -f, --file=<value> (required) path of the file to be uploaded to Turbine
751
+ -h, --help Show CLI help.
752
+ -p, --password=<value> Turbine password
753
+ -u, --username=<value> Turbine username
754
+ --turbine-url=<value> (required) the url of the turbine instance [https://turbine.acme.com]
755
+
756
+ DESCRIPTION
757
+ Use to push an integration to Turbine
758
+ ```
759
+
760
+ ## `tsdk turbine login`
761
+
762
+ Use to login to Turbine
763
+
764
+ ```
765
+ USAGE
766
+ $ tsdk turbine login --turbine-url <value> [-u <value>] [-p <value>] [-h]
767
+
768
+ FLAGS
769
+ -h, --help Show CLI help.
770
+ -p, --password=<value> Turbine password
771
+ -u, --username=<value> Turbine username
772
+ --turbine-url=<value> (required) the url of the turbine instance [https://turbine.acme.com]
773
+
774
+ DESCRIPTION
775
+ Use to login to Turbine
776
+ ```
777
+
778
+ ## `tsdk version`
779
+
780
+ ```
781
+ USAGE
782
+ $ tsdk version
783
+ ```
784
+
785
+ _See code: [@oclif/plugin-version](https://github.com/oclif/plugin-version/blob/v1.0.4/src/commands/version.ts)_
786
+
787
+ ## `tsdk which`
788
+
789
+ Show which plugin a command is in.
790
+
791
+ ```
792
+ USAGE
793
+ $ tsdk which
794
+
795
+ DESCRIPTION
796
+ Show which plugin a command is in.
797
+ ```
798
+
799
+ _See code: [@oclif/plugin-which](https://github.com/oclif/plugin-which/blob/v2.1.0/src/commands/which.ts)_
800
+ <!-- commandsstop -->