node-opcua-samples 2.98.0 → 2.98.2

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 (50) hide show
  1. package/dist/get_endpoints.d.ts +2 -0
  2. package/dist/get_endpoints.js +142 -0
  3. package/dist/get_endpoints.js.map +1 -0
  4. package/dist/mini_server.d.ts +1 -0
  5. package/dist/mini_server.js +89 -0
  6. package/dist/mini_server.js.map +1 -0
  7. package/dist/server_with_changing_password.d.ts +1 -0
  8. package/dist/server_with_changing_password.js +101 -0
  9. package/dist/server_with_changing_password.js.map +1 -0
  10. package/dist/server_with_push_certificate.d.ts +2 -0
  11. package/dist/server_with_push_certificate.js +112 -0
  12. package/dist/server_with_push_certificate.js.map +1 -0
  13. package/dist/simple_client_ts.d.ts +2 -0
  14. package/dist/simple_client_ts.js.map +1 -0
  15. package/dist/simple_findservers.d.ts +2 -0
  16. package/dist/simple_findservers.js +49 -0
  17. package/dist/simple_findservers.js.map +1 -0
  18. package/dist/simple_secure_server.d.ts +2 -0
  19. package/dist/simple_secure_server.js +126 -0
  20. package/dist/simple_secure_server.js.map +1 -0
  21. package/dist/simple_server_with_custom_extension_objects.d.ts +2 -0
  22. package/dist/simple_server_with_custom_extension_objects.js +82 -0
  23. package/dist/simple_server_with_custom_extension_objects.js.map +1 -0
  24. package/dist/stressing_client.d.ts +1 -0
  25. package/dist/stressing_client.js +37 -0
  26. package/dist/stressing_client.js.map +1 -0
  27. package/dist/tiny_client.d.ts +1 -0
  28. package/dist/tiny_client.js +33 -0
  29. package/dist/tiny_client.js.map +1 -0
  30. package/package.json +14 -11
  31. package/bin/createOPCUACertificate.cmd +0 -6
  32. package/bin/create_certificates.js +0 -2
  33. package/bin/crypto_create_CA.js +0 -2
  34. package/bin/demo_server_with_alarm.js +0 -51
  35. package/bin/findServersOnNetwork.js +0 -32
  36. package/bin/get_endpoints.ts +0 -166
  37. package/bin/machineryServer.js +0 -83
  38. package/bin/mini_server.ts +0 -106
  39. package/bin/more.js +0 -40
  40. package/bin/node-opcua.js +0 -2
  41. package/bin/opcua_interceptor.js +0 -122
  42. package/bin/server_with_changing_password.ts +0 -97
  43. package/bin/server_with_push_certificate.ts +0 -122
  44. package/bin/simple_client.js +0 -830
  45. package/bin/simple_client_ts.ts +0 -847
  46. package/bin/simple_findservers.ts +0 -45
  47. package/bin/simple_secure_server.ts +0 -152
  48. package/bin/simple_server_with_custom_extension_objects.ts +0 -89
  49. package/bin/stressing_client.ts +0 -28
  50. package/bin/tiny_client.ts +0 -24
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1,142 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ // tslint:disable:no-console
14
+ const chalk = require("chalk");
15
+ const fs = require("fs");
16
+ const path = require("path");
17
+ const yargs = require("yargs");
18
+ const node_opcua_1 = require("node-opcua");
19
+ const node_opcua_crypto_1 = require("node-opcua-crypto");
20
+ // tslint:disable:no-var-requires
21
+ const Table = require("easy-table");
22
+ const treeify = require("treeify");
23
+ // eslint-disable-next-line max-statements
24
+ function main() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ // ts-node bin/simple_client.ts --endpoint opc.tcp://localhost:53530/OPCUA/SimulationServer --node "ns=5;s=Sinusoid1"
27
+ const argv = yield yargs(process.argv)
28
+ .wrap(132)
29
+ .option("endpoint", {
30
+ alias: "e",
31
+ demandOption: true,
32
+ describe: "the end point to connect to "
33
+ })
34
+ .option("securityMode", {
35
+ alias: "s",
36
+ default: "None",
37
+ describe: "the security mode ( None Sign SignAndEncrypt )"
38
+ })
39
+ .option("securityPolicy", {
40
+ alias: "P",
41
+ default: "None",
42
+ describe: "the policy mode : (" + Object.keys(node_opcua_1.SecurityPolicy).join(" - ") + ")"
43
+ })
44
+ .option("discovery", {
45
+ alias: "D",
46
+ describe: "specify the endpoint uri of discovery server (by default same as server endpoint uri)"
47
+ })
48
+ .example("get_endpoints --endpoint opc.tcp://localhost:49230", "").argv;
49
+ const securityMode = (0, node_opcua_1.coerceMessageSecurityMode)(argv.securityMode);
50
+ if (securityMode === node_opcua_1.MessageSecurityMode.Invalid) {
51
+ throw new Error("Invalid Security mode");
52
+ }
53
+ const securityPolicy = (0, node_opcua_1.coerceSecurityPolicy)(argv.securityPolicy);
54
+ if (securityPolicy === node_opcua_1.SecurityPolicy.Invalid) {
55
+ throw new Error("Invalid securityPolicy");
56
+ }
57
+ console.log(chalk.cyan("securityMode = "), securityMode.toString());
58
+ console.log(chalk.cyan("securityPolicy = "), securityPolicy.toString());
59
+ const endpointUrl = argv.endpoint;
60
+ if (!endpointUrl) {
61
+ yargs.showHelp();
62
+ process.exit(0);
63
+ }
64
+ const discoveryUrl = argv.discovery ? argv.discovery : endpointUrl;
65
+ const optionsInitial = {
66
+ securityMode,
67
+ securityPolicy,
68
+ endpointMustExist: false,
69
+ connectionStrategy: {
70
+ initialDelay: 2000,
71
+ maxDelay: 10 * 1000,
72
+ maxRetry: 10
73
+ },
74
+ discoveryUrl
75
+ };
76
+ const client = node_opcua_1.OPCUAClient.create(optionsInitial);
77
+ client.on("backoff", (retry, delay) => {
78
+ console.log(chalk.bgWhite.yellow("backoff attempt #"), retry, " retrying in ", delay / 1000.0, " seconds");
79
+ });
80
+ console.log(" connecting to ", chalk.cyan.bold(endpointUrl));
81
+ console.log(" strategy", client.connectionStrategy);
82
+ try {
83
+ yield client.connect(endpointUrl);
84
+ }
85
+ catch (err) {
86
+ console.log(chalk.red(" Cannot connect to ") + endpointUrl);
87
+ if (err instanceof Error) {
88
+ console.log(" Error = ", err.message);
89
+ }
90
+ return;
91
+ }
92
+ const endpoints = yield client.getEndpoints();
93
+ if (argv.debug) {
94
+ fs.writeFileSync("tmp/endpoints.log", JSON.stringify(endpoints, null, " "));
95
+ console.log(treeify.asTree(endpoints, true));
96
+ }
97
+ const table = new Table();
98
+ let serverCertificate;
99
+ let i = 0;
100
+ for (const endpoint of endpoints) {
101
+ table.cell("endpoint", endpoint.endpointUrl + "");
102
+ table.cell("Application URI", endpoint.server.applicationUri);
103
+ table.cell("Product URI", endpoint.server.productUri);
104
+ table.cell("Application Name", endpoint.server.applicationName.text);
105
+ table.cell("securityLevel", endpoint.securityLevel);
106
+ table.cell("Security Mode", chalk.cyan(node_opcua_1.MessageSecurityMode[endpoint.securityMode].toString()));
107
+ table.cell("securityPolicyUri", chalk.cyan(endpoint.securityPolicyUri));
108
+ table.cell("Type", node_opcua_1.ApplicationType[endpoint.server.applicationType]);
109
+ table.cell("certificate", "..." /*endpoint.serverCertificate*/);
110
+ endpoint.server.discoveryUrls = endpoint.server.discoveryUrls || [];
111
+ table.cell("discoveryUrls", endpoint.server.discoveryUrls.join(" - "));
112
+ serverCertificate = endpoint.serverCertificate;
113
+ const certificate_filename = path.join(__dirname, "../certificates/PKI/server_certificate" + i + ".pem");
114
+ if (serverCertificate) {
115
+ fs.writeFile(certificate_filename, (0, node_opcua_crypto_1.toPem)(serverCertificate, "CERTIFICATE"), () => {
116
+ /**/
117
+ });
118
+ }
119
+ table.newRow();
120
+ i++;
121
+ }
122
+ console.log(table.toString());
123
+ for (const endpoint of endpoints) {
124
+ console.log("Identify Token for : Security Mode=", chalk.cyan(node_opcua_1.MessageSecurityMode[endpoint.securityMode].toString()), " Policy=", chalk.cyan(endpoint.securityPolicyUri));
125
+ const table2 = new Table();
126
+ for (const token of endpoint.userIdentityTokens) {
127
+ table2.cell("policyId", token.policyId);
128
+ table2.cell("tokenType", node_opcua_1.UserTokenType[token.tokenType]);
129
+ table2.cell("issuedTokenType", token.issuedTokenType);
130
+ table2.cell("issuerEndpointUrl", token.issuerEndpointUrl);
131
+ table2.cell("securityPolicyUri", token.securityPolicyUri);
132
+ table2.newRow();
133
+ }
134
+ console.log(table2.toString());
135
+ }
136
+ yield client.disconnect();
137
+ console.log("success !! ");
138
+ process.exit(0);
139
+ });
140
+ }
141
+ main();
142
+ //# sourceMappingURL=get_endpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_endpoints.js","sourceRoot":"","sources":["../bin/get_endpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ // tslint:disable:no-console
13
+ const path = require("path");
14
+ const os = require("os");
15
+ const chalk = require("chalk");
16
+ const node_opcua_1 = require("node-opcua");
17
+ Error.stackTraceLimit = Infinity;
18
+ const port = 26544;
19
+ const env_paths_1 = require("env-paths");
20
+ const config = (0, env_paths_1.default)("MiniNodeOPCUA-Server").config;
21
+ const pkiFolder = path.join(config, "PKI");
22
+ const serverOptions = {
23
+ serverCertificateManager: new node_opcua_1.OPCUACertificateManager({
24
+ rootFolder: pkiFolder
25
+ }),
26
+ port,
27
+ maxConnectionsPerEndpoint: 2,
28
+ nodeset_filename: [(0, node_opcua_1.get_mini_nodeset_filename)()],
29
+ serverInfo: {
30
+ applicationUri: (0, node_opcua_1.makeApplicationUrn)(os.hostname(), "MiniNodeOPCUA-Server"),
31
+ productUri: "Mini NodeOPCUA-Server",
32
+ applicationName: { text: "Mini NodeOPCUA Server", locale: "en" },
33
+ gatewayServerUri: null,
34
+ discoveryProfileUri: null,
35
+ discoveryUrls: []
36
+ },
37
+ buildInfo: {
38
+ buildNumber: "1234"
39
+ },
40
+ serverCapabilities: {
41
+ maxSessions: 10,
42
+ maxBrowseContinuationPoints: 10,
43
+ maxHistoryContinuationPoints: 10,
44
+ // maxInactiveLockTime
45
+ operationLimits: {
46
+ maxNodesPerBrowse: 10,
47
+ maxNodesPerHistoryReadData: 6,
48
+ maxNodesPerHistoryReadEvents: 10,
49
+ maxNodesPerHistoryUpdateData: 10,
50
+ maxNodesPerRead: 10,
51
+ maxNodesPerWrite: 10
52
+ }
53
+ },
54
+ isAuditing: false
55
+ };
56
+ function main() {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ process.title = "Node OPCUA Server on port : " + serverOptions.port;
59
+ const server = new node_opcua_1.OPCUAServer(serverOptions);
60
+ console.log(chalk.yellow(" server PID :"), process.pid);
61
+ try {
62
+ yield server.start();
63
+ }
64
+ catch (err) {
65
+ console.log(" Server failed to start ... exiting");
66
+ process.exit(-3);
67
+ }
68
+ const endpointUrl = server.getEndpointUrl();
69
+ console.log(chalk.yellow(" server on port :"), server.endpoints[0].port.toString());
70
+ console.log(chalk.yellow(" endpointUrl :"), chalk.cyan(endpointUrl));
71
+ console.log(chalk.yellow("\n server now waiting for connections. CTRL+C to stop"));
72
+ server.on("create_session", (session) => {
73
+ console.log(" SESSION CREATED");
74
+ console.log(chalk.cyan(" client application URI: "), session.clientDescription.applicationUri);
75
+ console.log(chalk.cyan(" client product URI: "), session.clientDescription.productUri);
76
+ console.log(chalk.cyan(" client application name: "), session.clientDescription.applicationName.toString());
77
+ console.log(chalk.cyan(" client application type: "), session.clientDescription.applicationType.toString());
78
+ console.log(chalk.cyan(" session name: "), session.sessionName ? session.sessionName.toString() : "<null>");
79
+ console.log(chalk.cyan(" session timeout: "), session.sessionTimeout);
80
+ console.log(chalk.cyan(" session id: "), session.nodeId);
81
+ });
82
+ server.on("session_closed", (session, reason) => {
83
+ console.log(" SESSION CLOSED :", reason);
84
+ console.log(chalk.cyan(" session name: "), session.sessionName ? session.sessionName.toString() : "<null>");
85
+ });
86
+ });
87
+ }
88
+ main();
89
+ //# sourceMappingURL=mini_server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mini_server.js","sourceRoot":"","sources":["../bin/mini_server.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,4BAA4B;AAC5B,6BAA6B;AAC7B,yBAAyB;AAEzB,+BAA+B;AAE/B,2CAQoB;AACpB,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;AAEjC,MAAM,IAAI,GAAG,KAAK,CAAC;AAEnB,yCAAiC;AACjC,MAAM,MAAM,GAAG,IAAA,mBAAQ,EAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC;AACvD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3C,MAAM,aAAa,GAAuB;IACtC,wBAAwB,EAAE,IAAI,oCAAuB,CAAC;QAClD,UAAU,EAAE,SAAS;KACxB,CAAC;IAEF,IAAI;IAEJ,yBAAyB,EAAE,CAAC;IAE5B,gBAAgB,EAAE,CAAC,IAAA,sCAAyB,GAAE,CAAC;IAE/C,UAAU,EAAE;QACR,cAAc,EAAE,IAAA,+BAAkB,EAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,sBAAsB,CAAC;QACzE,UAAU,EAAE,uBAAuB;QAEnC,eAAe,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,EAAE;QAChE,gBAAgB,EAAE,IAAI;QAEtB,mBAAmB,EAAE,IAAI;QAEzB,aAAa,EAAE,EAAE;KACpB;IAED,SAAS,EAAE;QACP,WAAW,EAAE,MAAM;KACtB;IAED,kBAAkB,EAAE;QAChB,WAAW,EAAE,EAAE;QAEf,2BAA2B,EAAE,EAAE;QAC/B,4BAA4B,EAAE,EAAE;QAChC,sBAAsB;QACtB,eAAe,EAAE;YACb,iBAAiB,EAAE,EAAE;YACrB,0BAA0B,EAAE,CAAC;YAC7B,4BAA4B,EAAE,EAAE;YAChC,4BAA4B,EAAE,EAAE;YAChC,eAAe,EAAE,EAAE;YACnB,gBAAgB,EAAE,EAAE;SACvB;KACJ;IAED,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF,SAAe,IAAI;;QACf,OAAO,CAAC,KAAK,GAAG,8BAA8B,GAAG,aAAa,CAAC,IAAI,CAAC;QAEpE,MAAM,MAAM,GAAG,IAAI,wBAAW,CAAC,aAAa,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI;YACA,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACxB;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAG,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAEpF,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAsB,EAAE,EAAE;YACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,iBAAkB,CAAC,cAAc,CAAC,CAAC;YACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,iBAAkB,CAAC,UAAU,CAAC,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,iBAAkB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,iBAAkB,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,OAAsB,EAAE,MAAc,EAAE,EAAE;YACnE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC7H,CAAC,CAAC,CAAC;IACP,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const node_opcua_1 = require("node-opcua");
13
+ const port = 2510;
14
+ let server;
15
+ const users = [
16
+ {
17
+ username: "user1",
18
+ password: "passwor1",
19
+ roles: (0, node_opcua_1.makeRoles)([node_opcua_1.WellKnownRoles.AuthenticatedUser, node_opcua_1.WellKnownRoles.ConfigureAdmin])
20
+ }
21
+ ];
22
+ const userManager = {
23
+ isValidUser: (username, password) => {
24
+ const uIndex = users.findIndex(function (u) {
25
+ return u.username === username;
26
+ });
27
+ if (uIndex < 0) {
28
+ return false;
29
+ }
30
+ if (users[uIndex].password !== password) {
31
+ return false;
32
+ }
33
+ return true;
34
+ },
35
+ getUserRoles: (username) => {
36
+ const uIndex = users.findIndex(function (x) {
37
+ return x.username === username;
38
+ });
39
+ if (uIndex < 0) {
40
+ return (0, node_opcua_1.makeRoles)("Anonymous");
41
+ }
42
+ const userRole = users[uIndex].roles;
43
+ return userRole;
44
+ }
45
+ };
46
+ function startServer() {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ server = new node_opcua_1.OPCUAServer({
49
+ port: port,
50
+ nodeset_filename: [node_opcua_1.nodesets.standard],
51
+ userManager,
52
+ maxConnectionsPerEndpoint: 1,
53
+ serverCapabilities: {
54
+ maxSessions: 2,
55
+ maxSubscriptions: 10,
56
+ maxSubscriptionsPerSession: 3
57
+ }
58
+ });
59
+ yield server.initialize();
60
+ yield server.start();
61
+ server.on("newChannel", () => {
62
+ console.log("server => new channel");
63
+ });
64
+ server.on("session_activated", () => {
65
+ console.log("server session activated");
66
+ });
67
+ server.on("connectionRefused", () => {
68
+ console.log("server connection refused");
69
+ });
70
+ server.on("session_closed", () => {
71
+ console.log("server sesion closed");
72
+ });
73
+ server.on("create_session", () => {
74
+ console.log("server create session");
75
+ });
76
+ return server;
77
+ });
78
+ }
79
+ (() => __awaiter(void 0, void 0, void 0, function* () {
80
+ let counter = 0;
81
+ process.on("SIGINT", () => {
82
+ if (counter > 5) {
83
+ process.exit();
84
+ }
85
+ });
86
+ while (true) {
87
+ users[0].password = `password${counter % 2}`;
88
+ counter++;
89
+ console.log("user: user1, password: ", users[0].password);
90
+ const server = yield startServer();
91
+ console.log("server started at", server.getEndpointUrl());
92
+ yield new Promise((resolve) => {
93
+ console.log("waiting for CTRL+C to cycle");
94
+ process.once("SIGINT", resolve);
95
+ });
96
+ console.log("now shutting down");
97
+ yield server.shutdown(1000);
98
+ console.log("server stopped for maintenance");
99
+ }
100
+ }))();
101
+ //# sourceMappingURL=server_with_changing_password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_with_changing_password.js","sourceRoot":"","sources":["../bin/server_with_changing_password.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAsF;AAEtF,MAAM,IAAI,GAAG,IAAI,CAAC;AAClB,IAAI,MAAmB,CAAC;AACxB,MAAM,KAAK,GAAG;IACV;QACI,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,IAAA,sBAAS,EAAC,CAAC,2BAAc,CAAC,iBAAiB,EAAE,2BAAc,CAAC,cAAc,CAAC,CAAC;KACtF;CACJ,CAAC;AAEF,MAAM,WAAW,GAAG;IAChB,WAAW,EAAE,CAAC,QAAgB,EAAE,QAAgB,EAAW,EAAE;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;YACtC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;YACrC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,EAAE,CAAC,QAAgB,EAAY,EAAE;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;YACtC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,CAAC,EAAE;YACZ,OAAO,IAAA,sBAAS,EAAC,WAAW,CAAC,CAAC;SACjC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QACrC,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ,CAAC;AACF,SAAe,WAAW;;QACtB,MAAM,GAAG,IAAI,wBAAW,CAAC;YACrB,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,CAAC,qBAAQ,CAAC,QAAQ,CAAC;YACrC,WAAW;YACX,yBAAyB,EAAE,CAAC;YAC5B,kBAAkB,EAAE;gBAChB,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,EAAE;gBACpB,0BAA0B,EAAE,CAAC;aAChC;SACJ,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;CAAA;AAED,CAAC,GAAS,EAAE;IACR,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,IAAI,OAAO,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,IAAI,EAAE,CAAC;SAClB;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,EAAE;QACT,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,WAAW,OAAO,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEjC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;KACjD;AACL,CAAC,CAAA,CAAC,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ /* eslint no-process-exit: 0 */
14
+ // tslint:disable:no-console
15
+ const path = require("path");
16
+ const chalk = require("chalk");
17
+ const node_opcua_1 = require("node-opcua");
18
+ const node_opcua_pki_1 = require("node-opcua-pki");
19
+ const node_opcua_server_configuration_1 = require("node-opcua-server-configuration");
20
+ const yargs = require("yargs");
21
+ const rootFolder = path.join(__dirname, "../../..");
22
+ const env_paths_1 = require("env-paths");
23
+ const config = (0, env_paths_1.default)("node-opcua-default").config;
24
+ const pkiFolder = path.join(config, "PKI");
25
+ const certificateManager = new node_opcua_1.OPCUACertificateManager({
26
+ automaticallyAcceptUnknownCertificate: true,
27
+ name: "PKI",
28
+ rootFolder: pkiFolder
29
+ });
30
+ const users = [
31
+ {
32
+ username: "user1",
33
+ password: "password1",
34
+ role: (0, node_opcua_1.makeRoles)([node_opcua_1.WellKnownRoles.AuthenticatedUser, node_opcua_1.WellKnownRoles.ConfigureAdmin, node_opcua_1.WellKnownRoles.SecurityAdmin])
35
+ },
36
+ { username: "user2", password: "password2", role: (0, node_opcua_1.makeRoles)([node_opcua_1.WellKnownRoles.AuthenticatedUser, node_opcua_1.WellKnownRoles.Operator]) }
37
+ ];
38
+ const userManager = {
39
+ isValidUser(username, password) {
40
+ const uIndex = users.findIndex((x) => x.username === username);
41
+ if (uIndex < 0) {
42
+ return false;
43
+ }
44
+ if (users[uIndex].password !== password) {
45
+ return false;
46
+ }
47
+ return true;
48
+ },
49
+ getUserRoles(username) {
50
+ const uIndex = users.findIndex((x) => x.username === username);
51
+ if (uIndex < 0) {
52
+ return [];
53
+ }
54
+ const userRole = users[uIndex].role;
55
+ return userRole;
56
+ }
57
+ };
58
+ function main() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const argv = yield yargs.wrap(132).option("port", {
61
+ alias: "p",
62
+ default: "26543",
63
+ describe: "port to listen"
64
+ }).argv;
65
+ const port = parseInt(argv.port, 10) || 26555;
66
+ const serverOptions = {
67
+ port,
68
+ nodeset_filename: [node_opcua_1.nodesets.standard],
69
+ serverCertificateManager: certificateManager,
70
+ userCertificateManager: certificateManager,
71
+ userManager
72
+ };
73
+ process.title = "Node OPCUA Server on port : " + serverOptions.port;
74
+ const tmpFolder = path.join(__dirname, "../certificates/myApp");
75
+ const applicationGroup = new node_opcua_pki_1.CertificateManager({
76
+ location: tmpFolder
77
+ });
78
+ yield applicationGroup.initialize();
79
+ const server = new node_opcua_1.OPCUAServer(serverOptions);
80
+ console.log(" Configuration rootdir = ", server.serverCertificateManager.rootDir);
81
+ console.log(chalk.yellow(" server PID :"), process.pid);
82
+ yield server.initialize();
83
+ const addressSpace = server.engine.addressSpace;
84
+ // to do: expose new nodeid here
85
+ const ns = addressSpace.getNamespaceIndex("http://yourorganisation.org/my_data_type/");
86
+ yield (0, node_opcua_server_configuration_1.installPushCertificateManagement)(addressSpace, {
87
+ applicationGroup: server.serverCertificateManager,
88
+ userTokenGroup: server.userCertificateManager,
89
+ applicationUri: server.serverInfo.applicationUri
90
+ });
91
+ console.log("Certificate rejected folder ", server.serverCertificateManager.rejectedFolder);
92
+ try {
93
+ yield server.start();
94
+ }
95
+ catch (err) {
96
+ console.log(" Server failed to start ... exiting");
97
+ process.exit(-3);
98
+ }
99
+ const endpointUrl = server.getEndpointUrl();
100
+ console.log(chalk.yellow(" server on port :"), chalk.cyan(server.endpoints[0].port.toString()));
101
+ console.log(chalk.yellow(" endpointUrl :"), chalk.cyan(endpointUrl));
102
+ console.log(chalk.yellow("\n server now waiting for connections. CTRL+C to stop"));
103
+ process.once("SIGINT", () => __awaiter(this, void 0, void 0, function* () {
104
+ // only work on linux apparently
105
+ yield server.shutdown(1000);
106
+ console.log(chalk.red.bold(" shutting down completed "));
107
+ process.exit(-1);
108
+ }));
109
+ });
110
+ }
111
+ main();
112
+ //# sourceMappingURL=server_with_push_certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_with_push_certificate.js","sourceRoot":"","sources":["../bin/server_with_push_certificate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple_client_ts.js","sourceRoot":"","sources":["../bin/simple_client_ts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ // tslint:disable:no-console
14
+ // this script queries the discovery server and display the discovery urls
15
+ const chalk = require("chalk");
16
+ const node_opcua_1 = require("node-opcua");
17
+ function main() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const discovery_server_endpointUrl = "opc.tcp://localhost:4840/UADiscovery";
20
+ console.log("Interrogating ", discovery_server_endpointUrl);
21
+ try {
22
+ const { servers, endpoints } = yield (0, node_opcua_1.findServers)(discovery_server_endpointUrl);
23
+ for (const server of servers) {
24
+ console.log(" applicationUri:", chalk.cyan.bold(server.applicationUri));
25
+ console.log(" productUri:", chalk.cyan.bold(server.productUri));
26
+ console.log(" applicationName:", chalk.cyan.bold(server.applicationName.text));
27
+ console.log(" type:", chalk.cyan.bold(node_opcua_1.ApplicationType[server.applicationType]));
28
+ console.log(" gatewayServerUri:", server.gatewayServerUri ? chalk.cyan.bold(server.gatewayServerUri) : "");
29
+ console.log("discoveryProfileUri:", server.discoveryProfileUri ? chalk.cyan.bold(server.discoveryProfileUri) : "");
30
+ console.log(" discoveryUrls:");
31
+ for (const discoveryUrl of server.discoveryUrls) {
32
+ console.log(" " + chalk.cyan.bold(discoveryUrl));
33
+ }
34
+ console.log("-------------");
35
+ }
36
+ for (const endpoint of endpoints) {
37
+ console.log(endpoint.endpointUrl.toString(), endpoint.securityLevel, endpoint.securityPolicyUri, node_opcua_1.MessageSecurityMode[endpoint.securityMode]);
38
+ }
39
+ }
40
+ catch (err) {
41
+ if (err instanceof Error) {
42
+ console.log("err ", err.message);
43
+ }
44
+ process.exit(-2);
45
+ }
46
+ });
47
+ }
48
+ main();
49
+ //# sourceMappingURL=simple_findservers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple_findservers.js","sourceRoot":"","sources":["../bin/simple_findservers.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,4BAA4B;AAC5B,0EAA0E;AAC1E,+BAA+B;AAC/B,2CAA+E;AAE/E,SAAe,IAAI;;QACf,MAAM,4BAA4B,GAAG,sCAAsC,CAAC;QAE5E,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,CAAC;QAE5D,IAAI;YACA,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,wBAAW,EAAC,4BAA4B,CAAC,CAAC;YAC/E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAe,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,IAAK,CAAC,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC9F,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7G,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnH,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAc,EAAE;oBAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAa,CAAC,CAAC,CAAC;iBACxE;gBACD,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aAChC;YAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAC9B,OAAO,CAAC,GAAG,CACP,QAAQ,CAAC,WAAY,CAAC,QAAQ,EAAE,EAChC,QAAQ,CAAC,aAAa,EACtB,QAAQ,CAAC,iBAAiB,EAC1B,gCAAmB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC7C,CAAC;aACL;SACJ;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;aACpC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACpB;IACL,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};