@5minds/node-red-contrib-processcube 1.7.6-feature-187c30-m6ul3qmy → 1.7.7-develop-49767d-m6uiacdt
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.
- package/externaltask-input.html +1 -1
- package/package.json +1 -2
- package/process-terminate.html +1 -1
- package/processdefinition-query.html +7 -123
- package/wait-for-usertask.html +3 -6
- package/check-authorization.html +0 -145
- package/check-authorization.js +0 -27
- package/examples/Check-Authorization-Sample.json +0 -109
package/externaltask-input.html
CHANGED
@@ -72,7 +72,7 @@ the connected ProcessCube Engine for processing.
|
|
72
72
|
## Configs
|
73
73
|
|
74
74
|
: name (string) : The name of the node
|
75
|
-
: engine (
|
75
|
+
: engine (string) : The ProcessCube Engine to connect to
|
76
76
|
: topic (string) : The topic of the external task
|
77
77
|
: workerConfig (object) : The configuration for the worker
|
78
78
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@5minds/node-red-contrib-processcube",
|
3
|
-
"version": "1.7.
|
3
|
+
"version": "1.7.7-develop-49767d-m6uiacdt",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "Node-RED nodes for ProcessCube",
|
6
6
|
"scripts": {
|
@@ -35,7 +35,6 @@
|
|
35
35
|
"node-red": {
|
36
36
|
"version": ">=3.1.9",
|
37
37
|
"nodes": {
|
38
|
-
"checkAuthorization": "check-authorization.js",
|
39
38
|
"EndEventFinishedListener": "endevent-finished-listener.js",
|
40
39
|
"externaltaskInput": "externaltask-input.js",
|
41
40
|
"externaltaskOutput": "externaltask-output.js",
|
package/process-terminate.html
CHANGED
@@ -44,19 +44,10 @@
|
|
44
44
|
<label for="node-input-query"><i class="fa fa-tag"></i> Query</label>
|
45
45
|
<input type="text" id="node-input-query" />
|
46
46
|
</div>
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
<div>
|
52
|
-
<input
|
53
|
-
type="checkbox"
|
54
|
-
checked
|
55
|
-
id="node-input-models_only"
|
56
|
-
style="display: inline-block; width: auto; margin: 0px 0px 0px 4px;"
|
57
|
-
/>
|
58
|
-
<label style="width:auto" for="node-input-models_only">Only send models as result.</label>
|
59
|
-
</div>
|
47
|
+
|
48
|
+
<div class="form-row" style="margin-bottom: 3px;">
|
49
|
+
<input type="checkbox" checked id="node-input-models_only" style="display: inline-block; width: auto; vertical-align: top; margin-left: 30px; margin-right: 5px;">
|
50
|
+
<label style="width:auto" for="node-input-models_only">Only send models as result</label>
|
60
51
|
</div>
|
61
52
|
</script>
|
62
53
|
|
@@ -81,122 +72,15 @@ Only models can be queried by setting the `models_only` flag.
|
|
81
72
|
|
82
73
|
**Summary**:
|
83
74
|
|
84
|
-
**Description**: Filter result for '
|
75
|
+
**Description**: Filter result for 'ProcessDefinitions Query'
|
85
76
|
|
86
77
|
#### Parameters:
|
87
78
|
- Name: `offset` Required: `false`
|
88
79
|
- Type: number
|
89
|
-
- Description: The index of the first
|
80
|
+
- Description: The index of the first ProcessDefinition to include.
|
90
81
|
- Name: `limit` Required: `false`
|
91
82
|
- Type: number
|
92
|
-
- Description: The maximum number of
|
93
|
-
- Name: `correlationId` Required: `false`
|
94
|
-
- Type: Array<string> | string | SearchQuery
|
95
|
-
- string: myCorrelationId
|
96
|
-
- Array<string>: myCorrelationId1,myCorrelationId2
|
97
|
-
- object:
|
98
|
-
- Description: Filter by the CorrelationId of the ProcessInstances.
|
99
|
-
- Name: `processInstanceId` Required: ``
|
100
|
-
- Type: Array<string> | string | SearchQuery
|
101
|
-
- string: myProcessInstance_12345678
|
102
|
-
- Array<string>: myProcessInstance_12345678,myProcessInstance_87654321
|
103
|
-
- object:
|
104
|
-
- Description: Filter by the ID of the ProcessInstances.
|
105
|
-
- Name: `processDefinitionId` Required: ``
|
106
|
-
- Type: Array<string> | string | SearchQuery
|
107
|
-
- string: myProcess_12345678
|
108
|
-
- Array<string>: myProcess_12345678,myProcess_87654321
|
109
|
-
- object:
|
110
|
-
- Description: Filter by the ID of the ProcessDefinition that the ProcessInstances belong to.
|
111
|
-
- Name: `processModelId` Required: ``
|
112
|
-
- Type: Array<string> | string | SearchQuery
|
113
|
-
- string: myProcessModel_12345678
|
114
|
-
- Array<string>: myProcessModel_12345678,myProcessModel_87654321
|
115
|
-
- object:
|
116
|
-
- Description: Filter by the ID of the ProcessModel that the ProcessInstances belong to.
|
117
|
-
- Name: `processModelName` Required: ``
|
118
|
-
- Type: Array<string> | string | SearchQuery
|
119
|
-
- string: My Process Model
|
120
|
-
- Array<string>: My Process Model,My Other Process Model
|
121
|
-
- object:
|
122
|
-
- Description: Filter by the name of the ProcessModel that the ProcessInstances belong to.
|
123
|
-
- Name: `processModelHash` Required: ``
|
124
|
-
- Type: Array<string> | string | SearchQuery
|
125
|
-
- string: 12345678
|
126
|
-
- Array<string>: 12345678,87654321
|
127
|
-
- object:
|
128
|
-
- Description: Filter by the hash of the ProcessModel that the ProcessInstances belong to.
|
129
|
-
- Name: `ownerId` Required: ``
|
130
|
-
- Type: Array<string> | string | SearchQuery
|
131
|
-
- string: 12345678
|
132
|
-
- Array<string>: 12345678,87654321
|
133
|
-
- object:
|
134
|
-
- Description: Filter by the ID of the User that owns the ProcessInstances.
|
135
|
-
- Name: `state` Required: ``
|
136
|
-
- Type: Array<string> | string | SearchQuery
|
137
|
-
- string: running
|
138
|
-
- Array<string>: running,finished
|
139
|
-
- object:
|
140
|
-
- Description: Filter by the state of the ProcessInstances.
|
141
|
-
- Name: `parentProcessInstanceId` Required: ``
|
142
|
-
- Type: Array<string> | string | SearchQuery
|
143
|
-
- string: myParentProcessInstance_12345678
|
144
|
-
- Array<string>: myParentProcessInstance_12345678,myParentProcessInstance_87654321
|
145
|
-
- object:
|
146
|
-
- Description: Filter by the ID of the parent ProcessInstance.
|
147
|
-
- Name: `embeddedProcessModelId` Required: ``
|
148
|
-
- Type: Array<string> | string | SearchQuery
|
149
|
-
- string: myModel1
|
150
|
-
- Array<string>: myModel1,myModel2
|
151
|
-
- object:
|
152
|
-
- Description: Filter by the ID of the embedded process model.
|
153
|
-
- Name: `terminatedByUserId` Required: ``
|
154
|
-
- Type: Array<string> | string | SearchQuery
|
155
|
-
- string: 12345678
|
156
|
-
- Array<string>: 12345678,87654321
|
157
|
-
- object:
|
158
|
-
- Description: Filter by the ID of the User that terminated the ProcessInstances.
|
159
|
-
- Name: `createdBefore` Required: ``
|
160
|
-
- Type: string
|
161
|
-
- Description: The maximum created date of the ProcessInstances to include in the results.
|
162
|
-
- Name: `createdAt` Required: ``
|
163
|
-
- Type: Array<string> | string
|
164
|
-
- string: 2021-01-01T00:00:00.000Z
|
165
|
-
- array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
|
166
|
-
- Description: The minimum created date of the ProcessInstances to include in the results.
|
167
|
-
- Name: `createdAfter` Required: ``
|
168
|
-
- Type: string
|
169
|
-
- Description: The minimum created date of the ProcessInstances to include in the results.
|
170
|
-
- Name: `updatedBefore` Required: ``
|
171
|
-
- Type: string
|
172
|
-
- Description: The maximum updated date of the ProcessInstances to include in the results.
|
173
|
-
- Name: `updatedAt` Required: ``
|
174
|
-
- Type: Array<string> | string
|
175
|
-
- string: 2021-01-01T00:00:00.000Z
|
176
|
-
- array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
|
177
|
-
- Description: The exact updated date of the ProcessInstances to include in the results.
|
178
|
-
- Name: `updatedAfter` Required: ``
|
179
|
-
- Type: string
|
180
|
-
- Description: The minimum updated date of the ProcessInstances to include in the results.
|
181
|
-
- Name: `finishedBefore` Required: ``
|
182
|
-
- Type: string
|
183
|
-
- Description: The maximum finished date of the ProcessInstances to include in the results.
|
184
|
-
- Name: `finishedAt` Required: ``
|
185
|
-
- Type: Array<string> | string
|
186
|
-
- string: 2021-01-01T00:00:00.000Z
|
187
|
-
- array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
|
188
|
-
- Description: The exact finished date of the ProcessInstances to include in the results.
|
189
|
-
- Name: `finishedAfter` Required: ``
|
190
|
-
- Type: string
|
191
|
-
- Description: The minimum finished date of the ProcessInstances to include in the results.
|
192
|
-
- Name: `triggeredByFlowNodeInstance` Required: ``
|
193
|
-
- Type: Array<string> | string | SearchQuery
|
194
|
-
- string: myFlowNodeInstance_12345678
|
195
|
-
- array: myFlowNodeInstance_12345678,myFlowNodeInstance_87654321
|
196
|
-
- object:
|
197
|
-
- Description: Filter by the ID of the FlowNodeInstance that triggered the ProcessInstance.
|
198
|
-
|
199
|
-
|
83
|
+
- Description: The maximum number of ProcessDefinitions to include.
|
200
84
|
### References
|
201
85
|
|
202
86
|
- [The ProcessCube© Developer Network](https://processcube.io) - All documentation for the ProcessCube© platform
|
package/wait-for-usertask.html
CHANGED
@@ -45,12 +45,9 @@
|
|
45
45
|
<label for="node-input-query"><i class="fa fa-tag"></i> Query</label>
|
46
46
|
<input type="text" id="node-input-query">
|
47
47
|
</div>
|
48
|
-
<div class="form-row" style="
|
49
|
-
<
|
50
|
-
<
|
51
|
-
<input type="checkbox" checked id="node-input-only_for_new" style="display: inline-block; width: auto; margin: 0px 0px 0px 4px;">
|
52
|
-
<label style="width:auto" for="node-input-multisend">Trigger only for new user task or *checked* also for old ones?</label>
|
53
|
-
</div>
|
48
|
+
<div class="form-row" style="margin-bottom: 3px;">
|
49
|
+
<input type="checkbox" checked id="node-input-only_for_new" style="display: inline-block; width: auto; vertical-align: top; margin-left: 30px; margin-right: 5px;">
|
50
|
+
<label style="width:auto" for="node-input-multisend">Wait only for for new usertasks</label>
|
54
51
|
</div>
|
55
52
|
</script>
|
56
53
|
|
package/check-authorization.html
DELETED
@@ -1,145 +0,0 @@
|
|
1
|
-
<script type="text/javascript">
|
2
|
-
RED.nodes.registerType('check-authorization', {
|
3
|
-
category: 'ProcessCube',
|
4
|
-
color: '#02AFD6',
|
5
|
-
defaults: {
|
6
|
-
name: { value: '' },
|
7
|
-
engine: { value: '', type: 'processcube-engine-config' },
|
8
|
-
options: {
|
9
|
-
value: [{ claim: '' }],
|
10
|
-
},
|
11
|
-
},
|
12
|
-
inputs: 1,
|
13
|
-
outputs: 2,
|
14
|
-
outputLabels: function (index) {
|
15
|
-
if (index === 0) {
|
16
|
-
return 'Authorized'
|
17
|
-
} else {
|
18
|
-
return 'Unauthorized'
|
19
|
-
}
|
20
|
-
},
|
21
|
-
icon: 'font-awesome/fa-sign-in',
|
22
|
-
label: function () {
|
23
|
-
return this.name || 'check-authorization';
|
24
|
-
},
|
25
|
-
oneditprepare: function () {
|
26
|
-
$('#node-input-size').elementSizer({
|
27
|
-
width: '#node-input-width',
|
28
|
-
height: '#node-input-height',
|
29
|
-
group: '#node-input-group',
|
30
|
-
});
|
31
|
-
|
32
|
-
function generateOption(i, option) {
|
33
|
-
const container = $('<li/>', {
|
34
|
-
style: 'background: var(--red-ui-secondary-background, #fff); margin:0; padding:8px 0px 0px;',
|
35
|
-
});
|
36
|
-
|
37
|
-
const row = $('<div/>').appendTo(container);
|
38
|
-
|
39
|
-
$('<input/>', {
|
40
|
-
class: 'node-input-option-claim',
|
41
|
-
type: 'text',
|
42
|
-
style: 'margin-left:7px; width:calc(85%);',
|
43
|
-
placeholder: 'Claim',
|
44
|
-
value: option.claim,
|
45
|
-
})
|
46
|
-
.appendTo(row)
|
47
|
-
.typedInput({
|
48
|
-
type: 'str',
|
49
|
-
types: ['str'],
|
50
|
-
});
|
51
|
-
|
52
|
-
// Create delete button for the option
|
53
|
-
const finalSpan = $('<span/>', {
|
54
|
-
style: 'float:right; margin-right:8px;',
|
55
|
-
}).appendTo(row);
|
56
|
-
const deleteButton = $('<a/>', {
|
57
|
-
href: '#',
|
58
|
-
class: 'editor-button editor-button-small',
|
59
|
-
style: 'margin-top:7px; margin-left:5px;',
|
60
|
-
}).appendTo(finalSpan);
|
61
|
-
$('<i/>', { class: 'fa fa-remove' }).appendTo(deleteButton);
|
62
|
-
|
63
|
-
deleteButton.click(function () {
|
64
|
-
container.css({
|
65
|
-
background: 'var(--red-ui-secondary-background-inactive, #fee)',
|
66
|
-
});
|
67
|
-
container.fadeOut(300, function () {
|
68
|
-
$(this).remove();
|
69
|
-
});
|
70
|
-
});
|
71
|
-
|
72
|
-
$('#node-input-option-container').append(container);
|
73
|
-
}
|
74
|
-
|
75
|
-
$('#node-input-add-option').click(function () {
|
76
|
-
generateOption($('#node-input-option-container').children().length + 1, {});
|
77
|
-
$('#node-input-option-container-div').scrollTop(
|
78
|
-
$('#node-input-option-container-div').get(0).scrollHeight
|
79
|
-
);
|
80
|
-
});
|
81
|
-
|
82
|
-
for (let i = 0; i < this.options.length; i++) {
|
83
|
-
const option = this.options[i];
|
84
|
-
generateOption(i + 1, option);
|
85
|
-
}
|
86
|
-
|
87
|
-
$('#node-input-option-container').sortable({
|
88
|
-
axis: 'y',
|
89
|
-
handle: '.node-input-option-handle',
|
90
|
-
cursor: 'move',
|
91
|
-
});
|
92
|
-
},
|
93
|
-
oneditsave: function () {
|
94
|
-
const options = $('#node-input-option-container').children();
|
95
|
-
const node = this;
|
96
|
-
node.options = [];
|
97
|
-
options.each(function (i) {
|
98
|
-
const option = $(this);
|
99
|
-
const o = {
|
100
|
-
claim: option.find('.node-input-option-claim').val(),
|
101
|
-
};
|
102
|
-
|
103
|
-
node.options.push(o);
|
104
|
-
});
|
105
|
-
},
|
106
|
-
});
|
107
|
-
</script>
|
108
|
-
|
109
|
-
<script type="text/html" data-template-name="check-authorization">
|
110
|
-
<div class="form-row">
|
111
|
-
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
112
|
-
<input type="text" id="node-input-name" placeholder="Name" />
|
113
|
-
</div>
|
114
|
-
|
115
|
-
<div class="form-row">
|
116
|
-
<label for="node-input-engine"><i class="fa fa-tag"></i> Engine-URL</label>
|
117
|
-
<input type="text" id="node-input-engine" placeholder="Engine-URL" />
|
118
|
-
</div>
|
119
|
-
|
120
|
-
<div class="form-row form-row-flex node-input-option-container-row" style="margin-bottom: 0px;width: 100%">
|
121
|
-
<label for="node-input-width" style="vertical-align:top"><i class="fa fa-list-alt"></i> Claims</label>
|
122
|
-
<div id="node-input-option-container-div" style="box-sizing:border-box; border-radius:5px; height:257px; padding:5px; border:1px solid var(--red-ui-form-input-border-color, #ccc); overflow-y:scroll; display:inline-block; width: 70%;">
|
123
|
-
<ol id="node-input-option-container" style="list-style-type:none; margin:0;"></ol>
|
124
|
-
</div>
|
125
|
-
</div>
|
126
|
-
<!-- Add Claim Button -->
|
127
|
-
<div class="form-row">
|
128
|
-
<a href="#" class="editor-button editor-button-small" id="node-input-add-option" style="margin-top:4px; margin-left:103px;"><i class="fa fa-plus"></i> <span>action</span></a>
|
129
|
-
</div>
|
130
|
-
</script>
|
131
|
-
|
132
|
-
<script type="text/markdown" data-help-name="check-authorization">
|
133
|
-
A Node that checks if a user has the specified claims
|
134
|
-
|
135
|
-
## Configs
|
136
|
-
|
137
|
-
: name (string): name of the node
|
138
|
-
: engine (engine-node): the engine to connect to
|
139
|
-
: claims (list of strings): the claims the user needs to be authorized
|
140
|
-
|
141
|
-
### References
|
142
|
-
|
143
|
-
- [The ProcessCube© Developer Network](https://processcube.io) - All documentation for the ProcessCube© platform
|
144
|
-
- [ProcessCube© LowCode Integration](https://processcube.io/docs/node-red) - LowCode integration in ProcessCube©
|
145
|
-
</script>
|
package/check-authorization.js
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
module.exports = function (RED) {
|
2
|
-
function CheckAuthorization(config) {
|
3
|
-
RED.nodes.createNode(this, config);
|
4
|
-
const node = this;
|
5
|
-
|
6
|
-
const claimsToCheck = (config.options || []).map((option) => option.claim);
|
7
|
-
|
8
|
-
node.on('input', function (msg) {
|
9
|
-
if (!msg._client || !msg._client.user || typeof msg._client.user.claims !== "object") {
|
10
|
-
node.error("Invalid client claims in the input message", msg);
|
11
|
-
return;
|
12
|
-
}
|
13
|
-
|
14
|
-
const userClaims = msg._client.user.claims;
|
15
|
-
|
16
|
-
const isAuthorized = claimsToCheck.every((claim) => claim in userClaims);
|
17
|
-
|
18
|
-
if (isAuthorized) {
|
19
|
-
node.send([msg, undefined]);
|
20
|
-
} else {
|
21
|
-
node.send([undefined, msg]);
|
22
|
-
}
|
23
|
-
});
|
24
|
-
}
|
25
|
-
|
26
|
-
RED.nodes.registerType('check-authorization', CheckAuthorization);
|
27
|
-
};
|
@@ -1,109 +0,0 @@
|
|
1
|
-
[
|
2
|
-
{
|
3
|
-
"id": "3cb65f6178d62207",
|
4
|
-
"type": "tab",
|
5
|
-
"label": "Flow 1",
|
6
|
-
"disabled": false,
|
7
|
-
"info": "",
|
8
|
-
"env": []
|
9
|
-
},
|
10
|
-
{
|
11
|
-
"id": "466e6c33e4389342",
|
12
|
-
"type": "processcube-engine-config",
|
13
|
-
"name": "",
|
14
|
-
"url": "http://engine:8000",
|
15
|
-
"urlType": "str",
|
16
|
-
"clientId": "external_task_worker",
|
17
|
-
"clientIdType": "str",
|
18
|
-
"clientSecret": "external_task_worker_secret",
|
19
|
-
"clientSecretType": "str"
|
20
|
-
},
|
21
|
-
{
|
22
|
-
"id": "bf6699e3fcef19f7",
|
23
|
-
"type": "check-authorization",
|
24
|
-
"z": "3cb65f6178d62207",
|
25
|
-
"name": "",
|
26
|
-
"engine": "466e6c33e4389342",
|
27
|
-
"options": [
|
28
|
-
{
|
29
|
-
"claim": "gender"
|
30
|
-
},
|
31
|
-
{
|
32
|
-
"claim": "notavalidclaim"
|
33
|
-
}
|
34
|
-
],
|
35
|
-
"x": 460,
|
36
|
-
"y": 280,
|
37
|
-
"wires": [
|
38
|
-
[
|
39
|
-
"5d331a2c7a214465"
|
40
|
-
],
|
41
|
-
[
|
42
|
-
"931f5bf8a9c528cd"
|
43
|
-
]
|
44
|
-
]
|
45
|
-
},
|
46
|
-
{
|
47
|
-
"id": "5d331a2c7a214465",
|
48
|
-
"type": "debug",
|
49
|
-
"z": "3cb65f6178d62207",
|
50
|
-
"name": "debug 1",
|
51
|
-
"active": true,
|
52
|
-
"tosidebar": true,
|
53
|
-
"console": false,
|
54
|
-
"tostatus": false,
|
55
|
-
"complete": "payload",
|
56
|
-
"targetType": "msg",
|
57
|
-
"statusVal": "",
|
58
|
-
"statusType": "auto",
|
59
|
-
"x": 660,
|
60
|
-
"y": 260,
|
61
|
-
"wires": []
|
62
|
-
},
|
63
|
-
{
|
64
|
-
"id": "e3c38e3f6c38f58d",
|
65
|
-
"type": "inject",
|
66
|
-
"z": "3cb65f6178d62207",
|
67
|
-
"name": "",
|
68
|
-
"props": [
|
69
|
-
{
|
70
|
-
"p": "_client",
|
71
|
-
"v": "{\"user\":{\"id\":\"e54f73d2-b003-4454-ae50-dbd7c41e8bff\",\"displayName\":\"admin\",\"username\":\"admin\",\"profileUrl\":\"\",\"emails\":[{\"value\":\"admin@admin.de\"}],\"claims\":{\"sub\":\"e54f73d2-b003-4454-ae50-dbd7c41e8bff\",\"company\":\"\",\"locale\":\"\",\"website\":\"\",\"picture\":\"\",\"gender\":\"\",\"family_name\":\"\",\"zoneinfo\":\"\",\"preferred_username\":\"\",\"name\":\"admin\",\"nickname\":\"\",\"email\":\"admin@admin.de\",\"middle_name\":\"\",\"given_name\":\"\",\"updated_at\":null,\"email_verified\":true,\"birthdate\":\"\",\"profile\":\"\",\"jti\":\"zvImE0Nm96kxGJEjbyrh2\",\"iat\":1738847665,\"exp\":1738851265,\"scope\":\"openid profile email lanes\",\"client_id\":\"PassportTestClient\",\"iss\":\"http://authority:11560/\",\"aud\":\"PassportTestClient\"}}}",
|
72
|
-
"vt": "json"
|
73
|
-
},
|
74
|
-
{
|
75
|
-
"p": "payload"
|
76
|
-
}
|
77
|
-
],
|
78
|
-
"repeat": "",
|
79
|
-
"crontab": "",
|
80
|
-
"once": false,
|
81
|
-
"onceDelay": 0.1,
|
82
|
-
"topic": "",
|
83
|
-
"payload": "user data",
|
84
|
-
"payloadType": "str",
|
85
|
-
"x": 240,
|
86
|
-
"y": 280,
|
87
|
-
"wires": [
|
88
|
-
[
|
89
|
-
"bf6699e3fcef19f7"
|
90
|
-
]
|
91
|
-
]
|
92
|
-
},
|
93
|
-
{
|
94
|
-
"id": "931f5bf8a9c528cd",
|
95
|
-
"type": "debug",
|
96
|
-
"z": "3cb65f6178d62207",
|
97
|
-
"name": "debug 2",
|
98
|
-
"active": true,
|
99
|
-
"tosidebar": true,
|
100
|
-
"console": false,
|
101
|
-
"tostatus": false,
|
102
|
-
"complete": "false",
|
103
|
-
"statusVal": "",
|
104
|
-
"statusType": "auto",
|
105
|
-
"x": 660,
|
106
|
-
"y": 300,
|
107
|
-
"wires": []
|
108
|
-
}
|
109
|
-
]
|