lean cloud push overwrites read-only shared library files
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
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
- 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).
- A read-only collaborator runs
lean cloud pullon a project that references this library → library files are downloaded locally. - The library owner pushes new changes to the library in the cloud.
- The read-only collaborator runs
lean cloud pushon the project (not on the library directly). - Observed: the cloud library files are reverted to the version the read-only collaborator had locally from step 2.
- Expected:
lean cloud pushshould 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
- Intercom conversation id: 215475353035232
- Related lean-cli open issue: #579 (Improve semantics of library organisation — may overlap)
- LEAN CLI docs: https://www.quantconnect.com/docs/v2/lean-cli/projects/libraries/project-libraries
- 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
- 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 QuantConnect/lean-cli
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
QuantConnect/lean-cli#619 ·
-
Implements AutocompleteQuizá libre de nuevo @shreejaykurhade la tomó hace 191 días y no hay ningún pull request abierto. Abiertofeature
QuantConnect/lean-cli#602 · 6 comentarios · 3 reacciones · 1 asignado ·
-
Case handling for `Choice` help output (values forced to lowercase)Posiblemente ocupada @Amadeus-22 la tomó hace 5 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
QuantConnect/lean-cli#588 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
QuantConnect/lean-cli#579 ·
-
bug feature
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
QuantConnect/lean-cli#574 · 1 comentario · 1 reacción ·
Todos los issues de QuantConnect/lean-cli
Issues similares
-
Action calls retired claude-3-5-haiku-20241022, generating failing API requests for every userAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 92/100
-
enhancement P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Toloka/tolokaforge#1776 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
TencentCloud/Octop#1622 ·
Los mantenedores suelen responder en 1 día
-
arch area:fleet priority:p3 severity:low track:hosted-product
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día