Skip to content

Contains the code for the client libraries for Palisade

Notifications You must be signed in to change notification settings

gchq/Palisade-clients

Repository files navigation

A Tool for Complex and Scalable Data Access Policy Enforcement

Palisade Clients

Status

Palisade is no longer under active development.

Windows is not an explicitly supported environment, although where possible Palisade has been made compatible.
For Windows developer environments, we recommend setting up WSL.

For an overview of Palisade, start with the Palisade introduction and the accompanying guides: QuickStart Guide; and Developer Guide which are found in the Palisade README.

Client Implementations

The Client implementations will need to send requests into Palisade and process the response.
The workflow for this is expected to follow the pattern of first sending in a request to register access for data.
This will return a response consisting of a token (a unique id) that can then be used in a second request to gather the resources. With the resources gathered, the client is then in a position to read the data. An implementation of a Client will need to conform to this workflow, but the technology that is used will be best suited to the intended use of the application.

The following examples demonstrate the use of different kinds of clients that can operate with the Palisade service:

  • Java Client Java based RESTFul client using an API similar to the JDBC
  • Shell Client Command Line Interface(CLI) client which provides interactive operations.
  • Fuse Client Filesystem in Userspace (FUSE) client which uses a CLI for interactive operations and stores the results in a FUSE filesystem. This client is an extension of the Java Client.
  • Akka Client Akka client which provides access to an interface using both Java and Akka types. This client is an extension of the Java Client.
  • S3 Client Akka Microservice which provides an endpoint for accessing resources stored in an Amazon Web Service (AWS) Simple Cloud Storage (S3) bucket.
    The example uses Apache Sparkfor RESTful queries with the microservice.

Prerequisites

  1. Git
  2. Maven

Getting started

To get started, clone the Palisade Clients repository:

git clone https://github.com/gchq/Palisade-clients.git
cd Palisade-clients

You should see the following modules:

>> ls
 drwxrwxrwx client-akka
 drwxrwxrwx client-fuse
 drwxrwxrwx client-java
 drwxrwxrwx client-shell

Now you can finally build the repository by running:

mvn clean install

License

Palisade-clients is licensed under the Apache 2.0 License and is covered by Crown Copyright.

Contributing

We welcome contributions to the project. Detailed information on our ways of working can be found here.