Commit graph

147 commits

Author SHA1 Message Date
oxalica
e74da2812b Maintain room member's last seen item and fix docs 2024-09-06 03:33:21 -04:00
oxalica
e98c9f8b3c Derive Clone, PartialEq, Eq for data types 2024-09-06 02:29:58 -04:00
oxalica
51e2c8418b Include cid in item responses and update docs 2024-09-06 02:27:53 -04:00
oxalica
a7f260027d Use simplified Snowflake ID generation
This prevents leaking server information to client with little effort.
2024-09-06 02:06:44 -04:00
oxalica
59d51937da Switch room identifier from UUID to stringified i64 2024-09-06 02:06:14 -04:00
oxalica
236fb61832 Fix missed JSON error response and simplify 2024-09-06 02:05:32 -04:00
oxalica
4e78780569 Simplify frontend duplicated code 2024-09-06 02:05:32 -04:00
oxalica
d3c3961298 Use proper rejection type for Auth middleware 2024-09-06 02:05:32 -04:00
oxalica
99d1311d63 Avoid unnecessary unwrap 2024-09-06 02:05:32 -04:00
oxalica
81a566a097 Move database logic into submodule and do simple version check 2024-09-06 02:05:27 -04:00
oxalica
a37bc3f81e Return the latest message in room list for display 2024-09-03 15:09:54 -04:00
oxalica
2eb884766a Impl room leaving and fix frontend room combobox 2024-09-03 05:39:06 -04:00
oxalica
cc51d53575 Fix frontend 2024-09-03 04:39:36 -04:00
oxalica
57b17547ca Impl room listing for testing frontend 2024-09-03 04:31:32 -04:00
oxalica
6831c3d25a Fix missed attrs on room creation 2024-09-03 04:08:34 -04:00
oxalica
2b6fbe8794 Impl global room listing at /room 2024-09-03 04:08:34 -04:00
oxalica
a9d5eb9631 Explicitly allow Authorization header for CORS
It would not be included when just allow `*`.
2024-09-03 04:08:34 -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
812d6c8602 Reduce deps rebuild for nix package 2024-09-01 20:02:36 -04:00
oxalica
263c0ca44b Fix typos 2024-08-31 22:39:09 -04:00
oxalica
42a778bef2 Impl default config for testing frontend 2024-08-31 20:04:37 -04:00
oxalica
5d15900436 Impl /room and /room/{ruuid}/admin endpoints 2024-08-31 18:33:23 -04:00
oxalica
e84b13c876 Package with nix and add systemd unit example 2024-08-31 16:38:43 -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
4d3371e485 Add draft API docs 2024-08-29 20:50:03 -04:00
oxalica
ff89d36ee5 Allow multiple initial members on room creation 2024-08-29 19:57:43 -04:00
oxalica
cf5d648315 Enforce sorted fields for signed payloads 2024-08-29 19:06:48 -04:00
oxalica
74bd0d42e2 Report 403 Forbidden for insufficient permission 2024-08-29 18:34:50 -04:00
oxalica
4456513139 Fix room permission check 2024-08-29 18:19:26 -04:00
oxalica
d672d067cd Ser/de bitflags as raw integers 2024-08-29 18:14:40 -04:00
oxalica
501b3e8db4 Impl private rooms 2024-08-29 17:14:56 -04:00
oxalica
9ced78d13d Apply more limits on incoming requests 2024-08-29 15:58:33 -04:00
oxalica
e71140e1fa Impl example frontend 2024-08-29 15:58:33 -04:00
oxalica
0c905f61cf Impl API to fetch events as-is 2024-08-27 01:29:48 -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