@things-factory/integration-base 6.2.19 → 6.2.25
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/assets/images/graphql-oauth2-menu.png +0 -0
- package/assets/images/graphql-oauth2-screen.png +0 -0
- package/dist-server/engine/connector/graphql-connector.js +3 -0
- package/dist-server/engine/connector/graphql-connector.js.map +1 -1
- package/dist-server/engine/connector/index.js +1 -0
- package/dist-server/engine/connector/index.js.map +1 -1
- package/dist-server/engine/connector/operato-connector.js +86 -0
- package/dist-server/engine/connector/operato-connector.js.map +1 -0
- package/dist-server/service/scenario/scenario-type.js +5 -49
- package/dist-server/service/scenario/scenario-type.js.map +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/integration/connector/graphql-connector.md +23 -0
- package/helps/integration/connector/operato-connector.ja.md +26 -0
- package/helps/integration/connector/operato-connector.kr.md +28 -0
- package/helps/integration/connector/operato-connector.md +26 -0
- package/helps/integration/connector/operato-connector.ms.md +26 -0
- package/helps/integration/connector/operato-connector.zh.md +26 -0
- package/package.json +7 -7
- package/server/engine/connector/graphql-connector.ts +4 -0
- package/server/engine/connector/index.ts +1 -0
- package/server/engine/connector/operato-connector.ts +113 -0
- package/server/service/scenario/scenario-type.ts +1 -31
- package/server/service/scenario-instance/scenario-instance-mutation.ts +2 -2
- package/translations/en.json +2 -1
- package/translations/ja.json +2 -1
- package/translations/ko.json +2 -1
- package/translations/ms.json +5 -4
- package/translations/zh.json +5 -4
Binary file
|
Binary file
|
@@ -85,6 +85,9 @@ class GraphqlConnector {
|
|
85
85
|
get description() {
|
86
86
|
return 'Graphql Http Connector';
|
87
87
|
}
|
88
|
+
get help() {
|
89
|
+
return 'integration/connector/graphql-connector';
|
90
|
+
}
|
88
91
|
}
|
89
92
|
exports.GraphqlConnector = GraphqlConnector;
|
90
93
|
connection_manager_1.ConnectionManager.registerConnector('graphql-connector', new GraphqlConnector());
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"graphql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/graphql-connector.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"graphql-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/graphql-connector.ts"],"names":[],"mappings":"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","sourcesContent":["import 'cross-fetch/polyfill'\n\nimport { ApolloClient, ApolloLink, from, HttpLink, InMemoryCache } from '@apollo/client/core'\nimport { onError } from '@apollo/client/link/error'\nimport { Oauth2Client } from '@things-factory/oauth2-client'\nimport { getRepository } from '@things-factory/shell'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { Connector } from '../types'\n\nconst defaultOptions: any = {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache', //'network-only'\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n}\n\nconst cache = new InMemoryCache({\n addTypename: false\n})\n\nexport class GraphqlConnector implements Connector {\n async ready(connectionConfigs) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('graphql-connector connections are ready')\n }\n\n async connect(connection) {\n var {\n endpoint: uri,\n params: { authClient }\n } = connection\n\n var ERROR_HANDLER: any = ({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.map(({ message, locations, path }) => {\n ConnectionManager.logger.error(`[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`)\n })\n\n if (networkError) {\n ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}] ${networkError}`)\n }\n }\n\n const oauth2Client: Oauth2Client = await getRepository(Oauth2Client).findOneBy({ id: authClient })\n\n const authMiddleware = new ApolloLink((operation, forward) => {\n // add the authorization to the headers\n operation.setContext(({ headers = {} }) => ({\n headers: {\n ...headers,\n ...oauth2Client.getAuthHeaders()\n }\n }))\n\n return forward(operation)\n })\n\n ConnectionManager.addConnectionInstance(\n connection,\n new ApolloClient({\n defaultOptions,\n cache,\n link: from([\n authMiddleware,\n onError(ERROR_HANDLER),\n new HttpLink({\n uri,\n credentials: 'include'\n })\n ])\n })\n )\n\n ConnectionManager.logger.info(\n `graphql-connector connection(${connection.name}:${connection.endpoint}) is connected`\n )\n }\n\n async disconnect(connection) {\n var client = ConnectionManager.getConnectionInstance(connection)\n client.stop()\n ConnectionManager.removeConnectionInstance(connection)\n\n ConnectionManager.logger.info(`graphql-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return [\n {\n type: 'entity-selector',\n name: 'authClient',\n label: 'auth-client',\n property: {\n queryName: 'oauth2Clients'\n }\n }\n ]\n }\n\n get taskPrefixes() {\n return ['graphql']\n }\n\n get description() {\n return 'Graphql Http Connector'\n }\n\n get help() {\n return 'integration/connector/graphql-connector'\n }\n}\n\nConnectionManager.registerConnector('graphql-connector', new GraphqlConnector())\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/connector/index.ts"],"names":[],"mappings":";;AAAA,8BAA2B;AAC3B,iCAA8B;AAC9B,4BAAyB;AACzB,+BAA4B;AAC5B,8BAA2B;AAC3B,kCAA+B;AAC/B,4BAAyB;AACzB,6BAA0B;AAC1B,8BAA2B;AAC3B,6BAA0B;AAC1B,2BAAwB","sourcesContent":["import './echo-back-server'\nimport './echo-back-connector'\nimport './http-connector'\nimport './graphql-connector'\nimport './sqlite-connector'\nimport './postgresql-connector'\nimport './mqtt-connector'\nimport './mssql-connector'\nimport './oracle-connector'\nimport './mysql-connector'\nimport './socket-server'\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/engine/connector/index.ts"],"names":[],"mappings":";;AAAA,8BAA2B;AAC3B,iCAA8B;AAC9B,4BAAyB;AACzB,+BAA4B;AAC5B,8BAA2B;AAC3B,kCAA+B;AAC/B,4BAAyB;AACzB,6BAA0B;AAC1B,8BAA2B;AAC3B,6BAA0B;AAC1B,2BAAwB;AACxB,+BAA4B","sourcesContent":["import './echo-back-server'\nimport './echo-back-connector'\nimport './http-connector'\nimport './graphql-connector'\nimport './sqlite-connector'\nimport './postgresql-connector'\nimport './mqtt-connector'\nimport './mssql-connector'\nimport './oracle-connector'\nimport './mysql-connector'\nimport './socket-server'\nimport './operato-connector'\n"]}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.OperatoConnector = void 0;
|
4
|
+
require("cross-fetch/polyfill");
|
5
|
+
const core_1 = require("@apollo/client/core");
|
6
|
+
const context_1 = require("@apollo/client/link/context");
|
7
|
+
const connection_manager_1 = require("../connection-manager");
|
8
|
+
const defaultOptions = {
|
9
|
+
watchQuery: {
|
10
|
+
fetchPolicy: 'no-cache',
|
11
|
+
errorPolicy: 'ignore'
|
12
|
+
},
|
13
|
+
query: {
|
14
|
+
fetchPolicy: 'no-cache',
|
15
|
+
errorPolicy: 'all'
|
16
|
+
},
|
17
|
+
mutate: {
|
18
|
+
errorPolicy: 'all'
|
19
|
+
}
|
20
|
+
};
|
21
|
+
const cache = new core_1.InMemoryCache({
|
22
|
+
addTypename: false
|
23
|
+
});
|
24
|
+
class OperatoConnector {
|
25
|
+
async ready(connectionConfigs) {
|
26
|
+
await Promise.all(connectionConfigs.map(this.connect.bind(this)));
|
27
|
+
connection_manager_1.ConnectionManager.logger.info('graphql-connector connections are ready');
|
28
|
+
}
|
29
|
+
async connect(connection) {
|
30
|
+
var { endpoint: uri, params: { authKey, domain } } = connection;
|
31
|
+
var ERROR_HANDLER = ({ graphQLErrors, networkError }) => {
|
32
|
+
if (graphQLErrors)
|
33
|
+
graphQLErrors.map(({ message, locations, path }) => {
|
34
|
+
connection_manager_1.ConnectionManager.logger.error(`[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`);
|
35
|
+
});
|
36
|
+
if (networkError) {
|
37
|
+
connection_manager_1.ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}] ${networkError}`);
|
38
|
+
}
|
39
|
+
};
|
40
|
+
const httpLink = (0, core_1.createHttpLink)({
|
41
|
+
uri: uri
|
42
|
+
});
|
43
|
+
connection_manager_1.ConnectionManager.addConnectionInstance(connection, new core_1.ApolloClient({
|
44
|
+
defaultOptions,
|
45
|
+
cache,
|
46
|
+
link: (0, context_1.setContext)((_, { headers }) => {
|
47
|
+
return {
|
48
|
+
headers: Object.assign(Object.assign({}, headers), { 'x-things-factory-domain': domain, authorization: authKey ? `Bearer ${authKey}` : '' })
|
49
|
+
};
|
50
|
+
}).concat(httpLink)
|
51
|
+
}));
|
52
|
+
connection_manager_1.ConnectionManager.logger.info(`graphql-connector connection(${connection.name}:${connection.endpoint}) is connected`);
|
53
|
+
}
|
54
|
+
async disconnect(connection) {
|
55
|
+
var client = connection_manager_1.ConnectionManager.getConnectionInstance(connection);
|
56
|
+
client.stop();
|
57
|
+
connection_manager_1.ConnectionManager.removeConnectionInstance(connection);
|
58
|
+
connection_manager_1.ConnectionManager.logger.info(`graphql-connector connection(${connection.name}) is disconnected`);
|
59
|
+
}
|
60
|
+
get parameterSpec() {
|
61
|
+
return [
|
62
|
+
{
|
63
|
+
type: 'string',
|
64
|
+
name: 'authKey',
|
65
|
+
label: 'auth-key'
|
66
|
+
},
|
67
|
+
{
|
68
|
+
type: 'string',
|
69
|
+
name: 'domain',
|
70
|
+
label: 'domain'
|
71
|
+
}
|
72
|
+
];
|
73
|
+
}
|
74
|
+
get taskPrefixes() {
|
75
|
+
return ['graphql'];
|
76
|
+
}
|
77
|
+
get help() {
|
78
|
+
return 'integration/connector/operato-connector';
|
79
|
+
}
|
80
|
+
get description() {
|
81
|
+
return 'Operato Grpahql Connector';
|
82
|
+
}
|
83
|
+
}
|
84
|
+
exports.OperatoConnector = OperatoConnector;
|
85
|
+
connection_manager_1.ConnectionManager.registerConnector('operato-connector', new OperatoConnector());
|
86
|
+
//# sourceMappingURL=operato-connector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"operato-connector.js","sourceRoot":"","sources":["../../../server/engine/connector/operato-connector.ts"],"names":[],"mappings":"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","sourcesContent":["import 'cross-fetch/polyfill'\n\nimport { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client/core'\nimport { setContext } from '@apollo/client/link/context'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { Connector } from '../types'\n\nconst defaultOptions: any = {\n watchQuery: {\n fetchPolicy: 'no-cache',\n errorPolicy: 'ignore'\n },\n query: {\n fetchPolicy: 'no-cache', //'network-only'\n errorPolicy: 'all'\n },\n mutate: {\n errorPolicy: 'all'\n }\n}\n\nconst cache = new InMemoryCache({\n addTypename: false\n})\n\nexport class OperatoConnector implements Connector {\n async ready(connectionConfigs) {\n await Promise.all(connectionConfigs.map(this.connect.bind(this)))\n\n ConnectionManager.logger.info('graphql-connector connections are ready')\n }\n\n async connect(connection) {\n var {\n endpoint: uri,\n params: { authKey, domain }\n } = connection\n\n var ERROR_HANDLER: any = ({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.map(({ message, locations, path }) => {\n ConnectionManager.logger.error(`[GraphQL error] Message: ${message}, Location: ${locations}, Path: ${path}`)\n })\n\n if (networkError) {\n ConnectionManager.logger.error(`[Network error - ${networkError.statusCode}] ${networkError}`)\n }\n }\n\n const httpLink = createHttpLink({\n uri: uri\n })\n\n ConnectionManager.addConnectionInstance(\n connection,\n new ApolloClient({\n defaultOptions,\n cache,\n link: setContext((_, { headers }) => {\n return {\n headers: {\n ...headers,\n 'x-things-factory-domain': domain,\n authorization: authKey ? `Bearer ${authKey}` : ''\n }\n }\n }).concat(httpLink)\n })\n )\n\n ConnectionManager.logger.info(\n `graphql-connector connection(${connection.name}:${connection.endpoint}) is connected`\n )\n }\n\n async disconnect(connection) {\n var client = ConnectionManager.getConnectionInstance(connection)\n client.stop()\n ConnectionManager.removeConnectionInstance(connection)\n\n ConnectionManager.logger.info(`graphql-connector connection(${connection.name}) is disconnected`)\n }\n\n get parameterSpec() {\n return [\n {\n type: 'string',\n name: 'authKey',\n label: 'auth-key'\n },\n {\n type: 'string',\n name: 'domain',\n label: 'domain'\n }\n ]\n }\n\n get taskPrefixes() {\n return ['graphql']\n }\n\n get help() {\n return 'integration/connector/operato-connector'\n }\n\n get description() {\n return 'Operato Grpahql Connector'\n }\n}\n\nConnectionManager.registerConnector('operato-connector', new OperatoConnector())\n"]}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.ScenarioList = exports.ScenarioPatch = exports.NewScenario = exports.
|
3
|
+
exports.ScenarioList = exports.ScenarioPatch = exports.NewScenario = exports.Scenario = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const type_graphql_1 = require("type-graphql");
|
6
6
|
const typeorm_1 = require("typeorm");
|
@@ -8,28 +8,6 @@ const auth_base_1 = require("@things-factory/auth-base");
|
|
8
8
|
const shell_1 = require("@things-factory/shell");
|
9
9
|
const engine_1 = require("../../engine");
|
10
10
|
const step_type_1 = require("../step/step-type");
|
11
|
-
let PrivilegeObject = class PrivilegeObject {
|
12
|
-
};
|
13
|
-
tslib_1.__decorate([
|
14
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
15
|
-
tslib_1.__metadata("design:type", String)
|
16
|
-
], PrivilegeObject.prototype, "privilege", void 0);
|
17
|
-
tslib_1.__decorate([
|
18
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
19
|
-
tslib_1.__metadata("design:type", String)
|
20
|
-
], PrivilegeObject.prototype, "category", void 0);
|
21
|
-
tslib_1.__decorate([
|
22
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
23
|
-
tslib_1.__metadata("design:type", Boolean)
|
24
|
-
], PrivilegeObject.prototype, "owner", void 0);
|
25
|
-
tslib_1.__decorate([
|
26
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
27
|
-
tslib_1.__metadata("design:type", Boolean)
|
28
|
-
], PrivilegeObject.prototype, "super", void 0);
|
29
|
-
PrivilegeObject = tslib_1.__decorate([
|
30
|
-
(0, type_graphql_1.ObjectType)()
|
31
|
-
], PrivilegeObject);
|
32
|
-
exports.PrivilegeObject = PrivilegeObject;
|
33
11
|
let Scenario = class Scenario {
|
34
12
|
async start(instanceName, variables) {
|
35
13
|
try {
|
@@ -106,8 +84,8 @@ tslib_1.__decorate([
|
|
106
84
|
], Scenario.prototype, "steps", void 0);
|
107
85
|
tslib_1.__decorate([
|
108
86
|
(0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
|
109
|
-
(0, type_graphql_1.Field)(type => PrivilegeObject, { nullable: true }),
|
110
|
-
tslib_1.__metadata("design:type", PrivilegeObject)
|
87
|
+
(0, type_graphql_1.Field)(type => auth_base_1.PrivilegeObject, { nullable: true }),
|
88
|
+
tslib_1.__metadata("design:type", auth_base_1.PrivilegeObject)
|
111
89
|
], Scenario.prototype, "privilege", void 0);
|
112
90
|
tslib_1.__decorate([
|
113
91
|
(0, typeorm_1.CreateDateColumn)(),
|
@@ -143,28 +121,6 @@ Scenario = tslib_1.__decorate([
|
|
143
121
|
(0, type_graphql_1.ObjectType)()
|
144
122
|
], Scenario);
|
145
123
|
exports.Scenario = Scenario;
|
146
|
-
let PrivilegeInput = class PrivilegeInput {
|
147
|
-
};
|
148
|
-
tslib_1.__decorate([
|
149
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
150
|
-
tslib_1.__metadata("design:type", String)
|
151
|
-
], PrivilegeInput.prototype, "privilege", void 0);
|
152
|
-
tslib_1.__decorate([
|
153
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
154
|
-
tslib_1.__metadata("design:type", String)
|
155
|
-
], PrivilegeInput.prototype, "category", void 0);
|
156
|
-
tslib_1.__decorate([
|
157
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
158
|
-
tslib_1.__metadata("design:type", Boolean)
|
159
|
-
], PrivilegeInput.prototype, "owner", void 0);
|
160
|
-
tslib_1.__decorate([
|
161
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
162
|
-
tslib_1.__metadata("design:type", Boolean)
|
163
|
-
], PrivilegeInput.prototype, "super", void 0);
|
164
|
-
PrivilegeInput = tslib_1.__decorate([
|
165
|
-
(0, type_graphql_1.InputType)()
|
166
|
-
], PrivilegeInput);
|
167
|
-
exports.PrivilegeInput = PrivilegeInput;
|
168
124
|
let NewScenario = class NewScenario {
|
169
125
|
};
|
170
126
|
tslib_1.__decorate([
|
@@ -193,7 +149,7 @@ tslib_1.__decorate([
|
|
193
149
|
], NewScenario.prototype, "active", void 0);
|
194
150
|
tslib_1.__decorate([
|
195
151
|
(0, type_graphql_1.Field)({ nullable: true }),
|
196
|
-
tslib_1.__metadata("design:type", PrivilegeInput)
|
152
|
+
tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
|
197
153
|
], NewScenario.prototype, "privilege", void 0);
|
198
154
|
NewScenario = tslib_1.__decorate([
|
199
155
|
(0, type_graphql_1.InputType)()
|
@@ -235,7 +191,7 @@ tslib_1.__decorate([
|
|
235
191
|
], ScenarioPatch.prototype, "steps", void 0);
|
236
192
|
tslib_1.__decorate([
|
237
193
|
(0, type_graphql_1.Field)({ nullable: true }),
|
238
|
-
tslib_1.__metadata("design:type", PrivilegeInput)
|
194
|
+
tslib_1.__metadata("design:type", auth_base_1.PrivilegeInput)
|
239
195
|
], ScenarioPatch.prototype, "privilege", void 0);
|
240
196
|
tslib_1.__decorate([
|
241
197
|
(0, type_graphql_1.Field)({ nullable: true }),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-type.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,qCAUgB;AAEhB,
|
1
|
+
{"version":3,"file":"scenario-type.js","sourceRoot":"","sources":["../../../server/service/scenario/scenario-type.ts"],"names":[],"mappings":";;;;AAAA,+CAAoE;AACpE,qCAUgB;AAEhB,yDAAiF;AACjF,iDAA8C;AAE9C,yCAA6C;AAC7C,iDAAmD;AAK5C,IAAM,QAAQ,GAAd,MAAM,QAAQ;IA0EnB,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,SAAe;QACvC,IAAI;YACF,MAAM,uBAAc,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;SACnH;QAAC,OAAO,EAAE,EAAE,GAAE;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,YAAa;QACtB,IAAI;YACF,MAAM,uBAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;SACpE;gBAAS;SACT;IACH,CAAC;CACF,CAAA;AArFC;IAAC,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;oCACP;AAEX;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACjB,cAAM;wCAAA;AAEf;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;;0CACnC;AAEjB;IAAC,IAAA,gBAAM,GAAE;IACR,IAAA,oBAAK,GAAE;;sCACK;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAEpB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCACb;AAEb;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;;wCAChE;AAEhB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sEAAsE,EAAE,CAAC;;wCAC/F;AAEhB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACT;AAEjB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACP;AAEnB;IAAC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACT;AAEjB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,gBAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uCAC5B;AAEd;IAAC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,2BAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACvC,2BAAe;2CAAA;AAE3B;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAEhB;IAAC,IAAA,0BAAgB,GAAE;IAClB,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,IAAI;2CAAA;AAEhB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;yCAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;AAElB;IAAC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,gBAAI;yCAAA;AAEd;IAAC,IAAA,oBAAU,EAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;;2CACnC;AAxEP,QAAQ;IAHpB,IAAA,gBAAM,GAAE;IACR,IAAA,eAAK,EAAC,eAAe,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAClG,IAAA,yBAAU,GAAE;GACA,QAAQ,CAsFpB;AAtFY,4BAAQ;AAyFd,IAAM,WAAW,GAAjB,MAAM,WAAW;CAqBvB,CAAA;AApBC;IAAC,IAAA,oBAAK,GAAE;;yCACI;AAEZ;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;8CAAA;AApBf,WAAW;IADvB,IAAA,wBAAS,GAAE;GACC,WAAW,CAqBvB;AArBY,kCAAW;AAwBjB,IAAM,aAAa,GAAnB,MAAM,aAAa;CA8BzB,CAAA;AA7BC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC3B;AAEX;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACN;AAEpB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACb;AAEb;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACV;AAEhB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC5B;AAEnB;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACd,0BAAc;gDAAA;AAE1B;IAAC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACX;AA7BJ,aAAa;IADzB,IAAA,wBAAS,GAAE;GACC,aAAa,CA8BzB;AA9BY,sCAAa;AAiCnB,IAAM,YAAY,GAAlB,MAAM,YAAY;CAMxB,CAAA;AALC;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;;2CACT;AAEjB;IAAC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,CAAC;;2CACN;AALF,YAAY;IADxB,IAAA,yBAAU,GAAE;GACA,YAAY,CAMxB;AANY,oCAAY","sourcesContent":["import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'\nimport {\n Column,\n CreateDateColumn,\n Entity,\n Index,\n ManyToOne,\n OneToMany,\n PrimaryGeneratedColumn,\n RelationId,\n UpdateDateColumn\n} from 'typeorm'\n\nimport { PrivilegeObject, PrivilegeInput, User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport { Step, StepPatch } from '../step/step-type'\n\n@Entity()\n@Index('ix_scenario_0', (scenario: Scenario) => [scenario.domain, scenario.name], { unique: true })\n@ObjectType()\nexport class Scenario {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n id?: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((scenario: Scenario) => scenario.domain)\n domainId?: string\n\n @Column()\n @Field()\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n description?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n type?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'accessible and executable system-wide' })\n public?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: '[will be deprecated] automatically be started when this server start' })\n active?: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n schedule?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n scheduleId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n timezone?: string\n\n @OneToMany(type => Step, step => step.scenario)\n @Field(type => [Step], { nullable: true })\n steps?: Step[]\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => PrivilegeObject, { nullable: true })\n privilege?: PrivilegeObject\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n creator?: User\n\n @RelationId((scenario: Scenario) => scenario.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field({ nullable: true })\n updater?: User\n\n @RelationId((scenario: Scenario) => scenario.updater)\n updaterId?: string\n\n async start(instanceName, variables?: any) {\n try {\n await ScenarioEngine.load(instanceName || this.name, this, { domain: this.domain, user: this.updater, variables })\n } catch (ex) {}\n }\n\n async stop(instanceName?) {\n try {\n await ScenarioEngine.unload(this.domain, instanceName || this.name)\n } finally {\n }\n }\n}\n\n@InputType()\nexport class NewScenario {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n schedule?: string\n\n @Field({ nullable: true })\n timezone?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n}\n\n@InputType()\nexport class ScenarioPatch {\n @Field(type => ID, { nullable: true })\n id?: string\n\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n type?: string\n\n @Field({ nullable: true })\n schedule?: string\n\n @Field({ nullable: true })\n timezone?: string\n\n @Field({ nullable: true })\n active?: boolean\n\n @Field(type => [StepPatch], { nullable: true })\n steps?: StepPatch[]\n\n @Field({ nullable: true })\n privilege?: PrivilegeInput\n\n @Field({ nullable: true })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class ScenarioList {\n @Field(type => [Scenario])\n items: Scenario[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scenario-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAA2D;AAE3D,iDAA+F;AAE/F,yCAA6C;AAC7C,
|
1
|
+
{"version":3,"file":"scenario-instance-mutation.js","sourceRoot":"","sources":["../../../server/service/scenario-instance/scenario-instance-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\n\nimport { getRepository, Domain, GraphqlLocalClient, ScalarObject } from '@things-factory/shell'\n\nimport { ScenarioEngine } from '../../engine'\nimport { Scenario } from '../scenario/scenario-type'\nimport { ScenarioInstance } from './scenario-instance-type'\nimport { PrivilegeObject, User } from '@things-factory/auth-base'\nimport { Step } from '../step/step-type'\n\nconst debug = require('debug')('things-factory:integration-base:scenario-instance-mutation')\n\nasync function findScenario(\n scenarioName: string,\n domain: Domain\n): Promise<{ name: string; steps: Step[]; domain: Domain; privilege?: PrivilegeObject }> {\n var repository = getRepository(Scenario)\n\n var scenario = await repository.findOne({\n where: { domain: { id: domain.id }, name: scenarioName },\n relations: ['domain', 'steps', 'creator', 'updater']\n })\n\n if (!scenario && domain.parentId) {\n scenario = await repository.findOne({\n where: { domain: { id: domain.parentId }, name: scenarioName },\n relations: ['domain', 'steps', 'creator', 'updater']\n })\n }\n\n return scenario as any\n}\n\nasync function checkPermission(privilegeObject: PrivilegeObject, user: User, domain: Domain): Promise<boolean> {\n if (!privilegeObject || !privilegeObject.privilege || !privilegeObject.category) {\n return true\n }\n\n const { owner: domainOwnerGranted, super: superUserGranted, category, privilege } = privilegeObject\n\n return (\n (domainOwnerGranted && (await process.domainOwnerGranted(domain, user))) ||\n (superUserGranted && (await process.superUserGranted(domain, user))) ||\n (category && privilege && (await User.hasPrivilege(privilege, category, domain, user)))\n )\n}\n\n@Resolver(ScenarioInstance)\nexport class ScenarioInstanceMutation {\n @Mutation(returns => ScenarioInstance, {\n description: 'To run new scenario instance and will return the result after the scenario stop.'\n })\n async runScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('scenarioName') scenarioName: string,\n @Arg('variables', type => ScalarObject, { nullable: true }) variables: any,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n const { domain, user } = context.state\n\n debug('runScenario', scenarioName, instanceName, variables)\n\n var scenario = await findScenario(scenarioName, domain)\n\n if (!scenario) {\n throw new Error(\n context.t('error.scenario not found', {\n scenario: scenarioName\n })\n )\n }\n\n if (!(await checkPermission(scenario.privilege, user, domain))) {\n throw new Error(`Unauthorized!`)\n }\n\n /* 시나리오 인스턴스를 생성한다. */\n instanceName = instanceName || scenarioName + '-' + String(Date.now())\n var instance = new ScenarioInstance(instanceName, scenario, {\n domain,\n variables,\n client: GraphqlLocalClient.client\n })\n\n await instance.run()\n\n return instance\n }\n\n @Mutation(returns => ScenarioInstance, { description: 'To start new scenario instance' })\n async startScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Arg('scenarioName') scenarioName: string,\n @Arg('variables', type => ScalarObject, { nullable: true }) variables: any,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance> {\n const { domain, user, lng } = context.state\n\n debug('startScenario', instanceName, scenarioName, variables)\n\n var scenario = await findScenario(scenarioName, domain)\n\n if (!scenario) {\n throw new Error(\n context.t('error.scenario not found', {\n scenario: scenarioName\n })\n )\n }\n\n if (!(await checkPermission(scenario.privilege, user, domain))) {\n throw new Error(`Unauthorized!`)\n }\n\n instanceName = instanceName || scenarioName\n return await ScenarioEngine.load(instanceName, scenario, { domain, user, lng, variables })\n }\n\n @Mutation(returns => ScenarioInstance, { nullable: true, description: 'To start new scenario instance' })\n async stopScenario(\n @Arg('instanceName', { nullable: true }) instanceName: string,\n @Ctx() context: ResolverContext\n ): Promise<ScenarioInstance | undefined> {\n const { domain, user } = context.state\n\n debug('stopScenario', instanceName)\n\n var scenarioInstance = ScenarioEngine.getScenarioInstance(domain, instanceName)\n\n if (!scenarioInstance) {\n debug('stopScenario', `ScenarioInstance(${instanceName}) Not Found.`)\n throw new Error(\n context.t('error.scenario instance not found', {\n instance: instanceName\n })\n )\n }\n\n var scenario = await findScenario(scenarioInstance.scenarioName, domain)\n\n if (!(await checkPermission(scenario.privilege, user, domain))) {\n throw new Error(`Unauthorized!`)\n }\n\n await ScenarioEngine.unload(domain, instanceName)\n\n return scenarioInstance\n }\n}\n"]}
|