Skip to content

Commit

Permalink
Merge pull request #2 from AquaQAnalytics/initial-commit
Browse files Browse the repository at this point in the history
committing update to read me file
  • Loading branch information
Paul-doherty-aquaq authored May 30, 2018
2 parents 16423cf + 0f242fc commit 8e3cba1
Showing 1 changed file with 41 additions and 51 deletions.
92 changes: 41 additions & 51 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,70 @@
#kdb-rest-service
# kdb-rest-service

This is an open source rest service written in java which can be used to connect to an instance of kdb using json. The rest service can provide a single query to run or call a function predefined on the instance of kdb.
An open source REST service written in java used to connect to an instance of kdb using JSON. The REST service can provide a single query to run or call a function predefined on the instance of kdb.

##Pre-requisite Configuration
#####Properties
There is an application.properties file in the resources folder, connect the rest service and the instance of kdb by updating the properties below:
## Pre-requisite Configuration
##### Properties
There is an `application.properties` file in the resources folder, connect the rest service and the instance of kdb by updating the properties below:

kdb.host=localhost
kdb.host=localhost
kdb.port=6007
kdb.username=admin
kdb.password=admin
server.port=8080

kdb.port=6007

kdb.username=admin

kdb.password=admin

server.port=8080


#####EndPoints
##### EndPoints
The kdb-rest-service provides two endpoints:executeFunction and executeQuery.

The executeFunction provides a means to call a predefined function and pass parameters to the kdb instance.
For example this is the format of a request call a function called plus which passes two arguments labelled "xarg" and "yarg" with values 96.3 and 9.7:

e.g.
{
"function_name" : "plus",
"arguments" : {
"xarg" : "96.3",
"yarg" : "9.7"

{
"function_name" : "plus",
"arguments" :
{
"xarg" : "96.3",
"yarg" : "9.7"
}
}
}

The executeQuery provides a means to provide a query to the kdb instance, by default this endpoint is disabled using the property freeform.query.mode.enabled, to enable change the value to true.
For example this is the format of a synchronous query request where the user expects a response to be returned:

{
"type" : "sync",
"query" : "select from table",
"response" : true
}

#####Certificates
The requests are sent in HTTPS format and to provide this the project has a self-signed certifiate embedded within. It is strongly recommended that you add your own certificate. Updating the certificate will require and update to the following properties in application.properties:

security.require-ssl=true

server.ssl.key-store-type=PKCS12

server.ssl.key-store=classpath:keystore.p12
e.g.


server.ssl.key-store-password=aquaq2018
{
"type" : "sync",
"query" : "select from table",
"response" : true
}

server.ssl.key-alias=tomcat
##### Certificates
The requests are sent in HTTPS format and to provide this the project has a self-signed certifiate embedded within. It is strongly recommended that you add your own certificate. Updating the certificate will require an update to the following properties in `application.properties`:

#####Authentication
The rest service uses basic authentication and is using a single username and password which are configured in the application.properties file:
security.require-ssl=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=aquaq2018
server.ssl.key-alias=tomcat

basic.authentication.user=user
##### Authentication
The rest service uses basic authentication and is using a single username and password which are configured in the `application.properties` file:

basic.authentication.password=pass
basic.authentication.user=user
basic.authentication.password=pass

These value are provided within the header of the request, it is strongly recommended to invoke your own security if you use the project.


##Deploying
## Deploying

There is a DockerFile within the project for deploying the project on docker.

Alternatively it can be run locally by providing the appropriate build configuration via command line or ide.

##Built with
Maven

##Licensing
Please see license file.
Alternatively it can be run locally by providing the appropriate build configuration via command line or IDE.

##Contributing
The branch is currently locked down and will require a pull request reviewed by a member of the aquaq team before any changes can be committed.
## Contributing
The branch is currently locked down and will require a pull request reviewed by a member of the AquaQ team before any changes can be committed.

0 comments on commit 8e3cba1

Please sign in to comment.