Commit graph

36 commits

Author SHA1 Message Date
oxalica
2e0a878d56 build: migrate to Rust edition 2024 2025-03-18 11:38:19 -04:00
oxalica
37fbf5149e build(deps): update to rusqlite 0.34, rustix 1 and fix warnings 2025-03-18 11:28:42 -04:00
oxalica
740e540b4b build(deps): update to axum 0.8, rusqlite 0.33, tokio-tungstenite 0.26, thiserror 2 2025-02-11 00:13:56 -05:00
oxalica
c3842a6d3b feat(webapi): impl identity description retrieval 2024-10-18 11:12:29 -04:00
oxalica
d7ac77a1d9 chore(types): unbloat and clean up dependencies 2024-10-18 10:25:21 -04:00
oxalica
0bfdad3877 build: update and clean dependencies 2024-10-16 06:18:52 -04:00
oxalica
b8921a5485 chore(*): remove or update obsolete TODOs 2024-10-08 23:19:57 -04:00
oxalica
31dc3e33c6 feat(types,blahd): allow using mock clock for testing 2024-09-28 21:30:42 -04:00
oxalica
1a4980ebba feat(blahd): set Cache-Control 2024-09-25 15:14:43 -04:00
oxalica
cd7d0f773f feat(blahd): impl ETag for server metadata 2024-09-25 14:08:12 -04:00
oxalica
fac146e859 build: validate CFG_SRC_URL and simplify CFG_RELEASE handling 2024-09-25 12:45:34 -04:00
oxalica
0911d56e22 refactor(blahd,webapi)!: overhaul error type
Error types are now collected into a single place. Similar errors are
merged.

Request invariant violations are now all under 400 with type
"invalid_request" if it's a client mistake; and if it's caused by a
server restrction, under 403 with type "disabled".
2024-09-24 19:12:56 -04:00
oxalica
487099474f feat(webapi): impl atom feed and use tag URI for feed id 2024-09-23 20:32:24 -04:00
oxalica
94e5913513 refactor(blahd),test: move feed generation into submod and add test 2024-09-23 20:32:24 -04:00
oxalica
82f69eb96a bench: move to blah-types and add for sign/verify 2024-09-23 14:49:36 -04:00
oxalica
475bd59117 build(deps): update dependencies and omit minor version spec 2024-09-22 05:58:39 -04:00
oxalica
7384888128 feat(blahd): impl graceful shutdown 2024-09-22 05:16:10 -04:00
oxalica
883fac02ae test: add for WS 2024-09-22 04:43:11 -04:00
oxalica
fafd2de2e3 refactor(database)!: decouple SQLs from backend logic and cache stmts
This decouples SQLs from handler logic, makes it easier for auditing and
caching. It also enables the possibility to switch or support multiple
database backends.
2024-09-21 07:37:06 -04:00
oxalica
b955d32099 fix(blahd): reject UNIX domain socket for now
It's too complex to bother with for the current `axum` API. Let's wait
for axum 0.8 release.

Ref: https://github.com/tokio-rs/axum/pull/2479
2024-09-19 09:04:50 -04:00
oxalica
4108212f34 bench: bench register-pow for difficulty reference 2024-09-17 22:35:09 -04:00
oxalica
fb76756482 feat(webapi): impl user registration and identity description format 2024-09-16 10:45:40 -04:00
oxalica
98b2df2fdf feat(blahd): impl socket activation integration
This also allows arbitrary listening fd include UNIX domain sockets, via
environment variables as sd_listen_fds(3).
2024-09-11 13:17:52 -04:00
oxalica
0ac841e6fa refactor: move types crate into blahd-types subpackage 2024-09-10 03:47:41 -04:00
oxalica
ff5b7e60a7 Add tests for room create/read and fix incorrect foreign keys 2024-09-10 01:29:21 -04:00
oxalica
c5263c607c Split out socket config and switch back to toml crate
basic-toml does not support externally-tagged enum yet.

See: https://github.com/dtolnay/basic-toml/issues/8
2024-09-10 01:29:21 -04:00
oxalica
4f0f1405dc Librarify blahd for testing 2024-09-10 01:29:21 -04:00
oxalica
59d51937da Switch room identifier from UUID to stringified i64 2024-09-06 02:06:14 -04:00
oxalica
99d1311d63 Avoid unnecessary unwrap 2024-09-06 02:05:32 -04:00
oxalica
b05f704406 Rework /room/{}/item and pagination query
- Now it use `skipToken` and `top` to (mostly) align to OData spec.

- Its response type is now a normal struct and is documented.

- Room metadata is now excluded from room item query.
2024-09-03 04:08:34 -04:00
oxalica
77216aa0f8 Switch from event stream to WebSocket for events 2024-09-02 23:43:26 -04:00
oxalica
5fadffef4d Add GitHub CI and fix clippy warnings 2024-09-01 20:20:30 -04:00
oxalica
6e7229e4ac Make more server constants configurable 2024-08-31 01:25:38 -04:00
oxalica
abdc32b51f Use configuration file to simplify CLI 2024-08-31 01:02:20 -04:00
oxalica
4937502d4c Define error response format and refactor error handling 2024-08-31 00:04:16 -04:00
oxalica
668b873b07 Reorganize workspace layout and split out blahd 2024-08-31 00:04:16 -04:00