integrity
feishu.agent.integrity
¶
stable_hash
¶
计算任意可 JSON 化值的稳定 SHA-256 摘要(十六进制)。
先经 _canonical_json 规范化再哈希,因而与字典键顺序无关:语义相同的两个 值得到相同摘要。这是审批防篡改校验、幂等键派生与执行结果缓存键的共同基石。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
Any
|
任意可 JSON 序列化的值。 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
str
|
64 个十六进制字符的 SHA-256 摘要。 |
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/integrity.py
payload_sha256
¶
计算写操作负载的稳定 SHA-256 摘要,是 feishu.agent.integrity.stable_hash 的语义别名。
审批卡片回传时携带创建时记录的摘要;执行前重新计算并比对,二者不一致即判定负载在「展示—确认」之间 被篡改,从而拒绝执行。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
Any
|
写操作负载。 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
str
|
负载的 64 位十六进制 SHA-256 摘要。 |
示例:
源代码位于: feishu/agent/integrity.py
payload_summary
¶
payload_summary(payload: Any, *, include_hash: bool = False, max_keys: int = 50) -> dict[str, Any]
生成写操作负载的结构化摘要,用于审计与卡片预览而不泄露完整内容。
仅记录类型、键数量、前若干个键名或元素个数等结构信息;include_hash=True 时附带稳定摘要。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
Any
|
写操作负载。 |
必需 |
|
bool
|
是否附带 feishu.agent.integrity.stable_hash 摘要。默认为 |
False
|
|
int
|
字典摘要中保留的键名上限。默认为 |
50
|
返回:
| 类型 | 描述 |
|---|---|
dict[str, Any]
|
含 |
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/integrity.py
derive_approval_id
¶
derive_approval_id(*, scope: str, operation: str, idempotency_key: str, namespace: str = 'feishu') -> str
由作用域、操作名与幂等键确定性地派生审批 / 写请求 id。
相同输入恒得到相同 id,因而「同一作用域内、同一操作、同一幂等键」的重复提议天然指向同一条审批记录,
便于去重与覆盖(supersede)。namespace 由调用方(通常是产品名)提供,使不同产品的 id 空间互不重叠,
而非在 SDK 内硬编码任何产品前缀。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
交互作用域键,例如 |
必需 |
|
str
|
写操作名,例如 |
必需 |
|
str
|
必需 | |
|
str
|
调用方命名空间,用于隔离不同产品的 id 空间。默认为 |
'feishu'
|
返回:
| 类型 | 描述 |
|---|---|
str
|
确定性的 UUID5 字符串。 |
示例:
源代码位于: feishu/agent/integrity.py
derive_idempotency_key
¶
derive_idempotency_key(*, message_id: str, payload_sha256: str, namespace: str = 'feishu') -> str
由触发消息 id 与负载摘要确定性地派生幂等键。
将「哪条消息」与「何种负载」绑定为一个稳定键:同一条消息重复触发同一负载只会产生一次执行,而负载一旦
变化幂等键随之改变。namespace 同样由调用方提供以隔离产品 id 空间。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
触发该写操作的飞书消息 id。 |
必需 |
|
str
|
负载的稳定摘要,见 feishu.agent.integrity.payload_sha256。 |
必需 |
|
str
|
调用方命名空间。默认为 |
'feishu'
|
返回:
| 类型 | 描述 |
|---|---|
str
|
确定性的 UUID5 字符串。 |
示例:
| Python Console Session | |
|---|---|