# Last modified: 2006 Jan 22, 15:36:52 by david

Pre-release Cleaning
--------------------

* Clean cruft in the code (pwdb.mysql.MySQLPwDB.__init__ for example)
* Replace all occurence of 'print' by 'self.stdout.write()' in the consoles
* Remove all dead code
* Write some documentation about the consoles
* Edit setup.py for a clean installation

SFTP:
-----

The problem with proxying sftp is that the openssh client doesn't allow an sftp back-connection. For example:

The client (C) wants to connect to serveur (S) passing through the proxy (P):

    user@Client ~ $ ssh -p 2242 user@Proxy Server

Then C wants to open an sftp channel to copy some files from C to S. It hits a special key-combination to open an sftp console, which instructs the proxy to create an sftp channel.
The proxy can open a channel on the P->S connection without any problem.
But the proxy cannot open the channel on the P->C side of the connection, because the ssh client on C will forbid it (for security reasons).


Solution 1:

The client opens itself an sftp or NFS or FTP connection to the proxy to push files inside a directory owned and controlled by the sshproxy.

Solution 2:

The proxy could open another connection from P to C, to open an sftp channel.
That solution would not pass most firewalls.

Solution 3:

We can develop an ssh client based on libssh that would be able to accept back-connections for sftp channel comming from sshproxy (beware of security implications here!)

PWDB
----

Let users belong to a group too (maybe only users, and not sites) to allow a login to connect, say, to sudoer@site, but not to root@site.

MySQLPwDB:
----------

rewrite part of the API, so that the get_site() method is dynamic and the __init__() method does not fetch all sites !

* Done for get_site(), but has to be checked for side-effects. (__init__() still fetches all sites)


Direct command execution
------------------------

ssh -tp 2242 me@proxy user@site command options

This does not work yet...

PWDB Console
------------

add commands to modify and delete records.
add a wizard command to add a site and link it to site groups and users.


All consoles
------------

Add arguments completion and history.


Good stuff
----------

Add a graph generator for the data structure.
Add an ncurses UI to monitor several sites at once.

