@backstage/backend-app-api 0.7.1-next.0 → 0.7.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 +2 -18
- package/alpha/package.json +1 -1
- package/dist/index.cjs.js +59 -79
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,10 @@
|
|
|
1
1
|
# @backstage/backend-app-api
|
|
2
2
|
|
|
3
|
-
## 0.7.1
|
|
3
|
+
## 0.7.1
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
- e8199b1: Move the JWKS registration outside of the lifecycle middleware
|
|
9
|
-
- 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.
|
|
10
|
-
- 025641b: Redact `meta` fields too with the logger
|
|
11
|
-
- 5863e02: Internal refactor to only create one external token handler
|
|
12
|
-
- Updated dependencies
|
|
13
|
-
- @backstage/plugin-auth-node@0.4.13-next.0
|
|
14
|
-
- @backstage/backend-common@0.21.8-next.0
|
|
15
|
-
- @backstage/backend-plugin-api@0.6.18-next.0
|
|
16
|
-
- @backstage/backend-tasks@0.5.23-next.0
|
|
17
|
-
- @backstage/cli-common@0.1.13
|
|
18
|
-
- @backstage/cli-node@0.2.5
|
|
19
|
-
- @backstage/config@1.2.0
|
|
20
|
-
- @backstage/config-loader@1.8.0
|
|
21
|
-
- @backstage/errors@1.2.4
|
|
22
|
-
- @backstage/types@1.1.1
|
|
23
|
-
- @backstage/plugin-permission-node@0.7.29-next.0
|
|
7
|
+
- 3554ebe: Move the JWKS registration outside of the lifecycle middleware
|
|
24
8
|
|
|
25
9
|
## 0.7.0
|
|
26
10
|
|
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');
|
|
30
29
|
var backendAppApi = require('@backstage/backend-app-api');
|
|
31
30
|
var cookie = require('cookie');
|
|
32
31
|
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 member.get(obj);
|
|
621
|
+
return getter ? getter.call(obj) : 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
|
-
member.set(obj, value);
|
|
630
|
+
setter ? setter.call(obj, value) : 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 member.get(obj);
|
|
814
|
+
return getter ? getter.call(obj) : 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
|
-
member.set(obj, value);
|
|
823
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
824
824
|
return value;
|
|
825
825
|
};
|
|
826
826
|
var _winston, _addRedactions;
|
|
@@ -857,21 +857,16 @@ const _WinstonLogger = class _WinstonLogger {
|
|
|
857
857
|
static redacter() {
|
|
858
858
|
const redactionSet = /* @__PURE__ */ new Set();
|
|
859
859
|
let redactionPattern = void 0;
|
|
860
|
-
const replace = (obj) => {
|
|
861
|
-
var _a;
|
|
862
|
-
for (const key in obj) {
|
|
863
|
-
if (obj.hasOwnProperty(key)) {
|
|
864
|
-
if (typeof obj[key] === "object") {
|
|
865
|
-
obj[key] = replace(obj[key]);
|
|
866
|
-
} else if (typeof obj[key] === "string") {
|
|
867
|
-
obj[key] = (_a = obj[key]) == null ? void 0 : _a.replace(redactionPattern, "[REDACTED]");
|
|
868
|
-
}
|
|
869
|
-
}
|
|
870
|
-
}
|
|
871
|
-
return obj;
|
|
872
|
-
};
|
|
873
860
|
return {
|
|
874
|
-
format: winston.format(
|
|
861
|
+
format: winston.format((info) => {
|
|
862
|
+
if (redactionPattern && typeof info.message === "string") {
|
|
863
|
+
info.message = info.message.replace(redactionPattern, "[REDACTED]");
|
|
864
|
+
}
|
|
865
|
+
if (redactionPattern && typeof info.stack === "string") {
|
|
866
|
+
info.stack = info.stack.replace(redactionPattern, "[REDACTED]");
|
|
867
|
+
}
|
|
868
|
+
return info;
|
|
869
|
+
})(),
|
|
875
870
|
add(newRedactions) {
|
|
876
871
|
let added = 0;
|
|
877
872
|
for (const redactionToTrim of newRedactions) {
|
|
@@ -948,7 +943,7 @@ var __accessCheck$c = (obj, member, msg) => {
|
|
|
948
943
|
};
|
|
949
944
|
var __privateGet$a = (obj, member, getter) => {
|
|
950
945
|
__accessCheck$c(obj, member, "read from private field");
|
|
951
|
-
return member.get(obj);
|
|
946
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
952
947
|
};
|
|
953
948
|
var __privateAdd$c = (obj, member, value) => {
|
|
954
949
|
if (member.has(obj))
|
|
@@ -957,7 +952,7 @@ var __privateAdd$c = (obj, member, value) => {
|
|
|
957
952
|
};
|
|
958
953
|
var __privateSet$8 = (obj, member, value, setter) => {
|
|
959
954
|
__accessCheck$c(obj, member, "write to private field");
|
|
960
|
-
member.set(obj, value);
|
|
955
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
961
956
|
return value;
|
|
962
957
|
};
|
|
963
958
|
var _hasStarted$1, _startupTasks$1, _hasShutdown, _shutdownTasks;
|
|
@@ -1042,7 +1037,7 @@ var __accessCheck$b = (obj, member, msg) => {
|
|
|
1042
1037
|
};
|
|
1043
1038
|
var __privateGet$9 = (obj, member, getter) => {
|
|
1044
1039
|
__accessCheck$b(obj, member, "read from private field");
|
|
1045
|
-
return member.get(obj);
|
|
1040
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
1046
1041
|
};
|
|
1047
1042
|
var __privateAdd$b = (obj, member, value) => {
|
|
1048
1043
|
if (member.has(obj))
|
|
@@ -1051,7 +1046,7 @@ var __privateAdd$b = (obj, member, value) => {
|
|
|
1051
1046
|
};
|
|
1052
1047
|
var __privateSet$7 = (obj, member, value, setter) => {
|
|
1053
1048
|
__accessCheck$b(obj, member, "write to private field");
|
|
1054
|
-
member.set(obj, value);
|
|
1049
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1055
1050
|
return value;
|
|
1056
1051
|
};
|
|
1057
1052
|
var _hasStarted, _startupTasks;
|
|
@@ -1122,7 +1117,7 @@ var __accessCheck$a = (obj, member, msg) => {
|
|
|
1122
1117
|
};
|
|
1123
1118
|
var __privateGet$8 = (obj, member, getter) => {
|
|
1124
1119
|
__accessCheck$a(obj, member, "read from private field");
|
|
1125
|
-
return member.get(obj);
|
|
1120
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
1126
1121
|
};
|
|
1127
1122
|
var __privateAdd$a = (obj, member, value) => {
|
|
1128
1123
|
if (member.has(obj))
|
|
@@ -1131,7 +1126,7 @@ var __privateAdd$a = (obj, member, value) => {
|
|
|
1131
1126
|
};
|
|
1132
1127
|
var __privateSet$6 = (obj, member, value, setter) => {
|
|
1133
1128
|
__accessCheck$a(obj, member, "write to private field");
|
|
1134
|
-
member.set(obj, value);
|
|
1129
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1135
1130
|
return value;
|
|
1136
1131
|
};
|
|
1137
1132
|
var __privateMethod$7 = (obj, member, method) => {
|
|
@@ -1331,7 +1326,7 @@ var __accessCheck$9 = (obj, member, msg) => {
|
|
|
1331
1326
|
};
|
|
1332
1327
|
var __privateGet$7 = (obj, member, getter) => {
|
|
1333
1328
|
__accessCheck$9(obj, member, "read from private field");
|
|
1334
|
-
return member.get(obj);
|
|
1329
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
1335
1330
|
};
|
|
1336
1331
|
var __privateAdd$9 = (obj, member, value) => {
|
|
1337
1332
|
if (member.has(obj))
|
|
@@ -1340,7 +1335,7 @@ var __privateAdd$9 = (obj, member, value) => {
|
|
|
1340
1335
|
};
|
|
1341
1336
|
var __privateSet$5 = (obj, member, value, setter) => {
|
|
1342
1337
|
__accessCheck$9(obj, member, "write to private field");
|
|
1343
|
-
member.set(obj, value);
|
|
1338
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1344
1339
|
return value;
|
|
1345
1340
|
};
|
|
1346
1341
|
var __privateMethod$6 = (obj, member, method) => {
|
|
@@ -1570,7 +1565,7 @@ var __accessCheck$8 = (obj, member, msg) => {
|
|
|
1570
1565
|
};
|
|
1571
1566
|
var __privateGet$6 = (obj, member, getter) => {
|
|
1572
1567
|
__accessCheck$8(obj, member, "read from private field");
|
|
1573
|
-
return member.get(obj);
|
|
1568
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
1574
1569
|
};
|
|
1575
1570
|
var __privateAdd$8 = (obj, member, value) => {
|
|
1576
1571
|
if (member.has(obj))
|
|
@@ -1579,7 +1574,7 @@ var __privateAdd$8 = (obj, member, value) => {
|
|
|
1579
1574
|
};
|
|
1580
1575
|
var __privateSet$4 = (obj, member, value, setter) => {
|
|
1581
1576
|
__accessCheck$8(obj, member, "write to private field");
|
|
1582
|
-
member.set(obj, value);
|
|
1577
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1583
1578
|
return value;
|
|
1584
1579
|
};
|
|
1585
1580
|
var __privateMethod$5 = (obj, member, method) => {
|
|
@@ -1870,7 +1865,7 @@ var __accessCheck$7 = (obj, member, msg) => {
|
|
|
1870
1865
|
};
|
|
1871
1866
|
var __privateGet$5 = (obj, member, getter) => {
|
|
1872
1867
|
__accessCheck$7(obj, member, "read from private field");
|
|
1873
|
-
return member.get(obj);
|
|
1868
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
1874
1869
|
};
|
|
1875
1870
|
var __privateAdd$7 = (obj, member, value) => {
|
|
1876
1871
|
if (member.has(obj))
|
|
@@ -1879,7 +1874,7 @@ var __privateAdd$7 = (obj, member, value) => {
|
|
|
1879
1874
|
};
|
|
1880
1875
|
var __privateSet$3 = (obj, member, value, setter) => {
|
|
1881
1876
|
__accessCheck$7(obj, member, "write to private field");
|
|
1882
|
-
member.set(obj, value);
|
|
1877
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
1883
1878
|
return value;
|
|
1884
1879
|
};
|
|
1885
1880
|
var _initializer;
|
|
@@ -2147,12 +2142,7 @@ class DefaultAuthService {
|
|
|
2147
2142
|
targetPluginId
|
|
2148
2143
|
});
|
|
2149
2144
|
}
|
|
2150
|
-
return this.tokenManager.getToken()
|
|
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
|
-
});
|
|
2145
|
+
return this.tokenManager.getToken();
|
|
2156
2146
|
case "user": {
|
|
2157
2147
|
const { token } = internalForward;
|
|
2158
2148
|
if (!token) {
|
|
@@ -2210,7 +2200,7 @@ var __accessCheck$5 = (obj, member, msg) => {
|
|
|
2210
2200
|
};
|
|
2211
2201
|
var __privateGet$4 = (obj, member, getter) => {
|
|
2212
2202
|
__accessCheck$5(obj, member, "read from private field");
|
|
2213
|
-
return member.get(obj);
|
|
2203
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
2214
2204
|
};
|
|
2215
2205
|
var __privateAdd$5 = (obj, member, value) => {
|
|
2216
2206
|
if (member.has(obj))
|
|
@@ -2219,7 +2209,7 @@ var __privateAdd$5 = (obj, member, value) => {
|
|
|
2219
2209
|
};
|
|
2220
2210
|
var __privateSet$2 = (obj, member, value, setter) => {
|
|
2221
2211
|
__accessCheck$5(obj, member, "write to private field");
|
|
2222
|
-
member.set(obj, value);
|
|
2212
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
2223
2213
|
return value;
|
|
2224
2214
|
};
|
|
2225
2215
|
var _keyStore, _keyStoreUpdated;
|
|
@@ -2297,7 +2287,7 @@ class PluginTokenHandler {
|
|
|
2297
2287
|
options.logger,
|
|
2298
2288
|
options.ownPluginId,
|
|
2299
2289
|
options.publicKeyStore,
|
|
2300
|
-
|
|
2290
|
+
options.keyDurationSeconds,
|
|
2301
2291
|
(_a = options.algorithm) != null ? _a : "ES256",
|
|
2302
2292
|
options.discovery
|
|
2303
2293
|
);
|
|
@@ -2582,7 +2572,7 @@ var __accessCheck$3 = (obj, member, msg) => {
|
|
|
2582
2572
|
};
|
|
2583
2573
|
var __privateGet$3 = (obj, member, getter) => {
|
|
2584
2574
|
__accessCheck$3(obj, member, "read from private field");
|
|
2585
|
-
return member.get(obj);
|
|
2575
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
2586
2576
|
};
|
|
2587
2577
|
var __privateAdd$3 = (obj, member, value) => {
|
|
2588
2578
|
if (member.has(obj))
|
|
@@ -2656,7 +2646,7 @@ var __accessCheck$2 = (obj, member, msg) => {
|
|
|
2656
2646
|
};
|
|
2657
2647
|
var __privateGet$2 = (obj, member, getter) => {
|
|
2658
2648
|
__accessCheck$2(obj, member, "read from private field");
|
|
2659
|
-
return member.get(obj);
|
|
2649
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
2660
2650
|
};
|
|
2661
2651
|
var __privateAdd$2 = (obj, member, value) => {
|
|
2662
2652
|
if (member.has(obj))
|
|
@@ -2758,16 +2748,7 @@ const authServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
2758
2748
|
// new auth services in the new backend system.
|
|
2759
2749
|
tokenManager: backendPluginApi.coreServices.tokenManager
|
|
2760
2750
|
},
|
|
2761
|
-
async
|
|
2762
|
-
const externalTokens = ExternalTokenHandler.create({
|
|
2763
|
-
config,
|
|
2764
|
-
logger
|
|
2765
|
-
});
|
|
2766
|
-
return {
|
|
2767
|
-
externalTokens
|
|
2768
|
-
};
|
|
2769
|
-
},
|
|
2770
|
-
async factory({ config, discovery, plugin, tokenManager, logger, database }, { externalTokens }) {
|
|
2751
|
+
async factory({ config, discovery, plugin, tokenManager, logger, database }) {
|
|
2771
2752
|
const disableDefaultAuthPolicy = Boolean(
|
|
2772
2753
|
config.getOptionalBoolean(
|
|
2773
2754
|
"backend.auth.dangerouslyDisableDefaultAuthPolicy"
|
|
@@ -2782,11 +2763,15 @@ const authServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
2782
2763
|
});
|
|
2783
2764
|
const pluginTokens = PluginTokenHandler.create({
|
|
2784
2765
|
ownPluginId: plugin.getId(),
|
|
2785
|
-
|
|
2766
|
+
keyDurationSeconds: 60 * 60,
|
|
2786
2767
|
logger,
|
|
2787
2768
|
publicKeyStore,
|
|
2788
2769
|
discovery
|
|
2789
2770
|
});
|
|
2771
|
+
const externalTokens = ExternalTokenHandler.create({
|
|
2772
|
+
config,
|
|
2773
|
+
logger
|
|
2774
|
+
});
|
|
2790
2775
|
return new DefaultAuthService(
|
|
2791
2776
|
userTokens,
|
|
2792
2777
|
pluginTokens,
|
|
@@ -2950,7 +2935,7 @@ var __accessCheck$1 = (obj, member, msg) => {
|
|
|
2950
2935
|
};
|
|
2951
2936
|
var __privateGet$1 = (obj, member, getter) => {
|
|
2952
2937
|
__accessCheck$1(obj, member, "read from private field");
|
|
2953
|
-
return member.get(obj);
|
|
2938
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
2954
2939
|
};
|
|
2955
2940
|
var __privateAdd$1 = (obj, member, value) => {
|
|
2956
2941
|
if (member.has(obj))
|
|
@@ -2959,7 +2944,7 @@ var __privateAdd$1 = (obj, member, value) => {
|
|
|
2959
2944
|
};
|
|
2960
2945
|
var __privateSet$1 = (obj, member, value, setter) => {
|
|
2961
2946
|
__accessCheck$1(obj, member, "write to private field");
|
|
2962
|
-
member.set(obj, value);
|
|
2947
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
2963
2948
|
return value;
|
|
2964
2949
|
};
|
|
2965
2950
|
var __privateMethod$1 = (obj, member, method) => {
|
|
@@ -3391,7 +3376,7 @@ var __accessCheck = (obj, member, msg) => {
|
|
|
3391
3376
|
};
|
|
3392
3377
|
var __privateGet = (obj, member, getter) => {
|
|
3393
3378
|
__accessCheck(obj, member, "read from private field");
|
|
3394
|
-
return member.get(obj);
|
|
3379
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
3395
3380
|
};
|
|
3396
3381
|
var __privateAdd = (obj, member, value) => {
|
|
3397
3382
|
if (member.has(obj))
|
|
@@ -3400,7 +3385,7 @@ var __privateAdd = (obj, member, value) => {
|
|
|
3400
3385
|
};
|
|
3401
3386
|
var __privateSet = (obj, member, value, setter) => {
|
|
3402
3387
|
__accessCheck(obj, member, "write to private field");
|
|
3403
|
-
member.set(obj, value);
|
|
3388
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
3404
3389
|
return value;
|
|
3405
3390
|
};
|
|
3406
3391
|
var __privateMethod = (obj, member, method) => {
|
|
@@ -3482,8 +3467,15 @@ findConflictingPath_fn = function(newPath) {
|
|
|
3482
3467
|
};
|
|
3483
3468
|
let DefaultRootHttpRouter = _DefaultRootHttpRouter;
|
|
3484
3469
|
|
|
3485
|
-
function defaultConfigure(
|
|
3486
|
-
|
|
3470
|
+
function defaultConfigure(context) {
|
|
3471
|
+
const { app, routes, middleware } = context;
|
|
3472
|
+
app.use(middleware.helmet());
|
|
3473
|
+
app.use(middleware.cors());
|
|
3474
|
+
app.use(middleware.compression());
|
|
3475
|
+
app.use(middleware.logging());
|
|
3476
|
+
app.use(routes);
|
|
3477
|
+
app.use(middleware.notFound());
|
|
3478
|
+
app.use(middleware.error());
|
|
3487
3479
|
}
|
|
3488
3480
|
const rootHttpRouterServiceFactory = backendPluginApi.createServiceFactory(
|
|
3489
3481
|
(options) => ({
|
|
@@ -3499,30 +3491,19 @@ const rootHttpRouterServiceFactory = backendPluginApi.createServiceFactory(
|
|
|
3499
3491
|
const app = express__default.default();
|
|
3500
3492
|
const router = DefaultRootHttpRouter.create({ indexPath });
|
|
3501
3493
|
const middleware = MiddlewareFactory.create({ config, logger });
|
|
3502
|
-
const routes = router.handler();
|
|
3503
|
-
const server = await createHttpServer(
|
|
3504
|
-
app,
|
|
3505
|
-
readHttpServerOptions(config.getOptionalConfig("backend")),
|
|
3506
|
-
{ logger }
|
|
3507
|
-
);
|
|
3508
3494
|
configure({
|
|
3509
3495
|
app,
|
|
3510
|
-
|
|
3511
|
-
routes,
|
|
3496
|
+
routes: router.handler(),
|
|
3512
3497
|
middleware,
|
|
3513
3498
|
config,
|
|
3514
3499
|
logger,
|
|
3515
|
-
lifecycle
|
|
3516
|
-
applyDefaults() {
|
|
3517
|
-
app.use(middleware.helmet());
|
|
3518
|
-
app.use(middleware.cors());
|
|
3519
|
-
app.use(middleware.compression());
|
|
3520
|
-
app.use(middleware.logging());
|
|
3521
|
-
app.use(routes);
|
|
3522
|
-
app.use(middleware.notFound());
|
|
3523
|
-
app.use(middleware.error());
|
|
3524
|
-
}
|
|
3500
|
+
lifecycle
|
|
3525
3501
|
});
|
|
3502
|
+
const server = await createHttpServer(
|
|
3503
|
+
app,
|
|
3504
|
+
readHttpServerOptions(config.getOptionalConfig("backend")),
|
|
3505
|
+
{ logger }
|
|
3506
|
+
);
|
|
3526
3507
|
lifecycle.addShutdownHook(() => server.stop());
|
|
3527
3508
|
await server.start();
|
|
3528
3509
|
return router;
|
|
@@ -3576,8 +3557,7 @@ const tokenManagerServiceFactory = backendPluginApi.createServiceFactory({
|
|
|
3576
3557
|
},
|
|
3577
3558
|
createRootContext({ config, logger }) {
|
|
3578
3559
|
return backendCommon.ServerTokenManager.fromConfig(config, {
|
|
3579
|
-
logger
|
|
3580
|
-
allowDisabledTokenManager: true
|
|
3560
|
+
logger
|
|
3581
3561
|
});
|
|
3582
3562
|
},
|
|
3583
3563
|
async factory(_deps, tokenManager) {
|