Commit graph

49 commits

Author SHA1 Message Date
oxalica
40e4a53886 build(deps): update to rand 0.9 is possible
Some checks failed
CI / Code style (push) Has been cancelled
CI / Test beta (push) Has been cancelled
CI / Test stable (push) Has been cancelled
CI / Flake package (push) Has been cancelled
Deploy OpenAPI doc to Pages / deploy (push) Has been cancelled
Except for code using ed25519-dalek, since we are blocked by them.

Also tweak RNG source so only key generation uses `OsRng`. PoW nonce
generation only need unpredictability thus `ThreadRng` suffices.

See: https://github.com/dalek-cryptography/curve25519-dalek/issues/731
2025-04-15 20:28:09 -04:00
oxalica
172559973b build(deps): update lockfile 2025-04-15 19:37:10 -04:00
oxalica
eb8c56e688 feat(blahd): support unix domain socket and rewrite tests 2025-03-19 01:57:37 -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
b56f8897ff build(deps): update cargo and flake lock 2024-11-27 09:00:35 -05:00
oxalica
d7ac77a1d9 chore(types): unbloat and clean up dependencies 2024-10-18 10:25:21 -04:00
oxalica
ea69062a6d feat(types): add optional schemars support 2024-10-17 10:29:06 -04:00
oxalica
0bfdad3877 build: update and clean dependencies 2024-10-16 06:18:52 -04:00
oxalica
31dc3e33c6 feat(types,blahd): allow using mock clock for testing 2024-09-28 21:30:42 -04:00
oxalica
cd7d0f773f feat(blahd): impl ETag for server metadata 2024-09-25 14:08:12 -04:00
oxalica
066061e2ec feat(blahctl): add database commands to modify users and rooms 2024-09-24 22:59:32 -04:00
oxalica
10dcc64fe9 build(deps): update cargo and flake lock 2024-09-24 20:39:27 -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
fac380fe55 refactor(types,register): introduce IdUrl and related types into submod
- `IdUrl` does basic validation for identity URL. Server could enforce
  additional restrictions on their own need.

- single-label doamins are now rejected by default.

- More tests are added for `IdUrl` validation.
2024-09-19 01:44:09 -04:00
oxalica
4108212f34 bench: bench register-pow for difficulty reference 2024-09-17 22:35:09 -04:00
oxalica
5252aa19ee feat(blahctl): add identity management commands 2024-09-17 21:44:36 -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
a63d0df443 Use serde_jcs for RFC 8785 compliancy
This fixes serialization and reduces maintainance cost, but does more
data copying on serialization.
2024-08-31 15:24:07 -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
4ceffe3f31 Split out timestamp check and actually check nonce 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
oxalica
370722731b Simplify rich text on-wire format 2024-08-30 13:05:29 -04:00
oxalica
c492bb2537 Use rich text format for chat 2024-08-30 12:26:45 -04:00
oxalica
cf5d648315 Enforce sorted fields for signed payloads 2024-08-29 19:06:48 -04:00
oxalica
d672d067cd Ser/de bitflags as raw integers 2024-08-29 18:14:40 -04:00
oxalica
482432758c Allow using userkey literal in ctl commands 2024-08-27 01:29:48 -04:00
oxalica
bcfac0c6b6 Allow CORS and fix event readiness notification 2024-08-27 01:29:48 -04:00
oxalica
593da123b6 Initial impl 2024-08-27 01:29:48 -04:00
oxalica
ae7a2b09fc Init 2024-08-25 14:26:34 -04:00