@abtnode/blocklet-services 1.16.53-beta-20251011-054719-4ed2f6b7 → 1.16.53-beta-20251013-005429-ca3b05de
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/api/index.js +8 -17
- package/api/util/federated.js +10 -5
- package/dist/assets/{access-control-abOzA88J.js → access-control-7gWIJZpX.js} +1 -1
- package/dist/assets/{add-component-core-DyP5DXP3.js → add-component-core-C43eXvX3.js} +8 -8
- package/dist/assets/{add-resource-D1RE_D63.js → add-resource-DT9p1SVt.js} +1 -1
- package/dist/assets/{addon-BQpY5mGN.js → addon-iuYOVe1l.js} +1 -1
- package/dist/assets/{advanced-BAAkbQ7v.js → advanced-CbrPzmPw.js} +1 -1
- package/dist/assets/{aigne-BIxsGdE6.js → aigne-SLmG9KvJ.js} +1 -1
- package/dist/assets/{appearance-DLL_c3H7.js → appearance-Ck3ODt4R.js} +1 -1
- package/dist/assets/{arrow-down.svg-B0yKIpV_.js → arrow-down.svg-ByD_YKms.js} +1 -1
- package/dist/assets/{audit-logs-BjqQg10C.js → audit-logs-RI_HNLsi.js} +1 -1
- package/dist/assets/{authorize-zdSPMvPb.js → authorize-C9O917EK.js} +1 -1
- package/dist/assets/{bind-account-MeFLW0-t.js → bind-account-DomcrIoC.js} +1 -1
- package/dist/assets/{branding-CZ3msR8C.js → branding-CuyMYlwl.js} +1 -1
- package/dist/assets/{branding-DdfX0yE_.js → branding-DtTT8LEA.js} +1 -1
- package/dist/assets/{branding-BGqwD_8z.js → branding-F6Ls_sBm.js} +1 -1
- package/dist/assets/{bundle-avatar-BnsIGAGk.js → bundle-avatar-BZh2UMH9.js} +1 -1
- package/dist/assets/{complete-BKOQngoV.js → complete-BuJ7B50g.js} +1 -1
- package/dist/assets/{component-ZLIptWjb.js → component-D1cVQ2BQ.js} +2 -2
- package/dist/assets/{config-CZV6cEQO.js → config-BlJVgRLh.js} +3 -3
- package/dist/assets/{config-DETFzZFy.js → config-CoBMDXIe.js} +1 -1
- package/dist/assets/{config-DuFudWCR.js → config-D8oltJzP.js} +1 -1
- package/dist/assets/{config-navigation-Ckddb7Ew.js → config-navigation-BmFKLKYy.js} +2 -2
- package/dist/assets/{config-space-BMQcYhX4.js → config-space-CIl0FJy6.js} +1 -1
- package/dist/assets/{confirm-BWJyxR1P.js → confirm-nzje1i_c.js} +1 -1
- package/dist/assets/{connect-8ijsDqc0.js → connect-DNK092nY.js} +1 -1
- package/dist/assets/{connect-ByF8W-k5.js → connect-DyVkSvx0.js} +1 -1
- package/dist/assets/{connect-to-DsrMYUbG.js → connect-to-BB7Snd6q.js} +1 -1
- package/dist/assets/{dashboard-dvSAjP1V.js → dashboard-DA1_SonP.js} +2 -2
- package/dist/assets/{delete-confirm-C5O8wEbn.js → delete-confirm-BoyKK_sh.js} +1 -1
- package/dist/assets/{domain-UcW2NDgQ.js → domain-CxT85hKF.js} +1 -1
- package/dist/assets/{domain-action-card-C4LewNdA.js → domain-action-card-k3lim42n.js} +1 -1
- package/dist/assets/{domains-a52EIu7f.js → domains-Dls2DqVC.js} +1 -1
- package/dist/assets/{email-DeJqm_cT.js → email-DtG_yIEc.js} +1 -1
- package/dist/assets/engine-hb4NRjVe.js +1 -0
- package/dist/assets/{exchange-passport-Bk3KCI7e.js → exchange-passport-5PcjWpqT.js} +1 -1
- package/dist/assets/{form-BzuOEtWl.js → form-DgDq3Zmy.js} +1 -1
- package/dist/assets/{fuel-CqEiaVyB.js → fuel-BywHsiUk.js} +1 -1
- package/dist/assets/{gen-access-key-DPvESsAt.js → gen-access-key-CDwRDR7-.js} +1 -1
- package/dist/assets/{gen-simple-access-key-BDFpf0Fe.js → gen-simple-access-key-DGsX2Fkj.js} +1 -1
- package/dist/assets/{get-safe-url-VPE7525h.js → get-safe-url-D-OGuIko.js} +1 -1
- package/dist/assets/{home-D88mAORC.js → home-Cylh8bGb.js} +1 -1
- package/dist/assets/{iframe-C132otWW.js → iframe-BPsu-Uyg.js} +1 -1
- package/dist/assets/{index-DBMcmgkV.js → index--aKykvS5.js} +1 -1
- package/dist/assets/{index-BO1dYT6j.js → index-4905JE5e.js} +1 -1
- package/dist/assets/{index-LVfZZmHk.js → index-8b6B9BvP.js} +1 -1
- package/dist/assets/{index-BhwFkAf9.js → index-B2RPurN4.js} +1 -1
- package/dist/assets/{index-DqZvBosz.js → index-BEDCOb-P.js} +1 -1
- package/dist/assets/{index-BS4gI6Je.js → index-BMvhWz0X.js} +1 -1
- package/dist/assets/{index-BY2B2juN.js → index-BcnVhON2.js} +1 -1
- package/dist/assets/{index-G6mLFBwo.js → index-BnQ-_yld.js} +3 -3
- package/dist/assets/{index-CouqM1KS.js → index-C-qSsYu-.js} +1 -1
- package/dist/assets/{index-CLKzAwdz.js → index-CAQ09npc.js} +1 -1
- package/dist/assets/{index-CoDgpGOM.js → index-CDZZTyLs.js} +2 -2
- package/dist/assets/{index-DU1RbZz3.js → index-CVvmswkh.js} +1 -1
- package/dist/assets/{index-4iRJnRDb.js → index-CXsAtHLa.js} +1 -1
- package/dist/assets/{index-Dk4snkhP.js → index-CfenaAVg.js} +1 -1
- package/dist/assets/{index-CfnfoDga.js → index-Cx7Xa7nl.js} +1 -1
- package/dist/assets/{index-4N6JSZ-1.js → index-D0uQb3TR.js} +1 -1
- package/dist/assets/{index-BHZw9zYL.js → index-D84o3DbN.js} +1 -1
- package/dist/assets/{index-CSpvJyY6.js → index-DM1_TaRl.js} +1 -1
- package/dist/assets/{index-2yXoHCF5.js → index-DccCgoC4.js} +1 -1
- package/dist/assets/{index-CDK4fL-O.js → index-Dkx4Mp12.js} +4 -4
- package/dist/assets/{index-CocTzKAu.js → index-DwSKcE0X.js} +1 -1
- package/dist/assets/{index-BuM1x7gd.js → index-TVXfiYCu.js} +1 -1
- package/dist/assets/index-hl-qhRoV.js +124 -0
- package/dist/assets/{index-Dnczsrey.js → index-kYu0y26a.js} +1 -1
- package/dist/assets/{index-1FCrRa8S.js → index-spmYO3Ab.js} +1 -1
- package/dist/assets/{index-lPn5f6-V.js → index-v2QpDA9k.js} +1 -1
- package/dist/assets/{invitation-Cb4EkBcb.js → invitation-C5kJotVc.js} +1 -1
- package/dist/assets/{invitations-D3Zrof2P.js → invitations-BkQFdqNe.js} +1 -1
- package/dist/assets/{invite-BR4XYB-m.js → invite-Bi9qMn-u.js} +1 -1
- package/dist/assets/{isURL-C1DcW1a5.js → isURL-GpP7YPNs.js} +1 -1
- package/dist/assets/{issue-passport-BdoYSf2e.js → issue-passport-CHdu1O5B.js} +1 -1
- package/dist/assets/{item-CkI92KM4.js → item-CQIw46yu.js} +1 -1
- package/dist/assets/{landing-page-B5oo2gYB.js → landing-page-CjXwLn6s.js} +1 -1
- package/dist/assets/{layout-BZEqr9pw.js → layout-3MwmBHGM.js} +1 -1
- package/dist/assets/{list-CDnwzHEF.js → list-6KE7wBaX.js} +1 -1
- package/dist/assets/{list-IzlvL0Cm.js → list-D_RZEh7_.js} +1 -1
- package/dist/assets/{localization-BicvVG1z.js → localization-BvU49oVa.js} +1 -1
- package/dist/assets/{log-BLFD38SA.js → log-BKfIwEBs.js} +1 -1
- package/dist/assets/{login-tgh6A96Z.js → login-Br-iz4HM.js} +1 -1
- package/dist/assets/{login-oauth-callback-DCxgtqJh.js → login-oauth-callback-CMnHoqWF.js} +1 -1
- package/dist/assets/{logo-uploader-CeiVmA8S.js → logo-uploader-DPSSz4_-.js} +1 -1
- package/dist/assets/{lost-passport--U8zmxgu.js → lost-passport-DePdm4wz.js} +1 -1
- package/dist/assets/{open-window-M9ef-LkI.js → open-window-Br_pb9ZW.js} +1 -1
- package/dist/assets/{over-due-invoice-payment-W_gVc8Qj.js → over-due-invoice-payment-uxF9-1cS.js} +1 -1
- package/dist/assets/{overview-DZA0nOyD.js → overview-D8Gh5IS7.js} +1 -1
- package/dist/assets/{passport-Cd-yq0CU.js → passport-B-GT6j4L.js} +1 -1
- package/dist/assets/{passport-item-BEacxvYM.js → passport-item-YF9RfQH3.js} +1 -1
- package/dist/assets/{permission-DNqMBi19.js → permission-uKfC5D9f.js} +1 -1
- package/dist/assets/{preferences-6Rdph3hk.js → preferences-D3ILj2f_.js} +1 -1
- package/dist/assets/{profile-embed-ChFmka39.js → profile-embed-BFD-Tozn.js} +1 -1
- package/dist/assets/{publish-resource-BtxG5C-8.js → publish-resource-CV4t0PFh.js} +1 -1
- package/dist/assets/{runtime-ChFuhKtK.js → runtime-jHV-CQxJ.js} +1 -1
- package/dist/assets/sdk-CByZ4_g5.js +1 -0
- package/dist/assets/{security-PpRNxUG9.js → security-YOGcIKde.js} +1 -1
- package/dist/assets/{session-DqPgru1C.js → session-DsIBYEWF.js} +1 -1
- package/dist/assets/{setup-oD1wO9rk.js → setup-TVwmAqcY.js} +1 -1
- package/dist/assets/{spaces-DGH_8-cq.js → spaces-C0dI3K7C.js} +1 -1
- package/dist/assets/{start-C5yo46Q5.js → start-D9z9VSK_.js} +1 -1
- package/dist/assets/{starting-progress-CG1Jhf-6.js → starting-progress-C1bqyLSx.js} +1 -1
- package/dist/assets/{status-aDx49LDx.js → status-DLtYYu_o.js} +1 -1
- package/dist/assets/{step-actions-DMXYHHE_.js → step-actions-C6BvFfMg.js} +1 -1
- package/dist/assets/{studio-DWci_EEj.js → studio-CazjgR33.js} +1 -1
- package/dist/assets/{team-DNwgDnjc.js → team-geqUb8FM.js} +1 -1
- package/dist/assets/{traffic-Bixs5_Th.js → traffic-DzzcWvVK.js} +1 -1
- package/dist/assets/{transfer-Cz15cjFv.js → transfer-CTqNDZDy.js} +1 -1
- package/dist/assets/{unsubscribe-CkZxyB3U.js → unsubscribe-D-R1qemO.js} +1 -1
- package/dist/assets/{use-app-logo-Bbh3GZji.js → use-app-logo-DCgwdb4C.js} +1 -1
- package/dist/assets/{user-center-DkbCI7_Z.js → user-center-1Ikjxl4_.js} +2 -2
- package/dist/assets/{user-follower-BiV6IZnA.js → user-follower-B4ZDD-Mm.js} +1 -1
- package/dist/assets/{user-sessions-WZG9FkqG.js → user-sessions-DOAxWAOa.js} +1 -1
- package/dist/assets/{util-BilORIYw.js → util-DKVr8C5h.js} +1 -1
- package/dist/assets/{util-CT-nPa5g.js → util-FgS2GkyL.js} +1 -1
- package/dist/assets/{wait-connect-Be6pglA3.js → wait-connect-DgVeMAoQ.js} +1 -1
- package/dist/assets/{wizard-B56tgdNq.js → wizard-Du2TbNOA.js} +1 -1
- package/dist/assets/{wizard-components-4u9bZcdI.js → wizard-components-BrC7AMh4.js} +1 -1
- package/dist/assets/{wrap-locale-CIO-ciR5.js → wrap-locale-vk5eIzsH.js} +1 -1
- package/dist/assets/{zh-1ARDBzTp.js → zh-CPf0Aw2x.js} +1 -1
- package/dist/assets/{zh-C_CaWCk3.js → zh-CecJnvFy.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +23 -23
- package/dist/assets/engine-BOS99Pm4.js +0 -1
- package/dist/assets/index-D_TfbqtN.js +0 -124
- package/dist/assets/sdk-C7wG8QyH.js +0 -1
package/api/index.js
CHANGED
|
@@ -337,23 +337,13 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
337
337
|
async function wrapHelmet({ req, res, securityConfig, blocklet, info }, next) {
|
|
338
338
|
let config = securityConfig?.responseHeaderPolicy?.securityHeader || {};
|
|
339
339
|
config = cleanConfigOverride(config);
|
|
340
|
-
const referer = req.get('referer');
|
|
341
340
|
// NOTICE: 获取当前站点所有可信的域名
|
|
342
|
-
const trustedDomains = await federatedUtil.getTrustedDomains({ node, req, blocklet });
|
|
343
|
-
//
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
return refererUrl.hostname === x;
|
|
349
|
-
} catch (err) {
|
|
350
|
-
// FIXME: @LiuShuang 这里处错误信息不重要,先打印先忽略
|
|
351
|
-
// logger.error('Failed to parse referer', { referer, err });
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
return false;
|
|
355
|
-
});
|
|
356
|
-
config = await patchResponseHeader(config, { node, blocklet, trustedDomains: filteredTrustedDomains });
|
|
341
|
+
const trustedDomains = await federatedUtil.getTrustedDomains({ node, req, blocklet, minimal: true });
|
|
342
|
+
// NOTICE: 这里需要使用全量的可信域名
|
|
343
|
+
// 1. 用户直接打开指定网址 referer 会是空,无法应用匹配规则
|
|
344
|
+
// 2. 用户从其他网站(非当前 blocklet)跳过来,referer 会是跳转前的网址,无法应用匹配规则
|
|
345
|
+
// 综上,必须使用全量的可信域名,来确保统一登录可用
|
|
346
|
+
config = await patchResponseHeader(config, { node, blocklet, trustedDomains });
|
|
357
347
|
|
|
358
348
|
// TODO: @zhanghan apply these to user defined rules
|
|
359
349
|
if (
|
|
@@ -467,12 +457,13 @@ module.exports = function createServer(node, serverOptions = {}) {
|
|
|
467
457
|
'https://*.youtu.be',
|
|
468
458
|
'https://*.vimeo.com',
|
|
469
459
|
...whitelist.official,
|
|
460
|
+
...trustedDomains.filter(Boolean).map((x) => `https://${x}`),
|
|
470
461
|
].filter(Boolean),
|
|
471
462
|
frameAncestors: [
|
|
472
463
|
"'self'",
|
|
473
464
|
...whitelist.spaces,
|
|
474
465
|
...whitelist.official,
|
|
475
|
-
...
|
|
466
|
+
...trustedDomains.filter(Boolean).map((x) => `https://${x}`),
|
|
476
467
|
].filter(Boolean),
|
|
477
468
|
manifestSrc: ["'self'", ASSET_CDN_HOST],
|
|
478
469
|
},
|
package/api/util/federated.js
CHANGED
|
@@ -114,7 +114,7 @@ function syncFederatedUser(blocklet, node, user, sourceAppPid) {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
async function getTrustedDomains({ node, req, blocklet }) {
|
|
117
|
+
async function getTrustedDomains({ node, req, blocklet, minimal = false }) {
|
|
118
118
|
if (!blocklet) {
|
|
119
119
|
return req.hostname ? [req.hostname] : [];
|
|
120
120
|
}
|
|
@@ -127,9 +127,12 @@ async function getTrustedDomains({ node, req, blocklet }) {
|
|
|
127
127
|
},
|
|
128
128
|
sites: [],
|
|
129
129
|
});
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
const domainList = [];
|
|
131
|
+
if (!minimal) {
|
|
132
|
+
const nodeInfo = await req.getNodeInfo();
|
|
133
|
+
const domainAliases = await node.getBlockletDomainAliases({ blocklet, nodeInfo });
|
|
134
|
+
domainList.push(...domainAliases.map((item) => item.value));
|
|
135
|
+
}
|
|
133
136
|
federated.sites
|
|
134
137
|
// 只展示状态是 approved 的站点为可信域名
|
|
135
138
|
.filter((x) => x.status === 'approved' || isMaster(x))
|
|
@@ -142,7 +145,9 @@ async function getTrustedDomains({ node, req, blocklet }) {
|
|
|
142
145
|
} catch {
|
|
143
146
|
logger.error('Failed to get domain from appUrl', { appUrl: cur.appUrl });
|
|
144
147
|
}
|
|
145
|
-
|
|
148
|
+
if (!minimal) {
|
|
149
|
+
domainList.push(...(cur?.aliasDomain || []));
|
|
150
|
+
}
|
|
146
151
|
});
|
|
147
152
|
const result = [...new Set(domainList)];
|
|
148
153
|
return result;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{D as E,j as e,ak as l,y as h,bq as A,b6 as g,br as L,at as N,W as y}from"./vendor-mui-core-DRxbhqaK.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-B9VfuZTg.js";import{A as b}from"./config-
|
|
1
|
+
import{D as E,j as e,ak as l,y as h,bq as A,b6 as g,br as L,at as N,W as y}from"./vendor-mui-core-DRxbhqaK.js";import{r as m}from"./vendor-react-Dvs43sk9.js";import{T as I,H as j}from"./vendor-ux-B9VfuZTg.js";import{A as b}from"./config-D8oltJzP.js";import{a as O}from"./page-header-DvSb4Cmz.js";import{l as v,e as R,c as o,f as T}from"./index-Dkx4Mp12.js";import{S as Y}from"./layout-3MwmBHGM.js";import{S as D}from"./step-actions-C6BvFfMg.js";import{S as P}from"./button-BmGMF4AE.js";import"./vendor-utils-CUDP56Ff.js";import"./vendor-hooks-BlA8TRnZ.js";import"./lottie-web-4koyQiv_.js";import"./vendor-arcblock-DeeG8u0h.js";import"./content-layout-B9tc9LCL.js";import"./use-mobile-D6YQgajG.js";function W({onNext:a=()=>{}}){const C=E(),{t:n,locale:p}=I(),[i,c]=m.useState(!1),[S,d]=m.useState(""),{blocklet:r}=v();m.useEffect(()=>{const t=R.findServiceFromMeta(r.meta,o.NODE_SERVICES.AUTH);d(t?.config?.whoCanAccess||o.WHO_CAN_ACCESS.ALL)},[r]);const f=async t=>{let s=o.ACCESS_POLICY_PUBLIC;t===o.WHO_CAN_ACCESS.ALL?s=o.ACCESS_POLICY_PUBLIC:t===o.WHO_CAN_ACCESS.INVITED?s=o.ACCESS_POLICY_INVITED_ONLY:t===o.WHO_CAN_ACCESS.OWNER?s=o.ACCESS_POLICY_OWNER_ONLY:t===o.WHO_CAN_ACCESS.ADMIN&&(s=o.ACCESS_POLICY_ADMIN_ONLY);try{c(!0),await T.updateBlockletSecurityRule({input:{did:r.meta.did,data:{id:o.SECURITY_RULE_DEFAULT_ID,accessPolicyId:s}}}),c(!1)}catch(_){c(!1),j.error(_.message)}},x=async t=>{i||(d(t.target.value),await f(t.target.value))},u={marginRight:4,fontSize:18,verticalAlign:"text-bottom",color:C.palette.text.secondary};return e.jsxs(k,{children:[e.jsx(l,{className:"header",children:e.jsx(O,{title:n("blocklet.config.access.title"),subTitle:n("blocklet.config.access.description")})}),e.jsx(l,{className:"form-container",children:e.jsx(h,{component:"fieldset",children:e.jsx(A,{name:"inherit",value:S,onChange:x,children:b.map(t=>e.jsxs(l,{sx:{mb:2,"&:last-child":{mb:0}},children:[e.jsx(g,{value:t.value,control:e.jsx(L,{size:"small",color:"primary"}),label:e.jsxs("span",{style:{display:"flex",alignItems:"center",position:"relative"},children:[e.jsx(t.icon,{style:u}),e.jsx("span",{style:{marginTop:2},children:t.title[p]})]})}),e.jsx(l,{className:"tip",children:t.description[p]})]},t.value))})})}),e.jsx(D,{mt:8,disabled:i,blocklet:r,onStartNow:()=>a("complete"),children:e.jsx(P,{loading:i,variant:"contained",disabled:i,onClick:()=>a(),children:n("setup.continue")})})]})}W.propTypes={onNext:y.func};const k=N(Y)`
|
|
2
2
|
height: 100%;
|
|
3
3
|
overflow-y: auto;
|
|
4
4
|
.header {
|