insightsengineering / insightsengineering/teal.code
[Feature Request]: Explore and implement robust sandboxing mechanism
- Lenguaje dominante
- R
- Estrellas
- 12
- Forks
- 11
- Merge medio
- 1 d 17 h
- PR fusionados (30 d)
- 1
Descripción
### Feature description
Currently `eval_code` evaluates each call in the new (cloned) environment where `parent.env(env) <- parent.env(.GlobalEnv)`. When executing `library` via `eval_code` new `library` is added over each `qenv@env` - i.e. all `qenv` objects have the same package-namespaces in the search path.
We would like to separate `@env` as much as possible.
### Separate search path for each `env@env`
So that each `qenv` is a child of libraries which have been attached in this `eval_code`

### Separate `qenv` sessions
Other solution is to separate sessions where `eval_code` is executed [rlang::r_session](https://callr.r-lib.org/reference/r_session.html)
Guía de contribución
Línea de trabajo
Empieza por rastrear cómo eval_code clona entornos y cómo qenv@env comparte espacios de nombres de paquetes. Compara rutas de búsqueda separadas con el enfoque propuesto de rlang::r_session; se considera terminado cuando las ejecuciones de eval_code tienen entornos y espacios de nombres de paquetes aislados bajo un diseño claramente seleccionado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- r
- Área
- security
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100