SmartModule Development Kit (SMDK)
Check out the SmartModule Development Kit page for more information.
SmartModule Development Kit utility
Usage: smdk <COMMAND>
Commands:
build Builds SmartModule into WASM
generate Generates a new SmartModule Project
test Test SmartModule
load Load SmartModule into Fluvio cluster
publish Publish SmartModule to Hub
set-public Set package as public
version Print smdk version information
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
Builds SmartModule into WASM
Usage: smdk build [OPTIONS] [-- <EXTRA_ARGUMENTS>...]
Arguments:
[EXTRA_ARGUMENTS]... Extra arguments to be passed to cargo
Options:
--release <RELEASE> Release profile name [default: release-lto]
-p, --package-name <PACKAGE_NAME> Optional package/project name
-h, --help Print help
Generates a new SmartModule Project
Usage: smdk generate [OPTIONS] [NAME]
Arguments:
[NAME]
SmartModule Project Name
Options:
--project-group <GROUP>
SmartModule Project Group Name. Default to Hub ID, if set. Overrides Hub ID if provided
[env: SMDK_PROJECT_GROUP=]
--destination <PATH>
Local path to generate the SmartModule project. Default to directory with project name,
created in current directory
[env: SMDK_DESTINATION=]
--silent
Disable interactive prompt. Take all values from CLI flags. Fail if a value is missing
--template-repo <GIT_URL>
URL to git repo containing templates for generating SmartModule projects. Using this
option is discouraged. The default value is recommended
[env: SMDK_TEMPLATE_REPO=]
--template-repo-branch <BRANCH>
An optional git branch to use with `--template-repo`
[env: SMDK_TEMPLATE_REPO_BRANCH=]
--template-repo-tag <TAG>
An optional git tag to use with `--template-repo`
[env: SMDK_TEMPLATE_REPO_TAG=]
--template-path <PATH>
Local filepath containing templates for generating SmartModule projects. Using this option
is discouraged. The default value is recommended
[env: SMDK_TEMPLATE_PATH=]
--sm-crate-repo <GIT_URL>
URL of git repo to include in generated Cargo.toml. Repo used for `fluvio-smartmodule`
dependency. Using this option is discouraged. The default value is recommended
[env: SMDK_SM_CRATE_REPO=]
--sm-repo-branch <BRANCH>
An optional git branch to use with `--sm-crate-repo`
[env: SMDK_SM_REPO_BRANCH=]
--sm-repo-tag <TAG>
An optional git tag to use with `--sm-crate-repo`
[env: SMDK_SM_REPO_TAG=]
--sm-repo-rev <GIT_SHA>
An optional git rev to use with `--sm-crate-repo`
[env: SMDK_SM_REPO_REV=]
--sm-crate-path <PATH>
Local filepath to include in generated Cargo.toml. Path used for fluvio-smartmodule
dependency. Using this option is discouraged. The default value is recommended
[env: SMDK_SM_CRATE_PATH=]
--sm-crate-version <X.Y.Z>
Public version of `fluvio-smartmodule` from crates.io. Defaults to latest. Using this
option is discouraged. The default value is recommended
[env: SMDK_SM_CRATE_VERSION=]
--sm-type <TYPE>
Type of SmartModule project to generate. Skip prompt if value given
[env: SMDK_SM_TYPE=]
[possible values: filter, map, array-map, aggregate, filter-map]
--sm-public <PUBLIC>
Visibility of SmartModule project to generate. Skip prompt if value given
[env: SMDK_SM_PUBLIC=]
[possible values: true, false]
--with-params
Include SmartModule input parameters in generated SmartModule project. Skip prompt if
value given
[env: SMDK_WITH_PARAMS=]
--no-params
No SmartModule input parameters in generated SmartModule project. Skip prompt if value
given
[env: SMDK_NO_PARAMS=]
--hub-remote <HUB_REMOTE>
Set the remote URL for the hub
[env: SMDK_HUB_REMOTE=]
--develop
Using this option will always choose the Fluvio repo as source for templates and
dependencies
[env: SMDK_DEVELOP=]
-h, --help
Print help (see a summary with '-h')
Test SmartModule
Usage: smdk test [OPTIONS] [KEY]
Arguments:
[KEY] Key to use with the test record(s)
Options:
--text <TEXT>
Provide test input with this flag
--stdin
Read the test input from the StdIn (e.g. Unix piping)
--file <FILE>
Path to test file. Default: Read file line by line
--raw
Read the file as single record
-k, --key-value
Print records in "[key] value" format, with "[null]" for no key
-e, --params <PARAMS>
(Optional) Extra input parameters passed to the smartmodule module. They should be passed
using key=value format Eg. fluvio consume topic-name --filter filter.wasm -e foo=bar -e
key=value -e one=1
--transforms-file <TRANSFORMS_FILE>
(Optional) File path to transformation specification
-t, --transform <TRANSFORM>
(Optional) Pass transformation specification as JSON formatted string. E.g. smdk test
--text '{}'
--transform='{"uses":"infinyon/jolt@0.1.0","with":{"spec":"[{\"operation\":\"default\",\"spec\":{\"source\":\"test\"}}]"}}'
-v, --verbose
verbose output
-r, --record <RECORD>
Records which act as existing in the topic before the SmartModule starts processing.
Useful for testing `lookback`. Multiple values are allowed
-l, --lookback-last <LOOKBACK_LAST>
Sets the lookback parameter to the last N records
--release <RELEASE>
Release profile name [default: release-lto]
-p, --package-name <PACKAGE_NAME>
Optional package/project name
--wasm-file <WASM_FILE>
-h, --help
Print help
Load SmartModule into Fluvio cluster
Usage: smdk load [OPTIONS]
Options:
--name <NAME>
--package-path <PACKAGE_PATH> Optional path to SmartModule package directory
--release <RELEASE> Release profile name [default: release-lto]
-p, --package-name <PACKAGE_NAME> Optional package/project name
--wasm-file <WASM_FILE> Optional wasm file path
-c, --cluster <host:port> Address of cluster
--tls Enable TLS
--enable-client-cert TLS: use client cert
--domain <DOMAIN> Required if client cert is used
--ca-cert <CA_CERT> Path to TLS ca cert, required when client cert is enabled
--client-cert <CLIENT_CERT> Path to TLS client certificate
--client-key <CLIENT_KEY> Path to TLS client private key
-P, --profile <profile>
--dry-run Validate package config files, and connection to cluster. Skip
SmartModule load to cluster
-h, --help Print help
Publish SmartModule to Hub
Usage: smdk publish [OPTIONS] [PACKAGE_META]
Arguments:
[PACKAGE_META]
Options:
--release <RELEASE>
Release profile name
[default: release-lto]
-p, --package-name <PACKAGE_NAME>
Optional package/project name
--ipkg <IPKG>
path to the ipkg file, used when --push is specified
--public-yes
don't ask for confirmation of public package publish
--pack
do only the pack portion
--push
given a packed file do only the push
--remote <REMOTE>
-h, --help
Print help (see a summary with '-h')
Set package as public
Usage: smdk set-public [OPTIONS]
Options:
--release <RELEASE> Release profile name [default: release-lto]
-p, --package-name <PACKAGE_NAME> Optional package/project name
-h, --help Print help
Print smdk version information
Usage: smdk version
Options:
-h, --help Print help