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
- Getting started
- Schemas
- Contributing and commit messages
- Release
- Updating enigma-go to new engine schema
go get -u github.com/qlik-oss/enigma-go/v4Connecting to a Qlik Associative Engine and interacting with a document/app involves at least the following steps:
-
Create and set up a Dialer object with TLS configuration, etc.
-
Open a WebSocket to the Qlik Associative Engine using the Dial function in the Dialer.
-
Open or create a document/app using openDoc or createApp.
Refer to the examples section for more information.
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.
This project uses conventional commits, for example feat: add X,
fix(deps): update Y or feat!: remove Z for breaking changes. Pull request titles are validated by the
Semantic PR workflow, and the commit messages are used to determine the
version of the next release. See also CONTRIBUTING.
Releases are created by the release-enigma-go GitHub workflow, which is run
manually (workflow_dispatch) on the master branch. It takes two inputs:
version:auto,major,minororpatch. Withautothe bump is derived from the conventional commits since the previous tag: a breaking change (!or aBREAKING CHANGEfooter) givesmajor,featgivesminorandfix/perfgivespatch. If there are none of these the release is aborted.dry_run: shows what would be pushed without pushing anything.
The workflow runs the release.sh script, pushes the resulting tag and creates a GitHub release with auto-generated release notes.
The script can also be run locally from the master branch:
./release/release.sh <major|minor|patch|auto>It does the following:
- Checks that the local repo is pristine (no untracked files or uncommitted changes), that you are on master and that you are up-to-date with the remote master.
- Creates a new version based on the previous version-tag (if any, otherwise 0.0.0) and the requested bump.
- Creates an annotated tag
v<version>with the messageRelease: v<version> for QIX schema version <qix_version>.
The script does not push anything. If everything looks good, run:
git push --follow-tags- Generate enigma-go: Generate-Docs
