Commit Graph

78 Commits

Author SHA1 Message Date
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
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
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
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
a496d59fd6 Implemented blocking on the server-side 2025-02-10 19:27:24 +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
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
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
c77ac77e78 Added support for offline notifications where the server calculates them
and sends the info to the client when it connects
2025-02-02 19:23:50 +02:00
5c96cb4e60 Added banlist on the client and fixed some server side issues with
banning
2025-01-25 18:26:17 +02:00
a6ea051460 Added the ability to trust/untrust users 2025-01-22 17:23:18 +02:00
15067a81c5 Added client and server side edit message functionality 2025-01-16 19:11:15 +02:00
58c6a6d38a Added the ability to delete messages in frequencies 2025-01-14 19:09:18 +02:00
43bd630ecb Implemented updating frequency properties both client-side and server-side 2025-01-14 17:33:15 +02:00
8184c8d187 Added a way to change network properties both server side and client
side
2025-01-14 16:31:32 +02:00
bff19b516e Fixed network positioning issues 2025-01-12 17:57:54 +02:00
b09a8fba64 Fixed everything on the server-side 2025-01-09 19:14:05 +02:00
b517a11771 Actually fixed gosec (it is apparently space sensitive yay) 2025-01-09 15:13:31 +02:00
566980d1e2 Fixed gosec issues 2025-01-09 15:09:44 +02:00
576adb547c Implemented CD 2025-01-08 23:20:38 +02:00
dbea21d9c3 Fixed all gosec issues 2025-01-07 19:05:58 +02:00
4e2ca64319 Fixed all high and medium security issues from gosec 2025-01-07 19:02:14 +02:00
06a15e6c70 Refactored to better embed the certifcates and also made sure to read at
runtime the server.key instead of containing it in the server's
executable using go embed
2025-01-07 17:21:02 +02:00
63790c069f Server and client now properly handle the same user logging in from
different locations, fixed the issue where it'd only work for the first
time by checking if the addresses match before remove the session
2025-01-06 18:23:41 +02:00
1a218730e9 Server now disconnects connection when a new connection matches the same
user ID, note that there seems to be a weird thing where if 2 clients
are from the same IP, the disconnected client will just reconnect to the
new client's socket, so they will both use the same connection for
communication
2025-01-06 17:34:47 +02:00
547593d315 Fleshed out and fixed issues in both the server and client for how
networks and members work
2025-01-06 16:17:59 +02:00
6be63e6df6 Refactored quite a bit and added the MembersInfo packet server-side 2025-01-05 18:11:14 +02:00
73935243e3 Fixed server so it compiles 2025-01-04 19:09:23 +02:00