Commit graph

50 commits

Author SHA1 Message Date
Dustin J. Mitchell
087769146e Centralize API for working set to a single struct
Rather than allow addressing tasks either by working set ID or uuid,
with attendant performance issues, this moves the API for the working
set to a single struct that just serves as a 1-1 mapping of indexes to
UUIDs.  It's up to the caller to use this information.
2021-01-09 23:42:27 +00:00
Dustin J. Mitchell
45d3e38c63 Always pass Uuids by value
Rust handles this well.  Fixes #125.
2021-01-09 22:09:06 +00:00
Dustin J. Mitchell
5e92770eb8 Automatically rebuild working set after sync 2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
dc2df10158 Control whether to renumber the working set when rebuilding it 2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
b62370c150 Rename replica.gc to replica.rebuild_working_set
The command-line operation is still `gc`, but we'll break that down into
finer pieces in the replica.
2021-01-02 13:23:48 -05:00
Dustin J. Mitchell
31378cb8d4 Include client key in a header, not the URL
Since this value is used both for identification and authentication, it
shouldn't be in the URL where it might be logged or otherwise
discovered.
2020-12-28 23:08:42 +00:00
Dustin J. Mitchell
92d629522b rename client id -> client key 2020-12-28 21:32:59 +00:00
Dustin J. Mitchell
a8d45c67c6 Encrypt content sent to the server
This implements client-side encryption, so that users' task information
is not availble to the server (or to anyone who does not have the
`encryption_secret`).
2020-12-27 18:51:41 +00:00
Dustin J. Mitchell
00f548c713 implement generic report generation 2020-12-26 04:11:20 +00:00
Dustin J. Mitchell
e7b7e88bc9 convert unrwap to expect and add testing 2020-12-25 02:52:49 +00:00
Dustin J. Mitchell
8a10fa8335 fix some more pedantic lints 2020-12-25 02:43:51 +00:00
Dustin J. Mitchell
8989b0d2e3 Fix clippy warnings and make them all errors 2020-12-24 17:39:49 +00:00
Dustin J. Mitchell
28c5fb2268 Add support for task tags
Based on properties named `tag.<tag>` as already documented
2020-12-21 20:43:09 +00:00
Dustin J. Mitchell
2c579b9f01 Switch to a command-line API closer to TaskWarrior
* Use a parser (rather than clap) to process the command line
* Outline some generic support for filtering, reporting, modifying, etc.
* Break argument parsing strictly from invocation, to allow independent testing
2020-12-19 16:40:09 -05:00
Dustin J. Mitchell
de03209285 bits of docs 2020-11-29 21:26:39 -05:00
Dustin J. Mitchell
451690afb7 v0.2.0 2020-11-29 20:59:09 -05:00
Dustin J. Mitchell
95ada3d2bb Add metadata for the taskchampion crate 2020-11-29 20:35:25 -05:00
Dustin J. Mitchell
0a1ee470f7 use log and env_logger, and add some logging around sync 2020-11-29 18:18:28 -05:00
Dustin J. Mitchell
1b7dbd0715 remove delete_task from the Replica API so it's not misused 2020-11-29 14:26:47 -05:00
Dustin J. Mitchell
42d988d601 fix clippy warnings 2020-11-29 14:05:51 -05:00
Dustin J. Mitchell
47cd051bd7
Merge pull request #71 from djmitche/issue7
Add start and stop commands
2020-11-28 23:19:21 -05:00
Dustin J. Mitchell
0e4ab4b88f Add start and stop commands 2020-11-28 23:12:37 -05:00
Dustin J. Mitchell
8af7ba286d Factor replica and sync configuration into simple owned structs 2020-11-28 16:57:32 -05:00
Dustin J. Mitchell
091f5b5b17 use semver ranges for dependencies 2020-11-28 15:13:30 -05:00
Dustin J. Mitchell
1a92613ddc take configuration in env vars temporarily 2020-11-28 10:02:17 -05:00
Dustin J. Mitchell
2a37f090a5 Add RemoteServer to the taskchampion crate 2020-11-27 20:15:17 -05:00
Dustin J. Mitchell
d46f20e75a adjust visibility, comment 2020-11-27 18:16:42 -05:00
Dustin J. Mitchell
0f98727d9b replica.new_task now invents its own uuid 2020-11-26 22:44:13 -05:00
Dustin J. Mitchell
2064057688 fix clippy warnings
I don't know why these are "intermittent"
2020-11-26 22:36:31 -05:00
Dustin J. Mitchell
26b17c6dbc Revert "add signing support"
It turns out we don't need this.

