Support a client-id allowlist (#62)

This will support setting up publicly-accessible personal servers,
without also allowing anyone to create a new client.
This commit is contained in:
Dustin J. Mitchell 2024-11-21 21:27:52 -05:00 committed by GitHub
parent 5ad3b8e8bf
commit 50d028f45e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 188 additions and 53 deletions

View file

@ -19,6 +19,19 @@ It is comprised of three crates:
- `taskchmpaion-sync-server-sqlite` implements an SQLite backend for the core
- `taskchampion-sync-server` implements a simple HTTP server for the protocol
## Running the Server
The server is configured with command-line options. See
`taskchampion-sync-server --help` for full details.
The `--data-dir` option specifies where the server should store its data, and
`--port` gives the port on which the HTTP server runs. The server does not
implement TLS; for public deployments, the recommendation is to use a reverse
proxy such as Nginx, haproxy, or Apache httpd.
By default, the server allows all client IDs. To limit the accepted client IDs,
such as when running a personal server, use `--allow-client-id <client-id>`.
## Installation
### As container