Commit 8f28fb3
feat: allow PATCH in
Migrated from dfinity/portal#6245 (moved to this repo per reviewer
request — the spec is now hosted here).
### What
- `public/references/ic.did`: `method` variant → `variant { get; head;
post; put; delete; patch }`.
- `docs/references/ic-interface-spec/management-canister.md`: document
`PATCH` alongside `PUT`/`DELETE` as supported in non-replicated mode
only (two paragraphs).
- `docs/references/ic-interface-spec/changelog.md`: new `0.63.0 (TBD)`
entry.
> **Note:** the changelog uses `0.63.0` because `0.62.0` is already
present in this repo with different content (2025-05-26). Please confirm
the correct version number before merging.
### Why
`PATCH` is the last common REST verb missing after `PUT`/`DELETE` landed
(dfinity/portal#6199). It is pervasive in modern REST APIs for partial
updates (Google Calendar, GitHub, Stripe, …). The concrete driver is
generated Motoko clients for the Google Calendar API whose
partial-update operations are otherwise un-callable.
### Why non-replicated only
Same rationale as `PUT`/`DELETE`: in replicated mode an outcall is
issued once per replica; `PATCH` is additionally not guaranteed
idempotent (RFC 5789 §2). The existing `is_replicated` machinery already
covers it; no new mechanism is introduced.
### Notes
- Spec/docs change only. The corresponding runtime implementation is in
dfinity/ic#10378.
- The date in the changelog entry should be updated to the mainnet
rollout date before merging.
- Originally opened as dfinity/portal#6245; that PR will be closed once
this one merges.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: mraszyk <31483726+mraszyk@users.noreply.github.com>http_request for non-replicated calls (#289)1 parent 3581e4f commit 8f28fb3
3 files changed
Lines changed: 6 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
640 | 640 | | |
641 | 641 | | |
642 | 642 | | |
643 | | - | |
| 643 | + | |
644 | 644 | | |
645 | 645 | | |
646 | 646 | | |
| |||
664 | 664 | | |
665 | 665 | | |
666 | 666 | | |
667 | | - | |
| 667 | + | |
668 | 668 | | |
669 | 669 | | |
670 | 670 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
344 | 344 | | |
345 | 345 | | |
346 | 346 | | |
347 | | - | |
| 347 | + | |
348 | 348 | | |
349 | 349 | | |
350 | 350 | | |
| |||
0 commit comments