@c8y/client 1018.485.16 → 1018.486.5
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/README.md +15 -3
- package/lib/bundles/client.umd.js +11488 -11338
- package/lib/bundles/client.umd.js.map +1 -1
- package/lib/bundles/client.umd.min.js +1 -1
- package/lib/bundles/client.umd.min.js.map +1 -1
- package/lib/cjs/src/Client.js +102 -5
- package/lib/cjs/src/Client.js.map +1 -1
- package/lib/cjs/src/core/BearerAuth.js +32 -0
- package/lib/cjs/src/core/BearerAuth.js.map +1 -0
- package/lib/cjs/src/core/MicroserviceClientRequestAuth.js.map +1 -1
- package/lib/cjs/src/core/NodeJSCookieAuth.js +21 -0
- package/lib/cjs/src/core/NodeJSCookieAuth.js.map +1 -0
- package/lib/cjs/src/core/index.js +2 -0
- package/lib/cjs/src/core/index.js.map +1 -1
- package/lib/esm2015/src/Client.js +110 -5
- package/lib/esm2015/src/Client.js.map +1 -1
- package/lib/esm2015/src/core/BearerAuth.js +28 -0
- package/lib/esm2015/src/core/BearerAuth.js.map +1 -0
- package/lib/esm2015/src/core/MicroserviceClientRequestAuth.js.map +1 -1
- package/lib/esm2015/src/core/NodeJSCookieAuth.js +17 -0
- package/lib/esm2015/src/core/NodeJSCookieAuth.js.map +1 -0
- package/lib/esm2015/src/core/index.js +2 -0
- package/lib/esm2015/src/core/index.js.map +1 -1
- package/lib/src/Client.d.ts +71 -1
- package/lib/src/core/BearerAuth.d.ts +12 -0
- package/lib/src/core/MicroserviceClientRequestAuth.d.ts +4 -4
- package/lib/src/core/NodeJSCookieAuth.d.ts +10 -0
- package/lib/src/core/index.d.ts +2 -0
- package/package.json +1 -1
package/lib/cjs/src/Client.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Client = void 0;
|
|
4
|
+
const core_1 = require("./core");
|
|
4
5
|
const realtime_1 = require("./realtime");
|
|
5
6
|
const services_1 = require("./services");
|
|
6
7
|
class Client {
|
|
@@ -25,13 +26,72 @@ class Client {
|
|
|
25
26
|
static async authenticate(credentials, baseUrl) {
|
|
26
27
|
const auth = new services_1.BasicAuth(credentials);
|
|
27
28
|
const clientCore = new services_1.FetchClient(auth, baseUrl);
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
const tenantName = await this.getCurrentTenant(clientCore);
|
|
30
|
+
const client = new Client(auth, baseUrl);
|
|
31
|
+
client.core.tenant = tenantName;
|
|
32
|
+
return client;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
36
|
+
* Login call goes to `/tenant/oauth/token` and the retrieved token will be added in the `Authorization` header to subsequent requests.
|
|
37
|
+
*
|
|
38
|
+
* **Example**
|
|
39
|
+
* ```typescript
|
|
40
|
+
*
|
|
41
|
+
* let client: Client;
|
|
42
|
+
* (async () => {
|
|
43
|
+
* client = await Client.authenticateViaOAuthInternal({
|
|
44
|
+
* user: 'testuser',
|
|
45
|
+
* password: 'password1337!'
|
|
46
|
+
* }, 'https://acme.cumulocity.com');
|
|
47
|
+
*
|
|
48
|
+
* //you have access to the client api now
|
|
49
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
50
|
+
* })();
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
static async authenticateViaOAuthInternal(credentials, baseUrl) {
|
|
54
|
+
const token = await this.loginViaOAuthInternal(credentials, true, baseUrl);
|
|
55
|
+
const auth = new core_1.BearerAuth(token);
|
|
56
|
+
const clientCore = new services_1.FetchClient(auth, baseUrl);
|
|
57
|
+
const tenantName = credentials.tenant || (await this.getCurrentTenant(clientCore));
|
|
58
|
+
const client = new Client(auth, baseUrl);
|
|
59
|
+
client.core.tenant = tenantName;
|
|
60
|
+
return client;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
64
|
+
* Login call goes to `/tenant/oauth` and the retrieved token will be attached as a Cookie in browser environments to subsequent requests (using 'CookieAuth').
|
|
65
|
+
* In none browser environments (e.g. nodejs) the retrieved token will be added in the `Authorization` header to subsequent requests (using 'NodeJSCookieAuth').
|
|
66
|
+
*
|
|
67
|
+
* **Example**
|
|
68
|
+
* ```typescript
|
|
69
|
+
*
|
|
70
|
+
* let client: Client;
|
|
71
|
+
* (async () => {
|
|
72
|
+
* client = await Client.authenticateViaOAuthInternalCookie({
|
|
73
|
+
* user: 'testuser',
|
|
74
|
+
* password: 'password1337!'
|
|
75
|
+
* }, 'https://acme.cumulocity.com');
|
|
76
|
+
*
|
|
77
|
+
* //you have access to the client api now
|
|
78
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
79
|
+
* })();
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
static async authenticateViaOAuthInternalCookie(credentials, baseUrl) {
|
|
83
|
+
const response = await this.loginViaOAuthInternal(credentials, false, baseUrl);
|
|
84
|
+
let auth;
|
|
85
|
+
if (typeof document === 'undefined') {
|
|
86
|
+
auth = new core_1.NodeJSCookieAuth(response);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
auth = new core_1.CookieAuth();
|
|
31
90
|
}
|
|
32
|
-
const
|
|
91
|
+
const clientCore = new services_1.FetchClient(auth, baseUrl);
|
|
92
|
+
const tenantName = credentials.tenant || (await this.getCurrentTenant(clientCore));
|
|
33
93
|
const client = new Client(auth, baseUrl);
|
|
34
|
-
client.core.tenant =
|
|
94
|
+
client.core.tenant = tenantName;
|
|
35
95
|
return client;
|
|
36
96
|
}
|
|
37
97
|
/**
|
|
@@ -102,6 +162,43 @@ class Client {
|
|
|
102
162
|
};
|
|
103
163
|
});
|
|
104
164
|
}
|
|
165
|
+
static async loginViaOAuthInternal(credentials, bearerAuth = true, baseUrl) {
|
|
166
|
+
const auth = new services_1.BasicAuth(credentials);
|
|
167
|
+
const clientCore = new services_1.FetchClient(auth, baseUrl);
|
|
168
|
+
let url = '/tenant/oauth';
|
|
169
|
+
if (bearerAuth) {
|
|
170
|
+
url += `/token`;
|
|
171
|
+
}
|
|
172
|
+
if (credentials.tenant) {
|
|
173
|
+
url += `?tenant_id=${credentials.tenant}`;
|
|
174
|
+
}
|
|
175
|
+
const params = new URLSearchParams({
|
|
176
|
+
grant_type: 'PASSWORD',
|
|
177
|
+
username: credentials.user,
|
|
178
|
+
password: credentials.password,
|
|
179
|
+
tfa_code: credentials.tfa
|
|
180
|
+
});
|
|
181
|
+
const res = await clientCore.fetch(url, {
|
|
182
|
+
method: 'POST',
|
|
183
|
+
body: params.toString(),
|
|
184
|
+
headers: {
|
|
185
|
+
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
if (res.status !== 200) {
|
|
189
|
+
throw { res };
|
|
190
|
+
}
|
|
191
|
+
if (bearerAuth) {
|
|
192
|
+
const body = await res.json();
|
|
193
|
+
return body['access_token'];
|
|
194
|
+
}
|
|
195
|
+
return res;
|
|
196
|
+
}
|
|
197
|
+
static async getCurrentTenant(fetchClient) {
|
|
198
|
+
const tenantService = new services_1.TenantService(fetchClient);
|
|
199
|
+
const { data: tenant } = await tenantService.current();
|
|
200
|
+
return tenant.name;
|
|
201
|
+
}
|
|
105
202
|
/**
|
|
106
203
|
* Initializes a new Client, which allows to request data from the API. Differently
|
|
107
204
|
* to Client.authenticate([...]) it needs a tenant given and does not verify if the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/Client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BearerAuth = void 0;
|
|
4
|
+
const secrets = new WeakMap();
|
|
5
|
+
class BearerAuth {
|
|
6
|
+
constructor(token) {
|
|
7
|
+
secrets.set(this, { token });
|
|
8
|
+
}
|
|
9
|
+
getFetchOptions(options) {
|
|
10
|
+
const secret = secrets.get(this);
|
|
11
|
+
const { token } = secret;
|
|
12
|
+
options.headers = Object.assign({ Authorization: `Bearer ${token}` }, options.headers);
|
|
13
|
+
return options;
|
|
14
|
+
}
|
|
15
|
+
updateCredentials({ token }) {
|
|
16
|
+
secrets.set(this, { token });
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
getCometdHandshake(config = {}) {
|
|
20
|
+
const secret = secrets.get(this);
|
|
21
|
+
const { token, tfa } = secret;
|
|
22
|
+
const KEY = 'com.cumulocity.authn';
|
|
23
|
+
const ext = (config.ext = config.ext || {});
|
|
24
|
+
ext[KEY] = Object.assign(ext[KEY] || {}, { token, tfa });
|
|
25
|
+
return config;
|
|
26
|
+
}
|
|
27
|
+
logout() {
|
|
28
|
+
secrets.set(this, {});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.BearerAuth = BearerAuth;
|
|
32
|
+
//# sourceMappingURL=BearerAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearerAuth.js","sourceRoot":"","sources":["../../../../src/core/BearerAuth.ts"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAa,UAAU;IACrB,YAAY,KAAc;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,eAAe,CAAC,OAAY;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,EAAE,KAAK,EAAgB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,SAAwB,EAAE;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;CACF;AA5BD,gCA4BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MicroserviceClientRequestAuth.js","sourceRoot":"","sources":["../../../../src/core/MicroserviceClientRequestAuth.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,6BAA6B;IAOxC;;;;;OAKG;IACH,YAAY,UAA6C,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,iBAAiB;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,OAAY;QAC1B,MAAM,OAAO,GAAQ;YACnB,aAAa,EAAE,IAAI,CAAC,mBAAmB;gBACrC,CAAC,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;gBACtC,CAAC,CAAC,IAAI,CAAC,mBAAmB;YAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACrE,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,SAA2C,EAAE;QAC9D,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACtC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC/E;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"MicroserviceClientRequestAuth.js","sourceRoot":"","sources":["../../../../src/core/MicroserviceClientRequestAuth.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,6BAA6B;IAOxC;;;;;OAKG;IACH,YAAY,UAA6C,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,iBAAiB;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,OAAY;QAC1B,MAAM,OAAO,GAAQ;YACnB,aAAa,EAAE,IAAI,CAAC,mBAAmB;gBACrC,CAAC,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;gBACtC,CAAC,CAAC,IAAI,CAAC,mBAAmB;YAC5B,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACrE,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,SAA2C,EAAE;QAC9D,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACtC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC/E;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;IAES,cAAc,CAAC,OAA0C,EAAE,IAAY;QAC/E,IAAI;YACF,MAAM,KAAK,GACT,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,kBAAkB,CAAC,CAAC;YAC7F,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACxC;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;CACF;AAnED,sEAmEC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeJSCookieAuth = void 0;
|
|
4
|
+
const MicroserviceClientRequestAuth_1 = require("./MicroserviceClientRequestAuth");
|
|
5
|
+
/**
|
|
6
|
+
* Extracts the `authorization` cookie from the `set-cookie` header of a response.
|
|
7
|
+
*
|
|
8
|
+
* Meant to be used in none browser environments like nodejs which don't deal with cookies.
|
|
9
|
+
*/
|
|
10
|
+
class NodeJSCookieAuth extends MicroserviceClientRequestAuth_1.MicroserviceClientRequestAuth {
|
|
11
|
+
constructor(cookieResponse) {
|
|
12
|
+
super();
|
|
13
|
+
const setCookiesHeader = cookieResponse.headers.get('set-cookie');
|
|
14
|
+
if (!setCookiesHeader) {
|
|
15
|
+
throw Error('No Cookie set');
|
|
16
|
+
}
|
|
17
|
+
this.authTokenFromCookie = this.getCookieValue({ cookie: setCookiesHeader }, 'authorization');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.NodeJSCookieAuth = NodeJSCookieAuth;
|
|
21
|
+
//# sourceMappingURL=NodeJSCookieAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeJSCookieAuth.js","sourceRoot":"","sources":["../../../../src/core/NodeJSCookieAuth.ts"],"names":[],"mappings":";;;AACA,mFAAgF;AAEhF;;;;GAIG;AACH,MAAa,gBAAiB,SAAQ,6DAA6B;IACjE,YAAY,cAA8B;QACxC,KAAK,EAAE,CAAC;QAER,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,eAAe,CAAC,CAAC;IAChG,CAAC;CACF;AAVD,4CAUC"}
|
|
@@ -18,8 +18,10 @@ __exportStar(require("./Service"), exports);
|
|
|
18
18
|
__exportStar(require("./FetchClient"), exports);
|
|
19
19
|
__exportStar(require("./IAuthentication"), exports);
|
|
20
20
|
__exportStar(require("./BasicAuth"), exports);
|
|
21
|
+
__exportStar(require("./BearerAuth"), exports);
|
|
21
22
|
__exportStar(require("./CookieAuth"), exports);
|
|
22
23
|
__exportStar(require("./MicroserviceClientRequestAuth"), exports);
|
|
24
|
+
__exportStar(require("./NodeJSCookieAuth"), exports);
|
|
23
25
|
__exportStar(require("./IIdentified"), exports);
|
|
24
26
|
__exportStar(require("./INamed"), exports);
|
|
25
27
|
__exportStar(require("./IResult"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,kEAAgD;AAChD,gDAA8B;AAC9B,2CAAyB;AACzB,4CAA0B;AAC1B,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,+DAA6C;AAC7C,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,sDAAoC;AACpC,yDAAuC;AACvC,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,+CAA6B;AAC7B,+CAA6B;AAC7B,kEAAgD;AAChD,qDAAmC;AACnC,gDAA8B;AAC9B,2CAAyB;AACzB,4CAA0B;AAC1B,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AACjC,iDAA+B;AAC/B,+DAA6C;AAC7C,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,sDAAoC;AACpC,yDAAuC;AACvC,gDAA8B"}
|
|
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { BearerAuth, CookieAuth, NodeJSCookieAuth } from './core';
|
|
10
11
|
import { Realtime } from './realtime';
|
|
11
12
|
import { FetchClient, BasicAuth, AlarmService, ApplicationService, AuditService, DeviceRegistrationBulkService, DeviceRegistrationService, EventService, InventoryBinaryService, InventoryRoleService, InventoryService, MeasurementService, OperationBulkService, OperationService, SystemOptionsService, TenantOptionsService, TenantSecurityOptionsService, TenantLoginOptionsService, TenantService, UserGroupService, UserRoleService, UserService, IdentityService, SmartGroupsService, SmartRulesService } from './services';
|
|
12
13
|
export class Client {
|
|
@@ -32,13 +33,76 @@ export class Client {
|
|
|
32
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
34
|
const auth = new BasicAuth(credentials);
|
|
34
35
|
const clientCore = new FetchClient(auth, baseUrl);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
const tenantName = yield this.getCurrentTenant(clientCore);
|
|
37
|
+
const client = new Client(auth, baseUrl);
|
|
38
|
+
client.core.tenant = tenantName;
|
|
39
|
+
return client;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
44
|
+
* Login call goes to `/tenant/oauth/token` and the retrieved token will be added in the `Authorization` header to subsequent requests.
|
|
45
|
+
*
|
|
46
|
+
* **Example**
|
|
47
|
+
* ```typescript
|
|
48
|
+
*
|
|
49
|
+
* let client: Client;
|
|
50
|
+
* (async () => {
|
|
51
|
+
* client = await Client.authenticateViaOAuthInternal({
|
|
52
|
+
* user: 'testuser',
|
|
53
|
+
* password: 'password1337!'
|
|
54
|
+
* }, 'https://acme.cumulocity.com');
|
|
55
|
+
*
|
|
56
|
+
* //you have access to the client api now
|
|
57
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
58
|
+
* })();
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
static authenticateViaOAuthInternal(credentials, baseUrl) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const token = yield this.loginViaOAuthInternal(credentials, true, baseUrl);
|
|
64
|
+
const auth = new BearerAuth(token);
|
|
65
|
+
const clientCore = new FetchClient(auth, baseUrl);
|
|
66
|
+
const tenantName = credentials.tenant || (yield this.getCurrentTenant(clientCore));
|
|
67
|
+
const client = new Client(auth, baseUrl);
|
|
68
|
+
client.core.tenant = tenantName;
|
|
69
|
+
return client;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
74
|
+
* Login call goes to `/tenant/oauth` and the retrieved token will be attached as a Cookie in browser environments to subsequent requests (using 'CookieAuth').
|
|
75
|
+
* In none browser environments (e.g. nodejs) the retrieved token will be added in the `Authorization` header to subsequent requests (using 'NodeJSCookieAuth').
|
|
76
|
+
*
|
|
77
|
+
* **Example**
|
|
78
|
+
* ```typescript
|
|
79
|
+
*
|
|
80
|
+
* let client: Client;
|
|
81
|
+
* (async () => {
|
|
82
|
+
* client = await Client.authenticateViaOAuthInternalCookie({
|
|
83
|
+
* user: 'testuser',
|
|
84
|
+
* password: 'password1337!'
|
|
85
|
+
* }, 'https://acme.cumulocity.com');
|
|
86
|
+
*
|
|
87
|
+
* //you have access to the client api now
|
|
88
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
89
|
+
* })();
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
static authenticateViaOAuthInternalCookie(credentials, baseUrl) {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
const response = yield this.loginViaOAuthInternal(credentials, false, baseUrl);
|
|
95
|
+
let auth;
|
|
96
|
+
if (typeof document === 'undefined') {
|
|
97
|
+
auth = new NodeJSCookieAuth(response);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
auth = new CookieAuth();
|
|
38
101
|
}
|
|
39
|
-
const
|
|
102
|
+
const clientCore = new FetchClient(auth, baseUrl);
|
|
103
|
+
const tenantName = credentials.tenant || (yield this.getCurrentTenant(clientCore));
|
|
40
104
|
const client = new Client(auth, baseUrl);
|
|
41
|
-
client.core.tenant =
|
|
105
|
+
client.core.tenant = tenantName;
|
|
42
106
|
return client;
|
|
43
107
|
});
|
|
44
108
|
}
|
|
@@ -114,6 +178,47 @@ export class Client {
|
|
|
114
178
|
});
|
|
115
179
|
});
|
|
116
180
|
}
|
|
181
|
+
static loginViaOAuthInternal(credentials, bearerAuth = true, baseUrl) {
|
|
182
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
const auth = new BasicAuth(credentials);
|
|
184
|
+
const clientCore = new FetchClient(auth, baseUrl);
|
|
185
|
+
let url = '/tenant/oauth';
|
|
186
|
+
if (bearerAuth) {
|
|
187
|
+
url += `/token`;
|
|
188
|
+
}
|
|
189
|
+
if (credentials.tenant) {
|
|
190
|
+
url += `?tenant_id=${credentials.tenant}`;
|
|
191
|
+
}
|
|
192
|
+
const params = new URLSearchParams({
|
|
193
|
+
grant_type: 'PASSWORD',
|
|
194
|
+
username: credentials.user,
|
|
195
|
+
password: credentials.password,
|
|
196
|
+
tfa_code: credentials.tfa
|
|
197
|
+
});
|
|
198
|
+
const res = yield clientCore.fetch(url, {
|
|
199
|
+
method: 'POST',
|
|
200
|
+
body: params.toString(),
|
|
201
|
+
headers: {
|
|
202
|
+
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
if (res.status !== 200) {
|
|
206
|
+
throw { res };
|
|
207
|
+
}
|
|
208
|
+
if (bearerAuth) {
|
|
209
|
+
const body = yield res.json();
|
|
210
|
+
return body['access_token'];
|
|
211
|
+
}
|
|
212
|
+
return res;
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
static getCurrentTenant(fetchClient) {
|
|
216
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
217
|
+
const tenantService = new TenantService(fetchClient);
|
|
218
|
+
const { data: tenant } = yield tenantService.current();
|
|
219
|
+
return tenant.name;
|
|
220
|
+
});
|
|
221
|
+
}
|
|
117
222
|
/**
|
|
118
223
|
* Initializes a new Client, which allows to request data from the API. Differently
|
|
119
224
|
* to Client.authenticate([...]) it needs a tenant given and does not verify if the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/Client.ts"],"names":[],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const secrets = new WeakMap();
|
|
2
|
+
export class BearerAuth {
|
|
3
|
+
constructor(token) {
|
|
4
|
+
secrets.set(this, { token });
|
|
5
|
+
}
|
|
6
|
+
getFetchOptions(options) {
|
|
7
|
+
const secret = secrets.get(this);
|
|
8
|
+
const { token } = secret;
|
|
9
|
+
options.headers = Object.assign({ Authorization: `Bearer ${token}` }, options.headers);
|
|
10
|
+
return options;
|
|
11
|
+
}
|
|
12
|
+
updateCredentials({ token }) {
|
|
13
|
+
secrets.set(this, { token });
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
getCometdHandshake(config = {}) {
|
|
17
|
+
const secret = secrets.get(this);
|
|
18
|
+
const { token, tfa } = secret;
|
|
19
|
+
const KEY = 'com.cumulocity.authn';
|
|
20
|
+
const ext = (config.ext = config.ext || {});
|
|
21
|
+
ext[KEY] = Object.assign(ext[KEY] || {}, { token, tfa });
|
|
22
|
+
return config;
|
|
23
|
+
}
|
|
24
|
+
logout() {
|
|
25
|
+
secrets.set(this, {});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=BearerAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BearerAuth.js","sourceRoot":"","sources":["../../../../src/core/BearerAuth.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,OAAO,UAAU;IACrB,YAAY,KAAc;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,eAAe,CAAC,OAAY;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iBAAiB,CAAC,EAAE,KAAK,EAAgB;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,SAAwB,EAAE;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC9B,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MicroserviceClientRequestAuth.js","sourceRoot":"","sources":["../../../../src/core/MicroserviceClientRequestAuth.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAOxC;;;;;OAKG;IACH,YAAY,UAA6C,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,iBAAiB;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,OAAY;QAC1B,MAAM,OAAO,mBACX,aAAa,EAAE,IAAI,CAAC,mBAAmB;gBACrC,CAAC,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;gBACtC,CAAC,CAAC,IAAI,CAAC,mBAAmB,IACzB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACrE,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,SAA2C,EAAE;QAC9D,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACtC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC/E;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAI,KAAK,IAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAG,CAAC;QAChG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;
|
|
1
|
+
{"version":3,"file":"MicroserviceClientRequestAuth.js","sourceRoot":"","sources":["../../../../src/core/MicroserviceClientRequestAuth.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IAOxC;;;;;OAKG;IACH,YAAY,UAA6C,EAAE;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IACnD,CAAC;IAED,iBAAiB;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,OAAY;QAC1B,MAAM,OAAO,mBACX,aAAa,EAAE,IAAI,CAAC,mBAAmB;gBACrC,CAAC,CAAC,UAAU,IAAI,CAAC,mBAAmB,EAAE;gBACtC,CAAC,CAAC,IAAI,CAAC,mBAAmB,IACzB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACrE,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,SAA2C,EAAE;QAC9D,MAAM,GAAG,GAAG,sBAAsB,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACtC,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC/E;QACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAI,KAAK,IAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAG,CAAC;QAChG,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,OAAO,IAAI,CAAC,mBAAmB,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;IACH,CAAC;IAES,cAAc,CAAC,OAA0C,EAAE,IAAY;QAC/E,IAAI;YACF,MAAM,KAAK,GACT,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,kBAAkB,CAAC,CAAC;YAC7F,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACxC;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MicroserviceClientRequestAuth } from './MicroserviceClientRequestAuth';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the `authorization` cookie from the `set-cookie` header of a response.
|
|
4
|
+
*
|
|
5
|
+
* Meant to be used in none browser environments like nodejs which don't deal with cookies.
|
|
6
|
+
*/
|
|
7
|
+
export class NodeJSCookieAuth extends MicroserviceClientRequestAuth {
|
|
8
|
+
constructor(cookieResponse) {
|
|
9
|
+
super();
|
|
10
|
+
const setCookiesHeader = cookieResponse.headers.get('set-cookie');
|
|
11
|
+
if (!setCookiesHeader) {
|
|
12
|
+
throw Error('No Cookie set');
|
|
13
|
+
}
|
|
14
|
+
this.authTokenFromCookie = this.getCookieValue({ cookie: setCookiesHeader }, 'authorization');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=NodeJSCookieAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeJSCookieAuth.js","sourceRoot":"","sources":["../../../../src/core/NodeJSCookieAuth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,6BAA6B;IACjE,YAAY,cAA8B;QACxC,KAAK,EAAE,CAAC;QAER,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,KAAK,CAAC,eAAe,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,eAAe,CAAC,CAAC;IAChG,CAAC;CACF"}
|
|
@@ -2,8 +2,10 @@ export * from './Service';
|
|
|
2
2
|
export * from './FetchClient';
|
|
3
3
|
export * from './IAuthentication';
|
|
4
4
|
export * from './BasicAuth';
|
|
5
|
+
export * from './BearerAuth';
|
|
5
6
|
export * from './CookieAuth';
|
|
6
7
|
export * from './MicroserviceClientRequestAuth';
|
|
8
|
+
export * from './NodeJSCookieAuth';
|
|
7
9
|
export * from './IIdentified';
|
|
8
10
|
export * from './INamed';
|
|
9
11
|
export * from './IResult';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iCAAiC,CAAC;AAChD,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC"}
|
package/lib/src/Client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAuthentication, ICredentials } from './core';
|
|
1
|
+
import { IAuthentication, ICredentials, IFetchResponse } from './core';
|
|
2
2
|
import { Realtime } from './realtime';
|
|
3
3
|
import { FetchClient, AlarmService, ApplicationService, AuditService, DeviceRegistrationBulkService, DeviceRegistrationService, EventService, InventoryBinaryService, InventoryRoleService, InventoryService, MeasurementService, OperationBulkService, OperationService, SystemOptionsService, TenantOptionsService, TenantSecurityOptionsService, TenantLoginOptionsService, TenantService, UserGroupService, UserRoleService, UserService, IdentityService, SmartGroupsService, SmartRulesService } from './services';
|
|
4
4
|
export interface IBootstrapOptions {
|
|
@@ -28,6 +28,47 @@ export declare class Client {
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
static authenticate(credentials: ICredentials, baseUrl?: string): Promise<Client>;
|
|
31
|
+
/**
|
|
32
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
33
|
+
* Login call goes to `/tenant/oauth/token` and the retrieved token will be added in the `Authorization` header to subsequent requests.
|
|
34
|
+
*
|
|
35
|
+
* **Example**
|
|
36
|
+
* ```typescript
|
|
37
|
+
*
|
|
38
|
+
* let client: Client;
|
|
39
|
+
* (async () => {
|
|
40
|
+
* client = await Client.authenticateViaOAuthInternal({
|
|
41
|
+
* user: 'testuser',
|
|
42
|
+
* password: 'password1337!'
|
|
43
|
+
* }, 'https://acme.cumulocity.com');
|
|
44
|
+
*
|
|
45
|
+
* //you have access to the client api now
|
|
46
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
47
|
+
* })();
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
static authenticateViaOAuthInternal(credentials: ICredentials, baseUrl?: string): Promise<Client>;
|
|
51
|
+
/**
|
|
52
|
+
* Authenticates the given user via OAuth Internal. Determines the tenant by itself via a call to tenant/currentTenant.
|
|
53
|
+
* Login call goes to `/tenant/oauth` and the retrieved token will be attached as a Cookie in browser environments to subsequent requests (using 'CookieAuth').
|
|
54
|
+
* In none browser environments (e.g. nodejs) the retrieved token will be added in the `Authorization` header to subsequent requests (using 'NodeJSCookieAuth').
|
|
55
|
+
*
|
|
56
|
+
* **Example**
|
|
57
|
+
* ```typescript
|
|
58
|
+
*
|
|
59
|
+
* let client: Client;
|
|
60
|
+
* (async () => {
|
|
61
|
+
* client = await Client.authenticateViaOAuthInternalCookie({
|
|
62
|
+
* user: 'testuser',
|
|
63
|
+
* password: 'password1337!'
|
|
64
|
+
* }, 'https://acme.cumulocity.com');
|
|
65
|
+
*
|
|
66
|
+
* //you have access to the client api now
|
|
67
|
+
* const { data, paging, res }); = await client.inventory.list({ pageSize: 100 });
|
|
68
|
+
* })();
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
static authenticateViaOAuthInternalCookie(credentials: ICredentials, baseUrl?: string): Promise<Client>;
|
|
31
72
|
/**
|
|
32
73
|
* Allows to use http to register a device on the platform.
|
|
33
74
|
*
|
|
@@ -58,6 +99,35 @@ export declare class Client {
|
|
|
58
99
|
* ```
|
|
59
100
|
*/
|
|
60
101
|
static getMicroserviceSubscriptions(bootstrapCredentials: ICredentials, baseUrl: string): Promise<ICredentials[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Performs the OAuth Internal login.
|
|
104
|
+
*
|
|
105
|
+
* If the parameter `bearerAuth` is set to true (default), the `/tenant/oauth/token` endpoint is called and a string containing the token returned.
|
|
106
|
+
*
|
|
107
|
+
* If the parameter `bearerAuth` is set to false, the `/tenant/oauth` endpoint is called and a Cookie should be set and the response returned.
|
|
108
|
+
* The response can be used in none browser environments to extract the `set-cookie` header from it.
|
|
109
|
+
*
|
|
110
|
+
* **Example**
|
|
111
|
+
* ```typescript
|
|
112
|
+
*
|
|
113
|
+
* (async () => {
|
|
114
|
+
* const client = await Client.loginViaOAuthInternal({
|
|
115
|
+
* tenant: process.env.C8Y_BOOTSTRAP_TENANT,
|
|
116
|
+
* user: process.env.C8Y_BOOTSTRAP_USER,
|
|
117
|
+
* password: process.env.C8Y_BOOTSTRAP_PASSWORD
|
|
118
|
+
* }, true, process.env.C8Y_BASEURL);
|
|
119
|
+
*
|
|
120
|
+
* // you have access to the client api now
|
|
121
|
+
* const option = client.options.tenant.detail({
|
|
122
|
+
* category: process.env.APPLICATION_KEY,
|
|
123
|
+
* key: 'someSetting'
|
|
124
|
+
* });
|
|
125
|
+
* })();
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
static loginViaOAuthInternal(credentials: ICredentials, bearerAuth?: true, baseUrl?: string): Promise<string>;
|
|
129
|
+
static loginViaOAuthInternal(credentials: ICredentials, bearerAuth: false, baseUrl?: string): Promise<IFetchResponse>;
|
|
130
|
+
private static getCurrentTenant;
|
|
61
131
|
alarm: AlarmService;
|
|
62
132
|
application: ApplicationService;
|
|
63
133
|
audit: AuditService;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IAuthentication, ICredentials } from './IAuthentication';
|
|
2
|
+
export declare class BearerAuth implements IAuthentication {
|
|
3
|
+
constructor(token?: string);
|
|
4
|
+
getFetchOptions(options: any): any;
|
|
5
|
+
updateCredentials({ token }: ICredentials): undefined;
|
|
6
|
+
getCometdHandshake(config?: {
|
|
7
|
+
ext?: any;
|
|
8
|
+
}): {
|
|
9
|
+
ext?: any;
|
|
10
|
+
};
|
|
11
|
+
logout(): void;
|
|
12
|
+
}
|
|
@@ -5,9 +5,9 @@ import { IAuthentication, IMicroserviceClientRequestHeaders } from './IAuthentic
|
|
|
5
5
|
* for Authorization to the Cumulocity API.
|
|
6
6
|
*/
|
|
7
7
|
export declare class MicroserviceClientRequestAuth implements IAuthentication {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
protected authTokenFromCookie: string | undefined;
|
|
9
|
+
protected authTokenFromHeader: string | undefined;
|
|
10
|
+
protected xsrfToken: string | undefined;
|
|
11
11
|
/**
|
|
12
12
|
* Authenticates using the credentials which were
|
|
13
13
|
* provided within the request headers of the
|
|
@@ -27,5 +27,5 @@ export declare class MicroserviceClientRequestAuth implements IAuthentication {
|
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
29
|
logout(): void;
|
|
30
|
-
|
|
30
|
+
protected getCookieValue(headers: IMicroserviceClientRequestHeaders, name: string): string;
|
|
31
31
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IFetchResponse } from './IFetchResponse';
|
|
2
|
+
import { MicroserviceClientRequestAuth } from './MicroserviceClientRequestAuth';
|
|
3
|
+
/**
|
|
4
|
+
* Extracts the `authorization` cookie from the `set-cookie` header of a response.
|
|
5
|
+
*
|
|
6
|
+
* Meant to be used in none browser environments like nodejs which don't deal with cookies.
|
|
7
|
+
*/
|
|
8
|
+
export declare class NodeJSCookieAuth extends MicroserviceClientRequestAuth {
|
|
9
|
+
constructor(cookieResponse: IFetchResponse);
|
|
10
|
+
}
|