Optional extras

Add the MicroStrategy SDK, which the public runtime image does not ship, by building your own image from a distribution lock.

The public nistor-runtime image contains every open-source tool, but not every library a tool can use. A library whose licence does not allow redistribution in the public image is an optional extra of its tool, and you add it in an image you build yourself.

The MicroStrategy SDK#

The MicroStrategy tool's discovery (reading projects, cubes and reports when the compiler builds the graph) needs MicroStrategy's Python SDK, mstrio-py. It ships under a proprietary licence, so it is the extra sdk of nistor-tool-microstrategy, and the public image does not install it.

Without it, the tool and its executors still load. What needs the SDK stops with this message:

The MicroStrategy SDK (mstrio-py) is not installed: MicroStrategy discovery needs it. It is the optional extra nistor-tool-microstrategy[sdk], which the public image does not ship (mstrio-py has a proprietary licence); install it where the compiler runs (pip install 'nistor-tool-microstrategy[sdk]') and restart.

Build an image with the SDK#

Build your own runtime image from a distribution that asks for the extra. Do not add it with pip install on top of the public image (see below).

  1. Copy the open-source distribution, distributions/oss/distribution.toml, into an environment directory of your deployment repository (for example envs/prod/). Add the extra under [packages], and keep the extras that are already there. Set the nistor source's ref under [sources] to the release tag you run:

    [packages]
    extras = { nistor-tool-gcp = ["dataplex"], nistor-mcp = ["remote"], nistor-tool-microstrategy = ["sdk"] }
    
  2. Lock it, then build the image from the lock:

    nistor dist lock --env-dir envs/prod
    nistor dist build --env-dir envs/prod --tag <your registry>/nistor-runtime:<tag>
    

    nistor dist build sees the extra in the lock. It allows mstrio-py, that one package, through the image's licence check, and applies the compatibility patch that the image build carries for it. Every other package is still checked.

  3. Push the image to your own registry, and use it for the roles that run the compiler, or for every role.

Run nistor dist lock --help and nistor dist build --help for the other options.

Edit this page on GitLab

↑ ↓ to moveEnter to openEsc to close