insightsengineering / insightsengineering/teal.code

[Feature Request]: Explore and implement robust sandboxing mechanism

Abierto
#201 1 comentario 0 reacciones 0 asignados Ver en GitHub
core enhancement
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`

![Namnlöst diagram drawio](https://github.com/insightsengineering/teal.code/assets/6959016/abfff3ce-372b-43ff-a177-91bde89f3ab3)

### 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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.