oxalica
40e4a53886
build(deps): update to rand 0.9 is possible
...
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