User descriptions added after an event keep the email address when private information removal is on
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 78/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- csharp, redis
调研方向
阅读 src/Exceptionless.Web/Api/Handlers/EventHandler.cs 中的 EventHandler.Handle(SetEventUserDescription),并将其与 src/Exceptionless.Core/Plugins/EventProcessor/Default/90_RemovePrivateInformationPlugin.cs 中的 RemovePrivateInformationPlugin 进行比较。追踪项目设置如何传递到已排队的描述,然后为禁用私人信息删除功能时的延迟描述路径添加一项测试。排队的作业处理描述后,电子邮件被省略,即表示完成。
由索引模型根据 Issue 内容生成。
描述
When a project has Automatically remove user identifiable information turned on, the event pipeline clears the email address from a user description sent with the event. A description added later through the user-description endpoint skips that step and is saved with the email address as submitted.
Where
EventUserDescriptionsJob.ProcessUserDescriptionAsynccopiesEmailAddressinto theUserDescription, mergesData, and saves the event. It never loads the project or checks its settings.EventHandler.Handle(SetEventUserDescription)loads the project but queues the email unchanged. This handlesPOST /api/v2/events/by-ref/{referenceId}/user-description, the project-scoped variant, and the legacyPATCHpath.- For comparison,
RemovePrivateInformationPluginsetsdescription.EmailAddress = nullwhenIncludePrivateInformation(@@IncludePrivateInformation) is false.
Steps to reproduce
- In a project, turn on Automatically remove user identifiable information.
- Submit an event with a reference id, e.g.
"reference_id": "abc123", and no user description. POST /api/v2/events/by-ref/abc123/user-descriptionwith{"email_address": "[email protected]", "description": "It crashed"}.- After the user-descriptions job runs, open the event. The user description shows
[email protected].
Submitting the same description inside the event in step 2 stores it without the email.
Expected
The email address is dropped from late user descriptions the same way it is for descriptions sent with the event.
Suggested fix
In EventHandler.Handle(SetEventUserDescription), where the project is already loaded, set EmailAddress to null before queuing when project.Configuration.Settings.GetBoolean(SettingsDictionary.KnownKeys.IncludePrivateInformation, true) is false. Dropping it before it reaches the queue also keeps it out of Redis. Alternatively, load the project in the job and apply the same check there. Add a test for the late-description path with the setting turned off.
- 主要语言
- C#
- 星标
- 2.5k
- 派生
- 508
- 平均合并
- 2 天 17 小时
- 30 天内合并 PR
- 40
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
exceptionless/Exceptionless 的其他 Issue
-
bug documentation
难度 2/5 1-3 小时 新手友好度 78/100
exceptionless/Exceptionless#2707 ·
维护者通常 1 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 85/100
exceptionless/Exceptionless#2706 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
exceptionless/Exceptionless#2705 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 88/100
exceptionless/Exceptionless#2704 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 73/100
exceptionless/Exceptionless#2703 ·
维护者通常 1 天内回复
查看 exceptionless/Exceptionless 的全部 Issue
相似的 Issue
-
bug effort:S P3
难度 2/5 1-3 小时 新手友好度 76/100
nightscout/nocturne#3136 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 67/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 76/100
GameShowLDA/AskMkiM#1075 ·
维护者通常 1 天内回复
-
is:fix
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复