```
feat(feishu): 添加飞书入站事件inbox和混合数据库协调功能 - 实现飞书入站事件持久化inbox机制,支持状态管理、租约锁定和重试退避 - 添加混合数据库基线协调工具,确保平台PostgreSQL结构安全对齐 - 增加运行组件心跳检测和readiness就绪检查机制 - 实现app_ticket事件的安全轮换和验证处理 - 添加生产环境运行编排和fail-closed安全机制 - 支持webhook快速确认和长连接独立进程处理 - 完善个人数据擦除时的待处理事件清理功能 ```
This commit is contained in:
@@ -80,7 +80,15 @@ def parse_admin_identities(
|
||||
tenant_key, separator, open_id = text.partition(":")
|
||||
tenant_key = tenant_key.strip()
|
||||
open_id = open_id.strip()
|
||||
if not separator or not tenant_key or not open_id:
|
||||
if (
|
||||
not separator
|
||||
or not tenant_key
|
||||
or not open_id
|
||||
or ":" in open_id
|
||||
or len(tenant_key) > 128
|
||||
or len(open_id) > 128
|
||||
or any(character in text for character in "\r\n")
|
||||
):
|
||||
raise ValueError(INVALID_ADMIN_IDENTITY)
|
||||
identities.add((tenant_key, open_id))
|
||||
return frozenset(identities)
|
||||
|
||||
20
app/modules/feishu_users/identifiers.py
Normal file
20
app/modules/feishu_users/identifiers.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from hashlib import sha256
|
||||
|
||||
_AUDIT_IDENTITY_DOMAIN = b"company-ai-platform:feishu-audit-identity:v1\0"
|
||||
|
||||
|
||||
def feishu_audit_identity_hash(tenant_key: str, open_id: str) -> str:
|
||||
"""Return the erasable pseudonymous subject used by pre-registration audits."""
|
||||
|
||||
tenant_bytes = tenant_key.encode("utf-8")
|
||||
open_id_bytes = open_id.encode("utf-8")
|
||||
identity = b"".join(
|
||||
(
|
||||
len(tenant_bytes).to_bytes(4, "big"),
|
||||
tenant_bytes,
|
||||
len(open_id_bytes).to_bytes(4, "big"),
|
||||
open_id_bytes,
|
||||
)
|
||||
)
|
||||
digest = sha256(_AUDIT_IDENTITY_DOMAIN + identity).hexdigest()
|
||||
return f"feishu-identity-sha256-{digest}"
|
||||
Reference in New Issue
Block a user