@itentialopensource/adapter-thingspace 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/metadata.json CHANGED
@@ -39,20 +39,38 @@
39
39
  "isDeprecated": false
40
40
  },
41
41
  "brokerSince": "",
42
+ "authMethods": [
43
+ {
44
+ "type": "Multi Factor Auth",
45
+ "subtypes": [],
46
+ "primary": true
47
+ }
48
+ ],
42
49
  "documentation": {
43
50
  "storeLink": "",
44
51
  "npmLink": "https://www.npmjs.com/package/@itentialopensource/adapter-thingspace",
45
- "repoLink": "https://gitlab.com/itentialopensource/adapters/controller-orchestrator/adapter-thingspace",
52
+ "repoLink": "https://gitlab.com/itentialopensource/adapters/adapter-thingspace",
46
53
  "docLink": "https://docs.itential.com/opensource/docs/thingspace",
47
54
  "demoLinks": [],
48
- "trainingLinks": [],
55
+ "trainingLinks": [
56
+ {
57
+ "title": "Itential Academy",
58
+ "link": "https://www.itential.com/itential-academy/"
59
+ }
60
+ ],
49
61
  "faqLink": "https://docs.itential.com/opensource/docs/troubleshooting-an-adapter",
50
62
  "contributeLink": "https://gitlab.com/itentialopensource/adapters/contributing-guide",
51
63
  "issueLink": "https://itential.atlassian.net/servicedesk/customer/portals",
52
64
  "webLink": "",
53
- "vendorLink": "",
54
- "productLink": "",
55
- "apiLinks": []
65
+ "vendorLink": "https://www.verizon.com/",
66
+ "productLink": "https://thingspace.verizon.com/index.html",
67
+ "apiLinks": [
68
+ {
69
+ "title": "Thingspace API Reference",
70
+ "link": "https://thingspace.verizon.com/documentation/apis/connectivity-management/api-reference.html",
71
+ "public": true
72
+ }
73
+ ]
56
74
  },
57
75
  "assets": [],
