@alma-harness/postgres-execution

中文文档
0.41.0发布于 2026/11/04Apache-2.0TypeScriptES Module零依赖近 30 天下载 2259

PostgreSQL运营线路为阿尔马.

中文使用文档
文档目录3 节
  1. 基础财务会计
  2. 批量提交文件的所有权
  3. 会话标签

@alma-harness/postgres-excution (英语)

PostgreSQL操作线程(指:持久-操作线程). 这个添加剂 软件包取决于匹配 core, (中文(简体) ), execution 财务报告和审定财务报表 postgres 释放; 它 重用共享范围交易,角色和语句超时帮助.

migrateOperationTreeStore(pool) 安装当前执行形状帮助器,并 alma_operation_roots编号 :alma_operation_calls。 。 。 . PostgresOperationTreeStore(pool, ScopedStoreOptions?) 执行中性 OperationTreeStore 从被执行. 默认交易 SET LOCAL ROLE alma 应用并绑定 org/ uid 带有30s 超时. 一个明确的无效角色保留了现有的主机选择退出角色切换. 移徙需要与邮资相同的特权移徙联系;运行时间 连接通过 GrantRole 使用有限的登录成员. 迁移升级a 数据库最后由前两个小版本中的一个迁移,并重运行 它们不会改变什么(规格:升级-窗口).

索赔根一次;只有第一个索赔人得到不透明的栅栏。 储备稳定 主/正/去/去/取出分档后再发出. 根/子范围,会话, 政策、上限、敏感性和最后期限必须商定。 父母联系在 树根。 SQL 锁定序列化正则; 触发验证根录入和更新 从解剖学上来说,会员人数是多少。 损失的确认按范围解决 或平等保留重放, 从来没有一个新的根执行权限.

INSERT 独有性失败允许在回滚和连接后读取 释放。 只有一个完全相同的正常化的具有约束力的回报 existing,没有 栅栏;关闭或过期的赢家没有重新获得权力。 读取失败, 其他 SQL 错误和COMMIT 不确定性仍然是错误。 映射出的错误保留 原始 PostgreSQL 图像 cause 非数字的可信诊断; 不序列化 导致客户端输出或常规日志( spec: option- tree- claim- read back) .

过期的根无法保留, 甚至在之前 reconcileExpired(scope) 标记为 调和。 被捆绑的扫荡会跳过被锁起的根. close 停止录取; 它并不意味着会计核算或完成交付. listCalls 原文为:, 默认50/max100,每个根最多有512个成员. 读书人永远不回篱笆 符号 。 元数据是免内容并保留;不存在删除或收购API.

统治下的谈话和继位者在退位前就对这些保留具有约束力. 线性本身不产生可计费成本行.

范围围栏 (规格:范围-围栏). 树、会话和批次迁移增加 邮包的栅栏触发器 alma_operation_roots, (中文(简体) ), alma_operation_admissions 财务报告和审定财务报表 alma_batch_submissions新的栅栏式瞄准镜 根、 接受或提交被拒绝 ScopeFencedError,由任意 编剧. 围栏还授权释放不确定的承认其 范围 : releaseFenced(scope, { limit }) 作为应用程序发布 作用,以栅栏的行动id作为它们的解析度(谱系:范围-时代). A 类 没有栅栏的瞄准镜立即释放 releaseFailed(scope, rootKey), (中文(简体) ), 作为任何角色 failedReleaseId(rootKey) (规格:倒转-释放) 运算符 resolve;或者,一旦不确定的录取期限为15个 过几分钟数据库钟,任何人通过 releaseExpired(scope, { limit }) 与从它的密钥中衍生的id( spec: 过期- turn- release). 这个 触发重算从密钥中导出 id;和 a 记录事件录入: releaseExpiredEvents(scope, sessionId) 释放, 作为应用角色,在 conversation-event-v1: 名称空间 在数据库时钟上超过最后期限, 没有操作根, 标记 一个活跃的不确定的先( spec: 栅栏- event- appended). 入院的触发器检查了所有情况 并检查了 alma_operation_roots 在事件密钥下拒绝任何根, 因此无法写入 以这种方式释放出一个转弯( 规格: 对话- 事件) 。 重运行 migrateOperationSessionStore,则 再次验证目录 .

基础财务会计

migrateOperationAccountingStore 构成行系和受管成本迁移. PostgresOperationAccountingStore 以登记方式读取实际受管制收据 调用身份并只写 alma_operation_financial_calls 财务报告和审定财务报表 alma_operation_warnings根锁将会计科目和总额序列化; SQL 核实金融协会和准确的决定元数据,并插入 在解剖学上警告证据。 源成本行/计数从未增加.