This reverts commit e92fc0628b.
2020-11-26 22:34:20 -05:00
Dustin J. Mitchell
3537db9bbe implement a local sync server 2020-11-25 19:13:32 -05:00
Dustin J. Mitchell
8f7e2e2790 add a 'task sync' command using a copy of the test server 2020-11-25 18:07:04 -05:00
Dustin J. Mitchell
a81c84d7c7 refactor sync to new model 2020-11-25 17:58:03 -05:00
Dustin J. Mitchell
e92fc0628b add signing support 2020-11-25 17:58:02 -05:00
Dustin J. Mitchell
75edd2773f make server operations fallible 2020-11-25 17:53:23 -05:00
Dustin J. Mitchell
549d3b9f6d refactor taskchampion::server into a module with submodules 2020-11-25 17:53:23 -05:00
Dustin J. Mitchell
fc4fcc9e5d Remove remove_from_working_set method.
Items are only removed from the working set when it is rebuilt, so this
method is unnecessary.
2020-11-24 13:11:40 -05:00
Dustin J. Mitchell
ca70d2c914 add cargo clippy to CI 2020-11-24 13:02:14 -05:00
Dustin J. Mitchell
2232aa8083
Merge pull request #47 from djmitche/issue43
Update handling of working set and show id's more widely
2020-11-24 12:19:47 -05:00
Dustin J. Mitchell
1c5e9b009b Add Replica::get_working_set_index and use it
This is probably ridiculously inefficient, as it will load the working
set for each and every task listed.  Optimize later!
2020-11-24 12:05:30 -05:00
Dustin J. Mitchell
fc668e5ca8 use usize to index working set 2020-11-24 11:53:11 -05:00
Dustin J. Mitchell
c8f14d68cb export the Uuid type from taskchampion 2020-11-24 11:44:21 -05:00
Dustin J. Mitchell
8233763295 add an 'info' subcommand 2020-11-24 11:31:56 -05:00
Dustin J. Mitchell
1de24f66dc restore README to top level 2020-11-23 16:12:46 -05:00
Dustin J. Mitchell
084c978b31 move docs back to top level 2020-11-23 16:07:38 -05:00
Dustin J. Mitchell
2296d0fa35 rename DB to TaskDB for consistency 2020-11-23 16:03:04 -05:00
Dustin J. Mitchell
8e2b4c3f6c Reorganize taskchampion crate for docs and tests
The public API of the taskchampion crate now contains the expected parts
and no more, and has some better documentation.

This moves the crate's external `tests/` into internal tests, as the
TaskDB is no longer exposed as part of the crate API.
2020-11-23 15:59:37 -05:00
Dustin J. Mitchell
8f4924f903 remove unnecessary 'extern crate' 2020-11-23 15:02:37 -05:00
Dustin J. Mitchell
ba55d298ce stop ignoring dead code and unused variables 2020-11-23 14:29:51 -05:00
Dustin J. Mitchell
779a331003 reorganize into separate crates
- taskchampion -- core implementation of a replica
 - taskchampion-cli -- command-line interface
 - taskchampion-sync-server -- server implementation (not much yet!)
2020-11-23 14:27:47 -05:00