All Projects → qlik-oss → mira

qlik-oss / mira

Licence: MIT license
Qlik Associative Engine discovery service for orchestrated environments.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to mira

enigma-go
Go library for consuming Qlik's Associative Engine.
Stars: ✭ 36 (+176.92%)
Mutual labels:  engine, qix, blackduck
hamus.js
hamus.js is a collection of React hooks for sharing reusable functionality used when dealing with Qlik Associative Engine projects.
Stars: ✭ 13 (+0%)
Mutual labels:  blackduck, dockerbump
catwalk
UI to ease the data modelling experience using Qlik Associative Engine.
Stars: ✭ 47 (+261.54%)
Mutual labels:  blackduck, dockerbump
zenaton-node
⚡ Node.js library to run and orchestrate background jobs with Zenaton Workflow Engine
Stars: ✭ 50 (+284.62%)
Mutual labels:  engine, orchestration
opensvc
The OpenSVC node agent
Stars: ✭ 27 (+107.69%)
Mutual labels:  discovery, orchestration
coredns-dockerdiscovery
Docker Discovery Plugin for CoreDNS
Stars: ✭ 36 (+176.92%)
Mutual labels:  discovery
UE4-BUIValidator
UE4 UI Texture Validator Plugin
Stars: ✭ 48 (+269.23%)
Mutual labels:  engine
crynn
3D Game Engine Created In C++ & OpenGL
Stars: ✭ 45 (+246.15%)
Mutual labels:  engine
puccini
Cloud topology management and deployment tools based on TOSCA
Stars: ✭ 74 (+469.23%)
Mutual labels:  orchestration
Austen-Works
Jane Austen’s Collected Works
Stars: ✭ 26 (+100%)
Mutual labels:  engine
mdw
centurylinkcloud.github.io/mdw/
Stars: ✭ 44 (+238.46%)
Mutual labels:  orchestration
imsearch
Framework to build your own reverse image search engine
Stars: ✭ 64 (+392.31%)
Mutual labels:  engine
DungeonMaster.NET
Reimplementation of famous old Dungeon Master game.
Stars: ✭ 23 (+76.92%)
Mutual labels:  engine
Wasabi
Wasabi Vulkan Game Engine
Stars: ✭ 34 (+161.54%)
Mutual labels:  engine
whichpm
Locates installed Perl modules.
Stars: ✭ 20 (+53.85%)
Mutual labels:  discovery
saltstack-cheatsheet
🧂 SaltStack Cheat Sheet Plus
Stars: ✭ 31 (+138.46%)
Mutual labels:  orchestration
mapmint
Fast and easy webmapping.
Stars: ✭ 51 (+292.31%)
Mutual labels:  engine
Mezzanine
A game engine that supports high performance 3d graphics physics and sound
Stars: ✭ 18 (+38.46%)
Mutual labels:  engine
sitewhere-k8s
SiteWhere / Kubernetes integration including Helm Charts
Stars: ✭ 17 (+30.77%)
Mutual labels:  orchestration
edge-home-orchestration-go
Home Edge Project in LF Edge - Edge Orchestration for home edge devices to enabling smart home use cases.
Stars: ✭ 68 (+423.08%)
Mutual labels:  orchestration

Mira - A Qlik Associative Engine Discovery Service

As of 1 July 2020, Qlik Core is no longer available to new customers. No further maintenance will be done in this repository.

CircleCI Renovate enabled Coverage Status

Overview

Mira provides Qlik Associative Engine discovery in a Docker containerized environment. Mira is implemented on Node.js and supports different orchestration platforms such as Docker Swarm and Kubernetes. Mira can also operate in a simpler DNS mode and a Local mode.

The documentation in this repository is primarily intended for contributors to Mira development and for those who want to improve Mira by submitting issues.

For Mira's end-user documentation, see Qlik Core documentation site.

Contributing

Contributions are welcome and encouraged! See more info at Open Source at Qlik R&D.

Docker Image

Mira is distributed to end users as a the qlikcore/mira Docker image. Also see the Dockerfile. The version file needs to be generated before building the Docker image locally.

Running Mira as a Plain Node.js Process

For convenience and development purposes, Mira can be started as a non-Dockerized Node.js process. In this case, Mira would most commonly also be used in Local mode, so the MIRA_MODE environment variable should be provided accordingly:

$ MIRA_MODE=local npm start

Development

Editor/IDE Configuration

No particular editor or IDE is assumed. The repo root contains an .editorconfig file for editors that support it. If not, make sure that the used editor is configured accordingly.

Coding Guidelines

JavaScript code shall be developed according the Airbnb JavaScript Style Guide.

The eslintrc.json file incorporates these rules with minor modifications.

Install Packages

Once the repo has been cloned, in the repo root, run:

$ npm install

Generating version file

Mira will in run-time make use of build information e.g. commit SHA and version number. This information is already present in the Mira Docker image, but if running Mira as a non-dockerized process this file (version.json) must also be available locally. The file can be generated by running the following command:

./generate_version_file.sh

Generating the OpenAPI Specification

Mira's REST API is specified in the api-doc.yml OpenAPI document. The OpenAPI specification is generated from JSDoc by running:

$ npm run generate-openapi

Circle CI

Circle CI is configured to build a new Docker image from all pushed commits on all branches of Mira. As part of this, the built Docker image is pushed to Docker Hub. If pushing to a feature branch (different from master), the Docker image is tagged with <version>-<build-number>, where <version> is fetched from package.json, and <build-number> is the automatically increased Circle CI build number given to each build. If pushing to master the image is also tagged with latest.

Testing

Unit and component tests can be run with:

$ npm run test:unit
$ npm run test:component

These tests run Mira in isolation and does not depend on any external components.

Integration tests depend on external components. Before they can run, you must accept the Qlik Core EULA by setting the ACCEPT_EULA environment variable, you start the services by using the docker-compose.yml file:

$ ACCEPT_EULA=yes docker-compose up -d
$ npm run test:integration

To run integration tests towards a specific image tag, provide the TAG environment variable to docker-compose:

$ ACCEPT_EULA=yes TAG=:<YOUR TAG HERE> docker-compose up -d
$ npm run test:integration

See package.json for more test script variants.

Releasing

Mira service release

The helper script release.sh provides a convenient way to release a new version of the service and to automatically bump versions as needed.

Check usage information in release.sh on how to perform the release and version bumping by running:

$ release.sh -?
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].