源结算和汇总是单独的交易. 损失合计 确认重放存储的收件; 缺失的集合可以修复 包括关闭/期满后。 保留的范围 源控行; 普通成本保留已经保留了这些行. 简要清点不能证明完成或外部交付。 命令外根数 原始会话/天金额; 根警告是不可改变的证据, 不是通知发送框(规格:root-financial-recepts).

migrateOperationSessionStore(pool) 安装可扩展的会话锁行和不可移动 入会. PostgresOperationSessionStore (a) 将索赔进行连锁处理; a 部分独特指数只允许每个范围会议有一个未完成的录取. 最后期限标志着不确定性,但不允许接管。 完成需要原始内容 过期前的栅栏;其回放保持稳定。 运算符解析器有单独的 收件后无法作为所有者完成重放 .

正常操作假设 alma_app; 明确 resolve 假设 配置 operatorRole (默认) alma_retention需要加入 FORCE RLS仍在活动. 仅将成员资格授予受信任的和解者 主持人。 迁移接受匹配 role编号 :operatorRole。不要引用决议 从跑者、扫荡者或超时处理器;跑者自己释放的是 releaseFailed,在应用角色下。 在创建根前承认; 崩溃 在这些交易之间,会话一直持续到到期发行。 部署 将读者和角色在收养前相匹配; 录取本身不包括自动保留。 参见受管会-会议-接纳谱.

摘要可能没有父目录(序文摘要). 拓宽的母公司FK和 低水平检查仍然存在.

通过录入输入和 无效的根 request 栏。 新的 SQL 检查验证已关闭的受限元数据; root UPDATE 触发器保护原始绑定字段,同时允许现有 状况/计算变化。 无描述符的根仍然有效 。 没有捏造 修改,内容行或收费被创建( spec: conversation-root-binding).

批量提交文件的所有权

migrateBatchSubmissionStore 添加 alma_batch_submissions 财务报告和审定财务报表 alma_batch_items· ; PostgresBatchSubmissionStore 执行执行包的中性合同. 父插入通过 SQL 触发器在 同一个交易。 行动范围/呼叫/定居的独特性和不可改变的JSON 约束防止重新参与。 FORCE RLS 覆盖 org 和 uid; 使用普通 有限登录 alma app 成员和语句超时设置 。 运行时间 无法删除赠款或所有权重设 API.

SQL 守护者拒绝过期的新发送、倒转和接受 a 先前的发送标记。 时钟在行锁后被采样. 迟到的手柄留下 (b) 接收不是批量完成、会计或 允许再次提交。 范围从不暴露原始的围栏标志. SQL的准入与现有的有栅栏的商店一样,仍然是可信赖的东道主能力.

not_submitted (规格:批次未提交) prepared永远 带有发送标记,接受或手柄,没有UPDATE离开. 这个 已版本 alma_batch_transition_v2() 拥有触发器。 没有栅栏,只允许两个过渡,只有储存的最后期限 通过 clock_timestamp() 行锁后 : prepared 改为 not_submitted 财务报告和审定财务报表 dispatching 改为 reconciliation_required。 。 。 . reconcileExpired 跳过另一行 交易持有.

一项索赔INSERT独有性失败在交易清理后被读回一次, 在新的范围交易中。 只有一个完全一样的 普通的表 返回时 existing;没有取回围栏,而INSERT再也没有再试. 缺少或更改的绑定仍然有冲突;不相关的错误和丢失的COMMIT 识别无法启用此路径( scpect- claim- read back) . Mapped 批量冲突/状态错误保留了无法假定的 SQL 错误 cause,包括PostgreSQL提供的任何约束/细节. 这些诊断 仅供信任的检查使用:它们可能包含范围识别符。 别 将原因序列化为客户端响应或自动登录全部错误.

在构建适配器前安装添加剂迁移. 重运行 目前的移徙保留人口记录。 投入 正常化封顶显示在 2 MiB; SQL 额外将 JSONB 文本限制在 4 MiB 因为它的数值/白空间编码不同。 所有递归元数据形状 关闭;内容必须使用单独的结果存储。 没有自动保留, 包括供应商的准入、收集、结算或例行整合.

