Commit Graph

288 Commits

Author SHA1 Message Date
Ellie Huxtable
cf09464d4d
chore(release): prepare for release v18.0.2 (#1775) 2024-02-26 11:37:54 +00:00
Ellie Huxtable
20f3296468
feat: support syncing aliases (#1721)
* feat: support syncing aliases

This is definitely not yet finished, but works for zsh right now.

TODO:

1. Support other shells
2. Cache the alias generation, so we don't have to do a bunch of work at
   shell init time

* correct imports

* fix clippy errors

* fix tests

* add the other shells

* support xonsh

* add delete

* update rust, then make clippy happy once more

* omfg fmt too
2024-02-15 19:07:08 +00:00
Ellie Huxtable
1464cb657a
chore(release): prepare for release v18.0.1 (#1706) 2024-02-12 08:38:23 +00:00
Ellie Huxtable
5738d06282
chore(release): prepare for release v18.0.0 (#1685) 2024-02-09 12:42:34 +00:00
Ellie Huxtable
8460210202
feat: add progress bars to sync and store init (#1684)
Replace lots of logging with some progress bars. This looks much nicer

I'd like to move it out of the atuin-client crate and into the atuin
crate. But first, I want to decouple a lot of the record moving, so it
can wait until that's done.
2024-02-08 13:34:41 +00:00
cyqsimon
318bdd8955
Add timezone configuration option & CLI overrides (#1517)
* Allow specifying a timezone in history search/list

* Fix clippy complaints

* Add a bit more comment on supporting named timezones

* Add rudimentary tests

* Ditch local timezone test

* Timezone configuration support

* Set default timezone to `local`

* `--tz` -> `--timezone`

`--tz` is kept as a visible alias
2024-02-06 15:34:03 +00:00
Ellie Huxtable
9597080825
feat: add store push (#1649)
* feat: add store push

* only push for the current host unless specified

* tidy up

* tidy up some more

* sort features
2024-01-30 13:41:01 +00:00
Conrad Ludgate
bdcb143996
chore(deps): update axum (#1637) 2024-01-28 13:33:45 +00:00
Ellie Huxtable
4b20544474
chore: use resolver 2, update editions + cargo (#1635) 2024-01-26 17:59:06 +00:00
dependabot[bot]
2e3dde64e4
chore(deps): bump argon2 from 0.5.2 to 0.5.3 (#1603)
Bumps [argon2](https://github.com/RustCrypto/password-hashes) from 0.5.2 to 0.5.3.
- [Commits](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.2...argon2-v0.5.3)

---
updated-dependencies:
- dependency-name: argon2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-22 10:00:25 +00:00
dependabot[bot]
732f882c6e
chore(deps): bump the cargo group across 1 directories with 1 update (#1591)
Bumps the cargo group with 1 update in the /. directory: [h2](https://github.com/hyperium/h2).


Updates `h2` from 0.3.22 to 0.3.24
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/v0.3.24/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.22...v0.3.24)

---
updated-dependencies:
- dependency-name: h2
  dependency-type: indirect
  dependency-group: cargo-security-group
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-19 17:40:10 +00:00
dependabot[bot]
4192fd88c2
chore(deps): bump rustix from 0.38.28 to 0.38.30 (#1566)
Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.28 to 0.38.30.
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.28...v0.38.30)

---
updated-dependencies:
- dependency-name: rustix
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 19:49:06 +00:00
Ellie Huxtable
4d41a741f0
fix(perm): set umask 077 (#1554)
This ensures no other user can read shell history data

Resolves #1250
2024-01-12 18:52:39 +00:00
dependabot[bot]
d426397ca0
chore(deps): bump hyper from 0.14.28 to 1.1.0 (#1520)
Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.28 to 1.1.0.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.28...v1.1.0)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 09:42:27 +00:00
dependabot[bot]
b881268243
chore(deps): bump ratatui from 0.24.0 to 0.25.0 (#1521)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.24.0...v0.25.0)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 09:42:06 +00:00
Ellie Huxtable
7bc6ccdd70
feat: rework record sync for improved reliability (#1478)
* feat: rework record sync for improved reliability

So, to tell a story

1. We introduced the record sync, intended to be the new algorithm to
   sync history.
2. On top of this, I added the KV store. This was intended as a simple
   test of the record sync, and to see if people wanted that sort of
   functionality
3. History remained syncing via the old means, as while it had issues it
   worked more-or-less OK. And we are aware of its flaws
4. If KV syncing worked ok, history would be moved across

KV syncing ran ok for 6mo or so, so I started to move across history.
For several weeks, I ran a local fork of Atuin + the server that synced
via records instead.

The record store maintained ordering via a linked list, which was a
mistake. It performed well in testing, but was really difficult to debug
and reason about. So when a few small sync issues occured, they took an
extremely long time to debug.

This PR is huge, which I regret. It involves replacing the "parent"
relationship that records once had (pointing to the previous record)
with a simple index (generally referred to as idx). This also means we
had to change the recordindex, which referenced "tails". Tails were the
last item in the chain.

Now that we use an "array" vs linked list, that logic was also replaced.
And is much simpler :D

Same for the queries that act on this data.

----

This isn't final - we still need to add

1. Proper server/client error handling, which has been lacking for a
   while
2. The actual history implementation on top
    This exists in a branch, just without deletions. Won't be much to
    add that, I just don't want to make this any larger than it already
    is

The _only_ caveat here is that we basically lose data synced via the old
record store. This is the KV data from before.

It hasn't been deleted or anything, just no longer hooked up. So it's
totally possible to write a migration script. I just need to do that.

* update .gitignore

* use correct endpoint

* fix for stores with length of 1

* use create/delete enum for history store

* lint, remove unneeded host_id

* remove prints

* add command to import old history

* add enable/disable switch for record sync

* add record sync to auto sync

* satisfy the almighty clippy

* remove file that I did not mean to commit

* feedback
2024-01-05 17:57:49 +00:00
Ellie Huxtable
9f79a34a9d
chore(release): prepare for release v17.2.1 (#1495) 2024-01-03 15:51:47 +00:00
Ellie Huxtable
999a98c577
chore(release): prepare for release v17.2.0 (#1492) 2024-01-03 12:46:08 +00:00
Eric Hodel
d52e576129
feat: Add TLS to atuin-server (#1457)
* Add TLS to atuin-server

atuin as a project already includes most of the dependencies necessary
for server-side TLS.  This allows `atuin server start` to use a TLS
certificate when self-hosting in order to avoid the complication of
wrapping it in a TLS-aware proxy server.

Configuration is handled similar to the metrics server with its own
struct and currently accepts only the private key and certificate file
paths.

Starting a TLS server and a TCP server are divergent because the tests
need to bind to an arbitrary port to avoid collisions across tests.  The
API to accomplish this for a TLS server is much more verbose.

* Fix clippy, fmt

* Add TLS section to self-hosting
2023-12-27 14:15:48 +00:00
Ellie Huxtable
86f50e0356
feat: add semver checking to client requests (#1456)
* feat: add semver checking to client requests

This enforces that the client and the server run the same major version
in order to sync successfully.

We're using the `Atuin-Version` http header to transfer this information

If the user is not on the same MAJOR, then they will see an error like
this

> Atuin version mismatch! In order to successfully sync, the client and the server must run the same *major* version
> Client: 17.1.0
> Server: 18.1.0
> Error: could not sync records due to version mismatch

This change means two things

1. We will now only increment major versions if there is a breaking
   change for sync
2. We can now add breaking changes to sync, for any version >17.1.0.
   Clients will fail in a meaningful way.

* lint, fmt, etc

* only check for client newer than server

* Add version header to client too
2023-12-20 09:03:04 +00:00
Conrad Ludgate
7aeea1c050
chore(deps): uuidv7 stable (#1451) 2023-12-16 19:21:04 +00:00
Conrad Ludgate
ec131c7c96
update basically everything (#1452) 2023-12-16 19:20:40 +00:00
Ellie Huxtable
da2e58fbb1
chore(release): prepare for release v17.1.0 (#1432) 2023-12-10 13:00:59 +00:00
Ellie Huxtable
839965a8d7
chore: update rusty_paseto and rusty_paserk (#1420) 2023-12-02 22:47:41 +00:00
Ellie Huxtable
1c3d6c6ce8
chore: cargo update (#1419) 2023-12-02 11:12:14 +00:00
Ellie Huxtable
e55b34b816
chore: update to sqlx 0.7.3 (#1416) 2023-11-29 09:30:34 +00:00
Ellie Huxtable
15d214e237
feat: add metrics server and http metrics (#1394)
* feat: add metrics server and http metrics

* setup metrics

* update default config

* fix tests
2023-11-16 23:18:13 +00:00
Ellie Huxtable
2959891f58
Release v17.0.1 (#1354) 2023-10-28 19:19:10 +00:00
Tobias Genannt
2066778780
Fix for breaking change in ratatui 0.24.0 (#1352) 2023-10-28 13:30:02 +01:00
Ellie Huxtable
0b22d06ad3
Prepare release v17.0.0 (#1327) 2023-10-25 18:06:59 +00:00
dependabot[bot]
ad6cae4dac
Bump semver from 1.0.18 to 1.0.20 (#1299)
Bumps [semver](https://github.com/dtolnay/semver) from 1.0.18 to 1.0.20.
- [Release notes](https://github.com/dtolnay/semver/releases)
- [Commits](https://github.com/dtolnay/semver/compare/1.0.18...1.0.20)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 15:39:47 -07:00
YummyOreo
da2221a87f
feat: copy to clipboard (#1249)
* feat: adds clipboard as a dep

* feat: add copy if you press ctl+y

* docs: add copy to clipboard to docs
2023-09-30 01:04:26 +00:00
dependabot[bot]
47ea974f54
Bump ratatui from 0.22.0 to 0.23.0 (#1221)
Bumps [ratatui](https://github.com/ratatui-org/ratatui) from 0.22.0 to 0.23.0.
- [Release notes](https://github.com/ratatui-org/ratatui/releases)
- [Changelog](https://github.com/ratatui-org/ratatui/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ratatui-org/ratatui/compare/v0.22.0...v0.23.0)

---
updated-dependencies:
- dependency-name: ratatui
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 07:59:33 +00:00
dependabot[bot]
93bb5a9609
Bump shellexpand from 2.1.2 to 3.1.0 (#1186)
Bumps [shellexpand](https://gitlab.com/ijackson/rust-shellexpand) from 2.1.2 to 3.1.0.
- [Commits](https://gitlab.com/ijackson/rust-shellexpand/compare/shellexpand/2.1.2...shellexpand-3.1.0)

---
updated-dependencies:
- dependency-name: shellexpand
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:45:08 +01:00
dependabot[bot]
8c0103dfff
Bump tower-http from 0.3.5 to 0.4.4 (#1210)
Bumps [tower-http](https://github.com/tower-rs/tower-http) from 0.3.5 to 0.4.4.
- [Release notes](https://github.com/tower-rs/tower-http/releases)
- [Commits](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.5...tower-http-0.4.4)

---
updated-dependencies:
- dependency-name: tower-http
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:44:59 +01:00
dependabot[bot]
9dba3d014b
Bump crossterm from 0.26.1 to 0.27.0 (#1222)
Bumps [crossterm](https://github.com/crossterm-rs/crossterm) from 0.26.1 to 0.27.0.
- [Release notes](https://github.com/crossterm-rs/crossterm/releases)
- [Changelog](https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossterm-rs/crossterm/compare/0.26.1...0.27.0)

---
updated-dependencies:
- dependency-name: crossterm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:44:34 +01:00
dependabot[bot]
b87159d990
Bump itertools from 0.10.5 to 0.11.0 (#1223)
Bumps [itertools](https://github.com/rust-itertools/itertools) from 0.10.5 to 0.11.0.
- [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-itertools/itertools/compare/v0.10.5...v0.11.0)

---
updated-dependencies:
- dependency-name: itertools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:44:19 +01:00
Ellie Huxtable
1f3348d789
Run cargo update (#1218) 2023-09-11 09:58:55 +01:00
Conrad Ludgate
f90c01f702
replace chrono with time (#806)
* replace chrono with time

* Fix test chrono usage

---------

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2023-09-11 09:26:05 +01:00
Conrad Ludgate
aa8e5f5c04
Update dependencies (#1181) 2023-08-18 20:45:29 +00:00
Ellie Huxtable
cd6c44cfe7
Update to ratatui 0.22 (#1168) 2023-08-14 09:59:08 +01:00
Ellie Huxtable
0d5332a87f
Prepare release v16.0.0 (#1143)
* Prepare release v16.0.0

* Remove debug output

* Fix kv dupes if the store already exists

* Add limit in frontend as well as sync backend
2023-08-07 11:18:39 +01:00
dependabot[bot]
1013246eda
Bump futures-util from 0.3.24 to 0.3.28 (#1129)
Bumps [futures-util](https://github.com/rust-lang/futures-rs) from 0.3.24 to 0.3.28.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.24...0.3.28)

---
updated-dependencies:
- dependency-name: futures-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-01 22:11:27 +01:00
Conrad Ludgate
c10ba684e0
some simple server tests (#1096)
* some simple server tests

* fmt

* logging in server test

* log server errors

* fix postgres uri

* postgres ports

* localhost again?

* Rebase fixes

---------

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2023-07-27 09:34:13 +01:00
dependabot[bot]
9c7501bbd3
Bump config from 0.13.2 to 0.13.3 (#646)
Bumps [config](https://github.com/mehcode/config-rs) from 0.13.2 to 0.13.3.
- [Release notes](https://github.com/mehcode/config-rs/releases)
- [Changelog](https://github.com/mehcode/config-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mehcode/config-rs/compare/0.13.2...0.13.3)

---
updated-dependencies:
- dependency-name: config
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 08:55:03 +01:00
dependabot[bot]
67b7452d4d
Bump h2 from 0.3.14 to 0.3.17 (#873)
Bumps [h2](https://github.com/hyperium/h2) from 0.3.14 to 0.3.17.
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.14...v0.3.17)

---
updated-dependencies:
- dependency-name: h2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 08:54:40 +01:00
dependabot[bot]
f22c1375a6
Bump indicatif from 0.17.3 to 0.17.5 (#1050)
Bumps [indicatif](https://github.com/console-rs/indicatif) from 0.17.3 to 0.17.5.
- [Release notes](https://github.com/console-rs/indicatif/releases)
- [Commits](https://github.com/console-rs/indicatif/compare/0.17.3...0.17.5)

---
updated-dependencies:
- dependency-name: indicatif
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 08:54:06 +01:00
dependabot[bot]
d151f8fd6d
Bump serde_json from 1.0.86 to 1.0.99 (#1075)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.86 to 1.0.99.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.86...v1.0.99)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 08:53:55 +01:00
dependabot[bot]
c0e85756dd
Bump colored from 2.0.0 to 2.0.4 (#1110)
Bumps [colored](https://github.com/mackwic/colored) from 2.0.0 to 2.0.4.
- [Release notes](https://github.com/mackwic/colored/releases)
- [Changelog](https://github.com/colored-rs/colored/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mackwic/colored/compare/v2.0.0...v2.0.4)

---
updated-dependencies:
- dependency-name: colored
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-27 08:52:45 +01:00
Ellie Huxtable
f3e707542c
Unvendor ratatui (#1101) 2023-07-17 23:16:37 +01:00
Ellie Huxtable
97e24d0d41
Add new sync (#1093)
* Add record migration

* Add database functions for inserting history

No real tests yet :( I would like to avoid running postgres lol

* Add index handler, use UUIDs not strings

* Fix a bunch of tests, remove Option<Uuid>

* Add tests, all passing

* Working upload sync

* Record downloading works

* Sync download works

* Don't waste requests

* Use a page size for uploads, make it variable later

* Aaaaaand they're encrypted now too

* Add cek

* Allow reading tail across hosts

* Revert "Allow reading tail across hosts"

Not like that

This reverts commit 7b0c72e7e0.

* Handle multiple shards properly

* format

* Format and make clippy happy

* use some fancy types (#1098)

* use some fancy types

* fmt

* Goodbye horrible tuple

* Update atuin-server-postgres/migrations/20230623070418_records.sql

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>

* fmt

* Sort tests too because time sucks

* fix features

---------

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2023-07-14 20:44:08 +01:00
dependabot[bot]
abccab0790
Bump regex from 1.7.2 to 1.9.1 (#1094)
Bumps [regex](https://github.com/rust-lang/regex) from 1.7.2 to 1.9.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.7.2...1.9.1)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 19:41:20 +01:00
Conrad Ludgate
6c53242b64
record encryption (#1058)
* record encryption

* move paserk impl

* implicit assertions

* move wrapped cek

* add another test

* use host

* undo stray change

* more tests and docs

* fmt

* Update atuin-client/src/record/encryption.rs

Co-authored-by: Matteo Martellini <matteo@mercxry.me>

* Update atuin-client/src/record/encryption.rs

Co-authored-by: Matteo Martellini <matteo@mercxry.me>

* typo

---------

Co-authored-by: Matteo Martellini <matteo@mercxry.me>
2023-06-26 07:52:37 +01:00
Ellie Huxtable
9558fec211
Add RecordIndex data structure (#1059)
* Add RecordIndex data structure

This allows us to compare two sets of record stores, and return a list
of diffs.

With these diffs, we should be able to sync the two stores

* Remove server handler, will follow up with this

* Make clippy happy

* Add tests and docs for diffs in both directions

* Update atuin-common/src/record.rs

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>

---------

Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
2023-06-19 09:02:15 +01:00
Conrad Ludgate
b8b57c86af
remove rmp-serde (#1057)
* remove rmp-serde

* use version info
2023-06-18 12:33:55 +01:00
Vlad Stepanov
4077c33adf
Builder interface for History objects (#933)
* [feature] store env variables in History records

WIP: remove `HistoryWithoutDelete`, add some docstrings, tests

* Create History objects through builders.

Assure in compile-time that all required fields
are set for the given construction scenario

* (from #882) split Cmd::run into subfns

* Update `History` doc

* remove rmp-serde from history

* update warning

---------

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-06-15 10:29:40 +00:00
Ellie Huxtable
ae1709dafd
Key values (#1038)
* wip

* Start testing

* Store host IDs, not hostnames

Why? Hostnames can change a lot, and therefore host filtering can be
funky. Really, all we want is a unique ID per machine + do not care what
it might be.

* Mostly just write a fuckload of tests

* Add a v0 kv store I can push to

* Appending works

* Add next() and iterate, test the pointer chain

* Fix sig

* Make clippy happy and thaw the ICE

* Fix tests'

* Fix tests

* typed builder and cleaner db trait

---------

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-06-14 21:18:24 +01:00
J. Emiliano Deustua
79f7b1d81c
Fix --delete-it-all and --delete commands (#913)
* Add `delete_at` is null condition during search

Since entries are searched everytime a delete process ends, the
--delete-it-all command will enter an infinite loop if searching the
whole history.

* Remove command blanking

Command blanking may violate the `unique(timestamp, cwd, command)`
condition.

* Overwrite command with random string when deleting

* Add rand dependency to client crate

---------

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2023-06-13 07:43:06 +00:00
dependabot[bot]
b231b82bdd
Bump uuid from 1.2.1 to 1.3.4 (#1046)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.2.1 to 1.3.4.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/1.2.1...1.3.4)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-13 08:39:31 +01:00
Conrad Ludgate
8655c93853
refactor server to allow pluggable db and tracing (#1036)
* refactor server to allow pluggable db and tracing

* clean up

* fix descriptions

* remove dependencies
2023-06-12 09:04:35 +01:00
Ellie Huxtable
9e3fa8b88a
Release v15.0.0 (#995)
* Release v15.0.0

* Draft post

* Update contributors
2023-05-28 19:39:45 +01:00
Ellie Huxtable
d2240e1163
Allow server configured page size (#994)
* Allow server configured page size

* Backwards compat via semver checks

* Correct header name
2023-05-21 15:21:51 +00:00
Conrad Ludgate
20845a5cf5
fix broken pipe on history list (#927)
* fix #626

* slightly refactor
2023-05-01 22:31:25 -04:00
Conrad Ludgate
c7d89c1703
chore: uuhhhhhh crypto lol (#805)
* chore: uuhhhhhh crypto lol

* remove dead code

* fix key decoding

* use inplace encryption
2023-04-17 21:12:02 +01:00
Ellie Huxtable
7c079070c5
Release v14.0.1 (#883) 2023-04-16 11:25:48 +00:00
Vladislav Stepanov
c05d285042
Workspace reorder (#868)
* Try different workspace structure

Move main crate (atuin) to be on the same level with other crates in
this workspace

* extract common dependencies to the workspace definition

* fix base64 v0.21 deprecation warning

* questionable: update deps & fix chrono deprecations

possible panic sites are unchanged, they're just more visible now

* Revert "questionable: update deps & fix chrono deprecations"

This reverts commit 993e60f8de.
2023-04-14 20:18:58 +01:00
Ellie Huxtable
03dd3ddf8b
Switch to uuidv7 (#864)
* Add uuid_v7

* Actually use the new uuid

* Add a test to ensure all uuids are unique, even in a tight loop

* Make clippy happy
2023-04-11 16:26:16 +01:00
Ellie Huxtable
4e4fdb9f8e
Release Atuin v14 (#836)
* Bump versions

* Write release notes

* add link
2023-04-01 18:17:38 +01:00
Ellie Huxtable
a515b06bcb
Vendor ratatui temporarily (#835)
* Vendor ratatui temporarily

Once https://github.com/tui-rs-revival/ratatui/pull/114 has been merged,
we can undo this! But otherwise we can't publish to crates.io with a git
dependency.

* make tests pass

* Shush.

* these literally just fail in nix, nowhere else

idk how to work with nix properly, and they're also not our tests
2023-03-31 22:57:37 +01:00
Ellie Huxtable
0d16a113c5
Add atuin status (#830)
Useful for debugging, checking the state of things, and for if you
forget your username!
2023-03-30 06:45:49 +01:00
Conrad Ludgate
bb7f00dbef
chore: use fork of skim (#803)
* use fuzzy-matcher instead of skim

switch to a search-engine abstraction

* fmt

* fix deprecated warnings
2023-03-26 15:47:38 +01:00
Patrick Decat
13ce5f746c
feat: add an inline view mode (#648)
* add inline viewport

* Add inline_height setting. Zero disables inline mode (the default)
2023-03-25 17:27:20 +00:00
Conrad Ludgate
ba1d615f5e
chore: remove tui vendoring (#804) 2023-03-23 09:19:29 +00:00
Conrad Ludgate
edcd477153
skim-demo (#695)
* skim-demo

* skim some more

* Weight first word match higher (#712)

* some improvements

* make skim opt-in

---------

Co-authored-by: Frank Hamand <frankhamand@gmail.com>
2023-03-19 20:49:57 +00:00
Ellie Huxtable
b978f9a4de
Add register notification webhook (#764)
I find it super motivating when people use my stuff, so this makes it
_even easier_ to know when someone new signs up!
2023-03-07 22:09:19 +00:00
Ellie Huxtable
e4fde80acc
Patch release v13.0.1 (#741)
* Patch release v13.0.1

* Update blog post
2023-02-28 21:44:39 +00:00
Ellie Huxtable
fe5f728aa6
Release v13 (#727)
* Write release blog post

* Bump versions

* Update contributors
2023-02-26 21:22:29 +00:00
Johannes Baiter
5cb43772dc
Add history_filter cfg to exclude commands from history (#515) (#716)
Adds a new `history_filter` setting through which users can specify a
list of regular expressions that match commands that should not be
recorded in the history.
2023-02-14 07:14:05 +00:00
dependabot[bot]
2d62499619
Bump bumpalo from 3.11.0 to 3.12.0 (#668)
Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/fitzgen/bumpalo/releases)
- [Changelog](https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fitzgen/bumpalo/compare/3.11.0...3.12.0)

---
updated-dependencies:
- dependency-name: bumpalo
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 19:30:35 +00:00
dependabot[bot]
dbbc904a3c
Bump tokio from 1.21.2 to 1.25.0 (#679)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.21.2 to 1.25.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.21.2...tokio-1.25.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 19:30:15 +00:00
Conrad Ludgate
deb7c19093
stats (#707) 2023-02-10 18:58:02 +00:00
Ellie Huxtable
2672f78dda
make update_needed check lazy (#706) 2023-02-10 18:14:48 +00:00
Conrad Ludgate
edda1b741a
crossterm support (#331)
* crossterm v2

* patch crossterm

* fix-version

* no more tui dependency

* lints
2023-02-10 17:25:43 +00:00
Conrad Ludgate
0acdb99eb3
axum6 with typesafe state (#674) 2023-02-10 09:45:20 +00:00
dependabot[bot]
ec24437735
Bump fs-err from 2.8.1 to 2.9.0 (#604)
Bumps [fs-err](https://github.com/andrewhickman/fs-err) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/andrewhickman/fs-err/releases)
- [Changelog](https://github.com/andrewhickman/fs-err/blob/main/CHANGELOG.md)
- [Commits](https://github.com/andrewhickman/fs-err/compare/2.8.1...2.9.0)

---
updated-dependencies:
- dependency-name: fs-err
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-10 09:34:50 +00:00
Conrad Ludgate
5611bc59f5
display mnemonic key (#694) 2023-02-06 19:22:58 +00:00
Baptiste
893a395f12
feat(history): Add new flag to allow custom output format (#662)
* feat(history): Add new flag to allow custom output format

* more efficient formatting

* add user and host

* docs

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-01-26 10:57:52 +00:00
Patrick Decat
ed394afa82
Allow overriding filter and search modes from CLI (#635)
* Allow overriding filter and search modes from CLI arguments

* Use session filter mode for bash up key binding

* We precisely do not want to add quotes here so that all arguments are properly passed

* Add --shell-up-key-binding hidden command argument and filter_mode_shell_up_key_binding configuration option to allow customizing the filter mode used when atuin is invoked from a shell up-key binding

* Correct up binding for zsh

Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
2022-12-18 18:26:09 +00:00
dependabot[bot]
d1e29cbcae
Bump base64 from 0.13.0 to 0.20.0 (#641)
Bumps [base64](https://github.com/marshallpierce/rust-base64) from 0.13.0 to 0.20.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases)
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.13.0...v0.20.0)

---
updated-dependencies:
- dependency-name: base64
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-18 17:53:36 +00:00
Ellie Huxtable
4c6a287f4d
Switch to using ATUIN_LOG instead of RUST_LOG (#642)
* Switch to using ATUIN_LOG instead of RUST_LOG

* Stop clippy complaining

* I should know better - clippy is never happy :(
2022-12-16 18:37:45 +00:00
dependabot[bot]
2b7ecabec2
Bump tracing from 0.1.36 to 0.1.37 (#563)
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.36 to 0.1.37.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.36...tracing-0.1.37)

---
updated-dependencies:
- dependency-name: tracing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-06 19:03:06 +00:00
dependabot[bot]
a1c09c09d7
Bump clap_complete from 4.0.2 to 4.0.3 (#582)
Bumps [clap_complete](https://github.com/clap-rs/clap) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.0.2...clap_complete-v4.0.3)

---
updated-dependencies:
- dependency-name: clap_complete
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-06 18:21:40 +00:00
dependabot[bot]
f2fe12ad27
Bump tracing-subscriber from 0.3.15 to 0.3.16 (#567)
Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.15 to 0.3.16.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.15...tracing-subscriber-0.3.16)

---
updated-dependencies:
- dependency-name: tracing-subscriber
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-06 18:21:31 +00:00
dependabot[bot]
0fe315f55f
Bump reqwest from 0.11.11 to 0.11.12 (#565)
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.11 to 0.11.12.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.11...v0.11.12)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-06 18:21:23 +00:00
dependabot[bot]
1ecb7edee9
Bump tokio from 1.21.1 to 1.21.2 (#564)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.21.1 to 1.21.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.21.1...tokio-1.21.2)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-06 18:21:08 +00:00
Ellie Huxtable
f38ef12581
Release v12 (#599)
* Release v12

* Add new contributors
2022-11-06 15:30:21 +00:00
Benjamin Vergnaud
8b9aae7076
docs: add more details about date parsing in the stats command (#579)
* docs: add more details about date parsing in the stats command

* chore: Replace chrono-english crate with interim
2022-10-21 20:21:14 +01:00
dependabot[bot]
2dd9f2f9f5
Bump clap from 4.0.15 to 4.0.18 (#578)
Bumps [clap](https://github.com/clap-rs/clap) from 4.0.15 to 4.0.18.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.0.15...v4.0.18)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-21 06:27:55 +00:00
dependabot[bot]
540aa79054
Bump async-trait from 0.1.57 to 0.1.58 (#575)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.57 to 0.1.58.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.57...0.1.58)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-19 08:39:52 +01:00
wpbrz
1a74a50879
Configure reqwest to use native platform certs (#574) 2022-10-19 07:39:31 +00:00