Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/qlik-oss/enigma-go

Go library for consuming Qlik's Associative Engine.
https://github.com/qlik-oss/enigma-go

blackduck engine enigma golang qix qlik

Last synced: 7 days ago
JSON representation

Go library for consuming Qlik's Associative Engine.

Awesome Lists containing this project

README

        

![](enigma-go.png)

[![CircleCI](https://circleci.com/gh/qlik-oss/enigma-go.svg?style=shield)](https://circleci.com/gh/qlik-oss/enigma-go)
[![Go Report Card](https://goreportcard.com/badge/qlik-oss/enigma-go)](https://goreportcard.com/report/qlik-oss/enigma-go)
![Latest Version](https://img.shields.io/github/release/qlik-oss/enigma-go.svg?style=flat)

enigma-go is a library that helps you communicate with a Qlik Associative Engine.
Examples of use may be building your own analytics tools, back-end services, or other tools communicating with a Qlik Associative Engine.

---

- [Installation](#installation)
- [Getting started](#getting-started)
- [Schemas](#schemas)
- [Release](#release)
- [Updating enigma-go to new engine schema](#updating-enigma-go-to-new-engine-schema)

---

## Installation

```bash
go get -u github.com/qlik-oss/enigma-go/v4
```

## Getting started

Connecting to a Qlik Associative Engine and interacting with a document/app involves at least the following steps:

1. Create and set up a Dialer object with TLS configuration, etc.

2. Open a WebSocket to the Qlik Associative Engine using the Dial function in the Dialer.

3. Open or create a document/app using openDoc or createApp.

Refer to the [examples](https://github.com/qlik-oss/enigma-go/tree/master/examples) section for more information.

## Schemas

enigma-go includes generated API code that is based on the latest available Qlik Associative Engine schema.
When a new schema is available, a new version of enigma-go will be made available.

## Release

To release a new version of enigma-go you have to be on the **master** branch.
From there you can run the [release.sh](./release/release.sh) script. The usage is:
```bash
./release.sh
```
where the argument specifies what should be bumped. The release-script does a couple of things.
1. Creates a new version based on previous version-tag (if any, otherwise 0.0.0) and suffixes it with the QIX schema version
as metadata. For example bumping minor when there are no previous tags will result in the version `0.1.0+12.429.0`.
2. Generates a new API specification using the new version.
3. Adds the resulting `api-spec.json` file to a commit with the message `Release: for QIX schema version `.
4. Creates a tag containing the version with the same message as in step 3.
5. Afterwards, adds another commit bumping the `api-spec.json` to latest again.

After the script has run, check the results. If everything looks good run:
```bash
git push --follow-tags
```
to push the tag and commit to **master**.
The release-script also checks if the local repo is in a pristine state: no untracked files or uncommitted change and, you
have to be up-to-date with the latest changes on **master**.

## Updating enigma-go to new engine schema

- Generate enigma-go: [Generate-Docs](./schema/README.md)
- Update the API specification: [Update-API-Docs](./spec/README.md)