Commit f8cab9ec authored by Mat's avatar Mat

Create client documentation

parent 4c84e87b
# Searchitect-Client
### Functionality
* Client part of DynRH2LevRocks Searchable Encryption scheme
### Compile using
mvn clean install
### Packages
* searchitect
* ClientRunner.java - just for testing purposes
* SophosRunner.java -just for testing purpose
* searchitect.client
* Client.java - communicates to the server and calls methods of the interface implemented by the plugins
* DocumentParser.java - implements methods to index a document collection by passing the path as string to the method
* searchitect.scheme
* ClientTemplateImpl.java - client template implementation
\ No newline at end of file
# searchitect-client
## About
A CLI client which demonstrates the usage of Searchitect
## Build
The client is built if you do the full build in the main directory. If you just want to rebuild the client during development, you can run
mvn package --offline -DskipTests
here. The executable package can be found at `target/searchitect-client-0.0.1-SNAPSHOT-exec.jar`.
## Running
You can either run the JAR file directly
java -jar target/searchitect-client-0.0.1-SNAPSHOT-exec.jar [...commandline options...]
or use the starterscript
./searchitect-client [...commandline options...]
If you want to install the client permanentely on your system, you just need to adapt the JAR path in the start script and copy it to some bin folder.
### Parameters
```
-b,--backend <arg> The backend to use. Allowed values:
sophos (default), dynrh2lev,
dynrh2levrocks
-c,--createuser Create a new user on the Searchitect
Gate
-d,--path <arg> Path to the document folder
-h,--help <arg> Print help
-p,--password <arg> Password on the Searchitect Gate
-P,--repository-password <arg> Password for the encryption of the
search index. Must be given when a
repository is created.
-q,--search <arg> Search query string
-r,--repository <arg> Name of the SE repository
-s,--serverurl <arg> URL of a Searchitect Gate
-S,--state <arg> File where the client state is stored
-u,--username <arg> Username on the Searchitect Gate
-U,--update <arg> Path to the document folder for an
update operation
-v,--verbose Enable verbose output
```
### Operations
The following operations can be executed by this programm:
1. **createuser**: Create a new user at the Searchitect Gate. The user is independent from the backend used for searching later on
2. **setup**: Create a new repository at some Searchitect Backend and fill it with the search words of the files stored in the path specified by `--path`
3. **search**: Search for a keyword in a repository
4. **update**: Update the repository with new files contained in the path specified by `--update`
### State
Note that all of the implemented schemes require a *client state* to be present (that is necessary to provide the update functionality of the algorithms). That file is created when you create a repository and it is updated when you run an *update* command. Without it beeing present and up to date, you won't be able to create a search query for the Searchitect server.
The file contains sensitive information (key material) and must thus be protected by the user.
## Integration test
There is a integration test script named `test.py` in this directory. It expects a test instance of searchitect running on localhost (do `docker-compose up` in the root directory) to be available.
It is not just a test script but also a good showcase of the various command line options that this client provides.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment