Skip to content

Instantly share code, notes, and snippets.

@duglin
Created July 16, 2025 14:02
Show Gist options
  • Save duglin/55666c45bdada4b03e3b3f67f9095a98 to your computer and use it in GitHub Desktop.
Save duglin/55666c45bdada4b03e3b3f67f9095a98 to your computer and use it in GitHub Desktop.
dirs/d1/files/f1 exists
PUT /dirs/d2/files/f2
{ xbase: /dirs/d1/files/f1/versions/v1 }
creates a v1 pointing to d1/f1
POST /dirs/d2/files/f2 (creating a new version)
{}
creates a v2 w/o a pointer
POST /dirs/d2/files/f2 (creating a new version)
{ xbase: /dirs/f1/files/f1 }
creates a v3 (like v1) with a pointer to d1/f1
Proposal
- keep xref as it is today (in "meta")
- add "xbase" as a version-level attribute
- XID that can point to a Resource or Version
- MUST be a Resource of the same Resource-type
- xbase can change from version to version (version-level choice)
- look at adding a flag for update(), when xbase is set, to prevent accidental overriding
(e,g, ?yes-do-it, otherwise it's a readonly version)
- no mechanism to remove an inherited attribute, but they can override its value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment