RFC: Safe partial-update behavior for PUT-only APIs
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- api, backend-api-design, cli, testing-qa
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 853
- Fork
- 42
- Merge medio
- 17h 57m
- PR unite (30g)
- 146
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di cloudflare/cf
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
cloudflare/cf#344 ·
I maintainer di solito rispondono entro 1 giorno
-
upstream
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
cloudflare/cf#262 ·
I maintainer di solito rispondono entro 1 giorno
-
`cf dev` rejects `--port` and `--host` for Vite projects, including the `cf init` templateForse già presa @jamesopstad l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
cloudflare/cf#223 · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
-
upstream
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
cloudflare/cf#179 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 58/100
cloudflare/cf#347 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di cloudflare/cf
Issue simili
-
freshness freshness:observed-only
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
thoroc/context-radar#280 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
documentation story
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Billing: computeBundleEconomicsFrom treats a NULL component cost as 0, inflating bundle marginApertabug category:billing priority:p3 track:fast
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
LanternOps/breeze#9223 ·
I maintainer di solito rispondono entro 1 giorno