@agentunion/fastaun 0.5.28 → 0.5.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/_packed_docs/CHANGELOG.md +41 -0
- package/_packed_docs/INDEX.md +20 -6
- package/_packed_docs/KITE_DOCS_GUIDE.md +14 -11
- package/_packed_docs/aun/346/265/213/350/257/225/350/277/220/350/241/214/346/214/207/345/215/227.md +18 -1
- package/_packed_docs/cli//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241CLI/345/274/200/345/217/221/344/270/216/344/275/277/347/224/250/346/214/207/345/215/227.md +869 -0
- package/_packed_docs/sdk/0.5.27-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +408 -0
- package/_packed_docs/sdk/0.5.27-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +410 -0
- package/_packed_docs/sdk/0.5.28-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +228 -0
- package/_packed_docs/sdk/0.5.28-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +146 -0
- package/_packed_docs/sdk/0.5.29-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +180 -0
- package/_packed_docs/sdk/0.5.29-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +164 -0
- package/_packed_docs/sdk/0.5.30-SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +61 -0
- package/_packed_docs/sdk/0.5.30-SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +68 -0
- package/_packed_docs/sdk/09-/347/273/204/347/273/207/346/234/215/345/212/241RPC/346/211/213/345/206/214.md +90 -90
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +7 -3
- package/_packed_docs/sdk/INDEX.md +20 -4
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/272/224/347/224/250/351/233/206/346/210/220/346/214/207/345/215/227.md +1 -1
- package/_packed_docs/sdk//345/207/255/350/257/201/344/270/216/347/273/204/347/273/207/346/234/215/345/212/241SDK/345/274/200/345/217/221/344/270/216/347/247/273/346/244/215/346/214/207/345/215/227.md +1 -1
- package/_packed_docs//346/216/247/345/210/266/346/266/210/346/201/257/344/270/216/350/256/276/345/244/207/350/203/275/345/212/233/345/215/217/345/225/206/346/226/271/346/241/210.md +426 -0
- package/_packed_docs//346/266/210/346/201/257/345/220/214/346/255/245/344/270/216/345/216/206/345/217/262/346/213/211/345/217/226/344/273/243/347/240/201/345/256/241/346/237/245/351/227/256/351/242/230/346/270/205/345/215/225.md +279 -229
- package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256TDD/345/210/206/351/230/266/346/256/265/345/256/236/346/226/275/350/256/241/345/210/222.md +138 -0
- package/_packed_docs//351/231/214/347/224/237/344/272/272/346/213/222/347/273/235/345/215/217/350/256/256/350/257/246/347/273/206/350/256/276/350/256/241.md +231 -0
- package/_packed_docs//351/243/216/346/216/247/345/223/215/345/272/224/344/270/216SDK/345/215/217/345/220/214/346/226/271/346/241/210.md +381 -0
- package/dist/agent-md-changes.d.ts +2 -14
- package/dist/agent-md-changes.js +41 -212
- package/dist/agent-md-changes.js.map +1 -1
- package/dist/agent-md-schema.js +2 -2
- package/dist/agent-md-schema.js.map +1 -1
- package/dist/agent-md.d.ts +4 -6
- package/dist/agent-md.js +66 -57
- package/dist/agent-md.js.map +1 -1
- package/dist/aid-store.d.ts +3 -1
- package/dist/aid-store.js +65 -42
- package/dist/aid-store.js.map +1 -1
- package/dist/client/control-messages.d.ts +0 -1
- package/dist/client/control-messages.js +90 -70
- package/dist/client/control-messages.js.map +1 -1
- package/dist/client/delivery.js +2 -1
- package/dist/client/delivery.js.map +1 -1
- package/dist/client/group-state.js +2 -3
- package/dist/client/group-state.js.map +1 -1
- package/dist/client/lifecycle.js +0 -2
- package/dist/client/lifecycle.js.map +1 -1
- package/dist/client/rpc-pipeline.js +8 -0
- package/dist/client/rpc-pipeline.js.map +1 -1
- package/dist/client/v2-e2ee.js +15 -11
- package/dist/client/v2-e2ee.js.map +1 -1
- package/dist/client.d.ts +2 -2
- package/dist/client.js +101 -51
- package/dist/client.js.map +1 -1
- package/dist/config.js +23 -18
- package/dist/config.js.map +1 -1
- package/dist/discovery.js +2 -1
- package/dist/discovery.js.map +1 -1
- package/dist/facades.d.ts +20 -0
- package/dist/facades.js +9 -0
- package/dist/facades.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/aid-db.js +14 -2
- package/dist/keystore/aid-db.js.map +1 -1
- package/dist/keystore/index.d.ts +3 -0
- package/dist/keystore/index.js +61 -1
- package/dist/keystore/index.js.map +1 -1
- package/dist/keystore/local-identity-store.js +112 -76
- package/dist/keystore/local-identity-store.js.map +1 -1
- package/dist/keystore/local-token-store.js +15 -26
- package/dist/keystore/local-token-store.js.map +1 -1
- package/dist/ownership-v21.d.ts +2 -1
- package/dist/ownership-v21.js +17 -3
- package/dist/ownership-v21.js.map +1 -1
- package/dist/ownership-workflow.js +13 -8
- package/dist/ownership-workflow.js.map +1 -1
- package/dist/register-flow.js +3 -2
- package/dist/register-flow.js.map +1 -1
- package/dist/risk-control.js +2 -2
- package/dist/risk-control.js.map +1 -1
- package/dist/secret-store/file-store.js +68 -56
- package/dist/secret-store/file-store.js.map +1 -1
- package/dist/semantic-facade.js +4 -2
- package/dist/semantic-facade.js.map +1 -1
- package/dist/semantic-protocol.d.ts +2 -12
- package/dist/semantic-protocol.js +33 -48
- package/dist/semantic-protocol.js.map +1 -1
- package/dist/storage/lowlevel.d.ts +4 -0
- package/dist/storage/lowlevel.js +58 -1
- package/dist/storage/lowlevel.js.map +1 -1
- package/dist/storage/vfs.d.ts +4 -0
- package/dist/storage/vfs.js +57 -12
- package/dist/storage/vfs.js.map +1 -1
- package/dist/tools/cross-sdk-agent.d.ts +1 -1
- package/dist/tools/cross-sdk-agent.js +26 -35
- package/dist/tools/cross-sdk-agent.js.map +1 -1
- package/dist/transport.js +1 -1
- package/dist/transport.js.map +1 -1
- package/dist/validators.js +9 -8
- package/dist/validators.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# AUN SDK 0.5.30 开发与移植指南
|
|
2
|
+
|
|
3
|
+
面向四端 SDK 维护者和其它语言实现者,定义当前 0.5.30 工作区契约。应用用法见[应用集成指南](0.5.30-SDK应用集成指南.md),详细实现差异和已有验证范围见 [parity 0.5.30](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布)。0.5.29 共识、resolve 和普通上传规则继续作为基线,见[0.5.29 移植指南](0.5.29-SDK开发与移植指南.md)。
|
|
4
|
+
|
|
5
|
+
## 1. 跨端契约
|
|
6
|
+
|
|
7
|
+
| 范围 | 必须保持的行为 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| 控制流恢复 | 连接后恢复一次;后续由 push 触发;只拉取有 gap 的群流,不运行周期控制恢复定时器 |
|
|
10
|
+
| 前台 Pull | 应用主动调用不受后台恢复调度门控 |
|
|
11
|
+
| observer 转发 | 外发副本剥离同一组本地证据和诊断字段,不修改接收对象 |
|
|
12
|
+
| 本地 Ownership | owner/新 owner 可为 human 或 agent;subaid 只能为 agent;释放仍走 `releaseSubaid` |
|
|
13
|
+
| Storage | `expected_version` 是客户端写前预检,不保证服务端原子 CAS |
|
|
14
|
+
| 内部 RPC | 四端公开 RPC 管线拒绝应用调用 `gateway.risk_status` |
|
|
15
|
+
|
|
16
|
+
## 2. 按需控制流恢复
|
|
17
|
+
|
|
18
|
+
Python 在连接就绪后调用 `ControlMessageCoordinator.recover_once()`;TS、JS、Go 在各自连接及 push 路径触发恢复。初次检查待处理 peer 与 `group.list_my`,运行期 push 只唤起对应目标和控制消息流。控制恢复定时器已移除,不代表 SDK 中其它心跳、凭证或 token 定时任务一并移除。
|
|
19
|
+
|
|
20
|
+
对每个群,读取 `streams[message_class][persistent|volatile].needs_pull`:只有值为 `true` 才调度该流。兼容旧服务时,整个 `streams` map 缺失则回退拉取;map 存在但缺少类别或流状态则跳过该流。待确认 ACK 依据本地持久状态单独恢复。应用主动 Pull 不经过该后台调度判断。
|
|
21
|
+
|
|
22
|
+
| SDK | 主要落点 |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| Python | `python/src/aun_core/_client/lifecycle.py`、`control_messages.py` |
|
|
25
|
+
| TypeScript | `ts/src/client/control-messages.ts` 及 Client 连接/Push 接线 |
|
|
26
|
+
| JavaScript | `js/src/client/control-messages.ts` 及 Client 连接/Push 接线 |
|
|
27
|
+
| Go | `go/control_messages.go` 及 Client 连接/Push 接线 |
|
|
28
|
+
|
|
29
|
+
服务端 `group.list_my` 应返回各消息类别下 persistent 与 volatile 流的最新状态,使 SDK 能判断 `needs_pull`。缺少状态与 `needs_pull: false` 不能混为一谈。
|
|
30
|
+
|
|
31
|
+
## 3. observer.forward 外发字段
|
|
32
|
+
|
|
33
|
+
仅在 `message.send`/`group.send` 的发送管线中,对 `type: 'observer.forward'` 的 payload 副本执行净化。删除 `original` 下列字段:
|
|
34
|
+
|
|
35
|
+
| 字段 | 内容类别 |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| `_semantic_evidence` | 解密后保留的完整语义证据 |
|
|
38
|
+
| `_agent_md` | 本地名片快照 |
|
|
39
|
+
| `source` | 本地投递来源 |
|
|
40
|
+
| `device_id`、`slot_id_full` | 本地设备/连接标识 |
|
|
41
|
+
| `proximity`、`same_device`、`same_network`、`same_egress_ip` | 本地关系与网络诊断信息 |
|
|
42
|
+
|
|
43
|
+
保留业务 payload 和 `original` 的其它字段;不能原地修改应用持有的接收对象。四端使用相同字段清单。
|
|
44
|
+
|
|
45
|
+
## 4. 本地 Ownership 与 YAML 更新
|
|
46
|
+
|
|
47
|
+
`bindLocalSubaid(subClient)` 和 `transferLocalSubaid(subClient, newOwnerClient)` 允许 owner/新 owner 的 AID 类型为 human 或 agent;subaid 必须为 agent。参与 AID 必须互异并由对应 client 提供本地私钥。其它普通 Ownership API 的主体限制不能套用到这两个 local API。释放不增加新入口,继续使用 `releaseSubaid(subAid)`。
|
|
48
|
+
|
|
49
|
+
TS/JS 更新 Ownership frontmatter 时以 YAML 库重序列化,并设置 `{ lineWidth: 0, blockQuote: 'literal' }`,关闭宽度折行及 folded block 样式;随后校验完整 agent.md。目标是保留 schema 中已有字段信息,不承诺字节级原格式。Python/Go 不使用该 TS/JS serializer 路径。
|
|
50
|
+
|
|
51
|
+
## 5. Storage expected_version 预检
|
|
52
|
+
|
|
53
|
+
写操作带 `expected_version` 且未启用 `force` 时,SDK 在写 RPC 前通过 `storage.head_object` 或 `storage.fs.lstat` 读取权威版本;对象不存在按版本 `0` 处理,不匹配时在发送写 RPC 前返回 `ECONFLICT`。缺少 `expected_version` 或显式 `force` 时跳过该预检。相关实现覆盖支持版本参数的对象写操作与文件 rename;目录等非文件 rename 不按文件版本预检。
|
|
54
|
+
|
|
55
|
+
此检查保留 SDK 原有的版本冲突语义,但服务端兼容并发写入并返回写后版本,读到版本与实际提交之间存在竞态窗口,不能称为原子 CAS,也不能声称 SDK 已验证写后版本。应用应读取并保存成功响应的 `version`;Python、TS、JS VFS 会将响应版本作为后续写入的已知版本,Go low-level 保持原始响应边界。
|
|
56
|
+
|
|
57
|
+
## 6. 内部 RPC 与跨端差异
|
|
58
|
+
|
|
59
|
+
四端公开 RPC 调用入口均把 `gateway.risk_status` 标记为内部方法并拒绝应用直接调用。风险 push 的接收、验签、状态处理和 ACK 是独立路径,不因限制主动 RPC 而删除。
|
|
60
|
+
|
|
61
|
+
| 维度 | Python | Go | TypeScript | Browser JavaScript |
|
|
62
|
+
| --- | --- | --- | --- | --- |
|
|
63
|
+
| 版本值持久层 | 文件 | 文件 | 文件 | IndexedDB |
|
|
64
|
+
| 首次控制恢复 | 生命周期连接就绪后 `recover_once()` | Client 连接/Push 接线 | Client 连接/Push 接线 | Client 连接/Push 接线 |
|
|
65
|
+
| Ownership YAML 更新 | 不走本版 TS/JS emitter | 不走本版 TS/JS emitter | `lineWidth: 0` 与 literal block | `lineWidth: 0` 与 literal block |
|
|
66
|
+
| Storage VFS 版本 | 记录返回版本 | low-level 返回原始结果 | 记录返回版本 | 记录返回版本 |
|
|
67
|
+
|
|
68
|
+
版本、源码文件、服务端配套和测试边界见 [Python parity 0.5.30](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布)。当前只有定向测试结果;Python Ownership/控制消息/Storage 完整单测、四端全量测试、live E2E 和线上服务验收均未覆盖,不应表述为全量通过。
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
# 组织服务 RPC 手册
|
|
2
|
-
|
|
3
|
-
本文按 Org Service 当前服务端 dispatcher 列出 RPC。组织业务方法经 Gateway service-plane 路由;普通调用使用 `client.org` facade 或 `client.call(method, params)`。
|
|
4
|
-
|
|
5
|
-
## 方法索引
|
|
6
|
-
|
|
7
|
-
| 方法组 | 方法 |
|
|
8
|
-
|------|------|
|
|
9
|
-
| 诊断 | `org.health`、`org.status` |
|
|
10
|
-
| 生命周期 | `org.lifecycle.create/get/list/update/suspend/resume/dissolve/transfer/transferAccept` |
|
|
11
|
-
| 成员关系 | `org.member.join/approveJoin/rejectJoin/invite/inviteAccept/inviteReject/renewCredential/list/get/leave/kick/offboard/freeze/unfreeze/ban/unban` |
|
|
12
|
-
| 凭证查询 | `org.credential.getStatus`、`org.credential.revocationList` |
|
|
13
|
-
| 审计与授权 | `org.audit.query`、`org.authz.check` |
|
|
14
|
-
| 内部接口 | `org.member.add`、`org.membership.reserve/get/commit/release` |
|
|
15
|
-
| 保留但未实现 | `org.resource.create`、`org.task.create`、`org.host.add`、`org.workflow.create` |
|
|
16
|
-
|
|
17
|
-
## 通用请求约定
|
|
18
|
-
|
|
19
|
-
除 `org.health`、`org.status` 和 Name Service 受信内部读取 `org.lifecycle.get` 外,Org dispatcher 会验证完整方法名对应的 `client_signature`。业务请求由 `org.prepareRequest` / `prepare_request` / `PrepareRequest` 准备:加入与组织匹配的 `aad.org_id`,并按具体方法生成 `request_binding`、nonce 和外层签名。认证主体由会话确定,不能由请求参数替代。
|
|
20
|
-
|
|
21
|
-
公开组织的 `org.lifecycle.get/list` 按可见性返回公开字段;显式请求受保护字段时仍需对应成员授权。`org.member.list/get`、`org.credential.getStatus` 和 `org.credential.revocationList` 是受保护业务读取,需当前成员 binding、CAP、AAD、request binding 和签名。读取方法不能因无副作用而跳过授权。
|
|
22
|
-
|
|
23
|
-
下面表格中的业务字段不含连接级认证字段及请求准备字段。成功结果按 JSON-RPC `result` 返回;结构化业务错误码位于 `error.data.error_code`。
|
|
24
|
-
|
|
25
|
-
## 诊断方法
|
|
26
|
-
|
|
27
|
-
| 方法 | 参数 | 结果 |
|
|
28
|
-
|------|------|------|
|
|
29
|
-
| `org.health` | 无 | `status`、实现信息、服务 AID、数据库和签名身份可用性 |
|
|
30
|
-
| `org.status` | 无 | 模块状态、服务 AID、数据库连接、运行时间和构建信息 |
|
|
31
|
-
|
|
32
|
-
诊断结果只反映服务状态,不代表组织成员或凭证授权有效。
|
|
33
|
-
|
|
34
|
-
## 组织生命周期
|
|
35
|
-
|
|
36
|
-
| 方法 | 主要业务参数 | 成功结果 |
|
|
37
|
-
|------|------|------|
|
|
38
|
-
| `org.lifecycle.create` | `org_id`、`name`、`exttype`、`join_mode`、`visibility`、`owner_aid`、初始 `membership_binding`、`credential_template`、`registration_authorization` | `organization`、初始 binding、凭证 CID、登记回执及可选 `operation_id` |
|
|
39
|
-
| `org.lifecycle.get` | `org_id`、可选 `fields[]` | 可见的 `organization` 和 `version` |
|
|
40
|
-
| `org.lifecycle.list` | 可选 `status`、`page`、`size`、`cursor` | `items[]`、分页信息和 `next_cursor` |
|
|
41
|
-
| `org.lifecycle.update` | `org_id`、`patch`、`expected_version` | 更新后的组织和新版本 |
|
|
42
|
-
| `org.lifecycle.suspend` / `resume` | `org_id`、`expected_version`;suspend 可带 `reason` | 更新后的组织和新版本 |
|
|
43
|
-
| `org.lifecycle.dissolve` | `org_id`、可选 `force`、`reason` | `operation_id` 和 `dissolving` / `dissolved` 状态 |
|
|
44
|
-
| `org.lifecycle.transfer` | `org_id`、`target_member_aid`、`expires_at` | `transfer_id`、`proposal_hash` 和签名提案 |
|
|
45
|
-
| `org.lifecycle.transferAccept` | `org_id`、`transfer_id`、`proposal_hash`、`target_signature`、`public_key`、阶段材料;`stage=rekey` 或 `finalize` | rekey 返回 `pending_finalization` 和新证书;finalize 返回组织、双方新 binding/CID 和登记回执 |
|
|
46
|
-
|
|
47
|
-
写操作按 `expected_version` 执行版本检查,并使用稳定 `request_id` 与 nonce。组织创建和转让涉及多个持久阶段;断线后应按原请求材料恢复,不要重新生成组织身份或密钥。详见[凭证与组织服务应用集成指南](凭证与组织服务SDK应用集成指南.md)。
|
|
48
|
-
|
|
49
|
-
## 成员关系
|
|
50
|
-
|
|
51
|
-
0.5.22 配套服务修复组织创建补偿与转让恢复:创建补偿遇到 `CREDENTIAL_IDEMPOTENCY_KEY_REUSE` 时保存冲突并停止自动补偿;转让开始换钥前复核当前证书/公钥代际,以规范 DER 公钥的 Base64 调用 CA,并将新旧 owner 的成员替换、完整成员包定向通知一起持久化。通知失败保留待办并按组织轮转;应用保留原任务、原请求及原密钥,不用更换 request ID 消除不确定结果。完整恢复要求见 [应用指南](凭证与组织服务SDK应用集成指南.md#7-所有权转让与实体材料)。
|
|
52
|
-
|
|
53
|
-
| 方法 | 主要业务参数 | 作用与结果 |
|
|
54
|
-
|------|------|------|
|
|
55
|
-
| `org.member.join` | `org_id`、`member_aid`、成员类型/类别、角色、完整条款、双签前 binding、成员签名 | 申请加入;返回待审批请求,不直接建立 active 成员 |
|
|
56
|
-
| `org.member.approveJoin` | `org_id`、`join_request_id`、已签 binding、`credential_template`、`registration_authorization`、审批材料 | 审批并登记成员 CAP;验证回执后完成成员关系 |
|
|
57
|
-
| `org.member.rejectJoin` | `org_id`、`join_request_id`、拒绝原因 | 拒绝待审批申请 |
|
|
58
|
-
| `org.member.invite` | `org_id`、`targets[]`、成员角色/属性、条款、逐目标 `membership_bindings` | 创建定向邀请,返回 `invites[]` |
|
|
59
|
-
| `org.member.inviteAccept` | `org_id`、`invite_id`、目标成员、双签 binding、成员签名、CAP 模板和登记授权 | 接受目标邀请并完成成员登记 |
|
|
60
|
-
| `org.member.inviteReject` | `org_id`、`invite_id`、拒绝原因 | 拒绝邀请 |
|
|
61
|
-
| `org.member.renewCredential` | `org_id`、成员、旧 CID、`expected_version`、新 binding/CAP 和登记授权 | 在原关系内换发 CAP;返回新旧 CID、binding、版本和登记回执 |
|
|
62
|
-
| `org.member.list` | `org_id`、可选类型/状态/角色/分页过滤 | 返回授权可见的 `items[]` 和分页信息 |
|
|
63
|
-
| `org.member.get` | `org_id`、`member_aid`、可选 `fields[]` | 返回成员、binding 摘要、凭证状态及签名 `membership_status` |
|
|
64
|
-
| `org.member.leave` / `kick` | `org_id`、成员、原因、`expected_version`;可选 `force` | 启动离职或移出收尾,返回操作 ID 和成员状态 |
|
|
65
|
-
| `org.member.offboard` | `org_id`、`member_aid`、`action=confirm/cancel`、可选 `expected_version` | 确认结束或取消收尾;返回成员状态、吊销数量和可选操作 ID |
|
|
66
|
-
| `org.member.freeze` / `unfreeze` | `org_id`、`member_aid`、版本及可选原因 | 冻结或恢复成员状态 |
|
|
67
|
-
| `org.member.ban` / `unban` | `org_id`、`member_aid`、版本、原因;ban 可带正整数秒 `duration` | 封禁或解除封禁;返回状态及可选 `banned_until` |
|
|
68
|
-
|
|
69
|
-
首次 `join` / `inviteAccept` 由目标成员私钥签名;代表操作还需专用 admission representation proof。成员 CAP 登记成功不等于入组完成,只有 Org Service 验证回执并提交成员关系后状态才是 `active`。成员状态优先于角色和 CAP:`banned`、`ended` 拒绝授权,`frozen` 拒绝普通写操作。
|
|
70
|
-
|
|
71
|
-
## 凭证查询、审计与授权
|
|
72
|
-
|
|
73
|
-
| 方法 | 主要业务参数 | 成功结果 |
|
|
74
|
-
|------|------|------|
|
|
75
|
-
| `org.credential.getStatus` | `org_id`、`credential_cid` | 组织范围内的签名状态证明,含 Credential 原始 proof |
|
|
76
|
-
| `org.credential.revocationList` | `org_id`、可选 `since_event_seq` / `cursor` / `limit` | 签名事件增量、游标和 Credential 原始 proof |
|
|
77
|
-
| `org.audit.query` | 组织、actor/target、事件类型/前缀、时间窗、分页和字段过滤 | `aun-org-audit-snapshot/1` 签名快照 |
|
|
78
|
-
| `org.authz.check` | 组织目标、资源/动作及相应成员授权材料 | 授权判定结果;状态未知或无法验证时拒绝放行 |
|
|
79
|
-
|
|
80
|
-
凭证查询由 Org Service 封装 Credential Service 的权威状态,不复制凭证状态。`org.audit.query` 按当前成员权限或有效审计 CAP 限定范围;解散组织的历史查询需独立归档 CAP。
|
|
81
|
-
|
|
82
|
-
## 内部和未实现方法
|
|
83
|
-
|
|
84
|
-
`org.member.add` 只允许 Org Service 内部最终化成员关系;普通客户端调用会返回 `ROLE_ACCESS_DENIED`。`org.membership.reserve/get/commit/release` 用于跨域成员名额占位和提交,由服务身份调用,不是应用公共接口。
|
|
85
|
-
|
|
86
|
-
dispatcher 保留四个尚未实现的方法:`org.resource.create`、`org.task.create`、`org.host.add`、`org.workflow.create`。调用时返回 `NOT_IMPLEMENTED`;同一组下未注册的其它方法返回 JSON-RPC `Method not found`。SDK facade/helper 存在不代表对应 RPC 已实现。
|
|
87
|
-
|
|
88
|
-
## 错误处理
|
|
89
|
-
|
|
90
|
-
Org 业务错误使用 `error.data.error_code` 和 `retryable` 标志。常见代码包括 `ORG_NOT_FOUND`、`ORG_STATUS_UNKNOWN`、`VERSION_CONFLICT`、`IDEMPOTENCY_KEY_REUSE`、`ROLE_ACCESS_DENIED`、`MEMBERSHIP_STATE_INVALID`、`CREDENTIAL_STATUS_UNKNOWN` 和 `NOT_IMPLEMENTED`。只有明确可重试的状态/服务故障,或同方法、同 request ID、同参数摘要的幂等请求才可重试;权限、签名、状态和摘要冲突不能盲目重试。
|
|
1
|
+
# 组织服务 RPC 手册
|
|
2
|
+
|
|
3
|
+
本文按 Org Service 当前服务端 dispatcher 列出 RPC。组织业务方法经 Gateway service-plane 路由;普通调用使用 `client.org` facade 或 `client.call(method, params)`。
|
|
4
|
+
|
|
5
|
+
## 方法索引
|
|
6
|
+
|
|
7
|
+
| 方法组 | 方法 |
|
|
8
|
+
|------|------|
|
|
9
|
+
| 诊断 | `org.health`、`org.status` |
|
|
10
|
+
| 生命周期 | `org.lifecycle.create/get/list/update/suspend/resume/dissolve/transfer/transferAccept` |
|
|
11
|
+
| 成员关系 | `org.member.join/approveJoin/rejectJoin/invite/inviteAccept/inviteReject/renewCredential/list/get/leave/kick/offboard/freeze/unfreeze/ban/unban` |
|
|
12
|
+
| 凭证查询 | `org.credential.getStatus`、`org.credential.revocationList` |
|
|
13
|
+
| 审计与授权 | `org.audit.query`、`org.authz.check` |
|
|
14
|
+
| 内部接口 | `org.member.add`、`org.membership.reserve/get/commit/release` |
|
|
15
|
+
| 保留但未实现 | `org.resource.create`、`org.task.create`、`org.host.add`、`org.workflow.create` |
|
|
16
|
+
|
|
17
|
+
## 通用请求约定
|
|
18
|
+
|
|
19
|
+
除 `org.health`、`org.status` 和 Name Service 受信内部读取 `org.lifecycle.get` 外,Org dispatcher 会验证完整方法名对应的 `client_signature`。业务请求由 `org.prepareRequest` / `prepare_request` / `PrepareRequest` 准备:加入与组织匹配的 `aad.org_id`,并按具体方法生成 `request_binding`、nonce 和外层签名。认证主体由会话确定,不能由请求参数替代。
|
|
20
|
+
|
|
21
|
+
公开组织的 `org.lifecycle.get/list` 按可见性返回公开字段;显式请求受保护字段时仍需对应成员授权。`org.member.list/get`、`org.credential.getStatus` 和 `org.credential.revocationList` 是受保护业务读取,需当前成员 binding、CAP、AAD、request binding 和签名。读取方法不能因无副作用而跳过授权。
|
|
22
|
+
|
|
23
|
+
下面表格中的业务字段不含连接级认证字段及请求准备字段。成功结果按 JSON-RPC `result` 返回;结构化业务错误码位于 `error.data.error_code`。
|
|
24
|
+
|
|
25
|
+
## 诊断方法
|
|
26
|
+
|
|
27
|
+
| 方法 | 参数 | 结果 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `org.health` | 无 | `status`、实现信息、服务 AID、数据库和签名身份可用性 |
|
|
30
|
+
| `org.status` | 无 | 模块状态、服务 AID、数据库连接、运行时间和构建信息 |
|
|
31
|
+
|
|
32
|
+
诊断结果只反映服务状态,不代表组织成员或凭证授权有效。
|
|
33
|
+
|
|
34
|
+
## 组织生命周期
|
|
35
|
+
|
|
36
|
+
| 方法 | 主要业务参数 | 成功结果 |
|
|
37
|
+
|------|------|------|
|
|
38
|
+
| `org.lifecycle.create` | `org_id`、`name`、`exttype`、`join_mode`、`visibility`、`owner_aid`、初始 `membership_binding`、`credential_template`、`registration_authorization` | `organization`、初始 binding、凭证 CID、登记回执及可选 `operation_id` |
|
|
39
|
+
| `org.lifecycle.get` | `org_id`、可选 `fields[]` | 可见的 `organization` 和 `version` |
|
|
40
|
+
| `org.lifecycle.list` | 可选 `status`、`page`、`size`、`cursor` | `items[]`、分页信息和 `next_cursor` |
|
|
41
|
+
| `org.lifecycle.update` | `org_id`、`patch`、`expected_version` | 更新后的组织和新版本 |
|
|
42
|
+
| `org.lifecycle.suspend` / `resume` | `org_id`、`expected_version`;suspend 可带 `reason` | 更新后的组织和新版本 |
|
|
43
|
+
| `org.lifecycle.dissolve` | `org_id`、可选 `force`、`reason` | `operation_id` 和 `dissolving` / `dissolved` 状态 |
|
|
44
|
+
| `org.lifecycle.transfer` | `org_id`、`target_member_aid`、`expires_at` | `transfer_id`、`proposal_hash` 和签名提案 |
|
|
45
|
+
| `org.lifecycle.transferAccept` | `org_id`、`transfer_id`、`proposal_hash`、`target_signature`、`public_key`、阶段材料;`stage=rekey` 或 `finalize` | rekey 返回 `pending_finalization` 和新证书;finalize 返回组织、双方新 binding/CID 和登记回执 |
|
|
46
|
+
|
|
47
|
+
写操作按 `expected_version` 执行版本检查,并使用稳定 `request_id` 与 nonce。组织创建和转让涉及多个持久阶段;断线后应按原请求材料恢复,不要重新生成组织身份或密钥。详见[凭证与组织服务应用集成指南](凭证与组织服务SDK应用集成指南.md)。
|
|
48
|
+
|
|
49
|
+
## 成员关系
|
|
50
|
+
|
|
51
|
+
0.5.22 配套服务修复组织创建补偿与转让恢复:创建补偿遇到 `CREDENTIAL_IDEMPOTENCY_KEY_REUSE` 时保存冲突并停止自动补偿;转让开始换钥前复核当前证书/公钥代际,以规范 DER 公钥的 Base64 调用 CA,并将新旧 owner 的成员替换、完整成员包定向通知一起持久化。通知失败保留待办并按组织轮转;应用保留原任务、原请求及原密钥,不用更换 request ID 消除不确定结果。完整恢复要求见 [应用指南](凭证与组织服务SDK应用集成指南.md#7-所有权转让与实体材料)。
|
|
52
|
+
|
|
53
|
+
| 方法 | 主要业务参数 | 作用与结果 |
|
|
54
|
+
|------|------|------|
|
|
55
|
+
| `org.member.join` | `org_id`、`member_aid`、成员类型/类别、角色、完整条款、双签前 binding、成员签名 | 申请加入;返回待审批请求,不直接建立 active 成员 |
|
|
56
|
+
| `org.member.approveJoin` | `org_id`、`join_request_id`、已签 binding、`credential_template`、`registration_authorization`、审批材料 | 审批并登记成员 CAP;验证回执后完成成员关系 |
|
|
57
|
+
| `org.member.rejectJoin` | `org_id`、`join_request_id`、拒绝原因 | 拒绝待审批申请 |
|
|
58
|
+
| `org.member.invite` | `org_id`、`targets[]`、成员角色/属性、条款、逐目标 `membership_bindings` | 创建定向邀请,返回 `invites[]` |
|
|
59
|
+
| `org.member.inviteAccept` | `org_id`、`invite_id`、目标成员、双签 binding、成员签名、CAP 模板和登记授权 | 接受目标邀请并完成成员登记 |
|
|
60
|
+
| `org.member.inviteReject` | `org_id`、`invite_id`、拒绝原因 | 拒绝邀请 |
|
|
61
|
+
| `org.member.renewCredential` | `org_id`、成员、旧 CID、`expected_version`、新 binding/CAP 和登记授权 | 在原关系内换发 CAP;返回新旧 CID、binding、版本和登记回执 |
|
|
62
|
+
| `org.member.list` | `org_id`、可选类型/状态/角色/分页过滤 | 返回授权可见的 `items[]` 和分页信息 |
|
|
63
|
+
| `org.member.get` | `org_id`、`member_aid`、可选 `fields[]` | 返回成员、binding 摘要、凭证状态及签名 `membership_status` |
|
|
64
|
+
| `org.member.leave` / `kick` | `org_id`、成员、原因、`expected_version`;可选 `force` | 启动离职或移出收尾,返回操作 ID 和成员状态 |
|
|
65
|
+
| `org.member.offboard` | `org_id`、`member_aid`、`action=confirm/cancel`、可选 `expected_version` | 确认结束或取消收尾;返回成员状态、吊销数量和可选操作 ID |
|
|
66
|
+
| `org.member.freeze` / `unfreeze` | `org_id`、`member_aid`、版本及可选原因 | 冻结或恢复成员状态 |
|
|
67
|
+
| `org.member.ban` / `unban` | `org_id`、`member_aid`、版本、原因;ban 可带正整数秒 `duration` | 封禁或解除封禁;返回状态及可选 `banned_until` |
|
|
68
|
+
|
|
69
|
+
首次 `join` / `inviteAccept` 由目标成员私钥签名;代表操作还需专用 admission representation proof。成员 CAP 登记成功不等于入组完成,只有 Org Service 验证回执并提交成员关系后状态才是 `active`。成员状态优先于角色和 CAP:`banned`、`ended` 拒绝授权,`frozen` 拒绝普通写操作。
|
|
70
|
+
|
|
71
|
+
## 凭证查询、审计与授权
|
|
72
|
+
|
|
73
|
+
| 方法 | 主要业务参数 | 成功结果 |
|
|
74
|
+
|------|------|------|
|
|
75
|
+
| `org.credential.getStatus` | `org_id`、`credential_cid` | 组织范围内的签名状态证明,含 Credential 原始 proof |
|
|
76
|
+
| `org.credential.revocationList` | `org_id`、可选 `since_event_seq` / `cursor` / `limit` | 签名事件增量、游标和 Credential 原始 proof |
|
|
77
|
+
| `org.audit.query` | 组织、actor/target、事件类型/前缀、时间窗、分页和字段过滤 | `aun-org-audit-snapshot/1` 签名快照 |
|
|
78
|
+
| `org.authz.check` | 组织目标、资源/动作及相应成员授权材料 | 授权判定结果;状态未知或无法验证时拒绝放行 |
|
|
79
|
+
|
|
80
|
+
凭证查询由 Org Service 封装 Credential Service 的权威状态,不复制凭证状态。`org.audit.query` 按当前成员权限或有效审计 CAP 限定范围;解散组织的历史查询需独立归档 CAP。
|
|
81
|
+
|
|
82
|
+
## 内部和未实现方法
|
|
83
|
+
|
|
84
|
+
`org.member.add` 只允许 Org Service 内部最终化成员关系;普通客户端调用会返回 `ROLE_ACCESS_DENIED`。`org.membership.reserve/get/commit/release` 用于跨域成员名额占位和提交,由服务身份调用,不是应用公共接口。
|
|
85
|
+
|
|
86
|
+
dispatcher 保留四个尚未实现的方法:`org.resource.create`、`org.task.create`、`org.host.add`、`org.workflow.create`。调用时返回 `NOT_IMPLEMENTED`;同一组下未注册的其它方法返回 JSON-RPC `Method not found`。SDK facade/helper 存在不代表对应 RPC 已实现。
|
|
87
|
+
|
|
88
|
+
## 错误处理
|
|
89
|
+
|
|
90
|
+
Org 业务错误使用 `error.data.error_code` 和 `retryable` 标志。常见代码包括 `ORG_NOT_FOUND`、`ORG_STATUS_UNKNOWN`、`VERSION_CONFLICT`、`IDEMPOTENCY_KEY_REUSE`、`ROLE_ACCESS_DENIED`、`MEMBERSHIP_STATE_INVALID`、`CREDENTIAL_STATUS_UNKNOWN` 和 `NOT_IMPLEMENTED`。只有明确可重试的状态/服务故障,或同方法、同 request ID、同参数摘要的幂等请求才可重试;权限、签名、状态和摘要冲突不能盲目重试。
|
|
@@ -61,6 +61,8 @@ Group 的成员 block/status、暂停群权限和两阶段群主转让,以及
|
|
|
61
61
|
| - | [0.5.22 SDK 开发与移植指南](0.5.22-SDK开发与移植指南.md) | 同步、Stage/CAS、撤销续期、缓存、服务依赖及 Rust 清单 |
|
|
62
62
|
| - | [0.5.24 SDK 应用集成指南](0.5.24-SDK应用集成指南.md) | 当前消息接线、无任务 Ownership、两个 local 编排、缓存和凭证组织 |
|
|
63
63
|
| - | [0.5.24 SDK 开发与移植指南](0.5.24-SDK开发与移植指南.md) | 消息提交、NS 事实和远端 CAS、local 身份隔离、缓存新鲜度与语言差异 |
|
|
64
|
+
| - | [0.5.30 应用指南](0.5.30-SDK应用集成指南.md)、[开发与移植指南](0.5.30-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) | 按需控制流恢复、observer.forward 本地字段剥离、本地 human owner、Storage 版本预检及四端差异 |
|
|
65
|
+
| - | [0.5.29 应用指南](0.5.29-SDK应用集成指南.md)、[开发与移植指南](0.5.29-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) | 0.5.29 基线:共识输入输出、无 TTL 的 ETag 缓存、resolve、普通上传锁与恢复、NS 配套及四端移植 |
|
|
64
66
|
| - | [0.5.28 应用指南](0.5.28-SDK应用集成指南.md)、[开发与移植指南](0.5.28-SDK开发与移植指南.md);[0.5.27 应用指南](0.5.27-SDK应用集成指南.md)、[开发与移植指南](0.5.27-SDK开发与移植指南.md) | 0.5.28 agent.md 上传/下载校验、共识 fresh、分类控制消息、Owner 通知与风控;四端实现和验证范围见 [parity](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布) |
|
|
65
67
|
| - | [agent.md 与 group.index 的 ETag 观察与同步机制](agent.md与group.index的ETag观察与同步机制.md) | 服务端 ETag 来源、四 SDK 被动观察、agent.md 下载触发、group.index 显式 pull 与 CAS |
|
|
66
68
|
| - | [CHANGELOG-0.5.6](CHANGELOG-0.5.6.md) | **0.5.6 版本更新日志**:首次签名者回源、下载提交前验签、消息窗口、显式 change-seed 与语言能力边界 |
|
|
@@ -84,7 +86,7 @@ Group 的成员 block/status、暂停群权限和两阶段群主转让,以及
|
|
|
84
86
|
| - | [组织服务 RPC 手册](09-组织服务RPC手册.md) | Org Service 生命周期/成员 RPC、内部接口和未实现方法 |
|
|
85
87
|
| 05 | [E2EE加密通信](05-E2EE加密通信.md) | E2EE V2、ProtectedHeaders、need_render、agent.md 版本提示、旧 SPK 保留 |
|
|
86
88
|
| - | [ProtectedHeaders用法专题](ProtectedHeaders用法专题.md) | `protected_headers` 四端 API、实例级/单次调用、E2EE V2 HMAC 完整性和接收信任边界 |
|
|
87
|
-
| 06 | [API手册](06-API手册.md) | AIDStore / resolve opts 与输入输出 / frontmatter 类型 /
|
|
89
|
+
| 06 | [API手册](06-API手册.md) | AIDStore / resolve opts 与输入输出 / frontmatter 类型 / Agent.md 校验签名 / AID / AUNClient 生命周期并发 / 四 SDK access token getter / 群组高层身份编排 / History 与已读门面 / 已读变更及本地补偿完成 / 消息来源与 Pull 同步生命周期 / 事件 / RPC;当前 Ownership 与内部 RPC 增量见 [0.5.30 parity](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) |
|
|
88
90
|
| 07 | [错误处理](07-错误处理.md) | Result、Python `ErrorInfo.cause`、异常、错误码、重试 |
|
|
89
91
|
| 08 | [最佳实践](08-最佳实践.md) | 幂等、消息同步/History、AUNClient 级 Pull Gate(同 namespace 单飞、客户端最多 4 个并行)、测试数据 |
|
|
90
92
|
| - | [Storage RPC 手册](09-storage-rpc-manual.md) | Storage RPC、实际字节 MIME、三阶段 Content-Type、OSS 403、HTTP 下载与凭据边界、默认读缓存持久层、条件读取与 noCache |
|
|
@@ -103,13 +105,15 @@ Group 的成员 block/status、暂停群权限和两阶段群主转让,以及
|
|
|
103
105
|
| 实现、移植或审查 0.5.22 SDK,查看 Stage/CAS、配套服务修复、读缓存及 Rust 验收清单 | [0.5.22 SDK 开发与移植指南](0.5.22-SDK开发与移植指南.md) |
|
|
104
106
|
| 接入或升级 0.5.24,查看当前消息、无任务 Ownership、两个 local 场景、缓存及凭证组织 | [0.5.24 SDK 应用集成指南](0.5.24-SDK应用集成指南.md) |
|
|
105
107
|
| 实现、移植或审查 0.5.24,核对提交/ACK、NS 事实、远端 CAS、local 身份隔离和缓存新鲜度 | [0.5.24 SDK 开发与移植指南](0.5.24-SDK开发与移植指南.md) |
|
|
106
|
-
|
|
|
108
|
+
| 接入或移植 0.5.30,核查后台恢复、本地 Ownership 与 Storage 版本处理 | [应用指南](0.5.30-SDK应用集成指南.md):行为 L5-14、消息恢复 L16-29、Ownership L31-43、Storage L45-47、转发与风控 L49-53、升级 L55-61;[开发与移植指南](0.5.30-SDK开发与移植指南.md):契约 L5-14、控制恢复 L16-29、转发 L31-43、Ownership/YAML L45-49、Storage L51-55、差异 L57-68;[parity](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) L15-58 |
|
|
109
|
+
| 接入或移植 0.5.29 基线,核查共识、resolve、上传锁与恢复 | [应用指南](0.5.29-SDK应用集成指南.md):接入 L5-54、共识 L55-80、resolve L81-104、上传管理 L105-145、缓存/业务 L146-167、升级 L168-180;[开发与移植指南](0.5.29-SDK开发与移植指南.md):契约 L5-63、缓存/resolve L64-94、上传恢复 L95-123、四端/继承 L124-151、核查 L152-164;[parity](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) L60-132 |
|
|
110
|
+
| 回看 0.5.28 的 schema、共识、控制消息、Owner 通知与风控,以及 0.5.27 的历史增量 | [0.5.28 应用指南](0.5.28-SDK应用集成指南.md):接入与消息 §1—§3 L5-95、凭证/组织 §4—§5 L96-137、Storage/Ownership §6—§7 L138-186、通知 §8 L187-201、风控/升级 §9—§10 L202-228;[开发与移植指南](0.5.28-SDK开发与移植指南.md):校验 §1 L7-36、共识 §2 L37-62、wire §3 L63-108、outbox §4 L109-121、风控 §5 L122-134、移植 §6 L135-146。 [历史 parity](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布) L88-172;公共共识流程以 0.5.29 为准 |
|
|
107
111
|
| 0.5.24 应用按主题读:身份、消息、resolve、Ownership、文件缓存、凭证组织和升级 | `0.5.24-SDK应用集成指南.md` §2 L21-75、§3 L76-132、§4 L133-168、§5 L169-298、§6 L299-321、§7 L322-366、§9 L386-401;local bind L227-245、local transfer L246-267 |
|
|
108
112
|
| 0.5.24 移植按主题读:消息提交、名片、观察、Ownership、缓存、PKI、凭证组织及语言差异 | `0.5.24-SDK开发与移植指南.md` §3 L32-84、§4 L85-92、§5 L93-122、§6 L123-217、§7 L218-245、§8 L246-261、§9 L262-297、§10 L298-325;Rust §11 L326-339、验收 §12 L340-354 |
|
|
109
113
|
| 首次使用 SDK | [01-快速开始](01-快速开始.md) |
|
|
110
114
|
| 理解新构造入口 | [01-快速开始](01-快速开始.md)、[06-API手册](06-API手册.md) |
|
|
111
115
|
| 注册或加载 AID | [04-连接与认证](04-连接与认证.md) |
|
|
112
|
-
| 查询 resolve opts、frontmatter 字段及类型、按需 ownership
|
|
116
|
+
| 查询 resolve opts、frontmatter 字段及类型、按需 ownership 共识 | [0.5.29 resolve](0.5.29-SDK应用集成指南.md#4-resolve-与-frontmatter) L81-104;完整基础接口见 [API 手册](06-API手册.md#resolve-输入与输出),实现增量见 [parity](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) L19-47 |
|
|
113
117
|
| 查旧 SDK owner 注册、绑定、转移、查询及解绑的隔离兼容,或 legacy proof/escrow/代签 | [当前协议兼容边界](../protocol/Ownership协议定义2.1.md) 开篇/§3.2、[详细设计](Ownership2.1详细设计.md) §1 兼容矩阵;历史 wire 见 [Ownership管理专题(legacy)](Ownership管理专题.md)、[legacy 集成指南](Ownership-SDK集成指南.md) |
|
|
114
118
|
| Ownership 2.1 应用:绑定/释放/转移、两个 local 编排、审批及显式重试的 TS 示例与图 | [应用集成指南](Ownership2.1-SDK应用集成指南.md) |
|
|
115
119
|
| Ownership 2.1 移植:NS 验收、条件发布、通用消息交付、本地编排和文件 CAS | [开发与移植指南](Ownership2.1-SDK开发与移植指南.md) |
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
| [0.5.22 SDK 开发与移植指南](0.5.22-SDK开发与移植指南.md) | 后台退避 · 群状态 · 两种绑定与 Stage/CAS · 消息内部消费 · 撤销同步 · 组织恢复及配套服务修复 · 默认读缓存 · Rust 清单 |
|
|
15
15
|
| [0.5.24 SDK 应用集成指南](0.5.24-SDK应用集成指南.md) | 当前身份与消息接入 · 无任务 Ownership · local 双/三身份编排 · resolve 与文件缓存 · 凭证组织 · 升级 |
|
|
16
16
|
| [0.5.24 SDK 开发与移植指南](0.5.24-SDK开发与移植指南.md) | peer/batch 提交 · NS 事实与远端 CAS · local 短连接 · 观察与 PKI 缓存 · 持久化边界 · 语言差异和验收 |
|
|
17
|
-
| [0.5.
|
|
17
|
+
| [0.5.30 SDK 应用集成指南](0.5.30-SDK应用集成指南.md)、[开发与移植指南](0.5.30-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) | 按需控制流恢复 · observer.forward 本地字段剥离 · human owner 本地 Ownership · Storage 版本预检 · 内部 RPC 边界 |
|
|
18
|
+
| [0.5.29 应用指南](0.5.29-SDK应用集成指南.md)、[开发与移植指南](0.5.29-SDK开发与移植指南.md)、[变更与跨端对齐](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布);[Python](../../python/CHANGELOG.md)、[Go](../../go/CHANGELOG.md)、[TS](../../ts/CHANGELOG.md)、[JS](../../js/CHANGELOG.md) CHANGELOG | 0.5.29 基线:共识默认 force=false、NS 单次查询、无 TTL 的 ETag 缓存、resolve、普通上传锁/恢复与四端移植 |
|
|
19
|
+
| [0.5.28 应用指南](0.5.28-SDK应用集成指南.md)、[开发与移植指南](0.5.28-SDK开发与移植指南.md);[0.5.27 应用指南](0.5.27-SDK应用集成指南.md)、[开发与移植指南](0.5.27-SDK开发与移植指南.md) | 历史 agent.md 校验、共识 fresh、分类控制消息、Owner 通知与风控;四端差异及验证边界见 [parity 0.5.28](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布),公共共识规则以 0.5.29 为准 |
|
|
18
20
|
| [CHANGELOG-0.5.6](CHANGELOG-0.5.6.md) | **0.5.6 版本更新日志**:首次签名者回源 · 下载提交前验签 · 消息窗口 · 显式 change-seed · 语言能力边界 |
|
|
19
21
|
| [01-快速开始](01-快速开始.md) | 安装 · 三主体模型 · 最小示例 · 多语言构造 |
|
|
20
22
|
| [02-WebSocket协议](02-WebSocket协议.md) | 握手流程 · 严格布尔 peer 能力声明 · JSON-RPC 消息格式 · 裸 WebSocket 示例 |
|
|
@@ -76,7 +78,9 @@
|
|
|
76
78
|
|
|
77
79
|
- 当前身份与消息接入、无任务 Ownership、两个 local 场景、名片及文件缓存、凭证组织与升级 → [应用集成指南](0.5.24-SDK应用集成指南.md)
|
|
78
80
|
- 三主体分层、提交/ACK、NS 事实和远端 CAS、local 身份隔离、缓存新鲜度、语言差异与验收 → [开发与移植指南](0.5.24-SDK开发与移植指南.md)
|
|
79
|
-
- 0.5.
|
|
81
|
+
- 0.5.30 应用行为、主动 Pull 边界、本地 Ownership、Storage 版本及内部 RPC → [应用指南](0.5.30-SDK应用集成指南.md);控制恢复、转发净化、YAML 与版本预检的四端契约 → [开发与移植指南](0.5.30-SDK开发与移植指南.md);验证范围见 [parity](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布)。
|
|
82
|
+
- 0.5.29 应用接入、共识输入输出、resolve、上传与业务服务 → [应用指南](0.5.29-SDK应用集成指南.md);缓存并发、上传恢复、NS 配套与四端落点 → [开发与移植指南](0.5.29-SDK开发与移植指南.md);已有增量及验证见 [parity 当前章节](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布)。
|
|
83
|
+
- 0.5.28 agent.md 校验、共识 fresh、分类控制消息、Owner 通知、风控和四端验证边界 → [应用指南](0.5.28-SDK应用集成指南.md)、[开发与移植指南](0.5.28-SDK开发与移植指南.md);实现差异见 [历史 parity](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布)。0.5.27 历史版本见对应旧指南与 parity。
|
|
80
84
|
|
|
81
85
|
### 身份与认证
|
|
82
86
|
|
|
@@ -176,11 +180,23 @@ TypeScript 身份与消息接线、Ownership 审批恢复、resolve、默认缓
|
|
|
176
180
|
|
|
177
181
|
定义消息 peer/batch/Gate、Ownership NS 事实和远端 CAS、Stage、local 专属 slot 与身份代际、展示及文件缓存、PKI 和 Credential 查询新鲜度、组织 checkpoint。列出四端兼容差异、Rust 核查与分层验收,不将已有专项证据等同完整发布验证。
|
|
178
182
|
|
|
183
|
+
### 0.5.30 更新日志与跨端对齐
|
|
184
|
+
|
|
185
|
+
0.5.30 [应用指南](0.5.30-SDK应用集成指南.md):行为摘要 §1 L5-14、消息恢复 §2 L16-29、本地 Ownership §3 L31-43、Storage §4 L45-47、转发与风控 §5 L49-53、升级 §6 L55-61;[开发与移植指南](0.5.30-SDK开发与移植指南.md):跨端契约 §1 L5-14、控制恢复 §2 L16-29、observer.forward §3 L31-43、Ownership/YAML §4 L45-49、Storage §5 L51-55、内部 RPC 与差异 §6 L57-68。
|
|
186
|
+
|
|
187
|
+
当前 [0.5.30 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0530--控制流按需恢复与-sdk-行为对齐未发布) L15-58:控制流恢复 L19-24、observer.forward L26-29、本地 Ownership 与 agent.md L31-35、Storage 预检 L37-41、内部 RPC/版本及验证边界 L43-58。
|
|
188
|
+
|
|
189
|
+
### 0.5.29 更新日志与跨端对齐
|
|
190
|
+
|
|
191
|
+
0.5.29 [应用指南](0.5.29-SDK应用集成指南.md):接入与消息 §1—§2 L5-54、共识 §3 L55-80、resolve §4 L81-104、上传管理 §5 L105-145、缓存/业务 §6—§7 L146-167、升级 §8 L168-180;[开发与移植指南](0.5.29-SDK开发与移植指南.md):契约 §1—§2 L5-63、缓存/resolve §3—§4 L64-94、上传恢复 §5 L95-123、四端/继承 §6—§7 L124-151、核查 §8 L152-164。
|
|
192
|
+
|
|
193
|
+
当前 [0.5.29 变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0529--共识查询缓存与普通上传未发布) L15-87:公共入口及 NS 请求 L19-39、ETag 缓存/resolve L40-47、普通上传/恢复 L48-67、NS 配套与验证 L68-87;四端 CHANGELOG 提供接口摘要。
|
|
194
|
+
|
|
179
195
|
### 0.5.28 更新日志与跨端对齐
|
|
180
196
|
|
|
181
|
-
0.5.28 [应用指南](0.5.28-SDK应用集成指南.md):身份/消息接入 §2—§3 L18-95、凭证/组织 §4—§5 L96-137、Storage/Ownership §6—§7 L138-186、Owner 通知 §8 L187-201、风控/升级 §9—§10 L202-228;[开发与移植指南](0.5.28-SDK开发与移植指南.md):上传/下载 schema §1 L7-36、非一致共识 fresh §2 L37-62、分类控制消息 §3 L63-108、Owner outbox §4 L109-121、风控 §5 L122-134、移植矩阵 §6 L135-146。 [
|
|
197
|
+
历史 0.5.28 [应用指南](0.5.28-SDK应用集成指南.md):身份/消息接入 §2—§3 L18-95、凭证/组织 §4—§5 L96-137、Storage/Ownership §6—§7 L138-186、Owner 通知 §8 L187-201、风控/升级 §9—§10 L202-228;[开发与移植指南](0.5.28-SDK开发与移植指南.md):上传/下载 schema §1 L7-36、非一致共识 fresh §2 L37-62、分类控制消息 §3 L63-108、Owner outbox §4 L109-121、风控 §5 L122-134、移植矩阵 §6 L135-146。 [历史对齐清单](../../python/CHANGES_FOR_PARITY.md#v0528--校验控制消息与风控未发布) L88-172 记录四端落点、已有测试入口及服务依赖/验收边界;公共共识流程以 0.5.29 为准。
|
|
182
198
|
|
|
183
|
-
0.5.27 [应用指南](0.5.27-SDK应用集成指南.md):身份/连接/消息迁移 §2—§3 L30-133,结构化 §4 L134-192/语义 §5 L193-349,组织与缓存 §6—§7 L350-388,升级 §8 L389-408;[开发与移植指南](0.5.27-SDK开发与移植指南.md):字节/签名 §2 L38-84,结构化 §3 L85-123/语义 §4 L124-297,组织 §5 L298-334,迁移交付 §6 L335-383,平台与回归 §7—§8 L384-410。 [变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0527--相对于-v0525-基线的变更未发布)
|
|
199
|
+
0.5.27 [应用指南](0.5.27-SDK应用集成指南.md):身份/连接/消息迁移 §2—§3 L30-133,结构化 §4 L134-192/语义 §5 L193-349,组织与缓存 §6—§7 L350-388,升级 §8 L389-408;[开发与移植指南](0.5.27-SDK开发与移植指南.md):字节/签名 §2 L38-84,结构化 §3 L85-123/语义 §4 L124-297,组织 §5 L298-334,迁移交付 §6 L335-383,平台与回归 §7—§8 L384-410。 [变更与对齐清单](../../python/CHANGES_FOR_PARITY.md#v0527--相对于-v0525-基线的变更未发布) L173-290 对照 0.5.25 源码,说明语义凭证、消息证据、状态/Usage 恢复、Gateway 迁移、时间容错、组织及 CLI;四端 CHANGELOG 提供接口级摘要,parity 列出实现落点、语言差异和已有验证范围。0.5.26 仅为 TypeScript 根证书打包修正,旧版本章节保留历史记录。
|
|
184
200
|
|
|
185
201
|
### CHANGELOG-0.5.6
|
|
186
202
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 凭证与组织服务 SDK 应用集成指南
|
|
2
2
|
|
|
3
|
-
Org `0.8`;本文对齐当前工作区四 SDK(包元数据 `0.5.
|
|
3
|
+
Org `0.8`;本文对齐当前工作区四 SDK(包元数据 `0.5.28`),不据此声明扩展已发布。§3为结构化凭证,§4为语义凭证,§5—§7为组织流程。下文使用 Node TS;字段见 [Credential RPC](09-凭证服务RPC手册.md)/[Org RPC](09-组织服务RPC手册.md),内部实现见 [移植指南](凭证与组织服务SDK开发与移植指南.md)。
|
|
4
4
|
|
|
5
5
|
| 模式 | 版本 | 授权验收 |
|
|
6
6
|
| --- | --- | --- |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 凭证与组织服务 SDK 开发与移植指南
|
|
2
2
|
|
|
3
|
-
面向 SDK 实现者,按“共同签验 → 请求绑定 → RPC → 持久状态 → 实体恢复”移植。协议为 Org `0.8`,本文对齐当前工作区四 SDK(包元数据 `0.5.
|
|
3
|
+
面向 SDK 实现者,按“共同签验 → 请求绑定 → RPC → 持久状态 → 实体恢复”移植。协议为 Org `0.8`,本文对齐当前工作区四 SDK(包元数据 `0.5.28`),不据此声明扩展已发布。§3为结构化凭证,§4为语义凭证,§5—§6为绑定与 Facade,§7为组织编排。应用调用见 [集成指南](凭证与组织服务SDK应用集成指南.md),普通凭证字段以 [详细设计](../../../extensions/services/docs/org/0.8/17-凭证与组织服务详细设计.md) 为准,不以任一语言实现代替协议。
|
|
4
4
|
|
|
5
5
|
| 模式 | 版本与能力 | 验收路径 |
|
|
6
6
|
| --- | --- | --- |
|