Filter youth/volunteer PII from logs and Bugsnag (notes, case_number, DOB, phone…)
Los mantenedores suelen responder en 18 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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).
- Lenguaje dominante
- Ruby
- Estrellas
- 382
- Forks
- 547
- Merge medio
- 10 d 19 h
- PR fusionados (30 d)
- 20
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rubyforgood/casa
-
Difficulty: Easy Good First Issue Help Wanted 🧹 Linting
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/casa#7265 · 2 comentarios ·
Los mantenedores suelen responder en 18 días
-
Stale bot marks Help Wanted / Good First Issue issues as abandonedPosiblemente ocupada @KoushikSagarr la tomó hace 1 día. Abiertogithub_actions Good First Issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rubyforgood/casa#7262 · 1 comentario ·
Los mantenedores suelen responder en 18 días
-
Bug: Reassigned cases are listed under "Not Assigned" in the Assign a new case dropdownQuizá libre de nuevo @Anandb71 la tomó hace 9 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
rubyforgood/casa#7241 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 18 días
-
✨ New Feature Difficulty: Intermediate Help Wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
rubyforgood/casa#7264 ·
Los mantenedores suelen responder en 18 días
-
🏗️ Deployment 📈 Performance Improvement Help Wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
rubyforgood/casa#7218 ·
Los mantenedores suelen responder en 18 días
Todos los issues de rubyforgood/casa
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
heartcombo/simple_form#1874 ·
-
Category: OneSwap Status: Accepted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
OpenNebula/one#8237 ·
-
Reconfigure Settings sidebarAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
AllYourBot/hostedgpt#882 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
greenelab/lab-website-template#357 · 1 comentario ·