-
Notifications
You must be signed in to change notification settings - Fork 23
/
RELEASE_NOTES.txt
225 lines (165 loc) · 7.56 KB
/
RELEASE_NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
# v0.9.27
- bug fixes with locks
- add option to API for running golang trace or profile for short timespan
- overhaul of shock-client CLI
- testing overhaul
- test files
- test script
- container for running shock-client through suite of tests against shock-server
# v0.9.26
- remove repeat saves
- fix chunkrecord indexer for fastq and last record
- handle index of empty files gracefully
- overhaul locker, now can lock node, file, index
- if file locked, unable to download file
- if index locked, unable to download using that index
- locks have timeouts and exist in-memory only
- parts nodes merge is async and locks file during merge
- indexing is async and locks index during build
- add /locker /locked/node /locked/file locked/index resources to view states
# v0.9.25
- add node lock to index and acl actions
- fix missing last record index if no ending newline
- made record index parser more robust
- improved error handling and messages
- remove unused index.ReadRaw functions
# v0.9.24
- only save node state at end of update
- add node lock for life of update
- use global lock object with timeout and cleanup
- add function trace to error messages
- kill broken download steams more cleanly
- better auth logging
# v0.9.23
- fix bug in admin users
- updated auth pkg error handling
- path cleanup
# v0.9.22
- update to golang 1.7.6
- added ability to download multiple files (.tar or .zip format) from a list (POST)
- auth update. now support multiple oauth services at once. requires config file update
- update error handling in config init / parse
- bug fix: chunkrecord regex
# v0.9.21
- graceful error handling of missing .bson file
- add more to preauth return: file size, options used
- added ability to download multiple files (.tar or .zip format) from a query (GET)
# v0.9.20
- add priority field to node along with index and set option
- add configurable max limit to revisions array
- enable preauth download (download_url) for subset nodes
- dockerfile update
# v0.9.19
- add 'md5' mongod index
- update to golang 1.7.5
- readme update
- dockerfile update
# v0.9.18
- update to golang 1.7.1
# v0.9.17
- docker file update
- use minimal alpine golang base
- update vendor dir to support new 1.6 vendor format
# v0.9.16
- docker file updates
- ubuntu 16.04
- golang 1.6.2
# v0.9.15
- add 'distinct' option too node query to return list of distinct values. must be an indexed field in node.attributes
- upload file via url (http, https, or ftp) using 'upload_url' parameter
# v0.9.14
- add versioning to indexes
- option to clear revisions array in node
- fix duplicate additions to revision array
- explicit check for bson document max size upon save, return meaningful error
# v0.9.13
- added option to copy attributes when doing node copy
- added version_parts map to returned node
- test mongo connection with short timeout on startup
- add admin flag when creating new admin user
- skip version updates on start if node collection is empty
# v0.9.12
- Fix to occasional deadlock with parts node locking
# v0.9.11
- Update mgo lib to v2
- Vendorization of the Shock codebase
# v0.9.10
- fix archive unpacking bugs
- add expiration for nodes
- default is no expiration
- option to set expiration from now with time and unit (minute, hour, day)
- option to remove expiration
- config value for how often reaper runs
# v0.9.9
- Fix content length when request for more than the length to the end of the file
- Delete attribute file when done uploading it
- Don't allow file upload if node is parts type
- Change locking for parts nodes to use mutex and not channel
- Parts node lock is on a per node basis and not global
# v0.9.8
- Bug fix for concurrency issue on simultaneous parts node uploads.
# v0.9.7
- Support for upload and decompression of gzip/bzip2 for basic and parts uploads
- Support for unpacking of node containing zip or tar archive into multiple nodes
- Support for download of node file in compressed format – zip/gzip
- Add filter and compression options to download_url
- File download defaults to filename and not node id
- Better checking and error messages of invalid parameter combinations
- Cleanup of files in tmp dir when upload fails or parameters invalid
- Subset node type can support empty subsets
- Update error messages, make more consistant
- Update node schema to version 3
- Parts upload info saved in node document and not flatfile, md5 saved for each part
- Update nodes to v3 on startup if not up-to-date
- Update node schema to version 4
- Add timestamps to file and index info in node document, time of file upload and index creation
- Update nodes to v4 on startup if not up-to-date
# v0.9.6
- Added init.d scripts for start/stop of Shock.
- No longer requiring 'globus' string in a globus-formatted token.
- Fixed invalid return from index creation function.
- Added mongo index to node 'created_on' field.
# v0.9.5
- Sort Shock query results by date by default (newest to oldest)
- Expanded querynode feature set (sort by field, query for field by range, query for field
not equal, query for field begins with/ends with)
- Added verbose option to node ACLs (expands uuid list in ACLs to user structs).
- Expanded admin permitted operations to include update and delele in addition to read.
- Made setting a file name for a node non-dependent on whether file has been set.
- Added to base resource call the list of permitted actions without auth (anonymous).
- Bug fix for copying subset nodes.
- Better formatting for configuration printed at startup.
- Modified node ACLs to explicitly include a "public" string in the ACL if
if that ACL is public. The previous behavior was to consider an ACL "public"
if that ACL was empty. This was restrictive in terms of managing ACLs.
Also, the "Public" field was removed from the node document because this
information will be solely managed by the ACLs.
Note: Shock has been updated to check for the version of the ACL and Node
schema in the mongo database at startup time. If either of these are found
to be outdated, the user will be prompted to run updates on both of these.
The permissions for specific Shock actions are listed below:
#####POST
* Permitted by: everyone
- /node create node
#####GET
* Permitted by: everyone
- / resource listing
* Permitted by: admin, node owner, users in read ACL, or everyone if node is publicly readable
- /node list nodes, query
- /node/<node_id> view node, download file (full or partial)
- /node/<node_id>/acl view node acls
- /node/<node_id>/acl/<type> view node acls of type <type>
#####PUT
* Permitted by: admin, node owner, users in write ACL, or everyone if node is publicly writable
- /node/<node_id> modify node (e.g. update attributes of existing node)
- /node/<node_id>/acl modify node acls
- /node/<node_id>/acl/<type> modify node acls of type <type>
- /node/<node_id>/index/<type> create node indexes
#####DELETE
* Permitted by: admin, node owner, users in delete ACL, or everyone if node is publicly deletable
- /node/<node_id> delete node
* Permitted by: admin, node owner, users in write ACL, or everyone if node is publicly writable
- /node/<node_id>/inde/<type> delete node index
* Permitted by: admin, node owner, users in write ACL, or everyone if node is publicly writable
- /node/<node_id>/acl/<type>?users=<user-ids_or_uuids> delete users from ACL
NOTE: Although a node may be designated as publicly readable, writable, or deletable, user authentication may still be required depending on the Shock server's configuration.