To permit multiple processes to access and modify a single database instance, and to reduce the overhead per process of connecting to a Gadfly database a Gadfly database may be run in server mode. See the doc string for gfserve.py for more information on the command line arguments. Furthermore, by using the security features a Gadfly server could be configured to allow restricted data distribution across a network without compromising the integrity of the database. The primary goal of Gadfly server security is to prevent accidental or malicious destruction of a database. Security is arbitrated by policies.
Policies have passwords that are never transmitted in clear text.
It is not a good idea to run admin or other unrestricted commands on a network that may have hostile parties sniffing the network. As with the rest of the system I provide no guarantees, but for many purposes the level of security provided may be acceptible. This ability can be disabled in a startup function if needed. By using such policies a DBA can configure a server such that client programs can only read certain tables, can only update certain rows of certain tables in certain ways, and so forth. At the moment the SQL parser slows down gadfly a bit, and prepared queries will only be parsed once for all clients.