Files
eko/GLOSSARY.md

51 lines
1.6 KiB
Markdown

# Glossary
The goal is to define the meaning behind specific terminology used in this project.
Currently this document is incomplete, it'll be improved over time, feel free to contribute improvements.
## ID
A snowflake ID, a snowflake ID is a unique identifier used across the client
and server, it embeds metadata including the date it was generated which can
be retrieved for display purposes.
### User ID
A snowflake ID for a user, used as the primary way to refer to a user in a
unique way (like opening a signal with a user).
### Receiver ID
Usually refers to the "other" person's ID in a user-to-user messaging, but
can also refer to the literal `receiver_id` SQL field on the `messages` table
which may be either the "other" person, or the user itself.
### Frequency ID
A snowflake ID that refers to a frequency.
### Chad ID
A snowflake ID that refers to either a frequency ID or a receiver ID.
### Signal
A currently open chat between 2 individual users ("DM").
## Session
A struct that helps with managing a single active connection, it contains
various metadata including the address of the connection and has methods for
reading/writing to the connection, it is also responsible for metrics and
rate limiting for per-connection requests.
### Unauthenticated Session
A session that has not yet been authenticated, so it doesn't have a User ID
or public key yet, and has not been added to the server sessions map.
### Authenticated Session
A session that is authenticated and attached to a user, it has a UserID and a
public key and it has been mapped into the server's session map.