58
76
  "relatedItems": {
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@itentialopensource/adapter-thingspace",
3
- "version": "0.2.4",
3
+ "version": "0.3.0",
4
4
  "description": "This adapter integrates with system described as: ThingSpace.",
5
5
  "main": "adapter.js",
6
6
  "wizardVersion": "2.44.7",
7
- "engineVersion": "1.67.14",
7
+ "engineVersion": "1.67.19",
8
8
  "adapterType": "http",
9
9
  "scripts": {
10
10
  "artifactize": "npm i && node utils/packModificationScript.js",
@@ -15,7 +15,6 @@
15
15
  "test:baseunit": "mocha test/unit/adapterBaseTestUnit.js --LOG=error",
16
16
  "test:unit": "mocha test/unit/adapterTestUnit.js --LOG=error",
17
17
  "test:integration": "mocha test/integration/adapterTestIntegration.js --LOG=error",
18
- "test:cover": "nyc --reporter html --reporter text mocha --reporter dot test/*",
19
18
  "test": "npm run test:baseunit && npm run test:unit && npm run test:integration",
20
19
  "adapter:install": "npm i && node utils/tbScript.js install",
21
20
  "adapter:checkMigrate": "node utils/checkMigrate.js",
@@ -42,7 +41,7 @@
42
41
  ],
43
42
  "license": "Apache-2.0",
44
43
  "engines": {
45
- "node": ">= 8.0.0",
44
+ "node": ">= 14.0.0",
46
45
  "npm": ">= 6.0.0"
47
46
  },
48
47
  "repository": {
@@ -63,7 +62,6 @@
63
62
  "mocha": "^10.3.0",
64
63
  "mocha-param": "^2.0.1",
65
64
  "mongodb": "^4.16.0",
66
- "nyc": "^15.1.0",
67
65
  "ping": "^0.4.4",
68
66
  "prompts": "^2.4.2",
69
67
  "readline-sync": "^1.4.10",
@@ -945,6 +945,11 @@
945
945
  "devicebroker": {
946
946
  "type": "object",
947
947
  "properties": {
948
+ "enabled": {
949
+ "type": "boolean",
950
+ "description": "Whether or not the device broker calls have been mapped",
951
+ "default": false
952
+ },
948
953
  "getDevice": {
949
954
  "type": "array",
950
955
  "description": "Broker call(s) to getDevice",
Binary file
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "0.1.3",
3
- "configLines": 5944,
2
+ "version": "0.2.4",
3
+ "configLines": 5949,
4
4
  "scriptLines": 1783,
5
5
  "codeLines": 6309,
6
- "testLines": 6167,
6
+ "testLines": 6166,
7
7
  "testCases": 279,
8
- "totalCodeLines": 14259,
8
+ "totalCodeLines": 14258,
9
9
  "wfTasks": 67
10
10
  }
@@ -0,0 +1,120 @@
1
+ {
2
+ "errors": [],
3
+ "statistics": [
4
+ {
5
+ "owner": "errorJson",
6
+ "description": "New adapter errors available for use",
7
+ "value": 0
8
+ },
9
+ {
10
+ "owner": "errorJson",
11
+ "description": "Adapter errors no longer available for use",
12
+ "value": 0
13
+ },
14
+ {
15
+ "owner": "errorJson",
16
+ "description": "Adapter errors that have been updated (e.g. recommendation changes)",
17
+ "value": 31
18
+ },
19
+ {
20
+ "owner": "packageJson",
21
+ "description": "Number of production dependencies",
22
+ "value": 16
23
+ },
24
+ {
25
+ "owner": "packageJson",
26
+ "description": "Number of development dependencies",
27
+ "value": 6
28
+ },
29
+ {
30
+ "owner": "packageJson",
31
+ "description": "Number of npm scripts",
32
+ "value": 21
33
+ },
34
+ {
35
+ "owner": "packageJson",
36
+ "description": "Runtime Library dependency",
37
+ "value": "^5.3.10"
38
+ },
39
+ {
40
+ "owner": "propertiesSchemaJson",
41
+ "description": "Adapter properties defined in the propertiesSchema file",
42
+ "value": 78
43
+ },
44
+ {
45
+ "owner": "markdown",
46
+ "description": "Number of lines in the README.md",
47
+ "value": 344
48
+ },
49
+ {
50
+ "owner": "markdown",
51
+ "description": "Number of lines in the SUMMARY.md",
52
+ "value": 9
53
+ },
54
+ {
55
+ "owner": "markdown",
56
+ "description": "Number of lines in the PROPERTIES.md",
57
+ "value": 647
58
+ },
59
+ {
60
+ "owner": "markdown",
61
+ "description": "Number of lines in the TROUBLESHOOT.md",
62
+ "value": 48
63
+ },
64
+ {
65
+ "owner": "markdown",
66
+ "description": "Number of lines in the ENHANCE.md",
67
+ "value": 70
68
+ },
69
+ {
70
+ "owner": "markdown",
71
+ "description": "Number of lines in the BROKER.md",
72
+ "value": 70
73
+ },
74
+ {
75
+ "owner": "unitTestJS",
76
+ "description": "Number of lines of code in unit tests",
77
+ "value": 2827
78
+ },
79
+ {
80
+ "owner": "unitTestJS",
81
+ "description": "Number of unit tests",
82
+ "value": 158
83
+ },
84
+ {
85
+ "owner": "integrationTestJS",
86
+ "description": "Number of lines of code in integration tests",
87
+ "value": 2087
88
+ },
89
+ {
90
+ "owner": "integrationTestJS",
91
+ "description": "Number of integration tests",
92
+ "value": 51
93
+ },
94
+ {
95
+ "owner": "staticFile",
96
+ "description": "Number of lines of code in adapterBase.js",
97
+ "value": 1453
98
+ },
99
+ {
100
+ "owner": "staticFile",
101
+ "description": "Number of static files added",
102
+ "value": 36
103
+ },
104
+ {
105
+ "owner": "Overall",
106
+ "description": "Total lines of Code",
107
+ "value": 6367
108
+ },
109
+ {
110
+ "owner": "Overall",
111
+ "description": "Total Tests",
112
+ "value": 209
113
+ },
114
+ {
115
+ "owner": "Overall",
116
+ "description": "Total Files",
117
+ "value": 6
118
+ }
119
+ ]
120
+ }
@@ -21,8 +21,14 @@
21
21
  "token_timeout": 600000,
22
22
  "token_cache": "local",
23
23
  "invalid_token_error": 401,
24
- "auth_field": "header.headers.Authorization",
25
- "auth_field_format": "Basic {b64}{username}:{password}{/b64}",
24
+ "auth_field": [
25
+ "header.headers.VZ-M2M-Token",
26
+ "header.headers.Authorization"
27
+ ],
28
+ "auth_field_format": [
29
+ "{token}",
30
+ "Bearer {getAccessToken.responseFields.accessToken}"
31
+ ],
26
32
  "auth_logging": false,
27
33
  "client_id": "",
28
34
  "client_secret": "",
@@ -35,10 +41,27 @@
35
41
  },
36
42
  "multiStepAuthCalls": [
37
43
  {
38
- "name": "",
39
- "requestFields": {},
40
- "responseFields": {},
41
- "successfullResponseCode": 200
44
+ "name": "getAccessToken",
45
+ "requestFields": {
46
+ "grant_type": "client_credentials",
47
+ "header.Authorization": "Basic <token>"
48
+ },
49
+ "responseFields": {
50
+ "accessToken": "access_token"
51
+ },
52
+ "successfullResponseCode": 200
53
+ },
54
+ {
55
+ "name": "getSessionToken",
56
+ "requestFields": {
57
+ "header.Authorization": "Bearer {getAccessToken.responseFields.accessToken}",
58
+ "username": "<username>",
59
+ "password": "<password>"
60
+ },
61
+ "responseFields": {
62
+ "token": "sessionToken"
63
+ },
64
+ "successfullResponseCode": 200
42
65
  }
43
66
  ]
44
67
  },
@@ -116,30 +139,32 @@
116
139
  }
117
140
  },
