Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

lean cloud push overwrites read-only shared library files

Abierto
#661 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
55/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python
Área
cli, cloud

Línea de trabajo

Comienza en el flujo lean cloud push y sigue cómo los archivos de biblioteca vinculados llegan a /files/update o /files/create. Comprueba cómo /projects/read expone el acceso de los colaboradores y luego reproduce el escenario de una biblioteca de solo lectura. Se considera terminado cuando los archivos de bibliotecas de solo lectura se omiten o se rechazan sin sobrescribir los cambios en la nube, y el comportamiento relevante de push está cubierto por pruebas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

lean cloud push overwrites read-only shared library files

Summary

When a project references a shared library for which the pushing user has read-only (collaborator) access, lean cloud push still uploads the locally cached library files via /files/update, effectively overwriting whatever the library owner has since changed on the cloud. The access control on the library project is not consulted before the push.

Reproduction steps

  1. Create a library project and share it across an organisation as read-only (i.e. other members are added as read-only collaborators, not owners).
  2. A read-only collaborator runs lean cloud pull on a project that references this library → library files are downloaded locally.
  3. The library owner pushes new changes to the library in the cloud.
  4. The read-only collaborator runs lean cloud push on the project (not on the library directly).
  5. Observed: the cloud library files are reverted to the version the read-only collaborator had locally from step 2.
  6. Expected: lean cloud push should skip pushing files for libraries where the current user has read-only access (or the cloud API should reject the write with an appropriate error).

Root cause (hypothesis)

lean cloud push iterates over all local project files, including the contents of every linked library directory, and calls /files/update or /files/create for each. It does not check the authenticated user's role on the library project before pushing library files. The result is that a collaborator who cannot directly write to a library via the web IDE or via lean cloud push <library> can inadvertently overwrite it by pushing the parent project.

Suggested fix

Before pushing library files, retrieve the calling user's access level on each library project (e.g. via /projects/read for the library's project id and checking the collaborator role / access flag). Skip — or error — on any library where the user is not an owner or write collaborator.

A complementary server-side guard on /files/update to enforce the library project's collaborator permissions would provide defence-in-depth regardless of the client.

References

Lenguaje dominante
Python
Estrellas
327
Forks
169
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de QuantConnect/lean-cli

Todos los issues de QuantConnect/lean-cli

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.