@5minds/node-red-contrib-processcube 1.5.6 → 1.5.7-feature-ff1077-m3q69zu4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,6 @@
1
+ Docu anpassen! Was ist zu tun?
2
+
3
+ 1. In der Datei `doc_generator/generator_with_swagger.js` Zeile 10 ggf. anpassen.
4
+ 2. `node generator_with_swagger.js` ausführen.
5
+ 3. Die Dateien in doc_generator/outputs/ in die Nodes *.html kopieren.
6
+
@@ -0,0 +1,121 @@
1
+ ### Query fields
2
+
3
+ **Summary**:
4
+
5
+ **Description**: Gets all ProcessInstances that match the given query.
6
+
7
+ #### Parameters:
8
+ - Name: `offset` Required: `false`
9
+ - Type: number
10
+ - Description: The index of the first ProcessInstance to include in the result set.
11
+ - Name: `limit` Required: `false`
12
+ - Type: number
13
+ - Description: The maximum number of ProcessInstances to return.
14
+ - Name: `correlationId` Required: `false`
15
+ - Type: Array<string> | string | SearchQuery
16
+ - string: myCorrelationId
17
+ - Array<string>: myCorrelationId1,myCorrelationId2
18
+ - object:
19
+ - Description: Filter by the CorrelationId of the ProcessInstances.
20
+ - Name: `processInstanceId` Required: ``
21
+ - Type: Array<string> | string | SearchQuery
22
+ - string: myProcessInstance_12345678
23
+ - Array<string>: myProcessInstance_12345678,myProcessInstance_87654321
24
+ - object:
25
+ - Description: Filter by the ID of the ProcessInstances.
26
+ - Name: `processDefinitionId` Required: ``
27
+ - Type: Array<string> | string | SearchQuery
28
+ - string: myProcess_12345678
29
+ - Array<string>: myProcess_12345678,myProcess_87654321
30
+ - object:
31
+ - Description: Filter by the ID of the ProcessDefinition that the ProcessInstances belong to.
32
+ - Name: `processModelId` Required: ``
33
+ - Type: Array<string> | string | SearchQuery
34
+ - string: myProcessModel_12345678
35
+ - Array<string>: myProcessModel_12345678,myProcessModel_87654321
36
+ - object:
37
+ - Description: Filter by the ID of the ProcessModel that the ProcessInstances belong to.
38
+ - Name: `processModelName` Required: ``
39
+ - Type: Array<string> | string | SearchQuery
40
+ - string: My Process Model
41
+ - Array<string>: My Process Model,My Other Process Model
42
+ - object:
43
+ - Description: Filter by the name of the ProcessModel that the ProcessInstances belong to.
44
+ - Name: `processModelHash` Required: ``
45
+ - Type: Array<string> | string | SearchQuery
46
+ - string: 12345678
47
+ - Array<string>: 12345678,87654321
48
+ - object:
49
+ - Description: Filter by the hash of the ProcessModel that the ProcessInstances belong to.
50
+ - Name: `ownerId` Required: ``
51
+ - Type: Array<string> | string | SearchQuery
52
+ - string: 12345678
53
+ - Array<string>: 12345678,87654321
54
+ - object:
55
+ - Description: Filter by the ID of the User that owns the ProcessInstances.
56
+ - Name: `state` Required: ``
57
+ - Type: Array<string> | string | SearchQuery
58
+ - string: running
59
+ - Array<string>: running,finished
60
+ - object:
61
+ - Description: Filter by the state of the ProcessInstances.
62
+ - Name: `parentProcessInstanceId` Required: ``
63
+ - Type: Array<string> | string | SearchQuery
64
+ - string: myParentProcessInstance_12345678
65
+ - Array<string>: myParentProcessInstance_12345678,myParentProcessInstance_87654321
66
+ - object:
67
+ - Description: Filter by the ID of the parent ProcessInstance.
68
+ - Name: `embeddedProcessModelId` Required: ``
69
+ - Type: Array<string> | string | SearchQuery
70
+ - string: myModel1
71
+ - Array<string>: myModel1,myModel2
72
+ - object:
73
+ - Description: Filter by the ID of the embedded process model.
74
+ - Name: `terminatedByUserId` Required: ``
75
+ - Type: Array<string> | string | SearchQuery
76
+ - string: 12345678
77
+ - Array<string>: 12345678,87654321
78
+ - object:
79
+ - Description: Filter by the ID of the User that terminated the ProcessInstances.
80
+ - Name: `createdBefore` Required: ``
81
+ - Type: string
82
+ - Description: The maximum created date of the ProcessInstances to include in the results.
83
+ - Name: `createdAt` Required: ``
84
+ - Type: Array<string> | string
85
+ - string: 2021-01-01T00:00:00.000Z
86
+ - array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
87
+ - Description: The minimum created date of the ProcessInstances to include in the results.
88
+ - Name: `createdAfter` Required: ``
89
+ - Type: string
90
+ - Description: The minimum created date of the ProcessInstances to include in the results.
91
+ - Name: `updatedBefore` Required: ``
92
+ - Type: string
93
+ - Description: The maximum updated date of the ProcessInstances to include in the results.
94
+ - Name: `updatedAt` Required: ``
95
+ - Type: Array<string> | string
96
+ - string: 2021-01-01T00:00:00.000Z
97
+ - array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
98
+ - Description: The exact updated date of the ProcessInstances to include in the results.
99
+ - Name: `updatedAfter` Required: ``
100
+ - Type: string
101
+ - Description: The minimum updated date of the ProcessInstances to include in the results.
102
+ - Name: `finishedBefore` Required: ``
103
+ - Type: string
104
+ - Description: The maximum finished date of the ProcessInstances to include in the results.
105
+ - Name: `finishedAt` Required: ``
106
+ - Type: Array<string> | string
107
+ - string: 2021-01-01T00:00:00.000Z
108
+ - array: 2021-01-01T00:00:00.000Z,2021-01-02T00:00:00.000Z
109
+ - Description: The exact finished date of the ProcessInstances to include in the results.
110
+ - Name: `finishedAfter` Required: ``
111
+ - Type: string
112
+ - Description: The minimum finished date of the ProcessInstances to include in the results.
113
+ - Name: `triggeredByFlowNodeInstance` Required: ``
114
+ - Type: Array<string> | string | SearchQuery
115
+ - string: myFlowNodeInstance_12345678
116
+ - array: myFlowNodeInstance_12345678,myFlowNodeInstance_87654321
117
+ - object:
118
+ - Description: Filter by the ID of the FlowNodeInstance that triggered the ProcessInstance.
119
+
120
+ #### Responses:
121
+ - **200**:
@@ -0,0 +1,41 @@
1
+ const Mustache = require('mustache');
2
+ const fs = require('fs');
3
+
4
+ const swaggerFilename = '../../ProcessCube.Engine/docs/swagger/swagger.json'; // Dateiname der Swagger-Datei
5
+
6
+ const swaggerJson = JSON.parse(fs.readFileSync(swaggerFilename, 'utf-8'));
7
+
8
+ //console.log(Object.keys(swaggerJson.paths));
9
+ //return
10
+
11
+ const apiPath = '/process_instances/query'; // Die API-Route, die du dokumentieren möchtest
12
+ const routeData = swaggerJson.paths[apiPath];
13
+
14
+ if (routeData) {
15
+ console.log(`Details for ${apiPath}:`, routeData);
16
+ } else {
17
+ console.error(`Route ${apiPath} not found in Swagger documentation.`);
18
+ }
19
+
20
+ // API-Route-Information vorbereiten
21
+ const apiRouteData = {
22
+ path: apiPath,
23
+ method: Object.keys(routeData)[0], // z.B. GET, POST, etc.
24
+ summary: routeData[Object.keys(routeData)[0]].summary,
25
+ description: routeData[Object.keys(routeData)[0]].description,
26
+ parameters: routeData[Object.keys(routeData)[0]].parameters || [],
27
+ responses: Object.entries(routeData[Object.keys(routeData)[0]].responses).map(([status, response]) => ({
28
+ status,
29
+ description: response.description
30
+ }))
31
+ };
32
+
33
+ // Mustache-Template einlesen
34
+ const template = fs.readFileSync('query_template.mustache', 'utf-8');
35
+
36
+ // Mustache-Rendering
37
+ const output = Mustache.render(template, apiRouteData);
38
+
39
+ // Ausgabe in eine Datei schreiben oder anzeigen
40
+ console.log(output);
41
+ fs.writeFileSync('output.md', output);
@@ -0,0 +1,89 @@
1
+ const Mustache = require('mustache');
2
+ const fs = require('fs');
3
+
4
+ const SwaggerParser = require('swagger-parser');
5
+
6
+ //const swaggerFilename = '../../ProcessCube.Engine/docs/swagger/swagger.json'; // Dateiname der Swagger-Datei
7
+ //const swaggerFilename = 'swagger.json'; // Dateiname der Swagger-Datei
8
+
9
+
10
+ SwaggerParser.dereference("http://localhost:56100/atlas_engine/api/v1/swagger")
11
+ //SwaggerParser.dereference(swaggerFilename)
12
+ .then(swaggerJson => {
13
+ console.log('Dereferenced API:', swaggerJson);
14
+
15
+ const apiPaths = [{
16
+ "ProcessInstance Query": {
17
+ "path": "/process_instances/query",
18
+ "method": "get"
19
+ },
20
+ "UserTasks Input": {
21
+ "path": "/process_instances/query",
22
+ "method": "get"
23
+ },
24
+ "Wait for UserTask": {
25
+ "path": "/process_instances/query",
26
+ "method": "get"
27
+ },
28
+ "UserTask Event Listener": {
29
+ "path": "/process_instances/query",
30
+ "method": "get"
31
+ }
32
+ }];
33
+
34
+ apiPaths.forEach(apiEntry => {
35
+ console.log('API Entry:', apiEntry);
36
+ console.log('API Entry Keys:', Object.keys(apiEntry));
37
+
38
+ Object.keys(apiEntry).forEach(apiName => {
39
+ console.log('API Name:', apiName);
40
+ console.log('API Data:', apiEntry[apiName]);
41
+
42
+ let apiPath = apiEntry[apiName].path; // Die API-Route, die du dokumentieren möchtest
43
+
44
+ //let apiPath = '/process_instances/query'; // Die API-Route, die du dokumentieren möchtest
45
+ const routeData = swaggerJson.paths[apiPath];
46
+
47
+ if (routeData) {
48
+ console.log(`Details for ${apiPath}:`, routeData);
49
+ } else {
50
+ console.error(`Route ${apiPath} not found in Swagger documentation.`);
51
+ }
52
+
53
+ let description = routeData[Object.keys(routeData)[0]].description;
54
+
55
+ description = `Filter result for '${apiName}'`;
56
+
57
+ // API-Route-Information vorbereiten
58
+ const apiRouteData = {
59
+ path: apiPath,
60
+ method: Object.keys(routeData)[0], // z.B. GET, POST, etc.
61
+ summary: routeData[Object.keys(routeData)[0]].summary,
62
+ description: description,
63
+ parameters: routeData[Object.keys(routeData)[0]].parameters || [],
64
+ responses: Object.entries(routeData[Object.keys(routeData)[0]].responses).map(([status, response]) => ({
65
+ status,
66
+ description: response.description
67
+ }))
68
+ };
69
+
70
+ // Mustache-Template einlesen
71
+ const template = fs.readFileSync('query_template.mustache', 'utf-8');
72
+
73
+ // Mustache-Rendering
74
+ const output = Mustache.render(template, apiRouteData);
75
+
76
+ // Ausgabe in eine Datei schreiben oder anzeigen
77
+ //console.log(output);
78
+
79
+ const outputFilename = apiName.replace(/\/ /g, '_') + '.md';
80
+ console.log(`Writing output to ${outputFilename}`);
81
+
82
+ fs.writeFileSync(`outputs/${outputFilename}`, output);
83
+ });
84
+ });
85
+
86
+ })
87
+ .catch(err => {
88
+ console.error('Dereferencing failed:', err);
89
+ });
File without changes
@@ -0,0 +1,176 @@
1
+ {
2
+ "name": "doc_generator",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "doc_generator",
9
+ "version": "1.0.0",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "mustache": "^4.2.0",
13
+ "swagger-parser": "^10.0.3"
14
+ }
15
+ },
16
+ "node_modules/@apidevtools/json-schema-ref-parser": {
17
+ "version": "9.1.2",
18
+ "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.1.2.tgz",
19
+ "integrity": "sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==",
20
+ "license": "MIT",
21
+ "dependencies": {
22
+ "@jsdevtools/ono": "^7.1.3",
23
+ "@types/json-schema": "^7.0.6",
24
+ "call-me-maybe": "^1.0.1",
25
+ "js-yaml": "^4.1.0"
26
+ }
27
+ },
28
+ "node_modules/@apidevtools/openapi-schemas": {
29
+ "version": "2.1.0",
30
+ "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz",
31
+ "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==",
32
+ "license": "MIT",
33
+ "engines": {
34
+ "node": ">=10"
35
+ }
36
+ },
37
+ "node_modules/@apidevtools/swagger-methods": {
38
+ "version": "3.0.2",
39
+ "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz",
40
+ "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==",
41
+ "license": "MIT"
42
+ },
43
+ "node_modules/@apidevtools/swagger-parser": {
44
+ "version": "10.0.3",
45
+ "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.0.3.tgz",
46
+ "integrity": "sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==",
47
+ "license": "MIT",
48
+ "dependencies": {
49
+ "@apidevtools/json-schema-ref-parser": "^9.0.6",
50
+ "@apidevtools/openapi-schemas": "^2.0.4",
51
+ "@apidevtools/swagger-methods": "^3.0.2",
52
+ "@jsdevtools/ono": "^7.1.3",
53
+ "call-me-maybe": "^1.0.1",
54
+ "z-schema": "^5.0.1"
55
+ },
56
+ "peerDependencies": {
57
+ "openapi-types": ">=7"
58
+ }
59
+ },
60
+ "node_modules/@jsdevtools/ono": {
61
+ "version": "7.1.3",
62
+ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz",
63
+ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==",
64
+ "license": "MIT"
65
+ },
66
+ "node_modules/@types/json-schema": {
67
+ "version": "7.0.15",
68
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
69
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
70
+ "license": "MIT"
71
+ },
72
+ "node_modules/argparse": {
73
+ "version": "2.0.1",
74
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
75
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
76
+ "license": "Python-2.0"
77
+ },
78
+ "node_modules/call-me-maybe": {
79
+ "version": "1.0.2",
80
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
81
+ "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
82
+ "license": "MIT"
83
+ },
84
+ "node_modules/commander": {
85
+ "version": "9.5.0",
86
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
87
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
88
+ "license": "MIT",
89
+ "optional": true,
90
+ "engines": {
91
+ "node": "^12.20.0 || >=14"
92
+ }
93
+ },
94
+ "node_modules/js-yaml": {
95
+ "version": "4.1.0",
96
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
97
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
98
+ "license": "MIT",
99
+ "dependencies": {
100
+ "argparse": "^2.0.1"
101
+ },
102
+ "bin": {
103
+ "js-yaml": "bin/js-yaml.js"
104
+ }
105
+ },
106
+ "node_modules/lodash.get": {
107
+ "version": "4.4.2",
108
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
109
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
110
+ "license": "MIT"
111
+ },
112
+ "node_modules/lodash.isequal": {
113
+ "version": "4.5.0",
114
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
115
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
116
+ "license": "MIT"
117
+ },
118
+ "node_modules/mustache": {
119
+ "version": "4.2.0",
120
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
121
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
122
+ "license": "MIT",
123
+ "bin": {
124
+ "mustache": "bin/mustache"
125
+ }
126
+ },
127
+ "node_modules/openapi-types": {
128
+ "version": "12.1.3",
129
+ "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz",
130
+ "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==",
131
+ "license": "MIT",
132
+ "peer": true
133
+ },
134
+ "node_modules/swagger-parser": {
135
+ "version": "10.0.3",
136
+ "resolved": "https://registry.npmjs.org/swagger-parser/-/swagger-parser-10.0.3.tgz",
137
+ "integrity": "sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==",
138
+ "license": "MIT",
139
+ "dependencies": {
140
+ "@apidevtools/swagger-parser": "10.0.3"
141
+ },
142
+ "engines": {
143
+ "node": ">=10"
144
+ }
145
+ },
146
+ "node_modules/validator": {
147
+ "version": "13.12.0",
148
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz",
149
+ "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==",
150
+ "license": "MIT",
151
+ "engines": {
152
+ "node": ">= 0.10"
153
+ }
154
+ },
155
+ "node_modules/z-schema": {
156
+ "version": "5.0.5",
157
+ "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-5.0.5.tgz",
158
+ "integrity": "sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==",
159
+ "license": "MIT",
160
+ "dependencies": {
161
+ "lodash.get": "^4.4.2",
162
+ "lodash.isequal": "^4.5.0",
163
+ "validator": "^13.7.0"
164
+ },
165
+ "bin": {
166
+ "z-schema": "bin/z-schema"
167
+ },
168
+ "engines": {
169
+ "node": ">=8.0.0"
170
+ },
171
+ "optionalDependencies": {
172
+ "commander": "^9.4.1"
173
+ }
174
+ }
175
+ }
176
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "doc_generator",
3
+ "version": "1.0.0",
4
+ "main": "generator.js",
5
+ "scripts": {
6
+ "test": "echo \"Error: no test specified\" && exit 1"
7
+ },
8
+ "author": "",
9
+ "license": "MIT",
10
+ "description": "",
11
+ "dependencies": {
12
+ "mustache": "^4.2.0",
13
+ "swagger-parser": "^10.0.3"
14
+ }
15
+ }
@@ -0,0 +1,20 @@
1
+ ### Query fields
2
+
3
+ **Summary**: {{summary}}
4
+
5
+ **Description**: {{description}}
6
+
7
+ #### Parameters:
8
+ {{#parameters}}
9
+ - Name: `{{name}}` Required: `{{required}}`
10
+ - Type: {{schema.type}}
11
+ {{#schema.oneOf}}
12
+ - {{type}}: {{example}}
13
+ {{/schema.oneOf}}
14
+ - Description: {{description}}
15
+ {{/parameters}}
16
+
17
+ #### Responses:
18
+ {{#responses}}
19
+ - **{{status}}**: {{description}}
20
+ {{/responses}}