Metadata-Version: 2.4
Name: saltext.wanguard
Version: 0.1.1
Summary: Salt Extension for interacting with Andrisoft WANGuard
Author-email: "Gary T. Giesen" <ggiesen@giesen.me>
License: Mozilla Public License 2.0 (MPL 2.0)
Project-URL: Homepage, https://gitlab.com/ggiesen/saltext-wanguard
Project-URL: Documentation, https://ggiesen.gitlab.io/saltext-wanguard/
Project-URL: Source, https://gitlab.com/ggiesen/saltext-wanguard
Project-URL: Tracker, https://gitlab.com/ggiesen/saltext-wanguard/-/issues
Keywords: salt-extension
Platform: any
Classifier: Programming Language :: Python
Classifier: Programming Language :: Cython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: salt>=3006
Provides-Extra: changelog
Requires-Dist: towncrier==25.8.0; extra == "changelog"
Provides-Extra: dev
Requires-Dist: nox[uv]!=2025.05.01,>=2024.3; extra == "dev"
Requires-Dist: pre-commit>=2.21.0; extra == "dev"
Provides-Extra: dev-extra
Requires-Dist: black==26.5.1; extra == "dev-extra"
Requires-Dist: isort==8.0.1; extra == "dev-extra"
Requires-Dist: coverage==7.14.3; extra == "dev-extra"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-prompt; extra == "docs"
Requires-Dist: sphinxcontrib-spelling; extra == "docs"
Requires-Dist: sphinx-copybutton; extra == "docs"
Requires-Dist: towncrier==25.8.0; extra == "docs"
Requires-Dist: sphinxcontrib-towncrier; extra == "docs"
Requires-Dist: myst_parser; extra == "docs"
Requires-Dist: furo; extra == "docs"
Requires-Dist: sphinx-inline-tabs; extra == "docs"
Provides-Extra: docsauto
Requires-Dist: sphinx-autobuild; extra == "docsauto"
Provides-Extra: lint
Requires-Dist: pylint==4.0.4; extra == "lint"
Provides-Extra: tests
Requires-Dist: pytest>=7.2.0; extra == "tests"
Requires-Dist: pytest-salt-factories>=1.0.0; extra == "tests"
Requires-Dist: pytest-instafail; extra == "tests"
Dynamic: license-file

# Salt Extension for Andrisoft WANGuard

Manage [Andrisoft WANGuard][wanguard] from Salt, through its REST API.

Provides:

* an **execution module** and a **runner** for reading and manipulating roles,
  users, IP zones, threshold templates, responses, whitelist templates, BGP
  connectors, servers, sensors, filters, decoders, anomalies and more, plus
  generic verbs and a `query` escape hatch for any endpoint without a dedicated
  wrapper;
* **states** for the configuration objects that make sense to manage
  declaratively, all supporting `test=True`.

```bash
salt '*' wanguard.list_roles
salt '*' wanguard.get_role role_name=Guest
```

```yaml
Wanguard Guest role:
  wanguard.role_present:
    - name: Guest
    - description: Read-only access
```

Requires the `wanrestapi` package on the WANGuard Console and an account with
REST API access enabled. See the [User Documentation][docs] for setup.

## Security

If you discover a security vulnerability, please refer
to [Salt's security guide][security].

## User Documentation

For setup and usage instructions, please refer to the
[User Documentation][docs].

## Contributing

The saltext-wanguard project welcomes contributions from anyone!

The [Salt Extensions guide][salt-extensions-guide] provides comprehensive instructions on all aspects
of Salt extension development, including [writing tests][writing-tests], [running tests][running-tests],
[writing documentation][writing-docs] and [rendering the docs][rendering-docs].

### Quickstart

To get started contributing, first clone this repository (or your fork):

```bash
# Clone the repo
git clone --origin upstream git@gitlab.com:ggiesen/saltext-wanguard.git

# Change to the repo dir
cd saltext-wanguard
```

#### Automatic
If you have installed [direnv][direnv], copying the included `.envrc.example` to `.envrc` and
allowing it to run ensures a proper development environment is present and the virtual environment is active.

Without `direnv`, you can still run the automation explicitly:

```bash
make dev  # or python3 tools/initialize.py
source .venv/bin/activate
```

#### Manual
Please follow the [first steps][first-steps], skipping the repository initialization and first commit.

### Ways to contribute

Contributions come in many forms, and they're all valuable! Here are some ways you can help
without writing code:

* **Documentation**: Especially examples showing how to use this project
  to solve specific problems.
* **Triaging issues**: Help manage [issues][issues].

You can also contribute by:

* Writing blog posts
* Sharing your experiences using Salt + Andrisoft WANGuard
  on social media
* Giving talks at conferences
* Publishing videos
* Engaging in IRC, Discord or email groups

Any of these things are super valuable to our community, and we sincerely
appreciate every contribution!

[security]: https://github.com/saltstack/salt/blob/master/SECURITY.md
[salt-extensions-guide]: https://salt-extensions.github.io/salt-extension-copier/
[writing-tests]: https://salt-extensions.github.io/salt-extension-copier/topics/testing/writing.html
[running-tests]: https://salt-extensions.github.io/salt-extension-copier/topics/testing/running.html
[writing-docs]: https://salt-extensions.github.io/salt-extension-copier/topics/documenting/writing.html
[rendering-docs]: https://salt-extensions.github.io/salt-extension-copier/topics/documenting/building.html
[first-steps]: https://salt-extensions.github.io/salt-extension-copier/topics/creation.html#initialize-the-python-virtual-environment
[submitting-pr]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork
[direnv]: https://direnv.net
[issues]: https://gitlab.com/ggiesen/saltext-wanguard/-/issues
[comments]: https://conventionalcomments.org/
[wanguard]: https://www.andrisoft.com/
[docs]: https://ggiesen.gitlab.io/saltext-wanguard/
