跳到主要内容

declareTrustedWrite()

function declareTrustedWrite(scope, declaration): void;

Defined in: packages/rxdb/src/trusted-write/trusted-write-scope.ts:98

声明紧接着这一次写的意图

Parameters​

ParameterTypeDescription
scopeobject适配器实例(适配器级原语)或事务执行器(事务内原语)
declarationTrustedWriteDeclaration与登记表同一行的三段身份

Returns​

void

Throws​

RxDBError 三段身份不在 TRUSTED_CALLSITE_REGISTRY 里时

Remarks​

未登记的身份抛错而不是按未知入口放行:放行的话,新增一个批量重写调用点只需要随手编一个 文件名就能绕开漂移扫描,而扫描正是 SC-010 的全部内容。抛错则让「新增调用点」与「更新登记表」 必须同一次提交完成。

三段身份是调用方自报的,运行时只查表、不核对调用方真的在那个文件那个符号里——这是设计, 不是遗漏。 它挡的是漂移:新写一处批量重写却忘了登记,在这儿当场抛错(fail-closed)。 它挡不住仿冒:一个照着登记表填三段字符串的调用方会被放行。但能走到这一步的代码已经 import 了核心包、拿到了 adapter 实例,它直接调 adapter.mergeChanges() 比仿冒一个键更省事 ——这道门禁不是防御边界,是一致性契约(epic-006「受信调用点登记表」;威胁推演归档在 git show f9528e8f:specs/001-working-tree-commits/threat-model.md §4)。