Michael Walker
513e83fa00
Clean up temporary file if tarTo raises an exception
2018-02-26 16:30:08 +00:00
Michael Walker
ddc524b588
Log an error if a DeletingFileInputStream is open at finalization
2018-02-26 14:48:18 +00:00
Michael Walker
55cb41f5b2
Use DeletingFileInputStream in tar method
2018-02-26 14:19:02 +00:00
Michael Walker
3c86eb0d52
Merge pull request #38 from overleaf/msw-disabled-projects
...
Report write-latex API 4xx errors in a friendly way to users
2018-02-07 15:03:19 +00:00
Michael Walker
1ca63e1ba1
Return a generic summary from MissingRepositoryException.getMessage
2018-02-07 14:25:04 +00:00
Michael Walker
4c237e84f5
Rename disabled project test
2018-02-07 13:27:31 +00:00
Michael Walker
25ccfe28fe
Rename protected project test
2018-02-07 13:27:19 +00:00
Michael Walker
77e3bc0d3b
Remove unused constructor
2018-02-07 13:01:41 +00:00
Michael Walker
647cf24bb6
Use a List<String> rather than hard-coding newlines
2018-02-07 10:39:26 +00:00
Michael Walker
63e28fede1
Enable the "cannot clone a protected project" test
2018-02-07 10:10:16 +00:00
Michael Walker
994ad9a933
410 is no longer "disabled"
2018-02-07 10:10:09 +00:00
Michael Walker
bd8e8688c3
Make GENERIC_REASON consistent with web messages.
2018-02-07 10:06:28 +00:00
Michael Walker
f13324134f
Give 'unauthorized' and 'missing' better names
2018-02-07 09:39:35 +00:00
Michael Walker
44d3ddd9aa
Display a more specific message for v2 projects
2018-02-06 15:06:49 +00:00
Michael Walker
3a374e0ba7
Send the MissingRepositoryException message to the client
2018-02-06 14:23:21 +00:00
Michael Walker
82c0873743
Report all 4xx from write-latex API as MissingRepositoryException
2018-02-06 14:23:21 +00:00
Michael Walker
6ae6acd826
Rename DisabledRepositoryException to MissingRepositoryException
2018-02-06 14:23:21 +00:00
Michael Walker
5e08f6f5c6
Add a test for cloning disabled projects
2018-02-05 16:11:45 +00:00
Michael Walker
20a748f14e
Explain to the user that their project is inaccessible
2018-02-05 13:35:58 +00:00
Michael Walker
8b4c29ec83
Throw an exception if the API returns 410
2018-02-05 12:16:09 +00:00
Michael Walker
9b42bfb511
Merge pull request #37 from overleaf/msw-final
...
#24 Part 6/6: additional testing
2018-01-22 09:37:12 +00:00
Michael Walker
c23650e4d4
Merge pull request #36 from overleaf/msw-file_size_config
...
#24 Part 4&5/6: file size config
2018-01-22 09:35:00 +00:00
Winston Li
90e3417aec
Add tests for UrlResourceCache content lengths
2018-01-17 09:47:31 +00:00
Winston Li
6c71c2cb97
Add ning http headers class
2018-01-17 09:47:31 +00:00
Winston Li
34e558ab63
Create noop db store and test file
2018-01-17 09:47:31 +00:00
Winston Li
4e7636c94a
Decouple http client from UrlResourceCache
2018-01-17 09:47:31 +00:00
Winston Li
ae65212f19
Create http client facade
2018-01-17 09:47:31 +00:00
Winston Li
11ee9c62a3
Update README for repoStore option
2018-01-17 09:46:40 +00:00
Michael Walker
1e4ef0cc5b
Fully implement max file size
...
- add `repoStore.maxFileSize` key to config
- use maxFileSize in ResourceCache on both header path and blob
download path
- make failures during commit less fragile
2018-01-17 09:46:40 +00:00
Michael Walker
dc93df6bc8
Merge pull request #35 from overleaf/msw-refactor_24
...
#24 Part 3/6: refactor
2018-01-17 09:37:25 +00:00
John Lees-Miller
72f8fb553c
Fix typos
2018-01-16 18:30:17 +00:00
Winston Li
6b94fcf1b4
Decouple Bridge from network, JGit from disk
2018-01-15 11:56:04 +00:00
Michael Walker
918e3d9975
Remove an unneeded import
2018-01-15 11:56:04 +00:00
Michael Walker
e437c14d72
Refactor ResourceFetcherTest
2018-01-15 11:56:04 +00:00
Michael Walker
17aff50cc9
Merge pull request #34 from overleaf/msw-file_too_big_fix
...
#24 Part 2/6: file too big fix
2018-01-15 11:45:31 +00:00
Michael Walker
1f35b6dec3
Raise an error if files exceed the max file size
2018-01-15 11:39:29 +00:00
Michael Walker
7e047042c0
Merge pull request #29 from winstonli/minor_fixes
...
#24 Part 1/6: minor fixes
2018-01-15 11:16:32 +00:00
Winston Li
806002f273
Path was static instead of final
2017-09-20 08:20:16 +01:00
Winston Li
705b88933c
Fix log message
2017-09-20 08:20:16 +01:00
Michael Mazour
3674fd47f7
Merge pull request #28 from overleaf/auth-log-fields
...
Additional log fields for unauthorized requests
2017-09-12 06:53:00 +01:00
Michael Mazour
976419b2d2
More logging fields for unauthorized requests
...
When a request requires authentication, log username, IP address, and the status code returned by the auth attempt. Previously logged projectName only.
2017-09-08 10:15:45 +01:00
Michael Mazour
a3a41640b9
Merge pull request #26 from overleaf/custom-error-page
...
Simple Error Page to Replace Default
2017-09-06 06:53:57 +01:00
hugh-obrien
d9e368ac35
Add a JSON response instead of default error page
...
Use custom error handler instead of default that leaks server info.
- Use in API context
- Use in default/web context
- Add tests
2017-09-05 13:32:23 +01:00
Winston Li
b7c3fce8a0
Merge pull request #27 from winstonli/empty_file_in_dotgit
...
Empty file in dotgit: direct response to Git Bridge Fails to Clone With IllegalStateException (#3705 )
2017-08-03 16:21:09 +01:00
Winston Li
f9307c7110
Check file size on tar input path and use stream copying instead of buffering fully
2017-08-02 21:40:00 +01:00
Winston Li
045eea8282
Add messages to precondition checks
2017-08-02 20:58:26 +01:00
Winston Li
fd743d1bf3
Fix #3705
2017-08-02 20:58:15 +01:00
Winston Li
ad687e5f58
Add failing test for #3705
2017-08-02 20:51:20 +01:00
John Lees-Miller
8e15d63a2f
Merge pull request #25 from overleaf/delete-temporary-files
...
Delete temporary files created by Tar on close
2017-07-14 21:41:54 +01:00
Michael Walker
ced34d91d4
Delete temporary files created by Tar on close
...
The SwapJob creates temporary files indirectly through Tar.bz2.zip.
These files are deleted with File.deleteOnExit, but there is no other
deletion mechanism. This means that temporary files will build up as
the git bridge runs, only being deleted when the JVM finally
terminates.
Instead, we can delete these temporary files as soon as they are no
longer needed. The files are wrapped in a FileInputStream and not
directly exposed, so we can simply delete the underlying file when the
stream is closed, as then the file is inaccessible.
2017-07-14 12:08:50 +01:00