用途:为 PostHog 功能添加实时站内通知,例如用户被评论提及、告警触发或需要审批时通知相关用户。
主要能力:所有通知创建统一通过 facade API 完成,从 products.notifications.backend.facade.api 导入 create_notification、NotificationData、NotificationType、Priority、TargetType,构建 NotificationData 并调用 create_notification。成功返回 NotificationEvent;当功能开关关闭、无法解析接收者或团队不存在时返回 None,可在任意上下文安全调用。
NotificationData 必填字段:team_id(int,用于查找组织并检查功能开关)、notification_type(决定 UI 图标)、title(约 100 字符)、body(可为空字符串)、target_type(user/team/organization/role)、target_id(对应 ID 的字符串)。可选字段:resource_type、resource_id、source_url、priority(默认 NORMAL)、resolver(自定义接收者解析器)。
通知类型包括 comment_mention、alert_firing、approval_requested、approval_resolved、pipeline_failure、issue_assigned。优先级中 critical 会触发需手动关闭的持久 toast,仅限真实紧急情况,否则用 normal。资源类型匹配受访问控制的资源时,无查看权限的接收者会被自动排除。投递管线为 Django → Postgres → Kafka(在 transaction.on_commit 发布)→ Go livestream 服务 → Redis SPUBLISH → SSE → 浏览器。
新增通知类型需修改枚举、前端图标映射、示例数据和迁移;测试时需 mock 功能开关。资料未提供安装命令与收费信息。