Prerequisites
- Have a Heex CLI
- Have an API_KEY. Should be accessible in your personnal space on the heex cloud platform. If you already logged-in you don’t need to add the Api-Key in your command line.
Usage
Subcommand | Description |
---|---|
get | Retrieve implementation details with a given ID. |
list | Retrieve implementations based on optional filters. |
create | Create a new implementation on the cloud. |
create-template-file | Advanced usage: creates a template file for implementation creation configuration. |
create-code | Verifies if the implementation id exists in the cloud and generates code for that implementation. |
update | Update existing implementation for a given id. |
delete | Delete an implementaion with a given ID. |
unlink | Unlink implementation from a given system. |
How to create a new implementation
2 different ways to create a new implementation on the cloud, both using the commandcreate
:
- Create an implementation only by name and some optional description, using the following options:
--name
: [mandatory if no input-file provided] Must be unique on your cloud workspace.--implementation-type
: [mandatory if no input-file provided] Type of the implementation (MONITOR
orRECORDER
).--description
: Description of the implementation [mandatory if no input-file provided].--system-middleware
: System middleware.--operating-system
: Operating system (Defaults to current os type).
- Another way to create an implementation is to use a configuration file that contains all the data you want to generate, if you want to use it:
- You can generate a template file using the
./heex implementation create-template-file
command, and then fill the given file as you need. - Once it is filled, use the create subcommand with the
--input-file
input pointing to the filled file.
- You can generate a template file using the
⚠️ Warning: implementation name or description with special characters If your implementation name or description contains special characters (i.e ’ or space), please use double quotes before and after your names.For example, for a implementation called Jane’s implementation, provide that as —name “Jane’s implementation”. Note that whichever way you chose to create your implementation, you can add the option
--output-file
which will save the created data info into a file. You’ll have to provide a filepath with a json extension: /path/to/file.json
- If you provide
--json-output
, it will disable all logging (except errors), and your command shall only output the result in a json format. Be aware that it is not compatible with ‘—output-file’ option.
How to create implementation code
Thecreate-code
command verifies if the implementation id exists in the cloud and generates implementation code for that implementation.
Available options:
--api-key
: Your user API_KEY which can be found on the cloud. [required]. No need to provide if you have an active userconfig.--implementation-id
: ID of the involved implementation. [required]--path-to-sdk
: If you don’t run from inside a unzipped sdk package, provide the path to its root.--language
: Language of the implementation code, options are [‘python’, ‘cpp’]. [default: python]--name
: Name of the implementation file to create. [required]
<SDK_PATH>/samples/code_implementations/<LANGUAGE>/<FILE_NAME>
.
For C++ implementations, in addition to the implementation file, the following files will be generated:
- A
CMakeLists.txt
file in the same directory to configure the build. - A
buildSample.sh
script to compile the code.
buildSample.sh
script to build the executable.
To use the implementation(s) please check Run your implementations.
How to update an existing implementation
You can update an existing implementation using theupdate
subcommand. This will command allows to add new signals to the existing implementation.
Available options:
--api-key
: Add your user API_KEY which can be found on the cloud [required]. No need to provide if you have an active userconfig.--implementation-id
: ID of the involved implementation [required].--signal-id
: Provide signal IDs. Multiple can be given:--signal-id ID1 --signal-id ID2 ...
How to get implementation details
You can get the details of a implementation if you provide animplementation-id
, see example below:
Available options:
--api-key
: Add your user API_KEY which can be found on the cloud [required]. No need to provide if you have an active userconfig.--implementation-id
: ID of the involved implementation [required].--output-file
: The result will be saved into this provided filepath. The output format is json, so please provide a filepath with that format: /path/to/file.json--json-output
: Disables all logging (except errors), and your command shall only output the result in a json format. Not compatible with ‘—output-file’ option.
How to get implementation list
You can get list of all available implementations in a given workspace. Several filters are available to narrow down the results. Available options:--api-key
: Add your user API_KEY which can be found on the cloud [required]. No need to provide if you have an active userconfig.--implementation-id
: Filter on a specific implementation IDs. Multiple can be given:--implementation-id ID1 --implementation-id ID2 ...
--signal-id
: Filter on a specific signal IDs. Multiple can be given:--signal-id ID1 --signal-id ID2 ...
--status
: Filter on implementation status. Possible choices: IMPLEMENTATION_STATUS_UNSPECIFIED, IMPLEMENTATION_REQUESTED, IMPLEMENTATION_DEPLOY, IMPLEMENTATION_READY--priority
: Filter on implementation priority. Possible choices: PRIORITY_UNSPECIFIED, CRITICAL, LOW, MEDIUM, HIGH--name
: Filter on implementation name.--implementation-type
: Implementation type.--output-file
: The result will be saved into this provided filepath. The output format is json, so please provide a filepath with that format: /path/to/file.json--json-output
: Disables all logging (except errors), and your command shall only output the result in a json format. Not compatible with ‘—output-file’ option.
--output-file
flag. If the provided path doesn’t exist, it will be created. See example below where several filters can be used at the same time:
Usage:
How to delete an implementation
To be able to delete an implementation you need to provide aimplementation-id
. If the implementation is linked to any system, it is not possible to delete: you need to unlink it from the system(s) first and then try again.
Available options:
--api-key
: Add your user API_KEY which can be found on the cloud [required]. No need to provide if you have an active userconfig.--implementation-id
: ID of the involved implementation [required].
How to unlink an implementation from a system
You can unlink an implementation from a given system using theunlink
subcommand. This is useful when you want to remove an implementation from a system before deleting it or when the implementation is not compatible with the system anymore.
The available flags are:
--api-key
: Provide your API_KEY [required]. No need to provide if you have an active userconfig.--signal-id
: ID of the involved signal [required].--implementation-type
: Implementation type (MONITOR
orRECORDER
) [required].--system-id
: ID of the system to unlink the implementation from [required].