@backstage/backend-app-api 0.7.2 → 0.7.3-next.1
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/CHANGELOG.md +28 -4
- package/alpha/package.json +1 -1
- package/dist/index.cjs.js +67 -57
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/package.json +28 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,40 @@
|
|
|
1
1
|
# @backstage/backend-app-api
|
|
2
2
|
|
|
3
|
-
## 0.7.2
|
|
3
|
+
## 0.7.2-next.1
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 09f8988: Remove explicit `alg` check for user tokens in `verifyToken`
|
|
8
|
+
- Updated dependencies
|
|
9
|
+
- @backstage/backend-common@0.22.0-next.1
|
|
10
|
+
- @backstage/backend-tasks@0.5.23-next.1
|
|
11
|
+
- @backstage/plugin-auth-node@0.4.13-next.1
|
|
12
|
+
- @backstage/plugin-permission-node@0.7.29-next.1
|
|
13
|
+
- @backstage/cli-node@0.2.5
|
|
14
|
+
- @backstage/config-loader@1.8.0
|
|
15
|
+
- @backstage/backend-plugin-api@0.6.18-next.1
|
|
8
16
|
|
|
9
|
-
## 0.7.1
|
|
17
|
+
## 0.7.1-next.0
|
|
10
18
|
|
|
11
19
|
### Patch Changes
|
|
12
20
|
|
|
13
|
-
-
|
|
21
|
+
- 4cd5ff0: Add ability to configure the Node.js HTTP Server when configuring the root HTTP Router service
|
|
22
|
+
- e8199b1: Move the JWKS registration outside of the lifecycle middleware
|
|
23
|
+
- dc8c5dd: The default `TokenManager` implementation no longer requires keys to be configured in production, but it will throw an errors when generating or authenticating tokens. The default `AuthService` implementation will now also provide additional context if such an error is throw when falling back to using the `TokenManager` service to generate tokens for outgoing requests.
|
|
24
|
+
- 025641b: Redact `meta` fields too with the logger
|
|
25
|
+
- 5863e02: Internal refactor to only create one external token handler
|
|
26
|
+
- Updated dependencies
|
|
27
|
+
- @backstage/plugin-auth-node@0.4.13-next.0
|
|
28
|
+
- @backstage/backend-common@0.21.8-next.0
|
|
29
|
+
- @backstage/backend-plugin-api@0.6.18-next.0
|
|
30
|
+
- @backstage/backend-tasks@0.5.23-next.0
|
|
31
|
+
- @backstage/cli-common@0.1.13
|
|
32
|
+
- @backstage/cli-node@0.2.5
|
|
33
|
+
- @backstage/config@1.2.0
|
|
34
|
+
- @backstage/config-loader@1.8.0
|
|
35
|
+
- @backstage/errors@1.2.4
|
|
36
|
+
- @backstage/types@1.1.1
|
|
37
|
+
- @backstage/plugin-permission-node@0.7.29-next.0
|
|
14
38
|
|
|
15
39
|
## 0.7.0
|
|
16
40
|
|
package/alpha/package.json
CHANGED
package/dist/index.cjs.js
CHANGED
|
@@ -26,10 +26,10 @@ var backendCommon = require('@backstage/backend-common');
|
|
|
26
26
|
var jose = require('jose');
|
|
27
27
|
var uuid = require('uuid');
|
|
28
28
|
var pluginAuthNode = require('@backstage/plugin-auth-node');
|
|
29
|
+
var types = require('@backstage/types');
|
|
29
30
|
var backendAppApi = require('@backstage/backend-app-api');
|
|
30
31
|
var cookie = require('cookie');
|
|
31
32
|
var Router = require('express-promise-router');
|
|
32
|
-
var types = require('@backstage/types');
|
|
33
33
|
var pathToRegexp = require('path-to-regexp');
|
|
34
34
|
var pluginPermissionNode = require('@backstage/plugin-permission-node');
|
|
35
35
|
var express = require('express');
|
|
@@ -618,7 +618,7 @@ var __accessCheck$e = (obj, member, msg) => {
|
|
|
618
618
|
};
|
|
619
619
|
var __privateGet$c = (obj, member, getter) => {
|
|
620
620
|
__accessCheck$e(obj, member, "read from private field");
|
|
621
|
-
return
|
|
621
|
+
return member.get(obj);
|
|
622
622
|
};
|
|
623
623
|
var __privateAdd$e = (obj, member, value) => {
|
|
624
624
|
if (member.has(obj))
|
|
@@ -627,7 +627,7 @@ var __privateAdd$e = (obj, member, value) => {
|
|
|
627
627
|
};
|
|
628
628
|
var __privateSet$a = (obj, member, value, setter) => {
|
|
629
629
|
__accessCheck$e(obj, member, "write to private field");
|
|
630
|
-
|
|
630
|
+
member.set(obj, value);
|
|
631
631
|
return value;
|
|
632
632
|
};
|
|
633
633
|
var _config, _logger;
|
|
@@ -811,7 +811,7 @@ var __accessCheck$d = (obj, member, msg) => {
|
|
|
811
811
|
};
|
|
812
812
|
var __privateGet$b = (obj, member, getter) => {
|
|
813
813
|
__accessCheck$d(obj, member, "read from private field");
|
|
814
|
-
return
|
|
814
|
+
return member.get(obj);
|
|
815
815
|
};
|
|
816
816
|
var __privateAdd$d = (obj, member, value) => {
|
|
817
817
|
if (member.has(obj))
|
|
@@ -820,7 +820,7 @@ var __privateAdd$d = (obj, member, value) => {
|
|
|
820
820
|
};
|
|
821
821
|
var __privateSet$9 = (obj, member, value, setter) => {
|
|
822
822
|
__accessCheck$d(obj, member, "write to private field");
|
|
823
|
-
|
|
823
|
+
member.set(obj, value);
|
|
824
824
|
return value;
|
|
825
825
|
};
|
|
826
826
|
var _winston, _addRedactions;
|
|
@@ -948,7 +948,7 @@ var __accessCheck$c = (obj, member, msg) => {
|
|
|
948
948
|
};
|
|
949
949
|
var __privateGet$a = (obj, member, getter) => {
|
|
950
950
|
__accessCheck$c(obj, member, "read from private field");
|
|
951
|
-
return
|
|
951
|
+
return member.get(obj);
|
|
952
952
|
};
|
|
953
953
|
var __privateAdd$c = (obj, member, value) => {
|
|
954
954
|
if (member.has(obj))
|
|
@@ -957,7 +957,7 @@ var __privateAdd$c = (obj, member, value) => {
|
|
|
957
957
|
};
|
|
958
958
|
var __privateSet$8 = (obj, member, value, setter) => {
|
|
959
959
|
__accessCheck$c(obj, member, "write to private field");
|
|
960
|
-
|
|
960
|
+
member.set(obj, value);
|
|
961
961
|
return value;
|
|
962
962
|
};
|
|
963
963
|
var _hasStarted$1, _startupTasks$1, _hasShutdown, _shutdownTasks;
|
|
@@ -1042,7 +1042,7 @@ var __accessCheck$b = (obj, member, msg) => {
|
|
|
1042
1042
|
};
|
|
1043
1043
|
var __privateGet$9 = (obj, member, getter) => {
|
|
1044
1044
|
__accessCheck$b(obj, member, "read from private field");
|
|
1045
|
-
return
|
|
1045
|
+
return member.get(obj);
|
|
1046
1046
|
};
|
|
1047
1047
|
var __privateAdd$b = (obj, member, value) => {
|
|
1048
1048
|
if (member.has(obj))
|
|
@@ -1051,7 +1051,7 @@ var __privateAdd$b = (obj, member, value) => {
|
|
|
1051
1051
|
};
|
|
1052
1052
|
var __privateSet$7 = (obj, member, value, setter) => {
|
|
1053
1053
|
__accessCheck$b(obj, member, "write to private field");
|
|
1054
|
-
|
|
1054
|
+
member.set(obj, value);
|
|
1055
1055
|
return value;
|
|
1056
1056
|
};
|
|
1057
1057
|
var _hasStarted, _startupTasks;
|
|
@@ -1122,7 +1122,7 @@ var __accessCheck$a = (obj, member, msg) => {
|
|
|
1122
1122
|
};
|
|
1123
1123
|
var __privateGet$8 = (obj, member, getter) => {
|
|
1124
1124
|
__accessCheck$a(obj, member, "read from private field");
|
|
1125
|
-
return
|
|
1125
|
+
return member.get(obj);
|
|
1126
1126
|
};
|
|
1127
1127
|
var __privateAdd$a = (obj, member, value) => {
|
|
1128
1128
|
if (member.has(obj))
|
|
@@ -1131,7 +1131,7 @@ var __privateAdd$a = (obj, member, value) => {
|
|
|
1131
1131
|
};
|
|
1132
1132
|
var __privateSet$6 = (obj, member, value, setter) => {
|
|
1133
1133
|
__accessCheck$a(obj, member, "write to private field");
|
|
1134
|
-
|
|
1134
|
+
member.set(obj, value);
|
|
1135
1135
|
return value;
|
|
1136
1136
|
};
|
|
1137
1137
|
var __privateMethod$7 = (obj, member, method) => {
|
|
@@ -1331,7 +1331,7 @@ var __accessCheck$9 = (obj, member, msg) => {
|
|
|
1331
1331
|
};
|
|
1332
1332
|
var __privateGet$7 = (obj, member, getter) => {
|
|
1333
1333
|
__accessCheck$9(obj, member, "read from private field");
|
|
1334
|
-
return
|
|
1334
|
+
return member.get(obj);
|
|
1335
1335
|
};
|
|
1336
1336
|
var __privateAdd$9 = (obj, member, value) => {
|
|
1337
1337
|
if (member.has(obj))
|
|
@@ -1340,7 +1340,7 @@ var __privateAdd$9 = (obj, member, value) => {
|
|
|
1340
1340
|
};
|
|
1341
1341
|
var __privateSet$5 = (obj, member, value, setter) => {
|
|
1342
1342
|
__accessCheck$9(obj, member, "write to private field");
|
|
1343
|
-
|
|
1343
|
+
member.set(obj, value);
|
|
1344
1344
|
return value;
|
|
1345
1345
|
};
|
|
1346
1346
|
var __privateMethod$6 = (obj, member, method) => {
|
|
@@ -1570,7 +1570,7 @@ var __accessCheck$8 = (obj, member, msg) => {
|
|
|
1570
1570
|
};
|
|
1571
1571
|
var __privateGet$6 = (obj, member, getter) => {
|
|
1572
1572
|
__accessCheck$8(obj, member, "read from private field");
|
|
1573
|
-
return
|
|
1573
|
+
return member.get(obj);
|
|
1574
1574
|
};
|
|
1575
1575
|
var __privateAdd$8 = (obj, member, value) => {
|
|
1576
1576
|
if (member.has(obj))
|
|
@@ -1579,7 +1579,7 @@ var __privateAdd$8 = (obj, member, value) => {
|
|
|
1579
1579
|
};
|
|
1580
1580
|
var __privateSet$4 = (obj, member, value, setter) => {
|
|
1581
1581
|
__accessCheck$8(obj, member, "write to private field");
|
|
1582
|
-
|
|
1582
|
+
member.set(obj, value);
|
|
1583
1583
|
return value;
|
|
1584
1584
|
};
|
|
1585
1585
|
var __privateMethod$5 = (obj, member, method) => {
|
|
@@ -1870,7 +1870,7 @@ var __accessCheck$7 = (obj, member, msg) => {
|
|
|
1870
1870
|
};
|
|
1871
1871
|
var __privateGet$5 = (obj, member, getter) => {
|
|
1872
1872
|
__accessCheck$7(obj, member, "read from private field");
|
|
1873
|
-
return
|
|
1873
|
+
return member.get(obj);
|
|
1874
1874
|
};
|
|
1875
1875
|
var __privateAdd$7 = (obj, member, value) => {
|
|
1876
1876
|
if (member.has(obj))
|
|
@@ -1879,7 +1879,7 @@ var __privateAdd$7 = (obj, member, value) => {
|
|
|
1879
1879
|
};
|
|
1880
1880
|
var __privateSet$3 = (obj, member, value, setter) => {
|
|
1881
1881
|
__accessCheck$7(obj, member, "write to private field");
|
|
1882
|
-
|
|
1882
|
+
member.set(obj, value);
|
|
1883
1883
|
return value;
|
|
1884
1884
|
};
|
|
1885
1885
|
var _initializer;
|
|
@@ -2147,7 +2147,12 @@ class DefaultAuthService {
|
|
|
2147
2147
|
targetPluginId
|
|
2148
2148
|
});
|
|
2149
2149
|
}
|
|
2150
|
-
return this.tokenManager.getToken()
|
|
2150
|
+
return this.tokenManager.getToken().catch((error) => {
|
|
2151
|
+
throw new errors.ForwardedError(
|
|
2152
|
+
`Unable to generate legacy token for communication with the '${targetPluginId}' plugin. You will typically encounter this error when attempting to call a plugin that does not exist, or is deployed with an old version of Backstage`,
|
|
2153
|
+
error
|
|
2154
|
+
);
|
|
2155
|
+
});
|
|
2151
2156
|
case "user": {
|
|
2152
2157
|
const { token } = internalForward;
|
|
2153
2158
|
if (!token) {
|
|
@@ -2205,7 +2210,7 @@ var __accessCheck$5 = (obj, member, msg) => {
|
|
|
2205
2210
|
};
|
|
2206
2211
|
var __privateGet$4 = (obj, member, getter) => {
|
|
2207
2212
|
__accessCheck$5(obj, member, "read from private field");
|
|
2208
|
-
return
|
|
2213
|
+
return member.get(obj);
|
|
2209
2214
|
};
|
|
2210
2215
|
var __privateAdd$5 = (obj, member, value) => {
|
|
2211
2216
|
if (member.has(obj))
|
|
@@ -2214,7 +2219,7 @@ var __privateAdd$5 = (obj, member, value) => {
|
|
|
2214
2219
|
};
|
|
2215
2220
|
var __privateSet$2 = (obj, member, value, setter) => {
|
|
2216
2221
|
__accessCheck$5(obj, member, "write to private field");
|
|
2217
|
-
|
|
2222
|
+
member.set(obj, value);
|
|
2218
2223
|
return value;
|
|
2219
2224
|
};
|
|
2220
2225
|
var _keyStore, _keyStoreUpdated;
|
|
@@ -2292,7 +2297,7 @@ class PluginTokenHandler {
|
|
|
2292
2297
|
options.logger,
|
|
2293
2298
|
options.ownPluginId,
|
|
2294
2299
|
options.publicKeyStore,
|
|
2295
|
-
options.
|
|
2300
|
+
Math.round(types.durationToMilliseconds(options.keyDuration) / 1e3),
|
|
2296
2301
|
(_a = options.algorithm) != null ? _a : "ES256",
|
|
2297
2302
|
options.discovery
|
|
2298
2303
|
);
|
|
@@ -2462,18 +2467,16 @@ var __privateMethod$3 = (obj, member, method) => {
|
|
|
2462
2467
|
};
|
|
2463
2468
|
var _getTokenVerificationOptions, getTokenVerificationOptions_fn;
|
|
2464
2469
|
const _UserTokenHandler = class _UserTokenHandler {
|
|
2465
|
-
constructor(
|
|
2466
|
-
this.algorithms = algorithms;
|
|
2470
|
+
constructor(jwksClient) {
|
|
2467
2471
|
this.jwksClient = jwksClient;
|
|
2468
2472
|
__privateAdd$4(this, _getTokenVerificationOptions);
|
|
2469
2473
|
}
|
|
2470
2474
|
static create(options) {
|
|
2471
|
-
const algorithms = ["ES256"];
|
|
2472
2475
|
const jwksClient = new JwksClient(async () => {
|
|
2473
2476
|
const url = await options.discovery.getBaseUrl("auth");
|
|
2474
2477
|
return new URL(`${url}/.well-known/jwks.json`);
|
|
2475
2478
|
});
|
|
2476
|
-
return new _UserTokenHandler(
|
|
2479
|
+
return new _UserTokenHandler(jwksClient);
|
|
2477
2480
|
}
|
|
2478
2481
|
async verifyToken(token) {
|
|
2479
2482
|
const verifyOpts = __privateMethod$3(this, _getTokenVerificationOptions, getTokenVerificationOptions_fn).call(this, token);
|
|
@@ -2546,14 +2549,12 @@ getTokenVerificationOptions_fn = function(token) {
|
|
|
2546
2549
|
const { typ } = jose.decodeProtectedHeader(token);
|
|
2547
2550
|
if (typ === pluginAuthNode.tokenTypes.user.typParam) {
|
|
2548
2551
|
return {
|
|
2549
|
-
algorithms: this.algorithms,
|
|
2550
2552
|
requiredClaims: ["iat", "exp", "sub"],
|
|
2551
2553
|
typ: pluginAuthNode.tokenTypes.user.typParam
|
|
2552
2554
|
};
|
|
2553
2555
|
}
|
|
2554
2556
|
if (typ === pluginAuthNode.tokenTypes.limitedUser.typParam) {
|
|
2555
2557
|
return {
|
|
2556
|
-
algorithms: this.algorithms,
|
|
2557
2558
|
requiredClaims: ["iat", "exp", "sub"],
|
|
2558
2559
|
typ: pluginAuthNode.tokenTypes.limitedUser.typParam
|
|
2559
2560
|
};
|
|
@@ -2561,7 +2562,6 @@ getTokenVerificationOptions_fn = function(token) {
|
|
|
2561
2562
|
const { aud } = jose.decodeJwt(token);
|
|
2562
2563
|
if (aud === pluginAuthNode.tokenTypes.user.audClaim) {
|
|
2563
2564
|
return {
|
|
2564
|
-
algorithms: this.algorithms,
|
|
2565
2565
|
audience: pluginAuthNode.tokenTypes.user.audClaim
|
|
2566
2566
|
};
|
|
2567
2567
|
}
|
|
@@ -2577,7 +2577,7 @@ var __accessCheck$3 = (obj, member, msg) => {
|
|
|
2577
2577
|
};
|
|
2578
2578
|
var __privateGet$3 = (obj, member, getter) => {
|
|
2579
2579
|
__accessCheck$3(obj, member, "read from private field");
|
|
2580
|
-
return
|
|
2580
|
+
return member.get(obj);
|
|
2581
2581
|
};
|
|
2582
2582
|
var __privateAdd$3 = (obj, member, value) => {
|
|
2583
2583
|
if (member.has(obj))
|
|
@@ -2651,7 +2651,7 @@ var __accessCheck$2 = (obj, member, msg) => {
|
|
|
2651
2651
|
};
|
|
2652
2652
|
var __privateGet$2 = (obj, member, getter) => {
|
|
2653
2653
|
__accessCheck$2(obj, member, "read from private field");
|
|
2654
|
-
return
|
|
2654
|
+
return member.get(obj);
|
|
2655
2655
|
};
|
|
2656
2656
|
var __privateAdd$2 = (obj, member, value) => {
|
|
2657
2657
|
if (member.has(obj))
|
|
@@ -2753,7 +2753,16 @@ const authServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
2753
2753
|
// new auth services in the new backend system.
|
|
2754
2754
|
tokenManager: backendPluginApi.coreServices.tokenManager
|
|
2755
2755
|
},
|
|
2756
|
-
async
|
|
2756
|
+
async createRootContext({ config, logger }) {
|
|
2757
|
+
const externalTokens = ExternalTokenHandler.create({
|
|
2758
|
+
config,
|
|
2759
|
+
logger
|
|
2760
|
+
});
|
|
2761
|
+
return {
|
|
2762
|
+
externalTokens
|
|
2763
|
+
};
|
|
2764
|
+
},
|
|
2765
|
+
async factory({ config, discovery, plugin, tokenManager, logger, database }, { externalTokens }) {
|
|
2757
2766
|
const disableDefaultAuthPolicy = Boolean(
|
|
2758
2767
|
config.getOptionalBoolean(
|
|
2759
2768
|
"backend.auth.dangerouslyDisableDefaultAuthPolicy"
|
|
@@ -2768,15 +2777,11 @@ const authServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
2768
2777
|
});
|
|
2769
2778
|
const pluginTokens = PluginTokenHandler.create({
|
|
2770
2779
|
ownPluginId: plugin.getId(),
|
|
2771
|
-
|
|
2780
|
+
keyDuration: { hours: 1 },
|
|
2772
2781
|
logger,
|
|
2773
2782
|
publicKeyStore,
|
|
2774
2783
|
discovery
|
|
2775
2784
|
});
|
|
2776
|
-
const externalTokens = ExternalTokenHandler.create({
|
|
2777
|
-
config,
|
|
2778
|
-
logger
|
|
2779
|
-
});
|
|
2780
2785
|
return new DefaultAuthService(
|
|
2781
2786
|
userTokens,
|
|
2782
2787
|
pluginTokens,
|
|
@@ -2940,7 +2945,7 @@ var __accessCheck$1 = (obj, member, msg) => {
|
|
|
2940
2945
|
};
|
|
2941
2946
|
var __privateGet$1 = (obj, member, getter) => {
|
|
2942
2947
|
__accessCheck$1(obj, member, "read from private field");
|
|
2943
|
-
return
|
|
2948
|
+
return member.get(obj);
|
|
2944
2949
|
};
|
|
2945
2950
|
var __privateAdd$1 = (obj, member, value) => {
|
|
2946
2951
|
if (member.has(obj))
|
|
@@ -2949,7 +2954,7 @@ var __privateAdd$1 = (obj, member, value) => {
|
|
|
2949
2954
|
};
|
|
2950
2955
|
var __privateSet$1 = (obj, member, value, setter) => {
|
|
2951
2956
|
__accessCheck$1(obj, member, "write to private field");
|
|
2952
|
-
|
|
2957
|
+
member.set(obj, value);
|
|
2953
2958
|
return value;
|
|
2954
2959
|
};
|
|
2955
2960
|
var __privateMethod$1 = (obj, member, method) => {
|
|
@@ -3381,7 +3386,7 @@ var __accessCheck = (obj, member, msg) => {
|
|
|
3381
3386
|
};
|
|
3382
3387
|
var __privateGet = (obj, member, getter) => {
|
|
3383
3388
|
__accessCheck(obj, member, "read from private field");
|
|
3384
|
-
return
|
|
3389
|
+
return member.get(obj);
|
|
3385
3390
|
};
|
|
3386
3391
|
var __privateAdd = (obj, member, value) => {
|
|
3387
3392
|
if (member.has(obj))
|
|
@@ -3390,7 +3395,7 @@ var __privateAdd = (obj, member, value) => {
|
|
|
3390
3395
|
};
|
|
3391
3396
|
var __privateSet = (obj, member, value, setter) => {
|
|
3392
3397
|
__accessCheck(obj, member, "write to private field");
|
|
3393
|
-
|
|
3398
|
+
member.set(obj, value);
|
|
3394
3399
|
return value;
|
|
3395
3400
|
};
|
|
3396
3401
|
var __privateMethod = (obj, member, method) => {
|
|
@@ -3472,15 +3477,8 @@ findConflictingPath_fn = function(newPath) {
|
|
|
3472
3477
|
};
|
|
3473
3478
|
let DefaultRootHttpRouter = _DefaultRootHttpRouter;
|
|
3474
3479
|
|
|
3475
|
-
function defaultConfigure(
|
|
3476
|
-
|
|
3477
|
-
app.use(middleware.helmet());
|
|
3478
|
-
app.use(middleware.cors());
|
|
3479
|
-
app.use(middleware.compression());
|
|
3480
|
-
app.use(middleware.logging());
|
|
3481
|
-
app.use(routes);
|
|
3482
|
-
app.use(middleware.notFound());
|
|
3483
|
-
app.use(middleware.error());
|
|
3480
|
+
function defaultConfigure({ applyDefaults }) {
|
|
3481
|
+
applyDefaults();
|
|
3484
3482
|
}
|
|
3485
3483
|
const rootHttpRouterServiceFactory = backendPluginApi.createServiceFactory(
|
|
3486
3484
|
(options) => ({
|
|
@@ -3496,19 +3494,30 @@ const rootHttpRouterServiceFactory = backendPluginApi.createServiceFactory(
|
|
|
3496
3494
|
const app = express__default.default();
|
|
3497
3495
|
const router = DefaultRootHttpRouter.create({ indexPath });
|
|
3498
3496
|
const middleware = MiddlewareFactory.create({ config, logger });
|
|
3497
|
+
const routes = router.handler();
|
|
3498
|
+
const server = await createHttpServer(
|
|
3499
|
+
app,
|
|
3500
|
+
readHttpServerOptions(config.getOptionalConfig("backend")),
|
|
3501
|
+
{ logger }
|
|
3502
|
+
);
|
|
3499
3503
|
configure({
|
|
3500
3504
|
app,
|
|
3501
|
-
|
|
3505
|
+
server,
|
|
3506
|
+
routes,
|
|
3502
3507
|
middleware,
|
|
3503
3508
|
config,
|
|
3504
3509
|
logger,
|
|
3505
|
-
lifecycle
|
|
3510
|
+
lifecycle,
|
|
3511
|
+
applyDefaults() {
|
|
3512
|
+
app.use(middleware.helmet());
|
|
3513
|
+
app.use(middleware.cors());
|
|
3514
|
+
app.use(middleware.compression());
|
|
3515
|
+
app.use(middleware.logging());
|
|
3516
|
+
app.use(routes);
|
|
3517
|
+
app.use(middleware.notFound());
|
|
3518
|
+
app.use(middleware.error());
|
|
3519
|
+
}
|
|
3506
3520
|
});
|
|
3507
|
-
const server = await createHttpServer(
|
|
3508
|
-
app,
|
|
3509
|
-
readHttpServerOptions(config.getOptionalConfig("backend")),
|
|
3510
|
-
{ logger }
|
|
3511
|
-
);
|
|
3512
3521
|
lifecycle.addShutdownHook(() => server.stop());
|
|
3513
3522
|
await server.start();
|
|
3514
3523
|
return router;
|
|
@@ -3562,7 +3571,8 @@ const tokenManagerServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
3562
3571
|
},
|
|
3563
3572
|
createRootContext({ config, logger }) {
|
|
3564
3573
|
return backendCommon.ServerTokenManager.fromConfig(config, {
|
|
3565
|
-
logger
|
|
3574
|
+
logger,
|
|
3575
|
+
allowDisabledTokenManager: true
|
|
3566
3576
|
});
|
|
3567
3577
|
},
|
|
3568
3578
|
async factory(_deps, tokenManager) {
|