Commit Graph

1202 Commits

Author SHA1 Message Date
Jarek Kowalski
3713bfc862 tests: added smoke test that exercises all combinations of encryption and hashing 0.5.1 2020-03-13 19:31:23 -07:00
Jarek Kowalski
34a6644dfe hotfix: kopia-0.5.0 did not properly support 256-bit hashes 2020-03-13 19:31:23 -07:00
Jarek Kowalski
159d736b2e site: added KopiaUI video link in the Getting Started 0.5.0 2020-03-07 23:06:16 -08:00
Jarek Kowalski
bc7d0fa2ce site: added homepage video that describes how to use KopiaUI 2020-03-07 23:06:16 -08:00
Jarek Kowalski
cd35e3bab5 cli: 'snapshot migrate' improvements to help with data migration
- cleaned up migration progress output
- fixed migration idempotency
- added migration of policies
- renamed --parallelism to --parallel
- improved e2e test
- do not prompt for password to source repository if persisted
2020-03-07 21:47:32 -08:00
Jarek Kowalski
d526843124 cli: fixed metadata cache size on connect/create 2020-03-07 21:47:32 -08:00
Jarek Kowalski
02ff38e7b4 site: removed dummy news post which were making netlify angry 0.5.0-rc1 2020-03-05 18:40:23 -08:00
Jarek Kowalski
1ef7caefd0 site: fixed favicons
- cleaned up kopia-flat.svg
- regenerated favicons using realfavicongenerator.net
- added missing partial HTML
2020-03-05 18:40:23 -08:00
Jarek Kowalski
6fa7da5a5f app: use KOPIA_VERSION computed in tools.mk 2020-03-05 18:40:03 -08:00
Jarek Kowalski
e6fe1aa7f3 kopia-ui: misc
- launch server on a randomized port
- added support for connecting to remote server
- embedded version info in the app and htmlui
2020-03-05 18:40:03 -08:00
Jarek Kowalski
c5cf95fdf6 cli: improved 'content verify'
Now you can quickly verify that all contents are correctly backed
by existing blob without downloading much.

You can still use '--full' to cause full download and decryption.
2020-03-05 17:33:56 -08:00
Jarek Kowalski
889f2ead59 cli: improved 'blob gc'
- do not remove blobs younger than 4h when performing blob GC,
  because they may have just been written
- parallelize deletes
- clean up console output
2020-03-05 17:33:56 -08:00
Jarek Kowalski
6f68b726a7 cli: improved 'content rewrite'
- removed confusing '--prefixed' option
- print timestamp of contents as they are rewritten
2020-03-05 17:33:56 -08:00
Jarek Kowalski
a4fad4ca5a cli: added 'blob stats' command 2020-03-05 17:33:56 -08:00
Jarek Kowalski
0dd109c208 manifest: added missing mutex on Delete() 2020-03-05 17:20:46 -08:00
Jarek Kowalski
fb181257bf cli: implemented update check, fixes #119 2020-03-04 22:06:05 -08:00
Jarek Kowalski
4b1e01b238 test: disabled TestFileStorageConcurrency on darwin until #299 is resolved 2020-03-04 21:56:17 -08:00
Nick
2c72fbd514 Remove FIO_USE_DOCKER env 2020-03-03 20:36:43 -08:00
Nick
b1e8773c1e Update tests/tools/fio/fio.go
Co-Authored-By: Julio López <julio+gh@kasten.io>
2020-03-03 20:36:43 -08:00
Nick
72aa2f2a97 Update tests/tools/fio/workload.go
Co-Authored-By: Julio López <julio+gh@kasten.io>
2020-03-03 20:36:43 -08:00
Nick
b98236a535 Use fio image from dockerhub
Changing image to ljishen/fio instead of building
an image in kopia.
2020-03-03 20:36:43 -08:00
Nick
c5d8c9a271 Using docker to wrap fio execution to add robustness tool tests to Travis
Update the fio runner to use a docker image if the appropriate environment variable is set. Docker image is built via a makefile target and used in the robustness tool tests.
2020-03-03 20:36:43 -08:00
Nick
27d61c038e Parallelizing snapshot fail test to decrease test time
Make each test case combination a sub-test, and running independently it in parallel. This gives a 3-4x speedup vs master in local testing.
2020-03-03 20:34:38 -08:00
Jarek Kowalski
3bf2bf408e moved some badges to the bottom 2020-03-02 21:51:56 -08:00
Jarek Kowalski
cc888fb76b travis: removed deployment to GH pages after switching to netlify 2020-03-02 21:51:56 -08:00
Jarek Kowalski
9198dcc98e README: added netlify badge 2020-03-02 21:51:56 -08:00
Nick
8e0167027d Use bytes buffer to capture stderr instead of reading pipe
Give a `*bytes.Buffer` to the command and let `package exec` read from the pipe into the buffer for us.

The current use of the `StderrPipe()` method was problematic; the documentation for os/exec states:

> Wait will close the pipe after seeing the command exit, so most callers need not close the pipe themselves. It is thus incorrect to call Wait before all reads from the pipe have completed. For the same reason, it is incorrect to use Run when using StderrPipe.
2020-03-02 17:04:46 -08:00
Jarek Kowalski
a47052f49f site: added 'Hosted on Netlify' to be able to qualify for their free Open Source license 2020-03-02 17:00:18 -08:00
Jarek Kowalski
d95e6a3d09 sftp: Fixed issues in SFTP provider, Fixes #216
- did not work on windows due to use of filepath which uses backslash
  instead of slash
