@crowsi/提供者-http-transport
使用有限制的 HTTP 请求,并有明确的 HTTP 源代码政策、 请求/ 答复字节限制和超时 。 基地运输拥有有界HTTP. 仅由节点控制的入境点负责审查业务,提供账户/要求的赠款和注入证书;它不拥有产品API、账户存储或本地保管服务.
安装和使用
发行版本 : 0.11.2在通过之前核实登记册的可用性和来源。 配置传送方式为应用程序审查过的目的地和认证政策.
npm install @crowsi/provider-http-transport
import { createProviderHttpTransport } from '@crowsi/provider-http-transport'
const transport = createProviderHttpTransport({
allowedOrigins: ['https://provider.example'],
maximumRequestBytes: 65536,
maximumResponseBytes: 1048576,
timeoutMs: 15000
})
// The application owner configures the real destination and credentials.
const result = await transport.request({ url: 'https://provider.example/items' })
政策和界限
- 发源地必须是无路径的犬形HTTPS发源地,跟踪斜线或用户信息. 拒绝 HTTP, 其他出处或端口, URL 证书, 碎片和重定向 .
- 承认只得到,POST,PACH,PUT和DELETE。 得到和DEELET 无法携带一具尸体.
- 测量字符串、 URLSearchParams、 ArrayBuffer/ views 和 Blob 以实际字节大小表示。 在公共合同和运行时间检查中拒绝无法计量的机构,如FormData和溪流。 可变的 URLSearchParams/缓冲/视图机构在同步发送前被复制.
- 响应流最多接受4096个字节块,包括空块;非字节或过于零散的流被拒绝. 在生产者重新使用其缓冲器之前,会复制春克. 字节限制范围从1字节到16个米B. 超时从1到60000毫秒不等. 默认为64个KiB请求,1个MiB响应和15000ms.
回复 status, (中文(简体) ), statusText, (中文(简体) ), Headers (单位:千美元) Uint8Array 躯体。 应用程序解释 HTTP 错误状态 .
已安装的接取/ body 等待在中止或超时时解决 。 最佳流取消清理不会阻碍完成 .
调用器取消用途 transport/request/aborted; 内部定时器使用 transport/request/timeout; 使用通信失败 transport/request/unavailable的源、大小、方法和重定向失败也可以通过 ProviderTransportError.code。 。 。 .
全权证书和时间限制
呼叫信头被转发到获取;请求的细节不添加到结果中. 运输不生成,存储或日志认证头.
浏览器证书、CORS和饼干默认值保持不变,包括可能的同源饼干.
cause 保留原始驱动程序细节并可能包含URL或证书. 日志安全错误代码而不是潜在的敏感原因.
fetchImplementation 是一个值得信赖的替换,必须尊重信号和手动重定向。 这种运输并不是一个沙盒,它可以通过一个忽视它们的执行来强制阻止外部通信.
超时限制同步 I/O 等待, 在事件启动暂停或浏览器睡眠时没有真实的时间 .
发展和核查
运行时间:Node.js 22+. 发布检查使用节点.js 24.1.5.0和npm 12.2.0.
npm ci
npm run check
npm test
npm pack
src/*.mts 是类型执行. npm run build 生成 dist/*.mjs 和共同声明,不要编辑或犯规.
npm run check 验证Biome格式/lint,严格实施和消费类型,并按要求限定120个物理线. 内部规则是149条非空/非评论线;这些检查强制执行更严格的物理限制.
prepack 运行检查、构建和运行时间测试。 拥有者CI额外包装了档案,在取出外安装并验证公共类型,读出/写出/读回,回放拒绝,在发布前逃脱认证拒绝. 在出版前核对一个新鲜的消费者的档案.
合成取/流大小写和只回放适配器覆盖失败路径. 适配器没有建立真正的TLS,浏览器cookie/CORS或客户服务兼容性. 测试没有使用真正的提供者证书或外部邮件API.
使用指南 • 妇女 安全报告 • 妇女 Apache-2.0 许可证 • 妇女 归属
产品责任
本构成部分维持在 乌鸦网/克罗西-运输-创建。使用 产品README 用于组成、使用案例和信任界限.
本地管理员控制( 第24号)
这个 ./local-control 输入点绑定账户并审查操作目录
进入确切的要求计划。 被信任的主人最多要五个人批准一个计划
几分钟。 在获取任何无记名材料之前,执行消耗不透明的赠款;
失败也消耗了它。 未知的操作, 更改请求, 重放, 过期,
重新定向和无约束反应失败关闭。 提供方的错误不重复 .
成功的请求不能证明完整的许可清单.
在取得证书或执行HTTP时仍可撤销赠款.
撤销信号取消并压制成功收件;无法撤销
已发送远程信件 . ProviderExecutionError.outcome 区分
not-started, (中文(简体) ), not-completed 财务报告和审定财务报表 indeterminate-write。读回实际
提供者在考虑对不确定的写作进行重试之前声明 .
HTTP 204/205生产 data: null; 意外的非空地被拒绝.
业务元数据和原产地政策在登记时复制. discard
删除未使用的计划;废弃的计划在5分钟后失效.
prepare, (中文(简体) ), discard, (中文(简体) ), approve, (中文(简体) ), revoke 财务报告和审定财务报表 execute 属于所有者构成.
只给生成的代码限制执行端口和审查过的赠款, 绝不
批准、认证来源或可变主机环境。 这个图书馆是
不是一个进程沙盒或证书守护进程。 使用 Crowsi 工作量/保管
执行未信任代码时的边界。 JavaScript 证书字符串被持有
在信任的主机内,无法保证本土-记忆零化.
测试只使用注入的证书和假的 HTTP; 没有真正的登录, 密钥环, 提供商账户或开具账单。 唯一明确的拥有者 本地命令/ keyring 适配器是选入的,从未在导入时运行 .
通用经纪人支持JSON的回应,每笔赠款一个限定范围HTTP请求, 并且没有自动标记或投票。 每一个后续行动都需要另一个计划 和赠与。 二进制财务报告需要另行审核解码.
只执行工人端口( 新源 API)
./execute-port 曝光情况 createExecutePort(control)业主登记一个准确的经核准的计划/许可证,只发给孤立工人 { grantId, requestDigest } 加上手柄运输 登记、批准、证书来源和吊销仍只属于所有人。 额外字段、替代文摘、未知/撤销的赠款和重播均被拒绝。 见 组成和操场. 这个新的入门点没有包含在已公布的0.11.2档案中;孤立的候选消费者在新版发布前验证已改变的来源.
control.describe() 返回复制的账户/来源/操作目录,而不获取证书或提出 HTTP 请求。 它的许可状态是 not-observed:宣布的要求不是有效的IAM权利. 将此目录交给信任的管理员 UI, 而生成的工人只接收已注册的执行请求 .