@abtnode/core 1.6.10 → 1.6.14
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/lib/router/helper.js +46 -25
- package/lib/router/manager.js +1 -1
- package/lib/states/node.js +1 -0
- package/lib/util/blocklet.js +0 -1
- package/package.json +14 -14
package/lib/router/helper.js
CHANGED
|
@@ -5,6 +5,7 @@ const path = require('path');
|
|
|
5
5
|
const tar = require('tar');
|
|
6
6
|
const get = require('lodash/get');
|
|
7
7
|
const cloneDeep = require('lodash/cloneDeep');
|
|
8
|
+
const isEqual = require('lodash/isEqual');
|
|
8
9
|
const joinUrl = require('url-join');
|
|
9
10
|
const { getProvider } = require('@abtnode/router-provider');
|
|
10
11
|
const normalizePathPrefix = require('@abtnode/util/lib/normalize-path-prefix');
|
|
@@ -28,6 +29,7 @@ const {
|
|
|
28
29
|
SLOT_FOR_IP_DNS_SITE,
|
|
29
30
|
BLOCKLET_SITE_GROUP_SUFFIX,
|
|
30
31
|
WELLKNOWN_ACME_CHALLENGE_PREFIX,
|
|
32
|
+
WELLKNOWN_DID_RESOLVER_PREFIX,
|
|
31
33
|
} = require('@abtnode/constant');
|
|
32
34
|
const {
|
|
33
35
|
BLOCKLET_DYNAMIC_PATH_PREFIX,
|
|
@@ -499,6 +501,30 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
|
|
|
499
501
|
return { status: 'downloaded' };
|
|
500
502
|
};
|
|
501
503
|
|
|
504
|
+
const upsertSiteRule = async ({ site, rule }, context) => {
|
|
505
|
+
const findExistingRule = (prefix) => site.rules.find((r) => r.from.pathPrefix === normalizePathPrefix(prefix));
|
|
506
|
+
|
|
507
|
+
const newSiteRule = {
|
|
508
|
+
id: site.id,
|
|
509
|
+
rule,
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
const existingRule = findExistingRule(get(rule, 'from.pathPrefix'));
|
|
513
|
+
if (!existingRule) {
|
|
514
|
+
await routerManager.addRoutingRule(newSiteRule, context);
|
|
515
|
+
return true;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
if (!isEqual(existingRule.to, rule.to)) {
|
|
519
|
+
newSiteRule.rule.id = existingRule.id;
|
|
520
|
+
newSiteRule.skipProtectedRuleChecking = true;
|
|
521
|
+
await routerManager.updateRoutingRule(newSiteRule, context);
|
|
522
|
+
return true;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
return false;
|
|
526
|
+
};
|
|
527
|
+
|
|
502
528
|
const addWellknownSite = async (sites, context) => {
|
|
503
529
|
const site = (sites || []).find((x) => x.name === NAME_FOR_WELLKNOWN_SITE);
|
|
504
530
|
|
|
@@ -511,42 +537,35 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
|
|
|
511
537
|
};
|
|
512
538
|
|
|
513
539
|
const didResolverWellknownRule = {
|
|
514
|
-
|
|
540
|
+
isProtected: true,
|
|
541
|
+
from: { pathPrefix: WELLKNOWN_DID_RESOLVER_PREFIX },
|
|
515
542
|
to: proxyTarget,
|
|
516
543
|
};
|
|
517
544
|
|
|
518
545
|
const acmeChallengeWellknownRule = {
|
|
546
|
+
isProtected: true,
|
|
519
547
|
from: { pathPrefix: WELLKNOWN_ACME_CHALLENGE_PREFIX },
|
|
520
548
|
to: proxyTarget,
|
|
521
549
|
};
|
|
522
550
|
|
|
523
551
|
if (site) {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
rule: didResolverWellknownRule,
|
|
532
|
-
},
|
|
533
|
-
context
|
|
534
|
-
);
|
|
535
|
-
changed = true;
|
|
536
|
-
}
|
|
552
|
+
const didResolverRuleUpdateRes = await upsertSiteRule(
|
|
553
|
+
{
|
|
554
|
+
site,
|
|
555
|
+
rule: didResolverWellknownRule,
|
|
556
|
+
},
|
|
557
|
+
context
|
|
558
|
+
);
|
|
537
559
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
);
|
|
546
|
-
changed = true;
|
|
547
|
-
}
|
|
560
|
+
const acmeRuleUpdateRes = await upsertSiteRule(
|
|
561
|
+
{
|
|
562
|
+
site,
|
|
563
|
+
rule: acmeChallengeWellknownRule,
|
|
564
|
+
},
|
|
565
|
+
context
|
|
566
|
+
);
|
|
548
567
|
|
|
549
|
-
return
|
|
568
|
+
return didResolverRuleUpdateRes || acmeRuleUpdateRes;
|
|
550
569
|
}
|
|
551
570
|
|
|
552
571
|
await routerManager.addRoutingSite(
|
|
@@ -1354,6 +1373,8 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
|
|
|
1354
1373
|
getCertificates,
|
|
1355
1374
|
checkDomain,
|
|
1356
1375
|
ensureDashboardCertificate,
|
|
1376
|
+
addWellknownSite,
|
|
1377
|
+
upsertSiteRule,
|
|
1357
1378
|
|
|
1358
1379
|
getRoutingCrons: () => [
|
|
1359
1380
|
{
|
package/lib/router/manager.js
CHANGED
|
@@ -302,7 +302,7 @@ class RouterManager extends EventEmitter {
|
|
|
302
302
|
|
|
303
303
|
// update rules
|
|
304
304
|
const newRules = [
|
|
305
|
-
...dbSite.rules.filter((x) => x.groupId !== rule.id || x.id !== rule.id), // 有些路由没有 rule.groupId
|
|
305
|
+
...dbSite.rules.filter((x) => (x.groupId && x.groupId !== rule.id) || x.id !== rule.id), // 有些路由没有 rule.groupId
|
|
306
306
|
...(await this.getRules(rule)),
|
|
307
307
|
];
|
|
308
308
|
|
package/lib/states/node.js
CHANGED
package/lib/util/blocklet.js
CHANGED
|
@@ -74,7 +74,6 @@ const PRIVATE_NODE_ENVS = [
|
|
|
74
74
|
// 'NEDB_MULTI_PORT', // FIXME: 排查 abtnode 对外提供的 SDK(比如 @abtnode/queue), SDK 中不要自动使用 NEDB_MULTI_PORT 环境变量
|
|
75
75
|
'ABT_NODE_UPDATER_PORT',
|
|
76
76
|
'ABT_NODE_SESSION_TTL',
|
|
77
|
-
'ABT_NODE_MODE',
|
|
78
77
|
'ABT_NODE_ROUTER_PROVIDER',
|
|
79
78
|
'ABT_NODE_DATA_DIR',
|
|
80
79
|
'ABT_NODE_TOKEN_SECRET',
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.6.
|
|
6
|
+
"version": "1.6.14",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,22 +19,22 @@
|
|
|
19
19
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@abtnode/certificate-manager": "1.6.
|
|
23
|
-
"@abtnode/constant": "1.6.
|
|
24
|
-
"@abtnode/cron": "1.6.
|
|
25
|
-
"@abtnode/db": "1.6.
|
|
26
|
-
"@abtnode/logger": "1.6.
|
|
27
|
-
"@abtnode/queue": "1.6.
|
|
28
|
-
"@abtnode/rbac": "1.6.
|
|
29
|
-
"@abtnode/router-provider": "1.6.
|
|
30
|
-
"@abtnode/static-server": "1.6.
|
|
31
|
-
"@abtnode/timemachine": "1.6.
|
|
32
|
-
"@abtnode/util": "1.6.
|
|
22
|
+
"@abtnode/certificate-manager": "1.6.14",
|
|
23
|
+
"@abtnode/constant": "1.6.14",
|
|
24
|
+
"@abtnode/cron": "1.6.14",
|
|
25
|
+
"@abtnode/db": "1.6.14",
|
|
26
|
+
"@abtnode/logger": "1.6.14",
|
|
27
|
+
"@abtnode/queue": "1.6.14",
|
|
28
|
+
"@abtnode/rbac": "1.6.14",
|
|
29
|
+
"@abtnode/router-provider": "1.6.14",
|
|
30
|
+
"@abtnode/static-server": "1.6.14",
|
|
31
|
+
"@abtnode/timemachine": "1.6.14",
|
|
32
|
+
"@abtnode/util": "1.6.14",
|
|
33
33
|
"@arcblock/did": "^1.13.79",
|
|
34
34
|
"@arcblock/event-hub": "1.13.79",
|
|
35
35
|
"@arcblock/pm2-events": "^0.0.5",
|
|
36
36
|
"@arcblock/vc": "^1.13.79",
|
|
37
|
-
"@blocklet/meta": "1.6.
|
|
37
|
+
"@blocklet/meta": "1.6.14",
|
|
38
38
|
"@fidm/x509": "^1.2.1",
|
|
39
39
|
"@nedb/core": "^1.2.2",
|
|
40
40
|
"@nedb/multi": "^1.2.2",
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"express": "^4.17.1",
|
|
76
76
|
"jest": "^27.4.5"
|
|
77
77
|
},
|
|
78
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "0ae215d5cf1160631bdd9b64639c8fcf80eb2d5f"
|
|
79
79
|
}
|