HangfireIO / HangfireIO/Hangfire

Always Encrypted Support

Open
#1,297 3 comments 0 reactions 0 assignees View on GitHub
a: sql-server t: problem
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.