Apso bugs
*********

This file lists the bugs in Apso. Unfortunately, I could not fix them
yet.


0. Code is not robust
=====================

Sorry, really.
The code does not handle unexpected situations very well. For example:
- Outdated working copies
- Missing files
- Invalid keys (that can't be read)
- Wrong keys (valid, but not good for the encrypted content)
I am working on fixing this. Part of the problem is caused, for
example, by the way Apso is interacting with Monotone (exec*() calls
and pipes): we need to parse Monotone's output, and not everything
is easy to find there in this output. Part of the problem is also
that I had to write Apso in short intervals of time.


1. Setup is broken
==================

Instead of setting up the public database using apso, please run the
setup.sh script in src/ then run apso grant.


2. Compromise is broken
=======================

Meanwhile, you can compromise by doing this:
- Set up a new public directory (without users or keys or anything
- Run pull so Apso will get the deltas from your private DB into the
  new public one
- Grant access to all users


3. Cryptography implementation is sloppy
========================================

While the deltas and keys will be encrypted, the implementation is
sloppy and needs to be fixed. There certainly are several problems
with it (Apso was written as a proof of concept, and the implementation
may be naive)


4. Documentation is outdated
============================

I am really sorry about this! The info file is outdated, and several things have
changed.
In particular, I wanted to explain some special situations in the documentation
(like simultaneous revocations by different users), but had no time for that.

