Building Apps: Packaging (tcpackage)
Summary
This CLI tool provides a simple interface to package the App so that it can easily be deployed to the ThreatConnect platform.
Running tcpackage
will build a zip package of an App that can be installed directly in the ThreatConnect platform. For App packages that contain multiple Apps using separate install.json files, add the --bundle
argument to build a bundle. When using multiple install.json files, the prefix of the filename is the App name (e.g., MyApp.install.json will have an App name of MyApp). During the build process, validation of the install.json file will be handled automatically.
Note
Typically, the tcpackage
command is run with no arguments, or using the --bundle
flag for packages with multiple install.json files.
Usage
usage: tcpackage [-h] [--bundle] [--exclude EXCLUDE] [--config CONFIG]
[--install_json INSTALL_JSON] [--outdir OUTDIR]
optional arguments:
-h, --help Show this help message and exit
--bundle Build a bundle file.
--exclude EXCLUDE File and directories to exclude from build
--config CONFIG (Advanced) Build configuration file. (Default: tcex.json)
--install_json INSTALL_JSON
The install.json file name for the App that should be
built.
--outdir OUTDIR (Advanced) Directory to write the outfile. (Default: target)
Common Usage
The following command will build the app in the target directory of the project with and extension of .tcx.
tcpackage
Configuration Options
By default, the tcex.json
file will be loaded by tcpackage
. The following is an example of additional configuration that can be provided for the tcpackage
command.
Single App
<..snipped>
"package": {
"app_name": "MyApp",
"app_version": "v1.0",
"bundle": false,
"excludes": [
"log",
"requirements.txt",
"tcex.d"
],
"outdir": "target"
},
<snipped..>
Multiple Bundles
<..snipped>
"package": {
"bundle": true,
"bundle_name": "TCPB_-_Palo_Alto",
"bundle_packages": [{
"name": "TCPB_-_My_Bundle_Create",
"patterns": [
".*Create.*"
]
},
{
"name": "TCPB_-_My_Bundle_Delete",
"patterns": [
".*Delete.*"
]
}],
"excludes": [
"log",
"requirements.txt",
"tcex.d"
],
"outdir": "target"
},
<snipped..>