Skip to main content

wazuhscatune

wazuhscatune is a local application for tailoring a trusted Wazuh Security Configuration Assessment (SCA) baseline. It opens a browser-based review UI where every check is explicitly accepted, recorded as an exception, or marked as not applicable.

Review states:

  • Unreviewed — not yet explicitly reviewed.
  • Accepted — retained in the tailored policy.
  • Exception — removed with a justification because the check applies but the deviation is intentionally accepted, for example because risk is accepted or an alternative control is used.
  • Not Applicable — removed with a justification because the check does not apply to the target system or role.

Review Wazuh SCA checks

Requirements

Python 3.11 or newer. Python 3.11, 3.12, and 3.13 are tested on Windows, macOS, and Linux.

wazuhscatune is a local single-user application. Server deployment, multi-user operation, and use of the internal sca package as a Python library are not supported.

Install

Install with pipx:

pipx install wazuhscatune

From a local checkout:

pipx install .

Run

wazuhscatune

The application listens on http://127.0.0.1:5000 and opens the local browser. If the browser does not open automatically, open that address manually.

Upload Wazuh SCA file

Workflow

  1. Upload a Wazuh SCA .yml, .yaml, or a ZIP previously exported by wazuhscatune.
  2. Name and describe the tailored policy.
  3. Review every check as accepted, as a justified exception, or as justified Not Applicable.
  4. Review the final decisions.
  5. Export a ZIP containing:
    • <policy>.yml — tailored SCA policy;
    • <policy>_exceptions.yml — machine-readable removal record, split between accepted-risk exceptions and not-applicable checks;
    • <policy>_exceptions.md — human-readable report with the same categories and baseline compliance mappings.

Exception and Not Applicable decisions both remove the check from the tailored policy. Export is blocked until every check has been reviewed, and at least one check must remain included. The uploaded baseline is never modified.

Review decisions before export

Local data

Review state is saved locally after each decision. Drafts can be recovered while their uploaded baseline remains available. Application-created temporary files expire after 48 hours by default; configure this with WAZUHSCATUNE_FILE_TTL_HOURS.

The browser session lifetime is 24 hours. Uploads, drafts, session files, exports, and logs remain on the local machine.

Validation

Input validation covers YAML syntax and expected Wazuh SCA structure, including policy metadata, requirements, checks, rule lists, compliance mappings, variables, and unique integer check IDs. ZIP imports are bounded by upload, member-count, and extracted policy-size limits. The application does not execute SCA checks or emulate the Wazuh SCA engine.

Development

For development and testing:

python -m pip install -e '.[dev]'
python -m pytest
python -m pycodestyle sca
python -m mypy sca
python -m compileall -q sca
python -m build
python -m twine check --strict dist/*

Python 3.11 is the compatibility floor. pyproject.toml is the authoritative package and dependency declaration.

Release history is kept in CHANGELOG.md.

License

GNU General Public License v3 or later. See LICENSE.

Release files for wazuhscatune 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wazuhscatune 0.2.1
File Size Uploaded
wazuhscatune-0.2.1.tar.gz 45.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wazuhscatune 0.2.1
File Interpreter ABI Platform
wazuhscatune-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 98.9 kB

Release files / wazuhscatune-0.2.1.tar.gz

Download URL wazuhscatune-0.2.1.tar.gz
Size 45.8 kB
Tags Source
SHA-256 checksum
How to use checksums
01aa293a003e233e3a58e3139a20ac6b7dba6967ae218c6213c9d4efdfa1f4bb
BLAKE2b-256 checksum
How to use checksums
09ef7b840f6fd4017e8bf47221995d697c3bc5387920e93a6713ebf64d29973e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log

Release files / wazuhscatune-0.2.1-py3-none-any.whl

Download URL wazuhscatune-0.2.1-py3-none-any.whl
Size 53.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4a016462e3d225dea1a4d8d90b323367aea91f389ca959aa332d37f832677bb
BLAKE2b-256 checksum
How to use checksums
4500d78b588a559794dfe8d02717acd5e83cdb48f979c7d2693be4b5f1ae9f06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page