137 Commits

Author SHA1 Message Date
959290d2ff Fix writing a message to an offline user causes an error log on the
backend
2025-08-09 10:47:41 +03:00
7b1ee08d61 Updated todos and notes 2025-08-05 17:01:05 +03:00
43c36a8d25 Added self hosting instructions 2025-08-04 14:26:13 +03:00
e6e1b6f86b Updated copyright 2025-08-04 11:38:07 +03:00
2a6562b93c Added build info metrics to server 2025-08-04 01:07:25 +03:00
779144ad77 Updated readme 2025-08-02 19:44:05 +03:00
77dc3bf32f Fixed ci to pass, removed pyroscope 2025-07-30 20:06:22 +03:00
5f6845c399 Added the ability to delete users 2025-07-21 13:46:40 +03:00
aa1fab53af Added copyright and AGPL notice to all source code files 2025-07-20 16:34:18 +03:00
24c0224dd9 Changed session durations metric to classic histogram, added
last_activity to calculate monthly active users
2025-07-19 18:32:12 +03:00
f793203e04 Added session duration metrics with device analytics along with device
analytics metrics in the DB to aggregate and DeviceID abuse prevention
2025-07-19 18:32:12 +03:00
aaea258a21 Added metrics for sus/malicious connections 2025-07-19 18:32:12 +03:00
52eb471e89 Implemented connection-level rate limiting (to avoid reconnection
abuse), added a file for testing that, still needs to add observability
for this
2025-07-19 18:32:12 +03:00
8f58905364 Added in progress requests metric and also returning an error when the
user hits the rate limit
2025-07-19 18:32:12 +03:00
4a8914e05f Fixed dropped vs success requests being flipped 2025-07-19 18:32:12 +03:00
0a0915a977 Added session based request rate limiting, uses token bucket strategy 2025-07-19 18:32:12 +03:00
d78eb1fbc4 Added proper locking to session to avoid race conditions/data races 2025-07-19 18:32:12 +03:00
34c944c350 Added some metrics 2025-07-19 18:32:12 +03:00
12f50940b4 Added handling for device analytics, but not the actual implementation
yet
2025-07-19 18:32:12 +03:00
c52d5693e9 Added server metrics (need to actually add metrics later) 2025-07-19 18:32:12 +03:00
62f17157d8 Improved server logging/error handling 2025-07-19 18:32:12 +03:00
ba47118e51 Replaced most log statements with slog on the server 2025-07-19 18:32:12 +03:00
402e2b4108 Fixed bug where server couldn't shutdown unless all clients closed their
connections willingly
2025-07-19 18:32:12 +03:00
0be78648cd Fixed mprocs sending SIGHUP on restart instead of SIGTERM by adding
exec and updated gitignore
2025-07-07 20:06:26 +03:00
047d33b3ae Refactored how the terms of service and privacy policy are stored, by
allowing changing them with 0 downtime
2025-07-07 18:46:47 +03:00
bbd4eae95f Added better logging for packets and payloads and now the writer is
responsible for packaging into a packet the payload (instead of everyone
who sends to the writer)
2025-07-06 18:20:46 +03:00
21b4d14a2f Fixed issues with timeout() function on the server and added automatic
log rotation every midnight (if the server is running at that time)
2025-07-06 15:04:08 +03:00
f80cb4a0fe Implemented server-side authentication in accordance to the protocol 2025-07-06 14:40:32 +03:00
e734449259 Added terms of service (incomplete!!!!) to the server, and added
authentication separation between API calls, actually authentication
(nonce, and verification) is not implemented yet
2025-07-06 00:51:33 +03:00
8f8736d09e Updated protocol spec to new V2 version 2025-07-05 23:24:17 +03:00
5f8ab176b6 Added new packet types to facilitate TOS acceptance, Authentication and
re-authentication for sensitive information updates
2025-07-05 22:35:34 +03:00
94ccbc282b Refactored server connection handling, still missing TOS and auth
handling
2025-07-05 19:50:13 +03:00
317bc967e6 Added extra info in user settings, fixed typos in help popups and
refactored some log statements
2025-07-05 11:30:16 +03:00
2d1408598a Added ctxkeys package to better handle addition context when logging and
partially integrated it with keys for user id and ip addr
2025-07-03 20:46:29 +03:00
875a5576db Updated env var names and added a log dir env var 2025-07-03 14:34:17 +03:00
8aa5cbb72e Fixed packet loss bug due to client not waiting before exiting for the
writes to fully proccess
2025-05-23 10:30:24 +03:00
d6a2eda646 Improved database error logging in server api 2025-04-29 19:12:55 +03:00
89fc704d80 Added string method to PacketType and improved server logging messages a
bit
2025-03-11 22:03:24 +02:00
cfc5fa3d5e Users that are no longer members (left/kicked/banned) now get fetched
and show their names properly in messages
2025-02-13 16:49:07 +02:00
66983fb028 Added blocking/unblocking of users using b/u (user settings are now s
instead of "u")
2025-02-12 13:08:49 +02:00
a496d59fd6 Implemented blocking on the server-side 2025-02-10 19:27:24 +02:00
c0e615133c Renamed instances of "trusteds" to "trusted users" to be grammatically
correct
2025-02-10 19:01:30 +02:00
9da5aa5be4 @everyone is now sent as normal text when a user doesn't have permission
to send it (instead of just disappearing)
2025-02-10 18:04:38 +02:00
f10f8396cc Added support for editing messages in user signals 2025-02-05 20:00:29 +02:00
0bf5515629 When a user sends a message "signal" and the receiving user doesn't have
the signal already open, it will be added as the first signal
2025-02-05 19:41:34 +02:00
9d1158f03e Implemented deleting messages in user signals 2025-02-05 16:45:01 +02:00
f0607f1663 Server now also sends the last_read column to the client so the client
so the client can use it to persist notifications
2025-02-04 19:37:06 +02:00
fe520e219c Server now uses a new context for api requests to make sure they still
get completed even if the user disconnects, this is not ideal and should
be reworked in the future
2025-02-04 19:30:30 +02:00
d9ae301818 Reverted back the removal of the logic in get notifications to check if
the user has access to the frequency, because it is needed for the
is_admin ping type but also to prevent the case where someone was an
admin, got demoted and can now monitor when new messages are sent there
2025-02-04 19:08:22 +02:00
eab8cba4bb Refactored the way notifications work on the server-side, next commit
fixes the client to use this new system
2025-02-04 18:52:57 +02:00