feat(config): 涉密内容外置到配置目录(档案 140)
把散落在代码里的真实部署值统一收进 config/,代码改为引用配置, 使仓库副本/开源导出不再带出生产域名、IP、内网路径与凭据。 新增 config/:platform.env.example(模板)· load.sh(shell 加载器)· index.cjs(node 加载器)· README.md(键一览与优先级)。 真实值放 config/platform.env —— 已 .gitignore 排除,不入库、不进导出。 TS 侧新增 src/platform-paths.ts 作部署路径的唯一解析处(零副作用): platformDir/stateDir/backupDir/artifactDir/installDir/scriptPath。 config.ts 接入这些字段;内置中继种子由生产 URL 改为空(改由 DSHS_OVERLAY_BOOTSTRAP_SEEDS 提供)。修掉 5 处硬编码绝对路径, src/** 注释中性化 116 行/53 文件。 scripts/** 36 个内部运维脚本:真令牌/PG 口令/隧道目标/主机号/路径 一律改从配置取;web/wake.html 的注册域白名单改为运行时从 location.hostname 推导;test/** 夹具 119 行/13 文件改 RFC 2606/5737 保留值,并把「内置种子必须为空」固化为回归断言。 取证:tsc 0 错;npm test 373/375(唯一失败 lease 属既有); 全仓扫描(大小写不敏感)代码面涉密标识 = 0;已部署 47 并零回归 (/opt/dsh/* 未搬家,/var/lib/dshs/platform 未被误建)。
This commit is contained in:
1 parent
9c2e7975ac
commit
452924d89c
100 files changed
+1167
-453
No files matched your search
@@ -33,7 +33,7 @@ import { RemoteUserFs } from '../lib/fs/remote-user-fs.js'
|
||||
|
||||
/** Manager 自己那台(= 默认 / 回退 agent)—— 任何"打到这里"都是路由失败。 */
|
||||
const DEFAULT_AGENT = 'http://127.0.0.1:19100'
|
||||
/** 归属机:w-106 的 agent。 */
|
||||
/** 归属机:w-2 的 agent。 */
|
||||
const W106_AGENT = 'http://127.0.0.1:19000'
|
||||
|
||||
/** 记账用 fetch:记下每一发请求,永不真的出网。 */
|
||||
@@ -74,7 +74,7 @@ test('U1 目录未命中:ensureHost 补齐后打到**归属机器**(不再
|
||||
const dir = new Map() // 模拟 hostsProvider() 尚未填过的空目录
|
||||
let ensured = 0
|
||||
const { fs, fetchImpl } = mk({
|
||||
hostIdFor: async () => 'w-106',
|
||||
hostIdFor: async () => 'w-2',
|
||||
agentFor: (h) => dir.get(h),
|
||||
ensureHost: async (h) => {
|
||||
ensured += 1
|
||||
@@ -85,13 +85,13 @@ test('U1 目录未命中:ensureHost 补齐后打到**归属机器**(不再
|
||||
await fs.listDir('u1', '')
|
||||
|
||||
assert.equal(ensured, 1, '未命中必须触发一次补齐')
|
||||
assert.deepEqual(fetchImpl.calls, [`${W106_AGENT}/fs/list`], '必须打到 w-106,不许打默认机')
|
||||
assert.deepEqual(fetchImpl.calls, [`${W106_AGENT}/fs/list`], '必须打到 w-2,不许打默认机')
|
||||
})
|
||||
|
||||
test('U7 命中时**不**做补齐(正常路径零开销:不查库)', async () => {
|
||||
let ensured = 0
|
||||
const { fs, fetchImpl } = mk({
|
||||
hostIdFor: async () => 'w-106',
|
||||
hostIdFor: async () => 'w-2',
|
||||
agentFor: () => ({ agentUrl: W106_AGENT, token: 'tok-106' }),
|
||||
ensureHost: async () => {
|
||||
ensured += 1
|
||||
@@ -109,8 +109,8 @@ test('U7 命中时**不**做补齐(正常路径零开销:不查库)', asyn
|
||||
test('U2 补齐后仍取不到地址:503 host_unresolved,且**零请求发往默认机**(写操作也拦住)', async () => {
|
||||
let ensured = 0
|
||||
const { fs, fetchImpl } = mk({
|
||||
hostIdFor: async () => 'w-106',
|
||||
agentFor: () => undefined, // 目录里始终没有 w-106
|
||||
hostIdFor: async () => 'w-2',
|
||||
agentFor: () => undefined, // 目录里始终没有 w-2
|
||||
ensureHost: async () => {
|
||||
ensured += 1
|
||||
},
|
||||
@@ -125,7 +125,7 @@ test('U2 补齐后仍取不到地址:503 host_unresolved,且**零请求发
|
||||
|
||||
test('U3 未提供 ensureHost(老调用点):未命中同样失败关闭,**不退化**为静默回退', async () => {
|
||||
const { fs, fetchImpl } = mk({
|
||||
hostIdFor: async () => 'w-106',
|
||||
hostIdFor: async () => 'w-2',
|
||||
agentFor: () => undefined,
|
||||
// ensureHost 故意不传
|
||||
})
|
||||
@@ -136,7 +136,7 @@ test('U3 未提供 ensureHost(老调用点):未命中同样失败关闭,
|
||||
|
||||
test('U8 ensureHost 自己抛错(如查库失败):仍失败关闭,不吞成"默认机"', async () => {
|
||||
const { fs, fetchImpl } = mk({
|
||||
hostIdFor: async () => 'w-106',
|
||||
hostIdFor: async () => 'w-2',
|
||||
agentFor: () => undefined,
|
||||
ensureHost: async () => {
|
||||
throw new Error('pg is down')
|
||||
|
||||
Reference in new issue
Block a user