_documentation.html.in 6.13 KB
<h1>Documentation</h1>

<hr />
<p class="abstract">
	<span class="author">[GH]</span>
	Currently this is more a changelog and a description
	how to use new features.
</p>
<hr />

<h2>API Doc and test coverage</h2>

<p>
	There is the beginning of a api doc and automated
	test coverage reports.<br />
	Both don't cover the complete code.<br />

	There is the beginning of a generated API doc
	<a href="http://ci-build.weird-web-workers.org/taskrambler/api_latest/"
		target="_blank">here</a>.<br />

	I also started automated regression tests. The
	results can be seen
	<a href="http://ci-build.weird-web-workers.org/taskrambler/coverage/@PACKAGE_VERSION@/"
		target="_blank">here</a>.
</p>

<a name="latest"><h2>Version 0.1.8</h2></a>

<p>This one took longer than expected and still does not contain what it
initially was meant to.</p>

<p>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.</p>

<p>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.</p>

<h3>UI/client</h3>

<ul>
	<li>Added jQueryUi and related libs</li>
	<li>Visually improve all popups (signup, login, my account(NEW))</li>
	<li>Reorganize the javascript code.</li>
	<li>Display the lines of C code at the bottom of each page.</li>
	<li>New menu entry and popup "my account". Users can see and modify
	their data there.</li>
</ul>

<h3>build system</h3>

<ul>
	<li>Added make target to create a ctags file for the project.</li>
	<li>Added code to get the current number of lines of C code.</li>
	<li>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.)
	<li>The layout symlinks are no longer copied. Instead symlinks are
	created in the installation dir.</li>
</ul>

<h3>backend/server</h3>

<ul>
	<li>Added a little code and some comments about RBAC.</li>
	<li>Created a Uuid class capable of handling Uuid Version1/3/5.</li>
	<li>Added a serializable and indexable interface</li>
	<li>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.</li>
	<li>Now LDAP authenticated users get an entry in our database too.
	This gives them the possibility to change some information.</li>
	<li>Users no longer can store themself. They implement the
	serializable and indexable interfaces and an external function uses
	these to finally store the user.</li>
	<li>Users are now able to change their firstname, surename and
	email address after the have been logged in/authenticated.</li>
	<li>Added a generic router that converts request URIs into identifier
	for dlsym and then call this function.</li>
	<li>All post data is now urldecoded.</li>
	<li>All Authentication methods are not organized in an authentication
	container. This will try every registered authenticator to authenticate
	the user.</li>
	<li>The class system now allows stack stored const instances.<li>
	<li>Instances can now be created via a va_list additionally to
	directly given the function arguments.</li>
	<li>All static assets are not delivered with an expire header, it 
	is currently set to 12 hours.</li>
	<li>No RC4 is accepted for SSL connectiones...hello NSA.</li>
	<li>The storage layer not allows the deletion of entries.</li>
</ul>


<h2>Version 0.1.7</h2>

<ul>
	<li>some reusable parts are now build as shared libraries</li>
	<li>make install does what it should</li>
	<li>generalize json responses</li>
	<li>add support for a first basic configuration file</li>
	<li>huge amount of changes in the build system</li>
</ul>

<h2>Version 0.1.6</h2>

This is a bugfix release. No obvious visible changes at the UI.
<br/ ><br />
<b>64 files changed, 1433 insertions(+), 1076 deletions(-)</b>
<br/ >
<ul>
	<li>Bugfixes and optmizations in the server main loop.</li>
	<li>Load parts of the UI via ajax calls thus preventing code
	repitition in there.</li>
	<li>Add m4 macros to build with dragonegg. I also tried to build
	with clang and it works without any change for me.</li>
	<li>Fix build system. Now it is again possible to build actual
	coverage reports and API docs.</li>
	<li>Fix memory handling when optimizations are not in place.</li>
	<li>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.</li>
</ul>

<h2>Version 0.1.5</h2>

<p>
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.<br/><br/>
<b>username:</b> guest<br/>
<b>password:</b> guest<br/><br/>
This user will not be available if you build your own
version of taskrambler.
</p>

<h3>Usage</h3>

<p>
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.
</p>

<p>
If you signup with an email address
that is already in the database nothing happens, else
a user will be created and logged in.
</p>

<p>
After a successful login the first and surname will be
visible in the upper right corner of the page.
</p>

<p>
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.
</p>

<h3>Changes</h3>

<p>
<ul>
	<li>add storage layer</li>
	<li>add signup functionality</li>
	<ul>
		<li>store users</li>
		<li>store passwords as PBKDF2 sha512</li>
	</ul>
	<li>make login work agains ldap and stored passwords</li>
	<li>add favicon</li>
	<li>show version, session info and login info on each page</li>
</ul>
</p>

<!-- vim: set ts=4 sw=4: -->