Simon Detheridge
7b6299e05a
Update GcsPersistor range unit test
2020-06-09 13:55:03 +01:00
Simon Detheridge
5d9f78322d
Don't increment range end when passing to GCS backend
2020-06-09 10:01:47 +01:00
Simon Detheridge
0027d27473
Use latest version of gcs server for tests
2020-06-09 10:01:20 +01:00
Simon Detheridge
b37f97e2e3
Pin fake-gcs to 1.18
2020-06-03 10:52:10 +01:00
Simon Detheridge
06e7c6f22a
npm audit fix
2020-06-03 10:08:45 +01:00
Simon Detheridge
37e3531cc9
Upgrade Node to 12.18.0
2020-06-03 09:59:54 +01:00
Miguel Serrano
e014aeb100
Fixed regular expression to insert/delete files not supporting templates api
2020-05-26 17:21:21 +02:00
Simon Detheridge
3637cd70ae
Add support for redirecting to signed URLs
2020-04-15 12:22:54 +01:00
Simon Detheridge
2b9b165d72
Merge pull request #114 from overleaf/spd-fastcrc
...
Add fast-crc32c library
2020-04-03 17:12:03 +01:00
Simon Detheridge
256cebf7a7
Add fast-crc32c library
2020-04-03 17:06:41 +01:00
Eric Mc Sween
003d54e8f0
Fix error handler returning two responses
...
The error handler mistakenly sent two responses on error, the first
being a 200.
2020-04-03 11:57:33 -04:00
Simon Detheridge
13ab7b5ca1
Fix unit tests for pipeline changes
2020-04-02 16:49:45 +01:00
Simon Detheridge
114883a9e9
Ensure streams are always drained on close or error
2020-04-02 15:56:23 +01:00
Simon Detheridge
ccf5f8b9e8
Add acceptance test for leaked sockets on aborted connections
2020-04-02 15:56:19 +01:00
Simon Detheridge
cce4049153
Merge pull request #112 from overleaf/spd-more-stream-destruction
...
Destroy download streams on close
2020-03-31 20:29:20 +01:00
Simon Detheridge
ec94a0692a
Merge pull request #111 from overleaf/spd-no-extra-deletes
...
Only delete the converted-cache folder if conversions are enabled
2020-03-31 20:29:02 +01:00
Simon Detheridge
383ea4e831
Merge pull request #110 from overleaf/msm-update-deps
...
Update dependencies
2020-03-31 20:28:42 +01:00
Simon Detheridge
60ede0bf46
Find more ways to destroy streams
2020-03-31 17:00:39 +01:00
Simon Detheridge
dceef85ccb
Update app/js/FileHandler.js
...
Co-Authored-By: Jakob Ackermann <das7pad@outlook.com>
2020-03-31 16:03:38 +01:00
Simon Detheridge
4489670497
Only delete the converted-cache folder if conversions are enabled
2020-03-31 15:38:42 +01:00
Simon Detheridge
f440cec8ec
Check if streams are already destroyed before destroying
2020-03-31 11:07:31 +01:00
Simon Detheridge
5fadafaf96
Destroy streams handled by getReadyPipeline on error
2020-03-30 17:14:46 +01:00
Simon Detheridge
87b8f8e194
Destroy file-download stream on error
2020-03-30 17:13:40 +01:00
mserranom
70e4dd9fde
updated sinon, mocha
2020-03-30 16:15:21 +02:00
mserranom
a067198619
updated minor and patch dependencies
2020-03-30 16:05:25 +02:00
Simon Detheridge
4cb4d450be
Call end() when handing ERR_STREAM_PREMATURE_CLOSE
2020-03-30 15:03:09 +01:00
Simon Detheridge
64562dffb0
eslint-disable => eslint-disable-next-line
2020-03-26 22:07:37 +00:00
Simon Detheridge
a1ae68f6b5
Tidy up 'getReadyPipeline'
2020-03-26 16:57:55 +00:00
Simon Detheridge
1f037ef653
Catch errors from pipeline and stream when waiting for streams to be readable
2020-03-26 16:57:55 +00:00
Simon Detheridge
238d96ed44
Fail acceptance tests on unhandled promise rejection
2020-03-26 16:57:55 +00:00
Simon Detheridge
7e45a82c35
Use autodestroy on Transform stream
2020-03-26 15:09:56 +00:00
Simon Detheridge
82599bce67
Merge pull request #105 from overleaf/jpa-logger-1-9-1
...
[misc] bump logger-sharelatex to 1.9.1
2020-03-26 10:31:33 +00:00
Simon Detheridge
d073fe75ca
Use single pipeline when calculating md5
2020-03-25 16:59:51 +00:00
Jakob Ackermann
2ce3c8f97e
[misc] bump logger-sharelatex to 1.9.1
2020-03-23 16:18:07 +01:00
Simon Detheridge
65f19346f0
Fix fallback to custom s3 buckets
2020-03-19 11:10:31 +00:00
Simon Detheridge
cb4bdd99f4
Use an ISODate for deleted file names
2020-03-18 20:19:12 +00:00
Simon Detheridge
9d32d4ec16
Don't modify 'opts' parameter
2020-03-16 15:57:37 +00:00
Simon Detheridge
b37c52fc3a
Make GCS delete concurrency configurable
2020-03-16 15:54:05 +00:00
Simon Detheridge
9b658dda18
Copy-on-delete before unlocking
2020-03-16 15:53:45 +00:00
Simon Detheridge
06c4c0f74f
Fix incorrect key when deleting projects
2020-03-16 11:35:01 +00:00
Simon Detheridge
9f74aac1a0
Add acceptance tests for directory deletion
2020-03-16 11:34:45 +00:00
Simon Detheridge
ce52f8aa60
Update FSPersistor deleteDirectory behaviour to match S3 and GCS
2020-03-16 11:33:51 +00:00
Simon Detheridge
47e96a4d94
Add endpoint to delete a project
...
Needs acceptance tests
2020-03-14 14:56:29 +00:00
Simon Detheridge
fc80aa3954
Move directory key validation into FileHandler
2020-03-14 14:31:30 +00:00
Simon Detheridge
58db14456a
Add timestamp to files in deleted bucket
2020-03-14 14:11:17 +00:00
Simon Detheridge
edf1ce1f7e
Delete files from a directory in parallel
2020-03-14 14:02:58 +00:00
Simon Detheridge
183cb0179a
Add support to GCS persistor for unlocking files and copying on delete
2020-03-13 16:18:45 +00:00
Simon Detheridge
28c3fe4a56
Validate key names when deleting directory with a configurable regex
2020-03-10 17:54:09 +00:00
Simon Detheridge
2509b51883
Add optional gcs config to override gcs settings (for fake gcs server)
2020-03-05 17:23:47 +00:00
Simon Detheridge
eb93ae4b10
Use Bucket.deleteFiles to delete directory contents, instead of iterating
2020-03-05 14:12:15 +00:00
Simon Detheridge
460dd96b17
Cosmetic clean-up of GCS Persistor & tests
2020-03-05 13:45:46 +00:00
Simon Detheridge
3bb956b38e
Use http for the fake GCS server
2020-03-04 17:01:20 +00:00
Simon Detheridge
30114cd79b
Remove unnecessary try/catch around 'createReadStream'
2020-03-04 16:38:05 +00:00
Simon Detheridge
a7198764cb
Improve/add some comments for clarity
2020-03-04 16:25:11 +00:00
Simon Detheridge
def383574e
Simplify getMeteredStream to record metric directly
2020-03-04 16:17:36 +00:00
Simon Detheridge
76243fd75a
'bucket' -> 'bucketName' in GCS Persistor
2020-03-04 16:04:26 +00:00
Simon Detheridge
6979b8638a
Add 'Buffer' global for GCS unit tests
2020-03-04 15:42:16 +00:00
Simon Detheridge
12274e1427
Add unit tests for GCS Persistor
2020-03-04 15:38:18 +00:00
Simon Detheridge
e58284aefe
Move base64/hex methods to PersistorHelper
...
Also add some null-safety checks
2020-03-04 15:38:18 +00:00
Simon Detheridge
d9c9d74994
Remove unnecessary test for S3 file deletion
...
S3 does not throw a not-found error when deleting a file that does not exist
2020-03-04 15:38:18 +00:00
Simon Detheridge
e2f3dd23c9
Switch back to official fake-gcs-server image
2020-03-04 15:38:18 +00:00
Simon Detheridge
9dddf25209
Add note on gcs config to config file
2020-03-04 15:38:18 +00:00
Simon Detheridge
2cfab8d313
Add GCS-specific acceptance tests
2020-03-04 15:38:16 +00:00
Simon Detheridge
366ce97169
Add GCS Persistor
2020-03-04 15:09:14 +00:00
Simon Detheridge
e6cf0687a9
Add gcs client library
2020-03-04 15:09:14 +00:00
Simon Detheridge
7292d93dab
Add fake GCS server, and fix health checks
2020-03-04 15:08:19 +00:00
Simon Detheridge
d06b74b0f8
Bump metrics to 2.5.0
2020-03-04 10:55:01 +00:00
Simon Detheridge
9807568de8
Add missing 'process' global for settings tests
2020-03-04 10:08:31 +00:00
Simon Detheridge
a3782422b7
Upgrade to node 12
2020-03-04 10:06:18 +00:00
Simon Detheridge
8905d393f7
Merge pull request #95 from overleaf/jpa-test-cleanup
...
[misc] test cleanup
2020-03-04 10:01:39 +00:00
Simon Detheridge
b5e4345855
Merge pull request #96 from overleaf/jpa-dependencies-cleanup
...
[misc] dependencies cleanup
2020-03-04 10:00:56 +00:00
Simon Detheridge
467af9885a
Merge pull request #97 from overleaf/jpa-3rd-party-s3-via-env
...
[config] add support for third party s3 which uses path-style buckets
2020-03-04 09:59:48 +00:00
Simon Detheridge
62b2aa8f02
Merge pull request #98 from overleaf/jpa-promisify-filehandler
...
[misc] promisify FileHandler and remove dependency on async
2020-03-04 09:59:15 +00:00
Jakob Ackermann
2b15729658
[misc] promisify FileHandler and remove dependency on async
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-03-02 18:23:17 +01:00
Jakob Ackermann
ada6ac0764
[misc] revert eslint rules
2020-03-02 18:12:55 +01:00
Jakob Ackermann
1276fb426a
[misc] bump buildscript version to 1.3.6
2020-03-02 17:50:45 +01:00
Simon Detheridge
0312b00150
Fix prettier task
2020-03-02 16:31:35 +00:00
Jakob Ackermann
4b7c6fafd2
[misc] drop unused dependency pngcrush
2020-03-02 17:11:56 +01:00
Jakob Ackermann
3c61e53918
[misc] move mocha to the devDependencies
2020-03-02 17:11:39 +01:00
Jakob Ackermann
6f27f7a1bf
[misc] drop the /heapdump route and related heapdump package
2020-03-02 17:09:35 +01:00
Jakob Ackermann
32557ab1d7
[SafeExec] replace _.once with lodash.once
2020-03-02 17:08:42 +01:00
Jakob Ackermann
0db4a17a14
[HealthCheckController] use fs.copyFile instead of fs-extra.copy
...
the fs-extra method has a HUGE overhead of JS code and also syscalls for
no particular benefit in this case: just copy the tiny.pdf file.
Here is an overview of the major operations: paths are relative to
https://github.com/jprichardson/node-fs-extra/blob/1.0.0
We start in /lib/copy/copy.js
- sys: check that the source file exists
- sys: check that the source file has an existing parent directory?!
Continue in /lib/copy/ncp.js
- sys: more stat calls on both source and dest to determine permissions
- read/write streams to pipe the file content through the process
- sys: chmod on the destination to match the source permissions
What we actually need is a call to the binding and let node/the os
figure out the best way to copy the contents.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-03-02 17:02:35 +01:00
Simon Detheridge
c13d7f4197
Bump aws-sdk version in package.json
2020-03-02 11:18:06 +00:00
Brian Gough
ebabe52632
fix settings unit test
2020-02-28 15:27:29 +00:00
Brian Gough
e3011b2521
run npm update
2020-02-28 14:51:57 +00:00
Jakob Ackermann
b4e3d7de62
[config] add support for third party s3 which uses path-style buckets
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-02-28 12:48:52 +01:00
Jakob Ackermann
2b9d0868c5
[misc] test/acceptance: retrieve ingress metrics just before using it
...
The upload request can bump the ingress metric.
The content hash validation might require a full download
in case the ETag field of the upload response is not a md5 sum.
2020-02-28 12:27:06 +01:00
Jakob Ackermann
516102e6fb
[misc] test/acceptance: do not hard code fake credentials
2020-02-28 12:26:46 +01:00
Jakob Ackermann
847f124d7b
[misc] test/acceptance: skip the shutdown in case we did not start yet
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-02-28 12:26:24 +01:00
Jakob Ackermann
6589aa6ae0
[misc] test/acceptance: harden the startup check for s3
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-02-28 12:26:24 +01:00
Jakob Ackermann
94b8a7f891
[misc] test/unit: KeybuilderTests: use a unique suite label
2020-02-28 12:26:23 +01:00
Jakob Ackermann
54e3b57772
[misc] test/unit: add missing globals that are lazy loaded
2020-02-28 12:26:23 +01:00
Jakob Ackermann
7920570dd8
[misc] test/unit: add missing require stubs for metrics and settings
2020-02-28 12:26:22 +01:00
Simon Detheridge
6e19a650d2
Write to error log on unhandled rejection/exception
2020-02-27 10:33:48 +00:00
Simon Detheridge
492f8abc9f
Update config/settings.defaults.coffee
...
Co-Authored-By: Jakob Ackermann <das7pad@outlook.com>
2020-02-18 10:24:29 +00:00
Simon Detheridge
8acc9ef0ae
Make S3 partSize a setting
2020-02-17 14:06:15 +00:00
Simon Detheridge
7c4bf97a7f
Avoid fetching file a second time when source md5 can't be fetched
2020-02-17 14:06:05 +00:00
Simon Detheridge
9e7eec7a19
Add acceptance test for large files
2020-02-17 14:05:56 +00:00
Simon Detheridge
2f2a819b74
Re-fetch file to calculate md5 if etag is not in correct format
2020-02-17 14:05:43 +00:00
Simon Detheridge
5adfb3e2c0
Use large upload chunks
2020-02-17 14:05:31 +00:00