Collection version history » History » Version 3
Tom Clegg, 06/13/2018 05:00 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? |