Project

General

Profile

Collection version history » History » Version 4

Tom Clegg, 06/13/2018 05:01 PM

1 1 Tom Clegg
h1. Collection version history
2
3
(draft)
4
5
Background: desired API features (see #13109, #13494)
6
* Get current + previous versions of a collection with a single API call
7
* Search all current + previous versions of collections with a single API call
8
* Stable small numeric "version number" for each version of a given collection
9
10 2 Tom Clegg
Implementation
11 1 Tom Clegg
* Store all versions in the collection table (much easier to do paging)
12 2 Tom Clegg
* New database column indicates current version's UUID
13
* New database column indicates user-friendly version number (starting at 1) -- can be assigned safely after locking "current" row for update
14 3 Tom Clegg
* Assign version number to the current version -- this way {uuid,version} can be used as a permanent reference to a specific version
15 2 Tom Clegg
* Flag for "list" API to include old versions (otherwise, filter on current_version_uuid=uuid -- might need to adjust indexes to maintain performance)
16
* Flag in site configuration to enable preserving old versions in database
17 3 Tom Clegg
* Update owner_uuid of all old versions when it changes in the current version
18
* TBD: How does a permission link to the current version imply permission to an old version?
19 4 Tom Clegg
* Prohibit permission links to old versions