Skip to content

v0.6.0-beta.1

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 07 Dec 16:33
v0.6.0-beta.1
befe766

This is the first beta of prvt 0.6, which contains a lot of new features, including a preview of In-browser End-to-End Encryption!

Highlights:

  • It's now possible to select a repo and unlock it using the web UI. The list of connections is stored in a config file.
  • Preview: Experimental support for "In-browser end-to-end encryption", made possible by decrypting the data directly in the browser, using code from prvt compiled to WebAssembly. This feature is considered in preview and it does not support all the features of prvt: in particular, it offers read-only access to repositories for now. Read more about in-browser E2EE.
  • The prvt add command now supports the --force flag that causes prvt to overwrite existing files at the same destination, if any. This is also available in the REST API.
  • The index is now split in multiple chunks, and when changes are made to it, only the modified parts are uploaded. This should make uploads faster and use less data, especially on connections that are slower or with higher latency. Additionally, when adding multiple files, operations on the index are batched so the index is uploaded only once at the end, rather than after every file change.
  • Repositories are now locked when accessed, so only one instance of prvt at a time can perform commands (with some exceptions). This is to improve consistency and reduce the risk of index corruption. Also added the command prvt repo lock-break for forcefully-remove locks (use this with caution).

Other new features:

  • Parameters for key derivation with Argon2 have been improved, and they can now be set manually too when adding a key. This requires a new version of the info file (v5).
  • GET /info endpoint returns information about whether a repo is selected or unlocked; the GET /repo/info route was merged into this one too.
  • New POST /repo/close route that closes any open repository.
  • New GET /rawfile endpoint that returns a file from storage as-is, without parsing or decryption. Added a POST /rawfile route as a companion, to store a file as-is.
  • Many improvements to the web interface, including better support for when prvt is running in multiple tabs.
  • Added routes in the server to manage the list of connections: saving and listing connections.
  • The index file now stores each file's SHA-256 digest and the file size too.

Changes:

  • Switched library for embedding static files in the binary from packr2 to pkger.
  • Switched JS bundler from Rollup to Webpack, to have better control.

Fixes:

  • Updated Go and JS dependencies.
  • Other fixes and improvements.