向任何google数据存储ndb实体添加审计跟踪
ndb-audit的Python项目详细描述
向任何 NDB实体 (包括 Expando基 模型)由engineering team at Gain Compliance构建。
数据结构针对 读取性能和数据大小的开销。然而,它是 对你添加的实体进行微创。只增加了两个 主实体的属性总计32个字符 防止您按“常规获取”键进行正常操作
您应该阅读下面对数据模型的描述(尤其是 实体组)以确保不会导致数据存储争用问题 如果egs太大
功能
- 实体变更的完整历史记录应 易于查询
- 当实体被放置时,审计历史记录会自动更新,即使 所有实体的属性都相同
- 支持帐户(字符串)、时间戳(日期时间)、数据哈希(sha-1 of 属性)跟踪
- 审计历史的强一致性检索
- (WIP)灵活的“标签”系统跟踪链的进展 用户、系统等的更改
- (未来)“修订时”获取数据
- (未来)修订之间的差异
- (未来)碰撞检测和合并
数据模型
对于“e kind”类型的给定实体“e”,ndb_audit将监视所有的put 对那些包括了这些人的实体。新的审计实体“A” 将创建实体的完整副本。实体 a将具有以下功能:
- A将是一种“审计”
- 如果 namespace_manager 使用
- a将包含e的每个数据存储属性的副本 它被放在
- a的父实体将是e
- a的键将是ndb.key(parent=,pairs=[('audit',)])
- 将向e添加一个名为“d”的属性和一个python属性 将作为数据哈希添加到您的类中以访问此值。这个 将值添加到您的实体,以允许基于 所有客户端的数据哈希。对于给定的数据值,hash将 总是一样的。数据哈希是 实体的属性
- 一个名为'h'的属性将被添加到e中,一个python属性 将作为rev_hash添加到您的类中以访问此值。这个 值将添加到您的实体中,以允许您跟踪哪个修订 当前实体位于。rev_散列是 的父版本哈希、帐户字符串和数据哈希属性 实体
- 不会将其他属性添加到e中,而是必须 获取审计实体-这将使e的开销尽可能小 可能
用法
待办事项