Command line utility for K as a Service
Project description
KaaS CLI
Simple Installation
Our deployments can be found on Pypi.
Installation
pip install --user kaas-cli
or
sudo pip install kaas-cli
For Developers
Prerequisites: python >= 3.11, pip >= 20.0.2, poetry >= 1.3.2.
Installation
To install the package using pip, start by building from Source
make build
pip install dist/*.whl
Installation with uv
uv is a fast Python package manager that can be used as an alternative to pip and poetry.
uv sync
This will create a virtual environment and install all dependencies.
Environment Variables
Configure the CLI by copying the example environment file and setting up the necessary environment variables:
cp .flaskenv.example .flaskenv
Then, edit the .flaskenv file to match your settings.
Usage
After installing the dependencies with poetry install, you can spawn a shell using poetry shell, or alternatively, use make:
make shell
kaas-cli hello
kaas-cli --version
Usage with uv
After installing the dependencies with uv sync, you can run CLI commands directly:
uv run kaas-cli hello
uv run kaas-cli --version
Or activate the virtual environment and use the CLI as usual:
source .venv/bin/activate
kaas-cli hello
kaas-cli --version
To verify the installation, run kaas-cli hello. If you see the message Hello World!, the CLI is set up correctly.
Static Analysis
kaas-cli uses Pyright for static type checking.
make check-pyright
make check
Run Command by Mode
kaas-cli run supports multiple test modes. Flags are mode-specific:
kontrol:--build-only,--prove-only-profile,--kontrol-version,--kontrol-docker-image,--extra-build-args,--extra-prove-argsforge:--foundry-version,--foundry-docker-image,--extra-build-args,--extra-test-argsgo(remote only):--fuzz-targets,--go-version,--go-build-directory,--execution-timeoutrust(remote only):--fuzz-targets,--rust-version,--rust-build-directory,--rust-fuzz-engine,--rust-fuzz-args,--execution-timeout
Remote Fuzzing Jobs
kaas-cli run supports remote fuzzing with --test-mode go and --test-mode rust.
Use --fuzz-targets with a comma-separated list (up to 5 targets). Each target starts a separate remote job.
The CLI checks available fuzzing capacity before submitting jobs. If the vault's concurrent job limit is reached, you'll see a message indicating how many slots are available.
Go fuzzing
kaas-cli run \
--mode remote \
--test-mode go \
--vault-spec org/vault \
--token "$KAAS_TOKEN" \
--branch main \
--fuzz-targets "^FuzzTransfer$,^FuzzMint$" \
--go-version 1.23.8 \
--go-build-directory "./..."
kaas go test shorthand
The kaas go test command mirrors go test -fuzz syntax for a more familiar interface. It supports persistent configuration via .kaas-cli.toml (see below).
kaas go test -fuzz='^FuzzVerifyInteropMessagesValid$' ./op-supernode/supernode/activity/interop/
Multiple fuzz targets can be specified as a comma-separated list:
kaas go test -fuzz='^FuzzTransfer$,^FuzzMint$' ./path/to/pkg/
Each target starts a separate remote job (up to 5 targets).
Additional flags for kaas go test:
--commit: Pin a specific git commit hash (defaults to HEAD)--fuzztime: Go-style duration of at least1m(e.g.'1m','5m','1h'), converted to execution timeout--execution-timeout: Execution timeout in minutes (mutually exclusive with--fuzztime)
Rust fuzzing
kaas-cli run \
--mode remote \
--test-mode rust \
--vault-spec org/vault \
--token "$KAAS_TOKEN" \
--branch main \
--fuzz-targets "fuzz_transfer,fuzz_mint" \
--rust-version stable \
--rust-build-directory "." \
--rust-fuzz-engine libfuzzer
Configuration File (.kaas-cli.toml)
The kaas go test command supports persistent configuration via a .kaas-cli.toml file. If no config file is found, the CLI will interactively prompt you to create one.
CLI flags always take priority over config values. The config file is automatically added to .gitignore.
[default]
vault_spec = "org/vault"
token = "your-token"
branch = "main"
url = "https://kaas.runtimeverification.com/"
[go]
go_version = "latest"
go_build_directory = "./..."
execution_timeout = 480
Documentation
For detailed usage instructions of the kaas-cli tool, please refer to the official documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kaas_cli-0.1.300.tar.gz.
File metadata
- Download URL: kaas_cli-0.1.300.tar.gz
- Upload date:
- Size: 36.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01bcb5d735d7ea8220fd178272ce1d6176dd8a110b9a0b2cd57793303c1bbb5e
|
|
| MD5 |
87e43bbbacb97a60dd6409bf8f28cdf7
|
|
| BLAKE2b-256 |
17f589621d23a070e641b9807a38e35ef5e83b862e64467b3c227a3aec05d764
|
File details
Details for the file kaas_cli-0.1.300-py3-none-any.whl.
File metadata
- Download URL: kaas_cli-0.1.300-py3-none-any.whl
- Upload date:
- Size: 40.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
501c3bc772245e89746ab60be66be71e0efa62cca04ceaa2dfbf3cc7a8988cc4
|
|
| MD5 |
2ee65155b0a3f4331615755ccb903849
|
|
| BLAKE2b-256 |
7be127bf0d177826a3ab757ecf647415dac9552f0e98b43776a367925be82de9
|