forked from Telodendria/Telodendria
173 lines
5.4 KiB
Groff
173 lines
5.4 KiB
Groff
.Dd $Mdocdate: January 17 2023 $
|
|
.Dt TELODENDRIA-CHANGELOG 7
|
|
.Os Telodendria Project
|
|
.Sh NAME
|
|
.Nm Telodendria
|
|
.Nd The change log for the Telodendria project.
|
|
.Sh PROJECT STATUS
|
|
.Pp
|
|
.Nm
|
|
is a very ambitious project. There's a lot that needs to happen yet
|
|
before it is usable. At the moment,
|
|
.Nm
|
|
is starting to resemble a Matrix homeserver, but you can't really
|
|
call it one yet. The foundation is mostly in place; now there's the
|
|
Matrix specification to implement.
|
|
.Pp
|
|
Just because there's not much here yet doesn't mean you should go
|
|
away! I could always use help, so you are more than welcome to get
|
|
involved in the project if you want to see things move quicker.
|
|
Feel free to donate using the links on the project website, or
|
|
see the
|
|
.Xr contributing 7
|
|
page for details on how to get involved. The CVS repository has
|
|
a file called
|
|
.Pa TODO.txt ,
|
|
which contains a checklist of the items that need to be completed.
|
|
Feel free to grab an item on that list and start writing patches!
|
|
It's a good idea to join the Matrix rooms noted in
|
|
.Xr telodendria 7
|
|
as well, so you can discuss your progress and ask questions.
|
|
.Sh v0.2.0
|
|
.Pp
|
|
Not released yet.
|
|
.Pp
|
|
This release is focused on providing a decent amount of the
|
|
client authentication API. You can now create accounts on a
|
|
Telodendria homeserver, and log in to get access tokens.
|
|
.Pp
|
|
New:
|
|
.Bl -bullet
|
|
.It
|
|
Added the basic form of the user registration API. If
|
|
registration is enabled in the configuration file, clients
|
|
can now register for Matrix accounts.
|
|
.It
|
|
Added the basic form of the user login API. Clients can now
|
|
log in to their accounts and generate access tokens to be
|
|
used to authenticate requests.
|
|
.It
|
|
Added the basic form of the user interactive authentication API,
|
|
which can be used by any endpoints that the spec says require
|
|
it. Currently, it only implements a single dummy login flow,
|
|
so it's more of a formality than anything else, but more login
|
|
flows can easily be added in the future.
|
|
.It
|
|
Added a simple landing page that allows those setting up
|
|
.Nm
|
|
to quickly verify that it is accessible where it needs to be.
|
|
.It
|
|
Added a way to safely delete objects from the database.
|
|
While the database is for persistent storage, there may
|
|
be some ephemeral data that lives there only for a short
|
|
while, so it will be necessary to remove that data when
|
|
necessary.
|
|
.It
|
|
Added a thread-safe random string generator, which will
|
|
be used extensively for generating session tokens, device
|
|
IDs, access tokens, and more. This generator is seeded by
|
|
the current timestamp and the thread ID, so it should be
|
|
fairly random.
|
|
.It
|
|
Added a SHA-256 hash function, which at present is used
|
|
to hash passwords.
|
|
.It
|
|
Added a basic job scheduler to execute periodic jobs, such
|
|
as expiring tokens and cleaning up temporary files.
|
|
.El
|
|
.Pp
|
|
Changes:
|
|
.Bl -bullet
|
|
.It
|
|
Improved HTTP request logging by removing unnecessary
|
|
log entries and making errors more specific.
|
|
.It
|
|
Leaked memory is now hexdump-ed out to the log if the log
|
|
level is set to debug. This greatly simplifies debugging,
|
|
because developers can now easily see exactly what the
|
|
contents of the leaked memory are. Note that in some
|
|
circumstances, this memory may contain sensitive data,
|
|
such as access tokens, usernames, or passwords. However,
|
|
.Nm
|
|
should not be leaking memory at all, so if you encounter
|
|
any leaks, please report them.
|
|
.It
|
|
Refactored a lot of the code and accompanying documentation
|
|
to be more readable and maintainable.
|
|
.El
|
|
.Pp
|
|
Bug fixes:
|
|
.Pp
|
|
.Bl -bullet
|
|
.It
|
|
Fixed a memory leak that would occur when parsing an invalid
|
|
JSON object.
|
|
.It
|
|
Fixed an edge case where HTTP response headers were being
|
|
sent before they were properly set, causing the server to
|
|
report a status of 200 even when that wasn't the desired
|
|
status.
|
|
.It
|
|
Fixed a few memory leaks in the HTTP parameter decoder that
|
|
would occur in some edge cases.
|
|
.It
|
|
Fixed an "off-by-one" error in the HTTP server request
|
|
parser that prevented GET parameters from being parsed.
|
|
.It
|
|
Fixed the database file name generator to prevent directory
|
|
traversal attacks by replacing special characters with
|
|
safer ones.
|
|
.It
|
|
Fixed a memory leak that would occur when closing a
|
|
database that contains cached objects.
|
|
.It
|
|
Fixed a memory leak that would occur when deleting database
|
|
objects.
|
|
.It
|
|
Fixed a few non-fatal memory warnings that would show up
|
|
as a result of passing a constant string into certain APIs.
|
|
.El
|
|
.Pp
|
|
Misc:
|
|
.Bl -bullet
|
|
.It
|
|
Fixed a bug in
|
|
.Xr td 8
|
|
that caused
|
|
.Xr cvs 1
|
|
to be invoked in the wrong directory when tagging a new release.
|
|
.It
|
|
Added support for environment variable substitution in all site
|
|
files. This makes it easier to release
|
|
.Nm
|
|
versions.
|
|
.It
|
|
Fix whitespace issues in various shell scripts.
|
|
.It
|
|
Fixed the debug log output so that it only shows the file name,
|
|
not the entire file path in the repository.
|
|
.It
|
|
Updated the copyright year in the source code and compiled output.
|
|
.It
|
|
Switch the -std=c89 flag to -ansi instead, as -ansi might be more
|
|
supported.
|
|
.It
|
|
Fixed the -v flag. It now sets the log level to debug as soon
|
|
as possible to allowe debugging the configuration file parsing
|
|
if necessary.
|
|
.El
|
|
.Pp
|
|
And many more small bug fixes and feature additions. Please
|
|
test the current functionality, and report bugs to the Matrix
|
|
rooms.
|
|
.Sh v0.1.0
|
|
.Pp
|
|
Tuesday, December 13, 2022
|
|
.Pp
|
|
This is the first public release of
|
|
.Nm
|
|
so there are no changes to report. Future releases will
|
|
have a complete change log entry here.
|
|
.Pp
|
|
This is a symbolic release targeted at developers, so there's nothing
|
|
useful to ordinary users yet. Stay tuned for future releases though!
|