@ crowdsource.you/ 合同
版本合同每个Crowd Source表面都同意 编审和主控客户端,出版的SDK,以及第三方集成商.
与Zod共同撰写;出口合同与JSON Schema相同
(单位:千美元)crowdSourceJsonSchema(name)) 所以编译器不在类型脚本上
根据同一定义进行验证.
规则
- 仅合同。 没有应用程序逻辑, 没有运输客户端, 没有运行时间 属于一个表面.
schemaVersion在有效载荷内飞行(crowdsource.case.v1并且现在 与/v1路由版本。 附加变化起伏 也没有.- 公布的合同版本是不可改变的。 扩大是添加剂;缩小 需要一个新的版本.
- 这里的一切可能都取决于一个租户的词汇. 特定应用程序 主题类型和政策是数据,每个应用程序注册,从不类型 本包中.
在严酷的地盘,为什么
§10.11说未知的字段不得打断客户端,"除非是计划 禁止他们安全。 这句话的两分之一都是负载的 所以 包按方向分割,而不是选择一个设置.
| 方向 | 设置 | 原因 |
|---|---|---|
| 由租户或审查人入境——案例信封树、审查呈文、回避、政策集、资源设计登记 | .strict() | 默不作声的放出字段是上下文,应用程序认为它发送了,陪审团从未看到,或者未经审查的提供输入. 此外,提交审查材料绝不能容忍 caseId 编号 : assignmentId 编号 : reviewerId:这些来自服务器发布的任务,"没有人选择他们审查的个案"只有在无法提供的情况下才是真实的. |
| 外出租户——决定、网签信封、事件有效载荷 | .loose() | 新的人群源头 永远不能打破一个年长的客户端 和一个坚持不懈的接收器 event.data 因为以后的处理 保存所有到达的,而不是一个被剥去的子集. |
| 内部,致"Oxy Trust"——名声事件 | .strict() | 该事件故意没有资源标识,也没有免费文本;未识别的字段正是内容如何到达名声分类账或签名的证明. 进化由 .v1 在事件类型. |
打开袋-信封 metadata,第5.7节,自定义有效载荷,已登记的JSON Schemas——
是双向的例外。 根据定义,它们是开放的,但扁平或
深度、平面型式、按键限制、无
原型名称.
这是故意的 内容没有词汇过滤器人群来源携带 举报材料,性质敌对:骚扰报告引述 一份钓鱼报告引用了这个链接。 关于文本值的块列表 拒绝证据 并没有任何保护。 §5.7的边界是结构性的——即 合同在任何地方都没有价值被解释为加价的字段,a 模板、组件或远程引用.
JSON斯克马号没有携带的东西
佐德的改进没有JSON Schema的等同性,被取消
转换。 所有结构都能够生存
交叉引用规则不——第5.5节提及分辨率 oxy_user
约束性要求,即 uploadId编号 :url,媒体类型
同意 粗坐标 陪审团算术 超级会话链.
穿过JSON Schema的载荷造型良好,未被接受. 服务器 与Zod验证,这是权威.
计划中的含混之处,以及如何解决这些问题
计划被写成道行道,因此其一些例子彼此不一. 每一个此类案件都在这里列出;没有一个案件得到无声解决.
| {\fn方正粗倩简体\fs12\an8\1cHFFFF00\b0} | 何处 | 分歧 | 决议 |
|---|---|---|---|
| 1个 | 附录A与第5.8节 | 文摘编成 "sha256:..." 附录A和附录A "..." 第5.8节. | 一种犬形形态, sha256:<64 lowercase hex>。两个标记表示一个值的散列两种方式,给出一个内容的块两个信封散列,两个 caseDedupKeys(§7.3),两起案件和一起事件的两起处罚. 附录A为参考文档,因此其注法胜出而赤色形式被否定而非正常化. |
| 2个 | 附录B与第10.7节 | recommendedActions 是对象的列表( y){action, targetResourceIds})在附录B中,并列出了第10.7.节中的赤线. | 对决定有异议 对复议有关系 附录B是参考决定;建议删除而不指定删除内容的决定是不可起诉的。 §9.3将审查建议写成串行并保留下来. reference-documents.test.ts 将第10.7节的分歧定下来,从而扩大合同以接受合同必须是蓄意的行为. |
| 3个 | 附录B对§11.6对§6.4 | 通用分类法版本的拼写 taxonomy, (中文(简体) ), universal 财务报告和审定财务报表 universalTaxonomyVersion 在三个地方. | 每个地表都保留其参考有效载荷的拼写: DecisionPolicyVersions 用途 taxonomy, (中文(简体) ), ReputationPolicyVersions 用途 universal。这两个文件都是核定计划中的参考文件,此处要么是静默编辑. 建议的后续行动: 统一 {taxonomy, application, oxyConduct} 当活动合同与OxyHQServices达成协议时. |
| 页:1 | 第5.3条对第5.8条 | 第5.3节清单 dimensions 作为图像的最小数据;§5.8自己的图像资源省略了它们. | 可选的 §5.3的"最低数据"是指导,它本身的例子与之相矛盾. 视频和音频需要持续时间,没有实例与第5.3条相矛盾. |
| 页:1 | §5.2对§5.3 | 第5.2节 language 适用“在适用的情况下”;第5.3节将其列为文本的最低限度数据. | 可选的 §5.2是字段定义,未知语言的文字是真实的;使它成为必要的会将应用程序推入猜测. |
| 6个 | 第5.5节 | authored_by 将资源与主机相连接,但 id 空格是分开的, 没有实例可操作 . | authored_by 决定 to 反对 principalBindings;任何其他关系解决它与 resources被测试压住. |
| 第7条 | §5.1对§5.8对附录A | 需要哪个根键 . | 要求 : schemaVersion, (中文(简体) ), applicationId, (中文(简体) ), externalReportId, (中文(简体) ), subject, (中文(简体) ), principalBindings, (中文(简体) ), resources, (中文(简体) ), relations, (中文(简体) ), allegations, (中文(简体) ), policy, (中文(简体) ), privacy可选: source, (中文(简体) ), urgency, (中文(简体) ), metadata 第5.8节完全省略了这三项,附录A载有全部内容. resources 财务报告和审定财务报表 allegations 需要至少一个条目. |
| 第8条 | 第9.6节 | 假定决策结果;审查结果从未列出. | 审查结果较窄: violation, (中文(简体) ), no_violation, (中文(简体) ), insufficient_context, (中文(简体) ), content_unavailable。 。 。 . inconclusive 引擎是当一个小组不同意时所报道的——一个审查者不能不同意自己的意见,而"缺乏共识既不是罪过也不是无罪"只有在它从未被投票支持的情况下才有意义. duplicate 财务报告和审定财务报表 escalated 都属于个案状态. |
| 第9条 | 第11.6条对第5.1条 | 这个信封 principalBindings 总是显示 bindingProofId,但非奥克西主犯没有奥克西身份可以证明. | 需要时间 type 实值 oxy_user,另作选择。 这保持了"没有约束性证据,没有Oxy Trust effect"的结构,而没有锁定每个用户不是Oxy用户的租户. 在声誉活动上, subject.bindingProofId 无条件要求(第11.7.4节). |
| 10个 | 第12.4节 | 提出沙盒+中转+生产. | source.environment 实值 production 或者说 sandbox。 人群源代码一次部署; 沙盒是其中的应用程序信任状态, 根据此寄存器 AGENTS.md。 。 。 . |
| 第11个 | 附录F与第5.1节 | applicationId "来自证书, 从来没有从请求机构", 然而每个例子信封都有一个. | 与证书衍生的ID相匹配,并因不匹配而被拒绝。 合同不能执行这个.. 入侵路线必须,它是包件中风险最高的无变化剂. |
发明而非引用的价值观
计划中没有出现三道道具,并在此取名. 他们是 将它们单独列出,因为它们是产品决定可能仍然存在的地方 反对这个包裹.
application_local(单位:千美元)FindingScope) 第11.7.5节只允许oxy_network财务报告和审定财务报表identity_integrity到达 Oxy Trust,所以补充必须存在并且是 可命名性——第6.5节的整个论点是,当地限制不会变成一种 全球制裁。 将它建模成一个缺失的字段将使§11.7.5 a 存在检查, 它无法打开 .local_user, (中文(简体) ),organization, (中文(简体) ),bot, (中文(简体) ),federated_actor(单位:千美元)PrincipalType) (中文(简体) ). §3将主机定义为"Oxy用户,本地用户,组织,bot或 一个联邦演员,但只写过oxy_user概念是 计划,符号是合同的.conflict_of_interest, (中文(简体) ),language, (中文(简体) ),too_sensitive, (中文(简体) ),insufficient_context(单位:千美元)RecusalReason。第4.1节完全列出了这四个 第10.3节要求提出“结构化理由”.
故意左开
sensitivityHint财务报告和审定财务报表urgency.hint被绑定的小写符号,而不是 um. 计划列出每个值(standard, (中文(简体) ),normal和7.5节 意味着更多。 两者都是HINTS:权威sensitivity_class财务报告和审定财务报表 优先级通过对服务器的分解(§7.4,§12.8)和访问 敏感材料在计算课上盖门 绝不是租户 坚持 关闭任何一份清单都是尚未作出的产品决定.- 其余的名声事件类型. §11.5 命名了四个桥梁操作
(应用、最后敲定、倒转、调节)但第11.6节只规定
moderation.decision.finalized.v1其它的不是在这里发明的;ReputationEventSchema被歧视的结合者 添加剂和消费者已经打开了type。 。 。 . - 尺寸限制. §7.2.3 要求入侵限制大小和资源计数
但是没有数字.
CONTRACT_LIMITS宣布它们——足够慷慨,不 拒绝真正的物质, 有限的,所以合同中的任何事物都是不受约束的。 租户 可能会被限制在更严格的配额.
测试
bun run --cwd packages/contracts test # bun test, valid and invalid examples
bun run --cwd packages/contracts lint # bun check for src/ and again for the tests
bun run --cwd packages/contracts build # tsc → dist/ (CommonJS + .d.ts)
src/__tests__/fixtures/ 保留附录A、附录B、§5.8和§10.7,
财务报告和审定财务报表 reference-documents.test.ts 剖析他们。 如果参考文件确实如此
不验证为书面、测试名称、 负责的确切符号和
套房声称,文件中没有任何其他内容被拒绝.
每一次负面测试都断言这个问题是PATHS,而不仅仅是分析失败——a 以意外原因失败的负面例子与 正确的一个,然后停止测试 任何事情,当它的规则被取消.