Filter youth/volunteer PII from logs and Bugsnag (notes, case_number, DOB, phone…)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
Direzione di ricerca
Start with config/initializers/filter_parameter_logging.rb and config/initializers/bugsnag.rb, then inspect the existing parameter filtering specs and SECURITY.md. Add filtering coverage for the listed keys, review how set_user and Bugsnag request URLs are handled, and document the vendor data policy. Done means the requested sensitive values are filtered or redacted, the behavior is covered by specs, and the policy is documented.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
CASA data is about foster youth, so anything we send to third parties (Bugsnag, Scout APM, Heroku/log drains) should be the minimum needed to debug.
config/initializers/filter_parameter_logging.rb filters only passw, email, secret, token, _key, crypt, salt, certificate, otp, ssn, cvv, cvc. These are permitted request params that aren't filtered, so they appear in Rails logs and in the request metadata Bugsnag attaches to errors:
| Param | Where | Why it matters |
|---|---|---|
notes, content |
case contacts, notes, court orders | free-text narrative about a youth |
case_number |
casa cases, imports | juvenile court case number |
birth_month_year_youth, date_of_birth |
casa cases, users | DOB |
display_name, phone_number, address |
users, volunteers | volunteer PII |
Also:
config/initializers/bugsnag.rbcallsevent.set_user(current_user&.id, current_user&.email). The user id is enough to look someone up. Consider sending only the id.- Case URLs contain the case-number slug (
/casa_cases/cina-21-1234), so it ends up in router logs and BugsnagApp URL. That will matter more once #7106 lands org + case number in the path. Look at Bugsnag'sredacted_keys/ anadd_on_errorcallback that rewritesrequest.url, and Heroku log drains.
Tasks
- Add
:notes, :content, :case_number, :birth, :phone, :address, :display_name, :first_name, :last_nametofilter_parameters(it's substring-matched, so check nothing we need in logs gets swallowed) - Add a spec asserting those keys are filtered (
ActiveSupport::ParameterFilter.new(Rails.application.config.filter_parameters).filter(...)) - Decide on
set_useremail vs id only - Bugsnag callback that redacts case slugs from
event.request[:url]/context - Note the policy in
SECURITY.md: what we send to which vendor
Related: safe read-only observability access (see linked issue).
- Lingua principale
- Ruby
- Stelle
- 382
- Fork
- 547
- Merge medio
- 3g 3h
- PR unite (30g)
- 39
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rubyforgood/casa
-
dependencies Difficulty: Easy Good First Issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
rubyforgood/casa#7325 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficulty: Easy Good First Issue Help Wanted javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
rubyforgood/casa#7311 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficulty: Easy Good First Issue Help Wanted javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rubyforgood/casa#7310 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficulty: Easy Good First Issue Help Wanted javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rubyforgood/casa#7309 ·
I maintainer di solito rispondono entro 1 giorno
-
🖥️ Frontend Difficulty: Easy Good First Issue Help Wanted javascript
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
rubyforgood/casa#7308 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rubyforgood/casa
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
GPX export ignores set datesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
davidteren/mutineer#364 ·
I maintainer di solito rispondono entro 2 giorni
-
first-contributor first-contributors good first issue help wanted json medium up-for-grabs
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
fork-commit-merge/fork-commit-merge#8526 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno