Skip to content

IQ

IQ supports the use-cases where a client simply needs a BigData engine support with the simplicity of configurable collections, indexes, PaaS, and removes the needs to self-manage a data center. The features of the Secure Data Platform accelerate the time to develop applications on a data layer by simplifying the interactions and management.

Advantages to the IQ layer is that the Secure Data Grid provides all the advantages of a Platform-as-a-Service (PaaS). The IQ layer also provides the ability to manage data in a flexible way. It allows an admin to define dictionaries (aka schemas) that can be loosely structured to fully defined with datatypes, required fields, and how to handle undefined fields. Bulk loading and integration jobs to move data into the platform easier. Also any data stored in the platform becomes easily accessible to the AIQ Dashboard application. Allowing users to define the type of analytics and Insights that a unlock the potential of the data stored in the platform.

Getting Started

BurstIQ Administrators must create a new client data-space before any interactions can begin. Once that and a username/password credential has been created with an ADMIN role it is possible to start the tutorial. Remember that a “client” name identifies a unique data-space within the Secure Data Grid that segments that client’s data from others.

Tutorials
Hello World cURL
Hello World Insomnia
Hello World Postman

Collection Definition

As mentioned above, a collection has a dictionary that defines what is allowed to be stored within the collection. It also does a “light-touch” on bulk load and save to ensure the inbound data matches the datatype and structure of the dictionary. The purpose of this is to ensure that data is consistent enough to ease the ability of a user (data analyst) to write queries and access data. But again, the dictionary is flexible enough to take data in however the user wishes to store data.

Authorization

All of the API calls for the IQ functions require the use of the Basic Authorization header; with credentials provided by BurstIQ or by the client’s administrator.

Every API call requires a cookie and header values to be set.

Basic Authorization Headers:

content-type: application/json
accept: application/json
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l

NOTE: The basic auth digest is a Base64 encoded string which contains the username:password prefixed with the term ‘Basic’ (see https://en.wikipedia.org/wiki/Basic_access_authentication).

NOTE: Setting the content-type and accept headers ensure both server and client are expecting JSON. This is true for MOST of the APIs. However there are a few that are multi-part and the content-type header will be different.

CRUD (Create, Read, Update, and Delete)

There are CRUD endpoints for transactional (record-level) operations.

The PUT endpoint below will perform an insert; and if the dictionary contains a business unique index then the platform will attempt an “upsert” (which is an update first based on those unique fields, and if no record matches to update then the record is inserted).

PUT

PUT {base_url}/api/iq/{collection_name}

DELETE

The DELETE will delete the record based on the TQL that is sent in the body of the request.

DELETE {base_url}/api/iq/{collection_name}/query

POST

The POST will query for data you would like to view, this can take one of TQL, TQLFlow or a TQL Where Clause.

POST {base_url}/api/iq/{collection_name}/query

NOTE: For further information on how to use these endpoints please see the Swagger Documentation or the Tutorial section.


Bulk Load (Jobs)

It is possible to upload bulk, flat files through the following endpoint. A job id is returned for reference to the status.

POST {base_url}/api/iq/{collection_name}/fileloader/job

Using the return job id, it is possible to query the status of the job.

GET {base_url}/api/iq/{collection_name}/fileloader/job/{job_id}