cloudflare / cloudflare/cloudflare-typescript

why does dns.records.edit() require a full record instead of a Partial<> ?

Open
#2,795 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
814
Forks
190
Avg merge
1h 38m
Merged PRs (30d)
2

Description

### Confirm this is a TypeScript library issue and not an underlying Cloudflare API issue

- [x] This is an issue with the TypeScript library

### Describe the bug

Sorry if this is a stupid question but doesn't that defeat the purpose of using PATCH ?

I could be confused but it appears the actual API endpoint accepts partial updates e..g. { content: new_ip } but the API definition requires ttl, name, and type making edit and update synonyms.

If the actual API endpoint accepts partials then the API should allow them too e.g. RecordEditParams should be defined with ?: for everything except zoneid: rather than being an exact duplicate of RecordUpdateParams.

If I am confused and the partial update is forcing missing settings to some default then the API is currently correct.

Note: Code generation looks correct. It is the actual spec I am questioning.

### To Reproduce

Reproduction is simple. This fragment appears to work fine in a production worker:
```
await creds.cloudflare.dns.records.edit(dnsid, {
zone_id: creds.zoneid,
content: ip,
})
```
But when compiled with tsc it refuses to build due to the missing mandatory fields.

### Code snippets

```TypeScript

```

### OS

Ubuntu 22.04

### Runtime version

Typescript 7.0.2

### Library version

cloudflare 7.0.0 cloudflare/types 7.0.1 cloudflare/workers-types 5.20260801.1

Contributor guide

Open the contributing guide

Research direction

Start by inspecting the API definition for DNS record edit and compare RecordEditParams with RecordUpdateParams. Verify whether the endpoint accepts a partial payload like the reproduction's zone_id and content only. Done means the TypeScript types accurately reflect the endpoint's required fields, with a regression check for the demonstrated edit call if the API supports partial updates.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
67/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.