Documentation
[GH]
Currently this is more a changelog and a description
how to use new features.
API Doc and test coverage
There is the beginning of a api doc and automated
test coverage reports.
Both don't cover the complete code.
There is the beginning of a generated API doc
here.
I also started automated regression tests. The
results can be seen
here.
Version 0.1.8
This one took longer than expected and still does not contain what it
initially was meant to.
My intention was to have at least some basic first RBAC in here, but
after some thinking about it I realized that it is difficult and meaningless
to create something as long as there is nothing to manage.
Now a lot of work regarding the user management is done. Especially
there is the possibility to create user, modify them and in theory remove
them again. A lot of changes toop place and its best to categorize them.
UI/client
- Added jQueryUi and related libs
- Visually improve all popups (signup, login, my account(NEW))
- Reorganize the javascript code.
- Display the lines of C code at the bottom of each page.
- New menu entry and popup "my account". Users can see and modify
their data there.
build system
- Added make target to create a ctags file for the project.
- Added code to get the current number of lines of C code.
- Install database files and ddirectories as world writable.
This is done because I notices that a fresh installation segfaulted
because it can't open the database files. (These segfaults should be
fixed also.)
- The layout symlinks are no longer copied. Instead symlinks are
created in the installation dir.
backend/server
- Added a little code and some comments about RBAC.
- Created a Uuid class capable of handling Uuid Version1/3/5.
- Added a serializable and indexable interface
- Users now have a username field which is filled with the email
address if the user registered directly in our application and with
the CN if the user is authenticated via LDAP.
- Now LDAP authenticated users get an entry in our database too.
This gives them the possibility to change some information.
- Users no longer can store themself. They implement the
serializable and indexable interfaces and an external function uses
these to finally store the user.
- Users are now able to change their firstname, surename and
email address after the have been logged in/authenticated.
- Added a generic router that converts request URIs into identifier
for dlsym and then call this function.
- All post data is now urldecoded.
- All Authentication methods are not organized in an authentication
container. This will try every registered authenticator to authenticate
the user.
- The class system now allows stack stored const instances.
-
- Instances can now be created via a va_list additionally to
directly given the function arguments.
- All static assets are not delivered with an expire header, it
is currently set to 12 hours.
- No RC4 is accepted for SSL connectiones...hello NSA.
- The storage layer not allows the deletion of entries.
Version 0.1.7
- some reusable parts are now build as shared libraries
- make install does what it should
- generalize json responses
- add support for a first basic configuration file
- huge amount of changes in the build system
Version 0.1.6
This is a bugfix release. No obvious visible changes at the UI.
64 files changed, 1433 insertions(+), 1076 deletions(-)
- Bugfixes and optmizations in the server main loop.
- Load parts of the UI via ajax calls thus preventing code
repitition in there.
- Add m4 macros to build with dragonegg. I also tried to build
with clang and it works without any change for me.
- Fix build system. Now it is again possible to build actual
coverage reports and API docs.
- Fix memory handling when optimizations are not in place.
- Optimize session handling. The way I did it before reduced the
overall server performance. Apache Bench made only about
200 to 400 requests per second. Now it is again up at around 13000
requests per second on my core2 development machine.
Version 0.1.5
Another step on the way. Now basic signup is possible.
Users and credential will be stored in gdbm files.
If you do not want to signup you can use the pre created
guest account to login.
username: guest
password: guest
This user will not be available if you build your own
version of taskrambler.
Usage
The signup and login can be testes by clicking on
signup or login in the menu. A popup should occur where
you can enter the neccessary informations. Currently
no sanity checks are done on the given data. The key
is the email address.
If you signup with an email address
that is already in the database nothing happens, else
a user will be created and logged in.
After a successful login the first and surname will be
visible in the upper right corner of the page.
Additionally to the name you can find the version,
session id as well as an indicator how long the session
lasts. A session lasts 5 minutes since the last preocessed
request.
Changes
- add storage layer
- add signup functionality
- store users
- store passwords as PBKDF2 sha512
- make login work agains ldap and stored passwords
- add favicon
- show version, session info and login info on each page