migrateBatchUsageStore 组成批次和管理住区迁移和 添加 alma_batch_usage。 。 。 . PostgresBatchUsageStore 使用正常范围限制 登录和超时选项。 SQL 将观测结果绑入接受的手柄/成员, 核查封闭的证据,并只允许与现有 匹配管理成本。 FK保护观测和源 收到保留;应用不会收到删除赠款. 读者验证已保存完毕 定价和收款的一致性,在腐败元数据上失败.

接收领养先将观察锁上,然后将其合并的收据读入 新的 SQL 声明: 必须在相互竞争的收养之前进行发言 不将新关联与旧关联数据相混合 。 丢失附件、结算和 收养确认重新显示同样的身份。 适配器不会增加 支付或援引提供者。 在新阅读器前安装添加剂迁移; 人口密集的反复升级保存记录。 参见执行的批量使用日记 合同; 内容、有效电子格式、收集完成和交付仍然分开. SQL协会警卫也计算出被冻结的批发价格,包括最高价格 适用的快带、缓存回落/一小时费率和供应商搜索费. 对等测试将其金额与核心定价进行比较;匹配的身份/使用收据 金额不同,不能使观察无法读取或解决.

migrateBatchAccountingStore 添加 alma_batch_financial_items 财务报告和审定财务报表 alma_batch_warnings 在批量使用迁移之前. PostgresBatchAccountingStore 使用相同的有限范围连接选项. 批次行锁将会计科目和包括的总数序列化 警告插入以解剖方式进行。 独有的范围项目密钥防止了两种观察 从贡献两次。 SQL 检查通过的意见、来源量、, 确定明确的立场和确切的决定/警告。 应用补助金为SELECT/INSERT 仅;范围为FKs的保护源观测. 支持流行升级回放. 适配器从不写货币计数器或成本行,也不批准执行 或频道传输权限.

依赖于 Alma 对象的 SQL 验证器和触发器将其引用器路径钉入 pg_catalog, installation_schema, pg_temp重新运行 当前在备份前的迁移;旧的启动 SQL 可以替换函数设置 . 这保留了pg restore期间的CHECK评价,并可以防止呼叫者路径阴影.

嵌入式工具选择 execution.controls.toolChoice 仍然是每个不可更改的呼叫或批发项目的一部分。 运行两个 migrateOperationTreeStore 财务报告和审定财务报表 migrateBatchSubmissionStore 在撰写选择之前。 重新运行两种迁移,无论是哪种顺序,都保留现有记录和限制身份. 更改的选择会与原调用槽或批量显示相冲突,不授权再发送.

会话标签

migrateSessionLabelStore(pool) 添加 alma_session_labels· ; PostgresSessionLabelStore 执行核心 SessionLabelStore 标准范围 选项(规格:会话-标签)。 CHECK 验证标签形状和 可用/已过期状态; 触发会冻结行身份和创建, 只允许 available → erased 并制作墓碑 空出一行的线 会话标识是范围封条 . alma_app 获得SELECT/INSERT/UPDATE,永不减值. 每篇作文都要用一副全镜咨询锁,所以放出并去除序列. 插入触发器采用相同的锁, 拒绝密封范围内的标签, 并拒绝外跑 read committed因为一个更古老的快照 将错过一个密封 等待.

版本与发布记录

@alma-harness/postgres-execution 共发布 47 个版本,首次发布于 2026/09/09;过去 12 个月发布了 47 个版本。

版本发布日期距今
0.41.0latest2026/11/043 天前
0.40.02026/10/308 天前
0.39.22026/10/309 天前
0.39.12026/10/299 天前
0.39.02026/10/299 天前
0.38.02026/10/2910 天前

关于 @alma-harness/postgres-execution 的常见问题

@alma-harness/postgres-execution 是什么?

PostgreSQL运营线路为阿尔马.

如何安装 @alma-harness/postgres-execution?

在项目目录运行 npm install @alma-harness/postgres-execution,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:pg(>=8)、@alma-harness/core(^0.41.0)、@alma-harness/postgres(^0.41.0)、@alma-harness/execution(^0.41.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@alma-harness/postgres-execution 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@alma-harness/postgres-execution 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@alma-harness/postgres-execution 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@alma-harness/postgres-execution 可以商用吗?

@alma-harness/postgres-execution 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@alma-harness/postgres-execution 的下载量有多少?

根据 npm 官方下载统计,@alma-harness/postgres-execution 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,259 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@alma-harness/postgres-execution 还在维护吗?

最新版本 0.41.0 发布于 2026/11/04(3 天前);至今共发布 47 个版本,其中过去 12 个月发布了 47 个;首次发布于 2026/09/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。