Commit Graph

130 Commits

Author SHA1 Message Date
4bc4856ff1 Merge pull request #132 from djmitche/postgres-bin
Add a binary that uses a Postgres backend
2025-07-28 22:20:57 -04:00
c445ac475a Add a binary that uses a Postgres backend
Building of this binary is controlled with features, allowing downstream
users to build just the SQLite version and not be concerned with the
tokio-postgres dependency tree (which includes links to OpenSSL and
other details). The Postgres version is disabled by default.

This does not change the binary name for the SQLite build, just to avoid
confusion for people upgrading to the new version.
2025-07-25 22:01:14 -04:00
6e8c72b543 Merge pull request #129 from djmitche/postgres
Add `taskchampion-sync-server-storage-postgres`
2025-07-17 12:35:19 -04:00
609660b01f remove irrelevant assertions from test 2025-07-17 12:01:52 -04:00
8b1f7e2b30 Apply suggestions from code review
Co-authored-by: ryneeverett <ryneeverett@gmail.com>
2025-07-17 12:00:22 -04:00
309abce339 Add taskchampion-sync-server-storage-postgres
This is built to be more robust than the SQLite storage, and to
integrate with other applications. The idea is that for example a web
application might interact with the same DB to create and delete clients
as customers come and go.
2025-07-14 12:37:50 -04:00
816c9a3c80 Merge pull request #130 from djmitche/add_version_checks_latest
More explicit requirements regarding `add_version`
2025-07-14 12:34:16 -04:00
b858febbca Apply fixes from @ryneeverett
Co-authored-by: ryneeverett <ryneeverett@gmail.com>
2025-07-14 12:30:01 -04:00
48b3aebee2 Merge pull request #131 from djmitche/issue124
Add mdbook documentation for the sync server
2025-07-13 17:40:30 -04:00
60436a5524 Add mdbook documentation for the sync server 2025-07-13 17:39:19 -04:00
25911b44a6 More explicit requirements regarding add_version
The core crate calls `get_client` and verifies the `latest_version_id`
before it invokes `add_version`. With the SQLite backend, transactions
lock the entire database, so these two queries cannot be interleaved
with any changes to the `latest_version_id` and there's no possibility
of incorrect updates. With Postgres (#129) the effect is similar: the
read performed by `get_client` locks that row and prevents other
transactions from writing to it.

However, the storage trait should not rely on this behavior --
`add_version` should verify that it is adding a new version on top of
the correct parent version.
2025-07-13 13:04:38 -04:00
c539e604d9 Merge pull request #126 from djmitche/async
Make Storage methods async
2025-07-13 09:25:43 -04:00
57bbac8fea assert as suggested, remove outcommented code 2025-07-12 22:58:59 -04:00
093446e5fb bump major version 2025-07-12 15:24:13 -04:00
87d1d026b3 Merge pull request #125 from djmitche/issue121
Allow disabling automatic creation of clients
2025-07-12 09:48:44 -04:00
67576fe382 suggestion from @ryneeverett 2025-07-12 09:48:15 -04:00
7559364017 Make Storage methods async
This will better support concurrent requests.
2025-07-11 17:37:14 -04:00
61b9293287 Merge pull request #119 from djmitche/issue118
Default DATA_DIR in entrypoint to match VOLUME in the Dockerfile
2025-07-11 12:49:09 -04:00
0a71cce2d1 use a struct for arguments to WebServer::new 2025-07-10 22:10:50 -04:00
3a794341ce Allow disabling automatic creation of clients
This may be useful in multi-user deployment scenarios where some
external administrative tools are used to create new clients.
2025-07-10 21:49:57 -04:00
4de5c9a345 Merge pull request #122 from djmitche/update
Update crates and bump MSRV to 1.82.0
2025-07-10 17:40:32 -04:00
d049618a59 Clippy fixes 2025-07-10 17:33:52 -04:00
cd874bc56a Update crates and bump MSRV to 1.82.0 2025-07-10 17:29:28 -04:00
240d1b4df5 Default DATA_DIR in entrypoint to match VOLUME in the Dockerfile
Details are included in RELEASING.md for inclusion in the next set of
release notes.
2025-07-09 14:58:11 +00:00
953411bff8 Merge pull request #117 from djmitche/security-scan-weekly
run the security scan weekly, not daily
2025-06-01 20:44:27 -04:00
91763641c6 run the security scan weekly, not daily 2025-06-01 20:41:21 -04:00
721957d7c7 Merge pull request #116 from GothenburgBitFactory/dependabot/cargo/uuid-1.17.0
Bump uuid from 1.16.0 to 1.17.0
2025-05-23 20:42:56 -04:00
35a4eefda3 Bump uuid from 1.16.0 to 1.17.0
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.16.0...v1.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 00:01:02 +00:00
ad01f28a40 Merge pull request #115 from GothenburgBitFactory/dependabot/cargo/actix-web-4.11.0
Bump actix-web from 4.10.2 to 4.11.0
2025-05-12 21:46:44 -04:00
29a4214117 Merge pull request #114 from GothenburgBitFactory/dependabot/cargo/tempfile-3.20.0
Bump tempfile from 3.19.1 to 3.20.0
2025-05-12 21:46:02 -04:00
b9cdae975b Bump actix-web from 4.10.2 to 4.11.0
Bumps [actix-web](https://github.com/actix/actix-web) from 4.10.2 to 4.11.0.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/master/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/web-v4.10.2...web-v4.11.0)

---
updated-dependencies:
- dependency-name: actix-web
  dependency-version: 4.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 23:59:38 +00:00
271e5eaf3d Bump tempfile from 3.19.1 to 3.20.0
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.19.1 to 3.20.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.19.1...v3.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 23:54:47 +00:00
67b441081d Merge pull request #112 from awilkins/fix/data-path
Make path to data folder consistent
2025-04-15 14:16:32 -04:00
5abb89c421 Make path to data folder consistent 2025-04-14 23:07:41 +01:00
cd15b2377b Merge pull request #111 from djmitche/issue110
Cargo update, including tokio for RUSTSEC-2025-0023
2025-04-07 22:37:16 -04:00
ceed460707 Cargo update, including tokio for RUSTSEC-2025-0023 2025-04-07 22:31:43 -04:00
8a7df6d9d5 Merge pull request #108 from GothenburgBitFactory/dependabot/cargo/uuid-1.16.0
Bump uuid from 1.15.1 to 1.16.0
2025-03-14 20:13:19 -04:00
92206f2488 Bump uuid from 1.15.1 to 1.16.0
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.15.1 to 1.16.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-14 23:50:45 +00:00
db8fbb3919 Merge pull request #107 from djmitche/env-logger
update env_logger to stop using humantime
2025-03-10 23:07:26 -04:00
ba69f98195 update env_logger to stop using humantime 2025-03-10 23:07:02 -04:00
cae0bb3fd8 Merge pull request #105 from GothenburgBitFactory/dependabot/cargo/actix-web-4.10.2
Bump actix-web from 4.9.0 to 4.10.2
2025-03-10 22:53:21 -04:00
7bec7ce25d Bump actix-web from 4.9.0 to 4.10.2
Bumps [actix-web](https://github.com/actix/actix-web) from 4.9.0 to 4.10.2.
- [Release notes](https://github.com/actix/actix-web/releases)
- [Changelog](https://github.com/actix/actix-web/blob/master/CHANGES.md)
- [Commits](https://github.com/actix/actix-web/compare/web-v4.9.0...web-v4.10.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 23:42:25 +00:00
4b55423595 Bump to -pre version 2025-03-03 22:43:37 +00:00
a9b9921833 v0.6.1 v0.6.1 2025-03-03 22:41:40 +00:00
a7dc9e84b4 Allow specifying client ID when running docker-compose (#101)
This also fixes up some handling of default values in the entrypoint.
2025-03-03 17:39:59 -05:00
7430d6feec add homepage / repository to published crates (#100) 2025-03-03 16:59:09 -05:00
ecdfb6bdfd Use DATA_DIR and taskchampion username in entrypoint (#99)
In fact, there is no taskchampion group (1092 is not a defined gid).
Instead taskchampion is in the `users` group.
2025-03-03 16:53:53 -05:00
55892d3b2d Bump to -pre version 2025-03-01 18:21:09 +00:00
5c3455a38a v0.6.0 v0.6.0 2025-03-01 18:16:48 +00:00
65ad035d8d feat(docker): simplify docker compose for end users (#96)
* feat(docker): simplify docker compose for end users

The previous docker-compose requires end user to manually handle
permissions of taskchampion data dir. And this commit has directories
automatically set up in docker-entrypoint.sh, just like what
postgresql did in https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh

* fix(docker): revert to anonymous data volume for compatibility

* feat: use uid 1092 for taskchampion

* fix(docker): revert mkdir

This is embarrassing that subpaths are not automatically created.

So we still need mkdir service in case of anonymous data volume.

* fix(docker): typo
2025-03-01 13:08:27 -05:00