-
Notifications
You must be signed in to change notification settings - Fork 3
/
VERSIONS.txt
275 lines (218 loc) · 13.6 KB
/
VERSIONS.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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
SyncServer
Version
* Change configuration files to use Codable
* Adding Microsoft authentication and OneDrive
* Removed SMServerLib-- no longer used.
Version 0.25.1 (8/24/19)
* Adding retries to mySQL record removal method-- because an AWS load test revealed issues.
* Adding CloudWatch agent into Elastic Beanstalk deployment.
This seems necessary to monitor % memory utilization of the EC2 instance, which load testing suggests is an important variable.
* Current testing with SyncServerII has taken place with v5.7.23 of mySQL. This version seems necessary. I did some load testing on AWS RDS with v5.7.22 and ran into long request latencies (averaging 82.9s). NOTE: To deploy this to production, I'm going to have to update the production mySQL RDS to v5.7.23. [8/31/19: Note that the long latencies seem actually to do with the type of EC2 instance being used for the server-- t2.micro, which are burstable, and can have CPU throttling.]
Version 0.25.0 (7/20/19)
* Now lower casing expected checksum value before check with the upload-- in case upload request leaves checksum in upper case.
* Locust load testing for server: Added locustfile.py
* Working on other deadlock issues: With file uploads, master version and device UUID.
And with timeout issues.
* Changed locking mechanism for requests. Removed ShortLocks table and relying on mySQL exclusive and shared locks for master version.
I believe my explicit locking mechanism, in addition to the intrinsic mySQL locks, were what were causing the deadlock issues I was running into.
* Added debugging output for mySQL queries.
* Updating to Swift 5
Put in fixes in testing code for Swift 5.0.1 dateComponents bug:
https://stackoverflow.com/questions/56555005
* Have now switched over to using IBM-Kitura-based Docker images:
https://github.com/IBM-Swift/swift-ubuntu-docker
* Added MockStorage, a form of CloudStorage which doesn't actually interact with cloud storage, but rather is suited for load testing-- so as to not exceed limits with Google Drive. This goes hand in hand with server configuration key "loadTestingCloudStorage".
* Removed my usage of Kitura Credentials UserProfile extendedProperties. It looks like it was causing crashes in load testing because my usage wasn't thread safe. Plus, I found a better method to bridge data from the request. See also https://forums.swift.org/t/kitura-perfect-mysql-server-crash-double-free-or-corruption-prev/26740/10
Version 0.24.0 (4/15/19)
* Added url mime type.
Version 0.23.0 (4/9/19)
* Added new endpoint to get sharing invitation info.
Version 0.22.1 (4/8/19)
* Updated shared library (SyncServer-Shared) to 10.0.0.
Version 0.22.0 (4/2/19)
* Added new parameters (numberAcceptors, allowSharingAcceptance) to create sharing invitation and redeem sharing invitation, with defaults so this should still allow clients to run with no change.
Version 0.21.2 (3/15/19)
* Update version of shared library to fix log output issue, and improve `data` field handling for upload & download.
Version 0.21.1 (3/14/19)
* Update version of shared library to fix Bool decoding issue.
Version 0.21.0 (3/13/19)
* Updated SMServerLib Swift version
* Making use of Token Time To Live on Kitura Credentials for Google and Facebook
* Updated Dropbox Credentials with Token Time To Live
* Converting to using Codable for request/response messages (away from Gloss)
Codable provides a simpler notation, and Gloss is not supporting Linux any more.
Due to this change, this is a breaking change for the iOS client library.
Version 0.20.10 (2/14/19)
* Adding push notifications (APNS) using AWS SNS.
Version 0.19.1 (12/8/18)
* Fixing issue where sharing users couldn't update (refresh and save to database) owning user access token.
https://github.com/crspybits/SyncServerII/issues/89
12/2/18
* Now have CloudWatch integrated; no new server version.
https://github.com/crspybits/SyncServerII/issues/94
Version 0.19.0 (12/1/18)
* Force iOS client app update
https://github.com/crspybits/SyncServerII/issues/71
https://github.com/crspybits/SyncServerII/issues/67
Version 0.18.6 (11/23/18)
* Improved "gone" case in DoneUploads-- now this will occur in fewer situations.
Should be only when a sharing user, who's owning user was removed, tries to upload
a v0 file.
Version 0.18.5 (11/23/18)
* Dealing with a "gone" case in DoneUploads.
Version 0.18.4 (11/22/18)
* Added debugging/logging output code.
Version 0.18.3 (11/19/18)
* Returning gone for file downloads via a normal response-- to also return app meta data
to client.
Version 0.18.2 (11/18/18)
* Changed reason type for gone response endpoints that use sharing group uuid's.
Version 0.18.1 (11/11/18)
* Download endpoint returns HTTP status gone when a file has been removed/renamed.
* Endpoints now return HTTP status "gone" when an owning user's access token has expired or been revoked.
* Endpoints returning "gone" now also have a reason field in the return result.
* For Version 0.18.*, the following apply:
https://github.com/crspybits/SyncServerII/issues/75
https://github.com/crspybits/SyncServerII/issues/63
https://github.com/crspybits/SyncServerII/issues/93
Version 0.18.0 (11/4/18)
* Removing byte sizes from server/database; replacing with checksums.
* Enabled download endpoint to return the checksum for the file currently in cloud storage so a client can (a) check it against the last uploaded file checksum, and (b) check for network transmission errors.
* Index endpoint returning cloud storage type per file, and per sharing group (for purely sharing users).
* Fixed a longstanding issue, where some failures were not detected, in the Select function.
* Upload endpoint must have checksum for the file being uploaded for the type of cloud storage for the file.
* Download endpoint now also returns "contentsChanged" flag.
Version 0.17.4 (9/23/18)
* Removed a consistency check across upload operations. Now allowing for the possibility of a client interleaving uploads from different sharing group UUID's (without an intervening DoneUploads) to give the client more flexibility. E.g., this could help in some client error recovery use cases.
Version 0.17.3 (9/16/18)
* Fixed git tagging issue.
Version 0.17.2 (9/15/18)
* Added ability to do sharing group update (name change) along with the DoneUploads endpoint. This was needed by the iOS client.
Version 0.17.1 (8/26/18)
* Now have sharing group ids created by client to make client interface consistent.
Version 0.17.0 (8/21/18)
* Multiple sharing groups per user
https://github.com/crspybits/SyncServerII/issues/27
* Add name to sharing groups.
* Repurposed FileIndex endpoint to also return the current users sharing groups.
Dropped the get sharing groups endpoint.
Renamed FileIndex to Index because it's more than just for files.
* Added other endpoints to support multiple sharing groups:
Create sharing group, remove sharing group, remove user from sharing group, update sharing group.
Version 0.16.3 (7/22/18)
* Fixed issue with user deletion.
Version 0.16.2 (7/22/18)
* Added new test case & new version of shared library.
Version 0.16.1 (7/16/18)
* Added endpoint to get sharing group ids.
Version 0.16.0 (7/15/18)
* Ownership of files by original uploading user
https://github.com/crspybits/SyncServerII/issues/76
Version 0.15.1 (6/20/18)
* Fixing an issue with Docker-- used wrong base image.
Version 0.15.0 (6/20/18)
* Bringing up to date with current Kitura and PerfectlySoft
* Update CredentialsDropbox, SyncServer-Shared, SMServerLib, and (my fork of) Perfect-MySQL
Now using actual master branch of Perfect-MySQL-- my PR got merged.
* Now using Swift version 4.1.2 (seems required by current Perfect libs)
* Updated Docker build and runtime to Swift 4.1.2
Version 0.14.1 (4/21/18)
* Added file group UUID's to file uploads and file index-- to enable client to upload/download files in groups.
https://github.com/crspybits/SyncServerII/issues/59
Version 0.14.0 (4/5/18)
* Multi version app meta data per file
https://github.com/crspybits/SyncServerII/issues/60
This is a breaking change because if you upload a change to the app meta data, you need to also increment the app meta data version.
Removing appMetaData from the FileIndex result because it's redundant with that in the file download, and the new endpoints.
Adding new endpoints:
DownloadAppMetaData
UploadAppMetaData
Version 0.13.1 (3/1/18)
* Updated Amazon Linux version in environments
* Standardized return value on cloud storage upload and finding file already exists.
* Added tests.
Version 0.13.0 (2/25/18)
* Add: File name extensions in cloud storage
https://github.com/crspybits/SyncServerII/issues/10
* “Constant” files— that don't download
https://github.com/crspybits/SyncServerII/issues/46
I'm doing this by adding a single initialization "README" type of file to owning user accounts when they are first created.
* Only send the cloud folder name when owning accounts are created
https://github.com/crspybits/SyncServerII/issues/64
Version 0.12.1 (2/4/18)
* Fixed long-standing bug in Google Drive file download-- where file would get interpreted as JSON if it contained JSON, but actually we needed data. Download would fail in that case.
* Also fixed corresponding problem with Dropbox download.
Version 0.12.0 (2/4/18)
* Added a test case for version returned in headers.
* Added userId to response when creating a user and when checking creds for a user.
Version 0.11.1 (2/1/18)
* Added server version to response headers so client can defend itself against incorrect server versions.
Version 0.11.0 (1/14/18)
* Added multi-version files
https://github.com/crspybits/SyncServerII/issues/12
* Fixed a long-standing bug in error handling in certain cases of problems with a deviceUUID
* Fixed a long-standing bug: Was allowing a file to be uploaded when it was was previously deleted.
* Added upload undeletion-- to deal with conflict resolution on clients.
Version 0.10.0 (1/7/18)
* New response type for uploads-- response fields now in a header key.
This to deal with iOS client issues for background downloading.
Version 0.9.0 (12/29/17)
* Upload response now includes actual dates used.
https://github.com/crspybits/SharedImages/issues/44
* Healthcheck improvements
https://github.com/crspybits/SyncServerII/issues/32
Added a test for this.
* Removed dropboxClientId, dropboxClientSecret from Constants.swift-- these are not used. Dropbox doesn't require server-specific creds.
* Added `deployedGitTag` to Constants.swift
* Improved tracking of internal server statistics.
Version 0.8.1 (12/24/17)
* Updates to testing-- getting testing script working better.
* More updates to testing-- getting tests to work without failing.
* New Dockerfile for building-- based off of standard Docker image
Version 0.8.0 (12/17/17)
* Using ServerConstants.HTTPOAuth2AuthorizationCodeKey instead of ServerConstants.GoogleHTTPServerAuthCodeKey
- This is going to require an iOS app update-- the prior version isn't going to work.
* Adding Dropbox authorization and cloud storage access.
- Using Swift/Kitura credentials Dropbox authorization from
https://github.com/crspybits/CredentialsDropbox.git
- Added test cases for this
* Package.swift is now using Swift 4 format.
* Added `runTests.sh` script to make running tests easier. As part of this:
- Added `jq` to Dockerfile image for building SyncServer
- Generalized test cases and removed some to make adding other cloud storage services
and other account sign-ins easier.
- TestSuites.json is the file that describes all of the tests run by runTests.sh
* Removed unused code and related tests: NSObject+Extras.swift
Seems that changes in Swift broke this and I'm not using those methods any more.
Version 0.7.7 (12/2/17)
* Fixed issue: When doing DoneUploads for upload deletions, previously I was using the params.currentSignedInUser!.userId and not the effective user id to lookup info in the FileIndex. As a result, when sharing users did an upload deletion, the files got marked as deleted in the file index, but didn't get deleted from cloud storage.
Version 0.7.6; 11/25/17
* Added dev ops files & script -- to create application bundles for Elastic Beanstalk deployment.
* Lots of related dev ops changes (no changes to the server code itself).
Version 0.7.4; 11/9/17
* Added devops files; getting tests running on Docker.
Version 0.7.3; 10/7/17
* Added comments, log output
* Added parameter to nginx.conf to fix upload size limit bug. See
https://github.com/crspybits/SyncServerII/issues/35
Version 0.7.2; 9/19/17
* Added missing `==` overload.
Version 0.7.1; 9/12/17
* Version bump on Shared library to fix http response header issue.
Version 0.7.0; 9/8/17
* Made SSL using Kitura optional.
See https://crspybits.github.io/SyncServerII/nginx.html
Version 0.6.1; 9/2/17
* Fixed issue: Google auth code was being sent to server when an owning user account was created, but was not being converted to a refresh token and saved.
* Set logging level to DEBUG.
Version 0.6; 8/9/17-- Bug fixes
* Don't store additional creds info for Google shared users
https://github.com/crspybits/SyncServerII/issues/13
* Make sure there is at least one cloud-storage sign-in in config when server starts
https://github.com/crspybits/SyncServerII/issues/9
* Use server-side date/time for file creation dates
https://github.com/crspybits/SyncServerII/issues/4
(Also necessitated removal of date keys for requests for UploadFile, and hence an update
to the SyncServer-Shared library, to version 2.0.0).
* Refresh token not saving result to mySQL
https://github.com/crspybits/SyncServerII/issues/20