Commit graph

120 commits

Author SHA1 Message Date
oxalica
eb8c56e688 feat(blahd): support unix domain socket and rewrite tests 2025-03-19 01:57:37 -04:00
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
9baf47963d feat(blahd): fail on test features + release build
This is a best-effort check for accidental misuse of testing-only
features on release build.
2024-10-14 19:15:28 -04:00
oxalica
1c9108610d ci,contrib: add typos and pre-commit script 2024-10-13 04:44:27 -04:00
oxalica
ba9673065a feat(blahd): improve error response on unknown URI or method 2024-10-12 14:45:28 -04:00
oxalica
1ecea448a2 refactor(webapi): move create-room endpoint and deprecate old one 2024-10-12 14:15:18 -04:00
oxalica
920a1cc3b9 feat(webapi): impl member information query 2024-10-12 14:14:39 -04:00
oxalica
8378c4d230 feat(webapi): impl member permission update 2024-10-12 14:14:39 -04:00
oxalica
ad4a38cf43 feat(blahd): impl non-self member removal 2024-10-12 14:14:39 -04:00
oxalica
a8c29cb9b2 refactor(blahd): prefer newtype NoContent 2024-10-12 14:14:39 -04:00
oxalica
d1dfda51db refactor(webapi): split /room/:rid/admin endpoint and deprecate
Since we alraedy use `/room/:rid/member`, member CRUD can use this path
for better semantics.

The `admin` endpoint will be removed later.
2024-10-12 14:13:30 -04:00
oxalica
b8921a5485 chore(*): remove or update obsolete TODOs 2024-10-08 23:19:57 -04:00
oxalica
ff7fd9e4b2 feat(webapi): include cid in ServerEvent::Msg 2024-10-08 21:20:20 -04:00
oxalica
814fac1974 refactor(event): decouple states from handlers and remove aux-types 2024-10-08 21:17:34 -04:00
oxalica
97c0cf5844 refactor(blahd): reorg and use consistent handler names 2024-10-05 00:19:20 -04:00
oxalica
4e8124cda6 refactor(blahd,types): hoist more types into types crate 2024-10-05 00:19:05 -04:00
oxalica
719c19dc64 fix(blahd/event): do not parse close frame as message 2024-10-01 07:09:53 -04:00
oxalica
367f6d2a4b feat(webapi): impl room member listing 2024-10-01 06:50:53 -04:00
oxalica
bc6e6c2056 refactor(webapi,types)!: make challenge type extensive
We may allow more challenge types other than PoW in the future, eg.
captcha. So make the relevent types more generic.

Now the challenge is returned in JSON response as a individual top-level
field `register_challenge` instead of in HTTP headers.
2024-10-01 05:26:00 -04:00
oxalica
5f29b23f9d fix(blahd): fix error message formating 2024-09-28 21:41:34 -04:00
oxalica
458f4b163f test: test feed response and nonce invalidation 2024-09-28 21:40:14 -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
70481e6c74 feat(blahd): impl ETag for feed 2024-09-25 14:04:58 -04:00
oxalica
fac146e859 build: validate CFG_SRC_URL and simplify CFG_RELEASE handling 2024-09-25 12:45:34 -04:00
oxalica
fa14844d0d feat(webapi): expose server metadata 2024-09-25 12:45:26 -04:00
oxalica
8551540798 refactor(types)!: blow up big lib.rs into submods 2024-09-25 11:15:31 -04:00
oxalica
a38b59da84 fix(types,blahd): reject timestamps > i64::MAX 2024-09-24 20:36:27 -04:00
oxalica
c4fbf1294b fix(blahd): merge queries for last-seen update 2024-09-24 19:37:50 -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
1e8c16888c refactor(blahd): use NonZero/u32 for page length
This avoids platform-dependent `usize` in configuration and webapi.
2024-09-23 18:04:26 -04:00
oxalica
82f69eb96a bench: move to blah-types and add for sign/verify 2024-09-23 14:49:36 -04:00
oxalica
2fe8dfdab7 test: add more tests for register verification 2024-09-22 12:18:41 -04:00
oxalica
dd940d5769 feat(types): impl Debug,From<{&,}VerifyingKey> for PubKey 2024-09-22 07:28:21 -04:00
oxalica
b93ff2882e fix(test/socket_activate): inherit env vars
This should fix coverage test.
2024-09-22 06:36:02 -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
4bca196df3 fix(event): consistently use i64 for uid 2024-09-21 15:21:52 -04:00
oxalica
a7f31e5fad refactor(webapi)!: avoid u64/i64 usage in types except timestamp
We do not need that many big numbers yet. This should simplify client
implementation without native u64 (eg. JavaScript).

Also put a hard limit on `unseen_cnt` query.
2024-09-21 15:14:50 -04:00
oxalica
ad3e422902 fix(webapi): reject mark-seen for future msgs 2024-09-21 14:58:51 -04:00
oxalica
bc856f6c62 feat(webapi): impl room deletion 2024-09-21 14:46:47 -04:00