pyproject.toml¶
The pyproject.toml is a standardized file for python projects, which contains critical metadata about your app and its dependencies.
The file contains:
Basic application info (e.g. name, version, description)
Dependencies, which are managed automatically by uv
The import path for your app’s
Appinstance.Settings for various development tools (e.g. linters and formatters)
Here’s an example for a first app:
[project]
name = "my_first_app"
version = "0.0.1"
description = "My first app"
license = "Apache-2.0"
requires-python = ">=3.13, <3.16, !=3.14.*"
authors = [ "Me", "Myself", "I" ]
dependencies = [
"splunk-soar-sdk",
]
[tool.soar.app]
main_module = "src.app:app"
### YOU SHOULD NOT NEED TO TOUCH ANYTHING BELOW THIS LINE ###
In general, you should only have to edit entries under the [project] section. If you need to add dependencies, use the uv CLI tool to do so (with uv add).
Python version support¶
The SDK supports Python 3.13 and 3.15. New apps target both versions by default.
Use soarapps init --python-version 3.13 or --python-version 3.15 to target
a single version and bundle only its dependency wheels.
To migrate an existing app from Python 3.14, update requires-python to
">=3.13, <3.16, !=3.14.*" and replace 3.14 with 3.15 in the
[tool.uv] environments and required-environments lists. Update any explicit
App(python_version=...) values to use 3.15 or PythonVersion.PY_3_15.
Run uv lock --upgrade to resolve dependencies with Python 3.15-compatible
Linux wheels, then rebuild the app with soarapps package build. Generated
manifests now use pip315_dependencies and wheels/python315/.