HangfireIO / HangfireIO/Hangfire
Always Encrypted Support
- Dominant language
- C#
- Stars
- 10.1k
- Forks
- 1.8k
- Avg merge
- 1h 19m
- Merged PRs (30d)
- 1
Description
I grabbed the source tonight as part of an NServiceBus scheduler project with HangFire as the scheduler broker/manager. The only blocker to this being a viable solution was that while the NServiceBus messages were properly encrypted, the data being persisted by HangFire (serialized message send method call, replete with sensitive details in the message body) was not. I updated the source, very minor changes, all related to how the params are being created for specific Dapper inserts, all fully compatible with the current implementation but also supporting both Randomized and Deterministic encrypted columns for the necessary tables (Job: InvocationData and Arguments & Hash: Value).
Is this worth the effort for anyone to create a pull request for? The fact that there was no support for it and no previous issues I could find leads me to believe it may not be but I thought I would toss it out there. If so, I may extend the Install.sql to optionally be created with knowledge of the CMK and CEK, allowing the tables to be created, already encrypted.
Contributor guide
Research direction
Start by reviewing the Dapper insert parameter creation for the Job fields InvocationData and Arguments, and the Hash field Value, as described in the issue. Then inspect Install.sql. Done should mean the necessary tables support Randomized and Deterministic encrypted columns while remaining compatible with the current implementation, with optional CMK and CEK setup considered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, sql
- Domain
- databases, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100