118
141
  "devicebroker": {
142
+ "enabled": false,
119
143
  "getDevice": [
120
144
  {
121
- "path": "/get/devices/{id}",
145
+ "path": "/not/mapped",
122
146
  "method": "GET",
123
147
  "query": {},
124
148
  "body": {},
125
149
  "headers": {},
126
150
  "handleFailure": "ignore",
127
151
  "requestFields": {
128
- "id": "name"
152
+ "insample": "{port}"
129
153
  },
130
154
  "responseDatakey": "",
131
155
  "responseFields": {
132
- "name": "host",
133
- "ostype": "os",
134
- "ostypePrefix": "system-",
135
- "ipaddress": "attributes.ipaddr",
136
- "port": "443"
156
+ "name": "{this}{||}{that}",
157
+ "ostype": "{osfield}",
158
+ "ostypePrefix": "meraki-",
159
+ "port": "{port}",
160
+ "ipaddress": "{ip_addr}",
161
+ "serial" : "{serial}"
137
162
  }
138
163
  }
139
164
  ],
140
165
  "getDevicesFiltered": [
141
166
  {
142
- "path": "/get/devices",
167
+ "path": "/not/mapped",
143
168
  "method": "GET",
144
169
  "pagination": {
145
170
  "offsetVar": "",
@@ -154,42 +179,44 @@
154
179
  "requestFields": {},
155
180
  "responseDatakey": "",
156
181
  "responseFields": {
157
- "name": "host",
158
- "ostype": "os",
159
- "ostypePrefix": "system-",
160
- "ipaddress": "attributes.ipaddr",
161
- "port": "443"
182
+ "name": "{this}{||}{that}",
183
+ "ostype": "{osfield}",
184
+ "ostypePrefix": "meraki-",
185
+ "port": "{port}",
186
+ "ipaddress": "{ip_addr}",
187
+ "serial" : "{serial}",
188
+ "id": "{myid}"
162
189
  }
163
190
  }
164
191
  ],
165
192
  "isAlive": [
166
193
  {
167
- "path": "/get/devices/{id}/status",
194
+ "path": "/not/mapped/{devID}",
168
195
  "method": "GET",
169
196
  "query": {},
170
197
  "body": {},
171
198
  "headers": {},
172
199
  "handleFailure": "ignore",
173
200
  "requestFields": {
174
- "id": "name"
201
+ "devID": "{id}"
175
202
  },
176
203
  "responseDatakey": "",
177
204
  "responseFields": {
178
- "status": "status",
179
- "statusValue": "online"
205
+ "status": "return2xx",
206
+ "statusValue": "AD.200"
180
207
  }
181
208
  }
182
209
  ],
183
210
  "getConfig": [
184
211
  {
185
- "path": "/get/devices/{id}/configPart1",
212
+ "path": "/not/mapped/{devID}",
186
213
  "method": "GET",
187
214
  "query": {},
188
215
  "body": {},
189
216
  "headers": {},
190
217
  "handleFailure": "ignore",
191
218
  "requestFields": {
192
- "id": "name"
219
+ "devID": "{id}"
193
220
  },
194
221
  "responseDatakey": "",
195
222
  "responseFields": {}
@@ -197,7 +224,7 @@
197
224
  ],
198
225
  "getCount": [
199
226
  {
200
- "path": "/get/devices",
227
+ "path": "/not/mapped",
201
228
  "method": "GET",
202
229
  "query": {},
203
230
  "body": {},
@@ -213,15 +240,15 @@
213
240
  "enabled": false,
214
241
  "entities": [
215
242
  {
216
- "entityType": "",
217
- "frequency": 1440,
243
+ "entityType": "device",
244
+ "frequency": 3600,
218
245
  "flushOnFail": false,
219
- "limit": 1000,
246
+ "limit": 10000,
220
247
  "retryAttempts": 5,
221
248
  "sort": true,
222
249
  "populate": [
223
250
  {
224
- "path": "",
251
+ "path": "/not/mapped",
225
252
  "method": "GET",
226
253
  "pagination": {
227
254
  "offsetVar": "",
@@ -235,7 +262,15 @@
235
262
  "handleFailure": "ignore",
236
263
  "requestFields": {},
237
264
  "responseDatakey": "",
238
- "responseFields": {}
265
+ "responseFields": {
266
+ "name": "{this}{||}{that}",
267
+ "ostype": "{osfield}",
268
+ "ostypePrefix": "meraki-",
269
+ "port": "{port}",
270
+ "ipaddress": "{ip_addr}",
271
+ "serial" : "{serial}",
272
+ "id": "{myid}"
273
+ }
239
274
  }
240
275
  ],
241
276
  "cachedTasks": [
@@ -46,6 +46,7 @@ samProps.ssl.accept_invalid_cert = false;
46
46
  if (samProps.request.attempt_timeout < 30000) {
47
47
  samProps.request.attempt_timeout = 30000;
48
48
  }
49
+ samProps.devicebroker.enabled = true;
49
50
  const attemptTimeout = samProps.request.attempt_timeout;
50
51
  const { stub } = samProps;
51
52
 
@@ -284,7 +284,6 @@ describe('[unit] Thingspace Adapter Test', () => {
284
284
  assert.equal('mocha test/unit/adapterBaseTestUnit.js --LOG=error', packageDotJson.scripts['test:baseunit']);
285
285
  assert.equal('mocha test/unit/adapterTestUnit.js --LOG=error', packageDotJson.scripts['test:unit']);
286
286
  assert.equal('mocha test/integration/adapterTestIntegration.js --LOG=error', packageDotJson.scripts['test:integration']);
287
- assert.equal('nyc --reporter html --reporter text mocha --reporter dot test/*', packageDotJson.scripts['test:cover']);
288
287
  assert.equal('npm run test:baseunit && npm run test:unit && npm run test:integration', packageDotJson.scripts.test);
289
288
  assert.equal('npm publish --registry=https://registry.npmjs.org --access=public', packageDotJson.scripts.deploy);
290
289
  assert.equal('npm run deploy', packageDotJson.scripts.build);
@@ -321,7 +320,6 @@ describe('[unit] Thingspace Adapter Test', () => {
321
320
  assert.equal('^11.1.1', packageDotJson.dependencies['fs-extra']);
322
321
  assert.equal('^10.3.0', packageDotJson.dependencies.mocha);
323
322
  assert.equal('^2.0.1', packageDotJson.dependencies['mocha-param']);
324
- assert.equal('^15.1.0', packageDotJson.dependencies.nyc);
325
323
  assert.equal('^0.4.4', packageDotJson.dependencies.ping);
326
324
  assert.equal('^1.4.10', packageDotJson.dependencies['readline-sync']);
327
325
  assert.equal('^7.5.3', packageDotJson.dependencies.semver);