Open fortuna opened 8 years ago
By the way, in the interest of preserving privacy, we may want to not generate 1-week and 4-weeks metrics daily. This significantly reduces the overlap between reports and the sensitivity of a single event in Differential Privacy terms:
If we add noise to each metric to make the report ϵ-differentially private, each metric will be in the ±2.99573 × sensitivity / ϵ range with 95% confidence. For ϵ = 1, that means ~ ±18 for sensitivity = 6 and ±9 for sensitivity = 3.
It's still not clear to me what ϵ we should choose. This may clarify: Differential Privacy: An Economic Method for Choosing Epsilon
Information on how to do Node AppEngine cron jobs can be found at Scheduling Jobs with
cron.yaml
.We need to figure out the timing of the reports. We can't generate the report continuously, since that gives away low-granularity time information by diffing consecutive reports. I bucket the reports by date on the clients time-zone. Which means you will continue to receive reports for a date until the last timezone changes the day.
Don't forget to secure the endpoint. See Securing URLs for cron.