- added support for embedding SFTP key
- fixed UI controls
- misc fixes for KopiaUI
- added progress reporting
2020-03-01 18:56:06 -08:00
Jarek Kowalski
faa7225c23 testing: better fix for ignoring ErrClosed 2020-03-01 10:53:52 -08:00
Jarek Kowalski
38862a7bf9 kopia-ui: fixed redirection to /repo not working (404) 2020-02-29 21:55:06 -08:00
Jarek Kowalski
943e38f75b kopia-ui: added UI for configuring Azure provider 2020-02-29 21:55:06 -08:00
Jarek Kowalski
d75bef7a79 crypto: ensured that we generate random nonces for all ciphertexts of non-deprecated encryption algorithms 2020-02-29 20:50:50 -08:00
Jarek Kowalski
ddd267accc crypto: deprecated crypto algorithms and replaced with better alternatives
New ciphers are using authenticated encryption with associated data
(AEAD) and per-content key derived using HMAC-SHA256:

* AES256-GCM-HMAC-SHA256
* CHACHA20-POLY1305-HMAC-SHA256

They support content IDs of arbitrary length and are quite fast:

On my 2019 MBP:

- BLAKE2B-256 + AES256-GCM-HMAC-SHA256 - 648.7 MiB / second
- BLAKE2B-256 + CHACHA20-POLY1305-HMAC-SHA256 - 597.1 MiB / second
- HMAC-SHA256 + AES256-GCM-HMAC-SHA256 351 MiB / second
- HMAC-SHA256 + CHACHA20-POLY1305-HMAC-SHA256 316.2 MiB / second

Previous ciphers had several subtle issues:

* SALSA20 encryption, used weak nonce (64 bit prefix of content ID),
  which means that for any two contents, whose IDs that have the same
  64-bit prefix, their plaintext can be decoded from the ciphertext
  alone.

* AES-{128,192,256}-CTR were not authenticated, so we were
  required to hash plaintext after decryption to validate. This is not
  recommended due to possibility of subtle timing attacks if an attacker
  controls the ciphertext.

* SALSA20-HMAC was only validating checksum and not that the ciphertext
  was for the correct content ID.

New repositories cannot be created using deprecated ciphers, but they
will still be supported for existing repositories, until at least 0.6.0.

The users are encouraged to migrate to one of new ciphers when 0.5.0 is
out.
2020-02-29 20:50:50 -08:00
Jarek Kowalski
5e1b03dcba test: ignore ErrClose when reading from stderr to fix text flake 2020-02-29 20:07:45 -08:00
Nick
835d0b259c Fix error clobbering in kopia cli runner
Error variable was being shared between c.Output and
ioutil.ReadAll. The two could race to set err, and if
Output() finishes first with an error, ReadAll could overwrite
it with nil. Fix is to delegate an independent error for
the pipe read, and fail the test if it is non-nil.
2020-02-29 13:58:10 -08:00
Jarek Kowalski
fd91186ead travis: used own retry script, since travis_retry does not work in makefile 2020-02-29 10:55:46 -08:00
Jarek Kowalski
007890ebfd travis: used own retry script, since travis_retry does not work in makefile 2020-02-29 10:46:42 -08:00
Jarek Kowalski
6d4d66621e travis: wrap setup and release steps with travis_retry to reduce flakes 2020-02-29 10:33:46 -08:00
Nick
173e18c97d Fix typo in makefile so CI can pass (upload-coverage target)
Fixing a typo in the Makefile target upload-coverage. Without fix, the target it is not found if Travis is running against a PR.
2020-02-28 18:10:10 -08:00
Prasad Ghangal
882a4e1e5b Add a way to execute S3 storage test on AWS
Create kopia bucket and user with unique ID on minio
Create AWS bucket before running tests

Signed-off-by: Prasad Ghangal <prasad.ghangal@gmail.com>
2020-02-28 06:30:39 -08:00
Jarek Kowalski
c55e53041c travis: fixed --skip-publish logic 2020-02-27 21:49:00 -08:00
Jarek Kowalski
7512f581f1 travis: checkout go.mod/go.sum at the end of travis-setup 2020-02-27 21:30:35 -08:00
Jarek Kowalski
2d214d2670 Makefile: refactored travis-release to run goreleaser first, which should avoid dirty git state 2020-02-27 21:04:57 -08:00
Jarek Kowalski
d181403284 crypto: refactored encryption, hashing and splitter into separate packages (#274)
Added some tests, deleted XSALSA20 which never worked E2E
2020-02-27 12:36:49 -08:00
Jarek Kowalski
c159569070 changed how go-bindata is installed to avoid go.mod 2020-02-26 22:54:53 -08:00
Jarek Kowalski
4aa323a0a8 go.sum: cleaned up 2020-02-26 22:40:27 -08:00
Jarek Kowalski
4ca9bee898 Makefile: print git diff before goreleaser 2020-02-26 22:22:19 -08:00
Jarek Kowalski
1b4e200836 fixed missing go.sum entry 2020-02-26 21:54:23 -08:00
Jarek Kowalski
f9359a6788 kopia-ui: disable linux snap build 2020-02-26 21:42:15 -08:00