RFC: Safe partial-update behavior for PUT-only APIs
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- api, backend-api-design, cli, testing-qa
Línea de trabajo
Start with the CLI update command and the GET, merge, then PUT flow described in the issue, then inspect endpoint schemas and available concurrency tokens. Resolve the safety policy before implementation; done means the supported policy is documented and eligible endpoints have concurrency and failure-path tests, including dry-run secret handling.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
Some APIs expose replacement-oriented PUT operations but no PATCH operation. Users may still expect a CLI update command to preserve fields they did not specify.
A generic GET, merge, then PUT flow could emulate a partial update, but it can also overwrite concurrent changes or mishandle fields whose omission, null, empty value, or server default have different meanings.
Questions to resolve
- Which endpoints have a concurrency token such as an ETag or version?
- Can replacement schemas distinguish omitted fields from explicit clearing?
- Which operations are idempotent and safe to retry?
- How should secrets, write-only fields, computed fields, and server defaults be handled?
- Should emulation be opt-in, endpoint-specific, or rejected when safety cannot be proven?
Safety requirements
- Do not perform an unguarded read-modify-write when concurrent changes can be lost.
- Preserve explicit clearing and replacement semantics.
- Fail before mutation when the current representation cannot be reconstructed safely.
- Show the effective request through dry-run without exposing secrets.
Outcome
Document the supported policy and implement it only for endpoints that satisfy the agreed safety constraints, with concurrency and failure-path tests.
- Lenguaje dominante
- TypeScript
- Estrellas
- 960
- Forks
- 62
- Merge medio
- 23 h 46 min
- PR fusionados (30 d)
- 217
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin 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 cloudflare/cf
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cloudflare/cf#344 ·
Los mantenedores suelen responder en 1 día
-
upstream
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cloudflare/cf#262 ·
Los mantenedores suelen responder en 1 día
-
`cf dev` rejects `--port` and `--host` for Vite projects, including the `cf init` templatePosiblemente ocupada @jamesopstad la tomó hace 17 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cloudflare/cf#223 · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
upstream
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
cloudflare/cf#179 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
cloudflare/cf#438 ·
Los mantenedores suelen responder en 1 día
Todos los issues de cloudflare/cf
Issues similares
-
bug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
PhyberApex/kuroshiro#1687 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
microsoft/monaco-editor#5563 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
awslabs/visual-asset-management-system#937 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100